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

3ª Lista de Arquitetura de Computadores

3ª Lista de Exercícios de Arquitetura de Computadores


Questões
1. Abaixo, são mostradas duas versões de um mesmo programa, no sentido em que eles
produzem o mesmo resultado. A primeira versão do programa é executada em um
processador RISC puro, que possui uma grande quantidade de registradores. A
segunda versão é executada em um processador CISC puro, que possui apenas um
registrador de propósito geral, denominado Acumulador. Determine para cada caso
qual o tráfego total (em B) envolvendo a Memória Principal, considerando que as
instruções e seus operandos têm 4 B de tamanho. Discrimine o tráfego total (M) em
termos do tráfego de instruções (I) e do tráfego de operandos (O).

Instrução Significado
1ª versão: processador RISC puro
load r1,[940] r1 ← Mem[940]
load r2,[941] r2 ← Mem[941]
load r3,[942] r3 ← Mem[942]
mult r1,r1 r1 ← r1 x r1
mult r2,r3 r2 ← r2 x r3
mult r2,4 r2 ← r2 x 4
sub r1,r2 r1 ← r1 – r2
store r1,[943] r1 → Mem[943]
2ª versão: processador CISC puro
load [940] AC ← Mem[940]
mult [940] AC ← AC x Mem[940]
store [970] AC → Mem[970]
load [941] AC ← Mem[941]
mult [942] AC ← AC x Mem[940]
mult 4 AC ← AC x 4
store [971] AC → Mem[971]
load [970] AC ← Mem[970]
sub [971] AC ← AC – Mem[971]
store [972] AC → Mem[972]

2. Utilize a técnica de coloração de grafos para cada um dos programas cujas análises são
ilustradas a seguir, supondo a existência apenas de três registradores reais,
denominados R1, R2 e R3.

Prof. Sílvio Fernandes Página 1


3ª Lista de Arquitetura de Computadores

3. Observe o programa abaixo:

Endereço Instrução Significado


300 load r1,[666] r1 ← Mem[666]
301 load r2,[667] r2 ← Mem[667]
302 sub r1,r2 r1 ← r1 - r2
303 jmp 306 Desvia para end. 306
304 add r1,4 r1 ← r1 + 4
305 mult r4,5 r4 ← r4 x 5
306 store r1,[666] r1 ← Mem[666]

Considere que as instruções de carregamento e armazenamento são decompostas nos


seguintes estágios:
 I: busca da instrução (há necessariamente um acesso à Memória Principal
neste estágio);
 E: cálculo do endereço do operando (haja vista que o modo de endereçamento
utilizado é o direto, não há nenhum acesso à Memória Principal para isto);
 D: transferência dos dados entre registradores e a Memória Principal (há
obviamente um acesso a Memória Principal neste estágio)
Por outro lado, as demais instruções são decompostas nos seguintes estágios:
 I: busca da instrução (há necessariamente um acesso à Memória Principal
neste estágio);
 E: execução da instrução (excetuando-se a instrução jmp, este estágio
compreende uma operação na ULA com entrada e saída em registradores).

A próxima figura ilustra a execução deste programa em um processador dotado de


pipeline:

Prof. Sílvio Fernandes Página 2


3ª Lista de Arquitetura de Computadores

De acordo com a figura vemos que, se não houver maneira de descartar no 6º ciclo de
relógio a instrução seguinte à instrução de desvio incondicional, o valor de r1 que será
armazenado no endereço 666 da Memória Principal estará incorreto, pois ele terá sido
modificado pela instrução add r1,4. Assim, utilize a técnica do desvio atrasado
otimizado para modificar o programa e ilustre como a execução da nova versão do
programa é mais rápida do que a da versão original, além de ser mais segura.
4. No fragmento de código abaixo, supondo-se sua execução por um processador escalar
em um pipeline perfeito, teríamos a instrução load r1,[r2] sendo executada no
ciclo i, a instrução add r5,r6,r7 sendo executada no ciclo i + 1, e daí por diante.
Determine qual a dinâmica de execução deste fragmento supondo que ele seja
executado por um processador superescalar capaz de executar duas instruções
simultaneamente.

Instrução Significado
load r1,[r2] r1 ← Mem[r2]
add r5,r6,r7 r5 ← r6 + r7
sub r4,r1,r4 r1 ← r1 - r4
mult r8,r9,r10 r8 ← r9 x r10
store r4,[r11] r4 → Mem[r11]

5. Considere o seguinte fragmento de programa:

Instrução Significado
add r1,r2,r3 r1 ← r2 + r3
load r4,[r5] r4 ← Mem[r5]
sub r7,r1,r9 r7 ← r1 – r7
mult r5,r4,r4 r5 ← r4 x r4
sub r1,r12,r10 r1 ← r12 – r10
store r14,[r13] r14 → Mem[r13]
or r15,r14,r12 r15 ← r14 or r12

Identifique todos os riscos LAE (Leitura Após Escrita), EAE (Escrita Após Escrita), ELA
(Escrita Após Leitura) e LAL (Leitura Após Leitura) para o fragmento. A seguir, descreva
sua dinâmica de execução por um processador que permita que, no máximo, duas
instruções sejam executadas simultaneamente. Por fim, repita o procedimento

Prof. Sílvio Fernandes Página 3


3ª Lista de Arquitetura de Computadores

considerando que o processador seja capaz de executar quatro instruções


simultaneamente.

6. No fragmento de código abaixo, determine quais são os riscos LAE (Leitura Após
Escrita), EAE (Escrita Após Escrita) e EAL (Escrita Após Leitura). Em seguida, utilize a
técnica de renomeação de registradores para eliminar os riscos cabíveis.

Instrução Significado
load r1,[r2] r1 ← Mem[r2]
add r3,r4,r1 r3 ← r4 + r1
sub r4,r5,r6 r4 ← r5 + r6
mult r7,r4,r8 r7 ← r4 x r8
xor r8,r9,r10 r8 ← r9 xor r10
sub r11,r8,r12 r11 ← r8 – r12
div r12,r13,r14 r12 ← r13 / r14
store r12,[r15] r12 → Mem[r15]

7. Considere a Unidade de Controle da figura abaixo. Assuma que a Memória de Controle


possui 24 bits de largura. No formato da microinstrução, o campo “Controle” é
dividido em dois outros campos: o primeiro é composto pelos primeiros 13 bits da
esquerda para a direita e especifica as microoperações a serem realizadas; os demais
bits compõem o campo “Seleção de Endereço”, e especificam uma condição cuja
ocorrência, verificada com base nas flags, ocasionará um desvio. Há oito flags.

a. Qual o tamanho do campo “Seleção de Endereço”?


b. Qual o tamanho do campo “Endereço”?
c. Qual o tamanho da Memória de Controle, em bits?

Respostas

1. Para a 1ª versão: I = 32 B; O = 16 B; M = 48 B
Para a 2ª versão: I = 40 B; O = 36 B; M = 76 B
2.

Prof. Sílvio Fernandes Página 4


3ª Lista de Arquitetura de Computadores

3.

4.

Prof. Sílvio Fernandes Página 5


3ª Lista de Arquitetura de Computadores

Ciclo Instruções
i load r1,[r2] add r5,r6,r7
i+1 sub r4,r1,r4 mult r8,r9,r10
i+2 store r4,[r11]
5.

Processador capaz de executar, no máximo, duas instruções simultaneamente.


Ciclo Instruções
i add r1,r2,r3 load r4,[r5]
i+1 sub r7,r1,r9 mult r5,r4,r4
i+2 sub r1,r12,r10 store r14,[r13]
i+3 or r15,r14,r12

Processador capaz de executar quatro instruções simultaneamente


Ciclo Instruções
i add r1,r2,r3 load r4,[r5] store r14,[r13] or r15,r14,r12
i+1 sub r7,r1,r9 mult r5,r4,r4 sub r1,r12,r10

6.

7. (a) 3 bits; (b) 8 bits; (c) 768 B.

Prof. Sílvio Fernandes Página 6

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