다섯 살도 알 수 있게 · 시스템SW

CPU 파이프라인이 뭐예요?

CPU 파이프라인을, 정비공장에 작업대를 여러 개 두고 여러 차를 동시에 겹쳐 처리하는 이야기로 풀어봤어요.

정비사 한 명이 접수·점검·수리·마무리를 혼자 다 해요뒤차들은 그동안 가만히 기다리고 있어요

정비사 한 명이 차 한 대를 처음부터 끝까지 다 고쳐요.뒤차들은 그동안 가만히 기다리고 있어요.

한 대 끝나야 다음 대가 시작돼요차례를 지키는 건 좋지만 전체 작업 시간이 길어져요여러 작업대를 두고 동시에 처리하면 어떨까요?

한 대씩 순서대로만 하면 차 전체를 끝내는 시간이 길어져요.여러 작업대를 두고 동시에 처리하면 어떨까요?

접수점검수리도장출고CPU 파이프라인 = 여러 작업대에서 여러 차를 동시에 겹쳐 처리하는 것한 순간에 네 대가 각기 다른 단계를 지나고 있어요

CPU 파이프라인은 여러 작업대에서 여러 차를 동시에 겹쳐 처리하는 것이에요.한 순간에 네 대가 각기 다른 단계를 지나고 있어요.

인출(Fetch)다음 명령어(할 일)를 가져와요
해독(Decode)무슨 작업인지 읽어요
실행(Execute)실제로 수리를 해요
기록(Writeback)실행 결과를 적어둬요
같은 시각, 각기 다른 단계1호차 — 지금 '도장' 단계2호차 — 지금 '수리' 단계3호차 — 지금 '점검' 단계4호차 — 지금 '접수' 단계한 대씩 고칠 때보다 같은 시간에 더 많은 차가 끝나요

같은 시각에도 차마다 다른 단계를 지나요.한 대씩 고칠 때보다 같은 시간에 더 많은 차가 끝나요.

보통은 작업대가 쉬지 않고 돌아가요부품이 안 와서 뒷차들이 멈추기도 해요(파이프라인 정체)겹쳐 일하면 차가 더 많이 끝나지만, 한 작업대가 막히면 뒤 작업대도 멈춰요

뒤차가 앞차를 기다려야 할 때도 있어요.겹쳐 일하면 차가 더 많이 끝나지만, 한 작업대가 막히면 뒤 작업대도 멈춰요.

한 줄로

CPU 파이프라인은 명령어 처리를 여러 단계로 나눠, 여러 작업대처럼 동시에 겹쳐 처리해 전체 처리 속도를 높이는 구조예요.

CPU 파이프라이닝은 명령어 하나를 인출(Fetch)·해독(Decode)·실행(Execute)·메모리 접근(Memory)·기록(Writeback) 등 여러 단계로 나누고, 각 단계를 서로 다른 하드웨어가 동시에 처리하도록 겹쳐 실행하는 기법이에요. 한 명령어가 끝나길 기다리지 않고 다음 명령어를 바로 투입할 수 있어 처리량(throughput)이 크게 늘어요. 다만 앞선 결과를 기다려야 하는 데이터 해저드나 분기 예측이 틀렸을 때 파이프라인을 비워야 하는 제어 해저드 때문에 정체(stall)가 생길 수 있어요.

어른들은 이렇게 불러요

파이프라이닝
Pipelining
여러 작업대에서 여러 차를 겹쳐 처리하는 것. 같은 시간에 처리하는 양(처리량)을 크게 늘려줘요.
인출(Fetch)
Fetch
다음 할 일을 가져오는 단계. 파이프라인의 첫 단계예요.
해독(Decode)
Decode
무슨 작업인지 읽어내는 단계. 명령어를 실행 가능한 형태로 풀어요.
실행(Execute)
Execute
실제로 작업을 처리하는 단계. 연산이 실제로 일어나는 단계예요.
데이터 해저드
Data Hazard
앞차의 결과를 기다려야 하는 상황. 앞 명령어의 결과가 아직 안 나와서 생겨요.
분기 예측
Branch Prediction
다음에 어느 길로 갈지 미리 짐작하는 것. 틀리면 파이프라인을 비워야 해요.
파이프라인 정체(스톨)
Pipeline Stall
부품이 안 와서 뒷차들이 멈추는 것. 해저드가 생기면 발생해요.
처리량(Throughput)
Throughput
일정 시간에 처리되는 차의 수. 파이프라이닝의 핵심 목표예요.
다음 이야기
번호만 계산해서 바로 칸을 짚기 →
다른 용어도 그림책으로 보고 싶다면 요청하기 →