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

Slides:



Advertisements
Présentations similaires
GEF 435 Principes des systèmes d’exploitation
Advertisements

GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes dexploitation Le matériel des ordinateurs Revue Pt II (Tanenbaum 1.4)
GEF 435 Principes des systèmes dexploitation Les systèmes dexploitation en général (Tanenbaum 1.1 et 1.3)
Module 5 : Implémentation de l'impression
Checkpoint et Rollback pour systèmes multi-core (1/2)
Architecture de machines Le microprocesseur
Types des systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitation
Nouvelles Technologies Le bus PCI et ses évolutions
PLAN du COURS Introduction Structure des Systèmes Informatiques
Objectif de l’exposé.
Informatique parallèle hautes performances
Répétitives sur une architecture régulière embarquée
Architecture de machines Principes généraux
Cours d’initiation en Informatique
Les systèmes à microprocesseur
ARCHITECTURE GLOBALE CAPTAGE Traitement DES des données GRANDEURS
MACHINE DE MOORE SYNCHRONE SIMPLIFIÉE Professeur à l'UHP / ESIAL
Simulation & Evaluation de la Consommation de Puissance dans les MPSoC
Mémoire périphérique Stockage primaire: Mémoire principale (RAM)
Gestion des Périphériques
UE SYSTEMC – Cours 3 La bibliothèque SocLib
Journée ConecsSdF 27 janvier 2011 ATELIER BENCHMARK Mise en œuvre du cas-test sur le simulateur Samovar Adrien GUENARD, INRIA Nancy, France Date.
Informatique temps réel et réseaux de terrain – ELEC365
Historique de SystemC Regroupe 4 courants didées: SCENIC Project : Synopsys+UC Irvine Philips System-Level Data Types, VSIA SLD DWG IMEC, Hardware-Software.
OIL & UPML DREVET - HUMBERT Introduction OIL : un langage de description dontologies UPML : un langage de description de systèmes à base.
Synthèse d’activités Présentation.
LES SYSTEMES AUTOMATISES
©Frédéric Bastien 2006 Université de Montréal 1 LISATek LISATek pour concevoir des processeurs.
Programmation concurrente
Parallélisme des instructions
Périphériques et bus système
1. 2 Toolkits Il existe 4 principales boites à outils (toolkits) graphiques : –Xt / Motif –Gtk –Windows –Qt Seul certaines fonctionnent sur toutes les.
Chap. 2 - Structure d’un ordinateur
UE SYSTEMC – Cours 4 Prototypage virtuel avec SocLib
UE SYSTEMC – Cours 5 SystemC + Logiciel embarqué
Système dexploitation: Principe IFT6800 – E 2008 Pierre Poulin.
Synchronisation Classique
ΜP David Saint-Mellion.
Présentation de l’automate
Lycée ELKHAWARIZMI De SAFI
CEDCOM architecture haute performance pour des applications “big data” Tanguy Raynaud Projet CEDAR.
Power PC embarqués et accélérateurs matériels pour des cibles de type FPGA Julien Dubois.
1 BDs Orientées Objets Witold LITWIN. 2 Pourquoi ? F Les BDs relationnelles ne sont pas adaptées aux applications CAD/CAM, cartes géo... F le problème.
Les systèmes mono-puce
CEG3585/CEG3555 Tutorat 2 Hi ver 2013.
Contribution à la mise en place d'une plateforme open-source MPSoC sous SystemC pour la Co-simulation d'architectures hétérogènes Thèse préparée par.
Noyau Linux et multi-processeur sur plateforme embarquée ST50 Vendredi 18 Mars 2005 – Thomas Petazzoni.
D. E ZEGOUR Institut National d ’Informatique
Programmation Système et Réseau
PERI Master ACSI cours Gestion des Périphériques Année (Transparents de F. Dromard)
05 – Couche 3 - Couche réseau Terme anglais = The Network Layer.
Steven Derrien Équipe R2D2
02/10/2013JC LP MD1 COURS_3. 02/10/2013JC LP MD2 Direct Memory Access DMA.
Conception d ’ une IP d ’ un contrôleur de bus I ² C en SystemC1.0 ZHANG XUN Tuteurs du projet : Mr. P. Garda - Mr. O. Romain LISIF---Team SYEL Université.
Laboratoire Intégration des Architectures Numériques (IAN)
Gestion des Périphériques
Un programme Algorithme permettant au processeur de s'alimenter:
1 LE BUS PCI 8 ième partie: L ’espace de configuration Sommaire - Repère zHuitième partieL ’espace de configuration yQu ’est-ce? yEspace de configuration.
PROJET CAPS Compilation, Architecture, Parallélisme et Système.
Hiver 2004SEG2501 Chapître 41 Chapître 4 SDL – structure d’un système et son comportement.
Simulation de traces réelles d’E/S disque de PC. Jalil Boukhobza, Claude Timsit Perpignan le 06/10/2006.
Patricia Renault UPMC 2005/2006
Architecture Client/Serveur
Architecture et technologie des ordinateurs II
Présentation de 2 séquences
Les bascules et registres
ARCHITECTURE MATERIELLE D’UN SYSTEME A MICROPROCESSEUR
ASR5 Système pour architectures multicœurs CSC5001 : Systèmes Hautes Performances Architecte de Services informatiques Répartis Gaël Thomas
Transcription de la présentation:

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

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

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

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 »

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

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

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

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

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);

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

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

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

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

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

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

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 

L’application embarquée en C de date04 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 default: } main.c int 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

Exécution de la simulation

date04 : Les quatre terminaux

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.

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

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 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é

Contacts dans l’équipe SoCLib du LIP6 Direction du projet SocLib, alain.greiner@lip6.fr Coordination, francois.pecheux@lip6.fr SystemCASS, richard.buchmann@lip6.fr MUTEK, franck.wajsburt@lip6.fr, pascal.gomez@lip6.fr Modélisation TLM/T, emmanuel.viaud@lip6.fr Déploiement de plates-formes, SoCView, wahid.bahroun@lip6.fr Processeur Réseau, daniela.genius@lip6.fr, etienne.faure@lip6.fr, Modèles Interconnect, herve.charlery@lip6.fr, laurent.mortiez@lip6.fr, Modèle Processeur Java, maxime.palus@lip6.fr Modèle Processeur Mips, pirouz.bazargan@lip6.fr, mathieu.rosiere@lip6.fr Micro-réseau DSPIN alain.greiner@lip6.fr, hamed.sheybanirad@lip6.fr Modèle Processeur test mounir.benabdenbi@lip6.fr, matthieu.tuna@lip6.fr