JP3982324B2 - ベクトル演算処理装置、ベクトル演算方法およびベクトル演算プログラム - Google Patents
ベクトル演算処理装置、ベクトル演算方法およびベクトル演算プログラム Download PDFInfo
- Publication number
- JP3982324B2 JP3982324B2 JP2002139487A JP2002139487A JP3982324B2 JP 3982324 B2 JP3982324 B2 JP 3982324B2 JP 2002139487 A JP2002139487 A JP 2002139487A JP 2002139487 A JP2002139487 A JP 2002139487A JP 3982324 B2 JP3982324 B2 JP 3982324B2
- Authority
- JP
- Japan
- Prior art keywords
- vector
- array data
- data
- shift
- read
- 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 - Lifetime
Links
Images
Description
【発明の属する技術分野】
本発明は、配列データを演算するベクトル演算処理装置の技術分野に属し、より詳細には、隣接した配列データの演算処理の技術分野に属する。
【0002】
【従来の技術】
近年、コンピュータ等によって演算処理を高速に実行するために、1命令で多数のオペランドを処理する、すなわち、レジスタを複数に分割して個々に独立した値を格納し、1クロックで複数の演算を実行するベクトル演算を行うベクトル演算処理装置が用いられ、差分法などで見られる隣接した配列要素同士、または一定間隔の配列要素同士の演算を高速に処理するようになっている。
【0003】
従来、このようなベクトル演算処理装置では、例えば、X(i)=A(i)±A(i−m)のような演算をベクトル処理する場合、右辺のA(i)とA(i−m)のそれぞれについてメモリなどの主記憶装置から2つのベクトルレジスタに各要素データ(配列データ)から構成されるベクトルデータを読み込み、演算を実行する第一の方法と、1個のベクトルレジスタに配列Aの(i−m)個目の要素から読出可能な要素までの各配列データからなるベクトルデータをメモリなどの主記憶装置から読み出し、このベクトルレジスタのベクトルデータをm個ずらして、他のベクトルレジスタにデータを移送してから、演算を実行する第二の方法が知られている。
【0004】
X(i)=A(i)+A(i−1) (i=2〜256) ・・・式(1)
例えば、上記式(1)の演算を行う場合、第1の方法としては、第1のベクトルレジスタにA(2)〜A(256)のベクトルデータの配列データを、第2のベクトルレジスタにA(1)〜A(255)のベクトルデータの配列データをそれぞれ読み出すとともに、ベクトル加算処理を実行し、当該結果をX(2)〜X(256)に書き込むようになっている。
【0005】
また、第2の方法では、第1のベクトルレジスタにA(1)〜A(256)の256個のベクトルデータの配列データをメモリから読み出すとともに、当該第1のベクトルレジスタから第2のベクトルレジスタにA(1)〜A(256)の255個の配列データを移送し、第1のベクトルレジスタのA(1)〜A(255)と第2のベクトルレジスタ11のA(2)〜A(256)の255個の各配列データを対象にベクトル加算を実行して、当該結果をX(2)〜X(256)に書き込むようになっている。
【0006】
【発明が解決しようとする課題】
しかしながら、上述のようなベクトル演算処理方法にあっては、第1の方法では同じ配列データをメモリから2度読み出すため、または、第2の方法ではベクトルレジスタ間の移送を必要とするため、何れの方法も2個のベクトルレジスタを使用することとなり、ベクトル演算処理の性能、および演算処理の効率面での低下が生じていた。
【0007】
すなわち、第1の方法では、A(2)〜A(256)のデータは第1および第2ベクトルレジスタの両方のレジスタに読み出されており、処理時間の実行コストの高いメモリからのデータ読み出し処理を2度実行する必要があるため、高速に演算処理を行うことができないという問題を有していた。
【0008】
また、第二の方法であっても、コストの高いメモリからのデータ読み出し処理は第一の方法に比べ、2度から1度に削減できているが、ベクトルレジスタ間の配列データシフト移送命令が必要であるため、データ処理効率が悪いという問題を有していた。
【0009】
本発明は、上記の各問題点に鑑みて為されたもので、その課題は、ベクトル演算処理に使用するベクトルレジスタを1個で済まし、かつ、従来のベクトル演算処理装置に比べて演算処理の高速化、効率化を実現するベクトル演算処理装置を提供することにある。
【0010】
【課題を解決するための手段】
上記の課題を解決するために、請求項1に記載の発明は、配列された複数の配列データから構成されるベクトルデータを格納するレジスタと、予め定められた一定時間毎に、前記レジスタに格納された前記各配列データを順次読み出す読出制御手段と、前記読出制御手段が読み出した各前記配列データを、前記予め定められた一定時間毎に当該各配列データの1データ長分シフトさせ、予め設定されたデータ長分のシフトを行うシフト手段と、前記予め設定された一定時間毎に前記シフト手段から出力された前記各配列データと前記読出制御手段が読み出した前記各配列データとの演算を順次行う演算手段と、を備え、前記読出制御手段により読み出された前記配列データが演算手段に入力されるとき、同じ前記配列データが前記シフト手段に入力されるベクトル演算処理装置であって、前記シフト手段は、連接された複数のバッファと、先頭に配された前記バッファを除く各前記バッファの前段に設けられ、前記読出制御手段が読み出した前記各配列データと直前の前記バッファから出力された前記各配列データとの、後段に配される前記バッファへの入力選択を行う選択手段と、を備えた構成を有している。
【0011】
この構成により、請求項1に記載の発明では、レジスタから読み出した配列データを、予め定められた一定時間毎に当該各配列データの1データ長ずつシフトさせ、予め設定されたデータ長分のシフトされた配列データと、予め定められた一定時間毎に順次読み出された配列データとの演算を行うことができるので、2つのレジスタを使用することなく、かつ、配列データを1回読み出すだけで、ベクトル演算を行うことができ、ベクトル演算を行う場合の演算処理の高速化および効率化を行うことができる。また、配列データを、予め設定されたデータ長分のシフトさせる場合に、複数のバッファと、先頭に配されたバッファを除く各バッファの前段に設けられた選択手段とによって実現することができるので、容易にかつ簡便に実現することができるとともに、2つのレジスタを使用することなく、かつ、配列データを1回読み出すだけで、ベクトル演算を行うことができ、ベクトル演算を行う場合の演算処理の高速化および効率化を行うことができる。
【0012】
また、請求項2に記載の発明は、請求項1に記載のベクトル演算処理装置において、前記シフト手段が、前記予め設定されたデータ長に基づいて前記各選択手段の入力選択を制御する選択制御手段を更に備え、前記各バッファが、前記予め定められた一定時間毎に前記各配列データを当該配列データの1データ長分のシフトを行う構成を有している。
【0014】
また、請求項3に記載の発明は、請求項1または2に記載のベクトル演算処理装置において、前記演算手段が、前記シフト手段から出力された前記各配列データが入力されたときに、演算結果を有効にする構成を有している。
【0015】
この構成により、請求項3に記載の発明では、シフト手段からの出力されたデータが入力されたときに当該演算手段の演算結果を有効にすることにより、無効なデータを排除し、的確に演算結果を取得することができる。
【0016】
また、請求項4に記載の発明は、請求項1乃至3の何れか一項に記載のベクトル演算処理装置を用いてベクトル演算処理を行うベクトル演算方法であって、前記レジスタに格納された各前記配列データを予め定められた一定時間毎に順次読み出す読出制御工程と、前記順次読み出した各配列データを、前記各バッファを用いて、前記予め定められた一定時間毎に当該各配列データの1データ長シフトさせ、予め設定されたデータ長分のシフト処理を行うシフト処理工程と、前記予め設定された一定時間毎に前記シフト処理された各配列データと前記順次読み出した各配列データとの演算処理を順次行う演算処理工程と、備え、前記シフト処理工程においては、先頭に配された前記バッファを除く各前記バッファに対して前記読み出した各配列データと直前の前記バッファから出力された前記各配列データとの、後段に配される前記バッファへの入力選択制御を行う入力選択制御工程を含む構成を有している。
【0017】
この構成により、請求項4に記載の発明では、レジスタから読み出した配列データを、予め定められた一定時間毎に当該各配列データの1データ長ずつシフトさせ、予め設定された配列データ長分のシフトされた各配列データと、予め定められた一定時間毎に順次読み出された各配列データとの演算を行うことができるので、2つのレジスタを使用することなく、かつ、配列データを1回読み出すだけで、ベクトル演算を行うことができ、ベクトル演算を行う場合の演算処理の高速化および効率化を行うことができる。また、各配列データを、予め設定されたデータ長分のシフトさせる場合に、複数の連接されたバッファに対して読み出した配列データと直前のバッファから出力された配列データの入力選択制御を行うことによって実現することができるので、容易にかつ簡便に実現することができるとともに、2つのレジスタを使用することなく、かつ、配列データを1回読み出すだけで、ベクトル演算を行うことができ、ベクトル演算を行う場合の演算処理の高速化および効率化を行うことができる。
【0020】
また、請求項5に記載の発明は、請求項4に記載のベクトル演算処理方法において、前記演算処理工程においては、前記シフト処理された各配列データが入力されたときに演算結果を有効にする構成を有している。
【0021】
この構成により、請求項5に記載の発明では、シフト処理された配列データが入力されたときに当該演算結果を有効にすることにより、無効なデータを排除し、的確に演算結果を取得することができる。
【0028】
【発明の実施の形態】
次に、本発明に好適な実施の形態について、図面に基づいて説明する。
【0029】
なお、以下に説明する実施の形態は、ベクトルプロセッサに対して本発明を適用した場合の実施形態である。
【0030】
まず、図1を用いてベクトルプロセッサの基本構成について説明する。
【0031】
なお、図1は、ベクトルプロセッサの基本構成を示すブロック図である。
【0032】
ベクトルプロセッサ10は、図1に示すように、内部を複数に分割して個々に独立した値を格納する複数のベクトルレジスタ11と、図示しない制御部の指示に基づいて加算、減算、乗算および除算などの各演算を行う複数の演算器12と、演算器12から出力されたベクトルデータの出力制御および外部から入力されたベクトルデータの入力制御を行う第1クロスバースイッチ13と、各レジスタから出力されたベクトルデータの演算器12への入力制御を行う第2クロスバースイッチ14とを備えている。
【0033】
なお、ベクトルレジスタ11は、本発明のレジスタを、演算器12は、本発明に係る演算手段を構成するとともに、第2クロスバースイッチ14は、本発明に係る読出制御手段を構成する。
【0034】
ベクトルレジスタ11は、当該ベクトルプロセッサ10内に複数のベクトルレジスタ11−#1〜11−#nが設けられるようになっており、各ベクトルレジスタ11は、内部に複数のデータ格納領域15を有し、個々に独立したベクトルデータを構成するデータを複数格納するようになっている。
【0035】
例えば、1つのベクトルレジスタ11は、最大n個(一般に64、128、256個など2のべき乗個、nは最大ベクトル長と呼ぶ)のベクトルデータを格納するようになっている。
【0036】
なお、以下において、各個々の独立し、ベクトルデータを構成するデータをベクトル配列データといい、これらの1つのベクトルレジスタ11に格納されるベクトル配列データ群を単にベクトルデータという。
【0037】
また、各ベクトルレジスタ11には、外部から入力されたベクトルデータを格納する図示しないレジスタから出力された各ベクトル配列データまたは第1クロスバースイッチ13を介して各演算器12から出力された各ベクトル配列データが入力されるようになっており、この各ベクトルレジスタ11は、入力された各ベクトル配列データを、第2クロスバースイッチ14を介して各演算器12に出力するようになっている。
【0038】
演算器12は、当該ベクトルプロセッサ10内に複数設けられており、各演算器12は、2系統の入力を有し、図示しない制御部の指示に基づいて、第2クロスバースイッチ14を介して各系統から順次入力された各ベクトル配列データを加算、減算、乗算、除算および論理演算などの各ベクトル演算を行うようになっている。
【0039】
第1クロスバースイッチ13は、一般に、全 HYPERLINK "http://yougo.ascii24.com/gh/06/000676.html" ノード(ベクトルレジスタ11)がデータを受信しなければならない命令を示すブロードキャスト、複数 HYPERLINK "http://yougo.ascii24.com/gh/06/000676.html" ノード(ベクトルレジスタ11)のみデータを受信する命令を示すマルチキャストなど多重出力選択を行うようになっており、具体的には、図示しない制御部の指示に基づいて各演算器12から出力されたベクトルデータの出力制御および外部から入力されたベクトルデータのベクトルレジスタ11への入力制御を行うようになっている。
【0040】
第2クロスバースイッチ14は、第1クロスバースイッチ13と同様に、一般に、ブロードキャスト、マルチキャストなど多重出力選択を行うようになっており、具体的には、図示しない制御部の指示に基づいて各ベクトルレジスタ11から出力されたベクトル配列データを各演算器12の何れかの入力系統(以下、入力ポートという)に順次出力する出力制御を行うようになっている。
【0041】
具体的には、第2クロスバースイッチ14は、各ベクトルレジスタ11から何れかの演算器12の入力ポートに対してデータ供給するパスを設定するようになっている。
【0042】
このようなベクトルプロセッサ10では、例えば、1クロックなど、予め定められた一定時間毎に、各ベクトルレジスタ11から順次ベクトル配列データを読み出すとともに、演算器12に出力させ、当該予め定められた時間毎に各演算器12によって各ベクトルデータ毎の各演算処理を行うようになっている。
【0043】
次に、図2〜図6を用いて本発明に係るベクトルプロセッサ10について説明する。
【0044】
まず、図2〜図4を用いて本実施形態におけるベクトルプロセッサ10の構成について説明する。
【0045】
なお、図2はベクトルプロセッサ10の一部の構成を示す図であり、図3は、シフトバッファの内部構成を示す図である。
【0046】
また、図4(a)は、要素シフトレジスタ103に保持される制御データの構成を示す図であり、図4(b)は、当該ベクトルプロセッサに入力される命令フォーマットを示す一例である。
【0047】
ベクトルプロセッサ10は、上述したベクトルプロセッサ10において、図2に示すように、第2クロスバースイッチ14と各演算器12との間であって、当該演算器12の入力ポートの一方の入力ポートに、各ベクトルデータの演算器12への供給タイミングを制御するシフトバッファ100を備えるようになっている。
【0048】
このシフトバッファ100は、図3に示すように、予め設定された時間(1クロック)毎に各ベクトルデータを保持する複数の要素シフトバッファ101と、各要素シフトバッファ101の前段に設けられ、第2クロスバースイッチ14からの出力と前段の要素シフトバッファ101からの出力との要素シフトバッファ101への入力選択を行う複数のセレクタ102と、図示しない制御部の指示に基づいて入力されたベクトルデータの要素シフト量を制御する要素シフトレジスタ103と、を有している。
【0049】
なお、シフトバッファ100は、本発明に係るシフト手段を構成し、要素シフトバッファ101は、本発明に係るバッファを構成する。
【0050】
また、セレクタ102は、本発明に係る選択手段および入力制御手段を構成し、要素シフトレジスタ103は、本発明に係る選択制御手段および入力選択制御手段を構成する。
【0051】
本実施形態では、先頭の要素シフトバッファ101にもセレクタ102#−1を設けてあるが、特に、当該先頭の要素シフトバッファ101では、入力選択を行う必要がないので、当該セレクタ102#−1を設けなくてもよい。
【0052】
また、最終段にあるセレクタ102#−4は、シフト処理しない場合に、要素シフトレジスタ103の制御に基づいて第2クロスバースイッチ14から出力されたベクトル配列データをそのまま出力する際に用いられるようになっている。
【0053】
さらに、本実施形態では、図3に示すように、シフトバッファ100が3段、すなわち、シフトバッファ100内に3つの要素シフトバッファ101およびセレクタ102を備えるようになっているが、特に3つに限定する必要はない。
【0054】
要素シフトレジスタ103は、図示しない制御部の指示に基づいて要素シフト量(m)を保持するようになっており、この要素シフト量(m)に基づいて各セレクタ102#−1〜102#−4を制御するようになっている。
【0055】
例えば、要素シフトレジスタ103は、図4(a)に示すように、制御データ110を保持するようになっており、この制御データ110は、演算器12への供給タイミングの制御を行うことを示すフラグ111と要素シフト量112とから構成されるようになっている。
【0056】
なお、本実施形態では、図示しない制御部に、図4(b)に示すような命令フォーマット120が入力されるようになっており、この各命令に基づいて当該制御部は要素シフトレジスタ103、第1クロスバースイッチ13および第2クロスバースイッチ14を制御するようになっている。
【0057】
また、例えば、この命令フォーマット120は、オペレーションコード121、演算結果出力先ベクトルレジスタ番号122、1つの入力ベクトルレジスタ番号123および要素シフト量124から構成されるようになっている。
【0058】
要素シフトレジスタ103は、このような構成を有することによって、第2クロスバースイッチ14から出力された各ベクトル配列データがセレクタ102から各シフトバッファ100に取り込まれ、各セレクタ102に前段の要素シフトバッファ101の出力を選択させるようになっている。
【0059】
このように本実施形態のシフトバッファ100では、予め定められた時間長毎に1データ長毎シフトさせるとともに、命令フォーマットで指示されたデータ長分シフトして演算器12に出力させることができるようになっている。
【0060】
次に、図5を用いて本実施形態におけるシフト処理について説明する。
【0061】
なお、図5は、要素シフト量「3」の場合におけるベクトルレジスタ11からのデータ読み出しと演算器12への供給タイミングを示したタイムチャートである。
【0062】
また、ベクトル配列データAの要素A(1)〜A(256)がベクトルレジスタ11#−1に格納され、演算器12、第2クロスバースイッチ14およびシフトバッファ100は図示しない制御部の指示(すなわち、命令フォーマット120)に基づいて行われるものとし、1クロック毎に、各部が動作するようになっている。
【0063】
本実施形態では、第2クロスバースイッチ14は、1クロック毎に、ベクトル配列データA(i)をベクトルレジスタ11から当該第2クロスバースイッチ14に読み出し、後述するように設定したパスを介して当該読み出したベクトル配列データA(i)を演算器12およびシフトバッファ100に出力するようになっている。
【0064】
また、シフトバッファ100は、ベクトル配列データA(i)が当該シフトバッファ100に入力されると、各要素シフトバッファ101において、ベクトル配列データA(i)を予め設定された時間、すなわち、1クロック分保持し、保持した後にベクトル配列データA(i)を後段の他の要素シフトバッファ101または演算器12に出力するようになっており、命令フォーマット120によって指示された要素シフト量分シフトさせ、演算器12に出力するようになっている。
【0065】
例えば、要素シフト量「3」の場合であって、式(2)に示す演算を行う場合には、演算器12、第2クロスバースイッチ14およびシフトバッファ100は、図5に示すように、1クロック毎に以下の動作を行うようになっている。
【0066】
X(i)=A(i)+A(i−3) (i=4〜256) ・・・式(2)
まず、クロック1において、第2クロスバースイッチ14は、ベクトル配列データA(1)をベクトルレジスタ11から当該第2クロスバースイッチ14に読み出し、当該読み出したベクトル配列データA(1)を演算器12およびシフトバッファ100に出力する。
【0067】
次いで、クロック2において、第1要素シフトバッファ101#−1は、ベクトル配列データA(1)を1クロック分保持し、ベクトル配列データA(1)を第2セレクタ102#−2を介して第2要素シフトバッファ101#−2に出力する。
【0068】
一方、第2クロスバースイッチ14は、次のベクトル配列データA(2)をベクトルレジスタ11から当該第2クロスバースイッチ14に読み出し、当該読み出したベクトル配列データA(2)を演算器12およびシフトバッファ100に出力する。
【0069】
次いで、クロック3において、第1要素シフトバッファ101#−1および第2要素シフトバッファ101#−2は、ベクトル配列データA(1)、A(2)を1クロック分保持し、ベクトル配列データA(1)を、第3セレクタ102#−3を介して第3要素シフトバッファ101#−3に出力するとともに、次のベクトルデータをA(2)第2セレクタ102#−2を介して第2要素シフトバッファ101に出力する。
【0070】
一方、第2クロスバースイッチ14は、さらに次のベクトル配列データA(3)をベクトルレジスタ11から当該第2クロスバースイッチ14に読み出し、当該読み出したベクトル配列データA(3)を演算器12およびシフトバッファ100に出力する。
【0071】
次いで、クロック4において、第1要素シフトバッファ101#−1、第2要素シフトバッファ101#−2および第3要素シフトバッファ101#−3は、ベクトル配列データA(1)、A(2)、A(3)を1クロック分保持し、ベクトル配列データA(1)を演算器12に、ベクトル配列データA(2)を第3セレクタ102#−3を介して第3要素シフトバッファ101#−3に、ベクトル配列データA(3)を第2セレクタ102#−2を介して第2要素シフトバッファ101#−2に出力する。
【0072】
一方、第2クロスバースイッチ14は、さらに次のベクトルデータ(4)をベクトルレジスタ11から当該第2クロスバースイッチ14に読み出し、当該読み出したベクトル配列データA(4)を演算器12およびシフトバッファ100に出力する。
【0073】
次いで、クロック5について、第1要素シフトバッファ101#−1、第2要素シフトバッファ101#−2および第3要素シフトバッファ101#−3は、ベクトル配列データA(2)、A(3)、A(4)を1クロック分保持し、ベクトル配列データA(2)を演算器12に、ベクトル配列データA(3)を第3セレクタ102#−3を介して第3要素シフトバッファ101#−3に、次のベクトル配列データA(4)を第2セレクタ102#−2を介して第2要素シフトバッファ101#−2に出力する。
【0074】
一方、第2クロスバースイッチ14は、さらに次のベクトルデータ(5)をベクトルレジスタ11から当該第2クロスバースイッチ14に読み出し、当該読み出したベクトル配列データA(5)を演算器12およびシフトバッファ100に出力するとともに、演算器12は、1つ前のクロック4において第2クロスバースイッチ14から出力されたベクトルデータ(4)とシフトバッファ100から出力されたベクトルデータ(1)とを演算処理、すなわち、加算処理し、第1クロスバースイッチ13を介して当該演算結果を指定されたベクトルレジスタ11に格納する。
【0075】
以後、1クロック毎に、第2クロスバースイッチ14は、ベクトルレジスタ11からベクトル配列データA(i)を順次読み出し、各要素シフトバッファ101は、当該ベクトル配列データA(i)を1クロック分保持し、当該保持したベクトルを次段の要素シフトバッファ101または演算器12に出力するようになっている。
【0076】
なお、演算器12は、最初のベクトル配列データA(1)が入力されるタイミングから演算を有効にするよう有効信号(以下、ベクトル演算有効信号という)に基づいて制御するになっており、例えば、このベクトル演算有効信号は図示しない制御部から入力され、当該演算器12にベクトル有効信号が入力された場合に当該演算結果を命令で指定されたベクトルレジスタ11に出力するようになっている。
【0077】
このように、本実施形態では、1クロック毎にシフト処理を行うとともに、演算器12においてベクトルデータ毎の演算処理を行うようになっている。
【0078】
次に、図6を用いて本実施形態におけるベクトルプロセッサ10のベクトル演算処理動作について説明する。
【0079】
なお、各部は、図示しない制御部の指示に基づいて動作制御されているものとする。
【0080】
まず、制御部の指示に基づいてベクトルデータをベクトルデータ読出命令によってベクトルレジスタ11に読み出す(ステップS11)。
【0081】
次いで、制御部によってシフトバッファ100に要素シフト演算を指示する命令(例えば、要素シフト量は「3」を有する制御データ)が入力され、要素シフトレジスタ103は、内部に要素シフト量と要素シフト有効フラグを設定し、各セレクタ102の入力選択を制御する(ステップS12)。
【0082】
具体的には、要素シフトレジスタ103は、設定された要素シフト量と要素シフト有効フラグに基づいて、第2クロスバースイッチ14からベクトルデータを取り込むか、または、先頭の要素シフトバッファ101を除き、各セレクタ102の前段の要素シフトバッファ101から出力されたデータを取り込むかの何れかの入力を行うかを、各セレクタ102毎に設定する。
【0083】
次いで、第2クロスバースイッチ14は、ベクトルレジスタ11から演算器12までの2つの入力ポートに対してデータを供給するパスを設定する(ステップS13)。
【0084】
このとき、2つのポートの何れかのポートには、上記要素シフト演算を行うシフトバッファ100が設けられているポートを選択する。
【0085】
次いで、第2クロスバースイッチ14およびシフトバッファ100によって指示された要素シフト量に基づいて上述した各ベクトルデータのシフト処理を行う(ステップS14)。
【0086】
具体的には、第2クロスバースイッチ14は、1クロック毎に順次ベクトル配列データを読み出し、シフトバッファ100および演算器12に順次読み出したベクトル配列データを出力するとともに、シフト要素シフトレジスタ103は、1クロック毎に順次入力されたベクトル配列データを、1クロック毎に1データ長分シフトさせ、予め設定されたデータ長分のシフトを行い、1クロック毎に演算器12にベクトル配列データを順次出力する。
【0087】
最後に、演算器12は、演算器12要素シフトレジスタ103および第2クロスバースイッチ14によって順次読み出されたベクトルデータを1クロック毎に制御部の指示に基づいて順次演算し、第1クロスバースイッチ13を介して外部またはベクトルレジスタ11に出力する(ステップS15)。
【0088】
なお、シフト処理(ステップS14)およびベクトル演算処理(ステップS15)は、上述のようにベクトル配列データ毎に順次行われるようになっている。
【0089】
以上により本実施形態によれば、シフトバッファ100において、ベクトルレジスタ11から読み出したベクトル配列データを、1クロック毎に当該ベクトル配列データの1データ長ずつシフトさせ、予め設定されたデータ長分のシフトされたベクトル配列データと、1クロック毎に順次読み出されたベクトル配列データとのベクトル演算を順次行うことができるので、2つのレジスタを使用することなく、かつ、配列データを1回読み出すだけで、ベクトル演算を行うことができ、ベクトル演算を行う場合の演算処理の高速化および効率化を行うことができる。
【0090】
また、ベクトル配列データを、予め設定されたデータ長分シフトさせる場合に、ベクトルレジスタ11から順次読み出したベクトル配列データを、複数の要素シフトバッファ101と、先頭に配された要素シフトバッファ101を除く各要素シフトバッファ101の前段に設けられ、第2クロスバースイッチ14から出力されたデータと直前の要素シフトバッファ101から出力されたデータの入力選択を行うセレクタ102とによって構成することができるので、容易にかつ簡便にシフトバッファ100を構成することができるとともに、2つのレジスタを使用することなく、かつ、ベクトル配列データを1回読み出すだけで、ベクトル演算を行うことができ、ベクトル演算を行う場合の演算処理の高速化および効率化を行うことができる。
【0091】
また、シフトバッファ100からの出力されたベクトル配列データが入力されたときに演算器12の演算結果を有効にすることにより、無効なデータを排除し、的確に演算結果を取得することができる。
【0092】
なお、本実施形態では、上述のベクトルプロセッサ10によってベクトル演算処理およびシフト処理を行うようになっているが、ベクトルプロセッサ10にベクトルレジスタ11および要素シフトバッファ101の他に、コンピュータおよび記録媒体を備え、この記録媒体に上述のシフト処理およびベクトル演算処理を行うプログラムを格納し、このコンピュータによって当該シフト処理およびベクトル演算処理を読み込むことによって上述と同様の当該シフト処理およびベクトル演算処理を行うようにしてもよい。
【0093】
【発明の効果】
以上説明したように、本発明によれば、レジスタから読み出した配列データを、予め定められた一定時間毎に当該配列データの1データ長ずつシフトさせ、予め設定されたデータ長分のシフトされた配列データと、予め定められた一定時間毎に順次読み出された配列データとの演算を行うことができるので、2つのレジスタを使用することなく、かつ、配列データを1回読み出すだけで、ベクトル演算を行うことができ、ベクトル演算を行う場合の演算処理の高速化および効率化を行うことができる。
【図面の簡単な説明】
【図1】本発明に係るベクトルプロセッサの一実施形態のベクトルプロセッサの基本構成を示すブロック図である。
【図2】本発明に係るベクトルプロセッサの一実施形態の一部の構成を示す図である。
【図3】本発明に係るベクトルプロセッサの一実施形態におけるシフトバッファの内部構成を示す図である。
【図4】(a)は、ベクトルプロセッサの一実施形態における要素シフトレジスタに保持される制御データの構成を示す図であり、(b)は、図示しない制御部に入力される命令フォーマットを示す一例である。
【図5】要素シフト量「3」の場合におけるベクトルレジスタからのデータ読み出しと演算器12への供給タイミングを示したタイムチャートである。
【図6】ベクトルプロセッサの一実施形態におけるベクトル演算処理の動作を示すフローチャートである。
【符号の説明】
10 … ベクトルプロセッサ
11 … ベクトルレジスタ(レジスタ)
12 … 演算器(演算手段)
13 … 第1クロスバースイッチ14
14 … 第2クロスバースイッチ(読出制御手段)
100 … シフトバッファ(シフト手段)
101 … 要素シフトバッファ(バッファ)
102 … セレクタ(選択手段、入力制御手段)
103 … 要素シフトレジスタ(選択制御手段、入力選択制御手段)
Claims (5)
- 配列された複数の配列データから構成されるベクトルデータを格納するレジスタと、
予め定められた一定時間毎に、前記レジスタに格納された前記各配列データを順次読み出す読出制御手段と、
前記読出制御手段が読み出した各前記配列データを、前記予め定められた一定時間毎に当該各配列データの1データ長分シフトさせ、予め設定されたデータ長分のシフトを行うシフト手段と、
前記予め設定された一定時間毎に前記シフト手段から出力された前記各配列データと前記読出制御手段が読み出した前記各配列データとの演算を順次行う演算手段と、
を備え、前記読出制御手段により読み出された前記配列データが演算手段に入力されるとき、同じ前記配列データが前記シフト手段に入力されるベクトル演算処理装置であって、
前記シフト手段は、
連接された複数のバッファと、
先頭に配された前記バッファを除く各前記バッファの前段に設けられ、前記読出制御手段が読み出した前記各配列データと直前の前記バッファから出力された前記各配列データとの、後段に配される前記バッファへの入力選択を行う選択手段と、
を備えたことを特徴とするベクトル演算処理装置。 - 請求項1に記載のベクトル演算処理装置において、
前記シフト手段が、
前記予め設定されたデータ長に基づいて前記各選択手段の入力選択を制御する選択制御手段を更に備え、
前記各バッファが、前記予め定められた一定時間毎に前記各配列データを当該配列データの1データ長分のシフトを行うことを特徴とするベクトル演算処理装置。 - 請求項1または2に記載のベクトル演算処理装置において、
前記演算手段が、前記シフト手段から出力された前記各配列データが入力されたときに、演算結果を有効にすることを特徴とするベクトル演算処理装置。 - 請求項1乃至3の何れか一項に記載のベクトル演算処理装置を用いてベクトル演算処理を行うベクトル演算方法であって、
前記レジスタに格納された各前記配列データを予め定められた一定時間毎に順次読み出す読出制御工程と、
前記順次読み出した各配列データを、前記各バッファを用いて、前記予め定められた一定時間毎に当該各配列データの1データ長シフトさせ、予め設定されたデータ長分のシフト処理を行うシフト処理工程と、
前記予め設定された一定時間毎に前記シフト処理された各配列データと前記順次読み出した各配列データとの演算処理を順次行う演算処理工程と、備え、
前記シフト処理工程においては、
先頭に配された前記バッファを除く各前記バッファに対して前記読み出した各配列データと直前の前記バッファから出力された前記各配列データとの、後段に配される前記バッファへの入力選択制御を行う入力選択制御工程を含むことを特徴とするベクトル演算処理方法。 - 請求項4に記載のベクトル演算処理方法において、
前記演算処理工程においては、前記シフト処理された各配列データが入力されたときに演算結果を有効にすることを特徴とするベクトル演算処理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002139487A JP3982324B2 (ja) | 2002-05-15 | 2002-05-15 | ベクトル演算処理装置、ベクトル演算方法およびベクトル演算プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002139487A JP3982324B2 (ja) | 2002-05-15 | 2002-05-15 | ベクトル演算処理装置、ベクトル演算方法およびベクトル演算プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003330914A JP2003330914A (ja) | 2003-11-21 |
JP3982324B2 true JP3982324B2 (ja) | 2007-09-26 |
Family
ID=29700611
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002139487A Expired - Lifetime JP3982324B2 (ja) | 2002-05-15 | 2002-05-15 | ベクトル演算処理装置、ベクトル演算方法およびベクトル演算プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3982324B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102007056115A1 (de) | 2007-11-15 | 2009-05-20 | Freiberger Compound Materials Gmbh | Verfahren zum Trennen von Einkristallen |
CN117195989A (zh) * | 2023-11-06 | 2023-12-08 | 深圳市九天睿芯科技有限公司 | 向量处理器、神经网络加速器、芯片及电子设备 |
-
2002
- 2002-05-15 JP JP2002139487A patent/JP3982324B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2003330914A (ja) | 2003-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8595280B2 (en) | Apparatus and method for performing multiply-accumulate operations | |
US20070271325A1 (en) | Matrix multiply with reduced bandwidth requirements | |
WO1992018935A1 (en) | Data processor and data processing method | |
KR101553648B1 (ko) | 재구성 가능한 구조의 프로세서 | |
JPS63167967A (ja) | ディジタル信号処理集積回路 | |
CN114371829A (zh) | 多项式乘法器中的数据处理方法、多项式乘法器及处理器 | |
JP3982324B2 (ja) | ベクトル演算処理装置、ベクトル演算方法およびベクトル演算プログラム | |
US4956767A (en) | Data processing system with model for status accumulating operation by simulating sequence of arithmetic steps performed by arithmetic processor | |
JP2010117806A (ja) | 半導体装置、および、半導体装置によるデータ処理方法 | |
JP5112627B2 (ja) | プロセッサ・アーキテクチャ | |
US20030172248A1 (en) | Synergetic computing system | |
CN113841134A (zh) | 具有向量变换执行的处理装置 | |
CN112506853A (zh) | 零缓冲流水的可重构处理单元阵列及零缓冲流水方法 | |
US7146395B2 (en) | Banyan switched processor datapath | |
RU2198422C2 (ru) | Асинхронная синергическая вычислительная система | |
JP2009086870A (ja) | ベクトル処理装置 | |
JP2655243B2 (ja) | 複合化ベクトル並列計算機 | |
KR100896269B1 (ko) | SIMD/SISD/Row/Column 동작을 할 수있는 SIMD 병렬 프로세서 | |
RU2179333C1 (ru) | Синергическая вычислительная система | |
JP2001092658A (ja) | データ処理回路及びデータ処理装置 | |
JP2002091929A (ja) | Simd型並列処理装置 | |
JP3675948B2 (ja) | データ変換方法及びその装置 | |
JP2503983B2 (ja) | 情報処理装置 | |
JP3708560B2 (ja) | データフロー型情報処理装置 | |
JPS63197217A (ja) | デ−タ処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040426 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060921 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060926 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061127 |
|
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: 20070612 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070625 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100713 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |