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



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

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

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

Arquitetura de Computadores I

Caminho dos Dados e Atrasos

Predição de Desvios e Processadores Superescalares Especulativos

Algumas características especiais

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

Arquitetura e Organização de Computadores 2

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

Introdução ao Processamento Paralelo

Arquitetura de Computadores I

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

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

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

Microarquiteturas Avançadas

Programação Concorrente Introdução

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

Sequenciamento dinâmico

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

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

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

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

ARQUITETURA DE COMPUTADORES

CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM

Arquitetura de Computadores. Ivan Saraiva Silva

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

Processos e Threads (partes I e II)

Organização e Arquitetura de Computadores. Aula 10 Ponto Flutuante Parte I Juliana F. Camapum Wanderley

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores. Hugo Barros @hugobarros.com.br

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

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 8

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


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

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

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

RISC X CISC - Pipeline

ARQUITETURA DE COMPUTADORES

Unidade 4 Paralelismo em Nível de Instrução. Filipe Moura de Lima Gutenberg Pessoa Botelho Neto Thiago Vinícius Freire de Araújo Ribeiro

Arquitecturas Alternativas. Pipelining Super-escalar VLIW IA-64

RISC - Reduced Instruction Set Computer

Sistema Operacional Correção - Exercício de Revisão

Sistemas Distribuídos. Aleardo Manacero Jr.

Sistemas Computacionais II Professor Frederico Sauer

Componentes do Computador e. aula 3. Profa. Débora Matos

Introdução aos Sistemas Operativos

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS

29/3/2011. Primeira unidade de execução (pipe U): unidade de processamento completa, capaz de processar qualquer instrução;

Sistemas Operacionais

Visão Geral de Pipelining

Fundamentos de Banco de Dados

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

Dicionário da EAP - Software FarmaInfor

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Sistemas Operacionais

Arquitetura de Computadores I

Aula 26: Arquiteturas RISC vs. CISC

Prof.: Roberto Franciscatto. Capítulo 1.1 Introdução

Introdução a Informática. Prof.: Roberto Franciscatto

Notas da Aula 4 - Fundamentos de Sistemas Operacionais

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

Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Informática Organização e Arquitetura de Computadores

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

3. O NIVEL DA LINGUAGEM DE MONTAGEM

Tecnologia da Informação. Visão Geral sobre Informática

Arquitetura de Computadores I

Máquinas Multiníveis

Multiplexador. Permitem que vários equipamentos compartilhem um único canal de comunicação

Arquiteturas RISC. (Reduced Instructions Set Computers)

Arquitetura e Organização de Computadores I

ANHANGUERA EDUCACIONAL. Capítulo 2. Conceitos de Hardware e Software

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

COMPILADORES E INTERPRETADORES

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

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

Organização e Arquitetura de Computadores I

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

O que veremos nesta aula? Principais Aspectos de Sistemas Operacionais. Visão geral de um sistema computacional

PLANOS DE CONTINGÊNCIAS

Dadas a base e a altura de um triangulo, determinar sua área.

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

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

SSC510 Arquitetura de Computadores. 2ª aula

ESTUDO DE CASO WINDOWS VISTA

Sistemas Distribuídos

Memória. Espaço de endereçamento de um programa Endereços reais e virtuais Recolocação dinâmica Segmentação

Arquitetura de Von Neumann e os Computadores Modernos

7 Processamento Paralelo

20/09/2009 TRANSFORMANDO DADOS EM. PROCESSANDO DADOS George Gomes Cabral SISTEMAS NUMÉRICOS INFORMAÇÕES

Copyright 2011 VW Soluções

Sistemas Operacionais

Gerenciamento de Transações

Arquitetura de processadores: RISC e CISC

Organização de Computadores

Transcrição:

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

O que é Superescalar? As arquiteturas superescalares são aquelas capazes de buscar, decodificar, executar e terminar mais de uma instrução por ciclo de máquina São organizadas internamente como múltiplos pipelines, mas que devem trabalhar cooperativamente para que as dependências de dados entre as instruções sejam respeitadas

Superpipelined Muitos estágios do pipeline necessitam menos do que a metade de um clock Clocks internos operando em clock duplicado permite que duas tarefas sejam feitas para um ciclo de clock externo Superscalar permite os estágios de busca e execução serem paralelos.

Superscalar vs Superpipeline

Limitações Paralelismo a nível de instrução Otimização a nível de compilação Técnicas de hardware Limitado pela 1. Dependência verdadeira de dados 2. Dependência de desvio 3. Conflito de recursos 4. Dependência de saída 5. Antidependência

Dependência Verdadeira de Dados Uma instrução utiliza um operando que é produzido p/ uma instrução anterior ADD r1, r2 (r1 := r1+r2;) MOVE r3,r1 (r3 := r1;) Pode-se buscar e decodificar a segunda instrução em paralelo com a primeira Não pode executar a segunda instrução até que a primeira tenha terminado

Dependência Verdadeira de Dados Uma instrução deve ser atrasada até que todos os dados sejam produzidos

Dependência de desvio Não se pode executar instruções depois de um desvio em paralelo com as instruções antes do desvio

Conflito de recursos Duas ou mais instruções que necessitam usar o mesmo recurso ao mesmo tempo Acesso concorrente à memória Acesso concorrente a um banco de registradores Uso simultâneo de unidades funcionais Recursos podem ser duplicados

Conflito de recursos

Dependência de Saída Ocorre quando duas ou mais instruções estão escrevendo em um mesmo local R3:=R3 + R5; (I1) R3:=R5 + 1; (I2) R4:=R3 + 1; (I3) Existe uma dependência de saída entre I1 e I2 Não podem executar em conjunto pois pode haver inconsistência no resultado

Antidependência Uma instrução usa um operando enquanto a seguinte está escrevendo no mesmo local Dependência de leitura-escrita R3:=R3 + R5; (I1) R4:=R3 + 1; R3:=R5 + 1; (I2) (I3) R7:=R3 + R4; (I4) I3 não pode ser completada antes que I2 comece como I2 precisa de um valor em R3 e I3 muda o R3

Necessidades de projeto Paralelismo a nível de instrução Instruções numa seqüência são independentes A execução pode ser sobreposta Dirigido pela dependência de dados e de procedimentos Paralelismo de máquina Habilidade de tirar vantagem do paralelismo a nível de instrução. Dirigido por um conjunto de pipelines paralelas

Política de inicialização de instruções Processador deve identificar paralelismo e coordenar a execução de instruções em paralelo Ordenação de instruções: Ordem na qual as instruções são buscadas Ordem na qual as instruções são executadas Ordem na qual as instruções atualizam registradores e memória

Política de inicialização de instruções Processador deve ajustar dependências e conflitos Políticas de inicialização: Iniciação em ordem, com finalização em ordem Iniciação em ordem, com finalização fora de ordem Iniciação fora de ordem, com finalização fora de ordem

Inicialização em ordem Finalização em ordem A emissão de instrução na ordem que elas ocorrem (sequencial) Não é muito eficiente Pode buscar mais de uma instrução

Inicialização em ordem Finalização em ordem

Inicialização em ordem Finalização fora de ordem I2

Inicialização fora de ordem Finalização fora de ordem Desacopla o estágio de decodificação do pipeline do estágio de execução Pode continuar a buscar e decodifica até que o pipeline fique cheio Janela de intruções Quando uma unidade funcional se torna disponível, uma instrução pode ser executada Como as instruções foram decodificadas, o processador pode examinar instruções à frente

Inicialização fora de ordem Finalização fora de ordem

Renomeação de registradores Registradores alocados dinamicamente pelo HW do processador Quando um novo valor é produzido, um novo registrador é criado para este valor Referências a um mesmo registrador pode ser convertido para registradores reais distintos

Renomeação de registradores r3 := r3 + r5 r3b:= r3a + r5a r4:= r3 + 1 r4b:= r3b + 1 r3:= r5 +1 r3c:= r5a + 1 r7:= r3 - r4 r7a:= r3c - r4b

Renomeação de registradores Referências originais a um mesmo registrador são convertidas em referências reais a registradores distintos Antidepedência: I2,I3 (resolvido) Dependência de saída: I1, I3 (resolvido) I3 pode ser iniciada imediatamente após renomeação

Execução Superscalar Construir fluxo dinâmico Despachar instruções para a janela de instruções Ordenar por dependências de dados verdadeiras Execução paralela das instruções Realocação das instruções na ordem sequêncial e registrar resultados

Implementação Superscalar Busca simultaneamente múltiplas instruções Lógica para determinar dependências verdadeiras envolvendo valores de registradores Mecanismos para comunicar esses valores Mecanismos para iniciar múltiplas instruções em paralelo Recursos para execução paralela de múltiplas instruções Mecanismos para garantir o estado de término de processos na ordem correta

Very Long Instruction Word O compilador descobre as instruções que podem ser executadas em paralelo e agrupa-as formando uma longa instrução que será despachada para a máquina

Exercícios 13.5 13.6 1. Explique o que é um processador superescalar. 2. Quais são os principais problemas com este tipo de arquitetura? Explique cada um deles. 3. Explique as políticas de inicialização de instruções. 4. No que consiste a renomeação de registradores?

Exercícios Identificar as situações de dependência na seguinte sequência de código, do MIPS64: DIVD F1, F3, F5 ADDD F4, F1, F9 SD SUBD MULD F4, 0(R1) F1,F10, F14 F9, F10, F8