JPH0962654A - リストベクトル処理装置 - Google Patents
リストベクトル処理装置Info
- Publication number
- JPH0962654A JPH0962654A JP21344995A JP21344995A JPH0962654A JP H0962654 A JPH0962654 A JP H0962654A JP 21344995 A JP21344995 A JP 21344995A JP 21344995 A JP21344995 A JP 21344995A JP H0962654 A JPH0962654 A JP H0962654A
- Authority
- JP
- Japan
- Prior art keywords
- data
- vector
- bytes
- storage unit
- stored
- 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.)
- Pending
Links
Landscapes
- Complex Calculations (AREA)
Abstract
(57)【要約】
【課題】 連続するリストベクトル命令でアクセスする
記憶部上のアドレスが隣接する場合に、ベクトル命令の
処理を高速化する。 【解決手段】 主記憶部をアクセスするデータパスの幅
を8バイト備える情報処理装置において、命令語中に記
憶部上の隣接するデータをロードするか否かを指定する
動作指示フィールド401を持ち、該フィールドの情報
によって主記憶部14から読み出す読み出しデータ幅が
4バイトか8バイトかを決定し、動作指示フィールド1
4の情報に従って主記憶部14上の隣接する2つの4バ
イトデータを8バイトデータとしてアクセスしてベクト
ルレジスタに格納する。また、動作指示フィールド40
1の情報に従って主記憶部14に格納する隣接する2つ
の4バイトデータを8バイトデータとして主記憶部14
に格納する。 【効果】 隣接するアドレスに対するリストベクトル命
令を高速処理できる。
記憶部上のアドレスが隣接する場合に、ベクトル命令の
処理を高速化する。 【解決手段】 主記憶部をアクセスするデータパスの幅
を8バイト備える情報処理装置において、命令語中に記
憶部上の隣接するデータをロードするか否かを指定する
動作指示フィールド401を持ち、該フィールドの情報
によって主記憶部14から読み出す読み出しデータ幅が
4バイトか8バイトかを決定し、動作指示フィールド1
4の情報に従って主記憶部14上の隣接する2つの4バ
イトデータを8バイトデータとしてアクセスしてベクト
ルレジスタに格納する。また、動作指示フィールド40
1の情報に従って主記憶部14に格納する隣接する2つ
の4バイトデータを8バイトデータとして主記憶部14
に格納する。 【効果】 隣接するアドレスに対するリストベクトル命
令を高速処理できる。
Description
【0001】
【発明の属する技術分野】本特許は、リストベクトル処
理装置に関する。
理装置に関する。
【0002】
【従来の技術】通常、ベクトル処理するベクトル要素の
データ幅は4バイトか8バイトであるため、主記憶部を
アクセスするデータパスの幅は8バイト用意されてお
り、4バイト幅のデータをアクセスする場合は、半分の
データパスは使用されないことが多い。
データ幅は4バイトか8バイトであるため、主記憶部を
アクセスするデータパスの幅は8バイト用意されてお
り、4バイト幅のデータをアクセスする場合は、半分の
データパスは使用されないことが多い。
【0003】従来のこのようなベクトル処理装置の例を
図7に示す。本例において、8つのベクトルレジスタ2
−1〜2−8はクロスバ4を経由して加算器3−1及び
アドレス変換演算器3−2を含む4つの演算器3−1〜
3−4と接続されている。演算器3−1〜3−4の演算
結果は任意のベクトルレジスタ2−1〜2−8に格納す
ることができ、ベクトルレジスタ2−1〜2−8は主記
憶制御部6を介して主記憶部14にデータを送出した
り、主記憶部14からデータを受け取ったりできるよう
になっている。
図7に示す。本例において、8つのベクトルレジスタ2
−1〜2−8はクロスバ4を経由して加算器3−1及び
アドレス変換演算器3−2を含む4つの演算器3−1〜
3−4と接続されている。演算器3−1〜3−4の演算
結果は任意のベクトルレジスタ2−1〜2−8に格納す
ることができ、ベクトルレジスタ2−1〜2−8は主記
憶制御部6を介して主記憶部14にデータを送出した
り、主記憶部14からデータを受け取ったりできるよう
になっている。
【0004】次に、リストベクトルロードの一例とし
て、次式に示すFORTRANのプログラムを4バイト
幅で処理する場合の動作を図を用いて説明する。
て、次式に示すFORTRANのプログラムを4バイト
幅で処理する場合の動作を図を用いて説明する。
【0005】DO 10 I=1,N Y(I)=X(A(I))+X(A(I)+1) 10 CONTINUE 図8は、本動作のタイミングチャートを示し、また図9
には、本動作における主記憶部14とベクトルレジスタ
2−3,2−6の内容を示す。
には、本動作における主記憶部14とベクトルレジスタ
2−3,2−6の内容を示す。
【0006】A,X,Yはそれぞれ配列を意味し、X
(A(I))は、A(I)というベクトルデータをアド
レスとして主記憶部14上の配列Xをアクセスすること
を示す。同様に、X(A(I)+1)はA(I)+1と
いうベクトルデータをアドレスとして主記憶部14上の
配列Xをアクセスすることを示す。
(A(I))は、A(I)というベクトルデータをアド
レスとして主記憶部14上の配列Xをアクセスすること
を示す。同様に、X(A(I)+1)はA(I)+1と
いうベクトルデータをアドレスとして主記憶部14上の
配列Xをアクセスすることを示す。
【0007】ここで、説明の都合上、配列A(I)に
は、(0,2,4,6,8,12,20,…)が格納さ
れているものとし、ベースアドレス(後述される)は0
であると仮定する。
は、(0,2,4,6,8,12,20,…)が格納さ
れているものとし、ベースアドレス(後述される)は0
であると仮定する。
【0008】図8中、1−Aはベクトルロード命令によ
って主記憶部14をアクセスしていることを示し、2−
Aは主記憶部14から読み出したデータをベクトルレジ
スタへ格納していることを示す。3−B,3−Eはアド
レス変換演算器3−2へ入力するベクトルデータが格納
されているベクトルレジスタの読み出しを示し、4−
B,4−Eはアドレス変換演算器3−2の演算結果をベ
クトルレジスタに格納していることを示す。5−D,5
−Gは加算器3−1へ入力するベクトルデータが格納さ
れているベクトルレジスタの読み出しを示し、6−D,
6−Gは加算器3−1の演算結果をベクトルレジスタに
格納していることを示す。
って主記憶部14をアクセスしていることを示し、2−
Aは主記憶部14から読み出したデータをベクトルレジ
スタへ格納していることを示す。3−B,3−Eはアド
レス変換演算器3−2へ入力するベクトルデータが格納
されているベクトルレジスタの読み出しを示し、4−
B,4−Eはアドレス変換演算器3−2の演算結果をベ
クトルレジスタに格納していることを示す。5−D,5
−Gは加算器3−1へ入力するベクトルデータが格納さ
れているベクトルレジスタの読み出しを示し、6−D,
6−Gは加算器3−1の演算結果をベクトルレジスタに
格納していることを示す。
【0009】また、7−C,7−Fはリストベクトルロ
ード命令時にベクトルレジスタからアドレスデータを読
み出し主記憶制御部6に送出していることを、8−C,
8−Fは主記憶部14からロードしたデータを主記憶制
御部6を介してベクトルレジスタに格納していることを
示し、また、9−Hはストア命令実行時にストアデータ
を読み出していること(リストベクトルストア時には、
ストアデータとアドレスデータを読み出す)を、10−
Hはストアデータを主記憶部14に格納していることを
示す。
ード命令時にベクトルレジスタからアドレスデータを読
み出し主記憶制御部6に送出していることを、8−C,
8−Fは主記憶部14からロードしたデータを主記憶制
御部6を介してベクトルレジスタに格納していることを
示し、また、9−Hはストア命令実行時にストアデータ
を読み出していること(リストベクトルストア時には、
ストアデータとアドレスデータを読み出す)を、10−
Hはストアデータを主記憶部14に格納していることを
示す。
【0010】以下、前述のプログラムによる動作を本タ
イミングチャートに沿い、順を追って詳述する。
イミングチャートに沿い、順を追って詳述する。
【0011】まず、配列X(A(I))のアドレスとな
る4バイトデータA(I)を主記憶部14から読み出し
(1−A)、ベクトルレジスタ2−1にロードする(2
−A)。また、X(A(I))をロードする為、ベクト
ルレジスタ2−1内のデータを読み出して(3−B)ア
ドレス変換演算器3−2に入力し、2ビット左シフトし
てベースアドレスを加えることによってアドレス用デー
タに変換し、その結果をベクトルレジスタ2−2に格納
する(4−B)。アドレス変換後のデータは[(0,
8,16,24,32,48,80,…)]となる。
る4バイトデータA(I)を主記憶部14から読み出し
(1−A)、ベクトルレジスタ2−1にロードする(2
−A)。また、X(A(I))をロードする為、ベクト
ルレジスタ2−1内のデータを読み出して(3−B)ア
ドレス変換演算器3−2に入力し、2ビット左シフトし
てベースアドレスを加えることによってアドレス用デー
タに変換し、その結果をベクトルレジスタ2−2に格納
する(4−B)。アドレス変換後のデータは[(0,
8,16,24,32,48,80,…)]となる。
【0012】リストベクトルロード命令によって、ベク
トルレジスタ2−2を読み出して(7−C)主記憶部1
4に送出する。図9に示すように、ベクトルレジスタ2
−2に格納されているアドレスデータ[(0,8,1
6,24,32,48,80,…)]をアドレスとして
主記憶部14上の配列Xをアクセスして4バイトデータ
をロードし、その結果[X(0),X(2),X
(4),X(6),X(8),X(12),X(2
0),…]をベクトルレジスタ2−3の上位4バイトに
格納する(8−C)。この時、ベクトルレジスタ2−3
の下位4バイトの値は不定値である。
トルレジスタ2−2を読み出して(7−C)主記憶部1
4に送出する。図9に示すように、ベクトルレジスタ2
−2に格納されているアドレスデータ[(0,8,1
6,24,32,48,80,…)]をアドレスとして
主記憶部14上の配列Xをアクセスして4バイトデータ
をロードし、その結果[X(0),X(2),X
(4),X(6),X(8),X(12),X(2
0),…]をベクトルレジスタ2−3の上位4バイトに
格納する(8−C)。この時、ベクトルレジスタ2−3
の下位4バイトの値は不定値である。
【0013】次に、X(A(I)+1)をロードする。
A(I)+1を計算する為にベクトルレジスタ2−1内
のデータ[A(I)]を読み出して(5−D)加算器3
−1に入力し、+1した結果[A(I)+1;(1,
3,5,7,9,13,21…)をベクトルレジスタ2
−4に格納する(6−D)。更に、ベクトルレジスタ2
−4内のデータ[A(I)+1]を読み出して(3−
E)アドレス変換演算器3−2に入力し、2ビット左シ
フトしてベースアドレスを加えることによってアドレス
用データに変換し、その結果をベクトルレジスタ2−5
に格納する(4−E)。アドレス変換後のデータは
[(4,12,20,28,36,52,84,…)]
となる。
A(I)+1を計算する為にベクトルレジスタ2−1内
のデータ[A(I)]を読み出して(5−D)加算器3
−1に入力し、+1した結果[A(I)+1;(1,
3,5,7,9,13,21…)をベクトルレジスタ2
−4に格納する(6−D)。更に、ベクトルレジスタ2
−4内のデータ[A(I)+1]を読み出して(3−
E)アドレス変換演算器3−2に入力し、2ビット左シ
フトしてベースアドレスを加えることによってアドレス
用データに変換し、その結果をベクトルレジスタ2−5
に格納する(4−E)。アドレス変換後のデータは
[(4,12,20,28,36,52,84,…)]
となる。
【0014】リストベクトルロード命令によって、ベク
トルレジスタ2−5を読み出して(7−F)主記憶部1
4に送出する。図9に示すように、ベクトルレジスタ2
−5に格納されているアドレスデータ[(4,12,2
0,28,36,52,84,…)]をアドレスとして
主記憶部14上の配列Xをアクセスして4バイトデータ
をロードし、その結果[X(1),X(3),X
(5),X(7),X(9),X(13),X(2
1),…]をベクトルレジスタ2−6の上位4バイトに
格納する(8−F)。この時、ベクトルレジスタ2−6
の下位4バイトの値は不定値である。
トルレジスタ2−5を読み出して(7−F)主記憶部1
4に送出する。図9に示すように、ベクトルレジスタ2
−5に格納されているアドレスデータ[(4,12,2
0,28,36,52,84,…)]をアドレスとして
主記憶部14上の配列Xをアクセスして4バイトデータ
をロードし、その結果[X(1),X(3),X
(5),X(7),X(9),X(13),X(2
1),…]をベクトルレジスタ2−6の上位4バイトに
格納する(8−F)。この時、ベクトルレジスタ2−6
の下位4バイトの値は不定値である。
【0015】最後に、各リストベクトルロード命令でロ
ードしたデータが格納されているベクトルレジスタ2−
3及び2−6を読み出して(5−G)、加算器3−1へ
入力し加算を行い、結果[Y(I)]をベクトルレジス
タ2−7へ格納して(6−G)、ベクトルレジスタ2−
7を読み出して(9−H)、主記憶部14へストアする
(10−H)。
ードしたデータが格納されているベクトルレジスタ2−
3及び2−6を読み出して(5−G)、加算器3−1へ
入力し加算を行い、結果[Y(I)]をベクトルレジス
タ2−7へ格納して(6−G)、ベクトルレジスタ2−
7を読み出して(9−H)、主記憶部14へストアする
(10−H)。
【0016】次に、リストベクトルストアの一例とし
て、次式に示すFORTRANのプログラムを4バイト
幅で処理する場合の動作を図を用いて説明する。
て、次式に示すFORTRANのプログラムを4バイト
幅で処理する場合の動作を図を用いて説明する。
【0017】DO 10 I=1,N Y(A(I))=X(I) Y(A(I)+1)=Z(I) 10 CONTINUE 図10は、本動作のタイミングチャートを示し、また図
11には、主記憶部14とベクトルレジスタ2の内容を
示す。
11には、主記憶部14とベクトルレジスタ2の内容を
示す。
【0018】A,X,Y,Zはそれぞれ配列を意味し、
Y(A(I))は、A(I)というベクトルデータをア
ドレスとして主記憶部14上の配列Yをアクセスするこ
とを示す。同様に、Y(A(I)+1)はA(I)+1
というベクトルデータをアドレスとして主記憶部14上
の配列Yをアクセスすることを示す。ここで、説明の都
合上、配列A(I)には、(0,2,4,6,8,1
2,20,…)が格納されているものとし、ベースアド
レス(後述される)は0であると仮定する。
Y(A(I))は、A(I)というベクトルデータをア
ドレスとして主記憶部14上の配列Yをアクセスするこ
とを示す。同様に、Y(A(I)+1)はA(I)+1
というベクトルデータをアドレスとして主記憶部14上
の配列Yをアクセスすることを示す。ここで、説明の都
合上、配列A(I)には、(0,2,4,6,8,1
2,20,…)が格納されているものとし、ベースアド
レス(後述される)は0であると仮定する。
【0019】まず、配列Y(A(I))のアドレスとな
る4バイトデータA(I)を主記憶部14から読み出し
(1−A)、ベクトルレジスタ2−1にロードする(2
−A)。また、主記憶部14をアクセスし(1−B、1
−C)、ベクトルレジスタ2−2,2−3へ4バイトデ
ータX(I)、及びZ(I)を格納する(2−B,2−
C)。X(I)をY(A(I))にストアする為、ベク
トルレジスタ2−1内のアドレスデータを読み出して
(3−D)アドレス変換演算器3−2に入力し、2ビッ
ト左シフトしてベースアドレスを加えることによってア
ドレス用データに変換し、その結果をベクトルレジスタ
2−4に格納する(4−D)。アドレス変換後のデータ
は[(0,8,16,24,32,48,80,…)]
となる。
る4バイトデータA(I)を主記憶部14から読み出し
(1−A)、ベクトルレジスタ2−1にロードする(2
−A)。また、主記憶部14をアクセスし(1−B、1
−C)、ベクトルレジスタ2−2,2−3へ4バイトデ
ータX(I)、及びZ(I)を格納する(2−B,2−
C)。X(I)をY(A(I))にストアする為、ベク
トルレジスタ2−1内のアドレスデータを読み出して
(3−D)アドレス変換演算器3−2に入力し、2ビッ
ト左シフトしてベースアドレスを加えることによってア
ドレス用データに変換し、その結果をベクトルレジスタ
2−4に格納する(4−D)。アドレス変換後のデータ
は[(0,8,16,24,32,48,80,…)]
となる。
【0020】図11に示すように、リストベクトルスト
ア命令によって、ストアデータの格納されているベクト
ルレジスタ2−2とアドレスデータの格納されているベ
クトルレジスタ2−4を読み出して(9−E)、ベクト
ルレジスタ2−4に格納されているデータ[(0,8,
16,24,32,48,80,…)]をアドレスとし
て主記憶部14上の配列Yに4バイトデータX(I)を
格納する(10−E)。
ア命令によって、ストアデータの格納されているベクト
ルレジスタ2−2とアドレスデータの格納されているベ
クトルレジスタ2−4を読み出して(9−E)、ベクト
ルレジスタ2−4に格納されているデータ[(0,8,
16,24,32,48,80,…)]をアドレスとし
て主記憶部14上の配列Yに4バイトデータX(I)を
格納する(10−E)。
【0021】次に、Z(I)をY(A(I)+1)にス
トアする。それには、A(I)+1を計算する為に、ベ
クトルレジスタ2−1内のデータ[A(I)]を読み出
して(5−F)加算器3−1に入力し、+1した結果
[A(I)+1;(1,3,5,7,9,13,21
…)をベクトルレジスタ2−5に格納する(6−F)。
更に、ベクトルレジスタ2−5内のデータ[A(I)+
1]を読み出して(3−G)アドレス変換演算器3−2
に入力し、2ビット左シフトしてベースアドレスを加え
ることによってアドレス用データに変換し、結果をベク
トルレジスタ2−6に格納する(4−G)。アドレス変
換後のデータは[(4,12,20,28,36,5
2,84…)]となる。
トアする。それには、A(I)+1を計算する為に、ベ
クトルレジスタ2−1内のデータ[A(I)]を読み出
して(5−F)加算器3−1に入力し、+1した結果
[A(I)+1;(1,3,5,7,9,13,21
…)をベクトルレジスタ2−5に格納する(6−F)。
更に、ベクトルレジスタ2−5内のデータ[A(I)+
1]を読み出して(3−G)アドレス変換演算器3−2
に入力し、2ビット左シフトしてベースアドレスを加え
ることによってアドレス用データに変換し、結果をベク
トルレジスタ2−6に格納する(4−G)。アドレス変
換後のデータは[(4,12,20,28,36,5
2,84…)]となる。
【0022】更に、図11に示すように、リストベクト
ルストア命令によって、ストアデータの格納されている
ベクトルレジスタ2−3とアドレスデータの格納されて
いるベクトルレジスタ2−6を読み出して(9−H)、
レジスタ2−6に格納されているデータ[(4,12,
20,28,36,52,84,…)]をアドレスとし
て主記憶部14上の配列Yに4バイトデータZ(I)を
格納する(10−H)。
ルストア命令によって、ストアデータの格納されている
ベクトルレジスタ2−3とアドレスデータの格納されて
いるベクトルレジスタ2−6を読み出して(9−H)、
レジスタ2−6に格納されているデータ[(4,12,
20,28,36,52,84,…)]をアドレスとし
て主記憶部14上の配列Yに4バイトデータZ(I)を
格納する(10−H)。
【0023】また、特開昭62−249246には、主
記憶アクセス命令1命令の中で以前にアクセスして得た
データを保持しておき、以前にアクセスしたアドレスと
所定数だけ更新された後のアドレスを比較し、一致した
場合は主記憶部からデータをロードせずに保持してある
ロードデータを使用することによって主記憶アクセスを
高速化する技術が記載されている。しかし、この技術で
は、命令を発行し、主記憶部をアクセスする時に同一ア
ドレスであるかどうか判断するので、ソースコード上で
はアドレス関係が判断できず、前述の演算式におけるX
(A(I))とX(A(I)+1)は、やはり同様に、
命令で処理しなければならない。
記憶アクセス命令1命令の中で以前にアクセスして得た
データを保持しておき、以前にアクセスしたアドレスと
所定数だけ更新された後のアドレスを比較し、一致した
場合は主記憶部からデータをロードせずに保持してある
ロードデータを使用することによって主記憶アクセスを
高速化する技術が記載されている。しかし、この技術で
は、命令を発行し、主記憶部をアクセスする時に同一ア
ドレスであるかどうか判断するので、ソースコード上で
はアドレス関係が判断できず、前述の演算式におけるX
(A(I))とX(A(I)+1)は、やはり同様に、
命令で処理しなければならない。
【0024】
【発明が解決しようとする課題】上述した従来のベクト
ル処理装置では、リストベクトル処理が連続し、各々の
リストベクトル命令でアクセスする主記憶上のアクセス
が隣接する場合でも、各々のリストベクトル命令が主記
憶部を4バイトずつアクセスしている為、複数のリスト
ベクトル命令が必要であり、処理全体として長時間を要
するという問題点がある。
ル処理装置では、リストベクトル処理が連続し、各々の
リストベクトル命令でアクセスする主記憶上のアクセス
が隣接する場合でも、各々のリストベクトル命令が主記
憶部を4バイトずつアクセスしている為、複数のリスト
ベクトル命令が必要であり、処理全体として長時間を要
するという問題点がある。
【0025】
【課題を解決するための手段】第1の本発明の装置は、
1つ以上のベクトルレジスタと演算器を有するベクトル
処理部と、複数の記憶単位から構成される主記憶部と、
前記ベクトル処理部から送られてくるベクトルデータを
アドレスとして前記主記憶部をアクセスする機能である
リストベクトルを有し、前記主記憶部をアクセスするデ
ータパスの幅がNバイトである情報処理装置において、
N/2バイト長で処理するループ内でN/2バイトデー
タをアクセスするリストベクトルロードが連続し、該リ
ストベクトルロードが隣接するアドレスをアクセスする
際に、命令語中に記憶部上の隣接するデータをロードす
るか否かを指定する動作指示フィールドを持ち、また該
動作指示フィールド情報にしたがって主記憶部をアクセ
スするデータ幅をN/2バイトにするかNバイトにする
かを決定するデータ幅制御手段を設けることによって、
前記主記憶部上の隣接する2つのN/2バイトデータを
Nバイトデータとしてアクセスし前記ベクトル処理部内
のベクトルレジスタに格納するリストベクトル処理装
置。
1つ以上のベクトルレジスタと演算器を有するベクトル
処理部と、複数の記憶単位から構成される主記憶部と、
前記ベクトル処理部から送られてくるベクトルデータを
アドレスとして前記主記憶部をアクセスする機能である
リストベクトルを有し、前記主記憶部をアクセスするデ
ータパスの幅がNバイトである情報処理装置において、
N/2バイト長で処理するループ内でN/2バイトデー
タをアクセスするリストベクトルロードが連続し、該リ
ストベクトルロードが隣接するアドレスをアクセスする
際に、命令語中に記憶部上の隣接するデータをロードす
るか否かを指定する動作指示フィールドを持ち、また該
動作指示フィールド情報にしたがって主記憶部をアクセ
スするデータ幅をN/2バイトにするかNバイトにする
かを決定するデータ幅制御手段を設けることによって、
前記主記憶部上の隣接する2つのN/2バイトデータを
Nバイトデータとしてアクセスし前記ベクトル処理部内
のベクトルレジスタに格納するリストベクトル処理装
置。
【0026】第2の本発明の装置は、1つ以上のベクト
ルレジスタと演算器を有するベクトル処理部と、複数の
記憶単位から構成される主記憶部と、前記ベクトル処理
部から送られてくるベクトルデータをアドレスとして前
記主記憶部をアクセスする機能であるリストベクトルを
有し、前記主記憶部をアクセスするデータパスの幅がN
バイトである情報処理装置において、N/2バイト長で
処理するループ内でN/2バイトデータをアクセスする
リストベクトルストアが連続し、該リストベクトルスト
アが隣接するアドレスをアクセスする際に、命令語中に
記憶部上の隣接する領域にデータをストアするか否かを
指定する動作指示フィールドを持ち、また該動作指示フ
ィールド情報にしたがってベクトルレジスタから読み出
すストアデータのデータ幅を決定するデータ読み出し制
御手段と、主記憶部をアクセスするデータ幅をN/2バ
イトにするかNバイトにするかを決定するデータ幅制御
手段を設けることによって、該動作指示フィールド情報
に従って前記主記憶部に格納する隣接する2つのN/2
バイトデータをNバイトデータとして前記主記憶部上に
格納するリストベクトル処理装置。
ルレジスタと演算器を有するベクトル処理部と、複数の
記憶単位から構成される主記憶部と、前記ベクトル処理
部から送られてくるベクトルデータをアドレスとして前
記主記憶部をアクセスする機能であるリストベクトルを
有し、前記主記憶部をアクセスするデータパスの幅がN
バイトである情報処理装置において、N/2バイト長で
処理するループ内でN/2バイトデータをアクセスする
リストベクトルストアが連続し、該リストベクトルスト
アが隣接するアドレスをアクセスする際に、命令語中に
記憶部上の隣接する領域にデータをストアするか否かを
指定する動作指示フィールドを持ち、また該動作指示フ
ィールド情報にしたがってベクトルレジスタから読み出
すストアデータのデータ幅を決定するデータ読み出し制
御手段と、主記憶部をアクセスするデータ幅をN/2バ
イトにするかNバイトにするかを決定するデータ幅制御
手段を設けることによって、該動作指示フィールド情報
に従って前記主記憶部に格納する隣接する2つのN/2
バイトデータをNバイトデータとして前記主記憶部上に
格納するリストベクトル処理装置。
【0027】
[実施例]次に、本発明について図面を参照して説明す
る。
る。
【0028】図1は、本発明の一実施例を示す構成図で
あり、ベクトル処理部1及び命令制御部5が主記憶制御
部6を介して主記憶部14と接続されている。
あり、ベクトル処理部1及び命令制御部5が主記憶制御
部6を介して主記憶部14と接続されている。
【0029】ベクトル処理部1は、8つのベクトルレジ
スタ2−1〜2−8を含み、該ベクトルレジスタ2−1
〜2−8はクロスバ4を経由して4つの演算器3−1〜
3−4と接続している。演算器3−1〜3−4の演算結
果は任意のベクトルレジスタ2−1〜2−8に格納する
ことができ、ベクトルレジスタ2−1〜2−8は後述す
る主記憶制御部6を介して主記憶部14にデータを送っ
たり、主記憶部14からデータを受け取ったりすること
ができる。また、主記憶制御部6はストアデータ格納手
段12,ロードデータ格納手段13およびデータ幅制御
手段15を有する。
スタ2−1〜2−8を含み、該ベクトルレジスタ2−1
〜2−8はクロスバ4を経由して4つの演算器3−1〜
3−4と接続している。演算器3−1〜3−4の演算結
果は任意のベクトルレジスタ2−1〜2−8に格納する
ことができ、ベクトルレジスタ2−1〜2−8は後述す
る主記憶制御部6を介して主記憶部14にデータを送っ
たり、主記憶部14からデータを受け取ったりすること
ができる。また、主記憶制御部6はストアデータ格納手
段12,ロードデータ格納手段13およびデータ幅制御
手段15を有する。
【0030】図2は、本発明で使用される命令語の一例
を示す図であり、本命令語400は、動作指示フィール
ド401と、4バイトデータアクセスのリストベクトル
命令を示す命令指定部402と、使用するベクトルレジ
スタを指定するVR指定部403とで構成される。動作
指示フィールド401は、VR指定部403で指定され
たベクトルレジスタ内のアドレスをアクセスする場合、
4バイトをアクセスするか8バイトをアクセスするかを
指定し、主記憶制御部6内のデータ幅制御手段15に信
号を送出する。データ幅制御手段15は、動作指示フィ
ールド401が“0”の場合には、指定されたアドレス
先のデータを4バイトデータとして主記憶部をアクセス
し、動作指示フィールド401が“1”の場合には指定
されたアドレス先の4バイトデータと隣接する4バイト
データとを8バイトデータと仮定して主記憶部をアクセ
スする。
を示す図であり、本命令語400は、動作指示フィール
ド401と、4バイトデータアクセスのリストベクトル
命令を示す命令指定部402と、使用するベクトルレジ
スタを指定するVR指定部403とで構成される。動作
指示フィールド401は、VR指定部403で指定され
たベクトルレジスタ内のアドレスをアクセスする場合、
4バイトをアクセスするか8バイトをアクセスするかを
指定し、主記憶制御部6内のデータ幅制御手段15に信
号を送出する。データ幅制御手段15は、動作指示フィ
ールド401が“0”の場合には、指定されたアドレス
先のデータを4バイトデータとして主記憶部をアクセス
し、動作指示フィールド401が“1”の場合には指定
されたアドレス先の4バイトデータと隣接する4バイト
データとを8バイトデータと仮定して主記憶部をアクセ
スする。
【0031】命令制御部5よりリストベクトルロード命
令が起動された場合には、主記憶部14をアクセスする
アドレスが格納されているベクトルレジスタを読み出し
該アドレスにしたがって主記憶部14をアクセスする
が、その時にデータ幅制御手段15は、命令語400の
動作指示フィールド401により、アクセスするデータ
幅は4バイトであるか8バイトであるかを決定する。主
記憶部14より読み出したデータはロードデータ格納手
段13に一時格納し、ベクトル処理部1内のベクトルレ
ジスタに送出する。
令が起動された場合には、主記憶部14をアクセスする
アドレスが格納されているベクトルレジスタを読み出し
該アドレスにしたがって主記憶部14をアクセスする
が、その時にデータ幅制御手段15は、命令語400の
動作指示フィールド401により、アクセスするデータ
幅は4バイトであるか8バイトであるかを決定する。主
記憶部14より読み出したデータはロードデータ格納手
段13に一時格納し、ベクトル処理部1内のベクトルレ
ジスタに送出する。
【0032】8バイトデータとして主記憶部14からベ
クトルレジスタに格納された場合、該データの各要素を
上位4バイトと下位4バイトに分割する手段が必要にな
るが、ここでは一例として、命令によってデータを分割
することを実現するものとする。データ分割命令は論理
演算器で処理するものとし、該命令によってベクトルレ
ジスタに格納された8バイトのロードデータの下位4バ
イトデータは命令語中に指定されたベクトルレジスタの
上位4バイトに移送される。
クトルレジスタに格納された場合、該データの各要素を
上位4バイトと下位4バイトに分割する手段が必要にな
るが、ここでは一例として、命令によってデータを分割
することを実現するものとする。データ分割命令は論理
演算器で処理するものとし、該命令によってベクトルレ
ジスタに格納された8バイトのロードデータの下位4バ
イトデータは命令語中に指定されたベクトルレジスタの
上位4バイトに移送される。
【0033】一方、命令制御部5よりリストベクトルス
トア命令が起動されるた場合には、主記憶部14をアク
セスするアドレスが格納されているベクトルレジスタ
と、ストアデータが格納されているベクトルレジスタを
読み出す。この時、データ読み出し制御手段16は命令
語400中の動作指示フィールド401が“0”の場合
は、ストアデータを4バイトデータとして、また動作指
示フィールド401が“1”の場合はストアデータがス
トアデータを8バイトデータとして読み出し、主記憶制
御部6内のストアデータ格納手段12にデータを送出す
る。
トア命令が起動されるた場合には、主記憶部14をアク
セスするアドレスが格納されているベクトルレジスタ
と、ストアデータが格納されているベクトルレジスタを
読み出す。この時、データ読み出し制御手段16は命令
語400中の動作指示フィールド401が“0”の場合
は、ストアデータを4バイトデータとして、また動作指
示フィールド401が“1”の場合はストアデータがス
トアデータを8バイトデータとして読み出し、主記憶制
御部6内のストアデータ格納手段12にデータを送出す
る。
【0034】ストアデータを8バイトデータとして主記
憶部14に格納する場合は、2つレジスタに格納されて
いる4バイトストアデータの各要素を結合して8バイト
データにする手段が必要になるが、ここでは一例とし
て、命令によってデータを結合することを実現するもの
とする。データ結合命令は、論理演算器で処理するもの
とし、8バイトデータにした場合の上位4バイトデータ
になるべきストアデータが格納されているベクトルレジ
スタを書き込みレジスタに指定し、下位4バイトになる
べきストアデータが格納されているベクトルレジスタを
読み出しレジスタに指定する。データ結合命令によって
読み出したベクトルレジスタ内の4バイトデータは書き
込みレジスタの下位4バイトに格納され8バイトデータ
が作成される。ストアデータ格納手段12に格納された
ストアデータはデータ幅制御手段15の制御に従って4
バイトあるいは8バイトデータとして主記憶部14に格
納される。 次に、リストベクトルロードの一例とし
て、次式に示すFORTRANのプログラムを4バイト
幅で処理する場合の動作を図を用いて説明する。
憶部14に格納する場合は、2つレジスタに格納されて
いる4バイトストアデータの各要素を結合して8バイト
データにする手段が必要になるが、ここでは一例とし
て、命令によってデータを結合することを実現するもの
とする。データ結合命令は、論理演算器で処理するもの
とし、8バイトデータにした場合の上位4バイトデータ
になるべきストアデータが格納されているベクトルレジ
スタを書き込みレジスタに指定し、下位4バイトになる
べきストアデータが格納されているベクトルレジスタを
読み出しレジスタに指定する。データ結合命令によって
読み出したベクトルレジスタ内の4バイトデータは書き
込みレジスタの下位4バイトに格納され8バイトデータ
が作成される。ストアデータ格納手段12に格納された
ストアデータはデータ幅制御手段15の制御に従って4
バイトあるいは8バイトデータとして主記憶部14に格
納される。 次に、リストベクトルロードの一例とし
て、次式に示すFORTRANのプログラムを4バイト
幅で処理する場合の動作を図を用いて説明する。
【0035】DO 10 I=1,N Y(I)=X(A(I))+X(A(I)+1) 10 CONTINUE 図3は、本動作のタイミングチャートを示し、また図4
には、本動作における主記憶部14とベクトルレジスタ
2−3,2−6の内容を示す。
には、本動作における主記憶部14とベクトルレジスタ
2−3,2−6の内容を示す。
【0036】A,X,Yはそれぞれ配列を意味し、X
(A(I))は、A(I)というベクトルデータをアド
レスとして主記憶部14上の配列Xをアクセスすること
を示す。同様に、X(A(I)+1)はA(I)+1と
いうベクトルデータをアドレスとして主記憶部14上の
配列Xをアクセスすることを示す。
(A(I))は、A(I)というベクトルデータをアド
レスとして主記憶部14上の配列Xをアクセスすること
を示す。同様に、X(A(I)+1)はA(I)+1と
いうベクトルデータをアドレスとして主記憶部14上の
配列Xをアクセスすることを示す。
【0037】ここで、説明の都合上、配列A(I)に
は、(0,2,4,6,8,12,20,…)が格納さ
れているものとし、ベースアドレス(後述される)は0
であると仮定する。(A(I)+1)は(A(I))の
隣りのアドレスであることがわかるので、リストベクト
ルロードの命令語400を作成するときに動作指示フィ
ールド401には“1”をセットする。
は、(0,2,4,6,8,12,20,…)が格納さ
れているものとし、ベースアドレス(後述される)は0
であると仮定する。(A(I)+1)は(A(I))の
隣りのアドレスであることがわかるので、リストベクト
ルロードの命令語400を作成するときに動作指示フィ
ールド401には“1”をセットする。
【0038】図3中、1−Aはベクトルロード命令によ
って主記憶部14をアクセスしていることを示し、2−
Aは主記憶部14からロードしたデータをベクトルレジ
スタへ格納することを示す。3−Bはアドレス変換演算
器3−2へ入力するベクトルデータが格納されているベ
クトルレジスタの読み出しを、4−Bはアドレス変換演
算器3−2の演算結果をベクトルレジスタに格納してい
ることを示す。5−Eは加算器3−1へ入力するベクト
ルレジスタが格納されているベクトルレジスタの読み出
しを示し、6−Eは加算器3−1の演算結果をベクトル
レジスタに格納することを示す。
って主記憶部14をアクセスしていることを示し、2−
Aは主記憶部14からロードしたデータをベクトルレジ
スタへ格納することを示す。3−Bはアドレス変換演算
器3−2へ入力するベクトルデータが格納されているベ
クトルレジスタの読み出しを、4−Bはアドレス変換演
算器3−2の演算結果をベクトルレジスタに格納してい
ることを示す。5−Eは加算器3−1へ入力するベクト
ルレジスタが格納されているベクトルレジスタの読み出
しを示し、6−Eは加算器3−1の演算結果をベクトル
レジスタに格納することを示す。
【0039】また、7−Cはリストベクトルロード命令
時にベクトルレジスタからアドレスデータを読み出し主
記憶制御部6に送出することを、8−Cは主記憶部14
からロードしたデータを主記憶制御部14を介してベク
トルレジスタに格納することを示し、9−Fはストア命
令実行時にストアデータを読み出すタイミング(リスト
ベクトルストア時にはストアデータとアドレスデータを
読み出す)を、10−Fはストアデータを主記憶部14
に格納することを示す。11−Dは、論理演算器3−3
へ入力するベクトルデータが格納されているベクトルレ
ジスタの読み出しを示し、12−Dは論理演算器3−3
の演算結果をベクトルレジスタに格納することを示す。
時にベクトルレジスタからアドレスデータを読み出し主
記憶制御部6に送出することを、8−Cは主記憶部14
からロードしたデータを主記憶制御部14を介してベク
トルレジスタに格納することを示し、9−Fはストア命
令実行時にストアデータを読み出すタイミング(リスト
ベクトルストア時にはストアデータとアドレスデータを
読み出す)を、10−Fはストアデータを主記憶部14
に格納することを示す。11−Dは、論理演算器3−3
へ入力するベクトルデータが格納されているベクトルレ
ジスタの読み出しを示し、12−Dは論理演算器3−3
の演算結果をベクトルレジスタに格納することを示す。
【0040】まず、配列X(A(I))のアドレスとな
る4バイトデータA(I)を主記憶部14から読み出し
(1−A)、ベクトルレジスタ2−1にロードする(2
−A)。また、ベクトルレジスタ2−1内のデータを読
み出して(3−B)アドレス変換演算器3−2に入力
し、2ビット左シフトしてベースアドレスを加えること
によってアドレス用データに変換し、その結果をベクト
ルレジスタ2−2に格納する(4−B)。アドレス変換
後のデータは[(0,8,18,24,32,48,8
0,…)]となる。
る4バイトデータA(I)を主記憶部14から読み出し
(1−A)、ベクトルレジスタ2−1にロードする(2
−A)。また、ベクトルレジスタ2−1内のデータを読
み出して(3−B)アドレス変換演算器3−2に入力
し、2ビット左シフトしてベースアドレスを加えること
によってアドレス用データに変換し、その結果をベクト
ルレジスタ2−2に格納する(4−B)。アドレス変換
後のデータは[(0,8,18,24,32,48,8
0,…)]となる。
【0041】次に、リストベクトルロード命令によって
X(A(I))をロードするが、命令語400中の動作
指示フィールド401が“1”になっているので、デー
タ幅制御手段15は該リストベクトルロード命令では8
バイトをロードするように制御する。アドレスデータが
格納されているベクトルレジスタ2−2を読み出して
(7−C)、主記憶部14に送出する。図4に示すよう
に、データ[(0,8,18,24,32,48,8
0,…)]をアドレスとして主記憶部14上の配列Xを
アクセスして8バイトデータをロードし、その結果をロ
ードデータ格納手段13を介してベクトルレジスタ2−
3に格納する(8−C)。この時、ベクトルレジスタ2
−3には[X(0)X(1),,X(2)X(3),X
(4)X(5),X(6)X(7),X(8)X
(9),X(12)X(13),X(20)X(2
1),…]が格納される。
X(A(I))をロードするが、命令語400中の動作
指示フィールド401が“1”になっているので、デー
タ幅制御手段15は該リストベクトルロード命令では8
バイトをロードするように制御する。アドレスデータが
格納されているベクトルレジスタ2−2を読み出して
(7−C)、主記憶部14に送出する。図4に示すよう
に、データ[(0,8,18,24,32,48,8
0,…)]をアドレスとして主記憶部14上の配列Xを
アクセスして8バイトデータをロードし、その結果をロ
ードデータ格納手段13を介してベクトルレジスタ2−
3に格納する(8−C)。この時、ベクトルレジスタ2
−3には[X(0)X(1),,X(2)X(3),X
(4)X(5),X(6)X(7),X(8)X
(9),X(12)X(13),X(20)X(2
1),…]が格納される。
【0042】更に、データ分割命令によって、ベクトル
レジスタ2−3の8バイトデータを2つの4バイトデー
タに分割する。ロードデータが格納されているベクトル
レジスタ2−3を読み出し(11−D)論理演算器3−
3にデータを入力し、各要素の下位4バイトデータを命
令で指定されたベクトルレジスタ2−4の上位バイトに
格納する(12−D)。この時、ベクトルレジスタ2−
3には[X(0)X(1),,X(2)X(3),X
(4)X(5),X(6)X(7),X(8)X
(9),X(12)X(13),X(20)X(2
1),…]が、ベクトルレジスタ2−4には[X
(1),X(3),X(5),X(6),X(9),X
(13),X(21),…]それぞれ格納されている。
ベクトルレジスタ2−4内の下位4バイトデータは不定
である。
レジスタ2−3の8バイトデータを2つの4バイトデー
タに分割する。ロードデータが格納されているベクトル
レジスタ2−3を読み出し(11−D)論理演算器3−
3にデータを入力し、各要素の下位4バイトデータを命
令で指定されたベクトルレジスタ2−4の上位バイトに
格納する(12−D)。この時、ベクトルレジスタ2−
3には[X(0)X(1),,X(2)X(3),X
(4)X(5),X(6)X(7),X(8)X
(9),X(12)X(13),X(20)X(2
1),…]が、ベクトルレジスタ2−4には[X
(1),X(3),X(5),X(6),X(9),X
(13),X(21),…]それぞれ格納されている。
ベクトルレジスタ2−4内の下位4バイトデータは不定
である。
【0043】最後に、データ分割命令によって分割され
たデータが格納されているベクトルレジスタ2−3と2
−4を読み出して(5−E)、加算演算器3−1へ入力
し加算を行い、その結果[Y(I)]をベクトルレジス
タ2−5へ格納して(6−E)、ベクトルレジスタ2−
5を読み出して(9−F)主記憶部14へストアする
(10−F)。
たデータが格納されているベクトルレジスタ2−3と2
−4を読み出して(5−E)、加算演算器3−1へ入力
し加算を行い、その結果[Y(I)]をベクトルレジス
タ2−5へ格納して(6−E)、ベクトルレジスタ2−
5を読み出して(9−F)主記憶部14へストアする
(10−F)。
【0044】次に、リストベクトルストアの一例とし
て、次式に示すFORTRANのプログラムを4バイト
幅で処理する場合の動作を図を用いて説明する。
て、次式に示すFORTRANのプログラムを4バイト
幅で処理する場合の動作を図を用いて説明する。
【0045】DO 10 I=1,N Y(A(I))=X(I) Y(A(I)+1)=Z(I) 10 CONTINUE 図5は、本動作のタイミングチャートを示し、また図6
に、主記憶部14とベクトルレジスタ2の内容を示す。
に、主記憶部14とベクトルレジスタ2の内容を示す。
【0046】A,X,Y,Zはそれぞれ配列を意味し、
Y(A(I))は、A(I)というベクトルデータをア
ドレスとして主記憶部14上の配列Yをアクセスするこ
とを示す。同様に、Y(A(I)+1)はA(I)+1
というベクトルデータをアドレスとして主記憶部14上
の配列Yをアクセスすることを示す。ここで、説明の都
合上、配列A(I)には、(0,2,4,6,8,1
2,20,…)が格納されているものとし、ベースアド
レス(後述される)は0であると仮定する。(A(I)
+1)は(A(I))の隣のアドレスであることがわか
るので、リストベクトルストアの命令語400を作成す
るときに動作指示フィールド401には“1”をセット
する。
Y(A(I))は、A(I)というベクトルデータをア
ドレスとして主記憶部14上の配列Yをアクセスするこ
とを示す。同様に、Y(A(I)+1)はA(I)+1
というベクトルデータをアドレスとして主記憶部14上
の配列Yをアクセスすることを示す。ここで、説明の都
合上、配列A(I)には、(0,2,4,6,8,1
2,20,…)が格納されているものとし、ベースアド
レス(後述される)は0であると仮定する。(A(I)
+1)は(A(I))の隣のアドレスであることがわか
るので、リストベクトルストアの命令語400を作成す
るときに動作指示フィールド401には“1”をセット
する。
【0047】まず、配列Y(A(I))のアドレスとな
る4バイトデータA(I)を主記憶部14から読み出し
(1−A)、ロードデータをベクトルレジスタ2−1に
格納する(2−A)。また、4バイトデータX(I)、
及びZ(I)を主記憶部14をアクセスし(1−B,1
−C)、ロードデータをベクトルレジスタ2−2,2−
3へ格納する(2−B,2−C)。次に、ベクトルレジ
スタ2−1内のデータを読み出して(3−D)アドレス
変換演算器3−2に入力し、2ビット左シフトしてベー
スアドレスを加えることによってアドレス用データに変
換し、結果をベクトルレジスタ2−2に格納する(4−
D)。アドレス変換後のデータは[(0,8,16,2
4,32,48,80,…)]となる。
る4バイトデータA(I)を主記憶部14から読み出し
(1−A)、ロードデータをベクトルレジスタ2−1に
格納する(2−A)。また、4バイトデータX(I)、
及びZ(I)を主記憶部14をアクセスし(1−B,1
−C)、ロードデータをベクトルレジスタ2−2,2−
3へ格納する(2−B,2−C)。次に、ベクトルレジ
スタ2−1内のデータを読み出して(3−D)アドレス
変換演算器3−2に入力し、2ビット左シフトしてベー
スアドレスを加えることによってアドレス用データに変
換し、結果をベクトルレジスタ2−2に格納する(4−
D)。アドレス変換後のデータは[(0,8,16,2
4,32,48,80,…)]となる。
【0048】次に、データ結合命令によって、主記憶部
14上のアドレスA(I)に格納すべきデータを上位4
バイトに、アドレスA(I)+1に格納すべきデータを
下位4バイトになるように結合して8バイトデータを作
成する。下位4バイトになるべきデータ[Z(I)]が
格納されているベクトルレジスタ2−3を読み出して
(11−E)論理演算器3−3に入力し、上位4バイト
データ[X(I)]が格納されているベクトルレジスタ
2−2の下位4バイトにベクトルレジスタ2−3の4バ
イトデータを格納する。この時、ベクトルレジスタ内に
は、[X(1)Z(1),X(2)Z(2),X(3)
Z(3),X(4)Z(4),X(5)Z(5),…]
が格納される。
14上のアドレスA(I)に格納すべきデータを上位4
バイトに、アドレスA(I)+1に格納すべきデータを
下位4バイトになるように結合して8バイトデータを作
成する。下位4バイトになるべきデータ[Z(I)]が
格納されているベクトルレジスタ2−3を読み出して
(11−E)論理演算器3−3に入力し、上位4バイト
データ[X(I)]が格納されているベクトルレジスタ
2−2の下位4バイトにベクトルレジスタ2−3の4バ
イトデータを格納する。この時、ベクトルレジスタ内に
は、[X(1)Z(1),X(2)Z(2),X(3)
Z(3),X(4)Z(4),X(5)Z(5),…]
が格納される。
【0049】最後に、リストベクトルストア命令によっ
てベクトルレジスタ2−3内のストアデータを主記憶部
14上の配列YのアドレスA(I)に格納するが、動作
指示フィールド401が“1”であるので、8バイト幅
のデータをストアするように制御する。図6に示すよう
に、リストベクトルストア命令によって、8バイトに結
合したストアデータが格納されているベクトルレジスタ
2−3をデータ読み出し制御手段16に従って8バイト
として読み出し、また、アドレスデータの格納されてい
るベクトルレジスタ2−2を読み出して(9−F)スト
ア格納手段12に格納する。データ幅制御手段15に従
ってストアデータ格納手段12に格納されているストア
データを主記憶部14に送出し、ベクトルレジスタ2−
3内の8バイトのストアデータを主記憶部14上の配列
Yにストアする(10−F)。
てベクトルレジスタ2−3内のストアデータを主記憶部
14上の配列YのアドレスA(I)に格納するが、動作
指示フィールド401が“1”であるので、8バイト幅
のデータをストアするように制御する。図6に示すよう
に、リストベクトルストア命令によって、8バイトに結
合したストアデータが格納されているベクトルレジスタ
2−3をデータ読み出し制御手段16に従って8バイト
として読み出し、また、アドレスデータの格納されてい
るベクトルレジスタ2−2を読み出して(9−F)スト
ア格納手段12に格納する。データ幅制御手段15に従
ってストアデータ格納手段12に格納されているストア
データを主記憶部14に送出し、ベクトルレジスタ2−
3内の8バイトのストアデータを主記憶部14上の配列
Yにストアする(10−F)。
【0050】
【発明の効果】以上説明したように本発明によれば、連
続するリストベクトル命令でアクセスする記憶部上のア
ドレスが隣接する場合に、隣接する2要素を同時にアク
セスするような構成を採用したため、本来2命令で処理
していたリストベクトル命令が1命令になるので、処理
時間を短縮することができる。
続するリストベクトル命令でアクセスする記憶部上のア
ドレスが隣接する場合に、隣接する2要素を同時にアク
セスするような構成を採用したため、本来2命令で処理
していたリストベクトル命令が1命令になるので、処理
時間を短縮することができる。
【図1】本発明の一実施例のブロック図である。
【図2】本発明の命令語の一例を示す図である。
【図3】本発明により隣接アクセスのリストベクトルロ
ード命令を実行した場合のタイムチャートである。
ード命令を実行した場合のタイムチャートである。
【図4】本発明によりリストベクトルロード命令を処理
する場合の主記憶部、及びベクトルレジスタの内容を示
す図である。
する場合の主記憶部、及びベクトルレジスタの内容を示
す図である。
【図5】本発明により隣接アクセスのリストベクトルス
トア命令を実行した場合のタイムチャートである。
トア命令を実行した場合のタイムチャートである。
【図6】本発明によりリストベクトルストア命令を処理
する場合の主記憶部、及びベクトルレジスタの内容を示
す図である。
する場合の主記憶部、及びベクトルレジスタの内容を示
す図である。
【図7】従来のベクトル装置の概略を示すブロック図で
ある。
ある。
【図8】従来の方法より隣接アクセスのリストベクトル
ロード令を実行した場合のタイムチャートである。
ロード令を実行した場合のタイムチャートである。
【図9】従来の方法よりリストベクトルロード命令を処
理する場合の主記憶部、及びベクトルレジスタの内容を
示す図である。
理する場合の主記憶部、及びベクトルレジスタの内容を
示す図である。
【図10】従来の方法により隣接アクセスのリストベク
トルストア命令を実行した場合のタイムチャートであ
る。
トルストア命令を実行した場合のタイムチャートであ
る。
【図11】従来の方法によりリストベクトルロード命令
を処理する場合の主記憶部、及びベクトルレジスタの内
容を示す図である。
を処理する場合の主記憶部、及びベクトルレジスタの内
容を示す図である。
1 ベクトル処理部 2−1〜2−8 ベクトルレジスタ 3−1〜3−4 ベクトル演算器 4 クロスバ 5 命令制御部 6 主記憶制御部 12 ストアデータ格納手段 13 ロードデータ格納手段 14 主記憶部 15 データ幅制御手段 16 データ読み出し制御手段 400 命令語 401 動作指示フィールド 402 命令指定部 403 VR指定部
Claims (2)
- 【請求項1】 1つ以上のベクトルレジスタと演算器を
有するベクトル処理部と、複数の記憶単位から構成され
る主記憶部と、前記ベクトル処理部から送られてくるベ
クトルデータをアドレスとして前記主記憶部をアクセス
する機能であるリストベクトルを有し、前記主記憶部を
アクセスするデータパスの幅がNバイトである情報処理
装置において、 N/2バイト長で処理するループ内でN/2バイトデー
タをアクセスするリストベクトルロードが連続し、該リ
ストベクトルロードが隣接するアドレスをアクセスする
際に、命令語中に記憶部上の隣接するデータをロードす
るか否かを指定する動作指示フィールドを持ち、 また該動作指示フィールド情報にしたがって主記憶部を
アクセスするデータ幅をN/2バイトにするかNバイト
にするかを決定するデータ幅制御手段を設けることによ
って、 前記主記憶部上の隣接する2つのN/2バイトデータを
Nバイトデータとしてアクセスし前記ベクトル処理部内
のベクトルレジスタに格納するリストベクトル処理装
置。 - 【請求項2】 1つ以上のベクトルレジスタと演算器を
有するベクトル処理部と、複数の記憶単位から構成され
る主記憶部と、前記ベクトル処理部から送られてくるベ
クトルデータをアドレスとして前記主記憶部をアクセス
する機能であるリストベクトルを有し、前記主記憶部を
アクセスするデータパスの幅がNバイトである情報処理
装置において、 N/2バイト長で処理するループ内でN/2バイトデー
タをアクセスするリストベクトルストアが連続し、該リ
ストベクトルストアが隣接するアドレスをアクセスする
際に、命令語中に記憶部上の隣接する領域にデータをス
トアするか否かを指定する動作指示フィールドを持ち、 また該動作指示フィールド情報にしたがってベクトルレ
ジスタから読み出すストアデータのデータ幅を決定する
データ読み出し制御手段と、主記憶部をアクセスするデ
ータ幅をN/2バイトにするかNバイトにするかを決定
するデータ幅制御手段を設けることによって、 該動作指示フィールド情報に従って前記主記憶部に格納
する隣接する2つのN/2バイトデータをNバイトデー
タとして前記主記憶部上に格納するリストベクトル処理
装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP21344995A JPH0962654A (ja) | 1995-08-22 | 1995-08-22 | リストベクトル処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP21344995A JPH0962654A (ja) | 1995-08-22 | 1995-08-22 | リストベクトル処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0962654A true JPH0962654A (ja) | 1997-03-07 |
Family
ID=16639416
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP21344995A Pending JPH0962654A (ja) | 1995-08-22 | 1995-08-22 | リストベクトル処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0962654A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014182807A (ja) * | 2013-03-15 | 2014-09-29 | Intel Corp | 限定範囲ベクトルメモリアクセス命令、プロセッサ、方法、及びシステム |
WO2020116025A1 (ja) * | 2018-12-07 | 2020-06-11 | 日本電気株式会社 | コンパイル装置、コンパイル方法、及び非一時的なコンピュータ可読媒体 |
WO2022130883A1 (ja) * | 2020-12-14 | 2022-06-23 | 日本電気株式会社 | コンパイル装置、コンパイル方法、及びコンパイルプログラム記録媒体 |
-
1995
- 1995-08-22 JP JP21344995A patent/JPH0962654A/ja active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014182807A (ja) * | 2013-03-15 | 2014-09-29 | Intel Corp | 限定範囲ベクトルメモリアクセス命令、プロセッサ、方法、及びシステム |
US9244684B2 (en) | 2013-03-15 | 2016-01-26 | Intel Corporation | Limited range vector memory access instructions, processors, methods, and systems |
US9448795B2 (en) | 2013-03-15 | 2016-09-20 | Intel Corporation | Limited range vector memory access instructions, processors, methods, and systems |
WO2020116025A1 (ja) * | 2018-12-07 | 2020-06-11 | 日本電気株式会社 | コンパイル装置、コンパイル方法、及び非一時的なコンピュータ可読媒体 |
JPWO2020116025A1 (ja) * | 2018-12-07 | 2021-10-07 | 日本電気株式会社 | コンパイル装置、コンパイル方法、及び制御プログラム |
US11829754B2 (en) | 2018-12-07 | 2023-11-28 | Nec Corporation | Compile device, compile method, and non-transitory computer readable medium for increasing a speed of a program |
WO2022130883A1 (ja) * | 2020-12-14 | 2022-06-23 | 日本電気株式会社 | コンパイル装置、コンパイル方法、及びコンパイルプログラム記録媒体 |
JP2022096010A (ja) * | 2020-12-14 | 2022-06-29 | 日本電気株式会社 | コンパイル装置、コンパイル方法、及びコンパイルプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US3983539A (en) | Polymorphic programmable units employing plural levels of sub-instruction sets | |
JP2502960B2 (ja) | マイクロコンピュ−タ、ならびにマイクロコンピユ−タおよびマイクロコンピユ−タ・ネットワ−クを動作させる方法 | |
US3983541A (en) | Polymorphic programmable units employing plural levels of phased sub-instruction sets | |
US4558411A (en) | Polymorphic programmable units employing plural levels of sub-instruction sets | |
US4293907A (en) | Data processing apparatus having op-code extension register | |
US4181934A (en) | Microprocessor architecture with integrated interrupts and cycle steals prioritized channel | |
US4099229A (en) | Variable architecture digital computer | |
JPH0764853A (ja) | Simdマルチプロセッサ用の可変正確度間接的アドレス方法およびそれを行う装置 | |
US4258419A (en) | Data processing apparatus providing variable operand width operation | |
US4378589A (en) | Undirectional looped bus microcomputer architecture | |
JPH0374434B2 (ja) | ||
JPH0814801B2 (ja) | プログラマブルアクセスメモリ | |
US4943915A (en) | Apparatus and method for synchronization of a coprocessor unit in a pipelined central processing unit | |
US4339793A (en) | Function integrated, shared ALU processor apparatus and method | |
US4240142A (en) | Data processing apparatus providing autoincrementing of memory pointer registers | |
US5890009A (en) | VLIW architecture and method for expanding a parcel | |
US4250545A (en) | Data processing apparatus providing autoloading of memory pointer registers | |
JPH0962654A (ja) | リストベクトル処理装置 | |
US4799151A (en) | Microprogram control circuit | |
JPH03204030A (ja) | コンピュータ用プロセツサ | |
US4807124A (en) | Register addressing system for efficient microroutine sharing and optimization | |
JP2636064B2 (ja) | ベクトル処理装置 | |
EP0058271A1 (en) | Shared use of microprocessor memory fields | |
JPS63141131A (ja) | パイプライン制御方式 | |
JP2583614B2 (ja) | ベクトル演算装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 19981117 |