Jádra MIPS pro MCU a jejich historie
Transkript
Jádro MIPS32 pro mikrořadiče Úvod Při procházení internetu jsem zjistil, že procesory MIPS a licencovaná jádra MIPS nejsou častým námětem článkům jako konkurenční. Zaměřím se hlavně na jádra pro mikrořadiče. Většina uživatelů je obeznámená s jádry ARM, proto budu srovnávat s jejich nejvýkonnějším jádrem pro mikrořadiče Cortex-M3. MIPS je zkratka z anglického Microprocessor without Interlocked Pipeline Stages, česky volně přeloženo jako procesor bez automaticky organizované pipeline. Ilustrace 1: Současná nabídka jader procesorů MIPS Historie jádra MIPS V roce 1981 tým vedený Johnem L. Hennessym na Stanfordské Universitě začal práci na prvním MIPS procesoru. Jejich základním cílem bylo zvýšit propustnost instrukcí skrz pipeline a tím zvýšit výkon. Jelikož instrukční soubory té doby používali současně některou jednotku v procesoru po delší dobu, musely často instrukce čekat na její uvolnění od vykonávané předcházející instrukce. Vytvořili instrukční sadu, která má všechny instrukce 32bitů široké a lze je provést v jednom taktu. To mělo za následek, že vypadla instrukce násobení a dělení, ale zjednodušilo se jádro, zvýšil se výkon při stejném kmitočtu a zvýšila se maximální pracovní frekvence při stejné výrobní technologii. Komerční verze procesoru se objevila v roce 1984. Pro komerční použití musely být přidány některé jednotky např. jednotka pro násobení a dělení, což vedlo k přidání uzamykání těchto ECOM s.r.o., A.Jiráska 384, 517 71 České Meziříčí, tel: 494 661 511, 494 661 188, fax: 494 661 202, http://www.ecom.cz, e-mail: [email protected] pomalých jednotek. Hlavním uživatelem procesorů MIPS se stala firma SGI vyrábějící pracovní stanice, servery a superpočítače. V roce 1991 začala firma MIPS Technologies vyrábět první 64bitový mikroprocesor R4000. Ve spolupráci s firmou LSI byla roku 1996 vytvořena instrukční sada MIPS16 později přejmenovaná na MIPS16e, která ušetří až 30% paměti programu. Jedná se o obdobu Thumb u ARM. V roce 1999 se firma MIPS Technologies oddělila od Silicon Graphic a začala licencovat jádra. Licencovaná jádra jsou použitá v herních konzolích Nintendo 64, PlayStation 2, PlayStation Portable. Dále se používají ve spotřební elektronice jako například v set-top boxech, tiskárnách, video kamerách, ADSL modemech a routrech apod. V roce 2002 bylo uvedeno jádro MIPS32 M4K určené pro jednočipové aplikace. Na konci roku 2009 byl představen následník MIPS32 M14K s novou instrukční sadou microMIPS. Jádro MIPS M4K používá Microchip ve svém mikrořadiči řady PIC32 od roku 2007. Stručná historie jádra ARM Oficiálně práce na procesorech ARM začala roku 1983. První použitelný typ byl ARM2, který byl ve své době (1986) nejjednodušším 32bitovým procesorem s malou spotřebou. Ke konci 80. let minulého století se k vývoji dalších verzí jader připojily firmy Apple Computer a VLSI Technology a výsledkem spolupráce bylo jádro ARM6, které se objevilo v prvním PDA Apple Newton. První jádro, které dosáhlo velkého rozšíření, bylo ARM7TDMI. Sice obě architektury vycházejí ze stejných základů RISC architektury, ale tvůrci jich na počátku použili ke splnění jiných cílů. V současné době se oblasti aplikací pro tato jádra stále více překrývají. Některé základní vlastnosti MIPS32 M4K a M14K Ilustrace 2: Blokové schéma procesoru M14K ECOM s.r.o., A.Jiráska 384, 517 71 České Meziříčí, tel: 494 661 511, 494 661 188, fax: 494 661 202, http://www.ecom.cz, e-mail: [email protected] • 5 úrovňová pipeline • 32 bitové adresy a data • Instrukce obvyklé u DSP – vynásob a sečti nebo vynásob a odečti • Instrukce pro detekci 0 nebo 1 • Instrukce podmíněného přesunu z/do paměti • Vektorové přerušení – PIC32 má možnost používat jeden vektor pro všechna přerušení nebo pro téměř každé přerušení vlastní vektor • U přerušení lze nastavit, na kterou sadu registrů se automaticky přepne • Řetězení přerušení u M14K vede ke zrychlení odbavování • Stínové sady registrů: 1, 3, 7 nebo 15 u M14K – PIC32 má implementovanou 1 stínovou sadu • Instrukční sada MIPS32 • Instrukční sada MIPS16e pouze u M4K • Instrukční sada microMIPS pouze u M14K • Nové bitové nepřerušitelné operace u M14K • MDU (Multiply/Divide Unit) se samostatnou pipeline • MDU jednotka je dostupná ve dvou provedeních: Výkoná - rychlost násobení 32x32 bitů v každém druhém taktu a dělení 11-34 taktů (implementována v PIC32) S minimální plochou na čipu - rychlost násobení 32 taktů a dělení 33-35 taktů Instrukční soubory jader M4K a M14K Programovat přímo v assembleru lze, i když se příliš nedoporučuje, protože je třeba dávat pozor na některé odlišnosti, které jsou pro uživatele 8 bit MCU nezvyklé, například Branch delay slot, což je provádění instrukce následující za instrukcí skoku, čímž se využije volná pipeline. Přepínání mezi MIPS32 a jinou instrukční sadou se provádí instrukcí skoku. Lze mít rutinu v jiné instrukční sadě a při návratu se automaticky přepne sada na původní. MIPS32 Základní instrukční sada ve druhé verzi společná pro všechny 32 bitové jádra MIPS. MIPS16e 16bitové rozšíření 32 bitové instrukční sady, které ušetří 30% paměti a přibližně stejně se sníží i výkon. Umí lépe pracovat s 8 bitovými a 16 bitovými datovými typy. Některé instrukce mají přístup pouze k 8 registrům. microMIPS Nová instrukční sada, která využívá 16 bitové a 32 bitové instrukce, čímž došlo k snížení velikosti kódu o 35% a úbytku výkonu o pouhé 2%. Velké změny se týkají instrukcí větvení programu. ECOM s.r.o., A.Jiráska 384, 517 71 České Meziříčí, tel: 494 661 511, 494 661 188, fax: 494 661 202, http://www.ecom.cz, e-mail: [email protected] Pipeline v jádru M4K a M14K Pipeline má 5 stupňů: 1. I – Instruction 2. E – Execution 3. M – Memory 4. A – Align 5. W – Writeback Základní pipeline se označuje IU (instruction unit) a pipeline násobičky/děličky MDU (multiply/divide unit). Některé instrukce pro MDU opustí IU pipeline a jsou dokončené v MDU pipeline a neblokují IU pro zpracování dalších instrukcí. Aby následující instrukce mohly používat výsledky předchozí instrukce dříve, než se dokončí jsou implementovány přemostění (bypass) mezi stupněma v pipeline. Ilustrace 3: Přemostění v IU pipeline http://www.mips.com/auth/MD00249-2B-M4K-SUM-02.02.pdf I – Načtení instrukce Načte se instrukce. Instrukce MIPS16e se převedou na MIPS32. Sada MicroMIPS má vlastní dekodér instrukce. E – Vykonání instrukce • Začnou se provádět aritmetické a logické operace • Vypočítá se adresa pro instrukce čtení nebo zápisu do RAM • Je zjištěn výsledek podmínky a určena adresa další instrukce • Jsou zahájeny výpočty v MDU M – Přístup do paměti • ALU dokončí operace • Načtou nebo zapíší data do SRAM • Čeká se na ukončení operace MDU, je-li třeba ECOM s.r.o., A.Jiráska 384, 517 71 České Meziříčí, tel: 494 661 511, 494 661 188, fax: 494 661 202, http://www.ecom.cz, e-mail: [email protected] A – Zarovnání, uspořádání • Data jsou připravována pro zápis např. zarovnána • Jsou vyhodnocené podmínky breakpointu W – Zápis do registru Je-li cíl instrukce registr, provede se zápis do něj MDU – Multiply/Divide Unit Registry LO a HI jsou jeden 64 bitový registr rozdělený pro přístup na dva 32 bitové a není součástí sady 32 registrů. Je možné do nich zapisovat, přičítat či odčítat výsledek násobení a též výsledky číst. Po dělení je v LO uložen výsledek a v HI zbytek po dělení. Operace, které mají cílové registry LO a HI se odpoutají od UI pipeline a provádějí se paralelně s dalšími operacemi. Porovnávání jader pro MCU Rozdíly ovlivněné optimalizací a technologií Jádro M4K M4K M14K* M14K* Cortex-M3 Cortex-M3 Optimalizace Výkon Velikost Výkon Velikost Výkon Velikost Max. kmitočet 228 MHz 100 MHz 180 MHz 100 MHz 135 MHz 50 MHz Velikost na čipu 0,64 mm2 0,185 mm2 0,68 mm2 0,35 mm2 0,74 mm2 0,38 mm2 Spotřeba 0,214 mW/MHz 0,066 mW/MHz 0,22 mW/MHz 0,12 mW/MHz 0,165 mW/MHz 0,084 mW/MHz Tabulka 1: Porovnání od BDTI pro technologii 130nm TSMC G. * informace z jiného zdroje Rozdíly v jádrech Vlastnost M4K M14K Cortex-M3 Registry 32 až v 8 sadách 32 až v 16 sadách 16 v 1 sadě 16 bit. instrukce MIPS16e microMIPS Thumb, Thumb-2 Stupňů u pipeline 5 5 3 Hardwarová násobička 16bit x 32bit 32bit x 32bit Fast 1 cyklus 2 cykly Small 32 cyklů 32 cyklů Fast 1 cyklus 2 cykly Small 32 cyklů 32 cyklů 1 cyklus 1 cyklus Zřetězené 2 přerušení* 66 cyklů 21 cyklů 18 cyklů Dhrystone 2.1** 1,6 Dmips/MHz 1,5 Dmips/MHz 1,25 Dmips/MHz Tabulka 2: Rozdíly dle článku MicroMIPS Crams Code. * Jedná se o čas potřebný k zahájení a ukončení dvou přerušení po sobě jdoucích. Do zahájení a ECOM s.r.o., A.Jiráska 384, 517 71 České Meziříčí, tel: 494 661 511, 494 661 188, fax: 494 661 202, http://www.ecom.cz, e-mail: [email protected] ukončení se počítají čas pro zahájení, nutné operace se zásobníkem a čas pro ukončení. ** Pro Dhrystone 2.1 je pravděpodobně použitá násobička Fast. Nezávislé benchmark testy Pro jádra MCU a CPU je asi nejlepší benchmark test od EEMBC ( www.eembc.org ), jehož výsledky jsou dostupné na www.coremark.org , protože je napsaný v C, výsledek závisí na kvalitě kompilátoru. Výsledky benchmark testů zaměřených na DSP operace jsou na www.bdti.com Typ Výrobce Frekvence Jádro Coremark Coremark/MHz LM3S9B96 TI 50 Cortex-M3 96,03 1,921 LM3S9B96 TI 80 Cortex-M3 127,60 1,595 LPC1768 NXP 72 Cortex-M3 126,39 1,755 LPC1768 NXP 100 Cortex-M3 175,25 1,753 PIC32MX360F512L Microchip 30 M4K 77,97 2,599 PIC32MX360F512L Microchip 72 M4K 136,73 1,899 PIC32MX360F512L Microchip 80 M4K 183,76 2,297 STM32F103RB ST 24 Cortex-M3 43,13 1,797 STM32F103RB ST 72 Cortex-M3 108,26 1,504 Tabulka 3: Výsledky 32bitových MCU z www.coremark.org . Výsledek testu je ovlivněn kvalitou použitého překladače. Závěr 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 oblasti aplikací, kde se používá Cortex M3 optimalizovaný na výkon. Zajímavé je, že má MIPS dle parametrů horší násobičku a přesto dle testů dosahuje vyššího výkonu. K tomu nejvíce pomáhá dobře navržená instrukční sada a dostatek interních registrů, což omezuje potřebu přesunu dat z a do paměti SRAM. Pro návrháře zákaznických obvodů má ještě jednu zajímavou vlastnost a to možnost doplnit vlastní instrukce. Microchip našel odvahu a jako první nabízí jádra MIPS v MCU pro široký rozsah aplikací a zákazníků. Protože pro toto jádro není tolik rozšířeno, podpořil jej vlastní sadou knihoven, které jsou kompatibilní i s jejich 16 bitovými MCU. Do své implementace M4K přidal flash accelator, který je velice podobný typu použitém v M14K, a při správné konfiguraci snižuje rychlost odezvy na přerušení. Zdroje Historie http://cs.wikipedia.org/wiki/Architektura_MIPS http://en.wikipedia.org/wiki/MIPS_architecture http://en.wikipedia.org/wiki/ARM_architecture MicroMIPS Crams Code – stručný popis MIPS32 M14K a porovnání s ARM Cortex M3 http://www.mips.com/media/files/M46_MIPS_Reprint.pdf Porovnání jádra M4K s konkurencí od nezávislé společnosti BDTI ECOM s.r.o., A.Jiráska 384, 517 71 České Meziříčí, tel: 494 661 511, 494 661 188, fax: 494 661 202, http://www.ecom.cz, e-mail: [email protected] http://www.mips.com/media/files/m4k/FINAL_mips_m4k.pdf Dokumentace k jádrům M14K a M4K http://www.mips.com/products/cores/ Dokumentace k instrukčním souborům MIPS32, microMIPS a MIPS16e http://www.mips.com/products/architectures/ ECOM s.r.o., A.Jiráska 384, 517 71 České Meziříčí, tel: 494 661 511, 494 661 188, fax: 494 661 202, http://www.ecom.cz, e-mail: [email protected]
Podobné dokumenty
Vlastnosti jádra 16 bitových procesorů PIC24 a DsPIC
dvojnásobné délky (call a goto na abs. Adresu). Vícecyklové provádění instrukce je též obvyklé při
použití instrukce REPEAT n, která řekne jádru, že následující instrukci má provést n+1 krát. Tato
...
příloha č. 1 - Gymnázium Cheb
1920 x 1080 bodů
ano
Gigabit Ethernet
IEEE 802.11 a/b/g/n
Ano
Čtečka Blue-ray / Zapisovací zařízení
DVD (BD-ROM/DVD-RAM/±R/±RW)
ano
ano
HDMI, 4x USB, VGA, RJ-45, mikrofon,
sluchátka
max. 3,5 kg
3 r...
Vypracovane otazky k bakalarskym statnicim
Skriptovací jazyky aplikací – Velká většina rozsáhlých aplikací obsahuje svuj
vlastní skriptovací jazyk, ušitý přesně na míru požadavkům konkrétní aplikace. Například některé počítačové hry používa...
Freescale
Zamyšlení
S osobními počítači přicházíme do styku denně, vědomě, při práci i
při zábavě. Je však mnoho dalších řídicích systémů, které nejsou
vidět – jsou vestavěné (embedded).
Jaký je podíl proce...
Sborník XXXIV. Seminář ASŘ 2015 - Fakulta strojní - VŠB
společnostmi pod označením podpory .NET Gadgeteer. Výhodami těchto platforem je
bezesporu široká podpora zdrojového kódu na úrovni jazyka C#, knihovny obsahují jednotlivé
objekty s připravenými met...
pickyour boty
Skok neuvolňuje pipeline
Instrukce za skokem se vždy
provede
(Cortex M3 – spekulativní
provádění)
spectra 1727 - Elektro
běžné, typu STAY, FORCE, vypnutí atd.).
Kód může obsahovat pouze čísla od 0 do 9. Čísla se
v kódu mohou libovolně opakovat. Délku kódu programuje
instalační firma. Kódy mohou být 4 místné nebo 6 mí...
Mikrokontroléry I. Mikrokontroléry od Atmel (Attiny, Atmega, AVR)
Proti předchůdci ARM11 jsou navíc implementovány nové technologie ARM TrustZone
(dva oddělené adresové prostory), NEON (64/128bit. hybridní SIMD architektura pro
zrychlení zpracování vícekanálových...
Perspectives of Using Motorola 8-bit Microcontrollers for
MC68HC08 patří do nové řady osmibitových mikrořadičů vyvinutých firmou Motorola pro
nasazení v současných průmyslových aplikacích. Vyznačuje se vysoce výkonnou plně
statickou von Neumannovou archit...