JP2001273277A - 演算処理システム、演算処理方法およびそのプログラム格納装置 - Google Patents

演算処理システム、演算処理方法およびそのプログラム格納装置

Info

Publication number
JP2001273277A
JP2001273277A JP2001051897A JP2001051897A JP2001273277A JP 2001273277 A JP2001273277 A JP 2001273277A JP 2001051897 A JP2001051897 A JP 2001051897A JP 2001051897 A JP2001051897 A JP 2001051897A JP 2001273277 A JP2001273277 A JP 2001273277A
Authority
JP
Japan
Prior art keywords
data
vector
entry
pointer array
data file
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
Application number
JP2001051897A
Other languages
English (en)
Other versions
JP3940269B2 (ja
Inventor
John Grossner Claire
クレア・ジョン・グロスナー
Hokeneku Ademu
アデム・ホケネク
Maelzer David
デヴィッド・メルツァー
Moudogiru Mavan
マヴァン・モウドギル
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2001273277A publication Critical patent/JP2001273277A/ja
Application granted granted Critical
Publication of JP3940269B2 publication Critical patent/JP3940269B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors
    • G06F15/8092Array of vector units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors
    • G06F15/8076Details on data register access
    • 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
    • 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/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/3013Organisation of register space, e.g. banked or distributed register file according to data content, e.g. floating-point registers, address registers
    • 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/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/345Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
    • 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/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/345Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
    • G06F9/3455Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results using stride
    • 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, look ahead
    • G06F9/3824Operand accessing

Abstract

(57)【要約】 (修正有) 【課題】 同一構造でこれらの全ての操作モードが性能
を最適化することができるベクトル・レジスタ・アーキ
テクチャを提供する。 【解決手段】 複数のデータ要素をそれぞれに含むデー
タ・ベクトルを使用する演算を処理するためのシステム
および方法は、データ・ベクトルのデータ要素を格納す
るための複数の格納要素を備えたベクトル・データ・フ
ァイル206を含む。ポインタ配列202はバスによっ
てベクトル・データ・ファイルに結合される。ポインタ
配列は複数のエントリを含み、各エントリはベクトル・
データ・ファイル内の少なくとも1つの格納要素を識別
する。この少なくとも1つの格納要素はデータ・ベクト
ルの少なくとも1つのデータ要素を格納し、ポインタ配
列の少なくとも1つの特定のエントリに対し、その特定
のエントリによって識別される少なくとも1つの格納要
素は、ベクトル・データ・ファイルの任意の開始アドレ
スを有する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、デジタル処理、例
えばマルチメディア・プロセッサ、単一命令複数データ
(SIMD)プロセッサ、SIMD(ベクトル)処理機
能を持つデジタル信号プロセッサ、または同様の装置を
使用するがそれらに限定されない処理に関し、さらに詳
しくは、デジタル処理で計算の入出力を一時的に格納す
るために使用されるベクトル・レジスタ・ファイルに関
する。
【0002】
【従来の技術】単一命令複数データ(SIMD)処理
は、メディア・データまたはデジタル信号処理アルゴリ
ズムを含む計算に広く受け入れられている強力なアーキ
テクチャ上の概念である。それは、1次元ベクトルとし
て配列されたデータ値の1つまたはそれ以上のストリー
ムに対する計算を、単一命令で指定することを可能にす
る。計算のためのデータは、メモリから、または一般的
にベクトルを1次元順次編成で保持するファイルから来
るように指定される。ベクトルの要素は、計算のために
順次(つまり要素1、2、3...)またはストライド
(つまり固定増分)しながらアクセスされる。
【0003】
【発明が解決しようとする課題】しかし、多くのアルゴ
リズムは、表探索様アルゴリズムのため、または要素が
例えばビット反転など多少のアドレス置換を必要とする
ため、ベクトル要素への不規則なアクセスを必要とす
る。一般的に、この種のアクセスは一度に1つずつ要素
に行われて、ファイル内で新しいベクトルを形成し、こ
れが次に順次アクセスされる。このやり方で実現しなけ
ればならないアルゴリズムの性能は、真のSIMD処理
に対して可能であろうと思われるより、ずっと低い。
【0004】したがって、同一構造でこれらの全ての操
作モードが性能を最適化することができるベクトル・レ
ジスタ・アーキテクチャが必要である。
【0005】
【課題を解決するための手段】本発明による、複数のデ
ータ要素をそれぞれ含むデータ・ベクトルを使用する演
算処理のためのシステムおよび方法は、データ・ベクト
ルのデータ要素を格納するための複数の格納要素を備え
たベクトル・データ・ファイルを含む。ポインタ配列
は、バスによってベクトル・データ・ファイルに結合さ
れる。ポインタ配列は複数のエントリを含み、ここで各
エントリはベクトル・データ・ファイル内の少なくとも
1つの格納要素を識別する。この少なくとも1つの格納
要素は、データ・ベクトルの少なくとも1つのデータ要
素を格納し、ここでポインタ配列の少なくとも1つの特
定のエントリに対して、この特定のエントリによって識
別される少なくとも1つの格納要素は、ベクトル・デー
タ・ファイルの任意の開始アドレスを有する。
【0006】代替実施形態では、ポインタ配列の任意の
エントリに対し、この任意のエントリによって識別され
る少なくとも1つの格納要素は、ベクトル・データ・フ
ァイルの任意の開始アドレスを含むことができる。ポイ
ンタ配列は、ベクトル・データ・ファイル内の少なくと
も1つのデータ要素から読み出されるデータに基づいて
更新される、少なくとも1つのエントリを含むことがで
きる。ポインタ配列は、ポインタ配列の少なくとも1つ
のエントリから読み出されるデータを増分することによ
って生成されるデータに基づいて更新される、少なくと
も1つのエントリを含むことができる。ポインタ配列
は、ポインタ配列の少なくとも1つのエントリから読み
出されるデータに対して増分演算を実行することによっ
て生成されるデータに基づいて更新される、少なくとも
1つのエントリを含むことができる。ポインタ配列はさ
らに、同一論理演算の一部として更新される少なくとも
2つのエントリを含むことができる。増分演算は、モジ
ュロ演算およびストライド演算の少なくとも1つを含む
ことができる。ポインタ配列の各エントリは、ベクトル
・データ・ファイル内の少なくとも1つの格納要素の開
始アドレスを含むことができる。
【0007】さらに別の実施形態では、ベクトル・デー
タ・ファイルの格納要素は行と列のマトリックスに論理
的に編成することができ、ポインタ配列の各エントリ
は、ベクトル・データ・ファイル内の少なくとも1つの
要素の行と列を表わすアドレスを含むことができる。ベ
クトル・ファイル・データの格納要素は行と列のマトリ
ックスに論理的に編成することができ、ポインタ配列の
各配列は、ベクトル・データ・ファイル内の単一の要素
の行と列を表わすアドレスを含むことができる。ポイン
タ配列の任意のエントリに対し、この任意のエントリに
よって識別される少なくとも1つの格納要素は、ポイン
タ配列の別のエントリによって識別される少なくとも1
つの格納要素に対して独立していることができる。
【0008】複数のデータ要素をそれぞれに含むデータ
・ベクトルを使用する演算処理のための方法は、データ
・ベクトルのデータ要素を格納するための複数の格納要
素を含むベクトル・データ・ファイルを提供し、かつ複
数のエントリを有するポインタ配列を提供することを含
む。各エントリは、データ・ベクトルの少なくとも1つ
のデータ要素を格納するためのベクトル・データ・ファ
イル内の少なくとも1つの格納要素を識別し、ポインタ
配列内の少なくとも1つの特定のエントリに対し、その
特定のエントリによって識別される少なくとも1つの格
納要素は、ベクトル・データ・ファイルの任意の開始ア
ドレスを有する。
【0009】他の方法で、ポインタ配列内の任意のエン
トリに対し、その任意のエントリによって識別される少
なくとも1つの格納要素は、ベクトル・データ・ファイ
ルの任意の開始アドレスを持つことができる。この方法
はさらに、ベクトル・データ・ファイル内の少なくとも
1つのデータ要素から読み出されるデータに基づいて、
ポインタ配列のエントリの少なくとも1つを更新するス
テップを含むことができる。この方法はまた、ポインタ
配列の少なくとも1つのエントリから読み出されるデー
タを増分することによって生成されるデータから読み出
されるデータに基づいて、ポインタ配列のエントリの少
なくとも1つを更新するステップを含むこともできる。
この方法はまた、ポインタ配列の少なくとも1つのエン
トリから読み出されるデータに対して増分演算を実行す
ることによって生成されるデータに基づいて、ポインタ
配列のエントリの少なくとも1つを更新するステップを
含むこともできる。ポインタ配列の少なくとも2つのエ
ントリを、同一論理演算の一部として更新することがで
きる。
【0010】さらに別の方法では、増分演算はさらに、
ポインタ配列の少なくとも1つのエントリから読み出さ
れるデータに対するモジュロ演算およびストライド演算
の少なくとも1つを含むことができる。ポインタ配列の
各エントリは、ベクトル・データ・ファイルの少なくと
も1つの格納要素の開始アドレスを格納することができ
る。ベクトル・データ・ファイルの格納要素は、行と列
のマトリックスに論理的に編成することができ、ポイン
タ配列の各エントリは、ベクトル・データ・ファイル内
の少なくとも1つの要素の行と列を表わすアドレスを格
納することができる。ベクトル・ファイル・データの格
納要素は、行と列のマトリックスに論理的に編成するこ
とができ、ポインタ配列の各配列は、ベクトル・データ
・ファイル内の単一要素の行と列を表わすアドレスを格
納することができる。ポインタ配列の任意のエントリに
ついて、この任意のエントリによって識別される少なく
とも1つの格納要素は、ポインタ配列の他のエントリに
よって識別される少なくとも1つの格納要素に対して独
立していることができる。上記の方法のステップは、複
数のデータ要素をそれぞれに含むデータ・ベクトルを使
用する演算を処理するためのこれらの方法ステップを実
行するために、機械により実行可能な命令のプログラム
を具体的に具現化する、機械により読取り可能なプログ
ラム格納装置によって実現することができる。
【0011】本発明のこれらおよびその他の目的、特
徴、および利点は、その例証となる実施形態の以下の詳
細な説明を添付の図面と併せて読むことにより、明らか
になるであろう。
【0012】
【発明の実施の形態】本発明は、好ましくは単一命令複
数データ(SIMD)処理のために、ベクトル・データ
を含むためのベクトル・レジスタ・ファイルを提供す
る。本発明はまた、そこに含まれるベクトルの任意のサ
ブベクトルにアクセスするためのレジスタ・ファイルを
も提供する。本発明を、予め定められた数の要素、アド
レス線を備えたコンポーネントまたは任意の大きさのコ
ンポーネントを有する、プロセッサ回路に関して説明す
る。コンポーネントまたはベクトル、アドレスのこれら
の大きさ、入力の数、出力の数、要素の数等は例証にす
ぎず、発明を限定するものと解釈すべきではない。
【0013】本発明の1つの例証としての実施形態で
は、総サイズが512の要素に等しいかそれ以下である
1つまたはそれ以上のベクトルを保持するために編成さ
れ、各アクセスで16ビットの4つの要素が読み取られ
るか書き込まれる、ベクトル・レジスタ・ファイルを開
示する。ベクトルは、数量を表わす要素の線形配列から
成るデータ構造である。ベクトル・レジスタ・ファイル
へのアクセスのためのアドレスは、一体的であるが別個
にアクセスされるポインタ配列に含まれるアドレス・ポ
インタによって指定される。各ポインタは、各アクセス
・サイクルで各アクセス・ポートに読み出すか、または
書き込むことができる4つの要素のうちの1つの要素の
アドレスを指定する。ポインタ・ファイルは、複数のポ
インタを含む。各アクセスに対して必要なポインタの
数、例えば4は、SIMD処理プログラムを制御する命
令に含まれる情報によって選択される。したがって、レ
ジスタ・ファイルは間接アドレス形である。ファイルの
ベクトル・データ配列部分のアクセス・アドレスを決定
するために使用された後、ポインタ配列部分の内容は、
例えば増分値(ベクトルの順次アクセスを可能にするた
め)または読み出されたベクトルの内容(表探索アクセ
スまたはデータ収集アクセスを可能にするため)によ
り、(命令制御下で)更新することができる。本発明の
他の実施形態も、ストライド・アクセス、モジュロ(循
環)アクセス、またはその他のアクセス方法のための更
新を提供する。本発明のプログラムはアドレス値の計算
や、更新された値を使用するためにポインタ・アドレス
・ファイルにロードすることができる。
【0014】図1ないし5に示す要素は、様々な形のハ
ードウェア、ソフトウェア、またはそれらの組合せで実
現できることを理解されたい。これらの要素は、プロセ
ッサとメモリと入出力インタフェースとを有する、1つ
またはそれ以上の適切にプログラムされた汎用デジタル
コンピュータまたは格納装置上のソフトウェアで実現す
ることができる。本発明はまた、ハードウェアで実現す
ることもできる。ハードウェアで実現する場合、アドレ
ス更新を含む計算は、最高パイプライン・レートのパイ
プライン演算として有利に処理することができる。
【0015】今から図面を参照して説明する。図面全体
を通して、同一または同様の要素は類似の番号で表わ
す。最初に図1を参照すると、例証としてのプロセッサ
100が示されている。プロセッサ100はメディア・
プロセッサ、SIMDプロセッサ、またはデジタル信号
プロセッサ(DSP)を含むことができ、命令ユニット
102に命令を提供する命令メモリ101を含むことが
好ましい。命令ユニット102は、例えば命令メモリ1
01に格納されたプログラムを順序付け、プロセッサ1
00の他の要素またはコンポーネントに復号された制御
を提供する。処理されるデータは、例えば2つの読取り
データ・ポート153および154ならびに2つの書込
みデータ・ポート151および152を有するマルチポ
ート・データ・メモリ105に保持される。これらのポ
ートは、データ・アドレス・ユニット106によって提
供されるアドレスでアクセスされる。データは、メモリ
から読取りポート154を介して、ベクトル・レジスタ
・ファイル103の書込みポート133に移され、書込
みポート132を介してベクトル・レジスタ・ファイル
103で使用され、ベクトル演算装置104で使用され
る。計算の結果は、書込みポート132を介してベクト
ル・レジスタ・ファイル103に格納される。ベクトル
・レジスタ・ファイル103に格納されたファイルは、
さらなる計算のために使用するか、または読取りポート
131からバス111および書込みポート152を介し
てデータ・メモリ105に移される。プログラムおよび
プロセッサ100のための入力データは、入力110を
通して外部メモリまたはI/O装置から提供され、結果
は出力バス109を介して外部メモリまたはI/Oに送
られる。
【0016】それぞれの演算装置141ないし144
は、読取りポート134および135を介してレジスタ
・ファイル103から読み出される2つのサブベクトル
のそれぞれの1つの要素に対して演算を行い、それぞれ
の演算装置141ないし144は、他と同じ演算を行う
ことができる。結果の4要素のサブベクトルが生成さ
れ、これは次いで、書込みポート132を介してレジス
タ・ファイル103に書き込まれる。希望するサブベク
トルがそれぞれのポート132、134、135でより
容易に選択される場合、装置104で行われる計算をよ
り高速に進めることができる。
【0017】図2を参照して、ベクトル・レジスタ・フ
ァイル103(図1)を今から詳細に説明する。ベクト
ル・レジスタ・ファイル103は、アクセス・ポート1
31ないし135(図1)の1つに対する論理を含む。
明快にするために、図2のデータ・バス207は、図1
で108として示した2つのデータ・バスのうちの1つ
を表わすことに注意されたい。また、入力ポート210
は、図1に示した2つの入力ポート131または132
のうちの1つである。ベクトル・アドレス・ポインタ配
列202は例証として、例えば、それぞれが9ビットの
4つのフィールドで構成される8つの語で構成すること
ができる。ベクトル・アドレス・ポインタ配列202
は、語復号器201によって8つの語のうち1つを選択
する、プロセッサ100(図1)の命令ユニット102
によって生成される3ビット・アドレス(ポインタ選
択)によって、アドレス指定される。ベクトル・データ
はベクトル・データ・ファイル206に含まれ、これは
一実施形態では、それぞれ16ビットの512の要素を
含む。バス210は、ポインタ語と、データ・メモリ1
05からのデータ・ファイルまたは演算装置104(図
1)からのベクトル演算計算結果とをロードするために
使用される。ベクトル・データ・ファイル206から読
み出されるデータは4つの連結ベクトル要素R1、R
2、R3、R4から成り、これらはベクトル演算装置1
04で使用するため、またはデータ・メモリ105(図
1)に格納するために、読取りデータ・バス207に出
力される。ベクトル・データ・ファイル206から読み
出される64ビットのうち36ビットは、後述する通り
アドレスの更新に使用するために、36のマルチプレク
サ205(例えば9つのマルチプレクサの4つのグルー
プとして図示されている)の第1入力にも結合される。
【0018】ベクトル・データ・ファイル206の読出
しまたは書込みオペレーションを構成する4つのベクト
ル要素(R1〜R4)のそれぞれを選択するために使用
されるアドレスは、読取りバス203を介してベクトル
・ポインタ配列202から読み出されるベクトル・ポイ
ンタ語のフィールドの1つから来る。各フィールドは、
ベクトル・データ・ファイル206にアクセスするため
に使用されるアドレスを形成するために、命令ユニット
102(図1)によって生成される適切なイネーブル2
08との論理積を取る。イネーブルされたアドレスは、
同時に4個単位の増分配列204の入力に結合される。
増分されたアドレスは、マルチプレクサ205の第2入
力に接続される。マルチプレクサ205の第1入力と第
2入力の間の選択は、マルチプレクサ制御信号211に
よって行われる。マルチプレクサ205の出力はアドレ
ス・ポインタ配列202の入力に接続されるので、出力
を配列202に書き込むことができる。ポインタ配列2
02から読み出されるポインタ・データ語は、バス20
9を介してデータ・メモリ105(図1)に送ることが
できる。データ配列をアドレス指定するために使用後に
アドレス・ポインタ値を増分するこの構成(事後増分)
は、増分器配列204を読取りバス203の出力に直接
結合し、それらの出力をアドレス・イネーブル・ステー
ジ230に接続することによって、使用前に増分(事前
増分)するように変更することができることを、配列論
理設計技術の熟練者は理解することができる。
【0019】ベクトル・データ・ファイル206の要素
空間(例えば512語)は細分され、好ましくはソフト
ウェアによって、実現される特定のアルゴリズムによっ
て必要とされるデータ・ベクトルに割り当てられる。ポ
インタ配列202に格納されたベクトル・ポインタ・フ
ァイルに入れられた値は、最高8個までのベクトルのそ
れぞれの開始アドレスを定義する。値は、好ましくはプ
ログラム命令、例えばVPTRLOADを使用して、ポ
インタ配列202にロードされる。図2に関連して、命
令VPTRLOADの実行により、値はバス210にロ
ードされ、ポインタ語のアドレスは語アドレス復号器2
01の「ポインタ選択」入力にロードされる。バス21
0に置かれる値は、データ・メモリ105から来るか、
あるいは算術または論理計算ユニット104(図1)の
結果出力とすることができる。
【0020】図3を参照すると、3つの小ベクトルを保
持しているベクトル・データ・ファイル206の一実施
形態の区分化例が示されている。各要素の9ビット・ア
ドレスは、6ビットの行アドレス(64行)と3ビット
の列アドレス(8列)で構成される。この例の第1ベク
トル303は4つの要素311で構成され、第1要素は
行3、列3である。第2要素は行3、列4云々と繰り返
される。ベクトル303をアドレス指定するために、ベ
クトル・ポインタ配列202は、好ましくはソフトウェ
ア・プログラムによって設定される。プログラムで、ポ
インタ配列の語アドレス「1」は、ベクトル303の4
つの要素を指定するように設定されている。ベクトル・
アドレス・ポインタ・ファイル202で、36ビットの
語アドレス「1」は、図3に示すように初期化された9
ビットの4つのフィールド305に分割される。ポイン
タの各フィールド305の値は例示的に行列値として示
されているが、実際には9ビットの二進数(または他の
サイズの語)が格納される。例えば、3,3の要素の要
素アドレスは、実際には二進数000011011とし
て格納される。第2ベクトル307は、8,1から始ま
る12の要素を持つ。このベクトルの先頭の4つの要素
を図示する値でアドレス指定するために、ポインタ語ア
ドレス「4」が使用されている。第3ベクトル309は
3つの要素で構成され、第1要素は場所11,5にあ
り、その他は図示する通りである。第4要素は無いの
で、第4ポインタ・フィールドは無指定(a don't car
e)であるが、0,0に設定されている。
【0021】図2に例示的に示す実施形態の場合、ベク
トル・データ・ファイル206に対する基本オペレーシ
ョンは、例えば、順次読取り、順次書込み、間接読取
り、および間接書込みを含む。間接アクセス・モードは
本発明の1つの重要な特徴であり、サブベクトルを形成
するためにベクトル・データ・ファイル206内の要素
の任意の集合をアドレス指定することを可能にする。こ
れらのサブベクトルは、例えばベクトル値の表探索を行
うため、または要素を集めてSIMD処理用のサブベク
トルにするために、使用することができる。本発明の他
の用途として、例えばベクトルのストリップ・マイニン
グを含めることができる。ベクトルのストリップ・マイ
ニングは、間接読取りを介してサブベクトルをアセンブ
ルし、結果的に得られるサブベクトルを、その後のプロ
グラム・ステップで例えばフィルタリングのために後で
使用するために、データ・メモリ105に書き込む(格
納する)ことを含む。
【0022】ベクトル・レジスタ・ファイル103(図
1)に対するオペレーションの任意の論理サイクル中
に、次の操作を実行することができる。すなわち、ポイ
ンタ配列202に対するオペレーションが指定され(読
取りまたは書込みオペレーション)、ポインタ配列に指
標(これはアドレス、例えば0から7の間の語アドレス
である)が提供され、供給された指標に対応するポイン
タ配列202の4つのエントリがポインタ配列202か
ら読み取られ、ポインタ配列から読み取られた4つのエ
ントリを使用してベクトル・データ・ファイル206の
1組のアドレス(4つを図示する)が生成され(好まし
くは、これは図示する1組4つのアドレス・イネーブル
信号208によってトリガされる)、供給された組のア
ドレスに対応するベクトル・データ・ファイル206の
要素がベクトル・データ・ファイル206から読み取ら
れ、供給された指標に対応するポインタ配列のエントリ
の更新を選択的に制御するために制御信号が提供され
る。これらの制御信号は少なくとも、「はい」または
「いいえ」の値を持つ「putaway制御」信号を含み、
「はい」に匹敵する場合、マルチプレクサ205のバス
250上の出力値を書込みポート251を介してポイン
タ・アドレス配列202に書き込むように指示する。制
御信号はまた、供給される組のアドレス・イネーブル信
号208に対応してポインタ・ファイル202から読み
出される増分されたアドレスまたはベクトル・データ・
レジスタ・ファイル206から読み出されるデータをバ
ス250に結合するかどうかを決定する、マルチプレク
サ制御信号211をも含む。
【0023】再び図2を参照しながら説明すると、ベク
トル・アドレス・ポインタ・ファイル202によって供
給される組のアドレスに、他のオペレーション(例えば
増分演算、ストライド演算または増分モジュロ・アドレ
ス指定オペレーションなど)を実行することができ、マ
ルチプレクサ回路205を使用して、そのようなオペレ
ーションから得られるデータ結果またはベクトル・デー
タ・ファイル206の要素から読み出されるデータを選
択的に出力することができる。この場合、供給される指
標に対応するポインタ配列202内のエントリの更新
は、マルチプレクサ回路205によって選択的に出力さ
れるデータを使用することができる。
【0024】これらのオペレーションは、ベクトル・レ
ジスタ・ファイル103内のベクトル・データに対する
オペレーションを含む命令によってトリガされる。バス
210上のデータの源およびバス209および207上
のデータの宛先の指定もまた、命令ストリームから導出
される。
【0025】順次ベクトル読取りは、ポインタ配列20
2内の8つのアドレス語(0〜7)のうちの1つにある
開始アドレスから開始される。解説のために、図3に示
すベクトル・ファイル206の区分化を使用し、第2ベ
クトル307の読取りについて記載して、本発明のさら
なる特徴および詳細を例証として説明する。
【0026】図1、2、および3に関連して、オペレー
ションの第1サイクルは、ポインタ配列202の語アド
レス「4」の読取り、4つのアドレス全部のイネーブ
ル、ベクトル・データ・ファイル206の読取り、マル
チプレクサ制御211の1の値(例えばマルチプレクサ
の左のレッグを選択)、およびputaway値の「はい」を
指定する。putaway値は、マルチプレクサ205の出力
をポインタ・アドレス配列202に書き込むかどうかを
指定する命令の1ビットである。putaway値は、バス2
50上の値を書込みポート251を介してポインタ配列
202に書き込むかどうかを決定する制御信号として実
現される。この結果、ベクトル・ポインタ語アドレス
「4」の最初の9ビットが、ベクトル・データ・ファイ
ル206から読み取られる最初のサブベクトル要素のア
ドレスとなる。ベクトル・データ・ファイル206の
8,1にある要素が読み取られ、バス207のR1に置
かれる。同様に、ポインタ語「4」の第2フィールド
は、データ・ファイル内の8,2の位置の要素を読み取
り、バス207のR2に置くことを指定しており、第3
および第4要素についても同様である。読み取られた4
つの16ビット・データ値(R1〜R4)はアセンブル
されてサブベクトルになり、読取りデータ・バス207
を介してデータ・メモリ105またはベクトル演算装置
104のいずれかに渡される。同時に、ポインタ語
「4」から読み取られる値は、増分器204により(4
つの要素が一度に処理されるので、4を加算することに
よって)次の順次値に増分される。
【0027】マルチプレクサ制御211は増分された値
を選択し、putaway制御は、更新された値をポインタ配
列202に戻すことを指定するので、値(8,5)、
(8,6)、(8,7)および(8,8)は、マルチプ
レクサ205を介してポインタ・ファイル語アドレス4
に格納される。当業者は、行8、列1を表わす値(二進
数001000001)に4(二進数00000010
0)を加算すると、行8、列5(8,5)を表わす二進
数001000101になり、他の3つの値についても
同様であることを理解する。
【0028】次のサイクルのオペレーションの制御値は
第1サイクルと同一であるが、更新されたポインタ値を
使用してベクトル・データ・ファイル206にアクセス
するので、ベクトルの次の4つの要素がアセンブルさ
れ、バス207に送られる。この同じ制御値は、追加サ
イクル(この例の場合、合計3回)に対して繰り返され
て、要素ベクトル(この場合、12要素)が順次読み取
られ、バス207上にベクトルが置かれる。
【0029】ベクトルの順次書込みまたはローディング
は、読取りに非常に似ている。再び図3の第2ベクトル
を例として使用する。ベクトル・データ・ファイル20
6内のデータにアクセスする第1サイクルのオペレーシ
ョンは、ポインタ配列202の語アドレス4の読み出
し、4つのアドレス全部のイネーブル208、ベクトル
・データ・ファイル206の書込み、マルチプレクサ制
御211の値の1(例えば左のレッグを選択)、および
「はい」のputaway制御値を指定する。この値の結果、
ベクトル・ポインタ語アドレス「4」の最初の9ビット
が、データ・ファイル206に書き込まれる最初のサブ
ベクトル要素のアドレスとなる。バス210の最初の1
6ビットが、ベクトル・データ・ファイル206の8,
1の要素に書き込まれる。同様に、ポインタ語アドレス
「4」の第2フィールドは、データ・ファイル206の
8,2の要素をバス210から2番目の16ビットに書
き込むことを指定する。第3および第4要素についても
同様である。バス210上の64ビットから取られた4
つの16ビット・データ値は今、ベクトル・データ・フ
ァイル206に書き込まれている。同様に、ポインタ語
アドレス「4」の値から読み取られる値は、増分器20
4により(4つの要素が一度に処理されるので、4を加
算することによって)次の順次値に増分されている。マ
ルチプレクサ制御211は増分された値を選択し、puta
way制御値は、更新された値をポインタ配列202に送
り返すことを指定するので、値(8,5)(8,6)
(8,7)および(8,8)が、マルチプレクサ205
を介してポインタ・ファイル語アドレス「4」に格納さ
れる。同じ制御語があと2回繰り返され、バス210上
の次の2つの値がデータ・ファイルに格納されて、12
要素のベクトルが形成される。
【0030】間接アドレス指定操作モード(間接読取り
および間接書込み)は、例証として次のような場合に使
用することができる。 1)ベクトル・データ206ファイルにベクトルとして
格納されたアドレスのリストを介しての任意のサブベク
トル・アクセス。 2)信号標本がポインタ・レジスタ202に置かれた場
合のデータ指定アクセス。この場合、各信号値は、フィ
ルタ係数を選択するために多くのアルゴリズムで必要と
なるベクトル要素にアクセスすることができる。 3)データ収集オペレーションにより、分散したデータ
を順次SIMD処理可能データに変換する場合。
【0031】間接コマンドは他のタスクにも使用するこ
とができるので、これは網羅的なリストではない。
【0032】引き続き図2を参照しながら、図4に示し
た区分例を使用して、間接読取りについて説明しよう。
4要素の最初のベクトル403は、ベクトル・データ・
ファイル206のアドレス(8,3)、(8,5)、
(9,2)、および(9,3)に相当する二進要素値を
含む。ベクトル・レジスタ・データ・ファイル206の
データにアクセスする第1サイクルのオペレーションの
制御は、ポインタ配列202の語アドレス「1」の読み
出し、4つのアドレス全部のイネーブル208、ベクト
ル・データ・ファイル206の読取り、マルチプレクサ
制御値211の0(右のレッグを選択)、および「は
い」のputaway値を指定する。この値の結果、ベクトル
・データ・ファイル206の場所8,3の16ビットの
要素がベクトル・データ・ファイル206から読み取ら
れ、バス207のR1に置かれる。この値の9ビット
は、マルチプレクサ205の最初の1つにも結合され
る。上述した通り、これらの9ビットは、ベクトル・デ
ータ・ファイル206内の要素のアドレスに相当する二
進値を有する。同様に、他の3つの要素のそれぞれの値
の9ビットもマルチプレクサ205に結合される。マル
チプレクサ選択制御211は右を選択し、putaway制御
は「はい」を指定するので、場所(8,3)、(8,
5)、(9,2)、および(9,3)に含まれる値は、
ポインタ語アドレス「1」の4つのフィールドに書き込
まれる。
【0033】第2サイクルの制御は、ポインタ配列20
2の語アドレス「1」の読取り、4つのアドレス208
全部のイネーブル、ベクトル・データ・ファイル206
の読取り、マルチプレクサ制御値211の0(右のレッ
グを選択)、および「いいえ」のputaway制御値を指定
する。第2サイクルのオペレーションは結果的に、今ポ
インタ・ファイル語アドレス「1」にあるアドレスの4
つの要素がベクトル・データ・ファイル206から読み
取られ、バス207に置かれる。これらは、ベクトル・
データ・ファイル206における位置がベクトル・デー
タ・ファイル206の場所(8,3)、(8,5)、
(9,2)、および(9,3)の低位9ビットの値に相
当する4つの要素である。
【0034】間接書込み(「データ分散」)オペレーシ
ョンは、同様のシーケンスで制御される。データ分散オ
ペレーションを実行できるためには、各要素アドレス2
30がベクトル・データ・ファイル206内の任意の1
6ビット・データ要素への書込みを指定することができ
るように、64ビットの書込みポート261(図2)を
4つの16ビット・ポート(合計して64ビット)に区
分化する必要があることに注意されたい。この能力によ
り、要素1のアドレスは、64ビット・バス210の最
初の16ビットのベクトル要素R1を、データ・ファイ
ル206のどこに書き込むかを指定し、要素2のアドレ
スは、64ビット・バス210の2番目の16ビットの
ベクトル要素R2をデータ・ファイル206のどこに書
き込むかを指定し、R3およびR4についても同様に繰
り返される。簡略化した実施形態では、ハードウェアの
コスト上の理由のため、この能力を省くことができる。
記述した実施形態では、ベクトル・レジスタ・データ・
ファイル206内のデータにアクセスする第1サイクル
のオペレーションの制御は、ポインタ配列202の語ア
ドレス「1」の読取り、4つのアドレス全部のイネーブ
ル208、ベクトル・データ・ファイル206の読取
り、マルチプレクサ制御値211の0(右のレッグを選
択)、および「はい」のputaway制御値を指定する。こ
れは、指定された4つの要素の値を読取り、この値をポ
インタ配列語アドレス「1」に書き込む。第2サイクル
の制御は、ポインタ配列202の語アドレス「1」の読
取り、4つのアドレス全部のイネーブル208、ベクト
ル・データ・ファイル206の書込みマルチプレクサ制
御211値の0(右のレッグを選択)、および「いい
え」のputaway制御値を指定する。これにより、バス2
10上の4つの要素が取り出され、それらは、第1サイ
クルで読み取られるアドレスによって指定されるベクト
ル・データ・ファイル206の4つの要素に入れられ
る。
【0035】任意のポインタを使用してデータ・ファイ
ル内の計算の開始点を指定する能力により、フィルタリ
ングおよび畳込みなどの計算のために、1つのベクトル
を他のベクトルまたはそれ自身の上で「スライド」させ
ることが、極めて簡単かつ高速になる。
【0036】当業者は、図2に示したアドレスの生成お
よび使用の論理が、ベクトル・データ・ファイル206
のマルチポート・アクセスに対して繰り返すことができ
ることを理解されるであろう。図2の実施形態のマルチ
ポート・オペレーションのための最初の延長は、同時オ
ペレーションが可能なファイル206、つまり1つのポ
ートを読取り専用、もう1つを書込み専用とする2ポー
ト・ファイルの読取りおよび書込みポート(それぞれ2
62および261)を作ることである。そのような構造
により、古いデータが読取りポート262から読み取ら
れ、バス207に置かれ、処理されて、結果がデータ・
メモリ105に書き込まれる間に、新しいデータをバス
210から書込みポート261を介してベクトル・デー
タ・ファイル206にロードすることができる。これに
より、任意のサイズのベクトルを処理装置に間断なく流
すことが可能になる。
【0037】図5を参照すると、他のアドレス指定モー
ド、例えばストライドおよびモジュロ・アドレス指定に
備える図2の実施形態の変形例が示されている。他のア
ドレス指定モードも、適切な論理またはソフトウェアを
使用して実現することができる。図2のアドレス増分器
204およびマルチプレクサ205は、図5に示すハー
ドウェアに置換することができる。増分器504および
マルチプレクサ505が含まれる。入力は、ポインタ・
ファイル(202)から読み取られる要素アドレス50
8、レジスタ・ファイル206からのベクトル・データ
を含み、出力は、更新されたアドレス・バス250であ
り、ポインタ・ファイル202に格納される。ストライ
ド・アクセスの場合、ストライド値が、好ましくはプロ
グラムによって、ストライド・レジスタ501に格納さ
れ、上述の順次アクセスについて説明したようにアクセ
スが進行する。しかし、ストライド値は、固定値4では
なくポインタ・ファイル値に加算(または減算)され
る。モジュロ(循環)アドレス指定は、例えば、循環バ
ッファの開始アドレスを始点レジスタ503およびポイ
ンタ・ファイル202(図2)にロードするプログラム
によって行われる。ベクトルの終わりは、終点レジスタ
502にロードされる。オペレーションは、ストライド
・レジスタ501の値を使用して上述の通りアドレスを
増分しながら進行する。各サイクルで、比較イコール回
路506は、更新されたアドレスを終点アドレスと比較
して、ベクトルの終わりに達したかどうかを検査する。
達した場合、マルチプレクサ505は、更新されたアド
レスではなく、新しいアドレスとして、始点アドレス・
レジスタ503から始点アドレスをポインタ・ファイル
202に提供するように調節される。
【0038】本発明は、従来の技術に比べて多くの利点
を提供する。例えば、本発明によって提供される柔軟な
アドレス指定のため、データ・メモリ105のアドレス
指定が簡素化される。他の利点として次のようなことが
挙げられる。複合ループおよび表探索のためのデータの
アドレス指定を数個の命令で簡単に指定することがで
き、本発明はプログラムのサイズを小さくし、したがっ
て命令メモリ101の効率を高める。本発明は、ベクト
ル・アドレス・ファイル206の各要素が、ベクトル・
アドレス・ファイル206内の他の要素の内容とは無関
係に、データ配列202内の任意の要素の任意のアドレ
スを含めることを可能にする。例えば、アドレスがデー
タ・ファイル内の順次データ要素を言及しなければなら
ないという要求事項が除去され、2つの要素が同一アド
レスを持つことができる。本発明によってその他の利点
および利益も実現することができる。
【0039】任意のベクトル・アドレス指定機能を備え
たベクトル・レジスタ・ファイルの好適な実施形態(こ
れらは限定ではなく、例証として意図されたものであ
る)を説明したが、当業者は、上述の教示に照らして変
更や変形を行うことができることに留意されたい。した
がって、請求の範囲で規定する発明の請求および精神の
範囲内で、開示した発明の特定の実施形態に変化を加え
ることができることを理解されたい。このように発明を
詳細に、特に特許法によって要求される通りに説明した
が、請求しかつ特許証によって保護されることを希望す
るものは、請求の範囲に記載する。
【0040】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0041】(1)複数のデータ要素をそれぞれに含む
データ・ベクトルを使用する演算を処理するためのシス
テムにおいて、データ・ベクトルのデータ要素を格納す
るための複数の格納要素を含むベクトル・データ・ファ
イルと、バスによって前記ベクトル・データ・ファイル
に結合されるポインタ配列であって、複数のエントリを
含み、各エントリがベクトル・データ・ファイル内の少
なくとも1つの格納要素を識別するようにしたポインタ
配列とを含み、前記データ・ベクトルの少なくとも1つ
のデータ要素を格納するための少なくとも1つの格納要
素であって、前記ポインタ配列の少なくとも1つの特定
のエントリに対し、その特定のエントリによって識別さ
れる少なくとも1つの格納要素が、前記ベクトル・デー
タ・ファイルの任意の開始アドレスを有する、システ
ム。 (2)ポインタ配列の任意のエントリに対し、その任意
のエントリによって識別される少なくとも1つの格納要
素が、ベクトル・データ・ファイルの任意の開始アドレ
スを含む、上記(1)に記載のシステム。 (3)前記ポインタ配列が、前記ベクトル・データ・フ
ァイル内の少なくとも1つのデータ要素から読み出され
るデータに基づいて更新される少なくとも1つのエント
リを含む、上記(1)に記載のシステム。 (4)前記ポインタ配列が、前記ポインタ配列の少なく
とも1つのエントリから読み出されるデータを増分する
ことによって生成されるデータに基づいて更新される少
なくとも1つのエントリを含む、上記(1)に記載のシ
ステム。 (5)前記ポインタ配列が、前記ポインタ配列の少なく
とも1つのエントリから読み出されるデータに対し増分
演算を実行することによって生成されるデータに基づい
て更新される少なくとも1つのエントリを含む、上記
(1)に記載のシステム。 (6)前記ポインタ配列が、同一論理演算の一部として
更新される少なくとも2つのエントリを含む、上記
(5)に記載のシステム。 (7)前記増分演算がモジュロ演算およびストライド演
算の少なくとも1つを含む、上記(5)に記載のシステ
ム。 (8)前記ポインタ配列の各エントリが、前記ベクトル
・データ・ファイル内の少なくとも1つの格納要素の開
始アドレスを含む、上記(1)に記載のシステム。 (9)前記ベクトル・データ・ファイルの格納要素が行
と列のマトリックスに論理的に編成され、前記ポインタ
配列の各エントリが前記ベクトル・データ・ファイル内
の少なくとも1つの要素の行と列を表わすアドレスを含
む、上記(1)に記載のシステム。 (10)前記ベクトル・ファイル・データの格納要素が
行と列のマトリックスに論理編成され、前記ポインタ配
列の各配列がベクトル・データ・ファイル内の単一要素
の行と列を表わすアドレスを含む、上記(1)に記載の
システム。 (11)前記ポインタ配列内の任意のエントリに対し、
前記任意エントリによって識別される少なくとも1つの
格納要素が、前記ポインタ配列の他のエントリによって
識別される少なくとも1つの格納要素に対して独立して
いる、上記(1)に記載のシステム。 (12)複数のデータ要素をそれぞれに含むデータ・ベ
クトルを使用する演算を処理するための方法において、
データ・ベクトルのデータ要素を格納するための複数の
格納要素を含むベクトル・データ・ファイルを提供する
ステップと、複数のエントリを有するポインタ配列を提
供するステップであって、各エントリが前記データ・ベ
クトルの少なくとも1つのデータ要素を格納するための
前記ベクトル・データ・ファイル内の少なくとも1つの
格納要素を識別し、前記ポインタ配列内の少なくとも1
つの特定のエントリに対し、その特定のエントリによっ
て識別される少なくとも1つの格納要素が前記ベクトル
・データ・ファイルの任意の開始アドレスを有するよう
に構成されたステップとを含む方法。 (13)前記ポインタ配列内の任意のエントリに対し、
前記任意のエントリによって識別される少なくとも1つ
の格納要素が前記ベクトル・データ・ファイルの任意の
開始アドレスを有する、上記(12)に記載の方法。 (14)前記ポインタ配列のエントリの少なくとも1つ
を、前記ベクトル・データ・ファイル内の少なくとも1
つのデータ要素から読み出されるデータに基づいて更新
するステップをさらに含む、上記(12)に記載の方
法。 (15)前記ポインタ配列のエントリの少なくとも1つ
を、前記ポインタ配列の少なくとも1つのエントリから
読み出されるデータを増分することによって生成される
データから読み出されるデータに基づいて更新するステ
ップをさらに含む、上記(12)に記載の方法。 (16)前記ポインタ配列のエントリの少なくとも1つ
を、前記ポインタ配列の少なくとも1つのエントリから
読み出されるデータに増分演算を実行することによって
生成されるデータに基づいて更新するステップをさらに
含む、上記(12)に記載の方法。 (17)前記ポインタ配列の少なくとも2つのエントリ
が同一論理演算の一部として更新される、上記(16)
に記載の方法。 (18)前記増分演算が、前記ポインタ配列の少なくと
も1つのエントリから読み出されるデータに対するモジ
ュロ演算およびストライド演算の少なくとも1つをさら
に含む、上記(16)に記載の方法。 (19)前記ポインタ配列の各エントリが、前記ベクト
ル・データ・ファイル内の少なくとも1つの格納要素の
開始アドレスを格納する、上記(12)に記載の方法。 (20)前記ベクトル・データ・ファイルの格納要素が
行と列のマトリックスに論理的に編成され、前記ポイン
タ配列の各エントリが、前記ベクトル・データ・ファイ
ルの少なくとも1つの要素の行と列を表わすアドレスを
格納する、上記(12)に記載の方法。 (21)ベクトル・ファイル・データの格納要素が行と
列のマトリックスに論理的に編成され、前記ポインタ配
列の各配列が、前記ベクトル・データ・ファイルの単一
要素の行と列を表わすアドレスを格納する、上記(1
2)に記載の方法。 (22)前記ポインタ配列の任意のエントリに対し、前
記任意のエントリによって識別される少なくとも1つの
格納要素が、前記ポインタ配列の他のエントリによって
識別される少なくとも1つの格納要素に対して独立して
いる、上記(12)に記載の方法。 (23)複数のデータ要素をそれぞれに含むデータ・ベ
クトルを使用する演算を処理するための方法ステップを
実行するための、機械により実行可能な命令のプログラ
ムを具体的に具現化する、機械により読取り可能なプロ
グラム格納装置において、前記方法ステップが、データ
・ベクトルのデータ要素を格納するための複数の格納要
素を含むベクトル・データ・ファイルを提供するステッ
プと、複数のエントリを有するポインタ配列を提供する
ステップであって、各エントリが前記データ・ベクトル
の少なくとも1つのデータ要素を格納するための前記ベ
クトル・データ・ファイル内の少なくとも1つの格納要
素を識別し、前記ポインタ配列内の少なくとも1つの特
定のエントリに対し、その特定のエントリによって識別
される少なくとも1つの格納要素が前記ベクトル・デー
タ・ファイルの任意の開始アドレスを有するように構成
されたステップとを含んでいるプログラム格納装置。 (24)前記ポインタ配列の任意のエントリに対し、前
記任意のエントリによって識別される少なくとも1つの
格納要素が、ベクトル・データ・ファイル内の任意の開
始アドレスを有する、上記(23)に記載のプログラム
格納装置。 (25)前記ポインタ配列のエントリの少なくとも1つ
を、前記ベクトル・データ・ファイルの少なくとも1つ
のデータ要素から読み出されるデータに基づいて更新す
るステップをさらに含む、上記(23)に記載のプログ
ラム格納装置。 (26)前記ポインタ配列のエントリの少なくとも1つ
を、前記ポインタ配列の少なくとも1つのエントリから
読み出されるデータを増分することによって生成される
データから読み出されるデータに基づいて更新するステ
ップをさらに含む、上記(23)に記載のプログラム格
納装置。 (27)前記ポインタ配列のエントリの少なくとも1つ
を、前記ポインタ配列の少なくとも1つのエントリから
読み出されるデータに対して増分演算に実行することに
よって生成されるデータに基づいて更新するステップを
さらに含む、上記(23)に記載のプログラム格納装
置。 (28)前記ポインタ配列の少なくとも2つのエントリ
が同一論理演算の一部として更新される、上記(27)
に記載のプログラム格納装置。 (29)前記増分演算がさらに、前記ポインタ配列の少
なくとも1つのエントリから読み出されるデータに対す
るモジュロ演算およびストライド演算の少なくとも1つ
を含む、上記(27)に記載のプログラム格納装置。 (30)前記ポインタ配列の各エントリが、前記ベクト
ル・データ・ファイル内の少なくとも1つの格納要素の
開始アドレスを格納する、上記(23)に記載のプログ
ラム格納装置。 (31)前記ベクトル・データ・ファイルの格納要素が
行と列のマトリックスに論理的に編成され、前記ポイン
タ配列の各エントリが前記ベクトル・データ・ファイル
内の少なくとも1つの要素の行と列を表わすアドレスを
格納する、上記(23)に記載のプログラム格納装置。 (32)ベクトル・ファイル・データの格納要素が行と
列のマトリックスに論理的に編成され、前記ポインタ配
列の各配列が、前記ベクトル・データ・ファイル内の単
一要素の行と列を表わすアドレスを格納する、上記(2
3)に記載のプログラム格納装置。 (33)前記ポインタ配列の任意のエントリに対し、前
記任意のエントリによって識別される少なくとも1つの
格納要素が、前記ポインタ配列の他のエントリによって
識別される少なくとも1つの格納要素に対して独立して
いる、上記(23)に記載のプログラム格納装置。
【図面の簡単な説明】
【図1】本発明を使用する単一命令複数データ(SIM
D)デジタル信号プロセッサ(DSP)またはメディア
・プロセッサを示す略図である。
【図2】本発明による、8つのエントリ・ポインタ・ア
ドレス・ファイルと、512のエントリ・ベクトル・デ
ータ・ファイルと、4つの要素から成る1つの任意のサ
ブベクトルへのアクセスとを含む、16ビット要素のベ
クトル用のベクトル・データ・ファイルの一実施形態を
示す略図である。
【図3】本発明による、3つのベクトルを含むデータ・
レジスタ区分の例証としての例を示す略図である。
【図4】本発明による、1つのベクトルのためのデータ
・レジスタ区分の別の例証としての例を示す略図であ
る。
【図5】本発明による、新しいアドレス・マルチプレク
サならびにストライドおよびモジュロ・アドレス指定機
能を示す、アドレス増分器の代替的実施形態の略図であ
る。
【符号の説明】
100 プロセッサ 101 命令メモリ 103 ベクトル・レジスタ・ファイル 102 命令ユニット 104 ベクトル演算装置 105 データ・メモリ 151 書込みデータ・ポート 152 書込みデータ・ポート 153 読取りデータ・ポート 154 読取りデータ・ポート
───────────────────────────────────────────────────── フロントページの続き (72)発明者 アデム・ホケネク アメリカ合衆国10598 ニューヨーク州ヨ ークタウン・ハイツ フェアビュー・コー ト 3426 (72)発明者 デヴィッド・メルツァー アメリカ合衆国12590 ニューヨーク州ワ ッピンガーズ・フォールズ マロニー・ロ ード 268 (72)発明者 マヴァン・モウドギル アメリカ合衆国10562 ニューヨーク州オ シニング イーグル・ベイ・ドライブ 201

Claims (33)

    【特許請求の範囲】
  1. 【請求項1】複数のデータ要素をそれぞれに含むデータ
    ・ベクトルを使用する演算を処理するためのシステムに
    おいて、 データ・ベクトルのデータ要素を格納するための複数の
    格納要素を含むベクトル・データ・ファイルと、 バスによって前記ベクトル・データ・ファイルに結合さ
    れるポインタ配列であって、複数のエントリを含み、各
    エントリがベクトル・データ・ファイル内の少なくとも
    1つの格納要素を識別するようにしたポインタ配列とを
    含み、 前記データ・ベクトルの少なくとも1つのデータ要素を
    格納するための少なくとも1つの格納要素であって、前
    記ポインタ配列の少なくとも1つの特定のエントリに対
    し、その特定のエントリによって識別される少なくとも
    1つの格納要素が、前記ベクトル・データ・ファイルの
    任意の開始アドレスを有する、 システム。
  2. 【請求項2】ポインタ配列の任意のエントリに対し、そ
    の任意のエントリによって識別される少なくとも1つの
    格納要素が、ベクトル・データ・ファイルの任意の開始
    アドレスを含む、請求項1に記載のシステム。
  3. 【請求項3】前記ポインタ配列が、前記ベクトル・デー
    タ・ファイル内の少なくとも1つのデータ要素から読み
    出されるデータに基づいて更新される少なくとも1つの
    エントリを含む、請求項1に記載のシステム。
  4. 【請求項4】前記ポインタ配列が、前記ポインタ配列の
    少なくとも1つのエントリから読み出されるデータを増
    分することによって生成されるデータに基づいて更新さ
    れる少なくとも1つのエントリを含む、請求項1に記載
    のシステム。
  5. 【請求項5】前記ポインタ配列が、前記ポインタ配列の
    少なくとも1つのエントリから読み出されるデータに対
    し増分演算を実行することによって生成されるデータに
    基づいて更新される少なくとも1つのエントリを含む、
    請求項1に記載のシステム。
  6. 【請求項6】前記ポインタ配列が、同一論理演算の一部
    として更新される少なくとも2つのエントリを含む、請
    求項5に記載のシステム。
  7. 【請求項7】前記増分演算がモジュロ演算およびストラ
    イド演算の少なくとも1つを含む、請求項5に記載のシ
    ステム。
  8. 【請求項8】前記ポインタ配列の各エントリが、前記ベ
    クトル・データ・ファイル内の少なくとも1つの格納要
    素の開始アドレスを含む、請求項1に記載のシステム。
  9. 【請求項9】前記ベクトル・データ・ファイルの格納要
    素が行と列のマトリックスに論理的に編成され、前記ポ
    インタ配列の各エントリが前記ベクトル・データ・ファ
    イル内の少なくとも1つの要素の行と列を表わすアドレ
    スを含む、請求項1に記載のシステム。
  10. 【請求項10】前記ベクトル・ファイル・データの格納
    要素が行と列のマトリックスに論理編成され、前記ポイ
    ンタ配列の各配列がベクトル・データ・ファイル内の単
    一要素の行と列を表わすアドレスを含む、請求項1に記
    載のシステム。
  11. 【請求項11】前記ポインタ配列内の任意のエントリに
    対し、前記任意エントリによって識別される少なくとも
    1つの格納要素が、前記ポインタ配列の他のエントリに
    よって識別される少なくとも1つの格納要素に対して独
    立している、請求項1に記載のシステム。
  12. 【請求項12】複数のデータ要素をそれぞれに含むデー
    タ・ベクトルを使用する演算を処理するための方法にお
    いて、 データ・ベクトルのデータ要素を格納するための複数の
    格納要素を含むベクトル・データ・ファイルを提供する
    ステップと、 複数のエントリを有するポインタ配列を提供するステッ
    プであって、各エントリが前記データ・ベクトルの少な
    くとも1つのデータ要素を格納するための前記ベクトル
    ・データ・ファイル内の少なくとも1つの格納要素を識
    別し、前記ポインタ配列内の少なくとも1つの特定のエ
    ントリに対し、その特定のエントリによって識別される
    少なくとも1つの格納要素が前記ベクトル・データ・フ
    ァイルの任意の開始アドレスを有するように構成された
    ステップとを含む方法。
  13. 【請求項13】前記ポインタ配列内の任意のエントリに
    対し、前記任意のエントリによって識別される少なくと
    も1つの格納要素が前記ベクトル・データ・ファイルの
    任意の開始アドレスを有する、請求項12に記載の方
    法。
  14. 【請求項14】前記ポインタ配列のエントリの少なくと
    も1つを、前記ベクトル・データ・ファイル内の少なく
    とも1つのデータ要素から読み出されるデータに基づい
    て更新するステップをさらに含む、請求項12に記載の
    方法。
  15. 【請求項15】前記ポインタ配列のエントリの少なくと
    も1つを、前記ポインタ配列の少なくとも1つのエント
    リから読み出されるデータを増分することによって生成
    されるデータから読み出されるデータに基づいて更新す
    るステップをさらに含む、請求項12に記載の方法。
  16. 【請求項16】前記ポインタ配列のエントリの少なくと
    も1つを、前記ポインタ配列の少なくとも1つのエント
    リから読み出されるデータに増分演算を実行することに
    よって生成されるデータに基づいて更新するステップを
    さらに含む、請求項12に記載の方法。
  17. 【請求項17】前記ポインタ配列の少なくとも2つのエ
    ントリが同一論理演算の一部として更新される、請求項
    16に記載の方法。
  18. 【請求項18】前記増分演算が、前記ポインタ配列の少
    なくとも1つのエントリから読み出されるデータに対す
    るモジュロ演算およびストライド演算の少なくとも1つ
    をさらに含む、請求項16に記載の方法。
  19. 【請求項19】前記ポインタ配列の各エントリが、前記
    ベクトル・データ・ファイル内の少なくとも1つの格納
    要素の開始アドレスを格納する、請求項12に記載の方
    法。
  20. 【請求項20】前記ベクトル・データ・ファイルの格納
    要素が行と列のマトリックスに論理的に編成され、前記
    ポインタ配列の各エントリが、前記ベクトル・データ・
    ファイルの少なくとも1つの要素の行と列を表わすアド
    レスを格納する、請求項12に記載の方法。
  21. 【請求項21】ベクトル・ファイル・データの格納要素
    が行と列のマトリックスに論理的に編成され、前記ポイ
    ンタ配列の各配列が、前記ベクトル・データ・ファイル
    の単一要素の行と列を表わすアドレスを格納する、請求
    項12に記載の方法。
  22. 【請求項22】前記ポインタ配列の任意のエントリに対
    し、前記任意のエントリによって識別される少なくとも
    1つの格納要素が、前記ポインタ配列の他のエントリに
    よって識別される少なくとも1つの格納要素に対して独
    立している、請求項12に記載の方法。
  23. 【請求項23】複数のデータ要素をそれぞれに含むデー
    タ・ベクトルを使用する演算を処理するための方法ステ
    ップを実行するための、機械により実行可能な命令のプ
    ログラムを具体的に具現化する、機械により読取り可能
    なプログラム格納装置において、前記方法ステップが、
    データ・ベクトルのデータ要素を格納するための複数の
    格納要素を含むベクトル・データ・ファイルを提供する
    ステップと、 複数のエントリを有するポインタ配列を提供するステッ
    プであって、各エントリが前記データ・ベクトルの少な
    くとも1つのデータ要素を格納するための前記ベクトル
    ・データ・ファイル内の少なくとも1つの格納要素を識
    別し、前記ポインタ配列内の少なくとも1つの特定のエ
    ントリに対し、その特定のエントリによって識別される
    少なくとも1つの格納要素が前記ベクトル・データ・フ
    ァイルの任意の開始アドレスを有するように構成された
    ステップとを含んでいるプログラム格納装置。
  24. 【請求項24】前記ポインタ配列の任意のエントリに対
    し、前記任意のエントリによって識別される少なくとも
    1つの格納要素が、ベクトル・データ・ファイル内の任
    意の開始アドレスを有する、請求項23に記載のプログ
    ラム格納装置。
  25. 【請求項25】前記ポインタ配列のエントリの少なくと
    も1つを、前記ベクトル・データ・ファイルの少なくと
    も1つのデータ要素から読み出されるデータに基づいて
    更新するステップをさらに含む、請求項23に記載のプ
    ログラム格納装置。
  26. 【請求項26】前記ポインタ配列のエントリの少なくと
    も1つを、前記ポインタ配列の少なくとも1つのエント
    リから読み出されるデータを増分することによって生成
    されるデータから読み出されるデータに基づいて更新す
    るステップをさらに含む、請求項23に記載のプログラ
    ム格納装置。
  27. 【請求項27】前記ポインタ配列のエントリの少なくと
    も1つを、前記ポインタ配列の少なくとも1つのエント
    リから読み出されるデータに対して増分演算に実行する
    ことによって生成されるデータに基づいて更新するステ
    ップをさらに含む、請求項23に記載のプログラム格納
    装置。
  28. 【請求項28】前記ポインタ配列の少なくとも2つのエ
    ントリが同一論理演算の一部として更新される、請求項
    27に記載のプログラム格納装置。
  29. 【請求項29】前記増分演算がさらに、前記ポインタ配
    列の少なくとも1つのエントリから読み出されるデータ
    に対するモジュロ演算およびストライド演算の少なくと
    も1つを含む、請求項27に記載のプログラム格納装
    置。
  30. 【請求項30】前記ポインタ配列の各エントリが、前記
    ベクトル・データ・ファイル内の少なくとも1つの格納
    要素の開始アドレスを格納する、請求項23に記載のプ
    ログラム格納装置。
  31. 【請求項31】前記ベクトル・データ・ファイルの格納
    要素が行と列のマトリックスに論理的に編成され、前記
    ポインタ配列の各エントリが前記ベクトル・データ・フ
    ァイル内の少なくとも1つの要素の行と列を表わすアド
    レスを格納する、請求項23に記載のプログラム格納装
    置。
  32. 【請求項32】ベクトル・ファイル・データの格納要素
    が行と列のマトリックスに論理的に編成され、前記ポイ
    ンタ配列の各配列が、前記ベクトル・データ・ファイル
    内の単一要素の行と列を表わすアドレスを格納する、請
    求項23に記載のプログラム格納装置。
  33. 【請求項33】前記ポインタ配列の任意のエントリに対
    し、前記任意のエントリによって識別される少なくとも
    1つの格納要素が、前記ポインタ配列の他のエントリに
    よって識別される少なくとも1つの格納要素に対して独
    立している、請求項23に記載のプログラム格納装置。
JP2001051897A 2000-02-29 2001-02-27 演算処理システム、演算処理方法およびそのプログラム格納装置 Expired - Fee Related JP3940269B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/514497 2000-02-29
US09/514,497 US6665790B1 (en) 2000-02-29 2000-02-29 Vector register file with arbitrary vector addressing

Publications (2)

Publication Number Publication Date
JP2001273277A true JP2001273277A (ja) 2001-10-05
JP3940269B2 JP3940269B2 (ja) 2007-07-04

Family

ID=24047424

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001051897A Expired - Fee Related JP3940269B2 (ja) 2000-02-29 2001-02-27 演算処理システム、演算処理方法およびそのプログラム格納装置

Country Status (6)

Country Link
US (2) US6665790B1 (ja)
JP (1) JP3940269B2 (ja)
KR (1) KR100447294B1 (ja)
CA (1) CA2337784A1 (ja)
GB (1) GB2365588B (ja)
TW (1) TW484074B (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010531502A (ja) * 2007-06-26 2010-09-24 テールズ 並列プロセッサ用のアドレス指定装置
JP2016500877A (ja) * 2012-10-18 2016-01-14 クアルコム,インコーポレイテッド ベクトルレジスタファイルの素子バンクに対するアドレスラインの選択的な結合
JP2016511491A (ja) * 2013-03-15 2016-04-14 クアルコム,インコーポレイテッド 水平置換を用いるベクトル間接要素垂直アドレッシングモード
JP2017228213A (ja) * 2016-06-24 2017-12-28 富士通株式会社 演算処理装置及び演算処理装置の制御方法
JP2018097598A (ja) * 2016-12-13 2018-06-21 株式会社アクセル ディジタル信号処理装置
JP2020529658A (ja) * 2017-08-01 2020-10-08 エイアールエム リミテッド データ処理装置におけるデータ項目内のカウント要素

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6665790B1 (en) * 2000-02-29 2003-12-16 International Business Machines Corporation Vector register file with arbitrary vector addressing
US7010004B2 (en) * 2001-08-03 2006-03-07 Optibase Ltd. Method for multiplexing data for packet networks
US6931400B1 (en) 2001-08-21 2005-08-16 At&T Corp. Method and system for identifying representative trends using sketches
GB2382674B (en) * 2001-10-31 2005-11-16 Alphamosaic Ltd Data access in a processor
US20100274988A1 (en) * 2002-02-04 2010-10-28 Mimar Tibet Flexible vector modes of operation for SIMD processor
US20030221086A1 (en) * 2002-02-13 2003-11-27 Simovich Slobodan A. Configurable stream processor apparatus and methods
DE10206830B4 (de) * 2002-02-18 2004-10-14 Systemonic Ag Verfahren und Anordnung zur Zusammenführung von Daten aus parallelen Datenpfaden
US6915411B2 (en) * 2002-07-18 2005-07-05 International Business Machines Corporation SIMD processor with concurrent operation of vector pointer datapath and vector computation datapath
US7793084B1 (en) 2002-07-22 2010-09-07 Mimar Tibet Efficient handling of vector high-level language conditional constructs in a SIMD processor
US7580482B2 (en) 2003-02-19 2009-08-25 Endres Thomas J Joint, adaptive control of equalization, synchronization, and gain in a digital communications receiver
US7017028B2 (en) * 2003-03-14 2006-03-21 International Business Machines Corporation Apparatus and method for updating pointers for indirect and parallel register access
JP2004302647A (ja) * 2003-03-28 2004-10-28 Seiko Epson Corp ベクトルプロセッサおよびレジスタのアドレス指定方法
US20040236920A1 (en) * 2003-05-20 2004-11-25 Sheaffer Gad S. Methods and apparatus for gathering and scattering data associated with a single-instruction-multiple-data (SIMD) operation
US7313788B2 (en) * 2003-10-29 2007-12-25 International Business Machines Corporation Vectorization in a SIMdD DSP architecture
US7945760B1 (en) * 2004-04-01 2011-05-17 Altera Corporation Methods and apparatus for address translation functions
US7302627B1 (en) * 2004-04-05 2007-11-27 Mimar Tibet Apparatus for efficient LFSR calculation in a SIMD processor
US7873812B1 (en) 2004-04-05 2011-01-18 Tibet MIMAR Method and system for efficient matrix multiplication in a SIMD processor architecture
US7850400B2 (en) * 2004-11-25 2010-12-14 Freyssinet International (Stup) Stabilized soil structure and facing elements for its construction
US20060149938A1 (en) * 2004-12-29 2006-07-06 Hong Jiang Determining a register file region based at least in part on a value in an index register
TWI277876B (en) * 2005-10-28 2007-04-01 Via Tech Inc Data storage and transfer method
TW200739363A (en) * 2006-04-04 2007-10-16 Nat Univ Chung Cheng Flexible load and storage device for multimedia applications
DE602007011755D1 (de) 2006-05-16 2011-02-17 Nxp Bv Speicherarchitektur
US7788471B2 (en) * 2006-09-18 2010-08-31 Freescale Semiconductor, Inc. Data processor and methods thereof
US7441099B2 (en) * 2006-10-03 2008-10-21 Hong Kong Applied Science and Technology Research Institute Company Limited Configurable SIMD processor instruction specifying index to LUT storing information for different operation and memory location for each processing unit
US8156307B2 (en) * 2007-08-20 2012-04-10 Convey Computer Multi-processor system having at least one processor that comprises a dynamically reconfigurable instruction set
US8122229B2 (en) * 2007-09-12 2012-02-21 Convey Computer Dispatch mechanism for dispatching instructions from a host processor to a co-processor
US9710384B2 (en) 2008-01-04 2017-07-18 Micron Technology, Inc. Microprocessor architecture having alternative memory access paths
US8095735B2 (en) 2008-08-05 2012-01-10 Convey Computer Memory interleave for heterogeneous computing
US9015399B2 (en) 2007-08-20 2015-04-21 Convey Computer Multiple data channel memory module architecture
US8561037B2 (en) 2007-08-29 2013-10-15 Convey Computer Compiler for generating an executable comprising instructions for a plurality of different instruction sets
US10020037B2 (en) * 2007-12-10 2018-07-10 Intel Corporation Capacity register file
US8051226B2 (en) 2008-06-13 2011-11-01 Freescale Semiconductor, Inc. Circular buffer support in a single instruction multiple data (SIMD) data processor
US8755515B1 (en) 2008-09-29 2014-06-17 Wai Wu Parallel signal processing system and method
US20100115233A1 (en) * 2008-10-31 2010-05-06 Convey Computer Dynamically-selectable vector register partitioning
US8205066B2 (en) * 2008-10-31 2012-06-19 Convey Computer Dynamically configured coprocessor for different extended instruction set personality specific to application program with shared memory storing instructions invisibly dispatched from host processor
US8423745B1 (en) 2009-11-16 2013-04-16 Convey Computer Systems and methods for mapping a neighborhood of data to general registers of a processing element
US8635431B2 (en) 2010-12-08 2014-01-21 International Business Machines Corporation Vector gather buffer for multiple address vector loads
KR20120134549A (ko) 2011-06-02 2012-12-12 삼성전자주식회사 Simd 프로세서를 이용한 병렬 연산 처리 장치 및 방법
SE537423C2 (sv) 2011-12-20 2015-04-21 Mediatek Sweden Ab Digital signalprocessor och förfarande för adressering av ett minne i en digital signalprocessor
WO2013095616A1 (en) * 2011-12-23 2013-06-27 Intel Corporation Apparatus and method for selecting elements of a vector computation
US10430190B2 (en) 2012-06-07 2019-10-01 Micron Technology, Inc. Systems and methods for selectively controlling multithreaded execution of executable code segments
US9632777B2 (en) 2012-08-03 2017-04-25 International Business Machines Corporation Gather/scatter of multiple data elements with packed loading/storing into/from a register file entry
US9003160B2 (en) 2012-08-03 2015-04-07 International Business Machines Corporation Active buffered memory
US9569211B2 (en) 2012-08-03 2017-02-14 International Business Machines Corporation Predication in a vector processor
US9575755B2 (en) 2012-08-03 2017-02-21 International Business Machines Corporation Vector processing in an active memory device
US9594724B2 (en) 2012-08-09 2017-03-14 International Business Machines Corporation Vector register file
US8972782B2 (en) 2012-11-09 2015-03-03 International Business Machines Corporation Exposed-pipeline processing element with rollback
US10013253B2 (en) * 2014-12-23 2018-07-03 Intel Corporation Method and apparatus for performing a vector bit reversal
US9785437B2 (en) * 2014-12-23 2017-10-10 Intel Corporation Method and apparatus for performing a vector bit reversal and crossing
GB2540940B (en) * 2015-07-31 2018-01-03 Advanced Risc Mach Ltd An apparatus and method for transferring a plurality of data structures between memory and one or more vectors of data elements stored in a register bank
CN111580864B (zh) * 2016-01-20 2024-05-07 中科寒武纪科技股份有限公司 一种向量运算装置及运算方法
US10762164B2 (en) 2016-01-20 2020-09-01 Cambricon Technologies Corporation Limited Vector and matrix computing device
CN107315718B (zh) * 2016-04-26 2020-08-21 中科寒武纪科技股份有限公司 一种用于执行向量内积运算的装置和方法
US10776118B2 (en) * 2016-09-09 2020-09-15 International Business Machines Corporation Index based memory access using single instruction multiple data unit
KR102659495B1 (ko) 2016-12-02 2024-04-22 삼성전자주식회사 벡터 프로세서 및 그 제어 방법
US11175915B2 (en) 2018-10-10 2021-11-16 Micron Technology, Inc. Vector registers implemented in memory
US20210406016A1 (en) * 2020-06-27 2021-12-30 Intel Corporation Matrix data scatter and gather by row
US11782871B2 (en) 2021-04-27 2023-10-10 Microchip Technology Inc. Method and apparatus for desynchronizing execution in a vector processor
WO2022231683A1 (en) * 2021-04-27 2022-11-03 Microchip Technology Inc. Method and apparatus for gather/scatter operations in a vector processor

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6123275A (ja) 1984-07-11 1986-01-31 Nec Corp ベクトル処理装置
JPS62120574A (ja) 1985-11-20 1987-06-01 Fujitsu Ltd ベクトル処理装置
US4888679A (en) * 1988-01-11 1989-12-19 Digital Equipment Corporation Method and apparatus using a cache and main memory for both vector processing and scalar processing by prefetching cache blocks including vector data elements
JP2607689B2 (ja) * 1989-07-10 1997-05-07 株式会社日立製作所 ベクトル処理装置
JPH0444165A (ja) * 1990-06-12 1992-02-13 Nec Corp 対称連立一次方程式の求解方式
US5392443A (en) * 1991-03-19 1995-02-21 Hitachi, Ltd. Vector processor with a memory assigned with skewed addresses adapted for concurrent fetching of a number of vector elements belonging to the same vector data
US5493687A (en) 1991-07-08 1996-02-20 Seiko Epson Corporation RISC microprocessor architecture implementing multiple typed register sets
US5717947A (en) * 1993-03-31 1998-02-10 Motorola, Inc. Data processing system and method thereof
US5528550A (en) * 1993-05-28 1996-06-18 Texas Instruments Incorporated Apparatus, systems and methods for implementing memory embedded search arithmetic logic unit
US5669013A (en) * 1993-10-05 1997-09-16 Fujitsu Limited System for transferring M elements X times and transferring N elements one time for an array that is X*M+N long responsive to vector type instructions
US5689653A (en) * 1995-02-06 1997-11-18 Hewlett-Packard Company Vector memory operations
US6016395A (en) * 1996-10-18 2000-01-18 Samsung Electronics Co., Ltd. Programming a vector processor and parallel programming of an asymmetric dual multiprocessor comprised of a vector processor and a risc processor
US5933650A (en) 1997-10-09 1999-08-03 Mips Technologies, Inc. Alignment and ordering of vector elements for single instruction multiple data processing
US6288723B1 (en) 1998-04-01 2001-09-11 Intel Corporation Method and apparatus for converting data format to a graphics card
US6266759B1 (en) * 1998-12-14 2001-07-24 Cray, Inc. Register scoreboarding to support overlapped execution of vector memory reference instructions in a vector processor
US6308252B1 (en) 1999-02-04 2001-10-23 Kabushiki Kaisha Toshiba Processor method and apparatus for performing single operand operation and multiple parallel operand operation
US6665790B1 (en) * 2000-02-29 2003-12-16 International Business Machines Corporation Vector register file with arbitrary vector addressing

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010531502A (ja) * 2007-06-26 2010-09-24 テールズ 並列プロセッサ用のアドレス指定装置
JP2016500877A (ja) * 2012-10-18 2016-01-14 クアルコム,インコーポレイテッド ベクトルレジスタファイルの素子バンクに対するアドレスラインの選択的な結合
JP2016511491A (ja) * 2013-03-15 2016-04-14 クアルコム,インコーポレイテッド 水平置換を用いるベクトル間接要素垂直アドレッシングモード
JP2017228213A (ja) * 2016-06-24 2017-12-28 富士通株式会社 演算処理装置及び演算処理装置の制御方法
JP2018097598A (ja) * 2016-12-13 2018-06-21 株式会社アクセル ディジタル信号処理装置
JP2020529658A (ja) * 2017-08-01 2020-10-08 エイアールエム リミテッド データ処理装置におけるデータ項目内のカウント要素
JP7335225B2 (ja) 2017-08-01 2023-08-29 アーム・リミテッド データ処理装置におけるデータ項目内のカウント要素

Also Published As

Publication number Publication date
TW484074B (en) 2002-04-21
CA2337784A1 (en) 2001-08-29
JP3940269B2 (ja) 2007-07-04
US20040103262A1 (en) 2004-05-27
US6665790B1 (en) 2003-12-16
GB0103558D0 (en) 2001-03-28
US7467288B2 (en) 2008-12-16
GB2365588A (en) 2002-02-20
KR100447294B1 (ko) 2004-09-07
GB2365588B (en) 2004-08-25
KR20010085614A (ko) 2001-09-07

Similar Documents

Publication Publication Date Title
JP3940269B2 (ja) 演算処理システム、演算処理方法およびそのプログラム格納装置
US10719318B2 (en) Processor
US8078828B1 (en) Memory mapped register file
US5832290A (en) Apparatus, systems and method for improving memory bandwidth utilization in vector processing systems
US7386703B2 (en) Two dimensional addressing of a matrix-vector register array
EP0851343B1 (en) System for processing floating point operations
US6052766A (en) Pointer register indirectly addressing a second register in the processor core of a digital processor
US5881257A (en) Data processing system register control
US7308559B2 (en) Digital signal processor with cascaded SIMD organization
US5299321A (en) Parallel processing device to operate with parallel execute instructions
US7017028B2 (en) Apparatus and method for updating pointers for indirect and parallel register access
KR20110055629A (ko) 단일 명령 다중 데이터(simd)데이터 처리기에서 확장된 어드레싱 모드들의 제공
US5881259A (en) Input operand size and hi/low word selection control in data processing systems
JP3641031B2 (ja) 命令装置
US20110302394A1 (en) System and method for processing regular expressions using simd and parallel streams
JP3866513B2 (ja) データストリーミングのためのコンピュータのプロセッサ及び方法
US7441099B2 (en) Configurable SIMD processor instruction specifying index to LUT storing information for different operation and memory location for each processing unit
US5787454A (en) Recorder buffer with interleaving mechanism for accessing a multi-parted circular memory array
JPH06103062A (ja) コンピュータ処理装置に利用できるレジスタ数を増大させる装置
JP2002529847A (ja) ビットfifoを有するディジタル信号プロセッサ
WO2000068783A2 (en) Digital signal processor computation core
US20040044885A1 (en) Performing repeat string operations
US20120260062A1 (en) System and method for providing dynamic addressability of data elements in a register file with subword parallelism
JPH05143451A (ja) データ処理装置
JPH05173778A (ja) データ処理装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050201

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20050428

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20050509

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050801

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060214

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20060512

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20060530

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060809

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070330

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110406

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees