| デザイナー | ヒューレット・パッカード |
|---|---|
| ビット | ハイブリッド 64 ビット GPR、20 ビット アドレス バス、4 ビット データパス、4 ビットの最小ワード サイズ |
| 紹介された | 1984 |
| バージョン | 「レベル2」 |
| デザイン | CISC |
| タイプ | ロード・ストアアーキテクチャとレジスタ・メモリアーキテクチャファミリーに属するいくつかの例外の組み合わせ |
| エンコーディング | 変数 |
| 分岐 | キャリービット、スティッキービット、その他のフラグレジスタ |
| エンディアン | リトルエンディアン |
| ページサイズ | MMU またはページングが利用できません |
| 拡張機能 | エミュレートされたARMベースの「仮想」CPUの拡張機能のみ |
| 開ける | 独自 |
| 前任者 | ナット |
| レジスター | |
| 9 つの 64 ビット GPR および「スクラッチ」レジスタ、2 つの 20 ビット「データ ポインタ」レジスタ、およびその他のさまざまなレジスタ | |
| 汎用 | 4 つの 64 ビット GPR |
| 浮動小数点 | FPUレジスタなし |
| ベクター | ベクトルレジスタなし |
Saturnファミリの4 ビット(データパス)マイクロプロセッサは、 1980 年代にHewlett-Packard 社によって開発されました。最初は 1984 年にリリースされたHP-71Bハンドヘルド コンピュータ向けに、後に HP のさまざまな計算機 ( HP-18Cから開始) 向けに開発されました。これは、以前の計算機で使用されていたNutファミリのプロセッサの後継です。HP48SX と HP48S は、HP 製の Saturn プロセッサを使用した最後のモデルであり、後のモデルではNEC製のプロセッサが使用されました。HP 49 シリーズは当初 Saturn CPU を使用していましたが、2003 年に NEC 工場[注 1]が技術的な理由でプロセッサを製造できなくなりました。2003年のHP 49g+モデル以降、計算機はARM920Tコア ( ARMv4Tアーキテクチャの一部)を備えたSamsung S3C2410プロセッサに切り替わり、Saturn ハードウェアのエミュレータがソフトウェアで実行されました。 2000年に発売されたHP 39GとHP 40Gは、NECが実際に製造したサターンハードウェアをベースにした最後の電卓だった。サターンエミュレーターを使用する最後の電卓は、 2006年のHP 39gs、HP 40gs、HP 50g、および2007年のhp 48gIIの改訂版だった。HP 50gは、ベースとなったARMプロセッサーの生産をサムスンが中止したため、2015年に製造中止となり、HPがこのエミュレーターを使用して販売した最後の電卓となった。[1] [2] [3]
建築
サターンのハードウェアは、ビットシリアルだった前身のNutとは対照的に、ニブルシリアル設計です[4]。[5]内部的には、サターンCPUには4つの4ビットデータバスがあり、1つまたは2つのバスがソースとして機能し、もう1つまたは2つがデスティネーションとして機能することで、ほぼ1ニブルあたり1サイクルのパフォーマンスを実現します。[4]アドレス指定可能な最小ワードは4ビットニブルで、1つの2進化10進数(BCD)桁を保持できます。ニブルよりも大きい、最大64ビットのレジスタ内のデータ単位は、全体として操作できますが、サターンCPUは内部でニブルごとにシリアルに操作を実行します。[4]
Saturn アーキテクチャには、64 ビットの内部レジスタ幅と 20 ビットのアドレスがあり、メモリは 4 ビット (ニブル) の粒度でアドレス指定されます。Saturn ALU 命令は可変データ幅をサポートし、1 ワードの 1 ~ 16 ニブルで動作します。オリジナルの Saturn CPU チップは 4 ビットの外部データ バスを提供していましたが、その後の Saturn ベースの SoC には、8 ビットの外部データ バスと 19 ビットの外部アドレス バスへのオンチップ バス変換が組み込まれました。
Saturn アーキテクチャには、A、B、C、D という 4 つの 64 ビットGPR (汎用レジスタ) があります。さらに、R0、R1、R2、R3、R4 という 5 つの 64 ビット「スクラッチ」レジスタもあります。これらはデータの保存のみ可能です。スクラッチ レジスタのデータに対して ALU 操作が必要な場合は、まずそのレジスタを GPR に転送する必要があります。その他のレジスタには、P という 1 ニブル「ポインタ」レジスタがあります。これは通常、GPR 内のニブルまたはニブルの範囲を選択するために使用されます (または、ラップアラウンドを使用して、GPR 内の特定のニブルに即値データを揃えるために使用されます)。メモリ アクセスには、D0 と D1 という 2 つの 20 ビット データ ポインタ レジスタがあります。Saturn アーキテクチャには、GPR と相互運用できる PC またはプログラム カウンタレジスタもあります。また、サブルーチン呼び出し命令が発行されるときに使用される RSTK という 8 レベル、循環、LIFO 20 ビット ハードウェア リターン スタックもあります。さらに、Saturn CPU には、ST という 16 ビットのソフトウェア ステータス レジスタと、HS という 1 ニブルのハードウェア ステータス レジスタが装備されています。HS には、バイナリ 1 が GPR から右にシフトされたかどうかを示す SB または「スティッキー ビット」フラグが含まれています。さらに、Saturn アーキテクチャには 12 ビットの OUT レジスタと 16 ビットの IN レジスタがあり、Yorke および Clarke SoC では、キーボードからの入力をキャプチャし、ビープ音を制御するために使用されます。1 ビットのキャリー フラグ レジスタもあります。
上記に加えて、サターンCPUには、優先順位のないシンプルな割り込みシステムがあります。割り込みが発生すると、CPUは現在の命令の実行を終了し、プログラムカウンタをハードウェアリターンスタック(RSTK)に保存し、アドレス0x0000Fhにジャンプします。このアドレスには、前の値がニブルで格納されています。[4] CPUは、キーボードスキャンロジックとも直接やり取りします。
次の図はレジスタを表しています (各白い四角は 4 ビット/ニブルですが、キャリー フラグは 1 ビットです)。

Saturn 64 ビット GPR レジスタの形式とフィールド:
汎用レジスタのデータには、ニブル境界にあるフィールドを介してアクセスできますが、スクラッチ レジスタではロードとストアの操作のみが可能です。上の図に示すように、フィールドは W (64 ビット GPR 全体)、A (アドレス、GPR の最初の 5 ニブル)、S (仮数の符号、GPR の最上位ニブル)、XS (指数の符号、GPR のニブル 2)、M (仮数、GPR のニブル 3 ~ 14)、X (指数、GPR の最初の 3 ニブル)、および B (GPR の最初のバイト) です。さらに、P レジスタの 4 ビット値に基づいて GPR からニブルを選択する P フィールドがあります。また、P レジスタで選択されたニブルからニブル 0 を選択する WP フィールドもあります。 64ビット(16ニブル)は、符号ニブル(数値が負の場合は「9」)、12の仮数桁、およびBCD形式(±499)で格納された3桁の10の補数指数で構成されるBCD形式のコード化浮動小数点数を保持できます。[6] BCD浮動小数点値の内部表現は、1つのレジスタに1つの符号ニブルを含む15桁の仮数と、別のレジスタに10の補数形式の20ビット指数を組み合わせたものです。単純な2進表現の代わりにBCDを使用すると、2進数/10進数変換で発生する丸めの問題を回避できるため、計算機にとって有利です。
Saturn CPU の命令およびデータ アドレスもニブル ベースです。3 つのポインタレジスタ (プログラム カウンタを含む) とアドレスレジスタは 20 ビット幅です。このため、Saturn アーキテクチャは 1 Mニブル、つまり 512 Kバイトをアドレス指定できます。このサイズを超える場合 (たとえば 48GX の場合)、バンク スイッチングが使用されます。
オリジナルの HP-71B ハンドヘルド コンピュータと HP-28C には、Saturn プロセッサが独立したチップとして搭載されていました。HP 48S/SX、48G/GX シリーズ、HP-28S、HP-27S、HP-42S、HP-32SII、HP-20S では、Saturn CPU コアは、より複雑な集積回路(IC) SoCの一部として統合されています。
サンプルコード
以下は、Saturn Jazz / HP Tools アセンブリ構文での BCD 10 進平方根アルゴリズムの整数実装です。
** 以下では、AW に引数 (< 1E14) が含まれていると想定されます。
** 結果 (IP(SQRT(AW))) は CW です:
設定
ASL W
C=AW
A=A+AW
A=A+AW
A=A+CW
ASRW
C=0 ワット
P= 13
LC(1) 5
- CSR WP
C=C-1P
-- C=C+1 P
A=ACW
ゴンク --
A=A+CW
CSRW
P=P-1
P=P-1
ゴンク -
セテックス
A=時計回り
チップセットとアプリケーション
オリジナルの Saturn CPU は、命令セット アーキテクチャ全体にその名前を与えました。その後のチップには独自のコード名が付けられました。
CPU のコード名は、 1804 年から 1806 年にかけて太平洋岸まで陸路で往復した米国初の探検隊であるルイス・クラーク探検隊のメンバーにちなんで付けられました。仮想 CPU / エミュレーターのコード名は、生産されなかったサターンベースの 8 MHz SoC のプロトタイプ「New-Yorke」にちなんで付けられました。[12] ACO (Australian Calculator Operation) のメンバーの 1 人によると、「Big Apple」はニューヨーク市にちなんでサターンベースの 8 MHz SoC のプロトタイプのコード名「New-Yorke」に由来しており、そのため「Big apple」、「Mid Apple」、「Little Apple」という名前が付けられました。[12]
参照
注記
- ^ ab HP 48Gでは、Saturn プロセッサには「NEC Japan、D3004GD、00048-80063、9738PX002」というラベルが貼られています。
- ^ エミュレートされた/仮想の「Apple」シリーズのSaturn CPUでは、ISAレベル/バージョンは「2」ですが、仮想オペコード拡張があります。
参考文献
- ^ Kuperus, Klaas (2015-03-04). 「HP 50g: 時代の終焉」forum.hp-prime.de . モラビア。2015-04-02時点のオリジナルよりアーカイブ。
- ^ Kuperus, Klaas (2015-03-06). 「HP 50g はそれほど良いニュースではないか?」HP 博物館。モラビア。2018-07-08 時点のオリジナルよりアーカイブ。2016-01-01閲覧。
- ^ Wessman, Timothy "Tim" James (2015-12-26). 「Windows 10 では HP 50g USB ドライバーのインストールが許可されません」。HP ミュージアム。2018-07-08 にオリジナルからアーカイブ。2016-01-01に取得。
- ^ abcd 「3.1 プロセッサの概要」。HP-71B ハードウェア内部設計仕様。Hewlett Packard Corporation。1984 年 9 月。p. 3-1。00071-90071。
- ^ HP-41C CPU、ディスプレイ ドライバー、HP-IL、データ ストレージ、タイマー IC、およびインターフェイス IC の仕様。Hewlett Packard Corporation。1981 年 7 月。5 ページ。
- ^ Fernandes, Gilbert Henri (2005-07-16) [1999-01-29]. 「第56.1章 実数」。Rechlin, Eric (編)。Saturn アセンブリ言語入門 (第3版)。hpcalc.org。p. 104。ID 1693。2018-11-13 にオリジナルからアーカイブ。2019-04-29に取得。
指数が負の場合、指数は「1000 - ABS(指数)」としてエンコードされます。
[1]
- ^ abcdefgh ドンニーニ、ジュゼッペ (2020-06-26). 「『ニューヨーク』?」www.hpmuseum.org 。2020年7月6日に取得。
- ^ abcdefgh 「The Saturn assembler manual」。www.hpcalc.org。Hewlett Packard。1993-08-20。2020-07-06に閲覧。
- ^ abcdefghi Finseth, Craig A. (2016-12-23). 「names」。2017年12月21日時点のオリジナルよりアーカイブ。2017年12月21日閲覧。
- ^ Arnett, Dave (1994-05-03). 「Name that chip!」.ニュースグループ: comp.sys.hp48. 2019-04-29時点のオリジナルよりアーカイブ。2019-04-22閲覧。
- ^ デ・ブレビソン、シリル (2020-06-17). 「RE:「ニューヨーク」?」。www.hpmuseum.org 。2020年6月18日に取得。
- ^ abc de ブレビソン、シリル (2020-06-16). 「RE:「ニューヨーク」?」www.hpmuseum.org 。2020年6月18日に取得。
さらに読む
- マストラッチ、マシュー (1998) [1995]。「サターンプロセッサガイド (HP48 アプリケーション付き)」。1.0b。2016 年 8 月 6 日にオリジナルからアーカイブ。2006年 5 月 3 日に取得。
- ポール・クルビス;ラランド、セバスチャン (2006-06-27) [1989]。 Voyage au center de la HP28c/s (フランス語) (第 2 版)。フランス、パリ: Editions de la Règle à Calcul。OCLC 636072913。2016 年 8 月 6 日のオリジナルからアーカイブ。2015 年 9 月 6 日に取得。[2] [3] [4] [5] [6] [7]
- Courbis, Paul ; Lalande, Sébastien (2006-06-25) [1993]. HP48 Machine Language - A Journey to the Center of the HP 48s/sx. 翻訳: Cannon, Douglas R. (第2版). Corvallis, Oregon, USA: Grapevine Publications, Inc. OCLC 34148948. 2018-11-14 にオリジナルからアーカイブ。2015-09-06に取得。[8] [9] [10] [11] [12] [13]
- ポール・クルビス;ラランド、セバスチャン (2006-06-25) [1991]。ヴォヤージュ オー サントル ドゥ ラ HP48 s/sx。 3.02 (フランス語) (第 3 版)。フランス、パリ:エディション アンコール。ISBN 2-87892-003-1. OCLC 29640044. 2018年11月13日にオリジナルからアーカイブ。2015年9月6日閲覧。[14] [15] [16] [17] [18] [19] [20]
- ポール・クールビス(2006-06-25) [1993]。ヴォヤージュ オー サントル ドゥ ラ HP48 g/gx。 3.05 (フランス語) (第 3 版)。フランス、パリ:エディション アンコール。ISBN 2-87892-006-6. OCLC 29640044. 2016年8月6日にオリジナルからアーカイブ。2015年9月6日閲覧。[21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32]
- ポール・クルビス;デ・ブレビッソン、シリル(1994年3月)。 Le compagnon de Voyage de la HP48 G/GX (フランス語)。フランス、パリ:エディション アンコール。ISBN 2-87892-007-4. 2016年8月6日時点のオリジナルよりアーカイブ。2015年9月6日閲覧。[33]
- Fernandes, Gilbert Henri (2005-07-16) [1999-01-29]. Rechlin, Eric (編). Introduction to Saturn Assembly Language (第3版). hpcalc.org. ID 1693. 2016-08-06 にオリジナルからアーカイブ。2009-02-17に取得。[34]
外部リンク
- HP電卓博物館の概要情報
