15.07.2013 Views

Modélisation SystemC d'un contrôleur mémoire durci

Modélisation SystemC d'un contrôleur mémoire durci

Modélisation SystemC d'un contrôleur mémoire durci

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Modélisation</strong> <strong>SystemC</strong> <strong>d'un</strong> <strong>contrôleur</strong> <strong>mémoire</strong> <strong>durci</strong><br />

Jean BERTRAND - CNES<br />

Vincent DELORD - CNES<br />

15/10/2010


<strong>Modélisation</strong> et Raffinage d’un System on Chip<br />

Non liée au cas d’étude ASM SWARM.<br />

Volonté d’expérimenter en interne CNES les outils STM.<br />

Déploiement de la plateforme <strong>SystemC</strong> / TLM + TAC.<br />

Objectif de modéliser et raffiner un système simple mais<br />

représentatif selon trois niveaux d’abstraction :<br />

PV PV + T CABA<br />

Workshop SoCKET – 14 et 15 octobre 2010<br />

2


Workshop SoCKET – 14 et 15 octobre 2010<br />

Expérimentation du flot SoCKET<br />

#<br />

!"# "<br />

!<br />

3


<strong>Modélisation</strong> et Raffinage d’un System on Chip<br />

Système choisi : Carte CPU NG de la Plateforme Myriade.<br />

Avantage : système existant et validé au niveau RTL.<br />

Contrepartie : pas de vraie exploration d’architecture.<br />

Workshop SoCKET – 14 et 15 octobre 2010<br />

SDRAM RTAX2000 Flash<br />

4


Au centre de la carte CPU NG : l’IP-TVM<br />

Workshop SoCKET – 14 et 15 octobre 2010<br />

5


Modèle fonctionnel simplifié de l’IP TVM<br />

Workshop SoCKET – 14 et 15 octobre 2010<br />

IP TVM<br />

6


Caractéristiques du Contrôleur <strong>mémoire</strong> « <strong>durci</strong> »<br />

Les calculateurs en environnement spatial sont fortement<br />

contraints par les perturbations dues aux radiations (Upset,<br />

Latch-up)<br />

Le FPGA RTAX2000 est résistant aux radiations, mais pas les<br />

SDRAM => Le <strong>contrôleur</strong> doit assurer la sûreté des données.<br />

Accès séquentiel « normal » ou accès tripliqué-voté.<br />

Correction des erreurs de type write-back.<br />

Sélection de trois colonnes parmi quatre pour la passivation des<br />

Latch-up.<br />

Caractéristiques fonctionnelles :<br />

Une interface de communication pour chaque Accesseur.<br />

Ordonnancement des accès de type FIFO + ready/busy.<br />

Workshop SoCKET – 14 et 15 octobre 2010<br />

7


Modèle PV du <strong>contrôleur</strong> <strong>mémoire</strong> : une Classe C++<br />

Attributs privés :<br />

(SDRCONF, FIFO, Reg<br />

client)<br />

Attributs publics :<br />

TAC target pour µP et OS-<br />

LINK<br />

TAC initiator pour SDRAM<br />

Méthode privée :<br />

Fonctionnalités du<br />

<strong>contrôleur</strong> lancé dans un<br />

SC_Thread indépendant.<br />

Méthodes publiques :<br />

implémentation des accès<br />

sur les ports TAC (read,<br />

write, synchro)<br />

Workshop SoCKET – 14 et 15 octobre 2010<br />

8


Simulation du modèle PV<br />

Pour simuler le système au niveau PV, les autres composants<br />

ont été modélisés également (initiateurs OS-link, Processeur,<br />

TAC memory)<br />

Création d’un « Top » selon le modèle STM (Classe « mère »<br />

dont les attributs sont les composants du système)<br />

Puis compilation et exécution du modèle PV de l’IP TVM.<br />

Limitation : pas de modèle détaillé pour le Processeur.<br />

Les simulations se sont limitées aux aspects fonctionnels<br />

simples.<br />

Étape suivante, introduction du temps :<br />

Workshop SoCKET – 14 et 15 octobre 2010<br />

PV + T<br />

9


Ajout du temps dans le modèle PV<br />

Le modèle PV permet les choix d’architecture mais ne révèle<br />

pas les « goulots d’étranglements »<br />

Typiquement, les méthodes read, write sur les <strong>mémoire</strong>s<br />

SDRAM doivent prendre en compte de la complexité des<br />

accès à ce type de <strong>mémoire</strong>s.<br />

Ajout de temps d’exécutions<br />

forfaitaires (directement dans<br />

les méthodes dans notre cas).<br />

Workshop SoCKET – 14 et 15 octobre 2010<br />

10


Simulation du modèle PV+T<br />

Le raffinage nécessite une étude approfondie de chaque<br />

fonction pour en déduire un temps d’exécution précis.<br />

Cependant, il n’est pas obligatoire de raffiner toutes les<br />

fonctions du SoC pour le simuler.<br />

Cela permet de valider les choix au niveau des composants<br />

<strong>mémoire</strong>s par exemple (remplacement des SDRAM par des<br />

SRAM simplement en modifiant les temps d’accès !)<br />

Les simulations révèlent non seulement les goulots<br />

d’étranglements, mais également les asynchronismes.<br />

Aucun bug révélé dans l’IP TVM…<br />

Étape suivante, développement du modèle CABA :<br />

Workshop SoCKET – 14 et 15 octobre 2010<br />

11


<strong>Modélisation</strong> “Cycle Accurate Bit Accurate”<br />

Le modèle CABA est très différent du PV+T.<br />

Le temps forfaitaire est remplacé par une horloge.<br />

Il nécessite une réécriture complète des interfaces et de la<br />

structure interne des composants. Par exemple, pour<br />

l’interface SDRAM :<br />

tac_target_port toSDRAM1 ;<br />

//Signal permettant de différencier les écritures des lectures<br />

sc_out RW;<br />

//Signaux de contrôle propres aux SDRAMs (rafraîchissement …)<br />

sc_out RAS;<br />

sc_out CAS;<br />

//Signal permettant d’activer la SDRAM<br />

sc_out CS;<br />

//Bus d’adresse<br />

sc_out addr;<br />

//Bus de données<br />

sc_inout data;<br />

Il doit pourtant rester totalement « rétro-compatible ».<br />

Workshop SoCKET – 14 et 15 octobre 2010<br />

12


Raffinement du modèle PV+T en modèle CABA<br />

Les méthodes et types de données des modèles PV et de<br />

CABA sont compatibles au sein d’un même module grâce à<br />

une méthode interne. Les données peuvent transiter :<br />

D’un port sc_in vers un port de type tac_initiator_port.<br />

D’un port tac_target_port vers un sc_out.<br />

Ceci permet de dériver (=raffiner) le modèle CABA directement<br />

à partir du modèle PV+T.<br />

Chaque sous-fonction est raffinée individuellement et peut être<br />

re-simulée avec le modèle PV+T déjà validé, assurant ainsi la<br />

cohérence avec les modèles de plus fortes abstractions.<br />

Workshop SoCKET – 14 et 15 octobre 2010<br />

13


Simulation hétérogène PV(+T) avec CABA<br />

Il n’est pas possible de relier directement deux modèles de<br />

composants de niveaux différents.<br />

Il faut donc insérer un « traducteur » (appelé Transacteur)<br />

entre un composant CABA et un composant PV(+T).<br />

Workshop SoCKET – 14 et 15 octobre 2010<br />

14


Modèle CABA : utile ou pas ?<br />

L’effort de raffinement PV+T vers CABA est du même ordre<br />

que celui de codage du VHDL !<br />

Workshop SoCKET – 14 et 15 octobre 2010<br />

VHDL CABA<br />

entity exemple is<br />

port (<br />

entree : in std_logic;<br />

sortie : out std_logic);<br />

end entity;<br />

architecture test of exemple is<br />

signal bus : unsigned(31<br />

downto 0);<br />

begin<br />

#code<br />

end test;<br />

class exemple : public sc_module<br />

{<br />

public :<br />

sc_in entree;<br />

sc_out sortie;<br />

void méthode();<br />

private :<br />

sc_signal bus;<br />

};<br />

void exemple::méthode(){ /*code*/<br />

}<br />

15


Modèle CABA : utile ou pas ?<br />

Un tel effort de développement serait valable s’il existait des<br />

outils universels de transformation CABA vers VHDL. Or<br />

aujourd’hui les outils existants sont assez spécialisés par<br />

domaines.<br />

Sachant d’autre part que, même lorsque la représentativité visà-vis<br />

du matériel est théoriquement parfaite, tout ne se<br />

débugge pas au niveau CABA :<br />

Si par exemple des erreurs de type métastabilités sont<br />

révélées en simulation rétro-annoté, il faudra retoucher le<br />

VHDL et propager la modification dans le modèle CABA… à la<br />

main !<br />

Le risque de divergence est alors très fort.<br />

Workshop SoCKET – 14 et 15 octobre 2010<br />

16


Workshop SoCKET – 14 et 15 octobre 2010<br />

Conclusions<br />

Le raffinement de modèle PV vers PV+T permet de<br />

dimensionner rapidement son système et de valider les choix<br />

d’architectures.<br />

Le modèle CABA peut également s’obtenir par raffinage,<br />

néanmoins l’absence de passerelle universelle vers VHDL<br />

induit un fort risque de divergence.<br />

La simulation <strong>SystemC</strong> CABA reste plus rapide que le niveau<br />

RTL et plus précise que le PV(+T). Cependant l’investissement<br />

conséquent lié à ce développement ne se justifie que dans le<br />

cas d’un re-use très large (et encore…) ou d’un besoin de<br />

qualification des modèles en vue de simulations conjointes.<br />

Considérant les objectifs « projets scientifiques» du CNES,<br />

l’usage de ce niveau d’abstraction ne se justifie pas.<br />

17


Workshop SoCKET – 14 et 15 octobre 2010<br />

Questions ?<br />

18

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!