Articulo de referencia

Tienda de control

La memoria de control es la parte de la unidad de control de la CPU que almacena el microprograma de la misma . Generalmente, se accede a ella mediante un microsecuenciador . Un...

La memoria de control es la parte de la unidad de control de la CPU que almacena el microprograma de la misma . Generalmente, se accede a ella mediante un microsecuenciador . Una implementación de memoria de control cuyo contenido es inalterable se conoce como memoria de solo lectura (ROM) o almacenamiento de solo lectura (ROS); una cuyo contenido es modificable se conoce como memoria de control modificable (WCS).

Implementación

Uso temprano

Las primeras memorias de control se implementaron como una matriz de diodos a la que se accedía mediante decodificadores de direcciones, una forma de memoria de solo lectura. Esta tradición se remonta a la matriz de temporización del programa en el MIT Whirlwind , descrita por primera vez en 1947. Los procesadores VLSI modernos , en cambio, utilizan matrices de transistores de efecto de campo para construir las estructuras ROM y/o PLA que se utilizan para controlar el procesador, así como su secuenciador interno en una implementación microcodificada . El IBM System/360 utilizó una variedad de técnicas: CCROS (Card Capacitor Read-Only Storage) en el modelo 30 , TROS (Transformer Read-Only Storage) en el modelo 40 y BCROS (Balanced Capacitor Read-Only Storage) en los modelos 50 , 65 y 67 .

Tiendas con capacidad de escritura

Algunos ordenadores se construyen utilizando «microcódigo grabable»; en lugar de almacenar el microcódigo en la ROM o en lógica cableada, se almacena en una RAM denominada memoria de control grabable o WCS . A este tipo de ordenador se le suele llamar ordenador con conjunto de instrucciones grabable o WISC . [ 1 ] Muchas de estas máquinas eran prototipos experimentales de laboratorio, como la CPU/16 WISC [ 2 ] y la RTX 32P. [ 3 ]

Los modelos originales del System/360 tienen una memoria de control de solo lectura, pero los modelos posteriores, como el System/360, el System/ 370 y los sucesores, cargan parte o la totalidad de sus microprogramas desde disquetes u otras unidades DASD en una memoria de control escribible que consiste en una memoria de lectura/escritura de acceso aleatorio de ultra alta velocidad . La arquitectura del System/370 incluye una función llamada Carga Inicial de Microprogramas ( IML o IMPL ) [ 4 ] que se puede invocar desde la consola, como parte del Reinicio al Encendido ( POR ) o desde otro procesador en un complejo multiprocesador estrechamente acoplado . Esto permitió a IBM reparar fácilmente los defectos de microprogramación en el campo. Incluso cuando la mayor parte de la memoria de control se almacena en la ROM, los fabricantes de computadoras a menudo vendían la memoria de control escribible como una opción, lo que permitía a los clientes personalizar el microprograma de la máquina. Otros fabricantes, por ejemplo, IBM, utilizan el WCS para ejecutar microcódigo para funciones de emuladores [ 5 ] [ 6 ] y diagnósticos de hardware. [ 7 ]

Otras máquinas comerciales que utilizan microcódigo escribible incluyen los Burroughs Small Systems (décadas de 1970 y 1980), los procesadores Xerox en sus máquinas Lisp y estaciones de trabajo Xerox Star , la familia DEC VAX 8800 ("Nautilus") y las máquinas Symbolics L y G (década de 1980). Algunas máquinas DEC PDP-10 almacenan su microcódigo en chips SRAM (aproximadamente 80 bits de ancho x 2 Kwords), que normalmente se carga al encenderse a través de alguna otra CPU de extremo frontal. [ 8 ] Muchas más máquinas ofrecen como opción almacenamiento de control escribible programable por el usuario (incluidas las minicomputadoras HP 2100 , DEC PDP-11/60 y Varian Data Machines serie V-70 ). El Mentec M11 y el Mentec M1 almacenan su microcódigo en chips SRAM, cargados al encenderse a través de otra CPU. El Data General Eclipse MV/8000 ("Eagle") tiene una memoria de control SRAM escribible, que se carga al encenderse a través de otra CPU. [ 9 ]

WCS ofrece varias ventajas, entre ellas la facilidad para parchear el microprograma y, para ciertas generaciones de hardware, un acceso más rápido que el que podían proporcionar las ROM. Los WCS programables por el usuario permiten optimizar la máquina para fines específicos. Sin embargo, también presenta la desventaja de dificultar la depuración de programas y permitir que usuarios malintencionados afecten negativamente al sistema y a los datos. [ 10 ]

Los sistemas Burroughs Small Systems , el procesador Rekursiv y el Imsys Cjip [ 11 ] admitían la carga de diferentes microcódigos para programas en diferentes lenguajes de programación, con el microcódigo para un lenguaje en particular implementando un conjunto de instrucciones adaptado al lenguaje.

Varios procesadores Intel de la familia de arquitectura x86 tienen microcódigo escribible, [ 12 ] comenzando con el Pentium Pro en 1995. [ 13 ] [ 14 ] Esto ha permitido corregir errores en el microcódigo de los procesadores Intel Core 2 e Intel Xeon mediante software, en lugar de tener que reemplazar el chip completo. Dichas correcciones pueden instalarse mediante Linux, [ 15 ] FreeBSD , [ 16 ] Microsoft Windows, [ 17 ] o la BIOS de la placa base. [ 18 ]

Sincronización, enganche y cómo evitar una condición de carrera.

El almacén de control suele tener un registro en sus salidas. Las salidas que regresan al secuenciador para determinar la siguiente dirección deben pasar por algún tipo de registro para evitar la creación de una condición de carrera . [ 19 ] En la mayoría de los diseños, todos los demás bits también pasan por un registro. Esto se debe a que la máquina funcionará más rápido si la ejecución de la siguiente microinstrucción se retrasa un ciclo. Este registro se conoce como registro de tubería. Muy a menudo, la ejecución de la siguiente microinstrucción depende del resultado de la microinstrucción actual, que no será estable hasta el final del microciclo actual. Se puede ver que, de cualquier manera, todas las salidas del almacén de control van a un gran registro. Históricamente, solía ser posible comprar EPROM con estos bits de registro en el mismo chip.

La señal de reloj que determina la frecuencia del reloj , que es el tiempo de ciclo del sistema, sincroniza principalmente este registro.

Referencias

  1. Koopman Jr., Philip (1987). "Computadoras orientadas a pila con conjunto de instrucciones editable: El concepto WISC" (PDF) . The Journal of Forth Application and Research . 5 (1): 49–71 .
  2. Koopman Jr., Philip (1989). "Arquitectura de la CPU/16 de WISC" . Stack Computers: la nueva ola .
  3. Koopman Jr., Philip (1989). "Arquitectura de la RTX 32P" . Stack Computers: la nueva ola .
  4. IBM (septiembre de 1974), Principios de funcionamiento del IBM System/370 (PDF) , Cuarta edición, págs. 98, 245, GA22-7000-4 
  5. IBM (junio de 1968), Características funcionales del IBM System/360 Modelo 85 (PDF) , SEGUNDA EDICIÓN, A22-6916-1
  6. IBM (marzo de 1969), Descripción de características especiales del IBM System/360 709/7090/7094 Característica de compatibilidad para el IBM System/360 Modelo 85 , Primera edición, GA27-2733-0
  7. IBM (enero de 1971), Características funcionales del IBM System/370 Modelo 155 (PDF) , SEGUNDA EDICIÓN, GA22-6942-1
  8. Smith, Eric (3 de septiembre de 2002). "Re: ¿Cuál era el tamaño del microcódigo en varias máquinas?" . Grupo de noticias : comp.arch . 
  9. Mark Smotherman. "CPSC 330 / El alma de una nueva máquina" . Memoria de control SRAM de 4096 x 75 bits con escritura: microinstrucción de 74 bits con 1 bit de paridad (18 campos).
  10. McDowell, Charlie (1982). "Protección a nivel de micromáquina" . ACM SIGARCH Computer Architecture News . 10 (1): 5. doi : 10.1145/859520.859521 . Recuperado el 25 de noviembre de 2023. No es raro encontrar microprogramas que superan los 50 KB. Este aumento de tamaño y la expansión de la microprogramación más allá de los límites tradicionales de la emulación de instrucciones de máquina han incrementado la posibilidad de microprogramas maliciosos y defectuosos, especialmente estos últimos.
  11. "Grandes microprocesadores del pasado y del presente (V 13.4.0)" . Cpushack.com . Consultado el 26 de abril de 2010 .
  12. Manual del desarrollador de software para arquitecturas Intel 64 e IA-32, Volumen 3A: Guía de programación del sistema, Parte 1 (PDF) . Diciembre de 2009. Capítulo 9.11: "Funciones de actualización de microcódigo".
  13. ^ Más quieto, Andreas; Paul, Matías R. (12 de mayo de 1996). "Prozessorgeflüster" . c't – revista para tecnología informática . Tendencias y noticias / aktuell - Prozessoren (en alemán). vol. 1996, núm. 6. Verlag Heinz Heise GmbH & Co. KG . pag. 20. ISSN 0724-8679 . Archivado desde el original el 28 de agosto de 2017 . Consultado el 28 de agosto de 2017 .    
  14. Gwennap, Linley (15 de septiembre de 1997). "El microcódigo P6 se ​​puede parchear: Intel revela detalles del mecanismo de descarga para corregir errores de la CPU" (PDF) . Microprocessor Report . MicroDesign Resources . Archivado (PDF) del original el 19 de mayo de 2022. Consultado el 26 de junio de 2017 .(2 páginas)
  15. "Utilidad de actualización de microcódigo de Intel para Linux" . Archivado del original el 26 de febrero de 2012.
  16. Stefan Blachmann (2018-03-02). "Nueva herramienta de actualización de microcódigo para FreeBSD" . freebsd-hackers (Lista de correo) . Consultado el 2019-07-09 .
  17. "Hay disponible una actualización de confiabilidad del microcódigo que mejora la confiabilidad de los sistemas que usan procesadores Intel" . Soporte técnico de Microsoft . 22 de junio de 2007. Archivado del original el 28 de junio de 2007.
  18. "Se requiere una actualización de la BIOS cuando aparece el mensaje de Microcódigo faltante durante el POST" . Intel . Consultado el 13 de enero de 2022 .
  19. Don Lancaster. "Libro de cocina para máquinas de escribir en televisión" . pág. 62. ( Máquina de escribir en televisión )

Lecturas adicionales