Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
S. Reda EN2911X FALL’07
Avantaje:•Performante foartebune si eficientaDezavantaje:•Fara flexibilitate(nu poate fimodificat dupaprocesul de fabricatie)• cost mare
Hardware(Application Specific Integrated Circuits)
Software-programmedprocessors
Avantaje:•Software-ul estefoarte flexibil la schimbariDezavantaje:•Performantele suntdependente de clock •Set fix de instructiuni dat de hardware
Reconfigurablecomputing
Avantaje:•Este la mijloc intresolutii hardware sisoftware •Performante multmai bune decat in software•Mult mai flexibildecat o solutiehardware
Metode de executie algoritmi
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Dezvoltarea circuitelor integrate – Tipuri de proiectare
Stil tipic de proiectare ASIC
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Timpii de dezvoltare circuite integrate = timpul de proiectare design + timpul de fabricare
– Design particularizat (full-custom design)• proces indelungat de dezvoltare, cost mare (toate fazele suntrealizate in procesul de dezvoltare al circuitului integrat) • performante foarte bune in ceea ce priveste puterea consumata, aria ocupata, etc.– Design “semicustom”• se reduc timpii de dezvoltare si costul• se folosesc elemente predefinite pentru a reduce timpul de proiectare(cell-based designs)• Pentru MPGAs (Mask Programmable Gate Array) se reduce timpulde fabricare prin folosirea elementelor prefabricate •Circuitele FPGA sunt complet prefabricate, testate si incapsulate(off-the-shelve devices) “disponibile de-a gata”
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Caracteristicile stilurilor de proiectare
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Ce este un ASIC (Application-Specific IC )
– este opusul unui circuit integrat de uz general- functia unui ASIC este definita in timpul procesului de fabricare- pentru un circuit integrat de uz general, functia acestuia estedefinita dupa procesul de fabricare.
Un circuit FPGA este un circuit integrat de uz general
ASIC-urile sunt proiectate in mod tipic folosind proiectareabazata pe celule (cell-based) si MPGA (uneori full-custom)
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Caracteristica Sistemelor de Calcul Reconfigurabile
• Paralelism particularizat pentru a corespunde obiectivelor design-ului
• Logica specializata pentru a indeplini anumite functii specifice
• Functionalitati care se pot modificain functie de cerintele problemei
Paralelism, specializare, adaptare la nivel hardware
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Folosirea circuitelor reconfigurabile1. Productie mica/medie de IC2. Prototipizare si emulare logica3. Accelerare algoritmi de sortare, programare dinamica, cu aplicatii in
domenii cum ar fi: procesare semnale si imagini, criptografie, bioinformatica, recunoastere forme etc.i. Unitati functionale reconfigurabile folosind un procesor
(instructiuni specifice)ii. Unitati reconfigurabile folosite ca si coprocesoriii. Unitati reconfigurabile accesate prin I/O externe sau retele
[Compton’02]
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Calculul temporal vs. calculul spatial
Executia temporala(software)
Executia spatiala(reconfigurable computing)
Cheia de a acelera procesele de calcul este abilitatea de a extrage paralelismul (concurenta) din algoritmi. Acest lucru se poate realiza folosind sistemele reconfigurabile. Un astfel de device este si FPGA-ul.
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Informatia poate fi stocata in SRAM. 4-6input Look-Up Table (LUT) este o marime tipica
Exemplu de programare functie intr-un LUT (Look-up Table)
O celulă logică este o tabelă de căutare (LUT) care poate avea un număr diferit de intrări înfuncţie de tipul circuitului. Astfel, pentru Virtex 6 de la Xilinx, LUT are 6 intrări, Virtex 4 are 4 intrări. Mai multe LUT formează un CLB (Configurable Logic Block) – bloc logic configurabil. Aceasta este o denumire care la un alt producător de circuite este diferită. CLB este denumireafolosită de firma Xilinx. Altera foloseste penrtu circuitele sale (ex familia de circuite Stratix) denumirea de module logice adaptive - adaptive logic modules (ALMs). Este de asemenea posibilsă se folosească mux-uri pentru a implementa logica.
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
4-inputLUT
flip-flop
clock
muxy
qe
abcd
Switchbox
Logica programabila
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
În circuitele FPGA se folosescsi alte unităţi, cum ar fi: RAM, ALU, multiplicatoare, sumatoare.Unităţile logice sunt conectatefolosind o interconectarereconfigurabilă.
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Configurare FPGA
[Maxfield’04]
Programmable logic element
• FPGA sunt alcatuite dintr-o arie de blocuri logice programabile(programmable logic blocks) iar functionalitatea este determinata prinbitii de configurare programabili
• Blocurile logice sunt conectate de un set de resurse de rutare(routing resources) care sunt de asemenea programabile. Logica poate fi mapata in resursele reconfigurabile (reconfigurable
fabric)
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Fluxul de proiectare
Fluxul de proiectare SPLD
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Fluxul de proiectare FPGA (similar pentru CPLD)
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016 [Maxfield’04]
FPGA-urile pot fi dinamic reprogramate inainte de a rula logica(runtime) sau in timpul rularii logicii (virtual hardware)
• full
• partial
Fisierul de configurare
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Implementarea unui design in FPGAs, implica descompunerea design-ului simaparea in Blocul Logic (LB)
Maparea in LUT dintr-un CLB
RTL
.
.C = A+B
.
Circuit
AB
+ C
Array
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
1) Tehnologia de mapare (mapping)
LUT
Compilarea circuitului
2) Plasare (Placement)
LUT
?Asignarea unui LUT logic unei locatii fizice.
3) Rutarea (Routing)
Selectare segmente de fire sicomutatoare (switch) pentruinterconexiuni.
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Resursele de rutare programabile
• Fire care asigura legarea unui nod computational de iesire cu intrarea altui nod computational
• De ce sunt importante resursele de interconectare? - Resursele de rutare ocupa o arie foarte mare.– Intarzierile date de fire cresc in functie de lungime ->
se recomanda evitarea firelor de legatura lungi atuncicand acestea nu sunt necesare
– Miniaturizarea tehnologica reduce marimeacircuitului, dar conduce la cresterea intarzierilor in fire.
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Arhitecturi FPGA
Arhitectura unui circuit FPGA este descrisa de– arhitectura blocurilor logice (logic block) data de structurablocului logic: porti, multiplexoare, LUT-uri- arhitectura resurselor de rutare – routing architecture data de
structura si dimensiunile interconexiunilor. - stil “insula”,- bazat pe linii, - ierarhic
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Fiecare producator de circuite FPGA
– are propriul stil in a defini blocul logic, arhitectura de rutare si uneltele de dezvoltare (CAD) pentru mapare, plasare si rutare
– circuitele actuale FPGA au in acest sens
- Structura blocului logic este bazata pe LUT - arhitectura de rutare este de tip insula sau ierarhica
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Definitii rutare generala
• Un segment de fir este un fir care nu este traversat de un switch programabil
• O cale (track) – este o secventa de unul sau mai multesegmente de fir intr-o linie. Segmentele pot fi conectate prinintermediul comutatoarelor la capete.
• Un canal de rutare (routing channel) este un grup de caiparalele. Latimea canalului width este data de numarul cailordin canal.
channel
segment
track
CLB CLB CLB CLB
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
– Fiecare logic element are la iesire un bit de date.– Intre elemente exista interconexiuni programabile– Caile de interconectare (tracks) sunt grupate in canale
LE LE
LE LE
LE LE LE LE
LE LE
LE LE
Element Logic Cai de rutare
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Conexiunea blocurilor: se formeaza unde intrarea CLB sau pinii de iesire se conecteaza la canalele de rutare.
Ar fi simplu daca numai blocurile logice din aceeasi coloana saurand ar trebui sa comunice. Realitatea este insa alta!
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Switch care conecteaza fire bidirectionale segment-segment
channel
segment
track
CLB CLB CLB CLB
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Switch blocks (blocuri de switch-uri): se formeaza la intersectia canalelorverticale si orizontale
Switchbox
Marimea “switch box” creste ca o functie patratica a numarului de fire de intrare.
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Detalii switch bidirectional
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Rutarea segmentata si ierarhicasegmented routing hierarchical routing
•Fire scurte pentru trafic local•Fire scurte care se pot conectafolosind matricile de switch-urirealizand astfel fire lungi
•Contin si fire lungi pentru a permite o comunicare eficientafara a mai trece prin switch-uri
•Rutare intr-un “group” de blocuri logice la un nivel local
•Fire lungi ierarhice care conecteaza diferite grupuri
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Need a mechanism to move results of computation around.Communication: Interconnect & Routing
Nearest Neighbor:
Segmented:
Hierarchical:
CLB
CLB
CLB
CLB
CLB
CLB
CLB CLB CLB CLB CLB
CLB CLB CLB CLB CLB
CLB CLB CLB CLB CLB
CLB CLB CLB CLB CLB
CLB CLB CLB CLB CLB
CLB CLB CLB CLB CLB
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Un model FPGA -> (o abstractizare a modelului comercial si o generalizare)
Modelul “Toronto” – utilizat in cercetare in ceea ce privestearhitectura blocurilor logice si arhitectura resurselor de rutare
Aria modelului este una simetrica (exista si versiuni pentru ariiierarhice)
Blocul logic contine un LUT, un registru si un MUX
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Exemplu pentru modelulToronto:
Arhitectura de tip insula a resurselor de rutare; blocuri logice, blocuri de conectare, blocuri de comutatoare
Parametri: W, Fc, FsW numarul de fire intr-un canalFc numarul de fire care se conecteaza la un bloc logic. Fs numarul de fire pe care o matrice de comutatoarele poate conecta
Exemplu: W = 4, Fc = 2, Fs = 3
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Xilinx XC4000 Routing
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Tipuri de Reconfigurare
• Static – aplicatia nu ruleaza in momentul configurarii• Partial static (=reconfigurare partiala) diferita parti ale aplicatiei suntexecutate in fragmente temporale pe acelasi suport configurat
•Dinamic – aplicatia se poate modifica ca raspuns la schimbarileexterioare (in timpul executiei)
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
• Circuitele reconfigurabile pot contine elemente care nu sunt reconfigurabilesi care sunt interfata cu blocurile logice folosind interconexiunile programabileExample:
–Memorii incapsulate (Embedded memory)
–Inmultitoare, sumatoare, etc.
–Procesoare incapsulate
•Este constisitor a se implementa memoriifolosind blocuri logice configurabile → se adauga blocuri RAM
•Pozitia si marimea variaza in functie de device.
•Fiecare bloc poate fi folosit independent saucombinat pentru a forma memorii RAM maimari
•Pot fi single sau dual-port RAMs
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Multiplicatoare si sumatoare incapsulate
•Multiplicatoarele sunt inerent maiincete daca sunt implementate princonectarea unui numar mare de blocuri logice programabile -> solutia este de a adauga blocuri de multiplicatoare in hard
•Tipic, acestea sunt localizate in apropierea blocurilor de memorieRAM incapsulata
•Unele FPGA folosesc blocuriMultiply-And-Accumulate (MAC) (utilizate in aplicatiile DSP)
MAC = multiply-accumulate = realizeaza produsul a doua numere si adauga produsul la un acumulator.
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Programarea FPGA
Configurareamemoriei care determinaprogramabilitateablocului logic si a interconexiunilor
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Tehnologia de programare a comutatoarelor
Anti-fuse
Flash
SRAM
Switch-ul implicit esteOFF; cand esteprogramat este ON.Avantaje:•Intarzieri neglijabile•Arie mica Dezavantaje:•Nu sunt chiarreconfigurabile, suntprogramabile o singura data
Switch implicit esteON; cand esteprogramat este OFF.Avantaje:•Programarea nu se pierde cand circuitulnu mai este alimentatDezavantaje:•Necesita mai multi pasi in procesul de fabricatie
Celulele SRAM stocheazaprogramabilitateadevice-uluiAvantaje:•Pot fi reconfiguraterapid, si de cate orieste necesar•Nu necesita pasi de fabricatie suplimentariDezavantaje:•Ocupa arie mai mare•Se pierdeprogramarea daca nu mai sunt alimentate
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Switch in tehnologie Antifuse
Metal 3
Metal-to-Metal Antifuse
Metal 2
Via
Metal 1
Contact
Silicon
– Anti-fuzibilii - sunt “one-time programmable”(OTP) programabili o singura data.
• Pulsul de tensiune elimina dielectricul• Necesita programarea o singura data.
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Anti-Fuse FPGA
– Resurse de rutare mici (rapid)– Securizare– Toleranta buna la erorile de fabricatie– Rezistenta aproximativ 100
antifuse polysilicon ONO dielectric
n+ antifuse diffusion
2
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Interconnection Fabric
Logic Module
Horizontal Track
Vertical Track
Anti-fuse
Interconexiune tipica Anti-fuse pentru circuitele de la firma Actel
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Securitatea design-ului in tehnologia “Anti-fuse”
• Tehnologia este foarte buna pentru securizarea design-ului– Fisierul de configurare (bitstream) nu poate fi interceptat (nu
necesita un transfer de bitstream, fara configurare externa)– Necesita un microscop “Scanning Electron Microscope” (SEM)
pentru a putea determina starea antifuzibilului (exemplu: ActelAX2OOO antifuse FPGA - contine 53 milioane de anti-fuzibili din care numai 2-5% sunt programati intr-un design de marime medie
©ACTEL
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Flash / EEPROM Devices
Coolrunner II - CPLDCourtesy: Xilinx
•Tehnologia deriva din tehnologia PLD•Traditional bazata pe arhitectura AND/OR•Utilizata tipic pentru glue logic, masini de stare etc
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Tendinte Flash/EEPROM
•Elemente logice (LUTs si flip flops)•Rutare segmentata
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
SRAM-FPGA
Read or Write
Data
Q
Q
Programming Bit I1 I2
P1P2P3P4
Out
2-Input LUT
•Se pot programa de multe ori•Fiecarui bit de programare i se asociaza aproximativ 5 tranzistori•Arie mare de dispozitive alocate pentru programare -> reduce viteza comparativ cu EPROM si antifuse.
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
– Unele clustere logice sunt mari(ex. Altera contine 8 perechiLUT-FF)
– 3 puncte importantes:• Elementele logice per cluster • Conectivitatea cluster-ului
catre firele de interconectare– flexibiliitatea de conectare(Fc)
• Flexibilitatea matricii de interconectare (Fs) – switch box
LogicCluster
IO connectionsswitchbox
Probleme si implicatii in proiectarea de circuite
LogicElement
•Cata functionalitate trebuie saofere un element logic?•Cate cai de rutare trebuie saexiste intr-un canal? •Capabilitatile switch-urilor?
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Cluster-ul logic
Intrebare: cate blocuri logiceelementare (BLE) trebuie sa fie intr-un cluster?
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Marimea cluster-ului logic (Cluster Size)
•Interesant, clusterele logice mai mici sunt mai eficiente (Betz –CICC’99)•Include si aria necesara pentru rutare•Clusterele mici (ex. Un singur BLE per cluster) nu sunt“prietenoase” pentru programele de tip CAD (Computer Aided Design) •Cele mai multe circuite comerciale au 4-8 BLE per cluster
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Numarul de intrari per Cluster
•Prin reducerea numarului de intrari, se reduce dimensiuneacircuitului si acesta devine si mai rapid•Cele mai multe FPGA (Xilinx, Lucent) au 4 BLE per cluster cu mai multe intrari decat ar avea nevoie in realitate
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
LogicCluster
IO pin
Tracks
OutT0 T1 T2
T0T1T2Out
FC = 3T0 T1 T2
– Fc -> la cate cai de rutare se poate conecta un pin?– Daca clusterul logic e mic FC este mare FC = W– Daca clusterul logic este mare, Fc poate fi mic.
•Conectivitatea cluster-ului catre firele de interconectare– flexibiliitatea de conectare (factorul Fc)
•Flexibilitatea matricii de interconectare (Fs) – switch box
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Flexibilitatea Switchbox – data de factorul Fs
0
1
0
1
0 1
0 1
– Switch box – furnizeaza arii de interconectare optimizate– Flexibilitatea nu este atat de importanta ca factorul FC– Ex: 6 tranzistoare sunt necesare pentru FS= 3
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Exemple de circuite
•Xilinx - familia XC4000EX-FS = 3-FC = 0.2-I = 8-Num BLE – about 2.5
•Altera – familia Flex10K-FS = 3-FC = 0.25-I = 22-Num BLE – about 28
° Altera nu foloseste segmentarea, toate liniile traverseaza partimari din circuite.
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Switchbox 0 21
2
01
2
01
0 21
– Rotirea conexiunilor in interiorul switchbox cu mentinerea factorului FS= 3
– Tot 6 tranzistoare necesarepentru matricea de comutare
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Alta problema: plasarea bufferelor
– FPGA mecesita buffere pentru a izola retelele RC – Arhitectii trebuie sa decida unde vor plasa aceste bufere.
S S
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Caile de interconectare bazate pe switch si fire pot fi modelate ca si retele RC
S S
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Implementarea memorie in FPGA
Addr
A D
A D
16X1
16X1LUT1
LUT2
– Pentru 4-input LUTs - 16 bits de informatie disponibili– Pot fi conectate (chain) prin retelele programabile
– Un aspect cheie il reprezinta flexibilitatea
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Xilinx XC4000 Series Devices
– Ideal pentru stocare de date de dimensiuni mici– Nu se pierde spatiu
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Xilinx XC4000 Dual Port Mem
– Accesare date in mod concurent.– Acces de tip granulatie fina (Fine-grained access)– Acces sincron
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Memorii de tip granulatie mare (coarse-grained)
5V
Word line
BITLine
BITLine
– Blocuri mari SRAM speciale care se aflain ariile FPGA
– Conduc la implementari eficiente de memorie cu performante predictibile
– Celule SRAM cu 6 tranzistoare
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Xilinx Virtex Block Memory
4096 bit SRAMs
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
- Examplu: Altera Flex10K- Fiecare EAB (Embedded Array Block) are un spatiu de stoare de 2K bits- EAB Este plasat in centrul circuitului– LE si EAB sunt conectate in jurul canalului de interconectare
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
EAB - Altera
– Arie integrataoptimizata
– Datele si adreselesunt folosite cu performantefoarte bune
– Scalabile pentrudimensiuni maimari
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
•Rata de crestere a memoriei•Aproximativ 2400 tranzistoare per CLB
-(1200 per LUT) pentru implementare XC4000 (32x1 SRAM)•6 tranzistoare per celula pentru Altera SRAM (2K per EAB)
307200128245762512x87680032122881128x819200812288132x82400112288132x1transCLBstransEABsSize
Xilinx 4000EAltera 10K
Pentru 512x8 fine-grained – de 10X mai mare dimensiunea
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
•Blocuri bi-dimensionale de Logic Array Blocks (LABs), cu 16 Logic Elements (LEs) in fiecare LAB.
•Blocuri de memorie integrate (Embedded memory blocks) (M4K) simultiplicatoare (18x18)
•PLL (Phased Locked Loops) – utilizate pentru a genera semnale de clock intr-ogama de frecvente
•Ex: Circuitul EP2C35 din familia Cyclone: 60 coloane, 45 randuri si 33216 LEs. 105 M4K blocks si 35 multiplicatoare integrate.
Exemplu- studiu de caz: Altera Cyclone II
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
LE are 2 moduri de operare: normal si aritmeticModul normal – implementari pentru logica generala• 4-input LUT• 6 input connections• 3 output connections
Organizarea elementului logic (modul normal)
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Modul aritmetic este potrivit pentru implementare: sumatoare, numaratoare, acumulatoare, comparatoare
• LUT-ul este impartit in doua 3-input LUTs (ideal pentru implementareaunui sumator de 2-bit)
Organizarea elementului logic (Logic element) in modul aritmetic
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
• Fiecare LAB: 16 LEs, LAB semnale de control, LE carry chains, register chains si interconexiuni locale.
• Interconexiunile locale transfera semnale intre elementele logice (LE) in acelasiLAB
• LABs, PLLs, M4K RAM si inmultitoarele din vecinatate de la stanga si dreaptapot de asemenea folosi o conexiune locala pentru LAB
Organizareablocului logic (Logic array block)
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Register/carry chain – conectare cu un LAB
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
•Multitrack – constau in randuri (directlink, R4, R24) si coloane (register chain, C4, C16)•Interconexiunile R4/C4 traverseaza 4 blocuri (stanga, dreapta / sus, jos)
Interconexiuni Multi-track
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
• 4608 RAM bits •250 MHz• port single sau dual• configurabil ca si FIFO
• ideal pentru aplicatii DSP• 250 Mhz• configurabil ca si 1 inmultitorpe 18 bit, sau ca 2 inmultitoareindependente de 9 biti fiecare
Embedded RAMs si multiplicatoare
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
• Element IO, structura (IOE) (permitesemnale bidirectionale)
• 5 IOE per rand I/O block
Elementul IO (Input/Output) si structrura (IOE)
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
ANEXE:
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Informatii privind preturile circuitelor reconfigurabile (FPGA) –DIGI-KEY CORPORATION: http://www.digikey.com/2 exemple:-Spartan IIE (300 porti) aprox. 25$
- Virtex 4 aprox. 2000$ (contine o serie de unitati functionale performante- DSP, microcontroller, interfete Ethernet etc..)
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Aria cea mai recenta de cercetare in domeniul calcululuireconfigurabil
• Dezvoltarea de arhitecturi de consum eficient si tehnici de CAD pentru FPGA • Aplicatii noi pentru circuitele reconfigurabile (in special aplicatiiintegrate si securizare)•O mai buna intelegere a rolului microprocesoarelor standard si a hardware-ului reconfigurabil.
-Tipuri multiple de paralelism•Arhitecturi reconfigurabile de granulatie mare (Coarse-grained)
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Resurse bibliografice:[1] Prof. Sherief Reda Division of Engineering, Brown University Spring - Reconfigurable Computing[2] Prof. Russell Tessier - Reconfigurable Computing [3] Dr. Gilles SASSATELLI- Lecture on Reconfigurable Technologies[4] Marco Platzner Computer Engineering GroupReconfigurable Computing
Top Related