Vous êtes sur la page 1sur 16

Systèmes embarqués

Chapitre 1 : Architecture des SoC

ESTI 2013/2014 - Aimen Bouchhima 1


Architecture d'un SoC

On chip HW Programmable
GPP DSP
RAM Accelerator Logic

On chip communication

Memory
I/O I/O I/O I/O I/O I/O
Controller

ESTI 2013/2014 - Aimen Bouchhima 2


Partie I : Architecture Processeur
On chip HW Programmable
GPP DSP
RAM Accelerator Logic

On chip communication

Memory
I/O I/O I/O I/O I/O I/O
Controller

● Machine de Von Neumann / Jeu d'instruction


● Accès mémoire / IO
● Exceptions/Interruptions
● Performance

ESTI 2013/2014 - Aimen Bouchhima 3


Machine de Von-Neumann
if(x != 0)
y = x +y ;
else
Y=x*4;
01011011 0
r0 ALU 00011101 1
r1 11110110 2
Compilateur
... 01000011 4
r31 Contrôle 5
... CMP r1,0
00000000 ... JE etiq
PC IR ADD R0, r0,r1
1023
B sortie
etiq :MOV r0,r1,LSL #2
STR r0,[r2]
Bus d'adresses

Bus de données 32
Assembleur

0101110111010001
0111011011011110
0011110100001010
1101001100110100
ESTI 2013/2014 - Aimen Bouchhima 4
Codage des instructions
● Instruction = OpCode + { opérandes }
– Opérande = Valeur immediate | Registre | mémoire
● Modes d'adressage
– OpCode : code opération
● Arithmétique, logique, branchement...

Instruction Type 1
Ex : ADD r0,r1,r2 opcode operande1 operande2 operande3

Instruction Type 2
Ex : B etiquette opcode operande1

ESTI 2013/2014 - Aimen Bouchhima 5


Exemple : Instructions ARM

ESTI 2013/2014 - Aimen Bouchhima 6


RISC vs CISC
● CISC : Complex Instruction Set Computer
– Jeu d'instruction riche
– La même instruction peut avoir plusieurs formes
● Exemple : avec différents modes d'adressage
● RISC : Reduced Instruction Set Computer
– Jeu d'instruction simple
– Machine load/store
● L'accès à la mémoire se fait exclusivement via les instructions
LOAD et STORE
● Les autres opérations n'accèdent pas à la mémoire

ESTI 2013/2014 - Aimen Bouchhima 7


Architecture de Harvard

PMA : program memory adress


PMD : program memory data

DMA : data memory adress


DMD : data memory data
8
8
Les entrées/sorties
● Comment accéder aux périphériques E/S ?
● Deux solutions :
– Port dédié aux E/S
● Instructions spéciale pour accéder à un périphérique (IN/OUT)
– Exemple : lire le port numéro 0x100 : IN 0x100
– Les registres des E/S sont mappés en mémoire
● Accéder à un périphérique de la même façon qu'on accède une mémoire
– Exemple en C : x = *(0x1000) ;

CPU Mémoire Périph. 1 Périph. 2 Périph. n CPU Mémoire Périph. 1 Périph. 2 Périph. n

Périphériques mappés en mémoire

Port E/S 9
Exemple : Plan mémoire de ARM

10
Les interruptions
● Internes (exceptions)
– Division par 0 , instruction inconnue, accès mémoire
invalide, ...
● Externes causées par :
– Le matériel (asynchrone)
● Exemple : interruption périodique envoyée par le TIMER
– Le logiciel (synchrone)
● Déclenchée par une instruction spéciale (SWI)
● Généralement pour changer le mode du processeur et exécuter
un code avec des privilèges différents

ESTI 2013/2014 - Aimen Bouchhima 11


Interruption matérielles
● Contrôleur d'interruption
– Reçoit les requêtes d'interruptions venant des
périphériques (niveaux de priorités)
– Émet une requête d'interruption au processeur

IRQ
Contrôleur
CPU interruption
Périph. 1 Périph. 2 Périph. n Mémoire

ESTI 2013/2014 - Aimen Bouchhima 12


Vecteur d'interruption
● Table en mémoire à une
adresse bien définie
● Chaque entrée dans la
table correspond à une
interruption. Elle
contient l'adresse de la
routine d'interruption
(Interrupt service
routine ISR)

ESTI 2013/2014 - Aimen Bouchhima Vecteur d'interruption de ARM 13


Aspects de performances
Temps
TempsCPU
CPU == Seconds
Seconds == Instructions
Instructions xx Cycles
Cycles xx Seconds
Seconds
Program
Program Program
Program Instruction
Instruction Cycle
Cycle

Nombre Inst CPI Clock

Programme X

Compilateur X (X)

Jeu d'instr. X X

micro arch. X X

Technologie X

ESTI 2013/2014 - Aimen Bouchhima 14


Exemple calcul CPI

Machine RISC (Reg / Reg)


Op Freq Cycles CPI(i) (% temps)
ALU 50% 1 .5 (33%)
Load 20% 2 .4 (27%)
Store 10% 2 .2 (13%)
Branch 20% 2 .4 (27%)
1.5
Mélange typique
CPI moyen

ESTI 2013/2014 - Aimen Bouchhima 15


Comment diminuer le CPI
● Années 80 : CPI = 10 (multi-cycle)
● Pipeline : CPI = 1 (idéalement)
– Pipeline plus profond → Fréquence plus élevée
● CPI < 1 (IPC > 1) :Parallélisme au niveau instruction (Instruction level
parallelism ILP)
– Superscalaire : Le processeur essaie exécute plusieurs instructions en parallèle
dynamiquement
– VLIW : Very Large Instruction Word
● Le compilateur essaie de grouper plusieurs opérations indépendantes dans une même
instruction
– Problème : les dépendance de données limitent le ILP
● Solution : Parallélisme au niveau programme
– les multiprocesseurs

ESTI 2013/2014 - Aimen Bouchhima 16

Vous aimerez peut-être aussi