(57)【要約】【課題】ＯＳ起動後に物理メモリのオンライン増設があった場合に、その物理メモリを有効利用する方法を提供することである。【解決手段】ＯＳ起動後に増設される物理メモリ１４を検出するステップと、ＯＳ起動後に増設される物理メモリ１４が検出されていない場合には、外部記憶装置１２をスワップ領域として、ページングを行うステップと、ＯＳ起動後に増設される物理メモリ１４が検出されている場合には、当該物理メモリ１４と外部記憶装置１２とをスワップ領域として、ページングを行うステップとを有するオンライン増設メモリの使用方法である。【選択図】図１
2008065766.tif 000002
【特許請求の範囲】
【請求項１】
ＯＳ起動後に増設される物理メモリを検出するステップと、
ＯＳ起動後に増設される物理メモリが検出されている場合には、当該物理メモリをスワップ領域として、ページングを行うステップと
を有するオンライン増設メモリの使用方法。
【請求項２】
ＯＳ起動後に増設される物理メモリを検出するステップと、
ＯＳ起動後に増設される物理メモリが検出されていない場合には、外部記憶装置をスワップ領域として、ページングを行うステップと、
ＯＳ起動後に増設される物理メモリが検出されている場合には、当該物理メモリと外部記憶装置とをスワップ領域として、ページングを行うステップと
を有するオンライン増設メモリの使用方法。
【請求項３】
複数のエントリを有するメモリ・スワップ管理テーブルを作成するステップと、
前記複数のエントリの各々は、ＯＳ起動後に増設される物理メモリにおけるある領域が使用中か未使用かを示す情報を保持し、
ページアウトを行う場合には、その領域が未使用を示している前記エントリを検索するステップと、
その領域が未使用を示しているエントリが検索されたときには、前記物理メモリへページアウトを行うステップと、
その領域が未使用を示しているエントリが検索されなかったときには、外部記憶装置へページアウトを行うステップと
を具備する請求項２記載のオンライン増設メモリの使用方法。
【請求項４】
複数のエントリを有するメモリ・スワップ管理テーブルを作成するステップと、
前記複数のエントリの各々は、ＯＳ起動後に増設される物理メモリにおけるある領域が使用中か未使用かを示す情報を保持し、
ページアウトを行う場合には、その領域が未使用を示している前記エントリを検索するステップと、
その領域が未使用を示しているエントリが検索されたときには、前記物理メモリへページアウトを行うステップと、
その領域が未使用を示しているエントリが検索されなかったときには、いずれかのエントリについて、その領域の内容を外部記憶装置に掃き出し、前記物理メモリへページアウトを行うステップと
を具備する請求項２記載のオンライン増設メモリの使用方法。
【請求項５】
ＯＳ起動後に増設された物理メモリの使用率が一定の水準を超えたときに、バックグラウンドで、いずれかのページについて、その領域の内容を外部記憶装置に掃き出し、ＯＳ起動後に増設された前記物理メモリに空き領域を確保するステップと、
ページアウトを行う場合には、前記物理メモリへページアウトを行うステップと
を具備する請求項２記載のオンライン増設メモリの使用方法。
【請求項６】
ページアウト対象のページが、優先順位の低いプロセス又は実行頻度の低いプロセスによって使用されるものか否かを判断するステップと、
（甲）優先順位の低いプロセス又は実行頻度の低いプロセスによって使用されるものであると判断された場合には、ページアウトを行う場合に、外部記憶装置へページアウトを行うステップと、
（乙）優先順位の低いプロセス又は実行頻度の低いプロセスによって使用されるものでは無いと判断された場合には、複数のエントリを有するメモリ・スワップ管理テーブルを作成するステップと、
前記複数のエントリの各々は、ＯＳ起動後に増設される物理メモリにおけるある領域が使用中か未使用かを示す情報を保持し、
ページアウトを行う場合に、その領域が未使用を示している前記エントリを検索するステップと、
その領域が未使用を示しているエントリが検索されたときには、前記物理メモリへページアウトを行うステップと、
その領域が未使用を示しているエントリが検索されなかったときには、いずれかのエントリについて、その領域の内容を外部記憶装置に掃き出し、前記物理メモリへページアウトを行うステップと
を具備する請求項２記載のオンライン増設メモリの使用方法。
【請求項７】
ＯＳ起動後に増設された物理メモリの使用率が一定の水準を超えたときに、バックグラウンドで、いずれかのページについて、その領域の内容を外部記憶装置に掃き出し、ＯＳ起動後に増設された前記物理メモリに空き領域を確保するステップと、
ページアウト対象のページが、優先順位の低いプロセス又は実行頻度の低いプロセスによって使用されるものか否かを判断するステップと、
（甲）優先順位の低いプロセス又は実行頻度の低いプロセスによって使用されるものであると判断された場合には、ページアウトを行う場合に、外部記憶装置へページアウトを行うステップと、
（乙）優先順位の低いプロセス又は実行頻度の低いプロセスによって使用されるものでは無いと判断された場合には、ページアウトを行う場合に、ＯＳ起動後に増設された前記物理メモリへページアウトを行うステップと
を具備する請求項２記載のオンライン増設メモリの使用方法。
【請求項８】
複数のエントリを有するメモリ・スワップ管理テーブルを作成するステップと、
前記複数のエントリの各々は、ＯＳ起動後に増設される物理メモリにおける物理アドレスと、仮想アドレスとの対応関係を示す情報を保持すると共に、その物理メモリの領域が使用中か未使用かを識別する情報を保持し、
ページインを行う場合には、仮想アドレスが一致する前記エントリを検索するステップと、
仮想アドレスが一致するエントリが検索されたときには、前記物理メモリからページインを行うステップと、
仮想アドレスが一致するエントリが検索されなかったときには、前記外部記憶装置からページインを行うステップと
を具備する請求項２記載のオンライン増設メモリの使用方法。
【請求項９】
ＯＳ起動後に増設される物理メモリを検出する手順と、
ＯＳ起動後に増設される物理メモリが検出されている場合には、当該物理メモリをスワップ領域として、ページングを行う手順と
をコンピュータに実行させるためのプログラム。
【請求項１０】
ＯＳ起動後に増設される物理メモリを検出する手順と、
ＯＳ起動後に増設される物理メモリが検出されていない場合には、外部記憶装置をスワップ領域として、ページングを行う手順と、
ＯＳ起動後に増設される物理メモリが検出されている場合には、当該物理メモリと外部記憶装置とをスワップ領域として、ページングを行う手順と
をコンピュータに実行させるためのプログラム。
【請求項１１】
前記プログラムが、ＯＳの一部である請求項１１又は１２記載のプログラム。
【請求項１２】
ＯＳ起動後に増設される物理メモリを検出する検出部と、
ＯＳ起動後に増設される物理メモリが検出されている場合には、当該物理メモリをスワップ領域として、ページングを行うページング機構と
を有する情報処理装置。
【請求項１３】
ＯＳ起動後に増設される物理メモリを検出する検出部と、
ＯＳ起動後に増設される物理メモリが検出されていない場合には、外部記憶装置をスワップ領域として、ページングを行うと共に、
ＯＳ起動後に増設される物理メモリが検出されている場合には、当該物理メモリと外部記憶装置とをスワップ領域として、ページングを行うページング機構と
を有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オンライン増設メモリの使用方法、プログラム及び情報処理装置に関する。
【背景技術】
【０００２】
仮想記憶をサポートするＯＳでは、物理メモリの空き容量が不足すると、スワップ領域を利用することにより、物理メモリの空き容量を確保する。ところが、スワップ領域には、通常、メモリと比較して低速なデバイスが使用されているため、メモリ使用量が増加しスワップ領域が使用されるようになると、処理性能の低下が発生する。
【０００３】
このような処理性能の低下を防ぐためには物理メモリの増設が必要になるが、通常ＯＳは、起動時の初期化処理において、搭載されている物理メモリ量の取得・管理を行うため、ＯＳ起動後にメモリをオンライン増設した場合であっても、増設したメモリを使用するためにはＯＳの再起動が必要になってしまう。
【０００４】
また、ＯＳの再起動を行うことなくオンライン増設したメモリを使用する場合には、ＯＳのメモリ管理機構の中核に対し大幅な変更が必要となる。ＯＳでは、物理メモリの領域と仮想メモリの領域とを対応づけるマッピングテーブルの管理を行っており、オンライン増設したメモリを通常の仮想メモリ空間として使用する場合には、このマッピングテーブルの更新が必要になる。図１は、物理メモリの増設について説明する図である。図１において、情報処理装置１００には、ＯＳ１０４の起動前からＸメガバイトの物理メモリ１０１が搭載されている。ＯＳ１０４では、仮想メモリの領域と、起動前搭載メモリ１０１の領域とを対応づけるマッピングテーブル１０５を管理している。ここで、ＯＳ起動後、Ｙメガバイトの物理メモリ１０２が増設されたとする（Ａ）。すると、メモリコントローラ１０３は、物理メモリ１０２の増設を検知することにより、搭載物理メモリ容量の値を更新できる（Ｂ）。ＯＳ１０４は、搭載されている全てのメモリ容量（Ｘ＋Ｙ）の取得が可能である（Ｃ）。しかし、物理メモリ１０２を増設しても、マッピングテーブル１０５の変更は行わない。マッピングテーブル１０５はＯＳ１０４の核となる部分であり、このマッピングテーブル１０５を動的に更新するのは大きな危険を伴うからである。
【０００５】
特にミッションクリティカルなシステムにおいては、「ＯＳの再起動が容易に行えない」、「メモリ管理機構の中核に対し大幅な変更を行うことにより信頼性が低下する」といった理由から空きメモリ容量の不足による処理性能の低下は深刻な問題となる。
【０００６】
メモリ増設に関する従来技術としては、特開平５−３４２０９２号公報（特許文献１参照）、特開平１１−２７２５４７号公報（特許文献２参照）に記載された発明が知られる。
【０００７】
特許文献１には、ＣＰＵを搭載した制御部とメモリ部とを有し、メモリ部は常設の主メモリ部とシステム規模に応じて増設される増設メモリパッケージの実装部とからなる情報処理システムにおける増設メモリパッケージ実装状態認識方式の発明が記載されている。この発明において、メモリ容量表示信号生成部は、前記増設メモリパッケージの実装部に設けられシステムリセット信号がアクティブになったときに前記増設メモリパッケージの実装状態およびメモリ容量を表す信号を出力する。増設メモリ容量表示レジスタは、前記主メモリ部に設けられ前記メモリ容量表示信号生成部から出力された信号を取り込む。増設メモリページアドレス格納レジスタは、前記増設メモリパッケージに設けられ該増設メモリパッケージのマッピングページアドレスを格納する。増設メモリ選択信号生成回路は、前記増設メモリパッケージに設けられ前記増設メモリページアドレス格納レジスタのマッピングページアドレスと前記制御部が出力するアドレス信号とから増設メモリ選択信号を生成する。制御部は、前記システムリセット信号がインアクティブになったときに前記増設メモリ容量表示レジスタの内容を読み出して前記増設メモリパッケージの実装状態を認識し、前記増設メモリパッケージが実装されている場合にはメモリ容量に従って前記増設メモリパッケージを前記ＣＰＵのアドレス空間にマッピングして前記増設メモリパッケージのマッピングページアドレスを前記増設メモリページアドレス格納レジスタに設定する。この特許文献１の発明は、システムリセット信号がアクティブになったときに動作するので、増設したメモリを使用するためにはＯＳの再起動が必要になる。
【０００８】
特許文献２には、第１のメモリと、該第１のメモリ内の情報を処理するプロセッサとを有し、電源が投入された状態で第２のメモリを増設することができる情報処理装置におけるメモリ管理方法の発明が記載されている。この発明は、前記プロセッサと前記第１及び第２のメモリの少なくともいずれかとを接続し、前記プロセッサに接続された前記第１及び第２のメモリの容量を記憶し、前記プロセッサと前記第１及び第２のメモリ各々が接続されているか否かに関する情報を記憶する。この特許文献２の発明は、電源が投入された状態で第２のメモリを物理的に接続したときのノイズの問題を解消するものである。
【０００９】
【特許文献１】特開平５−３４２０９２号公報
【特許文献２】特開平１１−２７２５４７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
本発明の目的は、ＯＳ起動後に物理メモリのオンライン増設があった場合に、その物理メモリを有効利用する方法を提供することである。
【課題を解決するための手段】
【００１１】
以下に、［発明を実施するための最良の形態］で使用される番号・符号を用いて、［課題を解決するための手段］を説明する。これらの番号・符号は、［特許請求の範囲］の記載と［発明を実施するための最良の形態］との対応関係を明らかにするために括弧付きで付加されたものである。ただし、それらの番号・符号を、［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【００１２】
本発明によるオンライン増設メモリの使用方法は、ＯＳ起動後に増設される物理メモリ（１４）を検出するステップと、ＯＳ起動後に増設される物理メモリ（１４）が検出されている場合には、当該物理メモリ（１４）をスワップ領域として、ページングを行うステップとを有する。
【００１３】
また、本発明によるオンライン増設メモリの使用方法は、ＯＳ起動後に増設される物理メモリ（１４）を検出するステップと、ＯＳ起動後に増設される物理メモリ（１４）が検出されていない場合には、外部記憶装置（１２）をスワップ領域として、ページングを行うステップと、ＯＳ起動後に増設される物理メモリ（１４）が検出されている場合には、当該物理メモリ（１４）と外部記憶装置（１２）とをスワップ領域として、ページングを行うステップとを有する。
【００１４】
また、本発明によるオンライン増設メモリの使用方法は、複数のエントリを有するメモリ・スワップ管理テーブル（１７）を作成するステップと、前記複数のエントリの各々は、ＯＳ起動後に増設される物理メモリ（１４）におけるある領域が使用中か未使用かを示す情報を保持し、ページアウトを行う場合には、その領域が未使用を示している前記エントリを検索するステップと、その領域が未使用を示しているエントリが検索されたときには、前記物理メモリ（１４）へページアウトを行うステップと、その領域が未使用を示しているエントリが検索されなかったときには、外部記憶装置（１２）へページアウトを行うステップとを具備する。
【００１５】
また、本発明によるオンライン増設メモリの使用方法は、複数のエントリを有するメモリ・スワップ管理テーブル（１７）を作成するステップと、前記複数のエントリの各々は、ＯＳ起動後に増設される物理メモリ（１４）におけるある領域が使用中か未使用かを示す情報を保持し、ページアウトを行う場合には、その領域が未使用を示している前記エントリを検索するステップと、その領域が未使用を示しているエントリが検索されたときには、前記物理メモリ（１４）へページアウトを行うステップと、その領域が未使用を示しているエントリが検索されなかったときには、いずれかのエントリについて、その領域の内容を外部記憶装置（１２）に掃き出し、前記物理メモリ（１４）へページアウトを行うステップとを具備する。
【００１６】
また、本発明によるオンライン増設メモリの使用方法は、ＯＳ起動後に増設された物理メモリ（１４）の使用率が一定の水準を超えたときに、バックグラウンドで、いずれかのページについて、その領域の内容を外部記憶装置（１２）に掃き出し、ＯＳ起動後に増設された前記物理メモリ（１４）に空き領域を確保するステップと、ページアウトを行う場合には、前記物理メモリ（１４）へページアウトを行うステップとを具備する。
【００１７】
また、本発明によるオンライン増設メモリの使用方法は、ページアウト対象のページが、優先順位の低いプロセス又は実行頻度の低いプロセスによって使用されるものか否かを判断するステップと、（甲）優先順位の低いプロセス又は実行頻度の低いプロセスによって使用されるものであると判断された場合には、ページアウトを行う場合に、外部記憶装置（１２）へページアウトを行うステップと、（乙）優先順位の低いプロセス又は実行頻度の低いプロセスによって使用されるものでは無いと判断された場合には、複数のエントリを有するメモリ・スワップ管理テーブル（１７）を作成するステップと、前記複数のエントリの各々は、ＯＳ起動後に増設される物理メモリ（１４）におけるある領域が使用中か未使用かを示す情報を保持し、ページアウトを行う場合に、その領域が未使用を示している前記エントリを検索するステップと、その領域が未使用を示しているエントリが検索されたときには、前記物理メモリ（１４）へページアウトを行うステップと、その領域が未使用を示しているエントリが検索されなかったときには、いずれかのエントリについて、その領域の内容を外部記憶装置（１２）に掃き出し、前記物理メモリ（１４）へページアウトを行うステップとを具備する。
【００１８】
また、本発明によるオンライン増設メモリの使用方法は、ＯＳ起動後に増設された物理メモリ（１４）の使用率が一定の水準を超えたときに、バックグラウンドで、いずれかのページについて、その領域の内容を外部記憶装置（１２）に掃き出し、ＯＳ起動後に増設された前記物理メモリ（１４）に空き領域を確保するステップと、ページアウト対象のページが、優先順位の低いプロセス又は実行頻度の低いプロセスによって使用されるものか否かを判断するステップと、（甲）優先順位の低いプロセス又は実行頻度の低いプロセスによって使用されるものであると判断された場合には、ページアウトを行う場合に、外部記憶装置（１２）へページアウトを行うステップと、（乙）優先順位の低いプロセス又は実行頻度の低いプロセスによって使用されるものでは無いと判断された場合には、ページアウトを行う場合に、ＯＳ起動後に増設された前記物理メモリ（１４）へページアウトを行うステップとを具備する。
【００１９】
また、本発明によるオンライン増設メモリの使用方法は、複数のエントリを有するメモリ・スワップ管理テーブル（１７）を作成するステップと、前記複数のエントリの各々は、ＯＳ起動後に増設される物理メモリ（１４）における物理アドレスと、仮想アドレスとの対応関係を示す情報を保持すると共に、その物理メモリ（１４）の領域が使用中か未使用かを識別する情報を保持し、ページインを行う場合には、仮想アドレスが一致する前記エントリを検索するステップと、仮想アドレスが一致するエントリが検索されたときには、前記物理メモリ（１４）からページインを行うステップと、仮想アドレスが一致するエントリが検索されなかったときには、前記外部記憶装置（１２）からページインを行うステップとを具備する。
【００２０】
また、本発明によるプログラムは、ＯＳ起動後に増設される物理メモリ（１４）を検出する手順と、ＯＳ起動後に増設される物理メモリ（１４）が検出されている場合には、当該物理メモリ（１４）をスワップ領域として、ページングを行う手順とをコンピュータに実行させる。前記プログラムは、ＯＳの一部とすることができる。
【００２１】
また、本発明によるプログラムは、ＯＳ起動後に増設される物理メモリ（１４）を検出する手順と、ＯＳ起動後に増設される物理メモリ（１４）が検出されていない場合には、外部記憶装置（１２）をスワップ領域として、ページングを行う手順と、ＯＳ起動後に増設される物理メモリ（１４）が検出されている場合には、当該物理メモリ（１４）と外部記憶装置（１２）とをスワップ領域として、ページングを行う手順とをコンピュータに実行させる。前記プログラムは、ＯＳの一部とすることができる。
【００２２】
また、本発明による情報処理装置（１０）は、ＯＳ起動後に増設される物理メモリ（１４）を検出する検出部と、ＯＳ起動後に増設される物理メモリ（１４）が検出されている場合には、当該物理メモリ（１４）をスワップ領域として、ページングを行うページング機構とを有する。
【００２３】
また、本発明による情報処理装置（１０）は、ＯＳ起動後に増設される物理メモリ（１４）を検出する検出部と、ＯＳ起動後に増設される物理メモリ（１４）が検出されていない場合には、外部記憶装置（１２）をスワップ領域として、ページングを行うと共に、ＯＳ起動後に増設される物理メモリ（１４）が検出されている場合には、当該物理メモリ（１４）と外部記憶装置（１２）とをスワップ領域として、ページングを行うページング機構とを有する。
【発明の効果】
【００２４】
本発明によれば、小規模なシステム変更により、オンライン増設された物理メモリを有効利用することができる。物理メモリの増設後に、その物理メモリ量に応じた再初期化処理を実行することなく、スワップデバイスとしての外部記憶装置よりも高速な物理メモリの利用が可能になる。
【発明を実施するための最良の形態】
【００２５】
当実施の形態では、電源をオンにしたまま物理メモリの増設が可能な情報処理装置において、ＯＳは、オンラインで増設した物理メモリを、仮想メモリとのマッピング領域としては使用しない。当実施の形態では、オンラインで増設した物理メモリを、仮想メモリとのマッピング領域としてではなく、スワップ領域として使用する。これにより、ＯＳを再起動することなく、オンライン増設した物理メモリを有効利用する。
【００２６】
従来は、オンラインで物理メモリを増設した場合であっても、再起動を行わない限り増設した物理メモリをメインメモリとして使用することができなかった。当実施の形態では、オンライン増設した物理メモリを高速なスワップデバイスとして使用することで、再起動を行うことなしにオンライン増設した物理メモリを有効利用することを可能にする。また、当実施の形態によりスワップデバイスとして使用される増設メモリは、再起動することによりＯＳに認識され、メインメモリとして使用することが可能になる。
【００２７】
図２に、本発明に係る情報処理装置の説明図を示す。図２において、情報処理装置１０は、起動前搭載メモリ１１と、外部記憶装置１２と、メモリ増設検出部１３とを有し、電源をオンにしたまま物理メモリ１４を増設することができる。起動前搭載メモリ１１は、ＯＳ起動前から搭載されている物理メモリであり、メインメモリとして利用される。外部記憶装置１２は、磁気ディスクで成り、スワップデバイスとして使用される。メモリ増設検出部１３は、増設される物理メモリ１４を検出する。
【００２８】
メモリ増設検出部１３は、物理メモリの増設を検出すると、増設メモリ情報テーブル１６を作成する。図３に、増設メモリ情報テーブルの一例を示す。図示するように、増設メモリ情報テーブル１６は、増設された物理メモリの開始物理アドレスと終了物理アドレスとを含む。開始物理アドレスは、増設メモリの先頭アドレスを示し、終了物理アドレスは、増設メモリの最後尾のアドレスを示す。この増設メモリ情報テーブル１６は、メモリ増設検出部１３によって、ＯＳ１５に通知される。
【００２９】
ＯＳ１５は、情報処理装置１０を動作させる基本ソフトであり、当実施の形態では、メモリ・スワップ管理テーブル１７を有している。メモリ・スワップ管理テーブル１７は、メモリ増設検出部１３によって通知される増設メモリ情報テーブル１６に基づいて作成され、増設された物理メモリに関する情報を保持する。図４に、メモリ・スワップ管理テーブルの一例を示す。図示するように、メモリ・スワップ管理テーブル１７は、メモリ・スワップ領域上の物理アドレスと仮想アドレスとの対応関係を示す。メモリ・スワップ領域上の物理アドレスは、増設された物理メモリをページ単位に区切った場合における各ページの先頭を示す物理アドレスである。すなわち、メモリ・スワップ管理テーブル１７の各エントリは、ページごとのデータを格納している。
【００３０】
図４において、使用中情報の欄は、そのエントリが使用中か未使用かを示す。使用中情報がオンの場合、そのエントリに対応する増設メモリのページは使用中であり、仮想アドレスで示されるデータが格納されている。使用中情報がオフの場合、そのエントリに対応する増設メモリのページは未使用であり、仮想アドレスの欄にはデータが格納されていない。仮想アドレスの欄は、仮想アドレス空間上のアドレスを示している。
【００３１】
図５は、メモリ・スワップ管理テーブル５３と、ディスク・スワップ管理テーブル５２との関係について説明する図である。図５において、スワップ管理テーブル５１は、スワップメモリデバイスを管理するメモリ・スワップ管理テーブル５３や、スワップディスクデバイスを管理するディスク・スワップ管理テーブル５２にリンクする。オンライン増設される物理メモリが無い場合、スワップ管理テーブル５１は、ディスクスワップ管理テーブル５２にリンクしている。物理メモリがオンライン増設された場合、上図に示するように、メモリ・スワップ管理テーブル５３が作成される。このとき、オンライン増設されたスワップメモリデバイスをスワップディスクデバイスに優先させて使用する。そのため、メモリ・スワップ管理テーブル５３は、下図に示するように、ディスク・スワップ管理テーブル５２より前にリンクする。なお、更に物理メモリが追加されると、それに応じてメモリ・スワップ管理テーブルが作成されるが、新たに作成されるメモリ・スワップ管理テーブルは、既にリンクされているメモリ・スワップ管理テーブル５３の次にリンクされる。
【００３２】
図２において、物理メモリ１４の増設が検出されていない場合、外部記憶装置１２がスワップデバイスとして使用され、ページングは、ディスク・スワップ領域に対して行われる。情報処理装置１０に、物理メモリ１４が増設されると、物理メモリ１４もスワップデバイスとして使用され、ページングは、メモリ・スワップ領域と、ディスク・スワップ領域とに対して行われる。増設メモリ検出部１３は、物理メモリ１４の増設を検出すると、情報処理装置１０上で動作するＯＳ１５に対して増設メモリ情報テーブル１６を送信し、物理メモリ１４の増設を通知する。情報処理装置１０上で動作するＯＳ１５は、増設メモリ情報テーブル１６を受信すると、増設メモリ情報テーブル１６の開始物理アドレス及び終了物理アドレスの値を基に、メモリ・スワップ管理テーブル１７を作成する。
【００３３】
図６及び図７は、ページアウトの動作を説明する図である。今、情報処理装置１０では、メモリ増設検出部１３によって、物理メモリ１４の増設が検出されているとする。従って、スワップデバイスとしては、スワップディスクデバイスの他、スワップメモリデバイスも使用することができる。すなわち、スワップ領域としては、ディスク・スワップ領域の他、メモリ・スワップ領域も使用することができる。
【００３４】
さて、起動前搭載メモリ１１に空き領域がなくなると、空き領域を確保するために、起動前搭載メモリ１１上のページをスワップ領域に退避する処理が行われる。このとき、最初にメモリ・スワップ管理テーブル１７を参照する（Ｓ１０）。メモリ・スワップ管理テーブル１７は、図４に例示したように、メモリ・スワップ領域上の物理アドレスの欄、使用中情報の欄、仮想アドレスの欄とを含む。すなわち、増設された物理メモリ１４における物理アドレスと、仮想アドレスとの対応関係を示すと共に、そのページが使用中か未使用かを識別するエントリを有している。
【００３５】
メモリ・スワップ管理テーブル１７を参照したら、未使用ページを検索する（Ｓ１１）。メモリ・スワップ管理テーブル１７における使用中情報の欄を読み出し、使用中情報がオフのエントリを探す。使用中情報がオフのエントリは、未使用のページであるから、使用中情報がオフのエントリを見つけて、未使用ページを取得する（Ｓ１２）。さて、未使用ページのエントリには、その未使用ページに対応するメモリ・スワップ領域上の物理アドレスが格納されている。よって、メモリ・スワップ領域上の物理アドレスの欄を参照して、物理アドレスを取得する（Ｓ１３）。
【００３６】
取得された物理アドレスで示されるメモリ・スワップ領域上のページは未使用である。そこで、ここに、起動前搭載メモリ１１に保持されている退避ページを書き出す（Ｓ１４）。この書き出しにより、起動前搭載メモリ１１には空き領域が確保される。続いて、メモリ・スワップ管理テーブルを更新する（Ｓ１５）。書き出しを行ったページに対応するエントリについて、使用中情報の欄をオフからオンに書き換える。同時に、仮想アドレスの欄に、書き出した退避ページの仮想アドレスを格納する。
【００３７】
上記のように、図６，７で説明されるページアウトの動作においては、スワップデバイスとして、スワップディスクデバイスではなくスワップメモリデバイスが利用される。このように、スワップ領域として、ディスク・スワップ領域ではなく、メモリ・スワップ領域を利用することで、高速なスワップ処理が行われ、情報処理装置の性能低下を防ぐことが可能になる。
【００３８】
従来手法では、ＯＳ起動時から使用中の物理メモリをメインメモリとして使用し、ＯＳ起動後に増設したメモリは未使用状態としている。メインメモリの空き領域がなくなった場合には、メインメモリ中の最も長い時間使用されていない領域（ページ）をスワップディスクデバイスに掃き出すことにより、メインメモリに空き領域を確保していた。当実施の形態では、ＯＳ起動時から使用中の物理メモリをメインメモリとして使用し、さらに起動後に増設した物理メモリをスワップメモリデバイスとして使用している。そして、メインメモリの空き領域がなくなった場合には、メインメモリ中の最も長い時間使用されていない領域（ページ）をスワップメモリデバイスに掃き出すことにより、メインメモリに空き領域を確保している。
【００３９】
図８は、スワップメモリデバイスに空き領域が無い場合におけるページアウトの動作を説明する図である。図示するように、スワップメモリデバイスの全てのページは使用中である。よって、メモリ・スワップ領域の未使用ページを検索しても（Ｓ１１）、未使用ページを取得することができない（Ｓ１２）。起動前搭載メモリに空き領域が無くなり、退避ページを掃き出すことになったとしても、スワップメモリデバイスには空き領域が無い。この場合には、図示するように、スワップディスクデバイスを利用してページアウトを行うことができる。すなわち、ディスク・スワップ領域の未使用ページを検索し、ディスク・スワップ領域における未使用ページを取得する。そして、このディスク・スワップ領域における未使用ページに対して、起動前搭載メモリの退避ページを書き出す。
【００４０】
図９は、スワップメモリデバイスに空き領域が無い場合におけるページアウトの動作を説明する他の図である。図示するように、スワップメモリデバイスの全てのページは使用中である。よって、メモリ・スワップ領域の未使用ページを検索しても（Ｓ１１）、未使用ページを取得することができない（Ｓ１２）。起動前搭載メモリに空き領域が無くなり、退避ページを掃き出すことになったとしても、スワップメモリデバイスには空き領域が無い。この場合には、図８に示したように、スワップディスクデバイスに対して、直接起動前搭載メモリの退避ページを書き出しても良い。
【００４１】
しかし、使用される確率の高いページは、スワップディスクデバイス側ではなく、スワップメモリデバイス側に保持しておくのが便宜である。よって、図９の例では、まず、スワップメモリデバイス上で最も長い間使用されていないページを検索する。そして、最も長い間使用されていないページの内容をスワップディスクデバイス上の空き領域に書き出す（Ａ）。スワップディスクデバイスへの掃き出しが完了後、起動前搭載メモリにおける退避ページをメモリスワップデバイス上の空き領域となったページに書き出す（Ｂ）。
【００４２】
メモリスワップデバイスに書き出された退避ページは、長い間使用されていないページに比べると、再び起動前搭載メモリに読み込まれる可能性が高いと言える。従って、当該退避ページを高速なメモリスワップデバイスに保持しておくことにより、ページングを行うことによる情報処理装置の性能低下を抑制することが可能になる。
【００４３】
ページアウトを行う際に、スワップメモリデバイスが一杯であった場合においては、上記のように、スワップメモリデバイスに長時間滞留しているページなどをスワップディスクデバイスへ移送することができる（グレードダウン）。しかしながら、図１０に説明するように、スワップディスクデバイス６３へのグレードダウンは、バックグラウンドで行うこともできる。ＯＳは、スワップメモリデバイス６２の使用率が高くなると、ＣＰＵの空き時間を利用して、スワップメモリデバイス６２から使用頻度が低いページをスワップディスクデバイス６３へ書き出す。これにより、スワップメモリデバイス６２に十分な空き領域を確保し、ページアウトの際には、その空き領域を利用して、起動前搭載メモリ６１から退避ページを書き出す。
【００４４】
前述したとおり、好適なページアウト動作の例としては、起動前搭載メモリからページアウトする先をスワップメモリデバイスとするものである。まずは、スワップメモリデバイスにページアウトを行い、スワップメモリデバイスの使用率が高くなったら、ＬＲＵアルゴリズムなどで、古いページをスワップディスクデバイスに移す。これにより、近々使いそうなページは高速なスワップメモリデバイス側に、あまり使わないページは比較的低速なスワップディスクデバイス側に、それぞれ階層的に格納することが可能となる。一方、図１１に説明するように、ページアウト先としてスワップディスクデバイス６３を選択することもできる。例えば、ページアウト対象のページが優先順位の低いプロセス（タスク）の場合や、実行頻度の低いプロセス（タスク）の場合には、低速なスワップディスクデバイス６３にはじめからページアウトすることで、グレードダウンの負荷を低減することが可能となる。
【００４５】
図１２及び図１３は、ページインの動作を説明する図である。今、情報処理装置１０では、メモリ増設検出部１３によって、物理メモリ１４の増設が検出されているとする。従って、スワップデバイスとして、スワップディスクデバイスの他、スワップメモリデバイスも使用されている。すなわち、スワップ領域として、ディスク・スワップ領域の他、メモリ・スワップ領域も使用されている。
【００４６】
さて、起動前搭載メモリ１１に処理に必要なページが無く、ページフォールトが発生すると、スワップ領域から必要なページを読み出し、当該ページを起動前搭載メモリ１１上の空きページに書き込む処理が行われる。このとき、最初にメモリ・スワップ管理テーブル１７を参照する（Ｓ２０）。メモリ・スワップ管理テーブル１７には、メモリ・スワップ領域上の物理アドレスの欄、使用中情報の欄、仮想アドレスの欄とがある。ここで、ページフォールトを発生させたページの仮想アドレスを検索する（Ｓ２１）。すなわち、メモリ・スワップ管理テーブル１７の仮想アドレスの欄を参照し、仮想アドレスが一致するエントリを探す。
【００４７】
そして、起動前搭載メモリ１１に読み込むページを取得する（Ｓ２２）。読み込みページのエントリには、そのページに対応するメモリ・スワップ領域上の物理アドレスが格納されている。よって、メモリ・スワップ領域上の物理アドレスの欄を参照して、物理アドレスを取得する（Ｓ２３）。
【００４８】
取得された物理アドレスで示されるメモリ・スワップ領域上のページには処理に必要なページが格納されている。そこで、このページを読み出し、起動前搭載メモリ１１の空きページへ書き込む（Ｓ２４）。この読み込み動作により、起動前搭載メモリ１１には処理に必要なページが確保される。続いて、メモリ・スワップ管理テーブルを更新する（Ｓ２５）。読み込みを行ったページに対応するエントリについて、使用中情報の欄をオンからオフに書き換える。同時に、仮想アドレスの欄のデータを削除する。
【００４９】
上記のように、図１２，１３で説明されるページインの動作においては、スワップデバイスとして、スワップディスクデバイスではなくスワップメモリデバイスが利用される。このように、スワップ領域として、ディスク・スワップ領域ではなく、メモリ・スワップ領域を利用することで、高速なスワップ処理が行われ、情報処理装置の性能低下を防ぐことが可能になる。
【００５０】
ページインの動作において、メモリ・スワップ管理テーブル１７を参照し（Ｓ２０）、ページフォールトを発生させたページの仮想アドレスを検索しても（Ｓ２１）、該当する仮想アドレスが見つからなかった場合には、読み込みページを取得することができない（Ｓ２２）。この場合には、スワップディスクデバイスを利用してページインを行うことができる。すなわち、ディスク・スワップ領域に格納されているページの仮想アドレスを検索し、ディスク・スワップ領域における読み込みページを取得する。そして、このディスク・スワップ領域における読み込みページを、起動前搭載メモリへ読み込む。
【００５１】
当実施の形態では、増設された物理メモリを仮想メモリとのマッピングに使用するのではなく、スワップ領域として使用する。この方法によって、仮想メモリとのマッピングを行う場合に必要となる、搭載されている全てのメモリに対する再初期化処理が不要となり、ＯＳの中核である仮想記憶機構への変更を削減することが可能になる。
【図面の簡単な説明】
【００５２】
【図１】図１は、物理メモリの増設について説明する図である。
【図２】図２は、本発明に係る情報処理装置の一例を示す図である。
【図３】図３は、増設メモリ情報テーブルの一例を示す図である。
【図４】図４は、メモリ・スワップ管理テーブルの一例を示す図である。
【図５】図５は、スワップ管理テーブルのリンクについて説明する図である。
【図６】図６は、ページアウトの動作を説明する図である。
【図７】図７は、ページアウトの動作を説明する流れ図である。
【図８】図８は、ページアウトの動作を説明する他の図である。
【図９】図９は、ページアウトの動作を説明するその他の図である。
【図１０】図１０は、バックグラウンドで行うグレードダウンについて説明する図である。
【図１１】図１１は、ページアウト先としてスワップディスクデバイスを選択することを説明する図である。
【図１２】図１２は、ページインの動作を説明する図である。
【図１３】図１３は、ページインの動作を説明する流れ図である。
【符号の説明】
【００５３】
１０，１００  情報処理装置
１１，６１，１０１  起動前搭載メモリ 
１４，１０２  物理メモリ
１２  外部記憶装置
１３  メモリ増設検出部
１５，１０４  ＯＳ
１６  増設メモリ情報テーブル
１７，５３  メモリ・スワップ管理テーブル
５１  スワップ管理テーブル
５２  ディスク・スワップ管理テーブル
６２  スワップメモリデバイス
６３  スワップディスクデバイス
１０３  メモリコントローラ
１０５  マッピングテーブル
【図１】
2008065766.tif 000003
【図２】
2008065766.tif 000004
【図３】
2008065766.tif 000005
【図４】
2008065766.tif 000006
【図５】
2008065766.tif 000007
【図６】
2008065766.tif 000008
【図７】
2008065766.tif 000009
【図８】
2008065766.tif 000010
【図９】
2008065766.tif 000011
【図１０】
2008065766.tif 000012
【図１１】
2008065766.tif 000013
【図１２】
2008065766.tif 000014
【図１３】
2008065766.tif 000015