ARM Core - 0. ARM을 배우기 전에 (2. 기본적인 컴퓨터 아키텍처 개념)

2025. 3. 7. 12:49정보기술/하드웨어

2. 기본적인 컴퓨터 아키텍처 개념

컴퓨터 아키텍처는 CPU(중앙처리장치)와 메모리 시스템이 어떻게 구성되고 동작하는지를 설명하는 중요한 개념이다. ARM 프로세서를 학습하기 위해서는 CPU의 동작 방식과 메모리 구조를 먼저 이해하는 것이 필수적이다.


1. CPU의 동작 방식 (명령어 실행, 레지스터, 파이프라인)

CPU는 프로그램을 실행하기 위해 명령어를 처리하는 핵심 장치이다. CPU의 동작 과정은 명령어를 가져오고(Fetch), 해석하고(Decode), 실행(Execute)하는 기본적인 흐름을 따른다.

1) 명령어 실행 과정 (Fetch-Decode-Execute-Cycle)

CPU는 프로그램을 실행하기 위해 다음 단계를 반복한다.

  1. Fetch (명령어 가져오기)
    • 메모리에서 명령어(Instruction)를 읽어와 레지스터에 저장한다.
  2. Decode (명령어 해석하기)
    • 명령어의 종류를 해석하여 어떤 연산을 수행해야 하는지 결정한다.
  3. Execute (명령어 실행하기)
    • 연산을 수행하고, 결과를 레지스터나 메모리에 저장한다.

추가적인 단계: 일부 최신 CPU에서는 Writeback(쓰기 반영) 단계가 추가되며, 명령어 예측(Prediction) 및 병렬 처리를 활용하여 더욱 최적화된 실행 방식을 적용한다. 하지만 기본적인 개념으로는 Fetch-Decode-Execute 사이클이 충분한 이해를 제공한다.

2) 레지스터 (Register)

레지스터는 CPU 내부에서 데이터를 빠르게 저장하고 처리하는 초고속 메모리이다.

  • CPU가 연산을 수행할 때, 자주 사용하는 데이터나 주소를 저장하여 속도를 향상시킨다.
  • ARM 프로세서에서는 범용 레지스터(General-purpose register), 프로그램 카운터(PC), 스택 포인터(SP), 상태 레지스터(CPSR) 등이 존재한다.

3) 파이프라인 (Pipeline)

파이프라인(Pipeline)은 CPU가 명령어를 병렬로 처리하여 성능을 높이는 방식이다.

  • 기본적인 CPU는 한 번에 하나의 명령어를 실행하지만, 파이프라인을 사용하면 여러 개의 명령어를 동시에 처리할 수 있다.
  • 예를 들어, 명령어 A를 Fetch하는 동안, 명령어 B를 Decode하고, 명령어 C를 Execute하는 식으로 CPU의 성능을 극대화할 수 있다.

ARM 프로세서는 성능을 높이기 위해 다양한 3단계, 5단계, 7단계 파이프라인 구조를 지원하며, 슈퍼스칼라(Superscalar) 및 아웃오브오더 실행(Out-of-order Execution) 기술을 적용하여 더 높은 성능을 제공할 수 있다.


2. 메모리 구조 (RAM, 캐시, MMU 개념)

CPU는 단독으로 작동하는 것이 아니라, 메모리 시스템과 함께 연산을 수행한다. 메모리는 데이터를 저장하고 CPU가 필요할 때 빠르게 가져와 사용할 수 있도록 도와주는 역할을 한다.

1) RAM (주기억장치, Random Access Memory)

  • RAM은 컴퓨터가 실행 중인 프로그램과 데이터를 저장하는 휘발성 메모리이다.
  • CPU가 명령어를 실행하기 위해서는 프로그램과 데이터를 RAM에서 읽어와야 하므로, RAM의 속도가 빠를수록 시스템 성능이 향상된다.
  • ARM 기반 시스템에서는 SDRAM (Synchronous DRAM), LPDDR(Low Power DDR) 등 다양한 RAM 유형이 사용된다.

2) 캐시 메모리 (Cache)

  • 캐시는 CPU 내부에 위치한 초고속 메모리로, RAM보다 더 빠르게 데이터를 가져올 수 있다.
  • CPU는 자주 사용하는 데이터를 캐시에 저장하여 연산 속도를 향상시킨다.
  • 일반적으로 L1, L2, L3 캐시로 구분되며, L1 캐시가 가장 빠르고, L3 캐시는 용량이 크지만 상대적으로 느리다.
  • ARM 프로세서는 효율적인 캐시 관리 기술과 프리페치(Prefetch) 기술을 활용하여 성능을 최적화한다.

추가 고려 사항: 캐시 일관성(Cache Coherency)

캐시는 CPU의 성능을 높여주지만, 멀티코어 환경에서 캐시 일관성을 유지하는 문제(Cache Coherency)가 발생할 수 있다.

  • 캐시 일관성 유지(Cache Coherency Protocol): 여러 코어가 동일한 데이터를 캐시에 보유할 때, 데이터의 최신 상태를 유지해야 한다. 이를 위해 MESI(Modified, Exclusive, Shared, Invalid) 프로토콜과 같은 기법이 사용된다.
  • ARM의 DynamIQ 기술은 캐시 일관성을 최적화하여 멀티코어 성능을 향상시킨다.

3) MMU (Memory Management Unit, 메모리 관리 장치)

  • MMU는 CPU와 메모리 간의 데이터 흐름을 관리하는 핵심 장치이다.
  • 가상 메모리(Virtual Memory)와 물리 메모리(Physical Memory)를 매핑하여, 운영체제가 각 프로세스마다 독립적인 메모리 공간을 가질 수 있도록 지원한다.
  • 또한 메모리 보호 기능을 제공하여, 프로세스가 서로의 메모리 공간을 침범하지 못하도록 한다.

결론

컴퓨터 아키텍처에서 CPU의 동작 방식과 메모리 구조를 이해하는 것은 매우 중요하다.

  1. CPU는 Fetch-Decode-Execute 과정을 반복하며, 레지스터와 파이프라인을 활용하여 빠르게 연산을 수행한다.
  2. RAM과 캐시 메모리는 CPU의 성능을 높이는 데 중요한 역할을 하며, 캐시 일관성을 유지하는 기술이 중요하다.
  3. MMU는 효율적인 메모리 관리 및 보호 기능을 제공하여, 프로세스 간 메모리 충돌을 방지하고 가상 메모리 환경을 구축한다.

ARM 프로세서를 학습할 때, 이러한 기본 개념을 바탕으로 ARM의 RISC 구조, 명령어 처리 방식, 메모리 아키텍처 등을 단계적으로 이해하는 것이 중요하다.