JP3590075B2 - 仮想記憶方式のデータ処理装置及び方法 - Google Patents
仮想記憶方式のデータ処理装置及び方法 Download PDFInfo
- Publication number
- JP3590075B2 JP3590075B2 JP14752992A JP14752992A JP3590075B2 JP 3590075 B2 JP3590075 B2 JP 3590075B2 JP 14752992 A JP14752992 A JP 14752992A JP 14752992 A JP14752992 A JP 14752992A JP 3590075 B2 JP3590075 B2 JP 3590075B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- interrupt
- memory
- instruction
- page
- 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
- 238000012545 processing Methods 0.000 title claims description 45
- 238000000034 method Methods 0.000 title description 19
- 230000015654 memory Effects 0.000 claims description 87
- 238000012546 transfer Methods 0.000 claims description 19
- 230000008569 process Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 238000001514 detection method Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000013519 translation Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000002457 bidirectional effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000002401 inhibitory effect Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/383—Operand prefetching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
【産業上の利用分野】
本発明は、仮想記憶方式を備えた計算機に係り、特に、ページフォルト等の発生による誤動作を防止する仮想記憶制御方式に関する。
【0002】
【従来の技術】
計算機における処理の中には、一体不可分に(途切れることなく一体的に)実行されなければならないものがある。このような処理を不可分動作という。
この不可分動作を、メモリM1,M2の内容の論理積をレジスタR3に記憶させる動作を例に、図12を参照して説明する。
【0003】
プログラム13は、メモリM1の内容をレジスタR1に記憶させ、メモリM2の内容をレジスタR2に記憶させる。次に、プログラム13は、レジスタR1とレジスタR2との論理積をレジスタR3に記憶させる。
【0004】
ここで、例えば、メモリM1の内容をレジスタR1に記憶させた直後に割込みが発生し、割込み処理15がメモリM1およびメモリM2の内容を変更すると、メモリM2の内容が割込み発生前後で異なるため、レジスタR2に保持されるデータが所期の値と異なり、演算結果が誤りとなる。このため、メモリM1,M2の内容をレジスタR1,R2に記憶し、論理積をレジスタR3に記憶する一連の動作は、途中に割込み動作なく、一体不可分に実行されなければならない。
【0005】
【発明が解決しようとする課題】
上述の不可分動作を達成するために、不可分動作の実行前に割込み禁止命令を実行し、不可分動作終了後割込み禁止を解除する手法を取ることが考えられる。しかし、このような手法を取ったとしても、禁止できない割込みの発生により、不可分動作中の割込みを完全に禁止することはできない。例えば、デマンドページング方式の仮想記憶計算機においては、ページフォルト割込みは禁止できない。このため、割込み禁止命令を実行したにもかかわらず、上述のメモリM2を読み出す際にページフォルト割込みが発生し、割込み処理の終了後、他の優先度の高いプログラムに処理が移行し、この優先度の高いプログラム中でメモリM2の内容が操作されてしまう可能性がある。
【0006】
このような問題を回避するため、従来、不可分動作はソフトウエアで疑似的にメモリインタロックを取ることにより実現したり、システムコールより実現したり、ファームウェアやハードウエアにより不可分動作を1つの命令として実行することにより実現したりしていた。
【0007】
しかし、ソフトウエアによる疑似メモリ・インタロックにより不可分動作を実行する場合、インタロックのためのオーバーヘッドを伴い、システムコールによる不可分動作を実行する場合は、システムコール(スーパバイザリコール割込み)のオーバーヘッドを伴う。不可分動作が比較的単純な場合、オーバーヘッドの性能への影響は少なくない。
【0008】
また、不可分動作をハードウェア又はファームウェアによりサポートすると、命令の組合せに自由度がなく、特定目的のために特定命令を使用しなければならなかった。また、特定目的のために、特定命令を使用するので、ハードウェア又はファームウェアの設計量が増加し、一命令の実行時間が長くなり、システムの性能が低下する問題があった。さらに、ハードウエア又はファームウエアの設計量が増えるため、システムの信頼性が低下する。このような問題は、特に、RISC型計算機で顕著である。
この発明は、上記実情に鑑みてなされたもので、その目的は不可分動作を実行することのできる仮想記憶方式の計算機及び計算方法を提供することである。
【0009】
この発明の他の目的は、不可分動作中のページフォルト割込み等の禁止できない或いは禁止してはいけない割込みの発生を未然に防止することができる仮想記憶方式の計算機及び計算方法を提供することである。
【0010】
この発明の他の目的は、ハードウェア又はファームウェアの設計量を最小限にすることにより、設計性能を向上した仮想記憶方式の計算機及び計算方法を提供することである。
【0011】
【課題を解決するための手段】
上記目的を達成するため、この発明の第1の観点にかかる仮想記憶方式のデータ処理方法は、中断されることなく一体不可分に実行されるべき動作である不可分動作を定義するソフトウエアプログラムに含まれる擬似ストア命令により、前記不可分動作においてアクセスされるべきデータがメモリ上に存在するか否かをチェックし、存在しない場合に必要なデータを前記メモリ上に確保する確保工程と、前記メモリ上に必要なデータを確保してから前記不可分動作を実行する実行工程、を備えることを特徴とする。
【0013】
この発明の第2の観点にかかる仮想記憶方式のデータ処理装置は、データを記憶する第1の記憶手段と、前記第1の記憶手段の記憶内容の一部の写しを記憶する第2の記憶手段と、前記第2の記憶手段をアクセスする命令を含み、中断なく一体に実行されるべき不可分動作を定義する命令セットと前記第2の記憶手段上に任意のデータを確保するために前記第2の記憶手段をアクセスする特定命令を含むプログラムを記憶する第3の記憶手段と、前記第3の記憶手段に記憶されたプログラムを実行する実行手段と、前記第1と第2の記憶手段に接続され、前記実行手段に応答し、前記第2の記憶手段上に被アクセスデータが存在しない場合、前記第1の記憶手段から前記第2の記憶手段に被アクセスデータを転送する手段と、不可分動作の実行に先立ち、前記特定命令を実行することにより不可分動作の実行に必要となるデータを予め第2の記憶手段に呼び出しておくことにより不可分動作実行中の割込みの発生を防止し、不可分動作を実現する手段、を備えることを特徴とする。
【0015】
【作用】
この発明の第1、第2の観点にかかるデータ処理方法及びデータ処理装置によれば、不可分動作の実行前に必要なデータが準備される。このため、不可分動作中で必要なデータが存在しないことによる割込み、例えば、ページフォルト割込み等の発生を防止でき、不可分動作をソフトウエアで実現できる。
【0017】
【実施例】
以下、本発明の実施例を図面を参照して説明する。
図1は本発明の第1実施例を示す機能ブロック図である。
【0018】
図1において、メモリ1は主記憶装置であり、後述するメモリ書込み要求プログラム5により記憶している内容が書換えられる。補助記憶装置3は大容量の補助記憶装置であり、ページ単位でデータを記憶し、メモリ1との間でページイン及びページアウトを行なう。各ページは、例えば、2キロバイト(2KB)のデータ群から構成される。
【0019】
メモリ書込み要求プログラム5は、ストア命令、リード命令、演算命令等の通常のデータ処理を行う命令と共に本発明に特有の疑似ストア命令を含み、一連のデータ処理を定義する。
【0020】
アドレス変換割込み検出機構7は、メモリ書込み要求プログラム5の処理に応答してメモリ1にアクセスの対象となる所望のページが存在するか否かを検出するものであり、該当ページがメモリ1上に存在しない場合には、ページフォルトを検出し、オペレーティングシステム9に制御を渡す。
【0021】
オペレーティングシステム(以下、OSという。)9はアドレス変換割込み検出機構7によるページフォルトの検出に応答して、メモリ書込み要求プログラム5がアクセスすべきページをメモリ1に転送する。OS9は転送が終了すると優先度の高いプログラム、例えば、OS上で動作するアプリケーションプログラムのうち、その時点で優先度が最も高いものに制御を渡す。
【0022】
次に、本実施例に特有の疑似ストア命令を通常のストア命令と比較しつつ図2を参照して説明する。疑似ストア命令(PST、Pseudo STore)は、実際にデータの書き込みを行わない疑似的なストア命令である。換言すると、疑似ストア命令は、メモリ1上に必要なページを確保する命令である。
【0023】
ここで、例えば、仮想アドレスa0、a1、a2、a3がそれぞれ仮想記憶空間上のページA0、A1、A2、A3に含まれると仮定すると、図2(a)に示されるPST(a0)はメモリ1上にページA0を確保するための疑似ストア命令であり、以下、PST(a1)はページA1を、PST(a2)はページA2を、PST(a3)はページA3をそれぞれ、メモリ1上に確保する疑似ストア命令である。
【0024】
例えば、メモリ1上にページA0が存在しない状態で、PST(a0)が実行されると、アドレス変換割込み検出機構7はページフォルトを検出し、OS9は補助記憶装置3にページA0が存在する場合には、補助記憶装置3からメモリ1にページA0のデータを転送する。また、OS9は補助記憶装置3にページA0が存在しない場合には、メモリ1にページA0用の領域を確保する。
【0025】
次に、本実施例で使用するストア命令(ST)を図2(b)を用いて説明する。ストア命令は、データを記憶しているレジスタを示す値と仮想アドレスをパラメータとして有し、指示されたレジスタの保持データを指示されたアドレスに書き込む命令である。図2(b)において、ST(レジスタ値0,a0)は、レジスタR0のデータをページA0内のアドレスa0にストアする。ST(レジスタ値1,1a)は、レジスタR1のデータをページA1内のアドレスa1にストアする。ST(レジスタ値2,a2)は、レジスタR2のデータをページA2内のアドレスa2にストアする。ST(レジスタ値3,a3)は、レジスタR3をページA3内のアドレスa3にストアする。
次に、本実施例におけるデータ処理の流れを図3を参照して説明する。
【0026】
本実施例においては、不可分動作を複数の基本命令の組み合わせで実行するため、不可分動作のプログラムの前に対応する疑似ストア命令を配置する。換言すると、本実施例の仮想記憶方式の計算機はストア命令を含む不可分動作を実行する直前に、不可分動作に含まれるストア命令に対応する疑似ストア命令を実行する。
【0027】
例えば、不可分動作が図2(b)に示すストア命令ST(レジスタ値0,a0)、ST(レジスタ値1,a1)、ST(レジスタ値2,a2)、ST(レジスタ値3,a3)を含む場合、ユーザーはこの不可分動作を定義するプログラムの直前に対応する疑似ストア命令PST(a0)、PST(a1)、PST(a2)、PST(a3)を配置する。
【0028】
このため、計算機は、不可分動作を実行する前に、PST(a0),PST(a1),PST(a2)およびPST(a3)を実行し、メモリ1上にページA0,ページA1,ページA2,ページA3が存在するか否かをチェックする。仮に、例えば、ページA1がメモリ1上に存在しないと、アドレス変換割込み検出機構7はページA1についてページフォルトを検出し、OS9に制御を渡す。OS9は、ページA1をメモリ1に確保し、ページA1の初期値データまたは過去にページA1へのデータの書き込みがあった場合はそのデータをそのページへ転送する。なお、OS9は、ページA1へのデータ転送の間、その時点で最も優先度の高い他のプログラムに制御を渡すが、やがて、データ転送が完了し、プログラム5に制御が戻る。
【0029】
その後、メモリ書込み要求プログラム5は、メモリ1にデータを書込むストア命令STを含む不可分動作を実行する。メモリ1にデータを書き込む際、必要なページは疑似ストア命令の実行により予めメモリ1に用意されているため、不可分動作中でのページフォルト割込みの発生を防止できる。
次に、本実施例を双方向にキューを構成するエレメントA,Cの間にエレメントBを挿入する処理に応用した例を図4に示す。
【0030】
図4(a)は双方向にキューを構成するエレメントA,Cを、図4(b)はエレメントA,Cの間にエレメントBを挿入した状態を、図4(c)はその挿入プログラムの例を示す。
【0031】
エレメントA,B,Cの正方向のデータチェーンに使用される領域のアドレスをA1,B1,C1、逆方向のデータチェーンに使用される領域のアドレスをA2,B2,C2とする。
【0032】
エレメントAとCの間にエレメントBを配置するためには、正方向のデータチェーンの場合には、エレメントAからのチェーン先のアドレスをB1,エレメントBからのチェーン先をアドレスC1とすればよく、逆方向のデータチェーンの場合には、エレメントCからのチェーン先のアドレスをB2,エレメントBからのチェーン先のアドレスをA2とすればよい。そこで、ストア命令ST(C1,B1),ST(A2,B2),ST(B1,A1),ST(B2,C2)を実行して、各エリアの転送先アドレスを書き替える。この転送先アドレスの書き替えの途中でページフォルトが発生し、割込み処理に制御に移り、この割込み処理がキューを操作するとキュー構造が破壊される。このため、前記4つのストア命令は一体不可分に実行されなければならない。
【0033】
そこで、本例では、図4(c)に示されるように、ストア命令の実行前に疑似ストア命令PST(B1),PST(B2),PST(A1),PST(C2)を予め実行しておき、メモリ1に必要なページを呼び出しておく。その後、ストア命令ST(C1,B1),ST(A2,B2),ST(B1,A1),ST(B2,C2)を実行して、必要なデータ(転送先アドレス)をメモリに書込む。このようにすれば、疑似ストア命令の実行により、ストア命令の実行時に不可分動作で必要なページが予めメモリに呼びされており、不可分動作中でのページフォルトの発生を防止できる。
【0034】
第1実施例の構成では、ページフォルト割込み処理の終了後、優先度の高い他のプログラムに制御が移り、他のプログラムがメモリを大量に使用した場合等に、不可分動作が保証されない可能性がある。この点を、図5を参照し、ストア命令ST(a0),ST(a1),ST(a2)によりページA0,A1,A2にデータを書き込むプログラム5を実行する場合を例に説明する。
【0035】
まず、プログラム5は疑似ストア命令PST(a0),PST(a1),PST(a2)を実行してページA0,A1,A2がメモリ1上に確保されていることをチェックする。例えば、ページA2にページフォルトが検出されると、OS9に制御が渡り、OS9はメモリ1上にページA2を確保する。ここで、ページA2を確保した時点で、マルチタスク処理や非同期割込み処理等のため、プログラム5より優先度の高いプログラム11が存在すると、OSは優先度の高いプログラム11に制御を渡す。このプログラム11が例えば、メモリを大量に使用してシステムのワーキングセットを圧迫したため、ページA1がメモリ1から追い出されたと仮定する。その後、プログラム5に制御が戻り、例えば、ページA1にデータを書き込むストア命令ST(a1)を実行すると、ページフォルトが発生し、不可分動作が保証できない。
この問題に関しては、以下のような対策が考えられる。
【0036】
第1に、疑似ストア命令の実行によりページフォルトが検出された場合、割込み処理からリターンした時に、疑似ストア命令によるページのチェックを最初から行うようにすることである。また、第2に、疑似ストア命令を実行することによりメモリ1に確保されたページを、不可分動作中のストア命令の実行完了までメモリ1上に確保しておくことである。そこで、以下、このような対策を施した第2実施例を説明する。
第2実施例
【0037】
この第2実施例におけるデータ処理の流れを図6を参照して説明する。まず、計算機は、不可分動作を実行するため、割込み禁止(または保留)命令を発行し、実行する。割込み禁止命令の発行と同時にまたはそれ以前に、割込み処理からの復帰先をこの割込み禁止命令とするために必要なデータ(プログラムカウンタの値)を復帰先レジスタ21に格納する。つぎに、割込み禁止状態においても禁止できないまたは禁止してはならない特定割込みが発生し得る命令を含むプログラムを実行する。その後、割込み禁止状態を解除する。
特定割込みが発生した場合、割込み処理23終了後、復帰先レジスタ21の内容を参照し、割込み禁止命令に復帰する。
【0038】
このような処理手順を採用すれば、割込み処理23が完了する度に、プログラム5が割込み禁止命令から再実行される。最終的に、特定割込みが発生しなくなった時点で、割込み禁止命令から割込み禁止解除命令までのプログラムが一体不可分に実行される。
【0039】
そこで、この第2実施例では、割込み禁止命令の発行から特定の割込みが発生しうる命令のうち最後の命令までを再実行可能とする。これにより、割込み禁止命令から割込み禁止解除命令までの不可分動作が保証される。
次に、デマンド・ページング方式を採る計算機にこの第2実施例を適用した例について図7を参照して説明する。
【0040】
デマンド・ページング方式を採る計算機では、割込み禁止または保留状態においても、ロード命令やストア命令等のメモリ・アクセスを伴う命令の実行に伴なうページ・フォルト割込みの発生は許可せざるを得ない(本明細書においては、アドレス変換割込みが発生する場合等も含めて、ページフォルトに起因する割込みを総称してページフォルト割込みと呼ぶこととする)。
【0041】
図7において、ソフトウエアで不可分動作を実現するため、メモリ書き込み要求プログラム5は以下のように構成される。まず、不可分動作部分はA部とB部の2つの部分に分けられる。
【0042】
B部は実行したい一体不可分動作のうち少なくともストア命令を含む部分であり、A部はストア命令を含まない部分である。A部はB部に含まれるストア命令に対応する疑似ストア命令を含む。A部の先頭に割込み禁止命令dint(Disable INTerrupt)が配置され、B部の最後に割込み禁止解除命令eint(Enable INTerrupt) が配置される。A部を繰り返し実行しても、A部の先頭において参照するレジスタの値は変化せず、メモリ1へのデータの書込みは行なわれない。即ち、このAの部分は再実行可能である。
例えば、B部には図2(b)に示されるストア命令が配置され、A部にはその他の命令と共に図2(a)に示される疑似ストア命令が配置される。
次に、上記メモリ書き込み要求プログラム5のうち不可分動作部分Cの実行手順について説明する。
【0043】
メモリ書き込み要求プログラム5は割込みを禁止または保留する命令dintを発行(実行)する。この割込み禁止に応答して、システムはこの割込み禁止命令dintのアドレスを復帰先レジスタR31に保存する。
【0044】
次に、システムはA部のプログラムを実行する。A部の処理中にページ・フォルトが発生すると、ページ・フォルト割込みによってディスパッチャ33に制御が移る。通常、システムはページフォルト割込み処理からの復帰時の復帰先アドレスとして、割込み発生時のプログラムカウンタの保持値をセーブする。しかし、本例では、割込み禁止または保留状態であるため、システムは割込み処理からの復帰時の復帰先アドレスとして、復帰先レジスタR31の保持データをセーブする。こうすることにより、前記のページフォルト割込みからの復帰時、処理が前記dintから再実行される。
その後、ディスパッチャ33は、必要なページを補助記憶装置3からメモリ1に転送する。
【0045】
転送終了後、ディスパッチャ33はプログラム5に制御を戻す。プログラム5に制御を戻す直前で、ディスパッチャ33は非同期割込み(外部割込み)が発生しているか否かをチェックする。非同期割込みが発生していない場合、セーブされた復帰先データに基づいて、データ処理が割込み禁止命令dintから再開される。
【0046】
ディスパッチャ33がプログラム5に対する非同期割込みが発生しているか否かをチェックした時点で、非同期割込みが発生しており、非同期割込みが発生した時に実行すべき非同期割込みルーチン35が定義されている(ユーザがソースプログラムに記述している)場合、制御は非同期割込みルーチン35に移る。非同期割込みルーチン35の処理が終了すると、制御がメモリ書き込み要求プログラム5に移り、セーブされた復帰先データに基づいて、割込み禁止命令dintから処理が再開される。
【0047】
A部の実行段階でページ・フォルトが発生しなければ、そのままB部のプログラムが実行される。B部でロード命令やストア命令等メモリ・アクセスを伴う命令が発行されても、A部で疑似ストア命令が実行されているので、同命令のアクセス対象領域はメモリ1上に確保されている。このため、ページ・フォルト及びそれに伴う割込みは発生しない。その結果、A部とB部を含むC部がページ・フォルトを発生することなく実行される。
【0048】
上記構成においても、A部のプログラムを実行している途中でページ・フォルト割込みが発生し、非同期割込みルーチン35がメモリ1の内容を変更するような事態が発生しうる。しかし、非同期割込みルーチン35からの復帰先が割込み禁止命令であり、割込み禁止命令dintからメモリ書き込み要求プログラム5の処理が再開されるので、メモリ書き込み要求プログラム5の処理に矛盾を生じない。
第3実施例
以下、図8乃至図11を参照して、この発明の第3実施例を説明する。
【0049】
システムバス41を介してシステム制御ユニット(SCU、System Control Unit)43,ファイル制御プロセッサ(FCP、File Control Processor) 45,メモリ47、端末制御プロセッサ(TCP、Terminal Control Processor) 48、出力装置49が接続されている。システム制御ユニット43には演算制御プロセッサ(ACP,Arithmetic Control Processor) 51が接続され、ファイル制御プロセッサ45には、ディスク装置等の補助記憶装置53が接続される。
【0050】
演算制御プロセッサ51は、命令バッファ、キャッシュメモリ、TLBを備え、プログラムに従って、演算動作を行う。システム制御ユニット43はプログラムに従って、システム全体の動作を制御する。
【0051】
ファイル制御プロセッサ45はシステム制御ユニット43の制御のもとに、補助記憶装置53へのデータの入出力、例えば、補助記憶装置53とメモリ47間のデータのDMA転送等を実行する。
【0052】
メモリ47は、ディスパッチャプログラムを含むオペレーテングシステム(OS)を記憶した領域、データを記憶した領域、ユーザーが使用できる領域を備える。このユーザーが利用できる領域には、メモリ書き込み要求プログラムP3や他のプログラムが記憶されている。
出力装置49は演算制御プロセッサ51の演算結果等を出力する。
【0053】
図8に示される記憶装置は、その容量と動作速度から図9に示されるように分類される。命令バッファは最も高速で、小容量であり、以後、キャッシュメモリ、メモリ47、補助記憶装置53の順で低速、大容量となる。
【0054】
メモリ47は補助記憶装置53に記憶されたデータの一部をブロック(例えば、ページ)単位で記憶し、キャッシュメモリはメモリ47に記憶されたデータの一部をブロック単位で記憶し、命令バッファはキャッシュメモリに記憶された命令のうち実行されるべきものを記憶する。
【0055】
次に、図10に示されるプログラムを実行する場合を例に、図8に示されるシステムの動作を図11を参照して説明する。なお、図11はプログラムP3と対応する処理を関連付けて示すフローチャートである。
演算制御プロセッサ51はシステム制御ユニット43の制御下にプログラムP3の命令を順次取り込み、解読し、実行する。
【0056】
処理が進み、演算制御プロセッサ51が割込み禁止命令dintをフェッチすると、演算制御プロセッサ51は割込みを禁止し(ステップS1)、命令アドレスL2、プログラムステータスワード、各レジスタの保持値等のアドレスL2への復帰に必要なデータをレジスタR41に保持する(ステップS2)。
【0057】
さらに処理が進み、演算制御プロセッサ51が疑似ストア命令を取り込むと、演算制御プロセッサ51は疑似ストア命令により指定されたページがメモリ47上に存在するか否かをTLBを参照してチェックする(ステップS3)。TLBに当該ページのエントリが存在しなければ、メモリ47上のページテーブル又はセグメントテーブルを参照して当該ページに関するアドレス変換情報をTLBの空きエントリに登録して、同様にチェックする。チェックの結果、疑似ストア命令により指定されたページがメモリ47上に存在する場合、フローは次の命令の処理に移る。
【0058】
指定されたページがメモリ47上に存在しない場合、演算制御プロセッサ51はページフォルト割込みを発行する。このとき、割込みスタックに復帰情報(プログラムステータスワード等)をセーブする。この復帰情報のうち復帰先アドレスとして、その時のプログラムカウンタの値に代えてレジスタR41に保持されたアドレスL2をスタックにセーブする(ステップS11)。
【0059】
その後、ページフォルト割込みハンドラに制御が移り、演算制御プロセッサ51はページング処理(ステップS12)を実行する。このページング処理において、演算制御プロセッサ51はメモリ47上のページキャッシュ(ソフト的に実現したページのキャッシュ機構)をチェックし、メモリ47のページキャッシュ領域に指定されたページが存在するか否かをチェックする。メモリ47のページキャッシュ領域に指定されたページが存在する場合、ページング処理ルーチン、即ち、ページャは、その領域のページを有効にする。
【0060】
メモリ47のページキャッシュ領域に指定されたページが存在しない場合、ページング処理ルーチンはページ領域を確保する。さらに、ページング処理ルーチンはそのページのデータの初期値がある場合又は以前書き込みがあった場合、システム制御ユニット43を介してファイル制御プロセッサ45を制御して、補助記憶装置53からメモリ47へファイル制御プロセッサ45により当該ページデータをDMA転送させる。
【0061】
ページング処理(ステップS12)終了後、前記補助記憶装置53からメモリ47へのデータ転送が起こらなかった場合、演算制御プロセッサ51はスタックにセーブしていたdint命令のアドレスL2をプログラムカウンタにセットし、レジスタデータ等を元の場所にセットする(ステップS14)。これにより、演算制御プロセッサ51はプログラムP3をdint命令から再実行する。
【0062】
前記データ転送が起こった場合、演算制御プロセッサ51は他の優先度の高いプログラムに制御を移す。やがて、前記データ転送が終了し、プログラムP3に制御が戻る。その直後で、演算制御プロセッサ51はシステム内の特定の領域に記録された割込み発生状況をチェックし、プログラムP3に対する非同期割込み(外部割込み)が存在するか否かをチェックする(ステップS13)。その非同期割込みが存在しない場合には、演算制御プロセッサ51はスタックにセーブしていたdint命令のアドレスL2をプログラムカウンタにセットし、レジスタデータ等を元の場所にセットする(ステップS14)。これにより、演算制御プロセッサ51はプログラムP3をdint命令から再実行する。
【0063】
ステップS13でプログラムP3に対する非同期割込みが存在すると判定された場合、同プログラムの固有情報領域を調べて同プログラムにその非同期割込み要因(同プログラム自身が発行したデスクIOの完了割込みやタイマ割込み等)に対応する非同期割込みルーチンが定義されていることが判明した場合、フローは非同期割込みルーチンに移る。
【0064】
演算制御プロセッサ51は非同期割込み処理を実行する(ステップS21)。非同期割込み処理終了後、演算制御プロセッサ51はプログラムカウンタにセーブしていたdint命令のアドレスL2をセットし、レジスタデータ等を元の場所にセットする(ステップS22)。これにより、演算制御プロセッサ51はプログラムP3をdint命令から再実行する。
以上のようにして、メモリ書き込み要求プログラムP3の処理がdintから再実行される。
演算制御プロセッサ51は、疑似ストア命令をフェッチする度に上述の処理を繰り返す。
【0065】
そして、全ての疑似ストア命令がページフォルトの発生なく、実行された時点で、ストア命令を実行するために必要なページが全てメモリ47上に揃う。よって、割込み禁止命令dintから割込み禁止解除命令eintまでの命令をページフォルトの発生なく、一体不可分に実行できる。
【0066】
なお、ロード又はストア対象データがキャッシュメモリになかった場合、そのデータを含むデータブロックがメモリ47から転送されるが、この転送には割込みは伴わない。
【0067】
最後に、割込み禁止解除命令eintがフェッチされると、演算制御プロセッサ51は割込み禁止状態を解除する(ステップS5)。以後、プログラムP3の処理が続行される。
【0068】
本願発明は上記実施例に限定されず、種々の変更が可能である。例えば、第2、第3実施例では、復帰先を割込み禁止命令のアドレスとしたが、一体不可分動作を実現できるならば、他のアドレスを復帰先としてもよい。たとえば、第3実施例において、割り込み禁止後のデータ処理のスタート点であるアドレスL2+1を復帰先アドレスとしてもよい。
【0069】
上記実施例では、ページを単位としてデータを処理する計算機に本願発明を適用した例を示したが、本願発明は、他のデータブロック、例えば、セグメント単位でデータを処理する計算機にも適用できる。
【0070】
上記実施例では、ソフトウエアで不可分動作を実現するために、疑似ストア命令PSTを設け、これを不可分動作の前に実行したが、不可分動作を実行するために必要なページまたはデータブロックの存在をチェックすることができるならば、他の命令を使用してもよい。
【0071】
【発明の効果】
以上説明したように、本実施例ではデマンド・ページング方式の計算機において、不可分動作を基本命令の組み合わせで実現できる。
【図面の簡単な説明】
【図1】本発明の第1実施例を示す機能ブロック図。
【図2】(a)は疑似ストア命令を示す図、(b)はストア命令を示す図。
【図3】第1実施例にかかる計算機の動作を示す図。
【図4】第1実施例をキュー操作に応用した具体例を説明する図であり、(a)はキューを構成するエレメントAとCを示す図、(b)はエレメントAとCの間にエレメントBを挿入した状態を示す図、(c)はエレメントAとCの間にエレメントBを挿入するためのプログラムの一例を示す図。
【図5】第1実施例において、発生し得る問題点及びその解決方法を説明する図。
【図6】本発明の第2実施例の概略を示すフローチャート。
【図7】図6に示される本発明の第2実施例の詳細な動作を示すフローチャート。
【図8】この発明の第3実施例にかかる計算機の構成を示す図。
【図9】図8に示す計算機の記憶構造を説明する図。
【図10】図8に示す計算機で実行されるプログラムの一例を示す図。
【図11】図8に示す計算機で、図10に示すプログラムを処理した時の処理の流れを示すフローチャート。
【図12】不可分動作を説明する図。
【符号の説明】
1、47…メモリ、2…仮想記憶部、5…メモリ書込み要求プログラム、7…アドレス変換割込み検出機構、9…オペレーティングシステム、11…他のプログラム、21…復帰先レジスタ、25…割込み処理、33…ディスパッチャ、35…非同期割込みルーチン、41…バス、43…システム制御ユニット、45…ファイル制御プロセッサ、48…端末制御プロセッサ、49…出力デバイス、51…演算制御プロセッサ。
Claims (2)
- 中断されることなく一体不可分に実行されるべき動作である不可分動作を定義するソフトウエアプログラムに含まれる擬似ストア命令により、前記不可分動作においてアクセスされるべきデータがメモリ上に存在するか否かをチェックし、存在しない場合に必要なデータを前記メモリ上に確保する確保工程と、
前記メモリ上に必要なデータを確保してから前記不可分動作を実行する実行工程、を備えることを特徴とする仮想記憶方式のデータ処理方法。 - データを記憶する第1の記憶手段と、
前記第1の記憶手段の記憶内容の一部の写しを記憶する第2の記憶手段と、
前記第2の記憶手段をアクセスする命令を含み、中断なく一体に実行されるべき不可分動作を定義する命令セットと前記第2の記憶手段上に任意のデータを確保するために前記第2の記憶手段をアクセスする特定命令を含むプログラムを記憶する第3の記憶手段と、
前記第3の記憶手段に記憶されたプログラムを実行する実行手段と、
前記第1と第2の記憶手段に接続され、前記実行手段に応答し、前記第2の記憶手段上に被アクセスデータが存在しない場合、前記第1の記憶手段から前記第2の記憶手段に被アクセスデータを転送する手段と、
不可分動作の実行に先立ち、前記特定命令を実行することにより不可分動作の実行に必要となるデータを予め第2の記憶手段に呼び出しておくことにより不可分動作実行中の割込みの発生を防止し、不可分動作を実現する手段、を備えることを特徴とする想記憶方式のデータ処理装置。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP14752992A JP3590075B2 (ja) | 1992-01-20 | 1992-06-08 | 仮想記憶方式のデータ処理装置及び方法 |
EP93100733A EP0552717B1 (en) | 1992-01-20 | 1993-01-19 | Data processing system and method using virtual storage system |
DE69325473T DE69325473T2 (de) | 1992-01-20 | 1993-01-19 | Virtuelles Speichersystem verwendendes Datenverarbeitungssystem und -verfahren |
US08/910,172 US6038631A (en) | 1992-01-20 | 1997-08-13 | Data processing system and method using virtual storage system |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4-7218 | 1992-01-20 | ||
JP721892 | 1992-01-20 | ||
JP14752992A JP3590075B2 (ja) | 1992-01-20 | 1992-06-08 | 仮想記憶方式のデータ処理装置及び方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH05265861A JPH05265861A (ja) | 1993-10-15 |
JP3590075B2 true JP3590075B2 (ja) | 2004-11-17 |
Family
ID=26341486
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP14752992A Expired - Fee Related JP3590075B2 (ja) | 1992-01-20 | 1992-06-08 | 仮想記憶方式のデータ処理装置及び方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US6038631A (ja) |
EP (1) | EP0552717B1 (ja) |
JP (1) | JP3590075B2 (ja) |
DE (1) | DE69325473T2 (ja) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3666258B2 (ja) * | 1997-08-28 | 2005-06-29 | セイコーエプソン株式会社 | プリンタ |
US6289445B2 (en) * | 1998-07-21 | 2001-09-11 | Lsi Logic Corporation | Circuit and method for initiating exception routines using implicit exception checking |
US6681322B1 (en) * | 1999-11-26 | 2004-01-20 | Hewlett-Packard Development Company L.P. | Method and apparatus for emulating an instruction set extension in a digital computer system |
US6594750B1 (en) * | 1999-12-08 | 2003-07-15 | Ati International Srl | Method and apparatus for handling an accessed bit in a page table entry |
US7191313B2 (en) * | 2001-08-28 | 2007-03-13 | Sony Corporation | Microprocessor |
GB0122120D0 (en) * | 2001-09-13 | 2001-10-31 | Koninkl Philips Electronics Nv | Edge termination in MOS transistors |
US6990604B2 (en) * | 2001-12-28 | 2006-01-24 | Storage Technology Corporation | Virtual storage status coalescing with a plurality of physical storage devices |
US6792516B2 (en) * | 2001-12-28 | 2004-09-14 | Intel Corporation | Memory arbiter with intelligent page gathering logic |
US7035984B2 (en) * | 2001-12-31 | 2006-04-25 | Intel Corporation | Memory arbiter with grace and ceiling periods and intelligent page gathering logic |
US6895460B2 (en) * | 2002-07-19 | 2005-05-17 | Hewlett-Packard Development Company, L.P. | Synchronization of asynchronous emulated interrupts |
US7971205B2 (en) * | 2005-12-01 | 2011-06-28 | International Business Machines Corporation | Handling of user mode thread using no context switch attribute to designate near interrupt disabled priority status |
US7734842B2 (en) * | 2006-03-28 | 2010-06-08 | International Business Machines Corporation | Computer-implemented method, apparatus, and computer program product for managing DMA write page faults using a pool of substitute pages |
US8904151B2 (en) * | 2006-05-02 | 2014-12-02 | International Business Machines Corporation | Method and apparatus for the dynamic identification and merging of instructions for execution on a wide datapath |
KR100843134B1 (ko) * | 2006-09-15 | 2008-07-02 | 삼성전자주식회사 | 인터럽트 금지구간 처리 장치 및 방법과 페이지 고정 장치및 방법 |
US9134954B2 (en) * | 2012-09-10 | 2015-09-15 | Qualcomm Incorporated | GPU memory buffer pre-fetch and pre-back signaling to avoid page-fault |
US20150213103A1 (en) * | 2013-04-18 | 2015-07-30 | Hitachi, Ltd. | Computer system and asynchronous replication management method |
JP7249968B2 (ja) * | 2020-03-09 | 2023-03-31 | 株式会社東芝 | 情報処理装置およびストレージ |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4589087A (en) * | 1983-06-30 | 1986-05-13 | International Business Machines Corporation | Condition register architecture for a primitive instruction set machine |
US4718008A (en) * | 1986-01-16 | 1988-01-05 | International Business Machines Corporation | Method to control paging subsystem processing in a virtual memory data processing system during execution of critical code sections |
US4868744A (en) * | 1986-03-03 | 1989-09-19 | International Business Machines Corporation | Method for restarting a long-running, fault-tolerant operation in a transaction-oriented data base system without burdening the system log |
US5148544A (en) * | 1987-07-01 | 1992-09-15 | Digital Equipment Corporation | Apparatus and method for control of asynchronous program interrupt events in a data processing system |
US5218712A (en) * | 1987-07-01 | 1993-06-08 | Digital Equipment Corporation | Providing a data processor with a user-mode accessible mode of operations in which the processor performs processing operations without interruption |
US5161227A (en) * | 1989-11-13 | 1992-11-03 | International Business Machines Corporation | Multilevel locking system and method |
US5237700A (en) * | 1990-03-21 | 1993-08-17 | Advanced Micro Devices, Inc. | Exception handling processor for handling first and second level exceptions with reduced exception latency |
US5778423A (en) * | 1990-06-29 | 1998-07-07 | Digital Equipment Corporation | Prefetch instruction for improving performance in reduced instruction set processor |
TW197505B (ja) * | 1991-03-07 | 1993-01-01 | Digital Equipment Corp | |
US5307504A (en) * | 1991-03-07 | 1994-04-26 | Digital Equipment Corporation | System and method for preserving instruction granularity when translating program code from a computer having a first architecture to a computer having a second reduced architecture during the occurrence of interrupts due to asynchronous events |
JPH04306735A (ja) * | 1991-04-04 | 1992-10-29 | Toshiba Corp | 非同期割込み禁止機構 |
US5483641A (en) * | 1991-12-17 | 1996-01-09 | Dell Usa, L.P. | System for scheduling readahead operations if new request is within a proximity of N last read requests wherein N is dependent on independent activities |
-
1992
- 1992-06-08 JP JP14752992A patent/JP3590075B2/ja not_active Expired - Fee Related
-
1993
- 1993-01-19 DE DE69325473T patent/DE69325473T2/de not_active Expired - Fee Related
- 1993-01-19 EP EP93100733A patent/EP0552717B1/en not_active Expired - Lifetime
-
1997
- 1997-08-13 US US08/910,172 patent/US6038631A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
DE69325473D1 (de) | 1999-08-05 |
DE69325473T2 (de) | 2000-01-20 |
EP0552717A3 (en) | 1994-09-14 |
EP0552717A2 (en) | 1993-07-28 |
JPH05265861A (ja) | 1993-10-15 |
EP0552717B1 (en) | 1999-06-30 |
US6038631A (en) | 2000-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3590075B2 (ja) | 仮想記憶方式のデータ処理装置及び方法 | |
EP0538817B1 (en) | High-speed processor capable of handling multiple interrupts | |
JP2514208B2 (ja) | ホットスタンドバイメモリ−コピ−方式 | |
JPH0450621B2 (ja) | ||
KR20110044884A (ko) | 가상화가능한 진보된 동기화 기능 | |
JPH06195229A (ja) | パイプラインプロセッサにおける割込み処理のための装置 | |
JPS6319058A (ja) | メモリ装置 | |
JP2562838B2 (ja) | プロセッサ及びストアバッファ制御方法 | |
US5201052A (en) | System for transferring first and second ring information from program status word register and store buffer | |
JP2671160B2 (ja) | 例外処理方式 | |
JPH0219508B2 (ja) | ||
JPS6113261B2 (ja) | ||
JPS59172044A (ja) | 命令制御方式 | |
JPH0573417A (ja) | データ処理装置 | |
JPH056706B2 (ja) | ||
JPH0795311B2 (ja) | 二重化処理装置 | |
JPS6195464A (ja) | デ−タ保護方式 | |
JP3517884B2 (ja) | データ処理装置 | |
JPH0415496B2 (ja) | ||
JPH0447350A (ja) | 主記憶読み出し応答制御方式 | |
JP3127737B2 (ja) | ディジタル信号処理装置 | |
JPS61256421A (ja) | 捕助記憶装置転送バツフアの初期化方式 | |
JPH05127895A (ja) | 汎用レジスタへの書込みプロテクト方式 | |
JPH02193235A (ja) | バスアクセス例外検出方法 | |
JPS61187053A (ja) | プログラムメモリ管理方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040518 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040716 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040817 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040819 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20070827 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080827 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |