Computer >> 컴퓨터 >  >> 프로그래밍 >> 프로그래밍

CPU 데이터 경로(Data Path)의 3가지 유형: 싱글 사이클 vs 멀티 사이클 vs 파이프라인


데이터 경로(Data Paths)란?

CPU는 크게 데이터 영역(data section)제어 영역(control section) 두 부분으로 나눌 수 있습니다. 이 중 데이터 영역을 흔히 '데이터 경로(datapath)'라고 부르며, 레지스터(Register), ALU(산술논리연산장치), 그리고 이들을 서로 연결하는 상호연결 버스(interconnection bus)가 모여 하나의 데이터 경로를 구성합니다.

데이터 경로는 명령어를 처리하는 방식에 따라 다음 세 가지 유형으로 분류됩니다.

  • 싱글 사이클(Single Cycle)

  • 멀티 사이클(Multiple Cycle)

  • 파이프라인(Pipeline)

세 가지 방식의 특징 요약

싱글 사이클은 하나의 명령어를 한 클럭 주기 안에서 전부 처리하는 가장 단순한 구조입니다. 대신 가장 느린 단계에 맞춰 클럭 주기가 길어지고, 하드웨어 효율도 떨어집니다.

멀티 사이클은 명령어를 여러 개의 짧은 단계로 나누어 실행합니다. 클럭 주기가 짧아지지만, 단계마다 중간 결과를 저장할 추가 레지스터가 필요하며 여전히 한 번에 하나의 명령어만 처리됩니다.

파이프라인은 공장 생산 라인처럼 명령어를 파이프라인 단계(stage)별로 분할하고, 여러 명령어를 시간적으로 겹쳐 동시에 처리합니다. 덕분에 처리량(throughput)이 크게 향상되며, 현대 CPU의 기본 구조가 되었습니다.

다음 표는 싱글 사이클, 멀티 사이클, 파이프라인 데이터 경로의 핵심 차이점을 항목별로 비교한 것입니다.

번호구분 기준싱글 사이클멀티 사이클파이프라인
1CPI (명령어당 클럭 주기 수)명령어당 클럭 주기가 1개(CPI = 1)로 고정되어 있습니다.CPI가 명령어와 실행 단계에 따라 가변적입니다.CPI의 개수가 고정되어 있습니다.
2명령어 분할 방식명령어를 클럭 주기 단위로 나누지 않습니다.하나의 명령어를 임의의 단계(steps)로 자유롭게 나눌 수 있습니다.하나의 명령어를 파이프라인 단계(stage)별로 정확히 한 단계씩 나눕니다.
3동시 실행 가능 여부한 번에 하나의 명령어만 실행됩니다.역시 한 번에 하나의 명령어만 실행됩니다.여러 명령어를 동시에(겹쳐서) 실행할 수 있습니다.
4추가 레지스터 필요 여부추가 레지스터가 필요하지 않습니다.단계별 중간 값을 저장하기 위한 추가 레지스터가 필요합니다.역시 단계 간 결과 전달을 위한 추가 레지스터가 필요합니다.
5클럭 주기 시간클럭 주기 시간이 깁니다.클럭 주기 시간이 짧습니다.역시 클럭 주기 시간이 짧습니다.
6클럭 주기 중첩(오버랩)클럭 주기의 중첩이 불가능합니다.클럭 주기의 중첩이 발생하지 않습니다.클럭 주기가 서로 중첩(overlap)되어 병렬성이 확보됩니다.