Unidad de control

format_list_bulleted Contenido keyboard_arrow_down
ImprimirCitar
Componente de la CPU de un ordenador

La unidad de control (CU) es un componente de la unidad central de procesamiento (CPU) de una computadora que dirige el funcionamiento del procesador. Una CU generalmente usa un decodificador binario para convertir instrucciones codificadas en señales de control y temporización que dirigen la operación de las otras unidades (memoria, unidad aritmética lógica y dispositivos de entrada y salida, etc.).

La CU gestiona la mayoría de los recursos informáticos. Dirige el flujo de datos entre la CPU y los otros dispositivos. John von Neumann incluyó la unidad de control como parte de la arquitectura de von Neumann. En los diseños de computadoras modernas, la unidad de control suele ser una parte interna de la CPU y su función y operación generales no han cambiado desde su introducción.

Unidades de control multiciclo

Las computadoras más simples usan una microarquitectura multiciclo. Estos fueron los primeros diseños. Todavía son populares en las computadoras más pequeñas, como los sistemas integrados que operan maquinaria.

En una computadora multiciclo, la unidad de control a menudo recorre el ciclo de instrucción sucesivamente. Esto consiste en obtener la instrucción, obtener los operandos, decodificar la instrucción, ejecutar la instrucción y luego volver a escribir los resultados en la memoria. Cuando la siguiente instrucción se coloca en la unidad de control, cambia el comportamiento de la unidad de control para completar la instrucción correctamente. Entonces, los bits de la instrucción controlan directamente la unidad de control, que a su vez controla la computadora.

La unidad de control puede incluir un contador binario para decirle a la lógica de la unidad de control qué paso debe realizar.

Las unidades de control multiciclo suelen utilizar los flancos ascendente y descendente de su reloj de tiempo de onda cuadrada. Operan un paso de su operación en cada borde del reloj de tiempo, de modo que una operación de cuatro pasos se completa en dos ciclos de reloj. Esto duplica la velocidad de la computadora, dada la misma familia lógica.

Muchas computadoras tienen dos tipos diferentes de eventos inesperados. Se produce una interrupción porque algún tipo de entrada o salida necesita la atención del software para funcionar correctamente. Una excepción es causada por la operación de la computadora. Una diferencia crucial es que no se puede predecir el tiempo de una interrupción. Otra es que algunas excepciones (por ejemplo, una excepción de memoria no disponible) pueden deberse a una instrucción que debe reiniciarse.

Las unidades de control se pueden diseñar para manejar interrupciones en una de dos formas típicas. Si una respuesta rápida es lo más importante, una unidad de control está diseñada para abandonar el trabajo para manejar la interrupción. En este caso, el trabajo en curso se reiniciará después de la última instrucción completada. Si la computadora va a ser muy económica, muy simple, muy confiable o para hacer más trabajo, la unidad de control terminará el trabajo en proceso antes de manejar la interrupción. Terminar el trabajo es económico, porque no necesita registro para registrar la última instrucción terminada. Es simple y confiable porque tiene la menor cantidad de estados. También desperdicia la menor cantidad de trabajo.

Se pueden hacer excepciones para operar como interrupciones en computadoras muy simples. Si se requiere memoria virtual, una excepción de memoria no disponible debe volver a intentar la instrucción fallida.

Es común que las computadoras multiciclo usen más ciclos. A veces se tarda más en realizar un salto condicional, porque el contador del programa debe recargarse. A veces hacen instrucciones de multiplicación o división mediante un proceso, algo así como la multiplicación y división larga binaria. Las computadoras muy pequeñas pueden hacer aritmética, uno o unos pocos bits a la vez. Algunas computadoras tienen instrucciones muy complejas que requieren muchos pasos.

Unidades de control canalizadas

Muchas instrucciones de canalización de computadoras de complejidad media. Este diseño es popular debido a su economía y velocidad.

En una computadora segmentada, las instrucciones fluyen a través de la computadora. Este diseño tiene varias etapas. Por ejemplo, podría tener una etapa para cada paso del ciclo de Von Neumann. Una computadora canalizada generalmente tiene "registros de canalización" después de cada etapa. Estos almacenan los bits calculados por una etapa para que las puertas lógicas de la siguiente etapa puedan usar los bits para realizar el siguiente paso.

Es común que las etapas pares operen en un borde del reloj de onda cuadrada, mientras que las etapas impares operen en el otro borde. Esto acelera la computadora por un factor de dos en comparación con los diseños de un solo borde.

En una computadora canalizada, la unidad de control se encarga de que el flujo comience, continúe y se detenga según lo indique un programa. Los datos de instrucción generalmente se pasan en registros de tubería de una etapa a la siguiente, con una parte de lógica de control algo separada para cada etapa. La unidad de control también asegura que la instrucción en cada etapa no perjudique la operación de las instrucciones en otras etapas. Por ejemplo, si dos etapas deben usar el mismo dato, la lógica de control asegura que los usos se hagan en la secuencia correcta.

Cuando opera de manera eficiente, una computadora canalizada tendrá una instrucción en cada etapa. Entonces está trabajando en todas esas instrucciones al mismo tiempo. Puede terminar alrededor de una instrucción por cada ciclo de su reloj. Cuando un programa toma una decisión y cambia a una secuencia diferente de instrucciones, la tubería a veces debe descartar los datos en proceso y reiniciar. Esto se llama "establo." Cuando dos instrucciones pueden interferir, a veces la unidad de control debe dejar de procesar una instrucción posterior hasta que se complete una instrucción anterior. Esto se denomina "burbuja de canalización" porque una parte de la canalización no está procesando instrucciones. Las burbujas de tubería pueden ocurrir cuando dos instrucciones operan en el mismo registro.

Las interrupciones y las excepciones inesperadas también paralizan la canalización. Si una computadora segmentada abandona el trabajo por una interrupción, se pierde más trabajo que en una computadora multiciclo. Las excepciones predecibles no necesitan detenerse. Por ejemplo, si se usa una instrucción de excepción para ingresar al sistema operativo, no provoca un bloqueo.

¿Velocidad? Para la misma velocidad de lógica electrónica, puede dar más instrucciones por segundo que una computadora multiciclo. Además, aunque la lógica electrónica tiene una velocidad máxima fija, una computadora interconectada puede hacerse más rápida o más lenta variando el número de etapas en la canalización. Con más etapas, cada etapa hace menos trabajo y, por lo tanto, la etapa tiene menos demoras de las puertas lógicas.

¿Economía? Un modelo segmentado de una computadora a menudo tiene la menor cantidad de puertas lógicas por instrucción por segundo, menos que una computadora multiciclo o fuera de servicio. ¿Por qué? La etapa promedio es menos compleja que una computadora multiciclo. Una computadora fuera de servicio generalmente tiene una gran cantidad de lógica inactiva en un instante dado. Cálculos similares generalmente muestran que una computadora segmentada usa menos energía por instrucción.

Sin embargo, una computadora segmentada suele ser más compleja y más costosa que una computadora multiciclo comparable. Por lo general, tiene más puertas lógicas, registros y una unidad de control más compleja. De manera similar, podría usar más energía total, mientras usa menos energía por instrucción. Las CPU desordenadas normalmente pueden ejecutar más instrucciones por segundo porque pueden ejecutar varias instrucciones a la vez.

Prevención de puestos

Las unidades de control utilizan muchos métodos para mantener una tubería llena y evitar paradas. Por ejemplo, incluso las unidades de control simples pueden suponer que una bifurcación hacia atrás, a una instrucción anterior con un número más bajo, es un bucle y se repetirá. Por lo tanto, una unidad de control con este diseño siempre llenará la tubería con la ruta de derivación hacia atrás. Si un compilador puede detectar la dirección de una rama que se toma con más frecuencia, el compilador simplemente puede producir instrucciones para que la rama que se toma con más frecuencia sea la dirección preferida de la rama. De manera similar, una unidad de control puede obtener sugerencias del compilador: algunas computadoras tienen instrucciones que pueden codificar sugerencias del compilador sobre la dirección de la bifurcación.

Algunas unidades de control hacen predicción de bifurcaciones: una unidad de control mantiene una lista electrónica de las bifurcaciones recientes, codificada por la dirección de la instrucción de bifurcación. Esta lista tiene algunos bits para que cada rama recuerde la dirección que se tomó más recientemente.

Algunas unidades de control pueden realizar una ejecución especulativa, en la que una computadora puede tener dos o más tuberías, calcular ambas direcciones de un ramal y luego descartar los cálculos de la dirección no utilizada.

Los resultados de la memoria pueden estar disponibles en momentos impredecibles porque las computadoras muy rápidas almacenan memoria caché. Es decir, copian cantidades limitadas de datos de memoria en una memoria muy rápida. La CPU debe estar diseñada para procesar a la velocidad muy rápida de la memoria caché. Por lo tanto, la CPU podría detenerse cuando deba acceder directamente a la memoria principal. En las PC modernas, la memoria principal es hasta trescientas veces más lenta que la memoria caché.

Para ayudar con esto, se desarrollaron unidades de control y CPU fuera de servicio para procesar los datos a medida que están disponibles. (Ver la siguiente sección)

Pero, ¿qué pasa si todos los cálculos están completos, pero la CPU aún está bloqueada, esperando la memoria principal? Luego, una unidad de control puede cambiar a un hilo de ejecución alternativo cuyos datos se hayan obtenido mientras el hilo estaba inactivo. Un hilo tiene su propio contador de programa, un flujo de instrucciones y un conjunto separado de registros. Los diseñadores varían la cantidad de subprocesos según las tecnologías de memoria actuales y el tipo de computadora. Las computadoras típicas, como las PC y los teléfonos inteligentes, generalmente tienen unidades de control con algunos subprocesos, lo suficiente para mantenerse ocupados con sistemas de memoria asequibles. Las computadoras de bases de datos a menudo tienen aproximadamente el doble de subprocesos, para mantener ocupadas sus memorias mucho más grandes. Las unidades de procesamiento gráfico (GPU) suelen tener cientos o miles de subprocesos, porque tienen cientos o miles de unidades de ejecución que realizan cálculos gráficos repetitivos.

Cuando una unidad de control permite subprocesos, el software también debe estar diseñado para manejarlos. En las CPU de uso general, como las PC y los teléfonos inteligentes, los subprocesos generalmente se hacen para que se parezcan mucho a los procesos normales en intervalos de tiempo. A lo sumo, el sistema operativo podría necesitar algún conocimiento de ellos. En las GPU, la programación de subprocesos generalmente no se puede ocultar del software de la aplicación y, a menudo, se controla con una biblioteca de subrutinas especializada.

Unidades de control fuera de servicio

Se puede diseñar una unidad de control para terminar lo que se pueda. Si se pueden completar varias instrucciones al mismo tiempo, la unidad de control lo arreglará. Por lo tanto, las computadoras más rápidas pueden procesar instrucciones en una secuencia que puede variar un poco, dependiendo de cuándo estén disponibles los operandos o los destinos de instrucciones. La mayoría de las supercomputadoras y muchas CPU de PC utilizan este método. La organización exacta de este tipo de unidad de control depende de la parte más lenta de la computadora.

Cuando la ejecución de los cálculos es la más lenta, las instrucciones fluyen de la memoria a piezas electrónicas llamadas "unidades de emisión". Una unidad de emisión retiene una instrucción hasta que tanto sus operandos como una unidad de ejecución estén disponibles. Luego, la instrucción y sus operandos son "emitidos" a una unidad de ejecución. La unidad de ejecución hace la instrucción. Luego, los datos resultantes se mueven a una cola de datos para volver a escribirlos en la memoria o en los registros. Si la computadora tiene varias unidades de ejecución, por lo general puede ejecutar varias instrucciones por ciclo de reloj.

Es común tener unidades de ejecución especializadas. Por ejemplo, una computadora de precio modesto puede tener solo una unidad de ejecución de coma flotante, porque las unidades de coma flotante son caras. La misma computadora puede tener varias unidades enteras, porque son relativamente económicas y pueden realizar la mayor parte de las instrucciones.

Un tipo de unidad de control para emitir utiliza una matriz de lógica electrónica, un "marcador"" que detecta cuándo se puede emitir una instrucción. La "altura" de la matriz es el número de unidades de ejecución y la "longitud" y "ancho" son cada uno el número de fuentes de operandos. Cuando todos los elementos se juntan, las señales de los operandos y la unidad de ejecución se cruzarán. La lógica en esta intersección detecta que la instrucción puede funcionar, por lo que la instrucción se "emite" a la unidad de libre ejecución. Un estilo alternativo de unidad de control de emisión implementa el algoritmo Tomasulo, que reordena una cola de instrucciones de hardware. En cierto sentido, ambos estilos utilizan una cola. El marcador es una forma alternativa de codificar y reordenar una cola de instrucciones, y algunos diseñadores lo llaman tabla de cola.

Con algo de lógica adicional, un marcador puede combinar de manera compacta el reordenamiento de ejecución, el cambio de nombre de registro y excepciones e interrupciones precisas. Además, puede hacer esto sin la memoria direccionable de contenido complejo y hambrienta de energía utilizada por el algoritmo de Tomasulo.

Si la ejecución es más lenta que escribir los resultados, la cola de reescritura de memoria siempre tiene entradas libres. Pero, ¿y si la memoria escribe lentamente? ¿O qué sucede si el registro de destino será utilizado por un registro "anterior" instrucción que aún no ha emitido? Entonces, es posible que sea necesario programar el paso de reescritura de la instrucción. A esto a veces se le llama "jubilarse" una instrucción En este caso, debe haber una lógica de programación en el back-end de las unidades de ejecución. Programa el acceso a los registros o memoria que obtendrá los resultados.

La lógica de retiro también se puede diseñar en un marcador de emisión o en una cola de Tomasulo, al incluir memoria o registro de acceso en la lógica de emisión.

Los controladores fuera de servicio requieren características de diseño especiales para manejar las interrupciones. Cuando hay varias instrucciones en curso, no está claro en qué parte del flujo de instrucciones se produce una interrupción. Para las interrupciones de entrada y salida, casi cualquier solución funciona. Sin embargo, cuando una computadora tiene memoria virtual, se produce una interrupción para indicar que falló el acceso a la memoria. Este acceso a la memoria debe estar asociado con una instrucción exacta y un estado de procesador exacto, de modo que la interrupción pueda guardar y restaurar el estado del procesador. Una solución habitual conserva copias de los registros hasta que se completa un acceso a la memoria.

Además, las CPU fuera de servicio tienen aún más problemas con las paradas de la bifurcación, porque pueden completar varias instrucciones por ciclo de reloj y, por lo general, tienen muchas instrucciones en varias etapas de progreso. Por lo tanto, estas unidades de control pueden usar todas las soluciones utilizadas por los procesadores segmentados.

Translación de unidades de control

Algunas computadoras traducen cada instrucción individual en una secuencia de instrucciones más simples. La ventaja es que una computadora fuera de servicio puede ser más simple en la mayor parte de su lógica, mientras maneja instrucciones complejas de varios pasos. Las CPU Intel x86 desde el Pentium Pro traducen instrucciones complejas CISC x86 a más microoperaciones internas similares a RISC.

En estos, el "frente" de la unidad de control gestiona la traducción de las instrucciones. Los operandos no se traducen. La "espalda" de la CU es una CPU fuera de servicio que emite las microoperaciones y los operandos a las unidades de ejecución y las rutas de datos.

Unidades de control para ordenadores de bajo consumo

Muchas computadoras modernas tienen controles que minimizan el uso de energía. En las computadoras que funcionan con baterías, como las de los teléfonos celulares, la ventaja es una mayor duración de la batería. En computadoras con energía de utilidad, la justificación es reducir el costo de energía, enfriamiento o ruido.

La mayoría de las computadoras modernas usan lógica CMOS. CMOS desperdicia energía de dos maneras comunes: al cambiar de estado, es decir, "energía activa" y por fugas no intencionadas. La potencia activa de una computadora se puede reducir apagando las señales de control. La corriente de fuga se puede reducir reduciendo la presión eléctrica, el voltaje, haciendo que los transistores tengan regiones de agotamiento más grandes o apagando la lógica por completo.

La potencia activa es más fácil de reducir porque los datos almacenados en la lógica no se ven afectados. El método habitual reduce la velocidad del reloj de la CPU. La mayoría de los sistemas informáticos utilizan este método. Es común que una CPU esté inactiva durante la transición para evitar los efectos secundarios del cambio de reloj.

La mayoría de las computadoras también tienen un "detener" instrucción. Esto se inventó para detener el código sin interrupción para que el código de interrupción tenga una sincronización confiable. Sin embargo, los diseñadores pronto notaron que una instrucción de detención también era un buen momento para apagar el reloj de la CPU por completo, reduciendo la potencia activa de la CPU a cero. El controlador de interrupciones puede seguir necesitando un reloj, pero normalmente consume mucha menos energía que la CPU.

Estos métodos son relativamente fáciles de diseñar y se volvieron tan comunes que se inventaron otros con fines comerciales. Muchas CPU CMOS modernas de bajo consumo detienen e inician unidades de ejecución especializadas e interfaces de bus según la instrucción necesaria. Algunas computadoras incluso organizan la microarquitectura de la CPU para usar multiplexores activados por transferencia para que cada instrucción solo utilice las piezas exactas de lógica necesarias.

Un método común es distribuir la carga a muchas CPU y apagar las CPU no utilizadas a medida que se reduce la carga. La lógica de cambio de tareas del sistema operativo guarda las CPUs' datos a la memoria. En algunos casos, una de las CPU puede ser más simple y más pequeña, literalmente con menos puertas lógicas. Por lo tanto, tiene poca fuga y es el último en apagarse y el primero en encenderse. También es la única CPU que requiere funciones especiales de bajo consumo. Se utiliza un método similar en la mayoría de las PC, que generalmente tienen una CPU incorporada auxiliar que administra el sistema de energía. Sin embargo, en las PC, el software suele estar en el BIOS, no en el sistema operativo.

Teóricamente, las computadoras a velocidades de reloj más bajas también podrían reducir las fugas al reducir el voltaje de la fuente de alimentación. Esto afecta la confiabilidad de la computadora de muchas maneras, por lo que la ingeniería es costosa y es poco común, excepto en computadoras relativamente costosas, como PC o teléfonos celulares.

Algunos diseños pueden usar transistores de muy baja fuga, pero estos generalmente aumentan el costo. Las barreras de agotamiento de los transistores se pueden hacer más grandes para tener menos fugas, pero esto hace que el transistor sea más grande y, por lo tanto, más lento y más caro. Algunos proveedores utilizan esta técnica en partes seleccionadas de un IC al construir una lógica de baja fuga a partir de transistores grandes que algunos procesos proporcionan para circuitos analógicos. Algunos procesos colocan los transistores por encima de la superficie del silicio, en "fiestas de aletas", pero estos procesos tienen más pasos, por lo que son más caros. Los materiales especiales de dopaje de transistores (por ejemplo, hafnio) también pueden reducir las fugas, pero esto agrega pasos al procesamiento, lo que lo hace más costoso. Algunos semiconductores tienen una banda prohibida mayor que el silicio. Sin embargo, estos materiales y procesos son actualmente (2020) más caros que el silicio.

La gestión de fugas es más difícil, porque antes de que se pueda desactivar la lógica, los datos que contiene se deben mover a algún tipo de almacenamiento de baja fuga.

Algunas CPU utilizan un tipo especial de flip-flop (para almacenar un bit) que acopla una celda de almacenamiento rápida y de alta fuga a una celda lenta, grande (costosa) de baja fuga. Estas dos celdas tienen fuentes de alimentación separadas. Cuando la CPU entra en un modo de ahorro de energía (por ejemplo, debido a una parada que espera una interrupción), los datos se transfieren a las celdas de baja fuga y las demás se apagan. Cuando la CPU deja un modo de baja fuga (por ejemplo, debido a una interrupción), el proceso se invierte.

Los diseños más antiguos copiaban el estado de la CPU a la memoria, o incluso al disco, a veces con software especializado. Los sistemas integrados muy simples a veces simplemente se reinician.

Integración con la computadora

Todas las CPU modernas tienen lógica de control para conectar la CPU al resto de la computadora. En las computadoras modernas, este suele ser un controlador de bus. Cuando una instrucción lee o escribe en la memoria, la unidad de control controla el bus directamente o controla un controlador de bus. Muchas computadoras modernas usan la misma interfaz de bus para memoria, entrada y salida. Esto se denomina "E/S mapeada en memoria". Para un programador, los registros de los dispositivos de E/S aparecen como números en direcciones de memoria específicas. Las PC x86 usan un método más antiguo, un bus de E/S separado al que se accede mediante instrucciones de E/S.

Una CPU moderna también tiende a incluir un controlador de interrupción. Maneja las señales de interrupción del bus del sistema. La unidad de control es la parte de la computadora que responde a las interrupciones.

A menudo hay un controlador de caché para la memoria caché. El controlador de caché y la memoria caché asociada suelen ser la parte física más grande de una CPU moderna y de mayor rendimiento. Cuando la memoria, el bus o el caché se comparten con otras CPU, la lógica de control debe comunicarse con ellas para garantizar que ninguna computadora obtenga datos antiguos desactualizados.

Muchas computadoras históricas incorporaron algún tipo de entrada y salida directamente en la unidad de control. Por ejemplo, muchas computadoras históricas tenían un panel frontal con interruptores y luces controlados directamente por la unidad de control. Estos permiten que un programador ingrese directamente a un programa y lo depure. En computadoras de producción posteriores, el uso más común de un panel frontal era ingresar un pequeño programa de arranque para leer el sistema operativo desde el disco. Esto fue molesto. Entonces, los paneles frontales fueron reemplazados por programas de arranque en la memoria de solo lectura.

La mayoría de los modelos PDP-8 tenían un bus de datos diseñado para permitir que los dispositivos de E/S tomaran prestada la lógica de lectura y escritura de la memoria de la unidad de control. Esto redujo la complejidad y el gasto de los controladores de E/S de alta velocidad, p. para disco.

La Xerox Alto tenía una unidad de control microprogramable multitarea que realizaba casi todas las E/S. Este diseño proporcionó la mayoría de las características de una PC moderna con solo una pequeña fracción de la lógica electrónica. La computadora de doble subproceso fue ejecutada por los dos microprocesos de prioridad más baja. Estos realizaron cálculos siempre que no se requirieron E/S. Microprocesos de alta prioridad proporcionados (en prioridad decreciente) video, red, disco, un temporizador periódico, mouse y teclado. El microprograma hizo la lógica compleja del dispositivo de E/S, así como la lógica para integrar el dispositivo con la computadora. Para la E/S de hardware real, el microprograma leyó y escribió registros de desplazamiento para la mayoría de las E/S, a veces con redes de resistencias y transistores para cambiar los niveles de voltaje de salida (por ejemplo, para video). Para manejar eventos externos, el microcontrolador tenía microinterrupciones para cambiar hilos al final del ciclo de un hilo, p. al final de una instrucción, o después de acceder a un registro de desplazamiento. El microprograma se podía reescribir y reinstalar, lo que era muy útil para una computadora de investigación.

Funciones de la centralita

Por lo tanto, un programa de instrucciones en la memoria hará que la CU configure los flujos de datos de la CPU para manipular los datos correctamente entre instrucciones. Esto da como resultado una computadora que podría ejecutar un programa completo y no requerir intervención humana para realizar cambios de hardware entre instrucciones (como se tenía que hacer cuando se usaban solo tarjetas perforadas para cálculos antes de que se inventaran las computadoras programadas almacenadas con CU).

Unidad de control cableada

Animación de la matriz de control de una unidad de control simple de cable duro que realiza una instrucción LDA
Las unidades de control cableadas se implementan mediante el uso de unidades lógicas combinatorias, que presentan un número finito de puertas que pueden generar resultados específicos basados en las instrucciones que se usaron para invocar esas respuestas. Las unidades de control cableadas son generalmente más rápidas que los diseños microprogramados.

Este diseño utiliza una arquitectura fija: requiere cambios en el cableado si se modifica o cambia el conjunto de instrucciones. Puede ser conveniente para computadoras simples y rápidas.

Un controlador que utiliza este enfoque puede operar a alta velocidad; sin embargo, tiene poca flexibilidad. Un conjunto de instrucciones complejo puede abrumar a un diseñador que utiliza un diseño lógico ad hoc.

El enfoque cableado se ha vuelto menos popular a medida que las computadoras han evolucionado. Anteriormente, las unidades de control para CPU usaban lógica ad hoc y eran difíciles de diseñar.

Unidad de control de microprograma

La idea de la microprogramación fue presentada por Maurice Wilkes en 1951 como un nivel intermedio para ejecutar instrucciones de programas de computadora. Los microprogramas se organizaron como una secuencia de microinstrucciones y se almacenaron en una memoria de control especial. El algoritmo para la unidad de control del microprograma, a diferencia de la unidad de control cableada, generalmente se especifica mediante la descripción del diagrama de flujo. La principal ventaja de una unidad de control microprogramada es la simplicidad de su estructura. Las salidas del controlador son por microinstrucciones. El microprograma se puede depurar y reemplazar como un software.

Combinación de métodos de diseño

Una variación popular del microcódigo es depurar el microcódigo usando un simulador de software. Entonces, el microcódigo es una tabla de bits. Esta es una tabla de verdad lógica, que traduce una dirección de microcódigo en las salidas de la unidad de control. Esta tabla de verdad se puede alimentar a un programa de computadora que produce una lógica electrónica optimizada. La unidad de control resultante es casi tan fácil de diseñar como la microprogramación, pero tiene la velocidad rápida y el bajo número de elementos lógicos de una unidad de control cableada. El resultado práctico se asemeja a una máquina Mealy o un controlador Richards.

Contenido relacionado

Virus de los buenos tiempos

Autobús (informática)

Impresora braille

Más resultados...
Tamaño del texto:
undoredo
format_boldformat_italicformat_underlinedstrikethrough_ssuperscriptsubscriptlink
save