>>> Michel Py a écrit :
>>> Est-ce que çà ne vaudrait pas le coup de gaspiller 32GO de DDR4 pour 
>>> réduire ces 35ns 
>>> à 1 accès mémoire ?
>> 1) d'abord ça va te coûter plus que 32Go : il faut stocker les infos
>> nécessaires au routage : interface de sortie, etc. Ca prend plusieurs octets
> Combien ? avec 32 GO, j'avais prévu au pif 8 octets : 4 pour
> l'adresse de la passerelle, 2 pour l'interface de sortie, et 2 je
> sais pas trop pourquoi.
Je ne sais pas précisément, mais déjà tu vas sans doutes vouloir gérer
de l'ECMP maintenir des statistiques...

>> 2) avec un espace pareil, tous tes lookups vont misser en cache, tu va
>> partir en DDR à chaque fois. Avec un trie, on bénéficie du fait que
>> l'adressage réseau est hiérarchique pour pouvoir mieux cacher les entrées
> C'est pas évident, car çà dépend du nombre de flux actifs. C'est à
> prévoir, mais combien de ns çà prend un accès en DDR ? d'après ce que
> je comprends, c'est environ 10ns a CAS19, ce qui ferait quand même
> gagner 25ns par lookup.

Je n'ai jamais vu d'accès DDR en moins de 100 cycles CPU... Et encore ça
c'est quand ta DDR n'est pas trop chargée. Ca peut rapidement monter à
plusieurs centaines de cycles dès que tu commences à avoir du trafic.
Un exemple mesuré sur les serveurs du lab CSIT :
https://docs.fd.io/csit/master/report/vpp_performance_tests/test_environment.html#id5
=> on voit que la latence de la DDR va de ~80ns (~200 cycles @2.5GHz) en
idle à ~280ns (~700 cycles @2.5GHz) quand elle est chargée.

ben


---------------------------
Liste de diffusion du FRnOG
http://www.frnog.org/

Répondre à