La familia Saturn de microprocesadores de 4 bits ( ruta de datos ) fue desarrollada por Hewlett-Packard en la década de 1980, primero para la computadora de mano HP-71B , lanzada en 1984, y luego para varias calculadoras HP (comenzando con la HP-18C ). Sucedió a la familia de procesadores Nut utilizada en calculadoras anteriores. Las HP48SX y HP48S fueron los últimos modelos en usar procesadores Saturn fabricados por HP, mientras que los modelos posteriores usaron procesadores fabricados por NEC . La serie HP 49 inicialmente usó la CPU Saturn hasta que la fábrica de NEC [ nb 1 ] ya no pudo fabricar el procesador por razones técnicas en 2003. A partir del modelo HP 49g+ en 2003, las calculadoras cambiaron a un procesador Samsung S3C2410 con un núcleo ARM920T (parte de la arquitectura ARMv4T ) que ejecutaba un emulador del hardware Saturn en software. En 2000, las HP 39G y HP 40G fueron las últimas calculadoras lanzadas basadas en el hardware Saturn fabricado por NEC. Las últimas calculadoras lanzadas en usar el emulador Saturn fueron las HP 39gs , HP 40gs y HP 50g en 2006, así como la revisión de 2007 de la HP 48gII . La HP 50g fue la última calculadora vendida por HP que usaba este emulador cuando se descontinuó en 2015 debido a que Samsung dejó de producir el procesador ARM en el que se basaba. [ 1 ] [ 2 ] [ 3 ]
Arquitectura
El hardware Saturn tiene un diseño serial de nibbles [ 4 ] a diferencia de su predecesor Nut , que era serial de bits . [ 5 ] Internamente, la CPU Saturn tiene cuatro buses de datos de 4 bits que permiten un rendimiento de casi 1 ciclo por nibble, con uno o dos buses actuando como fuente y uno o dos como destino. [ 4 ] La palabra direccionable más pequeña es un nibble de 4 bits que puede contener un dígito decimal codificado en binario (BCD). Cualquier unidad de datos en los registros mayor que un nibble, hasta 64 bits, puede ser operada como un todo; sin embargo, la CPU Saturn realiza la operación serialmente nibble por nibble internamente. [ 4 ]
La arquitectura Saturn cuenta con un ancho de registro interno de 64 bits y una dirección de 20 bits, con direccionamiento de memoria a granularidad de 4 bits (nibble). Las instrucciones de la ALU de Saturn admiten ancho de datos variable, operando con entre uno y 16 nibbles de una palabra. Los chips de CPU Saturn originales proporcionaban un bus de datos externo de cuatro bits, pero los SoC posteriores basados en Saturn incluyeron conversión de bus en el chip a un bus de datos externo de 8 bits y un bus de direcciones externo de 19 bits.
La arquitectura Saturn cuenta con cuatro registros de propósito general ( GPR ) de 64 bits , denominados A, B, C y D. Además, dispone de cinco registros de "almacenamiento" de 64 bits, denominados R0, R1, R2, R3 y R4. Estos registros solo pueden almacenar datos. Si se requiere una operación de la ALU para los datos de un registro de almacenamiento, dicho registro debe transferirse primero a un GPR. Otros registros incluyen un registro de "puntero" de 1 nibble, denominado P, que se utiliza habitualmente para seleccionar un nibble en un GPR o un rango de nibbles (o para alinear datos inmediatos en un nibble específico de un GPR, con desbordamiento). Para el acceso a memoria, existen dos registros de puntero de datos de 20 bits, denominados D0 y D1. La arquitectura Saturn también dispone de un contador de programa (PC) que puede interactuar con los GPR. Asimismo, cuenta con una pila de retorno de hardware circular de 8 niveles y LIFO de 20 bits, denominada RSTK, que se utiliza cuando se emite una instrucción de llamada a subrutina. Además, la CPU Saturn está equipada con un registro de estado de software de 16 bits llamado ST y un registro de estado de hardware de 1 nibble llamado HS, que, notablemente, contiene el indicador SB o "bit fijo" que indica si un 1 binario se desplazó a la derecha desde un GPR. Asimismo, la arquitectura Saturn cuenta con un registro OUT de 12 bits y un registro IN de 16 bits, que en los SoC Yorke y Clarke se utilizan para capturar la entrada del teclado y controlar el zumbador. También dispone de un registro de indicador de acarreo de 1 bit.
Además de lo anterior, la CPU Saturn tiene un sistema de interrupciones simple y sin prioridad. Cuando ocurre una interrupción, la CPU termina de ejecutar la instrucción actual, guarda el contador de programa en la pila de retorno de hardware (RSTK) y salta a la dirección 0x0000Fh, donde el valor anterior está en nibbles. [ 4 ] La CPU también interactúa directamente con la lógica de escaneo del teclado.
El siguiente diagrama muestra los registros (cada cuadrado blanco representa 4 bits / un nibble, excepto el indicador de acarreo, que es de 1 bit):

Formato y campos del registro GPR de 64 bits de Saturn:
Los datos en los registros de propósito general se pueden acceder a través de campos que coinciden con los límites de los nibbles, mientras que los registros temporales solo permiten operaciones de carga y almacenamiento. Los campos, como se muestra en el diagrama anterior, son W (registro de propósito general completo de 64 bits), A (dirección, los primeros 5 nibbles de un registro de propósito general), S (signo de la mantisa, el nibble más significativo de un registro de propósito general), XS (signo del exponente, el nibble 2 de un registro de propósito general), M (mantisa, nibbles 3-14 de un registro de propósito general), X (exponente, los primeros 3 nibbles de un registro de propósito general) y B (primer byte de un registro de propósito general). Además, está el campo P, que selecciona un nibble de un registro de propósito general según el valor de 4 bits del registro P. También está el campo WP, que selecciona los nibbles del 0 al nibble seleccionado en el registro P. Los 64 bits (16 nibbles) pueden almacenar números de punto flotante codificados en formato BCD compuestos por un nibble de signo (que es "9" si el número es negativo), 12 dígitos de mantisa y un exponente de complemento a 10 de 3 dígitos almacenado en formato BCD (±499). [ 6 ] La representación interna de los valores de punto flotante BCD es una mantisa de 15 dígitos con un nibble de signo en un registro combinado con un exponente de 20 bits, en formato de complemento a 10, en otro registro. El uso de BCD en lugar de la representación binaria directa es ventajoso para las calculadoras ya que evita los problemas de redondeo que ocurren en la conversión binario/decimal .
Las direcciones de instrucciones y datos de la CPU Saturn también se basan en nibbles. Los tres registros de puntero (incluido el contador de programa) y los registros de direcciones tienen un ancho de 20 bits. Gracias a esto, la arquitectura Saturn puede direccionar 1 millón de nibbles o, equivalentemente, 512 kilobytes . Para tamaños superiores (por ejemplo, en el 48GX), se utiliza la conmutación de bancos de memoria .
El ordenador de mano original HP-71B y el HP-28C tenían el procesador Saturn como un chip separado. En las series HP 48S/SX, 48G/GX y HP-28S, HP-27S, HP-42S, HP-32SII y HP-20S, el núcleo de la CPU Saturn está integrado como parte de un circuito integrado (CI) SoC más complejo .
Código de ejemplo
A continuación se muestra una implementación entera de un algoritmo de raíz cuadrada decimal BCD en sintaxis de ensamblador de Saturn Jazz / HP Tools:
** En lo siguiente, se supone que AW contiene el argumento (< 1E14). ** El resultado (IP(SQRT(AW))) está en CW: ESTABLECER DEC Lengua de Señas Americana Oeste C=AW A=A+AW A=A+AW A=A+CW ASR W C=0 W P= 13 LC(1) 5 - WP de RSC C=C-1 P -- C=C+1 P A=AC W GONC -- A=A+CW RSC W P=P-1 P=P-1 GONC - SETHEX A=CW
Conjuntos de chips y aplicaciones
La CPU original del Saturno dio nombre a toda la arquitectura del conjunto de instrucciones . Los chips posteriores tuvieron sus propios nombres en clave:
Los nombres en clave de la CPU están inspirados en los miembros de la Expedición de Lewis y Clark de 1804-1806, la primera expedición terrestre de Estados Unidos a la costa del Pacífico y de regreso. Los nombres en clave de la CPU virtual/emulador se inspiraron en el prototipo "New-Yorke" de SoC basado en Saturno de 8 MHz que nunca llegó a producirse. [ 12 ] Según uno de los miembros de ACO (Australian Calculator Operation), "Big Apple" se derivó del nombre en clave "New-Yorke" del prototipo de SoC basado en Saturno de 8 MHz en referencia a la ciudad de Nueva York, de ahí los nombres "Big apple", "Mid Apple" y "Little Apple". [ 12 ]
Véase también
- Capricornio , un procesador de 8 bits de HP
- Arquitectura serie digital
Notas
Referencias
- ↑ Kuperus, Klaas (04-03-2015). "HP 50g: Fin de una era" . forum.hp-prime.de . Moravia. Archivado del original el 02-04-2015.
- ↑ Kuperus, Klaas (6 de marzo de 2015). "¿HP 50g no son tan buenas noticias?" . Museo HP . Moravia. Archivado del original el 8 de julio de 2018 . Recuperado el 1 de enero de 2016 .
- ↑ Wessman, Timothy "Tim" James (26 de diciembre de 2015). "Windows 10 no permite instalar los controladores USB de HP 50g" . HP Museum . Archivado del original el 8 de julio de 2018. Consultado el 1 de enero de 2016 .
- 1 2 3 4 "3.1 Descripción general del procesador". Especificación de diseño interno de hardware HP-71B . Hewlett Packard Corporation. Septiembre de 1984. pág. 3-1. 00071-90071.
- ↑ Especificaciones de la CPU, controlador de pantalla, HP-IL, almacenamiento de datos, circuito integrado temporizador y circuito integrado de interfaz del HP-41C . Hewlett Packard Corporation. Julio de 1981. pág. 5.
- ↑ Fernandes, Gilbert Henri (16-07-2005) [29-01-1999]. "Capítulo 56.1 Número real". En Rechlin, Eric (ed.). Introducción al lenguaje ensamblador Saturn (3.ª ed.). hpcalc.org. pág. 104. ID 1693. Archivado del original el 13-11-2018 . Recuperado el 29-04-2019 .
Si el exponente es negativo, se codifica como "1000 - ABS(exponente)".
- ^ Donnini , Giuseppe (26 de junio de 2020 ) . ""¿Nueva York" ?" . www.hpmuseum.org . Consultado el 6 de julio de 2020 .
- 1 2 3 4 5 6 7 8 "Manual de ensamblaje de Saturn" . www.hpcalc.org . Hewlett Packard. 20 de agosto de 1993. Consultado el 6 de julio de 2020 .
- 1 2 3 4 5 6 7 8 9 Finseth, Craig A. (23-12-2016). "nombres" . Archivado del original el 21-12-2017 . Recuperado el 21-12-2017 .
- ↑ Arnett, Dave (1994-05-03). "¡Nombra ese chip!" . Grupo de noticias : comp.sys.hp48 . Recuperado el 22-04-2019 .
{{cite newsgroup}}: CS1 maint: servicio de archivado obsoleto ( enlace ) - ^ de Brébisson, Cyrille (17 de junio de 2020). "RE:" Nueva York " ?" . www.hpmuseum.org . Consultado el 18 de junio de 2020 .
- ^ 1 2 3 de Brébisson, Cyrille (16 de junio de 2020). "RE:" Nueva York " ?" . www.hpmuseum.org . Consultado el 18 de junio de 2020 .
Lecturas adicionales
- Mastracci, Matthew (1998) [1995]. "Guía del procesador Saturn (con aplicaciones HP48)" . 1.0b. Archivado del original el 6 de agosto de 2016. Recuperado el 3 de mayo de 2006 .
- Courbis, Pablo ; Lalande, Sébastien (27 de junio de 2006) [1989]. Voyage au centre de la HP28c/s (en francés) (2 ed.). París, Francia: Editions de la Règle à Calcul. OCLC 636072913 . Archivado desde el original el 6 de agosto de 2016 . Consultado el 6 de septiembre de 2015 .
- Courbis, Paul ; Lalande, Sébastien (25 de junio de 2006) [1993]. HP48 Machine Language - A Journey to the Center of the HP 48s/sx . Traducido por Cannon, Douglas R. (2.ª ed.). Corvallis, Oregon, EE. UU.: Grapevine Publications, Inc. OCLC 34148948. Archivado del original el 14 de noviembre de 2018. Recuperado el 6 de septiembre de 2015 .
- Courbis, Pablo ; Lalande, Sébastien (25 de junio de 2006) [1991]. Viaje al centro de la HP48 s/sx . 3.02 (en francés) (3ª ed.). París, Francia: Ediciones Angkor. ISBN 2-87892-003-1. OCLC 29640044 . Archivado del original el 13-11-2018 . Consultado el 06-09-2015 .
- Courbis, Paul (25 de junio de 2006) [1993]. Viaje al centro de la HP48 g/gx . 3.05 (en francés) (3ª ed.). París, Francia: Ediciones Angkor. ISBN 2-87892-006-6. OCLC 29640044 . Archivado del original el 06-08-2016 . Consultado el 06-09-2015 .
- Courbis, Pablo ; de Brébisson, Cyrille (marzo de 1994). Le compagnon de Voyage de la HP48 G/GX (en francés). París, Francia: Ediciones Angkor. ISBN 2-87892-007-4Archivado del original el 6 de agosto de 2016. Consultado el 6 de septiembre de 2015 .
- Fernandes, Gilbert Henri (16 de julio de 2005) [29 de enero de 1999]. Rechlin, Eric (ed.). Introducción al lenguaje ensamblador de Saturno (3.ª ed.). hpcalc.org. ID 1693. Archivado del original el 6 de agosto de 2016. Recuperado el 17 de febrero de 2009 .
Enlaces externos
- Información resumida en el Museo de Calculadoras HP.
- Microprocesadores HP
- Máquinas apiladoras
- microprocesadores de 4 bits