ISA, CISC와 RISC는 무엇인가?
ISA (명령어 집합 구조, Instruction Set Architecture)
--
ISA는
CPU가 수행할 수 있는 (이해할 수 있는) 명령어들의 집합 or 해당 집합의 아키텍처(구조)를 의미한다.
이는
하드웨어와 소프트웨어 간의 인터페이스 역할을 하며,
CPU가 지원하는 명령어의 종류, 데이터 형식, 레지스터, 주소 지정 모드 등을 포함한다.
CPU의 제조사마다 CPU의 규격, 기능 만듦새가 다르기 때문에
CPU마다 ISA가 다를 수 있다.
명령어의 기본적인 구조와 작동 원리는 비슷하지만
명령어의 세부적인 생김새, 명령어로 할 수 있는 연산, 주소 지정 방식 등은 차이가 있을 수 있다.
사용하는 ISA가 다르다 => CPU가 이해할 수 있는 명령어가 다르다 => 어셈블리어가 다르다
즉, 동일한 프로그램을 ISA가 다른 컴퓨터(CPU)에서 어셈블리어로 컴파일하면
서로 다른 어셈블리어로 컴파일된다.
CPU가 어떠한 방식으로 처리하는 구조인지에 따라서 알맞은 ISA를 사용한다.
(명령어 병렬 처리 기법을 사용하면 이에 알맞는 ISA를 사용한다.)
명령어 병렬 처리 기법(명령어 파이프라인, 슈퍼스칼라, 비순차적 명령어 처리)에 유리한 ISA 종류
- CISC
- RISC
--
CISC (Complex Instruction Set Computer)
--
CISC는
복잡한 명령어 집합을 활용하는 컴퓨터(CPU) 아키텍처를 의미한다.
(복잡하고 다양한 명령어들을 활용하는 CPU 설계 방식)
다양하고 강력한 명령어 집합을 사용하기 때문에
명령어의 형태와 크기가 다양한 "가변 길이 명령어"를 활용한다.
여기서 강령한 명령어라는 것은
여러 개의 명령어 분량을 하나의 명령어로 수행할 수 있는 명령어를 의미한다.
상대적으로 적은 수의 명령어로도 프로그램을 실행할 수 있다.
그러다 보니 메모리를 최대한 아끼며 개발해야 하던 시절에 인기가 많았으며,
적은 수의 명령어만으로도 프로그램을 동작시킬 수 있다는 장점이 있다.
다만 사용하는 명령어가 복잡하고 다양한 기능을 제공하는 탓에
명령어의 크기와 실행되기까지의 시간이 일정하지 않고,
복잡한 명령어 때문에 해당 명령어 하나를 실행하는 데에 여러 클럭 주기가 필요하다는 단점이 존재한다.
정리
- 복잡하고 다양한 기능을 제공
- 적은 수의 명령어로 프로그램을 동작 (메모리 절약)
- 명령어의 규격화가 어려움 (파이프라인을 수행하기 어려움)
- 대다수의 복잡한 명령어는 사용 빈도가 낮음
--
RISC (Reduced Instruction Set Computer)
--
RISC는
단순한 명령어 집합을 활용하는 컴퓨터(CPU) 아키텍처를 의미한다.
이는 CISC의 단점을 보안한 느낌으로
- 빠른 처리를 위해 명령어 파이프라인을 활용해야 한다. (= 명령어 길이와 수행 시간이 짧고 규격화)
- 복잡한 기능을 지원하는 명령어보다 작고 빠른 명령어 추가 (= 어차피 자주 사용하는 명령어만 계속 사용함)
RISC는 CISC에 비해
- 명령어 종류가 적음
- 짧고 규격화된 명령어 (1클럭 내외로 실행되는 명령어를 지향)
즉, "고정 길이 명령어"를 사용한다.
고정된 길이 명령어를 사용하여
하나의 명령어가 1클럭 내외로 실행되기 때문에 명령어 파이프라인에 최적화되어있다.
--
'CS > 컴퓨터 구조' 카테고리의 다른 글
캐시 메모리 (0) | 2024.09.04 |
---|---|
메모리 (RAM) (0) | 2024.08.29 |
[CPU 성능 향상] 명령어 병렬 처리 기법 (0) | 2024.08.27 |
[CPU 성능 향상] 클럭, 멀티코어, 멀티스레드 (0) | 2024.08.26 |
[CPU 작동 원리] 명령어 사이클과 인터럽트 (0) | 2024.08.25 |