20
Un programme Algorithme permettant au processeur de s'alimenter: I := 0; Répéter Chercher l'instruction qui est située à l'adresse I Décoder cette instruction Exécuter cette instruction I := I + 1; Jusqu'à la fin du programme Ces trois phases portent des noms particuliers: FETCH toujours réalisées DECODE de la même manière EXECUTE dépendante de l'instruction

Un programme

  • Upload
    ulema

  • View
    29

  • Download
    0

Embed Size (px)

DESCRIPTION

Un programme. Algorithme permettant au processeur de s'alimenter: I := 0; Répéter Chercher l'instruction qui est située à l'adresse I Décoder cette instruction Exécuter cette instruction I := I + 1; Jusqu'à la fin du programme Ces trois phases portent des noms particuliers:. - PowerPoint PPT Presentation

Citation preview

Page 1: Un programme

Un programme

Algorithme permettant au processeur de s'alimenter:

I := 0;Répéter

Chercher l'instruction qui est située à l'adresse IDécoder cette instructionExécuter cette instructionI := I + 1;

Jusqu'à la fin du programme

Ces trois phases portent des noms particuliers:

FETCH toujours réaliséesDECODE de la même manière

EXECUTE dépendante de l'instruction

Page 2: Un programme

Les éléments du processeurPC

Mémoire

MAR

MBR

D0

UAL

IR

CODE OPERANDES

Unité de contrôle

+ 1

Z || N || C || V

Phase FETCHPhase EXECUTE (La phase execute utilise aussi certains chemins communs à fetch)

Page 3: Un programme

Les éléments du processeur•Des registres : une cellule de stockage d'information

PC (Program Counter) : indique l'adresse de la prochaine instruction à traiterIR (Instruction Register) : stocke l'instruction à traiterMAR (Memory Adress Register) : stocke l'adresse du prochain accès en mémoireMBR (Memory Buffer Register) : stocke la dernière valeur lue ou la dernière valeur à écrireD0 (Data Zéro, appelé aussi accumulateur) : stocke une donnée

•Une UAL (Unité Arithmétique et Logique) effectue les calculs de base : +, ET, OU, NON

•Une unité de contrôle organise la circulation des infos à l'intérieur du microprocesseur.

PC -> MAR*MAR -> MBRMBR -> val + 0UAL -> IRPC + 1 -> PC

Phase FETCH :

Page 4: Un programme

La mémoire

Soit une mémoire d'une capacité C donnée en octets ou ko.

Plusieurs manières de l'organiser;

piqûre de rappel :

avec N : taille du bus d'adresse

M : taille du bus de données (en bits)

8 : coefficient entre bits et octets

8

.2 MC

N

Page 5: Un programme

Pyramide de la mémoire

registreséconomique rapide

RAM

Disques durs

CD / DVD

Bande magnétique (DAT,DLT)

Systèmes complets d'archivage (robots)

512 Mo

80 Go

10 Go

300 Go

100 To

qqs octets

volatile

Persistante

CACHE512 ko

Page 6: Un programme

Principe du cache

Objectif : améliorer les performances de la machine.

Notations : tglob = temps d'accès à une donnée

tm = temps d'accès à la mémoire

tc = temps d'accès au cache

Cm = capacité de la mémoire

Cc = capacité du cache

sans utiliser de cache, on a : tglob = tm

(on ne traite que la mémoire physique, pas la virtuelle)

Page 7: Un programme

Principe du cache

Comme de la mémoire 'simulant' la RAM

le processeur adresse une certaine quantité de mémoire Cm, mais ce n'est pas forcément la mémoire qui possède cette information.

Le cache peut en avoir une copie, auquel cas il répond à la place de la mémoire. Beaucoup plus intéressant !

CPU

RAM

CACHE

Page 8: Un programme

CPU transmet une adresse pour accéder à une donnée en RAM

Cette adresse va d'abord être présentée au cache :

• s'il possède la donnée correspondante : il la transmet au CPU

SUCCES ou CACHE HIT

• sinon : la donnée est en mémoire, il faut la faire transiter depuis la RAM

ECHEC ou CACHE MISS

Avec l’utilisation d’un cache, le temps d’accès à la mémoire est de :

tglob = h.tc+(1-h)(tc+tm)

Page 9: Un programme

Implémentation des caches

• les caches associatifs : chaque emplacement du cache contient une association adresse/donnée

• les caches à correspondance directe : chaque emplacement du cache ne correspond qu'à un nombre restreint d'adresses

Localité spatiale : lorsqu'un programme accède à une certaine adresse, il est probable qu'il accède à des adresses proches de celle-ci : transfert de plusieurs données dans le cache lors d'un MISS

Localité temporelle : lorsqu'un programme accède à une certaine adresse, il est probable qu'il y accède de nouveau peu de temps après : éliminer les données les plus anciennes d'abord (LRU)

Page 10: Un programme

Micro-processeur Mémoire

commandes

BUS

CPU RAM

Bus d’adresses

Bus de données

Échange de données

Page 11: Un programme

Échanges CPU/Mémoire

bus d ’adresse, bus de données et signaux de commande pour piloter l’esclave

Maître : CPU

Esclave : Mémoire

Lecture : CPU fournit adresse ou lire : via le bus d ’adresse

commande READ via signaux de commande

RAM fournit valeur stockée via le bus de données

Ecriture : CPU fournit adresse ou lire : via le bus d ’adresse

commande WRITE via signaux de commande

valeur à écrire via le bus de données

Page 12: Un programme

Types de BUSBUS synchrone :

possède sa propre fréquence,

synchronisation des dispositifs par rapport au BUS

utilisation des fronts du signal d'horloge du bus comme points de repère

toute transaction occupe un nombre entier de cycles de bus

Signal WAIT, déclenché quand bus adresse ok + RD + MREQ ok

BUS asynchrone :

pas d'horloge

les points de repère sont fournis pas des signaux annexes de synchronisation.

Chaque élément pilote un tel signal de synchronisation

signal MSYN : synchronisation maître

signal SSYN : synchronisation esclave

Dans les deux cas:MREQ on travaille avec la mémoireRD en lectureWR en écriture

Page 13: Un programme

Chronogrammes de BUS

Bus asynchrone

Les signaux

ADRESSES

MREQ

RD

MSYN

SSYN

DONNEES

Page 14: Un programme

ADRESSES

MREQ

RD

WAIT

DONNEES

C1C2 C3

Chronogrammes de BUSBus synchrone, fréquence 40 MHz

Page 15: Un programme

Mode bloc (bus synchrone)Transfert de plusieurs données à la suite :

une seule adresse fournie (sinon : plusieurs transactions)

=> valeurs localisées à des adresses successives

Ajout d'un signal supplémentaire BLOCK pour demande de lectures successives.

La mémoire indique les cycles de wait-state, puis transmet les données demandées à raison d'une par cycle.

Comparaison de performances :

Mode normal: N transactions, chacune de C cycles.

C : 1 cycle de préparation

W cycle(s) d'attente (wait state)

1 cycle de lecture

N.C = N (W + 2)

mode 'bloc' : 1 transactions, consommant C' cycles.

C' : 1 cycle de préparation

W cycle(s) d'attente (wait state)

N cycles de lecture (car mode bloc)

1 . C ’ = 1 + W + N

Page 16: Un programme

Limites des familles de BUS

Bus synchrone :

présence de cycles

transactions en nombre entiers de cycles

coût peu élevé : synchro faite par le bus.

Efficace pour une gamme de fréquence

Bus asynchrone :

transactions réglées au plus vite

signaux supplémentaires

coût élevé : synchro faite par les périphériques !

Efficace quelle que soit le débit du périphérique

Page 17: Un programme

Soit un bus synchrone de fréquence F (en MHz), et d'une largeur de N bits (N fils de données).

Fréquence F : nombre de changements d'état par seconde, chaque ligne de bus est indépendante :

Débit : Dmax = F. N (en bits/s-1).

Performances de bus

Autre exemple avec un dispositif vidéo : Quelle doit être la bande passante d'un bus vidéo pour réaliser un affichage de 60 images/s avec une résolution de 1024 768 en 32 bits ?

combien d'octets occupe une image 1024 768 en 32 bits ?

1024 768 4 = 3 Mo !

(60 images de 3 Mo) /s = 180 Mo/s

Page 18: Un programme

Gestion de bus, conflits

Arbitrage de l'accès au bus nécessaire car :

• Plusieurs éléments communicants

• un seul canal un seul dialogue à un instant donné

Réalisation basée sur 3 signaux :

• BR : Bus Request : demande de bus de la part des maîtres potentiels

• BA/BG : Bus Acknowledge/Bus Grant : attribution de bus

• BB : Bus Busy : bus occupé

Page 19: Un programme

Le Daisy Chaining

Arbitre centralisé

Périph 1 Périph 2 Périph n...

Bus Busy

Bus Grant

Bus Request

Les éléments désirant prendre le contrôle du bus émettent un signal BR : la ligne "bus request" arrivant à l'arbitre de bus réalise un OU câblé.

L'arbitre de bus ne voit donc qu'une requête globale : BR

Page 20: Un programme

Chaque module connecté au bus dispose de ses propres lignes BG et BR reliées au contrôleur de bus

avantages : absence de délai de réponse, de sensibilité aux pannes d'un module, et le caractère non statique de la priorité

inconvénient : multiplication des lignes de contrôle

Arbitre centralisé

Périph 1 Périph 2 Périph 3

Bus Busy

Requête - Autorisation