Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
vanel.divin@gmx.fr Page 1
Support de cours Architecture des ordinateurs – Chapitre 4 : L’unité centrale de traitement
2. Unité de commande
2.1. Architecture
L’unité de commande est l’ensemble des dispositifs
coordonnant le fonctionnement de l’ordinateur afin de lui faire
exécuter la suite d’opérations spécifiées dans les instructions.
Les principaux dispositifs de l’unité de commande, qui entrent
en jeu lors de la recherche en mémoire et du décodage d’une
instruction, sont :
• le compteur ordinal, qui est un registre contenant
l’adresse en mémoire où est stockée l’instruction à
chercher ; Figure 4.1: Cycle de recherche d'une instruction
• le registre d’instruction qui reçoit l’instruction qui doit Les différentes étapes du cycle de recherche peuvent être
être exécutée ; résumées ainsi :
• le décodeur de code opération, qui détermine quelle
1) transfert de l’adresse de la nouvelle instruction du CO vers
opération doit être effectuée, parmi toutes les
le RA, registre d’adresse de la mémoire ;
opérations possibles ;
2) une impulsion de lecture, générée par l’unité de
• le séquenceur qui génère les signaux de commande
commande, provoque le transfert de l’instruction
• l’horloge, qui émet des impulsions électroniques
cherchée vers le RM, qui fonctionne comme un registre
régulières, synchronisant ainsi toutes les actions de
tampon pour toutes les informations lues ou écrites en
l’unité centrale.
mémoire ;
2.2. Cycle de recherche 3) transfert de l’instruction dans le RI
La circulation des informations pendant un cycle de recherche 4) pendant que l’adresse de l’opérande est envoyé vers le
est illustré par la figure suivante. RA, le code opération est transmis au décodeur qui
vanel.divin@gmx.fr Page 2
Support de cours Architecture des ordinateurs – Chapitre 4 : L’unité centrale de traitement
détermine le type d’opération demandée et le transmet Le cycle d’exécution comprend normalement les étapes
au séquenceur en envoyant un signal sur la ligne de sortie suivantes :
correspondante ;
1) le séquenceur commence à envoyer les signaux de
5) le CO est incrémenté en vue du cycle de recherche
commande vers la mémoire pour lire l’opérande à
suivant.
l’adresse déjà stockée dans le RA et le faire parvenir au
2.3. Cycle d’exécution RM ;
Le cycle de recherche est suivi par le cycle d’exécution durant 2) transfert du contenu du RM vers l’UAL, et plus précisément
lequel l’opération spécifiée dans l’instruction est effectuée par l’UAL. vers l’accumulateur ou tout autre registre affecté à
La séquence exacte des actions coordonnées par le séquenceur l’opération spécifiée. Dans certains cas, par exemple,
dépendra naturellement de l’opération ; en général, pendant un mémorisation d’un résultat, c’est le contenu de
cycle d’exécution, l’information circulera selon le schéma de la l’accumulateur qui sera transféré vers le RM. S’il s’agit
vanel.divin@gmx.fr Page 3
Support de cours Architecture des ordinateurs – Chapitre 4 : L’unité centrale de traitement
cycle machine, durée élémentaire régissant le fonctionnement de la capable de commander son déroulement. Le sous circuit approprié
machine. est activé par un signal provenant du décodeur.
Le cycle CPU désigne le temps d’exécution de l’instruction la On peut obtenir le même résultat avec une suite de micro-
plus courte ou la durée d’une action élémentaire provoquant un instructions stockées dans une mémoire de microprogramme. Ce
changement d’état. Le cycle mémoire est beaucoup plus long que microprogramme est capable de générer une suite de signaux de
le cycle CPU et limite la performance de l’ordinateur. Pour pallier commande équivalente à celle produite par un séquenceur câblé.
cette lenteur relative de la mémoire centrale, on a introduit des
mémoires entrelacées permettant le recouvrement des cycles, ainsi
5. Niveaux de programmation
que des mémoires caches permettant d’anticiper les transferts de Pour écrire un programme, l’utilisateur a souvent le choix entre
données et d’instructions vers le CPU. La vitesse de fonctionnement plusieurs langages. L’ordinateur, par contre comprend seulement
d’un ordinateur ne dépend donc pas seulement de sa fréquence son propre langage, le langage machine, avec son jeu d’instructions
temps d’accès de l’éventuelle cache, etc. En programmation, on utilise le terme langage pour indiquer un
ensemble d’instructions et de règles syntaxiques permettant l’écriture
4. Séquenceur de ce que l’on appelle le code source. Mais la machine n’est
Le séquenceur est un automate générant les signaux de capable d’exécuter que des programmes écrits en code machine
commande nécessaires pour actionner et contrôler les unités ou code objet ; d’où la nécessité de traduire le code source en code
participant à l’exécution d’une instruction donnée. Ces signaux sont objet avant de le soumettre à la machine. Ce travail de traduction
distribués aux différents points de commande des organes se fait automatiquement à l’aide de programmes traducteurs, tels les
concernés selon un chronogramme tenant compte des temps de assembleurs et les compilateurs. Si le code objet n’est pas produit
réponse des circuits sollicités. Cet automate peut être réalisé de deux explicitement, on parle alors d’interprétation du code source. On
façons : séquenceur câblé ou séquenceur microprogrammé. interprète un langage en exécutant directement ses instructions en
Le séquenceur câblé est un circuit séquentiel complexe qui fait code source. Ce travail est accompli par un programme interpréteur.
correspondre à chaque instruction exécutable un sous-circuit
vanel.divin@gmx.fr Page 4
Support de cours Architecture des ordinateurs – Chapitre 4 : L’unité centrale de traitement
On distingue plusieurs niveaux de langage de programmation, programmeur. Le nombre d’instructions varie typiquement entre 50
les niveaux supérieurs se rapprochant du langage utilisateur, les et 250.
niveaux inférieurs s’adaptant mieux aux caractéristiques de la Historiquement, les jeux d’instructions se sont progressivement
machine. complexifiés. Instructions de tailles variables, opérations composées,
opérandes de types multiples (adresse mémoire, registre,
6. Structure des instructions niveau machine composition de registre, etc.) se sont multipliés, compliquant par la
Une instruction machine doit fournir au CPU toutes les même occasion la construction du CPU, par exemple en imposant la
informations pour déclencher une opération élémentaire présence d’un séquenceur microprogrammé afin d’exécuter
(additionner deux nombres, tester le signe d’une valeur numérique, convenablement de très nombreuses instructions différentes. Cette
copier le contenu d’un registre dans un autre registre, stocker en architecture se dénomme CISC (Complex Instruction Set Computer).
mémoire le résultat d’une opération, etc.). Elle doit contenir le code En réaction, d’autres constructeurs ont préconisé de se
opération qui est essentiel pour spécifier le type d’action demandé. restreindre à un petit nombre d’instructions élémentaires dans un
En outre, elle doit contenir une ou plusieurs adresses. Par conséquent, format fixe, facile à réaliser dans le matériel et d’exécution rapide.
le format d’une instruction machine comportera un champ code Cela implique un séquenceur câblé et un compilateur capable
opération et jusqu’à quatre champs adresse. On dit d’une machine d’exploiter à fond les caractéristiques de la machine. Cette
qu’elle est à n adresses, si la plupart de ses instructions sont à n architecture s’est appelée RISC (Reduced Instruction Set Computer)
adresses. Les instructions que l’on trouve dans les répertoires de toutes les
Le répertoire et la structure des instructions machine font partie machines peuvent être classées en six groupes :
des choix architecturaux fondamentaux. • transfert de données (Load, Move, transfert de registre
à registre ou de mémoire à regustre, etc.)
7. Jeu d’instruction
• opérations arithmétiques (les 4 opérations en virgule fixe
Chaque machine a son jeu d’instructions de base. Il est souvent ou flottante et en simple ou double précision)
le résultat d’un compromis entre des exigences contradictoires, • opérations logiques (AND, OR, NOT, XOR, etc.)
comme la simplicité, l’universalité, l’efficacité ou le confort du
vanel.divin@gmx.fr Page 5
Support de cours Architecture des ordinateurs – Chapitre 4 : L’unité centrale de traitement
Le nombre et le type des registres que possède le CPU sont une l’exécution et le résultat après. Il peut aussi servir de registre tampon
partie déterminante de son architecture et ont une influence dans les opérations d’entrées/sorties. Naturellement, le programmeur
importante sur la programmation. La structure des registres du CPU a accès à l’ACC, qui est toujours très sollicité pendant le traitement
8.1. Compteur Ordinal (CO) notes, permettent de sauvegarder des informations fréquemment
Le registre CO (IP : Program Counter, IP :Instruction Pointer) utilisées pendant le programme, ou des résultats intermédiaires ; cela
contient toujours l’adresse en mémoire de la prochaine instruction à évite des accès à la mémoire, accélérant ainsi l’exécution du
Lorsque le CPU va chercher une instruction en mémoire, il la des registres généraux pour sauvegarder et pour compter. Mais en
place dans le RI. La taille du RI correspond à la taille de l’instruction. plus, ils ont une fonction spéciale qui est de grande utilité dans la
Le programmeur n’a pas accès au RI. Les bits correspondant à la manipulation des tableaux de données. Ils peuvent en effet être
vanel.divin@gmx.fr Page 6
Support de cours Architecture des ordinateurs – Chapitre 4 : L’unité centrale de traitement
utilisés pour manipuler des adresses, suivant une forme particulière 9. Adressage des opérandes
d’adressage, appelée adressage indexé.
Le champ adresse d’une instruction ne contient pas toujours
8.6. Registres de base l’adresse effective d’un opérande. Cependant, si c’est le cas, on dit
qu’il s’agit d’un adressage direct.
Utilisés comme les registres d’index pour calculer les adresses
Pour faciliter la programmation, les fabricants de processeurs
effectives, les registres de base sont conçus pour contenir une
offrent toute une gamme de méthodes pour adresser les opérandes.
adresse de référence ; pour obtenir l’adresse effective, il faut y
Le format des instructions prévoit un champ dont les bits indiquent le
ajouter le contenu du champ d’adresse de l’instruction.
mode choisi. Parmi les différents modes d’adressage, les plus
8.7. Registre d’état (PSW ; SR) importants sont :
Appelé aussi registre condition, le registre d’état contient
• direct : le champ adresse contient l’adresse effective ;
différents bits appelés drapeaux indiquant l’état d’une condition
• indirect le champ adresse contient l’adresse où se
particulière dans le CPU. Ce registre contient aussi des bits donnant
trouve l’dresse effective ; on peut parfois avoir plusieurs
l’état du CPU vis-à-vis du système d’exploitation.
niveaux d’indirection ;
8.8. Registre pointeur de pile (SP) • immédiat le champ adresse contient l’opérande ;
Ce registre est utilisé pour simuler une pile dans la mémoire • implicite le code opération indique où se trouve
centrale, dans laquelle on réserve une zone mémoire. Le registre SP l’opérande ; c’est le cas d’une machine à zéro
fonctionne comme un registre d’adresse mémoire utilisé uniquement adresse ;
pour la partie pile de la mémoire RAM. • indexé l’adresse effective est le contenu du champ
adresse additionné au contenu du registre d’index ;
8.9. Registres spécialisés
• basé l’adresse effective est le contenu du champ
Dans certains ordinateurs on peut trouver des registres
d’adresse additionné au contenu du registre de base ;
spécialisés pour des opérations particulières, par exemple registres à
• relatif comme l’adressage basé, mais utilise le contenu
décalage, registres pour opérations arithmétiques en virgule
du CO comme adresse de base.
flottante, etc.
vanel.divin@gmx.fr Page 7
Support de cours Architecture des ordinateurs – Chapitre 4 : L’unité centrale de traitement
10. Taille de l’adresse et taille de la mémoire en pages. La mémoire réelle est divisée en cadres de
page capables de contenir exactement une page de
Soit ADR le nombre de bits dans le champ adresse d’une
programme (notion de pagination).
instruction. Soit 2n la taille de la mémoire centrale. On peut distinguer
trois cas :
11. L’unité Arithmétique et logique
• 𝐴𝐷𝑅 = 𝑛 : la mémoire physique est accessible dans sa
Tous les ordinateurs modernes ont des UAL capables de réaliser
totalité. Toutes les méthodes d’adressage proposées
une grande variété d’opérations.
par le fabriquant peuvent être utilisées ;
Certaines opérations ne concernent qu’un seul registre et
• 𝐴𝐷𝑅 < 𝑛 : ADR ne suffit pas pour adresse toute la
qu’un seul opérande, par exemple, la remise à zéro, la
mémoire. On peut utiliser l’adressage basé, si le registre
complémentation logique, le décalage, l’incrémentation, etc.
de base a une taille suffisante. il suffit de diviser la
D’autres concernent deux opérande, par exemple l’addition, le
mémoire en blocs de taille telle que ADR puisse adresser
soustraction, les opération logiques.
complètement un bloc. On utilisera le champ adresse
Les opérations en virgule flottante et en double précision
pour indiquer le déplacement à l’intérieur du bloc.
étaient historiquement réservées aux machines à vocation
L’adresse du premier bloc sera mémorisée dans le
scientifique. Elles sont maintenant intégrées à tous les processeurs
registre de base. On calculera l’adresse effective en
modernes dans une UAL spécifique, autrefois positionnée dans un
faisant la somme des contenus du registre de base et
circuit externe, le coprocesseur.
du champ adresse de l’instruction.
Tout traitement de données a lieu dans l’UAL. Cette partie du
• 𝐴𝐷𝑅 > 𝑛 : ADR peut adresser des positions de mémoire
CPU, où se trouvent tous les circuits capables d’effectuer les
qui n’existent pas dans la mémoire physique. On peut
opérations élémentaires qui sont à la base de tout algorithme, est
profiter de cette possibilité et envisager des
totalement asservie à l’unité de commande. C’est précisément
mécanismes permettant de déborder sur des mémoires
cette dernière qui déclenche, contrôle et synchronise toute activité
auxiliaires, par exemple des unités disques (notion de
de l’UAL.
mémoire virtuelle).On peut réaliser une mémoire
virtuelle en découpant le programme stocké sur disque
vanel.divin@gmx.fr Page 8
Support de cours Architecture des ordinateurs – Chapitre 5 : Superordinateurs et microprocesseurs
vanel.divin@gmx.fr Page 1
Support de cours Architecture des ordinateurs – Chapitre 5 : Superordinateurs et microprocesseurs
sert de référence et peut s’appliquer à tous les processeurs. Le MFlops 2.3. Micro-ordinateurs
[Million of FLoating point Operations Per Second] est une mesure Un micro-ordinateur contient de nombreux éléments et
spécifique du nombre d’opérations arithmétiques en virgule flottante notamment le microprocesseur, qui est son CPU. Ceci est illustré
que peut exécuter une machine en une seconde. sur la figure ci-dessous qui montre la structure d’un micro-
ordinateur.
2. Microprocesseurs
2.1. Microprocesseur et micro-ordinateur
Un microprocesseur est un circuit intégré réalisant une unité de
traitement complète (unité de commande et UAL)
Un micro-ordinateur est une ensemble formé de
microprocesseur, mémoires, entrées/sorties et unités périphériques.
vanel.divin@gmx.fr Page 2
Support de cours Architecture des ordinateurs – Chapitre 5 : Superordinateurs et microprocesseurs
Le bus de données permet des transferts d’information dans les prédiction de branchement, pipelines, registres, exécution dans le
deux sens. Dans un micro-ordinateur 8, 16, 32, 64, voire 128 bits, le bus désordre).
de données aura respectivement 8, 16, 32, 64, voire 128 lignes. Ce Les performances dépendent des compilateurs et varient avec
qui correspond aussi au nombre de broches du microprocesseur la version. Des micro-ordinateurs sont adaptés au calcul intensif et
affectées aux données. d’autres au support d’applications graphiques. L’horloge tourne
Le bus d’adresse est unidirectionnel, ne devant servir qu’au toujours au maximum et dépasse les 4 GHz. On obtient des centaines
processeur pour adresser les mémoires et les registres tampons des de MIPS et on atteint quelques dizaines de gigaflops, et même le
interfaces avec les périphériques. Il aura autant de lignes qu’il faut téraflops avec les coprocesseurs graphiques.
pour adresser l’espace mémoire disponible. Par exemple, un bus Pour rester dans des prix raisonnables on utilise de plus en plus
avec 16 lignes d’adresses peut transporter 65 536 adresses des groupes (réseaux, grappes [cluster], grilles [grids]) de stations
différentes. de travail ou de PC interconnectés afin d’augmenter la capacité de
Le bus de commandes transporte tous les signaux utilisés pour traitement. L’important est de présenter à l’utilisateur un système
synchroniser les différentes activités qui se déroulent dans les unités intégré, cachant sa structure interne et permettant l’exploitation des
fonctionnelles du micro-ordinateur. Par exemple, signaux d’horloge, ressources distribuées sans devoir se soucier des détails. Un ensemble
signaux de lecture et écriture, signaux d’interruption, de stations de travail peut être utilisé aussi bien pour des traitements
d’acquittement. Le nombre de lignes peut varier considérablement en série qu’en parallèle.
d’un micro-ordinateur à un autre. Les performances se mesurent maintenant en tenant compte
de la consommation électrique, tant pour les microprocesseurs en
2.4. Performances des micro-ordinateurs
raison des usages mobiles, que pour les superordinateurs où l’on ne
Les performances des micro-ordinateurs contemporains sont
cherche pas toujours la performance absolue.
très proches les unes des autres. Tous adoptent les mêmes
technologies de base (CMOS, finesse du trait, haute densité des 3. Machines parallèles
composants) et les architectures se ressemblent (cache L1 et L2, Le progrès technologique permet désormais de réaliser des
unités superscalaires, multiplication des unités fonctionnelles, architectures d’un très haut niveau de parallélisme, avec des
vanel.divin@gmx.fr Page 3
Support de cours Architecture des ordinateurs – Chapitre 5 : Superordinateurs et microprocesseurs
dizaines, voire des centaines de milliers de processeurs. Ces 3.2. Parallélisme externe
machines sont aussi des superordinateurs qui offrent des Concernant l’évolution du parallélisme externe, on peut
performances remarquables et dépassent les anciens distinguer trois types d’architectures :
superordinateurs vectoriels. • SISD
On parle de granularité pour indiquer la taille des tâches • SIMD
allouées aux unités d’exécution. La granularité fine correspond au • MIMD
niveau des instructions ; une granularité plus grossière implique des
parties de programmes avec une fonctionnalité appréciable. 3.3. Parallélisme et applications
Un système parallèle peut être défini comme un ensemble Le problème central du parallélisme est la décomposition du
d’unités de traitement et de mémoires pouvant communiquer et code et des données. Le modèle de calcul et l’architecture sont en
coopérer afin de résoudre de gros problèmes rapidement. relation avec le type de problème à résoudre.
La puissance des ordinateurs permet de simuler des objets, des
4. Parallélisme processus, des phénomènes de plus en plu complexes. Les
On distingue deux principaux niveaux de parallélisme à savoir chercheurs utilisent désormais l’approche de simulations à la place
le parallélisme interne, à l’intérieur d’un ordinateur classique, et le ou en complément des techniques expérimentales. En effet, il faut
parallélisme externe lorsqu’on se réfère à plusieurs processeurs d’abord créer des modèles mathématiques de réalité et, ensuite,
travaillant en liaison plus ou moins étroite. trouver des algorithmes efficaces conduisant à des solutions
numériques calculables avec des machines adaptées et ceci dans
3.1. Parallélisme interne
des temps acceptables.
Le parallélisme interne peut se présenter sous trois formes :
• Parallélisme par duplication 5. Evolution de l’architecture du CPU
• Parallélisme par anticipation 5.1. Architectures RISC et CISC
• Parallélisme par multiplexage
À la fin des années soixante-dix, on remarqua que, dans 80 %
des cas, un processeur n’utilise que 20 % de son jeu d’instructions. Les
instructions les plus utilisées sont celles de transfert entre unité
vanel.divin@gmx.fr Page 4
Support de cours Architecture des ordinateurs – Chapitre 5 : Superordinateurs et microprocesseurs
centrale et mémoire, et les branchements aux sous-programmes. À • Une augmentation de la fréquence de fonctionnement
partir de cette constatation, est né le concept d’un microprocesseur des circuits ;
avec un jeu limité d’instructions : les microprocesseurs RISC [Reduced • Une complexification de l’architecture interne des
Instruction Set Computer]. Ces microprocesseurs sont caractérisés cœurs d’exécution
par un jeu restreint d’instructions simples effectuées rapidement en
La seconde progression vient de l’extrême sophistication de
un cycle d’horloge.
l’architecture interne d’un processeur. Les principaux changements
Cette approche contraste avec les machines CISC [Complex
architecturaux sont les suivants :
Instruction Set Computer] où le jeu d’instructions est riche et les
instructions complexes afin de simplifier la tâche du compilateur. • Exécution pipeline ;
Les caractéristiques fondamentales d’un processeur RISC sont • UAL superscalaire ;
les suivantes : • Exécution dans le désordre ;
• Exécution des instructions en un seul cycle d’horloge ; • Exécution spéculative ;
• Simplification du format des instruction ; • Extensions vectorielles ;
• Réduction et simplification du jeu d’instructions ; • Hyperthreading ;
• Utilisation intensive des registres et séquenceur câblé. • Cœurs multiples ;
• Variation de la fréquence d’horloge
5.2. Amélioration des performances
Entre le premier microprocesseur, le 4004 d’Intel en 1971, et les 5.3. Tendances futures
processeurs récents, il y a un rapport de performance pouvant Depuis que les fréquences d’horloge plafonnent vers 3-4 GHz,
atteindre quelques millions. D’où vient ce gain d’efficacité ? les fabricants ont profité de la réduction de la taille de gravure pour
Depuis 45 ans, la technologie de gravure ne cesse de intégrer de plus en plus de transistors dans la puce. Cela a permis de
progresser (la fameuse loi de Moore) et a diminué la taille des complexifier l’architecture interne et de gagner en performance.
transistors de 10 µm (1971) à 10 nm (2017). Cette réduction a permis Malheureusement, plus on met de transistors, plus la chaleur
deux avancées : dégagée est importante car l’accroissement dû au nombre n’est pas
suffisamment compensé par le gain issu de la réduction de taille. On
vanel.divin@gmx.fr Page 5
Support de cours Architecture des ordinateurs – Chapitre 5 : Superordinateurs et microprocesseurs
ne pourra donc pas multiplier indéfiniment les cœurs et avoir toujours Un développeur souhaitant profiter de toute la puissance disponible
100 % des transistors du processeur qui soient actifs. L’évolution future dans un processeur doit découper son programme en tâches
semble plutôt être vers des processeurs hétérogènes intégrant des disjointes et lancer plusieurs threads d’exécution. Cela est
cœurs généralistes et des circuits accélérateurs, spécialisés dans malheureusement beaucoup plus compliqué que la programmation
l’exécution de certains algorithmes (traitement et synthèse d’images séquentielle classique car il faut gérer l’accès simultané à des
en 2D et 3D, calculs mathématiques complexes, chiffrement…) et variables partagées, les situations de concurrence dynamique, les
pouvant rester au repos le reste du temps. Cependant, reste le interblocages…
problème d’alimenter ces toujours plus nombreuses unités
d’exécution avec des données provenant de la mémoire : le lien
6. Conclusion
mémoire-processeur est souvent le principal goulot d’étranglement Avec l’arrivée des processeurs multicœurs, la problématique
des systèmes actuels. L’augmentation du nombre de transistors s’est déplacée vers l’intégration du parallélisme dans les algorithmes.
permet également de ramener à l’intérieur même de la puce des Un développeur souhaitant profiter de toute la puissance disponible
circuits se trouvant auparavant sur la carte-mère : coprocesseur dans un processeur doit découper son programme en tâches
graphique, contrôleur mémoire, circuits de gestion des disjointes et lancer plusieurs threads d’exécution. Cela est
entrées/sorties… Cette intégration plus fine réduit la latence des malheureusement beaucoup plus compliqué que la programmation
communications et permet d’optimiser la conception. séquentielle classique car il faut gérer l’accès simultané à des
variables partagées, les situations de concurrence dynamique [race
5.4. L’importance du logiciel condition], les interblocages…
Les architectures RISC se sont développées en même temps
que les compilateurs. Le but est d’optimiser l’ensemble du système.
On conçoit un jeu d’instructions simple et utilisable par le
compilateur. Les techniques modernes de compilation sont en pleine
évolution.
Avec l’arrivée des processeurs multicœurs, la problématique
s’est déplacée vers l’intégration du parallélisme dans les algorithmes.
vanel.divin@gmx.fr Page 6