• Nenhum resultado encontrado

Lista de Exerccios 1

N/A
N/A
Protected

Academic year: 2021

Share "Lista de Exerccios 1"

Copied!
5
0
0

Texto

(1)

Arquitetura de Computadores II

Bacharelado em Ciência da Computação DCC - IM/UFRJ

Prof.: Gabriel P. Silva Data: 18/04/2005

Lista de Exercícios de Arquitetura de Computadores II

1) Enumere e dê exemplo dos tipos de conflitos que podem ocorrer em um pipeline de

instruções de um processador.

2) O tempo de execução dos estágios de um pipeline são os seguintes:

a. busca da instrução: 2 ns

b. decodificação/leitura dos registradores: 3 ns

c. execução/cálculo do endereço: 2,5 ns d. acesso à memória: 4 ns

e. escrita do resultado: 3,5 ns

Qual será o tempo de ciclo do relógio do processador?

3) Considere a execução do seguinte código em um pipeline de 5 estágios como definido na

questão anterior: dadd R5, R6, R7 ld R6, 100(R7) dsub R7, R6, R8 dadd R7, R7, 1 sd 100(R7), R6

Quantos ciclos serão gastos para executar este código se não houver adiantamento de dados? E com adiantamento de dados? E se o processador possuir caches separadas para dados e instruções?

4) Considere a execução do seguinte código, com o mesmo pipeline descrito na questão

anterior: Início: dadd R1, R2, R3 dadd R4, R5, R6 dadd R7, R8, R9 dadd R10, R11, R12 dadd R13, R14, R15

Se no primeiro ciclo a instrução correspondente ao label Início está sendo buscada, quais os registradores que estarão sendo lidos no quarto ciclo de execução,? Quais estarão sendo escritos?

5) Defina os conceitos de arquitetura VLIW, superpipelined e superescalar dos modernos

processadores.

6) Dado um processador MIPS64 com um pipeline de 5 estágios, escreva um trecho de

código em linguagem de montagem do MIPS64 em que ocorram as seguintes situações: a. Adiantamento de dados da saída para a entrada da ALU;

b. Adiantamento de dados da saída do estágio de memória para a entrada da ALU;

(2)

7) Considere o seguinte trecho de código em linguagem de montagem: dadd R5, R0, R0 daddi R20, R0, #400 Soma: ld R10, 1000(R20) dadd R5, R5, R10 dsubi R20, R20, #4 bnez R20, Soma

Assuma que o pipeline do processador não possui mecanismos de “stalls” ou

adiantamento de dados. Reescreva o código inserindo o menor número possível de nops para eliminar as dependências de dados. Se for possível, reordene as instruções para minimizar o número de nops (as instruções podem ser reordenadas desde que se preserve a equivalência semântica).

8) Considere o seguinte trecho de código:

COPIA: ld R10, 1000(R20)

sd R10, 2000(R20)

dsubi R20, R20, 4 bnez R20, COPIA

Assuma que o pipeline do processador não possui mecanismos de “stalls” ou

adiantamento de dados.

a) Reescreva o código inserindo o menor número de nops necessários; reordene as instruções, se possível, para minimizar o número de nops preservando a

equivalência semântica.

b) Escreva uma fórmula para o número de ciclos necessários para executar este laço como uma função de N (número de palavras copiadas), ou seja, se forem

copiadas N palavras quantos ciclos serão necessários?

9) Considere o seguinte laço:

dadd R8, R18, R19 sd R6, 4(R12) dsub R6, R15, R8 ld R5, 36(R4) dadd R4, R5, R8 slt R5, R2, R7 bnez R5, rotulo

Encontre as dependências de dados existentes no código acima. Para um pipeline do MIPS64 com “interlock” por hardware, mostre as bolhas criadas no pipeline.

10) No escalonamento com o uso da técnica de “trace scheduling” descreva os principais tipos

de reparo de código que precisam ser feitos com a movimentação de instruções além das fronteiras do bloco.

11) Compute o tempo de execução (em ciclos de relógio) para os dois programas descritos a

seguir: Calcule o desempenho do pipeline do MIPS64 com adiantamento de dados nos dois casos. É possível melhorar este desempenho? Em caso positivo, como e de quanto se pode melhorar o desempenho dos dois programas?

(3)

Prog1: daddi R2, R0, 300 ld R1, 100(R0) daddi R3, R0, 200 seq R15, R1, R3 beqz R15, end1 dadd R1, R1, R2 end1: sd R1, 100(R0) daddi R4, R0, 600 daddi R5, R0, 700 dadd R4, R4, R5 daddi R6, R0, 800 dsub R4, R4, R6 Progr2: daddi R1, R0, #0 daddi R3, R0, #1 loop: ld R1, 100(R0) ld R2, 200(R0) dadd R1, R1, R2 sd R1, 200(R0) dadd R1, R1, R3 seqi R8, R1, #3 bltz R8, loop

12) Relacione os problemas que impedem que o pipeline obtenha a sua eficiência máxima na

execução de um programa?

13) Quando acontece e como pode ser eliminado o conflito estrutural?

14) Descreva os tipos de dependências de dados, como e quando elas ocorrem e quais as

técnicas para resolvê-las por hardware e por software? Que tipo(s) de dependência é(são) eliminada(s) com o renomeação de registradores?

15) Descreva as técnicas empregadas na resolução do conflito de controle, indicando quais

são realizadas pelo compilador e quais pelo hardware (CPU). Comente as vantagens e desvantagens de cada técnica.

16) Descreva o funcionamento do “branch target buffer”, considerando as vantagens em usá-lo

(considere o uso de 2 bits em cada entrada do buffer para previsão de desvio, mostrando a máquina de estados). Qual a vantagem dese usar um único bit ou dois bits na máquina de estados para a previsão de desvios?

17) Quando é necessário anular resultados de instruções já ou parcialmente executadas? 18) Qual a diferença entre modelo de exceção precisa e imprecisa?

19) Quais as diferenças entre os processadores com arquiteturas RISC e aquelas com

arquitetura CISC?

20) Descreva quais as vantagens e desvantagens de um processador realizar o acesso à

memória através de apenas dois tipos de instruções: load e store?

(4)

22) Assuma que um programa tem um “profile” de execução onde 80% das instruções são

simples (tais como AND, XOR, DADD e BEQZ) e o restante 20% são instruções complexas (tais como DMUL e DDIV). Adicionalmente considere que que as instruções simples precisam de 4 ciclos de máquina e as complexas precisam de 8 ciclos em uma máquina CISC (cada ciclo = 100 ns). Em uma máquina RISC, as instruções simples serão executadas em 1 ciclo, enquanto que as instruções complexas deverão ser simuladas por software necessitando, em média, 14 ciclos por instrução. Devido a sua simplicidade o tempo de ciclo em uma máquina RISC é de 70 ns. A máquina RISC será mais rápida que a CISC para na execução do programa mencionado?

23) Descreva as principais características das arquiteturas VLIW?

24) Quais as principais diferenças entre as arquiteturas superescalares e as VLIW? 25) Descreva as principais características do “multithreading” simultâneo?

26) Uma tabela de histórico de desvios (BHT) é uma pequena memória colocada no estágio de

busca de instruções, indexada pelos bits mais baixos do endereço da instrução que está sendo buscada. Cada entrada na BHT codifica a predição do resultado da próxima execução de qualquer instrução de desvio que indexe essa entrada na tabela.

i) Desenhe um diagrama de estados para um preditor bimodal e explique seu

funcionamento.

ii) Discuta a acurácia de predição desse esquema para um desvio no final de um

“loop”.

iii) Discuta a acurácia da predição de desvio se o preditor for de um “bit”.

27) Um processador em particular utiliza uma BTAC para reduzir os efeitos das dependências

de controle no seu pipeline de instruções. A BTAC está organizada como uma cache de mapeamento direto com 16 conjuntos. Um programa em execução nesse processador contém desvios condicionais nos endereços 0x00004444, 0x0000FFF0, 0x0011CC48 e 0x00550000.

a) Indique para que posições da BTAC cada uma dessas instruções é mapeada

Cada conjunto nesta BTAC tem espaço para armazenar um rótulo, o endereço destino do desvio e um bit de histórico. Um desvio em particular é colocado na BTAC quando o desvio é tomado pela primeira vez, quando então o bit de histórico recebe o valor T (de tomado). Desse ponto em diante, o bit de histórico é atualizado dinamicamente para refletir o comportamento do desvio. Se houver uma falha na BTAC, a predição feita é que o desvio não irá ocorrer.

b) Assuma que a BTAC está inicialmente vazia. O processador encontra as instruções especificadas anteriormente, na ordem mostrada na tabela abaixo. O resultado real de cada instrução de desvio é mostrado na última coluna à direita. Complete esta tabela, preenchendo as colunas do meio. Justifique baseado no conteúdo da BTAC.

c) Como você modificaria a BTAC para diminuir ainda mais o custo dos desvios preditos corretamente?

(5)

Endereço do Desvio BTAC hit / miss Predição da BTAC (tomado ou não tomado) Resultado Real do Desvio 0000FFF0 Desvio tomado

0000FFF0 Desvio não tomado

00004444 Desvio não tomado

00004444 Desvio tomado

0000FFF0 Desvio tomado

00004444 Desvio tomado

00550000 Desvio tomado

0000FFF0 Desvio não tomado

00550000 Desvio não tomado

28) Considere o trecho de código abaixo:

LOOP: dadd R2, R3, R10 /* I1 r2=r3+r10

sd R11(r3), R2 /* I2 mem[r11+r3] = r2

dadd R8, R8, R2 /* I3 r8 = r8 + r2

dsll R10, R10, #1 /* I4 r10 = r10 << 1

dsrl R2, R8, #31 /* I5 r2 = r8 >> 31

bne R2, R0, ELSE /* I6 desvia se menor/igual

dadd R2, R8, R2 /* I7 r2 = r8 + r2 dsrl R12, r2, #1 /* I8 r12 = r2 >> 1 j L1 /* I9 desvio incodicional ELSE: dsll R8, R9, #1 /* I10 r8 = r9 << 1 dadd R9, R9, R12 /* I11 r9 = r9 + r12 L1: dsub R2, R13, R3 /* I12 r2 = r13 - r3 dsub R3, R3, #1 /* I13 r3 = r3 – 1 sd R11(R2), R9 /* I14 mem[r11+r12] = r9

bne R9,R0, LOOP /* I15 desvia se menor/igual

a) Divida o código em blocos básicos;

b) Faça o grafo de dependências entre as instruções do “trace” I1-I5 e I10-I14. Indique as dependências falsas entre duas instruções apenas quando não houver uma dependência direta entre elas;

c) Utilize os registradores de r14 em diante para, através de renomeação, eliminar as dependências falsas relevantes determinadas no item b);

d) Utilize o algoritmo LIST SCHEDULING para realizar o escalonamento das instruções do trace do item c) considerando uma arquitetura VLIW, possuindo 2 ALU Inteiras, 1 Deslocador e 1 Unidade de Load/Store. Suponha que as instruções de Load/Store

Referências

Documentos relacionados

MEMÓRIA UNIDADE DE CONTROLE(UC ) UNIDADE DE LÓGICA E ARITMÉTICA (ULA) CIRCUITOS CONTROLADORES DE ENTRADA CIRCUITOS CONTROLADORES DE SAÍDA PERIFÉRICOS E/S UCP COMPONENTES DE

Como objetivos específicos pretendeu-se iden- tificar os taxa existentes nesta gruta, determinar a riqueza de es- pécies de sua comunidade; verificar a influência de fatores

Uma amostra destas crianças, quando chegaram aos 3 anos, foram avaliadas também pela AP3, desta vez adaptada ao ambiente de Educação Infantil (Vaz &amp; Bernardino, 2011),

Em cada perfil pode adaptar individual- mente as regulações para as bebidas de café (quantidade de bebida, quanti- dade a moer, temperatura de fervura e pré-infusão).. O nome do

– Pode retirar o bocal de saída central com o Cappuccinatore integrado, desmontar as várias peças e colocar na máquina de lavar louça ou lavar manualmente com água quente e um

Outro aspecto a ser observado é que, apesar da maioria das enfermeiras referirem ter aprendido e executado as fases do processo na graduação, as dificuldades na prática

A Psicologia, por sua vez, seguiu sua trajetória também modificando sua visão de homem e fugindo do paradigma da ciência clássica. Ampliou sua atuação para além da

Realizou-se estudo do tipo ecológico com o objetivo de investigar o perfil sociodemográfico e epidemiológico, a frequência de casos, os indicadores epidemiológicos