AT&T Hobbit

(ATT 92010 szócikkből átirányítva)

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

A hagyományos RISC típusú processzoroknál, avagy a load-store (betöltő-tároló) típusú architektúrákban 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 be és azokból írják vissza a memóriába. 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ágbeli processzorok belső regiszteralapú 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

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 sok millió 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ó dollárt é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

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 20 MHz-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.[9] Teljesítménye jóval meghaladta a (hasonló órajelű) DEC VAX-11/780 és kevéssel a MIPS R2000 teljesítményét.[10]

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.[11] 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.[12]

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.[12]

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.[13] 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.[14]

Az EO Personal Communicator-ban alkalmazott 1991-es Hobbit változatot ATT2100-nak 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.[15]

Jegyzetek szerkesztés

  1. "The AT&T Hobbit Enters Its Second Generation" Archiválva 2008. október 7-i dátummal a Wayback Machine-ben, BYTE Magazine, January 1994
  2. Winterbottom, Phil, Pike, Rob. "The design of the Inferno virtual machine" Archiválva 2013. április 22-i dátummal a Wayback Machine-ben, 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. [2003. március 30-i dátummal az eredetiből archiválva]. (Hozzáférés: 2009. május 15.)
  5. a b Larry Tesler, "'The Fallen Apple' Corrections" Archiválva 2016. március 4-i dátummal a Wayback Machine-ben, 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. 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) [halott link]
  8. Scavuzzo, 1992, p.6.
  9. Berenbaum et al, 1987, p. 1.
  10. Berenbaum et al, 1987, p. 7.
  11. Scavuzzo, 1992, p.7.
  12. a b Scavuzzo, Robert J.. The Hobbit Microprocessor for Personal Communicators (pdf) (angol nyelven), Hot Chips Symposium, 1–14. o. (1992. augusztus 10.) 
  13. Scavuzzo p.21
  14. 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 [archivált változat] (magyar nyelven). Bicske: SZAK Kiadó, 370. o. (1998). ISBN 963 9131 09 1. Hozzáférés ideje: 2013. november 24. [archiválás ideje: 2016. március 5.] 
  15. ATT2100 Microprocessor Hardware Specification [archivált változat] (angol nyelven). AT&T, 156. o.. RELEASE 1.7.2. (1991. március 31.). Hozzáférés ideje: 2013. november 24. [archiválás ideje: 2013. december 3.] 

Fordítás szerkesztés

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. 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