드림핵 강의에 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이다.)
'공부 > JUN STUDY' 카테고리의 다른 글
BSS vs 데이터 vs rodata (전역영역 이름 구분하기) (0) | 2022.03.30 |
---|---|
메모리 vs 레지스터 (메모리가 있는데 레지스터 왜 또 쓸까?) (0) | 2022.03.30 |
컴퓨터의 주소표현 (포인터의 크기 & 표현가능한 메모리 주소가 크면 좋은 이유) (0) | 2022.03.30 |
WORD에 대해 (CPU가 한번에 다루는 데이터의 단위란?) (1) | 2022.03.30 |
탐색을 위한 해시 (해시가 값 검색을 위해 사용되는 원리) (0) | 2021.11.11 |