인텔 64와 AMD64의 차이점은 무엇입니까?


29

intel64와 amd64 아키텍처 사이에 차이점이 있는지 누군가 설명 할 수 있습니까?


3
IA64 = Intel / HP Itanium VLIW 아키텍처. AMD64는 표준 x86 명령어 세트의 AMD 개발 확장입니다.

6
마케팅. AMD는이를 개발 한 후 인텔에 라이센스를 부여했습니다. AMD는 Intel에서 x86을 라이센스하고, Intel은 AMD에서 x64를 라이센스하고 있습니다. 이렇게하면 발로 총을 쏠 때 전체 CPU 라인업을 판매 할 수있는 권리를 잃지 않고서도 상대방을 고소 할 수 없습니다.

1
x86-64 또는 IA64를 의미합니까? 이전은 AMD64와 동일하며 (문자 그대로 정확히 동일한 명령어 세트이거나 한 CPU 또는 다른 CPU에 대한 모든 응용 프로그램을 다시 컴파일해야 함) 후자는 완전히 다른 CPU 아키텍처입니다.
혁신적인

2
나는 x86-64를 의미한다. 인텔은 처음에는 IA-32e 및 EM64T라는 이름을 사용하여 최종적으로 구현을 위해 인텔 64에 정착했습니다.
Mayhem

답변:


26

내가 읽은 확장 메모리 64 비트 기술 (EM64T)은 인텔의 AMD AMD64 구현이며 Intel64와 AMD64의 차이점은 다음과 같습니다.

  • EM64T의 BSF 및 BSR 명령어는 소스가 0이고 피연산자 크기가 32 비트 인 경우 다르게 작동합니다. 프로세서는 영 플래그를 설정하고 대상의 상위 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 장치 DMA를 4GiB 이상의 메모리로 전송할 수 있습니다. EM64T 시스템은 바운스 버퍼를 사용해야하는데 속도가 느립니다.

  • SYSCALL 및 SYSRET는 EM64T의 IA-32e 모드 (호환 모드 아님)에서만 지원됩니다. SYSENTER 및 SYSEXIT는 두 모드에서 모두 지원됩니다.

  • 접두사가 0x66 (피연산자 크기) 인 니어 브랜치는 다르게 동작합니다. 한 유형의 CPU는 상위 32 비트 만 지우고 다른 유형은 상위 48 비트를 지 웁니다.


그 글을 어디서 읽었습니까?
Tamara Wijsman 2016 년

4
글쎄, 일부 포럼 / 블로그 + wikipedia ( en.wikipedia.org/wiki/EMT64#Intel_64 ). 또한 인텔과 AMD의 일부 매뉴얼을 살펴 보았습니다.
Mayhem

@Nubok : via 기술의 아키텍처 구현 (64 비트 버전)의 차이점을 추가하십시오  !
user2284570

IO-MMU는 큰 문제입니다. 이는 버퍼링을 위해 적은 양의 적은 메모리를 흡수해야한다는 것을 의미합니다 (64MB는 Linux의 현재 기본값). 인텔은 나중에 VT-d와 비슷한 것을 도입하여 성가신 제품 세분화에 사용했지만 코드의 안정성 (일부 경우 실리콘)은 기본적으로 Linux에서 원본으로 사용되지 않는 경향이 있습니다. 목적.
GreenReaper

8

에서 위키 백과의 86 페이지 는 읽을 수 있습니다

1999-2003 년에 AMD는이 32 비트 아키텍처를 64 비트로 확장하여 초기 문서에서 x86-64로, 나중에 AMD64로 언급했습니다. 인텔은 곧 IA-32e라는 이름으로 AMD의 아키텍처 확장을 채택했으며, 이후 EM64T와 인텔 64로 이름이 바뀌 었습니다.

다시 말해, 차별화 요소는 주로 마케팅입니다. 명령어 세트에 대한 Intel 및 AMD 고유의 확장이 있지만 사용자 공간에서 프로그램을 작성하는 한 일반적으로 차이점을 알 필요는 없습니다.


3
you don't generally need to know the difference잘못된 : 일반적인 지침에 사소한 차이는 매우 중요하다 bugs.chromium.org/p/nativeclient/issues/detail?id=2010
user2284570

4
잘못 : 일반 지시 사항에 약간의 차이조차도 매우 중요 합니다. 공정하기 위해서는 (1) 일반적으로 이러한 차이점을 알 필요 는 없습니다 . 분명히 중요한 경우가 있습니다. (2) 우리 대부분은 사용 가능한 모든 명령 경로를 보호해야하는 강화 된 샌드 박스를 작성하지 않습니다.
Eric W
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.