Tarea Nº3

11
 UNIVERSIDAD DE CONCEPCIÓN FACULTAD DE INGENIERÍA DEPARTAMENTO DE INGENIERÍA ELÉCTRICA TAREA 3 A A R R Q QU UIT T E EC T T U U R R A A D DE E  COM MP U UT T A A D DOR R A AS  ALUMNOS CAMILO IGNACIO ARRIAGADA JARA DIEGO ALONSO JARA CARDENAS DOCENTE SR . MIGUEL ERNESTO FIGUEROA TORRES CONCEPCIÓN, 06 DE MAYO DE 2015.

description

cvzxcvcxvcxv

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..