Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JPH0748204B2 - 行列演算処理方法 - Google Patents
[go: Go Back, main page]

JPH0748204B2 - 行列演算処理方法 - Google Patents

行列演算処理方法

Info

Publication number
JPH0748204B2
JPH0748204B2 JP63171506A JP17150688A JPH0748204B2 JP H0748204 B2 JPH0748204 B2 JP H0748204B2 JP 63171506 A JP63171506 A JP 63171506A JP 17150688 A JP17150688 A JP 17150688A JP H0748204 B2 JPH0748204 B2 JP H0748204B2
Authority
JP
Japan
Prior art keywords
row
vector
matrix
pivot
accumulator
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP63171506A
Other languages
English (en)
Other versions
JPH0221361A (ja
Inventor
正憲 杉田
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP63171506A priority Critical patent/JPH0748204B2/ja
Publication of JPH0221361A publication Critical patent/JPH0221361A/ja
Publication of JPH0748204B2 publication Critical patent/JPH0748204B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、ベクトル計算機における行列演算をベクトル
アキュムレータを使用して高速に行う行列演算処理方法
に関する。
〔従来の技術〕
従来より、行列の逆行列の算出や、連立1次方程式の解
法としては例えば、山内二郎他著「電子計算機のための
数値計算法I」P7〜P22に示されるように掃き出し法
や、ガウスの消去法が、一般的に知られている。
逆行列の算出は、単位行列をEとすれば、A・X=Eと
なるXを求めればよく、それには、連立1次方程式AXj
=ej(XjはXの第j列、ejはEの第j列)をj=1,2,
…,nについて解けばよい。従って、以下の説明では、P
・X=Qを満たす、行列Xの算出について述べる。ここ
で、P,Qは、それぞれm行m列、m行n−m列の与えら
れた行列であり、Xは求めるべき、m行n−m列の行列
である。
掃き出し法では、 なる行列Aについて、 1)第k行をakkで割る。(akkをピボットと呼ぶ) 2)j=1,2,…,mに対し(ただしj=kを除く)、第j
行から第k行のajk倍を引く。
3)上記1),2)をk=1,2,…,mについて繰り返す。
という計算を行う。
ガウスの消去法では、 1)j=k+1,…,mに対し、第j行から第k行のajk/a
kk倍を引く。
(akkをピボットと呼ぶ) 2)上記1)をk=1,2,…,m−1について繰り返す。
という計算を行う。
掃き出し法においても、ガウスの消去法においても、各
段階のピボット(akk)は、“0"であってはならない。
また、“0"でなくても、計算の途中で、ピボットが極め
て小さな値となることがある。このまま計算を続けるこ
とは、計算の精度上、好ましくない。
従って、従来より、ピボットの選択という操作が、必要
であった。
この操作は、例えばk回目のピボットを決定する際に、
akkを無条件にピボットにするのではなく、i=k,k+1,
…,mなるaikの中で、絶対値が最も大きなものを選択す
るものである。そして、その要素を含む行をピボット行
とし、第k行とピボット行との間で行の入れ換えを行っ
た後、計算を行う。
このような行列演算を高速に行うための計算機としてベ
クトル計算機がある。第6図は、このような従来の行列
演算処理方法を行うベクトル計算機の一例を、ブロック
図で示したものであり、図において、1は演算対象の行
列を記憶する主メモリ、2は演算処理を行う演算装置
(CPU)、3は複数のベクトルレジスタからなり、主メ
モリ1から演算の対象となる行列を読み出して、保持す
るベクトルアキュムレータ(VACC)である。
また、第7図は、特開昭62-138968号公報に示された、
このような従来の行列演算方法を行うベクトル計算機の
別の一例を示すブロック図であり、図において、5はス
カラ値の保持するスカラアキュムレータ(SACC)、6a,6
bは主メモリ1のデータをベクトルアキュムレータ3に
読み出すためのロードバス、7はベクトルアキュムレー
タ3のデータを主メモリに書き込むためのストアバス、
8は主メモリ1とベクトルアキュムレータ3およびスカ
ラアキュムレータ5との間でロードバス6a,6bやストア
バス7を介してデータのやり取りを行うための転送用ス
イッチング回路、9はベクトルアキュムレータ3および
スカラアキュムレータ5と演算装置2との間で演算デー
タのやり取りを行う演算用スイッチング回路である。な
お、図6と同じ番号は同じものを示す。
ベクトルアキュムレータ3内のベクトルレジスタのデー
タを演算用スイッチング回路9を介して演算装置2で演
算する処理は、パイプラインにより高速で行われるの
で、行列演算処理は、初めに主メモリ1から行列データ
の行データをベクトルデータとしてベクトルアキュムレ
ータ3内のベクトルレジスタに取り込み、ベクトルデー
タの演算を演算装置2で行い、途中の演算結果をベクト
ルアキュムレータ3に書き戻し、最後に最終結果を主メ
モリ1に書き戻すことによって行われる。
次に、第8図〜第10図のフローチャートに基づき、従来
の行列演算処理方法について説明する。なお、ここで
は、掃き出し法により、前述したP・X=Qの方程式を
解く場合を例にとって、説明する。
第8図において、まず、演算の対象となる行列P・Qを
主メモリ1からベクトルアキュムレータ3にロードする
(ステップ81)。このとき、行列の行データをベクトル
データとして、ベクトルアキュムレータ3のベクトルレ
ジスタごとに対応させて、読み込む。次に、k=1と
し、(ステップ82)第9図に示すフローチャートに従っ
て、ピボット選択を行う(ステップ83)。第9図におい
て、ピボット選択は、まず、aik(i=k,k+1,…,m)の
中で絶対値が最大のものを選択し、ピボット値とする
(ステップ91)。このピボット値が“0"であれば、エラ
ーとなる(ステップ92)。次に、ピボット行の番号rk
kとを比較し(ステップ93)、rk=kであれば第8図の
フローへ戻り、rk≠kであれば、(ステップ94)第10図
に示すフローチャートに従って、行列のk行目とrk行目
を入れ換え、第8図のフローへ戻る。
第10図において、ベクトルアキュムレータ3に空きのベ
クトルレジスタの有無(ステップ101)によって、処理
方法が変わる。空きのレジスタがあれば、k行目の行デ
ータに対応するベクトルレジスタの内容を、空きレジス
タに転送し(ステップ102)、rk行目の行データに対応
するベクトルレジスタの内容をk行目の行データに対応
するベクトルレジスタに転送する(ステップ103)。次
に、空きレジスタに転送した元のk行目の行データを、
rk行目の行データに対応するベクトルレジスタに転送す
る(ステップ104)ことによって、k行目とrk行目の行
データの入れ換えが、ベクトルアキュムレータ3内のレ
ジスタ間の転送で行われる。
空きのレジスタがなければ、ステップ105〜107に示すよ
うに、主メモリ1内の空きエリアを使用して、行の入れ
換えを行う。この場合、主メモリへのアクセスを伴うの
で、ベクトル計算機の処理速度が落ちる。
次に第8図に戻り、上記ステップ83のピボット選択が行
われると、ピボット行をピボット値で割る(ステップ8
4)。そして、ピボット行を除いた全ての行に対して掃
き出しを行う(ステップ85〜87)。上記掃き出し操作が
全て完了すれば、ベクトルアキュムレータ3の上の結果
を主メモリ1にストアして演算を終了する。
〔発明が解決しようとする課題〕
従来の方法によれば、ピボット選択の際に、各行毎に、
行の入れ換え操作が必要となる可能性がある。この操作
では、ベクトルアキュムレータ内の行データの交換を必
要とし、その行データ交換のたびにその処理時間が必要
となるという課題があった。
また、ベクトルアキュムレータは、一般に、数個(s
個)のベクトルレジスタから構成されており、行列の行
データをベクトルデータとして、ベクトルレジスタごと
に対応させて、パイプラインにより行列の高速演算を行
う場合、従来の方法のように行の入れ換え操作が必要に
なると、行列の行数がs−1行までであれば主メモリに
対するアクセスなしに行の入れ換えできるが、行列の行
数がs行であれば、行データ交換のたびに主メモリへの
アクセスが必要となり、処理性能が低下するという課題
があった。
本発明は、上記のような課題を解消するためになされた
もので、ベクトル計算機の演算処理能力を生かして、逆
行列演算もしくは、係数が等しい複数の連立1次方程式
を高速に処理できる行列演算処理方法を得ることを目的
とする。
〔課題を解決するための手段〕
本発明に係る行列演算処理方法は、ピボット選択の際
に、各行の行交換状態を記録しておくためのロウ・イン
デックステーブル(以下RIテーブルと呼ぶ)を作成する
ものである。
〔作用〕
ピボット選択により、行の入れ換えの可能性が生じた場
合には、行の各要素を入れ換える代わりに、本発明にお
けるRIテーブルの入れ換え行に対応する行番号を入れ換
えておき、演算の最終段階で、RIテーブルを参照しなが
ら、ベクトルアキュムレータ内の結果を主メモリに格納
する。
〔発明の実施例〕
以下、この発明の一実施例を図について説明する。第1
図において、1は主メモリ、2は演算処理を行う演算装
置(CPU)、3は演算対象となる行列を保持するベクト
ルアキュムレータ、4は演算の対象となる行列と同じ行
数(m)からなり、ピボット選択により行の入れ換えの
必要性が生じた場合に実際の行を入れ換える代わりに、
対応する行の番号を入れ換えるためのRIテーブルであ
る。
また、第2図は、RIテーブル4の行番号の入れ換えを示
す説明図、第3図〜第5図は、掃き出し法により、P・
X=Qを満たす行列Xを求める場合の、本発明のフロー
チャートである。
演算の対象となる行列、P,Qはそれぞれ主メモリ1から
ベクトルアキュムレータ3にロード(ステップ30)され
た後、第1回目のピボット選択を行う(ステップ31〜33
および第4図)。第1回目のピボット選択では、a11,a
21,…,am1の中で絶対値が最も大きな要素を選び出し、
その要素をピボットとし、その要素を含む行がピボット
行となる(ステップ41)。今、仮にar1がピボットに選
ばれとすれば、1行目とr行目の交換を行う必要がある
が、本発明では、実際の行の交換を行う代わりにRIテー
ブル4の1行目とr行目を交換する(ステップ44)。RI
テーブル4は、演算がはじまる前に、1行目から順に1,
2,…,r,…,mの値が初期設定されているから、1回目の
ピボット選択により、RIテーブル4の内容は、1行目か
ら順にr,2,…,1,…,mとなる。
2回目以降m−1回目までのピボット選択についても同
様で、第2図に示すようにk回目のピボット選択で、第
1行がピボット行となった場合には、RIテーブル4の第
1行目の内容R1と第k行目の内容Rkを入れ換える。
このRIテーブル4を使用することにより、1回の行交換
で、n個の要素を交換しなければならなかったものが、
1要素の交換だけで済ませることができる。もしも、m
−1回のピボット選択で毎回行交換が必要となる場合に
は(m−1)・n回分の要素交換をしなくても済む。ま
た、RIテーブルをベクトルアキュムレータ3以外のエリ
アに設けているので、行交換のための空きベクトルレジ
スタをベクトルアキュムレータ3内に持つ必要がなく、
ベクトルアキュムレータ3内の全てのベクトルレジスタ
を行データの格納場所として使用できる。
ピボット選択と、ピボット行以外の全ての行に対する掃
き出しが、1〜m行について行われた後、ベクトルアキ
ュムレータ3には、行交換されないまま結果が残ってい
るため、RIテーブル4を参照しながら、正しい行順で主
メモリ1に処理結果をストアする(ステップ38)。即
ち、第5図に示すように、RIテーブル4のk行目にRk
入っていたとすれば、ベクトルアキュムレータ3内の行
列の第Rk行の要素群を主メモリ1内の行列の第k行目に
ストアする。
また、上記実施例では、掃き出し法を用いて、PX=Qを
満たすXを求める場合について説明したが、ガウスの消
去法や、その他、行列の行や列の入れ換え操作を要する
演算にも適用できる。
〔発明の効果〕
以上のように、この発明によれば、行の入れ換え状態を
示すRIテーブルを設置したために、行の入れ換え操作を
要する行列演算において、入れ換え行を構成する全要素
群を入れ換えなくて済み、RIテーブル内の1要素間を交
換するだけでよいため、演算時間が短縮され、高速な行
列演算が可能となる。また、RIテーブルをベクトルアキ
ュムレータ以外のエリアに設けているので、行列の行デ
ータをベクトルデータとして、ベクトルレジスタごとに
対応させて、パイプラインにより行列の高速演算を行う
場合、行交換のための空きベクトルレジスタをベクトル
アキュムレータ内に持つ必要がなく、ベクトルアキュム
レータ内の全てのベクトルレジスタを行データの格納場
所として使用できる。
【図面の簡単な説明】
第1図は本発明の一実施例による行列演算処理方法を示
すブロック図、第2図は本発明による、行交換状態を記
録するテーブルの説明図、第3図〜第5図は、本発明に
よる掃き出し法のフローチャート、第6図および第7図
は、従来の行列演算処理方法を行うベクトル計算機の構
成を示すブロック図、第8図〜第10図は、従来の方法に
よる掃き出し法のフローチャートである。 図中、1は主メモリ、2は演算装置、3はベクトルアキ
ュムレータ、4はRIテーブルを示す。 なお、図中、同一符号は、同一又は相当部分を示す。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】主メモリと、主メモリから読み出した行列
    の要素データを保持するベクトルアキュムレータと、行
    列の演算を行う演算装置とを備えたベクトル計算機によ
    る行列演算処理方法において、行または列の交換状態を
    記録するテーブルを設け、行または列の交換を行う場合
    は、上記ベクトルアキュムレータの要素データを交換す
    る代わりに、交換する行または列に対応する数値を上記
    テーブルに記録し、演算後のベクトルアキュムレータの
    要素データを、上記テーブルの記録に従って読み換え、
    本来の行または列の順に主メモリに書き出すことを特徴
    とする行列演算処理方法。
JP63171506A 1988-07-08 1988-07-08 行列演算処理方法 Expired - Lifetime JPH0748204B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63171506A JPH0748204B2 (ja) 1988-07-08 1988-07-08 行列演算処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63171506A JPH0748204B2 (ja) 1988-07-08 1988-07-08 行列演算処理方法

Publications (2)

Publication Number Publication Date
JPH0221361A JPH0221361A (ja) 1990-01-24
JPH0748204B2 true JPH0748204B2 (ja) 1995-05-24

Family

ID=15924375

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63171506A Expired - Lifetime JPH0748204B2 (ja) 1988-07-08 1988-07-08 行列演算処理方法

Country Status (1)

Country Link
JP (1) JPH0748204B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006085619A (ja) 2004-09-17 2006-03-30 Fujitsu Ltd 帯係数行列を持つ連立1次方程式の解法プログラム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6035704B2 (ja) * 1978-09-29 1985-08-16 富士通株式会社 フ−リエ変換処理方式

Also Published As

Publication number Publication date
JPH0221361A (ja) 1990-01-24

Similar Documents

Publication Publication Date Title
US3781812A (en) Addressing system responsive to a transfer vector for accessing a memory
CA1104261A (en) Method and apparatus to test address formulation in an advanced computer system
US6381686B1 (en) Parallel processor comprising multiple sub-banks to which access requests are bypassed from a request queue when corresponding page faults are generated
JPH01500377A (ja) 2個のシステムクロックサイクルを利用する書込み動作をもったキャッシュメモリユニットを供与する装置及び方法
US6295534B1 (en) Apparatus for maintaining an ordered list
US5408628A (en) Solid state recorder with flexible width data bus utilizing lock mapping and error correction and detection circuits
US3737871A (en) Stack register renamer
JPH0282330A (ja) ムーブアウト・システム
JPH0748204B2 (ja) 行列演算処理方法
US12339980B2 (en) Data replacement apparatus, data replacement method, and program
JPH05324700A (ja) 行列乗算装置
JP2636485B2 (ja) キャッシュ記憶装置
JPS6150359B2 (ja)
US4125879A (en) Double ended stack computer store
JPH0520350A (ja) ベクトル処理装置
JPS5928289A (ja) バツフア記憶制御方式
JPH02136946A (ja) キャッシュメモリ制御回路
JPS6058503B2 (ja) デ−タ処理制御方式
JPH061449B2 (ja) 画像編集用イメ−ジメモリ
SU864336A1 (ru) Логическое запоминающее устройство
KR830000265B1 (ko) 정보처리 장치
JP2576589B2 (ja) 仮想記憶アクセス制御方式
JPS6019258A (ja) 記憶装置
JP3564173B2 (ja) 相対編成フアイルのアクセス装置
JPH1021053A (ja) データ処理装置