Tarea Nº3
-
Upload
karlita-altamirano -
Category
Documents
-
view
6 -
download
0
description
Transcript of Tarea Nº3
-
UNIVERSIDAD DE CONCEPCIN FACULTAD DE INGENIERA
DEPARTAMENTO DE INGENIERA ELCTRICA
TAREA 3
AARRQQUUIITTEECCTTUURRAA DDEE CCOOMMPPUUTTAADDOORRAASS
ALUMNOS
CAMILO IGNACIO ARRIAGADA JARA
DIEGO ALONSO JARA CARDENAS
DOCENTE
SR. MIGUEL ERNESTO FIGUEROA TORRES
CONCEPCIN, 06 DE MAYO DE 2015.
-
2
DDEEPPAARRTTAAMMEENNTTOO IINNGGEENNIIEERRAA EELLCCTTRRIICCAA
FFAACCUULLTTAADD DDEE IINNGGEENNIIEERRAA
UUNNIIVVEERRSSIIDDAADD DDEE CCOONNCCEEPPCCIINN
TTAABBLLAA DDEE CCOONNTTEENNIIDDOOSS 11.. PPRROOBBLLEEMMAA NNMMEERROO 11 .............................................................................................................................................................................................................................................................................. 33,,44
22.. PPRROOBBLLEEMMAA NNMMEERROO 22 .............................................................................................................................................................................................................................................................................. 55,,66
33.. PPRROOBBLLEEMMAA NNMMEERROO 33 .............................................................................................................................................................................................................................................................................. 77,,88
44.. PPRROOBBLLEEMMAA NNMMEERROO 33 .............................................................................................................................................................................................................................................................................. 77,,88
-
3
DDEEPPAARRTTAAMMEENNTTOO IINNGGEENNIIEERRAA EELLCCTTRRIICCAA
FFAACCUULLTTAADD DDEE IINNGGEENNIIEERRAA
UUNNIIVVEERRSSIIDDAADD DDEE CCOONNCCEEPPCCIINN
PPRROOBBLLEEMMAA 11
Considere los tiempos de operacin para las unidades funcionales del procesador MIPS uni-ciclo:
AAcccceessoo aa mmeemmoorriiaa:: 225500 ppss.. OOppeerraacciioonneess eenn llaa AALLUU yy ssuummaaddoorreess:: 225500 ppss.. LLeeccttuurraa yy eessccrriittuurraa eenn llooss bbaannccooss ddee rreeggiissttrrooss:: 220000 ppss..
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:
AALLUU ttiippoo -- RR.. AALLUU ttiippoo -- II.. llww ((llooaadd wwoorrdd)).. ssww ((ssttoorree wwoorrdd)).. bbeeqq ((bbrraanncchh oonn eeqquuaall)).. jj ((jjuummpp)).. jjaall ((jjuummpp aanndd lliinnkk))..
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:
FFeettcchh == FF,, 225500 [[ppss]].. BBaannccoo ddee rreeggiissttrrooss == BBRR,, 220000 [[ppss]].. OOppeerraacciinn AALLUU == AALLUU,, 225500 [[ppss]].. MMeemmoorriiaa== MMEEMM,, 225500 [[ppss]]..
As entonces obtenemos los siguientes tiempos:
As entonces el tiempo mnimo de la CPU debe ser
TTiippoo
IInnssttrruucccciinn
EEttaappaass TTiieemmppoo
TToottaall [[ppss]] FF BBRR AALLUU MMEEMM FF BBRR AALLUU MMEEMM
AALLUU ttiippoo RR XX XX XX XX 990000
AALLUU ttiippoo II XX XX XX XX 990000
LLww XX XX XX XX XX 11115500
SSww XX XX XX XX 995500
BBeeqq XX XX XX 770000
JJ XX 225500
JJaall XX XX 445500
1150T ps
-
4
DDEEPPAARRTTAAMMEENNTTOO IINNGGEENNIIEERRAA EELLCCTTRRIICCAA
FFAACCUULLTTAADD DDEE IINNGGEENNIIEERRAA
UUNNIIVVEERRSSIIDDAADD DDEE CCOONNCCEEPPCCIINN
Para reducir el perodo de reloj del procesador, se propone eliminar de la direccin efectiva utilizada por las instrucciones ((llww//ssww)) 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 ((llww//ssww)). Por ejemplo, la instruccin original lw $t7, 120($t5) se reemplaza por:
aaddddii $$aa00,, $$tt55,, 112200
llww $$tt77,, (($$aa00))
B) Muestre las secciones de datos y control modificadas para soportar esta nueva versin del
procesador.
FFiigguurraa 11.. SSeecccciinn ddee ddaattooss pprroocceessaaddoorr uunniicciicclloo mmooddiiffiiccaaddaa..
AALLUU -- RR AALLUU -- II LLww SSww BBeeqq JJ JJaall
RReeggDDsstt 0011 0000 0000 XX XX XX 1100
RReeggWWrr 11 11 11 00 00 00 11
EExxttOOPP XX 00 11 11 XX XX XX
AALLUUssrrcc 00 11 11 11 00 XX XX
MMeemmWWrr 00 00 00 11 00 00 00
CCoonnttrrooll XX XX 00 11 XX XX XX
MMeemmttooRReegg 0011 0011 1100 XX XX XX 0000
nnPPCC__sseell 0000 0000 0000 0000 0011 1100 1100
AALLUUccttrr AAdddd AAdddd AAdddd AAdddd SSuubb XX XX
TTaabbllaa 11.. SSeecccciinn ddee ccoonnttrrooll..
-
5
DDEEPPAARRTTAAMMEENNTTOO IINNGGEENNIIEERRAA EELLCCTTRRIICCAA
FFAACCUULLTTAADD DDEE IINNGGEENNIIEERRAA
UUNNIIVVEERRSSIIDDAADD DDEE CCOONNCCEEPPCCIINN
C) Si el 30% de las instrucciones ejecutadas por el procesador en un benchmark dado son ((llww//ssww)), 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?
DDEESSAARRRROOLLLLOO
i
f
i i clock
f f clock
# instrucciones CPI TS
# instrucciones CPI T
Se considera un total de 100 instrucciones, de las cuales 30 son llww, y de estas 15 requieren un desplazamiento
distinto de cero, luego hay 15 instrucciones que se dividen en una aaddddii y un llww sin desplazamiento.
As entonces;
# instrucciones # instrucciones con desplazamiento
# instrucciones fraccionadas
# instrucci
lw
lw
lwones no
= 70 15 15 2 115#instrucciones
Luego se calcula la aceleracin, para esto se considera que CPI tanto final como inicial es 1, dado que el
procesador es uniciclo, entonces:
1001150
115950
i
f
i i clock
f f clock
# instrucciones CPI T S
# instrucciones CPI T
Finalmente tenemos que
D) Qu porcentaje mximo de los ((llww//ssww)) deberan requerir un desplazamiento distinto de cero para
que el procesador modificado tenga un mejor desempeo que el original?
DDEESSAARRRROOLLLLOO
Se considera la aceleracin del procesador original igual a 1, luego se busca una aceleracin mayor que esta.
10011501 121
950
i
f
i i clock
f
f f clock f
# instrucciones CPI T # instrucciones
# instrucciones CPI T # instrucciones
Esto significa que de un total de 100 instrucciones, de las cuales 30 son llww y de estos 21 pueden utilizar la
modificacin, esto es el 70% de los llww.
1 05263S .
-
6
DDEEPPAARRTTAAMMEENNTTOO IINNGGEENNIIEERRAA EELLCCTTRRIICCAA
FFAACCUULLTTAADD DDEE IINNGGEENNIIEERRAA
UUNNIIVVEERRSSIIDDAADD DDEE CCOONNCCEEPPCCIINN
PPRROOBBLLEEMMAA 22
Se desea agregar la instruccin store max al procesador uniciclo. La instruccin utiliza el formato tipo-I:
ssttmmaaxx $$rrtt,, IImmmm1166,, (($$rrss))
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:
IIff ((RR[[rrtt]] >>== SSxx((IImmmm1166))))
MMeemm [[RR[[rrss]]]] RR[[rrtt]] EEllssee
MMeemm [[RR[[rrss]]]] SSxx((IImmmm1166))
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.
DDEESSAARRRROOLLLLOO Lo ideal es usar la operacin ((sslltt)) 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:
-
7
DDEEPPAARRTTAAMMEENNTTOO IINNGGEENNIIEERRAA EELLCCTTRRIICCAA
FFAACCUULLTTAADD DDEE IINNGGEENNIIEERRAA
UUNNIIVVEERRSSIIDDAADD DDEE CCOONNCCEEPPCCIINN
FFiigguurraa 22.. SSeecccciinn ddee ddaattooss pprroocceessaaddoorr mmuullttiicciicclloo mmooddiiffiiccaaddaa..
-
8
DDEEPPAARRTTAAMMEENNTTOO IINNGGEENNIIEERRAA EELLCCTTRRIICCAA
FFAACCUULLTTAADD DDEE IINNGGEENNIIEERRAA
UUNNIIVVEERRSSIIDDAADD DDEE CCOONNCCEEPPCCIINN
PPRROOBBLLEEMMAA 33
Deseamos agregar soporte para algoritmos de ordenamiento al procesador multiciclo.
La nueva instruccin tiene el siguiente formato
ssoorrtt IImmmm1166(($$rrss)),, IImmmm1166(($$rrtt))
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:
SSOORRTT:: IIff ((MMeemm [[ RR[[rrss]] ++ SSeexxtt((IImmmm1166)) ]] MMeemm [[ RR[[rrtt]] ++ SSeexxtt((IImmmm1166)) ]] MMeemm [[ RR[[rrss]] ++ SSeexxtt((IImmmm1166)) ]] MMeemm [[ RR[[rrtt]] ++ SSeexxtt((IImmmm1166)) ]]
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 ssiinn aaggrreeggaarr nnuueevvaass uunniiddaaddeess ffuunncciioonnaalleess ((ssuummaaddoorreess,, AALLUUss,, eettcc)).. 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.
-
9
DDEEPPAARRTTAAMMEENNTTOO IINNGGEENNIIEERRAA EELLCCTTRRIICCAA
FFAACCUULLTTAADD DDEE IINNGGEENNIIEERRAA
UUNNIIVVEERRSSIIDDAADD DDEE CCOONNCCEEPPCCIINN
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.
FFiigguurraa 33.. SSeecccciinn ddee ddaattooss pprroocceessaaddoorr mmuullttiicciicclloo mmooddiiffiiccaaddaa..
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).
AALLUU -- RR AALLUU -- II LLww SSww BBeeqq JJ JJaall
RReeggDDsstt 0011 0000 0000 XX XX XX 1100
RReeggWWrr 11 11 11 00 00 00 11
EExxttOOPP XX 00 11 11 XX XX XX
AALLUUssrrcc 00 11 11 11 00 XX XX
MMeemmWWrr 00 00 00 11 00 00 00
CCoonnttrrooll XX XX 00 11 XX XX XX
MMeemmttooRReegg 0011 0011 1100 XX XX XX 0000
nnPPCC__sseell 0000 0000 0000 0000 0011 1100 1100
AALLUUccttrr AAdddd AAdddd AAdddd AAdddd SSuubb XX XX
TTaabbllaa 22.. SSeecccciinn ddee ccoonnttrrooll..
-
10
DDEEPPAARRTTAAMMEENNTTOO IINNGGEENNIIEERRAA EELLCCTTRRIICCAA
FFAACCUULLTTAADD DDEE IINNGGEENNIIEERRAA
UUNNIIVVEERRSSIIDDAADD DDEE CCOONNCCEEPPCCIINN
PPRROOBBLLEEMMAA 44
Deseamos agregar soporte para la creacin de marcos de activacin de procedimientos (stack frames) al
procesador multiciclo. La nueva instruccin tiene el siguiente formato
ccaallllrr $$rrss,, iimmmm1166
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:
CCAALLLLRR:: MMeemm [[ RR[[sspp]] -- 44 ]] RR[[ffpp]] MMeemm [[ RR[[sspp]] -- 88 ]] PPCC++44 RR[[ffpp]] RR[[sspp]]--44 RR[[sspp]] RR[[sspp]] IImmmm1166 PPCC RR[[rrss]]
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 ssiinn aaggrreeggaarr nnuueevvaass uunniiddaaddeess ffuunncciioonnaalleess ((ssuummaaddoorreess,, AALLUUss,, eettcc)). 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.
-
11
DDEEPPAARRTTAAMMEENNTTOO IINNGGEENNIIEERRAA EELLCCTTRRIICCAA
FFAACCUULLTTAADD DDEE IINNGGEENNIIEERRAA
UUNNIIVVEERRSSIIDDAADD DDEE CCOONNCCEEPPCCIINN
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.
FFiigguurraa 44.. SSeecccciinn ddee ddaattooss pprroocceessaaddoorr mmuullttiicciicclloo mmooddiiffiiccaaddaa..
C) Indique el valor asumido por las seales de control para cada ciclo de ejecucin de la instruccin.
AALLUU -- RR AALLUU -- II LLww SSww BBeeqq JJ JJaall
RReeggDDsstt 0011 0000 0000 XX XX XX 1100
RReeggWWrr 11 11 11 00 00 00 11
EExxttOOPP XX 00 11 11 XX XX XX
AALLUUssrrcc 00 11 11 11 00 XX XX
MMeemmWWrr 00 00 00 11 00 00 00
CCoonnttrrooll XX XX 00 11 XX XX XX
MMeemmttooRReegg 0011 0011 1100 XX XX XX 0000
nnPPCC__sseell 0000 0000 0000 0000 0011 1100 1100
AALLUUccttrr AAdddd AAdddd AAdddd AAdddd SSuubb XX XX
TTaabbllaa 33.. SSeecccciinn ddee ccoonnttrrooll..