Rekursiv - Rekursiv
Rekursiv byl procesor počítače navrhl David M. Harland v polovině 80. let v divizi hifi výrobce Produkty Linn. Byl to jeden z mála počítačové architektury zamýšlel provést objektově orientovaný koncepty přímo v hardwaru, forma počítačová architektura na vysoké úrovni. Rekursiv fungoval přímo na objektech, nikoli na bitech, okusováních, bytech a slovech. Virtuální paměť byl použit jako trvalé úložiště objektů a neobvykle byla podporována sada instrukcí procesoru rekurze (odtud název).
V době, kdy projekt přinesl první implementaci, měli noví zpracovatelé rádi Sun SPARC a Intel 486 překonal svůj výkon a od vývoje bylo upuštěno v roce 1988.
Dějiny
Projekt Rekursiv začal jako snaha o zlepšení montážní linka kontroly v Linnových továrnách v Glasgow, Skotsko. Jejich linky byly automatizovány pomocí sady VAX-11 systémy, ale ty byly pomalé a velmi obtížně programovatelné s flexibilitou, kterou Linnův zakladatel, Ivor Tiefenbrun, požadovaný. Na začátku 80. let se o tom Tiefenbrun přesvědčil objektově orientované programování nabídne řešení těchto problémů.[1]
V roce 1981 najal Tiefenbrun několik programátorů, aby napsali seminární verzi Pokec jazyk pro systémy VAX, vypůjčený z nějaké syntaxe ALGOL. Systém známý jako LINGO fungoval, ale na platformě VAX běžel velmi pomalu. Tiefenbrun dospěl k závěru, že řešením problému s výkonem nebylo zlepšit jazyk na VAX, ale místo toho vytvořit zcela nový CPU určený speciálně pro spouštění objektových programů.[1]
V roce 1984 založila Tiefenbrun stoprocentní dceřinou společnost Linn Smart Computing pod vedením společnosti University of Strathclyde profesor David Harland a vznikl projekt Rekursiv. První verze systému se objevila v roce 1988.[1] Malý počet prototypů VMEbus desky, tzv Hades, obsahující tyto čtyři čipy plus 80 MB RAM byly vyrobeny. Ty byly určeny pro instalaci v hostitelském systému, jako je Ne-3 pracovní stanice. Ačkoli Rekursiv nebyl nikdy plně vyvinut a nebyl komerčním úspěchem, bylo v akademických výzkumných projektech v EU použito několik desek Hades Spojené království. Poslední známá kopie počítače Rekursiv skončila ve spodní části Forth a Clyde kanál v Glasgow.[2]
Podle příspěvku výzkumného pracovníka na University of Strathclyde, zatímco se vyvíjel systém Rekursiv, byla napsána nová verze jazyka LINGO pro Sun SPARC systém, který se objevil přibližně v této době. Běžel dvakrát rychleji než hardware Rekursiv, takže úsilí bylo zbytečné.[3] Někdy poté byla společnost odstavena.[A]
Popis
Základní pojmy
Základním konceptem rekurzivské formy bylo poskytnout hardwarovou podporu trvalé úložiště objektů, neustále a neviditelně zapisuje stav paměti na disk bez zásahu z operační systém nebo uživatelský program. Jeden recenzent to popsal jako „objektový databázový stroj pro vytváření a správu trvalých objektů“.[5]
Aby takový systém fungoval s přiměřeným výkonem při spouštění složitých programů, byl Rekursiv navržen tak, aby umožňoval programátorovi psát vlastní architektura sady instrukcí (ISA) věnovaný jazyku, který používali. The mikrokód instrukční sada byla uložena v statická RAM.[6] Neexistoval žádný výchozí ISA, ačkoli Linn dodával jeden pro spouštění programů v Programovací jazyk C..[7]
Zpracování paměti
Systém neposkytl analogii adresy paměti programům, které na něm běží, místo toho objekty dostaly 40bitový identifikátor, který čip Objekt hashoval a použil jako ukazatel na fyzickou paměť.[8] Objekt také zpracoval mapování paměti objektu na pevný disk pro trvalé uložení, implementace a virtuální paměť Systém. Zvládnout odvoz odpadu, Objekt rozdělil poskytnuté dynamická RAM (hlavní paměť) na dvě poloviny, přičemž jednu použijeme pro vytvoření nového objektu a druhou necháme nevyužitou. Když nový objekt bude vyžadovat více paměti, než bylo v použité části volné, Objekt pozastavil systém, zkopíroval jakýkoli objekt s platným ukazatelem na nevyužitou polovinu paměti a poté přepnul na dříve nevyužitou polovinu aktivní části. V případech extrémně omezených pamětí by se Objekt nejprve pokusil zařadit některé objekty na disk, a pokud by se nepodařilo uvolnit dostatek místa, využil by obě poloviny paměti.[9]
Objekty jsou složené struktury s více hodnotami, které jsou ve většině systémů implementovány jako řada ukazatelů na místa v paměti, která tyto hodnoty obsahují. V Rekursivu jsou adresy nahrazeny 40bitovými ID objektů, které ukazují na část paměti přidělenou Objektem. The nejvýznamnější bit (MSB) 40bitového ukazatele byl nastaven na 1, pokud byla hodnota identifikátorem objektu, nebo 0, pokud to byla netypická binární hodnota. Pozdější byl použit k ukládání velkých neformátovaných dat, jako jsou data pro digitální obraz, a mohl být použit pouze v rámci objektů.[9]
V případě úplného objektu bylo k dispozici další zjednodušení pro ukládání krátkých polí jako hodnot v samotném ukazateli. To bylo indikováno také nastavením druhého MSB na 0. V tomto případě následujících pět bitů označilo typ definovaný programem ISA, který může být „celé číslo“ nebo „fragment řetězce“. Skutečná hodnota tohoto „kompaktního objektu“ byla umístěna do dolních 32 bitů ukazatele. To umožnilo, aby byly takové jednoduché hodnoty okamžitě prezentovány procesoru, aniž by bylo nutné sledovat ukazatel na fyzické místo, což šetřilo paměť a zlepšilo výkon.[9][b]
Protože horní dva bity 40bitového ukazatele byly použity pro stavové příznaky, mohl Objekt identifikovat pouze 238 objekty celkem. Vzhledem k tomu, že objekty byly neustále shromažďovány odpadky, mnoho z těchto hodnot může ukazovat na neexistující objekty, což znamená, že v praxi by systému mohly docházet identifikátory. Za tímto účelem byl celý obraz systému pravidelně zapisován na disk, přičemž během této doby byly všechny ukazatele přečíslovány tak, aby byly po sobě jdoucí.[9]
Mikrokód
Sada instrukcí procesoru byla uložena ve vyhrazené oblasti statické paměti RAM známé jako „kontrolní úložiště“. Byl to přístup přes vyhrazenou 16bitovou sběrnici, organizovanou jako 16 384 slov po 128 bitech. Samostatná část „mapa kontrolního úložiště“ paměti SRAM obsahuje očíslovanou tabulku vstupních bodů do mikrokódovaných rutin a mapuje 10bitovou operační kód na jeden z 2 048 subjektů. V konvenčním procesoru by mapa byla obvykle implementována v drátové logice v dekodéru operačních kódů.[10]
Opcodes by mohly být součástí objektů a uloženy stejným způsobem, jako by jakákoli jiná data používala Objekt. Z důvodů výkonu si samostatná paměťová banka známá jako NAM (a NAMARG) rezervovala 524 288 40bitových slov s uložením 10bitových operačních kódů a 30bitových argumentů. NAM připojené přímo k procesoru přes vlastní sběrnici, takže v moderních architekturách funguje spíše jako mezipaměť.[10]
V praxi by vývojář programovacího jazyka nejprve nastínil assemblerový jazyk požadovali, což by byla základní syntaxe jazyka s až 2048 pokyny. Běžně používané rutiny, jaké najdete v stdlib v C, pak by byl kódován pomocí tohoto jazyka assembleru a zapsán do NAM. Simulace tomu nasvědčují Lisp rutiny psané tímto stylem fungovaly asi 20krát rychleji než a Symbolický stroj Lisp. Společnost také vyráběla podobné systémy mikrokódů pro Smalltalk a Prolog, což později snížilo složitou operaci sjednocení Prologu na jediný operační kód.[10]
Fyzické balení
Procesor Rekursiv se skládal ze čtyř hradlové pole pojmenované čipy Numerik (32-bit ALU ), Logik (instrukční řadič), Objekt (objektově orientovaný jednotka správy paměti ) a Klock (takt procesoru a logika podpory). Původní verze byly taktovány na 10 MHz.[10]
Společnost Linn měla v úmyslu prodat sadu čipů Rekursiv prodejcům a také vyrobit vlastní pracovní stanice používat to. Zpočátku byl jediným produktem „HADES“, „Hardware Accelerator for Dynamic Expert Systems“, který sestával z VMEbus kartu, kterou lze zapojit do a Ne-3 nebo Ne-4 pracovní stanice. HADES zahrnoval čtyři hlavní čipy, 2 MB SRAM 45 nanosekund (22 MHz) a 5 MB DRAM 100 ns (10 MHz). Přístup na disk zajišťoval program běžící na základním systému Sun, což výrazně omezovalo výkon.[10]
Poznámky
Reference
Citace
- ^ A b C Pountain 1988, str. 341.
- ^ Rose, Seb (19. dubna 2011). "Rekursiv". slideshare.net. Sdílení snímků. Citováno 27. února 2017.
- ^ Příběh Linn Rekursiv - REPOST
- ^ Lothian 1993.
- ^ Pountain 1988, str. 348.
- ^ Pountain 1988, str. 342.
- ^ Pountain 1988, str. 348-349.
- ^ Pountain 1988, str. 346.
- ^ A b C d Pountain 1988, str. 347.
- ^ A b C d E Pountain 1988, str. 349.
Bibliografie
- Pountain, Dick (listopad 1988). "Rekursiv: objektově orientovaný CPU". BYTE. 13 (12): 341–349.CS1 maint: ref = harv (odkaz)
- Lothian, James (15. března 1993). „Re: Rekursiv chip (docela dlouhý)“. Diskusní skupina: comp.arch. Usenet: [email protected].CS1 maint: ref = harv (odkaz)
Další čtení
- Harland, David M. (Srpen 1988). Rekursiv: Objektově orientovaná počítačová architektura (Ellis Horwood Series v počítačích a jejich aplikacích). Ellis Horwood Ltd. ISBN 0-13-771965-5.
- Baines, Rupert (březen 1990). "Užívání RISC". Svět osobních počítačů. 13 (3): 136–140.
- Harland, David M .; Gunn, Hamish I.E .; Pringle, Ian A .; Beloff, Bruno (září 1986). „Rekursiv: Architektura pro umělou inteligenci“. Proc. AI Europa.
- Harland, David M .; Beloff, Bruno (prosinec 1986). "Mikrokódování objektově orientované instrukční sady". Zprávy počítačové architektury ACM SIGARCH. Sdružení pro výpočetní techniku. 14 (5): 3. doi:10.1145/18981.18982. S2CID 17125054.
- Harland, David M .; Beloff, Bruno (duben 1987). "Objekt: Trvalé úložiště objektů s integrovaným sběračem odpadků". Oznámení ACM SIGPLAN. Sdružení pro výpočetní techniku. 22 (4): 70. doi:10.1145/24714.24723. S2CID 14704178.
- Rose, Seb. "Rekursiv".
- Harland, David M. „Objektově orientovaná počítačová architektura: - Koncepty a problémy - Objektová počítačová architektura REKURSIV“ (PDF).