(57)【要約】      （修正有）【課題】システム・メモリを持たないデータ処理システムのためのハードウェア管理仮想−物理アドレス変換機構を開示する。【解決手段】データ処理システムは複数の処理装置を含む。処理装置は、実アドレス空間より大きい仮想アドレス空間で動作する揮発性キャッシュ・メモリを有する。処理装置とそれぞれの揮発性メモリは、物理アドレス空間で動作するストレージ・コントローラに接続されている。処理装置とストレージ・コントローラは、相互接続を介してハード・ディスクに接続されている。ハード・ディスクには、揮発性キャッシュ・メモリのうちの１つの揮発性キャッシュ・メモリ内の仮想アドレスを実アドレスを介さずにハード・ディスク内の記憶場所を指す物理ディスク・アドレスに変換するための仮想−物理変換テーブルが格納されている。【選択図】図２
2004192615.tif 000002
【特許請求の範囲】
【請求項１】
仮想メモリ処理方式を使用することが可能なデータ処理システムであって、
実アドレス空間より大きい仮想アドレス空間で動作する揮発性メモリを有する複数の処理装置と、
前記複数の処理装置と揮発性キャッシュ・メモリとに接続された相互接続と、
前記相互接続を介して前記複数の処理装置に接続されたハード・ディスクと、
前記ハード・ディスク内に格納され、前記揮発性キャッシュ・メモリのうちの１つの揮発性キャッシュ・メモリ内の仮想アドレスを前記ハード・ディスク内の記憶場所を指す物理ディスク・アドレスに実アドレスを介さずに変換することができるようにする仮想−物理変換テーブルと、
前記相互接続に接続され、前記揮発性キャッシュ・メモリのうち１つからの仮想アドレスを、前記ハード・ディスク内の記憶場所を指す物理ディスク・アドレスに実アドレスを介さずにマップするストレージ・コントローラとを備えたデータ処理システム。
【請求項２】
前記仮想−物理変換テーブル内のエントリが、仮想アドレス・フィールドと物理アドレス・フィールドと有効フィールドとを含む、請求項１に記載のデータ処理システム。
【請求項３】
前記ストレージ・コントローラに接続され、前記ハード・ディスク内の情報のサブセットを格納する物理メモリ・キャッシュをさらに備える、請求項１に記載のデータ処理システム。
【請求項４】
前記物理メモリ・キャッシュがダイナミック・ランダム・アクセス・メモリである、請求項３に記載のデータ処理システム。
【請求項５】
前記ストレージ・コントローラが、前記物理メモリ・キャッシュの内容を追跡する物理メモリ・ディレクトリを備える、請求項３に記載のデータ処理システム。
【請求項６】
前記ストレージ・コントローラが、前記仮想−物理変換テーブル内の情報のサブセットを格納する仮想−物理変換テーブル・キャッシュを備える、請求項３に記載のデータ処理システム。
【請求項７】
前記複数の処理装置の仮想アドレス・レンジが前記ハード・ディスクの物理ディスク・アドレス・レンジよりも広い、請求項１に記載のデータ処理システム。
【請求項８】
前記ハード・ディスクが入出力チャネル変換器を介して前記相互接続に接続された、請求項１に記載のデータ処理システム。
【請求項９】
前記ハード・ディスクがアダプタを介して、前記入出力チャネル変換器に接続された、請求項１に記載のデータ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にはデータ処理システムに関し、より詳細には、メモリ階層を有するデータ処理システムに関する。さらに詳細には、本発明は、オペレーティング・システムの支援なしに仮想メモリ処理方式を管理することができるデータ処理システムに関する。
【背景技術】
【０００２】
本特許出願は、以下の同時係属出願に関連する。
１．２００２年１２月１２日に出願の米国特許出願第１０／３１９０２３号「DATAPROCESSING SYSTEM HAVING NO SYSTEM MEMORY」（出願人整理番号ＡＵＳ９２００２０１６８ＵＳ１）
２．２００２年１２月１２日に出願の米国特許第１０／３１８５２４号「DATAPROCESSING SYSTEM HAVING A PHYSICALLY ADDRESSED CACHE OF DISK MEMORY」（出願人整理番号ＡＵＳ９２００２０１６９ＵＳ１）
３．２００２年１２月１２日に出願の米国特許出願第１０／３１８５３０号「ALIASINGSUPPORT FOR A DATA PROCESSING SYSTEM HAVING NO SYSTEM MEMORY」（出願人整理番号ＡＵＳ９２００２０１７１ＵＳ１）
４．２００２年１２月１２日に出願の米国特許出願第１０／３１８５２７号「ACCESSREQUEST FOR A DATA PROCESSING SYSTEM HAVING NO SYSTEM MEMORY」（出願人整理番号ＡＵＳ９２００２０１７２ＵＳ１）
５．２００２年１２月１２日に出願の米国特許出願第１０／３１８５２８号「INTERRUPTMECHANISM FOR A DATA PROCESSING SYSTEM HAVING HARDWARE MANAGED PAGING OF DISKDATA」（出願人整理番号ＡＵＳ９２００２０１７３ＵＳ１）
６．２００２年１２月１２日に出願の米国特許出願第１０／３１８５３１号「APPARATUSFOR INFLUENCING PROCESS SCHEDULING IN A DATA PROCESSING SYSTEM CAPABLE OFUTILIZING A VIRTUAL MEMORY PROCESSING SCHEME」（出願人整理番号ＡＵＳ９２００２０１７４ＵＳ１）
【０００３】
従来技術のメモリ階層は一般に、入出力チャネル変換器を介してプロセッサ複合体に接続された、１または複数のレベルのキャッシュ・メモリと、システム・メモリ（実メモリとも呼ぶ）と、ハード・ディスク（物理メモリとも呼ぶ）とを備える。複数レベルのキャッシュ・メモリがある場合、レベル１（Ｌ１）キャッシュと一般に呼ばれる第１レベルのキャッシュ・メモリのアクセス時間が最も速く、ビット当たりコストも最高である。レベル２（Ｌ２）キャッシュ、レベル３（Ｌ３）キャッシュなどの他のレベルのキャッシュ・メモリは、アクセス時間が比較的低速だが、ビット当たりコストも比較的低い。キャッシュ・メモリのレベルが低くなるに従ってアクセス時間が遅くなるのが一般的である。
【０００４】
システム・メモリには、一般に、仮想メモリ処理方式を使用するデータ処理システムのプロセス・アドレス空間のうちの最も頻繁に使用される部分が格納される。プロセス・アドレス空間の他の部分は、ハード・ディスクに記憶され、必要に応じて取り出される。ソフトウェア・アプリケーションの実行中、オペレーティング・システムは仮想アドレスを実アドレスに変換する。この変換は、システム・メモリに格納されているページ・フレーム・テーブル（ＰＦＴ）を用いて、記憶装置のページの細分性で行われる。プロセッサ・キャッシュは、最も最近に使用されたＰＦＴエントリ（ＰＴＥ）用のキャッシュの役割を果たす変換索引バッファ（ＴＬＢ）を備えるのが普通である。
【０００５】
データ・ロード、データ・ストア、または命令フェッチ要求が開始されると、その要求に関連づけられたデータの仮想アドレスがＴＬＢで検索され、その仮想アドレスに対応する実アドレスが入ったＰＴＥを探し出す。ＴＬＢ内で該当するＰＴＥが見つかった場合、対応する実アドレスを有するメモリ階層にデータ・ロード、データ・ストア、または命令フェッチ要求が発行される。ＴＬＢで該当するＰＴＥが見つからなかった場合、システム・メモリ内のＰＦＴを使用して、対応するＰＴＥを探索する。次に、ＰＴＥはＴＬＢに再ロードされ、変換プロセスが再開する。
【０００６】
空間的制約のため、すべての仮想アドレスがシステム・メモリ内のＰＦＴに収まるわけではない。ＰＦＴ内に仮想−実アドレス変換が見つからない場合、または変換は見つかったが、当該ページに関連づけられたデータがシステム・メモリに入っていない場合、「ページ・フォルト」が起こって変換プロセスに割込みが入り、それによってオペレーティング・システムが新しい変換のためにＰＦＴを更新することができるようにする。このような更新には、置換するページをシステム・メモリからハード・ディスクに移動し、すべてのプロセッサのＴＬＢ内の置き換えられたＰＴＥのすべてのコピーを無効にし、新しい変換アドレスに関連づけられたデータ・ページをハード・ディスクからシステム・メモリに移動し、ＰＦＴを更新し、変換プロセスを再開する必要がある。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上述のように、仮想メモリの管理は一般に、オペレーティング・システムによって行われ、オペレーティング・システムのうちの、ＰＦＴと、システム・メモリとハード・ディス７との間のデータのページングとを管理する部分を、仮想メモリ・マネージャ（ＶＭＭ）と呼ぶ。しかし、オペレーティング・システムによって管理される仮想メモリにはいくつかの問題がある。たとえば、ＶＭＭは、通常、ハードウェア構造を知らず、従ってＶＭＭによって指示される置換方策は一般にあまり効率的ではない。さらに、ＶＭＭコードは、きわめて複雑で、複数のハードウェア・プラットフォームにわたって維持する場合、あるいは多くの異なるメモリ構成が可能な単一のハードウェア・プラットフォーム上でさえ、維持するのに高コストである。本発明の開示は、上記問題の解決策を提供する。
【課題を解決するための手段】
【０００８】
本発明の好ましい実施形態によれば、仮想メモリ処理方式を使用することができるデータ処理システムが、複数の処理装置を含む。これらの処理装置は、実アドレス空間より大きい仮想アドレス空間で動作する揮発性キャッシュ・メモリを有する。これらの処理装置とそれぞれの揮発性メモリは、物理アドレス空間で動作するストレージ・コントローラに接続されている。処理装置とストレージ・コントローラは、相互接続を介してハード・ディスクに接続されている。ハード・ディスクには、実アドレスを介さずに、上記揮発性キャッシュ・メモリのうちの１つに入っている仮想アドレスを、ハード・ディスク内の記憶場所を指示する物理ディスク・アドレスに変換するための仮想−物理変換テーブルが入っている。ストレージ・コントローラは、物理メモリ・キャッシュに接続されており、実アドレスを介さずに、揮発性キャッシュ・メモリの１つに入っている仮想アドレスを、ハード・ディスク内の記憶場所を指す物理ディスク・アドレスにマップすることができるようにする。物理メモリ・キャッシュには、ハード・ディスク内の情報のサブセットが格納される。
【０００９】
本発明のすべての目的、特徴、および利点は、以下の詳細な説明を読めば明らかになるであろう。
【発明を実施するための最良の形態】
【００１０】
本発明自体と、本発明の好ましい使用形態、その他の目的、および利点は、添付図面を参照しながら、以下の例示の実施形態の詳細な説明を読めば最もよくわかるであろう。
【００１１】
例示のため、本発明について、単一レベルのキャッシュ・メモリを有するマルチプロセッサ・データ処理システムを用いて説明するが、本発明の特徴は、複数レベルのキャッシュ・メモリを有するデータ処理システムにも適用可能であることを理解されたい。
【００１２】
Ｉ．従来技術
図面、特に図１を参照すると、従来の技術によるマルチプロセッサ・データ処理システムのブロック図が示されている。図のように、マルチプロセッサ・データ処理システム１０は、複数の中央演算処理装置（ＣＰＵ）１１ａないし１１ｎを備え、各ＣＰＵ１１ａないし１１ｎはキャッシュ・メモリを含む。たとえば、ＣＰＵ１１ａはキャッシュ・メモリ１２ａ、ＣＰＵ１１ｂはキャッシュ・メモリ１２ｂ、ＣＰＵ１１ｎはキャッシュ・メモリ１２ｎを含む。ＣＰＵ１１ａないし１１ｎとキャッシュ・メモリ１２ａないし１２ｎは、相互接続１４を介してメモリ・コントローラ１５およびシステム・メモリ１６に接続されている。相互接続１４は、キャッシュ・メモリ１２ａないし１２ｎと入出力チャネル変換器（ＩＯＣＣ）１７との間でトランザクションをやり取りするためのパイプの役割を果たす。
【００１３】
マルチプロセッサ・データ処理システム１０は、仮想メモリ処理方式を使用する。これは、同時に３種類のアドレスを使用することを意味する。この３種類のアドレスは、仮想アドレス、実アドレス、物理アドレスである。仮想アドレスとは、仮想メモリ処理方式を使用するデータ処理システム内のソフトウェア・アプリケーションで直接参照されるアドレスであると定義される。実アドレスとは、データ処理システム内のシステム・メモリ（またはメイン・メモリ）にアクセスするときに参照されるアドレスであると定義される。物理アドレスとは、データ処理システム内のハード・ディスクをアクセスするときに参照されるアドレスであると定義される。
【００１４】
仮想メモリ処理方式では、オペレーティング・システムが、ＣＰＵ１１ａないし１１ｎによって使用される仮想アドレスを、システム・メモリ１６およびキャッシュ・メモリ１２ａないし１２ｎによって使用される対応する実アドレスに変換する。ハード・ディスク・アダプタ１８がデバイス・ドライバ・ソフトウェアに制御されて、システム・メモリ１６およびキャッシュ・メモリ１２ａないし１２ｎによって使用される実アドレスをハード・ディスク１０１によって使用される物理アドレス（またはディスク・アドレス）に変換する。
【００１５】
動作中、システム・メモリ１６は、プロセス・データおよびプロセス命令のうちの最も頻繁に使用される部分を格納し、プロセス・データおよびプロセス命令の他の部分は、ハード・ディスク１０１に記憶される。システム・メモリ１６に記憶されているページ・フレーム・テーブル（ＰＦＴ）１９を使用して、仮想アドレスから実アドレスへのマッピングを定義する。対応するＣＰＵ内の各変換索引バッファ（ＴＬＢ）１３ａないし１３ｎが、最も最近に使用されたＰＦＴエントリ（ＰＴＥ）のためのキャッシュとして機能する。
【００１６】
ＰＦＴ１９に仮想−実アドレス変換が見つからない場合、または仮想−実アドレス変換は見つかったがそれに関連づけられたデータがシステム・メモリ１６にない場合、「ページ・フォルト」が起こって変換プロセスに割込みが入り、それによってオペレーティング・システムは、ＰＦＴ１９を更新するか、または要求されたデータをハード・ディスク１０１からシステム・メモリ１６に転送するか、あるいはその両方を行う必要がある。ＰＦＴの更新には、置換するページをシステム・メモリ１６からハード・ディスク１０１に移動し、ＴＬＢ１３ａないし１３ｎ内の置換されたＰＴＥのすべてのコピーを無効化し、新しい変換アドレスに関連づけられたデータのページをハード・ディスク１０１からシステム・メモリ１６に移動し、ＰＦＴ１９を更新し、変換プロセスを再開する必要がある。従来、ページ・フォルトの処理は、オペレーティング・システムによって制御されているが、そのような構成には前述のような欠点がある。
【００１７】
ＩＩ．新規な構成
本発明の好ましい実施形態によれば、データ処理システム１０から図１のシステム・メモリ１６を完全になくす。データ処理システムからシステム・メモリ１６が完全になくなるため、すべてのデータと命令をハード・ディスクから直接フェッチしなければならず、ストレージ・コントローラを使用して、ハード・ディスクとの間のデータおよび命令の転送を管理する。実質的には、本発明によりシステム・メモリを「仮想化」する。
【００１８】
本発明の最も簡単な実施形態では、仮想−物理アドレス・エイリアシングは行われないようにする。エイリアシングとは、複数の仮想アドレスが単一の物理アドレスにマップすることであると定義される。エイリアシングを行わない場合、仮想アドレスは常にただ１つの物理アドレスにマップするため、仮想−物理アドレス変換は不要である。
【００１９】
次に図２を参照すると、本発明の好ましい実施形態が組み込まれたマルチプロセッサ・データ処理システムのブロック図が示されている。図のように、マルチプロセッサ・データ処理システム２０は、複数の中央演算処理装置（ＣＰＵ）２１ａないし２１ｎを備え、各ＣＰＵ２１ａないし２１ｎはキャッシュ・メモリを含む。たとえば、ＣＰＵ２１ａはキャッシュ・メモリ２２ａを含み、ＣＰＵ２１ｂはキャッシュ・メモリ２２ｂを含み、ＣＰＵ２１ｎはキャッシュ・メモリ２２ｎを含む。ＣＰＵ２１ａないし２１ｎとキャッシュ・メモリ２２ａないし２２ｎは、相互接続２４を介してストレージ・コントローラ２５に接続されている。相互接続２４は、キャッシュ・メモリ２２ａないし２２ｎとＩＯＣＣ２７との間のトランザクションをやり取りするためのパイプの役割を果たす。ＩＯＣＣ２７はハード・ディスク・アダプタ２８を介してハード・ディスク１０２に接続されている。
【００２０】
従来の技術（図１参照）では、ハード・ディスク・アダプタ１８と、ハード・ディスク・アダプタ１８に付随するデバイス・ドライバ・ソフトウェアは、キャッシュ・メモリ１２ａないし１２ｎおよびシステム・メモリ１６によって使用される実アドレスを、ハード・ディスク１０１によって使用される対応する物理アドレスに変換する。本発明では、（従来の実アドレス空間をなくしたため）ストレージ・コントローラ２５が、仮想アドレスからそれに対応する物理アドレスへの変換を管理する。しかし、エイリアシングを行わないようにした場合、仮想アドレスと物理アドレスの間に直接的な一対一対応があるため、仮想アドレスから物理アドレスへの変換はまったく不要である。
【００２１】
図２の実施形態では、マルチプロセッサ・データ処理システム２０の仮想アドレス・レンジは、ハード・ディスク１０２の容量によって決まる。言い換えると、ハード・ディスク１０２の物理アドレス・レンジは、マルチプロセッサ・データ処理システム２０の仮想アドレス・レンジと同じである。しかし、ハード・ディスク１０２の物理アドレス・レンジより広い仮想アドレス・レンジも定義することができる。その場合、ソフトウェアが、ハード・ディスク１０２の物理アドレス・レンジの範囲外にある仮想アドレスにアクセスを試みると、例外とみなされるため、例外割込みによって処理する必要がある。ハード・ディスク１０２の物理アドレス・レンジより広い仮想アドレス・レンジを設ける他の方法は、図７に示す仮想−物理変換テーブル２９のような仮想−物理変換テーブルを使用するものである。
【００２２】
次に図３を参照すると、本発明の好ましい実施形態による、マルチプロセッサ・データ処理システム２０内のプロセッサからの仮想メモリ・アクセス要求を処理する方法の高水準流れ図が示されている。プロセッサからの仮想メモリ・アクセス要求に応答して、ブロック３１に示すように、そのアクセス要求によって要求されたデータがそのプロセッサに付随するキャッシュ・メモリにあるか否かが判断される。要求されたデータがプロセッサに付随するキャッシュ・メモリ内にある場合、ブロック３５に示すように、要求されたデータがその付随するキャッシュ・メモリからプロセッサに送られる。要求されたデータがプロセッサに付随するキャッシュ・メモリ内にない場合は、ブロック３２に示すように、要求されたデータの仮想アドレスが、図２のストレージ・コントローラ２５などのストレージ・コントローラに転送される。次に、ブロック３３に示すように、要求されたデータの仮想アドレスがストレージ・コントローラによって対応する物理アドレスにマップされる。次に、ブロック３４に示すように、要求されたデータが図２のハード・ディスク１０２などのハード・ディスクからフェッチされ、ブロック３５に示すように、要求されたデータはその後プロセッサに送られる。
【００２３】
次に図４を参照すると、本発明の第２の実施形態が組み込まれたマルチプロセッサ・データ処理システムのブロック図が示されている。図のように、マルチプロセッサ・データ処理システム４０は、複数の中央演算処理装置（ＣＰＵ）４１ａないし４１ｎを備え、各ＣＰＵ４１ａないし４１ｎはキャッシュ・メモリを含む。たとえば、ＣＰＵ４１ａはキャッシュ・メモリ４２ａを含み、ＣＰＵ４１ｂはキャッシュ・メモリ４２ｂを含み、ＣＰＵ４１ｎはキャッシュ・メモリ４２ｎを含む。ＣＰＵ４１ａないし４１ｎおよびキャッシュ・メモリ４２ａないし４２ｎは、相互接続４４を介してストレージ・コントローラ４５と物理メモリ・キャッシュ４６とに接続されている。物理メモリ・キャッシュ４６は、ダイナック・ランダム・アクセス・メモリ（ＤＲＡＭ）を使用した記憶装置であることが好ましいが、他の同様のタイプの記憶装置も使用可能である。ストレージ・コントローラ４５は、物理メモリ・キャッシュ４６を追跡するための物理メモリ・キャッシュ・ディレクトリ４９を備える。相互接続４４は、キャッシュ・メモリ４２ａないし４２ｎとＩＯＣＣ４７との間でトランザクションをやり取りするためのパイプの役割を果たす。ＩＯＣＣ４７は、ハード・ディスク・アダプタ４８を介してハード・ディスク１０３に接続されている。
【００２４】
図２のストレージ・コントローラ２５と同様に、（従来の実アドレス空間をなくしたため）ストレージ・コントローラ４５は仮想アドレスから対応する物理アドレスへの変換を管理する。この場合も、ハード・ディスク１０３の物理アドレス・レンジは、マルチプロセッサ・データ処理システム４０の仮想アドレス・レンジと同じであることが好ましいためと、マルチプロセッサ・データ処理システム４０ではエイリアシングができないため、仮想アドレスから物理アドレスへの変換は不要である。
【００２５】
物理メモリ・キャッシュ４６には、ハード・ディスク１０３に記憶されている情報のサブセットが格納されている。物理メモリ・キャッシュ４６に記憶される情報のサブセットは、ＣＰＵ４１ａないし４１ｎのいずれか１つが最も最近にアクセスした情報であることが好ましい。物理メモリ・キャッシュ４６内の各キャッシュ・ラインには、物理アドレス方式のタグと、対応するデータ・ページとが含まれることが好ましい。物理メモリ・キャッシュ４６内の各キャッシュ・ラインのデータ細分性は１ページであるが、他のデータ細分性も使用可能である。物理メモリ・キャッシュ・ディレクトリ４９は、アソシアティビティ、コヒーレンシ、置換など、任意の周知のキャッシュ管理技法を使用して物理メモリ・キャッシュ４６を追跡する。物理メモリ・キャッシュ・ディレクトリ４９内の各エントリは、物理メモリ・キャッシュ４６内にある１つまたは複数の物理メモリ・ページを示すことが好ましい。データ・ページの仮想メモリ・アクセス要求後に物理メモリ・キャッシュ４６で「ミス」になった場合、要求されたデータ・ページはハード・ディスク１０３からフェッチされる。所定のアルゴリズムまたはこの仮想メモリ・アクセス要求からの手掛かりに基づいてハード・ディスク１０３から追加のデータ・ページもフェッチすることができる。
【００２６】
次に図５を参照すると、本発明の好ましい実施形態による、マルチプロセッサ・データ処理システム４０内のプロセッサからの仮想メモリ・アクセス要求を処理する方法の高水準論理流れ図が示されている。プロセッサからの仮想メモリ・アクセス要求に応答して、ブロック５０に示すように、アクセス要求によって要求されたデータ・ページがそのプロセッッサに付随するキャッシュ・メモリ内に存在するか否かを判断する。要求されたデータ・ページがプロセッサに付随するキャッシュ・メモリ内にある場合、ブロック５８に示すように、その付随するキャッシュ・メモリから要求データ・ページがプロセッサに送られる。要求されたデータ・ページがプロセッサに付随するキャッシュ・メモリ内に存在しない場合、ブロック５１に示すように、要求されたデータ・ページの仮想アドレスが図４のストレージ・コントローラ４５のようなストレージ・コントローラに転送される。次に、ブロック５２に示すように、要求されたデータ・ページの仮想アドレスが対応する物理アドレスにマップされる。
【００２７】
次に、ブロック５３に示すように、要求されたデータ・ページが、図４の物理メモリ・キャッシュ４６のような物理メモリ・キャッシュ内に存在するか否かを判断する。要求されたページが物理メモリ・キャッシュに存在する場合、ブロック５８に示すように、要求されたデータ・ページが物理メモリ・キャッシュからプロセッサに送られる。要求されたデータ・ページが物理メモリ・キャッシュ内にない場合、ブロック５４に示すように物理メモリ・キャッシュ内で「犠牲（victim）」ページを選択する。次に、ブロック５５に示すように、「犠牲」ページが図４のハード・ディスク１０３などのハード・ディスクに書き戻される。データ・ページのハード・ディスクへの書戻しの詳細は後述する。ブロック５６に示すように、要求されたデータ・ページがハード・ディスクからフェッチされる。次に、ブロック５７に示すように、要求されたデータ・ページによって物理メモリ・キャッシュを更新し、ブロック５８に示すように、要求されたデータ・ページはその後プロセッサに送られる。
【００２８】
プロセッサによって要求されたデータ・ページが物理メモリ・キャッシュ４６に格納されていない場合、ストレージ・コントローラ４５は以下の一連のステップを実行する。
１．まず、要求されたデータ・ページと交換する「犠牲」データ・ページを選択する。
２．次に、ストレージ・コントローラ４５が、ハード・ディスク１０３への選択された「犠牲」データ・ページのバースト入出力（Ｉ／Ｏ）書込み操作を開始する。あるいは、ストレージ・コントローラ４５は、ハード・ディスク・アダプタ４８にコマンドを送って、ハード・ディスク・アダプタ４８に対し、物理メモリ・キャッシュ４６からハード・ディスク１０３への選択された「犠牲」データ・ページの直接メモリ・アクセス（ＤＭＡ）転送を開始するように指示することもできる。
３．次に、ストレージ・コントローラ４５は、バーストＩ／Ｏ読取り操作を開始して、要求されたデータ・ページをハード・ディスク１０３からフェッチする。あるいは、ストレージ・コントローラ４５は、ハード・ディスク・アダプタ４８にコマンドを送り、ハード・ディスク・アダプタ４８に対し、要求されたデータ・ページをハード・ディスク１０３から物理メモリ・キャッシュ４６にＤＭＡ転送するように指示することもできる。
４．次に、ストレージ・コントローラ４５は、要求されたデータ・ページを物理メモリ・キャッシュ４６に書き込み、要求されたデータ・ページを要求プロセッサに返す。
上記のステップはすべて、オペレーティング・システム・ソフトウェアからの支援なしで行われる。
【００２９】
ＩＩＩ．エイリアシング
図４のマルチプロセッサ・データ処理システム４０の効率を向上させ、プロセス間のデータ共用を可能にするために、仮想−物理アドレス・エイリアシングを行うことができる。仮想アドレス・エイリアシングがある場合、１つの物理アドレスに複数の仮想アドレスをマップすることができるため、仮想−物理アドレス変換が必要である。本発明の好ましい実施形態によると、エイリアシング・テーブルを使用して仮想−物理アドレス変換をサポートする。
【００３０】
次に図６を参照すると、本発明の好ましい実施形態によるエイリアシング・テーブルのブロック図が示されている。図のように、エイリアシング・テーブル６０の各エントリには３つのフィールド、すなわち、仮想アドレス・フィールド６１と仮想アドレス・フィールド６２と有効ビット・フィールド６３がある。仮想アドレス・フィールド６１には、一次仮想アドレスが入れられ、仮想アドレス・フィールド６２には二次仮想アドレスが入れられる。エイリアシング・テーブル６０の各エントリごとに、一次と二次の両方の仮想アドレスが１つの物理アドレスにマップされる。有効ビット・フィールド６３は、当該エントリが有効か否かを示す。
【００３１】
エイリアシング・テーブル６０を妥当なサイズに抑えておくため、他の仮想アドレスによってエイリアス指定されない仮想アドレスはエイリアシング・テーブル６０内にエントリがない。プロセッサによってロード／ストア命令または命令フェッチが実行されるたびに、エイリアシング・テーブル６０を検索する。エイリアシング・テーブル６０に一致する仮想アドレス・エントリが見つかった場合、（仮想アドレス・フィールド６１内の）一致するエントリの一次仮想アドレスがメモリ階層に転送される。たとえば、エイリアシング・テーブル６０の仮想アドレスＣが要求された場合、そのエントリの一次仮想アドレスである仮想アドレスＡが、要求プロセッサに付随するキャッシュ・メモリに転送される。これは、仮想アドレスＡと仮想アドレスＣの両方が同じ物理アドレスを指すためである。したがって、メモリ階層に関する限りではエイリアシング・テーブル６０内の二次仮想アドレスは実質的に存在しない。
【００３２】
次に図７を参照すると、本発明の第３の実施形態が組み込まれたマルチプロセッサ・データ処理システムのブロック図が示されている。図のように、マルチプロセッサ・データ処理システム７０は、複数の中央演算処理装置（ＣＰＵ）７１ａないし７１ｎを備え、各ＣＰＵ７１ａないし７１ｎがキャッシュ・メモリを備える。たとえば、ＣＰＵ７１ａはキャッシュ・メモリ７２ａを備え、ＣＰＵ７１ｂはキャッシュ・メモリ７２ｂを備え、ＣＰＵ７１ｎはキャッシュ・メモリ７２ｎを備える。ＣＰＵ７１ａないし７１ｎおよびキャッシュ・メモリ７２ａないし７２ｎは、相互接続７４を介してストレージ・コントローラ７５および物理メモリ・キャッシュ７６に接続されている。物理メモリ・キャッシュ７６は、ＤＲＡＭを使用した記憶装置であることが好ましいが、他の同様のタイプの記憶装置も使用可能である。相互接続７４は、キャッシュ・メモリ７２ａないし７２ｎとＩＯＣＣ７７との間でトランザクションをやり取りするためのパイプの役割を果たす。ＩＯＣＣ７７は、ハード・ディスク・アダプタ７８を介してハード・ディスク１０４に接続されている。
【００３３】
マルチプロセッサ・データ処理システム７０では仮想−物理アドレス・エイリアシングが可能である。したがって、各ＣＰＵ７１ａないし７１ｎは、仮想−物理アドレス変換のためにそれぞれ１つのエイリアシング・テーブル３８ａないし３８ｎを備える。さらに、仮想−物理（ディスク）アドレス変換を行うためにハード・ディスク１０４内に仮想−物理変換テーブル（ＶＰＴ）２９が設けられている。具体的にはディスク空間１０４の一領域が、マルチプロセッサ・データ処理システム７０が使用する仮想アドレス・レンジ全体のＶＰＴ２９を格納するために確保されている。ＶＰＴ２９が存在することにより、マルチプロセッサ・データ処理システム７０の仮想アドレス・レンジを、ハード・ディスク１０４の物理アドレス・レンジよりも大きくとることができる。ＶＰＴ２９により、オペレーティング・システムがアドレス変換を管理する負担が軽減される。
【００３４】
次に、図８を参照すると、本発明の好ましい実施形態による、ＶＰＴ２９のブロック図が示されている。図のように、ＶＰＴ２９の各エントリには３つのフィールド、すなわち、仮想アドレス・フィールド３６、物理アドレス・フィールド３７、有効ビット・フィールド３８がある。ＶＰＴ２９には、（図７の）マルチプロセッサ・データ処理システム７０内で使用されるすべての仮想アドレスのエントリがある。ＶＰＴ２９内の各エントリごとに、仮想アドレス・フィールド３６には仮想アドレスが入れられ、物理アドレス・フィールド３７には、仮想アドレス・フィールド３６内の仮想アドレスに対応する物理アドレスが入れられ、有効ビット・フィールド３８は、当該エントリが有効か否かを示す。（図７の）ストレージ・コントローラ７５が、有効ビット・フィールド３８が有効ではない仮想アドレス・エントリに対する仮想アドレス・アクセス要求を受け取った場合、ストレージ・コントローラ７５は以下の２つの選択肢のうちの一方を行うことができる。
１．要求側プロセッサに例外割込みを送る（すなわち、アクセス要求をエラー条件とみなす）か、または
２．当該エントリを未使用物理アドレス（ある場合）によって更新し、有効ビット・フィールド３８を有効に設定し、処理を続ける。
【００３５】
図７に戻って参照すると、ストレージ・コントローラ７５は物理メモリ・キャッシュ７６に接続されている。物理メモリ・キャッシュ７６には、ハード・ディスク１０４に記憶されている情報のサブセットが格納される。物理メモリ・キャッシュ７６内に格納されるこの情報のサブセットは、ＣＰＵ７１ａないし７１ｎのいずれか１つのＣＰＵが最も最近にアクセスした情報であることが好ましい。物理メモリ・キャッシュ７６内の各キャッシュ・ラインは、物理アドレス方式のタグと、対応するデータ・ページとが含まれていることが好ましい。また、ストレージ・コントローラ７５は、仮想アドレスから対応する物理アドレスへの変換も管理する。ストレージ・コントローラ７５は、ＶＰＴキャッシュ３９と物理メモリ・ディレクトリ７９とを備える。ＶＰＴキャッシュ３９には、ハード・ディスク１０４内のＶＰＴ２９のうちの最も最近に使用された部分が格納される。ＶＰＴキャッシュ３９内の各エントリはＶＰＴエントリ（ＶＰＴ２９の最も最近に使用されたエントリのうちの１つに対応する）である。物理メモリ・キャッシュ・ディレクトリ７９は、アソシアティビティ、コヒーレンシ、置換など、任意の周知のキャッシュ管理技法を使用して物理メモリ・キャッシュ７６を追跡する。物理メモリ・キャッシュ・ディレクトリ７９内の各エントリは、好ましくは物理メモリ・キャッシュ７６に入っている１つまたは複数の物理メモリ・ページを示す。データ・ページの仮想メモリ・アクセス要求後に物理メモリ・キャッシュ７６で「ミス」になった場合、要求されたデータ・ページは、ハード・ディスク１０４からフェッチされる。所定のアルゴリズムまたはページ要求の手掛かりに基づいて、ハード・ディスク１０４から追加のデータ・ページもフェッチすることができる。
【００３６】
ストレージ・コントローラ７５は、ハード・ディスク１０４のどこにＶＰＴ２９があるかわかるように構成され、ＶＰＴ２９の一部を物理メモリ・キャッシュ７６にキャッシュし、当該サブセットの一部を、ストレージ・コントローラ７５内のより小さい専用ＶＰＴキャッシュ３９にキャッシュすることができる。このような二段階ＶＰＴキャッシュ階層により、ストレージ・コントローラ７５が、最も最近に使用されたＶＰＴエントリのための物理メモリ・キャッシュ７６にアクセスしなくても済むようにする。また、ストレージ・コントローラ７５が、最近使用されたＶＰＴエントリのより大きなプールのためにハード・ディスク１０４にアクセスしなくても済む。
【００３７】
次に図９を参照すると、本発明の好ましい実施形態による、マルチプロセッサ・データ処理システム７０内のプロセッサからのアクセス要求を処理する方法を示す高水準論理流れ図が示されている。プロセッサからの仮想メモリ・アクセス要求に応答して、ブロック８０に示すように、アクセス要求によって要求された仮想アドレスが、当該プロセッサに関連づけられたエイリアシング・テーブル内にあるか否かを判断する。要求された仮想アドレスが当該プロセッサに付随するエイリアシング・テーブル内にある場合、ブロック８１で、プロセッサに付随するエイリアシング・テーブルから一次仮想アドレスを選択する。要求された仮想アドレスがプロセッサに付随するエイリアシング・テーブル内にない場合、要求された仮想アドレスがキャッシュ・メモリに直接渡される。次に、ブロック８２に示すように、アクセス要求によって要求されたデータが、プロセッサに付随するキャッシュ・メモリ内にあるか否かを判断する。アクセス要求によって要求されたデータがプロセッサに付随するキャッシュ・メモリ内にある場合、ブロック９９に示すように、付随するキャッシュ・メモリから要求データがプロセッサに送られる。要求されたデータがプロセッサに付随するキャッシュ・メモリ内にない場合、ブロック８３に示すように、要求データの仮想アドレスが、図７のストレージ・コントローラ７５などのストレージ・コントローラに転送される。次に、ブロック８４に示すように、要求データの仮想ページ・アドレスが、図７のＶＰＴキャッシュ３９などのＶＰＴキャッシュ内にあるか否かを判断する。
【００３８】
要求データの仮想ページ・アドレスがＶＰＴキャッシュ内にある場合、ブロック８５に示すように、その仮想アドレスが対応する物理アドレスに変換される。次に、ブロック８６に示すように、要求されたページが、図７の物理メモリ・キャッシュ７６などの物理メモリ・キャッシュ内にあるか否かを判断する。要求されたページが物理メモリ・キャッシュ内にある場合、ブロック９９に示すように、要求されたデータが物理メモリ・キャッシュからプロセッサに送られる。要求されたページが物理メモリ・キャッシュ内にない場合、ブロック８７に示すように、物理メモリ・キャッシュ内で、要求されたデータを含むデータ・ページに置き換える「犠牲」ページを選択する。次に、ブロック８８に示すように、この「犠牲」ページを、図７のハード・ディスク１０４などのハード・ディスクに書き戻す。ブロック８９に示すように、要求されたデータ・ページをハード・ディスクからフェッチする。ブロック９８に示すように、要求されたデータ・ページによって物理メモリ・キャッシュを更新し、その後、ブロック９９に示すように、要求されたデータ・ページをプロセッサに送る。
【００３９】
要求されたデータ・ページの仮想アドレスがＶＰＴキャッシュ内にない場合、ブロック６５に示すように、ＶＰＴキャッシュ内で「犠牲」ＶＰＴエントリ（ＶＰＥ）を選択する。次に、この「犠牲」ＶＰＥにストレージ・コントローラによって変更が加えられている場合、ブロック６６に示すように犠牲ＶＰＥをハード・ディスクに書き戻す。ブロック６７に示すように、要求されたＶＰＥを、図７のＶＰＴ２９などのハード・ディスク内のＶＰＴからフェッチする。ブロック６８に示すように、要求ＶＰＥでＶＰＴキャッシュを更新し、このプロセスはブロック８４に戻る。
【００４０】
ＩＶ．記憶アクセス要求修飾子
図１０を参照すると、本発明の好ましい実施形態による、プロセッサからの仮想メモリ・アクセス要求の書式を示すブロック図が図示されている。プロセッサから、図２のストレージ・コントローラ２５や、図４のストレージ・コントローラ４５、図７のストレージ・コントローラ７５などのストレージ・コントローラに、仮想メモリ・アクセス要求を送ることができる。図１０に示すように、仮想メモリ・アクセス要求９０には５つのフィールドがある。すなわち、仮想アドレス・フィールド９１、非割振り解除フィールド９２、非割振りフィールド９３、プリフェッチ標識フィールド９４、およびプリフェッチ・ページ数フィールド９５である。フィールド９２ないし９５の値は、ユーザ・レベルのアプリケーション・ソフトウェアでプログラム可能である。これにより、アプリケーション・ソフトウェアは、「仮想化された」メモリを管理するストレージ・コントローラに「ヒント」を伝えることができる。
【００４１】
仮想アドレス・フィールド９１には、プロセッサによって要求されたデータまたは命令の仮想アドレスが格納される。非割振り解除フィールド９２は、１ビット幅であることが好ましく、当該データを、図２の物理メモリ・キャッシュ２５、図４の物理メモリ・キャッシュ４６、図７の物理メモリ７６などの物理メモリ・キャッシュから割振り解除すべきか否かに関する標識が格納される。物理メモリ・キャッシュ内の各ディレクトリ・エントリも、非割振り解除フィールド９２内のビットと同様の非割振り解除ビットを有する。アクセス要求９０を使用して、物理メモリ・キャッシュのディレクトリ・エントリ内の非割振り解除ビットを設定したりリセットしたりすることができる。電源が投入されてから初めてプロセッサからアドレスのアクセス要求を受け取った後、非割振り解除フィールド９２内のビットが論理「１」に設定されている場合、ストレージ・コントローラが要求されたデータをハード・ディスクから読み取る。次に、ストレージ・コントローラは要求データを物理メモリ・キャッシュに書き込み、ストレージ・コントローラが対応する物理メモリ・キャッシュ・ディレクトリ・エントリを更新するときに非割振り解除フィールドのビットを設定する。その後、物理メモリ・キャッシュで「ミス」になった場合、ストレージ・コントローラのキャッシュ置換方式により、置換候補となり得るディレクトリ・エントリ内の非割振り解除フィールドのビットを調べる。非割振り解除フィールドのビットが論理「１」に設定されている犠牲となり得るエントリは、置換候補の検討対象から外されることになる。その結果、対応する非割振り解除フィールドのビットが論理「１」に設定されているキャッシュ・ラインは、その後当該キャッシュ・ラインへのアクセスを受け取って当該キャッシュ・ラインの非割振り解除フィールドのビットが論理「０」にリセットされるまで、強制的に物理メモリ・キャッシュ内に保持される。
【００４２】
非割振りフィールド９３、プリフェッチ・フィールド９４、およびプリフェッチ・ページ数フィールド９５は、任意選択のヒント・ビット・フィールドの例である。ヒント・ビット・フィールドによって、ストレージ・コントローラは、要求されたデータを処理した後にプリフェッチなどの特定の操作を行うことができる。非割振りフィールド９３には、要求プロセッサが要求データを１回しか必要とせず、したがって物理メモリ・キャッシュに要求データを格納する必要がないか否かを示す１ビットが格納される。プリフェッチ・フィールド９４には、プリフェッチが必要か否かを示す１ビットが格納される。プリフェッチ・フィールド９４内のビットが設定されている場合、要求されたデータの後に連続するデータがさらにプリフェッチされる。プリフェッチ・ページ数フィールド９５には、プリフェッチする必要があるページ数が格納される。
【００４３】
Ｖ．ＶＰＴ割込み
図７のマルチプロセッサ・データ処理システム７０では、要求されたＶＰＥが物理メモリ・キャッシュ７６内にない場合、または要求された物理ページが物理メモリ・キャッシュ７６内にない場合、ストレージ・コントローラ７５はハード・ディスク１０４にアクセスして要求されたデータまたはＶＰＥあるいはその両方をフェッチする必要がある。ハード・ディスク１０４へのアクセスは、物理メモリ・キャッシュ７６へのアクセスよりはるかに長い時間がかかる。アプリケーション・ソフトウェア・プロセスは、長いアクセス・レイテンシがあることがわからないため、ストレージ・コントローラ７５がオペレーティング・システムに対して、データ要求を満たすにはディスク・アクセスが必要であることを通知し、それによってオペレーティング・システムが現行プロセスの状態を保存して異なるプロセスに切り換えることができるようにすれば有利である。
【００４４】
ストレージ・コントローラ７５は、要求プロセッサによって要求されたデータがどこに位置するかなどの情報を収集した後、ＶＰＴ割込みパケットにまとめる。図７に示す実施形態を例にとると、マルチプロセッサ・データ処理システム７０の記憶域は３つのゾーン、すなわち、ゾーン１、ゾーン２、ゾーン３に分割することができる。ゾーン１は、要求プロセッサに付随していないすべてのピア・キャッシュ・メモリを含むことが好ましい。たとえば、要求プロセッサがＣＰＵ７１ａである場合、ピア・キャッシュ・メモリにはキャッシュ７２ｂないし７２ｎが含まれる。ゾーン２は、図７の物理メモリ・キャッシュ７６などのすベての物理メモリ・キャッシュを含む。ゾーン３は、ハード・ディスク２９などのすべての物理メモリを含む。ゾーン１の記憶装置のアクセス時間は約１００ｎｓであり、ゾーン２の記憶装置のアクセス時間は約２００ｎｓ、ゾーン３の記憶装置のアクセス時間は約１ｍｓ以上である。
【００４５】
ストレージ・コントローラ７５が要求されたデータのゾーン・ロケーションを確認した後は、ストレージ・コントローラ７５は、ＶＰＴ割込みパケットをまとめ、それを要求プロセッサに送る。要求プロセッサは、データを要求するために使用されたバス・タグ内のそのプロセッサ識別情報（ＩＤ）によって知ることができる。
【００４６】
次に図１１を参照すると、本発明の好ましい実施形態による、要求プロセッサに送られる割込みパケットのブロック図が示されている。図のように、割込みパケット１００は、アドレス・フィールド１０１とタグ・フィールド１０２とゾーン・フィールド１０３ないし１０５を含む。割込みパケット１００は、特別なトランザクション・タイプのバスであり、アドレス・フィールド１０１は割込みを発生させたアクセス要求の仮想アドレスである。バス・タグ１０２は、割込みを発生させたアクセス要求に使用したのと同じタグである。各ゾーン・フィールド１０３ないし１０５は、要求されたデータの場所を示す１ビット長であることが好ましい。たとえば、要求されたデータが物理メモリ・キャッシュ７６に格納されている場合、ゾーン２フィールド１０４内のビットが設定され、ゾーン・フィールド１０３および１０５内のビットは設定されない。同様に、要求されたデータがハード・ディスク１０４に格納されている場合、ゾーン３フィールド１０５内のビットが設定され、ゾーン・フィールド１０３および１０４のビットは設定されない。したがって、要求プロセッサは、割込みパケットを識別し、要求されたデータの場所を見つけることができる。
【００４７】
ＶＰＴ割込みパケットを受け取った後、要求プロセッサはＶＰＴ割込みパケット内の仮想アドレスを、すべての未処理ロード／ストア操作の仮想アドレスと比較する。一致するアドレスが見つかった場合、プロセッサは、割込みを発生して現行プロセスの状態を保存し、別のプロセスに切り換えることもでき、その間に要求されたＶＰＥエントリまたは対応するデータ・ページあるいはその両方がハード・ディスク１０４から取り込まれる。
【００４８】
より複雑な実施形態では、各ＣＰＵ７１ａないし７１ｎはゾーン・スロットのセットを備える。たとえば、図７のＣＰＵ７１ａはゾーン・スロット・セット５ａを備え、ＣＰＵ７１ｂはゾーン・スロット・セット５ｂを備え、ＣＰＵ７１ｎはゾーン・スロット・セット５ｎを備える。各ゾーン・スロット・セット内のゾーン・スロットの数は、割込みパケット内の事前定義済みゾーン・フィールドの数と一致しなければならない。たとえば、割込みパケット１００には３つのゾーン・フィールドがあるが、これは各ゾーン・スロット・セット５ａないし５ｎには３つの対応するゾーン・スロットがあることを意味する。割込みパケット１００などの割込みパケットを受け取った後、要求プロセッサは、対応するゾーン・スロットにタイム・スタンプを設定する。たとえば、ＣＰＵ７１ｂに向けられ、ゾーン・フィールド１０５のビットが設定された割込みパケット１００を受け取った後、ＣＰＵ７１ｂは、ゾーン・スロット・セット５ｂの３番目のゾーン・スロットにタイム・スタンプを設定する。したがって、ＣＰＵ７１ｂは、ハード・ディスク１０４に記憶されている要求データを知ることができる。この時点でＣＰＵ７１ｂは、このタイム・スタンプ情報と現行処理情報とを比較して、要求したデータを待つか、それとも、要求したデータが入手可能になるまで約１ｍｓかかるため、要求したＶＰＥエントリまたは対応するデータ・ページあるいはその両方がハード・ディスク１０４から取り込まれる間に現行プロセスの状態を保存して別のプロセスに切り換えるかを決定することができる。このような時間の比較は、この別のプロセスが完了した後、他の決定をするために要求データが使用可能になる前に、ＣＰＵ７２ｂによって行うことができる。
【００４９】
以上のように、本発明は、仮想メモリ処理方式を使用することができる従来のデータ処理システムを向上させる方法を提供する。本発明の利点には、直接接続記憶装置のハッシングをなくしたことが含まれる。プロセッサで仮想−実アドレス変換が不要な場合、上位キャッシュ・メモリへのアクセスを高速化させることができる。プロセッサで仮想−実アドレス変換が行われない場合、シリコン面積が少なくて済み、消費電力も少なくて済むため、プロセッサの実現がより簡素化される。本発明によると、物理メモリ・キャッシュのキャッシュ・ライン・サイズだけでなくページ・サイズもオペレーティング・システムには見えない。
【００５０】
さらに、本発明は、オペレーティング・システムの仮想メモリ・マネージャ（ＶＭＭ）による仮想メモリの管理に付随する問題も解決する。（従来の技術で定義されている）ＰＦＴは、本発明のデータ処理システムには存在しない。したがって、オペレーティング・システムのＶＭＭを大幅に簡略化するか、あるいは完全になくすことができる。
【００５１】
本発明について好ましい実施形態を参照しながら具体的に図示し、説明したが、当業者なら、本発明の趣旨および範囲から逸脱することなく形態および詳細について様々な変更を加えることができることがわかるであろう。
【００５２】
まとめとして、本発明の構成に関して以下の事項を開示する。
【００５３】
（１）仮想メモリ処理方式を使用することが可能なデータ処理システムであって、
実アドレス空間より大きい仮想アドレス空間で動作する揮発性メモリを有する複数の処理装置と、
前記複数の処理装置と揮発性キャッシュ・メモリとに接続された相互接続と、
前記相互接続を介して前記複数の処理装置に接続されたハード・ディスクと、
前記ハード・ディスク内に格納され、前記揮発性キャッシュ・メモリのうちの１つの揮発性キャッシュ・メモリ内の仮想アドレスを前記ハード・ディスク内の記憶場所を指す物理ディスク・アドレスに実アドレスを介さずに変換することができるようにする仮想−物理変換テーブルと、
前記相互接続に接続され、前記揮発性キャッシュ・メモリのうち１つからの仮想アドレスを、前記ハード・ディスク内の記憶場所を指す物理ディスク・アドレスに実アドレスを介さずにマップするストレージ・コントローラとを備えたデータ処理システム。
（２）前記仮想−物理変換テーブル内のエントリが、仮想アドレス・フィールドと物理アドレス・フィールドと有効フィールドとを含む、上記（１）に記載のデータ処理システム。
（３）前記ストレージ・コントローラに接続され、前記ハード・ディスク内の情報のサブセットを格納する物理メモリ・キャッシュをさらに備える、上記（１）に記載のデータ処理システム。
（４）前記物理メモリ・キャッシュがダイナミック・ランダム・アクセス・メモリである、上記（３）に記載のデータ処理システム。
（５）前記ストレージ・コントローラが、前記物理メモリ・キャッシュの内容を追跡する物理メモリ・ディレクトリを備える、上記（３）に記載のデータ処理システム。
（６）前記ストレージ・コントローラが、前記仮想−物理変換テーブル内の情報のサブセットを格納する仮想−物理変換テーブル・キャッシュを備える、上記（３）に記載のデータ処理システム。
（７）前記複数の処理装置の仮想アドレス・レンジが前記ハード・ディスクの物理ディスク・アドレス・レンジよりも広い、上記（１）に記載のデータ処理システム。
（８）前記ハード・ディスクが入出力チャネル変換器を介して前記相互接続に接続された、上記（１）に記載のデータ処理システム。
（９）前記ハード・ディスクがアダプタを介して、前記入出力チャネル変換器に接続された、上記（１）に記載のデータ処理システム。
【図面の簡単な説明】
【００５４】
【図１】従来の技術によるマルチプロセッサ・データ処理システムを示すブロック図である。
【図２】本発明の好ましい実施形態を組み込んだマルチプロセッサ・データ処理システムを示すブロック図である。
【図３】図２のマルチプロセッサ・データ処理システム内のプロセッサからの仮想メモリ・アクセス要求を処理する方法を示す高水準論理流れ図である。
【図４】本発明の第２の実施形態を組み込んだマルチプロセッサ・データ処理システムを示すブロック図である。
【図５】図４のマルチプロセッサ・データ処理システム内のプロセッサからの仮想メモリ・アクセス要求を処理する方法を示す高水準論理流れ図である。
【図６】本発明の好ましい実施形態によるエイリアシング・テーブルを示すブロック図である。
【図７】本発明の第３の実施形態を組み込んだマルチプロセッサ・データ処理システムを示すブロック図である。
【図８】本発明の好ましい実施形態による、図７のマルチプロセッサ・データ処理システム内の仮想−物理アドレス変換テーブルを示すブロック図である。
【図９】図７のマルチプロセッサ・データ処理システム内のプロセッサからの仮想メモリ・アクセス要求を処理する方法を示す高水準論理流れ図である。
【図１０】本発明の好ましい実施形態による、プロセッサからの仮想メモリ・アクセス要求を示すブロック図である。
【図１１】本発明の好ましい実施形態による、要求側プロセッサに対する割込みパケットを示すブロック図である。
【符号の説明】
【００５５】
２２  キャッシュ・メモリ
２５  ストレージ・コントローラ
２８  ハード・ディスク・アダプタ
３９  ＶＰＴキャッシュ
４２ａ〜４２ｎ  キャッシュ・メモリ
４５  ストレージ・コントローラ
４９  物理メモリ・キャッシュ・ディレクトリ
４６  物理メモリ・キャッシュ
４８  ハード・ディスク・アダプタ
７２ａ〜７２ｎ  キャッシュ
７５  ストレージ・コントローラ
７９  物理メモリ・ディレクトリ
７６  物理メモリ・キャッシュ
７８  アダプタ
１０２  ハード・ディスク
１０３  ハード・ディスク
１０４  ハード・ディスク
【図１】
2004192615.tif 000003
【図２】
2004192615.tif 000004
【図３】
2004192615.tif 000005
【図４】
2004192615.tif 000006
【図５】
2004192615.tif 000007
【図６】
2004192615.tif 000008
【図７】
2004192615.tif 000009
【図８】
2004192615.tif 000010
【図９】
2004192615.tif 000011
【図１０】
2004192615.tif 000012
【図１１】
2004192615.tif 000013