Micro programación y cableado

1

Tengo una pregunta sobre los detalles de la microprogramación y el cableado en la arquitectura de la CPU.

En el cableado, escribimos un código, el compilador lo traduce a ISA , luego se ejecuta la ISA en hardware.

En la microprogramación, escribimos un código, el compilador lo traduce a la ISA (que es mucho más complicado que la ISA en el cableado), luego un dispositivo (no sé el nombre) lo traduce al lenguaje del hardware.

¿Estoy en lo correcto?

    
pregunta jack.math

3 respuestas

1

Sería más claro pensar que el microcódigo es un "intérprete" para la ISA. Al igual que un intérprete BÁSICO (escrito en lenguaje ensamblador) lee tokens del código fuente y realiza las acciones que indican, el microcódigo en una CPU lee las instrucciones ISA de la memoria y realiza las acciones necesarias.

Y al igual que puede tener diferentes intérpretes de idiomas para un ISA determinado, puede tener diferentes conjuntos de microcódigo que implementan diferentes ISA en un conjunto determinado de primitivas de hardware de CPU. De hecho, ha habido sistemas comerciales que hicieron exactamente esto. 1

Este concepto puede aplicarse en muchos niveles de programación. Una vez escribí un editor de texto para mi sistema CP / M que constaba de dos capas: una capa de bajo nivel que implementaba todas las operaciones de edición reales y una capa de alto nivel que "interpretaba" la entrada del usuario y llamaba a esas funciones de edición. Escribí una interfaz de usuario que imitaba al editor vi , mientras que un amigo mío escribió una IU diferente que imitaba al editor ted , porque eso es lo que solía usar.

1 Nota histórica interesante: esta es la razón por la primera disquete fue inventado.

    
respondido por el Dave Tweed
0

Con la microcodificación no hay un paso donde el código ISA se traduzca . Una mejor forma de verlo es que las instrucciones ISA son en realidad solo llamadas de subrutinas, donde las subrutinas están escritas en un código de nivel aún más bajo y las subrutinas se almacenan en una ROM en el chip del procesador.

    
respondido por el Elliot Alderson
0

No exactamente, no. En un procesador microcodificado, lo que sucede es que el procesador de lectura ISA y cada instrucción (y, potencialmente, alguna parte del estado actual del procesador, por ejemplo, banderas) se usa como un índice en una tabla de búsqueda que determina qué es exactamente el procesador hace Se permite que cada instrucción tenga múltiples entradas en esa tabla que luego se realizan de forma secuencial. Nunca se produce una traducción directa del ISA primario a un "lenguaje de hardware", es más un caso de un nivel extra de direccionamiento indirecto entre el ISA y el hardware, ya que el contenido del microcódigo generalmente es solo un conjunto de señales. que controlan directamente el hardware del procesador (por ejemplo, seleccionando las entradas a los multiplexores, controlando cuándo se escriben los registros, etc.).

La diferencia real entre este y un procesador cableado es que el microcódigo se escribe como una tabla de búsqueda en lugar de los controles que genera la lógica fija. Por supuesto, como todos sabemos, los dos son en realidad lógicamente equivalentes, así que en realidad no hay mucha diferencia real entre los dos.

Cuando un procesador cableado realmente se diferencia de uno microcodificado es que es mucho más fácil implementar la canalización para un diseño cableado, por lo que la mayoría de los diseños canalizados evitan usar el microcódigo lo más posible. Esto se hace más fácil si el ISA no especifica muchas operaciones que deben realizarse de forma secuencial, que es donde RISC entra: las instrucciones RISC son generalmente diferentes a las de CISC porque solo hacen una cosa, es decir, acceder a la memoria o realizar cálculos , mientras que las arquitecturas CISC a menudo hacen ambas cosas en la misma instrucción. Esto facilita mucho el diseño de una canalización fija para una arquitectura RISC.

    
respondido por el Jules

Lea otras preguntas en las etiquetas