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



Documentos relacionados
Paralelismo a Nível de Instrução

ARQUITETURA DE COMPUTADORES

28/9/2010. Paralelismo no nível de instruções Processadores superescalares

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:

Implementação de pipelines

Organização e Arquitetura de Computadores I

Visão Geral de Pipelining

Arquitetura de Computadores. Tipos de Instruções

Organização e Arquitetura de Computadores I

Arquitetura de Computadores I

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

Arquitetura de Computadores I

ULA Sinais de Controle enviados pela UC

Sistemas Computacionais II Professor Frederico Sauer

Organização e Arquitetura de Computadores I

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

28/9/2010. Unidade de Controle Funcionamento e Implementação

Máquina Multinível. Um programa pode ser definido como uma seqüência de instruções que descrevem como executar uma determinada tarefa.

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

BARRAMENTO DO SISTEMA

Introdução ao Processamento Paralelo

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

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

Informática I. Aula 4. Aula 4-11/09/2006 1

Arquiteturas RISC. (Reduced Instructions Set Computers)

ARQUITETURA DE COMPUTADORES

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

MODOS DE ENDEREÇAMENTO

ArchC. Wesley Nunes Gonçalves

ULA- Unidade Lógica Aritmética. Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

ARQUITECTURA DE COMPUTADORES

O Processador: Caminho de Dados e Controle

Arquitetura de Computadores Paralelismo, CISC X RISC, Interpretação X Tradução, Caminho de dados

2 Formalidades referentes ao trabalho

Geração de código intermediário. Novembro 2006

Introdução. Introdução. Introdução. Organização Estruturada de Computadores. Introdução. Máquinas Multiníveis

CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM

3. Arquitetura Básica do Computador

Arquitecturas Alternativas. Pipelining Super-escalar VLIW IA-64

Estruturas do Sistema de Computação

Capítulo 3 Processadores de Propósito Geral: Software

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

Caminho dos Dados e Atrasos

Pipelining - analogia

ORGANIZACÃO DE COMPUTADORES PROCESSADORES CHIPS TRANSISTORES

Organização e Arquitetura de Computadores. Capítulo 13 Paralelismo no nível de instruções

Introdução aos Computadores

Evolução dos Processadores

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini prof.andre.luis.belini@gmail.com /

Organização e Arquitetura de Computadores I. de Computadores

Introdução à Arquitetura de Computadores

Aula 14: Instruções e Seus Tipos

Arquitetura de Computadores. Ivan Saraiva Silva

Paralelismo. Computadores de alto-desempenho são utilizados em diversas áreas:

Registradores de uma CPU. Registradores de uma CPU - Acumulador

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 8

A Figura 1 mostra uma organização do NEANDER com uma UAL de 6 funções. Figura 1: Organização para o NEANDER.

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS

Microprocessadores. Prof. Leonardo Barreto Campos 1

1. NÍVEL CONVENCIONAL DE MÁQUINA (Cont.) 1.3. INSTRUÇÕES Conceitos Básicos

Estrutura de um Computador

5. EXPERIÊNCIAS E ANÁLISE DOS RESULTADOS Os Programas de Avaliação

Multiprocessamento. Multiprocessadores com memória distribuída (multicomputador)

Nível da Microarquitetura

Introdução. INF1005 Programação I 33K Prof. Gustavo Moreira gmoreira@inf.puc-rio.br

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Linguagem de Montagem Funcionamento de CPU e Assembly Rudimentar

A Unidade Central de Processamento é a responsável pelo processamento e execução de programas armazenados na MP.

ARQUITETURA DE COMPUTADORES

Prova P4/PS Disciplina: Organização de Computadores-EC Professor: Ney Laert Vilar Calazans lui+ori syscall 1. .text 2. main: $s0, string 3.

O processador é composto por: Unidade de controlo - Interpreta as instruções armazenadas; - Dá comandos a todos os elementos do sistema.

Processador ( CPU ) E/S. Memória. Sistema composto por Processador, Memória e dispositivos de E/S, interligados por um barramento

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

Memória Cache. Prof. Leonardo Barreto Campos 1

RISC - Reduced Instruction Set Computer

Diminui o gargalo existente entre processador e memória principal; 5 a 10 vezes mais rápidas que a memória principal; Ligada diretamente à MP;

Geração de código. Ivan Ricarte INTRODUÇÃO À COMPILAÇÃO

Organização de Computadores

Quadro de consulta (solicitação do mestre)

CISC - Complex Instruction Set Computer

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

PROJETO DE REDES

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

Arquitetura de Computadores - Princípio de Funcionamento da CPU. Por Helcio Wagner da Silva

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO

2. A influência do tamanho da palavra

Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho

CAPÍTULO 2 CARACTERÍSTICAS DE E/S E PORTA PARALELA

RAID. Propõe o aumento da confiabilidade e desempenho do armazenamento em disco. RAID (Redundant Array of Independent Disks )

Tipos de sistemas operacionais

OPERADORES E ESTRUTURAS DE CONTROLE

Organização e Arquitetura de Computadores

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

Sistema de Numeração e Conversão entre Sistemas. Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h

UNIVERSIDADE DO OESTE DE SANTA CATARINA CAMPUS DE SÃO MIGUEL DO OESTE

Sistemas Operacionais

A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande

O Hardware Dentro da Unidade do Sistema

Transcrição:

O throughput de um pipeline é determinado pela freqüência com que uma instrução sai do pipeline Todos os estágios devem estar prontos ao mesmo tempo para prosseguir O tempo requerido para mover uma instrução de um estágio a outro é denominado ciclo de máquina Desta forma, o tempo de um ciclo de máquina corresponde ao tempo requerido pelo estágio mais demorado Se os estágios estiverem perfeitamente balanceados, o tempo gasto por instrução no pipeline é definido por: tempoporin struçãonopipeline = tempoporinstruçãosempipeline númerodeestágiosnopipeline Arquiteturas de Alto Desempenho - Prof a Luiza Mourelle 1

Dessa forma, o speedup com pipeline corresponde ao número de estágios No entanto, o pipeline não é perfeitamente balanceado e ainda envolve mais esforços Pipeline leva a uma redução no tempo médio de execução por instrução: diminuição do número de ciclos de clock por instrução (cci); diminuição do ciclo de clock (cc); combinação dos fatores acima Pipeline aumenta o throughput de instruções (número de instruções executadas por unidade de tempo), mas não reduz o tempo de execução de uma instrução Arquiteturas de Alto Desempenho - Prof a Luiza Mourelle 2

O tempo de ciclo τ de um pipeline de instrução é o tempo requerido para avançar um conjunto de instruções de um estágio O tempo de ciclo pode ser determinado da seguinte maneira: τ = max( τ ) + d = τ + d, 1 i m i k onde: τ m = atraso máximo de estágio k = número de estágios do pipeline de instrução d = tempo necessário para propagar sinais e dados de um estágio para o próximo Em geral, d é equivalente ao pulso de um relógio e τ m >> d Arquiteturas de Alto Desempenho - Prof a Luiza Mourelle 3

Suponha que sejam processadas n instruções, sem que ocorra desvio O tempo total de execução é dado por: T k = [ k + ( n 1)] τ O speedup para a execução com o pipeline de instruções em relação à execução sem o uso do pipeline é: S k = T T 1 k = [ k nkτ = + ( n 1)] τ k nk + ( n 1) Em função do número de instruções executadas sem desvio, o fator de aceleração é igual a k quando n Arquiteturas de Alto Desempenho - Prof a Luiza Mourelle 4

Em função do número de estágios, o fator de aceleração se aproxima do número de instruções que podem ser introduzidas no pipeline sem desvio Quanto maior o número de estágios do pipeline, maior o speedup No entanto, o ganho diminui devido: ao aumento no custo da implementação; aos atrasos entre estágios; aos atrasos no processo de esvaziamento do pipeline quando ocorre instrução de desvio Um número de estágios entre 6 e 9 parece ser mais adequado Arquiteturas de Alto Desempenho - Prof a Luiza Mourelle 5

Speedup para execução com pipeline de instruções em relação à execução sem pipeline Speedup 14 12 10 8 6 4 2 0 1 10 100 1000 10000 Número de instruções k = 6 k = 9 k = 12 Arquiteturas de Alto Desempenho - Prof a Luiza Mourelle 6

Speedup para execução com pipeline de instruções em relação à execução sem pipeline Speedup 20 16 12 8 4 0 0 5 10 15 20 25 30 35 Número de estágios n = 10 n = 20 n = 30 Arquiteturas de Alto Desempenho - Prof a Luiza Mourelle 7

Múltiplos fluxos consiste em duplicar os estágios iniciais do pipeline para permitir a busca de ambas as instruções, usando dois fluxos de instruções Problemas: o uso de múltiplos pipelines introduz atrasos devidos à contenção de acesso a registradores e à memória; pode ocorrer a entrada de instruções de desvio adicionais no pipeline, antes que seja tomada a decisão sobre o desvio original Arquiteturas de Alto Desempenho - Prof a Luiza Mourelle 8

Busca antecipada da instrução-alvo do desvio consiste em buscar, antecipadamente, tanto a instrução-alvo do desvio quanto a instrução consecutiva ao desvio, no instante em que a instrução de desvio condicional é reconhecida A instrução-alvo é armazenada em um registrador até que a instrução de desvio seja executada Memória de laço consiste em usar uma pequena memória de alta velocidade (memória de laço de repetição ou loop buffer), mantida pelo estágio de busca de instrução, para guardar as n instruções buscadas mais recentemente, em seqüência Arquiteturas de Alto Desempenho - Prof a Luiza Mourelle 9

Considere uma memória de laço com 256 bytes e endereçamento de byte 8 memória de laço de 256 bytes endereço de desvio comparação dos bits mais significativos do endereço para determinar se a instrução está na memória de laço Arquiteturas de Alto Desempenho - Prof a Luiza Mourelle 10

Vantagens: com o uso de busca antecipada, a memória de laço conterá certo número de instruções que estão à frente da instrução corrente; se ocorrer um desvio para alguma posição adiante do endereço da instrução de desvio, essa posição já estará na memória de laço (útil em instruções do tipo IF-THEN-ELSE); particularmente adequada para lidar com laços de repetição ou iterações (se a memória for grande o suficiente para conter as instruções de uma iteração, estas terão que ser buscadas da memória apenas uma vez, para a primeira iteração) Arquiteturas de Alto Desempenho - Prof a Luiza Mourelle 11

Previsão de desvio pode ser feita de várias formas: prever que o desvio nunca será tomado: abordagem simples e estática, isto é, não depende do histórico das instruções até o momento em que ocorre a instrução de desvio condicional; continua buscando instruções na seqüência em que ocorrem no programa prever que o desvio sempre será tomado: abordagem simples e estática, isto é, não depende do histórico das instruções até o momento em que ocorre a instrução de desvio condicional; busca sempre as próximas instruções a partir do endereço-alvo do desvio Arquiteturas de Alto Desempenho - Prof a Luiza Mourelle 12

prever se o desvio será tomado ou não conforme o código de operação: abordagem simples e estática prever o desvio com base em chaves de desvio tomado e de desvio não tomado: abordagem dinâmica, isto é, depende do histórico de execução prever o desvio com base em uma tabela de histórico de desvios: abordagem dinâmica Se a busca da instrução consecutiva à instrução de desvio causar uma falta de página ou uma violação de proteção, o processador interromperá a busca antecipada da instrução até que tenha certeza de que essa instrução deve ser mesmo buscada Arquiteturas de Alto Desempenho - Prof a Luiza Mourelle 13

Análises de comportamento de programas mostram que desvios condicionais são tomados em mais de 50% das vezes Se o custo da busca antecipada de instruções for o mesmo em qualquer caminho, o resultado obtido deverá ser melhor se a busca antecipada de instruções for sempre efetuada a partir do endereço-alvo do desvio Entretanto, em uma máquina que usa paginação, a busca antecipada de instruções, a partir do endereço de desvio, tem maior probabilidade de causar uma falta de página do que a busca de instruções consecutivas à instrução de desvio Arquiteturas de Alto Desempenho - Prof a Luiza Mourelle 14

A previsão de desvio com base no código de operação da instrução de desvio pressupõe que para determinados códigos o desvio é sempre tomado e para outros não, havendo um aproveitamento de 75% Estratégias dinâmicas de previsão de desvio mantêm um histórico sobre as instruções de desvio condicional, ie um ou mais bits (chaves de desvio tomado ou de desvio não tomado) são associados a cada instrução de desvio condicional Utilizando-se somente um bit de histórico, pode-se registrar se a última execução da instrução resultou em desvio ou não Arquiteturas de Alto Desempenho - Prof a Luiza Mourelle 15

Uma desvantagem neste caso ocorre quando o desvio é quase sempre tomado, tal como em instruções de desvio usadas para implementar laços de repetição Sempre ocorrerão dois erros de previsão de desvio, cada vez que o laço de repetição for executado: uma vez na entrada e outra na saída Atraso de desvio consiste em reordenar as instruções, de modo que as instruções de desvio ocorram mais tarde Arquiteturas de Alto Desempenho - Prof a Luiza Mourelle 16

Considere a arquitetura do processador DLX, sem pipeline: 32 registradores de 32 bits (R0 a R31); 31 registradores de ponto flutuante (F0 a F30); endereçamento de dados é imediato ou deslocamento; endereçamento de byte, com endereço de 32 bits; instruções de carga e armazenamento; instruções aritméticas e lógicas; instruções de desvio Arquiteturas de Alto Desempenho - Prof a Luiza Mourelle 17

Todas as instruções são de 32 bits, com 6 bits para código de operação e 16 bits para endereçamento por deslocamento, constantes imediatas e endereços de desvio relativos ao contador de programas (PC): instrução do tipo I: instrução do tipo R: opcod rs1 rd imediato 6 5 5 16 opcod rs1 rs2 rd função 6 5 5 5 11 instrução do tipo J: opcod Deslocamento somado ao PC 6 26 Há quatro classes de instruções: cargas e armazenamentos, operações com a ALU, desvios e operações de ponto flutuante Arquiteturas de Alto Desempenho - Prof a Luiza Mourelle 18

Todas as instruções levam, no máximo, cinco ciclos de clock para serem executadas: 1 ciclo de busca de instrução (IF): IR mem[pc]; NPC PC + 4 2 ciclo de decodificação de instrução/busca de registrador (ID): A regs[ir 6 10 ]; B regs[ir 11 15 ]; Imm (IR 16 31 ); Arquiteturas de Alto Desempenho - Prof a Luiza Mourelle 19

3 ciclo de execução/endereço efetivo (EX): ALUoutput A + Imm; endereçamento de memória ALUoutput A op B; operação entre registradores ALUoutput A op Imm; operação entre registrador e imediato ALUoutput NPC + Imm; cálculo do endereço de desvio Cond (A op 0); operação de comparação dependendo do código de operação (ie, ==) Arquiteturas de Alto Desempenho - Prof a Luiza Mourelle 20

4 ciclo de acesso à memória/complemento de desvio (MEM): LMD mem[aluoutput] ou mem[aluoutput] B; endereçamento de memória if (cond) then PC ALUoutput else PC NPC; desvio condicional 5 ciclo de escrita (WB): regs[ir 16 20 ] ALUoutput; regs[ir 11 15 ] ALUoutput; regs[ir 11 15 ] LMD Arquiteturas de Alto Desempenho - Prof a Luiza Mourelle 21

IF ID EX MEM WB mux 4 soma NPC zero cond PC memória de instrução IR regs A B mux mux ALU aluoutput memória de dados LMD mux Imm Arquiteturas de Alto Desempenho - Prof a Luiza Mourelle 22

Ao término de cada ciclo de clock, cada valor computado durante aquele ciclo e requerido num ciclo mais tarde (quer seja para esta instrução ou a próxima) é escrito em um meio de armazenamento, que pode ser a memória, um registrador de propósito geral, o PC ou um registrador temporário (LMD, Imm, A, B, IR, NPC, ALUoutput ou Cond) Esses registadores temporários armazenam valores entre ciclos de clock para uma instrução, enquanto os outros meios de armazenamento são elementos do estado da arquitetura e guardam valores entre instruções sucessivas Nesta arquitetura, instruções de desvio requerem quatro ciclos de clock e todas as outras requerem cinco ciclos de clock Arquiteturas de Alto Desempenho - Prof a Luiza Mourelle 23

Pode-se implementar pipeline nesta arquitetura começando uma nova instrução a cada ciclo de clock e associando um estágio do pipeline a cada ciclo da arquitetura descrita ciclos de clock instrução 1 2 3 4 5 6 7 8 9 i IF ID EX MEM WB i+1 IF ID EX MEM WB i+2 IF ID EX MEM WB i+3 IF ID EX MEM WB i+4 IF ID EX MEM WB Arquiteturas de Alto Desempenho - Prof a Luiza Mourelle 24

IF/ID ID/EX EX/MEM MEM/WB 4 soma mux zero desvio PC memória de instrução IR IR 6 10 IR 11 15 MEM/WBIR regs mux mux ALU memória de dados mux Arquiteturas de Alto Desempenho - Prof a Luiza Mourelle 25

Os registradores do pipeline armazenam tanto dados quanto controle de um estágio do pipeline para o próximo Qualquer valor necessário em um estágio adiante deve ser posto em um desses registradores e copiado de um registrador para outro, até não ser mais requerido Por exemplo, o campo de um operando usado em uma escrita ou numa operação da ALU é fornecido pelo registrador do estágio MEM/WB, ao invés do registrador do estágio IF/ID Isto porque o estágio IF/ID está, no momento, associado a outra instrução que não aquela correspondente à operação no estágio MEM/WB Qualquer instrução está ativa em exatamente um estágio do pipeline de cada vez Arquiteturas de Alto Desempenho - Prof a Luiza Mourelle 26

Estágio IF ID Qualquer instrução IF/IDIR mem[pc]; IF/IDNPC,PC (se EX/MEMcond então (EX/MEMNPC) senão (PC+4); ID/EXA regs[if/idir 6 10 ]; ID/EXB regs[if/idir 11 15 ]; ID/EXNPC IF/IDNPC; ID/EXIR IF/IDIR; ID/EXImm IR 16 31; Instrução para ALU Carga ou armazenamento Desvio EX EX/MEMIR ID/EXIR; EX/MEMALUoutput IDEXA op ID/EXB; ou EX/MEMALUoutput ID/EXA op ID/EXImm; EX/MEMcond 0; EX/MEMIR ID/EXIR; EX/MEM/ALUoutput ID/EXImm; EX/MEMcond 0; EX/MEMB ID/EXB; EX/MEMALUoutput ID/EXNPC+ID/EXImm; EX/MEMcond (ID/EXA op 0); MEM MEM/WBIR EX/MEMIR; MEM/WBALUoutput EX/MEMALUoutput; MEM/WBIR EX/MEMIR; MEM/WBLMD mem[ex/memaluoutput]; ou mem[ex/memaluoutput] EX/MEMB; WB Regs[MEM/WBIR 16 20 ] MEM/WBALUoutput; ou Regs[MEM/WBIR 11 15 ] MEM/WBLMD; Regs[MEM/WBIR 11 15 ] MEM/WBALUoutput Arquiteturas de Alto Desempenho - Prof a Luiza Mourelle 27

Se a instrução i for um desvio a ser tomado, então o PC será modificado ao final do estágio MEM, após o complemento do cálculo do endereço e comparação O método mais simples de tratar com desvios é parar o pipeline, assim que um desvio é detetado, até chegar ao estágio MEM, que vai determinar o próximo PC Neste caso, a parada do pipeline só ocorre após o estágio ID, quando se identifica que a instrução é um desvio Arquiteturas de Alto Desempenho - Prof a Luiza Mourelle 28

Um desvio causa uma parada de três ciclos no pipeline A instrução depois do desvio é buscada, mas é ignorada ciclos de clock instrução 1 2 3 4 5 6 7 8 9 10 i (desvio) IF ID EX MEM WB i+1 IF parada parada IF ID EX MEM WB i+2 IF ID EX MEM WB i+3 IF ID EX MEM i+4 IF ID EX i+5 IF ID Arquiteturas de Alto Desempenho - Prof a Luiza Mourelle 29

O número de ciclos de clock numa parada por desvio pode ser reduzido através de duas ações: 1 identificar mais cedo se o desvio deve ser tomado ou não; 2 computar mais cedo o endereço alvo de desvio Na arquitetura do DLX, é possível completar o teste da condição de desvio ao final do estágio ID Para tirar vantagem do teste da condição nesse estágio, os valores possíveis do PC já devem estar computados Arquiteturas de Alto Desempenho - Prof a Luiza Mourelle 30

IF/ID ID/EX EX/MEM MEM/WB 4 mux soma soma zero IR 6 10 PC memória de instrução IR IR 11 15 MEM/WBIR regs mux ALU memória de dados mux Arquiteturas de Alto Desempenho - Prof a Luiza Mourelle 31

Uma vez que o desvio é feito ao final do estágio ID, os estágio EX, MEM e WB não são utilizados durante um desvio Estágio IF ID EX MEM WB Instrução de desvio IF/IDIR mem[pc]; IF/IDNPC,PC (se EX/MEMcond então (EX/MEMNPC) senão (PC+4); ID/EXA regs[if/idir 6 10 ]; ID/EXB regs[if/idir 11 15 ]; ID/EXNPC IF/IDNPC + IR 16 31 ; ID/EXIR IF/IDIR; ID/EXcond (regs[if/idir 6 10 ] op 0]; ID/EXImm IR 16 31 ; Arquiteturas de Alto Desempenho - Prof a Luiza Mourelle 32