Articulo de referencia

Bellmac 32

El Bellmac 32 , también conocido como WE 32000 , es un microprocesador desarrollado por la división de procesadores de Bell Labs en 1980. Implementado con tecnología CMOS , fue ...

El Bellmac 32 , también conocido como WE 32000 , es un microprocesador desarrollado por la división de procesadores de Bell Labs en 1980. Implementado con tecnología CMOS , fue el primer microprocesador capaz de procesar 32 bits en un ciclo de reloj. El microprocesador contiene 150 000 transistores y mejoró la velocidad del diseño CMOS mediante el uso de circuitos dominó. Fue diseñado pensando en el lenguaje de programación C. Tras su creación, se produjo una versión mejorada llamada Bellmac 32A , que posteriormente fue cancelada junto con su sucesor, el procesador CRISP (Reduced Instruction Set Processor) en lenguaje C, denominado "Hobbit" .

Historia

El procesador Bellmac 32 fue desarrollado por ingenieros de AT&T en tres ubicaciones diferentes de Bell Labs : Indian Hill , Holmdel y Murray Hill . [ 1 ]

Como los diseñadores no contaban con herramientas de automatización, cada diseñador de chips tuvo que usar lápices de colores para completar el diseño inicial. [ 1 ] Posteriormente, Steve Law desarrolló un programa informático que facilitó la digitalización de los diseños iniciales.

El desarrollo del Bellmac 32 produjo una novedosa técnica de diseño de circuitos llamada lógica dominó , considerada un gran avance para la producción del microprocesador. Las pruebas realizadas durante la fabricación indicaron que  era posible una frecuencia de reloj incluso superior a la velocidad objetivo de 4 MHz. Sin embargo, la implementación de la lógica de control resultó inesperadamente complicada. Estas complicaciones limitaron la velocidad final, una vez terminado y probado el chip completo, a 2  MHz. [ 1 ] El equipo lo consideró un progreso, pero no un éxito rotundo, ya que no pudo cumplir con los objetivos de diseño iniciales de AT&T.

Las reuniones de diseño posteriores dieron como resultado el proyecto Bellmac 32A, como una segunda generación del microprocesador Bellmac. El proyecto seleccionó nuevamente la tecnología CMOS y fijó la frecuencia de reloj objetivo en 6,2  MHz. Los ajustes para maximizar el tamaño de los transistores y las resistencias y minimizar las interconexiones fueron fundamentales para cumplir con las especificaciones. Los ingenieros colocaron un dibujo de ingeniería de 6 x 6 metros del diseño del chip en el suelo de una sala grande. [ 2 ] Las pruebas de los chips producidos a partir del circuito completo superaron la velocidad de diseño y alcanzaron frecuencias de reloj de 7, 8 e incluso 9  MHz. [ 1 ]

Después de la división de AT&T, Bell Labs pasó a formar parte de Western Electric . Con este cambio, el Bellmac 32 pasó a llamarse WE 32000. Las versiones actualizadas del chip incluyeron el WE 32100 , anunciado en junio de 1984, [ 3 ] y el WE 32200 .

Arquitectura

El Bellmac 32 tiene una arquitectura segmentada con una unidad de búsqueda de instrucciones que sirve para controlar el acceso a la memoria principal y una unidad de ejecución que sirve para supervisar el proceso y manipular los datos.

La cola de instrucciones se llena con las instrucciones obtenidas de la memoria. La unidad aritmética de direcciones se utiliza para los cálculos de direcciones.

Compatibilidad con lenguajes de programación

La arquitectura Bellmac 32 ofrece diversas ventajas para los desarrolladores de lenguajes de programación. La invocación de procedimientos implica la manipulación de cuatro registros (el contador de programa , el puntero de pila, el puntero de marco y el puntero de argumento) para transferir el control entre procedimientos, además del uso de la pila de programa para preservar el contenido de los registros y comunicar argumentos y valores de retorno. Se ofrecen cuatro instrucciones para facilitar este enlace entre procedimientos: `call` guarda la dirección de retorno y el puntero de argumento en la pila; ` save` preserva los registros seleccionados en el rango de R3 a R8 (inclusive); `restore` restaura los registros guardados previamente; y `return` obtiene el marco de pila antes de la invocación y devuelve el control a la dirección de retorno guardada. Se proporcionan modos de direccionamiento que ofrecen acceso a la pila en relación con el puntero de argumento y el puntero de marco. [ 4 ]

Gestión de procesos

La arquitectura admite un modelo particular de gestión de procesos, donde un proceso emplea una única pila de ejecución y donde un Bloque de Control de Proceso (BCP) conserva el contexto de ejecución de cada proceso, almacenando copias de los valores de los registros del proceso junto con datos de "movimiento de bloque" que describen la configuración de memoria virtual del proceso . Para facilitar la implementación del sistema operativo, la arquitectura admite el cambio de procesos mediante dos instrucciones específicas, análogas a las tradicionales instrucciones de salto a subrutina y retorno de subrutina. La instrucción de llamada a proceso guarda los registros de usuario y de control en el BCP de un proceso determinado a través del registro privilegiado Puntero al Bloque de Control de Proceso (BCP), capturando así el estado de ejecución del proceso actual y permitiendo su suspensión. Posteriormente, se cargan dichos registros desde el BCP de otro proceso, restaurando así el estado de ejecución del proceso. Por su parte, la instrucción de retorno a proceso simplemente carga el estado del proceso desde un BCP determinado. Al realizar "movimientos de bloques", las instrucciones de cambio de proceso pueden reconfigurar automáticamente la disposición de la memoria virtual activa sin intervención adicional del sistema operativo, y al combinar esta reconfiguración con actualizaciones de los registros del procesador, estas instrucciones permiten restaurar convenientemente el entorno de ejecución del proceso. [ 4 ]

Manejo de interrupciones

Junto con el registro PCBP, el registro del puntero de pila de interrupciones (ISP) se utiliza para referirse a una posición en una pila de interrupciones común, que se usa para registrar punteros PCB que hacen referencia al estado almacenado de los procesos interrumpidos. Cuando se produce una interrupción, se emplea la instrucción de llamada de proceso dedicada para suspender el proceso en ejecución, cuya dirección PCB se almacena en la pila de interrupciones, y para cambiar a un manejador de interrupciones seleccionado de una tabla. Las interrupciones se comportan como procesos independientes y, por lo tanto, se les proporciona su propia pila de ejecución distinta. Una vez finalizado el manejo de la interrupción, se utiliza la instrucción de retorno al proceso para reanudar el proceso suspendido. La selección de un manejador de interrupciones adecuado implica una tabla de punteros PCB en una ubicación de memoria virtual fija. [ 4 ]

Privilegios, llamadas al sistema y manejo de excepciones

La arquitectura Bellmac 32 admite cuatro niveles de privilegio. Para cambiar entre niveles de privilegio, se proporciona el mecanismo de "transferencia controlada", que se basa en una jerarquía de tablas de dos niveles para definir el nivel de privilegio utilizando el registro de Palabra de Estado del Procesador (PSW) y la ubicación de cada procedimiento o manejador que se invocará mediante una "llamada controlada", proporcionando así un mecanismo de llamada al sistema . El manejo de excepciones emplea este mecanismo de llamada controlada para dirigir la ejecución a un manejador apropiado, que para una excepción "normal" se encuentra a través de una tabla de segundo nivel específica cuyas entradas corresponden a un Código de Estado Interno (ISC) específico, definido en el registro PSW. Para que las funciones relacionadas con excepciones de Bellmac 32 funcionen, también se espera que un núcleo del sistema operativo resida en el espacio de direcciones virtuales de cada proceso, ya que una excepción, al depender de una transferencia controlada, no modificará la configuración de la memoria virtual. [ 4 ]

Instrucciones que dan soporte al lenguaje C

Aunque la arquitectura Bellmac 32 admite diversas operaciones de alto nivel en general, se proporcionan instrucciones específicas que admiten las convenciones del lenguaje C, en particular las instrucciones de copia de cadena y de fin de cadena , que se basan en la representación del lenguaje C para terminar las cadenas de caracteres con un byte cero. También se proporciona una operación general de copia de bloques que utiliza un parámetro explícito de longitud de bloque para definir la cantidad de datos que se copiarán entre ubicaciones. [ 4 ]

Registros

El Bellmac 32 tiene dieciséis registros de 32 bits. Tres de ellos (ISP, PCBP, PSW) son privilegiados, se utilizan para dar soporte al sistema operativo y solo se pueden escribir cuando el microprocesador está en modo kernel. Hay otros tres registros (SP, AP, FP) que algunas instrucciones utilizan como punteros de pila. El nivel de ejecución, configurado en la Palabra de Estado del Procesador, puede ser uno de cuatro estados: Kernel, Ejecutivo, Supervisor, Usuario. [ 5 ]

El WE 32200 cuenta con dieciséis registros adicionales, [ 6 ] divididos en dos grupos de ocho: R16 a R23 son registros de usuario, legibles y escribibles en cualquier modo de procesador, destinados al almacenamiento temporal y de variables globales ; R24 a R31 son registros del núcleo, o privilegiados, que solo se pueden escribir en modo núcleo y leer en cualquier otro modo. Estos registros adicionales se introdujeron para permitir que los compiladores de lenguajes de alto nivel generaran código que pudiera utilizarlos para almacenar datos de uso frecuente, mejorando así el rendimiento de ejecución de dichos lenguajes. [ 7 ]

Palabra de estado del procesador

La palabra de estado del proceso forma parte del archivo de registro y se denomina R11.

Instrucciones

Este microprocesador cuenta con 169 instrucciones, optimizadas para ejecutar programas escritos en el lenguaje de programación C. Por consiguiente, el formato de las cadenas de caracteres se adapta a las especificaciones del lenguaje C, por ejemplo.

Las instrucciones pueden tener hasta tres operandos. El procesador no dispone de instrucciones de aritmética de punto flotante ni decimal, que posteriormente fueron proporcionadas por los coprocesadores WE 32106 y WE 32206.

Memoria

El Bellmac 32 implementa varios tipos de direccionamiento de memoria, como lineal, inmediato de 8, 16 o 32 bits, registro, registro indirecto, desplazamiento corto, desplazamiento absoluto e indirecto de 8, 16 o 32 bits.

Uso

Los procesadores WE 32x00 se utilizaron en las computadoras de la serie 3B de AT&T Computer Systems , y se presentaron como productos disponibles comercialmente en forma de las gamas 3B2, 3B5 y 3B20 en la feria Comdex de la primavera de 1984. [ 8 ] A mediados de 1985, AT&T comenzó a ofrecer el WE 32100 y el chipset asociado, junto con sistemas de evaluación a nivel de placa, a otros fabricantes. [ 9 ]

Chips de soporte

AT&T tenía una línea de chips y periféricos compatibles con WE 32x00, [ 6 ] que incluían:

  • Unidad de gestión de memoria WE 32101 / 32201
  • Reloj WE 32102 (10, 14, 18 o 24 MHz)
  • Controlador DRAM WE 32103
  • Controlador DMA WE 32104 / 32204
  • Unidad de aceleración matemática WE 32106 / 32206
  • Ordenador de placa única WE 321SB VMEbus
  • Junta de Evaluación WE 321EB

Referencias

  1. 1 2 3 4 Dr. Sung Mo (Steve) Kang (13 de enero de 2015). "De primera mano: El desarrollo del microprocesador BELLMAC-32 de AT&T" . Wiki de historia de la ingeniería y la tecnología .
  2. "Sobre el BELLMAC-32, y quizás el dibujo a pluma de plotter más grande del mundo – greg.org" . 09/12/2011 . Consultado el 28/03/2024 .
  3. "Noticias sobre circuitos integrados de microprocesadores de 32 bits" . Microsystems . Junio ​​de 1984. pág. 12. Consultado el 25 de marzo de 2023 . 
  4. 1 2 3 4 5 Berenbaum, Alan D.; Condry, Michael W.; Lu, Priscilla M. (marzo de 1982). "El sistema operativo y las características de soporte de lenguaje del microprocesador BELLMAC-32" . Actas del Simposio sobre soporte arquitectónico para lenguajes de programación y sistemas operativos . Association for Computing Machinery: 30–38 . Recuperado el 24 de marzo de 2023 .
  5. "Manual de información del microprocesador WE 32100" (PDF) . AT&T. Enero de 1985.
  6. 1 2 "AT&T WE Microprocesadores y periféricos de 32 bits" (PDF) . AT&T. Agosto de 1987.
  7. Huang, Victor KL; Seery, James W.; Wu, William S.; Altabet, Saul K.; Killian, Michael J.; Aymeloglu, Simeon; Gabara, Thaddeus J.; Fisher, Aaron L.; Hwang, Inseok S.; Thompson, David W. (abril de 1989). "El desafío de diseño del AT&T WE32200" . IEEE Micro . págs. 14–25 . Recuperado el 19 de marzo de 2023 . 
  8. Hunter, Bruce (junio de 1984). "AT&T entra en el mercado de micro/mini" . Microsystems . págs. 114–116 , 118. Recuperado el 25 de marzo de 2023 . 
  9. "AT&T ofrece procesador de 32 bits a otras compañías" . Byte . Julio de 1985. pág. 9. Consultado el 25 de marzo de 2023 . 
  • De primera mano: El desarrollo del microprocesador AT&T BELLMAC-32. http://www.ieeeghn.org/wiki/index.php/First-Hand:The_AT%26T_BELLMAC-32_Microprocessor_Development
  • Ordenadores personales. Hacia un mundo de máquinas informáticas. Apéndice B: Sobre los microprocesadores. Autor: Fernando Sáez Cows. http://www.quadernsdigitals.net/datos_web/biblioteca/l_516/enLinea/8.pdf Archivado el 14 de julio de 2010 en Wayback Machine
  • Archivo del canal de tecnología de AT&T: Microprocesadores para la era de la información (vídeo)
  • Jones, Willie (22 de mayo de 2025). "32 bits que cambiaron el diseño de microprocesadores" . IEEE Spectrum .