Arquitectura de Computadores II L.E.S.I. 3º ano 2005/06. Módulo nº 4 Encadeamento e resolução de anomalias

Documentos relacionados
Arquitectura de Computadores II L.E.S.I. 3º ano. Módulo nº 3 Princípios gerais de encadeamento

Y86: Encadeamento de Instruções (PIPE) Arquitectura de Computadores Lic. em Engenharia Informática Luís Paulo Santos

Arquitetura de Computadores Trabalhos Práticos

Arquitectura de Computadores Y86 Sequencial. Créditos Randal E. Bryant

Arquitectura de Computadores Y86 Sequencial. Créditos Randal E. Bryant

Arquitectura de Computadores Y86 Instruções

TEÓRICA. lb $t0, 1($t1)

RESOLUÇÃO. Identifique todas as folhas! Não escreva nada fora dos rectângulos

A arquitectura IA32. A arquitectura de um processador é caracterizada pelo conjunto de atributos que são visíveis ao programador.

ORGANIZAÇÃO DE COMPUTADORES

Lic. Engenharia de Sistemas e Informática

Nível Máquina Formatos de Instruções

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 é

Computadores e Programação (MAB ) Lista 2 - Grupo de até 3 alunos - 90 pontos

Arquitetura e Organização de Computadores

MICROPROCESSADORES. Aula 10

Microprocessadores. Família x86 - Evolução

Introdução à Computação: Arquitetura von Neumann

Curso: LMCC Exame 1ª Chamada 14/Jun/06 Disciplina: Arquitectura de Computadores Duração: 2h30m

CPU. CPU Unidade Central de Processamento. Função: leitura, escrita e processamento de dados

2. Relativamente ao datapath de ciclo único do MIPS podemos dizer que:

Assembly IA32 Procedimentos

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

Computadores e Programação (DCC/UFRJ)

Programando em Assembly

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

Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores

ORGANIZAÇÃO DE COMPUTADORES

Arquitetura e Organização de Computadores

Y86: Datapath Sequencial. Arquitectura de Computadores Lic. em Engenharia Informática Luís Paulo Santos

AJProença, Sistemas de Computação, UMinho, 2017/18 1

Estrutura do tema Avaliação de Desempenho (IA-32)

Arquitecturas Alternativas. Arquitectura X86-64 Arquitecturas RISC Exemplo: MIPS Desempenho de sistemas Pipelining

INSTITUTO SUPERIOR TÉCNICO. Arquitectura de Computadores (ACom)

Computadores de Programação (DCC/UFRJ)

Sistemas de Computação

Sistemas de Computação para Controle e Automação CIC132. Assembly. Assembly. Notas. Décima quarta aula: Introdução a programação Assembly

Barramento. Prof. Leonardo Barreto Campos 1

Sistemas de Memória I

Organização de computadores. Aula 05

Procedimentos Chamada de Funções e Parâmetros

Arquitetura de Microprocessadores

Procedimentos Chamada de Funções e Parâmetros

Instruções funcionamento em 16 bits. 8B bytes W Mod 000 r/m

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

Arquitetura de Computadores I

Computadores e Programação (DCC/UFRJ)

Pipeline. Prof. Leonardo Barreto Campos 1

Arquitectura e Organização de Computadores

Lab. de Programação Concorrente em Física Primeira Prática

Programação em Assembly Optimização do código

BARRAMENTO DO SISTEMA. Adão de Melo Neto

Linguagem de Montagem e Assembly. André Luiz da Costa Carvalho

Arquitetura e Organização de Computadores

Estrutura de uma função ( / procedimento )

Sistemas de Microprocessadores DEP. DE ENG.ª ELECTROTÉCNICA E DE COMPUTADORES FACULDADE DE CIÊNCIAS E TECNOLOGIA UNIVERSIDADE DE COIMBRA.

Organização Básica de Computadores (Parte I)

A linguagem ASSEMBLY

Arquitetura do SET de instruções Instruction SET. CISC vs RISC. What s assembly as to do with it?

µinstruções µoperações representadas em binário podem ser compactadas numa só µinstrução exemplo (as 3 últimas µinstruções anteriores):

Estrutura do tema ISC

Professor: Dr. Rogério Rodrigues de Vargas.

Introdução. Num micro-processador a informação é guardada em registos. Para isso precisamos de muitos registos, isto é memória em massa

Introdução à Arquitetura de Computadores

BARRAMENTOS. Adão de Melo Neto

ESTRUTURA DE DADOS VARIÁVEIS E PONTEIROS

Pipelines. João Canas Ferreira. Mar-Abr Contém figuras de: Computer Organization & Design, D. A Patterson e J. L. Hennessy, 2 a ed. (cap.

Estrutura do tema ISA do IA-32

INFORMÁTICA PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES. Prof. Dr. Daniel Caetano

Módulo 3 - Estrutura e configuração de Sistemas Operativos monoposto

Periféricos e Interfaces Ano lectivo 2003/2004 Docente: Ana Paula Costa. Aula Teórica 3

Arquitecturas pré von Neumann: O ENIAC

Escola Secundária de Emídio Navarro

Escola Secundária de Emídio Navarro

COMPUTADOR 2. Professor Adão de Melo Neto

Escola Secundária de Emídio Navarro

Universidade Federal da Bahia Instituto de Matemática Departamento de Ciência da Computação MATA49 Programação de software básico Arquitetura Intel

7 Mecanismos de gestão de memória. Prof. Ricardo Silva

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES

LISTA 02 CONJUNTO DE INSTRUÇÕES - GABARITO

Nível da Arquitetura do Conjunto das Instruções

LEIC/LERC 2008/09 Primeiro Teste de Sistemas Operativos

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

Escola Secundária de Emídio Navarro

Computadores e Programação (MAB-353) Primeira Prova -Prof. Paulo Aguiar (DCC/UFRJ) 19/05/ pontos

Mestrado em Informática. Curso de Especialização em Informática. Optimização do desempenho (no CPU) com introdução de paralelismo

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

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

ULA. Combina uma variedade de operações lógicas e matemáticas dentro de uma única unidade.

Nome: N.º Ano: Turma: Turno: Responde às seguintes questões 1. Qual o primeiro nome do computador à base de transístores?

Arquitectura de Computadores (ACom)

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

INSTITUTO SUPERIOR TÉCNICO. Arquitectura de Computadores (ACom)

Arquitectura e Organização de Computadores

Microprocessadores MICROPROCESSADORES. Unidade de Processamento. Sumário

Introdução aos Sistemas Computacionais

UCP: Construindo um Caminho de Dados (Parte III)

Introdução aos Sistemas Computacionais 2008/09

Transcrição:

Arquitectura de Computadores II L.E.S.I. 3º ano 2005/06 Módulo nº 4 Encadeamento e resolução de anomalias 1. Introdução No final deste módulo os alunos deverão ser capazes de: avaliar os ganhos/perdas conseguidas com o encadeamento de instruções e com a utilização de atalhos; 2. Material de apoio A bibliografia relevante para este módulo é a secção 4.4 e 4.5 do livro Computer Systems: a Programmer s Perspective, de Randal E. Bryant e David O Hallaron. 3. Exemplos EXEMPLO 1.1 Identifique para cada ciclo do relógio a ocupação de cada estágio do processador, para a versão PIPE- do Y86 injecção de bolhas. O código é apresentado com cada instrução etiquetada. A coluna esquerda da tabela é preenchida com a etiqueta correspondente à instrução apropriada. Justifique a sua solução no espaço abaixo. I1: irmovl $10, %eax I2: irmovl $20, %ebx I3: irmovl $30, %ecx I4: addl %edx, %eax I3 F D E M W I4 F D D E M W Só existe uma dependência de dados entre I4 e I1, devido à escrita e posterior leitura de %eax. I4 só pode completar o estágio D no ciclo seguinte à escrita (W) de I1, ou seja a leitura de %eax acontece no ciclo 6

EXEMPLO 1.2 Usando o mesmo código do exemplo anterior, identifique para cada ciclo do relógio a ocupação de cada estágio do processador, para a versão PIPE do Y86 versão com atalhos. Justifique devidamente a sua resposta, indicando quais os sinais de atalho utilizados. I3 F D E M W I4 F D E M W Só existe uma dependência de dados entre I4 e I1, devido à escrita e posterior leitura de %eax. No ciclo 5, quando I4 precisa de ler o valor de %eax, a escrita de I1 ainda não foi efectuada. No entanto, o valor a escrever está disponível no registo W, sinal W_valE. Este sinal é realimentado para o estágio D, podendo ser usado durante o ciclo 5. O sinal a realimentar é o sinal val_b, pois %eax é o registo da direita da instrução addl %edx, %eax Ciclo 5: D : val_b = W_valE EXEMPLO 1.3 Sabendo que o código dos exemplos anteriores está carregado em memória a partir do endereço 0x0100, qual o valor do PC no ciclo 5. As instruções I!, I2 e I3 têm 6 bytes de comprimento (icode:ifun + ra:rb + I) logo a instrução I4 está armazenada a partir do endereço 0x0100 + 3*6 = 0x0112 A instrução I4 tem dois bytes de comprimento ((icode:ifun + ra:rb) logo a instrução a seguir, que seria lida no ciclo 5, está no endereço 0x0114 e este é o valor do PC neste instante.

EXEMPLO 2.1 Identifique para cada ciclo do relógio a ocupação de cada estágio do processador, para a versão PIPE- do Y86 injecção de bolhas. O código é apresentado com cada instrução etiquetada. A coluna esquerda da tabela é preenchida com a etiqueta correspondente à instrução apropriada. Justifique a sua solução no espaço abaixo. I1: irmovl $100, %ebx I2: mrmovl $0(%ebx), %eax I3: addl %ebx, %eax I2 F D D D D E M W I3 F F F F D D D D E M W Existe uma dependência de dados entre I2 e I1, devido à escrita e posterior leitura de %ebx. I2 só pode completar o estágio D no ciclo seguinte à escrita (W) de I1, ou seja a leitura de %ebx acontece no ciclo 6. Existe outra dependência de dados entre I3 e I2, devido à escrita e posterior leitura de %eax. I3 só pode completar o estágio D no ciclo seguinte à escrita (W) de I2, ou seja a leitura de %eax acontece no ciclo 10. EXEMPLO 2.2 Usando o mesmo código do exemplo anterior, identifique para cada ciclo do relógio a ocupação de cada estágio do processador, para a versão PIPE do Y86 versão com atalhos. Justifique devidamente a sua resposta, indicando quais os sinais de atalho utilizados. I3 F D D E M W Existe uma dependência de dados entre I2 e I1, devido à escrita e posterior leitura de %ebx. No final do ciclo 3, o valor a guardar em %ebx fica disponível à saída da ALU, no sinal e_vale. Este sinal é realimentado para o estágio D, podendo ser usado no final do ciclo 3. O sinal a realimentar é o sinal val_a, pois %ebx é o registo da esquerda da instrução mrmovl $0(%ebx), %eax Ciclo 3 - D : val_a = e_vale A instrução I3 depende de I1 e I2. Embora o valor de %ebx pudesse ser lido de M_valE no ciclo 4, o valor de %eax só é lido de memória no ciclo 5, nunca podendo estar disponível no ciclo 4. Esta é uma penalização do tipo load/use e implica a injecção de uma bolha. No final do ciclo 5 o valor de %ebx pode ser lido de W_valE e o valor de %eax pode ser lido de m_valm. Ciclo 5 D: val_a = W_valE; val_b = m_valm

4. Exercícios Exercício 1 Usando o código apresentado abaixo, identifique para cada ciclo do relógio a ocupação de cada estágio do processador, para a versão PIPE do Y86 versão com atalhos. Justifique devidamente a sua resposta, indicando quais os sinais de atalho utilizados. I1: irmovl %10, %edx I2: irmovl %20, %ebx I3: irmovl %30, %ecx I4: mrmovl $0(%esi), %eax I5: xorl %eax, %eax I6: jne I9 I7: rmmovl %eax, $0(%esi) I8: halt I9: rmmovl %eax, $0(%edi) I10: halt 14 15 16 17 18 19

Exercício 2.1 Reordene o programa anterior por forma a minimizar o número de bolhas injectadas no processador. I1: I2: I3: I4: I5: I6: I7: I8: I9: I10: 14 15 16 17 18 19 Exercício 2.2. Qual o tamanho em bytes deste programa?. Qual o valor do PC no ciclo 7, se o programa estiver armazenado em memória a partir do endereço 0x0050?