コンテンツにスキップ
Wikipedia

「利用者:Monadaisuki/sandbox」の版間の差分

削除された内容 追加された内容
1行目: 1行目:
{{User sandbox}}
{{User sandbox}}
<!-- この行より下を編集してください -->
<!-- この行より下を編集してください -->
= <span data-ve-clipboard-key="0.6644660874024473-1"> HP Saturn(英語版を翻訳)</span> =
4bit [[マイクロプロセッサ]]([[CPU]])の'''Saturn'''ファミリーはプログラミング科学技術電卓あるいは小型コンピューター向けとして1980年代に[[ヒューレット・パッカード]]社によって開発された。

Saturnは以前の電卓に使われたNutファミリー[[プロセッサ]]の後を引継いだ。

最初のSaturn[[チップセット]]は1984年に発売されたBASIC言語でプログラミング可能な{{仮リンク|HP-71B|en|HP-71B}}ハンドヘルドコンピューター(日本で言うところの[[ポケットコンピュータ|ポケコン]])に搭載された。

Saturnファミリーのその後のモデルは数あるHP製品の中でも普及した[[HP 48 シリーズ]]電卓に特に多く搭載された。

[[HP 49/50 シリーズ]]も最初だけ同様にSaturn CPUを搭載した。しかし、[[日本電気|NEC]]の工場が2003年に技術的理由でSaturnプロセッサの製造をすることができなくなった。

そのため、2003年に発売された[[HP 49/50 シリーズ|HP 49g+]]からは、ソフトウェアでSaturn CPUの[[エミュレーター]]を動かすためにARM920T([[ARMアーキテクチャ|ARM]]<nowiki/>v4Tアーキテクチャ)をコアとした Samsung S3C2410 プロセッサを使うように変更した。

2000年に発売された[[HP 39/40 シリーズ|HP 39G]]と[[HP 39/40 シリーズ|HP 40G]]はSaturnプロセッサを搭載した最後の電卓になった。

Saturnエミュレーターを搭載した最後の電卓は2006年に発売された[[HP 39/40 シリーズ|HP 39gs]]、[[HP 39/40 シリーズ|HP 40gs]]、[[HP 49/50 シリーズ|HP 50g]]の三機種と[[HP 49/50 シリーズ|hp 48gII]]の2007年版であった。

特に[[HP 49/50 シリーズ|HP 50g]]はSaturnエミュレーターを搭載した電卓の中で最も遅くまで製造されていた。[[サムスン電子]]がHP 50g用のARMプロセッサの製造を中止したので、2015年にHP 50gも製造中止になった。<ref name="Kuperus_2015_1">{{cite web|url=http://forum.hp-prime.de/discussion/787/hp-50g-end-of-an-era|title=HP 50g: End of an era|accessdate=?|date=2015年03月04日|publisher=Moravia|first=Klaas|last=Kuperus|dead-url=yes|archive-url=https://web.archive.org/web/20150402112232/http://forum.hp-prime.de/discussion/787/hp-50g-end-of-an-era|archive-date=2015年04月02日}}</ref><ref name="Kuperus_2015_2">{{cite web|url=http://www.hpmuseum.org/forum/thread-3265-post-29694.html#pid29694|title=HP 50g not so good news?|date=2015年03月06日|publisher=Moravia|first=Klaas|last=Kuperus|access-date=2016年01月01日}}</ref><ref name="Wessman_2015">{{cite web|url=http://www.hpmuseum.org/forum/thread-5386-post-48114.html#pid48114|title=Windows 10 won't allow HP 50g USB drivers to be installed|date=2015年12月26日|publisher=HP Museum|first=Tim|last=Wessman|access-date=2016年01月01日}}</ref>

== アーキテクチャ ==
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:バイト
{| class="wikitable"
!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)<ref>[http://www.hpcalc.org/details/1693 "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はあえて使わないようにしているのだろう。</ref>で構成されたBCD浮動小数点数を格納することができる。直接的な2進数表現の代わりにBCD(二進化十進数)を使うと、2進数/10進数変換時の[[丸め誤差]]を回避できるという利点がある。

メモリ使用効率を最適化するためにSaturnのアドレスは[[ニブル]]単位である。3つのポインタレジスタ(プログラムカウンタ含む)とアドレスデータパスは20bit幅である。それゆえにSaturnアーキテクチャは1Mニブル = 512 KBをアドレスできる。

[[HP 48 シリーズ|HP 48GX]]のように512 KBを越えるアドレスが必要な場合はバンク切替が使われる。

[[HP 48 シリーズ|HP 48S/SX]] と [[HP 48 シリーズ|HP 48G/GX]] シリーズにおいて、Saturn CPUコアはより複雑なIC([[集積回路]])の一部として組込まれている。

これらのICパッケージは[[ルイス・クラーク探検隊]]の隊員にちなんだコード名を付けられている。HP 48S/SXの場合、[[ウィリアム・クラーク (探検家)|ウィリアム・クラーク]]にちなんでICのコード名は'''Clarke'''である。HP 48G/GXの場合、クラークの従僕にちなんでICのコード名は'''Yorke'''である。

ちなみに旧機種の[[HP-28 シリーズ|HP-28S]]のSaturn搭載ICはルイス・クラーク探検隊の[[メリウェザー・ルイス]]にちなんで'''Lewis'''というコード名であった。

== Saturn搭載チップセットとその応用製品 ==
最初のSaturn CPUという名前はチップ全体を指していた。後にチップはSaturn CPUとメモリだけでなく周辺回路も搭載するようになったので、[[チップセット]]になった。各チップセット毎に搭載している周辺回路なども異なるので、各チップセットはコード名で区別されるようになった。

チップセットのコード名は[[ルイス・クラーク探検隊]](1804-1806)の隊員にちなんだコード名を付けられている。

ルイス・クラーク探検隊はアメリカ合衆国で最初に陸路で西海岸まで到達し、生還した探検隊である(当時のアメリカ合衆国はアメリカ大陸の東側の一部だけであった)。
{| class="wikitable"
!Level
!コード名
!応用製品
!特性
|-
|0
| align="center" |''Saturn'' (1LF2)
|HP-44A<!-- prototype -->, HP-71B<!-- early models -->&nbsp;(1984)
|
|-
|?
| align="center" |1LJ7
|ThinkJet プリンター (1984)
HP Integral PC (1985)に搭載されたプリンターである。
|
|-
|1
| align="center" |''Saturn'' (1LK7)
|HP-18C&nbsp;(1986), [[HP-28 シリーズ|HP-28C]]&nbsp;(1987), HP-71B<!-- later models -->
|CPU : 640 kHz, 命令追加
|-
|
| align="center" |''Bert'' (1LU7)
|HP-10B&nbsp;(1988), HP-20S&nbsp;(1988), HP-21S
|
* CPU : 640 kHz
* ROM : 10 KB
* RAM : 256 bytes
* LCDドライバー搭載

(注記)ここからCPU,RAM,ROM以外のものも搭載するようになったので、コード名が付与された。
|-
|
| align="center" |''Sacajawea'' (1LR3, 1LE2<!-- ? -->)
|HP-14B, HP-22S, HP-32S&nbsp;(1988), HP-32S+, HP-32SII&nbsp;(1991)
|
* CPU : 640 kHz
* ROM : 10 KB
* RAM : 512 bytes
* LCDドライバー搭載
|-
|
| align="center" |''Lewis'' (1LR2<!-- ? -->, 1LT8<!-- ? -->)
|HP-17B&nbsp;(1988), HP 17BII&nbsp;(1990), HP-19B&nbsp;(1988), HP 19BII&nbsp;(1990), HP-27S&nbsp;(1988), [[HP-28 シリーズ|HP-28S]]&nbsp;(1988), HP-42S&nbsp;(1988)
|3V CMOSで製造された。
* CPU : 1 MHz
* ROM : 64 KB
* メモリーコントローラー(RAMが外付け)
* LCDドライバー
* 赤外線コントローラー
|-
|2
| align="center" |''Clarke'' (1LT8)
|[[HP 48 シリーズ|HP 48SX]]&nbsp;(1990), [[HP 48 シリーズ|HP 48S]]&nbsp;(1990)
|
* CPU : 2 MHz, 命令追加
* メモリーコントローラー(ROMとRAMが外付け)
* LCDコントローラー
* UARTコントローラー
* 赤外線コントローラー
|-
|3
| align="center" |''Yorke'' (1LT8)
|[[HP 38G]]&nbsp;(1995), [[HP 38G|HP 38G+]]&nbsp;(1998), [[HP 39/40 シリーズ|HP 39G]]&nbsp;(2000), [[HP 39/40 シリーズ|HP 40G]]&nbsp;(2000), [[HP 48 シリーズ|HP 48GX]]&nbsp;(1993), [[HP 48 シリーズ|HP 48G]]&nbsp;(1993), [[HP 48 シリーズ|HP 48G+]]&nbsp;(1998), [[HP 49/50 シリーズ|HP 49G]]&nbsp;(1999)
|
* CPU : 3.68-4 MHz, 命令追加
* メモリーコントローラー(ROMとRAMが外付け)
* LCDコントローラー
* UARTコントローラー
* 赤外線コントローラー
(注記)NECで製造された。時折、'''Saturn 5 プラットフォーム'''としても知られている。
|-
|
| align="center" |''New-Yorke''
|[[HP 48 シリーズ|HP 48GX]] prototype
|
* CPU : 8 MHz
* メモリーコントローラー(ROMとRAMが外付け)
* LCDコントローラー
* UARTコントローラー
* 赤外線コントローラー

(注記)HP内部の試作品として作られただけ。市場には決して出ていない。
|-
|4
| align="center" |''Apple'' series (''Big Apple'', ''Mid Apple'', ''Little Apple'')
|[[HP 39/40 シリーズ|hp 39g+]]&nbsp;(2003), [[HP 39/40 シリーズ|HP 39gs]]&nbsp;(2006), [[HP 39/40 シリーズ|HP 40gs]]&nbsp;(2006), [[HP 49/50 シリーズ|hp 49g+]]&nbsp;(2003), [[HP 49/50 シリーズ|hp 48gII]]&nbsp;(2003/2007), [[HP 49/50 シリーズ|HP 50g]]&nbsp;(2006)
|前述の'''Yorke''' CPUの仮想バージョン(エミュレーター)である。
ARM920Tコア([[ARMアーキテクチャ|ARM]]<nowiki/>v4Tアーキテクチャ)のSamsung S3C2410 プロセッサファミリー 48/75 MHz によってYorke CPUエミュレーターが動作した。

追加された仮想命令は'''Saturn+'''という。
|}
== 出典 ==
<references />

== 参考文献 ==
* {{cite web|url=http://www.grack.com/downloads/hp48/saturnguide/saturn.txt|title=Guide to the Saturn Processor (With HP48 Applications)|date=1998|author-first=Matthew|author-last=Mastracci|orig-year=1995|version=1.0b|access-date=2006年05月03日|dead-url=no|archive-url=https://web.archive.org/web/20160806130017/https://grack.com/writing/saturn/|archive-date=2016年08月06日}}
* {{cite book|title=Voyage au centre de la HP28c/s|url=http://www.courbis.fr/spip.php?article17|edition=2|date=2006年06月27日|publisher=Editions de la Règle à Calcul|language=French|oclc=636072913|publication-place=Paris, France|access-date=2015年09月06日|author-first1=Paul|author-last1=Courbis|author-link1=Paul Courbis|author-first2=Sébastien|author-last2=Lalande|orig-year=1989|dead-url=no|archive-url=https://web.archive.org/web/20160806084555/http://www.courbis.fr/Voyage-au-centre-de-la-HP28-c-s,17.html|archive-date=2016年08月06日}} [http://www.courbis.fr/Data/Books/Pdfs_72/Voyage28/Voyage28_72x72_001_063.pdf <nowiki>[1]</nowiki>] [http://www.courbis.fr/Data/Books/Pdfs_72/Voyage28/Voyage28_72x72_064_113.pdf <nowiki>[2]</nowiki>] [http://www.courbis.fr/Data/Books/Pdfs_72/Voyage28/Voyage28_72x72_114_163.pdf <nowiki>[3]</nowiki>] [http://www.courbis.fr/Data/Books/Pdfs_72/Voyage28/Voyage28_72x72_164_213.pdf <nowiki>[4]</nowiki>] [http://www.courbis.fr/Data/Books/Pdfs_72/Voyage28/Voyage28_72x72_214_263.pdf <nowiki>[5]</nowiki>] [http://www.courbis.fr/Data/Books/Pdfs_72/Voyage28/Voyage28_72x72_264_285.pdf <nowiki>[6]</nowiki>]
* {{cite book|title=HP48 Machine Language - A Journey to the Center of the HP 48s/sx|url=http://www.courbis.fr/spip.php?article21|edition=2nd|date=2006年06月25日|publisher=Grapevine Publications, Inc.|oclc=34148948|publication-place=Corvallis, Oregon, USA|access-date=2015年09月06日|author-first1=Paul|author-last1=Courbis|author-link1=Paul Courbis|author-first2=Sébastien|author-last2=Lalande|translator-first=Douglas R.|translator-last=Cannon|orig-year=1993|dead-url=no}} [http://www.courbis.fr/Data/Books/Pdfs_72/hp48ml/hp48ml_72x72_001_062.pdf <nowiki>[7]</nowiki>] [http://www.courbis.fr/Data/Books/Pdfs_72/hp48ml/hp48ml_72x72_063_121.pdf <nowiki>[8]</nowiki>] [http://www.courbis.fr/Data/Books/Pdfs_72/hp48ml/hp48ml_72x72_122_157.pdf <nowiki>[9]</nowiki>] [http://www.courbis.fr/Data/Books/Pdfs_72/hp48ml/hp48ml_72x72_158_210.pdf <nowiki>[10]</nowiki>] [http://www.courbis.fr/Data/Books/Pdfs_72/hp48ml/hp48ml_72x72_211_330.pdf <nowiki>[11]</nowiki>] [http://www.courbis.fr/Data/Books/Pdfs_72/hp48ml/hp48ml_72x72_331_397.pdf <nowiki>[12]</nowiki>]
* {{cite book|title=Voyage au centre de la HP48 s/sx|url=http://www.courbis.fr/spip.php?article20|edition=3rd|date=2006年06月25日|publisher=Editions Angkor|language=French|oclc=29640044|publication-place=Paris, France|access-date=2015年09月06日|author-first1=Paul|author-last1=Courbis|author-link1=Paul Courbis|author-first2=Sébastien|author-last2=Lalande|version=3.02|orig-year=1991|isbn=2-87892-003-1|dead-url=no}} [http://www.courbis.fr/Data/PDFS/Voyage48s/Voyage48s_72x72_001_060.pdf <nowiki>[13]</nowiki>] [http://www.courbis.fr/Data/Books/Pdfs_72/Voyage48s/Voyage48s_72x72_061_130.pdf <nowiki>[14]</nowiki>] [http://www.courbis.fr/Data/Books/Pdfs_72/Voyage48s/Voyage48s_72x72_131_218.pdf <nowiki>[15]</nowiki>] [http://www.courbis.fr/Data/Books/Pdfs_72/Voyage48s/Voyage48s_72x72_219_276.pdf <nowiki>[16]</nowiki>] [http://www.courbis.fr/Data/Books/Pdfs_72/Voyage48s/Voyage48s_72x72_277_318.pdf <nowiki>[17]</nowiki>] [http://www.courbis.fr/Data/Books/Pdfs_72/Voyage48s/Voyage48s_72x72_319_374.pdf <nowiki>[18]</nowiki>] [http://www.courbis.fr/Data/Books/Pdfs_72/Voyage48s/Voyage48s_72x72_375_428.pdf <nowiki>[19]</nowiki>]
* {{cite book|title=Voyage au centre de la HP48 g/gx|url=http://www.courbis.fr/spip.php?article18|edition=3rd|date=2006年06月25日|publisher=Editions Angkor|language=French|oclc=29640044|publication-place=Paris, France|access-date=2015年09月06日|author-first=Paul|author-last=Courbis|author-link1=Paul Courbis|version=3.05|orig-year=1993|isbn=2-87892-006-6|dead-url=no|archive-url=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|archive-date=2016年08月06日}} [http://www.courbis.fr/Data/Books/Pdfs_72/Voyage48g/Voyage48g_72x72_001_056.pdf <nowiki>[20]</nowiki>] [http://www.courbis.fr/Data/Books/Pdfs_72/Voyage48g/Voyage48g_72x72_057_106.pdf <nowiki>[21]</nowiki>] [http://www.courbis.fr/Data/Books/Pdfs_72/Voyage48g/Voyage48g_72x72_107_156.pdf <nowiki>[22]</nowiki>] [http://www.courbis.fr/Data/Books/Pdfs_72/Voyage48g/Voyage48g_72x72_157_206.pdf <nowiki>[23]</nowiki>] [http://www.courbis.fr/Data/Books/Pdfs_72/Voyage48g/Voyage48g_72x72_207_256.pdf <nowiki>[24]</nowiki>] [http://www.courbis.fr/Data/Books/Pdfs_72/Voyage48g/Voyage48g_72x72_257_306.pdf <nowiki>[25]</nowiki>] [http://www.courbis.fr/Data/Books/Pdfs_72/Voyage48g/Voyage48g_72x72_307_356.pdf <nowiki>[26]</nowiki>] [http://www.courbis.fr/Data/Books/Pdfs_72/Voyage48g/Voyage48g_72x72_357_406.pdf <nowiki>[27]</nowiki>] [http://www.courbis.fr/Data/Books/Pdfs_72/Voyage48g/Voyage48g_72x72_407_456.pdf <nowiki>[28]</nowiki>] [http://www.courbis.fr/Data/Books/Pdfs_72/Voyage48g/Voyage48g_72x72_457_506.pdf <nowiki>[29]</nowiki>] [http://www.courbis.fr/Data/Books/Pdfs_72/Voyage48g/Voyage48g_72x72_507_556.pdf <nowiki>[30]</nowiki>] [http://www.courbis.fr/Data/Books/Pdfs_72/Voyage48g/Voyage48g_72x72_557_608.pdf <nowiki>[31]</nowiki>]
* {{cite book|title=Le compagnon de Voyage de la HP48 G/GX|url=http://www.courbis.fr/spip.php?article19|date=March 1994|publisher=Editions Angkor|language=French|publication-place=Paris, France|access-date=2015年09月06日|author-first1=Paul|author-last1=Courbis|author-link1=Paul Courbis|author-first2=Cyrille|author-last2=de Brébisson|author-link2=Cyrille de Brébisson|isbn=2-87892-007-4|dead-url=no|archive-url=https://web.archive.org/web/20160806135932/http://www.courbis.fr/Le-compagnon-de-voyage-de-la-HP48.html|archive-date=2016年08月06日}} [http://www.lmet.fr/GSWeb/lmet.gswa/9/dr/CSHOPDirectAccess/search?baseListID=searchModel&searchType=searchByAll&resultsPageName=&resultsDisplayTemplateID=&searchedText=2-87892-007-4 <nowiki>[32]</nowiki>]
* {{cite book|editor=Eric Rechlin|title=Introduction to Saturn Assembly Language|url=http://www.hpcalc.org/details.php?id=1693|format=ZIP, PDF|edition=3rd|date=2005年07月16日|publisher=hpcalc.org|access-date=2009年02月17日|author-last=Fernandes|author-first=Gilbert|dead-url=no|archive-url=https://web.archive.org/web/20160806131408/http://www.hpcalc.org/details.php?id=1693|archive-date=2016年08月06日}} [http://www.hpcalc.org/hp48/docs/programming/asm-pdf.zip <nowiki>[33]</nowiki>]

== 外部リンク ==
* [http://www.hpmuseum.org/saturn.htm Summary information in the Museum of HP Calculators]

2016年12月9日 (金) 14:44時点における版

ここはMonadaisuki さんの利用者サンドボックスです。編集を試したり下書きを置いておいたりするための場所であり、百科事典の記事ではありません。ただし、公開の場ですので、許諾されていない文章の転載はご遠慮ください

登録利用者は自分用の利用者サンドボックスを作成できます(サンドボックスを作成する 解説)。

その他のサンドボックス: 共用サンドボックス | モジュールサンドボックス

記事がある程度できあがったら編集方針を確認して、新規ページを作成しましょう。

AltStyle によって変換されたページ (->オリジナル) /