Académique Documents
Professionnel Documents
Culture Documents
Systèmes reconfigurables
FPGA et sécurité
Introduction
Les microprocesseurs :
o Processeur à usage général : Pour minimiser l’impact du coût de conception et
de fabrication des circuits intégrés les plus complexes.
o DSP (Digital Signal Processor) : Le DSP est un microprocesseur optimisé,
pour exécuter des applications de traitement numériques du signal (filtrage,
extraction de signaux, etc) le plus rapidement possible.
Les mémoires: Une mémoire est un dispositif permettant de stocker puis de
restituer une information. On distingue deux classes de mémoires à semi-
conducteur (Les mémoires, Les mémoires mortes)
Les circuits ASIC constituent la troisième génération des circuits intégrés, apparu
au début des années 80.
l'ASIC présente une personnalisation de son fonctionnement, selon l'utilisation:
➠ une réduction du temps de développement
➠ une augmentation de la densité d'intégration et de la vitesse de
fonctionnement.
l’ASIC est un circuit intégré qui permet un câblage direct des applications
spécifiques sur le silicium.
Les circuits programmables PLD (Programmble Logic Device)
Les interconnexions:
Dans les FPGA à architecture symétrique on peut distinguer une composante
d’interconnexion locale et une composante d’interconnexion globale. La
composante locale a pour rôle d’interconnecter les éléments des blocs
logiques en fonction de la configuration et d’assurer la communication entre
les blocs logiques directement adjacents sans avoir recours à la composante
globale. Cette dernière assure la circulation des données à l’échelle du FPGA
entre les blocs logiques éloignés.
Au niveau local: on trouve donc des interconnexions configurables au sein
des blocs logiques dans et entre les cellules logiques élémentaires. Elles sont
réalisées au moyen de multiplexeurs, de buffers trois états et de portes
passantes (un simple NMOS ou bien une porte de transmission associant un
NMOS et un PMOS en parallèle ). On trouve également un groupe
d’interconnexions vers les blocs logiques directement adjacents selon le
même principe. Il s’agit d’interconnexions courtes présentant de faibles
retards si on les compare aux interconnexions à longue distance.
Les cellules d’entrée / sortie des FPGA sont des circuits propriétaires
multifonctions relativement complexes. Elles peuvent être configurées au
choix pour servir d’entrée ou de sortie primaire au circuit. Les données
peuvent être délivrées directement ou bien via des éléments de stockage
comme des D flip-flops ou de simples bascules D. De nombreuses
fonctionnalités sont offertes, on peut citer des entrées de mise à 1 ou à 0 pour
les bascules, des entrées de validation du signal d’horloge, etc. Ces cellules
comportent également des buffers trois états, des circuits de "pull-up" et de
"pull-down" et des circuits de protection contre les décharges électrostatiques.
La couche de configuration:
Nous avons fait le choix de restreindre notre étude à celle des FPGA à base de
SRAM. La couche de configuration de ces circuits regroupe les points mémoire
chargés de mémoriser leur configuration ainsi que les registres et la logique
dédiés à la programmation. Après avoir présenté l’architecture des points
mémoire, nous nous intéressons à leur ordonnancement et au principe de
configuration mis en œuvre.
Les points mémoires de configuration:
Les points mémoire retenus pour la configuration des
FPGA sont des SRAM que nous noterons CSRAM pour
Configuration Static Random Access Memory. La
configuration des FPGA est donc volatile, elle doit
être chargée à chaque mise sous tension.
Chaque CSRAM permet de stocker un unique bit de
configuration, un FPGA en comporte donc un grand
nombre. C’est une architecture à cinq transistors
présentée figure suivante qui répond à ce critère.
Une CSRAM est constituée de deux inverseurs rebouclés ( Inv1 et Inv2 ) et d’un
transistor d’accès ( Mt ) de type NMOS. Le transistor d’accès permet l’écriture
et éventuellement la relecture du bit de configuration. Dans cet exemple le bit
de configuration stocké commande un NMOS ( Mn ) appartenant à la couche
opérative.
Ordonnancement des
CSRAM et principe de la
configuration:
Physiquement, les CSRAM sont
réparties régulièrement parmi
les éléments de la couche
opérative. Mais il est plus
simple de décrire leur
ordonnancement sous la forme
d’un tableau bidimensionnel
présenté figure 9.
Les CSRAM d’une même colonne partagent la même ligne de données et les
CSRAM d’une même ligne partagent la même ligne d’adressage. Selon ce
principe une ligne complète de CSRAM peut être écrite ou lue lorsque les
transistors d’accès sont commandés en mode passant par la mise à un de leur
ligne d’adressage. Les bits de configuration sont alors lus ou écrits sur
l’ensemble des lignes de données.
La redondance temporelle désigne une technique qui nécessite une seule unité
effectuant une même opération deux fois de suite. Si une différence est
constatée entre les deux calculs successifs, cela signifie qu’une faute est
apparue lors d’un des calculs. Il s’agit d’une technique de réplication
temporelle, sans considération de la fonctionnalité du circuit.
Redondance d’information
Le code le plus connu est sans doute le code de parité : un bit de code est
ajouté au mot de telle façon que le nombre de bit à 1 dans le mot soit toujours
pair ou impair. Cet artifice permet de détecter toutes les transitions erronées
d’un nombre impair de bits, mais pas les autres erreurs.
Le grand avantage de ce code est sa simplicité d'implantation (un arbre de XOR ou
XNOR suffit) et son surcoût est modéré (un seul bit est ajouté par mot, avec le
codeur et le décodeur).
La somme de contrôle (Checksum)
Une autre forme de redondance d’information, très répandue dans le domaine des
réseaux, consiste à stocker une donnée supplémentaire appelée somme de contrôle ou
empreinte dans le bloc de données à protéger. Avant d’utiliser ces données protégées, le
mécanisme de détection recalcule son empreinte et compare la valeur obtenue à celle
stockée.
Correction d’erreurs
Redondance matérielle
Pour corriger les erreurs avec une architecture de redondance temporelle, il faut
répéter le calcul à trois intervalles de temps différents puis voter sur les trois
résultats obtenus. Cette méthode implique donc trois fois plus de cycles d’horloge
pour exécuter la même tâche, ce qui réduit l’utilisation de cette méthode aux
systèmes avec peu ou pas de contraintes temporelles.