TWI322947B - Inserting bits within a data word - Google Patents
Inserting bits within a data word Download PDFInfo
- Publication number
- TWI322947B TWI322947B TW093124095A TW93124095A TWI322947B TW I322947 B TWI322947 B TW I322947B TW 093124095 A TW093124095 A TW 093124095A TW 93124095 A TW93124095 A TW 93124095A TW I322947 B TWI322947 B TW I322947B
- Authority
- TW
- Taiwan
- Prior art keywords
- register
- value
- data
- displacement
- bits
- Prior art date
Links
- 238000012545 processing Methods 0.000 claims description 59
- 238000006073 displacement reaction Methods 0.000 claims description 33
- 238000003780 insertion Methods 0.000 claims description 23
- 238000000034 method Methods 0.000 claims description 21
- 230000037431 insertion Effects 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 238000012856 packing Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 2
- 101100534231 Xenopus laevis src-b gene Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000007789 sealing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30018—Bit or string instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30032—Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
- G06F9/30038—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations using a mask
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Executing Machine-Instructions (AREA)
- Image Processing (AREA)
- Advance Control (AREA)
Description
1322947 玖、發明說明: 【發明所屬之技術領域】 本發明係有關於資料處理系統。特別是本發明係有關於 在程式控制下將各位元插入於一資料字組内之作業。 【先前技術】 在資料處理系統裡,眾知將複數個位元欄位包裝併合於 一單一資料字組内。即一範例,在一 1 6位元資料字組内, 或會希望包裝三個分別地表示紅、綠及藍的色彩成份數 值,其中兩個為長度5位元而其中一個為長度6位元。通 常情況是會個別地處理這些不同成份數值,並個別地計算 其規模值。在這些計算後,會需要組裝併合個別成分於一 單一資料字組内,使得可按一更為精簡形式儲存該等,且 更為便即逐一像素方式進行操作。 為達到這種資料包裝處理,一種可能解決方案是提供程 式指令,這可標定在一待予插入一目的地暫存器内之來源 暫存器内的位元欄位長度,以及在該目的地暫存器裡待將 該位元攔位插入之位置兩者。這種指令通常會必須標定來 源暫存器、目的地暫存器、位元欄位長度及位元欄位插入 位置。由於按此方式需在一指令裡標定四個個別參數,故 會造成對在該指令裡可運用之指令位元空間的不利高度要 求,並依照所耗佔之指令位元空間而使得此等指令屬不利。 【發明内容】 5 1322947 根據本發明之一特點,提供一種用於處理資料之設備, 該設備包含: 複數個暫存器,該等可運作以儲存待予操作之資料數 值; 處理邏輯,該等可運作以對於一或更多儲存在該等複數 個暫存器内之資料數值執行一資料處理運算;以及 一指令解碼器,此者可回應於一程式指令以控制該處理 邏輯,俾執行一由該程式指令所標定之資料處理運算;其 中 該指令解碼器可回應於一位移·及-插入指令以控制該 處理邏輯,俾執行一可產獲一具有如下給定之結果數值的 位移-及-插入資料處理運算: 將一儲存在一第一暫存器内之第一資料數值位移N個 位元位置之位移量,以構成一含N個移入位元之經位移數 值,其中該N具有複數個不同非零數值之其一者;以及 除該等N個移入位元外,將該經位移數值之個別位元 插人在一儲存於一第二暫存器内之第二資料數值的相對應 位元位置内,而在相對應於該等N個移入位元之第二資料 數值内的各位元不予更動,藉此構成該結果。 本發明認知到會希望利用這些指令报大比例的情況是 能夠個別地標定位元欄位長度的完整彈性,同時並不要求 該位元欄位位置。相反地,一標定待予施加於來源數值之 位移量的單一參數,即可控制將來源數值之各位元寫入目 的地數值内的起始位置。寫入該目的地數值之各位元會根 6 1322947 據相關指令之位移方向而定,從該起始位置延伸到該目 地數值之適當結尾處。這可能會是插入比起最終所需要 還要多的位元數目"然而,本技術認知到在大部分的情 下,可執行許多這種指令,且經寫入於一指令内的超出 元會被在後隨指令裡的所欲資料加以覆寫,使得最終包 資料數值會含有所需要的正確位元。如此,可藉由具有 有利性質之微少指令位元空間要求的指令,達到該運算 或其他位元組裝運算,的包裝型態。應即了解如前述之 發明表現方式,係按照可產獲一具一由標定位移運算及 標定插入運算所給定之結果數值的結果之位移-及-插入 令而撰。應即了解所採用以達到與如執行一位移·及-插 作業為相同之結果數值的真實機制可為變化。本項技術 皆涵蓋這些可變機制及步驟。該等位移-及-插入步驟係 種表示所欲最終結果如何關聯於各項輸入的方式,然確 依各種不同方式達到各項輸入與輸出之間的相同關係。 項技術確皆涵蓋該等替代方式。 標定該位移量的方式可按如一儲存於一暫存器内之 值、於一指令内所標定,或另代且最好是按一經編碼於 位移-及-插入指令本身内之中介數值。 該第一及第二暫存器會最好是藉一標定各欄位之來 暫存器所標定為有利,此二者皆與一暫存器存庫之各暫 器相關。亦可利用一目的地暫存器標定欄位(可視需要與 第一暫存器或該第二暫存器其一者所共享)。 應了解本技術的位移處理可為根據其情境與所欲之 的 的 況 位 裝 屬 > 本 指 入 確 可 本 數 該 源 存 該 包 7 1322947 裝或位元插入作業形式而屬右位移或左位移。 有可能該第一資料數值及該第二數值資料 位元長度且可經儲存於不同長度之暫存器内, 體實施例裡,該第一資料數值及該第二數值資 數量的位元。 即如前述,應了解可按各種不同方式來實作 之各輪入與各輪出間的關係,然一較佳具體實 用該第一數值之位移,並以構成一遮罩數值, 二資料數值内的哪些位元會由在該經位移資料 對應位元所替代’以及該第二資料數值内的哪 更動。此遮罩數值可有利地藉由依一起始遮罩 其他像是直接構成該遮罩之指令的解碼處理之 移作業所構成。 可在純量處理系統及單一指令多重資料封 理系統内有利地運用本技術於。 鑒於本發明另一特點,一種處理資料之方法 含如下步驟: 將待予處理之資料數值儲存於複數個暫存器 對儲存在該等複數個暫存器内之一或更多, 用處理邏輯以執行一資料處理運算; 回應於一程式指令,利用一指令解碼器以控 ’俾執行一由該程式指令所標定之資料處理 該指令解碼器係回應於一位移-及-插入指 處理邏輯,俾執行一產獲一具一給定如下之結 可具有不同 然在較佳具 料具有相同 於如前所列 施例會是利 以選定該第 數值内之相 些位元不予 ,或是另外 技術,的位 包(SIMD)處 ,該方法包 内; f料數值*利 制該處理邏 運算;其中 令以控制該 果數值的結 8 1322947 果之位移-及-插入資料處理運算: 將一儲存在一第一暫存器内之第一資料數值位移N 位元位置之位移量,以構成一含N個移入位元之經位移 值,其中該N具有複數個不同非零數值之其一者;以及 除該等 N個移入位元外,將該經位移數值之個別位 插入在一儲存於一第二暫存器内之第二資料數值的相對 位元位置内,而在相對應於該等N個移入位元之第二資 數值内的各位元不予更動,藉此構成該結果。 參照於示範性具體實施例詳細說明,且關連參閱於隨 圖式,本發明上述及其他目的、特性與優點即屬顯見。 【實施方式】 第1圖略圖說明一種資料處理系統2,此者可為按一 有一暫存器存庫4、一乘法器6、一位移器8及一加法 10之積體電路的形式。該等暫存器存庫4、乘法器6、 移器8及加法器10可被視為構成在由一指令解碼器12 產生之控制信號的控制下,執行所欲之資料處理運算的 理邏輯。該指令解碼器12本身係回應於經載入至一指令 線14之程式指令。應了解第2圖的資料處理系統通常會 有更多元件,然在此予以省略俾便於說明。操作上,會 取獲得各程式指令並將其載入該指令管線14内,且當該 在該指令管線1 4内觸抵一執行階段時,該指令解碼器 會利用該等以產生控制信號,此等信號可組態設定該處 邏輯的各項元件4'6'8、10以執行所欲之資料處理運冥 個 數 元 應 料 附 含 器 位 所 處 管 含 擷 等 12 理 9 1322947 該處理邏輯通常會包含許多為以提供除如第1圖所 簡單乘法、位移及加法運算以外的處理運算之進一券 第2圖略圖說明可由第1圖資料處理系統2所支 些示範性位移-及-插入指令的語法。一位移作及插 SLI包含一標定一目的地暫存器之暫存器攔位dest 定一來源暫存器之暫存器欄位src及一標定一立即 欄位#imm。該來源暫存器包含待予位移,然後插入 地暫存器内而該目的地暫存器内之部分位元不予更 料數值。該立即數值imm#標定在進行插入作業之前 來源暫存器所施加之位移量,以及如後文所述實際 的該插入作業該位置。 第 2圖說明上述指令之右位移變化項,換言之 指令。亦繪出一左位移指令之變化項,其中該位移 由該第二來源暫存器src2所標定。 應了解如第1圖所示之各項指令的語法及正確 係一範例,而本技術之不同具體實施例可運用顯著 指令表現及語法。 第3圖說明一位移-及-插入運算範例。一暫存器 有一來源數值。此來源數值含有一資料部分1 8,像 數值。該暫存器16在該資料部分18以外的部分可 何意義,或者可為該資料數值裡或希望予以拋除的 分。 在本例裡,該暫存器1 6内的數值係受於一右位 理,而其移量則係按一相關 SRI指令内之立即欄d 繪述之 卜元件。 援之一 入指令 、一標 數值之 該目的 動的資 先對該 上進行 一 SRI 數值係 形式僅 相異的 16含 是像素 不具任 局部部 移所處 fit #imm 10 1322947 所標定。在該暫存器的左端,會將該移入位元引入至所產 生之經位移數值内。這是正常的位移運算行為。
該目的地數值會被握存於一暫存器20内,且除該移入 位元以外,會將一部分的經位移數值寫入此目的地數值 内,取代初始時被儲存在該目的地數值内的相對應位元。 不會將對應於經位移數值内之移入位元的目的地數值 20 内之各位元加以替換而是令予未變。該最終結果數值包含 具有來自經位移數值在該等相對應位置處替換其原始位元 之插入位元的原始目的地數值。在目前範例裡可觀察到, 僅除該資料部分18外,來自經位移數值之各位元既已被插 入至該結果數值内,亦即各位元G及Η。如為顯著,則這 些所不要的位元可依需要而由後續位移-及-插入運算裡的 其餘位元數值所覆寫。
第4圖略圖說明可如何實作一位移-及-插入指令之硬體 表現。在本例中,該來源暫存器22供應其數值給一左位移 器24。應了解可替代為會進行右位移之指令的右位移變化 項。在本例中,係藉一立即數值#4來標定該位移量。該左 位移器 24會藉由在其四個最右位元位置處置入四個移入 零數值來產生一經位移數值 26»平行於該經位移數值 26 產生作業,會藉由採用一含有所有為一之起始遮罩28,並 令其受於與按其本身的左位移器 30所施加於該來源數值 22為相同之位移處理,產生一遮罩數值。經置入於該遮罩 數值内的移入數值會再次地為零值,且這會產獲一經位移 遮罩32。接著,可將該經位移遮罩32用來作為一供應給 π 1322947 一多重位元多工器34的多位元控制信號,此者可選定來自 該經位移數值26的位元,或是來自該目的地數值36之位 元,以饋送給一結果數值38。 第5圖說明一種將紅、綠及藍像素數值成分裝入一 16 位元結果數值之純量包裝運算。該第一運算係利用一右位 移-及-插入指令,按五位元位置之位移量,對該紅及綠成 分數值進行處理。這不會改變該結果内的5位元成分R5, 但是會將該綠成分G6以及其剩餘部份寫入該結果。該第 二指令採經合併之紅及綠成分,並藉由執行一右位移-及-插入指令,按11位元位置的位移量來插入該藍成分B5, 使得該藍成分B 5緊接於既經插入之綠成分G6的結尾處, 並填滿該16位元結果數值的剩餘位置。 第6圖說明與第5圖所示者相同型態的包裝運算,但是 在此例中是執行於一單一指令多重資料(S MID)系統内。應 即了解相同的位移-及-插入運算是個別地對該 SIM D系統 内之各資料列道所執行,以便能夠利用兩個SIMD右位移-及-插入指令,平行地包裝併合四組像素數值。 在此雖係參照於各隨附圖式而詳述描述本發明示範性 具體實施例,然應了解本發明並不受限於該等精確具體實 施例,且可由熟諳本項技藝之人士進行各種變化及修飾, 而無虞悖離如後載之申請專利範圍所定義的本發明範圍及 精神。 【圖式簡單說明】 12 1322947 第1圖略圖說明一種可運用本項技術之資料處理系統。 第2圖略圖說明根據本項技術之一範例,三種不同位移 -及-插入指令的語法。 第3圖略圖說明一位移-及-插入指令之動作。 第4圖略圖說明一用以執行一位移-及-插入運算之硬體 排置方式。 第5圖說明在一純量處理系統内,像素數值包裝運算之 範例。 第6圖略圖說明在一單一指令多重資料系統内,像素數 值包裝運算之範例。 【主要元件符號說明】 2 資料處 理 系統 4 暫 存 器 存 庫 6 乘法器 8 位 移 器 10 加法器 12 指 令 解 碼 器 14 指令管 線 16 暫 存 器 18 資料部 分 20 暫 存 器. 22 來源暫 存 器 24 左 位 移 器 26 經位移 數 值 28 起 始 遮 罩 30 左位移 器 32 經 位 移 遮 罩 34 多重位 元 多工器 36 的 地 數 值 38 結果數 值 13
Claims (1)
1322947 你年Μ月^日修正本 拾、申請專利範圍: 1. 一種用於資料處理之設備,其至少包含: 複數個暫存器,該等暫存器係可運作以儲存待予操作之 資料數值; 處理邏輯,其係可運作以對於一或更多儲存在該等複數 個暫存器内之資料數值執行一資料處理運算;以及 一指令解碼器,其係可回應一程式指令以控制該處理邏 輯,俾執行一由該程式指令所標定之資料處理運算;其中 該指令解碼器係可回應一位移-及-插入指令以控制該 處理邏輯,俾執行一可產生一具有如下給定之結果數值的 一結果之位移-及-插入資料處理運算: 將一儲存在一第一暫存器内之第一資料數值位移Ν個 位元位置之位移量,以構成一含Ν個移入位元之經位移數 值,其中該Ν具有複數個不同非零數值之其一者;以及 除該等Ν個移入位元外,將該經位移數值之所有個別 位元插入在一儲存於一第二暫存器内之第二資料數值的相 對應位元位置内,而在相對應於該等Ν個移入位元之第二 資料數值内的各位元不予更動,藉此構成該結果,除該等 Ν個移入位元外之該經位移數值之該等所有個別位元,係 只依據該位移量來選擇。 2. 如申請專利範圍第1項之設備,其中該位移-及-插入指 令包含一標定Ν個位元位置之位移量的立即數值。 14 1322947 3.如申請專利範圍第1項之設備,其中該位移-及-插入指 令包含一可標定在一暫存器池庫裡,待用來作為該第一暫 存器之暫存器的暫存器標定攔位。 其中該位移-及-插入指 ,待用來作為該第二暫
其中該位移-及-插入指 ,待用來作為一目的地 4. 如申請專利範圍第1項之設備, 令包含一可標定在一暫存器池庫裡 存器之暫存器的暫存器標定攔位。 5. 如申請專利範圍第1項之設備, 令包含一可標定在一暫存器池庫裡 暫存器之暫存器的暫存器標定欄位 6. 如申請專利範圍第5項之設備,其中對於該目的地暫存 器之暫存器標定欄位係與該第一暫存器及第二暫存器其中 一者共享。
7. 如申請專利範圍第1項之設備,其中該第一資料數值係 經右位移。 8.如申請專利範圍第1項之設備,其中該第一資料數值係 經左位移。 9.如申請專利範圍第1項之設備,其中該第一資料數值及 15 1322947 該第二資料數值具有相同數量的位元。 10. 如申請專利範圍第1項之設備,其中回應於該位移 插入指令,該處理邏輯可運作以位移該第一資料數值 11. 如申請專利範圍第1項之設備,其中在回應該位移 插入指令時,該處理邏輯可運作以構成一用以選取該 資料數值裡哪些位元會被該經位移資料數值内之相對 元所替代,以及該第二資料數值裡的哪些位元不予更 遮罩數值。 12. 如申請專利範圍第1項之設備,其中該處理邏輯係 指令多重資料處理邏輯,且該第一暫存器及該第二暫 係一第一單一指令多重資料暫存器及一第二單一指令 資料暫存器之個別部分,而該位移-及-插入指令可運 平行於在個別處理列道内之複數個位移-及-插入運算 該執行作業加以控制。 1 3.如申請專利範圍第1項之設備,其中該處理邏輯係 處理邏輯。 14. 一種處理資料之方法,該方法包含如下步驟: 將待予處理之資料數值儲存於複數個暫存器内; -及- 〇 -及- 第二 應位 動的 單一 存器 多重 作以 ,對 純量 16 1322947 對儲存在該等複數個暫存器内之一或更多資料數值,利 用處理邏輯以執行一資料處理運算; 當回應一程式指令時,利用一指令解碼器以控制該處理 邏輯,俾執行一由該程式指令所標定之資料處理運算;其 中 該指令解碼器係回應於一位移-及-插入指令以控制該 處理邏輯,俾執行一產生一具一給定如下之結果數值的一 結果之位移-及-插入資料處理運算: 將一儲存在一第一暫存器内之第一資料數值位移N個 位元位置之位移量,以構成一含N個移入位元之經位移數 值,其中該N具有複數個不同非零數值之其一者;以及 除該等 N個移入位元外,將該經位移數值之所有個別 位元插入在一儲存於一第二暫存器内之第二資料數值的相 對應位元位置内,而在相對應於該等N個移入位元之第二 資料數值内的各位元不予更動,藉此構成該結果,除該等 N個移入位元外之該經位移數值之該等所有個別位元,係 只依據該位移量來選擇。 15. 如申請專利範圍第14項之方法,其中該位移-及-插入 指令包含一標定N個位元位置之位移量的立即數值。 16. 如申請專利範圍第14項之方法,其中該位移-及-插入 指令包含一可標定在一暫存器池庫裡,待用來作為該第一 暫存器之暫存器的暫存器標定欄位。 17 1322947 17.如申請專利範圍第14項之方法,其中該位移-及-插入 指令包含一可標定在一暫存器池庫裡,待用來作為該第二 暫存器之暫存器的暫存器標定欄位。
18.如申請專利範圍第14項之方法,其中該位移-及-插入 指令包含一可標定在一暫存器池庫裡,待用來作為一目的 地暫存器之暫存器的暫存器標定欄位》 19.如申請專利範圍第18項之方法,其中對於該目的地暫 存器之暫存器標定欄位係與該第一暫存器及第二暫存器其 中一者共享。 2 0.如申請專利範圍第14項之方法,其中該第一資料數值 係經右位移。
21.如申請專利範圍第14項之方法,其中該第一資料數值 係經左位移。 22. 如申請專利範圍第14項之方法,其中該第一資料數值 及該第二資料數值具有相同數量的位元。 23. 如申請專利範圍第14項之方法,其中回應於該位移- 18 1322947 及-插入指令,該處理邏輯可運作以位移該第一資料數值。 24. 如申請專利範圍第14項之方法,其中回應於該位移-及-插入指令,該處理邏輯可運作以構成一用以選取該第二 資料數值裡哪些位元會被該經位移資料數值内之相對應位 元所替代,以及該第二資料數值裡的哪些位元不予更動的 遮罩數值。
25. 如申請專利範圍第14項之方法,其中該處理邏輯係單 一指令多重資料處理邏輯,且該第一暫存器及該第二暫存 器係一第一單一指令多重資料暫存器及一第二單一指令多 重資料暫存器之個別部分,而該位移-及-插入指令可運作 以平行於在個別處理列道内之複數個位移-及-插入運算, 對該'執行作業加以控制。
2 6.如申請專利範圍第1 4項之方法,其中該處理邏輯係純 量處理邏輯。 19
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0405407A GB2411978B (en) | 2004-03-10 | 2004-03-10 | Inserting bits within a data word |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200530838A TW200530838A (en) | 2005-09-16 |
TWI322947B true TWI322947B (en) | 2010-04-01 |
Family
ID=32117417
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW093124095A TWI322947B (en) | 2004-03-10 | 2004-08-11 | Inserting bits within a data word |
Country Status (11)
Country | Link |
---|---|
US (1) | US7350058B2 (zh) |
EP (1) | EP1723512A2 (zh) |
JP (1) | JP2007528545A (zh) |
KR (1) | KR100981998B1 (zh) |
CN (1) | CN100538624C (zh) |
GB (1) | GB2411978B (zh) |
IL (1) | IL177507A (zh) |
MY (1) | MY137200A (zh) |
RU (1) | RU2006135629A (zh) |
TW (1) | TWI322947B (zh) |
WO (1) | WO2005088441A2 (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7529918B2 (en) * | 2006-07-21 | 2009-05-05 | Broadcom Corporation | System and method for efficiently performing bit-field extraction and bit-field combination operations in a processor |
JP4374363B2 (ja) * | 2006-09-26 | 2009-12-02 | Okiセミコンダクタ株式会社 | ビットフィールド操作回路 |
GB2475653B (en) * | 2007-03-12 | 2011-07-13 | Advanced Risc Mach Ltd | Select and insert instructions within data processing systems |
EP2232361A1 (en) * | 2007-12-05 | 2010-09-29 | Sandbridge Technologies, Inc. | Method and instruction set including register shifts and rotates for data processing |
CN102348111A (zh) * | 2010-07-30 | 2012-02-08 | 国家卫星气象中心 | 用于静止气象卫星数据广播的数据压缩结构识别码 |
US20120117360A1 (en) * | 2010-11-09 | 2012-05-10 | Texas Instruments Incorporated | Dedicated instructions for variable length code insertion by a digital signal processor (dsp) |
GB2485774A (en) | 2010-11-23 | 2012-05-30 | Advanced Risc Mach Ltd | Processor instruction to extract a bit field from one operand and insert it into another with an option to sign or zero extend the field |
US9823928B2 (en) * | 2011-09-30 | 2017-11-21 | Qualcomm Incorporated | FIFO load instruction |
CN111831335A (zh) * | 2011-12-23 | 2020-10-27 | 英特尔公司 | 经改进的插入指令的装置和方法 |
US9411593B2 (en) * | 2013-03-15 | 2016-08-09 | Intel Corporation | Processors, methods, systems, and instructions to consolidate unmasked elements of operation masks |
WO2014203034A1 (en) * | 2013-06-18 | 2014-12-24 | Freescale Semiconductor, Inc. | Signal processing device and method of performing a pack-insert operation |
CN104899522B (zh) * | 2015-06-09 | 2018-01-30 | 网易(杭州)网络有限公司 | 一种数据处理方法及装置 |
GB2540939B (en) * | 2015-07-31 | 2019-01-23 | Advanced Risc Mach Ltd | An apparatus and method for performing a splice operation |
US20170177350A1 (en) * | 2015-12-18 | 2017-06-22 | Intel Corporation | Instructions and Logic for Set-Multiple-Vector-Elements Operations |
US20170185402A1 (en) * | 2015-12-23 | 2017-06-29 | Intel Corporation | Instructions and logic for bit field address and insertion |
CN105892993B (zh) * | 2016-03-28 | 2019-02-15 | 龙芯中科技术有限公司 | 基于提取插入操作的重组方法、装置及微处理器 |
CN110912562A (zh) * | 2018-09-18 | 2020-03-24 | 深圳市茁壮网络股份有限公司 | 一种浮点数据处理方法、装置及存储介质 |
CN109891756B (zh) * | 2019-01-31 | 2023-03-28 | 香港应用科技研究院有限公司 | 可重置分段可缩放移位器 |
US10831479B2 (en) * | 2019-02-20 | 2020-11-10 | International Business Machines Corporation | Instruction to move data in a right-to-left direction |
Family Cites Families (58)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US131030A (en) * | 1872-09-03 | Improvement in portable furnaces | ||
US133682A (en) * | 1872-12-03 | Improvement in gates | ||
FR2253415A5 (zh) * | 1973-12-04 | 1975-06-27 | Cii | |
US4569016A (en) * | 1983-06-30 | 1986-02-04 | International Business Machines Corporation | Mechanism for implementing one machine cycle executable mask and rotate instructions in a primitive instruction set computing system |
US4876660A (en) | 1987-03-20 | 1989-10-24 | Bipolar Integrated Technology, Inc. | Fixed-point multiplier-accumulator architecture |
JPH0778735B2 (ja) | 1988-12-05 | 1995-08-23 | 松下電器産業株式会社 | キャッシュ装置と命令読出し装置 |
JPH05233281A (ja) | 1992-02-21 | 1993-09-10 | Toshiba Corp | 電子計算機 |
US5408670A (en) | 1992-12-18 | 1995-04-18 | Xerox Corporation | Performing arithmetic in parallel on composite operands with packed multi-bit components |
US5481743A (en) | 1993-09-30 | 1996-01-02 | Apple Computer, Inc. | Minimal instruction set computer architecture and multiple instruction issue method |
US5881302A (en) | 1994-05-31 | 1999-03-09 | Nec Corporation | Vector processing unit with reconfigurable data buffer |
US6009508A (en) | 1994-06-21 | 1999-12-28 | Sgs-Thomson Microelectronics Limited | System and method for addressing plurality of data values with a single address in a multi-value store on FIFO basis |
GB9412434D0 (en) | 1994-06-21 | 1994-08-10 | Inmos Ltd | Computer instruction compression |
GB9412487D0 (en) | 1994-06-22 | 1994-08-10 | Inmos Ltd | A computer system for executing branch instructions |
US5761103A (en) | 1995-03-08 | 1998-06-02 | Texas Instruments Incorporated | Left and right justification of single precision mantissa in a double precision rounding unit |
GB9509983D0 (en) | 1995-05-17 | 1995-07-12 | Sgs Thomson Microelectronics | Replication of data |
GB9509987D0 (en) | 1995-05-17 | 1995-07-12 | Sgs Thomson Microelectronics | Manipulation of data |
GB9509988D0 (en) | 1995-05-17 | 1995-07-12 | Sgs Thomson Microelectronics | Matrix transposition |
GB9509989D0 (en) | 1995-05-17 | 1995-07-12 | Sgs Thomson Microelectronics | Manipulation of data |
GB9513515D0 (en) | 1995-07-03 | 1995-09-06 | Sgs Thomson Microelectronics | Expansion of data |
GB9514695D0 (en) | 1995-07-18 | 1995-09-13 | Sgs Thomson Microelectronics | Combining data values |
GB9514684D0 (en) | 1995-07-18 | 1995-09-13 | Sgs Thomson Microelectronics | An arithmetic unit |
JP3526976B2 (ja) | 1995-08-03 | 2004-05-17 | 株式会社日立製作所 | プロセッサおよびデータ処理装置 |
US6295599B1 (en) | 1995-08-16 | 2001-09-25 | Microunity Systems Engineering | System and method for providing a wide operand architecture |
US5907865A (en) | 1995-08-28 | 1999-05-25 | Motorola, Inc. | Method and data processing system for dynamically accessing both big-endian and little-endian storage schemes |
AU6905496A (en) | 1995-09-01 | 1997-03-27 | Philips Electronics North America Corporation | Method and apparatus for custom operations of a processor |
US6088783A (en) | 1996-02-16 | 2000-07-11 | Morton; Steven G | DPS having a plurality of like processors controlled in parallel by an instruction word, and a control processor also controlled by the instruction word |
US5937178A (en) | 1996-02-13 | 1999-08-10 | National Semiconductor Corporation | Register file for registers with multiple addressable sizes using read-modify-write for register file update |
US6009191A (en) * | 1996-02-15 | 1999-12-28 | Intel Corporation | Computer implemented method for compressing 48-bit pixels to 16-bit pixels |
US5808875A (en) | 1996-03-29 | 1998-09-15 | Intel Corporation | Integrated circuit solder-rack interconnect module |
US6058465A (en) | 1996-08-19 | 2000-05-02 | Nguyen; Le Trong | Single-instruction-multiple-data processing in a multimedia signal processor |
US5838984A (en) | 1996-08-19 | 1998-11-17 | Samsung Electronics Co., Ltd. | Single-instruction-multiple-data processing using multiple banks of vector registers |
US5996066A (en) * | 1996-10-10 | 1999-11-30 | Sun Microsystems, Inc. | Partitioned multiply and add/subtract instruction for CPU with integrated graphics functions |
US6173366B1 (en) | 1996-12-02 | 2001-01-09 | Compaq Computer Corp. | Load and store instructions which perform unpacking and packing of data bits in separate vector and integer cache storage |
US5893145A (en) | 1996-12-02 | 1999-04-06 | Compaq Computer Corp. | System and method for routing operands within partitions of a source register to partitions within a destination register |
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 |
US5898896A (en) | 1997-04-10 | 1999-04-27 | International Business Machines Corporation | Method and apparatus for data ordering of I/O transfers in Bi-modal Endian PowerPC systems |
US5973705A (en) | 1997-04-24 | 1999-10-26 | International Business Machines Corporation | Geometry pipeline implemented on a SIMD machine |
US6047304A (en) | 1997-07-29 | 2000-04-04 | Nortel Networks Corporation | Method and apparatus for performing lane arithmetic to perform network processing |
US6209017B1 (en) | 1997-08-30 | 2001-03-27 | Lg Electronics Inc. | High speed digital signal processor |
GB2329810B (en) | 1997-09-29 | 2002-02-27 | Science Res Foundation | Generation and use of compressed image data |
US5864703A (en) | 1997-10-09 | 1999-01-26 | Mips Technologies, Inc. | Method for providing extended precision in SIMD vector arithmetic operations |
US5933650A (en) | 1997-10-09 | 1999-08-03 | Mips Technologies, Inc. | Alignment and ordering of vector elements for single instruction multiple data processing |
US6223198B1 (en) | 1998-08-14 | 2001-04-24 | Advanced Micro Devices, Inc. | Method and apparatus for multi-function arithmetic |
US6085213A (en) | 1997-10-23 | 2000-07-04 | Advanced Micro Devices, Inc. | Method and apparatus for simultaneously multiplying two or more independent pairs of operands and summing the products |
US6144980A (en) | 1998-01-28 | 2000-11-07 | Advanced Micro Devices, Inc. | Method and apparatus for performing multiple types of multiplication including signed and unsigned multiplication |
US6038583A (en) | 1997-10-23 | 2000-03-14 | Advanced Micro Devices, Inc. | Method and apparatus for simultaneously multiplying two or more independent pairs of operands and calculating a rounded products |
US6269384B1 (en) | 1998-03-27 | 2001-07-31 | Advanced Micro Devices, Inc. | Method and apparatus for rounding and normalizing results within a multiplier |
US6223277B1 (en) | 1997-11-21 | 2001-04-24 | Texas Instruments Incorporated | Data processing circuit with packed data structure capability |
US6223320B1 (en) | 1998-02-10 | 2001-04-24 | International Business Machines Corporation | Efficient CRC generation utilizing parallel table lookup operations |
US6334176B1 (en) | 1998-04-17 | 2001-12-25 | Motorola, Inc. | Method and apparatus for generating an alignment control vector |
US6292888B1 (en) | 1999-01-27 | 2001-09-18 | Clearwater Networks, Inc. | Register transfer unit for electronic processor |
GB2352065B (en) | 1999-07-14 | 2004-03-03 | Element 14 Ltd | A memory access system |
US6408345B1 (en) | 1999-07-15 | 2002-06-18 | Texas Instruments Incorporated | Superscalar memory transfer controller in multilevel memory organization |
US6546480B1 (en) | 1999-10-01 | 2003-04-08 | Hitachi, Ltd. | Instructions for arithmetic operations on vectored data |
US6430684B1 (en) * | 1999-10-29 | 2002-08-06 | Texas Instruments Incorporated | Processor circuits, systems, and methods with efficient granularity shift and/or merge instruction(s) |
US6748521B1 (en) | 2000-02-18 | 2004-06-08 | Texas Instruments Incorporated | Microprocessor with instruction for saturating and packing data |
US7685212B2 (en) * | 2001-10-29 | 2010-03-23 | Intel Corporation | Fast full search motion estimation with SIMD merge instruction |
US7272622B2 (en) * | 2001-10-29 | 2007-09-18 | Intel Corporation | Method and apparatus for parallel shift right merge of data |
-
2004
- 2004-03-10 GB GB0405407A patent/GB2411978B/en not_active Expired - Lifetime
- 2004-08-03 KR KR1020067018123A patent/KR100981998B1/ko active IP Right Grant
- 2004-08-03 WO PCT/GB2004/003343 patent/WO2005088441A2/en active Application Filing
- 2004-08-03 RU RU2006135629/09A patent/RU2006135629A/ru not_active Application Discontinuation
- 2004-08-03 EP EP04743646A patent/EP1723512A2/en not_active Withdrawn
- 2004-08-03 JP JP2007502375A patent/JP2007528545A/ja active Pending
- 2004-08-03 CN CNB2004800423443A patent/CN100538624C/zh not_active Expired - Lifetime
- 2004-08-11 TW TW093124095A patent/TWI322947B/zh not_active IP Right Cessation
- 2004-08-12 MY MYPI20043293A patent/MY137200A/en unknown
- 2004-08-30 US US10/928,748 patent/US7350058B2/en active Active
-
2006
- 2006-08-15 IL IL177507A patent/IL177507A/en active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
GB2411978B (en) | 2007-04-04 |
MY137200A (en) | 2009-01-30 |
EP1723512A2 (en) | 2006-11-22 |
WO2005088441A2 (en) | 2005-09-22 |
CN1926511A (zh) | 2007-03-07 |
KR100981998B1 (ko) | 2010-09-13 |
US7350058B2 (en) | 2008-03-25 |
GB0405407D0 (en) | 2004-04-21 |
GB2411978A (en) | 2005-09-14 |
IL177507A0 (en) | 2006-12-10 |
WO2005088441A3 (en) | 2006-06-22 |
US20050204117A1 (en) | 2005-09-15 |
KR20070028322A (ko) | 2007-03-12 |
JP2007528545A (ja) | 2007-10-11 |
RU2006135629A (ru) | 2008-04-20 |
TW200530838A (en) | 2005-09-16 |
IL177507A (en) | 2010-12-30 |
CN100538624C (zh) | 2009-09-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI322947B (en) | Inserting bits within a data word | |
US8271571B2 (en) | Microprocessor | |
DE69233412T2 (de) | Vorrichtung und Rechnerprogrammprodukt zur Ausführung von Verzweigungsbefehlen | |
JP4374363B2 (ja) | ビットフィールド操作回路 | |
TW201502995A (zh) | 具有simd處理電路系統的資料處理裝置 | |
KR20100101586A (ko) | 데이터 처리에 있어서 레지스터 시프트 및 회전을 포함하는 방법 및 명령어 세트 | |
KR102560424B1 (ko) | 와이드 데이터 타입들의 비교 | |
KR20100108509A (ko) | 레지스터 명령 필드를 인코딩하는 방법 | |
US6877019B2 (en) | Barrel shifter | |
US8051122B2 (en) | SIMD arithmetic device capable of high-speed computing | |
US8135229B1 (en) | Image processing method and device | |
EP1193594A2 (en) | Register renaming apparatus and processor | |
EP1634163B1 (en) | Result partitioning within simd data processing systems | |
JP2000322235A (ja) | 情報処理装置 | |
US20080320283A1 (en) | Programmable Data Processor for a Variable Length Encoder/Decoder | |
US20090083361A1 (en) | Shift-add based multiplication | |
JP2793342B2 (ja) | 演算処理装置 | |
WO2012137428A1 (ja) | データ処理装置、及びデータ処理方法 | |
US11327761B2 (en) | Processing device with vector transformation execution | |
JP2003241960A (ja) | プロセッサ、該プロセッサにおける演算命令処理方法及び演算制御方法 | |
US8730250B2 (en) | Image processor and command processing method | |
EP1204023A2 (en) | Register file circuitry | |
EP1251425A2 (en) | Very long instruction word information processing device and system | |
US6983297B2 (en) | Shifting an operand left or right while minimizing the number of multiplexor stages | |
US20030037088A1 (en) | Speed of execution of a conditional subtract instruction and increasing the range of operands over which the instruction would be performed correctly |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MK4A | Expiration of patent term of an invention patent |