Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


ejercicios Alus informatica, Apuntes de Informática

ejercicios Alus informatica ejercicios Alus informatica

Tipo: Apuntes

2020/2021

Subido el 31/03/2021

rbr766
rbr766 🇪🇸

1 documento

1 / 22

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Estructura de Computadores
Autores: Félix García Carballeira et al.
1
Unidad de control y diseño del procesador
Ejercicios resueltos
Ejercicio 1. La siguiente figura muestra la estructura de un computador con una CPU de 32 bits y un banco de 16
registros generales (R1 a R16). MAR es el registro de direcciones de memoria y MBR el registro de datos de memoria.
El registro RT es un registro temporal transparente al usuario. TR1 y TR2 también son registros transparentes al
usuario. La ALU permite realizar cuatro operaciones: suma, resta, incremento y decremento. Este computador
representa los números enteros en complemento a dos y los números en coma flotante según el estándar IEEE 754 de
precisión simple. Suponga que se requiere un ciclo para acceder a memoria y que esta se accede a nivel de palabra.
ALU OP
PCSP RI
REST
MAR MBR
RT
TR2TR1
Memoria
Principal
Bus de
Direcciones Bus de
Datos
Banco de
Registros
Unidad de
Control
L
E
Responda a las siguientes preguntas, considerando que las instrucciones ocupan una palabra.
a) Microprograme a nivel de operaciones elementales la instrucción STORE Rk, /dirección ¿Cuántos ciclos se
necesitan para ejecutar esta instrucción en este computador? Esta instrucción almacena el contenido del
registro Rk en la posición de memoria dada por /dirección.
b) Microprograme a nivel de operaciones elementales la instrucción JMP (Rk). ¿Cuántos ciclos se necesitan
para ejecutar esta instrucción en este computador? Esta instrucción salta a la dirección de memoria
almacenada en Rk.
c) Microprograme a nivel de operaciones elementales la instrucción ADD R2, [#700[R7++]]. Esta instrucción
suma el contenido del registro R2 con el contenido de una posición de memoria y deja el resultado en R2.
Los [] representan direccionamiento indirecto.
Solución:
a) Instrucción STORE Rk, /dirección
c1: MAR ¬ PC
c2: MBR ¬ MP
TR1 ¬ PC
c3: PC ¬ TR1 + 1
c4 : R1 ¬ MBR
c5: MBR ¬ RK
c6: MAR ¬ RI(dirección)
c7: MP ¬MBR
Observe que para poder incrementar el contador del programa (PC ¬ PC + 1) en el ciclo de captación de la
instrucción, es necesario llevarlo previamente al registro transparente al usuario TR1 (o bien TR2) y a
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16

Vista previa parcial del texto

¡Descarga ejercicios Alus informatica y más Apuntes en PDF de Informática solo en Docsity!

Autores: Félix García Carballeira et al.

Unidad de control y diseño del procesador

Ejercicios resueltos

Ejercicio 1. La siguiente figura muestra la estructura de un computador con una CPU de 32 bits y un banco de 16 registros generales (R1 a R16). MAR es el registro de direcciones de memoria y MBR el registro de datos de memoria. El registro RT es un registro temporal transparente al usuario. TR1 y TR2 también son registros transparentes al usuario. La ALU permite realizar cuatro operaciones: suma, resta, incremento y decremento. Este computador representa los números enteros en complemento a dos y los números en coma flotante según el estándar IEEE 754 de precisión simple. Suponga que se requiere un ciclo para acceder a memoria y que esta se accede a nivel de palabra. ALU OP SP PC RI REST MAR MBR TR1 TR2^ RT Memoria Principal Bus de Direcciones Bus de Datos Banco de Registros Unidad de Control L E Responda a las siguientes preguntas, considerando que las instrucciones ocupan una palabra. a) Microprograme a nivel de operaciones elementales la instrucción STORE Rk, /dirección ¿Cuántos ciclos se necesitan para ejecutar esta instrucción en este computador? Esta instrucción almacena el contenido del registro Rk en la posición de memoria dada por /dirección. b) Microprograme a nivel de operaciones elementales la instrucción JMP (Rk). ¿Cuántos ciclos se necesitan para ejecutar esta instrucción en este computador? Esta instrucción salta a la dirección de memoria almacenada en Rk. c) Microprograme a nivel de operaciones elementales la instrucción ADD R2, [#700[R7++]]. Esta instrucción suma el contenido del registro R2 con el contenido de una posición de memoria y deja el resultado en R2. Los [] representan direccionamiento indirecto. Solución : a) Instrucción STORE Rk, /dirección c1: MAR ¬ PC c2: MBR ¬ MP TR1 ¬ PC c3: PC ¬ TR1 + 1 c4 : R1 ¬ MBR c5: MBR ¬ RK c6: MAR ¬ RI(dirección) c7: MP ¬MBR Observe que para poder incrementar el contador del programa (PC ¬ PC + 1) en el ciclo de captación de la instrucción, es necesario llevarlo previamente al registro transparente al usuario TR1 (o bien TR2) y a

Autores: Félix García Carballeira et al. continuación incrementarlo y almacenarlo en el PC. Para ello se requieren las dos siguientes operaciones elementales: TR1 ¬ PC PC ¬ TR1 + 1 b) Instrucción JMP (Rk) c1: MAR ¬ PC c2: MBR ¬ MP TR1 ¬ PC c3: PC ¬ TR1 + 1 c4 : RI ¬MBR c5: PC ¬ RK c) ADD R2, [#700[R7++]] En esta instrucción se utiliza direccionamiento indirecto relativo, por lo que se deben hacer dos accesos a Memoria Principal para obtener el segundo operando de la suma. c0: MAR ¬ PC c1: MBR ¬ MP TR1 ¬ PC c2: PC ¬ TR1 + 1 c3: RI ¬ MBR c4: TR1 ¬ RI c5: TR2 ¬ R c6: MAR ¬ TR1 + TR c7: MBR ¬ MP c8: MAR ¬ MBR c9: MBR ¬ MP c10: TR1 ¬ MBR c11: TR2 ¬ R c12: R2 ¬ TR1 + TR Ejercicio 2. Considere el siguiente esquema de procesador de 32 bits. El banco de registros incluye 32 registros. Considere que el computador utiliza un ciclo de reloj para realizar la decodificación de la instrucción y que se conecta a una memoria que permite realizar una operación de lectura y de escritura en un ciclo. El procesador es capaz de ejecutar 240 instrucciones máquina. Memoria principal Procesador Banco de registros Unidad de MAR MBR RI Control ALU RE Señales de control Bus de direcciones Bus de datos Bus de control Señales de interrupción RT1 RT RT PC 4 A T Td Ta T T B E RC SC RA Cod. OP RB L E MUX A MUX B

MA 0 1 MB^0 T T T T T C1 C2 C3 C C9 C C C C7 C C Bus interno

Autores: Félix García Carballeira et al. C3 SP, MAR ← SP – 4 C4: MBR ← RE C5: MP ← MBR C6: RT1 ← R C7: RT2 ← RI(vector) C8: RT1 ← RT1 + 4 C9: MAR ← RT1 * RT C10: MBR ← MP C11: PC ← MBR Durante estas operaciones elementales se guardan en la pila el contenido del contador de programa y del resgistro de estado. c) Las operaciones elementales, excluyendo el ciclo de fetch necesarias para la ejecución de la instrucción RTI son las siguientes: C0: SP, MAR ← SP + 4 C1: MBR ← MP C2: RE ← MBR C3: SP, MAR ← SP + 4 C4: MBR ← MP C5: PC ← MBR Ejercicio 4. Considere un procesador de 32 bits similar al mostrado en la figura que ejecuta las instrucciones máquina del MIPS. La arquitectura tiene 250 instrucciones distintas y el Banco de Registros tiene 128 registros distintos. La lectura y escritura de memoria se realiza en un solo ciclo. Una instrucción de esta arquitectura es TRIPLEADD, la cual tiene la siguiente sintaxis: TRIPLEADD RD RO1 RO2 dir Esta instrucción suma tres números mediante la siguiente operación: RD ← (RO1 + RO2) + MP(dir) Dicha operación consta de dos sumas: primero suma el contenido del registro RO1 con el del registro RO2. El resultado es a su vez sumado con el contenido de la posición de memoria dir. El resultado final de la suma se almacena en el registro RD. Estos tres registros son registros genéricos del Banco de Registros mientras que dir representa la dirección de memoria de una palabra. Se pide: a. Indique el formato de la instrucción anterior.

Autores: Félix García Carballeira et al.

b. Indique las operaciones elementales necesarias para ejecutar la instrucción anterior.

Solución : a) Formato de la instrucción. Existen 250 instrucciones distintas, por lo que el código de operación requerirá de 9 bits. Existen 126 registros, por lo que los campos de registros requerirán de 7 bits. La dirección de memoria ocupa 32 bits. El formato, por tanto, es el siguiente: 1ª palabra (32 bits) 2ª Palabra (32 bits) b) Operaciones elementales y señales de control c1: MAR ← PC (T4,C1) c2: Lectura, PC ← PC + 4, MBR ← MP (Td, L) (C4) (C2) c3: RI ← MBR (T3,C6) c4: Decodificación c5: MAR ← PC (T4,C1) c6: Lectura, PC ← PC + 4, MBR ← MP (Td, L) (C4) (C2) c7: MAR ← MBR (T3,C1) c8: Lectura (Td, L) c10: RT1 ← MBR (T3,C9) c11: RT2 ← R5 + R7 (RA=5,RB=7,MUX A=0, MUX B=0, Cod. Op=ADD) (T5,C10) c12: R2 ← RT1 + RT2 (MUX A=1, MUX B=1, Cod. Op=ADD) (T5, RC=2, SC) Ejercicio 5. Considere el siguiente esquema de procesador de 32 bits. El banco de registros incluye 32 registros. Considere que el computador utiliza un ciclo de reloj para realizar la decodificación de la instrucción y que se conecta a una memoria que permite realizar una operación de lectura y de escritura en un ciclo. Memoria principal Procesador Banco de registros Unidad de MAR MBR (^) RI Control ALU RE Señales de control Bus de direcciones Bus de datos Bus de control Señales de interrupción RT1 RT RT PC 4 A T Td Ta T T B E RC SC RA Cod. OP RB L E MUX A MUX B

MA 0 1 MB^0 T T T T T C1 C2 C3 C C9 C C C C C C Bus interno CO(9) R(7) R(7) R(7) Sin usar(2) Dir(32)

Autores: Félix García Carballeira et al. Solución :

a) En la siguiente tabla se muestran las operaciones elementales y las señales de control

para la instrucción addi.

Ciclo Operación elemental Señales de control activadas C1 (^) MAR ¬ PC T4, C C2 (^) MBR ¬ MP, PC ¬ PC + 4 L, Td, C2, C C3 (^) RI ¬ MBR T3, C C4 Decodificación C5 (^) TR2 ¬ RI(10) T8, C C6 (^) $t0 ¬ $t1 + TR2 RA = <dir de $t1> MA = 0 MB = 1 Cod op = SUMAR T RC = <dir de $t0> SC b) En la siguiente tabla se muestran las operaciones elementales y las señales de control para la instrucción lw. Ciclo Operación elemental Señales de control activadas C1 (^) MAR ¬ PC T4, C C2 (^) MBR ¬ MP, PC ¬ PC + 4 L, Td, C2, C C3 (^) RI ¬ MBR T3, C C4 Decodificación C5 (^) MAR ¬ $t2, RA = <dir de $t2> T1, C C6 (^) MBR ¬ MP Td, L, C C7 (^) $t1 ¬ MBR T3, SC, RA = <dir de $t1> c) A continuación se muestran las operaciones elementales y señales para la instrucción sw. Ciclo Operación elemental Señales de control activadas C1 (^) MAR ¬ PC T4, C C2 (^) MBR ¬ M[MAR] Td, L, C C3 (^) RI ¬MBR, PC <- PC + 4 T3, C6, C C4 Decodificación C5 (^) RT2 ¬ RI(120) T8, C C6 (^) RT1 ¬ BR[$t2] RA=$t2, T1, C C7 (^) MAR ¬RT1 + RT2 MA=1, MB=1, Cod. OP=+, T5, C C8 (^) MBR ¬ BR[$t1] RA=$t1, C C9 (^) MP[MAR] ¬ MBR Ta, Td, E C10 Salto a fetch Ejercicio 7. Considere el siguiente esquema de procesador de 32 bits. El banco de registros incluye 32 registros. Considere que el computador utiliza un ciclo de reloj para realizar la decodificación de la instrucción y que se conecta a una memoria que permite realizar una operación de lectura y de escritura en un ciclo.

Autores: Félix García Carballeira et al. Memoria principal Procesador Banco de registros Unidad de MAR MBR (^) RI Control ALU RE Señales de control Bus de direcciones Bus de datos Bus de control Señales de interrupción RT1 RT RT PC 4 A T Td Ta T T B E RC SC RA Cod. OP RB L E MUX A MUX B

MA 0 1 MB^0 T T T T T C1 C2 C3 C C9 C C C C7 C C Bus interno Este computador dispone del juego de instrucciones del MIPS32. Se pide: a) Indique las señales de control necesarias para poder realizar la operación elemental PC ← R7, siendo R7 el registro del banco de registros cuyo número es el 7. b) Si durante un ciclo de reloj se activan las señales T3 y C10, indique qué operación elemental se está realizando. c) Indique las operaciones elementales y las señales de control (incluyendo el fetch ) necesarias para ejecutar la instrucción addi $t0, $t1, 10. Solución : a) Han de activarse las señales C5, T1 y RA = 00111 (registro 7) b) Se trata de la operación RT2 ← MBR c) Ciclo 0: MAR ← PC Señales: T4, C Ciclo 1: MBR ← MP Señales: Td, L, C PC ← PC + 4 C Ciclo 2: RI ← MBR Señales: T3, C Ciclo 3: Decodificación Ciclo 4: RT1 ← RI(10) Señales: T8, C Ciclo 5: $t0 ← RT1 + $t1 Señales: MA = 1, Cod. OP = suma, RB = <$t1>, T5, RC = <$t0>, SC, C Ejercicio 8. Considere el siguiente esquema de procesador de 32 bits. El banco de registros incluye 32 registros. Considere que el computador utiliza un ciclo de reloj para realizar la decodificación de la instrucción y que se conecta a una memoria que permite realizar una operación de lectura y de escritura en un ciclo. Memoria principal Procesador Banco de registros MAR MBR (^) RI^ Unidad de Control ALU RE Señales de control Bus de direcciones Bus de datos Bus de control interrupción^ Señales de RT1 RT RT PC 4 A T Td Ta T T B E RC SC RA Cod. OP RB L E MUX A MUX B

MA 0 1 MB^0 T T T T T C1 C2 C3 C C9 C C C C7 C C Bus interno Este computador dispone del juego de instrucciones del MIPS32. Se pide:

Autores: Félix García Carballeira et al. b) Indique, en función del formato definido en el apartado a, las operaciones elementales y las señales de control necesarias para la ejecución de las instrucciones anteriores. Incluya también el ciclo de fetch. Solución : a) Como el computador dispone de 130 instrucciones, se necesitan 8 bits para codificar una instrucción. El computador es de 32 bits, por tanto, se necesitan 32 bits para codificar una dirección de memoria. Esta instrucción, por tanto, necesita tres palabras para su codificación. Su contenido es el siguiente: El formato de la segunda instrucción sería: a) Primera instrucción: ciclo Operaciones elementales Señales de control C0 (^) MAR ¬ PC T4, C C1 (^) MBR ¬ MP, PC ¬ PC + 4 Td, L, C2, C C2 (^) RI ¬ MBR T3, C C3 Decodificación C4 (^) MAR ¬ PC T4, C C5 (^) MBR ¬ MP, PC ¬ PC +4 Td, L, C2, C C6 (^) RT1 ¬ MBR, RT2 ¬ MBR T3, C9, C C7 (^) MAR ¬ PC, T4, C C8 (^) MBR ¬ MP, PC ¬ PC+ 4 Td, L, C2, C C9 (^) MAR ¬ MBR T3, C C10 (^) MBR ¬ MP Td, L, C C11 (^) MAR ¬ RT1 OR RT2 MA, MB, T5, C1, Cod. OP = OR C12 (^) MP ¬ MBR Td, Ta, E Segunda instrucción: Ciclo Operaciones elementales Señales de control C0 (^) MAR ¬ PC T4, C C1 (^) MBR ¬ MP, PC ¬ PC + 4 Td, L, C2, C C2 (^) RI ¬ MBR T3, C C3 Decodificación C4’ (^) R1 ¬ R2 RA = 00001, RC = 00010, T1, SC Ejercicio10. Considere un computador de 32 bits , que dispone de un banco de 32 registros , que se encuentra conectado a una memoria, que se direcciona por bytes y que requiere un ciclo para las operaciones de lectura y escritura. El computador dispone de un juego de instrucciones con 110 instrucciones máquina. La unidad aritmético-lógica es capaz de realizar operaciones aritméticas y lógicas (sumar, restar, multiplicar, dividir, incrementar, disminuir en uno, etc.). El procesador emplea un ciclo para la decodificación de la instrucción. Su estructura es la siguiente: CO ( 8 bits) Dir 1 (32 bits) Dir 2 (32 bits) CO ( 8 bits) R1 ( 5 bits) R2 ( 5 bits)

Autores: Félix García Carballeira et al. Memoria principal Procesador Banco de registros Unidad de MAR MBR RI Control ALU RE Señales de control Bus de direcciones Bus de datos Bus de control Señales de interrupción RT1 RT RT PC 4 A T Td Ta T T B E RC SC RA Cod. OP RB L E MUX A MUX B

MA 0 1 MB^0 T T T T T C1 C2 C3 C C9 C C C C C C Bus interno Considere las dos siguientes instrucciones: PUTS R1, R2 (^) Esta instrucción inserta dos palabras en la cima de la pila, primero el contenido del registro R1 y encima el contenido del registro R ADDS (^) Esta instrucción extrae de la pila el contenido de las dos primeras palabras apiladas. Realiza la suma de estos dos valores e inserta el resultado en la cima de la pila POP R1 (^) Esta función extrae un elemento (palabra de la pila) y lo almacena en R Considerando que el registro puntero de pila es el registro R30 y que la unidad aritmética lógica dispone entre otros de una operación que permite sumar 4 al dato que entra en la ALU por el MUX A y otra que permite restar 4 al dato que entra a la ALU por el MUX A. Se pide: a) Indique, de forma razonada, el formato de las instrucciones anteriores. b) Indique, en función del formato definido en el apartado a, las operaciones elementales y las señales de control necesarias para la ejecución de la instrucción PUTS. Incluya también el ciclo de fetch. c) Utilizando las tres instrucciones anteriores, escriba un fragmento de programa cuyo comportamiento sea similar al que realiza la instrucción de MIPS add R1, R2, R3. Solución : a) Como el computador dispone de 110 instrucciones, se necesitan 8 bits para codificar una instrucción. El computador es de 32 bits, por tanto, se necesitan 32 bits para codificar una dirección de memoria. Esta instrucción, por tanto, necesita tres palabras para su codificación. Su contenido es el siguiente: El formato de la instrucción PUTS es: El formato de la segunda instrucción sería: El formato de la tercera instrucción es: CO ( 8 bits) Sin usar (24 bits) CO ( 8 bits) R1 ( 5 bits) R2 ( 5 bits) Sin usar (14 bits) CO ( 8 bits) R1 ( 5 bits) Sin usar (19 bits)

Autores: Félix García Carballeira et al.

  • Un banco de registros con 32 registros de 32 bits, capaz de procesar 127 instrucciones distintas.
  • Una ALU con 16 operaciones aritmético-lógicas que incluyen la suma, resta, multiplicación, los and, or, not, xor a nivel de bit, la rotación a la derecha e izquierda de un bit, y los desplazamientos lógicos y aritméticos a la derecha, y el desplazamiento lógico a la izquierda.
  • Memoria direccionable a nivel de byte y un solo ciclo de reloj para la lectura o escritura. Este procesador dispone de una Unidad de control representada por la siguiente figura: Responda de forma breve y justificada a las siguientes preguntas: a) Analizando el diagrama de la Unidad de Control, ¿Qué técnica de control emplea? ¿Qué tipo de secuenciamiento usa? b) Dada la instrucción de dos palabras li.w R valor que almacena “valor” en el registro “R”, indique un formato de instrucción para la misma de forma que en la primera palabra contenga el registro “R” y en la segunda palabra esté “valor” como número binario de 32 bits. c) Especifique las operaciones elementales y todas las señales de control necesarias, tanto de la unidad de control como del procesador, para ejecutar la instrucción máquina li.w R valor anteriormente descrita. Incluya el ciclo de fetch. NOTA: Asuma que R29 actúa como puntero de pila, que el puntero de pila apunta a cima de pila y que la pila crece hacia direcciones decrecientes de memoria. Solución : a) Esta Unidad de Control tiene una técnica de control microprogramado y un secuenciamiento implícito. b) Un posible formato para la instrucción descrita sería: Primera palabra: Código de instrucción (7 bits) Registro (5 bits) Segunda palabra: Valor (32 bits) c) Las operaciones elementales y las señales de control:

Autores: Félix García Carballeira et al. Operaciones elementales Señales de control fetch MAR ¬ PC T2, C MBR ¬ Mem[MAR] TA, R, BW=11, C1= PC ¬ PC+4, IR <- MBR M2, C2, T1, C Salto a Código de operación A0, B=0, C= li.w R valor MAR ¬ PC, PC <- PC+4 T2, C0, M2=1, C MBR ¬ Mem[MAR] TA=1, R=1,^ BW=11, C1= R ¬ MBR, salto a fetch T1=1, LE=1, MR=0, SELE=10100, A0=1, B=1, C= Ejercicio 12. Dado el procesador con la siguiente estructura: Y con las siguientes características:

  • Un banco de registros con 32 registros de 32 bits, capaz de procesar 63 instrucciones distintas.
  • Una ALU con 16 operaciones aritmético-lógicas que incluyen la suma, resta, multiplicación, los and, or, not, xor a nivel de bit, la rotación a la derecha e izquierda de un bit, y los desplazamientos lógicos y aritméticos a la derecha, y el desplazamiento lógico a la izquierda.
  • Memoria direccionable a nivel de byte y un solo ciclo de reloj para la lectura o escritura. Este procesador dispone de una Unidad de control representada por la siguiente figura:

Autores: Félix García Carballeira et al. Considere la siguiente instrucción máquina swapSP R1.Esta instrucción intercambia el contenido almacenado en el registro R1 con el contenido almacenado en la cima de la pila. Se pide: a) Indique, de forma razonada el formato de la instrucción anterior. b) Indique, en función del formato definido en el apartado a), las operaciones elementales y las señales de control necesarias para la ejecución de la instrucción anterior. Incluya también el ciclo de fetch. Solución : a) Como el computador dispone de 120 instrucciones, se necesitan 7 bits (log 2 120 por exceso) para codificar una instrucción. Como hay 32 registros, se necesitan 5 bits para identificar a cada registro (2^5 = 32). Esta instrucción, por tanto, necesita una palabra para su codificación. Su contenido es el siguiente: b) A continuación, se muestran los ciclos, operaciones elementales y señales de control necesarias, teniendo en cuenta que el puntero de pila es el registro R31: Ciclo Operaciones elementales Señales de control C0 (^) MAR ¬ PC T4, C C1 (^) MBR ¬ MP, PC ¬ PC + 4 Td, L, C2, C C2 RI ¬ MBR T3, C C3 Decodificación C4 (^) MAR ¬ R31 RA=11110, T1, C C5 (^) MBR ¬ MP L, TD, TA, C C6 (^) RT2 ¬ MBR T3, C C7 (^) MBR ¬ R1 RA=00001, T1, C C8 (^) MP ¬ MBR R1 ¬ R0 + RT

TD, TA, E

Cod. OP=suma, MB, RA=00000, T5, RC=00000, SC Ejercicio 14. Considere un computador de 32 bits, con una frecuencia de reloj de 2 GHz, que dispone de un banco de 32 registros, que se encuentra conectado a una memoria, que se direcciona por bytes y que requiere un ciclo para las operaciones de lectura y escritura. El computador dispone de un juego de instrucciones con 120 instrucciones Memoria principal Procesador Banco de registros Unidad de MAR MBR (^) RI Control ALU RE Señales de control Bus de direcciones Bus de datos Bus de control Señales de interrupción RT1 RT RT PC 4 A T Td Ta T T B E RC SC RA Cod. OP RB L E MUX A MUX B

MA 0 1 MB^0 T T T T T C1 C2 C3 C C9 C C C C C C Bus interno CO ( 7 bits) R1 ( 5 bits)

Autores: Félix García Carballeira et al. máquina. La unidad aritmético-lógica es capaz de realizar operaciones aritméticas y lógicas (sumar, restar, multiplicar, dividir, incrementar, disminuir en uno, etc.). El procesador emplea un ciclo para la decodificación de la instrucción. El registro R0 tiene su valor cableado a 0, y se emplea el registro R31 como registro puntero de pila. Su estructura es la siguiente: Considere la siguiente instrucción máquina, cuyo código de operación es ADDSP R1, dir. Esta instrucción suma el contenido almacenado en el registro R1 con el contenido almacenado en la dirección de memoria dir y deja en resultado en la cima de la pila. Se pide: a) Indique, de forma razonada el formato de la instrucción anterior. b) Indique, en función del formato definido en el apartado a), las operaciones elementales y las señales de control necesarias para la ejecución de la instrucción anterior. Incluya también el ciclo de fetch. c) Considere que el 20% de las instrucciones de este computador necesitan el mismo número de ciclos para su ejecución que la instrucción ADDSP y que el 80% restante necesita en media 7 ciclos. Calcule el valor MIPS para este computador. Solución : a) Para representar la instrucción ADDSP R1, dir se necesitan los siguientes bits:

  • 7 bits para el código de operación, puesto que con 7 bits se puede identificar hasta 127 instrucciones.
  • 5 bits para el registro puesto que con 5 bits se puede identificar a los 32 registros.
  • Las direcciones de memoria en ese computador ocupan 32 bits. Por tanto, para poder representar de forma completa esta instrucción se necesitan 5 + 7 + 32 bits, es decir, dos palabras. El formato será el siguiente: Memoria principal Procesador Banco de registros Unidad de MAR MBR (^) RI Control ALU RE Señales de control Bus de direcciones Bus de datos Bus de control Señales de interrupción RT1 RT RT PC 4 A T Td Ta T T B E RC SC RA Cod. OP RB L E MUX A MUX B

MA 0 1 MB^0 T T T T T C1 C2 C3 C C9 C C C C C C Bus interno

Autores: Félix García Carballeira et al. Responda de forma breve y justificada a las siguientes preguntas: a) Analizando el diagrama de la Unidad de Control, ¿Qué técnica de control emplea? ¿Qué tipo de secuenciamiento usa? b) Considere la instrucción set.v R1, R2, dirección. Esta instrucción es una instrucción vectorial que almacena el valor contenido en el registro R1 en las N direcciones de memoria consecutivas a partir de dirección. El valor N se encuentra almacenado en el registro R2. Es decir, almacena el valor que hay en R1 en las posiciones de memoria: dirección, dirección +4, dirección +8.... dirección + Nx4. Especifique adecuadamente el formato de esta instrucción. c) Especifique las operaciones elementales y todas las señales de control necesarias, tanto de la unidad de control como del procesador, para ejecutar la instrucción máquina anteriormente descrita. Incluya el ciclo de fetch. Asuma que R29 actúa como puntero de pila, que el puntero de pila apunta a cima de pila y que la pila crece hacia direcciones decrecientes de memoria. Solución : a) Esta Unidad de Control tiene una técnica de control microprogramado y un secuenciamiento implícito. b) Un posible formato para la instrucción descrita sería: Primera palabra: Código de instrucción (7 bits) Registro (5 bits) Registro (5 bits) (15 bits) Segunda palabra: Valor (32 bits) c) Las operaciones elementales y las señales de control: Ciclo Operaciones elementales Señales de control Fetch C1 MAR ¥ PC T2, C C2 MBR ¥ Mem[MAR] TA, R, BW=11, C1, M C3 PC ¥ PC+4, IR ¥ MBR M2, C2, T1, C

Autores: Félix García Carballeira et al. C4 Salto a c.o. A0, B=0, C= Ejecución de la instrucción C5 MAR ¥ PC T2, C C6 MBR ¥ MP[MAR], PC ¥ PC + 4 TA, R, BW=11, C1, M2, C2, M C7 RT1 ¥ R2 C4, T9, SelA=R2_offset, MR= C8 RT3 ¥ RT1 * 1 MA, MB=11, SelCop=*, SelP=11, M7, C C9 If (SR.Z==1) goto fetch C=6, B=0, A0=0, MADDR= C10 RT2 ¥ MAR ¥ MBR T1, C0, C C11 MBR ¥ R1 T9, SelA=R1_offset, MR=0, M1=0, C C12 MP[MAR] ¥ MBR TA, TD, BW=11, W C13 RT1 ¥ RT2 T5, C C14 RT2 ¥ MAR ¥ RT1 + 4 MA, MB=10, SelCOP=+, T6, C0, C C15 RT1 ¥ RT3 T7, C C16 RT3 ¥ RT1 – 1 MA, MB=11, SelCOP=-, C6, SelP=11, M7, C C17 If (NOT SR.Z==0) goto C12 C=6, B=0, A0=0, MADDR=C C18 Salto a fetch A0, C=0, B Ejercicio 16. Dado el procesador con la siguiente estructura: Y con las siguientes características:

  • Un banco de registros con 32 registros de 32 bits, capaz de procesar 127 instrucciones distintas.
  • Una ALU con 16 operaciones aritmético-lógicas que incluyen la suma, resta, multiplicación, los and, or, not, xor a nivel de bit, la rotación a la derecha e izquierda de un bit, y los desplazamientos lógicos y aritméticos a la derecha, y el desplazamiento lógico a la izquierda.
  • Memoria direccionable a nivel de byte y un solo ciclo de reloj para la lectura o escritura. Este procesador dispone de una Unidad de control representada por la siguiente figura: