티스토리 뷰
반응형
✅ CISC vs RISC CPU 구조 완전 정리
1️⃣ 정의: CISC와 RISC란 무엇인가?
✅ CISC (Complex Instruction Set Computer)
- 이름 그대로 복잡한 명령어 집합을 가진 CPU 구조입니다.
- "복잡하다"는 말은 추상적으로 들릴 수 있지만, 구체적으로는 다음을 의미합니다:
하나의 기계어 명령어가 여러 개의 작업을 한꺼번에 처리할 수 있게 설계되어 있다는 뜻입니다.
예를 들어, 아래의 한 줄 명령어로도 실행됩니다:
ADD A, B, C → 메모리에서 B와 C를 가져와 더한 후 A에 저장
즉, ① 메모리 접근 + ② 산술 연산 + ③ 저장이라는 세 가지 단계를 한 줄의 명령어로 수행합니다.
✅ RISC (Reduced Instruction Set Computer)
- 간단한 명령어만 가지고 있는 CPU 구조입니다.
- 여기서 “간단하다”는 의미는:
명령어 하나가 딱 하나의 동작만 수행하도록 제한되어 있다는 뜻입니다.
같은 연산을 RISC로 하려면 이렇게 나눠야 합니다:
LOAD R1, B → B를 메모리에서 가져와 R1에 저장
LOAD R2, C → C를 메모리에서 가져와 R2에 저장
ADD R3, R1, R2 → R1과 R2를 더해서 R3에 저장
STORE A, R3 → R3 값을 A 메모리에 저장
이처럼 하나의 복합 작업을 하려면 명령어를 여러 줄로 쪼개서 순차적으로 실행해야 합니다.
2️⃣ 발전 배경: 왜 두 방식이 나뉘게 되었는가?
🧠 CISC가 먼저 등장한 이유
- 1970~80년대 초기 컴퓨터는 메모리가 매우 비쌌고, 느렸습니다.
- 당시 컴파일러(고수준 언어를 기계어로 번역해주는 프로그램)의 수준도 낮았기 때문에,
"CPU가 최대한 많은 일을 직접 처리하도록 하자"는 철학이 CISC였습니다.
- 그래서 CISC CPU는 다양한 명령어를 지원하고, 그 명령어 하나로 여러 단계를 자동으로 처리했습니다.
- 덕분에 코드 길이도 짧아지고, 메모리 사용도 줄어드는 효과가 있었습니다.
🧠 RISC가 등장한 이유
시간이 지나면서 컴파일러가 매우 똑똑해지고, 메모리도 저렴해졌습니다.
이때부터 사람들은 생각을 바꿨습니다:
"CPU는 단순하게 만들고, 복잡한 일은 명령어 여러 개로 나눠서 처리하자."
그래서 등장한 것이 RISC입니다.
- 명령어가 단순하고 고정된 구조를 가지고 있어서
- CPU가 빠르고 효율적으로 동작하고,
- 파이프라이닝(Pipelining)이라는 고속 처리 기술을 적용하기 쉬워졌습니다.
3️⃣ 작동 원리 비교: 실제 연산 예시를 통해 step by step으로 비교하기
📌 목표: A = B + C (메모리에 저장된 값을 더해서 A에 저장)
✅ CISC 방식 (한 줄로 끝)
한 줄 명령어 예시:
ADD A, B, C
실제 처리 과정 (CPU 내부에서는):
- 메모리에서 B의 값을 가져옴
- 메모리에서 C의 값을 가져옴
- 둘을 더함
- 결과를 A 위치에 저장
즉, 1개의 명령어로 4단계를 자동 실행
코드가 짧고 단순해 보입니다
하지만 내부적으로는 복잡한 작업이 이루어지며 실행 시간은 길 수도 있습니다
✅ RISC 방식 (4줄로 나눔)
명령어 예시:
LOAD R1, B → B를 R1에
LOAD R2, C → C를 R2에
ADD R3, R1, R2 → R1 + R2 = R3
STORE A, R3 → R3를 A에 저장
실제 처리 과정:
- 메모리에서 B 값을 레지스터 R1에 저장
- 메모리에서 C 값을 R2에 저장
- R1 + R2 값을 R3에 저장
- R3 값을 메모리 A 위치에 저장
명령어 수는 늘어났지만, 각 명령어는 실행 시간이 같고 단순합니다
파이프라인 처리와 최적화가 쉬워집니다
4️⃣ 비유로 이해하기: 요리사 vs 요리 로봇
🍳 CISC = 요리사
- 셰프에게 “계란 프라이 만들어줘” 하면
- 재료 꺼내고 → 팬에 굽고 → 소금 뿌리고 → 접시에 담고 → 끝
- 요리사는 혼자서 모든 단계를 알아서 처리합니다
- 하지만 셰프는 바쁘고, 한번에 하나씩밖에 못 하니 느릴 수 있음
🤖 RISC = 요리 공장 자동 로봇
- 작업자가 각각 하나의 일만 합니다:
- 1번 로봇: 계란 꺼내기
- 2번 로봇: 팬에 굽기
- 3번 로봇: 간 맞추기
- 4번 로봇: 접시에 담기
- 명령이 많지만, 동시에 여러 작업자가 일하니 훨씬 빠르고 예측 가능합니다
5️⃣ 정리 표: 전체 비교
구분 | CISC | RISC |
---|---|---|
명령어 수 | 많음 (수백 개 이상) | 적음 (수십 개 수준) |
명령어 구조 | 다양하고 복잡 | 단순하고 고정 길이 |
하나의 명령어가 하는 일 | 여러 작업 (ex. 연산 + 메모리 접근) | 단일 작업 (하나의 기능만) |
코드 길이 | 짧음 | 김 |
실행 속도 | 명령어마다 달라짐 | 일정하고 빠름 |
파이프라이닝 | 어려움 | 용이함 |
CPU 설계 | 복잡 | 단순 |
대표 예시 | Intel x86 | ARM, RISC-V, MIPS |
✅ 결론: 오늘날은 둘 다 융합
- 요즘은 CISC와 RISC의 장점을 합쳐서 사용하는 추세입니다.
- 예: Intel의 최신 CPU는 겉으로는 CISC처럼 보이지만, 내부에서는 명령어를 작게 쪼개서 RISC처럼 처리합니다.
- ARM 같은 RISC 계열 CPU는 스마트폰, 태블릿, 사물인터넷 기기에 널리 쓰입니다.
🔚 마무리 요약
질문 | 대답 |
---|---|
Q. CISC와 RISC의 가장 큰 차이는? | 명령어 하나가 얼마나 많은 일을 하는가입니다. |
Q. CISC가 좋은 점은? | 코드가 짧고 메모리를 적게 씁니다. |
Q. RISC가 좋은 점은? | CPU가 빠르고, 파이프라인 처리에 유리합니다. |
Q. 어느 것이 더 좋은가요? | 용도에 따라 다릅니다. PC나 서버에는 CISC, 모바일에는 RISC가 더 적합합니다. |
더 궁금한 부분이나, 실제 CPU(예: Intel, ARM, RISC-V) 사례를 기반으로 더 깊이 알고 싶으시다면 알려주세요. 해당 구조의 내부 작동 원리까지 확장해 설명드릴 수 있습니다.
반응형
'프로그래밍 > 시스템 프로그래밍' 카테고리의 다른 글
🧠 UC Count란 무엇인가? (0) | 2025.03.24 |
---|---|
커널 오브젝트와 핸들 (0) | 2025.03.24 |
프로세스(Process)란? (0) | 2025.03.21 |
주소 참조 방식(Direct vs Indirect) (0) | 2025.03.21 |
파이프라이닝을 쓰면 속도가 빠른 이유 (0) | 2025.03.21 |
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 인지부조화
- C
- C/C++
- 일본어문법무작정따라하기
- 통계
- 정보처리기사
- 일문따
- c++
- 티스토리챌린지
- 통계학
- Python
- stl
- 일본어
- 윤성우
- 보세사
- 심리학
- 회계
- 파이썬
- 오블완
- 뇌와행동의기초
- 코딩테스트
- 백준
- 행동심리학
- K-MOOC
- 여인권
- 데이터분석
- 조건형성
- 열혈프로그래밍
- 사회심리학
- 류근관
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
글 보관함