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 François Pêcheux Laboratoire LIP6/ASIM

Présentations similaires


Présentation au sujet: "Modélisation et Simulation de Systèmes sur Puce avec Soclib François Pêcheux Laboratoire LIP6/ASIM"— 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 lexploration architecturale

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

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 lillusion 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 dune commande VCI ADDRESS CMD BE WDATA EOP SRCID … … CMDVAL CMDACK INITIATEUR VCI CIBLE VCI ~90 fils

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

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

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

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

11 Notion de cluster CPU IcacheDcache VCI compliant on-chip interconnect CPU IcacheDcache CPU IcacheDcache Interrupt controller ROMRAM Timer CPU IcacheDcache FIFO interface Coprocessor FIFO interface Coprocessor … … DSPIN to VCI to DSPIN router North South East West Local

12 Ecriture sous forme dautomates détats synchrones communiquants Fonction de Moore TRANSITION Fonction de MEALY ETAT S S 1 modèle = 1 SC_METHOD transition(), appelée sur chaque front montant de lhorloge + 1 SC_METHOD genMoore(), appelée sur chaque front descendant de lhorloge + N SC_METHOD genMealy(), sensibles aux entrées VCI favorise la réalisation dautomates 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 dinterconnexion 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 dentrées/sorties Terminal, soclib_vci_multitty.h Timer, soclib_vci_multitimer.h

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

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

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

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

18 Lapplication embarquée en C de date04 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 *(p+1)=3; // Run timer while (1); return 0; } 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<

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 lapplication multi-thread « Serendipity », En cours de développement : Simulateur multi-niveaux dabstraction : commutation «à chaud» entre simulation TLM/T et CABA.

22 DSG : Un exemple de cluster générique CPU IcacheDcache VCI compliant on-chip interconnect CPU IcacheDcache CPU IcacheDcache Interrupt controller ROMRAM Timer CPU IcacheDcache FIFO interface Coprocessor 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 dune application logicielle parallèle sur une plate-forme matérielle générique par lemploi de générateurs de systèmes Réalisation dun CI système sur puce, AoC, sappuyant sur les principes de SoCLib Point chaud : La conception dun système embarqué opérationnel revient à trouver un placement optimal pour les threads de lapplication embarquée sur les processeurs les canaux de communicationsur les bancs mémoire physique les coprocesseurs matériels dans lespace 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 François Pêcheux Laboratoire LIP6/ASIM"

Présentations similaires


Annonces Google