Chapitre III - Les SoC
Chapitre III - Les SoC
Chapitre III - Les SoC
Un system on a chip (SoC) ou système sur une puce est un circuit intégré qui rassemble les
principaux composants d'un ordinateur sur une seule puce électronique.
Un system on a chip (SoC) réunit sur un même circuit intégré un processeur, de la mémoire,
une puce graphique, des modules de communication sans fil et parfois des capteurs. Les SoC
équipent les smartphones, les tablettes tactiles, certains ordinateurs portables et des objets
connectés. Gareth Halfacree, Flickr, CC by-sa 2.0
interfaces ...
1
source
Système actuel
Processeur (64bits, 2.2GHz) + GPU + DSP + Réseau
Mémoires (4GBytes),
Flash (32GBytes)
Interfaces ...
source https://www.ifixit.com/Teardown/Samsung+Galaxy+S7+Teardown/566861
Un processeur ;
De la mémoire ;
GPU, Interfaces...
Un SoC est conçu pour une fonction particulière ( vidéo, audio, réseau,...)
1
https://www.ifixit.com/Teardown/Samsung+Galaxy+S7+Teardown/56686
2
Un SoC intègre des modules spécialisés pour cette fonction
Un SoC n'intègre que ce qui est nécessaire. Être efficace plutôt qu'universel.
Pourquoi intégrer ?
Plus petit : La miniaturisation vient principalement de l'intégration de nouvelles
fonctionnalités dans une même puce. Ceci permet de réduire la taille des systèmes et de
permettre des nouvelles applications. (Smartphone, ioT...)
- Nouvelles applications
C. Caractéristiques
1. Niveau logiciel
Beaucoup de logiciel
Des solutions logicielles sont parfois suffisantes
Beaucoup de développeurs
3
Systèmes d'exploitation
Bibliothèques
Les acheter
Cela Permettant de réduire le temps de développement et partir sur des bases connues et
fonctionnelles.
Le minimum à avoir :
Analogique !
Le terme "Codesign" est apparu au début des années 1990 pour marquer une nouvelle façon de
concevoir des circuits intégrés et des systèmes. La "conception conjointe du logiciel et du
matériel" était devenue nécessaire pour répondre aux exigences du marché des systèmes
intégrés. En effet, l'émergence des systèmes multimédia (téléphones portable, consoles de jeu)
entraînait une plus grande complexité de la partie électronique et la concurrence économique
imposait un temps de conception (Time To Market) encore plus court [1].
Un SoC est un ensemble de blocs fonctionnels intégrés dans un composant électronique avec au
moins un processeur comme élément de traitement. L'idée des SoC consiste à ce que seuls les
blocs de traitements particulièrement coûteux, de point de vue temps de calcul, soit réalisés en
matériel. L'essentiel de l'application étant implanté en logiciel et exécuté par les coeurs de
processeurs. Ceci conduit à un autre problème de choix entre les blocs de traitement à réaliser
en matériel et les blocs à réaliser en logiciels [8].
Les systèmes logiques sur puce sont souvent conçus de manière à être dimensionnés pour une
seule application particulière. Chaque application a sa propre architecture, de ce fait l'extension
ou la réutilisation de telle architecture est difficile et nécessite un effort de réadaptation et pour
cette raison plusieurs types de communication sur puce ont été proposés. Un système de
communication permet d'établir des connexions entre tous les composants dans un SoC. Il se
présente sous forme de bus ou bien de réseau de communication. La plupart des systèmes
embarqués sont basés sur des architectures de bus [2]. Quant aux réseaux, on les retrouve dans
5
certaines architectures complexes nécessitant une bande passante considérable [3].
Ce type de connexion permet d'établir de liaisons directes entre les composants d'un SoC. Il
existe deux types de connexions point à point avec ou sans mémoire partagée. Généralement
dans le domaine des SoC, on utilise des FIFOs pour la réalisation de ce type de connexion,
la profondeur de la FIFO est déterminée par l'utilisateur ou bien par l'outil de conception lors
de la phase d'exploration d'architecture.
Les bus partagés sont très répandus par leur souplesse et leur légèreté concernant les
ressources occupées, mais l'ennui dans l'utilisation de ces bus réside dans le fait qu'on
est limité par la bande passante du système. Le bus partagé intègre un seul et unique
arbitre qui sera responsable de la gestion des accès, de telles sortes qu'à chaque instant,
un seul composant peut avoir accès au bus.
Le bus Avalon peut être vu comme un ensemble de signaux prédéfinis permettant de connecter
6
un ou plusieurs IP. Ce bus comprend un décodeur d'adresse, un multiplexeur de données, un
générateur de cycles d'attente et un contrôleur d'interruption (voir figure ). Les utilisateurs
peuvent facilement intégrer leurs propres périphériques avec le reste du système basé sur un
processeur NIOS de Altera [9].
Le bus Avalon permet la connexion entre des composants maîtres ou esclaves. Il supporte
plusieurs maîtres sur le bus. Un arbitrage est nécessaire au partage d'une même ressource
partagée par les circuits maîtres. L'architecture multi-maître fournit la grande flexibilité dans la
conception des systèmes.
Le bus AVALON.
B. Le bus AMBA
Les spécifications avancées de l'architecture des bus (AMBA) définissent des communications
d'un SoC standard à rendement élevé. Trois bus distincts sont définis selon les spécifications
d'AMBA : Le bus AHB (Advanced High-performance Bus), Le bus système ASB (Advanced System
Bus) et Le bus périphérique APB (Advanced Peripheral Bus).
Le bus AHB est utilisé pour les modules à rendement élevé en utilisant une fréquence de base.
Il permet le raccordement efficace des processeurs, des mémoires internes (sur puce) et même
des mémoires et interfaces externes (hors puce). Le bus ASB est utilisé aussi dans les modules
à rendement élevé pour la connexion des processeurs et des mémoires internes et externes. Le
bus APB est utilisé pour les périphériques de basse puissance. Il est optimisé pour réduire la
puissance consommée et la surface de silicium (dans les circuits FPGA) lors de la connexion des
périphériques. Le bus AMBA est utilisé généralement dans un système à base de processeur
softcore et OpenSource de type LEON [10].
C. Le bus Wishbone
Le bus Wishbone est un bus OpenSource (modélisé en HDL) très utilisé pour la conception des
systèmes sur puce à base de différents coeurs de processeurs dits softcore. En effet, un très
grand nombre d'IPs OpenSource (CPUs, périphériques auxiliaires) ont été adaptés à
l'interface Wishbone. Il a comme prétention d'être un "bus logique", il ne spécifie donc pas
d'information électrique ou de topologie de bus. La spécification est écrite en termes de signaux,
cycles d'horloge, et niveau logiques hauts et bas.
7
Wishbone est fait pour laisser les concepteurs combiner plusieurs conceptions décrites en HDL.
Il est défini pour être reconfiguré en 8, 16 ou bien 32 bits. Tous les signaux sont synchrones à
une horloge unique mais les réponses des esclaves peuvent être générées de manière
combinatoire pour un maximum de performances.
Les bus Wishbone s'adaptent facilement aux topologies courantes comme le point-à-point,
plusieurs-à-plusieurs, hiérarchique, où même commutés. Pour des topologies moins courantes,
Wishbone requiert un contrôleur de bus ou arbitre, avec des composants gardant la même
interface.
D. Le Bus CoreConnect
Spécialement pour des systèmes sur puce, IBM a proposé l'architecture CoreConnect composée
de trois bus permettent la connexion : de cœurs de processeur, de logique dédiée, et différents
autres accélérateurs matériels [4]. Les trois bus de CoreConnect sont :
Processor Local Bus (PLB) : Généralement, le PLB fournit un chemin de données large
bande. En effet il est utilisé pour connecter des composants tels que les coeurs
de processeurs, les interfaces avec les mémoires externes, et les contrôleurs DMA (Direct
Memory Acces).
On-chip Peripheral Bus (OPB) : L'OPB est utilisé pour réduire la charge du bus PLB. Il
est plus adapté aux composants d'entrée/sortie tels que les ports série, les ports
parallèles, UARTs et tous les composants à faible largeur de bande. Un Maître sur le PLB
peut accéder aux composants connectés à l'OPB via une macro passerelle (Bridge). Cette
passerelle est vue en tant que maître par l'OPB et en tant qu'esclave par le PLB. Les
registres d'état et de configuration de faible performance sont généralement lus et écrits
via le bus DCR.
Device Control Register (DCR) : Le DCR est principalement utilisé pour accéder aux
registres d'état et de contrôle au sein des différents bus PLB et OPB.
4. Optimisation mémoire
Les techniques d'optimisation mémoire s'appliquent différemment selon le modèle de
programmation. Les concepts de base restent les mêmes,
5. Exemple de SOC :
Modèle d'un Q-Switch
Cette architecture de réseau Q-Switch basée sur une topologie de réseau Mesh à transmission
04
de routage par paquets ,05 02
Le routage par paquets04,01 réduit les besoins en temps
de latence et de tampon dans les routeurs. Le circuit de communication 02 est évité dans cette
architecture en raison du coût élevé de l'établissement et la gestion des connexions du circuit.
De même, les techniques de stockage et de routage avant sont également évitées, car elles
peuvent entraîner les exigences de tampons élevées et par conséquent de lourdes peines dans
la zone de silicium du routeur02 . Le réseau est sans perte, et les liens sont supposés fiables
8
de sorte qu'aucune retransmission ne soit requise. Les paquets transitent sur le réseau selon le
plus court chemin, ce qui réduit la dissipation de puissance et maximise l'utilisation des
ressources réseau. L'architecture a été intégré au sein d'une plate-forme à base de technologie
FPGA selon au développement de processus de conception, et les mesures des performances
du réseau ont été évaluées à partir d'une modélisation et simulation à l'aide du langage
VHDL07 et logiciel Xilinx06 .
Notre réseau comprend des routeurs interconnectés par liaisons point à point et la topologie
peut varier en fonction des besoins du système, la taille du module et du placement.
L'architecture de ce réseau, réalisée au sein de l'équipe ASEC du laboratoire LCOMS-Metz, a pour
rôle de faire passer les messages entre un maximum de 4 éléments de traitements (couples
routeurs-IP). Elle a une topologie maillée
Un registre d'entrée par direction : Chaque paquet entrant est stocké dans un registre
d'entrée. Un composant spécifique, appelé logique de routage, calcule la prochaine
direction du paquet (N, E, S ou W). Un maximum de trois paquets est autorisé par la
direction. Les paquets sont transmis à la logique de sortie. Une politique d'arbitrage peut
être adoptée pour définir les priorités entre paquets stockés dans les registres d'entrée
d'un routeur, selon la prochaine direction des paquets. Cette politique est fondée sur les
règles du droit de priorité.
Une logique d'interconnexion qui est composée d'un demi-crossbar, un buffer de sortie et
une machine d'états finis. L'interconnexion semi-crossbar se compose de trois entrées et
quatre sorties. Les paquets entrants sont stockés dans les entrées en fonction des
priorités. Si les voisins d'un commutateur ne sont pas occupés, la première sortie du
semi-crossbar est l'un des routeurs adjacents.
Une logique de sortie est qui constituée de registres. Ces registres stockent les paquets
dans le cas où plusieurs paquets ont la même direction de sortie. Cette logique sortie est
également utilisée lorsque la sortie sélectionnée (direction) est occupée (signal d'occ).
Un maximum de trois messages peut être stockés dans une mémoire tampon de sortie.
9
La machine d'état finie (FSM) gère les signaux de commande et son rôle est aussi
d'éviter les collisions des paquets. En outre, la machine d'état finie (FSM) fournit une
logique centrale avec des informations sur les états de routeur adjacents (de la situation
d'attente, sur le signal, etc.).
Processus de routage
L'algorithme de routage XY définit les règles d'acheminement des paquets, ainsi la source
(s) et de destination (d) d'un paquet (p) être définies par des coordonnées 2D au sein du
réseau (xs, ys) pour la source (s), et (xd, yd) à la destination (d).
Le paquet (p) se déplace d'abord selon la dimension x, jusqu'à ce que xs = xd. Puis, le
paquet (p) se déplace selon la dimension y, jusqu'à ce ys = m.
Il convient de noter que le réseau peut évoluer (suppression de certains liens, isolement
de certains routeurs, etc.), et la transmission de données peut être perturbée. Toutefois,
un mécanisme de reconfiguration assure que chaque paquet en transit trouve toujours
un chemin menant à la destination du paquet. Si le paquet est stocké dans un routeur
incapable de transmettre des données, la liaison entre ce routeur et la destination du
paquet finira par être restaurée.
10
R e m arqu e
Il peut arriver que plusieurs paquets prennent la même direction de sortie. Dans ce cas-là on
prend jusqu'à 3 paquets au maximum.
T e x t e l é gal
Une politique d'arbitrage doit être adoptée pour la logique de routage qui gère la priorité d'envois
des paquets. Cette politique est fondée sur les règles des priorités à droite. Elle est construite
et intégré individuellement pour chaque port d'un routeur Q-Switch.
(a)
11
(b)
(c)
(d)
APPLICATION DES RÈGLES PRIORITAIRES DANS LES DIRECTIONS POSSIBLE (A) EST,
(B) NORD, (C) OUEST, (D) SUD
12