Picoblaze microblaze powerpc
This presentation is the property of its rightful owner.
Sponsored Links
1 / 67

PicoBlaze, MicroBlaze, PowerPC PowerPoint PPT Presentation


  • 70 Views
  • Uploaded on
  • Presentation posted in: General

PicoBlaze, MicroBlaze, PowerPC. Tomáš Martínek [email protected] 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í

Download Presentation

PicoBlaze, MicroBlaze, PowerPC

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Picoblaze microblaze powerpc

PicoBlaze, MicroBlaze, PowerPC

Tomáš Martínek

[email protected]


Motivace

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

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


Z kladn informace

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 jevolně šiřitelný


Obsah1

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


Architektura procesoru

Architektura procesoru

  • Blokové schéma procesoru


Architektura procesoru1

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 procesoru2

Architektura procesoru

  • Lze ale i zvolit způsob zapojení, kdy je možné měnit programza 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 procesoru3

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 procesoru4

Architektura procesoru

  • Aritmeticko-logická jednotka (ALU)

    • 8-bitové operace pouze s pevnou řádovou čárkou

    • Obsahuje příznaky Zero a Carry


Obsah2

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


Instruk n sada

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 sada1

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)


Instruk n sada2

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 sada3

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


Obsah3

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


P eru ovac syst m

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 m1

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

Přerušovací systém


Obsah4

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


Vstupn v stupn porty

Vstupně/výstupní porty

  • 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 porty1

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


Obsah5

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


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;

Použití procesoru – instance ve VHDL


Pou it procesoru kompil tor kcpsm3

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

Použití procesoru – simulátor pBlazIDE


Obsah6

Obsah

  • PicoBlaze

  • MicroBlaze

    • Základní vlastnosti

    • Architektura procesoru

    • Instrukční sada

    • Přerušovací systém

    • Rozhraní procesoru

  • PowerPC


Z kladn vlastnosti

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ů


Obsah7

Obsah

  • PicoBlaze

  • MicroBlaze

    • Základní vlastnosti

    • Architektura procesoru

    • Instrukční sada

    • Přerušovací systém

    • Rozhraní procesoru

  • PowerPC


Architektura procesoru5

Architektura procesoru

  • Blokové schéma:


Architektura procesoru6

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 procesoru7

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 procesoru8

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 procesoru9

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 procesoru10

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 procesoru11

    Architektura procesoru

    • Floating Point Unit (FPU)

      • Založena na standardu IEEE 754

      • Podporuje pouzejednoduchou 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:


    Obsah8

    Obsah

    • PicoBlaze

    • MicroBlaze

      • Základní vlastnosti

      • Architektura procesoru

      • Instrukční sada

      • Přerušovací systém

      • Rozhraní procesoru

    • PowerPC


    Instruk n sada4

    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 sada5

    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


    Obsah9

    Obsah

    • PicoBlaze

    • MicroBlaze

      • Základní vlastnosti

      • Architektura procesoru

      • Instrukční sada

      • Přerušovací systém

      • Rozhraní procesoru

    • PowerPC


    P eru ovac syst m2

    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


    Obsah10

    Obsah

    • PicoBlaze

    • MicroBlaze

      • Základní vlastnosti

      • Architektura procesoru

      • Instrukční sada

      • Přerušovací systém

      • Rozhraní procesoru

    • PowerPC


    Rozhran procesoru

    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

    Local Memory Bus (LMB) rozhraní

    Obr.: Zápisová transakce

    Obr.: Čtecí transakce


    On chip peripheral bus opb rozhran

    On-chip Peripheral Bus (OPB) rozhraní

    • Standard od firmy IBM, adresová sběrnice o velikosti až 64bitů, 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

    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 rozhran1

    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

    Xilinx Cache-Link (XCL) rozhraní


    Podp rn n stroje

    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


    Obsah11

    Obsah

    • PicoBlaze

    • MicroBlaze

    • PowerPC

      • Základní vlastnosti

      • Architektura procesoru

      • Instrukční sada

      • Rozhraní procesoru


    Z kladn vlastnosti1

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


    Obsah12

    Obsah

    • PicoBlaze

    • MicroBlaze

    • PowerPC

      • Základní vlastnosti

      • Architektura procesoru

      • Instrukční sada

      • Rozhraní procesoru


    Architektura procesoru12

    Architektura procesoru

    • Blokové schéma:


    Architektura procesoru13

    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 procesoru14

    Architektura procesoru

    • Struktura cache pamětí


    Architektura procesoru15

    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á predikceskoků: 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 procesoru16

    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 procesoru17

    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 procesoru18

    Architektura procesoru

    • Schéma překladu logické adresy na fyzickou


    Obsah13

    Obsah

    • PicoBlaze

    • MicroBlaze

    • PowerPC

      • Základní vlastnosti

      • Architektura procesoru

      • Instrukční sada

      • Rozhraní procesoru


    Instruk n sada6

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


    Obsah14

    Obsah

    • PicoBlaze

    • MicroBlaze

    • PowerPC

      • Základní vlastnosti

      • Architektura procesoru

      • Instrukční sada

      • Rozhraní procesoru


    Rozhran procesoru1

    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

    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 ocm1

    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

    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

    Odkazy

    • Xilinx: PicoBlaze 8-bitEmbedded MicrocontrollerUser Guide, June, 2004

    • Xilinx: MicroBlazeMicrocontrollerReference DesignUser Guide v1.5, September, 2005

    • Xilinx: MicroBlazeProcessorReference Guide, April, 2005

    • Xilinx: PowerPCProcessorReference Guide,September, 2003

    • Xilinx: PowerPCPowerPC 405 ProcessorBlock Reference Guide,July, 2005

    • IBM: The CoreConnect™ Bus Architecture,July, 1999


    Konec

    Konec

    Děkuji za pozornost


  • Login