[Computer Architecture] ARM 프로세서

jiny·2026년 2월 4일

Computer Science

목록 보기
6/16

1. 프로세서의 정의 및 ARM의 핵심 개념

(1) 프로세서

메모리에 저장된 명령어들을 실행하는 유한 상태 오토마톤

🌟 유한 상태 오토마톤 (Finite State Automaton, FSA)

유한 상태 오토마톤은 이름은 어렵지만, 원리는 아주 명쾌하다. 쉽게 말해 "정해진 몇 가지 상태(State) 사이를 규칙에 따라 옮겨 다니는 추상적인 기계"를 뜻한다.

  1. 핵심 개념 3가지
    • 상태 (State): 기계가 머무를 수 있는 정해진 상황들 (예: 대기 중, 실행 중, 오류 발생 등)
    • 전이 (Transition): 한 상태에서 다른 상태로 바뀌는 행동
    • 입력 (Input): 상태를 바꾸게 만드는 '신호'나 '조건'
  2. 쉬운 비유: 자판기
    자판기를 유한 상태 오토마톤으로 생각하면 이해가 빠르다.
    1. 동전 대기 상태에서 '동전'이라는 입력이 들어오면 금액 충전 상태전이한다.
    2. 금액이 다 차면 다시 버튼 입력을 기다리고, 버튼을 누르면 음료를 내보내는 상태로 바뀐다.
    3. 이처럼 자판기는 정해진 몇 가지 상태 안에서만 움직이기 때문에 '유한 상태' 기계라고 부르는 것이다.
  3. 프로세서(CPU)가 왜 오토마톤일까?
    컴퓨터의 프로세서도 이와 똑같은 방식으로 작동하기 때문이다. 프로세서는 크게 다음과 같은 상태를 반복하며 명령어를 처리한다.
    • Fetch (인출): 메모리에서 명령어를 가져오는 상태
    • Decode (해석): 가져온 명령어가 무슨 뜻인지 분석하는 상태
    • Execute (실행): 명령을 실제로 수행하는 상태
    • Write-back (쓰기): 결과를 저장하는 상태

프로세서는 클럭(Clock) 신호에 맞춰 이 상태들을 규칙적으로 오가며 우리가 시킨 일을 처리한다. 그래서 프로세서를 "명령어를 실행하는 거대한 유한 상태 오토마톤"이라고 부르는 것이다.

(2) ARM의 의미와 핵심

  • ARM (Advanced RISC Machine): 진보된 RISC 기기
  • 핵심: ARM의 핵심은 RISC이며, RISC는 Reduced Instruction Set Computing(감소된 명령 집합 컴퓨팅)을 뜻한다.
  • RISC는 단순한 명령 집합을 가진 프로세서가 복잡한 명령 집합을 가진 프로세서보다 훨씬 더 효율적일 것이라는 아이디어에서 탄생했다.

2. ARM 구조의 특징 및 RISC 설계 기반의 장점

(1) ARM의 설계 구조와 제조사의 역할

  • ARM은 칩의 기본 설계 구조만 만들고, 실제 기능 추가와 최적화 부분은 개별 반도체 제조사의 영역으로 맡긴다.
  • 이로 인해 물리적 설계 베이스는 같더라도 명령 집합이 모두 다르기 때문에 서로 다른 칩이 탄생할 수 있다.
  • 소비자는 칩이 논리적 구조인 명령 집합으로 구성되므로, 물리적 설계는 같지만 용도에 따라 다양한 제품군을 만날 수 있다.

(2) RISC 설계 기반의 구조적 특징

  • 아키텍처는 논리적인 명령 집합을 물리적으로 표현한 것이므로, 명령어가 많고 복잡해질수록 실제 물리적인 칩 구조도 크고 복잡해진다.
  • ARM은 RISC 설계 기반으로 '단순한 명령 집합이 복잡한 것보다 효율적이다.'라는 원칙을 따르기 때문에 명령 집합과 구조 자체가 단순하다.
  • 따라서 ARM 기반 프로세서는 더 작고, 효율적이지만 상대적으로 느린 특징을 가진다.

    🌟 효율적인데 느리다?

    여기서 효율은 '에너지 효율(전성비)'을 의미하고, 느리다는 것은 '절대적인 연산 속도(고성능)'에서 차이가 난다는 뜻이다.

    1. '효율적'이라는 말의 진짜 의미
      컴퓨터 공학에서 효율성은 보통 "단위 전력당 얼마나 많은 일을 하는가"를 말한다.
      • ARM (RISC): 10의 에너지를 써서 8의 일을 한다. (효율 80%)
      • 고성능 CPU (CISC): 100의 에너지를 써서 50의 일을 한다. (효율 50%)
      • 결과적으로 고성능 CPU가 일(50)은 더 많이 해서 속도는 빠르지만, 에너지를 훨씬 많이 낭비하기 때문에 효율은 ARM이 더 높다고 하는 것이다.
    2. 왜 '상대적으로' 느릴 수밖에 없을까?
      위에서 "상대적으로 느리다"고 표현한 이유는 크게 두 가지이다.
      • 명령어의 단순함
        • RISC는 복잡한 일을 여러 개의 단순한 명령어로 쪼개서 처리한다.
        • CISC가 한 번에 끝낼 일을 RISC는 3~4번 나눠서 해야 할 때가 있다.
        • 개별 동작은 빠르지만, 전체 작업량은 늘어날 수 있다.
      • 발열과 클럭 제한
        • 속도를 높이려면 '클럭(박자)'을 빠르게 올려야 하는데, 그러면 열이 엄청나게 발생한다.
        • 스마트폰은 냉각 팬이 없기 때문에 열을 감당할 수 있을 만큼만 속도를 제한해야 한다.
        • 그래서 전력 소모를 낮게 유지하는 대신, 절대적인 속도는 PC용 CPU보다 낮게 설정되는 경우가 많다.
    3. 쉬운 비유: 경차 vs. 슈퍼카
      • ARM (경차): 기름을 아주 적게 먹고 목적지까지 잘 간다. 좁은 골목도 잘 다닌다. 연비(효율)는 최고지만, 시속 300km로 달릴 수는 없다.
      • CISC (슈퍼카): 엄청나게 빠르다. 하지만 기름을 어마어마하게 먹고 엔진 열도 엄청나다. 속도는 빠르지만 연비(효율)은 엉망이다.
    4. 느리면 비효율적일까?
      꼭 그렇지만은 않고, 용도에 따라 다르다.
      • 스마트폰: 속도가 조금 느리더라도 배터리가 하루 종일 가야 한다. (ARM이 유리함)
      • 딥러닝 서버: 전기를 아무리 많이 먹어도 좋으니 무조건 빨리 계산해야 한다. (CISC나 GPU가 유리함)

(3) 단순한 명령 집합이 가져오는 이점

  • 단순한 명령 집합은 적은 수의 트랜지스터만 필요로 하므로 간결한 설계와 더 작은 크기를 가능하게 한다.
  • 반도체 기본 부품인 트랜지스터는 전원을 소비하고 다이의 크기를 증가시키기 때문에, 스마트폰이나 태블릿PC용 프로세서에는 가능한 적은 트랜지스터를 가진 것이 이상적이다.
  • 결과적으로 명령 집합의 수가 적어 트랜지스터 수가 적고, 이로 인해 크기가 작고 전원 소모가 낮은 ARM CPU가 스마트폰, 태블릿 PC와 같은 모바일 기기에 주로 사용된다.

    🌟 다이(Die)

    반도체에서 '다이'는 아주 쉽게 말해 "웨이퍼라는 둥근 판에서 잘라낸 반도체 칩 조각 하나"를 의미한다.
    우리가 흔히 "CPU 칩"이라고 부르는 것의 껍데기(패키징)를 벗겨내면 나오는, 실제 회로가 그려진 아주 작은 실리콘 조각 그 자체가 바로 다이이다.

    1. 다이가 만들어지는 과정
      반도체는 커다란 원판인 '웨이퍼' 위에 수많은 회로를 그려서 만든다.
      이 원판을 격자 모양으로 칼질해서 하나씩 떼어내는데, 이때 나온 사각형 조각 하나하나를 '다이'라고 부른다.
    2. 왜 트랜지스터가 많아지면 다이가 커질까?
      트랜지스터는 회로를 구성하는 아주 작은 부품이다.
      • 트랜지스터 증가 = 회로 복잡도 증가: 더 많은 기능을 넣으려면 더 많은 트랜지스터가 필요하다.
      • 다이 크기 증가: 트랜지스터가 많아지면 그 부품들을 다 배치하기 위해 실리콘 조각(다이)의 면적이 넓어져야 한다.
    3. 왜 스마트폰에서는 다이가 작아야 할까?
      스마트폰이나 태블릿은 공간이 매우 한정적이기 때문이다.
      • 공간 효율: 다이가 커지면 기기 내부에서 차지하는 공간이 늘어나 배터리를 넣을 공간이 줄어든다.
      • 전력과 발열: 다이 면적이 넓고 트랜지스터가 많을수록 전기를 더 많이 쓰고 열도 더 많이 난다.
      • 비용 문제: 웨이퍼 한 판에서 다이를 작게 만들수록 더 많은 칩을 뽑아낼 수 있어 가격이 저렴해진다.

3. ARM의 생태계적 장점 및 발전 노력

(1) ARM 생태계의 특징

  • 소비자 입장에서 ARM은 하나의 '생태계'로 간주될 수 있다.
  • ARM을 위해 개발된 프로그램은 오직 ARM 프로세서가 탑재된 기기에서만 실행할 수 있다.
  • x86 CPU 프로세서 기반 프로그램은 ARM 기반 기기에서 실행할 수 없으며, 그 반대의 경우에도 프로그램에 수정이 가해져야만 실행이 가능하다.

    🌟 x86 CPU 프로세스 기반 프로그램

    x86 CPU 프로세서 기반 프로그램이란, 인텔(Intel)이나 AMD가 만드는 CPU에서 알아들을 수 있는 언어(명령어)로 작성된 소프트웨어를 말한다.
    쉽게 비유하자면, "인텔·AMD라는 나라의 언어(x86)로 쓰인 책"이라고 생각하면 된다.

    1. x86이란?
      • 역사: 1978년 인텔이 내놓은 '8086' 프로세서에서 시작된 설계 방식(아키텍처)이다. 뒤에 '86'이 붙어서 x86이라고 부른다.
      • 특징: RISC와 반대되는 CISC(Complex Instruction Set Computing) 방식을 사용한다. 복잡하고 강력한 명령어가 많아 고성능 작업에 유리하다.
      • 주요 기기: 우리가 흔히 쓰는 데스크탑 PC, 노트북(Windows), 서버 등이 대부분 x86 기반이다.
    2. 왜 "기반 프로그램"이라고 따로 부를까?
      CPU는 0과 1로 된 기계어만 이해하는데, CPU 설계 방식(ARM이냐, x86이냐)에 따라 이 기계어의 종류와 문법이 완전히 다르다.
      • x86 기반 프로그램: 인텔/AMD CPU의 문법에 맞춰 컴파일(번역)된 프로그램
      • ARM 기반 프로그램: ARM CPU의 문법에 맞춰 컴파일된 프로그램
    3. 호환성 문제 (번역 필요)
      그래서 x86 기반 프로그램은 ARM CPU가 탑재된 스마트폰에서 바로 실행할 수 없다.
      만약 x86 프로그램을 ARM 기기에서 돌리고 싶다면 두 가지 방법이 있다.
      • 수정 후 재컴파일: 프로그램 소스코드를 ARM 언어로 다시 번역해서 새로 만든다.
      • 에뮬레이터 사용: 실시간으로 x86 언어를 ARM 언어로 통역해 주는 프로그램을 중간에 둔다.

(2) OS 호환성 및 확장성

  • 하나의 ARM 기기에 동작하는 OS는 다른 ARM 기반 기기에서도 잘 동작하는 장점이 있다.
  • 이러한 장점 덕분에 수많은 버전의 안드로이드가 탄생하고 있으며, HP나 블랙베리의 태블릿에도 안드로이드가 탑재될 수 있는 가능성이 생기게 되었다.
  • 다만, 애플사는 iOS 소스코드를 공개하지 않고 있기 때문에 애플 기기에서는 이러한 호환성이 불가능하다.

(3) 지속적인 개선 노력

ARM을 만드는 기업들은 전력 소모를 줄이고 성능을 높이기 위해 설계를 지속적으로 개선하며 노력하고 있다.

0개의 댓글