Architecture embarquée et processeurs RISC

publicité
[email protected]
Version 2013
ARCHITECTURE EMBARQUÉE ET
PROCESSEURS RISC
Architecture enfouis
systèmes embarqués/enfouis ou System on Chip (SOC)
Ces systèmes impliquent des contraintes :
• produits largement diffusés : coûts réduits
• contraintes temporelles strictes
• sûreté de fonctionnement (e.g. aéronautique)
• taille, poids
• consommation d’énergie
Mais il faut aussi privilégier :
• la réutilisation
• la flexibilité : modifications
tardives, correction d’erreurs
Architecture enfouis
 logicielle (SW) : processeur + Logiciel
 flexibilité
 faible temps de conception
 Faible cout
 matérielle (HW) : ASIC et FPGA




performances
consommation
protection industrielle
Cout élevé
 Mixte
 Tire profit des 2 approches => cas d’un SoC
Complémentarité HW/SW
100% SW
Contraintes
physiques
performance
XXX
consommation
XXX
intégration
XX
Cout de production
Contraintes
économique du
produit
XXX
XXX (si fort
volume de
production)
flexibilité
XX
Protection industrielle
Contraintes
économique du
développement
100% HW
XXX
Cout de développement
XX
Cout de production
XX
Prise de risque
XXX
Exemple de SOC
Exemple de répartition HW/SW
Très grandes diversité des
composants
 Les systèmes embarqués deviennent de plus en plus complexes.
 Grande variété de composants disponibles :

Cœurs de processeurs




ASIP : Application Specific Instruction-set Processor
ASSP : Application Specific Standard Product
Microcontroleurs
DSP : Digital Signal Processors
RISC
Fonctions logicielles
Bus standardisés
Fonctions matérielles (ASIC)
Composants reconfigurables
 SPGA : System Programmable Gate Array - FPGA + IP)
Intellectuel property (IP)





ASIP et ASSP
 ASIP : Application Specific Instruction set Processor
 Processeur spécialisé à l’exécution d’une (ou quelques)
application (par exemple Modem)
 Jeu d’instruction et ensemble des ressources adaptés à
l’application
 Meilleurs rapports MIPS/mW et MIPS/mm2 que RISC et DSP
 Mais compilateur plus délicat, time-to-market plus long
qu’avec des processeurs standards
 ASSP : Application Specific Standard Product
 Composant complexe qui réalise une fonction spécifique
(compression vidéo, modem)
 ASSP et interface standardisée : IP
PROCESSEUR RISC
9
Jeu d’instructions
 Ensemble des commandes primitives
que le programmeur peut utiliser sur
une machine.
 Deux écoles RISC et CISC.
10
Critères
 La complexité du jeu d'instruction
dépend
 du format de l'instruction et des
données,
 des modes d'adressage,
 du jeu de registres,
 des instructions de contrôle de flot.
11
Caractéristiques des RISC
 Le RISC est composé d'environ
 100 instructions dans un format fixe
 3 à 5 modes d'adressage
 les accès mémoire sont réservés aux
instructions de Load/Store
12
Conséquences
 Un grand nombre de registres
améliore le changement de contexte.
 La plupart des instructions
s'exécutent en un cycle.
 L'intégration sur un seul chip permet
d'augmenter la fréquence d'horloge.
13
Apparition des RISC
 Premier article en 1980 (Patterson et
Ditzel)
 Implantation sur un seul chip
 Temps de conception réduit
 Horloge rapide
 Meilleur utilisation du VLSI
14
Première réalisation
 Papier de MIPS en 1983
 Introduction du pipeline et du
multiple unités fonctionnelles
 Premier prototype en 1985
15
Propriétés
 Architecture Load/store avec un
ensemble de registres orthogonal
 Simples modes d’adressage
 Contrôle des délais de pipeline
16
Succès des RISC
 Horloge rapide (temps/cycle)
 Peu de cycles par instruction : par le
fonctionnement pipeline (cycle/inst)
 Faible augmentation du nombre
d’instructions par tâche : optimisation
du compilateur (inst/tâche)
17
Approches de mise en oeuvre
 IBM / Standford
 Un ensemble de registre unique
 Load/store efficace, optimisation des
délais par le compilateur
 Berkeley
 Multiple ensemble de registres gérés en
fenêtre
 Load/store de 2 cycles ou plus
18
Appel de procédure
 Diminuer le coût de l’appel de
procédure
 Passage de paramètres
 Sauvegarde des registres
 Adresse de retour
19
Fenêtre de registres
 Un grand nombre de registres
 Seul un sous ensemble est visible à un
instant donné (par ex 32)
 Chaque ensemble est divisé en
groupes.
 Pointeur de fenêtre courante CWP
20
Groupes de registres
R31
Paramètres reçus
R26
R25
Variables locales
6
10
R16
R15
R10
R9
Paramètres envoyés
Variables globales
R0
6
10
21
Recouvrement des fenêtres
n-1
26-31
"n
16-25
n
0-9
10-15
26-31
16-25
n+1
10-15
26-31
16-25
10-15
Recouvrement
des fenêtres lors
de chaque appel
Evite le passage
sur la pile
22
Fonctionnement
 A chaque appel on met à jour le CWP
vers la nouvelle fenêtre.
 Diminution du trafic mémoire
 En cas de débordement, les fenêtres
sont recopiées en mémoire (trap sur
CWP)
 Pourrait fonctionner sur un CISC avec
beaucoup de registres
23
Allocation des registres
 Les instructions RISC sont registre à
registre
 L’accès aux registres est beaucoup
plus rapide que la mémoire
 L’allocation optimisée des registres
peut réduire le nombre d’accès
mémoire
24
Exemple
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function MostlyZero(n:integer):boolean;
var num,ones,zeros,half:integer;
res:boolean;
begin
num:= n*n;
ones:=0;
zeros:=0;
while num>0 do
begin
half:=num div 2;
if 2*half=num
then zeros:=zeros+1
else ones:=ones+1;
num:=half
end;
if zeros>ones
then res:=true
else res:=false;
MostlyZero:=res
end;
25
Les processeurs embarqué RISC
Processeurs embarqués RISC et mémoire cache
: recherche de compromis
Les processeurs de traitement du
signal

Il existe de nombreux constructeurs : nombreux DSP et leurs variantes chez chacun
d’eux
- Un DSP peut être particulièrement adapté à un type d’application (exemple : DSP56009,
TMS320C54x)
- Les performances des DSP peuvent varier significativement :
exemple : localisation des données en mémoire, localisation du code
Design Reuse : IP
 Il devient de moins en moins possible de concevoir un
SoC entièrement. Des parties déjà conçues doivent être
réutilisées
 Développer des « composants virtuels » réutilisables
 Problèmes :
 Une compagnie seule ne peut pas toujours concevoir tous les
composants dont elle a besoin
 Commerce de composants virtuels
 Nécessité d’instaurer une protection juridique => « intellectual
Property »
 Nécessité d’utiliser un même formalisme pour la modélisation et
l’utilisation pour l’adaptation rapide au système
Niveaux des IPs matérielle
 « Soft» IP
 Modèle de description de matériel. Peut être non synthétisable
pour la validation purement fonctionnelle.
 Flexible, paramétrable
 Indépendant de la technologie
 Difficile à protéger
 « Firm» IP
 Liste d’équipotentielles post synthèse logique
 Dépend de la technologie
 Assez difficile à protéger
 « Hard» IP
 Liste d’équipotentielles placée et routée
 Contient les temps de propagation
 Facile à protéger (boîte noire avec uniquement les E/S)
Usage et format des IPs
Les fournisseurs d’IPs
 Sociétés d’études et de conception
 Sociétés sans fonderie (« fab ») dont le profit vient des droits sur
les licences
 DSP Group (IP pour les télécoms), ARM (processeurs RISCs),
 offre incluant des IPs SOFT, de simulation et synthèse.
 Sociétés de semi-conducteurs
 Peuvent fournir des Ips HARD en plus des Ips SOFT
 TI, Motorola, Lucent, Altera, Xilinx, LSI Logic, STM
 Fournisseurs d’outils de CAO
 Fournissent des Ips SOFT uniquement
 Mentor Graphics, Cadence, Synopsys,…
Les types d’IPs
 Processeurs:

Picoblaze, microblaze, Leon, Nios, LSI logic CW4001/4010/4100, ARM
7TDMI, ARM 810,NEC 85x, Motorola 680x0, IBM PPC,…
 DSPs:

TI TMS320C54X, Pine, Oak,…
 Composants de traitement spécialisés

Cryptographie, traitement d’images, multimédia : JPEGcodec,
MPEGdecoder.
 Contrôleurs mémoire et bus : SDRAM, USB, PCI, UART,AMBA
 Réseaux : ATM, Ethernet
Pointeurs : IP commerciales www.design-reuse.com
IP « libres » www.opencore.org
SoC : ensemble d’unités
interconnectées
 La conception de SoC: approche classique de type CPU-centric
L’accent est mis pendant la conception sur le ou les CPUs et les IPs de calcul
Puis on cherche à les connecter
Or les performances dépendent de l’interconnexion
 La structure la plus simple à utiliser : les bus
Un bus : ensemble de fils
IP
Data (N bits)
L’IP force l’état du fils à 0 ou à 1
Adresse (P bits)
Le temps de changement d’état dépend:
Contrôle (Q bits)
- Des drivers de courants de l’IP
- Des dimensions des fils
- Du nombre d’IPs sur le bus
Synchrone ou asynchrone
 Bus synchrone
 Dans les signaux de contrôle, un signal d’horloge fixe les instants de
changement d’états
 Simple et rapide si :
 Tous les IPs sur le bus ont la même vitesse d’horloge
 La longueur du bus sur le chip est limitée (clock skew)
 Bus asynchrone
 Dans les signaux de contrôle, des signaux permettent une synchronisation
des échanges
 Overhead du à la synchronisation (handshake)
 Adapté à connecter des IPs de types/vitesses différents
Req
IP1
Ack
IP2

Bus avec Arbitrage cours sur
les
communications….
Problème: IP1 et IP2 veulent utiliser en même temps le bus pour accéder à IP3
Data
Adresse
contrôle
IP1
IP2
IP3
Les requêtes sont adressées à l’arbitre de bus qui alloue le bus (e.g. suivant une priorité)
Data
Adresse
contrôle
IP1
IP2
IP3
IP1 et IP2 des maitres (e.g. CPUs)
IP3 est un esclave (e.g. Périphérique)
Arbitre de
bus
Bus pour l‘embarqué
 Les constructeurs de SOC s’orientent depuis
quelques années vers l’utilisation de bus
génériques : protocoles de transferts de
données bien définis.
 Les grands acteurs du système sur puce
emploient ce type d’architecture avec chacun
une solution propriétaire :
 Core Connect d’IBM, AMBA d’ARM, AVALON
d’ALTERA, WHISBONE d’openCores
 Exemple la proposition AMBA de ARM :
Advanced Microcontroller Bus Architecture
Bus AMBA
Bus Système : AHB ou ASB
bus rapide, multi-maître,
transferts pipelines ou en mode
burst,
priorité sur les transferts
RAM
On chip
ARM
Bus AHB
DMA
Bus Périphérique : APB
bus adapté à la connexion de
périphériques “lents”,
non-pipeline, pas de priorité,
optimisé en consommation
Bridge
UART
Timer
GPIO
Bus APB
Interfaces entre bus : Bridges
Conclusion
 Concevoir les architectures embarquées à partir des
composants les mieux adaptés vis à vis des traitements à
exécuter
 Objectifs : performances, consommation, time-to-market
 Hétérogénéité et évolution des composants : microcontroleur,
DSP, ASSP, ASIP
 Des constructeurs proposent des architectures mixtes
 Optimiser l’organisation et l’utilisation de la mémoire des
composants
 La mémoire sur le composant : rapide mais coûteuse en surface
 Défaut de cache : consomme environ 6 fois plus d’énergie qu’une
opération ALU
 Accès en mémoire externe au composant : moins cher mais plus
lent et plus coûteux en énergie
Téléchargement