만져보는 임베디드 시스템/아두이노 하드웨어

아두이노, Arduino-(2). ATmel AVR의 RISC 구조 및 CISC 구조 비교

hanjinee 2020. 8. 29. 22:19

안녕하세요 제타지니입니다.

아두이노 하드웨어 두번째 포스트를 시작합니다.

아두이노 기기는 ATmel 사의 마이크로 컨트롤러와 여러 부속부품들로 이루어져 있습니다
마이크로 컨트롤러는 아두이노 보드에서 가장 핵심적인 역할을 담당하고 있는데요, 

 

제목을 보자마자 RISC? 이건 뭐꼬? 하시는 분들이 있을 겁니다.

심지어는 ATmel이 뭐꼬!!!! AVR이 뭐꼬!!!!!!!!!!!!! 하시는 분들을 위해 차근차근 설명해 볼게요! 

그러니까 처음부터 설명을 해봅시당!

 

ATmel은 마이크로 컨트롤러를 만드는 회사죠. 큰회사에요 큰회사.

쉽게 설명해서, 한마디로 '반도체'를 만듭니다. 소자들을 만들죠. 이 아트멜 사에서 만든 AVR이라는 마이크로 컨트롤러. 이녀석에 대해서 설명해 보려고 하는 겁니다. AVR. Advanced Virtual RISC 라는 뜻의 약자입니다. 

               

(이미지: 아트멜 AVR - 위키백과, 우리 모두의 백과사전 참조)

 

 

 

어.. 어라? 몇 가지가 보입니다. 

 

​RISC 단일칩?? 하버드 구조???  

자자, 한번 보시죠

 

일단, 마이크로 프로세서를 설계하는 방법은 크게 두 가지로 나뉩니다. RISC 구조와 CISC 구조입니다. 이를 CPU 아키텍쳐라고 하는데요, 이 두 가지를 주의 깊게 보겠습니다. 

 

<기본 개념>

 

  • ET = Execution Time, 실행 시간
  • IC - Instruction Count, 명령어의 개수
  • CPI - Clock Per Instruction, Cycles Per Instruction, 평균 명령어당 클럭 펄스 수, 각 명령어 당 평균 연산 단계의 수.
  • CT - Clock Time, Seconds Per Cycle, 클럭 펄스의 사이클 시간, 하나의 연산 단계를 수행하는 시간.

 

즉, 실행시간(ET)를 줄이려면 IC, CPI, CT를 감소시켜야 한다. 

 

​CISC

​CISC(Complex Instruction Set Computer, 복잡 명령어 집합 컴퓨터) 마이크로 프로세서를 설계할 때 쓰이는 대표적인 CPU 아키텍쳐 입니다. CISC는 '​필요한 모든 명령어​'를 갖추도록 설계하는 방식입니다. '하드웨어에게 맡길 수 있는 것은 모두 하드웨어에게 맡기자(=하나의 명령어당 최대한의 많은 작업을 하게 하자)' 라는 원칙 아래에서 발전되었습니다. Intel 프로세서는 다음의 구조를 지니면서 발전을 해왔는데요, CISC구조가 지니는 특징은 다음과 같습니다. 

 

  • 복합적 고기능의 명령어 SET을 가집니다. 
  • 명령어의 길이가 다양하게 구성되어 있습니다. 
  • 많은 명령어와 다양한 종류의 명령어. 다양한 주소 모드, 변할 수 있는 명령어 형식으로 구성되어 있습니다. 
  • 모든 고급 명령어들에 대하여 각각 기계 명령어가 '​일대일 대응'​이 되게 하여, 컴파일 동작을 간소화​시켜 컴퓨터의 성능을 향상 시켰습니다. 
  • Micro-ROM 방식의 명령어 디코딩
    ==> 로직의 크기를 줄이고, 복잡한 프로세스를 하도록 만듭니다. 하나의 명령어당 하나의 복잡한 프로세스에 상응한다. 이와 같을 때, Micro-ROM 방식은 효율적입니다. 
  • CPU 동작 속도가 높아짐에 따라서 속도가 비례해서 증가합니다.  
  • 하나의 명령어를 실행시키는 데 하나 혹은 그 이상의 클럭을 필요로 합니다. 

 

자, 이렇게 하여보니 장단점이 확실히 눈에 뜨이죠? 

당연히 장점이라 함은,

 컴파일 기능이 쉽고, 명령어 갯수가 많으니, 그 안에서 호환성이 좋습니다.

단점

 하드웨어 구조가 복잡해지고, 그에 따라 가격이 상승할 수 밖에 없으며, 속도가 느릴 수 밖에 없겠습니다. 또한 ​전력소모​가 크지요. 아 물론, 이는 RISC에 비교했을 때에 한해서 입니다. 

 

설계 향상 목적​은 '명령어의 개수(IC)'를 줄이는 데 있습니다. 즉, 명령어의 개 수가 굉장히 많은 양을 차지하기 때문에, 가능한 적은 수의 명령어를 가지고 작업을 수행하는 데 주요 목표를 두고 있습니다.  

 

RISC

RISC(Reduced Instruction Set Computer, 축소 집합 명령어 컴퓨터)는 CISC를 사용하는 데 비교적 많은 시간이 걸리기 때문에, 다수의 간단한 명령어들을 정해두고 조합하여 사용하면 시간이 많이 절약되기 때문에 더욱 효율적으로 작업을 수행할 수 있습니다... 라는 '아이디어'에서 시작되었습니다. 특징은 다음과 같습니다. 실제로, CISC에 내장된 명령어에 비해 실제 사용하는 명령어는 10%에 불과합니다. 따라서, 빈도수가 높은 명령어들만을 내장하여 적은 수의 명령어를 내장하는 것이 RISC입니다. 

  • 고정된 길이의 명령어
  • 적은 수의 명령어
  • 랜덤 로직 방식의 디코딩​ 
    ==> 빠른 프로세싱을 할 때 채택되는 방식으로, 하나의 명령어가 복잡한 프로세스에 상응할 때는 효율적이지 못합니다. 
  • 단일 클럭 프로세싱 (파이프라인 프로세싱)
    ==>클럭 주기 하나당 하나의 명령어가 사용됩니다. 
  • 명령어 하나당 하나의 연산
  • 많은 레지스터 필요
  • 단순한 구조

==> 하드웨어의 집적 회로는 비교적 단순합니다. 다만, 하드웨어에서 작업하지 않는 대신에, 소프트웨어에 부담을 넘기기 때문에, 프로그램의 크기가 커질 수 밖에 없습니다. 또한 이러한 단순함은 하드웨어 제작 비용의 감소를 야기하며, 제작 시간까지 단축 시킵니다.  

  • 대량의 레지스터 셋과 메모리 계층의 다단계화
  • 캐시 메모리 역할 증대

 

 

그러니까 이에 관하여 파생되는 장단점은 다음과 같습니다. 

장점 

​-프로세싱 속도가 빠릅니다. (=특정 목적에 사용하는 경우 매우 효율적입니다. )

-CISC에 비해서 쉽게 프로그램을 개발할 수 있습니다.

-제작 비용이 적고, 제작 시에 시간이 단축됩니다. 

-RISC의 단순성 때문에, 마이크로 프로세서의 공간을 사용하는 방법을 더 자유롭게 만들어 줍니다. 

-적은 수의 명령어를 사용하므로, 효율적인 코드를 생산할 수 있게 됩니다.

 

​단점 

​-호환성이 좋지  않습니다. 

-복잡한 프로세싱은 효율성이 CISC에 비해 더 떨어지는 편입니다. 

-CISC에 비해 세밀성, 복잡성이 떨어집니다. 

 

설계 향상 목적​은 'CPI와 CT의 감소'에 있습니다. 명령어의 개수를 최적화 시켰으니, 하나의 연산을 수행하는 시간(CT)와 명령어당 연산 단계를 줄이는 데 목표점을 두고 있습니다. 

 

 

728x90