Czy ktoś może wyjaśnić, czy istnieje jakaś różnica między architekturami intel64 i amd64?
64-bit
cpu-architecture
Okaleczenie
źródło
źródło
Odpowiedzi:
Z tego co przeczytałem Rozszerzona technologia pamięci 64-bitowa (EM64T) to implementacja AMD AMD64 AMD. Różnice między Intel64 i AMD64 są następujące:
Instrukcje BSF i BSR EM64T działają inaczej, gdy źródłem jest 0, a wielkość argumentu to 32 bity. Procesor ustawia flagę zerową i pozostawia niezdefiniowane górne 32 bity miejsca docelowego.
AMD64 obsługuje 3DNow! instrukcje. Obejmuje to pobieranie wstępne z kodem operacji 0x0F 0x0D i PREFETCHW, które są przydatne do ukrywania opóźnień pamięci.
EM64T nie ma możliwości zapisania i przywrócenia zmniejszonej (a tym samym szybszej) wersji stanu zmiennoprzecinkowego (obejmującej instrukcje FXSAVE i FXRSTOR).
EM64T nie ma niektórych rejestrów specyficznych dla modelu, które są uważane za architektoniczne dla AMD64. Należą do nich SYSCFG, TOP_MEM i TOP_MEM2.
EM64T obsługuje aktualizację mikrokodu, tak jak w trybie 32-bitowym, podczas gdy procesory AMD64 używają innego formatu aktualizacji mikrokodu i kontrolują MSR.
Instrukcja CPUID EM64T jest bardzo specyficzna dla dostawcy, co jest normalne w przypadku procesorów w stylu x86.
EM64T obsługuje instrukcje MONITOR i MWAIT, używane przez systemy operacyjne do lepszego radzenia sobie z Hyper-Threading.
Systemy AMD64 pozwalają na użycie otworu AGP jako IO-MMU. Systemy operacyjne mogą to wykorzystać, aby pozwolić zwykłym urządzeniom PCI na DMA do pamięci powyżej 4 GiB. Systemy EM64T wymagają użycia buforów odbijających, które są wolniejsze.
SYSCALL i SYSRET są również obsługiwane tylko w trybie IA-32e (nie w trybie zgodności) na EM64T. SYSENTER i SYSEXIT są obsługiwane w obu trybach.
W pobliżu gałęzi z prefiksem 0 × 66 (rozmiar argumentu) zachowują się inaczej. Jeden typ procesora usuwa tylko górne 32 bity, podczas gdy drugi typ usuwa 48 górnych bitów.
źródło
Na stronie Wikipedii x86 możesz przeczytać
Innymi słowy, wyróżnikiem jest głównie marketing. Istnieją pewne rozszerzenia specyficzne dla Intel i AMD, ale dopóki piszesz programy w przestrzeni użytkownika, zazwyczaj nie musisz znać różnicy.
źródło
you don't generally need to know the difference
Źle: nawet niewielka różnica w ogólnych instrukcjach to bardzo ważne błędy. Chromium.org/p/nativeclient/issues/detail?id=2010