IA-32

Como IA-32 , uma abreviatura de " Intel Architecture 32-Bit ", a Intel descreve a arquitetura do processador x86 do 80386 , originalmente como arquitetura de 32 bits . Com a extensão do conjunto de instruções x64 , no entanto, a arquitetura x86 de 64 bits também está incluída.

x86 é o nome geral para a arquitetura do processador , que foi estabelecido com o processador 8086 da Intel em 1978 como uma arquitetura de 16 bits . Com o 80386 , a Intel lançou uma expansão do conjunto de instruções para 32 bits em 1985 , razão pela qual a designação i386 ou retronym IA-32 é muitas vezes usado para 80386 compatíveis com microprocessadores . A partir de 1999, a AMD trabalhou na expansão do conjunto de instruções para 64 bits, inicialmente com o nome x86-64 , que foi introduzido em 2003 como AMD64 e em 2005 pela Intel como Intel 64 . Essa extensão do conjunto de instruções, agora frequentemente chamada de x64 , também faz parte da " Arquitetura Intel de 32 bits ".

A arquitetura do conjunto de instruções x86 está sendo desenvolvida pela Intel e AMD.

Itanium

Com o novo desenvolvimento do processador Itanium da Intel e da Hewlett-Packard , que chegou ao mercado em 2001, a Intel queria apresentar a arquitetura Itanium , que era incompatível com x86 ou IA-32 . Isso também foi chamado de " Arquitetura Intel 64 bits " pela Intel , pois a Intel viu a nova arquitetura como a sucessora da arquitetura x86 de 32 bits. IA-64 (Itanium) não pegou, no entanto, também porque a arquitetura como um novo desenvolvimento não é compatível com x86 e, portanto, não pertence à arquitetura IA-32 com conjunto de instruções i386, que foi implementado por muitos fabricantes .

Como o x86 foi a arquitetura de processador mais difundida para computadores pessoais em todo o mundo desde os anos 1980 , havia um grande número de programas existentes que precisavam ser reprogramados para o processador Itanium - ou: deveriam ter sido programados.

Quando a AMD introduziu a expansão de 64 bits AMD64 para a arquitetura x86 existente (IA-32) em 2003 , ela foi imediatamente aceita pelo mercado, em parte porque os programas x86 existentes eram executados sem alterações. Em 2005, a Intel teve que seguir o exemplo e implementar com Intel 64 uma extensão de 64 bits para a arquitetura x86 "IA-32" que é compatível com AMD64, o que torna a " Arquitetura Intel 32 bits " uma arquitetura de 64 bits. Para evitar confusão, o x86 de 64 bits também é conhecido como x64 (baseado em x86 ).

IA-64, por outro lado, representa a arquitetura Itanium, que também é uma arquitetura de 64 bits, mas que não é compatível com o conjunto de instruções x86 "IA-32" ( 80x86 , i386 , x64 ).

Características arquitetônicas

A arquitetura IA-32 é um desenvolvimento adicional das arquiteturas de 16 bits dos processadores 8086 e 80286 da Intel. Todos os registradores , incluindo os registradores de endereço, foram expandidos para 32 bits nesta arquitetura , o número de registradores permaneceu o mesmo. Os registros de 32 bits foram implementados como uma extensão dos registros de 16 bits da arquitetura 80286 para obter compatibilidade com versões anteriores. O mnemônico dos registros estendidos foi marcado com um E precedente , para estendido (alemão: estendido) (para, por exemplo, EAX (registro de 32 bits) do AX anterior (registro de 16 bits)). Sob a designação para o registro de 16 bits da arquitetura 80286, os 16 bits inferiores do registro de 32 bits ainda podem ser acessados ​​(por exemplo, com acesso AX aos 16 bits inferiores do registro EAX de 32 bits ).

O barramento de endereço tem 32 bits de largura e, portanto, a capacidade de endereçamento é limitada a 4  GB (espaço de endereço físico). As exceções são o 80386SX , que tinha apenas um barramento de endereço de 24 bits. Começando com o Pentium Pro , uma extensão de endereço para 36 bits foi alcançada por meio de PAE , com gerações posteriores ainda mais, por ex. B. 40 bits no AMD K8 . Com 36 bits, 64 GiB podem ser endereçados, de forma que mais de 4 GiB possam ser usados ​​em um ambiente de 32 bits com restrições se o PAE for implementado pelo sistema operacional. Por exemplo, o Linux usa a extensão PAE automaticamente se for suportada pelo processador - PAE é até um pré-requisito para distribuições mais recentes, uma vez que também pode usar o bit NX . No Windows da Microsoft, no entanto, o PAE não é usado devido a problemas de compatibilidade com os drivers existentes, de modo que as versões de 32 bits do Windows são limitadas a 4 GiB de RAM.

Com a extensão x64 do conjunto de instruções de 64 bits , o IA-32 foi desenvolvido para uma arquitetura de 64 bits, em que o número de registros também foi duplicado. Ambos os submodos de 32 bits e 64 bits estão disponíveis no novo modo de operação, de modo que o software de 32 bits também pode se beneficiar do dobro do número de registros ( x32 ).

nomenclatura

arquitetura Descrição Sinônimos
32 bits - arquitetura x86 do 80386 . x86-32 i386, i686
64 bits - arquitetura x86 do Opteron . x86-64 amd64, x64

Intel Architecture 32-Bit ” ou “IA-32” para abreviar originalmente referia-se apenas à arquitetura x86 de 32 bits do 80386 e seus sucessores, porque naquela época eram todos processadores de 32 bits. A designação escolhida pela Intel só se torna problemática com a extensão x64 de 64 bits - porque ela faz parte do IA-32. Para uma distinção mais precisa, as designações x86-32 para a arquitetura x86 de 32 bits e x86-64 para a arquitetura x86 de 64 bits também podem ser encontradas retrospectivamente .

A arquitetura Itanium desenvolvida pela Intel e HP , também chamada de " Intel Architecture 64-Bit " ou "IA-64" para breve, não é uma arquitetura x86. No entanto, existe o risco de confusão com “x64”, a arquitetura x86 de 64 bits que faz parte do IA-32.

Modos de operação

Além do modo real , em que a memória principal convencional e a área de memória superior , que é o primeiro megabyte inferior da memória principal, podem ser endereçadas sem restrição via offset e segmento , compatível com o Intel-8086 de 16 bits , a arquitetura Intel de 32 bits, dois ou três modos operacionais adicionais:

  • Modo protegido , que pode endereçar continuamente (linearmente) até 4 GB de memória e garante proteção de memória do lado do hardware (por meio do gerenciamento de memória virtual do MMU ), que permite sistemas operacionais multitarefa / multiusuário com multitarefa preemptiva .
  • Modo de gerenciamento do sistema (SMM), que é usado para redução de energia e propriedades específicas do fabricante. O SMM é executado em uma memória principal separada para que os processos em execução e os sistemas operacionais não sejam afetados.
  • No caso de processadores x86 de 64 bits, o modo IA32e (Intel) ou o modo longo (AMD) são adicionados, que fornecem os dois submodos: modo de 64 bits e modo de compatibilidade . (Veja x64 # modos de operação .)

Como opção para o Modo Protegido (32 bits), há também o Modo Virtual 8086 , que pode executar um ou mais programas em modo real - isso era necessário e importante para a execução de programas compatíveis com MS-DOS em 32 bits sistemas operacionais para uma migração suave do DOS para sistemas operacionais mais modernos. Desde a mudança para 64 bits, o modo Virtual 8086 não desempenha mais um papel muito importante, uma vez que os programas compatíveis com MS-DOS são usados ​​relativamente pouco ou eles (têm que) ser totalmente emulados em sistemas operacionais de 64 bits.

Modo protegido: gerenciamento de memória virtual e proteção de memória

Gerenciamento de memória virtual

O novo gerenciamento de memória virtual é projetado principalmente para operação multitarefa ( modo protegido ). Usando a Unidade de Gerenciamento de Memória (MMU), vários programas na memória podem ser executados quase simultaneamente sem conflito. Para este propósito, cada programa é executado em um espaço de memória (virtual) no qual existe sozinho e, portanto, não pode ter conflitos de acesso à memória com outros programas, de modo que a proteção da memória seja alcançada (por exemplo, "O Programa A sobrescreve por engano uma variável na memória em o programa B "não pode mais ocorrer). A MMU consegue isso por meio de uma tabela ( TLB ) na qual o endereço físico real de um bloco de memória é anotado como o último endereço virtual localizado de todos os programas. A cada acesso (solicitação de memória, escrita ou leitura), de forma transparente para programas e programadores, ele é redirecionado para um endereço físico único. Outro efeito positivo é que a fragmentação da memória física não pode mais ocorrer. Com a tradução de endereços, a MMU pode apresentar quase qualquer memória física fragmentada ao programa como um bloco de memória virtual continuamente acessível. Este é um mecanismo eficaz, desde que o tamanho da memória física seja significativamente menor do que o espaço de endereço virtual (4 GB). Devido à queda contínua dos preços da memória RAM, esse não é mais o caso; o espaço da memória virtual não pode mais ocultar sempre a fragmentação da memória física, pois agora ele próprio pode estar muito fragmentado.

Tradução de endereço IA-32

Tradução de endereço virtual

A arquitetura IA-32 usa um endereço lógico segmentado de 48 bits , que consiste em 16 bits de seletor e 32 bits de deslocamento. A segmentação traduz o endereço lógico em um endereço linear de 32 bits e pode então ser traduzida em um endereço físico de 32 bits usando o mecanismo de paging . Se o sistema não usa paging, o endereço linear de 32 bits é o endereço físico.

Funções de proteção através do gerenciamento de memória virtual

A MMU contém quatro registros do sistema central GDTR ( Registro da Tabela do Descritor Global ), IDTR ( Registro da Tabela do Descritor de Interrupção ), LDTR ( Registro da Tabela do Descritor Local ) e TR ( Registro da Tarefa ). É assim que os mecanismos de proteção são implementados.

A arquitetura IA-32 contém as seguintes cinco funções de proteção para operação multitarefa / multiusuário:

  1. Verificação de tipo
  2. Limite de verificação
  3. Acesso aos dados
  4. Transferência de controle
  5. Verificação de instrução

Essas funções de proteção são implementadas com vários mecanismos de hardware.

Mais funções

Outras funções foram adicionadas nas seguintes gerações de CPU:

  • Os modelos do i486DX já possuem um coprocessador matemático integrado, e um cache também foi integrado ao chip (a versão econômica i486 SX foi fabricada com um coprocessador desativado). Além disso, a unidade de execução foi construída de acordo com o princípio da linha de montagem , chamada de pipeline do processador , que aumenta significativamente o rendimento da instrução.
  • Com o Pentium , uma segunda unidade de execução foi adicionada à arquitetura. Essas unidades de execução agora paralelas, chamadas de pipelines U e V , permitem a execução superescalar do programa por meio da execução fora de ordem do processador.
  • No Pentium MMX , foram adicionados comandos que processam vários dados inteiros ao mesmo tempo ( SIMD ) - isso é particularmente útil para dados multimídia. MMX significa Matrix Math Extensions” , mas também muitas vezes referido como Multi Media Extensions” , especialmente por marketing .
  • Com o Pentium III, os comandos SIMD foram expandidos para também poderem processar números de ponto flutuante ( Streaming SIMD Extensions / SSE ).
  • Começando com os modelos Prescott da série Xeon / Pentium 4, os processadores foram expandidos para incluir um modo de 64 bits ( Intel 64 , anteriormente também chamado de EM64T), que é muito semelhante ao modo AMD64 do Opteron e Athlon 64 - CPUs competitivas da AMD .

Veja também

Links da web