Вы находитесь на странице: 1из 11

UNIVERSIDAD DE CONCEPCIN

FACULTAD DE INGENIERA
DEPARTAMENTO DE INGENIERA ELCTRICA

TAREA 3

ARQUITECTURA DE COMPUTADORAS

ALUMNOS

CAMILO IGNACIO ARRIAGADA JARA


DIEGO ALONSO JARA CARDENAS

DOCENTE
SR. MIGUEL ERNESTO FIGUEROA TORRES

CONCEPCIN, 06 DE MAYO DE 2015.

DEPARTAMENTO INGENIERA ELCTRICA


FACULTAD DE INGENIERA
UNIVERSIDAD DE CONCEPCIN

TABLA DE CONTENIDOS
1. PROBLEMA NMERO 1 ....................................................................................................................................... 3,4
2. PROBLEMA NMERO 2 ....................................................................................................................................... 5,6
3. PROBLEMA NMERO 3 ....................................................................................................................................... 7,8
4. PROBLEMA NMERO 3 ....................................................................................................................................... 7,8

DEPARTAMENTO INGENIERA ELCTRICA


FACULTAD DE INGENIERA
UNIVERSIDAD DE CONCEPCIN

PROBLEMA 1
Considere los tiempos de operacin para las unidades funcionales del procesador MIPS uni-ciclo:
Acceso a memoria: 250 ps.
Operaciones en la ALU y sumadores: 250 ps.
Lectura y escritura en los bancos de registros: 200 ps.

Los retardos a travs de los multiplexores, unidad de extensin de signo, registros individuales y conexionado
son despreciables. El procesador soporta el subconjunto de instrucciones visto en clases:

ALU tipo - R.
ALU tipo - I.
lw (load word).
sw (store word).
beq (branch on equal).
j (jump).
jal (jump and link).

A) Calcule el mnimo perodo de reloj con el cual este procesador puede operar.
El periodo mnimo de reloj est condicionado a la operacin que tenga mayor periodo, debido a esto se
calculan los tiempos de cada instruccin.
Se consideran las siguientes abreviaciones para cada parte de unidad funcional:

Fetch = F, 250 [ps].


Banco de registros = BR, 200 [ps].
Operacin ALU = ALU, 250 [ps].
Memoria= MEM, 250 [ps].

As entonces obtenemos los siguientes tiempos:


Etapas

Tipo
Instruccin

BR

ALU

ALU tipo R

900

ALU tipo I

900

Lw

1150

Sw

Beq

J al

MEM

BR

ALU

MEM

Tiempo
Total [ps]

950
700
250
450

As entonces el tiempo mnimo de la CPU debe ser

T 1150 ps

DEPARTAMENTO INGENIERA ELCTRICA


FACULTAD DE INGENIERA
UNIVERSIDAD DE CONCEPCIN

Para reducir el perodo de reloj del procesador, se propone eliminar de la direccin efectiva utilizada por
las instrucciones (lw/sw) la constante de desplazamiento de 16 bits. As, la direccin de memoria de datos
utilizada por estas instrucciones queda especificada nicamente por el contenido del registro $rs. Para
aquellas instrucciones que necesitan utilizar un desplazamiento, se utiliza una instruccin addi seguida de
un (lw/sw). Por ejemplo, la instruccin original lw $t7, 120($t5) se reemplaza por:
addi $a0, $t5, 120
lw $t7, ($a0)
B) Muestre las secciones de datos y control modificadas para soportar esta nueva versin del
procesador.

Figura 1. Seccin de datos procesador uniciclo modificada.

ALU - R

ALU - I

Lw

Sw

Beq

Jal

RegDst
RegWr
ExtOP

01
1
X

00
1
0

00
1
1

X
0
1

X
0
X

X
0
X

10
1
X

ALUsrc
MemWr

0
0

1
0

1
0

1
1

0
0

X
0

X
0

Control
MemtoReg

X
01

X
01

0
10

1
X

X
X

X
X

X
00

nPC_sel
ALUctr

00
Add

00
Add

00
Add

00
Add

01
Sub

10
X

10
X

Tabla 1. Seccin de control.

DEPARTAMENTO INGENIERA ELCTRICA


FACULTAD DE INGENIERA
UNIVERSIDAD DE CONCEPCIN

C) Si el 30% de las instrucciones ejecutadas por el procesador en un benchmark dado son (lw/sw), y la
mitad de stos requieren un desplazamiento distinto de cero en la versin original del procesador,
cul es la aceleracin del procesador modificado sobre el original?
DESARROLLO

# instruccionesi CPI i Tclock


i
S
# instrucciones f CPI f Tclock
f

Se considera un total de 100 instrucciones, de las cuales 30 son lw, y de estas 15 requieren un desplazamiento
distinto de cero, luego hay 15 instrucciones que se dividen en una addi y un lw sin desplazamiento.
As entonces;
# instrucciones # instrucciones lw con desplazamiento

# instrucciones lw fraccionadas
# instrucciones no lw
# instrucciones = 70 15 152 115
Luego se calcula la aceleracin, para esto se considera que CPI tanto final como inicial es 1, dado que el
procesador es uniciclo, entonces:

# instruccionesi CPI i Tclock


i
S
# instrucciones f CPI f Tclock
f

1001150

115950

Finalmente tenemos que

S 1.05263
D) Qu porcentaje mximo de los (lw/sw) deberan requerir un desplazamiento distinto de cero para
que el procesador modificado tenga un mejor desempeo que el original?
DESARROLLO
Se considera la aceleracin del procesador original igual a 1, luego se busca una aceleracin mayor que esta.

# instruccionesi CPI i Tclock


i
1
# instrucciones f CPI f Tclock
f

1001150

# instrucciones f 121
# instrucciones f 950

Esto significa que de un total de 100 instrucciones, de las cuales 30 son lw y de estos 21 pueden utilizar la
modificacin, esto es el 70% de los lw.

DEPARTAMENTO INGENIERA ELCTRICA


FACULTAD DE INGENIERA
UNIVERSIDAD DE CONCEPCIN

PROBLEMA 2
Se desea agregar la instruccin store max al procesador uniciclo. La instruccin utiliza el formato tipo-I:
stmax $rt, Imm16, ($rs)
Esta instruccin compara el contenido del registro $rt con la constante Imm16 (extendida en signo), y
almacena el mayor valor en la direccin indicada por el registro $rs. La descripcin RTL de la instruccin es:
If (R[rt] >= Sx(Imm16))
Mem [R[rs]] R[rt]
Else
Mem [R[rs]] Sx(Imm16)
Donde Sx() denomina la extensin de signo. Indique modificaciones necesarias a la seccin de datos (utilice
diagrama adjunto), a la tabla de seales de control, y al PLA del control principal. Realice el mnimo de
modificaciones necesarias para implementar esta instruccin. No se pueden agregar nuevos registros,
sumadores, ALUs o comparadores.
DESARROLLO
Lo ideal es usar la operacin (slt) la cual compara los elementos ingresados a la ALU y retorna un 1 si el
elemento del bus A es mayor al otro elemento ingresado y un 0 en caso contrario. Ya que deseamos ingresar a
la ALU el registro Rt y la constante, en donde ambos por defecto van por el bus B, de usara el MUX1 para
hacer llegar el registro Rt al bus A. Este multiplexor seleccionara la entrada a la ALU entre la el registro Rt o
el registro Rs, que por defecto va por el bus A.
Como no podemos usar directamente esta operacin, se utilizara la ALU para realizar una resta entre los
elementos. Si el resultado resulta ser positivo, el contenido del registro que va por el bus A ser mayor a la
constante que va por el bus B, mientras que si el resultado es negativo, el contenido del registro ser menor a
la constante. El signo del resultado de la resta, se puede verificar tomando en cuenta el bit ms significativo
de este, lo cual hacemos con un bus destinado a esta operacin. En este caso, si el resultado es negativo el bit
ms significativo ser 1, mientras que si el resultado es positivo bit ms significativo es 0. Asi, podemos
hacer la siguiente tabla:

El bit ms significativo, al indicar cual elemento es mayor, se usa como seal de control para un segundo
multiplexor que eligiera el elemento que se guardara en la direccin de memoria Rs.
Para finalizar, se debe pasar Rs como direccin a la memoria de datos para guardar en esta direccin el
elemento mayor. Esto se logra con MUX2 que elige entre el ingreso normal de la direccin a la memoria de
datos o el ingreso de Rs.
Cabe destacar que se eligi poner el registro Rt en la entrada del bus A a la ALU ya que si al restar el
resultado es cero, es decir los elementos son iguales, tenemos que el elemento a guardar es el registro Rt, lo
cual se cumple a la perfeccin en el esquema modificado. La seccin de datos queda como se muestra a
continuacin, tras haber realizado los cambios anteriormente mencionados:

DEPARTAMENTO INGENIERA ELCTRICA


FACULTAD DE INGENIERA
UNIVERSIDAD DE CONCEPCIN

Figura 2. Seccin de datos procesador multiciclo modificada.

DEPARTAMENTO INGENIERA ELCTRICA


FACULTAD DE INGENIERA
UNIVERSIDAD DE CONCEPCIN

PROBLEMA 3
Deseamos agregar soporte para algoritmos de ordenamiento al procesador multiciclo.
La nueva instruccin tiene el siguiente formato
sort Imm16($rs), Imm16($rt)
La instruccin compara el contenido de las posiciones de memoria indicadas por las dos direcciones en la
instruccin (M[rs+Imm16] y M[rt+Imm16]), e intercambia sus contenidos en caso de que el valor de la
primera sea menor que el de la segunda.
Notar que la constante Imm16 es la misma para ambas direcciones. La descripcin RT lgica es:
SORT: If (Mem [ R[rs] + Sext(Imm16) ] Mem [ R[rt] + Sext(Imm16) ]
Mem [ R[rs] + Sext(Imm16) ] <--> Mem [ R[rt] + Sext(Imm16) ]
El smbolo (<-->) indica intercambio de valores. Recuerde que la descripcin RTL lgica es slo una
descripcin funcional, es decir, indica qu hace la instruccin, no cmo lo hace ni en cuntos ciclos.
Su misin es implementar la instruccin sort en un mnimo nmero de ciclos sin afectar el perodo de reloj
del procesador original y sin agregar nuevas unidades funcionales (sumadores, ALUs, etc). S se permite
agregar registros, multiplexores y buses, pero stos deben minimizarse. Recuerde que el resto de las
instrucciones debe seguir funcionando sin modificaciones.
Se recomienda utilizar una transicin condicional de estado en base a la comparacin de ambos valores. O
sea, primero leer ambos valores de memoria y compararlos.
Luego, si el primer valor es igual o mayor al segundo, el siguiente estado es el FETCH de la siguiente
instruccin. De lo contrario, el siguiente estado es el resto de la instruccin que realiza la escritura
intercambiada de los valores en memoria.
Notar que esta transicin condicional de estados ya se realiza tras el ciclo DEC, donde dependiendo del valor
del cdigo de operacin de la instruccin el siguiente estado corresponde a una de distintas etapas EX (ver el
diagrama de estados mostrado en clases):
A) Entregue una descripcin a nivel de transferencia de registros (RTL) fsica para su implementacin.

DEPARTAMENTO INGENIERA ELCTRICA


FACULTAD DE INGENIERA
UNIVERSIDAD DE CONCEPCIN

B) Muestre la nueva seccin de datos de para implementar la instruccin. Destaque cualquier seal de
control nueva o modificacin a una seal de control existente.

Figura 3. Seccin de datos procesador multiciclo modificada.

C) Muestre el nuevo diagrama de control para la seccin de datos del procesador. Para la nueva
instruccin, indique el valor asumido por las seales de control para cada ciclo de ejecucin de la
instruccin (incluyendo el siguiente estado).

ALU - R

ALU - I

Lw

Sw

Beq

Jal

RegDst
RegWr
ExtOP
ALUsrc
MemWr

01
1
X
0
0

00
1
0
1
0

00
1
1
1
0

X
0
1
1
1

X
0
X
0
0

X
0
X
X
0

10
1
X
X
0

Control
MemtoReg

X
01

X
01

0
10

1
X

X
X

X
X

X
00

nPC_sel
ALUctr

00
Add

00
Add

00
Add

00
Add

01
Sub

10
X

10
X

Tabla 2. Seccin de control.

DEPARTAMENTO INGENIERA ELCTRICA


FACULTAD DE INGENIERA
UNIVERSIDAD DE CONCEPCIN

PROBLEMA 4
Deseamos agregar soporte para la creacin de marcos de activacin de procedimientos (stack frames) al
procesador multiciclo. La nueva instruccin tiene el siguiente formato
callr $rs, imm16
La instruccin salta a la direccin indicada por el contenido del registro $rs, y crea un marco de activacin
del tamao indicado por la constante imm16, almacenando la direccin de retorno y el valor de $fp en el
marco de activacin, y modificando los valores de $fp y $sp para crear el marco de activacin. La descripcin
RT lgica es:
CALLR: Mem [ R[sp] - 4 ] R[fp]
Mem [ R[sp] - 8 ] PC+4
R[fp] R[sp]-4
R[sp] R[sp] Imm16
PC R[rs]
Recuerde que la descripcin RTL lgica es slo una descripcin funcional, es decir, indica qu hace la
instruccin, no cmo lo hace ni en cuntos ciclos.
Su misin es implementar la instruccin callr en un mnimo nmero de ciclos sin afectar el perodo de reloj
del procesador original y sin agregar nuevas unidades funcionales (sumadores, ALUs, etc). S se permite
agregar registros, multiplexores y buses, pero stos deben minimizarse. Recuerde que el resto de las
instrucciones debe seguir funcionando sin modificaciones:
A) Entregue una descripcin a nivel de transferencia de registros (RTL) fsica para su implementacin.

10

DEPARTAMENTO INGENIERA ELCTRICA


FACULTAD DE INGENIERA
UNIVERSIDAD DE CONCEPCIN

B) Muestre la nueva seccin de datos para implementar la instruccin. Destaque cualquier seal de

control nueva o modificacin a una seal de control existente.

Figura 4. Seccin de datos procesador multiciclo modificada.

C) Indique el valor asumido por las seales de control para cada ciclo de ejecucin de la instruccin.

ALU - R

ALU - I

Lw

Sw

Beq

Jal

RegDst
RegWr
ExtOP
ALUsrc
MemWr
Control
MemtoReg
nPC_sel

01
1
X
0
0
X
01
00

00
1
0
1
0
X
01
00

00
1
1
1
0
0
10
00

X
0
1
1
1
1
X
00

X
0
X
0
0
X
X
01

X
0
X
X
0
X
X
10

10
1
X
X
0
X
00
10

ALUctr

Add

Add

Add

Add

Sub

Tabla 3. Seccin de control.

11

Вам также может понравиться