• Aucun résultat trouvé

Estimation du comportement temporel de la RAM et du contrôleur

Connaissant le protocole de communication avec le contrôleur, un ensemble de simulations a été réalisé pour caractériser le comportement temporel du composant de RAM et du contrôleur. Ceci afin de pouvoir dresser un tableau des durées des étapes du chronogramme 3.3

Deux ensembles de tests ont été réalisés :

– une série relative aux temps d’écriture avec un ou plusieurs ports utilisés ; – une seconde série concernant la lecture.

Dans les deux cas, les tests ont étés réalisés sur une même zone de la mémoire (nommée Row) puis sur des zones différentes. Ces deux cas de figures sont importants car le changement de Row implique une étape d’ouverture qui a pour conséquence une augmentation du nombre de cycles d’horloges nécessaires pour compléter la transmission.

Les tests ont étés réalisés avec les ports cadencés à 200 MHz, le contrôleur étant cadencé à 266 MHz (2× RAM_clock).

cmd_en 1 2 Prise en compte commande Chargement commande clock cmd_empty fifo_rd_count 0 transfert Preparation N−1

Figure3.3 – Chronogramme de l’évolution des signaux selon les étapes réalisées lors de la réception d’une commande de lecture.

3.2.1

Caractéristiques temporelles en écriture

3.2.1.1 Simulation avec un seul utilisateur

Les premières simulations ont eu pour but d’évaluer les caractéristiques temporelles des tran- sactions pour un seul port avec des bursts de 2, 32 et 64 mots en réalisant l’écriture à chaque fois au même endroit puis en changeant deRow entre deux transactions. Les résultats sont reportés dans le tableau 3.1. Dans ce tableau ainsi que dans les suivants, l’augmentation du temps induit par une phase de rafraîchissement n’est pas mentionnée. Elle correspond à un allongement de 20 ns du temps de préparation. changement deRow chargement commande prise en compte préparation transfert

2 mots 32 mots 64 mots

non 5ns 30ns 50ns 5ns 190ns 375ns

oui 5ns 30ns 70ns 5ns 190ns 375ns

Table3.1 – Caractéristiques temporelles de l’ensemble contrôleur et RAM pour des transferts de 2, 32 et 64 mots, sans ou avec changement de zone.

3.2.1.2 Simulation avec deux utilisateurs

La série suivante de simulations repose sur le même principe mais avec deux ports. Les com- mandes d’écritures sont envoyées en même temps pour les deux utilisateurs, générant ainsi un conflit. Les résultats sont reportés dans le tableau 3.2. Les caractéristiques temporelles pour le

port ayant la plus grande priorité (port 1) ne sont pas reportées car elles sont identiques au cas précédent. Pour la même raison, le temps de transfert des données n’est pas indiqué.

changement deRow chargement commande durée de prise en compte préparation

2 mots 32 mots 64 mots

non 5ns 55ns 55ns 240ns 425ns

oui 5ns 55ns 125ns 310ns 495ns

Table 3.2 – Caractéristiques temporelles pour le second port avec un accès de type conflit, pour des transferts de 2, 32 et 64 mots, sans ou avec changement de zone.

La durée de préparation pour le second port peut-être décomposé ainsi :

– durée de la préparation du port1 à laquelle on soustrait la différence des durées de prise en compte pour chacun des deux ports ;

– durée de transfert du port 1 ;

– latence de 25 ns entre la fin du transfert courant et le début du transfert du port suivant. Cette latence passe à 75ns sans doute dû au changement deRow. Cette durée est plus longue que dans le cas d’un seul port sans que l’on puisse l’expliquer précisément, le code du contrôleur n’étant pas disponible.

Un second point à remarquer : la durée de prise en compte de la commande de transfert par le contrôleur est identique pour le port 2 quelque soit laRow visée, ce qui est logique car le traitement lié au port2 est retardé tant que le traitement lié au port 1 n’est pas fini.

3.2.1.3 Cas de plus de deux utilisateurs

Dans le cas où il est fait usage de 3 ports ou plus, le comportement est similaire au précédent, et repose sur la durée du port ayant la priorité juste supérieure au port considéré.

3.2.2

Caractéristiques temporelles en lecture

3.2.2.1 Simulation avec un seul utilisateur

Le principe de cette série de simulations est globalement identique à celui présenté précédem- ment. La latence induite par le rafraichîssement est identique à celle en lecture.

changement deRow chargement commande durée de la prise en compte préparation transfert

2 mots 32 mots 64 mots

non 5ns 25ns 100ns 5ns 190ns 375ns

oui 5ns 25ns 140ns 5ns 190ns 375ns

Table 3.3 – Caractéristiques temporelles pour des transferts de 2, 32 et 64 mots, sans ou avec changement de zone, en mode lecture.

Cette série de tests (tableau 3.3) indique que le temps de transfert est indépendant du fait que la requête soit une écriture ou une lecture.

3.2.2.2 Cas de plus d’un utilisateur

Dans le cas d’un conflit, les caractéristiques temporelles reposent sur les mêmes principes que dans le cas de l’écriture.

3.2.3

Bilan de la qualification du comportement temporel de la RAM

Plusieurs points importants sont à retenir :

– le changement deRow a un impact important sur les temps d’accès, il faut donc tenter de concentrer au maximum les blocs dans une mêmeRow afin de minimiser ce changement ; – les accès en conflit sont complexes à gérer car il faut tenir compte de l’utilisation ou non

de Row différentes, et de la taille de chaque burst. Éviter les conflits ajoute également un paramètre supplémentaire car il est nécessaire de savoir quand la requête de transfert a été émise pour connaître le moment où le contrôleur passera au traitement suivant ;

– les cycles de rafraîchissement ont un impact sur les temps d’accès. Toutefois il n’y a pas de règle ou de loi pour dire a priori quand ils se produiront par rapport à la date d’arrivée de la première donnée ;

– le temps de transfert entre le contrôleur et la RAM, une fois la commande lancée, n’est pas dépendant du nombre de ports utilisés ;

L’ensemble de ces caractéristiques doit être pris en compte par CoGen de telle sorte qu’il soit possible à tout moment de connaître l’état de la RAM et le temps nécessaire avant qu’elle soit à nouveau disponible. C’est également grâce à ce mécanisme qu’il est possible d’ordonnancer efficacement les traitements, évitant la perte de données ou le blocage d’accès par un bloc dû à un conflit.

3.3

Ajout d’une couche d’abstraction entre le contrôleur et