HP Saturn - HP Saturn
![]() | |
Návrhář | Hewlett Packard |
---|---|
Bity | Hybridní 64bitové GPR, 20bitová adresová sběrnice, 4bitová datová cesta, 4bitová minimální velikost slova |
Představený | 1984 |
Verze | "Úroveň 2" |
Design | CISC |
Typ | Kombinace a Load-store architektura s některými výjimkami, které spadají do EU Zaregistrujte architekturu paměti rodina |
Kódování | Variabilní |
Větvení | Noste bit, „lepkavý“ bit a další registry příznaků |
Endianness | Malý Endian |
Velikost stránky | K dispozici není MMU ani stránkování |
Rozšíření | Pouze rozšíření pro emulované PAŽE "virtuální" CPU na bázi |
Otevřeno | Proprietární |
Předchůdce | Matice |
Registry | |
Devět 64bitových registrů GPR a „scratch“, dva 20bitové registry „datového ukazatele“ a další různé registry | |
Obecný účel | Čtyři 64bitové GPR |
Plovoucí bod | Žádné registry FPU |
Vektor | Žádné vektorové registry |
The Saturn rodina 4-bit ( datová cesta ) mikroprocesory byl vyvinut společností Hewlett Packard v 80. letech první pro HP-71B kapesní počítač a později pro různé kalkulačky HP (počínaje HP-18C ). To se podařilo Matice rodina procesorů používaných v dřívějších kalkulačkách. Původní Saturn čip byl poprvé použit v HP-71B ruční ZÁKLADNÍ -programovatelný počítač, představený v roce 1984. Pozdější modely rodiny poháněly populární Řada HP 48 kalkulaček. HP48SX a HP48S byly posledními modely, které používaly originální procesory Saturn vyráběné společností HP. Pozdější modely kalkulačky používaly procesory Saturn vyráběné společností NEC. The Řada HP 49 zpočátku používal také procesor Saturn, až do NEC fab[poznámka 1] v roce 2003 nemohl procesor z technických důvodů vyrábět. Proto počínaje HP 49 g + modelu v roce 2003, kalkulačky přešly na a Samsung S3C2410 procesor s ARM920T jádro (součást ARMv4T architektura), kde běžel emulátor hardwaru Saturn v softwaru. V roce 2000 HP 39G a HP 40G byly posledními kalkulačkami představenými na základě skutečného NEC vyrobeného hardwaru Saturn. Poslední kalkulačky založené na emulátoru Saturn byly HP 39gs, HP 40 g a HP 50 g v roce 2006, stejně jako revize hp 48gII. HP 50g, poslední kalkulačka využívající tento emulátor, byla ukončena v roce 2015, kdy společnost Samsung přestala vyrábět procesor ARM, na kterém byla založena.[1][2][3]
Architektura
Saturn hardware je a okusovat seriál design[4] na rozdíl od jeho Matice předchůdce, kterým byl bitové sériové číslo.[5] Interně má procesor Saturn čtyři 4bitové datové sběrnice, které umožňují téměř 1 cyklus na výkon nibble, přičemž jedna nebo dvě sběrnice fungují jako zdroj a jedna nebo dvě fungují jako cíl.[4] Nejmenší adresovatelný slovo je 4-bit okusovat který může mít jeden binárně kódované desetinné místo (BCD) číslice. Jakákoli jednotka dat v registrech větší než nibble, ve které konec uvedené datové jednotky spadne na hranici nibble a začátek uvedené datové jednotky začíná na nibble nule (a také v některých případech, kdy počáteční pozice uvedené datové jednotky spadne na hranice nibble s určitými poli registru, např. „M“ nebo „X“), která může mít až 64 bitů, lze provozovat jako celek, ale procesor Saturn provádí operaci sériově interně na nibble-by - nibble základ.[4]
Architektura Saturn má 64-bit šířka datového slova a šířka 20bitové adresy s adresováním paměti 4-bit (okusovat ) zrnitost. Pokyny Saturn ALU podporují proměnnou šířku dat a fungují na jednom až 16 kouscích slova. Hlavní registry (GPR ), spolu s dočasnými registry, jsou plně 64bitové široké, ale adresní registry jsou široké pouze 20bitové. Původní čipy CPU Saturn poskytovaly čtyřbitovou externí datovou sběrnici, ale později byly SoC založené na Saturn zahrnuty při převodu čipové sběrnice na 8bitovou externí datovou sběrnici a 19bitovou externí sběrnici adres.
Architektura Saturn má čtyři 64bitové GPR (General Purpose Registers), pojmenované A, B, C a D. Kromě toho existuje také pět 64bitových „scratch“ registrů s názvem R0, R1, R2, R3 a R4. Mohou ukládat pouze data. Pokud je pro data v zápisném registru vyžadována operace ALU, musí být dotyčný registr nejprve přenesen do GPR. Jiné registry zahrnují registr „ukazatele“ s 1 nibble s názvem P, který se obvykle používá k výběru nibble v GPR nebo v rozsahu nibbles (nebo pro zarovnání okamžitých dat na konkrétní nibble v GPR, s wrap-around). Pro přístup do paměti existují dva 20bitové registry datových ukazatelů s názvem D0 a D1. Architektura Saturn má také PC nebo počítadlo programů registr, který může spolupracovat s GPR. Při vydání instrukce volání podprogramu se také používá 8úrovňový kruhový 20bitový hardwarový zpětný zásobník LIFO s názvem RSTK. Kromě toho je procesor Saturn vybaven 16bitovým softwarovým stavovým registrem s názvem ST a 1-nibbleovým stavovým registrem hardwaru s názvem HS, který zejména obsahuje příznak SB nebo „sticky bit“ označující, zda byla binární 1 správně posunuta z GPR. Kromě toho má architektura Saturn 12bitový registr OUT a 16bitový registr IN, které se v Yorke a Clarke SoC používají ke snímání vstupu z klávesnice a také k ovládání zvukového signálu. K dispozici je také 1bitový registr příznaků přenosu.
Kromě výše uvedeného má procesor Saturn jednoduchý nepřerušovaný systém bez priorit. Když dojde k přerušení, CPU dokončí provádění aktuální instrukce, uloží čítač programu do hardwarového návratového zásobníku (RSTK) a přeskočí na adresu 0x0000Fh hex, kde předchozí hodnota je v nibbles.[4] CPU také interaguje přímo s logikou skenování klávesnice.
Následující diagram zobrazuje registry (přičemž každý bílý čtverec je 4 bity / nibble kromě příznaku Carry, který je 1 bit):

Saturn 64-bit GPR formát a pole registru:
Bity | 63-60 | 59-56 | 55-52 | 51-48 | 47-44 | 43-40 | 39-36 | 35-32 | 31-28 | 27-24 | 23-20 | 19-16 | 15-12 | 11-8 | 7-4 | 3-0 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Okusovat | F | E | D | C | B | A | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
Pole | XS | B | |||||||||||||||
A | |||||||||||||||||
S | M | X | |||||||||||||||
Ž | |||||||||||||||||
P = 0 | P | ||||||||||||||||
P = 7 | WP |
K datům v registrech pro obecné účely lze přistupovat prostřednictvím polí, která spadají na hranice nibble, zatímco registry scratch umožňují pouze operace načítání a ukládání. Pole, jak je znázorněno ve výše uvedeném diagramu, jsou W (celý 64bitový GPR), A (prvních 5 nibbles GPR), S (nejvýznamnější nibble GPR), XS (nibble 2 GPR), M (nibbles 3-14 GPR), X (první 3 nibbles GPR) a B (první bajt GPR). Kromě toho existuje pole P, které vybírá nibble z GPR na základě 4bitové hodnoty registru P. Existuje také pole WP, které vybírá nibble 0 přes nibble vybrané v registru P. 64 bitů (16 nibbles) může obsahovat kódované ve formátu BCD čísla s plovoucí desetinnou čárkou složený z a podepsat okusovat (což je "9", pokud je číslo záporné), 12 mantisa číslice a 3místný exponent komplementu 10 uložený v BCD formátu (± 499).[6] Interní reprezentace hodnot s plovoucí desetinnou čárkou BCD je 15místná mantisa s jedním znaménkem v jednom registru kombinovaným s 20bitovým exponentem ve formátu doplňku 10 v jiném registru. Použití BCD místo přímého binárního vyjádření je pro kalkulačky výhodné, protože se vyhýbá zaokrouhlování problémy, které se vyskytují na internetu binární / desítková konverze.
Adresy CPU Saturn jsou také založené na okusování. Strom ukazatel registry (včetně počítadlo programů ) a adresa registry jsou široké 20 bitů. Díky tomu může architektura Saturn adresovat 1 M křupky nebo ekvivalentně 512 K. bajtů. Kromě této velikosti (např. U 48GX) přepínání bank se používá.
V řadách HP 48S / SX a 48G / GX a také v takových kalkulačkách jako HP-28S, HP-42S, HP-32SII a HP-20S Saturn Jádro CPU je integrováno jako součást složitějšího integrovaný obvod (IC) SoC balíček, kromě původního ručního počítače HP-71B a HP-28C, který používal samostatný čip pro procesor Saturn. Tyto balíčky mají kódové názvy inspirované členy Expedice Lewise a Clarka. Krycí jméno IC je Clarke v S / SX, po William Clark, a Yorke v G / GX, po Clarkově sluha. Jiné integrované obvody založené na Saturnu, jako například ty používané v HP-28S, HP-42S, HP-32SII a HP-20S, měly jiné krycí názvy. Konkrétně měl SoC HP-42S a HP-28S kódový název Lewis, po Meriwether Lewis. Jiné kalkulačky HP, jako jsou HP-32SII a HP-20S, měly kódové označení SoC Sacajawea po Sacagawea a Bert respektive, přestože původ Bert kódové jméno může být neznámé.
Příklad kódu
Následuje celočíselná implementace algoritmu desítkové odmocniny BCD v syntaxi sestavy Saturn Jazz / HP Tools:
** V následujícím AW se předpokládá, že obsahuje argument (<1E14). ** Výsledek (IP (SQRT (AW))) je v CW: SETDEC ASL WC = AWA = A + AWA = A + AWA = A + CW ASR WC = 0 WP = 13 LC (1) 5 - CSR WP C = C-1 P - C = C + 1 PA = AC W GONC - A = A + CW CSR WP = P-1 P = P -1 GONC - SETHEX A = CW
Čipové sady a aplikace
Původní procesor Saturn pojmenoval celek architektura sady instrukcí. Pozdější čipy měly své vlastní kódové názvy:
Úroveň ISA | Krycí jméno procesoru | Používá se v modelech kalkulačky | Vlastnosti |
---|---|---|---|
0[7][8] | Saturn (1LF2) | HP-44A, HP-71B (1984) | |
1[7][8] | Saturn (1LK7) | HP-18C (1986), HP-28C (1987), HP-71B | 640 kHz, další pokyny |
2[7][8] | Bert[9] (1LU7)[9] | HP-10B (1988), HP-20S (1988), HP-21S | 640 kHz, 10 KB ROM, 256 bajtů RAM, ovladač LCD |
2[7][8] | Sacajawea[9] (1LR3) | HP-14B, HP-22S, HP-32S (1988), HP-32S +, HP-32SII (1991) | 640 kHz, 16 KB ROM, 512 bajtů RAM, ovladač LCD |
2[7][8] | Lewis[9] (1LR2) | HP-17B (1988), HP 17BII (1990), HP-19B (1988), HP 19BII (1990), HP-27S (1988), HP-28S (1988), HP-42S (1988) | 1 MHz, 64 KB ROM, ovladač LCD, řadič paměti, IR ovládání, 3V CMOS |
2[7][8] | Clarke[9] (1LT8)[9] | HP 48SX (1990), HP 48S (1990) | 2 MHz, řadič LCD, řadič paměti, UART a IR ovládání, další pokyny |
2[7][8] | Yorke[9] 00048-80063[10] | HP 38G (1995), HP 38G + (1998), HP 39G (2000), HP 40G (2000), HP 48GX (1993), HP 48G (1993),[poznámka 1] HP 48G + (1998), HP 49G (1999) | 3,68-4 MHz, řadič LCD, řadič paměti, ovládání UART a IR, výrobce NEC, další pokyny, někdy také známé jako Saturn 5 plošina |
? | New Yorke | HP 48GX prototyp | 8 MHz, řadič LCD, řadič paměti, ovládání UART a IR. Toto bylo vyrobeno pouze jako interní prototyp HP a nikdy nebylo vydáno ve volné přírodě[11]. |
2[7][8][pozn. 2] | Jablko série (Velké jablko,[9] Mid Apple,[9] Malé jablko) | hp 39 g + (2003), HP 39gs (2006), HP 40 g (2006), hp 49g + (2003), hp 48gII (2003/2007), HP 50 g (2006) | Virtuální verze Yorke CPU emulovaná členy 48/75 MHz Samsung S3C2410 rodina procesorů s ARM920T jádro (z ARMv4T architektura) aka Saturn + s dalšími virtuálními pokyny |
Krycí jména CPU jsou inspirována členy Expedice Lewise a Clarka z let 1804–1806, první pozemní expedice Spojených států k Pobřeží Pacifiku a zpět. Virtuální kryptografické názvy CPU / emulátorů byly inspirovány prototypem 8MHz SoC založeným na New Yorke, který se nikdy nedostal do výroby.[12] Podle jednoho z členů ACO (Australian Calculator Operation) bylo „Big Apple“ odvozeno od krycího jména „New-Yorke“ prototypu SoC založeného na 8MHz Saturn, které původnímu autorovi připadalo jako důvěrný odkaz na „New York“ město, odtud názvy „velké jablko“, „střední jablko“ a „malé jablko“.[12]
Poznámky
Reference
- ^ Kuperus, Klaas (04.03.2015). „HP 50g: Konec éry“. forum.hp-prime.de. Morava. Archivovány od originál dne 02.04.2015.
- ^ Kuperus, Klaas (06.03.2015). „HP 50g není tak dobrá zpráva?“. Muzeum HP. Morava. Archivováno z původního dne 2018-07-08. Citováno 2016-01-01.
- ^ Wessman, Timothy James (2015-12-26). „Windows 10 neumožní instalaci ovladačů HP 50g USB“. Muzeum HP. Archivováno z původního dne 2018-07-08. Citováno 2016-01-01.
- ^ A b C d HP-71B Hardware Internal Design Specification Vol 1. Hewlett Packard Corporation. Září 1984. str. 3-1.
- ^ Specifikace procesoru HP-41C, ovladače displeje, HP-IL, úložiště dat, časovače IC a rozhraní IC. Hewlett Packard Corporation. Červenec 1981. str. 5.
- ^ Fernandes, Gilbert (16. 7. 2005) [29.01.1999]. "Kapitola 56.1 Reálné číslo". V Rechlin, Eric (ed.). Úvod do jazyka Saturn Assembly. hpcalc.org (3. vyd.). p. 104. ID 1693. Archivováno od originálu dne 2018-11-13. Citováno 2019-04-29.
Pokud je exponent záporný, exponent je zakódován jako „1000 - ABS (exponent)“
[1] - ^ A b C d E F G h Donnini, Giuseppe (26.06.2020). ""New-Yorke „?“. www.hpmuseum.org. Citováno 2020-07-06.
- ^ A b C d E F G h „Manuál pro montážní stroje Saturn“. www.hpcalc.org. Hewlett Packard. 1993-08-20. Citováno 2020-07-06.
- ^ A b C d E F G h i Finseth, Craig A. (2016-12-23). "jména". Archivováno od originálu 21. 12. 2017. Citováno 2017-12-21.
- ^ Arnett, Dave (05.05.1994). „Pojmenujte ten čip!“. Diskusní skupina: comp.sys.hp48. Archivováno z původního dne 2019-04-29. Citováno 2019-04-22.
- ^ de Brébisson, Cyrille (2020-06-17). „RE:„ New-Yorke “?“. www.hpmuseum.org. Citováno 2020-06-18.
- ^ A b de Brébisson, Cyrille (16. června 2020). „RE:„ New-Yorke “?“. www.hpmuseum.org. Citováno 2020-06-18.
Další čtení
- Mastracci, Matthew (1998) [1995]. „Průvodce procesorem Saturn (s aplikacemi HP48)“. 1,0b. Archivovány od originál dne 06.08.2016. Citováno 2006-05-03.
- Courbis, Paul; Lalande, Sébastien (2006-06-27) [1989]. Voyage au center de la HP28c / s (ve francouzštině) (2 ed.). Paříž, Francie: Editions de la Règle à Calcul. OCLC 636072913. Archivováno z původního dne 2016-08-06. Citováno 2015-09-06. [2] [3] [4] [5] [6] [7]
- Courbis, Paul; Lalande, Sébastien (2006-06-25) [1993]. Strojní jazyk HP48 - cesta do středu HP 48s / sx. Přeložil Cannon, Douglas R. (2. vyd.). Corvallis, Oregon, USA: Grapevine Publications, Inc. OCLC 34148948. Archivováno od originálu 14. 11. 2018. Citováno 2015-09-06. [8] [9] [10] [11] [12] [13]
- Courbis, Paul; Lalande, Sébastien (2006-06-25) [1991]. Cesta do centra HP48 s / sx. 3,02 (ve francouzštině) (3. vydání). Paříž, Francie: Edice Angkor. ISBN 2-87892-003-1. OCLC 29640044. Archivováno od originálu 13. 11. 2018. Citováno 2015-09-06. [14] [15] [16] [17] [18] [19] [20]
- Courbis, Paul (2006-06-25) [1993]. Voyage au center de la HP48 g / gx. 3,05 (ve francouzštině) (3. vydání). Paříž, Francie: Edice Angkor. ISBN 2-87892-006-6. OCLC 29640044. Archivováno od originálu 2016-08-06. Citováno 2015-09-06. [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32]
- Courbis, Paul; de Brébisson, Cyrille (Březen 1994). Kompaktní loď Voyage de la HP48 G / GX (francouzsky). Paříž, Francie: Edice Angkor. ISBN 2-87892-007-4. Archivovány od originál dne 06.08.2016. Citováno 2015-09-06. [33]
- Fernandes, Gilbert (16. 7. 2005) [29.01.1999]. Rechlin, Eric (ed.). Úvod do jazyka Saturn Assembly. hpcalc.org (3. vyd.). ID 1693. Archivováno od originálu 2016-08-06. Citováno 2009-02-17. [34]