JP2002140229A - アプリケーションレベルのメモリ類似性制御 - Google Patents

アプリケーションレベルのメモリ類似性制御

Info

Publication number
JP2002140229A
JP2002140229A JP2001243015A JP2001243015A JP2002140229A JP 2002140229 A JP2002140229 A JP 2002140229A JP 2001243015 A JP2001243015 A JP 2001243015A JP 2001243015 A JP2001243015 A JP 2001243015A JP 2002140229 A JP2002140229 A JP 2002140229A
Authority
JP
Japan
Prior art keywords
memory
physical memory
mapping
node
local
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
Application number
JP2001243015A
Other languages
English (en)
Inventor
Elmootazbellah Nabil Elnozahy
エルムータズベッラー・ナビル・エルノザヒー
Rajamony Ramakrishnan
ラマクリシュナン・ラージャモニー
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 JP2002140229A publication Critical patent/JP2002140229A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)

Abstract

(57)【要約】 (修正有) 【課題】 データ処理システムでメモリを割り振る方法
およびシステムを提供する。 【解決手段】 システムの物理メモリ500を含むシス
テムのハードウェア・リソースを示すMPS構成テーブ
ル510を、ブート・イベントに応答して生成する。そ
の後、MPS構成テーブル510をシステムの物理メモ
リ500の一部だけを識別するように修正する。これに
よって、物理メモリ500の残りの部分が隠蔽され、隠
蔽された部分のオペレーティング・システムによる制御
が行われなくなる。その後、メモリ割振り要求が、その
システムで実行されるアプリケーション・プログラムに
よって開始され、アプリケーション・プログラムによっ
て呼び出されるデバイス・ドライバが、隠蔽された部分
からの物理メモリ500を、割振り要求を満たすために
割り振られるアプリケーション仮想アドレスにマッピン
グする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、全般的にはデータ
処理システムの分野に関し、具体的には、Non-Uniform
Memory Architecture(NUMA)システムでパフォー
マンスを改善する方法およびシステムに関する。
【0002】
【従来の技術】対称型マルチプロセッシング(SMP)
アーキテクチャは、コンピュータ・サーバの設計で広く
使用されている。SMPサーバは、共用バスを介して共
通のシステム・メモリと通信する複数のプロセッサの特
徴がある。共用バスの限られた帯域幅が、SMP計算機
で経済的に配置できるプロセッサの数を制限し、超スケ
ーラブル・サーバを構成する代替技術の使用の動機とな
る。さらに、標準の大容量、バスベースSMPサーバ
が、市場に現れ始め、これによって、構成計算機を基本
的に再エンジニアリングせずに複数の標準ノードからよ
り大きいシステムを構成することが経済的に魅力的にな
る。
【0003】スケーラブルなサーバ計算機を構成するた
めの可能な技術が存在する。その1つが、キャッシュ・
コヒーレントNon-Uniform Memory(ccNUMA)アー
キテクチャであり、このアーキテクチャでは、特殊なメ
モリ・コントローラと高速相互接続スイッチによって、
ノードと称する複数のSMPベース・サーバが接続され
る。このアーキテクチャのプロセッサは、共用メモリ・
バスを介してそのSMPノード内のローカル・メモリに
アクセスし、高速相互接続を介して他のノードに存在す
るリモート・メモリにアクセスする。したがって、ロー
カル・メモリ・アクセスは、リモート・メモリ・アクセ
スより高速である。特殊なメモリ・コントローラでは、
通常は、ディレクトリ構造を使用して、すべてのプロセ
ッサが、一貫性がありコヒーレントな形で共用メモリ・
アクセスを見ることを保証する。その結果が、単一メモ
リ・バスの制約を有しないが、馴染みのある共用メモリ
・プログラミング・モデルが維持される共用メモリ・ア
ーキテクチャである。
【0004】ccNUMAシステムは、変更なしで、S
MP計算機用に記述されたすべてのソフトウェアを実行
しなければならない。しかし、ccNUMAシステム内
で稼動するパフォーマンスに敏感なソフトウェアが、ロ
ーカル・メモリとリモート・メモリのアクセスの間の速
度の不一致のゆえに特殊なチューニングを必要とする場
合がある。アプリケーションが、リモート・メモリへの
アクセスを最小化できるならば望ましい。さらに、ほと
んどのレガシ・オペレーティング・システムは、リモー
ト・メモリ・リソースを意識し、これらを効率的に管理
するようにチューニングしなければならない。したがっ
て、ccNUMAアーキテクチャのパフォーマンス潜在
能力を実現するツールおよび技法の必要が存在する。し
かし、市販のオペレーティング・システムは、通常は、
アプリケーション・プログラムが、物理メモリの指定さ
れた部分をそのアプリケーションのデータの保管専用に
することを可能にするためのリソースを有しない。
【0005】ローカル・キャッシュにリモート・メモリ
からのデータまたは命令がロードされるのを待ってスレ
ッドがしばしばストールする場合、または、プログラム
によって引き起こされる平均メモリ待ち時間がリモート
・アクセスに起因して増加する場合に、ccNUMAシ
ステムのパフォーマンスが低下する。通常、リモート・
メモリへの頻繁なアクセスに関連する問題に対処するた
めには、ハードウェア支援とオペレーティング・システ
ム・サポートの組合せが必要である。オペレーティング
・システム・レベルでのサポートは、スレッドが、それ
が必要とするデータを近くのメモリ・バンク内で見つけ
るようにするために必要である。通常、このサポート
は、メモリ管理モジュール、プロセス管理、入出力サポ
ートなどの、複数のオペレーティング・システム・モジ
ュールに対する単純でない修正を必要とする。結果の変
更は、通常は、複雑であり、これによって、オペレーテ
ィング・システムを保守するコストが増える。さらに、
ハードウェアに複数のサーバ設計点が存在する可能性が
あるので、オペレーティング・システムを修正し、すべ
ての可能な設計実施形態について非常に効率的になるよ
うにチューニングすることは困難である。
【0006】これらの理由から、オペレーティング・シ
ステム供給業者が、NUMAシステムのパフォーマンス
を改善するのに必要な修正を追加することをしぶる場合
がある。たとえば、オペレーティング・システム・ベン
ダが、異なる計算機にまたがって移植可能になるように
努力する場合に、ccNUMA用の特殊化されたサポー
トをオペレーティング・システム・カーネルに追加する
ことが経済的または実現可能であることがわからない場
合がある。その一方で、好ましいハードウェア・プラッ
トホームに束縛されたオペレーティング・システム技術
の供給業者は、大きい先行投資が必要なので、オペレー
ティング・システムの異なる版を維持すること、または
まず第1にNUMAサポートを導入することが高価であ
ることに気付く場合がある。したがって、既製のオペレ
ーティング・システム・サポートを稼動させるNUMA
システムが、アプリケーション・プログラムがそのアプ
リケーションのデータのために割り振られる物理メモリ
・スペースを制御できるようにする機構をサポートする
方法を実施することが非常に望ましい。
【0007】
【発明が解決しようとする課題】
【0008】
【課題を解決するための手段】上で識別された問題は、
データ処理システムでメモリを割り振る方法およびソフ
トウェアによって対処される。当初、システムの物理メ
モリを含むシステムのハードウェア・リソースを示す構
成テーブルを、ブート・イベントに応答して生成する。
生成された構成テーブルが、その後、システムの物理メ
モリの一部だけを識別するように修正され、これによっ
て、物理メモリの残りの部分が予約され、予約された部
分のオペレーティング・システムによる制御が行われな
くなる。その後、メモリ割振り要求が、そのシステムで
実行されるアプリケーション・プログラムによって開始
される。アプリケーション・プログラムによって呼び出
されるデバイス・ドライバが、予約された部分からの物
理メモリを、割振り要求を満たすために割り振られるア
プリケーション仮想アドレスにマッピングする。構成テ
ーブルの修正に、構成テーブル内で少なくとも1つのス
ペース・マッピング項目を生成することを含めることが
できる。スペース・マッピング項目パラメータ値は、シ
ステムに保管される初期化ファイルの情報から導出する
ことができる。アプリケーション・プログラムは、各ノ
ードがそれ自体のローカル・メモリに関連する複数ノー
ド・システムの第1ノードで実行されているものとする
ことができる。この実施形態では、割り振られた物理メ
モリが配置されるノードを、割振り要求から導出するこ
とができ、これによって、物理メモリの指定された部分
のアプリケーション・レベルの割振りが容易になる。
【0009】
【発明の実施の形態】ここで図面を参照すると、図1お
よび図2に、本発明のメモリ類似性制御機能を使用する
のに適するデータ処理システム100の一実施形態が示
されている。図示の実施形態では、データ処理システム
100が、高速のキャッシュ・コヒーレントなスイッチ
104を介して相互接続されるノード102−0、10
2−1、102−2、および102−3(全般的にまた
は集合的にノード102と呼称する)の組を含むNUM
Aシステムとして実施される。各ノード102は、通常
は、複数のマイクロプロセッサ202がシステム・バス
204に接続される対称型マルチプロセッサ・システム
(SMP)として構成される。各ノード102のローカ
ル・メモリ206が、システム・バス204を介してマ
イクロプロセッサ202からアクセス可能である。した
がって、ローカル・メモリ206は、ノード102内の
マイクロプロセッサ202のそれぞれから実質的に等距
離(すなわち等しいアクセス時間)である。
【0010】データ処理システム100の各ノード10
2に、システム・バス204を入出力バス210に接続
するバス・ブリッジ212を含めて、ハード・ディスク
・コントローラ、グラフィックス・アダプタ、高速ネッ
トワーク・アダプタなどを含むさまざまな入出力装置
(図示せず)のいずれかのサポートを提供することがで
きる。入出力バス210は、例として、PCI、IS
A、EISA、およびMCA周辺バスを含むさまざまな
業界標準周辺バスのいずれかに従うものとすることがで
きる。PCIバスは、参照によって本明細書に組み込ま
れる、米国オレゴン州ヒルズバラのPCI Special Intere
st Group(http://www.pcisig.org)から入手できるPCI
Local Bus Specification Rev. 2.2に詳細に示されて
いる。
【0011】一実施形態では、各ノード102に、4つ
のマイクロプロセッサ202と、1GBのローカル・メ
モリ206と、キーボード、マウス、ハード・ディスク
・コントローラ、グラフィックス・アダプタ、ネットワ
ーク・アダプタなどを含む周辺装置の標準セットとが含
まれる。メッシュ・コヒーレンス・ユニット(MCU)
208が、システム・バス204とスイッチ104の間
に接続される。MCU208は、通常は、ノード102
のシステム・バス204をスヌープし、ディレクトリベ
ースのキャッシュ・コヒーレンス・プロトコルを使用し
てノード102間のメモリ・コヒーレンスを拡張する責
任を負う。この配置では、データ処理システム100
は、オペレーティング・システムおよびアプリケーショ
ン・レベルのソフトウェアにとって、4Gバイトのシス
テム・メモリを有する16プロセッサSMPシステムに
見える。
【0012】本発明の諸部分は、ハード・ディスク、C
D ROM、フロッピ・ディスケット、磁気テープ、R
OM、またはシステム・メモリ(RAM)などの適当な
記憶装置上でエンコードされるコンピュータ命令のシー
ケンス(コンピュータ・ソフトウェア)として実施する
ことができる。ここで図3に移ると、データ処理システ
ム100と共に使用されるソフトウェアの選択されたコ
ンポーネントの概念化された図が示されている。図示の
実施形態では、ソフトウェアに、ハードウェア・アブス
トラクション・レイヤ(HAL)308、基本入出力シ
ステム(BIOS)306、オペレーティング・システ
ム304、MAPMEMデバイス・ドライバ303、およびア
プリケーション・プログラム302が含まれる。HAL
308は、基礎となるハードウェアの変動をオペレーテ
ィング・システム304から隠蔽するためにハードウェ
ア製造業者が提供するソフトウェアの薄い層である。H
AL308によって、オペレーティング・システム・ベ
ンダが、オペレーティング・システムが通信するハード
ウェアに固有のオペレーティング・システムの開発から
解放される。HAL308は、デバイス・ドライバが、
ハードウェア・プラットホームに無関係にデバイスをサ
ポートできるようにするルーチンを提供する。HALル
ーチンを、オペレーティング・システムのカーネルか
ら、またはMAPMEMデバイス・ドライバ303などのデバ
イス・ドライバから呼び出すことができる。
【0013】BIOS306は、システム・メモリのサ
イズを含む、データ処理システム100のハードウェア
・コンポーネントを識別する構成テーブルを作成する責
任を負うものとすることができる。これらの構成テーブ
ルは、Intel Corporation社のmultiprocessor specific
ation(MPS)に従うものとすることができる。MP
Sは、参照によって本明細書に組み込まれるMultiProce
ssor Specification,Version 1.4(1999年5月、In
tel)に記載されている。MPSでは、とりわけ、1つ
または複数のシステム・アドレス・スペース・マッピン
グ項目を含めることができるMP構成テーブルのフォー
マットが定義されている。各MPSスペース・マッピン
グ項目では、特定のバス(システム・バス204など)
が指定され、開始アドレス値およびアドレス長さ値が含
まれ、この2つの値によって、指定されたバス上で許可
されるシステム・アドレスの範囲が定義される。システ
ム・バス204が、スペース・マッピング項目によって
指定されるバスである場合に、その項目によって、オペ
レーティング・システム304から使用可能または可視
であるシステム・アドレスの範囲が定義される。
【0014】一実施形態では、HAL308が、MP構
成テーブル内のBIOSによって生成されたシステム・
アドレス・スペース・マッピング項目を修正して、シス
テムの物理メモリの一部を、オペレーティング・システ
ム304に可視のアドレス・スペースから予約する。し
たがって、修正された構成テーブルによって、使用可能
な物理メモリの一部だけを表すシステム・アドレス・ス
ペースが識別される。修正されたテーブルは、オペレー
ティング・システム304のメモリ管理初期化コードに
渡され、このコードが、このテーブルを使用して、オペ
レーティング・システムから使用可能な物理アドレス・
スペースを識別する。実際の物理アドレス・スペースの
一部だけを識別することによって、修正されたスペース
・マッピング項目によって、物理メモリの一部がオペレ
ーティング・システム304から効果的に「隠蔽」され
る。本発明では、この隠蔽されたメモリを使用して、ア
プリケーション・プログラム302がそのアプリケーシ
ョンのデータが保管される物理メモリを直接に制御でき
る方法を提供することが企図されている。アプリケーシ
ョンに、データ・ストレージの宛先としてローカル・メ
モリを指定する能力を与えることによって、本発明で
は、オペレーティング・システムを修正せずにccNU
MAシステムでの高性能動作が可能になる。
【0015】オペレーティング・システム304がWind
ows NT(登録商標)またはMicrosoft社の他の適当なWin
dows(登録商標)ファミリ・オペレーティング・システ
ムである本発明の実施形態では、HAL308が、デー
タ処理システム100のboot.iniファイルで指定される
さまざまなオプションを構文解析する責任を負うものと
することができる。図4を参照すると、本発明と共に使
用するのに適するboot.iniファイルの一部が示されてい
る。図示の例では、boot.iniファイル400に、ブート
選択(BS)コマンド402が含まれ、このBSコマン
ド402によって、データ処理システム100のルート
・ディレクトリが識別されて、システムが、指定された
ディレクトリに常駐するファイルをロードすることによ
ってブート処理を完了できるようになる。本発明とあい
まって、BSコマンド402に、MAXMEMパラメー
タ・オプションの次にパラメータ値のリストが含まれ
る。従来の実施形態では、MAXMEMステートメント
に、オペレーティング・システム304から使用可能な
物理メモリの量を指定する単一の整数パラメータだけが
含まれる。従来の実施形態では、オペレーティング・シ
ステム304に可視のシステム・アドレス・スペース
は、物理アドレス・スペース0から物理アドレス・スペ
ースMAXMEMまで延びる単一の連続アドレス・スペ
ースである。しかし、図示の実施形態では、HAL30
8が、MAXMEMオプション値を構文解析して、シス
テムの構成テーブル内の修正されたスペース・マッピン
グ項目を作成する。
【0016】本発明の一実施形態によるMAXMEMオ
プションには、複数ノード・システム上のノードの数を
示す値と、システム・アドレス・スペースにマッピング
される各ノード上の物理メモリの量とを含むパラメータ
のリストを含めることができる。図示の例では、boot.i
niファイル400のBSコマンド402のMAXMEM
オプションで、合計2048MBがオペレーティング・
システムから使用可能であり、その2048Mバイトが
4つのノードの間で均等に分割されることが示されてい
る。本発明の一実施形態では、HAL308が、BIO
Sが生成したシステム構成テーブルを修正して、boot.i
niファイル400で指定されたパラメータ・リストとの
一貫性を有するようにスペース・マッピングを分配す
る。図5に示されているように、BSコマンド402に
よって、HAL308に対して、データ処理システム1
00に合計4つのノードが含まれることと、オペレーテ
ィング・システムに可視の512MBの物理メモリがノ
ードのそれぞれに配置されることが識別される。この実
施形態では、HAL308が、システム構成テーブルを
修正して、各ノードからの512MBの物理メモリをシ
ステム・アドレス・スペースにマッピングすることがで
きる。
【0017】次に図5を参照すると、boot.iniファイル
400の図示の例のBSコマンド402によって提案さ
れるスペース・マッピングが示されている。この図で
は、データ処理システム100の物理メモリ500が、
左側に示され、MPS互換構成テーブル510が、右側
に示されている。物理メモリ500には、ノードのそれ
ぞれからのローカル・メモリ206が含まれる。したが
って、ノード102−0からのローカル・メモリ206
は、図5では符号206−0によって表され、第2のノ
ード102−1からのローカル・メモリ206は、符号
206−1によって示され、以下同様である。図示の例
では、HAL308が、boot.iniファイル400のBS
コマンド402を解釈し、システム・アドレス・スペー
ス・マッピング項目512−0、512−1、512−
2、および512−3(全般的にまたは集合的にシステ
ム・アドレス・スペース・マッピング項目512と呼称
する)の組を作成することによってMPS互換構成テー
ブル510を修正する。各システム・アドレス・スペー
ス・マッピング項目512によって、各ノード102か
らの物理メモリ500の512MBブロックが、システ
ム・アドレス・スペースにマッピングされる。この実施
形態では、オペレーティング・システム304に可視の
システム・アドレス・スペースに、4つのノード102
のそれぞれからのメモリの512MBが含まれる。各ノ
ード102に1GBの物理メモリが含まれる場合には、
各ノードからの物理メモリの512MBが、オペレーテ
ィング・システムから隠蔽されることを諒解されたい
(各ノード102内の隠蔽されたメモリは、図5では、
符号530によって表され、隠蔽されないメモリまたは
共用メモリは、符号520によって識別される)。boo
t.iniファイル400のBSコマンド402のオプショ
ン・パラメータ値を変更することによって、ユーザが、
データ処理システム100のノード102のそれぞれの
共用メモリおよび隠蔽されたメモリの量をカスタマイズ
することができる。
【0018】各ローカル・メモリ206の隠蔽されたメ
モリ部分530は、オペレーティング・システム304
のカーネルに対して不可視である。その結果、カーネル
・データ構造ならびにすべてのアプリケーション・メモ
リが、物理メモリの共用部分520だけに配置される。
さらに、隠蔽されたメモリは、オペレーティング・シス
テムによって開始される再マッピングの対象にならな
い。一実施形態では、本発明は、MAPMEMデバイス・ドラ
イバ303(図3)を使用して、ローカル・メモリ20
6の隠蔽されたメモリ部分530を管理し、これにアク
セスする。MAPMEMデバイス・ドライバ303は、当初
は、HAL308に照会して、データ処理システム10
0内の物理メモリの実際の量を判定する。その後、MAPM
EMデバイス・ドライバ303は、データ処理システム1
00の隠蔽されたメモリ部分530を、メモリマップ・
デバイスであるかのように管理する。通常、Windows NT
(登録商標)などの市販オペレーティング・システムに
は、高速データ転送を可能にするためにデバイス(入出
力)物理メモリをアプリケーションの仮想メモリ・スペ
ースに直接にマッピングするサポート・ルーチンが含ま
れる。本発明の一実施形態によるMAPMEMデバイス・ドラ
イバ303は、そのような機能を利用して、隠蔽された
メモリ部分530の割振りを制御する。
【0019】アプリケーション・プログラム302に、
IOCTLコマンドを使用する、MAPMEMデバイス・ドラ
イバ303への直接の呼び出しを含めることができ、そ
の代わりに、MAPMEMデバイス・ドライバ303を呼び出
すユーザ・レベル・ライブラリ・コマンド(本明細書で
はNUMALLOCと呼称する)を含めることができ
る。MAPMEMデバイス・ドライバ303は、通常は、オペ
レーティング・システム304のカーネル・エントリ・
ポイントにアクセスして、隠蔽されたメモリの割振りの
要求を開始したスレッドの識別を判定することができ
る。一実施形態では、MAPMEMデバイス・ドライバ303
が、要求されたメモリが割り振られるノードを示す第1
の値と、要求されたメモリの量を示す第2の値とを要求
する。MAPMEMデバイス・ドライバ303は、通常は、要
求元に割り振られる要求されたノード上の物理アドレス
を判定する責任を負う。割振り要求に関する適当な物理
アドレス範囲を判定した後に、MAPMEMデバイス・ドライ
バ303は、判定された物理アドレス範囲を、Windows
NT(登録商標)のMmMapIoSpaceカーネル呼出しなどの適
当なマッピング機能を介してアプリケーションの仮想ア
ドレス・スペースにマッピングすることができる。オペ
レーティング・システムは、通常は、高速データ転送を
可能にするためにアプリケーションがデバイス(入出
力)スペースをその仮想アドレス・スペースに直接にマ
ッピングできるようにするために、そのような機能を提
供する。したがって、本発明は、オペレーティング・シ
ステムによって提供される既存の機能性を使用して、カ
スタマイズされたメモリ割振りをアプリケーションに与
えることができる。割り振られたメモリがもはや必要で
なくなった時に、MAPMEMデバイス・ドライバ303は、
アプリケーション・プログラム302に頼って、マッピ
ングされたメモリがもはや必要でなくなる時を知ること
ができる。代替案では、MAPMEMデバイス・ドライバ30
3が、PsSetCreateProcessNotifyRoutineまたは他の互
換性のある機能を使用して、メモリが割り振られたスレ
ッドが終了した時にMAPMEMデバイス・ドライバ303に
知らせることをオペレーティング・システム304に強
制することができる。
【0020】MAPMEMデバイス・ドライバ303は、アプ
リケーション・プログラム302に、物理メモリ内でデ
ータが配置される場所に対する直接制御を与える。アプ
リケーション・プログラム302自体、またはMAPMEMデ
バイス・ドライバ303のためのシェルを提供するユー
ザ・レベル・ライブラリ関数は、特定の物理メモリを割
り振って、スレッドとのそのデータ構造の間の類似性を
作成することができる。スレッドを特定の1つまたは複
数のプロセッサにバインドする既存の能力と組み合わさ
れた、スレッドのためのメモリを割り振る能力によっ
て、スレッドが特定のノード102上で実行されること
と、そのスレッドによって使用されるメモリがそのノー
ドに対してローカルであることをアプリケーション開発
者が保証できるようになる。この割り振られるメモリ
は、オペレーティング・システムによって割り振られる
メモリが、オペレーティング・システム304に不可視
の隠蔽されたメモリ部分530からのものであるから、
ページングまたは移動の対象にならない。したがって、
アプリケーション・プログラムは、非アクティブの期間
の後の「ウェイクアップ」処理の対象にならない。
【0021】本明細書に記載の隠蔽されたメモリの割振
りは、メモリ割振りポリシに従って実行される。メモリ
割振りポリシは、グローバルに定義するか、アプリケー
ション・プログラム開発者が直接に指定することができ
る。メモリ割振りポリシによって、システムに、メモリ
を割り振る形が知らされる。ローカル・メモリ割振りポ
リシでは、たとえば、メモリ割振り要求が、割振りを要
求するスレッドがその上で実行中のノードに対してロー
カルである隠蔽されたメモリに対するメモリ割振りをも
たらす。ローカル・メモリ割振りポリシは、主に割振り
要求を開始したスレッドによって使用されるメモリの割
振りに適する。メモリ割振り要求が、さまざまなノード
に常駐する可能性がある複数のスレッドによってかなり
均等に使用されるメモリについて開始される場合には、
ストライプ・メモリ割振りポリシ(striped memory all
ocation policy)が最も適する可能性がある。ストライ
プ割振りポリシでは、アドレス・スペースのブロック
が、ノードの間で回転式に割り振られ、割り振られるメ
モリのほぼ等しい部分の1部分が、ノードのそれぞれに
常駐する。ストライプ・ポリシでは、たとえば、メモリ
・スペースの連続するページのそれぞれを、システム内
の異なるノードにラウンド・ロビン式に割り振ることが
できる。さらに、各ストライプ(ストライド)のサイズ
を、ユーザ指定によって変更することができ、たとえ
ば、サイズが4ページのメモリのブロックを、ノードの
間で割り振ることができる。
【0022】一実施形態では、メモリ・ポリシのグロー
バル指定を使用して、SMPシステム用に記述されたソ
フトウェアにメモリ割振り類似性を課すことができる。
たとえば、既存のソフトウェアで、従来のMALLOCライブ
ラリ呼出しを使用してメモリを割り振る場合に、本発明
の一実施形態では、すべてのMALLOCを、グローバルに指
定された割振りポリシに従って実行されるNUMALLOCに変
換することができる。代替案では、アプリケーション・
プログラマが、ソース・コードにNUMALLOC(または直接
のMAPMEMデバイス・ドライバ呼出し)を含めることによ
って、メモリ類似性ポリシを能動的に制御することがで
きる。
【0023】この開示の利益を有する当業者には、本発
明が、アプリケーションが物理メモリの指定された部分
を割り振ることを可能にすることによって、非NUMA
対応オペレーティング・システムに関する改善されたN
UMAパフォーマンスを企図していることが明白であろ
う。詳細な説明および図面に示され、説明された本発明
の形態が、単に好ましい例を提示するものと解釈されな
ければならないことを理解されたい。請求の範囲は、開
示された好ましい実施例のすべての変形形態を含むもの
として広義に解釈されることが意図されている。
【0024】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0025】(1)データ処理システムであって、少な
くとも1つのプロセッサおよび前記プロセッサからアク
セス可能な物理メモリと、オペレーティング・システム
が前記物理メモリの隠蔽された部分にアクセスしないよ
うにするために、前記オペレーティング・システムから
前記物理メモリの部分を隠蔽するように構成されたハー
ドウェア・アブストラクション・レイヤ(HAL)コー
ドと、アプリケーション・プログラムからのメモリ割振
り要求に応答して、前記アプリケーション・プログラム
の仮想アドレス・スペースに物理メモリの前記隠蔽され
た部分からの物理メモリをマッピングするように構成さ
れたデバイス・ドライバ・コードとを含むデータ処理シ
ステム。 (2)前記HALコードが、前記システムがブートされ
る時にBIOSによって生成される構成テーブルを修正
することによって、前記物理メモリの部分を隠蔽するよ
うに構成される、上記(1)に記載のシステム。 (3)前記HALコードが、前記構成テーブル内で少な
くとも1つのスペース・マッピング項目を生成すること
によって、前記構成テーブルを修正するように構成され
る、上記(2)に記載のシステム。 (4)HALコードが、前記システムに保管される初期
化ファイル内の情報から前記スペース・マッピング項目
のパラメータを判定するように構成される、上記(3)
に記載のシステム。 (5)前記システムが、複数のノードを含み、各ノード
が、前記物理メモリの対応するローカル部分に関連し、
さらに、前記デバイス・ドライバが、割振り要求元がそ
の上で実行中であるノードの判定に基づいて複数のロー
カル・メモリ部分の1つを選択することと、前記選択さ
れたローカル・メモリ部分から物理メモリをマッピング
することとによって前記物理メモリをマッピングするよ
うに構成される、上記(1)に記載のシステム。 (6)前記アプリケーション・プログラムが、前記物理
メモリがそこからマッピングされる前記ローカル・メモ
リ部分に関連するノードおよび要求されるメモリの量を
指定する、上記(5)に記載のシステム。 (7)前記デバイス・ドライバが、前記アプリケーショ
ン・プログラムがその上で実行されているノードに常駐
する前記物理メモリのローカル部分を選択するように構
成される、上記(5)に記載のシステム。 (8)前記システムが、複数のノードを含み、各ノード
が、前記物理メモリの対応するローカル部分に関連し、
さらに、物理メモリの前記マッピングが、前記ローカル
・メモリ部分のそれぞれの部分のマッピングを含む、上
記(1)に記載のシステム。 (9)データ処理システムでメモリを割り振る方法であ
って、オペレーティング・システムが前記システムの物
理メモリの隠蔽された部分にアクセスしないようにする
ために、前記オペレーティング・システムから前記シス
テムの物理メモリの部分を隠蔽するステップと、メモリ
割振り要求を開始するステップと、前記割振り要求を満
足するために、前記隠蔽された部分からの物理メモリを
要求元の仮想アドレス・スペースにマッピングするステ
ップとを含む方法。 (10)前記物理メモリの部分を隠蔽するステップが、
前記システムがブートされる時に生成される構成テーブ
ルを修正するステップを含む、上記(9)に記載の方
法。 (11)前記構成テーブルを修正するステップが、前記
構成テーブル内で少なくとも1つのスペース・マッピン
グ項目を生成するステップを含む、上記(10)に記載
の方法。 (12)前記スペース・マッピング項目のパラメータ
が、前記システムに保管される初期化ファイル内の情報
から導出される、上記(11)に記載の方法。 (13)前記データ処理システムが、複数のノードを含
み、各ノードが、前記物理メモリの対応するローカル部
分に関連し、さらに、物理メモリをマッピングする前記
ステップが、メモリ割振り要求元がその上で実行中であ
るノードの判定に基づいて複数のローカル・メモリ部分
の1つを選択するステップと、前記物理メモリの前記選
択されたローカル・メモリ部分の隠蔽された部分をマッ
ピングするステップとを含む、上記(9)に記載の方
法。 (14)割振り要求を開始するステップが、前記物理メ
モリがそこからマッピングされる前記ローカル・メモリ
部分に関連するノードを指定するステップと、要求され
るメモリの量を指定するステップとを含む、上記(1
3)に記載の方法。 (15)前記選択されたローカル・メモリ部分が、前記
割振り要求元がその上で実行されているノードに常駐す
る、上記(13)に記載の方法。 (16)前記データ処理システムが、複数のノードを含
み、各ノードが、前記物理メモリの対応するローカル部
分に関連し、さらに、物理メモリをマッピングする前記
ステップが、前記ローカル・メモリ部分のそれぞれの部
分をマッピングするステップを含む、上記(9)に記載
の方法。 (17)記憶媒体上で構成されたマイクロプロセッサ実
行可能命令のシーケンスを含むコンピュータ・プログラ
ム製品であって、前記命令が、オペレーティング・シス
テムが前記物理メモリの隠蔽された部分にアクセスしな
いようにするために、前記オペレーティング・システム
から前記物理メモリの部分を隠蔽するように構成された
ハードウェア・アブストラクション・レイヤ(HAL)
コードと、アプリケーション・プログラムからのメモリ
割振り要求に応答して、前記アプリケーション・プログ
ラムの仮想アドレス・スペースに物理メモリの前記隠蔽
された部分からの物理メモリをマッピングするように構
成されたデバイス・ドライバ・コードとを含む、コンピ
ュータ・プログラム製品。 (18)前記HALコードが、システムがブートされる
時にBIOSによって生成される構成テーブルを修正す
ることによって、前記物理メモリの部分を隠蔽するよう
に構成される、上記(17)に記載のコンピュータ・プ
ログラム製品。 (19)前記HALコードが、前記構成テーブル内で少
なくとも1つのスペース・マッピング項目を生成するこ
とによって、前記構成テーブルを修正するように構成さ
れる、上記(18)に記載のコンピュータ・プログラム
製品。 (20)HALコードが、前記システムに保管される初
期化ファイル内の情報から前記スペース・マッピング項
目のパラメータを判定するように構成される、上記(1
9)に記載のコンピュータ・プログラム製品。 (21)前記システムが、複数のノードを含み、各ノー
ドが、前記物理メモリの対応するローカル部分に関連
し、さらに、前記デバイス・ドライバが、割振り要求元
がその上で実行中であるノードの判定に基づいて複数の
ローカル・メモリ部分の1つを選択することと、前記選
択されたローカル・メモリ部分から物理メモリをマッピ
ングすることとによって前記物理メモリをマッピングす
るように構成される、上記(17)に記載のコンピュー
タ・プログラム製品。 (22)前記アプリケーション・プログラムが、前記物
理メモリがそこからマッピングされる前記ローカル・メ
モリ部分に関連するノードおよび要求されるメモリの量
を指定する、上記(21)に記載のコンピュータ・プロ
グラム製品。 (23)前記デバイス・ドライバが、前記アプリケーシ
ョン・プログラムがその上で実行されているノードに常
駐する前記物理メモリのローカル部分を選択するように
構成される、上記(21)に記載のコンピュータ・プロ
グラム製品。 (24)前記システムが、複数のノードを含み、各ノー
ドが、前記物理メモリの対応するローカル部分に関連
し、さらに、物理メモリの前記マッピングが、前記ロー
カル・メモリ部分のそれぞれの部分のマッピングを含
む、上記(17)に記載のコンピュータ・プログラム製
品。
【図面の簡単な説明】
【図1】NUMAデータ処理システムの一実施形態のブ
ロック図である。
【図2】図1のデータ処理システムのノードの一実施形
態のブロック図である。
【図3】本発明の一実施形態による、データ処理システ
ムの選択されたソフトウェア・コンポーネントを概念的
に表す図である。
【図4】本発明の一実施形態と共に使用するのに適する
初期化ファイルの選択された部分を示す図である。
【図5】本発明の一実施形態による、オペレーティング
・システムによってアクセス可能なシステム・アドレス
・スペースへの物理メモリのマッピングを示す図であ
る。
【符号の説明】
302 アプリケーション・プログラム 303 MAPMEMデバイス・ドライバ 304 オペレーティング・システム 306 基本入出力システム(BIOS) 308 ハードウェア・アブストラクション・レイヤ
(HAL) 400 boot.iniファイル 402 ブート選択(BS)コマンド 500 物理メモリ 510 MPS互換構成テーブル 512 システム・アドレス・スペース・マッピング項
目 512−0 システム・アドレス・スペース・マッピン
グ項目 512−1 システム・アドレス・スペース・マッピン
グ項目 512−2 システム・アドレス・スペース・マッピン
グ項目 512−3 システム・アドレス・スペース・マッピン
グ項目 520 共用メモリ部分 530 隠蔽されたメモリ部分
───────────────────────────────────────────────────── フロントページの続き (72)発明者 エルムータズベッラー・ナビル・エルノザ ヒー アメリカ合衆国78750 テキサス州オース ティン ボトルブラシ・ドライブ 8114 (72)発明者 ラマクリシュナン・ラージャモニー アメリカ合衆国78759 テキサス州オース ティン デュヴァル・ロード 3625 アパ ートメント835 Fターム(参考) 5B045 DD02 5B060 AA06 AA12 AB26 AC01 KA01 KA02 KA10

Claims (24)

    【特許請求の範囲】
  1. 【請求項1】データ処理システムであって、 少なくとも1つのプロセッサおよび前記プロセッサから
    アクセス可能な物理メモリと、 オペレーティング・システムが前記物理メモリの隠蔽さ
    れた部分にアクセスしないようにするために、前記オペ
    レーティング・システムから前記物理メモリの部分を隠
    蔽するように構成されたハードウェア・アブストラクシ
    ョン・レイヤ(HAL)コードと、 アプリケーション・プログラムからのメモリ割振り要求
    に応答して、前記アプリケーション・プログラムの仮想
    アドレス・スペースに物理メモリの前記隠蔽された部分
    からの物理メモリをマッピングするように構成されたデ
    バイス・ドライバ・コードとを含むデータ処理システ
    ム。
  2. 【請求項2】前記HALコードが、前記システムがブー
    トされる時にBIOSによって生成される構成テーブル
    を修正することによって、前記物理メモリの部分を隠蔽
    するように構成される、請求項1に記載のシステム。
  3. 【請求項3】前記HALコードが、前記構成テーブル内
    で少なくとも1つのスペース・マッピング項目を生成す
    ることによって、前記構成テーブルを修正するように構
    成される、請求項2に記載のシステム。
  4. 【請求項4】HALコードが、前記システムに保管され
    る初期化ファイル内の情報から前記スペース・マッピン
    グ項目のパラメータを判定するように構成される、請求
    項3に記載のシステム。
  5. 【請求項5】前記システムが、複数のノードを含み、各
    ノードが、前記物理メモリの対応するローカル部分に関
    連し、さらに、前記デバイス・ドライバが、 割振り要求元がその上で実行中であるノードの判定に基
    づいて複数のローカル・メモリ部分の1つを選択するこ
    とと、 前記選択されたローカル・メモリ部分から物理メモリを
    マッピングすることとによって前記物理メモリをマッピ
    ングするように構成される、請求項1に記載のシステ
    ム。
  6. 【請求項6】前記アプリケーション・プログラムが、前
    記物理メモリがそこからマッピングされる前記ローカル
    ・メモリ部分に関連するノードおよび要求されるメモリ
    の量を指定する、請求項5に記載のシステム。
  7. 【請求項7】前記デバイス・ドライバが、前記アプリケ
    ーション・プログラムがその上で実行されているノード
    に常駐する前記物理メモリのローカル部分を選択するよ
    うに構成される、請求項5に記載のシステム。
  8. 【請求項8】前記システムが、複数のノードを含み、各
    ノードが、前記物理メモリの対応するローカル部分に関
    連し、さらに、物理メモリの前記マッピングが、前記ロ
    ーカル・メモリ部分のそれぞれの部分のマッピングを含
    む、請求項1に記載のシステム。
  9. 【請求項9】データ処理システムでメモリを割り振る方
    法であって、 オペレーティング・システムが前記システムの物理メモ
    リの隠蔽された部分にアクセスしないようにするため
    に、前記オペレーティング・システムから前記システム
    の物理メモリの部分を隠蔽するステップと、 メモリ割振り要求を開始するステップと、 前記割振り要求を満足するために、前記隠蔽された部分
    からの物理メモリを要求元の仮想アドレス・スペースに
    マッピングするステップとを含む方法。
  10. 【請求項10】前記物理メモリの部分を隠蔽するステッ
    プが、前記システムがブートされる時に生成される構成
    テーブルを修正するステップを含む、請求項9に記載の
    方法。
  11. 【請求項11】前記構成テーブルを修正するステップ
    が、前記構成テーブル内で少なくとも1つのスペース・
    マッピング項目を生成するステップを含む、請求項10
    に記載の方法。
  12. 【請求項12】前記スペース・マッピング項目のパラメ
    ータが、前記システムに保管される初期化ファイル内の
    情報から導出される、請求項11に記載の方法。
  13. 【請求項13】前記データ処理システムが、複数のノー
    ドを含み、各ノードが、前記物理メモリの対応するロー
    カル部分に関連し、さらに、物理メモリをマッピングす
    る前記ステップが、 メモリ割振り要求元がその上で実行中であるノードの判
    定に基づいて複数のローカル・メモリ部分の1つを選択
    するステップと、 前記物理メモリの前記選択されたローカル・メモリ部分
    の隠蔽された部分をマッピングするステップとを含む、
    請求項9に記載の方法。
  14. 【請求項14】割振り要求を開始するステップが、前記
    物理メモリがそこからマッピングされる前記ローカル・
    メモリ部分に関連するノードを指定するステップと、要
    求されるメモリの量を指定するステップとを含む、請求
    項13に記載の方法。
  15. 【請求項15】前記選択されたローカル・メモリ部分
    が、前記割振り要求元がその上で実行されているノード
    に常駐する、請求項13に記載の方法。
  16. 【請求項16】前記データ処理システムが、複数のノー
    ドを含み、各ノードが、前記物理メモリの対応するロー
    カル部分に関連し、さらに、物理メモリをマッピングす
    る前記ステップが、前記ローカル・メモリ部分のそれぞ
    れの部分をマッピングするステップを含む、請求項9に
    記載の方法。
  17. 【請求項17】記憶媒体上で構成されたマイクロプロセ
    ッサ実行可能命令のシーケンスを含むコンピュータ・プ
    ログラム製品であって、前記命令が、 オペレーティング・システムが前記物理メモリの隠蔽さ
    れた部分にアクセスしないようにするために、前記オペ
    レーティング・システムから前記物理メモリの部分を隠
    蔽するように構成されたハードウェア・アブストラクシ
    ョン・レイヤ(HAL)コードと、 アプリケーション・プログラムからのメモリ割振り要求
    に応答して、前記アプリケーション・プログラムの仮想
    アドレス・スペースに物理メモリの前記隠蔽された部分
    からの物理メモリをマッピングするように構成されたデ
    バイス・ドライバ・コードとを含む、コンピュータ・プ
    ログラム製品。
  18. 【請求項18】前記HALコードが、システムがブート
    される時にBIOSによって生成される構成テーブルを
    修正することによって、前記物理メモリの部分を隠蔽す
    るように構成される、請求項17に記載のコンピュータ
    ・プログラム製品。
  19. 【請求項19】前記HALコードが、前記構成テーブル
    内で少なくとも1つのスペース・マッピング項目を生成
    することによって、前記構成テーブルを修正するように
    構成される、請求項18に記載のコンピュータ・プログ
    ラム製品。
  20. 【請求項20】HALコードが、前記システムに保管さ
    れる初期化ファイル内の情報から前記スペース・マッピ
    ング項目のパラメータを判定するように構成される、請
    求項19に記載のコンピュータ・プログラム製品。
  21. 【請求項21】前記システムが、複数のノードを含み、
    各ノードが、前記物理メモリの対応するローカル部分に
    関連し、さらに、前記デバイス・ドライバが、 割振り要求元がその上で実行中であるノードの判定に基
    づいて複数のローカル・メモリ部分の1つを選択するこ
    とと、 前記選択されたローカル・メモリ部分から物理メモリを
    マッピングすることとによって前記物理メモリをマッピ
    ングするように構成される、請求項17に記載のコンピ
    ュータ・プログラム製品。
  22. 【請求項22】前記アプリケーション・プログラムが、
    前記物理メモリがそこからマッピングされる前記ローカ
    ル・メモリ部分に関連するノードおよび要求されるメモ
    リの量を指定する、請求項21に記載のコンピュータ・
    プログラム製品。
  23. 【請求項23】前記デバイス・ドライバが、前記アプリ
    ケーション・プログラムがその上で実行されているノー
    ドに常駐する前記物理メモリのローカル部分を選択する
    ように構成される、請求項21に記載のコンピュータ・
    プログラム製品。
  24. 【請求項24】前記システムが、複数のノードを含み、
    各ノードが、前記物理メモリの対応するローカル部分に
    関連し、さらに、物理メモリの前記マッピングが、前記
    ローカル・メモリ部分のそれぞれの部分のマッピングを
    含む、請求項17に記載のコンピュータ・プログラム製
    品。
JP2001243015A 2000-08-17 2001-08-09 アプリケーションレベルのメモリ類似性制御 Pending JP2002140229A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/640,541 US6701421B1 (en) 2000-08-17 2000-08-17 Application-level memory affinity control
US09/640541 2000-08-17

Publications (1)

Publication Number Publication Date
JP2002140229A true JP2002140229A (ja) 2002-05-17

Family

ID=24568668

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001243015A Pending JP2002140229A (ja) 2000-08-17 2001-08-09 アプリケーションレベルのメモリ類似性制御

Country Status (3)

Country Link
US (1) US6701421B1 (ja)
JP (1) JP2002140229A (ja)
TW (1) TW544576B (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005196348A (ja) * 2004-01-05 2005-07-21 Seiko Epson Corp 情報表示装置及びその制御方法並びに情報表示プログラム
JP2006003972A (ja) * 2004-06-15 2006-01-05 Nec Corp プロセス配置装置、プロセス配置方法及びプロセス配置プログラム
JP2009048613A (ja) * 2007-08-14 2009-03-05 Samsung Electronics Co Ltd ソリッドステートメモリ、それを含むコンピュータシステム及びその動作方法
JP2011526714A (ja) * 2008-07-02 2011-10-13 ヒューレット・パッカード・カンパニー ハイパーバイザ・ローディングのためのメモリ管理
EP2778918A2 (en) 2013-03-14 2014-09-17 Fujitsu Limited Information processing apparatus, program, and memory area allocation method
US8843742B2 (en) 2008-08-26 2014-09-23 Hewlett-Packard Company Hypervisor security using SMM
EP2975520A1 (en) 2014-07-18 2016-01-20 Fujitsu Limited Information processing device, control method of information processing device and control program of information processing device
JP2016057797A (ja) * 2014-09-09 2016-04-21 日本電気株式会社 診断プログラム実行装置、診断プログラム実行システム、診断プログラム実行方法、及び、診断プログラム実行プログラム

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7403952B2 (en) * 2000-12-28 2008-07-22 International Business Machines Corporation Numa system resource descriptors including performance characteristics
US6832304B2 (en) * 2002-01-17 2004-12-14 Dell Products L.P. System, method and computer program product for mapping system memory in a multiple node information handling system
US6792520B2 (en) * 2002-08-07 2004-09-14 Hewlett-Packard Development Company, L.P. System and method for using a using vendor-long descriptor in ACPI for the chipset registers
US8805981B2 (en) * 2003-03-25 2014-08-12 Advanced Micro Devices, Inc. Computing system fabric and routing configuration and description
US8041915B1 (en) * 2003-06-11 2011-10-18 Globalfoundries Inc. Faster memory access in non-unified memory access systems
US7426622B2 (en) * 2004-03-10 2008-09-16 Hewlett-Packard Development Company, L.P. Rapid locality selection for efficient memory allocation
US7330955B2 (en) * 2004-10-18 2008-02-12 Seagate Technology Llc Recovery record for updating a system configuration
US20060200414A1 (en) * 2005-02-14 2006-09-07 Roberts Henry A Jr Methods of copy protecting software stored on portable memory
US20060294300A1 (en) * 2005-06-22 2006-12-28 Seagate Technology Llc Atomic cache transactions in a distributed storage system
US7353340B2 (en) * 2005-08-17 2008-04-01 Sun Microsystems, Inc. Multiple independent coherence planes for maintaining coherency
US7529894B2 (en) * 2005-08-17 2009-05-05 Sun Microsystems, Inc. Use of FBDIMM channel as memory channel and coherence channel
US7398360B2 (en) * 2005-08-17 2008-07-08 Sun Microsystems, Inc. Multi-socket symmetric multiprocessing (SMP) system for chip multi-threaded (CMT) processors
US8806166B2 (en) * 2005-09-29 2014-08-12 International Business Machines Corporation Memory allocation in a multi-node computer
US8489700B2 (en) * 2005-11-30 2013-07-16 International Business Machines Corporation Analysis of nodal affinity behavior
US7966355B2 (en) * 2007-02-13 2011-06-21 Modu Ltd. Interface for extending functionality of memory cards
US7949850B2 (en) * 2007-12-28 2011-05-24 Intel Corporation Methods and appratus for demand-based memory mirroring
US8301717B2 (en) * 2009-06-09 2012-10-30 Deshpande Enterprises, Inc. Extended virtual memory system and method in a computer cluster
US9684600B2 (en) 2011-11-30 2017-06-20 International Business Machines Corporation Dynamic process/object scoped memory affinity adjuster
CN107145388B (zh) * 2017-05-25 2020-10-30 深信服科技股份有限公司 一种多任务环境下任务调度方法及***
US11567803B2 (en) 2019-11-04 2023-01-31 Rambus Inc. Inter-server memory pooling

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5897658A (en) * 1996-11-26 1999-04-27 International Business Machines Corporation Method and apparatus for protecting portions of memory by providing access requests to a communications area for processing by a hidden server

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005196348A (ja) * 2004-01-05 2005-07-21 Seiko Epson Corp 情報表示装置及びその制御方法並びに情報表示プログラム
JP4535784B2 (ja) * 2004-06-15 2010-09-01 日本電気株式会社 プロセス配置装置、プロセス配置方法及びプロセス配置プログラム
JP2006003972A (ja) * 2004-06-15 2006-01-05 Nec Corp プロセス配置装置、プロセス配置方法及びプロセス配置プログラム
US9208079B2 (en) 2007-08-14 2015-12-08 Samsung Electronics Co., Ltd. Solid state memory (SSM), computer system including an SSM, and method of operating an SSM
US8626996B2 (en) 2007-08-14 2014-01-07 Samsung Electronics Co., Ltd. Solid state memory (SSM), computer system including an SSM, and method of operating an SSM
KR101498673B1 (ko) * 2007-08-14 2015-03-09 삼성전자주식회사 반도체 드라이브, 그것의 데이터 저장 방법, 그리고 그것을포함한 컴퓨팅 시스템
JP2009048613A (ja) * 2007-08-14 2009-03-05 Samsung Electronics Co Ltd ソリッドステートメモリ、それを含むコンピュータシステム及びその動作方法
JP2011526714A (ja) * 2008-07-02 2011-10-13 ヒューレット・パッカード・カンパニー ハイパーバイザ・ローディングのためのメモリ管理
US9286080B2 (en) 2008-07-02 2016-03-15 Hewlett-Packard Development Company, L.P. Memory management for hypervisor loading
US8843742B2 (en) 2008-08-26 2014-09-23 Hewlett-Packard Company Hypervisor security using SMM
EP2778918A2 (en) 2013-03-14 2014-09-17 Fujitsu Limited Information processing apparatus, program, and memory area allocation method
EP2975520A1 (en) 2014-07-18 2016-01-20 Fujitsu Limited Information processing device, control method of information processing device and control program of information processing device
US9697123B2 (en) 2014-07-18 2017-07-04 Fujitsu Limited Information processing device, control method of information processing device and control program of information processing device
JP2016057797A (ja) * 2014-09-09 2016-04-21 日本電気株式会社 診断プログラム実行装置、診断プログラム実行システム、診断プログラム実行方法、及び、診断プログラム実行プログラム

Also Published As

Publication number Publication date
TW544576B (en) 2003-08-01
US6701421B1 (en) 2004-03-02

Similar Documents

Publication Publication Date Title
JP2002140229A (ja) アプリケーションレベルのメモリ類似性制御
US9836409B2 (en) Seamless application access to hybrid main memory
US6105053A (en) Operating system for a non-uniform memory access multiprocessor system
JP5170782B2 (ja) ヘテロジニアス処理ユニットのための集中デバイス仮想化レイヤ
US6049853A (en) Data replication across nodes of a multiprocessor computer system
US8627040B2 (en) Processor-bus-connected flash storage paging device using a virtual memory mapping table and page faults
JP5235989B2 (ja) 仮想マシンのメモリを管理するためのシステム、方法、及びコンピュータ・プログラム
JP5507660B2 (ja) 仮想マシン用非一様仮想メモリーアーキテクチャー
Schüpbach et al. Embracing diversity in the Barrelfish manycore operating system
JP5507661B2 (ja) 仮想マシン用非一様仮想メモリーアーキテクチャー
US7143412B2 (en) Method and apparatus for optimizing performance in a multi-processing system
US20040143833A1 (en) Dynamic allocation of computer resources based on thread type
JP2015135696A (ja) ローカル物理メモリとリモート物理メモリとの間で共有されるバーチャルメモリのためのハードウェアサポートの提供
EP2548123B1 (en) Accelerating memory operations using virtualization information
JPH1011305A (ja) 非均等メモリ・アクセス記憶アーキテクチャを有するマルチプロセッサ・システム及びそのシステムにおけるプロセス割当て方法
US8725963B1 (en) System and method for managing a virtual swap file for virtual environments
JPH11167524A (ja) コンピュータ・システム
JP2008515069A (ja) プロセッサ・リソースの仮想化のためのシステムおよび方法
US6457107B1 (en) Method and apparatus for reducing false sharing in a distributed computing environment
CN110447019B (zh) 存储器分配管理器及由其执行的用于管理存储器分配的方法
US11928511B2 (en) Systems and methods for prioritizing memory allocation for isolated computing workspaces executing on information handling systems
US11281612B2 (en) Switch-based inter-device notational data movement system

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20041005

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20041215

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20041220

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050405

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20051018