(Disculpe si este no es el mejor lugar para tal pregunta. Busqué un poco pero no encontré un lugar mejor).
Aprendí tanto el lenguaje ensamblador como el diseño básico de circuitos digitales en la universidad. Pero después de tantos años de codificar con varios lenguajes, creo que todavía extraño el conocimiento crítico in the middle of
de esas 2 partes:
¿Cómo se traduce la instrucción de ensamblaje de alto nivel en comportamientos de puertas lógicas de bajo nivel?
AFAIK, el nivel más bajo de una computadora es varios logical gates
. Para una instrucción en lenguaje ensamblador como movl 10, eax
, sé que un ensamblador la traducirá en una secuencia de 1/0. Pero, ¿cómo se traduce eso en actions of logical gates
? Y escuché que existe el llamado microcódigo para procesadores. ¿Cómo se relaciona eso?
Gracias a Eugene Sh. A continuación se presentan algunas referencias útiles:
Nand2 Tetris:
Realmente no puedes pasar de las instrucciones de montaje a las puertas. Entre las instrucciones en lenguaje ensamblador y las puertas reales, hay otro nivel de abstracción: los bloques de circuitos funcionales.
Las instrucciones en lenguaje ensamblador generan señales de control para una serie de bloques funcionales. Como mínimo, está el decodificador de instrucciones, la ALU para la aritmética y el secuenciador de programas para el flujo de instrucciones. Además, normalmente hay uno o dos generadores de direcciones para direccionar operandos. Pueden ser punteros simples, como en un 8051, o unidades aritméticas complejas, como en un DSP. A menudo tiene registros de canalización para permitir que las instrucciones fluyan más rápido. En estos días, también hay coprocesadores de coma flotante y otros.
El funcionamiento de cada uno de estos bloques se puede discutir extensamente. Así que realmente no podemos responder a esa pregunta.
El microcódigo era una forma de simplificar esos bloques, a expensas de la velocidad. El procesador es muy simple y las instrucciones complejas invocan una secuencia de microinstrucciones, preprogramadas en un "almacenamiento de control", que se ejecutan en el hardware simplificado. La técnica ya no se usa, ya que la velocidad se considera mucho más importante que las puertas. Las puertas son casi gratis.
Eugenio Sh.
smwikipedia
smwikipedia
nand2teris
que acompaña a esta lección. ted.com/talks/…Eugenio Sh.
chris stratton