from palette import colorful_colors

[마이크로프로세서] 명령어와 CISC vs RISC 본문

EE 학부과목/마이크로프로세서

[마이크로프로세서] 명령어와 CISC vs RISC

colorful-palette 2023. 3. 7. 20:38

Instruction(명령어)

컴퓨터 언어에 쓰이는 명령어를 의미한다. Assembly language(예시: $add, $ls, ... ), Machine language(기계어, 010101...)로 표현 가능하다. 명령어에는 CISC 계열과 RISC 계열이 있다.

 

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

cisc는 명령어가 complex(복잡)하고, risc는 명령어가 reduced(간단)하다.

cisc는 Intel CPU에 해당하는 Architecture고, RISC는 ARM계열에서 사용하는 애플의 M1칩 등등에서 사용하는 Architecture다. 좀 더 자세히 알아보자.

 

CISC

예를 들어 3번 연속 덧셈을 하는 과정을 '덧덧덧셈'이라는 하나의 명령어로 만들었다고 치자. 

장점: 이처럼 (어셈블리어)코드 여러 줄을 하나의 줄로 코딩 할 수 있다. 위 예시처럼 만약 복잡한 연산을 계속해서 실행할 일이 있을 경우 위처럼 새로운 명령어를 만들고 난 후 CISC구조를 사용하는게 유리할 것이다. 

단점: 많은 복잡한 명령어들을 CPU에 구현해야야 하므로 하드웨어 복잡도가 커진다. 또한 명령어 길이가 가변적이다.(8bit/16bit/32bit - 어떤 명령어는 엄청 복잡해서 길어야 하지만, 어떤 명령어는 간단해서 짧아도 되니깐)

→ 하드웨어 복잡도 감수

RISC

위의 CISC 예제에서 3번 연속 덧셈을 "덧셈", "덧셈", "덧셈" 이렇게 기본 명령어들로만 반복해서 실행한다.

장점: 많은 명령어를 CPU에 구현할 필요가 없으므로 하드웨어 복잡도가 낮다. 단순하다.

단점: 코딩에 대한 비중이 늘어난다(위의 CISC에서 한 줄의 어셈블리어 코드로 작성한 코드를 3번 나눠 실행해줘야 하니깐) 따라서 메모리 공간도 많이 필요하다. 

단, 코딩의 줄은 길어지지만 명령어 하나당 실행시간은 줄인다. (2~3 cycle 걸려서 수행될 것을 모든 명령어가 공평하게 1cycle만에 실행된다)

모든 명령어 길이가 동일하다(Architecture에 따라 모두 16bit or 모두 32bit)

메모리 공간 감수

 

 

메모리 접근 방식에 따라 CISC vs RISC:

CISC - 메모리에 바로 접근해서 연산 가능하다 / RISC - 메모리에 접근 바로 못 하고 CPU의 레지스터에 명령어를 가져와서 사용한다(Fetch)

 

 

프로세스 구조에 따라 CISC vs RISC:

 

CISC를 사용하는 프로세서 구조

insturction과 메모리 안에 있는 데이터 모두 같은 path에서 가져온다 → 병목현상 발생 가능 

 

RISC를 사용하는 프로세서 구조

Instruction 과 Data path를 분리하여, 명령어를 가져옴과 동시에 메모리의 데이터 처리가 가능하다.