The Museum of HP Calculators
The Saturn Processor
The Saturn Processor was originally used in the
HP-71B. It and its descendants have been used in
numerous HP handhelds included the HP-28C/S, HP-48S/G(X) and all current
handhelds. The lower end models use slower forms of the processor
with on-chip RAM and ROM.
Addressability
The Saturn uses a 20 bit (5 nibble) address space. Memory is nibble addressable
for more compact storage so the processor's address space is 1 meganibble
or one half megabyte. The HP-48 calculators use bank switching to allow access to
more memory.
Word Size
The Saturn has a 4 bit (nibble) external word size. Using a small wordsize
keeps the number of external signal paths low, which allows denser packaging.
Also a nibble is the size of a single digit in the Binary Coded Decimal
(BCD) numeric format that HP handhelds use. Thus nibbles are both
convenient and efficient for a calculator.
Registers
The Saturn has four 64 bit general purpose registers. When used to store
floating point numbers, a 64 bit register allows twelve digits for the mantissa
and two digits for the exponent, leaving two nibbles for the signs of the
mantissa and exponent. (Typically, however, the exponent sign nibble is
combined with the exponent in a twos compliment manner allowing an exponent
range of +/- 499.)
Each 64 bit register may be accessed as a whole or in parts. Predefined
parts include, the mantissa, the sign, the exponent sign,
the exponent, the low byte, and the low 20 bits (the size of an address.)
In addition, a field select register, allows registers
to be subdivided in other ways.
The Saturn also contains three 20 bit pointer registers including the
program counter, a 16 bit input register, a 12 bit output register,
and several flags registers.
In addition, there are four 64 bit scratch registers which provide a
handy place to save the general purpose registers during calculations.
Data can be moved in and out of these registers but not manipulated
in other ways.
Instructions
The Saturn contains instructions that one would expect to find in a small
microprocessor including various types of moves, input/output basic
math and logic, comparisons, (un)conditional jumps, calls etc.
These instructions often come in many forms, for example the
unconditional jump is available in forms that take 3, or 4 nibble
relative addresses or 5 nibble absolute addresses. In addition,
register direct (register points to next code address) and
indirect (register points to a pointer to the next code address) jumps
are available. Several assemblers are available and at this time, a
C compiler is under construction.
Go back to the main exhibit hall