JP2000276404A - 仮想記憶装置および仮想記憶方法、並びに記録媒体 - Google Patents
仮想記憶装置および仮想記憶方法、並びに記録媒体Info
- Publication number
- JP2000276404A JP2000276404A JP11085053A JP8505399A JP2000276404A JP 2000276404 A JP2000276404 A JP 2000276404A JP 11085053 A JP11085053 A JP 11085053A JP 8505399 A JP8505399 A JP 8505399A JP 2000276404 A JP2000276404 A JP 2000276404A
- Authority
- JP
- Japan
- Prior art keywords
- page
- virtual
- variable
- size
- address
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
- G06F12/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/652—Page size control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】
【課題】 可変長ページを用いてフォールトの発生を抑
制し、プログラムの実行速度を向上させる。 【解決手段】 ユーザプログラム1が参照した仮想アド
レスがTLB3にないとき、TLB不在ページ検出手段
8が起動され、TLB不在ページ検出手段8はTLB不
在ページ置き換え手段10を起動し、TLB不在ページ
置き換え手段10はページ配置参照手段4を起動し、ペ
ージ配置参照手段4によりページ配置記憶部5からユー
ザプログラム1が参照した仮想アドレスに対応するペー
ジ情報が取得され、TLB3に格納される。これによ
り、ユーザプログラム1は、上記仮想アドレスへの参照
が可能となる。また、ユーザプログラム1は、必要に応
じて、ページ分割手段6、ページ結合手段7に指令して
ページの分割及び結合を行う。
制し、プログラムの実行速度を向上させる。 【解決手段】 ユーザプログラム1が参照した仮想アド
レスがTLB3にないとき、TLB不在ページ検出手段
8が起動され、TLB不在ページ検出手段8はTLB不
在ページ置き換え手段10を起動し、TLB不在ページ
置き換え手段10はページ配置参照手段4を起動し、ペ
ージ配置参照手段4によりページ配置記憶部5からユー
ザプログラム1が参照した仮想アドレスに対応するペー
ジ情報が取得され、TLB3に格納される。これによ
り、ユーザプログラム1は、上記仮想アドレスへの参照
が可能となる。また、ユーザプログラム1は、必要に応
じて、ページ分割手段6、ページ結合手段7に指令して
ページの分割及び結合を行う。
Description
【0001】
【発明の属する技術分野】本発明は、仮想記憶装置およ
び仮想記憶方法、並びに記録媒体に関し、特に、可変長
のページを導入することにより、フォールトの発生を抑
制し、プログラムの実行速度を向上させるようにした仮
想記憶装置および仮想記憶方法、並びに記録媒体に関す
る。
び仮想記憶方法、並びに記録媒体に関し、特に、可変長
のページを導入することにより、フォールトの発生を抑
制し、プログラムの実行速度を向上させるようにした仮
想記憶装置および仮想記憶方法、並びに記録媒体に関す
る。
【0002】
【従来の技術】従来、仮想記憶システムは、オペレーテ
ィングシステムの管理する記憶装置を、ユーザプログラ
ムによる不適切な参照から保護したり、装備されている
記憶装置のデータと二次記憶装置のデータとを交換する
ことによって、ユーザプログラムが使用できる記憶装置
のメモリ容量を仮想的に増加したように見せかけるとい
う用途で使用されている。
ィングシステムの管理する記憶装置を、ユーザプログラ
ムによる不適切な参照から保護したり、装備されている
記憶装置のデータと二次記憶装置のデータとを交換する
ことによって、ユーザプログラムが使用できる記憶装置
のメモリ容量を仮想的に増加したように見せかけるとい
う用途で使用されている。
【0003】これまで、仮想記憶システムのページの大
きさは、4K(キロ)バイトや8Kバイトの単位で固定
であり、オペレーティングシステム内部の固定の領域に
ついてのみ、決められた数の可変長のページを、TLB
(トランスレーションルックアサイドバッファ)エント
リを占有する形で参照可能としていた。
きさは、4K(キロ)バイトや8Kバイトの単位で固定
であり、オペレーティングシステム内部の固定の領域に
ついてのみ、決められた数の可変長のページを、TLB
(トランスレーションルックアサイドバッファ)エント
リを占有する形で参照可能としていた。
【0004】この固定の領域の用途としては、入出力装
置と通信を行うための通信用のバッファや、オペレーテ
ィングシステム内部の使用頻度の高い管理領域などが挙
げられる。
置と通信を行うための通信用のバッファや、オペレーテ
ィングシステム内部の使用頻度の高い管理領域などが挙
げられる。
【0005】
【発明が解決しようとする課題】しかしながら、従来の
方法には次のような問題点があった。第1の問題点は、
ユーザプログラムが大きくなるに連れて、フォールトの
発生する確率が大きくなることである。一般に「(TL
Bのエントリ数)×(ページの大きさ)」で表される記
憶領域より大きなユーザプログラムを実行すると、TL
Bエントリの置き換えが発生するようになり、システム
の性能が低下する。
方法には次のような問題点があった。第1の問題点は、
ユーザプログラムが大きくなるに連れて、フォールトの
発生する確率が大きくなることである。一般に「(TL
Bのエントリ数)×(ページの大きさ)」で表される記
憶領域より大きなユーザプログラムを実行すると、TL
Bエントリの置き換えが発生するようになり、システム
の性能が低下する。
【0006】第2の問題点は、固定の領域を可変長ペー
ジで常に参照可能とすると、TLBエントリのいくつか
を、常時固定的で使用することとなるため、自由に割り
当てることのできるTLBエントリの数が減少し、第1
の問題点と同様に、システムの性能を低下させることで
ある。
ジで常に参照可能とすると、TLBエントリのいくつか
を、常時固定的で使用することとなるため、自由に割り
当てることのできるTLBエントリの数が減少し、第1
の問題点と同様に、システムの性能を低下させることで
ある。
【0007】第3の問題点は、単にページのサイズを一
律に増加させた場合、記憶装置の障害時等に、その大き
なページのすべてを別の記憶要素と置き換えて使用しな
ければならないため、記憶装置の内容のコピー等などを
含めた置き換え時間が長くなり、また、正常な部分も置
き換えなければならないため、記憶装置の使用効率が下
がることである。
律に増加させた場合、記憶装置の障害時等に、その大き
なページのすべてを別の記憶要素と置き換えて使用しな
ければならないため、記憶装置の内容のコピー等などを
含めた置き換え時間が長くなり、また、正常な部分も置
き換えなければならないため、記憶装置の使用効率が下
がることである。
【0008】本発明はこのような状況に鑑みてなされた
ものであり、ユーザプログラムの実行時のフォールトの
発生を抑制し、効率的にユーザプログラムを実行するこ
とができるようにするものである。
ものであり、ユーザプログラムの実行時のフォールトの
発生を抑制し、効率的にユーザプログラムを実行するこ
とができるようにするものである。
【0009】
【課題を解決するための手段】請求項1に記載の仮想記
憶装置は、仮想空間上に配置される仮想ページの大きさ
を動的に変更する仮想記憶装置であって、仮想ページに
対応する可変長物理ページの先頭ページの物理アドレス
と、可変長物理ページの大きさを示すサイズ情報とを記
憶する第1の記憶手段と、所定の仮想アドレスから、仮
想アドレスに対応する物理アドレスを含む可変長物理ペ
ージを検索する検索手段と、検索手段によって検索され
た可変長物理ページの先頭ページの物理アドレスと、可
変長物理ページの大きさを示すサイズ情報とから、可変
長物理ページに対応する仮想ページの先頭ページの仮想
アドレスを算出する算出手段と、算出手段によって算出
された可変長物理ページに対応する仮想ページの先頭ペ
ージの仮想アドレスと、可変長物理ページの先頭ページ
の物理アドレスと、可変長物理ページの大きさを示すサ
イズ情報とを記憶する第2の記憶手段とを備え、可変長
物理ページの大きさは、所定の基本ページサイズの2の
ベキ乗倍の任意の大きさに設定されることを特徴とす
る。また、検索手段は、仮想アドレスを基本ページサイ
ズで除算した結果に基づいて、第1の記憶手段から仮想
アドレスに対応する可変長物理ページを検索し、可変長
物理ページの先頭ページの物理アドレスと、可変長物理
ページの大きさを示すサイズ情報を取得するようにする
ことができる。また、算出手段は、仮想アドレスが仮想
ページに含まれるとき、仮想アドレスを可変長物理ペー
ジの大きさで除算した余りを切り捨て、仮想ページの先
頭ページの仮想アドレスを算出するようにすることがで
きる。また、所定の仮想アドレスに対応する可変物理ペ
ージを分割する分割手段をさらに設けるようにすること
ができる。また、所定の仮想アドレスに対応する可変物
理ページを結合する結合手段をさらに設けるようにする
ことができる。また、所定の仮想アドレスに対応する可
変物理ページを結合するページ結合手段と、ページ結合
手段による結合動作の履歴を記憶する履歴記憶手段とを
さらに設け、ページ結合手段は、履歴記憶手段に記憶さ
れている履歴に基づいて、可変長物理ページを結合する
ようにすることができる。請求項8に記載の仮想記憶方
法は、仮想空間上に配置される仮想ページの大きさを動
的に変更する仮想記憶方法であって、仮想ページに対応
する可変長物理ページの先頭ページの物理アドレスと、
可変長物理ページの大きさを示すサイズ情報とを記憶す
る第1の記憶ステップと、所定の仮想アドレスから、仮
想アドレスに対応する物理アドレスを含む可変長物理ペ
ージを検索する検索ステップと、検索ステップにおいて
検索された可変長物理ページの先頭ページの物理アドレ
スと、可変長物理ページの大きさを示すサイズ情報とか
ら、可変長物理ページに対応する仮想ページの先頭ペー
ジの仮想アドレスを算出する算出ステップと、算出ステ
ップにおいて算出された可変長物理ページに対応する仮
想ページの先頭ページの仮想アドレスと、可変長物理ペ
ージの先頭ページの物理アドレスと、可変長物理ページ
の大きさを示すサイズ情報とを記憶する第2の記憶ステ
ップとを備え、可変長物理ページの大きさは、所定の基
本ページサイズの2のベキ乗倍の任意の大きさに設定さ
れることを特徴とする。請求項9に記載の記録媒体は、
請求項7に記載の仮想記憶方法を実行可能なプログラム
が記録されていることを特徴とする。本発明に係る仮想
記憶装置および仮想記憶方法、並びに記録媒体において
は、仮想ページに対応する可変長物理ページの先頭ペー
ジの物理アドレスと、可変長物理ページの大きさを示す
サイズ情報とを記憶し、所定の仮想アドレスから、仮想
アドレスに対応する物理アドレスを含む可変長物理ペー
ジを検索し、検索された可変長物理ページの先頭ページ
の物理アドレスと、可変長物理ページの大きさを示すサ
イズ情報とから、可変長物理ページに対応する仮想ペー
ジの先頭ページの仮想アドレスを算出し、算出された可
変長物理ページに対応する仮想ページの先頭ページの仮
想アドレスと、可変長物理ページの先頭ページの物理ア
ドレスと、可変長物理ページの大きさを示すサイズ情報
とを記憶し、可変長物理ページの大きさは、所定の基本
ページサイズの2のベキ乗倍の任意の大きさに設定され
る。
憶装置は、仮想空間上に配置される仮想ページの大きさ
を動的に変更する仮想記憶装置であって、仮想ページに
対応する可変長物理ページの先頭ページの物理アドレス
と、可変長物理ページの大きさを示すサイズ情報とを記
憶する第1の記憶手段と、所定の仮想アドレスから、仮
想アドレスに対応する物理アドレスを含む可変長物理ペ
ージを検索する検索手段と、検索手段によって検索され
た可変長物理ページの先頭ページの物理アドレスと、可
変長物理ページの大きさを示すサイズ情報とから、可変
長物理ページに対応する仮想ページの先頭ページの仮想
アドレスを算出する算出手段と、算出手段によって算出
された可変長物理ページに対応する仮想ページの先頭ペ
ージの仮想アドレスと、可変長物理ページの先頭ページ
の物理アドレスと、可変長物理ページの大きさを示すサ
イズ情報とを記憶する第2の記憶手段とを備え、可変長
物理ページの大きさは、所定の基本ページサイズの2の
ベキ乗倍の任意の大きさに設定されることを特徴とす
る。また、検索手段は、仮想アドレスを基本ページサイ
ズで除算した結果に基づいて、第1の記憶手段から仮想
アドレスに対応する可変長物理ページを検索し、可変長
物理ページの先頭ページの物理アドレスと、可変長物理
ページの大きさを示すサイズ情報を取得するようにする
ことができる。また、算出手段は、仮想アドレスが仮想
ページに含まれるとき、仮想アドレスを可変長物理ペー
ジの大きさで除算した余りを切り捨て、仮想ページの先
頭ページの仮想アドレスを算出するようにすることがで
きる。また、所定の仮想アドレスに対応する可変物理ペ
ージを分割する分割手段をさらに設けるようにすること
ができる。また、所定の仮想アドレスに対応する可変物
理ページを結合する結合手段をさらに設けるようにする
ことができる。また、所定の仮想アドレスに対応する可
変物理ページを結合するページ結合手段と、ページ結合
手段による結合動作の履歴を記憶する履歴記憶手段とを
さらに設け、ページ結合手段は、履歴記憶手段に記憶さ
れている履歴に基づいて、可変長物理ページを結合する
ようにすることができる。請求項8に記載の仮想記憶方
法は、仮想空間上に配置される仮想ページの大きさを動
的に変更する仮想記憶方法であって、仮想ページに対応
する可変長物理ページの先頭ページの物理アドレスと、
可変長物理ページの大きさを示すサイズ情報とを記憶す
る第1の記憶ステップと、所定の仮想アドレスから、仮
想アドレスに対応する物理アドレスを含む可変長物理ペ
ージを検索する検索ステップと、検索ステップにおいて
検索された可変長物理ページの先頭ページの物理アドレ
スと、可変長物理ページの大きさを示すサイズ情報とか
ら、可変長物理ページに対応する仮想ページの先頭ペー
ジの仮想アドレスを算出する算出ステップと、算出ステ
ップにおいて算出された可変長物理ページに対応する仮
想ページの先頭ページの仮想アドレスと、可変長物理ペ
ージの先頭ページの物理アドレスと、可変長物理ページ
の大きさを示すサイズ情報とを記憶する第2の記憶ステ
ップとを備え、可変長物理ページの大きさは、所定の基
本ページサイズの2のベキ乗倍の任意の大きさに設定さ
れることを特徴とする。請求項9に記載の記録媒体は、
請求項7に記載の仮想記憶方法を実行可能なプログラム
が記録されていることを特徴とする。本発明に係る仮想
記憶装置および仮想記憶方法、並びに記録媒体において
は、仮想ページに対応する可変長物理ページの先頭ペー
ジの物理アドレスと、可変長物理ページの大きさを示す
サイズ情報とを記憶し、所定の仮想アドレスから、仮想
アドレスに対応する物理アドレスを含む可変長物理ペー
ジを検索し、検索された可変長物理ページの先頭ページ
の物理アドレスと、可変長物理ページの大きさを示すサ
イズ情報とから、可変長物理ページに対応する仮想ペー
ジの先頭ページの仮想アドレスを算出し、算出された可
変長物理ページに対応する仮想ページの先頭ページの仮
想アドレスと、可変長物理ページの先頭ページの物理ア
ドレスと、可変長物理ページの大きさを示すサイズ情報
とを記憶し、可変長物理ページの大きさは、所定の基本
ページサイズの2のベキ乗倍の任意の大きさに設定され
る。
【0010】
【発明の実施の形態】図1は、本発明の仮想記憶装置の
一実施の形態の構成例を示すブロック図である。図1に
示したように、本実施の形態は、中央処理装置2と記憶
装置11より構成され、中央処理装置2は、トランスレ
ーションルックアサイドバッファ(TLB)3と、プロ
グラム若しくはハードウェアによって構成されるTLB
不在ページ検出手段8と、図示せぬ演算器やレジスタよ
り構成されている。
一実施の形態の構成例を示すブロック図である。図1に
示したように、本実施の形態は、中央処理装置2と記憶
装置11より構成され、中央処理装置2は、トランスレ
ーションルックアサイドバッファ(TLB)3と、プロ
グラム若しくはハードウェアによって構成されるTLB
不在ページ検出手段8と、図示せぬ演算器やレジスタよ
り構成されている。
【0011】TLB3には、仮想アドレス、物理アドレ
ス、及びページの大きさを示すサイズ情報(以下では適
宜、ページサイズと記載する)が格納されるようになさ
れている。TLBの役割は、ユーザが指定した(アクセ
スした)仮想アドレスを、任意の物理アドレスに変換す
ることにある。このような変換を行う目的は、プロセス
ごとに仮想空間を用意することや、仮想空間に保護をか
けることなどである。
ス、及びページの大きさを示すサイズ情報(以下では適
宜、ページサイズと記載する)が格納されるようになさ
れている。TLBの役割は、ユーザが指定した(アクセ
スした)仮想アドレスを、任意の物理アドレスに変換す
ることにある。このような変換を行う目的は、プロセス
ごとに仮想空間を用意することや、仮想空間に保護をか
けることなどである。
【0012】また、ページの大きさに拘わらず、起動時
にはすべてのTLBエントリが空の状態となっており、
その状態で所定の仮想アドレスに対するアクセス(読み
込み又は書き込み)を行うと、まず、TLB不在を検出
し、次に、その仮想アドレスに対応するページ情報の検
索が行われ、その結果、TLB置換が発生し、正常アク
セスが可能となるという機序で、徐々にエントリが埋ま
って行く。
にはすべてのTLBエントリが空の状態となっており、
その状態で所定の仮想アドレスに対するアクセス(読み
込み又は書き込み)を行うと、まず、TLB不在を検出
し、次に、その仮想アドレスに対応するページ情報の検
索が行われ、その結果、TLB置換が発生し、正常アク
セスが可能となるという機序で、徐々にエントリが埋ま
って行く。
【0013】記憶装置11は、RAM(random
access memory)等で構成され、オペレー
ティングシステム12の制御によりユーザプログラム1
が実行されるようになされている。
access memory)等で構成され、オペレー
ティングシステム12の制御によりユーザプログラム1
が実行されるようになされている。
【0014】オペレーティングシステム12は、ソフト
ウェア的に、ページ配置参照手段4と、TLB不在ペー
ジ置き換え手段10と、物理メモリ配置を変更するため
のページ分割手段6及びページ結合手段7と、ページ情
報を記憶するページ配置記憶部5と、使用者が任意に作
成するユーザプログラム1とから構成され、ページ配置
記憶部5のページテーブル9に記憶されているページ情
報(物理アドレスとページサイズから構成される)によ
り、仮想記憶を実現するようになされている。
ウェア的に、ページ配置参照手段4と、TLB不在ペー
ジ置き換え手段10と、物理メモリ配置を変更するため
のページ分割手段6及びページ結合手段7と、ページ情
報を記憶するページ配置記憶部5と、使用者が任意に作
成するユーザプログラム1とから構成され、ページ配置
記憶部5のページテーブル9に記憶されているページ情
報(物理アドレスとページサイズから構成される)によ
り、仮想記憶を実現するようになされている。
【0015】ページ配置記憶部5には、物理アドレスと
ページの大きさを示す情報を含むページ情報が記述され
たページテーブル9が任意個含まれている。TLB不在
ページ検出手段8は、ユーザプログラム1がTLB3に
存在していない仮想アドレスを参照したときに、中央処
理装置2によって起動され、TLB不在ページ置き換え
手段10と協調して動作を行うようになされている。
ページの大きさを示す情報を含むページ情報が記述され
たページテーブル9が任意個含まれている。TLB不在
ページ検出手段8は、ユーザプログラム1がTLB3に
存在していない仮想アドレスを参照したときに、中央処
理装置2によって起動され、TLB不在ページ置き換え
手段10と協調して動作を行うようになされている。
【0016】TLB不在ページ置き換え手段10は、ペ
ージ配置参照手段4を起動して、ページ配置記憶部5か
ら、ユーザプログラム1がアクセスした仮想アドレスに
対応するページ情報を取り出し、TLB3に格納するよ
うになされている。
ージ配置参照手段4を起動して、ページ配置記憶部5か
ら、ユーザプログラム1がアクセスした仮想アドレスに
対応するページ情報を取り出し、TLB3に格納するよ
うになされている。
【0017】ユーザプログラム1は、使用者が記述した
コードに従って動作するが、動作途中で記憶装置11の
障害に対応したり、記憶装置11の使用量とプログラム
実行速度のいずれかを改善するために、ページ分割手段
6に対してページの分割を指令したり、ページ結合手段
7に対してページの結合を指令することができるように
なされている。
コードに従って動作するが、動作途中で記憶装置11の
障害に対応したり、記憶装置11の使用量とプログラム
実行速度のいずれかを改善するために、ページ分割手段
6に対してページの分割を指令したり、ページ結合手段
7に対してページの結合を指令することができるように
なされている。
【0018】中央処理装置2のサポートする任意の大き
さのページは、トランスレーションルックアサイドバッ
ファへの置き換えの対象とされ、同時に、そのページの
大きさは、使用状況や障害等に応じて動的に変更できる
ようになされている。中央処理装置2は、基本ページと
呼ばれる一番小さな大きさのページと、その2のベキ乗
倍の大きさのページをサポートしている。
さのページは、トランスレーションルックアサイドバッ
ファへの置き換えの対象とされ、同時に、そのページの
大きさは、使用状況や障害等に応じて動的に変更できる
ようになされている。中央処理装置2は、基本ページと
呼ばれる一番小さな大きさのページと、その2のベキ乗
倍の大きさのページをサポートしている。
【0019】ページ配置記憶部5は、仮想空間上に配置
される各仮想ページに対応する可変長物理ページの先頭
ページの物理アドレスと当該ページの大きさを示すサイ
ズ情報(ページサイズ)を格納するようになされてい
る。以下では、この先頭ページの物理アドレスとサイズ
情報を合わせて「ページ情報」と呼ぶことにする。
される各仮想ページに対応する可変長物理ページの先頭
ページの物理アドレスと当該ページの大きさを示すサイ
ズ情報(ページサイズ)を格納するようになされてい
る。以下では、この先頭ページの物理アドレスとサイズ
情報を合わせて「ページ情報」と呼ぶことにする。
【0020】このとき、フォールト時の仮想アドレス
(仮想空間上のアドレス)から、ページの先頭の仮想ア
ドレス(以下、先頭仮想アドレスと記載する)の計算が
容易となるように、ページ先頭の物理アドレス及び仮想
アドレスをともに、割り当てる可変長ページのサイズの
整数倍になるように、ページ情報の生成、及び格納を行
う。
(仮想空間上のアドレス)から、ページの先頭の仮想ア
ドレス(以下、先頭仮想アドレスと記載する)の計算が
容易となるように、ページ先頭の物理アドレス及び仮想
アドレスをともに、割り当てる可変長ページのサイズの
整数倍になるように、ページ情報の生成、及び格納を行
う。
【0021】ここで、ユーザプログラム1が、中央処理
装置2のTLB3中に存在しない仮想アドレスを参照す
ると、オペレーティングシステム12により、オペレー
ティングシステム12のTLB不在ページ置き換え手段
10が起動され、さらに、ページ配置参照手段4に対し
て、当該仮想アドレスが渡される。
装置2のTLB3中に存在しない仮想アドレスを参照す
ると、オペレーティングシステム12により、オペレー
ティングシステム12のTLB不在ページ置き換え手段
10が起動され、さらに、ページ配置参照手段4に対し
て、当該仮想アドレスが渡される。
【0022】ページ配置参照手段4は、与えられた上記
仮想アドレスを基本ページの大きさで除した値を添字と
して、ページ配置記憶部5を探索し、求めるページの先
頭仮想アドレス、及び先頭物理アドレスを算出する。算
出されたページ情報は、中央処理装置2のTLB3中に
格納され、ユーザプログラム1は、当該仮想アドレスへ
の参照を行うことが可能となる。
仮想アドレスを基本ページの大きさで除した値を添字と
して、ページ配置記憶部5を探索し、求めるページの先
頭仮想アドレス、及び先頭物理アドレスを算出する。算
出されたページ情報は、中央処理装置2のTLB3中に
格納され、ユーザプログラム1は、当該仮想アドレスへ
の参照を行うことが可能となる。
【0023】また、ユーザプログラム1がページを分割
して物理メモリ配置を変更する場合には、ページ分割手
段6に指令を行う。ページ分割手段6は、ユーザプログ
ラム1の指定した仮想アドレスに対応する可変長物理ペ
ージを切り離し、それに伴って変更されたページ情報を
ページ配置記憶部5に再度格納する。
して物理メモリ配置を変更する場合には、ページ分割手
段6に指令を行う。ページ分割手段6は、ユーザプログ
ラム1の指定した仮想アドレスに対応する可変長物理ペ
ージを切り離し、それに伴って変更されたページ情報を
ページ配置記憶部5に再度格納する。
【0024】同様に、ユーザプログラム1から複数のペ
ージを結合させる場合には、ページ結合手段7に指令を
行う。ページ結合手段7は、ユーザプログラム1の指定
した仮想アドレスに対応する物理アドレスを含み、中央
処理装置2の制限を満たすような最も大きな可変長物理
ページを算出して結合を行い、それに伴って変更された
ページ情報をページ配置記憶部5に再度格納する。
ージを結合させる場合には、ページ結合手段7に指令を
行う。ページ結合手段7は、ユーザプログラム1の指定
した仮想アドレスに対応する物理アドレスを含み、中央
処理装置2の制限を満たすような最も大きな可変長物理
ページを算出して結合を行い、それに伴って変更された
ページ情報をページ配置記憶部5に再度格納する。
【0025】これにより、記憶装置11を可変長ページ
を使って参照することが可能となるとともに、記憶装置
11の使用状況に応じて、ページの大きさを自由に変更
することが可能となる。
を使って参照することが可能となるとともに、記憶装置
11の使用状況に応じて、ページの大きさを自由に変更
することが可能となる。
【0026】次に、図2のフローチャート、及び図3、
図4を参照して、本実施の形態の動作について詳細に説
明する。ここでは、ユーザプログラム1が、中央処理装
置2のTLB3中に存在しないアドレス(例えば、0x
40003000等の仮想空間のアドレス(ここで、0
x40003000は、数字40003000が16進
数で表された数字であることを示している))に対して
不正アクセスを行った場合を例にして説明する。図3、
図4は、ページ配置記憶部5に記憶されているページテ
ーブル9の例を示している。
図4を参照して、本実施の形態の動作について詳細に説
明する。ここでは、ユーザプログラム1が、中央処理装
置2のTLB3中に存在しないアドレス(例えば、0x
40003000等の仮想空間のアドレス(ここで、0
x40003000は、数字40003000が16進
数で表された数字であることを示している))に対して
不正アクセスを行った場合を例にして説明する。図3、
図4は、ページ配置記憶部5に記憶されているページテ
ーブル9の例を示している。
【0027】本実施の形態を構成するページ配置記憶部
5のページテーブル9には、仮想空間上に配置される各
仮想ページに対応する可変長物理ページの先頭ページの
物理アドレス、及び当該ページのサイズ情報が格納され
る。
5のページテーブル9には、仮想空間上に配置される各
仮想ページに対応する可変長物理ページの先頭ページの
物理アドレス、及び当該ページのサイズ情報が格納され
る。
【0028】このとき、フォールト時の仮想アドレスか
ら、ページの先頭の仮想アドレス(先頭仮想アドレス)
を容易に計算することができるように、ページ先頭の物
理アドレス及び仮想アドレスをともに、割り当てる可変
長ページのサイズの整数倍になるようにし、ページ配置
記憶部5に格納するようにしている。
ら、ページの先頭の仮想アドレス(先頭仮想アドレス)
を容易に計算することができるように、ページ先頭の物
理アドレス及び仮想アドレスをともに、割り当てる可変
長ページのサイズの整数倍になるようにし、ページ配置
記憶部5に格納するようにしている。
【0029】例えば、論理ページ番号12,13,1
4,15に対して、基本物理ページ1000,100
1,1002,1003からなる可変長物理ページを割
り当てる場合には、ページ配置記憶部5の論理ページ番
号12,13,14,15に対応する4つの記憶部分
に、先頭物理ページアドレスとして1000を設定し、
ページサイズ情報として4を設定する。ここでは4とし
たが、可変長物理ページとして基本ページサイズ、即
ち、1を割り当てることも可能である。その場合には、
本実施の形態の方法を使わない場合と同様の配置情報が
ページ配置記憶部5に格納されることになる。
4,15に対して、基本物理ページ1000,100
1,1002,1003からなる可変長物理ページを割
り当てる場合には、ページ配置記憶部5の論理ページ番
号12,13,14,15に対応する4つの記憶部分
に、先頭物理ページアドレスとして1000を設定し、
ページサイズ情報として4を設定する。ここでは4とし
たが、可変長物理ページとして基本ページサイズ、即
ち、1を割り当てることも可能である。その場合には、
本実施の形態の方法を使わない場合と同様の配置情報が
ページ配置記憶部5に格納されることになる。
【0030】ここで、ユーザプログラム1が中央処理装
置2のTLB3中に存在しない仮想アドレスを参照する
と、図2のステップA1において、オペレーティングシ
ステム12のページ配置参照手段4が起動され、参照し
た仮想アドレスがページ配置参照手段4に対して渡され
る。
置2のTLB3中に存在しない仮想アドレスを参照する
と、図2のステップA1において、オペレーティングシ
ステム12のページ配置参照手段4が起動され、参照し
た仮想アドレスがページ配置参照手段4に対して渡され
る。
【0031】ページ配置参照手段4は、例えば、図3に
示すように、与えられたアドレス(例えば、0x400
03000)を基本ページサイズ(例えば、0x100
0)で除した値(0x40003)を添字(0x400
03)として、ページ配置記憶部5を探索し、必要なペ
ージ情報を取得する。
示すように、与えられたアドレス(例えば、0x400
03000)を基本ページサイズ(例えば、0x100
0)で除した値(0x40003)を添字(0x400
03)として、ページ配置記憶部5を探索し、必要なペ
ージ情報を取得する。
【0032】次に、ステップA2において、ステップA
1において取得したページ情報から、可変長ページの大
きさ(例えば、ページサイズ0x1000(4キロバイ
トページの場合)、又はページサイズ0x4000(1
6キロバイトページの場合))とその先頭物理アドレス
(例えば、物理アドレス0x200000)を取得す
る。
1において取得したページ情報から、可変長ページの大
きさ(例えば、ページサイズ0x1000(4キロバイ
トページの場合)、又はページサイズ0x4000(1
6キロバイトページの場合))とその先頭物理アドレス
(例えば、物理アドレス0x200000)を取得す
る。
【0033】次に、ステップA3において、当該仮想ア
ドレス(0x40003000)が可変長ページ領域
(0x40000000から始まる16キロバイトのペ
ージ)に含まれるかどうかを判断し、当該仮想アドレス
が可変長ページ領域(0x40000000乃至0x4
0003fff)に含まれると判断した場合には、与え
られた仮想アドレス(0x40003000)を可変長
ページの大きさ(0x4000)で除し、余り(0x3
000)を切り捨てることによって、先頭仮想アドレス
(0x40000000)を算出する。
ドレス(0x40003000)が可変長ページ領域
(0x40000000から始まる16キロバイトのペ
ージ)に含まれるかどうかを判断し、当該仮想アドレス
が可変長ページ領域(0x40000000乃至0x4
0003fff)に含まれると判断した場合には、与え
られた仮想アドレス(0x40003000)を可変長
ページの大きさ(0x4000)で除し、余り(0x3
000)を切り捨てることによって、先頭仮想アドレス
(0x40000000)を算出する。
【0034】次に、ステップA4に進み、算出された先
頭仮想アドレス(0x40000000)、先頭物理ア
ドレス(0x20000)、及びページの大きさ(0x
4000)が、中央処理装置2のTLB3中に格納され
る。その結果、ユーザプログラム1は、当該仮想アドレ
ス(0x40003000)への参照を行うことが可能
となる。
頭仮想アドレス(0x40000000)、先頭物理ア
ドレス(0x20000)、及びページの大きさ(0x
4000)が、中央処理装置2のTLB3中に格納され
る。その結果、ユーザプログラム1は、当該仮想アドレ
ス(0x40003000)への参照を行うことが可能
となる。
【0035】次に、特定のアドレスを含むページの大き
さを小さくする場合について、図5のフローチャートを
参照して説明する。この場合、ユーザプログラム1は、
ページ分割手段6に対して、特定のアドレスを含むペー
ジの大きさを所定の大きさより小さくするように指令を
行う。
さを小さくする場合について、図5のフローチャートを
参照して説明する。この場合、ユーザプログラム1は、
ページ分割手段6に対して、特定のアドレスを含むペー
ジの大きさを所定の大きさより小さくするように指令を
行う。
【0036】この指令を受けたページ分割手段6は、図
5のステップB1において、まず、指定されたアドレス
を含むページPGと、その大きさP0を、ページ配置参
照手段4を用いて算出する。次に、大きさP0より1段
小さいページの大きさP1を求める。
5のステップB1において、まず、指定されたアドレス
を含むページPGと、その大きさP0を、ページ配置参
照手段4を用いて算出する。次に、大きさP0より1段
小さいページの大きさP1を求める。
【0037】次に、ステップB2において、ページPG
を大きさP1のページに分割し、それに伴って変更され
たページ情報をページ配置参照手段4を用いてページ配
置記憶部5に格納する。
を大きさP1のページに分割し、それに伴って変更され
たページ情報をページ配置参照手段4を用いてページ配
置記憶部5に格納する。
【0038】ステップB3においては、対象アドレスを
含むページが、要求された大きさ以下のページになった
か否かが判定され、対象アドレスを含むページが、要求
された大きさ以下のページになっていないと判定された
場合、ステップB1に戻り、ステップB1以降の処理が
繰り返し実行される。一方、対象アドレスを含むページ
が、要求された大きさ以下のページになったと判定され
た場合、処理を終了する。このように、対象アドレスを
含むページが、要求された大きさより小さくなるまで、
ステップB1乃至B3の処理が繰り返し実行される。
含むページが、要求された大きさ以下のページになった
か否かが判定され、対象アドレスを含むページが、要求
された大きさ以下のページになっていないと判定された
場合、ステップB1に戻り、ステップB1以降の処理が
繰り返し実行される。一方、対象アドレスを含むページ
が、要求された大きさ以下のページになったと判定され
た場合、処理を終了する。このように、対象アドレスを
含むページが、要求された大きさより小さくなるまで、
ステップB1乃至B3の処理が繰り返し実行される。
【0039】例えば、論理ページ番号12乃至19に対
して、基本ページ番号1000乃至1007に跨る可変
長物理ページが割り当てられているときに、ユーザプロ
グラム1が、仮想ページ番号16を基本ページに戻すよ
うにページ分割手段6に指令を行うものとする。
して、基本ページ番号1000乃至1007に跨る可変
長物理ページが割り当てられているときに、ユーザプロ
グラム1が、仮想ページ番号16を基本ページに戻すよ
うにページ分割手段6に指令を行うものとする。
【0040】このとき、ページ分割手段6は、図4に示
すように、ページ配置記憶部5の論理ページ番号12,
13,14,15に対応する4つの記憶部分に、先頭物
理ページアドレス1000とサイズ情報4をそれぞれ格
納する。
すように、ページ配置記憶部5の論理ページ番号12,
13,14,15に対応する4つの記憶部分に、先頭物
理ページアドレス1000とサイズ情報4をそれぞれ格
納する。
【0041】さらに、後半の論理ページ番号16,1
7,18,19に対応する4つの記憶部分については、
もう一度分割を行い、その結果として、論理ページ番号
16に対応する記憶部分に、先頭物理ページアドレス1
004とサイズ情報1を格納し、論理ページ番号17に
対応する記憶部分に、先頭物理ページアドレス1005
とサイズ情報1を格納する。そして、論理ページ番号1
8,19に対応する2つの記憶部分に、先頭物理ページ
アドレス1006とサイズ情報2をそれぞれ格納する。
7,18,19に対応する4つの記憶部分については、
もう一度分割を行い、その結果として、論理ページ番号
16に対応する記憶部分に、先頭物理ページアドレス1
004とサイズ情報1を格納し、論理ページ番号17に
対応する記憶部分に、先頭物理ページアドレス1005
とサイズ情報1を格納する。そして、論理ページ番号1
8,19に対応する2つの記憶部分に、先頭物理ページ
アドレス1006とサイズ情報2をそれぞれ格納する。
【0042】次に、複数のページを纏めて、特定のアド
レスを含むページの大きさを大きくする場合について説
明する。その場合、ユーザプログラム1は、ページ結合
手段7に対して、特定のアドレスを含むページの大きさ
を、それより1段大きくするように指令を行う。
レスを含むページの大きさを大きくする場合について説
明する。その場合、ユーザプログラム1は、ページ結合
手段7に対して、特定のアドレスを含むページの大きさ
を、それより1段大きくするように指令を行う。
【0043】この指令を受けたページ結合手段7は、図
6のステップC1において、まず、指定されたアドレス
を含むページPGとそのページの大きさP0を求める。
6のステップC1において、まず、指定されたアドレス
を含むページPGとそのページの大きさP0を求める。
【0044】次に、ステップC2において、対象ページ
をそれより1段大きなサイズのページに結合できるかど
うかを、ページ配置参照手段4を用いて調べ、対象ペー
ジをそれより1段大きなサイズのページに結合できると
判定された場合、ステップC1に戻り、ステップC1以
降の処理が繰り返し実行される。一方、対象ページをそ
れより1段大きなサイズのページに結合できないと判定
された場合、ステップC3に進む。
をそれより1段大きなサイズのページに結合できるかど
うかを、ページ配置参照手段4を用いて調べ、対象ペー
ジをそれより1段大きなサイズのページに結合できると
判定された場合、ステップC1に戻り、ステップC1以
降の処理が繰り返し実行される。一方、対象ページをそ
れより1段大きなサイズのページに結合できないと判定
された場合、ステップC3に進む。
【0045】このようにして、ステップC1,C2の処
理を、1段大きなページに結合できなくなるまで繰り返
し実行し、ステップC3において、可能な限り大きな可
変長物理ページを生成し、それに伴って変更されたペー
ジ情報をページ配置記憶部5に再度格納する。
理を、1段大きなページに結合できなくなるまで繰り返
し実行し、ステップC3において、可能な限り大きな可
変長物理ページを生成し、それに伴って変更されたペー
ジ情報をページ配置記憶部5に再度格納する。
【0046】以上のように、本実施の形態により、次の
ような効果を得ることができる。第1の効果は、可変長
のページを導入することによって、フォールトを起こさ
ずに、ユーザプログラムが参照できる記憶領域を大きく
することができることである。これにより、ユーザプロ
グラムの実行速度を上げることができる。
ような効果を得ることができる。第1の効果は、可変長
のページを導入することによって、フォールトを起こさ
ずに、ユーザプログラムが参照できる記憶領域を大きく
することができることである。これにより、ユーザプロ
グラムの実行速度を上げることができる。
【0047】第2の効果は、ページ配置記憶部5の内容
を局所的に書き換えるだけで、ページの再分割や再結合
が可能となり、その際に、ページ内容のコピー等が不要
となることである。これにより、オペレーティングシス
テムの動作中であっても、可変長ページ化を取り止めて
仮想アドレスと記憶装置11の対応を変更したり、或い
は基本サイズのページを結合して実行速度を向上させる
ことが可能となる。
を局所的に書き換えるだけで、ページの再分割や再結合
が可能となり、その際に、ページ内容のコピー等が不要
となることである。これにより、オペレーティングシス
テムの動作中であっても、可変長ページ化を取り止めて
仮想アドレスと記憶装置11の対応を変更したり、或い
は基本サイズのページを結合して実行速度を向上させる
ことが可能となる。
【0048】次に、本発明の仮想記憶装置の他の実施の
形態について説明する。図7は、本発明の仮想記憶装置
の他の実施の形態の構成例を示すブロック図である。図
7に示すように、本実施の形態は、オペレーティングシ
ステム12内に、起動時ページ結合手段13とページ結
合履歴記憶装置14が設けられている点が、図1に示し
た実施の形態の場合とは異なっている。
形態について説明する。図7は、本発明の仮想記憶装置
の他の実施の形態の構成例を示すブロック図である。図
7に示すように、本実施の形態は、オペレーティングシ
ステム12内に、起動時ページ結合手段13とページ結
合履歴記憶装置14が設けられている点が、図1に示し
た実施の形態の場合とは異なっている。
【0049】ページ結合履歴記憶装置14は、ページ結
合手段7と協調して動作し、オペレーティングシステム
12の起動時から再起動時までのページ結合動作の履歴
を保存する。即ち、ページ結合が指示される度に、ペー
ジ結合がなされた仮想アドレスを逐一記憶していく。す
べての履歴を保存する必要はなく、記憶装置11の容量
の許す範囲内の履歴情報を記録するようにしてもよい。
合手段7と協調して動作し、オペレーティングシステム
12の起動時から再起動時までのページ結合動作の履歴
を保存する。即ち、ページ結合が指示される度に、ペー
ジ結合がなされた仮想アドレスを逐一記憶していく。す
べての履歴を保存する必要はなく、記憶装置11の容量
の許す範囲内の履歴情報を記録するようにしてもよい。
【0050】起動時ページ結合手段13は、オペレーテ
ィングシステム12の起動時に、ページ結合履歴記憶手
段14を参照し、前回の動作時に実施されていたページ
の結合状況の一覧を取得する。その上で、取得したペー
ジの結合状況の一覧に合わせて、再度ページ結合を行
う。
ィングシステム12の起動時に、ページ結合履歴記憶手
段14を参照し、前回の動作時に実施されていたページ
の結合状況の一覧を取得する。その上で、取得したペー
ジの結合状況の一覧に合わせて、再度ページ結合を行
う。
【0051】一般に、記憶装置11のページ配置記憶部
5は、オペレーティングシステム12の再起動時に初期
化されてしまう。従って、本実施の形態のように、起動
時にページ結合履歴記憶装置14を参照し、前回の動作
時に実施されていたページの結合状況の一覧がある場合
にはそれを取得して、取得したページの結合状況の一覧
に合わせて、再度ページ結合を行うようにすると、2回
目以降の起動時に、再度ページ結合を最初から行う必要
がなくなり、ページ結合に要する時間を短縮することが
できるという新たな効果が生じる。
5は、オペレーティングシステム12の再起動時に初期
化されてしまう。従って、本実施の形態のように、起動
時にページ結合履歴記憶装置14を参照し、前回の動作
時に実施されていたページの結合状況の一覧がある場合
にはそれを取得して、取得したページの結合状況の一覧
に合わせて、再度ページ結合を行うようにすると、2回
目以降の起動時に、再度ページ結合を最初から行う必要
がなくなり、ページ結合に要する時間を短縮することが
できるという新たな効果が生じる。
【0052】以上、オペレーティングシステム12の起
動時にページ結合を行う手段を導入する場合について説
明したが、システムの動作中に、オペレーティングシス
テム12が適宜、ページ使用率等を監査し、ユーザプロ
グラム1が行う場合と同様に、動作中にページ結合、及
びページ分割を行うようにしてもよい。
動時にページ結合を行う手段を導入する場合について説
明したが、システムの動作中に、オペレーティングシス
テム12が適宜、ページ使用率等を監査し、ユーザプロ
グラム1が行う場合と同様に、動作中にページ結合、及
びページ分割を行うようにしてもよい。
【0053】また、例えば、アクセスした仮想アドレス
がTLB3になく、かつページテーブル9上で、上記仮
想アドレスに対応するページが主記憶中にない場合に
は、改めて図示せぬディスク等にページを要求し、記憶
装置11内に読み込むようにすることができる。
がTLB3になく、かつページテーブル9上で、上記仮
想アドレスに対応するページが主記憶中にない場合に
は、改めて図示せぬディスク等にページを要求し、記憶
装置11内に読み込むようにすることができる。
【0054】このように、ディスクを主記憶(この例で
は、記憶装置11)の格納領域(退避領域)として利用
する場合には、TLB3が書き換えられるのとほぼ同時
に、ディスクから必要なデータが読み込まれることにな
る。
は、記憶装置11)の格納領域(退避領域)として利用
する場合には、TLB3が書き換えられるのとほぼ同時
に、ディスクから必要なデータが読み込まれることにな
る。
【0055】
【発明の効果】以上の如く、本発明に係る仮想記憶装置
および仮想記憶方法、並びに記録媒体によれば、仮想ペ
ージに対応する可変長物理ページの先頭ページの物理ア
ドレスと、可変長物理ページの大きさを示すサイズ情報
とを記憶し、所定の仮想アドレスから、仮想アドレスに
対応する物理アドレスを含む可変長物理ページを検索
し、検索された可変長物理ページの先頭ページの物理ア
ドレスと、可変長物理ページの大きさを示すサイズ情報
とから、可変長物理ページに対応する仮想ページの先頭
ページの仮想アドレスを算出し、算出された可変長物理
ページに対応する仮想ページの先頭ページの仮想アドレ
スと、可変長物理ページの先頭ページの物理アドレス
と、可変長物理ページの大きさを示すサイズ情報とを記
憶し、可変長物理ページの大きさは、所定の基本ページ
サイズの2のベキ乗倍の任意の大きさに設定されるよう
にしたので、可変長物理ページの大きさを動的に変更す
ることができ、ユーザプログラムの実行時のフォールト
の発生を抑制し、効率的にユーザプログラムを実行する
ことが可能となる。
および仮想記憶方法、並びに記録媒体によれば、仮想ペ
ージに対応する可変長物理ページの先頭ページの物理ア
ドレスと、可変長物理ページの大きさを示すサイズ情報
とを記憶し、所定の仮想アドレスから、仮想アドレスに
対応する物理アドレスを含む可変長物理ページを検索
し、検索された可変長物理ページの先頭ページの物理ア
ドレスと、可変長物理ページの大きさを示すサイズ情報
とから、可変長物理ページに対応する仮想ページの先頭
ページの仮想アドレスを算出し、算出された可変長物理
ページに対応する仮想ページの先頭ページの仮想アドレ
スと、可変長物理ページの先頭ページの物理アドレス
と、可変長物理ページの大きさを示すサイズ情報とを記
憶し、可変長物理ページの大きさは、所定の基本ページ
サイズの2のベキ乗倍の任意の大きさに設定されるよう
にしたので、可変長物理ページの大きさを動的に変更す
ることができ、ユーザプログラムの実行時のフォールト
の発生を抑制し、効率的にユーザプログラムを実行する
ことが可能となる。
【図1】本発明の仮想記憶装置の一実施の形態の構成例
を示すブロック図である。
を示すブロック図である。
【図2】図1の実施の形態の動作を説明するためのフロ
ーチャートである。
ーチャートである。
【図3】ページ配置記憶部5が記憶するページテーブル
9の構成例を示す図である。
9の構成例を示す図である。
【図4】ページ配置記憶部5が記憶するページテーブル
9の構成例を示す図である。
9の構成例を示す図である。
【図5】ページ分割を行う手順を説明するためのフロー
チャートである。
チャートである。
【図6】ページ結合を行う手順を説明するためのフロー
チャートである。
チャートである。
【図7】本発明の仮想記憶装置の他の実施の形態の構成
例を示すブロック図である。
例を示すブロック図である。
1 ユーザプログラム 2 中央処理装置 3 トランスレーションルックアサイドバッファ(TL
B) 4 ページ配置参照手段 5 ページ配置記憶部 6 ページ分割手段 7 ページ結合手段 8 TLB不在ページ検出手段 9 ページテーブル 10 TLB不在ページ置き換え手段 11 記憶装置 12 オペレーティングシステム 13 起動時ページ結合手段 14 ページ結合履歴記憶装置
B) 4 ページ配置参照手段 5 ページ配置記憶部 6 ページ分割手段 7 ページ結合手段 8 TLB不在ページ検出手段 9 ページテーブル 10 TLB不在ページ置き換え手段 11 記憶装置 12 オペレーティングシステム 13 起動時ページ結合手段 14 ページ結合履歴記憶装置
Claims (8)
- 【請求項1】 仮想空間上に配置される仮想ページの大
きさを動的に変更する仮想記憶装置であって、 前記仮想ページに対応する可変長物理ページの先頭ペー
ジの物理アドレスと、前記可変長物理ページの大きさを
示すサイズ情報とを記憶する第1の記憶手段と、 所定の仮想アドレスから、前記仮想アドレスに対応する
物理アドレスを含む前記可変長物理ページを検索する検
索手段と、 前記検索手段によって検索された前記可変長物理ページ
の先頭ページの物理アドレスと、前記可変長物理ページ
の大きさを示すサイズ情報とから、前記可変長物理ペー
ジに対応する仮想ページの先頭ページの仮想アドレスを
算出する算出手段と、 前記算出手段によって算出された前記可変長物理ページ
に対応する仮想ページの先頭ページの仮想アドレスと、
前記可変長物理ページの先頭ページの物理アドレスと、
前記可変長物理ページの大きさを示すサイズ情報とを記
憶する第2の記憶手段とを備え、 各可変長物理ページの大きさは、所定の基本ページサイ
ズの2のベキ乗倍の任意の大きさに設定されることを特
徴とする仮想記憶装置。 - 【請求項2】 前記検索手段は、前記仮想アドレスを前
記基本ページサイズで除算した結果に基づいて、前記第
1の記憶手段から前記仮想アドレスに対応する可変長物
理ページを検索し、前記可変長物理ページの先頭ページ
の物理アドレスと、前記可変長物理ページの大きさを示
すサイズ情報を取得することを特徴とする請求項1に記
載の仮想記憶装置。 - 【請求項3】 前記算出手段は、前記仮想アドレスが前
記仮想ページに含まれるとき、前記仮想アドレスを前記
可変長物理ページの大きさで除算した余りを切り捨て、
前記仮想ページの先頭ページの仮想アドレスを算出する
ことを特徴とする請求項1に記載の仮想記憶装置。 - 【請求項4】 所定の仮想アドレスに対応する前記可変
物理ページを分割する分割手段をさらに備えることを特
徴とする請求項1に記載の仮想記憶装置。 - 【請求項5】 所定の仮想アドレスに対応する前記可変
物理ページを結合する結合手段をさらに備えることを特
徴とする請求項1に記載の仮想記憶装置。 - 【請求項6】 所定の仮想アドレスに対応する前記可変
物理ページを結合するページ結合手段と、 前記ページ結合手段による結合動作の履歴を記憶する履
歴記憶手段とをさらに備え、 前記ページ結合手段は、前記履歴記憶手段に記憶されて
いる前記履歴に基づいて、前記可変長物理ページを結合
することを特徴とする請求項1に記載の仮想記憶装置。 - 【請求項7】 仮想空間上に配置される仮想ページの大
きさを動的に変更する仮想記憶方法であって、 前記仮想ページに対応する可変長物理ページの先頭ペー
ジの物理アドレスと、前記可変長物理ページの大きさを
示すサイズ情報とを記憶する第1の記憶ステップと、 所定の仮想アドレスから、前記仮想アドレスに対応する
物理アドレスを含む前記可変長物理ページを検索する検
索ステップと、 前記検索ステップにおいて検索された前記可変長物理ペ
ージの先頭ページの物理アドレスと、前記可変長物理ペ
ージの大きさを示すサイズ情報とから、前記可変長物理
ページに対応する仮想ページの先頭ページの仮想アドレ
スを算出する算出ステップと、 前記算出ステップにおいて算出された前記可変長物理ペ
ージに対応する仮想ページの先頭ページの仮想アドレス
と、前記可変長物理ページの先頭ページの物理アドレス
と、前記可変長物理ページの大きさを示すサイズ情報と
を記憶する第2の記憶ステップとを備え、 各可変長物理ページの大きさは、所定の基本ページサイ
ズの2のベキ乗倍の任意の大きさに設定されることを特
徴とする請求項1に記載の仮想記憶方法。 - 【請求項8】 請求項7に記載の仮想記憶方法を実行可
能なプログラムが記録されている記録媒体。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP11085053A JP2000276404A (ja) | 1999-03-29 | 1999-03-29 | 仮想記憶装置および仮想記憶方法、並びに記録媒体 |
| US09/536,151 US6378059B1 (en) | 1999-03-29 | 2000-03-28 | Virtual storage for dynamically changing a size of a virtual page |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP11085053A JP2000276404A (ja) | 1999-03-29 | 1999-03-29 | 仮想記憶装置および仮想記憶方法、並びに記録媒体 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2000276404A true JP2000276404A (ja) | 2000-10-06 |
Family
ID=13847923
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP11085053A Pending JP2000276404A (ja) | 1999-03-29 | 1999-03-29 | 仮想記憶装置および仮想記憶方法、並びに記録媒体 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US6378059B1 (ja) |
| JP (1) | JP2000276404A (ja) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007193798A (ja) * | 2006-01-18 | 2007-08-02 | Internatl Business Mach Corp <Ibm> | 仮想メモリ・ページサイズ間に実メモリを自動的に分散させる方法およびシステム |
| JP2009020881A (ja) * | 2007-07-12 | 2009-01-29 | Qnx Software Systems Gmbh & Co Kg | 可変のページサイズのメモリ編成を実装する処理システム |
| JP2011022790A (ja) * | 2009-07-15 | 2011-02-03 | Fuji Xerox Co Ltd | 情報処理装置及び情報処理プログラム |
| KR101866681B1 (ko) * | 2017-01-25 | 2018-06-11 | 이화여자대학교 산학협력단 | 페이지 크기를 동적으로 제어하는 페이지 제어 방법 및 장치 |
Families Citing this family (16)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP4089490B2 (ja) * | 2003-04-11 | 2008-05-28 | ソニー株式会社 | 画像表示装置、画像表示方法、及び画像表示システム |
| US7761284B2 (en) * | 2004-08-30 | 2010-07-20 | Overland Storage, Inc. | Tape emulating disk based storage system and method with automatically resized emulated tape capacity |
| US7516297B2 (en) * | 2005-11-10 | 2009-04-07 | Hewlett-Packard Development Company, L.P. | Memory management |
| US7747838B2 (en) * | 2007-05-19 | 2010-06-29 | International Business Machines Corporation | Method and apparatus for dynamically adjusting page size in a virtual memory range |
| US7793070B2 (en) * | 2007-07-12 | 2010-09-07 | Qnx Software Systems Gmbh & Co. Kg | Processing system implementing multiple page size memory organization with multiple translation lookaside buffers having differing characteristics |
| US7779214B2 (en) * | 2007-07-18 | 2010-08-17 | Qnx Software Systems Gmbh & Co. Kg | Processing system having a supported page size information register |
| US7917725B2 (en) * | 2007-09-11 | 2011-03-29 | QNX Software Systems GmbH & Co., KG | Processing system implementing variable page size memory organization using a multiple page per entry translation lookaside buffer |
| JP2010102479A (ja) * | 2008-10-23 | 2010-05-06 | Hitachi Ltd | 計算機システム、ストレージ装置及びデータ更新方法 |
| US8417903B2 (en) | 2008-12-19 | 2013-04-09 | International Business Machines Corporation | Preselect list using hidden pages |
| US8417912B2 (en) | 2010-09-03 | 2013-04-09 | International Business Machines Corporation | Management of low-paging space conditions in an operating system |
| US8819386B1 (en) | 2011-01-25 | 2014-08-26 | Emc Corporation | Memory efficient use of dynamic data structures used to manage sparsely accessed data |
| US9058268B1 (en) | 2012-09-20 | 2015-06-16 | Matrox Graphics Inc. | Apparatus, system and method for memory management |
| US20140189192A1 (en) * | 2012-12-28 | 2014-07-03 | Shlomo Raikin | Apparatus and method for a multiple page size translation lookaside buffer (tlb) |
| CN106547701B (zh) * | 2015-09-17 | 2020-01-10 | 慧荣科技股份有限公司 | 记忆装置及数据读取方法 |
| KR102581318B1 (ko) | 2018-04-04 | 2023-09-25 | 삼성전자주식회사 | 반도체 메모리 모듈 및 반도체 메모리 모듈을 포함하는 메모리 시스템 |
| US10990463B2 (en) | 2018-03-27 | 2021-04-27 | Samsung Electronics Co., Ltd. | Semiconductor memory module and memory system including the same |
Family Cites Families (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5058003A (en) * | 1988-12-15 | 1991-10-15 | International Business Machines Corporation | Virtual storage dynamic address translation mechanism for multiple-sized pages |
| EP0508577A1 (en) * | 1991-03-13 | 1992-10-14 | International Business Machines Corporation | Address translation mechanism |
| EP0506236A1 (en) * | 1991-03-13 | 1992-09-30 | International Business Machines Corporation | Address translation mechanism |
| US5802341A (en) * | 1993-12-13 | 1998-09-01 | Cray Research, Inc. | Method for the dynamic allocation of page sizes in virtual memory |
| WO1995018997A2 (en) * | 1993-12-30 | 1995-07-13 | Connectix Corporation | Virtual memory management system and method using data compression |
| US5560013A (en) * | 1994-12-06 | 1996-09-24 | International Business Machines Corporation | Method of using a target processor to execute programs of a source architecture that uses multiple address spaces |
| US5752275A (en) * | 1995-03-31 | 1998-05-12 | Intel Corporation | Translation look-aside buffer including a single page size translation unit |
| US5784699A (en) * | 1996-05-24 | 1998-07-21 | Oracle Corporation | Dynamic memory allocation in a computer using a bit map index |
| US6073226A (en) * | 1997-03-19 | 2000-06-06 | Microsoft Corporation | System and method for minimizing page tables in virtual memory systems |
| US6088780A (en) * | 1997-03-31 | 2000-07-11 | Institute For The Development Of Emerging Architecture, L.L.C. | Page table walker that uses at least one of a default page size and a page size selected for a virtual address space to position a sliding field in a virtual address |
| US6012132A (en) * | 1997-03-31 | 2000-01-04 | Intel Corporation | Method and apparatus for implementing a page table walker that uses a sliding field in the virtual addresses to identify entries in a page table |
| US6038639A (en) * | 1997-09-09 | 2000-03-14 | Storage Technology Corporation | Data file storage management system for snapshot copy operations |
-
1999
- 1999-03-29 JP JP11085053A patent/JP2000276404A/ja active Pending
-
2000
- 2000-03-28 US US09/536,151 patent/US6378059B1/en not_active Expired - Fee Related
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007193798A (ja) * | 2006-01-18 | 2007-08-02 | Internatl Business Mach Corp <Ibm> | 仮想メモリ・ページサイズ間に実メモリを自動的に分散させる方法およびシステム |
| JP2009020881A (ja) * | 2007-07-12 | 2009-01-29 | Qnx Software Systems Gmbh & Co Kg | 可変のページサイズのメモリ編成を実装する処理システム |
| JP2011022790A (ja) * | 2009-07-15 | 2011-02-03 | Fuji Xerox Co Ltd | 情報処理装置及び情報処理プログラム |
| US8352698B2 (en) | 2009-07-15 | 2013-01-08 | Fuji Xerox Co., Ltd. | Information processing apparatus, information processing method and computer readable medium |
| KR101866681B1 (ko) * | 2017-01-25 | 2018-06-11 | 이화여자대학교 산학협력단 | 페이지 크기를 동적으로 제어하는 페이지 제어 방법 및 장치 |
Also Published As
| Publication number | Publication date |
|---|---|
| US6378059B1 (en) | 2002-04-23 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2000276404A (ja) | 仮想記憶装置および仮想記憶方法、並びに記録媒体 | |
| JP7005670B2 (ja) | メモリ圧縮を実行するシステム及び方法 | |
| JP3640978B2 (ja) | ページテーブル中のハッシュアドレスタグを用いたメモリアドレス制御装置 | |
| KR100734823B1 (ko) | 메모리 압축된 머신을 모핑하는 방법 및 장치 | |
| US10740247B2 (en) | Method for accessing entry in translation lookaside buffer TLB and processing chip | |
| US6549995B1 (en) | Compressor system memory organization and method for low latency access to uncompressed memory regions | |
| US6944740B2 (en) | Method for performing compressed I/O with memory expansion technology | |
| US20150089117A1 (en) | Computer system, memory management method and program thereof | |
| JPH0552540B2 (ja) | ||
| WO2011093170A1 (ja) | メモリ管理装置及びメモリ管理方法 | |
| JP2011513808A (ja) | 変換例外修飾子を用いる動的アドレス変換 | |
| JPH0425579B2 (ja) | ||
| JPH08272692A (ja) | 仮想アドレス変換方法 | |
| CN103052945A (zh) | 管理计算机存储器的方法、程序产品及数据存储设备 | |
| US7493445B2 (en) | Cache memory system and control method of the cache memory system | |
| JP3973129B2 (ja) | キャッシュメモリ装置及びそれを用いた中央演算処理装置 | |
| JP2010102623A (ja) | キャッシュメモリ及びその制御方法 | |
| EP1103898A2 (en) | Microprocessor and memory | |
| JP2007304747A (ja) | 計算機システム及びメモリアクセス方法 | |
| US11500638B1 (en) | Hardware compression and decompression engine | |
| WO2025152658A1 (zh) | 访问方法及装置 | |
| JP2000267932A (ja) | タグアドレス比較装置 | |
| CN119537266A (zh) | 浮动内部上下文存储器 | |
| CN118689784A (zh) | 地址转换方法、装置、电子设备和计算机程序产品 | |
| JPH08147216A (ja) | データ処理装置 |