[컴퓨터 구조] CISC와 RISC

CPU가 파이프라이닝과 슈퍼스칼라 기법을 효과적으로 사용하려면 명령어가 파이프라이닝 하기 쉽게 생겨야 합니다.

명령어 집합 (Instruction Set), ISA (Instruction Set Architecture)

컴퓨터의 프로세서가 이해하고 실행할 수 있는 명령어의 모음입니다.
컴퓨터 아키텍처를 설계할 때 가장 기본적인 결정 사항 중 하나이며, 소프트웨어와 하드웨어 간의 효율적인 커뮤니케이션을 위한 중요한 역할을 합니다.
컴퓨터 아키텍처마다 각자의 명령어 집합 구조가 있으며, 주로 두 가지 주요한 아키텍처인 CISC와 RISC에서 사용됩니다.

동일한 소스 코드를 다른 아키텍처의 컴퓨터에서 어셈블리어로 컴파일하면, 각 아키텍처의 특성에 따라 다른 어셈블리어 코드가 생성됩니다.

x86-64 ISA

mov rax, 1
mov rdi, 1
mov rsi, msg
mov rdx, 13
syscall

mov rax, 60
xor rdi, rdi
syscall
ARM ISA

mov r0, #1
ldr r1, =msg
mov r2, #13
svc #0

mov r7, #1
mov r0, #0
svc #0

CISC (Complex Instruction Set Computing)

복잡한 명령어 집합을 가지고 있는 컴퓨터 아키텍처입니다. CISC 아키텍처에서는 하나의 명령어로 다양한 동작을 수행할 수 있도록 설계되어 있습니다. 예) x86, x86-64

가변 길이 명령어 (Variable-Length Instructions)

CISC 아키텍처에서는 명령어의 길이가 가변적입니다. 이는 다양한 형식의 명령어를 지원하며, 하나의 명령어로 여러 동작을 수행할 수 있도록 합니다. 이로 인해 명령어 디코딩이 복잡해지지만, 하나의 명령어로 많은 기능을 수행할 수 있는 장점이 있습니다.

RISC (Reduced Instruction Set Computing)

간단한 명령어 집합을 가지고 있는 컴퓨터 아키텍처입니다. RISC 아키텍처는 간단한 명령어를 사용하여 빠르게 실행되도록 설계되어 있습니다. 예) ARM

고정 길이 명령어 (Fixed-Length Instructions)

RISC 아키텍처에서는 명령어의 길이가 고정적입니다. 이는 명령어 디코딩을 단순화하여 실행 속도를 향상시킵니다. 명령어의 길이가 고정되어 있어 프로세서가 명령어를 빠르게 패치하여 실행할 수 있습니다.

CISC RISC 비교

특성 CISC RISC
명령어 집합 복잡한 명령어 집합 간단한 명령어 집합
명령어 길이 가변 길이 고정 길이
명령어 실행 속도 복잡한 명령어로 인한 저속 단순한 명령어로 인한 빠른 실행
파이프라인 활용 어려운 명령어로 인해 파이프라인 활용 어려움 간단한 명령어로 파이프라인 활용 용이
메모리 액세스 메모리 액세스가 복잡함 단순한 메모리 액세스

댓글남기기