Conception de circuits numériques et architecture des
Transcription
Conception de circuits numériques et architecture des
Notes Conception de circuits numériques et architecture des ordinateurs Frédéric Pétrot et Sébastien Viardot Année universitaire 2010-2011 Conception de circuits numériques et architecture des ordinateurs Structure du cours Notes C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 Codage des nombres en base 2, logique booléenne, circuits combinatoires Optimisation combinatoire, circuits séquentiels Circuits séquentiels, suite Construction circuits complexes Machines à état Synthèse de circuits PC/PO Synthèse de circuits PC/PO Conception de circuits élémentaires CMOS Micro-architecture et fonctionnement des mémoires Interprétation d’instructions Interprétation d’instructions Interprétation d’instructions 2 / 13 Conception de circuits numériques et architecture des ordinateurs Plan Notes Plan détaillé du cours d’aujourd’hui 1 Processeur et jeu d’instruction Introduction Construction de la PC 3 / 13 Conception de circuits numériques et architecture des ordinateurs Processeur et jeu d’instruction Notes Plan 1 Processeur et jeu d’instruction Introduction Construction de la PC 4 / 13 Conception de circuits numériques et architecture des ordinateurs Processeur et jeu d’instruction Notes Introduction Introduction Implantation d’un jeu d’instruction PO : réalise tous les transferts attendus PC : indique le séquencement de l’interprétation 5 / 13 Conception de circuits numériques et architecture des ordinateurs Processeur et jeu d’instruction Notes Introduction Introduction Implantation d’un jeu d’instruction PO : réalise tous les transferts attendus PC : indique le séquencement de l’interprétation 5 / 13 Conception de circuits numériques et architecture des ordinateurs Processeur et jeu d’instruction Notes Construction de la PC Séquence d’interprétation Chaque étape prend 1 cycle 1 lecture de l’instruction dans IR 2 incrémentation de PC, décodage de l’instruction 3 déroulement des transferts plusieurs cycles potentiellement 4 retour en 1. Note sur 2 : PC incrémenté avant l’exécution de l’instruction À régler initialisation à la mise sous tension gestion des exceptions et interruptions 6 / 13 Conception de circuits numériques et architecture des ordinateurs Processeur et jeu d’instruction Notes Construction de la PC Structure de la machine d’états RSTIRQ pc<-pc+4 init nop nop nop nop reg-acc bit-reg const jump 14 Reg 2 2 Ret Bit 6 2 Imm Jmp RST + IRQ Rst init : première phase de décodage état init cond. 00 01 micro-instruction selpc←2, wepc←1 suivant reg-acc bit-reg état cond. 11 10 micro-instruction suivant const jump 7 / 13 Conception de circuits numériques et architecture des ordinateurs Processeur et jeu d’instruction Notes Construction de la PC Détail du reset RSTIRQ RST RSTIRQ pc<-0000h pc<-0004h rst0 irq0 push pc pushpc IR<-mem[pc] exe pc<-pc+1 init 8 / 13 Conception de circuits numériques et architecture des ordinateurs Processeur et jeu d’instruction Notes Construction de la PC Détail de quelques instructions ADDWF : dest ← W + reg[f ] etat reg-acc addw condition IR[11 :8] = "0111" et d = 0 IR[11 :8] = "0111" et d = 1 1 addf 1 ifetch 1 micro-instruction nop etat suivant addw addf opc←add, wew←1 sela←0, selb←1, selw←1 opc←add, selrf←1, werf←1 sela←0, selb←1, selw←1 selir←1, weir←1 ifetch ifetch init ADDLW : W ← W + IR[7 : 0] etat const addl condition IR[11 :8] = "111-" 1 micro-instruction nop opc←add, wew←1 sela←1, selb←1, selw←1 etat suivant addl ifetch 9 / 13 Conception de circuits numériques et architecture des ordinateurs Processeur et jeu d’instruction Notes Construction de la PC Détail de quelques instructions DECF : dest ← reg[f ] − 1 etat reg-acc decw condition IR[11 :8] = "0011" et d = 0 IR[11 :8] = "0011" et d = 1 1 decf 1 micro-instruction nop etat suivant decw decf opc←sub, wew←1 sela←0, selb←0, selw←1 opc←sub, selrf←1, werf←1 sela←0, selb←0, selw←1 ifetch ifetch 10 / 13 Conception de circuits numériques et architecture des ordinateurs Processeur et jeu d’instruction Notes Construction de la PC Détail de quelques instructions DECFSZ : dest ← reg[f ] − 1 etat reg-acc decws condition IR[11 :8] = "1011" et d = 0 IR[11 :8] = "1011" et d = 1 z=1 decfs z=0 z=1 micro-instruction nop etat suivant decws decfs opc←sub, wew←1 sela←0, selb←0, selw←1 opc←sub, selrf←1, werf←1 sela←0, selb←0, selw←1 z=0 ifetchnop ifetch ifetchnop ifetch ifetchnop : lecture d’une instruction nop etat ifetchnop condition 1 micro-instruction selir←0, weir←1 etat suivant init 11 / 13 Conception de circuits numériques et architecture des ordinateurs Processeur et jeu d’instruction Notes Construction de la PC Détail de quelques instructions CALL : appel de fonction etat jmp call condition IR[11] = 0" 1 micro-instruction nop push pc, selpc←0, wepc←1 etat suivant call ifetch RETURN : retour de fonction etat reg-acc return condition IR[13 :0] = "00 0000 0000 1000" 1 micro-instruction nop etat suivant return pop pc, selpc←1, wepc←1 ifetch 12 / 13 Conception de circuits numériques et architecture des ordinateurs Processeur et jeu d’instruction Notes Construction de la PC Wrap-up PC+PO : Facile, mais peu efficace Plusieurs cycles par instruction Aller/retour fréquent entre PC et PO Utilisation non-optimale des ressources Cours du second semestre : spécification détaillé d’un processeur PC+PO implantation de cette spec sur carte FPGA Depuis 1980 Processeur pipeline 1 instruction par cycle disparition de la machine d’état Object du cours de 2A ! Processeur superscalaire plusieurs instructions par cycle exécution spéculative réordonnancement matériel dynamique des instructions Object du cours de 3A ! 13 / 13 Notes