권찡's 공학이야기

컴퓨터 구조지식(RISC vs CISC ) 본문

Electronics/Embedded system

컴퓨터 구조지식(RISC vs CISC )

권찡 2020. 2. 7. 13:34

앞서 간략히 범용 컴퓨터와 특수 목적용 컴퓨터에 대해서 소개했습니다.

 

조금만 더 세부적으로 들어가 설명해보죠.

 

기본적인 범용컴퓨터의 구성은 누구나 이해하기 쉬울 것 같네요.

기본적으로 이런 컴퓨터죠. 이런 컴퓨터를 조금 하드웨어와 소프트웨어로 구분해서 보면 아래와 같이 구분됩니다.

하드웨어는 입력 장치, 메모리, cpu, 보조 메모리, 출력 장치 등등을 말하는 것이죠.

 

입력장치 : 키보드, 마우스, 터치스크린, 혹은 마이크 , 카메라 등등 컴퓨터가 사용자에게 정보를 입력받기 위한 장치입니다.

 

 

 

메모리 : 메모리의 경우 main memory 와 secondary memory 로 나눠짐

 

메인 메모리(주기억장치) : 주로 RAM같은 것은 메인 메모리라고 합니다. 기본 수행프로그램과 수행에 필요한 데이터를 저장하고 있는 장치이고, 보조기억장치로부터 업로드 후 임시 저장을 하는 장치 입니다.

 

 

보조 메모리(보조기억장치) : 흔히 알고 있는 여러분들의 컴퓨터 용량를 나타내는 HDD(하드디스크), 혹은 지금쓰지도 않는 플로피 디스크 ,CD 혹은 USB 등등이 보조 메모리에 속합니다.

 

 

 

 

출력 장치 : 컴퓨터에서 처리된 결과를 사용자가 보거나 들을수 있게 해주는 장치

 

모니터,프린트,스피커 등등의 기기가 출력장치를 뜻합니다.

 

 

 

 

가장 중요한 CPU는 중앙처리장치의 준말로써 프로그램 실행과 데이터 처리 를 하고 일반적으로 제어장치, 연산장치,레지스터 등으로 구성되있습니다.

 

CPU의 예를 든다면 intel i7정도? 요즘에는 더 많죠, amd도 있고, 더 좋은 버전도 있고.

 

 

 

이 칩 안에 수많은 반도체로 논리회로 연산회로를 구성하는 것입니다.

 

CPU내부에는 ALU,제어장치 ,register가 있는데

 

ALU : cpu 내에서 사칙연산, 참과 거짓의 판별 하는 논리연산 등등을 수행합니다.

 

control 장치: cpu내의 일어나는 모든 작업을 통제합니다. 어떤 명령부터 수행할지 명령을 해석해서 어디에 전달할지 등등 적절한 부분으로 제어신호를 전달하는 역활을 합니다.

 

register : 레지스터 라고 하는데 쉽게 말하면 cpu내의 임시 기억장치라고 생각하시면 됩니다.

 

 

 

 

이번에는 소프트웨어를 보면

기본적인 시스템 소프트웨어가 있고 응용 소프트웨어가 있습니다.

 

-시스템 소프트웨어

컴퓨터를 효율적으로 사용하기 위해 만들어진 소프트웨어

컴퓨터 시스템을 제어하는 운영프로그램

ex) Windows, Linux, Unix, 안드로이드 등등

 

-응용 소프트웨어

특정한 응용분야에서 사용하기위해서 만든 소프트웨어

시스템 소프트웨어 구동후 실행가능

ex)한글,엑셀,Explorer,게임 등등 여러가지

 

 

 

 

대충 나눠보면 컴퓨터구조는 위와 같이 나눠집니다. 그렇다면 RISC는 CISC와 어떤 차이가 있을까요?

 

중요한 차이는 '명령어'입니다.

 

조금 역사적인 배경을 알면 좋을 것 같네요.

 

기존 CISC는 필요한 모든 명령어 셋을 갖추도록 설계된 마이크로프로세서에 용어로, 요구되는 능력을 가장 효율적인 방법으로 제공했습니다.

 

이는 하나의 명령어당 최대한 많은 작업을 하게하는 것이고, 적은 수의 명령어로 많은 일을 할 수 있어 프로그램 작성하기도 쉽고 컴파일러의 코드 생성도 쉽죠.

 

그런데 이런 명령어들 중 불과 20%정도가 80%일을 처리한다는 것을 IBM에서 증명합니다.

대부분의 Complier 제작사들이 CISC의 Instruction Set들을 잘 사용하지 않았던거 같습니다. 여기서 말하는 Instrution Set는 하드웨어가 직접 해독.실행이 가능한 명령어 집합을 말합니다.

 

어쨌든 그래서 복잡한 나머지 80%명령어를 제거하여 사용빈도가 높은 명령어 위주로 20%의 명령어를 H/W화하여 처리속도를 향상시킨 것입니다. 컴퓨터의 실행속도를 높이기 위해 복잡한 처리는 소프트웨어에게 맡기는 방법을 채택해, 명령세트를 축소 설계한 컴퓨터가 RISC입니다. 

 

 

Instruction Set 적용 분류를 마이크로프로세서, 명령어 처리 및 구성 방식으로 비교해보죠

 

CISC

  -  연산에 처리된느 복잡한 명령어들을 수백 개 이상 탑재하고 있는 프로세서

  -  마이크로 프로그래밍을 통해 사용자가 작성한 고급 언어에 각가 하나식 기계어를 대응시킨 회로로 구성된 중앙처리장치의 한 종류

  -  컴퓨터가 지원하는 명령어가 많을수록 프로그램 내의 Instruction count는 줄어듬

  -  명령어 길이가 상이함

 

RISC

  -  복잡한 80%의 명령어를 제거, 사용빈도가 높은 명령어 위주로 20%명령어를 H/W화해 처리속도 향상시킨 프로세서

  -  복잡한 처리는 소프트웨어에 맡기는 방법을 채택해, 명령세트를 축소 설계한 컴퓨터

  -  모든 명령어의 길이를 일정하게 만듬

  -  하나의 Cycle에 여러 명령어 수행/Hardwired control

 

명령어 처리 순서와 구성을 표로 비교해보면 아래의 형식입니다.

구성요소를 보면 알겠지만 가장 큰 차이는 Cache에 있습니다.

CISC는 L1 Cache와 L2 Cache가 존재합니다. 

L1 Cache : Cpu 내의 캐쉬 메모리로 고속의 속도와 높은 가격이 특징이며, 메모리와 CPU간 병목현상 해결용

L2 Cache : CPU와 주기억장치 사이에 위치하는 캐쉬로 일반적으로 메인보드에 위치, L1에 비해 낮은 속도와 낮은 가격을 형성하고 있으나, 주 기억장치에 비해서는 높은 가격과 높은 성능을 가짐

 

반면, RISC는 Data Cache와 명령 Cache가 있습니다.

Data Cache : CPU의 데이터 처리를 위한 캐쉬로 CISC의 캐쉬와 비교해 용량과 성능이 뛰어남

명령 Cache : CPU의 명령어 처리를 위한 캐쉬로 파이프 라인 구조로 처리시 CISC와 비교해 높은 성능을 가짐 

 

하드웨어 설계 관점으로 보면

CISC는 마이크로 프로그래밍 방식을 채택한 대신 RISC는 Hard Wired 방식으로 설계됐습니다.

마이크로 프로그래밍 : 기계어 하나를 실행하기 위해 많은 양의 작은 마이크로 Instruction들이 내장 실행되는 방식

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

 

 

그렇다면 이런 컴퓨터의 큰 2가지 분류는 임베디드와 무슨 관계가 있을까요?

 

세상에는 여러 종류의 프로세서들이 존재합니다.

X86, MIPS, Power PC, ARM 등등

 

어느정도 아시는 분들은 아실텐데, 많은 반도체 칩들이 ARM 프로세서를 많이 씁니다. 

또한 임베디드 개발에서 ARM프로세서가 아주 많이 쓰이죠. 이유는 저전력이기 때문임니다.

 

과거 기준으로 ARM 프로세서는 RISC범주에 속합니다. ARM의 풀네임이 아래와 같죠.

 

ARM =Advanced RISC Machine

 

 

 

사실 RISC프로세서냐 CISC프로세서냐는 임베디드에 있어 선호도 및 목적에 맞는 적합성 차이라 생각하기 때문에 어떤 쪽이 옳은 방법인지는....(현재는 이런 RISC와 CISC의 경계도 많이 모호해지고 있기 때문에)

ARM도 명령을 마이크로옵으로 쪼개고, 명령셋은 누더기처럼 쌓아올려져 가고 있고, RISC-V도 가변길이 명령이라 이젠 경계선이 매우 흐릿하긴 하지만 기본적 내용 정도는 알아 둡시다.

 

 

세부적으로 CISC와 RISC + EPIC 등등은 제대로 Computer Architecture에서 한번 더 자세히 다루겠습니다.

'Electronics > Embedded system' 카테고리의 다른 글

임베디드 시스템  (0) 2020.02.07