(57)【特許請求の範囲】
【請求項１】
２ｎ個までのオペランドを集合体で含む二つのグループ化ワードを記憶するように構成された第１および第２レジスタからなるレジスタペアと、
データアレイ内の複数のグループ化ワードのうちの第１および第２グループ化ワードを前記レジスタペアにロードすることによって前記複数のグループ化ワードを配列させ、第１配列動作において前記第１および第２グループ化ワードの少なくとも一方の配列状態を決定し、かつ前記第１配列動作に続く後の各配列動作において前記複数のグループ化ワードのうちの次の一つのグループ化ワードだけを前記第１および第２レジスタの一方にロードさせる制御装置と、
前記第１および後の配列動作のそれぞれにて、前記二つのグループ化ワードの配列状態を示す制御信号に応答して、前記第１レジスタ内のオペランドと前記第２レジスタ内のオペランドをそれぞれ選択することにより、前記レジスタペア内の二つのグループ化ワードからｎ個のオペランドを選択し、前記第１レジスタ内の選択されたオペランドと前記第２レジスタ内の選択されたオペランドとを多重化して前記選択されたｎ個のオペランドを含む配列されたグループ化ワードを実行ユニットに出力するように構成されたものであって、前記第１および後の配列動作にて、前記第１レジスタ内の選択されたオペランドと前記第２レジスタ内の選択されたオペランドとの多重化の順を交互に逆にするオペランドセレクタとを備えた装置。
【請求項２】
前記オペランドセレクタは、マルチプレクサである前記請求項１に記載の装置。
【請求項３】
前記制御信号は、前記二つのグループ化ワードの一方のポインタアドレスの２ビットの最下位有効ビットからなる前記請求項１に記載の装置。
【請求項４】
前記二つのグループ化ワードおよび配列されたグループ化ワードは、それぞれ３２ビットワードからなる前記請求項１に記載の装置。
【請求項５】
ｎは、「４」に等しい前記請求項１に記載の装置。
【請求項６】
前記ｎ個のオペランドは、８ビットワードからなる前記請求項１に記載の装置。
【請求項７】
前記ｎ個のオペランドは、１６ビットワードからなる前記請求項１に記載の装置。
【請求項８】
前記請求項１に記載の装置において、さらに
２ｎ個のオペランドを含む二つのグループ化ワードの第２セットを記憶するように構成された第２レジスタペアを備え、
前記オペランドセレクタは、二つのグループ化ワードの前記第１セットの配列状態を示す制御信号に応答して、前記第２レジスタペアからｎ個のオペランドを選択し、かつ前記ｎ個のオペランドを含む第２の配列されたグループ化ワードを出力するように構成されている装置。
【請求項９】
前記請求項１に記載の装置において、さらに
２ｎ個のオペランドを含む二つのグループ化ワードの第２セットを記憶するように構成された第２レジスタペアを備え、
前記オペランドセレクタは、二つのグループ化ワードの前記第２セットの配列状態を示す制御信号に応答して、前記第２レジスタペアからｎ個のオペランドを選択し、かつ前記ｎ個のオペランドを含む第２の配列されたグループ化ワードを出力するように構成されている装置。
【請求項１０】
前記請求項１に記載の装置において、
前記オペランドセレクタは、前記後の配列動作において、前記レジスタペア内の一方のグループ化ワードの配列状態を示す制御信号を前記制御装置から受けることなく、前記ｎ個のオペランドを選択し、かつ前記配列されたグループ化ワードを出力するように構成されている装置。
【請求項１１】
前記請求項１に記載の装置において、
前記オペランドセレクタは、前記第１配列動作および前記後の配列動作のうちの奇数番目の配列動作において前記レジスタペア内のオペランドを順方向に多重化し、かつ前記後の配列動作のうちの偶数番目の配列動作において前記レジスタペア内のオペランドを逆方向に多重化するように構成されている装置。
【請求項１２】
前記請求項１に記載の装置において、
前記制御装置は、前記第１配列動作において、誤って配列されたアクセスのための例外が起こることがないように作動する機能を備えるように構成されている装置。
【請求項１３】
前記請求項１に記載の装置において、
前記第１配列動作は、前記第１および第２グループ化ワードをロードするための命令の実行、および前記配列されたグループ化ワードを発生するための命令の実行を含むようにした装置。
【請求項１４】
前記請求項１に記載の装置において、
前記制御信号は、前記第１グループ化ワードをロードするための命令、前記第２グループ化ワードをロードするための命令、前記第１および第２グループ化ワードの両方をロードするための命令、または前記配列されたグループ化ワードを発生するための命令の実行の一環として発生されるようにした装置。
【請求項１５】
ビデオ処理演算を実行するための命令を記憶するメモリを有するビデオプロセッサにおいて、
２ｎ個までのオペランドを集合体で含む二つのグループ化ワードを記憶するように構成された第１および第２レジスタからなるレジスタペアと、
データアレイ内の複数のグループ化ワードのうちの第１および第２グループ化ワードを前記レジスタペアにロードすることによって前記複数のグループ化ワードを配列させ、第１配列動作において前記第１および第２グループ化ワードの少なくとも一方の配列状態を決定し、かつ前記第１配列動作に続く後の各配列動作において前記複数のグループ化ワードのうちの次の一つのグループ化ワードだけを前記第１および第２レジスタの一方にロードさせる制御装置と、
前記第１および後の配列動作のそれぞれにて、前記二つのグループ化ワードの配列状態を示す制御信号に応答して、前記第１レジスタ内のオペランドと前記第２レジスタ内のオペランドをそれぞれ選択することにより、前記レジスタペア内の二つのグループ化ワードからｎ個のオペランドを選択し、前記第１レジスタ内の選択されたオペランドと前記第２レジスタ内の選択されたオペランドとを多重化して前記選択されたｎ個のオペランドを含む配列されたグループ化ワードを実行ユニットに出力するように構成されたものであって、前記第１および後の配列動作にて、前記第１レジスタ内の選択されたオペランドと前記第２レジスタ内の選択されたオペランドとの多重化の順を交互に逆にするオペランドセレクタとを有するディジタル信号プロセッサを備えてなるビデオプロセッサ。
【請求項１６】
前記制御信号は、前記第１および第２グループ化ワードのうちの一方のポインタアドレスの２ビットの最下位有効ビットからなる前記請求項１５に記載のビデオプロセッサ。
【請求項１７】
前記第１グループ化ワード、第２グループ化ワードおよび配列されたグループ化ワードは、それぞれ３２ビットワードからなる前記請求項１５に記載のビデオプロセッサ。
【請求項１８】
ｎは、「４」に等しい前記請求項１５に記載のビデオプロセッサ。
【請求項１９】
前記ｎ個のオペランドは、８ビットワードからなる前記請求項１５に記載のビデオプロセッサ。
【請求項２０】
前記ｎ個のオペランドは、１６ビットワードからなる前記請求項１５に記載のビデオプロセッサ。
【請求項２１】
前記請求項１５に記載のビデオプロセッサにおいて、
前記オペランドセレクタは、前記後の配列動作において、前記レジスタペア内の一方のグループ化ワードの配列状態を示す制御信号を前記制御装置から受けることなく、前記ｎ個のオペランドを選択し、かつ前記配列されたグループ化ワードを出力するように構成されているビデオプロセッサ。
【請求項２２】
前記請求項１５に記載のビデオプロセッサにおいて、
前記オペランドセレクタは、前記第１配列動作および前記後の配列動作のうちの奇数番目の配列動作において前記レジスタペア内のオペランドを順方向に多重化し、かつ前記後の配列動作のうちの偶数番目の配列動作において前記レジスタペア内のオペランドを逆方向に多重化するように構成されているビデオプロセッサ。
【請求項２３】
前記請求項１５に記載のビデオプロセッサにおいて、
前記制御装置は、前記第１配列動作において、誤って配列されたアクセスのための例外が起こることがないように作動する機能を備えるように構成されているビデオプロセッサ。
【請求項２４】
ｎ個のオペランドを含む第１グループ化ワードをレジスタペアにロードし；
ｎ個のオペランドを含む第２グループ化ワードを前記レジスタペアにロードし；
前記第１および第２グループ化ワードの配列状態を決定し、
前記決定した配列状態に応答して、前記レジスタペア内の第１および第２グループ化ワード内の各オペランドをそれぞれ選択させることにより、前記レジスタペア内の前記第１および第２グループ化ワード内の２ｎ個のオペランドからｎ個のオペランドをオペランドセレクタに選択させるとともに、前記選択させた前記レジスタペア内の第１および第２グループ化ワード内の各オペランドを、前記第１グループ化ワード内のオペランド、前記第２グループ化ワード内のオペランドの順に多重化させ、
ｎ個のオペランドを含む配列されたグループ化ワードを前記オペランドセレクタから実行ユニットに出力し、
ｎ個のオペランドを含む第３グループ化ワードを前記レジスタペアにロードし；
前記決定した配列状態に応答して、前記レジスタペア内の第２および第３グループ化ワード内の各オペランドをそれぞれ選択させることにより、前記第２および第３グループ化ワード内の２ｎ個のオペランドからｎ個のオペランドを前記オペランドセレクタに選択させるとともに、前記選択させた前記レジスタペア内の第２および第３グループ化ワード内の各オペランドを、前記第２グループ化ワード内のオペランド、前記第３グループ化ワード内のオペランドの順に前記オペランドセレクタに多重化させ、かつ
ｎ個のオペランドを含む第２の配列されたグループ化ワードを前記オペランドセレクタから前記実行ユニットに出力するようにした方法。
【請求項２５】
前記配列状態を決定することは、前記第１および第２グループ化ワードの一方の２ビットの最下位有効ビットを決定することを含んでなる前記請求項２４に記載の方法。
【請求項２６】
前記第１および第２グループ化ワードは、データアレイ内の隣接ワードである前記請求項２４に記載の方法。
【請求項２７】
ｎ個のオペランドを選択することは、前記第１および第２グループ化ワード内のｎ個の隣接オペランドを選択することを含んでなる前記請求項２６に記載の方法。
【請求項２８】
ｎ個のオペランドを選択することは、前記第２および第３グループ化ワードの間のｎ個のオペランドを逆多重化することを備えた前記請求項２４に記載の方法。
【請求項２９】
前記二つのグループ化されたワードおよび配列されたグループ化ワードは、それぞれ３２ビットワードからなる前記請求項２４に記載の方法。
【請求項３０】
前記ｎ個のオペランドは、８ビットワードからなる前記請求項２４に記載の方法。
【請求項３１】
機械読み取り可能な媒体上に存在する命令を含み、グループ化ワード内のオペランドを配列するのに用いる装置であって、
その命令が、機械に、
ｎ個のオペランドを含む第１グループ化ワードをレジスタペアにロードさせ、
ｎ個のオペランドを含む第２グループ化ワードを前記レジスタペアにロードさせ、
前記第１と第２グループ化ワードの配列状態を決定させ、
前記決定させた配列状態に応答して、前記レジスタペア内の第１および第２グループ化ワード内の各オペランドをそれぞれ選択させることにより、前記レジスタペア内の前記第１および第２グループ化ワード内の２ｎ個のオペランドからｎ個のオペランドをオペランドセレクタに選択させることをさせるとともに、前記選択させた前記レジスタペア内の第１および第２グループ化ワード内の各オペランドを、前記第１グループ化ワード内のオペランド、前記第２グループ化ワード内のオペランドの順に前記オペランドセレクタに多重化させることをさせ、
ｎ個のオペランドを含む配列されたグループ化ワードを前記オペランドセレクタから実行ユニットに出力させ、
ｎ個のオペランドを含む第３グループ化ワードを前記レジスタペアにロードさせ、
前記決定させた配列状態に応答して、前記レジスタペア内の第２および第３グループ化ワード内の各オペランドをそれぞれ選択させることにより、前記第２および第３グループ化ワード内の２ｎ個のオペランドからｎ個のオペランドを前記オペランドセレクタに選択させることをさせるとともに、前記選択させた前記レジスタペア内の第２および第３グループ化ワード内の各オペランドを、前記第２グループ化ワード内のオペランド、前記第３グループ化ワード内のオペランドの順に前記オペランドセレクタに多重化させることをさせ、かつ
ｎ個のオペランドを含む第２の配列されたグループ化ワードを前記オペランドセレクタから前記実行ユニットに出力させるようにした装置。
【請求項３２】
前記機械に配列状態を決定させる命令は、さらに機械に、前記第１および第２グループ化ワードの一方の２ビットの最下位有効ビットを決定させる命令を含む前記請求項３１に記載の装置。
【請求項３３】
前記第１および第２グループ化ワードは、データアレイ内の隣接ワードである前記請求項３１に記載の装置。
【請求項３４】
前記機械にｎ個のオペランドを選択させる命令は、さらに機械に、前記第１および第２グループ化ワード内のｎ個の隣接オペランドを選択させる命令を含む前記請求項３３に記載の装置。
【請求項３５】
前記機械にｎ個のオペランドを選択させる命令は、機械に、前記第２および第３グループ化ワードの間のｎ個のオペランドを逆多重化させる命令をさらに含む前記請求項３１に記載の装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ディジタルビデオ、画像形成および音声などの各種マルチメディアの用途に使用できるディジタル信号プロセッサ（ＤＳＰ）に関する。
【０００２】
【発明の背景】
この種のＤＳＰは、ディジタル信号を操作して、上記マルチメディアファイルを作成したり、オープンすることができる。
【０００３】
ＤＳＰは、ＳＩＭＤ（Single Instruction/Multiple Data：  単一命令／複数データ処理）プロセッサまたはデータパラレルプロセッサとして作動できる。ＳＩＭＤの作動において、単一命令は、いくつもの処理要素に送られ、その処理要素は、異なるデータに対して同じ演算を行う。中央制御装置を用いて、前記命令ストリームを、異なる処理要素にブロードキャストすることができる。ＳＩＭＤ命令は、加算、減算、乗算、積和演算（ＭＡＣ）を含むいくつものタイプの標準演算、およびＬ１−ノルム−アキュムレート（LI-Norm-accumulate）（ＳＡＡ）、クリッピングおよび双線形補間法のためのいくつもの特別命令を与える。
【０００４】
多くのビデオ装置と画像処理装置が、二次元（２Ｄ）データアレイ内に配列された８ビットワードで作動する。四つの８ビットオペランドは、３２ビットのグループ化ワードにパックされて、パラレル処理をするための実行ユニットに送られる。前記２Ｄアレイからのこれら８ビットオペランドは、適正な演算を行うための３２ビットのグループ化ワード内に適正に配列されねばならない。
【０００５】
３２ビットワードで配列された機械にて、８ビットデータを用いて作動させると、四つの異なる配列の可能性がある。すなわち、配列されたもの（そのもの）；８ビットシフトしたもの；１６ビットシフトしたもの；および２４ビットシフトしたものである。ＤＳＰは、誤って配列した（misaligned）ワードを検出すると、例外（exception）を発生する。その例外に応答して、配列演算が、メモリインターフェースまたはデータレジスタで実行され、８ビットオペランドをシフトして（正しく）配列された３２ビットワードを生成する。しかし、この配列演算は、前記機械の作動に追加の処理オーバーヘッド（処理付帯部分）をもたらす。
【０００６】
８ビットＳＩＭＤ演算に対する配列オーバーヘッドは、汎用ＤＳＰ内の資源の非効率的な利用をもたらす。この非効率は、配列演算が、データを処理するために整えるのに利用されるので不必要なサイクル消費（cycle consumption）として現れる。
【０００７】
図１は、二次元（２Ｄ）のパックされた８ビットデータアレイに対して、３２ビットのグループ化ワードの自動的配列を、そのアドレスポインタを使って提供する一実施態様によるレジスタファイルアーキテクチャ１００を示す。このレジスタファイルは複数のレジスタＲ０−Ｒ７（１０４）を含んでいる。ロードマルチプレクサ（ＭＵＸ）１０６が、３２ビットのロードをレジスタファイルに多重化し、記憶ＭＵＸ１０８が記憶ワードを前記レジスタファイルから出力し、そして配列ＭＵＸ１１０が、配列された３２ビットグループ化ワードを、レジスタＲ０とＲ１を含むレジスタペア１１２から出力する。その配列ＭＵＸ１１０とレジスタファイルは制御装置１１４で制御される。
【０００８】
前記レジスタファイルは、データアレイからの二つの３２ビットグループ化ノードＫとＫ＋１それぞれを、レジスタペアＲ０とＲ１内のデータレジスタの一方の各々にロードすることにより、配列演算を行うために準備される。８ビットオペランドが各々、レジスタ内の四つの記憶場所ＲｘＬＬ、ＲｘＬＨ、ＲｘＨＬおよびＲｘＨＨのうちの一つを占有する。図２(Ａ)〜(Ｄ)は、レジスタＲ２とＲ３を含むレジスタペア２００における３２ビットワードのための四つの異なる配列ケースを示す。その四つの８ビットオペランドは適正に配列されることができるか（図２(Ａ)）または３２ビットワードの境界をクロスする（図２(Ｂ)−(Ｄ)）。
【０００９】
ポインタアドレスの２ビットの最下位有効ビット（ＬＳＢ）２０２は、前記制御装置によってマスクオフされ、３２ビットグループ化ワードについての配列状態を決定するために使用される。これらＬＳＢ２０２は、制御信号として使用されて、配列ＭＵＸ１１０を制御し、配列された３２ビットワード２０４に対応するレジスタペアにおける八つの記憶場所から四つの８ビットオペランドを選択する。前記配列された３２ビットワード２０２は、その成分の８ビットオペランドを前記実行ユニットでパラレル処理するためオペランド（ＯＰＡまたはＤＰＢ）として出力される。
【００１０】
図２(Ａ)に示す「００」は配列されたワードを示す。この場合、配列ＭＵＸ１１０は、Ｒ２ＬＬ、Ｒ２ＬＨ、Ｒ２ＨＬおよびＲ２ＨＨ内のオペランドを選択して、その順序で、それら８ビットオペランドを含む配列された３２ビットワード２０４を出力するように制御される。
【００１１】
図２(Ｂ)に示す「０１」は、８ビットオフセットされた３２ビットワードを示す。この場合、配列ＭＵＸ１１０は、Ｒ３ＨＨ、Ｒ２ＬＬ、Ｒ２ＬＨおよびＲ２ＨＬ内のオペランドを選択して、その順序で、それら８ビットオペランドを含む配列された３２ビットワード２０６を出力するように制御される。
【００１２】
図２(Ｃ)に示す「１０」は、１６ビットオフセットされた３２ビットワードを示す。この場合、配列ＭＵＸ１１０は、Ｒ３ＨＬ、Ｒ３ＨＨ、Ｒ２ＬＬおよびＲ２ＬＨ内のオペランドを選択して、その順序でそれら８ビットのオペランドを含む配列された３２ビットワード２０８を出力するように制御される。
【００１３】
図２(Ｄ)に示す「１１」は、２４ビットオフセットされた３２ビットワードを示す。この場合、配列ＭＵＸ１１０は、Ｒ３ＬＨ、Ｒ３ＨＬ、Ｒ３ＨＨおよびＲ２ＬＬ内のオペランドを選択して、その順序で、それら８ビットオペランドを含む配列された３２ビットワード２１０を出力するように制御される。
【００１４】
図３〜５は、一実施態様による配列演算を示す。その演算は、図３に示すように、状態３００にて誤まって配列された３２ビットワードＫとＫ＋１を２ＤデータアレイからレジスタＲ０とＲ１にロードすることによって準備される（サイクル１）。ワードＫは８ビットオペランドＡ、ＢおよびＣを含み、そしてワードＫ＋１は８ビットオペランドＤ、Ｅ、ＦおよびＧを含んでいる。この場合、ワードＫとＫ＋１は８ビットだけオフセットされる。これらワードに対するポインタアドレスのＬＳＢは「０１」である。したがって、配列ＭＵＸ１１０は、状態３０２にて、レジスタＲ０から８ビットオペランドＡ、Ｂ、Ｃを選択し、かつレジスタＲ１から８ビットオペランドＤを選択して、状態３０６にて配列された３２ビットワードＡＢＣＤ(３０４)を出力する。一旦準備されると、１サイクル当り必要なロードは一回だけである。図４に示すように、次のサイクル（サイクル２）において、レジスタＲ０には、状態３０８にて、３２ビットワードＫ＋２、ＨＩＪＫがロードされる。配列ＭＵＸ１１０は、レジスタペア内のオペランドを逆多重化して読出しのリフレクション（反射）を得るように制御される。オペランドを逆多重化すると、前記配列ＭＵＸは、レジスタＲ１を読み出してからレジスタＲ０を読み出す。前記配列ＭＵＸは、状態３１０にて、レジスタＲ１から未選択の８ビットオペランドＥ、ＦおよびＧを予め選択し、かつレジスタＲ０から８ビットのオペランドＨを予め選択する。前記配列ＭＵＸは、状態３１４にて、配列された３２ビットワードＥＦＧＨ(３１２)を処理のために出力する。
【００１５】
次のサイクル（サイクル３）において、Ｒ１には、３２ビットワードＫ＋３、ＬＭＮＯ(３１６)がロードされる。配列ＭＵＸ１１０は、状態３１８にてバイトＩ、Ｊ、ＫおよびＬを選択して、状態３２２にて３２ビットワードＩＪＫＬを出力するよう制御される。サイクル３で、配列ＭＵＸ１１０は、レジスタＲ０とＲ１を順方向に多重化する。したがって、前記３２ビットのロードが、ペアの二つのレジスタＲ０とＲ１の間を各々奇数／偶数サイクルで「ピンポン」伝送されて、前記パックされた８ビットアレイが処理される。
【００１６】
図３〜５に示す演算に例示されているように、８ビットデータの処理の要求は反復されることが多く、一旦設定されると持続する。レジスタファイルが一旦準備されると、３２ビットのロードは最小限のオーバーヘッドで配列される。
【００１７】
汎用ＤＳＰにおいて、データレジスタに、誤って配列された３２ビットワードをロードすると例外の発生を引き起こす。８ビットＳＩＭＤの演算は、実行ユニットに利用可能な１６個もの８ビットオペランドが必要である。これは二つのレジスタペアすなわち四つのレジスタに相当する。前記レジスタペアにロードするために利用可能な二つの３２ビットバスを用いて、四つのレジスタは、ロードされてからＳＩＭＤ演算を開始しなければならない。一実施態様によって、特別の命令、例えばDISALGENEXを使用して、誤って配列されたアクセスのために例外が起こることがないようにする機能を準備し、８ビットＳＩＭＤ機能ループを準備する。前記DISALGENEXの命令は、３２ビットの境界をクロスするかまたはクロスしない一つまたは二つのロード演算と組み合せて発行してもよい。命令の例としては次のものがある。
【００１８】
(１)DISALGENEX，R1＝［i0++］，R3＝［I1++］
(２)DISALGENEX，［p0++p1］＝R5，R3＝［i1++］
【００１９】
図１に戻って、制御装置１１４は、ロードＭＵＸ１０６を制御して、レジスタペアＲ０／Ｒ１に、ロードＡに対応する隣接３２ビットグループ化ワードをロードする。また、この制御装置は、ロードＭＵＸ１０６を制御して、ロードレジスタＲ２に、ロードＢに対応する３２ビットグループ化ワードをロードする。ロードＡのポインタアドレス（＊loadａ［１：０］）の２ビットのＬＳＢ２０２は、前記制御装置によってマスクオフされて、配列ＭＵＸ１１０に対して制御信号として入力される。前記配列ＭＵＸは、ロードＡのポインタアドレスのＬＳＢに基づいて四つの適当なオペランドを選択して、配列された３２ビットワードＯＰＡを出力する。Ｒ２は，３２ビットグループ化ワードＯＰＢを出力する。ＯＰＡとＯＰＢの８ビットオペランドは、実行ユニットで演算される。これらの演算から得られた結果ＲＥＳＡとＲＥＳＢは、レジスタファイルに再ロードされる。
【００２０】
図６は、一実施態様によるレジスタファイルアーキテクチャ４００を示し、そのアーキテクチャでは、単一ポインタアドレス（＊loadｂ［１：０］）からのＬＳＢを使用して、二つのレジスタペアＲ０／Ｒ１とＲ２／Ｒ３からの８個の８ビットオペランドを多重化して、二つの配列された３２ビットワードＯＰＡとＯＰＢが出力される。この実施態様によって、第２ポインタを使用して記憶動作を行うことができる。この実施態様によれば、８ビットＳＩＭＤ命令が、２Ｄ８ビットデータアレイの隣接する行または列で演算することになっている命令の配列とは独立した実行を許容することによってサポートされる。この種の配列をサポートする命令は下記の形態である。
【００２１】
dregs＝8b＿OP（R1:0,R3:2）AMOD,［im++］＝dregs，dregs＝［im++］;
【００２２】
図７は、一実施態様によるレジスタファイルアーキテクチャ５００を示し、この場合、８ビットパックドデータアレイに対する二つのポインタｉmおよびｉnの各々からの２ビットのＬＳＢが、八つの８ビットオペランドを多重化するための制御信号として使用される。これは、各々の配列が異なっている場合、二つの３２ビットグループ化ワードを実行ユニットに提供することを目的としている。二つの配列ＭＵＸ１１０が提供され、各々、制御信号として、異なるポインタのＬＳＢを備えている。
【００２３】
この種の配列をサポートする命令は以下の形態である。
【００２４】
dregs＝8b_OP(R1:0，R3:2)AMOD，dregs＝[im++]，dregs=[im++];および
dregs＝8b_OP(R1:0，R3:2)AMOD，dregs=[in++],dregs=[in++];
【００２５】
配列独立８ビットＳＩＭＤ・ＡＤＤ演算（alignment independent 8bit SIMD ADD operation）が一実施態様で行われる。クウォッド８ビットＳＩＭＤ命令（quad 8bit SIMD instruction）を用いて、四つの１６ビット符号付データ出力を有する二つのバイト付加を実行する。３２ビットのロードＯＰＡは四つの８ビットオペランドａm+3、ａm+2、ａm+1およびａmを含んでいる。３２ビットのロードＯＰＢは四つの８ビットオペランドｂm+3、ｂm+2、ｂm+1およびｂmを含んでいる。ＯＰＡを決定するために使用される二つの３２ビットグループ化ワードはレジスタペアＲ０／Ｒ１にロードすることができ、そしてＯＰＢを決定するために使用される３２ビットグループ化ワードはレジスタペアＲ２／Ｒ３にロードすることができる。ＯＰＡとＯＰＢの応対する８ビットオペランドが加算される。この加算演算の結果は、四つの１６ビット値すなわちａm+3＋ｂm+3、ａm+2＋ｂm+2、ａm+1＋ｂm+1およびａm＋ｂmであり、これらの値は３２ビットワードにグループ化され、Ｒ４、Ｒ５、Ｒ６およびＲ７から選択される二つの行き先レジスタに記憶される。
【００２６】
配列独立８ビットＳＩＭＤ・ＡＤＤ演算を実行させる命令は以下の形態である。
【００２７】
(dregs，dregs)＝q2badd(dreg＿pair，dreg＿pair);
(dregs，dregs)＝q2badd(dreg＿pair，dreg＿pair)R;
【００２８】
命令の例としては以下のものがある。すなわち
【００２９】
(r4，r5)＝q2badd(r1:0，r3:2);
(r5，r4)＝q2badd(r1:0，r3:2)R;
【００３０】
これらの命令は、前記ロードが常に３２ビット境界にあり、かつ二つのポインタがＩ０とＩ１に記憶されると想定している。これらの値は、８ビット境界で有効であるが、ロードは実際には３２ビット境界で起こる。ポインタｉ０とｉ１からの２ビットのＬＳＢは、デコードされて、それぞれ、四つの可能な配列ケースの一つを、レジスタペアＲ０／Ｒ１とＲ２／Ｒ３から選択する。ワードＫ＋１を含むレジスタは、省略時、レジスタＲ０とＲ２内にあるとみなされ、そしてワードＫ＋２はレジスタＲ１とＲ３内にあるとみなされる。
【００３１】
「Ｒ」のオプションは、読出しのリフレクション（反射）が、図４に関連して先に述べたように実行されねばならぬことを指定する。これによって、各ペアのレジスタ間の有効なピンポン伝送が可能になり、アレイ処理機能が実行される。
【００３２】
上記の配列独立ＳＩＭＤ・ＡＤＤ演算を使用して、いくつもの画像ベースの計算をサポートできる。他の配列独立ＳＩＭＤ演算は、例えば、減算、乗算、積和演算（ＭＡＣ）、およびＬ１−Ｎｏｒｍ−アキュムレート（ＳＡＡ）、クリッピングおよび双線形補間法のためのいくつもの特定の命令を含む各種実施態様にしたがって実行できる。
【００３３】
所望のＳＩＭＤ演算に応じて、異なる配列方法を、３２ビットグループ化ワードに対して使用することができる。８ビットのケースは、四つの異なる配列ケースについてすでに述べた。１６ビットのデータも、３２ビットロードにグループ化できる。このようなロードは、配列されたケースと誤って配列されたケースという二つの配列ケースがあり、その１６ビットのオペランドは１６ビットシフトされる。そのロードに対するポインタアドレスの２ビットのＬＳＢを利用して、配列のケース、例えば、配列されたケースに対する「００」と、誤って配列されたケースに対する「０１」とを決定できる。他のケースは、混合データタイプ、例えば混合した８ビットと１６ビットのオペランドを含む３２ビットグループ化ワードで演算するＳＩＭＤ演算に一般化することができる。
【００３４】
一実施態様によるレジスタファイルアーキテクチャは、各種の配列演算に対してデータをプリプロセスする必要をなくすことによって、各種のビデオと画像形成のアルゴリズムにより高い処理量を与えることができる。これは、異なる配列状態を扱うことを目的とするコードに類似のルーチンをなくすことによってコードサイズを小さくすることができ、かつ配列の状態を検出し、続いて命令を適当なシーケンスにブランチする必要性をなくすことによって、サイクルカウントも改善することもできる。したがって、このレジスタファイルアーキテクチャは、メモリインターフェースに負担をかけることなく、実行ユニット内の８ビット境界にデータの配列を提供することができ、このことは３２ビットロード／記憶動作に対して確保することができる。
【００３５】
配列独立ＳＩＭＤ演算をサポートする上記実施態様は、ビデオと画像をベースとする処理をサポートすることを目的とする演算に特に好適である。これらの演算としては、例えば、ハーフＸ、ハーフＹおよびハーフＸＹのための８ビットクウォッド補間法（8bit quad interpolation）、フラクショナルモーションサーチオペレーション（fractional motion search operation）およびモーションコンペンセーション（motion compensation）がある。
【００３６】
本発明の各種実施態様によるレジスタファイルアーキテクチャを有する汎用ＤＳＰは、ビデオ圧縮（video compression）についてMPEG-1／MPEG-2／MPEG-4／H.２６３の将来の標準を利用するビデオ処理画像形成装置に使用するのに好適である。
【００３７】
このような汎用ＤＳＰは、ビデオカムコーダ、ディジタルカメラ、遠隔地間会議、ＰＣビデオカードおよびＨＤＴＶへの使用が考えられる。図８に示すように、ディスプレイスクリーン６０４付きＨＤＴＶ６０２用のビデオプロセッサ６００は、本発明の一実施態様によるレジスタファイルアーキテクチャ６０８およびビデオ処理演算を実行するための命令を記憶するメモリ６１０を有するＤＳＰ６０６を備えている。その上に、この汎用ＤＳＰは、移動電話システム、音声認識などの用途に用いられる音声処理などのディジタル信号処理を利用する他の技法と組みあわせて使用することも考えられる。
【００３８】
本発明のいくつもの実施態様を説明してきたが、各種の変形を、本発明の精神と範囲から逸脱することなく実施できると解される。したがって、その他の実施態様は、本願の特許請求の範囲の範囲内にある。なお、各種図面中の同じ参照記号は同じ要素を示す。
【図面の簡単な説明】
【図１】  本発明の一実施態様によるレジスタファイルアーキテクチャの模式図である。
【図２】  (Ａ)〜(Ｄ)は、四つの配列状態のおける３２ビットロードで作動する本発明の一実施態様によるレジスタファイルアーキテクチャを示す図である。
【図３】  本発明の一実施態様による配列演算を示す図である。
【図４】  本発明の一実施態様による配列演算を示す図である。
【図５】  本発明の一実施態様による配列演算を示す図である。
【図６】  二つのレジストペアを備えている本発明の別の実施態様によるレジスタファイルアーキテクチャを示す図である。
【図７】  二つのレジスタペアを備えている本発明のさらに別の実施態様によるレジスタファイルアーキテクチャを示す図である。
【図８】  本発明の一実施態様によるレジスタファイルアーキテクチャを有するディジタル信号プロセッサを組みこんだ高精細度テレビジョンの模式図である。
【図１】
0003975231.tif 000002
【図２】
0003975231.tif 000003
【図３】
0003975231.tif 000004
【図４】
0003975231.tif 000005
【図５】
0003975231.tif 000006
【図６】
0003975231.tif 000007
【図７】
0003975231.tif 000008
【図８】
0003975231.tif 000009