ARMulátor - ARMulator

ARM Instruction Set Simulator , ARMulator , je jedním z nástrojů pro vývoj softwaru poskytovaných obchodní jednotkou vývojových systémů společnosti ARM Limited všem uživatelům čipů založených na ARM. Za své dědictví vděčí časnému vývoji instrukcí stanovených Sophie Wilsonovou . Část tohoto dědictví je stále viditelná při poskytování modelu Tube BBC Micro v ARMulatoru.

Funkce

ARMulator je napsán v jazyce C a poskytuje více než jen simulátor instrukční sady, poskytuje virtuální platformu pro emulaci systému. Je připraven emulovat procesor ARM a určité koprocesory ARM . Pokud je procesor součástí integrovaného systému , mohou držitelé licence rozšířit ARMulator o vlastní implementace dalšího hardwaru do modelu ARMulator. ARMulator poskytuje řadu služeb, které pomáhají s časovým chováním a plánováním událostí, a dodává se s příklady mapovaných pamětí a rozšíření procesoru. Tímto způsobem mohou používat ARMulator k emulaci celého svého vestavěného systému . Klíčovým omezením pro ARMulator je, že může simulovat pouze jeden procesor ARM najednou, ačkoli jsou k dispozici téměř všechna jádra ARM až do ARM11 .

Výkon ARMulatoru je dobrý pro použitou technologii, je to asi 1000 instrukcí hostitele (PC) na instrukci ARM. To znamená, že emulované rychlosti 1 MHz byly u počítačů od poloviny do konce 90. let normální. Přesnost je také dobrá, i když je klasifikována jako přesný počet cyklů spíše než přesný cyklus, je to proto, že potrubí ARM není plně modelováno (ačkoli blokování registrů je). Rozlišení je na instrukci, v důsledku toho, když jsou jednotlivé kroky blokování registrů ignorovány a jsou vráceny různé počty cyklů, než kdyby byl program jednoduše spuštěn, bylo to nevyhnutelné.

Testování ARMulatoru bylo vždy časově náročnou výzvou, protože se používaly plné sady pro ověřování architektury ARM. S více než 1 milionem řádků kódu C to byl docela statný produkt.

ARMulator umožňuje ladění za běhu pomocí buď zbraní (ARM Symbolic Debugger), nebo některého z grafických debuggerů, které byly dodány v SDT a novějších produktech ADS. ARMulator trpěl tím, že byl neviditelným nástrojem s konfigurací textového souboru (armul.conf), který byl pro mnoho konfigurovatelný.

ARMulator II tvořil základ pro vysoce přesné modely cyklicky vygenerovatelných verifikací procesorů ARM, tyto modely CoV (viz Cycle Accurate Simulator ) byly základem mnoha systémů CoVerification pro procesory ARM.

Dostupnost

ARMulator byl po celou dobu své životnosti k dispozici na velmi široké škále platforem, včetně Mac , platforem RISC OS , DEC Alpha , HP-UX , Solaris , SunOS , Windows , Linux . V polovině 90. let se zdráhal podporovat platformy Windows; před Windows 95 to byla relativně náročná platforma. Na konci 90. let a na začátku 2000 byla podpora odstraněna pro všechny kromě Solaris, Windows a Linux - i když nepochybně zůstává kódová základna plná pragmat, jako je #ifdef RISCOS.

ARMulator II se dodává v raných sadách nástrojů ARM, stejně jako novější SDT 2.5, SDT 2.5.1, ADS 1.0, ADS 1.1, ADS 1.2, RCVT 1.0 a také samostatně jako RVISS. Během vývoje CPU byly vyrobeny speciální modely, zejména ARM9E , ARM10 a ARM11 , tyto modely pomáhaly s architektonickými rozhodnutími, jako jsou Thumb-2 a TrustZone.

ARMulator byl postupně vyřazován a byl nahrazen vysoce výkonnými modely CPU a systémů založenými na kompilaci Just-in-time (viz odkaz FastSim níže).

ARMulator Byl jsem vytvořen jako open source a je základem pro GNU verzi ARMulatoru. Klíčové rozdíly jsou v paměťovém rozhraní a službách, také dekódování instrukcí se provádí odlišně. GNU ARMulator je k dispozici jako součást ladicího programu GDB v nástrojích ARM GNU.

ARMulator II tvořil základ pro vysoce přesné modely cyklicky vyvolané společné verifikace procesorů ARM, tyto modely CoV (viz Cycle Accurate Simulator) byly základem mnoha systémů CoVerification pro procesory ARM. Mentor Graphic's Seamless mají přední systém CoV, který podporuje mnoho jader ARM a mnoho dalších procesorů.

ARMulator II se dodává v raných sadách nástrojů ARM, stejně jako pozdější SDT 2.5, SDT 2.5.1, ADS 1.0, ADS 1.1, ADS 1.2, RVCT 1.0 a také samostatně jako RVISS.

Klíčovými přispěvateli do ARMulator II byli Mike Williams, Louise Jameson, Charles Lavender, Donald Sinclair, Chris Lamb a Rebecca Bryan (na ARMulatoru pracoval jako inženýr a později jako produktový manažer). Významně přispěl také Allan Skillman, který v té době pracoval na modelech ARM CoVerification.

Klíčovým přispěvatelem do ARMulatoru jsem byl Dave Jaggar .

Během vývoje CPU byly vyrobeny speciální modely, zejména ARM9E, ARM10 a ARM11, tyto modely pomáhaly s architektonickými rozhodnutími, jako jsou Thumb-2 a TrustZone.

Viz také

externí odkazy