Conception de circuits numériques et architecture des ordinateurs
Transcription
Conception de circuits numériques et architecture des ordinateurs
Conception de circuits numériques et architecture des ordinateurs Frédéric Pétrot Année universitaire 2015-2016 Conception de circuits numériques et architecture des ordinateurs Structure du cours C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 Codage des nombres en base 2, logique booléenne, portes logiques, circuits combinatoires Circuits séquentiels Construction circuits complexes Micro-architecture et fonctionnement des mémoires Machines à état Synthèse de circuits PC/PO Optimisation de circuits PC/PO Interprétation d'instructions Interprétation d'instructions Interprétation d'instructions Introduction aux caches 2 / 22 Conception de circuits numériques et architecture des ordinateurs Plan Plan détaillé du cours d'aujourd'hui 1 Processeur et jeu d'instruction Introduction Présentation de l'architecture Implantation de l'ISA MIPS 3 / 22 Conception de circuits numériques et architecture des ordinateurs Processeur et jeu d'instruction Plan 1 Processeur et jeu d'instruction Introduction Présentation de l'architecture Implantation de l'ISA MIPS 4 / 22 Conception de circuits numériques et architecture des ordinateurs Processeur et jeu d'instruction Introduction Introduction Rappel de l'épisode précédent Implantation PC/PO de machines à pile et à accumulateur Modes d'adressage Exemple détaillé Étude détaillée d'un processeur : le MIPS Architecture symptomatique de la mouvance RISC décrite dans Computer organization & design, the hardware/software interface David Patterson et John Hennessy Très utilisé dans les applications embarquées (networking, digital home, mobile) 5 / 22 Conception de circuits numériques et architecture des ordinateurs Processeur et jeu d'instruction Présentation de l'architecture Caractéristiques globales de l'architecture bus de données et d'adresse sur 32 bits taille de l'instruction : 32 bits ISA 3-adresses 32 registres opérandes des instructions, noté $0 à $31 registres $1 à $30 : usage général registre $0 : vaut toujours 0 registre $31 : contient adresse de retour de fonction (imposé par 3 instructions : jal, bgezal, bltzal) registre pc : adresse de l'instruction suivante registre ir : instruction en cours d'exécution registres hi et lo : résultat multiplication ou division entière 6 / 22 Conception de circuits numériques et architecture des ordinateurs Processeur et jeu d'instruction Présentation de l'architecture Exemples d'instructions Quelques instructions assembleur Entre registres add $2, $3, $5 Avec une constante addi $2, $3, 0xF00D Branchement conditionnel beq $5, $9, étiquette Chargement à partir de la mémoire lw $1, 24($2) Branchement inconditionnel j étiquette $2 := $3 + $5 $2 := $3 + 0xFFFFF00D ( étiquette si $5 ≡ $9 pc := pc + 4 sinon $1 := mem4 [$2 + 24] pc := étiquette 7 / 22 Conception de circuits numériques et architecture des ordinateurs Processeur et jeu d'instruction Présentation de l'architecture Modes d'adressage 3 modes d'adressage registre 5 bits dans l'instruction immédiat 5 bits dans l'instruction, pour les décalages 16 bits dans l'instruction, diérentes interprétations possibles 26 bits dans l'instruction, pour les sauts inconditionnels indirect registre (+ déplacement) 5 bits pour identier le registre + 16 bits pour la constante relatif à pc (2 cas) 8 / 22 Conception de circuits numériques et architecture des ordinateurs Processeur et jeu d'instruction Présentation de l'architecture Encodage des instructions 3 formats d'instruction 31 2625 2120 1615 Format R : OPCODE RS RT Format I : OPCODE RS RT Format J : OPCODE 1110 RD 65 SH 0 FUNC IMM 16 IMM 26 9 / 22 Conception de circuits numériques et architecture des ordinateurs Processeur et jeu d'instruction Présentation de l'architecture Tables des encodages Codage du champ OPCODE 31...29 000 001 010 011 100 101 110 111 000 001 SPECIAL REGIMM addi addiu lh sh - COP 0 lb sb - 28...26 010 j slti - 011 jal sltiu lw sw - 100 beq andi lbu - 101 bne ori lhu - 110 blez xori - 111 bgtz lui - 10 / 22 Conception de circuits numériques et architecture des ordinateurs Processeur et jeu d'instruction Présentation de l'architecture Tables des encodages Champ FUNC lorsque l'OPCODE vaut SPECIAL. 5...3 000 001 010 011 100 101 110 111 000 sll jr mfhi mult add - 001 jalr mthi multu addu - 010 srl mflo div sub slt - 2...0 011 sra mtlo divu subu sltu - 100 sllv syscall and - 101 break or - 110 srlv xor - 111 srav nor - Champ rt, lorsque l' opcode vaut REGIMM. 20...19 00 01 10 11 000 bltz bltzal - 001 bgez bgezal - 18...16 010 - 011 - 100 - 101 - 110 - 111 11 / 22 Conception de circuits numériques et architecture des ordinateurs Processeur et jeu d'instruction Présentation de l'architecture Tables des encodages Champ RS, lorsque OPCODE vaut COP 0. 25...24 00 01 10 11 000 mfc0 - 001 - 23...21 010 - 011 - 100 mtc0 - 101 - 110 - 101 - 110 tlbwr - 111 - Champ FUNC, lorsque OPCODE vaut COP 0. 5...3 000 001 010 011 100 101 110 111 000 tlbp rfe - 001 tlbr - 2...0 010 tlbwi - 011 - 100 - 111 12 / 22 Conception de circuits numériques et architecture des ordinateurs Processeur et jeu d'instruction Implantation de l'ISA MIPS Implantation de l'ISA du MIPS R3000 Forme générique de quelques instructions de type R add rd, rs, rt sub rd, rs, rt rd := rs + rt rd := rs − rt Codage add $4, $2, $3 sll $3, $2, 0x2 0x00432021 0x00021880 13 / 22 Conception de circuits numériques et architecture des ordinateurs Processeur et jeu d'instruction Implantation de l'ISA MIPS Implantation de l'ISA du MIPS R3000 Forme générique de quelques instructions de type I addiu rt, rs, imm16 rt := rs + imm16 15 k imm15...0 beq rs, rt, imm16 ( aic† + 4 si rs 6= rt , pc := 14 2 aic + 4 + imm15 k imm15...0 k 0 sinon lw rt, imm16(rs) rt := mem4 [rs + imm16 15 k imm15...0 ] † aic : adresse de l'instruction courante, pc contenant l'adresse de l'instruction suivante Codage addiu $4,$2,156 0x40328:bne $3,$2,0x40374 0x2444009c 0x14620012 14 / 22 Conception de circuits numériques et architecture des ordinateurs Processeur et jeu d'instruction Implantation de l'ISA MIPS Implantation de l'ISA du MIPS R3000 Forme générique des deux instructions de type J j imm26 pc ← (aic + 4)31...28 k imm25...0 k 02 jal imm26 $31 := (aic + 4); pc ← (aic + 4)31...28 k imm25...0 k 02 Codage 0x40328:j 0x40374 0x080000DD 15 / 22 Conception de circuits numériques et architecture des ordinateurs Processeur et jeu d'instruction Implantation de l'ISA MIPS Implantation de l'ISA du MIPS R3000 Construction d'un chemin de données abstrait sur lequel ces instructions peuvent être exécutées. Registres implicites : pc, ir Banc de 32 registres, à 2 accès en lecture au même cycle Constantes : adresse du reset, incrément de pc, ... Registre invisible du logiciel : AD contient l'adresse eective nécessaire aux load et store Unité de calcul : ALU 16 / 22 Conception de circuits numériques et architecture des ordinateurs Processeur et jeu d'instruction Implantation de l'ISA MIPS Implantation de l'ISA du MIPS R3000 Utilisation de ir : Dépend du format Immédiat sur 5 bits étendu sur 32 bits sans extension de signe pour les décalages Immédiat sur 16 bits étendu à 32 bits, avec ou sans extension de signe, avec ou sans multiplication par 4 Immédiat sur 26 bits multiplié par 4 et concaténé au 4 bits de poids fort de pc Champs rd , rs et rt directement utilisés pour indiquer la destination et les opérandes au banc de registres Détails au tableau après la planche suivante 17 / 22 Conception de circuits numériques et architecture des ordinateurs Processeur et jeu d'instruction Implantation de l'ISA MIPS Partie opérative simpliée WEPC WERF WEAD WEIR SELY SELX OP S Z OE RES DATA X C S T S P C $ i A D I R A L U Y ADDR Simplications Vue relativement abstraite qui sera ranée en TD et en CEP 18 / 22 Conception de circuits numériques et architecture des ordinateurs Processeur et jeu d'instruction Implantation de l'ISA MIPS Survol de la partie contrôle simpliée Vue globale hiérarchique /RST ir<-mem(pc) pc<-pc+4 fetch decod 1 nop special 4 RST Reset Branch 1 1 6 4 5 Reg nop 4 regimm ImmU Imm Load Store 19 / 22 Conception de circuits numériques et architecture des ordinateurs Processeur et jeu d'instruction Implantation de l'ISA MIPS Survol de la partie contrôle simpliée Reset et opérations avec immédiat étendu de signe RST ad<-I16 pc<0xbfc0000 imd reset RST /RST rt<-rs+ad rt<-rs<ad addiu sltiu RST /RST 20 / 22 Conception de circuits numériques et architecture des ordinateurs Processeur et jeu d'instruction Implantation de l'ISA MIPS Ajouts nécessaires pour être utilisable Interruptions et exceptions si exception, inhibition de l'écriture dans les registres testées identiquement au RST, en n d'instruction sauvegarde de l'adresse de l'instruction à laquelle reprendre après le traitement saut à une adresse connue à laquelle se trouve le gestionnaire Modes de fonctionnement noyau : on peut tout faire utilisateur : seul une partie de la mémoire est accessible, certaines instructions sont interdites 21 / 22 Conception de circuits numériques et architecture des ordinateurs Processeur et jeu d'instruction Implantation de l'ISA MIPS Hall of fame Quelques processeurs 8 bit PC/PO ayant marqué leur époque Intel 8080 Zilog Z80 Motorola 6800 MOSTech 6502 Quelques processeurs 16 et ou 32 bit PC/PO ayant marqué leur époque DEC PDP-11 a Intel 8086 Motorola 68000 a. Machine sur laquelle Unix et le langage C ont été développés 22 / 22