architecture-type

publicité
ARCHITECTURE TYPE
I) Architecture élémentaire
II) La mémoire
A) Mémoire centrale (MC)
Généralités
Structure générale d’un boîtier
Classification des boîtiers
Réalisation de la MC
B) Mémoires auxiliaires
C) Gestion de la mémoire
D) Hiérarchie des mémoires
III) L’unité centrale (UC)
IV) Les bus
V) Une architecture réelle : le 8086
A) Le boîtier processeur et ses 40 broches
B) Architecture interne
C) Adresses physiques et accès mémoire
D) Segmentation mémoire
E) Pile
I) Architecture élémentaire :
- machine de Von Neumann constituée de : 
- Unité centrale
- Mémoire centrale
- Interfaces d’entrée/sortie
Unité Centrale (UC)
 Exécute les instructions du programme (déroulement) selon l’ordre logique voulu par le
programmeur (Unité de commande);
 Assure le traitement des données (Unité de calcul).
Mémoire centrale (MC)
 Mémorisation des données et du programme en cours d’exécution;
 Programme = ensemble d’instructions écrites par le programmeur dans un ordre logique.
Interfaces d’entrée/sortie
 Servent à communiquer avec l’extérieur :
- entrée du programme et des données
- restitution du résultat
 Actuellement :

Unité d’échanges : gère les transferts d’information entre UC et périphériques

Périphériques de communication nombreux et variés :
- de sortie : écran, imprimante, table traçante, périph vocaux…
- d’entrée : clavier, souris, lecteur de codes barres, de cartes magn., crayon
optique, écran tactile…

Périphériques de stockage d’informations : mémoire externe ou auxiliaire :
- disques magnétiques ou optiques
- disquettes
- bandes magnétiques…
II) La mémoire :
A) Mémoire centrale (MC) :
Généralités
 Données mémorisées sous forme de séquences binaires obtenues par codage :

Entier non signé : binaire pur

Entier signé : convention C2

Réel : convention IEEE, par ex

Chaîne de caractères : ASCII, par ex
 Compilation ou assemblage => Chaque instruction est encodée dans le langage machine et
aboutit à une séquence binaire de longueur variable;
 Les séquences binaires obtenues pour le programme sont rangées consécutivement en MC;
 Données + Programme  séquences binaires => MC = ensemble d’éléments mémoire;
 n éléments mémoire constituent un mot de n bits;
 mot = plus petite unité de mémoire adressable, de taille fixe sur une machine donnée;
 chaque mot a une adresse distincte;
 adressage = numérotation binaire séquentielle; 
adresses
contenus
0
(x-1)
x
Le mot mémoire d’adresse x
a pour contenu y
y
(x+1)


adresse de taille n bits => 2n adresses distinctes;
capacité maximum adressable :
adresse n bits
mot de m bits


=> capacité
= 2n mots
= 2n x m bits
Capacité exprimée souvent en octets
1 octet ou byte = 8 bits
Unités utilisées :
- Kilo : 1 K = 210
- Méga : 1 M = 220
- Giga : 1 G = 230
- Téra : 1 T = 240
- Péta : 1 P = 250
- Exa
: 1 E = 260
exemple 1 :
mot = 1 octet = 8 bits
taille adresse = 16 bits
capacité = 216 octets = 26 Koctets = 64 Ko
= 64 x 8 K bits = 512 Kbits
exemple 2 :
capacité = 2 Mbits
mot = 1 octet
2 Mbits = 2x220 bits = 218x23 bits = 218 octets
= 218 mots => adresse sur 18 bits

adressage direct <=> accès à un mot quelconque à partir de son adresse, sans parcourir les
précédents
 2 opérations possibles sur la mémoire:
lecture d’un mot d’adresse donnée <=> sortie du contenu
écriture d’une information dans un mot d’adresse donnée <=> entrée de cette
information
 Ces opérations mettent en jeu : 
des adresses
des données
des commandes
 Donnée : - lue en MC puis amenée dans l’Unité de calcul pour opération
- écrite en MC ( résultat d’un calcul)
 Instruction : seulement lue en MC puis amenée dans l’UC pour y être exécutée. 

Remarque : une information (donnée ou instruction) peut occuper plusieurs mots contigus
en mémoire => plusieurs lectures ou écritures nécessaires
 volatilité : quand le contenu peut être perdu
 temps d’accès indépendant de l’adresse
= intervalle séparant le lancement d’une opération et son accomplissement = moyenne entre
temps de lecture et temps d’écriture
 Cycle mémoire = intervalle de temps entre 2 opérations successives
Cycle mémoire > temps d’accès
 La MC est constituée de boîtiers mémoire
Structure générale d’un boîtier: 
 Matrice de points mémoire
Point mémoire = élément mémoire 1 bit
 Décodeur d’adresses
= circuit de sélection du mot recherché
2 modes de sélection :
linéaire
à 2 dimensions

Sélection linéaire 
- matrice de 2n lignes et (m + 1) colonnes
- décodeur : reçoit l’adresse n bits
active une de ses 2n sorties
- ligne activée = mot sélectionné : (m + 1) bits
- capacité = 2n mots = 2n x (m + 1) bits
Sélection à 2 dimensions 
- (m + 1) plans
- un seul bit sélectionné par plan => mot = (m + 1) bits
- adresse n bits coupée en
* adresse ligne (j bits)
* adresse colonne (n - j bits)
- chaque plan possède 2 décodeurs
* décodeur ligne (active une ligne)
* décodeur colonne (active une colonne)
- point mémoire sélectionné : à l’intersection de la ligne et de la colonne
- capacité = 2j x 2n-j = 2n mots
= 2n x (m + 1) bits
 Tampon d’E/S
- registre servant à stocker une donnée lue ou une donnée à écrire
- dispose de sorties 3 états
 Logique de contrôle
- prend en compte les commandes émanant de l’unité de commande :
 R(ead) : ordre de lecture
 W(rite) : ordre d’écriture, appliqué sur la broche de lecture notée R/W
R/W = 1 => lecture commandée
R/W = 0 => écriture commandée
 CS (Chip Select) ou CE (Chip Enable) : sélection du boîtier


Sur les boîtiers de grande capacité, remplacé par :
CAS : validation colonnes
et RAS : validation lignes
adresse ligne
adresse entrée en 2 parties
adresse colonne
Par multiplexage, les 2 parties d’adresse sont présentées sur les mêmes broches d’adresse =>
moins de broches.
1er temps : adresse ligne entrée et stockée dans le tampon ligne;
2ème temps : adresse colonne entrée et stockée dans le tampon colonne. 
Classification des boîtiers mémoire
 Mémoires mortes
une fois enregistré, contenu non volatile
 ROM (Read Only Memory) :
contenu programmé par le constructeur
Seule opération possible : lecture
Utilisées pour les programmes résidents
 PROM (Programmable ROM)
contenu programmable par l’utilisateur
 REPROM (Reprogrammable ROM)
effacement et reprogrammation possibles mais lents.
 Mémoires vives
lecture et écriture possibles.
 SRAM (Static Random Access memory) point mémoire RAM ; utilisée dans les
mémoires caches; 
 DRAM (Dynamic RAM) régénération périodique de leur contenu ; de plus grande
capacité que les précédentes;
 SDRAM (Synchronous DRAM) synchronisée avec le processeur (=> pas d’attente).
 Quelques exemples de boîtiers : 
- pas de broche R/W => mémoire morte
- broche de programmation => REPROM
- broche R/W => RAM
- nombre de broches d’adresse = taille de l’adresse sauf si multiplexage d’adresse
- pour une mémoire morte : nombre de broches de donnée = taille de la donnée lue
- pour une mémoire vive :
Nombre de broches de donnée en entrée
Nombre de broches de donnée en sortie
(donnée à écrire)
= (donnée lue)
= taille de la donnée
- broches CAS et RAS <=> multiplexage de l’adresse => taille adresse = 2 x nombre de
broches d’adresse
Réalisation de la mémoire centrale
 Puces ou boîtiers répartis en cartes; MC = ensemble de cartes. 

Composition du mot mémoire :
 un bit par carte
mot = ensemble des bits de même adresse sur chaque carte
adresse du mot = n° de la puce + adresse dans cette puce
 un bit par puce
mot = ensemble des bits de même adresse dans un groupe de puces
adresse du mot = n° du groupe + adresse dans chaque puce du groupe
 plusieurs bits par puce
mot = ensemble de bits d’une même puce

 l’organisation, aucune influence sur la capacité, ni sur la longueur de l’adresse. Seule
change la répartition des bits d’adresse.
B) Mémoires auxiliaires ou de masse





non volatiles
de capacité bien supérieure
d’accès lent
peu chères
plus volumineuses

-

-
Disques magnétiques
Disques amovibles : enfermés dans des boîtiers anti-chocs amovibles;
Unité de disques = empilement de disques dont les 2 faces sont magnétisables; 
Chaque face de disque est constituée de pistes concentriques de même capacité => la
densité en bpi (bit per inch) augmente en approchant de l’axe;
Chaque piste est divisée en secteurs (délimités par un angle);
Les têtes de lect/écrit ‘planent’ au dessus de la surface => propreté absolue
atterrissage de têtes  destruction des données;
Déplacement simultané des têtes de L/E => accès simultané à un cylindre = ensemble
de pistes situées sur la même verticale;
Formatage physique = constitution des pistes et des secteurs;
Formatage logique = enregistrement d’informations nécessaires à la gestion du disque
(notamment repérage des zones endommagées);
Accès semi-séquentiel :
 positionnement direct sur la piste;
 parcours séquentiel de la piste jusqu’au secteur recherché.
Quelques chiffres. 
Disquettes 31/2
Disque souple en mylar recouvert d’oxyde magnétisable  2 faces enregistrables
Cliquet ouvert = écriture impossible
Densité : double, haute, extra haute
Découpage en pistes et secteurs
Formatages physique et logique confondus
 Disques optiques numériques (DON)
- Enregistrement : pour un 1, un rayon laser crée :
 un trou ou cuvette dans une surface qui fond sous la chaleur émise : CD-ROM
(Compact Disc ROM : enregistrés en usine)
 une déformation ou bulle : WORM (Write Once Read Many : écrits une seule fois,
lus à volonté)
 une polarisation de la lumière réfléchie (selon le sens de magnétisation du support)
modifiable (disques optiques réinscriptibles)
un changement d’état (amorphe, absorbant la lumière  cristallin, réfléchissant la
lumière) réversible (disques magnéto- optiques)
- Les DVD (Digital Versatile Disk) : nouvelle technologie de laser (rayon bleu, plus précis =>
diminution de l’espace inter-pistes)

 Bandes magnétiques et cartouches
- servent à l’archivage des informations
- accès séquentiel
C) Gestion de la mémoire :

Cycle UC (= temps d’une opération élémentaire) très inférieur au cycle mémoire 
mémoire trop lente
 Mémoire cache primaire 
- intégrée au microprocesseur
- extrêmement rapide
- très petite (quelques Ko)
 Mémoire cache secondaire
- très rapide
- faible capacité (jusqu’à 512 Ko)
mémoires caches : SRAM
 Mémoire entrelacée 
- Division de la MC en blocs indépendants => possibilité de lancer des opérations simultanées
sur des blocs distincts <=> recouvrement de cycles mémoire;
- Entrelacement <=> placer les informations d’adresses successives dans des blocs différents.
 MC trop petite =>
- mémoire virtuelle = MC + mémoires auxiliaires
=> adresse virtuelle  adresse physique réelle
- technique de la pagination
une page = volume précis d’informations
En MC, à un instant donné : pages nécessaires au programme en cours d’exécution
Autres pages : stockées en mémoire auxiliaire
L’utilisateur croit disposer d’une MC très grande.
 MC partagée entre plusieurs utilisateurs => protection
- partitionnement (fixe ou dynamique) de la MC
- segmentation : programme divisé en N segments
- segment = une entité logique (bloc de données, procédure,…) dont on peut protéger l’accès
en écriture (procédure) ou depuis un autre utilisateur
D) Hiérarchie des mémoires :
Différents niveaux de mémoire de rapidité  et de coût  :
 Registres de l’UC;
 Mémoire cache primaire;
 Mémoire cache secondaire;
 Mémoire centrale;
 Mémoire d’appui, dans les gros ordinateurs, mémoire à semi-conducteurs, tampon
entre MC et mémoires auxiliaires.
III) L’unité centrale :
- boîtier microprocesseur :
exemples :
8086 boîtier à 40 broches
80486DX boîtier à 168 broches
- constituée de :
Unité de commande ou de contrôle
Unité arithmétique et logique
Registres
Unité de commande
 Structure 
- compteur ordinal (CO) contient l’adresse de la prochaine instruction à exécuter;
- registre d’instruction (RI) contient l’instruction en cours d’exécution;
- séquenceur/décodeur;
- horloge pour la synchronisation.

Rôle :
 Déroulement d’un programme
- ordre de recherche de la prochaine instruction ( ordre de lecture en MC)
- stockage de cette instruction dans registre RI (de taille N mots = taille max d’une
instruction)
- mise à jour du CO :
CO := CO + n avec 1  n  N
- décodage de cette instruction
 Exécution de l’instruction décodée grâce à des commandes :
- émises par le séquenceur
- synchronisées sur l’horloge
- envoyées aux autres unités
 Séquenceur microprogrammé
chaque type d’instruction
du langage machine
<=>
un µ-programme composé de
µ-instructions
µ-programmes stockés dans une ROM interne à l’unité de commande.
Unité Arithmétique et Logique
 Structure (polyvalente) 
UAL
Registre accumulateur
Registre d’état

Rôle :
-
arithmétiques
logiques
de décalage
mise à jour des indicateurs d’état notamment selon le résultat calculé
opérations

Registre d’état = ensemble des indicateurs d’état;
Indicateur d’état = bit à 0 ou 1. 

Réalisation d’une addition
Registres
* 2 catégories : registres banalisés
registres spécialisés

registres banalisés : pour stockage temporaire d’opérandes et de résultats de calcul avant
rangement en MC

registres spécialisés : rôle particulier dans le calcul des adresses de données ou
d’instructions en relation avec les modes d’adressage
Certains registres (index et base) peuvent être banalisés.
IV) Les bus – architecture générale d’un processeur :










Bus spécialisé :
de données
d’adresses
de commandes 
Bus d’adresses : unidirectionnel car les adresses circulent de l’UC vers la MC
Bus de données : bidirectionnel
les données circulent :
- de l’UC vers la MC (données à écrire)
- de la MC vers l’UC (données ou instructions lues)
Bus interne à l’UC
Bus externe ou bus d’extension
Mode de fonctionnement : synchrone ou non (avec le processeur)
Bus parallèle : de largeur n bits <=> n bits transportés en //
Bus série : transfert bit par bit
Processeur vrai p bits 
p bits
= taille du mot mémoire
= largeur du bus externe des données
Processeur faux p bits  p bits
= taille du mot mémoire
> largeur du bus externe des données 
V) Une architecture réelle : le 8086
A) Le boîtier processeur et ses 40 broches: 



Entrées/sorties :
AD0…AD15 :
16 entrées ou sorties de données
ou
16 sorties d’adresses
16 broches communes adresse/donnée => multiplexage bus de données et bus d’adresses;
Sorties :
A16, …A19 : 4 bits de forts poids de l’adresse => adresse 20 bits;
8086 en mode minimum. 
B) Architecture interne : 


RI remplacé par une file d’attente de 6 octets (organisation FIFO : First In, First Out);
2 parties :
- Unité d’exécution (UE) : exécute les instructions arithm. et logiques
- Unité d’interface bus (UIB) : recherche en avance des octets d’instructions et les stocke
dans la file d’attente;

Mode pipe-line <=> La partie génération des adresses d’instructions de UIB travaille en
parallèle avec la partie UE pour la recherche d’instructions en MC.
=> accélération des traitements (UE n’attend pas);
=> et bus presque toujours actif. 
Cependant, UE interrompt UIB et doit attendre en cas de :
- Rupture de séquence dans les instructions;
- Entrée/Sortie;
- Lecture ou d’écriture de donnée en MC.


14 Registres de taille 16 bits;
Registres généraux
- de données AX, BX, CX, DX
- d’index SI et DI
- pointeurs sur la pile SP et BP
accessibles au programmeur (rôle général), ont souvent un rôle spécifique :
- AX et DX opérandes implicites (dans les  et / et les E/S);
- CX est compteur pour instructions de décalage et sur chaînes de caractères;
- BX et BP sont des registres de base pour l’adressage basé;
- SI et DI sont des registres d’index pour l’adressage indexé (Source, Destination Index);
- SP est le registre pointeur sur sommet de pile (Stack Pointer);
- BP est un registre pointeur sur un endroit quelconque de la pile (Base Pointer).

Registres de données
Chacun se divise en 2 registres de 8 bits
ex : AX
15 … … … …8 7 … … … … 0
PF de AX
pf de AX
registre AH
registre AL
pf = poids faibles
PF = poids forts
De même :
BX
CX
DX



BH et BL
CH et CL
DH et DL
 Registre d’état : 
contient 9 indicateurs d’état
Autres bits non réservés ou non définis
6 indicateurs informent sur le dernier résultat calculé par l’UAL
3 autres sont dits de contrôle
 4 Registres de segment :
CS, DS, ES et SS
Ils repèrent 4 segments en MC
- le segment de code repéré par CS
- le segment de données repéré par DS
- le segment de données supplémentaires repéré par ES (extra segment)
- le segment de pile repéré par SS (stack)

Compteur ordinal
constitué de 2 registres CS et IP qui forment l’adresse segmentée (CS : IP) de la prochaine
instruction à exécuter
C) Adresses physiques et accès mémoire






taille adresse physique = 20 bits
plus petite unité adressable = 1 octet
=> capacité adressable = 220octets = 1Mo
mot = 16 bits;
double mot = 32 bits.
Adresse d’un mot (ou d’un double mot) = adresse de son octet le plus bas; 
Contenu d’un mot (ou d’un double mot) : les poids faibles sont rangés à l’adresse la plus
basse;
MC structurée en 2 bancs : un pour les adresses paires, un pour les adresses impaires;
Accès à : 
- un octet
- un mot (16 bits)
d’adresse paire
d’adresse impaire (plus long)
D) Segmentation mémoire :

Segment = portion de mémoire de 216 octets = 64 Ko
L’adresse physique d’un segment est un multiple de 16 => 20 bits dont les 4 derniers bits
sont à 0; 

Chaque registre de segment reçoit l’adresse physique du segment correspondant,
débarrassée de ses 4 derniers 0. Cette adresse tronquée est appelée base de segment; 

A un instant donné : 4 segments accessibles au programmeur (soit 4 * 64 Ko) : 
- Le segment de code  CS
- le segment de données  DS
- le segment de données supplémentaires (extra)  ES
- le segment de pile (stack)  SS

Adressage des octets depuis le début de la MC : adresse physiques 20 bits


Si on numérote les 216 octets d’un segment : 
0 < numéro < (FFFF)16
Ce numéro s’appelle déplacement (ou adresse réduite) et a pour taille 16 bits.
C’est une adresse relative au début du segment.
Une adresse a 3 formes possibles :
soit adresse physique ou absolue (20 bits);
soit adresse segmentée (ou adresse logique) en 2 parties (2  16 bits), s’écrit :
(base de segment : déplacement);
soit adresse réduite ou offset (16 bits)
la base de segment étant implicite forme la plus fréquente dans les instructions
=> gain de 4 bits sur chaque adresse. 
 Calcul de l’adresse physique à partir de l’adresse segmentée: 
Ex1 :
une instruction a pour adresse réduite ( 0023 )16 => son adresse segmentée = ( CS : 0023 )16
CS = ( 1A02 )16 => son adresse physique = 1A020 + 0023 = (1A043)16
Ex2 :
une variable a pour adresse réduite ( 0030)16 => son adresse segmentée = ( DS : 0030 )16
Base de segment implicite :
DS = ( 2CFB )16 => son adresse physique = 2CFB0 + 0030 = ( 2CFE0 )16

Interprétation du contenu d’un double-mot. 

4 registres de segment => Le programmeur a accès à 4 segments au plus à un instant
donné (soit 4  64Ko). 

Cas particuliers :
- 2 registres de segment peuvent repérer le même segment;
- 2 segments peuvent se recouvrir partiellement.
E) Pile :

zone de mémoire vive (segment) organisée en LIFO (Last In, First Out)
utilisée :
 par le système pour mémoriser des événements et des contextes selon un ordre
chronologique
Exemples : Le système sauvegarde :
l’adresse de retour à la procédure appelante si appel de procédure
le contenu du registre d’état si programme interrompu
 soit par le programmeur
Exemples : Le programmeur l’utilise :
- pour passer des paramètres à une procédure
- en guise de registres de travail supplémentaires

2 opérations sur la pile :
empiler (PUSH) 
dépiler (POP) 
Le pointeur sur sommet est automatiquement:
décrémenté si PUSH
incrémenté si POP
La famille iAPX
 8086 vrai 16 bits
 8088 faux 16 bits :
- bus interne 16 bits
- bus externe 8 bits
 80286 vrai 16 bits 4 fois plus rapide
- horloge jusqu’à 20MHz
- bus d’adresse 24 bits => 16 Mo adressables
- gestion mémoire intégrée => 1 Go de mémoire virtuelle
 80386DX vrai 32 bits
- horloge jusqu’à33MHz
- bus d’adresse 32 bits => 4 Go adressables
- mémoire virtuelle de 64 To
 80486DX vrai 32 bits intégrant :
- une unité de calcul pour les entiers
- une unité de calcul pour les flottants
- une mémoire cache de 8 Ko
 Pentium
- Bus de données externe 64 bits
- Registres 32 bits
- 2 unités d’exécution indépendantes de 32 bits capables de fonctionner simultanément
(architecture superscalaire)
- 2 caches de 8 Ko pour instructions et données séparées
- 2 pipe-lines de 5 étages permettant chacun d’exécuter en parallèle : chargement,
décodage, génération d’adresse, exécution, écriture du résultat  5 instructions
traitées simultanément
- horloge jusqu’à 200MHz
 Pentium Pro
- même architecture que le Pentium
- 2 caches de 8 Ko pour données et instructions séparées
- 256 ou 512 Ko de cache secondaire intégré
- En plus de la technique pipe-line, anticipation du traitement des instructions
- fonctions de gestion du multimédia (processeur MMX traite plusieurs données dans
un seule instruction)
 Pentium II
- même architecture que le Pentium Pro
- nouveau bus DIB
- horloge jusqu’à 400 MHz
Téléchargement