JP3659252B2 - ベクトルデータのアドレス参照方法およびベクトルプロセッサ - Google Patents
ベクトルデータのアドレス参照方法およびベクトルプロセッサ Download PDFInfo
- Publication number
- JP3659252B2 JP3659252B2 JP2003203856A JP2003203856A JP3659252B2 JP 3659252 B2 JP3659252 B2 JP 3659252B2 JP 2003203856 A JP2003203856 A JP 2003203856A JP 2003203856 A JP2003203856 A JP 2003203856A JP 3659252 B2 JP3659252 B2 JP 3659252B2
- Authority
- JP
- Japan
- Prior art keywords
- address
- register
- index
- vector
- code
- 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 - Fee Related
Links
- 239000013598 vector Substances 0.000 title claims description 165
- 238000007430 reference method Methods 0.000 title claims description 12
- 230000004048 modification Effects 0.000 claims description 91
- 238000012986 modification Methods 0.000 claims description 91
- 238000000034 method Methods 0.000 claims description 14
- 238000010586 diagram Methods 0.000 description 28
- 230000006870 function Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 101100478290 Arabidopsis thaliana SR30 gene Proteins 0.000 description 1
- 238000002715 modification method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/355—Indexed addressing
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B62—LAND VEHICLES FOR TRAVELLING OTHERWISE THAN ON RAILS
- B62D—MOTOR VEHICLES; TRAILERS
- B62D5/00—Power-assisted or power-driven steering
- B62D5/06—Power-assisted or power-driven steering fluid, i.e. using a pressurised fluid for most or all the force required for steering a vehicle
- B62D5/08—Power-assisted or power-driven steering fluid, i.e. using a pressurised fluid for most or all the force required for steering a vehicle characterised by type of steering valve used
- B62D5/087—Sliding spool valves
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B62—LAND VEHICLES FOR TRAVELLING OTHERWISE THAN ON RAILS
- B62D—MOTOR VEHICLES; TRAILERS
- B62D5/00—Power-assisted or power-driven steering
- B62D5/06—Power-assisted or power-driven steering fluid, i.e. using a pressurised fluid for most or all the force required for steering a vehicle
- B62D5/07—Supply of pressurised fluid for steering also supplying other consumers ; control thereof
- B62D5/075—Supply of pressurised fluid for steering also supplying other consumers ; control thereof using priority valves
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/325—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for loops, e.g. loop detection or loop counter
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60Y—INDEXING SCHEME RELATING TO ASPECTS CROSS-CUTTING VEHICLE TECHNOLOGY
- B60Y2304/00—Optimising design; Manufacturing; Testing
- B60Y2304/05—Reducing production costs, e.g. by redesign
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60Y—INDEXING SCHEME RELATING TO ASPECTS CROSS-CUTTING VEHICLE TECHNOLOGY
- B60Y2304/00—Optimising design; Manufacturing; Testing
- B60Y2304/07—Facilitating assembling or mounting
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60Y—INDEXING SCHEME RELATING TO ASPECTS CROSS-CUTTING VEHICLE TECHNOLOGY
- B60Y2400/00—Special features of vehicle units
- B60Y2400/40—Actuators for moving a controlled member
- B60Y2400/404—Electro-magnetic actuators, e.g. with an electromagnet not rotating for moving a clutching member
- B60Y2400/4045—Electro-magnetic valves, i.e. solenoids
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60Y—INDEXING SCHEME RELATING TO ASPECTS CROSS-CUTTING VEHICLE TECHNOLOGY
- B60Y2410/00—Constructional features of vehicle sub-units
- B60Y2410/10—Housings
Description
【発明の属する技術分野】
本発明は、ベクトルデータの読み出しあるいは書き込みにおけるアドレス参照方法およびベクトルプロセッサに関する。
【0002】
【従来の技術】
従来、画像処理等において、不規則にメモリ上のデータの読み出しあるいは書き込むことが行われており、そのような処理を効率的に行うべく、種々の方法が提案されている。
例えば、画像処理において、1枚の画像データの中で、特定のブロックのデータをメモリからレジスタに格納する場合、ブロックの一行分の画素データをレジスタに格納した後、ブロックの次行の画素データを読み込むために、メモリ上の所定長離れたアドレスが参照される。
【0003】
このように、複雑なアドレス参照を行うための方法として、参考文献「スーパーコンピュータ」(オーム社、長島重夫、田中義一著)に記載された技術が知られている。
本文献においては、多次元配列データをメモリからベクトルレジスタに読み込んだり、ベクトルレジスタからメモリに書き込んだりする場合に、間接指標ベクトル参照を用いる技術が開示されている。
【0004】
間接指標ベクトル参照とは、メモリ上の参照するアドレス順序を格納したリスト(指標ベクトル)を用意しておき、そのリストを順に参照することによって、間接的にメモリ上の所定のアドレスを参照する方式である。
このような間接指標ベクトル参照を用いることにより、メモリ上の複雑なアドレス参照を行うことが可能となる。
【0005】
【非特許文献1】
長島重夫、田中義一著「スーパーコンピュータ」オーム社、p.35−41
【0006】
【発明が解決しようとする課題】
しかしながら、従来の技術においては、指標ベクトルをベクトルレジスタに格納しておく必要があるため、以下のような問題が生じていた。
第1に、指標ベクトルを用意しておく手順が必要となるため、プログラムのコードサイズや処理サイクル数が増加してしまう。
【0007】
第2に、用意しておく指標ベクトルが増加すると、指標ベクトルを格納しておくベクトルレジスタも増加することから、本来の演算処理に用いるレジスタリソースが不足し、演算効率の低下を招いてしまう。
本発明の課題は、間接指標ベクトル参照をより効率的に行うことである。
【0008】
【課題を解決するための手段】
以上の課題を解決するため、本発明は、
指標ベクトルを用いて、ベクトルデータの読み出しあるいは書き込みにおけるメモリアドレスの参照を行うアドレス参照方法であって、指標ベクトルの要素を格納する要素格納用レジスタ(例えば、図4のレジスタファイル40におけるインデックスベクトルを格納しているレジスタ)を論理的に複数領域(例えば、上位および下位の領域)に分割して取り扱い、各領域に所定のアドレス修飾用コード(例えば、発明の詳細な説明中のインデックスアドレスを示すコード)を格納し、前記ベクトルデータの読み出しあるいは書き込みのための命令コード中に、前記要素格納用レジスタの分割された複数領域のうち、いずれかを指定するための指定コードを含めておき、入力された命令コード中の前記指定コードによって指定された前記要素格納用レジスタの領域から前記アドレス修飾用コードを読み出し、その読み出した前記アドレス修飾用コードを指標ベクトルの要素として、メモリの参照アドレスを算出することを特徴としている。
【0009】
例えば、発明の実施の形態における命令コード内の“エクステンション”によって、インデックスレジスタにおいて論理的に分割されたいずれかの領域を選択する。そして、選択された領域のアドレス修飾用コードを指標ベクトル(インデックスベクトル)の要素として、所定のメモリアドレスが算出される。
【0010】
また、前記要素格納用レジスタの各領域は、前記指標ベクトルの参照基準アドレス(例えば、ベースアドレス)に対する相対アドレスを示す前記アドレス修飾用コードを格納し、前記要素格納用レジスタそれぞれの分割された領域のうち、前記命令コード中に含まれている前記指定コードによって指定された領域の前記アドレス修飾用コード(例えば、上位16ビットあるいは下位16ビット等)と、該基準アドレスとに基づいて、参照先のメモリアドレスであるターゲットアドレス(メモリ上の参照アドレス)を算出することを特徴としている。
【0011】
この方法は、発明の実施の形態におけるインデックス修飾アドレッシングに関連する。
また、要素格納用レジスタにおける分割された領域のいずれを選択するかは、命令コード中で指定したり、選択する領域を指定する指定パターンをレジスタ等に記憶しておき、記憶された指定パターンを命令コード中で指定するといったことが可能である。
【0012】
また、前記指標ベクトルを格納するためのベクトルレジスタの各要素レジスタを論理的に分割した各領域に、前記相対アドレスを示す前記アドレス修飾用コードを格納したことを特徴としている。
また、前記要素格納用レジスタの各領域は、前記指標ベクトルの参照基準アドレスに対する相対アドレスを示すアドレス修飾用コードを格納し、
前記要素格納用レジスタそれぞれの分割された領域のうち、前記命令コード中に含まれている前記指定コードによって指定された領域の前記アドレス修飾用コードと、該基準アドレスとに基づいて、参照先のメモリアドレスであるターゲットアドレスを算出し、算出されたターゲットアドレスを新たな参照基準アドレスとすることを特徴としている。
【0013】
この方法は、発明の実施の形態におけるポスト・レジスタ・アップデート・アドレッシングに関連する。
また、前記要素格納用レジスタとしてのスカラーレジスタを分割した各領域に、前記相対アドレスを示す前記アドレス修飾用コードを格納したことを特徴としている。
【0014】
また、前記ベクトルデータの読み出しあるいは書き込みに関するベクトル命令の実行中に、前記分割された各領域のうち、指定する領域を動的に変化させることを特徴としている。
また、前記要素格納用レジスタの前記分割された各領域のうち、指定する領域の組み合わせを示す複数の指定パターンを所定のレジスタ(例えば、図9のインデックススイッチレジスタ143)に格納し、前記命令コード中に含まれている前記指定コードによって該指定パターンのいずれかを指定し、その指定パターンによって指定された前記要素格納用レジスタの領域から前記アドレス修飾用コードを読み出し、その読み出したアドレス修飾用コードを指標ベクトルの要素として、メモリの参照アドレスを算出することを特徴としている。
【0015】
また、第1の指標ベクトルの要素が格納された前記要素格納用レジスタを含む第1のレジスタ(例えば、発明の実施の形態中の「インデックスレジスタ」)と、第2の指標ベクトルの要素が格納された前記要素格納用レジスタを含む第2のレジスタ(例えば、図9のサブインデックスレジスタ141,142)とを用意し、前記命令コード中に含まれている前記指定コードによって指定された、前記第1および第2のレジスタそれぞれにおける所定領域から前記アドレス修飾用コードを読み出し、その読み出したアドレス修飾用コードを指標ベクトルの要素として、メモリの参照アドレスを算出することを特徴としている。
【0016】
また、本発明は、
指標ベクトルを用いて、ベクトルデータの読み出しあるいは書き込みにおけるメモリアドレスの参照を行うベクトルプロセッサであって、指標ベクトルの要素を格納する要素格納用レジスタ(例えば、発明の実施の形態中の「インデックスレジスタ」の要素レジスタ)を備え、該要素格納用レジスタは、論理的に複数領域に分割された各領域に所定のアドレス修飾用コードが格納され、前記要素格納用レジスタの分割された複数領域のうち、いずれかを指定するための指定コードを含む前記ベクトルデータの読み出しあるいは書き込みのための命令コードが入力されると、その指定された領域の前記アドレス修飾用コードによって指定された前記要素格納用レジスタの領域から前記アドレス修飾用コードを読み出す読み出し手段(例えば、図5のインデックスレジスタ決定回路52およびアドレス演算回路54、図11のインデックスレジスタ決定回路152およびアドレス演算回路154)と、前記読み出し手段によって読み出された前記アドレス修飾用コードを指標ベクトルの要素として、メモリの参照アドレスを算出する参照アドレス算出手段(例えば、図5のアドレス演算回路54、図11のアドレス演算回路154)とを備えることを特徴としている。
【0017】
また、第1の指標ベクトルの要素が格納された前記要素格納用レジスタを含む第1のレジスタ(例えば、発明の実施の形態中の「インデックスレジスタ」)と、第2の指標ベクトルの要素が格納された前記要素格納用レジスタを含む第2のレジスタ(例えば、図9のサブインデックスレジスタ141,142)とを備え、前記読み出し手段は、前記命令コード中に含まれている前記指定コードによって指定された、前記第1および第2のレジスタそれぞれにおける所定領域から前記アドレス修飾用コードを読み出し、前記アドレス算出手段は、その読み出したアドレス修飾用コードを指標ベクトルの要素として、メモリの参照アドレスを算出することを特徴としている。
【0018】
ここで、第1のレジスタおよび第2のレジスタの要素格納用レジスタにおける分割された領域のいずれを選択するかは、命令コード中で指定したり、選択する領域を指定する指定パターンをレジスタ等に記憶しておき、記憶された指定パターンを命令コード中で指定するといったことが可能である。
本発明によれば、ベクトルレジスタの要素レジスタあるいはスカラーレジスタを論理的に複数の領域に分割して取り扱い、それぞれの領域に指標ベクトルの要素となる所定のアドレス修飾用コードを格納する。そして、ベクトルデータの読み出しあるいは書き込みのための命令コードにおいて、分割した領域のいずれかを指定し、その領域に格納されたアドレス修飾用コードを読み出して、指標ベクトルの要素とすることにより、メモリの参照アドレスを算出することとしている。
【0019】
したがって、1つの指標ベクトルを格納するレジスタの領域に、実質的に複数のインデックスベクトルを格納できることとなり、レジスタリソースを効率的に使用することが可能となる。
【0020】
【発明の実施の形態】
以下、図を参照して本発明に係るベクトルプロセッサの実施の形態を説明する。
(第1の実施の形態)
本発明に係るベクトルプロセッサは、指標ベクトルを格納するベクトルレジスタあるいはスカラーレジスタにおいて、ベクトルレジスタの要素レジスタあるいはスカラーレジスタを分割して使用し、アドレッシング機能を拡張している。
【0021】
したがって、初めに、このような機能を実現するための基本となる考え方について説明する。なお、本発明は、ベクトルプロセッサにおけるロード命令およびストア命令に関するものであるため、これらを中心に説明する。
ベクトルプロセッサにおいて、ロード命令あるいはストア命令のコードタイプには、アドレッシングモード(アドレス参照の方法)に応じて、以下の3種類が規定されている。
【0022】
図1は、ロード命令あるいはストア命令のフォーマットを示す図であり、(a)は、ベース相対アドレッシングに対応するLS0タイプ、(b)は、ポスト・オフセット・アップデート・アドレッシングに対応するLS1タイプ、(c)は、インデックス修飾アドレッシングおよびポスト・レジスタ・アップデート・アドレッシングに対応するLS2タイプを示している。
【0023】
図1において、LS0タイプはスカラーデータのロード命令およびストア命令に対応しており、LS1タイプおよびLS2タイプは、スカラーデータおよびベクトルデータのロード命令およびストア命令に対応している。
本発明は、ベクトルデータのロード命令およびストア命令を取り扱うものであり、インデックス修飾アドレッシングおよびポスト・レジスタ・アップデート・アドレッシングに関するものであるため、LS2タイプについて説明する。
【0024】
図1(c)において、LS2タイプのフォーマットには、オペコード(opecode)、デスティネーション(dst)、ベース(base)、リピートアマウント(rptamt)、エクステンション(extension)、インデックス(index)の6つのフィールドが含まれている。
オペコードは、命令の内容を示すフィールドであり、ロード命令あるいはストア命令のいずれかを示すコードが含まれている。
【0025】
デスティネーションは、ロードあるいはストアの対象となるデータが格納されたレジスタのアドレスを指定するフィールドである。即ち、ロード命令の場合、メモリから読み出したデータを書き込むレジスタのアドレスであり、ストア命令の場合、メモリに書き込むデータを読み出すレジスタのアドレスである。
ベースは、基準となるメモリアドレスが格納されたレジスタのアドレスを指定するフィールドである。
【0026】
リピートアマウントは、ベクトル命令における命令の繰り返し回数(要素データ数)を示すフィールドであり、命令繰り返し回数が“1”である場合はスカラー命令、“1”以外である場合はベクトル命令となる。
エクステンションは、機能拡張用に用意された5ビットのフィールドであり、本発明においては、後述のように、エクステンションを利用して、分割した要素レジスタのアドレスを指定する。
【0027】
インデックスは、ベースに示されたアドレスに対し、どのような修飾を施すか、即ち、ベースに示されたアドレスから参照するアドレス順序を示すフィールドである。本発明においては、後述のように、インデックスを利用して、アドレス修飾の拡張仕様を規定する。
なお、インデックスは、上述の指標ベクトルが格納されたベクトルレジスタあるいはスカラーレジスタ(以下、指標ベクトルが格納されたレジスタを「インデックスレジスタ」と言う。)を指定しており、インデックスを参照することによって、間接指標ベクトル参照が行われる。
【0028】
続いて、本発明におけるアドレス修飾の拡張仕様について具体的に説明する。図2は、インデックス修飾アドレッシングの場合において、エクステンションによって示されるコードと、アドレス修飾の拡張仕様との対応関係を示す図である。なお、図2においては、アドレス修飾の拡張仕様を説明するため、C言語に準じた記述スタイルのプログラミング例を併せて示しており、後述の図3においても同様である。
【0029】
図2において、エクステンションが“000”である場合、インデックスとして指定されたレジスタ(インデックスレジスタ)の内容(指標ベクトル)を符号付きで解釈し、アドレス修飾を行う。
具体的には、ベースに示されたレジスタの値を常に基準とし、その値にインデックスに示されるアドレスを順次加算することにより、アドレス修飾を行う。
【0030】
また、エクステンションが“001”である場合、インデックスとして指定されたレジスタの下位16ビットを符号付きで解釈し、アドレス修飾を行う。
また、エクステンションが“010”である場合、インデックスとして指定されたレジスタの上位16ビットを符号付きで解釈し、アドレス修飾を行う。
さらに、エクステンションが“011”である場合、インデックスとして指定されたレジスタの下位16ビットおよび上位16ビットをそれぞれ符号付きで解釈し、交互にアドレス修飾を行う。具体的には、ベクトル命令における繰り返しの実行順序が偶数である場合、下位16ビットによってアドレス修飾を行い、奇数である場合、上位16ビットによってアドレス修飾を行う。
【0031】
次に、ポスト・レジスタ・アップデート・アドレッシングの拡張仕様について説明する。
図3は、ポスト・レジスタ・アップデート・アドレッシングの場合において、エクステンションによって示されるコードと、アドレス修飾の拡張仕様との対応関係を示す図である。
【0032】
図3において、エクステンションが“000”である場合、インデックスとして指定されたレジスタの内容を符号付きで解釈し、アドレスの更新を行う。
具体的には、ベースに指定されたレジスタの値を所定のレジスタ(図3中のパラメータTの値を格納するレジスタ)に一旦格納し、そのレジスタの値を更新しながらアドレス修飾を行う。
【0033】
また、エクステンションが“001”である場合、インデックスとして指定されたレジスタの下位16ビットを符号付きで解釈し、アドレスの更新を行う。
また、エクステンションが“010”である場合、インデックスとして指定されたレジスタの上位16ビットを符号付きで解釈し、アドレスの更新を行う。
さらに、エクステンションが“011”である場合、インデックスとして指定されたレジスタの下位16ビットおよび上位16ビットをそれぞれ符号付きで解釈し、交互にアドレスの更新を行う。
【0034】
ここで、エクステンションが“000”〜“011”までの場合、ベクトル命令における命令の繰り返し回数の間、インデックスとして指定された内容に応じてアドレス修飾が行われ、繰り返し回数が終了した後、ベースに指定されたレジスタの値が更新される。
したがって、複数のロード命令あるいはストア命令を用いて、繰り返しロードあるいはストアを行う場合、ベースに指定されたレジスタが自動的に更新されるので、命令発行の都度、ベースのアドレスを別の命令で更新する必要がなく、直ちに命令の実行を行うことが可能である。
【0035】
また、図3において、エクステンションが“100”〜“111”の場合、エクステンションが“000”〜“011”の場合とそれぞれ同様にアドレスの更新を行う。ただし、エクステンションが“100”〜“111”の場合、命令の繰り返し回数が終了した後、ベースに指定されたレジスタの値を更新することなく命令の実行を終了する。
【0036】
次に、本実施の形態に係るベクトルプロセッサの構成を説明する。
図4は、本実施の形態に係るベクトルプロセッサ1の構成を示す図である。
図4において、ベクトルプロセッサ1は、メモリ10と、メモリ制御部20と、命令フェッチ部30と、レジスタファイル40と、ロードユニット50と、ストアユニット60と、演算ユニット70とを含んで構成される。
【0037】
メモリ10は、ベクトルプロセッサ1に与えられる命令コードおよび演算対象となるデータを記憶している。
メモリ制御部20は、メモリ10に対するアクセス、即ち、データの読み出しや書き込みを制御する。例えば、メモリ制御部20は、ロードユニット50あるいはストアユニット60によって指定されたメモリ10のアドレスからデータを読み出したり、メモリ10から読み出されたデータをレジスタファイル40に出力したりする。
【0038】
命令フェッチ部30は、メモリ制御部20を介して、メモリ10から命令コードをフェッチし、一時的に記憶する。
レジスタファイル40は、32個のスカラーレジスタSR0〜SR31と、8個の要素レジスタからなる8個のベクトルレジスタVR0〜VR7とを含んで構成され、メモリ10から読み出されたデータおよび演算結果を一時的に記憶する。なお、以下の説明において、ベクトルレジスタの要素レジスタおよびスカラーレジスタは、32ビットの幅を持つものとして説明する。
【0039】
ロードユニット50は、命令フェッチ部30に記憶された命令コードがロード命令である場合に、メモリ10から命令コードあるいはデータを読み出す処理を行う。
ストアユニット60は、命令フェッチ部30に記憶された命令コードがストア命令である場合に、メモリ10にデータを書き込む処理を行う。
【0040】
演算ユニット70は、命令フェッチ部30に記憶された命令コードが所定の演算命令である場合に、レジスタファイル40に記憶された所定データを対象として演算処理を行う。
ここで、ロードユニット50の構成について、詳細に説明する。
図5は、ロードユニット50の内部構成を示すブロック図である。
【0041】
図5において、ロードユニット50は、命令パイプライン制御部51と、インデックスレジスタ決定回路52と、デスティネーションレジスタ決定回路53と、アドレス演算回路54と、パイプラインレジスタ(PR)55,56と、レジスタ57とを含んで構成される。
命令パイプライン制御部51は、ロードユニット50全体を制御するものである。
【0042】
インデックスレジスタ決定回路52は、命令コードのインデックスフィールドに基づいて、指標ベクトルが格納されたインデックスレジスタを選択する信号(インデックスレジスタ選択信号)を生成する。
なお、インデックス修飾アドレッシングの場合、基準として指定されたアドレス(ベースアドレス)を保持し、そのアドレスに対する各要素の相対アドレスを指定することで参照アドレスを生成する。即ち、インデックス修飾アドレッシングの場合、要素ごとに相対アドレスを指定するため、インデックスレジスタとしてベクトルレジスタが指定される。
【0043】
一方、ポスト・レジスタ・アップデート・アドレッシングの場合、基準として指定されたアドレス(ベースアドレス)を参照アドレスとすると共に、そのアドレスに対する相対アドレスを指定してベースアドレスが更新される。そして、その更新されたベースアドレスに対する、次の要素の相対アドレスを指定することを繰り返して、参照アドレスを生成する。そのため、ポスト・レジスタ・アップデート・アドレッシングの場合、インデックスレジスタとしてスカラーレジスタとベクトルレジスタの双方が指定可能である。
【0044】
デスティネーションレジスタ決定回路53は、命令コードのデスティネーションフィールドおよびリピートアマウントフィールドに基づいて、デスティネーションアドレスを格納するためのデスティネーションレジスタを選択する信号(デスティネーションレジスタ選択信号)を生成する。
アドレス演算回路54は、命令パイプライン制御部51の指示に基づいて、レジスタファイル40から入力されるベースアドレスおよびインデックスアドレス(インデックスによって指定されるアドレス)から、ロード命令の対象となるメモリ10上のアドレス(ロードアドレス)を算出する。
【0045】
PR55,56は、命令フェッチ部30から入力されるデスティネーションフィールドおよびリピートアマウントフィールドのコードを一時的に記憶し、パイプライン処理において1サイクル遅延させて、デスティネーションレジスタ決定回路53に出力する。
レジスタ57は、命令フェッチ部30から入力されるベースフィールドのコードを一時的に記憶する。
【0046】
ここで、図5におけるアドレス演算回路54の構成について説明する。
図6は、アドレス演算回路54の構成例を示す図である。
図6において、アドレス演算回路54は、Iレジスタ54aと、Tレジスタ54bと、マルチプレクサ(MUX)54c〜54eと、加算器54fとを含んで構成される。
【0047】
Iレジスタ54aは、レジスタファイル40から入力されるインデックスアドレスを一時的に記憶する。
Tレジスタ54bは、MUX54cを介してレジスタファイル40から入力されるベースアドレスを一時的に記憶する。
MUX54cは、レジスタファイル40から入力されるベースアドレスと加算器54fの出力であるアップデート・ベースアドレスとのいずれかを切り替えて、Tレジスタ54bに出力する。
【0048】
MUX54dは、Iレジスタ54aから入力されるインデックスアドレスの上位あるいは下位のアドレスのいずれかを選択して加算器54fに出力する。
MUX54eは、Tレジスタ54bから入力されるベースアドレスと加算器54fの出力であるアップデート・ベースアドレスとのいずれかを切り替えて、ベクトル命令の各繰り返しにおいて、ロード命令を実行するターゲットアドレスとして出力する。
【0049】
加算器54fは、Tレジスタ54bから入力されるベースアドレスの値と、MUX54dから入力されるインデックスアドレスの上位あるいは下位のデータに基づくアドレスとを加算し、アップデート・ベースアドレス(更新されたベースアドレスの値)として出力する。
なお、図6において、MUX54c〜54eは命令パイプライン制御部51によって制御される。即ち、MUX54c〜54eには、入力されるデータのいずれかを選択するための信号(選択指示信号)が命令パイプライン制御部51から入力される。
【0050】
また、アドレス演算回路54は、インデックス修飾アドレッシングの場合およびポスト・アップデート・アドレッシングの場合それぞれに対応して、所定の動作を行う。
次に、動作を説明する。
初めに、図4を参照して、ベクトルプロセッサ1全体の動作について説明する。
【0051】
ベクトルプロセッサ1において処理が行われる場合、メモリ制御部20を介してメモリ10から命令フェッチ部30に命令コードが読み出される。
そして、ロードユニット50、ストアユニット60および演算ユニット70のそれぞれに、命令フェッチ部30から命令コードが出力される。
命令コードが入力されたロードユニット50、ストアユニット60および演算ユニット70は、その命令コードをデコードし、それぞれのユニットに対応する命令である場合にのみ、命令を実行する。
【0052】
ここでは、図5を参照しつつ、命令コードがロード命令である場合について説明する。
命令コードのオペコードがロード命令を示している場合(より詳細にはprefixコードが“000”である場合)、ロードユニット50が動作する。
まず、ロードユニット50は、命令フェッチ部30から受け取ったベースフィールドのコードを、ベースレジスタ・リード選択信号(データの読み出し時にベースレジスタを選択する信号)としてレジスタファイル40に出力する。ベースレジスタ・リード選択信号は、レジスタファイル40内のスカラーレジスタSR0〜SR31のいずれかをベースレジスタとして選択するための信号である。
【0053】
そして、ベースレジスタ・リード選択信号を受け取ったレジスタファイル40から、ベースレジスタ・リード選択信号によって指定されたレジスタに記憶されたベースアドレスの値がロードユニット50に入力される。
レジスタファイル40から入力されたベースアドレスの値は、アドレス演算回路54に入力される。
【0054】
また、インデックスレジスタ決定回路52は、命令フェッチ部30から入力されたインデックスフィールドのコードおよびリピートアマウントフィールドのコードを受け取る。そして、インデックスレジスタ決定回路52は、命令パイプライン制御部51からの指示に従って、命令コードがベクトル命令であるかスカラー命令であるかを判定し、ベクトル命令である場合、インデックスレジスタ選択信号を、リピートアマウントに示される要素データ数分、レジスタファイル40に順次出力する。このとき、インデックスレジスタ選択信号によって指定されたレジスタがベクトルレジスタである場合、指定されたベクトルレジスタ内の各要素レジスタを特定するための所定の選択信号が出力される。
【0055】
インデックスレジスタ選択信号が入力されたレジスタファイル40からは、インデックスレジスタ選択信号に示されるレジスタから、インデックスアドレスの値が、アドレス演算回路54に順次入力される。
インデックスアドレスの値を受け取ったアドレス演算回路54は、ベースアドレスの値と、インデックスアドレスの値とからロードアドレスを算出し、メモリ制御部20に出力する。なお、アドレス演算回路54の動作については後述する。
【0056】
また、命令フェッチ部30から入力されたデスティネーションフィールドのコードおよびリピートアマウントフィールドのコードは、パイプライン処理におけるタイミングを合わせるべく、PR55,56に一旦記憶された後、デスティネーションレジスタ決定回路53に入力される。
すると、デスティネーションレジスタ決定回路53は、デスティネーションレジスタ選択信号を、メモリ10からロードされたデータと同期させてレジスタファイル40に出力する。
【0057】
そして、レジスタファイル40において、メモリ10からロードされたデータが、所定のデスティネーションレジスタに順次記憶される。
さらに、ポスト・レジスタ・アップデート・アドレッシングの場合、アドレス演算回路54によって出力されるアップデート・ベースアドレスをベースレジスタに書き込む。
【0058】
したがって、ベースフィールドのコードをレジスタ57に保持しておき、レジスタ57によって出力されるコードをベースレジスタ・ライト選択信号(データの書き込み時にベースレジスタを選択する信号)として用い、ベースレジスタ・ライト信号(ベースレジスタに対する書き込み指示信号)が入力されることに対応して、ベースレジスタのデータが更新される。
【0059】
次に、アドレス演算回路54の動作について説明する。
まず、インデックス修飾アドレッシングの場合について説明する。
インデックス修飾アドレッシングの場合、サイクル“1”において、ベースアドレスの値が、MUX54cを介してTレジスタ54bに格納される。
一方、インデックスアドレスの値は、Iレジスタ54aに格納される。
【0060】
次いで、サイクル“2”において、Tレジスタ54bのベースアドレスの値と、Iレジスタ54aの上位あるいは下位半分のいずれかのアドレスの値とが、加算器54fによって加算され、MUX54eを介してターゲットアドレス(ロードアドレス)として出力される。
そして、第3サイクル以後は、ベースアドレスの値がTレジスタ54bに保持された状態のまま、新たにインデックスアドレスが入力され、加算器54fによって、ベースアドレスとの加算が順次行われる。
【0061】
このとき、エクステンションフィールドのコードが入力された命令パイプライン制御部51が、MUX54dを制御することにより、図2に示すインデックス修飾アドレッシングの拡張仕様が実現される。
即ち、エクステンションが“000”である場合、Iレジスタ54aに格納されたデータ(ここでは32ビット)が、そのまま加算器54fに入力される。
【0062】
一方、エクステンションが“001”である場合、Iレジスタ54aの下位16ビットを符号拡張し、32ビットとされたデータが加算器54fに入力される。
また、エクステンションが“010”である場合、Iレジスタ54aの上位16ビットを符号拡張し、32ビットとされたデータが加算器54fに入力される。
【0063】
さらに、エクステンションが“011”である場合、1サイクル毎に、Iレジスタ54aの下位16ビットと上位16ビットとを交互に選択し、32ビットに符号拡張されたデータが加算器54fに入力される。
続いて、ポスト・レジスタ・アップデート・アドレッシングの場合について説明する。
【0064】
ポスト・レジスタ・アップデート・アドレッシングの場合、サイクル“1”において、ベースアドレスの値が、MUX54cを介してTレジスタ54bに格納される。
一方、インデックスアドレスの値は、Iレジスタ54aに格納される。
次いで、サイクル“2”において、Tレジスタ54bのベースアドレスの値が、MUX54eを介して、そのままターゲットアドレス(ロードアドレス)として出力される。
【0065】
また、同時に、Tレジスタ54bのベースアドレスの値は、加算器54fにも出力され、Iレジスタ54aに記憶されているインデックスアドレスの値と加算される。
次いで、加算器54fの加算結果は、MUX54cを介して、Tレジスタ54bに格納され、Tレジスタ54bがベースアドレスとして記憶する値が更新される。
【0066】
そして、第3サイクル以後は、新たにインデックスアドレスが入力され、サイクル“1”,“2”と同様に、Tレジスタ54bの出力をターゲットアドレスとして出力すると共に、Tレジスタ54bがベースアドレスとして記憶する値が更新される。
その後、実行されているロード命令の最後の要素データのターゲットアドレスを出力するのと同一のタイミングで、加算器54fの出力がアップデート・ベースアドレスとしてレジスタファイル40に出力される。
【0067】
レジスタファイル40では、ベースレジスタ・ライト信号によって指示されたタイミングで、同時に入力されるベースレジスタ・ライト選択信号によって指定されたレジスタにアップデート・ベースアドレスを記憶する。
このとき、エクステンションフィールドのコードが入力された命令パイプライン制御部51が、MUX54dを制御することにより、図3に示すポスト・レジスタ・アップデート・アドレッシングの拡張仕様が実現される。
【0068】
即ち、エクステンションが“000”である場合、Iレジスタ54aに格納されたデータ(ここでは32ビット)が、そのまま加算器54fに入力される。
一方、エクステンションが“001”である場合、Iレジスタ54aの下位16ビットを符号拡張し、32ビットとされたデータが加算器54fに入力される。
【0069】
また、エクステンションが“010”である場合、Iレジスタ54aの上位16ビットを符号拡張し、32ビットとされたデータが加算器54fに入力される。
さらに、エクステンションが“011”である場合、1サイクル毎に、Iレジスタ54aの下位16ビットと上位16ビットとを交互に選択し、32ビットに符号拡張されたデータが加算器54fに入力される。
【0070】
また、エクステンションが“100”〜“111”までである場合、エクステンションが“000”〜“011”までの場合とそれぞれ同様の機能拡張を行うが、命令パイプライン制御部51がベースレジスタ・ライト信号を出力することなく、ベースレジスタの更新を行わないように制御する。
以上のように、本実施の形態に係るベクトルプロセッサ1は、インデックスによって指定されたベクトルレジスタの要素レジスタあるいはスカラーレジスタを複数の領域に分割し、分割した領域のいずれかを選択することによって、所定のインデックスベクトル(指標ベクトル)を取得することとしている。
【0071】
したがって、1つのベクトルレジスタに、実質的に複数のインデックスベクトルを格納できることとなり、レジスタリソースを効率的に使用することが可能となる。
また、インデックスベクトルを用意する手順としては、1つのインデックスベクトル(指標ベクトル)の場合と同様であるため、プログラムのコードサイズや処理サイクルがほぼ増加することがない。
【0072】
さらに、ポスト・レジスタ・アップデート・アドレッシングの場合、インデックスレジスタとしてスカラーレジスタが指定され、そのレジスタを複数の領域に分割し、分割した領域のいずれかを選択することによって、所定のインデックスベクトル(指標ベクトル)を取得することとしている。
そのため、インデックスレジスタとしてベクトルレジスタを用いる場合、ベクトルレジスタ全てにデータを格納した後でなければ後段の処理を開始できないのに対し、スカラーレジスタを使用できることから、スカラーレジスタにデータを格納した後、直ちに後段の処理が開始できる。
【0073】
したがって、インデックスベクトル(指標ベクトル)を用意する手順が軽減され、プログラムのコードサイズや処理サイクル数を減少させることが可能となる。
即ち、本発明によれば、間接指標ベクトル参照をより効率的に行うことが可能となる。
【0074】
なお、本実施の形態においては、アドレッシングの機能拡張のために、レジスタを上位および下位の2つの領域に分割して使用することとして説明したが、3つ以上の領域に分けて使用することも可能である。
さらに、本実施の形態においては、命令コードに含まれるエクステンションによって、その命令全体における要素レジスタのアドレスを固定的に指定する(単一のレジスタを指定したり、2つのレジスタを交互に指定する等)こととして説明したが、命令実行中に、要素レジスタの指定パターンを動的に変化させることも可能である。即ち、エクステンションのデータ長には限りがあり、複雑なパターンを指定できないことから、複雑な指定パターンを入力可能な手段を備えることにより、エクステンションによって指定可能なパターンより複雑なパターンを指定することが可能である。また、命令実行中に、要素レジスタを指定するための異なる指定パターンを入力したりすることも可能である。
(第2の実施の形態)
本実施の形態に係るベクトルプロセッサは、第1の実施の形態に係るベクトルプロセッサにおいて、図2および図3に示すアドレス修飾の拡張仕様をさらに発展させた仕様となっている。
【0075】
具体的には、命令コードにアドレッシングの機能拡張のためのコードを含め、インデックスレジスタの分割した領域を多様に指定することに加え、アドレッシングの機能拡張のための指標ベクトルを記憶する2つのレジスタ(以下、「サブインデックスレジスタA,B」と言う。)を指定対象としてさらに設けている。そして、命令コードのエクステンションのうち4ビットを使用して、アドレス修飾の方法を指定することにより、多様なアドレス修飾を可能としている。
【0076】
したがって、初めに、本実施の形態に係るベクトルプロセッサの拡張仕様について具体的に説明する。
図7は、インデックス修飾アドレッシングの場合において、エクステンションによって示されるコードと、アドレス修飾の拡張仕様との対応関係を示す図である。なお、図7においては、アドレス修飾の拡張仕様を説明するため、C言語に準じた記述スタイルのプログラミング例を併せて示しており、後述の図8においても同様である。
【0077】
図7において、エクステンションが“0000”である場合、インデックスとして指定されたレジスタの内容(指標ベクトル)を符号付きで解釈し、アドレス修飾を行う。
具体的には、ベースに示されたレジスタの値を常に基準とし、その値にインデックスに示されるアドレスを順次加算することにより、アドレス修飾を行う。
【0078】
また、エクステンションが“0100”である場合、インデックスとして指定されたレジスタの下位16ビットを符号付きで解釈し、アドレス修飾を行う。
さらに、エクステンションが“0110”である場合、インデックスとして指定されたレジスタの上位16ビットを符号付きで解釈し、アドレス修飾を行う。
次に、ポスト・レジスタ・アップデート・アドレッシングの拡張仕様について説明する。
【0079】
図8は、ポスト・レジスタ・アップデート・アドレッシングの場合において、エクステンションによって示されるコードと、アドレス修飾の拡張仕様との対応関係を示す図である。
図8において、エクステンションが“0000”、“0100”、“0101”、“0110”および“0111”である場合、図3における“000”、“001”、“101”、“010”、“110”とそれぞれ同様にアドレスの更新を行う。
【0080】
また、エクステンションが“1100”である場合、インデックスとして指定されたインデックスレジスタおよびサブインデックスレジスタAにおいて、下位16ビットあるいは上位16ビットのうち所定のデータを符号付きで解釈し、アドレスの更新を行う。このとき、所定のレジスタ(以下、「インデックススイッチレジスタ」と言う。)に記憶された指定パターンに基づいて、インデックスレジスタおよびサブインデックスレジスタAの上位16ビットあるいは下位16ビットのいずれかが指定される。
【0081】
具体的には、ベースに指定されたレジスタの値を所定のレジスタ(図8中のパラメータTの値を格納するレジスタ)に一旦格納し、そのレジスタの値を更新しながらアドレス修飾を行う。
また、エクステンションが“1110”の場合、インデックスとして指定されたインデックスレジスタおよびサブインデックスレジスタBにおいて、下位16ビットあるいは上位16ビットのうち所定のデータを符号付きで解釈し、アドレスの更新を行う。このとき、インデックススイッチレジスタに記憶された指定パターン(後述の「レジスタスイッチングパターン」)に基づいて、インデックスレジスタおよびサブインデックスレジスタBの上位16ビットあるいは下位16ビットのいずれかが指定される。
【0082】
ここで、エクステンションが“1100”および“1110”の場合、ベクトル命令における命令の繰り返し回数の間、インデックスとして指定された内容に応じてアドレス修飾が行われ、繰り返し回数が終了した後、ベースに指定されたレジスタの値が更新される。
したがって、複数のロード命令あるいはストア命令を用いて、繰り返しロードあるいはストアを行う場合、ベースに指定されたレジスタが自動的に更新されるので、命令発行の都度、ベースのアドレスを別の命令で更新する必要がなく、直ちに命令の実行を行うことが可能である。
【0083】
また、図8において、エクステンションが“1101”および“1111”の場合、エクステンションが“1100”および“1110”の場合とそれぞれ同様にアドレスの更新を行う。ただし、エクステンションが“1101”および“1111”の場合、命令の繰り返し回数が終了した後、ベースに指定されたレジスタの値を更新することなく命令の実行を終了する。
【0084】
次に、本実施の形態に係るベクトルプロセッサの構成を説明する。
図9は、本実施の形態に係るベクトルプロセッサ2の構成を示す図である。
図9において、ベクトルプロセッサ2の構成は、レジスタファイル140にサブインデックスレジスタ141,142とインデックススイッチレジスタ143とが含まれることを除き、第1の実施の形態におけるベクトルプロセッサ1の構成と同様である。したがって、サブインデックスレジスタ141,142およびインデックススイッチレジスタ143についてのみ説明し、他の部分については、図4において対応する部分を参照することとする。
【0085】
サブインデックスレジスタ141,142は、レジスタファイル140に含まれるスカラーレジスタあるいはベクトルレジスタ(ここでは、スカラーレジスタSR30,31とする)によって構成される。そして、サブインデックスレジスタ141,142には、所定の指標ベクトルがそれぞれ格納されている。
インデックススイッチレジスタ143は、レジスタファイル140に含まれるスカラーレジスタ(ここでは、スカラーレジスタSR29とする)によって構成され、インデックスレジスタおよびサブインデックスレジスタ141,142に含まれるいずれのデータをインデックスアドレスとして選択するかを示すデータ(以下、「レジスタスイッチングパターン」と言う。)を記憶している。
【0086】
レジスタスイッチングパターンは、具体的には、サブインデックスレジスタ141,142のいずれか一方における上位16ビットおよび下位16ビットと、後述する図11のIレジスタにおける上位16ビットおよび下位16ビットとを含む4つの領域のうち、アドレス修飾を行う要素ごとに、1つの領域を選択するためのデータである。
【0087】
図10は、レジスタスイッチングパターンのデータ構成を示す図である。
図10において、レジスタスイッチングパターンの上位半分には、サブインデックスレジスタ141が選択された場合のスイッチングパターンが格納され、下位半分には、サブインデックスレジスタ142が選択された場合のスイッチングパターンが格納されている。
【0088】
次に、図11は、ロードユニット150の内部構成を示すブロック図である。図11において、ロードユニット150の内部構成は、命令パイプライン制御部151およびアドレス演算回路154の機能を除き、第1の実施の形態におけるロードユニット50の内部構成と同様である。したがって、命令パイプライン制御部151およびアドレス演算回路154についてのみ説明し、他の部分については、図5において対応する部分の説明を参照することとする。
【0089】
命令パイプライン制御部151は、ロードユニット150全体を制御するものである。また、命令パイプライン制御部151は、命令コードに含まれるエクステンションフィールドのコードに応じて、サブインデックスレジスタ141,142のいずれかのサブインデックスアドレスをアドレス演算回路154(より詳細にはMUX154g)に選択させると共に、レジスタファイル140のインデックススイッチレジスタ143における上位あるいは下位半分のレジスタスイッチングパターンを後述するJレジスタ154hに記憶させる。
【0090】
アドレス演算回路154は、命令パイプライン制御部151の指示に基づいて、レジスタファイル140から入力される、ベースアドレスおよびインデックスアドレス(インデックスフィールドによって指定されたアドレス)と、サブインデックスレジスタ141,142に記憶されたアドレス(以下、「サブインデックスアドレス」と言う。)と、インデックススイッチレジスタ143に記憶されたレジスタスイッチングパターンとから、ロード命令の対象となるメモリ110上のアドレス(ロードアドレス)を算出する。
【0091】
続いて、図11におけるアドレス演算回路154の構成について説明する。
図12は、アドレス演算回路154の構成例を示す図である。
図12において、アドレス演算回路154の構成は、マルチプレクサ(MUX)154d,154gと、Jレジスタ154hと、シフタ154iとを除き、第1の実施の形態におけるアドレス演算回路54の構成と同様である。したがって、MUX154d,154gと、Jレジスタ154hと、シフタ154iとについてのみ説明し、他の部分については、図6を参照において対応する部分を参照することとする。
【0092】
MUX154dは、Iレジスタ154aから入力されるインデックスアドレスの上位あるいは下位のアドレスと、後述するMUX154gから入力されるサブインデックスアドレスの上位あるいは下位のアドレスのいずれかを選択して加算器154fに出力する。このとき、MUX154dは、後述するシフタ154iから入力される指示信号に基づいて、入力されたインデックスアドレスあるいはサブインデックスアドレスの上位あるいは下位のアドレスのいずれかを選択する。
【0093】
MUX154gは、サブインデックスレジスタ141,142から入力されるサブインデックスアドレスのうち、いずれかを選択してMUX54dに出力する。このとき、MUX154gは、命令パイプライン制御部151から入力される選択指示信号に基づいて、いずれかのサブインデックスアドレスを選択する。
Jレジスタ154hは、レジスタファイル140から入力されるインデックレジスタ選択データを一時的に記憶する。
【0094】
シフタ154iは、Jレジスタ154hからレジスタスイッチングパターンを受け取り、1サイクル毎に、レジスタスイッチングパターンに基づいて、MUX54dが選択するアドレスを指示するための信号を出力する。
次に、動作を説明する。
初めに、図9を参照して、ベクトルプロセッサ2全体の動作について説明する。
【0095】
ベクトルプロセッサ2において処理が行われる場合、メモリ制御部120を介してメモリ110から命令フェッチ部130に命令コードが読み出される。
そして、ロードユニット150、ストアユニット160および演算ユニット170のそれぞれに、命令フェッチ部130から命令コードが出力される。
命令コードが入力されたロードユニット150、ストアユニット160および演算ユニット170は、その命令コードをデコードし、それぞれのユニットに対応する命令である場合にのみ、命令を実行する。
【0096】
ここでは、図11を参照しつつ、命令コードがロード命令である場合について説明する。
命令コードのオペコードがロード命令を示している場合(より詳細にはprefixコードが“000”である場合)、ロードユニット150が動作する。
まず、ロードユニット150は、命令フェッチ部130から受け取ったベースフィールドのコードを、ベースレジスタ・リード選択信号(データの読み出し時にベースレジスタを選択する信号)としてレジスタファイル140に出力する。
【0097】
そして、ベースレジスタ・リード選択信号を受け取ったレジスタファイル140から、ベースレジスタ・リード選択信号によって指定されたレジスタに記憶されたベースアドレスの値がロードユニット150に入力される。
レジスタファイル140から入力されたベースアドレスの値は、アドレス演算回路154に入力される。
【0098】
また、インデックスレジスタ決定回路152は、命令フェッチ部130から入力されたインデックスフィールドのコードおよびリピートアマウントフィールドのコードを受け取る。そして、インデックスレジスタ決定回路152は、命令パイプライン制御部151からの指示に従って、命令コードがベクトル命令であるかスカラー命令であるかを判定し、ベクトル命令である場合、インデックスレジスタ選択信号を、リピートアマウントに示される要素データ数分、レジスタファイル140に順次出力する。このとき、インデックスレジスタ選択信号によって指定されたレジスタがベクトルレジスタである場合、指定されたベクトルレジスタ内の各要素レジスタを特定するための所定の選択信号が出力される。
【0099】
インデックスレジスタ選択信号が入力されたレジスタファイル140からは、インデックスレジスタ選択信号に示されるレジスタから、インデックスアドレスの値が、アドレス演算回路154に順次入力される。
また、命令パイプライン制御部151は、レジスタファイル140に、サブインデックスアドレス141,142およびインデックススイッチレジスタ143のアドレスを出力する。そして、インデックスアドレスの値がアドレス演算回路154に入力されるタイミングに合わせて、サブインデックスアドレスの値も、アドレス演算回路154に順次入力される。
【0100】
インデックスアドレスおよびサブインデックスアドレスの値を受け取ったアドレス演算回路154は、レジスタスイッチングパターンに基づいて、インデックスアドレスおよびサブインデックスアドレスのうち、所定の領域を選択し、ベースアドレスの値と、選択した領域に記憶されているアドレスの値とからロードアドレスを算出し、メモリ制御部120に出力する。なお、アドレス演算回路154の動作については後述する。
【0101】
また、命令フェッチ部130から入力されたデスティネーションフィールドのコードおよびリピートアマウントフィールドのコードは、パイプライン処理におけるタイミングを合わせるべく、PR155,156に一旦記憶された後、デスティネーションレジスタ決定回路153に入力される。
すると、デスティネーションレジスタ決定回路153は、デスティネーションレジスタ選択信号を、メモリ110からロードされたデータと同期させてレジスタファイル140に出力する。
【0102】
そして、レジスタファイル140において、メモリ110からロードされたデータが、所定のデスティネーションレジスタに順次記憶される。
さらに、ポスト・レジスタ・アップデート・アドレッシングの場合、アドレス演算回路154によって出力されるアップデート・ベースアドレスをベースレジスタに書き込む。
【0103】
したがって、ベースフィールドのコードをレジスタ157に保持しておき、レジスタ157によって出力されるコードをベースレジスタ・ライト選択信号(データの書き込み時にベースレジスタを選択する信号)として用い、ベースレジスタ・ライト信号(ベースレジスタに対する書き込み指示信号)が入力されることに対応して、ベースレジスタのデータが更新される。
【0104】
次に、アドレス演算回路154の動作について説明する。
まず、インデックス修飾アドレッシングの場合について説明する。
インデックス修飾アドレッシングの場合、サイクル“1”において、ベースアドレスの値が、MUX154cを介してTレジスタ154bに格納される。
一方、インデックスアドレスの値は、Iレジスタ154aに格納され、レジスタスイッチングパターンの上位あるいは下位半分のデータが、Jレジスタ154hに格納される。
【0105】
次いで、サイクル“2”において、Jレジスタ154hに格納されているレジスタスイッチングパターン(上位あるいは下位半分)における最下位2ビットがシフタ154iによってMUX154dに出力される。そして、MUX154dは、シフタ154iから入力された2ビットのデータに基づいて、MUX154gを介して入力されたサブインデックスアドレスの上位あるいは下位いずれかの16ビットのデータを選択し、加算器154fに出力する。また、Tレジスタ154bのベースアドレスの値と、MUX154dから出力されたアドレスの値とが、加算器154fによって加算され、MUX154eを介してターゲットアドレス(ロードアドレス)として出力される。
【0106】
そして、第3サイクル以後は、ベースアドレスの値がTレジスタ154bに保持された状態のまま、シフタ154iによって、Jレジスタ154hに格納されたレジスタスイッチングパターン(上位あるいは下位半分)において、下位から2ビットずつがMUX154dに順次出力され、加算器154fによって、MUX154dから出力されるアドレスが、ベースアドレスと順次加算される。
【0107】
このとき、エクステンションフィールドのコードが入力された命令パイプライン制御部151が、MUX154gを制御すると共に、エクステンションフィールドのコードに応じて、レジスタスイッチングパターンの上位あるいは下位半分のデータのいずれかを選択してJレジスタ154hに記憶させることにより、図7に示すインデックス修飾アドレッシングの拡張仕様が実現される。
【0108】
即ち、エクステンションが“0000”である場合、Iレジスタ154aに格納されたデータ(ここでは32ビット)がMUX154dによって選択され、そのまま加算器154fに入力される。
一方、エクステンションが“0100”である場合、Iレジスタ154aの下位16ビットを符号拡張し、32ビットとされたデータがMUX154dによって選択され、加算器154fに入力される。
【0109】
また、エクステンションが“0110”である場合、Iレジスタ154dの上位16ビットを符号拡張し、32ビットとされたデータがMUX154dによって選択され、加算器154fに入力される。
続いて、ポスト・レジスタ・アップデート・アドレッシングの場合について説明する。
【0110】
ポスト・レジスタ・アップデート・アドレッシングの場合、サイクル“1”において、ベースアドレスの値が、MUX154cを介してTレジスタ154bに格納される。
一方、インデックスアドレスの値は、Iレジスタ154aに格納され、レジスタスイッチングパターンの上位あるいは下位半分のデータが、命令パイプライン制御部151の指示に従ってJレジスタ154hに格納される。
【0111】
次いで、サイクル“2”において、Tレジスタ154bのベースアドレスの値が、MUX154eを介して、そのままターゲットアドレス(ロードアドレス)として出力される。
また、同時に、Tレジスタ154bのベースアドレスの値は、加算器154fにも出力され、MUX154dから出力されたアドレスの値と加算される。
【0112】
次いで、加算器154fの加算結果は、MUX154cを介して、Tレジスタ154bに格納され、Tレジスタ154bがベースアドレスとして記憶する値が更新される。
そして、第3サイクル以後は、シフタ154iによって、Jレジスタ154hに格納されたレジスタスイッチングパターン(上位あるいは下位半分)において、下位から2ビットずつがMUX154dに順次出力され、サイクル“1”,“2”と同様に、Tレジスタ154bの出力をターゲットアドレスとして出力すると共に、Tレジスタ154bがベースアドレスとして記憶する値が更新される。
【0113】
その後、実行されているロード命令の最後の要素データのターゲットアドレスを出力するのと同一のタイミングで、加算器154fの出力がアップデート・ベースアドレスとしてレジスタファイル140に出力される。
レジスタファイル140では、ベースレジスタ・ライト信号によって指示されたタイミングで、同時に入力されるベースレジスタ・ライト選択信号によって指定されたレジスタにアップデート・ベースアドレスを記憶する。
【0114】
このとき、エクステンションフィールドのコードが入力された命令パイプライン制御部151が、MUX154gを制御すると共に、エクステンションフィールドのコードに応じて、レジスタスイッチングパターンの上位あるいは下位半分のデータのいずれかを選択してJレジスタ154hに記憶させることにより、図8に示すポスト・レジスタ・アップデート・アドレッシングの拡張仕様が実現される。
【0115】
即ち、エクステンションが“0000”である場合、Iレジスタ154aに格納されたデータ(ここでは32ビット)がMUX154dによって選択され、そのまま加算器154fに入力される。
一方、エクステンションが“0100”である場合、Iレジスタ154aに格納されたデータの下位16ビットがMUX154dによって選択され、符号拡張して32ビットとされたデータが加算器154fに入力される。
【0116】
また、エクステンションが“0110”である場合、Iレジスタ154aに格納されたデータの上位16ビットがMUX154dによって選択され、符号拡張して32ビットとされたデータが加算器154fに入力される。
また、エクステンションが“1100”である場合、Iレジスタ154aに格納されたデータおよびサブインデックスレジスタ141に格納されたデータそれぞれにおいて、下位16ビットあるいは上位16ビットのうち、レジスタスイッチングパターンに示されるデータがMUX154dによって順次選択され、符号拡張して32ビットとされたデータが加算器154fに入力される。
【0117】
また、エクステンションが“1110”である場合、Iレジスタ154aに格納されたデータおよびサブインデックスレジスタ142に格納されたデータそれぞれにおいて、下位16ビットあるいは上位16ビットのうち、レジスタスイッチングパターンに示されるデータがMUX154dによって順次選択され、符号拡張して32ビットとされたデータが加算器154fに入力される。
【0118】
また、エクステンションが“0101”、“0111”、“1101”および“1111”である場合、エクステンションが“0100”、“0110”、“1100”および“1110”の場合とそれぞれ同様の機能拡張を行うが、命令パイプライン制御部151がベースレジスタ・ライト信号を出力することなく、ベースレジスタの更新を行わないように制御する。
【0119】
以上のように、本実施の形態に係るベクトルプロセッサ2は、インデックスによって指定されたベクトルレジスタの要素レジスタあるいはスカラーレジスタを複数の領域に分割すると共に、指標ベクトルを格納した他のレジスタ(サブインデックスレジスタ141,142)を用意し、このレジスタも同様に、複数の領域に分割して使用する。そして、インデックスによって指定されたレジスタおよび用意した他のレジスタにおいて、分割した領域のいずれかを選択することによって、所定のインデックスベクトル(指標ベクトル)を取得することとしている。
【0120】
したがって、少数のレジスタに、実質的に、より多くのインデックスベクトルを格納できることとなり、レジスタリソースを効率的に使用することが可能となる。
また、ベクトルプロセッサ2は、インデックススイッチレジスタ143を備えている。そして、インデックススイッチレジスタ143に記憶されたレジスタスイッチングパターンによって、アドレス修飾を行う要素毎に、インデックスレジスタおよびサブインデックスレジスタ141,142の上位あるいは下位の領域のいずれかを任意に指定することが可能である。
【0121】
したがって、1つの命令を実行する際に、インデックスレジスタおよびサブインデックスレジスタ141,142における領域のいずれを選択するかを動的に変化させることができ、領域を指定することによって得られるインデックスベクトルを、より多様なものとすることができる。
即ち、本発明によれば、間接指標ベクトル参照をより効率的に行うことが可能となる。
【0122】
なお、本実施の形態においては、レジスタスイッチングパターンをインデックススイッチレジスタ143に格納しておくこととして説明したが、レジスタスイッチングパターンを命令コードのインデックスフィールドに含めることとしてもよい。
図13は、レジスタスイッチングパターンを命令コードのインデックスフィールドに含める場合のデータ構成を示す図である。
【0123】
図13において、インデックスフィールドには、レジスタスイッチングパターンと、第1および第2のインデックスが格納されたそれぞれの領域(例えば、インデックスレジスタの上位および下位16ビット)を示すアドレスとが含まれている。
そして、アドレス修飾を行う8個の要素それぞれについて、2つのインデックスのいずれによって、アドレス修飾を行うかが任意に指定されている。
【0124】
また、この場合、図12のアドレス演算回路154の構成は、以下のようになる。
図14は、レジスタスイッチングパターンを命令コードのインデックスフィールドに含める場合のアドレス演算回路154の構成を示す図である。
図14においては、レジスタスイッチングパターンが命令コードに含まれていることから、インデックススイッチレジスタ143に相当するレジスタが設けられておらず、レジスタファイル140を介して、Iレジスタ154aにレジスタスイッチングパターンと、第1および第2のインデックスが格納されたそれぞれの領域のアドレスとが入力される。
【0125】
そして、入力されたレジスタスイッチングパターンは、シフタ154iに入力され、アドレス修飾を行う要素毎に、Iレジスタ154aに記憶された2つのインデックスのいずれかを選択するための信号をMUX154dに出力する。
このような構成とすることにより、インデックススイッチレジスタ143を設けることなく、領域を指定することによって得られるインデックスベクトルを、多様なものとすることが可能となる。
【図面の簡単な説明】
【図1】 ロード命令あるいはストア命令のフォーマットを示す図である。
【図2】 インデックス修飾アドレッシングの場合において、エクステンションによって示されるコードと、アドレス修飾の拡張仕様との対応関係を示す図である。
【図3】 ポスト・レジスタ・アップデート・アドレッシングの場合において、エクステンションによって示されるコードと、アドレス修飾の拡張仕様との対応関係を示す図である。
【図4】 本実施の形態に係るベクトルプロセッサ1の構成を示す図である。
【図5】 ロードユニット50の内部構成を示すブロック図である。
【図6】 アドレス演算回路54の構成例を示す図である。
【図7】 インデックス修飾アドレッシングの場合において、エクステンションによって示されるコードと、アドレス修飾の拡張仕様との対応関係を示す図である。
【図8】 ポスト・レジスタ・アップデート・アドレッシングの場合において、エクステンションによって示されるコードと、アドレス修飾の拡張仕様との対応関係を示す図である。
【図9】 本実施の形態に係るベクトルプロセッサ2の構成を示す図である。
【図10】 レジスタスイッチングパターンのデータ構成を示す図である。
【図11】 ロードユニット150の内部構成を示すブロック図である。
【図12】 アドレス演算回路154の構成例を示す図である。
【図13】 レジスタスイッチングパターンを命令コードのインデックスフィールドに含める場合のデータ構成を示す図である。
【図14】 レジスタスイッチングパターンを命令コードのインデックスフィールドに含める場合のアドレス演算回路154の構成を示す図である。
【符号の説明】
1,2 ベクトルプロセッサ、10,110 メモリ,20,120 メモリ制御部,30,130 命令フェッチ部,40,140 レジスタファイル,50,150 ロードユニット,51,151 命令パイプライン制御部,52,152 インデックスレジスタ決定回路,53,153 デスティネーションレジスタ決定回路,54,154 アドレス演算回路,54a,154a Iレジスタ,54b,154b Tレジスタ,54c〜54e,154c〜154e,154g MUX(マルチプレクサ),54f,154f 加算器,145h Jレジスタ,154i シフタ,55,56,155,156 PR(パイプラインレジスタ),57,157 レジスタ,60,160 ストアユニット,70,170 演算ユニット
Claims (10)
- 指標ベクトルを用いて、ベクトルデータの読み出しあるいは書き込みにおけるメモリアドレスの参照を行うアドレス参照方法であって、
指標ベクトルの要素を格納する要素格納用レジスタを論理的に複数領域に分割して取り扱い、各領域に所定のアドレス修飾用コードを格納し、前記ベクトルデータの読み出しあるいは書き込みのための命令コード中に、前記要素格納用レジスタの分割された複数領域のうち、いずれかを指定するための指定コードを含めておき、入力された命令コード中の前記指定コードによって指定された前記要素格納用レジスタの領域から前記アドレス修飾用コードを読み出し、その読み出した前記アドレス修飾用コードを指標ベクトルの要素として、メモリの参照アドレスを算出することを特徴とするベクトルデータのアドレス参照方法。 - 前記要素格納用レジスタの各領域は、前記指標ベクトルの参照基準アドレスに対する相対アドレスを示す前記アドレス修飾用コードを格納し、
前記要素格納用レジスタそれぞれの分割された領域のうち、前記命令コード中に含まれている前記指定コードによって指定された領域の前記アドレス修飾用コードと、該基準アドレスとに基づいて、参照先のメモリアドレスであるターゲットアドレスを算出することを特徴とする請求項1記載のベクトルデータのアドレス参照方法。 - 前記指標ベクトルを格納するためのベクトルレジスタの各要素レジスタを論理的に分割した各領域に、前記相対アドレスを示す前記アドレス修飾用コードを格納したことを特徴とする請求項2記載のベクトルデータのアドレス参照方法。
- 前記要素格納用レジスタの各領域は、前記指標ベクトルの参照基準アドレスに対する相対アドレスを示すアドレス修飾用コードを格納し、
前記要素格納用レジスタそれぞれの分割された領域のうち、前記命令コード中に含まれている前記指定コードによって指定された領域の前記アドレス修飾用コードと、該基準アドレスとに基づいて、参照先のメモリアドレスであるターゲットアドレスを算出し、算出されたターゲットアドレスを新たな参照基準アドレスとすることを特徴とする請求項1記載のベクトルデータのアドレス参照方法。 - 前記要素格納用レジスタとしてのスカラーレジスタを分割した各領域に、前記相対アドレスを示す前記アドレス修飾用コードを格納したことを特徴とする請求項4記載のベクトルデータのアドレス参照方法。
- 前記ベクトルデータの読み出しあるいは書き込みに関するベクトル命令の実行中に、前記分割された各領域のうち、指定する領域を動的に変化させることを特徴とする請求項1〜5のいずれかに記載のベクトルデータのアドレス参照方法。
- 前記要素格納用レジスタの前記分割された各領域のうち、指定する領域の組み合わせを示す複数の指定パターンを所定のレジスタに格納し、前記命令コード中に含まれている前記指定コードによって該指定パターンのいずれかを指定し、その指定パターンによって指定された前記要素格納用レジスタの領域から前記アドレス修飾用コードを読み出し、その読み出したアドレス修飾用コードを指標ベクトルの要素として、メモリの参照アドレスを算出することを特徴とする請求項1〜6のいずれかに記載のベクトルデータのアドレス参照方法。
- 第1の指標ベクトルの要素が格納された前記要素格納用レジスタを含む第1のレジスタと、第2の指標ベクトルの要素が格納された前記要素格納用レジスタを含む第2のレジスタとを用意し、前記命令コード中に含まれている前記指定コードによって指定された、前記第1および第2のレジスタそれぞれにおける所定領域から前記アドレス修飾用コードを読み出し、その読み出したアドレス修飾用コードを指標ベクトルの要素として、メモリの参照アドレスを算出することを特徴とする請求項1〜7のいずれかに記載のベクトルデータのアドレス参照方法。
- 指標ベクトルを用いて、ベクトルデータの読み出しあるいは書き込みにおけるメモリアドレスの参照を行うベクトルプロセッサであって、
指標ベクトルの要素を格納する要素格納用レジスタを備え、
該要素格納用レジスタは、論理的に複数領域に分割された各領域に所定のアドレス修飾用コードが格納され、
前記要素格納用レジスタの分割された複数領域のうち、いずれかを指定するための指定コードを含む前記ベクトルデータの読み出しあるいは書き込みのための命令コードが入力されると、その指定された領域の前記アドレス修飾用コードによって指定された前記要素格納用レジスタの領域から前記アドレス修飾用コードを読み出す読み出し手段と、
前記読み出し手段によって読み出された前記アドレス修飾用コードを指標ベクトルの要素として、メモリの参照アドレスを算出する参照アドレス算出手段と、
を備えることを特徴とするベクトルプロセッサ。 - 第1の指標ベクトルの要素が格納された前記要素格納用レジスタを含む第1のレジスタと、第2の指標ベクトルの要素が格納された前記要素格納用レジスタを含む第2のレジスタとを備え、
前記読み出し手段は、前記命令コード中に含まれている前記指定コードによって指定された、前記第1および第2のレジスタそれぞれにおける所定領域から前記アドレス修飾用コードを読み出し、
前記アドレス算出手段は、その読み出したアドレス修飾用コードを指標ベクトルの要素として、メモリの参照アドレスを算出することを特徴とする請求項9記載のベクトルプロセッサ。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003203856A JP3659252B2 (ja) | 2003-03-28 | 2003-07-30 | ベクトルデータのアドレス参照方法およびベクトルプロセッサ |
KR10-2004-0011855A KR100539112B1 (ko) | 2003-03-28 | 2004-02-23 | 벡터 데이터의 어드레스 참조 방법 및 벡터 프로세서 |
US10/801,642 US7093103B2 (en) | 2003-03-28 | 2004-03-17 | Method for referring to address of vector data and vector processor |
DE602004008818T DE602004008818T2 (de) | 2003-03-28 | 2004-03-24 | Verfahren zur Bezugnahme auf die Adresse von Vektordaten und Vektorprozessor |
EP04007009A EP1462931B1 (en) | 2003-03-28 | 2004-03-24 | Method for referring to address of vector data and vector processor |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003092381 | 2003-03-28 | ||
JP2003203856A JP3659252B2 (ja) | 2003-03-28 | 2003-07-30 | ベクトルデータのアドレス参照方法およびベクトルプロセッサ |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004355597A JP2004355597A (ja) | 2004-12-16 |
JP3659252B2 true JP3659252B2 (ja) | 2005-06-15 |
Family
ID=32829074
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003203856A Expired - Fee Related JP3659252B2 (ja) | 2003-03-28 | 2003-07-30 | ベクトルデータのアドレス参照方法およびベクトルプロセッサ |
Country Status (5)
Country | Link |
---|---|
US (1) | US7093103B2 (ja) |
EP (1) | EP1462931B1 (ja) |
JP (1) | JP3659252B2 (ja) |
KR (1) | KR100539112B1 (ja) |
DE (1) | DE602004008818T2 (ja) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7216218B2 (en) * | 2004-06-02 | 2007-05-08 | Broadcom Corporation | Microprocessor with high speed memory integrated in load/store unit to efficiently perform scatter and gather operations |
US7346763B2 (en) * | 2004-06-02 | 2008-03-18 | Broadcom Corporation | Processor instruction with repeated execution code |
US7747843B2 (en) * | 2004-06-02 | 2010-06-29 | Broadcom Corporation | Microprocessor with integrated high speed memory |
JP2010039503A (ja) * | 2008-07-31 | 2010-02-18 | Panasonic Corp | シリアルメモリ装置及び信号処理システム |
US8914619B2 (en) | 2010-06-22 | 2014-12-16 | International Business Machines Corporation | High-word facility for extending the number of general purpose registers available to instructions |
US9244684B2 (en) | 2013-03-15 | 2016-01-26 | Intel Corporation | Limited range vector memory access instructions, processors, methods, and systems |
US9830151B2 (en) * | 2014-12-23 | 2017-11-28 | Intel Corporation | Method and apparatus for vector index load and store |
US11327862B2 (en) | 2019-05-20 | 2022-05-10 | Micron Technology, Inc. | Multi-lane solutions for addressing vector elements using vector index registers |
US11507374B2 (en) | 2019-05-20 | 2022-11-22 | Micron Technology, Inc. | True/false vector index registers and methods of populating thereof |
US11403256B2 (en) | 2019-05-20 | 2022-08-02 | Micron Technology, Inc. | Conditional operations in a vector processor having true and false vector index registers |
US11340904B2 (en) | 2019-05-20 | 2022-05-24 | Micron Technology, Inc. | Vector index registers |
CN111782270B (zh) * | 2020-06-09 | 2023-12-19 | Oppo广东移动通信有限公司 | 一种数据处理方法及装置、存储介质 |
CN115794671B (zh) * | 2023-02-07 | 2023-04-14 | 成都申威科技有限责任公司 | 一种兼容向量数据的访存系统及方法 |
CN117312330B (zh) * | 2023-11-29 | 2024-02-09 | 中国人民解放军国防科技大学 | 基于便签式存储的向量数据聚集方法、装置及计算机设备 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3827031A (en) | 1973-03-19 | 1974-07-30 | Instr Inc | Element select/replace apparatus for a vector computing system |
JPS61211774A (ja) | 1985-03-18 | 1986-09-19 | Fujitsu Ltd | ベクトル処理装置 |
EP0227900B1 (en) | 1985-12-02 | 1993-03-31 | International Business Machines Corporation | Three address instruction data processing apparatus |
JP2598441B2 (ja) | 1987-12-28 | 1997-04-09 | 株式会社日立製作所 | ベクトルデータ処理装置 |
JP2625277B2 (ja) | 1991-05-20 | 1997-07-02 | 富士通株式会社 | メモリアクセス装置 |
JP3931577B2 (ja) | 2000-11-22 | 2007-06-20 | セイコーエプソン株式会社 | メモリの使用方法、及び演算処理装置 |
JP2003044272A (ja) | 2001-08-02 | 2003-02-14 | Seiko Epson Corp | プロセッサ、データタイプ指定方法、データロード方法、演算方法、データタイプ更新方法および命令プログラム |
JP2003101415A (ja) | 2001-09-19 | 2003-04-04 | Seiko Epson Corp | データ変換装置、データ生成装置、データ変換プログラム及びデータ生成プログラム、並びにデータ変換方法及びデータ生成方法 |
-
2003
- 2003-07-30 JP JP2003203856A patent/JP3659252B2/ja not_active Expired - Fee Related
-
2004
- 2004-02-23 KR KR10-2004-0011855A patent/KR100539112B1/ko not_active IP Right Cessation
- 2004-03-17 US US10/801,642 patent/US7093103B2/en not_active Expired - Fee Related
- 2004-03-24 EP EP04007009A patent/EP1462931B1/en not_active Expired - Fee Related
- 2004-03-24 DE DE602004008818T patent/DE602004008818T2/de not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP1462931A2 (en) | 2004-09-29 |
JP2004355597A (ja) | 2004-12-16 |
US20040250044A1 (en) | 2004-12-09 |
EP1462931B1 (en) | 2007-09-12 |
KR20040086529A (ko) | 2004-10-11 |
KR100539112B1 (ko) | 2005-12-26 |
DE602004008818T2 (de) | 2008-06-12 |
US7093103B2 (en) | 2006-08-15 |
DE602004008818D1 (de) | 2007-10-25 |
EP1462931A3 (en) | 2005-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3659252B2 (ja) | ベクトルデータのアドレス参照方法およびベクトルプロセッサ | |
JP5748935B2 (ja) | Simd命令をサポートするプログラマブルデータ処理回路 | |
US7689811B2 (en) | Method and apparatus for constant generation in SIMD processing | |
US7761693B2 (en) | Data processing apparatus and method for performing arithmetic operations in SIMD data processing | |
US20050198473A1 (en) | Multiplexing operations in SIMD processing | |
GB2409064A (en) | Performing in parallel a data processing operation on data elements | |
WO2005057417A2 (en) | Method and apparatus for performing packed data operations with element size control | |
US20050125624A1 (en) | Data processing apparatus and method for moving data between registers and memory | |
CN111782270A (zh) | 一种数据处理方法及装置、存储介质 | |
JP4686435B2 (ja) | 演算装置 | |
CN110914801B (zh) | 在数据处理设备中的向量交叉 | |
JP3753991B2 (ja) | プロセッサ、該プロセッサにおける演算命令処理方法及び演算制御方法 | |
JP2020502669A (ja) | ベクトル生成命令 | |
US10963251B2 (en) | Vector register access | |
JP2004302647A (ja) | ベクトルプロセッサおよびレジスタのアドレス指定方法 | |
JP2006502489A (ja) | 並行処理する機能ユニットを有するデータ処理装置 | |
JP2010134891A (ja) | 画像処理プロセッサ | |
EP1251425A2 (en) | Very long instruction word information processing device and system | |
JP6237241B2 (ja) | 処理装置 | |
JP3060917B2 (ja) | プロセッサ | |
JP2576589B2 (ja) | 仮想記憶アクセス制御方式 | |
JPH0922307A (ja) | シーケンサ | |
JP2004302772A (ja) | ベクトルプロセッサおよびアドレス指定方法 | |
JP2008107902A (ja) | マイクロプロセッサ | |
JP2003131873A (ja) | マイクロコンピュータ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20050222 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050307 |
|
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: 20080325 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090325 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090325 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100325 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100325 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110325 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120325 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120325 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130325 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140325 Year of fee payment: 9 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |