Arquitetura de Computador

Transcrição

Arquitetura de Computador
Arquitetura de
computadores
INF01112 - 2004
Raul e Taisy Weber
Arquitetura de
Microcomputadores
–
–
–
–
Microprocessadores
Placa-mãe
Memória
Sistema de Entrada/Saída
•
•
•
•
•
•
Vídeo
Disco, Disquete, CD
Teclado
Placa de Som
Portas seriais e paralelas
Portas USB
Computadores de pequeno porte
• Classificação:
•
•
•
•
•
•
Computadores Domésticos
todos baseados em
Computadores Pessoais
microprocessadores
Workstation
Servidores
Portáteis
PDA (Personal Digital Assistant)
• Nenhuma caracterização de
velocidade,memória, disco, etc
• CISC x RISC
Microprocessadores
– Operação básica: Busca de Instrução
Execução de Instrução
– Características:
•
•
•
•
•
•
•
•
Registradores e barramentos
Freqüência de operação
Unidade de ponto flutuante
Memória cache
Memória virtual
Superescalar, Pipeline
Execução fora de seqüência
Execução especulativa
Família Intel
do 8086 ao DX4
Chip
8088(6)
ALU
16
reg
16
dado End. Cache
8
20 (16)
16
20 16
24 -
80186
80286
16
16
16
16
386SX
80386
486SX
80486
486DX2
32
32
32
32
32
32
32
32
32
32
16
32
32
32
32
32
32
32
32
32
DX4
32
32
32
32 8K instr.
8K dado
8K
8K
8K
Características
micro de 16 bits
8086 & circuitos de apoio
memória virtual segmentada
e modo protegido
80386 simplificado
MMU, 32 bits e modo virtual
80486 sem FPU
80386 com FPU
486 com frequência interna de
clock dupla
486 com frequência interna de
clock tripla
Família Intel
Chip
Pentium
Pentium Pro
Pentium MMX
Pentium II
Pentium II
Celeron
Pentium II
Celeron A
Pentium II
Xeon
ALU reg dado End. Cache
32 32
64
32 8K instr.
8K dado
32 32
64
36 8K instr.
8K dado
256Knível2
32 32
64
32 16K instr.
16K dado
32 32
64
36 16K instr.
16K dado
512Knível2
32 32
64
36 16K instr.
16K dado
0K nível 2
32 32
64
36 16K instr.
16K dado
128Knível2
32 32
64
36 16K instr.
16K dado
cache nív.2
Características
2 pipelines inteiros, FPU de 64 bits,
lógica de previsão de desvios
Pentium, mais renomeação de
registradores e execução fora de
sequência
Pentium, com instruções extras para
paralelismo (SIMD)
Pentium Pro com MMX
Pentium II sem cache de nível 2
Pentium II com cache na mesma
frequência da CPU
Pentium II com 512K/1M/2M de
cache na mesma frequência da CPU
do Pentium ao Pentium II
Família Intel
do Pentium III ao Pentium 4
Chip
ALU reg
Pentium III 32
32
Pentium 4
32
32
dado end. Cache
64
36 16K instr.
16K dado
cache nív.2
64
36 12K instr.
8K dado
cache nív.2
Pentium e Pentium MMX - P5
Pentium Pro a Pentium 4 - P6
Características
Pentium II com instruções
extras para paralelismo de
ponto flutuante
Pentium III com instruções
extras para paralelismo
Características tecnológicas
Processador
8088(6)
80286
80386
486SX
486DX
486DX2
DX4
Pentium 60/66
Pentium 75/200
Pentium Pro
Pentium MMX
Pentium II
Celeron
Celeron A
Xeon
Pentium III
Pentium 4
Cache
8K
8K
8K
16K
2x8K
2x8K
2x8K
2x16K
2x16K
2x16K
2x16K
2x16K
2x16K
8K
tipo
WT
WT
WT
WT
WB
WB
WB
WB
WB
WB
WB
WB
WB
WB
nível 2
256K
512K
0K
128K
512K-2M
512K
256K
frequência
1
1/2
1
1
1/2
1
mult.
1x
1x
1x
1x
1x
2x
2-3x
1x
1,5-3x
2-3x
1,5-3x
3,5-5x
3,5-5x
3,5-5x
3,5-5x
3,5-5x
3,0-4x
Tensão
5V
5V
5V
5V
5V
5V
3,3 V
5V
3,3 V
3,3 V
1,8-2,8 V
1,8-2,8 V
1,8-2,8 V
1,8-2,8 V
1,8-2,8 V
1,8-2,8 V
1,3-1,7 V
Transistor
29.000
134.000
275.000
1.185.000
1.200.000
1.100.000
1.600.000
3.100.000
3.300.000
5.500.000
4.100.000
7.500.000
7.500.000
7.500.000
7.500.000
9.500.000
42.000.000
Computadores Pessoais tipo PC
Tipos
microprocessador
FPU
barramento de
dados
barramento de
endereços
PC XT PC AT PC AT PC AT
386
486
8088 80286 80386 80486
8087
80287 80387
Pentium
P5
Pentium,
MMX
interna interna
Pentium
P6
Pentium
Pro,II,III, 4
Interna
8 bits
16 bits 32 bits
32 bits
64 bits
64 bits
20 bits 24 bits 30 bits
30 bits
30 bits
33 bits
computadores pessoais do tipo PC ou IBM-PC:
• atualmente chamados computadores de mesa
• também com microprocessadores de outras famílias
• existem computadores pessoais não compatíveis com IBM-PC
Configurações básicas
• versão PC 99 disponível em
– http://developer.intel.com/design/desguide ou
– http://www.microsoft.com/hwdev/pc99.htm.
• Usos distintos
–
–
–
–
–
servidores
portáteis
domésticos
estações de trabalho
etc
servidores e estações não podem
ser chamados pessoais
Configuração básica - PC99
–
–
–
–
–
–
–
–
Pentium II 300 MHz
32 a 64 MBytes de memória
barramento PCI (sem conectores ISA)
duas portas USB
resolução de vídeo de 800 x 600 com 64K cores
suporte a CD ou DVD
modem de 56 Kbps ou placa de rede
opcionais:
• placas de som, placas aceleradoras 3D, suporte a
infravermelho (IrDA) e IEEE 1394 (barramento serial
rápido)
Configuração básica - versão
atual
– disponível em http://www.pcdesguide.org
– principais alterações sobre a versão 99
• freqüência do processador: 667 MHz para modelos de
mesa (desktop) e 400 MHz para portáteis (laptop)
• memória de 64 MBytes, sendo recomendado 128
MBytes para o Windows 2000
• proibição de conectores ISA
• portas USB em substituição às portas seriais e paralela
• resolução mínima de vídeo de 1024 × 768, com 32 bits
por pixel (bpp)
• modelos de mesa (desktop) devem possuir aceleração
gráfica 3D em hardware
Microprocessador Intel 8086
– arquitetura de 16 bits
8086 - primeiro microprocessador
de 16 bits da Intel
• comunicação com a memória em 16 (8086) bits
• capacidade máxima de memória de 1 MByte
• 14 registradores (4 dado, 4 endereço, 4 segmento,
ponteiro do programa, flags)
• endereço físico = segmento * 16 + deslocamento
• 85 instruções básicas
• coprocessador: 8087 (67 instruções básicas)
• sem cache, sem memória virtual
– 8088 - mesma arquitetura, barramento externo de
8 bits
Microprocessador Intel 8086/8088
15
AX
BX
CX
DX
SP
BP
SI
DI
IP
FLAGS
CS
DS
SS
ES
8
AH
BH
CH
DH
7
0
AL
BL
CL
DL
acumulador
base
contador
dado
ponteiro para pilha
ponteiro base
índice fonte
índice destino
apontador de instruções
flags
segmento de código
segmento de dados
segmento de pilha
segmento extra
8086 - Formação de endereço
15
0
Offset (deslocamento)
CS
DS
SS
ES
15
0
0000
0000
0000
0000
19
0
Endereço Físico
Microprocessador Intel 80186
• Idêntico ao 8086
–
–
–
–
–
Comunicação com a memória em 16 bits
Capacidade máxima de memória de 1 MByte
14 registradores
Endereço físico = segmento * 16 + deslocamento
Sete instruções extras (85 + 7 = 92 instruções
básicas)
– Coprocessador: 80187 (idêntico ao 8087)
– Sem cache, sem memória virtual
Microprocessador Intel 80286
–
–
–
–
–
–
–
–
–
Modos real (8086) e protegido
Comunicação com a memória em 16 bits
Capacidade máxima de memória de 16 MByte
14 registradores (os do 8086)
Endereço físico ou virtual
15 instruções extras (92 + 15 = 107 instr. básicas)
Co-processador: 80287
Sem cache
Memória virtual segmentada (apenas no modo
protegido)
Microprocessador Intel 80386
– Modos real (8086), protegido e virtual86
– Comunicação com a memória
• 16 (SX) ou 32 bits (DX)
• Capacidade máxima de memória de 4 GByte
– 14 registradores
• do 8086, com 32 bits, e mais 2 regs. de segmento
– 44 instruções extras
• 107 + 44 = 153 instruções básicas
– Endereço físico ou virtual
• Memória virtual segmentada (sempre) e paginada
(opcional), ambas apenas no modo protegido
Conceito de memória virtual
grande espaço de endereçamento
memória virtual
endereço gerado
pelas instruções
sendo executadas
endereço
virtual
processador
mapeador
mapeamento
por hardware
endereço
físico
pequeno
espaço de
endereçamento
memória física
Questões de memória virtual
• quando mover um bloco da memória secundária para
a memória primária (real) ?
– por demanda
• quando mover um bloco da memória real para a
memória secundária?
– quando faltar espaço na memória real
• qual o tamanho ideal de um bloco?
– constante (paginação) ou variável (segmentação)
• onde colocar um novo bloco transferido para a
memória principal?
– onde houver área livre (paginação) ou no “melhor” lugar
(segmentação)
Memória virtual
• programa gera endereço virtual
– CPU transforma endereço virtual em endereço físico
(hardware)
• bloco está na memória principal?
– Sim: calcular o endereço físico (hardware)
– Não: buscar o bloco da memória secundária (software)
• existe espaço para o bloco na memória principal?
– Sim: carregar o bloco e atualizar descritor (software)
– Não: retirar um outro bloco, carregar o bloco e atualizar
descritores (software)
Memória virtual segmentada
família Intel
Registrador de segmento
15
4 3 0
Deslocamento
31
Seletor de tabela
(Global ou Local)
Descritor
de segmento
(8 bytes)
Tabela de descritores
GDTR ou LDTR
Endereço base
(32 bits)
0
(32 bits)
+
endereço lógico
ou virtual
endereço linear
ainda não é o físico
0
31
Endereço linear
Memória virtual segmentada
• programa gera endereço virtual
– CPU transforma endereço virtual em endereço físico
• segmento está na memória principal?
– Sim: calcular o endereço físico. Se este endereço estiver
fora do segmento, gerar erro
– Não: buscar o segmento da memória secundária
• existe espaço suficiente para o o segmento na
memória principal?
– Sim: carregar o segmento na “melhor posição” e atualizar
descritor
– Não: retirar um (ou mais) segmentos, carregar novo
segmento e atualizar descritores
Memória virtual paginada
Endereço linear
31
22 21
12 11
0
Diretório
Página
Deslocamento
Diretório de Páginas
(PD)
PDE
(32bits)
família Intel
Tabela de Páginas
(PT)
PTE
(32 bits)
CR3
31
12 11
0
Endereço de page frame
Deslocamento
Endereço físico
Memória virtual paginada
• programa gera endereço virtual
– CPU transforma endereço virtual em endereço físico
• página está na memória principal?
– Sim: calcular o endereço físico. Este endereço sempre está
dentro da página.
– Não: buscar a página da memória secundária
• existe espaço suficiente para a página na memória
principal?
– Sim: carregar a página em qualquer lugar e atualizar
descritor
– Não: retirar uma página (é suficiente), carregar nova página
e atualizar descritores
Intel 80386
• outras características
– Co-processador: 80387 (67 + 7 -1 = 73 instr. básicas)
– Sem cache
– TLB:
• pequena memória associativa que retém os últimos e mais
freqüentes endereços de página acessado
• uma pequena cache de endereços físicos
• apareceram vários microprocessadores compatíveis no
mercado
Microprocessador Intel 80486
• Idêntico ao 386
–
–
–
–
–
–
Modos real (8086), protegido e virtual86
Comunicação com a memória em 32 bits
Capacidade máxima de memória de 4 GByte
16 registradores (os do 80386, também em 32 bits)
6 instruções extras (151 + 6 = 157 instruções básicas)
Endereço físico ou virtual
• Memória virtual segmentada
• e paginada (opcional)
– Co-processador: 80487 para 80486SX
integrado no 80486DX
– Com cache de 8 KByte
FPU
Microprocessador Intel 80486
BSWAP
CMPXCHG
INVD
INVLPG
WBINVD
XADD
Byte Swap
Compare and Exchange
Invalidate Cache
Invalidate TLB (Translation Look Aside Buffer)
Write-Back and Invalidate Cache
Exchange and Add
Cache
• objetivo: aumentar velocidade de acesso aos
dados e instruções
maior custo
menor tamanho
maior velocidade
micro
cache
endereço físico
memória principal
menor custo
maior tamanho
menor velocidade
Cache
o endereço físico gerado no
microprocessador é interceptado pelo
controlador de cache para verificar se seu
conteúdo já está presente na memória cache
conteúdo presente,
devolve conteúdo ao uP
MP - memória principal
operação
de leitura
cache
micro
endereço físico
MP só acessada se
conteúdo não se
encontra na cache
menor custo
maior tamanho
menor velocidade
Cache
controle com memória associativa e memória
de alta velocidade
a memória associativa armazena os parte dos
endereços e ajuda a identificar os blocos
presentes
a memória de alta velocidade da cache
armazena o conteúdo correspondente aos
endereços
cache
micro
endereço físico
toda a cache pode aparecer
integrada junto ao micro ou
apenas o controlador
no mapeamento direto
não existe necessidade
de mem. associativa
MP - memória principal
Cache: vários níveis
maior custo
menor tamanho
maior velocidade
micro
memória principal
cache L2
cache L1
menor custo
maior tamanho
menor velocidade
endereço físico
médio
Mapeamento
direto
memória
k blocos
bloco 0
bloco 1
cache
tag
bloco 0
m=2b
bloco m-1
bloco m
bloco m+1
tag
bloco 1
bloco 2m-1
bloco 2m
m blocos
identifica
posição do
bloco na cache
tag
bloco m-1
bloco k-2
bloco k-1
tag: identifica
que bloco
efetivamente está
na cache
tamanho do bloco (2w)
endereço de memória
t bits
b bits
w bits
tag
bloco
palavra
deslocamento dentro do bloco
Mapeamento
associativo
memória
k blocos
bloco 0
cache
o campo de
tag pode
identificar
qualquer
bloco
tag
blocos
bloco 0
bloco i
tag
um bloco
qualquer
pode
ocupar
qualquer
posição
bloco 1
m blocos
uma mem.
associativa
contendo as
tags auxilia
localizar
onde está
um bloco
tag
bloco m-1
bloco k-1
endereço de memória
t bits
w bits
tag
palavra
m-caminhos
Grupo
Associativo
memória
bloco 0
bloco 1
cache
conjuntos
tag
0
tag
tag
1
blocos
bloco m/2-1
bloco m/2
bloco m/2+1
bloco 0
bloco 1
bloco 2
tag
bloco m-1
bloco m
bloco 3
p
conjuntos
tag
p-1
dentro do grupo
(conjunto) o bloco
pode ocupar
qualquer posição
bloco m-2
tag
bloco m-1
bloco k-1
endereço de memória
t bits
s bits
w bits
tag
conjunto
palavra
p associativa
Gerenciamento de cache
• totalmente em hardware
• estratégia de substituição de blocos: LRU
– bloco presente na cache
• write-through
• write-back
operações de escrita
– bloco ausente
• leitura: load-trough ou transfere primeiro para cache e
depois permite leitura
• escrita: geralmente atualiza direto na memória principal
as 2 caches do DX4 são idênticas as do Pentium e não
representam dois níveis de cache, ambas são de nível 1
Microprocessador Intel Pentium
• Reestruturação do 486
– Modos real (8086), protegido e virtual86
– 16 registradores (os do 80386, também em 32 bits)
– Memória virtual segmentada e paginada
•
•
•
•
•
Comunicação com a memória em 64 bits
Capacidade máxima de memória de 4 GByte
5 instruções extras (157 + 5 = 162 instr. básicas)
FPU: coprocessador aritmético integrado
Cache de 16 KByte (2 x 8 KByte)
Intel Pentium
CMPXCHG8
CPUID
RDMSR
RSM
WRMSR
Compare and Exchange 8 Bytes
CPU Identification
Read Model Specific Register
Resume from System Management Mode
Write Model Specific Register
CPUID - identifica o tipo de microprocessador
ótimo para configurar software
Intel Pentium
• 2 pipelines para inteiros, operando em paralelo
• cada pipeline inteiro consta de 5 estágios:
–
–
–
–
–
busca de instrução (a partir da cache de instruções),
decodificação de instrução,
geração de endereço,
execução,
escrita (write back).
• FPU também em pipeline (mas não em paralelo)
• operação super-escalar: mais de uma instrução
pronta em um ciclo de relógio
Cache Instr.
BTB
Buffer de
instruções
barramentos de 64 bits
externos e internos
FPU
reg.
stack
V-pipe
ALU ALU
BIU
U-pipe
+
÷
FPU-pipe
com circuitos
dedicados
para soma,
divisão e
multiplicação
bus interface
unit
caches separadas
dados e instr.
8 KB cada
Registradores
Cache Dados
2 pipelines paralelos
de 5 estágios
para inteiros
Uso dos pipelines U e V
ADD
AND
CALL (immediate)
CMP
DEC
INC
Jcc
JMP (immediate only)
LEA
MOV (general register and memory only)
NOP
OR
POP (register only)
PUSH (register only)
RCL, RCR (one bit and immediate only)
ROL, ROR (one bit and immediate only)
SAR,SHL,SHR (one bit and immediate only)
SUB
TEST (reg-reg, mem-reg and immediate-EAX only)
XOR
U+V
U+V
V
U+V
U+V
U+V
V
V
U+V
U+V
U+V
U+V
U+V
U+V
U
U
U
U+V
U+V
U+V
Intel Pentium Pro (P6)
• Re-estruturação do Pentium (P5)
– Mesmas características de 80386 (mem. virtual) e do
Pentium (largura de dados de 64 bits)
– FPU
– cache de 16 KByte (2 x 8 KByte)
•
•
•
•
•
5 instruções extras (162 + 5 = 167 instr. básicas)
Operação super-escalar
Cinco unidades internas
Execução fora de sequência
Execução especulativa
Microprocessador Intel Pentium
Pro (P6)
CMOVcc
FCMOV cc
FCOMI, FCOMIP,
FUCOMPI, FUCOMIP
RDPMC
UD2
Conditional Move
(Dependent on condition cc)
Floating-point Conditional Move (on cc)
Floating Point Compare
Read Performance Monitoring Counters
Undefined Instruction
Interface com Barramento (BIU)
Unidade de Busca
De Instruções
Cache Instr.
(8 KB)
Buffer de
Desvios (BTB)
(512 entradas)
Decodificador de Instruções
Simples
Simples
Complexo
Memória
Cache
Dados (8 KB)
Sequenciador
de microinstr.
Geração de
endereços
Geração de
endereços
ULA inteira
ULA inteira
FPU
Renomeação de Registradores (RAT)
Reordenação (ROB)
40 Registradores
Reg. Lógicos (RRF)
14 Registradores
Barramento de Resultados (86 bits)
Cache L2
Endereço (36 bits)
Ordenador de memória
Estação de Distribuição
Para Memória
Microprocessador Intel Pentium
MMX
• Arquitetura do Pentium (P5)
–
–
–
–
–
Novo tipo de dado: “packed”
57 instruções extras (além das 167 instr. básicas)
Com cache de 32 KByte (2 x 16 KByte)
Operação super-escalar
Não possui as características do Pentium Pro
(execução fora de sequência, exec.especulativa)
– Instruções para processamento de vetores (8
bytes, 4 palavras ou 2 palavras duplas)
– 8 novos registradores lógicos (MMX0 a MMX7)
Intel Pentium MMX
– 57 Instruções para processamento de vetores (8
bytes, 4 palavras ou 2 palavras duplas)
– 8 novos registradores lógicos (MMX0 a MMX7)
– aritmética de saturação
Tipo de dado
Com sinal
Byte
Limite Inferior
Limite Superior
-128
127
Palavra
Sem sinal
Byte
Palavra
-32.768
32.767
0
0
255
65.535
EMMS
MOVD
MOVQ
PACKSSDW
PACKSSWB
PACKUSWB
PADD (B,W,D)
PADDS (B,W)
PADDUS (B,W)
PAND
PANDN
PCMPEQ (B,W,Q)
PCMPGT (B,W,Q)
PMADD (W,D)
PMULHW
PMULLW
POR
PSSL (W,D,Q)
PSRA (W,D)
PSRL (W,D,Q)
PSUB (B,W,D)
PSUBS (B,W)
PSUBUS (B,W)
PUNPCKH (BW,WD,DQ)
PUNPCKL (BW,WD,DQ)
PXOR
Empty MMX State
Move Doubleword (32 bits) to/from mmx register
Move Quadword (64 bits) to/from mmx register
Pack Doubleword to Word data (signed with saturation)
Pack Word to Byte data (signed with saturation)
Pack Word to Byte data (unsigned with saturation)
Add with wrap-around (Byte, Word, Double)
Add signed with saturation (Byte, Word)
Add unsigned with saturation (Byte, Word)
Bitwise And (64 bits)
Bitwise And Not (64 bits)
Packed compare for equality (Byte, Word, Quad)
Packed compare greater (signed) (Byte, Word, Quad)
Packed multiply add (Word, Double)
Packed multiplication high (Word)
Packed multiplication low (Word)
Bitwise Or (64 bits)
Packed Shift Left Logical (Word, Double, Quad)
Packed Shift Right Arithmetic (Word, Double)
Packed Shift Right Logical (Word, Double, Quad)
Subtract with wrap-around (Byte, Word, Double)
Subtract signed with saturation (Byte, Word)
Subtract unsigned with saturation (Byte, Word)
Unpack high data to next larger type
Unpack low data to next larger type
Bitwise Xor (64 bits)
Intel Pentium II (P6)
• Pentium Pro com MMX
–
–
–
–
–
Mesmas características do Pentium Pro
Instruções MMX
Cinco unidades internas
Pentium
Execução fora de sequência
Execução especulativa
MMX
PentiumII
Pro
Intel Pentium III
– Novo tipo de dado: “floating packed”
– 70 instr. extras (além das 167 básicas e 57 MMX)
– Instruções para processamento de vetores
inteiros (MMX) ou de ponto flutuante (SSE)
– 8 novos registradores físicos (XMM0 a XMM7), de
128 bits, para as instruções SSE
127
96 95
64 63
32 31
0
Single FP
Single FP
Single FP
Single FP
Packed Single FP
127
96 95
64 63
32 31
0
Não alterado Não alterado Não alterado
Single FP
Scalar Single FP
Instruções SSE para números
inteiros
PAVG (B,W)
PEXTRW
PINSRW
PMAXSW
PMAXUB
PMINSW
PMINUB
PMOVMSKB
PMULHUW
PSADBW
PSHUFW
Packed Average
Extract Word
Insert Word
Packed Signed Integer Word Maximum
Packed Unsigned Integer Byte Maximum
Packed Signed Integer Word Minimum
Packed Unsigned Integer Byte Minimum
Move Byte Mask to Integer
Packed Multiply High Unsigned
Packed Sum of Absolute Differences
Packed Shuffle Word
ADDPS
ADDSS
ANDNPS
ANDPS
CMPPS
CMPSS
COMISS
CVTPI2PS
CVTPS2PI
CVTSI2SS
CVTSS2SI
CVTTPS2PI
CVTTSS2SI
DIVPS
DIVSS
FXRSTOR
FXSAVE
LDMXCSR
MAXPS
MAXSS
MINPS
MINSS
MOVAPS
MOVHLPS
MOVHPS
MOVLHPS
MOVLPS
MOVMSKPS
MOVSS
MOVUPS
Packed Single FP Add (4 x 32 bits)
Scalar Single FP Add (least 32 bits)
Bitwise Logical And Not for Single FP
Bitwise Logical And for Single FP
Packed Single FP Compare (4 x 32 bits)
Scalar Single FP Compare (least 32 bits)
Scalar Ordered Single FP Compare and set EFLAGS
Packed signed INT32 to Packed Single FP conversion
Packed Single FP to Packed INT32 conversion
Scalar signed INT32 to Single FP conversion
Scalar Single FP to Signed INT32 conversion
Packed Single FP to Packed INT32 conversion (truncate)
Scalar Single FP to Signed INT32 conversion (truncate)
Packed Single FP Divide (4 x 32 bits)
Scalar Single FP Divide (least 32 bits)
Restore FP/MMX and SSE state (512 bytes)
Store FP/MMX and SSE state (512 bytes)
Load SSE Control/Status Register
Packed Single FP Maximum (4 x 32 bits)
Scalar Single FP Maximum (least 32 bits)
Packed Single FP Minimum (4 x 32 bits)
Scalar Single FP Minimum (least 32 bits)
Move Aligned Four Packed Single FP
Move High to Low Packed Single FP
Move High Packed Single FP
Move Low to High Packed Single FP
Move Low Packed Single FP
Move Mask to Integer
Move Scalar Single FP
Move Unaligned Four Packed Single FP
Instruções SSE para ponto
flutuante
MULPS
MULSS
ORPS
RCPPS
RCPSS
RSQRTPS
RSQRTSS
SHUFPS
SQRTPS
SQRTSS
STMXCSR
SUBPS
SUBSS
UCOMISS
UNPCKHPS
UNPCKLPS
XORPS
Packed Single FP Multiply (4 x 32 bits)
Scalar Single FP Multiply (least 32 bits)
Bitwise Logical OR for Single FP Data
Packed Single FP Reciprocal (4 x 32 bits)
Scalar Single FP Reciprocal (least 32 bits)
Packed Single FP Square Root Reciprocal (4 x 32 bits)
Scalar Single FP Square Root Reciprocal (least 32 bits)
Shuffle Single FP
Packed Single FP Square Root (4 x 32 bits)
Scalar Single FP Square Root (least 32 bits)
Store SSE Control/Status Register
Packed Single FP Subtract (4 x 32 bits)
Scalar Single FP Subtract (least 32 bits)
Unordered Scalar Single FP Compare and set EFLAGS
Unpack High Packed Single FP Data
Unpack Low Packed Single FP Data
Bitwise Logical XOR for Single FP Data
Instruções SSE para controle de
cache
M ASKM O VQ
M O VNT PS
M O VNT Q
PREFET CHT 0/1
PREFET CHT 2
PREFET CHNTA
SFENCE
Byte M ask W rite
M ove Aligned Four Packed Single FP Non T em poral
M ove 64 Bits Non T em poral
Prefetch to all cache levels
Prefetch to L2 cache
Prefetch to L1 cache
Store Fence
Pentium: instrução CPUID e
número de série
Parâmetro Valores após execução de CPUID
EAX=0
EAX: Maior valor aceito para EAX
EBX:ECX:EDX: String de identificação
EAX=1
EAX: Identificador do processador (32 bits superiores do número de
série)
EBX:ECX: Indefinidos
EDX: Feature Flags
EAX=2
EAX:EBX:ECX:EDX: valores de configuração do Processador
EAX=3
EDX:ECX: 64 bits inferiores do número de série
EAX>3
EAX:EBX:ECX:EDX: Indefinidos
Desabilitar o número de série
MOV ECX, 119H
RDMSR
OR EAX, 0020 0000h
WRMSR
;loads EDX:EAX
Intel Pentium 4
• Lançado em novembro de 2000
• Pipeline de 20 estágios (“hyper pipeline”)
• Até 128 instruções em execução (3 vezes mais que
no Pentium III)
• Algoritmo melhorado para previsão de desvios, com
tabela de 4K
• Novo sistema de cache de nível 1
• Cache de execução de 12 K micro-operações
(Execution Trace Cache)
• Cache de dados de 8 KByte
Intel Pentium 4
• Instruções SSE2 (Streaming SIMD Extensions 2) 144 novas instruções
– 67 instruções para vetores de pontos flutuante de precisão
dupla (64 bits)
– 69 novas instruções MMX, para vetores inteiros de 128 bits
(utilizando os registradores XMM)
– 8 instruções para controle de cache
• Barramento do sistema “Net Burst” de 400 MHz
Intel Pentium 4 HT
• Tecnologia “Hyper Threading”
– Capaz de executar duas threads simultaneamente
– Aumento de até 25% na capacidade de processamento
– 8 instruções para controle de cache
• Barramento do sistema “Net Burst” de 400 MHz
• Instruções SSE3 (Streaming SIMD Extensions 3) - 13
novas instruções
– 2 instruções para vetores de inteiros
– 9 instruções para vetores de ponto flutuante
– 2 instruções para sincronização de threads
Microprocessadores Cyrix
– 1988: compatíveis com 486
– pinagem distinta
– características elétricas distintas
– compatibilidade plena com Cx846SX e Cx486DX
– compatíveis com Pentium
–
–
–
–
Clock especificado em “PR” (Performance Rating)
5x86: pinagem do 486, desempenho do Pentium
6x86: pinagem do Pentium, desempenho do Pentium Pro
M1: 4 unidades de execução, cache unificada, previsão de
desvios
– 6x86MX: 6x86 com MMX, 64K de cache unificada
– M II: compatibilidade com Pentium II, não usa “slot”
– Media GX
Microprocessadores AMD
• compatíveis com 386
• compatíveis com 486
• compatíveis com Pentium
• Clock especificado em “PR” (Performance Rating)
instruções para 3D dos microprocessadores
AMD não são compatíveis com SSE
K5: concorrente do Pentium
• arquitetura interna semelhante ao Pentium
Pro
• 5 unidades de execução
• previsão de desvios
• cache para dados e instruções (12K cada)
K6: concorrente direto do
Pentium II
– Compatibilidade com MMX
– Pipeline interno de 6 estágios
– Previsão de desvios - tabela de 8192 entradas
(contra 512 do Pentium Pro)
– 48 registradores físicos (24 gerais, 24 para
renomeação)
– Pilha interna de retorno de subrotina (elimina a
latência de leitura de memória)
– Cache de nível 1 de 64 KBytes (32 K dados, 32 K
instruções)
AMD K6
• Sete unidades de execução:
– Load, para carga de operandos
– Store, para armazenamento de operandos
– Integer X, para operações aritméticas,
multiplicação, divisão e deslocamentos
– Integer Y, para operações aritméticas básicas
– Floating Point, para números em ponto flutuante
– Multimedia, para instruções MMX
– Branch, para execução de desvios
AMD K-2 a K7
• K6-2: concorrente direto do Pentium III
– Compatibilidade com MMX
– 21 Instruções 3DNow! - 70 instruções SSE no Pentium III
– Vetores de ponto flutuante de 64 bits
• (2 números de 32 bits) - 128 bits no Pentium III
• K6 - III
– K6-2 com três níveis de cache:
» Interna (nível 1, L1) de 64 Kbytes
» Interna (nível 2, L2) de 256 Kbytes
» Externa (nível 3, opcional) até 1024 Kbytes
• K7 (Athlon)
– K6 - III reprojetado
Instruções 3Dnow!
PAVGUSB
PFADD
PFSUB
PFSUBR
PFACC
PFCMPGE
PFCMPGT
PFCMPEQ
PFMIN
PFMAX
PI2FD
PF2ID
PFRCP
PFRSQRT
PFMUL
PFRCPIT1
PFRSQIT1
PFRCPIT2
Packed 8-bit Unsigned Integer Averaging
Packed Floating-Point Addition
Packed Floating-Point Subtraction
Packed Floating-Point Reverse Subtraction
Packed Floating-Point Accumulate
Packed Floating-Point Comparison, Greater or Equal
Packed Floating-Point Comparison, Greater
Packed Floating-Point Comparison, Equal
Packed Floating-Point Minimum
Packed Floating-Point Maximum
Packed 32-bit Integer to Floating-Point Conversion
Packed Floating-Point to 32-bit Integer
Packed Floating-Point Reciprocal Approximation
Packed Floating-Point Reciprocal Square Root Approximation
Packed Floating-Point Multiplication
Packed Floating-Point Reciprocal First Iteration Step
Packed Floating-Point Reciprocal Square Root First Iteration Step
Packed Floating-Point Reciprocal/Reciprocal Square Root 2nd
Iteration
PMULHRW Packed 16-bit Integer Multiply with rounding
FEMMS
Faster entry/exit of the MMX™ or floating-point state
PREFETCH Prefetch at least a 32-byte line into L1 data cache (Dcache)
PF2IW
PFNACC
PFPNACC
PI2FW
PSW APD
MASKMOVQ
MOVNTQ
PAVGB
PAVGW
PEXTRW
PINSRW
PMAXSW
PMAXUB
PMINSW
PMINUB
PMOVMSKB
PMULHUW
PREFETCHNTA
PREFETCHT0
PREFETCHT1
PREFETCHT2
PSADBW
PSHUFW
SFENCE
Packed Floating-Point to Integer with Sign Extend
Packed Floating-Point Negative Accumulate
Packed Floating-Point Mixed Positive-Negative Accumulate
Packed Integer W ord to Floating-Point Conversion
Packed Swap Doubleword
Streaming (Cache Bypass) Store Using Byte Mask
Streaming (Cache Bypass) Store
Packed Average of Unsigned Byte
Packed Average of Unsigned W ord
Extract W ord into Integer Register
Insert W ord from Integer Register
Packed Maximum Signed W ord
Packed Maximum Unsigned Byte
Packed Minimum Signed W ord
Packed Minimum Unsigned Byte
Move Byte Mask to Integer Register
Packed Multiply High Unsigned W ord
Move Data Closer to the Processor Using the NTA Reference
Move Data Closer to the Processor Using the T0 Reference
Move Data Closer to the Processor Using the T1 Reference
Move Data Closer to the Processor Using the T2 Reference
Packed Sum of Absolute Byte Differences
Packed Shuffle W ord
Store Fence
Comparação de
Microprocessadores (1999)
C achesL1
C ache L2
K6-2
05/98
300 a
475
32
512-2M
K6-III
02/99
400 e
450
32
256
C ache L3
Freq. Sist.
-100
512-2M -100
100
SIM D
M M X,
3D N ow
Socket7
Super7
1
M M X,
3D N ow
Socke7
Super7
1
D ata
Frequência
Encaps.
M ultipr.
Athlon
08/99
500 a
600
64
512
M II
04/99
250 a
300
64
--
Pe II
05/97
233 a
450
16
512
C eleron
04/98
266 a
500
16
128
Pe III
02/99
450 a
600
16
512
-95 e
100
MMX
--66 e
100
MMX
-66
-100
Xeon
03/99
500 e
550
16
5122M
-100
MMX
M M X,
SSE
Slot 1
M M X,
SSE
Slot 2
M M X,
3D N ow
Slot A
Socke7 Slot 1
Super7
1(2)
1
2
Slot1
Soc370
1
2
8
Desempenho (1999)
Microprocessador
Freq
K6-2/400
K6-2/450
K6-2/475
K6-III/400
K6-III/450
Athlon/550
Athlon/600
Athlon/650
Cyrix MII/400
Celeron/333
Celeron/400
Celeron/466
Celeron/500
Pentium II/450
Pentium III/450
Pentium III/500
Pentium III/550
Pentium III/600
Pentium Xeon/550
100
100
95
100
100
100
100
100
100
66
66
66
66
100
100
100
100
100
100
Winstone99
(B)
20,3
20,6
20,9
23,2
24,9
26,0
27,4
27,7
19,4
19,3
21,0
22,4
23,1
23,9
23,1
24,8
25,3
26,4
27,0
CPUmark99 FPUmark99 3Dmark99
28,0
28,6
28,3
43,4
48,1
51,9
56,0
60,0
25,6
27,0
30,9
34,8
36,1
34,1
34,6
38,2
40,6
44,1
45,4
1.330
1.500
1.570
1.350
1.520
2.990
3.260
3.540
670
1.770
2.120
2.480
2.660
2.280
2.280
2.540
2.780
3.030
2.820
695
717
716
735
762
1.050
1.060
1.070
489
783
850
886
899
923
985
1.010
1.020
1.040
1.040
Preço
(US$)
82
112
152
185
220
n.a.
n.a.
699
85
67
93
147
167
268
268
482
658
669
931
Pentium4 (1,5 GHz) x Athlon (1,2 GHz)
Benchmark
Quake III, 640 x 480
MDK2 640 x 480
3Dmark 2000
3Dmark Video
Windows Media Encoder
Sysmark 2000
Power Point 2000
Word 2000
Excel 2000
Nestcape
Corel Draw 9
Paradox 9
Bryce 4
Inspire 3D
Music Match 5
Adobe Premiere 5.1
Ligo MPEG2 Encoder
Photoshop 5.5
Dhrystone
Whetstone
Pentium 4
209,5 fps
183 fps
457
37,6 fps
33,35 sec
199
69,23 s
93,10 s
64,42 s
86,98 s
91,64 s
101,82 s
73,97 s
297 s
69 s
98,59 s
55,4 s
72,72 s
2839
887
Athlon
175,4 fps
160 fps
437
32,4 fps
48,28 sec
236
51,38 s
79,41 s
48,36 s
67,54 s
68,57 s
76,48 s
58,40 s
195 s
61 s
96,74 s
75,3 s
79,92 s
3331
1665
Próximos Lançamentos !?!
previsões
• 1999
• Intel: Coppermine (667MHz), Cascades (Servidor)
• Cyrix: Gobi (MII com MMX e 3DNow!)
• AMD: nova versão do Athlon (maior frequência)
• 2000
• Cyrix: Mojave (próxima geração)
• Intel: Itanium (IA-64, 800 MHz, 8 instruções por ciclo)
• Intel: Willamette e Foster (Servidor)
• 2001
• Intel: McKinley (Segunda geração do IA-64)

Documentos relacionados

A história dos microprocessadores e microcontroladores

A história dos microprocessadores e microcontroladores poupamos tempo e espaço na construção de novos projetos. O PIC Os PIC (Peripheral Integrated Controler) são uma família de microcontroladores fabricados pela Microchip Technology, que processam dad...

Leia mais

1 Evolução do computador. Ábaco A primeira

1 Evolução do computador. Ábaco A primeira palavra. Esta organização é normalmente simbolizada através de um sinal X . Por exemplo uma RAM de 1M x 32 é uma memória que tem 32 bits para entrada e saída de dados, que em paralelo atuam sobre u...

Leia mais

OS COMPONENTES BÁSICOS DE UM COMPUTADOR A função de

OS COMPONENTES BÁSICOS DE UM COMPUTADOR A função de incremento (soma um). Na realidade, o PC é um registrador-contador. Adicionalmente, instruções de controle podem influenciar a seqüência de execução de um programa alterando o conteúdo do PC. Exist...

Leia mais