JP2008204028A - ベクトルデータ処理装置 - Google Patents

ベクトルデータ処理装置 Download PDF

Info

Publication number
JP2008204028A
JP2008204028A JP2007037404A JP2007037404A JP2008204028A JP 2008204028 A JP2008204028 A JP 2008204028A JP 2007037404 A JP2007037404 A JP 2007037404A JP 2007037404 A JP2007037404 A JP 2007037404A JP 2008204028 A JP2008204028 A JP 2008204028A
Authority
JP
Japan
Prior art keywords
register
vector
vector data
registers
data
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
JP2007037404A
Other languages
English (en)
Other versions
JP4347352B2 (ja
Inventor
Morohito Nakagome
師人 中込
Toshihiko Nakamura
俊彦 中村
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.)
NEC Computertechno Ltd
Original Assignee
NEC Computertechno Ltd
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 NEC Computertechno Ltd filed Critical NEC Computertechno Ltd
Priority to JP2007037404A priority Critical patent/JP4347352B2/ja
Publication of JP2008204028A publication Critical patent/JP2008204028A/ja
Application granted granted Critical
Publication of JP4347352B2 publication Critical patent/JP4347352B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Advance Control (AREA)
  • Complex Calculations (AREA)

Abstract

【課題】大量のベクトルデータに関しては現状の処理を行い、少量のベクトルデータに関してはより高速に処理することができるベクトルデータ処理装置を提供すること。
【解決手段】本発明のベクトルデータ処理装置では、演算結果の若番要素{c1、c2}を、ルーティングのためのクロスバ2に通過させない構成にすることにより、短い時間で結果格納レジスタ(11、5−2)に確定させている。また、若番要素{a1、a2}、{b1、b2})用に少量のマルチポート構成レジスタファイル11を用意し、また大容量{a3〜an}、{b3〜bn}用にはポート数の少ないRAMを用いて組み合わせてベクトルレジスタ5−1、5−2を構成することにより、少ないハードウェア量の増加でベクトルデータ処理装置を構成している。
【選択図】図2

Description

本発明は、計算機に使用されるベクトルデータ処理装置に関する。
計算機に使用されるベクトルデータ処理装置が知られている。図1は、従来のベクトルデータ処理装置の構成を示している。従来のベクトルデータ処理装置は、クロスバ入力レジスタ101−1、101−2と、クロスバ102と、クロスバ出力レジスタ103−1、103−2と、ライトデータレジスタ104−1、104−2と、ベクトルレジスタ105−1、105−2と、リードデータレジスタ106−1、106−2と、演算入力レジスタ107−1、107−2と、演算器108と、演算出力レジスタ109とを具備している。これらはクロックに応じて動作する。
クロスバ入力レジスタ101−1、101−2は、クロスバ102に接続されている。また、クロスバ入力レジスタ101−2は、他のリソースに接続されている。クロスバ102は、クロスバ出力レジスタ103−1、103−2に接続されている。クロスバ出力レジスタ103−1、103−2は、それぞれ、ライトデータレジスタ104−1、104−2に接続されている。ライトデータレジスタ104−1、104−2は、それぞれ、ベクトルレジスタ105−1、105−2に接続されている。ベクトルレジスタ105−1、105−2は、それぞれ、リードデータレジスタ106−1、106−2に接続されている。リードデータレジスタ106−1、106−2は、それぞれ、演算入力レジスタ107−1、107−2に接続されている。演算入力レジスタ107−1、107−2は、演算器108に接続されている。演算器108は、演算出力レジスタ109に接続されている。演算出力レジスタ109は、クロスバ入力レジスタ101−1に接続されている。
ベクトルレジスタ105−1は、1番目からn番目(nは3以上の整数)までのn個のベクトルデータA={a1、a2、a3、・・・、an}を格納する。
このベクトルレジスタ105−1は、例えばRAMにより構成される。ベクトルレジスタ105−1は、n個のベクトルデータA={a1、a2、a3、・・・、an}をライトアドレスWA1に応じて各要素位置に格納し、リードアドレスRA1に応じて、それらをリードデータレジスタ106−1、演算入力レジスタ107−1を介して演算器108に出力する。
ベクトルレジスタ5−2は、1番目からn番目までのn個のベクトルデータB{b1、b2、b3、・・・、bn}を格納する。
このベクトルレジスタ105−2は、例えばRAMにより構成される。ベクトルレジスタ105−2は、n個のベクトルデータB={b1、b2、b3、・・・、bn}をライトアドレスWA2に応じて各要素位置に格納し、リードアドレスRA2に応じて、それらをリードデータレジスタ106−2、演算入力レジスタ107−2を介して演算器108に出力する。
演算器108は、パイプライン構成を用い、ベクトルデータの入力から出力まで数マシンサイクルを必要とするが、マシンサイクル毎に異なったベクトルデータA={a1、a2、a3、・・・、an}、B={b1、b2、b3、・・・、bn}を入力し数マシンサイクル後にはマシンサイクル毎に演算結果(演算結果のベクトルデータ)C={c1、c2、c3、・・・、cn}を生成して出力するように構成されている。すなわち、異なる演算を並列して実行できるように、複数の演算部を備えている。
この演算器108は、演算入力レジスタ107−1の出力(n個のベクトルデータ{a1、a2、a3、・・・、an})を第一オペランドとして入力し、演算入力レジスタ107−2の出力(n個のベクトルデータ{b1、b2、b3、・・・、bn})を第二オペランドとして入力する。演算器108は、n個のベクトルデータ{a1、a2、a3、・・・、an}とn個のベクトルデータ{b1、b2、b3、・・・、bn}のそれぞれに対して順次に演算を施して、n個の演算結果{c1、c2、c3、・・・、cn}を生成し、順次に演算出力レジスタ109に出力する。
ここで、n個の演算結果{c1、c2、c3、・・・、cn}はベクトルレジスタ105−2に格納するよう命令で指定されているものとする。この場合、演算出力レジスタ109は、n個の演算結果{c1、c2、c3、・・・、cn}を、クロスバ入力レジスタ101−1を介してクロスバ102に出力する。
クロスバ102は、n個の演算結果{c1、c2、c3、・・・、cn}に対して、ベクトルレジスタ105−1、105−2のうちの、命令で指定されるベクトルレジスタ105−2に格納するためにルーティングを行い、n個の演算結果{c1、c2、c3、・・・、cn}を順次にクロスバ出力レジスタ103−2、ライトデータレジスタ104−2を介してベクトルレジスタ105−2に格納する。
このように、従来のベクトルデータ処理装置では、一度に多くのベクトルデータを格納(保持)できる複数のベクトルレジスタ105−1、105−2を用意し、また異なる演算を並列して実行できるようにするために演算器108に複数の演算部が演算リソースとして用意されていた。これらの演算器108の出力を命令で指定されたベクトルレジスタ(ベクトルレジスタ105−2)に格納するために、複数のベクトルレジスタ105−1、105−2と複数の演算部とに対応し、それぞれのベクトルデータをルーティングするクロスバ102が必要となっていた。
しかしながら、従来のベクトルデータ処理装置において、次のような課題がある。
まず、第1の課題について説明する。一度に処理を行うベクトル要素数(ベクトルデータ数)が多い場合には、クロスバ102でのルーティングにかかる時間は問題となることは少ない。一方、処理を行うベクトル要素数が少ない場合にはこのクロスバ102でのルーティング時間もオーバーヘッドとして性能上問題となる。
次に、第2の課題について説明する。ベクトルレジスタベクトルレジスタ105−1、105−2は多くの要素を格納する。このため、従来型の大容量を維持したRAMのまま、書き込み用のライトポートを増やしたり、読み出し用のリードポートを増やしたりすると、RAM自体の面積が増加する。その影響によりクロスバ102自身もそれに合わせて大きくなり、ルーティング時間が更に増加してしまう。
大量のベクトルデータに関しては現状の処理を行い、少量のベクトルデータに関してはより高速に処理することが望まれる。
ベクトルデータに関する技術について紹介する。
特開平9−282308号公報(特許文献1)には“ベクトル命令制御方式”が記載されている。ベクトル命令制御方式は、ベクトル型情報処理装置を構築するLSI(Large Scale Integration)チップに内蔵されるベクトルユニットを駆動し制御する。このベクトル命令制御方式は、ベクトルユニットを内蔵するLSIチップに、短いベクトル長のベクトル命令を実行するベクトルユニットと、スカラ命令を実行するスカラユニットと、前記ベクトルユニット及び前記スカラユニットの両者に含まれて共用される演算ユニットとを備えることを特徴としている。
特開平9−198374号公報(特許文献2)には“ベクトル処理装置”が記載されている。ベクトル処理装置は、複数のベクトルレジスタと少なくとも1つのベクトル演算器と少なくとも1つのデータ転送回路とを有するベクトル演算処理ユニットを複数備え、1つのベクトル命令を前記ベクトル演算処理ユニットで分割して処理する。このベクトル処理装置は、複数の異なるベクトル命令列の並列処理が可能か否かを判定する判定手段を備え、前記複数のベクトル演算処理ユニットを複数に分割し、分割された複数のベクトル演算処理ユニットにそれぞれ前記異なるベクトル命令列の1つを割り当てて、複数の異なるベクトル命令列を並列に処理することを特徴としている。
特開2001−273277号公報(特許文献3)には“演算処理システム”が記載されている。演算処理システムは、複数のデータ要素をそれぞれに含むデータ・ベクトルを使用する演算を処理する。この演算処理システムは、データ・ベクトルのデータ要素を格納するための複数の格納要素を含むベクトル・データ・ファイルと、バスによって前記ベクトル・データ・ファイルに結合されるポインタ配列であって、複数のエントリを含み、各エントリがベクトル・データ・ファイル内の少なくとも1つの格納要素を識別するようにしたポインタ配列とを含み、前記データ・ベクトルの少なくとも1つのデータ要素を格納するための少なくとも1つの格納要素であって、前記ポインタ配列の少なくとも1つの特定のエントリに対し、その特定のエントリによって識別される少なくとも1つの格納要素が、前記ベクトル・データ・ファイルの任意の開始アドレスを有している。
特開平5−233279号公報(特許文献4)には“情報処理装置が記載されている。情報処理装置は、複数のレジスタウインドにそれぞれ対応して定められた複数群のスカラレジスタを使用する第1種のプログラムと、複数のベクトルレジスタを使用する第2種のプログラムとを実行する。この情報処理装置は、該複数群のスカラレジスタと、該複数のベクトルレジスタを実現するための所定数のレジスタであって、それぞれ該複数群のスカラレジスタの一つとして使用され、かつ、該複数のベクトルレジスタをそれぞれ構成する複数群の要素レジスタの一つとしてそれぞれ使用される複数のレジスタを含むものと、実行中の第1種のプログラムが指定したレジスタウインド番号を保持する手段と、該保持手段に接続され、該第1種のプログラムの実行時に、その第1種のプログラムが発行した、少なくとも一つのレジスタを使用する命令に応答して、該所定数のレジスタの内、該保持されたレジスタウインド番号のレジスタウインドにおいてその命令で指定されたレジスタ番号のスカラレジスタとして使用すべき一つのレジスタを決定する第1の決定回路と、該第2種のプログラムの実行時に、該第2種のプログラムが発行した、少なくとも一つのレジスタを使用する命令に応答して、該所定数のレジスタの内、その命令で指定されたレジスタ番号を有するベクトルレジスタを構成する一群の要素レジスタとして使用すべき一群のレジスタを決定する第2の決定回路と、該第1、第2の決定回路に接続され、該第1の決定回路により決定された該一つのレジスタと、該第2の決定回路により決定された該一群のレジスタをアクセスするアクセス回路とを有している。
特開平1−191265号公報(特許文献5)には“ベクトル演算命令起動方式”が記載されている。ベクトル演算命令起動方式は、スカラユニットからの起動情報に基づいて、ベクトルユニットが動作を開始する。このベクトル演算命令起動方式は、該スカラユニットからのベクトルユニットへの上記起動時間をパイプラインで、ベクトル演算命令の実行ステージ以前に送出し、ベクトルユニットにおいては、該起動時間に基づいて、上記ベクトル演算命令の実行ステージ以前に、操作コードのデコード、及びベクトルレジスタからの最初の一要素のリードを完了させ、上記スカラユニットからのベクトル命令の実行ステージにおいて送出されるスタートコマンドを受信した時点で、該ベクトル演算を開始することを特徴としている。
特開平9−282308号公報 特開平9−198374号公報 特開2001−273277号公報 特開平5−233279号公報 特開平1−191265号公報
本発明の課題は、大量のベクトルデータに関しては現状の処理を行い、少量のベクトルデータに関してはより高速に処理することができるベクトルデータ処理装置を提供することにある。
以下に、発明を実施するための最良の形態・実施例で使用される符号を括弧付きで用いて、課題を解決するための手段を記載する。この符号は、特許請求の範囲の記載と発明を実施するための最良の形態・実施例の記載との対応を明らかにするために付加されたものであり、特許請求の範囲に記載されている発明の技術的範囲の解釈に用いてはならない。
本発明のベクトルデータ処理装置は、
1番目からn番目(nは3以上の整数)までのn個の第1ベクトルデータ({a1、a2、a3、・・・、an})のうちの、1番目からj番目(jは、j<(n−j)を満たす整数)までのj個の第1ベクトルデータ({a1、a2})が格納された第1若番用格納部(アドレス“0”、“1”)と、1番目からn番目までのn個の第2ベクトルデータ({b1、b2、b3、・・・、bn})のうちの、1番目からj番目までのj個の第2ベクトルデータ({b1、b2})が格納された第2若番用格納部(アドレス“2”、“3”)とを有するレジスタファイル(11)と、
前記j個の第1ベクトルデータ({a1、a2})以外の(n−j)個の第1ベクトルデータ({a3、・・・、an})が格納された第1ベクトルレジスタ(5−1)と、
前記j個の第2ベクトルデータ({b1、b2})以外の(n−j)個の第2ベクトルデータ({b3、・・・、bn})が格納された第2ベクトルレジスタ(5−2)と、
前記n個の第1ベクトルデータ({a1、a2、a3、・・・、an})と前記n個の第2ベクトルデータ({b1、b2、b3、・・・、bn})のそれぞれに対して順次に演算を施して、n個の演算結果({c1、c2、c3、・・・、cn})を生成する演算器(8)と、
前記n個の演算結果({c1、c2、c3、・・・、cn})のうちの、1番目からj番目までのj個の演算結果({c1、c2})を順次に前記レジスタファイル(11)に格納する若番用ライトデータレジスタ(10−2)と、
前記j個の演算結果({c1、c2})以外の(n−j)個の演算結果({c3、・・・、cn})を順次に前記第1及び第2ベクトルレジスタ(5−1、5−2)のうちの指定されたベクトルレジスタ(5−2)に格納するクロスバ(2)と
を具備している。
本発明のベクトルデータ処理装置は、
前記レジスタファイル(11)の前記第1若番用格納部(アドレス“0”、“1”)に格納された前記j個の第1ベクトルデータ({a1、a2})を順次に前記演算器(8)に出力し、その後に、前記第1ベクトルレジスタ(5−1)に格納された前記(n−j)個の第1ベクトルデータ({a3、・・・、an})を順次に前記演算器(8)に出力する第1選択回路(12−1)と、
前記レジスタファイル(11)の前記第2若番用格納部(アドレス“2”、“3”)に格納された前記j個の第2ベクトルデータ({b1、b2})を順次に前記演算器(8)に出力し、その後に、前記第2ベクトルレジスタ(5−2)に格納された前記(n−j)個の第2ベクトルデータ({b3、・・・、bn})を順次に前記演算器(8)に出力する第2選択回路(12−2)と
を更に具備している。
本発明のベクトルデータ処理装置は、
前記第1選択回路(12−1)と前記演算器(8)との間に接続された第1演算入力レジスタ(7−1)と、
前記第2選択回路(12−2)と前記演算器(8)との間に接続された第2演算入力レジスタ(7−2)と、
前記演算器(8)と前記クロスバ(2)との間に接続された演算出力レジスタ(9)と
を更に具備している。
本発明のベクトルデータ処理装置は、
前記演算出力レジスタ(9)と前記クロスバ(2)との間に前記第1、第2ベクトルレジスタ(5−1、5−2)に対応して接続された第1、第2クロスバ入力レジスタ(1−1、1−2)と、
前記クロスバ(2)と前記第1、第2ベクトルレジスタ(5−1、5−2)との間に接続された第1、第2クロスバ出力レジスタ(3−1、3−2)と、
前記第1、第2クロスバ出力レジスタ(3−1、3−2)と前記第1、第2ベクトルレジスタ(5−1、5−2)との間に接続された第1、第2ライトデータレジスタ(4−1、4−2)と
を更に具備している。
本発明のベクトルデータ処理装置では、演算結果の若番要素(演算結果{c1、c2})を、ルーティングのためのクロスバ(2)に通過させない構成にすることにより、短い時間で結果格納レジスタ(レジスタファイル(11)、ベクトルレジスタ(5−2))に確定させることができる。
また、本発明では、若番要素(ベクトルデータ{a1、a2}、{b1、b2})用に少量のマルチポート構成レジスタファイル(11)を用意し、また大容量(ベクトルデータ{a3〜an}、{b3〜bn})用にはポート数の少ないRAMを用いて組み合わせてベクトルレジスタ(5−1、5−2)を構成することにより、少ないハードウェア量の増加でベクトルデータ処理装置を構成できる。
このように、本発明のベクトルデータ処理装置は、大量のベクトルデータに関しては現状の処理を行い、少量のベクトルデータに関してはより高速に処理することができる。
以下に添付図面を参照して、本発明のベクトルデータ処理装置について詳細に説明する。
図2は、本発明のベクトルデータ処理装置の構成を示している。本発明のベクトルデータ処理装置は、クロスバ入力レジスタ1−1、1−2と、クロスバ2と、クロスバ出力レジスタ3−1、3−2と、ライトデータレジスタ4−1、4−2と、ベクトルレジスタ5−1、5−2と、リードデータレジスタ6−1、6−2と、演算入力レジスタ7−1、7−2と、演算器8と、演算出力レジスタ9と、若番用ライトデータレジスタ10−1、10−2(以下、ライトデータレジスタ10−1、10−2)と、レジスタファイル11と、選択回路12−1、12−2とを具備している。これらはクロックに応じて動作する。
クロスバ入力レジスタ1−1、1−2は、クロスバ2に接続されている。また、クロスバ入力レジスタ1−2は、他のリソース(例えば主記憶装置など)に接続されている。クロスバ2は、クロスバ出力レジスタ3−1、3−2に接続されている。クロスバ出力レジスタ3−1、3−2は、それぞれ、ライトデータレジスタ4−1、4−2に接続されている。ライトデータレジスタ4−1、4−2は、それぞれ、ベクトルレジスタ5−1、5−2に接続されている。ベクトルレジスタ5−1、5−2は、それぞれ、リードデータレジスタ6−1、6−2に接続されている。リードデータレジスタ6−1、6−2は、それぞれ、選択回路12−1、12−2に接続されている。
ライトデータレジスタ10−1、10−2は、レジスタファイル11に接続されている。また、ライトデータレジスタ10−1は、他のリソースに接続されている。レジスタファイル11は、選択回路12−1、12−2に接続されている。
選択回路12−1、12−2は、それぞれ、演算入力レジスタ7−1、7−2に接続されている。演算入力レジスタ7−1、7−2は、演算器8に接続されている。演算器8は、演算出力レジスタ9に接続されている。演算出力レジスタ9は、クロスバ入力レジスタ1−1とライトデータレジスタ10−2に接続されている。
レジスタファイル11は、第1若番用格納部と、第2若番用格納部とを有している。
第1若番用格納部は、1番目からn番目(nは3以上の整数)までのn個の第1ベクトルデータA={a1、a2、a3、・・・、an}のうちの、1番目からj番目(jは、j<(n−j)を満たす整数)までのj個の第1ベクトルデータを格納する。
第2若番用格納部は、1番目からn番目までのn個の第2ベクトルデータB{b1、b2、b3、・・・、bn}のうちの、1番目からj番目までのj個の第2ベクトルデータを格納する。
ここで、jを2とし、j個の第1ベクトルデータをベクトルデータ{a1、a2}とし、j個の第2ベクトルデータをベクトルデータ{b1、b2}とする。この場合、第1若番用格納部をレジスタファイル11のアドレス“0”、“1”とし、第2若番用格納部をレジスタファイル11のアドレス“2”、“3”とする。
このレジスタファイル11は、2リード・2ライト構成である。
書き込みに関しては、レジスタファイル11は、少量のベクトルデータ{a1、a2}についてはライトアドレスW1またはライトアドレスW2に応じてライトデータレジスタ10−1またはライトデータレジスタ10−2のレジスタデータを、レジスタファイル11のアドレス“0”と“1”に格納し、少量のベクトルデータ{b1、b2}についてはライトアドレスW1またはライトアドレスW2に応じてライトデータレジスタ10−1またはライトデータレジスタ10−2のレジスタデータを、レジスタファイル11のアドレス“2”と“3”に格納する。ここで、ライトデータレジスタ10−1のベクトルデータはライトアドレスW1により制御され、ライトデータレジスタ10−2のベクトルデータはライトアドレスW2により制御されるものとする。
読み出しに関しては、レジスタファイル11は、リードアドレスR1に応じて、アドレス“0”と“1”に格納されているベクトルデータを順次読み出して選択回路12−1へ供給し、リードアドレスR2に応じて、アドレス“2”と“3”に格納されているベクトルデータを順次読み出して選択回路12−2へ供給する。
ベクトルレジスタ5−1は、2個のベクトルデータ{a1、a2}以外の(n−2)個のベクトルデータ{a3、・・・、an}を格納する。
このベクトルレジスタ5−1は、1リード・1ライト構成のRAMによって構成されている。
書き込みに関しては、ベクトルレジスタ5−1は、(n−2)個のベクトルデータ{a3、a4、・・・、an}をライトアドレスWA1に応じて、ライトデータレジスタ4−1のベクトルデータをアドレス“0”〜“n−2”に順次格納する。
読み出しに関しては、ベクトルレジスタ5−1は、リードアドレスRA1に応じて、そのアドレス“0”〜“n−2”に格納された大量のベクトルデータ{a3、a4、・・・、an}を読み出してリードデータレジスタ6−1へ供給する。
ベクトルレジスタ5−2は、2個のベクトルデータ{b1、b2}以外の(n−2)個のベクトルデータ{b3、・・・、bn}を格納する。
このベクトルレジスタ5−2は、1リード・1ライト構成のRAMによって構成されている。
書き込みに関しては、ベクトルレジスタ5−2は、(n−2)個のベクトルデータ{b3、b4、・・・、bn}をライトアドレスWA2に応じて、ライトデータレジスタ4−2のベクトルデータをアドレス“0”〜“n−2”に順次格納する。
読み出しに関しては、ベクトルレジスタ5−2は、リードアドレスRA2に応じて、そのアドレス“0”〜“n−2”に格納された大量のベクトルデータ{b3、b4、・・・、bn}を読み出してリードデータレジスタ6−2へ供給する。
選択回路12−1は、レジスタファイル11の第1若番用格納部(アドレス“0”、“1”)の出力とリードデータレジスタ6−1の出力のうちの、レジスタファイル11の出力を優先的に選択する。即ち、選択回路12−1は、レジスタファイル11の第1若番用格納部(アドレス“0”、“1”)に格納された2個のベクトルデータ{a1、a2}を順次に演算入力レジスタ7−1を介して演算器8に出力し、その後に、リードデータレジスタ6−1に格納された(n−2)個のベクトルデータ{a3、・・・、an}を順次に演算入力レジスタ7−1を介して演算器8に出力する。
選択回路12−2は、レジスタファイル11の第2若番用格納部(アドレス“2”、“3”)の出力とリードデータレジスタ6−2の出力のうちの、レジスタファイル11の出力を優先的に選択する。即ち、選択回路12−2は、レジスタファイル11の第2若番用格納部(アドレス“2”、“3”)に格納された2個のベクトルデータ{b1、b2}を順次に演算入力レジスタ7−2を介して演算器8に出力し、その後に、リードデータレジスタ6−2に格納された(n−2)個のベクトルデータ{b3、・・・、bn}を順次に演算器8に出力する。
演算器8は、本実施例の場合、パイプライン構成を用い、ベクトルデータの入力から出力まで3マシンサイクルを必要とするが、マシンサイクル毎に異なったベクトルデータA={a1、a2、a3、・・・、an}、B={b1、b2、b3、・・・、bn}を入力し3マシンサイクル後にはマシンサイクル毎に演算結果(演算結果のベクトルデータ)C={c1、c2、c3、・・・、cn}を生成して出力するように構成されている。すなわち、異なる演算を並列して実行できるように、複数の演算部を備えている。
この演算器8は、演算入力レジスタ7−1の出力(n個のベクトルデータ{a1、a2、a3、・・・、an})を第一オペランドとして入力し、演算入力レジスタ7−2の出力(n個のベクトルデータ{b1、b2、b3、・・・、bn})を第二オペランドとして入力する。演算器8は、n個のベクトルデータ{a1、a2、a3、・・・、an}とn個のベクトルデータ{b1、b2、b3、・・・、bn}のそれぞれに対して順次に演算を施して、n個の演算結果{c1、c2、c3、・・・、cn}を生成し、順次に演算出力レジスタ9に出力する。
ここで、n個の演算結果{c1、c2、c3、・・・、cn}のうちの、1番目から2番目までの2個の演算結果{c1、c2}はレジスタファイル11に格納するよう命令で指定され、2個の演算結果{c1、c2}以外の(n−2)個の演算結果{c3、・・・、cn}はベクトルレジスタ5−2に格納するよう命令で指定されているものとする。この場合、演算出力レジスタ9は、2個の演算結果{c1、c2}を、ライトデータレジスタ10−2を介してレジスタファイル11に格納し、(n−2)個の演算結果{c3、・・・、cn}を、クロスバ入力レジスタ1−1を介してクロスバ2に出力する。
クロスバ2は、(n−2)個の演算結果{c3、・・・、cn}に対して、ベクトルレジスタ5−1、5−2のうちの、命令で指定されるベクトルレジスタ5−2に格納するためにルーティングを行い、(n−2)個の演算結果{c3、・・・、cn}を順次にクロスバ出力レジスタ3−2、ライトデータレジスタ4−2を介してベクトルレジスタ5−2に格納する。
本発明のベクトルデータ処理装置では、演算結果の若番要素(演算結果{c1、c2})を、ルーティングのためのクロスバ2に通過させない構成にすることにより、短い時間で結果格納レジスタ(レジスタファイル11、ベクトルレジスタ5−2)に確定させることができる。
また、本発明では、若番要素(ベクトルデータ{a1、a2}、{b1、b2})用に少量のマルチポート構成レジスタファイル11を用意し、また大容量(ベクトルデータ{a3〜an}、{b3〜bn})用にはポート数の少ないRAMを用いて組み合わせてベクトルレジスタ5−1、5−2を構成することにより、少ないハードウェア量の増加でベクトルデータ処理装置を構成できる。
以下、これについて詳細に説明する。
図3は、本発明のベクトルデータ処理装置の動作を示すタイミングチャートである。
本実施例において、それぞれ9個のベクトルデータA={a1、a2、a3、・・・、a9}とB={b1、b2、b3、・・・、b9}に演算を行い、9個の演算結果C={c1、c2、c3、・・・、c9}を算出する場合について説明する。演算に先立ち、各ベクトルデータは、ベクトルデータAについては、ベクトルデータa1、a2がそれぞれレジスタファイル11のアドレス“0”、“1”に格納され、ベクトルデータa3〜a9である7個のベクトルデータがそれぞれベクトルレジスタ5−1のアドレス“0”〜“6”に格納され、また、ベクトルデータBについては、ベクトルデータb1、b2がそれぞれレジスタファイル11のアドレス“2”、“3”に格納され、ベクトルデータb3〜b9である7個のベクトルデータがベクトルレジスタ5−2のアドレス“0”〜“6”に格納されているものとする。また、演算結果c1、c2はレジスタファイル11に格納するよう命令で指定され、演算結果c3〜c9はベクトルレジスタ5−2に格納するよう命令で指定されているものとする。
(クロックサイクル“1”において)
まず、レジスタファイル11は、その第一リードポートに対応したアドレスレジスタR1にアドレス“0”をセットし、その第二リードポートに対応したアドレスレジスタR2にアドレス“2”をセットする。レジスタファイル11は、それぞれ、リードアドレスR1、R2に応じて、自身のアドレス“0”、“2”に格納されているベクトルデータa1、b1を同時に読み出し、選択回路12−1、12−2に出力する。
選択回路12−1、12−2は、それぞれ、レジスタファイル11の第一、第二リードポート(ベクトルデータa1、b1)を選択し、次のクロックサイクルであるクロックサイクル“2”で、ベクトルデータa1、b1を演算入力レジスタ7−1、7−2に格納する。
(クロックサイクル“2”において)
演算器8は、この時刻に値が確定している演算入力レジスタ7−1の出力(すなわちベクトルデータa1)を第一オペランドとして入力し、演算入力レジスタ7−2の出力(すなわちベクトルデータb1)を第二オペランドとして入力して演算を開始する。上述のように、本実施例での演算器8は、演算処理を3つのステージに分割して処理するパイプライン構成を取っており、演算結果が演算出力レジスタ9に確定するまで3クロックサイクル必要としている。そのため、演算器8は、それぞれ演算入力レジスタ7−1、7−2に格納されているベクトルデータa1、b1に対して演算を施し、その演算結果c1を、3クロックサイクル後のクロックサイクル“5”で演算出力レジスタ9に格納する。
レジスタファイル11は、その第一リードポートに対応したアドレスレジスタR1にアドレス“1”をセットし、その第二リードポートに対応したアドレスレジスタR2にアドレス“3”をセットする。レジスタファイル11は、それぞれ、リードアドレスR1、R2に応じて、自身のアドレス“1”、“3”に格納されているベクトルデータa2、b2を同時に読み出し、選択回路12−1、12−2に出力する。
選択回路12−1、12−2は、それぞれ、レジスタファイル11の第一、第二リードポート(ベクトルデータa2、b2)を選択し、次のクロックサイクルであるクロックサイクル“3”で、ベクトルデータa2、b2を演算入力レジスタ7−1、7−2に格納する。
更に、ベクトルレジスタ5−1は、そのリードを制御するアドレスレジスタRA1にアドレス“0”をセットし、ベクトルレジスタ5−2は、そのリードを制御するアドレスレジスタRA2にアドレス“0”をセットする。ベクトルレジスタ5−1、5−2は、それぞれ、リードアドレスRA1、RA2に応じて、自身のアドレス“0”に格納されているベクトルデータa3、b3を読み出し、次のクロックサイクルであるクロックサイクル“3”で、それぞれリードデータレジスタ6−1、6−2に出力する。
(クロックサイクル“3”において)
演算器8は、それぞれ演算入力レジスタ7−1、7−2に格納されているベクトルデータa2、b2に対して演算を施し、その演算結果c2を、3クロックサイクル後のクロックサイクル“6”で演算出力レジスタ9に格納する。
選択回路12−1、12−2は、それぞれ、リードデータレジスタ6−1、6−2(ベクトルデータa3、b3)を選択し、次のクロックサイクルであるクロックサイクル“4”で、ベクトルデータa3、b3を演算入力レジスタ7−1、7−2に格納する。
ベクトルレジスタ5−1、5−2は、それぞれ、そのリードを制御するアドレスレジスタRA1、RA2にアドレス“1”をセットする。ベクトルレジスタ5−1、5−2は、それぞれ、リードアドレスRA1、RA2に応じて、自身のアドレス“1”に格納されているベクトルデータa4、b4を読み出し、次のクロックサイクルであるクロックサイクル“4”で、リードデータレジスタ6−1、6−2に出力する。
(クロックサイクル“4”において)
演算器8は、それぞれ演算入力レジスタ7−1、7−2に格納されているベクトルデータa3、b3に対して演算を施し、その演算結果c3を、3クロックサイクル後のクロックサイクル“7”で演算出力レジスタ9に格納する。
選択回路12−1、12−2は、それぞれ、リードデータレジスタ6−1、6−2(ベクトルデータa4、b4)を選択し、次のクロックサイクルであるクロックサイクル“5”で、ベクトルデータa4、b4を演算入力レジスタ7−1、7−2に格納する。
ベクトルレジスタ5−1、5−2は、それぞれ、そのリードを制御するアドレスレジスタRA1、RA2にアドレス“2”をセットする。ベクトルレジスタ5−1、5−2は、それぞれ、リードアドレスRA1、RA2に応じて、自身のアドレス“2”に格納されているベクトルデータa5、b5を読み出し、次のクロックサイクルであるクロックサイクル“5”で、リードデータレジスタ6−1、6−2に出力する。
(クロックサイクル“5”において)
演算器8は、それぞれ演算入力レジスタ7−1、7−2に格納されているベクトルデータa4、b4に対して演算を施し、その演算結果c4を、3クロックサイクル後のクロックサイクル“8”で演算出力レジスタ9に格納する。
選択回路12−1、12−2は、それぞれ、リードデータレジスタ6−1、6−2(ベクトルデータa5、b5)を選択し、次のクロックサイクルであるクロックサイクル“6”で、ベクトルデータa5、b5を演算入力レジスタ7−1、7−2に格納する。
ベクトルレジスタ5−1、5−2は、それぞれ、そのリードを制御するアドレスレジスタRA1、RA2にアドレス“3”をセットする。ベクトルレジスタ5−1、5−2は、それぞれ、リードアドレスRA1、RA2に応じて、自身のアドレス“3”に格納されているベクトルデータa6、b6を読み出し、次のクロックサイクルであるクロックサイクル“6”で、リードデータレジスタ6−1、6−2に出力する。
演算出力レジスタ9は、自身が格納している演算結果c1を、次のクロックサイクルであるクロックサイクル“6”でライトデータレジスタ10−2に格納する。
(クロックサイクル“6”において)
演算器8は、それぞれ演算入力レジスタ7−1、7−2に格納されているベクトルデータa5、b5に対して演算を施し、その演算結果c5を、3クロックサイクル後のクロックサイクル“9”で演算出力レジスタ9に格納する。
選択回路12−1、12−2は、それぞれ、リードデータレジスタ6−1、6−2(ベクトルデータa6、b6)を選択し、次のクロックサイクルであるクロックサイクル“7”で、ベクトルデータa6、b6を演算入力レジスタ7−1、7−2に格納する。
ベクトルレジスタ5−1、5−2は、それぞれ、そのリードを制御するアドレスレジスタRA1、RA2にアドレス“4”をセットする。ベクトルレジスタ5−1、5−2は、それぞれ、リードアドレスRA1、RA2に応じて、自身のアドレス“4”に格納されているベクトルデータa7、b7を読み出し、次のクロックサイクルであるクロックサイクル“7”で、リードデータレジスタ6−1、6−2に出力する。
演算出力レジスタ9は、自身が格納している演算結果c2を、次のクロックサイクルであるクロックサイクル“7”でライトデータレジスタ10−2に格納する。
レジスタファイル11は、その書き込みを制御するライトアドレスレジスタW2にアドレス“3”をセットする。レジスタファイル11は、ライトアドレスW2に応じて、ライトデータレジスタ10−2に格納されている演算結果c1を、次のクロックサイクルであるクロックサイクル“7”で自身のアドレス“3”に格納する。
(クロックサイクル“7”において)
演算器8は、それぞれ演算入力レジスタ7−1、7−2に格納されているベクトルデータa6、b6に対して演算を施し、その演算結果c6を、3クロックサイクル後のクロックサイクル“10”で演算出力レジスタ9に格納する。
選択回路12−1、12−2は、それぞれ、リードデータレジスタ6−1、6−2(ベクトルデータa7、b7)を選択し、次のクロックサイクルであるクロックサイクル“8”で、ベクトルデータa7、b7を演算入力レジスタ7−1、7−2に格納する。
ベクトルレジスタ5−1、5−2は、それぞれ、そのリードを制御するアドレスレジスタRA1、RA2にアドレス“5”をセットする。ベクトルレジスタ5−1、5−2は、それぞれ、リードアドレスRA1、RA2に応じて、自身のアドレス“5”に格納されているベクトルデータa8、b8を読み出し、次のクロックサイクルであるクロックサイクル“8”で、リードデータレジスタ6−1、6−2に出力する。
演算出力レジスタ9は、自身が格納している演算結果c3を、次のクロックサイクルであるクロックサイクル“8”でクロスバ入力レジスタ1−1に格納する。
レジスタファイル11は、自身の書き込みを制御するライトアドレスレジスタW2にアドレス“4”をセットする。レジスタファイル11は、ライトアドレスW2に応じて、ライトデータレジスタ10−2に格納されている演算結果c2を、次のクロックサイクルであるクロックサイクル“8”で自身のアドレス“4”に格納する。
(クロックサイクル“8”において)
演算器8は、それぞれ演算入力レジスタ7−1、7−2に格納されているベクトルデータa7、b7に対して演算を施し、その演算結果c7を、3クロックサイクル後のクロックサイクル“11”で演算出力レジスタ9に格納する。
選択回路12−1、12−2は、それぞれ、リードデータレジスタ6−1、6−2(ベクトルデータa8、b8)を選択し、次のクロックサイクルであるクロックサイクル“9”で、ベクトルデータa8、b8を演算入力レジスタ7−1、7−2に格納する。
ベクトルレジスタ5−1、5−2は、それぞれ、そのリードを制御するアドレスレジスタRA1、RA2にアドレス“6”をセットする。ベクトルレジスタ5−1、5−2は、それぞれ、リードアドレスRA1、RA2に応じて、自身のアドレス“6”に格納されているベクトルデータa9、b9を読み出し、次のクロックサイクルであるクロックサイクル“9”で、リードデータレジスタ6−1、6−2に出力する。
クロスバ2は、クロスバ入力レジスタ1−1に格納されている演算結果c3に対してルーティングし、次のクロックサイクルであるクロックサイクル“9”でクロスバ出力レジスタ3−2に格納する。
演算出力レジスタ9は、自身が格納している演算結果c4を、次のクロックサイクルであるクロックサイクル“9”でクロスバ入力レジスタ1−1に格納する。
(クロックサイクル“9”において)
演算器8は、それぞれ演算入力レジスタ7−1、7−2に格納されているベクトルデータa8、b8に対して演算を施し、その演算結果c8を、3クロックサイクル後のクロックサイクル“12”で演算出力レジスタ9に格納する。
選択回路12−1、12−2は、それぞれ、リードデータレジスタ6−1、6−2(ベクトルデータa9、b9)を選択し、次のクロックサイクルであるクロックサイクル“10”で、ベクトルデータa9、b9を演算入力レジスタ7−1、7−2に格納する。
クロスバ出力レジスタ3−2は、自身が格納している演算結果c3を、次のクロックサイクルであるクロックサイクル“10”でライトデータレジスタ4−2に格納する。
クロスバ2は、クロスバ入力レジスタ1−1に格納されている演算結果c4に対してルーティングし、次のクロックサイクルであるクロックサイクル“10”でクロスバ出力レジスタ3−2に格納する。
演算出力レジスタ9は、自身が格納している演算結果c5を、次のクロックサイクルであるクロックサイクル“10”でクロスバ入力レジスタ1−1に格納する。
(クロックサイクル“10”において)
演算器8は、それぞれ演算入力レジスタ7−1、7−2に格納されているベクトルデータa9、b9に対して演算を施し、その演算結果c9を、3クロックサイクル後のクロックサイクル“13”で演算出力レジスタ9に格納する。
ベクトルレジスタ5−2は、その書き込みを制御するアドレスレジスタWA2にアドレス“0”をセットする。ベクトルレジスタ5−2は、ライトアドレスWA2に応じて、ライトデータレジスタ4−2に格納されている演算結果c1を、次のクロックサイクルであるクロックサイクル“11”で自身のアドレス“0”に格納する。
クロスバ出力レジスタ3−2は、自身が格納している演算結果c4を、次のクロックサイクルであるクロックサイクル“11”でライトデータレジスタ4−2に格納する。
クロスバ2は、クロスバ入力レジスタ1−1に格納されている演算結果c5に対してルーティングし、次のクロックサイクルであるクロックサイクル“11”でクロスバ出力レジスタ3−2に格納する。
演算出力レジスタ9は、自身が格納している演算結果c6を、次のクロックサイクルであるクロックサイクル“11”でクロスバ入力レジスタ1−1に格納する。
(クロックサイクル“11”において)
ベクトルレジスタ5−2は、その書き込みを制御するアドレスレジスタWA2にアドレス“1”をセットする。ベクトルレジスタ5−2は、ライトアドレスWA2に応じて、ライトデータレジスタ4−2に格納されている演算結果c2を、次のクロックサイクルであるクロックサイクル“12”で自身のアドレス“1”に格納する。
クロスバ出力レジスタ3−2は、自身が格納している演算結果c5を、次のクロックサイクルであるクロックサイクル“12”でライトデータレジスタ4−2に格納する。
クロスバ2は、クロスバ入力レジスタ1−1に格納されている演算結果c6に対してルーティングし、次のクロックサイクルであるクロックサイクル“12”でクロスバ出力レジスタ3−2に格納する。
演算出力レジスタ9は、自身が格納している演算結果c7を、次のクロックサイクルであるクロックサイクル“12”でクロスバ入力レジスタ1−1に格納する。
(クロックサイクル“12”において)
ベクトルレジスタ5−2は、その書き込みを制御するアドレスレジスタWA2にアドレス“2”をセットする。ベクトルレジスタ5−2は、ライトアドレスWA2に応じて、ライトデータレジスタ4−2に格納されている演算結果c3を、次のクロックサイクルであるクロックサイクル“13”で自身のアドレス“2”に格納する。
クロスバ出力レジスタ3−2は、自身が格納している演算結果c6を、次のクロックサイクルであるクロックサイクル“13”でライトデータレジスタ4−2に格納する。
クロスバ2は、クロスバ入力レジスタ1−1に格納されている演算結果c7に対してルーティングし、次のクロックサイクルであるクロックサイクル“13”でクロスバ出力レジスタ3−2に格納する。
演算出力レジスタ9は、自身が格納している演算結果c8を、次のクロックサイクルであるクロックサイクル“13”でクロスバ入力レジスタ1−1に格納する。
(クロックサイクル“13”において)
ベクトルレジスタ5−2は、その書き込みを制御するアドレスレジスタWA2にアドレス“3”をセットする。ベクトルレジスタ5−2は、ライトアドレスWA2に応じて、ライトデータレジスタ4−2に格納されている演算結果c4を、次のクロックサイクルであるクロックサイクル“14”で自身のアドレス“3”に格納する。
クロスバ出力レジスタ3−2は、自身が格納している演算結果c7を、次のクロックサイクルであるクロックサイクル“14”でライトデータレジスタ4−2に格納する。
クロスバ2は、クロスバ入力レジスタ1−1に格納されている演算結果c8に対してルーティングし、次のクロックサイクルであるクロックサイクル“14”でクロスバ出力レジスタ3−2に格納する。
演算出力レジスタ9は、自身が格納している演算結果c9を、次のクロックサイクルであるクロックサイクル“14”でクロスバ入力レジスタ1−1に格納する。
(クロックサイクル“14”において)
ベクトルレジスタ5−2は、その書き込みを制御するアドレスレジスタWA2にアドレス“4”をセットする。ベクトルレジスタ5−2は、ライトアドレスWA2に応じて、ライトデータレジスタ4−2に格納されている演算結果c5を、次のクロックサイクルであるクロックサイクル“15”で自身のアドレス“4”に格納する。
クロスバ出力レジスタ3−2は、自身が格納している演算結果c8を、次のクロックサイクルであるクロックサイクル“15”でライトデータレジスタ4−2に格納する。
クロスバ2は、クロスバ入力レジスタ1−1に格納されている演算結果c9に対してルーティングし、次のクロックサイクルであるクロックサイクル“15”でクロスバ出力レジスタ3−2に格納する。
(クロックサイクル“15”において)
ベクトルレジスタ5−2は、その書き込みを制御するアドレスレジスタWA2にアドレス“5”をセットする。ベクトルレジスタ5−2は、ライトアドレスWA2に応じて、ライトデータレジスタ4−2に格納されている演算結果c6を、次のクロックサイクルであるクロックサイクル“16”で自身のアドレス“5”に格納する。
クロスバ出力レジスタ3−2は、自身が格納している演算結果c9を、次のクロックサイクルであるクロックサイクル“16”でライトデータレジスタ4−2に格納する。
(クロックサイクル“16”において)
ベクトルレジスタ5−2は、その書き込みを制御するアドレスレジスタWA2にアドレス“6”をセットする。ベクトルレジスタ5−2は、ライトアドレスWA2に応じて、ライトデータレジスタ4−2に格納されている演算結果c7を、次のクロックサイクルであるクロックサイクル“17”で自身のアドレス“6”に格納する。
以上の説明により、本発明のベクトルデータ処理装置は、次のような効果を奏する。
まず、第1の効果について説明する。本発明のベクトルデータ処理装置によれば、演算結果の若番要素(演算結果{c1、c2})を、ルーティングのためのクロスバ2に通過させない構成にしている。このため、短い時間で結果格納レジスタ(レジスタファイル11、ベクトルレジスタ5−2)に確定させることができる。
次に、第2の効果について説明する。本発明によれば、若番要素(ベクトルデータ{a1、a2}、{b1、b2})用に少量のマルチポート構成レジスタファイル11を用意し、また大容量(ベクトルデータ{a3〜a9}、{b3〜b9})用にはポート数の少ないRAMを用いて組み合わせてベクトルレジスタ5−1、5−2を構成している。このため、少ないハードウェア量の増加でベクトルデータ処理装置を構成できる。
このように、本発明のベクトルデータ処理装置は、大量のベクトルデータに関しては現状の処理を行い、少量のベクトルデータに関してはより高速に処理することができる。
図1は、従来のベクトルデータ処理装置の構成を示している。 図2は、本発明のベクトルデータ処理装置の構成を示している。 図3は、本発明のベクトルデータ処理装置の動作を示すタイミングチャートである。
符号の説明
1−1、1−2 クロスバ入力レジスタ、
2 クロスバ、
3−1、3−2 クロスバ出力レジスタ、
4−1、4−2 ライトデータレジスタ、
5−1、5−2 ベクトルレジスタ、
6−1、6−2 リードデータレジスタ、
7−1、7−2 演算入力レジスタ、
8 演算器、
9 演算出力レジスタ、
10−1、10−2 ライトデータレジスタ(若番用ライトデータレジスタ)、
11 レジスタファイル、
12−1、12−2 選択回路、
RA1、RA2 リードアドレス、
WA1、WA2 ライトアドレス、
R1、R2 リードアドレス、
W1、W2 ライトアドレス、
101−1、101−2 クロスバ入力レジスタ、
102 クロスバ、
103−1、103−2 クロスバ出力レジスタ、
104−1、104−2 ライトデータレジスタ、
105−1、105−2 ベクトルレジスタ、
106−1、106−2 リードデータレジスタ、
107−1、107−2 演算入力レジスタ、
108 演算器、
109 演算出力レジスタ、

Claims (4)

  1. 1番目からn番目(nは3以上の整数)までのn個の第1ベクトルデータのうちの、1番目からj番目(jは、j<(n−j)を満たす整数)までのj個の第1ベクトルデータが格納された第1若番用格納部と、1番目からn番目までのn個の第2ベクトルデータのうちの、1番目からj番目までのj個の第2ベクトルデータが格納された第2若番用格納部とを有するレジスタファイルと、
    前記j個の第1ベクトルデータ以外の(n−j)個の第1ベクトルデータが格納された第1ベクトルレジスタと、
    前記j個の第2ベクトルデータ以外の(n−j)個の第2ベクトルデータが格納された第2ベクトルレジスタと、
    前記n個の第1ベクトルデータと前記n個の第2ベクトルデータのそれぞれに対して順次に演算を施して、n個の演算結果を生成する演算器と、
    前記n個の演算結果のうちの、1番目からj番目までのj個の演算結果を順次に前記レジスタファイルに格納する若番用ライトデータレジスタと、
    前記j個の演算結果以外の(n−j)個の演算結果を順次に前記第1及び第2ベクトルレジスタのうちの指定されたベクトルレジスタに格納するクロスバと
    を具備するベクトルデータ処理装置。
  2. 請求項1に記載のベクトルデータ処理装置において、
    前記レジスタファイルの前記第1若番用格納部に格納された前記j個の第1ベクトルデータを順次に前記演算器に出力し、その後に、前記第1ベクトルレジスタに格納された前記(n−j)個の第1ベクトルデータを順次に前記演算器に出力する第1選択回路と、
    前記レジスタファイルの前記第2若番用格納部に格納された前記j個の第2ベクトルデータを順次に前記演算器に出力し、その後に、前記第2ベクトルレジスタに格納された前記(n−j)個の第2ベクトルデータを順次に前記演算器に出力する第2選択回路と
    を更に具備するベクトルデータ処理装置。
  3. 請求項2に記載のベクトルデータ処理装置において、
    前記第1選択回路と前記演算器との間に接続された第1演算入力レジスタと、
    前記第2選択回路と前記演算器との間に接続された第2演算入力レジスタと、
    前記演算器と前記クロスバとの間に接続された演算出力レジスタと
    を更に具備するベクトルデータ処理装置。
  4. 請求項3に記載のベクトルデータ処理装置において、
    前記演算出力レジスタと前記クロスバとの間に前記第1、第2ベクトルレジスタに対応して接続された第1、第2クロスバ入力レジスタと、
    前記クロスバと前記第1、第2ベクトルレジスタとの間に接続された第1、第2クロスバ出力レジスタと、
    前記第1、第2クロスバ出力レジスタと前記第1、第2ベクトルレジスタとの間に接続された第1、第2ライトデータレジスタと
    を更に具備するベクトルデータ処理装置。
JP2007037404A 2007-02-19 2007-02-19 ベクトルデータ処理装置 Active JP4347352B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007037404A JP4347352B2 (ja) 2007-02-19 2007-02-19 ベクトルデータ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007037404A JP4347352B2 (ja) 2007-02-19 2007-02-19 ベクトルデータ処理装置

Publications (2)

Publication Number Publication Date
JP2008204028A true JP2008204028A (ja) 2008-09-04
JP4347352B2 JP4347352B2 (ja) 2009-10-21

Family

ID=39781498

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007037404A Active JP4347352B2 (ja) 2007-02-19 2007-02-19 ベクトルデータ処理装置

Country Status (1)

Country Link
JP (1) JP4347352B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006117856A1 (ja) 2005-04-27 2006-11-09 Bando Kiko Co., Ltd. 往復動エンジン

Also Published As

Publication number Publication date
JP4347352B2 (ja) 2009-10-21

Similar Documents

Publication Publication Date Title
CN110135581B (zh) 用于执行人工神经网络反向运算的装置和方法
US8595280B2 (en) Apparatus and method for performing multiply-accumulate operations
US6269440B1 (en) Accelerating vector processing using plural sequencers to process multiple loop iterations simultaneously
JP2002333978A (ja) Vliw型プロセッサ
US20140047218A1 (en) Multi-stage register renaming using dependency removal
EP2352082B1 (en) Data processing device for performing a plurality of calculation processes in parallel
EP2132645B1 (en) A data transfer network and control apparatus for a system with an array of processing elements each either self- or common controlled
EP3475808B1 (en) Method and apparatus for performing simd gather and copy operations
WO2014202825A1 (en) Microprocessor apparatus
JPH0581119A (ja) レジスタ間接モードを用いる汎用メモリ・アクセス方式
CN112074810B (zh) 并行处理设备
JP4347352B2 (ja) ベクトルデータ処理装置
JP2004503872A (ja) 共同利用コンピュータシステム
JP6432348B2 (ja) 演算装置及び演算方法
JP2008102599A (ja) プロセッサ
US20230071941A1 (en) Parallel processing device
JP6307975B2 (ja) 演算処理装置及び演算処理装置の制御方法
WO2022063269A1 (en) Method and apparatus for configurable hardware accelerator
US11036510B2 (en) Processing merging predicated instruction with timing permitting previous value of destination register to be unavailable when the merging predicated instruction is at a given pipeline stage at which a processing result is determined
US20140281368A1 (en) Cycle sliced vectors and slot execution on a shared datapath
JP3461887B2 (ja) 可変長パイプライン制御装置
CN113703841A (zh) 一种寄存器数据读取的优化方法、装置及介质
JP3743155B2 (ja) パイプライン制御型計算機
JP2861234B2 (ja) 命令処理装置
JP2003345589A (ja) 情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080815

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090417

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090715

R150 Certificate of patent or registration of utility model

Ref document number: 4347352

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120724

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120724

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130724

Year of fee payment: 4

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350