Soft procesory pro FPGA Xilinx

Transkript

Soft procesory pro FPGA Xilinx
Soft procesory pro
FPGA Xilinx
Marek Bártů 2005
Procesory & FPGA
Hard procesory – hardware procesoru vytvořený
přímo na čipu FPGA (Virtex 4 & PowerPC)
● Soft procesory – softwarové jádro které vytvoří
hardware z hradel FPGA (PicoBlaze, MicroBlaze,
ARM, ...)
●
příklady
Procesory v FPGA
●
●
Téměř každý design obsahuje FSM
(stavový automat)
Větší automaty se hůře implementují
▼
●
●
vyšší náklady, těžkosti
Realizace více automatů jedním
systémem = efektivní využití zdrojů
Typické využití mikrokontrolérů:
Komunikační rozhraní
Generování stimulů
Ladění systémů
●
●
●
●
16 bit. procesory - složitější controlling či běh operačních
systémů (RTOS, μClinux)
On-chip systémy vč. speciálních periferií (MPEG, FFT, ..)
Integrace těchto periferií „do procesoru“ ► akcelerátory
Realizace víceprocessorových systémů na jednom čipu
Hard procesory - příklad
PowerPC 405 (PPC405) v čipu VIRTEX 4 FX
450 MHz, 700+ DMIPS RISC core (32-bit harvardská architektura)
5-ti stupňové zřetězené zpracování (pipeline)
Hardwarová násobička a dělička
32 registrů (32b) k volnému použití
16 KB dvoucestná cache pro data i instrukce
Memory Management Unit (MMU) umožňující implementaci RTOS
Volitelná velikost stránky paměti (1KB - 16 KB)
On-Chip Memory (OCM) interface přímo do blokové paměti FPGA
Podpora IBM CoreConnect™ sběrnice
Hardwarová podpora pro ladění a trasování programu
Auxiliary Processor Unit (APU) = interface do FPGA
Konstrukce hardwarových akcelerátorů
Uživatelem definovatelné instrukce
Podpora přenosu 32bitových slov v jednom taktu
Podpora operací v plovoucí čárce a kooprocesoru
32-bit instrukce a 64-bit data
Soft procesor PicoBlaze
Volně dostupné a použitelné makro
VHDL kód + kompilátor + debugger
8-bitový subskalární RISC
Není třeba žádných externích periferií
Architektura PicoBlaze
16 8-bitových registrů plně pro uživatele
● 1024 programových instrukcí maximálně (Harvardská architektura) - pamět
unvitř FPGA (lze i externí)
● Možnost přehraní programu bez přeprogramování FPGA – pomocí JTAG rozhraní
● Sdílení jedné pamětí dvěma mikrokontroléry (oba stejný kód / půl na půl)
● ALU – instrukce posuvu, základni aritmetické (ADD, SUB), logické (AND,OR,XOR)
a porovnávací instrukce
●
Architektura PicoBlaze
ALU nastavuje ZERO a CARRY příznak
● 64 byte zápisník – přímé a nepřímé (adresa v registru) adresování
● Nemá datový zásobník (LIFO) – nutno simulovat v zápisníku
● 256 vstupních + 256 výstupních portů
● Instrukce skoku, procedury
● Externí, maskovatelné přerušení (nutné externí D – signál INTERRUPT_ACK)
●
Shrnutí PicoBlaze
8Bitový RISC volně k použití
Jednoduchý – manuál cca 120 stran
Výhody plynoucí z toho že je v FPGA:
šetříme PCB designery, potažmo křemík
lehce lze dodělat speciální periferie
jednoduchý upgrade a správa systému
Omezení -> programová paměť (více procesorů ..)
-> logika přerušení (udělat si ve VHDL)
Předpoklad : znalost práce s FPGA (VHDL)
MicroBlaze
●
●
●
●
●
●
32 bitový skalární RISC procesor
Existuje spousta doplňkových modulů
Defacto standard (pro Xilinx)
Existuje několik RTOS operačních systémů
Portován Linux (μClinux)
Nutno přikoupit – část EDK (495$)
MicroBlaze - Architektura
Harvardská architektura
● 3 datové typy (word (4B), half-word (2B), byte)
● 32 volně použitelných registrů (32b)
● 5 registrů pro speciální použití (PC, MCR (machine status),
EAR (exception address), ESR (exception status),
FSR (floating point status register) )
● Programová a datová paměť až do 4GB
●
MicroBlaze - sběrnice
●
●
●
●
LMB (local memory bus) – synchronní přenos procesor <-> BRAM
OPB (IBM on-chip peripherial bus)
XCL (Xilinx CacheLink)
8 jednotek FSL (fast simplex link) portů … nearbitrovaná sběrnice
(viz. dále)
MicroBlaze – přerušovací
subsystém
Typy přerušení
Reset - vynuluje PC, MSR, EAR, ESR
Hardware exception - ilegální instrukce, chyba na
sběrnici, dělění nulou
Break (hardwarový nemaskovatelný, maskovatelný;
softwarový = instrukce brk)
Interrupt
User Vector (exception)
Každé přerušení má svůj vektor
➔
MicroBlaze - Pipelining
3 stupňové zřetězené zpracování instrukcí
(3 stage pipeline)
● Každý stupeň – jeden takt
● Některé instrukce trvají déle (čtení z pomalé
paměti)
●
●
Možnost využití cache pro instrukce v prostoru
mimo LMB (totéž pro data)
MicroBlaze - Architektura
Periferie na sběrnici – pomalé
● Vlastní instrukce (omezení vstupů/výstupů,
problémy s modifikací procesoru a
softwarem)
● FSL = rychlý interface přímo do pipeline …
ideální pro hardwarové akcelerátory
●
Jak vypadá systém s MicroBlaze
Reklamní tabule na Time Square
Rozměry 38 x 8 metrů
● Rozlišení ~ 2M pixely
● 36b RGB
●

Podobné dokumenty

MIPS datové linky

MIPS datové linky Procesor obsahuje vektorovou jednotku, která pracuje souběžně se skalární; Každý takt končí operace s jedním prvkem vektoru, operace na prvcích vektoru jsou datově nezávislé. Je nutný vektorizující...

Více

(Sériová komunikace 2012 [režim kompatibility])

(Sériová komunikace 2012 [režim kompatibility]) Výhody – Konfigurace komunikačních parametrů bez síťového připojení například z klávesnice zařízení

Více

První krok s programem Music Visualization

První krok s programem Music Visualization Receiving”. V případě, že interface není připojen či nejsou nainstalovány ovladače objeví se po spuštění zpráva „Interface USB-DMX512 isn't connected.“. Bude-li připojeno více interface současně, o...

Více

Jádra MIPS pro MCU a jejich historie

Jádra MIPS pro MCU a jejich historie Jak je z uvedených parametrů patrno má ARM Cortex-M3 v M4K a M14K kvalitní konkurenci, která jej pro něj typických oblastech, kterými jsou spotřeba a velikost jádra, dohnala a i předehnala. Hlavně ...

Více

pickyour boty

pickyour boty (kód o 30% kratší, snížení výkonu okolo 2% oproti MIPS32) Zřetězení přerušení Nepřerušitelné bitové operace nad RAM – zjednodušení a urychlení práce se semafory DSP jednotka, podpora SIMD instrukcí...

Více

Zbyněk Baladrán

Zbyněk Baladrán Michal Kalhous, guest artist with the series: By the Time You Get Home Everything Will be Nicely Cleaned Up…, Galerie Emil Filla at Armaturka, Ústí nad Labem, Czech Republic Hidden Publics, curated...

Více

Freescale

Freescale Použití více jádrových řešení

Více