PicoBlaze, MicroBlaze, PowerPC

Slides:



Advertisements
Podobné prezentace
HRADLOVÁ POLE REKONFIGUROVATELNÁ ZA PROVOZU ZAŘÍZENÍ Soběslav Valach Ústav automatizace a měřicí techniky, FEKT, VUT Brno, Czech Republic.
Advertisements

Na velikosti (ne)záleží aneb Úvod do programování jednočipů
PEVNÝ DISK POČÍTAČE.
Mikroprocesory Intel Obr. 1.
Základy IT Tomáš Sládek
Zásobník (LiFo) Fronta (FiFo)
ALTERA Cyclone II 4608 – LE až 1152 Kbitů RAM konfigurace pomocí sériového rozhraní podpora více I/O standardů až 4 PLL až 16 globálních hodin podpora.
Otázky k absolutoriu HW 1 - 5
Procesory Filip Skulník.
Tato prezentace byla vytvořena
Základy mikroprocesorové techniky
16 - Binární logika Logické operace v dvouhodnotové algebře. Přípustné hodnoty proměnných jsou teda pouze logická 0 (FALSE - nepravdivý) a logická 1 (TRUE.
Výukový program: Mechanik - elektrotechnik Název programu: Číslicová technika - mikroprocesory III. ročník Mikrořadiče Vypracoval : Vlastimil Vlček Projekt.
Informatika I 7.a 8. hodina 4. týden.
Václav Bartoněk, 6. G MěVG Klobouky u Brna
Obchodní akademie, Ostrava-Poruba, příspěvková organizace Vzdělávací materiál/DUM VY_32_INOVACE_02A13 Autor Ing. Jiří Kalousek Období vytvoření duben 2014.
Architektura a vývoj PC 2.
Základy mikroprocesorové techniky
Nejsložitější integrovaný obvod
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Paměťové obvody a vývoj mikroprocesoru
Tato prezentace byla vytvořena
Výrok „Počítač je pouze tak inteligentní jako jeho uživatel.“ (Radek Lochman, dnes)
= monolitický integrovaný obvod obsahující kompletní mikropočítač
Rozdělení registrů.
Procesory.
Informatika / …o počítači (základní pojmy, jednoduché představy) 2006.
Přehled a vývoj mikroprocesorů
Popis mikroprocesoru David Rozlílek ME4B.
Provedení logických obvodů
Von Neumannovo schéma.
Tato prezentace byla vytvořena
Zuzana Máslová Zuzana Máslová GIO Semily GIO Semily Nad Špejcharem Semily Nad Špejcharem Semily / /2008 Informace.
Jaroslav Krahula.  OSC - ? ROM - ? RAM - ? Č/Č - ? CPU - ? ŘS - ? SP - ? LPT -?
Tomáš Martínek Technologie FPGA Tomáš Martínek
CZ.1.07/1.4.00/ VY_32_INOVACE_152_IT7 Výukový materiál zpracovaný v rámci projektu Vzdělávací oblast: Informační a komunikační technologie Předmět:Informatika.
Hardware.
PROCESORY.
Přehled registrů Střední odborná škola Otrokovice Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Miloš Zatloukal.
Marek Malík a František Černý, ME4A, 2012
Procesor Renesas H8S/2633F.
Výrok „Vypadá to, že jsme narazili na hranici toho, čeho je možné dosáhnout s počítačovými technologiemi. Člověk by si ale měl dávat pozor na takováto.
Univerzita třetího věku kurz Znalci Hardware 1.
Mikroprocesor.
ALTERA Stratix – LE až 7427 Kbitů RAM tři bloky RAM pamětí rychlé DSP bloky až 12 PLL (4+8 rychlých) až 16 globálních hodin a 22 zdrojů podpora.
Poloviční a úplná sčítačka
Procesory.
Instrukce procesoru.
Číslo projektu CZ.1.07/1.5.00/ Název školy Gymnázium Česká a Olympijských nadějí, České Budějovice, Česká 64 Název materiálu VY_32_INOVACE_IVT_1_KOT_04_PROCESOR.
Multiprocesorové systémy. Multiprocesorové systémy vznikly z důvodu zvýšení výkonnosti počítačů, protože jednoprocesorové systémy svým výkonem již přestaly.
Technika počítačů 3. Mikroprocesory © Milan Keršlágerhttp:// Obsah: ●
John von Neumannova koncepce. John von Neumann  Narozen 28. prosince 1903 Budapešť Rakousko-Uhersko  Zemřel 8. února 1957 Spojené státy americké.
Orbis pictus 21. století Instrukční soubor 2
Název školy: Střední odborná škola stavební Karlovy Vary Sabinovo náměstí 16, Karlovy Vary Autor: Ing. Hana Šmídová Název materiálu: VY_32_INOVACE_10_NEUMANN_S1.
ZŠ Brno, Řehořova 3 S počítačem snadno a rychle Informatika 7. ročník III
Programování mikropočítačů Platforma Arduino
DIGITÁLNÍ UČEBNÍ MATERIÁL
Financováno z ESF a státního rozpočtu ČR.
ALU Aritmeticko-logická jednotka
Aritmetickologická jednotka
Výukový materiál zpracován v rámci projektu
Výukový materiál zpracován v rámci projektu
Petr Fodor.
MIKROPROCESOROVÁ TECHNIKA
Jednočipové počítače – instrukční sada
Číslicová technika.
1. ročník oboru Mechanik opravář motorových vozidel
Mikropočítač Soubor instrukcí
Výukový materiál zpracován v rámci projektu
Výukový materiál zpracován v rámci projektu
Transkript prezentace:

PicoBlaze, MicroBlaze, PowerPC Tomáš Martínek martinto@fit.vutbr.cz

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

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

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ý

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

Architektura procesoru Blokové schéma procesoru

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

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

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.

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

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

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

Instrukční sada Logické instrukce Posun a rotace Instrukce skoku 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)

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

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

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

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.

Přerušovací systém Průběh obsluhy přerušení Příchod přerušení musí být povolen instrukcí ENABLE INTERRUPT 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. Do programového čítače se vždy vnutí adresa 3FF (poslední položka v paměti programu) Na této adrese je obvykle skok na adresu obslužné rutiny Provede se obsluha přerušení Provede se návrat pomocí instrukce RETURNI

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

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)

Vstupně/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ží

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

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 address : in std_logic_vector( 9 downto 0); instruction : out std_logic_vector(17 downto 0);

Použití procesoru – kompilátor KCPSM3 Vstup: zdrojový soubor v assembleru <filename>.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

Použití procesoru – simulátor pBlazIDE Simulátor pBlazIDE je volně šiřitelný, dostupný na adrese: http://www.mediatronix.com/ 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

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

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ů

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

Architektura procesoru Blokové schéma:

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

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

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í

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)

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

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:

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

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: Instrukce doplní horních 16 bitů nulami nebo rozšíří znaménko, 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í

Instrukční sada Aritmetické instrukce Logické 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

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

Přerušovací systém MB podporuje následující hierarchii přerušení: Reset (vyvoláno nastavením externího signálu) 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) Nemaskovatelné chyby Chyby (vyvoláno nastavením externího signálu procesoru, návratová adresa je v R16) Přerušení (MB podporuje jedno externí přerušení, může být povoleno/zakázáno, návratová adresa je v R14) 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

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

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)

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

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

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

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

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

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

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

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í)

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

Architektura procesoru Blokové schéma:

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)

Architektura procesoru Struktura cache pamětí

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í

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ě

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

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

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

Instrukční sada Aritmetické operace Multiply and Accumulate 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í)

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

Rozhraní procesoru 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)

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

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

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

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

Konec Děkuji za pozornost