• Aucun résultat trouvé

Générateur – adaptateur – opérateur – consommateur

4 Vérification des propriétés d’insensibilité aux délais et temporisation

4.3 Générateur – adaptateur – opérateur – consommateur

Sur le diagramme de la Figure 45, on schématise le comportement d’un circuit générateur-adaptateur-opérateur-consommateur en mettant en évidence les notifications d’occurrences d’événements et les synchronisations entre les différents processus. Chaque processus est encapsulé dans une boucle sans fin ; ce dont on fait abstraction sur le diagramme. Les canaux de communication point à point unidirectionnels entre les modules sont temporisés par les variables de délais dg_req, dg_acq, da_req, do_req.

Figure 45 : Modèle du circuit générateur-adaptateur-opérateur-consommateur à temporisation variable

4.3.2 Comportement du modèle non temporisé On pose :

• dg_req = délai_nul • dg_acq = délai_nul

• da_req = délai_nul • do_req = délai_nul

Cela correspond à un modèle non temporisé. L’exécution de l’algorithme de simulation nous conduit à l’échéanchier de la Figure 46.

Figure 46 : Echéancier de la simulation du circuit générateur-adaptateur-opérateur-consommateur non temporisé

La première évaluation concerne la phase d’initialisation. La 5ième évaluation est identique à la 3ième phase d’évaluation. On obtient alors un point fixe. La simulation débute par une production d’occurrence d’événement. Tout au long de la simulation, on n’obtient jamais de situation où soit un processus produit deux requêtes consécutives sur le même canal.

La propriété de persistance est respectée pour ce circuit non temporisé. 4.3.3 Comportement du modèle temporisé

Lorsque l’on introduit des délais dans le modèle, on change de modèle de temps. On passe d’un modèle de temps ordonné à un modèle de temps métré. Ce faisant, on change la nature de la notion d’atomicité. Qu’advient-il de la propriété de persistance ? Les configurations de délais respectent-elles toutes la propriété de persistance ?

Clairement non, puisqu’étant ouvert, le circuit ne peut être insensible aux délais. On distingue alors trois types de configuration de délais vis-à-vis de la propriété de persistance en présence du tirage aléatoire des processus : les configurations incorrectes, les configurations correctes et les configurations métastables.

4.3.3.1 Cas n°1 : Configurations incorrectes

On temporise le générateur de manière à produire des stimuli plus vite que le reste du circuit ne peut les consommer. On pose :

• dg_req = délai_nul • dg_acq = 9 ps • da_req = 10 ps • do_req = 10 ps

Figure 47 : Echéancier de la simulation du circuit générateur-adaptateur-opérateur-consommateur temporisé : configuration incorrecte

A la 2nde évaluation, l’adaptateur produit une requête sur le canal reliant l’adaptateur et l’opérateur. A la 4ième évaluation, l’adaptateur produit une requête sur le même canal. Entre temps, il n’y a pas eu de consommation de la requête de la part de l’opérateur.

4.3.3.2 Cas n°2 : Configurations correctes

On temporise le générateur de manière à produire des stimuli moins vite que le reste du circuit ne peut les consommer. On pose :

• dg_req = délai_nul • dg_acq = 11 ps • da_req = 10 ps • do_req = 10 ps

Figure 48 : Echéancier de la simulation du circuit générateur-adaptateur-opérateur-consommateur temporisé : configuration correcte

La 8ième évaluation est identique à la 4ième évaluation. On obtient alors un point fixe. La simulation débute par la production d’une requête. Tout au long de la simulation, on n’obtient jamais de situation où un processus produit deux requêtes consécutives sur le même canal.

La propriété de persistance est respectée pour cette configuration de délais du circuit. 4.3.3.3 Cas n°3 : Configuration métastable

On temporise le générateur de manière à produire des stimuli à la même vitesse que le reste du circuit peut les consommer. On pose :

• dg_req = délai_nul • dg_acq = 10 ps • da_req = 10 ps • do_req = 10 ps

Figure 49 : Echéancier de la simulation du circuit générateur-adaptateur-opérateur-consommateur temporisé : configuration métastable

Au niveau de la 3ième évaluation, l’opérateur produit une requête, verrouillant ainsi le canal de communication point à point unidirectionnel entre l’opérateur et le consommateur.

Au niveau de la 5ième évaluation, la production d’une requête par l’opérateur et sa consommation par le consommateur sont activées en parallèle de part et d’autre du canal qui les relie.

Si le consommateur est exécuté en premier, il libère le canal de communication. L’opérateur peut alors verrouiller le canal.

Si l’opérateur est exécuté en premier, le canal ayant déjà été vérouillé à la 3ième évaluation, une erreur de persistance est détectée.

Le circuit se comporte de façon métastable. Le respect de la propriété de persistance dépend de l’ordre d’exécution des processus. L’ordre d’exécution des processus étant aléatoire, la violation de la propriété de persistance est détectée au bout d’un certain nombre de phases d’évaluation, ce nombre étant d’autant plus faible que le tirage aléatoire est de « bonne qualité ».

4.4 Résumé

La propriété de persistance repose sur la notion d’atomicité d’une action. Elle est donc fortement liée au modèle de temps utilisé pour simuler le système. Dans cette étude, nous avons mis en évidence que le passage du mode non temporisé au mode temporisé était délicat dans le cas d’un exemple de circuit sensible aux délais. On a identifié 4 types de comportements sur cet exemple en construisant l’échéancier de la simulation à partir d’un algorithme simplifié d’ordonnancement du noyau de simulation de SystemC v2.0.1.

En l’absence de temporisation, le comportement est systématiquement correct. En présence de temporisation, soit le comportement est systématiquement incorrect, soit le comportement est systématiquement correct, soit le comportement est métastable.

A chaque fois que le comportement est incorrect, on est capable de détecter la violation de la propriété de persistance grâce au mécanisme de verrou implanté dans le canal de communication point à point unidirectionnel.

Cela nous permet de conclure que l’instrumentation de la vérification de la propriété de persistance est indépendante du type de temporisation du modèle.

On arrive à la même conclusion pour les motifs de vérification des propriétés de sûreté et de vivacité, qui s’inscrivent dans l’instant et non dans la durée.

De plus, ces 3 motifs de vérification sont largement indépendants les uns des autres puisque la vérification de la persistance concerne les canaux de communication, la vérification de la sûreté concerne les modules et la vérification de la vivacité concerne les points de synchronisation des processus et les deux derniers pas de simulation.

Ainsi instrumenté, notre modèle respecte la sémantique des systèmes à événements discrets asynchrones. Il respecte le flot de conception descendant et notamment la phase de temporisation.