欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

對多個通道中的緊縮數(shù)據(jù)解壓縮的制作方法

文檔序號:6349801閱讀:246來源:國知局
專利名稱:對多個通道中的緊縮數(shù)據(jù)解壓縮的制作方法
技術(shù)領(lǐng)域
實施例涉及處理器、由處理器執(zhí)行的方法、合并了處理器的系統(tǒng)或者由處理器處理的指令。具體地,實施例涉及對多個通道中的緊縮數(shù)據(jù)解壓縮的處理器、方法、系統(tǒng)或指令。
背景技術(shù)
提高計算機和其他處理系統(tǒng)的性能通常趨向于增加可被處理的數(shù)據(jù)量和/或提供更好的用戶體驗。隨著計算機和其他處理系統(tǒng)處理越來越大的數(shù)據(jù)量,加速這種數(shù)據(jù)處理的技術(shù)趨向于變得更加重要。單指令多數(shù)據(jù)(SIMD)架構(gòu)是加速數(shù)據(jù)處理的一種方式。在SIMD架構(gòu)中,不同于一條指令僅對一個數(shù)據(jù)元操作,指令可以對多個數(shù)據(jù)元同時地或并行地操作。代表性地,在 SIMD架構(gòu)中,多個數(shù)據(jù)元可以緊縮在一個寄存器或者存儲器位置內(nèi)。響應(yīng)指令的并行執(zhí)行硬件可以同時地或并行地執(zhí)行多個操作。這種SIMD架構(gòu)趨向于顯著提高系統(tǒng)性能。一種已知類型的SIMD指令是解壓縮指令。一些已知的處理器包括多種不同的解壓縮指令。例如,除了來自英特爾公司(Intel Corporation)的其他處理器之外,htel Core 2 Duo處理器包括各種解壓縮指令,諸如在英特爾架構(gòu)軟件開發(fā)人員手冊第二卷 指令集參考,1999年(訂單號M3191)中詳細描述的指令。然而,在一些條件下并且對于一些應(yīng)用,額外的解壓縮指令和操作可能是有用的。


通過參照用于圖示本發(fā)明的實施例的下面的描述和附圖,將最佳地理解本發(fā)明的實施例。在附圖中
圖1圖示了處理器的一個示例實施例。圖2是接收指令并且存儲由指令指定的結(jié)果的方法的實施例的流程框圖。圖3示出了由很多htel 高級矢量擴展(Intel AVX)指令利用的YMM寄存器的實施例。圖4示出了適用于本發(fā)明的一個或多個實施例的緊縮數(shù)據(jù)格式的代表性示例。圖5是跨通道解壓縮方法的示例實施例的流程框圖。圖6圖示了根據(jù)指定針對低通道的解壓縮低操作和針對高通道的解壓縮高操作的第一單個跨通道解壓縮指令對具有兩個通道的256位操作數(shù)中的32位雙字緊縮數(shù)據(jù)元進行解壓縮。圖7圖示了根據(jù)指定針對低通道的解壓縮高操作和針對高通道的解壓縮低操作的第二單個跨通道解壓縮指令對具有兩個通道的256位操作數(shù)中的32位雙字緊縮數(shù)據(jù)元進行解壓縮。圖8圖示了根據(jù)指定針對低通道的解壓縮低操作和針對高通道的解壓縮高操作的第三單個跨通道解壓縮指令對具有兩個通道的256位操作數(shù)中的16位字緊縮數(shù)據(jù)元進行解壓縮。圖9圖示了根據(jù)指定針對低通道的解壓縮高操作和針對高通道的解壓縮低操作的第四單個跨通道解壓縮指令對具有兩個通道的256位操作數(shù)中的16位字緊縮數(shù)據(jù)元進行解壓縮。圖10是具有指定對于每個通道將執(zhí)行什么類型的解壓縮操作的控制字段的跨通道解壓縮指令的實施例的簡化框圖。圖11是適用于實現(xiàn)本發(fā)明的一個或多個實施例的計算機系統(tǒng)的示例實施例的框圖。
具體實施例方式在下面的描述中,闡述了諸如處理器類型、數(shù)據(jù)類型、數(shù)據(jù)格式、寄存器類型、寄存器布置、系統(tǒng)配置等的許多特定細節(jié)。然而,應(yīng)當理解,本發(fā)明的實施例可以在沒有這些特定細節(jié)的情況下實踐。在其他實例中,未詳細示出公知的電路、結(jié)構(gòu)和技術(shù)以便不致使這里的描述的理解模糊。圖1圖示了處理器100的一個示例實施例。該處理器能夠或者在操作中執(zhí)行如本文中別處討論的跨通道解壓縮指令102。該處理器可以是能夠執(zhí)行指令的各種不同類型的處理器中的任何處理器。例如, 處理器可以是通用處理器,諸如 PENTIUM 4、PENTIUM Dual-Core, Core 2 Duo 禾口 Quad、 Xeon 、Itanium 、XScale ">或StrongARM 微處理器,它們可從美國加利福尼亞州圣巴巴拉的英特爾公司獲得。替換的,該處理器可以來自其它公司。該處理器可以是精簡指令集計算(RISC)處理器、復雜指令集計算(CISC)處理器、超長指令字(VLIW)處理器或者混合的或替換的處理器類型。作為另一種選擇,該處理器可以是專用處理器,諸如例如,網(wǎng)絡(luò)或通信處理器、協(xié)處理器、嵌入式處理器、壓縮引擎、圖形處理器等。該處理器可以在一個或多個芯片上實現(xiàn)。在使用期間,處理器在操作中接收跨通道解壓縮指令102。解壓縮指令可以表示控制信號,該控制信號在操作中使處理器執(zhí)行如下文進一步討論的解壓縮操作。解壓縮指令可以由例如軟件序列或算法提供。圖示的處理器的實施例包括指令解碼器104。解碼器可以接收跨通道解壓縮指令。 解碼器可以對解壓縮指令進行解碼,并且作為輸出生成一個或多個微操作、微代碼入口點、 微指令、其他指令或者其他控制信號,它們解碼自原始解壓縮指令或者以其他形式反映原始解壓縮指令或者得自原始解壓縮指令。解碼器可以使用各種不同的機制來得以實現(xiàn)。適用的機制的示例包括,但不限于,查找表、硬件實現(xiàn)方案、可編程邏輯陣列(PLA)、微代碼隨機訪問存儲器(ROM)等。在一些情況下,解碼器可以被替換為指令翻譯器、指令模擬器或者其他指令轉(zhuǎn)換器。指令轉(zhuǎn)換器可以將指令從源指令集轉(zhuǎn)換到目標指令集。例如,指令轉(zhuǎn)換器可以將如這里描述的解壓縮指令翻譯、變形、模擬或者以其他形式轉(zhuǎn)換為將由執(zhí)行單元處理的一個或多個其他指令。指令轉(zhuǎn)換器可以通過軟件、硬件、固件或者它們的組合實現(xiàn)。指令轉(zhuǎn)換器可以位于處理器上、位于處理器外或者部分位于處理器上并且部分位于處理器外。因此,解碼器不是處理器的必需部件。
處理器包括至少一個執(zhí)行單元106。執(zhí)行單元與解碼器或指令翻譯器或者如上文討論的其他指令轉(zhuǎn)換器耦合或者以其他形式通信。執(zhí)行單元可以包括在操作中或者能夠執(zhí)行解壓縮指令的電路或執(zhí)行邏輯其。例如,執(zhí)行單元可以執(zhí)行一個或多個微操作、微指令或者其他指令或控制信號,它們解碼自原始解壓縮指令,從原始解壓縮指令翻譯而得,從原始解壓縮指令模擬而得,或以其他形式反映原始解壓縮指令,或者得自原始解壓縮指令。在一個或多個實施例中,執(zhí)行單元可以具有用于處理機器指令或者得自這些機器指令的微操作或指令的專用邏輯。就是說,執(zhí)行單元可以作為跨通道解壓縮指令的結(jié)果或者響應(yīng)跨通道解壓縮指令而執(zhí)行操作。在一個或多個實施例中,執(zhí)行單元和/或處理器可以作為大部分或所有英特爾架構(gòu)指令的結(jié)果或者響應(yīng)大部分或所有英特爾架構(gòu)指令而執(zhí)行操作,英特爾架構(gòu)指令諸如例如在 PENTIUM 4、PENTIUM Dual-Core、Core 2 Duo 和 Quad、Xeon 、 Itanium 、XScale “或StrongARM 微處理器中使用的指令。一些實施例可以僅包括單個執(zhí)行單元或者能夠執(zhí)行某些操作的單個執(zhí)行單元。其他實施例可以包括若干個專用于特定功能或者功能集合的執(zhí)行單元。此外,處理器的一個或多個實施例可以具有多個核心,每個核心具有至少一個執(zhí)行單元。處理器還包括與解碼器和執(zhí)行單元耦合的寄存器文件108。此處使用的術(shù)語“寄存器”指代通常板上的處理器存儲位置,該存儲位置通常由宏指令使用以識別操作數(shù)。通常, 從處理器外部或者從編程人員的角度,這些寄存器是可見的。這些寄存器不限于任何已知的特定類型的電路。各種不同類型的寄存器是適用的,只要它們能夠如這里所述存儲和提供數(shù)據(jù)。適用的寄存器的示例包括,但不限于,專用物理寄存器、使用寄存器重命名的動態(tài)分配的物理寄存器、專用物理寄存器和動態(tài)分配的物理寄存器的組合等。寄存器文件可以具有各種不同類型的寄存器。適用類型的寄存器的示例包括,但不限于,整數(shù)寄存器、浮點寄存器、矢量寄存器、狀態(tài)寄存器、指令指針寄存器等。為了簡單起見示出了單個寄存器集合109。該寄存器集合包括一組或若干個寄存器。例如,該寄存器集合包括寄存器RO至RN,其中N是整數(shù)。在一個特定實施例中,N是 15。這些寄存器可以被重命名或者不被重命名。該寄存器集合可以適于存儲緊縮數(shù)據(jù)。緊縮數(shù)據(jù)包括緊縮在一起的多個數(shù)據(jù)元。 數(shù)據(jù)元可以指代與常常具有相同位長度的其他數(shù)據(jù)元一起存儲在寄存器中或其他存儲位置的各個數(shù)據(jù)。寄存器集合可以允許彼此分離地訪問一個或各種緊縮數(shù)據(jù)元。在不同時間, 寄存器集合中的特定寄存器可以保存不同尺寸的緊縮數(shù)據(jù)元,并且所有不同的各個尺寸的緊縮數(shù)據(jù)元均可以或者不可以被單獨地訪問。寄存器集合具有多個通道。在圖示的實施例中,寄存器集合一包括該寄存器集合的每個寄存器一具有第一下通道110和第二上通道111。下通道具有最低位,而上通道具有最高位。每個通道具有多個位。例如,寄存器可以分別具有256位,而每個通道可以具有 128位。在其他實施例中,處理器和/或寄存器可以具有三個、四個或更多個通道,并且寄存器和通道可以具有不同的尺寸。圖示的處理器的實施例還包括與解碼器耦合的緩存112。根據(jù)架構(gòu),處理器可以具有單個內(nèi)部緩存,諸如例如,一級(Li)內(nèi)部緩存,或者多級內(nèi)部緩存。在一些實施例中,系統(tǒng)可以包括內(nèi)部緩存和處理器外部的外部緩存的組合??商鎿Q地,所有緩存可以在處理器外部。
8
為了避免使描述模糊,以簡化形式示出了處理器。本領(lǐng)域的技術(shù)人員將認識到, 處理器可以包括其他常規(guī)的部件、電路或邏輯。例如,處理器可以包括前端邏輯、寄存器重命名邏輯、調(diào)度邏輯、后端邏輯、退移邏輯、重排序緩沖器等。此外,這僅是處理器的一個說明性示例實施例。其他通用處理器、專用處理器、網(wǎng)絡(luò)或通信處理器、協(xié)處理器、嵌入式處理器、壓縮引擎、圖形處理器等,也可以受益于這里公開的解壓縮指令和操作。圖2是接收指令并且存儲由所述指令指定的結(jié)果的方法214的實施例的流程框圖。在一個或多個實施例中,作為本文其他位置公開的解壓縮指令的結(jié)果,該方法可以由處理器執(zhí)行。在框215中,可以接收指令。該指令可以表示處理器的指令集中的機器指令。作為示例,可以在處理器處、或者在解碼器處,或者在處理器的其他部分接收該指令。有代表性地,可以從諸如例如緩存112的緩存或者總線或其他互連接收該指令。在框216中,可以對所述指令解碼。所述指令可以被解碼為一個或多個微操作、微代碼入口點、微指令、其他指令或者其他控制信號,它們解碼自原始解壓縮指令或者以其他形式反映原始解壓縮指令或者得自原始解壓縮指令??商鎿Q地,如前面提到的,所述指令可以被翻譯、模擬或者以其他形式進行轉(zhuǎn)換。在框217中,處理器的解碼器或者另一部分可以訪問和/或接收由指令指示的一個或多個操作數(shù)。可以從寄存器(例如,寄存器集合109)、存儲器位置或者它們的組合訪問和/或接收所述操作數(shù)。所述指令可以指定寄存器的地址或者操作數(shù)的存儲器位置。例如, 所述指令可以指定第一源操作數(shù)(SRCl)的地址和第二源操作數(shù)(SRC2)的地址。在框218中,可以通過所述指令指定的(一個或多個)操作來啟用執(zhí)行單元。執(zhí)行單元可以對所述操作數(shù)的數(shù)據(jù)執(zhí)行所述指定的(一個或多個)操作來生成結(jié)果操作數(shù)。在框219中,可以將所述結(jié)果操作數(shù)存儲在由所述指令指定的寄存器的目標地址或者存儲器位置。在一個或多個實施例中,除了 SRCl和SRC2之外,所述指令還可以指定所述結(jié)果操作數(shù)的地址(DEST)??商鎿Q地,在一個或多個實施例中,SRCl和SRC2中的任一個也可以用作DEST。例如,SRCl或SRC2處的數(shù)據(jù)可以被所述結(jié)果操作數(shù)覆寫。在這種情況下,所述指令不會明確地指定分離的DEST,盡管指令被理解為將所述結(jié)果操作數(shù)的目標指定為SRCl和SRC2之一。英特爾公司近來引入了 htel 高級矢量擴展(Intel AVX)指令。htel AVX向 Intel架構(gòu)提供了新的256位SIMD浮點矢量擴展。這將htel SSE4中的1 位XMM寄存器文件的最大SIMD矢量長度擴寬或者加倍到256位。htel AVX引入了 256位寄存器并且許多htel AVX指令對這些256位寄存器進行操作,這些256位寄存器在匯編中由名稱 YMMO至YMM15引用。如果期望,在可以從英特爾公司獲得的,并且在本申請?zhí)峤粫r在web地址 http://software, intel. com/en-us/avx/ 處可獲得的 2009 年 1 月出版的文檔 Intel Advanced Vector Extension Programming Reference (Intel 高級矢量擴展編禾呈參考),, (Ref. #319433-005)中,可以獲得關(guān)于htel AVX的進一步的細節(jié)。圖3示出了由許多htel AVX指令利用的YMM寄存器320的實施例。YMM寄存器包括寄存器YMMO至YMM15。每個YMM寄存器具有256位。如所示出的,在一個或多個實施例中,YMM寄存器的低1 位還被稱為各自的1 位XMM寄存器,盡管這不是必需的。寄存器YMMO至YMM15由兩個1 位通道構(gòu)造。低1 位通道310 (位0至127)與XMM寄存器對應(yīng)。上1 位通道311 (位1 至255)與YMM寄存器對應(yīng)。圖4示出了適用于本發(fā)明的一個或多個實施例的緊縮數(shù)據(jù)格式的代表性示例。圖示了兩個示例緊縮數(shù)據(jù)格式,即緊縮字430和緊縮雙字432。為了更好地圖示某些概念,針對諸如例如YMM寄存器的256位存儲位置示出了這些緊縮數(shù)據(jù)格式,盡管本發(fā)明的實施例的范圍不限于此。緊縮字格式430長為256位并且包括十六個數(shù)據(jù)元。每個數(shù)據(jù)元長16位或一個字。這些16位數(shù)據(jù)元被稱為“字”。在圖示中,數(shù)據(jù)元從低位到高位被標為“字0”至“字 15”。字0至字7與低通道(右側(cè);位0至127)對應(yīng)。字8至字15與高通道(左側(cè);位128 至255)對應(yīng)。緊縮雙字(dword)格式432長256位并且包括8個數(shù)據(jù)元。每個數(shù)據(jù)元長32位或一個雙字(dword)。這些32位數(shù)據(jù)元被稱為“雙字(dword)”。32位數(shù)據(jù)元通常用于單精度浮點計算。在圖示中,數(shù)據(jù)元從低位到高位被標為“雙字0”至“雙字15”。雙字0至雙字 3與低通道對應(yīng)。雙字4至雙字7與高通道對應(yīng)。這些僅是兩個說明性示例。其他緊縮數(shù)據(jù)格式也是適用的。例如,其中每個數(shù)據(jù)元具有8位的緊縮字節(jié)格式以及其中每個數(shù)據(jù)元具有64位的緊縮四字格式也是適用的。64 位數(shù)據(jù)元通常用于雙精度浮點計算。超過64位數(shù)據(jù)元的更大的尺寸也是適用的。此外,可以使用大于或小于256位的寄存器。通常,緊縮數(shù)據(jù)格式包括多個數(shù)據(jù)元。通常,各數(shù)據(jù)元具有相同的尺寸。在這種情況下,寄存器的尺寸除以數(shù)據(jù)元的尺寸等于數(shù)據(jù)元的數(shù)目。Intel AVX利用具有多個多位通道的寄存器。某些htel AVX指令被稱為“通道內(nèi)”指令。這些“通道內(nèi)”指令使得對一個或多個YMM寄存器的兩個1 位對分寄存器或者通道執(zhí)行相同的操作。例如,Intel AVX的UNPCKLPS (VEX. 256編碼版本)指令使得對YMM 寄存器的兩個1 位對分寄存器或者通道執(zhí)行相同的解壓縮低操作。同時,不存在已知的 “跨通道”解壓縮指令,其中對不同的通道執(zhí)行不同的解壓縮操作(例如,解壓縮低對解壓縮高)。因此,在一些應(yīng)用中或者在一些條件下,可能需要諸如提取、投放(cast)等額外的操作來重新布置這些“通道內(nèi)”解壓縮指令的結(jié)果,這可能需要額外的計算和/或復雜的編程。 可替換地,使用較舊的SSE解壓縮指令不能全面利用較新的256位YMM寄存器。因此,額外的解壓縮指令和操作在一些條件下或者對于一些應(yīng)用是有用的。例如,對于陣列結(jié)構(gòu)(SoA) 到結(jié)構(gòu)陣列(AoS)算法更為有用的解壓縮指令將是有利的。本發(fā)明的實施例涉及處理器、由處理器執(zhí)行的方法、合并了處理器的系統(tǒng)、或者由處理器執(zhí)行或處理以對多個通道中的緊縮數(shù)據(jù)解壓縮的指令,其中對至少一個通道執(zhí)行的解壓縮操作的類型不同于對至少一個其他通道執(zhí)行的解壓縮操作。本發(fā)明的實施例涉及 “跨通道”解壓縮指令,這些解壓縮指令指定針對至少一個通道的解壓縮低操作以及針對至少一個其他通道的解壓縮高操作,或者涉及處理跨通道解壓縮指令的處理器、作為處理跨通道解壓縮指令的結(jié)果由處理器執(zhí)行的方法、或者合并了這種處理器的計算機系統(tǒng)或其他系統(tǒng)。圖5是跨通道解壓縮方法534的示例實施例的流程框圖。在框535中,可以接收跨通道解壓縮指令。跨通道解壓縮指令可以指定針對至少一個通道的解壓縮低操作和針對至少一個其他通道的解壓縮高操作。在框536中,可以對跨通道解壓縮指令解碼??商鎿Q地,可以翻譯、模擬或者以其他形式轉(zhuǎn)換指令。在框537中,可以訪問由跨通道解壓縮指令指定或指示的第一和第二源操作數(shù)。 可以從寄存器或存儲器位置訪問這些操作數(shù)??缤ǖ澜鈮嚎s指令可以具有第一和第二字段以指示操作數(shù)。在框538中,可以通過針對至少一個通道的解壓縮低操作和針對至少一個其他通道的解壓縮高操作來啟用執(zhí)行單元。在框539中,可以將跨通道解壓縮指令所指定的結(jié)果存儲在寄存器或存儲器位置中。該結(jié)果可以表示針對至少一個通道執(zhí)行的解壓縮低操作和針對至少一個其他通道執(zhí)行的解壓縮高操作。圖6至9圖示了根據(jù)指定針對至少一個通道的解壓縮低操作和針對至少一個其他通道的解壓縮高操作的單個跨通道解壓縮指令對來自具有多個通道的第一和第二操作數(shù)的緊縮數(shù)據(jù)進行解壓縮的各種示例實施例。圖6圖示了根據(jù)指定針對低通道(位0至127)的解壓縮低操作和針對高通道(位 128至255)的解壓縮高操作的第一單個跨通道解壓縮指令對具有兩個通道的256位操作數(shù)中的32位雙字(dword)緊縮數(shù)據(jù)元進行解壓縮。第一源操作數(shù)650具有256位并且存儲八個緊縮32位或雙字數(shù)據(jù)元。第一源操作數(shù)可以存儲在寄存器(例如,YMM寄存器)、存儲器或另一存儲位置中。這些數(shù)據(jù)元從低位到高位被標為XO至X7。更詳細地,第一源操作數(shù)包括由位0至31表示的第一數(shù)據(jù)元(X0)、由位32至63表示的第二數(shù)據(jù)元(XI)、由位64至95表示的第三數(shù)據(jù)元(X2)、由位96至127 表示的第四數(shù)據(jù)元(X3)、由位1 至159表示的第五數(shù)據(jù)元(X4)、由位160至191表示的第六數(shù)據(jù)元(X5)、由位192至223表示的第七數(shù)據(jù)元(X6)、以及由位2 至255表示的第八數(shù)據(jù)元(X7)。數(shù)據(jù)元XO至X3表示與低通道對應(yīng)的數(shù)據(jù)元的低通道子集。數(shù)據(jù)元X4至X7 表示與高通道對應(yīng)的數(shù)據(jù)元的高通道子集。相似地,第二源操作數(shù)652具有256位并且存儲八個緊縮32位或雙字數(shù)據(jù)元。第一源操作數(shù)可以存儲在寄存器(例如,YMM寄存器)、存儲器或另一存儲位置中。這些數(shù)據(jù)元從低位到高位被標為YO至Y7。更詳細地,第二源操作數(shù)包括由位0至31表示的第九數(shù)據(jù)元(Y0)、由位32至63表示的第十數(shù)據(jù)元(Y1)、由位64至95表示的第十一數(shù)據(jù)元(Y2)、由位96至127表示的第十二數(shù)據(jù)元(Y3)、由位1 至159表示的第十三數(shù)據(jù)元(Y4)、由位160 至191表示的第十四數(shù)據(jù)元(Y5)、由位192至223表示的第十五數(shù)據(jù)元(Y6)、以及由位224 至255表示的第十六數(shù)據(jù)元(Y7)。數(shù)據(jù)元YO至TO表示與低通道對應(yīng)的數(shù)據(jù)元的低通道子集。數(shù)據(jù)元W至¥7表示與高通道對應(yīng)的數(shù)據(jù)元的高通道子集。結(jié)果操作數(shù)6M存儲結(jié)果?;趫?zhí)行由第一跨通道解壓縮指令指定的解壓縮操作來生成該結(jié)果。該結(jié)果可以作為跨通道解壓縮指令的結(jié)果(例如,作為執(zhí)行單元執(zhí)行從該指令解碼、翻譯或以其他形式得到的一個或多個微指令或者其他指令的結(jié)果)由處理器的執(zhí)行單元、功能單元或另一部分存儲。結(jié)果操作數(shù)具有256位并且存儲八個緊縮32位或雙字數(shù)據(jù)元。結(jié)果操作數(shù)中的八個數(shù)據(jù)元表示根據(jù)由第一跨通道解壓縮指令指定的解壓縮操作從第一和第二源操作數(shù)選擇的解壓縮和交織數(shù)據(jù)元的子集、一部分或一半。該特定的第一跨通道解壓縮指令指定針對低通道(位0至127)的解壓縮低操作以及針對高通道(位1 至255)的解壓縮高操作。針對低通道的解壓縮低操作可以包括來自第一和第二源操作數(shù)的低通道中的低位四字(64位)的僅低位32位或雙字數(shù)據(jù)元的交織解壓縮。針對高通道的解壓縮高操作可以包括來自第一和第二源操作數(shù)的高通道中的高位四字(64位)的僅高位32位或雙字數(shù)據(jù)元的交織解壓縮。如所示出的,所存儲的結(jié)果可以包括(1)在低通道中,來自第一操作數(shù)的低通道子集的僅最低位數(shù)據(jù)元與對應(yīng)的來自第二操作數(shù)的低通道子集的最低位數(shù)據(jù)元的交織;以及(2)在高通道中,來自第一操作數(shù)的高通道子集的僅最高位數(shù)據(jù)元與對應(yīng)的來自第二操作數(shù)的高通道子集的最高位數(shù)據(jù)元的交織。更詳細地,結(jié)果操作數(shù)可以包括存儲到目標寄存器的位0至31的第一數(shù)據(jù)元 (X0)、存儲到目標寄存器的位32至63的第九數(shù)據(jù)元(Y0)、存儲到目標寄存器的位64至95 的第二數(shù)據(jù)元(XI)、存儲到目標寄存器的位96至127的第十數(shù)據(jù)元(Y1)、存儲到目標寄存器的位1 至159的第七數(shù)據(jù)元(X6)、存儲到目標寄存器的位160至191的第十五數(shù)據(jù)元 (Y6)、存儲到目標寄存器的位192至223的第八數(shù)據(jù)元(X7)、以及存儲到目標寄存器的位 224至255的第十六數(shù)據(jù)元(Y7)。結(jié)果操作數(shù)僅具有來自第一和第二操作數(shù)的數(shù)據(jù)元的子集(尤其是一半)。結(jié)果操作數(shù)的低通道僅具有來自第一和第二操作數(shù)的低通道的數(shù)據(jù)元的子集(尤其是一半)。同樣地,結(jié)果操作數(shù)的高通道僅具有來自第一和第二操作數(shù)的高通道的數(shù)據(jù)元的子集(尤其是一半)。再者,低位數(shù)據(jù)元XO和Xl以及還有低位數(shù)據(jù)元YO和Yl按照與這些數(shù)據(jù)元分別呈現(xiàn)在第一和第二操作數(shù)的低通道中的順序相同的相對順序(即,XO位于比Xl低的位序處; 并且YO位于比Yl低的位序處)存儲在結(jié)果操作數(shù)的低通道中。同樣地,高位數(shù)據(jù)元)(6和 X7以及還有高位數(shù)據(jù)元Y6和Y7按照與這些數(shù)據(jù)元分別呈現(xiàn)在第一和第二操作數(shù)的高通道中的順序相同的相對順序存儲在結(jié)果操作數(shù)的高通道中。圖7圖示了根據(jù)指定針對低通道(位0至127)的解壓縮高操作和針對高通道(位 128至255)的解壓縮低操作的第二單個跨通道解壓縮指令對具有兩個通道的256位操作數(shù)中的32位雙字(dword)緊縮數(shù)據(jù)元進行解壓縮。第一源操作數(shù)750具有256位并且存儲八個緊縮32位或雙字數(shù)據(jù)元。第一源操作數(shù)可以存儲在寄存器(例如,YMM寄存器)、存儲器或另一存儲位置中。這些數(shù)據(jù)元從低位到高位被標為XO至X7。更詳細地,第一源操作數(shù)包括由位0至31表示的第一數(shù)據(jù)元(X0)、由位32至63表示的第二數(shù)據(jù)元(XI)、由位64至95表示的第三數(shù)據(jù)元(X2)、由位96至127 表示的第四數(shù)據(jù)元(X3)、由位1 至159表示的第五數(shù)據(jù)元(X4)、由位160至191表示的第六數(shù)據(jù)元(X5)、由位192至223表示的第七數(shù)據(jù)元(X6)、以及由位2 至255表示的第八數(shù)據(jù)元(X7)。數(shù)據(jù)元XO至X3與低通道對應(yīng)。數(shù)據(jù)元X4至X7與高通道對應(yīng)。相似地,第二源操作數(shù)752具有256位并且存儲八個緊縮32位或雙字數(shù)據(jù)元。第一源操作數(shù)可以存儲在寄存器(例如,YMM寄存器)、存儲器或另一存儲位置中。這些數(shù)據(jù)元從低位到高位被標為YO至Y7。更詳細地,第二源操作數(shù)包括由位0至31表示的第九數(shù)據(jù)元(Y0)、由位32至63表示的第十數(shù)據(jù)元(Y1)、由位64至95表示的第十一數(shù)據(jù)元(Y2)、由位96至127表示的第十二數(shù)據(jù)元(Y3)、由位1 至159表示的第十三數(shù)據(jù)元(Y4)、由位160 至191表示的第十四數(shù)據(jù)元(Y5)、由位192至223表示的第十五數(shù)據(jù)元(Y6)、以及由位224至255表示的第十六數(shù)據(jù)元(Y7)。數(shù)據(jù)元YO至TO與低通道對應(yīng)。數(shù)據(jù)元料至¥7與高通道對應(yīng)。結(jié)果操作數(shù)7Μ存儲結(jié)果?;趫?zhí)行由第二跨通道解壓縮指令指定的解壓縮操作來生成該結(jié)果。該結(jié)果可以作為跨通道解壓縮指令的結(jié)果(例如,作為執(zhí)行單元執(zhí)行從所述指令解碼、翻譯或以其他形式得到的一個或多個微指令或者其他指令的結(jié)果)由處理器的執(zhí)行單元、功能單元或另一部分存儲。結(jié)果操作數(shù)具有256位并且存儲八個緊縮32位或雙字數(shù)據(jù)元。結(jié)果操作數(shù)中的八個數(shù)據(jù)元表示根據(jù)由第二跨通道解壓縮指令指定的解壓縮操作從第一和第二源操作數(shù)選擇的解壓縮和交織數(shù)據(jù)元的子集、一部分或者在該情況下是一半。該特定的第二跨通道解壓縮指令指定針對低通道(位0至127)的解壓縮高操作以及針對高通道(位1 至255)的解壓縮低操作。針對低通道的解壓縮高操作可以包括來自第一和第二源操作數(shù)的低通道中的高位四字(64位)的高位32位或雙字數(shù)據(jù)元的交織解壓縮。針對高通道的解壓縮低操作可以包括來自第一和第二源操作數(shù)的高通道中的低位四字 (64位)的低位32位或雙字數(shù)據(jù)元的交織解壓縮。如所示出的,結(jié)果操作數(shù)可以包括存儲到目標寄存器的位0至31的第三數(shù)據(jù)元 (X2)、存儲到目標寄存器的位32至63的第十一數(shù)據(jù)元(Y2)、存儲到目標寄存器的位64至 95的第四數(shù)據(jù)元(X3)、存儲到目標寄存器的位96至127的第十二數(shù)據(jù)元(Y3)、存儲到目標寄存器的位1 至159的第五數(shù)據(jù)元(X4)、存儲到目標寄存器的位160至191的第十三數(shù)據(jù)元(Y4)、存儲到目標寄存器的位192至223的第六數(shù)據(jù)元(X5)、以及存儲到目標寄存器的位2M至255的第十四數(shù)據(jù)元(Y5)。圖8圖示了根據(jù)指定針對低通道(位0至127)的解壓縮低操作和針對高通道(位 128至255)的解壓縮高操作的第三單個跨通道解壓縮指令對具有兩個通道的256位操作數(shù)中的16位字緊縮數(shù)據(jù)元進行解壓縮。第一源操作數(shù)850具有256位并且存儲十六個緊縮16位或字數(shù)據(jù)元。第一源操作數(shù)可以存儲在寄存器(例如,YMM寄存器)、存儲器或另一存儲位置中。這些數(shù)據(jù)元從低位到高位被標為XO至X15。數(shù)據(jù)元XO至X7與低通道對應(yīng)。數(shù)據(jù)元X8至X15與高通道對應(yīng)。相似地,第二源操作數(shù)852具有256位并且存儲十六個緊縮16位或字數(shù)據(jù)元。第一源操作數(shù)可以存儲在寄存器(例如,YMM寄存器)、存儲器或另一存儲位置中。這些數(shù)據(jù)元從低位到高位被標為YO至Y15。數(shù)據(jù)元YO至Y7與低通道對應(yīng)。數(shù)據(jù)元Y8至Y15與高通道對應(yīng)。結(jié)果操作數(shù)邪4存儲結(jié)果?;趫?zhí)行由第三跨通道解壓縮指令指定的解壓縮操作來生成該結(jié)果。該結(jié)果可以作為跨通道解壓縮指令的結(jié)果(例如,作為執(zhí)行單元執(zhí)行從指令解碼、翻譯或以其他形式得到的一個或多個微指令或者其他指令的結(jié)果)由處理器的執(zhí)行單元、功能單元或另一部分存儲。結(jié)果操作數(shù)具有256位并且存儲十六個緊縮16位或字數(shù)據(jù)元。結(jié)果操作數(shù)中的十六個數(shù)據(jù)元表示根據(jù)由第三跨通道解壓縮指令指定的解壓縮操作從第一和第二源操作數(shù)選擇的解壓縮和交織數(shù)據(jù)元的子集、一部分或者一半。該特定的第三跨通道解壓縮指令指定針對低通道(位0至127)的解壓縮低操作以及針對高通道(位1 至255)的解壓縮高操作。針對低通道的解壓縮低操作可以包括來自第一和第二源操作數(shù)的低通道中的低位四字(64位)的低位16位或字數(shù)據(jù)元的交織解壓縮。針對高通道的解壓縮高操作可以包括來自第一和第二源操作數(shù)的高通道中的高位四字 (64位)的高位16位或字數(shù)據(jù)元的交織解壓縮。如所示出的,結(jié)果操作數(shù)包括,從低位到高位,低通道中的排序數(shù)據(jù)元X0、Y0、XI、 Y1、X2、Y2、X3、Y3。結(jié)果操作數(shù)包括,從低位到高位,高通道中的排序數(shù)據(jù)元Χ12、Υ12、Χ13、 Υ13、Χ14、Υ14、Χ15、Υ15。圖9圖示了根據(jù)指定針對低通道(位0至127)的解壓縮高操作和針對高通道(位 128至255)的解壓縮低操作的第四單個跨通道解壓縮指令對具有兩個通道的256位操作數(shù)中的16位字緊縮數(shù)據(jù)元進行解壓縮。第一源操作數(shù)950具有256位并且存儲十六個緊縮16位或字數(shù)據(jù)元。第一源操作數(shù)可以存儲在寄存器(例如,YMM寄存器)、存儲器或另一存儲位置中。這些數(shù)據(jù)元從低位到高位被標為XO至Χ15。數(shù)據(jù)元XO至Χ7與低通道對應(yīng)。數(shù)據(jù)元Χ8至Χ15與高通道對應(yīng)。相似地,第二源操作數(shù)952具有256位并且存儲十六個緊縮16位或字數(shù)據(jù)元。第一源操作數(shù)可以存儲在寄存器(例如,YMM寄存器)、存儲器或另一存儲位置中。這些數(shù)據(jù)元從低位到高位被標為YO至Υ15。數(shù)據(jù)元YO至Υ7與低通道對應(yīng)。數(shù)據(jù)元Υ8至Υ15與高通道對應(yīng)。結(jié)果操作數(shù)%4存儲結(jié)果?;趫?zhí)行由第四跨通道解壓縮指令指定的解壓縮操作來生成該結(jié)果。該結(jié)果可以作為跨通道解壓縮指令的結(jié)果(例如,作為執(zhí)行單元執(zhí)行從指令解碼、翻譯或以其他形式得到的一個或多個微指令或者其他指令的結(jié)果)由處理器的執(zhí)行單元、功能單元或另一部分存儲。結(jié)果操作數(shù)具有256位并且存儲十六個緊縮16位或字數(shù)據(jù)元。結(jié)果操作數(shù)中的十六個數(shù)據(jù)元表示根據(jù)由第四跨通道解壓縮指令指定的解壓縮操作從第一和第二源操作數(shù)選擇的解壓縮和交織數(shù)據(jù)元的子集、一部分或者一半。該特定的第四跨通道解壓縮指令指定針對低通道(位0至127)的解壓縮高操作以及針對高通道(位1 至255)的解壓縮低操作。針對低通道的解壓縮高操作可以包括來自第一和第二源操作數(shù)的低通道中的高位四字(64位)的高位16位或字數(shù)據(jù)元的交織解壓縮。針對高通道的解壓縮低操作可以包括來自第一和第二源操作數(shù)的高通道中的低位四字 (64位)的低位16位或字數(shù)據(jù)元的交織解壓縮。如所示出的,結(jié)果操作數(shù)包括,從低位到高位,低通道中的排序數(shù)據(jù)元X4、Y4、X5, TO、X6、Y6、X7、Y7。結(jié)果操作數(shù)包括,從低位到高位,高通道中的排序數(shù)據(jù)元X8、Y8、X9、Y9、 ΧΙΟ, Υ10, XlU Yll0如圖6至9中的每個所示,結(jié)果操作數(shù)僅具有來自第一和第二操作數(shù)的數(shù)據(jù)元的子集(尤其是一半)。結(jié)果操作數(shù)的低通道僅具有來自第一和第二操作數(shù)的低通道的數(shù)據(jù)元的子集(尤其是一半)。同樣地,結(jié)果操作數(shù)的高通道僅具有來自第一和第二操作數(shù)的高通道的數(shù)據(jù)元的子集(尤其是一半)。再者,來自第一和第二操作數(shù)的數(shù)據(jù)元按照與這些數(shù)據(jù)元分別呈現(xiàn)在第一和第二操作數(shù)中的順序相同的順序存儲在結(jié)果操作數(shù)中。對于結(jié)果操作數(shù)整體以及在每個通道內(nèi),情況均是如此。在圖6-9中,已討論了具有兩個1 位通道的256位操作數(shù),盡管本發(fā)明的實施例的范圍不限于此。操作數(shù)可以具有更少或更多的位。同樣地,通道可以具有更少或更多的位。作為一個說明性示例,操作數(shù)可以是1 位并且通道可以是64位。作為另一說明性示例,操作數(shù)可以具有512位并且通道可以具有64位或1 位。為了進一步說明某些概念,考慮示例跨通道解壓縮指令的一個示例使用。在某些算法中,諸如例如陣列結(jié)構(gòu)(SoA)到結(jié)構(gòu)陣列(AoS)算法,期望交織來自兩個操作數(shù)的數(shù)據(jù)元而同時維持與這些數(shù)據(jù)元呈現(xiàn)在操作數(shù)中的順序相同的順序。下文列出的是具有在低通道和高通道中復制的四個數(shù)據(jù)元(0,2,4,6)的第一源操作數(shù)。同樣地,第二源操作數(shù)具有在低通道和高通道中復制的另外四個數(shù)據(jù)元(1,3,5,7)。作為示例,這些數(shù)據(jù)元可以通過 Intel AVX廣播指令復制。如下文所示,指定針對低通道的解壓縮低操作和針對高通道的解壓縮高操作的跨通道解壓縮指令可以實現(xiàn)這樣的結(jié)果操作數(shù),即在該結(jié)果操作數(shù)中來自第一和第二操作數(shù)的所有數(shù)據(jù)元被交織并且按照與這些數(shù)據(jù)元呈現(xiàn)在源操作數(shù)中的順序相同的順序進行排序并且結(jié)果是連續(xù)的。第一源操作數(shù)64 2 O I 6 4 2 0 第二源操作數(shù)7 5 3 1 I 7 5 3 1 結(jié)果操作數(shù)7 6 5 4 I 3 2 1 O
這僅是一個圖示了跨通道解壓縮指令的一種特定使用的說明性示例??缤ǖ澜鈮嚎s指令的其他使用和優(yōu)點對于受益于本公開的本領(lǐng)域技術(shù)人員將是明顯的。圖10是具有指定將執(zhí)行什么類型的解壓縮操作的控制字段1060的跨通道解壓縮指令1002的實施例的簡化框圖。該控制字段具有多個位。在圖示中,第一位(bi、)對應(yīng)于第一通道,第二位(Mt1)對應(yīng)于第二通道,并且第N位(bitN)對應(yīng)于第N通道,其中N是范圍常常為2至5的整數(shù)。在一個或多個實施例中,每個位可以具有第一預(yù)定值(例如,0),用于指示針對相應(yīng)的通道的第一類型的解壓縮操作(例如,解壓縮低操作),以及具有第二預(yù)定值(例如,1),用于指示針對相應(yīng)的通道的第二類型的解壓縮操作(例如,解壓縮高操作)。 可替換地,兩個、三個或更多個位可以可選地用于指定針對每個通道的解壓縮操作??商鎿Q地,不同于具有用于指定執(zhí)行什么操作的控制字段的指令,指令可以執(zhí)行解壓縮操作的單個預(yù)定組合,并且如果期望,可以包括多個指令以提供解壓縮操作的多個不同組合。圖11是適用于實現(xiàn)本發(fā)明的一個或多個實施例的計算機系統(tǒng)1170的示例實施例的框圖。計算機系統(tǒng)表示諸如基于PENTIUM 4、PENTIUM Dual-Core、Core 2 Duo和 Quad、Xeon 、Itanium 、XScale / 或 StrongARM 處理器的處理系統(tǒng)。然而,這僅是適用的計算機系統(tǒng)的一個特定示例。多處理器系統(tǒng)、服務(wù)器以及具有其他設(shè)計或部件的其他計算機系統(tǒng)也是適用的。在一個實施例中,計算機系統(tǒng)可以執(zhí)行獲得自美國華盛頓州Redmond的微軟公司的WINDOWS 操作系統(tǒng)的版本??商鎿Q地,可以使用諸如例如UNIX、Linux或嵌入式系統(tǒng)的其他操作系統(tǒng)。本發(fā)明的實施例不限于硬件電路系統(tǒng)和軟件的任何已知的特定組合。計算機系統(tǒng)包括處理器1100。該處理器包括至少一個執(zhí)行單元1106。所述執(zhí)行單元和/或所述處理器可以能夠執(zhí)行或以其他形式處理如前面描述的至少一個跨通道解壓縮指令1102。所述處理器還包括寄存器文件1108。在一個或多個實施例中,寄存器文件包括具有多個通道的寄存器。就是說,所述處理器可以提供具有多個通道的SIMD架構(gòu)。 圖示的處理器以簡化格式示出以避免使描述模糊。將認識到,所述處理器可以包括其他部件,諸如例如緩存、指令預(yù)取器、指令解碼器或翻譯器、跟蹤緩存、微代碼(ucode)只讀存儲器(ROM)、亂序引擎等。處理器耦合到處理器總線或其他互連1172。所述處理器總線可以用于在系統(tǒng)中的所述處理器和其他部件之間傳送數(shù)據(jù)信號。計算機系統(tǒng)還包括存儲器1174。所述存儲器可以包括動態(tài)隨機訪問存儲器 (DRAM)、靜態(tài)隨機訪問存儲器(SRAM)、閃速存儲器、其他已知類型的存儲器、或者它們的組合。DRAM是在一些但非所有計算機系統(tǒng)中使用的一種類型的存儲器的示例。該存儲器可用于儲存指令1173和數(shù)據(jù)1174,指令1173諸如包括一個或多個跨通道解壓縮指令的軟件。計算機系統(tǒng)是集線器(hub )類型架構(gòu)的示例。該集線器類型架構(gòu)包括存儲器控制器集線器(MCH) 1176。MCH是系統(tǒng)邏輯芯片。MCH耦合到處理器總線1172和存儲器1174。 處理器可以通過處理器總線與MCH通信。MCH可以在計算機系統(tǒng)中的處理器、存儲器和其他部件之間引導數(shù)據(jù)。MCH還可以在處理器總線、存儲器和集線器接口總線或其他互連之間橋接信號。MCH向可用于存儲和取回指令和數(shù)據(jù)的存儲器提供高帶寬存儲器路徑。在一些實施例中,系統(tǒng)可以可選地包括圖形設(shè)備(例如,圖形/視頻卡)1186。MCH 可以提供圖形端口和互連(例如,加速圖形端口(AGP)互連)以耦合圖形設(shè)備。系統(tǒng)還包括I/O控制器集線器(ICH) 1178。ICH通過集線器接口總線或者可能包括一個或多個總線的其他互連1177耦合到MCH。ICH可以通過本地I/O總線或其他互連提供至一些I/O設(shè)備的直接連接。本地I/O總線或其他互連可以表示高速I/O總線或者將外圍設(shè)備連接到存儲器、芯片組和處理器的其他互連。外圍設(shè)備的若干代表性示例被示出為包括音頻控制器1179、閃速BIOS 1180、無線收發(fā)器1181、數(shù)據(jù)存儲器1182(例如,硬盤驅(qū)動器、軟盤驅(qū)動器、⑶-ROM設(shè)備、閃速存儲器設(shè)備等)、用于提供用戶輸入接口(例如,鍵盤)的傳統(tǒng)(legacy) I/O控制器1183、諸如通用串行總線(USB)的串行擴展端口 1184以及網(wǎng)絡(luò)控制器1185。這些特定的外圍設(shè)備是可選的而不是必需的。將認識到,這僅是適用的計算機系統(tǒng)的一個說明性示例。本發(fā)明的實施例的范圍不限于任何特定的計算機系統(tǒng)設(shè)計。相反,廣泛的各種其他計算機系統(tǒng)設(shè)計是適用的。這樣的設(shè)計除其他之外還包括膝上型計算機、桌面型計算機、工程工作站、以及服務(wù)器、手持PC、 個人數(shù)字助理等。此外,實施例可以應(yīng)用于具有一個或多個處理器或執(zhí)行單元的其他設(shè)備。例如, 可以包括在操作中處理這里公開的跨通道解壓縮指令之一的處理器和/或執(zhí)行單元的其他設(shè)備包括,但不限于,便攜式媒體播放器、蜂窩電話、手持設(shè)備、互聯(lián)網(wǎng)協(xié)議設(shè)備、機頂盒、 網(wǎng)絡(luò)設(shè)備、網(wǎng)絡(luò)集線器、廣域網(wǎng)(WAN)交換機、視頻游戲設(shè)備、圖形設(shè)備、數(shù)字信號處理器 (DSP)、微控制器、嵌入式處理器和其他邏輯電路。利用或者可以受益于SIMD或緊縮數(shù)據(jù)的任何電子設(shè)備或系統(tǒng)可以潛在地包括用于處理如這里公開的跨通道解壓縮指令的邏輯。在說明書和權(quán)利要求中,可以使用術(shù)語“耦合”和“連接”以及它們的衍生物。應(yīng)當理解,這些術(shù)語并非旨在彼此同義。相反,在特定的實施例中,“連接”可用于指示兩個或更多個元件彼此直接物理接觸或電接觸?!榜詈稀笨梢砸馕吨鴥蓚€或更多個元件直接物理接觸或電接觸。然而,“耦合”也可以意味著兩個或更多個元件并非彼此直接接觸,但是仍彼此協(xié)作或交互。
在上文的描述中,為了解釋的目的,闡述了許多特定細節(jié)以便提供本發(fā)明的實施例的透徹理解。然而對于本領(lǐng)域技術(shù)人員將明顯的,一個或多個實施例可以在沒有這些特定細節(jié)中的一些特定細節(jié)的情況下實踐。所描述的特定實施例并非被提供用于限制本發(fā)明而是為了說明本發(fā)明的實施例。本發(fā)明的范圍并非由上文提供的特定示例確定,而是僅由所附權(quán)利要求確定。在其他情形下,公知的電路、結(jié)構(gòu)、設(shè)備和操作已通過框圖形式示出或者在沒有細節(jié)的情況下示出,以便避免使對描述的理解模糊。在適當考慮的情況下,附圖標記或者附圖標記的末端部分在各圖中重復,以指示可以可選地具有相似特性的對應(yīng)的或類似的元件。已描述了各種操作和方法。一些方法已按基本形式描述,但是可以可選地將操作添加到方法和/或從方法移除操作。方法的操作常常還可以可選地以不同的順序執(zhí)行。許多修改和調(diào)整可以針對方法進行并且在考慮范圍內(nèi)。某些操作可以由硬件部件執(zhí)行,或者可以實施為機器可執(zhí)行指令,其可用于使得, 或者至少導致,利用這些指令編程的電路或硬件執(zhí)行這些操作。該電路可以例如包括通用或?qū)S锰幚砥?、或者邏輯電路。這些操作也可以可選地由硬件和軟件的組合執(zhí)行。處理器可以包括響應(yīng)于機器指令或者從該機器指令得到的一個或多個控制信號的特定邏輯。本發(fā)明的一個或多個實施例可以被提供為程序產(chǎn)品或其他制品,其可以包括有形的機器可訪問和/或可讀介質(zhì),其具有存儲在其上的一個或多個指令(例如,解壓縮指令) 和/或數(shù)據(jù)結(jié)構(gòu)。有形介質(zhì)可以包括一種或多種材料。該介質(zhì)可以提供指令,如果機器執(zhí)行這些指令以及當機器執(zhí)行這些指令時,其可以導致和/或使得機器執(zhí)行這里公開的一個或多個操作或方法。適用的機器例如包括,但不限于,計算機系統(tǒng)、網(wǎng)絡(luò)設(shè)備、個人數(shù)字助理 (PDA)、調(diào)制解調(diào)器、蜂窩電話、其他無線設(shè)備以及具有一個或多個處理器的廣泛的各種其他電子設(shè)備。該介質(zhì)可以包括以機器可訪問的形式提供(例如存儲)信息的機制。例如,該機制可以可選地包括可記錄介質(zhì),諸如例如,軟盤、光存儲介質(zhì)、光盤、⑶-ROM、磁盤、磁-光盤、 只讀存儲器(ROM)、可編程ROM (PROM)、可擦除和可編程ROM (EPR0M)、電可擦除和可編程 ROM (EEPROM)、隨機訪問存儲器(RAM)、靜態(tài)RAM (SRAM)、動態(tài)RAM (DRAM)、閃速存儲器以及它們的組合。應(yīng)認識到,在本說明書各處提到的例如“一個實施例”、“實施例”或者“一個或多個實施例”意味著在本發(fā)明的實施例的實踐中可以包括特定的特征。相似地,應(yīng)認識到,在說明書中出于使公開流暢并且?guī)椭斫飧鞣N發(fā)明方面的目的,有時在單個實施例、附圖或者其描述中將各種特征編組在一起。然而,該公開方法不應(yīng)被解釋為反映本發(fā)明需要比每項權(quán)利要求中明確記載的特征更多的特征的意圖。相反,如所附權(quán)利要求所反映的,本發(fā)明的方面在于比單個公開實施例的所有特征少的特征。因此,所附權(quán)利要求在這里被明確地并入說明書,每項權(quán)利要求自身作為本發(fā)明的單獨的實施例。
權(quán)利要求
1.一種方法,包括接收指令,所述指令指示第一操作數(shù)和第二操作數(shù),所述第一操作數(shù)和第二操作數(shù)中的每個具有對應(yīng)在各自位置中的多個緊縮數(shù)據(jù)元,所述第一操作數(shù)的緊縮數(shù)據(jù)元的第一子集和所述第二操作數(shù)的緊縮數(shù)據(jù)元的第一子集均與第一通道對應(yīng),并且所述第一操作數(shù)的緊縮數(shù)據(jù)元的第二子集和所述第二操作數(shù)的緊縮數(shù)據(jù)元的第二子集均與第二通道對應(yīng);以及響應(yīng)于所述指令存儲結(jié)果,所述結(jié)果包括(1)在所述第一通道中,來自所述第一操作數(shù)的第一子集的僅最低位數(shù)據(jù)元與對應(yīng)的來自所述第二操作數(shù)的第一子集的最低位數(shù)據(jù)元的交織;以及(2)在所述第二通道中,來自所述第一操作數(shù)的第二子集的僅最高位數(shù)據(jù)元與對應(yīng)的來自所述第二操作數(shù)的第二子集的最高位數(shù)據(jù)元的交織。
2.根據(jù)權(quán)利要求1所述的方法,其中所述第一通道包括低通道,并且所述第二通道包括高通道。
3.根據(jù)權(quán)利要求1所述的方法,其中所述第一通道包括高通道,并且所述第二通道包括低通道。
4.根據(jù)權(quán)利要求1所述的方法,其中所述指令包括控制字段,其中所述控制字段的一個或多個位與所述第一通道對應(yīng)并且指示針對所述第一通道將執(zhí)行解壓縮低操作,以及其中所述控制字段的一個或多個位與所述第二通道對應(yīng)并且指示針對所述第二通道將執(zhí)行解壓縮高操作。
5.根據(jù)權(quán)利要求1所述的方法,其中所述第一通道和第二通道中的每個具有1 位。
6.根據(jù)權(quán)利要求1所述的方法,其中存儲所述結(jié)果包括在所述第一通道中,僅存儲來自所述第一子集的數(shù)據(jù)元的一半包括將來自所述第一操作數(shù)的第一子集的最低位數(shù)據(jù)元按照與這些最低位數(shù)據(jù)元呈現(xiàn)在所述第一操作數(shù)的第一子集中的順序相同的順序進行存儲;以及在所述第二通道中,僅存儲來自所述第二子集的數(shù)據(jù)元的一半。
7.根據(jù)權(quán)利要求1所述的方法,進一步包括將所述指令解碼為一個或多個指令以及將所述指令翻譯為一個或多個指令中的至少一種。
8.一種裝置,包括執(zhí)行單元,其在操作中作為指令的結(jié)果而存儲結(jié)果,其中所述指令具有指示第一操作數(shù)的第一字段和指示第二操作數(shù)的第二字段,所述第一操作數(shù)和第二操作數(shù)中的每個具有將對應(yīng)在各自位置中的多個緊縮數(shù)據(jù)元,其中所述第一操作數(shù)的緊縮數(shù)據(jù)元的第一子集和所述第二操作數(shù)的緊縮數(shù)據(jù)元的第一子集均與第一通道對應(yīng),并且其中所述第一操作數(shù)的緊縮數(shù)據(jù)元的第二子集和所述第二操作數(shù)的緊縮數(shù)據(jù)元的第二子集均與第二通道對應(yīng),其中將存儲的所述結(jié)果包括(1)在所述第一通道中,來自所述第一操作數(shù)的第一子集的僅最低位數(shù)據(jù)元與對應(yīng)的來自所述第二操作數(shù)的第一子集的最低位數(shù)據(jù)元的交織;以及(2)在所述第二通道中,來自所述第一操作數(shù)的第二子集的僅最高位數(shù)據(jù)元與對應(yīng)的來自所述第二操作數(shù)的第二子集的最高位數(shù)據(jù)元的交織。
9.根據(jù)權(quán)利要求8所述的裝置,其中所述第一通道包括低通道,并且所述第二通道包括高通道。
10.根據(jù)權(quán)利要求8所述的裝置,其中所述第一通道包括高通道,并且所述第二通道包括低通道。
11.根據(jù)權(quán)利要求8所述的裝置,其中所述指令包括控制字段,其中所述控制字段的一個或多個位與所述第一通道對應(yīng)并且指示將對所述第一操作數(shù)和第二操作數(shù)的最低位數(shù)據(jù)元進行解壓縮,以及其中所述控制字段的一個或多個位與所述第二通道對應(yīng)并且指示將對所述第一操作數(shù)和第二操作數(shù)的最高位數(shù)據(jù)元進行解壓縮。
12.根據(jù)權(quán)利要求8所述的裝置,其中所述指令具有與所述第一字段和第二字段不同的第三字段,以指示其中將存儲所述結(jié)果的目標,并且其中存儲所述結(jié)果包括將所述結(jié)果存儲在所述目標處。
13.根據(jù)權(quán)利要求8所述的裝置,其中所述指令包括跨通道解壓縮指令。
14.根據(jù)權(quán)利要求8所述的裝置,其中所述第一通道和第二通道中的每個具有1 位。
15.根據(jù)權(quán)利要求8所述的裝置,其中所述執(zhí)行單元將存儲結(jié)果,該結(jié)果包括(1)在所述第一通道中,僅來自所述第一子集的數(shù)據(jù)元的一半;以及(2)在所述第二通道中,僅來自所述第二子集的數(shù)據(jù)元的一半。
16.根據(jù)權(quán)利要求8所述的裝置,其中所述執(zhí)行單元將存儲結(jié)果,該結(jié)果在所述第一通道中包括來自所述第一操作數(shù)的第一子集的最低位數(shù)據(jù)元,這些最低位數(shù)據(jù)元按照與所述最低位數(shù)據(jù)元呈現(xiàn)在所述第一操作數(shù)的第一子集中的順序相同的順序排列。
17.根據(jù)權(quán)利要求8所述的裝置,其中所述執(zhí)行單元將存儲結(jié)果,該結(jié)果包括至少四個均來自所述第一操作數(shù)和第二操作數(shù)之一的數(shù)據(jù)元。
18.根據(jù)權(quán)利要求8所述的裝置,進一步包括解碼器和指令翻譯器中的至少一個,所述解碼器將所述指令解碼為將由所述執(zhí)行單元執(zhí)行以使得所述執(zhí)行單元存儲所述結(jié)果的一個或多個指令;所述指令翻譯器將所述指令翻譯為將由所述執(zhí)行單元執(zhí)行以使得所述執(zhí)行單元存儲所述結(jié)果的一個或多個指令。
19.根據(jù)權(quán)利要求8所述的裝置,其中所述執(zhí)行單元包括電路,以及其中所述指令包括機器指令,以及其中所述執(zhí)行單元包括在操作中存儲因所述機器指令引起的結(jié)果的特定的邏輯。
20.一種裝置,包括第一 256位寄存器,其存儲第一源操作數(shù),所述第一源操作數(shù)包括由位0至31表示的第一數(shù)據(jù)元、由位32至63表示的第二數(shù)據(jù)元、由位64至95表示的第三數(shù)據(jù)元、由位96至 127表示的第四數(shù)據(jù)元、由位1 至159表示的第五數(shù)據(jù)元、由位160至191表示的第六數(shù)據(jù)元、由位192至223表示的第七數(shù)據(jù)元、以及由位224至255表示的第八數(shù)據(jù)元;第二 256位寄存器,其存儲第二源操作數(shù),所述第二源操作數(shù)包括由位0至31表示的第九數(shù)據(jù)元、由位32至63表示的第十數(shù)據(jù)元、由位64至95表示的第十一數(shù)據(jù)元、由位96 至127表示的第十二數(shù)據(jù)元、由位1 至159表示的第十三數(shù)據(jù)元、由位160至191表示的第十四數(shù)據(jù)元、由位192至223表示的第十五數(shù)據(jù)元、以及由位2M至255表示的第十六數(shù)據(jù)元;執(zhí)行單元,其作為指令的結(jié)果而存儲結(jié)果,將被存儲的所述結(jié)果包括存儲到目標寄存器的位0至31的第一數(shù)據(jù)元、存儲到目標寄存器的位32至63的第九數(shù)據(jù)元、存儲到目標寄存器的位64至95的第二數(shù)據(jù)元、存儲到目標寄存器的位96至127的第十數(shù)據(jù)元、存儲到目標寄存器的位1 至159的第七數(shù)據(jù)元、存儲到目標寄存器的位160至191的第十五數(shù)據(jù)元、存儲到目標寄存器的位192至223的第八數(shù)據(jù)元、以及存儲到目標寄存器的位224 至255的第十六數(shù)據(jù)元。
21.根據(jù)權(quán)利要求20所述的裝置,進一步包括解碼器和指令翻譯器中的至少一個,所述解碼器將所述指令解碼為將由所述執(zhí)行單元執(zhí)行以使得所述執(zhí)行單元存儲所述結(jié)果的一個或多個指令;所述指令翻譯器將所述指令翻譯為將由所述執(zhí)行單元執(zhí)行以使得所述執(zhí)行單元存儲所述結(jié)果的一個或多個指令。
22.一種裝置,包括第一 256位寄存器,其存儲第一源操作數(shù),所述第一源操作數(shù)包括由位0至31表示的第一數(shù)據(jù)元、由位32至63表示的第二數(shù)據(jù)元、由位64至95表示的第三數(shù)據(jù)元、由位96至 127表示的第四數(shù)據(jù)元、由位1 至159表示的第五數(shù)據(jù)元、由位160至191表示的第六數(shù)據(jù)元、由位192至223表示的第七數(shù)據(jù)元、以及由位2M至255表示的第八數(shù)據(jù)元;第二 256位寄存器,其存儲第二源操作數(shù),所述第二源操作數(shù)包括由位0至31表示的第九數(shù)據(jù)元、由位32至63表示的第十數(shù)據(jù)元、由位64至95表示的第十一數(shù)據(jù)元、由位96 至127表示的第十二數(shù)據(jù)元、由位1 至159表示的第十三數(shù)據(jù)元、由位160至191表示的第十四數(shù)據(jù)元、由位192至223表示的第十五數(shù)據(jù)元、以及由位2M至255表示的第十六數(shù)據(jù)元;執(zhí)行單元,其作為指令的結(jié)果而存儲結(jié)果,將被存儲的所述結(jié)果包括存儲到目標寄存器的位0至31的第三數(shù)據(jù)元、存儲到目標寄存器的位32至63的第十一數(shù)據(jù)元、存儲到目標寄存器的位64至95的第四數(shù)據(jù)元、存儲到目標寄存器的位96至127的第十二數(shù)據(jù)元、 存儲到目標寄存器的位1 至159的第五數(shù)據(jù)元、存儲到目標寄存器的位160至191的第十三數(shù)據(jù)元、存儲到目標寄存器的位192至223的第六數(shù)據(jù)元、以及存儲到目標寄存器的位 2M至255的第十四數(shù)據(jù)元。
23.根據(jù)權(quán)利要求22所述的裝置,進一步包括解碼器和指令翻譯器中的至少一個,所述解碼器將所述指令解碼為將由所述執(zhí)行單元執(zhí)行以使得所述執(zhí)行單元存儲所述結(jié)果的一個或多個指令;所述指令翻譯器將所述指令翻譯為將由所述執(zhí)行單元執(zhí)行以使得所述執(zhí)行單元存儲所述結(jié)果的一個或多個指令。
24.一種系統(tǒng),包括互連;與所述互連耦合的處理器,所述處理器包括指令解碼器、指令翻譯器和指令模擬器中的至少一個,所述至少一個以硬件、軟件、固件或者它們的組合實現(xiàn),用于接收指令,所述指令具有指示第一操作數(shù)的第一字段和指示第二操作數(shù)的第二字段,所述第一操作數(shù)和第二操作數(shù)中的每個具有將對應(yīng)在各自位置中的多個緊縮數(shù)據(jù)元,其中所述第一操作數(shù)的緊縮數(shù)據(jù)元的第一子集和所述第二操作數(shù)的緊縮數(shù)據(jù)元的第一子集均與第一通道對應(yīng),并且其中所述第一操作數(shù)的緊縮數(shù)據(jù)元的第二子集和所述第二操作數(shù)的緊縮數(shù)據(jù)元的第二子集均與第二通道對應(yīng);以及響應(yīng)于所述至少一個而接收所述指令以存儲結(jié)果的電路,所述結(jié)果包括(1)在所述第一通道中,來自所述第一操作數(shù)的第一子集的僅最低位數(shù)據(jù)元與對應(yīng)的來自所述第二操作數(shù)的第一子集的最低位數(shù)據(jù)元的交織;以及(2)在所述第二通道中,來自所述第一操作數(shù)的第二子集的僅最高位數(shù)據(jù)元與對應(yīng)的來自所述第二操作數(shù)的第二子集的最高位數(shù)據(jù)元的交織;以及與所述互連耦合的動態(tài)隨機訪問存儲器(DRAM)。
25.根據(jù)權(quán)利要求M所述的系統(tǒng),其中所述電路將存儲結(jié)果,該結(jié)果包括(1)在所述第一通道中,僅來自所述第一子集的數(shù)據(jù)元的一半;以及(2)在所述第二通道中,僅來自所述第二子集的數(shù)據(jù)元的一半。
26.一種制品,包括機器可讀介質(zhì),用于提供指令,所述指令包括指示第一操作數(shù)的第一字段和指示第二操作數(shù)的第二字段,所述第一操作數(shù)和第二操作數(shù)中的每個具有將對應(yīng)在各自位置中的多個緊縮數(shù)據(jù)元,所述第一操作數(shù)的緊縮數(shù)據(jù)元的第一子集和所述第二操作數(shù)的緊縮數(shù)據(jù)元的第一子集均與第一通道對應(yīng), 并且所述第一操作數(shù)的緊縮數(shù)據(jù)元的第二子集和所述第二操作數(shù)的緊縮數(shù)據(jù)元的第二子集均與第二通道對應(yīng),以及所述指令在由機器處理的情況下使得所述機器執(zhí)行包括存儲結(jié)果的操作,所述結(jié)果包括(1)在所述第一通道中,來自所述第一操作數(shù)的第一子集的僅最低位數(shù)據(jù)元與對應(yīng)的來自所述第二操作數(shù)的第一子集的最低位數(shù)據(jù)元的交織;以及(2)在所述第二通道中,來自所述第一操作數(shù)的第二子集的僅最高位數(shù)據(jù)元與對應(yīng)的來自所述第二操作數(shù)的第二子集的最高位數(shù)據(jù)元的交織。
27.根據(jù)權(quán)利要求沈所述的方法,其中所述指令包括機器指令,并且所述機器包括在操作中存儲因所述機器指令引起的結(jié)果的特定的邏輯。
全文摘要
接收指示第一和第二操作數(shù)的指令。每個操作數(shù)具有在各自位置中對應(yīng)的緊縮數(shù)據(jù)元。第一操作數(shù)的數(shù)據(jù)元的第一子集和第二操作數(shù)的數(shù)據(jù)元的第一子集均與第一通道對應(yīng)。第一操作數(shù)的數(shù)據(jù)元的第二子集和第二操作數(shù)的緊縮數(shù)據(jù)元的第二子集均與第二通道對應(yīng)。響應(yīng)于指令存儲結(jié)果,包括(1)在第一通道中,來自第一操作數(shù)的第一子集的僅最低位數(shù)據(jù)元與對應(yīng)的來自第二操作數(shù)的第一子集的最低位數(shù)據(jù)元的交織;以及(2)在第二通道中,來自第一操作數(shù)的第二子集的僅最高位數(shù)據(jù)元與對應(yīng)的來自第二操作數(shù)的第二子集的最高位數(shù)據(jù)元交織。
文檔編號G06F9/30GK102473093SQ201080029694
公開日2012年5月23日 申請日期2010年6月29日 優(yōu)先權(quán)日2009年6月30日
發(fā)明者哈吉爾 A., 奧倫斯坦 D. 申請人:英特爾公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
屏南县| 界首市| 崇信县| 乌海市| 洪雅县| 扶余县| 门源| 定日县| 凤翔县| 克什克腾旗| 芦溪县| 黎平县| 稷山县| 宾川县| 固始县| 林周县| 嘉祥县| 子洲县| 镇江市| 上思县| 和顺县| 波密县| 资源县| 司法| 江门市| 安乡县| 靖江市| 灵丘县| 平阴县| 高阳县| 延津县| 宁明县| 三穗县| 昌江| 呼伦贝尔市| 朝阳区| 化州市| 株洲市| 辽源市| 阿坝县| 隆德县|