공부/JUN STUDY

x86-64 ISA(Instruction Set Architecture)의 여러가지 이름 (Intel64, IA-32e, EM64T, amd64 이거 다 같은거다)

JUNFUTURE 2022. 3. 30. 20:54

드림핵 강의에 STAGE 1에 다음과 같은 문구가 등장한다.

 

x86-64는 Intel64, IA-32e, EM64T 또는 amd64라고 불립니다.

이렇게 많은 이명을 갖게 된 이유는 개발 역사가 복잡하기 때문입니다.

 

해당 내용을 요약해보고자한다.

 

0. 인텔은 32비트 ISA를 굉장히 잘 만들었음.

1. 인텔은 64비트 ISA를 개발했는데, 이게 잘 안됐음.

2. 그래서 AMD한테 사실상 넘겨줬는데, AMD가 이를 응용해서 넘 좋은 64비트 ISA를 만듬

3. 그래서 인텔은 다시 이걸 이용해서 ISA를 만듬. 이게 x86-64임.

 

아래는 드림핵의 본문이다.

 

64비트 아키텍처 개발의 필요성을 느낀 인텔은 2001년 경에 64비트 아키텍처인 IA-64를 발표하고, 이를 이용하는 아이테니움 CPU를 출시했습니다.

 

그러나 아이테니움은 당시에 존재하던 경쟁사의 CPU들에 비해서 성능상으로 뛰어나지 못했으며, 기존의 x86 아키텍처와 호환되지 않는다는 치명적인 단점이 있었습니다.

 

=> ISA는 기계어(ex. 0101011101...)로된 명령어(instruction)를 어떻게 해석할지(ex. add a1, a2)에 대한 규칙이다.

=> ISA를 새롭게 개발하면 이를 해석하고 해당 명령어를 다룰 수 있는 CPU도 새로 개발하는 것이 필요하다.

=> 각 ISA마다 이를 해석하기위한 고유한 CPU가 필요하다. => 새로운 ISA가 등장했다? 새로운 CPU가 등장해야한다.

 

AMD가 x86을 기반으로 64비트 아키텍처를 개발할 수 있었던 것은 인텔과 AMD가 서로의 기술에 대한 라이센스 공유 협약을 맺었기 때문인데, 자사의 기술을 응용한 x86-64가 시장에서 성공하는 것을 본 인텔은 이를 다시 차용해서 Intel64, IA-32e, EM64T라고 이름붙였습니다.

 

=> 라이센스 공유를 한거는 사실상 intel은 64비트 ISA 야 우리는 못하겠다 너네 해볼래? 하고 넘겨준거다.

 

그래서 실제로 이 둘은 거의 같은 아키텍처입니다. x86은 인텔의 것이고, 이를 64비트로 확장한 기술은 AMD의 것이므로 서로 이득이 되는 교환이었다고 볼 수 있을 것 같습니다.

 

=> x86은 인텔에서 개발한 32비트 ISA이다.

=> 해당 ISA를 나타낼때 가장많이 사용하는 표현은 x86-64 / AMD64이다. 암튼 이거 두개 같음. (ARM은 또 다른 ISA이다.)