Post

CPU[ISA]

ISA

CPU가 이해할 수 있는 명령어들의 모음을 명령어 집합 또는 명령어 집합 구조 (ISA)라고 합니다.

ISA는 CPU의 언어이자 하드웨어가 소프트웨어를 어떻게 이해할지에 대한 약속입니다.

ISA는 대게 2종류로 나뉩니다.

참고로 이는 CPU마다 차이가 존재합니다.

CISC

복잡하고 다양한 명령어들을 활용하는 CPU 설계 방식입니다.

CISC는 다양하고 강력한 기능의 명령어 집합을 활용하기 때문에 명령어의 형태와 크기가 다양한 가변 길이 명령어를 사용합니다.

여기서 가변 길이 명령어는 명령어마다 다른 길이를 갖는 명령어 세트입니다.

여기서 강력한 명령어를 사용한다는 말은 상대적으로 적은 수의 명령어로도 프로그램을 실행할 수 있다는 점을 의미합니다.

적은 수의 명령어 만으로도 프로그램을 동작시킬 수 있다는 말은, 메모리 공간을 절약할 수 있다는 장점이 있다것과 같습니다.

하지만 치명적인 단점이 존재합니다.
활용하는 명령어가 워낙 복잡하고 다양하다 보니 명령어의 크기와 실행되기까지의 시간이 일정하지가 않습니다.

또한 복잡한 명령어 때문에 명령어 하나를 실핸하는 데에 여러 클럭 주기를 필요로 합니다.

예를 들면, 명령어 파이프 라인을 구축하는데 큰 걸림돌이 됩니다.
명령어 파이프 라인은 시간이 동일해야 합니다.

하지만 CISC가 활용하는 명령어는 명령어 수행 시간이 길고 가지각색이라서 파이프 라인이 효율적으로 명령어를 처리할 수 없습니다.

이러한 치명적인 단점으로 CISC기반 CPU는 성장에 한계가 존재합니다.

RISC

RISC는 CISC의 장점과 치명적인 단점을 바탕으로 나온 기법입니다.

RISC는 CISC에 비해 명령어의 길이가 적습니다.

그리고 짧고 규격화된 명령어, 그리고 되도록 1클럭 내외로 실행되는 명령어를 지향합니다.

즉, RISC는 가변 길이 명령어가 아닌 고정 길이 명령어를 활용합니다.
명령어가 규격화되어 있고, 하나의 명령어가 1클럭 내외로 실행되기 때문에 명령어 파이프라이닝에 최적화가 되어 있습니다.

또한 메모리에 직접 접근하는 명령어를 load, store 두개로 제한이 되어있어 메모리 접근을 단순화하고 최소화를 추구합니다.

메모리 접근을 단순,최소화 하는 대신 레지스터를 적극적으로 활용합니다.
이 때문에 CISC보다 레지스터를 이용한 연산이 많고, 범용 레지스터 개수도 많습니다.

다만 명령어가 적기에 RISC보다는 많은 명령어로 프로그램을 실행시켜야 합니다.

결론

CISC

CISC는 가변 길이 명령어 방식입니다.
그리고 복잡하고 다양한 명령어를 사용하는 대신 다양한 주소 지정 방식을 지원하며, 프로그램을 이루는 명령어의 수가 적습니다.

하지만 여러 클럭에 걸쳐 명령어를 수행하고, 파이프라이닝을 하기에 어렵다는 단점이 있습니다.

RISC

RISC는 고정 길이 명령어 방식입니다.
단순하고 적은 명령어를 사용하는 대신 주소 지정 방식이 적으며, 프로그램을 이루는 명령어의 수가 많습니다.

대신, 1클럭 내외로 명령어를 수행하고, 파이프라이닝을 하기에 쉽다는 장점이 있습니다.

참고 자료 :: 혼공자 [ 혼자 공부하는 컴퓨터 구조 + 운영체제 ]

This post is licensed under CC BY 4.0 by the author.