JP2004303203A - レジスタから並列テーブルルックアップを行う可変再配列(mux)命令 - Google Patents
レジスタから並列テーブルルックアップを行う可変再配列(mux)命令 Download PDFInfo
- Publication number
- JP2004303203A JP2004303203A JP2004043849A JP2004043849A JP2004303203A JP 2004303203 A JP2004303203 A JP 2004303203A JP 2004043849 A JP2004043849 A JP 2004043849A JP 2004043849 A JP2004043849 A JP 2004043849A JP 2004303203 A JP2004303203 A JP 2004303203A
- Authority
- JP
- Japan
- Prior art keywords
- register
- instruction
- registers
- variable
- mux
- 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.)
- Granted
Links
Images
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/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/3004—Arrangements for executing specific machine instructions to perform operations on memory
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Image Processing (AREA)
Abstract
【解決手段】 本発明は、コンピュータプログラムおよびデータプロセッサ命令セットに可変再配列Mux命令を提供する。具体的には、本発明は、一組の1つまたは複数のテーブルレジスタの内容を、一組の1つまたは複数のインデックスレジスタの内容の関数として再配列することを提供する。その結果として再配列されたデータは、一組の1つまたは複数の結果レジスタに置くことができる。このMux命令によるインデックスレジスタの指定が明示的に行われるときには、インデックスレジスタの識別情報が引数として指定され、暗黙的に行われるときには、例えば、専用インデックスレジスタの識別情報が命令内に本来的に備えられる。同様に、結果レジスタおよびテーブルレジスタも、Mux命令によって暗黙的または明示的に指定されうる。
【選択図】図1
Description
本発明の主目的は、多数のテーブルルックアップの実行時のコンピュータ性能を改善することである。
一般に、適用される関数は、数式として表すことができる。
しかし、関数によっては、アドレスに対応する独立変数(例えばx)およびそのアドレスの内容に対応する従属変数(例えばy)を有するルックアップテーブルの形式で実施するほうが便利なことが多いものもある。
テーブルは、通常、メモリでは、複数の要素からなるアレイとして編成される。
アレイでは、各要素は、1つのテーブルエントリの値を保持する。
したがって、命令は、単に、所望のメモリ位置を指定するだけで、そのメモリ位置の内容が読み出されて、所望の関数の結果が提供される。
このようなルックアップ(lookups:参照)は、非常に高速で実施できるが、それでもなお、例えばビデオ処理、暗号化、および符号変換といった、このようなルックアップが非常に多く必要とされる用途では、性能を制限することがある。
具体的には、本発明は、一組の1つまたは複数の「テーブル」レジスタの内容を、一組の1つまたは複数の「インデックス」レジスタの内容の関数として再配列することを提供する。
その結果として再配列されたデータは、一組の1つまたは複数の「結果」レジスタに置くことができる。
本明細書で、「テーブル」、「インデックス」、および「結果」の資格を有するレジスタは、すべて汎用レジスタであり、そのラベルは、Mux命令によって提供される状況(context)に依存することに留意されたい。
したがって、可変Mux命令は、一組のインデックスレジスタを指定する。
この指定は、「明示的に」行うことができ、この場合、インデックスレジスタの識別情報(identity)が、命令の引数として指定される。
すなわち、この識別情報は、命令フィールドに入力されるデータで記述される。
あるいは、インデックスレジスタの指定は、「暗黙的に」行うことができる。
例えば、専用インデックスレジスタの識別情報を命令内に本来的に備えておくことができる。
同様に、結果レジスタおよびテーブルレジスタも、可変Mux命令によって暗黙的または明示的に指定することができる。
「間接」可変Mux命令では、テーブルレジスタは、直接識別されず、Mux命令によって直接指定される1つまたは複数のインデックスレジスタによって間接的に識別される。
例えば、間接可変Mux命令は、テーブル選択インデックスレジスタおよびサブワード選択インデックスレジスタの2つのインデックスレジスタを指定することができる。
テーブル選択インデックスレジスタは、要求された各エントリのテーブルレジスタを選択し、サブワード選択インデックスレジスタは、要求された各エントリの、選択されたテーブルレジスタ内のサブワード位置を選択する。
あるいは、単一のインデックスレジスタを使用して、インデックスレジスタのサブワードの上位が、テーブルレジスタを選択することができる一方、そのサブワードの下位ビットが、選択されたテーブルレジスタの所望のサブワードを選択する。
「直接」可変Mux命令は、単一のテーブルレジスタに加えて、単一の結果レジスタおよびインデックスレジスタを指定することができる。
Mux命令が実行されると、テーブルレジスタの内容は、インデックスレジスタによって指定されたサブワードの順序で、結果レジスタに選択的に書き込まれる。
この分割は、垂直方向に行うこともできるし、水平方向に行うこともでき、あるいは、その両方向に行うこともできる。
分割が垂直方向のみで行われている場合、エントリは、原型を保っており、エントリのいくつかは、あるレジスタで表される一方、他のエントリは、1つまたは複数の他のレジスタで表される。
分割が、水平方向のみで行われている場合、各エントリは、(通常、上位下位などの位置によって)2つ以上のレジスタ間で分割される。
それらレジスタのそれぞれは、すべてのエントリの一部を表す。
垂直方向の分割および水平方向の分割がともに使用される場合、どのレジスタも、すべてのエントリを表さず、どの1つのエントリ全体も表さない。
例えば、テーブルは、4つのレジスタ間で分割することができ、4つのレジスタのそれぞれは、テーブルエントリを二分し、さらに二分したそれぞれを二分したものを表す。
例えば、8つのテーブルエントリが2つのテーブルレジスタ間で分割された場合、一方のテーブルレジスタは、4つの最下位アドレスのエントリを保持できる一方、他方のテーブルレジスタは、4つの最上位アドレスのエントリを保持できる。
次に、各テーブルエントリは、特定のレジスタにより特定のサブワード位置に保持される。
垂直方向に分割されたテーブルのエントリの再配列において十分な柔軟性を可能にするために、本発明は、垂直方向に分割されたテーブルと共に間接可変mux命令を使用することを提供する。
このような場合、同じインデックスレジスタを使用して、直接可変Mux命令を各テーブルレジスタに適用することができ、それによって、共通の再配列が、各エントリの各セグメントに適用されることになる。
通常、各テーブルレジスタに対して個々の結果レジスタが存在する。
各結果レジスタは、所望の各エントリのセグメントを保持する。
例えば「UnPack(展開)」命令といった命令が追加され、この命令を使用して、エントリのセグメントを連結することができ、その結果、各エントリは、レジスタ内で完全な形となる。
このような場合、本発明は、列単位で間接可変Mux命令を適用することを提供し、それにより、それぞれのエントリのセグメントに対して、所望の再配列が行われる。
オプションとして、Unpack命令または他の連結命令を使用して、レジスタ内で完全なエントリを組み立てることができる。
しかしながら、Mux命令は、普通は並べ替えとみなされない他の形の再配列も可能である。
例えば、テーブルレジスタのすべてのサブワードが結果レジスタに表される必要があるとは限らず、テーブルレジスタの1つまたは複数のサブワードを、結果レジスタに2回以上表すことができる。
この流行と調和させた場合、メモリユニットを追加するよりも付加的な計算機能ユニットを追加することが容易(より単純で、かつ、より経済的)である。
テーブルをメモリに置くと、スループットは、メモリポートの個数によって制限される。
ルックアップテーブルをレジスタに置くと、スループットは、並列計算ユニットの個数によって制限される。
計算ユニットの個数が、メモリポートの個数を上回るにつれて、レジスタに保持されたテーブルに可変Mux命令を使用するというこの新規なアプローチは、従来技術をますます上回って有利になる。
固定Mux命令は、結果レジスタに表すサブワードの順序を、計算した値によって指定できないので、そのテーブルルックアップの有用性において、はるかに多くの制限を受ける。
本発明の可変Mux命令は、サブワードの任意の順序を可能にし、したがって、単一のMux命令を(大きなテーブルに必要とされる、結果の付加的な組み立てと共に)使用して、複数のテーブルエントリに並列にアクセスすることが可能である。
一方、固定Mux命令を使用するコンピュータアーキテクチャには、可変Mux命令が使用できるデータパスがすでに配備されている。
したがって、新規な命令を追加することに伴い、先行モデル(precursor)がない場合にある命令を***するハードウェアの変更はより少なくなる。
本発明は、1つの命令につき複数のテーブルルックアップが実行可能であるので、従来技術に対して劇的な性能向上を提供する。
本発明の他の特徴および利点は、図面を参照した以下の詳細な説明から明らかである。
関数y=f(x)の値は、ルックアップテーブルIにアクセスすることにより求められる。
ルックアップテーブルIは、16個のそれぞれの4ビットアドレス(x)に16個の4ビットのエントリ(y)を有する。
テーブルIのエントリは、64ビットの「テーブル」レジスタR10にリトルエンディアンの順序で配列される。
すなわち、最下位のアドレスのエントリは、レジスタR10の最下位ニブル(4ビット)に配置される。
インデックスレジスタR11からテーブルレジスタR10への矢印で示すように、インデックスレジスタR11の各ニブル位置(4ビットのサブワード位置)は、テーブルのアドレスを保持し、したがって、そのアドレスのエントリを保持するテーブルレジスタR10のニブル位置を指し示す。
インデックスレジスタR11から64ビットの結果レジスタR12への矢印で示すように、レジスタR11の各ニブル位置は、結果レジスタR12の各ニブル位置に対応する。
したがって、命令MuxV 4,R10,R11,R12を次のように構文解析することができる。
すなわち、インデックスレジスタR11に保持される各「インデックス」ニブルについて、各インデックスニブルにより示されたテーブルエントリ(レジスタR10内)を結果レジスタR12の対応するニブル位置に書き込む、というように構文解析することができる。
テーブルが、単一のレジスタに収まらない場合に、本発明は、2つ以上のレジスタ間でテーブルを分割することを提供する。
テーブルIIは、16個の8ビットエントリを含み、合計128ビットを含む。
2つの64ビットレジスタR20およびR21が、テーブルIIの内容を保持するのに必要とされる。
各エントリは、最上位ニブル(例えば、テーブルアドレス0[16進]のエントリとしてE[16進])および最下位ニブル(例えば、テーブルアドレス0のエントリとしてF)を含む。
テーブルIIエントリのすべての最下位ニブルは、テーブルレジスタR20に書き込まれる一方、テーブルIIエントリのすべての最上位ニブルは、テーブルレジスタR21に書き込まれる。
この分割は、テーブルIIの破線で示すように、テーブルの列が4ビット幅の2つの列グループに分割される点で水平方向である。
インデックスレジスタR22の各ニブルは、図2のテーブルレジスタR20およびR21への概ね上向きの矢印で示すように、テーブルレジスタR20の対応するニブルを指し示すことに加えて、テーブルレジスタR21の対応するニブルも指し示す。
インデックスレジスタR20の各ニブル位置は、図2のレジスタR23およびR24への垂直下向きの矢印で示すように、結果レジスタR23の対応するニブル位置を有し、また、結果レジスタR24の対応するニブル位置も有する。
MuxV 4,R20,R22,R23は、インデックスレジスタR22の内容によって指示されるように、テーブルレジスタR20のエントリを結果レジスタR23に書き込む。
同様に、MuxV 4,R22,R22,R24は、インデックスレジスタR22の内容によって指示されるように、テーブルレジスタR21のエントリを結果レジスタR24に書き込む。
2つの命令は、異なるテーブルおよび異なる結果レジスタを参照する一方で、同じインデックスレジスタR22を共有することに留意されたい。
その結果、結果レジスタR23の最下位エントリニブルの順序は、結果レジスタR24の最上位エントリニブルの順序に対応する。
UnPack L,4 R23,R24,R25は、レジスタR23の最下位ニブルを、レジスタR25の最下位ニブル位置に書き込み、レジスタR24の最下位ニブルをレジスタR25の第2の最下位ニブル位置に書き込む。
その結果、インデックスレジスタR22の最下位ニブルによって要求されたエントリの全8ビットが、レジスタR25の最下位バイト(8ビット)に書き込まれる。
同様に、次の7つの最下位のテーブルルックアップは、レジスタR25の他の7つのバイト位置に表される。
同様に、UnPack H,4 R23,R24,R26は、レジスタR23およびR24のそれぞれの4つの最上位ニブルをバイトに連結し、それらをレジスタR26にバイトのように置く。
レジスタR25およびR26は、集合的に、インデックスレジスタR22によって指定された順序のテーブルエントリのバイトからなる単一の128ビット値V27を表すものとみなすことができる。
特定用途向けの実施の形態では、単一の可変Mux命令MuxVh 4,8 R20,R21,R22,R25,R26を使用して、所望の結果を直接達成することができる。
しかしながら、このアプローチは、ハードウェアの複雑さが追加され、3回のレジスタ読み出しおよび2回のレジスタ書き込みを伴う。
また、インデックスの長さ(4ビット)は、エントリの長さ(8ビット)と異なるので、2つのビット長パラメータが必要とされることに留意されたい。
図3のテーブルIII(図2のテーブルIIと同じデータを表す)は、水平方向に分割される代わりに垂直方向に分割される。
したがって、一方のテーブルレジスタR30は、テーブルIIIの8つの最下位アドレスの8ビットのエントリを保持する一方、他方のレジスタR31は、テーブルIIIの8つの最上位アドレスのエントリを保持する。
xの各値は、インデックスレジスタR32の2つの「9」の一方に示すように、4ビットである。
インデックスの最上位ビット(この場合、「1」)は、所望のエントリがどちらのテーブルレジスタ(この場合、テーブルレジスタR31)に存在するかを決定する一方、インデックスの3つの最下位ビット(この場合、「001」)は、選択されたレジスタ内のサブワード位置(この場合、2番目の下位サブワード位置)を示すことに留意されたい。
この命令は、3つの読み出しポートおよび2つの書き込みポートを必要とし、したがって、特定用途向けの状況に最もよく適することに留意されたい。
各テーブルレジスタに個別にmux(多重化)演算を実行することが可能であり、その後、その結果のデータを再び結合することが可能であることに留意されたい。
しかしながら、プログラムシーケンスは、水平方向に分割されたテーブルのアプローチの場合よりも複雑になる。
ほとんどのプロセッサ設計では、命令が、ある汎用レジスタを、別の汎用レジスタの内容の関数として選択することは許可されていないので、特に、レジスタ選択ビットを特殊用途のレジスタに書き込むことが好都合な場合がある。
レジスタ選択レジスタRRSおよびサブワード選択レジスタRSSの2つのインデックスレジスタが存在する。
これらのレジスタは、集合的に、関数y=f(x)の値を求める場合のxの水平方向に分割された値を保持する。
その結果は、連続した結果レジスタRR0、RR1、RR2、およびRR3に書き込まれる。
間接的な可変Mux命令MuxVI 4,6 RT0,RSS,RR0が、所望の並列テーブルルックアップを実行する。
この命令は、連続した4つのレジスタを必要とし、その第1のもの(RT0)を明示的に識別することにより、残りの3つの特定を行う。
したがって、残りの3つは、暗黙的に指定される。
この命令は、レジスタ選択データを特殊目的のレジスタRRSに記憶することを必要とする。
したがって、このレジスタは、暗黙的に指定される。
この命令が4ビットサブワードの16回の並列ルックアップを要求すると、すべての結果は、明示的に指定された結果レジスタRR0に記憶することができる。
その代わり、テーブルレジスタの結果レジスタのサブワードへのマッピングは、レジスタ選択レジスタRRSの内容によって間接的に指定される。
テーブルレジスタの結果レジスタのサブワードへのマッピングが、命令の内容によって直接決定されるのではなく、レジスタによって間接的に決定される点で、MuxVIは間接的である。
レジスタ選択レジスタRRSは、y=f(x)の値を求める際に使用される各xにつき、4ビットを保持する。
4つのテーブルレジスタの中からテーブルレジスタの選択を行うのに、2ビットのみが必要とされ、他の2ビットは、デフォルト値0を保持する。
テーブルデータは、レジスタ0〜3、レジスタ32〜35、レジスタ64〜67、およびレジスタ96〜99の4つの可能なものの1つに強制的にされる(is forced)。
また、レジスタ選択ビットおよびサブワード選択ビットは、異なるレジスタに書き込まれるので、レジスタには、より多くのインデックスおよびそれによるさらに多くの並列性を得るための余裕もある。
他方で、より一般的な2つのオペランドレジスタの代わりに6つのオペランドレジスタが存在する。
4つのレジスタ内に収まることができる範囲を越えてテーブルを拡張することは、かなりのハードウェアの複雑さを伴う可能性がある。
このようなテーブルは、各ピクセルに8ビットのデータを含むことが多いビデオ、暗号化(例えば、DESのS−boxのルックアップ)、および符号変換(例えば、ASCIIの別のテキストフォーマットへの変換)に役立つ。
他の実施の形態では、複数のレジスタが集合的に2048ビットレジスタとして機能するように、複数のレジスタを一組に構成する設備が作成される。
それ以外のものとして、上記に開示した水平方向のテーブル分割技法および垂直方向のテーブル分割技法を活用して、このような大きなテーブルを処理するものがある。
この制約を満たすように、適合しないデータには、先頭部分にゼロを追加することができる。
例えば、7ビットのエントリに対して、それらのエントリがレジスタのバイト境界と整合するように、先頭にゼロを追加することができる。
同様に、6ビットのインデックスには、それらのインデックスがレジスタのバイト境界に適合するように、先頭に2つのゼロを追加することができる。
あるいは、適合しないデータ同士を「詰め込んで」、レジスタに収めることができるデータ量を最大にすることができる。
例えば、3ビットのインデックスによる21回のルックアップは、64ビットレジスタによって処理できる一方、ちょうど16個の4ビットインデックスも、64ビットレジスタによって処理できる。
データを連続的に詰め込んで、2の累乗に最も近くなるまで書き入れる代わりに、未使用のレジスタのビットをインデックス間で均等に分配することができる。
コンピュータシステムAP1は、マイクロプロセッサ110およびメモリ112を含む。
メモリ112の内容には、プログラムデータ114、およびプログラムを構成するプログラム命令100が含まれる。
マイクロプロセッサ110は、実行ユニットEXU、命令デコーダDEC、レジスタRGS、アドレスジェネレータADG、およびルータRTEを含む。
レジスタバンクRGSには、本明細書で参照かつ例示されたすべてのレジスタが含まれる。
このため、実行ユニットEXUは、(内部データバスDTBに付属する制御信号線を使用して)アドレスジェネレータADGに、必要な次の命令またはデータのアドレスをアドレスバスADRに沿って生成するように命令することができる。
メモリ112は、要求されたアドレスに保持される内容を、データ/命令バスDIBに沿って供給することにより応答する。
復号された命令は、制御信号線CCDを介して実行ユニットEXUに供給される。
データは、通常、命令に従ってレジスタRGSの内外に転送される。
プログラム100は、命令セットINSから選択された複数の命令からなる順序付けられた組である。
説明の目的のため、マイクロプロセッサ110、その命令セットINS、およびプログラム100が、本明細書で説明されたすべての命令の例を提供する。
テーブルは、任意の個数のエントリを有することができ、それらのエントリは、任意の長さのビット数を有することができる。
上述したように、並列インデックスが、1つの並列インデックスレジスタ(または複数の並列インデックスレジスタ)を満たさない場合、未使用ビットは、さまざまな方法で分配することができ、おそらく、さまざまな用途に使用することができる。
本発明は、間接的な並列ルックアップの多くの実施を提供する。
添付の特許請求の範囲によって記載される本発明は、本発明のこれらの変形および変更ならびに本発明の他の変形および変更を提供する。
110・・・マイクロプロセッサ、
112・・・メモリ、
114・・・プログラムデータ、
Claims (9)
- データプロセッサ(110)であって、
第1のレジスタ(R11)、第2のレジスタ(R10)、および第3のレジスタ(R12)と、
前記第1のレジスタを引数として指定する第1の可変mux命令を実行する実行ユニット(EXU)であって、前記第1のレジスタの内容の関数である順序で、前記第2のレジスタの内容の少なくとも一部を前記第3のレジスタに書き込む、実行ユニット(EXU)と
を備えるデータプロセッサ。 - 前記第1の可変mux命令は、前記第2のレジスタを引数として直接指定する
請求項1に記載のデータプロセッサ。 - 前記第2のレジスタを指定し、前記第1の可変mux命令によって引数として指定される第4のレジスタ(RRS)をさらに備える
請求項1に記載のデータプロセッサ。 - 第5のレジスタ(RSS)
をさらに備え、
前記第4のレジスタは、該第5のレジスタを指定し、それによって、前記実行ユニットが、前記第1の可変mux命令の実行中に、前記第1のレジスタおよび前記第4のレジスタの内容の関数である順序で、前記第2のレジスタおよび前記第5のレジスタの内容の少なくとも一部を前記第3のレジスタに書き込む
請求項3に記載のデータプロセッサ。 - 第4のレジスタ、第5のレジスタ、および第6のレジスタ
をさらに備え、
前記実行ユニットは、前記第4のレジスタを引数として指定する第2の可変mux命令をさらに実行し、前記実行ユニットは、前記第2の可変mux命令の実行中に、前記第1のレジスタの内容の関数である順序で、前記第5のレジスタの内容の少なくとも一部を前記第6のレジスタに書き込み、前記実行は、少なくとも1つの他の命令に応じてサブワード単位で、前記第3のレジスタの内容および前記第6のレジスタの内容を連結する
請求項1に記載のデータプロセッサ。 - 第1の組のレジスタ(R10)にテーブルエントリを書き込むことと、
可変mux命令を使用することであって、それによって、該可変mux命令によって引数として指定される第3の組のレジスタ(R11)が指定する順序で、前記第1の組のレジスタの内容を第2の組のレジスタ(R12)に書き込む、可変mux命令を使用することと
を含む並列テーブルルックアップ方法。 - 前記第2の組のレジスタに保持されるデータをサブワード単位で連結すること
をさらに含む請求項6に記載の並列テーブルルックアップ方法。 - 前記可変mux命令は、前記第1の組のレジスタを指定する
請求項6に記載の並列テーブルルックアップ方法。 - 前記可変mux命令は、前記第1の組のレジスタを指定する第4の組の1つまたは複数のレジスタ(RRS)を指定する
請求項6に記載の並列テーブルルックアップ方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/403,785 US7424597B2 (en) | 2003-03-31 | 2003-03-31 | Variable reordering (Mux) instructions for parallel table lookups from registers |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004303203A true JP2004303203A (ja) | 2004-10-28 |
JP3735105B2 JP3735105B2 (ja) | 2006-01-18 |
Family
ID=32990033
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004043849A Expired - Fee Related JP3735105B2 (ja) | 2003-03-31 | 2004-02-20 | レジスタから並列テーブルルックアップを行う可変再配列(mux)命令 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7424597B2 (ja) |
JP (1) | JP3735105B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009514096A (ja) * | 2005-10-26 | 2009-04-02 | アナログ デバイシーズ インク | 参照テーブルアドレス指定システム及び方法 |
WO2013057872A1 (ja) * | 2011-10-18 | 2013-04-25 | パナソニック株式会社 | シャッフルパターン生成回路、プロセッサ、シャッフルパターン生成方法、命令 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8024551B2 (en) * | 2005-10-26 | 2011-09-20 | Analog Devices, Inc. | Pipelined digital signal processor |
US7728744B2 (en) * | 2005-10-26 | 2010-06-01 | Analog Devices, Inc. | Variable length decoder system and method |
US8565519B2 (en) * | 2007-02-09 | 2013-10-22 | Qualcomm Incorporated | Programmable pattern-based unpacking and packing of data channel information |
US7673120B2 (en) * | 2007-06-27 | 2010-03-02 | Texas Instruments Incorporated | Inter-cluster communication network and heirarchical register files for clustered VLIW processors |
US8301990B2 (en) * | 2007-09-27 | 2012-10-30 | Analog Devices, Inc. | Programmable compute unit with internal register and bit FIFO for executing Viterbi code |
US10162634B2 (en) * | 2016-05-20 | 2018-12-25 | International Business Machines Corporation | Extendable conditional permute SIMD instructions |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4713748A (en) * | 1985-02-12 | 1987-12-15 | Texas Instruments Incorporated | Microprocessor with block move instruction |
EP0871108B1 (en) * | 1991-03-11 | 2000-09-13 | MIPS Technologies, Inc. | Backward-compatible computer architecture with extended word size and address space |
US5524256A (en) * | 1993-05-07 | 1996-06-04 | Apple Computer, Inc. | Method and system for reordering bytes in a data stream |
US5819117A (en) * | 1995-10-10 | 1998-10-06 | Microunity Systems Engineering, Inc. | Method and system for facilitating byte ordering interfacing of a computer system |
US6320964B1 (en) * | 1998-08-26 | 2001-11-20 | Intel Corporation | Cryptographic accelerator |
US6546480B1 (en) * | 1999-10-01 | 2003-04-08 | Hitachi, Ltd. | Instructions for arithmetic operations on vectored data |
WO2001089098A2 (en) * | 2000-05-05 | 2001-11-22 | Lee Ruby B | A method and system for performing permutations with bit permutation instructions |
US6952478B2 (en) * | 2000-05-05 | 2005-10-04 | Teleputers, Llc | Method and system for performing permutations using permutation instructions based on modified omega and flip stages |
US6922472B2 (en) * | 2000-05-05 | 2005-07-26 | Teleputers, Llc | Method and system for performing permutations using permutation instructions based on butterfly networks |
-
2003
- 2003-03-31 US US10/403,785 patent/US7424597B2/en not_active Expired - Fee Related
-
2004
- 2004-02-20 JP JP2004043849A patent/JP3735105B2/ja not_active Expired - Fee Related
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009514096A (ja) * | 2005-10-26 | 2009-04-02 | アナログ デバイシーズ インク | 参照テーブルアドレス指定システム及び方法 |
WO2013057872A1 (ja) * | 2011-10-18 | 2013-04-25 | パナソニック株式会社 | シャッフルパターン生成回路、プロセッサ、シャッフルパターン生成方法、命令 |
JPWO2013057872A1 (ja) * | 2011-10-18 | 2015-04-02 | パナソニックIpマネジメント株式会社 | シャッフルパターン生成回路、プロセッサ、シャッフルパターン生成方法、命令 |
US9292286B2 (en) | 2011-10-18 | 2016-03-22 | Panasonic Intellectual Property Management Co., Ltd. | Shuffle pattern generating circuit, processor, shuffle pattern generating method, and instruction sequence |
Also Published As
Publication number | Publication date |
---|---|
US7424597B2 (en) | 2008-09-09 |
US20040193850A1 (en) | 2004-09-30 |
JP3735105B2 (ja) | 2006-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230297383A1 (en) | Method for performing random read access to a block of data using parallel lut read instruction in vector processors | |
EP2695054B1 (en) | Vector friendly instruction format and execution thereof | |
KR101599604B1 (ko) | 제한 범위 벡터 메모리 액세스 인스트럭션들, 프로세서들, 방법들 및 시스템들 | |
JP2008542910A (ja) | バイトアドレシング可能メモリの抽出されたインデックスアドレシング | |
JP2017528810A (ja) | データ要素を選択・統合するプロセッサ、方法、システム、および命令 | |
US20200394038A1 (en) | Look up table with data element promotion | |
US20230359462A1 (en) | Look-up table initialize | |
JP3735105B2 (ja) | レジスタから並列テーブルルックアップを行う可変再配列(mux)命令 | |
JP2012119009A5 (ja) | 選択演算を実行するプロセッサ | |
US11681532B2 (en) | Method for forming constant extensions in the same execute packet in a VLIW processor | |
US7302525B2 (en) | Method and apparatus for efficiently accessing both aligned and unaligned data from a memory | |
CA2284772A1 (en) | Computer processor and method for data streaming | |
KR100972160B1 (ko) | 데이터 액세스 프로그램 명령 인코딩 | |
US20210026629A1 (en) | Vector interleaving in a data processing apparatus | |
US20040054873A1 (en) | Indirect indexing instructions | |
JP5327432B2 (ja) | 信号処理プロセッサ及び半導体装置 | |
JPS623332A (ja) | 情報処理装置 | |
US20190102187A1 (en) | Processors, Methods, Systems, and Instructions to Generate Sequences of Integers in which Integers in Consecutive Positions Differ by a Constant Integer Stride and Where a Smallest Integer is Offset from Zero by an Integer Offset | |
JP2003196156A (ja) | 情報処理装置および情報処理方法 | |
JPS6230653B2 (ja) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050425 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050502 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050729 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050915 |
|
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: 20051014 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20051020 |
|
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: 20091028 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091028 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101028 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |