本發明專利技術是“執行屏蔽加載和存儲操作的指令和邏輯”。在一個實施例中,提供邏輯以用于接收和執行屏蔽移動指令以根據針對該指令的屏蔽信息將矢量數據元素從源位置傳送到目的地位置,該矢量數據元素包含多個壓縮數據元素。還描述了其他實施例并且要求保護這些其他實施例。
【技術實現步驟摘要】
本專利技術涉及支持屏蔽(mask)操作的邏輯、處理器及系統。
技術介紹
隨著處理器技術的進步,也不斷生成新代碼在具有這些處理器的機器上運行。用戶一般對他們的計算機,不管其在用的軟件類型,期望和需要更高性能。可能問題產生自實際在處理器內執行的這些類型的指令和操作。基于所需要的電路的類型和/或操作的復雜性,某些類型的操作會需要更多時間才能完成。這提供了優化某些復雜操作在處理器內執 行的方式的機會。媒體應用是微處理器開發的驅動力。因此,顯示圖像和播放音頻和視頻數據(通稱為內容)已成為目前的計算裝置越來越流行的應用。此類操作是計算密集的,但是提供高級別的數據并行性,可以通過采用多種數據存儲裝置(例如單指令多數據(SIMD)寄存器)的有效的實現來利用這種高級別的數據并行性。許多目前的體系結構還需要多個操作、指令或子指令(常常稱為“微操作”或“Pops”)來對多個操作數執行多種數學運算或數據傳輸操作,從而減小了吞吐量并增加了執行這些操作所需的時鐘周期數。在SIMD或矢量化操作中常常使用屏蔽,以使得程序員能夠屏蔽矢量的某個部分。它廣泛地應用于條件操作、矢量化循環的開始/結束或短矢量支持。矢量數據的屏蔽加載和存儲是非常復雜的操作,通常需要許多單獨指令和時鐘周期以用于執行。在此類操作期間,完全不得執行矢量化加載/存儲操作的一些部分(“被屏蔽”部分)。因為存儲器操作通常以塊(例如加載128位、存儲128位)來執行,所以支持屏蔽操作以合理性能進行,不需要參考屏蔽來進行塊加載,變得非常棘手。由于未對準的加載、頁/分段故障、數據斷點支持等,使得使用例如基于Intel -體系結構(IA-32)的處理器的處理器體系結構來執行屏蔽加載和存儲甚為更加棘手。例如,當執行128位屏蔽加載時,可能是該數據的一部分位于一個頁中而另一部分位于另一頁中。如果這些頁其中之一不存在,而恰好屬于此頁的部分未被屏蔽,則會產生頁故障。因此,目前的體系結構不足以解決有效執行屏蔽加載和存儲操作。相反此類技術需要很多處理周期,并且可能導致處理器或系統為執行這些被屏蔽的操作而耗費不必要的功率。
技術實現思路
根據本專利技術的實施例,提供了一種用于執行屏蔽加載和存儲操作的設備,包括模塊,其用于接收和執行屏蔽移動指令以將矢量數據元素從源位置傳送到目的地位置,所述矢量數據元素包含多個壓縮數據元素,其中所述屏蔽移動指令要根據矢量屏蔽寄存器中的屏蔽信息來執行,其中所述屏蔽移動指令是屏蔽加載指令。根據本專利技術的實施例,提供了一種用于執行屏蔽加載和存儲操作的方法,包括響應系統的處理器中執行屏蔽移動指令,從所述系統的第一存儲裝置獲取包含多個壓縮值的數據,以及將所述數據 存儲在所述系統的目的地存儲裝置中,其中所述屏蔽移動指令要根據矢量屏蔽寄存器中的屏蔽信息來執行;擇機性地以全寬度加載操作獲取所述數據并將其存儲到臨時存儲裝置中;以及如果在所述全寬度加載操作期間發生異常,則獨立地獲取所述多個壓縮值的每個壓縮值并將其存儲在所述目的地存儲裝置中。根據本專利技術的實施例,提供了一種用于執行屏蔽加載和存儲操作的方法,包括響應指令的執行,擇機性地執行全寬度移動操作以從第一存儲裝置獲取包含多個壓縮值的矢量數據元素,以及將所述矢量數據元素存儲在目的地存儲裝置中,其中,所述指令是根據屏蔽的矢量屏蔽加載指令以將所述矢量數據元素從由關聯于所述矢量屏蔽加載指令的源標識符所指示的存儲器位置加載到由關聯于所述矢量屏蔽加載指令的目的地標識符所指示的目的地存儲裝置中,其中所述屏蔽被存儲在矢量屏蔽寄存器中。根據本專利技術的實施例,提供了一種用于執行屏蔽加載和存儲操作的系統,包括處理器,其包括執行單元,所述執行單元用于執行屏蔽移動指令以根據矢量屏蔽寄存器中的屏蔽信息來將矢量數據元素從源存儲裝置傳送到目的地存儲裝置中,所述矢量數據元素包含多個壓縮數據元素;寄存器文件,其包含多個各用于存儲矢量數據元素的矢量寄存器和用于存儲針對所述屏蔽移動指令的屏蔽的矢量屏蔽寄存器;以及存儲緩沖器,其包含多個項目,所述多個項目各用于存儲待處理指令、目的地標識符、源標識符以及在所述待處理指令是屏蔽存儲指令的情況下存儲來自所述屏蔽的屏蔽數據;以及耦合到所述處理器的動態隨機存取存儲器(DRAM),其中所述處理器用于擇機性地執行全寬度存儲操作以將所述待處理指令、所述源標識符、所述目的地標識符和所述屏蔽數據存儲到所述存儲緩沖器,其中如果在所述全寬度存儲操作期間發生異常,所述處理器用于對所述多個壓縮數據元素中其具有的屏蔽數據的相應部分具有第一值的每個壓縮數據元素進行獨立地獲取并將其存儲在所述目的地存儲裝置中。根據本專利技術的一個方面,提供一種設備,包括邏輯,其用于接收和執行屏蔽移動指令以將矢量數據元素從源位置傳送到目的地位置,所述矢量數據元素包含多個壓縮數據元素,其中所述屏蔽移動指令要根據矢量屏蔽寄存器中的屏蔽信息來執行。根據本專利技術的另一個方面,提供一種方法,包括響應系統的處理器中執行矢量屏蔽移動指令,從所述系統的第一存儲裝置獲取包含多個壓縮值的數據,以及將所述數據存儲在所述系統的目的地存儲裝置中。根據本專利技術的又一個方面,提供一種其上存儲有指令的機器可讀媒體,所述指令在被機器執行時使得所述機器執行一種方法,所述方法包括響應所述指令的執行,擇機性地執行全寬度移動操作以從第一存儲裝置獲取包含多個壓縮值的矢量數據元素,以及將所述矢量數據元素存儲在目的地存儲裝置中,其中所述指令是根據屏蔽的矢量屏蔽移動指令。根據本專利技術的又一個方面,提供一種系統,包括處理器,其包括執行單元,所述執行單元用于執行屏蔽移動指令以根據矢量屏蔽寄存器中的屏蔽信息來將矢量數據元素從源存儲裝置傳送到目的地存儲裝置中,所述矢量數據元素包含多個壓縮數據元素;寄存器文件,其包含多個各用于存儲矢量數據元素的矢量寄存器和用于存儲針對所述屏蔽移動指令的屏蔽的控制寄存器;以及存儲緩沖器,其包含多個項目,所述多個項目各用于存儲待處理指 令、目的地標識符、源標識符以及在所述待處理指令是屏蔽存儲指令的情況下的來自所述屏蔽的屏蔽數據;以及耦合到所述處理器的動態隨機存取存儲器(DRAM)。附圖說明圖I是根據本專利技術的一個實施例的、用包括用于執行屏蔽加載和存儲操作的指令的邏輯的處理器而形成的示范計算機系統的框圖。圖2是根據本專利技術的一個實施例的、執行屏蔽加載操作的方法的流程圖。圖3是根據本專利技術的另一個實施例的、用于執行屏蔽加載操作的方法的流程圖。圖4是根據本專利技術的一個實施例的、執行屏蔽存儲操作的方法的流程圖。圖5是根據本專利技術的另一個實施例的、執行屏蔽存儲操作的方法的流程圖。圖6是根據本專利技術的一個實施例的處理器的框圖。圖7是根據本專利技術的一個實施例的系統的框圖。具體實施例方式在現代處理器中,使用許多不同的執行單元來處理和執行多種代碼和指令。并非所有指令被創建成均等的,一些指令完成的比較快,而另一些指令可能花費非常多的時鐘周期。指令的吞吐越快,處理器的整體性能越好。但是,有某些指令存在更大的復雜性,并且在執行時間和處理器資源方面要求更多。例如有浮點指令、加載/存儲操作、數據移動等。由于越來越多的計算機系統用于因特網和多媒體應用,所以日趨引入了額外的處理器支持。例如,單指令多數據(SMD)整數/浮點指令和流式SMD擴展(SSE)是減少執行本文檔來自技高網...
【技術保護點】
一種用于執行屏蔽加載和存儲操作的設備,包括:模塊,其用于接收和執行屏蔽移動指令以將矢量數據元素從源位置傳送到目的地位置,所述矢量數據元素包含多個壓縮數據元素,其中所述屏蔽移動指令要根據矢量屏蔽寄存器中的屏蔽信息來執行,其中所述屏蔽移動指令是屏蔽加載指令。
【技術特征摘要】
...
【專利技術屬性】
技術研發人員:D奧倫斯蒂恩,Z斯佩伯,B瓦倫丁,B艾特頓,
申請(專利權)人:英特爾公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。