Vous êtes sur la page 1sur 12

Chapitre III : Les systèmes embarqués sur puce SoC

A. Définition d'un 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 comprend ainsi le processeur central à un ou plusieurs cœurs de calcul, un


processeur graphique, de la mémoire statique ou dynamique (Flash, RAM, ROM, EPROM...),
des capteurs ou coprocesseurs et une puce radio pour les communications sans fil (Bluetooth,
Wi-Fi) ou cellulaires.

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

B. Éléments constitutifs d'un SOC


Système embarqué des années 90
 Processeur généraliste (32-bits 33MHz)

 Processeur spécialisé (GPU + DSP)

 Mémoires (16Mbits, 1Mbits, 4Mbits), ROM (4Mbits)

 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

Quelle différence avec un PC ?


Dans un PC, il y a aussi :

 Un processeur ;

 De la mémoire ;

 Des périphériques ...

Aussi les “processeurs” récents sont des SoCs. Ils intègrent :

 GPU, Interfaces...

La différence principale vient de la spécialisation.

 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

Plus performant : deux espaces importants entre en considération ; la performance brute


(vitesse de traitement, fréquence de fonctionnement) et la consommation énergétique. Ces deux
aspects sont parfois incompatibles.

La puissance dissipée dans un circuit électronique numérique peut s'exprimer de la forme :


2
P = αC f Vdd
Où : f est la fréquence de fonctionnement et a le taux d'activité.
- Sont liés à l'application et :
C la capacité équivalente des portes qui commutent,
Vdd est la tension d'alimentation,
- Sont liés à la “physique” du circuit.
Va plus vite
Consomme moins
Donc de nouvelles applications
- Moins de composants
Facture moins élevée : La loi de Moore veut dire deux choses : à coût constant, intégrer plus
de fonctionnalités ; et baisser le coût pour les mêmes fonctionnalités.
Intégration système moins coûteuse : systèmes plus simples à concevoir ; moins de
contraintes sur sa conception.

C. Caractéristiques

1. Niveau logiciel
Beaucoup de logiciel
Des solutions logicielles sont parfois suffisantes

Le logiciel permet une évolution/adaptation plus simple

 On change le logiciel ! on change l'application

 Corriger/contourner des Bugs!

 Beaucoup de développeurs

Ne pas réinventer la roue, beaucoup de choses existent:

 Des composants tout prêts

3
 Systèmes d'exploitation

 Bibliothèques

2. Niveau conception : temps de simulation,


Comment développer du matériel de façon fiable, en étant sûr de la fonctionnalité et des
performances. Rapidement, avant d'être rattrapé par la concurrence ou les solutions génériques
sans réinventer la roue, en se concentrant sur la plus-value.

Peut-on Utiliser des bibliothèques de matériel ?

On parle de blocs IPs (Intelectual Property). On peut :

 Les concevoir soi-même

 Les acheter

Cela Permettant de réduire le temps de développement et partir sur des bases connues et
fonctionnelles.

De quelles IPs a-t-on besoin ?

Le minimum à avoir :

 Un CPU, des interfaces de communication

 Utiliser une mémoire externe

Des accélérateurs pour l'efficacité

 GPU, DSP, autres

Des choses impossibles à faire en logiciel

 Interfaces particulières (radio, optique...)

 Analogique !

Quelles IPs sont disponibles ?

 Cœurs de processeurs : ARM, Mips, 8051, ad-hoc ...

 Accélérateurs : Graphique, vidéo, signal (DSP), IA ...

 Interfaces : mémoires, USB, SPI, PCI, CAN...

 Infrastructure : Bus, cache

3. Démarche générale de conception (Conjointe


Matériel-Logiciel ou Codesigne)
Un système embarqué est défini, dans plusieurs travaux scientifiques, comme étant un système
électronique et informatique autonome ne possédant pas des entrées/sorties standards comme
un clavier ou un écran d'ordinateur. Un système embarqué est un système autonome utilise
généralement un processeur et exécute un logiciel dédié pour réaliser une fonctionnalité précise.
Des circuits numériques et analogiques sont utilisés en plus pour augmenter les performances
du système embarqué ou sa fiabilité, en plus dans un système embarqué des opérations de
calcul doivent être faites en réponse à un événement extérieur, ce qui signifie un fonctionnement
4
en temps réel et réactivité [8].

A. Conception mixtes logiciel/matériel (Codesign)

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].

B. Les SoCs et les SoPCs

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].

Architecture de base d'un système sur puce.


L'approche SoC a été créée dans un premier temps pour le développement d'ASIC mais a
été étendue pour le développement de FPGA. On parle alors de SoPC pour System on
Programmable Chip. Nous remarquons clairement que l'élément de base et de liaison entre les
différentes parties est bien le BUS d'interfaçage, leur étude, modélisation et implantation est
une nécessité importante pour la conception des systèmes numériques embarqués.

C. Communications sur puce

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].

C.1. Les connexions point-à-point

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 FIFOs 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.

C.2. Les bus de communication

Un bus représente un canal unique de communication. Ce canal supporte le transfert de toutes


les données entre les différents composants du SoC. Une architecture de bus intègre deux
principaux éléments qui sont le canal et l'arbitre. A l'heure actuelle, on retrouve une grande
variété de bus standards, plus ou moins performants, offerts par les industriels. Il existe deux
types d'architectures de bus, des architectures dites partagées et des architectures matricielles.

 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.

 Contrairement aux architectures partagées, les architectures matricielles (Crossbar)


augmentent davantage le parallélisme du système au détriment des ressources
matérielles allouées. Il existe deux topologies différentes dans la conception des bus
matriciels : des architectures distribuées et des architectures centralisées. La différence
entre les deux architectures réside dans la façon de gérer l'arbitrage du bus.
Actuellement, les concepteurs de SoC ont plus tendance à s'orienter vers des conceptions
de bus matriciels.

C.3. Les réseaux sur puce (NoC)

Comme le problème majeur de la communication revient toujours à la limitation en bande


passante du bus qui reste plus ou moins insuffisante pour la plupart des applications complexes,
les réseaux sur puce (NoC) ont été introduits afin de remédier à cette limitation et d'intégrer
davantage de nouveaux processeurs et de composants matériels. Un réseau sur puce est
constitué d'un ensemble de composants et de routeurs. Les routeurs sont reliés entre eux via
des canaux de communication. Cependant, l'inconvénient majeur de ce type d'architecture
revient à l'existence de blocages (deadlocks), dus à des accès simultanés à des ressources
partagées, et à la difficulté d'analyser les performances effectives du réseau (latence, deadlocks,
etc.) [3].

Les bus utilisés sans les systèmes sur puce


A. Le bus AVALON

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'IPs OpenSource (CPUs, 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
VHDL07 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

ARCHITECTURE D'UN Q-SWITCH


Les composants d'un Q-Switch
La structure d'un Switch est la suivante :

 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.).

ARCHITECTURE DU PORT DE SORTIE DU ROUTEUR Q-SWTICH


 Une logique de contrôle qui gère les connexions entre les ports d'entrée et de sortie d'un
routeur. La logique de contrôle gère également le stockage de paquets qui ne peuvent
pas être transférées à des directions suivantes, en raison de signaux d'occupation de
routeurs voisins. En outre, si le routeur ne peut pas stocker plus de paquets entrants, la
logique de contrôle informe les voisins (qui ont envoyé les paquets au routeur considéré)
que le routeur ne peut pas accepter temporairement d'autres paquets.

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.

 Si le paquet (p) rencontre des éléments incapables de transmettre des données en


dimension x, les routeurs prennent une décision temporaire de routage à dimension y.

 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.

RÈGLES DES PRIORITÉS A DROITE


E x e m ple
Un port rencontre des paquets arrivants des directions nord, ouest et sud. Si nous appliquons
les règles de priorité à l'emprise de ces sens, par conséquent, nous n'avons que les paquets de
la direction du sud qui auront la plus haute priorité, puis ceux de l'ouest et enfin les paquets
issus de la direction du nord. La même procédure est appliquée à tous les autres ports.

Des cas possibles :

(a)

11
(b)

(c)

(d)
APPLICATION DES RÈGLES PRIORITAIRES DANS LES DIRECTIONS POSSIBLE (A) EST,
(B) NORD, (C) OUEST, (D) SUD

12

Vous aimerez peut-être aussi