JP2000506659A - マルチプロセッサデータ処理システム内でメモリを割り当てる方法 - Google Patents
マルチプロセッサデータ処理システム内でメモリを割り当てる方法Info
- Publication number
- JP2000506659A JP2000506659A JP11516373A JP51637399A JP2000506659A JP 2000506659 A JP2000506659 A JP 2000506659A JP 11516373 A JP11516373 A JP 11516373A JP 51637399 A JP51637399 A JP 51637399A JP 2000506659 A JP2000506659 A JP 2000506659A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- segment
- virtual
- address
- rule
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation 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/5016—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1072—Decentralised address translation, e.g. in distributed shared memory systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
Abstract
(57)【要約】
本発明は、複数のモジュールの間で分配される非一様アクセスメモリユニット(Mem)を備えるマルチプロセッサデータ処理システム内で物理メモリ位置を割り当てるプロセスに関する。ソフトウェアアプリケーション(Applix)は1組の定義済みメモリ割り当て規則(Rg)にリンクされる。アドレス対応テーブルに仮想アドレスに関するエントリがないときには、ページ障害(Fp)が生成される。物理メモリ(Mem)内の位置の割り当ては、アプリケーション(Applix)のプロファイルとページ障害タイプ(Fp)の関数としての1つの定義済み規則に従って行われる。実施形態の好ましい変形形態では、メモリはセグメントに構成され、セグメントが仮想アドレス範囲に細分される。このような範囲には特定のメモリ割り当て方式を関連付けることができる。この逆の場合には、セグメントの方式が優先的に使用される。
Description
【発明の詳細な説明】
マルチプロセッサデータ処理システム内で
メモリを割り当てる方法
技術分野
本発明は、マルチプロセッサデータ処理システム内でメモリを割り当てる方法
に関し、詳細には、非一様なアクセスを有するメモリを割り当てる方法に関する
。
本発明の範囲内では、「非一様」の語は、以下に示すように時間的な意味で使
用される。同様に、「メモリ」の語は一般的な意味で使用される。この語は、分
散メモリ、(たとえば、いくつかの異なるアクセス時間を有するメモリのバンク
を備える)メモリ階層、またはいくつかの異なる種類の1組のメモリを示す。
従来技術
データ処理分野でよく知られているように、マシンを構成するプロセッサの数
を増加することによってマシンの性能を向上させることが可能である。(Sym
metrical Mul
tiprocessor(対称型マルチプロセッサ)という英語名から)「SM
P」という名称で知られている種類のマシンは、同じマシン内のいくつかの異な
るプロセッサがシステムバスによってメモリに対称的にアクセスすることを可能
にする。このようなマシンは、メモリへのアクセス時間が、アクセスされるすべ
てのデータについてほぼ同じであるので、一様なアクセスメモリを有するマシン
である。
このため、このアーキテクチャを(英語名「UniformMemory A
ccess」(一様メモリアクセス)から)「UMA」と呼ぶ。
本明細書に添付された第1図は、「UMA」型アーキテクチャの例を概略的に
示す。
データ処理システム1は、以下では「SMP」モジュールと呼ばれ、いくつか
の中央演算処理装置またはプロセッサ、あるいは英語表現による「CPU」を備
える。第1図および第10図から第13図には4つの中央演算処理装置が表わさ
れている。これらの中央演算処理装置10〜13には、これらのすべてからアク
セスできるメインメモリ14が結合される。
すべてのアクセスがモジュール1内で、すなわちローカルに
行われるため、総利用可能メモリ空間がアクセス時間の点で均一である(これは
、このアーキテクチャが「UMA」アーキテクチャであるので初期仮説を構成す
る)場合、中央演算処理装置10〜13のうちのどれが要求を送った場合でもア
クセス時間はほぼ同じである。
第1図には4つの中央演算処理装置10〜13しか表わされていないが、この
数がまったく任意であることは明らかであろう。この数は増減することができる
。しかし、この種のマシンの性能曲線は、プロセッサの数の関数として線形に増
加するわけではない。プロセッサの数を増加すると、システムは、それ自体がア
プリケーションを実行するために有する資源へのアクセス可能性の問題により多
くの時間を費やす。このため、プロセッサの数が、しばしば約4と推定される最
適値を超えると、性能曲線がかなり低くなる。従来技術は、この問題に対して様
々な解決策を提案している。
1つの知られている解決策は、複数のマシンを、ネットワークを通して互いに
通信させるようにクラスタとしてグループ化することからなる。各マシンは、最
適な数、たとえば4つのプロセッサと、マシン自体のオペレーティングシステム
とを有す
る。このマシンは、他のマシンによって維持されているデータに対する動作を実
行するたびにこのマシンとの通信を確立する。このような通信には時間がかかり
、かつ一貫したデータを処理する必要があるため、多数の通信を必要とする大規
模なアプリケーション、たとえば分散アプリケーションでは呼出し時間問題が生
じる。呼出し時間とは、メモリへのアクセスを求める要求が送られる瞬間と、こ
の要求に対する応答を受け取る瞬間とを分離する時間である。
他の知られている解決策は、(英語名「Non−uniform Memor
y Access(非一様メモリアクセス)」からの)NUMA型アーキテクチ
ャを有するマシンの解決策である。このようなマシンは、メモリへのアクセス時
間が、アクセスされるデータの位置に応じて異なるので、非一様アクセスメモリ
である。「NUMA」型マシンは複数のモジュールで構成され、各モジュールは
、最適な数のプロセッサと、マシンの総メモリの物理部分とを備える。モジュー
ルは一般に、他のモジュールと共用していないメモリの物理部分の方が、他のモ
ジュールと共用している部分よりも容易にかつ高速にアクセスできるので、この
種のマシンは非一様メモリアクセスを有する。
各モジュールがそのプロセッサを物理メモリにリンクするプライベートシステム
バスを有するので、すべてのモジュールに共通するオペレーティングシステムは
、プライベートシステムバスをマシンの単一の固有のシステムバスとみなすこと
を可能にする。論理アドレスは、モジュールの所与の物理メモリ位置に常駐場所
を割り当てる。特定のプロセッサでは、そのプロセッサと同じモジュール内に物
理的に位置するローカルメモリ部分へのアクセスは、プロセッサが位置するモジ
ュール以外の1つまたは複数のモジュール内に物理的に位置するリモートメモリ
部分へのアクセスとは区別される。
この説明に添付された第2図は、この種のアーキテクチャ、すなわち「NUM
A」アーキテクチャの例を概略的に示す。図面を簡略化するために、データ処理
システム1が、前述の「SMP」型の2つのモジュールMaおよびMbのみを備
え、この2つのモジュールが同一であるものと仮定している。しかし、データ処
理システム1’が、これよりも多くのモジュールを備えることができ、モジュー
ルMaおよびMbが(特に中央演算プロセッサの数の点で)異なるものでよいこ
とを理解されたい。
モジュールMaは、4つの中央演算プロセッサ10a〜13
aとメインメモリ14aとを備える。同様に、モジュールMbは、4つの中央演
算プロセッサ10b〜13bとメインメモリ14bとを備える。2つのメモリ1
4aおよび14b(および一般にはn個のメインメモリ)は、一般にはそれぞれ
、いわゆるリモートキャッシュメモリ15aおよび15bを介して、「リンク」
2と呼ばれるものによって互いに通信する。リンク2は、単純な物理リンクに対
応するものではなく、詳しく説明する必要はない様々な標準電子回路(制御回路
、インタフェース回路など)を備える。
この種のアーキテクチャでは、アプリケーションがたとえば、モジュールMa
で実行されている場合、どの中央演算プロセッサ10a〜13aを使用する場合
でも、「近くの」メモリ14aへのアクセス時間(ローカルアクセス)は基本的
に、モジュールMb内に位置する「遠くの」メモリ14bへのアクセス時間より
も短い。特に、データが他のモジュールに物理的に格納されているときにはリン
ク2を通過する必要があり、そのため転送時間がかなり延びる。
現代のデータ処理システムでは、所与のアプリケーションの割り当てが仮想メ
モリ空間に基づいて行われる。この割り当て
はオペレーティングシステムまたは「OS」の制御下で行われる。この場合、仮
想メモリ空間と物理メモリの間に動的な対応が確立される。このため、通常、ア
ドレス対応テーブルが使用される。一般に使用されている英語表現では、これを
動的「マッピング」と呼ぶ。領域による構成、あるいはセグメントによる構成を
含め、様々なメモリ構成が提案されている。本発明の範囲を制限せずにこの概念
について説明するために、以下に「セグメント」型構成の場合について説明する
。実際には、セグメントは、固定された所定の長さの、連続する仮想アドレスの
空間として定義される。
より厳密に言えば、従来技術では、前述の動的な対応または「マッピング」は
、物理メモリの位置を考慮せずに、すべてのアプリケーションに共通の規則に従
って行われる。実際には、プロセスが仮想アドレスにアクセスしようとし、アド
レス対応テーブルのエントリが見つからない場合、例外が生成され、「UNIX
」(登録商標)用語によるページ障害が検出されることによってこの例外が明確
化される。「ページ」の語は、より一般には「連続アドレス範囲」として定義す
ることができる。ページは、セグメントの細目を構成する。しかし、説明を簡略
化
するために、以下では「ページ」の語を使用する。ページ障害が検出された後、
ハンドラと呼ばれる装置が、前述の共通規則に従って物理メモリを割り当てる。
この簡単な割り当て方法は、メモリへの平均アクセス時間が一様であるので、前
述の「UMA」型の標準「SMP」マシンによく適している。
一方、第2図に関して説明した「NUMA」型のアーキテクチャでは、アクセ
ス時間がもはや一様ではなく、システムの性能に対する悪影響を最小限に抑える
メモリ割り当てプロセスが必要になる。
従来技術では、この目的を満たすプロセスが提案されている。たとえば、メモ
リ割り当て規則を、最適化が得られるように修正するが、修正後も依然としてす
べてのアプリケーションに対して同一のままにすることが提案されている。さら
に、このプロセスは他の欠点を有する。修正された規則は、特定のアプリケーシ
ョンには有利であるが、他のアプリケーションには不適切であるか、あるいは場
合によっては危険であることがある。
所与のアプリケーションに関連付けされた特定のアプリケーションを定義する
ように構成された特定の(英語「Application Program I
nterface」から
の)「API」を使用して、仮想メモリ空間と物理メモリの対応(「マッピング
」)を確立することも提案されているが、この場合、対応するアプリケーション
とオペレーティングシステムの常駐部分(「カーネル」)との両方を修正する必
要がある。したがって、この方法を単独で既存のプログラムに適用することはで
きない。いずれの場合も、融通性に欠け、効果が限られている。
発明の概要
本発明の課題は、メインメモリへのアクセスが一様ではない、特に前述の「N
UMA」型のデータ処理システム用のメモリ割り当てプロセスであり、このプロ
セスは、この特定のアーキテクチャに生じるニーズを満たすことが意図され、か
つ従来技術のプロセスの欠点を有さない。
この場合、メモリ割り当ては、各アプリケーションに特有のプロファイルの関
数として、すなわち、このプロファイルを考慮に入れる1組の割り当て規則を実
現することによって行われ、ページ障害が検出されるたびにこれらの割り当て規
則が自動的に探索され、物理メモリ割り当てのためにどの規則を実行しなければ
ならないかが判定される。
好ましい実施形態では、物理メモリ割り当てはまた、ページ障害の種類を考慮
に入れるように行われる。実際には、このプロセスを実行する間、アプリケーシ
ョンは、システムのグローバルメモリ空間を異なるように使用する、テキスト、
データ、共用メモリなどいくつかの異なるオブジェクトに細分される。本発明は
、メモリアクセスをこのパラメータの関数として最適化することも可能にする。
本発明のプロセスは、前述の変形形態では、特に、優れた性能および高い融通
性の点で、従来技術を著しく向上させる。さらに、既存のアプリケーションを修
正する必要はない。しかし、特に「NUMA」型のマルチプロセッサデータ処理
システムの仮想アドレス空間が通常、非常に大きいことに留意されたい。この概
念について説明すると、オペレーティングシステムが前述の「UNIX」環境ま
たはその1つの変形環境にある場合、単一の仮想メモリセグメントは通常256
MBを表わす。容易に理解されるように、このような条件の下では、セグメント
が1つのクラス、たとえば「データタイプ」のみに関連付けされている場合でも
、ある数のアプリケーションの場合にはセグメント当たり1つの規則では最適で
ないことがある。さらに、通
常、セグメントは仮想アドレスサブスペースに細分され、以下では、このような
サブスペースを英語表現に従って「virtual range(仮想範囲)」
と呼ぶ。このような仮想範囲に対応するセグメントの様々なアドレス領域をそれ
それの異なる方法で使用することができる。
それ自体がセグメントの細分であるページと同様に、このように定義される「
仮想範囲」は様々な長さを有することができる。実際、当然のことながら、好ま
しい例示的なアプリケーション(「UNIX」環境)では、仮想範囲の細分度を
ページのレベルよりも低くすることができる。
この概念について説明すると、たとえば、ディスク上に記録されたデータを入
出力コントローラによって読み取るために、物理バッファメモリを定義するテー
ブル用に仮想範囲50MBを予約することが可能である。
この例に限るときでも、「NUMA」アーキテクチャの場合、前述のディスク
が接続されたモジュールと、このようなデータを使用する特定のアプリケーショ
ンに対する、システムの1つの物理メモリ内のバッファメモリの位置が性能に関
して重要であることを理解されたい。
本発明の追加の変形形態により、かつ再び好ましい実施形態によれば、特定の
メモリ割り当て方式が各仮想「範囲」に選択的に関連付けされる。この技術的特
性のために、このプロセス変形形態が実施されるアプリケーションに限られた修
正を加える代わりに、ページ障害が検出された場合のメモリ割り当てをさらに最
適化することが可能になる。
この変形形態によれば、例外が生成され、ページ障害に変換されると、実行す
べき規則を見つける役目を有するハンドラはテーブルを走査し、この仮想範囲に
関連付けされた特定の割り当て方式が存在するかどうかを判定する。この特定の
方式が存在しない場合、このセグメントで構成されるより高い階層のユニットを
支配する方式が使用される。この逆の場合には、この特定の規則からメモリ割り
当て規則が導かれる。言いかえれば、各範囲が特定のメモリ割り当て方式に関連
付けされた1つまたは複数の仮想「範囲」を同じセグメントが含むことができ、
同時に、1つまたは複数の他の仮想範囲が、セグメント、または場合によっては
システムの一般的な方式と、この方式の結果として得られる規則に従う。「特定
の」の語が、任意にn(nは、セグメントがm個の範囲を含む場合には1からm
である)で示
される所与の範囲に関連付けされた割り当て方式が、1つまたは複数の他の仮想
範囲、たとえば仮想範囲n+2およびn+5に関連付けされた割り当て方式とは
異なることを必ずしも意味しないことは明らかである。
実際には、使用する必要のあるメモリ割り当て規則はどれかを判定するために
リスト構造が使用され、リストの各要素は、仮想範囲の開始アドレスおよび終了
アドレスで区切られたある範囲の連続アドレスに対応する。実際には、リストの
要素は、所与の仮想範囲に適用されるメモリ割り当て規則を記憶するメモリ位置
である。リストの様々な要素が順次走査され、どの規則を適用しなければならな
いかが判定される。
このプロセスは加速することもできる。本発明のこの実施態様の追加の変形形
態によれば、セグメントは、すべてが同じ長さの連続仮想アドレスのN個のサブ
スペースに細分される。やはりN個のエントリを含むいわゆる「ハッシュ」テー
ブルが確立される。このN個のエントリには等しい数の個々のリスト構造が関連
付けされる。個々のリスト構造の長さは固定されない。リスト構造の長さは、こ
のエントリに関連付けされた仮想範囲の数に依存する。ページ障害が検出される
と、アドレスハンド
ラHは、ページ障害を生じさせたアドレスを知る。したがって、テーブル内の対
応するエントリの数を求めることは容易である。
「ハッシュ」テーブルはN個のメモリ位置で構成され、各位置は、特定のメモ
リ割り当て方式の使用を必要とするこのエントリに関連付けされた仮想範囲の存
在に関する少なくとも1つの情報を記憶する。実際には、ページが検出されると
、テーブル内のこのページのエントリが読み取られ、特定の割り当て方式の存在
を特徴付けるポインタが存在するときは、補助ステップにおいて、このページ障
害に関連付けされているのはセグメントの前述の仮想範囲のうちのどれであるか
が判定される。特定の方式に関連付けされた仮想範囲を含んでいないセグメント
の場合、適用される方式は、セグメント全体の方式である。一方、特定のメモリ
割り当て方式を必要とする仮想範囲については、テーブルの特定のエントリに関
連付けされたリスト構造の1つまたは複数の要素を走査する必要がある。しかし
、このリスト構造の長さは、このエントリに関連付けされた仮想範囲しかカバー
しないので前の場合よりも大幅に制限される。この2つの特性の結果として、前
述の変形実施形態は、メモリ割り当てプロセス、少なくとも適用すべき規則を判
定するフェーズを
大幅に加速する。
したがって、本発明の課題は、非一様アクセスメモリユニットを備え複数の仮
想メモリタイプを使用するデータ処理システムで実行される所与のソフトウェア
アプリケーションに関連付けされた仮想アドレス空間内の少なくとも1つの連続
メモリアドレス範囲を用い、アドレス対応テーブルを走査することによって行わ
れるマッピングによって、物理メモリ位置を割り当てるプロセスであって、1組
の定義済みの規則から選択されたメモリ割り当て規則にこの所与のソフトウェア
アプリケーションをリンクすることを含む少なくとも1つのステップを含み、こ
のアドレス対応テーブルが、この所与のソフトウェアアプリケーションに関連付
けされた仮想アドレスの連続メモリアドレス範囲に関するエントリを含まないと
きに、例外を生成するステップと、その後でこれらのメモリ割り当て規則のうち
の1つに従って物理メモリ位置を割り当てるステップとを含み、規則の選択が、
所与のソフトウェアアプリケーションによって使用される仮想メモリタイプのプ
ロファイルに従うことを特徴とするプロセスである。
発明を実施する最良の形態
添付の図面を参照しながら下記の説明を読めば、本発明がよりよく理解され、
他の特性および利点が明らかになろう。
−第1図は、一様なメモリアクセスを有するいわゆる「UMA」アーキテクチ
ャのデータ処理システムを概略的に示す図である。
−第2図は、非一様なメモリアクセスを有するいわゆる「NUMA」アーキテ
クチャのデータ処理システムを概略的に示す図である。
−第3a図および第3b図は、2つの例示的なソフトウェアアプリケーション
用のメモリへのアクセスを概略的に示す図である。
−第4図は、ソフトウェアアプリケーションの細分の例を示す図である。
−第5図は、ページ障害が検出されたときの従来技術によるメモリ位置の割り
当てを概略的に示す図である。
−第6a図および第6b図は、ページ障害が検出されたときの本発明によるメ
モリ位置の割り当てを概略的に示す図である。
−第7a図および第7b図は、本発明によるプロセスの追加の実施形態を示す
図である。
−第8図は、デジタルデータ処理システムでの本発明によるプロセスの変形形
態の実際的で例示的な実施態様を概略的に示す図である。
−第9図は、第1の変形形態による、本発明によるプロセスの追加の実施形態
の実際的で例示的な実施態様を概略的に示す図である。
−第10a図から第10c図は、第2の変形形態による、本発明のプロセスの
追加の実施形態の実際的で例示的な実施態様を概略的に示す図である。
本発明の範囲を制限せずにこの概念について説明するために、以下では、特に
明示しないかぎり、オペレーティングシステムが「UNIX」または同様な種類
であるデータ処理システムについて説明する。
この環境で実行されるアプリケーションでは、仮想アドレス空間を、以下の種
類を含めいくつかの異なる種類に分割することができる。
−テキストまたはプログラムテキスト(実行可能なコード)、
−初期設定されたデータ、
−修正されたデータ、
−スタック、
−「ヒープ」、すなわち、動的割り当て(テーブル、など)、
−共用メモリ、
−共用ライブラリ、
アプリケーションを実行している間、このアプリケーションは、いくつかの異
なる種類のシステムメモリを均等にそれぞれの異なる方法で使用する。さらに、
第2図のシステムの2つのモジュールMaまたはMbのどちらかでアプリケーシ
ョンまたは同じアプリケーションの新しいインスタンスを実行することができる
。同じアプリケーションに当てはまることは、それぞれの異なるプロファイルを
有する2つのアプリケーションにも当てはまる。
第3a図および第3b図は、2種類のアプリケーション、すなわち、「ミニデ
ータベース」とそれよりも古いデータベースを概略的に示す。
システムのグローバルメモリは、この2つの図では参照符号Memで表わされ
ている。
第3a図で示した最初の場合、初期設定周期中、アクセスは、第3a図の左側
に位置する任意の領域Ziniによって記号的
に表わされたアドレス空間に制限される。この後、第3a図の例で、領域Zfに
よって記号化され、やはり範囲が限られており、領域Ziniに関係する領域と
して仮定されるアドレス空間で、アクセスが行われる。したがって、この特定の
アプリケーション用の物理メモリ空間を単一のモジュール、より厳密に言えばロ
ーカルモジュールに含めることができる。
これは一般には、第3b図に示したような標準データベースには当てはまらな
い。第3b図に表わした矢印によって記号化したように、アクセスをメモリ空間
全体に拡張することができる。したがって、占有される物理メモリの位置は一般
に2つ以上のモジュールに分配される。
さらに、上記で指摘したように、同じアプリケーションの場合、仮想メモリ空
間は、テキスト、データなどいくつかの異なる種類のセグメントに細分される。
非制限的な例として、所与のアプリケーションAppliを実行する際、アプ
リケーションの様々な要素は、第4図に示したように、テキストT、(様々な種
類の)データDa、スタックst、共用メモリShm、ファイルFiなどの仮想
メモリセグメントに区画される。従来、システムのグローバル物理メモ
リMem内の仮想メモリ位置のこれらのセグメントに管理装置、あるいは一般に
使用されている英語表現を使用すれば「ハンドラ」Hが割り当てられている。
ページ障害が検出されたときに物理メモリを割り当てる機構について以下で説
明する。
実行中のアプリケーションが、いくつかの異なる種類のメモリを均等にそれぞ
れの異なる方法で使用することを示した。同様に、所与のモジュール(たとえば
、第2図のMa)で最初に実行されるアプリケーションを引き続き他のモジュー
ル(たとえば、第2図のMb)で実行することができ、また、このアプリケーシ
ョンの追加のインスタンスを作成し異なるモジュールで実行することができる。
アプリケーションが所与の仮想アドレス、たとえば任意のアドレス「Ox20
00」で特定の命令、たとえば「ロード」命令の実行を試みると仮定した場合、
現在のプロセスが実行されている中央演算プロセッサ(たとえば、第2図の10
a)が命令をデコードし、アドレス対応テーブル(表わされていない)が走査さ
れる。探索中のエントリがテーブルにない場合、例外が伝送され、ハンドラHに
よって検出されるページ障害に変換さ
れる。したがって、このような場合には、上記の仮想アドレス「Ox2000」
に物理メモリ位置を割り当てる必要がある。
従来技術には、1種類の割り当てしか存在しない。アプリケーションのプロフ
ァイルおよびセグメントの種類にかかわらず、使用される規則は同じである。し
たがって、ハンドラHは、システムによって使用される割り当て規則に従って物
理メモリ位置を割り当てる。たとえば、このような規則によれば、中央演算プロ
セッサ10a〜13aのうちの1つの制御下でモジュールMa内でプロセスが実
行される場合、ローカル物理メモリ、すなわちメモリ14aで割り当てが規則的
に実行される。この規則は、テキスト型セグメントには有利であるが、他の種類
のセグメントには最適ではない。
上記の機構を第5図で示す。アプリケーションAppliはページ障害Fpを
生成し、ハンドラHは、定義済みの規則に従って(区画Z1〜Znが第5図の点線
によって記号化されている)物理メモリMem内の位置を割り当てる。
上述したように、このような規則は、修正することができるが、依然としてす
べてのアプリケーションおよびすべてのセグメントタイプに対して同じである。
一方、本発明のプロセスによれば、物理メモリMemの割り当ては、アプリケ
ーションのプロファイル、および好ましい実施形態ではページ障害を考慮に入れ
た1組の規則に従って実行される。
第6a図および第6b図は、本発明による物理メモリを割り当てる機構を示す
。
本発明によるプロセスの主要な特徴によれば、各アプリケーションは1組の定
義済みアプリケーション規則にリンクされる。
これを行うには、各アプリケーションApplix(xは任意のサブスクリプト
である)を特定のプロファイルに関連付ける必要がある。この関連付けは、それ
を記憶しているオペレーティングシステムまたは「OS」の制御下で実行される
。第6a図は、関連付け機構を概略的に示す。
第6a図は特定のアプリケーションApplixを示す。上述したように、こ
のアプリケーションApplixは、テキスト、データなど様々な種類のメモリ
を使用する。第6a図には、6種類のメモリが表わされており、tyM1〜ty
M6で示されている。各メモリタイプtyM1〜tyM6は、1組の定義済み規則
のうちの1つの割り当て規則にリンクされる。定義済み規則
は以下で定義される。これらの規則はR1〜R6で示されているが、これは必ずし
も1組の分離された規則ではないことを理解されたい。言いかえれば、たとえば
、メモリタイプtyM2とメモリタイプtyM3自体が互いに異なる場合でも規則
R2と規則R3は同一でよい。
定義したメモリ割り当てプロファイルPaxは、アソシエーションAxによって
特定のアプリケーションApplixにリンクされる。プロファイルPaxは、2
つのエントリ、すなわち、メモリタイプtyMiと、1組の定義済み規則から選
択された規則Rjとを有するテーブルである。iおよびjは任意のサブスクリプ
トである。
一般には、アソシエーション関数は以下のように定義することができる。
アソシエーション_Pa(Applix,Pax)
所与のアプリケーションにリンクされたメモリ割り当てプロファイルは、この
アプリケーションの実行を初期設定する際に定義するか、あるいは実行中の任意
のときに動的に再定義することができ、このため、プロセスの融通性が向上する
。
第6b図で、定義済み割り当て規則は、参照符号R9で示され
ている。ページ障害Fpに変換される例外が現われている間、すなわち、アドレ
ス対応テーブルがある仮想アドレスのエントリを含まないとき、ハンドラHは、
上記で定義したアプリケーションApplixのプロファイルPaxを探索する。
ハンドラHは、好ましい実施形態では、ページ障害Fpの種類も判定する。ハン
ドラHは、この2つのパラメータに基づいて、ローカル(同じモジュール内)ま
たはリモート(他のモジュール内)に物理メモリ内の位置Z1〜Znを割り当てる
か、あるいは場合によってはメモリMem全体にわたって分配される。この分配
は、アプリケーションApplixのプロファイルPaxとページ障害Fpの種類
に依存し、第6b図では(第5図に表わした従来技術のプロセスの単一の矢とは
異なり)複数の矢印によって記号化されている。
したがって、アドレス指定関数Fadは以下の式で表すことができる。
Fad=F(Pax,タイプFp)
したがって、メモリ割り当てのために適用される規則の選択は、2つのパラメ
ータを組み合わせた結果である。
より厳密に言えば、所与のアプリケーションApplixは、
1組の定義済み規則のうちのどの割り当て規則が各仮想メモリセグメントタイプ
に必要であるかを指定する。たとえば、「クライアント」セグメント、「マッピ
ング」セグメント、「永久」セグメント、「ワーキングメモリ」セグメント、「
共用ライブラリ」セグメントの各セグメントタイプが一般に使用される。
本発明の範囲を制限せずにこの概念について説明するために、以下の1組の規
則を定義することができる。これらの規則は以下に示すコードによって表わされ
る。
−「P_STRIPE」:「ラウンドロビン」と呼ばれる種類の方法に従って
、ローカルメモリ(同じモジュール)またはリモートメモリ(異なるモジュール
)に分配される、所与のアプリケーションの資源を形成する物理メモリ空間全体
にわたるストライプ状の割り当て、
−「P_LOCAL」:割り当てられる物理メモリは、ページ障害を生じさせ
た中央演算プロセッサと同じモジュールにある。
−「P_FIXED」:割り当てられる物理メモリは定義済みモジュールにあ
る。
−「P_DEFAULT」(または「P_NONE」):物
理メモリ割り当て規則がなく、したがって、システムに属するデフォルト規則が
使用される。
たとえば、上記で定義した「P_STRIPE」型の割り当ては基本的に「共
用メモリ」型のセグメントに適しており、それに対して「P_LOCAL」型の
割り当ては基本的に、「ワーキングメモリ」型のセグメントに適している。
したがって、本発明によるプロセスでは、物理メモリ割り当てをアプリケーシ
ョンの実際のニーズ、より厳密に言えば、アプリケーションの特定のプロファイ
ルの関数として最適化することが可能である。メモリ資源へのアクセス時間も少
なくとも平均アクセス時間の点で最適化されるので、データ処理システムの性能
が向上する。他の利点は、上述したように、新しい「API」を使用する場合と
は異なり、アプリケーションを修正または再コンパイルする必要なしに、1組の
定義済みメモリ割り当て規則にアプリケーションをリンクする機能である。
さらに、このプロセスは高い融通性を有する。このプロセスは特に、従来技術
に従って機能することを可能にする。たとえば、所与のアプリケーションでは割
り当て規則が指定されず、あるいは必要とされない場合、システムのデフォルト
規則(P
_DEFAULT)を使用することができる。さらに、「子」アプリケーション
は、それを作成した「親」アプリケーションに関連付けされたメモリアプリケー
ション規則を「継承」することができる。たとえば、異なるモジュールで実行さ
れるアプリケーションの追加のインスタンスにも同じことが言える。
容易に理解されるように、本発明のプロセスは、前述の変形形態では、より優
れた性能と高い融通性を含め、従来技術を著しく向上させる。
しかし、本明細書の冒頭で述べたように、現在のマルチプロセッサデータ処理
システムの仮想アドレス空間は極めて大きいことがある。「UNIX」環境の場
合、単一のセグメントはたとえば、256MBまたは216ページを表わす。また
、通常、セグメントは必要に応じて、可変長の仮想「範囲」に細分される。この
ような仮想サブスペースは、共通のセグメントに属するときでも、仮想サブスペ
ースがリンクされた様々なアプリケーションによって異なるように使用すること
ができる。また、少なくともある種のアプリケーションでは、そのようなアプリ
ケーションが使用する1つまたは複数のセグメントのうちのすべてに対して単一
規則を実施することが完全に最適であるとは
限らない。
非制限的な例として、第7a図を参照して再び「NUMA」型のシステムにつ
いて説明する。このシステムは、1”で示されており、第2図のシステム1’と
類似しているが、リンク2”によって相互接続された少なくとも3つの「SMP
」モジュールMa、Mb、Mcを備えるものと仮定する。また、モジュールMc
は、単一の基準入出力cの下でコントローラおよび標準入出力回路によってディ
スクドライブDに接続されるものと仮定する。
最後に、所与のアプリケーションApplixは、モジュールMaの1つのプ
ロセッサ、たとえばプロセッサ10aで実行されるものと仮定する。このアプリ
ケーションは特に、任意にSgxで示された、システム1”の仮想アドレス空間
のセグメントを処理する。このセグメントSgxを第7b図に概略的に示す。説
明を簡略化するために、このセグメントは、Ra1〜Ra5で示された5つの仮想
「範囲」のみを備えるものと仮定する。前述の例では、仮想範囲Ra2は、前述
のアプリケーションApplixに割り当てられ、より厳密に言えば、容量がた
とえば50MBのテーブルに関係付けられる。このテーブルは、システム
1”の1つの物理メモリ内に位置する同じ容量のバッファメモリに関係付けられ
る。さらに、前述の例では、セグメントSgxの種類とアプリケーションApp
lixのプロファイルに関連付けされた規則のために、バッファメモリ位置はモ
ジュールMbのメインメモリ14b内に物理的に位置しているものと仮定される
。したがって、アプリケーションApplixによるデータの読取りには特に、
リンク2’の2回の通過が必要であり、この通過は処理時間の点で特に悪影響を
与える。
2回の通過の必要を回避するには、仮想範囲Ra2に関して保持されている割
り当て規則が、50MBバッファメモリのある位置を(回路入出力cおよびディ
スクドライブDの近くの)モジュールMcの物理メインメモリ、あるいはアプリ
ケーションApplixが実行されるモジュールMaの物理メインメモリに課す
と有利である。経験によれば、一般に、性能の点で第1の解決策の方がよい結果
を与える。
この簡単な例では、容易に理解されるように、アプリケーションのプロファイ
ルに適合されたメモリ割り当て規則が、本発明のプロセスに従って実施される場
合でも、動的に修正できる場合でも、プロセスが完全に最適化されるわけではな
い場合が
いくつかある。
また、本発明によるプロセスの追加の形態によれば、好ましい実施形態では、
仮想「範囲」は特定の規則に選択的に関連付けされる。
再び第7b図を参照するとわかるように、仮想範囲Ra2およびRa4のみが特
定の規則に関連するものとみなされる。この概念について説明すると、仮想範囲
Ra4もテーブルを表わすことができるが、この場合はたとえば、100MBの
テーブルである。(第7b図で斜線で表わされた)他の仮想範囲は特定の規則に
はリンクされない。この場合、仮想メモリのより高い階層のユニット、この場合
はセグメントSgxに関連付けされた規則が適用される。これは、前述のように
行われる。
より厳密に言えば、この追加の実施形態によれば、特定の物理メモリ割り当て
方式を定義する補助情報が各仮想範囲に関連付けされる。しかし、この方式は任
意選択である。実際には、この補助情報は第1のフィールドを含み、このフィー
ルドは、ポインタ「prange」と呼ばれ、あるセグメントについて、ある仮
想範囲のために少なくとも1つの特定の方式を実際に適用しなければならない(
「prange」≠0)かどうか、あ
るいはグローバルに関連付けされた割り当て方式を適用しなければならない(「
prange」=0)かどうかを示す。
第2のフィールドは方式タイプに関するフィールドである。仮想範囲のレベル
では、この場合も、グローバルセグメントに関して上記で定義した1組の規則、
たとえば、「P_STRIPE」や「P_FIXED」などが使用される。
最後に、少なくともある種のメモリ割り当て方式では、物理メモリが割り当て
られるモジュールの番号またはアドレスを指定する必要がある。この目的のため
に、第3のフィールドまたは「モジュール番号」フィールドがある。このことは
タイプ「P_FIXED」の場合に当てはまり、定義済みモジュールの数を指定
する必要がある。タイプ「P STRIPE」の場合、前に使用されたモジュー
ルの番号を知り、使用中のストライプ状メモリ分配法則(ラウンドロビン)に従
ってこの番号を増分する必要もある。したがって、前に使用された番号をメモリ
位置、レジスタ、またはカウンタに記憶する必要がある。
再び第7b図を参照するとわかるように、仮想範囲Ra1〜Ra5を割り当てる
方式は以下のものに識別することができる。
−仮想範囲Ra1、Ra3、Ra5については、特定の方式は
なく、規則はセグメントSgxの規則、たとえば、種類=P_FIXEDおよび
モジュール番号=No. of Maである。
−仮想範囲Ra2については、上述の特定の方式が存在し、種類=P_FIX
EDでありモジュール番号=No. of Mcである。
−仮想範囲Ra4については、特定の方式が存在し、たとえば、やはり種類=
P_FIXEDでありモジュール番号=No.of Mbである。
前述の変形形態のプロセスでは、ページ障害が検出されたときの物理メモリの
割り当てを最適化することが可能である。この変形形態は、先に説明した変形形
態と同様に、オペレーティングシステムを修正する必要があるだけでなく、オペ
レーティングシステムを使用するアプリケーションをわずかに修正する必要もあ
る。
一例を挙げれば、上述したように50MBバッファを有するモジュール番号3
(たとえば、モジュールMc)で実行しなければならない、「UNIX」用語で
「バインド」と呼ばれる種類の読取り命令および書込み命令の場合、使用される
仮想範囲(たとえば、Ra2)用の特定の方式をシステムコールで初期設
定する、「policy」と呼ばれる命令を、命令ストリームに加える必要があ
る。この命令は以下の形式を有することができる。
policy[アドレス、サイズ(たとえば、50MB)、方式 たとえば
、P_FIXE)、モジュール(たとえば、No.3)]
すべてのアプリケーションが本発明によるプロセスのこの追加の変形形態から
利益を得ることができるが、すべての種類のアプリケーションを修正する必要が
あるわけではない。
未修正のアプリケーションを正常に実行できることに留意されたい。物理メモ
リ割り当て方式は、第6a図および第6b図に関して説明したように実施される
。使用される規則は、特にこれらのアプリケーションのプロファイルに依存し、
有利には上記で定義した規則である。ただし、これらとは異なる規則でもよい。
一方、追加の変形形態によるプロセスは、同じ仮想メモリ空間内のデータを処
理するアプリケーションに特に有利である。「ドライバ」型のアプリケーション
、特にディスク「ドライバ」およびネットワーク「ドライバ」、すなわち、周辺
管理プログ
ラムまたはネットワーク管理プログラムを非制限的な例として引用することがで
きる。これらのアプリケーションは、「バッファ」、すなわち、「system
policy」と呼ばれる命令によって特定の方式を定義することのできるメ
モリ範囲がある、「データ」型のセグメントを使用する。
他の種類のアプリケーションは特に影響を受ける。これらは、共用メモリによ
って互いに通信するアプリケーションである。たとえば、アプリケーション同士
が「共用メモリ」型のセグメントの第1の仮想範囲を共用する、第7a図のモジ
ュールMaの1つのプロセッサで実行される第1のアプリケーションと、これと
同じモジュールMaの1つのプロセッサで実行される第2のアプリケーションの
場合、性能面の理由で、基本的に、メモリ割り当て方式タイプが「P_FIXE
D」または「P_LOCAL」であり、モジュール番号が1に等しい(モジュー
ルMa)と有利である。この性質は基本的に、必然的にシステムの性能を向上さ
せる。したがって、有利にはこの第1の仮想範囲に特定のメモリ割り当て方式を
割り当てる。同様に、第3のアプリケーションがモジュールMbで実行されてお
り、「共用メモリ」型の同じセグメントに属する第2の仮想範囲を第1の
アプリケーションと共用する場合、有利にはメモリ割り当て方式タイプが「P_
FIXED」であり、モジュール番号は2に等しい(モジュールMb)。この性
質も基本的に、必然的にシステムの性能を向上させる。したがって、やはり有利
にはこの第2の仮想範囲に特定のメモリ割り当て方式を割り当てる。
以下に、実際的な実施形態において、上記のそれぞれの異なる変形形態で、本
発明のプロセスをリアルマシン内でどのように実施できるかについて説明する。
本発明の範囲を制限せずにこの概念について説明するために、「UNIX」環境
または同様な環境でのマシンの構成について説明する。
この種のマシンには、第8図に概略的に示したように、セグメントScbを特
にその種類またはクラスに関して定義するデータが記録されたこのようなセグメ
ントScbのテーブルがある。本発明の方法は、この特徴を利用する。
所与のアプリケーションApplixの場合、そのメモリプロファイルPaxは
、このアプリケーションによって使用されるセグメントを作成した構造に記憶さ
れる。プロファイルPaxは、第6a図に関して示したように、一般に複数のメ
モリタイプを含む。所与のセグメントの場合、その種類は、レコードSgcy
によってセグメントテーブルScbに記述される。この種類はプロファイルPax
の要素を指し、この要素は、本発明によれば、補助データMPyによってテーブ
ルScbに記録される。
このような補助データMPyは、セグメントSgcyのグローバルレベル、ある
いは仮想範囲、すなわち、このセグメントの可変長の細分のレベルで適用される
メモリ割り当て方式を厳密に表わす。第8図は、所与のアプリケーションApp
lixとセグメントテーブルScbの間の主要な相互作用を示す。
実際には、アプリケーションが特定のメモリ割り当て方式を仮想範囲のレベル
でサポートするように修正されているので、各セグメントごとに数組の補助デー
タがある。
上述したように、各組の補助データは複数のフィールド、すなわち、考慮すべ
き特定の方式がセグメントにあるかどうかを示すポインタフィールド「pran
ge」と、適用すべき規則の種類(「P_FIXED」など)を示す「poli
cy type」と呼ばれるフィールドと、少なくともある種の規則の場合に(
たとえば、規則が「P_FIXED」である場合に)モジュール番号を示す「m
odule」と呼ばれるフィールドとを含む。様々な仮想範囲を区切るには、こ
れらの仮想範囲の
上限および下限の仮想アドレスを指定する情報を有する必要もある。この情報は
、それぞれ、「pno_start」および「pno_end」と呼ばれる、フ
ィールドに表示される。
ページ障害が検出されたときには、これらの様々なデータを走査し、適用すべ
き割り当て方式を厳密に判定する必要がある。本発明の一形態によれば、第9図
に示したように、数組の補助データを構成するためにリスト構造が使用される。
ページ障害を生じさせたアドレスされたセグメントは、z個の仮想範囲を含む
ものと仮定される。テーブルScb内のリスト構造の第1のメモリ位置は、セグ
メント全体に関するデータ、特にこのセグメント用のグローバルメモリ割り当て
方式に関するデータを含む。未修正のアプリケーションの場合、このメモリ位置
のみが存在する。
Ra1〜Razで示されたリストの他の要素は、様々な連続仮想範囲に関する要
素である。したがって、各要素ごとに、ポインタ「prange」がゼロとは異
なるセグメントに関する様々なフィールド、すなわち、「policy_typ
e」、「module」、「pno_start」、「pno_end」がある
。
ページ障害を生じさせたセグメント中のアドレスは知られている。ハンドラH
は、それぞれ、idxおよびpnoと呼ばれる、このアドレスと当該のセグメン
トとを供給する。これらのデータは、テーブルScbにアドレスすることを可能
にする。このアドレスと各リスト要素Ra1〜Razのそれぞれの異なる上限およ
び下限(アドレス「pno_start」および「pno_end」)とを比較
することによって、特定のメモリ割り当て方式を当該の仮想範囲に適用する必要
があるかどうかを判定し、そうである場合に、どの種類の方式を適用すべきか(「
policy_type」)と、場合によっては、フィールド「policy_t
ype」で示される種類に応じて、どのモジュール番号を使用するか(「mod
ule」)を判定することが可能になる。
これらの補助データは、セグメントが作成されている間に、当該のアプリケー
ションのプロファイルの関数として初期設定される。次いで、前述の「システム
方式」型の命令を通じてアプリケーションによって補助データを動的に修正する
ことができる。
この概念について説明するために、一例として、以下の仮定
を行った。
−セグメントに適用すべきグローバル方式は「P_LOCAL」型であり、し
たがって、ページ障害が起こったモジュールで割り当てが行われるので、モジュ
ール番号は不要である。
−第1の仮想範囲に関連付けされた特定の方式、すなわち、リストLRa1の
第1の要素に記録された特定の方式は、「方式タイプ」=「P_FIXED」お
よび「モジュール」=2の各フィールドを含む。
−第2の仮想範囲に関連付けされた特定の方式、すなわち、リストLRa2の
第2の要素に記録された特定の方式は、「方式タイプ」=「P_STRIPE」
および「モジュール」=3の各フィールドを含む。
−仮想範囲zに関連付けされた特定の方式、すなわち、リストLRazの最後
の要素に記録された特定の方式は、「方式タイプ」=「P_DEFAULT」お
よび「モジュール」=「 」(すなわち、空)の各フィールドを含む。
当然のことながら、各仮想範囲1〜zについてアドレスフィールド「pno_
start」および「pno_end」も記録される。
アドレスpnoが、リスト要素LRa2のアドレスフィールドによって決定さ
れる空間を指し示す場合、ハンドラHはその要求に応答して、タイプ「P_ST
RIPE」およびモジュール番号3、あるいは第7a図の例のMcを示すデータ
を受け取る。このモジュール番号は、ストライプ状に回転する割り当てを示すの
で増分(あるいはより一般的には、修正)しなければならない。
前述の変形形態によるプロセスはさらに改良することができる。ページ障害が
検出されたときにある仮想範囲のために適用されるメモリ割り当て方式を判定す
るのに必要な時間を短縮することによってシステムの性能を向上させることが実
際に可能である。これを行うために、前述の追加の実施形態の変形形態は、仮想
範囲のテーブルを、算出されたアドレス、すなわち、英語表現によるいわゆる「
ハッシュ」コードと共に使用する。
特定の割り当て方式の判定は、第10a図から第10c図に従って行われる。
セグメント、たとえばSgy(yは、任意のサブスクリプトである)は、固定長
のN個のサブセグメントに細分される。前述の「UNIX」環境では、256M
Bの仮想メモリを表わすセグメントが、第10b図でSS1〜SSNで示さ
れた、それぞれ1MBの256個のサブセグメントに細分される。これは、2の
累乗を使用するので有利である。
「ハッシュ」テーブルTh(第10a図)は、N個のメモリサブセグメントに
対応するN個のエントリも含む。各エントリはサブセグメントSS1〜SSNに特
有のメモリ割り当て方式を記憶する。個々のリスト構造はテーブルThの各メモ
リ位置に関連付けされる。より厳密に言えば、このリスト構造が存在するのは、
特定のメモリ割り当て方式を適用しなければならない仮想メモリ「範囲」に属す
る少なくとも1つの領域を当該のサブセグメントが含む場合だけである。
第10b図を参照するとわかるように、セグメントSgyの「prange」
がゼロとは異なり、したがって、このセグメントが、特定のメモリ割り当て方式
に関連付けされた少なくとも1つの仮想範囲を含むものと仮定する。
サブセグメントSS1は、特定の方式に関連付けされた仮想範囲を含まないも
のと仮定する。このことは、第10b図で、サブセグメントSS3およびSSNに
も当てはまる。一方、サブセグメントSS2は3つの範囲Ra02〜Ra22を含む
ものと仮定する。第1のRa02は特定の方式には関連付けされず、それ
に対して他の2つRa12〜Ra22は特定のメモリ割り当て方式、たとえば、それ
ぞれ「P_FIXED」および「P_STRIPE」に関連付けされる。
したがって、「ハッシュ」テーブルThのエントリe2は、2つの要素LRa1 2
およびLRa22を含むリスト構造に関連付けされ、この2つの要素は、前述の
ように2つの特定の方式の特性を記憶する。
第10a図で、エントリe1、e3、e5、e6、eNは、特定の方式に関連付け
された仮想範囲を含まない(同じランク)のサブセグメントに対応するものと仮
定する。一方、前述のエントリe2だけでなく、エントリe4およびe7も、特定
のメモリ割り当て方式に関連付けされた仮想範囲を含むサブセグメントに対応す
る。エントリに関連付けされた個別の各リストの要素の数が可変であることに留
意されたい。実際、上記で指摘したように、仮想「範囲」は固定長を有さない。
第10a図に示した例では、エントリe2に関連付けされたリスト構造は、2つ
の要素LRa12およびLRa22を含み、エントリe4に関連付けされたリスト構
造は1つの要素LRa14を含み、エントリe7に関連付けされたリスト構造は3
つの要素LRa17〜LRa3 7
を含む。
ページ障害が検出されると、ハンドラHは、所与のセグメント、たとえばイン
デックスidxとアドレスpnoを有するセグメントでこのページ障害を生じさ
せた仮想アドレスを知り、したがって、サブセグメント、たとえばサブセグメン
トSS2のランクを求めることが可能になる。
第1のステップで、テーブルThの対応するエントリが読み取られる。テーブ
ルThに記録されている1組の情報を読み取ることにより、適用すべき方式をこ
のステップで直接、判定できる確率が高い。これが当てはまらない場合は、ペー
ジ障害を生じさせたサブセグメントに対応する所与のエントリに関連付けされた
リストの要素のみ、すなわち、この場合は、エントリNo.2に関連付けされた
要素のみが読み取られる。これらの要素は、前述の例では1つのサブセグメント
、すなわち1MBしかカバーしないので、常に数が限られる。上述したように、
「UNIX」環境の好ましい応用例では、仮想「範囲」の最小細分度はページの
細分度である。したがって、サブセグメント当たり最小範囲数は多くても、サブ
セグメントに含まれるページ数(例では256)に限られる。
適用すべきメモリ割り当て方式を判定するのに必要なデータを得るプロセスは
、前述の2つの特性の結果として加速される。
仮想範囲は、上記で指摘したように、固定長を有さない。ある範囲は、2つ以
上の連続するサブセグメントに「またがる」ことができる。このことは、たとえ
ばサブセグメントの長さが1MBである場合に、50MBにわたって延びる範囲
に当てはまる。範囲自体を「サブレンジ」に細分できると考えることによって、
この問題を解決することができる。サブレンジを作成する瞬間の実行時間は重要
なものではないので、この方法は悪影響を与えない。一方、ページ障害が検出さ
れたときは、物理メモリ位置の割り当てを非常に高速に行う必要がある。
前述の追加の実施形態の変形形態の構成内で、第10c図を参照するとわかる
ように、たとえば、所与のサブセグメントに含まれる仮想アドレスに関してペー
ジ障害が起こったものと仮定する。仮想範囲が作成されるときに、任意のランク
pおよびp+1を有する2つの連続サブセグメントに細分され分配されたものと
仮定する。
この場合、「ハッシュ」テーブルThのエントリpとエントリp+1は共に、
仮想アドレス範囲が作成されるときに前述の
「システム方式」型の命令によって初期設定される。ページ障害が起こると、「
ハッシュ」テーブルThの1つのエントリのみが使用される。これは、このペー
ジ障害に関連付けされたエントリ、すなわちこの場合も、サブセグメント(アド
レスpno)に対応するエントリである。
これらのエントリLRa1pなど、また、LRa1(P+1)などに関連付けされたリ
スト要素が存在する場合、これらのリスト要素はそれそれ、前述のページ障害を
生じさせたアドレスのために適用されるメモリ割り当て方式を判定するために走
査される。
より一般的には、複数のサブセグメントに対応する複数のエントリが使用され
、所与の仮想範囲が1つのサブセグメント内、すなわち、前述の例では1MBの
仮想サブスペース内に含まれるときには1つのエントリのみが使用される。
上記を読むことによって、本発明がその目的を達することは明らかである。
本発明では、アプリケーションの特定のプロファイルと、アプリケーションが
使用する様々な種類のメモリとを考慮に入れて、メモリ空間の用途をアプリケー
ションの実際のニーズに適
合させることも可能である。さらに、追加の実施形態では、仮想範囲を使用する
アプリケーションをわずかに修正する代わりに、レベルをより細密なレベル、す
なわち、「仮想範囲」と呼ばれているもののレベルに下げることによって、高い
最適度を得ることができる。しかし、この好ましい実施形態をマシンで実施する
場合でも、すべての種類のアプリケーションを修正する必要があるわけではない
。未修正のアプリケーションをそのまま実行することができ、このようなアプリ
ケーションは、プロセスの第1の実施形態から与えられる性能の向上による利益
を得ることができ、かつメモリ割り当て方式はセグメントレベルで適用できる方
式である。一般に、予想される性能面の利得の大きいアプリケーション、すなわ
ち、ディスクやネットワーク「ドライバ」など、ローカライズするのが重要な仮
想空間でデータを処理するアプリケーションを修正すれば十分である。
しかし、本発明が、明示的に説明した例示的な実施形態に限定されないことは
明らかである。特に、このプロセスは、上記の1組の定義済みメモリ割り当て規
則に限定されない。
本発明が、前述の「NUMA」型のマルチプロセッサアーキテクチャに特に適
しているが、この種のアプリケーションのみ
に限定されないことも明らかである。本発明のプロセスは有利には、物理メモリ
が複数のマシンまたはモジュールの間で分配されるかどうかにかかわらず、該メ
モリへのアクセスが一様には行われない任意のデータ処理システムに適用される
。
最後に、本発明は「UNIX」環境または同様な環境のオペレーティングシス
テムに特に適しているが、本発明のプロセスがこの環境のみに限定されないこと
は明らかである。
─────────────────────────────────────────────────────
フロントページの続き
(81)指定国 EP(AT,BE,CH,CY,
DE,DK,ES,FI,FR,GB,GR,IE,I
T,LU,MC,NL,PT,SE),AU,BR,C
N,JP,KR
Claims (1)
- 【特許請求の範囲】 1.非一様アクセスメモリユニット(Mem)を備え複数の仮想メモリタイプ (tyM1〜tyM6)を使用するデータ処理システム(1’)で実行される所与 のソフトウェアアプリケーション(Applix)に関連付けされた仮想アドレ ス空間内の少なくとも1つの連続メモリアドレス範囲を用いた、アドレス対応テ ーブルを走査することによって行われるマッピングによって、物理メモリ位置を 割り当てる方法であって、1組の定義済みの規則から選択されたメモリ割り当て 規則(Rg)に前記所与のソフトウェアアプリケーション(Applix)をリ ンクさせることを含むステップを含み、前記アドレス対応テーブルが、前記所与 のソフトウェアアプリケーション(Applix)に関連付けされた仮想アドレ スの連続メモリアドレス範囲に関するエントリを含まないときに、例外(Fp) を生成するステップと、その後で前記メモリ割り当て規則(Rg)のうちの1つ に従って物理メモリ位置(Z1〜Zn)を割り当てるステップとを含み、規則の選 択が、所与のソフトウェアアプリケーション(Applix)によって使用され る前記仮想メモリタイプ(t yM1〜tyM6)のプロファイル(Pax)に従うことを特徴とする方法。 2.前記連続仮想メモリアドレス範囲が、それぞれの異なる例外タイプ(Fp )を生じさせる複数のカテゴリに細分され、更に、前記例外タイプ(Fp)を判 定することを含む補助ステップを含み、前記メモリ割り当て規則が、前記プロフ ァイルと前記例外タイプ(Fp)の関数であることを特徴とする請求の範囲第1 項に記載の方法。 3.前記仮想アドレス空間がセグメント(Sgx、Sgy)に構成され、前記セ グメント(Sgx、Sgy)が前記メモリ割り当て規則(Rg)に関連付けされる ことを特徴とする請求の範囲第1項または第2項に記載の方法。 4.前記データ処理システム(1’、1”)が少なくとも2つの異なるモジュ ール(Ma〜Mc)を備え、各モジュールが、少なくとも1つのプロセッサ(1 0a〜13a、10b〜13b)と1つのいわゆるローカル物理メモリユニット (14a、14b)とを備え、モジュールの外部に位置するメモリユニットがリ モートと呼ばれ、前記1組の定義済み規則(Rg)が、例外(Fp)が生成され たときにメモリを割り当てるために、 少なくとも、 −メモリ位置を前記ローカルメモリユニットに排他的に割り当てる第1の規則 、 −メモリ位置を前記ローカルメモリユニットおよび前記リモートメモリユニッ トにスライス状に分配することによってメモリ位置を割り当てる第2の規則、 −前記モジュールに割り当てられた数を参照して、事前に確立された固定メモ リ位置を前記ローカルメモリユニットまたは前記リモートメモリユニットに割り 当てる第3の規則の特定の各規則を含むことを特徴とする請求の範囲第1項から 第3項に記載の方法。 5.デフォルト規則と呼ばれる少なくとも1つの追加の所定のメモリ割り当て 規則を含み、それにより、例外(Fp)を生じさせた前記所与のソフトウェアア プリケーション(Applix)が前記特定の規則にリンクされていないときに、 前記デフォルト規則に従ってメモリ割り当てが行われることを特徴とする請求の 範囲第4項に記載の方法。 6.前記所与のソフトウェアアプリケーション(Applix)が、他のアプ リケーションと共用され、すべての前記モジュ ール(Ma、Mb)からほぼ同様にアクセスされる、少なくとも1つのメモリセ グメントを含み、物理メモリ(Mem)の位置を割り当てる前記後続のステップ が前記第2の規則に従って行われ、割り当てが、前記ローカルメモリユニットお よびリモートメモリユニット(14a、14b)に分配することによって行われ ることを特徴とする請求の範囲第4項に記載の方法。 7.前記所与のソフトウェアアプリケーション(Applix)が、前記モジ ュール(Ma、Mc)のうちの1つでローカルにアクセスされる、少なくとも1 つのワーキングメモリセグメントを含み、物理メモリ(Mem)の位置を割り当 てる前記後続のステップが前記第1の規則に従って行われ、割り当てが、前記ロ ーカルメモリユニット(14aまたは14b)で排他的に行われることを特徴と する請求の範囲第4項に記載の方法。 8.前記セグメントが仮想アドレス範囲(Ra1〜Ra5)に細分され、各仮想 アドレス範囲が前記アプリケーション(Applix)のうちの少なくとも1つ を含み、特定のメモリ割り当て規則が関連付けされた少なくとも1つの仮想アド レス範囲(Ra1〜Ra5)があるかどうかを指定する第1のデジタルデータが与 えられ、前記方式が、前記メモリ割り当ての性質を指 定する少なくとも1つの第2のデジタルデータと、前記モジュール(Ma〜Mc )のうちの1つをアドレス指定する任意選択の番号を含むことを特徴とする請求 の範囲第4項から第7項に記載の方法。 9.前記仮想アドレス範囲(Ra1〜Ra5)に含まれるアドレスに関する例外 (Fp)の前記生成時に、前記第1のデジタルデータを読み取るステップと、そ の後で、前記例外が前記仮想アドレス範囲(Ra1〜Ra5)のどれにも対応しな いメモリのアドレスに変換されたときに、セグメント(Sgx、Sgy)を支配す るメモリ割り当て規則に従って物理メモリ位置を割り当てることを含むステップ とを含むことを特徴とする請求の範囲第8項に記載の方法。 10.前記デジタルデータが、 メモリ位置を前記ローカルメモリユニットに排他的に割り当てる第1の規則、 メモリ位置を前記ローカルメモリユニットと前記リモートメモリユニットにス ライス状に分配することによって割り当てる第2の規則、 事前に確立された固定メモリ位置を前記ローカルメモリユニ ットまたは前記リモートメモリユニットに割り当てる第3の規則、 前記データ処理システムのグローバルメモリ割り当て方式に従ってメモリ位置 を割り当て、前記第1から第3の規則のうちの1つの種類である、第4のいわゆ るデジタル規則の各規則のうちの少なくとも1つを指定することを特徴とする請 求の範囲第8項に記載の方法。 11.前記デジタルデータが、前記第2または第3のメモリ割り当て規則を指 定するとき、前記第3のデータがモジュール番号(Ma〜Mc)を含み、このモ ジユール番号から、前記メモリ割り当てを行わなければならないモジュール(M a〜Mc)が判定されることを特徴とする請求の範囲第10項に記載の方法。 12.前記データ処理システムが、前記仮想空間の前記セグメント(Sgx、 Sgy)の数に等しい数のエントリを含むセグメント(Scb)を記述するテー ブルを備え、更に、前記セグメント記述テーブル(Scb)に前記メモリ割り当 て方式を記録する初期ステップと、前記プロファイル(Pax)に関連付けされ た前記アプリケーション(Applix)によって占有され る仮想メモリ空間に前記プロファイル(Pax)を記録する初期ステップとを含 むことを特徴とする請求の範囲第10項または第11項に記載の方法。 13.前記各メモリ割り当て方式レコード(Mpy)が、前記第1のデジタル データを記憶する第1のフィールドと、前記第2のデジタルデータを記憶する第 2のフィールドと、前記第3のデジタルデータを記憶する第3のフィールドとを 含むことを特徴とする請求の範囲第12項に記載の方法。 14.前記レコードが2つの補助フィールドを含み、第1のフィールドが、前 記仮想アドレス範囲の、所与のセグメント(Sgx、Sgy)中の下限アドレスを 指定するデジタルデータを記憶し、第2のフィールドが、この仮想アドレス範囲 の上限アドレスを指定するデジタルデータを記憶し、更に、 前記アプリケーションが要求されたときに、特定のメモリ割り当て方式に関連 付けされた少なくとも1つの仮想範囲を含む各セグメントごとに、前記セグメン ト(Sgx、Sgy)に含まれる前記仮想アドレス範囲(Ra1〜Ra5)の数に等 しい数の縦続された要素(LRa1〜LRaZ)を含むリスト構造を作成すること を含み、各要素が、前記メモリ割り当て方式レコード と前記第1および第2の補助アドレスフィールドを記憶し、かつ1つの仮想アド レス範囲(Ra1〜Ra5)に関連付けされる予備フェーズと、 その後で、所与のセグメント(Sgx、Sgy)に含まれるアドレスで例外(Fp )が生成されたときに実行され、少なくとも、 a/縦続リスト構造の前記要素(LRa1〜LRaZ)に記憶されているデジタ ルデータを読み取ることを含む連続ステップ、 b/各リスト要素ごとに、例外(Fp)を生じさせた前記アドレスと前記下限 アドレスおよび上限アドレスを比較することを含むステップ、 c/比較結果が肯定的な結果である場合に、前記第2および第3のデジタルデ ータを読み取り、番号が前記規則の関数として任意選択で指定されたモジュール (Ma〜Mc)で実行される、該規則による物理メモリ割り当てを生成し、前記 第2のデジタルデータによって指定された規則がない場合には、仮想アドレス範 囲(Ra1〜Ra5)を含むセグメント(Sgx、Sgy)を支配するメモリ割り当 て規則に従って物理メモリ位置を割り当てるステップの各ステップを含むフェー ズとを含むことを特徴とする請求の範囲第13項に記載の方法。 15.前記レコードが2つの補助フィールドを含み、第1のフィールドが、前 記仮想アドレス範囲(Ra1〜Ra5)の、所与のセグメント中の下限アドレスを 指定するデジタルデータを記憶し、第2のフィールドが、この仮想アドレス範囲 (Ra1〜Ra5)の上限アドレスを指定するデジタルデータを記憶し、更に、 1/特定のメモリ割り当て方式に関連付けされた少なくとも1つの仮想範囲を 含む前記各セグメント(Sgy)を同じ固定長を有するサブセグメント(SSI〜 SSN)に細分することを含む第1のステップ、 2/サブセグメント(SS1〜SSN)と同数のエントリ(e1〜eN)を含むテ ーブル(Th)を作成することを含む第2のステップの各ステップを含む第1の 予備補助フェーズと、 −前記各エントリに関連付けされた各サブセグメント(SS1〜SSN)ごとに 、サブセグメント(SSI〜SSN)に含まれる前記仮想アドレス範囲(Ra02〜 Ra22)の数に等しい数の縦続要素(LRa12〜LRa22、LRa14、LRa17 〜LRa37)を含むリスト構造を作成することを含み、各要素が、前記メモリ割 り当て方式レコードと前記第1および第2の補助 アドレスフィールドを記憶し、かつ1つの仮想アドレス範囲(Ra02〜Ra22)に 関連付けされる第2の予備補助フェーズと、 −その後で、所与のサブセグメント(SS1〜SSN)に含まれるアドレスで例 外が生成されたときに実行され、少なくとも、 a/前記例外を生じさせた前記アドレスに関連付けされたテーブル(Th)の 前記エントリを読み取り、前記読取りに基づいて、前記サブセグメント(SS1 〜SSN)が、特定のメモリ割り当て方式によって支配される仮想アドレス範囲( Ra1〜Ra5)を含むかどうかを判定し、判定結果が否定的な結果である場合に 、前記セグメント(Sgy)を支配する規則を使用するステップ、 b/判定結果が肯定的な結果である場合に、前記例外を生じさせたアドレスに リンクされたエントリに関連付けされた縦続リスト構造の前記要素(LRa12〜 LRa22、LRa14、LRa17〜LRa37)に記憶されているデジタルデータを 読み取ることを含む連続ステツプ、 c/前記各要素(LRa12〜LRa22、LRa14、LRa17〜LRa37)ごと に、例外を生じさせた前記アドレスと前記下限アドレスおよび上限アドレスを比 較することを含むステ ップ、 d/比較結果が肯定的な結果である場合に、前記第2および第3のデジタルデ ータを読み取り、前記規則の関数として任意選択で指定されたモジュール番号( Ma〜Mc)で実行される、該規則による物理メモリ割り当てを生成するステッ プの各ステップを含むフェーズとを含むことを特徴とする請求の範囲第13項に 記載の方法。 16.前記仮想メモリアドレス範囲(Ra02〜Ra22)が可変長を有し、前記 長さが固定長の前記サブセグメント(SS1〜SSN)の長さよりも大きいときに 、前記仮想メモリアドレス範囲が、サブセグメント(SS1〜SSN)に含まれる サブスペースに細分されることを特徴とする請求の範囲第15項に記載の方法。 17.前記セグメント(Sgy)が、256MBの連続する仮想空間にわたっ て延び、前記テーブル(Th)が256個のエントリ(e1〜eN)を含み、各エ ントリが1MBのサブセグメント(SS1〜SSN)に対応することを特徴とする 請求の範囲第15項または第16項に記載の方法。
Applications Claiming Priority (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR9711025A FR2767938B1 (fr) | 1997-09-04 | 1997-09-04 | Procede d'allocation de memoire dans un systeme de traitement de l'information multiprocesseur |
| FR97/11025 | 1997-09-04 | ||
| FR98/08058 | 1998-06-25 | ||
| FR9808058A FR2767939B1 (fr) | 1997-09-04 | 1998-06-25 | Procede d'allocation de memoire dans un systeme de traitement de l'information multiprocesseur |
| PCT/FR1998/001855 WO1999012099A1 (fr) | 1997-09-04 | 1998-08-26 | Procede d'allocation de memoire dans un systeme de traitement de l'information multiprocesseur |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2000506659A true JP2000506659A (ja) | 2000-05-30 |
Family
ID=26233786
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP11516373A Pending JP2000506659A (ja) | 1997-09-04 | 1998-08-26 | マルチプロセッサデータ処理システム内でメモリを割り当てる方法 |
Country Status (8)
| Country | Link |
|---|---|
| US (1) | US6272612B1 (ja) |
| EP (1) | EP0935781A1 (ja) |
| JP (1) | JP2000506659A (ja) |
| CN (1) | CN1237252A (ja) |
| AU (1) | AU9079398A (ja) |
| BR (1) | BR9806150A (ja) |
| FR (1) | FR2767939B1 (ja) |
| WO (1) | WO1999012099A1 (ja) |
Families Citing this family (69)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| FR2774788B1 (fr) | 1998-02-12 | 2000-03-24 | Bull Sa | Procede de controle d'acces memoire sur une machine avec memoire a acces non uniforme et machine pour mettre en oeuvre ce procede |
| US20020032844A1 (en) * | 2000-07-26 | 2002-03-14 | West Karlon K. | Distributed shared memory management |
| US6742105B1 (en) * | 2000-12-22 | 2004-05-25 | Silicon Access Networks | Method and system for range matching |
| US6871219B2 (en) | 2001-03-07 | 2005-03-22 | Sun Microsystems, Inc. | Dynamic memory placement policies for NUMA architecture |
| DE10113577A1 (de) | 2001-03-20 | 2003-01-09 | Sap Ag | Verfahren, Computerprogrammprodukt und Computersystem zur Unterstützung mehrerer Anwendungssysteme mittels eines einzelnen Datenbank-Systems |
| US7117488B1 (en) * | 2001-10-31 | 2006-10-03 | The Regents Of The University Of California | Safe computer code formats and methods for generating safe computer code |
| US20030110205A1 (en) * | 2001-12-07 | 2003-06-12 | Leith Johnson | Virtualized resources in a partitionable server |
| US7734811B2 (en) * | 2001-12-07 | 2010-06-08 | Cisco Technology, Inc. | Multi-feature classification memory structure for associative matching |
| IL147073A0 (en) * | 2001-12-10 | 2002-08-14 | Monosphere Ltd | Method for managing the storage resources attached to a data network |
| CN1295609C (zh) * | 2001-12-14 | 2007-01-17 | 皇家飞利浦电子股份有限公司 | 数据处理系统、通信装置和处理数据的方法 |
| US7433948B2 (en) * | 2002-01-23 | 2008-10-07 | Cisco Technology, Inc. | Methods and apparatus for implementing virtualization of storage within a storage area network |
| US6823498B2 (en) * | 2002-01-09 | 2004-11-23 | International Business Machines Corporation | Masterless building block binding to partitions |
| US7579771B2 (en) * | 2002-04-23 | 2009-08-25 | Semiconductor Energy Laboratory Co., Ltd. | Light emitting device and method of manufacturing the same |
| US7786496B2 (en) | 2002-04-24 | 2010-08-31 | Semiconductor Energy Laboratory Co., Ltd. | Semiconductor device and method of manufacturing same |
| JP2003317971A (ja) | 2002-04-26 | 2003-11-07 | Semiconductor Energy Lab Co Ltd | 発光装置およびその作製方法 |
| US7897979B2 (en) * | 2002-06-07 | 2011-03-01 | Semiconductor Energy Laboratory Co., Ltd. | Light emitting device and manufacturing method thereof |
| US7937704B2 (en) * | 2002-06-20 | 2011-05-03 | British Telecommunications Public Limited Company | Distributed computer |
| JP4216008B2 (ja) | 2002-06-27 | 2009-01-28 | 株式会社半導体エネルギー研究所 | 発光装置およびその作製方法、ならびに前記発光装置を有するビデオカメラ、デジタルカメラ、ゴーグル型ディスプレイ、カーナビゲーション、パーソナルコンピュータ、dvdプレーヤー、電子遊技機器、または携帯情報端末 |
| US6986016B2 (en) * | 2002-09-30 | 2006-01-10 | International Business Machines Corporation | Contiguous physical memory allocation |
| US7613836B2 (en) * | 2002-10-04 | 2009-11-03 | Starent Networks Corporation | Managing resources for IP networking |
| JP4373086B2 (ja) | 2002-12-27 | 2009-11-25 | 株式会社半導体エネルギー研究所 | 発光装置 |
| GB0230331D0 (en) * | 2002-12-31 | 2003-02-05 | British Telecomm | Method and apparatus for operating a computer network |
| JP2006525607A (ja) * | 2003-04-30 | 2006-11-09 | シリコン・グラフィックス・インコーポレイテッド | コンピュータシステムにおいてアドレス変換を実行するシステム及び方法 |
| US7114040B2 (en) * | 2004-03-02 | 2006-09-26 | Hewlett-Packard Development Company, L.P. | Default locality selection for memory objects based on determining the type of a particular memory object |
| US7426622B2 (en) * | 2004-03-10 | 2008-09-16 | Hewlett-Packard Development Company, L.P. | Rapid locality selection for efficient memory allocation |
| US7574419B2 (en) * | 2004-05-13 | 2009-08-11 | Oracle International Corporation | Automatic tuning of undo retention |
| US8756200B2 (en) * | 2004-05-14 | 2014-06-17 | Oracle International Corporation | Undo advisor |
| JP2005332145A (ja) * | 2004-05-19 | 2005-12-02 | Nec Electronics Corp | データ転送制御回路及びデータ転送方法 |
| GB0412655D0 (en) * | 2004-06-07 | 2004-07-07 | British Telecomm | Distributed storage network |
| US7930539B2 (en) * | 2004-08-03 | 2011-04-19 | Hewlett-Packard Development Company, L.P. | Computer system resource access control |
| US20060031672A1 (en) * | 2004-08-03 | 2006-02-09 | Soltis Donald C Jr | Resource protection in a computer system with direct hardware resource access |
| US7340582B2 (en) * | 2004-09-30 | 2008-03-04 | Intel Corporation | Fault processing for direct memory access address translation |
| CN101963917B (zh) * | 2004-12-31 | 2016-03-02 | 钟巨航 | 具有多个子系统的数据处理系统及方法 |
| US7447869B2 (en) * | 2005-04-07 | 2008-11-04 | Ati Technologies, Inc. | Method and apparatus for fragment processing in a virtual memory system |
| US7996585B2 (en) * | 2005-09-09 | 2011-08-09 | International Business Machines Corporation | Method and system for state tracking and recovery in multiprocessing computing systems |
| US7801932B2 (en) * | 2005-10-11 | 2010-09-21 | Oracle International Corporation | Undo hints to speed up segment extension and tuning of undo retention |
| US7885939B2 (en) * | 2005-10-11 | 2011-02-08 | Oracle International Corporation | Longest query duration for auto tuning undo retention |
| TWI348652B (en) * | 2005-10-17 | 2011-09-11 | Via Tech Inc | Driver assisted asynchronous command processing |
| US7693884B2 (en) * | 2006-01-02 | 2010-04-06 | International Business Machines Corporation | Managing storage systems based on policy-specific proability |
| US7599973B2 (en) * | 2006-01-12 | 2009-10-06 | Sun Microsystems, Inc. | Method and apparatus for decreasing object copying by a generational, copying garbage collector |
| US20070198328A1 (en) | 2006-02-09 | 2007-08-23 | Fuller William T | Storage Capacity Planning |
| US7844652B2 (en) * | 2006-04-11 | 2010-11-30 | Emc Corporation | Efficient computation of sketches |
| US7949824B2 (en) * | 2006-04-11 | 2011-05-24 | Emc Corporation | Efficient data storage using two level delta resemblance |
| US7562186B2 (en) * | 2006-04-11 | 2009-07-14 | Data Domain, Inc. | Efficient data storage using resemblance of data segments |
| US20080005529A1 (en) * | 2006-06-30 | 2008-01-03 | Morris Robert P | Methods, Systems, and Computer Program Products for Providing Access to Addressable Entities Using a Non-Sequential Virtual Address Space |
| US20080005728A1 (en) * | 2006-06-30 | 2008-01-03 | Robert Paul Morris | Methods, systems, and computer program products for enabling cross language access to an addressable entity in an execution environment |
| US20080005528A1 (en) * | 2006-06-30 | 2008-01-03 | Morris Robert P | Methods, Systems, and Computer Program Products for Using a Structured Data Storage System to Provide Access to Addressable Entities in Virtual Address Space |
| US20080005727A1 (en) * | 2006-06-30 | 2008-01-03 | Robert Paul Morris | Methods, systems, and computer program products for enabling cross language access to an addressable entity |
| US20080127220A1 (en) * | 2006-06-30 | 2008-05-29 | Robert Paul Morris | Methods, systems, and computer program products for creating an input-value-specific loadable instance of an application |
| US20080005752A1 (en) * | 2006-06-30 | 2008-01-03 | Robert Paul Morris | Methods, systems, and computer program products for generating application processes by linking applications |
| US20080005719A1 (en) * | 2006-06-30 | 2008-01-03 | Morris Robert P | Methods, systems, and computer program products for providing a program execution environment |
| US7734890B2 (en) * | 2006-10-06 | 2010-06-08 | Okralabs Llc | Method and system for using a distributable virtual address space |
| US20080221974A1 (en) * | 2007-02-22 | 2008-09-11 | Alexander Gilgur | Lazy Evaluation of Bulk Forecasts |
| US8768895B2 (en) * | 2007-04-11 | 2014-07-01 | Emc Corporation | Subsegmenting for efficient storage, resemblance determination, and transmission |
| US20080320459A1 (en) * | 2007-06-22 | 2008-12-25 | Morris Robert P | Method And Systems For Providing Concurrency Control For Addressable Entities |
| US20080320282A1 (en) * | 2007-06-22 | 2008-12-25 | Morris Robert P | Method And Systems For Providing Transaction Support For Executable Program Components |
| US9102962B2 (en) * | 2007-10-16 | 2015-08-11 | Shiu Nan Chen | Production method for solid cultured active mushroom mycelium and fruit-body metabolites (AMFM) products thereof |
| JP5401903B2 (ja) * | 2008-10-03 | 2014-01-29 | 富士通株式会社 | 故障情報監視装置及び故障情報監視方法 |
| CN101729272B (zh) * | 2008-10-27 | 2013-01-23 | 华为技术有限公司 | 内容分发方法、系统、设备及媒体服务器 |
| GB2485876A (en) * | 2009-09-17 | 2012-05-30 | Ibm | Address server |
| US9817700B2 (en) * | 2011-04-26 | 2017-11-14 | International Business Machines Corporation | Dynamic data partitioning for optimal resource utilization in a parallel data processing system |
| GB2500707B (en) | 2012-03-30 | 2014-09-17 | Cognovo Ltd | Multiprocessor system, apparatus and methods |
| KR102086019B1 (ko) * | 2012-06-08 | 2020-04-14 | 어드밴스드 마이크로 디바이시즈, 인코포레이티드 | 이종 프로세서를 사용하여 애플리케이션에 낮은 레이턴시를 제공하는 시스템 및 방법 |
| US9483263B2 (en) * | 2013-03-26 | 2016-11-01 | Via Technologies, Inc. | Uncore microcode ROM |
| EP3292472A1 (en) * | 2015-07-30 | 2018-03-14 | Hewlett-Packard Enterprise Development LP | Memory access control method and system |
| CN106250241A (zh) * | 2016-08-02 | 2016-12-21 | 合肥奇也信息科技有限公司 | 一种多方向分配数据处理系统资源到应用程序的方法 |
| WO2019061072A1 (en) * | 2017-09-27 | 2019-04-04 | Intel Corporation | COMPUTER PROGRAM PRODUCT, SYSTEM AND METHOD FOR MANAGING ACCESS TO STORAGE RESOURCES FROM MULTIPLE APPLICATIONS |
| US10983832B2 (en) | 2019-02-14 | 2021-04-20 | International Business Machines Corporation | Managing heterogeneous memory resource within a computing system |
| US11567803B2 (en) | 2019-11-04 | 2023-01-31 | Rambus Inc. | Inter-server memory pooling |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6105053A (en) * | 1995-06-23 | 2000-08-15 | Emc Corporation | Operating system for a non-uniform memory access multiprocessor system |
-
1998
- 1998-06-25 FR FR9808058A patent/FR2767939B1/fr not_active Expired - Fee Related
- 1998-08-26 JP JP11516373A patent/JP2000506659A/ja active Pending
- 1998-08-26 WO PCT/FR1998/001855 patent/WO1999012099A1/fr not_active Ceased
- 1998-08-26 CN CN98801271A patent/CN1237252A/zh active Pending
- 1998-08-26 BR BR9806150-0A patent/BR9806150A/pt not_active IP Right Cessation
- 1998-08-26 AU AU90793/98A patent/AU9079398A/en not_active Abandoned
- 1998-08-26 EP EP98942788A patent/EP0935781A1/fr not_active Withdrawn
- 1998-09-02 US US09/145,642 patent/US6272612B1/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| WO1999012099A1 (fr) | 1999-03-11 |
| BR9806150A (pt) | 1999-10-26 |
| FR2767939A1 (fr) | 1999-03-05 |
| EP0935781A1 (fr) | 1999-08-18 |
| AU9079398A (en) | 1999-03-22 |
| US6272612B1 (en) | 2001-08-07 |
| CN1237252A (zh) | 1999-12-01 |
| FR2767939B1 (fr) | 2001-11-02 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2000506659A (ja) | マルチプロセッサデータ処理システム内でメモリを割り当てる方法 | |
| US5802341A (en) | Method for the dynamic allocation of page sizes in virtual memory | |
| US4742450A (en) | Method to share copy on write segment for mapped files | |
| US6591355B2 (en) | Distributed shared memory system with variable granularity | |
| US5784697A (en) | Process assignment by nodal affinity in a myultiprocessor system having non-uniform memory access storage architecture | |
| US6026475A (en) | Method for dynamically remapping a virtual address to a physical address to maintain an even distribution of cache page addresses in a virtual address space | |
| US7818489B2 (en) | Integrating data from symmetric and asymmetric memory | |
| US6049853A (en) | Data replication across nodes of a multiprocessor computer system | |
| US5606685A (en) | Computer workstation having demand-paged virtual memory and enhanced prefaulting | |
| US7103763B2 (en) | Storage and access of configuration data in nonvolatile memory of a logically-partitioned computer | |
| US5539899A (en) | System and method for handling a segmented program in a memory for a multitasking data processing system utilizing paged virtual storage | |
| US5899994A (en) | Flexible translation storage buffers for virtual address translation | |
| US6629111B1 (en) | Memory allocation system | |
| JP2019523920A (ja) | ページ・フォールト解決法 | |
| US6961840B2 (en) | Method and apparatus for managing a dynamic alias page table | |
| US5996055A (en) | Method for reclaiming physical pages of memory while maintaining an even distribution of cache page addresses within an address space | |
| JPH07271674A (ja) | キャッシュ最適化の方法 | |
| US5940868A (en) | Large memory allocation method and apparatus | |
| US7721047B2 (en) | System, method and computer program product for application-level cache-mapping awareness and reallocation requests | |
| US6457107B1 (en) | Method and apparatus for reducing false sharing in a distributed computing environment | |
| US7757034B1 (en) | Expansion of virtualized physical memory of virtual machine | |
| US6016529A (en) | Memory allocation technique for maintaining an even distribution of cache page addresses within a data structure | |
| US5319761A (en) | Directory look-aside table for a virtual storage system including means for minimizing synonym entries | |
| EP0919927A2 (en) | Dynamic memory allocation technique for maintaining an even distribution of cache page addresses within an address space | |
| WO2015161804A1 (zh) | 一种Cache分区的方法及装置 |