説明

プレロード命令制御

【課題】プレロード操作を抑制することにより、エネルギー消費の低減および実行の効率性を改善する。
【解決手段】プロセッサ4は、ページテーブルウォークおよびキャッシュラインフェッチ等の、プレロード操作をトリガするプレロード命令PLD〔r〕に応答する、命令デコーダ32を備える。命令デコーダは、プレロード命令に関連するメモリアドレスが、ヌル値と一致する場合、プレロード操作を識別し、メモリアドレスがヌル値と一致する場合、プレロード操作を抑制する。ヌル値は、プログラム制御下に設定されてもよく、固定値(例えばゼロ)としてあらかじめ定められてもよく、またはメモリ管理ユニットによって、アクセス不可能として識別されるページのメモリアドレスに対応する等の、ハードウェア制御下に設定されてもよい。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ処理システムの分野に関する。より詳細には、本発明は、後のメモリアクセスに備えるために、プレロード操作をトリガさせるためのプレロード命令をサポートする、データ処理システムに関する。
【背景技術】
【0002】
プレロード命令をサポートするデータ処理システムを提供することは公知である。かかるプレロード命令は、後のメモリアドレスへのメモリアクセスに備えるためのプレロード操作の対象となる、メモリアドレスを指定する。このメモリアドレスにおけるデータは、少なくとも後にアクセスされる可能性があり、したがって後のアクセスに備えるためのプレロード操作は、後のアクセスを加速することができる。しかしながら、プレロード操作は、機能するためのエネルギーを消費し、状況によっては、機能することが所望される他のデータ処理操作を遅らせ得、例えば、フェッチをトリガさせるプレロード操作は、そのフェッチデータ値を直ちに要求する、後のロード操作の妨げとなる。
【発明の概要】
【発明が解決しようとする課題】
【0003】
エネルギー消費の低減および実行の効率性を改善することができる措置は、有利である。
【課題を解決するための手段】
【0004】
一態様から概観すると、本発明は、データを処理するための装置であって、
プログラム命令に応じて、データ処理操作を実施するように構成される処理回路と、
該処理回路に連結され、該プログラム命令に応答して、該データ処理操作を実施するように、該処理回路を制御するための制御信号を生成する、命令デコーダ回路と、
を備え、該命令デコーダは、プレロード命令に応答し、該プレロード命令は、後のメモリアドレスへのメモリアクセスに備えるために、プレロード操作の対象となる該メモリアドレスの場所を指定し、該メモリアドレスをヌル値と比較し、かつ、
(i)該メモリアドレスが、該ヌル値と一致しない場合、該プレロード操作を実施するために、該処理回路を制御するための制御信号を生成し、
(ii)該メモリアドレスが、該ヌル値と一致する場合、該プレロード操作を実施するために、該処理回路を制御するための該制御信号を生成しない、装置を提供する。
【0005】
本技術は、特定のメモリアドレスについて、プレロード命令が、そのメモリアドレスをプレロードしようとして実行される場合、プレロード操作を抑制することが望ましい場合があることを認識する。例として、特定のメモリアドレスは、実施されることがなく、かつ実際に要求されないデータアクセスに対応することは知られ得る。したがって、それらのメモリアドレスに対応しているデータ値をプレロードしようとするプレロード命令は、浪費エネルギーにつながると思われ、実施されている他のより有用な命令を妨げる可能性がある。これらのメモリアドレスは、ヌル値として見なされる場合があり、命令デコーダは、プレロード操作が実際に実施されるべきかどうかを決定するために、受信したプレロード命令のメモリアドレスを、これらのヌル値と比較し得る。メモリアドレスがヌル値と一致する場合、プレロード操作は実施されない。これは、エネルギーを節約し、効率性を高める。
【0006】
プレロード操作が、多種多様な異なる形態をとり得ることは、理解されるだろう。幾つかのシステムでは、トランスレーションルックアサイドバッファ回路は、仮想アドレスと物理アドレスとの間のトランスレーションを指定する、アドレスマッピングデータを記憶する。本文脈におけるプレロード操作は、メモリアドレスのためのアドレスマッピングデータが、トランスレーションルックアサイドバッファ内にまだ記憶されていない場合、メモリアドレスのためのアドレスマッピングデータの、トランスレーションルックアサイドバッファへのロードをトリガし得る。それゆえに、実際のロード操作が要求されるとき、アドレストランスレーションデータは、すでにトランスレーションルックアサイドバッファ内に存在し、したがってロード操作は、より迅速に進み得る。
【0007】
トランスレーションデータの、トランスレーションルックアサイドバッファへのロードは、ページテーブルウォーク操作を使用してもよい。かかるページテーブルウォークは、メモリアドレストランスレーションデータを記憶する効率的方法であるが、比較的遅いという不都合を被る。したがって、ページテーブルウォーク操作を使用して、メモリアドレスのためのトランスレーションデータの記憶をトリガさせる機能を果たす、メモリアドレスに対するプレロード命令は、そのメモリアドレスへの実際のアクセス操作が実施されるとき、かなりの時間を節約する。
【0008】
他の実施形態では、キャッシュメモリが提供されてもよく、プレロード操作は、データを、メモリアドレスからキャッシュメモリへロードしてもよい。このロードされたデータは、次いで、メモリアドレスへのアクセスが要求されるとき、より迅速に入手可能となる。
【0009】
ヌル値は、ゼロ等の固定値に設定され得る。ゼロメモリアドレスは、誤操作を捕らえる方法として、多くのオペレーティングシステムによって、通常アクセス不可能に設定される、メモリアドレススペースにおける最終ページに通常は対応する。ゼロであるメモリアドレスポインタ値もまた、データアクセスの連結リストシーケンスの最終部分を示す一般的な方法であり、最後のデータブロックは、それが最後のデータブロックであることを示すために、ゼロのヌル値で満たされた次のデータブロックへのポインタを有する。
【0010】
ヌル値はまた、一連の値のうちのいずれか1つであってもよく、例えば、メモリアドレスの範囲内の任意のメモリアドレスは、ヌル値と一致するものとして扱われる。
【0011】
ヌル値は、ソフトウェアまたはハードウェア制御下で、プレロード操作が実際に要求されないことの指標として、ユーザまたはシステムに知られる値に設定されるプログラマブル値であってもよい可能性もある。この技術は、例えば、別の既定値が、連結リストデータ構造内の最後のデータブロックを示すものとして使用される場合に、使用されてもよい。
【0012】
ヌル値は、プレロード操作の対象とならないメモリアドレスを検出するように構成される検出回路によって、ハードウェア制御下でプログラムされてもよい。かかるメモリアドレスは、例えば、メモリアドレスがアクセス不可能であるという結果を返す、以前のメモリアクセスによって特定されてもよい。アクセス不可能メモリアドレスをプレロードする後の試みは、無益であり、したがってかかるプレロード操作は、抑制され得る。
【0013】
別の態様から概観すると、本発明は、データを処理するための装置であって、
プログラム命令に応じて、データ処理操作を実施する処理手段と、
該プログラム命令に応答して制御信号を生成するための命令デコーダ手段であって、該制御信号は、該データ処理操作を実施するように該処理回路を制御する、手段と、
を備え、該命令デコーダ手段は、プレロード命令に応答し、該プレロード命令は、後のメモリアドレスへのメモリアクセスに備えるために、プレロード操作の対象となるように該メモリアドレスの場所を指定し、該メモリアドレスをヌル値と比較し、かつ、
(i)該メモリアドレスが、該ヌル値と一致しない場合、該プレロード操作を実施するために、該処理回路を制御するための制御信号を生成し、
(ii)該メモリアドレスが、該ヌル値と一致する場合、該プレロード操作を実施するために、該処理回路を制御するための該制御信号を生成しない、装置を提供する。
【0014】
さらなる態様から概観すると、本発明は、データを処理するための方法であって、
プログラム命令に応じてデータ処理操作を実施するステップと、
該データ処理操作を制御するための制御信号を生成するために、プログラム命令をデコードするステップと、
を含み、該デコードするステップは、プレロード命令に応答し、該プレロード命令は、後のメモリアドレスへのメモリアクセスに備えるために、プレロード操作の対象となる該メモリアドレスの場所を指定し、該メモリアドレスをヌル値と比較し、かつ、
(i)該メモリアドレスが、該ヌル値と一致しない場合、該プレロード操作を実施するために、該処理回路を制御するための制御信号を生成し、
(ii)該メモリアドレスが、該ヌル値と一致する場合、該プレロード操作を実施するために、該処理回路を制御するための該制御信号を生成しない、方法を提供する。
【0015】
本発明の上記および他の目的、特徴および利点は、添付の図面に関連して一読されるべき、例示的な実施形態の以下の詳細な説明から、明らかであろう。
【図面の簡単な説明】
【0016】
【図1】プレロード命令のためのサポートを含む、データ処理システムを概略的な例示である。
【図2】命令デコーダによる、プレロード命令のデコードを概略的に例示するフロー図である。
【図3】トランスレーションルックアサイドバッファを概略的に例示する図である。
【図4】3レベルページテーブル階層を通じるページテーブルウォークを概略的に例示する図である。
【図5】ページテーブルウォークの間にアクセス不可能ページに遭遇したときの、プレロード命令のためのヌル値のアップデートを概略的に例示するフロー図である。
【図6】連結リストの最終部分を示すためのヌル値を使用する、連結リストデータ構造を概略的に例示する図である。
【図7】仮想機械実施形態を概略的に例示する図である。
【発明を実施するための形態】
【0017】
図1は、メモリ6に連結したプロセッサ4を含むデータ処理システム2を例示する。プロセッサ4は、様々の異なる形態を有する処理回路を含む。レジスタバンク8、乗算器10、シフター12、および加算器14を備えるデータパスは、演算操作等のデータ処理操作を実施する。ロード/記憶ユニット16は、メモリ6内に記憶されるデータにアクセスするための、ロードおよび記憶操作を実施する。
【0018】
プロセッサ4は、トランスレーションルックアサイドバッファ20を組み込むメモリ管理ユニット18を含む。メモリ管理ユニット18は、関連するアクセス許可を点検するほかに、アクセスされるメモリ場所の仮想アドレスを受信し、これを物理アドレスに変換する。トランスレーションルックアサイドバッファ20は、それらの物理アドレスに関連するアクセスパラメータを記憶するほかに、仮想アドレスを物理アドレスにマップする、アドレスマッピングデータのキャッシュを記憶する機能を果たす。トランスレーションルックアサイドバッファ20内に記憶されるアドレスマッピングデータは、メモリ6内に記憶されるページテーブルデータ22に由来し、メモリアドレススペースの全体に関する、アドレスマッピングデータの一式、ならびにメモリアドレススペースの全体に関する、アクセスプロパティを定義する。キャッシュメモリ24は、それらがメモリ6内に記憶されるデータ値よりも迅速にアクセスされ得るように、プロセッサ4内にデータ値を記憶する。キャッシュメモリ24は、物理的にアドレス指定され、したがって、仮想アドレスから物理アドレストランスレーションへのダウンストリームは、トランスレーションルックアサイドバッファ20(またはメモリ6から読み出されるページテーブルデータ)を使用して、メモリ管理ユニット18によって実施される。
【0019】
命令フェッチユニット26は、プログラム命令を、メモリ6内に記憶されるプログラム28からフェッチする機能を果たす。これらのフェッチ命令は、プログラム命令が、命令デコーダ32に適用されるステージであるデコードステージに、フェッチ命令が到達するまで、フェッチ命令が、命令パイプラインステージ(例えば、リオーダー、イシュー等)に沿って進行するところの、命令パイプライン30に供給される。命令デコーダ32は、プログラム命令をデコードし、プロセッサ4の他の部分に供給され、デコードされているプログラム命令で指定されるデータ処理操作を実施するために、それらのプロセッサ4の他の部分を設定および制御する機能を果たす制御信号を生成する。プログラム命令は、メモリ6内に記憶されるメディアデータ値34等のデータ値にアクセスするための、ロード/記憶ユニット16によって実施されるロードおよび記憶命令を含み得る。プログラム命令は、それらのアクセスデータ値、例えば、加算、乗算等を操作するための、演算命令を含み得る。
【0020】
命令デコーダ32によってサポートされる、命令の1つのタイプは、プレロード命令(PLD〔r〕である。このプレロード命令は、レジスタr内に保持される値によって指定されるメモリアドレス上で、プレロード操作を実施する機能を果たす。プレロード操作は、様々の異なる形態をとり得る。プレロード操作は、レジスタr内のメモリアドレスによって指定されるデータ値を収容するキャッシュラインを、キャッシュメモリ24へ、プレロードするために、ロード/記憶ユニット16をトリガさせることであってもよい。プレロード操作の別の形態は、トランスレーションルックアサイドバッファ20が、レジスタr内の値によって指定される仮想アドレスを、物理アドレス値にトランスレートするのに必要なトランスレーションデータをまだ含まない場合、ページテーブルデータ22を通じて、ページテーブルウォークを実施するために、メモリ管理ユニット18をトリガさせることであってもよい。ページテーブルウォーク操作は、比較的遅く、したがってデータ値が実際に要求される前に、このページテーブルウォークを実施するために、メモリ管理ユニット18をトリガさせることは、トランスレーションデータが、それが実際に要求される前に、トランスレーションルックアサイドバッファ20において入手可能となることを保証し、それによって後のアクセス命令遅延を低減する。
【0021】
命令デコーダ32は、プレロードヌルレジスタ36に連結され、プレロード操作が実施されない値である、メモリアドレスのヌル値を示すプレロード命令をデコードするとき、命令デコーダ32によって解釈されて使用されるヌル値を記憶する。この例示的実施形態では、プレロードヌルレジスタ36は、ソフトウェア制御下で、プログラム可能である。しかしながら、プレロードヌルレジスタ36が、ゼロ等の固定既定値を記憶してもよいか、または後述されるように、ハードウェア制御下で設定されてもよい可能性もある。ヌル値はまた、一連の値のうちのいずれか1つであってもよい可能性もあり、例えば、範囲内のあるメモリアドレス(それはプログラム可能である可能性がある)は、ヌル値と一致するものとして扱われる。
【0022】
ヌル値がメモリアドレスの範囲に対応する実施形態は、次のような状況において有用であり得る。
MOV r0,#0x1000
PLD 〔r0〕
は、トランスレーションルックアサイドバッファの場合について、0x1000に対応するだけでなく、後に続く4kBページにも対応するマッピングをロードし、それゆえに次の
PLD 〔r0,#0x4〕
は、パフォーマンスに影響することなく破棄される可能性がある(および潜在的にある種のパフォーマンス向上をもたらす)。これはまた、キャッシュライン長がアーキテクチャー上不変ではないため、キャッシュラインフィルを実施するハードウェアに有用であり、したがって、後のPLDに使用されるストライドが、コードが実行され得る全てのチップ上に存在するキャッシュライン長の最小公倍数であるように、コードが書き込まれてもよく、それによってより長いキャッシュライン長での実施は、効果的に反復されるPLD(同じキャッシュラインをヒットしているPLD)を破棄することを選択してもよい。エントリーをタイムアウトする追加的機構もまた、長い間隔を空けて実行される同一のプレロード(アイテムが退去させられた場合があるような)を防止するために、退去を監視する代替と共に、実施されてもよい。
【0023】
図2は、命令デコーダ32によって実施されるときの、プレロード命令PLD〔r〕のデコードを概略的に例示するフロー図である。ステップ38において、処理は、プレロード命令が受信されるまでウェイトする。プレロード命令が受信されるとき、ステップ40は、レジスタr内に記憶される値によって指定されるメモリアドレスが、ヌル値レジスタ36内に記憶される、ヌル値に対応するかどうかを決定する。一致がある場合、処理は終了する。一致がない場合、処理は、プレロード操作が実施されるステップ42に進む。プレロード操作は、アドレストランスレーションデータが、トランスレーションルックアサイドバッファ20内にまだ記憶されていない場合、任意の必要なページテーブルウォークおよび/またはキャッシュメモリ24に対する、キャッシュラインフェッチ操作を含んでもよい。
【0024】
図3は、トランスレーションルックアサイドバッファ20を概略的に例示する。トランスレーションルックアサイドバッファ20は、対応する物理アドレストランスレーションおよびアクセスプロパティと共に、仮想アドレスタグの形態でアドレスマッピングデータを記憶する。使用するとき、仮想アドレスは、トランスレーションルックアサイドバッファ20によって使用され、アドレスマッピングデータ内に記憶される全ての仮想アドレスタグとの比較がなされる(例えば、トランスレーションルックアサイドバッファが、コンテントアドレッサブルメモリCAMとして使用される等)。一致が見出される場合、対応する物理トランスレーションは、そのメモリ領域についてのアクセスプロパティと共に、アドレスマッピングデータから読み出しされる。メモリがページに分割されるところのページは、4kB等のサイズを有し、それは仮想アドレスの最も有意な部分のみが、対応する物理アドレスにトランスレートされる必要があるようなサイズであることは、当業者であれば理解するであろう。メモリページ内の異なる位置に対応しているアドレス内のビットは、トランスレートされる必要がない。
【0025】
図4は、トランスレーションルックアサイドバッファ20内にミスがあるときに発現する、ページテーブルデータ22を通した、ページテーブルウォーク操作を概略的に例示する。ミスが発現するとき、受信した仮想アドレスに関するアドレスマッピングデータは、トランスレーションルックアサイドバッファ20内には存在しない。したがって、仮想アドレスの部分(例えば、最も有意な部分)は、最初に、第1レベルテーブル44にインデックスするために使用され、ここでポインタは第2レベルテーブル46に見出される。仮想アドレスの異なる部分(例えば、2番目に有意な部分)は、次いで第2レベルテーブル46内の位置へのインデックスを形成するために使用され、そこからさらなるポインタが、第3レベルテーブル48を識別するために読み出しされる。仮想アドレスの最終部分(しかし仮想アドレスの剰余の全てではない)は、第3レベルページテーブル内のエントリーのインデックスとして消費され、それはトランスレーションルックアサイドバッファ20に返されることになる、物理アドレストランスレーションデータおよびアクセスプロパティを記憶する。
【0026】
図5は、ヌル値が、アクセス不可能ページにアクセスしているページテーブルウォークに応じて、メモリ管理ユニット18によって、ハードウェア制御下に設定され得る様子を概略的に例示するフロー図である。ステップ50で、メモリ管理ユニット18による処理は、ページテーブルウォークが要求されるまでウェイトする。ページテーブルウォークが要求されるとき、ステップ52は、図4に例示するように、ページテーブルウォークを実施し、アクセスプロパティを示しているデータを含む、アドレスマッピングデータを返す。ステップ54は、返されたアクセスプロパティから、ページがアクセス不可能としてマークされているかどうかを決定する。ページが、アクセス不可能としてマークされていない場合、ステップ56は、ページテーブルデータを、トランスレーションルックアサイドバッファ20に返す。ページがアクセス不可能としてマークされている場合、ステップ58は、プレロードヌルレジスタ36内のヌル値を、ページテーブルウォークが実施されたばかりのページのメモリアドレスに対応するように設定する機能を果たす。このページテーブルは、アクセス不可能であり、したがってそのアクセス不可能ページに対する、さらなるページテーブルウォークを実施する意味はない。それゆえに、アクセス不可能ページ内のメモリアドレスを指定する、プレロード命令は、後に、ヌル値に対応しているものとして識別され、ページテーブルウォークは、かかるメモリアドレスに対するプレロード操作の一部としてはトリガされない。
【0027】
図6は、連結リストデータ構造を概略的に例示する略図である。かかる連結リストデータ構造は、一般的に、データ処理内で使用され、そのデータのサイズが事前に知られていない場合に、大量のデータを柔軟に記憶するのに便利である。データは、固定サイズブロック内で消費されるデータ値として記憶され、各ブロックにおける最終エントリーは、その連結リストデータ構造内の次のデータブロックに向けてポイントしている。それゆえに、連結リストは、変化する数のブロックから形成され得、各ブロックは、リストにおける次のブロックに向けてポイントしている。リストにおける最終ブロックは、次のブロックへのポインタが見出される位置におけるヌル値の存在によって、最終ブロックとして示される。処理効率を高めるために、データブロックが最初に開くとき、次のポインタ値がプレロード命令によって使用されることが通常である。以前のブロックが最初にアクセスされるとき、そのようにして次のブロックに関して実施される、プレロード操作は、次のデータブロックが、データ処理における消費のために、実際に存在することが要求される前に、キャッシュロード、ページテーブルウォーク等の操作が実施されるための十分な時間を与える。しかしながら、最終データブロックに遭遇するとき、連結リストの最終部分の指標として記憶されるヌル値に関して、プレロード操作を実施することは、エネルギーおよび処理リソースの浪費である。したがって、本技術は、かかるヌル値が識別され、またプレロード操作が抑制されることを可能にする。
【0028】
図7は、使用され得る仮想機械実施を例示する。前述の実施形態が、考慮している当技術をサポートする特定の処理ハードウェアを操作する装置および方法の観点から、本発明を実施する一方で、ハードウェアデバイスのいわゆる仮想機械実施を提供することもまた可能である。これらの仮想機械実施は、仮想機械プログラム510をサポートする、ホストオペレーティングシステム520を動作する、ホストプロセッサ530上で動作する。典型的には、大型の強力なプロセッサは、適正なスピードで実行する仮想機械実施を提供することが要求されるが、そのようなアプローチは、互換性または再利用の理由で、別のプロセッサに対してネイティブなコードを動作することが望ましいとき等、特定の状況において正当化され得る。仮想機械プログラム510は、仮想機械プログラム510によってモデル化されているデバイスである、リアルハードウェアによって提供され得る、アプリケーションプログラムインターフェースと同じアプリケーションプログラム500に、アプリケーションプログラムインターフェースを提供する。それゆえに、上述のメモリアクセスの制御を含むプログラム命令は、それらの仮想機械ハードウェアとの相互作用をモデル化するために、仮想機械プログラム510を使用して、アプリケーションプログラム500内で実行され得る。
【0029】
本発明の例示的な実施形態について、添付の図面を参照して、本明細書中に詳細に説明したが、本発明は、これらの厳密な実施形態には制限されず、添付の特許請求の範囲に記載されているように、本発明の範囲および精神から逸脱せずに、当業者によって、本発明に種々の変更および修正を行うことができるということを理解されたい。
【符号の説明】
【0030】
2 データ処理システム
4 プロセッサ
6 メモリ
8 レジスタバンク
10 乗算器
12 シフター
14 加算器
16 ロード/記憶ユニット

【特許請求の範囲】
【請求項1】
データを処理するための装置であって、
プログラム命令に応答して、データ処理操作を実施するように構成される処理回路と、
前記処理回路に連結され、前記プログラム命令に応答して、前記データ処理操作を実施するように、前記処理回路を制御するための制御信号を生成する、命令デコーダ回路と、
を備え、前記命令デコーダは、プレロード命令に応答し、前記プレロード命令は、後のメモリアドレスへのメモリアクセスに備えるために、プレロード操作の対象となる前記メモリアドレスの場所を指定し、前記メモリアドレスをヌル値と比較し、かつ、
(i)前記メモリアドレスが、前記ヌル値と一致しない場合、前記プレロード操作を実施するために、前記処理回路を制御するための制御信号を生成し、
(ii)前記メモリアドレスが、前記ヌル値と一致する場合、前記プレロード操作を実施するために、前記処理回路を制御するための制御信号を生成しない、装置。
【請求項2】
仮想アドレスと物理アドレスとの間のトランスレーションを指定する、アドレスマッピングデータを記憶するように構成される、トランスレーションルックアサイドバッファ回路を含み、前記メモリアドレスは、仮想メモリアドレスであり、前記アドレスマッピングデータが、前記メモリアドレスのためのトランスレーションを指定しない場合、前記プレロード操作は、前記メモリアドレスのためのアドレスマッピングデータの、前記トランスレーションルックアサイドバッファへのロードをトリガする、請求項1に記載の装置。
【請求項3】
前記メモリアドレスのための前記アドレスマッピングデータが、ページテーブルウォーク操作を使用してアクセスされる、請求項2に記載の装置。
【請求項4】
キャッシュメモリを備え、前記プレロード操作が、前記メモリアドレスから前記キャッシュメモリへデータをロードする、請求項1、2、および3のいずれか1項に記載の装置。
【請求項5】
前記ヌル値がゼロである、前述の請求項のうちのいずれか1項に記載の装置。
【請求項6】
前記ヌル値が、一連の値のうちの1つである、請求項1〜4のいずれか1項に記載の装置。
【請求項7】
前記ヌル値が、プログラム可能な値である、請求項1〜4のいずれか1項に記載の装置。
【請求項8】
前記ヌル値が、前記プレロード操作の対象とならないメモリアドレスを検出するように構成される検出回路によってプログラムされる、請求項6に記載の装置。
【請求項9】
前記メモリアドレスが、メモリアドレスページに分割されるメモリアドレススペース内にあり、前記命令デコーダ回路が、前記ヌル値を、以前に検出されたメモリアクセスに対応するようにアクセス不可能メモリページへ設定する、請求項1〜4のいずれか1項に記載の装置。
【請求項10】
データを処理するための装置であって、
プログラム命令に応答して、データ処理操作を実施するための処理手段と、
前記プログラム命令に応答して制御信号を生成するための命令デコーダ手段であって、前記制御信号は、前記データ処理操作を実施するように前記処理回路を制御する、手段と、
を備え、前記命令デコーダ手段は、プレロード命令に応答し、前記プレロード命令は、後のメモリアドレスへのメモリアクセスに備えるために、プレロード操作の対象となるように前記メモリアドレスの場所を指定し、前記メモリアドレスをヌル値と比較し、かつ、
(i)前記メモリアドレスが、前記ヌル値と一致しない場合、前記プレロード操作を実施するために、前記処理回路を制御するための制御信号を生成し、
(ii)前記メモリアドレスが、前記ヌル値と一致する場合、前記プレロード操作を実施するために、前記処理回路を制御するための前記制御信号を生成しない、装置。
【請求項11】
データを処理する方法であって、
プログラム命令に応答してデータ処理操作を実施するステップと、
前記データ処理操作を制御するための制御信号を生成するために、プログラム命令をデコードするステップと、
を含み、前記デコードするステップは、プレロード命令に応答し、前記プレロード命令は、後のメモリアドレスへのメモリアクセスに備えるために、プレロード操作の対象となる前記メモリアドレスの場所を指定し、前記メモリアドレスをヌル値と比較し、かつ、
(i)前記メモリアドレスが、前記ヌル値と一致しない場合、前記プレロード操作を実施するために、前記処理回路を制御するための制御信号を生成し、
(ii)前記メモリアドレスが、前記ヌル値と一致する場合、前記プレロード操作を実施するために、前記処理回路を制御するための前記制御信号を生成しない、方法。
【請求項12】
仮想アドレスと物理アドレスとの間のトランスレーションを指定する、アドレスマッピングデータを記憶し、前記メモリアドレスは、仮想メモリアドレスであり、前記アドレスマッピングデータが、前記メモリアドレスのためのトランスレーションを指定しない場合、前記プレロード操作は、前記メモリアドレスのためのアドレスマッピングデータのロードをトリガする、請求項11に記載の方法。
【請求項13】
前記メモリアドレスのための前記アドレスマッピングデータが、ページテーブルウォーク操作を使用してアクセスされる、請求項12に記載の方法。
【請求項14】
前記プレロード操作が、前記メモリアドレスからキャッシュメモリにデータをロードする、請求項11、12、および13のいずれか1項に記載の方法。
【請求項15】
前記ヌル値がゼロである、請求項11〜14のいずれか1項に記載の方法。
【請求項16】
前記ヌル値が、一連の値のうちの1つである、請求項11〜14のいずれか1項に記載の方法。
【請求項17】
前記ヌル値が、プログラム可能な値である、請求項11〜14のいずれか1項に記載の方法。
【請求項18】
前記ヌル値が、前記プレロード操作の対象とならないハードウェアメモリアドレスで検出することによってプログラムされる、請求項17に記載の方法。
【請求項19】
前記メモリアドレスが、メモリアドレスページに分割されるメモリアドレススペース内にあり、前期ヌル値が、以前に検出されたアクセス不可能メモリページングへのメモリアクセスに対応するように設定される、請求項11〜14のいずれか1項に記載の方法。
【請求項20】
請求項11〜19のいずれか1項に記載の方法に従って作動するようにコンピュータを制御する、コンピュータプログラムによって提供される仮想機械。
【請求項21】
添付の図面を参照して、実質的に本明細書に記載されるような、データを処理するための装置。
【請求項22】
添付の図面を参照して、実質的に本明細書に記載されるような、データを処理する方法。
【請求項23】
添付の図面を参照して、実質的に本明細書に記載されるような、仮想機械。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2011−227880(P2011−227880A)
【公開日】平成23年11月10日(2011.11.10)
【国際特許分類】
【外国語出願】
【出願番号】特願2011−69731(P2011−69731)
【出願日】平成23年3月28日(2011.3.28)
【出願人】(504394342)アーム・リミテッド (134)
【Fターム(参考)】