JP2000276405A - アドレス変換装置及びこのアドレス変換装置を有するコンピュータシステム - Google Patents
アドレス変換装置及びこのアドレス変換装置を有するコンピュータシステムInfo
- Publication number
- JP2000276405A JP2000276405A JP2000010663A JP2000010663A JP2000276405A JP 2000276405 A JP2000276405 A JP 2000276405A JP 2000010663 A JP2000010663 A JP 2000010663A JP 2000010663 A JP2000010663 A JP 2000010663A JP 2000276405 A JP2000276405 A JP 2000276405A
- Authority
- JP
- Japan
- Prior art keywords
- entry
- comparison
- process identifier
- bits
- 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
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】
【課題】 物理メモリに一部のプロセス同士にのみ共有
を許されるような記憶内容が存在する場合に、この一部
のプロセス同士のみに関してエントリをまとめることに
より、メモリ領域の有効活用を図るとともに、記憶保護
も同時に実現可能としたアドレス変換装置、及びこのア
ドレス変換装置を有するコンピュータシステムを提供す
る。 【解決手段】 仮想ページ番号と、物理ページ番号と、
複数ビットで構成されるプロセス識別子と、を記録した
エントリeを複数個記憶するエントリ記憶手段であるタ
グアレイ部1a及びデータアレイ部1bと、現在実行中
のプロセスの有するプロセス識別子と、エントリ中のプ
ロセス識別子とを比較するプロセス比較器である第2比
較器13と、タグアレイ部1a及びデータアレイ部1b
より必要なエントリを検索するエントリ検索手段である
第1比較器12とANDゲート105と、を備えたTL
B1とした。
を許されるような記憶内容が存在する場合に、この一部
のプロセス同士のみに関してエントリをまとめることに
より、メモリ領域の有効活用を図るとともに、記憶保護
も同時に実現可能としたアドレス変換装置、及びこのア
ドレス変換装置を有するコンピュータシステムを提供す
る。 【解決手段】 仮想ページ番号と、物理ページ番号と、
複数ビットで構成されるプロセス識別子と、を記録した
エントリeを複数個記憶するエントリ記憶手段であるタ
グアレイ部1a及びデータアレイ部1bと、現在実行中
のプロセスの有するプロセス識別子と、エントリ中のプ
ロセス識別子とを比較するプロセス比較器である第2比
較器13と、タグアレイ部1a及びデータアレイ部1b
より必要なエントリを検索するエントリ検索手段である
第1比較器12とANDゲート105と、を備えたTL
B1とした。
Description
【0001】
【発明の属する技術分野】本発明は、仮想記憶における
仮想アドレスを物理アドレスに変換する装置に関し、特
に、複数のプロセスにアドレス変換エントリを共有させ
るアドレス変換装置、及びこのアドレス変換装置を有す
るコンピュータシステムに関する。
仮想アドレスを物理アドレスに変換する装置に関し、特
に、複数のプロセスにアドレス変換エントリを共有させ
るアドレス変換装置、及びこのアドレス変換装置を有す
るコンピュータシステムに関する。
【0002】
【従来の技術】コンピュータのメインメモリの容量の限
界に対処してプログラミング上の負荷を軽減する技術と
して仮想記憶方式が広く採用されている。仮想記憶はオ
ペレーティングシステム等によりメインメモリとハード
ディスク等の補助メモリとをメモリ容量を補完するよう
に制御して容量の大きな仮想メモリを形成することで、
大容量のメインメモリを論理上実現するものである。ま
た、仮想記憶を採用するとプログラムの稼働時点に必要
なデータだけをメインメモリに置くことができるので、
複数のプログラム間でメモリを効率よく共有することも
可能となる。
界に対処してプログラミング上の負荷を軽減する技術と
して仮想記憶方式が広く採用されている。仮想記憶はオ
ペレーティングシステム等によりメインメモリとハード
ディスク等の補助メモリとをメモリ容量を補完するよう
に制御して容量の大きな仮想メモリを形成することで、
大容量のメインメモリを論理上実現するものである。ま
た、仮想記憶を採用するとプログラムの稼働時点に必要
なデータだけをメインメモリに置くことができるので、
複数のプログラム間でメモリを効率よく共有することも
可能となる。
【0003】仮想記憶では、仮想メモリ中のアドレスを
示す仮想アドレスを、実際のメインメモリ中のアドレス
を示す物理アドレスに変換するアドレス変換が必要にな
る。一般に、仮想アドレスは仮想ページ番号とページ内
オフセットに分割され、物理アドレスも物理ページ番号
とページ内オフセットに分割される。そして、アドレス
変換においては仮想ページ番号と物理ページ番号を対応
付けて記憶するページテーブルを設けておき、このペー
ジテーブルを参照することで要求された仮想アドレスか
ら物理ページ番号を抽出することで物理アドレスへと変
換する。なお、仮想アドレスと物理アドレスのページ内
オフセットは同じであるので、物理ページ番号へ所定の
ページ内オフセットを連結することで物理アドレスが生
成される。
示す仮想アドレスを、実際のメインメモリ中のアドレス
を示す物理アドレスに変換するアドレス変換が必要にな
る。一般に、仮想アドレスは仮想ページ番号とページ内
オフセットに分割され、物理アドレスも物理ページ番号
とページ内オフセットに分割される。そして、アドレス
変換においては仮想ページ番号と物理ページ番号を対応
付けて記憶するページテーブルを設けておき、このペー
ジテーブルを参照することで要求された仮想アドレスか
ら物理ページ番号を抽出することで物理アドレスへと変
換する。なお、仮想アドレスと物理アドレスのページ内
オフセットは同じであるので、物理ページ番号へ所定の
ページ内オフセットを連結することで物理アドレスが生
成される。
【0004】ところで、このページテーブルは非常に大
きいためにメインメモリに格納する必要がある。従っ
て、中央処理装置からメインメモリへのアクセス要求が
ある度に、ページテーブルへのアクセスと実際のデータ
へのアクセスとの2回のアクセスをメインメモリに行う
ことになり処理時間の遅延を生じる。これのような処理
時間の遅延を改善するために、近年、ページテーブルの
他に、さらにアドレス変換バッファ(以下「TLB」と
言う。)を設けることが行われている。
きいためにメインメモリに格納する必要がある。従っ
て、中央処理装置からメインメモリへのアクセス要求が
ある度に、ページテーブルへのアクセスと実際のデータ
へのアクセスとの2回のアクセスをメインメモリに行う
ことになり処理時間の遅延を生じる。これのような処理
時間の遅延を改善するために、近年、ページテーブルの
他に、さらにアドレス変換バッファ(以下「TLB」と
言う。)を設けることが行われている。
【0005】TLBはページテーブルのうち、使用頻度
が高い仮想ページ番号と物理ページ番号との対応を記憶
したアドレス変換専用のキャッシュメモリである。TL
Bが設けられている場合、中央処理装置からメインメモ
リへのアクセスがあるとまずTLBが最初に検索され、
ここで求める仮想アドレスが無い場合に、ページテーブ
ルが検索される。TLBの記憶内容を適切に定め、TL
Bのヒット率を高めることでメインメモリへのアクセス
の効率化を図ることができる。
が高い仮想ページ番号と物理ページ番号との対応を記憶
したアドレス変換専用のキャッシュメモリである。TL
Bが設けられている場合、中央処理装置からメインメモ
リへのアクセスがあるとまずTLBが最初に検索され、
ここで求める仮想アドレスが無い場合に、ページテーブ
ルが検索される。TLBの記憶内容を適切に定め、TL
Bのヒット率を高めることでメインメモリへのアクセス
の効率化を図ることができる。
【0006】TLBの構成を以下に簡単に説明する。T
LBは、仮想ページ番号と、物理ページ番号と、複数ビ
ットで構成されるプロセス識別子と、を記録したエント
リを複数個有している。即ち、あるエントリを参照すれ
ば、仮想ページ番号と物理ページ番号の対応が判る。そ
して、各エントリはタグ部とデータ部とに分かれる。タ
グ部は仮想ページ番号、プロセスを示すプロセス識別
子、プロセス識別子を参照するか否かを規定するグロー
バルビット等により構成され、データ部は物理ページ番
号等により構成される。プロセス識別子が設けられるの
は、異なるプロセスが混在することによる仮想アドレス
の混同を防止するためである。
LBは、仮想ページ番号と、物理ページ番号と、複数ビ
ットで構成されるプロセス識別子と、を記録したエント
リを複数個有している。即ち、あるエントリを参照すれ
ば、仮想ページ番号と物理ページ番号の対応が判る。そ
して、各エントリはタグ部とデータ部とに分かれる。タ
グ部は仮想ページ番号、プロセスを示すプロセス識別
子、プロセス識別子を参照するか否かを規定するグロー
バルビット等により構成され、データ部は物理ページ番
号等により構成される。プロセス識別子が設けられるの
は、異なるプロセスが混在することによる仮想アドレス
の混同を防止するためである。
【0007】即ち、TLBはコンピュータで同時に実行
される複数のプロセスで共有されるが、各プロセスは独
自に仮想アドレス空間を設定できるので各プロセスで使
用する仮想アドレスが重複し、同じ仮想ページ番号であ
りながら異なる物理ページ番号に対応している複数のエ
ントリが存在する場合があり得る。このため、原則とし
て各エントリにプロセス識別子をつけて、このプロセス
識別子と仮想アドレスを要求しているプロセスのプロセ
ス識別子とが一致するエントリから物理アドレスを抽出
するようにすることで誤ったアドレス変換が行われるこ
とを防止し、プロセス間におけるメモリ保護を図ってい
る。
される複数のプロセスで共有されるが、各プロセスは独
自に仮想アドレス空間を設定できるので各プロセスで使
用する仮想アドレスが重複し、同じ仮想ページ番号であ
りながら異なる物理ページ番号に対応している複数のエ
ントリが存在する場合があり得る。このため、原則とし
て各エントリにプロセス識別子をつけて、このプロセス
識別子と仮想アドレスを要求しているプロセスのプロセ
ス識別子とが一致するエントリから物理アドレスを抽出
するようにすることで誤ったアドレス変換が行われるこ
とを防止し、プロセス間におけるメモリ保護を図ってい
る。
【0008】また、異なる2以上のプロセスで同じ仮想
アドレスに対して同じ物理アドレスを対応させているよ
うな場合においても、ある特定のプロセスが実行中は他
のプロセスに当該物理アドレスにアクセスさせるべきで
無いようなときには、このプロセス識別子を用いた判断
を行う。
アドレスに対して同じ物理アドレスを対応させているよ
うな場合においても、ある特定のプロセスが実行中は他
のプロセスに当該物理アドレスにアクセスさせるべきで
無いようなときには、このプロセス識別子を用いた判断
を行う。
【0009】また、一方で、プロセス間で完全に共用で
きる物理アドレスがある場合は、この物理アドレスに対
応する仮想アドレスを個々のプロセス識別子ごとに同じ
ものを使用して、同じ仮想アドレスをこの物理アドレス
で共有させることで、プロセスごとに設ける必要がある
エントリをまとめて、同じ仮想アドレスに対するエント
リ数を減らすことでメモリ容量の小さいTLBのメモリ
領域を効率よく使用することができる。
きる物理アドレスがある場合は、この物理アドレスに対
応する仮想アドレスを個々のプロセス識別子ごとに同じ
ものを使用して、同じ仮想アドレスをこの物理アドレス
で共有させることで、プロセスごとに設ける必要がある
エントリをまとめて、同じ仮想アドレスに対するエント
リ数を減らすことでメモリ容量の小さいTLBのメモリ
領域を効率よく使用することができる。
【0010】また、共有により空いたエントリ領域にさ
らに別のエントリを記憶させることにより、TLBのヒ
ット率を上げることもできる。このようにプロセス同士
でエントリを共有する場合は仮想ページ番号だけでアド
レス変換を行うことになるので、各エントリ内にプロセ
ス識別子を参照するか否かを規定する1ビットのグロー
バルビットが設けてあり、エントリが共用されている場
合はグローバルビットをアクティブにすることによりプ
ロセス識別子の一致の有無は問わないようにしてある。
このようにグローバルビットがアクティブの場合はプロ
セス識別子の判断が行われないので、グローバルビット
がアクティブであるエントリはすべてのプロセスに共有
されることになる。
らに別のエントリを記憶させることにより、TLBのヒ
ット率を上げることもできる。このようにプロセス同士
でエントリを共有する場合は仮想ページ番号だけでアド
レス変換を行うことになるので、各エントリ内にプロセ
ス識別子を参照するか否かを規定する1ビットのグロー
バルビットが設けてあり、エントリが共用されている場
合はグローバルビットをアクティブにすることによりプ
ロセス識別子の一致の有無は問わないようにしてある。
このようにグローバルビットがアクティブの場合はプロ
セス識別子の判断が行われないので、グローバルビット
がアクティブであるエントリはすべてのプロセスに共有
されることになる。
【0011】このような構成によりTLBは、中央処理
装置から仮想アドレスの要求があると、この仮想アドレ
スを構成する仮想ページ番号を登録したエントリであっ
て、グローバルビットがインアクティブ(“0”)の場
合は、現在実行中のプロセス識別子と同じ識別子を記録
したエントリが検索される。一方、グローバルビットが
アクティブ(“1”)の場合は、プロセス識別子の一致
は判断されることなく、仮想ページ番号が一致するエン
トリの検索がなされる。そして、条件を満たすエントリ
があると変換ヒット信号が中央処理装置に出力されると
ともに、このエントリに記録された物理ページ番号が物
理アドレスに変換されて中央処理装置へ送出される。
装置から仮想アドレスの要求があると、この仮想アドレ
スを構成する仮想ページ番号を登録したエントリであっ
て、グローバルビットがインアクティブ(“0”)の場
合は、現在実行中のプロセス識別子と同じ識別子を記録
したエントリが検索される。一方、グローバルビットが
アクティブ(“1”)の場合は、プロセス識別子の一致
は判断されることなく、仮想ページ番号が一致するエン
トリの検索がなされる。そして、条件を満たすエントリ
があると変換ヒット信号が中央処理装置に出力されると
ともに、このエントリに記録された物理ページ番号が物
理アドレスに変換されて中央処理装置へ送出される。
【0012】
【発明が解決しようとする課題】ところで、通常、物理
メモリ中の、とある記録内容に関する物理アドレスを全
てのプロセスに対して共有させることはメモリ保護の為
に出来ないが、例えばプログラムの内容によっては、一
部のプロセス同士に物理アドレスを共有させてもよい場
合がある。しかし、従来のTLBでは、その構造上、物
理アドレスの共有を全てのプロセスに対して行わざるを
得ないため、物理アドレスを共有できるプロセスが物理
メモリ中に複数含まれていても、それらのプロセスに関
するエントリを単一にできず、メモリ保護の為に、個々
のプロセスごとにエントリを作成しなければならなかっ
た。即ち、上記のような一部のプロセスのみに共有でき
る物理アドレスがある場合、これら一部のプロセス群に
関してはTLBのメモリ領域を無駄に使用することとな
り、問題であった。
メモリ中の、とある記録内容に関する物理アドレスを全
てのプロセスに対して共有させることはメモリ保護の為
に出来ないが、例えばプログラムの内容によっては、一
部のプロセス同士に物理アドレスを共有させてもよい場
合がある。しかし、従来のTLBでは、その構造上、物
理アドレスの共有を全てのプロセスに対して行わざるを
得ないため、物理アドレスを共有できるプロセスが物理
メモリ中に複数含まれていても、それらのプロセスに関
するエントリを単一にできず、メモリ保護の為に、個々
のプロセスごとにエントリを作成しなければならなかっ
た。即ち、上記のような一部のプロセスのみに共有でき
る物理アドレスがある場合、これら一部のプロセス群に
関してはTLBのメモリ領域を無駄に使用することとな
り、問題であった。
【0013】また、メモリ領域の有効活用の観点から、
全てのプロセスに対して上記のような物理アドレスを共
有してエントリをまとめると、共有させてはならないプ
ロセスもこの物理アドレスにアクセスできることとなり
記憶保護が達成できず、やはり問題であった。
全てのプロセスに対して上記のような物理アドレスを共
有してエントリをまとめると、共有させてはならないプ
ロセスもこの物理アドレスにアクセスできることとなり
記憶保護が達成できず、やはり問題であった。
【0014】そこで本発明はこのような問題点に鑑みて
為されたものであり、その目的は、物理メモリに一部の
プロセス同士にのみ共有を許されるような記憶内容が存
在する場合に、この一部のプロセス同士のみに関してエ
ントリをまとめることにより、メモリ領域の有効活用を
図るとともに、記憶保護も同時に実現可能としたアドレ
ス変換装置、及びこのアドレス変換装置を有するコンピ
ュータシステムを提供することである。
為されたものであり、その目的は、物理メモリに一部の
プロセス同士にのみ共有を許されるような記憶内容が存
在する場合に、この一部のプロセス同士のみに関してエ
ントリをまとめることにより、メモリ領域の有効活用を
図るとともに、記憶保護も同時に実現可能としたアドレ
ス変換装置、及びこのアドレス変換装置を有するコンピ
ュータシステムを提供することである。
【0015】
【課題を解決するための手段】上記課題を達成するた
め、本発明の請求項1に記載のアドレス変換装置では、
仮想ページ番号と、物理ページ番号と、複数ビットで構
成されるプロセス識別子と、を記録したエントリを複数
個記憶するエントリ記憶手段と、現在実行中のプロセス
の有するプロセス識別子と、前記エントリ中のプロセス
識別子と、を比較する比較方法を規定する比較情報を記
憶した比較情報記憶手段と、前記比較情報に基づき、現
在実行中のプロセスの有するプロセス識別子と、前記エ
ントリ中のプロセス識別子と、を比較するプロセス比較
手段と、外部より入力される仮想ページ番号と一致する
仮想ページ番号を含み、かつ前記プロセス比較手段にお
ける比較の結果が一致する前記エントリを前記エントリ
記憶手段より検索するエントリ検索手段と、を有するこ
とを特徴とする。
め、本発明の請求項1に記載のアドレス変換装置では、
仮想ページ番号と、物理ページ番号と、複数ビットで構
成されるプロセス識別子と、を記録したエントリを複数
個記憶するエントリ記憶手段と、現在実行中のプロセス
の有するプロセス識別子と、前記エントリ中のプロセス
識別子と、を比較する比較方法を規定する比較情報を記
憶した比較情報記憶手段と、前記比較情報に基づき、現
在実行中のプロセスの有するプロセス識別子と、前記エ
ントリ中のプロセス識別子と、を比較するプロセス比較
手段と、外部より入力される仮想ページ番号と一致する
仮想ページ番号を含み、かつ前記プロセス比較手段にお
ける比較の結果が一致する前記エントリを前記エントリ
記憶手段より検索するエントリ検索手段と、を有するこ
とを特徴とする。
【0016】本発明の請求項2に記載のアドレス変換装
置では、請求項1に記載のアドレス変換装置において、
前記比較情報記憶手段が、前記エントリそれぞれに設け
られ、前記比較情報が、グローバルビットであること、
を特徴とする。
置では、請求項1に記載のアドレス変換装置において、
前記比較情報記憶手段が、前記エントリそれぞれに設け
られ、前記比較情報が、グローバルビットであること、
を特徴とする。
【0017】本発明の請求項3に記載のアドレス変換装
置では、請求項1又は請求項2に記載のアドレス変換装
置において、前記比較方法が、2種類以上の比較方法を
含んでなり、かつ、少なくとも前記比較方法が、現在実
行中のプロセスの有するプロセス識別子を構成する複数
ビットの一部と、前記エントリ中のプロセス識別子を構
成する複数ビットの一部と、を比較する方法を含んでい
ること、を特徴とする。
置では、請求項1又は請求項2に記載のアドレス変換装
置において、前記比較方法が、2種類以上の比較方法を
含んでなり、かつ、少なくとも前記比較方法が、現在実
行中のプロセスの有するプロセス識別子を構成する複数
ビットの一部と、前記エントリ中のプロセス識別子を構
成する複数ビットの一部と、を比較する方法を含んでい
ること、を特徴とする。
【0018】本発明の請求項4に記載のコンピュータシ
ステムでは、請求項1ないし請求項3のいずれか1項に
記載のアドレス変換装置を有することを特徴とする。
ステムでは、請求項1ないし請求項3のいずれか1項に
記載のアドレス変換装置を有することを特徴とする。
【0019】
【発明の実施の形態】以下、本発明の実施の形態につい
て図面を参照しながら説明する。尚、ここで示す実施の
形態はあくまでも一例であって、必ずしもこの実施の形
態に限定されるものではない。まず、本発明に係るアド
レス変換装置であるTLBを第1の実施の形態として、
図面を参照しつつ説明する。図1は本実施の形態に係る
アドレス変換装置であるTLB1の構成を表すブロック
図である。TLB1は中央処理装置3を含むパッケージ
A内に設けられ、中央処理装置3と高速でアクセスでき
るメモリ素子により構成されており、オペレーティング
ソフトウエアおよび制御回路により制御される。
て図面を参照しながら説明する。尚、ここで示す実施の
形態はあくまでも一例であって、必ずしもこの実施の形
態に限定されるものではない。まず、本発明に係るアド
レス変換装置であるTLBを第1の実施の形態として、
図面を参照しつつ説明する。図1は本実施の形態に係る
アドレス変換装置であるTLB1の構成を表すブロック
図である。TLB1は中央処理装置3を含むパッケージ
A内に設けられ、中央処理装置3と高速でアクセスでき
るメモリ素子により構成されており、オペレーティング
ソフトウエアおよび制御回路により制御される。
【0020】また、TLB1は現在実行中のプロセスの
プロセス識別子PIDcを記憶する制御レジスタ2と接
続されている。制御レジスタ2は中央処理装置3が実行
プロセスを切り替える度に書き換えられる。尚、ここで
は詳述しないが、これらの装置は一般的なコンピュータ
システムに組み込まれる。
プロセス識別子PIDcを記憶する制御レジスタ2と接
続されている。制御レジスタ2は中央処理装置3が実行
プロセスを切り替える度に書き換えられる。尚、ここで
は詳述しないが、これらの装置は一般的なコンピュータ
システムに組み込まれる。
【0021】TLB1は、仮想ページ番号と、物理ペー
ジ番号と、複数ビットで構成されるプロセス識別子と、
を記録したエントリeを複数個記憶するエントリ記憶手
段であるタグアレイ部1a及びデータアレイ部1bと、
現在実行中のプロセスの有するプロセス識別子と、エン
トリ中のプロセス識別子とを比較するプロセス比較器で
ある第2比較器13と、タグアレイ部1a及びデータア
レイ部1bより必要なエントリを検索するエントリ検索
手段である第1比較器12とANDゲート105と、を
備えている。
ジ番号と、複数ビットで構成されるプロセス識別子と、
を記録したエントリeを複数個記憶するエントリ記憶手
段であるタグアレイ部1a及びデータアレイ部1bと、
現在実行中のプロセスの有するプロセス識別子と、エン
トリ中のプロセス識別子とを比較するプロセス比較器で
ある第2比較器13と、タグアレイ部1a及びデータア
レイ部1bより必要なエントリを検索するエントリ検索
手段である第1比較器12とANDゲート105と、を
備えている。
【0022】尚、本実施の形態においては、現在実行中
のプロセスの有するプロセス識別子と、エントリ中のプ
ロセス識別子とを比較する比較方法を規定する比較情報
を記憶した比較情報記憶手段は、エントリ中にグローバ
ルビット記憶領域103及び有効ビット記憶領域104
として設けられたものとして以下説明をするが、この比
較情報記憶手段は、上述以外の場所に設けてあってもよ
い。
のプロセスの有するプロセス識別子と、エントリ中のプ
ロセス識別子とを比較する比較方法を規定する比較情報
を記憶した比較情報記憶手段は、エントリ中にグローバ
ルビット記憶領域103及び有効ビット記憶領域104
として設けられたものとして以下説明をするが、この比
較情報記憶手段は、上述以外の場所に設けてあってもよ
い。
【0023】また、本実施の形態においては、現在実行
中のプロセスの有するプロセス識別子と、エントリ中の
プロセス識別子とを比較する比較方法を規定する比較情
報はグローバルビットである、として以下説明をする
が、比較情報の形態はこれに限定されるものではない。
中のプロセスの有するプロセス識別子と、エントリ中の
プロセス識別子とを比較する比較方法を規定する比較情
報はグローバルビットである、として以下説明をする
が、比較情報の形態はこれに限定されるものではない。
【0024】以下、上述したTLB1を構成する各部材
について、説明をする。まず、エントリe、タグアレイ
部10a、データアレイ部1bについて説明すると、エ
ントリeは、仮想ページ番号と、物理ページ番号と、を
対応づけて記憶しており、このエントリeはエントリe
1、e2、e3、e4、…として、TLB1に複数個記
憶されている。
について、説明をする。まず、エントリe、タグアレイ
部10a、データアレイ部1bについて説明すると、エ
ントリeは、仮想ページ番号と、物理ページ番号と、を
対応づけて記憶しており、このエントリeはエントリe
1、e2、e3、e4、…として、TLB1に複数個記
憶されている。
【0025】エントリeは、仮想ページ番号等を記憶し
たタグ部10と、これに対応する物理ページ番号等を記
憶するデータ部11と、に分けられる。全てのエントリ
e1、e2、e3、e4、…のタグ部10はタグアレイ
部1aにまとめられており、全てのエントリe1、e
2、e3、e4、…のデータ部11はデータアレイ部1
bにまとめられている。即ち、タグアレイ部1aとデー
タアレイ部1bは、TLB1において、エントリ記憶手
段として動作している。
たタグ部10と、これに対応する物理ページ番号等を記
憶するデータ部11と、に分けられる。全てのエントリ
e1、e2、e3、e4、…のタグ部10はタグアレイ
部1aにまとめられており、全てのエントリe1、e
2、e3、e4、…のデータ部11はデータアレイ部1
bにまとめられている。即ち、タグアレイ部1aとデー
タアレイ部1bは、TLB1において、エントリ記憶手
段として動作している。
【0026】タグ部10は仮想ページ番号記憶領域10
1、プロセス識別子記憶領域102、グローバルビット
記憶領域103、有効ビット記憶領域104、により構
成され、各エントリe1、e2、e3、e4、…のタグ
部10には、仮想ページ番号記憶領域101には仮想ペ
ージ番号VPNが、プロセス識別子記憶領域102には
プロセス識別子PIDが、グローバルビット記憶領域に
は103グローバルビットGが、有効ビット記憶領域に
は104有効ビットVが、それぞれ記憶されている。
1、プロセス識別子記憶領域102、グローバルビット
記憶領域103、有効ビット記憶領域104、により構
成され、各エントリe1、e2、e3、e4、…のタグ
部10には、仮想ページ番号記憶領域101には仮想ペ
ージ番号VPNが、プロセス識別子記憶領域102には
プロセス識別子PIDが、グローバルビット記憶領域に
は103グローバルビットGが、有効ビット記憶領域に
は104有効ビットVが、それぞれ記憶されている。
【0027】有効ビットVはプログラムで中央処理装置
3がリセットされたときに、エントリ中の物理ページ番
号と仮想ページ番号が対応しなくなるような場合等を考
慮して設けられるものであり、有効ビットVがアクティ
ブであれば現在のエントリ中の物理ページ番号が仮想ペ
ージ番号に正しく対応していることを示し、インアクテ
ィブの場合は両者が適切に対応していないことを示す。
3がリセットされたときに、エントリ中の物理ページ番
号と仮想ページ番号が対応しなくなるような場合等を考
慮して設けられるものであり、有効ビットVがアクティ
ブであれば現在のエントリ中の物理ページ番号が仮想ペ
ージ番号に正しく対応していることを示し、インアクテ
ィブの場合は両者が適切に対応していないことを示す。
【0028】データ部11は、物理ページ番号記憶領域
111、ページ属性記憶領域112により構成され、各
エントリe1、e2、e3、e4、…のデータ部11に
は、物理ページ番号記憶領域111には物理ページ番号
PPNが、ページ属性記憶領域112にはページ保護ビ
ットPR、ダーティービットD、及びページ有効ビット
PVからなるページ属性情報を記憶している。尚、ペー
ジ属性情報とは、これら以外の物を含んでいてもよく、
またこれらのうちの一部のみであっても構わない。
111、ページ属性記憶領域112により構成され、各
エントリe1、e2、e3、e4、…のデータ部11に
は、物理ページ番号記憶領域111には物理ページ番号
PPNが、ページ属性記憶領域112にはページ保護ビ
ットPR、ダーティービットD、及びページ有効ビット
PVからなるページ属性情報を記憶している。尚、ペー
ジ属性情報とは、これら以外の物を含んでいてもよく、
またこれらのうちの一部のみであっても構わない。
【0029】また、本実施の形態では、プロセス識別子
は、前半4ビット、後半4ビット、とした2つの部分
で、即ち合計8ビットの情報で構成している。つまり、
プロセス識別子は8ビット全体で特定のプロセスを表す
と共に、前半4ビット、及び後半4ビットにも特定の意
味付けがなされている。
は、前半4ビット、後半4ビット、とした2つの部分
で、即ち合計8ビットの情報で構成している。つまり、
プロセス識別子は8ビット全体で特定のプロセスを表す
と共に、前半4ビット、及び後半4ビットにも特定の意
味付けがなされている。
【0030】さらに、本実施の形態では、グローバルビ
ットは、2ビットの情報を用いて構成されているものと
してあるが、この2ビットの情報が、後述するように、
プロセス識別子の4通りの比較のうちのいずれの比較を
行うか、というプロセス比較の方法を規定する比較情報
となる。この4通りとは、現在実行中のプロセスの有す
るプロセス識別子を構成する複数ビットと、エントリ中
のプロセス識別子を構成する複数ビットとの比較におい
って、(1)両方のプロセス識別子全体の比較、(2)
両方のプロセス識別子を比較しない、(3)両方のプロ
セス識別子の上位ビット同士の比較、(4)両方のプロ
セス識別子の下位ビット同士の比較、である。
ットは、2ビットの情報を用いて構成されているものと
してあるが、この2ビットの情報が、後述するように、
プロセス識別子の4通りの比較のうちのいずれの比較を
行うか、というプロセス比較の方法を規定する比較情報
となる。この4通りとは、現在実行中のプロセスの有す
るプロセス識別子を構成する複数ビットと、エントリ中
のプロセス識別子を構成する複数ビットとの比較におい
って、(1)両方のプロセス識別子全体の比較、(2)
両方のプロセス識別子を比較しない、(3)両方のプロ
セス識別子の上位ビット同士の比較、(4)両方のプロ
セス識別子の下位ビット同士の比較、である。
【0031】次に、第1比較器12と、第2比較器13
について説明する。第1比較器12は、中央処理装置3
から要求される仮想アドレスXの一部を構成する仮想ペ
ージ番号vpnと、仮想ページ番号記憶領域101に記
憶されている仮想ページ番号VPNとを比較する。第2
比較器13は、前記制御レジスタ2から送られる現在実
行中のプロセスのプロセス識別子PIDcとプロセス識
別子記憶領域102に記憶されているプロセス識別子P
IDとをグローバルビットGの値に応じて比較する。第
1比較器12と第2比較器13は、各エントリeのタグ
部10に設けられている。
について説明する。第1比較器12は、中央処理装置3
から要求される仮想アドレスXの一部を構成する仮想ペ
ージ番号vpnと、仮想ページ番号記憶領域101に記
憶されている仮想ページ番号VPNとを比較する。第2
比較器13は、前記制御レジスタ2から送られる現在実
行中のプロセスのプロセス識別子PIDcとプロセス識
別子記憶領域102に記憶されているプロセス識別子P
IDとをグローバルビットGの値に応じて比較する。第
1比較器12と第2比較器13は、各エントリeのタグ
部10に設けられている。
【0032】ここで、プロセス比較手段である第2比較
器13について詳しく説明する。図2に第2比較器13
の構成を表すブロック図を示す。第2比較器13は上位
ビット比較器131a、下位ビット比較器131b、上
位ビット用ORゲート132a、下位ビット用ORゲー
ト132b、ANDゲート133より構成される。
器13について詳しく説明する。図2に第2比較器13
の構成を表すブロック図を示す。第2比較器13は上位
ビット比較器131a、下位ビット比較器131b、上
位ビット用ORゲート132a、下位ビット用ORゲー
ト132b、ANDゲート133より構成される。
【0033】第2比較器13の各部材の動作を説明する
と、上位ビット比較器131aは制御レジスタ2に記憶
されているプロセス識別子PIDcの上位4ビットと、
プロセス識別子記憶領域102に記憶されているプロセ
ス識別子PIDの上位4ビットとを比較する。下位ビッ
ト比較器131bは制御レジスタ2に記憶されているプ
ロセス識別子PIDcの下位4ビットと、プロセス識別
子記憶領域102に記憶されているプロセス識別子PI
Dの下位4ビットとを比較する。
と、上位ビット比較器131aは制御レジスタ2に記憶
されているプロセス識別子PIDcの上位4ビットと、
プロセス識別子記憶領域102に記憶されているプロセ
ス識別子PIDの上位4ビットとを比較する。下位ビッ
ト比較器131bは制御レジスタ2に記憶されているプ
ロセス識別子PIDcの下位4ビットと、プロセス識別
子記憶領域102に記憶されているプロセス識別子PI
Dの下位4ビットとを比較する。
【0034】上位ビット用ORゲート132aはグロー
バルビット記憶領域103に記憶されたグローバルビッ
トGの上位1ビットと、前記上位ビット比較器131a
からの出力値との論理和をとる。下位ビット用ORゲー
ト132bはグローバルビット記憶領域103に記憶さ
れたグローバルビットGの下位1ビットと、前記下位ビ
ット比較器131bからの出力値との論理和をとる。
バルビット記憶領域103に記憶されたグローバルビッ
トGの上位1ビットと、前記上位ビット比較器131a
からの出力値との論理和をとる。下位ビット用ORゲー
ト132bはグローバルビット記憶領域103に記憶さ
れたグローバルビットGの下位1ビットと、前記下位ビ
ット比較器131bからの出力値との論理和をとる。
【0035】ANDゲート133は、上位ビット用OR
ゲート132aの出力値と、下位ビット用ORゲート1
32bの出力値の論理積をとる。そしてこのANDゲー
ト133の出力値が第2比較器13の出力値となる。
ゲート132aの出力値と、下位ビット用ORゲート1
32bの出力値の論理積をとる。そしてこのANDゲー
ト133の出力値が第2比較器13の出力値となる。
【0036】このように動作する部材を備えた第2比較
器13による、現在実行中のプロセスの有するプロセス
識別子と、エントリ中のプロセス識別子の比較について
説明する。上位ビット比較器131aの出力値はグロー
バルビットGの上位ビットと論理和をとられる結果、上
位ビット比較器131aからの出力値はグローバルビッ
トGの上位ビットが“0”のときだけ意味をなし、グロ
ーバルビットの上位ビットが“1”のときは、プロセス
識別子の上位4ビット同士は比較されないこととなる。
同様に下位ビット比較器131bの出力値はグローバル
ビットGの下位ビットと論理和をとられるので、下位ビ
ット比較器131bからの出力値はグローバルビットの
下位ビットが“0”のときだけ意味をなし、グローバル
ビットの下位ビットが“1”のときは、プロセス識別子
の下位4ビット同士は比較されないことを意味する。
器13による、現在実行中のプロセスの有するプロセス
識別子と、エントリ中のプロセス識別子の比較について
説明する。上位ビット比較器131aの出力値はグロー
バルビットGの上位ビットと論理和をとられる結果、上
位ビット比較器131aからの出力値はグローバルビッ
トGの上位ビットが“0”のときだけ意味をなし、グロ
ーバルビットの上位ビットが“1”のときは、プロセス
識別子の上位4ビット同士は比較されないこととなる。
同様に下位ビット比較器131bの出力値はグローバル
ビットGの下位ビットと論理和をとられるので、下位ビ
ット比較器131bからの出力値はグローバルビットの
下位ビットが“0”のときだけ意味をなし、グローバル
ビットの下位ビットが“1”のときは、プロセス識別子
の下位4ビット同士は比較されないことを意味する。
【0037】つまり、ANDゲート133からの出力値
が“1”となるためには、グローバルビットGが“0
1”の場合はプロセス識別子の上位4ビット同士さえ一
致すればよく、グローバルビットGが“10”の場合は
プロセス識別子の下位4ビット同士さえ一致すればよ
い。
が“1”となるためには、グローバルビットGが“0
1”の場合はプロセス識別子の上位4ビット同士さえ一
致すればよく、グローバルビットGが“10”の場合は
プロセス識別子の下位4ビット同士さえ一致すればよ
い。
【0038】また、グローバルビットGが“00”の場
合は、プロセス識別子の上位4ビット同士および下位4
ビット同士の両方の一致、即ちプロセス識別子の完全一
致が必要であり、グローバルビットGが“11”であれ
ばプロセス識別子に関わらず常にANDゲート133か
らの出力値は“1”となる。
合は、プロセス識別子の上位4ビット同士および下位4
ビット同士の両方の一致、即ちプロセス識別子の完全一
致が必要であり、グローバルビットGが“11”であれ
ばプロセス識別子に関わらず常にANDゲート133か
らの出力値は“1”となる。
【0039】言い換えると、第2比較器13はグローバ
ルビットGが“00”のときはプロセス識別子の全体同
士の比較を行い、グローバルビットGが“01”のとき
はプロセス識別子の上位ビット同士のみの比較を行い、
グローバルビットGが“10”のときはプロセス識別子
の下位ビット同士のみの比較をおこない、グローバルビ
ットGが“11”のときはプロセス識別子の比較は行わ
ない。このようにして第2比較器は、プロセス識別子の
4通りの比較を行うことが可能である。
ルビットGが“00”のときはプロセス識別子の全体同
士の比較を行い、グローバルビットGが“01”のとき
はプロセス識別子の上位ビット同士のみの比較を行い、
グローバルビットGが“10”のときはプロセス識別子
の下位ビット同士のみの比較をおこない、グローバルビ
ットGが“11”のときはプロセス識別子の比較は行わ
ない。このようにして第2比較器は、プロセス識別子の
4通りの比較を行うことが可能である。
【0040】以上のように動作する第2比較器13の出
力値と、第1比較器12の比較結果を示す出力値、及び
有効ビット記憶領域104に記憶された有効ビットVの
値は、エントリ検索手段であるANDゲート14により
論理積がとられる。つまり、第1比較器12、及び第2
比較器13の比較結果が一致し、さらに有効ビットがア
クティブの場合、つまり適正な仮想ページ番号が存在す
る場合のみこのANDゲート14から信号値“1”が出
力される。本実施の形態では、第1の比較器12、及び
ANDゲート14によりエントリ検索手段が構成され
る。
力値と、第1比較器12の比較結果を示す出力値、及び
有効ビット記憶領域104に記憶された有効ビットVの
値は、エントリ検索手段であるANDゲート14により
論理積がとられる。つまり、第1比較器12、及び第2
比較器13の比較結果が一致し、さらに有効ビットがア
クティブの場合、つまり適正な仮想ページ番号が存在す
る場合のみこのANDゲート14から信号値“1”が出
力される。本実施の形態では、第1の比較器12、及び
ANDゲート14によりエントリ検索手段が構成され
る。
【0041】ここで、以下に説明するこのエントリ検索
手段について、本実施の形態におけるエントリ検索手段
の行うエントリ検索方法については、以下の例示に限定
するものではない。まずANDゲート14の出力値はデ
ータ部11に送られるとともにORゲート15に送ら
れ、このORゲート15ですべてのANDゲート15の
出力値の論理和がとられる。このORゲート15の出力
信号値“1”はヒット信号として、出力信号値“0”は
ミス信号として中央処理装置3へ出力される。
手段について、本実施の形態におけるエントリ検索手段
の行うエントリ検索方法については、以下の例示に限定
するものではない。まずANDゲート14の出力値はデ
ータ部11に送られるとともにORゲート15に送ら
れ、このORゲート15ですべてのANDゲート15の
出力値の論理和がとられる。このORゲート15の出力
信号値“1”はヒット信号として、出力信号値“0”は
ミス信号として中央処理装置3へ出力される。
【0042】エントリeのデータ部11では、ANDゲ
ート14から出力値“1”が送られてきた場合は、物理
ページ番号記憶領域111に記憶されている物理ページ
番号PPNを出力する。出力された物理ページ番号PP
Nは、ページ内オフセットに連結されて物理アドレスY
として中央処理装置3へ送られる。このようにして、エ
ントリが検索される。
ート14から出力値“1”が送られてきた場合は、物理
ページ番号記憶領域111に記憶されている物理ページ
番号PPNを出力する。出力された物理ページ番号PP
Nは、ページ内オフセットに連結されて物理アドレスY
として中央処理装置3へ送られる。このようにして、エ
ントリが検索される。
【0043】次に、複数の部分により構成されるプロセ
ス識別子の設定例およびそれに対応するエントリの設定
例について説明する。今、図3に示すように複数のプロ
セスにメモリ領域を割り当てている場合を考える。図3
は6つのプロセスA1、A2、A3、B1、B2、B3
について、それぞれのプロセスが使用する仮想アドレス
領域と、それぞれの仮想アドレス領域に対して設定され
た物理アドレス領域を示している。各種パターン模様で
塗りつぶされている領域がメモリの使用領域を示し、線
分で結ばれている仮想アドレス領域と物理アドレス領域
が対応していることを示している。
ス識別子の設定例およびそれに対応するエントリの設定
例について説明する。今、図3に示すように複数のプロ
セスにメモリ領域を割り当てている場合を考える。図3
は6つのプロセスA1、A2、A3、B1、B2、B3
について、それぞれのプロセスが使用する仮想アドレス
領域と、それぞれの仮想アドレス領域に対して設定され
た物理アドレス領域を示している。各種パターン模様で
塗りつぶされている領域がメモリの使用領域を示し、線
分で結ばれている仮想アドレス領域と物理アドレス領域
が対応していることを示している。
【0044】ここでプロセスA1〜A3までは同一のア
プリケーションAを構成し、プロセスB1〜B3までは
これとは別のアプリケーションBを構成しているものと
する。また、各プロセスA1〜B3の下に書かれている
のはそれぞれのプロセスのプロセス識別子である。
プリケーションAを構成し、プロセスB1〜B3までは
これとは別のアプリケーションBを構成しているものと
する。また、各プロセスA1〜B3の下に書かれている
のはそれぞれのプロセスのプロセス識別子である。
【0045】図3において各プロセスが使用する仮想ア
ドレス空間において仮想アドレス0x0500を見てみ
ると、この仮想アドレス領域はすべてのプロセスにより
使用され、しかも対応する物理アドレスは0x1600
で共通である。従って、この仮想アドレスと物理アドレ
スの組合わせはすべてのプロセスで完全に共有できる。
ドレス空間において仮想アドレス0x0500を見てみ
ると、この仮想アドレス領域はすべてのプロセスにより
使用され、しかも対応する物理アドレスは0x1600
で共通である。従って、この仮想アドレスと物理アドレ
スの組合わせはすべてのプロセスで完全に共有できる。
【0046】また、仮想アドレス0x0200を見てみ
ると、この領域を使用するプロセスA2とプロセスA3
に関しては同一の物理アドレス0x0400に対応して
おり両者はこれらの仮想アドレスと物理アドレスを共有
できる。
ると、この領域を使用するプロセスA2とプロセスA3
に関しては同一の物理アドレス0x0400に対応して
おり両者はこれらの仮想アドレスと物理アドレスを共有
できる。
【0047】しかし、別のプロセスA1では同じ仮想ア
ドレス領域0x0200に対して別の物理アドレス0x
0300を設定しているため、仮想アドレス0x020
0と物理アドレス0x0300の組み合わせはすべての
プロセスで共有させることはできずプロセスA2とプロ
セスA3の部分共有にしかできない。同様の部分共有が
プロセスA3とプロセスB1に対する仮想アドレス0x
0300と物理アドレス0x0900の組み合わせ、お
よび、プロセスB1とプロセスB2に対する仮想アドレ
ス0x0400と物理アドレス0x1000の組み合わ
せについても存在する。さらに、プロセスA3とプロセ
スB1に関しては異なる2つのプロセスに対して異なる
部分共有を行っている。
ドレス領域0x0200に対して別の物理アドレス0x
0300を設定しているため、仮想アドレス0x020
0と物理アドレス0x0300の組み合わせはすべての
プロセスで共有させることはできずプロセスA2とプロ
セスA3の部分共有にしかできない。同様の部分共有が
プロセスA3とプロセスB1に対する仮想アドレス0x
0300と物理アドレス0x0900の組み合わせ、お
よび、プロセスB1とプロセスB2に対する仮想アドレ
ス0x0400と物理アドレス0x1000の組み合わ
せについても存在する。さらに、プロセスA3とプロセ
スB1に関しては異なる2つのプロセスに対して異なる
部分共有を行っている。
【0048】このようなメモリ領域の割り当てを行って
いる場合のプロセス識別子の設定方法の一例を以下に示
す。本実施の形態におけるアドレス変換装置はプロセス
識別子の部分比較を行うことができるので、部分共有を
行っているプロセス同士のプロセス識別子の一部を共通
にすることで、これらのプロセス同士の共有を図ること
ができる。
いる場合のプロセス識別子の設定方法の一例を以下に示
す。本実施の形態におけるアドレス変換装置はプロセス
識別子の部分比較を行うことができるので、部分共有を
行っているプロセス同士のプロセス識別子の一部を共通
にすることで、これらのプロセス同士の共有を図ること
ができる。
【0049】具体的には、例えばプロセスA2とプロセ
スA3については同一のアプリケーション内の共有なの
でこれらのプロセス識別子の上位4ビットを“A”(1
010)とする。また、プロセスB1とプロセスB2に
ついても同様に同一アプリケーション内での共有なので
これらのプロセス識別子の上位4ビットを“B”(10
11)とする。プロセスA3とプロセスB1に関しては
既に上位4ビットは定まってしまっているので、下位4
ビットを共通にして、例えば“C”(1100)とす
る。従って、プロセスA3とプロセスB1のプロセス識
別子はそれぞれ「AC」「BC」と定まる。
スA3については同一のアプリケーション内の共有なの
でこれらのプロセス識別子の上位4ビットを“A”(1
010)とする。また、プロセスB1とプロセスB2に
ついても同様に同一アプリケーション内での共有なので
これらのプロセス識別子の上位4ビットを“B”(10
11)とする。プロセスA3とプロセスB1に関しては
既に上位4ビットは定まってしまっているので、下位4
ビットを共通にして、例えば“C”(1100)とす
る。従って、プロセスA3とプロセスB1のプロセス識
別子はそれぞれ「AC」「BC」と定まる。
【0050】プロセスA2とプロセスB2のプロセス識
別子の下位4ビットはプロセス識別子全体が他のものと
重複せずかつ自己が使用している仮想アドレスと同じ仮
想アドレスを用いて部分共有を行っているプロセス識別
子の共通部分と重複しなければどのようなものを設定し
てもよい。また、残りのプロセスA1、B3についても
プロセス識別子全体が他のものと重複せずかつプロセス
識別子の各部分が自己が使用している仮想アドレスと同
じ仮想アドレスを用いて部分共有を行っているプロセス
識別子の共通部分と重複しなければどのようなものでも
よい。
別子の下位4ビットはプロセス識別子全体が他のものと
重複せずかつ自己が使用している仮想アドレスと同じ仮
想アドレスを用いて部分共有を行っているプロセス識別
子の共通部分と重複しなければどのようなものを設定し
てもよい。また、残りのプロセスA1、B3についても
プロセス識別子全体が他のものと重複せずかつプロセス
識別子の各部分が自己が使用している仮想アドレスと同
じ仮想アドレスを用いて部分共有を行っているプロセス
識別子の共通部分と重複しなければどのようなものでも
よい。
【0051】ここでは、結果として図3に示すようなプ
ロセス識別子が各プロセスに付されたものとする。この
ように、複数のプロセスに関しプロセス識別子の上位4
ビットおよび下位4ビットを共通のものとすることでプ
ロセスのグループ化を図ることができる。
ロセス識別子が各プロセスに付されたものとする。この
ように、複数のプロセスに関しプロセス識別子の上位4
ビットおよび下位4ビットを共通のものとすることでプ
ロセスのグループ化を図ることができる。
【0052】次に、このようなプロセス識別子の設定に
対するグローバルビットGの設定について説明する。ま
ず、仮想アドレス0x0500と物理アドレス0x16
00との組み合わせについてはすべてのプロセスで完全
に共有できるのでプロセス識別子の比較を行わないよう
にグローバルビットGは“11”に設定する。
対するグローバルビットGの設定について説明する。ま
ず、仮想アドレス0x0500と物理アドレス0x16
00との組み合わせについてはすべてのプロセスで完全
に共有できるのでプロセス識別子の比較を行わないよう
にグローバルビットGは“11”に設定する。
【0053】また、仮想アドレス0x0200と物理ア
ドレス0x0400との組み合わせについてはプロセス
A2とプロセスA3だけの部分共有であり、前述したよ
うにこの2つのプロセスのプロセス識別子は上位4ビッ
トを共通にしたので、グローバルビットGは上位4ビッ
トのみの比較を行うように“01”に設定する。
ドレス0x0400との組み合わせについてはプロセス
A2とプロセスA3だけの部分共有であり、前述したよ
うにこの2つのプロセスのプロセス識別子は上位4ビッ
トを共通にしたので、グローバルビットGは上位4ビッ
トのみの比較を行うように“01”に設定する。
【0054】プロセスA3とプロセスB1のみが共有す
る仮想アドレス0x0300と物理アドレス0x090
0との組み合わせについては、各プロセスのプロセス識
別子について下位4ビットを共通にしたので、グローバ
ルビットGは下位4ビットのみを比較するように“1
0”に設定する。
る仮想アドレス0x0300と物理アドレス0x090
0との組み合わせについては、各プロセスのプロセス識
別子について下位4ビットを共通にしたので、グローバ
ルビットGは下位4ビットのみを比較するように“1
0”に設定する。
【0055】また、仮想アドレス0x0200と物理ア
ドレス0x0300との組み合わせのように全く共有さ
れないものは、データ保護のためにプロセス識別子の全
体比較を行うためにグローバルビットGを“00”に設
定する。
ドレス0x0300との組み合わせのように全く共有さ
れないものは、データ保護のためにプロセス識別子の全
体比較を行うためにグローバルビットGを“00”に設
定する。
【0056】以上のような方法でグローバルビットを定
めると、図3のようなメモリ領域の割り当てをする場合
には、各エントリの仮想ページ番号VPN、プロセス識
別子PID、グローバルビットG、物理ページ番号PP
Nは図4に示すように設定される。
めると、図3のようなメモリ領域の割り当てをする場合
には、各エントリの仮想ページ番号VPN、プロセス識
別子PID、グローバルビットG、物理ページ番号PP
Nは図4に示すように設定される。
【0057】なお、仮想ページ番号、物理ページ番号
は、ここでは、それぞれ仮想アドレスおよび物理アドレ
スからページ内オフセットに相当する下位1ビットを除
いたもので表している。また、エントリに記録されるプ
ロセス識別子における上位ビットおよび下位ビットの
内、グローバルビットGの値により比較されないものは
ここでは“0”を記録するようにしている。もっとも、
この値はどのようなものが入っても差し支えない。これ
らのグローバルビットG、プロセス識別子PIDの設定
はともに中央処理装置3により実行されるプログラムに
より各エントリに記録される。
は、ここでは、それぞれ仮想アドレスおよび物理アドレ
スからページ内オフセットに相当する下位1ビットを除
いたもので表している。また、エントリに記録されるプ
ロセス識別子における上位ビットおよび下位ビットの
内、グローバルビットGの値により比較されないものは
ここでは“0”を記録するようにしている。もっとも、
この値はどのようなものが入っても差し支えない。これ
らのグローバルビットG、プロセス識別子PIDの設定
はともに中央処理装置3により実行されるプログラムに
より各エントリに記録される。
【0058】ここで、グローバルビットが1ビットで構
成されている従来のアドレス変換装置においてメモリ領
域の割り当てをする場合の、各エントリの仮想ページ番
号VPN、プロセス識別子PID、グローバルビット
G、及び物理ページ番号PPNの関係を、図4に示した
本実施の形態における場合と比較してみる。従来の場合
を図5に示す。
成されている従来のアドレス変換装置においてメモリ領
域の割り当てをする場合の、各エントリの仮想ページ番
号VPN、プロセス識別子PID、グローバルビット
G、及び物理ページ番号PPNの関係を、図4に示した
本実施の形態における場合と比較してみる。従来の場合
を図5に示す。
【0059】まず図4のエントリe1では、グローバル
ビットが“00”なので、ここではプロセス識別子の全
体比較を行う。これに対して、従来の場合も同様に、図
5のエントリE1でプロセス識別子の全体比較を行う。
ビットが“00”なので、ここではプロセス識別子の全
体比較を行う。これに対して、従来の場合も同様に、図
5のエントリE1でプロセス識別子の全体比較を行う。
【0060】図4のエントリe2では、グローバルビッ
トが“01”なので、プロセス識別子の上位4ビットに
関しての部分比較を行っている(下位4ビットに関して
は無比較)。そこで、図3における仮想アドレス(0x
0200〜0x02ff)から物理アドレスに変換する
予定のものをエントリに割り当てる必要がある。図4で
はエントリe2だけでよいが、従来の場合では、図5の
エントリE2及びエントリE3が必要である。
トが“01”なので、プロセス識別子の上位4ビットに
関しての部分比較を行っている(下位4ビットに関して
は無比較)。そこで、図3における仮想アドレス(0x
0200〜0x02ff)から物理アドレスに変換する
予定のものをエントリに割り当てる必要がある。図4で
はエントリe2だけでよいが、従来の場合では、図5の
エントリE2及びエントリE3が必要である。
【0061】図4のエントリe3では、グローバルビッ
トが“10”なので、プロセス識別子の下位4ビットに
関しての部分比較を行っている(上位4ビットに関して
は無比較)。そこで、図3における仮想アドレス(0x
0300〜0x03ff)から物理アドレスに変換する
予定のものをエントリに割り当てる必要がある。図4で
はエントリe3だけでよいが、従来の場合では、図5の
エントリE4及びエントリE5が必要である。
トが“10”なので、プロセス識別子の下位4ビットに
関しての部分比較を行っている(上位4ビットに関して
は無比較)。そこで、図3における仮想アドレス(0x
0300〜0x03ff)から物理アドレスに変換する
予定のものをエントリに割り当てる必要がある。図4で
はエントリe3だけでよいが、従来の場合では、図5の
エントリE4及びエントリE5が必要である。
【0062】図4のエントリe4では、グローバルビッ
トが“00”なので、プロセス識別子の全体比較を行
う。これに対して、従来の場合も同様に、図5のエント
リE6でプロセス識別子の全体比較を行う。
トが“00”なので、プロセス識別子の全体比較を行
う。これに対して、従来の場合も同様に、図5のエント
リE6でプロセス識別子の全体比較を行う。
【0063】図4のエントリe5では、グローバルビッ
トが“01”なので、プロセス識別子の上位4ビットに
関しての部分比較を行っている(下位4ビットに関して
は無比較)。そこで、図3における仮想アドレス(0x
0400〜0x04ff)から物理アドレスに変換する
予定のものをエントリに割り当てる必要がある。図4で
はエントリe5だけでよいが、従来の場合であれば、図
5のエントリE7及びエントリE8が必要である。
トが“01”なので、プロセス識別子の上位4ビットに
関しての部分比較を行っている(下位4ビットに関して
は無比較)。そこで、図3における仮想アドレス(0x
0400〜0x04ff)から物理アドレスに変換する
予定のものをエントリに割り当てる必要がある。図4で
はエントリe5だけでよいが、従来の場合であれば、図
5のエントリE7及びエントリE8が必要である。
【0064】図4のエントリe6では、グローバルビッ
トが“00”なので、プロセス識別子の全体比較を行
う。これに対して、従来の場合も同様に、図5のエント
リE9でプロセス識別子の全体比較を行う。
トが“00”なので、プロセス識別子の全体比較を行
う。これに対して、従来の場合も同様に、図5のエント
リE9でプロセス識別子の全体比較を行う。
【0065】図4のエントリe7では、グローバルビッ
トが“11”なので、比較を行わない。即ち無比較であ
る。これに対して、従来の場合では、グローバルビット
が1ビットであるため、仮想アドレスから物理アドレス
に変換する予定のものをエントリごとに割り当てる必要
がある。即ち、図5ではエントリE10〜エントリE1
5が必要である。
トが“11”なので、比較を行わない。即ち無比較であ
る。これに対して、従来の場合では、グローバルビット
が1ビットであるため、仮想アドレスから物理アドレス
に変換する予定のものをエントリごとに割り当てる必要
がある。即ち、図5ではエントリE10〜エントリE1
5が必要である。
【0066】このように、グローバルビットが1ビット
とした従来のアドレス変換装置であれば、図3に示す仮
想アドレスと物理アドレスに対応するエントリが15個
必要となるところを、本実施の形態においてグローバル
ビットを2ビットとすることにより、図4に示すよう
に、グローバルビットGが“01”“10”のエントリ
だけで済むことになり、エントリの総数も7個となっ
て、エントリの効率的利用が図られていることがわか
る。しかも、データの保護も実現されている。そしてこ
の効果は、部分共有するプロセスの数が増えればさらに
顕著なものとなるのである。
とした従来のアドレス変換装置であれば、図3に示す仮
想アドレスと物理アドレスに対応するエントリが15個
必要となるところを、本実施の形態においてグローバル
ビットを2ビットとすることにより、図4に示すよう
に、グローバルビットGが“01”“10”のエントリ
だけで済むことになり、エントリの総数も7個となっ
て、エントリの効率的利用が図られていることがわか
る。しかも、データの保護も実現されている。そしてこ
の効果は、部分共有するプロセスの数が増えればさらに
顕著なものとなるのである。
【0067】以上のような構成を持つTLB1の動作に
ついて、以下に説明する。現在TLB1の各エントリe
1〜e7は図4に示すようなデータを記憶しているもの
とする。まず、中央処理装置3から仮想アドレスXの要
求があると、各エントリ中の第1比較器12が、この仮
想アドレスXを構成する仮想ページ番号vpnと仮想ペ
ージ番号記憶領域101に記憶された仮想ページ番号V
PNとが一致するか否かを比較する。同時に、各エント
リ中の第2比較器13が、制御レジスタ2に記憶されて
いる現在実行中のプロセスのプロセス識別子PIDcと
エントリ中のプロセス識別子記憶領域102に記憶され
ているプロセス識別子PIDとをグローバルビットGの
値に応じて比較する。
ついて、以下に説明する。現在TLB1の各エントリe
1〜e7は図4に示すようなデータを記憶しているもの
とする。まず、中央処理装置3から仮想アドレスXの要
求があると、各エントリ中の第1比較器12が、この仮
想アドレスXを構成する仮想ページ番号vpnと仮想ペ
ージ番号記憶領域101に記憶された仮想ページ番号V
PNとが一致するか否かを比較する。同時に、各エント
リ中の第2比較器13が、制御レジスタ2に記憶されて
いる現在実行中のプロセスのプロセス識別子PIDcと
エントリ中のプロセス識別子記憶領域102に記憶され
ているプロセス識別子PIDとをグローバルビットGの
値に応じて比較する。
【0068】第1比較器12および第2比較器13の比
較結果が一致し、かつ、有効ビットVがアクティブであ
るエントリがある場合は、そのエントリのANDゲート
14からの出力信号値は“1”となる。
較結果が一致し、かつ、有効ビットVがアクティブであ
るエントリがある場合は、そのエントリのANDゲート
14からの出力信号値は“1”となる。
【0069】今、例えば要求された仮想アドレスXを構
成する仮想ページ番号が0x020で、実行中のプロセ
スのプロセス識別子PIDc“A2”であったとする。
すると、エントリe1およびエントリe2の第1比較器
12の出力信号値が“1”となる。そしてエントリe1
の第2比較器13ではグローバルビットGが“00”で
あるのでプロセス識別子の全体比較が行われ、エントリ
e1のプロセス識別子PIDは“E1”であるので、実
行中のプロセス識別子PIDc“A2”とは一致せず出
力信号値は“0”になる。
成する仮想ページ番号が0x020で、実行中のプロセ
スのプロセス識別子PIDc“A2”であったとする。
すると、エントリe1およびエントリe2の第1比較器
12の出力信号値が“1”となる。そしてエントリe1
の第2比較器13ではグローバルビットGが“00”で
あるのでプロセス識別子の全体比較が行われ、エントリ
e1のプロセス識別子PIDは“E1”であるので、実
行中のプロセス識別子PIDc“A2”とは一致せず出
力信号値は“0”になる。
【0070】一方、エントリe2の第2比較器12では
グローバルビットGが“01”であるのでプロセス識別
子は上位4ビットのみの比較が行われ、エントリe2の
プロセス識別子PIDは“A0”であって実行中のプロ
セス識別子PIDc“A2”とは完全一致しないが、上
位4ビットは一致するので出力信号値は“1”になる。
従って、エントリe2の有効ビットVがアクティブであ
れば、エントリe2のANDゲート14からの“1”の
信号値が出力される。
グローバルビットGが“01”であるのでプロセス識別
子は上位4ビットのみの比較が行われ、エントリe2の
プロセス識別子PIDは“A0”であって実行中のプロ
セス識別子PIDc“A2”とは完全一致しないが、上
位4ビットは一致するので出力信号値は“1”になる。
従って、エントリe2の有効ビットVがアクティブであ
れば、エントリe2のANDゲート14からの“1”の
信号値が出力される。
【0071】ANDゲート14からの信号値“1”は、
ORゲート15を通じて中央処理装置3に対するヒット
信号となって発せられると共に、そのANDゲート14
が存在するエントリのデータ部11が、物理ページ番号
記憶領域111に記憶されている物理ページ番号PPN
を出力する。仮にエントリe2のANDゲート14から
信号値“1”が出力されたものとすると、物理ページ番
号“0x040”が出力されることになる。
ORゲート15を通じて中央処理装置3に対するヒット
信号となって発せられると共に、そのANDゲート14
が存在するエントリのデータ部11が、物理ページ番号
記憶領域111に記憶されている物理ページ番号PPN
を出力する。仮にエントリe2のANDゲート14から
信号値“1”が出力されたものとすると、物理ページ番
号“0x040”が出力されることになる。
【0072】そしてこの物理ページ番号にページ内オフ
セットが付加され物理アドレスYとして中央処理装置3
へ送られる。中央処理装置3ではこの物理アドレスを元
にメインメモリ4へアクセスして必要なデータ等を取得
する。
セットが付加され物理アドレスYとして中央処理装置3
へ送られる。中央処理装置3ではこの物理アドレスを元
にメインメモリ4へアクセスして必要なデータ等を取得
する。
【0073】なお、いずれのエントリのANDゲート1
4からも信号値“1”が出力されない場合は、ミス信号
として、信号値“0”がORゲート15から中央処理装
置3へ出力され、これを受けた中央処理装置3は、メイ
ンメモリ内のページテーブル40へアクセスしてページ
テーブル40によりアドレス変換を行う。
4からも信号値“1”が出力されない場合は、ミス信号
として、信号値“0”がORゲート15から中央処理装
置3へ出力され、これを受けた中央処理装置3は、メイ
ンメモリ内のページテーブル40へアクセスしてページ
テーブル40によりアドレス変換を行う。
【0074】このように本実施の形態に係るTLB1で
は、各エントリ中に記憶されたプロセス識別子PID
と、現在実行中のプロセス識別子PIDcとの比較にお
いて、グローバルビットGの値に応じて全体比較、無比
較のみならず、部分比較を行うことができる。
は、各エントリ中に記憶されたプロセス識別子PID
と、現在実行中のプロセス識別子PIDcとの比較にお
いて、グローバルビットGの値に応じて全体比較、無比
較のみならず、部分比較を行うことができる。
【0075】このような部分比較が行えるので、一部の
プロセス群により仮想アドレスと物理アドレスの共有が
行われる場合に、当該プロセス群を構成するプロセスの
プロセス識別子の一部分を共通なものとすることで、こ
れらのプロセス群のグループ化を図ることができる。
プロセス群により仮想アドレスと物理アドレスの共有が
行われる場合に、当該プロセス群を構成するプロセスの
プロセス識別子の一部分を共通なものとすることで、こ
れらのプロセス群のグループ化を図ることができる。
【0076】これにより、データ保護を実現しつつエン
トリをまとめてTLBのメモリ領域の有効活用を図るこ
とができ、さらに、実質的に記憶される仮想アドレスと
物理アドレスの組み合わせを増やすことでTLBのヒッ
ト率も上げることが可能となる。
トリをまとめてTLBのメモリ領域の有効活用を図るこ
とができ、さらに、実質的に記憶される仮想アドレスと
物理アドレスの組み合わせを増やすことでTLBのヒッ
ト率も上げることが可能となる。
【0077】なお、上記実施の形態では、同じ仮想アド
レスに対して同じ物理アドレスを使用するプロセス同士
をグループ化したが、仮想アドレスと対応する物理アド
レスが同じであっても、プログラムの性質上一つのプロ
セスについて他のプロセスの実行時には共有物理アドレ
スへのアクセスを制限すべき場合もあり得る。このよう
な場合なら、前記他のプロセスのみプロセス識別子の一
部を一致させてグループ化を図り、前記一つのプロセス
に関してはプロセス識別子を完全に異ならせるようにす
ればよい。
レスに対して同じ物理アドレスを使用するプロセス同士
をグループ化したが、仮想アドレスと対応する物理アド
レスが同じであっても、プログラムの性質上一つのプロ
セスについて他のプロセスの実行時には共有物理アドレ
スへのアクセスを制限すべき場合もあり得る。このよう
な場合なら、前記他のプロセスのみプロセス識別子の一
部を一致させてグループ化を図り、前記一つのプロセス
に関してはプロセス識別子を完全に異ならせるようにす
ればよい。
【0078】また、本実施の形態ではグローバルビット
Gとして2ビットを用いたが、これは、任意のビット数
を用いることができる。例えば、1つのプロセスについ
て異なるプロセスとの3以上の異なる部分共有が生じる
場合はプロセス識別子を3以上の部分に分けて、それぞ
れの部分でプロセスのグループ化を図るとともに、グロ
ーバルビットGを3ビット以上として、全体比較、無比
較およびそれぞれの部分比較の切り替えを指定するよう
にすればよい。
Gとして2ビットを用いたが、これは、任意のビット数
を用いることができる。例えば、1つのプロセスについ
て異なるプロセスとの3以上の異なる部分共有が生じる
場合はプロセス識別子を3以上の部分に分けて、それぞ
れの部分でプロセスのグループ化を図るとともに、グロ
ーバルビットGを3ビット以上として、全体比較、無比
較およびそれぞれの部分比較の切り替えを指定するよう
にすればよい。
【0079】さらに、グローバルビットGを1ビットと
し、この1ビットのグローバルビットGにより全体比較
と部分比較の指定をするようにすることもできる。即
ち、従来の無比較の代わりに部分比較を行うようにす
る。例えば、図3の仮想アドレス0x0500と物理ア
ドレス0x1600の対応はすべてのプロセスで共有さ
れているので通常は無比較でよいが、仮に、プロセスA
1に関しては他のプロセス実行時にはこの領域にアクセ
スさせたくないような場合は従来ならすべてのプロセス
に関して全体比較に変えなければならなかった。
し、この1ビットのグローバルビットGにより全体比較
と部分比較の指定をするようにすることもできる。即
ち、従来の無比較の代わりに部分比較を行うようにす
る。例えば、図3の仮想アドレス0x0500と物理ア
ドレス0x1600の対応はすべてのプロセスで共有さ
れているので通常は無比較でよいが、仮に、プロセスA
1に関しては他のプロセス実行時にはこの領域にアクセ
スさせたくないような場合は従来ならすべてのプロセス
に関して全体比較に変えなければならなかった。
【0080】ここで、プロセス識別子を最下位1ビット
とそれ以外の部分に分け、プロセスA1以外のプロセス
識別子の例えば最下位1ビットを“1”とし、プロセス
A1のプロセス識別子の最下位1ビットを“0”とし
て、グローバルビットGで最下位1ビットの部分比較と
全体比較を行うようにする。そうすると、仮想アドレス
0x0500と物理アドレス0c1600の組み合わせ
についてはグローバルビットGにより部分比較を行うよ
うにすれば、プロセスA2〜B3に関してはエントリを
まとめることが可能となる。なお、従来のような無比較
と同じ完全共有を実現するには、すべての最下位ビット
の値を共通にすれば足りる。単純にグローバルビットが
1ビットである、としただけであれば従来のアドレス変
換装置と何ら代わり無いが、上述した、本実施の形態に
示した考え方を用いることで、本実施の形態と同様の効
果を得られるのである。
とそれ以外の部分に分け、プロセスA1以外のプロセス
識別子の例えば最下位1ビットを“1”とし、プロセス
A1のプロセス識別子の最下位1ビットを“0”とし
て、グローバルビットGで最下位1ビットの部分比較と
全体比較を行うようにする。そうすると、仮想アドレス
0x0500と物理アドレス0c1600の組み合わせ
についてはグローバルビットGにより部分比較を行うよ
うにすれば、プロセスA2〜B3に関してはエントリを
まとめることが可能となる。なお、従来のような無比較
と同じ完全共有を実現するには、すべての最下位ビット
の値を共通にすれば足りる。単純にグローバルビットが
1ビットである、としただけであれば従来のアドレス変
換装置と何ら代わり無いが、上述した、本実施の形態に
示した考え方を用いることで、本実施の形態と同様の効
果を得られるのである。
【0081】また、本実施の形態ではプロセス識別子を
上位4ビット、下位4ビットに分けたが、この分け方も
任意である。例えば、プロセス識別子が8ビットあれ
ば、これを2ビットづつの4分割にして、上位2ビット
と、3番目の2ビットのみを部分比較に用いる等一部に
使用しない部分を生じさせたり、上位4ビットと上位6
ビットを用いる等一部に重なりがあるように分けたりす
ることができる。
上位4ビット、下位4ビットに分けたが、この分け方も
任意である。例えば、プロセス識別子が8ビットあれ
ば、これを2ビットづつの4分割にして、上位2ビット
と、3番目の2ビットのみを部分比較に用いる等一部に
使用しない部分を生じさせたり、上位4ビットと上位6
ビットを用いる等一部に重なりがあるように分けたりす
ることができる。
【0082】また、本実施の形態では比較情報記憶手段
としてエントリ内のグローバルビット記憶領域103を
用いているが、これは他のものを用いることも可能であ
る。例えば、エントリ内のプロセス識別子記憶領域10
2に記憶されるプロセス識別子PIDを記録する際に、
図4に示すように比較を行わない部分を“0”(000
0)にするとともに、各プロセスに与えられるプロセス
識別子の上位4ビットおよび下位4ビットには“0”
(0000)を使わないようにしておき、第2比較器1
3において記憶されているPIDの上位4ビットもしく
は下位4ビットに“0”が記憶されている場合はその部
分の比較を行わないように設定することで、部分比較を
行うようにできる。
としてエントリ内のグローバルビット記憶領域103を
用いているが、これは他のものを用いることも可能であ
る。例えば、エントリ内のプロセス識別子記憶領域10
2に記憶されるプロセス識別子PIDを記録する際に、
図4に示すように比較を行わない部分を“0”(000
0)にするとともに、各プロセスに与えられるプロセス
識別子の上位4ビットおよび下位4ビットには“0”
(0000)を使わないようにしておき、第2比較器1
3において記憶されているPIDの上位4ビットもしく
は下位4ビットに“0”が記憶されている場合はその部
分の比較を行わないように設定することで、部分比較を
行うようにできる。
【0083】この場合はグローバルビットGは必要なく
なる。その他にも、グローバルビット記憶領域103と
プロセス識別子記憶領域102で比較情報記憶手段を構
成し比較情報量を増やすこともでき、さらに、比較情報
記憶手段をTLB1の外部に設けることも可能である。
なる。その他にも、グローバルビット記憶領域103と
プロセス識別子記憶領域102で比較情報記憶手段を構
成し比較情報量を増やすこともでき、さらに、比較情報
記憶手段をTLB1の外部に設けることも可能である。
【0084】そして、本実施の形態ではアドレス変換バ
ッファに関しての説明を行ったが、アドレス変換装置と
してのページテーブルにおいても、同様にプロセス識別
子を用いることが可能であり、ページテーブルにおいて
も本発明を適用することができる。
ッファに関しての説明を行ったが、アドレス変換装置と
してのページテーブルにおいても、同様にプロセス識別
子を用いることが可能であり、ページテーブルにおいて
も本発明を適用することができる。
【0085】さらに、ここでは詳述しないが、以上説明
したアドレス変換装置をコンピュータシステムに備えれ
ば、アドレス変換装置のメモリ領域の有効活用によりヒ
ット率が上がり処理速度が向上する。また、データ保護
も実現しているので誤動作が増大することもない。
したアドレス変換装置をコンピュータシステムに備えれ
ば、アドレス変換装置のメモリ領域の有効活用によりヒ
ット率が上がり処理速度が向上する。また、データ保護
も実現しているので誤動作が増大することもない。
【0086】
【発明の効果】以上の説明より、本発明は次のような効
果を奏する。まず、請求項1に記載のアドレス変換装置
は、現在実行中のプロセスの有するプロセス識別子と、
前記エントリ中のプロセス識別子と、を比較する比較情
報に基づき、プロセス比較手段が、現在実行中のプロセ
スの有するプロセス識別子と、前記エントリ中のプロセ
ス識別子と、を比較する。そして、エントリ検索手段が
入力される仮想ページ番号に対し、この仮想ページ番号
と一致する仮想ページ番号を含み、前記プロセス比較手
段の比較結果が一致するエントリを検索する。
果を奏する。まず、請求項1に記載のアドレス変換装置
は、現在実行中のプロセスの有するプロセス識別子と、
前記エントリ中のプロセス識別子と、を比較する比較情
報に基づき、プロセス比較手段が、現在実行中のプロセ
スの有するプロセス識別子と、前記エントリ中のプロセ
ス識別子と、を比較する。そして、エントリ検索手段が
入力される仮想ページ番号に対し、この仮想ページ番号
と一致する仮想ページ番号を含み、前記プロセス比較手
段の比較結果が一致するエントリを検索する。
【0087】このように、現在実行中のプロセスの有す
るプロセス識別子と、前記エントリ中のプロセス識別子
と、を比較する比較方法を、必要に応じた方法、例えば
プロセス識別子全体同士を比較するのか、全く比較しな
いのか、の方法に切り替えてエントリ検索が可能である
ので、一部のプロセス群にのみ共有できる仮想アドレス
と物理アドレスの対応がある場合に、これらのプロセス
群についてプロセス識別子の一部分を共通とし、比較情
報で当該仮想アドレスと物理アドレスの対応については
当該部分の比較を行うように指定することで、エントリ
を一部のプロセス群についてまとめることが可能とな
る。即ち、データの保護を実現しながら、メモリ領域の
有効活用を実現することができる。
るプロセス識別子と、前記エントリ中のプロセス識別子
と、を比較する比較方法を、必要に応じた方法、例えば
プロセス識別子全体同士を比較するのか、全く比較しな
いのか、の方法に切り替えてエントリ検索が可能である
ので、一部のプロセス群にのみ共有できる仮想アドレス
と物理アドレスの対応がある場合に、これらのプロセス
群についてプロセス識別子の一部分を共通とし、比較情
報で当該仮想アドレスと物理アドレスの対応については
当該部分の比較を行うように指定することで、エントリ
を一部のプロセス群についてまとめることが可能とな
る。即ち、データの保護を実現しながら、メモリ領域の
有効活用を実現することができる。
【0088】また、請求項2に記載のアドレス変換装置
では、比較情報記憶手段をエントリそれぞれに設けるよ
うにしているので、各エントリに記憶された仮想ページ
番号とプロセス識別子の比較と同時に比較情報記憶手段
に記憶された比較情報を参照できるので処理効率を上げ
ることができる。そして、前記比較情報を複数ビットに
より構成されるグローバルビットとしているので、少な
くとも4種類以上の比較方法の指定ができ、また、グロ
ーバルビットに比較情報をまとめることにより比較情報
の設定が容易になる。
では、比較情報記憶手段をエントリそれぞれに設けるよ
うにしているので、各エントリに記憶された仮想ページ
番号とプロセス識別子の比較と同時に比較情報記憶手段
に記憶された比較情報を参照できるので処理効率を上げ
ることができる。そして、前記比較情報を複数ビットに
より構成されるグローバルビットとしているので、少な
くとも4種類以上の比較方法の指定ができ、また、グロ
ーバルビットに比較情報をまとめることにより比較情報
の設定が容易になる。
【0089】さらに、請求項3に記載のアドレス変換装
置では、現在実行中のプロセスの有するプロセス識別子
と、前記エントリ中のプロセス識別子と、を比較する比
較方法が、2種類以上の比較方法を含み、かつ、少なく
とも、現在実行中のプロセスの有するプロセス識別子を
構成する複数ビットの一部と、前記エントリ中のプロセ
ス識別子を構成する複数ビットの一部と、を比較する方
法を含んでいるので、例えば、現在実行中のプロセスの
有するプロセス識別子を構成するビットの前半分と、エ
ントリ中のプロセス識別子を構成するビットの前半分
と、を比較する、等のように、より木目細かく、必要に
応じた方法に切り替えてエントリ検索が可能となるの
で、より一層、エントリの有功活用が可能となる。
置では、現在実行中のプロセスの有するプロセス識別子
と、前記エントリ中のプロセス識別子と、を比較する比
較方法が、2種類以上の比較方法を含み、かつ、少なく
とも、現在実行中のプロセスの有するプロセス識別子を
構成する複数ビットの一部と、前記エントリ中のプロセ
ス識別子を構成する複数ビットの一部と、を比較する方
法を含んでいるので、例えば、現在実行中のプロセスの
有するプロセス識別子を構成するビットの前半分と、エ
ントリ中のプロセス識別子を構成するビットの前半分
と、を比較する、等のように、より木目細かく、必要に
応じた方法に切り替えてエントリ検索が可能となるの
で、より一層、エントリの有功活用が可能となる。
【0090】そして、請求項4に記載のコンピュータシ
ステムでは、上記アドレス変換装置を有するので、アド
レス変換装置のメモリ領域の有効活用によりヒット率が
上がり処理速度が向上する。また、データ保護も実現し
ているので誤動作が増大することもない。
ステムでは、上記アドレス変換装置を有するので、アド
レス変換装置のメモリ領域の有効活用によりヒット率が
上がり処理速度が向上する。また、データ保護も実現し
ているので誤動作が増大することもない。
【図1】本発明の実施の形態に係るアドレス変換装置の
構成を示すブロック図である。
構成を示すブロック図である。
【図2】第2比較器の構成を示すブロック図である
【図3】複数のプロセスに対する仮想アドレスと物理ア
ドレスの割り当ての一例を模式的に示す図である。
ドレスの割り当ての一例を模式的に示す図である。
【図4】本実施の形態の場合の図3に示す仮想アドレス
と物理アドレスに対応するエントリのデータ例を示す図
である。
と物理アドレスに対応するエントリのデータ例を示す図
である。
【図5】グローバルビットが1ビットしかない場合の図
3に示す仮想アドレスと物理アドレスに対応するエント
リのデータ例を示す図である。
3に示す仮想アドレスと物理アドレスに対応するエント
リのデータ例を示す図である。
1 TLB 2 制御レジスタ 3 中央処理装置 4 メインメモリ 10 タグ部 11 データ部 12 第1比較器 13 第2比較器 14 ANDゲート 101 仮想ページ番号記憶領域 102 プロセス識別子記憶領域 103 グローバルビット記憶領域 111 物理ページ番号記憶領域
Claims (4)
- 【請求項1】 仮想ページ番号と、物理ページ番号と、
複数ビットで構成されるプロセス識別子と、を記録した
エントリを複数個記憶するエントリ記憶手段と、 現在実行中のプロセスの有するプロセス識別子と、前記
エントリ中のプロセス識別子と、を比較する比較方法を
規定する比較情報を記憶した比較情報記憶手段と、 前記比較情報に基づき、現在実行中のプロセスの有する
プロセス識別子と、前記エントリ中のプロセス識別子
と、を比較するプロセス比較手段と、 外部より入力される仮想ページ番号と一致する仮想ペー
ジ番号を含み、かつ前記プロセス比較手段における比較
の結果が一致する前記エントリを前記エントリ記憶手段
より検索するエントリ検索手段と、 を有すること、を特徴とする、アドレス変換装置。 - 【請求項2】 請求項1に記載のアドレス変換装置にお
いて、 前記比較情報記憶手段が、前記エントリそれぞれに設け
られ、 前記比較情報が、グローバルビットであること、 を特徴とする、アドレス変換装置。 - 【請求項3】 請求項1又は請求項2に記載のアドレス
変換装置において、 前記比較方法が、2種類以上の比較方法を含んでなり、 かつ、少なくとも前記比較方法が、現在実行中のプロセ
スの有するプロセス識別子を構成する複数ビットの一部
と、前記エントリ中のプロセス識別子を構成する複数ビ
ットの一部と、を比較する方法を含んでいること、 を特徴とする、アドレス変換装置。 - 【請求項4】 請求項1ないし請求項3のいずれか1項
に記載のアドレス変換装置を有するコンピュータシステ
ム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2000010663A JP2000276405A (ja) | 1999-01-19 | 2000-01-19 | アドレス変換装置及びこのアドレス変換装置を有するコンピュータシステム |
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP1013999 | 1999-01-19 | ||
| JP11-10139 | 1999-01-19 | ||
| JP2000010663A JP2000276405A (ja) | 1999-01-19 | 2000-01-19 | アドレス変換装置及びこのアドレス変換装置を有するコンピュータシステム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2000276405A true JP2000276405A (ja) | 2000-10-06 |
Family
ID=26345347
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2000010663A Pending JP2000276405A (ja) | 1999-01-19 | 2000-01-19 | アドレス変換装置及びこのアドレス変換装置を有するコンピュータシステム |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2000276405A (ja) |
Cited By (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2004164395A (ja) * | 2002-11-14 | 2004-06-10 | Renesas Technology Corp | アドレス変換装置 |
| JP2013065296A (ja) * | 2011-09-16 | 2013-04-11 | Freescale Semiconductor Inc | 領域記述子グローバル化制御を有するメモリ管理ユニットおよび動作方法 |
| JP2013522702A (ja) * | 2010-02-17 | 2013-06-13 | アーム・リミテッド | メモリのセキュア領域および非セキュア領域へのセキュアモードページテーブルデータの格納 |
| JP2014119787A (ja) * | 2012-12-13 | 2014-06-30 | Renesas Electronics Corp | プロセッサ |
| JP2018523209A (ja) * | 2015-06-16 | 2018-08-16 | エイアールエム リミテッド | 所有権テーブルを用いたデータ処理装置及び方法 |
| US10802729B2 (en) | 2015-06-16 | 2020-10-13 | Arm Limited | Apparatus and method for sharing pages including enforcing ownership rights independently of privilege level |
| US10838877B2 (en) | 2015-06-16 | 2020-11-17 | Arm Limited | Protected exception handling |
| US10936504B2 (en) | 2015-06-16 | 2021-03-02 | Arm Limited | Apparatus and method for address translation and control of whether an access request is rejected based on an ownership table indicating an owner process for a block of physical addresses |
| JP2022502729A (ja) * | 2018-10-15 | 2022-01-11 | アーム・リミテッド | メモリ・アクセス制御 |
-
2000
- 2000-01-19 JP JP2000010663A patent/JP2000276405A/ja active Pending
Cited By (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2004164395A (ja) * | 2002-11-14 | 2004-06-10 | Renesas Technology Corp | アドレス変換装置 |
| JP2013522702A (ja) * | 2010-02-17 | 2013-06-13 | アーム・リミテッド | メモリのセキュア領域および非セキュア領域へのセキュアモードページテーブルデータの格納 |
| JP2013065296A (ja) * | 2011-09-16 | 2013-04-11 | Freescale Semiconductor Inc | 領域記述子グローバル化制御を有するメモリ管理ユニットおよび動作方法 |
| JP2014119787A (ja) * | 2012-12-13 | 2014-06-30 | Renesas Electronics Corp | プロセッサ |
| JP2018523209A (ja) * | 2015-06-16 | 2018-08-16 | エイアールエム リミテッド | 所有権テーブルを用いたデータ処理装置及び方法 |
| US10802729B2 (en) | 2015-06-16 | 2020-10-13 | Arm Limited | Apparatus and method for sharing pages including enforcing ownership rights independently of privilege level |
| US10838877B2 (en) | 2015-06-16 | 2020-11-17 | Arm Limited | Protected exception handling |
| US10936504B2 (en) | 2015-06-16 | 2021-03-02 | Arm Limited | Apparatus and method for address translation and control of whether an access request is rejected based on an ownership table indicating an owner process for a block of physical addresses |
| US11314658B2 (en) | 2015-06-16 | 2022-04-26 | Arm Limited | Apparatus and method including an ownership table for indicating owner processes for blocks of physical addresses of a memory |
| JP2022502729A (ja) * | 2018-10-15 | 2022-01-11 | アーム・リミテッド | メモリ・アクセス制御 |
| JP7425786B2 (ja) | 2018-10-15 | 2024-01-31 | アーム・リミテッド | メモリ・アクセス制御 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR101729503B1 (ko) | 계층 변환 테이블 제어 | |
| US6408373B2 (en) | Method and apparatus for pre-validating regions in a virtual addressing scheme | |
| JP2833062B2 (ja) | キャッシュメモリ制御方法とこのキャッシュメモリ制御方法を用いたプロセッサおよび情報処理装置 | |
| JPH0654479B2 (ja) | 仮想記憶方式 | |
| JPH0555900B2 (ja) | ||
| JPH0552540B2 (ja) | ||
| JPH04320553A (ja) | アドレス変換機構 | |
| US4737909A (en) | Cache memory address apparatus | |
| CN111279324B (zh) | 用于定位元数据的方法 | |
| US5437016A (en) | Apparatus and method for translating logical addresses for virtual machines | |
| JPH0661066B2 (ja) | 記憶制御装置 | |
| JP2000276405A (ja) | アドレス変換装置及びこのアドレス変換装置を有するコンピュータシステム | |
| JPH10283259A (ja) | 情報処理装置およびプロセッサ | |
| JPH0727492B2 (ja) | 緩衝記憶装置 | |
| JPH03211643A (ja) | 並行例外検査及び更新バイパスを有する変換索引バッファ | |
| JP2933628B2 (ja) | 主記憶装置管理方法および計算機システム | |
| JP3875358B2 (ja) | 記憶装置、記憶方法および記録媒体 | |
| CN117349197A (zh) | 内存管理单元和内存访问方法 | |
| KR920005296B1 (ko) | 정보처리장치 | |
| US7181587B1 (en) | Mapping an arbitrary number of contiguous memory pages at an arbitrary alignment | |
| JPH06139147A (ja) | キャッシュメモリシステム | |
| JP2000267932A (ja) | タグアドレス比較装置 | |
| JPH04205535A (ja) | コピーオンライト方式 | |
| JPS588073B2 (ja) | アドレス変換装置 | |
| JPH05225064A (ja) | アドレス変換装置及びバッファ記憶制御装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20040302 |