Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tema 10
Tema 10
10
Tecnología de Computadores
CPU: microprogramación
Índice
Esquema 3
Ideas clave 4
10.1. Introducción y objetivos 4
10.2. Microprogramación 5
10.3. Modelo de Wilkes 6
© Universidad Internacional de La Rioja (UNIR)
10.4. Estructura de una unidad de control
microprogramada 8
10.5. Cuaderno de ejercicios 13
10.6. Referencias bibliográficas 16
A fondo 17
Test 18
Esquema
© Universidad Internacional de La Rioja (UNIR)
Tecnología de Computadores
3
Tema 10. Esquema
Ideas clave
10.1. Introducción y objetivos
En un sistema digital cualquiera, la microprogramación se considera una alternativa
al diseño y realización de la unidad de control. Actualmente se utiliza en
computadores con un tamaño medio. En los computadores pequeños no es
interesante económicamente porque es muy complejo y en los grandes, hace que el
sistema sea muy lento. Conceptualmente, se trata de una estrategia muy simple que
permite llevar a cabo modificaciones y ampliaciones de forma muy sencilla y sin
dificultades en el hardware. También, es posible microprogramar un computador que
ejecute distintos repertorios o listas de instrucciones únicamente modificando el
contenido de la memoria de control. Esto último supone que es posible utilizar un
único computador para emular las prestaciones de diferentes juegos de
instrucciones.
Los objetivos de este tema son:
Estudiar los conceptos básicos de la microprogramación
Estudiar el modelo de Wilkes.
Conocer la estructura de la unidad de control microprogramada.
© Universidad Internacional de La Rioja (UNIR)
Tecnología de Computadores
4
Tema 10. Ideas clave
10.2. Microprogramación
La unidad de control de un procesador se encarga de gestionar o controlar la
ejecución de distintas microoperaciones de su unidad de procesamiento.
Generalmente, este elemento transfiere una serie de microórdenes por cada
microperación.
Las microórdenes se definen como las señales lógicas que llevan a cabo una
microoperación. Se dice que la microórden está activada si su valor es 1 y desactivada
si su valor es 0. Según el valor de la microórden, las microoperaciones serán
ejecutadas o no en la unidad de control.
Cuando los datos generados por la unidad de control se guardan en una memoria que
se denomina memoria de control o memoria de microprogramación, se dice que el
procesador está microprogramado.
Se denomina microinstrucción al conjunto de microórdenes o microoperaciones
indistintamente, según contenga en cada caso en función del contexto.
Un microprograma es una serie llevada a cabo por la ruta de datos. En este sentido,
una unidad de control microprogramada está fundamentada en los siguientes ítems
(Dormido, Canto, Mira y Delgado, 2002):
1. Debe ser capaz de vincular a cada instrucción la dirección de comienzo del
microprograma.
© Universidad Internacional de La Rioja (UNIR)
2. Debe ser capaz de leer las sucesivas microinstrucciones del microprograma en
curso y bifurcar a uno nuevo cuando termina el que se está ejecutando.
3. Su memoria debe ser capaz de almacenar todos los microprogramas de todas las
instrucciones máquina de su repertorio.
Tecnología de Computadores
5
Tema 10. Ideas clave
El secuenciamiento de los microprogramas puede ser explícito e implícito.
1. Secuenciamiento explícito: Cada instrucción posee las microórdenes
correspondientes y la dirección de la microinstrucción siguiente y se necesita una
memoria de gran tamaño porque las microórdenes han de ser independientes
entre sí para ejecutarse simultáneamente durante un mismo periodo del reloj.
2. Secuenciamiento implícito: La memoria puede ser menor porque las
microinstrucciones se colocan consecutivamente en la memoria y se llevan a cabo
en el mismo orden en que están escritas en la memoria. Sin embargo, se necesita
una microinstrucción especial que señale la bifurcación.
10.3. Modelo de Wilkes
La idea base del modelo de Wilkes se fundamenta en que
cada instrucción máquina del repertorio de un computador es un grupo de
microórdenes que definen las transferencias de datos entre los distintos
componentes de su parte operacional. La forma de controlar el flujo de datos
entre los distintos módulos funcionales del computador es activando sus
puntos de control.
En su primer diseño, se configuró el modelo de Wilkes a partir de una matriz de
núcleos de ferritas con selección lineal que está completamente cableada a través de
puertas OR que pueden activar a un subconjunto de líneas de control que forman la
© Universidad Internacional de La Rioja (UNIR)
salida de la matriz. El modelo está formado por dos matrices, la matriz de control C y
la matriz de secuencia S, un registro de dirección de memoria MAR de n bits y un
decodificador binario (Dormido, Canto, Mira y Delgado, 2002).
Tecnología de Computadores
6
Tema 10. Ideas clave
Microórdenes
Reloj MAR
Decodificador
Línea de
Matriz C Matriz S
condición
Microinstrucción condicional
Línea de condición
Figura 1. Modelo original de Wilkes. Fuente: Dormido, Canto, Mira y Delgado, 2002.
El modelo de Wilkes se basaba, de forma general, en los siguientes ítems:
1. El número de instrucciones que se pueden almacenar está representado por las
líneas horizontales que parten del decodificador.
2. Las líneas verticales de la matriz C, que representan las microórdenes, no tienen
que ser decodificadas porque se asignan directamente a los puntos de control con
una correspondencia uno a uno.
3. El tamaño de la palabra de la memoria de control está representado por el número
total de líneas verticales que poseen las matrices C y S.
4. La inserción de las señales de condición se produce entre la matriz de control C y
© Universidad Internacional de La Rioja (UNIR)
la de secuencia S.
Este modelo inicial ha sido modificado varias veces. Sin embargo, los conceptos
básicos que subyacen en todos los modelos se explican a continuación.
Tecnología de Computadores
7
Tema 10. Ideas clave
En el vídeo Modelo original de Wilkes, se explica de manera básica el modelo de
Wilkes y sus ventajas e inconvenientes.
10.4. Estructura de una unidad de control
microprogramada
Se define la microinstrucción como un conjunto de microórdenes que se pueden
llevar a cabo simultáneamente formando una palabra que se almacena en la memoria
de control. Cada microinstrucción está representada, por tanto, por un grupo de unos
y ceros.
La unidad de control microprogramada se encarga del secuenciar las
microinstrucciones (dicho de otra manera, obtiene la siguiente microinstrucción de
la memoria de control) y de la ejecución de la microinstrucción (es decir, produce las
señales de control que lleva a cabo la microinstrucción).
La unidad de control de un procesador microprogramado se divide en dos bloques
básicos:
▸ Memoria de control: Genera las microórdenes.
▸ Secuenciador: Define el paso siguiente en la secuencia de ejecución.
© Universidad Internacional de La Rioja (UNIR)
La arquitectura básica de una unidad de control microprogramada consta de estos
dos bloques básicos y dos registros. El registro de dirección de la memoria de control
(RDC) contiene la dirección de la próxima microinstrucción que se leerá. Mientras
que, si se lee una microinstrucción de la memoria de control, se envía al registro de
Tecnología de Computadores
8
Tema 10. Ideas clave
datos de la memoria de control (RMC). Las señales de control que produce la unidad
de control se almacenan en este registro. Esto quiere decir que ejecutar una
microinstrucción es lo mismo que leer una microinstrucción de la memoria de
control. Por su parte, el secuenciador que carga los datos en el RDC y envía las
órdenes de lectura.
Cargar
RDC
Leer Memoria de
Secuenciador
control
RMC (opcional)
Figura 2. Arquitectura básica de una unidad de control microprogramada. Fuente: Dormido, Canto, Mira y
Delgado, 2002.
La forma más simple de construir un secuenciador es utilizando un contador porque
a la microinstrucción que se esté ejecutando le seguirá aquella cuya dirección sea la
de la instrucción actual sumándole un 1. Sin embargo, son pocos los procesos que se
pueden diseñar con este secuenciador de direccionamiento implícito porque muchas
veces el procesador tiene que elegir una secuencia entre varias secuencias posibles
(por ejemplo, en el caso de que deba cambiar la microinstrucción dependiendo del
resultado obtenido en una microoperación). En estos casos, es necesario añadir al
contador un dispositivo con el que se pueda elegir entre diferentes direcciones. Si las
direcciones están definidas empleando el código binario, la propia microinstrucción
es capaz de tener dos direcciones de forma explícita o tener una y la otra estar
© Universidad Internacional de La Rioja (UNIR)
definida de forma explícita (incrementando la posición actual).
En el direccionamiento explícito, la dirección se almacena en el registro de dirección
de la memoria de control (RDC). Si un microprograma incluye en su estructura
rupturas de secuencia condicional, se necesitarán dos o más direcciones por
Tecnología de Computadores
9
Tema 10. Ideas clave
microinstrucción. Por eso, la memoria de control es capaz de ser interpretada como
una lista encadenada de direcciones. Este tipo de direccionamiento es rápido y
flexible pero las longitudes de palabra que emplea son muy grandes.
Para reducir la longitud de las palabras de una microinstrucción se utiliza el
direccionamiento implícito y estas son ejecutadas secuencialmente en el mismo
orden en que se encuentran en la memoria de control. Con este sistema, no se
requiere de ningún dato dedicado al secuenciamiento en la propia microinstrucción.
En este caso, la microinstrucción solo incluye en su formato campos de control, lo
que la hace muy interesante en aplicaciones en las que no hay ninguna ruptura de
secuencia condicional. En el caso de que existan secuencias condicionales se necesita
una microinstrucción especial que defina esa bifurcación por lo que con el
direccionamiento implícito se necesitan dos microinstrucciones diferentes (una para
las señales de control y otra para las bifurcaciones).
El formato más sencillo que se puede diseñar en una microinstrucción posee 1 bit por
cada señal de control y su ejecución se lleva a cabo en un periodo permitiendo el uso
en paralelo de varios elementos del computador. Sin embargo, con esta estructura,
las microinstrucciones tienen un tamaño elevado y suelen estar llenas de ceros
(microórdenes desactivadas) porque muchas microórdenes son incompatibles entre
sí y no pueden ejecutarse simultáneamente (porque interactúan con el mismo
recurso de cálculo). Para evitar este problema, se codifican las microinstrucciones.
Esto disminuye el grado de paralelismo y necesita un codificador adicional.
Como una microinstrucción puede llevar a cabo la tarea de enviar microórdenes a la
unidad de procesamiento y al secuenciador, se considera que la microinstrucción
está compuesta por dos campos: campo de dirección y campo de control. Este último
© Universidad Internacional de La Rioja (UNIR)
campo define los valores de las señales de control durante la ejecución de una
microinstrucción a través de subcampos. Cada subcampo gestiona una
microoperación concreta por lo que el número de microoperaciones concurrentes
tiene que ser igual o inferior al de subcampos de control.
Tecnología de Computadores
10
Tema 10. Ideas clave
La estructura del microprograma define las microórdenes que se envía al
secuenciador, su número y la función de cada una. Sin embargo, hay deferentes
estrategias para organizar las microórdenes:
▸ Microprogramación horizontal: Hace referencia a las microórdenes que no
están codificadas. Cada uno de los bit de la micromemoria se conecta con un
punto físico de control de los distintos recursos de la unidad de
procesamiento y cada uno de los bit de la memoria de control es un subcampo
independiente que se pertenece a una microórden. De esta forma se obtiene
la mayor cantidad de microórdenes por instrucción posibles. Ya están
decodificadas las señales de control y su generación es muy rápida, pero es
una estrategia cara porque se necesita una memoria muy ancha si son muchas
microórdenes.
▸ Microprogramación vertical: Hace referencia al formato que emplea
microórdenes codificadas. Si el sistema emplea una microprogramación
vertical pura es redundante porque se limita el número de microoperaciones
que se pueden ejecutar en paralelo. El campo de control se divide en varios
subcampos y cada uno controla un conjunto de operandos, operadores o
caminos de datos. Este sistema es lento porque necesita tiempo en
decodificar los subcampos, pero emplea tamaños de palabra menores y
necesita memorias de control menores.
De forma resumida se considera que la microprogramación puramente horizontal
está orientada al hardware de la microprogramación (cada punto físico de la unidad
de procesamiento está directamente conectado con un bit de la micromemoria). Por
su parte, la microprogramación completamente codificada (o puramente vertical)
© Universidad Internacional de La Rioja (UNIR)
tiene un enfoque más próximo a la programación (se define un repertorio de las
microoperaciones que se utilizarán).
Estos dos casos son extremos y entre la microprogramación puramente horizontal y
la microprogramación puramente vertical existen otros casos, mezclas de los dos.
Tecnología de Computadores
11
Tema 10. Ideas clave
En los casos en los que las microoperaciones de la microinstrucción no deben
activarse a la vez, sino de forma consecutiva durante más de un subciclo de reloj, la
unidad de control tendrá un contador de periodos o un generador de subciclos. De
esta forma se consiguen microinstrucciones más pequeñas, asegurando el
secuenciamiento de las microoperaciones de forma correcta.
El ciclo de ejecución de una microinstrucción es similar al ciclo de ejecución de una
instrucción máquina visto en anteriores temas. Sus fases son (Dormido, Canto, Mira
y Delgado, 2002):
1. Búsqueda de una microinstrucción.
2. Decodificación de los campos de la microinstrucción.
3. Ejecución de las microoperaciones.
4. Cálculo de la dirección de la siguiente microinstrucción.
Las microinstrucciones se pueden clasificar en:
▸ Monofásicas: Todas las microoperaciones de la microinstrucción se pueden
llevar a cabo a la vez.
▸ Polifásicas: Los campos de las microinstrucciones se ejecutan
escalonadamente (en subciclos consecutivos).
© Universidad Internacional de La Rioja (UNIR)
Tecnología de Computadores
12
Tema 10. Ideas clave
10.5. Cuaderno de ejercicios
Problema 1
En una unidad de control, ¿qué función tiene el registro de dirección de la memoria
de control?
Solución
El registro posee la dirección de la próxima microinstrucción que se leerá.
Problema 2
En una unidad de control, ¿qué función tiene el registro de datos de la memoria de
control?
Solución
Almacena la microinstrucción que se lee de la memoria de control.
Problema 3
¿Qué diferencia hay entre una microprogramación puramente vertical y una
microprogramación puramente horizontal?
Solución
© Universidad Internacional de La Rioja (UNIR)
La microprogramación puramente horizontal tiene un enfoque hardware de la
microprogramación mientras que la microprogramación completamente codificada
tiene un enfoque más cercano a la programación.
Tecnología de Computadores
13
Tema 10. Ideas clave
Problema 4
¿Cuáles son las fases del ciclo de instrucción de una microinstrucción?
Solución
Búsqueda de la microinstrucción, decodificación de los compas de la instrucción,
ejecución de las microoperaciones y cálculo de la dirección de la siguiente
microinstrucción.
Problema 5
¿Qué diferencia hay entre la microprogramación monofásica y la polifásica?
Solución
En la programación monofásica se pueden ejecutar todas las microoperaciones a la
vez mientras que en la polifásica se deben ejecutar de forma escalonada.
Problema 6
¿Qué estrategia es más costosa: la microprogramación vertical o la horizontal? ¿Por
qué?
Solución
© Universidad Internacional de La Rioja (UNIR)
Si la estrategia posee un conjunto elevado de microórdenes, la estrategia más costosa
es la puramente horizontal porque requerirá una memoria muy ancha para
almacenar esa información.
Tecnología de Computadores
14
Tema 10. Ideas clave
Problema 7
¿Qué ventaja tiene el direccionamiento implícito frente al explícito?
Solución
Permite reducir el tamaño de la palabra.
Problema 8
¿Qué ventajas tiene el direccionamiento explícito frente al implícito?
Solución
Es más flexible y rápido.
Problema 9
¿Cuál es el formato más sencillo que se puede utilizar para diseñar una
microinstrucción?
Solución
Utilizar 1 bit por cada señal de control.
© Universidad Internacional de La Rioja (UNIR)
Tecnología de Computadores
15
Tema 10. Ideas clave
Problema 10
Investiga por qué el modelo de Wilkes original utilizaba núcleos de ferrita en su
diseño.
Solución
Porque era la tecnología disponible en la época.
10.6. Referencias bibliográficas
S. Dormido, M. A. Canto, J. Mira y A. E. Delgado. (2002). Estructura y tecnología de
computadores. Madrid. Editorial Sanz y Torres.
© Universidad Internacional de La Rioja (UNIR)
Tecnología de Computadores
16
Tema 10. Ideas clave
A fondo
¿Qué CPU elijo para mi computador?
López, J.C. y Xataka. (2020, junio 25). La megaguía para construirte un PC desde cero en
2020: la CPU y la refrigeración. Recuperado el 6 de mayo de 2021 de
https://www.xataka.com/componentes/megaguia‐para‐construirte‐pc‐cero‐2020‐cpu‐
refrigeracion
Si quieres montar un PC a medida, pero no sabes cómo elegir correctamente la CPU
y su refrigeración, esta guía te puede ayudar en la tarea.
La placa base del computador
López, J.C. y Xataka. (2020, abril 28). La megaguía para construirte un PC desde cero en
2020: la placa base. Recuperado el 6 de mayo de 2021 de
https://www.xataka.com/componentes/megaguia‐para‐construirte‐pc‐cero‐2020‐
placa‐base
Si la elección de una buena CPU para nuestro computador es un aspecto capital, no
lo es menos la elección de la placa base. ¿Aún no sabes en qué características te
debes fijar si quieres comprar una placa base? En esta guía te dan todas las claves.
© Universidad Internacional de La Rioja (UNIR)
Tecnología de Computadores
17
Tema 10. A fondo
Test
1. ¿En qué tipo de computadores se utiliza la microprogramación?
A. Computadores de tamaño medio.
B. Computadores de tamaño grande.
C. Computadores de tamaño pequeño.
D. Computadores lentos.
2. ¿Cuándo se dice que un procesador está microprogramado?
A. Cuando se diseña un procesador para que pueda ejecutar distintos juegos de
instrucciones.
B. Cuando los datos producidos por la unidad de control se almacenan en la
memoria de control.
C. Cuando el secuenciamiento de los microprogramas se lleva a cabo de forma
implícita.
D. Cuando el secuenciamiento de los microprogramas se lleva a cabo de forma
explícita.
3. ¿En qué tipo de secuenciamiento cada orden posee las microórdenes y la dirección
de la microinstrucción siguiente?
A. Implícito.
B. Explícito.
C. Indexado.
D. Directo.
© Universidad Internacional de La Rioja (UNIR)
Tecnología de Computadores
18
Tema 10. Test
4. ¿En qué tipo de secuenciamiento las microinstrucciones se colocan de forma
consecutiva en la memoria y se llevan a cabo en el mismo orden en que están
almacenadas?
A. Implícito.
B. Explícito.
C. Indexado.
D. Directo.
5. ¿Cuál de las siguientes características no corresponde al modelo original de
Wilkes?
A. Las líneas verticales de la matriz C tienen que ser decodificadas.
B. La longitud de la palabra de la memoria de control está representado por el
número total de líneas verticales que tienen las matrices C y S.
C. La inserción de las señales de condición tiene lugar entre la matriz de control
C y la de secuencia S.
D. El número de instrucciones que se pueden almacenar está representado por
las líneas horizontales que parten del decodificador.
6. ¿Qué es una microinstrucción?
A. Es un conjunto de microórdenes que se pueden llevar a cabo
simultáneamente y que está contenida en una palabra de la memoria de
control.
B. Es el dispositivo encargado de genera las microórdenes.
C. Es la arquitectura básica de una unidad de control microprogramada.
D. Es una serie ordenada de instrucciones que deben ser ejecutadas por la ruta
de datos.
© Universidad Internacional de La Rioja (UNIR)
Tecnología de Computadores
19
Tema 10. Test
7. ¿De qué material estaba construido el modelo de Wilkes?
A. Núcleos de ferrita.
B. Transistores.
C. Puertas digitales.
D. Tubos de vacío.
8. ¿Cómo se puede construir un secuenciador?
A. Utilizando un contador digital.
B. Utilizando un acumulador y un multiplexor.
C. Utilizando una CPU.
D. Utilizando un decodificador.
9. ¿Qué nombre reciben la microprogramación basada en microórdenes codificadas?
A. Microprogramación polifásica.
B. Microprogramación monofásica.
C. Microprogramación horizontal.
D. Microprogramación vertical.
10. ¿En qué tipo de microoperaciones es necesario incluir un contador de ciclos?
A. En microoperaciones mixtas que no son ni puramente horizontales ni
puramente verticales.
B. En microoperaciones puramente horizontales.
C. En microoperaciones puramente verticales.
D. En microoperaciones que deben activarse secuencialmente a lo largo de más
de un ciclo.
© Universidad Internacional de La Rioja (UNIR)
Tecnología de Computadores
20
Tema 10. Test