13
1 Architectures reconfigurables (FPGA) et spécialisation d’instructions Daniel Etiemble [email protected] M1 Informatique 2011-2012 Architectures avancées D. Etiemble 2 Le spectre d’implémentation – ASIC Haute performance – dédié à l’application Non modifiable – Processeur • Programmable Non dédié à l’application – Matériel reconfigurable Bon compromis Microprocesseur Matériel Reconfigurable ASIC

Architectures reconfigurables (FPGA) et spécialisation d ...de/M1-FPGAetISA-1112.pdf · Architectures reconfigurables (FPGA) et spécialisation d’instructions Daniel Etiemble [email protected]

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Architectures reconfigurables (FPGA) et spécialisation d ...de/M1-FPGAetISA-1112.pdf · Architectures reconfigurables (FPGA) et spécialisation d’instructions Daniel Etiemble de@lri.fr

1

Architectures reconfigurables (FPGA)

et spécialisation d’instructions

Daniel Etiemble

[email protected]

M1 Informatique

2011-2012

Architectures avancées

D. Etiemble

2

Le spectre d’implémentation

– ASIC

• Haute performance – dédié à l’application

• Non modifiable

– Processeur

• Programmable

• Non dédié à l’application

– Matériel reconfigurable

• Bon compromis

Microprocesseur MatérielReconfigurable

ASIC

Page 2: Architectures reconfigurables (FPGA) et spécialisation d ...de/M1-FPGAetISA-1112.pdf · Architectures reconfigurables (FPGA) et spécialisation d’instructions Daniel Etiemble de@lri.fr

2

M1 Informatique

2011-2012

Architectures avancées

D. Etiemble

3

M1 Informatique

2011-2012

Architectures avancées

D. Etiemble

4

Les réseaux logiques programmables de

l’extérieur (FPGA)

• Objectif : circuit composé d’éléments « programmables »

capables de réaliser

– Les opérateurs combinatoires

– Les opérateurs séquentiels (bascules)

– Les automates (Moore – Mealy)

– RAM enfouie

– Multiplieurs

– Processeurs

– ….

• Programmation externe

– Des opérateurs élémentaires

– Des connexions entre opérateurs

Page 3: Architectures reconfigurables (FPGA) et spécialisation d ...de/M1-FPGAetISA-1112.pdf · Architectures reconfigurables (FPGA) et spécialisation d’instructions Daniel Etiemble de@lri.fr

3

M1 Informatique

2011-2012

Architectures avancées

D. Etiemble

5

Les FPGA

– Chaque élément logique produit une sortie

– Interconnexion programmable entre les éléments

– Pistes d’interconnexion regroupées en canaux

– Eléments logiques : mémoire SRAM.

LE LE

LE LE

LE LE LE LE

LE LE

LE LE

Elément logique Pistes

M1 Informatique

2011-2012

Architectures avancées

D. Etiemble

6

Elément logique

• LUT (Look-up table)

– SRAM à 4 ou 5 bits d’adresse

et 1 bit de sortie

– Implante toutes les tables de

vérité de 4 ou 5 entrées

• Avantage

– Programmable (SRAM)

– Toutes les fonctions sont

équivalentes

• XOR

• Bascule D

0111115

1111014

1110113

0110012

1101111

0101010

010019

110008

101117

001106

001015

101004

000113

100102

100011

000000

ContenuAdresseAdresse

Page 4: Architectures reconfigurables (FPGA) et spécialisation d ...de/M1-FPGAetISA-1112.pdf · Architectures reconfigurables (FPGA) et spécialisation d’instructions Daniel Etiemble de@lri.fr

4

M1 Informatique

2011-2012

Architectures avancées

D. Etiemble

7

LUT dans un bloc logique

M1 Informatique

2011-2012

Architectures avancées

D. Etiemble

8

Elément logique Cyclone (Altera)

Page 5: Architectures reconfigurables (FPGA) et spécialisation d ...de/M1-FPGAetISA-1112.pdf · Architectures reconfigurables (FPGA) et spécialisation d’instructions Daniel Etiemble de@lri.fr

5

M1 Informatique

2011-2012

Architectures avancées

D. Etiemble

9

Elément logique – Mode normal

M1 Informatique

2011-2012

Architectures avancées

D. Etiemble

10

Elément logique : retenues rapides

Page 6: Architectures reconfigurables (FPGA) et spécialisation d ...de/M1-FPGAetISA-1112.pdf · Architectures reconfigurables (FPGA) et spécialisation d’instructions Daniel Etiemble de@lri.fr

6

M1 Informatique

2011-2012

Architectures avancées

D. Etiemble

11

Les problèmes du monde physique

– Modélisation des délais.

– Amélioration des performances par buffers/segmentation• Connexions locales

• Connexions globales (horloges…)

– Dépend de la technologie

– Coût de la reconfigurabilité

S S

Coût des connexions

M1 Informatique

2011-2012

Architectures avancées

D. Etiemble

12

De la conception au FPGA

– CAO pour passer de la description textuelle du circuit à

l’implantation physique est au point

– CAO pour passer du programme C au circuit pas encore au

point (mais apparaissent des compilateurs C2H)

– Très difficile pour les concepteurs d’écrire des applications

haute performance

Programme C

C = A+B

.

Circuit

AB

+ C

Réseau

Page 7: Architectures reconfigurables (FPGA) et spécialisation d ...de/M1-FPGAetISA-1112.pdf · Architectures reconfigurables (FPGA) et spécialisation d’instructions Daniel Etiemble de@lri.fr

7

M1 Informatique

2011-2012

Architectures avancées

D. Etiemble

13

Compilation de circuit

• De la fonction aux

él éments logiques

physiques

• Placement physique des

LUT

• Routage : sélectionner

fils et commutateurs

pour les connexions

LUT

LUT

?

M1 Informatique

2011-2012

Architectures avancées

D. Etiemble

14

RAM enfouie

• Xilinx – Block SelectRAM

– 18Kb dual-port RAM arranged in columns

• Altera – TriMatrix Dual-Port RAM

– M512 – 512 x 1

– M4K – 4096 x 1

– M-RAM – 64K x 8

Page 8: Architectures reconfigurables (FPGA) et spécialisation d ...de/M1-FPGAetISA-1112.pdf · Architectures reconfigurables (FPGA) et spécialisation d’instructions Daniel Etiemble de@lri.fr

8

M1 Informatique

2011-2012

Architectures avancées

D. Etiemble

15

Multiplieurs enfouis

M1 Informatique

2011-2012

Architectures avancées

D. Etiemble

16

Processeur + FPGA : processeur intégré

• Processeur dans le FPGA

– Processeur en dur

• PowerPC (Xilinx)

– Coeur défini par logiciel (soft core)

• NIOS II (Altera)

• MicroBlaze (Xilinx)

Page 9: Architectures reconfigurables (FPGA) et spécialisation d ...de/M1-FPGAetISA-1112.pdf · Architectures reconfigurables (FPGA) et spécialisation d’instructions Daniel Etiemble de@lri.fr

9

M1 Informatique

2011-2012

Architectures avancées

D. Etiemble

17

Le Virtex II Pro de Xilinx

contient jusqu‘à 4 cœurs de

processeurs PowerPC

[© and source: Xilinx Inc.: Virtex-II Pro™ Platform FPGAs: Functional Description, Sept. 2002,

//www.xilinx.com]

Exemple ancien (Xilinx)

M1 Informatique

2011-2012

Architectures avancées

D. Etiemble

18

Altera NIOS II

• Processeur RISC

32 bits (soft core)

Page 10: Architectures reconfigurables (FPGA) et spécialisation d ...de/M1-FPGAetISA-1112.pdf · Architectures reconfigurables (FPGA) et spécialisation d’instructions Daniel Etiemble de@lri.fr

10

M1 Informatique

2011-2012

Architectures avancées

D. Etiemble

19

Altera NIOS

Le SOPC Builder permet de constituer « l’ordinateur » : CPU, MémoireHorloges et contrôleurs

M1 Informatique

2011-2012

Architectures avancées

D. Etiemble

20

Spécialisation d’instructions avec NIOS II

• La spécialisation d’instructions (customization) concerne

essentiellement les instructions combinatoires et multi-cycles

Page 11: Architectures reconfigurables (FPGA) et spécialisation d ...de/M1-FPGAetISA-1112.pdf · Architectures reconfigurables (FPGA) et spécialisation d’instructions Daniel Etiemble de@lri.fr

11

M1 Informatique

2011-2012

Architectures avancées

D. Etiemble

21

Altera NIOS

On configure le processeur (diviseurs ou non, tailledes caches…).On ajoute les instructions spécialisées spécifiéesen VHDL

M1 Informatique

2011-2012

Architectures avancées

D. Etiemble

22

Procédure pour ajouter des instructions spécialisées

• On spécifie les instructions spécialisées

– Code VHDL, compilation et test (sous Quartus)

• On ajoute les instructions spécialisées au système

global sous SOPC builder

• On génère le VHDL de l’ensemble

– Génération sous SOPC builder.

• On compile le VHDL global (Quartus)

• On charge le fichier résultat sur la carte contenant le

FPGA.

Page 12: Architectures reconfigurables (FPGA) et spécialisation d ...de/M1-FPGAetISA-1112.pdf · Architectures reconfigurables (FPGA) et spécialisation d’instructions Daniel Etiemble de@lri.fr

12

M1 Informatique

2011-2012

Architectures avancées

D. Etiemble

23

Utilisation des instructions spécialisées

• Programme C

– Ajouter un « define » pour chaque instruction spécialisée

// définition des instructions "ajoutées".

#define I1(a,b) __builtin_custom_inii(0,a,b)

#define I2(a,b) __builtin_custom_inii(1,a,b)

#define I3(a,b) __builtin_custom_inii(2,a,b)

#define I4(a) __builtin_custom_ini (3,a,b)

// etc... remplacer I1, I2, I3, I4... par les noms

des instructions à exécuter.

M1 Informatique

2011-2012

Architectures avancées

D. Etiemble

24

Exemple de code

• Avec une fonction spécialisée Max32 (a,b)

int a,b,c;if (a>b) c=a;

else c=b;

int a,b,c;c= Max32 (a,b); //instruction spécialisée

Page 13: Architectures reconfigurables (FPGA) et spécialisation d ...de/M1-FPGAetISA-1112.pdf · Architectures reconfigurables (FPGA) et spécialisation d’instructions Daniel Etiemble de@lri.fr

13

M1 Informatique

2011-2012

Architectures avancées

D. Etiemble

25

Le compilateur C2H

• Génère des accélérateurs

matériels

– Calcul

– Accès mémoire

• Concerne essentiellement

les fonctions C (boucle, nids

de boucles)

• Limité aux formats entiers

– Pas de flottants