2021. 3. 22. 16:44ㆍComputer(인강)/컴퓨터 구조
안녕하세요 bannavi입니다^ㅅ^
지난 시간에 이어서 병렬처리 그리고 파이프라인에 대해 살펴볼거에요
바로 시작하겠습니다
4.2 파이프라인
# 파이프라인 구조의 성능
파이프라인의 동작은 공간,시간표에 의해서 설명되는데, 이것은 시간에 대한 함수로서 세그먼트의 사용상황을 보여준다
마지막 빨간색 두줄의 값을 더해주면 n개의 task가 k개 만큼의 세그먼트로 진행되면서 소요되는 시간을 구할 수 있을것입니다.
결국 k 세그먼트 파이프라인에서 n태스크를 완료하려면
한번 실험해볼까요?
k는 세그먼트 갯수라고 했습니다
n이 task의 갯수라고 했죠
그럼 마지막줄의 k + (n-1)은
4 + (6 - 1)이 될것입니다. 답은 9가 나오죠?
-> 9개의 클럭사이클이면 끝난다
# 파이프라인 구조의 성능
1. 비 파이프라인의 경우
1) 각 태스크를 완료하기 위한 시간(한칸 한칸을 처리하기 위해서 걸리는 시간):
2) n 태스크를 위한 전체 수행시간 :
3) 파이프라인 처리에 따른 속도의 증가율은 다음과 같다
4) 파이프라인 VS 비 파이프라인(tn = ktp이므로 tn에 ktp넣어줘도됌)
오오 막 수학적 얘기도 나오는것같고 어지러우시죠
다시 정리를 해볼게요
파이프라인은 보시는것과 같이 n개의 태스크(task)로 구성이 되어있어요
처리하려고 하는 작업량이 n개의 태스크인거에요근데 고것을 몇개의 세그먼트로 쪼개서 처리를 해줄건데,
이때 비파이프라인구조와 파이프라인구조를 가지고 비교를 해본거죠
파이프라인일때
세그먼트가 네번이면 네번의 t1이 끝날거죠? 끝나는 다음 시점으로부터 t2, t3가 나올거에요
그럴 때 우리는 세그먼트 k 곱하기 (하나 처리할 때 시간이 tp라고 했으니까)
tp 플러스 (하나했으니까 그럼 n개 중에서 하나가 빠졌으니까)
나머지 n-1 곱하기 tp가 되는거죠
결론적으로 우리는 파이프라인의 이론적인 최대 속도의 증가율은 세그먼트의 수에 달려있다는걸 알 수 있었던 겁니다
'Computer(인강) > 컴퓨터 구조' 카테고리의 다른 글
Pipeline 구조 - 데이터 & 구조 2 (0) | 2021.03.22 |
---|---|
Pipeline 구조 - 데이터 & 구조 1 (0) | 2021.03.22 |
데이터의 종속성 - 병렬처리 그리고 파이프라인 1 (0) | 2021.03.22 |
프로그래밍 언어와 실행 2 (0) | 2021.03.21 |
프로그래밍 언어의 실행 1 (0) | 2021.03.21 |