[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP2002123424A - コンピュータ・システムにおいてメモリを動的に再割当てするシステムおよび方法 - Google Patents

コンピュータ・システムにおいてメモリを動的に再割当てするシステムおよび方法

Info

Publication number
JP2002123424A
JP2002123424A JP2001247482A JP2001247482A JP2002123424A JP 2002123424 A JP2002123424 A JP 2002123424A JP 2001247482 A JP2001247482 A JP 2001247482A JP 2001247482 A JP2001247482 A JP 2001247482A JP 2002123424 A JP2002123424 A JP 2002123424A
Authority
JP
Japan
Prior art keywords
data
storage area
memory unit
memory
storage
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.)
Granted
Application number
JP2001247482A
Other languages
English (en)
Other versions
JP3872968B2 (ja
JP2002123424A5 (ja
Inventor
Honang Brian
ブライアン・ホーナング
L Ziegler Michael
ミッシェル・エル・ジィーグラー
K Traynor Michael
ミッシェル・ケイ・トレイナー
Gregory S Palmer
グレゴリー・エス・パルマー
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.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JP2002123424A publication Critical patent/JP2002123424A/ja
Publication of JP2002123424A5 publication Critical patent/JP2002123424A5/ja
Application granted granted Critical
Publication of JP3872968B2 publication Critical patent/JP3872968B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】 コンピュータ・システムにアプリケーション
の実行の停止を必要とすることなくデータが様々な記憶
域間で移動されるように、コンピュータ・システム内の
メモリを動的に再割当てするシステムおよび方法を提供
する 【解決手段】 アーキテクチャにおいて、本発明のシス
テムは、複数のメモリ・ユニット、マッパーおよびシス
テム・マネージャを利用する。各メモリ・ユニットは、
データを記憶する記憶域を含む。そのようなデータ値
は、マッパーに結合された1つまたは複数の処理装置か
ら送られる要求に応じてアクセスされる。マッパーが、
データ値にアクセスする要求を受け取ると、マッパー
は、マッパーによって維持されている複数のマッピング
のうちの1つに基づいて、要求に含まれているバス・ア
ドレスをメモリ・ユニット・アドレスに変換する。メモ
リ・ユニット・アドレスは、要求されたデータ値を記憶
している記憶域のうちの1つを識別する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、一般に、データ処
理技術に関し、詳細には、再割当てによってデータ・エ
ラーが生じないようにしながらコンピュータ・システム
においてメモリを動的に再割当てする方法に関する。
【0002】
【従来の技術】大型コンピュータ・システム(または、
サーバ)は、様々なアプリケーションに十分な命令およ
びデータ記憶容量を提供するために複数のメモリ・ユニ
ットを使用することが多い。各メモリ・ユニットは、デ
ータを記憶することができる1つまたは複数のビットか
らなる多数の記憶域を有し、各記憶域は、今後「メモリ
・ユニット・アドレス」と呼ぶ特定のメモリ・アドレス
と関連付けられ、それにより識別される。データを記憶
する命令が実行されるとき、実際にデータを記憶する記
憶域を識別するメモリ・ユニット・アドレスを得るため
に、命令によって定義されたバス・アドレスが使用され
る。この点について、マッパーが、そのバス・アドレス
をバス・アドレスと異なる値を有するメモリ・ユニット
・アドレスにマップまたは変換することが多い。異なる
メモリ・ユニット・アドレスにマップしたバス・アドレ
スを利用することに関連した様々な利点がある。
【0003】たとえば、多くのコンピュータ・アプリケ
ーションは、バス・アドレスを連続的に使用するように
プログラムされる。換言すると、データを記憶するため
に最初に使用されるバス・アドレスとしてバス・アドレ
スの1つが選択される。新しいバス・アドレスをデータ
の記憶に利用するときは、前に使用したバス・アドレス
を増分することにより新しいバス・アドレスを得る。
【0004】同じメモリ・ユニット内のメモリ・ユニッ
ト・アドレスに連続したバス・アドレスがマップされる
場合は、むだが生じることがある。この点に関して、メ
モリ・ユニットからのデータを記憶し取り出すためにあ
る程度の時間が必要とされる。連続した2つのデータ記
憶が同じメモリ・ユニットに行われる場合、第2のデー
タ記憶は、第1のデータ記憶が完了するまで待たなけれ
ばならず、その後で第2のデータ記憶を行うことができ
るる。しかしながら、連続した2つのデータ記憶が、異
なるメモリ・ユニットに行われる場合は、第1のデータ
記憶が完了する前に第2のデータ記憶が始まることがあ
る。メモリ待ち時間を最小にしメモリ帯域幅を最大にす
るためには、連続したバス・アドレスが、できるだけ多
くのメモリ・ユニットにアクセスしなければならない。
このことは、また、メモリ・インターリーブを最大にす
るように説明することができる。
【0005】その結果、前述のマッパーは、しばしば、
連続した各バス・アドレスが異なるメモリ・ユニット内
のメモリ・ユニット・アドレスに変換されるようにバス
・アドレスをメモリ・ユニット・アドレスにマップする
ように設計される。たとえば、第1の値を有するバス・
アドレスが、第1のメモリ・ユニットの記憶域を識別す
るメモリ・ユニット・アドレスにマップされ、次に高い
値を有するバス・アドレスが、メモリ・ユニットの記憶
域を識別するメモリ・ユニット・アドレスにマップされ
る。したがって、単一のコンピュータ・アプリケーショ
ンからの2つの連続したデータ記憶が同じメモリ・ユニ
ット内に行われない可能性がある。換言すると、コンピ
ュータ・アプリケーションからの連続したデータ記憶
が、メモリ・ユニット全体にわたってインターリーブさ
れる可能性がある。
【0006】1つまたは複数のメモリ・ユニットのいく
つかの記憶域に記憶されたデータ値を、1つまたは複数
のメモリ・ユニット内の他の記憶域に移動することが望
ましい状況がある。たとえば、メモリ・ユニットが低い
信頼度で動作しているときにメモリ・ユニットのうちの
1つを除去することが望ましい場合がある。除去された
メモリ・ユニットに記憶されている可能性のあるデータ
の損失を防ぐために、メモリ・ユニットを除去する前に
メモリ・ユニットを使用するコンピュータ・システムが
シャット・ダウンされることがある。メモリ・ユニット
を除去した後、コンピュータ・システムが再起動され
る。この再起動が完了するまでコンピュータ・システム
はどのアプリケーションも実行できないため、コンピュ
ータ・システムのシャットダウンと再起動は、メモリ・
ユニットを除去することによる望ましくない結果である
ことは明らかである。
【0007】コンピュータ・システムをシャットダウン
することなくメモリ・ユニットをコンピュータ・システ
ムから除去することができるいくつかの技術が開発され
た。たとえば、プロセッサの仮想記憶マッピング・シス
テムを使用して、物理アドレスを再マップすることがで
きる。その結果、除去されたメモリ・ユニットが新しい
メモリ・ユニットと交換されるまで、アプリケーション
が一時的に停止し、除去するメモリ・ユニットからディ
スクやその他のデータ記憶装置にデータが複写される。
アプリケーションの実行を停止させる主な理由は、除去
するメモリ・ユニットに記憶しかつ/または取出す試み
を防ぎデータ・エラーを防止することである。マルチス
レッド・アプリケーションのすべてのスレッドならびに
入出力システムは、常に、記憶域の見方が一貫していな
ければならない。
【0008】除去したメモリ・ユニットが交換された
後、除去されたメモリ・ユニットから複写された前述の
データが、新しいメモリ・ユニットに書き込まれる。次
に、アプリケーションの実行が再開される。以上の方法
は、コンピュータ・システムがアプリケーションを実行
できない時間を短縮するが、コンピュータ・システムが
アプリケーションを実行できない時間がまだある程度あ
る。
【0009】データを移動させることが望ましい他の状
況があることに注意されたい。たとえば、メモリ内のデ
ータの移動が望ましい場合があるもう1つの状況は、メ
モリ・レンジのインターリーブを改善し、それによりシ
ステムのパフォーマンスを改善することである。データ
を別のメモリ・ユニットとの間で移動するときは、コン
ピュータ・システムが、アプリケーションを実行できな
い時間を最小限に抑えることが望ましい。
【0010】
【発明が解決しようとする課題】したがって、当業界に
おいて、コンピュータ・システムにアプリケーションの
実行の停止を必要とすることなくデータが様々な記憶域
間で移動されるように、コンピュータ・システム内のメ
モリを動的に再割当てするシステムおよび方法を提供す
るこれまで取り組まれなかった必要性が存在する。
【0011】
【課題を解決するための手段】本発明は、以上考察した
ような従来技術の欠点および欠陥を克服する。一般に、
本発明は、コンピュータ・メモリを動的に再割当てする
システムおよび方法を提供する。
【0012】アーキテクチャにおいて、本発明のシステ
ムは、複数のメモリ・ユニット、マッパーおよびシステ
ム・マネージャを利用する。各メモリ・ユニットは、デ
ータを記憶する記憶域を含む。そのようなデータ値は、
マッパーに結合された1つまたは複数の処理装置から送
られる要求に応じてアクセスされる。マッパーが、デー
タ値にアクセスする要求を受け取ると、マッパーは、マ
ッパーによって維持されている複数のマッピングのうち
の1つに基づいて、要求に含まれているバス・アドレス
をメモリ・ユニット・アドレスに変換する。メモリ・ユ
ニット・アドレスは、要求されたデータ値を記憶してい
る記憶域のうちの1つを識別する。
【0013】データ値を元記憶域(source memory lo
cation)から宛先記憶域(destination memory locat
ion)に移動させる際、元記憶域を識別するポインタ
が、宛先記憶域に記憶される。そのポインタが宛先記憶
域に記憶されている間に、システム・マネージャは、前
述のバス・アドレスを宛先記憶域を識別するメモリ・ユ
ニット・アドレスに変換するようにマッパーが構成され
るようにマッピングを更新する。マッパーが受け取った
要求のバス・アドレスが、前述のデータ値が元記憶域か
ら宛先記憶域に移動される前に、宛先記憶域を識別する
メモリ・ユニット・アドレスに変換された場合は、その
要求に応じてポインタがアクセスされる。したがって、
ポインタのアクセスは、要求されたデータ値が、宛先記
憶域ではなく元記憶域からアクセスされなければならな
いことを示す。
【0014】本発明は、また、1つの記憶域から別の記
憶域にデータを動的に移動させる方法を提供することと
らえることができる。この方法は、バス・アドレスを含
む要求を受け取ってデータにアクセスする段階と、その
バス・アドレスを、複数のマッピングに基づいて、宛先
記憶域と元記憶域を含むの複数の記憶域を識別するメモ
リ・ユニット・アドレスにマップする段階と、バス・ア
ドレスからマップされたメモリ・ユニット・アドレスに
基づいてデータにアクセスする段階と、元記憶域から宛
先記憶域にデータ値を動的に移動させる段階と、元記憶
域を識別するメモリ・ユニット・アドレスにマップされ
たバス・アドレスが、宛先記憶域を識別するメモリ・ユ
ニット・アドレスにマップされるようにマッピングを更
新する段階とによって広義に概念化することができる。
【0015】本発明の他の特徴および利点は、以下の詳
細な説明を添付図面と共に読み検討することによって当
業者に明らかになるであろう。そのようなすべて特徴お
よび利点は、本発明の範囲に含まれ特許請求の範囲によ
り保護されるものである。
【0016】本発明は、添付図面を参照することによっ
てより良く理解することができる。図面の要素は、必ず
しも互いに原寸ではなく、発明の原理を明確に示すこと
に重点が置かれている。さらに、同じ参照数字は、いく
つかの図面にわたって対応する部分を指す。
【0017】
【発明の実施の形態】本発明は、一般に、コンピュータ
・メモリを動的に再割当てするシステムおよび方法に関
する。図1は、本発明を実施するために利用することが
できるコンピュータ・システム12を示す。図1に示し
たように、コンピュータ・システム12は、処理システ
ム15に含まれるメモリに記憶されることが好ましいコ
ンピュータ・アプリケーションの命令を実行するように
構成された処理システム15を含む。処理システム15
は、1つまたは複数のバスを含むことができるローカル
・インタフェース23を介してコンピュータ・システム
12内の他の要素と通信しそれを駆動する。さらに、た
とえばキーボードやマウスなどの入力装置24を使用し
て、システム12のユーザからデータを入力することが
でき、画面表示装置25またはプリンタ26を使用して
ユーザにデータを出力することができる。ディスク記憶
機構27が、ローカル・インタフェース23に接続され
ており、不揮発性ディスク(たとえば、磁気的、光学的
な)と間でデータをやりとりすることができる。システ
ム12は、システム12がネットワーク34とデータを
交換することを可能にするネットワーク・インタフェー
ス33に接続されることができる。
【0018】コンピュータ・システム12は、また、後
でより詳細に説明するように、コンピュータ・システム
12の動作を制御するために使用されるシステム・マネ
ージャ36を含む。システム・マネージャ36は、ソフ
トウェア、ハードウェアまたはそれらの組合せで実施す
ることができる。システム・マネージャ36は、ソフト
ウェアで実施されるとき、コンピュータ・ベース・シス
テム、プロセッサ内蔵システム、あるいは命令実行シス
テム、機器または装置から命令を取り出しその命令を実
行することができる他のシステムのような命令実行シス
テム、機器または装置よって使用されまたはそれらと関
連して使用される任意のコンピュータ可読媒体上に記憶
し移植することができることに注意されたい。たとえ
ば、システム・マネージャ36によって定義される命令
は、処理システム15の1つまたは複数のプロセッサに
よって実行することができる。
【0019】この文書の文脈において、「コンピュータ
可読媒体」は、命令実行システム、機器または装置によ
って使用されまたはそれらと関連して使用されるプログ
ラムを収容、記憶、通信、伝播または伝送することがで
きる任意の手段でよい。コンピュータ可読媒体は、たと
えば、電子的、磁気的、光学的、電磁気的、赤外線、あ
るいは半導体システム、機器、装置または伝搬媒体でよ
いが、これらに制限されない。コンピュータ可読媒体の
より具体的な例(網羅的なリストでない)は、1つまた
は複数の線を有する電気接続(電子)、携帯型コンピュ
ータ・ディスケット(磁気)、ランダム・アクセス・メ
モリ(RAM)(磁気)、読取り専用メモリ(ROM)
(磁気)、消去可能書込み可能な読取り専用メモリ(E
PROMまたはフラッシュ・メモリ)(磁気)、光ファ
イバ(光学)および携帯型コンパクトディスク読取り専
用メモリ(CDROM)(光学)を含む。コンピュータ
可読媒体は、プログラムを、たとえば紙やその他の媒体
の光学的走査によって電子的に捕捉し、コンパイルし、
解釈し、あるいは必要に応じて適切な形で処理し、次に
コンピュータ・メモリに記憶することができるような、
プログラムが印刷された紙または別の適切な媒体でもよ
いことに注意されたい。
【0020】図2に示したように、処理システム15
は、複数のメモリ・システム39a〜39cに結合され
た複数の処理ユニット37a〜37eを含む。図3に示
したように、各処理ユニット37a〜37eは、当技術
分野で周知の技術によって命令を実行するように構成さ
れた1つまたは複数のプロセッサ42を含む。そのよう
な命令は、メモリ・システム39a〜39cの1つまた
は複数に記憶されたコンピュータ・アプリケーションに
よって定義されることが好ましい。
【0021】プロセッサ42のうちの1つによる命令の
実行に応じてデータ値を記憶するとき、プロセッサ42
は、マッパー46に記憶要求を送る。記憶要求は、記憶
するデータ値と、前述のデータ値を記憶する場所を示す
バス・アドレスとを含む。マッパー46は、バス・アド
レスを、メモリ・システム識別子とメモリ・ユニット・
オフセットを含むメモリ・ユニット・アドレスにマップ
するように構成される。メモリ・システム識別子は、メ
モリ・システム39a〜39cのうちの1つを識別す
る。マッパー46は、記憶するデータ値、メモリ・シス
テム識別子、およびメモリ・システム39a〜39cの
それぞれに対するメモリ・ユニット・オフセットを含む
書込み要求を送るように構成される。
【0022】図4に示したように、メモリ・システム3
9a〜39cはそれぞれ、それぞれメモリ・コントロー
ラ52a〜52cとそれぞれメモリ・ユニット55a〜
55cを含む。メモリ・ユニット55a〜55cはそれ
ぞれ、データを記憶し取り出すことができる複数の記憶
域を含む。前述のメモリ・システム識別子によって識別
されたメモリ・システム39a、39bまたは39cの
メモリ・コントローラ52a、52bまたは52cは、
前述のデータ値(すなわち、メモリ・システム識別子お
よびメモリ・ユニット・オフセットと一緒に受け取った
データ値)を、メモリ・ユニット・オフセットに基づい
て、識別したメモリ・システム39a、39bまたは3
9cのメモリ・ユニット55a、55bまたは55cに
記憶するように構成される。この点に関して、メモリ・
ユニット・オフセットは、各メモリ・ユニット55a〜
55c内の記憶域を識別し、識別したメモリ・システム
39a、39bまたは39c内のメモリ・コントローラ
52a、52bまたは52cは、前述のメモリ・ユニッ
ト55a、55bまたは55cに、メモリ・ユニット・
オフセットによって識別された記憶域に受け取ったデー
タ値を記憶するように構成される。
【0023】処理システム15の性能を高めるために、
マッパー46は、異なるメモリ・システム39a〜39
c全体に連続したバス・アドレスをインターリーブ方式
でマップするように構成され、たとえば、プロセッサ4
2からの各バス・アドレスが、8ビットの2進情報であ
り、00000000〜11111111の範囲になる
ことができる仮定する。最初の4つの連続したメモリ・
アドレスは、00000000、00000001、0
0000010および00000011である。プログ
ラマは、一般に、メモリ・アドレスを連続した順序で利
用する。したがって、データ値の記憶にアドレス000
00000が最初に使用された場合は、データの記憶に
次に使用される新しいバス・アドレスはおそらくアドレ
ス00000001になる。次に、アドレス00000
010が使用され、次にアドレス00000011に使
用される見込みがある。このパターンは、おそらく、新
しいバス・アドレスがもう必要なくなるか、バス・アド
レスがすべて使用されるまで続く。
【0024】メモリ・システム39a〜39c全体に前
述の連続したバス・アドレスをインターリーブ方式でマ
ップするために、マッパー46は、最初のバス・アドレ
ス(00000000)を、メモリ・システム39aを
識別するメモリ・システム識別子を有するメモリ・ユニ
ット・アドレスにマップすることができる。次に、マッ
パー46は、第2のバス・アドレス(0000000
1)を、メモリ・システム39bを識別するメモリ・シ
ステム識別子を有するメモリ・ユニット・アドレスにマ
ップすることができる。次に、マッパー46は、第3の
バス・アドレス(00000010)を、残りのメモリ
・システム39cを識別するメモリ・システム識別子を
有するメモリ・ユニット・アドレスにマップすることが
できる。このプロセスは、マッパー46が受け取るそれ
ぞれの新しいバス・アドレスごとに繰り返される。たと
えば、マッパー46が、第4のバス・アドレス(000
00011)を含む記憶要求を受け取ると、マッパー4
6は、第4のバス・アドレスを、メモリ・システム39
aを識別するメモリ・システム識別子を有するメモリ・
ユニット・アドレスにマップする。
【0025】同じメモリ・システム39a、39bまた
は39cにマップされる各バス・アドレスが、異なるメ
モリ・ユニット・オフセットを有するメモリ・ユニット
・アドレスにマップされることが好ましい。したがっ
て、1組のバス・アドレスが、同じメモリ・システム3
9a、39bまたは39cにマップされるが、それぞれ
のバス・アドレスは、固有のメモリ・ユニット・アドレ
スにマップされる。したがって、前述の1組のバス・ア
ドレスはそれぞれ、同じメモリ・システム39a、39
bまたは39cの異なる記憶域にマップされる。
【0026】本明細書で前に説明した技術と類似の技術
により、メモリ・ユニット55a〜55cからデータを
取り出すことができる。この点に関して、プロセッサ4
2のうちの1つが、データを取り出す命令を実行すると
き、プロセッサ42は、取出し要求をプロセッサ42に
結合されたマッパー46に送る。取出し要求は、データ
を取り出す記憶域を示すバス・アドレスを含む。マッパ
ー46は、バス・アドレスを、メモリ・システム識別子
とメモリ・ユニット・オフセットを含むメモリ・ユニッ
ト・アドレスにマップする。メモリ・システム識別子
は、要求されたデータを記憶するメモリ・システム39
a、39bまたは39cを識別し、メモリ・ユニット・
オフセットは、識別されたメモリ・システム39a、3
9bまたは39cのメモリ・ユニット55a、55bま
たは55c内のデータを実際に記憶する記憶域を識別す
る。
【0027】マッパー46は、取出し要求に応じて、メ
モリ・システム39a〜39cのそれぞれに読出し要求
を送る。読出し要求は、取出し要求のバス・アドレスか
ら変換された前述のメモリ・ユニット・アドレスを含
む。識別されたメモリ・システム39a、39bまたは
39cのメモリ・コントローラ52a、52bまたは5
2cは、メモリ・ユニット・オフセットによって識別さ
れた記憶域にある連想メモリ・ユニット55a、55c
または55c内のデータ値を取り出し、そのデータ値
を、要求処理ユニット37a、37b、37c、37d
または37eに送る。この点に関して、メモリ・コント
ローラ52a、52bまたは52cは、前述のデータ値
をマッパー46に戻し、マッパー46が、このデータ値
を要求処理ユニット37a、37b、37c、37dま
たは37eに送るか、あるいはメモリ・コントローラ5
2a、52bまたは52cが、マッパー46を利用せず
にデータ値を要求処理ユニット37a、37b、37
c、37dまたは37eに送ることができる。
【0028】特定のバス・アドレスにマップされるメモ
リ・ユニット・アドレスを変更したいときには様々な状
況がある。たとえば、従来の技術の節で説明したよう
に、メモリ・システム39a、39bまたは39eの1
つにあるメモリ・ユニット55a、55bまたは55c
の1つを除去したい場合がある。したがって、除去され
るメモリ・ユニット55a、55bまたは55cの内容
を別のメモリ・ユニット55a、55bまたは55cに
移動させなければならない。さらに、この移動を考慮し
て、様々な処理ユニット37a〜37e内のマッパー4
6をそれぞれ更新しなければならない。
【0029】この点に関して、メモリ・ユニット55a
が、除去され、第1のメモリ・ユニット・オフセットに
よって識別された記憶域に記憶されたデータ値を含むと
仮定する。さらに、この記憶域にあるデータ値が、メモ
リ・ユニット55bに移動され、このメモリ・ユニット
55b内の第2のメモリ・ユニット・オフセットによっ
て識別された記憶域に記憶されると仮定する。第1およ
び第2のメモリ・ユニット・オフセット値の値は、同じ
場合もあり異なる場合もある。さらに、データ値を移動
した後で第1のメモリ・ユニット・オフセットで識別さ
れたメモリ・ユニット55a内の記憶域からのデータ取
出しとデータ記憶を防ぐために、それぞれのマッパー4
6のマッピングを変更しなければならない。特に、第1
のメモリ・ユニット・オフセットによって識別されたメ
モリ・ユニット55a内の記憶域にマップされたバス・
アドレスが、第2のメモリ・ユニット・オフセットによ
って識別されたメモリ・ユニット55b内の記憶域にマ
ップされるようにマッピングを変更しなければならな
い。
【0030】前述のデータ値が動的に移動され、マッパ
ー46がシステム15の効率を最大にするように動的に
更新されることが好ましい。本明細書で使用されると
き、「動的」という用語は、1つまたは複数のコンピュ
ータ・アプリケーションが同時に、1つまたは複数の処
理ユニット37a〜37e上で動作し、1つまたは複数
のメモリ・システム39a〜39cからのデータ値を処
理している間にコンピュータ・システム12内で起こる
ことを指すように定義される。
【0031】以下に説明する技術のうちのいずれかを使
用しないと、動的なデータの移動と動的なマッパーの更
新をエラーなしに実現することは困難である。この点に
関して、メモリ・ユニット55aからデータが移動さ
れ、マッパー46が更新されているため、メモリ・ユニ
ット55a〜55cへの記憶または取出しを、データが
首尾良く移動される前および/または各マッパー46が
更新される前に行うことができる。たとえば、まだ更新
されていないマッパー46は、記憶要求と関連したバス
・アドレスを、第1のメモリ・オフセットによって識別
されたメモリ・ユニット55a内の記憶域を識別するメ
モリ・ユニット・アドレスに、その記憶域のデータが移
動された後でマップすることができる。そのような可能
性を考慮するステップを踏まない限り、記憶要求と関連
したデータが、メモリ・ユニット55aに記憶されるこ
とがあり、メモリ・ユニット55aが除去するときにそ
の新しく記憶されたデータ値が失われることがある。
【0032】もう1つの例において、更新されたマッパ
ー46は、取出し要求と関連したバス・アドレスを、第
2のメモリ・オフセットによって識別されたメモリ・ユ
ニット55b内の記憶域を識別するメモリ・ユニット・
アドレスに、メモリ・ユニット55aから移された前述
のデータをメモリ・ユニット55bに記憶する前にマッ
プすることができる。そのような可能性を考慮するステ
ップを踏まない限り、取出し要求に応えるために取り出
されたデータが間違っていることがあり、最終的にデー
タ・エラーが生じることがある。
【0033】本発明は、マッピングの変更の結果データ
・エラーが生じないようにしながら、バス・アドレスを
メモリ・ユニット・アドレスにマップするマッピングを
動的に変更することを可能にする。換言すると、本発明
は、再割当ての結果データ・エラーが生じないようにし
ながら、メモリ・システム39a〜39c内のメモリを
再割当てすることを可能にする。本発明の技術を利用し
て、第1のメモリ・ユニット55a、55bまたは55
cを除去する前に、第1のメモリ・ユニット55a、5
5bまたは55cから別のメモリ・ユニット55a、5
5bまたは55cにデータを安全に移動させることがで
きる。しかしながら、前に説明したように、処理システ
ム15内のメモリの再割当てには他の理由があることが
あり、本発明の技術を利用して、様々な理由のためにメ
モリを再割当てすることができる。
【0034】本発明を例示するために、この場合も、メ
モリ・システム39aのメモリ・ユニット55aを処理
システム15から取り出すと仮定する。さらに、第1の
メモリ・ユニット・オフセットと関連した記憶域にある
データ値をメモリ・ユニット55aに記憶すると仮定す
る。したがって、メモリ・ユニット55aを除去する前
に、データ値を別のメモリ・ユニット55bまたは55
c内の記憶域に移動し、メモリ・ユニット55a内の前
述の記憶域にマップされたバス・アドレスを、別のメモ
リ・ユニット55bまたは55c内の前述の記憶域にマ
ップしなければならない。たとえば、データ値を移動す
る「他の」メモリ・ユニットが、メモリ・ユニット55
bであると仮定する。簡略化するため、以後、これから
移動するデータ値を記憶するメモリ・ユニット55a内
の記憶域を「元記憶域」と呼び、移動されたデータ値を
受け取って記憶するメモリ・ユニット55b内の記憶域
を「宛先記憶域」と呼ぶ。
【0035】以上の事柄を達成するために、システム・
マネージャ36は、宛先記憶域にポインタを記憶するよ
うに構成される。この点に関して、システム・マネージ
ャ36は、メモリ・システム39a〜39cに書込み要
求を送ることがある。この要求は、ポインタを記憶する
記憶域を識別するポインタとメモリ・ユニット・アドレ
スを定義するデータを含むことがある。書込み要求に応
じて、書込み要求内のメモリ・ユニット・アドレスによ
って識別されたメモリ・システム39bのメモリ・コン
トローラ52bは、前述のメモリ・ユニット・アドレス
によって識別された記憶域にポインタを定義するデータ
を記憶する。
【0036】前述のポインタを宛先記憶域に書き込むた
めに使用することができる様々な他の方法がある。たと
えば、メモリ・システム・マネージャ36は、プロセッ
サ42のうちの1つに指示して、宛先記憶域にポインタ
を書き込ませる記憶要求を発行させることができる。本
発明の原理から逸脱することなく他のそのような方法を
使用することができる。
【0037】宛先記憶域に記憶された前述のポインタ
は、元記憶域を指しまたは換言すると元記憶域を識別
し、以後「ソース・ポインタ」と呼ばれる。この点に関
して、ソース・ポインタは、元記憶域のメモリ・ユニッ
ト・アドレス(すなわち、メモリ・システム識別子とメ
モリ・ユニット・オフセット)を含む。
【0038】好ましい実施形態において、各記憶域は、
ディレクトリ・タグとデータ部分とを含む。データ部分
は、記憶域に記憶されたデータ値を定義するビットの集
まりである。したがって、メモリ・ユニット55a〜5
5cのうちの1つの記憶域にソース・ポインタが記憶さ
れるとき、記憶域のデータ部分は、ソース・ポインタに
よって指定された元記憶域のメモリ・ユニット・アドレ
スを定義する。
【0039】ディレクトリ・タグは、ある一定の制御情
報を維持するために使用される1組(すなわち、1つま
たは複数)のビットである。たとえば、メモリ・ユニッ
ト55a〜55c内の各記憶域のディレクトリ・タグの
特定ビットは、記憶域のデータ部分に記憶されたデータ
値が、ポインタ・データを定義するかまたは非ポインタ
・データを定義するかを示すことが好ましい。この特定
ビットは、本明細書では「データ・タイプ・ビット」と
呼ばれる。例示のために、データ・タイプ・ビットは、
アサートされた場合、同じ記憶域のデータ部分に記憶さ
れたデータ値がポインタ・データを定義することを示
し、アサート解除された場合、データ・タイプ・ビット
は、前述のデータ値が非ポインタ・データ値であること
を示すと仮定する。
【0040】ソース・ポインタが宛先記憶域に記憶され
た後で、システム・マネージャ36は、処理ユニット3
7a〜37eのマッパー46内のマッピングを変更また
は更新するように構成される。この点に関して、システ
ム・マネージャ36は、各マッパー46にメッセージを
送って各マッパー46に指示して、元記憶域を識別する
メモリ・ユニット・アドレスにマップされたバス・アド
レスが代わりに宛先記憶域を識別するメモリ・ユニット
・アドレスにマップされるようにマッピングを変更する
ことができる。しかしながら、各マッパー46のマッピ
ングを変更するには時間がかかる。マッピングを変更し
ている間、まだ更新されていないマッパー46の1つ
が、元記憶域からデータを取り出しまたはそこにデータ
を記憶する要求を受け取ることがある。この点に関し
て、要求と関連したバス・アドレスは、マッパー46に
よって、元記憶域を識別するメモリ・ユニット・アドレ
スにマップされる。通常、この状況で、データは、前に
本明細書で説明した技術にしたがって、要求が記憶要求
であるかまたは取出し要求であるかにより、元記憶域に
記憶されるかまたは元記憶域から取り出される。
【0041】しかしながら、前述の要求が、既に更新さ
れているマッパー46によって受け取られた場合は、前
述のバス・アドレスがマッパー46によって、宛先記憶
域を識別するメモリ・ユニット・アドレスにマップされ
る。したがって、前述の例において、メモリ・システム
39bは、前述のメモリ・ユニット・アドレスによって
識別される。通常、メモリ・システム39bを識別する
メモリ・ユニット・アドレスに応じて、メモリ・コント
ローラ32bは、メモリ・ユニット・アドレス55bに
含まれるメモリ・ユニット・オフセットと関連したメモ
リ・ユニット55b内の記憶域にアクセスする(すなわ
ち、データを記憶するかデータを取り出す)ように構成
される。
【0042】しかしながら、宛先記憶域(すなわち、こ
の例では、受け取ったメモリ・ユニット・オフセットと
関連した記憶域)に記憶された値のデータ・タイプ・ビ
ットが、宛先記憶域内のデータがポインタ・データであ
ることを示している場合、メモリ・コントローラ32b
は、宛先記憶域のソース・ポインタを、前述のメモリ・
ユニット・アドレスを送ったマッパー46に戻すように
構成される。これに応じて、マッパー46は、前述の要
求のバス・アドレスを、ソース・ポインタによって指定
された記憶域を示すメモリ・ユニット・アドレスにマッ
プする。換言すると、マッパー46は、前述の要求のバ
ス・アドレスを、元記憶域を識別するメモリ・ユニット
・アドレスにマップする。次に、元記憶域を識別するメ
モリ・ユニット・アドレスを使用して前述の要求に応え
る。
【0043】以上の説明をより良く例示するために、前
述の要求が取出し要求であり、特定のマッパー46が、
マッパー46が更新されている間の特定のマッパー46
が更新された後で取出し要求を受け取ると仮定する。図
5に、そのような例を示す流れ図を示す。図5の各矢印
は、1つの構成要素から別の構成要素への伝送を表す。
図5の矢印1〜6と関連した番号は、前述の例では伝送
シーケンスを示す。この点に関して、矢印1〜6と関連
した伝送は、矢印1がシーケンスの最初の伝送を表し、
矢印6がシーケンスの最後の伝送を表すように、それぞ
れの矢印の番号に基づく順序で、最も低いものから最も
高いものの順に行われる。
【0044】図5を参照すると分かるように、矢印1で
示したように、特定のマッパー46が、取出し要求を受
け取る。前述の例では、特定のマッパー46が既に更新
されているため、特定のマッパー46は、メモリ・シス
テム39b内に配置された宛先記憶域67を識別するメ
モリ・ユニット・アドレスに、取出し要求のバス・アド
レスをマップする。次に、図5に矢印2で表したよう
に、マッパー46は、前述のメモリ・ユニット・アドレ
スを含む読取り要求を送る。前述のメモリ・ユニット・
アドレスに含まれるメモリ・システム識別子で識別され
たメモリ・システム39bは、要求を受け取り、図5に
矢印3で表したように、宛先記憶域67に記憶されてい
るデータをマッパー46に戻す。このデータは、元記憶
域64を指すポインタを含むデータ部分と、そのデータ
部分がポインタ・データを含むことを示すディレクトリ
・タグ部分とを含まなければならない。
【0045】ディレクトリ・タグ部分が、マッパー46
が受け取ったデータ部分がポインタ・データであること
を示しているため、マッパー46は、受け取ったデータ
を取出し要求を発行したプロセッサ42に送ることを控
える。その代わりに、マッパー46は、データ部分によ
って定義されたポインタに基づいて元記憶域64のメモ
リ・ユニット・アドレスを決定し、図5に矢印4で表し
たように、元記憶域64のメモリ・ユニット・アドレス
を含む読取り要求を送る。前述の例において、元記憶域
64は、メモリ・システム39a内になければならず、
取出し要求を発行したプロセッサ42に戻されるデータ
を記憶していなければならない。その読出し要求に応じ
て、メモリ・システム39aは、図5に矢印5で表した
ように、元記憶域64に記憶されたデータをマッパー4
6に送る。このデータは、データ部分と、データ部分が
非ポインタ・データを含むことを示すディレクトリ・タ
グ部分を含まなければならない。ディレクトリ・タグ部
分が、データ部分が非ポインタ・データを含むことを示
しているため、図6の矢印6で表したように、マッパー
46は、取出し要求を発行したプロセッサ42にデータ
部分を返す。これにより、マッパー46は取出し要求に
適切に応える。
【0046】前述の要求が取出し要求ではなく記憶要求
であった場合は、本質的に、前述の要求に同じプロセス
が使用されることになることに注意されたい。そのよう
な例において、図5の矢印1は、マッパー46への記憶
要求の伝送を表す。矢印2は、宛先記憶域67を識別す
る書込み要求の伝送を表す。矢印3は、マッパー46へ
のソース・ポインタの伝送を表す。矢印4は、元記憶域
64を識別する書込み要求の伝送を表す。この伝送に基
づいて、データが、元記憶域64に書き込まれる。この
例において、矢印5は、必ずしも必要でないが、書込み
要求が満たされたという肯定応答を表すことができる。
同様に、矢印6は、必ずしも必要でないが、記憶要求が
満たされたという肯定応答を表すことができる。
【0047】代替の実施形態において、メモリ・システ
ム39a〜39cのメモリ・コントローラ52a〜52
cは、ソース・ポインタをアクセスする試みを行うとき
に適切なメモリ・システム39a〜39cに要求を転送
するように構成することができる。たとえば、前述の例
において、メモリ・システム39bのメモリ・コントロ
ーラ52bは、宛先記憶域67を識別するマッパー46
から送られた要求に応じて(すなわち、図5に矢印2と
して表された要求に応じて)、元記憶域64を識別する
要求をメモリ・システム39aに直接送るように構成さ
れることがある。メモリ・システム39bから送られた
要求に応じて、メモリ・システム39aは、メモリ・シ
ステム39bから送られた要求が読出し要求であるか書
込み要求であるかによって、元記憶域64に記憶された
データを取り出すかまたは元記憶域にデータを書き込
む。メモリ・システム39bから送られた要求が読出し
要求であるとき、メモリ・システム39aは、前述のよ
うに、読出し要求に応じて元記憶域64から取り出した
データをマッパー46に送るように設計されている。
【0048】図6に、そのような例を示す。図6と図5
を比較すると分かるように、前述の実施形態は両方と
も、図5の矢印3および4が図6の1つの矢印34と置
き換えられていること以外同じである。矢印34は、メ
モリ・システム39bからメモリ・システム39aへの
要求の伝送を表す。この要求は、矢印2として表された
要求と同じタイプ(すなわち、読み取りまたは書き込
み)で、メモリ・システム39aを識別するメモリ・シ
ステム識別子と、元記憶域64に対応するメモリ・ユニ
ット・オフセットとを有するメモリ・ユニット・アドレ
スを含まなければならない。
【0049】さらに、いずれかの実施形態において、マ
ッパー46が更新されている間に前述の要求のうちの1
つを受け取った任意のマッパー46は、システム・マネ
ージャ36によってどのマッパー46が更新されたかに
関係なく、最終的に、受け取った要求のバス・アドレス
を、元記憶域64を識別するメモリ・ユニット・アドレ
スにマップする。その結果、マッパー46の更新中にマ
ッパー46によって受け取られた記憶および/または取
出し要求の同じバス・アドレスが、同じメモリ・ユニッ
ト・アドレスにマップされ、それにより更新ステップで
生じる可能性のある潜在的なデータ・エラーがなくな
る。
【0050】マッパー46の更新が完了した後で、シス
テム・マネージャ36は、元記憶域64にあるデータ値
を宛先記憶域67に複写させる。システム・マネージャ
36は、メモリ・システム39aおよび39bに直接複
写するための読出し要求と書込み要求を発行し、あるい
は1つまたは複数のマッパー46に複写するための取出
し要求と記憶要求を発行することができる。あるいは、
システム・マネージャ36は、処理ユニット37a〜3
7eの1つまたは複数内の1つまたは複数のプロセッサ
42に、適切な取出し要求と記憶要求を発行するように
指示することができる。もう1つの代替の実施形態にお
いて、システム・マネージャ36は、複写要求を発行す
ることができ、元記憶域64のメモリ・システム39a
のメモリ・コントローラ42aは、元記憶域64からデ
ータを取り出し、そのデータを、書込み要求によって宛
先記憶域67の適切なメモリ・コントローラ42bに送
ることができる。元記憶域64のデータを宛先記憶域6
7に複写するために使用することができる様々な他の実
施形態がある。
【0051】前述のそれぞれの実施形態において、宛先
記憶域67に記憶されたソース・ポインタは、元記憶域
64からのデータによって置き換えられるかまたは上書
きされる。たとえば、システム・マネージャ36が、プ
ロセッサ42に適切な取出し要求と記憶要求を発行する
ように指示することによって複写を達成すると仮定す
る。この実施形態において、システム・マネージャ36
は、最初に、プロセッサ42に命令を送って、データを
元記憶域64から宛先記憶域67に複写する。これに応
じて、プロセッサ42は、そのマッパー46に、元記憶
域データの取出しを要求する取出し要求を送る。この点
に関して、取出し要求は、マッパー16によってマップ
されたときに、元記憶域64を識別するメモリ・ユニッ
ト・アドレスにマップされるバス・アドレスを含まなけ
ればならない。取出し要求に応じて、マッパー46は、
元記憶域64を識別するメモリ・ユニット・アドレスへ
取出し要求のバス・アドレスをマップする。次に、マッ
パー46は、メモリ・システム39a〜39cに、元記
憶域64を識別するメモリ・ユニット・アドレスを含む
読出し要求を送る。
【0052】識別されたメモリ・システム39aのメモ
リ・コントローラ52aは、元記憶域64からデータ値
を取り出し、そのデータ値をマッパー46に返し、マッ
パー46は、そのデータ値を、前述の取出し要求を発行
したプロセッサ42に返す。次に、このプロセッサ42
は、記憶要求内のデータ値を、マッパー46によってマ
ップされるときに宛先記憶域67を識別するメモリ・ユ
ニット・アドレスにマップされるバス・アドレスと共に
含む。これに応じて、マッパー46は、前述のバス・ア
ドレスを、宛先記憶域67を識別するメモリ・ユニット
・アドレスにマップし、メモリ・システム39a〜39
cに前述のメモリ・ユニット・アドレスと元記憶域64
から前に取り出したデータ値を含む書込み要求を送る。
この書込み要求に応じて、書込み要求内のメモリ・ユニ
ット・アドレスによって識別されたメモリ・システム3
9bのメモリ・コントローラ52bは、書込み要求内の
データ値を宛先記憶域67に記憶する。
【0053】宛先記憶域67にデータ値を複写している
間に元記憶域64にあるデータ値が元記憶域64から読
み取られるとき、元記憶域64にあるディレクトリ・タ
グの特定ビット(以下では、「複写ビット」と呼ぶ)が
アサートされ、元記憶域64にあるデータ値が複写され
たことを示すことが好ましい。以上の事柄を達成するた
めに、メモリ・システム39bは、システム・マネージ
ャ36から、たとえば宛先記憶域67への元記憶域64
の複写を実現する際に元記憶域64の読み取りが実行さ
れることを知らされなければならない。
【0054】複写ビットがアサートされたとき、メモリ
・コントローラ52aは、元記憶域64にデータを記憶
したり取り出したりするのを控えるように構成される。
元記憶域64から宛先記憶域67への複写は、マッパー
46内のマッピングが更新された後で行われるため、複
写ビットがアサートされたときに元記憶域64にアクセ
スする試みは、(1)ソース宛先の複写が開始された後
で、宛先記憶域67のデータ値にアクセスする試みが行
われたときと、(2)宛先記憶域67が、元記憶域64
のデータ値によって更新される前だけ行われなければな
らない。
【0055】たとえば、前述のデータ移動(すなわち、
元記憶域64から宛先記憶域67へのデータ移動)を考
慮するために、マッパー46のうちの1つによって受け
取られる要求のバス・アドレスが、各マッパー46が更
新された後で1つのマッパー46に受け取られる状況を
検討する。さらに、元記憶域64にあるデータが、元記
憶域64から読み取られたが宛先記憶域67にまだ書き
込まれていないと仮定する。換言すると、元記憶域64
から宛先記憶域67へのデータの複写は、開始されたが
まだ完了していない。その結果、宛先記憶域67は、元
記憶域64へのポインタを記憶していなければならず、
前述の方法により、前述の要求を満たすために元記憶域
64のデータ値にアクセスする試みが行われる。しかし
ながら、このとき、元記憶域64のデータ値を宛先記憶
域67に複写するプロセスが開始されたことを示すため
に元記憶域64の複写ビットがアサートされなければな
らない。
【0056】これが行われるとき、元記憶域64へのア
クセスを試みるメモリ・コントローラ52aは、前述の
マッパー46にメッセージを送って、要求を満たす試み
を再試行すべきであることを示す。その結果、マッパー
46は、要求のバス・アドレスを、宛先記憶域67を識
別するメモリ・ユニット・アドレスにマップし、宛先記
憶域67にあるデータにアクセスする別の試みが行われ
る。この時までに、元記憶域64から宛先記憶域67へ
のデータの複写が完了することがあり、その結果、宛先
記憶域67が、元記憶域64にポインタをもう記憶して
おらずに元記憶域64から複写されたデータ値を記憶す
る。その結果、宛先記憶域67は、前に説明した方法に
よって前述の要求を満たすように首尾良くアクセスされ
る。しかしながら、元記憶域64から宛先記憶域67へ
のデータの複写が完了しない場合は、宛先記憶域67
は、ソース・ポインタをまだ記憶していなければなら
ず、元記憶域64からのデータが宛先記憶域67に首尾
良く書き込まれるまで前述のプロセスを繰り返さなけれ
ばならない。
【0057】前述の詳細をさらによく説明するために、
プロセッサ42が、移動するデータ値の取出し要求を元
記憶域64から宛先記憶域67に送ると仮定する。この
データ値は、元記憶域64から既に読み取られたが、ま
だ宛先記憶域67に書き込まれていない。図7に、その
ような例を示す流れ図を示す。図7の各矢印は、ある構
成要素から別の構成要素への伝送を表す。図7の矢印1
〜8と関連した番号は、前述の例における伝送シーケン
スを示す。この点に関して、矢印1〜8と関連した伝送
は、各矢印の番号に基づいて、矢印1がシーケンスの最
初の伝送を表し、矢印8がシーケンスの最後の伝送を表
すように、最も小さいものから最も大きいものに順番に
行われる。
【0058】図7を参照し、マッパー46への取出し要
求の伝送を矢印1として表す。マッパー46は、宛先記
憶域67を識別するメモリ・システム識別子に取出し要
求のバス・アドレスをマップする。次に、マッパー46
は、図7に矢印2として表した読出し要求をメモリ・シ
ステム39bに送って、宛先記憶域67にあるデータ値
の取り出しを要求する。メモリ・システム39b内のメ
モリ・コントローラ52bは、図7に矢印3で表したよ
うに、宛先記憶域67に記憶されたソース・ポインタを
マッパー46に返す。
【0059】これに応じて、マッパー46は、図7に矢
印4で表したように、読出し要求をメモリ・システム3
9aに送り、以上説明した方法によって元記憶域64を
識別する。しかしながら、元記憶域64の複写ビットが
アサートされ、それにより元記憶域64のデータ部分が
別の記憶域に複写されるため、メモリ・システム39a
のメモリ・コントローラ52aは、元記憶域64からデ
ータを取り出すことを控える。さらに、メモリ・コント
ローラ52aは、図7に矢印5で表したように、通知メ
ッセージをマッパー46送って、元記憶域64にあるデ
ータ値が既に複写されたことを示す。
【0060】これに応じて、マッパー46は、再度、取
出し要求に応えることを試みる。この点に関して、マッ
パー46は、図7に矢印6で表したように、読出し要求
を送り、宛先記憶域67(すなわち、満たされた取出し
要求のバス・アドレスからマップされたメモリ・ユニッ
ト・アドレスで識別された場所)を識別する。この時ま
でに、元記憶域64から複写または移動されたデータ値
を宛先記憶域67に書き込むことができる。そのような
場合、宛先記憶域67は、ソース・ポインタをもう記憶
しておらず、代わりに元記憶域64から複写されたデー
タ値を記憶する。
【0061】したがって、以上説明した技術により、メ
モリ・システム39bのメモリ・コントローラ52b
は、前述の読出し要求を受け取り、それに応じて、宛先
記憶域67に記憶されたデータを取り出す。次に、メモ
リ・コントローラ52bは、矢印7として表されたこの
データをマッパー46に送り、このデータに基づいて、
マッパー46は、図7に矢印8で表したように、プロセ
ッサ42によって要求されたデータ値をプロセッサ42
に送る。このように、元記憶域64からのデータ値を宛
先記憶域67に移動している間にプロセッサ42から取
出し要求を発行した場合でも、プロセッサ42に正確な
データが返される。
【0062】しかしながら、元記憶域64から複写また
は移動されたデータ値が、図7の矢印6の発生時に宛先
記憶域67にまだ書き込まれていない場合は、元記憶域
64から複写または移動されたデータ値が宛先記憶域6
7に書き込まれるまで矢印3〜6が繰り返される。これ
が行われた後で、矢印7および8を行うことができる。
【0063】前述の要求が、取出し要求ではなく記憶要
求であった場合は、本質的に、前述の要求を満たすため
に同じプロセスが使用されることになることに注意され
たい。そのような例において、図7の矢印1は、マッパ
ー46に記憶要求の伝送を表す。矢印2は、宛先記憶域
67を識別する書込み要求の伝送を表す。矢印3は、マ
ッパー46へのソース・ポインタの伝送を表す。矢印4
は、元記憶域64を識別する書込み要求の伝送を表す。
矢印5は、元記憶域64にあるデータが複写されたとい
う通知の伝送を表す。矢印6は、宛先記憶域67を識別
する書込み要求の伝送を表す。この伝送に基づいて、元
記憶域64から複写または移動されたデータ値が、既に
宛先記憶域67に書き込まれている場合には、データが
宛先記憶域67に書き込まれる。この例では、矢印7
は、必ずしも必要ではないが、書込み要求が満たされた
という肯定応答を表すことができる。同様に、矢印8
は、必ずしも必要ではないが、記憶要求が満たされたと
いう肯定応答を表すことができる。元記憶域64から複
写または移動されたデータ値が、矢印6の発生時に宛先
記憶域67に書き込まれていない場合は、前述のように
矢印3〜6が繰り返される。
【0064】代替の実施形態において、メモリ・システ
ム39a〜39cのメモリ・コントローラ52a〜52
cは、ソース・ポインタにアクセスする試みまたはアサ
ートされた複写ビットと関連したデータにアクセスする
試みが行われるときに適切なメモリ・システム39a〜
39cに要求が転送されるように構成することができ
る。図8に、そのような例を示す。図7を図8と比較す
ると分かるように、前述の実施形態は両方とも、図7の
矢印5および6が図8の単一の矢印34と置き換えら
れ、図7の矢印3および4が図8の単一の矢印56と置
き換えられていること以外は同じである。矢印34は、
メモリ・システム39bからメモリ・システム39aへ
の要求の伝送を表す。この要求は、矢印2として表され
た要求と同じタイプ(すなわち、読み取りまたは書き込
み)のものでなければならず、メモリ・システム39a
を識別するメモリ・システム識別子と、元記憶域64に
対応するメモリ・ユニット・オフセットとを有するメモ
リ・ユニット・アドレスを含まなければならない。さら
に、矢印56は、メモリ・システム39aからメモリ・
システム39bへの要求の伝送を表す。この要求は、矢
印34として表された要求と同じタイプ(すなわち、読
取りまたは書込み)のものでなければならず、メモリ・
システム39aを識別するメモリ・システム識別子と、
元記憶域64に対応するメモリ・ユニット・オフセット
とを有するメモリ・ユニット・アドレスを含まなければ
ならない。
【0065】さらに、元記憶域64からのデータ値が、
宛先記憶域67内のソース・ポインタと置き換わると、
元記憶域64の宛先記憶域67への再割当てが、本質的
に完了する。この点に関して、元記憶域64からのデー
タ値が、宛先記憶域67に書き込まれており、どのマッ
パー46によって受け取られたバス・アドレスも、元記
憶域64を識別するメモリ・ユニット・アドレスにマッ
プされてはならない。前述のデータ値にアクセスするす
べての要求のバス・アドレスは、元記憶域64ではなく
宛先記憶域67にマップされなければならない。
【0066】前述のプロセスをメモリ・ユニット55a
に記憶された各データ値ごとに実行した後で、データ・
エラーを発生させることなくメモリ・ユニット55aを
システム15から取り外すことができる。しかしなが
ら、元記憶域64を宛先記憶域67に再割当てするため
の前述の方法は、様々な理由のために利用されることが
あり、メモリ・ユニット55aの除去を可能にするため
に再割当てを行うことは必ずしも必要でないことを再度
強調しなければならない。たとえば、付加メモリ・ユニ
ットを追加するときにメモリを再割当てすることが望ま
しいことがあり、様々な保護領域間にメモリを再割当て
することが望ましいこともある。本発明の方法によりメ
モリを再割当てする他の理由があることもある。
【0067】本明細書で説明したディレクトリ・タグ情
報をメモリ・ユニット55a〜55c内に維持すること
は必ずしも必要でないことに注意されたい。たとえば、
ディレクトリ・タグ情報をメモリ・ユニット55a〜5
5cに記憶されたデータ情報と適切に関連付けることが
できれば、制御レジスタ(図示せず)内にそのような情
報を維持することができる。
【0068】本発明の前述の実施形態、特に任意の「好
ましい」実施形態は、単に実施形態の例であり、単に本
発明の原理を明確に理解するための説明であることに注
意されたい。本発明の趣旨および原理から実質的に逸脱
することなく、本発明の前述の実施形態に多くの様々な
変更および改良を行うことができる。そのような改良お
よび変更はすべて、この開示の範囲および本発明の範囲
に含まれ、併記の特許請求の範囲によって保護されるも
のである。
【0069】以下に本発明の実施態様の例を列挙する。
【0070】〔実施態様1〕データを処理し、メモリ内
のデータを動的に移動させるコンピュータ・システム
(12)であって、データを記憶するための記憶域をそ
れぞれ有する複数のメモリ・ユニット(55a、55
b、55c)と、複数のマッピングを有し、データ値に
アクセスする要求を受け取るように構成されたマッパー
(46)であって、前記要求がバス・アドレスを含み、
前記マッパーが、前記バス・アドレスを、前記マッピン
グのうちの1つに基づいてメモリ・ユニット・アドレス
に変換するように構成され、前記メモリ・ユニット・ア
ドレスが、前記データ値を記憶している前記記憶域のう
ちの1つを識別するマッパー(46)と、前記データ値
を前記1つの記憶域から前記記憶域のうちの他の記憶域
に移動させるように構成され、ポインタを前記他の記憶
域にポインタに記憶させるように構成されたシステム・
マネージャ(36)であって、前記ポインタが、前記1
つの記憶域を識別し、さらに前記ポインタが前記他の記
憶域に記憶されている間に前記1つのマッピングを更新
させるように構成され、その結果前記マッパー(46)
が前記バス・アドレスをメモリ・ユニットに変換するよ
うに構成されたシステム・マネージャ(36)とを含む
コンピュータ・システム(12)。 〔実施態様2〕前記メモリ・ユニット(55a、55
b、55c)のうちの1つに結合され、前記他の記憶域
を識別する前記メモリ・ユニット・アドレスに基づいて
前記他の記憶域内の前記ポインタにアクセスするように
構成され、前記ポインタに応じて前記1つの記憶域を識
別する前記メモリ・ユニット・アドレスを送るように構
成された第1のメモリ・コントローラ(52a、52
b、52c)をさらに含む実施態様1に記載のシステム
(12)。 〔実施態様3〕前記システム・マネージャ(36)が、
さらに、前記データ値が前記1つの記憶域から複写され
たときに、前記1つの記憶域と関連付けられたデータの
少なくとも1つのビットを異なる論理値に変更するよう
に構成され、前記システム(12)が、さらに、前記メ
モリ・ユニット(55a、55b、55c)のうちの1
つに結合され、前記マッパー(46)から送られたメモ
リ・ユニット・アドレスに基づいて、前記1つの記憶域
にあるデータにアクセスするように構成され、さらに、
前記マッパー(46)から送られた前記メモリ・ユニッ
ト・アドレスに応じて、前記データの少なくとも1つの
ビットが異なる論理状態を示すときに、前記データの少
なくとも1つのビットに基づいて前記マッパー(46)
にメッセージを送るように構成されたメモリ・コントロ
ーラ(52a、52b、52c)を含み、前記マッパー
(46)が、前記メッセージに応じて前記他の記憶域を
識別する前記メモリ・ユニット・アドレスを送るように
構成されたシステム(12)。 〔実施態様4〕データを1つの記憶域から他の記憶域に
動的に移動させる方法であって、複数のマッピングに基
づいて、バス・アドレスを、宛先記憶域と元記憶域を含
む複数の記憶域を識別するメモリ・ユニット・アドレス
にマップする段階と、前記宛先記憶域に、前記元記憶域
を識別するポインタを記憶する段階と、前記ポインタが
前記宛先記憶域に記憶されている間に、前記バス・アド
レスのうちの1つを前記元記憶域を識別する前記メモリ
・ユニット・アドレスのうちの1つと関連付ける前記マ
ッピングの少なくとも1つを、前記少なくとも1つのマ
ッピングが、前記1つのバス・アドレスを前記宛場所を
識別する前記メモリ・ユニット・アドレスのうちの1つ
と関連付けるように更新する段階と、前記更新段階の次
に、前記元記憶域からのデータ値を前記宛先記憶域に記
憶する段階と、前記宛先記憶域から前記ポインタにアク
セスする段階と、前記ポインタに基づいて、前記ポイン
タにアクセスする段階に応じて前記元記憶域から前記デ
ータ値にアクセスする段階と、を含む方法。 〔実施態様5〕プロセッサ(42)からの要求に応じ
て、前記ポインタにアクセスする段階を実行する段階を
さらに含み、前記要求が、前記1つのバス・アドレスを
含み、前記マッピング・ステップが、前記要求内の前記
1つのバス・アドレスを、前記宛先記憶域を識別する前
記1つのメモリ・ユニット・アドレスにマップする段階
を含む実施態様4に記載の方法。 〔実施態様6〕前記元記憶域から前記データ値を読み取
る段階と、前記読取り段階に応じて、前記元記憶域と関
連付けられたデータの少なくとも1つのビットを変更す
る段階と、前記少なくとも1つのビットを分析する段階
と、前記変更する段階の次に、前記少なくとも1つのビ
ットに基づいて前記宛先記憶域から前記データ値にアク
セスする段階と、をさらに含む実施態様4に記載の方
法。 〔実施態様7〕1つの記憶域から他の記憶域にデータを
動的に移動させる方法であって、バス・アドレスを含む
要求を受け取って、データにアクセスする段階と、複数
のマッピングに基づいて、前記バス・アドレスを、宛先
記憶域と元記憶域を含む複数の記憶域を識別するメモリ
・ユニット・アドレスにマッピングする段階と、前記バ
ス・アドレスからマップされた前記メモリ・ユニット・
アドレスに基づいてデータにアクセスする段階と、前記
元記憶域から前記宛先記憶域にデータ値を動的に移動さ
せる段階と、前記元記憶域を識別するメモリ・ユニット
・アドレスにマップされたバス・アドレスが、前記宛先
記憶域を識別するメモリ・ユニット・アドレスにマップ
されるように前記マッピングを更新する段階と、を含む
方法。 〔実施態様8〕前記動的に移動する段階が、前記宛先記
憶域に、前記元記憶域を識別するポインタを記憶する段
階と、前記元記憶域から前記データ値を読み取る段階
と、前記宛先記憶域内に、前記読取り段階で読み取られ
た前記データ値を記憶する段階とを含む実施態様7に記
載の方法。 〔実施態様9〕前記1つのバス・アドレスを含む前記要
求のうちの1つに応じて、前記元記憶域と関連付けら
れ、前記読取り段階が行われたかどうかを示すデータの
少なくとも1つのビットを分析する段階と、前記少なく
とも1ビットが前記読取り段階が行われたことを示すと
きに、前記少なくとも1つのビットに基づいて前記宛先
記憶域から前記データ値にアクセスする段階とをさらに
含む実施態様8に記載の方法。 〔実施態様10〕前記1つのバス・アドレスを含む前記
要求のうちの1つに応じて、前記宛先記憶域に記憶され
た前記ポインタにアクセスする段階と、前記ポインタに
アクセスする段階に応じて前記元記憶域から前記データ
値にアクセスする段階と、をさらに含む実施態様8に記
載の方法。
【図面の簡単な説明】
【図1】本発明による処理システムを使用するコンピュ
ータ・システムを示すブロック図である。
【図2】図1に示した処理システムのより詳細な考えを
示すブロック図である。
【図3】図2に示した処理ユニットのより詳細な考えを
示すブロック図である。
【図4】図2に示したメモリ・ユニットのより詳細な考
えを示すブロック図である。
【図5】図2に示したシステムのマッパーのデータ移動
が更新されている間にデータにアクセスする要求の例示
的な伝送シーケンスを示す図表である。
【図6】図5に示した伝送シーケンスの代替の実施形態
を示す図表である。
【図7】データが元記憶域から宛先記憶域に複写されて
いる間にデータにアクセスする要求に関して図2に示し
たシステムにおける例示的な伝送シーケンスを示す図表
である。
【図8】図7に示した伝送シーケンスの代替の実施形態
を示す図表である。
【符号の説明】
12 コンピュータ・システム 36 システム・マネージャ 42 プロセッサ 46 マッパー 52a、52b、52c メモリ・コントローラ 55a、55b、55c メモリ・ユニット
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ミッシェル・エル・ジィーグラー アメリカ合衆国カリフォルニア州キャンプ ベル オードリー・アベニュー 1189 (72)発明者 ミッシェル・ケイ・トレイナー アメリカ合衆国カリフォルニア州サンノゼ ラスティック・ドライブ 2824 (72)発明者 グレゴリー・エス・パルマー アメリカ合衆国テキサス州プラノ メイソ ン・ドライブ 3012 Fターム(参考) 5B018 GA04 GA06 KA03 KA14 KA15 MA01 5B060 AB25 MM14

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】データを処理し、メモリ内のデータを動的
    に移動させるコンピュータ・システム(12)であっ
    て、 データを記憶するための記憶域をそれぞれ有する複数の
    メモリ・ユニット(55a、55b、55c)と、 複数のマッピングを有し、データ値にアクセスする要求
    を受け取るように構成されたマッパー(46)であっ
    て、前記要求がバス・アドレスを含み、前記マッパー
    が、前記バス・アドレスを、前記マッピングのうちの1
    つに基づいてメモリ・ユニット・アドレスに変換するよ
    うに構成され、前記メモリ・ユニット・アドレスが、前
    記データ値を記憶している前記記憶域のうちの1つを識
    別するマッパー(46)と、 前記データ値を前記1つの記憶域から前記記憶域のうち
    の他の記憶域に移動させるように構成され、ポインタを
    前記他の記憶域にポインタに記憶させるように構成され
    たシステム・マネージャ(36)であって、前記ポイン
    タが、前記1つの記憶域を識別し、さらに前記ポインタ
    が前記他の記憶域に記憶されている間に前記1つのマッ
    ピングを更新させるように構成され、その結果前記マッ
    パー(46)が前記バス・アドレスをメモリ・ユニット
    に変換するように構成されたシステム・マネージャ(3
    6)とを含むコンピュータ・システム(12)。
  2. 【請求項2】前記メモリ・ユニット(55a、55b、
    55c)のうちの1つに結合され、前記他の記憶域を識
    別する前記メモリ・ユニット・アドレスに基づいて前記
    他の記憶域内の前記ポインタにアクセスするように構成
    され、前記ポインタに応じて前記1つの記憶域を識別す
    る前記メモリ・ユニット・アドレスを送るように構成さ
    れた第1のメモリ・コントローラ(52a、52b、5
    2c)をさらに含む請求項1に記載のシステム(1
    2)。
  3. 【請求項3】前記システム・マネージャ(36)が、さ
    らに、前記データ値が前記1つの記憶域から複写された
    ときに、前記1つの記憶域と関連付けられたデータの少
    なくとも1つのビットを異なる論理値に変更するように
    構成され、前記システム(12)が、さらに、 前記メモリ・ユニット(55a、55b、55c)のう
    ちの1つに結合され、前記マッパー(46)から送られ
    たメモリ・ユニット・アドレスに基づいて、前記1つの
    記憶域にあるデータにアクセスするように構成され、さ
    らに、前記マッパー(46)から送られた前記メモリ・
    ユニット・アドレスに応じて、前記データの少なくとも
    1つのビットが異なる論理状態を示すときに、前記デー
    タの少なくとも1つのビットに基づいて前記マッパー
    (46)にメッセージを送るように構成されたメモリ・
    コントローラ(52a、52b、52c)を含み、 前記マッパー(46)が、前記メッセージに応じて前記
    他の記憶域を識別する前記メモリ・ユニット・アドレス
    を送るように構成されたシステム(12)。
  4. 【請求項4】データを1つの記憶域から他の記憶域に動
    的に移動させる方法であって、 複数のマッピングに基づいて、バス・アドレスを、宛先
    記憶域と元記憶域を含む複数の記憶域を識別するメモリ
    ・ユニット・アドレスにマップする段階と、 前記宛先記憶域に、前記元記憶域を識別するポインタを
    記憶する段階と、 前記ポインタが前記宛先記憶域に記憶されている間に、
    前記バス・アドレスのうちの1つを前記元記憶域を識別
    する前記メモリ・ユニット・アドレスのうちの1つと関
    連付ける前記マッピングの少なくとも1つを、前記少な
    くとも1つのマッピングが、前記1つのバス・アドレス
    を前記宛場所を識別する前記メモリ・ユニット・アドレ
    スのうちの1つと関連付けるように更新する段階と、 前記更新段階の次に、前記元記憶域からのデータ値を前
    記宛先記憶域に記憶する段階と、 前記宛先記憶域から前記ポインタにアクセスする段階
    と、 前記ポインタに基づいて、前記ポインタにアクセスする
    段階に応じて前記元記憶域から前記データ値にアクセス
    する段階と、 を含む方法。
  5. 【請求項5】プロセッサ(42)からの要求に応じて、
    前記ポインタにアクセスする段階を実行する段階をさら
    に含み、前記要求が、前記1つのバス・アドレスを含
    み、前記マッピング・ステップが、前記要求内の前記1
    つのバス・アドレスを、前記宛先記憶域を識別する前記
    1つのメモリ・ユニット・アドレスにマップする段階を
    含む請求項4に記載の方法。
  6. 【請求項6】前記元記憶域から前記データ値を読み取る
    段階と、 前記読取り段階に応じて、前記元記憶域と関連付けられ
    たデータの少なくとも1つのビットを変更する段階と、 前記少なくとも1つのビットを分析する段階と、 前記変更する段階の次に、前記少なくとも1つのビット
    に基づいて前記宛先記憶域から前記データ値にアクセス
    する段階と、 をさらに含む請求項4に記載の方法。
  7. 【請求項7】1つの記憶域から他の記憶域にデータを動
    的に移動させる方法であって、 バス・アドレスを含む要求を受け取って、データにアク
    セスする段階と、 複数のマッピングに基づいて、前記バス・アドレスを、
    宛先記憶域と元記憶域を含む複数の記憶域を識別するメ
    モリ・ユニット・アドレスにマッピングする段階と、 前記バス・アドレスからマップされた前記メモリ・ユニ
    ット・アドレスに基づいてデータにアクセスする段階
    と、 前記元記憶域から前記宛先記憶域にデータ値を動的に移
    動させる段階と、 前記元記憶域を識別するメモリ・ユニット・アドレスに
    マップされたバス・アドレスが、前記宛先記憶域を識別
    するメモリ・ユニット・アドレスにマップされるように
    前記マッピングを更新する段階と、 を含む方法。
  8. 【請求項8】前記動的に移動する段階が、前記宛先記憶
    域に、前記元記憶域を識別するポインタを記憶する段階
    と、 前記元記憶域から前記データ値を読み取る段階と、 前記宛先記憶域内に、前記読取り段階で読み取られた前
    記データ値を記憶する段階とを含む請求項7に記載の方
    法。
  9. 【請求項9】前記1つのバス・アドレスを含む前記要求
    のうちの1つに応じて、前記元記憶域と関連付けられ、
    前記読取り段階が行われたかどうかを示すデータの少な
    くとも1つのビットを分析する段階と、 前記少なくとも1ビットが前記読取り段階が行われたこ
    とを示すときに、前記少なくとも1つのビットに基づい
    て前記宛先記憶域から前記データ値にアクセスする段階
    とをさらに含む請求項8に記載の方法。
  10. 【請求項10】前記1つのバス・アドレスを含む前記要
    求のうちの1つに応じて、前記宛先記憶域に記憶された
    前記ポインタにアクセスする段階と、 前記ポインタにアクセスする段階に応じて前記元記憶域
    から前記データ値にアクセスする段階と、 をさらに含む請求項8に記載の方法。
JP2001247482A 2000-09-28 2001-08-16 コンピュータ・システムにおいてメモリを動的に再割当てするシステムおよび方法 Expired - Fee Related JP3872968B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US675021 2000-09-28
US09/675,021 US6473845B1 (en) 2000-09-28 2000-09-28 System and method for dynamically updating memory address mappings

Publications (3)

Publication Number Publication Date
JP2002123424A true JP2002123424A (ja) 2002-04-26
JP2002123424A5 JP2002123424A5 (ja) 2004-09-24
JP3872968B2 JP3872968B2 (ja) 2007-01-24

Family

ID=24708745

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001247482A Expired - Fee Related JP3872968B2 (ja) 2000-09-28 2001-08-16 コンピュータ・システムにおいてメモリを動的に再割当てするシステムおよび方法

Country Status (2)

Country Link
US (1) US6473845B1 (ja)
JP (1) JP3872968B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004213657A (ja) * 2003-01-03 2004-07-29 Hewlett-Packard Development Co Lp メモリ間でデータを移行する方法

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6771595B1 (en) * 1999-08-31 2004-08-03 Intel Corporation Apparatus and method for dynamic resource allocation in a network environment
JP4451733B2 (ja) 2004-06-30 2010-04-14 富士通マイクロエレクトロニクス株式会社 半導体装置
US7266651B1 (en) 2004-09-07 2007-09-04 Sun Microsystems, Inc. Method for in-place memory interleaving and de-interleaving
US7318114B1 (en) 2004-10-29 2008-01-08 Sun Microsystems, Inc. System and method for dynamic memory interleaving and de-interleaving
US20080052368A1 (en) * 2006-08-28 2008-02-28 Sony Ericsson Mobile Communications Ab System and method to shuffle and refill content
TWI369611B (en) * 2008-08-14 2012-08-01 Asustek Comp Inc Main board and interface control method for memory slot thereof
WO2014031110A1 (en) 2012-08-22 2014-02-27 Empire Technology Development Llc Resource allocation in multi-core architectures
US9218314B2 (en) * 2013-02-01 2015-12-22 International Business Machines Corporation Boosting remote direct memory access performance using cryptographic hash based approach
WO2015130314A1 (en) 2014-02-28 2015-09-03 Hewlett-Packard Development Company, L.P. Mapping mode shift
US10824362B2 (en) 2015-03-27 2020-11-03 Hewlett Packard Enterprise Development Lp File migration to persistent memory
CN107209720B (zh) 2015-04-02 2020-10-13 慧与发展有限责任合伙企业 用于页面高速缓存的系统及方法以及存储介质
US11416395B2 (en) 2018-02-05 2022-08-16 Micron Technology, Inc. Memory virtualization for accessing heterogeneous memory components
US12135876B2 (en) 2018-02-05 2024-11-05 Micron Technology, Inc. Memory systems having controllers embedded in packages of integrated circuit memory
US10782908B2 (en) 2018-02-05 2020-09-22 Micron Technology, Inc. Predictive data orchestration in multi-tier memory systems
US11099789B2 (en) 2018-02-05 2021-08-24 Micron Technology, Inc. Remote direct memory access in multi-tier memory systems
US10880401B2 (en) * 2018-02-12 2020-12-29 Micron Technology, Inc. Optimization of data access and communication in memory systems
US11210092B2 (en) * 2018-03-06 2021-12-28 International Business Machines Corporation Servicing indirect data storage requests with multiple memory controllers
US10877892B2 (en) 2018-07-11 2020-12-29 Micron Technology, Inc. Predictive paging to accelerate memory access
US10852949B2 (en) 2019-04-15 2020-12-01 Micron Technology, Inc. Predictive data pre-fetching in a data storage device

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59157887A (ja) 1983-02-28 1984-09-07 Hitachi Ltd 情報処理装置
US4833604A (en) * 1986-01-13 1989-05-23 International Business Machines Corporation Method for the relocation of linked control blocks
US5230045A (en) 1986-11-12 1993-07-20 Xerox Corporation Multiple address space system including address translator for receiving virtual addresses from bus and providing real addresses on the bus
EP0935255A2 (en) * 1989-04-13 1999-08-11 SanDisk Corporation Flash EEPROM system
US5255270A (en) * 1990-11-07 1993-10-19 Emc Corporation Method of assuring data write integrity on a data storage device
JPH079632B2 (ja) * 1991-06-18 1995-02-01 インターナショナル・ビジネス・マシーンズ・コーポレイション アドレス変換装置および方法
US5369616A (en) * 1992-10-30 1994-11-29 Intel Corporation Method for assuring that an erase process for a memory array has been properly completed
US5404485A (en) * 1993-03-08 1995-04-04 M-Systems Flash Disk Pioneers Ltd. Flash file system
US5485595A (en) * 1993-03-26 1996-01-16 Cirrus Logic, Inc. Flash memory mass storage architecture incorporating wear leveling technique without using cam cells
US5479638A (en) * 1993-03-26 1995-12-26 Cirrus Logic, Inc. Flash memory mass storage architecture incorporation wear leveling technique
US5388083A (en) * 1993-03-26 1995-02-07 Cirrus Logic, Inc. Flash memory mass storage architecture
US5835743A (en) * 1994-06-30 1998-11-10 Sun Microsystems, Inc. Application binary interface and method of interfacing binary application program to digital computer
US5761695A (en) 1995-09-19 1998-06-02 Hitachi, Ltd. Cache memory control method and apparatus, and method and apparatus for controlling memory capable of interleave control
US6014724A (en) * 1995-10-27 2000-01-11 Scm Microsystems (U.S.) Inc. Flash translation layer block indication map revision system and method
US5835954A (en) 1996-09-12 1998-11-10 International Business Machines Corporation Target DASD controlled data migration move
US5963970A (en) * 1996-12-20 1999-10-05 Intel Corporation Method and apparatus for tracking erase cycles utilizing active and inactive wear bar blocks having first and second count fields
US5832493A (en) * 1997-04-24 1998-11-03 Trimble Navigation Limited Flash file management system
US6000006A (en) * 1997-08-25 1999-12-07 Bit Microsystems, Inc. Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage
US5848026A (en) * 1997-12-08 1998-12-08 Atmel Corporation Integrated circuit with flag register for block selection of nonvolatile cells for bulk operations

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004213657A (ja) * 2003-01-03 2004-07-29 Hewlett-Packard Development Co Lp メモリ間でデータを移行する方法
JP4511824B2 (ja) * 2003-01-03 2010-07-28 ヒューレット−パッカード デベロップメント カンパニー エル.ピー. メモリ間でデータを移行する方法

Also Published As

Publication number Publication date
JP3872968B2 (ja) 2007-01-24
US6473845B1 (en) 2002-10-29

Similar Documents

Publication Publication Date Title
JP3872968B2 (ja) コンピュータ・システムにおいてメモリを動的に再割当てするシステムおよび方法
US5875349A (en) Method and arrangement for allowing a computer to communicate with a data storage device
KR102047558B1 (ko) 가상 디스크 저장 기술
US6848034B2 (en) Dense server environment that shares an IDE drive
JP5347061B2 (ja) フラッシュメモリデータストレージデバイスにデータを格納するための方法及び装置
US8024496B2 (en) Enhanced memory migration descriptor format and method
US8131969B2 (en) Updating system configuration information
RU2509347C2 (ru) Гибкое увеличение страниц памяти
US20080235477A1 (en) Coherent data mover
US7500072B2 (en) Migrating data that is subject to access by input/output devices
US8825718B2 (en) Methods and apparatus for marking objects for garbage collection in an object-based memory system
KR20060044631A (ko) 지속성 메모리 액세스 시스템, 지속성 메모리의 직접액세스 방법 및 지속성 메모리 시스템을 액세스하는 시스템
US6516389B1 (en) Disk control device
TWI417724B (zh) 使用替代頁池管理直接記憶器存取寫入頁錯誤之電腦執行方法、裝置、及電腦程式產品
EP1934762B1 (en) Apparatus and method for handling dma requests in a virtual memory environment
JP2008065445A (ja) 同一データを纏める事で格納領域を節約する計算機システム、ストレージシステム及びそれらの制御方法
US20070005904A1 (en) Read ahead method for data retrieval and computer system
US7032093B1 (en) On-demand allocation of physical storage for virtual volumes using a zero logical disk
US6961840B2 (en) Method and apparatus for managing a dynamic alias page table
JP2004127295A (ja) 仮想記憶システムおよびその動作方法
US6490668B2 (en) System and method for dynamically moving checksums to different memory locations
JP2008512758A (ja) 仮想アドレス・キャッシュに格納されたデータを共用する仮想アドレス・キャッシュ及び方法
US7627734B2 (en) Virtual on-chip memory
JPH0863394A (ja) 記憶装置システムおよび記憶装置の制御方法
JP2005196793A (ja) メモリを予約するための方法、システム、および製品

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050606

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050609

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20050610

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20050617

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20050906

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20050909

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050922

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060328

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060627

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: 20061012

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20061023

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091027

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101027

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111027

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121027

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121027

Year of fee payment: 6

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121027

Year of fee payment: 6

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121027

Year of fee payment: 6

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131027

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees