Universidade Federal de Santa Catarina
Curso de Pós-Graduação em Ciência da Computação
INE 641400 – Arquitetura de Computadores
Prof. José Luís Güntzel [email protected] – trimestre 2008/2
Prova de Dispensa (19/06/2008)
Nome: _______________________________________________________ matrícula:____________
Importante: para esta prova, considerar os diagramas de blocos para os processadores MIPS monociclo, multiciclo e
pipeline apresentados e discutidos na bibliografia básica da disciplina (PATTERSON, David A.; HENESSY, John L.
Computer Organization and Design: the hardware/software interface. 3rd edition) e reproduzidos nas figuras 1, 2 e 3 da folha
anexa. Estes processadores foram projetados para executar o conjunto de instruções mostrado na tabela 1 que também
consta na mesma folha anexa. Apenas serão consideradas as respostas fornecidas nos espaços a elas destinados,
nas próprias folhas dos enunciados das questões!
Questão 1 (valor total: 2,0 pontos)
a) Complete a tabela abaixo com os valores dos sinais de controle necessários para que o MIPS monociclo
execute a instrução “beq $s1, $s2, desl” (1 ponto)
RegDst
EscReg
DVI
DvC
ULAFonte
ULAOp
EscMem
LerMem
MemParaReg
01
b) Suponha que no momento da execução da instrução “beq $s1, $s2, desl” o conteúdo dos
registradores $s1 e $s2 seja “+4575” e “+45”, respectivamente. Sabendo que nesta instrução a ULA é
utilizada para comparar o conteúdo destes dois registradores por meio de uma subtração e sabendo também
que na ULA do MIPS, assim como nas ULAs da maioria dos processadores atuais, a subtração é realizada
por meio de uma adição, complete a tabela abaixo, a qual detalha o uso da ULA para a execução da instrução
considerada. Escreva 4 bits por célula da tabela. (1 ponto)
carries
$s1
+
C2($s2)
Result.
Nota: C2 significa “complemento de 2”.
Questão 2 (valor total: 2,5 pontos)
Considere que os tempos de operação (atrasos) dos componentes usados nos projetos do MIPS monociclo e
do MIPS multiciclo sejam os seguintes:
Operação/Componente
Acesso à memória (escrita ou leitura)
Qualquer operação na ULA ou adição com somador dedicado
Acesso ao banco de registradores (escrita ou leitura)
Cálculo dos sinais de controle (bloco de controle)
Multiplexadores, controle da ULA, extensão de sinal, deslocador
Tempo (atraso)
2 ns
1 ns
1 ns
0,5 ns
0 ns
a) Complete a tabela a seguir e determine o período do relógio para o MIPS monociclo. (0,5 ponto)
Parcelas do cálculo
Classe de
instrução
Total
(ns)
Aritméticas e
lógicas
Load word
Store word
Branch (beq)
Jump
O ciclo (período) de relógio para o MIPS monociclo é
(0,5 ponto)
O ciclo (período) de relógio para o MIPS multiciclo é
(0,5 ponto)
b) Suponha que o “mix” de instruções do programa gcc seja o seguinte:
Classe de Instrução
tipo R (aritméticas e lógicas)
lw (load word)
sw (store word)
beq (branch on equal)
j (jump)
Porcentagem
50%
20%
10%
20%
desprezível (0%)
Assumindo que o gcc possui I instruções, calcule o tempo de execução do gcc no MIPS monociclo e no
MIPS multiciclo. Mostre os cálculos e o resultado final no espaço abaixo. (0,5 + 0,5 = 1 ponto)
MIPS monociclo
Tempo de execução =
Cálculos e considerações:
MIPS multiciclo
Tempo de execução =
Cálculos e considerações:
Questão 3 (valor total: 3,0 pontos)
Considere o seguinte trecho de programa, escrito em linguagem de montagem do processador MIPS:
1004
1008
1012
1016
1020
1024
1028
lw
lw
add
lw
add
sub
sw
$10, 100 ($2)
$11, 204 ($2)
$10, $10, $11
$5, 404 ($1)
$10, $10, $5
$6, $10, $4
$6, 100 ($2)
R10 := Mem[R2 + 100]
R11 := Mem[R2 + 204]
R10 := R10 + R11
R5 := Mem[R1 + 404]
R10 := R10 + R5
R6 := R10 – R4
Mem[R2 + 100] := R6
a) Considere uma versão do processador MIPS pipeline que dispõe das seguintes conexões para
adiantamento (forwarding): EX/MEM.saída_ULA → entradas_ULA, MEM/ER.mux → entradas_ULA e
MEM/ER.mux → Mem_dados (dado a ser escrito). Desenhe no espaço a seguir o diagrama de ciclos
para o trecho de programa acima rodando nesta versão do processador MIPS. (2,0 pontos)
↓ Instr. Ciclos→
1
2
3
4
5
6
7
b) Calcule o CPI para este trecho de programa. Mostre o cálculo e o resultado no espaço abaixo. (0,5 ponto)
CPI =
Cálculo:
c) Considerando a execução deste trecho de programa no MIPS pipeline com recursos para realizar
adiantamento, é possível reduzir o tempo de execução deste código alterando-se a ordem das instruções?
Sim
Não
Caso tenha marcado “não”, use o espaço a seguir para justificar sua resposta. Caso tenha marcado “sim”, use
o espaço a seguir para escrever a nova ordem das instruções e determinar o número de ciclos de relógio
necessários para sua execução na versão considerada do MIPS pipeline. OBS: não é solicitado refazer o
diagrama de ciclos! (valor: 0,5 ponto)
Questão 4 (valor total: 2,5 pontos)
Um processador RISC que endereça a memória a bytes possui comprimento de palavra de 32 bits (dados ou
instruções). Este processador possui memória cache L1 com capacidade útil de 1Mbytes, mapeada
diretamente, com blocos de 4 palavras, conforme ilustrado no desenho a seguir.
Endereço (32 bits)
Byte dentro
da palavra
acerto
b
val.
a
informação
2
tag
=
MUX
32
a) Calcule o número de entradas desta cache e mostre os cálculos no espaço a seguir. (1 ponto)
No de entradas da cache =
Cálculo:
b) Calcule o valor do campo “a” do desenho anterior. Mostre este cálculo no espaço a seguir. (0,5 ponto)
a=
Cálculo:
c) Calcule o número de bits de tag (campo “b” do desenho anterior). Mostre este cálculo no espaço a seguir.
(1 ponto)
b=
Cálculo:
Download

Universidade Federal de Santa Catarina - anotacoes-ufpr