architecture des systèmes programmés - · pdf file1975 8 bits 3ème g....

20
septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 1 Architecture des Systèmes Programmés (6 conférences) Architectures CISC et VLIW : J.Weiss 4 conférences Microprocesseurs 8, 16 et 32 bits d’usage général (8080, ..., Pentium 4) Microcontrôleurs 8 et 16 bits (68hc11, 8051 et PIC) Nouvelles architectures (Itanium, IA64 et TransMeta) Processeurs graphiques (GPU) Mémoires Architectures RISC et DSP : P. Leray 2 conférences Processeurs RISC (PowerPC, Alpha, ...) DSP (TMS320, 56000, ...) Bus de communications septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 2 Architectures ZISC : Zero Instruction Set Computer Autrement dit : Processeur Câblé (et donc PAS programmé) CISC : Complex Instruction Set Computer Processeur possédant un jeu d’instructions fourni de longueur et de temps d’exécution variables. VLIW : Very Long Instruction Word Processeur possédant un jeu d’instructions encore plus fourni que le cas du CISC (longueur et temps d’exécution variables). RISC : Reduced Instruction Set Computer Processeur possédant un jeu d’instructions réduit de longueur et de temps d’exécution fixes Page 1

Upload: lamdung

Post on 05-Feb-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 1

Architecture des Systèmes Programmés

(6 conférences)

Architectures CISC et VLIW : J.Weiss 4 conférencesMicroprocesseurs 8, 16 et 32 bits d’usage général (8080, ..., Pentium 4)Microcontrôleurs 8 et 16 bits (68hc11, 8051 et PIC)Nouvelles architectures (Itanium, IA64 et TransMeta)Processeurs graphiques (GPU)Mémoires

Architectures RISC et DSP : P. Leray 2 conférencesProcesseurs RISC (PowerPC, Alpha, ...)DSP (TMS320, 56000, ...)Bus de communications

septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 2

Architectures

ZISC : Zero Instruction Set ComputerAutrement dit : Processeur Câblé (et donc PAS programmé)

CISC : Complex Instruction Set ComputerProcesseur possédant un jeu d’instructions fourni de longueur et de temps d’exécution variables.

VLIW : Very Long Instruction WordProcesseur possédant un jeu d’instructions encore plus fournique le cas du CISC (longueur et temps d’exécution variables).

RISC : Reduced Instruction Set ComputerProcesseur possédant un jeu d’instructions réduit de longueur et de temps d’exécution fixes

Page 1

septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 3

Microprocesseurs d’usage généralà architecture CISC

Architecture de base des microprocesseursHistorique de l’informatique et des MicroprocesseursALU, RegistresComposants périphériques

Microprocesseurs et Microcontrôleurs 8 bitsMicroprocesseurs 16 bits

Gestion de mémoire virtuelle, caches

Microprocesseurs 32 bits1ère Génération : 80386, 680202ème Génération : Pentium3ème Génération : Pentium Pro, Pentium II4ème Génération : Pentium 4, TransMeta

Microprocesseurs 64 bits

septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 4

50 ans d’histoire del’industrie informatique

ENIAC :1er Ordinateur

1947

Mise au pointdu transistor

1948

1er ordinateurIBM

1955

Fondation deFairchild SC

1957

Invention ducircuit intégré

(Kilby et Noyce)

1958-59

Mini-ordinateurDEC

1963

Fondation d’Intel

1968

1971

1er µP1ère EPROM

Intel

Fondation deMicrosoft

1975

1977

Apple II

1981

IBM-PC

1985

386

1989

486

1993

Pentium

1997

Pentium II

2000

Pentium 4

Page 2

septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 5

État de l’informatique en 1968

1948 : 1er ordinateur : ENIAC (30 tonnes 85 m3)(Electronic Numerical Integrator And Computer)

1968 : 30.000 ordinateurs dans le monde :Mainframes (plusieurs pièces)Mini-ordinateurs (taille d’un réfrigérateur)

Programmation : Cartes et bandes perforées

septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 6

Historique des Microprocesseurs CISC

1960 Premiers CI1964 SSI AND, OR1968 MSI Registres1971 LSI DRAM 1 kbits, µP 4 bits (4004d’Intel)2,3 kT1972 8 bits 1ère G. 8008(Intel)1973 8 bits 2ème G. 8080 (Intel), 6800(Motorola)1975 8 bits 3ème G. 8085(Intel), 6809(Motorola), Z80 (Zilog)1976 16 bits 1ère G. TMS 9900(Texas Instruments)1978 16 bits 1ère G. 8086(Intel) IBM-PC/XT1979 16 bits 1ère G. 68000(Motorola) MAC1982 16 bits 2ème G. 80286(Intel) IBM-PC/AT1983 32 bits 1ère G. 32032(National)1984 32 bits 1ère G. 80386 (Intel), 68020(Motorola)1987 32 bits 1ère G. 68030(Motorola) SUN31989 32 bits 2ème G. 80486(Intel)1,2 MT1993 32 bits 3ème G. Pentium(Intel)1995 32 bits 3ème G. PentiumPro(Intel)1997 32 bits 3ème G. Pentium II(Intel)

5,5 MT

2000 32 bits 4ème G. Pentium 4(Intel)42 MT2007 32 bits 4ème G. Core 2 Quad(Intel)580 MT2008 64 bits 2ème G. Itanium 2 dual core(Intel)1900 MT

Page 3

septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 7

Création d’Intel :les «Fairchildren»

Bob Noyce: FondateurInvention du circuit intégré en 1959Fondateur et ex dirigeant de Fairchild Semiconductor

Gordon Moore : FondateurInvention du circuit intégré en 1959Fondateur et ex responsable R&D de Fairchild Semiconductor

Andy Grove : N°4 d’IntelDocteur en ChimieEx responsable de fabrication de Fairchild Semiconductor

septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 8

Les débuts d’Intel

1969 : mémoires SRAM 64 bits (bipolaire)

1970 : conception du premier microprocesseur :4004 pour Busicom (Japon) : Technologie MOS 10 µm 3,17*4,23 mm²

2300 T

1971 : Commercialisation du premier microprocesseur : 4004

Page 4

septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 9

Succès d’un produit

Le succès d’un produit est lié à :

Diffusion : Microinformatique (x86)Marchés militaires (Z80.000)Marchés captifs (Rockwell, Comodore)

Prix : existence de 2ndesSources

Environnement : existence de périphériquesde systèmes de développement

Arrivée sur le marché

Notion de «famille» : x86, 680x0

septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 10

Technologie des microprocesseursLoi de Moore

Nom

bre

de

tra

nsi

stor

s

Temps

1 k

10 k

100 k

1 M

10 M

100 M

1970 1975 1980 1985 1990 1995 2000

40048080

8086

286

386

486Pentium

Pentium II

Pentium 4

Page 5

septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 11

Technologie des microprocesseursLoi de Moore

septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 12

Technologies SiliciumEvolutions de la Puissance consommée

Dual-Core

40048008

80808085

8086286

386486

Pentium®

0.1

1

10

100

1000

10000

100000

1971 1974 1978 1985 1992 2000 2004 2008Année

Pui

ssan

ce (W

atts

)

Page 6

septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 13

Technologie des ordinateursLoi de Machrone

La machine dont on a besoin coûte toujours $5.000

1983 : IBM-PC/XT : ~2.000 €

1987 : IBM-PC/AT : ~ 2.000 €

1991 : IBM-PC/486 : ~ 2.000 €

1997 : IBM-PC/PII : ~ 2.000 €

2001 : IBM-PC/PIII : ~ 2.000 €

2008 : PC Quad-Core : ~ 2.000 €

septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 14

Marché des microprocesseurs

4 bits

8 bits

16 bits

64 bits

32 bits

CalculatricesJeux vidéoµsystèmes

Systèmes programmésMicrocontrôleurs (carte à puce)

Systèmes embarqués (ABS, Injection)

Micro-ordinateurs

Stations de travail, PlayStation

Page 7

septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 15

Marché des processeurs

septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 16

CPU

Système programmé

Unité decommande

Unitéd’entrée

Unitéde sortie

Registres

ALU

Mémoire

bus d’adresses bus de données

bus

d’entrée

bus de

sortie

Page 8

septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 17

Système programméConstitution

ProcesseurElément central du système, il constitue les cœur et est défini par son jeu d'instructions et ses registres

Cœur

PoumonsMémoireMémoire centrale, en liaison avec le processeur, elle stocke les programmes et les données

MembresPériphériques et coupleursPermettent au système de communiquer avec l'extérieur

ArtèresBusPour la communication entre les différents éléments du système pour les adresses, les données et les signaux de contrôle

septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 18

Éléments de base d’un processeur

PC : Compteur OrdinalSert à pointer sur la prochaine instruction

SP : Pointeur de PileSert à pointer sur le sommet de la pile

IX : Registre d’indexSert à indexer un segment mémoire

ALU : Opérateur arithmétique et logiqueCœur du processeur, il est associé à un décaleur

A : AccumulateurStocke les données intermédiaires

B, C, ... : RegistresÉléments de stockage à adressage implicite

Partie Opérative

Registres «Adresses»

Registres «Données»

Page 9

septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 19

Mono-Bus

ALU

Accumulateur

Bus de données

Sta

tus

BCZ

Registres internes

septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 20

Accumulateur

ALU

Z C B

Sta

tus

Double-bus

Bus de données (entrée)

Bus de données (sortie)

Page 10

septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 21

Triple-bus

Bus de données (sortie)

Sta

tus

ALU

Z C B A

Bus de données (entrées 1 & 2))

septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 22

Architecture d’µP 8 bits

ALU

Accumulateur

NHVZC

Décaleur

8bus de données

Registres 8 bits(données)

PC

SP

IX

bus d’adresses

16

Reg

istr

es 1

6 bi

ts(a

dres

ses)

Page 11

septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 23

Fonctionnement séquencé

Mémoire

Code opératoire

Décodage

Opérandes

Exécution

Résultat

Microprocesseur

septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 24

AccélérationPerformances d’un processeur

Temps par tâche= I.C.TI = nombre d'instructions/tâche.C = nombre de cycles/instructions.T = temps de cycle.

AMÉLIORATION DES PERFORMANCES

Paramètre I Augmenter le jeu d’instructions du µP ; instructions de + en + complexesArchitectures CISC et VLIW

Paramètre CNécessite le traitement simultané de plusieurs instructions- structures pipeline,- structures parallèles, superscalaires

Paramètre T Amélioration de la technologie, réduction de la durée des opérations élémentaires- structures Super-Pipeline

Page 12

septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 25

Architecture des Processeurs(Super-Scalaire)

Dans la recherche de performances de calcul maximales, il peut être intéressant d’intégrer plusieurs unités (N) arithmétiques en parallèle ; ainsi, sous réserve de non-dépendance des données et des ressources, on peut envisager d’exécuter N instructions simultanément.

Registres Registres

Scalaire Super-Scalaire

C’est au début des années 1990 que la technologie a permis l’intégration de structuressuperscalaires ; les processeurs actuels comptent de 3 à 4 unités de calcul entier et de1 à 2 unités de calcul flottant fonctionnant en parallèle

septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 26

Accélération Séquencement des instructions

• Exécution séquentielleFetch Décod Mem Exec

Fetch Décod Mem Exec

Fetch Décod

Fetch

Mem

Décod

Fetch

Exec

Mem

Décod

Fetch

Exec

Mem

Décod

Exec

Mem Exec

• Exécution « pipelined »

1 instruction/4 cycles

1 instruction/cycle

Exemple : Intel Pentium 4 : 20niveaux de pipeline

Page 13

septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 27

Séquencement des instructions(Pipeline - Super-Pipeline)

Le séquencement pipeline permet, dans un cas idéal, d’obtenir l’exécution d’une instruction/cycle mais il peut être intéressant de découper certaines phases pour pouvoir augmenter les fréquences d’horloge ; on parlera alors de structures Super-Pipeline.

10 ns5 ns 5 ns

Reg

istre

H

Reg

istre

H

Reg

istre

H

Reg

istre

H

Tam

pon

H

Fmax = 100 MHz Fmax = 200 MHz

Opérateur arithmétiquecombinatoire

Opérateur arithmétiquepipeline

Exemple : le Pentium 4 possède 20 niveaux de pipeline, ce qui permet d’obtenirune fréquence d’horloge supérieure à 3 GHz.

septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 28

PipelineAnalyse de conflits dans le pipeline

Instructions registre-registre:- I : Lecture et décodage de l'instruction (Fetch),- E : Exécution de l'instruction; opération arithmétique ou logique entre registres,- W : Mise à jour des registres internes - rangement du résultat.

I E TLoad A M

I E TLoad MB

I E TStore M C

I EAdd C A + B W

BranchX I Etemps

14

Exécution séquentielle

Instructions load/store :- I : Lecture et décodage de l'instruction (Fetch),- E : Exécution de l'instruction; calcul de l'adresse mémoire- T : Transfert de la donnée.

Instructions de branchement:- I : Lecture et décodage de l'instruction (Fetch),- E : Exécution de l'instruction; mise à jour de l'adresse de l'instruction suivante,

Page 14

septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 29

PipelineConflits de ressources

Accès simultanés à une même ressource, par exemple la mémoire.

Phases d’attente (Wait )

I E

T

E

I E

I

Load

Load

Add

Store

Branch

A M

M

C

B

A + B

M C

X

temps

I

I W

E

E

wait

T

wait

T

8

I E

T

E

I E

I

Load

Load

Add

Store

Branch

A M

M

C

B

A + B

M C

X

temps

I

I W

E

E

wait

T

wait

T

8

Séparation des mémoiresprogramme et données

(architecture Havard)

septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 30

PipelineDépendances de données

I E T

E T

E

I E T

I

Load

Load

Add

Store

Branch

A M

M

C

B

A + B

M C

X

temps

I

I

E

EINOP

W

7

I E T

E T

E

Load

Load

A M

MB

Add C A + B

I

I W

Insertion d’une instruction NOP

Page 15

septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 31

Pipeline Conflits de contrôle

Liés aux instructions de branchement :l’adresse de l’instruction n’est connue qu’à la finde la phase d’exécution de l’instruction de branchement

Insertiond’une instruction NOP

I E T

E T

E

I E T

I

Load

Load

Add

Store

Branch

A M

M

C

B

A + B

M C

X

temps

I

I

E

EINOP

W

7

INOP E

IInstruction suivante EX :

septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 32

Prédiction de Branchement

Statique :Aucune prédiction (ex. 80486) : 40 % de succèsOn prend tout : 60 % de succèsPrédiction rétrograde (ex. PA RISC) : 65 % de succèsLe compilateur positionne un bit (ex. RIDGE) : 75 % de succès

Dynamique :même comportement (ex. AMD-K5) : 80 % de succèsBranch History Table (ex. PPC-604, Pentium) : > 85 % de succès

Techniques de Prédiction de Branchement :

Les techniques d’accélération des traitements (pipeline, superscalaire, utilisation des caches) ne fonctionnent bien que pour des exécutions séquentielles des instructions ; en cas de branchement (conditionnel, boucle, interruption), il faut « remettre les pendules à l’heure » (vidage des pipeline, mise à jour des caches, …), ce qui peut être très long !Ainsi, pour profiter de ces structures accélératrices, il faut être capable de prédire ledéroulement du programme, ce qui n’est pas chose aisée.

Page 16

septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 33

Mise en œuvre desstructures accélératrices

Pour profiter pleinement des structures superscalaires et pipeline, c’est à dire sanstemps d’attente (Wait ou NOP), l’idéal est d’ordonner correctement les instructions(Instruction Scheduling) ; ceci peut être fait par :

Le logiciel :un compilateur performant devrait être capable d’optimiser l’agencement des instructions en fonction des ressources matérielles ; ceci n’est hélas pas toujours possible (variétés de processeurs et d ’environnements, système d’exploitation, …)

Le matériel :sur la puce, un système de contrôle peut réorganiser les instructions en fonctiondes disponibilités du moment (exécution dans le désordre ou Out-Of-Order) ; le principe est efficace mais ne peut fonctionner que sur un faible nombre d’instructions.

septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 34

Organigramme simplifié

Initialisation

ResetMise enroute

Halt ? oui

non HaltArrêt

DMA ? oui

non DMA

Accès directà la mémoire

NMI ? oui

non

Interruptionnon masquable

INT ? oui

nonAccepté ?oui

non

Interruptionmasquable

SauvegardeFetch

SautExecute

Traitement del’instruction

Page 17

septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 35

Fonctionnement sous interruptionPrincipe

Principe : dérouter un programme à la demande d’un organe périphérique

Programme principal

1 ppppppp2 ppppppp3 ppppppp4 ppppppp

INTSauvegarde du contexte

Routine d’interruption

1 iiiiiiiii2 iiiiiiiii3 iiiiiiiii4 iiiiiiiii5 iiiiiiiii6 iiiiiiiii

5 ppppppp6 ppppppp7 ppppppp8 ppppppp9 ppppppp

10 ppppppp11 ppppppp12 ppppppp13 ppppppp

septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 36

Hiérarchisation des interruptions

It3

Programme principal S/P IT 3

It1

S/P IT 1

It2

S/P IT 2

Page 18

septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 37

Interruptions : Réentrance

It1

S/P IT 1

CALL SP

CALL SP

Programme principal SP

I=0

I=3

I=0

I=10I=10!

septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 38

Fonctionnement sous interruptionContexte

En cas de demande d’interruption :Doit-on en tenir compte ? ........notion de masquageQui l’a provoquée ? .................identification (N° de ligne ou vecteur)Qui est prioritaire en cas de demande multiple?Que doit-on sauvegarder ?

2 types d’interruption :• Matérielle• Logicielle

Page 19

septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 39

Fonctionnement sous interruptionModes

NMI (Non Maskable Interrupt):Sauvegarde du contexte et saut à une adresse fixe

INT (Maskable Interrupt) : plusieurs modes :Mode 1 : comparable à NMI

Mode 2 : sauvegarde du contexte et attente de l’adressede saut sur le bus de données

Mode 3 : sauvegarde du contexte et attente d’un vecteur sur le bus de données permettant de définir l’adresse de saut

Page 20