Post on 23-Oct-2014
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
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
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
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
Decod.D2V
Decod.D2U
Arquitetura do Pentium
Decod.D1V
Decod.D1U
Ger.End.
V
Ger.End.
U
Para o BTB
Para o BTB
Decod.D2V
Decod.D2U
Arquitetura do Pentium
Decod.D1V
Decod.D1U
Unidade de Microcódigo
ALUV
ALUU
REG
Decod.D2V
Decod.D2U
Arquitetura do Pentium
Decod.D1V
Decod.D1U
Unidade de Microcódigo
Conrole
ADD DIV MUL
FPU
Reg. File
Dados
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
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
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
. . .
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.
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
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)
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
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.
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
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
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.
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).
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)
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.
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
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