JPS62143177A - ベクトル処理装置 - Google Patents

ベクトル処理装置

Info

Publication number
JPS62143177A
JPS62143177A JP28409085A JP28409085A JPS62143177A JP S62143177 A JPS62143177 A JP S62143177A JP 28409085 A JP28409085 A JP 28409085A JP 28409085 A JP28409085 A JP 28409085A JP S62143177 A JPS62143177 A JP S62143177A
Authority
JP
Japan
Prior art keywords
vector
instruction
processing
register
scalar
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
Application number
JP28409085A
Other languages
English (en)
Inventor
Tomoo Aoyama
青山 智夫
Hiroshi Murayama
浩 村山
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
Hitachi Computer Engineering Co Ltd
Original Assignee
Hitachi Ltd
Hitachi Computer Engineering Co 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, Hitachi Computer Engineering Co Ltd filed Critical Hitachi Ltd
Priority to JP28409085A priority Critical patent/JPS62143177A/ja
Publication of JPS62143177A publication Critical patent/JPS62143177A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔発明の利用分野〕 本発明はベクトル処理袋(ξに係り、特にベクトル処理
によって不正な結果を得た場合の原因の追求に好適なベ
クトル処理装置に関する。
(発明の背景〕 ベクトル計算を指向する処理装置、特にベクトル処理装
置においては、汎用計算機におけるデパック手段より一
層強力なデパック手段を用意する必要がある。たとえば
、D○ブロック構造の処理Aとそうでない処理Bのプロ
グラムをベクトル処理装置で実行すると、処理AはDo
ブロック構造であるので、ベクトル演算器又はベクトル
データ転送回路で実行される。以下、処理装置内の演算
器又はデータ転送回路を総称してリソースという。
ベクトル計算は一般に非常に多量の演算を含むので、高
速のベクトルリソースをもってしても相当量の時間を消
費する。このため、処理A(ベクトル処理)の完了を待
たず処理B(スカラ処理)を開始するように制御するの
が一般的である。だゾし、プログラム論理が処理AとB
が独立に実行できる場合に限り、並列処理が行われる。
プログラム論理が正しく、プログラム作成者の意図が反
映されているものであるならば、上記の如き4ρ列的な
処理を行っても正当な結果を得ることかできる。しかし
、プログラム作成者の意図とは逆に、プログラム論理が
誤りを含むものであるとき、上記の如き並列的な処理を
行っていると、その誤りの検出は困難になる。たとえば
処理Aの中て読出す配列Cと処理Bの中で書込みを行う
領域りは、正しいプログラムならば主記憶上の重複はな
いが、たまたまDo制御変数値を誤ってしまったため、
配列Cのポインタが大きくなって領域りの一部をさして
しまったような場合である。このような場合、処理B内
のストア処理がベクトル処理となる処理A内の配列Cの
読出しと時間的に重複すると、ベクトル処理においては
主記憶参照は処理の状況によって時間が大きく変化する
ため。
ストア処理とベクトル読出しの順序が変り、結果の再現
性がなくなる。こ\で処理の状況とは、主記憶ボートの
ビジー状況等をいう。このため、ベクトル処理の配列C
の読出しとスカラ処理のストアの時間的順序性がプログ
ラムで規定されている通りではなくなり、ある場合は正
しい結果が得られ、ある時は不正な結果となる。
またベクトル命令を直前のスカラ処理で変更しているよ
うな場合、ベクトル処理装置は命令の先読みを行ってい
るので、変更前のベクトル命令を命令バッファ中にとり
込んで処理している可能性があり、この命令先読みが主
記憶とバッファストレージ間のデータ転送に関係してい
ると、処理装置の他のデータ転送回路との競合によって
、命令書替えが有効になったり、無効になったりする。
このように処理の並列性を実現するということは、プロ
グラムに規定されている処理の順序性を破ることになっ
ている。
一方、プログラムのデパックを行う作業を解析してみる
と、デパック作業が行えるということは、プログラムに
記述されている論理が順序だって行われ、1つの文の結
果が確定した後に、次の文の処理を開始するという前提
条件を必要としている。
この前提条件は並列処理もしくはベクトル処理と排反の
条件である。従って、プログラムと処理装置のハードウ
ェアの間に、処理装置の論理動作をシリアライズするか
又は一部の論理動作の順序性を保障する指示を行うため
に何らかのインターフェイスが必要である。
従来、このような並列処理におけるプログラムデバッグ
の困難さを解決するため、データフローマシンにおいて
メンテナンスアーキテクチャを付加させた例がある(平
木、西口、関口、島田゛′科学技術11F算用データ駆
」すJ計算機S IGMA−1のメンテナンスアーキテ
クチャ″、情報処理学会第31回講演論文集6D−3)
。データフローマシンは並列処理を行う計算機の一種で
あるが、1命令の演算処理そのものは各々独立して実行
される。従って、ある指定された時点で計算機の処理を
中断させ、計算機内部のレジスタ、メモリ等の情報を、
メンテナンスアーキテクチャを使って読出すことによっ
て指定された時点の計算の状況を知ることができる。
これに対しベクトル計算は、DOループ処理をスカラ処
理とは計算方法の異るバク1ヘル命令の集合に展開して
実行するので、ベクトル計算の任意の時点での停止とい
うことか極めて困難である。
仮にもしそれが行えたとしても、ベクトル演算器の中の
パイプライン処理途中の変形されたデータがプログラム
デバッグにどれだけの情報を与えうるかという点も問題
である。従って、ベクトル処理の適切な中断点をベクト
ル命令間に指定し、この中断点にベクトル処理が致った
時にベクトル処理を停止させる方法が妥当と考えられる
。こ\で、ベクトル計算を停止させるということは、ベ
クトル処理装置にとってどういう意味を持つのかを考察
する。
バク1〜ル処理はベクトル命令の解読から始まり、全ベ
クトル要素の処理をもって終了するが、一般にベクトル
処理の開始と終了の間の時間は、1ベクトル命令で複数
のデータを処理するので、スカラ命令の実行に比べl−
〜2オーダ長い。このためスカラ処理と同じような考え
方でベクトル命令の実行開始を中断させても、すでに起
動されているベクトル命令は数十マシンサイクル以上停
止せずに動作する。しかし、プログラムのソースコード
を対象にデパックを行うということは、計算機内部の動
作が完結し処理結果が主記憶等の記憶手段に書込まれる
ことを前提条件としているので、バク1−ルプロセツサ
内のリソースの停止を待つ必要がある。従って、ベクト
ル処理のデパックを行うためには、ベクトル命令の起動
を目的とするプログラム位置で中断させ、この中断点よ
り以前に実行されているベクトル命令の完了を待って1
種々のデパック処理を開始する必要がある。
デパックを行うということは、処理装置内の記憶手段上
のビットパターンをキャラクタに変換して外部の装置N
に出力することである。このデータ変換方法は汎用機等
で用いられている方法を用いることが出来る。従って、
ベクトルプロセッサ内のレジスタ類を主記憶に書出すこ
とが出来れば、従来の手法のソフトウェア資産を用いる
ことができる。考察を容易化するため、ベクトルプロセ
ッサ内の記憶手段をベクトルレジスタに限定する。
ベクトルレジスタの内容を主記憶に書出すためには、ベ
クトルのストア命令を発行する必要がある。
しかし、このベクトルストア命令を発行する方法が問題
である。これをコンパイラのデパックモード指定によっ
て、ベクトル命令列の中に前もってベクトルストア命令
を埋めこんでおく方式で解決することはできない。この
ストア命令埋め込み法では、ベクトル処理そのものは止
らずに行われ、一連の計算が完了した後に、そのベクト
ル計算のトレースが得られるだけである。従って、プロ
グラムデバッグの重要な処理、即ち 1、プログラム処理を停止させ、その時点で処理装置内
の記憶手段に任意のデータパターンをセットし、処理装
置を再起動する、 2、上記の停止時点で、処理装置内の記憶手段の任意の
位置のデータを出力し、処理装置を再起動する、 という処理を行うことができない。その上、コンパイラ
のデパックモード指定により、ベクトル命令列が余分な
ストア命令挿入により変化し、ベクトルプロセッサの処
理状況特に主記憶に関するデータ処理状況が、デパック
モード以外の場合と異る点も問題である。
以上の議論はベクトルレジスタについてであったが、ベ
クトルプロセッサ内の記憶手段がベクトルマスクレジス
タやその他のレジスタに替っても全く同様である。この
ような事情により、ベクトル処理装置のデバッグ手法は
未だ確立されていないのが現状である。
〔発明の目的〕
本発明の目的は、プログラムデバッグが容易なベクトル
処理装置を提供することにある。
〔発明の概要〕
本発明は、ベクトル処理装置においてプログラムデバッ
グを行うために、ベクトルプロセッサの処理状況をテス
トする命令(TVP命令)と、ベクトル命令の解読処理
の中断を指示する命令(QVD命令)と、該命令による
解読処理中断の解除を指示する命令(RDR命令)と、
ベクトル処理とスカラ処理の並列実行の抑止を指示する
命令(SBON命令)と、該命令による抑止の解除を指
示する命令(SBOFF命令)とを命令セシl−して設
ける。一方、スカラプロセッサとベクトルプロセッサ間
で制御をやりとりするために用いられる制御レジスタ中
に、ベクトルプロセッサの命令解読中断を示すビット(
Dピッ1−)と、スカラとベクトル処理のシリアライス
を示すビット(Sビット)を設ける。そして、前記制御
レジスタ中のDビットをQVD命令、RDR命令でセッ
ト、リセットし、Sビットを5BON命令、S BOF
F命令でセット、リセットする。これらにより、ベクト
ル処理装置のプログラムデバッグが支障なく達成できる
〔発明の実施例〕
初めに本発明の基本概念について説明する。ベクトル処
理装置のプログラムデバッグを実現するためには、ハー
ドウェア、アーキテクチャ、コンパイラ、オペレーショ
ンシステム(O8)の4処理系の連係動作が必要である
ハードウェアでは、スカシプロセッサとベクトルプロセ
ッサ間で制御のやりとりするための2種類の記憶手段(
以下、この記憶手段を制御レジスタのり、Sビットとよ
ぶ)を設ける。Dビットはベクトルプロセッサの命令解
読中断を示し、Sピッ!−はスカシ、ベクトル処理のシ
リアルライズを指示する。スカシプロセッサはDビット
がオンになると、制御をO8の常駐している空間に移す
これにより、ユーザプログラムのスカシ処理は中断され
、O8の処理が開始される。この時点ではベクトルプロ
セッサは未だユーザプログラムの処理を実行している。
従って、スカシ処理はユーザ空間からO8空間への処理
へスイッチングされているが、ベクトル処理については
ユーザ空間の処理が続行している。この2面性が従来の
タスクスイッチの概念と異る点である。O8は主記憶の
特定番地に格納されているアドレスへ制御を渡す処理を
行う。
二\でユーザ空間の構成について議論する。一般にユー
ザ空間は単一の構成のように思われていて、大部分のプ
ログラムがこの単一構成の空間の中で論理を構成してい
る。しかし、ユーザプログラムの中である予測し得ない
事象、たとえばアドレス例外などが発生した時、ユーザ
空間の中で異常終了するのではなく、例外が発生した時
点でO8に制御を渡し、○Sが第2のユーザ空間に制御
を移行し、この新しいユーザ空間内で処理を続行できる
ようにO8に対し、ユーザプログラム実行環境を設定し
ておくことができるような処理系がある。この処理系は
ベクトル処理装置とは限らない。このような処理系では
単一構成のユーザ空間ではなく、2種類の異る構成のユ
ーザ空間の中でユーザプログラムが実行されている。以
下、この2種類のユーザ空間を第1種ユーザ空間、第2
種ユーザ空間という。第2種ユーザ空間は第1種ユーザ
空間で予測し得ない事象が発生しなければ制御が移行し
ない空間で、かつ、上記事象によってO8が介入しなけ
ればプログラム制御を移せない空間である。本発明にお
けるO8の動作は上記の2種類のユーザ空間間の制御の
連絡に類似しているが次の点が異る。
従来の2種類のユーザ空間間のスイッチングは、常に処
理装置の動作が1点で行われており、それが完了してか
ら行われている。こ\で動作の1点ということを次のよ
うに定義することにする。時間をたて軸に、主記憶装置
itのアドレスを横軸にとった2次元の空間(これはユ
ーザ、O8空間とは異る分類に属する空間である。以下
、この空間のことをπ空間という)で処理装置の動作を
示すと、汎用計算機即ちスカシ計算機は、1本の線によ
って示せる。従って、ある時間に対して、「動作の1点
」という言葉が意味を持つことになる。
2種類のユーザ空間のスイッチング動作では、2様のユ
ーザ空間は同一時間には処理装置は両方の空間をアクセ
スしていない。しかし、本発明のベクトル処理装置では
、π空間において、複数の処理軌跡を描く。故に「動作
の1点」ではなく、ある時間に対し「動作の複数点」と
いうことになり、2様のユーザ空間は同一時間にスカラ
、ベクトル両プロセッサからアクセスが行われうる。従
って、同一時刻で2様のユーザ空間が共に処理対象とな
ることがありうる。
従ってアーキテクチャとしては次のような命令セットを
用意する。
スカシ処理命令として、 1、ベクトルプロセッサの処理の状況をテストする命令
(以下T est V ector P rocess
or命令という。略称はTVP)、 2、Dビットをリセソ]へして、ベクトル命令M、読を
再開する命令(Rest D bit and Re5
tart命令という。略称はRDR)、 3、Sビットをオン、オフする命令(S bit on
or off、、略称は5BON、5BOFF)、4、
第2種のユーザ空間から第1種のユーザ空間へもどる命
令(この命令は5upervisor Ca1l(SV
C)命令で代用することができる)、ベクトル処理命令
として、 5、ベクトル命令解読を中断し、Dビットをオンとする
命令(Q uit V ector D ecode命
令、略して0VD) 次にコンパイラの処理について述べる。コンパイラは第
1,2種ユーザ空間の境界を決める必要がある。コンパ
イラは、ユーザプログラムと第2種空間にロードされる
デパックのためのプログラムの両方をコンパイラするの
で、第1.第2種空間の大きさを予測することが出来、
従って両方の空間の境界を決定しうる。
第2種ユーザ空間にロードされるデパックプログラムは
、ベクトル処理が中断された時、任意の処理装置内のレ
ジスタの内容を主記憶に出力し、任意のレジスタに値を
設定できる機能を持つ必要がある。このためにデパック
プログラムの先頭でベクトルプロセッサの処理の完了を
待つ処理が必要である(TVP命令を用いる)。
デパックを行うユーザにとって、知りたい情報は処理装
置内のレジスタ値や主記憶上の絶対番地上のデータでは
なく、プログラムで用いている変数又は配列の特定時刻
における値である。故に第1種ユーザ空間にある変数、
配列と処理装置内のレジスタ番号と主記憶上のロケーシ
ョンアドレスの対応を第2種のユーザ空間に引渡す必要
がある。
特にベクトルプロセッサはベクトル計算の中間結果をベ
クトルレジスタと呼ばれるところの、ユーザプログラム
が管理するバッファレジスタに格納するため、ユーザプ
ログラムからこのベクトルレジスタ番号を管理しなくて
済むように、コンパイラが配列又は変数とこのベクトル
レジスタ番号との対応を行っている。従って第1種、第
2種ユーザ空間間でこの配列変数とベクトルレジスタ番
号の対応表をうけわたし、この対応表を用いてユーザの
指摘した配列又は変数のベクトルレジスタの番号を見出
し、これらの内容を指定した主記憶上のアドレスに書出
す必要がある。この対応表の授受については第1,2種
のユーザ空間とも、多重仮想空間(MVS)という概念
から見れば、1個のユーザ空間なので、主記憶の特定番
地を当該対応表に割当てるか、又はサブルーチンコール
のように、ある特定の汎用レジスタにこの対応表のアド
レスを格納して、第1,2種ユーザ空間をスイッチング
させればよい。たりし、後者の方式はベクトルプロセッ
サが汎用レジスタに値を直接書込まないようなアーキテ
クチャを持っている処理装置でないと実現は困雅である
。なぜならば、第1゜2種ユーザ空間をスカラプロセッ
サでスイッチングする際、ベクトルプロセッサは未だ命
令処理未完了であって、アーキテクチャがベクトル処理
中汎用レジスタの内容を変更できる型式であると、汎用
レジスタ内の値の保証ができなくなるからである。
第1,2種ユーザ空間間で変数、配列とベクトルレジス
タ又は主記憶アドレスの対応表のうけわたしか可能にな
ると、この対応表とベクトル命令のロード/ストア命令
を起動して(この時RDR命令を用いる)、ベクトルプ
ロセッサ内の任意のレジスタの値を読出し又は書込むこ
とができる。
なお、ロード/ストア命令の後にはQVD命令が再度必
要である。
このような方法によってベクトル処理を中断させ、ベク
トル処理装置の内部レジスタ、主記憶上のデータを読取
り、また、これらの記憶手段にデパックのための特定の
データを書込むことが可能になる。これは、ベクトル命
令列の中に埋め込まれたベクトル命令解読中断命令によ
って、スカラプロセッサの命令実行処理を中断させデパ
ックプログラムを起動することによる。従って、ベクト
ル命令列に対し何らかの人工的作為即ちQVD命令の挿
入が行われていることになる。しかし、この人工的作為
がベクトルプロセッサの処理に及ぼす影響はわずかであ
る。即ち、ベクトル命令の特徴はスカラ命令に比べて、
命令解読処理よりも命令実行時間が大きい点にある。従
って、ベクトルプロセッサ内では、ベクトル命令は解読
が完了して、その命令を実行するために必要なリソース
の空きを待っている状態になっている確率が高い。
このためベクトル命令列中に命令解読中断命令(QVD
命令)を挿入したとしても、その影響はベクトル処理装
置の命令解読回路部に及ぶだけで、リソースの動作状態
にまで及ばない。この点がデパックのためベクトル命令
列にロード/ストア命令を挿入する方法との相異である
。従って、ベクトル命令解読中断命令をベクトル命令中
に挿入することは、プログラムに対する変形ではあるが
、その変形の度合は局所的であって、デパックのために
プログラムに大+1]な変更を加えたことにはならない
以上のようなデパック手法は、スカシ処理装置としては
十分ではあるが、ベクトル処理装置としては未だ不十分
である。ベクトル処理装置はベクトル処理とそれ以外の
スカシ処理の並列動作を行うことができる。このため、
この並列動作不適なプログラムがユーザの錯誤によりコ
ーディングされ、コンパイラによってもこの並列動作不
適が検出され得なかった場合、再現性の乏しい不正動作
が起りうる。このような場合、デパック操作としては、
プログラムのある特定の処理をある処理の後で実行する
ような指定を行う必要がある。このデパック処理操作を
特別な文を導入して実現することは可能である。たとえ
ば、スーパーバイザマクロにおいてはタスクのボスト/
ウェイト命令等がある。しかし、この方式では、複数の
処理間の順序関係を明示的に指示する必要が生じた場合
に、プログラム記述上非常に複雑になり困難になる。
また、プログラム文脈の解読も困難になる。これは従来
のプログラム文語に「いつ処理を行うか」という指定が
ないことに起因する。従って、この方式はベクトル処理
装置の、)p列動作を行うことの適不適を判断するため
には採用できない。
本発明では、ベクトル処理装置の並列動作の適不適を次
のようにして実現する。
1、ユーザはプログラムの調べたい範囲を指摘する。
2、コンパイラは上記の範囲で、処理装置の制御レジス
タのSビットがオンになるように、必要なスカシ命令を
オブジェクトコード中に挿入する(SBON、5BOF
F命令を用いる)。
3、これによって被検証プログラムのある特定の範囲で
ベクトル処理とそれ以外のスカシ処理のシリアライズが
行われるように、スカシプロセッサの命令解読回路が制
御する。
4、上記のようなシリアルライズ動作でプログラムを実
行した場合と、並列処理動作を行った場合との結果を比
較し、不正な結果がベクトル処理装置の並列処理機能を
誤って使用した\めに発生したのか否かを判定する。
この様にすることにより、プログラムが暴走して5BO
FF命令を書替えると、処理装置はユーザプログラムが
終了するまでシリアライズ動作となる。しかし、このた
めにプログラムデバノクが重大な支障を受けるというも
のではない。
以下1本発明の一実施例を図面により説明するが、ベク
トル処理装置の命令解読処理はスカシとベクトルの2種
類の命令系を2つの命令解J部で解読し、命令実行を制
御する方式を採用するものとする。この方式はスカシと
ベクトル命令の解読部が分離されているので、2種類の
命令列が独立に実行でき、並列処理を容易に実現できる
。なお。
ベクトル処理装置の命令解読処理には他に、スカシとベ
クトル命令の混在命令列を単一の命令解読部で解読し、
命令実行を制御する方式があり、これはスカシ命令とベ
クトル命令が混在しているため、スカシ処理とベクトル
処理の順序性保証をはじめとし、2帥頂の命令間の制御
が容易に実現しろるt、′iRがある。無論、本発明は
この方式を採用してもよい。
第1図は本発月のベクトル処理装置の一実施例のブロッ
ク図である。第1図において、1は主記憶装置、8は主
記憶制御回路である。2はデータ転送回路(以下、リク
エスタという)であり、本実施例では5個存在するので
添字a、b、  ・・、eをつけて区別する。3は命令
解読回路で、これは2個存在するので添字a、bをつけ
て区別する。
4はスカラ演算器(汎用、浮動小数点レジスタを含む)
、5は命令起動回路、6はベクトルレジスタ、7はベク
トル演算器である。ベクトル処理装置の各資源は2つの
命令解読回路3a、3bによってそれぞれ制御されるの
で、第1図に点線で囲ったように、スカラプロセッサ部
SPと、ベクトルプロセッサ部vPに分類することがで
きる。
ベクトル処理装置に起動がかけられると、リクエスタ2
aは命令読出要求をパス10を通して主記憶制御回路8
へ送出する。主記憶制御回路8は命令読出要求の主記憶
参照アドレスから主記憶装置1内のアクセスすべきバン
クを決定し、当該バンクへ読出要求を発行する。主記憶
装置の同一バンクに対し、複数の参照要求があると、主
記憶制御回路8は、参照要求間の優先順位を決定する。
主記憶装置1のバンクから読出された命令は主記憶制御
回路8を通り、パス11.リクエスタ2a。
パス12を介して命令解読回路3aに送られる。
命令解読回路3aはスカラ命令を解読し、命令実行に必
要な指示をスカラ演算器4、リクエスタ2bにパス13
.14を介して送る。スカラ命令列中にベクトル処理開
始命令(以下、この命令をE xecute V ec
tor P rocessing命令といい、略してE
XVPと書く)があると、命令解読回路3aはパス15
を介してベクトル命令読出しをリクエスタ2cに対して
指示する。同時にパス16によってベクトル命令解読回
路3bを起動する。リクエスタ2cはスカラ命令読出し
と同様にしてパス17を使用して主記憶制御回路8に読
出要求を発行する。
主記憶装置1から読出されたベクトル命令は主記憶制御
回路8、パス18、リクエスタ2c、パス19を通って
命令解読回路3bに送られる。命令解読回路3bは、解
読したベクトル命令を命令起動回路5に送る。命令起動
回路5はパス20゜21を介して、ベクトルプロセッサ
部VPのリソースの状態を常時管理している。パス20
.21は東線である。当該ベクトル命令の実行に必要な
リソースが空いていない時、命令起動回路5はパス22
を介して当該ベクトル命令の読出中止をリクエスタ2c
に通知する。リソースが空いている場合、命令起動回路
5はパス23(東線)を介して命令実行に必要なリソー
スに起動処理を行う。
起動されたリソースかりクエスタ2d又は2eならば、
当該リクエスタはパス24又は25を用いて主記憶制御
回路8にリクエストアドレスを送り。
ロード処理の場合は、パス26又は27を介してデータ
を受信し、これらのデータをパス28又は29を介して
ベクトルレジスタ6に書込む。ストア処理の場合は、パ
ス28又は29を介してベクトルレジスタ6上のデータ
を読出しく実際の動作は1図示しないベクトルレジスタ
制御回路がベクトルレジスタ側からデータをパス28.
29を介してレクエスタ2d、2eに送るように制御さ
れる)、パス26又は27を介して主記憶制御回路8に
送出する。起動されたリソースがベクトル演算器7なら
ば、ベクトルレジスタ6から被演算バク1−ルテータが
読出され、演算が行われてパス30を通って演算結果が
バク1−ルレジスタ6に書込まれる。
なお、ベクトルレジスタ6への書込み、読出しに関する
制御は、本発明には直接関係ないので、第1図ではそれ
に必要な構成は省略されている。
次に、第2図を用いて本発明で必要とする命令の動作を
説明する。
第2図は第1図の命令解読回路3a、3b及びその周辺
回路の詳細を示したもので、第1図と同一部分には同じ
番号が付されている。スカラプロセッサ部SPとベクト
ルプロセッサ部VPの境界は点線57で示す。
第2図においては、カウンタ50は第1図のりクエスタ
2aのアドレス生成部に属している。このカウンタ50
はレジスタ51に格納されている命令語長に従って毎サ
イクルカウントアツプされ、レジスタ91、パス10を
介して命令続出アドレスを主記憶制御回路に送出する。
主記憶制御回路8は主記憶装置の指定されたアドレスか
ら命令を読出し、パス11上に送出する。パス1」上の
命令はレジスタ65を経由して比較回路52によって、
並列的にTVP、5BON、5BOFF、EXVP、R
DR命令か否かが判定される。レジスタ53には、これ
らの5命令を調べるためのデータが格納されている。レ
ジスタ65の命令がTVP、5BON、5BOFF、E
XVP、RDR(7)いずれかである時、パス80〜8
4上にそれぞれ“1″が送出される。
レジスタ54は制御レジスタで、フリップフロップ55
.56は該制御レジスタのS、Dビットに対応している
5BON命令が比較回路52によって検出されると、フ
リップフロップ55がLL I IIにセットされる。
ベクトルプロセッサ内のリソースを管理している命令起
動回路5は、パス31上にベクトルプロセッサ部がビジ
ーか否かの情報を送出している(こぎではビジーを11
1 IIとする)。ベクトルプロセッサ部のビジー情報
とフリップフロップ55の出力はAND回路58で論理
積がとられ、パス85上に送出される。このパス85上
の信号はカウンタ50の動作を停止させる。同時にレジ
スタ65の書込イネーブルを落す、従って、ベクトルプ
ロセッサ部がビジーで制御レジスタ54のSビットがL
L I IIの時、スカシ命令読出は中断され、スカシ
、ベクトル両プロセッサ部の並列処理はシリアライズさ
れる。
比較回路52で5BOFF命令が検出されると、フリッ
プフロップ55はパス82上の信号によってリセットさ
れる。
比較回路52でEXVP命令が検出されると、パス83
上の信号はカウンタ59を起動する。該カウンタ59は
第1図のベクトル命令を読出すりクエスタ2cのアドレ
ス生成部の一部を構成している。カウンタ59は起動を
受けると、レジスタ6o上に格納されているベクトル命
令語長に従って毎サイクルカウントアツプされ、アドレ
スをパス17上に送出する。主記憶制御回路8はパス1
7上に送出されたアドレスに従って主記憶装置からベク
トル命令を読出し、パス18に送出する6読出されたベ
クトル命令はレジスタ63に格納される。このベクトル
命令は比較回路61によってQVD命令であるか否かを
調べられる。レジスタ62にはQVD命令検出のための
データが格納されている。比較回路61によってQVD
命令が検出されると、信号II 1 #がパス86上に
送出される。この信号によって制御レジスタ54のフリ
ップフロップ56がII I IIにセットされる。該
フリップフロップ56のセットによりパス87を通って
カウンタ59の動作が停止する。同時にレジスタ63の
書込イネーブルを落す。これによってベクトル命令解読
処理が中断される。
QVD命令以外のベクトル命令はパス88を通ってデコ
ーダ64によって解読され、デコード情報が命令起動回
路5に送出される。
比較回路52でRDR命令が検出されると、信号“1”
がパス84上に送出される。この信号によってフリップ
フロップ56がリセットされる。
これにより、パス87を介してレジスタ63の書込イネ
ーブルが書込可能となり、同時にカウンタ59の動作が
再開される。
比較回路52でTVP命令が検出されると、信号111
 ++−H,?バス80上に送出される。パス80上の
信号はパス31上の信号とAND回路66で論理積がと
られ、結果がレジスタ67にセットされる。レジスタ6
7は条件コードを示しており、TvP命令実行によって
、その時点でのベクトルプロセッサ部のビジー情報がT
VP以降の命令によって参照可能としている。
第3図は第1図の命令起動回路5の詳細図である。第3
図において、パス150を介してベクトル命令が送られ
て来るとレジスタ100に格納される。レジスタ100
にセットされた命令はその命令を実行するために必要な
リソースが何であるかを決定するリソース決定回路10
1に与えられ。
リソースの番号(複数)が決定される。リソース決定回
路101はオペコードをアドレスとしてリソース番号を
読出す記憶手段(たとえばROM)によって構成できる
。リソース決定回路101の出力はデコーダ104でデ
コートされる。以下での説明を簡明にするため、レジス
タ100上のベクトル命令を実行するのに2リソースが
割付られたとする。この割付情報はパス151,152
を介してセレクタ102,103に入力される。レジス
タ105はリソースの状態を保持している。
リソースの状態はビジー(” l ” )か否かで管理
する。複数のリソースの状態を示しているレジスタ10
5の各出力はセレクタ102,103で選択され、結果
がレジスタ106,107にセットされる。したがって
、レジスタ106,107の値は、レジスタ100のベ
クトル命令を実行するリソースのビジー状態を示してい
る。
レジスタ106,107の値はOR回路108で論理和
がとられ、結果がパス22上に送出される。パス22上
の信号がII I 11であると、レジスタ100のベ
クトル命令は実行できないため、この情報を用いて第1
図のベクトル命令リクエスタ2cの動作は抑止される。
OR回路108の論理和の反転信号はパス153上に送
出される。パス153上の信号が111 IIの場合、
レジスタ100のベクトル命令は実行できることを示し
ている。レジスタ106,107の出力は反転回路12
1,122を介し、レジスタ100のベクトル命令を実
行するためのリソースを選択するリソース選択回路10
9に入力される。リソース選択回路109は、予め定め
たプライオリティにしたがってリソースを選択する。リ
ソース選択回路109の出力は各リソースに対応してお
り、パス154上のある信号がII I IIとなるこ
とによって、対応するリソースが選択されたことが示さ
れる。パス154上の信号はパス153上の信号とAN
D回路110によって論理積がとられ、結果がパス15
5に送出され、レジスタ105のセット信号となる。レ
ジスタ105はパス21.21上のリソースベクトル命
令処理完了報告信号によってリセットされる。
レジスタ100に格納されているベクトル命令は、パス
153上の信号が1”のときレジスタ111に移行する
。レジスタ111のベクトル命令のオペコードはパス1
56を通ってオーダ生成回路112に入力される。オー
ダ生成回路112では、ベクトル命令実行に必要なオー
ダ情報を、オペコードをアドレスとしてROMの如き記
憶手段を引用することによって生成する。オーダ生成回
路112の出力はパス156を通り、スイッチング回路
113によってリソース対応に分別され、パス23を介
して命令を実行するリソースに送出される。同様にレジ
スタ111上のベクトル命令のオペランドはパス157
を通り、スイッチング回路114によってリソース対応
に分別され、パス23上に送出される。
レジスタ105の各リソースビジー情報はOR回路11
5で論理和がとられ、結果がパス31上ら送出される。
パス31上の信号はベクトルプロセッサ部のビジーを表
わす信号として用いられる。
第4図は第3図におけるリソース選択回路109の詳細
図で、説明の便宜上、4つのリソースが選択対象になっ
ている場合を示している。第4図において、4リソース
のどれかが使用可能という情報はパス200a〜200
dによって与えられる。第4図はパス200aのプライ
オリティが最も高く、以下、パス200b、200cの
順に低くなり、パス200dのプライオリティが最も低
いとした例であり、パス200a〜200dのいずれか
の信号が111”になると、それより上位の信号がいず
れもLL OIIの場合、該当信号が選択される。従っ
て、パス200a〜200d上の複数の信号が“1″で
あっても、パス154上の出力は、プライオリティの高
い1リソースに対応するパス上の信号のみが“1”とな
る。
〔発明の効果〕
本発明によれば、ベクトル処理装置で不正な結果を得た
場合、その原因がプログラムのどの部分で発生している
かの調査を、D○ループ内の任意の場所でベクトル処理
を中断させ、D○ループ内で参照している変数又は配列
の値が主記憶装置上に存在せずベクトル処理装置内のレ
ジスタ上に存在する場合であっても、そのデータを主記
憶装置へ出力して調べることができる。また、Doルー
プ内で参照している変数又は配列に、それが処理装置内
のレジスタ上にだけ存在する場合があっても、デパック
のための値を代入して、ベクトル処理を再試行できる。
さらに、ベクトル処理装置固有のベクトル処理とスカラ
処理の並列処理を抑止して、並列処理に起因する主記憶
参照の順序性に基づく不良とベクトル命令列書替に原因
がある不良を容易に通出できる。
【図面の簡単な説明】
第1図は本発明のベクトル処理装置の一実施例の概略ブ
ロック図、第2図は第1図における命令読出しと解読に
関係する部分の詳細図、第3図は第1図における命令起
動回路の詳細図、第4図は第3図におけるリソース選択
回路の詳細図である。 1・・主記憶装置、 8・・・主記憶制御回路、2a〜
2e・・・リクエスタ (データ転送回路)、3a、3
b・・・命令解読回路、 4・・スカラ演算器、 5・
・・命令起動回路、 6・・・ベクトルレジスタ、 7
・・ベクトル演算器。 第  4  図

Claims (1)

    【特許請求の範囲】
  1. プログラム及びデータを格納する主記憶装置と、前記主
    記憶装置からスカラ命令を読出してスカラ処理を実行す
    るスカラプロセッサと、前記スカラプロセッサから起動
    を受け、前記主記憶装置からベクトル命令を読出してベ
    クトル処理を実行するベクトルプロセッサとを具備して
    なるベクトル処理装置において、プログラムデバッグを
    行うために、ベクトルプロセッサの処理状況をテストす
    る第1の命令と、ベクトル命令の解読処理の中断を指示
    する第2の命令と、前記第2の命令による解読処理中断
    の解除を指示する第3の命令と、ベクトル処理とスカラ
    処理の並列実行の抑止を指示する第4の命令と、前記第
    4の命令による抑止の解除を指示する第5の命令とを命
    令セットとして持つと共に、両プロセッサ間での制御の
    受け渡しに用いる制御レジスタ中に、前記第2の命令で
    セットされ前記第3の命令でリセットされる第1のビッ
    トと、前記第4の命令でセットされて第5の命令でリセ
    ットされる第2のビットを設け、前記制御レジスタにお
    ける前記第1のビットのセット期間中はベクトル命令の
    解読処理を中断し、前記第2のビットのセット期間中は
    スカラ処理とベクトル処理をシリアルに実行することを
    特徴とするベクトル処理装置。
JP28409085A 1985-12-17 1985-12-17 ベクトル処理装置 Pending JPS62143177A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP28409085A JPS62143177A (ja) 1985-12-17 1985-12-17 ベクトル処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP28409085A JPS62143177A (ja) 1985-12-17 1985-12-17 ベクトル処理装置

Publications (1)

Publication Number Publication Date
JPS62143177A true JPS62143177A (ja) 1987-06-26

Family

ID=17674101

Family Applications (1)

Application Number Title Priority Date Filing Date
JP28409085A Pending JPS62143177A (ja) 1985-12-17 1985-12-17 ベクトル処理装置

Country Status (1)

Country Link
JP (1) JPS62143177A (ja)

Similar Documents

Publication Publication Date Title
EP0380858B1 (en) Method and apparatus for detecting and correcting errors in a pipelined computer system
US7020871B2 (en) Breakpoint method for parallel hardware threads in multithreaded processor
US6052774A (en) Apparatus and method for identifying exception routines indicated by instruction address issued with an instruction fetch command
US4074353A (en) Trap mechanism for a data processing system
US5187802A (en) Virtual machine system with vitual machine resetting store indicating that virtual machine processed interrupt without virtual machine control program intervention
US6944850B2 (en) Hop method for stepping parallel hardware threads
JP2539161B2 (ja) プログラム分析のためのフック命令実行方法及びデ―タ処理システム
KR102025078B1 (ko) 단일 스텝 실행을 이용한 코드 진단
JPH0430053B2 (ja)
US20100153786A1 (en) Processor, multiprocessor, and debugging method
JP2000353092A (ja) 情報処理装置及びそのレジスタファイル切替方法
US10747647B2 (en) Method, apparatus and system for diagnosing a processor executing a stream of instructions
CN111506395B (zh) 一种混合仿真的全数字虚拟运行环境的实现方法及装置
JPS62143177A (ja) ベクトル処理装置
JPH0744401A (ja) 論理集積回路およびそのデータ処理システム
JP2520158B2 (ja) ディジタルシグナルプロセッサのデバッグ方式
JPS63173130A (ja) 計算機の命令セツトを拡張するための装置
JPH06103110A (ja) ブレークポイント設定方式
JPH0219937A (ja) 電子計算機システム
JPH0150936B2 (ja)
JPH0279122A (ja) 浮動小数点演算機構
JPH01293447A (ja) アドレス一致割り込み制御方式
IE901523A1 (en) Method and apparatus for detecting and correcting errors in¹a pipelined computer system
JPS63289653A (ja) インサ−キツトエミユレ−タ
JPH01241636A (ja) データ処理システム