Você está na página 1de 4

1 - Se desea diseñar una Unidad de Control con 18 estados, que genere 20 señales de control

totalmente independientes y que reciba 8 señales de condición. Si en cada estado se utiliza


como máximo una única condición, explicar razonadamente el tamaño del registro y de la
memoria ROM de capacidad mínima necesaria para implementar la Unidad utilizando un
diseño de selección por campo.

Solución

Se tienen 18 estados, luego es necesario n=5 variables de estado para codificarlos, ya que:

18 estados < 𝟐𝟓

Hay 20 señales de control (m = 20), y tenemos 8 señales de condición (q = 8).

El registro tiene la siguiente estructura:

Luego debe de tener una capacidad de:

𝑪𝑹 = (𝒍𝒐𝒈𝟐 q) + n = 3 + 5 = 8 bits

La capacidad de la ROM necesaria es:

C = 𝟐𝒏+𝟏 x (n + m + 𝒍𝒐𝒈𝟐 q) = 𝟐𝟔 x (5 + 20 + 3) = 𝟐𝟔 palabras x 28 bits/palabra

2 - Considérese un procesador con instrucciones de cero direcciones (procesador con pila). Se


tiene la siguiente secuencia de instrucciones:

Push M[C]; Push M[D]; Add; Push M[C]; Push M[D]; Add; Push M[C]; Add; Mult; Pop M[A]

Explicar razonadamente que instrucción se calcula.

Solución

Se representa en una tabla las instrucciones y el contenido que tendría la pila tras ejecutar
cada instrucción. Según se sitúa un dato más a la izquierda en la pila, significa que lleva más
tiempo almacenado, es decir, los datos que entran en la pila lo hacen por su derecha. En
consecuencia el elemento almacenado más a la derecha en la pila constituye la cima de la
pila:
Luego esta secuencia de instrucciones calcula la expresión A = (C + D) (2C + D)

3 - Se desea diseñar un circuito combinacional, que sea un sumador de tres números de 2


bits de longitud y seis números de 1 bit de longitud, utilizando únicamente módulos SBC.
Calcular el número mínimo de módulos SBC necesarios.

Solución

Un Sumador Binario Completo (SBC) dispone de tres entradas de 1 bit (el sumando 𝒙𝒊 , el
sumando 𝒚𝒊 , y el acarreo de la etapa anterior 𝒄𝒊−𝟏 ) y dos salidas de 1 bit (el acarreo a la
etapa siguiente 𝒄𝒊 , y el bit de suma 𝒔𝒊 ).

En la siguiente figura se muestra la suma de los números indicados en la cuestión mediante


notación de puntos y haciendo uso de los SBC’s necesarios. Como se puede observar son
necesarios 8 SBC’s como mínimo.
4 - Se tiene una máquina con seis registros de uso general R0, R1, R2, R3, R4, R5 y R6; y con
dos registros índice RX y RY. El lenguaje ensamblador de esta máquina tiene la siguiente
sintaxis:

- Los valores inmediatos se representan indicando directamente el valor inmediato.


Ejemplo, 0
- Las direcciones absolutas a memoria se identifican así: /número. Ejemplo, /1000
indica la dirección 1000 de memoria
- El direccionamiento relativo a registro índice se indica así: numero(registro_índice).
Ejemplo, 1000(RX)
- El direccionamiento indirecto se indica así: @registro. Ejemplo, @R0
- La instrucción LOAD registro, operando. Carga en el registro el valor del operando

Si se considera que inicialmente todos los registros tienen como contenido el valor 0 y que la
memoria tiene los valores que se muestran en la figura.

Una vez ejecutada la siguiente secuencia de instrucciones indique el contenido de los


registros R0, R1, R2 y R3. Indicar los pasos seguidos para llegar a la solución.

LOAD RX, 10

LOAD R0, 1000(RX)

LOAD R1, /1000

LOAD R2, @R0

LOAD R3, 1040

Tras las instrucción “LOAD RX, 10”, en el registro índice RX se carga el valor 10.

La siguiente instrucción “LOAD R0, 1000(RX)”, calcula la dirección del registro R0 como la
suma del contenido del registro índice RX y el desplazamiento 1000. De esta forma, la
dirección de R0 será 1010, y su contenido, 1030.
En “LOAD R1, /1000”, el campo de operando contiene una dirección en memoria. En este
modo la dirección efectiva es igual a la parte de dirección de la instrucción. El operando
reside en la memoria y su dirección es dada directamente por el campo de dirección de la
instrucción. De esta manera, la dirección de R1 será 1000, y su contenido 1020.

En “LOAD R2, @R0”, la dirección efectiva del operando está almacenada en el registro
especificado en la instrucción. De esta manera, la dirección de R2 será 1030, y su contenido
1000.

Finalmente, con “LOAD R3, 1040”, en el registro R3 se carga el valor 1040. Es decir, el
contenido del registro R3 será 1040.

De esta forma, el contenido de los registros es:

R0 – 1030

R1 – 1020

R2 – 1000

R3 - 1040

Você também pode gostar