CISC와 RISC

CISC : Complex Instruction Set Computer 복잡한 명령어 집합 컴퓨터

RISC : Reduced Instruction Set Computer 단순한 명령어 집합 컴퓨터

CISC란 이름은 RISC 프로세서를 개발하며 과거의 방식을 CISC라 부른 것이다.

과거 80년대 이전, 컴퓨터의 메모리 용량은 적고 속도가 느렸기 때문에 프로그램의 용량을 줄일 수 있으면서 메모리를 자주 사용하지 않으려면 하나의 명령어가 복잡한 작업을 하도록 만들어야 했다.

자주 사용하는 명령어는 길이를 작게, 아닌 명령어는 크게 만드는 가변 길이 명령어 형식이 되었고, 이후 발전할수록 좀 더 고기능의 복잡한 명령어 집합 구조를 가지게 되었다.

복잡하다는 것은 명령어 형식의 종류가 많다는 것이고, 이는 주소 지정 방식의 종류, 명령어의 길이가 다양하다는 뜻이다.

따라서 뭘 하는 명령(opcode)인지 해독하기 전까진 명령어의 길이를 알 수 없어 파이프라인 실행이 어렵다.

또 이를 구현하려면 하드웨어가 복잡해지니 하드웨어 성능 향상의 발목을 잡게 되었다.

이후 메모리의 용량당 가격이 하락하여 과거처럼 프로그램의 용량을 신경 써서 줄일 필요성이 줄어들었고, 속도 또한 매우 빨라졌다.

또 CISC의 복잡한 명령어는 거의 사용되지 않는다는 연구 결과가 나오고, 차라리 고정 길이이며 단순한 명령을 고속으로 실행하는 것이 더 높은 성능을 낼 수 있을 것이란 생각에 RISC 쪽으로 방향이 전환되었다.

RISC 구조는 메모리 액세스는 꺼내기(load), 저장하기(store)만 하고, 연산 명령의 오퍼랜드(operand)는 레지스터(register)만 사용 가능한 구조다.

따라서 다음 명령어의 위치를 알 수 있고, 연산 명령을 처리하는 중엔 메모리 액세스가 없어 파이프라인 처리가 쉽다.

현재는 더욱더 하드웨어가 발전해 칩 밀도가 높아지고 속도도 빨라져 복잡한 회로라고 크기가 문제가 되지 않고, RISC와 CISC의 장점을 합치는 추세이다.

현재 데스크톱에 쓰이는 AMD, Intel의 프로세서는 옛날 프로그램의 호환성을 유지하기 위해 CISC 방식을 사용하지만, 현재는 CISC 방식 명령을 프로세서 내부에서 RISC 방식으로 변환해서 파이프라인으로 실행하는 구조이다.

SW Level Up

mail@swlevelup.com

답글 남기기

이메일 주소를 발행하지 않을 것입니다.