Generer les micro-instructions par une machine a etats nis
Lorsque nous avons introduit notre premier chemin de donnees a la n du chapitre precedent, nous avons execute des instructions et chacune de ces instructions necessitait une sequence de micro-instructions c’est a dire une sequence de signaux de controle. En informatique, produire une sequence de sorties (eventuellement dependantes d’entrees) se represente bien sous la forme d’un automate a etats nis 1.
Une machine a etats nis pour le fetch
Commencons par voir comment generer la sequence de micro-instructions pour la phase de recuperation de l’instruction, la phase de fetch. La phase de fetch consiste a :
1.diriger le PC vers RADM, donc lire le PC (ReadPC=1), transferer l’entree A vers la sortie S pour l’UAL (UAL=0000), stocker le resultat dans RADM (SetRADM=1) et declencher un front montant d’horloge
2.diriger le contenu de la memoire vers le registre RI, donc lire le contenu de la memoire (ReadMem=1), transferer l’entree B vers la sortie S de l’UAL (UAL=0001), stocker le resultat dans le registre RI (SetRI=1) et declencher un front montant d’horloge
3.incrementer le registre PC, donc lire le PC (ReadPC=1), incrementer l’entree A de l’UAL (UAL=1000), stocker le resultat dans le registre PC (SetPC=1) et declencher un front montant d’horloge Cette sequence peut se representer graphiquement sous la forme d’un transducteur nis comme sur la gure 3.6.
1 Codages et operations binaires
1.1 Representation des entiers naturels
1.1.1 Representation en base p
1.1.2 Representation binaire, p=2
1.1.3 Representation hexadecimale, p=16
1.1.4 Raccourcis de conversion binaire/hexadecimal
1.1.5 Codage Binary Coded Decimal et Codage de Gray
1.2 Operations arithmetiques sur les representations non signees
1.3 Representations et operations avec un nombre xe de bits
1.4 Representation des entiers relatifs
1.4.1 Complement reduit et complement vrai
1.5 Operations arithmetiques sur les representations signees
1.5.1 Additions/Soustractions
1.6 Representation des nombres reels : virgule xe et virgule ottante
1.6.1 Representation par virgule xe (xed-point)
1.6.2 Representation par virgule ottante (oating-point)
1.6.3 Exemple de la representation en virgule ottante binary-16
1.7 Representation des caracteres
1.8 Un exemple
2 La couche physique et la couche logique
2.1 Un peu d’electronique
2.1.1 Niveaux logiques et valeurs de tension
2.1.2 Transistors CMOS et inverseur
2.1.3 Portes NAND et NOR a deux entrees
2.1.4 Autres portes a une ou deux entrees
2.1.5 Table de verite et synthese de circuit logique
2.1.6 Temps de propagation et notion de chemin critique
2.2 Circuits de logique combinatoire
2.2.1 Decodeur
2.2.2 Multiplexeur / demultiplexeur
2.2.3 Alea statique
2.2.4 Mutiplexeur : universalite et memoire en lecture seule (ROM)
2.2.5 Unite arithmetique et logique pour les entiers
2.2.6 Unite arithmetique en virgule ottante
2.3 Circuits de logique sequentielle
2.3.1 Verrou/Bascule RS
2.3.2 Verrou D
2.3.3 Systemes logiques synchrones : horloge et fronts montants
2.3.4 Bascule D synchrone sur front montant : ma^tre esclave
2.3.5 Realisation d’un verrou D avec un mutliplexeur
2.3.6 Registre et memoire RAM (Random Access Memory)
2.4 Une premiere architecture interne simple d’un microprocesseur
2.4.1 Registres internes : accumulateurs, registre d’adresse et compteur ordinal
2.4.2 Sequencement du chemin de donnees
2.4.3 Exemple
3 La couche ISA
3.1 Programme et donnees en memoire
3.1.1 Codage des instructions en memoire
3.1.2 Recuperer l’instruction depuis la memoire (fetch)
3.2 Generer les micro-instructions par une machine a etats nis
3.2.1 Une machine a etats nis pour le fetch
3.2.2 Une machine a etats nis par instruction
3.2.3 Une machine a etats nis pour toutes les instructions
3.3 Sequencement microprogramme du chemin de donnees
3.3.1 Circuit logique du sequenceur microprogramme et interface avec le chemin de donnees
3.3.2 Les branchements
3.4 Recapitulons
3.4.1 Architecture
3.4.2 Liste et format des instructions
4 Procedures, pile et pointeur de pile
4.1 Motivation
4.2 La pile : modication du chemin de donnees et nouvelles instructions
4.3 La pile pour passer des arguments et recuperer des resultats
4.4 Appel et retour de routines
4.5 Exemple : nombre de mouvements pour resoudre les tours de Hano
5 Traduction, Compilation, interpretation
5.1 Langage bas niveau : Assembleur
5.1.1 Quelques elements de syntaxe de notre langage d’assemblage
5.1.2 L’assembleur
5.2 Langage de haut niveau
5.2.1 Quelques elements de langages de haut niveau
5.2.2 Interprete ou compile
5.3 Compilateur
5.3.1 Anatomie d’un compilateur
5.3.2 La phase d’analyse (frontend)
5.3.3 Generation et optimisation d’une representation intermediaire
5.3.4 La phase de synthese
6 La memoire
6.1 Les differentes formes de memoire
6.1.1 Memoire morte (ROM)
6.1.2 Memoire vive (RAM)
6.1.3 Memoire de masse : disque dur
6.1.4 Synthese des memoires en lecture/ecriture : vive et de masse
6.2 Hierarchie de memoire
6.2.1 Principe de localite spatiale et temporelle
6.2.2 Structure hierarchique de la memoire : le meilleur des deux mondes
6.3 Memoire cache
6.3.1 Cache a correspondance directe
6.3.2 Cache associatif
6.3.3 Cache associatif a n entrees
6.3.4 Coherence du cache et de la memoire centrale
Architecture des ordinateurs (7,44 MO) (Cours PDF)