Book/COMPUTER ORGANIZATION AND DESIGN RISC-V

4. The Processor (4.6. An Overview of Pipelining)

S0LL 2024. 11. 15. 18:19

4.6 An Overview of Pipelining

 


1. 파이프라이닝(Pipelining)의 기본 개념

 

파이프라이닝은 여러 명령어가 동시에 실행되는 방식을 의미한다.

즉, 여러 명령어가 실행되면서 각 명령어의 다른 단계들이 겹쳐서 수행된다.

이를 통해 CPU의 작업 효율성을 높일 수 있다.

 

책에서는 세탁의 비유를 통해 파이프라이닝의 개념을 설명한다.

세탁은 네 가지 단계로 나눌 수 있다. ->  세탁, 건조, 다림질, 옷 정리.

 

비파이프라인 방식

모든 세탁이 끝난 후 건조를 시작하고, 건조가 끝난 후 다림질을 하는 방식이다.

이 방식은 시간이 많이 소요된다.

 

파이프라인 방식

에서는 세탁을 하면서 건조를 시작하고, 건조가 되면 다림질을 시작하는 방식으로 진행된다.

이렇게 하면 각 단계가 겹쳐져서 전체적으로 시간이 절약된다.

 

2. 파이프라인의 작동 원리

 

세탁 예시에서 각 단계가 동시에 이루어지듯, 파이프라인에서는 CPU의 각 작업이 여러 단계로 나뉘어 동시에 실행된다.

예를 들어, 하나의 명령어가 메모리에서 읽히는 동안 다른 명령어는 ALU에서 연산을 수행하고, 또 다른 명령어는 레지스터에 저장된다.

 

 

3. 파이프라인 성능 향상

 

파이프라인을 사용할 경우 속도 향상이 이루어진다.

예를 들어, 네 가지 단계를 모두 따로 실행하면 8시간이 걸리지만, 파이프라인을 사용하면 각 단계가 동시에 진행되어 2.3시간 만에 끝낼 수 있다.

파이프라인에서 중요한 점은 각 단계가 동일한 시간만큼 걸린다는 가정 하에 속도 향상이 이루어진다는 것이다.

하지만 시작과 끝에서의 비어있는 시간은 성능에 영향을 미칠 수 있다.

 

 

4. RISC-V에서의 파이프라인

 

RISC-V 아키텍처에서 명령어 파이프라인은 다섯 단계로 나뉩니다:

1. Fetch: 명령어를 메모리에서 읽어온다.

2. Decode: 명령어를 해석하고 레지스터를 읽는다.

3. Execute: 연산을 수행하거나 주소를 계산한다.

4. Memory Access: 메모리에서 데이터를 읽거나 쓴다.

5. Write-back: 연산 결과를 레지스터에 기록한다.

 

이러한 단계들이 순차적으로 실행되며, 동시에 여러 명령어가 각기 다른 단계를 진행한다. 이는 명령어 실행의 속도를 크게 향상시킨다.

 

 

5. 단일 사이클과 파이프라인 성능 비교

 

단일 사이클 설계에서는 각 명령어가 한 사이클에 모두 실행되지만, 파이프라인 설계에서는 각 명령어가 여러 단계에 걸쳐 병렬로 실행된다.

파이프라인을 사용할 경우, 각 명령어가 걸리는 시간은 단일 사이클 설계보다 훨씬 빠르게 끝난다.

예를 들어, 200ps의 시간이 걸리는 ALU 연산이 파이프라인에서는 더 빠르게 처리된다.

 

6. 파이프라인 속도 향상 공식

 

파이프라인 속도 향상은 다음 공식으로 계산할 수 있다.

 

예를 들어, 5단계 파이프라인에서는 800ps의 단일 사이클 시간이 160ps로 줄어드는 결과를 가져온다.

 

 

7. 파이프라인의 한계

 

모든 단계를 균등하게 처리할 수 있다면, 파이프라인을 사용할 때 큰 성능 향상이 이루어진다.

하지만 각 단계의 시간이 다르거나, 파이프라인이 제대로 채워지지 않으면 성능 향상은 제한될 수 있다.

 

예를 들어, 기다리는 시간이 많으면 파이프라인의 성능 향상은 제한적이거나 없을 수 있다.

 

 

8. 결론

 

파이프라이닝은 여러 작업을 동시에 처리하여 CPU의 성능을 크게 향상시킬 수 있다.

RISC-V에서 이 구조를 채택하면, 명령어가 각기 다른 단계에서 동시에 처리되므로 처리 속도가 향상된다.

이를 통해 효율적인 연산 처리시간 절약이 가능하다.