stringtranslate.com

Tienda de control

Un almacén 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 a él 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 alterable se conoce como almacén de control escribible (WCS).

Implementación

Uso temprano

Los primeros sistemas de almacenamiento 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 de programas del 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 (almacenamiento de solo lectura de capacitores de tarjeta) en el Modelo 30 , TROS (almacenamiento de solo lectura de transformadores) en el Modelo 40 y BCROS (almacenamiento de solo lectura de capacitores equilibrados) en los Modelos 50 , 65 y 67 .

Tiendas que se pueden escribir

Algunas computadoras se construyen utilizando "microcódigo escribible"; en lugar de almacenar el microcódigo en la ROM o en una lógica cableada, el microcódigo se almacena en una RAM llamada almacén de control escribible o WCS . A este tipo de computadoras a veces se las denomina computadoras con conjunto de instrucciones escribibles o WISC . [1] Muchas de estas máquinas eran prototipos experimentales de laboratorio, como la WISC CPU/16 [2] y la RTX 32P. [3]

Los modelos originales System/360 tienen un almacén de control de sólo lectura, pero los modelos posteriores System/360, System/370 y sucesores cargan parte o la totalidad de sus microprogramas desde disquetes u otros DASD en un almacén de control escribible que consiste en una memoria de lectura-escritura de acceso aleatorio de velocidad ultraalta . La arquitectura System/370 incluye una función llamada Carga inicial de microprograma ( IML o IMPL ) [4] que se puede invocar desde la consola, como parte de un Reinicio de 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ía del almacén de control se almacena en ROM, los vendedores de computadoras a menudo vendían un almacén de control escribible como una opción, lo que permitía a los clientes personalizar el microprograma de la máquina. Otros vendedores, por ejemplo, IBM, utilizan el WCS para ejecutar microcódigo para las características del emulador [5] [6] y los 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 L y G de Symbolics (década de 1980). Algunas máquinas DEC PDP-10 almacenan su microcódigo en chips SRAM (alrededor de 80 bits de ancho x 2 Kwords), que normalmente se cargan al encenderse a través de alguna otra CPU frontal. [8] Muchas más máquinas ofrecen almacenes de control escribibles programables por el usuario como una opción (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 Eclipse MV/8000 ("Eagle") de Data General tiene un almacén de control escribible en SRAM, que se carga al encenderse a través de otra CPU. [9]

WCS ofrece varias ventajas, entre ellas la facilidad para aplicar parches al microprograma y, para ciertas generaciones de hardware, un acceso más rápido que el que podían proporcionar las ROM. El WCS programable por el usuario permite que éste optimice la máquina para fines específicos. Sin embargo, también tiene la desventaja de dificultar la depuración de programas y hacer posible que usuarios malintencionados afecten negativamente al sistema y a los datos. [10]

Algunos diseños de CPU compilan el conjunto de instrucciones en una RAM o FLASH grabable dentro de la CPU (como el procesador Rekursiv y el Imsys Cjip), [11] o un FPGA ( computación reconfigurable ).

Varias CPU Intel de la familia de arquitectura x86 tienen microcódigo escribible, [12] comenzando con el Pentium Pro en 1995. [13] [14] Esto ha permitido que errores en el microcódigo de Intel Core 2 y el microcódigo de Intel Xeon se corrijan en el software, en lugar de requerir que se reemplace todo el chip. Dichas correcciones se pueden instalar mediante Linux, [15] FreeBSD , [16] Microsoft Windows, [17] o el BIOS de la placa base. [18]

Sincronización, enganche y prevención de una condición de carrera

El almacén de control normalmente tiene un registro en sus salidas. Las salidas que vuelven al secuenciador para determinar la siguiente dirección tienen que 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 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

  1. ^ Koopman Jr., Philip (1987). "Computadoras orientadas a pilas con conjuntos de instrucciones escribibles: el concepto WISC" (PDF) . The Journal of Forth Application and Research . 5 (1): 49–71.
  2. ^ Koopman Jr., Philip (1989). "Arquitectura de la CPU WISC/16". Computadores apilados: la nueva ola.
  3. ^ Koopman Jr., Philip (1989). "Arquitectura de la RTX 32P". Computadores apilados: 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 709/7090/7094 de IBM System/360 Característica de compatibilidad para 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 grabable en SRAM de 4096 x 75 bits: 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 . Consultado el 25 de noviembre de 2023 . No es inusual encontrar microprogramas de más de 50K bytes de tamaño. 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 aumentado la posibilidad de microprogramas tanto maliciosos como defectuosos, particularmente los ú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 de 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 CPU" (PDF) . Informe sobre microprocesadores . Recursos de MicroDesign . Archivado (PDF) desde el 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 desde el 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 utilizan procesadores Intel". Soporte técnico de Microsoft . 22 de junio de 2007. Archivado desde el original el 28 de junio de 2007.
  18. ^ "Se requiere actualización del BIOS cuando se ve el mensaje "Microcódigo faltante" durante la prueba POST". Intel . Consultado el 13 de enero de 2022 .
  19. ^ Don Lancaster. "Recetas de TV Typewriter". pág. 62. ( TV Typewriter )

Lectura adicional