Jádra MIPS pro MCU a jejich historie

Transkript

Jádra MIPS pro MCU a jejich historie
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

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 ...

Více

příloha č. 1 - Gymnázium Cheb

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...

Více

Vypracovane otazky k bakalarskym statnicim

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...

Více

Freescale

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...

Více

Sborník XXXIV. Seminář ASŘ 2015 - Fakulta strojní - VŠB

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...

Více

pickyour boty

pickyour boty Skok neuvolňuje pipeline Instrukce za skokem se vždy provede (Cortex M3 – spekulativní provádění)

Více

spectra 1727 - Elektro

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

Více

Mikrokontroléry I. Mikrokontroléry od Atmel (Attiny, Atmega, AVR)

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...

Více

Perspectives of Using Motorola 8-bit Microcontrollers for

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...

Více