利用者:Monadaisuki/sandbox
登録利用者は自分用の利用者サンドボックスを作成できます(サンドボックスを作成する 、解説)。
その他のサンドボックス: 共用サンドボックス | モジュールサンドボックス
記事がある程度できあがったら、編集方針を確認して、新規ページを作成しましょう。
HP Saturn(英語版を翻訳)
4bit マイクロプロセッサ(CPU)のSaturnファミリーはプログラミング科学技術電卓あるいは小型コンピューター向けとして1980年代にヒューレット・パッカード社によって開発された。
Saturnは以前の電卓に使われたNutファミリープロセッサの後を引継いだ。
最初のSaturnチップセットは1984年に発売されたBASIC言語でプログラミング可能なHP-71Bハンドヘルドコンピューター(日本で言うところのポケコン)に搭載された。
Saturnファミリーのその後のモデルは数あるHP製品の中でも普及したHP 48 シリーズ電卓に特に多く搭載された。
HP 49/50 シリーズも最初だけ同様にSaturn CPUを搭載した。しかし、NECの工場が2003年に技術的理由でSaturnプロセッサの製造をすることができなくなった。
そのため、2003年に発売されたHP 49g+からは、ソフトウェアでSaturn CPUのエミュレーターを動かすためにARM920T(ARMv4Tアーキテクチャ)をコアとした Samsung S3C2410 プロセッサを使うように変更した。
2000年に発売されたHP 39GとHP 40GはSaturnプロセッサを搭載した最後の電卓になった。
Saturnエミュレーターを搭載した最後の電卓は2006年に発売されたHP 39gs、HP 40gs、HP 50gの三機種とhp 48gIIの2007年版であった。
特にHP 50gはSaturnエミュレーターを搭載した電卓の中で最も遅くまで製造されていた。サムスン電子がHP 50g用のARMプロセッサの製造を中止したので、2015年にHP 50gも製造中止になった。[1] [2] [3]
アーキテクチャ
Saturnアーキテクチャはデータの基本単位がニブル(4bit)単位である。1ニブルで1桁のBCD(二進化十進数)を保持できる。
Saturnマイクロプロセッサは64bitと20bitのハイブリッドCPUのように見えるが、4bit CPUのような動作をする。プログラム上でニブル(4bit)単位のデータを扱い、ニブル(4bit)単位のアドレスシステムを使うからである。
メインレジスタのA,B,C,Dとスクラッチレジスタ(一時記憶用)のR0,R1,R2,R3,R4は64bit幅であるが、データレジスタのD0とD1は20bitである。
外部アクセス時の論理的な4bitデータフェッチは8bitの物理フェッチに自動的に変換される。つまりプログラム上はニブル(4bit)単位アクセスをしても実際には8bitでアクセスし、そのうちの4bitだけを使う。
物理的に説明すると、最下位のアドレスビットが1byte(8bit)中の上位ニブル(4bit)なのか下位ニブル(4bit)なのかを示しているので、実際には19bitのバイト単位アドレス空間しかないことになる。
Saturnの64bitレジスタフォーマット:
s:正負符号、m:仮数、x:指数、w:ワード、b:バイト
Bits | 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 | A | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Register field | wwww | wwww | wwww | wwww | wwww | wwww | wwww | wwww | wwww | wwww | wwww | wwww | wwww | wwww | wwww | wwww |
Number field | ssss | mmmm | mmmm | mmmm | mmmm | mmmm | mmmm | mmmm | mmmm | mmmm | mmmm | mmmm | mmmm | xxxx | xxxx | xxxx |
Address field | ???? | ???? | ???? | ???? | ???? | ???? | ???? | ???? | ???? | ???? | ???? | aaaa | aaaa | aaaa | aaaa | aaaa |
Byte field | ???? | ???? | ???? | ???? | ???? | ???? | ???? | ???? | ???? | ???? | ???? | ???? | ???? | ssss | bbbb | bbbb |
Satrunは4つの汎用レジスタ(A,B,C,D)と5つのスクラッチレジスタ(R0-R4)を持っており、それらは64bit幅である。汎用レジスタのデータはニブル単位でアクセスすることができる。一方、スクラッチレジスタはロードとストアしかできない。
その64bitレジスタ(つまり16ニブル)は、1ニブルの正負符号、12桁(12ニブル)の仮数部、そして3桁(3ニブル)の指数部(範囲は±499)[4] で構成されたBCD浮動小数点数を格納することができる。直接的な2進数表現の代わりにBCD(二進化十進数)を使うと、2進数/10進数変換時の丸め誤差を回避できるという利点がある。
メモリ使用効率を最適化するためにSaturnのアドレスはニブル単位である。3つのポインタレジスタ(プログラムカウンタ含む)とアドレスデータパスは20bit幅である。それゆえにSaturnアーキテクチャは1Mニブル = 512 KBをアドレスできる。
HP 48GXのように512 KBを越えるアドレスが必要な場合はバンク切替が使われる。
HP 48S/SX と HP 48G/GX シリーズにおいて、Saturn CPUコアはより複雑なIC(集積回路)の一部として組込まれている。
これらのICパッケージはルイス・クラーク探検隊の隊員にちなんだコード名を付けられている。HP 48S/SXの場合、ウィリアム・クラークにちなんでICのコード名はClarkeである。HP 48G/GXの場合、クラークの従僕にちなんでICのコード名はYorkeである。
ちなみに旧機種のHP-28SのSaturn搭載ICはルイス・クラーク探検隊のメリウェザー・ルイスにちなんでLewisというコード名であった。
Saturn搭載チップセットとその応用製品
最初のSaturn CPUという名前はチップ全体を指していた。後にチップはSaturn CPUとメモリだけでなく周辺回路も搭載するようになったので、チップセットになった。各チップセット毎に搭載している周辺回路なども異なるので、各チップセットはコード名で区別されるようになった。
チップセットのコード名はルイス・クラーク探検隊(1804-1806)の隊員にちなんだコード名を付けられている。
ルイス・クラーク探検隊はアメリカ合衆国で最初に陸路で西海岸まで到達し、生還した探検隊である(当時のアメリカ合衆国はアメリカ大陸の東側の一部だけであった)。
Level | コード名 | 応用製品 | 特性 |
---|---|---|---|
0 | Saturn (1LF2) | HP-44A, HP-71B (1984) | |
? | 1LJ7 | ThinkJet プリンター (1984)
HP Integral PC (1985)に搭載されたプリンターである。 |
|
1 | Saturn (1LK7) | HP-18C (1986), HP-28C (1987), HP-71B | CPU : 640 kHz, 命令追加 |
Bert (1LU7) | HP-10B (1988), HP-20S (1988), HP-21S |
※(注記)ここからCPU,RAM,ROM以外のものも搭載するようになったので、コード名が付与された。 | |
Sacajawea (1LR3, 1LE2) | HP-14B, HP-22S, HP-32S (1988), HP-32S+, HP-32SII (1991) |
| |
Lewis (1LR2, 1LT8) | HP-17B (1988), HP 17BII (1990), HP-19B (1988), HP 19BII (1990), HP-27S (1988), HP-28S (1988), HP-42S (1988) | 3V CMOSで製造された。
| |
2 | Clarke (1LT8) | HP 48SX (1990), HP 48S (1990) |
|
3 | Yorke (1LT8) | HP 38G (1995), HP 38G+ (1998), HP 39G (2000), HP 40G (2000), HP 48GX (1993), HP 48G (1993), HP 48G+ (1998), HP 49G (1999) |
※(注記)NECで製造された。時折、Saturn 5 プラットフォームとしても知られている。 |
New-Yorke | HP 48GX prototype |
※(注記)HP内部の試作品として作られただけ。市場には決して出ていない。 | |
4 | Apple series (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) | 前述のYorke CPUの仮想バージョン(エミュレーター)である。
ARM920Tコア(ARMv4Tアーキテクチャ)のSamsung S3C2410 プロセッサファミリー 48/75 MHz によってYorke CPUエミュレーターが動作した。 追加された仮想命令はSaturn+という。 |
出典
- ^ Kuperus, Klaas (2015年3月4日). "HP 50g: End of an era". Moravia. 2015年4月2日時点のオリジナルよりアーカイブ。accessdate引数が正しくありません。
- ^ Kuperus, Klaas (2015年3月6日). "HP 50g not so good news?". Moravia. 2016年1月1日閲覧。
- ^ Wessman, Tim (2015年12月26日). "Windows 10 won't allow HP 50g USB drivers to be installed". HP Museum. 2016年1月1日閲覧。
- ^ "Introduction to Saturn Assembly Language (PDF)" (P104 "56.1 Real number")によると、負の指数を表現するとき、1000 - ABS(exponent) で計算した値を格納する。例えば、-499の場合、指数として1000-|-499|=501を格納することになる。つまり501以上の指数は負の指数とみなす。そのため、指数の範囲は-499〜+500となるが、HP 50gの実機で確認したところ-499〜+499までしか指数は使えないので、+500はあえて使わないようにしているのだろう。
参考文献
- "Guide to the Saturn Processor (With HP48 Applications)" (1998年). 2016年8月6日時点のオリジナルよりアーカイブ。2006年5月3日閲覧。
- (French) Voyage au centre de la HP28c/s (2 ed.). Paris, France: Editions de la Règle à Calcul. (2006年06月27日). OCLC 636072913. オリジナルの2016年08月06日時点におけるアーカイブ。. https://web.archive.org/web/20160806084555/http://www.courbis.fr/Voyage-au-centre-de-la-HP28-c-s,17.html 2015年9月6日閲覧。 [1] [2] [3] [4] [5] [6]
- HP48 Machine Language - A Journey to the Center of the HP 48s/sx (2nd ed.). Corvallis, Oregon, USA: Grapevine Publications, Inc.. (2006年06月25日). OCLC 34148948 . http://www.courbis.fr/spip.php?article21 2015年9月6日閲覧。 [7] [8] [9] [10] [11] [12]
- (French) Voyage au centre de la HP48 s/sx (3rd ed.). Paris, France: Editions Angkor. (2006年06月25日). ISBN 2-87892-003-1. OCLC 29640044 . http://www.courbis.fr/spip.php?article20 2015年9月6日閲覧。 [13] [14] [15] [16] [17] [18] [19]
- (French) Voyage au centre de la HP48 g/gx (3rd ed.). Paris, France: Editions Angkor. (2006年06月25日). ISBN 2-87892-006-6. OCLC 29640044. オリジナルの2016年08月06日時点におけるアーカイブ。. https://web.archive.org/web/20160806140746/http://www.webring.org/l/rd?ring=hp48;id=100;url=http%3A%2F%2Fwww%2Ecourbis%2Efr%2FVoyage%2Dau%2Dcentre%2Dde%2Dla%2DHP48%2Dg%2Dgx%2C18%2Ehtml 2015年9月6日閲覧。 [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31]
- (French) Le compagnon de Voyage de la HP48 G/GX. Paris, France: Editions Angkor. (March 1994). ISBN 2-87892-007-4. オリジナルの2016年08月06日時点におけるアーカイブ。. https://web.archive.org/web/20160806135932/http://www.courbis.fr/Le-compagnon-de-voyage-de-la-HP48.html 2015年9月6日閲覧。 [32]
- Eric Rechlin, ed (2005年07月16日) (ZIP, PDF). Introduction to Saturn Assembly Language (3rd ed.). hpcalc.org. オリジナルの2016年08月06日時点におけるアーカイブ。. https://web.archive.org/web/20160806131408/http://www.hpcalc.org/details.php?id=1693 2009年2月17日閲覧。 [33]