JP3938370B2 - ハードウェア管理仮想−物理アドレス変換機構 - Google Patents

ハードウェア管理仮想−物理アドレス変換機構 Download PDF

Info

Publication number
JP3938370B2
JP3938370B2 JP2003380473A JP2003380473A JP3938370B2 JP 3938370 B2 JP3938370 B2 JP 3938370B2 JP 2003380473 A JP2003380473 A JP 2003380473A JP 2003380473 A JP2003380473 A JP 2003380473A JP 3938370 B2 JP3938370 B2 JP 3938370B2
Authority
JP
Japan
Prior art keywords
virtual
memory
cache
physical
hard disk
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.)
Expired - Fee Related
Application number
JP2003380473A
Other languages
English (en)
Other versions
JP2004192615A (ja
Inventor
ラヴィ・クマール・アリミリ
ジョン・スティーブン・ドッドスン
サンジーブ・ガイ
ケニス・リー・ライト
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2004192615A publication Critical patent/JP2004192615A/ja
Application granted granted Critical
Publication of JP3938370B2 publication Critical patent/JP3938370B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、一般にはデータ処理システムに関し、より詳細には、メモリ階層を有するデータ処理システムに関する。さらに詳細には、本発明は、オペレーティング・システムの支援なしに仮想メモリ処理方式を管理することができるデータ処理システムに関する。
本特許出願は、以下の同時係属出願に関連する。
1.2002年12月12日に出願の米国特許出願第10/319023号「DATAPROCESSING SYSTEM HAVING NO SYSTEM MEMORY」(出願人整理番号AUS920020168US1)
2.2002年12月12日に出願の米国特許第10/318524号「DATAPROCESSING SYSTEM HAVING A PHYSICALLY ADDRESSED CACHE OF DISK MEMORY」(出願人整理番号AUS920020169US1)
3.2002年12月12日に出願の米国特許出願第10/318530号「ALIASINGSUPPORT FOR A DATA PROCESSING SYSTEM HAVING NO SYSTEM MEMORY」(出願人整理番号AUS920020171US1)
4.2002年12月12日に出願の米国特許出願第10/318527号「ACCESSREQUEST FOR A DATA PROCESSING SYSTEM HAVING NO SYSTEM MEMORY」(出願人整理番号AUS920020172US1)
5.2002年12月12日に出願の米国特許出願第10/318528号「INTERRUPTMECHANISM FOR A DATA PROCESSING SYSTEM HAVING HARDWARE MANAGED PAGING OF DISKDATA」(出願人整理番号AUS920020173US1)
6.2002年12月12日に出願の米国特許出願第10/318531号「APPARATUSFOR INFLUENCING PROCESS SCHEDULING IN A DATA PROCESSING SYSTEM CAPABLE OFUTILIZING A VIRTUAL MEMORY PROCESSING SCHEME」(出願人整理番号AUS920020174US1)
従来技術のメモリ階層は一般に、入出力チャネル変換器を介してプロセッサ複合体に接続された、1または複数のレベルのキャッシュ・メモリと、システム・メモリ(実メモリとも呼ぶ)と、ハード・ディスク(物理メモリとも呼ぶ)とを備える。複数レベルのキャッシュ・メモリがある場合、レベル1(L1)キャッシュと一般に呼ばれる第1レベルのキャッシュ・メモリのアクセス時間が最も速く、ビット当たりコストも最高である。レベル2(L2)キャッシュ、レベル3(L3)キャッシュなどの他のレベルのキャッシュ・メモリは、アクセス時間が比較的低速だが、ビット当たりコストも比較的低い。キャッシュ・メモリのレベルが低くなるに従ってアクセス時間が遅くなるのが一般的である。
システム・メモリには、一般に、仮想メモリ処理方式を使用するデータ処理システムのプロセス・アドレス空間のうちの最も頻繁に使用される部分が格納される。プロセス・アドレス空間の他の部分は、ハード・ディスクに記憶され、必要に応じて取り出される。ソフトウェア・アプリケーションの実行中、オペレーティング・システムは仮想アドレスを実アドレスに変換する。この変換は、システム・メモリに格納されているページ・フレーム・テーブル(PFT)を用いて、記憶装置のページの細分性で行われる。プロセッサ・キャッシュは、最も最近に使用されたPFTエントリ(PTE)用のキャッシュの役割を果たす変換索引バッファ(TLB)を備えるのが普通である。
データ・ロード、データ・ストア、または命令フェッチ要求が開始されると、その要求に関連づけられたデータの仮想アドレスがTLBで検索され、その仮想アドレスに対応する実アドレスが入ったPTEを探し出す。TLB内で該当するPTEが見つかった場合、対応する実アドレスを有するメモリ階層にデータ・ロード、データ・ストア、または命令フェッチ要求が発行される。TLBで該当するPTEが見つからなかった場合、システム・メモリ内のPFTを使用して、対応するPTEを探索する。次に、PTEはTLBに再ロードされ、変換プロセスが再開する。
空間的制約のため、すべての仮想アドレスがシステム・メモリ内のPFTに収まるわけではない。PFT内に仮想−実アドレス変換が見つからない場合、または変換は見つかったが、当該ページに関連づけられたデータがシステム・メモリに入っていない場合、「ページ・フォルト」が起こって変換プロセスに割込みが入り、それによってオペレーティング・システムが新しい変換のためにPFTを更新することができるようにする。このような更新には、置換するページをシステム・メモリからハード・ディスクに移動し、すべてのプロセッサのTLB内の置き換えられたPTEのすべてのコピーを無効にし、新しい変換アドレスに関連づけられたデータ・ページをハード・ディスクからシステム・メモリに移動し、PFTを更新し、変換プロセスを再開する必要がある。
上述のように、仮想メモリの管理は一般に、オペレーティング・システムによって行われ、オペレーティング・システムのうちの、PFTと、システム・メモリとハード・ディス7との間のデータのページングとを管理する部分を、仮想メモリ・マネージャ(VMM)と呼ぶ。しかし、オペレーティング・システムによって管理される仮想メモリにはいくつかの問題がある。たとえば、VMMは、通常、ハードウェア構造を知らず、従ってVMMによって指示される置換方策は一般にあまり効率的ではない。さらに、VMMコードは、きわめて複雑で、複数のハードウェア・プラットフォームにわたって維持する場合、あるいは多くの異なるメモリ構成が可能な単一のハードウェア・プラットフォーム上でさえ、維持するのに高コストである。本発明の開示は、上記問題の解決策を提供する。
本発明の好ましい実施形態によれば、仮想メモリ処理方式を使用することができるデータ処理システムが、複数の処理装置を含む。これらの処理装置は、実アドレス空間より大きい仮想アドレス空間で動作する揮発性キャッシュ・メモリを有する。これらの処理装置とそれぞれの揮発性メモリは、物理アドレス空間で動作するストレージ・コントローラに接続されている。処理装置とストレージ・コントローラは、相互接続を介してハード・ディスクに接続されている。ハード・ディスクには、実アドレスを介さずに、上記揮発性キャッシュ・メモリのうちの1つに入っている仮想アドレスを、ハード・ディスク内の記憶場所を指示する物理ディスク・アドレスに変換するための仮想−物理変換テーブルが入っている。ストレージ・コントローラは、物理メモリ・キャッシュに接続されており、実アドレスを介さずに、揮発性キャッシュ・メモリの1つに入っている仮想アドレスを、ハード・ディスク内の記憶場所を指す物理ディスク・アドレスにマップすることができるようにする。物理メモリ・キャッシュには、ハード・ディスク内の情報のサブセットが格納される。
本発明のすべての目的、特徴、および利点は、以下の詳細な説明を読めば明らかになるであろう。
本発明自体と、本発明の好ましい使用形態、その他の目的、および利点は、添付図面を参照しながら、以下の例示の実施形態の詳細な説明を読めば最もよくわかるであろう。
例示のため、本発明について、単一レベルのキャッシュ・メモリを有するマルチプロセッサ・データ処理システムを用いて説明するが、本発明の特徴は、複数レベルのキャッシュ・メモリを有するデータ処理システムにも適用可能であることを理解されたい。
I.従来技術
図面、特に図1を参照すると、従来の技術によるマルチプロセッサ・データ処理システムのブロック図が示されている。図のように、マルチプロセッサ・データ処理システム10は、複数の中央演算処理装置(CPU)11aないし11nを備え、各CPU11aないし11nはキャッシュ・メモリを含む。たとえば、CPU11aはキャッシュ・メモリ12a、CPU11bはキャッシュ・メモリ12b、CPU11nはキャッシュ・メモリ12nを含む。CPU11aないし11nとキャッシュ・メモリ12aないし12nは、相互接続14を介してメモリ・コントローラ15およびシステム・メモリ16に接続されている。相互接続14は、キャッシュ・メモリ12aないし12nと入出力チャネル変換器(IOCC)17との間でトランザクションをやり取りするためのパイプの役割を果たす。
マルチプロセッサ・データ処理システム10は、仮想メモリ処理方式を使用する。これは、同時に3種類のアドレスを使用することを意味する。この3種類のアドレスは、仮想アドレス、実アドレス、物理アドレスである。仮想アドレスとは、仮想メモリ処理方式を使用するデータ処理システム内のソフトウェア・アプリケーションで直接参照されるアドレスであると定義される。実アドレスとは、データ処理システム内のシステム・メモリ(またはメイン・メモリ)にアクセスするときに参照されるアドレスであると定義される。物理アドレスとは、データ処理システム内のハード・ディスクをアクセスするときに参照されるアドレスであると定義される。
仮想メモリ処理方式では、オペレーティング・システムが、CPU11aないし11nによって使用される仮想アドレスを、システム・メモリ16およびキャッシュ・メモリ12aないし12nによって使用される対応する実アドレスに変換する。ハード・ディスク・アダプタ18がデバイス・ドライバ・ソフトウェアに制御されて、システム・メモリ16およびキャッシュ・メモリ12aないし12nによって使用される実アドレスをハード・ディスク101によって使用される物理アドレス(またはディスク・アドレス)に変換する。
動作中、システム・メモリ16は、プロセス・データおよびプロセス命令のうちの最も頻繁に使用される部分を格納し、プロセス・データおよびプロセス命令の他の部分は、ハード・ディスク101に記憶される。システム・メモリ16に記憶されているページ・フレーム・テーブル(PFT)19を使用して、仮想アドレスから実アドレスへのマッピングを定義する。対応するCPU内の各変換索引バッファ(TLB)13aないし13nが、最も最近に使用されたPFTエントリ(PTE)のためのキャッシュとして機能する。
PFT19に仮想−実アドレス変換が見つからない場合、または仮想−実アドレス変換は見つかったがそれに関連づけられたデータがシステム・メモリ16にない場合、「ページ・フォルト」が起こって変換プロセスに割込みが入り、それによってオペレーティング・システムは、PFT19を更新するか、または要求されたデータをハード・ディスク101からシステム・メモリ16に転送するか、あるいはその両方を行う必要がある。PFTの更新には、置換するページをシステム・メモリ16からハード・ディスク101に移動し、TLB13aないし13n内の置換されたPTEのすべてのコピーを無効化し、新しい変換アドレスに関連づけられたデータのページをハード・ディスク101からシステム・メモリ16に移動し、PFT19を更新し、変換プロセスを再開する必要がある。従来、ページ・フォルトの処理は、オペレーティング・システムによって制御されているが、そのような構成には前述のような欠点がある。
II.新規な構成
本発明の好ましい実施形態によれば、データ処理システム10から図1のシステム・メモリ16を完全になくす。データ処理システムからシステム・メモリ16が完全になくなるため、すべてのデータと命令をハード・ディスクから直接フェッチしなければならず、ストレージ・コントローラを使用して、ハード・ディスクとの間のデータおよび命令の転送を管理する。実質的には、本発明によりシステム・メモリを「仮想化」する。
本発明の最も簡単な実施形態では、仮想−物理アドレス・エイリアシングは行われないようにする。エイリアシングとは、複数の仮想アドレスが単一の物理アドレスにマップすることであると定義される。エイリアシングを行わない場合、仮想アドレスは常にただ1つの物理アドレスにマップするため、仮想−物理アドレス変換は不要である。
次に図2を参照すると、本発明の好ましい実施形態が組み込まれたマルチプロセッサ・データ処理システムのブロック図が示されている。図のように、マルチプロセッサ・データ処理システム20は、複数の中央演算処理装置(CPU)21aないし21nを備え、各CPU21aないし21nはキャッシュ・メモリを含む。たとえば、CPU21aはキャッシュ・メモリ22aを含み、CPU21bはキャッシュ・メモリ22bを含み、CPU21nはキャッシュ・メモリ22nを含む。CPU21aないし21nとキャッシュ・メモリ22aないし22nは、相互接続24を介してストレージ・コントローラ25に接続されている。相互接続24は、キャッシュ・メモリ22aないし22nとIOCC27との間のトランザクションをやり取りするためのパイプの役割を果たす。IOCC27はハード・ディスク・アダプタ28を介してハード・ディスク102に接続されている。
従来の技術(図1参照)では、ハード・ディスク・アダプタ18と、ハード・ディスク・アダプタ18に付随するデバイス・ドライバ・ソフトウェアは、キャッシュ・メモリ12aないし12nおよびシステム・メモリ16によって使用される実アドレスを、ハード・ディスク101によって使用される対応する物理アドレスに変換する。本発明では、(従来の実アドレス空間をなくしたため)ストレージ・コントローラ25が、仮想アドレスからそれに対応する物理アドレスへの変換を管理する。しかし、エイリアシングを行わないようにした場合、仮想アドレスと物理アドレスの間に直接的な一対一対応があるため、仮想アドレスから物理アドレスへの変換はまったく不要である。
図2の実施形態では、マルチプロセッサ・データ処理システム20の仮想アドレス・レンジは、ハード・ディスク102の容量によって決まる。言い換えると、ハード・ディスク102の物理アドレス・レンジは、マルチプロセッサ・データ処理システム20の仮想アドレス・レンジと同じである。しかし、ハード・ディスク102の物理アドレス・レンジより広い仮想アドレス・レンジも定義することができる。その場合、ソフトウェアが、ハード・ディスク102の物理アドレス・レンジの範囲外にある仮想アドレスにアクセスを試みると、例外とみなされるため、例外割込みによって処理する必要がある。ハード・ディスク102の物理アドレス・レンジより広い仮想アドレス・レンジを設ける他の方法は、図7に示す仮想−物理変換テーブル29のような仮想−物理変換テーブルを使用するものである。
次に図3を参照すると、本発明の好ましい実施形態による、マルチプロセッサ・データ処理システム20内のプロセッサからの仮想メモリ・アクセス要求を処理する方法の高水準流れ図が示されている。プロセッサからの仮想メモリ・アクセス要求に応答して、ブロック31に示すように、そのアクセス要求によって要求されたデータがそのプロセッサに付随するキャッシュ・メモリにあるか否かが判断される。要求されたデータがプロセッサに付随するキャッシュ・メモリ内にある場合、ブロック35に示すように、要求されたデータがその付随するキャッシュ・メモリからプロセッサに送られる。要求されたデータがプロセッサに付随するキャッシュ・メモリ内にない場合は、ブロック32に示すように、要求されたデータの仮想アドレスが、図2のストレージ・コントローラ25などのストレージ・コントローラに転送される。次に、ブロック33に示すように、要求されたデータの仮想アドレスがストレージ・コントローラによって対応する物理アドレスにマップされる。次に、ブロック34に示すように、要求されたデータが図2のハード・ディスク102などのハード・ディスクからフェッチされ、ブロック35に示すように、要求されたデータはその後プロセッサに送られる。
次に図4を参照すると、本発明の第2の実施形態が組み込まれたマルチプロセッサ・データ処理システムのブロック図が示されている。図のように、マルチプロセッサ・データ処理システム40は、複数の中央演算処理装置(CPU)41aないし41nを備え、各CPU41aないし41nはキャッシュ・メモリを含む。たとえば、CPU41aはキャッシュ・メモリ42aを含み、CPU41bはキャッシュ・メモリ42bを含み、CPU41nはキャッシュ・メモリ42nを含む。CPU41aないし41nおよびキャッシュ・メモリ42aないし42nは、相互接続44を介してストレージ・コントローラ45と物理メモリ・キャッシュ46とに接続されている。物理メモリ・キャッシュ46は、ダイナック・ランダム・アクセス・メモリ(DRAM)を使用した記憶装置であることが好ましいが、他の同様のタイプの記憶装置も使用可能である。ストレージ・コントローラ45は、物理メモリ・キャッシュ46を追跡するための物理メモリ・キャッシュ・ディレクトリ49を備える。相互接続44は、キャッシュ・メモリ42aないし42nとIOCC47との間でトランザクションをやり取りするためのパイプの役割を果たす。IOCC47は、ハード・ディスク・アダプタ48を介してハード・ディスク103に接続されている。
図2のストレージ・コントローラ25と同様に、(従来の実アドレス空間をなくしたため)ストレージ・コントローラ45は仮想アドレスから対応する物理アドレスへの変換を管理する。この場合も、ハード・ディスク103の物理アドレス・レンジは、マルチプロセッサ・データ処理システム40の仮想アドレス・レンジと同じであることが好ましいためと、マルチプロセッサ・データ処理システム40ではエイリアシングができないため、仮想アドレスから物理アドレスへの変換は不要である。
物理メモリ・キャッシュ46には、ハード・ディスク103に記憶されている情報のサブセットが格納されている。物理メモリ・キャッシュ46に記憶される情報のサブセットは、CPU41aないし41nのいずれか1つが最も最近にアクセスした情報であることが好ましい。物理メモリ・キャッシュ46内の各キャッシュ・ラインには、物理アドレス方式のタグと、対応するデータ・ページとが含まれることが好ましい。物理メモリ・キャッシュ46内の各キャッシュ・ラインのデータ細分性は1ページであるが、他のデータ細分性も使用可能である。物理メモリ・キャッシュ・ディレクトリ49は、アソシアティビティ、コヒーレンシ、置換など、任意の周知のキャッシュ管理技法を使用して物理メモリ・キャッシュ46を追跡する。物理メモリ・キャッシュ・ディレクトリ49内の各エントリは、物理メモリ・キャッシュ46内にある1つまたは複数の物理メモリ・ページを示すことが好ましい。データ・ページの仮想メモリ・アクセス要求後に物理メモリ・キャッシュ46で「ミス」になった場合、要求されたデータ・ページはハード・ディスク103からフェッチされる。所定のアルゴリズムまたはこの仮想メモリ・アクセス要求からの手掛かりに基づいてハード・ディスク103から追加のデータ・ページもフェッチすることができる。
次に図5を参照すると、本発明の好ましい実施形態による、マルチプロセッサ・データ処理システム40内のプロセッサからの仮想メモリ・アクセス要求を処理する方法の高水準論理流れ図が示されている。プロセッサからの仮想メモリ・アクセス要求に応答して、ブロック50に示すように、アクセス要求によって要求されたデータ・ページがそのプロセッッサに付随するキャッシュ・メモリ内に存在するか否かを判断する。要求されたデータ・ページがプロセッサに付随するキャッシュ・メモリ内にある場合、ブロック58に示すように、その付随するキャッシュ・メモリから要求データ・ページがプロセッサに送られる。要求されたデータ・ページがプロセッサに付随するキャッシュ・メモリ内に存在しない場合、ブロック51に示すように、要求されたデータ・ページの仮想アドレスが図4のストレージ・コントローラ45のようなストレージ・コントローラに転送される。次に、ブロック52に示すように、要求されたデータ・ページの仮想アドレスが対応する物理アドレスにマップされる。
次に、ブロック53に示すように、要求されたデータ・ページが、図4の物理メモリ・キャッシュ46のような物理メモリ・キャッシュ内に存在するか否かを判断する。要求されたページが物理メモリ・キャッシュに存在する場合、ブロック58に示すように、要求されたデータ・ページが物理メモリ・キャッシュからプロセッサに送られる。要求されたデータ・ページが物理メモリ・キャッシュ内にない場合、ブロック54に示すように物理メモリ・キャッシュ内で「犠牲(victim)」ページを選択する。次に、ブロック55に示すように、「犠牲」ページが図4のハード・ディスク103などのハード・ディスクに書き戻される。データ・ページのハード・ディスクへの書戻しの詳細は後述する。ブロック56に示すように、要求されたデータ・ページがハード・ディスクからフェッチされる。次に、ブロック57に示すように、要求されたデータ・ページによって物理メモリ・キャッシュを更新し、ブロック58に示すように、要求されたデータ・ページはその後プロセッサに送られる。
プロセッサによって要求されたデータ・ページが物理メモリ・キャッシュ46に格納されていない場合、ストレージ・コントローラ45は以下の一連のステップを実行する。
1.まず、要求されたデータ・ページと交換する「犠牲」データ・ページを選択する。
2.次に、ストレージ・コントローラ45が、ハード・ディスク103への選択された「犠牲」データ・ページのバースト入出力(I/O)書込み操作を開始する。あるいは、ストレージ・コントローラ45は、ハード・ディスク・アダプタ48にコマンドを送って、ハード・ディスク・アダプタ48に対し、物理メモリ・キャッシュ46からハード・ディスク103への選択された「犠牲」データ・ページの直接メモリ・アクセス(DMA)転送を開始するように指示することもできる。
3.次に、ストレージ・コントローラ45は、バーストI/O読取り操作を開始して、要求されたデータ・ページをハード・ディスク103からフェッチする。あるいは、ストレージ・コントローラ45は、ハード・ディスク・アダプタ48にコマンドを送り、ハード・ディスク・アダプタ48に対し、要求されたデータ・ページをハード・ディスク103から物理メモリ・キャッシュ46にDMA転送するように指示することもできる。
4.次に、ストレージ・コントローラ45は、要求されたデータ・ページを物理メモリ・キャッシュ46に書き込み、要求されたデータ・ページを要求プロセッサに返す。
上記のステップはすべて、オペレーティング・システム・ソフトウェアからの支援なしで行われる。
III.エイリアシング
図4のマルチプロセッサ・データ処理システム40の効率を向上させ、プロセス間のデータ共用を可能にするために、仮想−物理アドレス・エイリアシングを行うことができる。仮想アドレス・エイリアシングがある場合、1つの物理アドレスに複数の仮想アドレスをマップすることができるため、仮想−物理アドレス変換が必要である。本発明の好ましい実施形態によると、エイリアシング・テーブルを使用して仮想−物理アドレス変換をサポートする。
次に図6を参照すると、本発明の好ましい実施形態によるエイリアシング・テーブルのブロック図が示されている。図のように、エイリアシング・テーブル60の各エントリには3つのフィールド、すなわち、仮想アドレス・フィールド61と仮想アドレス・フィールド62と有効ビット・フィールド63がある。仮想アドレス・フィールド61には、一次仮想アドレスが入れられ、仮想アドレス・フィールド62には二次仮想アドレスが入れられる。エイリアシング・テーブル60の各エントリごとに、一次と二次の両方の仮想アドレスが1つの物理アドレスにマップされる。有効ビット・フィールド63は、当該エントリが有効か否かを示す。
エイリアシング・テーブル60を妥当なサイズに抑えておくため、他の仮想アドレスによってエイリアス指定されない仮想アドレスはエイリアシング・テーブル60内にエントリがない。プロセッサによってロード/ストア命令または命令フェッチが実行されるたびに、エイリアシング・テーブル60を検索する。エイリアシング・テーブル60に一致する仮想アドレス・エントリが見つかった場合、(仮想アドレス・フィールド61内の)一致するエントリの一次仮想アドレスがメモリ階層に転送される。たとえば、エイリアシング・テーブル60の仮想アドレスCが要求された場合、そのエントリの一次仮想アドレスである仮想アドレスAが、要求プロセッサに付随するキャッシュ・メモリに転送される。これは、仮想アドレスAと仮想アドレスCの両方が同じ物理アドレスを指すためである。したがって、メモリ階層に関する限りではエイリアシング・テーブル60内の二次仮想アドレスは実質的に存在しない。
次に図7を参照すると、本発明の第3の実施形態が組み込まれたマルチプロセッサ・データ処理システムのブロック図が示されている。図のように、マルチプロセッサ・データ処理システム70は、複数の中央演算処理装置(CPU)71aないし71nを備え、各CPU71aないし71nがキャッシュ・メモリを備える。たとえば、CPU71aはキャッシュ・メモリ72aを備え、CPU71bはキャッシュ・メモリ72bを備え、CPU71nはキャッシュ・メモリ72nを備える。CPU71aないし71nおよびキャッシュ・メモリ72aないし72nは、相互接続74を介してストレージ・コントローラ75および物理メモリ・キャッシュ76に接続されている。物理メモリ・キャッシュ76は、DRAMを使用した記憶装置であることが好ましいが、他の同様のタイプの記憶装置も使用可能である。相互接続74は、キャッシュ・メモリ72aないし72nとIOCC77との間でトランザクションをやり取りするためのパイプの役割を果たす。IOCC77は、ハード・ディスク・アダプタ78を介してハード・ディスク104に接続されている。
マルチプロセッサ・データ処理システム70では仮想−物理アドレス・エイリアシングが可能である。したがって、各CPU71aないし71nは、仮想−物理アドレス変換のためにそれぞれ1つのエイリアシング・テーブル38aないし38nを備える。さらに、仮想−物理(ディスク)アドレス変換を行うためにハード・ディスク104内に仮想−物理変換テーブル(VPT)29が設けられている。具体的にはディスク空間104の一領域が、マルチプロセッサ・データ処理システム70が使用する仮想アドレス・レンジ全体のVPT29を格納するために確保されている。VPT29が存在することにより、マルチプロセッサ・データ処理システム70の仮想アドレス・レンジを、ハード・ディスク104の物理アドレス・レンジよりも大きくとることができる。VPT29により、オペレーティング・システムがアドレス変換を管理する負担が軽減される。
次に、図8を参照すると、本発明の好ましい実施形態による、VPT29のブロック図が示されている。図のように、VPT29の各エントリには3つのフィールド、すなわち、仮想アドレス・フィールド36、物理アドレス・フィールド37、有効ビット・フィールド38がある。VPT29には、(図7の)マルチプロセッサ・データ処理システム70内で使用されるすべての仮想アドレスのエントリがある。VPT29内の各エントリごとに、仮想アドレス・フィールド36には仮想アドレスが入れられ、物理アドレス・フィールド37には、仮想アドレス・フィールド36内の仮想アドレスに対応する物理アドレスが入れられ、有効ビット・フィールド38は、当該エントリが有効か否かを示す。(図7の)ストレージ・コントローラ75が、有効ビット・フィールド38が有効ではない仮想アドレス・エントリに対する仮想アドレス・アクセス要求を受け取った場合、ストレージ・コントローラ75は以下の2つの選択肢のうちの一方を行うことができる。
1.要求側プロセッサに例外割込みを送る(すなわち、アクセス要求をエラー条件とみなす)か、または
2.当該エントリを未使用物理アドレス(ある場合)によって更新し、有効ビット・フィールド38を有効に設定し、処理を続ける。
図7に戻って参照すると、ストレージ・コントローラ75は物理メモリ・キャッシュ76に接続されている。物理メモリ・キャッシュ76には、ハード・ディスク104に記憶されている情報のサブセットが格納される。物理メモリ・キャッシュ76内に格納されるこの情報のサブセットは、CPU71aないし71nのいずれか1つのCPUが最も最近にアクセスした情報であることが好ましい。物理メモリ・キャッシュ76内の各キャッシュ・ラインは、物理アドレス方式のタグと、対応するデータ・ページとが含まれていることが好ましい。また、ストレージ・コントローラ75は、仮想アドレスから対応する物理アドレスへの変換も管理する。ストレージ・コントローラ75は、VPTキャッシュ39と物理メモリ・ディレクトリ79とを備える。VPTキャッシュ39には、ハード・ディスク104内のVPT29のうちの最も最近に使用された部分が格納される。VPTキャッシュ39内の各エントリはVPTエントリ(VPT29の最も最近に使用されたエントリのうちの1つに対応する)である。物理メモリ・キャッシュ・ディレクトリ79は、アソシアティビティ、コヒーレンシ、置換など、任意の周知のキャッシュ管理技法を使用して物理メモリ・キャッシュ76を追跡する。物理メモリ・キャッシュ・ディレクトリ79内の各エントリは、好ましくは物理メモリ・キャッシュ76に入っている1つまたは複数の物理メモリ・ページを示す。データ・ページの仮想メモリ・アクセス要求後に物理メモリ・キャッシュ76で「ミス」になった場合、要求されたデータ・ページは、ハード・ディスク104からフェッチされる。所定のアルゴリズムまたはページ要求の手掛かりに基づいて、ハード・ディスク104から追加のデータ・ページもフェッチすることができる。
ストレージ・コントローラ75は、ハード・ディスク104のどこにVPT29があるかわかるように構成され、VPT29の一部を物理メモリ・キャッシュ76にキャッシュし、当該サブセットの一部を、ストレージ・コントローラ75内のより小さい専用VPTキャッシュ39にキャッシュすることができる。このような二段階VPTキャッシュ階層により、ストレージ・コントローラ75が、最も最近に使用されたVPTエントリのための物理メモリ・キャッシュ76にアクセスしなくても済むようにする。また、ストレージ・コントローラ75が、最近使用されたVPTエントリのより大きなプールのためにハード・ディスク104にアクセスしなくても済む。
次に図9を参照すると、本発明の好ましい実施形態による、マルチプロセッサ・データ処理システム70内のプロセッサからのアクセス要求を処理する方法を示す高水準論理流れ図が示されている。プロセッサからの仮想メモリ・アクセス要求に応答して、ブロック80に示すように、アクセス要求によって要求された仮想アドレスが、当該プロセッサに関連づけられたエイリアシング・テーブル内にあるか否かを判断する。要求された仮想アドレスが当該プロセッサに付随するエイリアシング・テーブル内にある場合、ブロック81で、プロセッサに付随するエイリアシング・テーブルから一次仮想アドレスを選択する。要求された仮想アドレスがプロセッサに付随するエイリアシング・テーブル内にない場合、要求された仮想アドレスがキャッシュ・メモリに直接渡される。次に、ブロック82に示すように、アクセス要求によって要求されたデータが、プロセッサに付随するキャッシュ・メモリ内にあるか否かを判断する。アクセス要求によって要求されたデータがプロセッサに付随するキャッシュ・メモリ内にある場合、ブロック99に示すように、付随するキャッシュ・メモリから要求データがプロセッサに送られる。要求されたデータがプロセッサに付随するキャッシュ・メモリ内にない場合、ブロック83に示すように、要求データの仮想アドレスが、図7のストレージ・コントローラ75などのストレージ・コントローラに転送される。次に、ブロック84に示すように、要求データの仮想ページ・アドレスが、図7のVPTキャッシュ39などのVPTキャッシュ内にあるか否かを判断する。
要求データの仮想ページ・アドレスがVPTキャッシュ内にある場合、ブロック85に示すように、その仮想アドレスが対応する物理アドレスに変換される。次に、ブロック86に示すように、要求されたページが、図7の物理メモリ・キャッシュ76などの物理メモリ・キャッシュ内にあるか否かを判断する。要求されたページが物理メモリ・キャッシュ内にある場合、ブロック99に示すように、要求されたデータが物理メモリ・キャッシュからプロセッサに送られる。要求されたページが物理メモリ・キャッシュ内にない場合、ブロック87に示すように、物理メモリ・キャッシュ内で、要求されたデータを含むデータ・ページに置き換える「犠牲」ページを選択する。次に、ブロック88に示すように、この「犠牲」ページを、図7のハード・ディスク104などのハード・ディスクに書き戻す。ブロック89に示すように、要求されたデータ・ページをハード・ディスクからフェッチする。ブロック98に示すように、要求されたデータ・ページによって物理メモリ・キャッシュを更新し、その後、ブロック99に示すように、要求されたデータ・ページをプロセッサに送る。
要求されたデータ・ページの仮想アドレスがVPTキャッシュ内にない場合、ブロック65に示すように、VPTキャッシュ内で「犠牲」VPTエントリ(VPE)を選択する。次に、この「犠牲」VPEにストレージ・コントローラによって変更が加えられている場合、ブロック66に示すように犠牲VPEをハード・ディスクに書き戻す。ブロック67に示すように、要求されたVPEを、図7のVPT29などのハード・ディスク内のVPTからフェッチする。ブロック68に示すように、要求VPEでVPTキャッシュを更新し、このプロセスはブロック84に戻る。
IV.記憶アクセス要求修飾子
図10を参照すると、本発明の好ましい実施形態による、プロセッサからの仮想メモリ・アクセス要求の書式を示すブロック図が図示されている。プロセッサから、図2のストレージ・コントローラ25や、図4のストレージ・コントローラ45、図7のストレージ・コントローラ75などのストレージ・コントローラに、仮想メモリ・アクセス要求を送ることができる。図10に示すように、仮想メモリ・アクセス要求90には5つのフィールドがある。すなわち、仮想アドレス・フィールド91、非割振り解除フィールド92、非割振りフィールド93、プリフェッチ標識フィールド94、およびプリフェッチ・ページ数フィールド95である。フィールド92ないし95の値は、ユーザ・レベルのアプリケーション・ソフトウェアでプログラム可能である。これにより、アプリケーション・ソフトウェアは、「仮想化された」メモリを管理するストレージ・コントローラに「ヒント」を伝えることができる。
仮想アドレス・フィールド91には、プロセッサによって要求されたデータまたは命令の仮想アドレスが格納される。非割振り解除フィールド92は、1ビット幅であることが好ましく、当該データを、図2の物理メモリ・キャッシュ25、図4の物理メモリ・キャッシュ46、図7の物理メモリ76などの物理メモリ・キャッシュから割振り解除すべきか否かに関する標識が格納される。物理メモリ・キャッシュ内の各ディレクトリ・エントリも、非割振り解除フィールド92内のビットと同様の非割振り解除ビットを有する。アクセス要求90を使用して、物理メモリ・キャッシュのディレクトリ・エントリ内の非割振り解除ビットを設定したりリセットしたりすることができる。電源が投入されてから初めてプロセッサからアドレスのアクセス要求を受け取った後、非割振り解除フィールド92内のビットが論理「1」に設定されている場合、ストレージ・コントローラが要求されたデータをハード・ディスクから読み取る。次に、ストレージ・コントローラは要求データを物理メモリ・キャッシュに書き込み、ストレージ・コントローラが対応する物理メモリ・キャッシュ・ディレクトリ・エントリを更新するときに非割振り解除フィールドのビットを設定する。その後、物理メモリ・キャッシュで「ミス」になった場合、ストレージ・コントローラのキャッシュ置換方式により、置換候補となり得るディレクトリ・エントリ内の非割振り解除フィールドのビットを調べる。非割振り解除フィールドのビットが論理「1」に設定されている犠牲となり得るエントリは、置換候補の検討対象から外されることになる。その結果、対応する非割振り解除フィールドのビットが論理「1」に設定されているキャッシュ・ラインは、その後当該キャッシュ・ラインへのアクセスを受け取って当該キャッシュ・ラインの非割振り解除フィールドのビットが論理「0」にリセットされるまで、強制的に物理メモリ・キャッシュ内に保持される。
非割振りフィールド93、プリフェッチ・フィールド94、およびプリフェッチ・ページ数フィールド95は、任意選択のヒント・ビット・フィールドの例である。ヒント・ビット・フィールドによって、ストレージ・コントローラは、要求されたデータを処理した後にプリフェッチなどの特定の操作を行うことができる。非割振りフィールド93には、要求プロセッサが要求データを1回しか必要とせず、したがって物理メモリ・キャッシュに要求データを格納する必要がないか否かを示す1ビットが格納される。プリフェッチ・フィールド94には、プリフェッチが必要か否かを示す1ビットが格納される。プリフェッチ・フィールド94内のビットが設定されている場合、要求されたデータの後に連続するデータがさらにプリフェッチされる。プリフェッチ・ページ数フィールド95には、プリフェッチする必要があるページ数が格納される。
V.VPT割込み
図7のマルチプロセッサ・データ処理システム70では、要求されたVPEが物理メモリ・キャッシュ76内にない場合、または要求された物理ページが物理メモリ・キャッシュ76内にない場合、ストレージ・コントローラ75はハード・ディスク104にアクセスして要求されたデータまたはVPEあるいはその両方をフェッチする必要がある。ハード・ディスク104へのアクセスは、物理メモリ・キャッシュ76へのアクセスよりはるかに長い時間がかかる。アプリケーション・ソフトウェア・プロセスは、長いアクセス・レイテンシがあることがわからないため、ストレージ・コントローラ75がオペレーティング・システムに対して、データ要求を満たすにはディスク・アクセスが必要であることを通知し、それによってオペレーティング・システムが現行プロセスの状態を保存して異なるプロセスに切り換えることができるようにすれば有利である。
ストレージ・コントローラ75は、要求プロセッサによって要求されたデータがどこに位置するかなどの情報を収集した後、VPT割込みパケットにまとめる。図7に示す実施形態を例にとると、マルチプロセッサ・データ処理システム70の記憶域は3つのゾーン、すなわち、ゾーン1、ゾーン2、ゾーン3に分割することができる。ゾーン1は、要求プロセッサに付随していないすべてのピア・キャッシュ・メモリを含むことが好ましい。たとえば、要求プロセッサがCPU71aである場合、ピア・キャッシュ・メモリにはキャッシュ72bないし72nが含まれる。ゾーン2は、図7の物理メモリ・キャッシュ76などのすベての物理メモリ・キャッシュを含む。ゾーン3は、ハード・ディスク29などのすべての物理メモリを含む。ゾーン1の記憶装置のアクセス時間は約100nsであり、ゾーン2の記憶装置のアクセス時間は約200ns、ゾーン3の記憶装置のアクセス時間は約1ms以上である。
ストレージ・コントローラ75が要求されたデータのゾーン・ロケーションを確認した後は、ストレージ・コントローラ75は、VPT割込みパケットをまとめ、それを要求プロセッサに送る。要求プロセッサは、データを要求するために使用されたバス・タグ内のそのプロセッサ識別情報(ID)によって知ることができる。
次に図11を参照すると、本発明の好ましい実施形態による、要求プロセッサに送られる割込みパケットのブロック図が示されている。図のように、割込みパケット100は、アドレス・フィールド101とタグ・フィールド102とゾーン・フィールド103ないし105を含む。割込みパケット100は、特別なトランザクション・タイプのバスであり、アドレス・フィールド101は割込みを発生させたアクセス要求の仮想アドレスである。バス・タグ102は、割込みを発生させたアクセス要求に使用したのと同じタグである。各ゾーン・フィールド103ないし105は、要求されたデータの場所を示す1ビット長であることが好ましい。たとえば、要求されたデータが物理メモリ・キャッシュ76に格納されている場合、ゾーン2フィールド104内のビットが設定され、ゾーン・フィールド103および105内のビットは設定されない。同様に、要求されたデータがハード・ディスク104に格納されている場合、ゾーン3フィールド105内のビットが設定され、ゾーン・フィールド103および104のビットは設定されない。したがって、要求プロセッサは、割込みパケットを識別し、要求されたデータの場所を見つけることができる。
VPT割込みパケットを受け取った後、要求プロセッサはVPT割込みパケット内の仮想アドレスを、すべての未処理ロード/ストア操作の仮想アドレスと比較する。一致するアドレスが見つかった場合、プロセッサは、割込みを発生して現行プロセスの状態を保存し、別のプロセスに切り換えることもでき、その間に要求されたVPEエントリまたは対応するデータ・ページあるいはその両方がハード・ディスク104から取り込まれる。
より複雑な実施形態では、各CPU71aないし71nはゾーン・スロットのセットを備える。たとえば、図7のCPU71aはゾーン・スロット・セット5aを備え、CPU71bはゾーン・スロット・セット5bを備え、CPU71nはゾーン・スロット・セット5nを備える。各ゾーン・スロット・セット内のゾーン・スロットの数は、割込みパケット内の事前定義済みゾーン・フィールドの数と一致しなければならない。たとえば、割込みパケット100には3つのゾーン・フィールドがあるが、これは各ゾーン・スロット・セット5aないし5nには3つの対応するゾーン・スロットがあることを意味する。割込みパケット100などの割込みパケットを受け取った後、要求プロセッサは、対応するゾーン・スロットにタイム・スタンプを設定する。たとえば、CPU71bに向けられ、ゾーン・フィールド105のビットが設定された割込みパケット100を受け取った後、CPU71bは、ゾーン・スロット・セット5bの3番目のゾーン・スロットにタイム・スタンプを設定する。したがって、CPU71bは、ハード・ディスク104に記憶されている要求データを知ることができる。この時点でCPU71bは、このタイム・スタンプ情報と現行処理情報とを比較して、要求したデータを待つか、それとも、要求したデータが入手可能になるまで約1msかかるため、要求したVPEエントリまたは対応するデータ・ページあるいはその両方がハード・ディスク104から取り込まれる間に現行プロセスの状態を保存して別のプロセスに切り換えるかを決定することができる。このような時間の比較は、この別のプロセスが完了した後、他の決定をするために要求データが使用可能になる前に、CPU72bによって行うことができる。
以上のように、本発明は、仮想メモリ処理方式を使用することができる従来のデータ処理システムを向上させる方法を提供する。本発明の利点には、直接接続記憶装置のハッシングをなくしたことが含まれる。プロセッサで仮想−実アドレス変換が不要な場合、上位キャッシュ・メモリへのアクセスを高速化させることができる。プロセッサで仮想−実アドレス変換が行われない場合、シリコン面積が少なくて済み、消費電力も少なくて済むため、プロセッサの実現がより簡素化される。本発明によると、物理メモリ・キャッシュのキャッシュ・ライン・サイズだけでなくページ・サイズもオペレーティング・システムには見えない。
さらに、本発明は、オペレーティング・システムの仮想メモリ・マネージャ(VMM)による仮想メモリの管理に付随する問題も解決する。(従来の技術で定義されている)PFTは、本発明のデータ処理システムには存在しない。したがって、オペレーティング・システムのVMMを大幅に簡略化するか、あるいは完全になくすことができる。
本発明について好ましい実施形態を参照しながら具体的に図示し、説明したが、当業者なら、本発明の趣旨および範囲から逸脱することなく形態および詳細について様々な変更を加えることができることがわかるであろう。
まとめとして、本発明の構成に関して以下の事項を開示する。
(1)仮想メモリ処理方式を使用することが可能なデータ処理システムであって、
実アドレス空間より大きい仮想アドレス空間で動作する揮発性メモリを有する複数の処理装置と、
前記複数の処理装置と揮発性キャッシュ・メモリとに接続された相互接続と、
前記相互接続を介して前記複数の処理装置に接続されたハード・ディスクと、
前記ハード・ディスク内に格納され、前記揮発性キャッシュ・メモリのうちの1つの揮発性キャッシュ・メモリ内の仮想アドレスを前記ハード・ディスク内の記憶場所を指す物理ディスク・アドレスに実アドレスを介さずに変換することができるようにする仮想−物理変換テーブルと、
前記相互接続に接続され、前記揮発性キャッシュ・メモリのうち1つからの仮想アドレスを、前記ハード・ディスク内の記憶場所を指す物理ディスク・アドレスに実アドレスを介さずにマップするストレージ・コントローラとを備えたデータ処理システム。
(2)前記仮想−物理変換テーブル内のエントリが、仮想アドレス・フィールドと物理アドレス・フィールドと有効フィールドとを含む、上記(1)に記載のデータ処理システム。
(3)前記ストレージ・コントローラに接続され、前記ハード・ディスク内の情報のサブセットを格納する物理メモリ・キャッシュをさらに備える、上記(1)に記載のデータ処理システム。
(4)前記物理メモリ・キャッシュがダイナミック・ランダム・アクセス・メモリである、上記(3)に記載のデータ処理システム。
(5)前記ストレージ・コントローラが、前記物理メモリ・キャッシュの内容を追跡する物理メモリ・ディレクトリを備える、上記(3)に記載のデータ処理システム。
(6)前記ストレージ・コントローラが、前記仮想−物理変換テーブル内の情報のサブセットを格納する仮想−物理変換テーブル・キャッシュを備える、上記(3)に記載のデータ処理システム。
(7)前記複数の処理装置の仮想アドレス・レンジが前記ハード・ディスクの物理ディスク・アドレス・レンジよりも広い、上記(1)に記載のデータ処理システム。
(8)前記ハード・ディスクが入出力チャネル変換器を介して前記相互接続に接続された、上記(1)に記載のデータ処理システム。
(9)前記ハード・ディスクがアダプタを介して、前記入出力チャネル変換器に接続された、上記(1)に記載のデータ処理システム。
従来の技術によるマルチプロセッサ・データ処理システムを示すブロック図である。 本発明の好ましい実施形態を組み込んだマルチプロセッサ・データ処理システムを示すブロック図である。 図2のマルチプロセッサ・データ処理システム内のプロセッサからの仮想メモリ・アクセス要求を処理する方法を示す高水準論理流れ図である。 本発明の第2の実施形態を組み込んだマルチプロセッサ・データ処理システムを示すブロック図である。 図4のマルチプロセッサ・データ処理システム内のプロセッサからの仮想メモリ・アクセス要求を処理する方法を示す高水準論理流れ図である。 本発明の好ましい実施形態によるエイリアシング・テーブルを示すブロック図である。 本発明の第3の実施形態を組み込んだマルチプロセッサ・データ処理システムを示すブロック図である。 本発明の好ましい実施形態による、図7のマルチプロセッサ・データ処理システム内の仮想−物理アドレス変換テーブルを示すブロック図である。 図7のマルチプロセッサ・データ処理システム内のプロセッサからの仮想メモリ・アクセス要求を処理する方法を示す高水準論理流れ図である。 本発明の好ましい実施形態による、プロセッサからの仮想メモリ・アクセス要求を示すブロック図である。 本発明の好ましい実施形態による、要求側プロセッサに対する割込みパケットを示すブロック図である。
符号の説明
22 キャッシュ・メモリ
25 ストレージ・コントローラ
28 ハード・ディスク・アダプタ
39 VPTキャッシュ
42a〜42n キャッシュ・メモリ
45 ストレージ・コントローラ
49 物理メモリ・キャッシュ・ディレクトリ
46 物理メモリ・キャッシュ
48 ハード・ディスク・アダプタ
72a〜72n キャッシュ
75 ストレージ・コントローラ
79 物理メモリ・ディレクトリ
76 物理メモリ・キャッシュ
78 アダプタ
102 ハード・ディスク
103 ハード・ディスク
104 ハード・ディスク

Claims (8)

  1. 仮想メモリ処理方式を使用することが可能なデータ処理システムであって、
    実アドレス空間より大きい仮想アドレス空間で動作する揮発性キャッシュ・メモリを有する複数の処理装置と、
    前記複数の処理装置と揮発性キャッシュ・メモリとに接続された相互接続と、
    前記相互接続を介して前記複数の処理装置に接続されたハード・ディスクと、
    前記ハード・ディスク内に格納され、前記揮発性キャッシュ・メモリの仮想アドレスと前記ハード・ディスク内の記憶位置を指す物理ディスク・アドレスとの関係が規定された仮想−物理変換テーブルと、
    前記相互接続に接続されて、前記仮想−物理変換テーブル内のエントリのサブセットを格納する仮想−物理変換テーブル・キャッシュを備え、前記処理装置の1つから仮想メモリアクセス要求があった際当該仮想メモリアクセス要求に応じた仮想メモリアドレスが前記仮想−物理変換テーブル・キャッシュに存在するか否かを判定して、前記仮想−物理変換テーブルに前記仮想メモリアドレスが存在しないと前記仮想−物理変換テーブルからエントリをフェッチして前記仮想−物理変換テーブル・キャッシュを更新するストレージ・コントローラとを備えるデータ処理システム。
  2. 前記仮想−物理変換テーブル内のエントリ仮想アドレス・フィールド物理アドレス・フィールド、及び有効フィールドを含む請求項1に記載のデータ処理システム。
  3. 前記ストレージ・コントローラに接続され、前記ハード・ディスク内の情報のサブセットを格納する物理メモリ・キャッシュをさらに備える請求項1に記載のデータ処理システム。
  4. 前記物理メモリ・キャッシュダイナミック・ランダム・アクセス・メモリであ請求項3に記載のデータ処理システム。
  5. 前記ストレージ・コントローラ前記物理メモリ・キャッシュの内容を追跡する物理メモリ・ディレクトリを備え請求項3に記載のデータ処理システム。
  6. 前記複数の処理装置の仮想アドレス・レンジ前記ハード・ディスクの物理ディスク・アドレス・レンジよりも広い請求項1に記載のデータ処理システム。
  7. 前記ハード・ディスク入出力チャネル変換器を介して前記相互接続に接続され請求項1に記載のデータ処理システム。
  8. 前記ハード・ディスクアダプタを介し前記入出力チャネル変換器に接続され請求項に記載のデータ処理システム。
JP2003380473A 2002-12-12 2003-11-10 ハードウェア管理仮想−物理アドレス変換機構 Expired - Fee Related JP3938370B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/318,525 US20040117587A1 (en) 2002-12-12 2002-12-12 Hardware managed virtual-to-physical address translation mechanism

Publications (2)

Publication Number Publication Date
JP2004192615A JP2004192615A (ja) 2004-07-08
JP3938370B2 true JP3938370B2 (ja) 2007-06-27

Family

ID=32506377

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003380473A Expired - Fee Related JP3938370B2 (ja) 2002-12-12 2003-11-10 ハードウェア管理仮想−物理アドレス変換機構

Country Status (3)

Country Link
US (1) US20040117587A1 (ja)
JP (1) JP3938370B2 (ja)
CN (1) CN1261884C (ja)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7209994B1 (en) * 2004-05-11 2007-04-24 Advanced Micro Devices, Inc. Processor that maintains virtual interrupt state and injects virtual interrupts into virtual machine guests
US7917740B1 (en) 2004-05-11 2011-03-29 Advanced Micro Devices, Inc. Virtualization assist for legacy x86 floating point exception handling
KR100699268B1 (ko) 2005-09-16 2007-03-28 삼성전자주식회사 하드 디스크 드라이브의 플래쉬 메모리를 메인 &비디오메모리로 사용 할 수 있는 컴퓨터
US7543123B2 (en) * 2005-11-07 2009-06-02 International Business Machines Corporation Multistage virtual memory paging system
KR100763846B1 (ko) * 2005-12-20 2007-10-05 삼성전자주식회사 변환테이블 에뮬레이션을 이용한 데이터 처리 시스템 및데이터 처리 방법
US8176233B1 (en) * 2008-07-17 2012-05-08 Virident Systems Inc. Using non-volatile memory resources to enable a virtual buffer pool for a database application
JP5300407B2 (ja) * 2008-10-20 2013-09-25 株式会社東芝 仮想アドレスキャッシュメモリ及び仮想アドレスキャッシュ方法
US8239938B2 (en) * 2008-12-08 2012-08-07 Nvidia Corporation Centralized device virtualization layer for heterogeneous processing units
US8473691B2 (en) * 2009-02-27 2013-06-25 Ryosuke Ohgishi Memory management device, image forming apparatus, and image forming method
WO2010106692A1 (en) * 2009-03-17 2010-09-23 Hitachi, Ltd. Storage system and its controlling method
US8386749B2 (en) * 2010-03-16 2013-02-26 Advanced Micro Devices, Inc. Address mapping in virtualized processing system
CN102043731A (zh) * 2010-12-17 2011-05-04 天津曙光计算机产业有限公司 一种存储系统的缓存系统
EP2696289B1 (en) * 2011-04-07 2016-12-07 Fujitsu Limited Information processing device, parallel computer system, and computation processing device control method
CN103425609A (zh) * 2012-05-22 2013-12-04 上海黄浦船用仪器有限公司 一种用于备件测试系统的存储系统及其应用
US8984255B2 (en) * 2012-12-21 2015-03-17 Advanced Micro Devices, Inc. Processing device with address translation probing and methods
US11822474B2 (en) 2013-10-21 2023-11-21 Flc Global, Ltd Storage system and method for accessing same
JP6431536B2 (ja) * 2013-10-21 2018-11-28 マーベル インターナショナル リミテッド 最終レベルキャッシュシステム及び対応する方法
EP3905054B1 (en) 2014-08-12 2023-12-20 Huawei Technologies Co., Ltd. File management method, distributed storage system, and management node
CN104461400B (zh) * 2014-12-25 2017-09-19 浪潮(北京)电子信息产业有限公司 处理访存请求冲突的方法和装置
KR101830136B1 (ko) * 2016-04-20 2018-03-29 울산과학기술원 경량 아키텍쳐를 이용한 에일리어스 메모리 연산 방법
WO2017190266A1 (zh) 2016-05-03 2017-11-09 华为技术有限公司 管理转址旁路缓存的方法和多核处理器
US10037173B2 (en) * 2016-08-12 2018-07-31 Google Llc Hybrid memory management
US10489304B2 (en) * 2017-07-14 2019-11-26 Arm Limited Memory address translation
US10467159B2 (en) * 2017-07-14 2019-11-05 Arm Limited Memory node controller
DE112018004004T5 (de) * 2017-10-06 2020-04-16 International Business Machines Corporation Lade-speicher-einheit mit unterteilten neuordnungs-warteschlangen mit einzelnem cam-anschluss
CN110392084B (zh) * 2018-04-20 2022-02-15 伊姆西Ip控股有限责任公司 在分布式系统中管理地址的方法、设备和计算机程序产品
EP4345635A3 (en) 2018-06-18 2024-05-29 FLC Technology Group Inc. Method and apparatus for using a storage system as main memory
EP3835959A4 (en) 2018-08-24 2021-11-10 Huawei Technologies Co., Ltd. DATA PRE-EXTRACTION PROCESS AND DEVICE
KR102583787B1 (ko) * 2018-11-13 2023-10-05 에스케이하이닉스 주식회사 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템
US11275684B1 (en) * 2020-09-15 2022-03-15 Seagate Technology Llc Media read cache
CN114035980B (zh) * 2021-11-08 2023-11-14 海飞科(南京)信息技术有限公司 基于便笺存储器来共享数据的方法和电子装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4982402A (en) * 1989-02-03 1991-01-01 Digital Equipment Corporation Method and apparatus for detecting and correcting errors in a pipelined computer system
US4974167A (en) * 1989-02-28 1990-11-27 Tektronix, Inc. Erasable data acquisition and storage instrument
JPH06180669A (ja) * 1992-12-14 1994-06-28 Nec Niigata Ltd キャッシュシステム
US5497355A (en) * 1994-06-03 1996-03-05 Intel Corporation Synchronous address latching for memory arrays
US5809566A (en) * 1996-08-14 1998-09-15 International Business Machines Corporation Automatic cache prefetch timing with dynamic trigger migration
US6438663B1 (en) * 1996-12-11 2002-08-20 Steeleye Technology, Inc. System and method for identifying shared virtual memory in a computer cluster
US6061774A (en) * 1997-05-23 2000-05-09 Compaq Computer Corporation Limited virtual address aliasing and fast context switching with multi-set virtual cache without backmaps
JP3228182B2 (ja) * 1997-05-29 2001-11-12 株式会社日立製作所 記憶システム及び記憶システムへのアクセス方法
KR100222180B1 (ko) * 1997-06-28 1999-10-01 김영환 비동기전송모드 단말기에서 중앙처리장치가 비동기전송모드응용 계층을 처리하는 장치 및 그 방법
US6493811B1 (en) * 1998-01-26 2002-12-10 Computer Associated Think, Inc. Intelligent controller accessed through addressable virtual space
US6772315B1 (en) * 2001-05-24 2004-08-03 Rambus Inc Translation lookaside buffer extended to provide physical and main-memory addresses
US6839808B2 (en) * 2001-07-06 2005-01-04 Juniper Networks, Inc. Processing cluster having multiple compute engines and shared tier one caches
US7093166B2 (en) * 2002-10-08 2006-08-15 Dell Products L.P. Method and apparatus for testing physical memory in an information handling system under conventional operating systems

Also Published As

Publication number Publication date
US20040117587A1 (en) 2004-06-17
CN1506849A (zh) 2004-06-23
JP2004192615A (ja) 2004-07-08
CN1261884C (zh) 2006-06-28

Similar Documents

Publication Publication Date Title
JP3938370B2 (ja) ハードウェア管理仮想−物理アドレス変換機構
JP5580894B2 (ja) Tlbプリフェッチング
US20040117588A1 (en) Access request for a data processing system having no system memory
JP5528554B2 (ja) ブロックベースの非透過的キャッシュ
JP4447580B2 (ja) 分散共有メモリマルチプロセッサシステムのための分割疎ディレクトリ
US9208084B2 (en) Extended main memory hierarchy having flash memory for page fault handling
TWI603264B (zh) 準確預測記憶體存取之以區域爲基礎的技術
JP3264319B2 (ja) バスブリッジ
US20110161597A1 (en) Combined Memory Including a Logical Partition in a Storage Memory Accessed Through an IO Controller
KR20080023335A (ko) 구성가능한 변환 색인 버퍼를 포함하는 마이크로프로세서
JP2003067357A (ja) 不均一メモリ・アクセス(numa)データ処理システムおよびその操作方法
JP7443344B2 (ja) 外部メモリベースのトランスレーションルックアサイドバッファ
KR100515229B1 (ko) 멀티프로세서 시스템에서 가상화된 물리적 메모리를관리하는 방법 및 시스템
JPH03220644A (ja) コンピユータ装置
US8145870B2 (en) System, method and computer program product for application-level cache-mapping awareness and reallocation
US7017024B2 (en) Data processing system having no system memory
US7721047B2 (en) System, method and computer program product for application-level cache-mapping awareness and reallocation requests
US7093080B2 (en) Method and apparatus for coherent memory structure of heterogeneous processor systems
US20050055528A1 (en) Data processing system having a physically addressed cache of disk memory
US20040117590A1 (en) Aliasing support for a data processing system having no system memory
JP2008512758A (ja) 仮想アドレス・キャッシュに格納されたデータを共用する仮想アドレス・キャッシュ及び方法
US20040117583A1 (en) Apparatus for influencing process scheduling in a data processing system capable of utilizing a virtual memory processing scheme
US20040117589A1 (en) Interrupt mechanism for a data processing system having hardware managed paging of disk data
US20230103230A1 (en) Translation lookaside buffer entry allocation system and method
JP7118827B2 (ja) 情報処理装置、メモリ制御方法およびプログラム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20061018

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061114

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070126

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20070126

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20070129

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070313

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20070314

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070320

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees