TW309605B - - Google Patents

Download PDF

Info

Publication number
TW309605B
TW309605B TW085100352A TW85100352A TW309605B TW 309605 B TW309605 B TW 309605B TW 085100352 A TW085100352 A TW 085100352A TW 85100352 A TW85100352 A TW 85100352A TW 309605 B TW309605 B TW 309605B
Authority
TW
Taiwan
Prior art keywords
data
data element
bit
bits
compressed
Prior art date
Application number
TW085100352A
Other languages
English (en)
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 TW309605B publication Critical patent/TW309605B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/53Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
    • 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/3001Arithmetic instructions
    • G06F9/30014Arithmetic instructions with variable precision
    • 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/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/3808Details concerning the type of numbers or the way they are handled
    • G06F2207/3828Multigauge devices, i.e. capable of handling packed numbers without unpacking them
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49905Exception handling
    • G06F7/4991Overflow or underflow
    • G06F7/49921Saturation, i.e. clipping the result to a minimum or maximum value

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Executing Machine-Instructions (AREA)
  • Image Processing (AREA)
  • Multi Processors (AREA)

Description

309605 A 7 B7 經濟部中央標準局員工消费合作社印裝 五、發明説明(1 )i明背景 I明領域 本發明包含一種利用單—控制信號操作多個资料元而執 行算術運算之裝置及方法。本發明可對壓縮資料(packed data)類型執行乘法運算。1相關技術説明 目前大多數的個人電腦系統係以一個指令產生一個結果 之方式作業°係以增加指令執行速度及處理器指令複雜度 之方式獲致效能的提昇,·這種方式稱爲複雜指令集電腦 (Complex Instruction Set Computer ;簡稱 CISC)。諸如 Intel 公司(Santa Clara, California)供應的 Intel 80286™微處理器 等這類處理器屬於CISC類的處理器。 目前已對習用電腦系統的架構執行最佳化,以便利用 CISC的觀念。此種系統通常有寬度爲三十二位元的資料匯 流排。然而,目標針對電腦支援協力作業(computer supported cooperation :簡稱CSC,亦即整合電傳會議及混 合式媒鳢資料操作)、二維/三維圖形、影像處理、視訊愿 縮/解歷·縮、圖型辨識演算法、及音訊操作等應用都提高 了對更佳效能的需求。但增加執行速度及指令複雜度只是 一種解決方案》 上述這些應用的一個共同點是:這些應用經常操作大量 的資料,但只有少數的位元是重j的。亦即,資料的有關 位元是以遠小於資料匯流排寬度的一些位元來代表。例如 ,處理器針對八位元及十六位元之資料執行許多運算(例 ~ Λ · -------Y —裝-- {請先閲讀背面之注意事項再填寫本頁) 訂 線 本紙伕尺度適用中國國家標準(CNS ) Α4規格(210Χ 297公慶) 3〇S6〇5
五、發明説明(2 經濟部中央標準局員工消費合作社印製 如I像中(像素彩色成分),但處理器設有寬度大許多的 資料匿流排及暫存器。因此,對於-設有三十二位元資料 匯流排及暫存器且執行前述一種演算法之處理器而言,該 處理器可能浪费掉其資料處理、傳送、及锻存容量的百分 之七十五,因爲只有前面八個位元的資料是重要的。 因此,我們需要一種可提高效能的處理器,而其提高效 能的方式爲更有效率地利用表示待操作資料所需之位元數 與孩處理器的實際資料傳送及儲存容量間之差異。 發明概诚 本發明説明了—種具有更佳資料比較運算之微處理器( 或處理器)。 該處理器包含一被耦合而接收一控制信號之解碼器。此 控制信號具有一第一來源位址、一第二來源位址、一目的 地位址、及一運算欄位。該第—來源位址對應於一第一位 置。該第二來源位址對應於—第二位置。該目的地位址對 應於一第三位置,該運算欄位指示將要執行某一類型的壓 縮資料乘法運算《該處理器又包含一被耦合到該解碼器 電路》該電路係用於將一儲存在該第—位置之第一壓缩 料乘以_儲存在該第二位置之第二壓縮資料。該電路又 用於將一對應之運算結果壓縮資料傳送到該第三位置。 雖然説明及圖示中已包含了許多細節,但是係由申請4 利範圍界定本發明只有這些申一詩專利範圍中所述之限柰 可適用於本發明3 之 資 係 {請先閱讀背面之注意事項再填寫本頁) .装.
、1T -5- 本紙乐尺度適州中國國家標準(CNS ) Α4規格(210x 297公釐) 309605 Α7 Β7 五、發明説明( 超濟部中央標準局員工消费合作社印製 附圈簡述 本文係以圖示之實例説明本發明,但本發明並不受限於 囷示之實例。囷示之相同的代號指示類似的元件》 囷1示出一使用本發明的方法及裝置之啻腦系統實施例 0 圖2示出本發明之一處理器實施例。 圖3是處理器用來操作暫存器擋中資料之一般步驟流程 圖》 囷4a示出記憶雄資料類型。 囷4b、圖4c、及圖4d示出暫存器内之整數資料表示法。 圖5a示出歷·縮資料類型。 圖5b、圖5c、及圈5d示出暫存器内之壓縮資料表示法。 圖6a示出電腦系統用來指示壓縮資料的使用之一控制信 號格式。 圖6b示出電腦系統用來指示壓縮資料的使用之第二控制 信號格式。 圖7示出處理器於對壓縮資料執行一乘法運算時所遵循 之一方法實施例。 圖8示出一可操作壓縮資料的個別資料元之電路。 較佳實施例之説t 本發明一實施例之大要 本實施例説明了 一種可對多個^料元執行乘法運算之處 理器。在下列的説明中,述及諸如電路等許多特定的細節 ,以便本發明得以徹底被了解。在其他的情形中,則並未 -6 - 本紙張尺度適用中國國家標準(CNS ) A4規格(210X 297公釐) (請先5?讀背面之注意事項再填寫本頁) -裝 訂 線 A7 B7 五、發明说明(4) 詳述習知的結構及技術,以免不必要地模糊了本發明。 定義 爲了提供一個了解本發明各實施例的基礎,我們提供了 下列的定義。 位元X到位元Y: 定義二進位數的一個次攔位(subfield) »例如, 位元組00111〇1〇2 (係以二爲基.示出)的第六位 元到第零位元代表次欄位11101〇2。在—個二 進位數之後的"2”指示其基爲2。因此,1QQ() 等於81〇,而F16等於1510〇 是一暫存器。暫存器是可儲存及提供資料的 任何裝置。將於下文中説明暫存器的其他功
Rx: 能 暫存器並不必然是處理器構裝的 部分 {請先閱讀背面之注意事項再填寫本頁) -so DEST: SRC1: SRC2: 是一資料位址 是一資料位址 是一資料位址 經濟部中央標準局員工消費合作社印製
Result: 是將要儲存在DEST所定址的暫·存器之資科 Sourcel:是错存在811(:1所定址的暫存器之資料。 S〇Urce2:是儲存在SRC2所定址的暫存器之資料。 請參閲圖 電腦系統 個可執行本發f的一實施例之電嗎系 係在圖中示爲電腦系統(100)。f腦系統(100)包含: 排(101)或其他通訊硬體及軟體,用以傳送資訊;以 匯凌 及〜 本錄尺度顧f ϋ ϋ (2丨0X297公釐)
309605 A7 B7 經濟部中夬橾準局員工消費合作社印製 五、發明説明(5) 與匯流排(101)耦合之處理器(109),用以處理資訊,電腦 系統(100)又包含一耦合到匯流排(101)之随機存取記憶禮 (RAM)或其他動態儲存裝置(稱爲主記憶禮.(104)),用以傲 存資訊及將要由處理器(109)執行的指令》主記憶鳢(104) 亦可在處理器(109)執行指令時用來儲存暫時性變數及立 即性資訊。電腦系統(100)亦包含一耦合到匯流排(1C)1)之 唯讀記憶體(ROM)(106)及(或)其他靜態儲存裝置,用以儲 存處理器(109)之靜態資訊及指令。資料儲存裝置(107)係 耦合到匯流排(101),以便儲存資訊及指令》 此外,可將諸如磁碟或光碟等資料儲存裝置(107)及其對 應的磁(光)碟機耦合到電腦系統(100)。亦可經由一匯流排 (101)將電腦系統(100)耦合到一顯示裝置(121),以便對一 電腦使用者顯示資訊。顯示裝置(121)可包含一圖框緩衝 器、若干專用的圖形產生裝置、一陰極射線管(CRT)、及 或)一平板顯示器。包含文數字鍵及其他鍵之一文數字輸 入裝置(122)通常係耦合到匯流排(101),以便將資訊及命 令選擇傳送到處理器(109)。其他類型的使用者輸入裝置 是諸如滑鼠、軌跡球、點觸筆、觸摸式螢幕、或游檫方向 鍵等游標控制器(123),用以將方向資訊及命令選擇傳送 到處理器(109),並控制顯示裝置(121)上的游標移動。此 輸入裝置通常沿著兩個軸(亦即一第一軸(例如X)及一第二 軸(例如y))有兩個自由度,因而^裝置可指定一平面上的 位置。然而,本發明並不眼於只有兩個自由度的輸入裝置 -8 · 本紙張尺度適用中國國家標準(CNS ) A4規格(2丨0X29?公釐) (請先閱請背面之注意事項再填寫本f ) •裝. 訂 A7 B7 經濟部中央標準局員工消f合作社印製 五、發明説明(6 ) 可被耦合到E流排(101)的另一裝置是_列印裝置(124) ,該列印裝置(m)可用來在一紙、膠片、或類似型態的 媒禮上列印指令、資料、或其他資訊。此外,可將電腦系 統(100)耦合到一諸如音訊數位轉換器等聲音錄製及/或播 放裝置(125),該音訊數位轉換器係耦合到一麥克風,以 便記錄資訊。纟外’料置可包含一麵纟到-數位至類比 (D/A)轉換器之喇叭,以便播放經過數位化之聲音。 此外,電腦系統(100)可以是電腦網路(例如一區域網路) 中的一終端機。電腦系統(100)此時將是其中包括若干網 路裝置的電腦系統中之-電腦子系統。電腦系統(1〇〇)亦 可包含視訊數位化裝置(126) 〇視訊數位化裝置(126)可用 來捕獲影像,且該影像可被傳送到電腦網路上的其他終端 機。 電腦系統(100)適用於支援電腦支援式協力作業(c〇mputer m supported cooperation ;簡稱CSC,亦即整合電傳會議及混 合式媒體資料操作)、二維/三維圖形、影像處理、視訊壓 縮/解壓縮、圖型辨識演算法、及音訊操作等應用。 處理器 圖2示出處理器(1〇9)之詳圖。可使用諸如BiCM〇s、 CMOS、及NM0S等多種製程技術在一個或多個基底上實 施處理器(109)。 處理器(109)包含.一解碼器(2〇1),用以對處理器(1〇9)所 用的控制彳s號及資料解碼《然後可經由内部匯流排(2〇5) 將資料儲存在暫存器檔(2〇4)中。爲了澄清本説明,一實 -9 本紙伕尺度適用中國國家標準(CNS ) A4規格(210X297公缝 (請先閱讀背面之注意事項再填寫本頁) -装· -4 309605 A 7 B7' 五、發明説明( 經濟部中央橾準局員工消費合作社印製 施例的各暫存器並不限 ^ ^ 硬符疋的電路。一實施例 要能夠错存及提供資料,並執行本發明所述之狀4暫存器(208)、或指令指標暫存 器(211)巾。可將諸如浮时存器等其他的暫存器包含在 暫存器檔(204)中。在—誊& Λ丨士 „ ^ 在實施例中,各整數暫存器(2〇1)儲 存三十二位元的整數資料。在一實施例中,諸暫存器_) 包含八個暫存器’亦gpR〇(212aWR7(212h)。該等暫存器 (2〇9)中每暫存器之長度都是六十四位元。^⑴叫、& (212b)、及Rs (212c)是該等暫存器(2〇9)中個別暫存器之例 子。可將該等暫存器(209)中一暫存器之三十二個位元移 到該等整數暫存器(201)中之一整數暫存器。同樣地,可 將一整數暫存器中之一數値移到該等暫存器(2〇9)中一暫 存器之三十二個位元。 · 各狀態暫存器(208)指示處理器(1〇9)之狀態。指令指標 暫存器(2 Π )餘存待執行的次一指令之位址。各整數暫存 器(201)、暫存器(209)、狀態暫存器(208) '及指令指標暫 存器(2 11)都係連接到内部匯流排(205”任何額外的暫存 器也係連接到内部匯流排(205)。在另一實施例中,某些這類的暫存器可用於兩種不同的 資料類型。例如.,.可合併該等舍存器(209)及整數暫存器 (201),此時每一暫存器都可儲存整數資料或壓縮資料。在另一實施例中,該等暫存器(209)可用來作爲浮點暫存 -10- 本纸張尺度適用中國國家標準(CNS ) Α4規格(210Χ297公釐) * - 1 - · 叫丨裝-- (請先閱讀背面之注意事項再填寫本f) 訂 線 A7 B7 經濟部中央樣準局負工消费合作社印製 五、發明説明(8) 器》在此實施例中,可將壓縮資料儲存在該等暫存器(2〇9) 或浮點暫存器中。在一實施例中,這些合併的暫存器之長 度是穴十四位元,且係以六十四位元表示整數。在此實施 例中’於儲存壓縮資料及整數資料時,各暫存器並不需要 區別兩種資料類型。 功能單元(203)執行由處理器(1〇9)進行的運算。此類運 算可包括移位、加法、減法、及乘法等。功能單元(2〇3) 係連接到内部匯流排(205) »快取記憶體(2〇6)是處理器(1 〇9) 的一個或有元件,且可用來緩衝儲存來自諸如主記憶體 (104)之資料及(或)控制信號。快取記憶體(2〇6)係連接到解 碼器(202),快取記憶體(206)且係被連接而接收控制信號 (207)。 囷3示出處理器(109)之一般運算。亦即,圖3示出處理器 (109)於對壓縮資料執行一運算、對非壓縮資科執行一運 算、或執行某些其他運算時所遵循的一些步驟。例如,此· 類運算包括一載入作業,用以將來自快取記憶趙(2〇6)、 主記憶體(1 〇4)、唯讀記憶體(R〇M)( 106)、或資料儲存裝置 (107)之資料載入暫存器檔(2〇4)中之一暫存器。在本發明 的一實施例中,處理器(109)支援lntel 8〇486TM所支援的大 部分指令,Intel 8〇486顶係由Intel公司(Sanu clara, California)所供應》在本發明的另一實施例中,處理器 (1〇9)支援Intel 8〇4^™所支援的今有運算,^^如486^^ 由Intel公司(Santa Clara, California)所供應》在本發明的另 一實施例中’處理器(1〇9)支援pentium™處理器、intei -11 - 本紙乐尺度適用中國國家標準(C\s ) A4規格(210X29?公t ) (請先閲讀背面之注意事項再填窍本頁) • .H - - - 1 In11 m »li I -I I ( m · 政------IT-----0---------------- 經濟部中央搮隼局貝工消费合作社印裝 A7 B7五、發明说明(9) 80486™處理器、80386™處理器、1nte〗8〇286™處理器、及 Intel 8086™處理器所支援的所有運算’上列這些處理器都 是由Intel公司(Santa Clara,California)所供應。在本發明的 另一實施例中,處理器(109)支援IA™-Intel架構中所支援 的所有運算’該IA™-Intel架構係由Intel公司(Santa Clara, California)所定義(請參閱由 Intel公司(Santa Clara,California) 所供應的"Microprocessors, Intel Data Books volume 1 and volume 2, 1992 and 1993")。一般而言,處理器(109)可支援 Pentium™處理器的現有指令集,但亦可修改處理器(1〇9) 而容納一些未來的指令、及本發明所述的一些指令。重要 的是,除了本發明所述之運算以外,通用型處理器(1〇9) 可支援先前使用的運算。 在步驟(301)中,解碼器(202)自快取記憶體(206)或匯流 排(101)接收一控制信號(207)。解碼器(202)對控制信號解 m 碼,以便決定待執行的運算》 在步驟(302)中,解碼器(202)存取暫存器檔(204)、或記 憶體中之一位置。依照控制信號(207)中指定的暫存器位 址,而存取暫存器檔(204)中之各暫存器、或記憶體中之 各記憶體位置。例如,以對壓縮資料之運算而言,控制信 號(207)可包含SRC1、SRC2、及DEST暫存器位址。SRC1是 第一來源暫存器之位址。SRC2是第二來源暫存器之位址 。在某些情形中,SRC2位址是二'選項,因爲並非所有的 運算都需要兩個來源位址。如果某一運算不需要SRC2位 址,則只使用SRC1位址。DEST是儲存運算結果資料之目 (請先閱讀背面之注意事項再填寫本頁) .裝. 訂 -12- 本紙依尺度適用中國國家標準(CNS ) A4規格(210X 297公釐) 經濟部中央標準局員工消費合作社印製 B7五、發明説明(1C3) 的地暫存器位址。在一實施例中,SRC 1及SRC2也被用來 作爲DEST,後文中將參照圖6a及6b詳述SRC 1、SRC2、及 DEST。各對應暫存器中儲存的資料分另4被稱爲Source 1、 Source2、及Result。每一個此類資料的長度都是六十四位 元0 在本發明的另一實施例中,全部或部分的SRC 1、SRC2 、及DEST可定義處理器(109)的可定址記憶饉空間中之一 記憶體位置。例如,SRC 1可識別主記憶體(104)中之一記 憶體位置,而SRC2識別整數暫存器(201)中之第一暫存器 ,DEST識別諸暫存器(209)中之第二暫存器。爲了簡化本 發明之説明,我們將討論對暫存器檔(204)的存取,然而 ,亦可代以對記憶體的存取。 在本發明的另一實施例中,運算碼只包含兩個位址SRC 1 及SRC2。在此實施例中,係將運算結果.儲存在SRC1或 SRC2暫存器中。亦即,SRC1 (或SRC2)是被用來作爲DEST 。此種定址方式與只有兩個位址的習用CISC指令相容。此 種方式減少了解碼器(202)中之複雜度。請注意,在此實 施例中,如果並未破壞掉SRC 1暫存器中所含的資料,則 在執行運算之前必須首先將該資料拷貝到另一暫存器。此 種資料拷貝需要一個額外的指令。爲了簡化本發明之説明 ,後文中將説明三個位址的定址架構(亦即SRC 1、SRC2、 及DEST)。然而,我們應記住,i 一實施例中,控制信號 可以只包含SRC1及SRC2,且SRC1 (或SRC2)識別目的地暫 存器。 (請先閱讀背面之注意事項再填寫本頁) 裝· 「丨線 -13- 本紙乐尺度適用中國國家標準(CNS ) A4規格(210X 297公釐) 300605 Α7 _ Β7 經濟部中央標準局員工消費合作社印製 五、發明説明(11) 當控制信號要求一運算時,在步骤(3 〇3)中將起動功能單 元(203) ’以便對自暫存器檔(2〇4)取得的資料執行此運算 。一旦已在功能單元(203)中執行了此運算之後,則根據 控制信號(207)之要求而在步驟(304)中將運算結果儲存回 暫存器檔(204)。 資料及儲存格式 圖4a示出可用於囷!所示電腦系統的某些資料格式。這 些資料格式是定點格式。處理器(1〇9)可操作達些資料格 式。多媒體演算法經常使用這些資料格式。—個位元組 (401)包含八位元的資訊。一個字組(4〇2)包含十六位元的 資訊,或者兩個位元組的資訊。一個雙字組(4〇3)包含三 十二位兀的資訊,或者四個位元组的資訊。因此,處理器 (109)執行可對任何一種記憶體資料格式運算的控制信號 〇 在下列的説明中,將述及位元、位元組、字組、及雙字 組次欄位。例如,位元組〇〇111〇1〇2(以2爲基示出)的第六 位元到第零位元代表次欄位丨〖丨〇丨〇2 3 圖4b到圖4d示出本發明一實施例中所用的暫存器内表示 法。例如,無正負號位元組之暫存器内表示法(41〇)可代 表諸整數暫存器(201)中一暫存器所儲存的資料。在—實 施例中,該等整數暫存器(201)中—暫存器之長度爲六十 四位兀。在另一實施例中,該夸-整數暫存器中一暫 存器(長度爲二十—位凡。爲了簡化説明,下文中將説明 六十四位元的整數暫存器,然而,亦可使用三十二位元的
(請先閏請背面之注意wi,項再填寫本頁) Τ 裝. 訂 經濟部中央樣準局貝工消費合作社印製 五、發明説明(12’ 整數暫存器。 無^號位元组之暫存器内表*法(梢)示出處理 將—料在整㈣存 j 位元(亦即第七位元到第零位元)係爲資:= :01):專用。這些位元係示爲{b}e爲了正確代表此位元 ••且,其餘56個位元必較零n有正負號位元組之暫 :器内表示法(4U)而言’整數暫存器(2〇1)將資料儲存在 則七個位元,亦即第六位元到第零位元係爲資料。第七位 =代表正負號位元,而以〇}示出。其餘第六十三位元到 第八位元則繼續爲該位元组之正負號。 無正負號子组之暫存器内表示法(4 i 2)係儲存在諸整數暫 存备(201)的一暫存器中。第十五位元到第零位元包含一 供正負號字组(4〇2)。這些位元係示爲。爲了正確表示 此子組’其餘第六十三位元到第十六位元必須是零。如有
«V 正負號字組之暫存器内表示法(413)所示,一有正負號字 組(402)係儲存在第十四位元到第零位元。其餘第六十三 位元到第十五位元是正負號欄位。 可儲存一雙字組(403)成爲一無正負號雙字組之暫存器内 表示法(4 14)或一有正負號雙字組之暫存器内表示法(415) 。一無正負號雙字組之暫存器内表示法(4 14)的第三十一 位元到第零位元係爲資料β爲了正確表示此無正負號之雙 字組,其餘第六十三位元到第三二位元必須是零。整數 暫存器(201)將一有正負號雙字組之暫存器内表示法(415) 儲存在其第三十位元到第零位元;其餘第六十三元到第三 -15 本纸張尺度適用中國國家標準(CNS ) Α4規格(210 X 297公釐) ^4 裝 ~~訂 ^—旅 (請先閱讀背面之注意事項再填寫本頁) 五、發明説明(13) A7 B7 經濟部中央樣準局員工消費合作社印製 十一位元係爲正負號欄位。 如上述圖4b到圖4d所示,將某些資料類型儲存在寬度爲 六十四位元的暫存器中是一種無效率之错存方法。例如, 爲了儲存一個無正負號位元組之暫存器内表示法(41〇), 第六十三位元到第人位元必須是零,而只有第七位元到第 零位元含有非零的位元。因&,將一個位元組傲存在一個 六十四位兀暫存器的一處理器只使用了該暫存器容量 12.5〇/〇。同樣地’在功能單元(2〇3)所執行的運算中, 前幾個位元將是重要的》 V、有 囷5a示出壓縮資料之資料格式β圖中示出三種壓 格式:壓縮位元組(501)、壓縮字組(5〇2)、及壓縮 ⑼3)。在本發明的-實施例中,壓縮位元組 I 十四位元,其中包含八個資料元。矣一 爲 個位元…般而言,-資料元即爲 —起储存在單—暫存器(或記憶链位置)的各別資料區科 本發明的一實施例中,一暫存器中 ^ ° 十四位元除以一資料元的位元長度。 * ·'%數目是 壓縮字組(5〇2)之長度爲六十四位元,且 (402)資料元。每-字組(4〇2)資料元含 侗字% 。 六位元的資訊 I檢雙字組(503)之長度爲六十四位元 組(403)資料元^每一雙字組(4〇'3)-資科元 哥兩個雙 的資訊。 疋含有二十 圖外到Sd示出暫存器内壓縮資料 竹疋儲存表 示法 乡且 在 ----„-----叫—裝------訂-----「Λ (請先閱讀背面之11意事項再填寫大,頁> 位 字 元 無正 負 • 16
本纸張尺度制巾ϋ固家標準(CNS ) Α4規格(21GX
A7 Β7 經濟部中央標準局員工消費合作社印¾ 、發明説明 $壓縮位元組之暫存器内表示法(510)示出將壓縮位元組 〇1)儲存在暫存器R〇(212ap,!Rn(212af)中的一暫存器。每 —位元組資料元的資訊係以下述之方式儲存:第零位元組 係儲存在第七位元到第零位元;第一位元组係儲存在第十 f乜元到第八位元;第二位元组係儲存在第二十三位元到 第十位元;第三位元组係儲存在第三十一位元到第二十 四位元;第四位元組係儲存在第三十九位元到第三十二位 π,罘五位元組係儲存在第四十七位元到第四十零位元; 第六位元組係儲存在第五十五位元到第四十八位元;以及 弟七位元組係儲存在第六十三位元到第五十六位元。因此 ’所有可用的位元都用於暫存器中。此種料配2方式增 ^了處理ϋ的儲存效率。此外,在存取人個資料元時,現 6可:時對八個資料元執行一個運算。有正負號壓縮位元 =暫存Μ表示叶Η)係以㈣之方式料在諸暫存 盗(209)中(―暫存器。請注意,在每_位元組資料元中. ’只有第人位元是必要的正負號位元;可用或可不 他位元來指示正負號。 、 操正負號壓縮字組之暫存器内表 ,^ 一宝知釗批带— 什奋門衣不去(512)不出如何將第 :子組到弟零字組傲存在諸暫存器(2〇9)中之一暫存器。第 十五仏元到第零位元含有第w 喇弟零子组的資料元資訊;第三十 一位兀到第十六位元含有資 —〜 ,_ 貧种兀第—子組的資訊;第四十 七位元到弟二十二位元含|第资*^_ 裳二- 有弟(料711•二字组的資訊;以及 ::四十八位元含有資科元第三字組的資訊 。有正負號壓縮字組之暫存予,且的#訊 晋存€内表π法(513)係類似於無 ^说尺度通珣肀酬家橾準(CNS ) Α4規八釐 (锖先閱讀背面之>i意事項爯填穷本萸) .装. ir 經濟部中央標準局員工消費合作社印製 五、發明説明(15: 正負號壓·縮字組之暫 常存器内表不法(5 12)。請注意,在每 子組資料元中,〇古哲丄、 、有第十穴位元是必要的正負號指示碼 〇 無正負號壓縮雙字組之暫存器内表示法(514)示出暫器 _)如何儲存兩個雙字組資料元。第零雙字組係错存在 此暫存器的第三十—位元到第零位元。第-雙字組係鍺存 t此:存器的第六十三位元到第三十二位元。有正負號壓 &雙4· ”且之暫存H内表示法(515)係類似於無正負號签縮 雙字組之暫存器内表*法(514)。請注意,必要的正負號 位元是雙字組資料元的第三十二位元。 如前又所述,可將諸暫存器(2〇9)用於壓縮資料及整數資 料。在本發明的此實施例中’各別設定程式的處理器(1〇9) 可能需要追蹤一位址暫存器(例如Ri (212a))是儲存了壓縮 資料或單純的整數/定點資料。在一替代實施例中,處理 器(109)可追蹤孩等暫存器(2〇9)的個別暫存器所儲存資料 (類型。如果想要對單純/定點整數資料執行諸如壓縮加 法用算時,則此替代實施例然後可能產生錯誤信號。 控制信號格式 下文中將説明處理器(1〇9)用來操作壓縮資料的—控制信 號格式實施例。在本發明的一實施例中,係將控制信號表 7F爲二十二位兀。解碼器(2〇2)可自匯流排(1〇1)接收控制 信號(2〇7)。在另一實施例中,叙-碼器(2〇2)亦可自快取記 憶體(206)接收此種控制信號。— 囷6a示出對屢·縮資料執行運算的控制信號之—般格式。 -18- 本紙浪尺度適用中國國家標準(CNS ) A4規格(2丨0X297公釐) (請先閱讀背面之注意事項再填寫本頁) 裝. 訂 丨線 303605
五、發明説明(16) 經濟部中央標準局員工消费合作社印製 第三十一位元到二十六位元的運算欄位op (601)提供有 關將由處理器(109)執行的運算之资訊,例如壓縮加法、 壓縮減法等資訊;自第二十五位元到第二十位元的SRC1 _)提供該等暫存器⑽)巾—暫存器之來㈣存器位址 此來源暫存崧含有即將用於執行控制信號的第—壓縮資 料urcel同樣地,自第十九位元到第十四位元的 (6〇3)含有該等暫存器(2〇9)中一暫存器之位址。此第二來 源暫存器含有即將用於執行運算的壓縮資料Source。自 第五位元到第零位元的DEST (6〇5)含有該等暫存器(2〇9)中 -暫存器之位址。A目的地暫存器將倚存壓縮資料運算的 運算結果壓縮資料Result。 自第十二位元到第十三位元的控制位元sz (6ι〇)指示第 一及第二壓縮資料來源暫存器的各資料元之長度。如果 sZ_)等於〇12,則此塾'缩資料之格式爲壓縮位元組(5〇ι) 。如果SZ (610)等於1〇2;則此壓縮資料之格式爲壓縮字纽· (502) 。此處保留SZ(610)等於⑻2*"2之情形,然而在另 一實施例中,這些保留値中之一値可用指示壓縮雙字组 (503) 。 第十一位元的控制位元T (611)指示是否利用飽和模式執 行此運算。如果T (6H)等於一,則執行—飽和運算 (saturating operation)。如果T (611)等於零,則執行—非飽 和運算。將於下文中説明飽和和~達算。 第十位元的控制位元5(612)指_示一有正負號運算之使用 。如果S (6 12)等於一,則執行一有正負號之運算^如果s -19- (請先閱讀背面之注意事項再填寫本頁) •裝·
-1T -線 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐)
五、發明说明( A7 B7 經濟部中央樣準局員工消費合作社印製 (6 12)等於零,則執行一無正負號之運算。 圖6b示出一對壓縮资料執行運算的控制信號之一般格式 。此種格式相當於Intel公司Literature Sales部門(P.O. Box 7641,Mt. prospect,IL,60056-7641)出版的"Pentium™ Processor Family User's Manual”中所述之一般整數運算碼格式。請注 意,0P (601)、SZ (610)、T (611)、及 S (612)全部合併成一 個大的欄位。在某些控制信號中,第三到第五位元是 SRC1 (6〇2)。在一實施例中,若有SRC1 (602)位址,則第 三到第五位元也對應於DEST (6〇5)。在一替代實施例中, 若有一SRC2 (603),則第零到第二位元也對應於DEST (605) 。在諸如執行壓縮移位立即運算的其他控制信號中,第三 到第五位元代表運算碼欄位之延伸β在一實施例中,此延 伸可讓程式設計師將一諸如移位計數値等立即値加入控制 信號中。在一實施例中’此立即値係在控制信號之後。此 m 種方式詳述於"Pentium™ Processor Family User's Manual"附 錄F的F-l到F-3頁》第零到第二位元代表Src2 (603)。此 種一般格式可作暫存器到暫存器、記憶體到暫存器、 register by memory > register by register > register by immediate、暫存器到記憶體等定址.此外,在—實施例中 ,此種一般程式可支援整數暫存器到暫存器、及暫存器到 整數暫存器之定址。 .飽和/未飽和之説明 如前文所述,T (611)指示運算是否爲鲍和模式。若飽和 運算被起動時運算結果向上溢出或向下溢出資料範圍,則 -20-
--------^ I 裝-- {請先閱請背面之注意事項再填寫本頁)
*1T
J -線 經濟部中央樣準局員工消費合作社印裴 A7 __________B7 五、發明説明(18) 將使運算結果箝位。箝位(clamping)意指:如果一運算結果 超過資料範圍的最大値或最小値。則將運算結果設定於該 最大値或最小値β在向下溢出的情形中。飽和運算將運算 結果箝位於範圍之最小値;而在向上溢出的情形中,則將 運算結果箝位於最大値。每一資料格式之可用範圍係示於 表卜 資料格式 最小値 最大値 無正負號之位元組 0 255 有正負號之位元組 -128 127 無正負號之字組 0 65535 有正負號之字組 -32768 32767 無正負號之雙字組 0 264 -1 有正負號之雙字組 -263 263 -1 表1 . 如前文所述,τ (611)指示目前是否正在執行飽和運算β 因此’使用無正負號之位元組資料格式時,若運算結果等 於258,且飽和運算被起動時’則在將運算結果儲存到該 運算的目的地暫存器之前先將運算結果箝位於255。同樣 地’如果運算結果等於_32"9,且處理器(1〇9)使用有正負 號之字组資料格式並起動飽和運算時,則在將運算結果傲 存到該運算的目的地暫存器之前先將該運算結果箝位於 -32768 。 _ 乘法運算 在本發明的一實施例中,不只要支援標準CISC指令集( -21 - 本紙張尺度適用中國國家標率(CNS ) Α4现格(210X297公釐) {請先閱讀背面之注意事項再填寫本頁) -裝·
IT 線 A7 B7· 經濟部中央標準局負工消费合作杜印裝 五、發明説明(19) 對非壓縮資料之運算)’而且要支援對壓縮資料之乘法運 算’即可提昇電腦支援協力作業(CSC)應用之效能。壓縮 乘法可用來増加快速傅立葉轉換(Fast F〇urier Transf()nn)、 餘弦轉換(Cosine Transform)、及其他數位/影像信號處理演 算法之速度。 在本發明的一實施例中,SRC1暫存器含有被乘數資料 (Sourcel) ’ SRC2暫存器含有乘數資料(s〇Urce2),且DEST 暫存器將含有一部分的乘積(Result)。亦即★ Sourcel將使 每一資料元獨立乘以Source2的各別資料元。随著不同的 乘法類型,Result將包含乘積的高階位元或低階位元。 在本發明的一實施例中,支援下列的乘法運算·乘高階 兴正負號壓縮位元、乘高階有正負號壓縮位元、及乘低階 I缩位元。High/low指示要將乘積中的哪些位元包含在 Result中》此種方式是需要的,因爲兩個n位元數目的乘 _ 法將得到一個具有2N個位元之乘積。因爲每一個運算結 果資料元之長度與被乘數及乘數的資料元相同,所以運算 結果只能代表一半的乘積。High將使高階位元輸出作爲運 算結果。Low將使低喈位元輸出作爲運算結果。例如,以 無正負號且高階位元之方式將S〇Urcel[7:0]乘以Source2[7:0] ’而使乘積的高階位元作爲運算結果Result[7:0]。 在本發明的一實施例中,使用High/low運算修飾號將一 個資料元產生向上溢位的可能性、移到次一較高之資料元。 亦即’此修飾號可讓程式設計師選擇乘積的哪些位元作爲 運算結果,而不必顧慮向上溢位,程式設計師可利用若干 -22- 本紙乐尺度制中關家縣(CNS ) A4賴·( 21GX297公釐) (請先M讀背面之注意事項再填寫本頁) .裝. 訂 經濟部中央標孳局員工消费合作社印製 A7 B7*五、發明説明(2Q) 壓縮乘法運算的結合,而產生一個完整的2N位元乘積β 例如,程式設計師可利用一個壓縮乘法高階位元無正負號 運算,然後運用相同的Sourcel及Source2而利用一個恩縮 乘法低階位元運算,而得到完整的(2N位元)乘積。本發明 設有高階位元乘法運算,因爲乘積的高階位元經常是該乘 積的唯一重要部分。程式設計師不需要先執行任何位元捨 位,即可得到乘積的高階位元,而此種位元检位卻通常爲 對非壓縮資料的運算所需。 在本發明的一實施例中,Source2中的每一資料元都可以 有不同數値。因而程式設·計師可以彈性地將不同數値指定 給Source 1中每一被乘數的乘數。 圖7示出對壓縮資料執行一乘法運算的一方法實施例。 可在圖2所示之處理器(109)中實施此實施例。 在步驟(701)中,解碼器(202)對處理器(109)所接收的控 制信號(207)解碼。因此,解碼器(202)對下列資訊解碼:適胃 當乘法運算的運算碼;諸整數暫存器(209)中之SRC1 (602) 、SRC2 (603)、及DEST (605)位址;壓縮資料中各資料元 的正負號/無正負號、High/low、及長度。 在步驟(702)中,若已知SRC1 (602)及SRC2 (603)位址, 解碼器(202)經由内部匯流排(205)存取暫存器權(204)中之 各整數暫存器(209)。該等整數暫存器(209)將srC丨(602)暫 存器(Sourcel)所错存的譽縮f料及SRC2 (603)暫存器 (Source2)所儲存的壓縮資料提供给功能單元(203)。亦即, 該等整數暫存器(209)將壓縮資料經由内部匯流排(2〇5)傳 -23- 本紙張尺度適用中國國家&孪(CNS ) A4規格(_21〇X 297公釐) {請先閱讀背面之注意事項再填寫本頁) .裝. 訂 線 309605
經濟部十央標準局負X消费合作社印製 送到功能單元(203)。 = 中’解碼器(2〇2)起動功能單元剛執行適 :的:縮乘法運算a解碼器(2〇2)又經由内部匯流排剛 傳送乘法運算的資料元大小及High/1〇w。 在步樣(m)中,資料元大小決定然後要執行哪一步裸。 如果資料;t大小是A位元(位元組資料),則功能單元(2〇3) 執行步驟(712) H壓縮資料的資料元大小是十六位 元(字組資料),則功能單元(2〇3)執行步驟(714)。在一實施 例中,只有支援十六位元資料元大小的壓縮乘法。在另一 實施例中,則支援八位元及十六位元資料元大小的壓縮乘 法。然而,在另一實施例中,也支援三十二位元資料元大 小的壓縮乘法。 假設資料元大小是八位元’則執行步驟(7丨2)。在步驟 (712)中’執行下列運算。自第七位元到第零位元的 m Sourcel乘以自第七位元到第零位元的s〇urce2,而產生自 第七位元到第零位元的Result。自第十五位元到第八位元 的Sourcel乘以自第十五位元到第八位元的source2,而產 生自第十五位元到第八位元的Result。自第二十三位元到 第十六位元的Source 1乘以自第二十三位元到第十六位元 的Source2 ’而產生自第二十三位元到第十六位元的Result 。自第三Η 位元到第二十四位元的Source 1乘以自第三 Η--位元到第二十四位元的Sou'rce2,而產生自第三Η-- 位元到第二十四位元的Result。自第三十九位元到第三十 二位的Sourcel乘以自第三十九位元到第三十二位元的 (請先閱讀背面之注意事項再填寫本頁) 裝. 訂 線 -24- 本纸張尺度適用中國國家橾準(CNS ) A4規格(2!OX29?公釐) Α7 Β7 經濟部中央標準局員工消费合作社印製 五、發明説明(2) Source2 ’而產生自第三十九位元到第三十二位元的Result 。自第四十七位元到第四十位元的s〇urce丨乘以自第四十 七位元到第四十位元的Source2,而產生自第四十七位元 到第四十位元的Result。自第五十五位元到第四十八位元 的Sourcel乘以自第五十五位元到第四十八位元的source2 ’而產生自第五十五位元到第四十八位元的Result。自第 六十三位元到第五十六位元的S〇urce 1乘以自第六十三位 元到第五十六位元的Source2,而產生自第六十三位元到 第五十六位元的Result。 假設資料元大小是十六位元,則執行步驟(714)。在步骤 (7 14)中,執行下列運算:自第十五位元到第零位元的 Source 1乘以自第十五位元到第零位元的s〇urce2,而產生 自第十五位元到第零位元的Result。自第三--位元到第 十六位元的Sourcel乘以自第三十一位元到第十六位元的 Source2,而產生自第三•一位元到第十六位元的Resuit。 自弟四十七位元到第二十一位元的Sour cel乘以自第四十 七tc到弟—十一兀> 的Source2 ’而生自第四十七位 元到第三十二位元的Result。自第六十三位元到第四十八 位元的Sourcel乘以自第六十三位元到第四十八位元的 SourCe2,而產生自第六十三位元到第四十八位元的Result 〇 在一實施例中,係同時執行步^ (712)的各乘法。然而, 在另一實施例中,係循序執行這些乘法β在另一實施例中 ,係同時執行某些乘法,且循序執行另_些乘法。上述説 -25- (請先聞讀背面之注意事項再填寫本頁) .裝 訂 -線 本紙伕尺度適用中國國家棣準(CNS ) Α4規格(210X29?公釐) A7 -- ----—- B7 五、發明説明(23) ""—" ' -- 明亦適用於步驟(714)的各乘法。 在步驟(720)中,將Resuh儲存在dest暫存器中。 表2不出對壓縮字組資料執行無正負號4高階位元 缩乘法運算之暫存器内表示法》第-列位元是S0urcel的 f縮資料表不法。第二列位元是5〇肛^2的資料表示法。 弟二列位元是Result的壓縮資料表示法。每一資料元之下 的數目疋該資料元的號碼。例如,S〇urce 1的第二資料元 是11111111 0〇〇〇000〇2。 {請先閲讀背面之注意事項再填寫本頁) 裝. 訂 表2 表3示出對壓縮字組資料執行有正負號且高階位元的壓 縮乘法運算之暫存器内表示法。 表3 表4示出對壓縮字組資料執行低階位元的壓縮乘法運算 -26- 本紙佚尺度適用中國國家標窣(CNS ) A4規格(21〇x 297公费) -線 經濟部中央標準局貝工消费合作社印製 309605 A7 B7 五、發明説明(24) 之暫存器内表示法。 經濟部中央標準局負工消资合作社印製 表4 壓縮資料雷t 在一實施例中’在與對非壓縮資料執行單一乘法運算所 需的相同時脈週期數中,可對多個資料元執行乘法運算。 爲了要在相同的時脈遇期數中完成執行,必須使用指令執 行的平行性(parallelism)。亦即’同時指示若干暫存器對 諸資料元執行乘法運算。將於下文中詳述此種方式。圖8 不出一個電路之實施例,該電路可在對非壓縮資料執行一 乘法運算所需的相同時脈週期數中對壓縮資料執行—乘法 運算。 圖8示出如何使用若干乘法器電路執行壓縮位元組或| 縮字之乘法。運算控制器(800)控制該等電路執行乘法。 運算控制器(800)處理乘法運算之控制信號,並有下列各 輸出:High/low起動(880)、位元組/字组起動(881)、及正負 號起動(882)。High/Iow起動(880)識別是否要將乘積的高階 位元或低階位元包含在運算結> 中。位元組/字組起動 (88 1)識別是否要執行—位元組屡縮資料或字组壓縮資料 之乘法運算。正負號起動(882)識別是否應使用有正負號 -27- 本紙張尺度適用中國國家標準(CNS ) A4規格(210X29?公釐) (請先閲讀背面之注意事項再填苟本頁) .裝
•1T A7 B7 經濟部中央橒準局員工消費合作社印製 五、發明説明(25) 之乘法。 壓縮字組乘法.器(801)同時乘四個字組資料元。壓_縮位元 組乘法器(802)同時乘八個位元組資料元。壓_縮字組乘法 器(801)及壓縮位元組乘法器(802)都有下列輸入 :Sourcel[63:0](831)、Source2[63:0](833)、正負號起動(822) 、及 High/low起動(880)。 壓縮字組乘法器(801)包含四個16x16乘法器電路:16x16 乘法器 A(810)、16x16 乘法器 β(811)、16x16 乘法器 C(812) 、及16x16乘法器D (813)。16x16乘法器A (810)有輸入 Sourcel[15:0]及 Source2[15:0]。16x16乘法器 B (811)有輸入 5〇111^1[3 1:16]及5〇111^2[3 1:16]。16\16乘法器(:(812)有輸 入 Sourcel[47:32]及 Source2[47:32]。16x16乘法器 D (813)有 輸入 Sourcel[63:48]及 Source2[63:48]。每一 16x16乘法器係 連接到正負號起動(882)。每一16x16乘法器產生一個三十 二位元之乘積。在每一乘法器中,一多工器(分別爲ΜχΟ (850)、Mxl (851) ' Μχ2 (852)、及 Mx3 (853))接收該三十二 位元的運算結果。每一多工器根據High/low起動(880)的値 ’而輸出乘積的十六個高階位元、或十六個低階位元。各 個多工器的輸出被合併成一個六十四位元之運算結果。可 選擇將此運算結果儲存在一運算結果暫存器1(871)中》 壓縮位元組乘法器(802)包含八個8x8乘法器電路:8χ8乘 法器A (820)到8x8乘法器Η (827)^'每一 8x8乘法器各有一個 分別來自 Sourcel[63:0](83 1)及 Source2[63:0](833)之八位元 輸入。例如,8x8乘法器A (820)有輸入Sourcel[7:0]及 -28- (請先閱讀背面之注意事項再填寫本育) .裝 訂 本紙張尺度適用中國國家標準(CNS ) A4規格(210X29:1公釐) A7 經濟部中央標準局員工消费合作社印袈 ____B7__ 五、發明説明(26) So\irce2[7:0],而 8x8乘法器 Η (827)有輸入 Sourcel[63:56]及 Source2[63:56]。每一 8x8乘法器係連接到正負號起動(882) 。每一 8x8乘法器產生一個十六位元之乘積。在每一乘法 器中,一多工器(例如Mx4 (860)及Mxl 1 (867))接收該十六 位元之運算結果。每一多工器根據High/low起動(880)之値 ,而輸出該乘積的八個高階位元、或八個低階位元。這八 位多工器之輸出被合併成一個六十四位元之運算結果。可 選擇將此運算結果儲存在一運算結果暫存器2 (872)中。位 元組/字組起動信號(881)根據該運算結果需要之資料元大 小,而起動特定的運算結果暫存器。 在一實施例中,作出可乘兩對8x8數或一對16x16數的電 路’即可減少爲施行這些乘法所用的晶片面積。亦即,將 兩個8x8乘法器及一個ι6χ16乘法器合併成一個8x8& 16x16 乘法器。運算控制器(800)將會起動乘法的適當大小。在 mm 此一實施例中,將減少乘法器所用的實際晶片面積;然而 ’此時將難以執行壓縮位元组乘法及壓縮字組乘法。在另 一支援壓縮雙字組乘法的實施例中,一乘法器可執行四個 8x8乘法、兩個16χ16乘法、或—個32以2乘法。 在一實施例中,只提供壓縮字组之乘法運算。在此實施 例中,將不包含壓縮位元組乘法器(802)及運算結果暫存 器 2 (872)。 因此,可對多個資料元執行壓二縮乘法運算。在習用技術 的處理器中,爲了乘八區資料,且每一區之長度爲_個字 組,此時將需要四次獨立的乘法運算。每一運算—次將乘 -29- 本紙張尺度咖^ϋ·ϋ?τ^Τ^7Τ^ 297_ (請先聞讀背面之注意事項再填寫本頁) 裝. 訂 線 五、發明説明(27' A7 B7 兩個字組,此種方式實際上是浪費高於第十六位元的諸位 元所用之資料線及電路。此外,整個乘積對程式設計師可 能不是一定有用的。因此,程式設計師必須將每一乘積的 某些位元捨棄。使用壓縮乘法運算時,如果只有高階位元 是重要的,則處理器可在一次運算中對八區資料執行乘法 。在此實施例中,所有的資料線都載送有關聯的資料。 至此已説明了一種具有更佳資料乘法運算之微處理器。 (請先閱讀背面之注意事項再填寫本頁) 7 .裝. 訂 4 經濟部中央橾莩局員工消费合作社印製 30-

Claims (1)

  1. 3Q3605 ABCD 六、申請專利範圍 般用途中央處理單元(CPU)包括: I, —餘存裝置,配置來句仝一 ’ 垴资& 、, 采l含第—壓縮資料及一第二廣 :中nr—複數資料元及第二多數資料元, 複數資料% 料元中之每個資料元對應至該第二 途:二瑪器二置來解碼一指令,該指令選自該-般用 义_才日令集’該指令操作來設定該資料元之長度 * ^至謂存裝置及該解㉖器之電路,配置來響應 2々而同時將來自該第―複數資料元之個資料元乘以 ί::第二複數資料元之對應資料元,以在-第三壓縮 I生複數個結果資料元,其中個結果資料元只包 括鬲階位元或低階位元。 2. 如申請專利範固帛!項之CPU,其中該資料元之大小選 自一組包括八位元,16位元,32位元及㈠位元者。. 3. 如申請專利範圍第2項之CPU,其中該電路配置來響應 '指令,同時將來自該第—複數資料元之每個帶符號 (S1gned)資料元乘以來自該第二複數資料元之對應帶 經濟部中央標準局負工消費合作社印裳 符號資料元’以在該第三壓縮資料中產生複數個帶符號 資料元。 4. 如申請專利範圍第2項之CPU,其中該電路配置來響應 該指令,同時將來自該複數資L料元之每個帶符號或未帶 符號資料元乘以來自該第二複數資料元之對應帶符號或 未帶符號資料元’以在該第三壓縮資料中產生複數個帶 -31 - 本紙伕尺度適用中國國家標準(CNS ) A4規,格(210X29?公釐) Αδ BS __ a - 六、申請專利範圍 " ~ 、 符號或未帶符號結果資料元。 7 5. 如申請專利範圍第!項之cpu,其中該電路包括四俩“ 位兀乘法器電路,每個乘法器電路接收來自該第一後麩 資料凡之一資料元,及來自該第二壓縮資料之一對應资 料元,每個乘法器電路具有一高/低致能(enabu)輪 入,且每個乘法器電路耦合至一分離多工器,每個多工 器接收自該個別丨6位元乘法器電路一 3 2位元結果,其 中根據在該高/低致能輸入處之—數値輸 入,每個多 器產生該32位元結果之16個高階位元或16個低階位元 ’该產生之16個高階位元或16個低階位元是放置於該 第三壓縮資料中作爲複數個結果資料元β A 6. —種一般用途中央處理單元(cpu)包括: 一第一儲存裝置,配置來包括一具有第一複數資科元 之第一壓縮資料,且尚配置來包括一具有第二複數資料 元之第二壓縮資料元; · —線 經濟部中央標準局WC工消费合作社印製 一解碼器’配置來解碼一壓縮乘法指令,該指令選自 該一般用途CPU之一指令集,該指令操作來設定該資料 元之長度’指定對應至該儲存裝置之—第一位址,指定 對應至該第二儲存裝置之一第二位址,指定一目的位址 ,及指定一乘法運算,在該第一及第二複數資料元之間 執行’及一電路,耦合至該第—儲存裝置及該解碼器, 該電路配置來響應該壓縮乘法j旨令,將來自該第—複數 資料元之每個資料元平行乘以來自該第二複數資料元之 一對應資料元,以在一第三壓縮資料中產生複數個結果 -32- ((:邮)八4規格(210乂297公釐) 309605 A8 B8 C& D8 六、申請專利範圍 經濟部中夾橒隼局員工消费合作社印製 資料元,其中每個結果資 元。 ,、包括阿階位元或低階位 7_ t申請專利範圍第6項之CPU,其中該資料元之大小選 自一组包括八位元,16扞;, 只矸兀疋大小選 s . 仅兀,32位元及64位元者。 8.如申請專利範团第7項之 甘山二· 辞· ,其中孩電路配置來響應 二第—複數資料元之每個帶符號資料元 在複數資料元之-對應帶符號資料元 9 4 縮中產生複數”符號結果資料元。 9·=專利範困第:項之咖,其中該電路配置來響應 料將來自該第—複數資料元之每個帶符號或未帶 行乘以來自該第二複數資料元之―對應帶 符唬或士帶符號資料元’以在該第三壓縮資料中產生複 數個帶符號或未帶符號結果資料元。 川·如申請專利範圍第6項之cpu,其中該電路包括四個16 位疋乘法器電路’每個乘法器電路接收來自該第-複數· 資料元之"'資料元,及來自該第二1縮資料之-對應資 料元,每個乘法器電路具有一高/低致能(enable)輸 入,且每個乘法器電路耦合至一分離多工器,每個多 器接收自該個別16位元乘法器電路一 32位元結果, ^根據在該高/低致能輸人處之—數値輸人,每個多 器產生琢3 2位兀結果之丨6個高階位元或丨6個低階位 ,该產生之1 6個高階位元或y個低階位元是放置於該 第三#縮資料中作用爲複數個結果資料元。 工 其 X 元 d—裝— (請先閲讀背面之注意事項再填寫本頁) 1 -線 33- 本紙張尺度適用中國國豕標準(CN*S ) A4規你(21〇 X )97公楚)
TW085100352A 1994-12-01 1996-01-12 TW309605B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US34955994A 1994-12-01 1994-12-01

Publications (1)

Publication Number Publication Date
TW309605B true TW309605B (zh) 1997-07-01

Family

ID=23372917

Family Applications (1)

Application Number Title Priority Date Filing Date
TW085100352A TW309605B (zh) 1994-12-01 1996-01-12

Country Status (7)

Country Link
US (2) US5677862A (zh)
EP (2) EP1302848B1 (zh)
JP (1) JPH11500547A (zh)
AU (1) AU4738396A (zh)
HK (2) HK1057108A1 (zh)
TW (1) TW309605B (zh)
WO (1) WO1996017293A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9864602B2 (en) 2011-12-30 2018-01-09 Intel Corporation Packed rotate processors, methods, systems, and instructions

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996017291A1 (en) * 1994-12-02 1996-06-06 Intel Corporation Microprocessor with packing operation of composite operands
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
US6295599B1 (en) * 1995-08-16 2001-09-25 Microunity Systems Engineering System and method for providing a wide operand architecture
US5742840A (en) 1995-08-16 1998-04-21 Microunity Systems Engineering, Inc. General purpose, multiple precision parallel operation, programmable media processor
US5936872A (en) * 1995-09-05 1999-08-10 Intel Corporation Method and apparatus for storing complex numbers to allow for efficient complex multiplication operations and performing such complex multiplication operations
US6470370B2 (en) 1995-09-05 2002-10-22 Intel Corporation Method and apparatus for multiplying and accumulating complex numbers in a digital filter
US6237016B1 (en) 1995-09-05 2001-05-22 Intel Corporation Method and apparatus for multiplying and accumulating data samples and complex coefficients
US5983253A (en) * 1995-09-05 1999-11-09 Intel Corporation Computer system for performing complex digital filters
US6058408A (en) * 1995-09-05 2000-05-02 Intel Corporation Method and apparatus for multiplying and accumulating complex numbers in a digital filter
US6792523B1 (en) 1995-12-19 2004-09-14 Intel Corporation Processor with instructions that operate on different data types stored in the same single logical register file
US5701508A (en) 1995-12-19 1997-12-23 Intel Corporation Executing different instructions that cause different data type operations to be performed on single logical register file
US5940859A (en) 1995-12-19 1999-08-17 Intel Corporation Emptying packed data state during execution of packed data instructions
US6490607B1 (en) * 1998-01-28 2002-12-03 Advanced Micro Devices, Inc. Shared FP and SIMD 3D multiplier
US6211892B1 (en) * 1998-03-31 2001-04-03 Intel Corporation System and method for performing an intra-add operation
US6418529B1 (en) * 1998-03-31 2002-07-09 Intel Corporation Apparatus and method for performing intra-add operation
US7395302B2 (en) 1998-03-31 2008-07-01 Intel Corporation Method and apparatus for performing horizontal addition and subtraction
US7392275B2 (en) * 1998-03-31 2008-06-24 Intel Corporation Method and apparatus for performing efficient transformations with horizontal addition and subtraction
US6098087A (en) * 1998-04-23 2000-08-01 Infineon Technologies North America Corp. Method and apparatus for performing shift operations on packed data
US7932911B2 (en) * 1998-08-24 2011-04-26 Microunity Systems Engineering, Inc. Processor for executing switch and translate instructions requiring wide operands
ATE557342T1 (de) * 1998-08-24 2012-05-15 Microunity Systems Eng Prozessor und verfahren zur matrixmultiplikation mit einem breiten operand
US6272512B1 (en) 1998-10-12 2001-08-07 Intel Corporation Data manipulation instruction for enhancing value and efficiency of complex arithmetic
US7587582B1 (en) 1998-12-03 2009-09-08 Sun Microsystems, Inc. Method and apparatus for parallel arithmetic operations
EP2267896A3 (en) * 1999-05-12 2013-02-20 Analog Devices, Inc. Method for implementing finite impulse response filters
US6546480B1 (en) * 1999-10-01 2003-04-08 Hitachi, Ltd. Instructions for arithmetic operations on vectored data
WO2002015000A2 (en) * 2000-08-16 2002-02-21 Sun Microsystems, Inc. General purpose processor with graphics/media support
US7127593B2 (en) * 2001-06-11 2006-10-24 Broadcom Corporation Conditional execution with multiple destination stores
US6813627B2 (en) * 2001-07-31 2004-11-02 Hewlett-Packard Development Company, L.P. Method and apparatus for performing integer multiply operations using primitive multi-media operations that operate on smaller operands
GB2389678A (en) * 2002-06-14 2003-12-17 Univ Sheffield Finite field processor reconfigurable for varying sizes of field.
US7668897B2 (en) 2003-06-16 2010-02-23 Arm Limited Result partitioning within SIMD data processing systems
US7689641B2 (en) * 2003-06-30 2010-03-30 Intel Corporation SIMD integer multiply high with round and shift
US7424501B2 (en) 2003-06-30 2008-09-09 Intel Corporation Nonlinear filtering and deblocking applications utilizing SIMD sign and absolute value operations
GB2409062C (en) * 2003-12-09 2007-12-11 Advanced Risc Mach Ltd Aliasing data processing registers
US7433912B1 (en) 2004-02-19 2008-10-07 Sun Microsystems, Inc. Multiplier structure supporting different precision multiplication operations
US7672989B2 (en) * 2005-05-09 2010-03-02 Sandisk Il Ltd. Large number multiplication method and device
US9785565B2 (en) 2014-06-30 2017-10-10 Microunity Systems Engineering, Inc. System and methods for expandably wide processor instructions
EP3001306A1 (en) * 2014-09-25 2016-03-30 Intel Corporation Bit group interleave processors, methods, systems, and instructions
US20160188327A1 (en) * 2014-12-24 2016-06-30 Elmoustapha Ould-Ahmed-Vall Apparatus and method for fused multiply-multiply instructions
GB2568230B (en) * 2017-10-20 2020-06-03 Graphcore Ltd Processing in neural networks

Family Cites Families (19)

* 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
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
JPS60134974A (ja) * 1983-12-23 1985-07-18 Hitachi Ltd ベクトル処理装置
US4707800A (en) * 1985-03-04 1987-11-17 Raytheon Company Adder/substractor for variable length numbers
JPS6284335A (ja) * 1985-10-09 1987-04-17 Hitachi Ltd 乗算回路
JPS6297060A (ja) * 1985-10-23 1987-05-06 Mitsubishi Electric Corp デイジタルシグナルプロセツサ
US4985848A (en) * 1987-09-14 1991-01-15 Visual Information Technologies, Inc. High speed image processing system using separate data processor and address generator
US4989168A (en) * 1987-11-30 1991-01-29 Fujitsu Limited Multiplying unit in a computer system, capable of population counting
US5126964A (en) * 1988-04-01 1992-06-30 Digital Equipment Corporation High performance bit-sliced multiplier circuit
US4953119A (en) * 1989-01-27 1990-08-28 Hughes Aircraft Company Multiplier circuit with selectively interconnected pipelined multipliers for selectively multiplication of fixed and floating point numbers
KR920007505B1 (ko) * 1989-02-02 1992-09-04 정호선 신경회로망을 이용한 곱셈기
US5001662A (en) * 1989-04-28 1991-03-19 Apple Computer, Inc. Method and apparatus for multi-gauge computation
US5268854A (en) * 1990-11-13 1993-12-07 Kabushiki Kaisha Toshiba Microprocessor with a function for three-dimensional graphic processing
US5363322A (en) * 1991-04-02 1994-11-08 Motorola, Inc. Data processor with an integer multiplication function on a fractional multiplier
US5187679A (en) * 1991-06-05 1993-02-16 International Business Machines Corporation Generalized 7/3 counters

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9864602B2 (en) 2011-12-30 2018-01-09 Intel Corporation Packed rotate processors, methods, systems, and instructions
TWI630548B (zh) * 2011-12-30 2018-07-21 英特爾股份有限公司 緊縮旋轉處理器、方法、系統與指令
US10324718B2 (en) 2011-12-30 2019-06-18 Intel Corporation Packed rotate processors, methods, systems, and instructions

Also Published As

Publication number Publication date
JPH11500547A (ja) 1999-01-12
US5675526A (en) 1997-10-07
EP0795155A4 (en) 1999-08-11
EP1302848B1 (en) 2006-11-02
HK1003189A1 (en) 1998-10-16
HK1057108A1 (en) 2004-03-12
EP0795155B1 (en) 2003-03-19
EP1302848A2 (en) 2003-04-16
US5677862A (en) 1997-10-14
EP0795155A1 (en) 1997-09-17
AU4738396A (en) 1996-06-19
EP1302848A3 (en) 2003-05-14
WO1996017293A1 (en) 1996-06-06

Similar Documents

Publication Publication Date Title
TW309605B (zh)
US5802336A (en) Microprocessor capable of unpacking packed data
US5983256A (en) Apparatus for performing multiply-add operations on packed data
JP3924307B2 (ja) 算術演算装置及び算術演算方法
US5721892A (en) Method and apparatus for performing multiply-subtract operations on packed data
US7461109B2 (en) Method and apparatus for providing packed shift operations in a processor
US5835392A (en) Method for performing complex fast fourier transforms (FFT's)
US6738793B2 (en) Processor capable of executing packed shift operations
US5819101A (en) Method for packing a plurality of packed data elements in response to a pack instruction
EP0795154A1 (en) Microprocessor with compare operation of composite operands

Legal Events

Date Code Title Description
MK4A Expiration of patent term of an invention patent