Jelfeldolgozó processzorok (DSP) Rekonfigurálható eszközök (FPGA)

Méret: px
Mutatás kezdődik a ... oldaltól:

Download "Jelfeldolgozó processzorok (DSP) Rekonfigurálható eszközök (FPGA)"

Átírás

1 Beágyazott elektronikus rendszerek (P-ITEEA_0033) Jelfeldolgozó processzorok (DSP) Rekonfigurálható eszközök (FPGA) 5. előadás március 11.

2 Analóg jelfeldolgozás Analóg bejövő jelek (egy folyamat mért értékei) Analóg jelfeldolgozó egység Analóg kimenő jelek beavatkozók felé Folyamatirányítás Tipikus feladatok Szűrők Szorzók Integrátor Diferenciáló PID szabályzó Diszkret analóg komonensek (csavarhúzóval hangolható)

3

4

5

6

7

8 One instruction per tap in the TMS320C25

9

10

11 Image processing

12 Video and audio I/O (analog and/or digital) Watchdog

13 DSP gyártók Texas Instruments TMS320 DSP család Analog Devices SHARC Freescale (Motorola) Freescale

14 Texas C6000 sorozat

15 Texas TMS320C DSP család Típus fix-lebegő jellemzők státusz TMS320C1x Fix pontos Első DSP Csak military TMS320C2x Fix pontos Első nagy szériás DSP élő TMS320C3x Lebegő pontos TMS320C4x Lebegő pontos Első lebegőpontos DSP, DMA 4 db kommunikációs port, másik DSP felé. DSP tömb építése., DMA TMS320C5x Fix pontos Első statikus CMOS design: low power élő élő kifutó TMS320C6x Fix-lebegő TMS320C8x Lebegő pontos Mai legmodernebb DSP-k. Nagyon széles utasítás szó (256 bit). Első multimédiás 4 db TMS320C4x + egy RISC processzor (nem jött be, túl drága volt) élő Csak military

16 Texas C6000 DSP család

17 A TMS320C6415-ös gyártási paraméterei 600MHz 1.2 GHz Clock Rate Power ~1.5W 532-Pin Ball Grid Array

18 A C6415 architektúrája memória buszok soros portok

19 A C64x processzor magja I: Regiszter bankok Két regiszter bank (A,B) 32db 32bites regiszter mindkét bankban Három regiszter típus Feltétel regiszter (3 db/regiszterbank) Körkörös címregiszter (4 db/regiszterbank) Adatregiszter

20 A C64x processzor magja II: Processzáló egységek L1, L2 egységek Logikai és aritmetikai egység 32/40 bit arithmetic and compare ops 32 bit logical operations Byte shifts Dual /quad arithmetic operations Dual /quad min/max operations Quad 8 bit subtract with absolute value S1, S2 egységek Aritmetika, komaprálások, elágazások 32 bit arithmetic and logical operations 32/40 bit shifts Branches Dual and quad compare operations Dual and quad saturated arithmetic operations M1, M2 egységek Szorzó összeadó (MAC) egység 16 x 32 multiply operations Dual and quad multiply operations Dual and quad multiply with add/subtract operations (MAC) Rotation Variable shift operations D1, D2 egységek Címaritmetikai egység 32 bit add, subtract, linear and circular address calculation Loads and stores single and double words with constant offset 32 bit logical operations Dual 16-bit arithmetic operation

21 Utasításbusz Mind a 8 processzornak 32 bites az utasításkód szélessége 256 bit széles utasításbusz Ez egyetlen busz, azaz a különböző processzorok nem ágazhatnak el önállóan! Tipikus C kódnál 2-3 processzor megy egyszerre. Kézzel optimalizált matematikai blokkokban 6-8 processzor is egyszerre használt Konvolució, FFT, stb. Optimalizált függvény könyvtárak

22 Cache memóriák Külön adat és program útvonalak L2 cache konfigurálható

23 Cache gyorsító szerepe A gyors processzor gyorsan szeretne adatot elérni. Gyors memóriák nagy helyet foglalnak a szilíciumon, csak kicsi építhető belőlük. ~150

24 Átviteli sávszélességek viszonyai Program Input data Output data Porceszszorok max. adatigénye (600MHz) 256 bit/ciklus 544 bit/ciklus 288 bit/ciklus L1 cache biztosít 256 bit/ciklus 128 bit/ciklus - (600MHz) L2 cache biztosít (300MHz) 128 bit/ciklus 128 bit/ciklus 128 bit/ciklus Külső memória biztosít 16 bit/ciklus összesen (150MHz)

25 Mi történik, ha nincs az adat a cache-ben? Ha bent van az L1-ben, akkor abban a ciklusban beviszi a regiszterbe. Ha nincs az L1-ben, de az L2-ben bent van, akkor 6-8 ciklust áll a processzor, ezalatt automatikusan átkerül az L1-be, és utána megy tovább. Ha egymás után több adat hiányzik ugyanarról a területről, az csak egyszer 6-8 ciklus várakozást jelent, mert a 6-8 ciklus alatt egész blokkot másol. Ha az L2-ben sincs, akkor DMA ciklus inicializálódik, és a külső memória típustól függően akár több száz ciklust is áll a processzor.

26 A C6000 DSP család tagjai DSP & DSP+ARM Single DSP DaVinci video processor Multi-core DSP Keystone ARM MPU Ultra-low power C5000 integer processor (16 bit)

27 DaVinci Média processzor (Texas) DSP + RISC + célprocesszorok Ti 6415 DSP (számítás) ARM processzor (kommunikáció) Front-end videó feldolgozó egység Analog Videó signal interface (CCD) Digitalis (HD) videó interface Histogram, resize, preview Back-end videó feldolgozó egység Digitális videó feldolgozó célprocesszorok Analóg/digitális videó output, overlay (OSD) Videó tömörítő egység MPEG, H.264

28 TMS320DM6446 (Da Vinci)

29 Keystone: TMS320C6678 Multicore DSP 8 processor core 1.25GHz 65nm technology 512kb L2/cores 4Mbyte shared cache 841 pin BGA

30 Rekonfigurálható architektúrák FPGA

31 FPGA Nem befejezett logikai áramkör Az elemek funkcionalitása és azok összeköttetés rendszere átkonfigurálható, akár működés közben is Az adott feladatra optimalizált célprocesszorok építhetők Mennyire optimális? Megvalósított áramköri szinten: Maximálisan (amennyire optimalizálni akarjuk) Teljes áramkör szintjén: Komoly redundanciák illetve ki nem használt overhead-ek maradnak a teljes áramkörben

32 Modern FPGA-k elemkészlete IO blokk CLB Összeköttetések Memória DSP Slice Processzorok Soft Hard Nagysebességű soros perifériák Transceivers Ethernet, PCI express, SATA, USB Mixed signal module AD converter IP blokkok

33 FPGA-k felépítése (alap eszközök) Három alapelem: Széleken található I/O cella ( ) Belső összekötő hálózat Konfigurálható logikai blokk (CLB) vagy Slice-ok

34 Konfigurálható logikai blokk (Ma az eszközök többségében már 6 bites Func. Gen. Block (LUT) van, de azoknak az architektúrája rendszerint nem publikus.)

35 Programozható huzalozás típusok

36 IO Blokkok, CLB-k IO lábak Single ended Differential 1,866 Mb/s (DDR3 memóriát kiszolgál) max 1200 láb CLB (6 bemenetű LUT + FF) max 2 millió

37 36 kbit-es memóriablokkok db max: 9,44 Mbyte FIFO-nak is konfigurálhatók 638MHz gyakorlatilag minden FPGA-ban megtalálható Memória

38 Multiple-add unit 638 MHz Xilinx-ban: 25x18 bit A[n:0] Pár tucattól több ezer darabig DSP slice Multiplier Adder Accumulator x + B[n:0] Y[(2n - 1):0] MAC

39 Chip with Columns of Embedded Multipliers and RAM Blocks RAM blocks Multipliers Logic blocks

40 Embedded mikroprocesszorok Hard Ténylegesen benne van egy vagy több processzor Dual ARM (925MHz) Zinq (Xilinx) Cyclon V SOC (Altera) Soft Belefordít egy vagy több processzort Xilinx: MicroBlaze, PikoBlaze Altera: Nios Konfigurálható felépítés max: 210MHz A soft processzorok lényegesen gyengébbek egy DSP-nél. A dual ARM már erős, de nem összemérhető egy komoly DSP-vel. Az egész rendszer attól lehet erősebb, hogy az FPGAban cél processzorkat implementálunk, amelyek teljesítméne meghaladja a normál DSP teljesítményét.

41

42

43 2 db AD converter Mixed signal modul 17 differeciális bemenet 1 Msps

44 Soros interface-ek Transceivers Max 28Gbit/sec soros vonal Max 96 db Ethernet interface 10/100/1000 Mbit/sec PCI Express 4 db

45 FPGA-k programozása Program nyelvek HDL (Verilog, VHDL) (elterjedt) C (Vivado, Xilinx) Fordító eszköz Particionáló eszköz Huzalozó eszköz

46 FPGA tervezés lépései HDL kód vagy C kód írás Szintézis A kóddal egyenértékű CLB-kből álló logikai kapcsolás keletkezik (Netlista) Mapping A CLB-k elhelyezése a tömbben Packing LUT-ok feltöltése Routing A CLB-k behuzalozása

47

48 Simple HDL-based FPGA Flow

49 JTAG lánc JTAG data out JTAG data in To internal logic From previous JTAG filp-flop Input pad Input pin from outside world JTAG flip-flops From internal logic To next JTAG filp-flop Output pin to outside world Output pad A chip ki/bemeneteit ki lehet olvasni

50 Chip scope Virtuális logikai analizátor Fordítási időben belefordít kb 10% extra logikát

51 Technology Hierarchic Packaging

52 6-os család FPGA családok (Xilinx) Spartan 6 család (Kis teljesítményű, olcsó) Memória és DSP slice, soros transceivers Virtex 5-6 családok (csúcsmodellek) LX (sok logika) SX (sok DSP slice és memória) FX (embedded Power PC és Rocket IO) 7-es család ARITIX-7 (kis fogyasztású, olcsó) KINTEX-7 (legjobb ár/érték arány) VIRTEX-7 (csúcs modellek) Zinq Dual ARM

53 IP* blockok Különböző funkcionalítású blokkokat árulnak DRAM interface SATA interface Processzorok (MPEG, JPEG, stb) Konverterek Kommunikációs blokkok Stb Soft vagy Hard macro Soft: nincs meg a placing és a routing Hard: fix az elhelyezése és a routing *Intellectual Property

54 Speed grade Minden FPGA gyártó árul különböző sebességű eszközöket Speed grade-ek nehezen defniálható, inkább marketing mint mérnöki egységek

55 Rekonfigurálhatóság futási időben Egy komoly FPGA felprogramozása akár több tíz másodperc is lehet Hagyományosan az FPGA LUT-jai, multiplexerei, illetve routolása nem változik futási időben Az újabb típusok megengednek futás közbeni részleges rekonfigurálhatóságot

56 Trend: teljes embedded rendszerek egy FPGA-ban

57 FPGA roadmap Hasonlóan a mikroprocesszorokhoz, nem elsősorban a sebesség nő, hanem a komplexitás, a szilícium technológia fejlődésével (scaling-down) azaz: elemszám nő (CLB, memóriablokk, soros csatornák, szorzók, stb.), új funkcionális elemek jelennek meg (AD, ARM, stb) jelentősen csökken a fogyasztás.

58 Optimális? Felkínált erőforrás szinten A chip összes erőforrása (CLB/Slice) soha nincs kihasználva A kihasznált Slice-ok sincsenek teljesen feltöltve A huzalozásból is mindig megmarad a nagy része Teljes áramkör szinten Egy logikai kapu 4-6 tranzisztor egy normál áramkörön Ugyanez az FPGA-n, mivel rekonfigurálhatóan kellett megépteni Ez jelentős overhead, többlet szilícium felület, többlet fogyasztás Olyan, mintha 2-3 generációval korábbi technológiával terveznénk chipet

59 Miért érdemes használni? Sokkal olcsóbb, mint chipet tervezni Időben is és költségben is Még így is sokkal hatékonyabb az ismétlődő nagy számítási igényű feladatokra mint egy DSP Alacsony fogyasztás nagy számítási feladatok mellett is Teljes beágyazott rendszer építhető belőle

60 FPGA-DSP együttműködés Mikor kell DSP az FPGA mellé? Nagy számítási igény jelentkezik nem reguláris processzálásban. Példa: Smart kamera A reguláris processzálási lépéseket átveszi a DSP-től az FPGA

61 Mikor melyiket használjuk? FPGA Sturctured ASIC ASIC Meglevő cellákat töltünk fel programmal, és kötünk össze Hatalmas overhead a progamozhatóság miatt Lényegesen rövidebb tervezési idő Lényegesen kisebb prototípus költség Nagyon hasonló tervezési folyamat Köztes technológia az FPGA és az ASIC között Az FPGA-ból származtatják a rajozlatát a chipnek (működő FPGA-ból gyorsan megvan) Az ASIC-ekkel együtt gyártják Az FPGA építő köveket tartalmazza, de nem programozható módon Lényegesen olcsóbb tervezési költség, mint az ASIC, de magasabb darabár Általunk tervezett chip Szabadon rajzoljuk, helyezzük el és kötjük össze a cellákat (CAD) Nem konfigurálható át, nincs overhead, de ha nem jó, akkor újragyártás (negyed év, $5-$50k) Magas prototípus költség (tervezés + maszk költségek)

62 FPGA-k pozícionálása Adott nagy számítási feladatra a DSP-nél olcsóbb, de az ASIC-nél drágább (eladott darabszám függő) DSP-hez képest nagy fejlesztési idő/költség, de az ASIC-nál sokkal gyorsabb és olcsóbb kifejleszteni egy alkalmazást

63 Ár probléma Mobiltelefon, GPS, ADSL vagy kábel modem, digitális fényképezőgép, MP3 lejátszó, DVD lejátszó olyan számítási kapacitást igényel, amit egy 30 dolláros FPGA tud lefedni. Ezek az eszközök a teljes elektronikájukra $5-$30 költhetnek. Mi a megoldás? FPGA Structured ASIC ASIC migráció $30/db $5/db $0.50/db >10,000db/év >300,000db/év

64 Ár és fogyasztás csökkenés az ASIC migráció eredményeként

65 Cost of Timing Analysis and Debug Relative cost of timing analysis and debug ~100x ~10x 1x RTL (Pre-synthesis) Gate (Post-IPO) Gate (Post-layout) Level of Design Abstraction

66 1. megoldás: Példa: Adott egy komplex számítási 3 db DSP-vel megoldjuk 1 db gyártási költsége: $150 Kifejlesztési költség: $ 30, megoldás: 1 db FPGA-val megoldjuk 1 db gyártási költsége: $30 Kifejlesztési költség: $ 150, megoldás: Saját chipet (ASIC) tervezünk a feladathoz 1 db gyártási költsége: $2 (évi 50,000 db esetén) Kifejlesztési költség: $ 2,000,000 feladat [USD] $2M $1M $500k $150k $30k DSP $1M FPGA ASIC k [db] Döntési szempontok: Mennyi idő múlva kell működnie? Hány darabot tudunk értékesíteni? Milyen körülmények között kell működnie (energia, méret)?