AT&T Hobbit

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

A Hobbit az AT&T Corporation egy mikroprocesszor-kialakítása az 1990-es évek elejéről. A cég CRISP rövidítésű (C-language Reduced Instruction Set Processor, C-nyelvű redukált utasításkészletű processzor) tervezetéből fejlődött ki, amely a maga részéről a Bell Labs korábbi, az 1980-as évek végén folytatott, C Machine elnevezésű kísérleti kutatási tervezetéből ered. A C Machine, a CRISP és a Hobbit mind a C nyelven írt programok hardveresen támogatott futtatását célozta meg. A kialakítás főbb jellemzői a gyors utasításdekódolás, az indexelt tömbelérés és a gyors procedúra-hívások voltak. Bár az elkészült processzor sok RISC-szerű jellemzővel rendelkezett, mégis „furcsaság” maradt sok más jellemzőjében, tehát egy rendkívül egyedi és eredeti kialakítás volt. Nem sikerült megtalálnia a megfelelő piaci rést, így üzletileg nem lett sikeres és 1994-ben leállították a gyártását, különösebb üzleti felhasználás hiányában. A benne megvalósított koncepciók és elgondolások azonban fennmaradtak és további nevezetes hardverek kialakítását ihlették meg.

Általános ismertetés[szerkesztés | forrásszöveg szerkesztése]

A hagyományos RISC típusú processzoroknál, avagy a load-store architektúrában a memóriát csakis és kizárólag a betöltő és tároló utasításokkal lehet elérni, amelyek a memória tartalmát a processzor valamely regiszterébe töltik és vissza. Az adatokon valamilyen műveletet végző utasítások kizárólag a regiszterekben lévő adatokat használják fel. Ez lehetővé teszi a processzor számára az adatmozgatás és az adatfeldolgozás tiszta elkülönítését, ami megkönnyíti az utasítás-futószalag jobb kihasználását és a szuperskalár utasításvégrehajtás támogatását. A programnyelvek azonban nem ilyen elveken működnek. Ezek általában veremszerkezetet használnak a lokális változók és egyéb adatok tárolására, például a különféle szubrutinok számára, azaz a „veremkeret” vagy „aktivációs rekord” elnevezésű adatszerkezetet. A fordítóprogram állítja elő az aktivációs rekordok létrehozását végző kódot, amely az e mögött álló (a kódot végrehajtó) processzor load-store kialakításán alapul.

A C Machine és az azt követő CRISP és Hobbit processzorok közvetlenül támogatják a programnyelvek által használt memóriahozzáférési módokat, és kifejezetten a C programnyelven írt programok végrehajtására voltak optimalizálva.[1] A processzorok utasításai közvetlenül képesek elérni a memóriát, még az olyan memóriastruktúrákon belül is, mint a veremkeretek vagy tömbök. Az efféle „memória-adat” modell tipikus volt a korábbi CISC felépítésű processzorokban, a C Machine adathozzáférése teljes egészében egy 64 db. 32 bites regiszterekből álló vermen keresztül történik; a regisztereket nem lehet másként címezni (ellentétben pl. az INMOS Transputer-rel és más veremalapú kialakításokkal). A verem használata az adateléréshez drámaian lecsökkenti a kódméretet, mivel nincs szükség az utasításokban használt adatok helyének meghatározására. Az ilyen veremszervezésű gépekben a legtöbb utasítás a verem tetején lévő adatokkal dolgozik. A nagyobb kódsűrűség kisebb adatmozgatással jár a memóriasínen, ami javítja a teljesítményt.

A Hobbit dizájn egy érdekes mellékhatása volt, hogy ez inspirálta az Inferno rendszer alapjául szolgáló Dis virtuális gép tervezőit, ebből vették a memóriából-memóriába történő adatmozgatás elvén alapuló rendszer ötletét, amely sokkal inkább hasonlít a való világ-beli processzorok belső regiszter-alapú végrehajtására. (Az Inferno operációs rendszer a Plan 9 továbbfejlesztése, és mindkettő a Bell Labs műve). Úgy találták, a RISC tervezőihez hasonlóan, hogy a load-store technika nélkül igen nehéz javítani az utasítás-futószalagon, és ezáltal növelni a sebességét. Úgy gondolták, hogy az összes jövőbeli processzor a load-store kialakítás irányába fog fejlődni, és az általuk tervezett Inferno is ezt az elgondolást tükrözi. Ezzel szemben, a Java és a .NET virtuális gépei veremalapúak, ami annak a mellékhatása, hogy ezeket a gépeket programozók tervezték, nem pedig integrált áramkör-tervezők. Egy veremalapú nyelv fordítása regiszter-alapú assembly nyelvre „nehézsúlyú” feladat; a Java virtuális gépe és fordítója sokszor nagyobb és lassabb is a Dis virtuális gépnél és a Limbo (a Dis alapvető programozási nyelve) fordítónál.[2] Az Android Dalvik virtuális gépe, a Parrot virtuális gép és a Lua virtuális gép szintén regiszter-alapú.

Történet[szerkesztés | forrásszöveg szerkesztése]

A CRISP 1987-ben készült, főleg kísérleti célokra. Az Apple Computer az AT&T-hez fordult és fizetett is a CRISP egy újabb verziójának fejlesztéséért, amelyet az Apple Newton PDA-ban kívánt felhasználni.[3] Ennek a fejlesztésnek az eredménye lett a Hobbit, amelynek első változata volt a 92010 jelű csip 1992-ben – ez 3 KiB-os utasításpuffert tartalmazott. A következő változat 1994-ben készült el, ez volt a 92020 jelű csip, ennek utasításpuffere 6 KiB-os volt. A csipkészlethez néhány támogató csip is tartozott:[4]

  • AT&T 92011 System Management Unit – rendszervezérlő egység
  • AT&T 92012 PCMCIA Controller – PCMCIA bővítőkártya-vezérlő
  • AT&T 92013 Peripheral Controller – perifériavezérlő
  • AT&T 92014 Display Controller – kijelző-vezérlő

Ennek ellenére a Hobbit processzoros Newton nem készült el. Larry Tesler, az Apple Newton vezető fejlesztője szerint „... A Hobbit teli volt hibával, nem felelt meg a céljainknak, és túl drága is volt. Kiszálltunk, amikor az AT&T nem egy, hanem sokmillió dolláros díjat követelt a fejlesztésért.”[5] Az Apple tehát megszüntette érdekeltségét a Hobbit processzorban és az Advanced RISC Machines – ARM – céghez fordult, egy 2,5 millió dolláros befektetéssel. Mikor a cég évekkel később eladta a részesedését az ARM-nak, az 800 milliót ért.[5]

Érdekes fordulat a történetben, hogy mikor az Apple felhagyott a csip alkalmazásával az ARM javára, Hermann Hauser, az Acorn egyik alapítója, létrehozta az Active Book Company céget, amely szintén ARM processzort alkalmazott Active Book PDA-jában. Ezt később felvásárolta az AT&T, és összevonta az AT&T EO Personal Communicator cégével,[6] amely a hasonnevű, a GO Corporation PenPoint operációs rendszerét futtató korai PDA-t készítette: ebben az eszközben a Hobbit processzort alkalmazták.

A Hobbit processzor volt a BeBox legkorábbi, forgalomba nem került gépeinek központi egysége is. A fentieken kívül a processzornak gyakorlatilag nem volt más kereskedelmi alkalmazása, így a gyártását 1994-ben meg is szüntették.

Jellemzők[szerkesztés | forrásszöveg szerkesztése]

A Hobbit processzor fejlődésének első állomása volt a C Machine, amelynek különböző fajtáival a Bell Labs már 1975 óta kísérletezett,[7] de fejlesztését 1980-ban kezdték el. A fejlesztés során a javasolt architekturális jellemzőkkel felépítettek egy szimulátort, ezzel párhuzamosan kifejlesztettek egy C nyelvű fordítóprogramot, amelynek tárgykódját a szimulátoron futtatták; ezzel az új architektúra teljesítményét tesztelték.[8] A fejlődés következő fázisa az 1985-ben megjelent CRISP processzor, amely egy 32 bites egycsipes mikroprocesszor volt, és a C Machine architektúra egyik megvalósítása. Ez a processzor 1,75 µ-os ikercsöves, egy fémrétegű CMOS folyamattal készült, lapkamérete 10,35 mm × 12,23 mm volt, 172 163 tranzisztort tartalmazott, 16 és 20MHz-es órajelű változatai készültek és csúcsüzemben képes volt elérni az 1 utasítás/ciklus végrehajtási sebességet. Veremalapú architektúra, nincsenek benne a programozó számára látható regiszterek, ehelyett 32 elemű belső vermet használ, és a fő/operatív memóriába egy veremmutató mutat. A processzornak 25 alaputasítása volt és 4 címzési módja (abszolút, az utasításban tárolt közvetlen érték, veremmutató-relatív és indirekt egy veremmutató-relatív címmel). Adatformátumai a 32 bites szó, 16 bites félszó, és 8 bites előjeles vagy előjel nélküli bájt. Utasításai változó hosszúságúak, rendelkezik koprocesszor-interfésszel. Az utasításokat egy háromfokozatú futószalag hajtja végre.[7] Teljesítménye jóval meghaladta a (hasonló órajelű) DEC VAX-11/780 és kevéssel a MIPS R2000 teljesítményét.[7]

A Hobbit CISC-szerű jellemzői: memóriából-memóriába történő adatmozgatás, változó utasításhossz, nagy kódsűrűség; RISC-szerű jellemzői: kis utasításkészlet, futószalagos architektúra, egyciklusos utasításvégrehajtás, és a nagy teljesítmény.[8] Felépítése is viszonylag egyszerű, az I/O egység mellett előzetes behívási (prefetch) puffert, behívási/dekódoló puffert, dekódolt utasítás-gyorsítótárat tartalmaz, amely a végrehajtó egységgel áll kapcsolatban, és emellett veremgyorsítótárat, memóriakezelő egységet, valamint egy JTAG interfészt tartalmaz.[8]

A Hobbit a CRISP processzortól fizikai jellemzőben is különbözik: a CRISP 5 V-os tápfeszültsége helyett 2–5 V közötti feszültséget igényel, órajele 8 MHz és 30 MHz között lehet (a CRISP-é csak 12 MHz), és van egy kisfogyasztású stand by üzemmódja is, ami az előzőben nincs. Az architekturális különbségek a következők:

  • A CRISP csak big endian bájtsorrendet támogat, a Hobbit a big endian és little endian bájtsorrendet is támogatja.
  • Gyorsítótárak:
    • A CRISP 512 bájtos közvetlen leképzésű kódolt utasítás-gyorsítótárat tartalmaz, a Hobbit 3 KiB méretű 3 utas csoport-asszociatív utasítás-gyorsítótárat.
    • CRISP: 128 bájt verem-gyorsítótár; Hobbit: CRISP: 256 bájt verem-gyorsítótár
  • MMU: a CRISP-nek nincs, a Hobbitnak van memóriakezelő egysége, TLB-vel.[8]

A Hobbit processzorban igen hatékony, Branch Folding elnevezésű technikát alkalmaztak az elágazások kezelésére, és az elágazási utasítást nulla órajelciklus alatt hajtotta végre a processzor.[8] A processzor statikus elágazásbecslést alkalmazott, azzal együtt, hogy az elágazásokat más utasításokba bújtatta. Az elágazások kezelését a fordítóprogram is segítette.[9]

Az EO Personal Communicator-ban alkalmazott 1991-es Hobbit változatot ATT2100-nek nevezték. Ez 3,3 V-on működött, két 90 fokban eltérő fázisú 20 MHz-es órajele volt, rendelkezett blokkátviteli lehetőséggel, támogatta az egyszeres (32 bit), kétszeres (64 bit) és kiterjesztett pontosságú (80 bit) lebegőpontos adatformátumokat, szegmentált memóriaelérést kezelt. 125 csatlakozós CPGA vagy 132 csatlakozós PQFP tokozásba került.[10]

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

  1. "The AT&T Hobbit Enters Its Second Generation", BYTE Magazine, January 1994
  2. Winterbottom, Phil, Pike, Rob. "The design of the Inferno virtual machine", Bell Labs, Lucent Technologies
  3. Bayko, John. "AT&T CRISP/Hobbit, CISC amongst the RISC (1987)", Great Microprocessors of the Past and Present, Section Six: Weird and Innovative Chips, May 2003
  4. Cerda, Michael: EO Block Diagram. (Hozzáférés: 2009. május 15.)
  5. ^ a b Larry Tesler, "'The Fallen Apple' Corrections", 11 April 1999
  6. Kirkpatrick, David. „COULD AT&T RULE THE WORLD?”, CNN, 1993. május 17. (Hozzáférés ideje: 2008. június 10.) 
  7. ^ a b c Alan D. Berenbaum, Brian W. Colbry, David R. Ditzel, R. Don Freeman, Hubert R. McLellan, Kevin J. O’Connor, Masakazu Shoji. CRISP: A Pipelined 32b Microprocessor with 13Kb of Cache Memory (pdf) (angol nyelven), Bell Labs, 1–12. o (1987) 
  8. ^ a b c d e Scavuzzo, Robert J.. The Hobbit Microprocessor for Personal Communicators (pdf) (angol nyelven), Hot Chips Symposium, 1–14. o (1992. augusztus 10.) 
  9. Sima Dezső, Fountain Terence, Kacsuk Péter. Vezérlésátadó utasítások feldolgozása, Korszerű számítógép-architektúrák tervezésitér-megközelítésben (magyar nyelven). Bicske: SZAK Kiadó, 600. o. ISBN 963 9131 09 1 (1998) 
  10. ATT2100 Microprocessor Hardware Specification (angol nyelven). AT&T, 156. o. RELEASE 1.7.2. (1991. március 31.) 

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

Ez a szócikk részben vagy egészben az AT&T Hobbit 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]