空閒預留站的處理方法是什麼?


當指令到達空閒預留站時,超標量處理器會遵循圖中所示的兩種不同方法。直接方法是像處理部分填充的預留站一樣處理指令。但是,進入的指令必須至少在一個週期內停留在空閒站中,然後再分派。Nx586就是一個以這種方式處理空閒預留站的處理器的例子。

處理空閒預留站的一種更高階的方法是使用旁路。在這裡,一些額外的電路允許指令繞過空閒站,並立即轉發到執行單元 (EU),而不會產生任何額外的延遲。PowerPC 604和PM1(Sparc64)採用了這種更高效的方法。

典型的排程方案

排程方案包含以下元件:

  • 大多數最新的處理器都採用暫存器重新命名和推測執行。因此,資料流選擇規則最常用,如果需要仲裁,則優先選擇最舊的指令。

  • 在指令排程期間獲取運算元時,大多數處理器使用直接檢查方法。或者,當在指令發出期間獲取運算元時,通常會維護和檢查顯式狀態位以確定運算元的可用性。

  • 空閒預留站通常會被繞過。

如果我們關注排程順序和排程速率,則可以在最新的超標量處理器中識別出三種典型的方法,如圖所示。

直接排程中,指令一次排程一個。在這種簡單的方法中,尚未可執行的指令會阻塞進一步的排程,直到該指令變為可執行。一些使用單個預留站的處理器採用這種直接但低效的方法。

透過為特定的預留站引入亂序排程,可以提高這種簡單方法的效率。可以稱這種方法為增強的直接排程。在這種情況下,預留站使用亂序排程,後續的可執行指令可以繞過尚未可執行的指令。這種方法通常用於使用單個預留站的高階處理器。

高階排程是最強大的。它允許亂序排程,並且能夠將多個指令每個週期轉發到可用的執行單元 (EU)。這種高階排程策略用於具有組預留站或中央預留站或 DRIS 的處理器。通常,同一線路的後續處理器傾向於使用更強大的排程方法。

更新於:2021年7月22日

147 次瀏覽

開啟您的職業生涯

完成課程獲得認證

開始
廣告
© . All rights reserved.