(57)【特許請求の範囲】
【請求項１】
少なくともプログラムを格納する主記憶領域とデータを格納するシステム記憶領域とを有した仮想記憶を主記憶領域とシステム記憶領域で区分けして実記憶に割り当てる記憶装置であって、
前記主記憶領域に対するアクセスに伴い利用する実記憶の領域と、前記システム記憶領域に対するアクセスに伴い利用する実記憶の領域とを定義したテーブルと、
前記テーブルを参照して前記主記憶領域のアクセス時に仮想アドレスから実記憶の有効な実アドレスに変換する第１のアドレス変換手段と、
前記テーブルを参照して前記システム記憶領域のアクセス時に仮想アドレスから実記憶の有効な実アドレスに変換する第２のアドレス変換手段と、
主記憶領域およびシステム記憶領域の実記憶上でのサイズを、所定の時刻に、あらかじめ決められたサイズに変更するよう、処理を行なうと共に、該変更処理は、システム記憶領域の実記憶上のサイズを増加する際にシステム記憶領域化する実記憶上の領域が使用中であれば該領域に対しページアウトおよびスワップ処理を行った後、前記テーブルのシステム記憶領域および主記憶領域の定義を変更する処理を行い、主記憶領域の実記憶上のサイズを増加する際に主記憶領域化する実記憶上の領域が使用中であれば該領域が未使用状態になるまで待機し、未使用状態となった時点で、前記テーブルのシステム記憶領域および主記憶領域の定義を変更する処理を行う処理変更手段と
を設けたことを特徴とする記憶装置。
【請求項２】
少なくともプログラムを格納する主記憶領域とデータを格納するシステム記憶領域とを有した仮想記憶を主記憶領域とシステム記憶領域で区分けして実記憶に割り当てるとともに、前記主記憶領域に対するアクセスに伴い利用する実記憶の領域と、前記システム記憶領域に対するアクセスに伴い利用する実記憶の領域とを定義したテーブルをもとにアクセス可能なコンピュータが、
前記テーブルを参照して前記主記憶領域のアクセス時に仮想アドレスから実記憶の有効な実アドレスに変換する第１のアドレス変換ステップと、
前記テーブルを参照して前記システム記憶領域のアクセス時に仮想アドレスから実記憶の有効な実アドレスに変換する第２のアドレス変換ステップと、
主記憶領域およびシステム記憶領域の実記憶上でのサイズを、所定の時刻に、あらかじめ決められたサイズに変更するよう、処理を行なうと共に、該変更処理は、システム記憶領域の実記憶上のサイズを増加する際にシステム記憶領域化する実記憶上の領域が使用中であれば該領域に対しページアウトおよびスワップ処理を行った後、前記テーブルのシステム記憶領域および主記憶領域の定義を変更する処理を行い、主記憶領域の実記憶上のサイズを増加する際に主記憶領域化する実記憶上の領域が使用中であれば該領域が未使用状態になるまで待機し、未使用状態となった時点で、前記テーブルのシステム記憶領域および主記憶領域の定義を変更する処理を行う処理変更ステップと
を実行することを特徴とする記憶方法。
【請求項３】
少なくともプログラムを格納する主記憶領域とデータを格納するシステム記憶領域とを有した仮想記憶を主記憶領域とシステム記憶領域で区分けして実記憶に割り当てるとともに、前記主記憶領域に対するアクセスに伴い利用する実記憶の領域と、前記システム記憶領域に対するアクセスに伴い利用する実記憶の領域とを定義したテーブルをもとにアクセス可能なコンピュータに、
前記テーブルを参照して前記主記憶領域のアクセス時に仮想アドレスから実記憶の有効な実アドレスに変換する第１のアドレス変換ステップと、
前記テーブルを参照して前記システム記憶領域のアクセス時に仮想アドレスから実記憶の有効な実アドレスに変換する第２のアドレス変換ステップと、
主記憶領域およびシステム記憶領域の実記憶上でのサイズを、所定の時刻に、あらかじめ決められたサイズに変更するよう、処理を行なうと共に、該変更処理は、システム記憶領域の実記憶上のサイズを増加する際にシステム記憶領域化する実記憶上の領域が使用中であれば該領域に対しページアウトおよびスワップ処理を行った後、前記テーブルのシステム記憶領域および主記憶領域の定義を変更する処理を行い、主記憶領域の実記憶上のサイズを増加する際に主記憶領域化する実記憶上の領域が使用中であれば該領域が未使用状態になるまで待機し、未使用状態となった時点で、前記テーブルのシステム記憶領域および主記憶領域の定義を変更する処理を行う処理変更ステップと
を実行させるプログラムを格納した記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、仮想記憶上の複数の記憶域を実記憶に割り当てる記憶装置、記憶方法および記録媒体に関するものである。主記憶装置を効率良く有効利用するため、計算機システムに仮想記憶装置が使われている。この際、プログラム領域とデータベース領域などを区別して効率的に記憶装置を利用することが望まれている。
【０００２】
【従来の技術】
従来、仮想記憶装置を用いてデータベースをアクセスする場合、プログラムとデータベースとを同じ主記憶上に存在させると、プログラムの不当なアクセスによりデータベースのデータ破壊を生じる恐れがある。そのため、データベースを格納するシステム記憶と、データベースをアクセスするプログラムを格納する主記憶とを仮想記憶上で異ならしてプログラムによりデータベースのデータの破壊を防止するようにしていた。
【０００３】
【発明が解決しようとする課題】
上述したように、従来は、データベースのデータを格納するシステム記憶と、データベースをアクセスするためのプログラムを格納する主記憶とに分けて仮想記憶装置上で動作させていたため、計算機システムの運用時間帯により、動作するプログラムや、処理対象となるデータベースも異なるため、効率的に運用を行えないという問題があった。
【０００４】
例えば昼間は多数の端末からの要求を処理するオンライン処理のために、処理データ全体のアクセス性能を保持するよりも、多くのプログラムを動作させて応答時間を保証する方が重要である。一方、夜間はデータベースの一括処理のために、データベースの全データアクセスを高速化することが重要である。このために、昼間用のプログラムを格納する主記憶、および夜間用の全データベースを格納するシステム記憶の両者をそれぞれ仮想記憶装置上に大きな領域を設けたのでは、両者を合わせた極めて大きなサイズの実記憶が必要となってしまうという問題が発生すると共に、昼間および夜間で使用されない方の領域が遊んでしまい、効率的でないという問題が発生する。
【０００５】
本発明は、これらの問題を解決するため、時間帯や処理量などに応じてプログラムなどを格納する主記憶とデータなどを格納するシステム記憶などに割り当てる実記憶のサイズを動的に変更し、実記憶の使用効率を向上させると共に最適な処理能力を引出すことを目的としている。
【０００６】
【課題を解決するための手段】
図１を参照して課題を解決するための手段を説明する。
図１において、主記憶１は、プログラムなどを格納する仮想記憶上の主記憶であって、ページ変換テーブル（主記憶）１１をもとに仮想アドレスを実アドレスに変換してアクセスするものである。
【０００７】
システム記憶２は、データベースのデータなどを格納する仮想記憶上のシステム記憶であって、ページ変換テーブル（システム記憶）２１をもとに仮想アドレスを実アドレスに変換してアクセスするものである。
【０００８】
実記憶装置３は、実アドレスで実記憶３２をアクセスするものであって、ここでは、実記憶３２および制御テーブル３３などから構成されるものである。
実記憶３２は、実アドレスでアクセスする実際の記憶装置である。
【０００９】
制御テーブル３３は、実アドレスについてページ単位に主記憶１あるいはシステム記憶２のいずれに割り当てるかを動的に設定するテーブルである。
次に、動作を説明する。
【００１０】
記憶域１のアクセス時に仮想アドレスから動的に割り当てられた範囲内の実記憶の実アドレスに変換するそれぞれの記憶域用のアドレス変換手段を備えるようにしている。
【００１１】
また、制御テーブル３３に主記憶１あるいはシステム記憶２のいずれに実記憶に割り当たこと、あるいは割り当てを変更したことに対応して、ページ変換テーブル（主記憶）１１あるいはページ変換テーブル（システム記憶）２１に割り当てられた実アドレスへの変換を有効に設定し、主記憶１のアクセス時にページ変換テーブル（主記憶）１１を参照して仮想アドレスから動的に割り当てられた実記憶３２の実アドレスに変換して実記憶３２をアクセスし、システム記憶域２のアクセス時にページ変換テーブル（システム記憶）２１を参照して仮想アドレスから動的に割り当てられた実記憶３２の実アドレスに変換して実記憶３２をアクセスするようにしている。
【００１２】
この際、仮想アドレスから実アドレスへの変換をページ単位に行うようにしている。
また、主記憶１およびシステム記憶２を実記憶３２への動的な割り当てを、時間あるいは処理量に従って行うようにしている。
【００１３】
従って、時間帯あるいは処理量などに応じてプログラムなどを格納する主記憶１とデータなどを格納するシステム記憶２などの領域サイズを動的に変更することにより、実記憶装置の使用効率を向上させると共に最適な処理能力を引出すことが可能となる。
【００１４】
【発明の実施の形態】
次に、図１から図６を用いて本発明の実施の形態および動作を順次詳細に説明する。ここで、図示外の記録媒体からプログラムを読み出して主記憶にローディングして起動し以下に説明する各種処理を行うようにしている。
【００１５】
図１は、本発明の１実施例構成図を示す。
図１において、主記憶１は、仮想記憶上に設けた主記憶であって、ここでは、プログラムなどを格納するものであり、ページ変換テーブル（主記憶）１１をもとに仮想アドレスを実アドレスに変換して実記憶３２をアクセスするものである。
【００１６】
ページ変換テーブル（主記憶）１１は、主記憶の仮想アドレスを実記憶３２の実アドレスにページ単位で変換するものであって、図示のように、主記憶１上の仮想ページアドレスを、実記憶３２上の実アドレスに変換するものである（図３参照）。また、実アドレスが外部記憶装置４に書き出されたときの外部アドレスを併せて仮想アドレスに対応づけて設定するようにしてもよい。
【００１７】
システム記憶２は、仮想記憶上に設けたシステム記憶であって、ここでは、データベースのデータなどを格納するものであり、ページ変換テーブル（システム記憶）２１をもとに仮想アドレスを実アドレスに変換して実記憶３２をアクセスするものである。
【００１８】
ページ変換テーブル（システム記憶）２１は、システム記憶の仮想アドレスを実記憶３２の実アドレスにページ単位で変換するものであって、図示のように、システム記憶２上の仮想ページアドレスを、実記憶３２上の実アドレスに変換するものである（図３参照）。また、実アドレスが外部記憶装置４に書き出されたときの外部アドレスを併せて仮想アドレスに対応づけて設定するようにしてもよい。
【００１９】
実記憶装置３は、実記憶３２をアクセスしたり、管理したりなどするものであって、管理装置３１、実記憶３２、および制御テーブル３３などから構成されるものである。
【００２０】
管理装置３１は、各種管理を行うものであって、ここで、ページアウト機能、制御テーブル更新機能などを持つものである。ページアウト機能は、実記憶３２が一杯となったときに外部記憶装置４に書き出して外部ページとし、実記憶３２に空を作る機能である。制御テーブル更新機能は、ページ単位の実記憶アドレスを、主記憶１あるいはシステム記憶２のいずれに動的に割り当てるかの更新を動的に、時間帯あるいは処理量（主記憶１の処理量がシステム記憶２よりもより多いときに主記憶１の実ページの割り当てを多くし、逆の場合には少なくする）などに応じて行うものである。
【００２１】
実記憶３２は、データやプログラムを実際に記憶する実記憶である。実記憶３２の割り当てはページ単位に行う。
制御テーブル３３は、実記憶アドレス（ページ単位）を主記憶１あるいはシステム記憶２のいずれに割り当てるかを検索するものである。ここでは、実アドレス（ページ単位）に主記憶の仮想アドレス（ページ単位）あるいはシステム記憶の仮想アドレス（ページ単位）に割り当てているが、この割り当てをページ変換テーブル１１、２１の方で行うようにしてもよい。
【００２２】
外部記憶装置４は、実記憶３２に納まり切らないページを外部ページとして格納するものである。
次に、図２のフローチャートに示す順序に従い、図１の構成の動作を詳細に説明する。
【００２３】
図２は、本発明の動作説明フローチャートを示す。
図２において、Ｓ１は、管理装置に領域変更要求を通知する。これは、後述する図５で説明するように時間帯によって領域変更要求を通知したり、あるいはシステム記憶２、主記憶１へのアクセス量が増大してページアウト（外部ページに書き出す割合が増えた）ことに対応して自動的に外部ページアウトの割合を減らし両者のシステム記憶２と主記憶１とが均衡などするように領域変更要求を通知してもよい。
【００２４】
Ｓ２は、Ｓ１の要求がシステム記憶２の増加、あるいは主記憶の増加のいずれかを判定する。システム記憶２の増加の要求と判明した場合には、Ｓ４ないしＳ９によってシステム記憶２の増加を行う。一方、主記憶１の増加の要求と判明した場合には、Ｓ１０ないしＳ１４によって主記憶１の増加を行う。
【００２５】
Ｓ３は、システム記憶域化する実ページの検索を行う。これは、例えば制御テーブル３３を参照してシステム記憶２に変更しようとする主記憶１の実アドレス中で、ページ変換テーブル（主記憶）１１を参照して未使用の実アドレスがあればそれを見つける、あるいは未使用の実アドレスが見つからないときは最も古く使用された実アドレスを見つける。
【００２６】
Ｓ４は、使用状態の判定を行う。Ｓ３で見つけた実アドレス（ページ単位）の使用状態の判定を行う。使用中の場合には、Ｓ５で使用中のページのページアウト／スワップ処理を行い、Ｓ６で主記憶１のアドレス変換テーブル１１のエントリの無効化を行い、Ｓ７に進む。一方、未使用の場合には、Ｓ７に進む。
【００２７】
Ｓ７は、制御テーブルの情報（用途）をシステム記憶に動的に変更する。これは、図１の制御テーブル３３中の用途が“主記憶”であったエントリを“システム記憶”に動的に変更する。
【００２８】
Ｓ８は、システム記憶のアドレス変換テーブル（システム記憶）２１のエントリの有効化を行う。これにより、システム記憶２上の仮想アドレスに対する実アドレスの割合が１ページ分（あるいは所定ページ分）増加し、システム記憶上で仮想アドレスを割り当てできる実アドレスの量が増えたこととなる。
【００２９】
Ｓ９は、制御テーブルの情報（仮想ページアドレス）の設定を行う。この設定は、必ずしも行わなくもてもよい。
以上のＳ４ないしＳ９によって、主記憶１上の仮想アドレスに割り当てられていた実アドレス（ページ単位）を、システム記憶２上の仮想アドレスに動的に割り当てるようにして、当該システム記憶２上の仮想アドレスが使用できる実アドレス量を増やすことが可能となる。
【００３０】
Ｓ１０は、主記憶域化する実ページの検索を行う。これは、例えば制御テーブル３３を参照して主記憶１に変更しようとするシステム記憶２の実アドレス中で、ページ変換テーブル（システム記憶）２１を参照して未使用の実アドレスがあればそれを見つける、あるいは未使用の実アドレスが見つからないときは最も古く使用された実アドレスを見つける。
【００３１】
Ｓ１１は、使用状態の判定を行う。Ｓ１０で見つけた実アドレス（ページ単位）の使用状態の判定を行う。使用中の場合には、未使用となるまで待機する。一方、未使用の場合には、Ｓ１２に進む。
【００３２】
Ｓ１２は、制御テーブルの情報（用途）を主記憶に動的に変更する。これは、図１の制御テーブル３３中の用途が“システム記憶”であったエントリを“主記憶”に動的に変更する。
【００３３】
Ｓ１３は、主記憶のアドレス変換テーブル（主記憶）１１のエントリの有効化を行う。これにより、主記憶１上の仮想アドレスに対する実アドレスの割合が１ページ分（あるいは所定ページ分）増加し、主記憶１上で仮想アドレスを割り当てできる実アドレスの量が増えたこととなる。
【００３４】
Ｓ１４は、制御テーブルの情報（仮想ページアドレス）の設定を行う。この設定は、必ずしも行わなくもてもよい。
以上のＳ１０ないしＳ１４によって、システム記憶２上の仮想アドレスに割り当てられていた実アドレス（ページ単位）を、主記憶１上の仮想アドレスに動的に割り当てるようにして、当該主記憶１上の仮想アドレスが使用できる実アドレス量を増やすことが可能となる。
【００３５】
図３は、本発明のアドレス変換の説明図を示す。
図３において、上段はページ変換テーブル（主記憶）１１の例を表し、下段はページ変換テーブル（システム記憶）２１の例を表す。
【００３６】
上段のページ変換テーブル（主記憶）１１は、主記憶１上の仮想アドレスについて、ＣＲ１（制御レジスタ）からポイントされるＳＧＴ（セグメントテーブル）およびＰＧＴ（ページテーブル）によって実ページに変換するものである。ここで、セグメントテーブルの実ページに対応づけるエントリに有効／無効のフラグがあり、当該仮想アドレス上で使用できるエントリのフラグを有効に設定し、使用できないときにフラグを無効に設定する。図中の点線の×は、フラグを無効に設定し、後述するページ変換テーブル（システム記憶）２１の対応するページテーブルのエントリのフラグを有効に設定し、当該実ページを使用するようにしている。
【００３７】
下段のページ変換テーブル（システム記憶）２１は、システム記憶２上の仮想アドレスについて、ＸＣＲ１（制御レジスタ）からポイントされるＶＭＴ（ビューマップテーブル）、ＳＧＴ（セグメントテーブル）およびＰＧＴ（ページテーブル）によって実ページに変換するものである。ここで、セグメントテーブルの実ページに対応づけるエントリに有効／無効のフラグがあり、当該仮想アドレス上で使用できるエントリのフラグを有効に設定し、使用できないときにフラグを無効に設定する。図中の実線は、フラグを有効に設定し、実ページを使用できるようにしている。
【００３８】
以上のように、主記憶上の仮想アドレスを実アドレスに変換するページ変換テーブル（主記憶）１１、およびシステム記憶上の仮想アドレスを実アドレスに変換するページ変換テーブル（システム記憶）２１を設け、ページテーブルに実アドレスへの割り当てが有効／無効のフラグを設け、動的に設定を変更し、主記憶上の仮想アドレスに割り当てる実アドレスあるいはシステム記憶上の仮想アドレスに割り当てる実アドレスのページ数を任意に調整することが可能となる。
【００３９】
図４は、本発明の動的割当フローチャートを示す。
図４において、Ｓ２１は、制御装置がシステム記憶の増加を自動依頼する。これは、図５に示すように、制御装置５が実記憶装置３の管理装置３１に、システム記憶２の増加を自動依頼、例えば所定時間になったとき、あるいはシステム記憶２の外部ページに書き出す量が所定閾値を越えたたなどしたとき自動的に依頼する。
【００４０】
Ｓ２２は、管理装置が必要ページ数を確保する。これは、管理装置３１がページ変換テーブル（主記憶）１１を検索して未使用の実アドレス、未使用の実アドレスがないときは最も古く使用された実アドレスを必要ページ数を確保する。
【００４１】
Ｓ２３は、管理装置が制御テーブル内の情報（用途）を変更する。これは、管理装置３１が制御テーブル３３内の該当する実アドレスの用途“主記憶”を“システム記憶”に動的に変更する。これに合わせて、図３で既述したように、ページ変換テーブル（システム記憶）２１のページテーブルの該当エントリのフラグを有効に設定、ページ変換テーブル（主記憶）１１のページテーブルの該当エントリのフラグを無効に設定し、主記憶上の仮想アドレスに割り当てていた実アドレスを、システム記憶上の仮想アドレスに割り当てるように実アドレスを増加する。
【００４２】
Ｓ２４は、システム記憶の増加を完了する。
以上によって、主記憶上の仮想アドレスに割り当てられていた実アドレスを、システム記憶上の仮想アドレスに割り当てるように動的に変更したこととなる。
【００４３】
図５は、本発明の動的割当説明図（その１）を示す。これは、スケジュール表５２に従い、主記憶１およびシステム記憶２の割り当てる実アドレスを動的に変更する場合の構成の説明図である。
【００４４】
図５において、制御装置５は、実記憶装置３にスケジュール表５２に従い、所定の時間帯のときの実アドレスの割り当てを動的に変更するように、実記憶装置３に指示するものである。
【００４５】
時計５１は、時刻を計時するものである。
スケジュール表５２は、時刻に対応づけて主記憶１に割り当てる実アドレスのサイズ、およびシステム記憶２に割り当てる実アドレスのサイズを登録したものである。ここでは、図示の下記のように登録する。
【００４６】
時刻        実アドレスの割当量
０８：００  主記憶：２５６ＭＢ、システム記憶：１２８ＭＢ
２１：００  主記憶：  ３２ＭＢ、システム記憶：３５２ＭＢ
このスケジュール表５２に従い、
▲１▼０８：００〜２１：００までは主記憶１に実アドレスが２５６ＭＢ、およびシステム記憶２に実アドレスが１２８ＭＢをそれぞれ割り当てられる。
【００４７】
▲２▼２１：００〜０８：００までは主記憶１に実アドレスが３２ＭＢ、およびシステム記憶２に実アドレスが３５２ＭＢをそれぞれ割り当てられる。
以上の▲１▼の昼間から夕方にかけて主記憶１とシステム記憶２に２対１の割合で実アドレスを割り当て、プログラムが使用する主記憶に多くの実アドレスを割り当てて多数のオンラインプログラムが動作して多数の業務受付・処理を行うようにしている。一方、▲２▼の夜間は主記憶１とシステム記憶２に１対１１の割合で実アドレスを割り当て、バッチ処理によりシステム記憶２の実アドレスに全データベースを格納して高速にデータベースにアクセスしデータ処理を行うようにしている。
【００４８】
図６は、本発明の動的割当説明図（その２）を示す。
図６の（ａ）は変更前の制御テーブル例を示し、図６の（ｂ）は変更後の制御テーブル例を示す。ここでは、▲１▼に示すように、変更前の４つの用途“主記憶”が変更後に“システム記憶”に動的に変更、例えば既述した図５の“２１：００”に動的に変更したものである。これにより、主記憶１よりも、システム記憶２により多くの実アドレスが割り当られることとなる。
【００４９】
【発明の効果】
以上説明したように、本発明によれば、時間帯あるいは処理量などに応じてプログラムなどを格納する主記憶１とデータなどを格納するシステム記憶２などの領域サイズを動的に変更する構成を採用しているため、実記憶装置の使用効率を向上させると共に最適な処理能力を引出すことができる。これらにより、計算機システムを停止させることなく、時間帯ごとに計算機システムの運用形態に応じて、主記憶１とシステム記憶２というように最適に実アドレスを振り分けることができ、その結果、記憶装置の使用効率を向上させるだけでなく、同規模の記憶装置を持つ従来の計算機システムに比較して、常時最大の処理能力を引出すことが可能となる。
【図面の簡単な説明】
【図１】本発明の１実施例構成図である。
【図２】本発明の動作説明フローチャートである。
【図３】本発明のアドレス変換の説明図である。
【図４】本発明の動的割当フローチャートである。
【図５】本発明の動的割当説明図（その１）である。
【図６】本発明の動的割当説明図（その２）である。
【符号の説明】
１：主記憶
１１：ページ変換テーブル（主記憶）
２：システム記憶
２１：ページ変換テーブル（システム記憶）
３：実記憶装置
３１：管理装置
３２：実記憶
３３：制御テーブル
４：外部記憶装置
５：制御装置
５１：時計
５２：スケジュール表
【図１】
0003875358.tif 000002
【図２】
0003875358.tif 000003
【図３】
0003875358.tif 000004
【図４】
0003875358.tif 000005
【図５】
0003875358.tif 000006
【図６】
0003875358.tif 000007