
x86
- CISC (Complex Instruction Set Computer)
- 명령어 복잡, 종류 많음
- 성능이 강함
- PC, 서버에서 주로 사용
- ex) Intel Core i7, AMD Ryzen
ARM
- RISC (Reduced Instruction Set Computer)
- 명령어 단순
- 전력 효율 좋음
- 모바일 / 임베디드
- ex) Apple M1, Qualcomm Snapdragon, STM32
RISC-V
- 최근 많이 뜨는 아키텍쳐
- 오픈소스 ISA
- 자유롭게 CPU 설계가능
- 임베디드, 일부 서버 연구
- ex) SiFive CPU, ESP32-C3
한 줄 요약 👉 PC → x86, 임베디드 / MCU → ARM
ARM 프로세서는 용도에 따라 여러 코어 시리즈로 나뉘며, 대표적으로 Cortex 시리즈가 사용된다.
이 세 가지 Cortex 시리즈는 용도와 설계 목적이 다르다.
각 코어는 처리 성능, 메모리 구조, 운영체제 지원 여부 등이 다르기 때문에 사용되는 시스템과 개발 방식이 달라지게 된다.
Cortex-M (Microcontroller)
Cortex-A (Application Processor)
Cortex-R (Real-time)
이러한 아키텍처의 설계 목적과 시스템 환경의 차이가 개발 방식의 차이로 이어지며,
같은 임베디드 개발이라 하더라도 실제 산업에서는 직무가 세분화된다.
Cortex-M: 저전력 마이크로컨트롤러 환경을 위해 설계되어 작은 메모리 환경에서 동작하며, 하드웨어를 직접 제어하는 펌웨어 개발이 중심이 된다.
Cortex-A: 운영체제(Linux, Android)를 실행하기 위한 고성능 프로세서로 설계되어 파일 시스템, 네트워크, 멀티프로세스 환경을 다루는 시스템 소프트웨어 개발이 중심이 된다.
Cortex-R: 자동차나 산업 장비와 같이 실시간성과 안정성이 매우 중요한 환경을 위해 설계되어, 일정한 지연시간과 안전성을 보장하는 제어 시스템 개발에 사용된다.
"임베디드 개발자" 라는 키워드로 검색을 해보면
와 같이 여러 직무를 확인할 수 있는데 이러한 직무의 차이는 ARM 코어의 설계 목적과 시스템 환경의 차이에서 비롯된다는 점을 이해할 필요가 있다.
한 표 요약.
| Cortex | 개발 |
|---|---|
| Cortex-M | 펌웨어 |
| Cortex-A | 임베디드 Linux |
| Cortex-R | 실시간 제어 |