Linux Kernel(4.19) Hacks

rousalome.egloos.com

포토로그 Kernel Crash


통계 위젯 (화이트)

80258
1323
114582


[ARM] ARM 프로세서 소개 - RISC와 CISC란 무엇인가? [ARM] Instruction

이 세상에는 다양한 종류의 프로세서들이 있습니다. 예를 들어 봅시다.

   * x86
   * MIPS
   * Power PC
   * ARM

이제부터 ARM 프로세서에 대해 이야기를 하겠습니다. 자, 여기서 한 가지 의문이 생깁니다.

   * 임베디드 개발자들은 왜 ARM 프로세서를 배워야 할까?

간단히 답을 드리면 임베디드 개발에서 ARM 프로세서가 아주 많이 쓰이기 때문입니다. 가장 큰 이유는 ARM 프로세서는 전력을 조금 소모한다는 사실입니다.
 
그렇다면 ARM이 저전력 프로세서인 이유는 무엇이며 임베디드 시스템에 적합한 이유는 무엇일까요? 그 이유에 대해 조금 더 자세히 알아 보겠습니다. 보통 마이크로 프로세스는 크게 2 가지 범주로 나눌 수 있습니다.  

   * CISC (Complex Instruction Set Computer)
   * RISC (Reduced Instruction Set Computer)

이 중에서 ARM 프로세서는 RISC범주에 속합니다. ARM의 약자가 자신이 RISC 타입이라는 사실을 말줍니다. 

   * ARM = Advanced RISC Machine

CISC란 무엇일까?

그럼, CISC는 무엇일까요?  
CISC는 수 많은 명령어와, 데이터 타입, 그리고 어드레싱 기법들을 모두 채택해 설계한 아키텍처입니다. CISC 아키텍처의 가장 큰 특징을 요약하면 다음과 같습니다.

   * 칩의 사이즈가 크다 
   * 명령어의 체계가 복잡하다.
   * 칩의 설계 구조가 복잡하다.

RISC란 무엇인가?

이렇게 CISC는 수 많은 명령어와 세부 기능을 제공해서 시스템 개발자는 CISC 아키텍처에 대한 회의감이 들기 시작했습니다. 한 개의 명령어를 사용하려면 너무 많은 것 알아야 하기 때문입니다. 그래서 다음과 같은 기능을 제공하는 마이크로 프로세서를 고안했습니다.
 
   * 자주 사용되는 명령어나 데이터 포멧 그리고 어드레싱 기법 만을 모아 단순한 마이크로 프로세서를 설계하자.

이 과정에서 태어난 것이 바로 RISC입니다. RISC는 CISC의 단점을 극복하는 과정에서 설계가 됐으므로 다음과 같은 특징을 지닙니다.

   * 명령어 길이가 고정되어 있음
   * 명령어의 종류가 많지 않음
   * 적은 수의 어드레싱 기법

이런 방식으로 마이크로 프로세서를 설계하니 칩의 복잡도가 낮아지고 크기도 작아지게 됩니다. 

   * 그 결과 자연스럽게 전력소비도 줄어들게 됐습니다. 

그런데 어떤 프로세서를 설계하든 장점이 있으면 단점도 있기 마련입니다. 이번에는 RICS의 단점에 대해서 잠깐 짚고 넘어 갈까요?

RISC 타입의 마이크로 프로세서는 명령어가 단순해 CISC 마이크로 프로세서에서는 한 개의 명령어로 처리될 기능을 위해 RISC에서는 몇 개의 명령어를 반복해서 실행해야 합니다. 결과 성능도 떨어질 때가 생깁니다. RISC가 태생적으로 CISC의 복잡한 설계 방식을을 극복하기 위해 설계됐으므로 어쩔 수 없는 단점이라고 볼 수 있습니다. 

지금까지 ARM 프로세서가 속하는 RISC 기법이 탄생된 배경과 장점에 대해 설명을 드렸습니다. 

이번에는 CISC와 RISC의 세부 설계 원칙을 하드웨어 관점으로 소개하겠습니다.
CISC는 마이크로 프로그래밍 방식을 채택한 대신 RISC는 Hard Wired 방식으로 설계 됐습니다. 마이크로 프로그래밍 방식과 Hard Wired 방식은 무엇일까요? 조금 더 알아봅시다.

   * 마이크로 프로그래밍 방식: 기계어 하나를 실행하기 위해 많은 양의 작은 마이크로 인스트럭션들이 내장돼 
                               실행되는 방식 

   * Hard wired 방식: 기계어 한 줄을 실행하기 위해 아예 그에 해당하는 논리회로를 구성

덧글

  • RuBisCO 2019/12/04 14:33 # 답글

    이것도 꽤나 오래전의 이야기고 현재야 RISC라는 ARM도 명령을 마이크로옵으로 쪼개고, 명령셋은 누더기처럼 쌓아올려져가고, RISC-V도 가변길이명령 입니다. 이젠 명확하게 구분하기엔 경계선이 매우 흐릿하죠.
  • AustinKim 2019/12/04 15:13 #

    좋은 정보 감사합니다. ARM 명령어가 누더기가 됐군요.
댓글 입력 영역