133
Infra-estrutura de Hardware

Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Infra-estrutura de Hardware

Page 2: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Processadores

Superescalares

Melhorando ainda mais o

desempenho....

Infra-estrutura de Hardware

Page 3: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Roteiro da Aula

• Pipeline e filosofia RISC

• Superpipeline

• Superscalar

• Dependências de dados em processadores superscalares

• Renomeamento de registradores

• VLIW

• Análise Comparativa

Infra-estrutura de Hardware

Page 4: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Pipeline

• Porque o pipeline é implementado de

forma mais eficiente em processadores da

classe do processador MIPS?

Infra-estrutura de Hardware

Page 5: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Filosofia RISC (Reduced Instruction Set Computer)

• Tornar as máquinas mais simples e

portanto mais velozes:

– poucas instruções, simples e com formato

único

– modos simples de endereçamento

– implementação mais eficienteFilosofia CISC RISC

Máquinas IBM370 VAX11 Xerox IBM801 RISC I RISC II

Ano 1973 1978 1978 1980 1981 1981

# Instr. 208 303 270 120 3 55

Tan. Instr. 2-6 2-57 1-3 4 4 41

Infra-estrutura de Hardware

Page 6: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Filosofia RISC (Reduced Instruction Set Computer)

• Tornar as máquinas mais simples e portanto mais

velozes:

– poucas instruções, simples e com formato único

– modos simples de endereçamento

– implementação mais eficiente

Infra-estrutura de Hardware

Page 7: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Características de algumas máquinas

ano 73 78 89 88 91 90 89

número de instruções 208 303 235 51 94 184 62

tamanho das instruções 2-6 2-57 1-11 4 4 4 4,8

modos de endereçamento 4 22 11 3 1 2 11

número de registradores 16 16 8 32 32 32 23-256

memória de controle -Kbits 420 480 246 - - - -

tamanho da cache-Kbytes 64 64 8 16 128 32-64 0,5

IBM VAX INTEL Motorola MIPS IBM INTEL

370/168 11/780 80486 88000 R4000 RS/6000 80960Características

CISC RISC SUPERESCALAR

Infra-estrutura de Hardware

Page 8: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Pipeline

Infra-estrutura de Hardware

Page 9: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Pipeline

• Problema:

– Como conseguir estágios com a mesma

duração?

• Solução:

– Aumentar a frequência do clock

• Superpipeline

Infra-estrutura de Hardware

Page 10: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Melhorando o Desempenho

pipeline

Infra-estrutura de Hardware

Page 11: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Superpipeline

Infra-estrutura de Hardware

Page 12: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Relógio

Infra-estrutura de Hardware

Page 13: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Melhorando o desempenho

pipeline

superpipeline

Infra-estrutura de Hardware

Page 14: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Melhorando o desempenho Superpipeline

Número de Estágios X Aumento de desempenho

1 2 4 8 160.0

0.5

1.0

1.5

2.0

2.5

3.0

Número de estágios

Des

emp

enh

o r

elati

vo

Infra-estrutura de Hardware

Page 15: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Pipeline

• Problema:

– Como conseguir estágios com a mesma

duração?

– Aumentar a frequência do clock

• Superpipeline

• Como melhorar o desempenho do pipeline

tanto em processadores RISC como CISC?

– executar instruções em paralelo

• Superescalar

Infra-estrutura de Hardware

Page 16: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Processador superescalar

• Execução simultânea de instruções:

– aritméticas, load, stores e desvios

condicionais

• Aplicável a arquiteturas RISC e CISC

– RISC:

• implementação mais fácil

– CISC:

• implementação mais difícil

Infra-estrutura de Hardware

Page 17: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Processador Superescalar

Infra-estrutura de Hardware

Page 18: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

superpipeline

superescalar

Melhorando o desempenho

pipeline

Infra-estrutura de Hardware

Page 19: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Processador Superescalar

Infra-estrutura de Hardware

Page 20: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Infra-estrutura de Hardware

Paralelismo no Nível de Instrução

(ILP)

• Pipeline: execução de múltiplas instruções em paralelo

• Para aumentar ILP– Superpipeline (pipeline com mais estágios)

• Menos complexidade por estágio menor período do clock

– Despacho múltiplo– Execução de várias instruções por vez

• Replicar estágios do pipeline múltiplos pipelines

• Iniciar múltiplas instruções por ciclo de clock

• CPI < 1, ou Instructions Per Cycle (IPC) >1

• Ex., 4GHz 4-way multiple-issue

– 16 BIPS, pico CPI = 0.25, pico IPC = 4

• Mas, dependências reduzem o desempenho….

Page 21: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Despacho Múltiplo– Paralelismo ILP

• Despacho múltiplo – estático

– Compilador agrupa instruções a serem executadas

em conjunto

– Pacotes são enviados para “issue slots”

– Compilador detecta e resolve conflitos

• Despacho múltiplo – Dinâmico

– CPU examina sequencia de instruções e escolhe

instruções a serem executadas por ciclo

– Compilador pode ajudar reordenando instruções

– CPU resolve conflitos usando técnicas avançadas em

tempo de execução

Infra-estrutura de Hardware

Page 22: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Infra-estrutura de Hardware

Especulação

• Faz previsão de desvio para definer

fluxo das instruções que serão

executadas

– Começa a execução o mais rápido

possível

– Verifica se a previsão foi certa

• Se sim, completa a instrução

• Se não, volta para buscar as instruções

corretas

Page 23: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Especulação – Software/Hardware

• Compilador reordena as instruções

– Pode incluir instruções para adiar o desvio ou

para correção de previsões erradas

• Hardware busca instruções seguintes a

serem executadas

– Armazena resultados em buffers até que eles

“realmente” sejam necessários

– Limpa buffers quando a especulação é

incorreta

Infra-estrutura de Hardware

Page 24: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Especulações e Exceções

• E se uma exceção ocorre devido a uma instrução especulada?

– e.g., load especulado antes de atualização de ponteiro nulo

– Deve armazenar exceções (sem resolver) até que a execução da instrução seja terminada.

Infra-estrutura de Hardware

Page 25: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Despacho múltiplo – estático

• Compilador agrupa instruções em “issue

packets”

– Grupo de instruções que podem ser

executadas em um ciclo

– Determinadas pelos recursos do pipeline

• Um “issue packet” pode ser visto como

uma instrução longa

– Especifica instruções múltiplas concorrentes

Very Long Instruction Word (VLIW)

Infra-estrutura de Hardware

Page 26: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

VLIW

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

Infra-estrutura de Hardware

Page 27: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

VLIW

Infra-estrutura de Hardware

Page 28: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Infra-estrutura de Hardware

VLIW

Simplifica o hardware transferindo para o

compilador a lógica de detecção do

paralelismo

circuitos mais simples

Clock com maior frequência

Page 29: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Escalonamento com Despacho múltiplo –

estático

• Compilador deve remover todos conflitos

– Reordenar instruções nos “issue packets”

– Nenhuma dependência no packet

– Preencher com “nops” se necessário

Infra-estrutura de Hardware

Page 30: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

RISC-V com Despacho múltiplo – estático

• Pacotes com duas instruções (64 bits)

– Um pacote de instruções ALU/Load ou

– Um pacote de instruções Branch/store

• NOP se não tiver combinação

Address Instruction type Pipeline Stages

n ALU/branch IF ID EX MEM WB

n + 4 Load/store IF ID EX MEM WB

n + 8 ALU/branch IF ID EX MEM WB

n + 12 Load/store IF ID EX MEM WB

n + 16 ALU/branch IF ID EX MEM WB

n + 20 Load/store IF ID EX MEM WB

Infra-estrutura de Hardware

Page 31: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

RISC-V com Despacho múltiplo – estático

Infra-estrutura de Hardware

Page 32: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Conflitos em Dual-Issue RISC-V

• Mais instruções executando em paralelo

• Conflito de dado

– Forwarding evita conflitos no caso de “single-issue”

– Não pode usar resultado da ALU em load/store no

mesmo pacote

• add x10, x0, x1ld x2, 0(x10)

• Divide em dois pacotes: um retardo

• Conflito: Load-uso

– Um ciclo de retardo mas com duas instruções

• Escalonamento mais agressivo é necessário

Infra-estrutura de Hardware

Page 33: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Exemplo de Escalonamento

• Escalonamento para dual-issue RISC-V

Loop: ld x31,0(x20) // x31=array elementadd x31,x31,x21 // add scalar in x21sd x31,0(x20) // store resultaddi x20,x20,-8 // decrement pointerblt x22,x20,Loop // branch if x22 < x20

ALU/branch Load/store cycle

Loop: nop ld x31,0(x20) 1

addi x20,x20,-8 nop 2

add x31,x31,x21 nop 3

blt x22,x20,Loop sd x31,8(x20) 4

◼ IPC = 5/4 = 1.25 (c.f. peak IPC = 2)

Infra-estrutura de Hardware

Page 34: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Loop Unrolling

• Replicar corpo do loop para extrair mais

paralelismo

– Reduce overhead para controle do loop

• Usa registradores diferentes na replicação

– Denominado “register renaming”

– Evita “anti-dependencies” presentes no loop

• Store seguido por um load do mesmo registrador

• Dependência de nome

– Reuso do nome do registrador

Infra-estrutura de Hardware

Page 35: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Infra-estrutura de Hardware

Loop desenrolado Loop re-arrumado

ld x28, 0(x20) ld x28, 0(x20)

add x28,x28,x21 addi x20,x20,-32

addi x20,x20,-32 ld x29, 24(x20)

sd x28, 32(x20) add x28,x28,x21

ld x29, 24(x20) ld x30, 16(x20)

add x29,x29,x21 add x29,x29,x21

sd x29, 24(x20) ld x31, 8(x20)

ld x30, 16(x20) add x30,x30,x21

add x30,x30,x21 sd x28, 32(x20)

sd x30, 16(x20) add x31,x31,x21

ld x31, 8(x20) sd x29, 24(x20)

add x31,x31,x21 sd x30, 16(x20)

sd x31, 8(x20) sd x31, 8(x20)

blt x22,x20,Loop blt x22,x20,Loop

Loop Unrolling Exemplo

Page 36: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Infra-estrutura de Hardware

Loop Unrolling Example

• IPC = 14/8 = 1.75

– Perto de 2, mas ao custo de registradores e tamanho

do código

ALU/branch Load/store cycle

Loop: addi x20,x20,-32 ld x28, 0(x20) 1

nop ld x29, 24(x20) 2

add x28,x28,x21 ld x30, 16(x20) 3

add x29,x29,x21 ld x31, 8(x20) 4

add x30,x30,x21 sd x28, 32(x20) 5

add x31,x31,x21 sd x29, 24(x20) 6

nop sd x30, 16(x20) 7

blt x22,x20,Loop sd x31, 8(x20) 8

Page 37: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Despacho múltiplo – Dinâmico

• Processadores “Superscalares”

• CPU decide se executa 0, 1, 2, …

instruções a cada ciclo

– Evita conflito estrutural e de dado

• Evita a necessidade de escalonamento

pelo compilador

– Apesar de otimizações serem bem-vindas

Infra-estrutura de Hardware

Page 38: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Processadores Superescalares

• IBM RS/6000 (1st superscalar):

– 1 ALU/Load, 1 FP

• Pentium II:

– 1 ALU/FP, 1 ALU, 1 Load, 1Store, 1 Branch

• Alpha 21264:

– 1 ALU/FP/Branch, 2 ALU, 1Load/Store

Infra-estrutura de Hardware

Page 39: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

PENTIUM

MEM.

DE

INSTRUÇÃO

MEM.

DE

DADOS

DESPACHO

U - PIPE V - PIPE FPU

REGISTRADORES

Infra-estrutura de Hardware

Page 40: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

PENTIUM

PRE - BUSCA

DECODIFICAÇÃO

ENDEREÇO

EXECUÇÃO

ESCRITA

ENDEREÇO

EXECUÇÃO

ESCRITA

U pipe V pipe

Infra-estrutura de Hardware

Page 41: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Despacho múltiplo – Dinâmico

• Permite a CPU executar as instruções

“fora de ordem” para evitar stalls

– Mas atualiza registradores “na ordem”

• Exemplo

ld x31,20(x21)add x1,x31,x2sub x23,x23,x3andi x5,x23,20

– Pode iniciar o sub enquanto esperando por ld

Infra-estrutura de Hardware

Page 42: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Processador Superescalar

Busca e

Decodificação

Unidade

de Reserva

Inteiro

Escrita de

Resultados

InteiroLoad

Store

Ponto

Flutua.

Unidade

de Reserva

Unidade

de Reserva

Unidade

de Reserva

Despacho:

Em ordem

Execução:

Fora de ordem

Escrita:

1) Em ordem

2) Fora de ordem

Infra-estrutura de Hardware

Page 43: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Superescalar:

Revisando Dependências de Dados

- Dependência Verdadeira:

Read-after-Write (RAW)

- Dependência de Saída:

Write-after-Write (WAW)

- Antidependência:

Write-after-Read (WAR)

Infra-estrutura de Hardware

Page 44: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Superescalar:

Dependências WAR e WAW

Processadores com um pipeline não

apresentam estas dependências

porque apenas um estágio do

pipeline altera o estado da máquina

(os registradores) na ordem em que

as instruções são iniciadas.

Infra-estrutura de Hardware

Page 45: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Superescalar:

Dependências de Dados

r3:= r9 op1 r5 (I1)

r4:= r3 op2 r8 (I2)

r3:= r5 op3 r9 (I3)

r7:= r3 op4 r4 (I4)

Infra-estrutura de Hardware

• Dependência Verdadeira: (RAW)

I2 e I1, I4 e I3, I4 e I2

• Antidependência: (WAR)

I3 não pode terminar antes de I2 iniciar

• Dependências de Saída: (WAW)

I3 não pode terminar antes de I1

Page 46: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Dependências de Dados WAR e WAW:

Como tratá-las

1) Inserir NOPs ou bolhas (igual RAW)

2) Inserir instruções independentes (igual

RAW)

3) Usar armazenamento temporário

Infra-estrutura de Hardware

Page 47: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Pipeline com Escalonamento Dinâmico

Resultadps são

enviados para

reservation stations

que estão esperando

Reorders buffer

para escrita em

registradoresPode fornecer

operandos para

instruções

despachadas

Preserva

dependencias

Armazena instruções

com operandos

pendentes

Infra-estrutura de Hardware

Page 48: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Infra-estrutura de Hardware

Escalonamento Dinâmico – Despacho simples

• Baseado no Técnica proposta por Roberto Tomasulo

– IBM 360/91

– não havia caches; tempo de acesso à memória grande

– instruções de FP com grandes latências (delay))

• Como garantir alto desempenho sem compilador especial

– Um pequeno número de registradores floating point (4 no 360)

dificultava escalonamento das operações pelo compilador.

• Tomasulo: Como ter efetivamente mais registradores ?

Como resolver os conflitos devido à dependência de

dados

– seguir quando os operandos estiverem prontos e renomeamento

implementado no hardware!

• Usado nos processadores:

– Alpha 21264, HP 8000, MIPS 10000, Pentium III, PowerPC 604, …

Page 49: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Infra-estrutura de Hardware

Estrutura Básica para Escalonamento

Dinâmico

FP adders

Add1

Add2Add3

FP multipliers

Mult1Mult2

From Mem FP Registers

Reservation

Stations

Common Data Bus (CDB)

To Mem

FP Op

QueueLoad Buffers

Store

Buffers

Load1Load2Load3Load4Load5Load6

Page 50: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Infra-estrutura de Hardware

Estrutura Básica para Escalonamento

Dinâmico

FP adders (3)

Add1

Add2Add3

FP multipliers (2))

Mult1Mult2

From Mem FP Registers

Reservation

Stations

Common Data Bus (CDB)

To Mem

FP Op

QueueLoad Buffers

Store

Buffers

Load1Load2Load3Load4Load5Load6

• Controle & buffers distribuídos na Function Units (FU)

• FU buffers chamados de “reservation stations”; mantém

operandos pendentes

Page 51: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Reservation Station

Busy Op Vj Vk Qj Qk A

Vj, Vk: Valores dos operantos FontesStore buffers tem campos V,

resultados devem ser armazenados

Operação: Operação a ser

executada na unidade

0/1:Busy: Indica que a

Reservation Station e

sua FU estão ocupadas

Load/Store

Imediato/Endereço Efetivo:

Mantém informação sobre o end. de memória

calculado para instruções de load ou store

OBS.: Register File

Qi = N0. RS

número das Reservation Stations

que produzirão os operandos

correspondentes (valores a serem

escritos)

•Qj,Qk = 0 => ready

•Store buffers tem somente Qi

para RS que produz resultado

Infra-estrutura de Hardware

Page 52: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Infra-estrutura de Hardware

Estrutura Básica para Escalonamento

Dinâmico

FP adders

Add1

Add2Add3

FP multipliers

Mult1Mult2

From Mem FP Registers

Reservation

Stations

Common Data Bus (CDB)

To Mem

FP Op

QueueLoad Buffers

Store

Buffers

Load1Load2Load3Load4Load5Load6

Resultados enviados da Reservation Station para a FU, (sem

usar os registradores) através de broadcast dos resultados

para todas as FUs usando o Common Data Bus

Page 53: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Escalonamento Dinâmico

1. Issue— pega a instrução na “FP Op Queue” e decodifica. Se

a reservation station da instrução está livre (não há conflito

estrutural), despacha a instrução e envia operandos

disponíveis.

2. Execute —executa a operação sobre os operandos (EX) se

os dois operandos estão disponíveis. Se algum operando

não estiver pronto, monitora o Common Data Bus (espera

pelo cálculo do operando, essa espera resolve RAW).

Quando um operando está pronto atualiza reservation table)

Infra-estrutura de Hardware

Page 54: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Escalonamento Dinâmico

3. Write result — termina a execução (WB)

Os resultados calculados pelas reservation units são

enviados por Broadcast via Common Data Bus para todas

unidades; marca a reservation station como disponível.

Escreve no registrador.

Infra-estrutura de Hardware

Page 55: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Exemplo do Alg. Tomasulo

• Trecho de programa a ser executado:

1 L.D F6,34(R2)

2 L.D F2,45(R3)

3 MUL.D F0,F2,F4

4 SUB.D F8,F2,F6

5 DIV.D F10,F0,F6

6 ADD.D F6,F8,F2

RAW?: (1-4); (1-5); (2-3); (2-4); (2-6); ....

Infra-estrutura de Hardware

Page 56: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Infra-estrutura de Hardware

Exemplo do Alg. Tomasulo

• Assumir as seguintes latências:– Load: 1 ciclo

– Add: 2 ciclos

– Multiplicação: 10 ciclos

– Divisão: 40 ciclos

• Load-Store:– Calcula o endereço efetivo (FU)

– Instruções de Load ou Store usam buffers

– Acesso à memória (somente load)

– Escrita de resultado• Load: envia o valor para o registador e/ou reservation stations

• Store: escreve o valor na memória

• (escritas somente no estágio “WB” – simplifica o algoritmo de Tomasulo)

Page 57: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Infra-estrutura de Hardware

Exemplo do Alg. Tomasulo

Instruction status: Exec Write

Instruction j k Issue Comp Result Busy Address

LD F6 34+ R2 Load1 No

LD F2 45+ R3 Load2 No

MULTD F0 F2 F4 Load3 No

SUBD F8 F6 F2

DIVD F10 F0 F6

ADDD F6 F8 F2

Reservation Stations: S1 S2 RS RS

Time Name Busy Op Vj Vk Qj Qk

Add1 No

Add2 No

Add3 No

Mult1 No

Mult2 No

Register result status:

Clock F0 F2 F4 F6 F8 F10 F12 ... F300 FU

Clock cycle

Latência

(que falta) da FU

Instruções do

programa

3 Load/Buffers

3 FP Adder R.S.

2 FP Mult R.S.

3 estágios da execução

Page 58: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Exemplo Tomasulo: Ciclo 1Instruction status: Exec Write

Instruction j k Issue Comp Result Busy Address

LD F6 34+ R2 1 Load1 Yes 34+R2

LD F2 45+ R3 Load2 No

MULTD F0 F2 F4 Load3 No

SUBD F8 F6 F2

DIVD F10 F0 F6

ADDD F6 F8 F2

Reservation Stations: S1 S2 RS RS

Time Name Busy Op Vj Vk Qj Qk

Add1 No

Add2 No

Add3 No

Mult1 No

Mult2 No

Register result status:

Clock F0 F2 F4 F6 F8 F10 F12 ... F301 FU Load1

Infra-estrutura de Hardware

Page 59: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Infra-estrutura de Hardware

Exemplo Tomasulo: Ciclo 2

Instruction status: Exec Write

Instruction j k Issue Comp Result Busy Address

LD F6 34+ R2 1 Load1 Yes 34+R2

LD F2 45+ R3 2 Load2 Yes 45+R3

MULTD F0 F2 F4 Load3 No

SUBD F8 F6 F2

DIVD F10 F0 F6

ADDD F6 F8 F2

Reservation Stations: S1 S2 RS RS

Time Name Busy Op Vj Vk Qj Qk

Add1 No

Add2 No

Add3 No

Mult1 No

Mult2 No

Register result status:

Clock F0 F2 F4 F6 F8 F10 F12 ... F302 FU Load2 Load1

Nota: pode haver múltiplos loads pendentes

Page 60: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Infra-estrutura de Hardware

Exemplo Tomasulo: Ciclo 3

Instruction status: Exec Write

Instruction j k Issue Comp Result Busy Address

LD F6 34+ R2 1 3 Load1 Yes 34+R2

LD F2 45+ R3 2 Load2 Yes 45+R3

MULTD F0 F2 F4 3 Load3 No

SUBD F8 F6 F2

DIVD F10 F0 F6

ADDD F6 F8 F2

Reservation Stations: S1 S2 RS RS

Time Name Busy Op Vj Vk Qj Qk

Add1 No

Add2 No

Add3 No

Mult1 Yes MULTD R(F4) Load2

Mult2 No

Register result status:

Clock F0 F2 F4 F6 F8 F10 F12 ... F303 FU Mult1 Load2 Load1

• Nota: nomes dos registradores são removidos (“renamed”) na Reservation Stations; MULT issued

• Load1 completa; alguém esperando por Load1?

Page 61: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Infra-estrutura de Hardware

Exemplo Tomasulo: Ciclo 4

Instruction status: Exec Write

Instruction j k Issue Comp Result Busy Address

LD F6 34+ R2 1 3 4 Load1 No

LD F2 45+ R3 2 4 Load2 Yes 45+R3

MULTD F0 F2 F4 3 Load3 No

SUBD F8 F6 F2 4

DIVD F10 F0 F6

ADDD F6 F8 F2

Reservation Stations: S1 S2 RS RS

Time Name Busy Op Vj Vk Qj Qk

Add1 Yes SUBD M(A1) Load2

Add2 No

Add3 No

Mult1 Yes MULTD R(F4) Load2

Mult2 No

Register result status:

Clock F0 F2 F4 F6 F8 F10 F12 ... F304 FU Mult1 Load2 M(A1) Add1

• Load2 completa; alguém esperando por Load2?

Page 62: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Infra-estrutura de Hardware

Exemplo Tomasulo: Ciclo 5

Instruction status: Exec Write

Instruction j k Issue Comp Result Busy Address

LD F6 34+ R2 1 3 4 Load1 No

LD F2 45+ R3 2 4 5 Load2 No

MULTD F0 F2 F4 3 Load3 No

SUBD F8 F6 F2 4

DIVD F10 F0 F6 5

ADDD F6 F8 F2

Reservation Stations: S1 S2 RS RS

Time Name Busy Op Vj Vk Qj Qk

2 Add1 Yes SUBD M(A1) M(A2)

Add2 No

Add3 No

10 Mult1 Yes MULTD M(A2) R(F4)

Mult2 Yes DIVD M(A1) Mult1

Register result status:

Clock F0 F2 F4 F6 F8 F10 F12 ... F305 FU Mult1 M(A2) M(A1) Add1 Mult2

• Timer inicia a contagem regressiva para Add1, Mult1

Page 63: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Infra-estrutura de Hardware

Exemplo Tomasulo: Ciclo 6

Instruction status: Exec Write

Instruction j k Issue Comp Result Busy Address

LD F6 34+ R2 1 3 4 Load1 No

LD F2 45+ R3 2 4 5 Load2 No

MULTD F0 F2 F4 3 Load3 No

SUBD F8 F6 F2 4

DIVD F10 F0 F6 5

ADDD F6 F8 F2 6

Reservation Stations: S1 S2 RS RS

Time Name Busy Op Vj Vk Qj Qk

1 Add1 Yes SUBD M(A1) M(A2)

Add2 Yes ADDD M(A2) Add1

Add3 No

9 Mult1 Yes MULTD M(A2) R(F4)

Mult2 Yes DIVD M(A1) Mult1

Register result status:

Clock F0 F2 F4 F6 F8 F10 F12 ... F306 FU Mult1 M(A2) Add2 Add1 Mult2

• Despacha ADDD, dependência de nome em F6?

Page 64: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Infra-estrutura de Hardware

Exemplo Tomasulo: Ciclo 7

Instruction status: Exec Write

Instruction j k Issue Comp Result Busy Address

LD F6 34+ R2 1 3 4 Load1 No

LD F2 45+ R3 2 4 5 Load2 No

MULTD F0 F2 F4 3 Load3 No

SUBD F8 F6 F2 4 7

DIVD F10 F0 F6 5

ADDD F6 F8 F2 6

Reservation Stations: S1 S2 RS RS

Time Name Busy Op Vj Vk Qj Qk

0 Add1 Yes SUBD M(A1) M(A2)

Add2 Yes ADDD M(A2) Add1

Add3 No

8 Mult1 Yes MULTD M(A2) R(F4)

Mult2 Yes DIVD M(A1) Mult1

Register result status:

Clock F0 F2 F4 F6 F8 F10 F12 ... F307 FU Mult1 M(A2) Add2 Add1 Mult2

• Add1 (SUBD) completa; alguém esperando por add1?

Page 65: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Exemplo Tomasulo: Ciclo 8

Instruction status: Exec Write

Instruction j k Issue Comp Result Busy Address

LD F6 34+ R2 1 3 4 Load1 No

LD F2 45+ R3 2 4 5 Load2 No

MULTD F0 F2 F4 3 Load3 No

SUBD F8 F6 F2 4 7 8

DIVD F10 F0 F6 5

ADDD F6 F8 F2 6

Reservation Stations: S1 S2 RS RS

Time Name Busy Op Vj Vk Qj Qk

Add1 No

2 Add2 Yes ADDD (M-M) M(A2)

Add3 No

7 Mult1 Yes MULTD M(A2) R(F4)

Mult2 Yes DIVD M(A1) Mult1

Register result status:

Clock F0 F2 F4 F6 F8 F10 F12 ... F308 FU Mult1 M(A2) Add2 (M-M) Mult2

Infra-estrutura de Hardware

Page 66: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Exemplo Tomasulo: Ciclo 9

Instruction status: Exec Write

Instruction j k Issue Comp Result Busy Address

LD F6 34+ R2 1 3 4 Load1 No

LD F2 45+ R3 2 4 5 Load2 No

MULTD F0 F2 F4 3 Load3 No

SUBD F8 F6 F2 4 7 8

DIVD F10 F0 F6 5

ADDD F6 F8 F2 6

Reservation Stations: S1 S2 RS RS

Time Name Busy Op Vj Vk Qj Qk

Add1 No

1 Add2 Yes ADDD (M-M) M(A2)

Add3 No

6 Mult1 Yes MULTD M(A2) R(F4)

Mult2 Yes DIVD M(A1) Mult1

Register result status:

Clock F0 F2 F4 F6 F8 F10 F12 ... F309 FU Mult1 M(A2) Add2 (M-M) Mult2

Infra-estrutura de Hardware

Page 67: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Infra-estrutura de Hardware

Exemplo Tomasulo: Ciclo 10

Instruction status: Exec Write

Instruction j k Issue Comp Result Busy Address

LD F6 34+ R2 1 3 4 Load1 No

LD F2 45+ R3 2 4 5 Load2 No

MULTD F0 F2 F4 3 Load3 No

SUBD F8 F6 F2 4 7 8

DIVD F10 F0 F6 5

ADDD F6 F8 F2 6 10

Reservation Stations: S1 S2 RS RS

Time Name Busy Op Vj Vk Qj Qk

Add1 No

0 Add2 Yes ADDD (M-M) M(A2)

Add3 No

5 Mult1 Yes MULTD M(A2) R(F4)

Mult2 Yes DIVD M(A1) Mult1

Register result status:

Clock F0 F2 F4 F6 F8 F10 F12 ... F3010 FU Mult1 M(A2) Add2 (M-M) Mult2

• Add2 (ADDD) completa; alguém esperando por add2?

Page 68: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Infra-estrutura de Hardware

Exemplo Tomasulo: Ciclo 11

Instruction status: Exec Write

Instruction j k Issue Comp Result Busy Address

LD F6 34+ R2 1 3 4 Load1 No

LD F2 45+ R3 2 4 5 Load2 No

MULTD F0 F2 F4 3 Load3 No

SUBD F8 F6 F2 4 7 8

DIVD F10 F0 F6 5

ADDD F6 F8 F2 6 10 11

Reservation Stations: S1 S2 RS RS

Time Name Busy Op Vj Vk Qj Qk

Add1 No

Add2 No

Add3 No

4 Mult1 Yes MULTD M(A2) R(F4)

Mult2 Yes DIVD M(A1) Mult1

Register result status:

Clock F0 F2 F4 F6 F8 F10 F12 ... F3011 FU Mult1 M(A2) (M-M+M)(M-M) Mult2

• Resultado de ADDD é escrito!

• Todas as instruções mais rápidas terminam neste ciclo!

Page 69: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Exemplo Tomasulo: Ciclo 12

Instruction status: Exec Write

Instruction j k Issue Comp Result Busy Address

LD F6 34+ R2 1 3 4 Load1 No

LD F2 45+ R3 2 4 5 Load2 No

MULTD F0 F2 F4 3 Load3 No

SUBD F8 F6 F2 4 7 8

DIVD F10 F0 F6 5

ADDD F6 F8 F2 6 10 11

Reservation Stations: S1 S2 RS RS

Time Name Busy Op Vj Vk Qj Qk

Add1 No

Add2 No

Add3 No

3 Mult1 Yes MULTD M(A2) R(F4)

Mult2 Yes DIVD M(A1) Mult1

Register result status:

Clock F0 F2 F4 F6 F8 F10 F12 ... F3012 FU Mult1 M(A2) (M-M+M)(M-M) Mult2

Infra-estrutura de Hardware

Page 70: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Exemplo Tomasulo: Ciclo 13

Instruction status: Exec Write

Instruction j k Issue Comp Result Busy Address

LD F6 34+ R2 1 3 4 Load1 No

LD F2 45+ R3 2 4 5 Load2 No

MULTD F0 F2 F4 3 Load3 No

SUBD F8 F6 F2 4 7 8

DIVD F10 F0 F6 5

ADDD F6 F8 F2 6 10 11

Reservation Stations: S1 S2 RS RS

Time Name Busy Op Vj Vk Qj Qk

Add1 No

Add2 No

Add3 No

2 Mult1 Yes MULTD M(A2) R(F4)

Mult2 Yes DIVD M(A1) Mult1

Register result status:

Clock F0 F2 F4 F6 F8 F10 F12 ... F3013 FU Mult1 M(A2) (M-M+M)(M-M) Mult2

Infra-estrutura de Hardware

Page 71: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Exemplo Tomasulo: Ciclo 14

Instruction status: Exec Write

Instruction j k Issue Comp Result Busy Address

LD F6 34+ R2 1 3 4 Load1 No

LD F2 45+ R3 2 4 5 Load2 No

MULTD F0 F2 F4 3 Load3 No

SUBD F8 F6 F2 4 7 8

DIVD F10 F0 F6 5

ADDD F6 F8 F2 6 10 11

Reservation Stations: S1 S2 RS RS

Time Name Busy Op Vj Vk Qj Qk

Add1 No

Add2 No

Add3 No

1 Mult1 Yes MULTD M(A2) R(F4)

Mult2 Yes DIVD M(A1) Mult1

Register result status:

Clock F0 F2 F4 F6 F8 F10 F12 ... F3014 FU Mult1 M(A2) (M-M+M)(M-M) Mult2

Infra-estrutura de Hardware

Page 72: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Infra-estrutura de Hardware

Exemplo Tomasulo: Ciclo 15

Instruction status: Exec Write

Instruction j k Issue Comp Result Busy Address

LD F6 34+ R2 1 3 4 Load1 No

LD F2 45+ R3 2 4 5 Load2 No

MULTD F0 F2 F4 3 15 Load3 No

SUBD F8 F6 F2 4 7 8

DIVD F10 F0 F6 5

ADDD F6 F8 F2 6 10 11

Reservation Stations: S1 S2 RS RS

Time Name Busy Op Vj Vk Qj Qk

Add1 No

Add2 No

Add3 No

0 Mult1 Yes MULTD M(A2) R(F4)

Mult2 Yes DIVD M(A1) Mult1

Register result status:

Clock F0 F2 F4 F6 F8 F10 F12 ... F3015 FU Mult1 M(A2) (M-M+M)(M-M) Mult2

• Mult1 (MULTD) completa; alguém esperando pormult1?

Page 73: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Infra-estrutura de Hardware

Exemplo Tomasulo: Ciclo 16

Instruction status: Exec Write

Instruction j k Issue Comp Result Busy Address

LD F6 34+ R2 1 3 4 Load1 No

LD F2 45+ R3 2 4 5 Load2 No

MULTD F0 F2 F4 3 15 16 Load3 No

SUBD F8 F6 F2 4 7 8

DIVD F10 F0 F6 5

ADDD F6 F8 F2 6 10 11

Reservation Stations: S1 S2 RS RS

Time Name Busy Op Vj Vk Qj Qk

Add1 No

Add2 No

Add3 No

Mult1 No

40 Mult2 Yes DIVD M*F4 M(A1)

Register result status:

Clock F0 F2 F4 F6 F8 F10 F12 ... F3016 FU M*F4 M(A2) (M-M+M)(M-M) Mult2

• Agora é só esperar que Mult2 (DIVD) complete

Page 74: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Pulando alguns ciclos

Infra-estrutura de Hardware

Page 75: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Exemplo Tomasulo: Ciclo 55

Instruction status: Exec Write

Instruction j k Issue Comp Result Busy Address

LD F6 34+ R2 1 3 4 Load1 No

LD F2 45+ R3 2 4 5 Load2 No

MULTD F0 F2 F4 3 15 16 Load3 No

SUBD F8 F6 F2 4 7 8

DIVD F10 F0 F6 5

ADDD F6 F8 F2 6 10 11

Reservation Stations: S1 S2 RS RS

Time Name Busy Op Vj Vk Qj Qk

Add1 No

Add2 No

Add3 No

Mult1 No

1 Mult2 Yes DIVD M*F4 M(A1)

Register result status:

Clock F0 F2 F4 F6 F8 F10 F12 ... F3055 FU M*F4 M(A2) (M-M+M)(M-M) Mult2

Infra-estrutura de Hardware

Page 76: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Infra-estrutura de Hardware

Exemplo Tomasulo: Ciclo 56

Instruction status: Exec Write

Instruction j k Issue Comp Result Busy Address

LD F6 34+ R2 1 3 4 Load1 No

LD F2 45+ R3 2 4 5 Load2 No

MULTD F0 F2 F4 3 15 16 Load3 No

SUBD F8 F6 F2 4 7 8

DIVD F10 F0 F6 5 56

ADDD F6 F8 F2 6 10 11

Reservation Stations: S1 S2 RS RS

Time Name Busy Op Vj Vk Qj Qk

Add1 No

Add2 No

Add3 No

Mult1 No

0 Mult2 Yes DIVD M*F4 M(A1)

Register result status:

Clock F0 F2 F4 F6 F8 F10 F12 ... F3056 FU M*F4 M(A2) (M-M+M)(M-M) Mult2

• Mult2 (DIVD) completa; alguém esperando por mult2?

Page 77: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Infra-estrutura de Hardware

Exemplo Tomasulo: Ciclo 57

Instruction status: Exec Write

Instruction j k Issue Comp Result Busy Address

LD F6 34+ R2 1 3 4 Load1 No

LD F2 45+ R3 2 4 5 Load2 No

MULTD F0 F2 F4 3 15 16 Load3 No

SUBD F8 F6 F2 4 7 8

DIVD F10 F0 F6 5 56 57

ADDD F6 F8 F2 6 10 11

Reservation Stations: S1 S2 RS RS

Time Name Busy Op Vj Vk Qj Qk

Add1 No

Add2 No

Add3 No

Mult1 No

Mult2 Yes DIVD M*F4 M(A1)

Register result status:

ClockF0 F2 F4 F6 F8 F10 F12

...F30

57 FU M*F4 M(A2) (M-M+M) (M-M) Result

• Despacho en ordem, execução fora de ordem, término fora de ordem

Page 78: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Como considerar previsão de

desvio no escalonamento dinâmico

das instruções

Infra-estrutura de Hardware

Page 79: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Escalonamento Dinâmico e Previsão de Desvio

• Especulação: Uso da previsão de desvio no

Escalonamento Dinâmico

• Especulação melhora desempenho MAS…

• Importante ter um bom mecanismo de previsão

de desvio

• Se houve especulação incorreta é necessário

voltar e reiniciar a execução a partir do ponto em

que foi feita a previsão incorreta :

– O estado do processador tem que ser recuperado e as

instruções corretas devem ser executadas

Infra-estrutura de Hardware

Page 80: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Infra-estrutura de Hardware

Escalonamento Dinâmico com Especulação

• Buffer para os

resultados de

instruções que não

terminaram

(uncommitted

instructions):

reorder buffer

Page 81: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Escalonamento Dinâmico com Especulação

• Como garantir que a Especulação não vai

introduzir erro?

• Técnica para especulação deve garantir in-order

completion ou commit

• Término da instrução inclui duas etapas:

– Término

– Commit (escrita nos registradores)

Infra-estrutura de Hardware

Page 82: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Suporte de HW Especulação

• Buffer para os resultados de

instruções que não terminaram

que preserva a ordem

(uncommitted instructions):

reorder buffer– 3 campos: instr, reg. destino, valor

– reorder buffer armazena valores

intermediários

– Depois que a instrução dá commit,

o registrador é atualizado.

– Permite desfazer instruções

especuladas devido a um desvio

previsto erradamente

Reorder

BufferFP

Op

Queue

FP Adder FP Adder

Res Stations Res Stations

FP Regs

Infra-estrutura de Hardware

Page 83: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Infra-estrutura de Hardware

Escalonamento Dinâmico com

Especulação1. Issue — pega a instrução da FP Op Queue

Se há reservation station e reorder buffer slot livres: despacha instr& envia operandos & reorder buffer no. para o destino (este estágio é comumente chamado de “dispatch”)

2.Execution — opera sobre os operandos (EX)Quando ambos os operandos estão prontos executa; se não monitora o CDB a espera do resultado; quando ambos estiverem na reservation station, executa; verifica se há RAW (comumente chamado de “issue”)

3.Write result — termina a execução (WB)Escreve, usando o Common Data Bus, em todas FUs que estão esperando por esse valor e no reorder buffer; marca a reservation station como disponível.

4.Commit — atualiza o registrador com o resultado do reorder buffer

Quando a instr. é a primeira no reorder buffer e o resultado está presente: atualiza o registrador com o resultado (ou store na memória) e remove a instr. do reorder buffer. Se foi um Mispredicted branch então flushes reorder buffer

Page 84: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Infra-estrutura de Hardware

85

Escalonamento Dinâmico com Especulação

• Exemplo

– Código:

L.D F0, 0(R1)

MUL.D F4, F0, F2

S.D F4, 0(R1)

DADDIU R1, R1, #-8

BNE R1, R2, Loop

– 2 iterações no loop

• Assumir

– 2 ciclos para add

– 6 ciclos para multiply

– 2 adicionadores

– 2 multiplicadores

Page 85: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Infra-estrutura de Hardware

Escalonamento Dinâmico com Especulação

Page 86: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Escalonamento Dinâmico com Especulação

Infra-estrutura de Hardware

Page 87: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Escalonamento Dinâmico com EspeculaçãoCiclo 1-2

Infra-estrutura de Hardware

Page 88: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Escalonamento Dinâmico com EspeculaçãoCiclo 3

Infra-estrutura de Hardware

Page 89: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Escalonamento Dinâmico com EspeculaçãoCiclo 4

Infra-estrutura de Hardware

Page 90: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Escalonamento Dinâmico com EspeculaçãoCiclo 5

Infra-estrutura de Hardware

Page 91: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Infra-estrutura de Hardware

Escalonamento Dinâmico com EspeculaçãoCiclo 6

Load commit

Page 92: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Infra-estrutura de Hardware

Escalonamento Dinâmico com EspeculaçãoCiclo 7

Page 93: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Infra-estrutura de Hardware

Escalonamento Dinâmico com EspeculaçãoCiclo 8

Page 94: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Infra-estrutura de Hardware

Escalonamento Dinâmico com EspeculaçãoCiclo 9

Page 95: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Infra-estrutura de Hardware

Escalonamento Dinâmico com EspeculaçãoCiclo 10

Page 96: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Infra-estrutura de Hardware

Escalonamento Dinâmico com EspeculaçãoCiclo 11

Page 97: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Infra-estrutura de Hardware

Escalonamento Dinâmico com EspeculaçãoCiclo 12

Page 98: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Infra-estrutura de Hardware

Escalonamento Dinâmico com EspeculaçãoCiclo 13

Page 99: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Infra-estrutura de Hardware

Escalonamento Dinâmico com EspeculaçãoCiclo 14

Page 100: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Infra-estrutura de Hardware

Escalonamento Dinâmico com EspeculaçãoCiclo 15

Page 101: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Infra-estrutura de Hardware

Escalonamento Dinâmico com EspeculaçãoCiclo 16

Page 102: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Infra-estrutura de Hardware

Escalonamento Dinâmico com EspeculaçãoCiclo 17

Page 103: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Escalonamento Dinâmico com Especulação

Infra-estrutura de Hardware

Page 104: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Infra-estrutura de Hardware

Escalonamento Dinâmico com Especulação

• Buffer para os

resultados de

instruções que não

terminaram

(uncommitted

instructions):

reorder buffer

Page 105: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Renomeamento de Registradores

• “Reservation stations” e “reorder buffer” permitem armazenamento temporário

• Uma instrução vai para a “reservation station”– Se o operando está disponível no banco de

registradores ou no “reorder buffer”• Copiada para “reservation station”

– Se o operando não está disponível• Este será enviado para a “reservation station” e reorder

buffer pela unidade funcional

• Outra opção de Armazenamento Temporário: Banco extra de registradores

Infra-estrutura de Hardware

Page 106: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Infra-estrutura de Hardware

Register Renaming

• Para evitar um grande número de acessos ao Reorder Buffer:

usar conjunto de registradores físicos maior com register

renaming

• Registradores Físicos: inclui os registradores visíveis do

processador (arquitetura) + registradores temporários

– Substitui parte das funções do reorder buffer e das reservation stations

• O processo de Renaming mapeia os nomes dos regs da

arquitetura nos registradores físicos

– Um subconjunto dos regs. Físicos modificados contém os regs visíveis

da arquitetura

• Simplifica o instruction commit: marca o registrador como não

especulativo, libera registradores com valores antigos

• Adicionado 40-80 registradores extras: Alpha, Pentium,…

– O tamanho limita o no. de instruções em execução (usado até o

commit)

Page 107: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Register Renaming

• Fazer uso de um banco de registradores físicos que é maior do que o

número de registradores especificados pelo ISA

• Necessidade de uma tabela de conversão:

– ISA registrador => Mapeamento para o registrador físico

– Quando registrador é escrito, substitua entrada na tabela com novo

registrador da lista de registradores livres

– Registradores físicos tornam-se livres quando não estão sendo usados

por qualquer instrução em execução.

• Vantagens:

– Elimina conflitos WAR e WAW

– Assim como Tomasulo, permite término out-of-order

– Permite dados serem buscados de um único banco de registradores.

– Torna a execução especulativa / interrupção precisa mais fáceis:

• Tudo o que é necessário é “desfazer” o que está na tabela de mapeamentos.

Infra-estrutura de Hardware

Page 108: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

register renaming:

Done?

Oldest

Newest

P0 P2 P4 P6 P8 P10 P12 P14 P16 P18 P20 P22 P24 P26 P28 P30

P32 P34 P36 P38 P60 P62

Current Map Table

Freelist

• Banco de registradores físicos maior que Banco do ISA

• No despacho, a cada instrução que modifica um registrador um novo registrador

físico é alocado.

• Usado em: R10000, Alpha 21264, HP PA8000

Infra-estrutura de Hardware

Page 109: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Infra-estrutura de Hardware

register renaming:

F0 P0 LD P32,10(R2) N

Done?

Oldest

Newest

P32 P2 P4 P6 P8 P10 P12 P14 P16 P18 P20 P22 P24 P26 P28 P30

P34 P36 P38 P40 P60 P62

Current Map Table

Freelist

• Note que registrador físico P0 está “morto” a

partir deste load.

– Quando o load é terminado (commit), o

registrador é liberado.

Page 110: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

register renaming:

F10

F0

P10

P0

ADDD P34,P4,P32

LD P32,10(R2)

N

N

Done?

Oldest

Newest

P32 P2 P4 P6 P8 P34 P12 P14 P16 P18 P20 P22 P24 P26 P28 P30

P36 P38 P40 P42 P60 P62

Current Map Table

Freelist

Infra-estrutura de Hardware

Page 111: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

register renaming:

--

--

F2

F10

F0

P2

P10

P0

BNE P36,<…> N

DIVD P36,P34,P6

ADDD P34,P4,P32

LD P32,10(R2)

N

N

N

Done?

Oldest

Newest

P32 P36 P4 P6 P8 P34 P12 P14 P16 P18 P20 P22 P24 P26 P28 P30

P38 P40 P44 P48 P60 P62

Current Map Table

Freelist

P32 P36 P4 P6 P8 P34 P12 P14 P16 P18 P20 P22 P24 P26 P28 P30

P38 P40 P44 P48 P60 P62 Checkpoint na instrução BNE Infra-estrutura de Hardware

Page 112: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

register renaming:

--

F0

F4

--

F2

F10

F0

P32

P4

P2

P10

P0

ST 0(R3),P40

ADDD P40,P38,P6

Y

Y

LD P38,0(R3) Y

BNE P36,<…> N

DIVD P36,P34,P6

ADDD P34,P4,P32

LD P32,10(R2)

N

y

y

Done?

Oldest

Newest

P40 P36 P38 P6 P8 P34 P12 P14 P16 P18 P20 P22 P24 P26 P28 P30

P42 P44 P48 P50 P0 P10

Current Map Table

Freelist

P32 P36 P4 P6 P8 P34 P12 P14 P16 P18 P20 P22 P24 P26 P28 P30

P38 P40 P44 P48 P60 P62 Checkpoint na instrução BNE Infra-estrutura de Hardware

Page 113: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

register renaming: Especulação Errada

F2

F10

F0

P2

P10

P0

DIVD P36,P34,P6

ADDD P34,P4,P32

LD P32,10(R2)

N

y

y

Done?

Oldest

Newest

Current Map Table

Freelist

P32 P36 P4 P6 P8 P34 P12 P14 P16 P18 P20 P22 P24 P26 P28 P30

P38 P40 P44 P48 P60 P62 Checkpoint na instrução BNE

P32 P36 P4 P6 P8 P34 P12 P14 P16 P18 P20 P22 P24 P26 P28 P30

P38 P40 P44 P48 P60 P62

No caso de erro de Especulação a tabela e a lista de registradores

Livres vão ser restauradas.

Infra-estrutura de Hardware

Page 114: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Infra-estrutura de Hardware

Tratamento de Exceções

• out-of-order completion deve preservar o

comportamento sob exceções como se fosse

executado em uma máquina in-order

• Processadores com escalonamento dinâmico

devem preservam o comportamento sob exceções

garantindo que as instruções não possam gerar

exceções até que o processador saiba que a

instrução que gerou a exceção está sendo

completada.

Page 115: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Infra-estrutura de Hardware

Interrupções Imprecisas• Processadores com escalonamento

dinâmico podem gerar exceções imprecisas:

– uma exceção é dita imprecisa se o estado do

processador quando ela foi gerada não

corresponde exatamente ao estado que ela

ocorreria se a instrução fosse executada

seqüencialmente.

– Exemplo:

• Uma instrução fora de ordem já foi completada e uma

instrução anterior a ela gera a exceção

• Uma instrução fora de ordem ainda não foi completada

e uma instrução posterior a ela gera a exceção

– Estas não devem ser tratadas no momento.

Page 116: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Interrupções Precisas e Especulação

• Especulação é uma forma de adivinhação.

• Se o processador especular e estiver errado, é

necessário voltar e reiniciar a execução a partir

do ponto em que foi feita a previsão incorreta :

• Isto é semelhante ao que ocorre nas exceções

precisas!

– A instrução que causou exceção deve executar

novamente.

• Para garantir comportamento correto no caso de

exceções imprecisas, exceções precisas e

especulação:

• in-order completion ou commitInfra-estrutura de Hardware

Page 117: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Vantagens da Especulação Dinâmica

• Nem todos retardos são previsíveis

– e.g., cache misses

• Nem sempre é possível desenrolar loops

– Endereço de desvio é determinado em tempo

de execução

• Implementações diferentes do mesmo ISA

terá diferentes conflitos e retardos.

Infra-estrutura de Hardware

Page 118: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Infra-estrutura de Hardware

Multiple Issue funciona?

• Sim, mas tem limites em explorar ILP….

• Programas tem dependências que limitam ILP

• Algumas dependências são difíceis de se

eliminar…

– Dependências com endereços de memória

• Dificuldade de descobrir paralelismo

– Com o aumento do número de instruções a serem

analisadas

• Tempo de acesso da memória

– Difícil manter pipeline cheio

• Especulação pode ajudar se “bem feita”

Page 119: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Eficiência Energética

• Complexidade de escalonamento dinâmico e

especulação eleva consumo de energia e

dissipação de potência

Microprocessor Year Clock Rate Pipeline

Stages

Issue

width

Out-of-order/

Speculation

Cores Power

i486 1989 25MHz 5 1 No 1 5W

Pentium 1993 66MHz 5 2 No 1 10W

Pentium Pro 1997 200MHz 10 3 Yes 1 29W

P4 Willamette 2001 2000MHz 22 3 Yes 1 75W

P4 Prescott 2004 3600MHz 31 3 Yes 1 103W

Core 2006 2930MHz 14 4 Yes 2 75W

UltraSparc III 2003 1950MHz 14 4 No 1 90W

UltraSparc T1 2005 1200MHz 6 1 No 8 70W

Infra-estrutura de Hardware

Page 120: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Microarquitetura do Opteron X4

72 physical

registers

Infra-estrutura de Hardware

Page 121: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Opteron X4 Fluxo do Pipeline

• Operações Inteiro

◼ FP tem 5 estágios a mais

◼ Até 106 RISC-ops em execução

◼ Bottlenecks

◼ Instruções complexas com dependências

◼ Erros na previsão de desvio

◼ Tempo de acesso a memória

Infra-estrutura de Hardware

Page 122: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Infra-estrutura de Hardware

Cortex A53 and Intel i7

Processor ARM A53 Intel Core i7 920

Market Personal Mobile Device Server, cloud

Thermal design power 100 milliWatts

(1 core @ 1 GHz)

130 Watts

Clock rate 1.5 GHz 2.66 GHz

Cores/Chip 4 (configurable) 4

Floating point? Yes Yes

Multiple issue? Dynamic Dynamic

Peak instructions/clock cycle 2 4

Pipeline stages 8 14

Pipeline schedule Static in-order Dynamic out-of-order

with speculation

Branch prediction Hybrid 2-level

1st level caches/core 16-64 KiB I, 16-64 KiB D 32 KiB I, 32 KiB D

2nd level caches/core 128-2048 KiB 256 KiB (per core)

3rd level caches (shared) (platform dependent) 2-8 MB

Page 123: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

ARM Cortex-A53 Pipeline

Infra-estrutura de Hardware

Page 124: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

ARM Cortex-A53 Performance

Infra-estrutura de Hardware

Page 125: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Core i7

Pipeline

Infra-estrutura de Hardware

Page 126: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Core i7 Performance

Infra-estrutura de Hardware

Page 127: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Comparando as diversas

arquiteturas...

Infra-estrutura de Hardware

Page 128: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Critérios de Otimização

Número médio de ciclos por instruções

SUPERESCALARES

Número de instruções por programa

VLIW

Tempo do ciclo do processador

SUPERPIPELINE

Infra-estrutura de Hardware

Page 129: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Várias Instruções por Ciclo

Detecção das Dependências de Controle

Superescalarhardware

VLIW (very long instruction word)

compilador

Infra-estrutura de Hardware

Page 130: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Compatibilidade de Software

– Importância:

• Garantir longevidade do software

• Redução do “Time-to-market”

• Código fonte

– Otimizações por Software

• Código Objeto (Binário)

– Otimizações por Hardware

Infra-estrutura de Hardware

Page 131: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Desempenho dos Processadores

Infra-estrutura de Hardware

Page 132: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Conclusões

• ISA influencia no projeto da unidade de

processamento e controle (e vice-versa)

• Pipelining melhora taxa de execução das

instruções explorando paralelismo

– Mais instruções completadas por segundo

– Latencia de cada instrução não é reduzida

• Conflitos: estrutural, dado e controle

• Multiple issue e Escalonamento Dinamico (ILP)

– Dependências limitam paralelismo de instrução

– Complexidade levam ao limite de potência

Infra-estrutura de Hardware

Page 133: Processadores Superescalaresif674/arquivos/2019.1/Aulas/superscalar-riscV.pdf · Reduced Instruction Set Computer) • Tornar as máquinas mais simples e portanto mais velozes: –poucas

Conclusões

• Necessidade e oportunidades para explorer

paralelismo de thread.

– Paralelismo explícito

• Vale a pena explorer paralelismo de thread em

UM PROCESSADOR?

– Aumento da complexidade e consume do potência

• Multiplos processadores com menor

complexidade cada podem ser mais

eficientes.

Infra-estrutura de Hardware