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
JPS5913058B2 - アレイ処理装置 - Google Patents
[go: Go Back, main page]

JPS5913058B2 - アレイ処理装置 - Google Patents

アレイ処理装置

Info

Publication number
JPS5913058B2
JPS5913058B2 JP51137444A JP13744476A JPS5913058B2 JP S5913058 B2 JPS5913058 B2 JP S5913058B2 JP 51137444 A JP51137444 A JP 51137444A JP 13744476 A JP13744476 A JP 13744476A JP S5913058 B2 JPS5913058 B2 JP S5913058B2
Authority
JP
Japan
Prior art keywords
operand
array
address
operands
elements
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
Application number
JP51137444A
Other languages
English (en)
Other versions
JPS5361933A (en
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP51137444A priority Critical patent/JPS5913058B2/ja
Publication of JPS5361933A publication Critical patent/JPS5361933A/ja
Publication of JPS5913058B2 publication Critical patent/JPS5913058B2/ja
Expired legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)
  • Complex Calculations (AREA)

Description

【発明の詳細な説明】 本発明&Aアレイオペランドが主記憶上に非連続に配置
されている場合のアレイ演算の高速処理を可能にするア
レイ処理装置に関するものである。
一般的にプログラムループに依つて実現される様なアレ
イ演算に於いて、1回のループで使用するアレイオペラ
ンドエレメントは主記憶装置上に或るアドレス間隔をも
つて配置されている。このアドレス間隔がアレイオペラ
ンドエレメント長と等しければアレイオペランドが連続
であると見做し、等しくなければ非連続であると見做す
。従来、アレイオペランド非連続ケースのアレイ演算処
理は、逐次実行すべきアレイオペランドエレメントが主
記憶装置アドレス上で飛び飛びに配置されている為、演
算の都度、必要となつた時点で該当オペランドを主記憶
装置からフェッチしていた。従つて、演算装置での処理
は、アレイオペランドエレメントが主記憶装置から取出
され演算装置に送り込まれる迄待たされ、主記憶装置の
アクセス持ち時間による性能低下が著しくなつていた。
これの改善にはバッファ記憶装置を備え、必要とするア
レイオペランドエレメントの近傍をlブロックとしての
ブロック転送機能により、バッファ記憶に写しを持つて
おくことが考えられるが、アレイオペランドエレメント
の非連続ケースに於いては処理されるエレメントのアド
レスに逐次性が無い為、写しである近傍のデータがアレ
イオペランドエレメントとして参照されることによる性
能向上に大きな期待をかけることはできないし、バッフ
ァ記憶装置の使用効率低下を招く恐れもあつた。本発明
の目的は、アレイオペランドエレメントが連続的である
場合はブロック転送機能によりーー定ブロックのアレイ
オペランドエレメントを先取りするが、アレイオペラン
ドエレメントが非連続的である場合にも、先行するアレ
ィオペランドエレメントアドレスの先行生成を実現し、
該生成したアドレスによつて主記憶装置から先行するア
レイオペランドエレメントを先行フエツチして、オペラ
ンドスタツカに格納しておき、演算装置が該当アレイオ
ペランドエレメントを必要とした時点にそのエレメント
をスタツカから高速に供給し、アレイ演算の実質的な性
能向上を図る事にある。
しかして、本発明は、アレイオペランドエレメントが連
続する場合は装置に具備されているプロツク転送機能を
用いてアレィオペランドエレメントの先取りを行うが、
アレィオペランドエレメントが非連続の場合にも先取り
を行うため、アレイオペランドエレメントの連続/非連
続を検出する手段と、アレイ演算で必要なオペランド数
に等しい複数のオペランドアドレスレジスタと遂次実行
されるべきアレイオペランドエレメント間のアドレスの
差を表わすインクリメント値を保持する複数のインクリ
メントレジスタを持ち、且つ、アレイオペランドエレメ
ントが主記憶装置に非連続に格納されていることが検出
されると、オペランドアドレスとインクリメント値とか
ら先行する複数のアレイオペランドエレメントアドレス
を生成し、演算装置のアレイ演算と並列に先行するアレ
イエレメントの先行フエツチとスタツクを行ない、演算
装置がアレイエレメントを必要とした場合に、あらかじ
めスタツクされている該当エレメントを高速に演算装置
に供給できる機能を持つことを特徴とする。以下、図面
により本発明の内容を詳細に説明することにする。
第1図は主記憶装置上にアレイオペランドエレメントが
遂次実行の順に連続して置かれている場合に、1つのエ
レメント長がインクリメント値と等しいことを示してい
る。
こ\で、アレイオペランドエレメント長は逐次実行され
るアレイエレメントの一つのエレメントの長さを示し、
アレイオペランドエレメントインクリメント値は当該エ
レメントが置かれている場所から次のエレメントが置か
れている場所までのアドレス増加分を示す。第1図に示
すように、エレメント長とインクリメント値が等しいと
、各エレメントは連続して置かれていることになり、例
えばエレメント0とエレメント1の間、エレメント1と
エレメント2の間等に不用領域は存在しない。この場合
の勇ペランドエレメント先行フエツチはアドレスが連続
しているのでプロツク転送機能により容易に実現できる
。第2図は主記憶装置上に置かれているアレイオペラン
ドエレメントが遂次実行の順に非連続に置かれている場
合であり、エレメント長よりインクリメント値が大きい
ことを示している。第2図から明らかなように、エレメ
Z卜長よりインクリメント値が大きいと、各エレメント
は主記憶装置上で非連続となり、例えばエレメント0と
エレメント1の間、エレメント1とエレメント2の間等
に不用領域が存在する。本発明は、このアレイオペラン
ドエレメントが主記憶装置上に非連続に配置されている
場合のアレイ演算の高速処理を対象とするものである。
第3図に本発明の一実施例のプロツク図を示す。
図において、オペランドアドレスレジスタ1、2はそれ
ぞれ第1オペランドエレメント、第2オペランドエレメ
ントのアドレスを保持しておくレジスタであり、インク
リメZトレジスタ3、4はそれぞれ第1及び第2オペラ
ンドのインクリメント値を保持するレジスタである。こ
れはアレイ演算で扱うオペランド数を2とした例である
が、オペランド数は任意の数に設定でき、実際はそれに
対応した数のオペランドアドレスレジスタとインクリメ
ントレジスタが用意される。命令の実行の昌頭で第1オ
ペランドアドレスレジスタ1、第2オペランドアドレス
レジスタ2、第1オペランドインクリメントレジスタ3
、第2オペランドインクリメントレジスタ4を初期設定
し、以後のアレィオペランドエレメントの先行フエツチ
アドレス生成に使用する。すなわち、アレイ演算の実行
に先立ち、第1オペランドインクリメントレジスタ3及
び第2オペランドインクリメントレジスタ4の内容をア
ドレス連続チエツク装置5に送り、アレイエレメントの
連続、非連続を第1オペランド、第2オペランド毎に調
べる。このアレイエレメントの連続、非連続の検出は、
第1図及び第2図に示したように、各オペランドのイン
クリメント値が各対応するオペランドエレメント長に等
しいか否かを調べることで行なう。アドレス連続チエツ
ク装置5は連続、非連続の結果を制御装置14に送出す
る。制御装置14は、連続の場合は図示しないプロツク
転送機能に先行フエツチ制御を渡すが、その制御は周知
であり、又、本発明の要旨とする所でないので、説明は
省略する。非連続の場合、制御装置14からの指令によ
り、第1オペランドエレメントのフエツチであれば、第
1オペランドアドレスレジスタ1の第1オベランドエレ
メントアドレスと第1オベランドインクリメントレジス
タ3の第1オペランドインクリメント値及び第1オペラ
ンドフエツチポインタ6の内容が第1オペランドアドレ
ス生成器7に送られる。
第1オペランドフエツチポインタ6の初期値は第1オペ
ランドアドレスレジスタ1で示されるアドレスに存在す
るアレイエレメントから起算して第n番目のアレイエレ
メントから演算が開始されるのであれば、nに設定され
る。第1オペランドアドレス生成器7では送られて来た
第1オペランドインクリメント値と第1オペランドフエ
ツチポインタ値との積をとり、その積と第1オペランド
アドレスとの和を第1オペランドエレメントアドレスと
して生成する。第1オペランドエレメントアドレスが生
成できれば、そのアドレスを用いて主記憶装置16に対
しフエツチ要求を出す。フエツチ要求を受けた主記憶装
置16は、該当アドレスから目的とするアレイエレメン
トを取り出して第1オペランドスタツカ11に送出し、
該第1オペランドスタツカ11はそのアレイオペランド
を演算装置15が使用する時点迄保持しておく。以上で
第1オペランドの1つのアレイエレメントフエツチの動
作が終了することになるが、制御装置14は引続き第1
オペランドフエツチボインタ6の内容を更新させ、更新
されたポインタを用いて第1オペランドアドレス生成器
7はアドレスを生成しフエツチ要求を主記憶装置16に
発する。この動作を繰り返し、第1オペランドエレメン
トのフエツチは演算装置15が使用要求を出す以前に自
動的に行なわれ、非連続アドレスの複数の第1オペラン
ドエレメントが第1オペランドスタツカ11に蓄えられ
る。第2オペランドエレメントの先行フエツチも第1オ
ペランドエレメントのフエツチと同様に行われ、且つ第
1オペランドエレメントのフエツチ動作と並行して行な
われる。
第2オペランドの先行フエツチには、第1オペランドフ
エツチで使用したのと同じ機能を持つ第2オペランドア
ドレスレジスタ2、第2オペランドインクリメントレジ
スタ4、第2オペランドフエツチポインタ8、第2オペ
ランドアドレス生成器9が用いられ、フエツチされた第
2オペランドアレイエレメントは第2オペランドスタツ
カ13に順次蓄えられる。演算装置15にて演算の為、
アレイエレメントを必要とする場合は、演算装置15よ
り制御装置14に要求を出す。この時、第1オペランド
エレメントの要求であれば、第1オペランドポインタ1
0で示される第1オペランドスタツカ11内の該当位置
から、蓄えられているアレイエレメントを演算装置15
に送り出す。該当アレイエレメントを送り出すと、第1
オペランドポインタ10の値は次に使用されるべき第1
オペランドエレメントが蓄えられている第1オペランド
スタツカ11内の該当位置を指す様更新される。演算装
置15にて第2オペランドエレメントを必要とする場合
も、第1オペランドアレィエレメントを必要として送ら
れる動作と同じである。,,,第a・オペランドア/レ
イエレメントを必要とする場合Z第2オペランドポイン
タ12及び第2オペランドスタツカ13が使用され、第
2オペランドスタツカ13から該当アレイオペランドエ
レメントが演算装置15に送られる。
第3図において、制御装置14により、第1及び第2オ
ペランドエレメントの先行フエツチと演算装置15に対
するオペランドエレメントの送出は独立且つ並列に行な
われ、又、演算結果の主記憶装置16に対する格納も、
これら2つの動作と独立に行なわれる。
以上説明したように、本発明によれば、アレイオペラン
ドエレメントが主記憶上に非連続に配置されている場合
に於いても、その非連続性からもたらされる性能低下を
最小限に抑えることが可能となり、連続、非連続エレメ
ント配置のアレイ演算処理に対する性能差を縮めること
が可能となる。
又、演算装置に於けるアレイエレメント持ち時間による
遊びを最小限に抑えることができ、演算装置の使用効率
をより向上させることが可能となる。
【図面の簡単な説明】
第1図は主記憶装置上にアレイオペランドエレメントが
連続配置されている場合を示し、第2図は同様に非連続
配置されている場合を示す。 第3図は本発明の実施例のプロツク図を示したものであ
り、オペランドが2組のものを図示したものである。1
,2・・・オペランドアドレスレジスタ、3,4・・・
オペランドインクリメントレジスタ、5・・・アドレス
連続チエツク装置、6,8・・・オペランドフエツチポ
インタ、7,9・・・オペランドアドレス生成器、10
,12・・・オペランドポィンタ、11,13・・・オ
ペランドスタツカ、14・・・制御装置、15・・・演
算装置、16・・・主記憶装置。

Claims (1)

    【特許請求の範囲】
  1. 1 主記憶装置上に格納されている複数のアレイオペラ
    ンドのそれぞれのアレイエレメントオペランドアドレス
    を保持しておくアドレスレジスタと、遂次実行されるべ
    くアレイエレメント間のアドレスの差を示すインクリメ
    ント値を保持するインクリメントレジスタと、前記イン
    クリメント値を入力とし、各々のアレイオペランドエレ
    メントが主記憶装置アドレスに対して連続に格納されて
    いるか否かを検出するアドレス連続チェック手段とを具
    備し、もし連続していない場合には、前記インクリメン
    ト値とアレイオペランドアドレスとから先行するアレイ
    オペランドエレメントアドレスを作成し、演算装置が該
    当オペランドを必要とする以前に主記憶装置から該オペ
    ランドを次々に先行フェッチして所望オペランドスタツ
    カに蓄えておき、前記演算装置がオペランドを必要とし
    た場合にその演算装置に対し該当オペランドスタツカか
    ら該当オペランドを供給することを特徴とするアレイ処
    理装置。
JP51137444A 1976-11-15 1976-11-15 アレイ処理装置 Expired JPS5913058B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP51137444A JPS5913058B2 (ja) 1976-11-15 1976-11-15 アレイ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP51137444A JPS5913058B2 (ja) 1976-11-15 1976-11-15 アレイ処理装置

Publications (2)

Publication Number Publication Date
JPS5361933A JPS5361933A (en) 1978-06-02
JPS5913058B2 true JPS5913058B2 (ja) 1984-03-27

Family

ID=15198755

Family Applications (1)

Application Number Title Priority Date Filing Date
JP51137444A Expired JPS5913058B2 (ja) 1976-11-15 1976-11-15 アレイ処理装置

Country Status (1)

Country Link
JP (1) JPS5913058B2 (ja)

Also Published As

Publication number Publication date
JPS5361933A (en) 1978-06-02

Similar Documents

Publication Publication Date Title
KR100956970B1 (ko) 프로세서에서의 마스킹된 저장 동작들을 위한 시스템 및방법
JPH0581935B2 (ja)
GB1445746A (en) Data processing system
US3701977A (en) General purpose digital computer
KR102458467B1 (ko) 벡터 생성 명령
CN108319559B (zh) 用于控制矢量内存存取的数据处理装置及方法
US7100029B2 (en) Performing repeat string operations
US5287483A (en) Prefetched operand storing system for an information processor
EP0797803B1 (en) Chunk chaining for a vector processor
JPS5913058B2 (ja) アレイ処理装置
US5893928A (en) Data movement apparatus and method
US8001358B2 (en) Microprocessor and method of processing data including peak value candidate selecting part and peak value calculating part
EP4513827A1 (en) Memory device and operating method thereof
KR100246465B1 (ko) 마이크로프로세서 스택 명령어의 수행사이클을 줄이기 위한 장치 및 그 방법
GB1202453A (en) Improvements in and relating to data processing systems
JP2693930B2 (ja) ベクトル処理装置
JP3525790B2 (ja) Dmaデータ転送方法
US6243822B1 (en) Method and system for asynchronous array loading
JPS61194566A (ja) ベクトルデ−タ参照制御方式
JP2926951B2 (ja) 退避/復帰レジスタアドレス生成回路
JPS6337416B2 (ja)
JPH02190968A (ja) ベクトル処理装置
JPH02178838A (ja) データ処理装置
JPH07105098A (ja) 命令キャッシュのリプレース装置
JPH01276232A (ja) データ処理装置