JP2504570B2 - 記憶領域の書き込み検査処理方法 - Google Patents
記憶領域の書き込み検査処理方法Info
- Publication number
- JP2504570B2 JP2504570B2 JP1188272A JP18827289A JP2504570B2 JP 2504570 B2 JP2504570 B2 JP 2504570B2 JP 1188272 A JP1188272 A JP 1188272A JP 18827289 A JP18827289 A JP 18827289A JP 2504570 B2 JP2504570 B2 JP 2504570B2
- Authority
- JP
- Japan
- Prior art keywords
- area
- inspection
- writing
- storage area
- inspected
- 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 - Fee Related
Links
Landscapes
- Storage Device Security (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Computer And Data Communications (AREA)
Description
【発明の詳細な説明】 〔概要〕 計算機システムにおいて,ユーザプログラムなどが指
定した記憶領域に対する書き込みの妥当性を,実際に書
き込みを行うことにより検査する記憶領域の書き込み検
査処理方法に関し, 検査する領域長が大きい場合,領域妥当性検査の処理
時間が長くかかるという問題を解決し,処理の高速化を
可能とすることを目的とし, 検査する記憶領域内の先頭部分について,1バイトまた
は1ワード分の書き込みによる検査を行う処理過程と,
検査する記憶領域内の最終部分について,1バイトまたは
1ワードの書き込みによる検査を行う処理過程と,検査
する記憶領域内における領域の管理単位ごとに,各1バ
イトまたは1ワード分ずつの書き込みによる検査を行う
処理過程とを備え、すべての検査に合格したときに,書
き込み可能と判断するように構成する。
定した記憶領域に対する書き込みの妥当性を,実際に書
き込みを行うことにより検査する記憶領域の書き込み検
査処理方法に関し, 検査する領域長が大きい場合,領域妥当性検査の処理
時間が長くかかるという問題を解決し,処理の高速化を
可能とすることを目的とし, 検査する記憶領域内の先頭部分について,1バイトまた
は1ワード分の書き込みによる検査を行う処理過程と,
検査する記憶領域内の最終部分について,1バイトまたは
1ワードの書き込みによる検査を行う処理過程と,検査
する記憶領域内における領域の管理単位ごとに,各1バ
イトまたは1ワード分ずつの書き込みによる検査を行う
処理過程とを備え、すべての検査に合格したときに,書
き込み可能と判断するように構成する。
本発明は,計算機システムにおいて,ユーザプログラ
ムなどが指定した記憶領域に対する書き込みの妥当性
を,実際に書き込みを行うことにより検査する記憶領域
の書き込み検査処理方法に関する。
ムなどが指定した記憶領域に対する書き込みの妥当性
を,実際に書き込みを行うことにより検査する記憶領域
の書き込み検査処理方法に関する。
第4図は本発明の適用対象となる領域検査が必要にな
るシステムの例,第5図は従来技術の処理フローを示
す。
るシステムの例,第5図は従来技術の処理フローを示
す。
第4図に示す計算機システム10において,例えばユー
ザプログラム12が,端末20からのデータの受信要求を行
った場合,通信制御システム21は,一旦,受信バッファ
22内に受信データを受け取り,その後,ユーザプログラ
ム12が指定したユーザバッファ23に受信データを複写す
る。このとき,ユーザプログラム12のミスにより,ユー
ザプログラム12が指定したユーザバッファ23の領域が不
当であると,データの書き込みに対して,アドレスフォ
ールトなどの異常が発生することがある。
ザプログラム12が,端末20からのデータの受信要求を行
った場合,通信制御システム21は,一旦,受信バッファ
22内に受信データを受け取り,その後,ユーザプログラ
ム12が指定したユーザバッファ23に受信データを複写す
る。このとき,ユーザプログラム12のミスにより,ユー
ザプログラム12が指定したユーザバッファ23の領域が不
当であると,データの書き込みに対して,アドレスフォ
ールトなどの異常が発生することがある。
このように,受信データの転送中に異常が発生する
と,通信制御プログラム21は,異常終了してしまうこと
になる。もし,事前にユーザバッファ23の領域の妥当性
が検査できれば、通信制御プログラム21は,ユーザプロ
グラム12の受信要求に対して,復帰情報でもって領域不
当を通知し,予期できない異常終了を回避することがで
きるようになる。
と,通信制御プログラム21は,異常終了してしまうこと
になる。もし,事前にユーザバッファ23の領域の妥当性
が検査できれば、通信制御プログラム21は,ユーザプロ
グラム12の受信要求に対して,復帰情報でもって領域不
当を通知し,予期できない異常終了を回避することがで
きるようになる。
そのため,従来,ユーザプログラム12からの受信要求
があると,実際のデータ受信処理に入る前に,領域検査
部11により,ユーザバッファ23への書き込みチェックを
行い,その書き込みが正常終了するかどうかを調べる。
があると,実際のデータ受信処理に入る前に,領域検査
部11により,ユーザバッファ23への書き込みチェックを
行い,その書き込みが正常終了するかどうかを調べる。
このような検査は、端末20からのデータ受信に限ら
ず,ファイルからのデータ読み込みによるデータ転送や
その他の処理にも有効になる。
ず,ファイルからのデータ読み込みによるデータ転送や
その他の処理にも有効になる。
この領域の妥当性の検査を,従来技術では,第5図に
示す処理により行っていた。なお,呼び出し元プログラ
ムが,パラメタとして,領域の先頭アドレスと,その領
域長を指定し,検査を行う呼び出し先プログラムが,指
定された領域に指定された長さだけデータを格納するイ
ンタフェースを持つものとする。
示す処理により行っていた。なお,呼び出し元プログラ
ムが,パラメタとして,領域の先頭アドレスと,その領
域長を指定し,検査を行う呼び出し先プログラムが,指
定された領域に指定された長さだけデータを格納するイ
ンタフェースを持つものとする。
(a)検査アドレスに,領域先頭アドレスを入れる。
(b)検査長に領域長を入れる。
(c)長文字移動命令(MVCL命令)により,領域の書き
込み検査を行う。この検査では,書き込みにより,領域
の内容が変化しないように,MVCL命令における移動元の
アドレスと,移動先のアドレスを同一にする。
込み検査を行う。この検査では,書き込みにより,領域
の内容が変化しないように,MVCL命令における移動元の
アドレスと,移動先のアドレスを同一にする。
この命令が正常に終了すれば,指定された領域は,正
しいことになる。プログラム割込みなどが生じた場合に
は,指定された領域は正しくないことになる。
しいことになる。プログラム割込みなどが生じた場合に
は,指定された領域は正しくないことになる。
従来技術による検査のためのプログラムのコーディン
グは、アセンブリ言語で記述すると,例えば次のように
なる。なお,検査対象の先頭領域をA,領域長をLとす
る。
グは、アセンブリ言語で記述すると,例えば次のように
なる。なお,検査対象の先頭領域をA,領域長をLとす
る。
このMVCL命令は,第2オペランドを第1オペランドの
位置に移動する命令であり,転送する領域長が大きいと
処理時間が長くかかる。
位置に移動する命令であり,転送する領域長が大きいと
処理時間が長くかかる。
以上のように,従来技術では,領域の妥当性検査を行
うために,指定された領域のすべてに,実際に書き込み
を行う方法を使用していた。したがって,領域長が大き
い場合,オーバヘッドが大きくなるという問題があっ
た。
うために,指定された領域のすべてに,実際に書き込み
を行う方法を使用していた。したがって,領域長が大き
い場合,オーバヘッドが大きくなるという問題があっ
た。
本発明は,検査する領域長が大きい場合に,領域妥当
性検査の処理時間が長くかかるという問題を解決し,処
理の高速化を可能とすることを目的としている。
性検査の処理時間が長くかかるという問題を解決し,処
理の高速化を可能とすることを目的としている。
第1図は本発明の原理説明図である。
第1図において,10はCPUおよびメモリなどを備えた計
算機システム,11は領域への書き込み妥当性を検査する
プログラムからなる領域検査部,12はユーザプログラム,
13は書き込みの領域を指定するパラメタ,14はデータを
格納する領域を表す。
算機システム,11は領域への書き込み妥当性を検査する
プログラムからなる領域検査部,12はユーザプログラム,
13は書き込みの領域を指定するパラメタ,14はデータを
格納する領域を表す。
ユーザプログラム12が,パラメタ13を指定して,デー
タを格納する領域14に対するデータ受信やファイルから
のデータの読み込みの処理を依頼する場合,領域検査部
11は,事前に処理過程P1〜P3によって,領域の書き込み
検査を行う。
タを格納する領域14に対するデータ受信やファイルから
のデータの読み込みの処理を依頼する場合,領域検査部
11は,事前に処理過程P1〜P3によって,領域の書き込み
検査を行う。
処理過程P1では,検査する領域14内の先頭部分につ
いて,1バイトまたは1ワード分の書き込みによる検査を
行う。
いて,1バイトまたは1ワード分の書き込みによる検査を
行う。
処理過程P2では,検査する領域14内の最終部分につ
いて,1バイトまたは1ワード分の書き込みによる検査を
行う。
いて,1バイトまたは1ワード分の書き込みによる検査を
行う。
処理過程P3では,検査する領域14内における領域の管
理単位,ごとに,各1バイトまたは1ワード分ずつ
の書き込みによる検査を行う。
理単位,ごとに,各1バイトまたは1ワード分ずつ
の書き込みによる検査を行う。
これらのすべての検査に合格したときに,書き込み可
能と判断する。いずれかの検査が不合格になった場合,
ユーザプログラム12に対し,復帰コードで,領域指定誤
りを通知する。
能と判断する。いずれかの検査が不合格になった場合,
ユーザプログラム12に対し,復帰コードで,領域指定誤
りを通知する。
〔作用〕 ユーザプログラム12のミスは,以下の場合が大部分で
ある。
ある。
(1)領域アドレスの指定ミス (2)領域長の指定ミス これらのミスを効率よく検出するために,本発明で
は,領域全体についての書き込みを行うのではなく,処
理過程P1〜P3による管理単位ごとの部分的な書き込み検
査を行う。
は,領域全体についての書き込みを行うのではなく,処
理過程P1〜P3による管理単位ごとの部分的な書き込み検
査を行う。
処理過程P1の検査により,領域アドレスの指定ミスを
検出することができる。処理過程P2により,領域長の指
定ミスの検出することができる。
検出することができる。処理過程P2により,領域長の指
定ミスの検出することができる。
例えばオペレーティング・システムによる領域の管理
単位が,1ページ4096バイトであるとすると,領域長が40
96バイト以上である領域全体の検査は,処理過程P3によ
って,先頭から4096バイトごとの各1バイトまたは1ワ
ードの書き込みにより行う。
単位が,1ページ4096バイトであるとすると,領域長が40
96バイト以上である領域全体の検査は,処理過程P3によ
って,先頭から4096バイトごとの各1バイトまたは1ワ
ードの書き込みにより行う。
なお,領域管理単位は,主記憶キーなどによる記憶保
護の単位でもよい。
護の単位でもよい。
検査する領域の領域長が短い場合には,本発明による
方法よりも,従来技術による方法のほうが,計算機の実
行時間が短い。そこで,領域長を判定した後に,従来技
術のように領域全体の検査を行うのか,本発明による検
査を行うのか,動的に切り分けるようにすると,領域長
が小さい場合にも効率的に領域検査を実行することがで
きる。
方法よりも,従来技術による方法のほうが,計算機の実
行時間が短い。そこで,領域長を判定した後に,従来技
術のように領域全体の検査を行うのか,本発明による検
査を行うのか,動的に切り分けるようにすると,領域長
が小さい場合にも効率的に領域検査を実行することがで
きる。
第2図は本発明の一実施例処理フロー,第3図は本発
明と従来技術との性能比較の例を示す。
明と従来技術との性能比較の例を示す。
本発明による検査の処理の流れは,例えば第2図に示
す(a)〜(g)のようになる。
す(a)〜(g)のようになる。
(a)まず,検査する領域長が64バイトより長いかどう
かを判定する。この例では,計算機の特性により,管理
単位ごとの検査か一括検査かの切り分けを,領域長が64
バイトを超えるかどうかで行っている。64バイト以下の
場合,処理(g)へ移る。
かを判定する。この例では,計算機の特性により,管理
単位ごとの検査か一括検査かの切り分けを,領域長が64
バイトを超えるかどうかで行っている。64バイト以下の
場合,処理(g)へ移る。
(b)検査アドレスに,領域先頭アドレスを入れる。文
字移動命令(MVC命令)にり,検査アドレスの指す領域
の1バイトの書き込み検査を行う。
字移動命令(MVC命令)にり,検査アドレスの指す領域
の1バイトの書き込み検査を行う。
(c)最終アドレスに,(先頭アドレス+領域長−1)
を入れる。MVC命令により,最終アドレスの指す領域の
1バイトの書き込み検査を行う。
を入れる。MVC命令により,最終アドレスの指す領域の
1バイトの書き込み検査を行う。
(d)検査アドレスに,ページ長(4096)を加える。
(e)検査アドレスが,最終アドレスより小さいかどう
かを判定する。小さくない場合,検査を終了する。
かを判定する。小さくない場合,検査を終了する。
(f)MVC命令により,検査アドレスの指す領域の1バ
イトの書き込み検査を行う。その後,処理(d)へ戻
り,同様に処理を繰り返す。
イトの書き込み検査を行う。その後,処理(d)へ戻
り,同様に処理を繰り返す。
(g)領域長が64バイト以下の場合,文字移動命令(MV
C命令)により,すべての領域の書き込み検査を行う。
その後,検査終了とする。
C命令)により,すべての領域の書き込み検査を行う。
その後,検査終了とする。
以上の処理において,プログラム例外が生じた場合,
所定の出口ルーチンで,領域指定誤りの復帰コードを設
定し,呼び出し元のユーザプログラムに復帰する。
所定の出口ルーチンで,領域指定誤りの復帰コードを設
定し,呼び出し元のユーザプログラムに復帰する。
以上の処理を,代表的なアセンブリ言語で記述する
と,コーディングは例えば次のようになる。なお,検査
対象の先頭領域をA,領域長をLとする。
と,コーディングは例えば次のようになる。なお,検査
対象の先頭領域をA,領域長をLとする。
LA 3,A ・・・ L 1,L ・・・ CH 1,=H′64′ ・・・ BNH LABEL1 ・・・ MVC 0(1,3),0(3) ・・・ LR 4,3 ・・・ AR 4,1 ・・・ BCTR 4,0 ・・・ MVC 0(1,4),0(4) ・・・ LAVEL2 AH 3,=H′4096′ ・・・ CR 3,4 ・・・ BNL EXIT ・・・ MVC 0(1,3),0(3) ・・・ B LABEL2 ・・・ LAVEL1 BCTR 1,0 ・・・ EX 1,MVC1 ・・・ B EXIT ・・・ MVD1 MVC 0(0,3),0(3) ・・・ EXIT EQU * ・・・ 以上の命令は,それぞれ次の意味を持つ。
LA :LOAD ADDRESS L :LOAD CH :COMPARE HALFWORD BNH :BRANCH NOT HIGH MVC :MOVE CHRACTERS LR :LOAD REGISTER AR :ADD REGISTER BCTR:BRANCH ON COUNT AH :ADD HALFWORD CR :COMPARE RESISTER BNL :BRANCH NOT LOW B :BRANCH EX :EXECUTE EQU :アドレス指定のアセンブラ用擬似命令 以上の命令列〜は,ほぼ第2図に示す処理(a)
〜(g)に対応しているので,詳細に説明するめでもな
いであろう。の命令は,領域長が64バイトを超えるか
どうかを判定している。・の命令により,領域長が64
バイト以下の場合,の命令へ分岐する。の命令は,
領域の先頭アドレス部分を検査している。の命令は,
領域の最終アドレス部分を検査している。の命令によ
り,途中領域を1バイトずつ検査している。()の
命令では,64バイト以下の場合の一括検査を行ってい
る。
〜(g)に対応しているので,詳細に説明するめでもな
いであろう。の命令は,領域長が64バイトを超えるか
どうかを判定している。・の命令により,領域長が64
バイト以下の場合,の命令へ分岐する。の命令は,
領域の先頭アドレス部分を検査している。の命令は,
領域の最終アドレス部分を検査している。の命令によ
り,途中領域を1バイトずつ検査している。()の
命令では,64バイト以下の場合の一括検査を行ってい
る。
領域の検査完了までの実行時間は,例えば,以下のと
おりである。領域長をl,ある基準となる命令の実行時間
を1とする。
おりである。領域長をl,ある基準となる命令の実行時間
を1とする。
従来技術:88+l 本実施例: l≧64の場合 52+(l/4096)×26 l<64の場合 46+6×l 従来技術と,本実施例による検査の実行時間を,グラ
フで表すと,第3図に示すようになった。第3図におい
て,横軸が領域長,縦軸が実行時間を表している。●で
示したものが従来技術,□で示したものが本実施例によ
るものである。
フで表すと,第3図に示すようになった。第3図におい
て,横軸が領域長,縦軸が実行時間を表している。●で
示したものが従来技術,□で示したものが本実施例によ
るものである。
なお,以上の例は,検査の対象となる領域の領域長
が,実行時にしかわからない場合であるが,インタフェ
ース上で領域長が規定されている場合には,以下の方法
により,さらに高速化することができる。
が,実行時にしかわからない場合であるが,インタフェ
ース上で領域長が規定されている場合には,以下の方法
により,さらに高速化することができる。
(1)本処理論理をアセンブラマクロ化し,マクロパラ
メタとして,長さを指定する。
メタとして,長さを指定する。
(2)アセンブラマクロ内で長さを判定し,領域検査部
分のみのアセンブラ命令を展開する。
分のみのアセンブラ命令を展開する。
例えば,分散処理システム等において,ユーザプログ
ラムが指定する受信データを格納するための領域の領域
長は,通常の場合,4096バイト以上であることが多く,
第3図から明らかなように,大幅な性能向上が可能にな
る。
ラムが指定する受信データを格納するための領域の領域
長は,通常の場合,4096バイト以上であることが多く,
第3図から明らかなように,大幅な性能向上が可能にな
る。
以上説明したように,本発明によれば,従来技術に比
べて,処理ステップ数が増加するが,領域長が大きい場
合における実行時間を大幅に短縮することができるよう
になり,処理性能の向上が可能になる。また,ユーザプ
ログラム等が,領域長を誤って長く指定した場合に,従
来技術では,先頭から1バイトずつ全データを移動して
いくために,領域不当を検出するまでに時間がかかる
が,本発明では,早期に検出することができる。
べて,処理ステップ数が増加するが,領域長が大きい場
合における実行時間を大幅に短縮することができるよう
になり,処理性能の向上が可能になる。また,ユーザプ
ログラム等が,領域長を誤って長く指定した場合に,従
来技術では,先頭から1バイトずつ全データを移動して
いくために,領域不当を検出するまでに時間がかかる
が,本発明では,早期に検出することができる。
第1図は本発明の原理説明図, 第2図は本発明の一実施例処理フロー, 第3図は本発明と従来技術との性能比較の例, 第4図は本発明の適用対象となる領域検査が必要になる
システムの例, 第5図は従来技術の処理フローを示す。 図中,10は計算機システム,11は領域検査部,12はユーザ
プログラム,13はパラメタ,14は領域を表す。
システムの例, 第5図は従来技術の処理フローを示す。 図中,10は計算機システム,11は領域検査部,12はユーザ
プログラム,13はパラメタ,14は領域を表す。
Claims (1)
- 【請求項1】計算機システムにおけるデータ転送処理に
おいてデータ書き込み先として指定された記憶領域が,
データの書き込みが可能な領域であるか否かを,実際の
データ転送処理に入る前に,上記指定された記憶領域に
対し検査用の書き込みを行うことによって検査する記憶
領域の書き込み検査処理方法において, 検査する記憶領域内の先頭部分について,1バイトまたは
1ワード分の書き込みによる検査を行う処理過程(P1)
と, 検査する記憶領域内の最終部分について,1バイトまたは
1ワード分の書き込みによる検査を行う処理過程(P2)
と, 検査する記憶領域内における領域の管理単位ごとに,各
1バイトまたは1ワード分ずつの書き込みによる検査を
行う処理過程(P3)とを備え, 上記すべての検査に合格したときに,書き込み可能と判
断することを特徴とする記憶領域の書き込み検査処理方
法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1188272A JP2504570B2 (ja) | 1989-07-20 | 1989-07-20 | 記憶領域の書き込み検査処理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1188272A JP2504570B2 (ja) | 1989-07-20 | 1989-07-20 | 記憶領域の書き込み検査処理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0352047A JPH0352047A (ja) | 1991-03-06 |
JP2504570B2 true JP2504570B2 (ja) | 1996-06-05 |
Family
ID=16220764
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP1188272A Expired - Fee Related JP2504570B2 (ja) | 1989-07-20 | 1989-07-20 | 記憶領域の書き込み検査処理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2504570B2 (ja) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06105442B2 (ja) * | 1985-03-19 | 1994-12-21 | ソニー株式会社 | マイクロコンピユ−タ |
JPS63255751A (ja) * | 1987-04-13 | 1988-10-24 | Sharp Corp | メインメモリ容量自動検出装置 |
-
1989
- 1989-07-20 JP JP1188272A patent/JP2504570B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH0352047A (ja) | 1991-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4584640A (en) | Method and apparatus for a compare and swap instruction | |
US4710866A (en) | Method and apparatus for validating prefetched instruction | |
EP0128156B1 (en) | Data processor version validation | |
EP0094535B1 (en) | Pipe-line data processing system | |
US4757445A (en) | Method and apparatus for validating prefetched instruction | |
JPH0810437B2 (ja) | 仮想計算機システムのゲスト実行制御方式 | |
JP2504570B2 (ja) | 記憶領域の書き込み検査処理方法 | |
JP2922723B2 (ja) | 情報処理装置 | |
JPH02123442A (ja) | 高速化メモリ | |
KR950000088B1 (ko) | 데이터처리시스템 | |
EP0655686B1 (en) | Retry control method and device for control processor | |
JPH0954694A (ja) | パイプラインプロセッサおよびその処理方法 | |
JP2616542B2 (ja) | 疑似障害発生システム | |
JPS5896345A (ja) | 階層型演算方式 | |
EP0155275B1 (en) | Prefetch validation | |
JP3130798B2 (ja) | バス転送装置 | |
JP3123946B2 (ja) | マイクロコンピュータ | |
JPS6242301B2 (ja) | ||
JP3014701B2 (ja) | 情報処理装置 | |
JPH0535499A (ja) | データ処理装置及びデータ処理方法 | |
JPS61100836A (ja) | 移動命令論理比較命令処理方式 | |
JPS6012656B2 (ja) | リトライ制御方式 | |
JPS59129995A (ja) | 記憶装置 | |
JPS63214856A (ja) | デ−タ処理装置のデ−タ保護制御方式 | |
JPH0756846A (ja) | 入出力制御装置及びマイクロプロセッサ及びデータ処理システム並びにデータの転送方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |