A Saturn mikroprocesszorcsaládot a Hewlett-Packard fejlesztette ki az 1980-as években, programozható tudományos számológépek és mikroszámítógépek számára. Ez a HP korábbi kalkulátormodelljeiben használt Nut processzorcsaládot követte. Az eredeti Saturn csipkészletet először az 1984-ben bemutatott HP-71B BASIC nyelvű kézi számítógépben alkalmazták. A család későbbi modelljei hajtották például a népszerű HP 48 sorozat számológépeit, más modellek mellett.[1] A HP 49 sorozat kezdetben szintén Saturn CPU-t használt, míg a NEC IC gyár 2003-ban technikai okok miatt kénytelen volt leállni a processzor gyártásával. Ezért 2003-ban, a HP 49g+ modellel kezdődően, a számológépekben (ARMv4T architektúrájú) ARM920T magon alapuló Samsung S3C2410 processzor használatára váltottak, amelyben a Saturn architektúrát szoftveresen emulálták. 2000-ben a HP 39G és HP 40G modellek voltak az utolsó megjelent Saturn hardveren alapuló számológépek. Az utolsó Saturn emulátort alkalmazó számológépek a HP 39gs, HP 40gs és HP 50g voltak 2006-ban, valamint a hp 48gII 2007-es revíziója.
Architektúra
A Saturn architektúra nibble-alapú; azaz a mag adategysége (a nibble-nek is nevezett) 4 bit, amely egy binárisan kódolt decimális (BCD) számjegyet tartalmazhat.
A Saturn mikroprocesszor hardverszempontból egy hibrid 64/20 bites CPU, de úgy működik, mint egy 4 bites processzor, mivel a programok számára nibble-alapú adatokat nyújt és nibble-alapú címzési rendszert használ. Az A, B, C, D főregiszterek, az R0, R1, R2, R3, R4 ideiglenes regiszterekkel együtt teljes 64 bit szélesek, de a D0 és D1 adatregiszterek csak 20 bitesek. A külső logikai adatlehívásokat a processzor láthatatlanul (transzparens módon) 8 bites fizikai adatlehívásokká konvertálja. A processzornak 20 bites címsíne van, amely a kód számára rendelkezésre áll, de a magas/alacsony nibble kiválasztóbit jelenléte miatt kívülről csak 19 bit áll rendelkezésre.
A Saturn 64 bites regiszterformátuma:
bitek |
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
|
nibble |
F |
E |
D |
C |
B |
Egy |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0
|
regiszter mező |
wwww |
wwww |
wwww |
wwww |
wwww |
wwww |
wwww |
wwww |
wwww |
wwww |
wwww |
wwww |
wwww |
wwww |
wwww |
wwww
|
szám mező |
ssss |
mmmm |
mmmm |
mmmm |
mmmm |
mmmm |
mmmm |
mmmm |
mmmm |
mmmm |
mmmm |
mmmm |
mmmm |
xxxx |
xxxx |
xxxx
|
cím mező |
???? |
???? |
???? |
???? |
???? |
???? |
???? |
???? |
???? |
???? |
???? |
aaaa |
aaaa |
aaaa |
aaaa |
aaaa
|
bájt mező |
???? |
???? |
???? |
???? |
???? |
???? |
???? |
???? |
???? |
???? |
???? |
???? |
???? |
ssss |
bbbb |
bbbb
|
A Saturn-nak négy általános célú és öt (gyors, átmeneti adatok tárolására szolgáló) scratch regisztere van, amelyek 64 bit szélesek. Az általános célú regiszterekben az adatok nibble felbontásban (félbájtonként) elérhetőek és így használhatók a számításokban, míg az átmeneti regiszterek csak a betöltő és tároló műveletekben használhatók. A 64 bit (16 nibble) tartalmazhat BCD formátumban kódolt lebegőpontos számokat, amelyek egy plusz és mínusz előjelet tartalmazó nibble-ből (ssss, mint sign), 12 számjegyű mantisszából és egy 3 számjegyű kettes komplemens formátumban tárolt kitevőből (±499) állnak. A BCD használata a közvetlen bináris reprezentáció helyett előnyös a számológépekben, mivel elkerülhetők a bináris-decimális átváltáskor fellépő kerekítési problémák.
A memóriahasználat hatékonyságának optimalizálása miatt a Saturn címei szintén nibble-alapúak. A három mutatóregiszter (a programszámlálót is beleértve) és a cím-adatutak mind 20 bit szélesek, ezáltal a Saturn architektúra 1 Mi (mebi-) nibble, azaz 512 KiB (kibibájt) méretű memória címzésére képes. Efölött a méret fölött (például a 48GX-ben) bankváltást alkalmaznak.
Mind a HP 48S/SX, mind a 48G/GX sorozatban a Saturn processzormag egy sokkal komplexebb integrált áramkör-csomag beágyazott része. Ezek a csomagok nevüket az 1804-es amerikai Lewis–Clark-expedíció tagjai után kapták. Az IC kódneve Clarke az S/SX sorozatban, William Clark után, és Yorke a G/GX sorozatban, Clark inasa után. A Saturn-alapú IC-k előző sorozatának kódneve Lewis volt, Meriwether Lewis után.
Csipkészletek és alkalmazásuk
Az eredeti Saturn CPU adta a nevét a teljes architektúrának. A későbbi csipek saját kódnevet kaptak:
szint |
processzor kódnév |
számológépmodellek amelyekben felhasználták |
tulajdonságok
|
0
|
Saturn (1LF2)
|
HP-71B (1984)
|
|
1
|
Saturn (1LK7)
|
HP-18C (1986), HP-28C (1987), HP-71B
|
640 kHz, több utasítás
|
|
Bert (1LU7)
|
HP-10B (1988), HP-20S (1988), HP-21S
|
640 kHz, 10 KiB ROM, 256 bájt RAM, LCD vezérlő
|
|
Sacajawea (1LR3, 1LE2)
|
HP-14B, HP-22S, HP-32S (1988), HP-32S+, HP-32SII (1991)
|
640 kHz, 16 KiB ROM, 512 bájt RAM, LCD vezérlő
|
|
Lewis (1LR2, 1LT8)
|
HP-17B (1988), HP 17BII (1990), HP-19B (1988), HP 19BII (1990), HP-27S (1988), HP-28S (1988), HP-42S (1988)
|
1 MHz, 64 KiB ROM, LCD vezérlő, memóriavezérlő, IR vezérlő, 3V CMOS
|
2
|
Clarke (1LT8)
|
HP 48SX (1990), HP 48S (1990)
|
2 MHz, LCD vezérlő, memóriavezérlő, UART és IR vezérlés, több utasítás
|
3
|
Yorke (1LT8)
|
HP 38G (1995), HP 38G+ (1998), HP 39G (2000), HP 40G (2000), HP 48GX (1993), HP 48G (1993), HP 48G+, HP 49G (1999)
|
3,68–4 MHz, LCD vezérlő, memóriavezérlő, UART és IR vezérlés, gyártÓ: NEC, több utasítás, Saturn 5 platformként is ismert
|
|
New-Yorke
|
HP 48GX prototípus
|
8 MHz, LCD vezérlő, memóriavezérlő, UART és IR vezérlés. Ez csak belső HP prototípusként készült és nem került alkalmazásba.
|
4
|
Apple sorozat (Big Apple, Mid Apple, Little Apple)
|
hp 39g+ (2003), HP 39gs (2006), HP 40gs (2006), hp 49g+ (2003), hp 48gII (2003/2007), HP 50g (2006)
|
A Yorke CPU virtuális változata. 48/75 MHz-es Samsung S3C2410 (ARMv4T architektúra, ARM920T mag) ARM processzoron emulálva, más néven Saturn+, további virtuális utasításokkal.
|
A processzorcsalád kódneveit az 1804–1806-os Lewis–Clark-expedíció tagjai ihlették; ez volt az Egyesült Államok első szárazföldi expedíciója Észak-Amerika nyugati partjára és vissza.
Jegyzetek
Fordítás
Ez a szócikk részben vagy egészben a HP Saturn 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