Você está na página 1de 23

Year 1993 1994 1995 1996 1997 1998 1995 1997 1998 1998 1997 1998 1998 1999

1999 1999 2000

Type

Famlia Intel P5 e P6
Transistors (x1000) 3100 3200 3200 3300 4500 4500 5500 5500 7500 19000 7000 7000 7000 7000 8200 8200 42000 Technology (m m) 0.8 0.6 0.6/0.35 0.35 0.35 0.25 0.35 0.35 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.18 Clock (MHz) 66 75-100 120-133 150-166 200-233 200-233 150-200 200 266-300 300-333 233-450 300 400-450 450 450-1000 500-1000 1500 Issue 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3

P5

P6

NetBurst

Pentium Pentium Pentium Pentium Pentium MMX Mobile Pentium MMX PentiumPro PentiumPro Intel Celeron Intel Celeron Pentium II Mobile Pentium II Pentium II Xeon Pentium II Xeon Pentium III Pentium III Xeon Pentium 4

Word L1 cache format 32-bit 2 X 8 kB 32-bit 2 X 8 kB 32-bit 2 X 8 kB 32-bit 2 X 8 kB 32-bit 2 X 16 kB 32-bit 2 X 16 kB 32-bit 2 X 8 kB 32-bit 2 X 8 kB 32-bit 2 X 16 kB 32-bit 2 X 16 kB 32-bit 2 X 16 kB 32-bit 2 X 16 kB 32-bit 2 X 16 kB 32-bit 2 X 16 kB 32-bit 2 X 16 kB 32-bit 2 x 16 kB 32-bit 8kB / 12kOps

L2 cache

256/512 kB 1 MB -128 kB 256 kB/512 kB 256 kB/512 kB 512 kB/1 MB 512 kB/2 MB 512 kB 512 kB 256 kB

Incluindo cache L2

Arquitetura do Pentium
Branch target buffer
Prefetch address
P b r u e f f f e e t r c h I d n e s c t o r d u e t.

Instruction pointer Branch target address

Floating point unit 32 Control ROM C o n t r o l


Add. generate V pipe Add. generate U pipe

Floating point registers

8kb instruction 256 cache TLB

u n i t

ALU V pipe
Integer register file

8kb data cache


Shifter

ALU U pipe

TLB

Page Unit

32 Address bus - 32 bits Add. Bus Unit Add. Bus 32 bits Data Data bus - 64 bits

Control bus

Data bus - 64 bits

Arquitetura do Pentium
Dois pipelines de 5 estgios: U e V
Estgios
PF - prefetch D1 - instruction decode D2 - address generate EX - execute, cache, ALU access WB - writeback

Arquitetura do Pentium
Prefet. Buffer V
64 bytes 256 bits

P b r u e f f f 256 bits e e t r c h

I d n e s c t o r d u e t.

Decod. D1 V

Prefet. Buffer U
64 bytes

Decod. D1 U

Arquitetura do Pentium
Para o BTB
Decod. D1 V Decod. D2 V Ger. End. V Ger. End. U

Decod. D1 U

Decod. D2 U
Para o BTB

Arquitetura do Pentium

Decod. D1 V

Decod. D2 V

ALU V

REG

ALU U

Decod. D1 U

Decod. D2 U

Unidade de Microcdigo

Arquitetura do Pentium
FPU Conrole Decod. D1 V Decod. D2 V Reg. File ADD DIV MUL

Dados

Decod. D1 U

Decod. D2 U

Unidade de Microcdigo

Arquitetura do Pentium
Execuo Super-Escalar Ambas as instrues devem
ser simples. Sem dependncia de dados.
No requerem micro-cdigo para serem executadas. Normalmente levam 1 ciclo de clock para serem executadas. ADD AX,BX (no podem ser executadas ADD AX,CX em paralelo)

As instrues no podem ter


modos de endereamento imediato e indireto. Instrues com prefixo s podem ser executadas no pipelin U.

MOV TABLE[SI],7

MOV ES:[DI],AL

Arquitetura do Pentium
Execuo Super-Escalar
Ciclos de clock
PF

1
I1 I2

2
I3 I4

3
I5 I6

4
I7 I8

5
I9 I10

D1

I1

I2

I3

I4

I5

I6

I7

I8

D2

I1

I2

I3

I4

I5

I6

I1 EX

I2

I3

I4

WB

I1

I2

Previso Dinmica de Desvio


T H:11 P:T Branch target buffer
Prefetch address
P b r u e f f f e e t r c h I d n e s c t o r d u e t.

NT H:10 P:T T T H:00 P:NT H:01 P:T NT History Prediction NT

Instruction pointer Branch target address

NT

8kb instruction 256 cache TLB

Address Instruction Targ. Add.

. . .

Unidade de Ponto Flutuante


PF - pr-busca X2 - segundo estgio D1 - decodificao de instruo de execuo. D2 - gerao de endereo WF - arrendonda o EX - leitura de memria e resultado e escreve nos registradores. Converso do formato de ponto flutuante em registradores de ponto formato de memria. Escrita em flutuante. memria. ER - sinalizao de X1 - primeiro estgio de execuo. Dados da memria erro e atualizao da so convertidos no formato palavra de status. ponto flutuante. Escreve o operando para os registradores de ponto flutuante.

Unidade de Ponto Flutuante


Pipeline U
Fluxo de instrues e de dados PF D1 D2 EX

Bypass

Fluxo de dados

ER

WF

X2

X1

Registradores de Ponto Flutuante

80 bits

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

Registradores MMX
Acesso direto Mudana automtica ao se executar uma instruo MMX Executar instruo EMMS para retorno ao acesso dos reg. de ponto flutuante.
Registradores MMX
79 1 1 1 1
MM7 MM6 MM5 MM464 bits MM3 MM2 MM1 MM0

63

0
ST(0) ST(1) ST(2)

Registradores de Ponto Flutuante

80 bits

ST(3)

ST(4)
ST(5) ST(6) ST(7)

Barramento de Dados
A31:A3
Add. . Trans BE7:BE0 A2,BE3: BE0 A2,A1 BHE,BLE A2,A1,A0

Pentium

64 Bit Dev.
32 Bit Dev. 16 Bit Dev.
8 BitDev.

Coerncia de Cache em Sistemas Multiprocessadores


Protocolo de coerncia de Cache MESI Modified - a linha corrente foi modificada (diferente da informao na memria principal) e pertence a uma nica cache. Exclusive - linha no 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 cpias em outras caches.

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

Sistemas Multiprocessadores
P1 I cache p3 X=7

D cache

I cache

D cache

Barramento

P2

p4 I cache D cache X=10 I cache D cache X=30

Bus externo

Cache L2

Pentiu m II/III

Bus Interface Unit

Memory Reorder Buffer D-cache Unit Memory Interface Unit Reservation Station Unit

Instruction Fetch Unit (com I-cache)

Branch Target Buffer

Functional Units

Instruction Decode Unit

Microcode Instruction Sequencer

Register Alias Table

Reorder Buffer & Retirement Register File

Pentium II/III
A instruction fetch unit (IFU) l a I-cache, baseado no IP, no BTB, e interrupo.
Branch prediction:
BTB contm 512 entradas com informaes sobre a histria e endereos destino (previstos). Penalidades devido a Branch misprediction: pelo menos 11 cclos, em mdia 15 cclos

A instruction decoder unit (IDU) formada por trs decodificadores.

Pentium II/III
As instrues IA-32 so quebradas em micro-operaes (mops). Cada mops possui dois operandos fonte e um operando destino. As mops tm comprimento fixo. A maioria das IA-32 so convertidas em uma nica mops (por qualquer um dos decodificadores). Algumas instrues so transformadas (decodificadas) em at 4 mops (1,2,3 e 4) pelo general decoder. Instrues mais complexas apontam para micro-cdigos no microcode instruction sequencer (MIS) que gerar o fluxo apropriado de mops. As mops so enviadas para register alias table (RAT), onde ocorre a renomeao de registradores. As referncias aos registradores lgicos (IA-32) so convertidas em referncias aos registradores fsicos. As mops prosseguem para reorder buffer (ROB, 40 entradas) e para reservation station unit (RSU, 20 entradas).

Unidade de Busca e decodificao - Fetch/Decode Unit


Instruction Fetch Unit IA-32 instructions I-cache Next_IP

Alignment

General Decoder

Simple Decoder

Instruction Decode Unit

Microcode Instruction Sequencer Register Alias Table

op1

op2

in-order section

instruction decoder unit (IDU)

Simple Decoder op3

Branch Target Buffer

Seo de Execuo for a de ordem


O envio das mops ao ROB feito na ordem do programa. As mops so enviadas para RSU que possui 20 reservation stations (RS), cada uma capaz de executar uma mop.
As mops so enviadas s unidades funcionais de acordo com a dependncia de dados e de recursos, sem observar a ordem

Latncia e throughtput no Pentium II/III FUs


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

Issue/Execut e Unit
to/from Reorder Buffer Reservation Station Unit

MMX Functional Unit Floating-point Functional Unit


Port 0 Integer Functional Unit MMX Functional Unit Jump Functional Unit Port 1 Integer Functional Unit

Port 2

Load Functional Unit

Port 3

Store Functional Unit

Port 4

Store Functional Unit