buisson -concevoir son microprocesseur
251 pages
Français

buisson -concevoir son microprocesseur

Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres
251 pages
Français
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres

Description

Concevoir sonmicroprocesseur Ellipses structure des systèmes logiques Jean-Christophe Buisson Collection Technosup Avant-propos Ce livre s'adresse aux étudiants en informatique de licence et maîtrise, aux élèves ingénieurs, ainsi qu'aux professionnels de l'informatique - programmeurs ou autres soucieux de comprendre le fonctionnement des systèmes logiques présents dans les dispositifs électroniques qui nous entourent, et en particulier les microprocesseurs et les microcontrôleurs. Ilest basé sur le cours, les travaux dirigés et les travaux pratiques ère d'architecture des ordinateurs dispensés en 1année du département informatique de l'Ecole Nationale Supérieure d'Electronique, d'Informatique, d'Hydraulique et de Télécommunications (ENSEEIHT) de Toulouse, et il est le fruit de plus de 15 ans d'expérience dans ce domaine. Le livre est organisé en deux grandes parties. La première (chapitres 1 à 3) présente d'abord toutes les notions de base préalables à la compréhension : le système de numération binaire et son utilisation dans le codage des nombres entiers naturels et relatifs, des caractères et des nombres réels ; ses propriétés dans les opérations d'addition, de comparaison, etc. On décrit ensuite les atomes de base des systèmes logiques que sont les portes et les bascules, et on décrit les méthodes d'analyse et de synthèse qui permettent d'assembler de tels éléments pour former des modules de complexité croissante.

Informations

Publié par
Publié le 25 avril 2016
Nombre de lectures 15
Langue Français
Poids de l'ouvrage 2 Mo

Extrait

Concevoir son microprocesseur
Ellipses
structure des systèmes logiques
Jean-Christophe Buisson
Collection Technosup
Avant-propos
Ce livre s'adresse aux étudiants en informatique de licence et maîtrise, aux élèves ingénieurs, ainsi qu'aux professionnels de l'informatique - programmeurs ou autres -soucieux de comprendre le fonctionnement des systèmes logiques présents dans les dispositifs électroniques qui nous entourent, et en particulier les microprocesseurs et les microcontrôleurs. Il est basé sur le cours, les travaux dirigés et les travaux pratiques ère d'architecture des ordinateurs dispensés en 1 année du département informatique de l'Ecole Nationale Supérieure d'Electronique, d'Informatique, d'Hydraulique et de Télécommunications (ENSEEIHT) de Toulouse, et il est le fruit de plus de 15 ans d'expérience dans ce domaine. Le livre est organisé en deux grandes parties. La première (chapitres 1 à 3) présente d'abord toutes les notions de base préalables à la compréhension : le système de numération binaire et son utilisation dans le codage des nombres entiers naturels et relatifs, des caractères et des nombres réels ; ses propriétés dans les opérations d'addition, de comparaison, etc. On décrit ensuite les atomes de base des systèmes logiques que sont les portes et les bascules, et on décrit les méthodes d'analyse et de synthèse qui permettent d'assembler de tels éléments pour former des modules de complexité croissante. Le lecteur est ainsi amené à créer des circuits combinatoires et séquentiels, en employant des méthodes réutilisables dans des contextes variés. On construit des encodeurs et des décodeurs, des compteurs, des séquenceurs de différents types pour automatismes, etc. On examine également en détail des modules qui seront utilisés dans des microprocesseurs : comparateurs, unités arithmétiques et logiques, multiplexeurs, mémoires, etc. Dans toute cette partie, l'accent est mis sur la modularité et la réutilisabilité, notion aussi importante ici que dans les disciplines logicielles. La deuxième partie (chapitres 4 à 6) décrit le fonctionnement des microprocesseurs et des microcontrôleurs au travers d'un processeur 32 bits spécifique à ce livre appelé CRAPS, dont tous les organes sont des modules qui auront été étudiés dans la première partie. Son langage machine de type RISC est un sous-ensemble de celui du SPARC, et il est suffisamment riche pour pouvoir être utilisé dans des applications concrètes, ou pour qu'on y incorpore un système d'exploitation comme Linux. Le but de cette partie est de dévoiler le mystère de l'exécution d'un programme, qu'on pourra observer jusqu'à l'échelle du bit élémentaire. De nombreux programmes écrits en assembleur CRAPS/SPARC sont fournis, qui permettent de mettre en oeuvre des aspects importants de la vie d'un processeur : déclenchement et prise en compte d'une interruption, dialogue avec des périphériques d'entrées-sorties, appels de sous-programmes récursifs, etc. Au delà de la simple compréhension, cet ouvrage a pour objectif de permettre la conception de systèmes logiques digitaux, et il en fournit tous les moyens. De nombreuses méthodes de conception sont présentées, parfois algébriques ou tabulaires, parfois fonctionnelles ou intuitives ; pour chacune, plusieurs exemples détaillés sont fournis, qui appliquent les techniques présentées à des problèmes concrets, et qui donnent au lecteur la possibilité de se construire un véritable savoir-faire dans ce domaine. Un outil logiciel de simulation appelé SHDL est présenté, libre et gratuit, à la fois basé sur un langage structurel
de description matérielle, et qui permet de voir fonctionner les dispositifs conçus. Un second outil logiciel libre appelé CRAPSEMU permet de programmer le processeur décrit avec de nombreux exemples fournis, afin que le lecteur puisse s'imprégner correctement des modes de fonctionnement du processeur CRAPS. Enfin, des éléments concrets sont fournis au lecteur pour lui permettre d'implémenter tous les circuits décrits, jusque et y compris le processeur CRAPS, dans des circuits logiques programmables de type CPLD ou FPGA, maintenant utilisables à l'aide de cartes d'expérimentation à moindre coût.
iv
Table des Matières
Avant-propos
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Chapitre I.Principes généraux. . . . . . . . 1. Organisation générale d'un ordinateur . . . 2. Bits et signaux électriques . . . . . . . 3. Technologies de fabrication des circuits intégrés 4. Mots binaires . . . . . . . . . . . 5. Codage des principaux types de données . . 6. Exercices corrigés . . . . . . . . . .
.
. . . . . . .
.
. . . . . . .
.
. . . . . . .
Chapitre II.Éléments de logique combinatoire. . . . . . 1. Circuits combinatoires . . . . . . . . . . . 2. Tables de vérité . . . . . . . . . . . . . . 3. Algèbre et opérateurs de base . . . . . . . . . 4. Autres portes logiques . . . . . . . . . . . . 5. SHDL, un langage de description matérielle pédagogique 6. Circuits logiques reconfigurables ; PLD et FPGA . . . 7. Méthodes de simplification des fonctions combinatoires 8. Circuits combinatoires réutilisables . . . . . . . 9. Exercices corrigés . . . . . . . . . . . . .
.
. . . . . . .
. . . . . . . . . .
Chapitre III.Éléments de logique séquentielle. . . . . . . 1. Définition . . . . . . . . . . . . . . . . . 2. Latch RS . . . . . . . . . . . . . . . . . 3. Fronts et niveaux ; signaux d'horloge . . . . . . . . 4. Circuits séquentiels synchrones et asynchrones : définitions 5. Graphes d'états . . . . . . . . . . . . . . . 6. Tables de transitions . . . . . . . . . . . . . 7. Bascules synchrones . . . . . . . . . . . . . 8. Synthèse d'un circuit séquentiel synchrone . . . . . . 9. Chronologie d'un circuit séquentiel synchrone . . . . 10. Circuits séquentiels réutilisables . . . . . . . . . 11. Exercices corrigés . . . . . . . . . . . . .
.
. . . . . . .
. . . . . . . . . .
. . . . . . . . . . . .
.
. . . . . . .
. . . . . . . . . .
. . . . . . . . . . . .
.
. . . . . . .
. . . . . . . . . .
. . . . . . . . . . . .
.
. . . . . . .
. . . . . . . . . .
. . . . . . . . . . . .
iii
1 1 3 5 6 10 15
18 18 20 20 23 26 28 30 37 56
61 61 62 63 63 64 66 69 77 84 85 92
Chapitre VI.Construction du processeur 32 bits CRAPS 1. Les registres . . . . . . . . . . . . . 2. L'unité arithmétique et logique . . . . . . . 3. Les bus du processeur CRAPS . . . . . . . 4. Structure du sous-système mémoire . . . . . 5. Structure du circuit d'entrées/sorties . . . . . 6. Structure du circuit timer/PWM . . . . . . 7. Structure du sous-système d'exceptions . . . . 8. Séquencement des instructions . . . . . . . 9. Exercices corrigés . . . . . . . . . . .
.
.
.
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
.
.
.
.
219
.
.
. . . . . . . . . .
.
.
.
.
. . . . . . . . . .
.
.
.
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
186 186 190 195 198 201 203 205 209 216
. . . . . . . . . . . .
98 98 101 103 104 105 107 108 111 114 115 122
. . . . . . . . . . . .
. . . . . . . . . . . .
Références
.
.
.
.
.
.
.
.
Chapitre IV.Éléments fonctionnels d'un processeur 1. Sorties haute-impédance . . . . . . . 2. Les bus parallèles . . . . . . . . . 3. Décodeurs . . . . . . . . . . . 4. Multiplexeurs . . . . . . . . . . 5. Encodeurs de priorité . . . . . . . . 6. Circuit d'extension de signe . . . . . . 7. Décaleur à barillet . . . . . . . . . 8. L'unité arithmétique et logique . . . . . 9. Circuit timer/PWM . . . . . . . . 10. RAMs et ROMs . . . . . . . . . 11. Exercices corrigés . . . . . . . .
Chapitre V.Programmation du processeur 32 bits CRAPS/SPARC 1. Le langage machine, à la frontière entre logiciel et matériel . 2. Ressources du programmeur CRAPS/SPARC . . . . . . 3. Directives d'un programme assembleur . . . . . . . . 4. Exemple de programme : crible d'Ératosthène . . . . . . 5. Appels de sous-programmes terminaux . . . . . . . . 6. Utilisation de la pile . . . . . . . . . . . . . . 7. Techniques de programmation diverses . . . . . . . . 8. Langages à structure de blocs et 'stack-frames' . . . . . 9. Programmation des entrées/sorties . . . . . . . . . 10. Programmation des exceptions . . . . . . . . . . 11. Exercices corrigés . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . .
vi
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
129 129 131 145 148 152 153 158 159 163 170 178
.
.
.
.
.
.
.
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
.
.
Glossaire
.
.
.
.
.
.
.
Annexe B.CRAPS : guide du programmeur. . . B.1. Instructions synthétiques . . . . . . B.2. Jeu d'instructions du processeur CRAPS . B.3. Tables des branchements conditionnels . B.4. Format binaire des instructions de CRAPS B.5. Directives de l'assembleur CRAPS . . B.6. Cartographie mémoire de CRAPS . . . B.7. Programmation des entrées/sorties . . . B.8. Programmation du timer . . . . . . B.9. Liste des exceptions . . . . . . . .
vii
.
.
.
.
242
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . . . . . . . .
221 221 223 228 228 230 231 231 231 232
. . . . . . . . . .
. . . . . . . . . .
233
.
.
. . . . . . . . . .
. . . . . . . . . .
.
220
.
.
.
.
.
.
.
.
.
.
Annexe A.Tables diverses
.
.
.
. . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Index
Chapitre I
Principes généraux
1. Organisation générale d'un ordinateur
1.1. Le modèle de Von Neumann La plupart des ordinateurs ont l'organisation générale de la figure I.1.
adr#1 adr#2 adr#3
adr#4 adr#5
Figure I.1. données.
mémoire centrale
instruction #1 instruction #2 instruction #3
donnée #1 donnée #2
instruction
données
données
processeur = unité de contrôle et de calcul registres r1 r2 r3
données
contrôleurs de périphériques
périphériques
Organisation générale d'un ordinateur; les flèches sont des chemins de
Cette organisation est dite de 'Von-Neumann', car elle ressemble beaucoup à la machine conçue parJohn Von Neumannsur la machine IAS peu après la deuxième guerre mondiale. Elle suppose et implique un certain nombre de propriétés caractéristiques des ordinateurs actuels :
La mémoire est un composant central ; c'est un tableau de mots de taille fixe On voit sur le schéma que lamémoire centraleest au départ et à l'arrivée de l'exécution d'un programme. C'est elle qui contient le programme à exécuter et les données
1
2
CHAPITREI. PRINCIPES GÉNÉRAUX
initiales ; c'est dans elle que seront stockés les résultats intermédiaires ou finaux. C'est un tableau de mots binaires de taille fixe. Chaque mot est repéré par un nombre appelé adresse, et les programmes feront référence aux données et aux instructions en mémoire par leurs adresses.
Le programme exécuté est dans la mémoire centrale Le programme qu'exécute un ordinateur n'est pas sur le disque dur, comme le pensent beaucoup de gens. Une copie du programme est effectivement souvent stockée sur un CDROM ou un disque dur, mais ce n'est pas avant d'avoir été copié en mémoire centrale, comme le serait n'importe quelle autre ensemble de données, que son exécution peut commencer. Un programme qu'exécute un ordinateur est composé d'instructionssous forme de mots mémoire. Le langage utilisé pour coder les instructions en mots binaires est appelé langage machine, c'est le seul que comprenne le processeur. La taille des instructions varie beaucoup selon le type des processeurs. Parfois toutes les instructions ont la même taille, égale à un ou plusieurs mots mémoire ; parfois elles ont des tailles variables selon la complexité de l'instruction.
Le processeur est le coordonnateur de l'exécution Leprocesseurcontrôle l'exécution des programmes, en organisant le chargement des instructions et le détail de leur exécution ; c'est aussi lui qui effectue tous les calculs, notamment sur les nombres entiers. Ces deux fonctions sont associées dans la même unité car le contrôle de l'exécution nécessite souvent des calculs entiers, lorsque par exemple il faut faire une somme pour déterminer l'adresse de l'instruction suivante. Le processeur a besoin de garder la trace d'un certain nombre d'informations pendant l'exécution des instructions : l'adresse de l'instruction en cours par exemple, ou le résultat de la dernière opération arithmétique. Il utilise pour cela desregistres, qui sont des mots mémoire fixes, à accès très rapide.
Le processeur ne dialogue pas directement avec les périphériques On voit sur la figure que le processeur dialogue avec descontrôleurs de périphériques et non avec les périphériques eux-même. Par exemple un processeur n'a aucune conscience de l'existence d'un disque dur ; il dialogue avec un contrôleur de disque, à l'aide d'instructions génériques d'entrées/sorties.
1.2. Organisation en bus
Les flèches entre les composants de la figure I.1 étaient à prendre dans un sens fonctionnel; si elles devaient représenter effectivement les chemins par lesquels transitent les données, le fonctionnement serait très inefficace. En pratique, les données circulent entre les différents sous-systèmes d'un ordinateur sur desbus, sortes d'autoroutes, et des circuits spécialisés jouent le rôle d'échangeurs aux carrefours de ces bus, de façon à permettre des transferts simultanés dans certaines circonstances. La figure I.2 montre une organisation typique d'un système de type compatible PC. Un circuit appelénorth-bridgerègle les échanges à très grande vitesse, notamment entre le processeur et la mémoire centrale. Il exploite de façon synchrone le bus FSB (front side bus), encore appelébus système, dont la vitesse est très corrélée à la puissance générale
1. Organisation générale d'un ordinateur
cache niveau 2
mémoire RAM
64/256 bits
64 bits 66/100/133/200 MHz bus mémoire
IDE
USB
processeur
FSB
64 bits 66/100/133/200 MHz
north bridge
533/800 Mo/s
south bridge
PCI
LAN
PCI-E
Figure I.2.Architecture générale des bus d'un ordinateur compatible PC.
3
de l'ensemble. Un second circuit appelésouth-bridgeeffectue quant à lui des échanges moins rapides avec des périphériques SATA, réseau, etc. La figure I.3 montre une photo decarte mèretypique, avec l'emplacement physique des différents bus. La mémoire et le north bridge sont placés très près du processeur, car ils sont sur les bus les plus rapides. Le north-bridge est équipé d'un radiateur à cause de l'intensité du travail de transfert qu'il réalise.
2. Bits et signaux électriques
L'information est stockée et véhiculée dans un ordinateur, logiquement sous forme de chiffres binaires oubits(binary digit), et physiquement sous forme de signaux électriques. La logique binaire est utilisée parce qu'il est plus facile de construire des systèmes électriques possédant deux états stables, et parce qu'on a maintenant beaucoup de résultats mathématiques enalgèbre de Boole, mais des implémentations sur des systèmes possédant plus de deux états stables sont envisageables. Ces deux états sont notés '0' et '1' ; ils correspondent le plus souvent aux deux tensions électriques 0v et +Vcc respectivement, Vcc valant exactement +5v pour des circuits utilisant la technologie TTL, et une valeur comprise entre 2v et 15v environ en technologie CMOS (des valeurs de Vcc=3.3v, 2.5v et 1.8v étant utilisée de plus en plus souvent). Pour tenir compte du fait que ces signaux électriques vont être déformés lors des transmissions, des plages de valeurs plus larges ont été affectées à ces états. Par exemple, en technologie TTL, elles sont représentées figure I.4. Il faut noter que ces assignations sont légèrement différentes selon qu'une tension est considérée en entrée ou en sortie d'un circuit. Les circuits logiques qui sont utilisés pour combiner et transmettre les signaux électriques logiques ont des caractéristiques non linéaires qui ont entre autres pour fonction de remettre en forme un signal déformé par le bruit. On voit figure I.5 une porte 'non' qui
4
CHAPITREI. PRINCIPES GÉNÉRAUX
Figure I.3.Carte mère typique. sontLes bus rouges (FSB et mémoire), très rapides, gérés par le north bridge ; les bus verts (PCI, SATA, etc.), plus lents, sont gérés par le south bridge.
+ 5v
2.4v
0.4v 0v
'1' logique
interdit
'0' logique
(a)
+ 5v
2.4v
0.8v
0v
'1' logique
interdit
'0' logique
(b)
Figure I.4.Assignation des tensions électriques aux valeurs logiques (a) en entrée de circuit, (b) en sortie de circuit (technologie TTL).
inverse le bit d'entrée, tout en produisant un signal de sortie de meilleure qualité que le signal d'entrée. Les signaux pourront donc traverser un nombre quelconque d'étages de circuits logiques sans que les déformations initiales ne soient amplifiées. On notera sur la figure I.5 la présence d'untemps de propagationtp(HLindiquant : HL de haut vers bas) qui correspond à la durée que met le circuit pour calculer sa sortie après que ses entrées se soient modifiées. Ces temps de propagation se cumulent lors de la traversée de plusieurs étages, et c'est finalement eux qui limiteront la vitesse de fonctionnement maximale d'un circuit.
  • Univers Univers
  • Ebooks Ebooks
  • Livres audio Livres audio
  • Presse Presse
  • Podcasts Podcasts
  • BD BD
  • Documents Documents