애플은 왜 인텔 대신 ARM을 선택했나 ?
ARM 아키텍처에 대해 알아보자
Compilation: 우리가 쓴 코드를 CPU와 가장 가까운 언어로 변환해야함
즉, 프로세서가 쉽게 0과 1로 바꿀 수 있는 언어
컴파일을 하고 난 언어를 어셈블리 언어라 부른다.
어셈블리 언어
- 프로그래밍을 실행하고자 하는 스텝들을 기계에게 하나하나 설명을 한다
- 3가지 명령어가 있는데
- Load : 메모리에 공간을 예약
- Put : 해당 메모리 주소에 숫자를 넣음
- Add : 메모리 주소의 내부에 값을 추가
하지만 A 프로세서를 쓰는 기계에서 컴파일 하여 다른 인텔이나 AMD를 쓰는 다른 유저의 경우 해당 코드를 돌릴 수 없다.
왜냐면 각기 다른 구조를 가진 인텔, AMD 프로세서들은 각기 다른 ISA(Instruction Set Architecture)를 가지고 있기 때문
ISA 는 프로세서가 실행할 수 있는 지원되는 명령 또는 커맨트 집합을 뜻한다.
따라서 인텔 또는 ARM 프로세서가 코드를 실행할 수 있도록 하려면 해당 C 코드를 다시 컴파일하여 해당 프로세서의 명령을 따르는 어셈블리 코드를 만들어야 한다.
C 코드
인텔 프로세서에서 실행할 C 코드를 컴파일 하려면 다음과 같은 어셈블리 코드를 얻을 수 있음
ARM 구조 프로세서로 컴파일 하면 (M1 맥북 프로세서) 다음과 같은 어셈블리 코드를 얻을 수 있음
mov와 add 같은 명령어를 공유하지만 대부분의 명령은 다르게 보인다.
가장 큰 차이점은 '구조'
X86 프로세서 패밀리의 경우 CISC(Complex Instruction Set Computing) 구조를 사용하고
ARM 프로세서는 RISC(Reduced Instruction Set Computing) 구조를 사용한다.
프로세서는 실행할 수 있는 일정량의 '지시사항' 또는 '명령'을 이해할 수 있다.
이런 명령은 해당 칩의 디자이너에 따라 결정된다.
RISC(Reduced Instruction Set Computing)
프로세서가 많은 작업을 수행해서는 안된다.
기본 작업을 빠르게 수행하는 것이 중요한 개념, 일종의 타협
CISC(Complex Instruction Set Computing)
CISC 프로세서는 RISC 프로세서보다 지시사항이 많다.
-> CISC 프로세서에 있는 명령어가 RISC에 없을 수도 있다.
RISC에 있는 경우,
CISC 명령으로 1번 해야하는 일을 RISC에서는 수동으로 n번 사용하게 된다
CISC 복잡한 작업을 수행할 수 있지만 시간이 좀 걸릴 수 있다.
RISC에게 여러개의 명령을 전달해서 덕분에 빠르게 수행이 가능하겠다.
하지만 현재는 컴파일러가 있으니 이러한 고민을 하지 않아도 된다.
기억해야할 것은 옛날에 손으로 어셈블리 코드를 쓰던 시절이 있었다.
전체 시스템이 어셈블리 언어로 작성되곤 했다.
코딩을 적게 쓰고 싶은 사람들,,
따라서 그 당시에는 CISC를 사용하는게 더 편했다.
RAM 메모리가 풍족하지도 않았고 RISC에 없는 수많은 명령들이 있으니까
프로그램을 실행하려면 그 프로그램이 RAM 메모리에 복사되어야 프로그램이 실행되었다.
즉, 규모가 큰 프로그램의 경우 실행하려면 더 많은 RAM 메모리가 필요했다.
RAM 메모리가 부족하던 시절에는 개발자를 도울 명령어들이 많으니 CISC 프로세서를 선택하는건 당연한 일이었다.
하지만 이젠 컴파일러도 있고 RAM 메모리도 많다.
요즘 가장 신경쓰이는 건 배터리 수명이다.
프로세서 수행할 것이 복잡할 수록 에너지 요구량도 높아진다.
ARM 즉, RISC 프로세서가 모바일 기기용으로 각광받은 이유이다
모바일, IoT 기기들이 RISC 를 사용한다.
ARM 프로세서는 엄청나게 에너지 효율성이 높다
RISC 프로세서는 CISC처럼 기능이 많지 않기 때문에 필요한 트랜지스터가 적고 가격도 싸고 차지하는 크기도 작다.
하지만 CISC와 RISC의 경계가 요즘은 희미해졌다.
ARM은 여러 명령어를 추가하여 CISC 기능도 가지고 있다.
CISC를 쓰는 이유? 레거시 때문이다.
X86에서 ARM 프로세서 전환이 쉬운게 아니다.
M1 유저가 일부 프로그램 실행에 어려움을 겪고 있다.
해당 프로그램을 X86에서 ARM으로 변환해야하니까.
ARM은 IP를 라이선스 하고 있어서 다른회사들이 ARM에 돈을 내고 가져와서 그들에게 맞춤형으로 칩을 생산할 수 있다
이것이 지금 애플이 하고 있는 것이며 맥북용으로 맞춤 생산하고 있다.
더 빠른 스피드, 길어진 배터리 수명을 갖게되고 인텔에 기대지 않아도 된다.
현재 아마존도 그렇게 하고 있다.
최근 홍보하는 Gravition 서버는 맞춤형 ARM 프로세서에서 돌아간다.
기존보다 10-20% 더 싸고 인텔 혹은 AMD 서버보다 40퍼 더 빠르다.
아마존은 어디를 최적화해야하는지 알고 ARM를 가져와서 맞춤형으로 개선하는 중이다.
MS도 마찬가지로 서비스 PC를 위해 ARM 기반의 SoC를 만들고 있다.
노마드코더 채널의 영상을 참고하여 정리하였음을 밝힙니다.
출처: https://www.youtube.com/watch?v=G-fJJ-OHLDw
'기술 동향' 카테고리의 다른 글
세계 최대 NFT 거래소 오픈씨(Opensea) 해킹 이슈 (0) | 2022.04.18 |
---|---|
인터프리터 언어와 컴파일러 언어 차이점 (0) | 2022.04.15 |
구글 크롬 제로데이 취약점 보안사태 Google Chrome ZERO DAY Vulnerability (0) | 2022.04.15 |