23
Família Intel P5 e P6 Year Type Transistors Technology Clock Issue Word L1 cache L2 cache (x1000) ( m m) (M Hz) format 1993 Pentium 3100 0.8 66 2 32-bit 2 X 8 kB 1994 Pentium 3200 0.6 75-100 2 32-bit 2 X 8 kB 1995 Pentium 3200 0.6/0.35 120-133 2 32-bit 2 X 8 kB 1996 Pentium 3300 0.35 150-166 2 32-bit 2 X 8 kB 1997 Pentium MMX 4500 0.35 200-233 2 32-bit 2 X 16 kB 1998 M obilePentium MMX 4500 0.25 200-233 2 32-bit 2 X 16 kB 1995 PentiumPro 5500 0.35 150-200 3 32-bit 2 X 8 kB 256/512 kB 1997 PentiumPro 5500 0.35 200 3 32-bit 2 X 8 kB 1MB 1998 Intel Celeron 7500 0.25 266-300 3 32-bit 2 X 16 kB -- 1998 Intel Celeron 19000 0.25 300-333 3 32-bit 2 X 16 kB 128 kB 1997 Pentium II 7000 0.25 233-450 3 32-bit 2 X 16 kB 256 kB/512 kB 1998 M obilePentium II 7000 0.25 300 3 32-bit 2 X 16 kB 256 kB/512 kB 1998 Pentium II Xeon 7000 0.25 400-450 3 32-bit 2 X 16 kB 512 kB/1 M B 1999 Pentium II Xeon 7000 0.25 450 3 32-bit 2 X 16 kB 512 kB/2 M B 1999 Pentium III 8200 0.25 450-1000 3 32-bit 2 X 16 kB 512 kB 1999 Pentium III Xeon 8200 0.25 500-1000 3 32-bit 2 x16 kB 512 kB 2000 Pentium 4 42000 0.18 1500 3 32-bit 8kB / 12kµOps 256 kB P5 P6 Incluindo cache L2 NetBurst

Iso-8859-1 Familia Intel P5 e P6

Embed Size (px)

Citation preview

Page 1: Iso-8859-1 Familia Intel P5 e P6

Família Intel P5 e P6Year Type Transistors Technology Clock Issue Word L1 cache L2 cache

(x1000) (mm) (MHz) format

1993 Pentium 3100 0.8 66 2 32-bit 2 X 8 kB1994 Pentium 3200 0.6 75-100 2 32-bit 2 X 8 kB1995 Pentium 3200 0.6/0.35 120-133 2 32-bit 2 X 8 kB1996 Pentium 3300 0.35 150-166 2 32-bit 2 X 8 kB1997 Pentium MMX 4500 0.35 200-233 2 32-bit 2 X 16 kB1998 Mobile Pentium MMX 4500 0.25 200-233 2 32-bit 2 X 16 kB1995 PentiumPro 5500 0.35 150-200 3 32-bit 2 X 8 kB 256/512 kB1997 PentiumPro 5500 0.35 200 3 32-bit 2 X 8 kB 1 MB1998 Intel Celeron 7500 0.25 266-300 3 32-bit 2 X 16 kB --1998 Intel Celeron 19000 0.25 300-333 3 32-bit 2 X 16 kB 128 kB1997 Pentium II 7000 0.25 233-450 3 32-bit 2 X 16 kB 256 kB/512 kB1998 Mobile Pentium II 7000 0.25 300 3 32-bit 2 X 16 kB 256 kB/512 kB1998 Pentium II Xeon 7000 0.25 400-450 3 32-bit 2 X 16 kB 512 kB/1 MB1999 Pentium II Xeon 7000 0.25 450 3 32-bit 2 X 16 kB 512 kB/2 MB1999 Pentium III 8200 0.25 450-1000 3 32-bit 2 X 16 kB 512 kB1999 Pentium III Xeon 8200 0.25 500-1000 3 32-bit 2 x 16 kB 512 kB2000 Pentium 4 42000 0.18 1500 3 32-bit 8kB / 12kµOps 256 kB

P5

P6

Incluindo cache L2

NetBurst

Page 2: Iso-8859-1 Familia Intel P5 e P6

Arquitetura do Pentium

Bus Unit

Page Unit

8kbinstruction

cache

TLB

Branchtargetbuffer

P b I dr u n ee f s cf f t oe e r dt r u ec t.h

Control ROM

C o

n u t nr io tl

8kbdata

cache

TLB

Floatingpoint registers

256

Data bus - 64 bitsAdd. Bus 32 bits

Control bus

Add. Data

32Address bus - 32 bits

Data bus - 64 bits

Add.generateV pipe

Add.generateU pipe

Integerregisterfile

ALUV pipe

ALUU pipe

Shifter

Instruction pointer

Branch target address

32

Floatingpoint unit

Prefetchaddress

Page 3: Iso-8859-1 Familia Intel P5 e P6

Arquitetura do Pentium

• Dois pipelines de 5 estágios: U e V

– Estágios

• PF - prefetch

• D1 - instruction decode

• D2 - address generate

• EX - execute, cache, ALU access

• WB - writeback

Page 4: Iso-8859-1 Familia Intel P5 e P6

Arquitetura do Pentium

256 bits

P b I dr u n ee f s cf f t oe e r dt r u ec t.h

Prefet.Buffer

V64 bytes

Prefet.Buffer

U64 bytes

256 bits

Decod.D1V

Decod.D1U

Page 5: Iso-8859-1 Familia Intel P5 e P6

Decod.D2V

Decod.D2U

Arquitetura do Pentium

Decod.D1V

Decod.D1U

Ger.End.

V

Ger.End.

U

Para o BTB

Para o BTB

Page 6: Iso-8859-1 Familia Intel P5 e P6

Decod.D2V

Decod.D2U

Arquitetura do Pentium

Decod.D1V

Decod.D1U

Unidade de Microcódigo

ALUV

ALUU

REG

Page 7: Iso-8859-1 Familia Intel P5 e P6

Decod.D2V

Decod.D2U

Arquitetura do Pentium

Decod.D1V

Decod.D1U

Unidade de Microcódigo

Conrole

ADD DIV MUL

FPU

Reg. File

Dados

Page 8: Iso-8859-1 Familia Intel P5 e P6

Arquitetura do Pentium

• Execução Super-Escalar– Ambas as instruções devem

ser simples.

– Sem dependência de dados.

– As instruções não podem ter modos de endereçamento imediato e indireto.

– Instruções com prefixo só podem ser executadas no pipelin U.

Não requerem micro-código para serem executadas. Normalmente levam 1 ciclo de clock para serem executadas.

ADD AX,BX (não podem ser executadas

ADD AX,CX em paralelo)

MOV TABLE[SI],7

MOV ES:[DI],AL

Page 9: Iso-8859-1 Familia Intel P5 e P6

Arquitetura do Pentium

• Execução Super-EscalarCiclos 1 2 3 4 5

de clockI1 I2 I3 I4 I5 I6 I7 I8 I9 I10

I1 I2 I3 I4 I5 I6 I7 I8

I1 I2 I3 I4 I5 I6

I1 I2 I3 I4

I1 I2

PF

D1

D2

EX

WB

Page 10: Iso-8859-1 Familia Intel P5 e P6

Previsão Dinâmica de Desvio

8kbinstruction

cache

TLB

Branchtargetbuffer

P b I dr u n ee f s cf f t oe e r dt r u ec t.h

256

Instruction pointer

Branch target address

Prefetchaddress

H:11P:T

H:10P:T

H:00P:NT

H:01P:T

NT

T

NTT

NT

T

NT

T

Address Instruction Targ. Add. History Prediction

. . .

Page 11: Iso-8859-1 Familia Intel P5 e P6

Unidade de Ponto Flutuante• PF - pré-busca• D1 - decodificação de instrução• D2 - geração de endereço• EX - leitura de memória e

registradores. Conversão do formato de ponto flutuante em formato de memória. Escrita em memória.

• X1 - primeiro estágio de execução. Dados da memória são convertidos no formato ponto flutuante. Escreve o operando para os registradores de ponto flutuante.

• X2 - segundo estágio de execução.

• WF - arrendonda o resultado e escreve nos registradores de ponto flutuante.

• ER - sinalização de erro e atualização da palavra de status.

Page 12: Iso-8859-1 Familia Intel P5 e P6

Unidade de Ponto Flutuante

PF D1 D2 EX

X1X2WFER

Bypass

Fluxo deinstruçõese de dados

Pipeline U

Fluxo dedados

ST(0)ST(1)ST(2)ST(3)ST(4)ST(5)ST(6)ST(7)

Registradoresde

Ponto Flutuante

80 bits

Page 13: Iso-8859-1 Familia Intel P5 e P6

Registradores MMXRegistradores

de Ponto Flutuante

80 bits

64 bits

MM7

MM6

MM5

MM4

MM3

MM2

MM1

MM0

RegistradoresMMX

79 63 01111

•Acesso direto•Mudança automática ao se executar uma instrução MMX•Executar instrução EMMS para retorno ao acesso dosreg. de ponto flutuante.

ST(0)

ST(1)

ST(2)

ST(3)

ST(4)

ST(5)

ST(6)

ST(7)

Page 14: Iso-8859-1 Familia Intel P5 e P6

Barramento de Dados

Pentium

64 BitDev.

32 BitDev. 16 Bit

Dev. 8 BitDev.

A31:A3

BE7:BE0 A2,BE3:BE0

A2,A1BHE,BLE

A2,A1,A0

.Add.Trans

Page 15: Iso-8859-1 Familia Intel P5 e P6

Coerência de Cache em Sistemas Multiprocessadores

• Protocolo de coerência de Cache MESI– Modified - a linha corrente

foi modificada (diferente da informação na memória principal) e pertence a uma única cache.

– Exclusive - linha não modificada e exclusiva de uma única cache. Escrevendo-se nesta linha, esta passa para o estado Modified.

– Shared - linha corrente pertence a mais de uma cache. Ao escrever-se nesta linha, um writethrough é gerado e invalia-se as outras cópias em outras caches.

– Invalid - a linha corrente está vazia. Uma leitura desta linha gera um miss.

Page 16: Iso-8859-1 Familia Intel P5 e P6

Coerência de Cache em Sistemas

Multiprocessadores

Barramento

Icache

Icache

Icache

Icache

Dcache

Dcache

Dcache

Dcache

X=7

X=30X=10

P1

P2

p3

p4

Page 17: Iso-8859-1 Familia Intel P5 e P6

Pentium

II/III

Bus Interface Unit

Instruction Fetch Unit (com I-cache)

Res

erva

tion

Sta

tion

Un

it

Cache L2Bus externo

MemoryReorderBuffer

D-cacheUnit

InstructionDecodeUnit

MemoryInterfaceUnit

FunctionalUnits

MicrocodeInstruction Sequencer

ReorderBuffer &RetirementRegisterFile

Branch Target Buffer

RegisterAliasTable

Page 18: Iso-8859-1 Familia Intel P5 e P6

Pentium II/III

• A instruction fetch unit (IFU) lê a I-cache, baseado no IP, no BTB, e interrupção.

• Branch prediction: – BTB contêm 512 entradas com informações sobre a

“história” e endereços destino (previstos). – Penalidades devido a Branch misprediction: pelo

menos 11 cíclos, em média 15 cíclos

• A instruction decoder unit (IDU) é formada por três decodificadores.

Page 19: Iso-8859-1 Familia Intel P5 e P6

Pentium II/III

• As instruções IA-32 são “quebradas” em micro-operações (mops). Cada mops possui dois operandos fonte e um operando destino. As mops têm comprimento fixo.– A maioria das IA-32 são convertidas em uma única mops (por qualquer um

dos decodificadores).– Algumas instruções são transformadas (decodificadas) em até 4 mops (1,2,3

e 4) pelo general decoder.– Instruções mais complexas apontam para micro-códigos no microcode

instruction sequencer (MIS) que gerará o fluxo apropriado de mops.

• As mops são enviadas para register alias table (RAT), onde ocorre a renomeação de registradores. As referências aos registradores lógicos (IA-32) são convertidas em referências aos registradores físicos.

• As mops prosseguem para reorder buffer (ROB, 40 entradas) e para reservation

station unit (RSU, 20 entradas).

Page 20: Iso-8859-1 Familia Intel P5 e P6

Unidade de Busca e decodificação - Fetch/Decode

UnitI-cache

Instruction Fetch Unit

Next_IP

BranchTargetBuffer

MicrocodeInstructionSequencer

RegisterAliasTable

InstructionDecodeUnit Si

mpl

e D

ecod

er

IA-32instructions

Alignment

Sim

ple

Dec

oder

Gen

eral

Dec

oder

op1 op2 op3

in-order section instruction decoder unit (IDU)

Page 21: Iso-8859-1 Familia Intel P5 e P6

Seção de Execução for a de ordem

• O envio das mops ao ROB é feito na ordem do programa.

• As mops são enviadas para RSU que possui 20 reservation stations (RS), cada uma capaz de executar uma mop.

• As mops são enviadas às unidades funcionais de acordo com a dependência de dados e de recursos, sem observar a ordem do programa.

• A RSU tem cinco portas e pode enviar até cinco mops por cíclo.

Page 22: Iso-8859-1 Familia Intel P5 e P6

Latência e throughtput no Pentium II/III FUs

RSU Port FU Latency Throughput Integer arithmetic/logical 1 1 Shift 1 1 Integer mul 4 1 Floating-point add 3 1 Floating-point mul 5 0.5 Floating-point div long nonpipelined MMX arithmetic/logical 1 1 MMX mul 3 1 Integer arithmetic/logical 1 1 MMX arithmetic/logical 1 1 MMX shift 1 1

2 Load 3 13 Store address 3 14 Store data 1 1

0

1

Page 23: Iso-8859-1 Familia Intel P5 e P6

Issue/Execute

Unitto/fromReorderBuffer

Port 0

Port 1

Port 2

Port 3

Port 4

Res

erva

tion

Sta

tion

Uni

t

MMXFunctional Unit

Floating-pointFunctional Unit

IntegerFunctional Unit

MMXFunctional Unit

JumpFunctional Unit

IntegerFunctional Unit

LoadFunctional Unit

StoreFunctional Unit

StoreFunctional Unit