Az ARMulator egy ARM utasításkészlet-szimulátor, egy szoftverfejlesztő eszköz, melyet az ARM Limited fejlesztőrendszerek szervezeti egysége biztosított az ARM-alapú csipek felhasználói számára. Története az ARM utasításkészlet korai, Sophie Wilson általi fejlesztésének idejében kezdődött. Ennek az örökségnek a nyomait őrzi pl. a Tube BBC Micro modell támogatása a programban.

Az ARMulator C nyelven készült és több, mint egyszerű utasításkészlet-szimulátor, gyakorlatilag egy teljes rendszereket emuláló virtuális platform. Alaphelyzetben képes ARM processzorok és bizonyos ARM koprocesszorok emulálására. Ha a processzor egy beágyazott rendszer része, akkor a licencelők kiterjeszthetik az ARMulator-t, hozzáadva a kiegészítő hardvereket emuláló saját megvalósításukat az ARMulator modellhez. Az ARMulator számos szolgáltatással rendelkezik az idő-alapú viselkedés és az események ütemezésének pontos kezelése céljára, és memóriába leképzett és koprocesszoros bővítések mintáival szállítják (ezek a minták és példák az alapkészlet részei). Ezáltal a felhasználók a teljes beágyazott rendszerük emulálására használhatják. Az ARMulator egy alapvető korlátja, hogy egyszerre csak egyetlen ARM CPU-t képes szimulálni, bár szinte az összes ARM mag az ARM11-ig bezárólag rendelkezésre áll.

Az ARMulator teljesítménye jó a felhasznált technológiához képest, kb. 1000 gazdagép- (PC) utasítás esik egy ARM utasításra. Ez azt jelenti, hogy az 1 MHz-es emulált sebesség teljesen rendjén való a 90-es évek vége táján megjelent PC-k sebességéhez képest. A program pontossága szintén igen jó, ez azonban inkább a ciklusszám-pontosságnak köszönhető, mint a ciklusidőzítés pontosságának, mivel az ARM futószalag(ok) nem lett(ek) tökéletesen lemodellezve – bár a fokozatokat elválasztó kapcsolóregiszterek például igen. Az emulátor felbontásának alsó határa egy utasítás szintje, ami annak a következménye, hogy az egyutasításos léptetés során a program elhanyagolja az elválasztóregiszterek hatását és más ciklusszámokat használ, mint a folyamatos programfuttatásnál – ilyen feltételek mellett ez elkerülhetetlen.

Az ARMulatorral való tesztelés időigényes feladat, a teljes ARM architektúrát tekintve. Maga a program, több, mint egymillió soros méretével (C kód) – nem a legkisebbek közé tartozik.

Az ARMulator lehetővé teszi a futásidejű hibakeresést, akár az armsd (ARM Symbolic Debugger), akár az SDT (ARM Software Development Toolkit, ARM szoftverfejlesztő eszközkészlet), vagy a későbbi ADS (ARM Developer Suite, ARM fejlesztőkészlet) termékek grafikus hibakeresőivel. Az ARMulator egyik gyengéje az, hogy egy szöveges konfigurációs állománnyal (armul.conf) konfigurálható szinte láthatatlan eszköz, amelynek beállítása sokak számára túl bonyolult, a használatot már nem is említve.

Az ARMulator, életciklusa alatt, igen sok platformon elérhető volt, így Mac, különféle RISC OS platformok, DEC Alpha, HP-UX, Solaris, SunOS, Windows, Linux alatt is. A 90-es évek közepén bizonyos idegenkedés volt megfigyelhető a Windows platformok támogatásával szemben, és a Windows 95 előtti rendszerek is viszonylag nagy kihívást jelentő platformok voltak. A 90-es évek vége és a 2000-es évek eleje között az operációs rendszerek többségének támogatását megszüntették, kivéve a Solaris, Windows és Linux rendszereket – bár a programkód továbbra is teli volt szemetelve használaton kívüli (C nyelvű) pragma utasításokkal, mint például #ifdef RISCOS és hasonlók.

Az ARMulator II képezte az alapját az ARM processzorok nagy cikluspontossággal hívható co-verification modelljeinek, ezek a CoV modellek (ld. ciklushelyes szimulátor) szolgáltak alapul több koverifikációs rendszernek az ARM processzorok számára. Példásul a Mentor Graphics (az elektronikai tervezés automatizálásával foglalkozó cég) Seamless rendszere egy piacvezető CoVs (felülvizsgálati rendszer), amely több ARM magot és sok más processzort is támogat.

Az ARMulator II-t a korai ARM eszközkészletekkel együtt szállították, valamint a későbbi SDT 2.5, SDT 2.5.1, ADS 1.0, ADS 1.1, ADS 1.2, RCVT 1.0 rendszerekkel és önmagában, RVISS néven.

Az ARMulator II szoftver jelentősebb alkotói Mike Williams, Louise Jameson, Charles Lavender, Donald Sinclair, Chris Lamb és Rebecca Bryan voltak, Bryan mérnökként és termékigazgatóként is dolgozott a szoftveren. Allan Skillman, aki abban az időben az ARM koverifikációs modelljein dolgozott, szintén jelentősen hozzájárult a szoftverhez. Az ARMulator I szoftverben közreműködött Dave Jaggar.

A processzorok fejlesztése során különleges modelleket is készítettek, ezek között különösen érdekesek az ARM9E, ARM10 és ARM11 modellek, ugyanis ezek jelentős architekturális döntésekhez vezettek, mint amilyen a Thumb-2 és a TrustZone.

Az ARMulatort fokozatosan megszüntették és felváltották a futásidejű fordításon alapuló nagyteljesítményű CPU- és rendszermodellek (ld. pl.: FastSim, lent).

Az ARMulator I kódját nyílt forráskód rendszerben közzétették, és ez szolgált alapul az ARMulator GNU verziójának. A jelentősebb különbségek a memóriainterfész és a szolgáltatások terén találhatók, és az utasításdekódolás is másként történik. A GNU ARMulator elérhető a GDB debugger részeként, az ARM GNU Tools eszközkészletben.

Jegyzetek szerkesztés

Fordítás szerkesztés

Ez a szócikk részben vagy egészben az ARMulator című angol Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.

Források szerkesztés

További információk szerkesztés

Kapcsolódó szócikkek szerkesztés