En Arquitectura y organización de computadoras, ¿cómo se pueden usar controladores basados en ROM en lugar de lógica discreta? Mi profesor explicó un poco, pero no puedo encontrar ningún detalle en ningún lugar en línea (bueno, miré a Bing).
En Arquitectura y organización de computadoras, ¿cómo se pueden usar controladores basados en ROM en lugar de lógica discreta? Mi profesor explicó un poco, pero no puedo encontrar ningún detalle en ningún lugar en línea (bueno, miré a Bing).
Cualquier transformación lógica de N bits de entrada a M bits de salida se puede lograr mediante una tabla de consulta con 2 entradas N (indexadas por los bits de entrada) de M bits cada una. Esto es, efectivamente, uniendo tablas de verdad M cada una utilizando las mismas N entradas.
El uso de una tabla de consulta puede ser más simple (menos propenso a errores) y más fácil de cambiar que usar muchas operaciones lógicas individuales para generar el mismo resultado. Además, a veces el costo de la ROM ha sido mucho menor que el costo de la lógica arbitraria.
En algunos casos, un diseño de compromiso es superior. La lógica discreta se puede usar para comprimir la entrada para reducir el tamaño de la tabla, las partes independientes de la entrada pueden usar una tabla más pequeña (que requiere un poco de lógica adicional para analizar la entrada antes de la búsqueda), o transformaciones simples (como como la duplicación de bits particulares o la inversión condicional de bits particulares puede aplicarse al resultado de la tabla de consulta permitiendo una reducción en el número de bits por entrada ROM o el número de entradas ROM.
(Existe un conjunto similar de compensaciones para una implementación "compleja" de instrucciones complejas en comparación con el uso de microcódigo.)
La pregunta es "cómo" usar un controlador basado en ROM en lugar de lógica discreta.
Su programa en el controlador podría verse así:
// some setup stuff
...
for(;;) // do forever
{
// read inputs
...
// do some calculations
...
// write to outputs
...
}
Lo anterior es exactamente cómo los Controladores lógicos programables (PLC) reemplazan la lógica de relé discreto.
El tiempo de ejecución del bucle determinará qué tan rápido responden las salidas a las entradas, y eso depende, en parte, de la complejidad del programa. En la mayoría de los casos, esto va a ser de microsegundos o incluso milisegundos en lugar de nanosegundos.
Sr. La respuesta de Clayton está orientada hacia el uso de una ROM para reemplazar la lógica discreta, que es un poco diferente. Si se le ocurrió una lógica secuencial, por ejemplo, para evaluar un sin (x) de 16 bits, sería bastante complejo y requeriría quizás 1.000 ciclos de reloj. Si simplemente programara una ROM de 65536 x 16 bits con valores precalculados de sin (x), solo necesita presentar el valor de entrada en las líneas de dirección y leer la salida de las líneas de datos, probablemente unas decenas de nanosegundos más tarde.
Incluso con grandes recuerdos, el enfoque se agota rápidamente con anchos de bit más grandes y más de una variable de entrada.
Lea otras preguntas en las etiquetas computer-architecture