編譯器

關於軟體管線化(software pipelining)的說明,下列何者正確?

  1. A以軟體增加CPU管線級數的技術
  2. B將迴圈拆分成函式,以多個執行緒平行執行的技術
  3. C將不同重複次數的處理重疊,以填補等待時間的技術
查看答案與解析

正確答案:C. 將不同重複次數的處理重疊,以填補等待時間的技術

在軟體管線化中,會把迴圈一次的處理分成「讀取、計算、寫入」這類階段,並安排指令,使得在同一次重複中同時進行例如第i次的寫入、第i+1次的計算、第i+2次的讀取。在等待讀取的期間,可以推進其他重複次數的計算,因此不必讓運算單元閒置。迴圈的前後需要準備與收尾的程式碼。它不是改變CPU級數,或以執行緒平行化的技術。

  • A. CPU管線的級數是由硬體決定的。
  • B. 與以執行緒進行的平行化是不同的技術。
  • C. 正確。重疊不同重複次數的處理,以填補等待時間。
練習這個領域 前往領域頁面

編譯器的其他題目

  1. 在嚴格的設定下,編譯器不會擅自將浮點數的加法 (a + b) + c 重新排列為 a + (b + c),其理由下列何者正確?
  2. 編譯器的自動向量化所使用的指令種類,下列何者正確?
  3. 編譯器的最佳化必須遵守的基本條件,下列何者正確?
  4. 關於程式碼產生階段之一的指令選擇(instruction selection)的說明,下列何者正確?
  5. 關於交叉編譯器(cross compiler)的說明,下列何者正確?

這個領域的比較