Amber (processzormag)

A Wikipédiából, a szabad enciklopédiából

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)[1] amely egy nyílt forrású hardver szellemi tulajdon könyvtárak fejlesztését célzó mozgalom része.[2] 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 licensz nélkül, nem úgy, mint több más nyílt forrású projekt esetén.[3] Az Amber project leírja a teljes beágyazott FPGA rendszert, amelynek 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 a egy órajelciklus alatt történik, kivéve azokat az utasításokat, emelyek 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 é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: [4], [5]

Jegyzetek[szerkesztés | forrásszöveg szerkesztése]

  1. Santifort, Conor: Amber ARM-compatible core :: Overview (angol nyelven). OpenCores, 2010. december 23
  2. Open-source credo moves to chip design
  3. Amber RISC Core on 32bitmicro
  4. Alex and Nic van Someren.szerk.: Bruce Smith: Archimedes Operating System / A Dabhand Guide, 1. (angol nyelven), Prestwich, Manchester: DABS PRESS, 1–320. o. ISBN 1-870336-48-8 (1991. 06). Hozzáférés ideje: 2013. „... a book which describes the features and facilities of the Operating System for Acorn Archimedes computers.” 
  5. Acorn RISC Machine Family Data Manual (PDF) (angol nyelven), Englewood Cliffs, New Jersey: Prentice Hall, 1–56. o. ISBN 0-13-781618-9 (1990). Hozzáférés ideje: 2013. 

Fordítás[szerkesztés | forrásszöveg szerkesztése]

Ez a szócikk részben vagy egészben az Amber (processor core) 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.

Források[szerkesztés | forrásszöveg szerkesztése]

További információk[szerkesztés | forrásszöveg szerkesztése]

Kapcsolódó szócikkek[szerkesztés | forrásszöveg szerkesztése]