24
Modélisation et Simulation de Systèmes sur Puce avec Soclib François Pêcheux Laboratoire LIP6/ASIM [email protected]

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

Embed Size (px)

Citation preview

Page 1: Modélisation et Simulation de Systèmes sur Puce avec Soclib François Pêcheux Laboratoire LIP6/ASIM francois.pecheux@lip6.fr

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

François Pêcheux

Laboratoire LIP6/ASIM

[email protected]

Page 2: Modélisation et Simulation de Systèmes sur Puce avec Soclib François Pêcheux Laboratoire LIP6/ASIM francois.pecheux@lip6.fr

Plan de la présentation

Principes de SoCLib Interfaces normalisées Composants disponibles Un exemple de plate-forme Outils associés Conclusion

Page 3: Modélisation et Simulation de Systèmes sur Puce avec Soclib François Pêcheux Laboratoire LIP6/ASIM francois.pecheux@lip6.fr

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

Page 4: Modélisation et Simulation de Systèmes sur Puce avec Soclib François Pêcheux Laboratoire LIP6/ASIM francois.pecheux@lip6.fr

Niveaux d’abstraction

Modèles RTL synthétisables(VHDL, Verilog)

Modèles CABA

Modèles TLM/T

Cycle d’horloge

Delta Cycle

Transaction :Plusieurs cycles

Granularité du temps

1 ordreDe grandeur

1 ordreDe grandeur

Page 5: Modélisation et Simulation de Systèmes sur Puce avec Soclib François Pêcheux Laboratoire LIP6/ASIM francois.pecheux@lip6.fr

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 »

Page 6: Modélisation et Simulation de Systèmes sur Puce avec Soclib François Pêcheux Laboratoire LIP6/ASIM francois.pecheux@lip6.fr

Envoi d’une commande VCI

ADDRESSADDRESS

CMDCMD

BEBE

WDATAWDATA

EOPEOP

SRCIDSRCID

……

CMDVALCMDVAL

CMDACKCMDACK

INITIATEURVCI

CIBLEVCI

~90 fils

Page 7: Modélisation et Simulation de Systèmes sur Puce avec Soclib François Pêcheux Laboratoire LIP6/ASIM francois.pecheux@lip6.fr

Les FSMs correspondantes

ADDRESSADDRESS

CMDCMD

BEBE

WDATAWDATA

EOPEOP

SRCIDSRCID

……

CMDVALCMDVAL

CMDACKCMDACK

INITIATEURVCI

CIBLEVCI

CMDACK=0

CMDACK=1

CMDVAL=0

CMDVAL=1

Page 8: Modélisation et Simulation de Systèmes sur Puce avec Soclib François Pêcheux Laboratoire LIP6/ASIM francois.pecheux@lip6.fr

Envoi d’une réponse VCI

RERRORRERROR

REOPREOP

RDATARDATA

RSRCIDRSRCID

……

RSPACKRSPACK

RSPVALRSPVAL

INITIATEURVCI

CIBLEVCI

RSPVAL=0

RSPVAL=1

RSPACK=0

RSPACK=1

~50 fils

Page 9: Modélisation et Simulation de Systèmes sur Puce avec Soclib François Pêcheux Laboratoire LIP6/ASIM francois.pecheux@lip6.fr

AD

DR

ES

SA

DD

RE

SS

CM

DC

MD

BEBE

WD

AT

AW

DA

TA

EO

PE

OP

SR

CID

SR

CID

……

CM

DV

AL

CM

DV

AL

CM

DA

CK

CM

DA

CK

CIBLEVCI (1)

AD

DR

ES

SA

DD

RE

SS

CM

DC

MD

BEBE

WD

AT

AW

DA

TA

EO

PE

OP

SR

CID

SR

CID

……

CM

DV

AL

CM

DV

AL

CM

DA

CK

CM

DA

CK

CIBLEVCI (0)

Décodage d’adresse

AD

DR

ES

SA

DD

RE

SS

CM

DC

MD

BEBE

WD

AT

AW

DA

TA

EO

PE

OP

SR

CID

SR

CID

……

CM

DV

AL

CM

DV

AL

CM

DA

CK

CM

DA

CK

INITIATEURVCI

INTERCONNECTVCI

TABLEDES

SEGMENTS

Page 10: Modélisation et Simulation de Systèmes sur Puce avec Soclib François Pêcheux Laboratoire LIP6/ASIM francois.pecheux@lip6.fr

2 niveaux de routage CMD et RSP

SRCID MSB SRCID LSB

segtable.setMSB(4);segtable.setLSB(3);

segtable.addSegment(« seg », adrBase, segSize, idxCluster, idxTarget, segAttr);

ADRESSEMSB LSB

ADDRSIZE

SRCIDSIZE

Indice decluster

Indice local

Indice decluster

Indice local

CMD

RSP

Page 11: Modélisation et Simulation de Systèmes sur Puce avec Soclib François Pêcheux Laboratoire LIP6/ASIM francois.pecheux@lip6.fr

Notion de cluster

CPU

Icache Dcache

VCI compliant on-chip interconnect

CPU

Icache Dcache

CPU

Icache Dcache

Interruptcontroller

ROMRAM RAM Timer

CPU

Icache Dcache

FIFOinterface

Coprocessor

FIFOinterface

Coprocessor

… DSPINto

VCI

VCIto

DSPIN

DSPINrouter

North

South

East

West

Local

Page 12: Modélisation et Simulation de Systèmes sur Puce avec Soclib François Pêcheux Laboratoire LIP6/ASIM francois.pecheux@lip6.fr

Ecriture sous forme d’automates 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 l’horloge+

1 SC_METHOD genMoore(), appelée sur

chaque front descendant de l’horloge

+N SC_METHOD genMealy(),

sensibles auxentrées

VCI favorise la réalisation d’automates de Moore N=0, ce qui accélère notablement la vitesse de simulationpour M composants

transition() 1..MgenMoore() 1..M

Page 13: Modélisation et Simulation de Systèmes sur Puce avec Soclib François Pêcheux Laboratoire LIP6/ASIM francois.pecheux@lip6.fr

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

Page 14: Modélisation et Simulation de Systèmes sur Puce avec Soclib François Pêcheux Laboratoire LIP6/ASIM francois.pecheux@lip6.fr

Contrôleur de cache unifié

ADDRESS

CMD

BE

WDATA

EOP

SRCID

CMDVAL

CMDACK

XCACHE

Direct MappedWrite-Through

Write BufferREOP

RERROR

RDATA

RSRCID

RSPACK

RSPVAL

UNC

REQ

MISS

INS

BERR

ADR

REQ

MISS

RDATA

BERR

TYPE

WDATA

PROCESSEUR

MIPS R3000SPARC V8

OPENRISC 1200POWERPC 405

IRQ

VCIXCACHE

Page 15: Modélisation et Simulation de Systèmes sur Puce avec Soclib François Pêcheux Laboratoire LIP6/ASIM francois.pecheux@lip6.fr

RSPACK

Mémoire SoCLib

ADDRESS

CMD

BE

WDATA

EOP

SRCID

CMDVAL

CMDACK

REOP

RERROR

RDATA

RSRCID

RSPVAL

VCI TARGET

« DATA » : 0x10000000SIZE : 0x00010000Caché

« RESET » : 0xBFC00000SIZE : 0x00010000Caché

« TEXT » : 0x00400000SIZE : 0x00010000Caché

Cluster,Index

Sources C de l’application

gcc_x

ld_x

« TEXT » : 0x00400000SIZE : 0x00010000

« RESET » : 0xBFC00000SIZE : 0x00010000

« DATA » : 0x10000000SIZE : 0x00010000

Binaire exécutable, Sections BFD

initSegmentExec()

Page 16: Modélisation et Simulation de Systèmes sur Puce avec Soclib François Pêcheux Laboratoire LIP6/ASIM francois.pecheux@lip6.fr

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

Ecriturecaractère

Lecturecaractère

Application X-Window

Page 17: Modélisation et Simulation de Systèmes sur Puce avec Soclib François Pêcheux Laboratoire LIP6/ASIM francois.pecheux@lip6.fr

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

Page 18: Modélisation et Simulation de Systèmes sur Puce avec Soclib François Pêcheux Laboratoire LIP6/ASIM francois.pecheux@lip6.fr

L’application embarquée en C de date04

main.cint main0(void){ int *p=(int*)0xB0000000; 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*)0xB0000030; 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*)0xB0000000;

/* 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 break;

... default: break; }}

Page 19: Modélisation et Simulation de Systèmes sur Puce avec Soclib François Pêcheux Laboratoire LIP6/ASIM francois.pecheux@lip6.fr

Exécution de la simulation

Page 20: Modélisation et Simulation de Systèmes sur Puce avec Soclib François Pêcheux Laboratoire LIP6/ASIM francois.pecheux@lip6.fr

date04 : Les quatre terminaux

Page 21: Modélisation et Simulation de Systèmes sur Puce avec Soclib François Pêcheux Laboratoire LIP6/ASIM francois.pecheux@lip6.fr

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.

Page 22: Modélisation et Simulation de Systèmes sur Puce avec Soclib François Pêcheux Laboratoire LIP6/ASIM francois.pecheux@lip6.fr

DSG : Un exemple de cluster générique

CPU

Icache Dcache

VCI compliant on-chip interconnect

CPU

Icache Dcache

CPU

Icache Dcache

Interruptcontroller

ROMRAM RAM Timer

CPU

Icache Dcache

FIFOinterface

Coprocessor

FIFOinterface

Coprocessor

N processors

M rams

Semaph

Page 23: Modélisation et Simulation de Systèmes sur Puce avec Soclib François Pêcheux Laboratoire LIP6/ASIM francois.pecheux@lip6.fr

Conclusion

Bibliothèque opérationnelle de modèles de composants

Environnement, bibliothèque et outils disponibles sur http://soclib.lip6.fr

Méthode simplifiée de déploiement d’une application logicielleparallè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é

Page 24: Modélisation et Simulation de Systèmes sur Puce avec Soclib François Pêcheux Laboratoire LIP6/ASIM francois.pecheux@lip6.fr

Contacts dans l’équipe SoCLib du LIP6

Direction du projet SocLib, [email protected] Coordination, [email protected] SystemCASS, [email protected] MUTEK, [email protected], [email protected] Modélisation TLM/T, [email protected] Déploiement de plates-formes, SoCView, [email protected] Processeur Réseau, [email protected], [email protected], Modèles Interconnect, [email protected], [email protected], Modèle Processeur Java, [email protected] Modèle Processeur Mips, [email protected], [email protected] Micro-réseau DSPIN [email protected], [email protected] Modèle Processeur test [email protected], [email protected]