arquitetura e organização de computadores 2 -...

14
24/06/2015 1 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

Upload: truongkhue

Post on 08-Nov-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

24/06/2015

1

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

24/06/2015

2

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

24/06/2015

3

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

24/06/2015

4

Desdobramento em SuperscalarInteger 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.7LD 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

24/06/2015

5

VLIW (Very Large Instruction Word)

9

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.

VLIW (Very Large Instruction Word)

10

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.

24/06/2015

6

Desdobramento em VLIW

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)

Memory

reference 1

Memory

reference 2

FP

operation 1

FP

operation 2

Integer op.

branchClock

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

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

24/06/2015

7

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

Software- pipelined iteration

14

24/06/2015

8

Exemplo de Software Pipelining

1 LD F0,0(R1)

2 ADDD F4,F0,F2

3 SD F0,0(R1)

4 SUBI R1,R1,#8

5 BNEZ R1,LOOP

1 LD F0,0(R1)

2 ADDD F4,F0,F2

3 SD F0,0(R1)

4 SUBI R1,R1,#8

5 BNEZ R1,LOOP

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

Software- pipelined iteration

ITERAÇÃO 0ITERAÇÃO 1

ITERAÇÃO 2

15

Exemplo de Software Pipelining

Antes: desenrolado 3 vezes1 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 Pipeline1 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

Loop Unrolled

Op

s.

so

bre

po

sta

s

Tempo

Tempo

16

24/06/2015

9

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

128 128 uops podem estar em execução com até 48 loads e 32 stores

Unidades funcionais 2 ALUs simples, ALU complexa, load, store, move de PF, aritm.PF

ALU simples executam no dobro da taxa de clock, aceitando até 2 uops a cada ciclo

Cache de dados L1 16 Kb, associativo de 8 vias, blocos de 64 bytes

Write through

Cache L2 2Mb, associativo de 8 bias, blocos de 128

Write back

18

24/06/2015

10

Pentium 4

19

Overview of Design

20

24/06/2015

11

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

inte

iros

Ponto

flutu

tante

ILP num processador ideal

22

24/06/2015

12

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 janelain

teiro

sPonto

flutu

ante

24

24/06/2015

13

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

24/06/2015

14

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