thumb|O Intel 8086. thumb|Intel Core 2 Duo - Um exemplo de aquitetura x86 compativel com processadores multicore de 64-bit. thumb|AMD Athlon (primeira versão) - outra implementação x86 tecnicamente diferentes, mas totalmente compatível.
Em informática, x86 ou 80x86 é o nome genérico dada à família (arquitetura) de processadores baseados no Intel 8086, da Intel Corporation.
A arquitetura é chamada x86 porque os primeiros processadores desta família eram identificados somente por números terminados com a sequência "86": o 8086, o 80186, o 80286, o 80386 e o 80486. Como não se pode ter uma marca registrada sobre números, a Intel e a maior parte de seus competidores começaram a usar nomes que pudessem ser registrados como marca, como Pentium para as gerações de processadores posteriores, mas a antiga nomenclatura tinha forjado um termo para toda a família.
O termo x86 não é sinônimo de compatibilidade com IBM PC, pois isso sugere uma infinidade de outros hardwares e sistemas embarcados bem como computadores usando chips x86 antes do moderno mercado ser compatível com PC, alguns deles antes mesmo do IBM PC em si.
Houve várias tentativas, dentro da Intel em si, para quebrar o domínio do mercado da arquitetura x86, que descendia diretamente do simples microprocessadores de 8 bits. Exemplos disso são as iAPX 432 (aliás Intel 8800), o Intel 960, Intel 860 e Intel e a arquitetura do Hewlett Packard Itanium. No entanto, o aperfeiçoamento contínuo de 86 micro arquiteturas, circuitos, e fabricação de semicondutores provaria que é difícil substituir x86 em vários segmentos. O 64, da extensão bit da AMD x86 (que a Intel finalmente respondeu, com um design compatível) e a escala de processadores x86, como o eight-core Intel Xeon e 12-core AMD Opteron destaca-se o x86 como um exemplo de contínuo aperfeiçoamento e como as normas estabelecidas pela indústria pode resistir à concorrência das novas arquiteturas.
Cronologia A tabela abaixo mostra as marcas de processadores e microprocessadores na Hall da Fama, agrupados por gerações que destacam pontos importantes na história do x86. Nota: As gerações de CPU não são rígidas, cada geração é marcada por melhoras significativas ou comercialmente bem sucedidos projetos do processador. Geração Introduzido inicialmente em Marcas e Modelos de CPU Linear / Espaço de endereço físico Novos recursos 1 1978 Intel 8086, Intel 8088 16-bit / 20-bit (segmentados) Primeiros processadores X86.2 1982 Intel 80186, Intel 80188, NEC V20/V30 Hardware para cálculos de endereços rápidos. Intel 80286 16-bit (30-bit virtual) / 24-bit (segmentados) MMU, para o modo protegido e um maior espaço de endereço. 3 (IA-32) 1985 Intel 80386 AMD Am386 32-bit (46-bit virtual) / Conjunto de instruções com 32-bit, MMU com paginação. 4 1989 Intel 486 (SX/DS/DX2) AMD Am486 (SX/SX2/DX/DX2/DX4) AMD 5x86 (486 DX5) Cyrix 486 (SX/DX/DX2/DX4) Cyrix 5x86 (486DX3 e DX5) RISC FPU pipelining, cache integrada, on-chip.5 1993 Intel Pentium Superscalar, 64-bit databus, faster FPU, MMX. 1994 NexGen Nx586 Inicialmente não possuía FPU, foi adicionada em modelos posteriores. 6 1995 Pentium Pro Execução Expeculativa, foi substituído pelo Pentium Xeon. 5 1996 AMD K5, Cyrix 6x86, Rise mP6 como acima / 36-bit Físico (PAE) translação μ-op, PAE Pentium Pro, integrado com cache L2 (Pentium Pro), instrução de movimentação condicional. 6 1997 AMD K6/-2/3, Pentium II/III, IDT/Centaur-C6 cache L3 suportando, 3DNow, SSE.7 1999 Athlon, Athlon XP superscalar FPU, design wide (até três instruções por ciclo de clock) 2000 Pentium 4 Alta conduta, alta frequencia, SSE2, hyper-threading. 6-M/7-M 2003 Pentium M, VIA C7 (2005), Intel Core (2006) Otimizados para baixo consumo.8 (x86-64) Athlon 64, Opteron 64-bit / 40-bit Implementação física do primeiro processador AMD. Conjunto de instruções x86-64, controlador de memória on-die, hypertransport. 2004 Pentium 4 Prescott Alta contuta, Altíssima frequencia, SSE], capacidade de 64 bits está disponível somente em soquetes LGA 775. 9 2006 Intel Core 2 baixo consumo, multi-core, menor frequencia de clock, SSE4 (Penryn) 10 2007 AMD Phenom como acima / 48-bit processador físico AMD Phenom monolítica quad-core, 128 FPUs bit, SSE4a, HyperTransport 3 ou QuickPath, controlador de memória nativa, on-die cache L3, design modular.2008 Intel Core i3, Intel Core i5, Intel Core i7 Intel Atom Altamente canalisado porém com sua potência muito baixa. VIA Nano Fora de ordem, superescalar, criptografia baseada em hardware, muito baixa energia, gerenciamento de energia adaptativa. 11 2010 Intel Sandy Bridge, AMD Bulldozer SSE5/AVX, design altamente modular.
História Antecedentes
A arquitetura x86 aparece primeiro como a CPU Intel 8086 lançada em 1978, um projeto totalmente de 16 bits baseado na anterior de 8 bits com base 8008, 8080 e 8085. Apesar de não ser compatíveis a nível binário, ele foi projetado para permitir que programas escritos em linguagem assembly fossem traduzidos para o conjunto 8086 equivalente. Isso fez com que o novo processador fosse um caminho de migração tentador, mas não sem uma remodelagem de hardware significativa, principalmente devido ao barramento de dados 16 bits externo. Para resolver isso, a Intel lançou o 8088, que era quase idêntico, com um barramento de dados externo de 8 bits, o que permitiu o uso de placas de circuito mais simples e exigiu menos chips DRAM. O 8088 também podia ser conectado ao já estabelecido (ou seja, de baixo custo) sistema de 8 bits e chips periféricos mais facilmente, entre outros fatores não técnicos, o que contribuiu para o fato de que a IBM construísse seu IBM PC usando o 8088, apesar da presença de microprocessadores de 16 bits da Motorola, Zilog, e National Semiconductor. O IBM PC, posteriormente ultrapassou os sistemas baseados em CP/M e Z80, Apple II, e outros computadores populares, e tornou-se um padrão de fato dominante, para computadores pessoais, permitindo assim que os 8088 e os seus sucessores dominassem este ramo importante de microprocessadores no mercado.
iAPX 432 e a 80286 Outro fator foi que o Intel 8800 (aliás iAPX 432) não compatível com 32 bits, falhou no mercado na época que o IBM-PC foi lançado. O novo e rápido 80286 realmente contribuiu para a decepção do semi-contemporâneo 8800 no início de 1982. (O 80186, lançado em paralelo com o 80286, foi concebido para sistemas embarcados, e, portanto, teve um grande mercado de qualquer maneira.) A falha de mercado dos 32 bits 8800, foi um impulso significativo para a Intel continuar desenvolvendo 8086 compativéis mais avançados, como o 80386 (uma extensão de 32 bits do 80286 com bom desempenho).
Outros fabricantes
Por várias vezes, empresas como IBM, NEC, AMD, TI, STM, Fujitsu, OKI, Siemens, Cyrix, Intersil, C & T, NexGen, e a UMC começaram a fabricação de processadores x86 destinado a computadores pessoais e de sistemas embarcados. Tais implementações x86 raramente são cópias simples, e muitas vezes empregam diferentes microarquiteturas internas, bem como diferentes soluções ao nível eletrônico e físico. Muito naturalmente, os primeiros chips compatíveis foram de 16 bits, enquanto os projetos de 32 bits apareceram mais tarde. Para o mercado de computadores pessoais, a quantidade real começou a aparecer por volta de 1990 com o i386 e o i486, processadores compatíveis, então nomeados similarmente como Chip Original Intel. Outras empresas, que projetaram ou fabricaram processadores x86 ou x87, foram a ITT Corporation, a National Semiconductor, a ULSI System Technology, e a Weitek.
Após a pipelined i486, a Intel lançou a marca Pentium para sua nova linha de modelos x86 superescalar. Com o esquema de nomeação de 86 agora legalmente seguro, a Intel fez uma parceria com a IBM para produzir o Cyrix 5x86 e 6x86. Nessa época a AMD, estava projetando e fabricando o 5k86, que internamente, foi baseado no design da AMD RISC 29K, semelhante ao Nx586 NexGen. A AMD usou uma estratégia em que estágios da pipeline, decodificavam instruções x86 e outros manuseios de micro Operações, um método muito usado como base para o design do x86, da época.
Algumas versões mais antigas desses chips tiveram problemas de dissipação do calor. O 6x86 também foi afetado por alguns pequenos problemas de compatibilidade, o Nx586 faltava uma unidade de ponto flutuante (FPU) e a compatibilidade de pinos, enquanto o K5 tinha um desempenho um pouco decepcionante, quando foi lançado. A conscientização do cliente para a linha Pentium contribuíu para estes projetos sendo comparativamente melhor, apesar do fato de que o K5 tinha boa compatibilidade com Pentium e 6x86. A AMD conseguiu, mais tarde, estabelecer-se como um grande concorrente com a linha de processadores K6, que deu lugar ao grande sucesso Athlon e Opteron. Houve também outros concorrentes, como a Centaur Technology (formerly IDT), a Rise Technology, e a Transmeta. Processadores como o VIA Technologies C3 e C7, que foram projetados pela Centaur, também foram vendidos por muitos anos. O mais novo projeto da Centaur, o VIA Nano, é o primeiro processador com a execução superescalar. Foi interessante, pois foi introduzido na mesma época do processador Intel's first "in-order" desde o P5 Pentium, o Intel Atom.
Extensões do tamanho de bits A arquitetura do conjunto de instruções foi prorrogado duas vezes para um tamanho maior. Em 1985, a Intel lançou o 32 bits 80386 (ou i386), que gradualmente substituiu o chip de 16 bits em computadores. Durante os anos seguintes, este modelo de programação estendida foi originalmente chamado de arquitetura i386, mas mais tarde apelidou-se de Intel IA-32, antes da sua versão independente, a arquitetura IA-64. Em 1999-2003, a AMD estendeu essa arquitetura de 32 bits para 64 bits e se refere a ele como x86-64 em documentos antigos e mais tarde como AMD64. a Intel logo adotou extensões da arquitetura da AMD, como o nome IA-32e que foi mais tarde renomeado de Intel EM64T e, finalmente, 64. Entre estes cinco nomes, o original x86-64 é provavelmente o mais utilizado, embora a Microsoft e a Sun Microsystems também usam o termo x64.
Resumo Propriedades básicas da arquitetura A arquitetura x86 é um comprimento variável de instrução, primeiramente são modelados dois endereços “CISC” com ênfase em compatibilidade com versões anteriores. No entanto o conjunto de instruções não é típico CISC, mas, basicamente, uma versão estendida e ortogonal de simples oito bits, das arquiteturas 8008, 8080 e 8085. O Byte de endereçamento é suportado e as palavras são armazenadas na memória com ordem de little-endian byte. O acesso à memória para endereços desalinhados é permitido em todos os tamanhos de palavras suportadas. O maior tamanho nativo para aritmética de inteiros e endereços de memória (ou deslocamentos) é de 16, 32 ou 64 bits dependendo da geração da arquitetura (processadores mais recentes incluem um suporte direto para inteiros menores também). Vários valores escalares podem ser tratados simultaneamente, através da unidade SIMD presente em gerações posteriores, conforme descrito abaixo. Compensações imediatas de endereçamento e dados de imediato podem ser expressos em quantidades de 8 bits conforme a frequência que ocorrem os casos ou contextos em que o intervalo de 128 .. 127 é o suficiente. Instruções típicas são, portanto, de 2 ou 3 bytes de comprimento (embora alguns são muito mais longos, e algumas são de byte único). Para melhor conservar o espaço de codificação, a maioria dos registros são expressos em opcodes usando três bits, e no máximo um operando em uma instrução que pode ser um local de memória (alguns projetos "CISC" altamente ortogonais, como o PDP-11, podem utilizar dois). No entanto, esta memória operando também pode ser de destinação (ou a combinação entre fonte e destinação), enquanto o outro operando, a fonte, pode ser tanto registrada quanto imediata.