Processeurs Réseau PAPR (1) UE de M2 février / mars 2007 Daniela Genius LIP6
Processeurs Réseau PAPR (1)
UE de M2 février / mars 2007
Daniela Genius
LIP6
Contenu du cours
Principes & Contraintes d’architecture des
processeurs réseau
Conception des Processeurs Réseau
Etude du Marché des PR
Exemples de processeurs réseau :
IBM Power NP, Intel IXP
Processeur Réseau LIP6
Contenu
Introduction
Motivation
Qu’est-ce qu’un Processeur Réseau?
Quelques exemples d’utilisation des PR
Principes d’architecture & fonctionnement
de différents composants
Concept de NIC (Network Card Interface)
Étude de systèmes purement logiciels,
matériels associés & leçons à tirer
Motivation
augmentation des débits binaires évolution continue des protocoles et des
applications coût élévé de conception de systèmes durée élevée de l’implémentation et du test risque d’erreurs de conception réutilisation de matériel dédié (ASIC) souvent
impossible
Un Processeur réseau est à la fois spécialisé et programmable
Bande passante (Moctets/s)
100,000
0.1
1
1000
1980 1990 19951985 2000
DS0
année64K
1.5M
DS110
100 DS344Mb
OC12
622Mb
x24
x28
x12
10Gbx1610,000
OC192x4
OC768 40Gb
2005
PR
DS= Digital Signal/signal numérique
OC = Optical Carrier/fibre optique
diapositive de E. Sicard
Evolution des Réseaux
Evolution de la téléphonie
Communications téléphoniques
1
24
672
810
2430
9720
19440
38880
155520
622080
Nom du Standard
-
T1
T3
OC-1
OC-3
OC-12
OC-24
OC-48
OC-192
OC-768
Bit rate Mbps
0.064
1.544
44.736
51.840
155.520
622.080
1,2488,160
2,488.320
9,953.280
39,813.120
Un PR gère plusieurs liens OC-XYZ à la fois
900MHzVoice
1G
900MHz1800MHz
Voice
2G
900-1800-1900MHzSmart Phone
Full web service
3G
900-1800MHzVoice
Tiny Internet
2.5G
12kb/s
170
1000
Data Rate
Evolution de la téléphonie mobile
station de base
Stationmobile
contrôleur station de base
12Kbit/s
5Mbit/s
100Mbit/s
réseau100 stations mobiles
10 stations de base
diapositive de E. Sicard
Evolution de la téléphonie mobile
Stationde base
Contrôleur station de base
1Mbit/s
500Mbit/s
50Gbit/s
réseauPortables 3G 500
stations mobiles
100 stations de base
NP
NPNP
diapositive de E. Sicard
Explosion de la demande de bande passante
Flexibilité/bas coût/basse consommation/Scalabilité…
Quels enjeux?
Enjeux industriels
Hauts débits Sécurité
Cryptographie, pare-feux, authentification Flexibilité
Généralité Adaptable aux nouveaux standards (ATM, UMTS, IPv6) Possibilité d’ajout de fonctionnalités => outils programmables
Scalabilité Basse consommation Faible coût
Les grandes questions Quels systèmes ?
Quels mécanismes physiques? Quels protocoles? Quelles applications?
Tout ce qui existe actuellement Tout ce qui est nouveau ou pas encore conçu ou
pas encore standardisé Quelles vitesses?
Tout ce qui existe actuellement Des vitesses beaucoup plus élévées
L’idée en bref Conçevoir de nouveaux composants programmables
Soutien spécial pour traitement des protocoles et des E/S affecter les tâches de commande au(x) processeur(s)
généraliste(s) processeurs dédiés au traitement des paquets et à la
consultation des tableaux Eventuellement fournir des composants dédiés
(coprocesseurs) aux tâches comme : calcul de checksum, cryptographie, etc.
Intégration maximale, idéalement sur une seule puce Faire en sorte que plusieurs composants matériels
puissent être combinés entre eux => Le résultat s’appelle un Processeur Réseau PR ou Network Processor NP
Coeur de Processeur
Coeur de Processeur
Coeur de Processeur
Grand nombre (8-16) de cœurs de processeur RISC pro-grammables, souvent avec plusieurs contextes matériels, souvent avec instructions spécialisées
Processeur généraliste, intégré pour le contrôle, la gestion et la communication avec le reste du monde
ProceseurGénéraliste
HWAssist
Tables de Routage
Mémoire Tampon (paquets)
MAC/FRAMEProcessor
vers Couche physique
MAC (Medium Access Controllers) intégrés, conçus pour différentes technologies (fibre optique, Ethernet)
Espace de stockage sur puce pour : trames, tables de routage, contrôleurs des tampons extérieurs
Qu’est-ce qu’un Processeur Réseau ?
Co-Processeurs avec fonctionnalités comme : consultation de table de routage, calcul de checksum
Mémoire externe
Micro Réseau Interne
Historique des PR (1) Septembre 1999 : C-Port (Motorola) annonce le
premier processeur réseau (PR) en production pour
fin 2001. But : fournir un matériel flexible pour traiter
trames ou paquets de manière distribuée à l’entrée
des commutateurs (switches) ou des routeurs à
hautes performances
Au cours de l’année 2000 : plusieurs grandes
entreprises commencent à développer des PR (Intel,
IBM, Lucent,…) pour répondre à la demande des
opérateurs réseaux
Historique des PR (2)début 2003, environ 20 entreprises offrent soit des PR,
soit annoncent leur developpement
fin 2003, le marché est plutôt dominé par les PME mais les grandes entreprises comblent leur retard…
Environ 200 projets utilisant des PR en cours chez les fournisseurs d’équipements réseaux : le processeur IBM est utilisé par Alcatel, CISCO, NORTEL,…
2004-2006 : nombreux rachats et liquidations de petites entreprises, des investissements des grandes dans la formation (Intel)
début 2007 ce développement continue
(*) OSI/ISO= open system interconnection from International Standard Organization
OSI/ISO(*) Title Description
Layer 7 Application Application protocols, user-interface
Layer 6 Presentation Application specific format transfer
Layer 5 Session Connection to process, billing
Layer 4 Transport Point to point flow control
Layer 3 Network Connection, link switching
Layer 2 Data link Signalling, block transfer
Layer 1 Physical Transmission, coding, moduation
PR
Où situer les PR ISO/OSI
Exemples : Systèmes Réseau
traitement de paquets
Utilisant des adresses
Bridge, switch, VLAN switch
Internet : hote et routeur
Pare-feu, VPN, NAT,Load Balancer, Set-Top Box
Traffic Monitor, Policer, Shaper, Packet analyzer
PR en amont (front-end stage) des commutateurs/routeurs à grande vitesse
Conventional SwitchNext Generation
(distributed) Switch
Doesn’t scale very well !!!! Scales very well
POS (packet Over SONET)/GbEthernet
Commutateur Ethernet
QoS : Files d’attentesNetwork Control System (Exemple TrafficDesigner de QosMos)
Scenario : utilisateurs indisciplinés Une liaison à 2 Mbits surchargée Une utilisation intensive du telnet (application métier) Des sauvegardes effectuées par FTP Des utilisateurs indisciplinés qui aiment le P2P
Les objectifs : Assurer un bon temps de réponse au telnet + ssh Assurer un bon débit au protocole FTP Limiter le P2P et le mail en cas de charge
Projet Lip6 RP-ASIM avec QosMos en 2004/2005stage N. Wilczak en ete 2004
Monitoring : Exemples
Traffic Designer : Technologie fondatrice
Classification Applicative
Analyse de la grammaire et du comportement des fluxReconnaître les applications sur des ports non
standards
Analyse des négociations dynamiques de portsPassive FTP, Oracle, SAP, VoIP, …
Analyse des données internes à chaque applicationfichiers attachés, URL, Noms des bases
Classification décorrélée du service
Audit, Billing, QoS, Firewall ….
Traffic Shaping
Accès WAN à 2Mbits 2 flux important identifiés :
FTP : Téléchargement hautement prioritaire
SMB: Système de fichier distribué – important mais moins prioritaire
Réservation de BW :
•¼ pour le SMB
•¾ pour le FTP
Anarchie = aucune maîtrise des flux
Exemple: interface utilisateur
Systèmes purement logiciels
Utilise des matériels classiques (PC)
Logiciels système
Tournant sur un système complet
Allouant la mémoire nécessaire
Commandant les entrées-sorties des
périphériques
Réalisant tout le traitement du protocole
Pourquoi étudier le traitement des protocoles
sur les matériels classiques ? (1) Dans le passé : Utilisé dans les premiers routeurs IP Beaucoup d’algorithmes développés ou optimisés pour le
matériel classique Dans le présent :
Utilisé dans les systèmes réseau à basse vitesse Plus facile à créer ou à modifier Moins coûteux que les matériels dédiés
Pourquoi étudier le traitement des protocoles
sur les matériels classiques ? (2) Dans le futur :
Les processeurs continuent d’accroître leur vitesse de
traitement
Il subsiste quelques matériels classiques dans tous les
systèmes
Si la puissance de traitement augmente moins vite que
la bande passante des réseaux :
=> Besoin de matériels dédiés
=> Les matériels classiques deviennent inutilisables
Matériels des ordinateurs classiques
Quatre parties importantes :
Le processeur
La mémoire
Les interfaces d’E/S
un ou plusieurs bus
Paradigme du bus (1)
Seulement 2 opérations de base : fetch & store Fetch
Place l’adresse d’un périph sur les lignes d’adresse Envoie la commande fetch sur les lignes de
commande Attend que le périph qui possède l’adresse réponde En cas de succès, extraction des valeurs présentes
sur les lignes de données
Paradigme du bus (2) Store
Place l’adresse du périphérique sur les lignes d’adresse
Place la valeur sur les lignes de données Envoie la commande store sur les lignes de
commande Attend que le périph qui possède l’adresse
réponde En cas d’échec, signalement de l’erreur
Les opérations sur d’autres bus sont semblables à celles vues ici
Bus (1) Généralités sur les bus :
Matériel quelconque connectable au bus
Périph. quelconque adressable par une adresse quelconque
L’espace d’adressage peut contenir des “trous”’
Bande passante limitée
Bus (2)
Utilisation d’un bus plus large :
Transfère plus de données par unité de temps
Plus coûteux
Demande plus d’espace physique
=> compromis : pour simuler un bus large, on utilise
du matériel qui multiplexe les transferts
E/S réseau sur matériels classiques
Compromis pour améliorer les performances
Network Interface Card (NIC) :
Lien entre le bus et le réseau
Fonctionne comme tous les autres périphs d’E/S
Prend en compte les aspects électriques/optiques du
réseau
Gère les détails de fonctionnement du bus
Communique via le bus avec le CPU ou les autres
périphériques
Accélérer les opérations d’E/S réseau Idée clé : faire migrer plus de fonctionnalités sur la carte
réseau
4 techniques utilisées avec les bus :
Reconnaissance & filtrage d’adresse dans la carte
Bufferisation des paquets dans la carte
Utilisation de DMA( Direct Memory Access)
Traitement des données & chaînage des buffers
Reconnaissance & filtrage d’adresses dans la NIC
La NIC accepte un ensemble donné d’adresses : L’adresse unicast de la station L’adresse de diffusion restreinte du réseau
(broadcast) Zéro ou plusieurs adresses multicast
Quand le paquet arrive, la NIC vérifie l’adresse destination : Elle accepte le paquet si l’adresse est dans la liste Elle ignore tous les autres
Stockage des paquets dans la NIC
La NIC dispose d’une mémoire locale :
=> tout paquet entrant est placé dans sa mémoire
=>la mémoire de l’ordinateur ou son bus peuvent
fonctionner plus lentement que le réseau le
demande
=> peut gérer de brèves rafales de paquets
Accès direct mémoire ou DMA
Le CPU : Alloue des tampons en mémoire pour les paquets Transmet l’adresse du buffer à la NIC Peut continuer les autres traitements en cours
La NIC : Accepte les paquets provenant du réseau Copie les paquets entrants via le bus dans les
buffers mémoire du CPU Informe le CPU que les paquets sont arrivés
Chaînage des buffers
Le CPU : Alloue plusieurs buffers Transmet une liste chaînée à la NIC
La NIC : Reçoit le paquet suivant L’écrit dans un ou plusieurs buffers
=> un buffer peut être plus petit qu’un paquet
Stockage des paquets dans la NIC
La NIC dispose d’une mémoire locale :
=> tout paquet entrant est placé dans la mémoire
=>la mémoire de l’ordinateur ou son bus peuvent
fonctionner plus lentement que le réseau le
demande
=> peut supporter de brèves rafales de paquets
Enchaînement des opérations
Le CPU : Alloue plusieurs buffers Construit une liste chaînée d’opérations Transmet la liste à la NIC
La NIC : Suit la liste et exécute les instructions Interrompt le CPU après chaque opération
=> plusieurs opérations sont exécutées sans intervention du CPU
Algorithmes et Structures de Données
Voir Chapitre 5 du livre : D. Comer
Network System Desin Using Network Processors
Contenu du cours (2)
Principes d’architecture des processeurs
réseau - critères & contraintes
Conception des Processeurs Réseau
Exemples de processeurs réseau :
IBM Power NP, Intel IXP
Processeur Réseau LIP6
Architecture de PR : les possibilités (1)
Étude des systèmes purement logiciels (par ex. Click) sur des matériels conventionnels Processeur Memoire Entrées/Sorties Bus
Cartes réseau optimisées afin de réduire la charge du CPU
Architecture de PR : les possibilités (2)Influence de la structure du système
Processeur réseau intégré sur puce : atouts
Réseau sur puce pour remplacer le bus Conception de systèmes utilisant des composants “off
the shelf” (SoClib) réutilisables
Utilisation de processeurs programmables (1)
CPU universels
Fonctionnalité de niveau plus élevéInterface d’administration
Commande du sytèmeFonctions globales de gestion
Protocoles de routage
Processeurs embarqués
Fonctionalités intermediairesProtocoles des couches hautes
Utilisation de processeurs programmables (2)
Processeurs embarqués (suite)
Commande des processeurs d’E/SGestion des exceptions et des erreurs
Traitement en entrée (ingress) de haut niveau (réassembage)
Traitement en sortie (egress ) de haut niveau (mise en forme du trafic)
Processeurs d’E/S
Traitement de Base des paquets Classification Forwarding
Opérations d’entrée (ingress) de bas niveauOpérations de sortie (egress) de bas niveau
ScalabilitéHiérarchie de processeurs
Rend les processeurs plus rapides
Utilise plus de threads concurrents
Augmente les types de processeurs
Augmente le nombre des processeurs
Hiérarchie de Memoires
Taille
Vitesse
Débit (bande passante)
Coût
Pyramide des processeurs
CPU
Proc. embarqués
Processeurs d’E/s
Hiérarchie des processeurs de plus bas niveau
•Les niveaux les plus bas ont besoin des plus forts accroissements de performances•Pour maximiser les performances, les tâches de traitement des paquets doivent être affectées aux processeurs de plus bas niveau capables d’exécuter la tâche
Performances des mémoires (1)
Temps de latence
– temps d’accès brut en lecture/écriture
– SRAM : 2 - 10 ns
– DRAM : 50 - 70 ns
– mémoires externes : un ordre de grandeur plus grand que
les mémoires internes
Performances des mémoires (2)
Temps de cycle mémoire : mesure le temps
entre 2 opérations successives (lecture/écriture)
– paramètre important dans les réseaux car
paquets grands
– temps de cycle en lecture : temps entre 2
lectures successives
– temps de cycle en écriture : temps entre 2
écritures successives
Pyramide des mémoires
La mémoire de plus grande taille est la moins chère
Bande passante : Mesure générale du débit mémoire L’accroissement du parallélisme du chemin de données permet plus de
débit Ne peut être étendu arbitrairement : (limité par le nombre de pattes, la taille
du bus adresses du processeur,...)
Reg
mem. internes
SRAMexternes
DRAM externes
Types de mémoires
Technologie Mémoire Abréviation CaractéristiquesDRAM synchrone SDRAM Synchrone avec le CPU
pour les plus faibles latencesQuad Data Rate SRAM QDR-SRAM Optimisé pour faibles latences
& accès multiplesZero Bus Turnaround ZBT-SRAM Optimisé pour les accèsSRAM aléatoiresFast Cycle RAM FCRAM Optimisé pour des transferts de blocs :
faibles temps de cycleDouble Data Rate DRAM DDR-DRAM Optimisé pour faibles latences Reduced Latency DRAM RLDRAM Faibles temps de cycle & besoins
en basse consommation
Mémoires caches
Technique universelle
Peut ne pas bien marcher dans les systèmes de
réseau
– Faible durée de présence des données
dans le cache
– grande taille de cache : soit avec beaucoup
d’entrées, soit offrant une grande
granularité d’accès
Content Addressable Memory (CAM 1)
Combinaison de plusieurs mécanismes
– mémoire à accès aléatoire
– recherche d’un contenu déterminé
Recherche rapide grâce au parallélisme du matériel
Content Addressable Memory (CAM 2)
Recherche ou ce qui est fourni à la mémoire :
– profil à rechercher
– contenu appelé clé
CAM renvoie :
– la première adresse dont le contenu vérifie la
clé ou
– toutes les adresses dont les contenus vérifient
la clé
Ternary CAM (T-CAM) Permet le masquage des entrées
Utile pour les processeurs réseau Mode de recherche :
À chaque cellule est associé un masque de bits Le matériel utilise le masque pour décider quels bits tester
Algorithme :
for each slot do {
if ( ( key & mask ) == ( slot & mask ) ) {
declare key matches slot;
} else {
declare key does not match slot;}
}
Utilisation d’une T-CAM pour classification
Extrait des valeurs des champs des en-têtes
Les valeurs trouvées sont constituées en chaînes
contiguës
On utilise une clé pour une recherche dans la T-CAM
Stockage de la classification dans une cellule
Mesures du débit (1)
Débit binaire (en bit/s)
– débit par interface
– débit cumulé
Débit de paquets (paquet/s)
– débit par interface : débit des données en entrée ou
en sortie
– débit cumulé : Somme des débits par interface - mesure
du débit total que le système peut gérer
Mesures du débit (2)
=> Débit cumulé crucial si le CPU gère le trafic
provenant de toutes les interfaces
=> Donne la limite du type et du nombre de
connexions réseau que le système peut
supporter
Débit de paquets ou débit binaire ?
Sources de l’overhead du CPU :
– traitement par bit
– traitement par paquet
L’interface matérielle gère la plus grande partie
du traitement par bit
=>Scalabilité : pour les tâches de traitement de
protocoles qui ont un coût fixe par paquet, le
nombre de paquets traités est plus important que
le débit cumulé
Exemples de débits de paquets
Technologie Débit du Débit de paquets Débit de paquets réseau petits paquets grands paquets (Gbps) (Kpaquet/s) (Kpaquet/s) 10Base-T 0.010 19.5 0.8100Base-T 0.100 195.3 8.2OC-3 0.156 303.8 12.8OC-12 0.622 1,214.8 51.21000Base-T 1.000 1,953.1 82.3OC-48 2.488 4,860.0 204.9OC-192 9.953 19,440.0 819.6OC-768 39.813 77,760.0 3,278.4
=> concept clé : le débit maximum de paquets se produit avec les paquets de taille minimale
Temps par paquet
Technologie Temps par paquet Temps par paquet petits paquets grands paquets (µs) (µs)10Base-T 51.20 1,214.40100Base-T 5.12 121.44OC-3 3.29 78.09OC-12 0.82 19.521000Base-T 0.51 12.14OC-48 0.21 4.88OC-192 0.05 1.22OC-768 0.01 0.31 Note : ces nombres s’entendent pour une seule connexion !
=> le logiciel fonctionnant sur un ordinateur généraliste donne une architecture insuffisante pour gérer des réseaux à hauts débits car le débit de paquets dépasse les capacités du CPU
Solutions possibles pour résoudrele goulet d’étranglement du CPU
Parallélisme à grain fin
Parallélisme à gros grain symétrique
Parallélisme à gros grain asymétrique
Coprocesseurs spécialisés
NIC avec traitement embarqué
Smart NIC avec piles embarqués
Commutation de cellules
Pipelines de données
Parallélisme à grain fin
Plusieurs processeurs
Parallélisme au niveau instructionl
Exemple :
– total de contrôle parallèle : ajouter les valeurs
de 8 cellules mémoire consécutives au même
moment
=> donne des avantages insignifiants dans le
traitement des paquets
Parallélisme symétrique à gros grain
Matériel = multiprocesseurs symétriques
– nombreux processeurs identiques
Architecture typique : chaque CPU travaille sur un paquet=> demande de la coordination
=> la coordination et l’accès aux données impliquent que N processeurs ne peuvent pas gérer N fois plus de paquets qu’un seul processeur
Parallélisme asymétrique à gros grain
Plusieurs processeurs Chaque processeur :
– est optimisé pour une tâche spécifique
– contient des instructions génériques de commande
=> problèmes de coordination & d’accès aux données identiques à ceux du cas symétrique
=> l’architecte doit choisir combien de copies de chaque type de processeur il intègre dans l’architecture
Coprocesseurs spécialisés
Matériel spécialisé
À rajouter au processeur classique pour accélérer le
traitement
Invoqué comme un sous-pregramme logiciel
Implémentation typique : boîtier ASIC
=> choisir les opérations qui donneront les plus grandes
accélérations de la vitesse de traitement
=> pour optimiser la vitesse de traitement, déplacer les
instructions qui prennent le plus de temps CPU du logiciel
vers le matériel (loi de Amdahl)
NIC & traitement embarqué
Optimisations de base :
– filtrage & reconnaissance d’adresses
– bufferisation embarquée
– DMA
– chaînage des buffers & des opérations
D’autres optimisations peuvent s’envisager
Smart NIC avec piles embarquées
Ajout de matériels à la NIC :
– boîtiers externes pour la couche 2
– ASIC pour la couche 3
Permet à chaque NIC de fonctionner de manière
autonome
– architecture réellement multiprocesseurs
– très fort accroissement de la puissance totale
de traitement
Smart NIC avec traitement embarqué
NIC gère les couches 2 & 3
CPU ne gère que les exceptions
Pipeline de données
Déplacement de chaque paquet à travers une série de
processeurs
Chaque processeur gère quelques tâches
=> convient bien au traitement de tâches de nombreux
protocoles
=> les processeurs individuels peuvent être rapides
Comment concevoir un PR ?
Dépend :
– du nombre d’opérations qe le PR peut réaliser
– du rôle du PR dans le système global
Pour comprendre les PR, examinons les problèmes à
résoudre :
– Protocoles en cours d’implémentation
– tâches de traitement sur les paquets
Fonctions de traitement sur les paquets Recherche d’adresse & renvoi des paquets (forwarding)
Protocole de démultiplexage de trames
Segmentation, fragmentation & réassemblage
Détection & correction d’erreurs
Mesure & régulation du trafic (traffic policing)
Classification de paquets
Mise en forme du trafic (traffic shaping)
Ordonnancement & mesures du temps
Mise en file d’attente
Sécurité : authentication & confidentialité
Questions
Notre liste de fonctions comprend-elle tous les traitements des protocoles ?
Quelles fonctions sont les plus importantes à optimiser ?
Comment les fonctions seront-elles prises en compte par les unités matérielles dans un réseau de systèmes typique ?
Quelles unités matérielles dans un réseau de systèmes peuvent être remplacées par des PR ?
Quel jeu d’instructions minimal est suffisamment général pour implémenter toutes les fonctions ?
Découpage en fonctionnalités
Partition des problèmes pour réduire la
complexité
Découpage de base en 2 parties
Fonctions à appliquer quand le paquet arrive
(ingress processing)
Fonctions à appliquer quand le paquet repart
(egress processing)
Ingress Processing
Sécurité & détection d’erreurs
Classification ou démultiplexage
Mesure & régulation du trafic
Recherche d’adresse & renvoi de paquet
Modification d’en-tête & transport splicing
Réassemblage ou fin de flux (e.g. ATM)
Forwarding, mise en file d’attente, ordonnancement
Éventuellement, refragmentation interne pour s’adapter
aux tailles des bancs mémoires embarqués
Egress Processing
Ajoute de Codes détection erreurs
Recherche d’adresse & renvoi de paquet
Segmentation ou fragmentation
Traffic Shaping
Timing, ordonnancement (scheduling)
Mise en file d’attente, bufferisation
Modification de l’en-tête
Traitements de securité à la sortie
Styles d’architecture, flux de paquets &vitesses d’horloges
Processeur embarqué plus coprocesseurs
définis (Intel IXP)
Processeur embarqué plus processeurs d’E/S
programmables (LIP6 PAPR)
Parallélisme (nombre de processeurs gérant la
charge)
Processeurs pipeline
Data flow
Décisions de Conception
Performance vs. Programmabilité
Parallèlisme vs. Pipeline?
Programmabilité : Expliciter le Parallèlisme?
Coût du developpement vs. performance (ASIC, FPGA…)
Compatibilité avec l‘existant vs. innovation architecturale
Généralité vs. Spécificité de la mémoire
Coprocesseurs : Lookaside ou Flow-through?
Bande passante vs. Vitesse du PR
E/S Performance vs. Nombre de pin
tour du marché (es PR) et études de cas approfondies