Microprocessadores. Execução em Paralelo Pipelines

Documentos relacionados
O Funcionamento do Processador

Microprocessadores. Memórias

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

Arquitecturas Alternativas. Pipelining Super-escalar VLIW IA-64

Organização e Arquitetura de Computadores I

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

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

Cap. 5 - Microprocessadores

Caminho dos Dados e Atrasos

Arquitetura de Computadores I

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

Organização de Computadores 1

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

ARQUITECTURA DE COMPUTADORES

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

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

Notas de Aula Guilherme Sipahi Arquitetura de Computadores. Arquitetura de von Neumann

Arquitetura de Computadores. Ivan Saraiva Silva

Conflitos. Aula de Março de

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

ARQUITETURA DE COMPUTADORES. Professor: Clayton Rodrigues da Siva

O Processador: Via de Dados e Controle

ARQUITETURA DE COMPUTADORES

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

Pipelining - analogia

Oganização e Arquitetura de Computadores

MICROPROCESSADORES Nuno Cavaco Gomes Horta Universidade Técnica de Lisboa / Instituto Superior Técnico

Data Path / Control Path Controle do MIPS

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

Aula 03. Processadores. Prof. Ricardo Palma

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:

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

SISTEMAS OPERACIONAIS. 3ª. Lista de Exercícios

Sistemas Operacionais. Rodrigo Rubira Branco

Arquitetura de Computadores. Arquitetura de Computadores 1

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

Arquitetura e Organização de Computadores 2

Introdução. ULA: Faz os Cálculos UC: Como isso tudo ocorre?

Conjunto de instruções do CPU. Arquitectura de um computador. Definição das instruções (1) Definição das instruções (2)

Sistemas Computacionais II Professor Frederico Sauer

Paralelismo a Nível de Instrução

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

ASPECTOS CONSTRUTIVOS DE ROBÔS

ArchC. Wesley Nunes Gonçalves

Arquitectura de Computadores II

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

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

RISC simples. Aula de Março de

Sequenciamento dinâmico

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

Fundamentos de Programação. Diagrama de blocos

Comandos de Eletropneumática Exercícios Comentados para Elaboração, Montagem e Ensaios

Intel Pentium 4 vs Intel Itanium

ARQUITETURA DE COMPUTADORES

O Nível ISA. Modelo de programação Arquitecturas CISC e RISC Introdução ao IA-32 da Intel

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

Arquitectura interna de um computador

Aula 11: Desvios e Laços

Avaliando e Compreendendo o Desempenho. Capítulo 4

SISTEMAS DISTRIBUÍDOS

Arquitetura e Organização de Computadores

Primeiros "computadores" digitais. Execução de um programa. Consolas. Primórdios dos computadores. Memória interna. Computadores com memória interna

Módulo de Contrato Agora OS

Auxiliar em Administração de Redes Redes de Computadores I

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

Nível da Microarquitetura

Sistemas Distribuídos

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

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

Visão Geral de Pipelining

Arquitetura de Computadores I

Sistemas Operacionais. Rodrigo Rubira Branco

Engenharia de Software II

Organização de Computadores

Estrutura de um Computador

Linguagem de Montagem Funcionamento de CPU e Assembly Rudimentar

Lista de Exercícios 1

Introdução ao. Script. Baltazar Tavares (Psycho Mantys)

Arquitetura de processadores: RISC e CISC

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

Arquitectura de Computadores RECUPERAÇÃO DO 1º TESTE

Arquitetura e Organização de Computadores I

Modos de entrada/saída

Sistemas Operacionais. Revisando alguns Conceitos de Hardware

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

Capítulo 4. MARIE (Machine Architecture Really Intuitive and Easy)

Fundamentos de Arquitetura e Organização de Computadores

Sistemas Computacionais e Hardware. Disciplina: Informática Prof. Higor Morais

Revisão dependências de dados

Aula 10: Escalonamento da CPU

Fundamentos de Sistemas Operacionais

Organização e Arquitetura de Computadores I

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

Microprocessadores II - ELE 1084

TERMO DE REFERÊNCIA. Fonte de Informação Experiências Exitosas de Gestão Estratégica e Participativa nas instâncias do SUS

Transcrição:

Execução em Paralelo Pipelines António M. Gonçalves Pinheiro Departamento de Física Covilhã - Portugal pinheiro@ubi.pt

Pipelines de Instrucções Instrucções são divididas em diferentes Estágios Pipelines Exemplo de dois estágios: BUSCA e EXECUÇÃO Espera Novo Endereço Espera Instrução BUSCA EXECUÇÃO Resultado "Discard" Quando uma instrucção está a ser executada a seguinte já está no ciclo de busca. Saltos condicionais podem levar a que a instrução que está no ciclo de busca, não seja a executada ( Discard ). Muitas instrucções resultam em tempos de execução maiores do que a busca, logo optou-se por partir a execução em múltiplos estágios.

Pipelines Pipelines de 6 estágios FI - Fetch Instruction Lê a próxima Instrucção. DI - Decode Instruction Determina o Código e o Operando. CO - Calculate Operands Calcula o endereço de cada operando. FO - Fetch Operands Busca cada Operando da memória. EI - Execute Instruction Executa a operação WO - Write Operand Armazena o resultado na memória Nota: Nem todas as instrucções usam todos os estágios. No entanto, o espaço temporal tem que ser mantido para manter sincronismo. Instr. 1 Instr. 2 Instr. 3 Instr. 4 Instr. 5 Instr. 1 Instr. 2 Salto Instr. n 1 2 3 4 5 6 7 8 9 10 Diagrama Temporal 1 2 3 4 5 6 7 8 9 10 FI DI CO FO EI Sem Efeito FI DI CO FO FI DI CO FI DI FI Efeito de Salto Condicional FI DI Ciclos Ciclos

Pipelines Atrasos nas Pipelines Sem atrasos, as instrucções levam um período de relógio em média a serem executadas. Atrasos podem ser provocados por: Problemas Estruturais Quando é impossível executar dois estágios em paralelo porque provoca conflitos no hardware. Atraso nos Dados Existe um dado que é necessário mas ainda não está disponível. Exemplo de Pipeline de 4 estágios add R0,R1 FI - Busca de Instrução DA - Descodifica a Instrucção e Calcula Endereço EX- Executa Instrução WB - Write Back Pipeline sub R2,R0 Atraso R0 ainda não disponível Saltos Condicionais

Pipelines Redução do atraso provocado pelos Saltos Condicionais nas Pipelines Multiple Streams Duas pipelines executam as duas possibilidades de salto. Exige duplicação de recursos. Prefetch branch target Alvo do salto é Pre-fetched e se a decisão é fazê-lo, já está disponível para o controlador. Loop buffer Um buffer (memória de alta velocidade) contem as instrucções executadas mais recentes. reduz tempo de acesso à memória caso as instruções estejam no buffer ; se o alvo do salto condicional estiver próximo, deverá estar no buffer ; lida especialmente bem com ciclos e iterações. Predição do salto Dependendo do tipo de salto podemos optar por Salta sempre/nunca Salta Switch que comuta entre Salto/Não Salto dependendo do passado recente. Tabela histórica de saltos (que assim são mantidos em cache) Rearranjo de instrucções (Delayed Branch) Instrucções são reordenadas de forma a que operações que deviam ser anteriores sejam executadas em paralelo com a execução do salto.

Arquitecturas Superescalares 1 2 3 4 5 6 7 8 9 10 Ciclos 1 2 3 4 5 6 7 Ciclos 1 2 3 4 5 6 7 Ciclos Pipeline Super-Pipeline Super-Escalaridade Notas: - Fazem reordenamento de instrucções na tentativa de limitar efeitos das depêndencias - Usam execução de instruções especulativa para conseguirem ser eficientes. - Requerem múltiplas capacidades na CPU, como sejam múltiplas ALU, FPU, etc.

Paralelismo ao Nível da Instrucção Pode ser aumentado de duas formas Arquitecturas Superescalares 1. Aumenta-se o comprimento da pipeline, subdividindo níveis. O número de isntrucções na pipeline aumenta, mas como em cada nível se pode fazer menos, pode-se aumentar a velocidade. 2. Replicando-se as unidades internas da CPU (buses, ALUs, FPUs) Multiple Issue : Estática: As decisões são tomadas no compilador/escrita do programa. Dinâmica: As decisões são tomadas no Microprocessador durante a execução do programa. Pipeline Multiple Issue 1. Microprocessador determina quantas instrucções podem ser colocadas em cada ciclo de relógio (slot temporal). 2. Lidar com Hazards de dados e controlo: nos Multiple Issue estáticos, têm que ser manipulados pelo compilador. nos Multiple Issue dinâmicos, o controlador têm que alivia-los ao máximo.

Limitações da Superescalaridade True Data Dependency Arquitecturas Superescalares Tem que se esperar o resultado de uma operação para se poder executar a outra. Procedural Dependency add R1,R3 mov R3,R1 1 2 3 4 5 Ciclos Saltos são sempre um problema! Nota: Nos RISC, instrucções têm dimensão fixa. Se for CISC ainda se acrescenta o problema de controlar a dimensão da instrucção. SALTO 1 2 3 4 5 Ciclos

Limitações da Superescalaridade Arquitecturas Superescalares Conflito de recursos Acontece quando duas instrucções requerem o mesmo recurso ao mesmo tempo (tal como o mesmo barramento, memória, cache, unidades funcionais, ALU, FPU). Este problema é semelhante ao True Data Dpendency mas pode ser facilmente eliminado através da duplicação de recursos. Output Dependency ou Read-Write Dependency Instr. 1: R3=R3+R5 Instr. 2: R4=R3+1 Instr. 3: R3=R5+1 Instr. 4: R7=R3+R4 TRUE DATA DEPENDENCY Não pode haver troca de instruções TRUE DATA DEPENDENCY Anti Dependency ou Write-Write Dependency Instr. 1: R3=R3+R5 Instr. 2: R4=R3+1 Instr. 3: R3=R5+1 Instr. 4: R7=R3+R4 TRUE DATA DEPENDENCY Não pode haver troca de instruções TRUE DATA DEPENDENCY Instr. 1 Instr. 2 1 2 3 4 5 Ciclos Dependencia da Saída refere-se que a instrucção 1 3 alteram o mesmo registo (R3), impedindo troca de instrucções. Anti Dependencia refere-se que a instrucção 3 altera o que a instrucção 2 necessita (R3).

Arquitecturas Superescalares - Técnicas para Melhorar Eficiência Especulação O compilador ou o processador tentam adivinhar a saída de uma instrucção para retirar qualquer tipo de dependência que resultam da execução de outras instrucções. Por exemplo, num salto tenta adivinhar as instrucções que deverão ser executadas depois, executando-as! Renomeação de registos De forma remover anti-dependências. Execução fora de ordem - Out of Order Execution Executar instrucções seguintes independentemente de uma anterior que esteja bloqueada por uma dependência. Na prática trata-se de reordenar as instrucções.