ISA 란?
하드웨어와 소프트웨어 사이의 Interface를 정의하는 것. 하드웨어와 프로그램 사이의 매개체 역할을 하는 것이다.
세상에는 많은 ISA가 있다. 칩을 만드는 회사마다 ISA의 종류가 다르다. 회사마다 자신만의 ISA를 가지고 있는 것이다.
흔히 쓰이는 랩탑, 데스크탑, 심지어 서버 컴퓨터까지 전부 Intel, AMD 프로세서를 쓰는 아키텍처를 쓰고 있는데, 이 회사에서는 x86 ISA를 가지고 있다고 얘기를 한다. 그 외에 스마트폰에 쓰이는 ARM 프로세서가 있다.
이 x86과 ARM은 서로 다른 ISA라고 말할 수 있다. 즉, 데스크탑과 스마트폰은 다른 ISA를 가지고 있다고 말할 수 있다.
이것은 이렇게 말할 수 있다. 데스크탑에서 만든 소프트웨어를 바로 ARM 프로세서(모바일)에서 돌릴 수 없다. 왜냐면 Interface가 다르니 말이 통하질 않는 것이다.
자 이제 어떤 ISA 종류가 있고 이들의 차이점은 구체적으로 무엇인지 한 번 알아보자!
x64 x86 차이
먼저 윈도우 PC에서 소프트웨어, 특히 프로그래밍 도구 등의 유틸리티를 다운로드 받을 때면
“x64 x32” 또는 “64비트 32비트”로 구분되어 파일이 표시되어 있는 것을 보게 되는 경우가 많다.
이것들은 쉽게 말하면 CPU 가 데이터를 처리하는 최소 단위라고 볼 수 있다.
CPU 가 I/O 버스를 통해 데이터 내, 외부로 데이터를 전송하는데 이때 전송하는 데이터의 단위(레지스터의 1회 처리값)가 32 비트인가 64 비트인가의 차이이다.
32비트는 x86 을 의미하고, 64비트는 x64 로 표기되어 있는 것을 볼 수 있는데 32 비트가 x86 으로 표시되는 까닭은 PC 칩셋의 품번 80-86 이라는 숫자를 인텔 32비트 이하 계열 제품명에 붙였기 때문이다. 이 부분은 그냥 이렇게 되었구나로 넘어가면 될 것 같다.
x86_64 란?
x86_64 는 64비트 아키텍처이다.
하지만 x86_64 아키텍처는 역 호환성을 가지고 있어 32비트 응용 프로그램을 실행할 수도 있다.
x86_64 아키텍처는 이전에 사용되던 32비트 x86 아키텍처의 확장이며, 64비트 명령어 세트를 지원한다. 이 아키텍처는 대부분의 현대적인 개인용 컴퓨터 및 서버에서 사용되는 주요 아키텍처이다. x86_64 아키텍처에서는 64비트 주소 공간을 사용하여 더 많은 메모리를 직접 주소 지정할 수 있다. 이로 인해 더 큰 메모리 용량을 지원하고, 64비트 정수 및 부동 소수점 연산을 더 빠르고 효율적으로 처리할 수 있다.
x86_64 아키텍처는 역 호환성을 유지하기 위해 32비트 x86 응용 프로그램과 라이브러리를 지원한다. 32비트 응용 프로그램은 32비트 호환 모드에서 실행되며, 이는 64비트 모드와 호환되는 환경에서도 작동한다. 따라서, x86_64 아키텍처에서는 64비트 및 32비트 응용 프로그램을 모두 실행할 수 있다.
x64 와 x86_64 는 다른 점이 있을까?
"x64"와 "x86_64"는 사실상 동일한 의미를 갖는 용어이다. 둘 다 64비트 아키텍처를 나타내는 표현이다.
"x64"는 Microsoft의 용어로 주로 사용되며, 64비트 버전의 Windows 운영 체제를 나타내는 데 사용된다. 예를 들어, "Windows 10 x64"는 64비트 버전의 Windows 10을 의미한다.
"x86_64"는 보다 정확한 용어로, AMD의 AMD64 아키텍처나 인텔의 Intel 64 아키텍처를 가리키는 데 사용된다. 이 아키텍처는 64비트 아키텍처로서, 이전에 주로 사용되던 32비트 x86 아키텍처의 확장으로 개발되었다. 그러므로 "x86_64"는 64비트 운영 체제와 관련된 CPU 아키텍처를 나타낸다.
AMD(Advanced Micro Devices)와 인텔(Intel)은 모두 반도체 기업으로, 컴퓨터 프로세서를 개발하고 생산하는 회사이다.
이 두 회사는 x86 아키텍처 기반의 프로세서를 주로 개발하고 있으며, 그 중에서도 AMD는 AMD64 아키텍처를, 인텔은 Intel 64 아키텍처를 개발하였다.
AMD64 아키텍처와 Intel 64 아키텍처는 모두 64비트 아키텍처이다. 이 아키텍처는 64비트 운영체제에서 사용되며, 더 큰 주소 공간을 제공하여 더 많은 메모리(RAM)를 인식하고 사용할 수 있다. AMD64 아키텍처는 AMD에서 개발하였으며, 인텔의 프로세서에도 호환성을 제공한다. Intel 64 아키텍처는 인텔에서 개발하였으며, AMD의 프로세서에도 호환성을 제공한다.
이러한 호환성으로 인해 AMD와 인텔의 프로세서는 동일한 64비트 운영체제와 응용 프로그램을 실행할 수 있다. 따라서, AMD와 인텔은 컴퓨터 하드웨어 분야에서 주요한 경쟁사이며, 각각의 아키텍처를 사용하는 프로세서를 제공하고 있다.
요약하자면, "x64"와 "x86_64"는 실제로는 동일한 것을 의미하며, 모두 64비트 아키텍처를 나타낸다.
ARM 의 등장
대표적인 2개 회사 (intel 과 AMD) 와는 다르게 ARM은 x86과 전혀 다른 아키텍처를 사용한다.
과거의 ARM은 단순한 아키텍처와 함께 가격이 저렴하고 저전력을 갖춰 소형기기에 많이 사용했다.
스마트폰 시대에 접어들면서 모바일 용으로 많이 쓰이다 보니 엄청난 발전으로 속도 면에서 이제 PC에 근접한 수준에 이르렀다.
반면에 저렴한 가격과 저전력은 유지했다.
이로 인해 PC용 ARM을 사용하는 시도가 많아졌고
AWS가 자체 개발한 ARM CPU로 만든 서버인 Graviton 이라는 인스턴스를 내놓으면서 서버 시장에 불을 피우고, Apple이 자체 개발한 M1 CPU로 맥북을 내놓으며 PC시장에도 불이 붙었다.
ARM 이라는 회사가 존재하지만, 누구든지 ARM을 기반으로 커스텀한 칩을 직접 만들어서 팔아도 된다고 알고 있다.
그러니까 M1 칩은 ARM이 만들어 준게 아니라, Apple이 만든 ARM 호환 CPU 이다.
나는 맥북을 쓴지 얼마 안되어서 M1 칩 밖에 잘 모르지만 알고 보니 애플이 M1 칩을 내장한 맥북을 시장에 내놓게 된 건 역사가 그렇게 길지 않은 것 같다.
아래 블로그를 읽어보면 arm 칩이 내장된 맥북을 구매해도 괜찮을까? 하는 블로그 글을 발견했는데 꽤나 흥미로웠다.
https://kmelon55.com/arm-mac-vs-intel-mac-%EB%AD%98-%EC%82%AC%EC%95%BC%ED%95%A0%EA%B9%8C/
요약하면 이런 내용이 있다.
↓
ARM?? INTEL??
저번 WWDC2020 행사에서 애플은 2년안에 MAC의 CPU를 INTEL기반에서 ARM기반으로 이주하겠다는 발표를 했다. 그럼 ARM이 무엇이며 INTEL과 비교해서 어떤 장단점을 가지고 있을까?
둘을 비교하며 설명하자면 ARM은 Acorn RISC Machine의 줄임말로 RISC(reduced instruction set computer)방식 프로세서이고 INTEL은 CISC(complex instruction set computer)방식 프로세서이다. 직관적으로 느낄 수 있듯이 RISC방식은 효율성에 초점을 두어 전력효율이 좋지만 CISC만큼의 성능을 기대하기 어렵고 CISC방식은 성능면에 초점을 두어 CISC방식보다 성능은 좋지만 보다 많은 전력과 쿨링 시스템을 요한다.
하지만 거듭되는 기술의 발전과 애플의 소프트웨어, 하드웨어 최적화 기술을 통해 RISC방식이지만 고성능을 기대할 수 있다는 것이 애플의 생각인듯 하다. 애플이 의도한대로 잘 진행 된다면 두가지 방식의 장점만 뽑아 고성능이면서 저전력의 고효율을 지닌 괴물CPU가 탄생하게 될것이다.
인텔 칩을 쓰는 맥북은 어떤 것들이 있을까?
2021년 9월 기준, 맥북 시리즈 중 일부 모델은 Intel 프로세서를 지원한다. 다음은 맥북 시리즈 중 일부이며, Intel 프로세서를 사용하는 기종이다:
1. 맥북 에어 (MacBook Air): 2020년 이전 모델은 Intel 프로세서를 사용한다. 그러나 2020년 이후에 출시된 최신 모델은 Apple M1 칩을 사용하여 ARM 기반으로 전환되었다.
2. 맥북 프로 (MacBook Pro): 2019년 이전 모델 중 일부는 Intel 프로세서를 사용한다. 2019년 이전에 출시된 15인치 맥북 프로 모델은 Intel 프로세서를 사용하며, 2019년까지 출시된 13인치 맥북 프로 모델 중 일부도 Intel 프로세서를 사용한다. 그러나 2020년 이후에 출시된 최신 모델은 Apple M1 칩을 사용하여 ARM 기반으로 전환되었다.
3. 맥 미니 (Mac mini): 2020년 이전 모델은 Intel 프로세서를 사용한다. 그러나 2020년 이후에 출시된 최신 모델은 Apple M1 칩을 사용하여 ARM 기반으로 전환되었다.
4. 맥 프로 (Mac Pro): 2019년 이전 모델 중 일부는 Intel 프로세서를 사용한다. 그러나 2019년 이후에 출시된 최신 모델은 Intel 프로세서를 사용하지 않고, Apple M1 칩 또는 Apple M1 Pro/M1 Max 칩을 사용하여 ARM 기반으로 전환되었다.
💡 살펴보면 이전 맥북들이 인텔을 쓰고 지금은 거의 M1 칩을 쓰고 있는 것 같다.
M1 Mac 은 인텔용 프로그램 다 돌아가는 이유?
M1 Mac 에서 x86 이나 x86_64 으로 빌드된 프로그램을 실행 할 수 있는 이유는 Rosseta 라는 에뮬레이터가 있기 때문이다.
이것은 ARM 머신 내부에 x86 가상환경을 만들고 그 안에서 실행하는 방식이다.
따라서 성능의 저하가 있다. (애플은 거의 없다고 하지만, 없을 수가 없다.)
출처
https://inyongs.tistory.com/108
'💻 컴퓨터 개론' 카테고리의 다른 글
IP 관련 용어 정리 (0) | 2023.06.10 |
---|---|
Base64 인코딩 (0) | 2023.04.01 |
ASP, PHP, JSP 가 무엇인지 모르겠는 사람들을 위해 (0) | 2020.06.19 |
TCP/IP 에 대하여 (0) | 2020.06.17 |
OSI 모델과 네트워크 장치 (0) | 2020.06.17 |