Académique Documents
Professionnel Documents
Culture Documents
CHENINE
Chapitre 1 – Introduction
Chapitre 2 – Principaux composant d’un ordinateur
Chapitre 3 – Notions sur les instructions d’un ordinateur
Chapitre 4 – le processeur
Chapitre 5 – instructions spéciales
1
2 LMD Architecture des ordinateurs 2019-2020 Chap. 1 Univ. Tiaret Mr A. CHENINE
Chapitre 1 – introduction
L’architecture d’un ordinateur est la description de ses unités fonctionnelles et de leurs interconnexions.
CPU
Mémoire
Processeur
Microprocesseur
Entrées/Sorties
(E/S) (I/O)
2
2 LMD Architecture des ordinateurs 2019-2020 Chap. 1 Univ. Tiaret Mr A. CHENINE
Unité de contrôle
(C.U)
R1 R2 Rn
Mémoire
Software
Hardware
Hardware
3
2 LMD Architecture des ordinateurs 2019-2020 Chap. 1 Univ. Tiaret Mr A. CHENINE
Programme = {instructions}
Code Machine :
00100100000000100000000000000101
00000000000000000000000000001100
00111100000000010001000000000001
10101100001000100000000000000100
00100100000000100000000000000101
00000000000000000000000000001100
00111100000000010001000000000001
10101100001000100000000000001000
00111100000000010001000000000001
10001100001010000000000000000100
00000001000000100010000000100000
00111100000000010001000000000001
10101100001001000000000000000000
00100100000000100000000000000001
00000000000000000000000000001100
00100100000000100000000000001010
00000000000000000000000000001100
4
2 LMD Architecture des ordinateurs 2019-2020 Chap. 1 Univ. Tiaret Mr A. CHENINE
L’architecture dite architecture de von Neumann est un modèle pour un ordinateur qui utilise une structure de
stockage unique pour conserver à la fois les instructions et les données demandées ou produites par le calcul.
Ce modèle est le résultat des travaux publiés en 1946 par le mathématicien John von Neumann, il est à la base
des ordinateurs actuels.
CPU Programme
Processeur
Données
Microprocesseur
Entrées/Sorties
(E/S) (I/O)
Recherche
Exécution Décodage
5
2 LMD Architecture des ordinateurs 2019-2020 Chap. 1 Univ. Tiaret Mr A. CHENINE
Le nom de cette structure vient du nom de l’université Harvard où une telle architecture a été mise en pratique
pour la première fois avec Le Mark I en 1944.
CPU Programme
Données
Processeur
Microprocesseur
Entrées/Sorties
(E/S) (I/O)
1.4 Comparaison
Le CPU
2.1 Introduction
7
2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE
8
2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE
2. decode :
l'instruction est décodée (par exemple ici add 327, c'est à dire ajouter le mot à l'adresse 327 à
l'accumulateur)
3. Execute :
3.1 l'adresse de la donnée (ici 327) est transférée dans RA
3.2 le contenu du mot d'adresse 327 (ici 56) est transféré dans l'UAL, ainsi que le contenu de
l'accumulateur (ici 14) : read
3.3 les 2 valeurs sont additionnée : execute proprement dit et le résultat est mis dans l'accumulateur :
write back
9
2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE
10
2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE
Dans cette architecture, les instructions vont directement agir sur la pile. Les opérandes sont
automatiquement chargés depuis le pointeur de pile (SP, Stack Pointer), et le résultat est à son tour empilé.
Ce type d'architecture a été utilisé dans les calculatrices HP fonctionnant en notation polonaise inversée (post-fixée),
dans les machines Burroughs de la gamme B 5000 et les miniordinateurs Hewlett-Packard de la gamme HP 3000. Il est
aussi utilisé pour le FPU des processeurs x86.
« à accumulateur »
Sur une machine de ce type, historiquement ne disposant que d'un seul registre, appelé Accumulateur, tous les calculs
se font implicitement sur celui-ci.
11
2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE
« registre - registre »
Exemple, la séquence A = B + C sera traduite en :
« mémoire - mémoire »
L'expression A = B + C :
Soit à traduire l’instruction d’affectation Python x=(a+b)*(c+d), où a, b, c et d sont des variables préalablemant
définies. Le langage d’assemblage dispose des instructions add pour l’addition, mul pour la multiplication,
mov pour le transfert de registre à registre ou de registre à mémoire, et des instructions load et store ou push et
pop suivant le cas. On notera respectivement A, B, C et D les adresses des variables a, b, c et d (ces adresses
doivent être déterminées par le programmeur). Ecrivons les programmes correspondants aux différentes
situations énumérées ci-dessus.
12
2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE
On distingue généralement les jeux d'instructions complexes (CISC) et les jeux d'instructions réduits (RISC).
Ces deux philosophies de conception cohabitent. La plupart des architectures actuelles sont de type RISC,
mais l'architecture x86 d'Intel est de type CISC.
CISC
Les processeurs CISC embarquent un maximum d'instructions souvent très complexes mais prenant
plusieurs cycles d'horloge. Leurs instructions gèrent aussi un grand nombre de modes d'adressages.
Le jeu d'instructions x86 (CISC) équipe tous les processeurs compatibles avec l'architecture intel (qu'ils soient
construits par Intel ou AMD). Il a reçu plusieurs extensions dont le passage à une architecture 64 bits, x86-64.
Parmi les processeurs CISC notables, on peut citer, en plus du x86 :
VAX ;
68000.
RISC
À l'opposé, les processeurs RISC ont un jeu d'instructions plus réduit mais chaque instruction est codée
simplement et n'utilise que quelques cycles d'horloge. Toutes ses instructions sont de la classe « registre-
registre ».
Il existe de nombreuses familles de processeurs RISC :
PowerPC ;
SPARC ;
ARM ;
Alpha ;
MIPS R3000.
13
2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE
14
2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE
UAL
2.5 Unité arithmétique et logique
L'unité arithmétique et logique (UAL, en anglais arithmetic–logic unit, ALU), est l'organe de
l'ordinateur chargé d'effectuer les calculs.
Les UAL peuvent être spécialisées ou pas. Les UAL élémentaires calculent sur des nombres entiers, et
peuvent effectuer les opérations communes, que l'on peut séparer en quatre groupes :
Certaines UAL sont spécialisées dans la manipulation des nombres à virgule flottante, en simple ou double
précision (on parle d'unité de calcul en virgule flottante (UVF, en anglais floating-point unit, FPU) ou dans
les calculs vectoriels. Typiquement, ces unités savent accomplir les opérations suivantes :
Certaines UAL, le plus souvent de la classe des FPUs, notamment celles des superordinateurs, sont
susceptibles d'offrir des fonctions avancées :
inverse (1/x) ;
racine carrée ;
logarithmes ;
fonctions transcendantes (sin x, cos x, etc.) ;
opération vectorielle (produit scalaire, vectoriel, etc.) ;
etc.
Les processeurs modernes font appel à plusieurs UAL, au moins deux : une située dans le chemin de contrôle
pour incrémenter le registre de programme (de 1, 2, 4 ou 8 typiquement), et une autre dans le chemin de
données pour traiter l'information. Pour augmenter leurs performances, elles sont le plus souvent pipelinées.
15
2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE
Il existe différents drapeaux qui définissent ou une erreur dans le résultat (division par zéro, dépassement de
mémoire...), ou alors des codes conditions (supérieur, inférieur, égal à zéro...).
La plupart des UAL possèdent des drapeaux qui ont différentes significations, dont voici plusieurs
exemples :
Report (en : Carry-out), transporte le report résultant d'une addition, la retenue résultant d'une opération de
soustraction.
Zéro, indique que tous les bits de R sont égaux à zéro.
Négatif, indique que le résultat de l'opération arithmétique est négatif.
Débordement (en anglais : overflow), indique que le résultat d'une opération arithmétique a excédé la capacité
numérique de R.
16
2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE
17
2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE
Les mémoires
18
2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE
2.6 RAM
Une mémoire est un ensemble de registres précédé par un décodeur qui permet de sélectionner un des
registres. On distingue deux types de mémoire : RAM (mémoire vive) (Random Acces Memory) et ROM
(mémoire morte) (Read Only Memory).
Les ROM se programme une fois et leur contenu n'est pas modifié dans le circuit tandis que les RAM sont
faites pour sauvegarder les données au moment de fonctionnement normal du circuit.
Le choix d'écriture ou lecture se fait par une entrée souvent appelée .
De l'autre côté, il faut aussi des lignes d'adresse qui sont utilisées pour sélectionner un des registres. Il y
souvent une autre entrée (CS) qui sert à sélectionner le boîtier : si cette entrée n'est pas validée, le boîtier ne
réagit pas.
Taille, organisation et capacité : nombre de mots, nombre de bits par mot et nombre total de bits.
Temps d’accès, le temps entre l’envoi de l’adresse et l’obtention de la donnée, et temps de cycle, le
temps entre deux opérations mémoire successives.
19
2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE
Fig.10 RAM 1 MB
20
2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE
La RAM est constituée d’un ensemble ordonné de 2m cellules, chaque cellule contenant un mot de n bits.
Ces mots permettent de conserver les informations. On accède à n’importe laquelle de ces cellules au moyen
de son adresse, nombre entier compris dans l’intervalle [0, 2m-1]. Cet accès est en temps constant quelle que
soit la valeur de l’adresse (accès direct). Pour communiquer avec la mémoire, le bus est subdivisé en un bus
d’adresse et un bus de données. Il existe deux types d’accès :
La lecture transfère sur le bus de données le mot contenu dans la cellule dont l’adresse est située sur
le bus d’adresse.
L’écriture transfère dans la cellule dont l’adresse est sur le bus d’adresse, le mot contenu sur le bus
de données
0101 0011 1111 1010 1000 0000 0010 0000 2.1517828096E12 Big endian
00100000100000001111101001010011 2.18496941221920751566765075274E-19 Little endian
21
2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE
1111101001010011
0000010110101100
1
0000010110101101 05AD -1453
Il y a deux technologies de fabrication des RAM : statiques et dynamiques, elles ont chacune leur domaine
d'application
La SRAM ou RAM Statique est la plus ancienne. Les bits y sont mémorisés par des bascules électroniques
dont la réalisation nécessite six transistors par bit à mémoriser. Les informations y restent mémorisées tant
que le composant est sous tension. Les cartes mères utilisent une SRAM construite en technologie CMOS et
munie d'une pile pour conserver de manière non volatile les données de configuration (setup) du BIOS. Le
circuit de cette RAM CMOS est associé au circuit d'horloge qui lui aussi a besoin de la pile pour fonctionner
en permanence même quand l'ordinateur est éteint. La SRAM est très rapide et est pour cette raison le type
de mémoire qui sert aux mémoires cache.
La DRAM pour RAM dynamique est de réalisation beaucoup plus simple que la SRAM. Ce qui permet de
faire des composants de plus haute densité et dont le coût est moindre.
Chaque bit d'une DRAM est mémorisé par une charge électrique stockée dans un petit condensateur. Ce
dispositif offre l'avantage d'être très peu encombrant mais a l'inconvénient de ne pas pouvoir garder
l'information longtemps. Le condensateur se décharge au bout de quelques millisecondes (ms). Aussi pour
ne pas perdre le bit d'information qu'il contient, il faut un dispositif qui lit la mémoire et qui la réécrit de
suite pour recharger les condensateurs. On appelle ces RAM des RAM dynamiques car cette opération de
rafraîchissement doit être répétée régulièrement.
22
2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE
2.6.2 Registres
A Register is a group of flip-flops with each flip-flop capable of storing one bit of information. An n-bit
register has a group of n flip-flops and is capable of storing binary information of n-bits.
A register consists of a group of flip-flops and gates. The flip-flops hold the binary information and gates
control when and how new information is transferred into a register. Various types of registers are available
commercially. The simplest register is one that consists of only flip-flops with no external gates.
These days registers are also implemented as a register file.
23
2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE
Les registres, qui sont des mémoires de petite taille (quelques octets), suffisamment rapides pour que l’UAL
puisse manipuler leur contenu à chaque cycle de l’horloge. Un certain nombre de registres sont communs à
la plupart des processeurs.
Principe de localité
Localité spatiale : les accès futurs en RAM se feront à des adresses proches des accès courants
Localité temporelle : une donnée accédée récemment sera certainement réutilisée prochainement
On combine :
24
2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE
Pas pratique
Performance du cache
Le processeur a besoin en permanence des données à traiter et des instructions à exécuter. Mais la mémoire centrale ne
peut fournir raisonnablement ces données à la vitesse dont le processeur en a besoin
Solution :
Utiliser une mémoire plus rapide entre la mémoire centrale et le processeur
25
2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE
Les registres
Capacité : 8-16-32-64 bits
Temps d'accès : 1 ps (10-12 s)
Volatile
Disque magnétique
Capacité : 1 To – 4 To
Temps d'accès : 10 ms
Non volatile
26
2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE
La hiérarchie de mémoires
27
2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE
BEQL
Branch on Equal Likely
Purpose:
To compare GPRs then do a PC-relative conditional branch; execute the delay slot only if the branch is
taken.
Description:
if (rs = rt) then branch_likely
An 18-bit signed offset (the 16-bit offset field shifted left 2 bits) is added to the address of the instruction
following the branch (not the branch itself), in the branch delay slot, to form a PC-relative effective target
address.
If the contents of GPR rs and GPR rt are equal, branch to the target address after the instruction in the delay
slot is executed. If the branch is not taken, the instruction in the delay slot is not executed.
Restrictions:
None.
Operation:
I:
tgt_offset <- sign_extend(offset || 02)
condition <- (GPR[rs] = GPR[rt])
I+1:
if condition then
PC <- PC + tgt_offset
else
NullifyCurrentInstruction()
endif
Exceptions:
Reserved Instruction
Programming Notes:
With the 18-bit signed instruction offset, the conditional branch range is ± 128 KBytes. Use jump (J) or
jump register (JR) instructions to branch to more distant addresses.
28
2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE
ADDI
Add Immediate Word
Purpose:
To add a constant to a 32-bit integer. If overflow occurs, then trap.
Description:
rt <- rs + immediate
The 16-bit signed immediate is added to the 32-bit value in GPR rs to produce a 32-bit result. If the addition
results in 32-bit 2's complement arithmetic overflow then the destination register is not modified and an
Integer Overflow exception occurs. If it does not overflow, the 32-bit result is placed into GPR rt.
Restrictions:
On 64-bit processors, if GPR rs does not contain a sign-extended 32-bit value (bits 63..31 equal), then the
result of the operation is undefined.
Operation:
if (NotWordValue(GPR[rs])) then UndefinedResult() endif
temp <- GPR[rs] + sign_extend(immediate)
if (32_bit_arithmetic_overflow) then
SignalException(IntegerOverflow)
else
GPR[rt] <- sign_extend(temp31..0)
endif
Exceptions:
Integer Overflow
Programming Notes:
ADDIU performs the same arithmetic operation but, does not trap on overflow.
29
2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE
Références
[1] Ref. : https://fr.wikipedia.org/wiki/Jeu_d%27instructions visité le 11/11/2019
[2] https://fr.wikibooks.org/wiki/Fonctionnement_d%27un_ordinateur/Les_m%C3%A9moires_cache
Visité le 19/11/2019
30