特許第5654056号(P5654056)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アーム・リミテッドの特許一覧

<>
  • 特許5654056-階層的な変換テーブル制御 図000002
  • 特許5654056-階層的な変換テーブル制御 図000003
  • 特許5654056-階層的な変換テーブル制御 図000004
  • 特許5654056-階層的な変換テーブル制御 図000005
  • 特許5654056-階層的な変換テーブル制御 図000006
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5654056
(24)【登録日】2014年11月28日
(45)【発行日】2015年1月14日
(54)【発明の名称】階層的な変換テーブル制御
(51)【国際特許分類】
   G06F 12/10 20060101AFI20141218BHJP
【FI】
   G06F12/10 505B
   G06F12/10 553Z
【請求項の数】11
【全頁数】12
(21)【出願番号】特願2012-557602(P2012-557602)
(86)(22)【出願日】2011年2月8日
(65)【公表番号】特表2013-522748(P2013-522748A)
(43)【公表日】2013年6月13日
(86)【国際出願番号】GB2011050210
(87)【国際公開番号】WO2011114120
(87)【国際公開日】20110922
【審査請求日】2013年3月5日
(31)【優先権主張番号】1004294.3
(32)【優先日】2010年3月15日
(33)【優先権主張国】GB
(73)【特許権者】
【識別番号】504394342
【氏名又は名称】アーム・リミテッド
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100064908
【弁理士】
【氏名又は名称】志賀 正武
(74)【代理人】
【識別番号】100089037
【弁理士】
【氏名又は名称】渡邊 隆
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(72)【発明者】
【氏名】リチャード・ロイ・グリセンスウェイト
【審査官】 酒井 恭信
(56)【参考文献】
【文献】 米国特許出願公開第2007/0106875(US,A1)
【文献】 特表2002−539555(JP,A)
【文献】 国際公開第2000/055723(WO,A1)
【文献】 特開2001−051900(JP,A)
【文献】 米国特許出願公開第2005/0015378(US,A1)
【文献】 特表2009−523269(JP,A)
【文献】 国際公開第2007/097123(WO,A1)
【文献】 特開平05−020199(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/10
(57)【特許請求の範囲】
【請求項1】
変換テーブルの階層に格納された変換データを使用して仮想メモリアドレスを物理メモリアドレスに変換するためのトップダウンページテーブルウォーク操作を実行するように構成されたメモリアドレス変換回路を備えるデータを処理するための装置であって、
Nが正の整数であり、前記変換データが、仮想メモリアドレスの2個の連続バイトのページと、物理メモリアドレスの2個の連続バイトの対応するページとの間の変換を特定し、
変換テーブルの前記階層は、完全な変換テーブルが前記物理メモリの1つのページ内に格納されるようなサイズの2個の連続するバイトの変換テーブルを備え、
前記メモリアドレス変換回路が、現在の値Nを特定するページサイズ変数に応答して、選択されたサイズの物理メモリアドレスのページ、仮想メモリアドレスのページ、および変換テーブルを用いて動作するように前記メモリアドレス変換回路を制御し、
前記ページサイズ変数の異なる値は、2バイトの物理ページサイズおよび2バイトの物理ページサイズを特定し、XおよびYは整数であり、前記変換データが、2バイトの2Y−X個の物理ページが物理アドレス空間内に連続して配置されることを特定するための連続ヒントデータを含む、
装置。
【請求項2】
複数の仮想マシン実行環境を提供するプログラム命令を実行するように構成されたプロセッサを備え、前記複数の仮想マシン実行環境の各々に関する前記ページサイズ変数が、独立して設定されるように構成された、請求項1に記載の装置。
【請求項3】
前記仮想マシン実行環境の各々が、仮想マシン変換テーブルの階層に格納された仮想マシン変換データを有し、アドレス変換中における前記メモリアドレス変換回路による仮想マシン変換テーブルへの各アクセスは、物理アドレスを識別するために、前記メモリアドレス変換回路によるさらなるアドレス変換を必要とし、前記さらなるアドレス変換が、前記複数の仮想マシン実行環境に関する前記ページサイズ変数から独立して設定されるように構成されたページサイズ変数を使用する、請求項2に記載の装置。
【請求項4】
前記仮想メモリアドレスの最上位ビットエンドから延びる前記仮想メモリアドレスの所定の部分には、ページテーブルウォークを必要とせずに、前記物理アドレスの対応する一部分への固定された変換が与えられる、請求項1から3のいずれか1つに記載の装置。
【請求項5】
前記ページサイズ変数が、値Nを12および16のうちの一方となるように特定する、請求項1から請求項4のうちのいずれか1つに記載の装置。
【請求項6】
変換テーブルの階層に格納された変換データを使用して仮想メモリアドレスを物理メモリアドレスに変換するためのトップダウンページテーブルウォーク操作を実行するように構成されたメモリアドレス変換手段を備えるデータを処理するための装置であって、
前記変換データが、仮想メモリアドレスの2個の連続バイトのページと、物理メモリアドレスの2個の連続バイトの対応するページとの間の変換を特定し、Nが正の整数であり、
変換テーブルの前記階層は、完全な変換テーブルが前記物理メモリの1つのページ内に格納されるようなサイズの2個の連続するバイトの変換テーブルを備え、
前記メモリアドレス変換手段が、現在の値Nを特定するページサイズ変数に応答して、選択されたサイズの物理メモリアドレスのページ、仮想メモリアドレスのページ、および変換テーブルを用いて動作するようにメモリアドレス変換回路を制御し、
前記ページサイズ変数の異なる値は、2バイトの物理ページサイズおよび2バイトの物理ページサイズを特定し、XおよびYは整数であり、前記変換データが、2バイトの2Y−X個の物理ページが物理アドレス空間内に連続して配置されることを特定するための連続ヒントデータを含む、
装置。
【請求項7】
メモリアドレス変換回路によって、変換テーブルの階層に格納された変換データを使用して仮想メモリアドレスを物理メモリアドレスに変換するためのトップダウンページテーブルウォーク操作を実行するステップであって、
Nが正の整数であり、前記変換データが、仮想メモリアドレスの2個の連続バイトのページと、物理メモリアドレスの2個の連続バイトの対応するページとの間の変換を特定し、
変換テーブルの前記階層は、完全な変換テーブルが前記物理メモリの1つのページ内に格納されるようなサイズの2個の連続するバイトの変換テーブルを備える、トップダウンページテーブルウォーク操作を実行するステップと、
現在の値Nを特定するページサイズ変数に応答して、選択されたサイズの物理メモリアドレスのページ、仮想メモリアドレスのページ、および変換テーブルを用いて動作するステップを含み、
前記ページサイズ変数の異なる値が、2バイトの物理ページサイズおよび2バイトの物理ページサイズを特定し、XおよびYは整数であり、前記変換データは、2バイトの2Y−X個の物理ページが物理アドレス空間内に連続して配置されることを特定するための連続ヒントデータを含む、データを処理するための方法。
【請求項8】
複数の仮想マシン実行環境を提供するステップをさらに含み、前記ページサイズ変数が、前記複数の仮想マシン実行環境の各々に対して独立して設定される、請求項7に記載の方法。
【請求項9】
前記仮想マシン実行環境の各々が、仮想マシン変換テーブルの階層に格納された仮想マシン変換データを有し、アドレス変換中における前記メモリアドレス変換回路による仮想マシン変換テーブルへの各アクセスは、物理アドレスを識別するために、さらなるアドレス変換を必要とし、前記さらなるアドレス変換が、前記複数の仮想マシン実行環境に対して前記ページサイズ変数から独立して設定される、請求項8に記載の方法。
【請求項10】
前記仮想メモリアドレスの最上位ビットエンドから延びる前記仮想メモリアドレスの所定の部分には、ページテーブルウォークを必要とせずに、前記物理アドレスの対応する一部分への固定された変換が与えられる、請求項7から9のいずれか1つに記載の方法。
【請求項11】
前記ページサイズ変数が、値Nを12および16のうちの一方となるように特定する、請求項7から請求項10のいずれか1つに記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ処理システムの分野に関する。より詳細には、本発明は、データ処理システム内で仮想メモリアドレスを物理メモリアドレスに変換するためのメモリアドレス変換メカニズムに関する。
【背景技術】
【0002】
メモリシステムにアクセスするために、プロセッサによって生成された仮想アドレスを物理アドレスに変換するのに役立つ、メモリ管理ユニットのようなメモリアドレス変換回路をデータ処理システムに提供することが知られている。必要な変換を実行するための1つの方法は、変換テーブルを使用することである。これらの変換テーブルは、階層の各レベルが、さらなるレベルのテーブルに対するポインタか、またはターゲット物理アドレスを提供するディスクリプタのいずれかを発見するために、テーブルにインデックスを付けるための仮想アドレスの1つの部分をとる、変換テーブルの階層として構成することができる。トップダウンページテーブルウォーク操作が実行され、フル仮想アドレスがターゲット物理アドレスに変換されるまで、ページテーブルの様々なレベルへの一連のインデックス付きのルックアップが実行される。「トップダウン」の重要性は、第1のレベルのテーブルが、テーブルにインデックスを付けるために、仮想アドレスの最上位部分をとるということである。
【0003】
多くのシステムでは、アドレス空間を4kBのページに分割し、このページサイズの粒度を用いて、アドレス変換を実行するのが一般的である。さらに、ページテーブル(変換テーブル)は、また、それらのページテーブルを格納するために割り当てられるメモリのページ内にページテーブルが効率的に適合するように、4kBのサイズとなるように構成される。
【0004】
メモリアドレス空間が4kBのページに分割されることに、明示的に、あるいは非明示的に依拠する、大量のソフトウェアが存在する。現在、そのようなソフトウェアは、ページサイズが変動する場合には、正しく動作しないことがある。
【発明の概要】
【0005】
1つの態様から鑑みると、本発明は、
変換テーブルの階層に格納された変換データを使用して仮想メモリアドレスを物理メモリアドレスに変換するためのトップダウンページテーブルウォーク操作を実行するように構成されたメモリアドレス変換回路を備えるデータを処理するための装置であって、
前記変更データは、仮想メモリアドレスの2個の連続バイトのページと、物理メモリアドレスの2個の連続バイトの対応するページとの間の変換を特定し、Nが正の整数であり、
変換テーブルの前記階層は、完全な変換テーブルが前記物理メモリの1つのページ内に格納されるようなサイズの2個の連続するバイトの変換テーブルを備え、
前記メモリアドレス変換回路が、現在の値Nを特定するページサイズ変数に応答して、選択されたサイズの物理メモリアドレスのページ、仮想メモリアドレスのページ、および変換テーブルを用いて動作するように前記メモリアドレス変換回路を制御する、
装置を提供する。
【0006】
本出願の技法は、現在提供しているメモリ空間のサイズが大幅に増大すること(たとえば、メモリ容量がより大きくなり、32ビットアドレスから64ビットアドレスに変更)により、4kBメモリページを利用して、実際には必要とされないことがあるメモリ全体に、一定レベルの粒度を提供することが認識される。さらに、本出願の技法は、より大きな物理アドレスをもつ4kBのページを使用するために、トップダウンページテーブルウォーク操作をサポートするページテーブル階層内にページテーブルのさらに多くのレベルが必要であることが認識される。たとえば、ページテーブルの各レベルが、仮想アドレスのうちの9ビットから物理アドレスのうちの9ビットに変換することができる場合、64ビット仮想アドレスを64ビット物理アドレスに変換することは、ページテーブルウォークと同じくらいの6つのレベルをとることができる。これにより、望ましくない増大した遅延が導入される。本出願の技法は、これらの課題を認識すると同時に、物理メモリおよび仮想メモリのページのサイズ、ならびに変換テーブル(ページテーブル)サイズは、様々な値間で切り替えることができ、メモリアドレス変換回路が、現在選択されているサイズメモリページおよび変換テーブルを用いて、必要なトップダウンページテーブルウォーク操作を実行するように適合されていることを実現することによって、これらの課題に対処する。変換テーブルは、依然として、メモリページ内に効率的に適合することができ、変換テーブルをより大きくすることにより、ページテーブルの各レベルをもつ物理アドレスのビットに変換することができる仮想アドレスのビットの数を増加させることができる。これにより、変換においてアクセスしなければならないページテーブルのレベルの数が少なくなり、したがって、関連付けられた遅延が低減される。
【0007】
本出願の技法は、複数の仮想マシン実行環境を提供するプログラム命令を実行するプロセッサを有するシステム内で使用することができる。これらの仮想マシン実行環境は、同じハードウェア上で動作し同じメモリアドレス変換回路を利用する異なる仮想マシン実行環境が異なるページサイズを有するように、独立して設定されたページサイズ変数を有することができる。
【0008】
仮想マシン実行環境を提供するシステムを使用するとき、仮想マシンは、仮想マシン変換テーブルの階層に格納された、それ自身の変換データを有し、メモリアドレス変換回路による仮想マシン変換テーブルへの各アクセスは、基礎となる物理アドレスを識別するために、メモリアドレス変換回路によるさらなるアドレス変換を必要とする。したがって、仮想マシン変換テーブルを介するページテーブルウォークが、4レベルウォークである場合、仮想マシン変換テーブル階層を介するウォークの各レベルは、物理アドレスを識別するために実行すべき複数のページテーブルウォーク(たとえば、次の仮想マシン変換テーブルの物理アドレスを識別するために、ページテーブルウォークの4つのさらなるレベル)を必要とし、それにより、トップダウンページテーブルウォークが開始されるときにはいつでも必要なページテーブル変換のレベルの総数が急速に増加する。したがって、より大きなページテーブルを可能にし、したがって、より大きなメモリアドレス空間についてでさえ実行する必要があるページテーブルウォークのレベルの数を低減する本出願の技法は、仮想マシン実行環境を提供するシステムに適用するときに大幅な利点を有する。
【0009】
仮想マシン変換テーブルへの各レベルに関連付けられたさらなるアドレス変換について使用されるページサイズ変数は、複数の仮想マシン実行環境のページサイズ変数から独立して設定されるページサイズ変数を使用することができる。
【0010】
本発明のいくつかの実施形態では、ヒントデータをより小さなページサイズに関連付けて、仮想メモリの各々の次に連続して配置されるこれらの小さなページのうちの複数も、物理メモリ内の各々の次に連続して配置され、したがって、単一のより大きなサイズの仮想−物理アドレス変換によって、すべてを表し得ることを示す。この連続ヒントデータは、いつ、そのような連続ページが生じ、効果的なより大きなページサイズを有するものとし見なされる変換にマークを付けるかを仮想−物理アドレス変換をキャッシュするメカニズムが認識できるようにする際に有用あり、それにより、それらの変換キャッシュメカニズム(たとえば、変換ルックアサイドバッファ)の保存容量内の空間が節約される。そのような実施形態では、効果的なより大きなページサイズが、ページサイズ変数によって選択することができるより大きな異なるサイズのページに対応する場合に特に望ましい。
【0011】
メモリアドレス空間のうちの一部が、使用するために利用可能であることが望まれる場合、固定値であることが必要な仮想アドレスの最上位ビットエンドから延びる仮想アドレスの一部分を構成することによって、必要なページテーブルウォークのレベルの数を、典型的には、すべて0またはすべて1に減らすことが可能であり、したがって、最も高いレベルの変換テーブルウォークを実行する必要がなくなることが理解されよう。したがって、メモリアドレスが、メモリアドレス空間のうちの64ビットを提供する場合、特定の実施形態では、このアドレス空間のうちの48ビットのみが必要とされることがあり、したがって、仮想アドレス空間のうちの上位の16ビットがすべて0またはすべて1でなければならず、そうでない場合には、メモリ変換障害が起こることになる。
【0012】
提供されることが実用的で望ましいページテーブルのサイズは、4kBおよび64kBのサイズを含む、すなわち、212および216に対応することが分かった。
【0013】
別の態様から鑑みると、本発明は、
変換テーブルの階層に格納された変換データを使用して仮想メモリアドレスを物理メモリアドレスに変換するためのトップダウンページテーブルウォーク操作を実行するように構成されたメモリアドレス変換手段を備えるデータを処理するための装置であって、
前記変換データが、仮想メモリアドレスの2個の連続バイトのページと、物理メモリアドレスの2個の連続バイトの対応するページとの間の変換を特定し、Nが正の整数であり、
変換テーブルの前記階層は、完全な変換テーブルが前記物理メモリの1つのページ内に格納されるようなサイズの2個の連続するバイトの変換テーブルを備え、
前記メモリアドレス変換手段が、現在の値Nを特定するページサイズ変数に応答して、選択されたサイズの物理メモリアドレスのページ、仮想メモリアドレスのページ、および変換テーブルを用いて動作するように前記メモリアドレス変換回路を制御する、
装置を提供する。
【0014】
さらなる態様から鑑みると、本発明は、
変換テーブルの階層に格納された変換データを使用して仮想メモリアドレスを物理メモリアドレスに変換するためのトップダウンページテーブルウォーク操作を実行するステップであって、
前記変換データが、仮想メモリアドレスの2個の連続バイトのページと、物理メモリアドレスの2個の連続バイトの対応するページとの間の変換を特定し、Nが正の整数であり、
変換テーブルの前記階層は、完全な変換テーブルが前記物理メモリの1つのページ内に格納されるようなサイズの2個の連続するバイトの変換テーブルを備える、トップダウンページテーブルウォーク操作を実行するステップと、
現在の値Nを特定するページサイズ変数に応答して、選択されたサイズの物理メモリアドレスのページ、仮想メモリアドレスのページ、および変換テーブルを用いて動作するステップと
を含む、データを処理するための方法を提供する。
【0015】
添付の図面を参照して、本発明の実施形態を例として以下に記載する。
【図面の簡単な説明】
【0016】
図1】メモリに結合されたプロセッサを含むデータ処理システムを概略的に示す図であり、このプロセッサはメモリアドレス変換回路を含む。
図2】4kB変換テーブルおよび64ビットアドレスを利用するトップダウンページテーブルウォーク操作を概略的に示す図である。
図3】64kB変換テーブルおよび64ビットメモリアドレスを利用するトップダウンページテーブルウォーク操作を概略的に示す図である。
図4】変換するための仮想アドレスを受信したときのメモリアドレス変換回路の動作を概略的に示すフロー図である。
図5】異なるページサイズの複数の仮想マシン実行環境の配置を概略的に示す図である。
【発明を実施するための形態】
【0017】
図1に、メモリ6に結合されたプロセッサ4を備えるデータ処理システム2を概略的に示す。プロセッサ4は、データ処理コア8と、キャッシュメモリ10と、ロードストアユニット12と、メモリ管理ユニット14(メモリアドレス変換回路)とを含む。メモリ6は、(ページテーブルとしても知られる)変換テーブル16と、データの物理的にアドレス指定されたページ18とを格納する。
【0018】
プログラム命令を実行するときに、データ処理コア8は、仮想アドレスVAを生成し、仮想アドレスVAは、メモリ管理ユニット14によって物理アドレスPAに変換される。また、メモリ管理ユニット14は、特権に応じて、あるいは現在の処理またはメモリのページに関連付けられた他の属性のレベルに応じて、メモリの(1つまたは複数の)特定のページへのアクセスを制御することなど、他の機能を有することができる。メモリ管理ユニット14は、変換ルックアサイドバッファ20を含み、変換ルックアサイドバッファ20は、最近使用された仮想アドレスを物理アドレスに変換するために、変換データのキャッシュを格納する。仮想アドレスが変換を必要とし、必要な変換情報が、変換ルックアサイドバッファ20内に格納されていないときには、メモリ管理ユニット14は、次いで、トップダウンページテーブルウォーク操作をトリガする。このページテーブルウォーク操作の開始点は、変換テーブル中へのエントリポイントのメモリアドレスである。このエントリポイントは、メモリ管理ユニット14内の変換テーブルベースレジスタ22中に格納される。
【0019】
また、メモリ管理ユニット14は、処理コア8によって書き込み可能な変換テーブルベース制御レジスタ24を含み、ページサイズ変数Sを格納するページサイズフィールド26を含む。このページサイズ変数Sは、メモリ管理ユニット14がトップダウンページテーブルウォーク操作を実行しているときに、物理メモリのページ、仮想メモリのページ、および変換テーブルのサイズを制御する。また、変換テーブルベース制御レジスタ24を使用して、変換テーブルベースレジスタ22内に格納された値を切り替えることができ、それにより、変換テーブルの異なる階層を、使用中また未使用に切り替える。ページテーブルのこれらの異なる階層の各々は、それ自体が関連付けられたページサイズ変数を有することができる。したがって、たとえば、複数の仮想実行環境をサポートするシステムは、4kBのページサイズおよび変換テーブルサイズを特定する変換テーブルの1つのセットと、64kBのページサイズおよび変換テーブルサイズをもつ変換テーブルの別のセットとを有することができる。
【0020】
図2に、ページサイズおよび変換テーブルサイズが4kBであることをページサイズ変数が特定するとき、変換ルックアサイドバッファ20中にないときにメモリ管理ユニット14によって実行される6レベルトップダウンページテーブルウォークを概略的に示す。変換テーブルベースレジスタ22は、最高位のレベル変換テーブル28の開始位置を示すアドレスを格納する。仮想アドレスの最上位の7ビットを使用して、この変換テーブルにインデックスを提供し、第2レベルの変換テーブル32の開始アドレスへのポインタ30を識別する。次いで、仮想アドレスの次の9ビットを使用して、この第2レベルのテーブル32にインデックスを付け、第3レベルのテーブル36の開始へのポインタ34を識別する。このプロセスは、仮想アドレスの連続する9ビット部分をとり続けて、第4レベルのテーブル38、第5レベルの変換テーブル40、および第6レベルの変換テーブル42にインデックスを付ける。第6レベルのテーブル42に最終的なインデックス操作が行われるとき、識別されたエントリ44は、変換すべき仮想アドレスに対応する物理アドレスの最上位の52ビットを格納し、仮想アドレスの最下位の12ビットを使用して、生成される物理アドレスの最下位の12ビットが形成される。仮想アドレスの最下位の12ビットは、変換されないので、これは、実行された変換の粒度、したがって、変換が行われる仮想メモリおよび物理メモリのページサイズに対応する。この場合、物理メモリのページのページサイズ、および仮想メモリのページのページサイズは4kBである。最も次数の高いページテーブルは、総メモリアドレス空間のサイズ全体に整合するマッピングを行うために、サイズがより小さくなる可能性がある。
【0021】
図2に示されたトップダウンページテーブルウォーク操作から回復される変換データは、変換ルックアサイドバッファ20内にキャッシュされ、したがって、変換データが変換ルックアサイドバッファ20内に存続しながら、その同じ仮想アドレスページへの別のメモリアクセスが行われる場合、別のページテーブルウォークを実行する必要がない。
【0022】
また、第6のレベルテーブル42のエントリ44内に、連続ヒントデータ46が存在する。このヒントデータは、仮想メモリの連続ページに対応する物理メモリのページも、64kBのブロック中の物理メモリ内に連続して配置されているかどうかを示す。連続して配置されている場合、実行されたこの変換に対応する変換ルックアサイドバッファ20にキャッシュして戻されるデータにマークを付けて、関係する変換データが16個の連続仮想ページにあてはまることを示すことができる。これにより、変換ルックアサイドバッファ20内の格納スペースが節約される。
【0023】
図3に、物理メモリアドレスのページ、仮想メモリアドレスのページおよび変換テーブルのサイズがすべて、64kBであることをページサイズ変数Sが特定するときに実行される4レベルページテーブルトップダウンウォーク操作を概略的に示す。図3のトップダウンページテーブルウォーク操作は、変換テーブルのサイズが64kBである場合を除いて、図2に示され、上述した操作と原理的において同様である。ページテーブルのサイズをこのようにより大きくすることにより、より多くの数のポインタ48を各変換テーブル内に格納し、したがって、各変換テーブルアクセスを用いて、仮想アドレスのうちのより多くのビットを変換することができるようになる。したがって、第2レベルのページテーブルアクセス操作、第3レベルのページテーブルアクセス操作、および第4レベルのページテーブルアクセス操作は、それぞれ、仮想アドレスのうちの13ビットを消費することができ、したがって、フル64ビット仮想−物理メモリアドレス変換を実行するために、必要なページテーブルウォークのレベルの数を4つのレベルまで低減させることができる。さらに、物理メモリアドレスのページおよび仮想メモリアドレスのページのサイズが増大すると、仮想アドレスの最下位の16ビットはメモリページサイズの粒度であるので、仮想アドレスの最下位の16ビットは変換されない結果となることが留意されよう。このように粒度が大きくなると、物理アドレスビットに変換する必要がある仮想アドレスビットの数が減少し、このことは、必要なページテーブルウォークのレベルの数を低減させるのに役立つ。
【0024】
また、図2および図3には、短縮された開始点50および52が示されている。変換テーブルの特定のセット用の変換テーブルベース制御レジスタ24は、仮想アドレスの最上位ビットエンドから始まる仮想アドレスの一部分が、すべて0、またはすべて1でなければならず、そうでない場合には、メモリ障害が起こることを示すことができる。この場合、仮想アドレスのそれらの最上位ビットは、メモリ管理ユニット14によって、それらが固定値(すべて0、またはすべて1)であるように、チェックされるので、より上位のレベルのトップダウンページテーブルウォーク操作を実行する必要はない。これにより、64ビットのフル仮想アドレス空間が必要とされない状況について、そのようなページテーブルウォーキング操作に関連付けられる待ち時間を低減する様式で、ページテーブルウォークのレベルの数が低減される。
【0025】
図4は、メモリ管理ユニット14の動作の1つのビューを概略的に示したフロー図である。ステップ54において、メモリ管理ユニットは、変換のための仮想アドレスが受信されるのを待つ。そのような仮想アドレスが受信されると、ステップ56は、変換テーブルベース制御レジスタ24の制御下で変換テーブルベースレジスタ22によって示された変換テーブルの現在アクティブな階層が、4kBサイズのものであるか否かを判断する。これは、ページサイズ変数Sから読み取ることができる。そのように判断されたページサイズは、ステップ58における4kB変換テーブルを介する最大6レベルページテーブルウォークか、またはステップ60における64kB変換テーブルを介する最大4レベルページテーブルウォークのいずれかを実行するように、メモリ管理ユニット14を構成するのに役立つ。変換テーブルサイズおよびメモリページサイズにしたがって、必要なページテーブルにトップダウンページテーブルウォークが行われると、次いで、物理アドレスが生成される。
【0026】
図4のフロー図は単純化されており、実際には、必要な変換情報が、変換ルックアサイドバッファ20に既に格納されているかどうかを判断するような他の操作、ならびに仮想アドレスへのアクセス要求が、適切なレベルの許可を有しているか否かを判断するような他の操作を実行してもよいことが理解されよう。
【0027】
図5に、複数の仮想マシン実行環境を動作させるシステムを概略的に示す。そのようなシステム内では、ハイパーバイザー62は、第1のゲストオペレーティングシステム64および第2のゲストオペレーティングシステム66に仮想マシン実行環境を提供することを担当する。これらのゲストオペレーティングシステムの各々は、次いで、それぞれのアプリケーションプログラム68、70、72、74、76を管理し、それらと協働する。ハイパーバイザー62は、変換テーブルの1つのセットおよびそれ自体のページサイズ変数を用いて動作することができる。異なる仮想マシンは、任意の他の仮想マシンおよびハイパーバイザー62のセットから独立して設定されたそれら自体のページサイズ変数を有することができる。したがって、図5の第2のゲストオペレーティングシステム66は、このページサイズが、アプリケーションプログラム72、74、76によって仮定されるので、4kBページサイズをサポートするために必要なレガシーゲストオペレーティングシステムとすることができる。反対に、第1のゲストオペレーティングシステム64およびハイパーバイザー62は、64kBのメモリページサイズおよび変換テーブルサイズに対応するページサイズ変数を用いて動作することができる。これは、64ビットアドレスによってアドレス指定可能であり得るアドレス空間のような、より大きいアドレス空間にはより好適なページサイズおよび変換テーブルサイズである。
【符号の説明】
【0028】
2 データ処理システム
4 プロセッサ
6 メモリ
8 データ処理コア
10 キャッシュメモリ
12 ロードストアユニット
14 メモリ管理ユニット
16 変換テーブル
18 アドレス指定されたページ
20 変換ルックアサイドバッファ
22 変換テーブルベースレジスタ
30 開始アドレスへのポインタ
32、34、36、38、40、42 変換テーブル
44 エントリ
46 連続ヒントデータ
48 ポインタ
50、52 開始点
62 ハイパーバイザー
64、66 ゲストオペレーションシステム
68、70、72、74、76 アプリケーションプログラム
図1
図2
図3
図4
図5