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
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 mais1 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 maisOS 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