Qual è la differenza tra Intel 64 e AMD64?


29

Qualcuno può spiegare se c'è qualche differenza tra le architetture intel64 e amd64?


3
IA64 = architettura Intel / HP Itanium VLIW. AMD64 è l'estensione sviluppata da AMD del set di istruzioni x86 standard.

6
Marketing. AMD lo sviluppò, quindi lo concesse in licenza a Intel. AMD sta concedendo una licenza x86 da Intel e Intel sta concedendo una licenza x64 da AMD. Ciò garantisce che nessuno dei due possa fare causa all'altro senza perdere i diritti di vendita dell'intera gamma di CPU, poiché si sparerebbero ai piedi.

1
Intendi x86-64 o IA64? La prima è la stessa AMD64 (letteralmente esatto stesso set di istruzioni, oppure si avrebbe bisogno di ri-compilare tutte le domande di una CPU o l'altro), e il secondo è un completamente architettura della CPU differente.
Breakthrough

2
Intendo x86-64. Inizialmente Intel ha usato i nomi IA-32e ed EM64T prima di optare per Intel 64 per la loro implementazione.
Caos

Risposte:


26

Da quello che ho letto Extended Memory 64-bit Technology (EM64T) è l'implementazione di Intel AMD64 di AMD e le differenze tra Intel64 e AMD64 sono:

  • Le istruzioni BSF e BSR di EM64T agiscono diversamente quando l'origine è 0 e la dimensione dell'operando è 32 bit. Il processore imposta il flag zero e lascia indefiniti i 32 bit superiori della destinazione.

  • AMD64 supporta 3DNow! Istruzioni. Ciò include il prefetch con il codice operativo 0x0F 0x0D e PREFETCHW, utili per nascondere la latenza della memoria.

  • EM64T non ha la possibilità di salvare e ripristinare una versione ridotta (e quindi più veloce) dello stato in virgola mobile (che comprende le istruzioni FXSAVE e FXRSTOR).

  • EM64T manca di alcuni registri specifici del modello considerati architetturali rispetto a AMD64. Questi includono SYSCFG, TOP_MEM e TOP_MEM2.

  • EM64T supporta l'aggiornamento del microcodice come nella modalità a 32 bit, mentre i processori AMD64 utilizzano un diverso formato di aggiornamento del microcodice e controllano gli MSR.

  • Le istruzioni CPUID di EM64T sono molto specifiche del fornitore, come è normale per i processori in stile x86.

  • EM64T supporta le istruzioni MONITOR e MWAIT, utilizzate dai sistemi operativi per gestire meglio l'hyper-threading.

  • I sistemi AMD64 consentono l'uso dell'apertura AGP come IO-MMU. I sistemi operativi possono trarne vantaggio per consentire alla normale memoria DMA dei dispositivi PCI di superare i 4 GiB. I sistemi EM64T richiedono l'uso di buffer di rimbalzo, che sono più lenti.

  • SYSCALL e SYSRET sono supportati anche in modalità IA-32e (non in modalità compatibilità) su EM64T. SYSENTER e SYSEXIT sono supportati in entrambe le modalità.

  • I rami vicini con il prefisso 0 × 66 (dimensione dell'operando) si comportano diversamente. Un tipo di CPU cancella solo i primi 32 bit, mentre l'altro tipo cancella i primi 48 bit.


Da dove hai letto quel testo?
Tamara Wijsman,

4
Bene, alcuni forum / blog + wikipedia ( en.wikipedia.org/wiki/EMT64#Intel_64 ). Inoltre ho guardato alcuni manuali di Intel e AMD.
Caos

@Nubok: aggiungi la differenza per l'implementazione dell'architettura tramite le tecnologie (ovviamente versione a 64 bit)  !
user2284570

L'IO-MMU è un grosso problema: mancare significa che devi assorbire una quantità non banale di memoria insufficiente per il buffering (64 MB è l'attuale impostazione predefinita su Linux). Intel in seguito introdusse qualcosa di simile a VT-d e lo usò per un fastidioso livello di segmentazione del prodotto - tuttavia l'affidabilità del codice (e in alcuni casi il silicio) ha teso a non essere utilizzato di default su Linux per l'originale scopi.
GreenReaper

8

Alla pagina x86 di Wikipedia puoi leggere

Nel 1999-2003, AMD ha esteso questa architettura a 32 bit a 64 bit e l'ha definita come x86-64 nei primi documenti e successivamente come AMD64. Intel ha presto adottato le estensioni architettoniche di AMD con il nome IA-32e che è stato successivamente ribattezzato EM64T e infine Intel 64.

In altre parole, il differenziatore è principalmente marketing. Esistono estensioni specifiche per Intel e AMD nel set di istruzioni, ma finché si scrivono programmi nello spazio utente, in genere non è necessario conoscere la differenza.


3
you don't generally need to know the differenceSbagliato: anche una piccola differenza nelle istruzioni generiche è molto importante bugs.chromium.org/p/nativeclient/issues/detail?id=2010
user2284570

4
Sbagliato: anche una minima differenza sulle istruzioni generiche è molto importante Per essere onesti, (1), ha detto che in genere non è necessario conoscere queste differenze. Ovviamente ci sono casi specifici in cui può importare. (2) la maggior parte di noi non sta scrivendo un sandbox temprato che deve proteggere tutti i percorsi di istruzione disponibili.
Eric W
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.