Adaptív beágyazott rendszerek hardver - szoftver együttes tervezése (neurális hálózatok felhasználásával)
Informatikai rendszerek és hálózatok tanszék Dr. Oniga István
2010 I félév
Bevezetés •
•
•
•
Napjainkban egyre nagyobb az érdeklıdés olyan beágyazott rendszerek fejlesztése iránt, amelyek képesek könnyen integrálni a különbözı I/O eszközöket és különbözı protokollokat használó érzékelıkkel ellátott interfészeket. Egyre nagyobb az elvárás, hogy ezek a rendszerek tanulási és adaptív magatartással rendelkezzenek, ezt pedig neurális hálózatok használatával lehet elérni. E kutatás célja, egy hardware leíró nyelven (HDL: Verilog vagy VHDL) definiált keretrendszer fejlesztése, amely lehetıvé teszi speciális alkalmazások gyors fejlesztését. Ennek a keretnek ˝hordozható˝nak kell lennie, programozható áramkörökkel realizált különbözı fejlesztési rendszerekre.
Beágyazott rendszerek jellemzői Olyan számítógépes rendszerek amire a következık jellemzık: – Dedikált funkcionalitás • Tipikusan egy jól meghatározott funkció végrehajtására tervezték • Nem használható általános számítógépként • Felhasználója nem tudja függetlenül programozni
– Szigorú feltételeknek felelnek meg • Alacsony költség • Kevés alkatrész • Gyors mőködés • Kis fogyasztás
– Valós idejő mőködés és reagálás a változásokra • Folyamatosan figyeli a kijelölt környezeti paramétereket és módosítja kimeneti jeleit
– Hardver és szoftver megoldások együttes alkalmazása
Alkalmazási példák –
Mobil telefon rendszerek •
–
Autóipari alkalmazások •
–
Repülésvezérlési rendszerek, hajtómő vezérlés, robot pilóta rendszer, fedélzeti utas szórakoztatás
Védelmi rendszerek •
–
Fékrendszer, futómő, stabilitás vezérlés, légzsák rendszerek, motor vezérlés
Repülıgépipar •
–
Mind a bázisállomások, mind a fogyasztói készülékek
Radar rendszerek, légvédelmi rendszerek, rádió rendszerek, rakétavezérlı rendszerek
Beágyazott rendszerek a háztartásban
Fontosság és tendenciák –
–
– –
– –
Az Európai Bizottság évente 1,3 milliárd eurót fektet a beágyazott rendszerek kutatásába ARTEMIS - European Technology Platform for Advanced Research and Technology for Embedded Intelligence and Systems A jelenlegi mőködı processzorok 90% beágyazott rendszerekben találhatók Egyes felmérés szerint 16 milliárd beágyazott rendszer mőködik ma (kb. fejenként 3) Ez a szám 2020-ra 40 milliárd lesz Ezeknek az elosztása Európában a következı lesz: • • • •
15% ipari automatizálás 30% távközlés 40% fogyasztói elektronika és intelligens épületek, 15% orvosi elektronika
Beágyazott rendszerek felépítése
A központi egység megvalósításai •Mikrovezérlı alapú rendszerek (microcontroller) •DSP processzor-alapú rendszerek •ASIC technológián alapuló rendszerek •FPGA technológián (programozható logikai áramkörök) alapuló rendszerek
Programozható logikai áramkörök • Belsejükben „tetszıleges” hardver készíthetı • Ehhez a bennük lévı összeköttetéseket kell programozni • A programozáshoz egy bináris fájlt használnak • Ez készülhet kapcsolási rajzból, vagy valamelyik ún. hardver leíró nyelv kimeneteként
Adaptív rendszerek •Azért adaptív mert: • a hardvert könnyen meg lehet változtatni a FPGA-ban lévı összeköttetések átprogramozásával • tanulási magatartással rendelkeznek, neurális hálózatok használatának köszönhetıen.
Integráció a Rendszertervezésben Funkciók integrációja
Embedded Software Tools
CPU CPU
Embedded Software Tools
Embedded Software Tools
FPGA
I/O
FPGA + Memory + IP + High Speed IO (4K & Virtex ) Logic Design Tools
Memory Logic Design Tools
Idő
Logic + Memory + IP + Processors + RocketIO (Virtex-II Pro) Logic Design Tools
Programozható rendszerek egy új éra küszöbén: a rendszertervezés integrációja
Hagyományos beágyazott rendszrek
Power Supply Ethernet MAC
Audio Codec
CLK CLK Interrupt Controller
GP I/O Address Decode Unit
CLK
SRAM
Memory Controller
SRAM
SRAM
CPU (uP / DSP)
SDRAM
Timer
UART CoProc.
SDRAM
custom IF-logic
Display Controller
L C
90-es évek második felével...
Configurable System on a Chip (CSoC) Reconfigurable System on a Chip (SoC) Audio Codec
EPROM
Power Supply
L C
SRAM SRAM SRAM
SDRAM
SDRAM
Beágyazott CPU-k Softcore microprocessor (lágy magú): •
általános FPGA erıforrások felhasználására épül, HDL leírásból, szintézis útján
Hardcore microprocessor (kemény magú): •
Xilinx: MicroBlaze 32-bit Harvard RISC architektúra PicoBlaze 8-bit Altera: NIOS
•
FPGA-ba agyazott valódi processzorok
Xilinx: PowerPC – IBM (Virtex II Pro) Altera: ARM922T – ARM (Excalibur APEX)
Virtex-4 Processzorok:
Embedded Processor PowerPC
Core Type Hard
Max Clock Frequency 222 MHz
Microblaze Picoblaze Picoblaze (optimized)
Soft Soft Soft
Slices
PLBs
1000
250
Block RAMs 9
180 MHz 221 MHz
940 333
235 84
9 3
233 MHz
274
69
3
MicroBlaze PowerPC PicoBlaze
MicroBlaze alapú beágyazott rendszerek tervezése EDK fejlesztői környezetet Standard Embedded SW Development Flow
Standard FPGA HW Development Flow
C Code
VHDL/Verilog
Compiler/Linker
Synthesizer
(Simulator)
Simulator
Object Code
Place & Route
?
?
CPU code in off-chip memory
CPU code in on-chip memory
Download to Board & FPGA
Debugger
Download to FPGA
PicoBlaze alapú beágyazott rendszerek tervezése
•
•
•
VHDL vagy Verilog lágymagú processzor leírás A PicoBlaze programja a BRAM memóriában van tárolva. Assembler: egy HDL sablont felhasználva, a ROM memória implementációjára vagy szimulációjára szolgáló HDL fájlt generál.
Paraméterek:
• Spartan3,Virtex 2, Virtex 4 • 16 regiszter + 64 tároló • HW Stack 32 szintű • Méret 96 slice • Max. 1024 18 bites utasítás
Hardver és Softver együttes tervezése 1. HW/SW particionálás 2. SW fejlesztés - assembler nyelven 3. Az assembler, generál egy BRAM leírást és hozzáadja a programot meghatározó inicializáló stringeket. 4. HW fejlesztés – HDL nyelven: 5. hardver leíró nyelvű kódolás 6. szintézis – implementáció 7. letöltés • A program módosítása a konfigurációs bit stream változását eredményezi.
1
2
4
3
5
6
HW&SW
7
Szoftver frissítése 1
8. A rendszer tervezés termelékenység javítását segítik JTAG download vagy Data2MEM használata. • Szoftver frissítését a blokk RAM memóriába anélkül hogy az egész folyamatot újrafutatnánk.
2
4
• Ha a hardver már egyszer konfigurálva van, akkor a kódot könnyen lehet módosítani és frissíteni a program memória tartalmát.
3
5
8
6
7
SW
Projekt céljai •
A fı cél: –
•
intelligens eszközök fejlesztését szolgáló hardver-szoftver platform megvalósítása
Egyéb jellemzık, amelyeket a platformnak biztosítania kell: –
Olcsó általános célú FPGA-ás kártyák alkalmazásával, specifikus eszközök vagy interfészek nélkül
–
Hardware platform-függetlenség
–
HDL komponensek újrafelhasználhatósága a szabványos viselkedéső interfészekhez
–
Érzékelık, I/O eszközök és külsı memóriák cserélhetıségé, köszönhetıen, HDL illesztı programoknak
–
– –
Tanulás és adaptív viselkedés - HDL Neural Network modulok felhasználásával. Ehhez a hardver implementációra szabott, új N-hálózat tervezése szükséges Nincs szükség hardver tervezésre és gyártásra Gyors piacra kerülési idı: egy új intelligens eszköz fejlesztéséhez csak az új alkalmazás-specifikus HDL modulok tervezése szükségesek.
Mesterséges neurális hálózatok fejlesztése –
– –
Neurális hálózatok használata elengedhetetlen ahhoz, hogy a rendszerek tanulási és adaptív magatartással rendelkezzenek (megváltozott bejövı jelekhez alkalmazkodók). Neurális hálózatok hardver megvalósításához - saját fejlesztéső új módszer, [1]. Ez a módszer, egy kiterjesztése a Matlab/Simulink környezetben alkalmazható, Xilinx cég által fejlesztet, a digitális jelfeldolgozás tervezéséhez szolgáló, System Generátor Toolbox-nak.
Mesterséges neuron In data_A
1
Joncţiune Súlyozottde însumare összeadás
x1
Aktivációs Funcţia de însumare activare függvény
addr_A_data_RAM we _A_data_RAM addr_B_data_RAM
x2
addr_weight_ROM
x3 . . xN
addr_A we _A
Data OutB
addr_B
Data Memory
Weight
Out
Ieşire
Control Logic
addr
Activation Function
Reset Acc
θ
N y(x)= f (a − θ ) = f ∑ wi xi − θ i=1
McCulloch-Pitts modell
addr
reset _Acc
Weight Memory •
MAC
Neurális processzáló elem: – Adat memória (bemenő puffer), – Súlytényező memória, – MAC (Szorzás-akkumulálás), – Aktivációs függvény, – Vezérlő modul.
1 Out
N-hálózat specifikus könyvtár •
RNA blockset, általam fejlesztet, mesterséges neurális hálózat specifikus blokkokat tartalmaz –
MAC blokkok
Data 1
a
2 Weight
b
-3
z (ab )
b q
Mult
cast
d z -1 q
rst Accumulator
3 Reset Acc
Convert
en
1 Out
Register
4 Reg _en
– – –
•
Adat és súlytényezı memóriák Aktivációs függvény Vezérlı modul
A blokkok paraméterei felhasználó által bealíthatok a grafikus felhasználói interfész segítségével. – – –
–
szorzó blokk típusa és pontossága neuronok bemeneteinek száma bemeneti adatok, súlytényezık és a kimeneti adatok reprezentálásának hasznát bitek száma súlytényezı memória és a aktivációs függvény tartalmát tárolók fájlok
FF-BP neurális hálózatok implementációja
2 réteges FF-BP neurális hálózat hardver modellje
Hibák száma a súlytényezők ábrázolására használt bitek száma függvényébe
Hibák száma a teszt vektorok függvényébe
Önszerveződő neurális hálózatok implementációja •
•
Hebb tanulás – wij (k +1) = wij (k) +µyi yj ,
Bemenı réteg 7 neuron Kimenı réteg15 neuron
• •
Versengı tanulás - Euklideszi távolság net k =
2
N
∑ [x
i
− wki ]
Date_in 1 Data in
Data in
dblfpt
Negdist Ad. data A
Ad. data A
Ad. data B
Ad. data B
Data
Data
i
–
–
gyıztes
∆w ji = η ( x j − w ji )
vesztes
∆wki = 0,
addr
Ponderi
Weight ROM
Reset
Negdist
Negdist
Input layer Nr. adr. pond.
Winning neuron
fptdbl
Reset
Reset
1 Winning neuron
Control block Competitive activation function
Versengı aktivációs függvény
„Negdist” típusú processzáló elem 2
Reset
Negdist 1
Counter1 en
out
a a=b xlrelational b Relational1
k =0 Constant
xllogical and Logical
xlinv not
xllogical or
Inverter
Logical1
sel xlmux d0 d1 Mux
d xlregister z-1 q rst Register2
a xlrelational a<=b b
rst
Relational
en
out Counter
Delay z-1
d xlregister z-1 q en
1 Winning Register3 neuron
Versengő tanulású önszerveződő neurális hálózat In1 In2 Out1 In3 In1 In2 Out1 In3 In1 In2 Out1
sel d0 d1
In3 In1 In2 Out1 In3
Date_in dblfpt
1 Data in
d2 d3 d4
In1 In2 Out1
Data in
In3
d5 d6 xlmux d7
In1
Ad. data A
Ad. data A
In2 Out1
Date
In3 In1
Ad. data B
Ad. data B
d8 d9
In2 Out1 In3
Nr. adr. pond.
Input layer
d10 d11 d12
In1 In2 Out1 In3 In1
Reset
d13 d14
In2 Out1 In3
Sel
Negdist
Winning neuron
Winning neuron
1
Reset
Competitive activation function
In1 In2 Out1
Control block
Mux
In3 In1 In2 Out1 In3 In1 In2 Out1 In3 In1 In2 Out1 In3 In1 In2 Out1
Resource Estimator
In3
System Generator
In1 In2 Out1 In3
Command block
Input layer
15 Neurons MUX (resources/neuron)
Slices
19
0
12
Flip-flops
17
0
18
40 neurons Using MAC
Total XC2V1000
Remaining
Resorce/neuron (Distributed logic)
Max. nr. of neurons (Distributed logic)
TOTAL 40 neurons + 141 neurons
Activation function
TOTAL
% from XC2V1000
43
29
271
5.27
Slices
723
5120
4397
466
141
5103
2
23
312
3.05
Flip-flops
832
10240
9408
640
221
6848
RAM blocks
0
1
1
0
0
16
40
RAM blocks
40
40
0
0
-
7024
LUTs
29
0
12
81
35
325
3.18
LUTs
867
10240
9373
655
215
7024
Multipliers
0
0
1
0
0
15
37.5
Multipliers
40
40
0
0
-
40
Alkalmazási példák
• Kéz gesztus felismerő rendszer • Mesterséges szaglást megvalósító rendszer N-hálózatok felhasználásával • Mioelektromos jel alakfelismerése • Intelligens ház irányítási és ellenőrzési rendszere • Időskori életvitel segítése infokommunikációs eszközökkel – Viselkedéselemzés
Kéz gesztus felismerő rendszer Gesztusok meghatározása
5DT-Data glove - Szenzoros kesztyű
100%
- Újak hajlítása - optikai szállak - Kéz - két tengelyes dőlésérzékelő
95% 90% 85% 80% 75% 70% New method Beale and Edwards Fels and Hilton Suggested by authors
Murakami and Tamaguchi
Kéz gesztus felismerő rendszer In p u t
• Kétszintű architektúra • Adat előprocesszáló FF N-hálózat – Hebb ellenőrzött tanulás eljárást alkalmaz • Gesztus osztályozó N-hálózat - versengő tanulás eljárást alkalmazó önszerveződő neurális hálózat
d a ta
D a ta g lo v e P r e p ro c e s s in g ANN C la s ific a tio n ANN
Input data
Implementált függvény N (1)
netk = ∑ ∑ wi(1) xi(1) − θ − wkj(2 ) j i=1 M
Preprocessing ANN O utput
2
Com petitive ANN Output
Mesterséges szaglás FPGA-ban implementált N-hálózatokkal A rendszer felismeri a teszt kamrában bemutatott kávé fajtat. Adatgyűjtést egy NI kártya es Labview programban elkészítet VI végzi. A bemutatott mintát (a kávé típust) FF-BP neurális hálózatok ismerik fel.
Hivatkozáslista [1] L. Marchese, “Digital neural network based smart devices”, Project proposal, FP7 European Research Program, http://www.synaptics.org, December 2006, unpublished. [2] S. Oniga, “A New Method for FPGA Implementation of Artificial Neural Network Used in Smart Devices”, International Computer Science Conference, microCAD 2005, Miskolc, Hungary, March 2005, pp. 31-36. [3] S. Oniga, A. Tisan, D. Mic, C. Lung, I. Orha, A. Buchman, A. Vida-Ratiu, “FPGA Implementation of Feed-Forward Neural Networks for Smart Devices Development”, Proceedings of the ISSCS 2009 International Symposium on Signals, Circuits and Systems, July 9-10, 2009, Iasi, Romania, p. 401-404. [4] S. Oniga, V. Tiponuţ, A. Buchman, D. Mic, “Adaptive Interface Based on FPGA implemented Artificial Neural Network”, Scientific Bulletin of the Politehnica University of Timişoara, 2004, pp. 236-240. [5] S. Oniga, A. Tisan, D. Mic, A. Buchman, A. Vida-Ratiu, “Optimizing FPGA implementation of feedforward neural networks”, Proceedings of the 11th International Conference on Optimization of Electrical and Electronic Equipment OPTIM 2008, 2008, Brasov, Romania, May 22-23, pp. 31-36. [6] A. Tisan, S. Oniga, A. Buchman, C. Gavrincea, “Architecture and Algorithms for Synthesizable Neural Networks with On-Chip Learning”, International Symposium on Signals, Circuits and Systems, ISSCS 2007, July 12-13, 2007, Iasi, Romania, vol.1, pp 265 – 268. [7] A. Tisan, S. Oniga, D. Mic, A. Buchman, “Digital Implementation of The Sigmoid Function for FPGA Circuits", Acta Technica Napocensis – Electronics and Telecommunications Volume 50, Number 2/2009, pp.15-20. [8] J. Fleischmann, K. Buchenrieder, R. Kress, “A Hardware/Software Prototyping Environment for Dynamically Reconfigurable Embedded Systems”