Systèmes multi-processeurs intégrés sur puce version 1.0 PHY 568 Alain Greiner Pla n Architectures multi-processeurs à mémoire partagée Applications parallèles embarquées Bus système / exemple du PIBUS PHY 568 Alain Greiner 2 Bu t Un système multiprocesseurs intégré sur puce (MPSoC), cherche à exploiter le parallélisme « gros grain » d’une unique application embarquée. Exemple : contrôle d’un téléphone portable Une même puce contient plusieurs processeurs exécutant en parallèle différentes tâches. Ces tâches communiquent généralement entre elles à travers un espace d’adressage partagé, suivant un schéma producteur/consommateur. PHY 568 Alain Greiner 3 Espace d’adressage partagé Les maîtres (ou initiateurs) démarrent une transaction en effectuant une lecture ou une écriture à une adresse particulière. Les esclaves (ou cibles) terminent la transaction en renvoyant la donnée demandée (lecture), ou en renvoyant un acquittement (écriture) Esclaves RAM ROM TTY I/O P0 P1 P2 P3 Interconnect Maîtres Une transaction est un couple (commande / réponse). PHY 568 Alain Greiner 4 Décodage des adresses Tous les composants du système ont la même vision de l’implantation des cibles dans l’espace d’adressage. L’interconnect décode les bits de poids fort de l’adresse pour pour acheminer la commande vers la cible concernée. 31 0 MSB ROM RAM TTY LSB La cible décode les poids faible de l’adresse pour adresser la case mémoire visée, en lecture ou en écriture. PHY 568 FFFF FFFF I/O 0000 0000 Alain Greiner 5 Pla n Architectures multi-processeurs à mémoire partagée Applications parallèles embarquées Bus système / exemple du PIBUS Principe des mémoires caches PHY 568 Alain Greiner 6 Caractéristiques Générales • Les applications logicielles sont souvent décrite sous forme d’un réseau de tâches communicant entre elles à travers des canaux de communication. • Une tâche est un programme séquentiel « infini » qui utilise des fonctions de communication prédéfinies : • Un canal de communication est très souvent un tampon mémoire circulaire, géré comme une FIFO logicielle, et protégé par par un verrou d’accès exclusif. while(1) { … … send(channel, buffer) … … } Tâche productrice PHY 568 while(1) { … … receive(channel, buffer) … … } Canal Tâche consommatrice Alain Greiner 7 Parallélisme de type « pipeline » T0 T1 T2 T3 Cette structure se retrouve fréquemment dans les applications de type « traitement de flux video », telles que décodage MPEG… Lorsque le temps de calcul pour traiter une image est supérieur à la période de l’image, on découpe le traitement en plusieurs tâches. Chaque tâche i a une durée inférieure à la période image, et est exécutée sur un processeur particulier. La durée d’exécution de chaque tâche est variable (elle dépend généralement de l’image), mais toutes les tâches doivent avoir des durées moyennes peu assez voisines, pour « équilibrer » le pipe-line. PHY 568 Alain Greiner 8 Parallélisme de type « taskfarm » Cette structure se retrouve fréquemment dans les applications de type « télécommunication », telles que classification de paquets dans un flux Gigabit Ethernet. T0 Tin T1 Tout Tn Toutes les tâches Ti accomplissent le même traitement, mais sur des paquets différents. PHY 568 Alain Greiner 9 Parallélisme mixte On peut évidemment combiner les deux structures : Tin T00 T01 T10 T11 Tn0 Tn1 Tout Dans tous les cas, l’expression du parallélisme « gros grain » (découpage en tâches et définition du schéma de communication) est à la charge du concepteur du système. PHY 568 Alain Greiner 10 Pla n Architectures multi-processeurs à mémoire partagée Applications parallèles embarquées Bus système / exemple du PIBUS PHY 568 Alain Greiner 11 Bus système L’interconnect est réalisé comme un ensemble de nappes de fils partagées par plusieurs émetteurs. La limitation de ce type d’interconnect est de ne permettre qu’une seule transaction à la fois… Esclaves RAM ROM TTY I/O P0 P1 P2 P3 BCU Maîtres PHY 568 Alain Greiner 12 NRESET CK Les signaux du PIBUS A[31:0] OPC[3:0] commande Cible j READ LOCK D[31:0] Maître i ACK[2:0] GNTi REQi PHY 568 BCU réponse SELj Alain Greiner 13 Caractéristiques Générales Synchrone : Tous les composants connectés au bus doivent être cadencés par la même horloge et respecter les mêmes contraintes de setup-time et hold-time. Pipeliné : Il existe des nappes de fils séparées pour transporter les adresses et pour transporter les données. Rafales : il est possible de lire ou d’écrire plusieurs mots de 32 bits en une seule transaction. PHY 568 Alain Greiner 14 Fonctionnement pipeline GNT GNT AD GNT AD0 DT LOCK ~ 0 ~ 1 AD1 AD2 AD3 DT0 DT1 DT2 1 1 0 AD DT3 ~ DT 0 • Recouvrement entre 2 transactions consécutives : L’allocation du bus à un nouveau maître (GNT) se fait pendant le dernier cycle de la transaction précédente. • Recouvrement entre transferts au sein d’une rafale : L’adresse correspondant au transfert (i+1) est transmise durant le même cycle que la donnée (i) PHY 568 Alain Greiner 15 Fonctionnement « asynchrone » La durée d’une transaction n’est pas garantie : - le nombre de cycles d’attente pour obtenir l’allocation du bus (entre l’activation du signal REQ et l’obtention du signal GNT) est généralement non prédictible… -la cible peut insérer des cycles d’attente si elle n’est pas capable de répondre en un cycle… GNT GNT AD AD0 XXX ACK PHY 568 ~ DT wait ready ~ AD1 AD1 AD1 AD2 AD3 XXX XXX DT0 DT1 DT2 wait wait DT3 ready ready ready ready Alain Greiner 16 Les trois fonctions du contrôleur de bus 1/ Allocation du bus (et arbitrage entre les différents maîtres, en cas de requêtes simultanées). 2/ Décodage des bits de poids fort de l’adresse, et sélection de la cible concernée par la transaction. 3/ Gestion « d’un chien de garde » permettant de terminer la transaction, lorsque la cible sélectionnée ne répond pas. PHY 568 Alain Greiner 17 Allocation du bus Le mécanisme d’arbitrage possède une topologie en étoile. Chaque maître est connecté au BCU par deux signaux« privés » : - REQi est une demande d’allocation du bus par le maître i - GNTi est une autorisation d’utilisation du bus pour le maître i BCU REQ0 P0 GNT0 REQ1 P1 GNT1 REQ2 P2 GNT2 PHY 568 Alain Greiner 18 Automate du contrôleur de bus • Le BCU est contrôlé par un automate à 4 états. IDLE REQ’ REQ • L’allocation du bus se fait dans les états IDLE et DT. AD LOCK LOCK’ DTAD RDY’+ LOCK RDY.LOCK’ DT RDY.REQ RDY’ RDY.REQ’ PHY 568 Alain Greiner 19 Politiques d’arbitrage PHY 568 La politique d’arbitrage n’est pas définie par le protocole du PIBUS : elle est spécifique à chaque système intégré. Il existe de nombreuses politiques possibles : – priorité tournante (round robin) – priorité fixe (cablées dans le BCU) – réservation de bande passante Alain Greiner 20