AMD64

De Viquipèdia
Dreceres ràpides: navegació, cerca

AMD64, inicialment coneguda com a x86-64, és una arquitectura basada en l'extensió del conjunt d'instruccions x86 per a manejar adreces de 64 bits realitzada per AMD. A més d'una simple extensió contempla millores addicionals com duplicar el nombre i la grandària dels registres d'ús general i d'instruccions SSE.

El primer processador amb suport per a aquest conjunt d'instruccions va ser el Opteron, llançat a l'abril de 2003. Posteriorment ha estat implementat en múltiples variants del Athlon 64 i del Pentium 4 de Intel, en aquest últim cas sota una versió de Intel anomenada EM64T.

Descripció de l'arquitectura[modifica | modifica el codi]

El conjunt d'instruccions del AMD x86-64 (renombrat posteriorment com AMD64) és una extensió directa de l'arquitectura del x86 a una arquitectura de 64 bits, motivat pel fet que els 4GB de memòria que són direccionables directament per una CPU de 32 bits ja no és suficient per a totes les aplicacions. Alguns dels canvis:

Nous registres. El nombre de registres de propòsit general s'ha incrementat de 8 en els processadors x86-32 a 16, i la grandària de tots aquests registres s'ha incrementat de 32 bits a 64 bits. Addicionalment, el nombre de registres MMX de 128 bits (usats per a les instruccions esteses SIMD) s'ha incrementat de 8 a 16. Els registres addicionals incrementen el rendiment.

Espai d'adreces major. A causa de l'arquitectura de 64 bits, l'arquitectura AMD64 pot direccionar fins a 18 exabytes de memòria. Això, comparat amb els 4GB del x86-32, dels quals només la meitat està disponible per a aplicacions en la majoria de les versions de Microsoft Windows, el sistema operatiu dominant en entorns domèstics. Les implementacions futures de l'arquitectura del AMD64 pot proporcionar fins a 2 exabytes de memòria disponible. Si la paginació de memòria s'utilitza correctament, els sistemes operatius de 32 bits podrien tenir accés a algunes de les extensions d'adreça físiques sense haver de realitzar l'execució en manera llarga (long). Encara que la memòria virtual de tots els programes en la manera de 32 bits està limitada a 4 GB.

Crides al sistema més ràpides. A causa del fet que la segmentació no està suportada en la manera de 64 bits, les cridades al sistema no tenen les latències associades amb emmagatzemar i recuperar la informació de segmentació ni han de realitzar les comprovacions necessàries de protecció a nivell de segmentació. Per tant, AMD ha introduït un nou interfície de cridades al sistema, al que s'accedeix utilitzant solament la instrucció "SYSCALL". Encara que els sistemes operatius encara poden utilitzar el sistema d'interrupcions per a les cridades al sistema, en la manera de 64 bits utilitzar "SYSCALL" és més ràpid.

Instruccions SSE. L'arquitectura AMD 64 inclou les extensions de Intel SSE i SSE2, les últimes cpus inclouen SSE3 també. També estan suportades les instruccions del x86 i MMX.

Bit NX. El bit NX és una característica del processador que permet al sistema operatiu prohibir l'execució del codi en àrea de dades, millorant la seguretat. Aquesta característiques està disponible en les maneres de 32 i 64 bits, i està suportada per Linux, Solaris, Windows XP SP2, Windows Server 2003 SP1.

Maneres de funcionament[modifica | modifica el codi]

Mode de funcionament Requerit pel sistema Operatiu És necessària la recompilació de l'aplicació Grandària per defecte de l'adreçament Grandària per defecte dels operands Extensions del registre Grandària típica del Registre de Propòsit General
Mode llarga Mode 64 bits SOTA nous de 64 bits 64 32 64
Mode de
compatibilitat
no 32 no 32
16 16 16
Mode heretat Mode protegit SOTA de 32 bit heretats no 32 32 no 32
16 16
Manera 8086 virtual 16 16 16
Mode real SOTA de 16 bit heretats

Explicació del mode de funcionament[modifica | modifica el codi]

Hi ha dos modes primaris d'operació per a aquesta arquitectura:

Mode Llarg 
És la manera d'operació principal previst en l'arquitectura; és una combinació del mode de 64 bits nadiu del processador i un mode de 32 bits per a la compatibilitat. També abandona algunes de les característiques no desenvolupades o menys utilitzades del 80386. S'utilitza pels sistemes operatius de 64 bits. Entre els que donen suport a aquest mode hi ha Linux, alguns BSDs, Solaris 10, Windows XP Professional (edició x64) i Windows Vista (edició x64)
Atès que el conjunt d'instruccions és el mateix, no hi ha una penalització important en l'execució del codi x86. Això no succeïx en l'arquitectura de Intel IA-64, on les diferències en el ISA subjacent impliquen que l'execució de codi de 32 bits equival a utilitzar un processador completament diferent. En tot cas, en AMD 64, les aplicacions de 32 bits del x86 podrien encara beneficiar-se d'una recompilación a 64 bits. Els registres addicionals disponibles en el codi de 64 bits, poden ser utilitzats per un compilador d'alt nivell per a l'optimització.
Usant el mode llarg, un sistema operatiu de 64 bits pot executar aplicacions de 32 bits i 64 bits simultàniament. També un x86-64 inclou un suport nadiu per a executar les aplicacions de 16 bits del x86. Microsoft ha exclòs explícitament el suport per a aplicacions de 16 bits en l'edició x64 de Windows XP Professional a causa dels problemes d'aconseguir que el codi de 16 bits del x86 pugui funcionar amb el seu emulador WoW64.
Mode heretat 
el mode utilitzat pels sistemes operatius de 16 bits, com MS-DOS, i els sistemes operatius de 32 bits, com Windows XP. En aquest mode, només es pot executar codi de 16 bits o de 32 bits. Els programes de 64 bits (com el programa d'instal·lació GUI per a Windows XP Professional x64 i Windows Server 2003 x64) no s'executaran.

Estudi de mercat[modifica | modifica el codi]

AMD64 representa un canvi amb el passat de AMD el comportament del qual era seguir els estàndards de Intel, encara que manté els comportaments anteriors de Intel estenent l'arquitectura del x86, des dels 16 bits 8086 fins als 32 bits 80386, sempre sense eliminar compatibilitat cap enrere.

L'arquitectura del AMD64 amplia l'arquitectura de 32 bits del x86 (IA-32) afegint registres de 64 bits, amb modes de compatibilitat total amb 32 bits i 16 bits per a programari ja existent. Fins i tot el mode de 64 bits permet compatibilitat cap enrere, facilitant a les eines del x86, com els compiladors ser modificats a l'arquitectura AMD64 amb un esforç mínim. L'arquitectura del AMD64 disposa de característiques com el bit NX.

Implementacions[modifica | modifica el codi]

Els processadors següents implementen l'arquitectura AMD64:

Enllaços externs[modifica | modifica el codi]

Vegeu també[modifica | modifica el codi]