Relations TCAM dans l'architecture de commutation matérielle

10

Je connais (niveau élevé) le fonctionnement de la mémoire adressable de contenu ternaire, mais je reste confus quant à la façon dont TCAM est lié aux ASIC et quand ces composants peuvent également se combiner avec le CPU pour de meilleures performances de commutation ... (en particulier lorsque les fournisseurs commercialisent souvent l'utilisation de silicium marchand / personnalisé ou d'ASIC personnalisés pour les nouveaux produits et fonctionnalités, cela semble déroutant) .

Je connais Cisco IOS, par exemple, avec la possibilité de partitionner plus d'espace pour les performances TCAM pour des fonctionnalités telles que qos, acl et les recherches de route. Je comprends également que des fonctionnalités telles que NAT reposeront toujours sur le traitement du processeur, mais je suis particulièrement aux prises avec;

  1. TCAM fait-il partie de la même architecture matérielle, c'est-à-dire interne ou externe à l'ASIC lui-même?
  2. Les TCAM sont-ils évolutifs (par exemple, les fabricants peuvent-ils continuer à ajouter des TCAM à une plate-forme pour de meilleures performances et des fonctionnalités personnalisées) ou existe-t-il une limite basée sur des choses comme la consommation d'énergie?
  3. Les cycles TCAM et les ASIC fonctionnent-ils en parallèle avec le CPU pour des fonctionnalités comme NAT ou devrais-je seulement les considérer comme des choses indépendantes?
Mat
la source

Réponses:

14

TCAM est un type de mémoire, qui prend 10 à 12 transistors pour stocker un seul bit. À titre de comparaison, la RAM statique ( SRAM ) ne prend que 6 transistors pour stocker un seul bit, et la RAM dynamique ( DRAM ) prend un transistor et un condensateur. Tous ces différents types de mémoires peuvent être internes ou externes à un ASIC. L'une des raisons de placer toutes les mémoires sur une puce est qu'elles peuvent être exécutées à des fréquences d'horloge plus élevées que lorsqu'elles sont externes à une puce. Pourquoi choisir un type de mémoire plutôt qu'un autre? Cela a à voir avec les caractéristiques de la mémoire, la SRAM est accessible à chaque horloge, la DRAM nécessite un rafraîchissement périodique, donc pas accessible à chaque horloge et TCAM vous offre une capacité ternaire .

Les TCAM sont aussi évolutifs tant que vous avez de l'espace sur une puce pour les instancier, ou des broches sur le paquet pour vous connecter à des externes. Le problème avec TCAM est qu'ils prennent 2x espace de SRAM et 12x espace de DRAM . Il n'est pas toujours judicieux d'utiliser TCAM pour les mêmes opérations que vous pouvez les faire de manière algorithmique (hachages, * essais) avec d'autres types de mémoire. Cela revient à un compromis entre l'efficacité d'utilisation de l'algorithme et l'espace sur la puce sur lequel choisir. La consommation d'énergie de TCAM croît de façon linéaire par rapport à la taille. La majorité des grands TCAM (plus de 2 millions d'entrées) utilisent désormais des techniques algorithmiques afin de réaliser des économies d'énergie.

NAT / PAT est une fonctionnalité complexe, qui nécessite généralement un processeur ou un processeur réseau (NPU) pour gérer les corrections. Le flux de paquets général pour NAT est le premier paquet qui va à CPU / NPU, et une entrée de flux est installée dans la table de flux ou la table ACL avec les informations sur la façon de traduire les paquets suivants dans le flux. Il existe plusieurs formes différentes de NAT / PAT et autant de façons d'optimiser chacune dans une puce. Le NAT le plus simple étant de réécrire les adresses IP, et ne vous inquiétez pas si vous cassez les adresses intégrées dans la charge utile, pas de corrections.

Il existe une autre version de BRKARC-3466, présentée à CiscoLive 2013 à Melbourne, qui couvre certaines des idées de haut niveau qui se cachent derrière les recherches, qui est absente de celle d'Orlando 2013. Un bon ouvrage de référence dans ce domaine est Network Algorithmics: An Interdisciplinary Approach to Designing Fast Networked Devices par George Varghese.

user3697
la source
4

L'ASIC peut être considéré comme une sorte de puce. Il est normalement construit afin de faire quelque chose de matériel qui autrement serait fait est un logiciel. Cisco peut donc créer un ASIC pour tout ce qu'il veut. Selon le modèle du commutateur, il existe 1 ou plusieurs ASIC. TCAM est une conception de mémoire car il se trouve généralement sur les systèmes de châssis, il est implémenté comme l'un des nombreux Asics. TCAM est utilisé pour des fonctions de recherche particulières comme le routage (CEF) ou ACLS, donc si un ASIC n'a pas besoin de faire ce type de recherche, il fonctionne séparément de TCAM. D'un autre côté, les ASIC qui gèrent le marquage QoS fonctionnent main dans la main avec TCAM. La présentation ci-dessous sur cisco live discute certains des compromis de conception, et un bon endroit pour chercher à comprendre ce qui se passe dans la conception de commutateur

BRKARC-3466 - Explorant l'ingénierie derrière la fabrication d'un commutateur (2013 Orlando), il contient des listes d'asics et de nombreuses informations générales sur la conception des commutateurs

Fredpbaker
la source