(57)【特許請求の範囲】
【請求項１】
複数のデータ要素をそれぞれに含むデータ・ベクトルを使用する演算をプロセッサによって処理するためのシステムにおいて、
データ・ベクトルのデータ要素を格納するための複数の格納要素を含むベクトル・データ・ファイルと、
バスによって前記ベクトル・データ・ファイルに結合されるベクトル・アドレス・ポインタ配列であって、複数のエントリを含み、プロセッサによってアドレス指定されて各エントリがベクトル・データ・ファイル内の少なくとも１つの格納要素を識別するようにした、ベクトル・アドレス・ポインタ配列とを含み、
前記データ・ベクトルの少なくとも１つのデータ要素を格納するための少なくとも１つの格納要素であって、前記ベクトル・アドレス・ポインタ配列の少なくとも１つの特定のエントリに対し、その特定のエントリによって識別される少なくとも１つの格納要素が、前記ベクトル・データ・ファイルの任意の開始アドレスを有し、
前記ベクトル・アドレス・ポインタ配列の任意のエントリに対し、その任意のエントリによって識別される少なくとも１つの格納要素が、ベクトル・データ・ファイルの任意の開始アドレスを含む、システム。
【請求項２】
前記ベクトル・アドレス・ポインタ配列が、前記ベクトル・データ・ファイル内の少なくとも１つのデータ要素から読み出されるデータに基づいて更新される少なくとも１つのエントリを含む、請求項１に記載のシステム。
【請求項３】
前記ベクトル・アドレス・ポインタ配列が、前記ベクトル・アドレス・ポインタ配列の少なくとも１つのエントリから読み出されるデータを増分することによって生成されるデータに基づいて更新される少なくとも１つのエントリを含む、請求項１に記載のシステム。
【請求項４】
前記ベクトル・アドレス・ポインタ配列が、前記ベクトル・アドレス・ポインタ配列の少なくとも１つのエントリから読み出されるデータに対し増分演算を実行することによって生成されるデータに基づいて更新される少なくとも１つのエントリを含む、請求項１に記載のシステム。
【請求項５】
前記ベクトル・アドレス・ポインタ配列が、同一論理演算の一部として更新される少なくとも２つのエントリを含む、請求項４に記載のシステム。
【請求項６】
前記増分演算がモジュロ演算およびストライド演算の少なくとも１つを含む、請求項４に記載のシステム。
【請求項７】
前記ベクトル・アドレス・ポインタ配列の各エントリが、前記ベクトル・データ・ファイル内の少なくとも１つの格納要素の開始アドレスを含む、請求項１に記載のシステム。
【請求項８】
前記ベクトル・データ・ファイルの格納要素が行と列のマトリックスに論理的に編成され、前記ベクトル・アドレス・ポインタ配列の各エントリが前記ベクトル・データ・ファイル内の少なくとも１つの要素の行と列を表わすアドレスを含む、請求項１に記載のシステム。
【請求項９】
前記ベクトル・ファイル・データの格納要素が行と列のマトリックスに論理編成され、前記ベクトル・アドレス・ポインタ配列の各配列がベクトル・データ・ファイル内の単一要素の行と列を表わすアドレスを含む、請求項１に記載のシステム。
【請求項１０】
前記ベクトル・アドレス・ポインタ配列内の任意のエントリに対し、前記任意エントリによって識別される少なくとも１つの格納要素が、前記ベクトル・アドレス・ポインタ配列の他のエントリによって識別される少なくとも１つの格納要素に対して独立している、請求項１に記載のシステム。
【請求項１１】
複数のデータ要素をそれぞれに含むデータ・ベクトルを使用する演算をプロセッサによって処理するための方法において、
データ・ベクトルのデータ要素を格納するための複数の格納要素を含むベクトル・データ・ファイルを提供するステップと、
複数のエントリを有するポインタ配列を提供するステップであって、プロセッサによってアドレス指定されて各エントリが前記データ・ベクトルの少なくとも１つのデータ要素を格納するための前記ベクトル・データ・ファイル内の少なくとも１つの格納要素を識別し、前記ベクトル・アドレス・ポインタ配列内の少なくとも１つの特定のエントリに対し、その特定のエントリによって識別される少なくとも１つの格納要素が前記ベクトル・データ・ファイルの任意の開始アドレスを有するように構成されたステップとを含み、
前記ベクトル・アドレス・ポインタ配列内の任意のエントリに対し、前記任意のエントリによって識別される少なくとも１つの格納要素が前記ベクトル・データ・ファイルの任意の開始アドレスを有する、
方法。
【請求項１２】
前記ベクトル・アドレス・ポインタ配列のエントリの少なくとも１つを、前記ベクトル・データ・ファイル内の少なくとも１つのデータ要素から読み出されるデータに基づいて更新するステップ
をさらに含む、請求項１０に記載の方法。
【請求項１３】
前記ベクトル・アドレス・ポインタ配列のエントリの少なくとも１つを、前記ベクトル・アドレス・ポインタ配列の少なくとも１つのエントリから読み出されるデータを増分することによって生成されるデータから読み出されるデータに基づいて更新するステップ
をさらに含む、請求項１０に記載の方法。
【請求項１４】
前記ベクトル・アドレス・ポインタ配列のエントリの少なくとも１つを、前記ベクトル・アドレス・ポインタ配列の少なくとも１つのエントリから読み出されるデータに増分演算を実行することによって生成されるデータに基づいて更新するステップ
をさらに含む、請求項１０に記載の方法。
【請求項１５】
前記ベクトル・アドレス・ポインタ配列の少なくとも２つのエントリが同一論理演算の一部として更新される、請求項１４に記載の方法。
【請求項１６】
前記増分演算が、前記ベクトル・アドレス・ポインタ配列の少なくとも１つのエントリから読み出されるデータに対するモジュロ演算およびストライド演算の少なくとも１つをさらに含む、請求項１４に記載の方法。
【請求項１７】
前記ベクトル・アドレス・ポインタ配列の各エントリが、前記ベクトル・データ・ファイル内の少なくとも１つの格納要素の開始アドレスを格納する、請求項１０に記載の方法。
【請求項１８】
前記ベクトル・データ・ファイルの格納要素が行と列のマトリックスに論理的に編成され、前記ベクトル・アドレス・ポインタ配列の各エントリが、前記ベクトル・データ・ファイルの少なくとも１つの要素の行と列を表わすアドレスを格納する、請求項１０に記載の方法。
【請求項１９】
ベクトル・ファイル・データの格納要素が行と列のマトリックスに論理的に編成され、前記ベクトル・アドレス・ポインタ配列の各配列が、前記ベクトル・データ・ファイルの単一要素の行と列を表わすアドレスを格納する、請求項１０に記載の方法。
【請求項２０】
前記ベクトル・アドレス・ポインタ配列の任意のエントリに対し、前記任意のエントリによって識別される少なくとも１つの格納要素が、前記ベクトル・アドレス・ポインタ配列の他のエントリによって識別される少なくとも１つの格納要素に対して独立している、請求項１０に記載の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、デジタル処理、例えばマルチメディア・プロセッサ、単一命令複数データ（ＳＩＭＤ）プロセッサ、ＳＩＭＤ（ベクトル）処理機能を持つデジタル信号プロセッサ、または同様の装置を使用するがそれらに限定されない処理に関し、さらに詳しくは、デジタル処理で計算の入出力を一時的に格納するために使用されるベクトル・レジスタ・ファイルに関する。
【０００２】
【従来の技術】
単一命令複数データ（ＳＩＭＤ）処理は、メディア・データまたはデジタル信号処理アルゴリズムを含む計算に広く受け入れられている強力なアーキテクチャ上の概念である。それは、１次元ベクトルとして配列されたデータ値の１つまたはそれ以上のストリームに対する計算を、単一命令で指定することを可能にする。計算のためのデータは、メモリから、または一般的にベクトルを１次元順次編成で保持するファイルから来るように指定される。ベクトルの要素は、計算のために順次（つまり要素１、２、３．．．）またはストライド（つまり固定増分）しながらアクセスされる。
【０００３】
【発明が解決しようとする課題】
しかし、多くのアルゴリズムは、表探索様アルゴリズムのため、または要素が例えばビット反転など多少のアドレス置換を必要とするため、ベクトル要素への不規則なアクセスを必要とする。一般的に、この種のアクセスは一度に１つずつ要素に行われて、ファイル内で新しいベクトルを形成し、これが次に順次アクセスされる。このやり方で実現しなければならないアルゴリズムの性能は、真のＳＩＭＤ処理に対して可能であろうと思われるより、ずっと低い。
【０００４】
したがって、同一構造でこれらの全ての操作モードが性能を最適化することができるベクトル・レジスタ・アーキテクチャが必要である。
【０００５】
【課題を解決するための手段】
本発明による、複数のデータ要素をそれぞれ含むデータ・ベクトルを使用する演算処理のためのシステムおよび方法は、データ・ベクトルのデータ要素を格納するための複数の格納要素を備えたベクトル・データ・ファイルを含む。ポインタ配列は、バスによってベクトル・データ・ファイルに結合される。ポインタ配列は複数のエントリを含み、ここで各エントリはベクトル・データ・ファイル内の少なくとも１つの格納要素を識別する。この少なくとも１つの格納要素は、データ・ベクトルの少なくとも１つのデータ要素を格納し、ここでポインタ配列の少なくとも１つの特定のエントリに対して、この特定のエントリによって識別される少なくとも１つの格納要素は、ベクトル・データ・ファイルの任意の開始アドレスを有する。
【０００６】
代替実施形態では、ポインタ配列の任意のエントリに対し、この任意のエントリによって識別される少なくとも１つの格納要素は、ベクトル・データ・ファイルの任意の開始アドレスを含むことができる。ポインタ配列は、ベクトル・データ・ファイル内の少なくとも１つのデータ要素から読み出されるデータに基づいて更新される、少なくとも１つのエントリを含むことができる。ポインタ配列は、ポインタ配列の少なくとも１つのエントリから読み出されるデータを増分することによって生成されるデータに基づいて更新される、少なくとも１つのエントリを含むことができる。ポインタ配列は、ポインタ配列の少なくとも１つのエントリから読み出されるデータに対して増分演算を実行することによって生成されるデータに基づいて更新される、少なくとも１つのエントリを含むことができる。ポインタ配列はさらに、同一論理演算の一部として更新される少なくとも２つのエントリを含むことができる。増分演算は、モジュロ演算およびストライド演算の少なくとも１つを含むことができる。ポインタ配列の各エントリは、ベクトル・データ・ファイル内の少なくとも１つの格納要素の開始アドレスを含むことができる。
【０００７】
さらに別の実施形態では、ベクトル・データ・ファイルの格納要素は行と列のマトリックスに論理的に編成することができ、ポインタ配列の各エントリは、ベクトル・データ・ファイル内の少なくとも１つの要素の行と列を表わすアドレスを含むことができる。ベクトル・ファイル・データの格納要素は行と列のマトリックスに論理的に編成することができ、ポインタ配列の各配列は、ベクトル・データ・ファイル内の単一の要素の行と列を表わすアドレスを含むことができる。ポインタ配列の任意のエントリに対し、この任意のエントリによって識別される少なくとも１つの格納要素は、ポインタ配列の別のエントリによって識別される少なくとも１つの格納要素に対して独立していることができる。
【０００８】
複数のデータ要素をそれぞれに含むデータ・ベクトルを使用する演算処理のための方法は、データ・ベクトルのデータ要素を格納するための複数の格納要素を含むベクトル・データ・ファイルを提供し、かつ複数のエントリを有するポインタ配列を提供することを含む。各エントリは、データ・ベクトルの少なくとも１つのデータ要素を格納するためのベクトル・データ・ファイル内の少なくとも１つの格納要素を識別し、ポインタ配列内の少なくとも１つの特定のエントリに対し、その特定のエントリによって識別される少なくとも１つの格納要素は、ベクトル・データ・ファイルの任意の開始アドレスを有する。
【０００９】
他の方法で、ポインタ配列内の任意のエントリに対し、その任意のエントリによって識別される少なくとも１つの格納要素は、ベクトル・データ・ファイルの任意の開始アドレスを持つことができる。この方法はさらに、ベクトル・データ・ファイル内の少なくとも１つのデータ要素から読み出されるデータに基づいて、ポインタ配列のエントリの少なくとも１つを更新するステップを含むことができる。この方法はまた、ポインタ配列の少なくとも１つのエントリから読み出されるデータを増分することによって生成されるデータから読み出されるデータに基づいて、ポインタ配列のエントリの少なくとも１つを更新するステップを含むこともできる。この方法はまた、ポインタ配列の少なくとも１つのエントリから読み出されるデータに対して増分演算を実行することによって生成されるデータに基づいて、ポインタ配列のエントリの少なくとも１つを更新するステップを含むこともできる。ポインタ配列の少なくとも２つのエントリを、同一論理演算の一部として更新することができる。
【００１０】
さらに別の方法では、増分演算はさらに、ポインタ配列の少なくとも１つのエントリから読み出されるデータに対するモジュロ演算およびストライド演算の少なくとも１つを含むことができる。ポインタ配列の各エントリは、ベクトル・データ・ファイルの少なくとも１つの格納要素の開始アドレスを格納することができる。ベクトル・データ・ファイルの格納要素は、行と列のマトリックスに論理的に編成することができ、ポインタ配列の各エントリは、ベクトル・データ・ファイル内の少なくとも１つの要素の行と列を表わすアドレスを格納することができる。ベクトル・ファイル・データの格納要素は、行と列のマトリックスに論理的に編成することができ、ポインタ配列の各配列は、ベクトル・データ・ファイル内の単一要素の行と列を表わすアドレスを格納することができる。ポインタ配列の任意のエントリについて、この任意のエントリによって識別される少なくとも１つの格納要素は、ポインタ配列の他のエントリによって識別される少なくとも１つの格納要素に対して独立していることができる。上記の方法のステップは、複数のデータ要素をそれぞれに含むデータ・ベクトルを使用する演算を処理するためのこれらの方法ステップを実行するために、機械により実行可能な命令のプログラムを具体的に具現化する、機械により読取り可能なプログラム格納装置によって実現することができる。
【００１１】
本発明のこれらおよびその他の目的、特徴、および利点は、その例証となる実施形態の以下の詳細な説明を添付の図面と併せて読むことにより、明らかになるであろう。
【００１２】
【発明の実施の形態】
本発明は、好ましくは単一命令複数データ（ＳＩＭＤ）処理のために、ベクトル・データを含むためのベクトル・レジスタ・ファイルを提供する。本発明はまた、そこに含まれるベクトルの任意のサブベクトルにアクセスするためのレジスタ・ファイルをも提供する。本発明を、予め定められた数の要素、アドレス線を備えたコンポーネントまたは任意の大きさのコンポーネントを有する、プロセッサ回路に関して説明する。コンポーネントまたはベクトル、アドレスのこれらの大きさ、入力の数、出力の数、要素の数等は例証にすぎず、発明を限定するものと解釈すべきではない。
【００１３】
本発明の１つの例証としての実施形態では、総サイズが５１２の要素に等しいかそれ以下である１つまたはそれ以上のベクトルを保持するために編成され、各アクセスで１６ビットの４つの要素が読み取られるか書き込まれる、ベクトル・レジスタ・ファイルを開示する。ベクトルは、数量を表わす要素の線形配列から成るデータ構造である。ベクトル・レジスタ・ファイルへのアクセスのためのアドレスは、一体的であるが別個にアクセスされるポインタ配列に含まれるアドレス・ポインタによって指定される。各ポインタは、各アクセス・サイクルで各アクセス・ポートに読み出すか、または書き込むことができる４つの要素のうちの１つの要素のアドレスを指定する。ポインタ・ファイルは、複数のポインタを含む。各アクセスに対して必要なポインタの数、例えば４は、ＳＩＭＤ処理プログラムを制御する命令に含まれる情報によって選択される。したがって、レジスタ・ファイルは間接アドレス形である。ファイルのベクトル・データ配列部分のアクセス・アドレスを決定するために使用された後、ポインタ配列部分の内容は、例えば増分値（ベクトルの順次アクセスを可能にするため）または読み出されたベクトルの内容（表探索アクセスまたはデータ収集アクセスを可能にするため）により、（命令制御下で）更新することができる。本発明の他の実施形態も、ストライド・アクセス、モジュロ（循環）アクセス、またはその他のアクセス方法のための更新を提供する。本発明のプログラムはアドレス値の計算や、更新された値を使用するためにポインタ・アドレス・ファイルにロードすることができる。
【００１４】
図１ないし５に示す要素は、様々な形のハードウェア、ソフトウェア、またはそれらの組合せで実現できることを理解されたい。これらの要素は、プロセッサとメモリと入出力インタフェースとを有する、１つまたはそれ以上の適切にプログラムされた汎用デジタルコンピュータまたは格納装置上のソフトウェアで実現することができる。本発明はまた、ハードウェアで実現することもできる。ハードウェアで実現する場合、アドレス更新を含む計算は、最高パイプライン・レートのパイプライン演算として有利に処理することができる。
【００１５】
今から図面を参照して説明する。図面全体を通して、同一または同様の要素は類似の番号で表わす。最初に図１を参照すると、例証としてのプロセッサ１００が示されている。プロセッサ１００はメディア・プロセッサ、ＳＩＭＤプロセッサ、またはデジタル信号プロセッサ（ＤＳＰ）を含むことができ、命令ユニット１０２に命令を提供する命令メモリ１０１を含むことが好ましい。命令ユニット１０２は、例えば命令メモリ１０１に格納されたプログラムを順序付け、プロセッサ１００の他の要素またはコンポーネントに復号された制御を提供する。処理されるデータは、例えば２つの読取りデータ・ポート１５３および１５４ならびに２つの書込みデータ・ポート１５１および１５２を有するマルチポート・データ・メモリ１０５に保持される。これらのポートは、データ・アドレス・ユニット１０６によって提供されるアドレスでアクセスされる。データは、メモリから読取りポート１５４を介して、ベクトル・レジスタ・ファイル１０３の書込みポート１３３に移され、書込みポート１３２を介してベクトル・レジスタ・ファイル１０３で使用され、ベクトル演算装置１０４で使用される。計算の結果は、書込みポート１３２を介してベクトル・レジスタ・ファイル１０３に格納される。ベクトル・レジスタ・ファイル１０３に格納されたファイルは、さらなる計算のために使用するか、または読取りポート１３１からバス１１１および書込みポート１５２を介してデータ・メモリ１０５に移される。プログラムおよびプロセッサ１００のための入力データは、入力１１０を通して外部メモリまたはＩ／Ｏ装置から提供され、結果は出力バス１０９を介して外部メモリまたはＩ／Ｏに送られる。
【００１６】
それぞれの演算装置１４１ないし１４４は、読取りポート１３４および１３５を介してレジスタ・ファイル１０３から読み出される２つのサブベクトルのそれぞれの１つの要素に対して演算を行い、それぞれの演算装置１４１ないし１４４は、他と同じ演算を行うことができる。結果の４要素のサブベクトルが生成され、これは次いで、書込みポート１３２を介してレジスタ・ファイル１０３に書き込まれる。希望するサブベクトルがそれぞれのポート１３２、１３４、１３５でより容易に選択される場合、装置１０４で行われる計算をより高速に進めることができる。
【００１７】
図２を参照して、ベクトル・レジスタ・ファイル１０３（図１）を今から詳細に説明する。ベクトル・レジスタ・ファイル１０３は、アクセス・ポート１３１ないし１３５（図１）の１つに対する論理を含む。明快にするために、図２のデータ・バス２０７は、図１で１０８として示した２つのデータ・バスのうちの１つを表わすことに注意されたい。また、入力ポート２１０は、図１に示した２つの入力ポート１３１または１３２のうちの１つである。ベクトル・アドレス・ポインタ配列２０２は例証として、例えば、それぞれが９ビットの４つのフィールドで構成される８つの語で構成することができる。ベクトル・アドレス・ポインタ配列２０２は、語復号器２０１によって８つの語のうち１つを選択する、プロセッサ１００（図１）の命令ユニット１０２によって生成される３ビット・アドレス（ポインタ選択）によって、アドレス指定される。ベクトル・データはベクトル・データ・ファイル２０６に含まれ、これは一実施形態では、それぞれ１６ビットの５１２の要素を含む。バス２１０は、ポインタ語と、データ・メモリ１０５からのデータ・ファイルまたは演算装置１０４（図１）からのベクトル演算計算結果とをロードするために使用される。ベクトル・データ・ファイル２０６から読み出されるデータは４つの連結ベクトル要素Ｒ１、Ｒ２、Ｒ３、Ｒ４から成り、これらはベクトル演算装置１０４で使用するため、またはデータ・メモリ１０５（図１）に格納するために、読取りデータ・バス２０７に出力される。ベクトル・データ・ファイル２０６から読み出される６４ビットのうち３６ビットは、後述する通りアドレスの更新に使用するために、３６のマルチプレクサ２０５（例えば９つのマルチプレクサの４つのグループとして図示されている）の第１入力にも結合される。
【００１８】
ベクトル・データ・ファイル２０６の読出しまたは書込みオペレーションを構成する４つのベクトル要素（Ｒ１〜Ｒ４）のそれぞれを選択するために使用されるアドレスは、読取りバス２０３を介してベクトル・ポインタ配列２０２から読み出されるベクトル・ポインタ語のフィールドの１つから来る。各フィールドは、ベクトル・データ・ファイル２０６にアクセスするために使用されるアドレスを形成するために、命令ユニット１０２（図１）によって生成される適切なイネーブル２０８との論理積を取る。イネーブルされたアドレスは、同時に４個単位の増分配列２０４の入力に結合される。増分されたアドレスは、マルチプレクサ２０５の第２入力に接続される。マルチプレクサ２０５の第１入力と第２入力の間の選択は、マルチプレクサ制御信号２１１によって行われる。マルチプレクサ２０５の出力はアドレス・ポインタ配列２０２の入力に接続されるので、出力を配列２０２に書き込むことができる。ポインタ配列２０２から読み出されるポインタ・データ語は、バス２０９を介してデータ・メモリ１０５（図１）に送ることができる。データ配列をアドレス指定するために使用後にアドレス・ポインタ値を増分するこの構成（事後増分）は、増分器配列２０４を読取りバス２０３の出力に直接結合し、それらの出力をアドレス・イネーブル・ステージ２３０に接続することによって、使用前に増分（事前増分）するように変更することができることを、配列論理設計技術の熟練者は理解することができる。
【００１９】
ベクトル・データ・ファイル２０６の要素空間（例えば５１２語）は細分され、好ましくはソフトウェアによって、実現される特定のアルゴリズムによって必要とされるデータ・ベクトルに割り当てられる。ポインタ配列２０２に格納されたベクトル・ポインタ・ファイルに入れられた値は、最高８個までのベクトルのそれぞれの開始アドレスを定義する。値は、好ましくはプログラム命令、例えばＶＰＴＲＬＯＡＤを使用して、ポインタ配列２０２にロードされる。図２に関連して、命令ＶＰＴＲＬＯＡＤの実行により、値はバス２１０にロードされ、ポインタ語のアドレスは語アドレス復号器２０１の「ポインタ選択」入力にロードされる。バス２１０に置かれる値は、データ・メモリ１０５から来るか、あるいは算術または論理計算ユニット１０４（図１）の結果出力とすることができる。
【００２０】
図３を参照すると、３つの小ベクトルを保持しているベクトル・データ・ファイル２０６の一実施形態の区分化例が示されている。各要素の９ビット・アドレスは、６ビットの行アドレス（６４行）と３ビットの列アドレス（８列）で構成される。この例の第１ベクトル３０３は４つの要素３１１で構成され、第１要素は行３、列３である。第２要素は行３、列４云々と繰り返される。ベクトル３０３をアドレス指定するために、ベクトル・ポインタ配列２０２は、好ましくはソフトウェア・プログラムによって設定される。プログラムで、ポインタ配列の語アドレス「１」は、ベクトル３０３の４つの要素を指定するように設定されている。ベクトル・アドレス・ポインタ・ファイル２０２で、３６ビットの語アドレス「１」は、図３に示すように初期化された９ビットの４つのフィールド３０５に分割される。ポインタの各フィールド３０５の値は例示的に行列値として示されているが、実際には９ビットの二進数（または他のサイズの語）が格納される。例えば、３，３の要素の要素アドレスは、実際には二進数００００１１０１１として格納される。第２ベクトル３０７は、８，１から始まる１２の要素を持つ。このベクトルの先頭の４つの要素を図示する値でアドレス指定するために、ポインタ語アドレス「４」が使用されている。第３ベクトル３０９は３つの要素で構成され、第１要素は場所１１，５にあり、その他は図示する通りである。第４要素は無いので、第４ポインタ・フィールドは無指定（a don't care）であるが、０，０に設定されている。
【００２１】
図２に例示的に示す実施形態の場合、ベクトル・データ・ファイル２０６に対する基本オペレーションは、例えば、順次読取り、順次書込み、間接読取り、および間接書込みを含む。間接アクセス・モードは本発明の１つの重要な特徴であり、サブベクトルを形成するためにベクトル・データ・ファイル２０６内の要素の任意の集合をアドレス指定することを可能にする。これらのサブベクトルは、例えばベクトル値の表探索を行うため、または要素を集めてＳＩＭＤ処理用のサブベクトルにするために、使用することができる。本発明の他の用途として、例えばベクトルのストリップ・マイニングを含めることができる。ベクトルのストリップ・マイニングは、間接読取りを介してサブベクトルをアセンブルし、結果的に得られるサブベクトルを、その後のプログラム・ステップで例えばフィルタリングのために後で使用するために、データ・メモリ１０５に書き込む（格納する）ことを含む。
【００２２】
ベクトル・レジスタ・ファイル１０３（図１）に対するオペレーションの任意の論理サイクル中に、次の操作を実行することができる。すなわち、ポインタ配列２０２に対するオペレーションが指定され（読取りまたは書込みオペレーション）、ポインタ配列に指標（これはアドレス、例えば０から７の間の語アドレスである）が提供され、供給された指標に対応するポインタ配列２０２の４つのエントリがポインタ配列２０２から読み取られ、ポインタ配列から読み取られた４つのエントリを使用してベクトル・データ・ファイル２０６の１組のアドレス（４つを図示する）が生成され（好ましくは、これは図示する１組４つのアドレス・イネーブル信号２０８によってトリガされる）、供給された組のアドレスに対応するベクトル・データ・ファイル２０６の要素がベクトル・データ・ファイル２０６から読み取られ、供給された指標に対応するポインタ配列のエントリの更新を選択的に制御するために制御信号が提供される。これらの制御信号は少なくとも、「はい」または「いいえ」の値を持つ「putaway制御」信号を含み、「はい」に匹敵する場合、マルチプレクサ２０５のバス２５０上の出力値を書込みポート２５１を介してポインタ・アドレス配列２０２に書き込むように指示する。制御信号はまた、供給される組のアドレス・イネーブル信号２０８に対応してポインタ・ファイル２０２から読み出される増分されたアドレスまたはベクトル・データ・レジスタ・ファイル２０６から読み出されるデータをバス２５０に結合するかどうかを決定する、マルチプレクサ制御信号２１１をも含む。
【００２３】
再び図２を参照しながら説明すると、ベクトル・アドレス・ポインタ・ファイル２０２によって供給される組のアドレスに、他のオペレーション（例えば増分演算、ストライド演算または増分モジュロ・アドレス指定オペレーションなど）を実行することができ、マルチプレクサ回路２０５を使用して、そのようなオペレーションから得られるデータ結果またはベクトル・データ・ファイル２０６の要素から読み出されるデータを選択的に出力することができる。この場合、供給される指標に対応するポインタ配列２０２内のエントリの更新は、マルチプレクサ回路２０５によって選択的に出力されるデータを使用することができる。
【００２４】
これらのオペレーションは、ベクトル・レジスタ・ファイル１０３内のベクトル・データに対するオペレーションを含む命令によってトリガされる。バス２１０上のデータの源およびバス２０９および２０７上のデータの宛先の指定もまた、命令ストリームから導出される。
【００２５】
順次ベクトル読取りは、ポインタ配列２０２内の８つのアドレス語（０〜７）のうちの１つにある開始アドレスから開始される。解説のために、図３に示すベクトル・ファイル２０６の区分化を使用し、第２ベクトル３０７の読取りについて記載して、本発明のさらなる特徴および詳細を例証として説明する。
【００２６】
図１、２、および３に関連して、オペレーションの第１サイクルは、ポインタ配列２０２の語アドレス「４」の読取り、４つのアドレス全部のイネーブル、ベクトル・データ・ファイル２０６の読取り、マルチプレクサ制御２１１の１の値（例えばマルチプレクサの左のレッグを選択）、およびputaway値の「はい」を指定する。putaway値は、マルチプレクサ２０５の出力をポインタ・アドレス配列２０２に書き込むかどうかを指定する命令の１ビットである。putaway値は、バス２５０上の値を書込みポート２５１を介してポインタ配列２０２に書き込むかどうかを決定する制御信号として実現される。この結果、ベクトル・ポインタ語アドレス「４」の最初の９ビットが、ベクトル・データ・ファイル２０６から読み取られる最初のサブベクトル要素のアドレスとなる。ベクトル・データ・ファイル２０６の８，１にある要素が読み取られ、バス２０７のＲ１に置かれる。同様に、ポインタ語「４」の第２フィールドは、データ・ファイル内の８，２の位置の要素を読み取り、バス２０７のＲ２に置くことを指定しており、第３および第４要素についても同様である。読み取られた４つの１６ビット・データ値（Ｒ１〜Ｒ４）はアセンブルされてサブベクトルになり、読取りデータ・バス２０７を介してデータ・メモリ１０５またはベクトル演算装置１０４のいずれかに渡される。同時に、ポインタ語「４」から読み取られる値は、増分器２０４により（４つの要素が一度に処理されるので、４を加算することによって）次の順次値に増分される。
【００２７】
マルチプレクサ制御２１１は増分された値を選択し、putaway制御は、更新された値をポインタ配列２０２に戻すことを指定するので、値（８，５）、（８，６）、（８，７）および（８，８）は、マルチプレクサ２０５を介してポインタ・ファイル語アドレス４に格納される。当業者は、行８、列１を表わす値（二進数００１０００００１）に４（二進数００００００１００）を加算すると、行８、列５（８，５）を表わす二進数００１０００１０１になり、他の３つの値についても同様であることを理解する。
【００２８】
次のサイクルのオペレーションの制御値は第１サイクルと同一であるが、更新されたポインタ値を使用してベクトル・データ・ファイル２０６にアクセスするので、ベクトルの次の４つの要素がアセンブルされ、バス２０７に送られる。この同じ制御値は、追加サイクル（この例の場合、合計３回）に対して繰り返されて、要素ベクトル（この場合、１２要素）が順次読み取られ、バス２０７上にベクトルが置かれる。
【００２９】
ベクトルの順次書込みまたはローディングは、読取りに非常に似ている。再び図３の第２ベクトルを例として使用する。ベクトル・データ・ファイル２０６内のデータにアクセスする第１サイクルのオペレーションは、ポインタ配列２０２の語アドレス４の読み出し、４つのアドレス全部のイネーブル２０８、ベクトル・データ・ファイル２０６の書込み、マルチプレクサ制御２１１の値の１（例えば左のレッグを選択）、および「はい」のputaway制御値を指定する。この値の結果、ベクトル・ポインタ語アドレス「４」の最初の９ビットが、データ・ファイル２０６に書き込まれる最初のサブベクトル要素のアドレスとなる。バス２１０の最初の１６ビットが、ベクトル・データ・ファイル２０６の８，１の要素に書き込まれる。同様に、ポインタ語アドレス「４」の第２フィールドは、データ・ファイル２０６の８，２の要素をバス２１０から２番目の１６ビットに書き込むことを指定する。第３および第４要素についても同様である。バス２１０上の６４ビットから取られた４つの１６ビット・データ値は今、ベクトル・データ・ファイル２０６に書き込まれている。同様に、ポインタ語アドレス「４」の値から読み取られる値は、増分器２０４により（４つの要素が一度に処理されるので、４を加算することによって）次の順次値に増分されている。マルチプレクサ制御２１１は増分された値を選択し、putaway制御値は、更新された値をポインタ配列２０２に送り返すことを指定するので、値（８，５）（８，６）（８，７）および（８，８）が、マルチプレクサ２０５を介してポインタ・ファイル語アドレス「４」に格納される。同じ制御語があと２回繰り返され、バス２１０上の次の２つの値がデータ・ファイルに格納されて、１２要素のベクトルが形成される。
【００３０】
間接アドレス指定操作モード（間接読取りおよび間接書込み）は、例証として次のような場合に使用することができる。
１）ベクトル・データ２０６ファイルにベクトルとして格納されたアドレスのリストを介しての任意のサブベクトル・アクセス。
２）信号標本がポインタ・レジスタ２０２に置かれた場合のデータ指定アクセス。この場合、各信号値は、フィルタ係数を選択するために多くのアルゴリズムで必要となるベクトル要素にアクセスすることができる。
３）データ収集オペレーションにより、分散したデータを順次ＳＩＭＤ処理可能データに変換する場合。
【００３１】
間接コマンドは他のタスクにも使用することができるので、これは網羅的なリストではない。
【００３２】
引き続き図２を参照しながら、図４に示した区分例を使用して、間接読取りについて説明しよう。４要素の最初のベクトル４０３は、ベクトル・データ・ファイル２０６のアドレス（８，３）、（８，５）、（９，２）、および（９，３）に相当する二進要素値を含む。ベクトル・レジスタ・データ・ファイル２０６のデータにアクセスする第１サイクルのオペレーションの制御は、ポインタ配列２０２の語アドレス「１」の読み出し、４つのアドレス全部のイネーブル２０８、ベクトル・データ・ファイル２０６の読取り、マルチプレクサ制御値２１１の０（右のレッグを選択）、および「はい」のputaway値を指定する。この値の結果、ベクトル・データ・ファイル２０６の場所８，３の１６ビットの要素がベクトル・データ・ファイル２０６から読み取られ、バス２０７のＲ１に置かれる。この値の９ビットは、マルチプレクサ２０５の最初の１つにも結合される。上述した通り、これらの９ビットは、ベクトル・データ・ファイル２０６内の要素のアドレスに相当する二進値を有する。同様に、他の３つの要素のそれぞれの値の９ビットもマルチプレクサ２０５に結合される。マルチプレクサ選択制御２１１は右を選択し、putaway制御は「はい」を指定するので、場所（８，３）、（８，５）、（９，２）、および（９，３）に含まれる値は、ポインタ語アドレス「１」の４つのフィールドに書き込まれる。
【００３３】
第２サイクルの制御は、ポインタ配列２０２の語アドレス「１」の読取り、４つのアドレス２０８全部のイネーブル、ベクトル・データ・ファイル２０６の読取り、マルチプレクサ制御値２１１の０（右のレッグを選択）、および「いいえ」のputaway制御値を指定する。第２サイクルのオペレーションは結果的に、今ポインタ・ファイル語アドレス「１」にあるアドレスの４つの要素がベクトル・データ・ファイル２０６から読み取られ、バス２０７に置かれる。これらは、ベクトル・データ・ファイル２０６における位置がベクトル・データ・ファイル２０６の場所（８，３）、（８，５）、（９，２）、および（９，３）の低位９ビットの値に相当する４つの要素である。
【００３４】
間接書込み（「データ分散」）オペレーションは、同様のシーケンスで制御される。データ分散オペレーションを実行できるためには、各要素アドレス２３０がベクトル・データ・ファイル２０６内の任意の１６ビット・データ要素への書込みを指定することができるように、６４ビットの書込みポート２６１（図２）を４つの１６ビット・ポート（合計して６４ビット）に区分化する必要があることに注意されたい。この能力により、要素１のアドレスは、６４ビット・バス２１０の最初の１６ビットのベクトル要素Ｒ１を、データ・ファイル２０６のどこに書き込むかを指定し、要素２のアドレスは、６４ビット・バス２１０の２番目の１６ビットのベクトル要素Ｒ２をデータ・ファイル２０６のどこに書き込むかを指定し、Ｒ３およびＲ４についても同様に繰り返される。簡略化した実施形態では、ハードウェアのコスト上の理由のため、この能力を省くことができる。記述した実施形態では、ベクトル・レジスタ・データ・ファイル２０６内のデータにアクセスする第１サイクルのオペレーションの制御は、ポインタ配列２０２の語アドレス「１」の読取り、４つのアドレス全部のイネーブル２０８、ベクトル・データ・ファイル２０６の読取り、マルチプレクサ制御値２１１の０（右のレッグを選択）、および「はい」のputaway制御値を指定する。これは、指定された４つの要素の値を読取り、この値をポインタ配列語アドレス「１」に書き込む。第２サイクルの制御は、ポインタ配列２０２の語アドレス「１」の読取り、４つのアドレス全部のイネーブル２０８、ベクトル・データ・ファイル２０６の書込みマルチプレクサ制御２１１値の０（右のレッグを選択）、および「いいえ」のputaway制御値を指定する。これにより、バス２１０上の４つの要素が取り出され、それらは、第１サイクルで読み取られるアドレスによって指定されるベクトル・データ・ファイル２０６の４つの要素に入れられる。
【００３５】
任意のポインタを使用してデータ・ファイル内の計算の開始点を指定する能力により、フィルタリングおよび畳込みなどの計算のために、１つのベクトルを他のベクトルまたはそれ自身の上で「スライド」させることが、極めて簡単かつ高速になる。
【００３６】
当業者は、図２に示したアドレスの生成および使用の論理が、ベクトル・データ・ファイル２０６のマルチポート・アクセスに対して繰り返すことができることを理解されるであろう。図２の実施形態のマルチポート・オペレーションのための最初の延長は、同時オペレーションが可能なファイル２０６、つまり１つのポートを読取り専用、もう１つを書込み専用とする２ポート・ファイルの読取りおよび書込みポート（それぞれ２６２および２６１）を作ることである。そのような構造により、古いデータが読取りポート２６２から読み取られ、バス２０７に置かれ、処理されて、結果がデータ・メモリ１０５に書き込まれる間に、新しいデータをバス２１０から書込みポート２６１を介してベクトル・データ・ファイル２０６にロードすることができる。これにより、任意のサイズのベクトルを処理装置に間断なく流すことが可能になる。
【００３７】
図５を参照すると、他のアドレス指定モード、例えばストライドおよびモジュロ・アドレス指定に備える図２の実施形態の変形例が示されている。他のアドレス指定モードも、適切な論理またはソフトウェアを使用して実現することができる。図２のアドレス増分器２０４およびマルチプレクサ２０５は、図５に示すハードウェアに置換することができる。増分器５０４およびマルチプレクサ５０５が含まれる。入力は、ポインタ・ファイル（２０２）から読み取られる要素アドレス５０８、レジスタ・ファイル２０６からのベクトル・データを含み、出力は、更新されたアドレス・バス２５０であり、ポインタ・ファイル２０２に格納される。ストライド・アクセスの場合、ストライド値が、好ましくはプログラムによって、ストライド・レジスタ５０１に格納され、上述の順次アクセスについて説明したようにアクセスが進行する。しかし、ストライド値は、固定値４ではなくポインタ・ファイル値に加算（または減算）される。モジュロ（循環）アドレス指定は、例えば、循環バッファの開始アドレスを始点レジスタ５０３およびポインタ・ファイル２０２（図２）にロードするプログラムによって行われる。ベクトルの終わりは、終点レジスタ５０２にロードされる。オペレーションは、ストライド・レジスタ５０１の値を使用して上述の通りアドレスを増分しながら進行する。各サイクルで、比較イコール回路５０６は、更新されたアドレスを終点アドレスと比較して、ベクトルの終わりに達したかどうかを検査する。達した場合、マルチプレクサ５０５は、更新されたアドレスではなく、新しいアドレスとして、始点アドレス・レジスタ５０３から始点アドレスをポインタ・ファイル２０２に提供するように調節される。
【００３８】
本発明は、従来の技術に比べて多くの利点を提供する。例えば、本発明によって提供される柔軟なアドレス指定のため、データ・メモリ１０５のアドレス指定が簡素化される。他の利点として次のようなことが挙げられる。複合ループおよび表探索のためのデータのアドレス指定を数個の命令で簡単に指定することができ、本発明はプログラムのサイズを小さくし、したがって命令メモリ１０１の効率を高める。本発明は、ベクトル・アドレス・ファイル２０６の各要素が、ベクトル・アドレス・ファイル２０６内の他の要素の内容とは無関係に、データ配列２０２内の任意の要素の任意のアドレスを含めることを可能にする。例えば、アドレスがデータ・ファイル内の順次データ要素を言及しなければならないという要求事項が除去され、２つの要素が同一アドレスを持つことができる。本発明によってその他の利点および利益も実現することができる。
【００３９】
任意のベクトル・アドレス指定機能を備えたベクトル・レジスタ・ファイルの好適な実施形態（これらは限定ではなく、例証として意図されたものである）を説明したが、当業者は、上述の教示に照らして変更や変形を行うことができることに留意されたい。したがって、請求の範囲で規定する発明の請求および精神の範囲内で、開示した発明の特定の実施形態に変化を加えることができることを理解されたい。このように発明を詳細に、特に特許法によって要求される通りに説明したが、請求しかつ特許証によって保護されることを希望するものは、請求の範囲に記載する。
【００４０】
まとめとして、本発明の構成に関して以下の事項を開示する。
【００４１】
（１）複数のデータ要素をそれぞれに含むデータ・ベクトルを使用する演算を処理するためのシステムにおいて、
データ・ベクトルのデータ要素を格納するための複数の格納要素を含むベクトル・データ・ファイルと、
バスによって前記ベクトル・データ・ファイルに結合されるポインタ配列であって、複数のエントリを含み、各エントリがベクトル・データ・ファイル内の少なくとも１つの格納要素を識別するようにしたポインタ配列とを含み、
前記データ・ベクトルの少なくとも１つのデータ要素を格納するための少なくとも１つの格納要素であって、前記ポインタ配列の少なくとも１つの特定のエントリに対し、その特定のエントリによって識別される少なくとも１つの格納要素が、前記ベクトル・データ・ファイルの任意の開始アドレスを有する、
システム。
（２）ポインタ配列の任意のエントリに対し、その任意のエントリによって識別される少なくとも１つの格納要素が、ベクトル・データ・ファイルの任意の開始アドレスを含む、上記（１）に記載のシステム。
（３）前記ポインタ配列が、前記ベクトル・データ・ファイル内の少なくとも１つのデータ要素から読み出されるデータに基づいて更新される少なくとも１つのエントリを含む、上記（１）に記載のシステム。
（４）前記ポインタ配列が、前記ポインタ配列の少なくとも１つのエントリから読み出されるデータを増分することによって生成されるデータに基づいて更新される少なくとも１つのエントリを含む、上記（１）に記載のシステム。
（５）前記ポインタ配列が、前記ポインタ配列の少なくとも１つのエントリから読み出されるデータに対し増分演算を実行することによって生成されるデータに基づいて更新される少なくとも１つのエントリを含む、上記（１）に記載のシステム。
（６）前記ポインタ配列が、同一論理演算の一部として更新される少なくとも２つのエントリを含む、上記（５）に記載のシステム。
（７）前記増分演算がモジュロ演算およびストライド演算の少なくとも１つを含む、上記（５）に記載のシステム。
（８）前記ポインタ配列の各エントリが、前記ベクトル・データ・ファイル内の少なくとも１つの格納要素の開始アドレスを含む、上記（１）に記載のシステム。
（９）前記ベクトル・データ・ファイルの格納要素が行と列のマトリックスに論理的に編成され、前記ポインタ配列の各エントリが前記ベクトル・データ・ファイル内の少なくとも１つの要素の行と列を表わすアドレスを含む、上記（１）に記載のシステム。
（１０）前記ベクトル・ファイル・データの格納要素が行と列のマトリックスに論理編成され、前記ポインタ配列の各配列がベクトル・データ・ファイル内の単一要素の行と列を表わすアドレスを含む、上記（１）に記載のシステム。
（１１）前記ポインタ配列内の任意のエントリに対し、前記任意エントリによって識別される少なくとも１つの格納要素が、前記ポインタ配列の他のエントリによって識別される少なくとも１つの格納要素に対して独立している、上記（１）に記載のシステム。
（１２）複数のデータ要素をそれぞれに含むデータ・ベクトルを使用する演算を処理するための方法において、
データ・ベクトルのデータ要素を格納するための複数の格納要素を含むベクトル・データ・ファイルを提供するステップと、
複数のエントリを有するポインタ配列を提供するステップであって、各エントリが前記データ・ベクトルの少なくとも１つのデータ要素を格納するための前記ベクトル・データ・ファイル内の少なくとも１つの格納要素を識別し、前記ポインタ配列内の少なくとも１つの特定のエントリに対し、その特定のエントリによって識別される少なくとも１つの格納要素が前記ベクトル・データ・ファイルの任意の開始アドレスを有するように構成されたステップと
を含む方法。
（１３）前記ポインタ配列内の任意のエントリに対し、前記任意のエントリによって識別される少なくとも１つの格納要素が前記ベクトル・データ・ファイルの任意の開始アドレスを有する、上記（１２）に記載の方法。
（１４）前記ポインタ配列のエントリの少なくとも１つを、前記ベクトル・データ・ファイル内の少なくとも１つのデータ要素から読み出されるデータに基づいて更新するステップ
をさらに含む、上記（１２）に記載の方法。
（１５）前記ポインタ配列のエントリの少なくとも１つを、前記ポインタ配列の少なくとも１つのエントリから読み出されるデータを増分することによって生成されるデータから読み出されるデータに基づいて更新するステップ
をさらに含む、上記（１２）に記載の方法。
（１６）前記ポインタ配列のエントリの少なくとも１つを、前記ポインタ配列の少なくとも１つのエントリから読み出されるデータに増分演算を実行することによって生成されるデータに基づいて更新するステップ
をさらに含む、上記（１２）に記載の方法。
（１７）前記ポインタ配列の少なくとも２つのエントリが同一論理演算の一部として更新される、上記（１６）に記載の方法。
（１８）前記増分演算が、前記ポインタ配列の少なくとも１つのエントリから読み出されるデータに対するモジュロ演算およびストライド演算の少なくとも１つをさらに含む、上記（１６）に記載の方法。
（１９）前記ポインタ配列の各エントリが、前記ベクトル・データ・ファイル内の少なくとも１つの格納要素の開始アドレスを格納する、上記（１２）に記載の方法。
（２０）前記ベクトル・データ・ファイルの格納要素が行と列のマトリックスに論理的に編成され、前記ポインタ配列の各エントリが、前記ベクトル・データ・ファイルの少なくとも１つの要素の行と列を表わすアドレスを格納する、上記（１２）に記載の方法。
（２１）ベクトル・ファイル・データの格納要素が行と列のマトリックスに論理的に編成され、前記ポインタ配列の各配列が、前記ベクトル・データ・ファイルの単一要素の行と列を表わすアドレスを格納する、上記（１２）に記載の方法。
（２２）前記ポインタ配列の任意のエントリに対し、前記任意のエントリによって識別される少なくとも１つの格納要素が、前記ポインタ配列の他のエントリによって識別される少なくとも１つの格納要素に対して独立している、上記（１２）に記載の方法。
（２３）複数のデータ要素をそれぞれに含むデータ・ベクトルを使用する演算を処理するための方法ステップを実行するための、機械により実行可能な命令のプログラムを具体的に具現化する、機械により読取り可能なプログラム格納装置において、前記方法ステップが、
データ・ベクトルのデータ要素を格納するための複数の格納要素を含むベクトル・データ・ファイルを提供するステップと、
複数のエントリを有するポインタ配列を提供するステップであって、各エントリが前記データ・ベクトルの少なくとも１つのデータ要素を格納するための前記ベクトル・データ・ファイル内の少なくとも１つの格納要素を識別し、前記ポインタ配列内の少なくとも１つの特定のエントリに対し、その特定のエントリによって識別される少なくとも１つの格納要素が前記ベクトル・データ・ファイルの任意の開始アドレスを有するように構成されたステップと
を含んでいるプログラム格納装置。
（２４）前記ポインタ配列の任意のエントリに対し、前記任意のエントリによって識別される少なくとも１つの格納要素が、ベクトル・データ・ファイル内の任意の開始アドレスを有する、上記（２３）に記載のプログラム格納装置。
（２５）前記ポインタ配列のエントリの少なくとも１つを、前記ベクトル・データ・ファイルの少なくとも１つのデータ要素から読み出されるデータに基づいて更新するステップ
をさらに含む、上記（２３）に記載のプログラム格納装置。
（２６）前記ポインタ配列のエントリの少なくとも１つを、前記ポインタ配列の少なくとも１つのエントリから読み出されるデータを増分することによって生成されるデータから読み出されるデータに基づいて更新するステップ
をさらに含む、上記（２３）に記載のプログラム格納装置。
（２７）前記ポインタ配列のエントリの少なくとも１つを、前記ポインタ配列の少なくとも１つのエントリから読み出されるデータに対して増分演算に実行することによって生成されるデータに基づいて更新するステップ
をさらに含む、上記（２３）に記載のプログラム格納装置。
（２８）前記ポインタ配列の少なくとも２つのエントリが同一論理演算の一部として更新される、上記（２７）に記載のプログラム格納装置。
（２９）前記増分演算がさらに、前記ポインタ配列の少なくとも１つのエントリから読み出されるデータに対するモジュロ演算およびストライド演算の少なくとも１つを含む、上記（２７）に記載のプログラム格納装置。
（３０）前記ポインタ配列の各エントリが、前記ベクトル・データ・ファイル内の少なくとも１つの格納要素の開始アドレスを格納する、上記（２３）に記載のプログラム格納装置。
（３１）前記ベクトル・データ・ファイルの格納要素が行と列のマトリックスに論理的に編成され、前記ポインタ配列の各エントリが前記ベクトル・データ・ファイル内の少なくとも１つの要素の行と列を表わすアドレスを格納する、上記（２３）に記載のプログラム格納装置。
（３２）ベクトル・ファイル・データの格納要素が行と列のマトリックスに論理的に編成され、前記ポインタ配列の各配列が、前記ベクトル・データ・ファイル内の単一要素の行と列を表わすアドレスを格納する、上記（２３）に記載のプログラム格納装置。
（３３）前記ポインタ配列の任意のエントリに対し、前記任意のエントリによって識別される少なくとも１つの格納要素が、前記ポインタ配列の他のエントリによって識別される少なくとも１つの格納要素に対して独立している、上記（２３）に記載のプログラム格納装置。
【図面の簡単な説明】
【図１】本発明を使用する単一命令複数データ（ＳＩＭＤ）デジタル信号プロセッサ（ＤＳＰ）またはメディア・プロセッサを示す略図である。
【図２】本発明による、８つのエントリ・ポインタ・アドレス・ファイルと、５１２のエントリ・ベクトル・データ・ファイルと、４つの要素から成る１つの任意のサブベクトルへのアクセスとを含む、１６ビット要素のベクトル用のベクトル・データ・ファイルの一実施形態を示す略図である。
【図３】本発明による、３つのベクトルを含むデータ・レジスタ区分の例証としての例を示す略図である。
【図４】本発明による、１つのベクトルのためのデータ・レジスタ区分の別の例証としての例を示す略図である。
【図５】本発明による、新しいアドレス・マルチプレクサならびにストライドおよびモジュロ・アドレス指定機能を示す、アドレス増分器の代替的実施形態の略図である。
【符号の説明】
１００  プロセッサ
１０１  命令メモリ
１０３  ベクトル・レジスタ・ファイル
１０２  命令ユニット
１０４  ベクトル演算装置
１０５  データ・メモリ
１５１  書込みデータ・ポート
１５２  書込みデータ・ポート
１５３  読取りデータ・ポート
１５４  読取りデータ・ポート
【図１】
0003940269.tif 000002
【図２】
0003940269.tif 000003
【図３】
0003940269.tif 000004
【図４】
0003940269.tif 000005
【図５】
0003940269.tif 000006