임베디드-2

기타튀김·2025년 5월 13일

임베디드

목록 보기
2/8

📘 Lecture 02 – ARM Processor Architecture 완전 정복


✅ 1. ARM의 탄생과 철학: “작지만 강한 프로세서”

배경: 1980년대 Acorn 컴퓨터 회사에서의 고민

  • Acorn은 저가형 교육용 컴퓨터(BBC Micro)를 만들던 작은 영국 회사였어.

  • 당시 더 빠른 CPU를 사고 싶어서 인텔의 80286 코어를 요청했지만,

    인텔은 코어 판매를 거부하고, 칩만 팔았지.

  • 그래서 Acorn은 직접 CPU를 만들기로 결심했어.
    문제는 뭐였을까?

    돈도 없고, 사람도 부족했어!

아이디어의 전환: 복잡함(CISC)을 버리고, 단순함(RISC)으로

  • 당시 미국의 UC Berkeley에서 연구된 “RISC 구조”를 참고해,
  • 명령어는 적고 간단하게! → 고속 실행 + 저전력 설계 가능

결과: 1987년, 역사적인 ARM2 프로세서 등장

  • 30,000개의 트랜지스터만으로 구성된 초간단 CPU
  • 성능은 낮지만, 단순함, 저전력, 확장성을 모두 갖춘 형태

✅ 2. ARM의 발전: ‘설계만’ 하는 회사로 진화

📌 ARM Ltd는 칩을 제조하지 않고 설계만 판매

  • 애플, 삼성, 퀄컴, NXP 같은 회사들이 ARM의 설계를 라이선스로 받아 직접 칩을 만들어 판매해.

  • 이게 ARM이 세상을 장악할 수 있었던 이유야:

    “우리는 CPU를 파는 게 아니라, 두뇌의 설계도를 파는 거야.”

🔁 이 모델은 확장성이 매우 크다:

  • 한 번 설계하면 수백 개 회사가 서로 다르게 커스터마이징해서 제품화 가능.
  • 그래서 ARM은 거의 모든 스마트폰, 태블릿, IoT 센서에 들어가게 됨.

✅ 3. CISC와 RISC의 근본적인 차이

항목CISC (x86 등)RISC (ARM 등)
명령어 개수많고 복잡적고 단순
명령어 길이가변적고정(보통 32비트)
실행 시간여러 클럭 소요대부분 1 클럭
전력 소모작음
구현 난이도쉬움(코딩은 편함)어렵지만 더 예측 가능

→ ARM은 RISC 철학을 철저하게 따르면서도, 때로는 CISC처럼 보이는 편리한 기능도 도입해!

예:

  • 한 명령어에서 Shift + ALU 연산 가능
  • 조건부 실행(Conditional Execution) 도입
  • Load/Store 명령어 외에는 메모리 접근 불가 → 안정성 + 일관성 보장

✅ 4. ARM의 명령어 체계: Thumb와 Thumb-2

● Thumb 아키텍처란?

  • ARM의 일반 명령어는 32비트인데,
  • Thumb는 16비트 명령어 세트를 도입한 구조야.
  • 즉, 같은 기능을 절반 크기로 코딩 가능 → 코드 메모리 절감, 저가형 MCU에 유리

● Thumb-2: 16 + 32비트 명령어 혼용

  • Thumb의 효율성과 ARM의 성능을 둘 다 얻기 위한 설계
  • Cortex-M 시리즈에서는 기본적으로 Thumb-2만 사용

🔍 정리: ARM은 코드를 작게 만들고, 빠르게 실행하기 위해 Thumb 구조를 적극 활용해!


✅ 5. ARM의 프로그래머 모델 (Register 구조)

📌 ARM은 레지스터 중심 연산 구조야 (Load-Store 방식)

레지스터 이름설명
R0 ~ R12일반용도 레지스터
R13 (SP)Stack Pointer — 함수 호출, 컨텍스트 저장에 사용
R14 (LR)Link Register — 함수 리턴 주소 저장
R15 (PC)Program Counter — 현재 실행 중인 명령어 위치
CPSR상태 레지스터 — ALU 결과에 따른 플래그 저장

● 중요한 플래그들 (CPSR)

  • N: 결과가 음수인가?
  • Z: 결과가 0인가?
  • C: Carry 발생?
  • V: Overflow 발생?

🔑 이 플래그들은 조건부 명령어 실행에 직접 사용돼! 예: BEQ, ADDNE, MOVGT


✅ 6. ARM 프로세서 계열 (Cortex 시리즈)

시리즈용도예시
Cortex-A고성능, OS 실행용스마트폰, 태블릿
Cortex-R실시간 제어, 고신뢰성자동차 제어기, 항공
Cortex-M저전력 MCUIoT, 소형 임베디드

→ 우리 수업에서는 Cortex-M 시리즈 중에서도 M4를 집중적으로 사용해.
왜냐하면:

  • 저전력 + 고성능 (FPU 가능)
  • Thumb-2 명령어 기반
  • Real-time 처리 + 인터럽트 지원이 매우 강력하기 때문

✅ 7. 하버드 구조 vs. 폰 노이만 구조

항목하버드 구조폰 노이만 구조
명령어/데이터 메모리분리공유
접근 버스명령어/데이터 별도동일 버스 사용
동시성명령어, 데이터 동시 접근 가능한 번에 하나만 접근 가능

Cortex-M 계열은 대부분 하버드 구조 기반
→ 성능 ↑, 처리 지연 ↓


✅ 8. ARM의 특징 종합 요약

핵심 요소설명
구조RISC 기반, Thumb 명령어
실행 방식Load/Store 방식
명령어고정 길이, 조건부 실행 가능
레지스터R0~R15 + CPSR, 최소 메모리 접근
설계 철학저전력, 고효율, 고이식성
아키텍처ARMv1 ~ ARMv8까지 발전 중
대표 MCUCortex-M0/M3/M4/M7 등 임베디드용
profile
부산대 정보컴퓨터공학부

0개의 댓글