JP3975231B2 - 配列されたsimdのための汎用レジスタファイルアーキテクチャ - Google Patents

配列されたsimdのための汎用レジスタファイルアーキテクチャ Download PDF

Info

Publication number
JP3975231B2
JP3975231B2 JP2001201406A JP2001201406A JP3975231B2 JP 3975231 B2 JP3975231 B2 JP 3975231B2 JP 2001201406 A JP2001201406 A JP 2001201406A JP 2001201406 A JP2001201406 A JP 2001201406A JP 3975231 B2 JP3975231 B2 JP 3975231B2
Authority
JP
Japan
Prior art keywords
operands
words
word
grouping
operand
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 - Lifetime
Application number
JP2001201406A
Other languages
English (en)
Other versions
JP2002117009A (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.)
Analog Devices Inc
Original Assignee
Analog Devices Inc
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 Analog Devices Inc filed Critical Analog Devices Inc
Publication of JP2002117009A publication Critical patent/JP2002117009A/ja
Application granted granted Critical
Publication of JP3975231B2 publication Critical patent/JP3975231B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30112Register structure comprising data of variable length
    • 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/3001Arithmetic instructions
    • 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/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30109Register structure having multiple operands in a single register
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、ディジタルビデオ、画像形成および音声などの各種マルチメディアの用途に使用できるディジタル信号プロセッサ(DSP)に関する。
【0002】
【発明の背景】
この種のDSPは、ディジタル信号を操作して、上記マルチメディアファイルを作成したり、オープンすることができる。
【0003】
DSPは、SIMD(Single Instruction/Multiple Data: 単一命令/複数データ処理)プロセッサまたはデータパラレルプロセッサとして作動できる。SIMDの作動において、単一命令は、いくつもの処理要素に送られ、その処理要素は、異なるデータに対して同じ演算を行う。中央制御装置を用いて、前記命令ストリームを、異なる処理要素にブロードキャストすることができる。SIMD命令は、加算、減算、乗算、積和演算(MAC)を含むいくつものタイプの標準演算、およびL1−ノルム−アキュムレート(LI-Norm-accumulate)(SAA)、クリッピングおよび双線形補間法のためのいくつもの特別命令を与える。
【0004】
多くのビデオ装置と画像処理装置が、二次元(2D)データアレイ内に配列された8ビットワードで作動する。四つの8ビットオペランドは、32ビットのグループ化ワードにパックされて、パラレル処理をするための実行ユニットに送られる。前記2Dアレイからのこれら8ビットオペランドは、適正な演算を行うための32ビットのグループ化ワード内に適正に配列されねばならない。
【0005】
32ビットワードで配列された機械にて、8ビットデータを用いて作動させると、四つの異なる配列の可能性がある。すなわち、配列されたもの(そのもの);8ビットシフトしたもの;16ビットシフトしたもの;および24ビットシフトしたものである。DSPは、誤って配列した(misaligned)ワードを検出すると、例外(exception)を発生する。その例外に応答して、配列演算が、メモリインターフェースまたはデータレジスタで実行され、8ビットオペランドをシフトして(正しく)配列された32ビットワードを生成する。しかし、この配列演算は、前記機械の作動に追加の処理オーバーヘッド(処理付帯部分)をもたらす。
【0006】
8ビットSIMD演算に対する配列オーバーヘッドは、汎用DSP内の資源の非効率的な利用をもたらす。この非効率は、配列演算が、データを処理するために整えるのに利用されるので不必要なサイクル消費(cycle consumption)として現れる。
【0007】
図1は、二次元(2D)のパックされた8ビットデータアレイに対して、32ビットのグループ化ワードの自動的配列を、そのアドレスポインタを使って提供する一実施態様によるレジスタファイルアーキテクチャ100を示す。このレジスタファイルは複数のレジスタR0−R7(104)を含んでいる。ロードマルチプレクサ(MUX)106が、32ビットのロードをレジスタファイルに多重化し、記憶MUX108が記憶ワードを前記レジスタファイルから出力し、そして配列MUX110が、配列された32ビットグループ化ワードを、レジスタR0とR1を含むレジスタペア112から出力する。その配列MUX110とレジスタファイルは制御装置114で制御される。
【0008】
前記レジスタファイルは、データアレイからの二つの32ビットグループ化ノードKとK+1それぞれを、レジスタペアR0とR1内のデータレジスタの一方の各々にロードすることにより、配列演算を行うために準備される。8ビットオペランドが各々、レジスタ内の四つの記憶場所RxLL、RxLH、RxHLおよびRxHHのうちの一つを占有する。図2(A)〜(D)は、レジスタR2とR3を含むレジスタペア200における32ビットワードのための四つの異なる配列ケースを示す。その四つの8ビットオペランドは適正に配列されることができるか(図2(A))または32ビットワードの境界をクロスする(図2(B)−(D))。
【0009】
ポインタアドレスの2ビットの最下位有効ビット(LSB)202は、前記制御装置によってマスクオフされ、32ビットグループ化ワードについての配列状態を決定するために使用される。これらLSB202は、制御信号として使用されて、配列MUX110を制御し、配列された32ビットワード204に対応するレジスタペアにおける八つの記憶場所から四つの8ビットオペランドを選択する。前記配列された32ビットワード202は、その成分の8ビットオペランドを前記実行ユニットでパラレル処理するためオペランド(OPAまたはDPB)として出力される。
【0010】
図2(A)に示す「00」は配列されたワードを示す。この場合、配列MUX110は、R2LL、R2LH、R2HLおよびR2HH内のオペランドを選択して、その順序で、それら8ビットオペランドを含む配列された32ビットワード204を出力するように制御される。
【0011】
図2(B)に示す「01」は、8ビットオフセットされた32ビットワードを示す。この場合、配列MUX110は、R3HH、R2LL、R2LHおよびR2HL内のオペランドを選択して、その順序で、それら8ビットオペランドを含む配列された32ビットワード206を出力するように制御される。
【0012】
図2(C)に示す「10」は、16ビットオフセットされた32ビットワードを示す。この場合、配列MUX110は、R3HL、R3HH、R2LLおよびR2LH内のオペランドを選択して、その順序でそれら8ビットのオペランドを含む配列された32ビットワード208を出力するように制御される。
【0013】
図2(D)に示す「11」は、24ビットオフセットされた32ビットワードを示す。この場合、配列MUX110は、R3LH、R3HL、R3HHおよびR2LL内のオペランドを選択して、その順序で、それら8ビットオペランドを含む配列された32ビットワード210を出力するように制御される。
【0014】
図3〜5は、一実施態様による配列演算を示す。その演算は、図3に示すように、状態300にて誤まって配列された32ビットワードKとK+1を2DデータアレイからレジスタR0とR1にロードすることによって準備される(サイクル1)。ワードKは8ビットオペランドA、BおよびCを含み、そしてワードK+1は8ビットオペランドD、E、FおよびGを含んでいる。この場合、ワードKとK+1は8ビットだけオフセットされる。これらワードに対するポインタアドレスのLSBは「01」である。したがって、配列MUX110は、状態302にて、レジスタR0から8ビットオペランドA、B、Cを選択し、かつレジスタR1から8ビットオペランドDを選択して、状態306にて配列された32ビットワードABCD(304)を出力する。一旦準備されると、1サイクル当り必要なロードは一回だけである。図4に示すように、次のサイクル(サイクル2)において、レジスタR0には、状態308にて、32ビットワードK+2、HIJKがロードされる。配列MUX110は、レジスタペア内のオペランドを逆多重化して読出しのリフレクション(反射)を得るように制御される。オペランドを逆多重化すると、前記配列MUXは、レジスタR1を読み出してからレジスタR0を読み出す。前記配列MUXは、状態310にて、レジスタR1から未選択の8ビットオペランドE、FおよびGを予め選択し、かつレジスタR0から8ビットのオペランドHを予め選択する。前記配列MUXは、状態314にて、配列された32ビットワードEFGH(312)を処理のために出力する。
【0015】
次のサイクル(サイクル3)において、R1には、32ビットワードK+3、LMNO(316)がロードされる。配列MUX110は、状態318にてバイトI、J、KおよびLを選択して、状態322にて32ビットワードIJKLを出力するよう制御される。サイクル3で、配列MUX110は、レジスタR0とR1を順方向に多重化する。したがって、前記32ビットのロードが、ペアの二つのレジスタR0とR1の間を各々奇数/偶数サイクルで「ピンポン」伝送されて、前記パックされた8ビットアレイが処理される。
【0016】
図3〜5に示す演算に例示されているように、8ビットデータの処理の要求は反復されることが多く、一旦設定されると持続する。レジスタファイルが一旦準備されると、32ビットのロードは最小限のオーバーヘッドで配列される。
【0017】
汎用DSPにおいて、データレジスタに、誤って配列された32ビットワードをロードすると例外の発生を引き起こす。8ビットSIMDの演算は、実行ユニットに利用可能な16個もの8ビットオペランドが必要である。これは二つのレジスタペアすなわち四つのレジスタに相当する。前記レジスタペアにロードするために利用可能な二つの32ビットバスを用いて、四つのレジスタは、ロードされてからSIMD演算を開始しなければならない。一実施態様によって、特別の命令、例えばDISALGENEXを使用して、誤って配列されたアクセスのために例外が起こることがないようにする機能を準備し、8ビットSIMD機能ループを準備する。前記DISALGENEXの命令は、32ビットの境界をクロスするかまたはクロスしない一つまたは二つのロード演算と組み合せて発行してもよい。命令の例としては次のものがある。
【0018】
(1)DISALGENEX,R1=[i0++],R3=[I1++]
(2)DISALGENEX,[p0++p1]=R5,R3=[i1++]
【0019】
図1に戻って、制御装置114は、ロードMUX106を制御して、レジスタペアR0/R1に、ロードAに対応する隣接32ビットグループ化ワードをロードする。また、この制御装置は、ロードMUX106を制御して、ロードレジスタR2に、ロードBに対応する32ビットグループ化ワードをロードする。ロードAのポインタアドレス(loada[1:0])の2ビットのLSB202は、前記制御装置によってマスクオフされて、配列MUX110に対して制御信号として入力される。前記配列MUXは、ロードAのポインタアドレスのLSBに基づいて四つの適当なオペランドを選択して、配列された32ビットワードOPAを出力する。R2は,32ビットグループ化ワードOPBを出力する。OPAとOPBの8ビットオペランドは、実行ユニットで演算される。これらの演算から得られた結果RESAとRESBは、レジスタファイルに再ロードされる。
【0020】
図6は、一実施態様によるレジスタファイルアーキテクチャ400を示し、そのアーキテクチャでは、単一ポインタアドレス(loadb[1:0])からのLSBを使用して、二つのレジスタペアR0/R1とR2/R3からの8個の8ビットオペランドを多重化して、二つの配列された32ビットワードOPAとOPBが出力される。この実施態様によって、第2ポインタを使用して記憶動作を行うことができる。この実施態様によれば、8ビットSIMD命令が、2D8ビットデータアレイの隣接する行または列で演算することになっている命令の配列とは独立した実行を許容することによってサポートされる。この種の配列をサポートする命令は下記の形態である。
【0021】
dregs=8b_OP(R1:0,R3:2)AMOD,[im++]=dregs,dregs=[im++];
【0022】
図7は、一実施態様によるレジスタファイルアーキテクチャ500を示し、この場合、8ビットパックドデータアレイに対する二つのポインタimおよびinの各々からの2ビットのLSBが、八つの8ビットオペランドを多重化するための制御信号として使用される。これは、各々の配列が異なっている場合、二つの32ビットグループ化ワードを実行ユニットに提供することを目的としている。二つの配列MUX110が提供され、各々、制御信号として、異なるポインタのLSBを備えている。
【0023】
この種の配列をサポートする命令は以下の形態である。
【0024】
dregs=8b_OP(R1:0,R3:2)AMOD,dregs=[im++],dregs=[im++];および
dregs=8b_OP(R1:0,R3:2)AMOD,dregs=[in++],dregs=[in++];
【0025】
配列独立8ビットSIMD・ADD演算(alignment independent 8bit SIMD ADD operation)が一実施態様で行われる。クウォッド8ビットSIMD命令(quad 8bit SIMD instruction)を用いて、四つの16ビット符号付データ出力を有する二つのバイト付加を実行する。32ビットのロードOPAは四つの8ビットオペランドam+3、am+2、am+1およびamを含んでいる。32ビットのロードOPBは四つの8ビットオペランドbm+3、bm+2、bm+1およびbmを含んでいる。OPAを決定するために使用される二つの32ビットグループ化ワードはレジスタペアR0/R1にロードすることができ、そしてOPBを決定するために使用される32ビットグループ化ワードはレジスタペアR2/R3にロードすることができる。OPAとOPBの応対する8ビットオペランドが加算される。この加算演算の結果は、四つの16ビット値すなわちam+3+bm+3、am+2+bm+2、am+1+bm+1およびam+bmであり、これらの値は32ビットワードにグループ化され、R4、R5、R6およびR7から選択される二つの行き先レジスタに記憶される。
【0026】
配列独立8ビットSIMD・ADD演算を実行させる命令は以下の形態である。
【0027】
(dregs,dregs)=q2badd(dreg_pair,dreg_pair);
(dregs,dregs)=q2badd(dreg_pair,dreg_pair)R;
【0028】
命令の例としては以下のものがある。すなわち
【0029】
(r4,r5)=q2badd(r1:0,r3:2);
(r5,r4)=q2badd(r1:0,r3:2)R;
【0030】
これらの命令は、前記ロードが常に32ビット境界にあり、かつ二つのポインタがI0とI1に記憶されると想定している。これらの値は、8ビット境界で有効であるが、ロードは実際には32ビット境界で起こる。ポインタi0とi1からの2ビットのLSBは、デコードされて、それぞれ、四つの可能な配列ケースの一つを、レジスタペアR0/R1とR2/R3から選択する。ワードK+1を含むレジスタは、省略時、レジスタR0とR2内にあるとみなされ、そしてワードK+2はレジスタR1とR3内にあるとみなされる。
【0031】
「R」のオプションは、読出しのリフレクション(反射)が、図4に関連して先に述べたように実行されねばならぬことを指定する。これによって、各ペアのレジスタ間の有効なピンポン伝送が可能になり、アレイ処理機能が実行される。
【0032】
上記の配列独立SIMD・ADD演算を使用して、いくつもの画像ベースの計算をサポートできる。他の配列独立SIMD演算は、例えば、減算、乗算、積和演算(MAC)、およびL1−Norm−アキュムレート(SAA)、クリッピングおよび双線形補間法のためのいくつもの特定の命令を含む各種実施態様にしたがって実行できる。
【0033】
所望のSIMD演算に応じて、異なる配列方法を、32ビットグループ化ワードに対して使用することができる。8ビットのケースは、四つの異なる配列ケースについてすでに述べた。16ビットのデータも、32ビットロードにグループ化できる。このようなロードは、配列されたケースと誤って配列されたケースという二つの配列ケースがあり、その16ビットのオペランドは16ビットシフトされる。そのロードに対するポインタアドレスの2ビットのLSBを利用して、配列のケース、例えば、配列されたケースに対する「00」と、誤って配列されたケースに対する「01」とを決定できる。他のケースは、混合データタイプ、例えば混合した8ビットと16ビットのオペランドを含む32ビットグループ化ワードで演算するSIMD演算に一般化することができる。
【0034】
一実施態様によるレジスタファイルアーキテクチャは、各種の配列演算に対してデータをプリプロセスする必要をなくすことによって、各種のビデオと画像形成のアルゴリズムにより高い処理量を与えることができる。これは、異なる配列状態を扱うことを目的とするコードに類似のルーチンをなくすことによってコードサイズを小さくすることができ、かつ配列の状態を検出し、続いて命令を適当なシーケンスにブランチする必要性をなくすことによって、サイクルカウントも改善することもできる。したがって、このレジスタファイルアーキテクチャは、メモリインターフェースに負担をかけることなく、実行ユニット内の8ビット境界にデータの配列を提供することができ、このことは32ビットロード/記憶動作に対して確保することができる。
【0035】
配列独立SIMD演算をサポートする上記実施態様は、ビデオと画像をベースとする処理をサポートすることを目的とする演算に特に好適である。これらの演算としては、例えば、ハーフX、ハーフYおよびハーフXYのための8ビットクウォッド補間法(8bit quad interpolation)、フラクショナルモーションサーチオペレーション(fractional motion search operation)およびモーションコンペンセーション(motion compensation)がある。
【0036】
本発明の各種実施態様によるレジスタファイルアーキテクチャを有する汎用DSPは、ビデオ圧縮(video compression)についてMPEG-1/MPEG-2/MPEG-4/H.263の将来の標準を利用するビデオ処理画像形成装置に使用するのに好適である。
【0037】
このような汎用DSPは、ビデオカムコーダ、ディジタルカメラ、遠隔地間会議、PCビデオカードおよびHDTVへの使用が考えられる。図8に示すように、ディスプレイスクリーン604付きHDTV602用のビデオプロセッサ600は、本発明の一実施態様によるレジスタファイルアーキテクチャ608およびビデオ処理演算を実行するための命令を記憶するメモリ610を有するDSP606を備えている。その上に、この汎用DSPは、移動電話システム、音声認識などの用途に用いられる音声処理などのディジタル信号処理を利用する他の技法と組みあわせて使用することも考えられる。
【0038】
本発明のいくつもの実施態様を説明してきたが、各種の変形を、本発明の精神と範囲から逸脱することなく実施できると解される。したがって、その他の実施態様は、本願の特許請求の範囲の範囲内にある。なお、各種図面中の同じ参照記号は同じ要素を示す。
【図面の簡単な説明】
【図1】 本発明の一実施態様によるレジスタファイルアーキテクチャの模式図である。
【図2】 (A)〜(D)は、四つの配列状態のおける32ビットロードで作動する本発明の一実施態様によるレジスタファイルアーキテクチャを示す図である。
【図3】 本発明の一実施態様による配列演算を示す図である。
【図4】 本発明の一実施態様による配列演算を示す図である。
【図5】 本発明の一実施態様による配列演算を示す図である。
【図6】 二つのレジストペアを備えている本発明の別の実施態様によるレジスタファイルアーキテクチャを示す図である。
【図7】 二つのレジスタペアを備えている本発明のさらに別の実施態様によるレジスタファイルアーキテクチャを示す図である。
【図8】 本発明の一実施態様によるレジスタファイルアーキテクチャを有するディジタル信号プロセッサを組みこんだ高精細度テレビジョンの模式図である。

Claims (35)

  1. 2n個までのオペランドを集合体で含む二つのグループ化ワードを記憶するように構成された第1および第2レジスタからなるレジスタペアと、
    データアレイ内の複数のグループ化ワードのうちの第1および第2グループ化ワードを前記レジスタペアにロードすることによって前記複数のグループ化ワードを配列させ、第1配列動作において前記第1および第2グループ化ワードの少なくとも一方の配列状態を決定し、かつ前記第1配列動作に続く後の各配列動作において前記複数のグループ化ワードのうちの次の一つのグループ化ワードだけを前記第1および第2レジスタの一方にロードさせる制御装置と、
    前記第1および後の配列動作のそれぞれにて、前記二つのグループ化ワードの配列状態を示す制御信号に応答して、前記第1レジスタ内のオペランドと前記第2レジスタ内のオペランドをそれぞれ選択することにより、前記レジスタペア内の二つのグループ化ワードからn個のオペランドを選択し、前記第1レジスタ内の選択されたオペランドと前記第2レジスタ内の選択されたオペランドとを多重化して前記選択されたn個のオペランドを含む配列されたグループ化ワードを実行ユニットに出力するように構成されたものであって、前記第1および後の配列動作にて、前記第1レジスタ内の選択されたオペランドと前記第2レジスタ内の選択されたオペランドとの多重化の順を交互に逆にするオペランドセレクタとを備えた装置。
  2. 前記オペランドセレクタは、マルチプレクサである前記請求項1に記載の装置。
  3. 前記制御信号は、前記二つのグループ化ワードの一方のポインタアドレスの2ビットの最下位有効ビットからなる前記請求項1に記載の装置。
  4. 前記二つのグループ化ワードおよび配列されたグループ化ワードは、それぞれ32ビットワードからなる前記請求項1に記載の装置。
  5. nは、「4」に等しい前記請求項1に記載の装置。
  6. 前記n個のオペランドは、8ビットワードからなる前記請求項1に記載の装置。
  7. 前記n個のオペランドは、16ビットワードからなる前記請求項1に記載の装置。
  8. 前記請求項1に記載の装置において、さらに
    2n個のオペランドを含む二つのグループ化ワードの第2セットを記憶するように構成された第2レジスタペアを備え、
    前記オペランドセレクタは、二つのグループ化ワードの前記第1セットの配列状態を示す制御信号に応答して、前記第2レジスタペアからn個のオペランドを選択し、かつ前記n個のオペランドを含む第2の配列されたグループ化ワードを出力するように構成されている装置。
  9. 前記請求項1に記載の装置において、さらに
    2n個のオペランドを含む二つのグループ化ワードの第2セットを記憶するように構成された第2レジスタペアを備え、
    前記オペランドセレクタは、二つのグループ化ワードの前記第2セットの配列状態を示す制御信号に応答して、前記第2レジスタペアからn個のオペランドを選択し、かつ前記n個のオペランドを含む第2の配列されたグループ化ワードを出力するように構成されている装置。
  10. 前記請求項1に記載の装置において、
    前記オペランドセレクタは、前記後の配列動作において、前記レジスタペア内の一方のグループ化ワードの配列状態を示す制御信号を前記制御装置から受けることなく、前記n個のオペランドを選択し、かつ前記配列されたグループ化ワードを出力するように構成されている装置。
  11. 前記請求項1に記載の装置において、
    前記オペランドセレクタは、前記第1配列動作および前記後の配列動作のうちの奇数番目の配列動作において前記レジスタペア内のオペランドを順方向に多重化し、かつ前記後の配列動作のうちの偶数番目の配列動作において前記レジスタペア内のオペランドを逆方向に多重化するように構成されている装置。
  12. 前記請求項1に記載の装置において、
    前記制御装置は、前記第1配列動作において、誤って配列されたアクセスのための例外が起こることがないように作動する機能を備えるように構成されている装置。
  13. 前記請求項1に記載の装置において、
    前記第1配列動作は、前記第1および第2グループ化ワードをロードするための命令の実行、および前記配列されたグループ化ワードを発生するための命令の実行を含むようにした装置。
  14. 前記請求項1に記載の装置において、
    前記制御信号は、前記第1グループ化ワードをロードするための命令、前記第2グループ化ワードをロードするための命令、前記第1および第2グループ化ワードの両方をロードするための命令、または前記配列されたグループ化ワードを発生するための命令の実行の一環として発生されるようにした装置。
  15. ビデオ処理演算を実行するための命令を記憶するメモリを有するビデオプロセッサにおいて、
    2n個までのオペランドを集合体で含む二つのグループ化ワードを記憶するように構成された第1および第2レジスタからなるレジスタペアと、
    データアレイ内の複数のグループ化ワードのうちの第1および第2グループ化ワードを前記レジスタペアにロードすることによって前記複数のグループ化ワードを配列させ、第1配列動作において前記第1および第2グループ化ワードの少なくとも一方の配列状態を決定し、かつ前記第1配列動作に続く後の各配列動作において前記複数のグループ化ワードのうちの次の一つのグループ化ワードだけを前記第1および第2レジスタの一方にロードさせる制御装置と、
    前記第1および後の配列動作のそれぞれにて、前記二つのグループ化ワードの配列状態を示す制御信号に応答して、前記第1レジスタ内のオペランドと前記第2レジスタ内のオペランドをそれぞれ選択することにより、前記レジスタペア内の二つのグループ化ワードからn個のオペランドを選択し、前記第1レジスタ内の選択されたオペランドと前記第2レジスタ内の選択されたオペランドとを多重化して前記選択されたn個のオペランドを含む配列されたグループ化ワードを実行ユニットに出力するように構成されたものであって、前記第1および後の配列動作にて、前記第1レジスタ内の選択されたオペランドと前記第2レジスタ内の選択されたオペランドとの多重化の順を交互に逆にするオペランドセレクタとを有するディジタル信号プロセッサを備えてなるビデオプロセッサ。
  16. 前記制御信号は、前記第1および第2グループ化ワードのうちの一方のポインタアドレスの2ビットの最下位有効ビットからなる前記請求項15に記載のビデオプロセッサ。
  17. 前記第1グループ化ワード、第2グループ化ワードおよび配列されたグループ化ワードは、それぞれ32ビットワードからなる前記請求項15に記載のビデオプロセッサ。
  18. nは、「4」に等しい前記請求項15に記載のビデオプロセッサ。
  19. 前記n個のオペランドは、8ビットワードからなる前記請求項15に記載のビデオプロセッサ。
  20. 前記n個のオペランドは、16ビットワードからなる前記請求項15に記載のビデオプロセッサ。
  21. 前記請求項15に記載のビデオプロセッサにおいて、
    前記オペランドセレクタは、前記後の配列動作において、前記レジスタペア内の一方のグループ化ワードの配列状態を示す制御信号を前記制御装置から受けることなく、前記n個のオペランドを選択し、かつ前記配列されたグループ化ワードを出力するように構成されているビデオプロセッサ。
  22. 前記請求項15に記載のビデオプロセッサにおいて、
    前記オペランドセレクタは、前記第1配列動作および前記後の配列動作のうちの奇数番目の配列動作において前記レジスタペア内のオペランドを順方向に多重化し、かつ前記後の配列動作のうちの偶数番目の配列動作において前記レジスタペア内のオペランドを逆方向に多重化するように構成されているビデオプロセッサ。
  23. 前記請求項15に記載のビデオプロセッサにおいて、
    前記制御装置は、前記第1配列動作において、誤って配列されたアクセスのための例外が起こることがないように作動する機能を備えるように構成されているビデオプロセッサ。
  24. n個のオペランドを含む第1グループ化ワードをレジスタペアにロードし;
    n個のオペランドを含む第2グループ化ワードを前記レジスタペアにロードし;
    前記第1および第2グループ化ワードの配列状態を決定し、
    前記決定した配列状態に応答して、前記レジスタペア内の第1および第2グループ化ワード内の各オペランドをそれぞれ選択させることにより、前記レジスタペア内の前記第1および第2グループ化ワード内の2n個のオペランドからn個のオペランドをオペランドセレクタに選択させるとともに、前記選択させた前記レジスタペア内の第1および第2グループ化ワード内の各オペランドを、前記第1グループ化ワード内のオペランド、前記第2グループ化ワード内のオペランドの順に多重化させ
    n個のオペランドを含む配列されたグループ化ワードを前記オペランドセレクタから実行ユニットに出力し、
    n個のオペランドを含む第3グループ化ワードを前記レジスタペアにロードし;
    前記決定した配列状態に応答して、前記レジスタペア内の第2および第3グループ化ワード内の各オペランドをそれぞれ選択させることにより、前記第2および第3グループ化ワード内の2n個のオペランドからn個のオペランドを前記オペランドセレクタに選択させるとともに、前記選択させた前記レジスタペア内の第2および第3グループ化ワード内の各オペランドを、前記第2グループ化ワード内のオペランド、前記第3グループ化ワード内のオペランドの順に前記オペランドセレクタに多重化させ、かつ
    n個のオペランドを含む第2の配列されたグループ化ワードを前記オペランドセレクタから前記実行ユニットに出力するようにした方法。
  25. 前記配列状態を決定することは、前記第1および第2グループ化ワードの一方の2ビットの最下位有効ビットを決定することを含んでなる前記請求項24に記載の方法。
  26. 前記第1および第2グループ化ワードは、データアレイ内の隣接ワードである前記請求項24に記載の方法。
  27. n個のオペランドを選択することは、前記第1および第2グループ化ワード内のn個の隣接オペランドを選択することを含んでなる前記請求項26に記載の方法。
  28. n個のオペランドを選択することは、前記第2および第3グループ化ワードの間のn個のオペランドを逆多重化することを備えた前記請求項24に記載の方法。
  29. 前記二つのグループ化されたワードおよび配列されたグループ化ワードは、それぞれ32ビットワードからなる前記請求項24に記載の方法。
  30. 前記n個のオペランドは、8ビットワードからなる前記請求項24に記載の方法。
  31. 機械読み取り可能な媒体上に存在する命令を含み、グループ化ワード内のオペランドを配列するのに用いる装置であって、
    その命令が、機械に、
    n個のオペランドを含む第1グループ化ワードをレジスタペアにロードさせ、
    n個のオペランドを含む第2グループ化ワードを前記レジスタペアにロードさせ、
    前記第1と第2グループ化ワードの配列状態を決定させ、
    前記決定させた配列状態に応答して、前記レジスタペア内の第1および第2グループ化ワード内の各オペランドをそれぞれ選択させることにより、前記レジスタペア内の前記第1および第2グループ化ワード内の2n個のオペランドからn個のオペランドをオペランドセレクタに選択させることをさせるとともに、前記選択させた前記レジスタペア内の第1および第2グループ化ワード内の各オペランドを、前記第1グループ化ワード内のオペランド、前記第2グループ化ワード内のオペランドの順に前記オペランドセレクタに多重化させることをさせ
    n個のオペランドを含む配列されたグループ化ワードを前記オペランドセレクタから実行ユニットに出力させ、
    n個のオペランドを含む第3グループ化ワードを前記レジスタペアにロードさせ、
    前記決定させた配列状態に応答して、前記レジスタペア内の第2および第3グループ化ワード内の各オペランドをそれぞれ選択させることにより、前記第2および第3グループ化ワード内の2n個のオペランドからn個のオペランドを前記オペランドセレクタに選択させることをさせるとともに、前記選択させた前記レジスタペア内の第2および第3グループ化ワード内の各オペランドを、前記第2グループ化ワード内のオペランド、前記第3グループ化ワード内のオペランドの順に前記オペランドセレクタに多重化させることをさせ、かつ
    n個のオペランドを含む第2の配列されたグループ化ワードを前記オペランドセレクタから前記実行ユニットに出力させるようにした装置。
  32. 前記機械に配列状態を決定させる命令は、さらに機械に、前記第1および第2グループ化ワードの一方の2ビットの最下位有効ビットを決定させる命令を含む前記請求項31に記載の装置。
  33. 前記第1および第2グループ化ワードは、データアレイ内の隣接ワードである前記請求項31に記載の装置。
  34. 前記機械にn個のオペランドを選択させる命令は、さらに機械に、前記第1および第 ループ化ワード内のn個の隣接オペランドを選択させる命令を含む前記請求項33に記載の装置。
  35. 前記機械にn個のオペランドを選択させる命令は、機械に、前記第2および第3グループ化ワードの間のn個のオペランドを逆多重化させる命令をさらに含む前記請求項31に記載の装置。
JP2001201406A 2000-06-30 2001-07-02 配列されたsimdのための汎用レジスタファイルアーキテクチャ Expired - Lifetime JP3975231B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/608,983 US7120781B1 (en) 2000-06-30 2000-06-30 General purpose register file architecture for aligned simd
US09/608,983 2000-06-30

Publications (2)

Publication Number Publication Date
JP2002117009A JP2002117009A (ja) 2002-04-19
JP3975231B2 true JP3975231B2 (ja) 2007-09-12

Family

ID=24438892

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001201406A Expired - Lifetime JP3975231B2 (ja) 2000-06-30 2001-07-02 配列されたsimdのための汎用レジスタファイルアーキテクチャ

Country Status (5)

Country Link
US (1) US7120781B1 (ja)
JP (1) JP3975231B2 (ja)
KR (1) KR100463121B1 (ja)
CN (1) CN1246789C (ja)
TW (1) TW559709B (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8484441B2 (en) * 2004-03-31 2013-07-09 Icera Inc. Apparatus and method for separate asymmetric control processing and data path processing in a configurable dual path processor that supports instructions having different bit widths
US9047094B2 (en) 2004-03-31 2015-06-02 Icera Inc. Apparatus and method for separate asymmetric control processing and data path processing in a dual path processor
US7949856B2 (en) * 2004-03-31 2011-05-24 Icera Inc. Method and apparatus for separate control processing and data path processing in a dual path processor with a shared load/store unit
US7246218B2 (en) * 2004-11-01 2007-07-17 Via Technologies, Inc. Systems for increasing register addressing space in instruction-width limited processors
US8417922B2 (en) * 2006-08-02 2013-04-09 Qualcomm Incorporated Method and system to combine multiple register units within a microprocessor
US9015452B2 (en) * 2009-02-18 2015-04-21 Texas Instruments Incorporated Vector math instruction execution by DSP processor approximating division and complex number magnitude
CN101930355B (zh) * 2010-08-24 2013-07-24 中国航天科技集团公司第九研究院第七七一研究所 实现寄存器文件分组编址、读写控制方法的寄存器电路
CN101930356B (zh) * 2010-08-24 2013-03-20 中国航天科技集团公司第九研究院第七七一研究所 用于浮点协处理器的寄存器文件分组编址、读写控制方法
KR101699685B1 (ko) * 2010-11-16 2017-01-26 삼성전자 주식회사 명령어 오퍼랜드 변경 장치 및 방법
US9582419B2 (en) * 2013-10-25 2017-02-28 Arm Limited Data processing device and method for interleaved storage of data elements
CN103984524B (zh) * 2014-05-15 2016-07-06 中国航天科技集团公司第九研究院第七七一研究所 一种面向risc处理器的三端口浮点寄存器文件
KR102425668B1 (ko) * 2017-02-23 2022-07-28 에이알엠 리미티드 데이터 처리장치에서의 곱셈-누적
CN112859377B (zh) * 2019-11-28 2023-03-14 京东方科技集团股份有限公司 一种复用寄存器、三维显示装置及其控制方法

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63124154A (ja) 1986-11-05 1988-05-27 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン 暗証情報発生装置
US4972260A (en) 1988-08-22 1990-11-20 Matsushita Electric Industrial Co., Ltd. Apparatus for coding a moving-picture signal
US5179671A (en) * 1989-03-31 1993-01-12 Bull Hn Information Systems Inc. Apparatus for generating first and second selection signals for aligning words of an operand and bytes within these words respectively
JPH02292647A (ja) * 1989-05-02 1990-12-04 Toshiba Corp 半導体記憶装置
US5253308A (en) * 1989-06-21 1993-10-12 Amber Engineering, Inc. Massively parallel digital image data processor using pixel-mapped input/output and relative indexed addressing
GB8925723D0 (en) * 1989-11-14 1990-01-04 Amt Holdings Processor array system
JP2842930B2 (ja) 1990-05-16 1999-01-06 株式会社アドバンテスト 半導体集積回路試験装置のテストプロセッサに用いられる命令読み出し回路
US5128759A (en) 1990-05-31 1992-07-07 Sony Corporation Video signal decoder
US5771368A (en) * 1990-10-29 1998-06-23 Sun Microsystems, Inc. Memory addressing scheme for increasing the number of memory locations available in a computer for storing higher precision numbers
JPH04236664A (ja) 1991-01-18 1992-08-25 Sony Corp 演算回路
JPH0530493A (ja) 1991-07-24 1993-02-05 Sony Corp デイジタルビデオ信号の復号化装置
US5319573A (en) 1992-01-15 1994-06-07 Motorola, Inc. Method and apparatus for noise burst detection in a signal processor
JPH06131248A (ja) 1992-10-19 1994-05-13 Minolta Camera Co Ltd 記憶データ読出制御装置
US5651121A (en) * 1992-12-18 1997-07-22 Xerox Corporation Using mask operand obtained from composite operand to perform logic operation in parallel with composite operand
JPH0713762A (ja) 1993-06-22 1995-01-17 Fujitsu Ltd スーパースカラ計算機における命令供給方法
US5544251A (en) 1994-01-14 1996-08-06 Intel Corporation Process and apparatus for pseudo-SIMD processing of image data
US5566250A (en) 1994-01-14 1996-10-15 Intel Corporation Process and apparatus for pseudo-SIMD processing of image data
JPH0863452A (ja) * 1994-08-26 1996-03-08 Nec Corp Simdプロセッサ
US5724275A (en) * 1996-03-22 1998-03-03 Hitachi Microsystems, Inc. Fast multi-operand bit pattern detection method and circuit
US5922066A (en) * 1997-02-24 1999-07-13 Samsung Electronics Co., Ltd. Multifunction data aligner in wide data width processor
US6260137B1 (en) * 1997-09-12 2001-07-10 Siemens Aktiengesellschaft Data processing unit with digital signal processing capabilities
US5933650A (en) 1997-10-09 1999-08-03 Mips Technologies, Inc. Alignment and ordering of vector elements for single instruction multiple data processing
US6061779A (en) * 1998-01-16 2000-05-09 Analog Devices, Inc. Digital signal processor having data alignment buffer for performing unaligned data accesses
US6112297A (en) * 1998-02-10 2000-08-29 International Business Machines Corporation Apparatus and method for processing misaligned load instructions in a processor supporting out of order execution
US5996057A (en) * 1998-04-17 1999-11-30 Apple Data processing system and method of permutation with replication within a vector register file
JPH11312085A (ja) 1998-04-28 1999-11-09 Hitachi Ltd プロセッサ
US5951677A (en) 1998-05-29 1999-09-14 Texas Instruments Incorporated Efficient hardware implementation of euclidean array processing in reed-solomon decoding

Also Published As

Publication number Publication date
KR100463121B1 (ko) 2004-12-23
JP2002117009A (ja) 2002-04-19
CN1334525A (zh) 2002-02-06
CN1246789C (zh) 2006-03-22
KR20020002334A (ko) 2002-01-09
US7120781B1 (en) 2006-10-10
TW559709B (en) 2003-11-01

Similar Documents

Publication Publication Date Title
JP3975231B2 (ja) 配列されたsimdのための汎用レジスタファイルアーキテクチャ
US4816913A (en) Pixel interpolation circuitry as for a video signal processor
US6546480B1 (en) Instructions for arithmetic operations on vectored data
US5991865A (en) MPEG motion compensation using operand routing and performing add and divide in a single instruction
US5088053A (en) Memory controller as for a video signal processor
EP1656622B1 (en) Parallel processing array
US6629115B1 (en) Method and apparatus for manipulating vectored data
EP0404816A1 (en) Dual mode adder circuitry
EP0386137A1 (en) Processor for expanding a compressed video signal
US6574651B1 (en) Method and apparatus for arithmetic operation on vectored data
WO2001026363A1 (en) Programmable image transform processor
US6785800B1 (en) Single instruction stream multiple data stream processor
US20030172254A1 (en) Instructions for manipulating vectored data
US7412587B2 (en) Parallel operation processor utilizing SIMD data transfers
JP4020804B2 (ja) データ処理装置
US5860130A (en) Memory interface apparatus including an address modification unit having an offset table for prestoring a plurality of offsets
US5671020A (en) Method and apparatus for improved video filter processing using efficient pixel register and data organization
US20020040426A1 (en) Execution control apparatus of data driven information processor
JP3971559B2 (ja) 並列プロセッサ及びそれを用いた画像処理装置
AU622879B2 (en) Pixel interpolation circuitry as for a video signal processor
JP2007109253A (ja) 並列プロセッサ
JP3844465B2 (ja) イベント・ベクトル・テーブルのオーバーライド
JP3333227B2 (ja) デジタル映像信号処理装置
JP2002207591A (ja) ディジタル信号処理装置及び方法
JP2002057994A (ja) 画像信号処理装置およびその方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050208

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20050506

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20050513

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050808

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060207

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060530

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20060925

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: 20070313

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20070410

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070410

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100629

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 3975231

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100629

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110629

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120629

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120629

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130629

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term