architecture des ordinateurs - accueilfmi.univ-tiaret.dz/images/2lmdinf/2019-2020/cour-12.pdf · 2...

30
2 LMD Architecture des ordinateurs 2019-2020 Chap. 1 Univ. Tiaret Mr A. CHENINE 1 Architecture des Ordinateurs Mr Abdelkader CHENINE [email protected] Vesrion : V1.0 Draft sept.2019 Université Ibn-Khaldoun Tiaret Département informatique 2 eme Année License Cours: ……………1h30 TD : ………………1h30 TP : ……………….1h30 Coefficient :………….. 3 Crédit : ……………….5 Unité fondamentale : UEF1 Chapitre 1 – Introduction Chapitre 2 – Principaux composant d’un ordinateur Chapitre 3 – Notions sur les instructions d’un ordinateur Chapitre 4 – le processeur Chapitre 5 – instructions spéciales

Upload: others

Post on 12-Jul-2020

18 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Architecture des Ordinateurs - Accueilfmi.univ-tiaret.dz/images/2lmdinf/2019-2020/cour-12.pdf · 2 LMD Architecture des ordinateurs 2019-2020 Chap. 1 Univ. Tiaret Mr A. CHENINE 2

2 LMD Architecture des ordinateurs 2019-2020 Chap. 1 Univ. Tiaret Mr A. CHENINE

1 �

Architecture des Ordinateurs Mr Abdelkader CHENINE

[email protected] Vesrion : V1.0 Draft sept.2019 Université Ibn-Khaldoun Tiaret Département informatique 2eme Année License

Cours: ……………1h30 TD : ………………1h30 TP : ……………….1h30 Coefficient :………….. 3 Crédit : ……………….5 Unité fondamentale : UEF1

Chapitre 1 – Introduction

Chapitre 2 – Principaux composant d’un ordinateur

Chapitre 3 – Notions sur les instructions d’un ordinateur

Chapitre 4 – le processeur

Chapitre 5 – instructions spéciales

Page 2: Architecture des Ordinateurs - Accueilfmi.univ-tiaret.dz/images/2lmdinf/2019-2020/cour-12.pdf · 2 LMD Architecture des ordinateurs 2019-2020 Chap. 1 Univ. Tiaret Mr A. CHENINE 2

2 LMD Architecture des ordinateurs 2019-2020 Chap. 1 Univ. Tiaret Mr A. CHENINE

2 �

Chapitre 1 – introduction

1.1 Notion d’architecture des ordinateurs

L’architecture d’un ordinateur est la description de ses unités fonctionnelles et de leurs interconnexions.

Fig. 1. Schéma1 d’un ordinateur

L’architecture a un impact direct sur la logique d’exécution d’un programme

Jeu d’instructions, Nombre de bits pour représenter les types de données (nombres, caractères, …) Mécanismes d’E/S, Techniques d’adressage de la mémoire

CPU

Processeur

Microprocesseur

Mémoire

Entrées/Sorties

(E/S) (I/O)

Page 3: Architecture des Ordinateurs - Accueilfmi.univ-tiaret.dz/images/2lmdinf/2019-2020/cour-12.pdf · 2 LMD Architecture des ordinateurs 2019-2020 Chap. 1 Univ. Tiaret Mr A. CHENINE 2

2 LMD Architecture des ordinateurs 2019-2020 Chap. 1 Univ. Tiaret Mr A. CHENINE

3 �

Fig. 2. Schéma2 d’un ordinateur

Fig. 3. Les premiers ordinateurs Fig. 4. Les nouveaux ordinateurs

Problème à résoudre

Hardware

Problème à résoudre

Software

Hardware

Unité de sortie

Mémoire

Unité de contrôle (C.U)

Unité Arithmétique et Logique (ALU)

R1 R2 Rn

Unité d’entrée

Page 4: Architecture des Ordinateurs - Accueilfmi.univ-tiaret.dz/images/2lmdinf/2019-2020/cour-12.pdf · 2 LMD Architecture des ordinateurs 2019-2020 Chap. 1 Univ. Tiaret Mr A. CHENINE 2

2 LMD Architecture des ordinateurs 2019-2020 Chap. 1 Univ. Tiaret Mr A. CHENINE

4 �

Programme = {instructions}

Code Machine : 00100100000000100000000000000101 00000000000000000000000000001100 00111100000000010001000000000001 10101100001000100000000000000100 00100100000000100000000000000101 00000000000000000000000000001100 00111100000000010001000000000001 10101100001000100000000000001000 00111100000000010001000000000001 10001100001010000000000000000100 00000001000000100010000000100000 00111100000000010001000000000001 10101100001001000000000000000000 00100100000000100000000000000001 00000000000000000000000000001100 00100100000000100000000000001010 00000000000000000000000000001100

Page 5: Architecture des Ordinateurs - Accueilfmi.univ-tiaret.dz/images/2lmdinf/2019-2020/cour-12.pdf · 2 LMD Architecture des ordinateurs 2019-2020 Chap. 1 Univ. Tiaret Mr A. CHENINE 2

2 LMD Architecture des ordinateurs 2019-2020 Chap. 1 Univ. Tiaret Mr A. CHENINE

5 �

1.2 Architecture de Von Neumann

L’architecture dite architecture de von Neumann est un modèle pour un ordinateur qui utilise une structure de stockage unique pour conserver à la fois les instructions et les données demandées ou produites par le calcul. Ce modèle est le résultat des travaux publiés en 1946 par le mathématicien John von Neumann, il est à la base des ordinateurs actuels.

a. Processor (ALU + CU + Memory (Registers)), b. Mémoire pour le programme & les données (MM), c. Dispositif d’entrée/Sortie (I/O)

Fig. 5. Architecture de Von Neumann

- Un seul bus pour le transfert des instructions et des données. - Cycle d’exécution est séquentielle

Fig. 6. Cycle d’exécution

CPU

Processeur

Microprocesseur

Entrées/Sorties

(E/S) (I/O)

Programme

Données

Recherche

Décodage Exécution

Page 6: Architecture des Ordinateurs - Accueilfmi.univ-tiaret.dz/images/2lmdinf/2019-2020/cour-12.pdf · 2 LMD Architecture des ordinateurs 2019-2020 Chap. 1 Univ. Tiaret Mr A. CHENINE 2

2 LMD Architecture des ordinateurs 2019-2020 Chap. 1 Univ. Tiaret Mr A. CHENINE

6 �

1.3 Architecture de Harvard

Le nom de cette structure vient du nom de l’université Harvard où une telle architecture a été mise en pratique pour la première fois avec Le Mark I en 1944.

Fig. 7. Architecture de Harvard

Les deux mémoires peuvent avoir des caractéristiques différentes, o Taille du mot, o Timing, o Technologie, o Structure de l’adresse

Mémoires séparées l’une pour le programme et l’autre pour les données accès simultanés aux données et aux instructions.

1.4 Comparaison Architecture de Von Neumann Architecture de Harvard 1 Mémoire partagée par les données et les

instructions Mémoires séparées pour les données et les instructions

2 Deux cycles d’horloges (un cycle pour la recherche de l’instruction et un cycle pour la recherche des données

Un seul cycle d’horloge

3 Le pipeline n’est pas possible Le pipeline possible 4 Conception simple Conception complexe (C.U) 5 Hardware minime Plus de hardware 6 Moins d’espace Plus d’espace7 Exécution moins rapide Exécution rapide8 Meilleure exploitation de la mémoire L’espace libre dans une mémoire ne peut être

utilisé par l’autre mémoire TD1 – La machine MINIAC

CPU

Processeur

Microprocesseur

Entrées/Sorties

(E/S) (I/O)

Programme Données

Page 7: Architecture des Ordinateurs - Accueilfmi.univ-tiaret.dz/images/2lmdinf/2019-2020/cour-12.pdf · 2 LMD Architecture des ordinateurs 2019-2020 Chap. 1 Univ. Tiaret Mr A. CHENINE 2

2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE

7 �

Chapitre 2 – Principaux composant d’un ordinateur

Le CPU

2.1 Introduction

Fig. 8 Composant du processeur

Page 8: Architecture des Ordinateurs - Accueilfmi.univ-tiaret.dz/images/2lmdinf/2019-2020/cour-12.pdf · 2 LMD Architecture des ordinateurs 2019-2020 Chap. 1 Univ. Tiaret Mr A. CHENINE 2

2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE

8 �

(calculs en flottant, calcul d'adresses ...)

Le Processeur (CPU) : traite les données et envoie des ordres aux autres composants

2.2 Exécution d'une instruction

2.2.1 Cycle d’instruction

Page 9: Architecture des Ordinateurs - Accueilfmi.univ-tiaret.dz/images/2lmdinf/2019-2020/cour-12.pdf · 2 LMD Architecture des ordinateurs 2019-2020 Chap. 1 Univ. Tiaret Mr A. CHENINE 2

2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE

9 �

Traiter une instruction implique les opérations suivantes :

Lire l’instruction en mémoire : fetch, Comprendre ce que fait l’instruction (addition ? multiplication ? …) : decode, Aller chercher les opérandes si nécessaire (en mémoire ou en registre) : read Exécuter l’instruction : execute, Éventuellement écrire les résultats dans un registre ou en mémoire : write back

2.2.2 Cycle d'exécution d'une instruction

À chaque signal de l'horloge :

1. fetch : 1.1 l'adresse i de l'instruction (par exemple 183) est transférée de CI vers RA,

1.2 on augmente de 1 la valeur de CI 1.3 le contenu du mot d'adresse mémoire i va (via le bus de données) dans RI

2. decode :

l'instruction est décodée (par exemple ici add 327, c'est à dire ajouter le mot à l'adresse 327 à l'accumulateur)

3. Execute : 3.1 l'adresse de la donnée (ici 327) est transférée dans RA 3.2 le contenu du mot d'adresse 327 (ici 56) est transféré dans l'UAL, ainsi que le contenu de

l'accumulateur (ici 14) : read 3.3 les 2 valeurs sont additionnée : execute proprement dit et le résultat est mis dans l'accumulateur :

write back

Page 10: Architecture des Ordinateurs - Accueilfmi.univ-tiaret.dz/images/2lmdinf/2019-2020/cour-12.pdf · 2 LMD Architecture des ordinateurs 2019-2020 Chap. 1 Univ. Tiaret Mr A. CHENINE 2

2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE

10 �

2.3 Jeu d’instruction [1]

2.3.1 Introduction

Le jeu d'instructions est l'ensemble des instructions machines qu'un processeur peut exécuter. Ces instructions machines permettent d'effectuer des opérations élémentaires (addition, ET logique…). Le jeu d'instructions définit quelles sont les instructions supportées par le processeur. Le jeu d'instructions précise aussi quels sont les registres du processeur manipulables par le programmeur.

Exemple

Page 11: Architecture des Ordinateurs - Accueilfmi.univ-tiaret.dz/images/2lmdinf/2019-2020/cour-12.pdf · 2 LMD Architecture des ordinateurs 2019-2020 Chap. 1 Univ. Tiaret Mr A. CHENINE 2

2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE

11 �

2.3.2 Classes des jeux d'instructions

« 0 adresse »

Dans cette architecture, les instructions vont directement agir sur la pile. Les opérandes sont automatiquement chargés depuis le pointeur de pile (SP, Stack Pointer), et le résultat est à son tour empilé.

L'opération A = B + C sera traduite par la séquence suivante :

Ce type d'architecture a été utilisé dans les calculatrices HP fonctionnant en notation polonaise inversée (post-fixée), dans les machines Burroughs de la gamme B 5000 et les miniordinateurs Hewlett-Packard de la gamme HP 3000. Il est aussi utilisé pour le FPU des processeurs x86.

« à accumulateur » Sur une machine de ce type, historiquement ne disposant que d'un seul registre, appelé Accumulateur, tous les calculs se font implicitement sur celui-ci.

Page 12: Architecture des Ordinateurs - Accueilfmi.univ-tiaret.dz/images/2lmdinf/2019-2020/cour-12.pdf · 2 LMD Architecture des ordinateurs 2019-2020 Chap. 1 Univ. Tiaret Mr A. CHENINE 2

2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE

12 �

L'opération A = B + C sera traduite par la séquence suivante :

« une adresse, registre - mémoire »

L'exemple A = B + C peut donc être traduit par la séquence :

« registre - registre » Exemple, la séquence A = B + C sera traduite en :

« mémoire - mémoire » L'expression A = B + C :

Exemple de traduction d’une instruction d’affectation avec évaluation d’une expression

Soit à traduire l’instruction d’affectation Python x=(a+b)*(c+d), où a, b, c et d sont des variables préalablemant définies. Le langage d’assemblage dispose des instructions add pour l’addition, mul pour la multiplication, mov pour le transfert de registre à registre ou de registre à mémoire, et des instructions load et store ou push et pop suivant le cas. On notera respectivement A, B, C et D les adresses des variables a, b, c et d (ces adresses doivent être déterminées par le programmeur). Ecrivons les programmes correspondants aux différentes situations énumérées ci-dessus.

Page 13: Architecture des Ordinateurs - Accueilfmi.univ-tiaret.dz/images/2lmdinf/2019-2020/cour-12.pdf · 2 LMD Architecture des ordinateurs 2019-2020 Chap. 1 Univ. Tiaret Mr A. CHENINE 2

2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE

13 �

2.4 Familles de processeurs

Une autre classification très connue est celle qui fait la différence entre processeurs CISC, RISC, VLIW, processeurs vectoriels, Architectures dataflow, DSP, etc. Cette classification se base surtout sur des idiomes architecturaux communs entre processeurs d'une même catégorie.

On distingue généralement les jeux d'instructions complexes (CISC) et les jeux d'instructions réduits (RISC). Ces deux philosophies de conception cohabitent. La plupart des architectures actuelles sont de type RISC, mais l'architecture x86 d'Intel est de type CISC. CISC

Les processeurs CISC embarquent un maximum d'instructions souvent très complexes mais prenant plusieurs cycles d'horloge. Leurs instructions gèrent aussi un grand nombre de modes d'adressages. Le jeu d'instructions x86 (CISC) équipe tous les processeurs compatibles avec l'architecture intel (qu'ils soient construits par Intel ou AMD). Il a reçu plusieurs extensions dont le passage à une architecture 64 bits, x86-64. Parmi les processeurs CISC notables, on peut citer, en plus du x86 :

VAX ; 68000.

RISC

À l'opposé, les processeurs RISC ont un jeu d'instructions plus réduit mais chaque instruction est codée simplement et n'utilise que quelques cycles d'horloge. Toutes ses instructions sont de la classe « registre-registre ». Il existe de nombreuses familles de processeurs RISC :

PowerPC ; SPARC ; ARM ; Alpha ; MIPS R3000.

Page 14: Architecture des Ordinateurs - Accueilfmi.univ-tiaret.dz/images/2lmdinf/2019-2020/cour-12.pdf · 2 LMD Architecture des ordinateurs 2019-2020 Chap. 1 Univ. Tiaret Mr A. CHENINE 2

2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE

14 �

Difference between RISC and CISC:

Page 15: Architecture des Ordinateurs - Accueilfmi.univ-tiaret.dz/images/2lmdinf/2019-2020/cour-12.pdf · 2 LMD Architecture des ordinateurs 2019-2020 Chap. 1 Univ. Tiaret Mr A. CHENINE 2

2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE

15 �

UAL

2.5 Unité arithmétique et logique

L'unité arithmétique et logique (UAL, en anglais arithmetic–logic unit, ALU), est l'organe de l'ordinateur chargé d'effectuer les calculs.

2.5.1 Différents types d'UAL

Les UAL peuvent être spécialisées ou pas. Les UAL élémentaires calculent sur des nombres entiers, et peuvent effectuer les opérations communes, que l'on peut séparer en quatre groupes :

1. Les opérations arithmétiques : addition, soustraction, changement de signe, etc. 2. les opérations logiques : compléments à un, à deux, et, ou, ou-exclusif, non, non-et, etc. 3. les comparaisons : test d'égalité, supérieur, inférieur, et leur équivalents « ou égal ». 4. éventuellement des décalages et rotations (mais parfois ces opérations sont externalisées).

Certaines UAL sont spécialisées dans la manipulation des nombres à virgule flottante, en simple ou double précision (on parle d'unité de calcul en virgule flottante (UVF, en anglais floating-point unit, FPU) ou dans les calculs vectoriels. Typiquement, ces unités savent accomplir les opérations suivantes :

additions, soustractions, changement de signe ; multiplications, divisions ; comparaisons ; modulos.

Certaines UAL, le plus souvent de la classe des FPUs, notamment celles des superordinateurs, sont susceptibles d'offrir des fonctions avancées :

inverse (1/x) ; racine carrée ; logarithmes ; fonctions transcendantes (sin x, cos x, etc.) ; opération vectorielle (produit scalaire, vectoriel, etc.) ; etc.

Les processeurs modernes font appel à plusieurs UAL, au moins deux : une située dans le chemin de contrôle pour incrémenter le registre de programme (de 1, 2, 4 ou 8 typiquement), et une autre dans le chemin de données pour traiter l'information. Pour augmenter leurs performances, elles sont le plus souvent pipelinées.

Page 16: Architecture des Ordinateurs - Accueilfmi.univ-tiaret.dz/images/2lmdinf/2019-2020/cour-12.pdf · 2 LMD Architecture des ordinateurs 2019-2020 Chap. 1 Univ. Tiaret Mr A. CHENINE 2

2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE

16 �

2.5.2 Drapeaux (D)

Il existe différents drapeaux qui définissent ou une erreur dans le résultat (division par zéro, dépassement de mémoire...), ou alors des codes conditions (supérieur, inférieur, égal à zéro...).

La plupart des UAL possèdent des drapeaux qui ont différentes significations, dont voici plusieurs exemples :

Report (en : Carry-out), transporte le report résultant d'une addition, la retenue résultant d'une opération de soustraction.

Zéro, indique que tous les bits de R sont égaux à zéro. Négatif, indique que le résultat de l'opération arithmétique est négatif. Débordement (en anglais : overflow), indique que le résultat d'une opération arithmétique a excédé la capacité

numérique de R.

Exemple Circuit d’une UAL de 1 bit

Fig.9 UAL 1 bit

Page 17: Architecture des Ordinateurs - Accueilfmi.univ-tiaret.dz/images/2lmdinf/2019-2020/cour-12.pdf · 2 LMD Architecture des ordinateurs 2019-2020 Chap. 1 Univ. Tiaret Mr A. CHENINE 2

2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE

17 �

Exemple d’UAL commercial

74LS181 (UAL 4 bits)

Opérandes sur A & B Type de fonctions sur M (1 logiques, 0 arithmétiques) Type d'opération sur S Résultat sur F

Page 18: Architecture des Ordinateurs - Accueilfmi.univ-tiaret.dz/images/2lmdinf/2019-2020/cour-12.pdf · 2 LMD Architecture des ordinateurs 2019-2020 Chap. 1 Univ. Tiaret Mr A. CHENINE 2

2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE

18 �

Les mémoires

Page 19: Architecture des Ordinateurs - Accueilfmi.univ-tiaret.dz/images/2lmdinf/2019-2020/cour-12.pdf · 2 LMD Architecture des ordinateurs 2019-2020 Chap. 1 Univ. Tiaret Mr A. CHENINE 2

2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE

19 �

2.6 RAM

Une mémoire est un ensemble de registres précédé par un décodeur qui permet de sélectionner un des registres. On distingue deux types de mémoire : RAM (mémoire vive) (Random Acces Memory) et ROM (mémoire morte) (Read Only Memory). Les ROM se programme une fois et leur contenu n'est pas modifié dans le circuit tandis que les RAM sont faites pour sauvegarder les données au moment de fonctionnement normal du circuit.

Le choix d'écriture ou lecture se fait par une entrée souvent appelée .

De l'autre côté, il faut aussi des lignes d'adresse qui sont utilisées pour sélectionner un des registres. Il y souvent une autre entrée (CS) qui sert à sélectionner le boîtier : si cette entrée n'est pas validée, le boîtier ne réagit pas.

Fig. 10 Schéma fonctionnel d’une mémoire RAM

Taille, organisation et capacité : nombre de mots, nombre de bits par mot et nombre total de bits.

Temps d’accès, le temps entre l’envoi de l’adresse et l’obtention de la donnée, et temps de cycle, le temps entre deux opérations mémoire successives.

Page 20: Architecture des Ordinateurs - Accueilfmi.univ-tiaret.dz/images/2lmdinf/2019-2020/cour-12.pdf · 2 LMD Architecture des ordinateurs 2019-2020 Chap. 1 Univ. Tiaret Mr A. CHENINE 2

2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE

20 �

Exemple de RAM commerciale

Am29F010 (https://pdf1.alldatasheet.com/datasheet-pdf/view/55454/AMD/AM29F010.html) visité le 12/11/2019

1 Megabit (128 K x 8-bit)

Fig.10 RAM 1 MB

Page 21: Architecture des Ordinateurs - Accueilfmi.univ-tiaret.dz/images/2lmdinf/2019-2020/cour-12.pdf · 2 LMD Architecture des ordinateurs 2019-2020 Chap. 1 Univ. Tiaret Mr A. CHENINE 2

2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE

21 �

La RAM est constituée d’un ensemble ordonné de 2m cellules, chaque cellule contenant un mot de n bits. Ces mots permettent de conserver les informations. On accède à n’importe laquelle de ces cellules au moyen de son adresse, nombre entier compris dans l’intervalle [0, 2m-1]. Cet accès est en temps constant quelle que soit la valeur de l’adresse (accès direct). Pour communiquer avec la mémoire, le bus est subdivisé en un bus d’adresse et un bus de données. Il existe deux types d’accès :

La lecture transfère sur le bus de données le mot contenu dans la cellule dont l’adresse est située sur le bus d’adresse.

L’écriture transfère dans la cellule dont l’adresse est sur le bus d’adresse, le mot contenu sur le bus de données

Fig.11 Boutisme (endianness)

Fig. 12 Mémoire de 32 mots de 8 bits

Comme nombre flottant

0101 0011 1111 1010 1000 0000 0010 0000 2.1517828096E12 Big endian 00100000100000001111101001010011 2.18496941221920751566765075274E-19 Little endian

Comme instructions MIPS 53 FA 80 20 beql $ra $k0 0x8020 (voir annexe 01) Big Endian 20 80 FA 53 addi $zero $a0 0xFA53 Little Endian (voir annexe 02) addi $0, $a0, 64083

Page 22: Architecture des Ordinateurs - Accueilfmi.univ-tiaret.dz/images/2lmdinf/2019-2020/cour-12.pdf · 2 LMD Architecture des ordinateurs 2019-2020 Chap. 1 Univ. Tiaret Mr A. CHENINE 2

2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE

22 �

1111101001010011 0000010110101100 1 0000010110101101 05AD -1453

2.6.1 RAM statiques / RAM dynamiques

Il y a deux technologies de fabrication des RAM : statiques et dynamiques, elles ont chacune leur domaine d'application

La SRAM ou RAM Statique est la plus ancienne. Les bits y sont mémorisés par des bascules électroniques dont la réalisation nécessite six transistors par bit à mémoriser. Les informations y restent mémorisées tant que le composant est sous tension. Les cartes mères utilisent une SRAM construite en technologie CMOS et munie d'une pile pour conserver de manière non volatile les données de configuration (setup) du BIOS. Le circuit de cette RAM CMOS est associé au circuit d'horloge qui lui aussi a besoin de la pile pour fonctionner en permanence même quand l'ordinateur est éteint. La SRAM est très rapide et est pour cette raison le type de mémoire qui sert aux mémoires cache.

La DRAM pour RAM dynamique est de réalisation beaucoup plus simple que la SRAM. Ce qui permet de faire des composants de plus haute densité et dont le coût est moindre. Chaque bit d'une DRAM est mémorisé par une charge électrique stockée dans un petit condensateur. Ce dispositif offre l'avantage d'être très peu encombrant mais a l'inconvénient de ne pas pouvoir garder l'information longtemps. Le condensateur se décharge au bout de quelques millisecondes (ms). Aussi pour ne pas perdre le bit d'information qu'il contient, il faut un dispositif qui lit la mémoire et qui la réécrit de suite pour recharger les condensateurs. On appelle ces RAM des RAM dynamiques car cette opération de rafraîchissement doit être répétée régulièrement.

Bus d'adresses et de données

Fig. 13 Câblage du µP et le mémoire

Page 23: Architecture des Ordinateurs - Accueilfmi.univ-tiaret.dz/images/2lmdinf/2019-2020/cour-12.pdf · 2 LMD Architecture des ordinateurs 2019-2020 Chap. 1 Univ. Tiaret Mr A. CHENINE 2

2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE

23 �

2.6.2 Registres

Register is a very fast computer memory, used to store data/instruction in-execution. A Register is a group of flip-flops with each flip-flop capable of storing one bit of information. An n-bit register has a group of n flip-flops and is capable of storing binary information of n-bits. A register consists of a group of flip-flops and gates. The flip-flops hold the binary information and gates control when and how new information is transferred into a register. Various types of registers are available commercially. The simplest register is one that consists of only flip-flops with no external gates. These days registers are also implemented as a register file. Loading the Registers The transfer of new information into a register is referred to as loading the register. If all the bits of register are loaded simultaneously with a common clock pulse than the loading is said to be done in parallel.

1. Serial In Serial Out shift register 2. Serial In parallel Out shift register 3. Parallel In Serial Out shift register 4. Parallel In parallel Out shift register

Page 24: Architecture des Ordinateurs - Accueilfmi.univ-tiaret.dz/images/2lmdinf/2019-2020/cour-12.pdf · 2 LMD Architecture des ordinateurs 2019-2020 Chap. 1 Univ. Tiaret Mr A. CHENINE 2

2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE

24 �

Les registres, qui sont des mémoires de petite taille (quelques octets), suffisamment rapides pour que l’UAL puisse manipuler leur contenu à chaque cycle de l’horloge. Un certain nombre de registres sont communs à la plupart des processeurs.

Compteur de programme : ce registre contient l’adresse mémoire de l’instruction en cours d’exécution ;

Accumulateur : ce registre est utilisé pour stocker les données encours de traitement par l’UAL ; Registre d’adresses : il contient toujours l’adresse de la prochaine information à lire par l’UAL : soit

la suite de l’instruction en cours, soit la prochaine instruction ; Registre d’instructions : il contient l’instruction en cours de traitement ; Registre d’état : il sert à stocker le contexte du processeur, ce qui veut dire que les différents bits de

ce registre sont des “ drapeaux” (flags) servant à stocker des informations concernant le résultat de la dernière instruction exécutée.

Pointeurs de pile : ce type de registre, dont le nombre varie en fonction du type de processeur, contient l’adresse du sommet de la pile (ou des piles) ;

Registres généraux : ces registres sont disponibles pour les calculs ;

Exemple de registre commercial

2.6.3 La mémoire cache (antémémoire)

Principe de localité

Localité spatiale : les accès futurs en RAM se feront à des adresses proches des accès courants Localité temporelle : une donnée accédée récemment sera certainement réutilisée prochainement

On combine :

1. Une petite mémoire rapide avec 2. Une grosse mémoire lente

Page 25: Architecture des Ordinateurs - Accueilfmi.univ-tiaret.dz/images/2lmdinf/2019-2020/cour-12.pdf · 2 LMD Architecture des ordinateurs 2019-2020 Chap. 1 Univ. Tiaret Mr A. CHENINE 2

2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE

25 �

Localité temporelle : on charge en mémoire rapide une donnée à laquelle on accède Localité spatiale : on charge aussi les voisines Politique de remplacement ?

Pas pratique

Performance du cache

Cache hit : la donnée est dans le cache accès rapide, Cache miss : la donnée n'est pas dans le cache accès lent

Le processeur a besoin en permanence des données à traiter et des instructions à exécuter. Mais la mémoire centrale ne peut fournir raisonnablement ces données à la vitesse dont le processeur en a besoin Solution : Utiliser une mémoire plus rapide entre la mémoire centrale et le processeur

Page 26: Architecture des Ordinateurs - Accueilfmi.univ-tiaret.dz/images/2lmdinf/2019-2020/cour-12.pdf · 2 LMD Architecture des ordinateurs 2019-2020 Chap. 1 Univ. Tiaret Mr A. CHENINE 2

2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE

26 �

Divers niveaux de mémoire cache Dans les microprocesseurs, on différencie plusieurs niveaux de caches, souvent au nombre de trois :

Le cache de premier niveau (L1), plus rapide et plus petit (cache de données pouvant être séparé du cache d'instructions) ;

Le cache de second niveau (L2), moins rapide et plus gros ; Le cache de troisième niveau (L3), encore moins rapide et encore plus gros ;

Ces derniers caches peuvent être situés dedans ou hors du microprocesseur.

Pour plus d’information voir [2] En résumé Caractéristiques des mémoires

Mode d'accès : aléatoire (RAM), séquentiel (disque dur), associatif (cache) Capacité d'écriture : ROM (en lecture seule), Non ROM (en lecture et écriture) Volatilité : maintien des informations en l'absence de courant ? (ROM : forcément non volatile, RAM : ça

dépend ; SDRAM : volatile ; NVRAM : non volatile ou RAM + pile : CMOS)

Les registres

Capacité : 8-16-32-64 bits Temps d'accès : 1 ps (10-12 s) Volatile

Static Random Access Memory (SRAM)

Capacité : 10 Ko - 10 Mo Temps d'accès : ≈ 1ns Volatile

Dynamic Random Access Memory (DRAM)

Capacité : 10 Go Temps d'accès : 80 ns (réécriture toutes les ms) Volatile Moins cher que la SRAM Actuellement DRAM DDR5 16 Gb

Disque magnétique

Capacité : 1 To – 4 To Temps d'accès : 10 ms Non volatile

Page 27: Architecture des Ordinateurs - Accueilfmi.univ-tiaret.dz/images/2lmdinf/2019-2020/cour-12.pdf · 2 LMD Architecture des ordinateurs 2019-2020 Chap. 1 Univ. Tiaret Mr A. CHENINE 2

2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE

27 �

La hiérarchie de mémoires

Page 28: Architecture des Ordinateurs - Accueilfmi.univ-tiaret.dz/images/2lmdinf/2019-2020/cour-12.pdf · 2 LMD Architecture des ordinateurs 2019-2020 Chap. 1 Univ. Tiaret Mr A. CHENINE 2

2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE

28 �

Annexe 01 (source : https://www.eg.bucknell.edu/~csci320/mips_web/) visité le 12/11/2019.

BEQL $ra $k0 0x8020 Binary: 01010011111110101000000000100000 Hex: 0x53FA8020

BEQL Branch on Equal Likely

MIPS Architecture Extension: MIPS II Format: BEQL rs, rt, offset [I-type]

Purpose: To compare GPRs then do a PC-relative conditional branch; execute the delay slot only if the branch is taken. Description: if (rs = rt) then branch_likely An 18-bit signed offset (the 16-bit offset field shifted left 2 bits) is added to the address of the instruction following the branch (not the branch itself), in the branch delay slot, to form a PC-relative effective target address. If the contents of GPR rs and GPR rt are equal, branch to the target address after the instruction in the delay slot is executed. If the branch is not taken, the instruction in the delay slot is not executed. Restrictions: None. Operation: I: tgt_offset <- sign_extend(offset || 02) condition <- (GPR[rs] = GPR[rt]) I+1: if condition then PC <- PC + tgt_offset else NullifyCurrentInstruction() endif Exceptions: Reserved Instruction Programming Notes: With the 18-bit signed instruction offset, the conditional branch range is ± 128 KBytes. Use jump (J) or jump register (JR) instructions to branch to more distant addresses.

Page 29: Architecture des Ordinateurs - Accueilfmi.univ-tiaret.dz/images/2lmdinf/2019-2020/cour-12.pdf · 2 LMD Architecture des ordinateurs 2019-2020 Chap. 1 Univ. Tiaret Mr A. CHENINE 2

2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE

29 �

Annexe 02 (source : https://www.eg.bucknell.edu/~csci320/mips_web/) visité le 20/11/2019.

ADDI $zero $a0 0xFA53 Binary: 00100000100000001111101001010011 Hex: 0x2080FA53

ADDI Add Immediate Word

MIPS Architecture Extension: MIPS I Format: ADDI rt, rs, immediate [I-type]

Purpose: To add a constant to a 32-bit integer. If overflow occurs, then trap.

Description: rt <- rs + immediate The 16-bit signed immediate is added to the 32-bit value in GPR rs to produce a 32-bit result. If the addition results in 32-bit 2's complement arithmetic overflow then the destination register is not modified and an Integer Overflow exception occurs. If it does not overflow, the 32-bit result is placed into GPR rt.

Restrictions: On 64-bit processors, if GPR rs does not contain a sign-extended 32-bit value (bits 63..31 equal), then the result of the operation is undefined.

Operation: if (NotWordValue(GPR[rs])) then UndefinedResult() endif temp <- GPR[rs] + sign_extend(immediate) if (32_bit_arithmetic_overflow) then SignalException(IntegerOverflow) else GPR[rt] <- sign_extend(temp31..0) endif

Exceptions: Integer Overflow

Programming Notes: ADDIU performs the same arithmetic operation but, does not trap on overflow.

Page 30: Architecture des Ordinateurs - Accueilfmi.univ-tiaret.dz/images/2lmdinf/2019-2020/cour-12.pdf · 2 LMD Architecture des ordinateurs 2019-2020 Chap. 1 Univ. Tiaret Mr A. CHENINE 2

2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE

30 �

Références

[1] Ref. : https://fr.wikipedia.org/wiki/Jeu_d%27instructions visité le 11/11/2019

[2] https://fr.wikibooks.org/wiki/Fonctionnement_d%27un_ordinateur/Les_m%C3%A9moires_cache

Visité le 19/11/2019