Architecture
de l’ordinateur
Emmanuel Lazard
Université Paris-Dauphine
mars 2011
Computers are my forte!
BRAZIL (Terry Gilliam, 1985)
Ce document a initialement été publié sous forme de livre :
Emmanuel Lazard
Architecture de l’ordinateur
Collection Synthex
Pearson Education France, 2006
ISBN : 2-7440-7176-5
Ce livre étant épuisé et l’éditeur n’envisageant pas de réédition, ce dernier a donné son accord pour que le
texte du livre soit en libre diffusion. Ce document lui est quasiment identique à quelques corrections
orthographiques et mises à jour près.
Les polices de caractères utilisées dans ce document sont : Gentium, Inconsolata et Gill Sans.
Ce polycopié est diffusé sous Licence Creative Commons « Paternité - Pas dUtilisation Commerciale - Pas de
Modification 2.0 ».
Vous êtes libres de reproduire, distribuer et communiquer cette création au public selon les conditions
suivantes.
Paternité Vous devez citer le nom de l’auteur original de la manière indiquée par l’auteur de l’œuvre
ou le titulaire des droits qui vous confère cette autorisation (mais pas d’une manière qui suggérerait qu’ils
vous soutiennent ou approuvent votre utilisation de l’œuvre).
Pas d’Utilisation Commerciale Vous n’avez pas le droit d’utiliser cette création à des fins
commerciales.
Pas de Modification Vous n’avez pas le droit de modifier, de transformer ou d’adapter cette
création.
Les programmes figurant dans ce livre ont pour but d’illustrer les sujets traités. Il n’est donné aucune garantie quant à leur
fonctionnement une fois compilés, assemblés ou interprétés dans le cadre d’une utilisation professionnelle ou
commerciale.
La première image de couverture est une machine Z3 construite en 1941 par Konrad Zuse (Allemagne).
Programmable, travaillant en binaire (et même en arithmétique flottante), elle est à base de relais électriques
et est considérée comme ce qui s’approcherait le plus du « premier ordinateur ». Elle a été détruite lors d’un
raid allié en 1943 mais une réplique fonctionnelle en a été faite dans les années 60 et se trouve au Deutsches
Museum de Munich (Image courtesy of Computer History Museum).
La seconde photo représente l’architecture Westmere des derniers processeurs Intel avec environ un milliards
de transistors sur une puce (Image courtesy of Intel Corporation).
Sommaire
i
Sommaire
Introduction ii!
1. Représentation des nombres 1
1. Calcul binaire et entiers positifs 2!
2. Nombres négatifs 6!
3. Nombres réels 9!
4. Codage des caractères 11!
5. Types et programmation 13!
Problèmes et exercices 15!
2. Circuits logiques 21!
1. Fonctions booléennes 22!
2. Circuits combinatoires 30!
3. Circuits logiques séquentiels 34!
Problèmes et exercices 40!
3. Ordinateur et processeur 51!
1. Architecture de von Neumann 52!
2. Les instructions 59!
3. UAL et registres 65!
4. Séquenceur 68!
5. Architectures évoluées 70!
Problèmes et exercices 78!
4. Exemple de langage assembleur 89!
1. Description d’un processeur 90!
2. Instructions 91!
3. Programme d’assemblage 99!
4. Extensions possibles 102!
Problèmes et exercices 104!
5. Mémoire 115!
1. Caractéristiques 116!
2. Mémoire à semi-conducteurs 119!
3. Programmation et stockage en mémoire 123!
Problèmes et exercices 127!
6. Mémoire cache 135!
1. Principe 136!
2. Caractéristiques 138!
3. Amélioration des caches 145!
Problèmes et exercices 149!
7. Mémoire virtuelle 161!
1. Principe 162!
2. Implémentation 164!
3. Segmentation 172!
Problèmes et exercices 175!
8. Entrées/sorties 185!
1. Bus 186!
2. Interruptions 189!
3. Gestion des entrées/sorties 192!
4. Technologies de stockage 196!
Problèmes et exercices 199
Bibliographie 201
Index 202
!
Architecture de l’ordinateur
ii
Introduction
L’architecture de l’ordinateur est le domaine qui s’intéresse aux différents composants internes des machines,
en explicitant leur construction et leurs interactions. Un ordinateur est un outil complexe qui peut effectuer
des tâches variées, et dont les performances globales dépendent des spécifications de tous ses éléments.
Comprendre son architecture permet de savoir dans quelle mesure les caractéristiques propres à chaque
composant influencent la réactivité de la machine en fonction de son usage : pourquoi ajouter de la mémoire
accélère-t-il l’ordinateur ? Pourquoi le temps d’accès d’un disque dur n’est-il qu’un des paramètres permettant
de mesurer son efficacité ? Comment les processeurs font-ils pour aller toujours plus vite ?
L’utilité de ce domaine de connaissances est encore plus évidente pour les programmeurs qui développent des
applications, de l’étudiant s’amusant sur son matériel personnel au professionnel écrivant des lignes de code
au sein d’une équipe. La programmation dans des langages évolués est théoriquement indépendante des
contraintes architecturales, mais dans les faits, celles-ci ont un impact sur l’écriture, la correction et les
performances des programmes, via, par exemple, l’utilisation des pointeurs, le choix de la taille des variables
ou de l’ordre des boucles. Négliger ou ignorer la structure de l’ordinateur amènera tôt ou tard à des
déconvenues et à des erreurs.
Cet ouvrage se veut une présentation générale de l’architecture de l’ordinateur et de ses éléments, associant
les descriptions techniques au logiciel, qu’il soit système d’exploitation ou application personnelle. Après
avoir exposé les briques de base que sont la représentation des nombres et les circuits logiques, il entreprend
de décortiquer la pièce maîtresse de l’ordinateur, à savoir le processeur, ainsi que son langage de
programmation spécifique, en incluant une illustration des architectures avancées des processeurs actuels.
Mais un processeur isolé serait inutilisable sans l’ensemble des composants qui le soutiennent pour assurer le
bon déroulement des programmes. Cet ouvrage décrit le système de stockage de l’information, depuis la
mémoire cache jusqu’aux disques durs, en passant par la mémoire principale et la mémoire virtuelle. Pour
finir, il présente le canisme des entrées/sorties, lié à la communication de lordinateur avec son
environnement, aussi bien du point de vue matériel (contrôleur) que logiciel (pilote).
Cet ouvrage est inspiré d’un enseignement délivré depuis de nombreuses années à des étudiants en
informatique dans des formations professionnelles. Il a pour ambition de faire comprendre les mécanismes
internes de l’ordinateur et leurs implications sur le développement des logiciels aux élèves de licence
scientifique, et de façon plus générale de faire découvrir l’architecture des machines à tous ceux qui
s’intéressent à ce sujet. À la fin de chaque chapitre, des exercices corrigés permettent d’appliquer directement
les notions présentées, à travers l’étude ou l’écriture de programmes, des applications numériques et des
constructions de circuits.
L’auteur remercie chaleureusement les relecteurs, Daniel Chillet et Stéphane Nicolet, qui, par leurs conseils,
remarques et documentation, ont largement amélioré les essais préliminaires. Merci à Karen, Kathy et Maude
qui ont contribué, de mille et une manières, à l’écriture de ce livre.
LE PLAN
L’architecture des ordinateurs, les descriptions techniques et les interactions avec le logiciel sont exposées
dans les huit chapitres de la façon suivante :
Chapitre 1 : Représentation des nombres.
Ce chapitre est centré sur la représentation informatique des nombres usuels et des caractères. Il montre
comment ceux-ci sont stockés en mémoire (et l’impact sur le logiciel) et les limites de leur représentation
(valeurs admises, valeurs maximales).
Chapitre 2 : Circuits logiques.
Ce chapitre présente les bases de la logique booléenne et son implémentation sous forme de circuits logiques,
des premières portes logiques aux circuits élémentaires présents dans tous les circuits intégrés électroniques.
Introduction
iii
Chapitre 3 : L’ordinateur et le processeur.
Après une vue d’ensemble de l’ordinateur, ce chapitre propose la construction d’un processeur simple. Seront
présentés ses différentes unités fonctionnelles et son langage de programmation. Il sera également question
des avancées architecturales des processeurs récents.
Chapitre 4 : Un exemple de langage assembleur.
Ce chapitre est entièrement dévolu à la programmation en langage assembleur d’un processeur fictif. Les
différentes instructions présentées montrent les possibilités du langage de commande du processeur. Elles
seront mises en œuvre dans de nombreux exercices de programmation.
Chapitre 5 : La mémoire.
Ce chapitre débute par une présentation des différentes zones de stockage dans un ordinateur, en les
distinguant suivant leurs caractéristiques (technologies, performances). Il s’intéresse ensuite à la mémoire
principale à semi-conducteurs et à son utilisation en programmation, en explicitant la façon dont un logiciel
gère son espace de mémorisation des variables.
Chapitre 6 : La mémoire cache.
La description des principes fondateurs de la mémoire cache est suivie par un inventaire exhaustif des
caractéristiques de celle-ci (taille, organisation, remplacement, réécriture) et une illustration des techniques
améliorant efficacité des caches (optimisation du code, caches multiniveaux...).
Chapitre 7 : La mémoire virtuelle.
La mémoire virtuelle est à mi-chemin entre le matériel et le système d’exploitation. Ce chapitre en présente
les principes théoriques (pagination, segmentation) ainsi que les techniques d’implémentation en insistant sur
les optimisations effectuées.
Chapitre 8 : Les entrées/sorties.
Le dernier chapitre se préoccupe des liens entre le processeur et son environnement, d’abord par létude
succincte des bus de communication le reliant aux autres composants, puis par l’explication du
fonctionnement des cartes d’entrées/sorties permettant de brancher des périphériques. Le côté logiciel
comprend une description du mécanisme des interruptions, qui offre au processeur un moyen de réagir à un
événement extérieur.
1 / 213 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !