Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

PicoBlaze, MicroBlaze, PowerPC Tomáš Martínek

Podobné prezentace


Prezentace na téma: "PicoBlaze, MicroBlaze, PowerPC Tomáš Martínek"— Transkript prezentace:

1 PicoBlaze, MicroBlaze, PowerPC Tomáš Martínek

2 Motivace Tvorba systémů uvnitř FPGA čipu Uvnitř FPGA lze vytvořit komplexní systém složený z mikroprocesorů, specializovaných výpočetních jednotek a propojení jednotlivých částí Umístění systému na jeden čip vede na jednodušší návrh plošného spoje a odpadají problémy s propojením jednotlivých obvodů na desce plošného spoje – může také vést na nižší cenu systému Chyby vzniklé při návrhu systému lze jednoduše odstranit nahráním nové konfigurace FPGA Spojení FPGA hradlového pole s procesorem Procesor je vhodný pro řízení úloh, které mají složitější sekvenční charakter. Funkce procesoru je dána jeho programem a lze ji snadno modifikovat. Procesor má ale omezený výkon a jeho činnost má sekvenční charakter Specializované jednotky vytvořené v FPGA jsou vhodné pro implementaci náročných výpočtů s vysokým stupněm paralelismu. Komplikované sekvenční řízení je ale náročné na implementaci. Spojením mikroprocesoru s FPGA lze efektivně řešit vysoce náročné paralelní výpočty

3 Obsah PicoBlaze Základní informace Architektura procesoru Instrukční sada Přerušovací systém Vstupně/Výstupní rozhraní Příklad použití procesoru MicroBlaze PowerPC

4 Základní informace 8-bitový procesor Zabírá pouze 96 SLICEs (FPGA hradlové pole obsahují až desítky tisíc SLICEs) Pracovní frekvence 100 až 200MHz podle použitého FPGA hradlového pole Každá instrukce je zpracována ve dvou taktech Výkonnost 50 až 100 MIPS, zahrnuje pouze operace s pevnou řádovou čárkou Jednoduchá komunikace s ostatními zařízeními na čipu skrze 256 vstupně/výstupních portů Obsahuje řadič přerušení s podporou jednoho externího přerušení Zdrojový kód v jazyce VHDL, kompilátor KPCM3 a simulátor je volně šiřitelný

5 Obsah PicoBlaze Základní informace Architektura procesoru Instrukční sada Přerušovací systém Vstupně/Výstupní rozhraní Příklad použití procesoru MicroBlaze PowerPC

6 Architektura procesoru Blokové schéma procesoru

7 Architektura procesoru Paměť programu implementována pomocí jedné BlockRAM paměti velikost je 1K instrukcí (nelze dále rozšiřovat) každá instrukce má velikost 18 bitů (využívají se paritní bity BlockRAM) V základní konfiguraci je paměť programu pouze pro čtení a její obsah je nahrán současně s nahráním konfigurace FPGA

8 Architektura procesoru Lze ale i zvolit způsob zapojení, kdy je možné měnit program za běhu například připojením druhého portu na JTAG nebo UART rozhraní Také je možné například vyžít dvouportové BlockRAM a sdílet jednu paměť programu pro dva procesory

9 Architektura procesoru Registrové pole 16 registrů o velikosti 8 bitů pro obecné použití (žádný z nich není použit pro speciální účel) Zásobník pro volání podprogramu 31 položek (jedna položka je rezervována pro případ přerušení), pokud přeteče, začnou se položky přepisovat Datová paměť (Scratchpad Memory) paměť o pevné velikosti 64 bajtů podporuje přímé i nepřímé adresování (pomocí registru) prostřednictvím instrukcí FETCH/STORE vhodné pro odkládaní dat, implementaci zásobníku, vyhledávací tabulky apod.

10 Architektura procesoru Aritmeticko-logická jednotka (ALU) 8-bitové operace pouze s pevnou řádovou čárkou Obsahuje příznaky Zero a Carry

11 Obsah PicoBlaze Základní informace Architektura procesoru Instrukční sada Přerušovací systém Vstupně/Výstupní rozhraní Příklad použití procesoru MicroBlaze PowerPC

12 Instrukční sada Aritmetické instrukce ADD, SUB, ADDCY, SUBCY Pomocí instrukcí s přenosem lze jednoduše realizovat součet/rozdíl více-bajtových položek Není dostupná vestavěná násobička resp. dělička, násobení resp. dělení se musí provádět v cyklu (cca 57 resp. 120 cyklů) Násobení lze realizovat také připojením externí vestavěné násobičky MULT18 skrze vstupně/výstupní porty

13 Instrukční sada Logické instrukce AND, OR, XOR NOT lze realizovat pomocí instrukce XOR, Nastavování/nulování bitů lze realizovat pomocí OR/AND instrukcí Posun a rotace SL0, SL1, SLA, SLX, RL, SR0, SR1, SRA, SRX, RR posun vlevo/vpravo, nasouvání Carry, MSB, LSB, konstanty, rotace vlevo/vpravo Instrukce skoku JUMP, JUMP C, JUMP NC, JUMP Z, JUMP NZ skoky přímé/nepřímé, na základě Carry/Zero, pozitivní/negativní Instrukce pro porovnání COMPARE – test na rovnost (příznak Z), test na “<“ (příznak C) TEST – test na nulu (příznak Z), sudá parita (příznak C)

14 Instrukční sada Instrukce pro přesun dat FETCH, STORE – mezi registrovým polem a datovou pamětí LOAD – analogie instrukce MOV u běžných procesorů INPUT, OUTPUT – mezi registrovým polem a vstupně- výstupními porty

15 Instrukční sada Instrukce pro volání podprogramu CALL – volání podprogramu RETURN [C, NC, Z, NZ] – podmíněný návrat z podprogramu Instrukce pro podporu přerušení CALLI – volání obsluhy přerušení, na zásobník se navíc uloží stav Zero a Carry příznaku RETTURNI [ENABLE/DISABLE] – návrat z obsluhy přerušení, přídavné parametry definují, zda se má povolit/zakázat příchod následujícího přerušení ENABLE INTERRUPT DISABLE INTERRUPT

16 Obsah PicoBlaze Základní informace Architektura procesoru Instrukční sada Přerušovací systém Vstupně/Výstupní rozhraní Příklad použití procesoru MicroBlaze PowerPC

17 Přerušovací systém Podpora pouze jednoho vnějšího přerušení, pro podporu více přerušení je potřeba na vstupu jednotlivé signály sdružovat a uvnitř obsluhy přerušení pak dále rozlišit, o které přerušení se jedná Po příchodu přerušení odpoví procesor vysláním pulsu na signálu INTERRUPT_ACK, který muže sloužit například pro nulování RS klopného obvodu Užitečné pro komunikaci s vnějšími zařízeními na FPGA čipu nebo i mimo něj - například obsluha stisknutí klávesy z připojené externí klávesnice apod.

18 Přerušovací systém Průběh obsluhy přerušení 1. Příchod přerušení musí být povolen instrukcí ENABLE INTERRUPT 2. V okamžiku vyvolání přerušení se dokončí aktuálně rozpracovaná instrukce a na zásobník se uloží návratová adresa a Z, C příznaky. 3. Do programového čítače se vždy vnutí adresa 3FF (poslední položka v paměti programu) 4. Na této adrese je obvykle skok na adresu obslužné rutiny 5. Provede se obsluha přerušení 6. Provede se návrat pomocí instrukce RETURNI

19 Obsah PicoBlaze Základní informace Architektura procesoru Instrukční sada Přerušovací systém Vstupně/Výstupní rozhraní Příklad použití procesoru MicroBlaze PowerPC

20 Vstupně/výstupní porty Až 256 portů, které se rozlišují pomocí signálu PORT_ID[7:0] Vhodné pro komunikaci s zařízeními mimo procesor Vstupní porty Při vykonávání instrukce INPUT se nastaví na výstupu procesoru signál READ_STROBE a na PORT_ID se vystaví adresa čteného porty Data se načtou ze vstupu PORT_IN, který je multiplexován při použití více portů (PORT_ID řídí vstupní multiplexor)

21 Vstupně/výstupní porty Výstupní porty Při vykonávání instrukce OUTPUT se nastaví na výstupu procesoru signál WRITE_STROBE a na PORT_ID se vystaví adresa portu, na který se zapisuje, zapisovaná data se vystaví na výstup PORT_OUT Při použití více výstupních portů je potřeba použít dekodér na výstupu, který rozlišuje komu zapisovaná data náleží

22 Obsah PicoBlaze Základní informace Architektura procesoru Instrukční sada Přerušovací systém Vstupně/Výstupní rozhraní Příklad použití procesoru MicroBlaze PowerPC

23 Použití procesoru – instance ve VHDL Zdrojový kód procesoru v jazyce VHDL nebo Verilog je volně dostupný na WWW stránkách firmy Xilinx Procesor lze jednoduše instancovat v jazyce VHDL jako komponentu KCPSM3 K procesoru je připojena paměť programu (viz. deklarace v pravé části) Zdrojový VHDL kód paměti programu včetně jejího obsahu je vygenerován kompilátorem na základě kódu v assembleru procesoru PicoBlaze Příklad VHDL: Deklarace procesoru component KCPSM3 port ( address : out std_logic_vector( 9 downto 0); instruction : in std_logic_vector(17 downto 0); port_id : out std_logic_vector( 7 downto 0); write_strobe : out std_logic; out_port : out std_logic_vector( 7 downto 0); read_strobe : out std_logic; in_port : in std_logic_vector( 7 downto 0); interrupt : in std_logic; interrupt_ack : out std_logic; reset : in std_logic; clk : in std_logic ); end component; Příklad VHDL: Deklarace paměti programu component prog_rom port ( address : in std_logic_vector( 9 downto 0); instruction : out std_logic_vector(17 downto 0); clk : in std_logic ); end component;

24 Použití procesoru – kompilátor KCPSM3 Vstup: zdrojový soubor v assembleru.psm Výstup: zdrojový soubor ve VHDL s entitou a obsahem pamětí programu alternativní obsah paměti programu v decimálním nebo hexadecimálním tvaru ladící informace

25 Použití procesoru – simulátor pBlazIDE Simulátor pBlazIDE je volně šiřitelný, dostupný na adrese: pBlazeIDE.html Podporuje: krokování, breakpointy, snadnou změnu obsahu vnitřních registrů nebo obsahu pamětí, simulace I/O portů skrze načítání/ukládání dat z/do textových souborů Ideální pro rychlý vývoj aplikací (Modelsim není pro lazení instrukčního programu vhodný) Syntax assembleru v prostření pBlazeIDE se liší od původní definice, ale lze použít Import do této nové syntaxe

26 Obsah PicoBlaze MicroBlaze Základní vlastnosti Architektura procesoru Instrukční sada Přerušovací systém Rozhraní procesoru PowerPC

27 Základní vlastnosti 32-bitový procesor s podporou pro zpracování dat o velikosti 32, 16 nebo 8 bitů Zahrnuje podporu pro instrukční a datovou cache Procesor obsahuje množství uživatelem volitelných částí, například: FPU jednotku, barrel shifter, násobičku, děličku, podporu pro instrukční/datovou cache V závislosti na zvolených částech zabírá 900 až 2600 LUTs (FPGA hradlové pole obsahují až desítky tisíc LUTs) Pracovní frekvence 100 až 200 MHz podle použitého FPGA čipu Výkonnost 92 až 166 DMIPS Programy pro procesor MicroBlaze lze psát v jazyce C a kompilovat a ladit s použitím GNU nástrojů

28 Obsah PicoBlaze MicroBlaze Základní vlastnosti Architektura procesoru Instrukční sada Přerušovací systém Rozhraní procesoru PowerPC

29 Architektura procesoru Blokové schéma:

30 Architektura procesoru Registry procesoru 32 registrů pro obecné použití, některé z těchto registrů mají speciální význam R0 – má vždy hodnotu 0 R14 – použit pro návratovou adresu z přerušení R16 – použit pro návratovou adresu z chyby R17 – použit pro návratovou adresu z vyjímky 5 speciálních registrů, které nejsou přístupné programem, ale jejich obsah lze nahrát do registrů pro obecné použití pomocí instrukcí MFS/MTS PC – Program Counter MSW – Machine Status Word (obsahuje Carry, Interrupt Enable, Exception Enable, Division by Zero apod.) EAR – Exeption Address Register ESR – Exeption Status Register FSR – Floating Point Status Register

31 Architektura procesoru Zřetězené zpracovaní Probíhá ve třech stupních: Fetch, Decode, Execute Většina instrukcí potřebuje ve fázi vykonávaní 1 takt hodin, výjimečně 3 takty Zpoždění mohou způsobovat např. čtení dat nebo instrukcí z vnějších pamětí. Z toho důvodu nabízí MicroBlaze implementaci prefetch bufferu - předčítání instrukcí, redukce zpoždění Skokové instrukce se zpravidla zpracovávají 3 takty, neboť při provedení skoku je nutné zrušit rozpracované instrukce ve stupních Fetch a Decode. Z tohoto důvodu MB podporuje tzv. zpožděné skoky, kdy je povoleno dokončení instrukce hned za instrukcí skoku

32 Architektura procesoru Paměťový prostor (paměť programu a dat) Hardwardská architektura, 32 bitů, až 4GB paměti Podpora instrukcí 32, 16 a 8 bitů, přístupy musí být zarovnané MB nerozlišuje prostor pro paměť a I/O Pro připojení instrukční a datové paměti podporuje MB 3 typy paměťových rozhraní: Local Memory Bus (LMB) – přepokládá připojení lokálních BlockRAM paměti k procesoru, jednoduchý protokol On-chip Peripheal Bus (OPB) – standard od firmy IBM pro připojení komponent na čipu, složitější protokol Xilinx Cache-Link (XCL) – rozhraní zaměřené pro načítání dat do cache pamětí

33 Architektura procesoru Instrukční cache Podporu pro načítání instrukcí do cache lze zapnout/vypnout podle požadavku uživatele (je vhodné použít, pokud se například program načítá z externí paměti programu připojené k FPGA. Pro uložení instrukcí do cache paměti lze použít rozhraní OPB (IBM) nebo CacheLink (Xilinx) Uživatel si může paměť rozdělit na část, kterou lze uložit do cache a část, kterou nelze uložit do cache. Dále se může nastavit velikost cache paměti 2-64kB a automaticky se vygeneruje příslušný obvod složený z BlockRAM pamětí Používá se jednocestná cache (viz. obrázek)

34 Architektura procesoru Příklad: Pro zvolenou oblast cache-ovatelné paměti o velikosti 64kB a velikost cache paměti 4kB se použije spodních 12 bitů adresy instrukce (10 bitů pro adresaci slova, 2 bity nevyužity) pro adresaci cache paměti a horních 4 bity se vyčlení pro TAG. Z pohledu zdrojů se využijí 2xBRAM paměti pro „Instruction BRAM“ a 1xBRAM pro „Tag BRAM“ Algoritmus pro načítání dat do cache je velmi jednoduchý: (1) pokud je zadaná položka v cache, použije se (2) v opačném případě se musí načíst z externí paměti Podle typu rozhraní (OPB, XCL) se načtou při výpadku cache až 4 nová slova Datová cache Pracuje podobně jako instrukční cache Při zápisu dat se navíc používá režim Write-Through, tedy data se při zápisu do cache současně zapíší také do paměti, aby byla zajištěna koherence dat

35 Architektura procesoru Floating Point Unit (FPU) Založena na standardu IEEE 754 Podporuje pouze jednoduchou přesnost (velikost slova je 32-bitů), včetně definice nekonečna, NaN a nuly Implementuje operace: sčítání, odčítání, násobení, dělení a porovnání Při operacích se používají běžné registry, není potřeba speciálních FPU registrů Formát slova:

36 Obsah PicoBlaze MicroBlaze Základní vlastnosti Architektura procesoru Instrukční sada Přerušovací systém Rozhraní procesoru PowerPC

37 Instrukční sada Instrukce mají velikost 32 bitů Rozlišují se dva typy instrukčních slov Typ A: Instrukce s registrovými operandy Typ B: Instrukce s přímím operandem Pro instrukce s přímím operandem je operand tvořen pouze 16- ti bity. Rozšíření na 32-bitový operand je možné dvěma způsoby: 1. Instrukce doplní horních 16 bitů nulami nebo rozšíří znaménko, 2. Před instrukcí s přímím operandem se použije speciální instrukce IMM, která do pomocného registru načte horních 16 bitů, které se pak použijí ve spojení s následující instrukcí

38 Instrukční sada Aritmetické instrukce ADD, RSUB, DIV, MUL, CMP Logické instrukce AND, ANDN, OR, XOR Posuny a rotace BS (Barell Shifter), SRA, SRC, SRL Skokové instrukce BR, BEQ, BNE, BGE, BGT, BLE, BLT Floating Point instrukce FADD, FRSUB, FMUL, FDIV, FCMP Instrukce pro přesun dat GET, PUT – čtení/zápis do Fast Simplex Link rozhraní L[B,H,W], S[B,H,W] – Load/Store (Byte, HalfWord, Word) MFS, MTS – přesun ze speciálních registrů do registrového pole Instrukce pro návrat z podprogramu RT[BR,ID,ED,SD] - návrat z chyby, přerušení a podprogramu

39 Obsah PicoBlaze MicroBlaze Základní vlastnosti Architektura procesoru Instrukční sada Přerušovací systém Rozhraní procesoru PowerPC

40 Přerušovací systém MB podporuje následující hierarchii přerušení: 1. Reset (vyvoláno nastavením externího signálu) 2. Hardwarové výjimky (např. neplatná instrukce, nezarovnaný přístup, dělení nulou, výjimka od FPU, apod, návratová adresa je uložena v R17) 3. Nemaskovatelné chyby 4. Chyby (vyvoláno nastavením externího signálu procesoru, návratová adresa je v R16) 5. Přerušení (MB podporuje jedno externí přerušení, může být povoleno/zakázáno, návratová adresa je v R14) 6. Uživatelský vektor přerušení (vyvoláno instrukcí BRAILD) Tabulka vektorů těchto šesti přerušení je umístěna na začátku instrukční paměti a obsahu skokové instrukce na příslušné rutiny obsluh přerušení Při RESETu procesoru se implicitně začne provádět program od adresy 0x0

41 Obsah PicoBlaze MicroBlaze Základní vlastnosti Architektura procesoru Instrukční sada Přerušovací systém Rozhraní procesoru PowerPC

42 Rozhraní procesoru MB je podporuje následující rozhraní Local Memory Bus (LMB) On-Chip Peripheral Bus (OPB) Fast Simplex Link (FSL) Xilinx Cache-Line (XCL)

43 Local Memory Bus (LMB) rozhraní Velmi jednoduché rozhraní pro připojení BlockRAM pamětí Protokol při zápisu / čtení: Nejprve se vystaví adresa společně se signálem Address Strobe Dále se vystaví signál Write_Strobe nebo Read_Strobe v případě čtení. V případě zápisu se vystaví data. V případě čtení se data očekávají s příchodem signálu Ready Podpora Byte Enable – lze zapisovat jednotlivé bajty Číst lze v každém taktu jedno slovo, zapisovat lze ale pouze rychlostí jedno slovo za dva takty Obr.: Zápisová transakce Obr.: Čtecí transakce

44 On-chip Peripheral Bus (OPB) rozhraní Standard od firmy IBM, adresová sběrnice o velikosti až 64 bitů, datová sběrnice o velikosti 32 nebo 64 bitů (podporuje také přístupy pro 8 nebo 16 bitů) Plně synchronní sběrnice, podporuje Master-Slave komunikaci. Masterů může být připojeno na sběrnici více, přidělení mezi Mastery řeší centrální arbiter, MB se chová jako Master Složitější protokol: Při komunikaci musí nejprve Master požádat o sběrnici, arbitr sběrnici přidělí a poté probíhá operace čtení / zápisu Příklad: zapojení MB

45 Fast Simplex Link (FSL) rozhraní MB podporuje speciální rozhraní FSL, které lze využít pro čtení / zápis hodnot mezi registrovým polem a externím zařízením např. uživatelským koprocesorem (viz obrázek) Čtecí a zápisové rozhraní je ve velice podobné těm, které se používá u FIFO komponent. Při zápisu se rozlišují datová nebo řídící slova pomocí signálu CONTROL Zápisové rozhraní tvoří signály: WRITE, DATA(31:0), CONTROL, FULL Čtecí rozhraní tvoří signály: READ, DATA(31:0), CONTROL, EXISTS Zápisové / Čtecí operace se provádějí instrukcí PUT / GET

46 Fast Simplex Link (FSL) rozhraní Podporuje blokující a neblokující režim Při blokujícím režimu je procesor pozastaven v případě nedostupných dat nebo zaplněné výstupní linky Při neblokujícím procesor zapisuje/čte bez ohledu na FULL a Exists signály a pokud nejsou data k dispozici nastaví příznak Carry Pro čtení i zápis jsou potřeba 2 hodinové takty Podporuje až 8 FSL linek

47 Xilinx Cache-Link (XCL) rozhraní Lze efektivně použít pro nahrávání dat z externích pamětí do cache Rozhraní XCL odpovídá přesně rozhraní FSL s tím, že se předpokládá, že FSL kanály mohou byt připojeny mezi řadičem paměti a MB a nebo mohou být implementovány uvnitř řadiče paměti (viz. obrázek) Při načítání instrukcí nebo data z externích pamětí se přečtou vždy čtyři slova Zápis funguje po slovech v režimu Write Through, je nutné poslat za sebou nejprve adresu a poté data

48 Podpůrné nástroje Ladění přímo v hardware Procesor lze ladit připojením MB ke komponentě Xilinx Microprocesor Debug Tool (MDM), která je dále připojena k JTAG rozhraní Podpora pro lazení zahrnuje: konfigurovatelný počet hardwarových breakpointu, libovolný počet softwarových breakepointů externí řízení procesoru jako je: zastavení, reset nebo krokování čtení a zápis do registrového pole a speciálních registrů procesoru (kromě zápisu do ESR a EAR) zápis do instrukční a datové cache podpora více procesoru

49 Obsah PicoBlaze MicroBlaze PowerPC Základní vlastnosti Architektura procesoru Instrukční sada Rozhraní procesoru

50 Základní vlastnosti Vestavěný 32-bitový procesor PowerPC 405 dostupný v FPGA čipech s technologií Virtex II Pro nebo Virtex 4 Datová sběrnice 32 bitů, adresová sběrnice 64-bitů (načítají se dvě instrukce v jednom taktu) Procesor nepodporuje 64-bitové operace a Floating Point operace Pracovní frekvence dosahuje až 400 MHz podle typu FPGA 1-2 PowerPC procesory na čipech s technologií Virtex II Pro Jedná se o variantu od firmy IBM určenou pro vestavěné aplikace. Splňuje specifikaci UISA (User Instruction Set Architecture) a částečně také splňuje i ostatní specifikace (VEA – Virtual Enviroment Architectrue, OEA – Operating System Architecture) Podpora uživatelského a chráněného režimu (pro operační systém) procesoru Podpora virtuální paměťového prostoru (režim stránkování)

51 Obsah PicoBlaze MicroBlaze PowerPC Základní vlastnosti Architektura procesoru Instrukční sada Rozhraní procesoru

52 Architektura procesoru Blokové schéma:

53 Architektura procesoru Základní informace: 32-bitová architektura typu RISC Zřetězené zpracování probíhá v pěti stupních Instrukční a datová cache Datová i instrukční cache mají velikost 16kB Jedná se o dvoucestné cache paměti Každá cesta obsahuje 256 řádků po 32 bajtech (8 slov) Obsluha probíhá pomocí ICU (Instruction Cache Unit) a DCU (Data Cache Unit) jednotek, které načítají data z externích pamětí skrze sběrnici PLB (Processor Local Bus) ICU je schopna zasílat 1-2 instrukce do dekódování jednotky v každém taktu, nepoužité instrukce jsou zahozeny (pro skoky) DCU pracuje při zápisu v režimu Write-through nebo Write-back (lze konfigurovat ze strany uživatele)

54 Architektura procesoru Struktura cache pamětí

55 Architektura procesoru Jednotka pro stupně Fetch a Decode Cílem této jednotky je zachovat plynulý tok instrukcí do jednotky provádění (Execution Unit) Součástí jednotky je fronta předzpracovaných instrukcí, do které je možně zasílat až dvě instrukce v jednom taktu. Celkem má fronta tři položky: dvě předzpracované a jednu dekódovanou pro odeslání do EU Uvnitř jednotky je implementována statická predikce skoků: pro skoky s negativním podmínkou se předpokládá, že se provedou (způsob predikce lze změnit v assembleru nebo nastavením v době kompilace) Pokud skončí predikce neúspěšně, odstraní jednotka instrukce načtené v frontě předzpracovaných instrukcí

56 Architektura procesoru Jednotka provádění instrukcí (Execution Unit) Jednotka obsahuje registrové pole 32 x 32-bitových registrů pro obecné použití, aritmeticko-logickou jednotku a jednotku MAC (multiply and acumulate) operaci využívanou v DSP aplikacích Registrové pole obsahuje celkem 3 čtecí porty a 2 zápisové porty 2 čtecí a 1 zápisový port je určen pro běžné provádění aritmeticko-logických instrukcí, zbývající 1 čtecí a 1 zápisový port je použit pro operace Load/Store pro načítání/zápis dat oba tyto typy operací lze pak provádět paralelně

57 Architektura procesoru Memory Management Unit (MMU) PPC podporuje paměťový prostor až o velikosti 4GB Zajišťuje ochranu tohoto prostoru tzn. jednotlivé aplikace si nemohou vzájemně zasahovat do paměťového prostoru, stejně tak nemohou zasahovat do prostoru operačního systému Pro efektivní práci s paměťovým prostorem podporuje režim stránkování, kdy se provádí překlad mezi logickou a fyzickou adresou. Tento stránkovací režim lze nezávisle aktivovat pro paměť instrukční a paměť dat Podporuje následující velikosti stránek: 1 KB, 4 KB, 16 KB, 64 KB, 256 KB, 1 MB, 4 MB a 16 MB Pro rychlou překlad adres obsahuje PPC plně asociativní cache paměť o velikosti 64 položek. Pro zvýšení výkonu lze některé z položek trvale rezervovat pro často používané oblasti paměti

58 Architektura procesoru Schéma překladu logické adresy na fyzickou

59 Obsah PicoBlaze MicroBlaze PowerPC Základní vlastnosti Architektura procesoru Instrukční sada Rozhraní procesoru

60 Instrukční sada Aritmetické operace ADD, SUB, MUL, DIV, CMP (22 instrukcí) Multiply and Accumulate operace MAC (18 instrukcí) Logické operace AND, NAND, OR, NOR, XOR, EQV (17 instrukcí) Instrukce posunu a rotace RLW, SR (7 instrukcí) Instrukce pro načítání/zápis dat ST[B,H,W], L[B,H,W] (38 instrukcí) Instrukce skoku B, BC, BCCTR, BCRL (4 instrukce) Podmíněné logické instrukce CRAND, CROR, CRXOR, atd. (9 instrukcí) Instrukce pro řízení procesoru (12 instrukcí) Instrukce pro řízení cache paměti (13 instrukcí) Instrukce pro stránkování (5 instrukcí)

61 Obsah PicoBlaze MicroBlaze PowerPC Základní vlastnosti Architektura procesoru Instrukční sada Rozhraní procesoru

62 Připojení jednotlivých komponent k PowerPC procesoru vychází ze specifikace CoreConnect od firmy IBM On-chip Memory (OCM) Processor Local Bus (PLB) On-chip Peripheral Bus (OPB) Device Control Register Bus (DCR)

63 Rozhraní OCM Součástí procesoru jsou dva OCM kontroléry (I-OCM, D- OCM), které umožňují napojit jako instrukční a datovou paměť BlockRAM paměťové moduly Umožňuje snadné připojení paměti programu a dat (pro jednoduché aplikace) a zajistit pevnou latenci při načítaní dat/instrukcí PowerPC vyčleňuje pro každý OCM kontrolér 16MB paměťového prostoru, přímo z OCM lze adresovat 64K a 128K adresového prostoru

64 Rozhraní OCM Hodinový signál procesorového jádra vzhledem k hodinovému signálu BlockRAM pamětí může dosahovat až poměru 1:8 Pro datovou paměť je vyčleněna 32-bitová sběrnice, jeden port je připojen na OCM kontrolér druhý port může být použit ze strany FPGA Pro instrukční paměť je vyčleněna 64-bitová sběrnice, jeden port je vyčleněn pro načtení dvojice instrukcí druhý port je určen pro ladící účely nahrání obsahu instrukční paměti se předpokládá buď v době nahrávání konfigurace FPGA nebo skrze DCR sběrnici

65 Rozhraní PLB, OPB a DCR Processor Local Bus (PLB) Jedná se vysokorychlostní sběrnici (až 183MHz) pro připojení rychlých komponent komunikujících s procesorovým jádrem nebo pro připojení paměťových řadičů pro načítání dat do instrukční a datové cache Plně synchronní, až 8 Masterů podpora blokových přenosů, rozdělení transakcí, DMA přenosy On-chip Peripheral Bus (OPB) Určena pro pomalejší periférie, od PLB je oddělena bridgem, podporuje více Masterů Device Control Register Bus (DCR) Jedná se o jednoduchou sběrnici určenou pro vyčítání a řízení stavových a konfiguračních registrů Adresová sběrnice má 10 bitů, datová sběrnice má 32 bitů DCR sběrnice je samostatná sběrnice (není mapována do adresového prostoru) jednak, aby nespotřebovávala výkon PLB sběrnic, ale také kvůli bezpečnosti

66 Odkazy Xilinx: PicoBlaze 8-bit Embedded Microcontroller User Guide, June, 2004 Xilinx: MicroBlaze Microcontroller Reference Design User Guide v1.5, September, 2005 Xilinx: MicroBlaze Processor Reference Guide, April, 2005 Xilinx: PowerPC Processor Reference Guide, September, 2003 Xilinx: PowerPC PowerPC 405 Processor Block Reference Guide, July, 2005 IBM: The CoreConnect™ Bus Architecture, July, 1999

67 Konec Děkuji za pozornost


Stáhnout ppt "PicoBlaze, MicroBlaze, PowerPC Tomáš Martínek"

Podobné prezentace


Reklamy Google