JP2752902B2 - ベクトル処理装置 - Google Patents
ベクトル処理装置Info
- Publication number
- JP2752902B2 JP2752902B2 JP6117784A JP11778494A JP2752902B2 JP 2752902 B2 JP2752902 B2 JP 2752902B2 JP 6117784 A JP6117784 A JP 6117784A JP 11778494 A JP11778494 A JP 11778494A JP 2752902 B2 JP2752902 B2 JP 2752902B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- vector
- buffer
- load
- store
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 239000000872 buffer Substances 0.000 claims description 266
- 238000013144 data compression Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 18
- 230000006837 decompression Effects 0.000 description 4
- 238000000034 method Methods 0.000 description 3
- 238000007906 compression Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8053—Vector processors
- G06F15/8076—Details on data register access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30105—Register structure
- G06F9/30112—Register structure comprising data of variable length
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Complex Calculations (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
【0001】
【産業上の利用分野】本発明は、ベクトル処理装置に関
し、特に、ベクトルメモリアクセス時に中間データバッ
ファを使用するベクトル処理装置に関する。
し、特に、ベクトルメモリアクセス時に中間データバッ
ファを使用するベクトル処理装置に関する。
【0002】
【従来の技術】メモリ共有型のベクトル処理装置は、並
列化が進むに伴い、メモリ容量が多くなり、実装上の問
題からメモリとの物理的な距離が遠くなる傾向にあり、
メモリアクセス時間も長くなって来ている。
列化が進むに伴い、メモリ容量が多くなり、実装上の問
題からメモリとの物理的な距離が遠くなる傾向にあり、
メモリアクセス時間も長くなって来ている。
【0003】ベクトル処理装置は、本来、大量のデータ
を一度に連続して演算処理することにより、高速に演算
処理を実施することができる装置であって、一般には、
演算オペランドをメモリからベクトルレジスタにロード
して、ベクトルレジスタから演算器に演算オペランドを
供給して演算を実行し、結果を再びベクトルレジスタに
格納し、このベクトルレジスタの内容をメモリに格納す
るという処理を行っている。
を一度に連続して演算処理することにより、高速に演算
処理を実施することができる装置であって、一般には、
演算オペランドをメモリからベクトルレジスタにロード
して、ベクトルレジスタから演算器に演算オペランドを
供給して演算を実行し、結果を再びベクトルレジスタに
格納し、このベクトルレジスタの内容をメモリに格納す
るという処理を行っている。
【0004】図9は従来のベクトル処理装置で直接メモ
リと転送をしてベクトル演算を行う動作の一例を示すタ
イムチャートである。上記の処理では、ベクトルロード
命令VLDのメモリからベクトルレジスタへのロード,
ベクトルストア命令VSTのベクトルレジスタからメモ
リへのストアの転送を直接に行うと、従来のベクトル処
理装置は、図9に示すように、演算結果を保証するため
には、順番通り逐次にこれらの処理を行う必要があり、
メモリアクセスの時間が大きくなるにつれて、演算器の
使用のためにメモリアクセスの待ち時間を発生してその
演算器が遊んでしまうので、ベクトル処理装置の能力を
最大限にまで引出すことができないこととなる。
リと転送をしてベクトル演算を行う動作の一例を示すタ
イムチャートである。上記の処理では、ベクトルロード
命令VLDのメモリからベクトルレジスタへのロード,
ベクトルストア命令VSTのベクトルレジスタからメモ
リへのストアの転送を直接に行うと、従来のベクトル処
理装置は、図9に示すように、演算結果を保証するため
には、順番通り逐次にこれらの処理を行う必要があり、
メモリアクセスの時間が大きくなるにつれて、演算器の
使用のためにメモリアクセスの待ち時間を発生してその
演算器が遊んでしまうので、ベクトル処理装置の能力を
最大限にまで引出すことができないこととなる。
【0005】また、ベクトル処理装置は、並列化されて
いることにより、メモリアクセスで処理装置間の競合が
発生し、必ずしも最小のメモリアクセス時間でデータが
戻ることも保証されないので、上記の現象は、益々発生
し易くなってきている。
いることにより、メモリアクセスで処理装置間の競合が
発生し、必ずしも最小のメモリアクセス時間でデータが
戻ることも保証されないので、上記の現象は、益々発生
し易くなってきている。
【0006】従来のベクトル処理装置は、この問題を解
決するために、ベクトルレジスタとメモリとの間に中間
バッファを設けて、メモリアクセス処理とベクトル演算
処理とを切放し、データロードを先行して実行できるよ
うにし、データストアをした後にメモリアクセスの実行
の可否に関わらず後続のベクトル演算処理を継続して実
行できるように改善されて来ている。
決するために、ベクトルレジスタとメモリとの間に中間
バッファを設けて、メモリアクセス処理とベクトル演算
処理とを切放し、データロードを先行して実行できるよ
うにし、データストアをした後にメモリアクセスの実行
の可否に関わらず後続のベクトル演算処理を継続して実
行できるように改善されて来ている。
【0007】図10は従来のベクトル処理装置の一例を
示すブロック図である。この図10内の従来のベクトル
処理装置1800は、クロスバ1710やベクトルレジ
スタ1720,1721および演算器1730を有する
ベクトル処理部1700と、ロードデータバッファ格納
部1200,ロードデータバッファ読出し部1300を
伴ってベクトル処理部1700に送るベクトルデータを
格納するロードデータバッファ群1100と、さらに、
ストアデータバッファ格納部1500,ストアデータバ
ッファ読出し部1600を伴ってベクトル処理部170
0の演算結果を格納するストアデータバッファ群140
0とを有している。
示すブロック図である。この図10内の従来のベクトル
処理装置1800は、クロスバ1710やベクトルレジ
スタ1720,1721および演算器1730を有する
ベクトル処理部1700と、ロードデータバッファ格納
部1200,ロードデータバッファ読出し部1300を
伴ってベクトル処理部1700に送るベクトルデータを
格納するロードデータバッファ群1100と、さらに、
ストアデータバッファ格納部1500,ストアデータバ
ッファ読出し部1600を伴ってベクトル処理部170
0の演算結果を格納するストアデータバッファ群140
0とを有している。
【0008】そして、ベクトルのロードデータを受取る
ロードデータバッファ群1100のロードデータバッフ
ァ1110,1120は、一つの命令による最大の要素
数分のデータを受取れる長さを有して、その個数は、命
令が発行されていてデータが戻らないのでベクトルレジ
スタ1720,1721に格納できない可能性のある命
令数により決定している。
ロードデータバッファ群1100のロードデータバッフ
ァ1110,1120は、一つの命令による最大の要素
数分のデータを受取れる長さを有して、その個数は、命
令が発行されていてデータが戻らないのでベクトルレジ
スタ1720,1721に格納できない可能性のある命
令数により決定している。
【0009】また、ストアデータを蓄えるストアデータ
バッファ群1400のストアデータバッファ1410,
1420は、同様に一つの命令が使用する最大の要素数
分のデータを受取れる長さを有して、その個数は、スト
ア命令が実行され格納されたデータがメモリ1900に
格納されるまでの間に、次に実行される可能性のあるス
トア命令数によって決定している。
バッファ群1400のストアデータバッファ1410,
1420は、同様に一つの命令が使用する最大の要素数
分のデータを受取れる長さを有して、その個数は、スト
ア命令が実行され格納されたデータがメモリ1900に
格納されるまでの間に、次に実行される可能性のあるス
トア命令数によって決定している。
【0010】図11はベクトル有効長の違いによるデー
タバッファの必要個数の違いを表すためのタイムチャー
トである。図11の上部には、ベクトル有効長が8のと
きの動作の一例を示している。ベクトル有効長が8のと
きには、ベクトル演算が実行できるまでの間に実行を開
始することができるベクトルロード命令VLDの数は4
ヶである。また、図11の下部には、ベクトル有効長が
4のときの動作の一例を示している。ベクトル有効長が
4のときには、ベクトル演算が実行できるまでの間に実
行を開始することができるベクトルロード命令VLDは
7ヶとなる。
タバッファの必要個数の違いを表すためのタイムチャー
トである。図11の上部には、ベクトル有効長が8のと
きの動作の一例を示している。ベクトル有効長が8のと
きには、ベクトル演算が実行できるまでの間に実行を開
始することができるベクトルロード命令VLDの数は4
ヶである。また、図11の下部には、ベクトル有効長が
4のときの動作の一例を示している。ベクトル有効長が
4のときには、ベクトル演算が実行できるまでの間に実
行を開始することができるベクトルロード命令VLDは
7ヶとなる。
【0011】従って、ベクトル有効長が8のときには、
中間のロードデータバッファは4ヶがあれば足りるけれ
ども、ベクトル有効長が4のときには、中間のロードデ
ータバッファは7ヶが必要になる。
中間のロードデータバッファは4ヶがあれば足りるけれ
ども、ベクトル有効長が4のときには、中間のロードデ
ータバッファは7ヶが必要になる。
【0012】次に、命令列の一例を用いてそれらの命令
の動作および実行結果について説明する。ここでは説明
のため、ロードデータバッファおよびストアデータバッ
ファの数をそれぞれ2ヶ、各々の容量を8バイト×64
ワード、命令の種別として8バイトロード命令をVL
D,上位4バイトロード命令をVLDU,下位4バイト
ロード命令をVLDL,8バイトストア命令をVST,
上位4バイトストア命令をVSTU,下位4バイトスト
ア命令をVSTL,固定小数点加算をVADD,さらに
浮動小数点加算をVFADとし、これらの命令が取り得
る最大のベクトル要素数を64としている。また、ベク
トルレジスタをV0,V1としている。
の動作および実行結果について説明する。ここでは説明
のため、ロードデータバッファおよびストアデータバッ
ファの数をそれぞれ2ヶ、各々の容量を8バイト×64
ワード、命令の種別として8バイトロード命令をVL
D,上位4バイトロード命令をVLDU,下位4バイト
ロード命令をVLDL,8バイトストア命令をVST,
上位4バイトストア命令をVSTU,下位4バイトスト
ア命令をVSTL,固定小数点加算をVADD,さらに
浮動小数点加算をVFADとし、これらの命令が取り得
る最大のベクトル要素数を64としている。また、ベク
トルレジスタをV0,V1としている。
【0013】そこで、下記命令列のベクトル有効長VL
を16として、次の動作を行わせている。
を16として、次の動作を行わせている。
【0014】 (1) VLDL V0 ← MEM (2) VLDL V1 ← MEM (3) VADD V0 ← V0+V1 (4) VSTL MEM ← V0 (5) VLDU V0 ← MEM (6) VLDU V1 ← MEM (7) VFAD V0 ← V0+V1 (8) VSTU MEM ← V0 上記の命令列を番号順に実行するようにプログラムされ
ている場合に、高速化の手段としてベクトルレジスタの
状態に関わらずにメモリアクセスを行い、演算結果が保
証される形でロードデータバッファ並びにストアデータ
バッファなどの中間バッファを使用して命令実行順序の
入替えを行っている。
ている場合に、高速化の手段としてベクトルレジスタの
状態に関わらずにメモリアクセスを行い、演算結果が保
証される形でロードデータバッファ並びにストアデータ
バッファなどの中間バッファを使用して命令実行順序の
入替えを行っている。
【0015】すなわち、メモリアクセスを基準にする
と、 (1) VLDL V0 ← MEM (2) VLDL V1 ← MEM (5) VLDU V0 ← MEM (6) VLDU V1 ← MEM (3) VADD V0 ← V0+V1 (4) VSTL MEM ← V0 (7) VFAD V0 ← V0+V1 (8) VSTU MEM ← V0 の順番に実行されるのが理想的であるけれども、前提条
件としてはロードデータバッファの個数が2ヶしかない
ので、 (1) VLDL V0 ← MEM (2) VLDL V1 ← MEM (3) VADD V0 ← V0+V1 (5) VLDU V0 ← MEM (4) VSTL MEM ← V0 (6) VLDU V1 ← MEM (7) VFAD V0 ← V0+V1 (8) VSTU MEM ← V0 という順序になる。
と、 (1) VLDL V0 ← MEM (2) VLDL V1 ← MEM (5) VLDU V0 ← MEM (6) VLDU V1 ← MEM (3) VADD V0 ← V0+V1 (4) VSTL MEM ← V0 (7) VFAD V0 ← V0+V1 (8) VSTU MEM ← V0 の順番に実行されるのが理想的であるけれども、前提条
件としてはロードデータバッファの個数が2ヶしかない
ので、 (1) VLDL V0 ← MEM (2) VLDL V1 ← MEM (3) VADD V0 ← V0+V1 (5) VLDU V0 ← MEM (4) VSTL MEM ← V0 (6) VLDU V1 ← MEM (7) VFAD V0 ← V0+V1 (8) VSTU MEM ← V0 という順序になる。
【0016】図12は従来のベクトル処理装置により2
個のロードデータバッファを用いてベクトル演算を行う
動作の一例を示すタイムチャートである。そして、図1
3は従来のベクトル処理装置によるロードデータバッフ
ァ,ストアデータバッファの使用状況の一例を示す図で
ある。まず、(1) ,(2) のベクトルロード命令には、そ
れぞれ、図13に示したロードデータバッファ111
0,1120が割り付けられる。そして、(5) ,(6) の
ベクトルロード命令には、ロードデータバッファ111
0,1120が2ヶしかないので、図12に示したよう
に、ロードデータバッファ1110,1120が再び使
用されるけれども、使用開始のタイミングは、先行して
いる(1) ,(2) のベクトルロード命令による使用が終了
してからとなる。同様にして(4) ,(8) のベクトルスト
ア命令には、ストアデータバッファ1410,1420
が割り付けられる。
個のロードデータバッファを用いてベクトル演算を行う
動作の一例を示すタイムチャートである。そして、図1
3は従来のベクトル処理装置によるロードデータバッフ
ァ,ストアデータバッファの使用状況の一例を示す図で
ある。まず、(1) ,(2) のベクトルロード命令には、そ
れぞれ、図13に示したロードデータバッファ111
0,1120が割り付けられる。そして、(5) ,(6) の
ベクトルロード命令には、ロードデータバッファ111
0,1120が2ヶしかないので、図12に示したよう
に、ロードデータバッファ1110,1120が再び使
用されるけれども、使用開始のタイミングは、先行して
いる(1) ,(2) のベクトルロード命令による使用が終了
してからとなる。同様にして(4) ,(8) のベクトルスト
ア命令には、ストアデータバッファ1410,1420
が割り付けられる。
【0017】そこで、ロードデータバッファ1110,
1120の数が2ヶであるために、3番目のベクトルロ
ード命令に対してロードデータバッファ1110,11
20の数が少ないことによる遅れ時間aが存在すること
となる。この場合に、ロードデータバッファ1110,
1120,ストアデータバッファ1410,1420の
使用形態は、ベクトル有効長VLが小さいときには、図
13に示したように、該ロードデータバッファ111
0,1120,ストアデータバッファ1410,142
0内に無駄な領域が多数存在することとなる。
1120の数が2ヶであるために、3番目のベクトルロ
ード命令に対してロードデータバッファ1110,11
20の数が少ないことによる遅れ時間aが存在すること
となる。この場合に、ロードデータバッファ1110,
1120,ストアデータバッファ1410,1420の
使用形態は、ベクトル有効長VLが小さいときには、図
13に示したように、該ロードデータバッファ111
0,1120,ストアデータバッファ1410,142
0内に無駄な領域が多数存在することとなる。
【0018】このような従来のベクトル処理装置の一例
としては、特公昭63−43784ベクトルデータ記憶
制御方式がある。
としては、特公昭63−43784ベクトルデータ記憶
制御方式がある。
【0019】
【発明が解決しようとする課題】上述した従来のベクト
ル処理装置では、最適な中間バッファの個数がベクトル
要素長によって異なり、ベクトル要素長が長いときに
は、中間バッファの個数が比較的少なくてもベクトル演
算器に対する効率的な使用が可能になるけれども、ベク
トル要素長が短いときには、中間バッファの個数が多く
なければ、ベクトル演算器の効率的な使用が出来なくな
ってしまう。
ル処理装置では、最適な中間バッファの個数がベクトル
要素長によって異なり、ベクトル要素長が長いときに
は、中間バッファの個数が比較的少なくてもベクトル演
算器に対する効率的な使用が可能になるけれども、ベク
トル要素長が短いときには、中間バッファの個数が多く
なければ、ベクトル演算器の効率的な使用が出来なくな
ってしまう。
【0020】ところがベクトル要素長はプログラムによ
って異なるために、従来のベクトル処理装置の性能をベ
クトル要素長の如何によらずに十分引き出すためには、
従来のベクトル処理装置は、ロードデータバッファおよ
びストアデータバッファなどの中間データバッファの数
をベクトル要素長の短いケースにあわせて多目に作る必
要が有り、ハードウェア量が増加してしまうという欠点
を有している。
って異なるために、従来のベクトル処理装置の性能をベ
クトル要素長の如何によらずに十分引き出すためには、
従来のベクトル処理装置は、ロードデータバッファおよ
びストアデータバッファなどの中間データバッファの数
をベクトル要素長の短いケースにあわせて多目に作る必
要が有り、ハードウェア量が増加してしまうという欠点
を有している。
【0021】
【課題を解決するための手段】第1の発明のベクトル処
理装置は、 (A)複数の要素を有するベクトルデータを持つ複数の
ベクトルレジスタと、 (B)前記ベクルレジスタに接続して、前記ベクルレジ
スタから受けたベクトルデータのベクトル演算を行い、
前記ベクルレジスタに保持させる複数のベクトル演算器
と、 (C)メモリと前記ベクトルレジスタとの中間に接続さ
れ、ベクトルロード命令が扱う最大のデータ幅で最大の
データ長分の容量(ワード数)を有して、ロードデータ
を前記ベクトルレジスタに転送できるまで一時的に格納
する複数のロードデータバッファと、 (D)前記ベクトルレジスタと前記メモリとの中間に接
続され、ベクトルストア命令が扱う最大のデータ幅で最
大のデータ長分の容量を有して、ストアデータを前記メ
モリに転送できるまでの間一時的に格納する複数のスト
アデータバッファと、を有するベクトル処理装置におい
て、 (E)複数個の前記ロードデータバッファを有するとと
もに、個々の前記ロードデータバッファ内に複数の仮想
バッファを設け、その仮想バッファに対して前記ロード
データバッファ内で使用が可能なワード位置を示し且つ
全体の前記ロードデータバッファの中でユニークになる
仮想バッファ番号を設定したロードデータバッファ群
と、 (F)命令種別で異なるロードデータの有効データ幅を
認識し、該有効データ幅が前記ロードデータバッファの
データ幅よりも十分小さいときには、前記ロードデータ
バッファのデータ幅に合わせて、複数のロードデータを
要素圧縮して格納するロードデータバッファ格納部と、 (G)前記ロードデータバッファ群の中からの読出しを
指定されたデータの有効データ幅を命令種別より認識
し、前記ロードデータバッファ格納部により圧縮が行わ
れた命令であれば読出したデータを元の複数の要素に展
開するロードデータバッファ読出し部と、を備えて構成
されている。
理装置は、 (A)複数の要素を有するベクトルデータを持つ複数の
ベクトルレジスタと、 (B)前記ベクルレジスタに接続して、前記ベクルレジ
スタから受けたベクトルデータのベクトル演算を行い、
前記ベクルレジスタに保持させる複数のベクトル演算器
と、 (C)メモリと前記ベクトルレジスタとの中間に接続さ
れ、ベクトルロード命令が扱う最大のデータ幅で最大の
データ長分の容量(ワード数)を有して、ロードデータ
を前記ベクトルレジスタに転送できるまで一時的に格納
する複数のロードデータバッファと、 (D)前記ベクトルレジスタと前記メモリとの中間に接
続され、ベクトルストア命令が扱う最大のデータ幅で最
大のデータ長分の容量を有して、ストアデータを前記メ
モリに転送できるまでの間一時的に格納する複数のスト
アデータバッファと、を有するベクトル処理装置におい
て、 (E)複数個の前記ロードデータバッファを有するとと
もに、個々の前記ロードデータバッファ内に複数の仮想
バッファを設け、その仮想バッファに対して前記ロード
データバッファ内で使用が可能なワード位置を示し且つ
全体の前記ロードデータバッファの中でユニークになる
仮想バッファ番号を設定したロードデータバッファ群
と、 (F)命令種別で異なるロードデータの有効データ幅を
認識し、該有効データ幅が前記ロードデータバッファの
データ幅よりも十分小さいときには、前記ロードデータ
バッファのデータ幅に合わせて、複数のロードデータを
要素圧縮して格納するロードデータバッファ格納部と、 (G)前記ロードデータバッファ群の中からの読出しを
指定されたデータの有効データ幅を命令種別より認識
し、前記ロードデータバッファ格納部により圧縮が行わ
れた命令であれば読出したデータを元の複数の要素に展
開するロードデータバッファ読出し部と、を備えて構成
されている。
【0022】また、第2の発明のベクトル処理装置は、
第1の発明に示すベクトル処理装置において、第1の発
明のロードデータバッファ群で、第1の発明の一つのロ
ードデータバッファ内に割付けられた複数の仮想バッフ
ァ番号の各々の上位ビットが、前記ロードデータバッフ
ァ群内のそれぞれの前記ロードデータバッファを示す識
別子となって、仮想バッファ番号の残りの下位ビット
と、その仮想バッファに格納されるべきデータの各々の
要素番号とから前記ロードデータバッファに格納するワ
ードアドレスが一意に決定されるように、仮想バッファ
番号の各々が設定されることを含んでいる。
第1の発明に示すベクトル処理装置において、第1の発
明のロードデータバッファ群で、第1の発明の一つのロ
ードデータバッファ内に割付けられた複数の仮想バッフ
ァ番号の各々の上位ビットが、前記ロードデータバッフ
ァ群内のそれぞれの前記ロードデータバッファを示す識
別子となって、仮想バッファ番号の残りの下位ビット
と、その仮想バッファに格納されるべきデータの各々の
要素番号とから前記ロードデータバッファに格納するワ
ードアドレスが一意に決定されるように、仮想バッファ
番号の各々が設定されることを含んでいる。
【0023】一方、第3の発明のベクトル処理装置は、
第1の発明に示すベクトル処理装置において、第1の発
明のロードデータバッファ格納部は、各データをロード
するベクトルロード命令の命令種別によって、ロードさ
れるデータの有効データ幅を認識して、前記有効データ
幅が第1の発明のロードデータバッファのデータ幅に一
致する最大のデータ幅であるときに、指示された仮想バ
ッファ番号が示す前記ロードデータバッファ内のワード
アドレスから一要素づつ順次に格納するように書込みア
ドレスを更新し、前記有効データ幅が最大データ幅より
も十分小さいときには、最大データ幅になるようにロー
ドデータの複数の要素数分をまとめて一ワードを構成し
てデータの圧縮を実行し、指示された仮想バッファ番号
が示す前記ロードデータバッファのワードアドレスから
一ワードにまとめるごとに前記ロードデータバッファ内
に格納して書込みアドレスを更新することを含んでい
る。を備えて構成されている。
第1の発明に示すベクトル処理装置において、第1の発
明のロードデータバッファ格納部は、各データをロード
するベクトルロード命令の命令種別によって、ロードさ
れるデータの有効データ幅を認識して、前記有効データ
幅が第1の発明のロードデータバッファのデータ幅に一
致する最大のデータ幅であるときに、指示された仮想バ
ッファ番号が示す前記ロードデータバッファ内のワード
アドレスから一要素づつ順次に格納するように書込みア
ドレスを更新し、前記有効データ幅が最大データ幅より
も十分小さいときには、最大データ幅になるようにロー
ドデータの複数の要素数分をまとめて一ワードを構成し
てデータの圧縮を実行し、指示された仮想バッファ番号
が示す前記ロードデータバッファのワードアドレスから
一ワードにまとめるごとに前記ロードデータバッファ内
に格納して書込みアドレスを更新することを含んでい
る。を備えて構成されている。
【0024】他方、第4の発明のベクトル処理装置は、
第1の発明に示すベクトル処理装置において、第1の発
明のロードデータバッファ読出し部は、読出しを指示さ
れた仮想バッファ番号のアドレスに格納されているデー
タの有効データ幅を命令種別で認識し、一要素が一ワー
ドに格納されているときに、指示された仮想バッファ番
号が示す第1の発明のロードデータバッファに対するワ
ードアドレスから処理する要素数分の読出しサイクルを
連続して行い、複数の要素が一ワードに格納されている
ときには、前記ロードデータバッファの読出しサイクル
を圧縮された要素分に伸長して、読出したデータを要素
ごとに命令種別で決定される本来の有効データ位置に戻
しながら読出し動作を行うことを含んでいる。
第1の発明に示すベクトル処理装置において、第1の発
明のロードデータバッファ読出し部は、読出しを指示さ
れた仮想バッファ番号のアドレスに格納されているデー
タの有効データ幅を命令種別で認識し、一要素が一ワー
ドに格納されているときに、指示された仮想バッファ番
号が示す第1の発明のロードデータバッファに対するワ
ードアドレスから処理する要素数分の読出しサイクルを
連続して行い、複数の要素が一ワードに格納されている
ときには、前記ロードデータバッファの読出しサイクル
を圧縮された要素分に伸長して、読出したデータを要素
ごとに命令種別で決定される本来の有効データ位置に戻
しながら読出し動作を行うことを含んでいる。
【0025】そして、第5の発明のベクトル処理装置
は、 (A)複数の要素を有するベクトルデータを持つ複数の
ベクトルレジスタと、 (B)前記ベクルレジスタに接続して、前記ベクルレジ
スタから受けたベクトルデータのベクトル演算を行い、
前記ベクルレジスタに保持させる複数のベクトル演算器
と、 (C)メモリと前記ベクトルレジスタとの中間に接続さ
れ、ベクトルロード命令が扱う最大のデータ幅で最大の
データ長分の容量(ワード数)を有して、ロードデータ
を前記ベクトルレジスタに転送できるまで一時的に格納
する複数のロードデータバッファと、 (D)前記ベクトルレジスタと前記メモリとの中間に接
続され、ベクトルストア命令が扱う最大のデータ幅で最
大のデータ長分の容量を有して、ストアデータを前記メ
モリに転送できるまでの間一時的に格納する複数のスト
アデータバッファと、を有するベクトル処理装置におい
て、 (E)複数個の前記ストアデータバッファを有するとと
もに、個々の前記ストアデータバッファ内に複数の仮想
バッファを設け、その仮想バッファに対して前記ストア
データバッファ内で使用が可能なワード位置を示し且つ
全体の前記ストアデータバッファの中でユニークになる
仮想バッファ番号を設定したストアデータバッファ群
と、 (F)命令種別で異なるストアデータの有効データ幅を
認識し、該有効データ幅が前記ストアデータバッファの
データ幅よりも十分小さいときには、前記ストアデータ
バッファのデータ幅に合わせて、複数のストアデータを
要素圧縮して格納するストアデータバッファ格納部と、 (G)前記ストアデータバッファ群の中からの読出しを
指定されたデータの有効データ幅を命令種別より認識
し、前記ストアデータバッファ格納部により圧縮が行わ
れた命令であれば読出したデータを元の複数の要素に展
開するストアデータバッファ読出し部と、を備えて構成
されている。
は、 (A)複数の要素を有するベクトルデータを持つ複数の
ベクトルレジスタと、 (B)前記ベクルレジスタに接続して、前記ベクルレジ
スタから受けたベクトルデータのベクトル演算を行い、
前記ベクルレジスタに保持させる複数のベクトル演算器
と、 (C)メモリと前記ベクトルレジスタとの中間に接続さ
れ、ベクトルロード命令が扱う最大のデータ幅で最大の
データ長分の容量(ワード数)を有して、ロードデータ
を前記ベクトルレジスタに転送できるまで一時的に格納
する複数のロードデータバッファと、 (D)前記ベクトルレジスタと前記メモリとの中間に接
続され、ベクトルストア命令が扱う最大のデータ幅で最
大のデータ長分の容量を有して、ストアデータを前記メ
モリに転送できるまでの間一時的に格納する複数のスト
アデータバッファと、を有するベクトル処理装置におい
て、 (E)複数個の前記ストアデータバッファを有するとと
もに、個々の前記ストアデータバッファ内に複数の仮想
バッファを設け、その仮想バッファに対して前記ストア
データバッファ内で使用が可能なワード位置を示し且つ
全体の前記ストアデータバッファの中でユニークになる
仮想バッファ番号を設定したストアデータバッファ群
と、 (F)命令種別で異なるストアデータの有効データ幅を
認識し、該有効データ幅が前記ストアデータバッファの
データ幅よりも十分小さいときには、前記ストアデータ
バッファのデータ幅に合わせて、複数のストアデータを
要素圧縮して格納するストアデータバッファ格納部と、 (G)前記ストアデータバッファ群の中からの読出しを
指定されたデータの有効データ幅を命令種別より認識
し、前記ストアデータバッファ格納部により圧縮が行わ
れた命令であれば読出したデータを元の複数の要素に展
開するストアデータバッファ読出し部と、を備えて構成
されている。
【0026】また、第6の発明のベクトル処理装置は、
第5の発明に示すベクトル処理装置において、第5の発
明のストアデータバッファ群では第5の発明の一つのス
トアデータバッファ内に割付けられた複数の仮想バッフ
ァ番号の各々の上位ビットが、前記ストアデータバッフ
ァ群内のそれぞれの前記ストアデータバッファを示す識
別子となって、仮想バッファ番号の残りの下位ビット
と、その仮想バッファに格納されるべきデータの各々の
要素番号とから前記ストアデータバッファに格納するワ
ードアドレスが一意に決定されるように、仮想バッファ
番号の各々が設定されることを含んでいる。
第5の発明に示すベクトル処理装置において、第5の発
明のストアデータバッファ群では第5の発明の一つのス
トアデータバッファ内に割付けられた複数の仮想バッフ
ァ番号の各々の上位ビットが、前記ストアデータバッフ
ァ群内のそれぞれの前記ストアデータバッファを示す識
別子となって、仮想バッファ番号の残りの下位ビット
と、その仮想バッファに格納されるべきデータの各々の
要素番号とから前記ストアデータバッファに格納するワ
ードアドレスが一意に決定されるように、仮想バッファ
番号の各々が設定されることを含んでいる。
【0027】一方、第7の発明のベクトル処理装置は、
第5の発明に示すベクトル処理装置において、第5の発
明のストアデータバッファ格納部は、各データをストア
するベクトルストア命令の命令種別によって、ストアさ
れるデータの有効データ幅を認識して、前記有効データ
幅が第5の発明のストアデータバッファのデータ幅に一
致する最大のデータ幅であるときに、指示された仮想バ
ッファ番号が示す前記ストアデータバッファ内のワード
アドレスから一要素づつ順次に格納するように書込みア
ドレスを更新し、前記有効データ幅が最大データ幅より
も十分小さいときには、最大データ幅になるようにスト
アデータの複数の要素数分をまとめて一ワードを構成し
てデータの圧縮を実行し、指示された仮想バッファ番号
が示す前記ストアデータバッファのワードアドレスから
一ワードにまとめるごとに前記ストアデータバッファ内
に格納して書込みアドレスを更新することを含んでい
る。
第5の発明に示すベクトル処理装置において、第5の発
明のストアデータバッファ格納部は、各データをストア
するベクトルストア命令の命令種別によって、ストアさ
れるデータの有効データ幅を認識して、前記有効データ
幅が第5の発明のストアデータバッファのデータ幅に一
致する最大のデータ幅であるときに、指示された仮想バ
ッファ番号が示す前記ストアデータバッファ内のワード
アドレスから一要素づつ順次に格納するように書込みア
ドレスを更新し、前記有効データ幅が最大データ幅より
も十分小さいときには、最大データ幅になるようにスト
アデータの複数の要素数分をまとめて一ワードを構成し
てデータの圧縮を実行し、指示された仮想バッファ番号
が示す前記ストアデータバッファのワードアドレスから
一ワードにまとめるごとに前記ストアデータバッファ内
に格納して書込みアドレスを更新することを含んでい
る。
【0028】他方、第8の発明のベクトル処理装置は、
第5の発明に示すベクトル処理装置において、第5の発
明のストアデータバッファ読出し部は、読出しを指示さ
れた仮想バッファ番号のアドレスに格納されているデー
タの有効データ幅を命令種別で認識し、一要素が一ワー
ドに格納されているときに、指示された仮想バッファ番
号が示す第5の発明のストアデータバッファに対するワ
ードアドレスから処理する要素数分の読出しサイクルを
連続して行い、複数の要素が一ワードに格納されている
ときには、前記ストアデータバッファの読出しサイクル
を圧縮された要素分に伸長して、読出したデータを要素
ごとに命令種別で決定される本来の有効データ位置に戻
しながら読出し動作を行うことを含んでいる。
第5の発明に示すベクトル処理装置において、第5の発
明のストアデータバッファ読出し部は、読出しを指示さ
れた仮想バッファ番号のアドレスに格納されているデー
タの有効データ幅を命令種別で認識し、一要素が一ワー
ドに格納されているときに、指示された仮想バッファ番
号が示す第5の発明のストアデータバッファに対するワ
ードアドレスから処理する要素数分の読出しサイクルを
連続して行い、複数の要素が一ワードに格納されている
ときには、前記ストアデータバッファの読出しサイクル
を圧縮された要素分に伸長して、読出したデータを要素
ごとに命令種別で決定される本来の有効データ位置に戻
しながら読出し動作を行うことを含んでいる。
【0029】
【実施例】続いて、本発明の実施例について、図面を参
照して説明する。図1は本発明のベクトル処理装置の一
実施例を示すブロック図である。図1に示した本実施例
のベクトル処理装置800は、メモリ900に接続し、
クロスバ710やベクトルレジスタ720,721およ
び演算器730を有するベクトル処理部700と、ロー
ドデータバッファ格納部200およびロードデータバッ
ファ読出し部300を伴ってベクトル処理部700に与
えるベクトルデータを格納するロードデータバッファ群
100と、ストアデータバッファ格納部500ならびに
ストアデータバッファ読出し部600を伴ってベクトル
処理部700の演算の結果を格納するストアデータバッ
ファ群400とを有している。
照して説明する。図1は本発明のベクトル処理装置の一
実施例を示すブロック図である。図1に示した本実施例
のベクトル処理装置800は、メモリ900に接続し、
クロスバ710やベクトルレジスタ720,721およ
び演算器730を有するベクトル処理部700と、ロー
ドデータバッファ格納部200およびロードデータバッ
ファ読出し部300を伴ってベクトル処理部700に与
えるベクトルデータを格納するロードデータバッファ群
100と、ストアデータバッファ格納部500ならびに
ストアデータバッファ読出し部600を伴ってベクトル
処理部700の演算の結果を格納するストアデータバッ
ファ群400とを有している。
【0030】図2は図1のロードデータバッファ110
の一例を示す構成図である。また、図3は図1のストア
データバッファ410の一例を示す構成図である。さら
に、図4はロードデータバッファ110,120の各バ
ッファ番号に対応するロードデータバッファ110,1
20内でのアクセス可能領域の一例を示す図である。こ
こでは説明のために、各データバッファの数をそれぞれ
ロードデータバッファ110,120,ストアデータバ
ッファ410,420の2ヶずつで、各データバッファ
の容量を8バイト×64ワード、一つのデータバッファ
の中に割り付けられる仮想バッファ番号#0,#1,#
2,〜#7(以下、単にバッファ#0,#1,#2,〜
#7という)の数を4ヶ、命令の種別として8バイトロ
ード命令をVLD,上位4バイトロード命令をVLD
U,また下位4バイトロード命令をVLDL,8バイト
ストア命令をVST,上位4バイトストア命令をVST
U,下位4バイトストア命令をVSTL,固定小数点加
算をVADD,また浮動小数点加算をVFADとし、こ
れらの命令が取り得る最大のベクトル要素数を64とし
ている。また、ベクトルレジスタをV0,V1としてい
る。
の一例を示す構成図である。また、図3は図1のストア
データバッファ410の一例を示す構成図である。さら
に、図4はロードデータバッファ110,120の各バ
ッファ番号に対応するロードデータバッファ110,1
20内でのアクセス可能領域の一例を示す図である。こ
こでは説明のために、各データバッファの数をそれぞれ
ロードデータバッファ110,120,ストアデータバ
ッファ410,420の2ヶずつで、各データバッファ
の容量を8バイト×64ワード、一つのデータバッファ
の中に割り付けられる仮想バッファ番号#0,#1,#
2,〜#7(以下、単にバッファ#0,#1,#2,〜
#7という)の数を4ヶ、命令の種別として8バイトロ
ード命令をVLD,上位4バイトロード命令をVLD
U,また下位4バイトロード命令をVLDL,8バイト
ストア命令をVST,上位4バイトストア命令をVST
U,下位4バイトストア命令をVSTL,固定小数点加
算をVADD,また浮動小数点加算をVFADとし、こ
れらの命令が取り得る最大のベクトル要素数を64とし
ている。また、ベクトルレジスタをV0,V1としてい
る。
【0031】そこで、図2および図3に示すように、一
つの物理的なデータバッファであるロードデータバッフ
ァ110およびストアデータバッファ410に対して4
つのバッファ#0,#1,#2,#3を割り付けてい
る。また、図4に示すように、2ヶのロードデータバッ
ファ110,120に対しては、ロードデータバッファ
110にバッファ#0,#1,#2,#3を割り付け
て、ロードデータバッファ120にバッファ#4,#
5,#6,#7を割り付けている。
つの物理的なデータバッファであるロードデータバッフ
ァ110およびストアデータバッファ410に対して4
つのバッファ#0,#1,#2,#3を割り付けてい
る。また、図4に示すように、2ヶのロードデータバッ
ファ110,120に対しては、ロードデータバッファ
110にバッファ#0,#1,#2,#3を割り付け
て、ロードデータバッファ120にバッファ#4,#
5,#6,#7を割り付けている。
【0032】そして、割り付け方法は色々あるが、ここ
ではバッファを指定する3ビットの最上位ビットがロー
ドデータバッファの識別子となって、残りの下位2ビッ
トがロードデータバッファへ格納する各データの要素番
号の上位指定に加算されて、ロードデータバッファ上の
ワードアドレスになるように設定している。
ではバッファを指定する3ビットの最上位ビットがロー
ドデータバッファの識別子となって、残りの下位2ビッ
トがロードデータバッファへ格納する各データの要素番
号の上位指定に加算されて、ロードデータバッファ上の
ワードアドレスになるように設定している。
【0033】つまり、ここでは一つのデータバッファの
容量を64ワードとしているので、ワードアドレスは6
ビットで表されているが、ワードアドレスの上位2ビッ
トはバッファ指定の下位2ビットに対し要素番号の下位
から5ビット目と6ビット目とを加算して対応させると
ともにワードアドレスの下位4ビットをバッファ内の1
6個の各データの要素番号に対応させている。なお、こ
れらは、ストアデータバッファ410,420について
も同様であり説明を省略する。
容量を64ワードとしているので、ワードアドレスは6
ビットで表されているが、ワードアドレスの上位2ビッ
トはバッファ指定の下位2ビットに対し要素番号の下位
から5ビット目と6ビット目とを加算して対応させると
ともにワードアドレスの下位4ビットをバッファ内の1
6個の各データの要素番号に対応させている。なお、こ
れらは、ストアデータバッファ410,420について
も同様であり説明を省略する。
【0034】従って、図2のバッファ#0では、ロード
データバッファ110のアドレス0から63の64ワー
ドが、バッファ#1では、アドレス16から63までの
48ワードが、バッファ#2では、アドレス32から6
3の32ワードが、バッファ#3では、アドレス48か
ら63までの16ワードが使用可能になり、それぞれ扱
えるベクトルデータ長が異なっている。なお、バッファ
#4からバッファ#7については、ロードデータバッフ
ァ120を使用するだけであり、ロードデータバッファ
120内の割付は、バッファ#0,〜#3と同じにな
る。
データバッファ110のアドレス0から63の64ワー
ドが、バッファ#1では、アドレス16から63までの
48ワードが、バッファ#2では、アドレス32から6
3の32ワードが、バッファ#3では、アドレス48か
ら63までの16ワードが使用可能になり、それぞれ扱
えるベクトルデータ長が異なっている。なお、バッファ
#4からバッファ#7については、ロードデータバッフ
ァ120を使用するだけであり、ロードデータバッファ
120内の割付は、バッファ#0,〜#3と同じにな
る。
【0035】このように構成されるデータバッファで
は、8バイトロード命令VLDを実行する場合には、ベ
クトル要素長VLが49≦VL≦64のときはバッファ
#0,#4の2ヶしか使用できないが、1≦VL≦16
のときは#0,〜#7の8ヶを使用することができる。
は、8バイトロード命令VLDを実行する場合には、ベ
クトル要素長VLが49≦VL≦64のときはバッファ
#0,#4の2ヶしか使用できないが、1≦VL≦16
のときは#0,〜#7の8ヶを使用することができる。
【0036】例えば、VL=16でVLDを実行して、
バッファ#0を使用すると、ロードデータバッファ11
0のアドレス0,〜15に格納され、アドレス16,〜
63は未使用状態となる。従って、後続のVLDが再び
VL=16であれば、次に、バッファ#1を用いると、
ロードデータバッファ110のアドレス16,〜31に
格納される。
バッファ#0を使用すると、ロードデータバッファ11
0のアドレス0,〜15に格納され、アドレス16,〜
63は未使用状態となる。従って、後続のVLDが再び
VL=16であれば、次に、バッファ#1を用いると、
ロードデータバッファ110のアドレス16,〜31に
格納される。
【0037】図5は図1のロードデータバッファ格納部
200の一例を示したブロック図である。ここでは、図
5を参照することによりロードデータバッファ格納部2
00が、ベクトルのロードを行う動作について説明す
る。なお、図1のストアデータバッファ格納部500
が、ストアデータ書込み制御部510およびストアデー
タ圧縮実行部520を有し、ベクトルの演算結果を格納
する動作については、同様であるので説明を省略する。
200の一例を示したブロック図である。ここでは、図
5を参照することによりロードデータバッファ格納部2
00が、ベクトルのロードを行う動作について説明す
る。なお、図1のストアデータバッファ格納部500
が、ストアデータ書込み制御部510およびストアデー
タ圧縮実行部520を有し、ベクトルの演算結果を格納
する動作については、同様であるので説明を省略する。
【0038】まず、ロードデータバッファ格納部200
は、メモリ900から受けたロードデータを上位,下位
に分割して、ロードデータ圧縮実行部220内のデータ
受取レジスタ221,222に入れる。そして、これら
のデータをロードした命令が8バイトロード命令VLD
であることをロードデータ書込み制御部210の中の書
込み命令種別213で判断すると、書込みセレクタ制御
回路216による上部書込みセレクタ225および下部
書込みセレクタ226の制御により、受取った8バイト
データをそのまま書込みレジスタ223,224の中に
移して、書込みバッファ番号211およびデータの要素
番号212から書込みアドレス作成回路215により書
込みアドレスを作成して書込みアドレスレジスタ214
に移し、書込みレジスタ223,224のデータをロー
ドデータバッファ群100へ格納している。
は、メモリ900から受けたロードデータを上位,下位
に分割して、ロードデータ圧縮実行部220内のデータ
受取レジスタ221,222に入れる。そして、これら
のデータをロードした命令が8バイトロード命令VLD
であることをロードデータ書込み制御部210の中の書
込み命令種別213で判断すると、書込みセレクタ制御
回路216による上部書込みセレクタ225および下部
書込みセレクタ226の制御により、受取った8バイト
データをそのまま書込みレジスタ223,224の中に
移して、書込みバッファ番号211およびデータの要素
番号212から書込みアドレス作成回路215により書
込みアドレスを作成して書込みアドレスレジスタ214
に移し、書込みレジスタ223,224のデータをロー
ドデータバッファ群100へ格納している。
【0039】そして、受取ったデータが上位4バイトロ
ード命令VLDUのデータならば、受取レジスタ221
の中の上位4バイトのみが有効データであるために、書
込みセレクタ225,226は,受取りレジスタ221
側に切替わり、データの要素番号212が偶数であれ
ば、書込みレジスタ223にこの有効データを書込み、
奇数のときには、書込みレジスタ224にこの有効デー
タを書込んでいる。
ード命令VLDUのデータならば、受取レジスタ221
の中の上位4バイトのみが有効データであるために、書
込みセレクタ225,226は,受取りレジスタ221
側に切替わり、データの要素番号212が偶数であれ
ば、書込みレジスタ223にこの有効データを書込み、
奇数のときには、書込みレジスタ224にこの有効デー
タを書込んでいる。
【0040】そこで、2要素が揃ってロードデータバッ
ファ110,120への8バイトのワード幅の書込みデ
ータができたときに、それを代表する偶数要素の要素番
号を要素数の2で割った数とバッファ番号211とから
書込むアドレスを作成して、書込みアドレスレジスタ2
14にセットして、書込みレジスタ223,224のデ
ータをロードデータバッファ110,120に書込んで
いる。
ファ110,120への8バイトのワード幅の書込みデ
ータができたときに、それを代表する偶数要素の要素番
号を要素数の2で割った数とバッファ番号211とから
書込むアドレスを作成して、書込みアドレスレジスタ2
14にセットして、書込みレジスタ223,224のデ
ータをロードデータバッファ110,120に書込んで
いる。
【0041】また、受取ったデータが下位4バイトロー
ド命令VLDLのデータであると、受取レジスタ222
の中の下位4バイトのみが有効データであるために、書
込みセレクタ225,226は,受取りレジスタ222
側に切替わり、データの要素番号212が偶数であれ
ば、書込みレジスタ223にこの有効データを書込み、
奇数のときには、書込みレジスタ224にこの有効デー
タを書込んでいる。
ド命令VLDLのデータであると、受取レジスタ222
の中の下位4バイトのみが有効データであるために、書
込みセレクタ225,226は,受取りレジスタ222
側に切替わり、データの要素番号212が偶数であれ
ば、書込みレジスタ223にこの有効データを書込み、
奇数のときには、書込みレジスタ224にこの有効デー
タを書込んでいる。
【0042】そこで、2要素が揃ってロードデータバッ
ファ110,120への8バイトのワード幅の書込みデ
ータができたときに、それを代表する偶数要素の要素番
号を要素数の2で割った数とバッファ番号211とから
書込むアドレスを作成して、書込みアドレスレジスタ2
14にセットして、書込みレジスタ223,224のデ
ータをロードデータバッファ110,120に書込んで
いる。
ファ110,120への8バイトのワード幅の書込みデ
ータができたときに、それを代表する偶数要素の要素番
号を要素数の2で割った数とバッファ番号211とから
書込むアドレスを作成して、書込みアドレスレジスタ2
14にセットして、書込みレジスタ223,224のデ
ータをロードデータバッファ110,120に書込んで
いる。
【0043】図6は図1のロードデータバッファ読出し
部300の一例を示したブロック図である。ここでは図
6を参照することにより、ロードデータ読出し部300
が、ロードデータバッファ群100のデータを読出す動
作について説明する。なお、図1のストアデータ読出し
部600が、ストアデータ読出し制御部610およびス
トアデータ伸長実行部620を有して、ストアデータバ
ッファ群400内からデータを読出す動作については、
同様であるので説明を省略する。
部300の一例を示したブロック図である。ここでは図
6を参照することにより、ロードデータ読出し部300
が、ロードデータバッファ群100のデータを読出す動
作について説明する。なお、図1のストアデータ読出し
部600が、ストアデータ読出し制御部610およびス
トアデータ伸長実行部620を有して、ストアデータバ
ッファ群400内からデータを読出す動作については、
同様であるので説明を省略する。
【0044】最初に、ロードデータバッファ読出し部3
00は、ロードデータ読出し制御部310の中の読出し
バッファ番号311および読出し要素数カウンタ312
から読出しアドレス作成回路315により読出しアドレ
スを作成して、ロードデータバッファ群100に送っ
て、ロードデータバッファ群100からのデータを読出
してロードデータ伸長実行部320内の読出しレジスタ
321,322にセットして、要素数カウンタ312の
内容を更新している。
00は、ロードデータ読出し制御部310の中の読出し
バッファ番号311および読出し要素数カウンタ312
から読出しアドレス作成回路315により読出しアドレ
スを作成して、ロードデータバッファ群100に送っ
て、ロードデータバッファ群100からのデータを読出
してロードデータ伸長実行部320内の読出しレジスタ
321,322にセットして、要素数カウンタ312の
内容を更新している。
【0045】この際、読出し命令種別313が8バイト
ロード命令VLDを示していれば、読出し要素数カウン
タ312の6ビットに対する上位2ビットの位置にバッ
ファ番号311の下位2ビットを加算して読出しアドレ
スを作成し、読出した読出しレジスタ321,322の
値がそのまま整列レジスタ323,324に入るよう
に、整列セレクタ325,326を切替える値をセレク
タ制御回路316によりセレクタ制御レジスタ314に
セットするので、読出しレジスタ321,322の値が
そのまま整列レジスタ323,324に入り8バイトの
データをベクトル処理部700に送っている。これらの
動作は、マシンサイクルごとに、全要素を読出すまで繰
返されている。
ロード命令VLDを示していれば、読出し要素数カウン
タ312の6ビットに対する上位2ビットの位置にバッ
ファ番号311の下位2ビットを加算して読出しアドレ
スを作成し、読出した読出しレジスタ321,322の
値がそのまま整列レジスタ323,324に入るよう
に、整列セレクタ325,326を切替える値をセレク
タ制御回路316によりセレクタ制御レジスタ314に
セットするので、読出しレジスタ321,322の値が
そのまま整列レジスタ323,324に入り8バイトの
データをベクトル処理部700に送っている。これらの
動作は、マシンサイクルごとに、全要素を読出すまで繰
返されている。
【0046】また、命令種別313が上位4バイトロー
ド命令VLDUを示したときには、読出し要素数カウン
タ312は、マシンサイクルごとに更新されるバッファ
番号311と合わせてアドレスを作成するために、要素
数カウンタ312の値を2で割った数が使用されてい
る。
ド命令VLDUを示したときには、読出し要素数カウン
タ312は、マシンサイクルごとに更新されるバッファ
番号311と合わせてアドレスを作成するために、要素
数カウンタ312の値を2で割った数が使用されてい
る。
【0047】従って、読出しレジスタ321,322に
は、2マシンサイクルに渡って同じデータが存在するこ
ととなって、整列セレクタ325は、セレクタ制御レジ
スタ314により、読出しレジスタ321,322を交
互に切替えているので、整列レジスタ323は、読出し
要素数カウンタ312により示される読出しデータの要
素番号が偶数であるときに、読出しレジスタ321のデ
ータを命令種別313から示された有効データ位置であ
る整列レジスタ323にセットし、奇数であるときに
は、同様に、読出しレジスタ322のデータをセットし
て、そのデータをベクトル処理部700へ送っている。
は、2マシンサイクルに渡って同じデータが存在するこ
ととなって、整列セレクタ325は、セレクタ制御レジ
スタ314により、読出しレジスタ321,322を交
互に切替えているので、整列レジスタ323は、読出し
要素数カウンタ312により示される読出しデータの要
素番号が偶数であるときに、読出しレジスタ321のデ
ータを命令種別313から示された有効データ位置であ
る整列レジスタ323にセットし、奇数であるときに
は、同様に、読出しレジスタ322のデータをセットし
て、そのデータをベクトル処理部700へ送っている。
【0048】一方、命令種別313が下位4バイトロー
ド命令VLDLを示したときには、読出し要素数カウン
タ312は、マシンサイクルごとに更新されるバッファ
番号311と合わせてアドレスを作成するために、要素
数カウンタ312の値を2で割った数が使用されてい
る。
ド命令VLDLを示したときには、読出し要素数カウン
タ312は、マシンサイクルごとに更新されるバッファ
番号311と合わせてアドレスを作成するために、要素
数カウンタ312の値を2で割った数が使用されてい
る。
【0049】従って、読出しレジスタ321,322に
は、2マシンサイクルに渡って同じデータが存在するこ
ととなって、整列セレクタ326は、セレクタ制御レジ
スタ314により、読出しレジスタ321,322を交
互に切替えているので、整列レジスタ324は、読出し
要素数カウンタ312により示される読出しデータの要
素番号が偶数であるときに、読出しレジスタ321のデ
ータを命令種別313から示された有効データ位置であ
る整列レジスタ324にセットし、奇数であるときに
は、同様に、読出しレジスタ322のデータをセットし
て、そのデータをベクトル処理部700へ送っている。
は、2マシンサイクルに渡って同じデータが存在するこ
ととなって、整列セレクタ326は、セレクタ制御レジ
スタ314により、読出しレジスタ321,322を交
互に切替えているので、整列レジスタ324は、読出し
要素数カウンタ312により示される読出しデータの要
素番号が偶数であるときに、読出しレジスタ321のデ
ータを命令種別313から示された有効データ位置であ
る整列レジスタ324にセットし、奇数であるときに
は、同様に、読出しレジスタ322のデータをセットし
て、そのデータをベクトル処理部700へ送っている。
【0050】次に、従来の技術で説明した命令列の一例
を用いて、それらの命令の動作及び実行結果について説
明する。
を用いて、それらの命令の動作及び実行結果について説
明する。
【0051】すなわち、ベクトル有効長VLを16とし
た命令列は、以下の通りである。
た命令列は、以下の通りである。
【0052】 (1) VLDL V0 ← MEM (2) VLDL V1 ← MEM (3) VADD V0 ← V0+V1 (4) VSTL MEM ← V0 (5) VLDU V0 ← MEM (6) VLDU V1 ← MEM (7) VFAD V0 ← V0+V1 (8) VSTU MEM ← V0 上記の命令列が番号順に実行するようにプログラムされ
ている場合に、高速化の手段としてベクトルレジスタの
状態に関わらずにメモリアクセスを行い、演算結果が保
証される形でロードデータバッファ並びにストアデータ
バッファなどの中間バッファを使用して命令実行順序の
入替えを行っている。
ている場合に、高速化の手段としてベクトルレジスタの
状態に関わらずにメモリアクセスを行い、演算結果が保
証される形でロードデータバッファ並びにストアデータ
バッファなどの中間バッファを使用して命令実行順序の
入替えを行っている。
【0053】すなわち、メモリアクセスを基準にするこ
とにより、 (1) VLDL V0 ← MEM (2) VLDL V1 ← MEM (5) VLDU V0 ← MEM (6) VLDU V1 ← MEM (3) VADD V0 ← V0+V1 (4) VSTL MEM ← V0 (7) VFAD V0 ← V0+V1 (8) VSTU MEM ← V0 の順番に実行されている。
とにより、 (1) VLDL V0 ← MEM (2) VLDL V1 ← MEM (5) VLDU V0 ← MEM (6) VLDU V1 ← MEM (3) VADD V0 ← V0+V1 (4) VSTL MEM ← V0 (7) VFAD V0 ← V0+V1 (8) VSTU MEM ← V0 の順番に実行されている。
【0054】そして、(1) ,(2) ,(5) ,(6) のベクト
ルロード命令には、ベクトル有効長VLが16であるこ
とより、バッファ#0,#1,#2,#3のそれぞれが
割り付けられている。同様にして、(4) ,(8) のベクト
ルストア命令には、バッファ#0,#1のそれぞれが割
り付けられる。
ルロード命令には、ベクトル有効長VLが16であるこ
とより、バッファ#0,#1,#2,#3のそれぞれが
割り付けられている。同様にして、(4) ,(8) のベクト
ルストア命令には、バッファ#0,#1のそれぞれが割
り付けられる。
【0055】図7は本実施例のベクトル処理装置によっ
てベクトル演算を行う動作の一例を示すタイムチャート
である。そして、図8は本実施例のベクトル処理装置に
よるロードデータバッファおよびストアデータバッファ
の使用状況の一例を示した図である。
てベクトル演算を行う動作の一例を示すタイムチャート
である。そして、図8は本実施例のベクトル処理装置に
よるロードデータバッファおよびストアデータバッファ
の使用状況の一例を示した図である。
【0056】図7および図8に示すように、まず、(1)
,(2) のベクトルロード命令には、各々ロードデータ
バッファ110のバッファ#0,#1が割り付けられて
いる。そして、(5) ,(6) のベクトルロード命令には、
ロードデータバッファ110のバッファ#2,#3が割
り付けられている。一方、(4) ,(8) のベクトルストア
命令には、ストアデータバッファ410のバッファ#
0,#1が割り付けられている。
,(2) のベクトルロード命令には、各々ロードデータ
バッファ110のバッファ#0,#1が割り付けられて
いる。そして、(5) ,(6) のベクトルロード命令には、
ロードデータバッファ110のバッファ#2,#3が割
り付けられている。一方、(4) ,(8) のベクトルストア
命令には、ストアデータバッファ410のバッファ#
0,#1が割り付けられている。
【0057】そこで、従来のベクトル処理装置の図12
に比較すると、図7に示すように、ロードデータバッフ
ァ110内に多くのバッファ#0,#1,#2,#3が
存在するので、メモリアクセス動作が隙間無く行われて
動作時間が短くなり、性能が高速化されている。
に比較すると、図7に示すように、ロードデータバッフ
ァ110内に多くのバッファ#0,#1,#2,#3が
存在するので、メモリアクセス動作が隙間無く行われて
動作時間が短くなり、性能が高速化されている。
【0058】また、ロードデータバッファ110および
ストアデータバッファ410の使用形態は、従来のベク
トル処理装置の図13に比較すると、図8に示したよう
に、ロードデータバッファ110およびストアデータバ
ッファ410の中にデータが大幅に圧縮されており、効
率的に使用されている。
ストアデータバッファ410の使用形態は、従来のベク
トル処理装置の図13に比較すると、図8に示したよう
に、ロードデータバッファ110およびストアデータバ
ッファ410の中にデータが大幅に圧縮されており、効
率的に使用されている。
【0059】
【発明の効果】以上説明しているように、本発明のベク
トル処理装置は、ベクトルレジスタとメモリとの中間に
存在するロードデータバッファ,ストアデータバッファ
などの中間データバッファに、複数の仮想バッファ番号
を割付けて、これによって中間データバッファ内のアク
セス領域を特定させることおよび格納するデータが中間
データバッファのワード幅にも満たないときには、デー
タを圧縮して格納して、読出すときには、そのデータを
伸長しながら読出す処理を行うことにより、中間データ
バッファを効率的に使用することができるとともに、デ
ータのベクトル長にかかわらずに少ないハードウェア量
で最大の性能効果を出すことができるようになるという
効果を有している。
トル処理装置は、ベクトルレジスタとメモリとの中間に
存在するロードデータバッファ,ストアデータバッファ
などの中間データバッファに、複数の仮想バッファ番号
を割付けて、これによって中間データバッファ内のアク
セス領域を特定させることおよび格納するデータが中間
データバッファのワード幅にも満たないときには、デー
タを圧縮して格納して、読出すときには、そのデータを
伸長しながら読出す処理を行うことにより、中間データ
バッファを効率的に使用することができるとともに、デ
ータのベクトル長にかかわらずに少ないハードウェア量
で最大の性能効果を出すことができるようになるという
効果を有している。
【図1】本発明のベクトル処理装置の一実施例を示すブ
ロック図である。
ロック図である。
【図2】図1のロードデータバッファ110の一例を示
す構成図である。
す構成図である。
【図3】図1のストアデータバッファ410の一例を示
す構成図である。
す構成図である。
【図4】ロードデータバッファ110,120の各々の
バッファ番号に対応するロードデータバッファ110,
120内のアクセス可能領域の一例を示す図である。
バッファ番号に対応するロードデータバッファ110,
120内のアクセス可能領域の一例を示す図である。
【図5】図1のロードデータバッファ格納部200の一
例を示すブロック図である。
例を示すブロック図である。
【図6】図1のロードデータバッファ読出し部300の
一例を示すブロック図である。
一例を示すブロック図である。
【図7】本実施例のベクトル処理装置によってベクトル
演算を行う動作の一例を示したタイムチャートである。
演算を行う動作の一例を示したタイムチャートである。
【図8】本実施例のベクトル処理装置によるロードデー
タバッファおよびストアデータバッファの使用状況の一
例を示した図である。
タバッファおよびストアデータバッファの使用状況の一
例を示した図である。
【図9】従来のベクトル処理装置で直接メモリと転送を
してベクトル演算を行う動作の一例を示すタイムチャー
トである。
してベクトル演算を行う動作の一例を示すタイムチャー
トである。
【図10】従来のベクトル処理装置の一例を示すブロッ
ク図である。
ク図である。
【図11】ベクトル有効長の違いによるデータバッファ
の必要個数の違いを表したタイムチャートである。
の必要個数の違いを表したタイムチャートである。
【図12】従来のベクトル処理装置により2個のロード
データバッファを用いてベクトル演算を行う動作の一例
を示すタイムチャートである。
データバッファを用いてベクトル演算を行う動作の一例
を示すタイムチャートである。
【図13】従来のベクトル処理装置によるロードデータ
バッファ,ストアデータバッファの使用状況の一例を示
す図である。
バッファ,ストアデータバッファの使用状況の一例を示
す図である。
100,1100 ロードデータバッファ群 110,120,1110,1120 ロードデータ
バッファ 200,1200 ロードデータバッファ格納部 210 ロードデータ書込み制御部 211 書込みバッファ番号 212 データの要素番号 213 書込み命令種別 214 書込みアドレスレジスタ 215 書込みアドレス作成回路 216 書込みセレクタ制御回路 220 ロードデータ圧縮実行部 221,222 データ受取レジスタ 223,224 書込みレジスタ 225,226 書込みレジスタ 300,1300 ロードデータバッファ読出し部 310 ロードデータ読出し制御部 311 読出しバッファ番号 312 読出し要素数カウンタ 313 読出し命令種別 314 セレクタ制御レジスタ 315 読出しアドレス作成回路 316 セレクタ制御回路 320 ロードデータ伸長実行部 321,322 読出しレジスタ 323,324 整列レジスタ 325,326 整列セレクタ 400,1400 ストアデータバッファ群 410,420,1410,1420 ストアデータ
バッファ 500,1500 ストアデータバッファ格納部 510 ストアデータ書込み制御部 520 ストアデータ圧縮実行部 600,1600 ストアデータバッファ読出し部 610 ストアデータ読出し制御部 620 ストアデータ伸長実行部 700,1700 ベクトル処理部 710,1710 クロスバ 720,721,1720,1721 ベクトルレジ
スタ 730,1730 演算器 800,1800 ベクトル処理装置 900,1900 メモリ
バッファ 200,1200 ロードデータバッファ格納部 210 ロードデータ書込み制御部 211 書込みバッファ番号 212 データの要素番号 213 書込み命令種別 214 書込みアドレスレジスタ 215 書込みアドレス作成回路 216 書込みセレクタ制御回路 220 ロードデータ圧縮実行部 221,222 データ受取レジスタ 223,224 書込みレジスタ 225,226 書込みレジスタ 300,1300 ロードデータバッファ読出し部 310 ロードデータ読出し制御部 311 読出しバッファ番号 312 読出し要素数カウンタ 313 読出し命令種別 314 セレクタ制御レジスタ 315 読出しアドレス作成回路 316 セレクタ制御回路 320 ロードデータ伸長実行部 321,322 読出しレジスタ 323,324 整列レジスタ 325,326 整列セレクタ 400,1400 ストアデータバッファ群 410,420,1410,1420 ストアデータ
バッファ 500,1500 ストアデータバッファ格納部 510 ストアデータ書込み制御部 520 ストアデータ圧縮実行部 600,1600 ストアデータバッファ読出し部 610 ストアデータ読出し制御部 620 ストアデータ伸長実行部 700,1700 ベクトル処理部 710,1710 クロスバ 720,721,1720,1721 ベクトルレジ
スタ 730,1730 演算器 800,1800 ベクトル処理装置 900,1900 メモリ
Claims (4)
- 【請求項1】(A)複数の要素を有するベクトルデータ
を持つ複数のベクトルレジスタと、 (B)前記ベクルレジスタに接続して、前記ベクルレジ
スタから受けたベクトルデータのベクトル演算を行い、
前記ベクルレジスタに保持させる複数のベクトル演算器
と、 (C)メモリと前記ベクトルレジスタとの中間に接続さ
れ、ベクトルロード命令が扱う最大のデータ幅で最大の
データ長分の容量(ワード数)を有して、ロードデータ
を前記ベクトルレジスタに転送できるまで一時的に格納
する複数のロードデータバッファと、 (D)前記ベクトルレジスタと前記メモリとの中間に接
続され、ベクトルストア命令が扱う最大のデータ幅で最
大のデータ長分の容量を有して、ストアデータを前記メ
モリに転送できるまでの間一時的に格納する複数のスト
アデータバッファと、 (E)複数個の前記ロードデータバッファを有するとと
もに、個々の前記ロードデータバッファ内に複数の仮想
バッファを設け、その仮想バッファに対して前記ロード
データバッファ内で使用が可能なワード位置を示し且つ
全体の前記ロードデータバッファの中でユニークになる
仮想バッファ番号を設定したロードデータバッファ群
と、 (F)命令種別で異なるロードデータの有効データ幅を
認識し、該有効データ幅が前記ロードデータバッファの
データ幅よりも十分小さいときには、前記ロードデータ
バッファのデータ幅に合わせて、複数のロードデータを
要素圧縮して格納するロードデータバッファ格納部と、 (G)前記ロードデータバッファ群の中からの読出しを
指定されたデータの有効データ幅を命令種別より認識
し、前記ロードデータバッファ格納部により圧縮が行わ
れた命令であれば読出したデータを元の複数の要素に展
開するロードデータバッファ読出し部とを備えるベクト
ル処理装置において、前記 ロードデータバッファ格納部は、各データをロード
するベクトルロード命令の命令種別によって、ロードさ
れるデータの有効データ幅を認識し、前記有効データ幅
が前記ロードデータバッファのデータ幅に一致する最大
のデータ幅であるときに、指示された仮想バッファ番号
が示す前記ロードデータバッファ内のワードアドレスか
ら一要素づつ順次に格納するように書込みアドレスを更
新し、 前記有効データ幅が最大データ幅よりも十分小さいとき
には、最大データ幅になるようにロードデータの複数の
要素数分をまとめて一ワードを構成してデータの圧縮を
実行し、指示された仮想バッファ番号が示す前記ロード
データバッファのワードアドレスから一ワードにまとめ
るごとに前記ロードデータバッファ内に格納して書込み
アドレスを更新することを特徴とするベクトル処理装
置。 - 【請求項2】(A)複数の要素を有するベクトルデータ
を持つ複数のベクトルレジスタと、 (B)前記ベクルレジスタに接続して、前記ベクルレジ
スタから受けたベクトルデータのベクトル演算を行い、
前記ベクルレジスタに保持させる複数のベクトル演算器
と、 (C)メモリと前記ベクトルレジスタとの中間に接続さ
れ、ベクトルロード命令が扱う最大のデータ幅で最大の
データ長分の容量(ワード数)を有して、ロードデータ
を前記ベクトルレジスタに転送できるまで一時的に格納
する複数のロードデータバッファと、 (D)前記ベクトルレジスタと前記メモリとの中間に接
続され、ベクトルストア命令が扱う最大のデータ幅で最
大のデータ長分の容量を有して、ストアデータを前記メ
モリに転送できるまでの間一時的に格納する複数のスト
アデータバッファと、 (E)複数個の前記ロードデータバッファを有するとと
もに、個々の前記ロードデータバッファ内に複数の仮想
バッファを設け、その仮想バッファに対して前記ロード
データバッファ内で使用が可能なワード位置を示し且つ
全体の前記ロードデータバッファの中でユニークになる
仮想バッファ番号を設定したロードデータバッファ群
と、 (F)命令種別で異なるロードデータの有効データ幅を
認識し、該有効データ幅が前記ロードデータバッファの
データ幅よりも十分小さいときには、前記ロードデータ
バッファのデータ幅に合わせて、複数のロードデータを
要素圧縮して格納するロードデータバッファ格納部と、 (G)前記ロードデータバッファ群の中からの読出しを
指定されたデータの有効データ幅を命令種別より認識
し、前記ロードデータバッファ格納部により圧縮が行わ
れた命令であれば読出したデータを元の複数の要素に展
開するロードデータバッファ読出し部とを備えるベクト
ル処理装置において、前記 ロードデータバッファ読出し部は、読出しを指示さ
れた仮想バッファ番号のアドレスに格納されているデー
タの有効データ幅を命令種別で認識し、一要素が一ワー
ドに格納されているときには、指示された仮想バッファ
番号が示す前記ロードデータバッファのワードアドレス
から処理する要素数分の読出しサイクルを連続して行
い、 複数の要素が一ワードに格納されているときには、前記
ロードデータバッファの読出しサイクルを圧縮された要
素分に伸長して、読出したデータを要素ごとに命令種別
で決定される本来の有効データ位置に戻しながら読出し
動作を行うことを特徴とするベクトル処理装置。 - 【請求項3】(A)複数の要素を有するベクトルデータ
を持つ複数のベクトルレジスタと、 (B)前記ベクルレジスタに接続して、前記ベクルレジ
スタから受けたベクトルデータのベクトル演算を行い、
前記ベクルレジスタに保持させる複数のベクトル演算器
と、 (C)メモリと前記ベクトルレジスタとの中間に接続さ
れ、ベクトルロード命令が扱う最大のデータ幅で最大の
データ長分の容量(ワード数)を有して、ロードデータ
を前記ベクトルレジスタに転送できるまで一時的に格納
する複数のロードデータバッファと、 (D)前記ベクトルレジスタと前記メモリとの中間に接
続され、ベクトルストア命令が扱う最大のデータ幅で最
大のデータ長分の容量を有して、ストアデータを前記メ
モリに転送できるまでの間一時的に格納する複数のスト
アデータバッファと、 (E)複数個の前記ストアデータバッファを有するとと
もに、個々の前記ストアデータバッファ内に複数の仮想
バッファを設け、その仮想バッファに対して前記ストア
データバッファ内で使用が可能なワード位置を示し且つ
全体の前記ストアデータバッファの中でユニークになる
仮想バッファ番号を設定したストアデータバッファ群
と、 (F)命令種別で異なるストアデータの有効データ幅を
認識し、該有効データ幅が前記ストアデータバッファの
データ幅よりも十分小さいときには、前記ストアデータ
バッファのデータ幅に合わせて、複数のストアデータを
要素圧縮して格納するストアデータバッファ格納部と、 (G)前記ストアデータバッファ群の中からの読出しを
指定されたデータの有効データ幅を命令種別より認識
し、前記ストアデータバッファ格納部により圧縮が行わ
れた命令であれば読出したデータを元の複数の要素に展
開するストアデータバッファ読出し部とを備えるベクト
ル処理装置において、前記 ストアデータバッファ格納部は、各データをストア
するベクトルストア命令の命令種別によって、ストアさ
れるデータの有効データ幅を認識し、前記有効データ幅
が前記ストアデータバッファのデータ幅に一致する最大
のデータ幅であるときに、指示された仮想バッファ番号
が示す前記ストアデータバッファ内のワードアドレスか
ら一要素づつ順次に格納するように書込みアドレスを更
新し、 前記有効データ幅が最大データ幅よりも十分小さいとき
には、最大データ幅になるようにストアデータの複数の
要素数分をまとめて一ワードを構成してデータの圧縮を
実行し、指示された仮想バッファ番号が示す前記ストア
データバッファのワードアドレスから一ワードにまとめ
るごとに前記ストアデータバッファ内に格納して書込み
アドレスを更新することを特徴とするベクトル処理装
置。 - 【請求項4】(A)複数の要素を有するベクトルデータ
を持つ複数のベクトルレジスタと、 (B)前記ベクルレジスタに接続して、前記ベクルレジ
スタから受けたベクトルデータのベクトル演算を行い、
前記ベクルレジスタに保持させる複数のベクトル演算器
と、 (C)メモリと前記ベクトルレジスタとの中間に接続さ
れ、ベクトルロード命令が扱う最大のデータ幅で最大の
データ長分の容量(ワード数)を有して、ロードデータ
を前記ベクトルレジスタに転送できるまで一時的に格納
する複数のロードデータバッファと、 (D)前記ベクトルレジスタと前記メモリとの中間に接
続され、ベクトルストア命令が扱う最大のデータ幅で最
大のデータ長分の容量を有して、ストアデータを前記メ
モリに転送できるまでの間一時的に格納する複数のスト
アデータバッファと、 (E)複数個の前記ストアデータバッファを有するとと
もに、個々の前記ストアデータバッファ内に複数の仮想
バッファを設け、その仮想バッファに対して前記ストア
データバッファ内で使用が可能なワード位置を示し且つ
全体の前記ストアデータバッファの中でユニークになる
仮想バッファ番号を設定したストアデータバッファ群
と、 (F)命令種別で異なるストアデータの有効データ幅を
認識し、該有効データ幅が前記ストアデータバッファの
データ幅よりも十分小さいときには、前記ストアデータ
バッファのデータ幅に合わせて、複数のストアデータを
要素圧縮して格納するストアデータバッファ格納部と、 (G)前記ストアデータバッファ群の中からの読出しを
指定されたデータの有効データ幅を命令種別より認識
し、前記ストアデータバッファ格納部により圧縮が行わ
れた命令であれば読出したデータを元の複数の要素に展
開するストアデータバッファ読出し部とを備えるベクト
ル処理装置において、前記 ストアデータバッファ読出し部は、読出しを指示さ
れた仮想バッファ番号のアドレスに格納されているデー
タの有効データ幅を命令種別で認識し、一要素が一ワー
ドに格納されているときには、指示された仮想バッファ
番号が示す前記ストアデータバッファのワードアドレス
から処理する要素数分の読出しサイクルを連続して行
い、 複数の要素が一ワードに格納されているときには、前記
ストアデータバッファの読出しサイクルを圧縮された要
素分に伸長して、読出したデータを要素ごとに命令種別
で決定される本来の有効データ位置に戻しながら読出し
動作を行うことを特徴とするベクトル処理装置。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6117784A JP2752902B2 (ja) | 1994-05-31 | 1994-05-31 | ベクトル処理装置 |
AU20401/95A AU691593B2 (en) | 1994-05-31 | 1995-05-30 | Vector processing unit with reconfigurable data buffer |
CA002150518A CA2150518C (en) | 1994-05-31 | 1995-05-30 | Vector processing unit with reconfigurable data buffer |
EP95108329A EP0686922B1 (en) | 1994-05-31 | 1995-05-31 | Vector processing unit with reconfigurable data buffer |
DE69520707T DE69520707T2 (de) | 1994-05-31 | 1995-05-31 | Vektorverarbeitungseinheit mit rekonfigurierbarem Datenpuffer |
US08/857,327 US5881302A (en) | 1994-05-31 | 1997-05-16 | Vector processing unit with reconfigurable data buffer |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6117784A JP2752902B2 (ja) | 1994-05-31 | 1994-05-31 | ベクトル処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH07325805A JPH07325805A (ja) | 1995-12-12 |
JP2752902B2 true JP2752902B2 (ja) | 1998-05-18 |
Family
ID=14720236
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP6117784A Expired - Fee Related JP2752902B2 (ja) | 1994-05-31 | 1994-05-31 | ベクトル処理装置 |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP0686922B1 (ja) |
JP (1) | JP2752902B2 (ja) |
AU (1) | AU691593B2 (ja) |
CA (1) | CA2150518C (ja) |
DE (1) | DE69520707T2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4789269B2 (ja) * | 2008-04-10 | 2011-10-12 | エヌイーシーコンピュータテクノ株式会社 | ベクトル処理装置及びベクトル処理方法 |
JP5708303B2 (ja) * | 2011-06-29 | 2015-04-30 | 富士通株式会社 | 画像処理装置、画像処理方法および画像処理プログラム |
US10061581B2 (en) * | 2014-01-31 | 2018-08-28 | Qualcomm Incorporated | On-the-fly conversion during load/store operations in a vector processor |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS57121746A (en) * | 1981-01-22 | 1982-07-29 | Nec Corp | Information processing device |
JPH0670785B2 (ja) * | 1984-05-21 | 1994-09-07 | 株式会社日立製作所 | ポインタ動的制御によるバツフアメモリ拡張方法 |
US4771380A (en) * | 1984-06-22 | 1988-09-13 | International Business Machines Corp. | Virtual vector registers for vector processing system |
US4888679A (en) * | 1988-01-11 | 1989-12-19 | Digital Equipment Corporation | Method and apparatus using a cache and main memory for both vector processing and scalar processing by prefetching cache blocks including vector data elements |
JPH02254563A (ja) * | 1989-03-29 | 1990-10-15 | Koufu Nippon Denki Kk | ベクトルデータ処理方式 |
JP2622008B2 (ja) * | 1990-03-08 | 1997-06-18 | 甲府日本電気株式会社 | 情報処理装置 |
JPH04557A (ja) * | 1990-04-17 | 1992-01-06 | Mitsubishi Electric Corp | ベクトルプロセッサ |
-
1994
- 1994-05-31 JP JP6117784A patent/JP2752902B2/ja not_active Expired - Fee Related
-
1995
- 1995-05-30 AU AU20401/95A patent/AU691593B2/en not_active Ceased
- 1995-05-30 CA CA002150518A patent/CA2150518C/en not_active Expired - Fee Related
- 1995-05-31 EP EP95108329A patent/EP0686922B1/en not_active Expired - Lifetime
- 1995-05-31 DE DE69520707T patent/DE69520707T2/de not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CA2150518A1 (en) | 1995-12-01 |
AU2040195A (en) | 1995-12-07 |
AU691593B2 (en) | 1998-05-21 |
DE69520707D1 (de) | 2001-05-23 |
EP0686922A1 (en) | 1995-12-13 |
EP0686922B1 (en) | 2001-04-18 |
DE69520707T2 (de) | 2001-11-29 |
CA2150518C (en) | 2002-01-01 |
JPH07325805A (ja) | 1995-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5881302A (en) | Vector processing unit with reconfigurable data buffer | |
JP3670160B2 (ja) | タスクに各リソースを割当てるための回路、複数のリソースを共用するための方法、命令を実行するためのプロセッサ、マルチタスクプロセッサ、コンピュータ命令を実行するための方法、マルチタスク方法、コンピュータプロセッサを含む装置、複数の所定のグループのタスクを実行するステップを含む方法、ネットワークデータを処理するステップを含む方法、複数のソフトウェアタスクを実行するための方法およびコンピュータプロセッサを含むネットワーク装置 | |
EP1019805B1 (en) | Data processing unit with digital signal processing capabilities | |
EP0240032A2 (en) | Vector processor with vector data compression/expansion capability | |
US6732253B1 (en) | Loop handling for single instruction multiple datapath processor architectures | |
CN101061460B (zh) | 用于混移运算的微处理器设备和方法 | |
US20050198471A1 (en) | Micro-controller for reading out compressed instruction code and program memory for compressing instruction code and storing therein | |
JPS59160267A (ja) | ベクトル処理装置 | |
US11308171B2 (en) | Apparatus and method for searching linked lists | |
EP0305639A2 (en) | Vector computer | |
JP2752902B2 (ja) | ベクトル処理装置 | |
US20080215859A1 (en) | Computer with high-speed context switching | |
JP2547219B2 (ja) | ベクトルデータのアクセス制御装置及び方法 | |
US5146599A (en) | System for fetching a plurality vector-data groups using a plurality of addressing device | |
US6243800B1 (en) | Computer | |
EP0359192B1 (en) | Vector processors and vector register control | |
JP2621793B2 (ja) | バスサイクルのマルチプレクス方式 | |
KR20230095775A (ko) | Ndp 기능을 포함하는 메모리 확장 장치 및 이를 포함하는 가속기 시스템 | |
JPS6337412B2 (ja) | ||
JPH0271327A (ja) | ソート処理装置 | |
JP2576589B2 (ja) | 仮想記憶アクセス制御方式 | |
JPH024025B2 (ja) | ||
JPH03191449A (ja) | 情報処理装置 | |
JPH0721154A (ja) | ベクトル処理装置 | |
JPH09218791A (ja) | ファクシミリ制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |