Az Amber processzormag egy nyílt forrású ARM-kompatibilis 32 bites RISC processzor. Tervei az OpenCores weboldalról tölthetők le (Verilog nyelvű leírásban), mely egy nyílt forrású hardver szellemi tulajdon könyvtárak fejlesztését célzó mozgalom része.Open-source credo moves to chip design Az Amber mag teljesen kompatibilis az ARMv2 utasításkészlettel, és mint ilyen, támogatja a GNU eszközkészletet (GNU toolchain). Azért támogatja az ARM utasításkészletnek pont ezt a régebbi verzióját, mert erre nem terjednek ki a különböző szabadalmak, így implementálható az ARM Holdings-tól vásárolt licenc nélkül, nem úgy, mint több más nyílt forrású projekt esetén. Az Amber project leírja a teljes beágyazott FPGA rendszert, melynek központi eleme az Amber mag, és számos kiegészítő perifériás egységet, melyek között megtalálhatók UART és időzítő egységek, valamint egy Ethernet MAC.
Az Amber project a mag két verzióját kínálja. Az Amber 23 rendszerben egy 3 fokozatú futószalag, egyesített utasítás- és adat-gyorsítótár, egy Wishbone interfész található, és 0,75 DMIPS/MHz teljesítményre képes. Az Amber 25 komponensei egy 5 fokozatú futószalag, különálló adat- és utasítás-gyorsítótárak, egy Wishbone interfész, és 1,0 DMIPS/MHz teljesítményre képes. Mind a két mag pontosan ugyanazt az ISA-t implementálja és 100%-ban szoftver-kompatibilisek.
Az Amber 23 mag egy igen kicsi 32 bites, jó teljesítményt nyújtó mag. A regiszter-alapú utasítások végrehajtása egy órajelciklus alatt történik, kivéve azokat az utasításokat, melyek során szorzás történik. A betöltő és tároló utasítások három órajelciklust igényelnek. A mag futószalagja megáll gyorsítótár-tévesztés (cache miss) esetén, vagy amikor a mag wishbone hozzáférést végez.
Az Amber 25 mag körülbelül 30–40%-kal jobb teljesítményt nyújt az Amber 23-nál, de mérete is 30–40%-kal nagyobb. A regiszter-alapú utasítások végrehajtása ebben is egy órajelciklus alatt történik, a szorzással járó vagy összetett eltolásokat végző utasításokat kivéve. A betöltő és tároló utasítások szintén egy órajelciklus alatt hajtódnak végre, kivéve, ha regiszter-konfliktus lép fel a következő utasítással. A mag futószalagja megáll gyorsítótár-tévesztés esetén bármelyik gyorsítótárban, vagy mikor a processzor utasításkonfliktust érzékel, összetett eltolási utasítások végrehajtásakor, vagy amikor a mag wishbone hozzáférést végez.
Mindkét magot a Linux 2.4 kernel bootolásával tesztelték. A Linux kernel 2.4-es és korábbi verziói tartalmaznak a processzorok utasításkészlet-architektúráját támogató konfigurációkat. A Linux kernel 2.6 és későbbi verziói már nem támogatják explicit módon az ARM v2a ISA-t, így ezek nem futtathatók változtatások nélkül. A mag nem tartalmaz memóriakezelő egységet (MMU), ezért csak a virtuális memóriát nem kezelő – MMU nélküli mikrovezérlőket és beágyazott rendszereket támogató – μClinux Linux változatot képes futtatni.
A magokat a Verilog 2001-es változatára fejlesztették és FPGA szintézisre vannak optimalizálva. Például a processzorban nincs reset logika, minden regiszter alapállapotba áll az FPGA inicializálási folyamata alatt.
Az ARMv2 ISA leírása megtalálható a következő művekben:
Jegyzetek
Fordítás
Források
További információk Hivatalos weblapja Amber Core specifikáció Marsohod Blog
Kapcsolódó szócikkek ARM architektúra OpenRISC
Kategória:ARM architektúra Kategória:Nyílt mikroprocesszorok Kategória:Szoft mikroprocesszorok Kategória:Beágyazott mikroprocesszorok