La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Modélisation et Simulation de Systèmes sur Puce avec Soclib

Présentations similaires


Présentation au sujet: "Modélisation et Simulation de Systèmes sur Puce avec Soclib"— Transcription de la présentation:

1 Modélisation et Simulation de Systèmes sur Puce avec Soclib
François Pêcheux Laboratoire LIP6/ASIM

2 Plan de la présentation
Principes de SoCLib Interfaces normalisées Composants disponibles Un exemple de plate-forme Outils associés Conclusion

3 SocLib, les principes Résultat du travail collaboratif de 13 Laboratoires Nationaux et 6 partenaires industriels (dont ST et Thalès) Plate-forme labellisée par le CNRS en 2003 La coordination est assurée par le LIP6 Bibliothèque de modèles de composants Ecrits en SystemC Deux types de modèles (CABA et TLM/T) Interopérables (VCI) Performants (automates d’états synchrones) Open-source Conçue pour la modélisation et la simulation efficace de plate-formes multiprocesseurs à espace mémoire partagé. Conçue pour l’exploration architecturale

4 Niveaux d’abstraction
Granularité du temps Modèles TLM/T Transaction : Plusieurs cycles 1 ordre De grandeur Modèles CABA Cycle d’horloge 1 ordre De grandeur Modèles RTL synthétisables (VHDL, Verilog) Delta Cycle

5 Interface normalisée : VCI (Virtual Component Interface)
Séparer clairement (au niveau du matériel) la fonction de calcul de la fonction de communication. => réutilisation des composants matériels Supporter les architectures multi-processeurs => plusieurs dizaines de maîtres Conserver le paradigme de communication « espace d ’adressage partagé » : Un initiateur désigne sa cible par les bits de poids fort de l ’adresse et une case mémoire particulière par les bits de poids faible. => réutilisation des composants logiciels Fournir à chaque maître l’illusion qu ’il dispose d ’un canal de communication point à point avec chaque cible. => simplification du protocole d ’accès au « bus » Possibilité de mécanismes de communication autres que le bus. => bande passante « illimitée »

6 Envoi d’une commande VCI
INITIATEUR VCI CIBLE VCI ADDRESS WDATA CMD ~90 fils BE EOP SRCID CMDVAL CMDACK

7 Les FSMs correspondantes
INITIATEUR VCI CIBLE VCI ADDRESS WDATA CMD BE EOP SRCID CMDACK=0 CMDVAL=0 CMDACK=1 CMDVAL=1 CMDVAL CMDACK

8 Envoi d’une réponse VCI
INITIATEUR VCI CIBLE VCI RDATA RERROR ~50 fils REOP RSRCID RSPVAL=0 RSPACK=0 RSPVAL=1 RSPACK=1 RSPACK RSPVAL

9 Décodage d’adresse TABLE DES SEGMENTS CIBLE VCI (0) CIBLE VCI (1)
ADDRESS WDATA CMD BE EOP SRCID CMDVAL CMDACK ADDRESS WDATA CMD BE EOP SRCID CMDVAL CMDACK INTERCONNECT VCI TABLE DES SEGMENTS ADDRESS WDATA CMD BE EOP SRCID CMDVAL CMDACK INITIATEUR VCI

10 2 niveaux de routage CMD et RSP
ADDRSIZE MSB LSB ADRESSE CMD SRCIDSIZE SRCID MSB SRCID LSB Indice de cluster Indice local RSP Indice de cluster Indice local segtable.setMSB(4); segtable.setLSB(3); segtable.addSegment(« seg », adrBase, segSize, idxCluster, idxTarget, segAttr);

11 VCI compliant on-chip interconnect
CPU Icache Dcache VCI compliant on-chip interconnect Interrupt controller ROM RAM Timer FIFO interface Coprocessor DSPIN to VCI router North South East West Local Notion de cluster

12 Ecriture sous forme d’automates d’états synchrones communiquants
1 modèle = 1 SC_METHOD transition(), appelée sur chaque front montant de l’horloge + 1 SC_METHOD genMoore(), appelée sur chaque front descendant de l’horloge N SC_METHOD genMealy(), sensibles aux entrées TRANSITION ETAT Fonction de MEALY Fonction de Moore S ’ S VCI favorise la réalisation d’automates de Moore N=0, ce qui accélère notablement la vitesse de simulation pour M composants transition() 1..M genMoore() 1..M

13 Modèles de composants disponibles
Processeurs + caches MIPS R3000, soclib_multi_mips.h OpenRISC 1200, soclib_or1200.h Power PC Sparc V8 Réseau d’interconnexion VGMN (Virtual Generic Micro Network), soclib_vci_gmn.h Local crossbar, soclib_vci_local_crossbar.h DSPIN (présentation à suivre) Mémoire Multi-segments, soclib_vci_multiram.h Verrous, soclib_vci_ramlocks.h Interfaçage coprocesseur Soclib_vci_threader, soclib_vci_threader.h Soclib_vci_target_multififo, soclib_vci_target_multififo.h Périphériques d’entrées/sorties Terminal, soclib_vci_multitty.h Timer, soclib_vci_multitimer.h

14 Contrôleur de cache unifié
PROCESSEUR MIPS R3000 SPARC V8 OPENRISC 1200 POWERPC 405 XCACHE Direct Mapped Write-Through Write Buffer REQ ADDRESS WDATA UNC CMD MISS BE INS EOP BERR SRCID CMDVAL IRQ CMDACK REQ RDATA ADR REOP TYPE RERROR WDATA RSRCID MISS RSPVAL RDATA RSPACK BERR XCACHE VCI

15 Mémoire SoCLib Sources C de l’application gcc_x ld_x Cluster,Index
« TEXT » : 0x SIZE : 0x Caché initSegmentExec() ADDRESS WDATA CMD BE « RESET » : 0xBFC00000 SIZE : 0x Caché EOP gcc_x SRCID « DATA » : 0x SIZE : 0x Caché CMDVAL ld_x CMDACK RDATA REOP « TEXT » : 0x SIZE : 0x RERROR RSRCID « RESET » : 0xBFC00000 SIZE : 0x RSPVAL RSPACK « DATA » : 0x SIZE : 0x Cluster,Index Binaire exécutable, Sections BFD VCI TARGET

16 Entrées/sorties : Terminal
SOCLIB_VCI_TTY ADDRESS WDATA Application X-Window CMD BE EOP Lecture caractère SRCID CMDVAL CMDACK Pipe Unix RDATA REOP Ecriture caractère RERROR RSRCID RSPVAL RSPACK VCI TARGET

17 Un exemple : La plate-forme date04
TTY T I1 TTY T I2 TTY T I3 TTY T I4 MultiRAM 0 T I5 MultiRAM 1 T Micro-réseau I0 T0 Cache I+D I T T1 MIPS R3000 Cache I+D I T T2 MIPS R3000 Cache I+D I T T3 MIPS R3000 I7 Multi-Timer T I6 Locks T Cache I+D I T MIPS R3000 I

18 L’application embarquée en C de date04
it.c void SwitchOnIt(int it) { char s[10]; int i,ti; int *p=(int*)0xB ; /* Identify the active interrupt of highest priority */ for (i=0; i<8; i++) if (it&(1<<i)) break; switch (i) { ... case 2: /* It 0 */ uputs("timer interrupt",procnum()); ti=*(p+0); itoa(ti,s); uputs("Interrupt acknowledged at cycle :", procnum()); uputs(s,procnum()); uputs("",procnum()); *(p+3+(procnum()<<2))=0; // reset irq default: } main.c int main0(void) { int *p=(int*)0xB ; uputs("Hello from processor 0",procnum()); *(p+2)=10000; // Initalize timer *(p+1)=3; // Run timer while (1); return 0; } int main3(void) int *p=(int*)0xB ; uputs("Hello from processor 3",procnum()); *(p+2)=13000; // Initalize timer and run

19 Exécution de la simulation

20 date04 : Les quatre terminaux

21 Outils associés SystemCass, Simulateur à ordonnancement statique, 7 fois plus rapide que SystemC SocView, Outil de mise au point des modèles et des plates-formes DSG, outil de génération automatique de plate-forme et de déploiement de l’application multi-thread « Serendipity », En cours de développement : Simulateur multi-niveaux d’abstraction : commutation «à chaud» entre simulation TLM/T et CABA.

22 DSG : Un exemple de cluster générique
CPU Icache Dcache VCI compliant on-chip interconnect Interrupt controller ROM RAM Timer FIFO interface Coprocessor N processors M rams Semaph

23 Conclusion Bibliothèque opérationnelle de modèles de composants
Environnement, bibliothèque et outils disponibles sur Méthode simplifiée de déploiement d’une application logicielle parallèle sur une plate-forme matérielle générique par l’emploi de générateurs de systèmes Réalisation d’un CI système sur puce, AoC, s’appuyant sur les principes de SoCLib Point chaud : La conception d’un système embarqué opérationnel revient à trouver un placement optimal pour les threads de l’application embarquée sur les processeurs les canaux de communicationsur les bancs mémoire physique les coprocesseurs matériels dans l’espace mémoire partagé

24 Contacts dans l’équipe SoCLib du LIP6
Direction du projet SocLib, Coordination, SystemCASS, MUTEK, Modélisation TLM/T, Déploiement de plates-formes, SoCView, Processeur Réseau, Modèles Interconnect, Modèle Processeur Java, Modèle Processeur Mips, Micro-réseau DSPIN Modèle Processeur test


Télécharger ppt "Modélisation et Simulation de Systèmes sur Puce avec Soclib"

Présentations similaires


Annonces Google