AULA DE REVISÃO 3 ILP

Documentos relacionados
Exemplo: CC1 CC2 CC3 CC4 CC5 CC6 CC7 CC8 CC9 ADD $s0, $t0, $t1 IF ID EX MEM WB SUB $t2, $s0, $t3 IF Stall Stall ID EX MEM WB

Organização e Arquitetura de Computadores I

Microcontroladores e Interfaces 3º Ano Eng. Electrónica Industrial

Pipelining - analogia

Para os problemas seguintes considere os 5 andares de pipelining do MIPS:

Caminho dos Dados e Atrasos

Infraestrutura de Hardware. Revisão Pipeline, Superescalar e Multicores

Visão Geral de Pipelining

Introdução ao Processamento Paralelo

Arquitetura de Computadores. Ivan Saraiva Silva

Arquitetura de Computadores I

O Funcionamento do Processador

Arquitetura e Organização de Computadores 2

Conflitos. Aula de Março de

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

Hardware: Componentes Básicos. Sistema de Computador Pessoal. Anatomia de um Teclado. Estrutura do Computador. Arquitetura e Organização

ARQUITECTURA DE COMPUTADORES

Conteúdos: Debora, Edcarllos, livros! slides disponíveis!

Data Path / Control Path Controle do MIPS

Construção de uma via de dados, abordagem monociclo, multiciclo e pipeline

Predição de Desvios e Processadores Superescalares Especulativos

O Processador: Via de Dados e Controle

Um Caminho de Dados Pipeline Para a ISA MIPS: Aprendendo na Prática

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

Arquitetura de Computadores I

ARQUITETURA DE COMPUTADORES

Arquitecturas Alternativas. Pipelining Super-escalar VLIW IA-64

Arquitectura de Computadores II

Oganização e Arquitetura de Computadores

Arquitectura de Computadores II. Exercícios sobre pipelining

Organização de Computadores 1

Arquitetura de Computadores - Processadores Superescalares. por Helcio Wagner da Silva

Sistemas Computacionais II Professor Frederico Sauer

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

Organização e Arquitetura de Computadores. Ivan Saraiva Silva

Revisão dependências de dados

Arquitetura de processadores: RISC e CISC

Introdução à Informática

ARQUITETURA DE COMPUTADORES. Professor: Clayton Rodrigues da Siva

Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores.

Fundamentos de Programação. Diagrama de blocos

Computadores de Programação (MAB353)

Projetando um Computador Parte II Arquitetura do Processador BIP

Pipelining. Professor: Carlos Bazilio. Pólo Universitário rio de Rio das Ostras

10. CPU (Central Processor Unit) Conjunto das instruções Estrutura interna Formato das instruções...

Informática I. Aula 5. Aula 5-13/05/2006 1

Organização de Computadores

Sistemas Operacionais. Rodrigo Rubira Branco

3/9/2010. Ligação da UCP com o barramento do. sistema. As funções básicas dos registradores nos permitem classificá-los em duas categorias:

Introdução a Programação Aula 01

Linguagem de Montagem Funcionamento de CPU e Assembly Rudimentar

Antes de deixarmos o hardware (1) Nível da Arquitetura do Conjunto das Instruções

Visão geral do sistema de memória de computadores

Organização e Arquitetura de Computadores I

Processadores BIP. Conforme Morandi et al (2006), durante o desenvolvimento do BIP, foram definidas três diretrizes de projeto:

Lista de Exercícios 1

Introdução à Organização de Computadores. Execução de Programas Prof. Rossano Pablo Pinto, Msc. rossano at gmail com 2 semestre 2007

Processador ARM Cortex-A9

Curso de Formação de Oficiais Conhecimentos Específicos ENGENHARIA DE COMPUTAÇÃO CADERNO DE QUESTÕES

Universidade Federal de Campina Grande Unidade Acadêmica de Sistemas e Computação Curso de Bacharelado em Ciência da Computação.

Projetando um Computador

Curso de Engenharia de Computação DESENVOLVIMENTO DE UM PROCESSADOR RISC EM VHDL

ARQUITETURA DE COMPUTADORES

ArchC. Wesley Nunes Gonçalves

Arquiteturas RISC. (Reduced Instructions Set Computers)

FORMULÁRIO PARA CRIAÇÃO DE DISCIPLINA

Paralelismo a Nível de Instrução

Introdução aos Computadores Introdução à Ciência de Computadores Outubro / 16

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES INTRODUÇÃO AO PARALELISMO: PROCESSADORES SUPERESCALARES. Prof. Dr. Daniel Caetano

O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware

Arquitetura de Computadores. Arquitetura de Computadores 1

Aula 03. Processadores. Prof. Ricardo Palma

Sequenciamento dinâmico

LISTA DE EXERCÍCIOS - Nro. 01

Arquitetura e Organização de Computadores II

Edeyson Andrade Gomes

Roteiro. Professores da Área no DIN

Introdução à Organização de Computadores. Sistemas da Computação Prof. Rossano Pablo Pinto, Msc. rossano at gmail com 2 semestre 2007

Pipeline. Todos os estágios devem estar prontos ao mesmo tempo para prosseguir.

RISC simples. Aula de Março de

Conjunto de Instruções e Arquitectura p.1

Aula 11: Desvios e Laços

Roteiro... Sistemas Distribuídos Aula 4. Troca de mensagens. Comunicação entre processos. Conceitos de SD, vantagens e desvantagens

Processamento de Dados aplicado à Geociências. AULA 1: Introdução à Arquitetura de Computadores

RISC X CISC - Pipeline

OBSERVAÇÕES: EXERCÍCIOS

Arquitetura de Computadores - Arquitetura RISC. por Helcio Wagner da Silva

TECNÓLOGO EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PROGRAMAÇÃO DE COMPUTADORES I

Arquitectura de Computadores II. Multiprocessadores

Fundamentos de Arquitetura e Organização de Computadores

Arquitetura de Computadores. Ivan Saraiva Silva

Arquiteturas que Exploram Paralismos: VLIW e Superscalar. Ch9 1

Organização e Arquitetura de Computadores I

O que influi no desempenho de CPU

Arquitetura e Organização de Computadores 2. Apresentação da Disciplina

Unidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01

Do alto-nível ao assembly

Avaliando e Compreendendo o Desempenho. Capítulo 4

Aula 02: Tendências Tecnológicas e Custos

PLANIFICAÇÃO INTRODUÇÃO ÀS TECNOLOGIAS DE INFORMAÇÃO BLOCO I

Transcrição:

AULA DE REVISÃO 3 ILP

Exercício 1: Considere um bloco de código com 15 instruções cada uma com tempo de execução Tex. Elas são executadas numa unidade pipeline de 5 estágios. Os overheads do pipeline são ignorados. Quanto tempo é consumido para executar as 15 instruções pela CPU pipeline? (suponha que não há hazards) Ilustre a resposta figura 1 ilustração de solução em pipelining 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21

Exercício 1: (solução) Considere um bloco de código com 15 instruções cada uma com tempo de execução Tex. Elas são executadas numa unidade pipeline de 5 estágios. Os overheads do pipeline são ignorados. Quanto tempo é consumido para executar as 15 instruções pela CPU pipeline? (suponha que não há hazards) Ilustre a resposta O tempo gasto no processamento de M instruções em um pipeline com K estágios e ciclo de máquina igual a t é dado por: T = [ K + (M 1 )] * t Para K=5, M=15 e t=tex/5 temos que T = (19 * Tex)/5

Exercício 2: Considere o seguinte programa em linguagem de montagem: I1: lw $a1, 4($sp) I2: sw $a1, 0($v0) I3: addi $sp, $sp, -4 I4: sw $a0, 8($sp) I5: addi $a0, $a0, -2 Liste todos os hazards de dados em potencial e os registradores que causam esses hazards. Identifique o tipo de dependência WAW, RAW, ou WAR. Sentença Registrador Dependência

Exercício 2: (solução) Considere o seguinte programa em linguagem de montagem: I1: I2: I3: I4: I5: lw $a1, 4($sp) sw $a1, 0($v0) addi $sp, $sp, -4 sw $a0, 8($sp) addi $a0, $a0, -2 # $a1 Mem[4 + $sp] # $a1 Mem[0 + $v0] # $sp $sp 4 # $a0 Mem[8+$sp] # $a0 $a0-2 Liste todos os hazards de dados em potencial e os registradores que causam esses hazards. Identifique o tipo de dependência WAW, RAW, ou WAR. Sentença Registrador Dependência I1 e I2 $a1 RAW I1 e I3 $sp WAR I3 e I4 $sp RAW I4 e I5 $a0 WAR

Exercício 3: Considere os estágios da via-de-dados em pipeline do MIPS I Instruction Fetch D Instruction Decode X Execution M Memory Access W Write Back stage Para uma determinada sequência de código, indique como as instruções fluem através do pipeline. Considere o seguinte: Todas as referências de instrução são encontradas no cache de instrução e requer um único ciclo; Todas as referências por dados são encontradas no cache de dados e requer um único ciclo; Os desvios (branches) são preditos como não tomados (not taken); Assuma que a reescrita de registradores ocorre na primeira metade do estágio W e a leitura de registradores na última metade do estágio D; Assuma que não há hazards estruturais; Assuma que não há hardware para suportar forwarding/bypassing. Execute o conjunto de instruções na figura 2, considerando uma máquina com pipeline MIPS. Utilize a tabela para elaborar a sua resposta. Na tabela, coloque o estágio do pipeline onde cada instrução se encontra, durante cada ciclo de relógio. Preencha a tabela claramente. Mostre onde as dependências aparecem e quando os hazards surgem. I1: add R1, R2, R3 I2: sub R2, R3, R2 I3: add R3, R1, R3 I4: lw R4, 10 (R7) I5: add R5, R1, R2 Figura 2 - ilustração de solução em pipelining 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21

Exercício 3: (solução) Considere os estágios da via-de-dados em pipeline do MIPS I Instruction Fetch D Instruction Decode X Execution M Memory Access W Write Back stage Para uma determinada sequência de código, indique como as instruções fluem através do pipeline. Considere o seguinte: Todas as referências de instrução são encontradas no cache de instrução e requer um único ciclo; Todas as referências por dados são encontradas no cache de dados e requer um único ciclo; Os desvios (branches) são preditos como não tomados (not taken); Assuma que a reescrita de registradores ocorre na primeira metade do estágio W e a leitura de registradores na última metade do estágio D; Assuma que não há hazards estruturais; Assuma que não há hardware para suportar forwarding/bypassing. Execute o conjunto de instruções na figura 2, considerando uma máquina com pipeline MIPS. Utilize a tabela para elaborar a sua resposta. Na tabela, coloque o estágio do pipeline onde cada instrução se encontra, durante cada ciclo de relógio. Preencha a tabela claramente. Mostre onde as dependências aparecem e quando os hazards surgem. Figura 2 - ilustração de solução em pipelining 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 I1: add R1, R2, R3 I D X M W I2: sub R2, R3, R2 I D X M W I3: add R3, R1, R3 I - D X M W I4: lw R4, 10 (R7) I D X M W I5: add R5, R1, R2 I D X M W

Exercício 4: Execute o conjunto de instruções na figura 3, considerando uma máquina com pipeline MIPS. Utilize a tabela para elaborar a sua resposta. Na tabela, coloque o estágio do pipeline onde cada instrução se encontra, durante cada ciclo de relógio. Preencha a tabela claramente. Mostre onde as dependências aparecem e quando os hazards surgem. Figura 3 - ilustração de solução em pipelining Instruções 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 I1: ADD R1, R2, R3 I2: SW R1, 100(R2) I3: LW R7, 2000(R2) I4: ADD R5, R7, R1 I5: LW R8, 2004(R2) I6: SW R7, 208(R8) I7: ADD R8, R8, R2 I8: LW R9, 1012(R8) I9: SW R9, 116(R8) Otimize a execução da sequência de código apresentada no item anterior. Reduza os efeitos dos hazards, efetuando um escalonamento da sequência de código (instruction scheduling), garantindo a semântica do código original. Apresente e simule o código escalonado na tabela da figura 4. Figura 4 - ilustração de solução em pipelining Instruções 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 I1: I2: I3: I4: I5: I6: I7: I8: I9:

Exercício 4: (solução) Execute o conjunto de instruções na figura 3, considerando uma máquina com pipeline MIPS. Utilize a tabela para elaborar a sua resposta. Na tabela, coloque o estágio do pipeline onde cada instrução se encontra, durante cada ciclo de relógio. Preencha a tabela claramente. Mostre onde as dependências aparecem e quando os hazards surgem. Figura 3 - ilustração de solução em pipelining Instruções 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 I1: ADD R1, R2, R3 I D X M W I2: SW R1, 100(R2) I - - D X M W I3: LW R7, 2000(R2) I D X M W I4: ADD R5, R7, R1 I - - D X M W I5: LW R8, 2004(R2) I D X M W I6: SW R7, 208(R8) I - - D X M W I7: ADD R8, R8, R2 I D X M W I8: LW R9, 1012(R8) I D X M W I9: SW R9, 116(R8) I - - D X M Otimize a execução da sequência de código apresentada no item anterior. Reduza os efeitos dos hazards, efetuando um escalonamento da sequência de código (instruction scheduling), garantindo a semântica do código original. Apresente e simule o código escalonado na tabela da figura 4. Figura 4 - ilustração de solução em pipelining Instruções 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 I1: ADD R1, R2, R3 I D X M W I2: LW R7, 2000(R2) I D X M W I3: LW R8, 2004(R2) I D X M W I4: SW R1, 100(R2) I D X M W I5: ADD R5, R7, R1 I D X M W I6: SW R7, 208(R8) I D X M W I7: ADD R8, R8, R2 I D X M W I8: LW R9, 1012(R8) I - D X M W I9: SW R9, 116(R8) I - - D X M W

Exercício 5: (POSCOMP 2005-21) Considere uma CPU usando uma estrutura pipeline com 5 estágios (IF, ID, EX, MEM, WB) e com memórias de dados e de instruções separadas, sem mecanismo de data forwarding, escrita no banco de registradores na borda de subida do relógio e leitura na borda de descida do relógio e o conjunto de instruções a seguir: I1: lw $2, 100($5) I2: add $1, $2, $3 I3: sub $3, $2, $1 I4: sw $2, 50($1) I5: add $2, $3, $3 I6: sub $2, $2, $4 Quantos são gastos para a execução deste código?

Exercício 5: (solução) (POSCOMP 2005-21) Considere uma CPU usando uma estrutura pipeline com 5 estágios (IF, ID, EX, MEM, WB) e com memórias de dados e de instruções separadas, sem mecanismo de data forwarding, escrita no banco de registradores na borda de subida do relógio e leitura na borda de descida do relógio e o conjunto de instruções a seguir: I1: lw $2, 100($5) I2: add $1, $2, $3 I3: sub $3, $2, $1 I4: sw $2, 50($1) I5: add $2, $3, $3 I6: sub $2, $2, $4 Quantos são gastos para a execução deste código? ilustração de solução em pipelining 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 I1: lw $2, 100($5) I D X M W I2: add $1, $2, $3 I - - D X M W I3: sub $3, $2, $1 I - - D X M W I4: sw $2, 50($1) I D X M W I5: add $2, $3, $3 I - D X M W I6: sub $2, $2, $4 I - - D X M W

Exercício 6: Considere uma CPU usando uma estrutura pipeline com 5 estágios (IF, ID, EX, MEM, WB) e com memórias de dados e de instruções separadas, com mecanismo de data forwarding, com previsão estática de que o desvio não se confirmará e o conjunto de instruções a seguir: I1: addi $2, $zero, 1 I2: bne $2,$zero, I7 I3: sub $3, $2, $1 I4: sw $2, 50($1) I5: add $2, $3, $3 I6: sub $2, $2, $4 I7: lw $4, 0 ($1) Quantos são gastos para a execução deste código?

Exercício 6: (solução) Considere uma CPU usando uma estrutura pipeline com 5 estágios (IF, ID, EX, MEM, WB) e com memórias de dados e de instruções separadas, com mecanismo de data forwarding, com previsão estática de que o desvio não se confirmará e o conjunto de instruções a seguir: I1: addi $2, $zero, 1 I2: bne $2,$zero, I7 I3: sub $3, $2, $1 I4: sw $2, 50($1) I5: add $2, $3, $3 I6: sub $2, $2, $4 I7: lw $4, 0 ($1) Quantos são gastos para a execução deste código? ilustração de solução em pipelining 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 I1: addi $2, $zero, 1 I D X M W I2: bne $2, $zero, I7 I D X M W I3: sub $3, $2, $1 I D X F F I4: sw $2, 50($1) I D F F F I5: add $2, $3, $3 I F F F F I7: lw $4, 0 ($1) I D X M W Previsão errada obriga processador a anular (flush) instruções executadas erroneamente Zera os sinais de controle relativos às instruções executadas erroneamente Tem-se que fazer isto para instruções que estão nos estágios IF, ID e EX o Branch só é corretamente avaliado depois de EX

MIPS code for D=A+B; E=A+C; # Method 1: 13 ciclos lw $t1, 0($t0) lw $t2, 4($t0) add $t3, $t1, $t2 <-- RAW ($t2) sw $t3, 12($t0) lw $t4, 8($t0) add $t5, $t1, $t4 <-- RAW ($t4) sw $t5, 16($t0) Code Scheduling to Avoid Stalls # Method 2: 11 ciclos lw $t1, 0($t0) lw $t2, 4($t0) lw $t4, 8($t0) add $t3, $t1, $t2 sw $t3, 12($t0) add $t5, $t1, $t4 sw $t5, 16($t0)