JP3891609B2 - 並べ換え装置 - Google Patents

並べ換え装置 Download PDF

Info

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
Application number
JP20138496A
Other languages
English (en)
Other versions
JPH09106342A (ja
Inventor
ルビー・ビー・リー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JPH09106342A publication Critical patent/JPH09106342A/ja
Application granted granted Critical
Publication of JP3891609B2 publication Critical patent/JP3891609B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

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/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
    • G06F7/762Arrangements 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
    • 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/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Executing Machine-Instructions (AREA)

Description

【0001】
【産業上の利用分野】
本発明は、コンピュータに関連するものであり、とりわけ、それに用いられるシフタ装置に関するものである。
【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】
Figure 0003891609
【0022】
シャッフル並べ換え及び混合並べ換えは、入力レジスタを2つの4サブワード・レジスタとして取り扱う。第1のレジスタからの1つのサブワードと第2のレジスタからの1つのサブワードを交互に取り出すことによって、出力レジスタの内容がアセンブルされる。交番(alternate)並べ換えは、サブワードを1つおきに出力レジスタに移動し、次に残りのサブワードを移動する。同報並べ換えは、同じサブワードを出力レジスタの全ての位置でを繰り返す。上の表Iのリストには、可能性のある同報並べ換えのうちの2つだけしかないが、当業者には明らかなように、同報並べ換えは入力レジスタ中の任意のサブワードについて行うことができる。最後に、交換並べ換えはサブワード各対の順序を逆にする。
【0023】
当業者には明らかなように、本発明に他の特殊な並べ換えを組み込むのが有利なこともある。例えば、条件付き交換を実現する、つまり並べ換えを指定する命令中の各サブワード対に対応するビット値に従ってサブワードを条件付きで並べ替える、こともできる。この実現形態は、8つのサブワードの16通りの異なる特定の並べ換えのうち任意のものを4ビットだけで指定することができる。問題となる16通りの並べ換え及び対応する4ビットを表IIに示す。
【0024】
【表2】
Figure 0003891609
【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. 入力レジスタの内容を操作して、前記入力レジスタの前記内容の並べ換えを行った出力レジスタの内容を生成するための装置において、
    前記入力レジスタを、夫々前記入力レジスタ中の位置及び1ビットを超える長さで特徴つけられる複数のサブワードに区分するための手段と、
    命令に応答して、前記複数のサブワードの内の2つ以上それぞれを、前記入力レジスタ中で前記サブワードが占める前記位置とは異なる、前記出力レジスタの中の位置の1つ以上に振り当て、サブワードの繰り返しを伴う並べ替えを行うための手段と
    を設けたことを特徴とする並べ換え装置。
  2. 入力レジスタの内容を操作して、前記入力レジスタの前記内容の並べ換えを行った出力レジスタの内容を生成するための装置において、
    前記入力レジスタを、夫々前記入力レジスタ中の位置及び1ビットを超える長さで特徴つけられる複数のサブワードに区分するための手段と、
    命令に応答して、前記複数のサブワードの内の2つ以上それぞれを、前記入力レジスタ中で前記サブワードが占める前記位置とは異なる、前記出力レジスタの中の位置の1つ以上に振り当て、逆順並べ換え、シャッフル並べ換え、混合並べ換え、交番並べ換え、同報並べ換え、または交換並べ換えを行うための手段と
    を設けたことを特徴とする並べ換え装置。
  3. 前記命令が、前記出力レジスタの内容を指定するビット・パターンを含むこと
    を特徴とする請求項1に記載の並べ換え装置。
  4. 前記出力レジスタの前記内容が、前記命令によって識別されるワードによって指定されること
    を特徴とする請求項1に記載の並べ換え装置。
  5. 前記出力レジスタの前記内容が、前記命令中の値によって指定され、前記値が予め定められた並べ換え集合中の並べ換えの何れかを指定すること
    を特徴とする請求項1に記載の並べ換え装置。
  6. 前記並べ換え集合中の前記並べ換えの1つが、逆順並べ換え、シャッフル並べ換え、混合並べ換え、交番並べ換え、同報並べ換え、交換並べ換え、または条件付き交換並べ換えの何れかであること
    を特徴とする請求項5に記載の並べ換え装置。
  7. 前記振り当て手段が、前記入力レジスタ中のサブワードを前記出力レジスタ中の複数のサブワードの任意の1つに結合する複数のマルチプレクサを設けたこと
    を特徴とする請求項1に記載の並べ換え装置。
  8. 第1のステージと最終ステージを含む複数の順序付きマルチプレクサ・ステージを設け、
    マルチプレクサの前記第1のステージが入力として前記入力レジスタの内容を与えられ、
    マルチプレクサの前記最終ステージが出力として前記出力レジスタの前記内容を与え、
    前記マルチプレクサが夫々入力と出力の間の接続を指定する制御ラインによって制御され、
    シフト操作を行う際には前記各ステージ中の前記マルチプレクサが全て前記制御ライン上で同じ制御信号を受信する、入力レジスタの内容をシフトして出力レジスタの内容を生成するための装置
    を備えたデータ処理システムにおいて、
    前記入力レジスタの内容の並べ換えを指定する命令に応答して前記マルチプレクサの少なくとも1つのステージの前記制御ラインを別個に制御することによって、前記ステージ中の別のマルチプレクサに供給される前記制御信号とは異なる制御信号が、前記ステージ中の少なくとも1つのマルチプレクサに供給されるようにしたこと
    を特徴とするデータ処理システム。
JP20138496A 1995-08-01 1996-07-31 並べ換え装置 Expired - Fee Related JP3891609B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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.

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