AT&T Hobbit

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, mely 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

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, melyek 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ás-vé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, mely 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ória-hozzáférési módokat, és kifejezetten a C programnyelven írt programok végrehajtására voltak optimalizálva. 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 Transputerrel é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, 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 mellékhatása, hogy 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. 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énete

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, melyet az Apple Newton PDA-ban kívánt felhasználni. A fejlesztés eredménye lett a Hobbit, melynek 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:

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.” 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 részesedését az ARM-nak, 800 millió dollárt ért.

É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, mely a hasonnevű, a GO Corporation PenPoint operációs rendszerét futtató korai PDA-t készítette, melyben 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 gyártását 1994-ben meg is szüntették.

Jellemzői

A Hobbit processzor fejlődésének első állomása volt a C Machine, melynek különböző fajtáival a Bell Labs már 1975 óta kísérletezett, de fejlesztését 1980-ban kezdték el. Ennek során a javasolt architekturális jellemzőkkel felépítettek egy szimulátort, ezzel párhuzamosan kifejlesztettek egy C nyelvű fordítóprogramot, melynek tárgykódját a szimulátoron futtatták; ezzel az új architektúra teljesítményét tesztelték. 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. Teljesítménye jóval meghaladta a (hasonló órajelű) DEC VAX-11/780 és kevéssel a MIPS R2000 teljesítményét.

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ás-végrehajtás, és a nagy teljesítmény. 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.

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

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.

Jegyzetek

  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. dátummal az eredeti címről archiválva. Hozzáférés: 2009. május 15.
  5. 1 2 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 (1993. május 17.). "COULD AT&T RULE THE WORLD?". CNN. 2009. február 3. dátummal az eredeti címről archiválva. Hozzáférés: 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 (1987). CRISP: A Pipelined 32b Microprocessor with 13Kb of Cache Memory (pdf) (angol nyelven). Bell Labs. 1–12. o. doi:10.1109/JSSC.1987.1052813.[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. 1 2 Scavuzzo, Robert J. (1992. augusztus 10.). The Hobbit Microprocessor for Personal Communicators (pdf) (angol nyelven). Hot Chips Symposium. 1–14. o.
  13. ↑ Scavuzzo p.21
  14. ↑ Sima Dezső, Fountain Terence, Kacsuk Péter (1998). "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. Bicske: SZAK Kiadó. 370. o. ISBN 963 9131 09 1. 2016. március 5. dátummal az eredeti címről archiválva. Hozzáférés: 2013. november 24.{{cite book}}: CS1 karbantartás: több név: szerzőfelsorolás (link)
  15. ↑ ATT2100 Microprocessor Hardware Specification (PDF) (angol nyelven). AT&T. 1991. március 31. 156. o. RELEASE 1.7.2. 2013. december 3. dátummal az eredeti (PDF) címről archiválva. Hozzáférés: 2013. november 24.

Fordítá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

További információk

Kapcsolódó szócikkek