Académique Documents
Professionnel Documents
Culture Documents
Juan Pablo
Introduccin o
A1 B1 SS
As
C1
ADD R1, R0 ?
Ae A2 A3 Ae A3 B3 Ae A4 B4 S S S
As
C2
As
C3
As
C4 C5
El lenguaje
NEG
modificarlos
El lenguaje
HAB.
SET
s3
CLR
Q
HAB.
SET
s2
CLR
Q
HAB.
SET
s1
CLR
Q
HAB.
SET
s0
CLR
Reset
Enable out
Vale R0[3]
El lenguaje
Existen caminos (l neas) por donde van los datos. Podemos mover un dato de un registro a otro si hay un camino directo entre ellos Podemos asignar un valor constante a un registro.
R0
R_OUT
R1
El lenguaje
Ejercicio 1
Se cuentan con los siguientes circuitos: Una ALU con 2 registros de 16 bits (ALU IN1 y ALU IN2) que usa de entradas y 5 registros que usa de salida: ALU OUT de 16 bits y (ALU Z, ALU N, ALU C y n ALU V) de 1 bit. Sus seales de control son: Seal n Efecto ALUadd ALU OUT := ALU IN1 + ALU IN2 ALUsub ALU OUT := ALU IN1 - ALU IN2 ALUneg ALU OUT := - ALU IN1 ALUand ALU OUT := ALU IN1 AND ALU IN2 ALUnot ALU OUT := NOT ALU IN1 Un extensor de signo complemento a 2 (SIGN EXT) con un registro de entrada de 16 bits (EXT IN) y un registro de salida de 16 bits (EXT OUT). Sus seales de control son: n Seal n Efecto SIGN EXTon activa la operacin de extensin de signo de 8 bits a 16 bits o o SIGN EXTo copia el contenido de EXT IN en ALU IN2 1. Suponiendo que se encuentra resuelta la decodicacin y el acceso a memoria o de la mquina, disear el camino de datos de la arquitectura de la mquina a n a ORGA1. No dibujar la unidad de control para simplicar el diagrama. 2. Indicar cul es la secuencia de seales (o microoperaciones) que debe realizar la a n unidad de control para ejecutar las siguientes instrucciones:
Ejercicio 1 - Solucin o
R0 ... R7 SP PC ALU EXT_IN SIGN_EXT
ALU_IN1
ALU_IN2
ALU_OUT
CPUOrga1
MOV R5,R1
1. R5 := R1
AND R7, R1
1. 2. 3. 4. 5. 6. 7. 8. 9. ALU IN1 := R7 EXT IN := R1 SIGN EXTo ALUand R7 := ALU OUT Z := ALU Z N := ALU N C := ALU C V := ALU V
NEG R4
1. 2. 3. 4. 5. 6. 7. ALU IN1 := R4 ALUneg R4 := ALU OUT Z := ALU Z N := ALU N C := ALU C V := ALU V
Ejercicio 2
Se cuenta con una memoria con palabra y direccionamiento de 16 bits. Posee 2 registros de entrada de 16 bits (ADDR, WRT DATA) y 1 de salida de 16 bits n (RD DATA). Sus seales de control son: MEM WRITE: Activa la microoperacin de escritura del contenido del registro o WRT DATA en la direccin de memoria indicada por el ADDR o MEM READ: Activa la microoperacin de lectura del contenido de la direccin o o de memoria indicada por el ADDR, colocando el valor en el registro RD DATA. 1. Extender el camino de datos de la arquitectura de la mquina ORGA1. No a dibujar la unidad de control para simplicar el diagrama. 2. Qu componentes del camino de datos se encuentran dentro del CPU y fuera e de l? e 3. Indicar cul es la secuencia de seales (o microoperaciones) que debe realizar la a n unidad de control para ejecutar las siguientes instrucciones:
Ejercicio 2: Solucin o
.... ADDR
WRT_DATA RD_DATA
bus externo
Memoria
CPU Orga1
Ejercicio 3
La computadora STACK1 es una mquina de pila con direccionamiento a byte, a tamao de palabra de 16 bits y direcciones de memoria de 12 bits. Trabaja con n aritmtica complemento a 2 de 16 bits. Posee el siguiente set de instrucciones: e Instruccin o STORE [M] LOAD [M] ADD SUB JUMP SKIP N SKIP Z SKIP GE CodOp 0000 0001 0010 0011 0100 0101 0110 0111 Signicado push [M] [M] := pop push(pop+pop) push(pop-pop) PC := pop (slo los 12 bits menos signicativos) o ignora la prxima instruccin si top es < 0 o o ignora la prxima instruccin si top es 0 o o ignora la prxima instruccin si top es >= 0 o o
1. Denir el camino de datos y la organizacin del CPU de STACK1 para soportar o la implementacin de, al menos, estas instrucciones. o 2. Describa la secuencia de microoperaciones que realiza la unidad de control para realizar un fetch de una instruccin. o 3. Implementar las siguientes instrucciones
Ejercicio 3: Solucin o
Se utiliza un circuito incrementador con 2 seales: INC +2 que suma 2 a la entrada, y n INC 2 que resta 2 a la entrada. ADDR, INC IN, INC OUT, SP y PC son registros de 12 bits.
SP PC IR ALU ALU_IN1
ALU_IN2
SKIP Z JUMP
1. 2. 3. 4. 5. 6.
1. 2. 3. 4. 5. 6. 7. 8. 9.
INC IN := SP INC +2 ADDR := INC OUT MEM READ if RD DATA = 0x0000 INC IN := PC INC +2 PC := INC OUT endif
STORE [M] 1. ADDR := IR[11:0] 2. MEM READ 3. WRT DATA := RD DATA 4. ADDR := SP 5. MEM WRITE 6. INC IN := SP 7. INC 2 8. SP := INC OUT
INC IN := SP INC +2 SP := INC OUT ADDR := SP MEM READ ALU IN1 := RD DATA // primer operando INC IN := SP INC +2 SP := INC OUT ADDR := SP MEM READ ALU IN2 := RD DATA // segundo operando ALU add WRT DATA := ALU OUT ADDR := SP MEM WRITE // push resultado INC IN := SP INC 2 SP := INC OUT