Jul 15, 2018
ARCHITECTURE EMBARQUÉE ET PROCESSEURS RISC
[email protected] Version 2013
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
performance XXX
consommation XXX
intégration XX
Cout de production XXX XXX (si fort
volume de
production)
flexibilité XX
Protection industrielle XXX
Cout de développement XX
Cout de production XX
Prise de risque XXX
100% SW 100% HW
Contraintes physiques
Contraintes économique du produit
Contraintes économique du développement
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)
Inte
llectu
el p
rop
erty (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
9
PROCESSEUR RISC
10
Jeu d’instructions
Ensemble des commandes primitives que le programmeur peut utiliser sur une machine.
Deux écoles RISC et CISC.
11
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.
12
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
13
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.
14
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
15
Première réalisation
Papier de MIPS en 1983
Introduction du pipeline et du multiple unités fonctionnelles
Premier prototype en 1985
16
Propriétés
Architecture Load/store avec un ensemble de registres orthogonal
Simples modes d’adressage
Contrôle des délais de pipeline
17
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)
18
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
19
Appel de procédure
Diminuer le coût de l’appel de procédure
Passage de paramètres
Sauvegarde des registres
Adresse de retour
20
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
21
Groupes de registres
R0
R9 R10
R15 R16
R25 R26
R31
Variables globales
Paramètres envoyés
Variables locales
Paramètres reçus
10
6
10
6
22
Recouvrement des fenêtres
10-15
16-25
26-31
10-15
16-25
26-31
10-15
16-25
26-31
0-9
n-1
n
n+1 Recouvrement
des fenêtres lors
de chaque appel
Evite le passage
sur la pile
" n
23
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
24
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
25
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;
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)
Adresse (P bits)
Contrôle (Q bits)
L’IP force l’état du fils à 0 ou à 1
Le temps de changement d’état dépend:
- 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
IP1 IP2
Req
Ack
Bus avec Arbitrage cours sur les communications….
Problème: IP1 et IP2 veulent utiliser en même temps le bus pour accéder à IP3
IP1 IP2 IP3
Data
Adresse contrôle
Les requêtes sont adressées à l’arbitre de bus qui alloue le bus (e.g. suivant une priorité)
IP1 IP2 IP3
Data
Adresse contrôle
Arbitre de bus
IP1 et IP2 des maitres (e.g. CPUs)
IP3 est un esclave (e.g. Périphérique)
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
ARM RAM
On chip
DMA Bridge
UART
Timer
GPIO
Bus AHB
Bus APB
Bus Système : AHB ou ASB bus rapide, multi-maître, transferts pipelines ou en mode burst, priorité sur les transferts
Bus Périphérique : APB bus adapté à la connexion de périphériques “lents”, non-pipeline, pas de priorité, optimisé en consommation
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