JP2003330914A - ベクトル演算処理装置、ベクトル演算方法およびベクトル演算プログラム - Google Patents

ベクトル演算処理装置、ベクトル演算方法およびベクトル演算プログラム

Info

Publication number
JP2003330914A
JP2003330914A JP2002139487A JP2002139487A JP2003330914A JP 2003330914 A JP2003330914 A JP 2003330914A JP 2002139487 A JP2002139487 A JP 2002139487A JP 2002139487 A JP2002139487 A JP 2002139487A JP 2003330914 A JP2003330914 A JP 2003330914A
Authority
JP
Japan
Prior art keywords
vector
array data
data
read
shift
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
JP2002139487A
Other languages
English (en)
Other versions
JP3982324B2 (ja
Inventor
Takashi Hagiwara
孝 萩原
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 Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2002139487A priority Critical patent/JP3982324B2/ja
Publication of JP2003330914A publication Critical patent/JP2003330914A/ja
Application granted granted Critical
Publication of JP3982324B2 publication Critical patent/JP3982324B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 ベクトル演算処理に使用するベクトルレジス
タを1個で済まし、かつ、従来のベクトル演算処理装置
に比べて演算処理の高速化、効率化を実現するベクトル
演算処理装置を提供すること。 【解決手段】 ベクトルプロセッサ10は、第2クロス
バースイッチ14と各演算器12との間であって、当該
演算器12の入力ポートの一方の入力ポートに、各ベク
トルデータの演算器12への供給タイミングを制御する
シフトバッファ100を備え、第2クロスバースイッチ
14から出力された各ベクトル配列データはセレクタ1
02から各シフトバッファ100に取り込まれるととも
に、各セレクタ102に前段の要素シフトバッファ10
1の出力を選択させ、1クロック毎に演算器12に出力
させるようになっている。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、配列データを演算
するベクトル演算処理装置の技術分野に属し、より詳細
には、隣接した配列データの演算処理の技術分野に属す
る。
【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
回読み出すだけで、ベクトル演算を行うことができ、ベ
クトル演算を行う場合の演算処理の高速化および効率化
を行うことができる。
【0012】また、請求項2に記載の発明は、請求項1
に記載のベクトル演算処理装置において、前記シフト手
段が、連接された複数のバッファと、先頭に配された前
記バッファを除く各前記バッファの前段に設けられ、前
記読出制御手段が読み出した前記各配列データと直前の
前記バッファから出力された前記各配列データとの、後
段に配される前記バッファへの入力選択を行う選択手段
と、前記予め設定されたデータ長に基づいて前記各選択
手段の入力選択を制御する選択制御手段と、を有し、前
記各バッファが、前記予め定められた一定時間毎に前記
各配列データを当該配列データの1データ長分のシフト
を行う構成を有している。
【0013】この構成により、請求項2に記載の発明で
は、配列データを、予め設定されたデータ長分のシフト
させる場合に、複数のバッファと、先頭に配されたバッ
ファを除く各バッファの前段に設けられた選択手段とに
よって実現することができるので、容易にかつ簡便に実
現することができるとともに、2つのレジスタを使用す
ることなく、かつ、配列データを1回読み出すだけで、
ベクトル演算を行うことができ、ベクトル演算を行う場
合の演算処理の高速化および効率化を行うことができ
る。
【0014】また、請求項3に記載の発明は、請求項1
または2に記載のベクトル演算処理装置において、前記
演算手段が、前記シフト手段から出力された前記各配列
データが入力されたときに、演算結果を有効にする構成
を有している。
【0015】この構成により、請求項3に記載の発明で
は、シフト手段からの出力されたデータが入力されたと
きに当該演算手段の演算結果を有効にすることにより、
無効なデータを排除し、的確に演算結果を取得すること
ができる。
【0016】また、請求項4に記載の発明は、配列され
た複数の配列データから構成されるベクトルデータを格
納するレジスタを有する演算処理装置を用いてベクトル
演算処理を行うベクトル演算方法であって、前記レジス
タに格納された各前記配列データを予め定められた一定
時間毎に順次読み出す読出制御工程と、前記順次読み出
した各配列データを、前記予め定められた一定時間毎に
当該各配列データの1データ長シフトさせ、予め設定さ
れたデータ長分のシフト処理を行うシフト処理工程と、
前記予め設定された一定時間毎に前記シフト処理された
各配列データと前記順次読み出した各配列データとの演
算処理を順次行う演算処理工程と、を含む構成を有して
いる。
【0017】この構成により、請求項4に記載の発明で
は、レジスタから読み出した配列データを、予め定めら
れた一定時間毎に当該各配列データの1データ長ずつシ
フトさせ、予め設定された配列データ長分のシフトされ
た各配列データと、予め定められた一定時間毎に順次読
み出された各配列データとの演算を行うことができるの
で、2つのレジスタを使用することなく、かつ、配列デ
ータを1回読み出すだけで、ベクトル演算を行うことが
でき、ベクトル演算を行う場合の演算処理の高速化およ
び効率化を行うことができる。
【0018】また、請求項5に記載の発明は、請求項4
に記載のベクトル演算処理方法において、前記演算処理
装置に連接された複数のバッファを有し、当該各バッフ
ァが前記予め設定された時間毎に前記各配列データの1
データ長分のシフトを行う場合であって、前記シフト処
理工程においては、前記読み出した各配列データを、前
記バッファの何れか1つに入力するための入力制御を行
う入力制御工程と、先頭に配された前記バッファを除く
各前記バッファに対して前記読み出した各配列データと
直前の前記バッファから出力された前記各配列データと
の、後段に配される前記バッファへの入力選択制御を行
う入力選択制御工程と、を含む構成を有している。
【0019】この構成により、請求項5に記載の発明で
は、各配列データを、予め設定されたデータ長分のシフ
トさせる場合に、複数の連接されたバッファに対して読
み出した配列データと直前のバッファから出力された配
列データの入力選択制御を行うことによって実現するこ
とができるので、容易にかつ簡便に実現することができ
るとともに、2つのレジスタを使用することなく、か
つ、配列データを1回読み出すだけで、ベクトル演算を
行うことができ、ベクトル演算を行う場合の演算処理の
高速化および効率化を行うことができる。
【0020】また、請求項6に記載の発明は、請求項4
または5に記載のベクトル演算処理方法において、前記
演算処理工程においては、前記シフト処理された各配列
データが入力されたときに演算結果を有効にする構成を
有している。
【0021】この構成により、請求項6に記載の発明で
は、シフト処理された配列データが入力されたときに当
該演算結果を有効にすることにより、無効なデータを排
除し、的確に演算結果を取得することができる。
【0022】また、請求項7に記載の発明は、配列され
た複数の配列データから構成されるベクトルデータを格
納するレジスタと、コンピュータと、を有する演算処理
装置を用いてベクトル演算処理を行うベクトル演算プロ
グラムであって、前記コンピュータを、前記レジスタに
格納された前記各配列データを予め定められた一定時間
毎に順次読み出す読出制御手段、前記順次読み出した各
配列データを、前記予め定められた一定時間毎に当該各
配列データの1データ長シフトさせ、予め設定されたデ
ータ長分のシフト処理を行うシフト手段、前記予め定め
られた一定時間毎に前記シフト処理された各配列データ
と前記順次読み出した各配列データとを順次演算処理を
行う演算手段、として機能させる構成を有している。
【0023】この構成により、請求項7に記載の発明で
は、レジスタから読み出した配列データを、予め定めら
れた一定時間毎に当該各配列データの1データ長ずつシ
フトさせ、予め設定されたデータ長分のシフトされた配
列データと、予め定められた一定時間毎に順次読み出さ
れた配列データとの演算を行うことができるので、2つ
のレジスタを使用することなく、かつ、配列データを1
回読み出すだけで、ベクトル演算を行うことができ、ベ
クトル演算を行う場合の演算処理の高速化および効率化
を行うことができる。
【0024】また、請求項8に記載の発明は、請求項7
に記載のベクトル演算プログラムにおいて、前記演算処
理装置に連接された複数のバッファを有し、当該各バッ
ファが前記予め設定された時間毎に前記各配列データの
1データ長分のシフトを行う場合であって、前記コンピ
ュータを、前記順次読み出した各配列データを、前記バ
ッファの何れか1つに入力するための入力制御を行う入
力制御手段、先頭に配された前記バッファを除く各前記
バッファに対して前記読み出した各配列データと直前の
前記バッファから出力された前記各配列データとの、後
段に配される前記バッファへの入力選択制御を行う入力
選択制御手段、として機能させる構成を有している。
【0025】この構成により、請求項8に記載の発明で
は、各配列データを、予め設定されたデータ長分のシフ
トさせる場合に、複数の連接されたバッファに対して読
み出した配列データと直前のバッファから出力された配
列データの入力選択制御を行うことによって実現するこ
とができるので、容易にかつ簡便に実現することができ
るとともに、2つのレジスタを使用することなく、か
つ、配列データを1回読み出すだけで、ベクトル演算を
行うことができ、ベクトル演算を行う場合の演算処理の
高速化および効率化を行うことができる。
【0026】また、請求項9に記載の発明は、請求項7
または8に記載のベクトル演算プログラムにおいて、前
記コンピュータを、前記シフト処理された各配列データ
が入力されたときに当該演算結果を有効にする演算手段
として機能させる構成を有している。
【0027】この構成により、請求項9に記載の発明で
は、シフト処理された配列データが入力されたときに当
該演算結果を有効にすることにより、無効なデータを排
除し、的確に演算結果を取得することができる。
【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は、当該ベクトルプロセッサ1
0内に複数設けられており、各演算器12は、2系統の
入力を有し、図示しない制御部の指示に基づいて、第2
クロスバースイッチ14を介して各系統から順次入力さ
れた各ベクトル配列データを加算、減算、乗算、除算お
よび論理演算などの各ベクトル演算を行うようになって
いる。
【0039】第1クロスバースイッチ13は、一般に、
全 HYPERLINK "http://yougo.ascii24.com/gh/06/00067
6.html" ノード(ベクトルレジスタ11)がデータを受
信しなければならない命令を示すブロードキャスト、複
数 HYPERLINK "http://yougo.ascii24.com/gh/06/00067
6.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からの出力との要素シフトバッファ1
01への入力選択を行う複数のセレクタ102と、図示
しない制御部の指示に基づいて入力されたベクトルデー
タの要素シフト量を制御する要素シフトレジスタ103
と、を有している。
【0049】なお、シフトバッファ100は、本発明に
係るシフト手段を構成し、要素シフトバッファ101
は、本発明に係るバッファを構成する。
【0050】また、セレクタ102は、本発明に係る選
択手段および入力制御手段を構成し、要素シフトレジス
タ103は、本発明に係る選択制御手段および入力選択
制御手段を構成する。
【0051】本実施形態では、先頭の要素シフトバッフ
ァ101にもセレクタ102#−1を設けてあるが、特
に、当該先頭の要素シフトバッファ101では、入力選
択を行う必要がないので、当該セレクタ102#−1を
設けなくてもよい。
【0052】また、最終段にあるセレクタ102#−4
は、シフト処理しない場合に、要素シフトレジスタ10
3の制御に基づいて第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
への供給タイミングの制御を行うことを示すフラグ11
1と要素シフト量112とから構成されるようになって
いる。
【0056】なお、本実施形態では、図示しない制御部
に、図4(b)に示すような命令フォーマット120が
入力されるようになっており、この各命令に基づいて当
該制御部は要素シフトレジスタ103、第1クロスバー
スイッチ13および第2クロスバースイッチ14を制御
するようになっている。
【0057】また、例えば、この命令フォーマット12
0は、オペレーションコード121、演算結果出力先ベ
クトルレジスタ番号122、1つの入力ベクトルレジス
タ番号123および要素シフト量124から構成される
ようになっている。
【0058】要素シフトレジスタ103は、このような
構成を有することによって、第2クロスバースイッチ1
4から出力された各ベクトル配列データがセレクタ10
2から各シフトバッファ100に取り込まれ、各セレク
タ102に前段の要素シフトバッファ101の出力を選
択させるようになっている。
【0059】このように本実施形態のシフトバッファ1
00では、予め定められた時間長毎に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およびシフトバッファ10
0は、図5に示すように、1クロック毎に以下の動作を
行うようになっている。
【0066】 X(i)=A(i)+A(i−3) (i=4〜256) ・・・式 (2) まず、クロック1において、第2クロスバースイッチ1
4は、ベクトル配列データA(1)をベクトルレジスタ
11から当該第2クロスバースイッチ14に読み出し、
当該読み出したベクトル配列データA(1)を演算器1
2およびシフトバッファ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要素シフトバッファ1
01#−2および第3要素シフトバッファ101#−3
は、ベクトル配列データA(1)、A(2)、A(3)
を1クロック分保持し、ベクトル配列データA(1)を
演算器12に、ベクトル配列データA(2)を第3セレ
クタ102#−3を介して第3要素シフトバッファ10
1#−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要素シフトバッファ1
01#−2および第3要素シフトバッファ101#−3
は、ベクトル配列データA(2)、A(3)、A(4)
を1クロック分保持し、ベクトル配列データA(2)を
演算器12に、ベクトル配列データA(3)を第3セレ
クタ102#−3を介して第3要素シフトバッファ10
1#−3に、次のベクトル配列データA(4)を第2セ
レクタ102#−2を介して第2要素シフトバッファ1
01#−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】次いで、制御部によってシフトバッファ1
00に要素シフト演算を指示する命令(例えば、要素シ
フト量は「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を介して外部またはベクトルレジスタ1
1に出力する(ステップ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および要素シフトバッファ10
1の他に、コンピュータおよび記録媒体を備え、この記
録媒体に上述のシフト処理およびベクトル演算処理を行
うプログラムを格納し、このコンピュータによって当該
シフト処理およびベクトル演算処理を読み込むことによ
って上述と同様の当該シフト処理およびベクトル演算処
理を行うようにしてもよい。
【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 (9)

    【特許請求の範囲】
  1. 【請求項1】配列された複数の配列データから構成され
    るベクトルデータを格納するレジスタと、 予め定められた一定時間毎に、前記レジスタに格納され
    た前記各配列データを順次読み出す読出制御手段と、 前記読出制御手段が読み出した各前記配列データを、前
    記予め定められた一定時間毎に当該各配列データの1デ
    ータ長分シフトさせ、予め設定されたデータ長分のシフ
    トを行うシフト手段と、 前記予め設定された一定時間毎に前記シフト手段から出
    力された前記各配列データと前記読出制御手段が読み出
    した前記各配列データとの演算を順次行う演算手段と、 を備えたことを特徴とするベクトル演算処理装置。
  2. 【請求項2】 請求項1に記載のベクトル演算処理装置
    において、 前記シフト手段が、 連接された複数のバッファと、 先頭に配された前記バッファを除く各前記バッファの前
    段に設けられ、前記読出制御手段が読み出した前記各配
    列データと直前の前記バッファから出力された前記各配
    列データとの、後段に配される前記バッファへの入力選
    択を行う選択手段と、 前記予め設定されたデータ長に基づいて前記各選択手段
    の入力選択を制御する選択制御手段と、 を有し、 前記各バッファが、前記予め定められた一定時間毎に前
    記各配列データを当該配列データの1データ長分のシフ
    トを行うことを特徴とするベクトル演算処理装置。
  3. 【請求項3】 請求項1または2に記載のベクトル演算
    処理装置において、 前記演算手段が、前記シフト手段から出力された前記各
    配列データが入力されたときに、演算結果を有効にする
    ことを特徴とするベクトル演算処理装置。
  4. 【請求項4】 配列された複数の配列データから構成さ
    れるベクトルデータを格納するレジスタを有する演算処
    理装置を用いてベクトル演算処理を行うベクトル演算方
    法であって、 前記レジスタに格納された各前記配列データを予め定め
    られた一定時間毎に順次読み出す読出制御工程と、 前記順次読み出した各配列データを、前記予め定められ
    た一定時間毎に当該各配列データの1データ長シフトさ
    せ、予め設定されたデータ長分のシフト処理を行うシフ
    ト処理工程と、 前記予め設定された一定時間毎に前記シフト処理された
    各配列データと前記順次読み出した各配列データとの演
    算処理を順次行う演算処理工程と、 を含むことを特徴とするベクトル演算処理方法。
  5. 【請求項5】 請求項4に記載のベクトル演算処理方法
    において、 前記演算処理装置に連接された複数のバッファを有し、
    当該各バッファが前記予め設定された時間毎に前記各配
    列データの1データ長分のシフトを行う場合であって、 前記シフト処理工程においては、 前記読み出した各配列データを、前記バッファの何れか
    1つに入力するための入力制御を行う入力制御工程と、 先頭に配された前記バッファを除く各前記バッファに対
    して前記読み出した各配列データと直前の前記バッファ
    から出力された前記各配列データとの、後段に配される
    前記バッファへの入力選択制御を行う入力選択制御工程
    と、 を含むことを特徴とするベクトル演算処理方法。
  6. 【請求項6】 請求項4または5に記載のベクトル演算
    処理方法において、 前記演算処理工程においては、前記シフト処理された各
    配列データが入力されたときに演算結果を有効にするこ
    とを特徴とするベクトル演算処理方法。
  7. 【請求項7】 配列された複数の配列データから構成さ
    れるベクトルデータを格納するレジスタと、コンピュー
    タと、を有する演算処理装置を用いてベクトル演算処理
    を行うベクトル演算プログラムであって、 前記コンピュータを、 前記レジスタに格納された前記各配列データを予め定め
    られた一定時間毎に順次読み出す読出制御手段、 前記順次読み出した各配列データを、前記予め定められ
    た一定時間毎に当該各配列データの1データ長シフトさ
    せ、予め設定されたデータ長分のシフト処理を行うシフ
    ト手段、 前記予め定められた一定時間毎に前記シフト処理された
    各配列データと前記順次読み出した各配列データとを順
    次演算処理を行う演算手段、 として機能させることを特徴とするベクトル演算プログ
    ラム。
  8. 【請求項8】 請求項7に記載のベクトル演算プログラ
    ムにおいて、 前記演算処理装置に連接された複数のバッファを有し、
    当該各バッファが前記予め設定された時間毎に前記各配
    列データの1データ長分のシフトを行う場合であって、 前記コンピュータを、 前記順次読み出した各配列データを、前記バッファの何
    れか1つに入力するための入力制御を行う入力制御手
    段、 先頭に配された前記バッファを除く各前記バッファに対
    して前記読み出した各配列データと直前の前記バッファ
    から出力された前記各配列データとの、後段に配される
    前記バッファへの入力選択制御を行う入力選択制御手
    段、 として機能させることを特徴とするベクトル演算処理プ
    ログラム。
  9. 【請求項9】 請求項7または8に記載のベクトル演算
    プログラムにおいて、 前記コンピュータを、 前記シフト処理された各配列データが入力されたときに
    当該演算結果を有効にする演算手段として機能させるこ
    とを特徴とするベクトル演算プログラム。
JP2002139487A 2002-05-15 2002-05-15 ベクトル演算処理装置、ベクトル演算方法およびベクトル演算プログラム Expired - Lifetime JP3982324B2 (ja)

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 true JP2003330914A (ja) 2003-11-21
JP3982324B2 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)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8723288B2 (en) 2007-11-15 2014-05-13 Freiberger Compound Materials Gmbh Method of cutting single crystals
CN117195989A (zh) * 2023-11-06 2023-12-08 深圳市九天睿芯科技有限公司 向量处理器、神经网络加速器、芯片及电子设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8723288B2 (en) 2007-11-15 2014-05-13 Freiberger Compound Materials Gmbh Method of cutting single crystals
CN117195989A (zh) * 2023-11-06 2023-12-08 深圳市九天睿芯科技有限公司 向量处理器、神经网络加速器、芯片及电子设备

Also Published As

Publication number Publication date
JP3982324B2 (ja) 2007-09-26

Similar Documents

Publication Publication Date Title
EP0656582B1 (en) Parallel adding and averaging circuit and method
JP2539974B2 (ja) 情報処理装置におけるレジスタの読出制御方式
US7146486B1 (en) SIMD processor with scalar arithmetic logic units
EP0539595A1 (en) Data processor and data processing method
JPH02226420A (ja) 浮動小数点演算実行装置
US8024549B2 (en) Two-dimensional processor array of processing elements
JP3593439B2 (ja) 画像処理装置
JP2003330914A (ja) ベクトル演算処理装置、ベクトル演算方法およびベクトル演算プログラム
EP1936492A1 (en) SIMD processor with reduction unit
US9262123B2 (en) Data processing apparatus and method for performing a narrowing-and-rounding arithmetic operation
JPH1153189A (ja) 演算装置、演算方法及びコンピュータ読み取り可能な記録媒体
Ilić et al. Address generation unit as accelerator block in DSP
JP2584156B2 (ja) プログラム制御型プロセッサ
TWI807927B (zh) 具有向量歸約方法與元素歸約方法的向量處理器
WO2008077803A1 (en) Simd processor with reduction unit
JP2001092658A (ja) データ処理回路及びデータ処理装置
JPH0652215A (ja) 行列演算プロセッサ
JP2004062401A (ja) 演算プロセッサおよび当該演算プロセッサを用いたカメラ装置
US20060047736A1 (en) Arithmetic circuitry for averaging and methods thereof
JP3547316B2 (ja) プロセッサ
JP2542120B2 (ja) 情報処理装置
JP3073738B2 (ja) パイプライン回路合成方法
JPH117440A (ja) プロセッサ、コンパイラ、積和演算方法及び記録媒体
JP2001034603A (ja) 積和演算処理装置
JPH0668055A (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 (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100713

Year of fee payment: 3

R150 Certificate of patent (=grant) or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150