Skip to Content
독학사독학사 2단계컴퓨터구조14. CISC와 RISC, 제어 방식의 차이

이번 문서의 목표: 이 파일을 다 읽으면 CISC와 RISC의 설계 철학 차이를 명령어 집합·구조 특징별로 비교할 수 있고, 하드와이어드 제어와 마이크로프로그램 제어가 각각 어떤 방식으로 제어신호를 만들며 CISC·RISC와 어떻게 연결되는지 설명할 수 있다.

왜 명령어 집합의 설계 철학이 갈렸을까

11편에서 제어장치가 제어신호를 만들어 데이터패스를 움직인다고 배웠고, 12편·13편에서 명령 사이클과 다양한 주소지정 방식을 살펴봤다. 그런데 “명령어를 얼마나 다양하고 복잡하게 만들지”에 대한 철학은 컴퓨터 역사에서 크게 두 갈래로 나뉘었다. 하나는 “복잡한 작업도 명령어 하나로 처리하게 만들자”는 방향이고, 다른 하나는 “명령어를 최대한 단순하게 만들어 빠르게 처리하자”는 방향이다. 이 두 철학이 바로 CISCRISC다.

CISC: 복잡한 명령어 집합 컴퓨터

쉽게 말하면: CISC는 “고급 언어의 복잡한 문장 하나를 기계어 명령어 하나로 최대한 가깝게 대응시키자”는 철학이다.

CISC(Complex Instruction Set Computer, 복잡 명령어 집합 컴퓨터)는 하나의 명령어가 여러 단계의 작업(메모리 접근 여러 번, 산술 연산, 조건 판단 등)을 한꺼번에 수행하도록 설계한 방식이다. 프로그래머나 컴파일러가 짧은 명령어 몇 개만 써도 복잡한 동작을 표현할 수 있게 하는 것이 목표였다. 대표적으로 x86 계열 프로세서가 CISC 철학을 따른다.

CISC의 대표적인 특징은 다음과 같다.

  • 명령어 종류가 매우 많고(수백 개), 명령어 길이가 가변적이다.
  • 13편에서 배운 여러 주소지정 방식을 다양하게 지원한다.
  • 하나의 명령어가 메모리에 여러 번 접근할 수 있다(메모리-메모리 연산 지원).
  • 명령어 하나가 복잡한 작업을 수행하므로, 같은 프로그램을 표현하는 데 필요한 명령어 개수(코드 크기)가 상대적으로 적다.

RISC: 축소 명령어 집합 컴퓨터

쉽게 말하면: RISC는 “명령어를 단순하고 일정한 형태로만 만들어, 그 대신 한 클록에 명령어 하나씩 빠르게 처리하자”는 철학이다.

RISC(Reduced Instruction Set Computer, 축소 명령어 집합 컴퓨터)는 명령어 종류를 최소화하고, 모든 명령어의 길이와 실행 시간을 최대한 균일하게 만들어 파이프라인(pipeline, 19편에서 다룬다) 처리를 쉽게 만드는 데 초점을 둔 설계 철학이다. ARM 계열 프로세서가 대표적인 RISC 사례다.

RISC의 대표적인 특징은 다음과 같다.

  • 명령어 종류가 적고, 명령어 길이가 고정되어 있다.
  • 적재/저장(Load/Store) 구조를 따른다. 즉 메모리 접근은 오직 load(메모리→레지스터)와 store(레지스터→메모리) 명령어만 담당하고, 산술·논리 연산은 반드시 레지스터끼리만 이뤄진다.
  • 하나의 명령어가 한 클록 주기 안에 실행을 마치는 것을 목표로 한다.
  • 명령어가 단순한 만큼, 같은 프로그램을 표현하려면 CISC보다 더 많은 개수의 명령어가 필요하다(코드 크기가 상대적으로 크다).
  • 복잡한 제어는 하드웨어 대신 컴파일러가 최적화로 담당한다.

CISC vs RISC 비교표

쉽게 말하면: CISC는 “명령어를 복잡하게 만들어 개수를 줄이자”, RISC는 “명령어를 단순하게 만들어 속도를 높이자”는 정반대 방향의 선택이다.

비교 항목CISCRISC
명령어 종류 수많음(수백 개)적음
명령어 길이가변적고정적
주소지정 방식다양하게 지원단순하게 제한
메모리 접근대부분의 명령어가 메모리 접근 가능Load/Store 명령어만 메모리 접근
실행 클록 수명령어마다 다름(여러 클록 필요)대부분 한 클록에 실행 목표
제어장치 구현주로 마이크로프로그램 방식주로 하드와이어드 방식
파이프라이닝 적합성상대적으로 어려움상대적으로 쉬움
코드 크기(프로그램당 명령어 개수)작음
컴파일러의 역할상대적으로 단순최적화 부담이 큼
대표 예시x86 계열ARM 계열

시험 함정: “RISC가 CISC보다 명령어 개수(프로그램 전체의 명령어 수)가 적다”는 설명은 틀렸다. RISC는 명령어의 “종류”가 적은 것이지, 같은 작업을 처리하는 데 필요한 명령어 “개수”는 오히려 RISC 쪽이 더 많다. 복잡한 동작을 CISC는 명령어 하나로, RISC는 단순 명령어 여러 개의 조합으로 처리하기 때문이다.

제어장치가 신호를 만드는 두 가지 방식

쉽게 말하면: 제어신호를 하드웨어 회로로 직접 만들면 하드와이어드, 미리 저장해 둔 프로그램처럼 읽어와 만들면 마이크로프로그램 방식이다.

11편에서 제어장치가 제어단계 계수기 값에 따라 서로 다른 제어신호를 내보낸다고 배웠다. 그런데 “그 신호를 구체적으로 어떻게 만들어내는가”에는 두 가지 접근법이 있다.

하드와이어드 제어

하드와이어드 제어(hardwired control)는 제어신호를 조합논리회로(AND·OR·NOT 게이트의 배선)로 직접 구현하는 방식이다. 09편에서 배운 조합논리회로 설계 방식 그대로, 오퍼레이션 코드와 제어단계 값을 입력으로 받아 회로가 즉시 제어신호를 출력한다.

  • 장점: 회로가 신호를 즉시 만들어내므로 속도가 매우 빠르다.
  • 단점: 회로가 배선 자체로 고정되어 있어, 명령어 집합을 수정하거나 추가하려면 회로를 다시 설계해야 한다. 명령어 종류가 많아질수록 회로가 기하급수적으로 복잡해진다.

마이크로프로그램 제어

마이크로프로그램 제어(microprogrammed control)는 제어신호 자체를 마이크로명령어(microinstruction)라는 형태로 미리 작성해, 이를 제어기억장치(Control Memory, CM)라는 전용 메모리에 저장해 두는 방식이다. 실행 시에는 이 제어기억장치에서 마이크로명령어를 순서대로 읽어와 제어신호로 사용한다. 오퍼레이션 코드가 정해지면 그 오퍼레이션 코드에 해당하는 마이크로명령어들의 시작 주소로 이동해, 한 줄씩 읽으며 순서대로 제어신호를 만들어낸다.

  • 장점: 새로운 명령어를 추가하거나 기존 명령어의 동작을 바꾸려면 제어기억장치에 저장된 마이크로프로그램만 수정하면 되므로, 설계 변경과 유지보수가 하드와이어드 방식보다 훨씬 쉽다.
  • 단점: 매 단계마다 제어기억장치를 읽어오는 과정 자체가 추가 시간이 걸리므로, 하드와이어드 방식보다 속도가 느리다.

하드와이어드 vs 마이크로프로그램 비교표

비교 항목하드와이어드 제어마이크로프로그램 제어
제어신호 생성 방법조합논리회로(배선)로 직접 구현제어기억장치에 저장된 마이크로명령어를 읽어서 생성
속도빠름상대적으로 느림
설계 변경 용이성어려움(회로 재설계 필요)쉬움(마이크로프로그램만 수정)
복잡한 명령어 지원회로가 매우 복잡해짐상대적으로 유연하게 지원
주로 쓰이는 명령어 집합RISC(명령어 단순 → 회로 단순)CISC(명령어 복잡 → 유연성 필요)

시험 함정: “마이크로프로그램 제어가 하드와이어드 제어보다 빠르다”는 설명은 틀렸다. 마이크로프로그램 방식은 제어기억장치를 읽어오는 절차가 추가되므로 하드와이어드 방식보다 느리다. 대신 유연성(설계 변경 용이성)에서 앞선다.

왜 CISC는 마이크로프로그램, RISC는 하드와이어드를 선호할까

CISC는 명령어 종류가 매우 많고 각 명령어가 복잡한 동작을 수행하므로, 이를 전부 조합논리회로만으로 구현하면 회로가 지나치게 복잡해지고 설계 변경도 어려워진다. 반면 마이크로프로그램 방식은 제어기억장치의 내용만 바꾸면 새 명령어를 추가할 수 있어 CISC의 방대한 명령어 집합을 다루기에 적합하다.

RISC는 명령어 종류를 애초에 최소화했기 때문에 회로로 직접 구현해도 복잡도가 감당할 수 있는 수준이며, 하드와이어드 방식의 빠른 속도가 RISC의 “한 클록에 명령어 하나씩 처리한다”는 목표와 정확히 맞아떨어진다. 이처럼 명령어 집합 설계 철학(CISC/RISC)과 제어장치 구현 방식(마이크로프로그램/하드와이어드)은 서로 짝을 이루는 선택이라는 점이 시험에서 비교 문항으로 자주 나온다.

자주 틀리는 점

  • CISC와 RISC를 “명령어 종류의 많고 적음”으로만 기억하고, 메모리 접근 방식(Load/Store 구조 여부)이나 실행 클록 수의 차이를 놓치는 경우가 많다.
  • “RISC는 명령어 개수가 적다”는 문장을 “프로그램을 구성하는 명령어 총 개수가 적다”는 뜻으로 착각하기 쉬운데, 정확히는 “명령어의 종류가 적다”는 뜻이다.
  • 하드와이어드 제어와 마이크로프로그램 제어의 속도·유연성 관계(하드와이어드는 빠르지만 경직, 마이크로프로그램은 느리지만 유연)를 반대로 외우는 실수가 잦다.

핵심 정리

  • CISC는 명령어 종류가 많고 가변 길이이며 복잡한 동작을 명령어 하나로 처리하는 반면, RISC는 명령어 종류를 최소화하고 고정 길이·Load/Store 구조로 파이프라이닝에 최적화한다.
  • RISC는 명령어 “종류”가 적을 뿐, 같은 작업을 처리하는 명령어 “개수”는 CISC보다 많을 수 있다.
  • 하드와이어드 제어는 조합논리회로로 제어신호를 직접 만들어 빠르지만 설계 변경이 어렵고, 마이크로프로그램 제어는 제어기억장치의 마이크로명령어로 신호를 만들어 느리지만 유연하다.
  • CISC는 방대한 명령어 집합을 유연하게 다루기 위해 주로 마이크로프로그램 제어를, RISC는 단순한 명령어 집합을 빠르게 처리하기 위해 주로 하드와이어드 제어를 채택한다.

마무리 복습

문제 14지선다
CISC(Complex Instruction Set Computer)의 특징으로 옳은 것은?
문제 24지선다
RISC와 CISC를 비교한 설명으로 옳지 않은 것은?
문제 34지선다
하드와이어드 제어(hardwired control) 방식에 대한 설명으로 옳은 것은?
문제 44지선다
마이크로프로그램 제어(microprogrammed control) 방식에 대한 설명으로 옳지 않은 것은?
문제 54지선다
RISC 프로세서가 주로 하드와이어드 제어 방식을 채택하는 이유로 가장 적절한 것은?
문제 64지선다
CISC와 RISC, 하드와이어드 제어와 마이크로프로그램 제어의 대응 관계로 가장 적절한 것은?

참고 자료

Last updated on