描述了用于從通用源寄存器向目的地向量寄存器進行廣播的裝置和方法。例如,根據一個實施例的方法包括以下操作:選擇所述目的地向量寄存器內的要被更新的數據元素位置N;如果掩碼指示符被設置為第一指示,從所述通用源寄存器向所述目的地向量寄存器內的數據元素位置N廣播數據集;以及如果所述掩碼指示符被設置為第二指示,向所述目的地向量寄存器內的數據元素位置N復制零,或者保持存儲在所述目的地向量寄存器內的數據元素位置N中的現有值。
【技術實現步驟摘要】
【國外來華專利技術】【專利摘要】描述了用于從通用源寄存器向目的地向量寄存器進行廣播的裝置和方法。例如,根據一個實施例的方法包括以下操作:選擇所述目的地向量寄存器內的要被更新的數據元素位置N;如果掩碼指示符被設置為第一指示,從所述通用源寄存器向所述目的地向量寄存器內的數據元素位置N廣播數據集;以及如果所述掩碼指示符被設置為第二指示,向所述目的地向量寄存器內的數據元素位置N復制零,或者保持存儲在所述目的地向量寄存器內的數據元素位置N中的現有值。【專利說明】 專利
本專利技術的實施例一般涉及計算機系統的領域。更具體地,本專利技術的實施例涉及用 于從通用寄存器向向量寄存器廣播的裝置和方法。
技術介紹
一般背景 指令集、或指令集架構(ISA)是涉及編程的計算機架構的一部分,并且可包括原 生數據類型、指令、寄存器架構、尋址模式、存儲器架構、中斷和異常處理、以及外部輸入和 輸出(I/O)。術語指令在本申請中一般表示宏指令,宏指令是被提供給處理器(或指令轉 換器,該指令轉換器(利用靜態二進制轉換、包括動態編譯的動態二進制轉換)轉換、變形、 仿真或以其他方式將指令轉換成將由處理器處理的一個或多個其他指令)以供執行的指 令--作為對比,微指令或微操作(微操作)是處理器的解碼器解碼宏指令的結果。 ISA與微架構不同,微架構是實現該指令集的處理器的內部設計。具有不同微架 構的處理器可共享共同的指令集。例如,INTEL?奔騰四(Pentium 4)處理器、Intel?酷 睿(Core?)處理器、以及來自加利福尼亞州桑尼威爾(Sunnyvale)的超微半導體有限公司 (Advanced Micro Devices, Inc.)的諸多處理器執行幾乎相同版本的x86指令集(在更新 的版本中加入了一些擴展),但具有不同的內部設計。例如,ISA的相同寄存器架構可以在 不同的微架構中使用公知的技術以不同方法來實現,公知的技術包括專用物理寄存器、使 用寄存器重命名機制(例如,使用寄存器別名表(RAT)、重排序緩沖器(R0B)、以及引退寄存 器組;使用多個寄存器映射和寄存器池)的一個或多個動態分配物理寄存器,等等。除非另 行指出,術語寄存器架構、寄存器組和寄存器在本文中用于指代對軟件/編程者可見的寄 存器以及指令指定寄存器的方式。在需要特殊性的場合,將使用定語邏輯的、架構的或軟件 可見的來指示寄存器架構中的寄存器/寄存器組,同時不同的定語將用于指示給定微架構 中的寄存器(例如物理寄存器、重排序緩沖器、引退寄存器、寄存器池)。 指令集包括一個或多個指令格式。給定指令格式定義多個字段(位的數量、位的 位置等)以指定將要被執行的操作(操作碼)以及該操作將要執行的操作數等等。通過定 義指令模板(或子格式),一些指令格式被進一步分解。例如,可將給定指令格式的指令模 板定義成具有該指令格式的字段的不同子集(所包括的字段通常是相同順序,但至少一些 由于包括更少的字段而具有不同的位位置)和/或定義成對給定字段的解釋不同。因此, 利用給定指令格式(而且如果定義,則按照該指令格式的指令模板中的給定一個模板)來 表達ISA的每個指令,并且ISA的每個指令包括用于指定其操作和操作數的字段。例如,示 例性的ADD (加法)指令具有特定的操作碼和指令格式,該指令格式包括用于指定該操作碼 的操作碼字段和用于選擇操作數(源1/目的地和源2)的操作數字段;并且該ADD指令在 指令流中的出現將具有在操作數字段中的特定內容,該特定內容選擇特定操作數。 科學應用、金融應用、自動向量化通用應用、RMS(識別、挖掘和合成)應用以及視 覺和多媒體應用(諸如,2D/3D圖形、圖像處理、視頻壓縮/解壓縮、語音識別算法和音頻處 理)通常需要對大量數據項執行相同的操作(稱為"數據并行性")。單指令多數據(SMD) 指的是使得處理器對多個數據項執行一操作的一種類型的指令。SMD技術尤其適用于將寄 存器中的多個位邏輯地劃分成多個固定大小的數據元素的處理器,其中每個數據元素表示 單獨的值。例如,可將256位寄存器中的位指定為要進行操作的源操作數,作為4個單獨的 64位打包數據元素(四字(Q)尺寸數據元素)、8個單獨的32位打包數據元素(雙字(D) 尺寸數據元素)、16個單獨的16位打包數據元素(字(W)尺寸數據元素)、或32個單獨的 8位數據元素(字節(B)尺寸數據元素)。該數據類型可被稱為打包數據類型或向量數據 類型,并且該數據類型的操作數被稱為打包數據操作數或向量操作數。換句話說,打包數據 項或向量指的是打包數據元素的序列,而打包數據操作數或向量操作數是SIMD指令(或稱 為打包數據指令或向量指令)的源操作數或目的地操作數。 作為示例,一種類型的SIMD指令指定了將要以縱向方式對兩個源向量操作數執 行的單個向量操作,用于生成具有相同尺寸的、具有相同數量的數據元素并且按照相同數 據元素次序的目的地向量操作數(也被稱為結果向量操作數)。源向量操作數中的數據元 素被稱為源數據元素,而目的地向量操作數中的數據元素被稱為目的地或結果數據元素。 這些源向量操作數具有相同尺寸并且包含相同寬度的數據元素,因此它們包含相同數量的 數據元素。兩個源向量操作數中的相同位位置中的源數據元素形成數據元素對(也稱為對 應的數據元素;即,每個源操作數的數據元素位置0中的數據元素相對應,每個源操作數中 的數據元素位置1中的數據元素相對應,以此類推)。對這些源數據元素對中的每一個分別 執行該SMD指令指定的操作,以產生匹配數量的結果數據元素,并且因此每一對源數據元 素具有相應的結果數據元素。由于該操作是縱向的,且由于結果向量操作數是相同尺寸、具 有相同數量的數據元素并且結果數據元素按照與源向量操作數相同的數據元素順序被存 儲,所以結果數據元素處于結果向量操作數中與它們在源向量操作數中的相應源數據元素 對相同的位位置中。除了這種示例性類型的SMD指令之外,存在各種各樣其他類型的SMD 指令(例如僅具有一個源向量操作數或具有超過兩個源向量操作數、以橫向方式操作、產 生不同尺寸的結果向量操作數、具有不同尺寸的數據元素和/或具有不同的數據元素次序 的SMD指令)。應當理解,術語目的地向量操作數(或目的地操作數)被定義為執行由指 令指定的操作的直接結果,包括將該目的地操作數存儲在一位置處(可以是由該指令指定 的寄存器或存儲器地址處),使得它可作為源操作數由另一指令訪問(通過該另一指令指 定同一位置)。 諸如具有包括 x86、MMX?、流式 SMD 擴展(SSE)、SSE2、SSE3、SSE4. 1 以及 SSE4. 2 指令的指令集的丨ntel? Core?處理器所采用的SMD技術之類的SMD技術已經實現了應用 性能的重大改進。已經推出和/或發布了被稱為高級向量擴展(AVX) (AVX1和AVX2)和利 用向量擴展(VEX)編碼方案的附加的SIMD擴展集(參見例如2011年10月的丨meP 64和 IA-32架構軟件開發者手冊;以及參見2011年6月的Intel?高級向量擴展編程參考)。 與本專利技術的實施例有關的背景 廣播來自存儲器或向量寄存器的值已被引入多種現有指令集架構中。然而,在某 些情形中,期望能夠廣本文檔來自技高網...

【技術保護點】
一種執行指令以通過執行以下操作從通用源寄存器向目的地向量寄存器進行廣播的處理器:選擇所述目的地向量寄存器內的要被更新的數據元素位置N;如果掩碼指示符被設置為第一指示,從所述通用源寄存器向所述目的地向量寄存器內的數據元素位置N廣播數據集;以及如果所述掩碼指示符被設置為第二指示,向所述目的地向量寄存器內的數據元素位置N復制零,或者保持存儲在所述目的地向量寄存器內的數據元素位置N中的現有值。
【技術特征摘要】
【國外來華專利技術】
【專利技術屬性】
技術研發人員:E·烏爾德阿邁德瓦爾,R·凡倫天,J·考博爾,B·L·托爾,M·J·查尼,Z·斯波伯,A·格雷德斯廷,
申請(專利權)人:英特爾公司,
類型:發明
國別省市:美國;US
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。