
intel64와 amd64 아키텍처 사이에 차이점이 있는지 설명할 수 있는 사람이 있습니까?
답변1
내가 읽은 바에 따르면 확장 메모리 64비트 기술(EM64T)은 Intel의 AMD AMD64 구현이며 Intel64와 AMD64의 차이점은 다음과 같습니다.
EM64T의 BSF 및 BSR 명령어는 소스가 0이고 피연산자 크기가 32비트일 때 다르게 작동합니다. 프로세서는 0 플래그를 설정하고 대상의 상위 32비트를 정의되지 않은 상태로 둡니다.
AMD64는 3DNow를 지원합니다! 지침. 여기에는 메모리 대기 시간을 숨기는 데 유용한 opcode 0x0F 0x0D 및 PREFETCHW를 사용한 프리페치가 포함됩니다.
EM64T에는 부동 소수점 상태의 축소된(따라서 더 빠른) 버전을 저장하고 복원하는 기능이 없습니다(FXSAVE 및 FXRSTOR 명령 포함).
EM64T에는 AMD64 아키텍처로 간주되는 일부 모델별 레지스터가 없습니다. 여기에는 SYSCFG, TOP_MEM 및 TOP_MEM2가 포함됩니다.
EM64T는 32비트 모드에서처럼 마이크로코드 업데이트를 지원하는 반면, AMD64 프로세서는 다른 마이크로코드 업데이트 형식을 사용하고 MSR을 제어합니다.
EM64T의 CPUID 명령은 x86 스타일 프로세서의 경우와 마찬가지로 공급업체별로 매우 다릅니다.
EM64T는 하이퍼스레딩을 더 잘 처리하기 위해 운영 체제에서 사용되는 MONITOR 및 MWAIT 명령을 지원합니다.
AMD64 시스템에서는 AGP 조리개를 IO-MMU로 사용할 수 있습니다. 운영 체제는 이를 활용하여 일반 PCI 장치를 4GiB 이상의 메모리에 DMA할 수 있습니다. EM64T 시스템에서는 속도가 느린 바운스 버퍼를 사용해야 합니다.
SYSCALL 및 SYSRET은 EM64T의 IA-32e 모드(호환 모드 아님)에서만 지원됩니다. SYSENTER 및 SYSEXIT는 두 모드 모두에서 지원됩니다.
0×66(피연산자 크기) 접두사가 있는 근처 분기는 다르게 동작합니다. 한 유형의 CPU는 상위 32비트만 지우고 다른 유형은 상위 48비트를 지웁니다.
답변2
~에Wikipedia의 x86 페이지당신은 읽을 수있다
1999년부터 2003년까지 AMD는 이 32비트 아키텍처를 64비트로 확장하여 초기 문서에서는 x86-64로 언급했고 이후에는 AMD64로 언급했습니다. Intel은 곧 IA-32e라는 이름으로 AMD의 아키텍처 확장을 채택했으며 나중에 EM64T로 이름이 바뀌고 마침내 Intel 64로 이름이 변경되었습니다.
즉, 차별화 요소는 주로 마케팅입니다. 명령 세트에는 Intel 및 AMD 전용 확장이 있지만 사용자 공간에서 프로그램을 작성하는 한 일반적으로 차이점을 알 필요는 없습니다.