Arquitetura e Organização de Computadores 2

Documentos relacionados
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

Predição de Desvios e Processadores Superescalares Especulativos

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

Microcontroladores e Interfaces 3º Ano Eng. Electrónica Industrial

Arquitecturas Alternativas. Pipelining Super-escalar VLIW IA-64

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

Arquitetura de Computadores I

Caminho dos Dados e Atrasos

Visão Geral de Pipelining

Arquitetura de Computadores I

Organização e Arquitetura de Computadores I

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

Pipelining - analogia

Processador ARM Cortex-A9

Algumas características especiais

Arquiteturas que Exploram Paralismos: VLIW e Superscalar. Ch9 1

Microarquiteturas Avançadas

Sequenciamento dinâmico

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

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

Conflitos. Aula de Março de

Arquitetura de Computadores. Ivan Saraiva Silva

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

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

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

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

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 8

Arquitetura de Computadores RISC x CISC. Gustavo Pinto Vilar

Arquiteturas RISC. (Reduced Instructions Set Computers)

ARQUITETURA DE COMPUTADORES

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

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:

periféricos: interfaces humano-computador (HCI) arquivo de informação comunicações

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

Processadores Superescalares - Avançando na exploração de paralelismo entre instruções

Sistemas Computacionais II Professor Frederico Sauer

Arquitetura de Computadores I

3. Arquiteturas SIMD. 3.1 Considerações iniciais

RISC simples. Aula de Março de

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

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

SSC510 Arquitetura de Computadores. 2ª aula

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

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

RISC X CISC - Pipeline

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

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

ARQUITETURA DE COMPUTADORES

Introdução ao Processamento Paralelo

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

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

Implementação de pipelines

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

Predição de Desvios e Processadores Superescalares Especulativos

Os textos nestas caixas foram adicionados pelo Prof. Joubert

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

Organização e Arquitetura de Computadores I

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

CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM

ARQUITECTURA DE COMPUTADORES

Paralelismo a Nível de Instrução

Avaliação de Desempenho

Evolução das CPUs: Dual e Quad Core

Execução concorrente de instruções

1. Considere a execução do seguinte troço de código num processador com ISA compatível

RISC - Reduced Instruction Set Computer

Infraestrutura de Hardware. Melhorando Desempenho de Pipeline Processadores Superpipeline, Superescalares, VLIW

Faculdade de Computação Arquitetura e Organização de Computadores 2 3 a Lista de Exercícios Prof. Cláudio C. Rodrigues Data de Entrega: 22/11/2018

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

Arquitetura de processadores: RISC e CISC

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

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

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

Execução concorrente de instruções

NOTAS DE AULA Prof. Antonio Carlos Schneider Beck Filho (UFSM) Prof. Júlio Carlos Balzano de Mattos (UFPel) Arquitetura de Von Neumann

28 de Abril de Aula 14

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

Aula 14: Instruções e Seus Tipos

Arquitetura e Organização de Computadores

ARQUITETURA DE COMPUTADORES

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES ARQUITETURAS RISC E CISC. Prof. Dr. Daniel Caetano

Organização e Arquitetura de Computadores I

AULA DE REVISÃO 3 ILP

Computadores de Programação (MAB353)

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

Capítulo 1 Introdução

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

DISCIPLINA: Arquitetura e Organização de Computadores II 2ECOM.027

Aula 26: Arquiteturas RISC vs. CISC

Arquitetura de Computadores Moderna

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

Arquitetura de Computadores. Ivan Saraiva Silva

Unidade 14: Arquiteturas CISC e RISC Prof. Daniel Caetano

Intel Pentium 4 vs Intel Itanium

Computadores de Programação (MAB353)

Modos de entrada/saída

MO401. Arquitetura de Computadores I

Esse programa inclui dependências de tipo: escrita-escrita, leitura-escrita e escrita-leitura. Identifique e mostre estas dependências.

Arquitetura de Von Neumann e os Computadores Modernos

Transcrição:

Arquitetura e Organização de Computadores 2 Escalonamento Estático e Arquiteturas VLIW Dynamic Scheduling, Multiple Issue, and Speculation Modern microarchitectures: Dynamic scheduling + multiple issue + speculation Two approaches: Assign reservation stations and update pipeline control table in half clock cycles Only supports 2 instructions/clock Design logic to handle any possible dependencies between the instructions Hybrid approaches Issue logic can become bottleneck 2 1

Emissão múltipla de instruções Para obter CPI<1 é necessário emitir (despachar) mais que uma instrução por ciclo. Processadores com emissão múltipla dividem-se em: 1) Processador super-escalar: número variável de instruções por ciclo, sequenciamento dinâmico (ou estático), execução fora de ordem. 2) Processador VLIW (very long instruction word): número fixo de instruções por ciclo ou pacote de instruções com concorrência explicitamente indicada (EPIC explicit parallel instruction computer); sequenciamento estático. Para cada instrução de um pacote de instruções: examinar as instruções por ordem; instruções em conflito com instruções em execução ou com instruções anteriores do pacote não emitidas. Na prática, as instruções de um pacote são todas examinadas concorrentemente; a complexidade da tarefa obriga a usar uma pipeline no estágio de emissão (aumenta a importância da predição). 3 Caracterização de processadores com multi-emissão 4 2

Tornando CPI < 1: Emitindo Múltiplas Instruções/Ciclo Superscalar MIPS: 2 instruções, 1 FP & 1 outra qualquer Busca (fetch) 64-bits/ciclo de clock (Int. e FP) Tipo Estágios de Pipeline Int. instruction IF ID EX MEM WB FP instruction IF ID EX MEM WB Int. instruction IF ID EX MEM WB FP instruction IF ID EX MEM WB Int. instruction IF ID EX MEM WB FP instruction IF ID EX MEM WB 5 Revisão: desenrolamento de loops para minimizar paradas em MIPS pipeline 1 Loop: LD F0,0(R1) 2 LD F6,-8(R1) 3 LD F10,-16(R1) 4 LD F14,-24(R1) 5 ADDD F4,F0,F2 6 ADDD F8,F6,F2 7 ADDD F12,F10,F2 8 ADDD F16,F14,F2 9 SD F4,0(R1) 10 SD F8,-8(R1) 11 SD F12,-16(R1) 12 SUBI R1,R1,#32 13 BNEZ R1,LOOP 14 SD F16,8(R1) ; 8-32 = -24 14 ciclos de clock, ou 3.5 por iteração CPI = 1 6 3

Desdobramento em Superscalar Integer instruction FP instruction Clock cycle Loop: LD F0,0(R1) 1 LD F6,-8(R1) 2 LD F10,-16(R1) ADDD F4,F0,F2 3 LD F14,-24(R1) ADDD F8,F6,F2 4 LD F18,-32(R1) ADDD F12,F10,F2 5 SD F4,0(R1) ADDD F16,F14,F2 6 SD F8,-8(R1) ADDD F20,F18,F2 7 SD F12,-16(R1) 8 SD F16,-24(R1) 9 SUBI R1,R1,#40 10 BNEZ R1,LOOP 11 SD F20,-32(R1) 12 Desenrola 5 vezes para evitar atrasos 12 clocks, ou 2.4 clocks por iteração CPI = 12 / 17 = ~0.7 LD para ADDD: 2 Ciclos ADDD para SD: 2 Ciclos 7 Múltipla Emissão: Desafio para arquitetura superescalar Enquanto a separação em Inteiros e FPs seja simples em HW, o CPI de 0.5 é possível somente para programas com: Exatamente 50% de operações FP Sem conflitos É difícil: emitir ao mesmo tempo, mais que duas instruções É também difícil decidir se 2 instruções escalares podem ser emitidas ao mesmo tempo => examinar 2 opcodes, 6 especificadores de registradores,... 8 4

VLIW (Very Large Instruction Word) A arquitetura VLIW (Very Long Instruction Word) tenta alcançar maiores níveis de paralelismo de instrução pela execução de instruções longas compostas por múltiplas operações. As palavras de instrução longas consistem de várias operações aritméticas, lógicas e de controle cada uma das quais poderia ser uma operação individual em um processador RISC simples. O processador VLIW executa o conjunto de operações concorrentemente, alcançando assim um alto grau de paralelismo no nível de instrução. É responsabilidade do compilador escalonar as operações de modo a utilizar o melhor possível as unidades funcionais disponíveis no processador. Um dos maiores obstáculos à evolução das arquiteturas VLIW tem sido a falta de compatibilidade binária com as arquiteturas convencionais. 9 VLIW (Very Large Instruction Word) Um número fixo de operações são formatadas como uma instrução longa (chamada de bundle) Objetivo do projeto VLIW - reduzir a complexidade do hardware menor tempo de projeto tempo de ciclo mais curto melhor desempenho consumo de energia reduzido Suporte do compilador para aumentar ILP responsabilidade do compilador montar a palavra VLIW dependente de um melhor sequenciamento de código comparadas com arquiteturas superscalar in-order issue. detectar hazards e latências ocultas. 10 5

Desdobramento em VLIW Memory reference 1 Memory reference 2 FP operation 1 FP operation 2 Integer op. branch Clock LD F0,0(R1) LD F10,-16(R1) LD F18,-32(R1) LD F26,-48(R1) SD F4,0(R1) SD F12,-16(R1) SD F20,-32(R1) SD F28,-0(R1) LD F6,-8(R1) LD F14,-24(R1) LD F22,-40(R1) SD F8,-8(R1) SD F16,-24(R1) SD F24,-40(R1) ADDD F4,F0,F2 ADDD F12,F10,F2 ADDD F20,F18,F2 ADDD F28,F26,F2 ADDD F8,F6,F2 ADDD F16,F14,F2 ADDD F24,F22,F2 ADDD F16,F14,F2 SUBI R1,R1,#48 BNEZ R1,LOOP 1 2 3 4 5 6 7 8 9 Desenrola 7 vezes para evitar atrasos 7 resultados em 9 clocks, ou 1.3 clocks por iteração CPI = 23/9 = ~0.39 Nota: Necessita mais registradores em VLIW (15 vs. 6 em Superescalar) 11 Geração de código para VLIW: Trace Scheduling Dois passos: Seleção de Traço (Trace) Encontrar uma sequência provável de blocos básicos, traço, de uma longa sequência de códigos Compactação de Traço Espremer o traço em algumas instruções VLIW Necessita de código alternativo no caso de erro de previsão de código 12 6

Superscalar vs. VLIW Tamanho de código menor Compatibilidade através de gerações de hardware Hardware Simplificado para decodificação e emissão de instruções Sem conflito entre as instruções Mais registradores 13 Software Pipelining Observação: se iterações de loops são independentes, pode-se obter mais ILP tomando instruções de diferentes iterações Software pipelining: reorganiza loops tal que cada iteração seja composta de instruções de diferentes iterações do loop original Iteration 0 Iteration 1 Iteration 2 Iteration 3 Iteration 4 Softwarepipelined iteration 14 7

Ops. sobrepostas 24/06/2015 Exemplo de Software Pipelining ITERAÇÃO 0 1 LD F0,0(R1) 2 ADDD F4,F0,F2 3 SD F0,0(R1) 4 SUBI R1,R1,#8 5 BNEZ R1,LOOP ITERAÇÃO 1 1 LD F0,0(R1) 2 ADDD F4,F0,F2 3 SD F0,0(R1) 4 SUBI R1,R1,#8 5 BNEZ R1,LOOP ITERAÇÃO 2 1 LD F0,0(R1) 2 ADDD F4,F0,F2 3 SD F0,0(R1) 4 SUBI R1,R1,#8 5 BNEZ R1,LOOP Iteration 0 Iteration 1 Iteration 2 Iteration 3 Iteration 4 Softwarepipelined iteration 15 Exemplo de Software Pipelining Antes: desenrolado 3 vezes 1 LD F0,0(R1) 2 ADDD F4,F0,F2 3 SD F4,0(R1) 4 LD F6,-8(R1) 5 ADDD F8,F6,F2 6 SD F8,-8(R1) 7 LD F10,-16(R1) 8 ADDD F12,F10,F2 9 SD F12,-16(R1) 10 SUBI R1,R1,#24 11 BNEZ R1,LOOP Após: Software Pipeline 1 SD F4,0(R1) ;Stores M[i] 2 ADDD F4,F0,F2 ;Adds to M[i-1] 3 LD F0,-16(R1) ;Loads M[i-2] 4 SUBI R1,R1,#8 5 BNEZ R1,LOOP SW Pipeline Tempo Loop Unrolled Tempo 16 8

Intel/HP-IA-64 (ITANIUM ) Explicitly Parallel Instruction Computer (EPIC) Explora a arquitetura VLIW, deixando a detecção do ILP (Instruction Level Parallelism) para os compiladores. 3 Instruções em grupos de 128 bits; campos determinam se as instruções são dependentes ou independentes 64 registradores inteiros + 64 registradores ponto flutuante Hardware checa dependências Execução com Predicado => 40% menos previsões errôneas IA-64 : nome da arquitetura do conjunto de instruções Itanium - implementação Suporte para instruções IA-32, porém com desempenho menor que as últimas versões do Pentium, por explorarem mais o desempenho nas instruções EPIC (VLIW) e não terem suportes de ILP por hardware. 17 Pentium 4 640 na tecnologia de 90 nm (2004) recursos tamanho comentários BTB de front-end 4K Previsão de desvio para instr. IA32 Trace Cache 12K uops Cache de rastreio BTB de trace cache 2K Previsão de desvio para uops Registradores para renomear Unidades funcionais 128 128 uops podem estar em execução com até 48 loads e 32 stores 2 ALUs simples, ALU complexa, load, store, move de PF, aritm.pf Cache de dados L1 16 Kb, associativo de 8 vias, blocos de 64 bytes Cache L2 2Mb, associativo de 8 bias, blocos de 128 18 ALU simples executam no dobro da taxa de clock, aceitando até 2 uops a cada ciclo Write through Write back 9

Pentium 4 19 Overview of Design 20 10

Processador ideal Todas as restrições de ILP são removidas 1) renomeação de registrador um número infinito de registradores virtuais à disposição, por isso todos os WAW e WAR são evitados e um número infinito de instruções pode iniciar simultaneamente 2) previsão de desvio a previsão é perfeita 3) previsão de salto todos os saltos são previstos 4) análise de alias de endereço de memória - todos os endereços de memória são conhecidos, e um load pode ser feito antes de um store, desde que os endereços não sejam iguais. 5) caches perfeitos todos os endereços de memória usam 1 ciclo. 21 ILP num processador ideal inteiros Ponto flututante 22 11

O que um processador ideal precisa fazer 1) olhar muito adiante para encontrar um conjunto de instruções a despachar (emitir), prevendo todos os desvios perfeitamente 2) renomear todos os usos de registrador para evitar WAR e WAW 3) determinar se existem dependências de dados entre as instruções no pacote de emissão; se houver renomear adequadamente 4) determinar se existe alguma dependência de memória entre as instruções sendo emitidas e tratar delas adequadamente 5) oferecer unidades funcionais replicadas suficientes para que todas as instruções prontas sejam emitidas 23 Efeitos da limitação da janela inteiros Ponto flutuante 24 12

Efeitos dos tipos de previsão de desvios 25 Redução do paralelismo pelo número de registradores para renomeação Fig.3.5 26 13

Efeito de níveis variados de análise de alias sobre programas 27 Bibliografia David Patterson e John Hennessy, Arquitetura e Organização de Computadores uma abordagem quantitativa, 5ª Edição, ed. Campus. 28 14