Arquitectura De Computadores
2° TESTE
Data: 2-12-2010 Ano Lectivo: 2010/2011 Duração: 2hOOINFORMAÇÕES GERAIS
Identifique todas as folhas com o nome e número. Responda no espaço delimitado a seguir a cada questão. Utilize o verso da página, onde se encontra a pergunta, para rascunho ou para espaço adicional.
UNIDADE DE CONTROLO
Considere o seguinte diagrama do MIPS.PC Add \A . . ALU ^^ /Addresult /CKi*t\
-rõ>
Ilustração l - Diagrama do MIPS
ALU control
0000
0001
0010
0110
0111
1100
Function
AND
OR
add
subtract
set-on-less-than
NOR
Opcode ALUOp
Iw/sw 00
beq
01
R-type 10
>0
c) Sr7 -» 23($r5) d) If ($r5=r^$r3) $pc <- $pc e) $r7 *-::
12 a) b) c) d) e) RegDst 1 / . —-:
Branch0
o
1
Q MemRead f9) •• MemToReg0
ô
XI ALUOp • -j r\s\ •'"• |0/3
MemWriter?
6> 1 . ALUSrc /\ ô RegWrite l0
ALUContoooo
0110 &01&'
'
/2. j[3 Vai] Indique como poderia modificar esta arquitectura de forma a eleminar o somador de cima à direita usando o somador da ALU para somar o offset ao PC durante as instruções de salto, mas adicionando mais um comparador. Note que nas instruções de salto na ALU era apenas efectuado uma comparação entre o valor dos dois registos, sendo somado um valor ao PC no caso em que os dois registos são iguais (be). Faça apenas um esquema de princípio indicando as alterações relevantes.
3. [2 Vai] Indique como poderia obter o sinal RegWrite a partir dos restantes sinais.
- 6>
-f
(Pv
UNIDADE DE CONTROLO MICROPROGRAMADA
Z G N Z V C 1 Duuuu
J I I , 111 II
N U U l P P l T T T M F M R H M DKTAFWTH MS Actlon Increment CAR Load CAR li C = 1, load CAR;else irjcremení CAR U V = 1, load CAR; else iocrement CAR H Z = 1, load CAR; else increment C4.R lftf=],loadCAR; else increment CAR
U C = 0, load CAR;
else increment CAR [f Z = 0, load CAR, else increment CAR
MC IL PI
Symbollc Symbollc Symbollc Notatlon Code Select Notatlon Actlon Notatlon Action CNT 000 NA NXA No load NU No load NXT 00] Opcode OPC Load instr. LDI Increment PC BC 010 BV 011 BZ 100 BN 101 BNC 110 BNZ 111 PL Symbollc Symbollc Notatlon Actlon Notatlon Code NLP Nolcad NLP 0 INP Load PC LDP 1
MM
Select Salact Solect R[DR] fl[SA] R[SB)
RS Ri RS
Solect Code Funcllon Register 0 F~A Cocstint 1 F-A+l F=A+B F = A +B+1 F=A+B F=A+B + \
Coda Selact Funcflon 00000 FnUt Nowiite<NW) 00001 Data In Write (WR) 00010 00011 00100 00101
Selact Functlon Coda Address Nowrite{NW) 0 PC Write (WR) í
4. [2 Vai] Complete as linhas da memória de controlo de modo a definir o conjunto de micro-instruções (IF, EXO, ...) necessárias à execução das seguintes instruções. Assuma que tem três registos auxiliares R8, R9, e que pode utilizar o registo D como origem sendo tal seleccionado a partir do valor de T para cada um dos barramentos, TA, TB e TD; T=00 -> Rx, T=01 H> R8, T=10 -» R9 e T=l l -» RD,. Instrução MOVI M[RA], M[RB] NOR RD, RA, RB SUBM M[K],RB Descrição M[RA] <-M[RB] RD*- RA NOR RB M[K]<- RB
ã*
-^^===- l — í- f^nteítdn pãrnãtrlfl nuTlfóna fte ròíth
Kndcrcço IF EXO MOV10 MOV11 MOV12 NORO NOR1 SUBMO SUBM1 SUBM2 NA* •9S**~ • ' ' . 1 P MS
< W*
,v»
*
••
j / r ' ./•*" > / •*" C /" :c/^r
:[Af>0 MC - — 2< , 'V" 'M*
IL 1 ^ C? r^ CP - • C^1 O PI .,, 0 ' ó? I'L <^»r9
^3c>
]
<5? C? ^TD** •*— ._ÊJ2
• D
>
.*• -"
—
TA** . — (M;n
Q *- —£M
TB** «p« . Sé
<9
—
O
MB . • _. Q — •3
r)
FS^
/l
, -
rf.
:B
-MD ™= ^_
o
/^^J
RW C^i>
- •
-*a>
-i
-/
r?
MMPc
-c>
,c?
MW<s>
1-O
"T
-t
•olo:*NA = Next Address (utilizar mnemónica para indicar o próximo endereço)
**Nos campos TD, TA e TB indique se utiliza um dos registos auxiliar R8, R9 ou RD ou o registo indicado na tírução.
^Vãlmfetende-se implementar uma instrução Block Move (MB), que move RD palavras dos endereços RA a RA+K-1 ndereços RB a RB+K-1. Assuma que têm dois registos auxiliares e pode usar o registo D como origem como nas perguntas anteriores e note que vai necessitar de modificar o registo^RD. Apresente um fluxograma ASM correspondente à sua concretização.
FLUXOGRAMA ASJ
PIPELINE
Inatructicn decadar i 1r 1r ' ' \ • j i i + t i MA MB AÃ BA CS SH M r * AÃ 32x32 RagiatarSIa with F» = 0 A ckfi B dataif_
DO F. Arider t BnA ,,! ' -J!t_J BB PS MW R3 BH V' RAA-4-FS— £** 35*-0*-T « — *.
ir ir A B Modifad function unrt F^=JLJ i * *
fr-ei / Addraaa Data mamory Dataout DBta " C '-. WB Registar íila with RO = O WB6. [2 Vai] Considere que tem uma implementação do processador apresentado com implementação de stalls nas dependências de dados e branch prediction not taken. Represente o digrama de execução com os estágios em que se encontra cada uma das instruções do seguinte código.
ADD Code SOOOh MOV RI, 2 SOOlh ,*BZR1,L1 8002h ^ INC R2, R2 8003h LI: \*>BNZR1,L2 8004h INC R2, R2 8005h L2: ^> ADD R2, R2, RI INST s OV
\-^':/
/AJC.^•j/O
IP
01
CLK&of
Í F
/
KnÍ2
2J^iS
' f F)
^/
'
306
lj)c?pf f
4 g-yD^P
\ P
5 ^3Pe ?
'• '
j
6ofi.
ex
;' : 7 A-3£ "$< 8 *^ 9 10 11^V
9
12 $) ( 13 " d.^
^
14o
,y 157. [2 Vai] Considere que pretende executar um bloco de código de 300 instruções sem conflitos de dados mas com conflitos de controlo de controlo no pipelinc-anresentado. Assuma que existe um conflito de controlo em que é necessário esvaziar o pipeline em cada 30 instruções^ Oramos ciclos de relógio são necessários para executar o código?
[2 Vai] Indiqu^çomo poderia reordenar o seguinte cócngo_xie_assembler linear para que este e execute correctamente na arquitectura apresentada, sem utilizar NOPs.
INC í LD R6, í LD R2, R5 ADDR3,Ri;RÍ BZ R7, L3
/A/C
L D
/ « P P[2 Vai] Considere que: 1) O processador apresentado tem um consumo estático de 90mW e um consumo dinâmico de dinâmico de 120mW quando a operar a 270MHz, sendo o consumo total igual ao estático mais o dinâmico; 2) O processador sem pipeline funciona a uma frequência máxima de 70MHz, 3) que o consumo dinâmico é proporcional à frequência, 4) que é possível aproveitar usar todos os estágios do pipeline em qualquer ciclo de relógio, 5) Que o processador sem pipeline tem uma área cerca 7% inferior à da versão sem pipeline e que os dois tipos de consumo são proporcionais à área. Qual é o consumo por MHz para a versão com pipeline e sem pipeline do processador?