JPH0282344A - マルチプロセッサシステムにおけるプログラムのデバッギングの方法 - Google Patents
マルチプロセッサシステムにおけるプログラムのデバッギングの方法Info
- Publication number
- JPH0282344A JPH0282344A JP63233704A JP23370488A JPH0282344A JP H0282344 A JPH0282344 A JP H0282344A JP 63233704 A JP63233704 A JP 63233704A JP 23370488 A JP23370488 A JP 23370488A JP H0282344 A JPH0282344 A JP H0282344A
- Authority
- JP
- Japan
- Prior art keywords
- flag
- semaphore
- memory
- trace information
- processor
- 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
- Debugging And Monitoring (AREA)
- Multi Processors (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔目 次〕
概要
産業上の利用分野
従来の技術
発明が解決しようとする課題
課題を解決するための手段
作用
実施例
発明の効果
〔概 要〕
マルチプロセッサシステムの情報処理装置におけるプロ
グラムのデバッグの際の命令実行中にテストアンドセッ
ト命令を実行するごとに得られるトレース情報をメモリ
のトレース領域に書き込むことによって行われるデバッ
ギングの方法に関し、複数のプロセッサによる命令実行
順を示す正確なトレース情報が求められるデバッグ方法
を得ることを目的とし、 メモリ装置のセマフォ領域に格納されたデータにリード
・モディファイ・ライト動作を実行するセマフォ制御部
を有するマルチプロセッサシステムにおけるプログラム
のデバッギングの方法であって、プロセッサで実行され
た命令のうち、テストアンドセット命令についてトレー
ス情報を検出し、該情報の検出後にセマフォフラグを参
照し、フラグ非検出時にはフラグを立ててメモリ占有を
行い、フラグ検出時にはフラグリセットを待ってフラグ
を立ててメモリ占有を行い、メモリ領域にトレース情報
を書き込み、その後フラグをリセットし、メモリ占有を
開放するように構成する。
グラムのデバッグの際の命令実行中にテストアンドセッ
ト命令を実行するごとに得られるトレース情報をメモリ
のトレース領域に書き込むことによって行われるデバッ
ギングの方法に関し、複数のプロセッサによる命令実行
順を示す正確なトレース情報が求められるデバッグ方法
を得ることを目的とし、 メモリ装置のセマフォ領域に格納されたデータにリード
・モディファイ・ライト動作を実行するセマフォ制御部
を有するマルチプロセッサシステムにおけるプログラム
のデバッギングの方法であって、プロセッサで実行され
た命令のうち、テストアンドセット命令についてトレー
ス情報を検出し、該情報の検出後にセマフォフラグを参
照し、フラグ非検出時にはフラグを立ててメモリ占有を
行い、フラグ検出時にはフラグリセットを待ってフラグ
を立ててメモリ占有を行い、メモリ領域にトレース情報
を書き込み、その後フラグをリセットし、メモリ占有を
開放するように構成する。
本発明は、マルチプロセッサシステムの情報処理装置に
おけるプログラムのデハ・7グの際の命令実行中にテス
トアンドセット命令を実行するごとに得られるトレース
情報をメモリのトレース領域に書き込むことによって行
われるマルチプロセッサシステムにおけるプログラムの
デバッギングの方法に関する。
おけるプログラムのデハ・7グの際の命令実行中にテス
トアンドセット命令を実行するごとに得られるトレース
情報をメモリのトレース領域に書き込むことによって行
われるマルチプロセッサシステムにおけるプログラムの
デバッギングの方法に関する。
マルチプロセッサシステムにおけるシステムプログラム
、ユーザプログラムとしてのマクロコードをデバッグす
る際に、セマフォ制御を利用して共有メモリをアクセス
するプログラムにおいて、−度に指定された数のプロセ
ッサまでしかその領域をアクセスできない領域であると
、待ち合わせやアクセスエラーが生じて、時としてはデ
ッドロックを生ずることがある。この場合、いかにして
デッドロック等が生じるかを解析するために、テストア
ンドセット命令のトレース情報をメモリ装置に書き込ん
でトレース終了後にデイスプレィ装置か印刷機等に出力
して、テストアンドセット命令の実行順を調べるように
している。
、ユーザプログラムとしてのマクロコードをデバッグす
る際に、セマフォ制御を利用して共有メモリをアクセス
するプログラムにおいて、−度に指定された数のプロセ
ッサまでしかその領域をアクセスできない領域であると
、待ち合わせやアクセスエラーが生じて、時としてはデ
ッドロックを生ずることがある。この場合、いかにして
デッドロック等が生じるかを解析するために、テストア
ンドセット命令のトレース情報をメモリ装置に書き込ん
でトレース終了後にデイスプレィ装置か印刷機等に出力
して、テストアンドセット命令の実行順を調べるように
している。
第7図は、従来型のマルチプロセッサシステムのブロッ
ク図である。システムスト−レージ(SS)としてのメ
モリ装置12に対して複数のインストラクションプロセ
ッサ(IPU)、例えば3台のプロセッサ10a 、
10b 、 10cが接続され、さらにインタフェース
用のシステムプロセッサ(SPtl) 13を介してデ
ィスク、磁気テープ等の外部装置が接続される。
ク図である。システムスト−レージ(SS)としてのメ
モリ装置12に対して複数のインストラクションプロセ
ッサ(IPU)、例えば3台のプロセッサ10a 、
10b 、 10cが接続され、さらにインタフェース
用のシステムプロセッサ(SPtl) 13を介してデ
ィスク、磁気テープ等の外部装置が接続される。
このようなマルチプロセッサシステムに従来のシングル
プロセッサのデバッグ方法を適用すると次のようになる
。
プロセッサのデバッグ方法を適用すると次のようになる
。
まず、メモリ装置12のメモリ領域は、例えば第8図の
メモリマツプに示すように、トレース対象マクロプログ
ラム(上段に表示)、データ領域(下段)、およびアド
レスポインタで指定されるトレースデータ領域で構成さ
れる。ここで、MOV等の記号は命令を示し、rTS命
」はテストアンドセット命令を示す。斜線部はオペコー
ドアドレスを図解する。下段の3個のブロックはそれぞ
れ獲得される領域が示される。
メモリマツプに示すように、トレース対象マクロプログ
ラム(上段に表示)、データ領域(下段)、およびアド
レスポインタで指定されるトレースデータ領域で構成さ
れる。ここで、MOV等の記号は命令を示し、rTS命
」はテストアンドセット命令を示す。斜線部はオペコー
ドアドレスを図解する。下段の3個のブロックはそれぞ
れ獲得される領域が示される。
特定のプロセッサ、例えばプロセッサ10aで最初のテ
ストアンドセット命令を実行することにより、そのマク
ロ命令のマクロコードの空間番号およびアドレスが得ら
れると、アドレスポインタで示す最初のトレースデータ
領域に例えば空間番号1、アドレス1としてトレース情
報が書き込まれ、次に同じプロセッサ10a、他のプロ
セッサ10bまたは10cによるテストアンドセット命
令の実行で得られたトレース情報はアドレスポインタの
更新で示され、次のトレースデータ領域、例えば空間番
号2、アドレス2に順次書き込まれる。
ストアンドセット命令を実行することにより、そのマク
ロ命令のマクロコードの空間番号およびアドレスが得ら
れると、アドレスポインタで示す最初のトレースデータ
領域に例えば空間番号1、アドレス1としてトレース情
報が書き込まれ、次に同じプロセッサ10a、他のプロ
セッサ10bまたは10cによるテストアンドセット命
令の実行で得られたトレース情報はアドレスポインタの
更新で示され、次のトレースデータ領域、例えば空間番
号2、アドレス2に順次書き込まれる。
しかしながら、前述の従来のマルチプロセッサシステム
のデバッグ方法においては、複数のプロセッサが同じト
レースデータ領域にトレース情報を書き込むようになる
ため、成るプロセッサがアドレスポインタで示すメモリ
領域に空間番号およびアドレスから成るトレース情報を
書き込んでいる最中に、またはアドレスポインタを更新
している最中に、別のプロセッサが同じアドレスポイン
タに割り込みによりトレース情報を書き込んだり、アド
レスポインタを更新してしまう場合があり、このため異
なる複数のプロセッサによるマクロ命令の実行順を示す
トレース情報が得られなくなるという課題がある。
のデバッグ方法においては、複数のプロセッサが同じト
レースデータ領域にトレース情報を書き込むようになる
ため、成るプロセッサがアドレスポインタで示すメモリ
領域に空間番号およびアドレスから成るトレース情報を
書き込んでいる最中に、またはアドレスポインタを更新
している最中に、別のプロセッサが同じアドレスポイン
タに割り込みによりトレース情報を書き込んだり、アド
レスポインタを更新してしまう場合があり、このため異
なる複数のプロセッサによるマクロ命令の実行順を示す
トレース情報が得られなくなるという課題がある。
もちろん、複数のプロセッサごとに別々のメモリ領域を
確保してトレース情報を書き込むことも考えられるが、
プロセッサ相互の実行順がわからなくなる。
確保してトレース情報を書き込むことも考えられるが、
プロセッサ相互の実行順がわからなくなる。
さらに、テストアンドセットされる領域のアドレスがイ
ンデックスレジスタの内容によって変化するインデック
ス修飾であれば、トレース情報からは、どの共有領域へ
のアクセスか不明である。
ンデックスレジスタの内容によって変化するインデック
ス修飾であれば、トレース情報からは、どの共有領域へ
のアクセスか不明である。
本発明の目的は前述の課題にかんがみてなされたもので
、マイクロプロセッサ等にハードウェアとして設けられ
ているセマフォ制御機能を有効に利用して、複数のプロ
セッサによる命令実行順を示す正確なトレース情報が求
められるマルチプロセッサシステムのデバッグ方法を得
ることにある。
、マイクロプロセッサ等にハードウェアとして設けられ
ているセマフォ制御機能を有効に利用して、複数のプロ
セッサによる命令実行順を示す正確なトレース情報が求
められるマルチプロセッサシステムのデバッグ方法を得
ることにある。
第1図の本発明の処理過程を例示する流れ図および第2
図の本発明を適用する装置のブロック図を参照して説明
する。本発明の方法が用いられるシステムはメモリ装置
12と複数のプロセッサ10a、10b、および10c
を具備し、各プロセッサにはマイクロ命令により実行さ
れるハードウェアとしてのセマフォ制御部16a、16
b、および16Cが設けられる。各セマフォ制御部は、
メモリ装置12の特定アドレスとなるセマフォ領域14
に格納されたデータを読み取った後に特定のビットにフ
ラグを立てて書き込むリード・モディファイ・ライト動
作をマイクロ命令により実行する機能を備えており、こ
のリード・モディファイ・ライト動作中は他のプロセッ
サからの読み出し、書き込み、および割り込みが禁止さ
れる。
図の本発明を適用する装置のブロック図を参照して説明
する。本発明の方法が用いられるシステムはメモリ装置
12と複数のプロセッサ10a、10b、および10c
を具備し、各プロセッサにはマイクロ命令により実行さ
れるハードウェアとしてのセマフォ制御部16a、16
b、および16Cが設けられる。各セマフォ制御部は、
メモリ装置12の特定アドレスとなるセマフォ領域14
に格納されたデータを読み取った後に特定のビットにフ
ラグを立てて書き込むリード・モディファイ・ライト動
作をマイクロ命令により実行する機能を備えており、こ
のリード・モディファイ・ライト動作中は他のプロセッ
サからの読み出し、書き込み、および割り込みが禁止さ
れる。
本発明は、上記セマフォ制御機能を利用して、システム
デバッグ時に、特定のプロセッサの実行命令のうちテス
トアンドセット命令の空間番号、アドレス、オペランド
のアドレス、およびプロセッサ番号を検出すると(Sl
)該プロセンサでセマフォフラグを参照する(S2)。
デバッグ時に、特定のプロセッサの実行命令のうちテス
トアンドセット命令の空間番号、アドレス、オペランド
のアドレス、およびプロセッサ番号を検出すると(Sl
)該プロセンサでセマフォフラグを参照する(S2)。
該フラグの非検出時には自己のセマフォ制御によりメモ
リ装置12の占有権を獲得した後に(S3)、フラグ検
出時には他のプロセッサがメモリ装置12の占有権をも
っているのでフラグリセットによる占有権の開放を待っ
て自己のセマフォ制御によりメモリ装置12の占有権を
獲得した後に(s3)、トレース情報をアドレスポイン
タで示すメモリ装置12のメモリ領域に書き込む(S4
)。I・レース情報の書き込みが終了するとアドレスポ
インタを更新(S5:Iした後にフラグをリセット(S
6)してメモリ占有権を開放する。
リ装置12の占有権を獲得した後に(S3)、フラグ検
出時には他のプロセッサがメモリ装置12の占有権をも
っているのでフラグリセットによる占有権の開放を待っ
て自己のセマフォ制御によりメモリ装置12の占有権を
獲得した後に(s3)、トレース情報をアドレスポイン
タで示すメモリ装置12のメモリ領域に書き込む(S4
)。I・レース情報の書き込みが終了するとアドレスポ
インタを更新(S5:Iした後にフラグをリセット(S
6)してメモリ占有権を開放する。
成るプロセッサがトレース情報をメモリ装置12に書き
込む際には自己のセマフォ制御によりセマフォフラグを
立ててメモリ装置の占有権を獲得するから、セマフォ制
御耳中ばもちろん、トレース情報の書き込みおよび書き
込み後のアドレスポインタの更新中に他のプロセッサに
よるメモリアクセスは禁止され、同じアドレスポインタ
で示すメモリ領域に他のプロセッサのトレース情報が書
き込まれたり、アドレスポインタの更新が行われてしま
うことを確実に防止でき、複数のプロセッサによるマク
ロ命令の実行順を示す正確なトレース情報を得ることが
できる。
込む際には自己のセマフォ制御によりセマフォフラグを
立ててメモリ装置の占有権を獲得するから、セマフォ制
御耳中ばもちろん、トレース情報の書き込みおよび書き
込み後のアドレスポインタの更新中に他のプロセッサに
よるメモリアクセスは禁止され、同じアドレスポインタ
で示すメモリ領域に他のプロセッサのトレース情報が書
き込まれたり、アドレスポインタの更新が行われてしま
うことを確実に防止でき、複数のプロセッサによるマク
ロ命令の実行順を示す正確なトレース情報を得ることが
できる。
一方、セマフォフラグを参照した時に、フラグが立って
いれば、他のプロセッサによるトレースく10) 情報の書き込みまたはアドレスポインタの更新中である
ことがわかり、セマフォフラグのリセットを待って自己
のセマフォ制御およびトレース情報の書き込みを行うた
め、同様に複数のプロセッサによるマクロ命令の実行順
を正確に示すトレース情報を得ることができる。
いれば、他のプロセッサによるトレースく10) 情報の書き込みまたはアドレスポインタの更新中である
ことがわかり、セマフォフラグのリセットを待って自己
のセマフォ制御およびトレース情報の書き込みを行うた
め、同様に複数のプロセッサによるマクロ命令の実行順
を正確に示すトレース情報を得ることができる。
なお、メモリ装置のトレース情報格納領域には限界があ
ることから、記憶領域が一杯になるとサイクリック指定
であればアドレスポインタを初期化して最初からトレー
ス情報の書き込みを行い、サイクリック指定でなければ
デバッグを停止する。
ることから、記憶領域が一杯になるとサイクリック指定
であればアドレスポインタを初期化して最初からトレー
ス情報の書き込みを行い、サイクリック指定でなければ
デバッグを停止する。
第3図には、本発明のマルチプロセッサシステムにおけ
るプログラムのデバッギングの方法に用いられるプロセ
ッサ側のセマフォ制御部のハードウェアを示した一実施
例のブロック図が示される。
るプログラムのデバッギングの方法に用いられるプロセ
ッサ側のセマフォ制御部のハードウェアを示した一実施
例のブロック図が示される。
第3図において、プロセッサ10aは第4図に示される
システムストレージ(SS)としてのメモリ装置12に
対し、メモリデータバスおよびメモリアドレスバスをも
って接続されている。メモリ装置12に対しては他の複
数のブロモ・ノサも同様に接続される。プロセッサ10
aからメモリバスに対するライト(書き込み)ハス系に
はライトブタレジスタ20およびECC(エラー訂正)
回路24のECCコード作成回路26が設りられる。
システムストレージ(SS)としてのメモリ装置12に
対し、メモリデータバスおよびメモリアドレスバスをも
って接続されている。メモリ装置12に対しては他の複
数のブロモ・ノサも同様に接続される。プロセッサ10
aからメモリバスに対するライト(書き込み)ハス系に
はライトブタレジスタ20およびECC(エラー訂正)
回路24のECCコード作成回路26が設りられる。
一方、メモリデータバスからブロモ・ノサ10aに対す
るリード(読み出し)バス系には、メモリデータレジス
タ28、ECC回路24のエラー検出修正回路30およ
びリードデータレジスタ32が設けられる。
るリード(読み出し)バス系には、メモリデータレジス
タ28、ECC回路24のエラー検出修正回路30およ
びリードデータレジスタ32が設けられる。
前述のようなリード系およびライト系の構成はECC回
路24を備えた通常のブロモ・ノサのノ\−ドウェアと
同様であるが、これに加えて本発明のデバッギング方法
を実現するため、ブロモ・ノサ10aに対してはデータ
モディファイ回路34、データ選択器36およびリード
データレジスタ32に格納したリードデータの特定ビッ
トからセマフォフラグを検出して格納するフラグレジス
タ38が設けられる。
路24を備えた通常のブロモ・ノサのノ\−ドウェアと
同様であるが、これに加えて本発明のデバッギング方法
を実現するため、ブロモ・ノサ10aに対してはデータ
モディファイ回路34、データ選択器36およびリード
データレジスタ32に格納したリードデータの特定ビッ
トからセマフォフラグを検出して格納するフラグレジス
タ38が設けられる。
すなわち、データモディファイ回路34はECC回路2
4のエラー検出修正回路30を介して得られたり一ドデ
ータをECCコード作成回路26を備えたライト系にバ
イパスする回路として設けられ、プロセッサ10aより
セマフォ制御信号を受けた時に、メモリ装置12のセマ
フォ領域14からリードされた特定ビット、例えば最上
位ビットをセマフォピントとしてフラグ「1」を立てて
データ修正を行い、同じくデータモディファイ回路34
を介して与えられるセマフォ制御信号によるデータ選択
器36のデータモディファイ回路34の出力選択をもっ
て′ECC回路24を経由してメモリのセマフォ領域に
修正データを書き込むようになる。また、データモディ
ファイ回路34で最上位ビットにセマフォフラグ「1j
を立てた修正データは、メモリ装置のセマフォ領域に書
き込まれると同時にメモリデータレジスタ28、エラー
検出修正回路30を介してリードデータレジスタ32に
格納され、リードデータレジスタ32の最上位ビットの
セマフォフラグを検出してフラグレジスタ38に格納で
きるようにしている。
4のエラー検出修正回路30を介して得られたり一ドデ
ータをECCコード作成回路26を備えたライト系にバ
イパスする回路として設けられ、プロセッサ10aより
セマフォ制御信号を受けた時に、メモリ装置12のセマ
フォ領域14からリードされた特定ビット、例えば最上
位ビットをセマフォピントとしてフラグ「1」を立てて
データ修正を行い、同じくデータモディファイ回路34
を介して与えられるセマフォ制御信号によるデータ選択
器36のデータモディファイ回路34の出力選択をもっ
て′ECC回路24を経由してメモリのセマフォ領域に
修正データを書き込むようになる。また、データモディ
ファイ回路34で最上位ビットにセマフォフラグ「1j
を立てた修正データは、メモリ装置のセマフォ領域に書
き込まれると同時にメモリデータレジスタ28、エラー
検出修正回路30を介してリードデータレジスタ32に
格納され、リードデータレジスタ32の最上位ビットの
セマフォフラグを検出してフラグレジスタ38に格納で
きるようにしている。
このようなハードウェアで構成されたセマフォ制御部を
使用したセマフォ制御、すなわち、メモリ装置のセマフ
ォ領域に格納されたデータをリードして最上位ビットに
フラグ「1」を立てて再度書き込むリード・モディファ
イ・ライト動作は、デバッグ時に成るマクロ命令を実行
してトレース情報が得られた時にセマフォ制御を行うマ
イクロ命令の実行で行うことができる。
使用したセマフォ制御、すなわち、メモリ装置のセマフ
ォ領域に格納されたデータをリードして最上位ビットに
フラグ「1」を立てて再度書き込むリード・モディファ
イ・ライト動作は、デバッグ時に成るマクロ命令を実行
してトレース情報が得られた時にセマフォ制御を行うマ
イクロ命令の実行で行うことができる。
第4図は第3図のプロセッサ10aによるトレース情報
が書き込まれるメモリ装置12のメモリマツプ説明図で
あり、トレース対象マクロプログラムおよびデータ領域
、セマフォデータを格納したセマフォ領域14、および
アドレスポインタで指定されるトレースデータ領域で構
成されている。
が書き込まれるメモリ装置12のメモリマツプ説明図で
あり、トレース対象マクロプログラムおよびデータ領域
、セマフォデータを格納したセマフォ領域14、および
アドレスポインタで指定されるトレースデータ領域で構
成されている。
第5図は第3図に示したハードウェアによるセマフォ制
御のタイミング説明図である。時刻t。
御のタイミング説明図である。時刻t。
までのステップでプログラム10aが成るテストアンド
セット命令を実行して、そのマクロ命令の空間番号、ア
ドレス、オペランドのアドレス、およびプロセッサ番号
より成るトレース情報が得られると、時刻1.のタイミ
ングでメモリ装?lf 12に対するバスリクエストお
よびセマフォ制御のためのセマフォアクセスを出力する
。この時刻t、のセマフォアクセスを受けてプロセッサ
10aは、第4図に示すセマフォ領域14のアドレスを
時刻t2以降のタイミングに指定し、その結果、時刻t
4からセマフォ領域14のリードデータが得られ、次の
時刻t5のタイミングで、もしセマフォデータの上位ビ
ットのフラグが「0」であればフラグ「1」を立てて時
刻t6のタイミングでメモリ装置12のセマフォ領域1
4に修正データを書き込むライトデータのメモリ転送を
行い、時刻t、のタイミングでセマフォアクセスを終了
する。そして、時刻t2〜t7におけるセマフォ制御の
リード・モディファイ・ライト動作中はメモリバスが占
有され、この間は他のプロセッサからのハード的または
ソフト的な割り込みは禁止されるようになる。
セット命令を実行して、そのマクロ命令の空間番号、ア
ドレス、オペランドのアドレス、およびプロセッサ番号
より成るトレース情報が得られると、時刻1.のタイミ
ングでメモリ装?lf 12に対するバスリクエストお
よびセマフォ制御のためのセマフォアクセスを出力する
。この時刻t、のセマフォアクセスを受けてプロセッサ
10aは、第4図に示すセマフォ領域14のアドレスを
時刻t2以降のタイミングに指定し、その結果、時刻t
4からセマフォ領域14のリードデータが得られ、次の
時刻t5のタイミングで、もしセマフォデータの上位ビ
ットのフラグが「0」であればフラグ「1」を立てて時
刻t6のタイミングでメモリ装置12のセマフォ領域1
4に修正データを書き込むライトデータのメモリ転送を
行い、時刻t、のタイミングでセマフォアクセスを終了
する。そして、時刻t2〜t7におけるセマフォ制御の
リード・モディファイ・ライト動作中はメモリバスが占
有され、この間は他のプロセッサからのハード的または
ソフト的な割り込みは禁止されるようになる。
次に第6図の動作流れ図を参照して実施例におけるデパ
ッギングの方法を説明する。まず、第3図に示すプロセ
ッサloaで実行されるマクロ命令がテストアンドセッ
ト命令であり、マクロ命令の空間番号、アドレス、およ
びプロセッサ番号でなるトレース情報が検出されると、
第6図の動作過程が実行される。すなわち、動作過程に
おけるステップSllでまずテストアンドセット命令か
判断し、テストアンドセット命令であればステップS1
2へ進み、テストアンドセット命令でなげれば、ステッ
プ319へ進む。ステップ12では、メモリバスが他の
プロセッサにより占有されているか否か判別し、バス開
放状態にあれば、ステップS13に進み、リード・モデ
ィファイ・ライト動作を行うセマフォ制御を実行する。
ッギングの方法を説明する。まず、第3図に示すプロセ
ッサloaで実行されるマクロ命令がテストアンドセッ
ト命令であり、マクロ命令の空間番号、アドレス、およ
びプロセッサ番号でなるトレース情報が検出されると、
第6図の動作過程が実行される。すなわち、動作過程に
おけるステップSllでまずテストアンドセット命令か
判断し、テストアンドセット命令であればステップS1
2へ進み、テストアンドセット命令でなげれば、ステッ
プ319へ進む。ステップ12では、メモリバスが他の
プロセッサにより占有されているか否か判別し、バス開
放状態にあれば、ステップS13に進み、リード・モデ
ィファイ・ライト動作を行うセマフォ制御を実行する。
プロセッサ10aはメモリアドレスバスを利用してメモ
リ装置12のセマフォ領域14(第4図参照)のアドレ
スを指定してセマフォデータをメモリデータレジスタ2
8に読み出し、ECC回路24のエラー検出修正回路3
0を介して得られたリードデータをリードデータレジス
タ32に格納すると同時にデータモディファイ回路34
に格納する。この時エラー検出修正回路30で1ビツト
エラーが検出されれば1ビツトエラーを修正した正しい
リードデータが与えられる。
リ装置12のセマフォ領域14(第4図参照)のアドレ
スを指定してセマフォデータをメモリデータレジスタ2
8に読み出し、ECC回路24のエラー検出修正回路3
0を介して得られたリードデータをリードデータレジス
タ32に格納すると同時にデータモディファイ回路34
に格納する。この時エラー検出修正回路30で1ビツト
エラーが検出されれば1ビツトエラーを修正した正しい
リードデータが与えられる。
データモディファイ回路34にはプロセッサlOaより
セマフォ制御信号がセマフォアクセスによって与えられ
ていることから、リードデータの特定ビット、例えば最
上位ビットにセマフォフラグが立っているか判別する。
セマフォ制御信号がセマフォアクセスによって与えられ
ていることから、リードデータの特定ビット、例えば最
上位ビットにセマフォフラグが立っているか判別する。
この時最上位ビットにフラグ「1」が立っていれば、他
のプロセンサによるトレースデータの更新中であること
から第6図のステップS14に示すようにトレースデー
タの更新中であることが判別されて再びステップSll
に戻る。
のプロセンサによるトレースデータの更新中であること
から第6図のステップS14に示すようにトレースデー
タの更新中であることが判別されて再びステップSll
に戻る。
セマフォフラグが「0」であるか他のプロセッサによる
トレースデータの更新が終了してセマフォフラグが「0
」にリセットされた時は、データモディファイ回路34
で最上位ビットにセマフォフラグ「1」を立てて修正し
たデータをセマフォ制御信号により選択状態にあるデー
タ選択器36およびECC回路24のECCコード作成
回路26を介してメモリ装置12のセマフォ領域14に
書き込むセマフォ制御を行う。
トレースデータの更新が終了してセマフォフラグが「0
」にリセットされた時は、データモディファイ回路34
で最上位ビットにセマフォフラグ「1」を立てて修正し
たデータをセマフォ制御信号により選択状態にあるデー
タ選択器36およびECC回路24のECCコード作成
回路26を介してメモリ装置12のセマフォ領域14に
書き込むセマフォ制御を行う。
ステップS14における他のプロセッサによるトレース
データの更新中の有無の判別は、リードデータレジスタ
32に格納されたセマフォ領域14のリードデータの最
上位ビットをフラグレジスタ38に格納し、このフラグ
レジスタ38のビット「1」または「0」をプロセッサ
10aが見ることで自己のセマフォ制御を行うか、他の
プロセッサのトレースデータ更新の終了を待ってセマフ
ォ制御を行うか否か判別する。
データの更新中の有無の判別は、リードデータレジスタ
32に格納されたセマフォ領域14のリードデータの最
上位ビットをフラグレジスタ38に格納し、このフラグ
レジスタ38のビット「1」または「0」をプロセッサ
10aが見ることで自己のセマフォ制御を行うか、他の
プロセッサのトレースデータ更新の終了を待ってセマフ
ォ制御を行うか否か判別する。
ステップS14までの処理で自己のセマフォ制御により
メモリ装置のセマフォ領域14にセマフォフラグ「1」
を立てたデータ書き込みが終了すると、次のステップS
15でトレース情報として検出されているマクロ命令の
空間番号、アドレス、対象とするアドレス、およびプロ
セッサ番号をアドレスポインタで指定されるメモリ領域
に書き込む。
メモリ装置のセマフォ領域14にセマフォフラグ「1」
を立てたデータ書き込みが終了すると、次のステップS
15でトレース情報として検出されているマクロ命令の
空間番号、アドレス、対象とするアドレス、およびプロ
セッサ番号をアドレスポインタで指定されるメモリ領域
に書き込む。
続いて、ステップS16に示ずように、アドレスボイン
クを次のトレース情報のメモリ領域を指定するよう再セ
ント(更新)し、ステップS17に進み、トレース情報
の書き込み領域が一杯か否か判別する。トレース情報の
書き込み領域に空きがあればステップ318に進んでス
テップS13のセマフォ制御で立てたセマフォフラグ「
1」を「0」にリセフトし、トレース情報更新のための
パス占有権を開放する。ステップ318でバス占有権を
開放するとステップS19で次の命令コードをフェッチ
し、ステップS20でフェッチした命令コートをデコー
ドしてステップS21で命令コードを実行し、これによ
って次のトレース情報が得られることから再びステップ
S12の処理に戻る。
クを次のトレース情報のメモリ領域を指定するよう再セ
ント(更新)し、ステップS17に進み、トレース情報
の書き込み領域が一杯か否か判別する。トレース情報の
書き込み領域に空きがあればステップ318に進んでス
テップS13のセマフォ制御で立てたセマフォフラグ「
1」を「0」にリセフトし、トレース情報更新のための
パス占有権を開放する。ステップ318でバス占有権を
開放するとステップS19で次の命令コードをフェッチ
し、ステップS20でフェッチした命令コートをデコー
ドしてステップS21で命令コードを実行し、これによ
って次のトレース情報が得られることから再びステップ
S12の処理に戻る。
ステップS17でトレース情報の書き込み領域が一杯の
時には、ステップS31に進んでトレース情報の書き込
みがサイクリック指定モードか否か判別する。サイクリ
ック指定モードの時には、ステップS32でアドレスポ
インタを初期化した後、ステップ31Bでセマフォ制御
のフラグリセットでメモリ占有権を開放し、ステップ3
19〜S21で次の命令のフェッチ、デコード、および
実行を行う。
時には、ステップS31に進んでトレース情報の書き込
みがサイクリック指定モードか否か判別する。サイクリ
ック指定モードの時には、ステップS32でアドレスポ
インタを初期化した後、ステップ31Bでセマフォ制御
のフラグリセットでメモリ占有権を開放し、ステップ3
19〜S21で次の命令のフェッチ、デコード、および
実行を行う。
すなわち、サイクリック指定モードの時には、トレース
情報書き込み領域が一杯になると、次のマクロ命令の実
行によるl・レース情報はアドレスポインタの初期化で
指定される最初の領域を書き換える形で格納される。
情報書き込み領域が一杯になると、次のマクロ命令の実
行によるl・レース情報はアドレスポインタの初期化で
指定される最初の領域を書き換える形で格納される。
ステップS31でサイクリック指定モードでなかった場
合には、ステップS33でトレース情報更新のためのメ
モリ占有権を開放し、ステップS34で停止命令により
デバッグを停止し、その旨をオペレータに通知する。
合には、ステップS33でトレース情報更新のためのメ
モリ占有権を開放し、ステップS34で停止命令により
デバッグを停止し、その旨をオペレータに通知する。
前述の実施例は複数のプロセッサ側にセマフォ制御を行
うハードウェアを設けた場合について記載されているが
、他の実施例としてメモリ装置側にセマフォ制御機能を
実現するためのハードウェアを設けるようにしてもよい
。このように、メモリ装置にセマフォ制御のためのハー
ドウェアを設けた場合には、セマフォ制御のハードウェ
アが1つですみ、プロセッサごとに設けた場合に比較し
、ハードウェアの構成を簡単にすることができる。
うハードウェアを設けた場合について記載されているが
、他の実施例としてメモリ装置側にセマフォ制御機能を
実現するためのハードウェアを設けるようにしてもよい
。このように、メモリ装置にセマフォ制御のためのハー
ドウェアを設けた場合には、セマフォ制御のハードウェ
アが1つですみ、プロセッサごとに設けた場合に比較し
、ハードウェアの構成を簡単にすることができる。
本発明によれば、セマフォ制御機能を利用して特定のプ
ロセッサによるトレース情報の更新中は他のプロセッサ
によるメモリアクセスが禁止され、複数のプロセッサの
命令実行順を示す正確なデバッグのためのトレース情報
を得ることができる。
ロセッサによるトレース情報の更新中は他のプロセッサ
によるメモリアクセスが禁止され、複数のプロセッサの
命令実行順を示す正確なデバッグのためのトレース情報
を得ることができる。
すなわちテストアンドセット命令である領域を獲得した
プロセッサ番号、その命令の存在するアドレス、または
何回目に獲得したか、テストアンドセットによるループ
回数を知ることができる。
プロセッサ番号、その命令の存在するアドレス、または
何回目に獲得したか、テストアンドセットによるループ
回数を知ることができる。
第1図は本発明の処理過程の流れ図、
第2図は本発明を適用するシステムのブロック図、
第3図は本発明の一実施例の方法を行うシステムのセマ
フォ制御部のハードウェアのブロック図、第4図は実施
例のデバッグによるメモリマツプを説明する図、 第5図は実施例のセマフォ制御のタイミングを説明する
図、 第6図は実施例の方法の動作流れ図、 第7図は従来のマルチプロセッサシステムを説明するブ
ロック図、および 第8図はメモリ装置のメモリ領域を説明する図である。 図において、 10a 、 10b 、 10cm−−プロセッサ、1
2・・・メモリ装置、 13・・・システムプロセッサ、 14・・・セマフォ領域、 16a 、 16b 、 16cm−−セマフォ制御部
、20・・・ライトデータレジスタ、 24・・・E C、C回路、 26・・・ECCコード作成回路、 28・・・メモリデータレジスタ、 30・・・エラー検出修正回路、 32・・・リードデータレジスタ、 34・・・データモディファイ回路、 36・・・データ選択器、 38・・・フラグレジスタ、 である。
フォ制御部のハードウェアのブロック図、第4図は実施
例のデバッグによるメモリマツプを説明する図、 第5図は実施例のセマフォ制御のタイミングを説明する
図、 第6図は実施例の方法の動作流れ図、 第7図は従来のマルチプロセッサシステムを説明するブ
ロック図、および 第8図はメモリ装置のメモリ領域を説明する図である。 図において、 10a 、 10b 、 10cm−−プロセッサ、1
2・・・メモリ装置、 13・・・システムプロセッサ、 14・・・セマフォ領域、 16a 、 16b 、 16cm−−セマフォ制御部
、20・・・ライトデータレジスタ、 24・・・E C、C回路、 26・・・ECCコード作成回路、 28・・・メモリデータレジスタ、 30・・・エラー検出修正回路、 32・・・リードデータレジスタ、 34・・・データモディファイ回路、 36・・・データ選択器、 38・・・フラグレジスタ、 である。
Claims (1)
- 【特許請求の範囲】 複数のプロセッサ(10a、10b、10c)のそれぞ
れに、メモリ装置(12)のセマフォ領域(14)に格
納されたデータを読み出した後に特定のビットにフラグ
を立てて書き込むリード・モディファイ・ライト動作を
マイクロ命令により実行するセマフォ制御部(16a、
16b、16c)を備え、該セマフォ制御部によるリー
ド・モディファイ・ライト動作中は他のプロセッサから
の割り込みが禁止されるマルチプロセッサシステムにお
けるプログラムのデバッギングの方法であって、 システムデバッグに際し、任意のプロセッサで実行され
た命令のうち、テストアンドセット命令のみについてあ
らかじめ定められた条件に従って、該命令の存在する空
間番号、アドレス、該命令の対象とするアドレスおよび
プロセッサ番号を含むトレース情報を検出し(S1)、 該トレース情報の検出後に前記セマフォフラグを参照し
、フラグ非検出時には前記セマフォ制御によりフラグを
立ててメモリ占有権を獲得した後に、フラグ検出時には
フラグリセットを待って前記セマフォ制御によりフラグ
を立ててメモリ占有権を獲得した後に、アドレスポイン
タで示されるメモリ領域に前記トレース情報を書き込み
(S2、S3、S4)、 該書き込み後に前記アドレスポインタを更新する(S5
)と共に、前記セマフォフラグをリセットして(S6)
、メモリ占有権を開放するようにしたことを特徴とする
マルチプロセッサにおけるプログラムのデバッギングの
方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP63233704A JPH0282344A (ja) | 1988-09-20 | 1988-09-20 | マルチプロセッサシステムにおけるプログラムのデバッギングの方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP63233704A JPH0282344A (ja) | 1988-09-20 | 1988-09-20 | マルチプロセッサシステムにおけるプログラムのデバッギングの方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0282344A true JPH0282344A (ja) | 1990-03-22 |
Family
ID=16959241
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP63233704A Pending JPH0282344A (ja) | 1988-09-20 | 1988-09-20 | マルチプロセッサシステムにおけるプログラムのデバッギングの方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0282344A (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0566972A (ja) * | 1991-09-06 | 1993-03-19 | Nippon Telegr & Teleph Corp <Ntt> | ロツク区間の自動解析方法と平均命令実行時間の計算方法 |
| JPH05165675A (ja) * | 1991-12-12 | 1993-07-02 | Agency Of Ind Science & Technol | デバッグ支援装置 |
| WO2000017756A1 (en) * | 1998-09-18 | 2000-03-30 | Matsushita Electric Industrial Co., Ltd. | Signal processor |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5533288A (en) * | 1978-08-31 | 1980-03-08 | Fujitsu Ltd | Hysteresis recording control system of multi-processor system |
-
1988
- 1988-09-20 JP JP63233704A patent/JPH0282344A/ja active Pending
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5533288A (en) * | 1978-08-31 | 1980-03-08 | Fujitsu Ltd | Hysteresis recording control system of multi-processor system |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0566972A (ja) * | 1991-09-06 | 1993-03-19 | Nippon Telegr & Teleph Corp <Ntt> | ロツク区間の自動解析方法と平均命令実行時間の計算方法 |
| JPH05165675A (ja) * | 1991-12-12 | 1993-07-02 | Agency Of Ind Science & Technol | デバッグ支援装置 |
| WO2000017756A1 (en) * | 1998-09-18 | 2000-03-30 | Matsushita Electric Industrial Co., Ltd. | Signal processor |
| US6484243B1 (en) | 1998-09-18 | 2002-11-19 | Matsushita Electric Industrial Co., Ltd. | Shared memory tracing apparatus |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN110058880B (zh) | 独占指令的模拟 | |
| JP2610821B2 (ja) | マルチプロセツサシステム | |
| JPS59502159A (ja) | 仮想マシンデ−タプロセツサ | |
| JPH0810437B2 (ja) | 仮想計算機システムのゲスト実行制御方式 | |
| TW201734821A (zh) | 暫存器存取控制 | |
| JPH0282344A (ja) | マルチプロセッサシステムにおけるプログラムのデバッギングの方法 | |
| JPH01125633A (ja) | マルチプロセッサシステムのデバッグ法 | |
| JPS60159951A (ja) | 情報処理装置におけるトレ−ス方式 | |
| KR102825843B1 (ko) | 트랜잭션 메모리를 위한 장치 및 데이터 처리 방법 | |
| JP2587468B2 (ja) | ロツクデータ設定装置 | |
| JPS60262251A (ja) | マイクロプロセツサ開発支援装置 | |
| JP3130798B2 (ja) | バス転送装置 | |
| JP3171615B2 (ja) | データ転送のリトライ制御方式 | |
| JP2674873B2 (ja) | プログラム開発支援装置のステップ実行動作方法 | |
| SU849218A1 (ru) | Устройство дл отладки программ | |
| JPS5842891B2 (ja) | メイレイセイギヨホウシキ | |
| JPS5834856B2 (ja) | キオクセイギヨソウチ | |
| JPH03103924A (ja) | データ処理装置 | |
| CN121807684A (zh) | Gpu中断调试方法、装置、设备、介质和程序产品 | |
| JPS59165143A (ja) | デ−タ処理装置 | |
| JPH03232051A (ja) | セマフォアクセス制御方法 | |
| JPS60193046A (ja) | 命令例外検出方式 | |
| JPS5922155A (ja) | マルチ・プロセツサ・システムの排他制御方法 | |
| JPS6158049A (ja) | エラ−検出方式 | |
| JPS60124747A (ja) | 計算機のデバグ制御方式 |