塊包括用于一個或多個功能單元的操作的指令。
[0091] 在示例5中,在示例1-4中的任一示例的處理器中,存儲器是一致的存儲器,一個 或多個功能單元是非一致的(NOCO)功能單元。
[0092] 在示例6中,在示例1-5中的任一示例的處理器中,存儲器流模塊進一步基于第一 排序和第二排序,執(zhí)行與存儲器相關聯(lián)的多個操作和與一個或多個功能單元相關聯(lián)的多個 操作。
[0093] 在示例7中,在示例1-6中的任一示例的處理器中,存儲器流模塊進一步從與存儲 器相關聯(lián)的多個操作中標識寫入操作的提升,基于提升的寫入操作,確定與存儲器相關聯(lián) 的多個操作和與一個或多個功能單元相關聯(lián)的多個操作之間的第二依賴關系,并基于第二 依賴關系,修改第二排序,其中第二依賴關系指定,與一個或多個功能單元相關聯(lián)的多個操 作中的至少一個將不執(zhí)行,直到提升的寫入操作被執(zhí)行完。
[0094] 在示例8中,在示例1-7中的任一示例的處理器中,第一排序包括按先后順序的與 存儲器相關聯(lián)的多個操作,第二排序包括按先后順序的與一個或多個功能單元相關聯(lián)的多 個操作。
[0095] 在示例9中,在示例1-8中的任一示例的處理器中,所述第一排序包括按順序的與 所述存儲器相關聯(lián)的所述多個操作,其中與所述存儲器相關聯(lián)的所述多個操作中的讀取操 作可以在與所述存儲器相關聯(lián)的所述多個操作中的在程序順序方面比所述讀取操作早的 寫入操作之前執(zhí)行。第二排序包括按先后順序的與一個或多個功能單元相關聯(lián)的多個操 作。
[0096] 在示例10中,方法包括,由處理器的存儲器序列模塊,接收與存儲器相關聯(lián)的多 個操作和與一個或多個功能單元相關聯(lián)的多個操作??梢源_定確定與所述存儲器相關聯(lián)的 所述多個操作和與所述一個或多個功能單元相關聯(lián)的所述多個操作之間的依賴關系??梢?創(chuàng)建與存儲器相關聯(lián)的多個操作的第一排序,基于依賴關系和與存儲器相關聯(lián)的多個操作 的第一排序,創(chuàng)建與一個或多個功能單元相關聯(lián)的多個操作的第二排序。
[0097] 在示例11中,在示例10的方法中,與存儲器相關聯(lián)的多個操作和與一個或多個功 能單元相關聯(lián)的多個操作之間的依賴關系指定,與一個或多個功能單元相關聯(lián)的多個操作 中的至少一個操作將不執(zhí)行,直到與存儲器相關聯(lián)的多個操作中的一個操作被執(zhí)行完。
[0098] 在示例12中,在示例10-11中的任一示例的方法中,其中與存儲器相關聯(lián)的多個 操作包括與存儲器相關聯(lián)的讀取和寫入操作,其中與一個或多個功能單元相關聯(lián)的多個操 作包括用于執(zhí)行一個或多個功能單元中的至少一個以對存儲在存儲器中的數(shù)據(jù)進行操作 的觸發(fā)器。
[0099] 在示例13中,在示例10-12中的任一示例的方法中,與存儲器相關聯(lián)的寫入操作 將控制塊存儲在存儲器中,控制塊包括用于一個或多個功能單元的操作的指令。
[0100] 在示例14中,在示例10-13中的任一示例的方法中,存儲器是一致的存儲器,一個 或多個功能單元是非一致的(NOCO)功能單元。
[0101] 在示例15中,在示例10-14中的任一示例的方法中,該方法進一步包括,由存儲器 序列模塊,基于第一排序和第二排序,執(zhí)行與存儲器相關聯(lián)的多個操作,與一個或多個功能 單元相關聯(lián)的多個操作。
[0102] 在示例16中,在示例10-15中的任一示例的方法中,該方法進一步包括,由存儲器 序列模塊,從與存儲器相關聯(lián)的多個操作標識寫入操作的提升,由存儲器序列模塊,基于提 升的寫入操作,確定與存儲器相關聯(lián)的多個操作和與一個或多個功能單元相關聯(lián)的多個操 作之間的第二依賴關系。此外,該方法還可以包括,由所述存儲器序列模塊,基于所述第二 依賴關系,修改所述第二排序,其中所述第二依賴關系指定,與所述一個或多個功能單元相 關聯(lián)的所述多個操作中的至少一個將不執(zhí)行,直到所述提升的寫入操作被執(zhí)行完。
[0103] 在示例17中,在示例10-16中的任一示例的方法中,第一排序包括按先后順序的 與存儲器相關聯(lián)的多個操作,第二排序包括按先后順序的與一個或多個功能單元相關聯(lián)的 多個操作。
[0104] 在示例18中,在示例10-17中的任一示例的方法中,所述第一排序包括按順序的 與所述存儲器相關聯(lián)的所述多個操作,其中與所述存儲器相關聯(lián)的所述多個操作中的讀取 操作可以在與所述存儲器相關聯(lián)的所述多個操作中的在程序順序方面比所述讀取操作早 的寫入操作之前執(zhí)行,第二排序包括按先后順序排列的與一個或多個功能單元相關聯(lián)的多 個操作。
[0105] 各實施例可以具有上文所描述的結構特征的不同的組合。例如,上文所描述的處 理器和方法的所有可選的特征也可以利用此處所描述的處理器來實現(xiàn),示例中的細節(jié)可以 用于一個或多個實施例中的任何地方。
[0106] 示例19是包括處理器核和存儲器序列模塊的集成電路。存儲器序列模塊將接收 與存儲器相關聯(lián)的多個操作和與一個或多個功能單元相關聯(lián)的多個操作,確定與存儲器相 關聯(lián)的多個操作和與一個或多個功能單元相關聯(lián)的多個操作之間的依賴關系,創(chuàng)建與存儲 器相關聯(lián)的多個操作的第一排序,并且基于依賴關系和與存儲器相關聯(lián)的多個操作的第一 排序,創(chuàng)建與一個或多個功能單元相關聯(lián)的多個操作的第二排序。可以基于所述第一排序 和所述第二排序,執(zhí)行與所述存儲器相關聯(lián)的所述多個操作和與所述一個或多個功能單元 相關聯(lián)的所述多個操作。
[0107] 在示例20中,在示例19的集成電路中,與存儲器相關聯(lián)的多個操作和與一個或 多個功能單元相關聯(lián)的多個操作之間的依賴關系指定,與一個或多個功能單元相關聯(lián)的多 個操作中的至少一個操作將不執(zhí)行,直到與存儲器相關聯(lián)的多個操作中的一個操作被執(zhí)行 完。
[0108] 在示例21中,在示例19-20中的任一示例的集成電路中,與存儲器相關聯(lián)的多個 操作包括與存儲器相關聯(lián)的讀取和寫入操作,與一個或多個功能單元相關聯(lián)的多個操作包 括用于執(zhí)行一個或多個功能單元中的至少一個以對存儲在存儲器中的數(shù)據(jù)進行操作的觸 發(fā)器。
[0109] 在示例22中,在示例19-21中的任一示例的集成電路中,與存儲器相關聯(lián)的寫入 操作將控制塊存儲在存儲器中,且控制塊包括用于一個或多個功能單元的操作的指令。
[0110] 在示例23中,在示例19-22中的任一示例的集成電路中,存儲器流模塊進一步從 與存儲器相關聯(lián)的多個操作中標識寫入操作的提升,基于提升的寫入操作,確定與存儲器 相關聯(lián)的多個操作和與一個或多個功能單元相關聯(lián)的多個操作之間的第二依賴關系,并基 于第二依賴關系,修改第二排序。第二依賴關系指定,與一個或多個功能單元相關聯(lián)的多個 操作中的至少一個將不執(zhí)行,直到提升的寫入操作被執(zhí)行完。
[0111] 各實施例可以具有上文所描述的操作特征的不同的組合。例如,上文所描述的方 法的所有可選的特征也可以相對于非瞬時的計算機可讀取的存儲介質來實現(xiàn)。這些示例中 的細節(jié)可以在一個或多個實施例的任何地方被使用。
[0112] 示例24是包括指令的非瞬態(tài)計算機可讀取的存儲介質,所述指令在被處理器執(zhí) 行時使處理器執(zhí)行示例10-18的方法。
[0113] 示例25是包括片上系統(tǒng)(SOC)的系統(tǒng),該片上系統(tǒng)包括多個功能單元,存儲器,以 及耦合到功能單元的存儲器流模塊,以接收與存儲器相關聯(lián)的多個操作和與一個或多個功 能單元相關聯(lián)的多個操作,確定與存儲器相關聯(lián)的多個操作和與一個或多個功能單元相關 聯(lián)的多個操作之間的依賴關系,創(chuàng)建與存儲器相關聯(lián)的多個操作的第一排序,基于依賴關 系和與存儲器相關聯(lián)的多個操作的第一排序,創(chuàng)建與一個或多個功能單元相關聯(lián)的多個操 作的第二排序。
[0114] 在示例26中,示例25的SOC進一步包括示例1-9的主題。
[0115] 在示例27中,在示例25的SOC中,存儲器流模塊進一步可操作,以執(zhí)行示例10-18 的主題。
[0116] 在示例28中,示例25的SOC進一步包括示例19-23的主題。
[0117] 示例29是這樣的設備:包括用于接收與存儲器相關聯(lián)的多個操作的裝置、用于接 收與一個或多個功能單元相關聯(lián)的多個操作的裝置、用于確定與存儲器相關聯(lián)的多個操作 和與一個或多個功能單元相關聯(lián)的多個操作之間的依賴關系的裝置、用于創(chuàng)建與存儲器相 關聯(lián)的多個操作的第一排序的裝置、以及用于基于依賴關系和與存儲器相關聯(lián)的多個操作 和第一排序,創(chuàng)建與一個或多個功能單元相關聯(lián)的多個操作的第二排序的裝置。
[0118] 在示例30中,示例29的設備進一步包括示例1-9和20-23中的任一示例的主題。
[0119] 示例31是包括存儲器流模塊的設備,其特征在于,存儲器流模塊被配置成執(zhí)行示 例10-18中的任一示例的方法。
[0120] 在示例32中,示例31的設備進一步包括示例1-9和19-28中的任一示例的主題。
[0121] 盡管是參考數(shù)量有限的實施例來描述本公開的,但是,本領域技術人員將從其中 理解很多修改和變體。所附權利要求書涵蓋所有這樣的修改和變體都將在本發(fā)明的真正的 精神和范圍內(nèi)。
[0122] 在以下描述中,闡明了眾多具體細節(jié),如具體類型的處理器和系統(tǒng)配置的示例、具 體硬件結構、具體架構和微架構細節(jié)、具體寄存器配置、具體指令類型、具體系統(tǒng)組件、具體 測量/高度、具體處理器流水線階段和操作等,以提供對本公開的透徹理解。然而,對本領 域普通技術人員顯而易見的是,不一定要采用這些具體細節(jié)來實施本公開。在其它實例中, 未詳細描述公知的組件或方法,諸如具體或替代的處理器體系結構、用于所描述算法的具 體邏輯電路/代碼、具體固件代碼、具體互連操作、具體邏輯配置、具體制造技術和材料、具 體編譯器實現(xiàn)、代碼中算法的具體表達、具體掉電和功率限制技術/邏輯、以及計算機系統(tǒng) 的其它具體操作細節(jié),以避免不必要地模糊本發(fā)明。
[0123] 各實施例是參考特定集成電路(諸如計算平臺或微處理器中的)中的緩存存儲 器數(shù)據(jù)壓縮和解壓縮來描述的。各實施例也可以適用于其他類型的集成電路和可編程邏 輯器件。例如,所公開的各實施例不僅限于臺式計算機系統(tǒng)或便攜式計算機,諸如 Ultrabooks?計算機。并且也可用于其它設備,諸如,手持式設備、平板、其他薄筆記本、片上 系統(tǒng)(SOC)設備以及嵌入式應用。手持式設備的一些示例包括蜂窩電話、因特網(wǎng)協(xié)議設備、 數(shù)碼相機、個人數(shù)字助理(PDA)、手持式PC。嵌入式應用典型地包括微控制器、數(shù)字信號處 理器(DSP)、芯片上系統(tǒng)、網(wǎng)絡計算機(NetPC)、機頂盒、網(wǎng)絡集線器、廣域網(wǎng)(WAN)交換機、 或可執(zhí)行以下教導的功能和操作的任何其他系統(tǒng)。描述了系統(tǒng)可以是任何類型的計算機或 嵌入式系統(tǒng)。所公開的各實施例可以特別用于低端設備,諸如可穿戴設備(例如,手表)、電 子植入物、傳感和控制基礎設施設備、控制器、監(jiān)視控制和數(shù)據(jù)采集(SCADA)系統(tǒng)等等。此 外,本文描述的裝置、方法和系統(tǒng)不限于物理計算設備,而是還可涉及用于節(jié)能和能效的軟 件優(yōu)化。如將在以下描述中變得顯而易見的,本文描述的方法、裝置和系統(tǒng)的實施例(無論 是關于硬件、固件、軟件還是它們的組合)對于用性能考量來平衡的'綠色技術'的前景是 至關重要的。
[0124] 雖然參照處理器來描述多個實施例,但是其他實施例也適用于其他類型的集成電 路和邏輯設備。本發(fā)明的實施例的類似技術和教導可應用于可受益于更高的流水線吞吐量 和改善的性能的其他類型的電路或半導體器件。本發(fā)明的多個實施例的教導適用于執(zhí)行數(shù) 據(jù)操縱的任何處理器或機器。然而,本發(fā)明不限于執(zhí)行512位、256位、128位、64位、32位、 或16位數(shù)據(jù)運算的處理器或機器,并可適用于執(zhí)行數(shù)據(jù)操縱或管理的任何處理器和機器。 此外,此處的描述提供了示例,并且附圖出于示意性目的示出各種示例。然而,這些示例不 應該被理解為具有限制性意義,因為它們僅僅旨在提供本發(fā)明的多個實施例的示例,而并 非對本發(fā)明的多個實施例的所有可能的實現(xiàn)方式進行窮舉。
[0125] 雖然下述的示例是在執(zhí)行單元和邏輯電路情境下描述指令處理和分配,但本發(fā)明 的其他實施例也可通過存儲在機器可讀有形介質上的數(shù)據(jù)和/或指令來完成,這些數(shù)據(jù)和 /或指令在被機器執(zhí)行時使得機器執(zhí)行與本發(fā)明至少一個實施例相一致的功能。在一個實 施例中,與本發(fā)明的多個實施例相關聯(lián)的功能被具體化在機器可執(zhí)行指令中。這些指令可 用來使通過這些指令而被編程的通用處理器或專用處理器執(zhí)行本發(fā)明的步驟。本發(fā)明的多 個實施例也可以作為計算機程序產(chǎn)品或軟件來提供,該計算機程序產(chǎn)品或軟件可包括其上 存儲有指令的機器或計算機可讀介質,這些指令可被用來對計算機(或其他電子設備)進 行編程以執(zhí)行根據(jù)本發(fā)明的多個實施例的一個或多個操作?;蛘撸景l(fā)明的多個實施例的 多個操作可由包含用于執(zhí)行這些操作的固定功能邏輯的專用硬件組件來執(zhí)行,或由經(jīng)編程 的計算機組件以及固定功能硬件組件的任何組合來執(zhí)行。
[0126] 可將用于對邏輯進行編程以執(zhí)行本發(fā)明的多個實施例的指令存儲在系統(tǒng)中的存 儲器中(諸如,DRAM、高速緩存、閃存、或其他存儲設備)內(nèi)。此外,指令可經(jīng)由網(wǎng)絡或通過其 他計算機可讀介質來分配。因此,計算機可讀介質可包括用于以機器(例如,計算機)可讀 的形式存儲或發(fā)送信息的任何機制,但不限于:軟盤、光盤、緊致盤只讀存儲器(CD-ROM)、 磁光盤、只讀存儲器(ROM)、隨機存取存儲器(RAM)、可擦除可編程只讀存儲器(EPROM)、電 可擦除可編程只讀存儲器(EEPROM)、磁卡或光卡、閃存、或在經(jīng)由互聯(lián)網(wǎng)通過電、光、聲、或 其他形式的傳播信號(例如,載波、紅外信號、數(shù)字信號等)發(fā)送信息中所用的有形機器可 讀存儲器。因此,計算機可讀介質包括適用于存儲或發(fā)送機器(例如,計算機)可讀形式的 電子指令或信息的任何類型的有形機器可讀介質。
[0127] 設計會經(jīng)歷多個階段,從創(chuàng)建到仿真到制造。表示設計的數(shù)據(jù)可用多種方式來表 示該設計。首先,像仿真中有用的那樣,可使用硬件描述語言或另一功能性描述語言來表示 硬件。此外,可在設計過程的一些