AMD64

Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa
Text document with red question mark.svg
Este artigo ou secção contém uma ou mais fontes no fim do texto, mas nenhuma é citada no corpo do artigo, o que compromete a confiabilidade das informações. (desde novembro de 2010)
Por favor, melhore este artigo introduzindo notas de rodapé citando as fontes, inserindo-as no corpo do texto quando necessário.
Ambox grammar.svg
Esta página ou secção precisa de correção ortográfico-gramatical.
Pode conter incorreções textuais, podendo ainda necessitar de melhoria em termos de vocabulário ou coesão, para atingir um nível de qualidade superior conforme o livro de estilo da Wikipédia. Se tem conhecimentos linguísticos, sinta-se à vontade para ajudar.

AMD64, x64 ou x86-64, em informática, é o nome genérico dado à família (arquitetura) de processadores baseados na tecnologia de 64 bit, utilizada pelos processadores da AMD e da Intel. É um superconjunto da arquitetura x86. Portanto, processadores x86-64 podem executar programas x86 (x86-80) de 32-bit ou 16-bit sem perder a velocidade ou compatibilidade, e apoiar novos programas escritos em um alargado conjunto de instruções, que inclui um espaço alocado de endereçamento de 64-bit e outras capacidades.

A arquitetura é chamada x64 por uma questão de similaridade com a arquitetura x86, e essa por sua vez é denominada assim pois 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 x86-64 foi desenhado pela empresa Advanced Micro Devices (AMD), que o renomeou AMD64. A primeira família de processadores para suportar a arquitetura foi a linha AMD K8. Esta foi a primeira vez que qualquer empresa, fora a Intel, fez significativas adições à arquitetura x86. A intel foi obrigada a seguir o exemplo, introduzindo modificações já no Pentium 4. A família de processadores NetBurst, inicialmente designada para IA-32 e EM64T e agora chamado Intel 64, é quase idêntica ao AMD64. x86-64 é compatível com códigos de 32 bits sem afetar o seu desempenho.

Por exemplo, os manuais dos colaboradores disponíveis da Intel na arquitetura IA-32 referem-se a IA-32 e IA-64. AMD licenciou seu projeto x86-64 à Intel, onde é introduzido no mercado sob o nome de Intel 64 (anteriormente EM64T). O projeto da AMD substituiu tentativas mais adiantadas por Intel de projetar suas próprias extensões x86-64, que tinham sido referidas como IA-64. Como Intel licencia à AMD o direito de usar a arquitetura x86 original (em cima de que x86-64 é baseado), estas companhias rivais confiam agora em si para o desenvolvimento 64-bit do processador. Isto conduziu a um exemplo da destruição mutuamente assegurada se uma ou outra companhia revoga sua licença respectiva. Se tal encenação ocorrer, AMD estaria desautorizada para produzir todos os processadores x86, e Intel seria autorizado já não produzir os processadores x86-64, forçando-a o de volta à arquitetura x86 de 32 bits agora-obsoleta. Os últimos processadores Intel manufacturado que não usaram o projeto AMD x86-64 eram versões adiantadas do Pentium 4 de núcleo Prescott, introduzido em fevereiro de 2004, e modelos Mobile da Intel núcleos introduzido até janeiro de 2006.

VIA Technologies, outro produtor de processadores x86, também incluídas instruções x86-64 no Isaiah, arquitetura utilizada no VIA Nano. Os termos x86-64 e x64 são usados frequentemente como termos vendedor-neutros em referência coletiva aos processadores x86-64 de toda a companhia. A especificação x86-64 é distinta da arquitetura de Intel Itanium (anteriormente IA-64), que não é compatível no nível nativo do grupo de instrução com as arquiteturas x86 ou o x86-64.

História[editar | editar código-fonte]

AMD64 foi criado como uma alternativa para Intel e a Hewlett Packard (HP) ter uma arquitetura IA-64 radical e diferente. Anunciado originalmente como "x86-64" em agosto 2000, a arquitetura foi posicionada por AMD do começo como uma maneira evolucionária de adicionar capacidades de computação 64-bit à arquitetura x86 existente, em oposição à da Intel de se criar uma arquitetura 64-bit inteiramente nova com o IA-64. O primeiro processador de AMD64-based, o Opteron(para servidores), foi liberado em abril 2003 e o Athlon 64 (para computadores de mesa - desktops) em setembro.

Características[editar | editar código-fonte]

A principal característica do AMD64 é a disponibilidade de registros 64-bit de uso geral, ou seja, Rax, rbx etc, operações de número inteiro 64-bit aritméticas e lógicas, e endereços virtuais 64-bit. Os desenhistas tiveram a oportunidade de fazer outras melhorias também. As alterações mais significativas são:

  • 64-bit inteiro capacidade de: Todos os registros de uso geral (GPRS) são expandidos a partir de 32 bits para 64 bits, e todas as operações aritméticas e lógicas, memória para registro e registro para memória de operações, etc, podem agora operar diretamente sobre 64-bit inteiros. Adições ao endereço de pilha estão sempre em 8 bytes, e ponteiros são 8 bytes de largura.
  • Registros adicionais: Além de aumentar o tamanho dos registros de uso geral, o número de chamada para fins gerais registos é aumentada de oito (ou seja, EAX, EBX, ECX, EDX, EBP, ESP, ESI, EDI) em x86-32 a 16 (isto é, Rax, rbx, rcx, RDX, RBP, RSP, rsi, IDI, R8, R9, R10, R11, R12, R13, R14, R15).É conseqüentemente possível manter umas variáveis mais locais nos registros um pouco do que na pilha, e deixar registos prender alcançou freqüentemente constantes; os argumentos para sub-rotinas pequenas e rápidas podem igualmente ser passados nos registos em maior medida. Entretanto, AMD64 ainda tem poucos registos do que muitos processadores comuns do RISC (que têm tipicamente 32-64 registros) ou VLIW-como máquinas tais como o IA-64 (que tem 128 registros).
  • Registos adicionais do MMX (SSE): Similarmente, o número de 128 registos do MMX do bocado (usados fluindo instruções de SIMD) é aumentado igualmente de 8 a 16.
  • Espaço de endereço virtual maior: Os modelos do processador atual que executam a arquitetura AMD64 podem endereçar TB até 256 (248 ou 281.474.976.710.656 bytes) do espaço de endereço virtual. Este limite pode ser aumentado nas execuções futuras a 16 EB (264 ou 18.446.744.073.709.551.616 bytes). Isto é comparado a apenas 4 GB (232 ou 4.294.967.296 bytes) para x86 de 32 bits. Isto significa que arquivos muito grandes podem ser operados pela cartografia de todo o arquivo para o processo o espaço de endereço (que por vezes é mais rápido do que trabalhar com o arquivo leitura / gravação chamadas), em vez de ter de mapear regiões do arquivo para dentro e fora do espaço de endereço.
  • Espaço de endereço físico maior: As execuções atuais da arquitetura AMD64 podem endereçar até 1 TB (240 ou 1.099.511.627.776 bytes) do RAM; a arquitetura permite estender esta ao PB 4 (252 ou 4.503.599.627.370.496 bytes) no futuro (limitado pelo formato da entrada de tabela da página). Na modalidade do legado, a extensão do endereço físico (PAE) é incluída, enquanto está em a maioria de processadores x86 de 32 bits atuais, permitindo o acesso a um máximo de 64 GB (236 ou 68.719.476.736 bytes).
  • Instrução ponteiro dados relativos acesso: As instruções podem agora referência os dados relativos à instrução ponteiro RIP (registo). Isto faz a posição o código independente, como é usado frequentemente em bibliotecas compartilhadas e em código carregados no tempo de execução, mais eficiente.
  • Instruções SSE: A original arquitetura AMD64 aprovados da Intel SSE e SSE2 como núcleo instruções. As instruções SSE3 foram adicionadas em abril 2005. SSE2 substitui x86 a instrução set precisão do bocado de s IEEE 80 com a escolha de uma ou outra matemática flutuante de 32 bits ou 64-bit de IEEE. Isto fornece as operações de vírgula flutuante compatíveis com muitos outros processadores centrais modernos. As instruções SSE e SSE2 foram estendidas igualmente para operar sobre os oito registos novos do MMX. SSE e SSE2 estão disponíveis na modalidade de 32 bits nos processadores x86 modernos;entretanto, se são usado em programas de 32 bits, aqueles programas trabalhará somente em sistemas com processadores que têm a característica. Esta não é uma edição em programas 64-bit, porque todos os processadores AMD64 têm SSE e SSE2, assim que usar as instruções SSE e SSE2 em vez das instruções x86 não reduz o jogo das máquinas em que os programas x64 podem ser funcionados. SSE e SSE2 são geralmente mais rápidos do que, e duplicam a maioria das características das instruções x86 tradicionais, de MMX, e de 3DNow!.
  • Não Executa-bit: A "NX" bit (63 bits da página tabela entrada) permite que o sistema operativo para especificar que páginas de espaço de endereço virtual podem conter códigos executáveis e que não pode. Uma tentativa para executar código a partir de uma página etiquetou o "não executar" irá resultar em uma violação de acesso à memória, semelhante a uma tentativa de escrever para uma memória ROM. Isto deve tornar mais difícil, para um código malicioso, assumir o controle do sistema através de ataques de "buffer overflow" ou "desmarcado tampão". A mesma funcionalidade está disponível em processadores x86 desde o 80286 como um atributo dos descritores de segmento, no entanto, isso só funciona em um segmento inteiro de uma vez. Segmentado tratar, desde há muito, considerado um modo de funcionamento obsoleto, e todos os sistemas operacionais no PC actual efeito contornar isso, a definição de todos os segmentos para um endereço base de 0 e um tamanho de 4 GB (4.294.967.296 bytes). AMD x86 foi o primeiro fornecedor a implementar família não-linear executar no modo de abordar.O recurso também está disponível no modo legado sobre processadores AMD64, e os recentes processadores Intel x86, quando PAE é utilizado.
  • Remoção das características mais velhos: Uma série de "sistema de programação" características da arquitectura x86 não são utilizados nos modernos sistemas operativos e não estão disponíveis em AMD64 em longas (64-bit e compatibilidade) modalidade. Estes incluem endereçamento segmentado (embora a FS e GS segmentos são mantidas em forma vestigial extra para utilização como base ponteiros para estruturas do sistema operacional), a tarefa estado mudar mecanismo e modo virtual 8086. Estas características fazem do curso continuem a ser totalmente implementado em "legacy mode", permitindo assim a correr estes processadores 32-bit e 16-bit sistemas operacionais sem modificação.

Detalhes do espaço de endereço virtual[editar | editar código-fonte]

Embora endereços virtuais são 64 bits de largura de 64 bits modo, os actuais implementações (e quaisquer fichas de ser conhecido no planeamento fases) não permitir que todo o espaço de endereço virtual 16 EB (18.446.744.073.709.551.616 bytes) a ser utilizado.A maioria dos sistemas operativos e aplicações que não necessitam de tal abordar um grande espaço para o futuro previsível (por exemplo, o Windows implementações AMD64 são apenas para preencher 16 TB (17.592.186.044.416 bytes), ou 44 bits' vale), de forma ampla implementação desses endereços virtuais simplesmente aumentar a complexidade e os custos de tradução de endereço, sem real benefício. AMD, por isso, decidiu que, nas primeiras implementações da arquitetura, apenas os 48 bits menos significativos de um endereço virtual seria efectivamente utilizado no endereço tradução (página tabela lookup). No entanto, 48 por 63 bits de qualquer endereço virtual deve ser cópias de 47 bits (em uma maneira similar a assinar extensão), ou o processador irá levantar uma exceção.Endereços conformes a esta regra são referidos como "forma canônica." Forma canônica executar endereços de 0 a 00007FFF FFFFFFFF »e, a partir FFFF8000» 00000000 através FFFFFFFF FFFFFFFF », para um total de 256 TB (281.474.976.710.656 bytes) de espaço utilizável endereço virtual.

Este "equívoco" permite uma importante característica para mais tarde escalabilidade para true 64-bit abordando: muitos sistemas operacionais (incluindo, mas não se limitando a, o Windows NT família) ter a maior meia-endereçado do espaço de endereçamento (denominado espaço do núcleo) para si mesmos e deixar a menor meia-endereçado (user space) para aplicação código de modo usuário empilhamentos, escombreiras, dados e outras regiões. O "endereço canônico" design garante que todos os AMD64 compatível execução tem, na verdade, duas metades de memória: a metade inferior começa a 00000000 e 00000000 » cresce para cima ", como endereço virtual mais bits se tornarem disponíveis, enquanto a maior metade é" encaixado " para o início do espaço de endereçamento e cresce para baixo. Além disso, fixa o conteúdo do endereço inutilizado bits impede seu uso pelo sistema operacional como bandeiras, privilégio marcadores, etc, que essa utilização pode tornar-se problemática quando a arquitetura é, de facto, alargada a 52, 56, 60 e 64 bits.

Atual 48-bit aplicação

AMD64-canonical--48-bit.svg

56-bit aplicação

AMD64-canonical--56-bit.svg

Full 64-bit aplicação

AMD64-canonical--64-bit.svg

(não foi desenhada à escala)

O modo de endereçamento de 64 bits ("modo longo") é um superconjunto de endereço físico extensões (PAE); por este motivo, página tamanhos podem ser de 4 KB (4.096 bytes), 2 MB (2.097.152 bytes), ou 1 GB (1073741824 bytes).No entanto, em vez dos três de nível de página tabela sistema utilizado pelos sistemas em modo PAE, os sistemas em execução no modo longo utilizar quatro níveis de página tabela: PAE's Page Directory Ponteiro-Quadro é prorrogado a partir de 4 inscrições para 512, e um adicional Page-Map Nível 4 Quadro é adicionado, contendo 512 entradas em 48 bits implementações.Em implementações proporcionando maior endereços virtuais, este último quadro quer crescer seria suficiente para acomodar as entradas para descrever toda a gama endereço, até um máximo teórico de 33.554.432 entradas para uma aplicação de 64 bits, ou ser mais ordenada por um novo mapeamento nível, tais como um PML5. Um mapeamento completo hierarquia de 4 KB (4.096 bytes) páginas para o conjunto de 48 bits espaço terá um pouco mais de 512 GB (549.755.813.888 bytes) de memória RAM (cerca de 0,196% dos 256 TB [281.474.976.710.656 bytes] espaço virtual).

Modos de operação[editar | editar código-fonte]

Modo de funcionamento Sistema operacional necessária Compilado-aplicação reconstruir exigido Endereço padrão tamanho Predefinição operando tamanho Registre extensões Típico GPR largura
Modo longo 64-bit modo OS 64-bit com o apoio Sim 64 32 Sim 64
Modo de Compatibilidade Não 32 32 Não 32
16 16 16
Legado Modo Modo Protegido Legado de 16 bits ou 32 bits OS Não 32 32 Não 32
16 16 16
Modo Virtual 8086 16 16 16
Modo Real Legacy 16-bit OS

Modo de funcionamento explicação[editar | editar código-fonte]

A arquitetura tem dois principais modos de funcionamento:

Modo longo

A arquitetura da primários destinados modo de operação, é uma combinação do processador nativo do modo de 64 bits e um combinado 32-bit e 16-bit o modo de compatibilidade. De acordo com um sistema operacional de 64 bits, 64 bits, 32 bits e 16 bits (ou 80.286) de modo protegido os pedidos podem ser executados.

Desde o ensino básico conjunto é o mesmo, quase não há perda de desempenho para executar código x86. Isto é diferente da Intel IA-64, onde as diferenças subjacentes no ISA significa que a execução de códigos de 32 bits deve ser feito quer em emulação de x86 (tornando o processo mais lento) ou com um núcleo dedicado x86. No entanto, sobre a plataforma x64, x86 de 32 bits aplicações podem ainda beneficiar de uma de 64 bits recompile, devido ao adicional de registos de 64 bits código, que um compilador pode usar para otimização.

Legado modo

O modo utilizado por 16 bits (modo protegido ou modo real) e sistemas operacionais de 32 bits. Neste modo, o processador atua apenas como um processador x86, e apenas de 16 bits ou 32 bits código pode ser executada. 64-bit programas não será executado.

Implementações x64 da AMD[editar | editar código-fonte]

Os seguintes processadores implementam a arquitetura AMD64:

  • AMD Athlon 64
  • AMD Athlon 64 X2
  • AMD Athlon 64 FX
  • AMD Opteron
  • AMD Turion 64
  • AMD Turion 64 X2
  • AMD Sempron ("Palermo" stepping E6 e todos "Manila" modelos)
  • AMD Phenom , muitas vezes seguido por X3 ou X4, para indicar o número de núcleos.
  • AMD Phenom II ,(45 nm) freqüentemente seguidos por X2, X3, X4 ou X6 para indicar o número de núcleos.

Referências