用于針對非對稱執行單元高效調度的方法和裝置的制造方法
【專利說明】用于針對非對稱執行單元高效調度的方法和裝置
相關串請的交叉引用
本申請是于2013年3月15日提交的、題為“METHOD AND APPARATUS FOR EFFICIENTSCHEDULING FOR ASYMMETRICAL EXECUT1N UNITS” 的、第 N0.61/799,062 號臨時專利申請的轉換,并要求其優先權和權益,其通過引用整體合并于本文中。
技術領域
[0001]根據本發明的實施例一般地涉及微處理器體系架構,并且更具體地,涉及用于亂序微處理器的體系架構。
【背景技術】
[0002]在亂序(000)微處理器中,允許指令不按照它們的程序順序來發布和執行。000微處理器的調度器亂序選擇和分派準備好的指令到執行單元。某些微處理器架構具有兩種類型指令,A類型和E類型。A類型指令的示例是諸如加法和減法的整數運算,而E類型指令的示例是諸如浮點加法、浮點減法和浮點乘法的浮點運算。然而,應該注意,A類型和E類型指令都不僅限于上述示例。
[0003]然而,支持兩種類型的指令的常規體系架構并沒有可以支持兩種類型的指令的執行單元。例如,常規處理器一般會有用于執行A類型指令的獨有的執行單元,和用于執行E類型指令的獨有的執行單元,其中兩種類型的執行單元彼此相互排斥。
[0004]考慮到非統一的指令類型和非對稱執行單元,在這樣的體系架構中的調度器的目標一般是優化分派吞吐量。此外,調度器的另一個目標是優先于較新的指令先考慮較早的指令。以及最終,最后的目標在于在實施調度過程中保持有競爭力的延遲。
[0005]常規體系架構由于沒有成功達成上述目標而因此有局限。例如,如上所述,常規架構可以采用選擇A類型的指令僅在A類型執行單元中執行,并且挑選E類型指令僅在E類型執行單元中執行的原生策略。這允許為了更佳的延遲而并行實施執行,但是如果對于特定的執行單元類型沒有足夠的指令塊,那么將導致沒有使用的執行單元端口以及較小的整體分派吞吐量。
[0006]例如,在具有4個A類型執行單元和4個E類型執行單元的體系架構中存在5個A類型指令和3個E類型指令,那么至少I個E類型執行單元將空閑,因為A類型指令不能在E類型執行單元上執行。該方案的另一個問題在于其僅在單個分類(ASE)中是時間(age)優化的而沒有針對整個時間優先順序進行優化。在以上示例中,舉例來說,只有7個指令將被分派。第5個A類型指令將不得不等待下一個周期。因此,常規體系架構是有局限的,并未設計為達到調度器的上述所有期望的目的。
【發明內容】
[0007]相應地,需要其中執行單元可以執行多種類型指令的方法和裝置,例如A類型和E類型指令。此外,需要用于針對非對稱執行單元更高效的調度的方法和裝置,其優化分派吞吐量、優先于較新的指令先考慮較早的指令,并且維持有競爭力的延遲。
[0008]本發明的實施例支持非對稱執行單元類型:A類型和E類型,其中A類型執行單元只支持A類型指令,但是E類型執行單元可以支持A和E類型指令。相應,A類型指令可以在A和E單元中執行,但是E類型指令只能在E單元中執行。相應,A類型執行單元可以是E類型執行單元的子集。
[0009]在一個實施例中,為了實施針對非對稱執行單元的調度,調度器首先填充A執行單元端口,并且隨后采用沒有由A執行單元選中的所有其他指令塊來填充E執行單元端口。在一個實施例中,調度器包括“發現-8”和“發現_4”邏輯電路。發現-8電路針對滿足選擇標準的第一 8個最早指令搜索調度器中的分派范圍。同時,發現-4電路與發現-8電路一起并行采用,用于搜索第一 4個最早A類型指令塊。發現-4電路的結果用于調度A類型執行單元。沒有由發現-4選中的剩余的指令,最早的4個隨后被調度用于E類型執行單元。例如,如果發現-8電路選擇3個A類型和5個E類型指令并且發現-4電路挑選3個A類型指令(同樣的3個A類型指令也由發現-8邏輯所選擇),那么3個A類型指令被調度用于A端口,而剩余5個E類型指令中的最早的4個可以被調度用于E端口。然而,本發明不限于該實施例。如果例如調度器在一個周期可以分派16個指令,那么將并行采用“發現-16”和“發現_8”電路等等。
[0010]相應,本發明的實施例具有高的分派效率的優點,因為其嘗試填充A類型端口和E類型端口兩者。此外,本發明的實施例具有在兩種類型的塊之間的較好的整體時間優先順序。最后,因為并行采用發現-8電路和發現-4電路兩者,所以本發明的實施例在實施調度過程中還維持有競爭力的延遲。
[0011]在一個實施例中,公開了用于實施亂序微處理器管線中的指令調度的方法。所述方法包括,選擇指令的第一集合以從調度器分派,其中調度器能夠操作為分派兩種類型的指令,并且其中所述執行模塊包括兩種類型的執行單元。第一類型執行單元執行第一類型指令和第二類型指令兩者并且其中第二類型執行單元僅執行第二類型指令。方法還包括,選擇指令的第二集合以進行分派,其中第二集合是第一集合的子集,并且其中第二集合僅包括第二類型指令。接下來方法包括:確定指令的第三集合,其中第三集合包括沒有選中作為第二集合的一部分的指令。最后方法包括,分派第二集合用于使用第二類型執行單元執行,并且進一步分派第三集合用于使用第一類型執行單元執行。
[0012]在另一個實施例中,公開了配置為實施用于調度亂序微處理器管線中的指令的方法的處理器單元。所述方法包括,選擇指令的第一集合以從調度器分派,其中調度器能夠操作為分派兩種類型的指令,并且其中所述執行模塊包括兩種類型的執行單元。第一類型執行單元執行第一類型指令和第二類型指令兩者并且其中第二類型執行單元僅執行第二類型指令。方法還包括,選擇指令的第二集合以進行分派,其中第二集合是第一集合的子集,并且其中第二集合僅包括第二類型指令。接下來方法包括:確定指令的第三集合,其中第三集合包括沒有選中作為第二集合的一部分的指令。最后方法包括,分派第二集合用于使用第二類型執行單元執行,并且進一步分派第三集合用于使用第一類型執行單元執行。
[0013]在不同的實施例中,公開了配置為實施用于調度亂序微處理器管線中的指令的方法的裝置。所述裝置包括:存儲器、處理器,其通信地耦連到所述存儲器,其中所述處理器配置為亂序處理指令。并且進一步其中所述處理器配置為:(a)選擇指令的第一集合以從調度器分派到執行模塊,其中調度器能夠操作為分派兩種類型的指令,其中執行模塊包括兩種類型的執行單元,其中第一類型執行單元執行第一類型指令和第二類型指令兩者并且其中第二類型執行單元僅執行第二類型指令;(b)選擇指令的第二集合以從調度器進行分派,其中第二集合是第一集合的子集,并且其中第二集合僅包括第二類型指令;(C)確定指令的第三集合,其中指令的第三集合是指令的第一集合的子集,并且其中第三集合包括沒有選中作為第二集合的一部分的指令;并且(d)分派指令的第二集合到所述執行模塊,以用于使用第二類型執行單元執行,并且進一步分派指令的第三集合到執行模塊,以用于使用第一類型執行單元執行。
[0014]接下來與附圖一起的詳細描述將提供對本發明性質和優點的更好理解。
【附圖說明】
[0015]本發明的實施例在附圖中以示例的方式示出,但并非以限制的方式,在附圖中相似的參考標號指代相似的元件。
[0016]圖1是根據本發明的實施例的示例性計算機系統。
[0017]圖2示出了可以選擇非統一指令用于非對稱執行單元的方式的示例。
[0018]圖3是根據本發明的一個實施例的、本發明的實施例可以在其上實現的用于亂序微處理器的管線的示例性框圖。
[0019]圖4是示出了根據本發明實施例的、調度指令用于非對稱執行單元的方案的框圖。
[0020]圖5是示出了根據本發明實施例的、采用每周期分派8個指令的調度器來調度指令用于非對稱執行單元的方案的表。
[0021]圖6描繪了根據本發明實施例的、用于亂序微體系架構中的指令調度的示例性計算機控制的過程。
【具體實施方式】
[0022]現在將詳細參考本發明的各實施例,其示例在附圖中示出。雖然本發明將結合這些實施例進行描述,但是應該理解它們并非旨在將本發明限定于這些實施例。相反,本發明旨在覆蓋可以包括在如隨附權利要求所限定的本發明的精神和范圍內的替換、修改和等同物。此外,在本發