JP2002522821A - データプロセッサとデータ処理方法 - Google Patents
データプロセッサとデータ処理方法Info
- Publication number
- JP2002522821A JP2002522821A JP2000564120A JP2000564120A JP2002522821A JP 2002522821 A JP2002522821 A JP 2002522821A JP 2000564120 A JP2000564120 A JP 2000564120A JP 2000564120 A JP2000564120 A JP 2000564120A JP 2002522821 A JP2002522821 A JP 2002522821A
- Authority
- JP
- Japan
- Prior art keywords
- fields
- storage unit
- field
- unit
- data processor
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title description 2
- 230000006835 compression Effects 0.000 claims description 24
- 238000007906 compression Methods 0.000 claims description 23
- 238000000034 method Methods 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims 4
- 230000006837 decompression Effects 0.000 description 16
- 230000004044 response Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000007792 addition Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000000873 masking effect Effects 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
- 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/30025—Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion
-
- 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/30098—Register arrangements
- G06F9/30105—Register structure
- G06F9/30109—Register structure having multiple operands in a single register
-
- 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/3017—Runtime instruction translation, e.g. macros
-
- 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/3017—Runtime instruction translation, e.g. macros
- G06F9/30178—Runtime instruction translation, e.g. macros of compressed or encrypted 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
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)
Abstract
Description
るプログラムのコンパイル方法とに関する。
表される圧縮データが使用される。例えば、ハフマン(Huffman)コーディングの
使用が、これに当たる。
を選択し、それらの選択されたビットを圧縮語に配置する。解凍は、圧縮語をと
り、その圧縮語からのビットの選択されたグループから解凍された信号値を得る
。数に対するグループの選択は、その圧縮語において先行する数に対して使用さ
れていたビットの長さと、その数自身に対して使用されるビットの長さとに依存
する。
ことができる。これには、例えば、レジスタ内容をシフトさせ、レジスタ内容を
組み合わせ、不必要なレジスタ内容をマスクすると言うようないくつかの命令を
実行することが含まれるであろう。
ジスタに作動するシフト命令を実行することができるデータプロセッサを記述し
ている。パックデータを含むレジスタは、多くの等しい長さのフィールド(例え
ば、16ビットの4つのフィールド)に組織化されている。データプロセッサは、
複数の数を指定された量分シフトさせるパックされたシフト命令を含む命令セッ
トを有する。このシフト命令は、2つのオペランドを有する。第一オペランドは
、第二オペランド内の各数に対して、各々、必要なシフト量を特定するいくつか
の量コードを含む。量コードは、第一レジスタ内にパックデータとして格納され
、数は第二レジスタにパックデータとして格納される。プロセッサは、各々が、
第一オペランドにおいて特定されるそれ自身の量分シフトされている、第二オペ
ランドからの種々の数を含む、パックされた結果を生成する。したがって、単一
命令を用いて、プロセッサに、複数のシフト演算を異なった数に実行させること
が可能である。
ために使用することができるが、信号値を圧縮または解凍するためには、依然と
して複数の命令を使用しななければならない。
/または解凍を行うことができるデータプロセッサを提供することである。
構成されている。このように、このプロセッサは、2つのオペランドレジスタの
ような2つの記憶ユニットに関する圧縮命令を有し、第一レジスタは、第二オペ
ランドレジスタの各数に与えられなければならないシフトの相対量を特定する一
つまたは複数のコードを含んでいる。この相対量は、例えば、第二オペランドレ
ジスタの各数が圧縮されなければならないビットの長さに対応する。これらの数
は、第二オペランドの異なったフィールドから得られ、そしてその結果は、これ
らのフィールドの一つ、または結果オペランドの他のフィールドに置くことがで
きる。データを圧縮するプログラム内のこの命令を使用することによって、圧縮
に必要な命令の数を、減小させることができる。これは、実行時間を節約し、プ
ログラムを格納するために必要なメモリー空間を減小させる。
に構成される。このように、このプロセッサは、2つのオペランドレジスタのよ
うな、2つの記憶ユニットに関する解凍命令を有し、第一レジスタは、第二オペ
ランドレジスタの各数が解凍されなければならないビットの長さを特定する一つ
または複数の長さコードを含む。データを解凍するプログラム内のこの命令を使
用することによって、圧縮に必要な命令の数を、減少させることができる。これ
は、実行時間を節約し、そしてプログラムを格納するために必要なメモリー空間
を減らす。
ような、命令セットの異なったサブセットからの命令を実行する異なった機能ユ
ニットを使用する。これらの機能ユニットは、例えば、算術/論理命令を実行す
る一つ以上の機能ユニット、シフト命令を実行する一つ以上の機能ユニットを含
む。これらの機能ユニットには、各々、レジスタの内容を異なったフィールドに
細分割する機能、またはいくつかの異なったフィールドへの細分割を取り扱うこ
とを可能とする多目的機能を持たせることが出来る。VLIWプロセッサの場合、こ
れらの異なった機能ユニットは、異なった命令の実行を、各々、並列にそれ自身
のサブセットから始めることができる。
シフト命令を実行する機能ユニットを使用して実行される。フィールドの内容を
個々にシフトさせるために使用されるシフト回路は、ビットのグループを同じフ
ィールド内にまたはそれからシフトさせるために使用される。
下の図面を使用して非制限的に後述される。
サには制限されないが、一例として、VLIWプロセッサが示されている。このプロ
セッサは、レジスタファイル10と、多くの機能ユニット12a-fと、命令発行ユニ
ット14とを含む。命令発行ユニット14は、機能ユニット12a-fへの命令発行接続
を有する。機能ユニット12a-fは、読み書きポートを介してレジスタファイル10
に接続されている。
をフェッチする。各命令語は、機能ユニット12a-fに対するいくつかの命令を含
むことができる。
ペコードに対するフィールドOPC、第一ソース・レジスタアドレスに対するフィ
ールドR1、第二ソース・レジスタアドレスに対するフィールドR2、結果レジスタ
・アドレスに対するフィールドRdestとオプションとしてガード・レジスタアド
レスに対するフィールドRgを含む。
令語から個々の命令を発行する。命令に応じて、ソース・レジスタアドレスに対
するフィールドR1, R2のソースレジスタ・アドレスの内容が、レジスタファイル
10からフェッチされる。機能ユニット12a-fは、オペコードに対するフィールド
からのオペコードに従って命令を処理し、そして処理の結果は、結果レジスタ・
アドレスRdestに対するフィールドのアドレスによって、レジスタアドレスのレ
ジスタファイル12に書き戻される。オプションとして、書き戻しを、ガードレジ
スタアドレスに対するフィールドRgによってアドレス指定が行われるレジスタの
内容に依存させても良い。
タとを使用する。例えば、レジスタが64ビット長である場合、通常の"ADD"命令
により、機能ユニット12a-fは、レジスタファイル10のソースレジスタからロー
ドされた2つの64ビット数を加え、そして64ビットの結果をレジスタファイル10
の宛先レジスタ内に配置させる。同様に、通常のシフト命令により、機能ユニッ
ト12a-fは、64ビットレジスタ内でビットをシフトさせる。このような通常の命
令の実行は、レジスタファイル10からデータをロードするステップと、関連する
演算を実行するステップと、結果を書き込むステップとを必要とする。
ータとして使用する命令を実行することができる。
ジスタ内容を示す。レジスタ内容30は、ビットの4つの等しい長さのフィールド3
2a-dに細分割されている。その一例では、レジスタ内容が64ビットにより構成さ
れ、各フィールドが16ビットから構成されている。
ースおよび/または宛て先レジスタ内のデータをパックデータとみなす。例えば
、加算命令の場合には、各対が、第一ソースレジスタからの一つのフィールドと
第二ソースレジスタからの一つのフィールドからなる、対応するフィールド32a-
dの対を加えることができる。この例では、各対の加算の結果は、宛先レジスタ
のフィールド32a-dの各々に書き込まれる。異なった対の加算は独立しているの
で、一つのフィールドから他方への桁上げインタラクションはない。
プ数は、通常の命令を実行するために必要なものと、通常、同じであるので、同
じ時間内に複数の演算を行うことができる。一般的に言って、一つのステップが
、ソースレジスタの内容をロードするために使用される。すなわち、パックデー
タの全ては、単一番号として扱われるレジスタの内容をロードするために使用さ
れる時間間隔と同じ間隔内に一つのステップでロードされる。一般的に言って、
関連する演算を実行するためには、一つのステップが使用される。すなわち、一
つのレジスタからパックされた異なった数への演算が、並列に実行される。一般
的に言って、宛先レジスタへの書込みには、一つのステップが使用される。すな
わち、パックデータの全ては、単一番号として扱われるレジスタの内容を書き込
むために使用される時間間隔と同じ間隔内に一つのステップで書き込まれる。
上させるように設計されている命令を有する少なくとも一つの機能ユニット12a-
fを有する。
ォーマットは、両方ともビット位置を空間的に示す。非圧縮データフォーマット
40は、等しい長さのフィールド44a-dと、別に示されたフィールド44a-dの部分46
a-dとを有するパック形式に対応する。圧縮データフォーマット42の場合、同じ
フィールド48a-dが、シフトされた部分47a-dと共に、示されている。シフトされ
た部分47a-d内の逐次ビットは、対応する部分46a-dの逐次ビットから導出される
。
フォーマット40の複数のフィールドからのビットは、圧縮データフォーマット42
の同一フィールド内に発生する。2つのシフトされた部分47a-dの"concatenation
"(連結)の意味する所は、一つのシフトされた部分47a-dのビットが、所定のビ
ット数離れたところ(好ましくは、ゼロビットの距離で直接)で、シフトされる
たびにそのシフトされた他の部分47a-dのビットに続くと言うことである。従っ
て、レジスタ内のシフトされた部分47a-dの位置は、それに先行するフィールド
の可変長さの合計に依存する。
ータフォーマットの可変長フィールド48a-dの間の対応も示す。原理的には、部
分46a-dの内容のみが、圧縮データ42に現れ、非圧縮データフォーマット40のフ
ィールド44a-dの残りは、圧縮データフォーマット42に現れない。
組合せを示す。非圧縮データフォーマット400は、部分406a,bを有する等しい長
さのフィールド404a,bを有する。圧縮データフォーマット402は、シフトされた
部分407a,bを有するフィールド408a,bと同じ細分を有する。
様な組合せを示す。非圧縮データフォーマット410は、部分416a-dを有する等し
い長さのフィールド414a-dを有する。圧縮データフォーマットは、同じフィール
ド418a-dに細分割され、そしてシフトされた部分417a-dを含む。非圧縮データフ
ォーマット410のフィールド414a-dは、対414a,b 414c,dとして扱われる。各対は
、図5の完全なデータフォーマットと同様に扱われる。
組合せを示すが、これは、それらの部分が異なったシーケンスにおいて連結され
ている点と、これらの部分が、異なったフィールド境界で位置合わせされている
点で、図4-6とは異なる。
、412への変換とその逆は、例えば、可変長圧縮と解凍において使用される。こ
の場合、例えば、他のビットがゼロであるという理由、または他のビットが、(
例えば、算術符号化の場合のように)異なった信号値を識別しないと言う理由で
、フィールド44a-dの限られた数のビットしか必要でないことは既知である。
圧縮フォーマット42または402への変換)および/または解凍に使用される、一
つまたは複数の命令 Bitconcat R1,R2,R3 Bitsplit R1,R2,R3 を実行することができる演算処理要素が、設けられている。
レジスタR1は、パック形式である。第一レジスタR1のフィールドは、一つまたは
複数の長さコード(例えば、フィールド境界から始まる、フィールド44a-d, 404
a,b 414a-dの部分46a-d, 406a,b 416a-dのビットの数を表す数)を含む。第二ソ
ースレジスタR2は、パックされた、非圧縮フォーマット40、400、410内のデータ
を含む。圧縮命令に応答して、機能ユニットは、圧縮フォーマット42、402内の
データを宛先レジスタR3に書き込む。すなわち、例えば、64ビットレジスタを有
する図5の場合、機能ユニットは: - R3 bits 0 to R1[0]-1 equal to bits 0 to R1[0] of R2 - R3 bits R1[0] to R1[0]+R1[1]-1 equal to bits 32 to 32+R1[1] of R2 と設定する。本明細書では、R1[0]、R1[1]等は、レジスタR1の異なったフィール
ドの内容(例えば、2つのフィールドを有する64ビットレジスタの場合のR1[0]ビ
ット0-31、R1[1]ビット32-63)を示す。もちろん、本願明細書において記述され
る特定のビット位置は、規定の事柄である。数が、(例えば、最下位から最上位
への異なったシーケンスを有するまたは異なったフィールドサイズを有する)異
なった方法で表される場合、ビット位置も、対応して異なるであろう。また、R1
の値は、直接長さに等しい数である必要はないが、それらを、例えば、フィール
ドの長さまたは長さを導出することができる長さコードに等しくすることはでき
る。
− R3 bits R1[0]+R1[1] to R1[0]+R1[1]+R1[2]-1 equal to bits 32 to − 32+R1[2] of R2 − R3 bits R1[0]+R1[1]+R1[2] to R1[0]+R1[1]+R1[2]+R1[3]-1 equal to bits 48 to R1[3] of R2 R1[0]、R1[1]等は、R1の異なったフィールドの内容(例えば、4つのフィールド
を有する64ビットレジスタの場合の、R1[0]ビット0-15、R1[1]ビット16-31、R1[
2]ビット32-47等)を示す。
処理することによって実現させることができる。例えば、図5の場合、Bitconcat
は R3= mask(0,R1 [0]1,R2) OR mask(32,32+R1[1],R2)<<(32-R1[0]) を生成する。ここで、mask(x,y,R)は、位置xからy-1までのビットを除いて、レ
ジスタRのビットをマスクすること(ゼロによる置換)を示す。"A<<B"は、Aのビ
ットをB位置分シフトすることを示し;OR A Bは、ビットごとのORを示し;C = O
R A Bの場合、位置0でのCからのビットは、位置0でのAとBからのビットと他の位
置に対するビットの論理ORである。
てすでにゼロであることは、既知であるので、マスク演算は、ビットを特定フィ
ールドから選択する選択演算によって置換させることができる。例えば、図5の
場合には R3= select0(R2) OR mask(select1(R2)<<(32-R1[0]) ここで、選択オペレータselect0とselect1は、2つの32ビットフィールドを有す
る64ビットレジスタの場合に、ビット0-31とビット32-64を選択する。これらの
選択演算は、R1[0]のような可変長パラメータを必要としないので、実施するの
がより容易である。
ニット12a-fの命令セットに"MASK_OP"命令を含ませる必要があるかもしれない。 MASK_OP R1,R2,R3 この命令を実行する機能ユニット12a-fは、ソースレジスタR1、R2と宛先レジス
タR3の内容を等しい長さフィールドのパックデータとして扱う。第一ソースレジ
スタR1のフィールドは、マスクされなければならないビットの数を符号化してい
る長さコードを含む。第二ソースレジスタR2のフィールドは、マスクされるデー
タを含む。機能ユニット12a-fは、パックされかつマスクされたデータを宛先レ
ジスタに書き込む: R3[0]=mask(0,R1[0],R2[0]) R3[1]=mask(0,R1[1],R2[1]) etc. マスクされるソースレジスタR2のビットが、ゼロになることが保証されていない
場合、圧縮のプログラムは、この場合 MASK_OP R1,R0,R2 Bitconcat R1,R2,R3 を読む。もちろん、マスクされるビットが常にゼロであることは判っている場合
には、MASK_OPは省略することが出来る。多くの圧縮プログラムが、このケース
に当たる。したがって、マスクを含むBitconcat演算は、圧縮に必要な命令の数
がより小さいという点で、有利である。実施するのがより簡単でかつより速いと
いう点で、マスクのないBitconcat演算は有利である;しかしながら、付加MASK_
OP命令が必要であるかもしれないが、これが常に当てはまる訳ではない。
の演算も示す。ここで、非圧縮データフォーマット40、400、410の残りは、ゼロ
で満たされていることが好ましい。
に対する命令を含む命令セットを有する。この命令は、圧縮命令のように、パッ
クデータと共に機能する。圧縮に対する場合と同様に、一つのステップが、関連
する演算を実行する実行に使用される、すなわち、一つのレジスタからの異なっ
たパックされた数への演算が、並列に実行される。一般的に言って、宛先レジス
タへの書込みには、一つのステップが使用される。すなわち、パックデータの全
ては、単一番号として扱われるレジスタの内容の書き込みに使用される時間間隔
と同じ間隔中に一つのステップで書き込まれる。
R1、R2と宛先レジスタR3を有する。第一ソースレジスタR1と結果レジスタR3の内
容は、パックデータR1[0], R1[1]等とR3[0], R3[1]等のフィールドとして扱われ
る。
る。Expand(a,b,R)は、ビット位置"a"から始まるレジスタRから"b"ビットを取り
、そして埋め込まれたゼロが続くこれらのbビットから始まる結果を発生させる
。例えば、(2つのフィールドを有するパックデータを使用する)図5に示される
解凍演算は、 R3[0]=expand(0,R1[0],R2) R3[1]=expand(R1[0],R1[1],R2) の効果を有する。オペランドから導出されないビット位置で、その結果をゼロで
埋め込むことは、必ずしも常に必要ではない。その例は、それらのビットが、プ
ログラム内の他の場所でいかなる重大な効果も生じさせない場合である。ゼロに
よる埋め込みが必要でない場合、Bitsplit命令は、 R3[0]=R2[0] R3[1]=R2[0]<<R1[0] により実現することができる。機能ユニットが、埋込み操作無しにBitsplit命令
のこのインプリメンテーションのみを提供し、かつ埋込み操作が必要な状況が発
生した時、プログラムはMASK_OPを含めて加算を提供することができる: Bitsplit R1,R2,R3 MASK_OP R1,R3,R4 図4の具体例の場合、4つのフィールドを有するパックデータを使用する解凍は、 R3[0]=expand(0,R1[0],R2) R3[1]=expand(R1[0],R1[1],R2) R3[2]=expand(R1[0]+R1[1],R1[2],R2) R3[3]=expand(R1[0]+R1[1]+R1[2],R1[3],R2) と言う効果を有する。これに代えて、図6の場合、4つのフィールドを、図5に対
して記述される型の2つの対として扱うことができる: R3[0]=expand(0,R1[0],R2) R3[1]=expand(R1[0],R1[1],R2) R3[2]=expand(32,32+R1[0],R2) R3[3]=expand(32+R1[0],32+R1[1],R2) (この例では、レジスタは、64ビット用に設計されている)。これらのどのケー
スの場合でも、ゼロによる埋込み操作が必要でない場合には、"expand"を、同じ
ソースフィールドに演算する異なったシフト演算によって置換させることができ
る。
す。この機能ユニットは、第一中間レジスタ50と第二中間レジスタ51を含む。こ
の機能ユニットは、第二中間レジスタ51の出力に結合されている4つの並列カス
ケードを含む。各カスケードは、逐次、選択ユニット51a-d、シフトユニット52a
-d、マスクユニット53a-dを含む。マスクユニット53a-dの出力は、ORユニット54
に結合されている。さらに、機能ユニットは命令デコーダ58を含む。命令デコー
ダ58は、命令入力端と第一中間レジスタ50の出力端とに結合されている入力端を
有する。命令デコーダ58の出力端は、選択ユニット51a-dの制御入力端と、シフ
トユニット52a-dと、マスクユニット53a-dとに結合されている。
される可変長データを圧縮/解凍する命令とを実行することができる。
される。オペランドアドレスがレジスタファイルに供給され、これらのアドレス
によってアドレス指定が行われるオペランドが、それぞれ、第一および第二中間
レジスタ50、51にロードされる。
ンドを、単一番号として扱うべきかパックされたオペランドとして扱うべきかを
決定し、そして、後者の場合、第二オペランドは、フィールドに分割されなけれ
ばならない。
し、選択されたフィールドのビットをシフトユニット54a-dにパスし;他のビッ
トを、ゼロにする。フィールドの所望の数に基づいて、デコーダ58は、フィール
ドと、各選択ユニット53a-dが選択するフィールドのサイズとを制御する選択ユ
ニット53a-dに選択シグナルを供給する。例えば、第一および第二選択ユニット5
3a,bが、それぞれ第二オペランドのビットの第一および第二の半分を選択し、ま
たは第一〜四選択ユニット53a-dが、第二オペランドの四半分を逐次選択するこ
とができる。
フトさせる。原理的には、各シフトユニット53a-dは、中間レジスタ51と同じビ
ットを供給する。各シフトユニット53a-dによって遂行されるシフトの量は、第
一中間レジスタ50に格納されている第一オペランドと、オペコードとによって決
定される。各シフトユニット54a-dは、そのビットを異なった量シフトさせるこ
とが出来る。
からORユニットにパスさせ;他のビットをゼロにする。特定のフィールドga 、命令デコーダ58から供給されるオペコードが要求する信号によって選択される
。
すなわち、シフトユニット54a-bによる語出力の各ビットは、他のシフトユニッ
ト54a-dによる語出力内の対応する位置からのビットにより論理的にOR処理が行
われている。ORユニット55の出力は、機能ユニットによる処理の結果を形成し、
命令によってアドレス指定が行われる結果レジスタに結果を書き込む、レジスタ
ファイルの書込みポートに結合されている。
きる。例えば、全体として第二オペランドの内容に通常のシフトを必要とするオ
ペコードに応答して、命令デコーダは、次の制御を行う; − 第一選択ユニット52aが、第二中間レジスタ51からビットの全てを選択し
、他のシフトユニットは、全くビットを選択しないように制御し、 − シフト量を、第一中間レジスタ50から、第一シフトユニット53aの制御入
力端にパスさせることを可能にし、 − 第一マスクユニット54aが、第一シフトユニット53aからの全てのビットを
ORユニット55にパスさせる制御信号を受信し;他のマスクユニット54b-cは如何
なるビットもパスさせない。 同様に、第二オペランドの異なったフィールドからの個々の数に別個のシフトを
要求するオペコードに応答して: − 各選択ユニット52a-dを、第二中間レジスタ51の各フィールドからビット
を選択するように制御することを可能にし(例えば、第二オペランドの第一およ
び第二の半分、または第一、第二、第三および第四四半分); − シフト量を、第一中間レジスタ50の各フィールドから、各シフトユニット
53a-dの制御入力端にパスさせることを可能にし; − マスクユニット54a,bが、第一および第二シフトユニット53a,bからビット
の各フィールドをORユニット55にパスする制御信号を受信する。 より詳しくは、図4に示される圧縮に対する"bitconcat"命令の受信に応じて、命
令デコーダは、 − 第一および第二選択ユニット53a,bに、第二オペランドから第一および第
二フィールドを選択させ、 − 第一オペランドの長さコードから決定される、第一フィールドのビットの
所望の長さ分第一フィールドの長さを減らすことによってシフト量を決定し、 − 0シフト量を第一シフトユニット54aに、かつシフト制御信号としてのシフ
ト量を第二シフトユニット54bに供給し、 − 第一および第二マスクユニット54a,bに、第一および第二シフトユニット5
3a,bの両方から第一フィールドのビットのみをパスさせる。
り可変距離後の位置で連結される。例えば、第二オペランドの4つのフィールド
からフィールドの対を連結するために、または例えば、異なったサイズのフィー
ルドを連結するために、異なったbitconcat命令を実行する他のオペコードを、
適切な制御信号により実現することができる。同様に、3つ以上のフィールドか
らのビットの変数を、連結させることができる。後者の場合、第一オペランドは
、第二オペランドの各フィールドのビットのグループの長さ11、12、13の逐次合
計0、11、11+12、11+12+13を含むことができる。この場合、これらの合計を、シ
フトユニット53a-dによってシフト量を制御するために使用することができる。
これに代えて、長さ11、12、13そのものを第一オペランドに存在させても良い。
この場合、命令デコーダ58がそれ自身で合計を決定することができる。
受信に応じて、命令デコーダ58は、 − 第一および第二選択ユニット53a,bに、第二オペランドから第一フィール
ドを選択させ、 − 第一オペランドの長さコードから決定されるビットの所望の長さ分第一フ
ィールドの長さを減らすことによってシフト量を決定し、 − シフト制御信号としてのシフト量を第二シフトユニット54bに、かつ0シフ
ト量を第一シフトユニット54aに供給し、 − 第一および第二マスクユニット54a,bに、それぞれ、第一および第二シフ
トユニット53a,bから第一および第二フィールドのビットのみをパスさせる。 分割命令によって生成される結果の第一フィールドから不必要なビットを抑制す
るために、この分割命令は、MASK_OP命令に先行することが好ましい。同様に、b
itconcat命令の第二オペランドの第一フィールドからの不必要なビットによる干
渉を抑制するために、このbitconcat命令を、MASK_OP命令の後に置いてもよい。
能な数が選択されまたはパスされるように、選択ユニット52a-dおよび/または
マスクユニット54a-dを設けても良い。この場合、命令デコーダ58は、第一中間
レジスタの第一オペランドのフィールドから長さコードを、不必要なビットを抑
制するために必要なビットの数を制御するために、選択ユニット52a-dおよび/
またはマスクユニットに53a-dに供給することができる。このようなインプリメ
ンテーションにより、付加マスク命令をさらに必要とすることはない。
この場合、何の付加MASK_OP命令も必要とされない。
せず)と共に、4つのマスク生成ユニット(図示せず)を機能ユニットに加える
ことができる。この場合、各マスクユニット54a-dごとにマスク生成ユニットが
存在する。各マスク生成ユニットは、その対応するマスクユニット54a-dによっ
て選択されるフィールドの各ビットに対して各ビットマスクを有する。マスク生
成ユニットは、第一オペランドから長さコードについての情報を受信し、受信さ
れた長さコードによって決定されるビット位置で多くの逐次ビットに対して論理
的に"1"であるマスクビットを生成する(ここで、MASK_OPは、上述したようにビ
ットをパスさせ、残りのマスクビットは論理的に"0"である)。これらのマスク
ビットは、マスクユニット54a-dの出力によりビットごとにAND処理され、その結
果はOR-ユニット54に供給される。
きる。マスクビットの生成は、シフトユニット53a-dのそれと同様でかつそれら
のシフトユニットと並列に作動することができる複雑さを有する回路を必要とす
るので、命令の実行は、ビットごとのANDユニットによってわずかしか遅延しな
い。
より大きいまたはより小さい数のフィールドを用い、マスクユニットの有無にか
かわらず、種々の機能ユニットの実施を、実現することができることは、明らか
であろう。
されている入力(さらにオプションとしてロジック1とロジック0の入力)を有し
ている、命令デコーダと、結果のN出力ビットの各々に対する各N入力マルチプレ
クサとを含む機能ユニットが、使用されるかもしれない。命令デコーダは、第一
オペランドのフィールドのオペコードと長さコードに応じて、個々に各々のマル
チプレクサを制御するので、bitconcatまたはbitsplit命令の場合、適切な入力
端からのビットは、出力端のビットに供給される。命令デコーダは、各マルチプ
レクサを制御するNlogN-bitデータ語により、オペコードと長さコードの最下位
ビットによってアドレス指定が行われるROMとして実施されるかもしれない。ROM
の代わりに、等価論理回路を、使用することもできる。原理的には、このような
機能ユニットは、ビットの如何なるリシャッフリングも実現させることが出来る
が、もちろん、Nが大きい場合(例えば、64ビット)、bitconcatおよび/または
bitsplitに対応するリシャッフリングが実現されたリシャッフリングの中にある
、少数のリシャッフリングのみを実現することができる。
ールド内に共に配置することによってデータを圧縮するプログラムを実行するこ
とは、可能である。同じフィールドを、データが導出される複数のフィールドの
代りにそのフィールドのみを使用し、例えば、データを転送するまたは格納する
ために、続いて使用することができる。続いて、このデータを、データを複数の
フィールドに分割することによって解凍させることができる。この種のプログラ
ムが、bitconcatおよびbitsplitを有する命令および圧縮を実行するとき、圧縮
や解凍に必要な命令の数は減少するので、プログラムはより速くかつより小さく
なる。
す。
Claims (16)
- 【請求項1】 データプロセッサが、フィールドの各々からの数を別々に扱うよ
うにさせる命令を実行するために、所定の同一フィールドに細分割することが可
能な記憶ユニットを使用するデータプロセッサであって、 前記プロセッサの命令セットが、前記記憶ユニットの第一および第二ユニット
のアドレス指定を行う位置を備えた命令を有し、 − それぞれ前記記憶ユニットの第一ユニットの前記フィールドの第一および第
二フィールドから逐次ビットの第一および第二グループを取得することと、 − 前記シフトされた位置間のビット位置距離が、前記記憶ユニットの前記第二
ユニットの内容によって制御されていて、結果記憶ユニット内の各シフトされた
位置に逐次ビットの前記第一および第二グループを配置すること、 とにより前記命令に応答するように構成されているデータプロセッサにおいて、 前記第一および第二グループが、両者とも、結果記憶ユニットの前記フィール
ドの第三フィールドに配置されていることを特徴とするデータプロセッサ。 - 【請求項2】 前記第一および第二グループが、それぞれ、前記フィールドの第
一および第二フィールドの境界から始まり、前記第一グループが、前記第三フィ
ールドの対応する境界から始まる位置に配置され、前記対応する境界に対する前
記第二グループの位置が、前記記憶ユニットの第二ユニットの当該内容によって
制御される、請求項1に記載のデータプロセッサ。 - 【請求項3】 各々が前記命令セットのそれ自身のサブセットを実行する、複数
の機能ユニットを有し、シフト命令を含むサブセットを実行する前記機能ユニッ
トの第一ユニットが、当該命令を実行するように構成されている、請求項1に記
載のデータプロセッサ。 - 【請求項4】 前記機能ユニットの前記第一ユニットが、各々が、前記フィール
ドを個別にシフトさせるシフト命令内の前記フィールドの各々の内容をシフトさ
せる、各シフト回路を有し、前記命令が、当該第一グループをシフトさせる当該
シフト回路の少なくとも一つを使用して実施される、請求項3に記載のデータプ
ロセッサ。 - 【請求項5】 前記フィールドの第一および第二フィールドとは異なる、前記記
憶ユニットの第一ユニットの前記フィールドの第四および第五フィールドから、
逐次ビットの第三と第四グループを取得することによって、前記データプロセッ
サが、当該命令に応答するように構成されていて、かつ 前記結果記憶ユニット内の前記フィールドの第四フィールド内の各シフトされ
た位置の両者に逐次ビットの第三および第四グループを配置し、 前記シフトされた位置間のビット位置距離が、前記記憶ユニットの第二ユニッ
トの内容によって制御されている、請求項1に記載のデータプロセッサ。 - 【請求項6】 データプロセッサが、フィールドの各々からの数を別々に扱う命
令を実行させるために、所定の同一フィールドに細分割することが出来る記憶ユ
ニットを使用するデータプロセッサであって、 前記プロセッサの命令セットが、前記記憶ユニットの第一および第二ユニット
のアドレス指定を行う、位置を備えた命令を有し、 − 前記フィールドの第一フィールドから第一および第二グループが取得されて
いる位置の間のビット位置距離が、前記記憶ユニットの第二ユニットの内容によ
って制御されていて、前記記憶ユニットの第一ユニットから、逐次ビットの第一
および第二グループを取得し、 − 逐次ビットの前記第一および第二グループを、結果記憶ユニット内の異なっ
たフィールドの所定の位置に配置する ことにより、前記命令に対応するように構成されているデータプロセッサにおい
て、 前記第一および第二グループが、両者とも、前記記憶ユニットの前記第一ユニ
ットの前記フィールドの第一フィールドから取得されていることを特徴とするデ
ータプロセッサ。 - 【請求項7】 前記第一グループが、前記第一フィールドの境界で始まる位置か
ら取得されていて、前記第二グループが、前記記憶ユニットの前記第二ユニット
の当該内容によって決定される前記境界に対する位置から取得されていて、前記
第一および第二グループが、前記フィールドの第一および第二フィールドの対応
する境界に各々配置されている、請求項6に記載のデータプロセッサ。 - 【請求項8】 各々が前記命令セットのそれ自身のサブセットを実行する、複数
の機能ユニットを有し、シフト命令を含むサブセットを実行する前記機能ユニッ
トの第一ユニットが、当該命令を実行するように構成されている、請求項6に記
載のデータプロセッサ。 - 【請求項9】 前記機能ユニットの前記第一ユニットが、各々が、前記フィール
ドを個別にシフトさせるシフト命令内の前記フィールドの各フィールドの内容を
シフトさせる、各シフト回路を有し、前記命令が、シフト個々に前記フィールド
当該第一グループをシフトする当該シフト回路の少なくとも一つを使用して実施
される、請求項8に記載のデータプロセッサ。 - 【請求項10】 前記記憶ユニットの前記第一ユニットの前記フィールドの第二
フ
ィールドから、逐次ビットの第三および第四グループを両者とも取得することに
よって、前記データプロセッサが、当該命令に応答するように構成されていて、 前記第三および第四および第二グループが、前記フィールドの前記第二フィー
ルドから取得されている位置間の別のビット位置距離が、前記記憶ユニットの前
記第二ユニットの内容によって制御されていて、 前記結果記憶ユニットの別の異なったフィールドの所定の位置に逐次ビットの
前記第三と第四グループを配置する、請求項6のデータプロセッサ。 - 【請求項11】 データプロセッサが、フィールドの各々からの数を別々に扱う
よ
うにさせる命令を実行するために、所定の同一フィールドに細分割することが出
来る記憶ユニットを使用するデータプロセッサによるデータ処理方法であって、
− 前記記憶ユニットの第一および第二ユニットのアドレス指定を行う命令をロ
ードすることと、 − 前記第一および第二記憶ユニットの前記フィールドをロードすることと、 − 前記記憶ユニットの前記第一ユニットからロードされた前記フィールドの第
一および第二フィールドから、各々、逐次ビットの第一および第二グループを取
得することと、 − 前記シフトされた位置間のビット位置距離が、前記記憶ユニットの前記第二
一方の内容によって制御されていて、結果記憶ユニット内の各シフトされた位置
に逐次ビットの前記第一および第二グループを配置することとを 有するデータの処理方法において、 前記第一および第二グループが、両者とも、結果記憶ユニットの前記フィール
ドの第三フィールドに配置されていることを特徴とする方法。 - 【請求項12】 前記記憶ユニットの前記第二ユニットの当該内容の制御の下で
可
変である、可変数のビットを使用して、前記結果記憶ユニットが、圧縮フォーム
の前記フィールドの前記第一および第二フィールドからの情報を格納および/ま
たは転送するために使用される、請求項11の方法。 - 【請求項13】 データプロセッサが、フィールドの各々からの数を別々に扱う
よ
うにさせる命令を実行するために、所定の同一フィールドに細分割することが出
来る記憶ユニットを使用するデータプロセッサによるデータ処理方法であって、
− 前記記憶ユニットの第一および第二ユニットのアドレス指定を行う命令をロ
ードすることと、 − 前記第一および第二記憶ユニットの前記フィールドをロードすることと、 − 前記記憶ユニットの前記第一ユニットの前記フィールドから逐次ビットの第
一および第二グループを取得することと、 前記第一および第二グループが、前記フィールドの前記第一フィールドから取
得される位置間のビット位置距離が、前記記憶ユニットの前記第二ユニットの内
容によって制御されていて、 − 結果記憶ユニットの異なったフィールドの所定の位置に逐次ビットの前記第
一および第二グループを配置することとを、 有するデータの処理方法において、 前記第一および第二グループが、両者とも、結果記憶ユニットの前記フィール
ドの第三フィールドに置かれていることを特徴とする方法。 - 【請求項14】 前記結果記憶ユニットが、前記フィールドの一つ内の圧縮情報
を
読み込みおよび/または受信するために使用され、前記圧縮情報が、ビットの変
数を使用するコーディングであり、かつ当該圧縮情報を前記異なったフィールド
に広げる、請求項13に記載の方法。 - 【請求項15】 前記コンピュータプログラムが、ビットの変数によるコーディ
ン
グデータ語を含み、 前記方法が、記憶ユニットの前記第一および第二フィールドに、第一および第
二のデータ語を配置する別の命令の生成と、前記データ語をビットの変数と組み
合わせる当該命令の生成とを含む、請求項1に記載のデータプロセッサに対する
コンピュータプログラムのコンパイル方法。 - 【請求項16】 前記コンピュータプログラムが、コード語のビットの可変の数
に
よりコード化されたデータ語の復号化を含む、請求項6に記載のデータプロセッ
サに対するコンピュータプログラムのコンパイル方法。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP98202647 | 1998-08-06 | ||
EP98202647.8 | 1998-08-06 | ||
EP98203382.1 | 1998-10-07 | ||
EP98203382 | 1998-10-07 | ||
PCT/EP1999/005519 WO2000008552A1 (en) | 1998-08-06 | 1999-07-29 | Data processor and method of processing data |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2002522821A true JP2002522821A (ja) | 2002-07-23 |
Family
ID=26150604
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000564120A Pending JP2002522821A (ja) | 1998-08-06 | 1999-07-29 | データプロセッサとデータ処理方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US6438676B1 (ja) |
EP (1) | EP1046100A1 (ja) |
JP (1) | JP2002522821A (ja) |
WO (1) | WO2000008552A1 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012137428A1 (ja) * | 2011-04-08 | 2012-10-11 | パナソニック株式会社 | データ処理装置、及びデータ処理方法 |
JP5168143B2 (ja) * | 2006-06-15 | 2013-03-21 | 日本電気株式会社 | プロセッサ、および、命令制御方法 |
KR20210095599A (ko) * | 2020-07-15 | 2021-08-02 | 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. | 명령 수행 결과를 라이트백하기 위한 장치 및 방법, 프로세싱 장치 |
JP2022546615A (ja) * | 2019-09-10 | 2022-11-04 | アップル インコーポレイテッド | 圧縮支援命令 |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6633969B1 (en) * | 2000-08-11 | 2003-10-14 | Lsi Logic Corporation | Instruction translation system and method achieving single-cycle translation of variable-length MIPS16 instructions |
US7202872B2 (en) * | 2003-10-29 | 2007-04-10 | Via Technologies, Inc. | Apparatus for compressing data in a bit stream or bit pattern |
US7457940B2 (en) * | 2004-11-16 | 2008-11-25 | International Business Machines Corporation | System and method for managing data |
US7783862B2 (en) * | 2006-08-07 | 2010-08-24 | International Characters, Inc. | Method and apparatus for an inductive doubling architecture |
US8392174B2 (en) | 2006-08-07 | 2013-03-05 | International Characters, Inc. | Method and apparatus for lexical analysis using parallel bit streams |
US10534606B2 (en) | 2011-12-08 | 2020-01-14 | Oracle International Corporation | Run-length encoding decompression |
US9342314B2 (en) | 2011-12-08 | 2016-05-17 | Oracle International Corporation | Efficient hardware instructions for single instruction multiple data processors |
US9697174B2 (en) | 2011-12-08 | 2017-07-04 | Oracle International Corporation | Efficient hardware instructions for processing bit vectors for single instruction multiple data processors |
CN107545066B (zh) | 2011-12-08 | 2021-01-15 | 甲骨文国际公司 | 用于在易失性存储器内保持关系型数据的列向量的技术 |
US9792117B2 (en) | 2011-12-08 | 2017-10-17 | Oracle International Corporation | Loading values from a value vector into subregisters of a single instruction multiple data register |
US9292569B2 (en) | 2012-10-02 | 2016-03-22 | Oracle International Corporation | Semi-join acceleration |
EP2972788B1 (en) * | 2013-03-15 | 2019-08-21 | Oracle International Corporation | Efficient hardware instructions for single instruction multiple data processors |
US9378232B2 (en) | 2013-09-21 | 2016-06-28 | Oracle International Corporation | Framework for numa affinitized parallel query on in-memory objects within the RDBMS |
US10025822B2 (en) | 2015-05-29 | 2018-07-17 | Oracle International Corporation | Optimizing execution plans for in-memory-aware joins |
US9990308B2 (en) | 2015-08-31 | 2018-06-05 | Oracle International Corporation | Selective data compression for in-memory databases |
US10061832B2 (en) | 2016-11-28 | 2018-08-28 | Oracle International Corporation | Database tuple-encoding-aware data partitioning in a direct memory access engine |
US10061714B2 (en) | 2016-03-18 | 2018-08-28 | Oracle International Corporation | Tuple encoding aware direct memory access engine for scratchpad enabled multicore processors |
US10055358B2 (en) | 2016-03-18 | 2018-08-21 | Oracle International Corporation | Run length encoding aware direct memory access filtering engine for scratchpad enabled multicore processors |
US10402425B2 (en) | 2016-03-18 | 2019-09-03 | Oracle International Corporation | Tuple encoding aware direct memory access engine for scratchpad enabled multi-core processors |
US10380058B2 (en) | 2016-09-06 | 2019-08-13 | Oracle International Corporation | Processor core to coprocessor interface with FIFO semantics |
US10783102B2 (en) | 2016-10-11 | 2020-09-22 | Oracle International Corporation | Dynamically configurable high performance database-aware hash engine |
US10459859B2 (en) | 2016-11-28 | 2019-10-29 | Oracle International Corporation | Multicast copy ring for database direct memory access filtering engine |
US10176114B2 (en) | 2016-11-28 | 2019-01-08 | Oracle International Corporation | Row identification number generation in database direct memory access engine |
US10725947B2 (en) | 2016-11-29 | 2020-07-28 | Oracle International Corporation | Bit vector gather row count calculation and handling in direct memory access engine |
EP3376371A1 (en) * | 2017-03-16 | 2018-09-19 | Nxp B.V. | Microprocessor system and method for load and unpack and store and pack instructions |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08161148A (ja) * | 1994-12-02 | 1996-06-21 | Hitachi Ltd | データ切り出し装置 |
WO1997032278A1 (en) * | 1996-02-15 | 1997-09-04 | Intel Corporation | Computer implemented method for compressing 48-bit pixels to 16-bit pixels |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
ZA9510127B (en) | 1994-12-01 | 1996-06-06 | Intel Corp | Novel processor having shift operations |
US6275834B1 (en) * | 1994-12-01 | 2001-08-14 | Intel Corporation | Apparatus for performing packed shift operations |
GB9509983D0 (en) * | 1995-05-17 | 1995-07-12 | Sgs Thomson Microelectronics | Replication of data |
US5742840A (en) * | 1995-08-16 | 1998-04-21 | Microunity Systems Engineering, Inc. | General purpose, multiple precision parallel operation, programmable media processor |
US5621674A (en) * | 1996-02-15 | 1997-04-15 | Intel Corporation | Computer implemented method for compressing 24 bit pixels to 16 bit pixels |
US6052769A (en) * | 1998-03-31 | 2000-04-18 | Intel Corporation | Method and apparatus for moving select non-contiguous bytes of packed data in a single instruction |
US6098087A (en) * | 1998-04-23 | 2000-08-01 | Infineon Technologies North America Corp. | Method and apparatus for performing shift operations on packed data |
-
1999
- 1999-07-29 EP EP99944312A patent/EP1046100A1/en not_active Withdrawn
- 1999-07-29 WO PCT/EP1999/005519 patent/WO2000008552A1/en active Application Filing
- 1999-07-29 JP JP2000564120A patent/JP2002522821A/ja active Pending
- 1999-08-04 US US09/366,709 patent/US6438676B1/en not_active Expired - Lifetime
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08161148A (ja) * | 1994-12-02 | 1996-06-21 | Hitachi Ltd | データ切り出し装置 |
WO1997032278A1 (en) * | 1996-02-15 | 1997-09-04 | Intel Corporation | Computer implemented method for compressing 48-bit pixels to 16-bit pixels |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5168143B2 (ja) * | 2006-06-15 | 2013-03-21 | 日本電気株式会社 | プロセッサ、および、命令制御方法 |
WO2012137428A1 (ja) * | 2011-04-08 | 2012-10-11 | パナソニック株式会社 | データ処理装置、及びデータ処理方法 |
CN102884505A (zh) * | 2011-04-08 | 2013-01-16 | 松下电器产业株式会社 | 数据处理装置、和数据处理方法 |
US8604946B2 (en) | 2011-04-08 | 2013-12-10 | Panasonic Corporation | Data processing device and data processing method |
CN102884505B (zh) * | 2011-04-08 | 2016-01-20 | 松下电器产业株式会社 | 数据处理装置和数据处理方法 |
JP5853177B2 (ja) * | 2011-04-08 | 2016-02-09 | パナソニックIpマネジメント株式会社 | データ処理装置、及びデータ処理方法 |
JP2022546615A (ja) * | 2019-09-10 | 2022-11-04 | アップル インコーポレイテッド | 圧縮支援命令 |
JP7385009B2 (ja) | 2019-09-10 | 2023-11-21 | アップル インコーポレイテッド | 圧縮支援命令 |
US11822921B2 (en) | 2019-09-10 | 2023-11-21 | Apple Inc. | Compression assist instructions |
KR20210095599A (ko) * | 2020-07-15 | 2021-08-02 | 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. | 명령 수행 결과를 라이트백하기 위한 장치 및 방법, 프로세싱 장치 |
KR102579097B1 (ko) | 2020-07-15 | 2023-09-15 | 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. | 명령 수행 결과를 라이트백하기 위한 장치 및 방법, 프로세싱 장치 |
Also Published As
Publication number | Publication date |
---|---|
US6438676B1 (en) | 2002-08-20 |
EP1046100A1 (en) | 2000-10-25 |
WO2000008552A1 (en) | 2000-02-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2002522821A (ja) | データプロセッサとデータ処理方法 | |
US11669330B2 (en) | Method for performing random read access to a block of data using parallel LUT read instruction in vector processors | |
US7159100B2 (en) | Method for providing extended precision in SIMD vector arithmetic operations | |
US7069423B2 (en) | Microcomputer | |
EP0780760B1 (en) | Data processing device with instruction set extension | |
JP3790619B2 (ja) | 正値化処理及び飽和演算処理からなる丸め処理を好適に行うことができるプロセッサ | |
EP1267256A2 (en) | Conditional execution of instructions with multiple destinations | |
US20050198471A1 (en) | Micro-controller for reading out compressed instruction code and program memory for compressing instruction code and storing therein | |
EP1267257A2 (en) | Conditional execution per data path slice | |
JP2009026106A (ja) | 命令コード圧縮方法と命令フェッチ回路 | |
EP0297897A2 (en) | A microinstruction sequencer capable of instructing arithmetic, logical and data move operations in a conditional manner | |
JPH04172533A (ja) | 電子計算機 | |
EP1267258A2 (en) | Setting up predicates in a processor with multiple data paths | |
US4347566A (en) | Data processor with register file and arithmetic logic circuit on one chip and register means directly connected to the chip | |
EP1267255A2 (en) | Conditional branch execution in a processor with multiple data paths | |
EP1680735A2 (en) | Apparatus and method that accomodate multiple instruction sets and multiple decode modes | |
JPH1165839A (ja) | プロセッサの命令制御機構 | |
JPH05150979A (ja) | 即値オペランド拡張方式 | |
JP2000322235A (ja) | 情報処理装置 | |
JP3727395B2 (ja) | マイクロコンピュータ | |
JP3841820B2 (ja) | マイクロコンピュータ | |
JP2006344238A (ja) | 並列プロセッサ及びそれを用いた画像処理装置 | |
JP3765782B2 (ja) | マイクロコンピュータ | |
JP4294190B2 (ja) | 並列プロセッサ及びそれを用いた画像処理装置 | |
JPS60238932A (ja) | デ−タ処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A625 | Written request for application examination (by other person) |
Free format text: JAPANESE INTERMEDIATE CODE: A625 Effective date: 20060728 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080715 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080825 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20081121 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20081201 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090225 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20090225 |
|
A072 | Dismissal of procedure [no reply to invitation to correct request for examination] |
Free format text: JAPANESE INTERMEDIATE CODE: A073 Effective date: 20100216 |
|
A072 | Dismissal of procedure [no reply to invitation to correct request for examination] |
Free format text: JAPANESE INTERMEDIATE CODE: A073 Effective date: 20100217 |
|
A072 | Dismissal of procedure [no reply to invitation to correct request for examination] |
Free format text: JAPANESE INTERMEDIATE CODE: A073 Effective date: 20100309 |
|
A072 | Dismissal of procedure [no reply to invitation to correct request for examination] |
Free format text: JAPANESE INTERMEDIATE CODE: A073 Effective date: 20100330 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100414 |