SSC114 Arquitetura de Computadores Pipeline - Predição de desvios

Slides:



Advertisements
Apresentações semelhantes
Contadores e Registradores
Advertisements

AULA 01 PROGRAMAÇÃO DINÂMICA
PIPELINE (continuação).
Software Básico Silvio Fernandes Universidade Federal Rural do Semiárido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula 05:
Arquitetura de Computadores
WebDesign Redes de Computadores Aula 05
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Ambientais Ciência da Computação Aula 06: Funções.
Estruturas de Repetição
WebDesign Redes de Computadores Aula 07
Aula 06: Introdução ao Pipelining, Hazards Estruturais e Forwarding
Introdução Arquitectura com unidade de controlo uniciclo.
Ciclos, Vectores e Gráficos Simulação da Queda de Corpos II
Software Básico Silvio Fernandes
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula.
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula.
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula.
MIPS PIPELINE.
Processador Intel Itanium
Daniel M. Aquino, Marcelo C. Perez, Thais A. B. Fernandes
Arquiteturas Superescalares
Técnicas de Predição de Desvios
Pipeline.
CISC e RISC.
DIAGRAMA DE ATIVIDADES
Arquivos Extensíveis.
SSC144 Arquitetura de Computadores Introdução
SSC114 Arquitetura de Computadores Pipeline - Desempenho
Aula 10 06/10/10 (Turma 1 e 2) Profa. Sarita
Introdução à Lógica de Programação (cont.)
Rganização de Computadores Melhorias de Desempenho com Pipelines - Parte B - Capítulo 6 – Patterson & Hennessy Organização de Computadores Melhorias de.
Rganização de Computadores Melhorias de Desempenho com Pipelines Capítulo 6 – Patterson & Hennessy Organização de Computadores Melhorias de Desempenho.
Capítulo 7 Multimídia 7.1 Introdução à multimídia
Organização da Memória Principal
Arquitetura de Computadores
Sincronização e Comunicação entre Processos
Programação Baseada em Objectos Desenho de TAD
Estrutura de decisão e repetição em JAVA
Sistemas Operacionais I
Sistemas Operacionais
Sistemas Operacionais I
Introdução à Programação
Semana 03: Comandos de desvio de fluxo. Expressões lógicas.
Arquitetura de Sistemas Operacionais – Machado/Maia 10/1 Arquitetura de Sistemas Operacionais Francis Berenger Machado Luiz Paulo Maia Capítulo 10 Gerência.
Prof. Felipe Ferreira de Oliveira
Funcionamento básico de um computador
Pipeline 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.
Arquitetura de computadores
Sistemas Operacionais
Semana 03 Comandos de desvio de fluxo. Expressões lógicas.
Arquitetura de computadores
Introdução e Busca Cega
Organização e Arquitetura de Computadores
ENGA78 – Síntese de Circuitos Digitais
1 2 Observa ilustração. Cria um texto. Observa ilustração.
Campus de Caraguatatuba Aula 8: Noções Básicas sobre Erros (2)
Organização e Arquitetura de Computadores
Agenda - Aula 2 Introdução (Computador Digital) Processadores
Contextualização de Paralelismo em nível de instrução
INPE / CAP-315 Airam J. Preto, Celso L. Mendes Aula 5 (1) Análise de Dependência Tópicos: Restrições à Vetorização Detecção de Dependência Teste.
Campus de Caraguatatuba Aula 2: Somatório e Produtório
ARQUITETURA DE COMPUTADORES II
Unidade Central De Processamento: Processador
Planilha Eletrônica - Excel
8088 Assembly Software Básico Mitsuo Takaki.
Conceitos Avançados de Arquitetura de Computadores Arquiteturas RISC Reduced Instruction Set Computer 6.
Conceitos Avançados de Arquitetura de Computadores Arquiteturas RISC Arquiteturas Superpipeline e Superescalares.
1  1998 Morgan Kaufmann Publishers Paulo C. Centoducatte – MC542 - IC/Unicamp- 2006s Prof. Paulo Cesar Centoducatte
Arquitetura de computadores
 Evolução constante das linguagens de programação de alto nível (LAN) desde o Fortran (primeira LAN)  Surgimento de novos paradigmas como a OO, Orientação.
Transcrição da apresentação:

SSC114 Arquitetura de Computadores Pipeline - Predição de desvios Aula 5 25/08/10 (Turmas 1 e 2) Profa. Sarita

Conflitos ou Dependências em Pipelines (Hazards) Hazards: impedem que a próxima instrução do fluxo de instruções seja executada durante seu ciclo de clock designado Conflitos Estruturais Pode haver acessos simultâneos à memória feitos por 2 ou mais estágios. Dependências de Dados As instruções dependem de resultados de instruções anteriores, ainda não completadas. Dependências de Controle A próxima instrução não está no endereço subseqüente ao da instrução anterior.

Problemas com Pipelines Conflitos Estruturais Ocorre quando duas instruções tentam acessar o mesmo dispositivo ao mesmo tempo Soluções: Duplicar unidades funcionais Aumentar o número de portas de acesso à memória principal Separar cache de dados e de instruções (L1)

Problemas com Pipelines Conflitos por dados Dependências verdadeiras ou diretas RAW (Read After Write) Possíveis soluções: Colocação de instruções nop ou escalonamento adequado pelo processador Adiantamento (técnica forwarding ou bypassing)

Problemas com Pipelines Conflitos por dados Dependências falsas Ocorrem quando é possível iniciar ou terminar a execução das instruções fora de ordem, ou seja, não é possível determinar o valor dos registradores em cada instante com base apenas na seqüência de instruções Antidependência WAR (Write After Read) Dependência de saída WAW (Write After Write) Solução usual: Renomeamento de registradores

Problemas com Pipelines Conflitos de Controle Efeito dos desvios condicionais Se o desvio ocorre, o pipeline precisa ser esvaziado Não se sabe se o desvio ocorrerá ou não até o momento de sua execução

Problemas com Pipelines Conflitos de Controle Maneiras de se tratar as conseqüências de uma parada no pipeline por causa dos desvios: Predição Estática de Desvios O compilador faz uma predição se o desvio vai ser tomado ou não Geração de “bolhas” quando a predição é errada, baixa taxa de acertos Não permite adaptações com relação ao comportamento do programa Predição Dinâmica de Desvios Existem mecanismos em “hardware” que fazem a predição baseada no comportamento daquele desvio no passado Alta taxa de acertos

Problemas com Pipelines Conflitos de Controle Predição estática Congelar o pipeline até que o resultado do desvio seja conhecido Insere “bolhas” no pipeline Solução ruim quando o pipeline é muito longo

Problemas com Pipelines Conflitos de Controle - Predição de Desvios Predição Estática (cont.) Assumir que todos os desvios não são executados (predicted-untaken) Assumir que todos os desvio são tomados (predicted- taken) Assumir que todos os desvios com determinado operation code serão tomados Os desvios para trás são assumidos como tomados (branch taken) e os desvios para frente são assumidos como não tomados (branch not taken) – Backward-taken, forward not-taken (BTFNT)

Problemas com Pipelines Conflitos de Controle Predição Estática (cont.) Utilização de Delayed Branch (desvio atrasado) para instruções de desvio Instrução após o desvio é sempre executada A próxima instrução é chamada de delay slot (posição de atraso) Reordenamento das instruções (desvio atrasado otimizado)

Problemas com Pipelines Conflitos de Controle Endereço Normal Atrasado Otimizado 100 LOAD X,A LOAD X,A LOAD X,A 101 ADD I,A ADD I,A JUMP 105 102 JUMP 105 JUMP 106 ADD I,A 103 ADD A,B NOOP ADD A,B 104 SUB C,B ADD A,B SUB C,B 105 STORE A,Z SUB C,B STORE A,Z 106 STORE A,Z

Problemas com Pipelines Conflitos de Controle Preenchimento do Delay Slot Para facilitar o trabalho do compilador no preenchimento do delay slot muitas arquiteturas permitem o uso do delay slot com a opção de anulação automática dessa instrução se o desvio condicional não for tomado Desse modo, uma instrução do endereço alvo pode ser movida para o delay slot, o que é muito útil no caso de loops. Nesse caso, está implícita uma predição de desvio estática que diz que o desvio será sempre tomado

Problemas com Pipelines Conflitos de Controle Preenchimento do Delay Slot com reordenamento das instruções

Problemas com Pipelines Conflitos de Controle - Predição de Desvios Predição dinâmica Preditor de 1 bit Mantém uma pequena memória indexada pela parte menos significativa do endereço da instrução de desvio Buffer de predição de desvios (Branch-Prediction Buffer) ou Tabela de histórico de desvios Contém 1 bit (preditor de 1 bit) que diz se o desvio foi tomado recentemente ou não e que indica se o próximo desvio deve ou não ser considerado Em caso de erros esse bit é alterado Não mantém histórico

Problemas com Pipelines Conflitos de Controle - Predição de Desvios Predição Dinâmica Preditor de 1 bit Um preditor de 1-bit prediz corretamente um desvio ao final de uma iteração de um loop, enquanto o loop não termina. Em loops aninhados, um preditor de 1-bit irá causar duas predições incorretas para o loop interno: Uma vez no final do loop, quando a iteração termina o loop ao invés de ir para o começo do loop, e Uma vez quando a primeira iteração do loop for reiniciada, quando ele prediz o término do loop ao invés do começo do loop. Este erro duplo em loops aninhados é evitado por um esquema de predição de dois bits. Preditor de 2-bits: Uma predição deve errar duas vezes antes de ser alterada quando um preditor de 2-bits é utilizado.

Problemas com Pipelines Conflitos de Controle - Predição de Desvios Predição dinâmica Preditor de 2 bits O preditor de dois bits (bimodal) é essencialmente um contador de dois bits com valores entre 0 e 3 Quando o contador é maior ou igual ao valor 2, o desvio é predito como tomado; em caso contrário é predito como não tomado O contador é incrementado em um desvio tomado e decrementado em um desvio não tomado

Problemas com Pipelines Conflitos de Controle - Predição de Desvios Dois bits para decisão 11 10 01 00

Problemas com Pipelines Conflitos de Controle - Predição de Desvios N-bits para decisão Incrementa a cada acerto e decrementa em caso de erro Se maior que valor estipulado, considera o desvio N >> 2 não apresenta melhoras significativas

Problemas com Pipelines Conflitos de Controle - Predição de Desvios Localização do Buffer de Predição Cache Especial A cache é acessada durante a Busca de Instrução e os bits de predição usados durante a Decodificação da instrução (se a instrução for uma decisão) Cache de Instrução Os bits de decisão são armazenados junto com as instruções que estão na cache

Problemas com Pipelines Conflitos de Controle - Predição de Desvios Precisão da Predição Utilizando uma cache de 4Kbytes Dois bits de decisão Executando o SPEC89 Obtém-se de 1 a 18% de erro Predição estática – 30% de erro

Problemas com Pipelines Conflitos de Controle - Predição de Desvios Precisão da Predição Como melhorar: Aumento do Cache – limitado! Aumento do número de bits – não melhora muito! Verificar correlação com desvios vizinhos

Problemas com Pipelines Conflitos de Controle - Predição de Desvios Previsores de Desvio com Relacionamento Considera a decisão do desvio anterior Previsor (1,1) Utiliza o comportamento do último desvio para escolher entre dois previsores de desvios de 1 bit: Desvio Anterior - Desviou ou não? Se desviou, considera o 1o bit senão considera o 2o bit T – Taken (desviou) NT – Not Taken (não desviou)

Problemas com Pipelines Conflitos de Controle - Predição de Desvios Preditor de 1 bit

Problemas com Pipelines Conflitos de Controle - Predição de Desvios Previsor (1,1)

Problemas com Pipelines Conflitos de Controle - Predição de Desvios Previsores de Desvio com Relacionamento Previsor (n,m) Considera os n desvios anteriores Para cada combinação tem-se m bits de predição Número de bits: 2n * m * número de entradas de previsões selecionadas pelo endereço de destino

Problemas com Pipelines Conflitos de Controle - Predição de Desvios Buffer de Destino de Desvio Branch Target Buffer (BTB) A instrução de desvio só é identificada quando for decodificada Nesse ponto já perdeu-se um ciclo Utiliza-se uma cache de instruções de desvios Durante busca de instrução já se sabe se é desvio

Problemas com Pipelines Conflitos de Controle - Predição de Desvios Buffer de Destino de Desvio

BTB timing