B – Interconnexion pour les SoCs
Comme l'architecture du SoC intègre plusieurs composants. Il
faut assurer un ensemble d'interconnexions afin d’assembler le
système complet. Actuellement, on distingue 3 approches : (1)
Interconnexion par bus externe standard. (2) Connexion point à
point. (3) Connexion à travers des FIFOs ou mémoires partagées.
En ce qui concerne l’architecture du Soc que nous avons
adoptée, la connexion se fait par l'intermédiaire du bus interne du
processeur. De ce fait, il s'agit plus d'intégrer des composants
matériels au cœur de processeur que d'assembler un SoC habituel.
Le principe de fonctionnement global ressemble plus à celui d’un
ASIP.
C – Présentation du processeur
L’architecture se base sur la conception d’une application
embarquée sur une seule puce autour du processeur LEON
[Gai00]. Ce processeur est un processeur SPARC compatible dédié
pour les applications embarquées. Il comporte un cache séparé en
deux couches instructions et données, le bus AMBA AHB et APB
[Amb02], UARTs, "timers", contrôleur d’interruption, un port
d’entrés/sorite 16-bits, et une interface pour le coprocesseur
"Meiko floating-point unit".
Pour la communication des données, le processeur LEON
utilise le bus interne AMBA (Advanced Microcontroller Bus
Architecture) qui est structuré en deux BUS. Le premier est le bus
AHB (Advanced High-performance Bus). C’est un bus interne,
conçue pour les transferts hauts débit du processeur. Il est équipé
de plusieurs protocoles permettant un maximum d’optimisation au
niveau temps de transfert. Mais ces protocoles, rendent plus
compliqués la connexion des périphériques avec ce bus. Le bus
APB (Advanced Périphéral Bus) est spécialisé pour la
communication avec des périphériques. Sans protocole compliqué,
il présente une interface très simple à utiliser. Toutefois, il présente
des débits de transferts modestes. Le processeur est aussi équipé
d’un bus d’entées/sorties 32 bits qui est le bus PCI.
3 Conception d’interface de communication
A – Motivation
Afin d’aider le concepteur à concevoir la communication
entre le processeur « léon » et le(s) accélérateur(s), et lui éviter de
définir et raffiner lui-même les connexions des bus, des pines etc.,
nous proposons un modèle permettant à chaque accélérateur de se
connecter au processeur par configuration. Ce modèle intègre une
interface qui est connectée en premier lieu avec l’IP (figure 2-a).
Ensuite, tout le bloc accélérateur matériel et interface sont associés
au reste du system on chip (figure 2-b) à travers le bus AMBA.
Dans ce cas, lors de l’intégration sur le bus AMBA, la connexion
avec le processeur devient ainsi plus simple.
Cette approche permet donc au concepteur de simplifier la
phase d’intégration. L’interface est considérée d’un coté comme un
esclave du processeur sur le bus AMBA ; et de l’autre côté, elle est
considérée comme maître de l’accélérateur matériel. Ainsi,
l’interface permet la séparation entre l’IP et le processeur.
L’interface assure la gestion entre le processeur et chaque IP
individuellement. Elle assure donc l’adaptation du protocole de
communication du processeur en fonction des caractéristiques des
IPs. Dans la suite de cette section, nous proposons des solutions
afin de résoudre les points clés du modèle d’interface à savoir :
l’adaptation du protocole de communication, la sélection et la
configuration.
B – Principe de communication
En général, la communication entre un processeur et les
périphériques nécessite la mise en œuvre de plusieurs protocoles et
gestionnaires matériels et logiciels selon le besoin.
La plupart du temps, le processeur ne commande pas
directement les périphériques. Il utilise pour cela un circuit
spécialement adapté, un « contrôleur », de caractéristiques propres
à chaque périphérique. Les commandes du processeur vers le
périphérique s'opère alors par l'intermédiaire de ce contrôleur. Ces
commandes correspondent directement aux mécanismes physiques
du périphérique tels, par exemple, que le déplacement du bras d'un
lecteur de disque. Par ailleurs, les contrôleurs sont souvent d'une
grande complexité électronique.
On relie les contrôleurs au bus du processeur et on leur alloue,
à chacun, un certain nombre d'adresses. À ces différentes adresses,
on émet des commandes de pilotage ou on effectue des entrées-
sorties de données. Le contrôleur reconnaît ses adresses grâce à une
logique de décodage. Dans certains systèmes, les contrôleurs ne
sont pas reliés au bus mais à des voies d'entrées-sorties spécifiques.
Les contrôleurs et le processeur opèrent en parallèle. Le
contrôleur dispose d'une mémoire tampon, pour lui permettre, par
exemple, de lire des données en provenance du périphérique
d'entrée pendant que le processeur traite une autre tâche.
C – Processus de sélection
Comme pour les contrôleurs, on a alloué, à chaque
accélérateur, un certain nombre d'adresses. La sélection est prise en
charge par l’interface de communication. Cette dernière est chargée
de comparer à chaque fois l’adresse délivrée par le processeur
LEON avec l’adresse réservée à l’accélérateur. Ce qui est
équivalent à réserver un comparateur 32 bits. Comme on peut
utiliser autant d’interfaces que d’accélérateurs, on est amené à
associer à chaque interface un comparateur 32 bits.
Afin d’optimiser au niveau temps et surface, on a ajouté un
décodeur (voir figure 3). Ce décodeur se charge de la génération
des signaux de sélection HSELX (X symbolise le numéro du
signal). Ainsi, l’interface se chargera seulement de détecter la mise
à ‘1’ du signal de sélection. Le décodeur réserve des plages
d’adresses à partir d’une adresse initiale et en fonction de la taille
de plage choisie.
D – Principe de l’interface de communication
Le principal objectif de l’interface est donc d’adapter le
protocole de communication de l’IP à celui du processeur LEON.
Le bus AMBA AHB du LEON admet plusieurs protocoles. Ces
protocoles sont contrôlés par le maître. En ce qui nous concerne le
bus AMBA est configuré en maître. Donc ces protocoles sont
imposés par le bus aux esclaves. Ce qui induit, que l’interface doit
décoder le type de configuration imposé par ce protocole afin
d’assurer un transfert de données correct. Pour cela, nous nous
somme basés sur le chronogramme (figure 4) de transfert simple
des données. Ensuite, nous nous somme basés sur les protocoles
clés qui font la différence de transfert au moment de l’exécution.
Ce qui est le cas pour le Hsize qui nous indique la taille du
Figure 3 : le décodeur génère les
signaux de sélections pour l’interface.
Bus AMBA
HSEL2
HSEL1
HSELx
Bus
d’adresse
IP1
Interface1
IP2
Interface2
Décodeur
figure 2-b
IP Interface
figure 2-a AMBA
IP
Interface
IP
Interface
’
interface pour la communication