[컴퓨터 구조] 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 |
---|---|---|
명령어 집합 | 복잡한 명령어 집합 | 간단한 명령어 집합 |
명령어 길이 | 가변 길이 | 고정 길이 |
명령어 실행 속도 | 복잡한 명령어로 인한 저속 | 단순한 명령어로 인한 빠른 실행 |
파이프라인 활용 | 어려운 명령어로 인해 파이프라인 활용 어려움 | 간단한 명령어로 파이프라인 활용 용이 |
메모리 액세스 | 메모리 액세스가 복잡함 | 단순한 메모리 액세스 |
댓글남기기