管道處理pipeline正確觀念是哪個呢?
這是計算機概論的問題,想麻煩高手幫忙解決。
我上課前後2ㄍ老師告訴我管道處裡的觀念不一樣,我把他先列在下面
假設分成 5個階段,時間如下
第一階段:5ns
第二階段:8ns
第三階段:15ns
第四階段:10ns
第五階段:12ns 然後有100個指令要執行
第一種算法:
(5+8+15+10+12)+(100-1)*15=1535 ns
注:5+8+15+10+12 是第一個指令走完管道花的時間,在家上剩下的99個乘上最花時間的stage,就是15秒,得到1535ns
第二種算法:
(5-1)+100*1=104 (cycle)
104*15=1610 ns (104個cycle,每個cycle要花15ns)
希望大家能告訴我哪個是正確的計算機概念
如果我有寫錯的,麻煩直接指證並告知正確的觀念
4 個解答
- 2 0 年前最佳解答
小弟我所知道的算法是這樣的:把花費最多時間的階段乘上指令數在加上其餘的時間也就是15*100+(5+8+12+10),這個答案算出來也就是你所說的第一個解法1535,這個解法應該符合所謂pipleline的觀念,至於第二個解法小弟就不懂了。
- 匿名使用者1 0 年前
關於第二個算法,我想老師的意思應該是,每一個CLOCK的CYCLE TIME要固定。也就是說不可能有一段是8(CYCLE TIME)而下一段變成10(CYCLE TIME),再下一段又變成15(CYCLE TIME)。如果PIPILINE使用變動CYCLE TIME的話,電腦根本做不出來(老師說的)。所以我想應該是第二個解法比較正確。
我跟你好像是同一個老師喔!!
- 1 0 年前
以五個stage(階段) 的pipeline來說
在一個週期裡最多會有五個指令動作在執行
所以其它stage的時間需要配合最長的stage
大大提到的第二種算法:
(5-1)+100*1=104 (cycle)
(第一個指令完成是第5個cycle,後面的99個指令每經一個cycle就完成一個指令)
104*15=1610 ns (104個cycle,每個cycle要花15ns)