Una tienda de control es la parte de la unidad de control de una CPU que almacena el microprograma de la CPU . Por lo general, se accede mediante un microsecuenciador . Una implementación de almacén de control cuyo contenido es inalterable se conoce como memoria de solo lectura (ROM) o almacenamiento de solo lectura (ROS); uno cuyo contenido es modificable se conoce como Writable Control Store (WCS).
Implementación
Uso temprano
Las primeras tiendas de control se implementaron como una matriz de diodos a la que se accede a través de 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 utilizadas para controlar el procesador, así como su secuenciador interno. en una implementación microcodificada . 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 grabables
Algunas computadoras se construyeron usando "microcódigo escribible" - en lugar de almacenar el microcódigo en ROM o lógica cableada, el microcódigo se almacenó en una RAM llamada almacén de control de escritura o WCS . Este tipo de computadora a veces se denomina Computadora de conjunto de instrucciones grabables o WISC . [1] Muchas de estas máquinas eran prototipos de laboratorio experimentales, como la WISC CPU / 16 [2] y la RTX 32P. [3]
Los modelos System / 360 originales tenían un almacén de control de solo lectura, pero los modelos posteriores System / 360, System / 370 y sucesores cargaron parte o todos sus microprogramas desde disquetes u otro DASD en un almacén de control grabable que consistía en controles aleatorios de ultra alta velocidad. -acceder a la memoria de lectura y escritura . La arquitectura System / 370 incluía una función llamada Carga inicial de microprograma ( IML o IMPL ) [4] que podía invocarse desde la consola, como parte de Power On Reset ( 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 del almacén de control se almacena en ROM, los proveedores de computadoras a menudo venden el almacén de control escribible como una opción, lo que permite a los clientes personalizar el microprograma de la máquina. Otros proveedores, por ejemplo, IBM, utilizan WCS para ejecutar microcódigo para funciones del emulador [5] [6] y diagnósticos de hardware. [7]
Otras máquinas comerciales que utilizaban microcódigo grabables incluyen los sistemas pequeños de Burroughs (años 70 y 80), los procesadores Xerox en sus máquinas Lisp y estaciones de trabajo Xerox Star , la familia DEC VAX 8800 ("Nautilus") y las máquinas L y G de Symbolics. (Década de 1980). Algunas máquinas DEC PDP-10 almacenaban su microcódigo en chips SRAM (aproximadamente 80 bits de ancho x 2 Kpalabras), que normalmente se cargaban al encenderlas a través de alguna otra CPU frontal. [8] Muchas más máquinas ofrecían tiendas de control de escritura programables por el usuario como una opción (incluidas las minicomputadoras de la serie HP 2100 , DEC PDP-11/60 y Varian Data Machines V-70 ). El Mentec M11 y Mentec M1 almacena su microcódigo en chips de SRAM, cargada en el encendido a través de otra CPU. El Data General Eclipse MV / 8000 ("Eagle") tenía un almacén de control de escritura SRAM, cargado al encenderlo a través de otra CPU. [9]
WCS ofrecía varias ventajas, incluida la facilidad de parchear el microprograma y, para ciertas generaciones de hardware, un acceso más rápido que el que podrían proporcionar las ROM. El WCS programable por el usuario permitió al usuario optimizar la máquina para propósitos específicos.
Algunos diseños de CPU compilar el conjunto de instrucciones a un permiso de escritura RAM o FLASH dentro de la CPU (como el Rekursiv procesador y el Imsys CJIP ), [10] o un FPGA ( computación reconfigurable ).
Varias CPU Intel en la familia de arquitectura x86 tienen microcódigo escribible, [11] comenzando con el Pentium Pro en 1995. [12] Esto ha permitido que los errores en el microcódigo Intel Core 2 y el microcódigo Intel Xeon se corrijan en el software, en lugar de requerir el chip entero para ser reemplazado. Estos arreglos pueden ser instalados por Linux, [13] FreeBSD , [14] Microsoft Windows, [15] o el BIOS de la placa base. [dieciséis]
Sincronizar, enganchar y 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 . [17] 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 canalización. 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 de reloj , que es el tiempo de ciclo del sistema, sincroniza principalmente este registro.
Referencias
- ^ "Conjunto de instrucciones que se pueden escribir, computadoras orientadas a la pila: el concepto WISC", artículo de Philip Koopman Jr. 1987
- ^ "Arquitectura de la CPU WISC / 16" por Phil Koopman 1989
- ^ "Arquitectura del RTX 32P" por Philip Koopman 1989
- ^ IBM (septiembre de 1974), IBM System / 370 Principios de funcionamiento (PDF) , cuarta edición, págs. 98, 245, GA22-7000-4
- ^ IBM (junio de 1968), IBM System / 360 Model 85 Functional Characteristics (PDF) , SEGUNDA EDICIÓN, A22-6916-1
- ^ IBM (marzo de 1969), IBM System / 360 Descripción de funciones especiales 709/7090/7094 Función de compatibilidad para IBM System / 360 Modelo 85 , primera edición, GA27-2733-0
- ^ IBM (enero de 1971), IBM System / 370 Model 155 Functional Characteristics (PDF) , SEGUNDA EDICIÓN, GA22-6942-1
- ^ http://pdp10.nocrew.org/cpu/kl10-ucode.txt
- ^ Mark Smotherman. "CPSC 330 / El alma de una nueva máquina" .
Almacenamiento de control de escritura SRAM de 4096 x 75 bits: microinstrucción de 74 bits con 1 bit de paridad (18 campos)
- ^ "Grandes microprocesadores del pasado y presente (V 13.4.0)" . Cpushack.com . Consultado el 26 de abril de 2010 .
- ^ "Manual del desarrollador de software de arquitecturas Intel (R) 64 e IA-32", Volumen 3A: Guía de programación del sistema, Parte 1 , capítulo 9.11: "Instalaciones de actualización de microcódigo", diciembre de 2009.
- ^ Gwennap, Linley (15 de septiembre de 1997). "El microcódigo P6 se puede parchear" (PDF) . Informe del microprocesador . Consultado el 26 de junio de 2017 .
- ^ "Utilidad de actualización de microcódigo Intel para Linux" . Archivado desde el original el 26 de febrero de 2012.
- ^ Stefan Blachmann (2 de marzo de 2018). "Nueva herramienta de actualización de microcódigo para FreeBSD" . freebsd-hackers (lista de correo) . Consultado el 9 de julio de 2019 .
- ^ "Hay disponible una actualización de confiabilidad de microcódigo que mejora la confiabilidad de los sistemas que usan procesadores Intel"
- ^ "Se requiere actualización de BIOS cuando se ve el mensaje Falta microcódigo durante la POST"
- ^ Don Lancaster. "Libro de cocina de la máquina de escribir de TV" . pag. 62. ( Máquina de escribir de TV )
- Smith, Richard E. (1988). "Una descripción histórica de la arquitectura de la computadora" . Anales de la historia de la informática . 10 (4): 277-303. doi : 10.1109 / MAHC.1988.10039 . Consultado el 21 de junio de 2006 .