본문 바로가기

CS-Study

컴퓨터 구조 : 명령어 집합 구조, CISC 와 RISC

728x90

📗 명령어 집합(ISA)

명령어 집합이란 CPU가 이해할 수 있는 명령어들의 모음을 말한다.

명령어의 세세한 구조와, 연산, 주소지정 방식은 CPU 마다 다르다.

CPU는 자신의 명령어 집합에 속한 명령어만 이해할 수 있다.

 

예를 들어, 명령어 집합이 각기 다른 A와 B CPU가 있다고 할 때,

A CPU에서 만든 실행 파일을 그대로 B CPU에 옮겨

특별한 설정 없이 바로 실행하면 실행되지 않는다.

 

명령어들의 모음으로 만들어진 것이 실행 파일인데, A에서 이해할 수 있는

명령어의 모음으로 만든 실행 파일을 B에 바로 옮기면 

이해할 수 있는 명령어가 아니기 때문에 실행이 불가한 것이다.

 

=> 같은 소스코드를 컴파일 하더라도 CPU에 따라 다른 기계어, 어셈블리어가 나올 수 있다.

 

🖥️ISA(Instruction Set Architecture)

명령어 집합, 혹은 명령어 집합 구조(ISA)는

하드웨어가 소프트웨어를 어떻게 이해할지에 대한 약속이기도 하다.

ISA가 달라지면 그에 따른 많은 것들이 달라지게 된다.

 

- 명령어 해석 방식

- 레지스터의 종류와 개수

- 파이프라이닝의 용이성

 

📗 ISA의 두 종류

명령어 집합에는 대표적으로 CISC와 RISC 2가지 종류가 있다.

 

🖥️CISC (Complex Instruction Set Computer)

CISC의 풀네임에서도 알 수 있듯이 복잡한 명령어 집합을 활용하는 컴퓨터를 말한다.

CISC를 사용하는 예로 Intel의 x86, x86-64 CPU가 있다.

 

CISC는 복잡하고 다양한 명령어를 활용하기 때문에 명령어의 형태와 크기가 

다양한 가변 길이 명령어를 활용한다.

 

다양하고 강력한 명령어를 활용하기 때문에 상대적으로 적은 수의 명령어로도

프로그램을 실행할 수 있다.

 

✅CISC의 단점

명령어 파이프라이닝이 불리하다는 치명적인 단점이 존재한다.

명령어 하나하나가 복잡하고 다양한 기능을 제공하기에 

명령어의 크기와 실행되기까지의 시간이 일정하지가 않다.

파이프라이닝에 유리하기 위해서는 각 명령이 한 클럭 주기로 

실행되어야 하고 명령어의 길이나 실행 시간도 일정해야 한다.

또, 하나의 복잡한 명령어를 실행하는데에 여러 클럭 주기가 필요하고

대다수의 복잡한 명령어는 사용빈도가 낮다.

 

🖥️ RISC (Reduced Instruction Set Computer)

CISC에 비해 명령어의 종류가 적고 짧으며 규격화된(고정된) 명령어를 사용한다.

따라서 명령어 파이프라이닝에 유리하다고 할 수 있다.

메모리 접근 명령어를 Load, Store 2가지 명령으로 축소하여 메모리 접근을 최소화한다.

RISC는 레지스터를 십분 활용하므로 CISC에 비해 범용 레지스터의 수가 많다.

명령어 종류가 적기에 더 많은 명령어로 프로그램을 동작 시켜야 한다.

 

📗 정리

CISC RISC
복잡하고 다양한 명령어를 사용 단순하고 적은 개수의 명령어를 사용
가변길이명령어 고정길이 명령어
다양한 주소 지정 방식 적은 주소 지정 방식
프로그램을 이루는 명령어의 수가 적음 프로그램을 이루는 명령어의 수가 많음
여러 클럭에 걸쳐 명령어 수행 1클럭 내외로 명령어 수행
파이프라이닝하기 어려움 파이프라이닝하기 쉬움

 

 

 

 

학습 출처: https://www.youtube.com/watch?v=lJwIERMo_N4&list=PLVsNizTWUw7FCS83JhC1vflK8OcLRG0Hl&index=16

728x90
반응형