HP Saturn
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:バイト