Está en la página 1de 4

Prácticas de Estructura de Computadores –Grado en Ingeniería Informática Curso 2017/18

PRÁCTICA 5.
CAMINO DE DATOS.
ANÁLISIS DE SEÑALES DE CONTROL.
Objetivos:

 Estudiar los elementos que componen el camino de datos monociclo del procesador MIPS.
 Conocer las señales de control que se activan en el camino de datos monociclo del procesador
MIPS.

Desarrollo / Comentario:

Duración: 2 horas.

Parte 1.

Carga el siguiente programa en el editor del simulador:

.data
valor1: .word 0x30
valor2: .word 0x20
result: .word 0

.text
.globl main
main:
la $t6,valor1
lw $s1,0($t6)
lw $s2,4($t6)#11
slt $t1,$s1,$s2 #12
beq $t1,$0,suma #13
sub $t2,$s2,$s1

seguir:

addi $t2,$t2,1
la $s3,result
sw $t2,0($s3)#20
fin:
addi $v0,$0,10
syscall

suma:
add $t2,$s1,$s2 #26
j seguir #27

Utiliza el simulador Simula3MS con una configuración Monociclo.

a) ¿Cuántos ciclos tarda en ejecutarse el programa?


14
Prácticas de Estructura de Computadores –Grado en Ingeniería Informática Curso 2017/18

b) Si la frecuencia de trabajo es 3 GHz ¿cuánto tiempo tarda en ejecutarse?


F=1/T T=1/F T = 1/3x10^ (9) = 0’333 ns
Tiempo ejec = num de ciclos * tciclo = 14 * 0.333 ns = 4.667 ns

c) Ejecuta el programa paso a paso e indica el valor de las señales de control (0, 1 o X (si da
igual)) cuando se ejecuten las siguientes instrucciones (de las líneas: 11, 12, 13, 20, 26 y 27).

Mem Mem Mem


RegDst ALUSrc RegWrite Branch ALUOp Jmp
Instrucción toReg Read Write
RegDst FuenteALU MemaReg EscrReg LeerMem EscrMem SaltoCond ALUOp FuentePC

lw 0 1 1 1 1 0 0 00 0

slt 1 0 0 1 0 0 0 10 0

beq X 0 X 0 0 0 1 01 0

sw X 1 X 0 0 1 0 00 0

add 1 0 0 1 0 0 0 10 0

j X X X 0 0 0 X XX 1

2
Prácticas de Estructura de Computadores –Grado en Ingeniería Informática Curso 2017/18

Parte 2.

a) Indica en la tabla de abajo el valor de las líneas 1-8 (marcadas en la ruta de datos) para la
ejecución de las instrucciones de las líneas 11 y 13.
Nota: la señal ALUop puede tener los siguientes valores:
00: Para indicar que la operación que debe realizar la ALU es una suma
01: Para indicar que la operación que debe realizar la ALU es una resta
10: Para indicar que la operación que debe realizar la ALU depende del valor de Instr [5-0].

Instr[25 -0]
Shift 1
26 left 2
28 32
0 7
Add 3 PC+4[31 -28]
6 0
Add 1
4 Shift 5 PCSrc
Jump left 2
ALUOp
Branch
Control MemRead
MemtoReg
Unit MemWrite
Instr[31-26] ALUSrc

RegWrite
RegDst

Instr[25 -21]
Instr
Instruction
Memory
Read Reg 1
Register Read
4 Address
Instr[20 -16]
Instr
Read Reg 2 Data 1 zero
Data
Read File
PC
Address
Instr[31 -0] 0 ALU Memory Read Data 1
Write Reg
Read 0
1 Data 2 Write Data 0
Instr[15
Write Data
-11] 1

1 Sign
Extend
2 ALU 8
Instr[15-0] 16 32 control

Instr[5 -0]
Instr

[0x00400008] 0x8dd10000 lw $s1, 0($t6)


[0x0040000c] 0x8dd20004 lw $s2, 4($t6) #línea 11
[0x00400010] 0x0232482a slt $t1, $s1, $s2
[0x00400014] 0x11200007 beq $t1, $0, suma #línea 13
[0x00400018] 0x02515022 sub $t2, $s2, $s1
………….

[0x00400030] 0x0000000c syscall


suma:
[0x00400034] 0x02325020 add $t2, $s1, $s2
[0x00400038] 0x08100007 j seguir

Línea1 Línea2 Línea3 Línea4 Línea5 Línea6 Línea7 Línea 8


Offset= Signoext PC+4= $t6= Línea 2*4= Línea 3 + Línea 3 no Ejecuta
lw 0x0004 Offset= 0x00400010 0x10010000 0x00000010 Línea 5= realiza salto el valor
$s2, 0x0000000 0x00400020 condicional 2=
4 = 0x20
4($t6)
0x00400010
Offset= 0x0000000 PC+4= $t1= 0 Línea 2*4= Línea 3 + Línea 6 X
beq 0x0007 7 0x00400018 0x0000001C Línea 5= debido a
0x00400034 salto

3
Prácticas de Estructura de Computadores –Grado en Ingeniería Informática Curso 2017/18

$t1, condicional
$0, =
suma 0x00400034

b) Suponiendo los siguientes tiempos para las unidades funcionales:


 Sumadores y ALU: 200 ps
 Fichero de registros: 300 ps
 Memoria: 500 ps
 Signo extendido: 50 ps
 Desplazador: 50 ps
 Lectura / escritura en PC: 50 ps

b1) ¿Cuál sería el tiempo mínimo necesario para ejecutar la instrucción de la línea 13 en
un ciclo? Razona la respuesta.
CAMINO 1: PC+MEMORIA+REGISTRO+ALU+PC
50+500+300+200+50 = 1100 ps

CAMINO 2: PC+MEMORIA+SIGNO EXTEND+DESPLAZ+SUMADOR+PC


50+500+50+50+200+50 = 900 ps

b2) ¿Y para la instrucción de la línea 11? Razona la respuesta.


PC+MEMORIA+REGISTRO+ALU+DATOS+REGISTROS
50+500+300+200+500+300 = 1850 ps

b3) Si el ciclo de reloj se corresponde con el tiempo mayor necesario para ejecutar las
instrucciones. ¿Cuál es la duración del ciclo de reloj?
Operación más larga lw = 1850 ps // Como un ciclo es una instrucción el ciclo más
largo es 1850 ps.
(La frecuencia será de 540’5 MHz) // F= 1/1850x10^ (-12) = 540540540’540… Hz =
540’5 MHz

También podría gustarte