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