-
[컴퓨터 구조 ] ISA - CISC vs. RISCComputer Science/Computer Architecture 2025. 2. 7. 17:57
ISA (Instruction Set Architecture)
- 소프트웨어(시스템)와 하드웨어 사이의 약속
- 하드웨어가 high-level language를 이해하게 하려면 어셈블러 (high-level language → assembly language ) → 컴파일러(assembly language → machine language)를 거쳐 low-level language 로 번역되어야함.
- 이렇게 low-level language로 번역된 후에는 하드웨어에게 명령을 내려주어야함. 이때 sw 와 hw 사이를 연결해주는 것이 ISA 임.
- 즉, ISA는 소프트웨어와 하드웨어가 서로 통신할 수 있게 해주는 명령어 집합 이자 인터페이스
- ISA 아래에 있는 micro architecture는 micro processor가 사용하는 명령어 처리 방식.
- micro processor 는 우리가 아는 CPU라고 생각하면 됨.
- CPU Arichitecure의 종류로는 CISC 와 RISC가 있음
ISA 명령어 종류
- 산술 논리 명령어
- 데이터 전송 명령어
- 실행 흐름 제어
- 부동 소수점 연산 명령
CISC (Complex Instruction Set Computer)
- 과거에는 컴퓨터 메모리 용량이 크지 않아서 SW 프로그램의 용량을 줄이기 위해 하나의 명령어로 여러 작업을 수행하도록 했기 때문에 CISC 사용
- 이 말이 이해가 되지 않는다면
- 컴퓨터에서 CPU는 연산을 담당하지만, 연산할 데이터는 메모리(RAM)에 저장되어 있음.
- CPU가 연산을 하려면 데이터를 메모리에서 가져와야 함
- 그런데 과거 컴퓨터는 메모리 속도가 매우 느렸음.
- 그래서 메모리에 자주 접근하면 연산 속도가 크게 저하됨.
- 특징
- 명령어 개수가 많음
- 프로그램을 만들 때 적은 명령어로 구현 가능 → 하나의 명령어가 여러 개의 연산을 수행하는 구조 → CISC 명령어는 여러 개의 저수준 연산을 한꺼번에 포함하는 복합적인 명령어
- 장점
- 복합적이고 기능이 많음 → 하위 호환성이 좋음
- 호환성이 절대적으로 필요한 PC환경에 사용
- 단점
- 트랜지스터 집적에 있어서 효율성이 떨어짐(성능 향상에 난점)
- 전력 소모가 큼. 속도가 느리고 가격이 비쌈
- 다양한 명령어를 사용하기 때문에 컴파일러가 복잡함
- 회로 구성이 복잡함
- 용도
- 다양한 명령어들을 포함하고 있기에 우리가 사용하는 CPU(pentium…)로 사용됨.
RISC(Reduced Instruction Set)
- CISC 내부에 갖춰진 모든 명령어들 중 불과 20%에 해당하는 명령어들만 전체 80% 이상의 일을 처리
- 굳이 CISC와 같이 필요한 명령어 셋을 다 갖고 있는 것은 비효율적 따라서 등장한 개념이 RISC 임.
- 특징
- 고정적인 명령어 길이
- 워드, 데이터 버스 크기가 동일하고 실행 사이클도 모두 동일
- 프로그램을 구성할 때 상대적으로 많은 명령어가 필요
- 파이프 라이닝을 사용함
- 적은 명령어 세트
- 간단한 명령어로 빠른 실행속도
- 회로 구성이 단순함
- 명령어 개수가 적어서 컴파일러가 단순하게 구현됨
- 전력 소모가 적음. 속도가 빠르고 가격이 저렴장점
- 사용 빈도가 높은 적은 명령어들로 구성된 프로세서 → 따라서 CISC보다 더 빠른 속도로 동작할 수 있고, 단순하고, 전력소모가 적고, 가격도 저렴
- 단점
- 하드웨어가 간단한 대신 소프트웨어가 크고 복잡
- 하휘 호환성 부족
- 하드웨어가 간단한 대신 소프트웨어는 복잡하고 크기가 커짐(컴파일러의 최적화가 요구됨)
- 하위 호환을 위해 에뮬레이션 방식을 채택. 호환성 부족
- 용도
- RISC 구조는 파이프라인 중첩이 가능해서 같은 수의 명령어에 대해 적은 clock으로 처리가 가능하며, 발열과 전력 소모도 줄일 수 있음. 따라서 임베디드 프로세서에서는 RISC 구조 사용.
CISC vs RISC 비교 (메모리 로드 & 연산)
- CISC 방식 (예: x86 CPU)
- ADD A, B 한 줄만 실행하면 메모리에서 A와 B를 읽고, 더하고, 결과를 저장함
- 즉, "메모리 로드 → 연산 → 저장"이 한 번에 수행됨
ADD A, B ; A = A + B (메모리에서 직접 가져와 더함)
- RISC 방식 (예: ARM CPU)
- RISC에서는 로드, 연산, 저장을 따로따로 실행해야 함.
LOAD R1, A ; 레지스터 R1에 A를 로드 LOAD R2, B ; 레지스터 R2에 B를 로드 ADD R3, R1, R2 ; R3 = R1 + R2 (연산만 수행) STORE A, R3 ; 결과를 다시 A에 저장
즉, CISC는 하나의 명령어(ADD A, B)가 여러 작업(메모리 로드 + 연산 + 저장)을 포함하지만, RISC는 각각을 따로 수행.
Reference
[컴퓨터구조] ISA - CISC vs. RISC
Instruction Set Architecture의 개념에 대해 공부하고, CISC와 RISC의 차이에 대해 알아본다.
velog.io
x86(CISC) VS ARM(RISC)
CISC(Complex Instruction Set Computer)는 필요한 모든 명령어 셋을 갖추도록 설계된 마이크로프로세서에 관련된 용어, 요구되는 능력을 가장 효율적인 방법으로 제공했었다. CISC 명령은 매우 작기 때문에
moonnight0.tistory.com