Mikrorendszerek tervezése

Hasonló dokumentumok
Mikrorendszerek tervezése

Mikrorendszerek tervezése

Mikrorendszerek tervezése

Perifériák hozzáadása a rendszerhez

Áramkörön belüli rendszerek

A MicroBlaze processzor

Mikrorendszerek tervezése

Mikrorendszerek tervezése

Rendszerarchitektúrák labor Xilinx EDK

Digitális rendszerek. Digitális logika szintje

Programmable Chip. System on a Chip. Lazányi János. Tartalom. A hagyományos technológia SoC / PSoC SoPC Fejlesztés menete Mi van az FPGA-ban?

Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT

Digitális technika VIMIAA hét

Digitális technika VIMIAA01 9. hét

Számítógép Architektúrák

Digitális technika VIMIAA hét

Digitális technika VIMIAA01

Digitális technika VIMIAA01

Mikrorendszerek tervezése

A Memory Interface Generator (MIG) beállítása a Logsys Kintex-7 FPGA kártyához

Nyíregyházi Egyetem Matematika és Informatika Intézete. Input/Output

Az interrupt Benesóczky Zoltán 2004

FPGA áramkörök alkalmazásainak vizsgálata

Digitális technika VIMIAA hét

I 2 C, SPI, I 2 S, USB, PWM, UART, IrDA

Parciális rekonfiguráció Heterogán számítási rendszerek VIMIMA15

Digitális technika (VIMIAA01) Laboratórium 9

Digitális technika (VIMIAA01) Laboratórium 9

Két típusú összeköttetés PVC Permanent Virtual Circuits Szolgáltató hozza létre Operátor manuálisan hozza létre a végpontok között (PVI,PCI)

Multiprotocol encapsulation (RFC1483) - IETF Classical IP over ATM (RFC1577) - IETF LAN Emulation (LANE) - ATM Forum Multiprotocol over ATM (MPOA) -

Párhuzamos programozási platformok

A Számítógépek hardver elemei

Nagyteljesítményű mikrovezérlők

SZORGALMI FELADAT. 17. Oktober

Számítógép Architektúrák

Parciális rekonfiguráció Heterogén számítási rendszerek VIMIMA15

Párhuzamos programozási platformok

I+K technológiák. Digitális adatátviteli alapfogalmak Aradi Szilárd

A Számítógépek felépítése, mőködési módjai

A mikroszámítógép felépítése.

A LOGSYS GUI. Fehér Béla Raikovich Tamás, Laczkó Péter BME MIT FPGA laboratórium

Architektúra, cache. Mirıl lesz szó? Mi a probléma? Teljesítmény. Cache elve. Megoldás. Egy rövid idıintervallum alatt a memóriahivatkozások a teljes

Rendszerarchitektúrák labor Xilinx EDK

Magas szintű optimalizálás

XII. PÁRHUZAMOS ÉS A SOROS ADATÁTVITEL

Digitális technika (VIMIAA02) Laboratórium 12

Digitális technika (VIMIAA02) Laboratórium 12

ARM Cortex magú mikrovezérlők. mbed

Máté: Számítógép architektúrák

ARM (Advanced RISC Machine)

Számítógép felépítése

III. előadás. Kovács Róbert

Digitális technika (VIMIAA02) Laboratórium 5

Digitális technika (VIMIAA02) Laboratórium 5

Programozható vezérlő rendszerek KOMMUNIKÁCIÓS HÁLÓZATOK 2.

Hálózati architektúrák laborgyakorlat

IP alapú komunikáció. 2. Előadás - Switchek 2 Kovács Ákos

DIGITÁLIS TECHNIKA 7. Előadó: Dr. Oniga István

6. óra Mi van a számítógépházban? A számítógép: elektronikus berendezés. Tárolja az adatokat, feldolgozza és az adatok ki és bevitelére is képes.

Számítógépes Hálózatok. 4. gyakorlat

Hibafelismerés: CRC. Számítógépes Hálózatok Polinóm aritmetika modulo 2. Számolás Z 2 -ben

Az Internet működésének alapjai

A Számítógépek hardver elemei

BELÉPTETŐ RENDSZER TERVEZÉSE

Számítógép hálózatok gyakorlat

Az I2C egy soros, 8 bit-es, kétirányú kommunikációs protokoll, amelynek sebessége normál üzemmódban 100kbit/s, gyors üzemmódban 400kbit/s.

Számítógép Architektúrák (MIKNB113A)

Terepi buszok. Dr. Schuster György október / 43. OE-KVK-MAI

Nagy Gergely április 4.

Mikrorendszerek tervezése

Iványi László ARM programozás. Szabó Béla 8.Óra Bluetooth 4.0 elmélete, felépítése

Bevitel-Kivitel. Eddig a számítógép agyáról volt szó. Szükség van eszközökre. Processzusok, memória, stb

Mikroprocesszor CPU. C Central Központi. P Processing Számító. U Unit Egység

A vezérlő alkalmas 1x16, 2x16, 2x20, 4x20 karakteres kijelzők meghajtására. Az 1. ábrán látható a modul bekötése.

AGSMHÁLÓZATA TOVÁBBFEJLESZTÉSE A NAGYOBB

Alapismeretek. Tanmenet

Számítógépek felépítése, alapfogalmak

Digitális technika (VIMIAA02) Laboratórium 4

I. C8051Fxxx mikrovezérlők hardverfelépítése, működése. II. C8051Fxxx mikrovezérlők programozása. III. Digitális perifériák

Adatfeldolgozó rendszer tervezése funkcionális elemekkel

Alapismeretek. Tanmenet

Assembly. Iványi Péter

SZÁMÍTÓGÉPARCHITEKTÚRÁK

Számítógépek felépítése

Számítógépek, számítógép rendszerek

Digitális technika II. - Ellenőrző feladatok

ARM Cortex magú mikrovezérlők

Dr. Vörösházi Zsolt: Beágyazott rendszerek fejlesztése (FPGA) A felsőfokú informatikai oktatás minőségének fejlesztése, modernizációja

Számítógépes Hálózatok 2008

Programozó- készülék Kezelőkozol RT óra (pl. PC) Digitális bemenetek ROM memória Digitális kimenetek RAM memória Analóg bemenet Analóg kimenet

Számítógép Architektúrák

Perifériakezelési módszerek (Korrigált) Feltétel nélküli

Billentyűzet. Csatlakozók: A billentyűzetet kétféle csatlakozóval szerelhetik. 5 pólusú DIN (AT vagy XT billentyűzet csatlakozó),

Scherer Balázs: Mikrovezérlık fejlıdési trendjei

Budapesti Műszaki és Gazdaságtudományi Egyetem. A Verilog HDL II. Nagy Gergely. Elektronikus Eszközök Tanszéke (BME) szeptember 26.

Digitális rendszerek. Mikroarchitektúra szintje

Előadó: Nagy István (A65)

A számítógép fő részei

loop() Referencia:

Bevezetés az informatikába

Átírás:

BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Mikrorendszerek tervezése AXI interfész Fehér Béla Raikovich Tamás

Advanced Microcontroller Bus Architecture Az AXI az ARM AMBA szabvány része Advanced Peripheral Bus (APB) Advanced High-performance Bus (AHB) Advanced extensible Interface (AXI) AXI-4, AXI-4 Lite, AXI-4 Stream Részletek: AMBA AXI and ACE Protocol Specification AMBA 4 AXI4-Stream Protocol Specification AXI Coherency Extensions (ACE) Cache koherencia biztosítása Advanced Trace Bus (ATB) 1

Advanced extensible Interface (AXI) Az AXI interfész egységes kapcsolódási felületet nyújt az ARM Cortex és a MicroBlaze processzor alapú beágyazott rendszerek számára AXI-4 Memóriába leképzett Nagyteljesítményű, burst-ös adatátvitelt biztosít AXI-4 Lite Memóriába leképzett Egyszerű, nincs burst-ös atatátvitel AXI-4 Stream Nem memóriába leképzett, FIFO interfész Csak adatok átvitele bust-ös módon 2

AXI Felépítés Öt csatorna Írási cím Írási adat Írási válasz Olvasási cím Olvasási adat Pont-Pont kapcsolat A csatornákon egymástól teljesen független időzítés is lehetséges 3

AXI Jelek (handshaking) Handshake alapú átvitelvezérlés VALID: a forrás tud adatot küldeni READY: a cél tud adatot fogadni Ha az órajel felfutó élénél mindkettő aktív, akkor történik meg egy szó átvitele Hasonlóan működik pl. a PCI busz Minden csatornán saját VALID/READY jelpár Flexibilis funkcionalitás Várakozási állapotok beszúrása Nyugtázás ugyanabban az órajelciklusban 4

AXI Jelek (handshaking) Cél várakoztat (VALID a READY előtt) Forrás várakoztat (READY a VALID előtt) Nyugtázás ugyanazon órajelciklusban 5

AXI Jelek (handshaking) A handshake alapú adatátvitel szabályai a holtpont elkerülése végett: A forrás nem várhat a READY jelzésre, mielőtt aktiválja a VALID jelzést A forrás, ha aktiválta a VALID jelzést, akkor azt nem veheti vissza az aktuális adatátviteli fázis végéig A cél várhat a VALID jelzésre, mielőtt aktiválja a READY jelzést A cél visszaveheti az aktivált READY jelzést, ha a forrás még nem aktiválta a VALID jelzést 6

AXI Jelek (handshaking) Függőségek a csatorna handshake jelek között Egyszeres nyíl A cél jel (amerre mutat) a kiindulási jel (amely felől mutat) előtt vagy után is aktiválható A forrás jel aktiválása nem függhet a cél jel állapotától A cél jel aktiválása viszont függhet a forrás jel állapotától Dupla nyíl A cél jel csak a kiindulási jel után aktiválható Olvasási adatátvitel handshake függőségek 7 Írási adatátvitel handshake függőségek

AXI Jelek (cím csatornák) Az írási és olvasási adatátvitelhez tartozó információk továbbítása ID: tranzakció azonosító Sorrend felcserélhető (pl. memória vezérlőben) ADDR: cím információ LEN: burst méret (LEN[7:0] + 1 ütem) A burst nem lépheti át a 4KB-os címhatárt SIZE: bájtszám egy ütemben (2 SIZE[2:0] ) BURST: a burst típusának jelzése INCR (01): cím növeléses (1 256 ütem) WRAP (10): cím átfordulásos (2,4,8,16 ütem) FIXED (00): nincs cím növelés (1 16 ütem) 8

AXI Jelek (cím csatornák) LOCK: kizárólagos, atomi hozzáférés CACHE: memória típus jelzése PROT: privilegizált hozzáférés jelzése QOS: Quality-of-Service támogatás REGION: több logikai interfész megvalósításának biztosítása a slave oldalon USER: felhasználó által definiált jelek 9

AXI Jelek (burst típusok) INCR (01) Minden ütemhez eggyel nagyobb cím tartozik (1 256 ütem lehet) Normál burst-ös memória elérés esetén FIXED (00) Minden ütemhez ugyanaz a cím tartozik (1 16 ütem lehet) Például FIFO írás vagy olvasás esetén WRAP (10) Minden ütemhez eggyel nagyobb cím tartozik, de a határ elérésekor a cím átfordul a tartomány elejére (2, 4, 8 vagy 16 ütem lehet) Tipikusan CPU cache vezérlők esetén Cacheline méretű burst-ös adatátvitel (a példában a cacheline méret 4 szó) A kért (cache-ből hiányzó) adat egyből továbbítható a feldolgozás helyére Mem. cím: Adat: 4(N-1)+3 4N 4N+1 4N+2 4N+3 3. ütem 4. ütem 1. ütem 2. ütem 4(N+1) Cache miss 10

AXI Jelek (írási adat és válasz csatorna) WDATA: írási adat (Lite: csak 32 bites) WSTRB: bájt engedélyező jelek WLAST: a burst utolsó ütemét jelzi USER: felhasználó által definiált jelek BID: a nyugtázott tranzakcióhoz tartozó azonosító (= AWID) BRESP: nyugta non-posted írás OKAY (00): adatátvitel OK EXOKAY (01): kizárólagos adatátvitel OK SLVERR (10): slave hiba DECERR (11): címdekódolási hiba 11

AXI Jelek (olvasási adat csatorna) RDATA: olvasási adat (Lite: 32 bites) RLAST: a burst utolsó ütemét jelzi RUSER: felhasználó által definiált jelek RID: a nyugtázott tranzakcióhoz tartozó azonosító (= ARID) RRESP: nyugta OKAY (00): adatátvitel OK EXOKAY (01): kizárólagos adatátvitel OK SLVERR (10): slave hiba DECERR (11): címdekódolási hiba 12

AXI Tranzakció példák AXI4 BRAM vezérlő: egyszeres olvasás 13

AXI Tranzakció példák AXI4 BRAM vezérlő: több olvasás egymás után 14

AXI Tranzakció példák AXI4 BRAM vezérlő: egyszeres írás 15

AXI Tranzakció példák AXI4 BRAM vezérlő: több írás egymás után 16

AXI Tranzakció példák AXI4 BRAM vezérlő: burst-ös írás AWSIZE=2 32 bites szavak átvitele AWLEN=3 4 ütem a burst-ös átvitelben AWBURST=INCR a cím minden írás után nő A WLAST jel a burst utolsó ütemében aktív 17

AXI Interconnect, AXI SmartConnect Az AXI Interconnect és az AXI SmartConnect IP-k illesztik egymáshoz az AXI master és az AXI slave perifériákat A slave portokra kapcsolódnak a master IP-k A master portokra kapcsolódnak a slave IP-k Az AXI SmartConnect szorosabban integrálódik a Vivado fejlesztői környezetbe Automatikus master és slave IP konfiguráció Adaptálódik a kapcsolódó IP-khez minimális felhasználói beavatkozással Részletek: AXI Interconnect v2.1 Product Guide (PG059) AXI SmartConnect v1.0 Product Guide (PG247) 18

AXI Interconnect, AXI SmartConnect Szolgáltatások: A slave IP-k címtartományának dekódolása A slave IP-k felé csak a címtartomány méretének megfelelő számú címbit megy Adatméret konverzió Eltérő órajel tartományok illesztése Interconnect: a portokhoz és a crossbar-hoz külön órajel bemenetek tartoznak SmartConnect: magától kitalálja az órajel forrásokat Protokoll konverzió (AXI4, AXI3, AXI4-Lite) Adat FIFO Register slice Pipeline regiszterek a kritikus út csökkentéséhez 19

AXI Interconnect, AXI SmartConnect Felhasználási esetek N master, 1 slave: egyszerű arbiter 1 master, N slave: egyszerű dekóder, nincs arbitráció 20

AXI Interconnect, AXI SmartConnect Felhasználási esetek N master, M slave, osztott elérési mód (egy időben csak egy tranzakció lehet aktív) 21

AXI Interconnect, AXI SmartConnect Felhasználási esetek N master, M slave, crossbar Egy írási és egy olvasási cím arbiter Párhuzamos írási és olvasási adatutak 22

Példa: AXI4-Lite slave interfész Csak egy ütemből álló tranzakciók 32 bites írási és olvasási adatbusz Az írási és olvasási tranzakciók függetlenek Írási állapotgép: cím vétele adat vétele periféria regiszter írása írás nyugtázása Olvasási állapotgép: cím vétele periféria regiszter olvasása az adat elküldése Nem a leghatékonyabb, de könnyen megérthető A handshake szabályok és függőségek biztosan teljesülnek ez esetben 23

Példa: AXI4-Lite slave interfész Blokkvázlat AXI Interconnect AXI WR addr. AXI WR data Írási állapotgép wr_addr byte_en wr_en Funkció AXI WR resp. wr_data AXI RD addr. AXI RD data Olvasási állapotgép rd_addr rd_en rd_data Periféria 24

Példa: AXI4-Lite slave interfész Írási állapotgép Regiszterek wr_addr: N bit wr_data: 32 bit byte_en: 4 bit WRADDR_WAIT AWVALID/ wr_addr=awaddr WRDATA_WAIT WVALID/ wr_data=wdata byte_en=wstrb WRITE ~AWVALID AWREADY=1 ~WVALID WREADY=1 wr_en=1 BREADY 25 WRRESP_SEND ~BREADY BVALID=1 BRESP=OK

Példa: AXI4-Lite slave interfész Olvasási állapotgép Regiszterek rd_addr: N bit RDATA: 32 bit RDADDR_WAIT ARVALID/ rd_addr=araddr READ rd_en=1 RDATA=rd_data ~ARVALID ARREADY=1 ~RREADY RREADY 26 RDDATA_SEND RVALID=1 RRESP=OK

AXI Stream Felépítés Nincs cím, egyirányú adatátvitel (master slave) Az AXI írási adat csatornának feleltethető meg VALID és READY handshake jelek A burst méret nem korlátozott Folyamok összefésülése (merging), adatméret növelés és csökkentés, null bájtok eltávolítása (packing) Ritka, folyamatos, igazított és nem igazított folyamok Adatcsomagok továbbításának támogatása 27

AXI Stream Jelek ACLK: órajel (szükséges) ARESETn: aktív alacsony aszinkron reset jel (szükséges) TVALID: a forrás (master) tud adatot küldeni (szükséges) TREADY: a cél (slave) tud adatot fogadni TDATA[(8N-1):0]: a továbbított adat TSTRB[(N-1):0]: adat vagy pozíció bájt jelzése TKEEP[(N-1):0]: jelzi, hogy a bájt része-e a folyamnak TLAST: az adatcsomag végének jelzése TID: adatfolyam azonosító TDEST: cél azonosító (útvonal választáshoz) TUSER: felhasználó által definiált jelek 28

AXI Stream Jelek (bájt típusok) TKEEP[i]=1, TSTRB[i]=1: adatbájt Az adott bájt érvényes információt tartalmaz Továbbítani kell a forrástól a cél felé TKEEP[i]=1, TSTRB[i]=0: pozíció bájt Az adott bájt az adatbájtok relatív pozícióját határozza meg az adatfolyamban Továbbítani kell a forrástól a cél felé, de mivel csak helykitöltő, így az értéke megváltoztatható TKEEP[i]=0, TSTRB[i]=0: null bájt Az adott bájt semmilyen információt sem hordoz Eltávolítható a folyamból, beszúrható a folyamba TKEEP[i]=0, TSTRB[i]=1: tiltott kombináció 29

AXI Stream Adatfolyam példák 1. Bájt folyam: csak adatbájtok és null bájtok 2. Folyamatos, igazított folyam: csak adatbájtok a csomagokban 3. Folyamatos, nem igazított folyam: csak adatbájtok és pozíció bájtok a csomagok elején és/vagy végén 4. Ritka folyam: csak adatbájtok és pozíció bájtok 1 2 3 4 30

Xilinx AXI Stream IP-k Részletek: AXI4-Stream Infrastructure IP Suite (PG085) AXI4-Stream Broadcaster A bemeneti master folyamot megismétli több (2 16) kimeneti slave folyamon AXI4-Stream Combiner Több (2 16) bemeneti adatfolyam egyesítése egy szélesebb kimeneti adatfolyamban AXI4-Stream Clock Converter Eltérő órajel tartományok illesztését biztosítja AXI4-Stream Data FIFO AXI4-Stream Data Width Converter TDATA méret növelés, csökkentés (1:N, N:1, M:N) 31

Xilinx AXI Stream IP-k AXI4-Stream Register Slice Pipeline regiszterek a kritikus úthossz csökkentéséhez AXI4-Stream Subset Converter Eltérő opcionális jelkészlettel rendelkező AXI Stream interfészek illesztését biztosítja AXI4-Stream Switch Útválasztást biztosít master és slave egységek között AXI4-Stream Interconnect A Broadcaster és a Combiner kivételével a fenti IP-ket foglalja egyetlen konfigurálható egységbe 32