新四季網

用於數據元素中的位填零的系統、設備和方法

2023-07-05 21:12:21

用於數據元素中的位填零的系統、設備和方法
【專利摘要】描述了用於執行NAME指令的系統、方法和裝置的實施例。VPBZHI的執行導致在第二源的每數據元素基礎上,比數據元素的開始點高(更高有效)的位的歸零。開始點由第一源中的數據元素的內容限定。結果數據元素被存儲在目的地的相對應數據元素位置中。
【專利說明】用於數據元素中的位填零的系統、設備和方法發明領域
[0001]本發明領域一般涉及計算機處理器架構,尤其涉及在被執行時產生特定結果的指令。
[0002]直量
[0003]指令集或指令集架構(ISA)是與編程有關的計算機架構的一部分,且可包括本機數據類型、指令、寄存器架構、尋址模式、存儲器架構、中斷和異常處理以及外部輸入和輸出(I/O)。應注意術語指令在本文中一般指的是宏指令一提供給處理器以供執行的指令一與從處理器的解碼器解碼宏指令得到的微指令或微操作相反。
[0004]附圖簡沭
[0005]在附圖各圖中通過示例而不是限制說明了本發明,其中類似標記指示相似元件,且其中:
[0006]圖1示出根據本發明的一個實施例的一個有效位向量寫掩碼元素的數量和向量尺寸和數據元素尺寸之間的相關性。
[0007]圖2是用於執行一個或多個指令的處理器(處理器核)的示例性實施例的框圖。
[0008]圖3示出VPBZHI的操作的示例性圖示。
[0009]圖4示出處理器中VPBZHI指令的執行的實施例。
[0010]圖5示出處理VPBZHI指令的方法的實施例。
[0011]圖6是根據本發明的一個實施例的寄存器架構600的框圖。
[0012]圖7A是示出根據本發明的實施例的有序流水線以及示例性寄存器重命名、無序發布/執行流水線的框圖。
[0013]圖7B是示出根據本發明的實施例的有序流水線以及示例性寄存器重命名、無序發布/執行流水線的框圖。
[0014]圖8A-B示出更特定的示例性有序核架構的框圖,其核可以是晶片中的若干邏輯塊之一(包括相同類型和/或不同類型的其它核)。
[0015]圖9是根據本發明的實施例的處理器900的框圖,該處理器可具有一個以上的核,可具有集成的存儲器控制器,且可具有集成的圖形。
[0016]圖10-13是示例性計算機架構的框圖。
[0017]圖14是根據本發明的實施例的使用軟體指令轉換器將源指令集中的二進位指令轉換為目標指令集中的二進位指令的框圖。

【具體實施方式】
[0018]在下面的描述中,闡述了很多具體細節。然而,應當理解,本發明的實施例可在沒有這些具體細節的情況下實踐。在其他情況下,沒有詳細示出已知的電路、結構,以及技術,以便不至於使本描述變得模糊。
[0019]在說明書中對「一個實施例」、「一實施例」、「示例實施例」等的參考指示所描述的實施例可包括特定特徵、結構或特性,但並不一定每個實施例都包括該特定特徵、結構或特性。此外,這樣的短語不一定是指同一個實施例。此外,當結合實施例描述特定特徵、結構或特性時,認為本領域技術人員知道結合無論是否明顯描述的其他實施例來實現這些特徵、結構或特性。
[0020]Μ?
[0021]指令集架構與微架構不同,微架構是實現ISA的處理器的內部設計。具有不同微架構的處理器可共享公共指令集。例如,英特爾奔騰四(Pentium4)處理器、英特爾酷睿(Core)處理器、以及來自加利福尼亞州桑尼威爾(Sunnyvale)的高級微設備有限公司(Advanced Micro Devices, Inc.)的諸多處理器執行幾乎相同版本的x86指令集(在更新的版本中加入了一些擴展),但具有不同的內部設計。例如,ISA的相同寄存器體系結構在不同的微體系結構中使用已知的技術以不同方法來實現,包括專用物理寄存器、使用寄存器重命名機制(諸如,如美國專利N0.5,446,912所述,使用寄存器假名表(MT)、重排序緩衝器(R0B)、以及引退寄存器文件;如果美國專利N0.5,207,132所述,使用多個寄存器映射和池)的一個或多個動態分配物理寄存器等。除非明確指出,否則短語寄存器架構、寄存器文件和寄存器指的是對軟體/程式設計師可見的那些以及指令指定寄存器的方式。在期望特殊性的情況下,形容詞邏輯、架構或軟體可見物可用於指示寄存器架構中的寄存器/文件,同時不同的形容詞將用於指定給定微架構中的寄存器(例如,物理寄存器、重排序緩衝器、引退寄存器、寄存器池)。
[0022]指令集包括一個或多個指令格式。給定的指令格式定義多個欄位(位數、位的位置)以特別指定將要被執行的操作以及將要被執行的操作的操作數。給定的指令利用給定的指令格式來表達,並且指定操作和操作數。指令流是特定的指令序列,其中序列中的每個指令是指令按照指令格式的存在。
[0023]科學應用、金融應用、自動向量化通用應用、RMS (識另U、挖掘和合成)應用/視覺和多媒體應用(諸如,2D/3D圖形、圖像處理、視頻壓縮/解壓縮、語音識別算法和音頻處理)通常需要對大量數據項(稱為「數據並行性」)進行相同的操作。單指令多數據(SIMD)指的是使得處理器在多個數據項目上執行相同操作的一種類型的指令。SMD技術尤其適用於處理器,這些處理器將寄存器中的諸個位(bit)邏輯地劃分入多個固定大小的數據元素,每個數據元素表示單獨的值。例如,64位寄存器中的諸個位可被指定為源操作數,該源操作數被操作為四個單獨的16位數據元素,每個數據元素表示單獨的16位值。作為另一個示例,256位寄存器中的位可被指定為源操作數,該源操作數被操作為四個單獨的64位打包數據元素(四字(Q)尺寸數據元素)、該源操作數被操作為八個單獨的32位打包數據元素(雙字(D)尺寸數據元素)、該源操作數被操作為十六個單獨的16位打包數據元素(字(W)尺寸數據元素)、或該源操作數被操作為三十二個單獨的8位打包數據元素(字節(B)尺寸數據元素)。該數據類型可被稱為打包數據類型或向量數據類型,並且該數據類型的操作數被稱為打包數據操作數或向量操作數。換句話說,打包數據項或向量指的是打包數據元素的序列;並且打包數據操作數或向量操作數是SMD指令(也稱為打包數據指令或向量指令)的源操作數或目的地操作數。
[0024]作為示例,一種類型的SMD指令指定將要以垂直方式在兩個源向量操作數上執行的單個向量操作,以生成相同大小的、具有相同數量的數據元素、具有相同數據元素次序的目的地向量操作數(也被稱為是結果向量操作數)。源向量操作數中的數據元素被稱為源數據元素,而目的地向量操作數中的數據元素被稱為目的地或結果數據元素。這些源向量操作數具有相同尺寸且包含相同寬度的數據元素,因此它們包含相同數量的數據元素。兩個源向量操作數中的相同位位置中的源數據元素形成數據元素對(也稱為相對應的數據元素;即,每個源操作數的數據元素位置O中的數據元素相對應,每個源操作數的數據元素位置I中的數據元素相對應,等等)。SMD指令指定的操作在這些源數據元素對中的每對上單獨執行,以生成匹配數量的結果數據元素,並且因此每對源數據元素具有相對應的結果數據元素。因為操作是垂直的,且因為結果向量操作數尺寸相同,具有相同數量的數據元素,且結果數據元素以與源向量操作數相同的數據元素順序存儲,結果數據元素在結果向量操作數中的位位置與源向量操作數中的相對應源數據元素對相同。除SIMD指令的這種示例性類似外,存在各種其它類型的SIMD指令(例如,僅具有一個源向量操作數或具有兩個以上的源向量操作數;以水平方式操作;生成不同尺寸的結果向量操作數,具有不同尺寸的數據元素和/或具有不同的數據元素順序)。應理解,術語目的地向量操作數(或目的地操作數)被定義為執行由指令指定的操作的直接結果,包括該目的地操作數在位置處的存儲(在寄存器中或在該指令指定的存儲器地址處),使得它可由另一個指令訪問作為源操作數(通過另一個指令對該相同位置的指定)。
[0025]例如由丨ntel?Core? 處理器(具有包括 x86、MMX、流 SMD 擴展(SSE)、SSE2、SSE3、SSE4.USSE4.2指令的指令集)所使用的SMD技術在應用性能上帶來了極大的提高(Core?和MMX?是加利福尼亞州聖克拉拉市的intel公司的註冊商標或商標)。另外的SMD擴展集稱為高級向量擴展(AVX)(AVX1和AVX2)並且使用VEX編碼方案,已經被發行和/或出版(例如,參見Intel? 64and IA-32Architectures Software Developers Manual, 0ctober2011 ;以及Intel? Advanced Vector Extens1ns Programming Reference, June2011)o
[0026]在以下的描述中,在描述指令集架構中的該特定指令的操作之前需要解釋一些項。一個這樣的項被稱為「寫掩碼寄存器」,它通常用於斷言操作數以有條件地控制每個元素的計算操作(下文中,還使用術語掩碼寄存器,且它指寫掩碼寄存器,諸如以下討論的「k」寄存器)。如下文所使用的,寫掩碼寄存器存儲多個位(16、32、64等),其中寫掩碼寄存器的每個有效位在SMD處理期間控制向量寄存器的打包數據元素的操作/更新。典型地,具有一個以上的可用於處理器核使用的寫掩碼寄存器。
[0027]指令集架構包括至少一些SMD指令,這些指令指定向量操作且具有用於從這些向量寄存器中選擇源寄存器和/或目的地寄存器的欄位(示例性SIMD指令可指定將在一個或多個向量寄存器的內容上執行的向量操作,且向量操作的結果被存儲在向量寄存器之一中)。本發明的不同實施例可具有不同尺寸的向量寄存器且支持更多/更少/不同尺寸的數據元素。
[0028]由SIMD指令指定的多位數據元素的尺寸(例如,字節、字、雙字、四字)確定向量寄存器內「數據元素位置」的位定位,並且向量操作數的尺寸確定數據元素的數量。打包數據元素指的是存儲在特定位置中的數據。換言之,取決於目的地操作數中數據元素的尺寸以及目的地操作數的尺寸(目的地操作數中位的總數)(或換言之,取決於目的地操作數的尺寸和目的地操作數中數據元素的數量),所得到的向量操作數內多位數據元素位置的位定位(bit locat1n)改變(例如,如果所得到的向量操作數的目的地是向量寄存器(在該討論中,向量寄存器和打包數據元素寄存器互換地使用),則目的地向量寄存器內多位數據元素位置的位定位改變)。例如,多位數據元素的位定位在操作在32位數據元素(數據元素位置O佔據位定位31: O,數據元素位置I佔據位定位63:32等等)上的向量操作和操作在64位數據元素(數據元素位置O佔據位定位63: O,數據元素位置I佔據位定位137:64等等)上的向量操作之間是不同的。
[0029]另外,如圖1所示,根據本發明的一個實施例的一個有效位向量寫掩碼元素的數量和向量尺寸和數據元素尺寸之間的相關性。示出128位、256位和512位的向量尺寸,但是其它寬度也是也能的。8位字節(B)、16位字節(W)、32位字節(D)或單精度浮點、64位四字(Q)或雙精度浮點的數據元素尺寸被考慮,然而其它寬度也是可能的。如所示,當向量尺寸是128位時,當向量的數據元素尺寸是8位時可將16位用於掩蔽,當向量的數據元素尺寸是16位時可將8位用於掩蔽,當向量的數據元素尺寸是32位時可將4位用於掩蔽,當向量的數據元素尺寸是64位時可將2位用於掩蔽。當向量尺寸是256位時,當打包數據元素寬度是8位時可將32位用於掩蔽,當向量的數據元素尺寸是16位時可將16位用於掩蔽,當向量的數據元素尺寸是32位時可將8位用於掩蔽,當向量的數據元素尺寸是64位時可將4位用於掩蔽。如所示,當向量尺寸是512位時,當向量的數據元素尺寸是8位時可將64位用於掩蔽,當向量的數據元素尺寸是16位時可將32位用於掩蔽,當向量的數據元素尺寸是32位時可將16位用於掩蔽,當向量的數據元素尺寸是64位時可將8位用於掩蔽。
[0030]取決於向量尺寸和數據元素尺寸的組合,可將全部64位或僅64位的子集用作寫掩碼。一般而言,當使用單個每元素掩蔽控制位時,向量寫掩碼寄存器中用於掩蔽(有效位)的位數等於按位計的向量尺寸除以按位計的向量數據元素尺寸。
[0031]如上所指出的,寫掩碼寄存器包含掩碼位,該掩碼位對應於向量寄存器(或存儲器位置)中的元素並且跟蹤應對其進行操作的元素。出於此原因,期望具有通用的操作,這些操作在這些掩碼位上複製類似於向量寄存器的行為,並且通常運行調節寫掩碼寄存器中的這些掩碼位。
[0032]以下描述的是使用控制向量來使源的每個數據元素中的特定位置處開始的位歸零的指令的實施例。該指令可用於使很多位操作任務有效地向量化,包括提取向量寄存器的數據元素中的位以及將位插入每個數據元素中。以下是指令集的一般稱為從指定的位位置開始的向量打包零高位(「VPBZHI」)指令的指令實施例,以及可用於這一指令的系統、架構、指令格式等的實施例。VPBZHI的執行導致在第二源的每數據元素基礎上,比數據元素的開始點高(更高有效)的位的歸零。開始點由第一源中的數據元素的內容限定。結果數據元素被存儲在目的地的相對應數據元素位置中。
[0033]圖2是用於執行一個或多個VPBZHI指令204的處理器(處理器核)200的示例性實施例的框圖。在一些實施例中,處理器可以是通用處理器(例如,用在臺式機、膝上型計算機、伺服器等計算機中的類型)。替代地,處理器可以是專用處理器。合適的專用處理器的例子包括但不限於,網絡處理器、通信處理器、加密處理器、圖形處理器、協處理器、嵌入式處理器、數位訊號處理器(DSP)、以及控制器,這裡僅給出幾個示例。處理器可以是各種複雜指令集計算(CISC)處理器、各種精簡指令集計算(RISC)處理器、各種超長指令字(VLIW)處理器、其各種混合或全部其它類型的處理器中的任一個。
[0034]處理器200包括架構上可見寄存器(例如,架構寄存器文件)205。架構寄存器在本文中也可簡稱為寄存器。除非另外指定或顯見地,短語架構寄存器、寄存器文件和寄存器在本文中被用於指代這樣的寄存器:該寄存器對於被宏指令或彙編語言指令指定來標識操作數的軟體和/或編程器和/或寄存器而言是可見。這些寄存器與給定微架構的非架構或非架構上可見的寄存器(例如,指令所用的臨時寄存器、重排序緩衝器、引退寄存器等)形成對比。寄存器一般表示管芯上處理器存儲位置。所例示的架構寄存器包括打包數據寄存器206。打包數據寄存器中的每一個可操作用於存儲打包或向量數據。所例示的架構寄存器還包括打包數據操作掩碼寄存器207。打包數據操作掩碼寄存器中的每一個可操作用於存儲打包數據操作掩碼。在本說明書中這些寄存器可被稱為寫掩碼寄存器。打包數據操作數可被存儲在打包數據寄存器207中。
[0035]處理器還包括執行邏輯208。執行邏輯可操作用於執行或處理一個或多個VPBZHI指令204。在一些實施例中,執行邏輯可包括用於執行這些指令的特定邏輯(例如,與固件潛在組合的特定電路或硬體)。
[0036]圖3示出VPBZHI的操作的示例性圖示。在所示的示例3 (A)中,來自第一源寄存器301的數據元素以每數據元素為基礎提供用於第二源寄存器/存儲器位置303中的相應數據元素中的位歸零的開始點。在該示例中,第一和第二源301、303在位置0-3 (右側的最低有效)具有四個數據元素。在數據元素位置0,第一源301具有十六進位格式的值
00000002。這是十進位記數法中的2,並且指示第二源302的位位置(bit posit1n) 2是歸零可能開始的點。然而,在該圖示中使用寫掩蔽,且由於在該位置處寫掩碼305的值,在第二源中沒有發生位歸零,並且被保存在相應的目的地309中。在該示例中,目的地309的內容與指令被執行之前相同。
[0037]在數據元素位置1,第一源301具有十六進位格式的值00000010。這是十進位記數法中的16,並且指示第二源303的位位置16是歸零可能開始的點。而且,在該圖示中使用寫掩蔽,但此時,寫掩碼305的該位位置中的值指示發生歸零和寫。如此,在位位置16開始第二源303的數據將被歸零且新的值將被存儲在目的地309的數據元素位置I中。
[0038]在所示的示例3 (B)中,來自第一源寄存器311的數據元素以每數據元素為基礎提供用於第二源寄存器/存儲器位置313中的相應數據元素中的位歸零的開始點。在該示例中,第一和第二源311、313在位置0-3 (右側的最低有效)具有四個數據元素。在數據元素位置0,第一源311具有十六進位格式的值00000002。這是十進位記數法中的2,並且指示第二源313的位位置2是歸零可能開始的點。然而,在該圖示中使用寫掩蔽,且由於在該位置處寫掩碼315的值,在第二源中沒有發生位歸零,並且被保存在相應的目的地319中。在該示例中,目的地319的內容被完全歸零。
[0039]在數據元素位置1,第一源311具有十六進位格式的值00000010。這是十進位記數法中的16,並且指示第二源313的位位置16是歸零可能開始的點。而且,在該圖示中使用寫掩蔽,但此時,寫掩碼315的該位位置中的值指示發生歸零和寫。如此,在位位置16開始第二源313的數據將被歸零且新的值將被存儲在目的地319的數據元素位置I中。
[0040]示例件VPBZHI格式
[0041]該指令的示例性格式是「VPBZHI {K1}R1, R2/MEM, R3」,其中目的地操作數Kl是可選寫掩碼寄存器,Rl是打包數據源寄存器(諸如128-、256-、512_位寄存器等),R2是打包數據目的地寄存器(諸如128-、256-、512_位寄存器等)或存儲器位置,且R3是目的地寄存器(諸如128-、256-、512_位寄存器等),且VPBZHI是指令的操作碼。操作碼還可標明源的數據元素的尺寸。例如,VPBZHID指示數據元素是32位,VPBZHIB是8位等。數據元素和源操作數的尺寸還確定寫掩碼寄存器中的有效位的數量。
[0042]執行VPBZHI的示例性方法
[0043]圖4示出處理器中VPBZHI指令的執行的實施例。在401,獲取具有第一和第二源操作數、目的地操作數、可選寫掩碼操作數和操作碼的VPBZHI指令。
[0044]在403,通過解碼邏輯解碼VPBZHI指令。取決於指令的格式,在該階段可解釋各種數據,諸如如果有數據變換,則寫入和/或檢索哪些寄存器、訪問哪些存儲器地址等。
[0045]在405,檢索/讀取源操作數的值。例如,讀取源向量寄存器。如果源操作數是存儲器操作數,則與該操作數相關聯的數據元素被檢索。在一些實施例中,來自存儲器的數據元素被存儲在臨時寄存器中。
[0046]在407,通過諸如一個或多個功能單元之類的執行資源執行VPBZHI指令(或包括諸如微操作之類的指令的操作),從而對於第一源操作數的每個數據元素位置確定開始位位置,用於在該位位置的數據元素開始使第二源操作數的值歸零。指令的執行還導致對於第二源操作數的每個相對應的數據元素位置,在大於(更高有效)或等於第一源中的相對應數據元素位置中得到的開始位位置的位位置中的位的歸零。在圖3中得到該示例。在一些實施例中,並行評估每個數據元素位置。在其它實施例中,串行評估數據元素位置。
[0047]在409,已經被修改的第二源的數據元素被寫入目的地的相對應數據元素位置。在一些實施例中,當使用寫掩碼時,取決於在位位置處寫掩碼的值,可以不對相對應的數據元素位置進行寫入。在一些實施例中,當寫掩碼指示數據元素位置應被寫入,則目的地的數據元素位置被設置為全O。在其它實施例中,當寫掩碼指示數據元素位置不應被寫入,則目的地的數據元素位置不變。儘管已經單獨地示出407和409,但在一些實施例中,它們可作為指令執行的一部分一起執行。
[0048]在一些實施例中,在數據元素的任何修改之前將第二源的數據存儲在目的地寄存器中。例如,如果不使用寫掩蔽,則來自第二源所有數據元素將被存儲到目的地中然後被修改。如果使用寫掩蔽,則根據寫掩碼僅所選的數據元素將被移動。
[0049]在一些實施例中,將臨時存儲位置用於修改,使得第二源寄存器的數據在對其進行歸零操作時不被破壞。
[0050]圖5示出處理VPBZHI指令的方法的實施例。在該實施例中,假設之前已經執行操作401-405中的一些而非全部,然而未示出它們以免混淆以下給出的細節。例如,未示出獲取和解碼,也未示出操作數檢索。在該示例中,並行處理每個數據元素位置,然而,也可串行評價數據元素位置。
[0051]在501,對於第一源的每個數據元素位置,確定用於第二源的相對應數據元素位置中數據元素的(潛在)歸零的開始位位置。例如,在圖3中,在數據元素位置0,該值是2,且在數據元素位置1,它是16。如此,對於第二源的相對應的數據元素位置的數據元素,用於潛在的歸零的開始位位置是2和16。在本討論中,使用潛在,因為在歸零可能發生時,改變的數據元素取決於寫掩碼使用而可能不被存儲在目的地寄存器中。
[0052]對於第二源的每個數據元素位置,在503,第二源的相對應的數據元素位置中的數據元素的開始位位置處和之上的所有位位置被歸零。例如,在圖3中,在該值的數據元素位置0,歸零在位2開始,並且繼續到數據元素的最高有效位。
[0053]對於每個數據元素位置,在505,確定數據元素位置是否被寫掩蔽。例如,在圖3中,在數據位位置0,該值指示將沒有寫入。
[0054]在507,沒有受到寫掩碼阻擋的第二源的值被存儲在目的地中相對應的位置處。
[0055]在一些實施例中,在509,目的地中未被寫入的所有數據元素位置的數據元素被歸零。
[0056]儘管以上已經描述為以確定的開始位位置開始並且向上,然而能構想到其它變型。例如,在一些實施例中,操作在開始位位置開始並且向下。在其它實施例中,開始位位置不被歸零,但下一行被歸零。
[0057]在一些實施例中,在503數據元素的任何修改之前,將第二源的數據存儲在目的地寄存器中。例如,如果不使用寫掩蔽,則來自第二源所有數據元素將被存儲到目的地中然後被修改。如果使用寫掩蔽,則根據寫掩碼僅所選的數據元素將被移動。
[0058]在一些實施例中,將臨時存儲位置用於修改,使得第二源寄存器的數據在對其進行歸零操作時不被破壞。
[0059]示例性寄存器架構
[0060]圖6是根據本發明的一個實施例的寄存器架構600的框圖。在所示的實施例中,具有512位寬的32個向量寄存器610 ;這些寄存器引用為zmmO到zmm31。較低的16個zmm寄存器的較低階256位重疊在寄存器ymmO-16上。較低的16個zmm寄存器的較低階128位(ymm寄存器的較低階128位)重疊在寄存器xmmO-15上。
[0061]通用寄存器625—在所示的實施例中,存在與現有的用於尋址存儲器操作數的x86尋址模式一起使用的16個64位通用寄存器。這些寄存器以名稱RAX、RBX、RCX、RDX、RBP、RS1、RD1、RSP 和 R8 到 R15 引用。
[0062]混疊在MMX打包整數平坦寄存器文件650上的標量浮點棧寄存器文件(x87棧)645——在所示實施例中,x87棧是使用x87指令集擴展在32/64/80位浮點數據上執行標量浮點操作的八元素棧;而MMX寄存器用於在64位打包整數數據上執行操作,以及保持用於在MMX和XMM寄存器之間執行的一些操作的操作數。
[0063]本發明的替換實施例可使用較寬或較窄的寄存器。另外,本發明的替換實施例可使用更多、更少或不同的寄存器文件和寄存器。
[0064]示例性核架構、處理器和計算機架構
[0065]處理器核可以不同方式實現、用於不同目的以及在不同的處理器中。例如,這些核的實現可包括:1)旨在用於通用計算的通用有序核;2)旨在用於通用計算的高性能通用無序核;3)旨在主要用於圖形和/或科學(吞吐量)計算的專用核。不同處理器的實現可包括:1)包括一個或多個旨在用於通用計算的通用有序核和/或一個或多個旨在用於通用計算的通用無序核的CPU ;以及2)包括一個或多個旨在主要用於圖形和/或科學(吞吐量)的專用核的協處理器。這些不同的處理器導致不同的計算機系統架構,其可包括:1)在來自CPU的單獨晶片上的協處理器;2)與CPU處於同一封裝中的單獨管芯上的協處理器;3)與(PU處於同一管芯上協處理器(在這種情況下,這一協處理器有時被稱為專用邏輯,諸如集成圖形和/或科學(吞吐量)邏輯,或稱為專用核);以及4)在同一管芯上可包括所述CPU的晶片上的系統(有時稱為應用核或應用處理器)、上述協處理器以及附加功能。接下來描述示例性核架構、然後是示例性處理器和計算機架構的描述。
[0066]示例性核架構
[0067]有序和無序核框圖
[0068]圖7A是示出根據本發明的實施例的有序流水線以及示例性寄存器重命名、無序發布/執行流水線的框圖。圖7B是示出根據本發明的實施例的有序流水線以及示例性寄存器重命名、無序發布/執行流水線的框圖。圖7A-B中的實現框示出有序流水線和有序核,而虛線框的可選增加示出寄存器重命名、無序發布/執行流水線和核。假定有序方面是無序方面的子集,則將描述無序方面。
[0069]在圖7A中,處理器流水線700包括獲取級702、長度解碼級704、解碼級706、分配級708、重命名級710、調度(也被稱為指派或發布)級712、寄存器讀取/存儲器讀取級714、執行級716、寫回/存儲器寫入級718、異常處理級722以及提交級724。
[0070]圖7B示出處理器核心790,包括:前端單元730,耦合至執行引擎單元750,兩者均率禹合至存儲器單元770。核心790可以是精簡指令集計算(RISC)核心、複雜指令集計算(CISC)核心、超長指令字(VLIW)核心或混合或其他核心類型。作為另一個選項,核心790可以是專用核心,諸如,例如,網絡或通信核心、壓縮引擎、協處理器核、通用計算圖形處理單元(GPGPU)核、圖形核或類似物。
[0071]前端單元730包括分支預測單元732,耦合至指令緩存單元734,該指令緩存單元734耦合至指令翻譯查找緩衝器(TLB) 736、該指令翻譯查找緩衝器(TLB) 736耦合至指令獲取單元738,該指令獲取單元738耦合至解碼單元740。解碼單元740 (解碼器)可解碼指令,並生成一個或多個微操作、微代碼進入點、微指令、其他指令、或其他控制信號作為輸出,這些輸出是從原始指令中解碼出的,或是以其他方式反映原始指令,或是從原始指令中推導而出的。解碼單元740可使用各種不同的機制來實現。合適的機制的示例包括,但不限於,查找表、硬體實現方案、可編程邏輯陣列(PLA)、微代碼只讀存儲器(ROM)等。在一個實施例中,核790包括微代碼ROM或存儲用於某些宏指令的微代碼的其它介質(例如,在解碼單元740或在前端單元730內)。解碼單元740耦合至執行引擎單元750中的重命名/分配器單元752。
[0072]執行引擎單元750包括耦合到引退單元754和一組一個或多個調度器單元756的重命名/分配器單元752。調度器單元756表示任何數量的不同調度器,包括:預約站、中央指令窗口等等。調度器單元756耦合至物理寄存器文件單元758。每個物理寄存器文件單元758表示一個或多個物理寄存器文件、其中不同的物理寄存器文件保存一個或多個不同的數據類型(諸如:標量整數、標量浮點、打包整數、打包浮點、向量整數、向量浮點)、狀態(諸如,指令指針是將要執行的下一個指令的地址)等等。在一個實施例中,物理寄存器文件單元758包括向量寄存器單元和標量寄存器單元。這些寄存器單元可提供架構向量寄存器、向量掩碼寄存器和通用寄存器。物理寄存器文件單元758被引退單元754覆蓋,以示出可實現寄存器重命名和無序執行的各種方式(例如,使用重排序緩衝器和引退寄存器文件;使用未來的文件、歷史緩衝器和引退寄存器文件;使用寄存器映射和寄存器池;等等)。引退單元754和物理寄存器文件單元758耦合到執行群集760。執行群集760包括一組一個或多個執行單元762以及一組一個或多個存儲器訪問單元764。執行單元762可執行多種操作(包括:移位、加法、減法、乘法)並可在多種數據類型(諸如、標量浮點、打包整數、打包浮點、向量整數、向量浮點)上執行。儘管一些實施例可包括專用於特定功能或功能組的多個執行單元,然而其他實施例可包括僅僅一個執行單元或全部執行所有功能的多個執行單元。調度單元756、物理寄存器文件單元758、執行群集760被示出為可能是複數個,因為某些實施例為某些數據/操作類型創建了諸個單獨流水線(例如,均具有各自調度單元、物理寄存器文件單元和/或執行群集的標量整數流水線、標量浮點/打包整數/打包浮點/向量整數/向量浮點流水線、和/或存儲器訪問流水線,以及在單獨的存儲器訪問流水線的情況下特定實施例被實現為僅僅該流水線的執行群集具有存儲器訪問單元764)。可以理解至IJ,在使用諸個單獨流水線的情況下,這些流水線中的一個或多個可以是無序發布/執行,並且其餘的是有序的。
[0073]—組存儲器訪問單元764被耦合至存儲器單元770,存儲器單元770包括數據TLB單元772,數據TLB單元772耦合至緩存單元774,緩存單元774耦合至第二級(L2)緩存單元776。在一個示例性實施例中,存儲器訪問單元764可包括加載單元、存儲地址單元和存儲數據單元,其中的每一個均耦合至存儲器單元770中的數據TLB單元772。指令緩存單元734還耦合到存儲器單元770中的二級(L2)緩存單元776。L2緩存單元776耦合至一個或多個其他級別的緩存,並最終耦合至主存儲器。
[0074]作為示例,示例性的寄存器重命名無序發布/執行核心體系結構可以如下所述地實現流水線700:1)指令獲取器738執行獲取和長度解碼級702和704 ;2)解碼單元740執行解碼級706 ;3)重命名/分配器單元752執行分配級708和重命名級710 ;4)調度器單元756執行調度級712 ;5)物理寄存器文件單元758和存儲器單元770執行寄存器讀取/存儲器讀取級714 ;執行群集760執行執行級716 ;6)存儲器單元770和物理寄存器文件單元758執行寫回/存儲器寫入級718 ;7)多個單元可被牽涉在異常處理級722中;以及8)引退單元754和物理寄存器文件單元758執行提交級724。
[0075]核心790可支持一個或多個指令集(諸如,x86指令集(具有增加有更新版本的一些擴展)、加利福尼亞州桑尼威爾的MIPS技術公司的MIPS指令集;加利福尼亞州桑尼威爾的ARM控股公司ARM指令集(具有可選附加擴展,諸如ΝΕ0Ν)),包括本文中描述的指令。在一個實施例中,核790包括支持打包數據指令集擴展(例如,AVXl、AVX2和/或先前描述的一些形式的一般向量友好指令格式(U=O和/或U=I))的邏輯,從而允許很多多媒體應用使用的操作能夠使用打包數據來執行。
[0076]應當理解到,核心可支持多線程(執行兩個或多個並行的操作或線程集),並且可以多種方式實現,包括:時間切割多線程、同時多線程(其中單個物理核心為該物理核心同時多線程執行的每一個線程提供邏輯核心)、或以上的組合(諸如,時間切割獲取和解碼及之後的同時多線程,諸如Intel?超線程Hyperthreading技術)。
[0077]雖然寄存器重命名在無序執行的背景下進行描述,但可以理解,寄存器重命名可被用於有序體系結構中。雖然處理器的所示出的實施例也包括單獨的指令和數據緩存單元734/774以及共享的L2緩存單元776,但替換的實施例也可為指令和數據具有單個的內部緩存,諸如例如,第一級(LI)緩存、或多個級別的內部緩存。在一些實施例中,系統可包括內部緩存和外部緩存的組合,外部緩存位於核心和/或處理器之外。或者,所有的緩存都可位於核心和/或處理器之外。
[0078]特定的示例性有序核架構
[0079]圖8A-B示出更特定的示例性有序核架構的框圖,其核可以是晶片中的若干邏輯塊之一(包括相同類型和/或不同類型的其它核)。邏輯塊通過高帶寬互連網絡(例如,環形網絡)與一些固定功能邏輯、存儲器I/O接口和其它必要的I/O邏輯通信,這取決於應用。
[0080]圖8A是根據本發明的實施例的單個處理器核,連同其至管芯上互連網絡802的連接以及其二級(L2)緩存804的本地子集。在一個實施例中,指令解碼器800支持具有打包數據指令集擴展的x86指令集。LI緩存806允許對緩存存儲器的標量和向量單元的低等待時間訪問。雖然在一個實施例中(為了簡化設計),標量單元808和向量單元810使用單獨的寄存器集(分別是標量寄存器812和向量寄存器814)並且它們之間傳送的數據被寫入存儲器然後從一級(LI)緩存806讀回,但本發明的替換實施例可使用不同的方法(例如,使得單個寄存器集或包括允許數據在兩個寄存器文件之間傳送而不被寫入和讀回的通信路徑)。
[0081]L2緩存804的本地子集是全局L2緩存的一部分,該全局L2緩存被分成單獨的本地子集,每處理器核一個。每個處理器核對L2緩存804的其自身的本地子集具有直接訪問路徑。由處理器核讀取的數據被存儲在其L2緩存子集804中,且可被快速地、與其它處理器核訪問它們自身的本地L2緩存子集並行地訪問。如果必要的話,由處理器核寫入的數據被存儲在其自身的L2緩存子集804中並且從其它子集轉儲清除(flush)。環形網絡確保對於共享數據的一致性。環形網絡是雙向以允許諸如處理器核、L2緩存和其它邏輯塊之類的代理在晶片內彼此通信。每個環形數據路徑在每個方向上是1012位寬。
[0082]圖8B是根據本發明的實施例的圖8A的處理器核的一部分的擴展視圖。圖8B包括LI緩存804的LI數據緩存806A部分,以及關於向量單元810和向量寄存器814的更多細節。具體地,向量單元810是16寬向量處理單元(VPU)(參見16寬ALU828),其執行一個或多個整數、單精度浮點和雙精度浮點指令。VPU支持在存儲器輸入上利用攪合(swizzle)單元820攪合寄存器輸入、利用數字轉換單元822A-B的數字轉換以及利用複製單元824的複製。
[0083]具有集成存儲器控制器和圖形的處理器
[0084]圖9是根據本發明的實施例的處理器900的框圖,該處理器可具有一個以上的核,可具有集成的存儲器控制器,且可具有集成的圖形。圖9的實線框示出了處理器900,處理器910具有單個核心902A、系統代理910、一組一個或多個總線控制器單元916,而可選附加的虛線框示出了替代的處理器910,具有多個核心902A-N、系統代理單元910中的一組一個或多個集成存儲器控制器單元914以及專用邏輯908。
[0085]因此,處理器900的不同實現可包括:1)具有專用邏輯908和核902A-N的CPU,專用邏輯908是集成圖形和/或科學(吞吐量)邏輯(可包括一個或多個核),核902A-N是一個或多個通用核(例如,通用有序核、通用無序核、兩者的組合);2)具有核902A-N的協處理器,核902A-N是大量旨在主要用於圖形和/或科學(吞吐量)的專用核;以及3)具有核902A-N的協處理器,核902A-N是大量通用有序核。因此,處理器900是通用處理器、協處理器或專用處理器,諸如網絡或通信處理器、壓縮引擎、圖形處理器、GPGPU (通用圖形處理單元)、高吞吐量大量集成核(MIC)協處理器(包括30或更多核)、嵌入式處理器等等。處理器可以實現在一個或多個晶片上。處理器900可以是一個或多個基板的一部分,和/或使用多種製程技術(諸如,BiCMOS、CMOS、或NMOS)中的任意技術被實現在一個或多個基板上。
[0086]存儲器層級包括核心內的一個或多個緩存級、一組一個或多個共享緩存單元906、以及耦合至該組集成存儲器控制器單元914的外部存儲器(沒有示出)。該組共享緩存單元906可包括一個或多個中級緩存,諸如,第二級(L2)、第三級(L3)、第四級(L4)或其他級別的緩存、末級緩存(LLC)和/或以上的組合。雖然在一個實施例中,基於環形的互連單元912將集成圖形邏輯908、該組共享緩存單元906和系統代理單元910/集成存儲器控制器單元914進行互連,但替換的實施例也使用任何數量的已知技術來互連這些單元。在一個實施例中,在一個或多個緩存單元906和核902-A-N之間維持一致性。
[0087]在一些實施例中,一個或多個核心902A-N能夠實現多線程。系統代理910包括這些組件配合和操作核心902A-N。這些系統代理單元910可包括例如功率控制單元(P⑶)和顯示單元。PCU可以是對核心902A-N以及集成圖形邏輯908的功率狀態進行調節所需的邏輯和組件,或可包括這些邏輯和組件。顯示單元用於驅動一個或多個外部連接的顯示器。
[0088]核902A-N可以是在架構指令集上同構的或異構的;8卩,核902A-N中的兩個或多個核能夠執行相同的指令集,而其他核能夠執行該指令集中的一個子集或執行不同的指令集。
[0089]示例性計算機架構
[0090]圖10-13是示例性計算機架構的框圖。本領域內已知的用於以下對象的其他系統設計和配置也可適用:膝上計算機、臺式機、手持PC、個人數字助理、工程師工作站、伺服器、網絡設備、網絡集線器、交換器、嵌入式處理器、數位訊號處理器(DSP)、圖形設備、視頻遊戲設備、機頂盒、微控制器、蜂窩電話、可攜式媒體播放器、手持設備以及各種其它電子設備。一般而言,本文中公開的各種能夠合併處理器和/或其它執行邏輯的系統或電子設備一般是適用的。
[0091]現在參考圖10,所示出的是根據本發明一實施例的系統1000的框圖。系統1000可包括耦合至控制器中樞1020的一個或多個處理器1010、1015。在一個實施例中,控制器中樞1020包括圖形存儲器控制器中樞(GMCH) 1090和輸入/輸出中樞(1H) 1050 (可以在單獨晶片上);GMCH1090包括存儲器和圖形控制器,存儲器1040和協處理器1045與之耦合;10H1050將輸入輸出(I/O)設備1060耦合到GMCH1090。或者,存儲器和圖形控制中的一個或兩個集成在處理器內(如本文所述),存儲器1040和協處理器1045直接耦合到處理器1010和具有10H1050的單個晶片中的控制器中樞102。
[0092]附加的處理器1015的任選性在圖10中通過虛線來表示。每個處理器1010、1015可包括本文描述的處理核中的一個或多個,且可以是處理器900的一些版本。
[0093]存儲器1040可以是例如動態隨機存取存儲器(DRAM)、相變存儲器(PCM)或二者的組合。對於至少一個實施例,控制器中樞1020經由諸如前側總線(FSB)之類的多點總線、諸如快速通路互連(QPI)之類的點對點接口或類似的連接1095與處理器1010、1015通信。
[0094]在一個實施例中,協處理器1045可以是專用處理器,諸如例如,高吞吐量MIC處理器、網絡或通信處理器、壓縮引擎、圖形處理器、GPGPU、嵌入式處理器等。在一個實施例中,控制器中樞1020可包括集成圖形加速器。
[0095]按照包括體系結構、微體系結構、熱、功耗特徵等等優點的度量譜,物理資源1010、1015之間存在各種差別。
[0096]在一個實施例中,處理器1010執行控制通用類型的數據處理操作的指令。嵌入在指令內的可以是協處理器指令。處理器1010將這些協處理器指令識別為應有附連協處理器1045執行的類型。另外,處理器1010在協處理器總線或其它互連上將這些協處理器指令(或表示協處理器指令的控制信號)發布到協處理器1045。協處理器1045接受並執行所接收的協處理器指令。
[0097]現在參照圖11,所示出的是根據本發明實施例的更具體的第一示例性系統1100的框圖。如圖11所示,多處理器系統1100是點對點互連繫統,且包括經由點對點互連1150耦合的第一處理器1170和第二處理器1180。處理器1170和1180中的每一個可以是某一版本的處理器900。在本發明的一個實施例中,處理器1170和1180分別是處理器1010和1015,而協處理器1138是協處理器1045。在另一個實施例中,處理器1170和1180分別是處理器1010、協處理器1045。
[0098]處理器1170和1180被示為分別包括集成存儲器控制器(MO單元1172和1182。處理器1170還包括作為其總線控制器單元的一部分的點對點(P-P)接口 1176和1178 ;類似地,第二處理器1180包括P-P接口 1186和1188。處理器1170、1180可以經由使用點對點(P-P)接口電路1178、1188的P-P接口 1150來交換信息。如圖11所示,MC1172和1182將處理器耦合到相應的存儲器,即存儲器1132和存儲器1134,這些存儲器可以是本地附連到相應處理器的主存儲器的部分。
[0099]處理器1170、1180可各自經由使用點對點接口電路1176、1194、1186、1198的各個P-P接口 1152、1154與晶片組1190交換信息。晶片組1190可經由高性能接口 1139與協處理器1138任選地交換信息。在一個實施例中,協處理器1138可以是專用處理器,諸如例如,高吞吐量MIC處理器、網絡或通信處理器、壓縮引擎、圖形處理器、GPGPU、嵌入式處理器坐寸ο
[0100]共享緩存(未示出)可被包括在任一處理器中或在兩個處理器的外部但經由P-P互連與這些處理器連接,從而如果處理器被置於低功率模式,則任一個或這兩個處理器的本地緩存信息可被存儲在該共享的緩存中。
[0101]晶片組1190可以經由接口 1196耦合至第一總線1116。在一個實施例中,第一總線1116可以是外圍組件互連(PCI)總線或諸如PCI高速總線或另一第三代I/O互連總線之類的總線,但是本發明的範圍不限於此。
[0102]如圖11所示,各種I/O設備1114可連同總線橋1118—起耦合到第一總線1116,總線橋1118將第一總線1116耦合到第二總線1120。在一個實施例中,一個或多個附加處理器1115,諸如協處理器、高吞吐量MIC處理器、GPGPU、加速器(諸如圖形加速器或數位訊號處理器(DSP)單元)、現場可編程門陣列或任何其它處理器被耦合到第一總線1116。在一個實施例中,第二總線1120可以是低引腳數(LPC)總線。在一個實施例中,多個設備可以耦合到第二總線1120,包括例如鍵盤和/或滑鼠1122、通信設備1127以及可以包括指令/代碼和數據1130的存儲單元1128 (諸如盤驅動器或其它海量存儲設備)。進一步地,音頻1/01124可以耦合到第二總線1120。注意,其它架構是可能的。例如,代替圖11的點對點體系結構,系統可實現多點總線或另一此類體系結構。
[0103]現在參照圖12,所示出的是根據本發明實施例的更具體的第二示例性系統1200的框圖。圖11和12中的類似元件使用類似附圖標記,且在圖12中省略了圖11的某些方面以避免混淆圖12的其它方面。
[0104]圖12示出處理器1170、1180可分別包括集成存儲器和I/O控制邏輯(「CL」)1172和1182。因此,CL1172和1182包括集成存儲器控制器單元且包括I/O控制邏輯。圖12示出不僅存儲器1132、1134耦合至CL1172、1182,而且I/O設備1214也耦合至控制邏輯1172、1182。傳統I/O設備1215耦合至晶片組1190。
[0105]現在參照圖13,所示出的是根據本發明一個實施例的SoC1300的框圖。圖9中的相似組件具有相同的標號。同樣,虛線框是在更為先進的SoC上的可選特徵。在圖13中,互連單元1302耦合至:應用處理器1310,包括一組一個或多個核心202A-N以及共享緩存單元906 ;系統代理單元910 ;總線控制單元916 ;集成存儲器控制器單元914 ;一組一個或多個協處理器1320,可包括集成圖形邏輯、圖像處理器、音頻處理器、以及視頻處理器;靜態隨機存取存儲器(SRAM)單元1330 ;直接存儲器存取(DMA)單元1332 ;以及顯示單元1340,用於耦合至一個或多個外部顯示器。在一個實施例中,協處理器1320包括專用處理器,諸如例如,網絡或通信處理器、壓縮引擎、GPGPU、高吞吐量MIC處理器、嵌入式處理器等。
[0106]本文公開的機制的實施例可實現在硬體、軟體、固件或這些實現手法的組合中。本發明的實施例可被實現為在包括至少一個處理器、儲存器系統(包括易失性和非易失性存儲器和/或儲存元件)、至少一個輸入設備以及至少一個輸出設備的可編程系統上執行的電腦程式。
[0107]可將諸如圖11中所示的代碼1130的程序代碼應用於輸入指令以執行本文中所描述的功能,並產生輸出信息。輸出信息可以已知形式被施加至一個或多個輸出設備。為本申請的目的,處理系統包括任何具有下列特徵的系統:其具有例如數位訊號處理器(DSP)的處理器、微控制器、專用集成電路(ASIC)或微處理器。
[0108]程序可按照高級過程或面向對象的高級程式語言來實現,以與處理系統通信。程序代碼在需要時還可按照彙編或機器語言來實現。事實上,本文描述的機制不僅限於任何具體的編程語目的範圍。在任一情形下,語目可以是編譯語目或解釋語目。
[0109]至少一個實施例的一個或多個方面可以由存儲在機器可讀介質上的代表性指令來實現,該指令表示處理器中的各種邏輯,其在被機器讀取時使得該機器生成執行本文描述的技術的邏輯。被稱為「IP核」的這些表示可以被存儲在有形的機器可讀介質上,並被提供給多個客戶或生產設施以加載到實際製造該邏輯或處理器的製造機器中。」
[0110]此類機器可讀存儲介質可包括但不限於通過機器或設備製造或形成的物品的有形排列,包括存儲介質,諸如:硬碟;包括軟盤、光碟、壓縮盤只讀存儲器(CD-ROM)、可重寫壓縮盤(CD-RW)以及磁光碟的任何其它類型的盤;諸如只讀存儲器(ROM)之類的半導體器件;諸如動態隨機存取存儲器(DRAM)、靜態隨機存取存儲器(SRAM)之類的隨機存取存儲器(RAM);可擦除可編程只讀存儲器(EPROM);快閃記憶體;電可擦除可編程只讀存儲器(EEPROM);相變存儲器(PCM);磁卡或光卡;或適於存儲電子指令的任何其它類型的介質。
[0111]因此,本發明的實施例也包括非易失性有形機器可讀介質,該介質包含諸如硬體描述語言(HDL)之類的設計數據,該設計數據限定本文中描述的結構、電路、裝置、處理器和/或系統特徵。這些實施例也被稱為程序產品。
[0112]仿真(包括二進位轉換、代碼變形等)
[0113]在一些情況中,指令轉換器可被用於將指令從源指令集轉換為目標指令集。例如,指令轉換器可將指令翻譯(諸如,使用靜態二進位翻譯、包括動態編譯的動態二進位翻譯)、變體、仿真或以其他方式轉換為有待核心處理的一個或多個其他指令。指令轉換器可用硬體、固件、軟體或其組合來實現。指令轉換器可以位於處理器上,位於處理器外,或部分位於處理器上且部分位於處理器外。
[0114]圖14是根據本發明的實施例的使用軟體指令轉換器將源指令集中的二進位指令轉換為目標指令集中的二進位指令的框圖。在所示的實施例中,指令轉換器是軟體指令轉換器,但是作為替代,指令轉換器可以以軟體、固件、硬體或其各種組合來實現。圖14示出高級語言1402的程序可以通過使用x86編譯器1404來編譯,以生成可由具有至少一個x86指令集核的處理器1406直接執行的x86 二進位代碼1416。具有至少一個x86指令集核1416的處理器表示任何處理器,該處理器能夠通過兼容地執行或以其它方式處理(I)英特爾x86指令集核的指令集的大部分或(2)旨在具有至少一個x86指令集核的英特爾處理器上運行的應用或其它軟體的目標代碼版本來執行與具有至少一個x86指令集核的英特爾處理器基本相同的功能,以實現與具有至少一個x86指令集核的英特爾處理器基本相同的結果。x86編譯器1404表示可操作用於x86 二進位代碼1406 (例如目標代碼)的編譯器,該x86 二進位代碼1416能夠通過或無需附加的連結處理而在具有至少一個x86指令集核的處理器1316上執行。類似地,圖14以高級語言1402示出了程序,該程序可使用替換指令集編譯器1408來編譯以生成替換指令集二級制代碼1410,替換指令集二級制代碼1410可由不具有至少一個x86指令集核心的處理器1414 (諸如,具有可執行加利福尼亞州桑尼威爾的MIPS技術公司的MIPS指令集的處理器和/或執行加利福尼亞州桑尼威爾的ARM控股公司的ARM指令集的處理器)來天然地執行。該指令轉換器1412被用於將x86 二進位代碼1406轉換為可由不具有x86指令集核心的處理器1414所天然地執行的代碼。該經變換的代碼不太可能與替換指令集二進位代碼1410 —樣,因為難以製造能完成這樣的指令轉換器;然而,經變換的代碼將完成通用操作,並由替換指令集的指令所構成。因此,指令轉換器1412表示軟體、固件、硬體或它們的組合,通過仿真、模擬或任何其他處理允許不具有x86指令集處理器或核心的處理器或其他電子設備執行x86 二進位代碼1406。
【權利要求】
1.一種設備,包括: 解碼邏輯,用於解碼從指定的位位置開始的向量打包零高位(VPBZHI)指令,所述VPBZHI指令包括第一和第二源操作數和目的地操作數; 執行邏輯,用於執行經解碼的VPBZHI指令以導致, 對於第一源操作數的每個數據元素位置,確定用於對第二源在該開始位置的數據元素開始的值進行歸零的開始位位置, 對於第二源操作數的每個對應的數據元素位置,比所述第一源操作數的相對應數據元素位置的開始位位置更高有效或與之相等的位位置中的位的歸零, 將任何歸零後的第二源的目的地操作數值存儲在相應的數據元素位置中。
2.如權利要求1所述的設備,其特徵在於,所述源和目的地操作數是打包數據寄存器。
3.如權利要求2所述的設備,其特徵在於,所述打包數據寄存器的尺寸是128位、256位或512位。
4.如權利要求1所述的設備,其特徵在於,所述指令還包括寫掩碼操作數。
5.如權利要求4所述的設備,其特徵在於,目的地寄存器中的存儲經受寫掩碼操作數的值。
6.如權利要求4所述的設備,其特徵在於,寫掩碼操作數中有效位的數量等於源操作數中數據元素的數量。
7.如權利要求1所述的設備,其特徵在於,所述第一源和目的地操作數是打包數據寄存器,且第二源操作數是存儲器位置。
8.一種在計算機處理器中執行從指定的位位置開始的向量打包零高位(VPBZHI)指令的方法,所述VPBZHI指令包括第一和第二源操作數和目的地操作數,所述方法包括: 對於第一源操作數的每個數據元素位置,確定用於對第二源在該開始位置的數據元素開始的值進行歸零的開始位位置, 對於第二源操作數的每個對應的數據元素位置,將比所述第一源操作數的相對應數據元素位置的開始位位置更高有效或與之相等的位位置中的位歸零, 將任何歸零後的第二源的目的地操作數值存儲在相應的數據元素位置中。
9.如權利要求8所述的方法,其特徵在於,所述源和目的地操作數是打包數據寄存器。
10.如權利要求9所述的方法,其特徵在於,所述打包數據寄存器的尺寸是128位、256位或512位。
11.如權利要求8所述的方法,其特徵在於,所述指令還包括寫掩碼操作數。
12.如權利要求11所述的方法,其特徵在於,目的地寄存器中的存儲經受寫掩碼操作數的值。
13.如權利要求11所述的方法,其特徵在於,寫掩碼操作數中有效位的數量等於源操作數中數據元素的數量。
14.如權利要求8所述的方法,其特徵在於,所述第一源和目的地操作數是打包數據寄存器,且第二源操作數是存儲器位置。
15.一種包括代碼的有形機器可讀介質,所述代碼在由處理器執行時導致處理器執行一種方法,用於執行從指定的位位置開始的向量打包零高位(VPBZHI)指令,所述VPBZHI指令包括第一和第二源操作數和目的地操作數,所述方法包括: 對於第一源操作數的每個數據元素位置,確定用於對第二源在該開始位置的數據元素開始的值進行歸零的開始位位置, 對於第二源操作數的每個對應的數據元素位置,將比所述第一源操作數的相對應數據元素位置的開始位位置更高有效或與之相等的位位置中的位歸零, 將任何歸零後的第二源的目的地操作數值存儲在相應的數據元素位置中。
16.如權利要求15所述的方法,其特徵在於,所述源和目的地操作數是打包數據寄存器。
17.如權利要求16所述的方法,其特徵在於,所述打包數據寄存器的尺寸是128位、256位或512位。
18.如權利要求17所述的方法,其特徵在於,所述指令還包括寫掩碼操作數。
19.如權利要求18所述的方法,其特徵在於,目的地寄存器中的存儲經受寫掩碼操作數的值。
20.如權利要求15所述的方法,其特徵在於,所述第一源和目的地操作數是打包數據寄存器,且第二源操作數是存儲器位置。
【文檔編號】G06F9/34GK104133660SQ201410097122
【公開日】2014年11月5日 申請日期:2014年3月14日 優先權日:2013年3月15日
【發明者】E·烏爾德-阿邁德-瓦爾, R·凡倫天 申請人:英特爾公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀