# Saturn (microprocesseur)

La famille de microprocesseurs Saturn a été développée dans les années 1980 par Hewlett-Packard pour en équiper des ordinateurs et des calculatrices scientifiques programmables. La première version issue de cette famille a été utilisée dans l'ordinateur de poche HP-71B, programmable en BASIC et lancé en 1984. Les modèles suivants ont été utilisés entre autres dans la gamme de calculatrices HP-48.

## Architecture

L'architecture du Saturn est de type 4 bits. Cela signifie que l'unité élémentaire de données est un mot de 4 bits (un quartet), ce qui correspond à un chiffre décimal codé en binaire (BCD).
Le Saturn possède quatre registres généraux et cinq registres temporaires de largeur 64 bits. On peut accéder aux données des registres généraux sur les limites de quartets, et les utiliser pour effectuer des calculs, tandis que les registres temporaires ne sont accessibles que pour les opérations de lecture et d'écriture. Les 64 bits d'un registre (soit 16 quartets) peuvent contenir des nombres décimaux écrits en BCD, composés d'un quartet de signe, de 12 chiffres significatifs (mantisse), et de 3 chiffres d'exposant codés en complément à 2. L'exposant est donc compris entre -500 et +499. L'utilisation de la notation BCD plutôt que la représentation binaire directe est intéressante pour la réalisation de calculatrice, car cela évite les problèmes d'arrondi lors des conversions entre binaire et décimal.
Pour assurer une utilisation efficace de la mémoire, les adresses du Saturn sont également fondées sur des quartets. Les trois registres d'adresse (y compris le compteur ordinal) et les bus d'adresse internes ont une largeur de 20 bits, ce qui signifie que le Saturn peut adresser 1 M quartets, donc 512 Ko. Au-delà de cette limite (par exemple sur la HP-48GX), on utilise un mécanisme de pagination.
À noter que sur certaines applications du Saturn, notamment la HP-48, la mémoire (RAM ou ROM) est basée sur des circuits 8 bits. Un cache est interposé entre le Saturn et la mémoire pour en permettre l'accès. Ceci a des conséquences sur le cadencement des instructions dont le temps d'exécution varie en fonction de la taille et de la parité d'adresse des blocs mémoire lus (par exemple, deux quartets, soit un octet, lus à une adresse paire ne donneront lieu qu'à un seul accès mémoire, alors qu'en adresse impaire, deux octets devront être lus, soit un cycle d'horloge supplémentaire).

## Versions successives et applications

Le nom de l'architecture provient du nom du premier microprocesseur de la série. Cependant, les versions suivantes avaient leurs propres noms de code.
| Nom de code | Calculatrices | Caractéristiques |
| Saturn | HP-71B, HP-18C, HP-28C | 640 kHz |
| Bert | HP-10B, HP-20S, HP-21S | 640 kHz, ROM de 10 Ko, RAM de 256 octets, pilote pour LCD |
| Sacajawea | HP-14B, HP-22S, HP-32S, HP-32SII | 640 kHz, ROM de 16 Ko, RAM de 512 octets, pilote pour LCD |
| Lewis | HP-17B, HP-19B, HP-27S, HP-28S, HP-42S | 1 MHz, ROM de 64 Ko, pilote pour LCD, contrôleur mémoire, contrôleur infrarouge |
| Clarke | HP-48SX, HP-48S | 2 MHz, contrôleur LCD, contrôleur mémoire, UART, contrôleur infrarouge |
| Yorke | HP-48GX, HP-48G, HP-38G, HP-39G, HP-49G | 3,68 MHz, contrôleur LCD, contrôleur mémoire, UART, contrôleur infrarouge |
(Les noms de code sont inspirés par les membres de l'expédition Lewis et Clark, la première expédition des États-Unis jusqu'à la côté pacifique, et retour de 1804–1806.)