TW452735B - System and method for performing a shuffle instruction - Google Patents

System and method for performing a shuffle instruction Download PDF

Info

Publication number
TW452735B
TW452735B TW088105136A TW88105136A TW452735B TW 452735 B TW452735 B TW 452735B TW 088105136 A TW088105136 A TW 088105136A TW 88105136 A TW88105136 A TW 88105136A TW 452735 B TW452735 B TW 452735B
Authority
TW
Taiwan
Prior art keywords
data
operand
packet
packet data
destination
Prior art date
Application number
TW088105136A
Other languages
English (en)
Inventor
Patrice Roussel
Srinivas Chennupaty
Mike Cranford
Mohammad Abdallah
Jim Coke
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Application granted granted Critical
Publication of TW452735B publication Critical patent/TW452735B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • G06F15/7885Runtime interface, e.g. data exchange, runtime control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30025Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Executing Machine-Instructions (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

發明範圍 一般而 據混洗作 發明背景 言本發明屬於電腦系統方面,特別是有關—種根 用以執行多維度計算的裝置與方法。 ^改進多媒體應用程式與其他具有類似特徵應用程式的 f,目前已執行電腦系統上單指令、多重資料架構以 立 個指令同時對數個資料而非一個資料進行操作,尤 IMD架構能夠將很多資料包裹在一個暫存器或記體 ,址中,並在硬體上使用平行運算,即能憑藉—個指人 行多個操作’而能使效能有重大改善。 雖然,多目前使用中的應用程式能夠執行這樣的操作, 此即為著名的垂直式操作,但仍·然有很多重要的應用程式 必須在執行垂直操作之前進行資*料元素重組,才能提供應 用程式所需的效率。這些重要的應用程式例如包括矩陣的 内積與乘法運算’它們通常用於3-D圖形與訊號處理應用 程式中。 β 一個發生在暫存器或記憶體字元中重組資料元素的問題 疋’用來顯示如何重組資料的機構,典型地需要使用遮罩 或控制字元。控制字元必須包含足夠的字元以顯示必須被 移入每一目的地資料區的那—個來源資料區,例如’若一 來源運算元有8個資料區,需要三個位元用以對任一給定 資料區命名’而且目的區暫存器有四個資料區,需要丨2位 元作為控制子元之用,然而,在處理器執行當中’若沒有 1 2字凡作為控制暫存器,則不能提供完全混洗功能。
因此,需要有某種重組資料元素順序的方法,而不須提 供全數的字元給控制暫存器。 發明總結 本發明提供一種裝置與方法以利用電腦輔助措施在封包 資料上進行混洗操作,在實體模型上,為首的封包資料至 少要存取兩個資料元素,第二的封包資料也至少有兩個資 料元素須存取。在為首的封包資料中,資料元素的其中之 一被混合在目的地暫存器的下層目的區,而在第二封包資 料中’資料元素的其中之一被混合在目的地暫存器的上層 目的區= 圖式簡單說明 本發明藉由範例來說明且參考下列的敘述,以及配合相 關的圖示,可得到較佳的理解,而相關的圖示則參考下列 相似的元件如: 圖1為依照本發明具體實施例的示範性電腦系統; 圖2為依照本發明具體實施例說明移動指令的操作; 圊3為依照本發明具體實施例說明混洗指令的操作; 圖4為依照本發明具體實施例說明内增指令的操作; 圖5為依照本發明具體實施例說明混洗指令的操作; 圖6a與6b為依照本發明具體實施例說明混洗指令的操 作; ’、 圖7為一總圖,依照本發明具體實施例,說明在使用π 洗指令當中,為過濾電視廣播的訊號而使用數位遽& 情形: 器的
第7頁 527 3 r 五、發明說明(3) 圖8為一總圖,說明在動畫中描繪圖形化物件時使用混 洗指令的情形; 本發明較佳具體實施例的詳細說明 在以下的說明中,提供很多的細節可對本發明作全盤的 瞭解,雖說如此,但是對於本發明某些一般技術,即使沒 有這些細節,它仍然可以操作,在另一方面,為了不使本 失去光環,很多著名的電路、結構與技術並沒有 節中公佈。 需使用 資料運 操作允 洗成任 能與來 用’例 外存取 批整數 在此 的儲存 之’該 程式設 器可在 執行, 置實體 明提供一種重組資料元素的方法,其控制暫存器不 全數的字元,依照本發明的狀況,這是一種在封包 算兀(混洗操作)中移動資料的裝置與方法,此混洗 許從兩個來源暫存器或記憶體將某種長度的資料混 何組合,並存入目的地暫存器中。目的地暫存器可 同。混洗指令在資料重整與移動中很有 之場所的暫存器,以供純量操作額 Μ ri私 』貧科袼式之間的轉換,如從整 轉到整批浮點數,反之亦然。 ::用暫存器"常常涉及於主機板上處理器 位址’並作為辨識運首 处王§5 暫存器與主機板外部;==” 一部份’易言 計人員的觀點來看)β /而看見的Μ都有相關(從 處理器内部電氣回路沾',如,在此中所描述的暫存 例如全方位實體暫存器°分使用报多不同的技術來 暫存器,全方用暫存器更名的動態配 動癌配置實體暫存器混合等。
五、發明說明(4) — 電腦系統 圖1說明電腦系統模組1 〇 〇,其可實現本發明的原理。電 腦系統100包含處理器105、儲存裝置11〇與匯流排115 ’另 外還有一些使用者輸出/入設備,如鍵盤120與螢幕125也 都耦接至匯流排115。處理器1〇5代表任何種類的中央處理 單元,例如CISC、RISC、VLIff或混合結構。另外處理器 105亦可在一或多個晶片上執行β儲存設備11〇代表一或多 個儲存資料的機構,例如,儲存設備丨丨〇可能包括唯讀記 憶體、隨機存取記憶體、磁碟儲存媒體、光碟儲存媒體、 快閃記憶體裝置、與/或其他可讀取機器媒體。匯流排u 5 代表一或多個匯流排(如AGP、PCI、ISA、X_Bus、VESA等) 與橋接器(或稱匯流排控制器)^雖然本發明所描述的具體 實施例僅與單處理器電腦系統f關,但本發明仍然亦;^在 多處理器電腦系統申來操作《另外,雖然本發明所描述的 具體實施例僅與64位元電腦系統有關,但本發明並不局限 於64位元電腦系統。 除了上述的設備外,尚須一或多個網路系統13〇,電視 廣播訊號接收機131,傳真/數據機132,數位化單元133, 音效單元134與圖形單元135選擇性地耦接到匯流排115。· 網路1 3 0與傳真數據機1 3 2代表一或多條網路耦接線,以便 在可讀取機器媒體(載波)上傳輸資料。數位化單元丨33代 ,一或多個圓形數位化裝置(例如掃描器、相機等)。音效 單凡134代表一或多個音效輸入與/或輸出裝置(麥克風、 擴大機、磁性儲存裝置、光學儲存裝置等)。圖形單元135
五、發明說明(5) 戈ί 1 A多個產生3'D影像的裝置(如圖形卡)。 料⑶代表所必須it 資料135與軟體136,資 選取道這其中有-個常見的技術,那就是 本發明^置〇文裝額外的軟體(無圖示),它並無了解 尽發明的必要。 器二二:卜?說明處理器105包含解碼單元140、-組暫存 143並行單元1 42,以及用來執行指令的内部匯流排 勺^Λ ^其中有—個常見的技術,那就是處理器105 二罝-1夕“ 的電氣迴路部/分,它並無了解本發明的必要。解 .^ 、暫存器141與執行單元1 42透過内部匯流排143 起,解碼單元1 4是用來將由處理器1 0 5所收到的 ^三解譯成控制訊號與/或微碼進入點,執行單元142執行 ^的操作,解碼單元140可以使用任何很多不同的機制 來執仃(例如,對照表,硬體具體實施例,pu等)。然而 各種扣令的解碼是以一連串的丨f/then陳述來表示,要了 解的是指令的執行並不需要這些一連串的if/then處理程 序’反而執行該if/then處理程序的任何技術已都納入本 發明的考慮範圍内。 解踢單元1 40包含封包資料指令集1 45,用以執行封包資 料的操作,在具體實施例中,封包資料指令集丨45包含以 下的指令:移動指令150、混洗指令1 55、加法指令(如 ADDPS) 160 與乘法指令165。MOVAPS、SHUFPS 與ADDPS 指令 皆可用於整批浮點資料上,在兩組數目之間操作後的結果 73 5p 五、發明說明(6) 巧預先選定的位元數,該位元數與儲存於暫存器令預先 器的相同。诘此批人T 小或組態與結果暫存 且俨f施你丨中二^ ?的操作將一一詳述於後。在所描述的 的具趙實施例額外有包括操作於整數資 丄 : 除了整批指令外,虛捜哭]η κ π a t A v 處理器105可包括新指令與/或類似於 二相同於在現存—般目的處理器中所發現的指♦。例如, 在具體實施㈣中處王里器1〇5支援與目前處理器正在使用中 = ntel架構相容的指令集,例如,Intel penti_ π 處理器。本發明的其他具體實施例中亦包含或多或少與 相異的封包資料指令,並可利用本發明的教案。 暫存器141代表再處理器1〇5上用以儲存資訊的倉庫包 括控制/狀態訊息、整數資料、浮點資料與封包資料。藉 =本發明方面的一般技術之一可瞭解的是所描述的指令集 得以在封包資料上操作,依照本發明的情勢,用來儲存封 包資料的儲存區並不太重要,在此中使用資料處理系統這 個名稱用以稱呼任何處理資料的機器,包括關於在圖1中 所描述的電腦系統。 本發明具體實施例中所描述的處理器i 0 5,本身要在包 含四個32位元單精度浮點值的丨2 8位元封包資料運算元上 執行封包資料指令的操作’並能夠以數種不同的封包資料 格式在封包資料上操作。例如在具體實施例中封包資料可 以在二種格式的其中之一上操作:整批位元組格式(如 PADDb),整批字元格式(PADDw),或整批雙字元格式
第11頁
五、發明說明(7) (dword)。整批位元組格式包含八個獨立的8位元資料元 素;整批字元格式包含四個獨立的16位元資料元素;整批 雙字元格式包含兩個獨立的32位元資料元素。然而以下所 討論的某些指令與其中一或兩個封包資料格式有關,指令 能夠容易地應用於本發明的其他封包資料格式上。 本發明的混洗指令是很多以不同S I MD結構來操作的指令 家族一部份,’例如,圖2為依照本發明具體實施例,說 明移動指令1 50的操作,在此例中,移動指令1 (M〇VAps) 將資料位元從某個暫存器移至另一個暫存器中或從某個記 憶體位址移至其他位址,在具體實施例中,64位元代表有 四個整批字元從某記憶體位址移至其他位址或從某個暫存 器至其他暫存器。 圖3為依照本發明具體實施例,說明混洗指令丨5 5的操 作,在具體實施例中,混洗指令155 (SHUFPS)能夠從第— 運算元將很多(如四個)單浮點數(FP)的任何一個混洗至目 的地暫存器330的下層的兩個目的區;上層的兩個目的區 疋攸第一運异元320將很多(如四個)單浮點數(j?p)的任^ 一個混洗而產生的。 了 圖4為依照本發明具體實施例,說明整批垂直加法指入 1 60的操作,在一具體實施例中,整批垂直加法指令^ = 加法指令(ADDPS)160,而它就對運算元41〇與第二運算疋 420的第一資料元素來操作,尤其,第一運算元41〇的資^ 元素與第二運算元420個別的封包資料元素相加,而且用料 來產生結果430 °例如,第一運算元410的資料元素〇與第
^52 73 5
=運=元420的資料元素G相加且結果儲存於結果43〇的 中’除了執行乘法的操作夕卜,整批乘法指令的 法與整批加法指令的作法類似 混洗操作 圖5為依照本發明具體實施例,說明在兩個數目上 的技^在此應用方面,資料是以摘圓形代表行 —:二以四方形代表,在開始進行時,處理程序S5〇〇教 在此數目xo、X1、X2、X3被視為資 料元素的長度是16位元且以下列的次序健 每
I X3 I X2 I XI I χο I 然後處理程序S500執行處理過-程352〇步驟,在此 Υ〇、Π、Y2、Y3被視為資料元素儲存於封包資料物件 525 ,為目前討論的方便,每—資料元素的長度是16位元 且以下列的次序儲存於暫存器χ丨中。 I Y3 I Y2 I Y1 I Υ〇 | 然後處理程序S5 00進行處理過程S530步驟,在此混洗指 令是在暫存器X〇(資料物件515)與暫存器χι(資料物^ '曰 5 2 5 )’用以從第一資料物件5丨5混洗四個資料元素的任何 其中之一到目的地暫存器535的兩個下層區,而混洗第二 資料物件525四個資料元素的任何其中之一到目的地暫存 器535的兩個上層區,合成的資料物件535如下: 丨 ίΥ3,Υ2’Υ1,γ〇Η{Υ3,Υ2,Υ1,Υ〇}Ι{Χ3,Χ2,Χ1,χ〇}|
第13頁 叩735 五、發明說明(9) {X3, X2, XI,X0} | 因此混洗操作執行,雖然圖5的混洗操作範例中的資料 運算元有四個資料元素,本發明的原理亦可應用於至少兩 個資料元素的資料運算元中。 一個八位元中間值用來當控制字元以顯示資料元素如何 混洗,控制字元的0,1位元顯示在第一運算元中四個資料 元素的哪一個被混洗到目的地暫存器的第一或下層的資料 元素中。控制字元的2, 3位元顯示在第一運算元中四個資 料元素的哪一個被混洗到目的地暫存器的第二資料元素 中。控制字元的4, 5位元顯示在第二運算元中四個資料元 素的哪一個被混洗到目的地暫存器的第三資料元素中。控 制字元的6, 7位元顯示在第二運算元中四個資料元素的哪 一個被混洗到目的地暫存器的第四資料元素中。例如,已 知第一運算元含有四個資料元素,其次序如下: |D1C|B|A| 而且已知第二運算元含有四個資料元素,其次序如下: IHIGIF|E| 同時已知混洗控制字元1 0 0 0 1 1 1 1 ,混洗的結果如下:
IGIEIDIDI 混洗控制字元的大小可能隨著在來源資料運算元中資料 元素的數目與目的地暫存器中區域的數目而變。 圖6a為依照本發明具體實施例,說明在兩個數目上執行 混洗的操作圖,裝置6 0 0讀取第一來源封包資料運算元6 0 5 以及第二封包資料運算元610的内容,四對一的資料多工
第14頁 4 527 3 1 五、發明說明(10) 器615從資料運算元6 05, 610的其中之一將任何一個資料元 素{D,C,B,A}混洗到目的地資料物件625的下層區。四對— 的資料多工器620從資料運算元605, 610的其中之一將任何 一個資料元素{ D , C,B,A }混洗到目的地資料物件6 2 5的上層 。 圖6b為依照本發明具體實施例’說明在兩個數目上執行 混洗的操作圖,裝置630讀取第一來源封包資料運算元635 的内容’從資料運算元6 35資料元素{D,C,B,A|的任何一個 被混洗到目的地資料物件645的下兩層區。裝置630讀取第 一來源封包資料運算元640的内容,從資料運算元640資料 元素iH,G,F,E}的任何一個被混洗到目的地資料物件645的 上兩層區。此種混洗方法僅可能以8位元控制字元來執 行。 一 因此混洗指令執行,雖然圖6 a與6 a以具有兩個資料元素 的資料運算元作為說明混洗操作的範例,本發明的原理可 能亦可在超過兩個資料元素的資料運算元中執行。 本發明的混洗指令可使用於很多不同的應用方面,例 如,方塊圖7為依照本發明具體實施例,說明數位濾波器 的使用’以混洗指令來過濾電視廣播訊號。圖7顯示電視 廣播sfl號703代表正由電腦系統7〇〇的接收單元706所接收 的電視廣播,接收單元7〇6接收電視廣播訊號7〇3並將它們 轉成數位資料7 0 9 ’數位濾波單元7 1 5利用一組係數71 2對 數位資料70 9執行數位濾波器(如FIR,IIR等)功能,結果數 位率波器單元715產生代表類比電視廣播訊號過濾後的資
第15頁 52 7 3 五、發明說明(11) 料718(也稱為已過濾資料物件),在實施過濾操作當中, 執行混洗指令。過遽後的資料71 8由影像解瑪器7 21所接 收’以轉換為音頻與視頻資料724,這種由影像解碼器所 執行的技術非常的出名(參考Jack, Smith,Keith, ” NTSC/PAL 數位解碼器”,Video Demy s t i f i ed, High Text Publications, Inc,1993),此音頻與視頻資料應用範圍相 當廣(如顯示在螢幕上)。 在具體實施例上,顯示於圖1的電腦系統1〇〇是用來執行 圖7中的電腦系統700,在上述的具體實施例中,電視廣播 訊號接收機131的作用如同接收單元706且可以含括—個電 視調諧器、類比數位轉換器與DMA頻道,電視廣播訊號7〇3 由電視調諧器接收,藉由類比數位轉換器轉成數位資料, 然後健存於DMA頻道的儲存裝置 '中,由電視廣播訊號接收 機131所檢選的數位資料可以任何的格式儲存,例如,電 視廣播接收機131可將資料以描述於其中的一或多種格式 儲存於主記憶體中-儲存每一資料分量的兩個樣本,如此 可以上述的格式視為封包資料讀取進來,然後此資料可以 封包資料加以存取並複製到處理器1〇5上的暫存器。因為 該資料以顯明的格式儲存,處理器丨0 5可輕易與有效率地 執行圖5與圖6相關的混洗操作。在電視廣播訊號接機 ⑶中的接收單元m可能包含額外的軟、硬體m 體或者在處理器105中執行的軟體,例如,額外的軟體可 能儲存於儲存裝置110中,以進一步處理在執行數位率波 器功能之前的資料。
在此具體實施例中,是利用處理器i05與軟體丨36執行該 J波器功能以執行數位濾波器718,同時,執行軟體136的 j = 1 0 5是利用混洗操作來執行數位濾波器,並將以過 2資料718儲存於儲存裝置11〇中。如此,數位濾波器是 、腦系統的主機而非電視廣播訊號接收機131來執行 ' 、’’°果電視廣播说號接收機131的複雜度因而降低, ::具體實施例中,影像解碼器721可以由硬體、軟體與/ $動體的任何不同的組合來執行,然後音頻與視頻資料 可以分別被儲存、與/或顯示於顯示器125與音效單元 圖8為依照本發明具體實施例,說明以混洗操作表現動 圖形物件的一般方塊圖,在此圖中所顯示的電腦系統 〇〇包3有代表3D圖形的數位資料755,數位資料810可被 儲存於唯讀光碟或其他種類的儲存裝置中以備他用。偶而 ,換=元76 0利用3D幾何執行資料轉換,這其中包括使用 此洗扎令以處理(如縮放、旋轉等)提供動畫的3 D物件,然 後顯示產生的圖形物件830於顯示螢幕84〇上,此產生的圖 形物件亦可傳送至錄存裝置(如磁性儲存媒體,磁帶)。 在具體實施例中,顯示於圖1的電腦系統丨〇 〇是用來執行 來自圖8的30個圖形的操作,來自圖8的數位資料是儲 存於代表3D圖形儲存裝置11〇中的任何資料,同時,來自 圖8轉換單元82 0的執行是利用處理器1〇5與軟體136以變更 $用3D圖形的資料,此種資料變更的例子包括⑽轉換的執 仃’同時執行軟體136的處理器105執行此種轉換並將轉換
第17頁 fT 〇,。广 _案號 88105136 年 7月 1 日____ 五、發明說明(13) 後的資料8 3 0儲存於儲存裝置1 1 0中與/或提拱此轉換後的 資料給於圖形單元1 3 5,如此,可加快由電腦系統主機處 理器所執行的3 D處理工作,因此本發明透過可資利用的指 令集以促進混洗操作的執行。 在描述數個使用混洗操作的例子當中,要瞭解的是此發 明並不偈限於這些用途,另外,在以數個具體實施例描述 本發明當中,那些技術將可歸納得到結論,即本發明並不 偈限於所描述的具體實施例,本發明的方法與裝置可以在 .所申請專利的精神與範圍内進行修正與變更,以利施行, 故此敘述可視為取代本發明限制性的說明。 元件符號說明: 100 電 腦 系 統 105 處 理 器 110 儲 存 裝 置 115 匯 流 排 120 鍵 盤 125 螢 幕 130 網 路 131 電 視 廣 播 訊 號 接收機 132 傳 真 /數據機 133 數 位 化 單 元 134 音 效 單 元 135 圖 形 單 元 136 軟 體 140 解 碼 單 元 141 暫 存 器 142 執 行 單 元 143 内 部 匯 流 排 145 封 包 資 料 指 令 集 150 移 動 指 令 155 混 洗 指 令 160 加 法 指 令 165 乘 法 指 令 31 0 第 一- 運 算 元 320 第 二 運 算 元 410 第 運 算 元 420 第 二 運 算 元 430 結 果 600 裝 置
O:\57\57481.ptc 第18頁 2001.07. 02.018 案號88105136_f0年/月^曰 修正 五、發明說明 (14) 605 第 一 來 源 封 包 資 料 運 算 元 610 第 二 來 源 封 包 資 料 運 算 元 620 資 料 多 工 器 625 S 的 資 料 物 件 630 裝 置 635 第 來 源 封 包 資 料 運 算 元 640 第 二 來 源 封 包 資 料 運 算 元 645 g 的 資 料 物 件 700 電 腦 系 統 703 電 視 廣 播 訊 號 706 接 收 單 元 709 數 位 資 料 712 一 組 係 數 715 數 位 渡 波 單 元 718 過 濾 後 資 料 72 1 影 像 解 瑪 器 724 音 頻 與 視 頻 資料 760 轉 換 單 元 800 電 腦 系 統 810 數 位 資 料 830 圖 形 物 件 840 顯 示 螢 幕
O:\57\57481.ptc 第18a頁 2001.07. 02.019

Claims (1)

  1. 45273 5 六、申請專利範圍
    1. 一種電腦系統,包括: 一硬體單元,用以傳輪代表圖形 一顯示器; 一處理器,叙接至該硬體單元; 一儲存裝置’耦接至該處理器孟 於其中’當該處理器執行此程序時, 資料,此程序至少可讓處理器至少羊 素的第一封包資料運算元; 存取至少含有兩個資料元素之一 元; ' 存取至少 混洗第一 目的地暫存器 混洗第二 個目的地暫存 2‘如申請專 尚包含一封包 3.如申請專 尚包含一封包 4,一種電腦 一硬體單 ~~顯示器; 3有兩個資料元素的 封包資料運算元中的 的下方目的地攔Γ及 封包資料運算元中的 器的上方目的地欄。 利範圍第1項之電腦j 裝置供浮點資料包裝 利範圍第1項之電腦3 裝置,以將整數資料 系統包括: 元’用以傳輸代表圖 的資料至另一電腦或 已經儲存一常用程序 促使該處理器產生該 -取一具有兩個資料元 -個第一封包資料運算 ξ二封包資料運算元; t中一個資料元素至— ^中一個資料元素到某 統’其中該館存裝置 〔資料元素。 統’其中該儲存裝置 ^包成資料元素。 的資料至另一電腦或 45273 5 六、申請專利範圍 於其中,當處理器執行此程序時,促使該處理器產生資 料,此程序至少可讓處理器至少存取一具有至少兩個資料 元素的第一封包資料運算元;及 混洗第一封包資料運算元中的任何一個資料元素到一 個目的地暫存器的任何目的區。 5. 如申請專利範圍第4項之電腦系統,其中該儲存裝置 尚促使處理器: 存取一具有至少兩個資料元素的第二封包資料運算 元;及 混洗第二封包資料運算元中的其中任何一個資料元素 到某個目的地暫存器的任何目的攔。 6. 如申請專利範圍第4項中之電腦系統,在此中該儲存 裝置尚包含一封包裝置,將浮點資料包裝成資料元素。 7. 如申請專利範圍第4項之電腦系統,其中該儲存裝置 尚包含一封包裝置,以將整數資料包裝成資料元素。 8. 以該電腦執行之步驟的方法; 將一單一指令予以解碼; 反應將該單一指令予以解碼之步驟, 存取一至少含有兩個資料元素的第一封包資料運算 元; 存取一至少含有兩個資料元素的第二封包資料運算 元; 混洗第一封包資料運算元中的一個資料元素到一個目 的地暫存器下方目的地攔;及
    第20頁 六、申請專利範圍 混洗在該第二封包資料運算元中的一個資料元素到一 個目的地暫存器上方目的地攔。 9.如申請專利範圍第8項之方法,尚包含將浮點資料包 裝成資料元素之步驟。 1 0.如申請專利範圍第8項之方法,尚包含將整數資料包 裝成資料元素之步驟。 11. 一種包含以電腦執行下述步驟的方法: 將一單一指令予以解碼; 反應將該單一指令予以解碼之步驟,存取一至少含有 兩個資料元素的第一封包資料運算元; 混洗在該第一封包資料運算元中的任何一個資料元素 到某個目的地暫存器的任何目的地攔。 1 2.如申請專利範圍第1 1項之方法進一步所包含的步驟 有: 存取一至少含有兩個資料元素的第二封包資料運算 元; 混洗在該第二封包資料運算元中的任何一個資料元素 到某個目的地暫存器的任何目的地攔。 1 3.如申請專利範圍第1 1項之方法,尚包含將浮點資料 封包成資料元素的步驟。 1 4.如申請專利範圍第1 1項之方法,尚包含將整數資料 封包成資料元素的步驟。 15. —種包含以電腦執行之下述步驟的方法: 存取一個第一三維影像的代表性資料;
    第21頁 4 52 7 3 3 六、申請專利範圍 利用三維幾何變更資料以產生一個第二個三維影像, 該變更之步驟至少包含, 存取一個至少含有兩個資料元素的第一封包資料運算 元 存取一個至少含有兩個資料元素的第二封包資料運算 元 混洗在該第一封包資料運算元中的一個資料元素到一 個目的地暫存器的下方目的地攔; 混洗在該第二封包資料運算元中的一個資料元素到一 個目的地暫存器的上方目的地襴;及 顯示第二個三維影像。 1 6.如申請專利範圍第1 5項之方法,其中該變更步驟包 括執行一三維轉換。 1 7.如申請專利範圍第1 5項之方法,其中該變更步驟包 括將浮點資料封包成資料元素。 1 8.如申請專利範圍第1 5項中之方法,在其中的變更步 驟包括將整數資料包裝成資料元素。 19, 一種包含以電腦執行下述步驟的方法: 存取一個第一三維影像的代表性資料; 利用三維幾何變更資料以產生第二個三維影像,該變 更之步驟至少包含, 存取一個至少含有兩個資料元素的第一封包資料運算 元; 混洗在該第一封包資料運算元中的任何一個資料元素
    第22頁 4 52 73
    第23頁
TW088105136A 1998-03-31 1999-06-21 System and method for performing a shuffle instruction TW452735B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/052,996 US6041404A (en) 1998-03-31 1998-03-31 Dual function system and method for shuffling packed data elements

Publications (1)

Publication Number Publication Date
TW452735B true TW452735B (en) 2001-09-01

Family

ID=21981242

Family Applications (1)

Application Number Title Priority Date Filing Date
TW088105136A TW452735B (en) 1998-03-31 1999-06-21 System and method for performing a shuffle instruction

Country Status (6)

Country Link
US (2) US6041404A (zh)
EP (1) EP0947918A3 (zh)
CN (1) CN1158613C (zh)
BR (1) BR9901145A (zh)
SG (1) SG77228A1 (zh)
TW (1) TW452735B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI603262B (zh) * 2015-05-05 2017-10-21 英特爾股份有限公司 緊縮有限脈衝響應(fir)濾波器處理器,方法,系統及指令

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6295599B1 (en) * 1995-08-16 2001-09-25 Microunity Systems Engineering System and method for providing a wide operand architecture
US6643765B1 (en) * 1995-08-16 2003-11-04 Microunity Systems Engineering, Inc. Programmable processor with group floating point operations
US7301541B2 (en) 1995-08-16 2007-11-27 Microunity Systems Engineering, Inc. Programmable processor and method with wide operations
US5953241A (en) 1995-08-16 1999-09-14 Microunity Engeering Systems, Inc. Multiplier array processing system with enhanced utilization at lower precision for group multiply and sum instruction
US7395302B2 (en) 1998-03-31 2008-07-01 Intel Corporation Method and apparatus for performing horizontal addition and subtraction
US6041404A (en) 1998-03-31 2000-03-21 Intel Corporation Dual function system and method for shuffling packed data elements
US7392275B2 (en) * 1998-03-31 2008-06-24 Intel Corporation Method and apparatus for performing efficient transformations with horizontal addition and subtraction
US7133040B1 (en) * 1998-03-31 2006-11-07 Intel Corporation System and method for performing an insert-extract instruction
US6418529B1 (en) * 1998-03-31 2002-07-09 Intel Corporation Apparatus and method for performing intra-add operation
ATE557343T1 (de) * 1998-08-24 2012-05-15 Microunity Systems Eng Prozessor und verfahren zur durchführung eines breitschaltungsbefehls mit breitem operand
US7932911B2 (en) * 1998-08-24 2011-04-26 Microunity Systems Engineering, Inc. Processor for executing switch and translate instructions requiring wide operands
US7155601B2 (en) * 2001-02-14 2006-12-26 Intel Corporation Multi-element operand sub-portion shuffle instruction execution
US7725521B2 (en) * 2001-10-29 2010-05-25 Intel Corporation Method and apparatus for computing matrix transformations
US7685212B2 (en) * 2001-10-29 2010-03-23 Intel Corporation Fast full search motion estimation with SIMD merge instruction
US7739319B2 (en) * 2001-10-29 2010-06-15 Intel Corporation Method and apparatus for parallel table lookup using SIMD instructions
US7631025B2 (en) * 2001-10-29 2009-12-08 Intel Corporation Method and apparatus for rearranging data between multiple registers
US7818356B2 (en) * 2001-10-29 2010-10-19 Intel Corporation Bitstream buffer manipulation with a SIMD merge instruction
US20040054877A1 (en) 2001-10-29 2004-03-18 Macy William W. Method and apparatus for shuffling data
US7624138B2 (en) 2001-10-29 2009-11-24 Intel Corporation Method and apparatus for efficient integer transform
US7853778B2 (en) 2001-12-20 2010-12-14 Intel Corporation Load/move and duplicate instructions for a processor
US7047383B2 (en) * 2002-07-11 2006-05-16 Intel Corporation Byte swap operation for a 64 bit operand
WO2006048828A1 (en) 2004-11-03 2006-05-11 Koninklijke Philips Electronics N.V. Programmable data processing circuit that supports simd instruction
CN101059865B (zh) * 2006-04-18 2010-05-12 太极控股有限公司 指令摺叠处理单元及其方法以及使用该摺叠处理单元及该方法之像素处理系统
US7761694B2 (en) * 2006-06-30 2010-07-20 Intel Corporation Execution unit for performing shuffle and other operations
US8417922B2 (en) * 2006-08-02 2013-04-09 Qualcomm Incorporated Method and system to combine multiple register units within a microprocessor
US8289324B1 (en) 2007-12-17 2012-10-16 Nvidia Corporation System, method, and computer program product for spatial hierarchy traversal
US8502819B1 (en) 2007-12-17 2013-08-06 Nvidia Corporation System and method for performing ray tracing node traversal in image rendering
US8909901B2 (en) * 2007-12-28 2014-12-09 Intel Corporation Permute operations with flexible zero control
US8078836B2 (en) 2007-12-30 2011-12-13 Intel Corporation Vector shuffle instructions operating on multiple lanes each having a plurality of data elements using a common set of per-lane control bits
US8327344B2 (en) * 2008-10-14 2012-12-04 International Business Machines Corporation Array reference safety analysis in the presence of loops with conditional control flow
US9652231B2 (en) * 2008-10-14 2017-05-16 International Business Machines Corporation All-to-all permutation of vector elements based on a permutation pattern encoded in mantissa and exponent bits in a floating-point SIMD architecture
US8423983B2 (en) * 2008-10-14 2013-04-16 International Business Machines Corporation Generating and executing programs for a floating point single instruction multiple data instruction set architecture
US9086872B2 (en) 2009-06-30 2015-07-21 Intel Corporation Unpacking packed data in multiple lanes
US8564589B1 (en) 2010-05-17 2013-10-22 Nvidia Corporation System and method for accelerated ray-box intersection testing
US8555036B1 (en) 2010-05-17 2013-10-08 Nvidia Corporation System and method for performing predicated selection of an output register
CN102109978A (zh) * 2011-02-28 2011-06-29 孙瑞琛 一种数据的重排方法及重排装置
US9436469B2 (en) 2011-12-15 2016-09-06 Intel Corporation Methods to optimize a program loop via vector instructions using a shuffle table and a mask store table
WO2013095554A1 (en) 2011-12-22 2013-06-27 Intel Corporation Processors, methods, systems, and instructions to generate sequences of consecutive integers in numerical order
US10223112B2 (en) 2011-12-22 2019-03-05 Intel Corporation Processors, methods, systems, and instructions to generate sequences of integers in which integers in consecutive positions differ by a constant integer stride and where a smallest integer is offset from zero by an integer offset
CN104011644B (zh) 2011-12-22 2017-12-08 英特尔公司 用于产生按照数值顺序的相差恒定跨度的整数的序列的处理器、方法、系统和指令
US9658850B2 (en) 2011-12-23 2017-05-23 Intel Corporation Apparatus and method of improved permute instructions
WO2013095613A2 (en) 2011-12-23 2013-06-27 Intel Corporation Apparatus and method of mask permute instructions
US9946540B2 (en) 2011-12-23 2018-04-17 Intel Corporation Apparatus and method of improved permute instructions with multiple granularities
WO2013095630A1 (en) 2011-12-23 2013-06-27 Intel Corporation Apparatus and method of improved extract instructions background
CN107193537B (zh) 2011-12-23 2020-12-11 英特尔公司 经改进的插入指令的装置和方法
US9395988B2 (en) 2013-03-08 2016-07-19 Samsung Electronics Co., Ltd. Micro-ops including packed source and destination fields
US9766888B2 (en) 2014-03-28 2017-09-19 Intel Corporation Processor instruction to store indexes of source data elements in positions representing a sorted order of the source data elements
US9785565B2 (en) 2014-06-30 2017-10-10 Microunity Systems Engineering, Inc. System and methods for expandably wide processor instructions
EP3001307B1 (en) 2014-09-25 2019-11-13 Intel Corporation Bit shuffle processors, methods, systems, and instructions
CN105511838B (zh) * 2014-09-29 2018-06-29 上海兆芯集成电路有限公司 处理器及其执行方法
US10503502B2 (en) 2015-09-25 2019-12-10 Intel Corporation Data element rearrangement, processors, methods, systems, and instructions
US10678545B2 (en) * 2016-07-07 2020-06-09 Texas Instruments Incorporated Data processing apparatus having streaming engine with read and read/advance operand coding
US9959247B1 (en) 2017-02-17 2018-05-01 Google Llc Permuting in a matrix-vector processor
CN113190791A (zh) 2018-08-06 2021-07-30 华为技术有限公司 矩阵的处理方法、装置及逻辑电路

Family Cites Families (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3711692A (en) 1971-03-15 1973-01-16 Goodyear Aerospace Corp Determination of number of ones in a data field by addition
US3723715A (en) 1971-08-25 1973-03-27 Ibm Fast modulo threshold operator binary adder for multi-number additions
US4139899A (en) 1976-10-18 1979-02-13 Burroughs Corporation Shift network having a mask generator and a rotator
US4161784A (en) 1978-01-05 1979-07-17 Honeywell Information Systems, Inc. Microprogrammable floating point arithmetic unit capable of performing arithmetic operations on long and short operands
US4418383A (en) 1980-06-30 1983-11-29 International Business Machines Corporation Data flow component for processor and microprocessor systems
US4393468A (en) 1981-03-26 1983-07-12 Advanced Micro Devices, Inc. Bit slice microprogrammable processor for signal processing applications
US4498177A (en) 1982-08-30 1985-02-05 Sperry Corporation M Out of N code checker circuit
US4707800A (en) 1985-03-04 1987-11-17 Raytheon Company Adder/substractor for variable length numbers
JPS6297060A (ja) 1985-10-23 1987-05-06 Mitsubishi Electric Corp デイジタルシグナルプロセツサ
JP2613223B2 (ja) * 1987-09-10 1997-05-21 株式会社日立製作所 演算装置
US4989168A (en) 1987-11-30 1991-01-29 Fujitsu Limited Multiplying unit in a computer system, capable of population counting
US5019968A (en) * 1988-03-29 1991-05-28 Yulan Wang Three-dimensional vector processor
US4903228A (en) 1988-11-09 1990-02-20 International Business Machines Corporation Single cycle merge/logic unit
KR920007505B1 (ko) 1989-02-02 1992-09-04 정호선 신경회로망을 이용한 곱셈기
US5081698A (en) 1989-02-14 1992-01-14 Intel Corporation Method and apparatus for graphics display data manipulation
US5497497A (en) * 1989-11-03 1996-03-05 Compaq Computer Corp. Method and apparatus for resetting multiple processors using a common ROM
US5168571A (en) 1990-01-24 1992-12-01 International Business Machines Corporation System for aligning bytes of variable multi-bytes length operand based on alu byte length and a number of unprocessed byte data
US5268995A (en) 1990-11-21 1993-12-07 Motorola, Inc. Method for executing graphics Z-compare and pixel merge instructions in a data processor
US5680161A (en) 1991-04-03 1997-10-21 Radius Inc. Method and apparatus for high speed graphics data compression
US5187679A (en) 1991-06-05 1993-02-16 International Business Machines Corporation Generalized 7/3 counters
US5321810A (en) * 1991-08-21 1994-06-14 Digital Equipment Corporation Address method for computer graphics system
US5423010A (en) 1992-01-24 1995-06-06 C-Cube Microsystems Structure and method for packing and unpacking a stream of N-bit data to and from a stream of N-bit data words
US5426783A (en) 1992-11-02 1995-06-20 Amdahl Corporation System for processing eight bytes or less by the move, pack and unpack instruction of the ESA/390 instruction set
US5408670A (en) 1992-12-18 1995-04-18 Xerox Corporation Performing arithmetic in parallel on composite operands with packed multi-bit components
US5465374A (en) 1993-01-12 1995-11-07 International Business Machines Corporation Processor for processing data string by byte-by-byte
US5625374A (en) 1993-09-07 1997-04-29 Apple Computer, Inc. Method for parallel interpolation of images
US5390135A (en) 1993-11-29 1995-02-14 Hewlett-Packard Parallel shift and add circuit and method
US5487159A (en) * 1993-12-23 1996-01-23 Unisys Corporation System for processing shift, mask, and merge operations in one instruction
US5781457A (en) 1994-03-08 1998-07-14 Exponential Technology, Inc. Merge/mask, rotate/shift, and boolean operations from two instruction sets executed in a vectored mux on a dual-ALU
US5931945A (en) * 1994-04-29 1999-08-03 Sun Microsystems, Inc. Graphic system for masking multiple non-contiguous bytes having decode logic to selectively activate each of the control lines based on the mask register bits
US5594437A (en) 1994-08-01 1997-01-14 Motorola, Inc. Circuit and method of unpacking a serial bitstream
US5579253A (en) * 1994-09-02 1996-11-26 Lee; Ruby B. Computer multiply instruction with a subresult selection option
WO1996017291A1 (en) 1994-12-02 1996-06-06 Intel Corporation Microprocessor with packing operation of composite operands
US6381690B1 (en) * 1995-08-01 2002-04-30 Hewlett-Packard Company Processor for performing subword permutations and combinations
US5742840A (en) * 1995-08-16 1998-04-21 Microunity Systems Engineering, Inc. General purpose, multiple precision parallel operation, programmable media processor
AU6905496A (en) * 1995-09-01 1997-03-27 Philips Electronics North America Corporation Method and apparatus for custom operations of a processor
US5819117A (en) * 1995-10-10 1998-10-06 Microunity Systems Engineering, Inc. Method and system for facilitating byte ordering interfacing of a computer system
US6009191A (en) * 1996-02-15 1999-12-28 Intel Corporation Computer implemented method for compressing 48-bit pixels to 16-bit pixels
US6058465A (en) * 1996-08-19 2000-05-02 Nguyen; Le Trong Single-instruction-multiple-data processing in a multimedia signal processor
GB2317467B (en) * 1996-09-23 2000-11-01 Advanced Risc Mach Ltd Input operand control in data processing systems
US5909572A (en) * 1996-12-02 1999-06-01 Compaq Computer Corp. System and method for conditionally moving an operand from a source register to a destination register
GB2326253A (en) * 1997-06-10 1998-12-16 Advanced Risc Mach Ltd Coprocessor data access control
US5933650A (en) * 1997-10-09 1999-08-03 Mips Technologies, Inc. Alignment and ordering of vector elements for single instruction multiple data processing
US6223277B1 (en) * 1997-11-21 2001-04-24 Texas Instruments Incorporated Data processing circuit with packed data structure capability
US6041404A (en) 1998-03-31 2000-03-21 Intel Corporation Dual function system and method for shuffling packed data elements
US6115812A (en) 1998-04-01 2000-09-05 Intel Corporation Method and apparatus for efficient vertical SIMD computations
US6243808B1 (en) 1999-03-08 2001-06-05 Chameleon Systems, Inc. Digital data bit order conversion using universal switch matrix comprising rows of bit swapping selector groups

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI603262B (zh) * 2015-05-05 2017-10-21 英特爾股份有限公司 緊縮有限脈衝響應(fir)濾波器處理器,方法,系統及指令
US9898286B2 (en) 2015-05-05 2018-02-20 Intel Corporation Packed finite impulse response (FIR) filter processors, methods, systems, and instructions

Also Published As

Publication number Publication date
CN1158613C (zh) 2004-07-21
EP0947918A3 (en) 2000-04-26
SG77228A1 (en) 2000-12-19
US6041404A (en) 2000-03-21
EP0947918A2 (en) 1999-10-06
USRE45458E1 (en) 2015-04-07
BR9901145A (pt) 1999-12-21
CN1234560A (zh) 1999-11-10

Similar Documents

Publication Publication Date Title
TW452735B (en) System and method for performing a shuffle instruction
US7155601B2 (en) Multi-element operand sub-portion shuffle instruction execution
US5677862A (en) Method for multiplying packed data
US5666298A (en) Method for performing shift operations on packed data
US5881275A (en) Method for unpacking a plurality of packed data into a result packed data
US20180113712A1 (en) In-lane vector shuffle instructions
US6211892B1 (en) System and method for performing an intra-add operation
US5819101A (en) Method for packing a plurality of packed data elements in response to a pack instruction
US7133040B1 (en) System and method for performing an insert-extract instruction
WO1996017292A1 (en) Microprocessor with compare operation of composite operands
US6307553B1 (en) System and method for performing a MOVHPS-MOVLPS instruction
TW200306494A (en) Data processing system
JPH05258052A (ja) 2次元データ回転レジスタ回路
JPH04235592A (ja) 表示制御装置

Legal Events

Date Code Title Description
GD4A Issue of patent certificate for granted invention patent
MK4A Expiration of patent term of an invention patent