JP2000181731A - 不当アドレス検出方式 - Google Patents

不当アドレス検出方式

Info

Publication number
JP2000181731A
JP2000181731A JP10360292A JP36029298A JP2000181731A JP 2000181731 A JP2000181731 A JP 2000181731A JP 10360292 A JP10360292 A JP 10360292A JP 36029298 A JP36029298 A JP 36029298A JP 2000181731 A JP2000181731 A JP 2000181731A
Authority
JP
Japan
Prior art keywords
instruction
processor
illegal
area access
memory
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
JP10360292A
Other languages
English (en)
Inventor
Takahiro Uchimura
貴宏 内村
Katsutoshi Uehara
克利 上原
Takashi Yamamoto
敬 山本
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 JP10360292A priority Critical patent/JP2000181731A/ja
Publication of JP2000181731A publication Critical patent/JP2000181731A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】不当領域アクセスが発生しない時の性能を低下
させず、かつ、ソフトウェアバグによる不当領域アクセ
スを他のハードウェア故障と区別し、障害原因の究明を
迅速に行なう。 【解決手段】ソフトウェアバグによる不当領域アクセス
が発生した際に、不当領域アクセスを発生したメモリア
クセス命令がストア命令である時は常にプロセッサ内の
ストアバッファへ積んで後続命令の処理を開始し、また
ロード命令である時は不当領域アクセス発生時には、プ
ロセッサ内で擬似データを返すことで不当領域アクセス
を起こしたロード命令を一旦終了させて後続命令の処理
を開始することで、不当領域アクセス発生命令の完了と
は無関係なタイミングでの割込み報告を可能とする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、メモリアクセス命
令によるメモリへのアクセス不許可領域へのアクセスを
検出する論理に関する。
【0002】
【従来の技術】一般にコンピュータ等の情報処理装置に
は、障害発生時にシステムダウンを防ぐための障害処理
装置を有している。障害処理の基本方針は、障害処理に
より誤演算/データ化けの重要障害は絶対におこさない
ことであり、障害発生時の正しい報告と回復処理により
システムダウンを極力防止しなければならない。
【0003】コンピュータシステムの構成要素は、図1
に示すように命令を処理するプロセッサ1a、メモリ内
の使用頻度の高いデータを格納するキャッシュ1c、命
令やデータを格納するメモリ1i、プロセッサ1aとメ
モリ1iの間のデータ転送を行なうためのプロセッサバ
ス1dとメモリバス1h、メモリを直接制御するメモリ
制御論理1e等である。このようなコンピュータシステ
ムの各部分で障害は発生し得るが、中でも頻度が高いの
がメモリ系での障害である。メモリ系での障害の種類と
しては、α線によって引き起こされるソフトエラーやノ
イズ等によるハードウェアの故障、ソフトウェアのバグ
によって引き起こされるアクセス不許可領域へのアクセ
ス等があり、これらの障害検出や障害発生時のシステム
復旧機構が必須である。このため、従来のコンピュータ
システムには図1に示すようにメモリ制御論理1e内に
障害検出部1gが備えられている。
【0004】本発明では、これらのメモリ系の障害のう
ち、ソフトウェアのバグによって引き起こされるメモリ
未実装領域等のアクセス不許可な領域へのアクセス、す
なわち不当領域アクセスを問題としている。不当な領域
へのアクセスに対する従来の不当アドレス検出方式の一
つは、図2のストア動作時のフローチャートで示すよう
に命令非同期のマシンチェックで報告する方法がある。
この方法は不当領域アクセスが発生した際に、他のハー
ドウェア故障と同等の障害であるマシンチェックと判断
し、不当領域アクセス発生命令の完了とは無関係なタイ
ミングでマシンチェックを報告するものである。しか
し、これではマシンチェックが発生した時にその原因が
ハードウェアによるものなのか、ソフトウェアによるも
のなのかを区別できず、原因の特定が難しくなるためコ
ンピュータシステム復旧に時間がかかっていた。
【0005】この他に不当アドレス検出方式には、特開
平6−139084で提案されているような命令同期割
込みで報告する方法もある。これは、メモリアクセス命
令であるロード命令やストア命令が正常に終了したのか
ソフトウェアバグによる不当領域アクセスが発生したの
かの判定を待ってから、すなわち不当領域アクセス発生
命令と同期させて後続命令の実行を開始するという方法
である。しかし、これでは正常動作するメモリアクセス
命令でも後続命令が即座に実行できず性能が悪くなる。
従来の不当アドレス検出方式にはこのような問題点があ
り、検出方式を改良する必要があった。
【0006】本発明の目的は、障害が発生していない正
常動作時の性能を低下させず、かつ、発生した障害がハ
ードウェアの故障によるものでなく、ソフトウェアのバ
グによる不当領域アクセスによるものであることを検出
し、コンピュータシステムの迅速な復旧を可能にするた
めの不当アドレス検出方式を提供することにある。
【0007】
【発明が解決しようとする課題】不当領域アクセスの判
定は時間がかかるため、不当領域アクセスが発生したか
どうかの判定を待ってから後続命令の実行を開始したの
では性能が低下する。また、ハードウェア故障と同じマ
シンチェックとしたのでは発生した障害がハードウェア
の故障によるものなのか、ソフトウェアのバグによる不
当領域アクセスによるものなのかを区別できず、マシン
チェック発生時のすばやい原因究明が難しい。従って本
発明の目的は、障害が発生しない時の性能を落とさず、
かつ、ソフトウェアバグによる不当領域アクセスを他の
ハードウェア故障と区別し、障害原因を迅速に特定する
ことが可能な不当アドレス検出方式を提供することにあ
る。
【0008】
【課題を解決するための手段】本発明によれば、メモリ
アクセス命令がストア命令である時は常にプロセッサ内
のストアバッファへ積んで後続命令の処理を開始し、ま
たロード命令である時は不当領域アクセス発生時にはプ
ロセッサ内で擬似データを返した後、不当領域アクセス
を起こしたロード命令を一旦終了させてから後続命令の
処理を開始することで、不当領域アクセス発生命令の完
了とは無関係なタイミングでの割込み報告を可能として
いる。
【0009】
【発明の実施の形態】図3は、本発明の一実施例に基づ
く不当アドレスを検出するシステムの構成図である。図
3に示した本発明の一実施例に基づくメモリ制御論理1
eには、ハードウェア故障を検出する故障検出部1g、
不当領域アクセス検出論理3b、不当領域アクセス発生
時には‘1’になる不当領域アクセスフラグ3cを備え
ている。図4、図5、図6はそれぞれ、本発明の一実施
例に基づく不当アドレス検出方式におけるストア命令の
動作、ロード命令の動作、プリフェッチ命令の動作のフ
ローチャートである。
【0010】最初に図3と図4を用いて本発明における
ストア命令の処理方法を説明する。プロセッサ1aで実
行命令をデコードした結果、ストア命令であることが判
明するとオペランドで指定されたレジスタの値からスト
アアドレスの計算を行なう。ストアアドレスの計算が終
了するとストアスルー方式の場合、プロセッサ1a内の
キャッシュ1cへストアすると共にメモリ1iへストア
するためにストアバッファ1bへストアデータやストア
アドレス等を格納する。その後、プロセッサ1aは後続
命令の実行を開始する。後続命令を処理する一方でプロ
セッサ1aはプロセッサバス1dのバス権をメモリ制御
部1fから受け取ると、ストアバッファ1bに格納され
ているストアをプロセッサバス1dへ出す。このストア
要求をメモリ制御論理1eが受け取ると、メモリ制御論
理1e内のメモリ制御部1fは障害検出部1gの故障検
出論理3aに対して、ハードウェア故障の有無のチェッ
クを要求する。この要求を受け取った故障検出論理3a
は、ストアデータやストアアドレス等のパリティチェッ
ク等を実行しハードウェア故障が発生したかどうかを判
定する。もし、ハードウェア故障が発生していれば、故
障検出論理3aはメモリ制御部1fにストアを許可せ
ず、プロセッサ1aへ、ストアが異常終了したことをメ
モリ制御部1fがマシンチェックで報告する。ハードウ
ェア故障が発生していない時は、不当領域アクセス検出
論理3bでストアアドレスが不当領域アクセスかどうか
を続けて判定する。もし、不当領域アクセスが発生して
いれば、不当領域アクセス検出論理3bはメモリ制御部
1fにストアを許可せず、不当領域アクセスフラグ3c
を‘1’にしてプロセッサ1aへストアが異常終了した
事をメモリ制御部1fが報告する。この報告を受け取っ
たプロセッサ1aでは、不当領域アクセス命令を引き起
こしたストア命令の完了とは無関係なタイミングすなわ
ち非同期で割込みを発生する。この非同期な割込みによ
って実行される割り込み処理ルーチンではプロセッサ1
a内の各種レジスタ等を所定の場所に待避させて、割り
込み処理を終了する。その後は、ユーザーが待避された
プロセッサ1aのレジスタ等の値を解析することで、不
当領域アクセスを引き起こしたソフトウェアのバグを発
見することができる。
【0011】次に図3と図5を用いて本発明におけるロ
ード命令の処理方法を説明する。プロセッサ1aで実行
命令をデコードした結果、ロード命令であると判明する
とオペランドで指定されたレジスタの値からロードアド
レスの計算を行なう。ロードアドレスの計算が終了し、
プロセッサ1a内のキャッシュ1cを検索してロードデ
ータが有れば、キャッシュ1cからロードする。無けれ
ばプロセッサバス1dのバス権をプロセッサ1aがメモ
リ制御部1fから受け取った後にプロセッサバス1dへ
ロード要求を出す。このロード要求をメモリ制御論理1
eが受け取ると、メモリ制御論理1e内のメモリ制御部
1fは障害検出部1gの故障検出論理3aに対して、ハ
ードウェア故障の有無のチェックを要求する。この要求
を受け取った故障検出論理3aは、ロードアドレスのパ
リティチェック等を実行しハードウェア故障が発生した
かどうかを判定する。もし、ハードウェア故障が発生し
ていれば、故障検出論理3aはメモリ制御1fにロード
を許可せず、プロセッサ1aへロードが異常終了したこ
とをメモリ制御部1fがマシンチェックで報告する。ハ
ードウェア故障が発生していない時は、不当領域アクセ
ス検出論理3bでロードアドレスが不当領域アクセスか
どうかを続けて判定する。もし、不当領域アクセスが発
生していれば、不当領域アクセス検出論理3bはメモリ
制御部1fにロードを許可せず、不当領域アクセスフラ
グ3cを‘1’にしてプロセッサ1aへロードが異常終
了した事をメモリ制御部1fが報告する。この報告を受
け取ったプロセッサ1aが割込みを起こすためには不当
領域アクセスを発生したロード命令を一旦終わらせる必
要があるため、プロセッサ1a内で擬似ロードデータを
作りロード命令を終了させる。この時、レジスタには擬
似ロードデータを格納するが、キャッシュ1cには擬似
ロードデータを格納しない。このような処理を実行後
に、そのロード命令の完了とは無関係なタイミングで割
込みを発生させる。不当領域アクセスが発生していなけ
れば、メモリ制御部1fにロードを許可しメモリからデ
ータをロードする。メモリバス1hからロードデータを
メモリ制御部1fが受け取ると、続けて故障検出部1g
でロードデータチェックを開始する。このロードデータ
が正しく、ハードウェア故障が発生していなければロー
ドデータをプロセッサバス6を通してプロセッサ1aへ
転送し、後続命令の実行を開始して正常終了する。しか
しロードデータに誤りがあり、ハードウェア故障が発生
していれば、プロセッサ1aへロードが異常終了した事
をメモリ制御部1fがマシンチェックで報告する。
【0012】メモリアクセス命令には、ストア命令やロ
ード命令の他にプリフェッチ命令がある。この命令は、
将来、使用する可能性のあるデータを予めキャッシュ1
cに転送するための命令である。このプリフェッチ命令
についても図3と図6を用いて本発明における処理方法
を説明する。プロセッサ1aで実行命令をデコードした
結果、プリフェッチ命令であると判明するとオペランド
で指定されたレジスタの値からプリフェッチアドレスの
計算を行なう。プリフェッチアドレスの計算が終了し、
プロセッサ1a内のキャッシュ1cを検索してプリフェ
ッチデータが有れば、何も処理せず終了する。無ければ
プロセッサバス1dのバス権をプロセッサ1aがメモリ
制御部1fから受け取った後にプロセッサバス1dへプ
リフェッチ要求を出す。一方でプロセッサ1aは、プリ
フェッチデータを待たずに後続命令の処理を開始する。
プロセッサバス1d上のプリフェッチ要求をメモリ制御
論理1eが受け取ると、メモリ制御論理1e内のメモリ
制御部1fは障害検出部1gの故障検出論理3aに対し
て、ハードウェア故障の有無のチェックを要求する。こ
の要求を受け取った故障検出論理3aは、プリフェッチ
アドレスのパリティ等をチェックしハードウェア故障が
発生したかどうかを判定する。もし、ハードウェア故障
が発生していれば、故障検出論理3aはメモリ制御部1
fにプリフェッチを許可せず、プロセッサ1aへプリフ
ェッチが異常終了したことをメモリ制御部1fがマシン
チェックで報告する。ハードウェア故障が発生していな
い時は、不当領域アクセス検出論理3bでプリフェッチ
アドレスが不当領域アクセスかどうかを続けて判定す
る。もし、不当領域アクセスが発生していれば、不当領
域アクセス検出論理3bはメモリ制御部1fにプリフェ
ッチを許可せず、不当領域アクセスフラグ3cを‘1’
にしてプロセッサ1aへプリフェッチが異常終了した事
をメモリ制御部1fが報告する。プリフェッチ命令は、
ロード命令と違い、プリフェッチデータを待たずに後続
命令の処理を開始しているので、擬似データをプロセッ
サ1a内で作る必要はない。このような処理を実行後
に、そのプリフェッチ命令の完了とは無関係なタイミン
グで割込みを発生させる。不当領域アクセスが発生して
いなければ、メモリ制御部1fにプリフェッチを許可し
メモリからデータをプリフェッチする。メモリバス1h
からプリフェッチデータをメモリ制御部1fが受け取る
と、続けて故障検出部1gでプリフェッチデータチェッ
クを開始する。このプリフェッチデータが正しく、ハー
ドウェア故障が発生していなければプリフェッチデータ
をプロセッサバス1dを通してプロセッサ1aへ転送し
正常終了する。しかしプリフェッチデータに誤りがあ
り、ハードウェア故障が発生していれば、プロセッサ1
aへプリフェッチが異常終了した事をメモリ制御部1f
がマシンチェックで報告する。
【0013】このように、本発明の不当アドレス検出方
式では、ソフトウェアバグによる不当領域アクセスが発
生した際には、障害を発生したメモリアクセス命令がス
トア命令である時は常にプロセッサ1a内のストアバッ
ファへ積んで後続命令の処理を開始し、またロード命令
である時は不当領域アクセス発生時には、プロセッサ1
a内で擬似データを返すことで不当領域アクセスを起こ
したロード命令を一旦終了させて後続命令の処理を開始
することで、不当領域アクセス発生命令の完了とは無関
係なタイミングでの割込み報告を可能としている。この
ようにすることで、障害が発生しない時の性能を低下さ
せず、かつ、発生した障害がハードウェアの故障による
ものでなく、ソフトウェアのバグによる不当領域アクセ
スによるものであることを検出し、コンピュータシステ
ムの迅速な復旧を可能にしている。もし、本発明の不当
アドレス検出方式がなければ従来のように命令同期割込
みで不当領域アクセスを報告する方法か、命令非同期で
マシンチェックを報告するしかなく、これでは正常動作
時の性能あるいは不当領域アクセス発生時の原因究明が
遅くなるのである。
【0014】
【発明の効果】以上説明したように本発明によれば、不
当領域アクセスが発生しない時の性能を低下させず、か
つ、ソフトウェアバグによる不当領域アクセスを他のハ
ードウェア故障と区別することで、障害原因を迅速に特
定することが可能である。
【図面の簡単な説明】
【図1】一般にコンピュータに採用されている障害処理
方式の概略図である。
【図2】従来の障害処理方式を持つコンピュータシステ
ムにおいて、ストア命令が不当領域アクセスを発生した
場合の詳細動作を示すフローチャートである。
【図3】本発明の一実施例に基づく障害処理方式の概略
図である。
【図4】本発明の障害処理方式を持つコンピュータシス
テムにおいてストア命令が実行された場合の詳細動作を
示すフローチャートである。
【図5】本発明の障害処理方式を持つコンピュータシス
テムにおいてロード命令が実行された場合の詳細動作を
示すフローチャートである。
【図6】本発明の障害処理方式を持つコンピュータシス
テムにおいてプリフェッチ命令が実行された場合の詳細
動作を示すフローチャートである。
【符号の説明】
1a:プロセッサ 1b:ストアバッファ 1i:メモリ 3b:不当領域アクセス検出論理
───────────────────────────────────────────────────── フロントページの続き (72)発明者 山本 敬 神奈川県秦野市堀山下1番地 株式会社日 立製作所汎用コンピュータ事業部内 Fターム(参考) 5B060 CB00 MM06 MM11

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】命令を処理するプロセッサと, データを
    記憶するメモリと, 前記プロセッサで処理された命令
    による前記メモリに対するアクセスがメモリ未実装領域
    等のアクセス不許可な領域へのアクセスであることを検
    出する不当領域アクセス検出論理からなり、前記プロセ
    ッサで処理されたプログラム中の命令による前記メモリ
    に対するアクセスで不当領域アクセスが発生した際に、
    前記命令の完了とは無関係なタイミングで割込みを報告
    することを特徴とする不当アドレス検出方式。
  2. 【請求項2】メモリアクセス命令がストア命令である時
    は、前記不当領域アクセス検出論理での不当アドレスチ
    ェック結果を待たずに後続命令の処理を開始することを
    特徴とする請求項1記載の不当アドレス検出方式。
  3. 【請求項3】メモリアクセス命令がロード命令である時
    は、不当領域アクセス発生時には前記プロセッサ又は前
    記メモリ内で擬似データを返して不当領域アクセスを起
    こしたロード命令を終了させることを特徴とする請求項
    1記載の不当アドレス検出方式。
JP10360292A 1998-12-18 1998-12-18 不当アドレス検出方式 Pending JP2000181731A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10360292A JP2000181731A (ja) 1998-12-18 1998-12-18 不当アドレス検出方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10360292A JP2000181731A (ja) 1998-12-18 1998-12-18 不当アドレス検出方式

Publications (1)

Publication Number Publication Date
JP2000181731A true JP2000181731A (ja) 2000-06-30

Family

ID=18468771

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10360292A Pending JP2000181731A (ja) 1998-12-18 1998-12-18 不当アドレス検出方式

Country Status (1)

Country Link
JP (1) JP2000181731A (ja)

Similar Documents

Publication Publication Date Title
JP2858140B2 (ja) パイプラインプロセッサ装置および方法
US5386565A (en) Method and system for controlling/monitoring computer system having plural operating systems to run thereon
JPH02135536A (ja) チエツクポイント再試行機構
JPH0820965B2 (ja) プログラムの実行を続行する方法
JPH0812617B2 (ja) 命令の並行処理を可能にするチェックポイント同期化
JP2003511756A (ja) コンピュータにおいて故障分離および診断を改善する機構
US6553512B1 (en) Method and apparatus for resolving CPU deadlocks
US4839895A (en) Early failure detection system for multiprocessor system
JP2770913B2 (ja) パリティの置換装置及び方法
US7194671B2 (en) Mechanism handling race conditions in FRC-enabled processors
US6799285B2 (en) Self-checking multi-threaded processor
JPH02294739A (ja) 障害検出方式
JP2000181731A (ja) 不当アドレス検出方式
JPH1196006A (ja) 情報処理装置
JP2000029702A (ja) コンピュ―タ・プロセッサ
JPS5868162A (ja) 再試行処理方式
JP2793386B2 (ja) 電子計算機の演算エラー情報保持装置
EP0655686B1 (en) Retry control method and device for control processor
JP3168489B2 (ja) Tlb制御方法及び装置
JP2922981B2 (ja) タスクの実行継続方法
JP2919457B1 (ja) 二重化装置i/o制御方式およびそのプログラム記録媒体
JP2002116926A (ja) プログラム処理装置およびプログラム処理方法
JP2786215B2 (ja) 再開処理制御方式
JPH02285427A (ja) 情報処理装置
JPS6146535A (ja) 擬似エラ−設定制御方式

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees