HP Saturn (microprocessor)
4466638
188388250
2008-02-01T15:20:16Z
221.186.92.1
/* Chipsets and applications */
The '''Saturn''' family of [[microprocessor]]s was developed by [[Hewlett-Packard]] in the 1980s for programmable scientific calculators/microcomputers. The original Saturn chipset was first used in the [[HP-71B]] hand-held BASIC computer, introduced in 1984. Later models of the family powered the popular [[HP-48 series]] of calculators, among others.
== Architecture ==
The Saturn architecture is ''[[nibble]]-''based; that is, the core unit of data is 4 bits, which can hold one [[binary-coded decimal]] (BCD) digit.
The Saturn has four general-purpose and five scratch registers that are 64 bits wide. Data in the general-purpose registers can be accessed on nibble boundaries and used for calculations, whereas the scratch registers allow only load and store operations. The 64 bits (16 nibbles) can hold BCD-formatted coded floating point numbers composed of a sign nibble, 12 mantissa digits and a 3-digit exponent stored in 2's complement format (±499). The use of BCD instead of straight binary representation is advantageous for calculators as it avoids rounding problems that occur on the binary/decimal conversion.
For optimum memory usage efficiency, the Saturn's addresses are also nibble-based. The three pointer registers (including the program counter) and address data paths are 20 bits wide, therefore the Saturn architecture can address 1 M nibbles = 512 K bytes. Beyond that size (e.g. in the 48GX), [[bank switching]] is used.
== Chipsets and applications ==
The original Saturn CPU gave its name to the entire architecture. Later chips had their own code names:
{| class=wikitable
|-
| '''CPU codename''' || '''Used in calculator models''' || '''Properties'''
|-
|align=center| ''Saturn''
| [[HP-71B]], [[HP-18C]], [[HP-28C]]
| 640 kHz
|-
|align=center| ''Bert''
| [[HP-10B]], [[HP-20S]], [[HP-21S]]
| 640 kHz, 10 KB ROM, 256 Bytes RAM, LCD driver
|-
|align=center| ''Sacajawea''
| [[HP-14B]], [[HP-22S]], [[HP-32S]], [[HP-32SII]]
| 640 kHz, 16 KB ROM, 512 Bytes RAM, LCD driver
|-
|align=center| ''Lewis''
| [[HP-17B]], [[HP-19B]], [[HP-27S]], [[HP-28S]], [[HP-42S]]
| 1 MHz, 64 KB ROM, LCD driver, memory controller, IR control
|-
|align=center| ''Clarke''
| [[HP-48SX]], [[HP-48S]]
| 2 MHz, LCD controller, memory controller, UART and IR control
|-
|align=center| ''Yorke''
| [[HP-48GX]], [[HP-48G]], [[HP-38G]], [[HP-39g series|HP-39G]], [[HP-49G]]
| 3.68 MHz, LCD controller, memory controller, UART and IR control
|}
(The CPU codenames are inspired by members of the [[Lewis and Clark Expedition]], the first United States overland expedition to the Pacific coast and back, of 1804–1806.)
==External links==
*[http://www.grack.com/writings/hp48/GuidetotheSaturnProcessor.html A Guide to the Saturn Processor]
*[http://www.hpmuseum.org/saturn.htm Summary information in the Museum of HP Calculators]
[[Category:HP calculators|Saturn Processor]]
[[de:HP Saturn]]
[[fr:Saturn (microprocesseur)]]