티스토리 뷰

반응형

✅ 파이프라이닝이 속도를 빠르게 하는 이유: 시간 단위로 보기


📍 전제: 명령어 실행에는 5단계가 필요합니다

CPU는 명령어 1개를 실행하기 위해 아래의 5단계를 항상 거칩니다:

단계 번호 내용 (예시)
① Fetch 명령어를 메모리에서 읽기
② Decode 명령어를 해석하기
③ Operand Fetch 필요한 데이터 불러오기
④ Execute 실제 연산 수행
⑤ Write back 결과 저장

✅ 파이프라이닝 없는 경우 (순차 실행)

명령어가 5개 있다고 가정해봅시다.

  • 각 명령어가 5단계를 차례대로 순차적으로 거칩니다.
  • 각 단계는 1초씩 걸린다고 가정합니다.

🕒 총 시간 계산:

명령어 번호 실행 단계 시간
1번 명령어 ①②③④⑤ 5초
2번 명령어 ①②③④⑤ 5초
3번 명령어 ①②③④⑤ 5초
4번 명령어 ①②③④⑤ 5초
5번 명령어 ①②③④⑤ 5초

👉 총 25초가 걸립니다.
왜냐하면 하나의 명령어가 끝나야 다음 명령어가 시작되기 때문입니다.


✅ 파이프라이닝 있는 경우 (겹쳐서 실행)

이제는 파이프라인 구조로 같은 5개의 명령어를 실행한다고 해봅시다.

1번 명령어가 ①을 수행하고 있을 때,
→ 2번 명령어는 그 다음 초에 ①을 시작하고
→ 1번 명령어는 ②로 넘어가고...
→ 이렇게 겹치게 처리합니다.

🕒 실행 시나리오 (1초 단위):

시간 1번 명령어 2번 명령어 3번 명령어 4번 명령어 5번 명령어
1초 Fetch
2초 Decode Fetch
3초 Operand Fetch Decode Fetch
4초 Execute Operand Fetch Decode Fetch
5초 Write Back Execute Operand Fetch Decode Fetch
6초 완료 Write Back Execute Operand Fetch Decode
7초 완료 Write Back Execute Operand Fetch
8초 완료 Write Back Execute
9초 완료 Write Back
10초 완료

👉 총 10초만에 5개의 명령어 처리 완료!


✅ 비교 정리

방식 명령어 수 총 처리 시간 처리 속도
순차 실행 (비파이프라인) 5개 25초 1개당 5초
파이프라인 실행 5개 10초 1개당 2초 (평균)

💡 핵심 차이:

  • 파이프라이닝은 명령어가 끝날 때까지 기다리지 않고
  • 다음 명령어를 미리 시작할 수 있어서
  • 명령어들이 겹치게 동시에 실행됩니다.

🔁 쉽게 비유하면?

🔴 파이프라이닝 없는 경우:

한 수도꼭지에서 컵 5개에 물을 채운다고 상상해보세요.

  • 첫 번째 컵 다 채운 후
  • 두 번째 컵 넣고...
  • 총 25초 걸림 (5초씩)

🟢 파이프라이닝 있는 경우:

컨베이어 벨트에 컵을 놓고, 1초마다 물이 한 번씩 떨어지는 기계

  • 컵이 줄지어 이동하면서
  • 1초마다 컵 하나 완성됨 → 총 10초로 끝남

🎯 핵심 정리

항목 설명
파이프라이닝이란? 명령어 실행을 여러 단계로 나누고, 각 단계에 다음 명령어를 겹쳐서 처리하는 방식
왜 빠른가? 명령어가 끝날 때까지 기다리지 않고, 다음 명령어를 바로 시작할 수 있으므로
어느 순간부터 효과가 커지나? 5사이클 이후부터는 매 1초마다 명령어 1개 완료 수준의 효율
단점은 없나? 명령 순서가 얽히거나 조건문(if)이 많으면 멈춤(stall) 발생 가능

✅ 실제 CPU는 어떻게 적용할까?

  • RISC CPU는 명령어 구조가 단순하고 고정되어 있어
    파이프라이닝 적용에 매우 적합합니다.

  • 예: ARM, MIPS, RISC-V 등의 CPU는 기본적으로 5단계, 7단계 파이프라인을 가지고 있음

  • CISC CPU(예: Intel x86)는 명령어가 복잡하고 길이도 다 달라서
    → 파이프라이닝 설계가 어렵지만,
    → 내부적으로 명령어를 micro-op(마이크로 단위 명령)으로 쪼개서 RISC처럼 처리


✅ 마무리 요약

질문 답변 요약
파이프라이닝이란? 명령어 실행을 여러 단계로 쪼개고, 각 단계를 겹쳐서 동시에 처리하는 기술
왜 빠름? 명령어 하나가 끝나기를 기다리지 않고, 연속해서 처리 가능
비유 햄버거 공장에서 각 단계별 분업으로 동시에 작업하는 것
어떤 구조에서 잘 작동? 명령어 구조가 단순한 RISC 아키텍처에서 효과적

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
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
글 보관함
반응형