Soft procesory pro FPGA Xilinx
Transkript
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
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í...
(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í
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...
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ě ...
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í...
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...