Академический Документы
Профессиональный Документы
Культура Документы
(3h)
IV. Étude quantitative du jeu d’instruction (3h)
V. Mesure de performances et amélioration (3h)
VI. Spécificités des DSP + classification (4h)
VII. Étude des architectures SoC pour l’embarqué
I. Architecture SoC DiMITRI pour la radio logicielle (2h)
Interventions
Intervenant Durée Date
I.A Concepts B.Miramond 3h 19 octobre
I.B Principe F. Verdier 3h 24 octobre
II. ISA B. Miramond 3h 10 Nov.
III. Performances F. Verdier 3h 14 Nov.
IV. DSP B. Miramond 4h 16 Nov.
V. SoC J. Quévremont 3h 23 Nov.
Thales
Objectifs de la formation
1. Assurer les connaissances de base sur
l’architecture et le fonctionnement des unités de
traitement de l’embarqué
1. Processeurs RISC
2. Processeurs DSP
2. Savoir différencier les différents types
d’architecture
1. Impact du jeu d’instruction sur l’architecture
2. Comparaison de performances
3. Savoir faire les choix de plateforme matérielle en
fonction des besoins de l’application embarquée
Bibliographie
• Architecture de l’ordinateur, A. Tanenbaum, 2005
– Cerclades + Ensea (3)
• Architecture des ordinateurs : une approche
quantitative, J. Hennessy & A. Patterson, 2003.
– St Martin + Cerclades + Ensea (anglais)
• Traitement numérique du signal temps réel, M.
Corneloup, Polycopié de cours, 2001.
– Ensea
• Embedded systems architecture, Noergaard, 2005
– Ensea
• ARM system-on-chip architecture, S. Furber, 2000
– Ensea
Plan de la première partie
• Leibnitz (1646-1716)
– 1670 Ajout de l’opération de multiplication, et
division
La pascaline
• Charles Babbage (1792-1871)
– « Machine à différence » :
• un seul algorithme (méthode des différences finies)
• pour les tables numériques pour la navigation en mer
• Résultats gravés sur un plateau de cuivre
– Machine analytique (1840)
• Lecture sur des cartes perforées
• Différents algorithmes exécutables !!!
• 4 parties
– Le magasin(la mémoire) = 1000 mots de 50 chiffres =
1,25Mo
– Le moulin (l’unité de calcul)
– L’entrée (lecteur de cartes perforées)
– La sortie (perforation ou impression)
– 1843 Premier programme informatique
• Ada Lovelace (langage d’assemblage)
Charles Babbage
MI : Mémoire d’instruction
MD : Mémoire de données
c. ENIAC - Premier ordinateur
électronique
• 1946 : Mauchly et Eckert
• Projet de l’US Army
• Capable d’être reprogrammée par branchements
• Vendue à 500 000$ à 1 unité
• 1 cycle = 200ms soit 5 cycles/sec
• Une multiplication de 2 opérandes à 10 chiffres
prenait 14 cycles, soit 2800 ms
• Il est divisé en 30 unités autonomes
(dont 20 accumulateurs / additionneurs 10 digits,
1 multiplicateur
et 1 "Master Programmer" capable de gérer les
boucles).
• ENIAC (1946)
– 30m de long
– 2.5m de haut
– 18 000 tubes à vide
– 1500 relais
– 30 Tonnes
– 140 KW
– 20 registres de 10
chiffres décimaux
– 6000 commutateurs
pour la programmation
– Participant :
Von Neumann
Les limites
• il doit être recâblé pour exécuter un
nouveau programme.
• De plus l'ENIAC utilise des registres
décimaux et non binaires.
d. La machine de Von Neumann
• Von Neumann (1903,1957)
– Il se greffe au projet ENIAC après 1946
• Idées
– On peut représenter le programme sous une
forme numérique et le ranger en mémoire
comme les données (plus de programmation
des commutateurs)
– Introduction de l’arithmétique binaire!
– Ancêtre à la base des architectures actuelles
• Résultat : l’IAS (1952)
– Premier ordinateur à programme enregistré
– Mémoire séparée du CPU
Schéma de la machine de Von
Neumann
5 parties
• La mémoire
Mémoire (4096 mots de 40 bits)
• L’UAL
• L’unité de commande
• Les entrées
• Les sorties Unité
arithmétique Unité de
et logique commande
Accumulateur
Entrées Sorties
L’apport de Von Neumann
• Le premier ordinateur à programme
enregistré
• Le programme est traduit de manière
numérique et écrit en mémoire.
• Pour cela, création d’un jeu d’instructions
machine, et transformation des calculs en
séries d’instructions
• La machine devient plus flexible parce que
programmable
Von Neumann’s Bottleneck
• La séparation entre le CPU et la mémoire a amené à la
notion de Von Neumann’s Bottleneck
• (goulot d’étranglement qu’est la communication entre
processeur et mémoire).
• ‘’ Surely there must be a less primitive way of making big
changes in the store than by pushing vast numbers of
words back and forth through the von Neumann
bottleneck. Not only is this tube a literal bottleneck for
the data traffic of a problem, but, more importantly, it is
an intellectual bottleneck that has kept us tied to word-
at-a-time thinking instead of encouraging us to think in
terms of the larger conceptual units of the task at hand.
Thus programming is basically planning and detailing the
enormous traffic of words through the von Neumann
bottleneck, and much of that traffic concerns not
significant data itself, but where to find it."
• John Backus in his 1977 ACM Turing award lecture
Machine de Von Neumann
• Structure des mots mémoire mots de 40 bits :
– Soit 2 instructions de 20 bits
– Soit 1 entier signé de 40 bits
• Ex :
– PUSH $1024
– ACC $0015
Von Neumann et sa machine
e. L’assembleur
• 1947 : Amélioration du traitement binaire :
le langage Assembleur est inventé par
l'anglais Maurice V. Wilkes.
3. 2ème génération
les transistors
(1955-1965)
a. Innovations
• technologiques
– 1948 : Invention du transistor aux Bell Labs (Bardeen,
Shockley)
• Interrupteur commandé électroniquement
• Beaucoup moins encombrant que le tube
• Concepts architecturaux
– Programmation en langage machine
– Microprogrammation
– Représentation des nombres en virgule flottante
• Logicielles
– Apparition des systèmes d’exploitation
– Programmation en assembleur
– Premier langage de haut niveau : le FORTRAN
b. Le début des grandes firmes
• IBM
– (7090, 7094, 7030…)
• Bull
– (PDP-1, PDP-8…)
• DEC
– (TX-0, TX-2…)
• CDC
– (6600, 6700, Cray-1…)
IBM 7094
PDP-11
c. Naissance d’Intel, le premier
microprocesseur
• 1968 R. Noyce, G. Moore et A. Rock
fondent Intel Corporation
• 1970 première UC composée de 2300
transistors (LSI) : le 4004 processeur 4bits
• 1973 le 8008 processeur 8bits
• 1978 le 8086 processeurs 16 bits
1971 : Premier microprocesseur
Intel 4004
Microprocesseur 4 bits
108 KHz
60000 Instructions par seconde
2300 transistors
4ème génération
Les VLSI
(1980, maintenant)
a. Innovations
• Densité d’intégration augmente : VLSI
– Dizaine de milliers -> millions de transistors
sur une puce
• Passage du centre de calcul à l’ordinateur
personnel
• Innovations architecturales
– réseaux d’ordinateurs
– Concepts de parallélisme développés
• Logiciels
MSI
(100 – 100K)
SSI
(10-100)
b. Circuits intégrés
Matériaux de
base
• Silicium
VLSI
Motif de base
• transistor
Apple II
d. Evolution chez Intel
• 8086 (1978)
– 16bits, 1Mo,
• 80286 (1982)
– 16 bits, mémoire étentue
• 80386 (1985)
– 32 bits
• 80486 (1989)
– 32 bits, cache de 8K
• Pentium (1993)
– Double pipeline
• Pentium pro (1995)
– Cache mémoire à 2 niveaux 8Ko + 256Ko
• Pentium II + Celeron + Xeon (1997)
– MMX Compatibilité
• Pentium III (1999) ascendante
• Pentium IV (2000)
Evolution des processeurs Intel:
densité, fréquence d’horloge
8000
7000
6000
5000
Année
4000 MHz
Transistors
3000
2000
1000
0
m
II
04
08
80
86
6
28
38
48
m
iu
40
80
80
80
80
80
80
iu
nt
nt
Pe
Pe
Evolution des processeurs Intel:
mémoire
10000000
1000000
100000
10000
1000 mémoire Ko
100
10
II
m
08
80
86
6
28
38
48
0,1 m
iu
80
80
80
80
80
80
iu
nt
nt
Pe
Pe
Intérieur du Pentium IV (Intel)
• année 2003
• ~40 millions de
transistors
• Gravure à 0,09 µ
m
• 2-4 GHz
5. Résumé
Mécanisme
a. L’héritage Automates
de l’arithmétique
Pascal Falcon
Leibnitz Jacquard
Logique
Technologie
mathématique
Leibnitz Mécanique
Babbage
Boole Electromécanique
Turing ENIAC
Electronique
Von Neumann
Wilkes
Industrie Informatique
b. Evolution historique
1980’s Suppression de la microprogrammation => cablé
1960’s 5 Niveaux : OS
Niveau 4
Niveau 3
Niveau 2
Niveau 1
Niveau 0
Niveau 5 Couche des langages d’application
Traduction (compilateur)
Niveau 4 Couche du langage d’assemblage
Traduction (assembleur)
Niveau 3 Couche du système d’exploitation
Interprétation partielle (OS)
Couche architecture du jeu d’instruction
Niveau 2
(ISA)
Interprétation (microprogramme)
ou exécution directe (cablé)
Niveau 1
Couche microarchitecture
Matériel
Niveau 0 Couche logique numérique
II. L’ordinateur actuel -
organisation
1. Fonctionnement
a. Spectre des ordinateurs actuels
Type Prix Exemple d’application
(euro)
Ordinateur jetable 1
Carte de vœux
Ordinateur enfoui 10téléphone, voitures
Ordinateur de jeux 100Jeux vidéo
PC 1KOrdinateur portable
Serveur 10KServeur de réseau
Station de travail 100KMini superordinateur
Mainframe 1MTraitement par lot :
banque
superordinateur 10M Prévision météo
b. Quelques marques de
processeurs standards
• Intel, AMD, Via
– Ordinateur personnel
• Sun
– Stations de travail (ultrasparc)
– Systèmes enfouis (microjava 701)
• Nvidia
– Carte graphique
• Transmeta, altera, Xilinx, ARM, MIPS
– Systèmes enfouis (crusoe, nios, virtex, arm9,
mipsRx000)
• …
c. Architecture actuelle de
l’ordinateur
E/S Autres
UC Mémoire Console
à ruban E/S
Le bus central
Architecture du PDP-8 (1965) structurée autour d’un bus central :
• L’omnibus
Architecture des ordinateurs : terme inventé par IBM en 1964 pour le 360
c. Architecture actuelle de
l’ordinateur
UC / CPU
Unité de Contrôle
Disque
(HDD)
Unités d’entrée/sortie
Registres UAL Mémoire principale
Bus interne
Bus externe
• Données
• Adresses
• Commandes
d. Echanges entre le processeur et
la mémoire
• Le processeur exécute un programme
– Programme écrit en mémoire
– Transfert d’instructions
Unité de Contrôle
Disque
(HDD)
Unités d’entrée/sortie
Registres UAL Mémoire principale
Bus interne
1) Charger la
prochaine
instruction
Principe général d’exécution
UC / CPU
Unité de Contrôle
Disque
(HDD)
Unités d’entrée/sortie
Registres UAL Mémoire principale
Bus interne
Unité de Contrôle
Disque
(HDD)
Unités d’entrée/sortie
Registres UAL Mémoire principale
Bus interne
3) Exécuter l’instruction
et modifier la copie
locale des données
Principe général d’exécution
UC / CPU
Unité de Contrôle
Disque
(HDD)
Unités d’entrée/sortie
Registres UAL Mémoire principale
Bus interne
4) Ranger le résultat en
mémoire
Principe général d’exécution
UC / CPU
Unité de Contrôle
Disque
(HDD)
Unités d’entrée/sortie
Registres UAL Mémoire principale
Bus interne
5) Envoyer l’adresse de
la prochaine instruction
Revenir à l’étape 1)
d. Définition du cycle d’exécution
d’une machine de Von Neumann
Un cycle d’exécution machine consiste à
2. Charger l’instruction
3. Charger ses données
4. Faire un traitement sur ces données
5. Ranger le résultat du traitement
6. Désigner la prochaine instruction
2. Revenons sur l’organisation
multi niveaux
Niveau 5 Couche des langages d’application
Traduction (compilateur)
Traduction (assembleur)
Niveau 3 Couche du système d’exploitation
Interprétation partielle (OS)
Couche architecture du jeu d’instruction
Niveau 2
(ISA)
Interprétation (microprogramme)
ou exécution directe (cablé)
Niveau 1
Couche microarchitecture
Matériel
Niveau 0 Couche logique numérique
Niveau physique
• Architecture et fonctionnement
interne des composants
• Informations au niveau bit
s = abc + abc + abc + abc
a b c a b c
a
abc
abc
b
e1 OU
s
e2 abc
en
abc
s
c
Niveau microarchitecture
• Architecture matérielle
du processeur
• Information au niveau MAR
3
4 to 16
Memory control signals (rd,wr,fetch)
Decoder
mot
4
MDR MPC
9
PC
8
MBR
SP
8 Contrôleur
LV JMPC
MIR
CPP Addr J Alu C MB
TOS
OPC JAMN/JAMZ
H High
B Bus Bit 2
N
6 ALU
Z
C Bus Shifter 2
Niveau ISA
• Architecture de jeu d’instruction du processeur
• Interface entre matériel et logiciel
• Écrit en code binaire
• C’est le code manipulé et mémorisé en mémoire
principale au moment de l’exécution
• Totalement dépendant de l’architecture sous-
jacente
• Informations au niveau mot
• Dimensionnement des champs de l’instruction :
– Adresse Code d’instruction adressage
– Constantes
– Opérandes…
Niveau OS
• Exemple : primitives de uCOS
• Visibilité du niveau système
• Gestion du code binaire, du chargement…
• Responsable de la commutation de
contextes
• Services de communications entre
processus
• Abstraction des périphériques d’E/S
UC / CPU
Disque
• …
Unité de Contrôle
(HDD)
Unités d’entrée/sortie
Registres UAL Mémoire principale
Bus interne
Niveau Assemblage
• Premier niveau historique de
programmation
• Dépend d’une famille d’architecture de
processeur
/* code assembleur */
/* a:R0 b:R1 Tab:R2 */
load R2,Tab;
load R0,(R2);
load R1,12;
add R3,R0,R1;
store (R2),R3;
Niveau Langage d’application
• L’interface avec le programmeur humain
• Langages
• Abstraction des mécanismes d’exécution de
l’unité de calcul sous-jacente
• Totalement indépendant du CPU
• Nécessité de logiciels qui écrivent du code :
– Compilateurs
– Assembleurs
– Interpréteurs
– Editeurs de liens
2. Spécificités des
architectures embarqués
a) Architecture d’un système
embarqué
Marché de l’embarqué
• Augmentation de la puissance des
processeurs selon la loi de Moore
Définition :
Un système électronique embarqué ou enfoui
est un élément constitutif d’un système plus
complexe pour lequel il rend des services bien
précis (contrôle, surveillance,
communication…).
…
Exemple – Automobile (Laguna)
Le microprocesseur au centre
2005 : Une automobile de classe haute contient une
centaine de microprocesseurs (de 8 à 32 bits)
• Matériel disponible sans conception
• Développement logiciel rapide
• Flexible
• Bas coût induit par les grandes quantités vendues
• Bénéficier de la dernière technologie de fabrication
• Bénéficier de l’optimisation de grandes équipes de
concepteurs
Quel type de processeur?
• Processeurs généraux
– Fonctionnalités multiples
– Surdimensionné
• Processeurs dédiés
– Bon pour l’application pour laquelle il a été conçu, pas
forcément pour les autres
• Processeurs de traitement du signal (DSP)
– Traitements intensifs (voix, image…)
– Téléphones portables
• SoC
– Système multi composants (proc, ASIC, …)
Le marché du processeur
embarqué