(57)【要約】【課題】  システム全体にわたるリソースを必要とせずに、またオペレーティングシステムが完全に同一の物理アドレスマップを継続して使用することを可能にしつつ、メモリを１度に１片ずつ移行することを可能にすること。【解決手段】  特定のアクセス装置が第１のメモリ位置にある特定のデータへアクセスを試みると、該アクセス装置が前記新しいメモリ位置にアクセス変更するよう、取得された特定のデータが前記新しいメモリ位置に転送されたときに、特定のデータが第１のメモリ位置から転送中であることをマーキングし、該アクセス変更されたアクセスが前記新しいメモリ位置で前記転送されたデータの到着以前になされた場合、該アクセス変更されたアクセスは、転送されたデータが前記新しいメモリ位置に書き込まれるまで防がれる。   【選択図】図１
2004213657.tif 000002
【特許請求の範囲】
【請求項１】
特定のメモリアクセス装置の制御下で、第１のメモリ位置から移行されるデータが存在すべき新しいメモリ位置を設定すること、
前記特定のアクセス装置は、前記第１のメモリ位置に存在する前記データの特定の部分を制御し、該制御は、該特定のデータに対する前記特定のアクセス装置以外のあらゆる装置からのアクセスを防ぐこと、
前記特定のアクセス装置の制御下で、前記特定のデータの最新のバージョンを前記第１のメモリ位置から取得すること、
前記取得された特定のデータを前記新しいメモリ位置に転送すること、
特定のアクセス装置が前記第１のメモリ位置にある前記特定のデータへアクセスを試みると、該アクセス装置が前記新しいメモリ位置にアクセス変更するよう、前記取得された特定のデータが前記新しいメモリ位置に転送されたときに、前記特定のデータが前記第１のメモリ位置から転送中であることをマーキングすることを含み、
該アクセス変更されたアクセスが前記新しいメモリ位置で前記転送されたデータの到着以前になされた場合、該アクセス変更されたアクセスは、前記転送されたデータが前記新しいメモリ位置に書き込まれるまで防がれる、
１つの位置から別の位置にデータを移行する方法。
【請求項２】
前記取得されたデータは、前記第１のメモリ位置から前記新しいメモリ位置に直接転送される請求項１に記載のデータを移行する方法。
【請求項３】
前記新しいメモリ位置は、移行の要求の受け取りの前に設定される請求項１に記載のデータを移行する方法。
【請求項４】
前記第１のメモリ位置から移行すべきすべてのデータが前記新しいメモリ位置に移動されるまで、前記制御、取得、転送、およびマーキングのステップを継続すること、
前記継続ステップの終了時に、前記システムを更新してデータが移行された前記第１のメモリ位置のデータにアクセス可能なすべてのメモリアクセス装置は、前記第１のメモリ位置内の以前のメモリ位置の代わりに前記新しいメモリ位置に導かれるようにすること、
とをさらに含む請求項１に記載のデータを移行する方法。
【請求項５】
前記継続ステップの終了前には、前記第１のメモリ位置から移動されていないデータは、前記第１のメモリ位置から取得され、前記第１のメモリ位置から移動が完了したデータは、前記第１のメモリ位置へのアクセスにより供給される情報の制御下で、前記新しいメモリ位置から取り出されるように、任意のメモリアクセス装置が前記第１のメモリ位置に完全にアクセスできるようにすること
をさらに含む請求項４に記載のデータを移行する方法。
【請求項６】
該データを移行する方法は、複数の異なるオペレーティングシステムのいずれか１つと共に動作し、前記アクセス変更は現在機能しているオペレーティングシステムの標準のアクセス変更手続きを使用して達成される請求項１に記載のデータを移行する方法。
【請求項７】
少なくとも１つのアクセス装置がアクセス可能なデータを保持したメモリ位置の第１のセットと、
前記少なくとも１つのアクセス装置がアクセス可能なデータの保持に使用可能なメモリ位置の第２のセットと、
前記第１のメモリ位置と前記第２のメモリ位置の両方の選択された位置へアクセスする手段であって、該アクセスにより他のあらゆる装置による前記選択されたメモリ位置へのアクセスを防ぐ手段と、
前記メモリ位置の第１のセット内の選択された位置から前記メモリ位置の第２のセット内の選択された位置にデータを移動する転送経路と、
前記データが前記第２のメモリ位置のセットに移動したときに前記アクセスの前記防止を解除するように動作する手段と、
を備える１つの位置から別の位置にデータを移行するシステム。
【請求項８】
前記転送経路は前記第１のメモリ位置のセットから前記第２のメモリ位置のセットへの直接の経路である請求項７に記載のデータを移行するシステム。
【請求項９】
前記第１のメモリ位置のセットに対してデータの要求が行われたときに、該要求に応答して該データを提供し、前記データが移動されているときには該要求をアクセス変更するように動作する手段、を更に備える請求項８に記載のデータを移行するシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリシステムに関し、特にデータを１つのメモリから別のメモリに移行可能なシステムと方法に関する。
【背景技術】
【０００２】
処理システムの処理対象になるデータや、処理システムの動作および／または制御に使用されるデータは、さまざまな種類のメモリデバイスに格納されている。そのような処理システムは、通常はオペレーティングシステムに制御される。そのような各オペレーティングシステムの基本動作原則は同一であるものの、それらは各々さまざまな特定の機能を独自の方法で扱う。
【０００３】
したがって、各システムは、メモリへアクセスして所与の位置からデータを取得するための方法と手続きを有するが、このメモリアクセス機能を達成するための詳細な方法は、動作構造とオペレーティングシステムにより異なる。したがって、１つのメモリから別のメモリにデータを入れ替えようとすると、異なるオペレーティングシステムでは手続きが異なるため、問題が発生する。実際には、そのような入れ替え操作では、１つのメモリから別のメモリへのデータの移行がかならず発生する。通常は、従来は、システムあるいは少なくともデータの入れ替え元のメモリがオフにされているか、オペレーティングシステムにより空にされているときに、データの移行が達成されていた。
【０００４】
データの「生きた」ままの移行については文献にヒントが見られるが、それらヒントの各々では、システムが長期間停止することとメモリの最終的な構成に対して制限があることに注意が必要になる。たとえば、Sun Microsystemのウェブサイトhttp://www.sun.com/から入手できるDynamic Reconfiguration User's Guide、Part No.: 805-0080-l0では、従来の１解決方法による大容量のメモリのスワップ空間（たとえばディスク）や別のボードへのコピー時に必ず伴う制限や停止について説明している。このユーザガイドは、システムボード間でメモリインターリーブを使用している場合、それらのシステムボードは取り外しできないことを指摘している。これば、Dynamic  Reconfiguration（動的再構成）がボード間のインターリーブをまだサポートしていないためである。デフォルトでは、hpost（１Ｍ）は、インターリーブされているメモリを有するボードの設定は行わない。ボードを取り外しできるようにするには、オペレーティングシステムがボード上のメモリを空にしなければならない。ボードを空にするというのは、ボード上のページング可能なメモリをスワップ空間に移動し、ボード上の永久メモリ、つまりページング不可能なカーネルとＯＢＰメモリを別のメモリボードにコピーすることである。取り外されるボード上に永久メモリが存在するときには、オペレーティングシステムはコピーを書き込むために他のメモリを見つけなければならない。これが、典型的な停止状態である。
【０００５】
データが第１のメモリ上に存在し、そのデータを第２のメモリに移動しなければならないと仮定する。データを移動する１つの方法は、第１のメモリを停止し、第２のメモリへデータを転送し、それから第２のメモリをオンラインに戻すことである。このアプローチの１つの問題は、システムが停止しデータの転送が完了するのを待つ間の許容できない遅延時間である。このような例では、通常、それ以降に通知があるまでは、第１のメモリにも第２のメモリにもアクセスしないように通知するシステムメッセージをすべての該当する可能性のあるデータアクセス装置に送らなければならない。
【０００６】
次の非特許文献では、従来の１解決方法による大容量のメモリのスワップ空間（たとえばディスク）や別のボードへのコピー時に必ず伴う制限や停止について説明している。
【非特許文献１】Dynamic Reconfiguration User's Guide、Part No.: 805-0080-l0
【発明の開示】
【発明が解決しようとする課題】
【０００７】
プロセスの速度を加速するには、１度に大量のバイト数の情報を転送するように転送を設定することが可能であり、それによりメモリ内の転送結果のデータの位置を拘束することができる。しかし、そのような拘束は、実用的ではないことが多く、その他の点では好ましくても、メモリの使用効率が低下することになる。
【０００８】
さらに、メモリ移行のために既知のシステムを使用するには、新しいメモリが最終的にオンラインになったときにシステムマップを変更することが必要になる。また、メモリアクセスに対して要求が累積すると考えられるので、過負荷、あるいは少なくともレーシングの状態が発生する可能性がある。
【課題を解決するための手段】
【０００９】
本発明の一実施態様は、特定のメモリアクセス装置の制御下で、第１のメモリ位置から移行されるデータが存在すべき新しいメモリ位置を設定すること、前記特定のアクセス装置は、前記第１のメモリ位置に存在する前記データの特定の部分を制御し、該制御は、該特定のデータに対する前記特定のアクセス装置以外のあらゆる装置からのアクセスを防ぐこと、前記特定のアクセス装置の制御下で、前記特定のデータの最新のバージョンを前記第１のメモリ位置から取得すること、前記取得された特定のデータを前記新しいメモリ位置に転送すること、特定のアクセス装置が前記第１のメモリ位置にある前記特定のデータへアクセスを試みると、該アクセス装置が前記新しいメモリ位置にアクセス変更するよう、前記取得された特定のデータが前記新しいメモリ位置に転送されたときに、前記特定のデータが前記第１のメモリ位置から転送中であることをマーキングすることを含み、該アクセス変更されたアクセスが前記新しいメモリ位置で前記転送されたデータの到着以前になされた場合、該アクセス変更されたアクセスは、前記転送されたデータが前記新しいメモリ位置に書き込まれるまで防がれる、１つの位置から別の位置にデータを移行する方法を提供する。
【００１０】
本発明の一実施態様は、処理システムの稼働中に新しいメモリを処理システムに追加する方法であって、新しいデータストレージ構造を上述の処理システムに物理的に関連付けること、既存のデータストレージ構造内からデータの第１の部分を選択してその既存の構造から新しい構造に移動することであって、その選択により上述の既存の構造内のそのデータ選択に対応するデータ位置を以降のデータアクセス要求に一時的に応答しないようにすること、上述のデータの選択された第１の部分を上述の新しい構造に移動すること、移動の完了時に、アクセス装置に上述のデータの選択された第１の部分が移動された上述の新しいデータ構造内の位置を送ることにより、上述の既存の構造内の上述のデータ選択の第１の部分に対応する上述のデータ位置を以降のアクセス要求に応答するようにすること、とを含む方法を提供する。
【００１１】
本発明の複数の実施態様は、データを１つの位置から別の位置に移行するシステムであって、少なくとも１つのアクセス装置がアクセス可能なデータを保持したメモリ位置の第１のセットと、上述の少なくとも１つのアクセス装置がアクセス可能なデータの保持に使用可能なメモリ位置の第２のセットと、上述の第１のメモリ位置と上述の第２のメモリ位置の両方の選択された位置へアクセスする手段であって、そのアクセスにより他のあらゆる装置によるその選択されたメモリ位置へのアクセスを防ぐ手段と、上述のメモリ位置の第１のセット内の選択された位置から上述のメモリ位置の第２のセット内の選択された位置にデータを移動する転送経路と、上述のデータが上述の第２のメモリ位置のセットに移動したときに上述のアクセスの上述の防止を解除するように動作する手段と、を備えるシステムをさらに提供する。
【００１２】
本発明の一実施態様は、コンピュータであって、そのコンピュータを制御するオペレーティングシステムと、データが格納される複数の位置を有する少なくとも１つのメモリと、上述の少なくとも１つのメモリ内の位置からデータを取得する少なくとも１つのアクセスシステムであって、データストレージマップに従って上述のオペレーティングシステムにより部分的にアクセスの方法が制御されるアクセスシステムと、データが移行される上述の少なくとも１つのメモリ内の位置を選択するシステムであって、その選択システムは、上述のデータが移行元の位置と移行先の位置との間を移行の過程でその移行元の位置とその移行先の位置の両方へのアクセスを防ぐようにさらに動作可能で、次に、その選択システムは、上述のデータが移行された後、上述のオペレーティングシステムと上述のメモリの制御下である場合、アクセスシステムが上述のデータの移行元のメモリ内のデータ位置にアクセスするとアクセス変更されるようにして、上述のデータが移行された位置へのアクセスを可能にするようにさらに動作可能で、その選択システムは、移行すべきすべてのデータが移行された後、上述のオペレーティングシステムにより、新しいデータアクセス命令が上述のデータの以前の位置にではなく、上述のデータが移行されたメモリ位置にアクセス変更されるように上述の選択システムが変更されるようにさらに動作可能なシステムと、を備えるコンピュータを提供する。
【００１３】
本発明の複数の実施態様は、コンピュータを操作する方法であって、上述のコンピュータ内のオペレーティングシステムが上述のコンピュータの複数の機能を制御できるようにすることであって、そのような複数の機能の１つは第１のメモリ内の位置のデータにアクセスすることであって、そのアクセスはデータのマップに従っている、制御できるようにすること、上述のコンピュータが動作中に追加のメモリを上述のコンピュータに追加することであって、その追加のメモリはその内部にデータを格納可能な位置を有する、追加すること、上述のコンピュータが稼働中にデータを上述の第１のメモリから追加のメモリに移行することであって、移行は複数の段階で発生し、各段階は上述の第１のメモリのデータの複数の部分を含む、移行すること、上述の第１のメモリは、上述の複数の段階の移行中は、すでに移行されたデータの複数の部分に対する任意のデータアクセスを上述の追加のメモリにアクセス変更することが可能で、上述の複数の段階のすべてが完了しているときには、マップを変更して以降のデータアクセスが上述の追加のメモリに導かれるようにすることが可能であること、とを含む方法を提供する。
【発明を実施するための最良の形態】
【００１４】
本発明のシステムと方法は、システムをオフにすることなく、あるいは、オペレーティングシステムまたはアプリケーション処理を中断することなく、データを１つの位置から別の位置に移行するように構成されている。一実施形態のシステムは、特定のメモリアクセス装置の制御下で動作して新しいメモリ位置を設定する。新しいメモリ位置は、第１のメモリ内の位置から転送されるデータが存在すべき位置である。動作時、アクセス装置が第１のメモリ内に存在するデータの特定の複数の部分を制御するときには、そのデータは任意の他の装置からのアクセスが防がれる。同時に、第１のメモリ内のデータの複数の部分の最新のバージョンが新しいメモリに転送される。転送されたデータが新しいメモリ内に存在すると、第１のメモリのデータに対するアクセスの試みがアクセス装置にアクセス変更されて戻され、アクセス装置から新しいメモリにアクセス変更されるように、第１のメモリから転送済みであることが第１のメモリのデータにマーキングされる。
【００１５】
本明細書で説明した概念の利点の１つは、システム全体にわたるリソースを必要とせずに、またオペレーティングシステム（ＯＳ）が完全に同一の物理アドレスマップを継続して使用することを可能にしつつ、メモリを１度に１片ずつ移行することを可能にすることにより、ソフトウェアへの複雑で干渉的な変更を最小化することである。
【００１６】
この新規の概念は、オペレーティングシステムの変更が必要ではなく、オペレーティングシステムとは独立して実行可能であるので、本メモリの移行方法についての発明は、例として、OSes、Windows、UNIX、LINUXなど任意のオペレーティングシステムに実施することができる。このような実施態様は、下位のメモリ構成とは独立していて、メモリが６４バイトブロックなどのブロック単位の幅を持つことが可能で、それによりシステムやそのアプリケーションのシャットダウンなしにメモリの交換とアップグレードをできることが好ましい。さらに、このメモリの移行方法を採用しているシステムを、通常は新しいメモリがシステムに追加された後に実行されるメモリの再編成に利用することで、より最適な性能を得ることができる。
【００１７】
図１を参照すると、本発明の一実施形態により、データが存在する古いメモリ１１、データの移行先である１つの新しいメモリ１２（または複数のメモリ１２−Ｎ）、移行制御装置１３、および装置１４〜１４−Ｎを有する代表的なコンピュータシステム１０を示している。装置１４〜１４−Ｎは、古いメモリ１１および／または新しいメモリ１２などのメモリにアクセス可能な装置であることが好ましい。
【００１８】
バス１６により相互接続された、装置１１、１２、１３、および１４ならびにコンピュータシステム１０の残りの部分の間に示される相互動作は、オペレーティングシステム１５に少なくとも一部は制御される。それらの相互動作は、図２、図３、および図４を参照して説明する。
【００１９】
ここで図２を参照すると、図１に示すようなデータがメモリ１１とメモリ１２間つまり一実施形態の装置間で転送されるデータ転送の相互作用を示した流れ図２０を示している。プロセス２０１は、新しいメモリの取り付け時またはメモリの最適化操作に応答してデータ転送が行われるようにしている。プロセス２０２では、メモリ１２内の、またはメモリ１２に関連付けられた新しいメモリのコントローラを初期化する。それにより、新しいメモリ１２が移行制御装置１３に「所有」されていることが示される。新しいメモリ１２のメモリコントローラの初期化は、メッセージベースのシステム内のレーシング状態とデータの静かな破壊（silent corruption）を防止することが目的の場合もある。たとえば、通常のコンピュータシステムでは、メモリに送られたメッセージは、送り先に到達するのにたどる経路またはかかる時間が常に一律ではない。新しいメモリのコントローラを初期化して移行制御装置１３からデータを取得することで、次のことが保証される。新しいメモリ１２に移行されるデータに対して移行に関連しない要求が行われたときに、新しいメモリ１２のコントローラは、移行装置１３に対してデータの最新のコピーを要求しなければならないことを知ることである。
【００２０】
新しいメモリのコントローラを初期化してデータを移行制御装置１３から取得するようにすることは１つの技法である。これにより、移行ハードウェアを実装して、新しいメモリ１２に移行されるデータに対して移行に関連しない要求が行われたときにときに発生するレーシング状態を解決する。通常のシステム動作のために既に存在している機構をそのままあるいはわずかな修正で採用してレーシング状態を解決することも可能である。たとえば、新しいメモリ１２がシステムに対して適切な処置を講じて、移行制御装置１３に「所有」されていることが示されているあらゆるデータのブロックの移行が完了するまで、あらゆる他の要求がそのデータに対してアクセスできないようにすることもできる。
【００２１】
これらの防止と選択を達成する機構は、オペレーティングシステムと装置が存在するシステムの機構でもよく、本明細書で説明する新規の概念には関連しない。一実施形態では、アクセスをブロックする１技法は、電話線の「通話中」信号と同様に、古いメモリ１１が「ビジー」メッセージを要求元の装置１４に送信して要求が後で再発行されるようにする。別の技法では、ブロックされたメモリに対するすべての要求がハードウェアまたはメインメモリに組み込まれたキューにロードされる。メモリのブロックが解除されたときに、カスタマサービスセンタのキューと同様にキューに入れられた要求が処理される。
【００２２】
図示された実施形態のプロセス２０３では、特定のデータのブロックを移行するために、移行装置１３が移行要求を古いメモリ１１に対して発行する。このブロックは、最も典型的には、行、いくつかの行、ブロック、またはシステムにおいて適切な任意の単位である。システムは、必要な場合たとえば６４キロバイトのデータを１度に移行することもできる。１度にそのように少量のデータを移行する理由と、そのように少量のデータを扱う能力については、以下でさらに明らかになろう。
【００２３】
図示した実施形態のプロセス２０４により、古いメモリ１１は、メモリの選択された部分から現在のバージョンのデータを取得する。同時に、プロセス２０５で古いメモリ１１はシステムに対して適切な処置を講じて、その取得済みのデータに対するあらゆる他の要求がそのデータにアクセスできないようにする。たとえば、ブロックが取得済みの場合、そのブロックに対するすべての要求が防がれる。これらの防止と選択を達成する機構は、オペレーティングシステムと装置が存在するシステムの機構でもよく、本明細書で説明する新規の概念には関連しない。古いメモリ１１へのアクセスをブロックする技法は、新しいメモリ１２へのアクセスをブロックする上述の技法と同様である。
【００２４】
プロセス２０６では、古いメモリ１１は、メモリの選択された部分の現在のバージョンのデータを移行装置１３に出力する。プロセス２０７は、移行装置１３を制御してデータを新しいメモリ１２に転送する。図示した実施形態によると、転送が完了すると即座に、プロセス２０８で移行装置１３が完了メッセージを古いメモリ１１に送る。古いメモリ１１は、完了メッセージを受け取ると、移行装置１３に送られたデータの行を「移行済み」とマーキングすることにより処理を完了する（プロセス２０９）。このマーキングはタグ、アドレス比較器等により実行可能で、特定のオペレーティングシステムとメモリが動作しているシステムに適合している。整合ディレクトリタグ（coherency directory tag）は、「移行済み」の行の位置を追跡する１つの方法である。複数のタグを使用してメモリの領域（chunk）の状態と位置を追跡することができる。タグの「移行済み」状態を使用することで、すべての例外的な移行に対してアルゴリズムを一般化し、全体の設計を簡略化することも可能である。移行が順次アドレスの順番で発生する場合、アドレス比較器を移行された行の追跡に使用することができる。
【００２５】
データが取得された行が「移行済み」とマーキングされた後、プロセス２１０に示されるように、古いメモリ１１に対する以降の要求は通常どおりに実行される。プロセス２１１では、装置１４などのあらゆる装置からの以降の要求に対しては、「移行済み」を示した応答が返され、アクセス中の装置にデータが移行済みであることが示される。プロセス２１２に示したように、移行されたデータが新しいメモリ１２に到着すると、新しいメモリが、移行制御装置１３により転送済みで処理済みの特定の行またはブロックの情報により更新される。すべての装置１４〜１４−Ｎ内のシステムアドレスマップを更新して移行されたデータがここで新しいメモリ１２内に存在するようになったことを反映させることもできる（プロセス２１３）。システムマップは、まとまりごとに更新して最大の性能を発揮させたり、すべてのデータの移行の完了後に更新することもできる。
【００２６】
ここで図３を参照すると、流れ図３０は、データ転送動作中にデータがメモリから読み取られる状態を示している。プロセス３０２では、移行に関連しない装置１４が古いメモリ１１の１行のコードにアクセスすることを望んでいると仮定する。このアクセスは、古いメモリ１１内の目的の行のデータに対しメモリの「移行済み」の表示が設定される前に試みられる。古いメモリ１１内の目的の情報がその時点では利用不能になっているため何も起こらない。
【００２７】
しかし、「移行済み」のメッセージが古いメモリ１１に設定されると、図２に関して説明したように、プロセス３０３は「移行済み」のメッセージにより装置１４に応答する。プロセス３０４で示すように、装置１４は、行をこれからは新しい位置、たとえばメモリ１２からフェッチしなければならないことを示しているこの返された「移行済み」のメッセージに基づいて、データが移行されたと判断する。この情報は、図２のプロセス２１３について説明したように、システムアドレスマップを使用して新しいメモリ１２から取得することが可能な場合もある。
【００２８】
プロセス３０５で、装置１４はデータ読み取りコマンドをもう１度発行するが、今度はこのコマンドは新しいメモリ１２内の適切な位置に導かれ、プロセス３０６で示されるように新しいメモリ１２が最新のデータを返す。ただし、移行期間中に古いメモリ１１に実際にアクセスした装置だけがこの新しいタグを有する。この時点ではシステム全体は更新されておらず、したがって、情報の同一の行を読もうとする別の装置１４−Ｎ（非図示）は同一のプロセスをたどり、特定の行の位置の古いメモリ１１にアクセスしようとするが、代わりに、「移行済み」というメッセージを受け取る。それから、装置１４−Ｎは、そのタグ情報を更新し、それから、新しいメモリ１２にアクセスして必要な情報を取得する。
【００２９】
要約すれば、移行装置１３を介して古いメモリ１１から新しいメモリ１２へのデータの転送中には、それらの行は「利用不可」とマーキングされる。そして、情報が転送されて新しいメモリ１２に格納されると、古いメモリ１１内の対応するデータの行が「移行済み」とマーキングされる。「移行済み」というメッセージはあらゆるアクセス装置に対して発行され、そのようなアクセス装置に新しいメモリ１２に要求をアクセス変更するように通知する。
【００３０】
最終的に、データの移行が終了する（図４のプロセス４０１により表される）。すべてのデータが古いメモリ１１から取り除かれ、新しいメモリ１３に転送されているか、図示されていないが、いくつかのメモリに転送されているか、またはいくつかのデータだけが古いメモリ１１から取り除かれている。いずれの場合も、プロセスが完了すると、図４の流れ図４０のプロセス４０２に示すように、移行装置１３は、移行されたデータの新しいメモリ位置を示している古いメモリ１１にアクセスするすべてのシステム装置を更新する。この時点で、プロセス４０３の制御下では、古いメモリ１１が完全に空になっていると古いメモリはシステムから除去可能であり、装置１４などのアクセス装置が動作中のシステムのオペレーティングシステムパラメータに従って、装置１４が古いメモリ１１を指すことがなくなり、代わりに新しいメモリ１２を指す状態になる。
【００３１】
なお、本発明によると、新しい位置は、システムに対して完全に新しいメモリの場合、システムに既存のメモリの場合、または同一のメモリ内の異なる位置の場合さえもある。そのため、本明細書で使用する「古い」と「新しい」という語は、本発明の読み手の理解を助けるために使用される相対的な語であり、本発明をメモリに関する何らかの特定の時間の階層あるいはステータスの階層に限定することを意図したものではないことは認められたい。
【００３２】
また、「移行済み」のメッセージは、アクセス装置が局所的な（システム全体のではなく）制御下で別の位置に導かれるようにするアクセス変更機能を達成する任意のメッセージの代表例を表している。そのため、本発明は、上述の「移行済み」のメッセージの何らかの特定の形式には限定されない。
【００３３】
図５は、上方に向けて経過する任意の時間を左側に示したタイミング図である。各列は、古いメモリ１１、新しいメモリ１２、アクセス装置１４、システム１５を示している。図示のように、時刻０と１との間では移行は発生していないため、すべてのアクセス装置は、システムマップに従って古いメモリに導かれる。この期間、新しいメモリ１２へのアクセスはなく、実際には、新しいメモリ１２はシステム内に物理的に存在していないことさえある。時刻１と２との間の任意の時刻に移行が始まり、これは新しいメモリ１２がシステムに追加されたか、使用可能になったことを意味する。上述の移行装置１３は、最初に転送される古いメモリ１１内の任意の行を選択することができる。同時に、移行装置１３は、ここでシステムに追加済みの新しいメモリ１２へのあらゆるアクセスをブロックすることもできる。アクセス装置１４の列に見られるように、古いメモリ１１のデータに対する要求は、古いメモリ１１の列に示したように、移行のために選択された行についてアクセスがブロックされている古いメモリ１１へ引き続き導かれる。任意の時刻２と３との間では、第１の１つの行または複数の行の古いメモリ１１から新しいメモリ１２に移行が完了し、古いメモリ１１内の移行が完了した行は「移行済み」とマーキングされる。この時点で、移行された行の位置の古いメモリに導かれる任意のアクセス装置１４は、上述のように新しいメモリ１２にアクセス変更される。この動作は、この仮想的な例では時刻６にあたる最後の行が古いメモリ１１から移行されるまで継続する。この時刻まで、上述のように古いメモリ１１内で行の集合が「移行済み」とマーキングされるたびに、アクセス装置１４が新しいメモリ１２内の適切な位置にアクセス変更されるようにシステムが継続して動作する。古いメモリ１１からの移行が完了すると、システム１５は、その時点以降、移行されたすべての行について、アクセス装置１４が古いメモリ１１の代わりに新しいメモリ１２に導かれるようにシステムマップを変更する。上述のように、古いメモリ１１が空の場合は、これで古いメモリ１１をシステムから除去することができる。システムが完全に動作していて、システムのダウン時間が最小の状態で、図５に関する動作がすべて実行されたことに注意しなければならない。
【００３４】
また、上述のように、データの移行元の古いメモリ１１内の位置に関連する「移行済み」のメッセージは、情報の転送中にだけ一時的に必要であることに注意しなければならない。転送が完了すると、グローバルなメッセージを発行することができる。ただし、システムマップを変更すると決定した場合いつでも、図５の「システム」の列に示したように、システムマップは時刻３と４、４と５、５と６との間のいずれかに任意に変更することができることにも注意しなければならない。それにより、アクセス装置が最初に古いメモリにアクセスして、「移行済み」のメッセージを受け取るだけに終わるのを防止することができる。この任意のシステムマップの変更は、１行ごとにまたは領域ごとに実行することができる。
【００３５】
別の実施形態は、移行中のデータに対する移行に関連しない装置からの要求を処理することに関する。移行装置１３が、古いメモリ１１に対して移行要求を発行すると（図２）、古いメモリ１１は戻りデータを発行するとき（２０６）に即座にデータに「移行済み」とマーキングする。移行に関連しない装置１４（図３）がデータの読み取り（３０２）（図３）を試みると、移行に関連しない装置１４は即座に「移行済みの」メッセージを受け取り（３０３）、新しいメモリ１２に対するデータの読み取り（３０５）を行う。新しいメモリ１２は、転送された移行データ２０７が新しいメモリ１２に移動するまで上述の方法を使用してアクセスをブロックする。この実施形態が簡易な点は、移行装置１３が移行完了のメッセージ２０８を発行する必要がなく、古いメモリがデータの読み取り（３０２）をブロックする必要がなく、即座に移行済み３０３のメッセージを送信できることである。
【００３６】
本発明の別の実施形態は、移行データの経路に関する。移行装置１３が移行要求２０３を古いメモリ１１に対して発行すると、古いメモリ１１は、要求の受け取り時に即座にデータに「移行済み」のマーキングをして、新しいメッセージ「メモリ転送データ」２１０を直接新しいメモリに発行する。新しいメモリ１２は、メモリ転送完了の新しいメッセージ２１１を古いメモリ１１に送信することで応答し、それ以降、古いメモリ１１はデータの読み取り（３０２）に対して「移行済み」３０３で応答することで、移行に関連しない装置１４がデータの読み取りの再発行（３０５）を行い、返されたデータを取得（３０６）できるようにする。本実施形態の利点は、移行装置１３は移行要求２０３を発行するだけで、データを扱わず、初期化ステップ２０２が不要で、メモリ転送データ２１０の到着以前に再発行されたデータ読み取り（３０５）が新しいメモリ１２に到着するレーシング状態が回避されることである。
【００３７】
本発明の別の実施形態は、移行データの経路に関する。移行装置１３が移行要求２０３を古いメモリ１１に対して発行すると、古いメモリ１１は、要求の受け取り時に即座にデータに「移行済み」のマーキングをして、新しいメッセージ「メモリ転送データ」２１０を直接新しいメモリ１２に発行する。古いメモリ１１は、移行に関連しない装置１４からのデータ読み取り（３０２）に対するブロックを解除し、「移行済み」３０３により応答して、移行に関連しない装置１４がデータ読み取りを再発行（３０５）して返されるデータを取得（３０６）できるようにする。本実施形態の利点は、移行装置１３は移行要求２０３を発行するだけでデータを扱わず、新しいメモリ１２は古いメモリ１１に決してメッセージを発行しないことである。
【００３８】
別の実施形態は、移行データの経路に関する。移行装置１３が移行要求２０３を古いメモリ１１に対して発行すると、古いメモリ１１は、要求の受け取り時に即座にデータに「移行済み」のマーキングをして、新しいメッセージ「メモリ転送データ」２１０を直接新しいメモリに発行する。新しいメモリ１２は、メモリ転送完了２１１の新しいメッセージを古いメモリ１１に送信することで応答し、それ以降、古いメモリ１１はデータの読み取り（３０２）に対して「移行済み」３０３で応答することで、移行に関連しない装置１４がデータの読み取りの再発行（３０５）を行い、返されたデータを取得（３０６）できるようにする。この実施形態の利点は、移行装置１３は移行要求２０３を発行するだけで、データを扱うことがなく、初期化ステップ２０２が不要で、メモリ転送データ２１０の到着以前に再発行されたデータ読み取り（３０５）が新しいメモリ１２に到着するレーシング状態が回避されることである。
【図面の簡単な説明】
【００３９】
【図１】新規の概念の一実施形態のさまざまな要素の相互作用を示す図。
【図２】新規の概念の一実施形態の動作を示すフローチャート。
【図３】新規の概念の一実施形態の動作を示すフローチャート。
【図４】新規の概念の一実施形態の動作を示すフローチャート。
【図５】本発明の一実施形態のシステム動作のタイミング図。
【図１】
2004213657.tif 000003
【図２】
2004213657.tif 000004
【図３】
2004213657.tif 000005
【図４】
2004213657.tif 000006
【図５】
2004213657.tif 000007