編譯器
關於軟體管線化(software pipelining)的說明,下列何者正確?
- A以軟體增加CPU管線級數的技術
- B將迴圈拆分成函式,以多個執行緒平行執行的技術
- C將不同重複次數的處理重疊,以填補等待時間的技術
查看答案與解析
正確答案:C. 將不同重複次數的處理重疊,以填補等待時間的技術
在軟體管線化中,會把迴圈一次的處理分成「讀取、計算、寫入」這類階段,並安排指令,使得在同一次重複中同時進行例如第i次的寫入、第i+1次的計算、第i+2次的讀取。在等待讀取的期間,可以推進其他重複次數的計算,因此不必讓運算單元閒置。迴圈的前後需要準備與收尾的程式碼。它不是改變CPU級數,或以執行緒平行化的技術。
- A. CPU管線的級數是由硬體決定的。
- B. 與以執行緒進行的平行化是不同的技術。
- C. 正確。重疊不同重複次數的處理,以填補等待時間。