
Acorn은 저가형 교육용 컴퓨터(BBC Micro)를 만들던 작은 영국 회사였어.
당시 더 빠른 CPU를 사고 싶어서 인텔의 80286 코어를 요청했지만,
인텔은 코어 판매를 거부하고, 칩만 팔았지.
그래서 Acorn은 직접 CPU를 만들기로 결심했어.
문제는 뭐였을까?
돈도 없고, 사람도 부족했어!
애플, 삼성, 퀄컴, NXP 같은 회사들이 ARM의 설계를 라이선스로 받아 직접 칩을 만들어 판매해.
이게 ARM이 세상을 장악할 수 있었던 이유야:
“우리는 CPU를 파는 게 아니라, 두뇌의 설계도를 파는 거야.”
| 항목 | CISC (x86 등) | RISC (ARM 등) |
|---|---|---|
| 명령어 개수 | 많고 복잡 | 적고 단순 |
| 명령어 길이 | 가변적 | 고정(보통 32비트) |
| 실행 시간 | 여러 클럭 소요 | 대부분 1 클럭 |
| 전력 소모 | 큼 | 작음 |
| 구현 난이도 | 쉬움(코딩은 편함) | 어렵지만 더 예측 가능 |
→ ARM은 RISC 철학을 철저하게 따르면서도, 때로는 CISC처럼 보이는 편리한 기능도 도입해!
예:
🔍 정리: ARM은 코드를 작게 만들고, 빠르게 실행하기 위해 Thumb 구조를 적극 활용해!
| 레지스터 이름 | 설명 |
|---|---|
| R0 ~ R12 | 일반용도 레지스터 |
| R13 (SP) | Stack Pointer — 함수 호출, 컨텍스트 저장에 사용 |
| R14 (LR) | Link Register — 함수 리턴 주소 저장 |
| R15 (PC) | Program Counter — 현재 실행 중인 명령어 위치 |
| CPSR | 상태 레지스터 — ALU 결과에 따른 플래그 저장 |
🔑 이 플래그들은 조건부 명령어 실행에 직접 사용돼! 예:
BEQ,ADDNE,MOVGT등
| 시리즈 | 용도 | 예시 |
|---|---|---|
| Cortex-A | 고성능, OS 실행용 | 스마트폰, 태블릿 |
| Cortex-R | 실시간 제어, 고신뢰성 | 자동차 제어기, 항공 |
| Cortex-M | 저전력 MCU | IoT, 소형 임베디드 |
→ 우리 수업에서는 Cortex-M 시리즈 중에서도 M4를 집중적으로 사용해.
왜냐하면:
| 항목 | 하버드 구조 | 폰 노이만 구조 |
|---|---|---|
| 명령어/데이터 메모리 | 분리 | 공유 |
| 접근 버스 | 명령어/데이터 별도 | 동일 버스 사용 |
| 동시성 | 명령어, 데이터 동시 접근 가능 | 한 번에 하나만 접근 가능 |
Cortex-M 계열은 대부분 하버드 구조 기반
→ 성능 ↑, 처리 지연 ↓
| 핵심 요소 | 설명 |
|---|---|
| 구조 | RISC 기반, Thumb 명령어 |
| 실행 방식 | Load/Store 방식 |
| 명령어 | 고정 길이, 조건부 실행 가능 |
| 레지스터 | R0~R15 + CPSR, 최소 메모리 접근 |
| 설계 철학 | 저전력, 고효율, 고이식성 |
| 아키텍처 | ARMv1 ~ ARMv8까지 발전 중 |
| 대표 MCU | Cortex-M0/M3/M4/M7 등 임베디드용 |