JP3891609B2 - 並べ換え装置 - Google Patents
並べ換え装置 Download PDFInfo
- Publication number
- JP3891609B2 JP3891609B2 JP20138496A JP20138496A JP3891609B2 JP 3891609 B2 JP3891609 B2 JP 3891609B2 JP 20138496 A JP20138496 A JP 20138496A JP 20138496 A JP20138496 A JP 20138496A JP 3891609 B2 JP3891609 B2 JP 3891609B2
- Authority
- JP
- Japan
- Prior art keywords
- register
- contents
- rearrangement
- reordering
- input register
- 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.)
- Expired - Fee Related
Links
- 230000008707 rearrangement Effects 0.000 claims description 30
- 238000012545 processing Methods 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 6
- 238000000638 solvent extraction Methods 0.000 claims description 3
- 230000008878 coupling Effects 0.000 claims description 2
- 238000010168 coupling process Methods 0.000 claims description 2
- 238000005859 coupling reaction Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 3
- 239000010410 layer Substances 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000000034 method Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/76—Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
- G06F7/762—Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data having at least two separately controlled rearrangement levels, e.g. multistage interconnection networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/76—Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Executing Machine-Instructions (AREA)
Description
【産業上の利用分野】
本発明は、コンピュータに関連するものであり、とりわけ、それに用いられるシフタ装置に関するものである。
【0002】
【従来技術及びその問題点】
コンピュータ・プロセッサは、一般に特定のワード・サイズについて最適化される。例えば、32または64ビットに対して最適化されたプロセッサが市販されている。プロセッサ・レジスタ及びデータ経路は、同様に、設計ワード幅と同じ幅のオペランドを効率よく処理するように設計されている。同じレジスタ及びデータ経路でそれより狭いオペランドの処理を行うことは可能であるが、データ経路の利用効率が悪くなる。
【0003】
多くのアプリケーションについてのデータの精度は、データを操作するコンピュータのワードのビット・サイズよりも小さいことがしばしばある。このようなシステムの場合、複数のデータ項目を単一ワードにパックするのが有利である。これによって、データに必要とされる記憶域が減少し、メモリには、通常、ワード単位でアクセスするので、メモリのアクセス時間が短縮される。しかし、ワード中のデータ項目を再配列しなければならない場合には、それによって追加される処理時間が、データがワードにパックされなければ被るメモリ・アクセス時間より長くなるかもしれないので、この利点の多くが損なわれる。
【0004】
例えば、イメージアプリケーションは、多数の短いデータ・ワードを取り扱うことがしばしばある。例えば、白黒イメージは、各ピクセルがイメージ中の1点の輝度を表す8ビットの整数である、ピクセル値のアレイとして表現されることがしばしばある。1000×1000のピクセル・イメージは、100万バイトの記憶を必要とする。イメージ・データの効率的な記憶及び移動を行うため、データはより大きいワードにパックされることがしばしばある。例えば、64ビット・データ・ワードについて最適化されたコンピュータ・システムでは、8つのピクセル値を、夫々64ビット・ワードにパックすることができる。これにより、単一メモリ・サイクルで8ピクセルが移動できるようになり、同時に、イメージの記憶に必要なメモリ・ワード数が減少する。あいにく、個々のピクセル値について計算を実行しなければならない場合には、何らかの形のパック解除操作を利用して、残りのピクセル値から個々の値を分離しなければならない。
【0005】
一般に、従来のコンピュータ・プロセッサは、2つのオペランドを利用する。このオペランドは、通常、2つのレジスタに記憶される。このプロセッサは、命令によって指定されたこれらのオペランドを変換し、次に、その結果を別のレジスタに書き戻す。レジスタに複数のオペランドをパックする場合、レジスタ内でこれらのオペランドの再配列つまり並べ換えを実行可能であることが望ましい場合が多い。先行技術によるシステムでは、プロセッサは、レジスタの内容を基本単位として取り扱うように最適化されているので、このような再配列は時間を浪費する。一般に、レジスタ内の指定されたフィールドは、一連のシフト及びマスキング操作によってしか抽出することはできない。例えば、レジスタ内の4つのデータ項目の一般的な並べ換えには、通常、大部分の汎用プロセッサではかなりの個数の命令を必要とする。
【0006】
【目的】
本発明の目的は、一般に、改良された機能単位を提供することにある。
【0007】
本発明のもう1つの目的は、データ・ワードのサブフィールドの並べ換えを、繰り返し付きで、あるいは繰り返しなしで、単一命令で行うことができる機能単位を提供することにある。
【0008】
本発明の以上の及びその他の目的については、当業者には、本発明に関する下記の詳細な説明及び添付の図面から明らかになるであろう。
【0009】
【概要】
本発明は、入力レジスタの内容に操作を加えて、入力レジスタの内容を並べ換えたものを含む出力レジスタの内容を生成するための装置である。この装置は、入力レジスタを、夫々入力レジスタ内の位置と1ビットを超える長さで指定される複数のサブワードに区分する。本発明は、入力レジスタの再配列を指定する命令に応答して、入力レジスタ内のサブワードの少なくとも1つを、入力レジスタ内でそのサブワードが占める位置とは異なるところの出力レジスタ内の位置に振り当てる。出力レジスタ内のこれらのサブワードの順序は、単一のシフト命令によって達成することのできる順序とは異なる。本発明の望ましい実施例では、本発明は、マルチプレクサの複数のレイヤを設けた従来のシフタを修正することによって実現される。この修正は、少なくとも1つのレイヤ中の少なくとも1つのマルチプレクサについての制御信号を独立してセッティングすることを含む。
【0010】
【実施例】
本発明の動作方法については、本発明による並べ換えプロセッサ20のブロック図である図1を参照することによって、より容易に理解することができるだろう。一般に、プロセッサ20は、いくつかのデータ項目がパックされているソース・レジスタ15の内容を操作する。図1に示す例では、各レジスタ中にはパックされた4つの項目が存在する。ソース・レジスタ15中の項目は11〜14で示されている。並べ換えプロセッサ20は、ソース・レジスタ15中のデータ項目を再配置して、ターゲット・レジスタ25中にデータ項目を生成する態様を指定した順序ワードを受け入れる。本発明の望ましい実施例では、並べ換えプロセッサ20は、ターゲット・レジスタ、順序ワード、及びソース・レジスタを指定する命令を受け入れる。
【0011】
並べ換えプロセッサ20は、繰り返しを伴う並べ換えと繰り返しを伴わない並べ換えの両方をサポートする。繰り返しを伴わない並べ換えでは、ソース・レジスタ内のデータ項目はターゲット・レジスタ内で順序を付け直されるが、項目の複写または消去は行われない。図1に示す再配列は、繰り返しを伴わない並べ換えの例である。ソース・レジスタ15には、データ要素「abcd」が含まれている。ソース・レジスタ15の繰り返しを伴わない並べ換えは、「bcad」である。繰り返しを伴う並べ換えの例には、「cbbd」がある。繰り返しを伴う並べ換えは、「組み合わせ」の特定の例である。組み合わせでは、重要なのは各要素の繰り返し回数だけである。すなわち各要素の順序は重要ではない。例えば、「aabb」及び「abab」は同じ組み合わせであるが、繰り返しを伴う異なる並べ換えである。本書で用いられる並べ換えという用語は、文脈中で別の指示がない限り、繰り返しを伴う並べ換え及び伴わない並べ換えと、組み合わせの両方を表している。
【0012】
本発明の一実施例では、順序ワードは、ターゲット・レジスタに項目が現れるべき順序でこれらの項目が並んでいる、ターゲット・レジスタ中の項目のリストである。順序ワード中のビット数は、各レジスタにパック可能な最大データ項目数によって決まる。図1に示す例では、ソース・レジスタ及びターゲット・レジスタは、夫々4つのデータ項目を備えている。可能性のある4つのデータ項目の1つであるデータ項目を指定するには2ビットが必要になる。従って、この例では、順序ワードは、4つの2ビット・サブワードとして編成される8ビットを必要とする。ソース・レジスタ中の項目は、0〜n−1とラベル付けされる。図1に示す並べ換えに関する順序ワードが、26に示されている。同様に、「abcd」→「cbbd」という組み合わせ再配列は、(10 01 01 11)という順序ワードによって表現される。
【0013】
本発明のこの実施例では、並べ換えプロセッサ20は、ほぼ全ての汎用コンピュータの整数データ経路中に存在するシフタを修正したものを利用して実現される。本発明の望ましい実施例では、シフタは複数のマルチプレクサ・ステージを設けている。本発明の望ましい実施例において必要とされるのは、これらのマルチプレクサ・ステージの少なくとも1つにおいて、各マルチプレクサ毎に独立した制御が確立されることだけである。
【0014】
しかし、従来のシフタを上述のように修正したものを利用した本発明の望ましい実施例について解説する前に、本発明による並べ換えプロセッサを実現したものに関するブロック図である図2を参照して、本発明の幾分単純な実施例について解説することにする。本発明のこの実施例は、単一のマルチプレクサ・レイヤ45を用いて実施される。本発明のこの実施例では、ソース・レジスタ55中の各サブワードは、対応するマルチプレクサによって、ターゲット・レジスタ65中の可能性のある各サブワードに結合される。ソース・レジスタのサブワードが51〜54で示され、ターゲット・レジスタのサブワードが61〜64で示されている。本発明のこの実施例では、マルチプレクサはターゲット・レジスタのサブワードに対応づけられており、ターゲット・レジスタのサブワード61〜64に対応したマルチプレクサが夫々41〜44で示されている。各マルチプレクサは、上述の順序ワードを保持する順序レジスタ75の異なるサブワードによって制御される。各マルチプレクサはサブワードを移動させる。従って、サブワードの長さが8ビットの場合、各マルチプレクサは8ビット幅のマルチプレクサである。
【0015】
図2に示す実施例は比較的単純であるけれども、従来の汎用コンピュータで実現するには、汎用コンピュータの処理装置にハードウェアを追加することが必要になる。上述のように、本発明の望ましい実施例は、従来のシフタに既に存在するマルチプレクサを共用し、これによって、従来のコンピュータ設計にマルチプレクサを追加する必要をなくすことによって、図2に示す実施例に対して更なる利点が得られるようにする。
【0016】
以下の説明を単純化するため、特定のワード・サイズを使用するが、当業者には明らかなように、この例の教示を利用して、他のワードサイズを実現することもできる。64ビット・ワードを使用するコンピュータについて考察する。このようなコンピュータ中の従来のシフタは、図3に100で示す3ステージの4:1マルチプレクサとして実現することができる。最初のステージは16ビットの倍数、すなわち0、16、32、または48ビットだけ入力をシフトする。第2ステージ185は、このステージへの入力を、4ビットの倍数、すなわち0、4、8、または12ビットだけシフトする。最終ステージ186は、1ビット単位で0〜3ビットだけ入力をシフトする。シフタが、0〜64ビットのシフトを行うものとして実現される場合、最終ステージは、入力を4ビットまで右にシフトする。しかし、単純化のため、以下の説明では0〜63ビットのシフト範囲であると仮定する。
【0017】
従来の制御ラインを変更してマルチプレクサの制御を順序レジスタの内容によって決まる値に設定できるならば、16ビットのサブワードが並べ換えに用いられる場合、シフタ100の最初のステージは図2に示す本発明の単純な実施例と全く同じになる。このような構成が図3に示されており、最初のステージのマルチプレクサ141〜144は順序レジスタ175の内容によって制御される。並べ換え生成器として用いられる場合、第2及び第3ステージのマルチプレクサの制御ラインはゼロにセットされる。シフタとして用いられる場合、順序レジスタは最初のステージマルチプレクサの夫々に同じ入力が供給されるようにセットされ、185及び186で示すマルチプレクサの第2及び第3ステージは従来の態様でセットされる。
【0018】
以上の説明では、ソース・レジスタ155及びターゲット・レジスタ165は、並べ換えを実現するため、16ビット以上のサブワードに分割されるものと仮定された。もっと短いサブワードが必要とされ、また並べ換えの全集合を生成しなければならない場合、本発明の望ましい実施例では、マルチプレクサの最初のステージがこのような並べ換えを実現できるようにシフタを再設計した、シフタの異なる実施例が使用される。例えば、8ビットのサブワードを使用すべき場合、上述の64ビット・シフタは、2ステージのマルチプレクサとして実現できる。従って、最初のステージで、並べ換えの全集合を生成することができる。
【0019】
全集合よりも小さい並べ換え集合しか生成する必要がないなら、並べ換えの所望の部分集合に応じて、第2ステージ及び/または第3ステージのマルチプレクサも使用するという設計もできる。この設計では、第2及び/または第3ステージのマルチプレクサの制御ラインは、許容される並べ換えの集合中の少なくとも1つの並べ換えに関して、これらのステージ中のマルチプレクサの少なくとも1つが、当該ステージ中の他のマルチプレクサとは異なる制御信号を受信するように設定される。
【0020】
コンピュータ・プログラムの一部としてしばしば実行される、数学計算の実現にとりわけ有効ないくつかの並べ換えが存在する。これらについては、下記の表Iに要約されている。例示のため、ソース・レジスタは、「abcdefgh」で表示の8つのサブワードに分割されるものと仮定する。
【0021】
【表1】
【0022】
シャッフル並べ換え及び混合並べ換えは、入力レジスタを2つの4サブワード・レジスタとして取り扱う。第1のレジスタからの1つのサブワードと第2のレジスタからの1つのサブワードを交互に取り出すことによって、出力レジスタの内容がアセンブルされる。交番(alternate)並べ換えは、サブワードを1つおきに出力レジスタに移動し、次に残りのサブワードを移動する。同報並べ換えは、同じサブワードを出力レジスタの全ての位置でを繰り返す。上の表Iのリストには、可能性のある同報並べ換えのうちの2つだけしかないが、当業者には明らかなように、同報並べ換えは入力レジスタ中の任意のサブワードについて行うことができる。最後に、交換並べ換えはサブワード各対の順序を逆にする。
【0023】
当業者には明らかなように、本発明に他の特殊な並べ換えを組み込むのが有利なこともある。例えば、条件付き交換を実現する、つまり並べ換えを指定する命令中の各サブワード対に対応するビット値に従ってサブワードを条件付きで並べ替える、こともできる。この実現形態は、8つのサブワードの16通りの異なる特定の並べ換えのうち任意のものを4ビットだけで指定することができる。問題となる16通りの並べ換え及び対応する4ビットを表IIに示す。
【0024】
【表2】
【0025】
本発明の上述の実施例は、命令に含まれる順序ワードを利用するものであるが、順序ワードが間接的に指定される実施例も可能である。順序ワードの長さが命令の許容可能な長さを超えるためにサブワード数が対応する順序ワードを1命令に収容する妨げとなるほどに多くなる場合には、このような実施例がとりわけ有効である。このような実施例では、順序ワードは、命令中で指定される1つまたは複数のレジスタに置くことができる。順序ワードは、命令に中で指定されたメモリのアドレスに置くこともできる。最後に、順序ワードは、予め定められたロケーションに置くこともできる。この場合、命令は順序ワードのロケーションを暗黙裡に指定する。
【0026】
並べ換えの全集合を実現するのではない実施例では、実現される並べ換えに番号を付けてもよい。この場合、命令または命令によって指示されるレジスタが並べ換え番号を含む。すると、適切なマッピング・テーブルが並べ換え番号をそれと等価な順序ワードに変換する。
【0027】
上述の実施例は、レジスタにストアされる順序ワードに関して説明したが、順序ワードが実際にはレジスタに入っていない実現形態も可能である。このような実現形態では、順序ワードの諸ビットは、マルチプレクサの適切な制御ラインによって直接生成される。例えば、並べ換えの部分集合しか実際には行われない実施例では、並べ換え番号を変換するマッピング回路は、並べ換えを実際に行うマルチプレクサに与えるための対応する論理信号を発生することしか必要とされない。これらの実施例では、「順序ワード」は適切ないくつかの信号ライン上の論理レベルの集合として存在するだけである。
【0028】
以上の説明では、出力レジスタ中のサブワードの少なくとも1つが入力レジスタ中の対応するサブワードとは異なる並べ換えが強調されたが、当業者には明らかなように、本発明は入力レジスタと出力レジスタが同一になる恒等並べ換えもサポートする。
【0029】
当業者には、以上の説明及び添付の図面から本発明に対する各種修正が明らかであろう。従って、本発明は請求の範囲によってのみ限定されるとしなければならない。
【0030】
以下に本発明の実施の態様の例を列挙する。
【0031】
[実施の態様1]入力レジスタの内容を操作して、前記入力レジスタの前記内容の並べ換えを行った出力レジスタの内容を生成するための装置において、
前記入力レジスタを、夫々前記入力レジスタ中の位置及び1ビットを超える長さで特徴つけられる複数のサブワードに区分するための手段と、
命令に応答して、前記サブワードの少なくとも1つを、前記入力レジスタ中で前記サブワードが占める前記位置とは異なる、前記出力レジスタ中の位置に振り当てるための手段
を設けたことを特徴とする並べ換え装置。
【0032】
[実施の態様2]前記入力レジスタ中の前記サブワードの少なくとも1つが、前記出力レジスタに2回以上現れることを特徴とする、実施の態様1に記載の並べ換え装置。
【0033】
[実施の態様3]前記命令が、前記出力レジスタの内容を指定するビット・パターンを含むことを特徴とする、実施の態様1に記載の並べ換え装置。
【0034】
[実施の態様4]前記出力レジスタの前記内容が、前記命令によって識別されるワードによって指定されることを特徴とする、実施の態様1に記載の並べ換え装置
【0035】
[実施の態様5]前記出力レジスタの前記内容が、前記命令中の値によって指定され、前記値が予め定められた並べ換え集合中の並べ換えの何れかを指定することを特徴とする、実施の態様1に記載の装置。
【0036】
[実施の態様6]前記並べ換え集合中の前記並べ換えの1つが、逆順並べ換え、シャッフル並べ換え、混合並べ換え、交番並べ換え、同報並べ換え、交換並べ換え、または条件付き交換並べ換えの何れかであることを特徴とする、実施の態様5に記載の並べ換え装置。
【0037】
[実施の態様7]前記振り当て手段が、前記入力レジスタ中のサブワードを前記出力レジスタ中の複数のサブワードの任意の1つに結合する複数のマルチプレクサを設けたことを特徴とする、実施の態様1に記載の並べ換え装置。
【0038】
[実施の態様8]第1のステージと最終ステージを含む複数の順序付きマルチプレクサ・ステージを設け、マルチプレクサの前記第1のステージが入力として前記入力レジスタの内容を与えられ、マルチプレクサの前記最終ステージが出力として前記出力レジスタの前記内容を与え、前記マルチプレクサが夫々入力と出力の間の接続を指定する制御ラインによって制御され、シフト操作を行う際には前記各ステージ中の前記マルチプレクサが全て前記制御ライン上で同じ制御信号を受信する、入力レジスタの内容をシフトして出力レジスタの内容を生成するための装置を備えたデータ処理システムにおいて、
前記入力レジスタの内容の並べ換えを指定する命令に応答して前記マルチプレクサの少なくとも1つのステージの前記制御ラインを別個に制御することによって、前記ステージ中の別のマルチプレクサに供給される前記制御信号とは異なる制御信号が、前記ステージ中の少なくとも1つのマルチプレクサに供給されるようにしたことを特徴とするデータ処理システム。
【図面の簡単な説明】
【図1】本発明による並べ換えプロセッサのブロック図。
【図2】マルチプレクサの単一レイヤを用いて実現された、本発明による並べ換え及び組み合わせプロセッサの実施形態に関するブロック図。
【図3】本発明の実施例を与えるように修正された、従来のシフタの一部に関するブロック図。
【符号の説明】
15:ソース・レジスタ
20:並べ換えプロセッサ
25:ターゲット・レジスタ
41、42、43、44:マルチプレクサ
45:マルチプレクサ・レイヤ
55:ソース・レジスタ
65:ターゲット・レジスタ
75:順序レジスタ
100:シフタ
141、142、143、144:マルチプレクサ
155:ソース・レジスタ
165:ターゲット・レジスタ
175:順序レジスタ
Claims (8)
- 入力レジスタの内容を操作して、前記入力レジスタの前記内容の並べ換えを行った出力レジスタの内容を生成するための装置において、
前記入力レジスタを、夫々前記入力レジスタ中の位置及び1ビットを超える長さで特徴つけられる複数のサブワードに区分するための手段と、
命令に応答して、前記複数のサブワードの内の2つ以上それぞれを、前記入力レジスタ中で前記サブワードが占める前記位置とは異なる、前記出力レジスタの中の位置の1つ以上に振り当て、サブワードの繰り返しを伴う並べ替えを行うための手段と
を設けたことを特徴とする並べ換え装置。 - 入力レジスタの内容を操作して、前記入力レジスタの前記内容の並べ換えを行った出力レジスタの内容を生成するための装置において、
前記入力レジスタを、夫々前記入力レジスタ中の位置及び1ビットを超える長さで特徴つけられる複数のサブワードに区分するための手段と、
命令に応答して、前記複数のサブワードの内の2つ以上それぞれを、前記入力レジスタ中で前記サブワードが占める前記位置とは異なる、前記出力レジスタの中の位置の1つ以上に振り当て、逆順並べ換え、シャッフル並べ換え、混合並べ換え、交番並べ換え、同報並べ換え、または交換並べ換えを行うための手段と
を設けたことを特徴とする並べ換え装置。 - 前記命令が、前記出力レジスタの内容を指定するビット・パターンを含むこと
を特徴とする請求項1に記載の並べ換え装置。 - 前記出力レジスタの前記内容が、前記命令によって識別されるワードによって指定されること
を特徴とする請求項1に記載の並べ換え装置。 - 前記出力レジスタの前記内容が、前記命令中の値によって指定され、前記値が予め定められた並べ換え集合中の並べ換えの何れかを指定すること
を特徴とする請求項1に記載の並べ換え装置。 - 前記並べ換え集合中の前記並べ換えの1つが、逆順並べ換え、シャッフル並べ換え、混合並べ換え、交番並べ換え、同報並べ換え、交換並べ換え、または条件付き交換並べ換えの何れかであること
を特徴とする請求項5に記載の並べ換え装置。 - 前記振り当て手段が、前記入力レジスタ中のサブワードを前記出力レジスタ中の複数のサブワードの任意の1つに結合する複数のマルチプレクサを設けたこと
を特徴とする請求項1に記載の並べ換え装置。 - 第1のステージと最終ステージを含む複数の順序付きマルチプレクサ・ステージを設け、
マルチプレクサの前記第1のステージが入力として前記入力レジスタの内容を与えられ、
マルチプレクサの前記最終ステージが出力として前記出力レジスタの前記内容を与え、
前記マルチプレクサが夫々入力と出力の間の接続を指定する制御ラインによって制御され、
シフト操作を行う際には前記各ステージ中の前記マルチプレクサが全て前記制御ライン上で同じ制御信号を受信する、入力レジスタの内容をシフトして出力レジスタの内容を生成するための装置
を備えたデータ処理システムにおいて、
前記入力レジスタの内容の並べ換えを指定する命令に応答して前記マルチプレクサの少なくとも1つのステージの前記制御ラインを別個に制御することによって、前記ステージ中の別のマルチプレクサに供給される前記制御信号とは異なる制御信号が、前記ステージ中の少なくとも1つのマルチプレクサに供給されるようにしたこと
を特徴とするデータ処理システム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/509,867 US6381690B1 (en) | 1995-08-01 | 1995-08-01 | Processor for performing subword permutations and combinations |
US509,867 | 1995-08-01 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH09106342A JPH09106342A (ja) | 1997-04-22 |
JP3891609B2 true JP3891609B2 (ja) | 2007-03-14 |
Family
ID=24028413
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP20138496A Expired - Fee Related JP3891609B2 (ja) | 1995-08-01 | 1996-07-31 | 並べ換え装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US6381690B1 (ja) |
EP (1) | EP0757312A1 (ja) |
JP (1) | JP3891609B2 (ja) |
Families Citing this family (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5742840A (en) * | 1995-08-16 | 1998-04-21 | Microunity Systems Engineering, Inc. | General purpose, multiple precision parallel operation, programmable media processor |
US6643765B1 (en) * | 1995-08-16 | 2003-11-04 | Microunity Systems Engineering, Inc. | Programmable processor with group floating point operations |
GB9727399D0 (en) | 1997-12-29 | 1998-02-25 | Sgs Thomson Microelectronics | Data manipulation |
GB9727400D0 (en) | 1997-12-29 | 1998-02-25 | Sgs Thomson Microelectronics | Decoding apparatus |
EP3073388A1 (en) | 1998-03-18 | 2016-09-28 | Koninklijke Philips N.V. | Data processing device and method of computing the cosine transform of a matrix |
US6041404A (en) * | 1998-03-31 | 2000-03-21 | Intel Corporation | Dual function system and method for shuffling packed data elements |
US7174014B2 (en) | 2000-05-05 | 2007-02-06 | Teleputers, Llc | Method and system for performing permutations with bit permutation instructions |
US6922472B2 (en) * | 2000-05-05 | 2005-07-26 | Teleputers, Llc | Method and system for performing permutations using permutation instructions based on butterfly networks |
JP2003533829A (ja) * | 2000-05-05 | 2003-11-11 | リー,ルビー,ビー. | 改良されたオメガおよびフリップステージに基づく置換命令を用いて置換を実行するための方法およびシステム |
US7620832B2 (en) * | 2000-09-20 | 2009-11-17 | Mips Technologies, Inc. | Method and apparatus for masking a microprocessor execution signature |
US7181484B2 (en) * | 2001-02-21 | 2007-02-20 | Mips Technologies, Inc. | Extended-precision accumulation of multiplier output |
US7237097B2 (en) * | 2001-02-21 | 2007-06-26 | Mips Technologies, Inc. | Partial bitwise permutations |
US7711763B2 (en) | 2001-02-21 | 2010-05-04 | Mips Technologies, Inc. | Microprocessor instructions for performing polynomial arithmetic operations |
US7162621B2 (en) * | 2001-02-21 | 2007-01-09 | Mips Technologies, Inc. | Virtual instruction expansion based on template and parameter selector information specifying sign-extension or concentration |
US7318145B1 (en) | 2001-06-01 | 2008-01-08 | Mips Technologies, Inc. | Random slip generator |
US7624138B2 (en) | 2001-10-29 | 2009-11-24 | Intel Corporation | Method and apparatus for efficient integer transform |
US20040054877A1 (en) | 2001-10-29 | 2004-03-18 | Macy William W. | Method and apparatus for shuffling data |
US7818356B2 (en) * | 2001-10-29 | 2010-10-19 | Intel Corporation | Bitstream buffer manipulation with a SIMD merge instruction |
US7739319B2 (en) * | 2001-10-29 | 2010-06-15 | Intel Corporation | Method and apparatus for parallel table lookup using SIMD instructions |
US7725521B2 (en) * | 2001-10-29 | 2010-05-25 | Intel Corporation | Method and apparatus for computing matrix transformations |
US7685212B2 (en) * | 2001-10-29 | 2010-03-23 | Intel Corporation | Fast full search motion estimation with SIMD merge instruction |
US7631025B2 (en) * | 2001-10-29 | 2009-12-08 | Intel Corporation | Method and apparatus for rearranging data between multiple registers |
US7039795B2 (en) * | 2002-06-14 | 2006-05-02 | Texas Instruments Incorporated | System and method for using a two-stage multiplexing architecture for performing combinations of passing, rearranging, and duplicating operations on data |
US7202872B2 (en) * | 2003-10-29 | 2007-04-10 | Via Technologies, Inc. | Apparatus for compressing data in a bit stream or bit pattern |
US7783690B2 (en) * | 2005-07-07 | 2010-08-24 | International Business Machines Corporation | Electronic circuit for implementing a permutation operation |
WO2007057832A2 (en) * | 2005-11-15 | 2007-05-24 | Nxp B.V. | Vector shuffle unit |
US20070226469A1 (en) * | 2006-03-06 | 2007-09-27 | James Wilson | Permutable address processor and method |
US8156310B2 (en) * | 2006-09-11 | 2012-04-10 | International Business Machines Corporation | Method and apparatus for data stream alignment support |
GB2443439B (en) | 2006-10-30 | 2009-06-03 | Imagination Tech Ltd | Digital electronic binary rotator and reverser |
US8285766B2 (en) * | 2007-05-23 | 2012-10-09 | The Trustees Of Princeton University | Microprocessor shifter circuits utilizing butterfly and inverse butterfly routing circuits, and control circuits therefor |
US7673120B2 (en) * | 2007-06-27 | 2010-03-02 | Texas Instruments Incorporated | Inter-cluster communication network and heirarchical register files for clustered VLIW processors |
US8078836B2 (en) | 2007-12-30 | 2011-12-13 | Intel Corporation | Vector shuffle instructions operating on multiple lanes each having a plurality of data elements using a common set of per-lane control bits |
US20130018933A1 (en) * | 2010-03-31 | 2013-01-17 | Telefonaktiebolaget Lm Ericsson (Publ) | Data Shifter and Control Method Thereof, Multiplexer, Data Sifter, and Data Sorter |
US20120278591A1 (en) * | 2011-04-27 | 2012-11-01 | Advanced Micro Devices, Inc. | Crossbar switch module having data movement instruction processor module and methods for implementing the same |
US20140013082A1 (en) * | 2011-12-30 | 2014-01-09 | Intel Corporation | Reconfigurable device for repositioning data within a data word |
US20170161069A1 (en) * | 2015-12-08 | 2017-06-08 | Knuedge, Inc. | Microprocessor including permutation instructions |
US20170185413A1 (en) * | 2015-12-23 | 2017-06-29 | Intel Corporation | Processing devices to perform a conjugate permute instruction |
US10255462B2 (en) | 2016-06-17 | 2019-04-09 | Arm Limited | Apparatus and method for obfuscating power consumption of a processor |
US20190272175A1 (en) * | 2018-03-01 | 2019-09-05 | Qualcomm Incorporated | Single pack & unpack network and method for variable bit width data formats for computational machines |
US11204738B1 (en) * | 2020-06-03 | 2021-12-21 | Arm Limited | Apparatus and method for performing bit permutation operations |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3810112A (en) * | 1972-12-18 | 1974-05-07 | Bell Lab Inc | Shift-shuffle memory system with rapid sequential access |
US4085447A (en) * | 1976-09-07 | 1978-04-18 | Sperry Rand Corporation | Right justified mask transfer apparatus |
US4545032A (en) * | 1982-03-08 | 1985-10-01 | Iodata, Inc. | Method and apparatus for character code compression and expansion |
US4567572A (en) * | 1983-02-22 | 1986-01-28 | The United States Of America As Represented By The Director Of The National Security Agency | Fast parallel sorting processor |
US4816817A (en) * | 1985-06-28 | 1989-03-28 | Hewlett-Packard Company | Line mover for bit-mapped display |
GB2189970B (en) * | 1986-05-01 | 1990-03-28 | British Broadcasting Corp | Data conversion |
JPS6398729A (ja) | 1986-10-15 | 1988-04-30 | Fujitsu Ltd | バレルシフタ |
JPS63292185A (ja) | 1987-05-25 | 1988-11-29 | 日本電気株式会社 | デジタル入出力回路 |
US4980853A (en) * | 1988-03-04 | 1990-12-25 | Chips And Technologies, Inc. | Bit blitter with narrow shift register |
JP2527458B2 (ja) * | 1988-03-04 | 1996-08-21 | 富士通株式会社 | デ―タ転送制御装置 |
DE3832328A1 (de) * | 1988-09-23 | 1990-03-29 | Broadcast Television Syst | Speicheranordnung fuer digitale signale |
JP2633331B2 (ja) * | 1988-10-24 | 1997-07-23 | 三菱電機株式会社 | マイクロプロセッサ |
US5268858A (en) * | 1991-08-30 | 1993-12-07 | Cyrix Corporation | Method and apparatus for negating an operand |
US5471628A (en) * | 1992-06-30 | 1995-11-28 | International Business Machines Corporation | Multi-function permutation switch for rotating and manipulating an order of bits of an input data byte in either cyclic or non-cyclic mode |
US5524256A (en) * | 1993-05-07 | 1996-06-04 | Apple Computer, Inc. | Method and system for reordering bytes in a data stream |
US5390135A (en) * | 1993-11-29 | 1995-02-14 | Hewlett-Packard | Parallel shift and add circuit and method |
FR2721463A1 (fr) * | 1994-06-17 | 1995-12-22 | Trt Telecom Radio Electr | Système de transmission comportant au moins deux liaisons pour relier un émetteur et un récepteur et récepteur convenant à un tel système. |
-
1995
- 1995-08-01 US US08/509,867 patent/US6381690B1/en not_active Expired - Lifetime
-
1996
- 1996-07-15 EP EP96305187A patent/EP0757312A1/en not_active Withdrawn
- 1996-07-31 JP JP20138496A patent/JP3891609B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US6381690B1 (en) | 2002-04-30 |
EP0757312A1 (en) | 1997-02-05 |
JPH09106342A (ja) | 1997-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3891609B2 (ja) | 並べ換え装置 | |
US5175862A (en) | Method and apparatus for a special purpose arithmetic boolean unit | |
US7822947B2 (en) | Aliasing data processing registers | |
US4141005A (en) | Data format converting apparatus for use in a digital data processor | |
US7689811B2 (en) | Method and apparatus for constant generation in SIMD processing | |
EP1692612B1 (en) | A data processing apparatus and method for moving data between registers and memory | |
US6816961B2 (en) | Processing architecture having field swapping capability | |
EP0424618A2 (en) | Input/output system | |
US7761693B2 (en) | Data processing apparatus and method for performing arithmetic operations in SIMD data processing | |
US5475631A (en) | Multiport RAM based multiprocessor | |
US20050198473A1 (en) | Multiplexing operations in SIMD processing | |
WO2001035224A1 (en) | Bit-serial memory access with wide processing elements for simd arrays | |
US20100106944A1 (en) | Data processing apparatus and method for performing rearrangement operations | |
US20050125641A1 (en) | Data processing apparatus and method for moving data between registers and memory | |
US20050125647A1 (en) | Endianess compensation within a SIMD data processing system | |
US5960211A (en) | Data formatting method and apparatus for a data processing array | |
US6958718B2 (en) | Table lookup operation within a data processing system | |
KR19990077230A (ko) | 이미지-처리 프로세서 | |
KR950012256A (ko) | 벡터 데이타 처리용 컴퓨터 시스템 및 그 방법 | |
US9400652B1 (en) | Methods and apparatus for address translation functions | |
US20050024983A1 (en) | Providing a register file memory with local addressing in a SIMD parallel processor | |
EP0483967A2 (en) | Apparatus for increasing the number of registers available in a computer processor | |
US3681763A (en) | Semiconductor orthogonal memory systems | |
EP0227900B1 (en) | Three address instruction data processing apparatus | |
US5192882A (en) | Synchronization circuit for parallel processing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050428 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050506 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050719 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050907 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051125 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060228 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20060530 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20060602 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060607 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20061108 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20061205 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101215 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |