1) Enumere e dê exemplo dos tipos de conflitos que podem ocorrer em um pipeline de instruções de um processador.

Documentos relacionados
1. A pastilha do processador Intel possui uma memória cache única para dados e instruções. Esse processador tem capacidade de 8 Kbytes e é

É um sinal elétrico periódico que é utilizado para cadenciar todas as operações realizadas pelo processador.

Faculdade de Computação Arquitetura e Organização de Computadores 2 3 a Lista de Exercícios Prof. Cláudio C. Rodrigues Data de Entrega: 22/11/2018

Esse programa inclui dependências de tipo: escrita-escrita, leitura-escrita e escrita-leitura. Identifique e mostre estas dependências.

Escalonamento de Instruções

Arquitetura e Organização de Processadores. Aula 4. Pipelines

Universidade Federal do Rio de Janeiro Bacharelado de Ciência da Computação. Arquitetura de Computadores I. Pipeline

AULA DE REVISÃO 4 ILP

Infraestrutura de Hardware. Melhorando Desempenho de Pipeline Processadores Superpipeline, Superescalares, VLIW

Arquitetura e Organização de Processadores. Aula 08. Arquiteturas VLIW

AOC II - Arquitetura e Organização de Computadores Prof. Dr. rer. nat. Daniel Duarte Abdala. Lista de Exercícios

Microarquiteturas Avançadas

Predição de Desvios e Processadores Superescalares Especulativos

Arquiteturas Superescalares

EA869 Pipeline. Faculdade de Engenharia Elétrica e de Computação (FEEC) Universidade Estadual de Campinas (UNICAMP) Prof.

AULA DE REVISÃO 3 ILP

Arquitetura e Organização de Processadores. Aulas 06 e 07. Superescalaridade

Univ ersidade Feder al do Rio de Janei ro Informáti ca DCC/IM. Pipeline. Gabriel P. Silva. Gabriel P. Silva

ORGANIZAÇÃO DE COMPUTADORES

Processadores Superescalares - Avançando na exploração de paralelismo entre instruções

SSC0611 Arquitetura de Computadores

Arquitetura de Computadores II

Instituto Superior Técnico Departamento de Engenharia Electrotécnica e de Computadores Arquitectura de Computadores. 2º sem.

SSC0611 Arquitetura de Computadores

Explorando o paralelismo entre instruções

SSC0510 Arquitetura de Computadores

Microprocessadores. Execução em Paralelo Pipelines

Arquitetura de Computadores II

I. Considere os seguintes processadores A e B, ambos com arquitectura em pipeline, conforme ilustrado

1) Considere a situação atual da memória do sistema computacional abaixo discriminada.

Arquitetura e Organização de Computadores

1.0 val. (b) Determine o CPI do processador na execução do código indicado. Num.: Nome: Pág. 1. Arquitecturas Avançadas de Computadores (AAC)

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES II AULA 02: PROCESSAMENTO PARALELO: PROCESSADORES VETORIAIS

Arquiteturas Superescalares

PROCESSADORES SUPERESCALARES FELIPE G. TORRES

Arquitetura e Organização de Computadores

Resolva as seguintes alíneas fazendo todas as simplificações que considerar convenientes, anotando-as junto da resposta.

Aula 21: UCP: Instrução Jump, Monociclo vs. Multiciclo, Pipeline

de saltos Aula de Abril de

Arquitetura de Computadores. Conjunto de Instruções

COMPUTADORES COM UM CONJUNTO REDUZIDO DE INSTRUÇÕES. Adão de Melo Neto

Sobre Projeto no Nível RT: Bloco de controle: Bloco operativo:

Parte 7 Pipeline: Conceitos básicos, implementação e ganho de desempenho

Arquitetura e Organização de Processadores. Aula 1. Introdução Arquitetura e Organização

1. Considere um processador super-pipelined com 4 estágios (IF,ID,EX,WB), a operar à frequência de 1GHz, e com as seguintes caracteristicas:

Universidade Federal do Rio de Janeiro Pós-Graduação em Informática IM-NCE/UFRJ. Pipeline. Gabriel P. Silva. Microarquitetura de Alto Desempenho

Arquitetura de Computadores. Processamento Paralelo

Infraestrutura de Hardware. Implementação Monociclo de um Processador Simples

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO ORGANIZAÇÃO COMPUTACIONAL

Prof. Gustavo Oliveira Cavalcanti

Resumão de Infra-estrutura de Hardware

Previsão de Desvios Branch Prediction

PIPELINE. Introdução ao Pipeline. PIPELINE Ciclo de Instruções. PIPELINE Ciclo de Instruções. PIPELINE - Exemplo. PIPELINE Considerações

Arquitetura de Computadores Aula 11 - Multiprocessamento

Conjunto de Instruções. Alisson Brito

Arquitetura de Computadores I

Micro-Arquiteturas de Alto Desempenho. Introdução. Ementa

Questionário Arquitetura e Organização de Computadores

Sistemas Operacionais. Sistema de entrada e Saída

Figura 1. Datapath do MIPS Superescalar Especulativo CES SE

1. Considere a execução do seguinte troço de código num processador com ISA compatível

Universidade Federal do Rio de Janeiro Bacharelado de Ciência da Computação. Arquitetura de Computadores I. RISC versus CISC

3. Considere o seguinte código executado no processador pipeline da figura abaixo.

X Y Z A B C D

Sistemas de Microprocessadores I Lista de exercícios (questões de provas de semestre anteriores)

Melhorando o Desempenho com Pipelining

4. Modelo de Programação do DLX Introdução

ção de Computadores II

Trabalhos Práticos Arquitetura de Computadores I Prof. Fabian Vargas

Introdução. Os mesmos princípios se aplicam a processadores. No MIPS as instruções são divididas normalmente em cinco etapas:

Pipeline. Prof. Leonardo Barreto Campos 1

DTSVLIW. UFES Mestrado em Informática. Arquiteturas Avançadas de Computador. Sotério Ferreira de Souza. Prof. Alberto Ferreira de Souza

Infraestrutura de Hardware. Explorando Desempenho com a Hierarquia de Memória

Pequena Apresentação Sobre Paralelismo em nível de instrução

Aula 15: Ciclo de Execução e Introdução ao Pipeline

Arquiteturas RISC e CISC. Adão de Melo Neto

Mestrado Integrado em Engenharia Informática e Computação. Arquitecturas Avançadas de Computadores Exame final

Universidade Federal do Rio de Janeiro Bacharelado em Ciência da Computação. Arquitetura de Computadores I. Organização Básica do Computador

Prova 1 Eng. Elétrica Arquitetura de Computadores Prof. Celso A. Saibel Santos Nome: Data:

Instruções. Maicon A. Sartin

Fundamentos de Arquiteturas de Computadores Turma :A1 Lista 3 Profa.: Simone Martins

Sistemas Processadores e Periféricos Aula 2 - Revisão

Faculdade de Computação Arquitetura e Organização de Computadores 2 Prof. Cláudio C. Rodrigues

2ª Lista de Exercícios de Arquitetura de Computadores

UNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE COMPUTAÇÃO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO

ENGENHARIA DE SISTEMAS MICROPROCESSADOS

Organização de Sistemas de Computadores

Arquitetura de Computadores. Prof. João Bosco Jr.

Organização de Computadores

Prof. Rômulo Calado Pantaleão Camara Carga Horária: 2h/60h

3. DESCRIÇÃO DO SPARC Histórico

Infraestrutura de Hardware. Explorando a Hierarquia de Memória

ENDEREÇAMENTO DE INSTRUÇÕES. Adão de Melo Neto

Processadores. Principal função é executar programas armazenados na memória principal.

TCC Organização de Computadores I Turma :A1 Lista 3-GABARITO. 1. A figura abaixo mostra o diagrama da implementação para a UCP estudada em sala.

Faculdade de Computação

Universidade Federal do Rio de Janeiro Pós-Graduação em Informática. Introdução. Gabriel P. Silva. Gabriel P. Silva

William Stallings Arquitetura e Organização de Computadores 8 a Edição. Capítulo 12 Estrutura e função do processador

Gerência de Memória. Paginação

Transcrição:

Arquitetura de Computadores II Bacharelado em Ciência da Computação DCC - IM/UFRJ Prof.: Gabriel P. Silva Data: 18/04/2005 1 ª 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; c. Uma bolha no pipeline devido a uma dependência de controle.

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 sd dsub ld dadd slt bnez R8, R18, R19 R6, 4(R12) R6, R15, R8 R5, 36(R4) R4, R5, R8 R5, R2, R7 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?

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? 21) Porque a implementação eficiente de pipelines só é possível em máquinas RISC?

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, 0x, 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?

Endereço do Desvio BTAC hit / miss Predição da BTAC (tomado ou não tomado) Resultado Real do Desvio Desvio tomado Desvio não tomado 00004444 Desvio não tomado 00004444 Desvio tomado Desvio tomado 00004444 Desvio tomado 00550000 Desvio tomado 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 consomem 2 ciclos e que todas as demais consomem 1 ciclo;