임베디드/stm32f103

2. RISC vs CISC

박재완 2022. 4. 19. 18:30
728x90
반응형

지난번에 언급한 RISC는 ARM에서 사용하는 구조라고 했는데 이부분은 arm 구조를 이해하는데 있어서 주요한 부분이라 생각되어 분리하여 설명하게 되었다.

우선 우리가 일반적인 pc에서 사용하는 intel amd cpu는 CISC 구조라 부르는데 이둘에 대한 설명은 비교해보면서 보면 이해하는데 큰 도움이 될것이다.

ISA란?

  • Instruction Set Architecture
  • 소프트웨어(시스템 소프트웨어)와 하드웨어 사이의 약속(인터페이스)
  • 개발자들은 보통 high-level language로 코드를 짠다. 하지만 컴퓨터가 이를 이해하기 위해서는 어셈블러(high-level language → assembly language)와 컴파일러(assembly languabe → machine language)를 거쳐 low-level lanaguage로 번역되어야 한다. 이렇게 low-level language로 번역된 후에는 hw에게 명령을 내려줘야 하는데, 이 때 sw와 hw 사이를 연결해주는 것이 ISA이다.

  • 즉, ISA는 소프트웨어와 하드웨어가 서로 통신할 수 있게 해주는 "명령어들의 집합"이다.
  • ISA 아래에 있는 micro architecture는 micro processor가 사용하는 명령어 처리 방식이다. micro processor는 우리가 아는 CPU라고 생각하면 된다.(과거와 비교했을 때 상대적으로 사이즈가 작아져서 micro가 붙었다고 한다.) 따라서 micro architecture 역시 CPU architecture의 맥락으로 이해하면 된다.
  • CPU architecture의 종류로는 CISC와 RISC가 있다.
    (참고로 컴퓨터 구조에서 자주 등장하는 MIPS는 전형적인 RISC 아키텍쳐 위에서 사용될 수 있는 ISA이다.

 

CISC와 RISC

CISC

  • Complex Instruction Set Computer
  • micro processor에게 명령을 내리는데 필요한 모든 명령어 셋을 갖추고 있는 processor이다. 따라서 복잡하고 기능이 많은 명령어로 구성되어있다.
  • 과거에는 컴퓨터 메모리 용량이 크지 않아서 sw 프로그램의 용량을 줄이기 위해 하나의 명령어로 여러 작업을 수행하도록 했기 때문에 CISC를 많이 사용하였다.
  • [장점] 복합적이고 기능이 많기 때문에 하위 호환성이 좋다. 따라서 호환성이 절대적으로 필요한 PC 환경에서는 CISC를 사용하는 것이 좋다.
  • [단점] 하지만 트랜지스터 집적에 있어서 효율성이 떨어지기 때문에 성능 향상을 방해하는 요인이 될 수 있으며, 전력 소모가 크고, 속도가 느리고, 가격이 비싸다는 등의 단점이 있다.
  • [용도] 다양한 명령어들을 포함하고 있어 일반적으로 우리가 사용하는 범용 컴퓨터(general-purpose computer)의 CPU로 많이 사용된다.

RISC

  • Reduced Instruction Set Computer
  • CISC 내부에 갖추어진 모든 명령어들 중 불과 20%에 해당하는 명령어들만이 전체 80% 이상의 일을 처리한다. 따라서 CISC와 같이 필요한 모든 명령어 셋을 갖고 있는 것은 비효율적일 수 있다. 이를 극복하기 위해 등장한 것이 RISC이다.
  • [장점] RISC는 적은 수의 명령어들(사용 빈도가 높은 20%의 명령어들)로 구성된 processor이다. 따라서 CISC보다 더 빠른 속도로 동작할 수 있으며, 단순하고, 전력소모가 적고, 가격도 저렴하다.
  • [단점] 하지만 하드웨어가 간단한 대신 소프트웨어가 크고 복잡해졌으며, 하위 호환성이 부족하다는 단점이 있다.
  • [용도] RISC 구조는 파이프라인 중첩이 가능해서 같은 수의 명령어에 대해 적은 clock으로 처리가 가능하며 발열과 전력 소모도 줄일 수 있다. 따라서 임베디드 프로세서에서는 RISC 구조를 많이 사용한다. (MIPS, ARM)

 

이를 정리해보자면 cisc risc 모두 isa로 각 명령어를 처리하기 위한 레지스터를 어떤 관점으로 두고 구조가 발생했는지 보고 둘을 비교해본다면 쉽게 이해가 가능하다. 물론 NISC 라는 모델도 존재 하지만 현재 ARM을 두고 본다면 CISC와 RISC의 차이만 알고 있어도 공부하는데 있어서 많은 도움이 될것이라고 생각한다.

728x90
반응형

'임베디드 > stm32f103' 카테고리의 다른 글

3. LED_BLINK  (0) 2022.04.21
1. cortex 프로세서  (0) 2022.04.18