AMD64
Origem: Wikipédia, a enciclopédia livre.
AMD64, também conhecida como x86-64 é um superconjunto da arquitetura x86. Portanto, processadores x86-64 podem rodar programas x86 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 de endereçamento de 64-bit e outras capacidades.
O x86-64 foi desenhado por especificação Advanced Micro Devices (AMD), que já é renomeado AMD64. A primeira familia de processadores para suportar a arquitetura foi o AMD k8 de processadores. Esta foi a primeira vez que qualquer empresa, fora a Intel, fez significativas adições a arquitetura x86. A intel foi obrigada a seguir o exemplo, introduzindo modificados. NetBurst familia de processadores, inicialmente desegninada para IA-32e ou EM64T e agora chamado Intel 64 quase identico ao AMD64. x86-64 é compatível com códigos de 32 bits sem qualquer perda desempenho. Por exemplo, os manuais dos colaboradores disponíveis de Intel na arquitetura IA-32 referem IA-32 e IA-32e no tandem. AMD licenciou seu projeto x86-64 a Intel, onde é introduzido no mercado sob o nome de Intel 64 (anteriormente EM64T). AMD' o projeto de s substituiu umas tentativas mais adiantadas por Intel de projetar suas próprias extensões x86-64 que tinham sido referidas como IA-32e. Como Intel licencia AMD a direita usar a arquitetura x86 original (em cima de que AMD' s x86-64 é baseado), estas companhias rivais confia agora em se para o desenvolvimento 64-bit do processador. Isto conduziu a um exemplo da destruição mutuamente assegurada se uma ou outra companhia revog sua licença respectiva. Se tal encenação ocorrer, AMD estaria autorizado já não para produzir todos os processadores x86, e Intel seria autorizado já não produzir os processadores x86-64, forçando o de volta à arquitetura x86 de 32 bits agora-obsoleta. Os últimos processadores Intel manufacturado que não usaram AMD' o projeto de s x86-64 era versões adiantadas do " do Pentium 4 do desktop; Prescott" , introduzido em fevereiro 2004, e em Intel móvel retire o núcleo introduzido em janeiro 2006.
VIA Technologies, outro produtor de processadores x86, também incluídas instruções x86-64 em suas VIA Isaías arquitetura utilizada no VIA Nano. Os termos x86-64 e x64 são usados frequentemente como termos vendedor-neutros referir coletivamente os 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 jogo de instrução com as arquiteturas x86 ou o x86-64.
Índice |
[editar] História
AMD64 foi criado como uma alternativa para Intel e a Hewlett Packard (HP) ter uma arquitetura IA-64 radical e diferente. Anunciado original como o "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.
[editar] Características
A principal característica do AMD64 é a disponibilidade de 64-bit registos de uso geral, ou seja, Rax, rbx etc, 64-bit inteiro operações aritméticas e lógicas, e 64-bit endereços virtuais. 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 registos 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 registo e registo para memória operações, etc, podem agora operar diretamente sobre 64-bit inteiros. Empurrões e aparece na pilha estão sempre em 8-byte largos, e ponteiros são 8 bytes de largura.
- Adicional registos: Além de aumentar o tamanho dos registos 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 registos 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 registos) ou VLIW-como máquinas tais como o IA-64 (que tem 128 registos).
- 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 x87 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 x87 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 x87 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 um read-only página. Isto deve tornar mais difícil para um código malicioso para assumir o controlo do sistema através de "saturação de buffer" ou "desmarcado tampão" ataques. A mesma funcionalidade está disponível em processadores x86 desde a 80.286 como um atributo do segmento descritores, 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.
[editar] Detalhes do espaço de endereço virtual
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 kernel) 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 | 56-bit aplicação | Full 64-bit aplicação |
| (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).
[editar] Modos de operação
| 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 | |
|---|---|---|---|---|---|---|---|
| Long modo | 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 | ||||||
[editar] Modo de funcionamento explicação
A arquitetura tem dois principais modos de funcionamento:
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 executado.
Desde o ensino básico conjunto é o mesmo, quase não há pena 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.
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.
[editar] AMD64 Implementações
Os seguintes processadores implementar 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 X3 ou X4 para indicar o número de núcleos.
[editar] Referências
- x86-64. Disponível em <http://en.wikipedia.org/wiki/X86-64>. Acesso em 14 jun 2009.
- x86-64 technology white paper. Advanced Micro Devices, Inc. Disponível em <http://www.amd.com/br-pt/Processors/TechnicalResources/0,,30_182_739_7203,00.html>. Acesso em 24 dez 2006.
- AMD eighth-generation processor architecture. Advanced Micro Devices, Inc. Disponível em <http://www.amd.com/br-pt/Processors/TechnicalResources/0,,30_182_739_7203,00.html>. Acesso em 24 dez 2006.
- AMD64 architecture programmer's manual volume 1: application programming. <http://www.amd.com/us-en/Processors/TechnicalResources/0,,30_182_739_7044,00.html>. Acesso em 24 dez 2006.
- AMD64 architecture programmer's manual volume 2: system programming. <http://www.amd.com/us-en/Processors/TechnicalResources/0,,30_182_739_7044,00.html>. Acesso em 24 dez 2006.
| Este artigo é um esboço sobre Informática. Você pode ajudar a Wikipédia expandindo-o. |

