Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
Primeiro processador da linha x86 foi o Intel 8086 (16 bits), 1979 (8086/8087)
Paralelamente ao 8086, foi lançado o 8088, usado no IBM PC.
O 80386 foi o primeiro microprocessador Intel a usar palavras com tamanho de 32 bits, introduzido em 1985.
275,000 transistors
MulK-‐tarefa (MulKtasking)
O 80486 foi o quinto modelo na família. O 80486 Knha uma unidade de ponto flutuante integrada pela primeira vez na história do x86.
Os chips PenKum IV introduziram as noções de "Hyper Threading" e chips "MulK-‐Core" (Núcleo MúlKplo).
Chips Celeron são a linha econômica de chips
Xeon: processadores Intel com cache muito maior (medido em megabytes, em comparação com o cache de kilobytes de outros chips) e suportam mais de 1 processador.
A arquitetura IA-32 é também chamada de i386.
Especial importância à compatibilidade com arquiteturas anteriores (backwards compatibility).
32 bits = Acesso a até quatro gigabytes de memória física.
Presença de extensões como SSE, SSE2, SSE3, MMX, 3DNow
AX -> EAX (Extended)
Little endian: Endereço da palavra aponta para o byte menos significativo.
Está organizada em segmentos.
Introdução do Modo Protegido
Paginação e Memória Virtual
Arquitetura Superescalar (Pentium)
“CISC com núcleo RISC”
IA-32 little-endian x PowerPC é bi-endian
IA-32 8 registradores de uso geral x PowerPC 604 (RISC) 32 registradores x SPARC 128 (normalmente)
IA-32 CISC x MIPS RISC
1985 1989 1993 1995 2000
1985 1989 1993 1995 2000
x386
Primeiro processador de 32 bitsTotalmente compa`vel com os anKgos programasGanhou mais registradores de segmento: FS e GS (16 bits)
IP tornou EIP e possui 32 bitsRecursos avançados de gerenciamento de memória (Endereça 4GB)
Novo modo de operação MODO VIRTUALPipeline de 6 estágios
1985 1989 1993 1995 2000
x386
Primeiro processador de 32 bitsTotalmente compa`vel com os anKgos programasGanhou mais registradores de segmento: FS e GS (16 bits)
IP tornou EIP e possui 32 bitsRecursos avançados de gerenciamento de memória (Endereça 4GB)
Novo modo de operação MODO VIRTUALPipeline de 6 estágios
1985 1989 1993 1995 2000
x386
Similar ao 386, vem acrescido de um coprocessador matemáKco 80387 e mais 8Kb de cache L1 integrada
Aumentou nº de estágios do pipeline ( 8 estágios )
Fila de instruções foi dobrada
x486
As unidades de decodificação e execução foram cada uma
desmembradaem 2 estágios pipeline
1985 1989 1993 1995 2000
x386 x486 PenFum
Arquitetura de superescalar (U-‐pipeline e
V-‐pipeline )Barramento de dados de 64 bitsCache L1 dividiaFPU reprojetada e mais rápidaIntrodução da instrução CPUID
Como tratar problemas de dependência , saltos e falta de
recursos?
Técnica Disponibilidade
Previsão de Desvio
Execução fora de ordem ( Execução EspeculaKva )
Análise dinâmica do fluxo de dados
Dependência de resultados ainda trava o pipeline
1985 1989 1993 1995 2000
x386 x486 PenFum
Engloba PenKum Pro, PenKum II, PenKum III, CeleronConceito de pool de instruçõesAdoção do conceito RISC para o núcleo do processador (Micro-‐Ops)
Dynamic ExecuFon ( Previsão de Desvio, Análise Dinâmica de Fluxo de Dados, Execução EspeculaFva )
10 estágios de pipeline
P6
Técnica Disponibilidade
Previsão de Desvio
Execução fora de ordem ( Execução EspeculaKva )
Análise dinâmica do fluxo de dados
Se ocorrer de o processar executar uma instrução desnecessária não há problema, pois a unidade de reFrada faz atualização tardia
1985 1989 1993 1995 2000
x386 x486 PenFum
Cache L1 já possui instruções RISC decodificadas e a L2 possui as instruções CISC a serem decodificadas
Hyper-‐Threading
Aumento do Pool de InstruçõesHyper-‐Pipelined ( 20 estágios )
P6 PenFum 4
UA
Unidade de Execução
Sem Hyper-Threading
UA
Unidade de Execução
Hyper-Threading
UA
Cada processador lógico recebe seu próprio controlador de interrupção programável (APIC) e conjunto de registradores.
O sistema operacional pode enviar tarefas para os processadores lógicos como se esKvesse enviando para processadores osicos em um sistema de mulKprocessamento.
1985 1989 1993 1995 2000
x386 x486 PenFum
Cache L1 já possui instruções RISC decodificadas e a L2 possui as instruções CISC a serem decodificadas
Hyper-‐Threading
Aumento do Pool de InstruçõesHyper-‐Pipelined ( 20 estágios )
P6 PenFum 4
The Intel Architecture Sopware Developer's Manual, Volume 1: Basic Architecture
The Intel Architecture Sopware Developer's Manual, Volume 2: InstrucKon Set Reference
The Intel Architecture Sopware Developer's Manual, Volume 3: System Programing Guide
InstrucFon Set Reference
AAA—ASCII Adjust Aper AddiKonAAD—ASCII Adjust AX Before DivisionAAM—ASCII Adjust AX Aper MulKply AAS—ASCII Adjust AL Aper SubtracKon
ADC—Add with CarryADD—Add
ADDPS—Packed Single-‐FP AddADDSS—Scalar Single-‐FP Add
AND—Logical ANDANDNPS—Bit-‐wise Logical And Not For Single-‐FP
ANDPS—Bit-‐wise Logical And For Single FP ARPL—Adjust RPL Field of Segment SelectorBOUND—Check Array Index Against Bounds
BSF—Bit Scan ForwardBSR—Bit Scan ReverseBSWAP—Byte Swap
BT—Bit TestBTC—Bit Test and Complement
BTR—Bit Test and ResetBTS—Bit Test and Set
InstrucFon Format
Opcode InstrucFon DescripFon ( Example – ADD )
04 ib ADD AL,imm8 Add imm8 to AL05 iw ADD AX,imm16 Add imm16 to AX05 id ADD EAX,imm32 Add imm32 to EAX80 /0 ib ADD r/m8,imm8 Add imm8 to r/m881 /0 iw ADD r/m16,imm16 Add imm16 to r/m1681 /0 id ADD r/m32,imm32 Add imm32 to r/m3283 /0 ib ADD r/m16,imm8 Add sign-‐extended imm8 to r/m1683 /0 ib ADD r/m32,imm8 Add sign-‐extended imm8 to r/m3200 /r ADD r/m8,r8 Add r8 to r/m801 /r ADD r/m16,r16 Add r16 to r/m1601 /r ADD r/m32,r32 Add r32 to r/m3202 /r ADD r8,r/m8 Add r/m8 to r803 /r ADD r16,r/m16 Add r/m16 to r1603 /r ADD r32,r/m32 Add r/m32 to r32
rel8—A relaKve address in the range from 128 bytes before the end of the instrucKon to127 bytes aper the end of the instrucKon.
rel16 and rel32—A relaKve address within the same code segment as the instrucKonassembled. The rel16 symbol applies to instrucKons with an operand-‐size auribute of 16bits; the rel32 symbol applies to instrucKons with an operand-‐size auribute of 32 bits.
r8—One of the byte general-‐purpose registers AL, CL, DL, BL, AH, CH, DH, or BH.
r16—One of the word general-‐purpose registers AX, CX, DX, BX, SP, BP, SI, or DI.
r32—One of the doubleword general-‐purpose registers EAX, ECX, EDX, EBX, ESP, EBP,ESI, or EDI.
imm8—An immediate byte value. The imm8 symbol is a signed number between –128and +127 inclusive. For instrucKons in which imm8 is combined with a word ordoubleword operand, the immediate value is sign-‐extended to form a word or doubleword.The upper byte of the word is filled with the topmost bit of the immediate value.
imm16—An immediate word value used for instrucKons whose operand-‐size auribute is16 bits. This is a number between –32,768 and +32,767 inclusive.
/digit — A digit between 0 and 7 indicates that the ModR/M byte of the instrucKon usesonly the r/m (register or memory) operand. The reg field contains the digit that provides anextension to the instrucKon's opcode.
/r — Indicates that the ModR/M byte of the instrucKon contains both a register operand and an r/m operand.
cb, cw, cd, cp — A 1-‐byte (cb), 2-‐byte (cw), 4-‐byte (cd), or 6-‐byte (cp) value following theopcode that is used to specify a code offset and possibly a new value for the code segmentregister.
ib, iw, id — A 1-‐byte (ib), 2-‐byte (iw), or 4-‐byte (id) immediate operand to the instrucKonthat follows the opcode, ModR/M bytes or scale-‐indexing bytes. The opcode determines ifthe operand is a signed value. All words and doublewords are given with the low-‐orderbyte first.
+rb, +rw, +rd — A register code, from 0 through 7, added to the hexadecimal byte given atthe lep of the plus sign to form a single opcode byte. The register codes are given in Table3-‐1.
+I — A number used in floaKng-‐point instrucKons when one of the operands is ST(i) fromthe FPU register stack. The number i (which can range from 0 to 7) is added to thehexadecimal byte given at the lep of the plus sign to form a single opcode byte.
Novas instruções
Todas as instruções que operavam com 8 e 16 bits, agora operam também com 32 bits. ( Uma soma de 32 bits era feita em duas etapas )
Criados novos modos de endereçamento mais poderosos.
Expressões como [EDX*8+EAX], permiKndo endereçãmento mais rápido de matrizes
Novas instruções de 32 bits podem ser usadas quando o processador opera no modo real. (exceto as de endereçamento)
Modo Real
Processador funciona exatamente como um 8086
Não estão disponíveis os recursos avançados de endereçamento e gerenciamento de memória, nem de mulKtarefa.
Estão entretanto disponíveis as novas instruções que manipulam dados e 32 bits e novos modos de endereçamento de memória
Modo Protegido
Quando o computador é ligado, o processador está operando em modo real. Quem dá o comando para que ele mude para o modo protegido é o sistema operacional.
No caso do Windows, este comando é dado durante o carregamento do sistema.
O modo protegido traz basicamente quatro novos recursos: memória virtual, mulFtarefa, proteção de memória e o modo virtual 8086.
Modo Protegido
MulFtarefa: MulKtarefa significa executar mais de uma tarefa de cada vez
Modo virtual 8086: Operando em modo protegido, é capaz de simular vários ambientes de modo real, cada um com 1 MB de memória e total acesso ao hardware do micro, chamados de máquinas virtuais.
Memória virtual: Uma área do disco rígido na qual é simulada uma grande quanKdade de RAM.
Modo Protegido
Paginação
Cada endereço osico gerado a parKr do segmento e offset (chamado de endereço linear) é usado como índice para uma tabela de páginas.
TranslaFon Lookaside Buffer (TLB)
Uma pequena cache interna dedicada a armazenar as informações sobre páginas recentemente acessadas.
Hierarquia de Memória -‐ 80386
Introdução da Memória Cache
Passaram a ser usadas pequenas quanKdades de memória cache na grande maioria das placas mãe para micros 386 e superiores.
De 20 a 30% mais rápido que um 386 da mesma frequência, mas sem memória cache.
Um processador moderno pode ficar até 20 vezes mais lento caso sejam desabilitados tanto o cache L1 quanto o cache L2.
Hierarquia de Memória -‐ 80486
Primeiro processador a trazer Cache integrado.
Cache L1 de 8KB, mas que eram capazes de entregar dados a cada ciclo do processador.
DisKnção de cache L1 e L2
Como os fabricantes conKnuaram incluindo cache na placa mãe, um pouco mais lentos, mas em maior quanKdade, surgiu também a disKnção entre o cache L1 e o L2.
Hierarquia de Memória -‐ Pen?um
Divisao e Duplicação da cache L1
Cache L1, que passou a ser de 16 KB, o dobro do 486.
Dividia em dois blocos de 8 KB, cache de dados e instruções.
Ambas são 2-‐way set-‐associaKvas.
Adoção de um cache Write Back
Hierarquia de Memória -‐ Pen?um Pro
Duplicação da cache de nível 1 (L1)
16 KB de cache nivel 1 (L1), separada em 8KB para cache de dados e 8KB para cache de instruções.
4-‐way associaKve, com blocos de 32 bytes, e mecanismo de escrita write-‐back.
Cache de nível 2 (L2)
Mesmo invólucro do processador , porém um chip separadoCache de 256KB (nas versoes mais simples), Cache de 512 KB e 1 MB nas outras versões (mais caros). A grande vantagem disso é a redução no tempo de acesso à cache secundária.
Hierarquia de Memória -‐ Pen?um II
Duplicação da Cache de nível 1 (L1)
32 KB de cache nivel 1 (L1), separada em 16KB para cache de dados e 16KB para cache de instruções.
Integração da Cache de nível 2 (L2)
Cache L2 integrado de 512 KB.
Hierarquia de Memória -‐ Pen?um III
Versões com 512 KB de cache half-‐speed (à metade da freqüência do processador, como no PenKum II)
Versões com 256 KB de cache full-‐speed (na mesma freqüência do processador, como no PenKum Pro)
Entre outros...
Hierarquia de Memória -‐ Pen?um III
PenKum III Coppermine com seus 256 KB de cache L2 integrado, que são representados pelos 16 retângulos na parte inferior do processador.
Hierarquia de Memória -‐ Pen?um IV
Cache de nível 1 (L1)
Cache de dados -‐ Apenas 8 KB de cacheTempo de latência menor, ou seja, mais rápido que o cache L1 encontrado no PenKum III
ExecuKve Trace Cache (Cache de Instruções) -‐ Ao invés de armazenar instruções, armazena diretamente uOPs (cada instrução simples), que são as instruções já decodificadas, prontas para serem processadas.