Examen PAPR (2) - SoC

Create interactive lessons using any digital content including wikis with our free sister product TES Teach. Get it on the web or iPad! guest · Join | Help | Sign In.


un extrait du document



flots traversant un routeur sont collectées. Dans cette question nous étudions ces mesures. Le terme flot signifie un ensemble de paquets partageant certaines caractéristiques. En particulier un flot TCP est défini comme l’ensemble des paquets ayant une même adresse source (resp. adresse destination), ainsi que le même port source (resp. port destination). Nous souhaitons mesurer les informations suivantes sur les flots TCP : le nombre de flot à chaque instant, le volume de chaque flot, la durée de chaque flot.
Décrivez une structure de données intégrant toute les informations à stocker sur chaque flot afin de pouvoir extraire les mesures nécessaires. Donnez une évaluation de la mémoire nécessaire pour stocker les informations de N flots
Proposez une solution permettant de minimiser le nombre de comparaison à effectuer à la réception de chaque paquet.
La mesure ajoute une charge supplémentaire au processeur du routeur. Afin de réduire cette charge, la mesure est effectuée sur un échantillon de paquet. La procédure généralement suivie consiste à effectuer la mesure sur un paquet tout les N paquets successif. Proposez comme obtenir les trois métriques nécessaire sur des paquets échantillonnés. Quelles sont les métriques les plus fiables ? Pourquoi ?

2ème partie : Architecture des Processeurs Réseau

Question 1 (5 points): (Rappel du Cours. Répondre en quelques phrases)

a) Enumérer au moins deux applications qui ajoutent des données au début d’un paquet et expliquer les conséquences pour la gestion de la mémoire sur puce.
b) Comparer l’architecture système et le modèle de programmation du Power NP avec ceux d’une NCPU proposé par ASIM. Expliquer notamment le rôle de l’interconnect.
c) Identifier les principaux goulets d’étranglement d’un système de traitement paquet purement logiciel (c’est à dire sur une architecture hôte standard).
d) Quel est le principal support matériel d’une implémentation multi-thread?
e) Quelles sont les fonctions essentielles de traitement de paquet. Quels sont les supports fournis au niveau micro-architecture par les processeurs de la gamme IBM PowerNP ?

Question 2 (5 points) : (Gestion des données sur une plate-forme processeur réseau à mémoire partagée)

Une application de classification stocke de fur et à mesure des informations sur des différent flux dans un tableau (une entrée par flux). Chaque information est codée sur 8 bit. Il y a 4 informations différentes à récupérer, chacune demande un accès du tableau en lecture (pour le lookup) puis en écriture (pour la mettre à jour).Un banc mémoire a une taille de 1Kb.
L’information sur combien des flux peut-on accueillir sur un banc mémoire ?
Le maximum des flux à gérer à un instant donné est de 500. Combien faut-il de bancs mémoire pour accueillir de tableau?
Quels sont les conséquences de la distribution du tableau sur plusieurs bancs mémoire sur le fonctionnement du système entier? Nommez les principaux sources de contention.
Comment pourrait-on améliorer la performance d’une consultation du tableau ?
Du quel matériel specialisé profiterait la même application si elle serait traitée par le PowerNP ?

Question 3 (3 points): (Rappel desTME 1+2)

a) Expliquer brièvement le mécanisme de Push et Pull de Click.
b) Expliquer que fait la configuration Click suivante :

InfiniteSource( \, 1, 5)
-> c::Classifier(12/86dd 20/3aff 54/87,
12/86dd 20/3aff 54/88,
12/86dd);


c[0] -> Print(c[0], 200) -> Discard;
c[2] -> Print(c[2], 200) -> Strip(14)
-> CheckIP6Header(3ffe:1ce1:2:0:200::ffff 3ffe:1ce1:2::ffff)
-> GetIP6Address(24)
-> rt :: LookupIP6Route(
3ffe:1ce1:2::2/128 ::0 0,
3ffe:1ce1:2:0:200::1/128 ::0 0,
3ffe:1ce1:2::/80 ::0 1,
3ffe:1ce1:2:0:200::/80 ::0 2,
0::ffff:0:0/96 ::0 3,
::/0 ::c0a8:1 4);

nds :: IP6NDSolicitor(3ffe:1ce1:2::1, 00:e0:29:05:e5:6f);

rt[1] -> Print(route1-ok, 200)
-> [0]nds;

c[1] -> Print(c[1], 200) ->[1]nds;
nds[0] -> Print(after-IP6NDSolicitor-output0, 200)
-> Discard;
rt[0] -> Print(route0-ok, 200) -> Discard;
rt[2] -> Print(route2-ok, 200) -> Discard;
rt[3] -> Print(route3-ok, 200) -> Discard;
rt[4] -> Print(route4-ok, 200) -> Discard;

La sortie sur écran affiche les lignes suivantes :

//Print c[2] | 134 : 0000c043 71ef0090 27e0231f 86dd6000 00000050 11403ffe 1ce10002 00000200 c0fffe43 71ef3ffe 1ce10002 00000000 00000000 00010014 d6415544 50207061 636b6574 210a0400 00000100 00000100 00000000 00000080 04080080 04085353 00005353 00000500 00000010 00000100 00005453 000054e3 040854e3 0408d801 00001369 1369

//Print route1-ok | 120 : 60000000 00501140 3ffe1ce1 00020000 0200c0ff fe4371ef 3ffe1ce1 00020000 00000000 00000001 0014d641 55445020 7061636b 6574210a 04000000 01000000 01000000 00000000 00800408 00800408 53530000 53530000 05000000 00100000 01000000 54530000 54e30408 54e30408 d8010000 13691369

//Print after-output0 | 86 : 3333ff00 000100e0 2905e56f 86dd6000 00000020 3aff3ffe 1ce10002 00000000 00000000 0001ff02 00000000 00000000 0001ff00 00018700 b0840000 00003ffe 1ce10002 00000000 00000000 00010101 00e02905 e56f

Question 4 (7 points): (Rappel du cours et des TME3+4)

Pourquoi a-t-on mis un wrapper MWMR entre l’interconnect et la Input Engine/la Output Engine?
Est-il possible que le même descripteur revient dans la même banc mémoire après traitement ? Dans la même FifoMWMR ? Justifier la réponse.
Combien de transactions VCI faut-il pour la reconstitution d’un paquet de taille 280 par la OutputEngine ?
A quoi sert le champ TT (taille totale) du descripteur ? Peut-il être écarté pour récupérer quelques bits ?
Dans l’application generic.c, à quoi servent les commandes pthread_mutex_lock(&mut) ?

Bon courage !