La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

INF1600: Architecture des micro-ordinateurs

Présentations similaires


Présentation au sujet: "INF1600: Architecture des micro-ordinateurs"— Transcription de la présentation:

1 INF1600: Architecture des micro-ordinateurs
Architecture du microprocesseur Intro à l’assembleur et boucle d’exécution

2 Memory Input/Output Processor Bus

3 Example 1: Calculez le taux de transfert (Mb/s) pour un disque avec deux zones et : vitesse de rotation : 7200rpm secteurs/piste : 50 (Zone 0) et 63 (Zone 1) données/secteur : 512B Limites bios ’90: 1024 (2^10) pistes/disque, 16 (2^4) têtes ou disques, 63 (2^6) secteurs/pistes, 512B/secteur => max. 504Mb Le barracuda 1T: pistes/disque…. Nouveau Barracuda 12TG: 4096B/secteur…. Z0: (7200/60 * 50 * 512 * 8) / (2^20) = 23.4 Mb/s Z1: (7200/60 * 63 * 512 * 8)] /(2^20) = 29.5 Mb/s Seagate Barracuda 1TB

4 Vitesse de rotation = 1/temps de rotation
3 Example 2: Dans un disque dur où il y a 128 bits par secteur, 400 secteurs par piste, une seule zone et un temps de rotation de 0,01 secondes, quel est le taux de transfert en bits par seconde ? Vitesse de rotation = 1/temps de rotation Vitesse de rotation * secteurs/piste * données/secteur 4

5 Vitesse de rotation = 1/temps de rotation
3 Example 3: Vitesse de rotation = 1/temps de rotation 5

6 Vitesse de rotation = 1/temps de rotation
3 Example 3: 1) Temps de lecture ms Temps de rotation 6ms – 0.006ms = ms Temps de déplacement d’une piste 1ms Temps d’écriture ms Total = ms 2) Temps de lecture 6 ms Temps de rotation 0 ms Temps d’écriture 6 ms Total = 13 ms Vitesse de rotation = 1/temps de rotation 6

7 Programme du cours Théorie Travaux Pratiques
Introduction Organisation interne du microprocesseur TP4 Lien entre C++ et assembleur TP0 Introduction aux outils TP2 Architecture du microprocesseur Hierarchie de mémoire Micro-ordinateur et périphériques Programmation en assembleur TP5 Mémoires TP1 Périphériques et architecture TP3 Programmation en assembleur Architecture d'un microprocesseur C++ et assembleur Théorie Travaux Pratiques

8 Objectifs de la leçon Dessiner un diagramme de l’architecture de Von Neumann 1 Décrire la procédure suivie par une architecture de Von Neumann pour exécuter un programme enregistré 2 3 Faire un liste des composants d'un processeur Décrire comment un processeur accède à une mémoire 4 Décrire un boucle d'exécution d'un processeur en langage RTN 5 Expliquer l'utilisation des pipelines pour rendre l'exécution plus rapide 6 Décrire le processus d'interruption pour un processeur 7 8

9 Agenda 1 Les niveaux d'abstraction d'un ordinateur L'assembleur
La mémoire La boucle d‘exécution L'accès aux périphériques 1 2 3 4 5 6 7

10 Traduction par couches ou niveaux de complexité
1 Le concept du programme en mémoire : • Les programmes sont des instructions stockées en mémoire Chiffres qui peuvent être modifiés, effacés... • Les programmes doivent être compris par le processeur - 1 et 0 Ordres de l'usager: Open the pod bay doors, HAL! Traduction Traduction par couches ou niveaux de complexité Langage machine ... 10

11 Le niveau dispositif (L1)
• 1s et 0s sont traduits en signaux électriques L1 Dispositif L1

12 Le niveau microarchitecture (L2)
1 Le niveau microarchitecture (L2) • Abstraction • Décrit comment les instructions sont exécutées Memory Input/Output Processor Bus Microarchitecture L2 Dispositif L1

13 L’accumulateur est une petite mémoire proche du processeur
2 La micro-architecture de la machine de Von Neumann La séquence d’opérations pour exécuter un programme 1) Récupérer les instructions de la mémoire 2) Décoder la représentation numérique des instructions 3) Charger les données de la mémoire ou des entrées vers l’accumulateur 4) Exécuter l’opération correspondante sur les données 5) Sauvegarder le résultat 6) Revenir à 1) et répéter Mémoire Entrées/Sorties [1] : le processeur retire la prochaine instruction (fetches and reads the recipe), [2] : decode par unite de contrôle (the cook’s brain) [3] : le processeur retire les données requises de la mem. ou des I/O (finds the ingredients) et les depose dans un accum. (bol…) [4] : l’unite de contrôle provoque les operations de ALU sur l’accum. l’accum est rapide et libère le bus plus que 1 donnée peut être requise pour une operation (addition…) [5] le résultat est envoyé à la mem. ou I/O. répété jusqu’à la fin des instructions Niveau du RTN et des sequence de contrôle. Le prochain niveau « système » permet de simplifier plus. Unité arithmetique- logique (ALU) Unité de contrôle L’accumulateur est une petite mémoire proche du processeur Accumulateur Processeur 13

14 2 MIPS Architecture Source : wikipedia.org

15 2 => Niveau du langage assembleur.

16 Instruction Set Architecture (L3)
2 Instruction Set Architecture (L3) Interface entre matériel et logiciel • Ce qui est visible au programmeur • Comprends : – instructions (opérations et leur codage) – informations sur les composants physiques (taille, adresses) – description des registres accessibles (l’état du processeur) – contrôle des entrées/sorties Donc ISA donne au programmeur en assembleur une « image » de la machine qui inclut le matériel accessible et les instructions qui permettent la manipulation de données à l’intérieur du matériel.

17 2 Aussi les drivers (pilote)

18 2

19 2 © Harris and Harris – Digital computer design
App.->OS->assembleur->séq. Control->circuit logic->circuit élec. © Harris and Harris – Digital computer design

20 Agenda Les niveaux d'abstraction d'un ordinateur L'assembleur
La mémoire La boucle d'exécution L'accès aux périphériques 1 2 3 4 5 6 7

21 Langage machine 3 Le microprocesseur parle binaire
Codage efficace des instructions Vitesse Taille Très difficile à lire Pas fait pour un humain Assez différent d’un type de processeur à l’autre Ex: additionne le registre 3 (ebx) avec le registre 1 (ecx) sur Intel x86 Représentation « lisible »: langage assembleur Mot à mot équivalent Une seule traduction possible de assembleur à langage machine 21

22 Langage assembleur … 3 Pourquoi utiliser le langage assembleur?
Pourquoi pas toujours un langage de haut niveau? Le langage assembleur permet d'utiliser toutes les capacités matérielles de la plate-forme l'accès à des modes non-disponibles dans un langage évolué d'utiliser les registres et les I/O spécifiques à la plate-forme cible d'utiliser certaines primitives dans les systèmes multi-processeurs l'usage de certaines fonctionnalités du processeur lors du développement du noyau d'un système d'exploitation d'obtenir des programmes rapides et compacts d'optimiser les sections critiques d'un programme de faire un « pont » entre deux langages de programmation Ex. de primitive atomique: problème des deux tâches qui font x = x + 1 en même temps. 22

23 … Langage assembleur Inconvénients 3 temps de développement plus long
Architecture du microprocesseur … Langage assembleur Inconvénients temps de développement plus long erreurs de programmation plus fréquentes et plus difficiles à déceler programmes plus difficiles à comprendre et à maintenir code non portable vers d'autres architectures difficile d'optimiser pour les différentes «variantes» d’une architecture sur un même ordinateur, le code peut être incompatible entre les différents systèmes d'exploitation des changements dans le choix des structures de données et des algorithmes sont difficiles à « propager ». 23

24 Avantages C (langage haut niveau):
3 Avantages C (langage haut niveau): Programmes clairs, bien structurés Utilisation de fonctions prédéfinies Si le compilateur est bien écrit peut gérer correctement l’allocation de mémoire Désavantages: Le code exécutable peut être plus long et moins efficace Il y a des bogues qui sont plus difficiles a trouver si on ne sais pas comment le compilateur « travaille » Gérer certains détails du matériel (comme les interruption) peut être difficile en C CPU’s qui n’ont pas compilateur disponible (et qui sont livrés avec assembleur ) En pratique – on peut utiliser C pour la plus grande partie d’un programme et insérer des parties en assembleur (comme procédures externes) pour les fonctions clef. .

25 Architecture du processeur
3 Architecture du processeur Un processeur a normalement: Registres: petite mémoire ultrarapide Accès mémoire: permet une grande mémoire « externe  » Entrées/sorties (semblable à l’utilisation de la mémoire) Un programme en mémoire Opérations entre registres (parfois mémoire-registre) Instructions relativement simples Déplacement de donnée (mov, movs, lds …) Arithmétique (add, sub, mul, div, …) Logique (and, or, …) Décalages de bits (shr, shl, …) Sauts/branchements avec condition simple (jmp, call, …) Données et programme Mémoire unique: dit Von Neumann Mémoires séparées: dit Harvard Architecture physique (différente de architecture logique) 25

26 Architecture des instructions …
3 Architecture des instructions … Nombre d’opérandes spécifiées: 1 à 3 selon le processeur 1: accumulateur ou pile (co-pro Intel x86) 1 adresse add A acc ←acc + mem[A] 2: une source sert aussi de destination (Intel x86, AVR, …) 2 adresses add A B EA(A) ←EA(A) + EA(B) 3: destination distincte des deux sources (MIPS, SPARC, …) 3 adresses add A B C EA(A) ←EA(B) + EA(C) add r1 = r2 + r3 Operand – destination/source Opcode – code operation, addition ici Source : wikipedia.org Add. sur 5bits, donc 32 registres possibles. 26

27 … Architecture des instructions
Taille d’instruction fixe : MIPS – 32 bits SPARC – 32 bits AVR(±) – 16 bits variable (Intel x86, MC68000, …) Exemple d’instruction: SPARC(32bits): add %r1, 1234, %r2 ( r2 ← r ) Op…(9bits) reg_source1(5bits) constante(13bits) reg_dest(5bits) 32 bits x86: add $1234, %ebx ( ebx ← ebx ) Op…(13bits) reg_dest(3bits) constante(32bits)

28 Agenda 1 Les niveaux d'abstraction d'un ordinateur L'assembleur
La mémoire La boucle d'exécution L'accès aux périphériques 1 2 3 4 5 6 STXT: First what is a Von Neumann Architecture, then how this device behaves and allows computer to do things. Finally we will see how this all boils down to a physical device. 7

29 Mémoire 4 Grand « tableau » de cases ayant chacune une adresse
Lors d’une lecture: Présenter l’adresse binaire à la puce Mettre actif le signal de lecture Un certain temps après, la puce répond avec la donnée Lors d’une écriture: Présenter la donnée binaire à la puce Mettre actif le signal d’écriture Adresse Donnée 1 2 Montrer le timing-diagram doc2466.pdf p.16 1023 Donnée Mémoire Enable Read/Write Adresse 29

30 Accès mémoires 4 Vue par le programme: une adresse par octet
Un octet = un caractère standard (char) Sur la puce: une adresse par « mot » (par exemple 32bits) Réduit le nombre d’accès Ordre de placement des octets Grosboutiste (« big-endian »): plus significatif à petite adresse (MSB) Petitboutiste (« little-endian »): moins significatif à petite adresse (LSB) Ex: placer deux entiers de 32bits dans une mémoire à mots de 32bits ? 0x à l’adresse 0, et 0x123 à l’adresse 4 (vue par le programme) X86 et AVR sont little-endian. Notez HEX 0x00 == 1 octet 1 Adr. sur puce Adr. vue par prog. « big-endian » 1 Adr. sur puce Adr. vue par prog. « little-endian » 30

31 Accès mémoires - alignement
4 Accès mémoires - alignement Problème d’alignement Ex: placer l’entier 0x à l’adresse 1 (vue par le programme) Requiert physiquement deux accès à la puce mémoire Certains processeurs ne le supportent pas directement (MIPS ne supporte pas, x86 oui) ?? 78 ?? ?? ?? 1 Adr. sur puce Adr. vue par prog. « big-endian » ?? ?? ?? ?? 12 1 Adr. sur puce Adr. vue par prog. « little-endian » 31

32 Agenda Les niveaux d'abstraction d'un ordinateur L'assembleur
La mémoire La boucle d‘ exécution L'accès aux périphériques 1 2 3 4 5 6 STXT: First what is a Von Neumann Architecture, then how this device behaves and allows computer to do things. Finally we will see how this all boils down to a physical device. 7

33 Exécution des instructions
5 Exécution des instructions Boucle d’exécution: Lire la prochaine instruction; pointer vers la suivante Chercher les données selon l’instruction Exécution de l’opération Écriture du résultat Ex. sur architecture à un bus: Compteur d’instructions Circuit de contrôle Instruction Mémoire Adresse mémoire Montrer doc2466.pdf AVR CPU Core (p.6) Banque de registres Donnée mémoire A Unité arith. (UAL) C 33

34 Description abstraite vs. concrète
5 Description abstraite vs. concrète RTN (Register Transfer Notation) (source: Heuring&Jordan; pas Atmel) A ← B Écrit B dans A A[B] Prend le mot B du tableau/mémoire A A ‹B› Prend le(s) bits B de A n..m Spécifie une plage d’index (pour bits ou mots) A → B Si A, alors exécuter et retourner B A#B Concaténation des bits de A et B (A étant de poids fort) (A:B dans Atmel) Répétition A fois du bit B : Séparateur parallèle (: pendant le même cycle d’horloge – l’ordre ne compte pas) ; Séparateur séquentiel (; cycles d’horloge successifs – l’ordre est importante) := Définition Opérateurs arithmétiques et logiques standards… Montrer doc0856.pdf “Instruction set summary” pour le “RTN” abstrait Atmel. 34

35 Exemple de description RTN
5 Exemple de description RTN Description abstraite précise en RTN: Mémoires PC 31..0 : IR 31..0 : (compteur de programme et l’instruction) R[0..31] 31..0 : (32 registres de 32 bits) Mem[ ] 7..0 : (une mémoire possible de 4GB=232 B) M[x] 31..0 := Mem[x]#Mem[x+1]#Mem[x+2]#Mem[x+3]: x – paramètre quelconque # concaténation Boucle d’exécution IR  M[PC] : PC  PC+4; (chercher l’instruction) add := R[IR26..22]  R[IR 21..17] + R[IR16..12] (l’exécuter) (op=12) ->R[ra] <-R[rb] + R[rc] (si condition alors addition ) 35

36 Exemple de description RTN
5 Exemple de description RTN Description concrète… MA31..0 : MD31..0 : (adresse et donnée pour accès mémoire) Recherche d’instruction MA  PC : C  PC+4 ; MD  M[MA] : PC  C ; IR  MD ; Exécution d’un instruction ‘add’ A  R[IR21..17] ; C  A + R[IR16..12] ; R[IR26..22]  C ; Opération RTN  un signal de contrôle Machine à états, un cycle d’horloge par ‘;’ Microprogramme Attention: ici les écritures sont faites en fin de cycle PC Circuit de contrôle IR Mémoire MA R[0..31] MD A Unité arith. (UAL) C 36

37 Plus vite ? =>Architectures à plusieurs bus
5 Plus vite ? =>Architectures à plusieurs bus 2 bus: 3 bus: MD MA Unité arith. (UAL) Mémoire PC IR R[0..31] Circuit de contrôle A Bus A Bus B MD MA Unité arith. (UAL) Mémoire PC IR R[0..31] Circuit de contrôle Bus C Bus A et B Aussi possible de semi-paralleliser : pipeline 37

38 Débit plus rapide 6 Peut-on réduire le temps à un cycle?
Peut-on avoir une instruction qui termine par cycle? Pipeline Idée de la chaîne de montage Chaque instruction pas moins longue (parfois plus longue) Instructions en même temps à différentes étapes de la chaîne Débit plus rapide lorsque tout va bien Aléa dans le pipeline l’implémentation empêche une certaine combinaison d’opérations le résultat d’une opération dépend de celui, pas encore produit,d’une instruction précédente Si un aléa est détecté, la solution la plus simple est d’arrêter le pipeline (stall): les instructions qui précédent celle qui produit l’aléa peuvent continuer, mais toutes les autres sont arrêtées jusqu’à la disparition de l’aléa 38

39 Agenda Les niveaux d'abstraction d'un ordinateur L'assembleur
La mémoire La boucle d'exécution L'accès aux périphériques 1 2 3 4 5 6 STXT: First what is a Von Neumann Architecture, then how this device behaves and allows computer to do things. Finally we will see how this all boils down to a physical device. 7

40 Conversation avec périphérique
7 Conversation avec périphérique Certains périphériques demandent de l’attention Deux méthodes « d’attente » Scrutation (« polling »): aller voir souvent Interruption: aller voir lorsqu’on « sonne » Étapes d’un interruption Un circuit dédié reçoit les requêtes Le processeur arrête ce qu’il fait pour les traiter Une routine est exécutée par le processeur Le processeur reprend où il était Attention Interruption n’importe où? Sections critiques: possible d’empêcher les interruptions Comment arrêter et reprendre? 40

41 Agenda Les niveaux d'abstraction d'un ordinateur L'assembleur
La mémoire La boucle d'execution L'accès aux périphériques 1 2 3 4 5 6 STXT: First what is a Von Neumann Architecture, then how this device behaves and allows computer to do things. Finally we will see how this all boils down to a physical device. 7

42 Unité arithmetique- logique (ALU)
Sommaire Dessiner un diagramme de l’architecture de Von Neumann 1 2 Décrire la procédure suivie par une architecture de Von Neumann pour exécuter un programme enregistré Mémoire Entrées/Sorties Processeur Unité arithmetique- logique (ALU) STXT: The logical structure of almost every computer is given by the Von Neumann Architecture, where we have an Instruction Processor, a Memory, and Input/Output interfaces, interconnected by a bus. Unité de contrôle Accumulateur Processeur 42

43 Faire un liste des composants d'un processeur
Sommaire Faire un liste des composants d'un processeur 3 4 Décrire comment un processeur accède à une mémoire Donnée 1 Adr. sur puce Adr. vue par prog. « big-endian » 1 Adr. sur puce Adr. vue par prog. « little-endian » Mémoire Enable Read/Write Adresse STXT: The logical structure of almost every computer is given by the Von Neumann Architecture, where we have an Instruction Processor, a Memory, and Input/Output interfaces, interconnected by a bus. 43

44 Décrire un boucle d'exécution d'un processeur en langage RTN
Sommaire Décrire un boucle d'exécution d'un processeur en langage RTN 5 IR  M[PC] : PC  PC+4; add  R[IR26..22]  R[IR21..17] + R[IR16..12 Expliquer l'utilisation des pipelines pour rendre l'exécution plus rapide 6 Décrire le processus d'interruption pour un processeur 7 - Un circuit dédié reçoit les requêtes - Le processeur arrête ce qu’il fait pour les traiter - Une routine est exécutée par le processeur - Le processeur reprend où il était STXT: The logical structure of almost every computer is given by the Von Neumann Architecture, where we have an Instruction Processor, a Memory, and Input/Output interfaces, interconnected by a bus. 44


Télécharger ppt "INF1600: Architecture des micro-ordinateurs"

Présentations similaires


Annonces Google