전공/시스템 프로그래밍

[시스템 프로그래밍 2-1] X86아키텍쳐 amd64와 ARM 비교(X86 Processor Architecture)

뜨거운 개발자 2023. 3. 19. 21:47

X86 아키텍쳐

X86 아키텍쳐는 인텔이 1978년에 개발한 인텔 8086에 적용된 아키텍쳐이다.

이 아키텍쳐는 8086에 적용된 아키텍쳐만 포함하는게 아니라 그 호환 후속작 프로세서들도 포함한다.

이 아키텍쳐는 32비트의 대표 프로세서여서 32비트 아키텍쳐라고도 불리지만 X86이라고 표기하는 이유는 이후 출시한 아키텍쳐들이 전부 8086 명령어 세트를 기반으로 확장 시켰기 때문이다.

AMD 64

AMD64란, AMD가 1999년 발표한 x86의 64비트 확장인 아키텍쳐이다. 현대 컴퓨터는 대다수 64비트이고 우리가 알고있는 대부분의 컴퓨터는 이 표준을 따르고 있다.

표준 명칭은 AMD64 이지만 같은 이름으로는 X86-64, x64, Intel64 등의 이름으로도 불린다.

등장 배경

인텔의 경쟁사로는 AMD라는 회사가 있다. 지금은 많이 발전해서 intel과 비교 대상으로 많이 떠올리지만, 사실 32비트 시절에는 인텔이 압도적인 기술력을 가지고 있었다.

다만 컴퓨터가 32bit에서 64bit로 넘어가는 과정에서 intel은 이전의 X86과 호환성이 없는 단절적 이행을 생각하고 있었다. 이 생각이 인텔의 큰 실수였다. 이 과정에서 인텔의 발전이 더뎌져서 AMD에게 많은 기술력을 따라잡혀서 우리는 이제 CPU를 고를 때 intel과 AMD RYZEN과 비교해서 고를만큼 좋아졌다.

특징

  • 레지스터 크기가 32비트에서 64비트로 확장 되었다.
  • x86-32의 기존 8개 레지스터인 EAX, EBX, ECX, EDX, ESP, EBP, ESI, EDI는 특수 기능이 할당되어 있었기 때문에, 전용과 범용 레지스터 사이의 기능을 가지고 있었다. x86-64에는 R8-R15 레지스터 8개가 추가되어 범용 레지스터가 16개가 되었다.
  • 가상 메모리 공간은 48비트(256TiB), 물리 메모리 공간은 40비트(1TiB)로 확장되었다. 프로그램 카운터가 64비트임에도 불구하고 메모리공간에 제약을 두는 이유는 메모리 포인터 숫자가 클 경우 페이지 테이블의 오버헤드가 커지기 때문에 굳이 너무 값을 높게 잡을 필요가 없기 때문이다. AMD64가 처음 등장할 당시에는 48/40비트였고 1TB라는 메모리는 매우 큰 용량이였으나 2021년 표준은 가상 64비트(16EiB), 물리 52비트(4PiB)로 확장되었다.

ARM(AArch64)

ARM(Acorn RISC Machine)

ARM은 RISC철학에 따라 엄격하게 저전력 고효율로 설계된 CPU였기 때문에 고효율은 맞지만 고성능을 의미하지 않았다. 다라서 인베디드 기기에 많이 사용되는 RISC 프로세서이다. 저전력을 사용하도록 설계되었기 때문에 모바일 시장과 싱글보드 컴퓨터(개인용 컴퓨터)에서 뚜렷한 강세가 있다. (전력 효율이 너무 좋다.)

역사

1990년대 초부터 x86/MIPS/PowerPC 등과 같은 고성능을 지향했던 경쟁 업체들과는 다르게 일찌감치 저전력/고효율을 목표로 한 기술 시장에 뛰어들었다. 현재 ARM 사의 CPU가 저전력 고효율의 대명사가 된 이유는 이러한 수십 년 전의 결정에 기인한 바가 크다.

1990년 당시 대세였던 개발과 생산, 판매를 동시에 하는 IDM 업체의 틀을 벗어나서 훨씬 모험적이었던 CPU 설계를 파는 사업 모델을 채택하였다.

그 이후로 IT 산업의 대세가 단일 칩에 시스템의 기능을 집적하는 SoC(System on a Chip)로 방향을 잡으면서 각 SoC 제작 업체들은 그에 적합한 CPU 설계를 찾게 되었고, ARM의 사업 모델이 그러한 수요에 정확히 부응하면서 ARM의 사업은 확대일로에 들어서게 되었으며, 결국 2010년도 이후로 SoC의 끝판왕이라고 할 수 있는 스마트폰용 AP 시장이 개화하면서 SoC 업계에서의 주도적인 지위를 가지고 있었던 ARM 사의 CPU 제품이 결정적인 주도권을 쥐는 계기가 되었다.

명령어 세트

약간 변형된 RISC 명령어 구조로 1985년에 처음 개발되었다. 즉 의외로 초기 RISC 개발사와 역사를 같이 할 정도로 오래된 구조이다. 대체로 RISC와 유사하지만 ARM 고유 특성이 따로 있다.

사실 ARM CPU의 특징을 간단히 말하면 오래걸리는 복잡한 명령을 수행하는 대신 빠른 명령을 여러번 실행하는 것이다.

성능

업계에서의 ARM 프로세서의 성능에 대한 평가는 전통적으로 전력당 성능비는 엄청난데 성능 자체는 별 볼일 없는 CPU였다. (물론 현재도 x86에 비교하면 크게 다르지 않은 기조이다.)

AMD VS ARM

처음 ARM이 출시되었던 1980년대 중반 시점에서는 양 제품은 PC 시장을 타겟으로 경쟁하였지만 이 시기의 경쟁은 알려진 바와 같이 x86의 완승으로 끝났다.

이후 ARM은 PC를 제외한 SoC산업이 주요군이 되어서 차지하는 영역이 아에 달라지는 줄 알았으나 ARM 제품들이 급격하게 성능이 좋아져서 컴퓨터에도 ARM이 차지하는 입지가 넓어졌다. 이미 모바일 시장은 ARM이 다 차지해버렸기 때문에 intel입장에서는 상당히 초조해진 상태일 것이다.

또한 2021년 기준으로 애플이 x86 기반 맥을 버리고 ARM 기반 맥으로 완전히 이주하기 시작함에 따라 본격적으로 AMD64 진영과 ARM 진영간의 경쟁이 본격적으로 커졌다.

AMD64가 ARM이 차지하고 있는 시장에 들어오지도 못하는 상황에 반해 AMD64가 차지하고 있는 시장들을 ARM쪽에서 들어오고 있다는 점으로 인해 AMD64 진영들이 긴장할 수 밖에 없는 상태다. 결정적으로 첫 애플 실리콘맥에 쓰인 M1칩의 임팩트가 워낙 높아서 애플외 기업들이 독자적인 ARM칩을 개발해서 컴퓨터에 사용할거라고 선언함에 따라 인텔과 AMD에 대항할 경쟁자들이 많이 생긴건 물론 고객들을 서서히 잃을 수 밖에 없는 상황이 생기고 있다.

x86은 오로지 인텔, AMD 외엔 컴퓨터를 만들 수 없지만 ARM은 타회사는 물론 독자적으로 개발한 칩으로 컴퓨터를 만들 수 있는 여지가 생겼기에 x86 소유자인 인텔이 무척 불안하고 긴장할 수 밖에 없는 상황이다. 수많은 서버를 가지고 있는 아마존부터 독자적인 ARM칩을 개발해서 쓰고 있는 상태고 세계에서 가장 빠른 슈퍼컴퓨터가 ARM기반이다. 결국 시간이 지날수록 ARM진영이 대폭 성장할 수 밖에 없는 상황이라 보아도 무방하다.

2021년 3월 24일, 인텔이 처음으로 파운더리 사업을 시작할 때 ARM도 생산할 수 있다고 입장을 밝혔을 정도로 ARM의 입지가 계속 오르고 있다.

다만 아직 ARM칩도 넘어야할 산이 있기 때문에 가장 좋은 CPU라고 보기는 어렵지만 상당한 경쟁력을 갖춘 진영이라고 볼 수 있다.

인텔 프로세스의 역사 표

여기서 Data Width 는 Cpu내부의 레지스터의 크기를 의미한다. (비트를 말한다.)
8086 -최소의 x86프로세스
x86의 시작은 1978년에 만들어진 8086부터 시작이 됐다.당시 IBM pc에 사용을 하게 되고 IBM PC의 성공으로 표준으로 자리 잡게 된다.
표 외에도 80286 80386 80486 등이 존재했다.
80386 부터 32비트로 업그레이드 됨

Pentium P5 숫자로 내는걸 포기한다.

Pentium P5 이후 64비트로 업그레이드 됐다.
한동안은 Clock Rate 상승에 집중하다 보니 엄청난 향상이 있었지만 발열을 해결하지 못하는 isue 발생했다. (전력사용량 증가.)
이제는 클럭을 늘리는게 아니라 코어의 갯수를 늘리는 방식으로 방향을 바꿨다.
여기서 80486이 등장후 팬티엄이 등장하고 그 이후 ms에서 window 95를 발표했다.
그 전까지는 Ms Dos( 텍스트 기반) 운영체제를 사용했었다. 이는 컴퓨터 역사의 아주 큰 순간이며 컴퓨터에 대중화에 크게 기여한 컴퓨터이다.
PC의 역사는 x86프로세스와 같다라고 봐도 된다.
다만 애플은 조금 다른 길로 가고 있었지만 main stream은 x86이 중심이 됐다.
16비트라고 하는건 레지스터의 크기가 16비트 32비트라고 하면 레지스터 크기가 32비트를 의미하는 것이다.

전까지 만들었던 프로그램들과의 호환성을 생각하기 때문에 이전까지 쓰던 프로그램들과의 호환성을 유지하였다. (Legacy를 유지)
발전을 하면서 이전버전과의 호환성을 유지했기 때문에 우리는 이전 버전의 공부도 의미가 있다.

728x90
반응형