(57)【要約】【課題】複数のメモリ・デバイスの間でデータの自動マイグレーションを実行するシステム、方法、およびプログラムを提供すること。【解決手段】一実施形態で、アプリケーション・プログラム・データのメモリ・アクセスが、１つまたは複数のアプリケーション・プログラムのそれぞれについて監視される。このデータを、それぞれがそれ自体の性能特性を有する複数のメモリ・ストレージ・デバイスのうちの１つまたは複数に格納することができる。監視されるアクセスは、複数のメモリ・ストレージ・デバイスの間での、通常はファイルに格納されるアプリケーション・プログラム・データの最適分配を決定するために評価される。この評価は、各アプリケーション・プログラムのサービス・レベル要件を考慮に入れたものである。周期的に、データを、あるメモリ・ストレージ・デバイスから別のメモリ・ストレージ・デバイスに自動的に転送して、サービス・レベル要件と一貫する、使用可能メモリ・ストレージ・デバイスの間での決定された最適割振りを達成することができる。【選択図】図２
2009500705.tif 000002
【特許請求の範囲】
【請求項１】
複数のメモリ・ストレージ・デバイスの間でのデータの自動マイグレーションの方法であって、
１つまたは複数のアプリケーション・プログラムについて前記複数のメモリ・ストレージ・デバイスのうちの１つまたは複数に格納されたアプリケーション・プログラム・データのアクセスを監視することと、
前記１つまたは複数のアプリケーション・プログラムの１つまたは複数のサービス・レベル仕様を判定することと
のうちの少なくとも１つを含み、さらに、
前記監視されたアクセスのうちの少なくとも１つおよびすべての判定されたサービス・レベル仕様から、前記アプリケーション・プログラムのうちの１つまたは複数の前記データに関するメモリ割振りの変化を判定することと、
前記判定されたメモリ割振りの変化に従って、複数のストレージ・デバイスのうちの前記複数の間での前記データの割振りを達成するために複数のメモリ・ストレージ・デバイスの間でデータを自動的に転送することと
を含む、方法。
【請求項２】
前記方法は、アクセスを監視する前記ステップを含み、前記方法は、さらに、１つまたは複数のアプリケーション・プログラムのデータのメモリ・ストレージ仕様のベースライン・セットを判定することを含む、請求項１に記載の方法。
【請求項３】
メモリ・ストレージ仕様の前記ベースライン・セットを実際のメモリ使用量と比較することをさらに含む、請求項２に記載の方法。
【請求項４】
前記方法は、１つまたは複数のサービス・レベル仕様を判定する前記ステップを含み、前記方法は、さらに、アプリケーション・プログラムについて指定されたサービス・レベルの変化から生じるメモリ割振りの変化を判定することを含む、請求項１、２、または３に記載の方法。
【請求項５】
ユーザがアプリケーション・プログラムのメモリ割振りの変化を入力することを可能にすることをさらに含む、請求項１ないし４のいずれかに記載の方法。
【請求項６】
アプリケーション・プログラム・データのアクセスを監視することは、アプリケーション・プログラムのデータのアクセスの頻度を判定することを含む、請求項１ないし５のいずれかに記載の方法。
【請求項７】
アプリケーション・プログラム・データのアクセスを監視することは、アプリケーション・プログラムのファイルのアクセスの持続時間を判定することを含む、請求項１ないし６のいずれかに記載の方法。
【請求項８】
アプリケーション・プログラム・データのアクセスを監視することは、アプリケーション・プログラムのファイルのサイズを判定することを含む、請求項１ないし７のいずれかに記載の方法。
【請求項９】
アプリケーション・プログラム・データのアクセスを監視することは、メモリ・ストレージ・デバイスからデータにアクセスする時間の長さを含む、請求項１ないし８のいずれかに記載の方法。
【請求項１０】
事前に決定可能な性能特性にそれぞれが関連する複数のメモリ・ストレージ・ユニット
を含む自動マイグレーション・メモリ・ストレージ・システムであって、
１つまたは複数のアプリケーション・プログラムの１つまたは複数のサービス・レベル仕様を格納するデータ・ストアと、
前記メモリ・ストレージ・ユニットのうちの少なくとも１つに格納されたアプリケーション・プログラムのデータのアクセスを監視する監視構成要素と
のうちの少なくとも１つをさらに含み、
前記監視されたアクセスのうちの少なくとも１つおよびすべてのサービス・レベル仕様から、前記複数のメモリ・ストレージ・ユニットの間でのデータの再割振りを決定する分析構成要素と、
前記決定された再割振りに応答して、あるメモリ・ストレージ・ユニットから別のメモリ・ストレージ・ユニットにデータを転送する転送制御構成要素と
をさらに含む自動マイグレーション・メモリ・ストレージ・システム。
【請求項１１】
ユーザがメモリ・ストレージ・ユニットの間のデータの所望の再割振りを強要することを可能にするユーザ・インターフェースをさらに含む、請求項１０に記載のシステム。
【請求項１２】
前記システムは、前記監視構成要素を含み、前記監視構成要素は、１つまたは複数のアクセス特性のベースラインを判定する、請求項１０または１１に記載のシステム。
【請求項１３】
前記分析構成要素は、経時的に前記ベースライン特性を実際のメモリ・アクセスと比較する、請求項１２に記載のシステム。
【請求項１４】
前記システムは、前記監視構成要素を含み、前記分析構成要素は、経時的に１つまたは複数のアクセス特性のベースラインを実際のメモリ・アクセスと比較する、請求項１０または１１に記載のシステム。
【請求項１５】
機械によって実行されるときに、前記機械に、
１つまたは複数のアプリケーション・プログラムについて複数のメモリ・ストレージ・デバイスのうちの１つまたは複数に格納されたアプリケーション・プログラム・データのアクセスを監視することと、
前記１つまたは複数のアプリケーション・プログラムの１つまたは複数のサービス・レベル仕様を判定することと
のうちの少なくとも１つを含む動作を実行させるメモリ・自動マイグレーションを実行する命令を含む機械アクセス可能媒体であって、前記動作は、
前記監視されたアクセスのうちの少なくとも１つおよびすべての判定されたサービス・レベル仕様から、前記アプリケーション・プログラムのうちの１つまたは複数の前記データに関するメモリ割振りの変化を判定することと、
前記判定されたメモリ割振りの変化に従って、複数のストレージ・デバイスのうちの前記複数の間での前記データの割振りを達成するために複数のメモリ・ストレージ・デバイスの間でデータを自動的に転送することと
をさらに含む、機械アクセス可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ・メモリの分野に関する。より具体的には、本発明は、自動的に制御されるメモリ・マイグレーション（ｍｅｍｏｒｙ  ｍｉｇｒａｔｉｏｎ）に関する。
【背景技術】
【０００２】
多数の異なるタイプのコンピューティング・システムが、全世界で広く行き渡って使用されている。これらのコンピューティング・システムは、パーソナル・コンピュータ、サーバ、メインフレーム、ならびにさまざまな独立型コンピューティング・デバイスおよび組み込みコンピューティング・デバイスを含む。不規則に延び広がるクライアント−サーバ・システムが存在し、アプリケーションおよび情報は、多数のＰＣネットワーク、メインフレーム、およびミニコンピュータにまたがって分散している。ネットワークによって接続された分散システムでは、ユーザが、多数のアプリケーション・プログラム、データベース、ネットワーク・システム、オペレーティング・システム、およびメインフレーム・アプリケーションにアクセスすることができる。コンピュータは、ワード・プロセッシング、スプレッドシート、会計、電子メール、ｖｏｉｃｅ  ｏｖｅｒ  Ｉｎｔｅｒｎｅｔ  ｐｒｏｔｏｃｏｌ遠隔通信、およびファクシミリを含むソフトウェア・アプリケーションのホストを個人および会社に与える。
【０００３】
コンピュータなどのディジタル・プロセッサのユーザは、ますます複雑で困難なタスクを処理するために、そのようなシステムにますます高まる性能を要求し続ける。さらに、処理速度は、メイン・メモリ・アクセスの速度よりはるかにすばやく向上してきた。その結果、キャッシュ・メモリまたはキャッシュが、しばしば、相対的にコスト効率のよい形で性能を高めるために、多数のそのようなシステムで使用されている。多数の近代コンピュータは、複数のプログラムまたはプログラムのスレッドがディジタル・プロセッサの実行パイプライン内で交互に実行される、「マルチタスキング」または「マルチスレッディング」もサポートする。高性能単一チップマイクロプロセッサの共通のアーキテクチャは、高速実行のための頻繁に使用される命令の小さい単純化されたセットの特徴がある、縮小命令セット・コンピュータ（ＲＩＳＣ）アーキテクチャである。したがって、ＲＩＳＣアーキテクチャでは、１つの複合命令が、複数のステップで非常にすばやく実行される単純な命令の小さいセットを含む。これらのステップは、特定の単純命令を実行するように適合された実行ユニット内で実行される。スーパースカラ・アーキテクチャでは、これらの実行ユニットが、通常、並列に動作する、ロード／ストア・ユニット、整数算術／論理ユニット、浮動小数点算術／論理ユニット、およびグラフィカル論理ユニットを含む。プロセッサ・アーキテクチャでは、オペレーティング・システムが、プロセッサおよびプロセッサの周辺の構成要素の動作を制御する。実行可能アプリケーション・プログラムは、コンピュータのハード・ドライブに格納される。コンピュータのプロセッサは、ユーザ入力に応答してアプリケーション・プログラムを実行させる。
【０００４】
メモリ・ストレージは、現在存在するほとんどすべてのソフトウェア・アプリケーションのクリティカル構成要素である。ストレージ産業が成熟するにつれて、ストレージ・オプションの数が大幅に増え、データ入力およびデータ検索の性能が大幅に向上してきた。ストレージ・オプションは、磁気テープ、ハード・ディスク・ドライブ（ＨＤＤ）、コンパクト・ディスク（ＣＤ）、ディジタル・ビデオ・ディスク（ＤＶＤ）、および他の媒体を含む。ハード・ディスク・ドライブのカテゴリ内では、単純でより信頼性の低い独立ＨＤＤから高性能冗長ディスク・アレイまでの範囲にわたる豊富なストレージ・オプションが存在する。これが、仮想ストレージ環境を複雑にする。ディスク・アレイの主要なメトリックには、アクセス速度および冗長性が含まれる。複雑な仮想ストレージ環境には、単一コンピューティング環境を超えて延びるストレージ・アーキテクチャが含まれる。そのような環境に、ストレージ・エリア・ネットワーク（ＳＡＮ）が含まれる。各ストレージ機構は、関連するコストおよびサービス・レベルを有し、この両方が、大きく変化する可能性がある。
【０００５】
実際には、多数のアプリケーション・プログラムが、使用のピーク期間を経験し、その結果、より厳密なサービス・レベル要件を経験する。これらのプログラムは、オフピーク期間中の比較的使用量の少ない期間を、その結果のオフピーク期間中の低いサービス・レベル要件と共に経験する。アプリケーション・プログラム開発者は、予想される使用、コスト、サービス・レベル要件、ならびに他の要件に基づいて、どのストレージ機構がアプリケーション・プログラムによって要求されるかを判断しなければならない。たとえば、バックアップ／リカバリ・システムが、その消失が致命的に有害である場合がある、頻繁に使用されるファイルまたは非常に重要なファイルを格納するために、高サービス・レベル・ストレージ・サブシステムを要求する場合がある。しばしば、予想された必要は、プログラムがインストールされるときに生じる実際の必要と異なる。さらに、ストレージの必要は、経時的に変化する場合がある。
【０００６】
現在、アプリケーション・プログラムの予想される必要が、実際の必要と異なるときに、アプリケーション・プログラム管理者は、ストレージ管理者にストレージ・サービスの変更を要求する。そのような変更は、破壊的であり、ファイルをあるストレージ・サブシステムから別のストレージ・サブシステムに物理的に移動し、あまり利用されていないストレージを再生利用し、追加ストレージを提供するのにダウンタイムを必要とする。変化する必要が、ストレージ・レイアウトの変更を要求する場合もある。レイアウトの変更は、通常、代替ストレージ・レイアウトが変化する需要を満足するのを容易にするために、一時的なファイルのマイグレーションを伴う。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明の目的は、複数のメモリ・デバイスの間でデータの自動マイグレーションを実行するシステム、方法、およびプログラムを提供することである。
【課題を解決するための手段】
【０００８】
第１の態様によれば、複数のメモリ・ストレージ・デバイスの間でのデータの自動マイグレーションの方法であって、１つまたは複数のアプリケーション・プログラムについて複数のメモリ・ストレージ・デバイスのうちの１つまたは複数に格納されたアプリケーション・プログラム・データのアクセスを監視することと、１つまたは複数のアプリケーション・プログラムの１つまたは複数のサービス・レベル仕様を判定することとのうちの少なくとも１つを含み、さらに、監視されたアクセスのうちの少なくとも１つおよびすべての判定されたサービス・レベル仕様から、アプリケーション・プログラムのうちの１つまたは複数のデータに関するメモリ割振りの変化を判定することと、判定されたメモリ割振りの変化に従って、複数のストレージ・デバイスのうちの複数の間でのデータの割振りを達成するために複数のメモリ・ストレージ・デバイスの間でデータを自動的に転送することとを含む、方法が提供される。
【０００９】
第２の態様によれば、事前に決定可能な性能特性にそれぞれが関連する複数のメモリ・ストレージ・ユニットを含む自動マイグレーション・メモリ・ストレージ・システムであって、１つまたは複数のアプリケーション・プログラムの１つまたは複数のサービス・レベル仕様を格納するデータ・ストアと、メモリ・ストレージ・ユニットのうちの少なくとも１つに格納されたアプリケーション・プログラムのデータのアクセスを監視する監視構成要素とのうちの少なくとも１つをさらに含み、監視されたアクセスのうちの少なくとも１つおよびすべてのサービス・レベル仕様から、複数のメモリ・ストレージ・ユニットの間でのデータの再割振りを決定する分析構成要素と、決定された再割振りに応答して、あるメモリ・ストレージ・ユニットから別のメモリ・ストレージ・ユニットにデータを転送する転送制御構成要素とをさらに含む自動マイグレーション・メモリ・ストレージ・システムが提供される。
【００１０】
第３の態様によれば、コンピュータに、１つまたは複数のアプリケーション・プログラムについて複数のメモリ・ストレージ・デバイスのうちの１つまたは複数に格納されたアプリケーション・プログラム・データのアクセスを監視することと、１つまたは複数のアプリケーション・プログラムの１つまたは複数のサービス・レベル仕様を判定することとのうちの少なくとも１つを含む動作を実行させるメモリ・自動マイグレーションを実行する命令を含む機械アクセス可能媒体であって、動作は、監視されたアクセスのうちの少なくとも１つおよびすべての判定されたサービス・レベル仕様から、アプリケーション・プログラムのうちの１つまたは複数のデータに関するメモリ割振りの変化を判定することと、判定されたメモリ割振りの変化に従って、複数のストレージ・デバイスのうちの複数の間でのデータの割振りを達成するために複数のメモリ・ストレージ・デバイスの間でデータを自動的に転送することとをさらに実行させるプログラムが提供される。
【００１１】
好ましくは、アプリケーション・プログラム使用の崩壊をほとんどまたは全く伴わない、あるメモリ・サブシステムから別のメモリ・サブシステムへファイルを自動的にマイグレーションする形が提供される。
【００１２】
複数のメモリ・ストレージ・デバイスの間でのデータの自動マイグレーションのシステム、方法、および媒体が提供される。一実施形態は、１つまたは複数のアプリケーション・プログラムについて複数のメモリ・ストレージ・デバイスのうちの１つまたは複数に格納されたアプリケーション・プログラム・データのアクセスを監視することを含む。また、このプロセスは、１つまたは複数のアプリケーション・プログラムのサービス・レベル仕様を判定する。この方法は、監視されたアクセスおよびサービス・レベル仕様から、アプリケーション・プログラムのうちの１つまたは複数のデータに関するメモリ割振りの変化を判定することを含む。データは、判定されたメモリ割振りの変化に従って、複数のストレージ・デバイスのうちの複数の間でのデータの割振りを達成するために複数のメモリ・ストレージ・デバイスの間で自動的に転送される。
【００１３】
実施形態は、事前に決定可能な性能特性にそれぞれが関連する複数のメモリ・ストレージ・ユニットを含む自動マイグレーション・メモリ・ストレージ・システムを含む。データ・ストアが、１つまたは複数のアプリケーション・プログラムのサービス・レベル仕様を格納する。監視構成要素が、メモリ・ストレージ・ユニットのうちの少なくとも１つに格納されたアプリケーション・プログラムのデータのアクセスを監視する。分析構成要素が、監視されたアクセスおよびサービス・レベル仕様から、複数のメモリ・ストレージ・ユニットの間でのデータの再割振りを決定する。転送制御構成要素が、決定された再割振りに応答して、あるメモリ・ストレージ・ユニットから別のメモリ・ストレージ・ユニットにデータを転送する。
【００１４】
本発明のもう１つの実施形態は、データ処理システムによって実行されるときに、そのシステムに、メモリ・自動マイグレーションを実行する一連の動作を実行させるのに有効な命令を含む機械アクセス可能媒体を提供する。この動作は、１つまたは複数のアプリケーション・プログラムについて複数のメモリ・ストレージ・デバイスのうちの１つまたは複数に格納されたアプリケーション・プログラム・データのアクセスを監視することを含む。また、この動作は、１つまたは複数のアプリケーション・プログラムのサービス・レベル仕様を判定することを含む。この動作は、監視されたアクセスおよびサービス・レベル仕様から、アプリケーション・プログラムのうちの１つまたは複数のデータに関するメモリ割振りの変化を判定することをも含む。データは、判定されたメモリ割振りの変化に従って、複数のストレージ・デバイスのうちの複数の間でのデータの割振りを達成するために複数のメモリ・ストレージ・デバイスの間で自動的に転送される。
【００１５】
本発明の実施形態を、これから、例としてのみ、添付図面を参照して説明する。
【００１６】
類似する符号は、類似する要素を示す場合がある。
【発明を実施するための最良の形態】
【００１７】
次は、添付図面に示された本発明の例の実施形態の詳細な説明である。例の実施形態は、本発明を明瞭に伝えるほどに詳細である。しかし、提供される詳細の量は、実施形態の予想される変形形態を限定することを意図されたものではなく、逆に、その意図は、添付の特許請求の範囲によって定義される本発明の趣旨および範囲に含まれるすべての修正形態、同等物、および代替形態を含むことである。下の詳細な説明は、そのような実施形態を当業者に明白にするように計画されている。
【００１８】
複数のメモリ・デバイスの間でデータの自動マイグレーションを実行するシステム、方法、および媒体を開示する。一実施形態では、アプリケーション・プログラム・データのメモリ・アクセスが、１つまたは複数のアプリケーション・プログラムのそれぞれについて監視される。データを、それぞれがそれ自体の性能特性を有する複数のメモリ・ストレージ・デバイスのうちの１つまたは複数に格納することができる。監視されるアクセスは、複数のメモリ・ストレージ・デバイスの間での、通常はファイルに格納されるアプリケーション・プログラム・データの最適分配を決定するために評価される。この評価は、各アプリケーション・プログラムのサービス・レベル仕様を考慮に入れたものである。周期的に、データを、あるメモリ・ストレージ・デバイスから別のメモリ・ストレージ・デバイスに自動的に転送して、サービス・レベル仕様と一貫する、使用可能メモリ・ストレージ・デバイスの間での決定された最適割振りを達成することができる。
【００１９】
図１に、本発明の一実施形態に従って実施される、コンピュータまたはサーバなどのディジタル・システム１１６を示す。ディジタル・システム１１６は、基本入出力システム（ＢＩＯＳ）コード１０４およびオペレーティング・システム（ＯＳ）コード１０６に従って動作することができるプロセッサ１００を含む。ＢＩＯＳコードおよびＯＳコードは、メモリ１０８に格納される。ＢＩＯＳコードは、通常は読取専用メモリ（ＲＯＭ）に格納され、ＯＳコードは、通常はディジタル・システム１１６のハード・ドライブに格納される。メモリ１０８は、プロセッサ１００による実行のための他のプログラムをも格納し、データ１０９を格納する。ディジタル・システム１１６は、マルチスレッド式のプロセッサ１００の物理的に近くに配置されたレベル２（Ｌ２）キャッシュ１０２を含む。
【００２０】
プロセッサ１００は、オンチップのレベル１（Ｌ１）キャッシュ１９０、命令バッファ１３０、制御回路網１６０、および実行ユニット１５０を含む。Ｌ１キャッシュ１９０は、実行のときに近い命令を受け取り、格納する。命令バッファ１３０は、命令キューを形成し、実行ユニットに発行される命令の順序に対する制御を可能にする。実行ユニット１５０は、命令によって要求された動作を実行する。実行ユニット１５０には、ロード／ストア・ユニット、整数算術／論理ユニット、浮動小数点算術／論理ユニット、およびグラフィカル論理ユニットを含めることができる。各実行ユニットは、命令バッファ１３０から受け取られた命令の実行におけるステップを実行するステージを含む。制御回路網１６０は、命令バッファ１３０および実行ユニット１５０を制御する。制御回路網１６０は、制御判断に関連する情報をも実行ユニット１５０から受け取る。たとえば、制御回路網１６０は、実行パイプライン内のデータ・キャッシュ・ミスの場合に通知される。
【００２１】
ディジタル・システム１１６は、通常、Ｔｒｕｓｔｅｄ  Ｐｌａｔｆｏｒｍ  Ｍｏｄｕｌｅ、メモリ・コントローラ、ランダム・アクセス・メモリ（ＲＡＭ）、周辺ドライバ、システム・モニタ、キーボード、カラー・ビデオ・モニタ、１つまたは複数のフレキシブル・ディスケット・ドライブ、固定ディスク・ハード・ドライブ、ＣＤドライブ、およびＤＶＤドライブなどの１つまたは複数の取外し可能不揮発性媒体ドライブ、マウスなどのポインティング・デバイス、ならびにネットワーク・インターフェース・アダプタなど、図示されていない他の構成要素およびサブシステムをも含む。ディジタル・システム１１６には、パーソナル・コンピュータ、ワークステーション、サーバ、メインフレーム・コンピュータ、ノートブックコンピュータまたはラップトップ・コンピュータ、デスクトップ・コンピュータ、あるいは類似物を含めることができる。プロセッサ１００は、入出力デバイス１１０によってサーバ１１２と通信することもできる。サーバ１１２は、ディジタル・システム１１６を他のコンピュータおよびサーバ１１４に接続する。したがって、ディジタル・システム１１６は、インターネットまたはローカル・イントラネットあるいはその両方などのコンピュータのネットワーク内にあるものとすることができる。さらに、サーバ１１２は、テープ・ドライブ・ストレージ、ハード・ディスク・アレイ、ＲＡＭ、ＲＯＭなどを含む別のメモリ１１８へのアクセスを制御することができる。
【００２２】
ディジタル・システム１１６の動作の１つのモードで、Ｌ２キャッシュは、メモリ１０８から、プロセッサ１００のパイプライン内で処理されると期待されるデータおよび命令を受け取る。Ｌ２キャッシュ１０２は、より高い速度を達成するために物理的にプロセッサ１００の近くに配置された高速メモリである。Ｌ２キャッシュは、メモリ１０８から複数の命令スレッドの命令を受け取る。そのような命令に、分岐命令が含まれる場合がある。Ｌ１キャッシュ１９０は、プロセッサ内に配置され、好ましくはＬ２キャッシュ１０２から受け取られるデータおよび命令を含む。理想的には、あるプログラム命令が実行されるときに接近するときに、その命令が、データがある場合にそのデータと共に、まずＬ２キャッシュに渡され、その後、実行の時がほぼ切迫しているときに、Ｌ１キャッシュに渡される。
【００２３】
実行ユニット１５０は、Ｌ１キャッシュ１９０から受け取った命令を実行する。実行ユニット１５０には、ロード／ストア・ユニット、整数算術／論理ユニット、浮動小数点算術／論理ユニット、およびグラフィカル論理ユニットを含めることができる。ユニットのそれぞれを、命令の特定の組を実行するように適合させることができる。命令を、実行のために異なる実行ユニットに並列にサブミットすることができる。一実施形態で、２つの実行ユニットが、ある種の命令を実行するために同時に使用される。実行ユニット１５０によって処理されるデータは、整数レジスタ・ファイルおよび浮動小数点レジスタ・ファイル（図示せず）に格納でき、そこからアクセス可能である。これらのレジスタ・ファイルに格納されたデータは、オンボードのＬ１キャッシュ１９０または外部キャッシュもしくは外部メモリから来ることができ、あるいはそれに転送されることができる。プロセッサは、ロード命令を実行することによって、Ｌ１キャッシュなどのメモリからプロセッサのレジスタにデータをロードすることができる。プロセッサは、ストア命令を実行することによって、レジスタからメモリにデータをストアすることができる。
【００２４】
したがって、図１のシステムに、サーバによってサービスされるネットワーク内で接続された、すぐ上で説明したプロセッサおよびメモリを有する複数のコンピュータを含めることができる。サーバは、ネットワーク内のコンピュータの間の通信を容易にし、調整する。各コンピュータは、そのオペレーティング・システム、ＢＩＯＳ、およびアプリケーション・プログラムを実行するためのコード、ならびにファイルおよびデータを格納するために、それ自体のメモリを有する。コンピュータのメモリは、読取専用メモリ（ＲＯＭ）、ＤＲＡＭおよびＳＲＡＭで実施されたキャッシュ・メモリ、ハード・ディスク・ドライブ、ＣＤドライブ、およびＤＶＤドライブを含む。サーバも、それ自体のメモリを有し、テープ・ドライブおよびハード・ディスク・アレイなどの他のメモリへのアクセスを制御することができる。各コンピュータは、それ自体のアプリケーション・プログラムを格納することができる。データベースなど、一部のアプリケーション・プログラムは、サーバ内に常駐することができる。したがって、各コンピュータは、そのサーバに格納された同一のデータベースにアクセスすることができる。さらに、各コンピュータは、サーバによって他のメモリにアクセスすることができる。したがって、コンピュータおよびサーバのプロセッサに近い、より高速でより高コストのメモリと、プロセッサから遠い、より低速でより安価なメモリとを有する、メモリ・グラデーション（ｍｅｍｏｒｙ  ｇｒａｄａｔｉｏｎ）が存在する。
【００２５】
図１のシステムの動作の過程において、データは、あるメモリ位置から別のメモリ位置に移動される。たとえば、データが、プロセッサのローカル・キャッシュからハード・ドライブ・システム・メモリに移動される場合がある。データは、通常、ハード・ドライブ上のファイルに編成される。ファイルには、テキスト、オブジェクト、コンピュータ・コードなどを含めることができる。したがって、いくつかのデータ・ファイルが、コンピュータのハード・ドライブに格納される。他のファイルは、ＣＤまたはＤＶＤに格納することができる。バックアップ・メモリ・デバイスをコンピュータに取外し可能に接続して、ハード・ドライブからデータをバックアップすることもできる。より大型のシステムでは、一部のデータ・ファイルを、サーバ１１２を介してアクセスされるテープにバックアップすることができる。他の磁気メモリまたは光メモリを使用することができる。
【００２６】
一般に、メモリ・アクセス速度は、プロセッサに近づくにつれて高まる。したがって、キャッシュ・メモリ・アクセスは、高速ディスク・アクセスより高速であり、高速ディスク・アクセスは、リモート・ディスク・アクセスより高速であり、リモート・ディスク・アクセスは、オフライン・ストレージ・アクセスより高速である。逆に、メモリは、メモリ・アクセス速度が低下するにつれて、コストが減る。したがって、キャッシュ・メモリは、高速ディスクなどよりコストが高い。また、メモリ・サイズは、メモリ速度の低下に伴って増加する。したがって、たとえば、高速ディスクは、キャッシュ・メモリより大きい。したがって、一般に、頻繁に使用されるか変更されるデータは、好ましくはキャッシュまたは高速ディスク内に常駐する。より低い頻度で使用されるか変更されるデータは、リモート・ディスク・アレイに常駐することができる。ある時間期間にわたってアーカイブされなければならないデータは、テープ・ドライブ・システムによってテープに格納することができる。
【００２７】
メモリ使用は、ソフトウェアの開発における重要な構成要素である。ソフトウェア開発者は、使用可能なメモリおよび期待される使用を予想してソフトウェアを記述する。たとえば、ソフトウェア開発者は、あるプログラムＣＤ上のファイルの総数のうちの一部のファイルだけが、通常のインストールで使用されると予想する場合がある。したがって、セットアップ・プログラムが、そのプログラムＣＤからプログラム・ファイルの一部だけをハード・ドライブにロードする場合がある。ユーザが、ハード・ドライブにロードされていない特徴を選択するときには、そのユーザは、選択された特徴を実施するファイルを取り出すためにプログラムＣＤを挿入するように促される。明らかに、ソフトウェア開発者が、ソフトウェアの動作の過程でのメモリの実際の使用について思い違いをする場合がある。したがって、諸実施形態は、実際の使用に従ってメモリ割振りを自動的に適合させることができる。
【００２８】
しばしば、あるアプリケーション・プログラムによって生成され、操作されるデータ・ファイルは、コンピュータのハード・ドライブに格納される。これらのファイルは、処理のためにコンピュータのキャッシュに呼び込まれる可能性があるデータおよび命令を含む。動作の過程で、ある種のファイルが、休止状態になる、すなわち、そのファイルが、比較的長い時間にわたって使用されなくなる。その場合に、これらのファイルを、ディスク・アレイなど、コストがより低く、より多くの使用可能な余地を有する、より離れたメモリに格納することができる。その後、ディスク・アレイ内で休止しているファイルを、テープ・ストレージに転送することができる。したがって、諸実施形態は、メモリ使用量を監視し、使用量統計をコンパイルし、使用量に従ってファイルをあるメモリ・デバイスから別のメモリ・デバイスに転送するシステムを含む。
【００２９】
図２に、メモリ使用量を監視し、メモリを動的に割り振るシステム２００の実施形態を示す。一般に、メモリを、層で説明し、実施することができる。たとえば、メモリを、キャッシュ・メモリ、高速ディスク、リモート・ディスク、およびオフライン・ストレージとすることができる。キャッシュ・メモリは、コンピュータ・プロセッサに近く、通常は高速ランダム・アクセス・メモリ（ＲＡＭ）で実施することができる。ハード・ドライブなどの高速ディスク・ストレージは、プロセッサにローカルである。リモート・ディスク・アレイも、アレイにアクセスするおそらくは複数のコンピュータを有する、メモリの第３層として使用することができる。第４層すなわちオフライン・ストレージは、磁気テープを含む。オフライン・ストレージは、保存されなければならないが滅多に使用されない可能性が高いデータのアーカイブとして働く。
【００３０】
メモリの３つの層２０２、２０４、および２０６が示されているが、異なる個数の層をサポートすることができる。たとえば、メモリ層＃１に、高速ディスクを含めることができ、メモリ層＃２に、リモート・ディスクを含めることができ、メモリ層＃３に、テープ・ドライブを含めることができる。他の層に、キャッシュ・メモリ、バックアップ媒体などを含めることができる。データを、ある層から別の層に転送することができる。一実施形態で、データを、層１と２との間、１と３との間、および２と３との間で転送することができる。ある層から別の層へのデータの転送は、メモリ転送コントローラ２１４によって制御される。メモリ転送コントローラ２１４は、分析モジュール２１２またはユーザ・インターフェース２１６からの制御信号に応答する。これらの制御信号に応答して、メモリ転送コントローラ２１４は、あるメモリ層から別のメモリ層への転送を指示する。
【００３１】
メモリ・マイグレーションのシステム２００は、さらに、メモリの各層の使用量を監視し、使用量統計を累積する使用量モニタ２０８を含む。複数のアプリケーション・プログラムが、コンピュータまたはコンピュータのネットワーク上で同時に動作している場合がある。各アプリケーションは、それ自体のメモリの使用量を作ることを試みる。したがって、命令およびデータが、もう１つのプログラムの実行中に層１内のハード・ドライブからアクセスされる場合がある。一部のアプリケーションが、ハード・ドライブとコンピュータ・プロセッサのキャッシュとの間で非常に頻繁な基礎でデータを転送する場合がある。一部のアプリケーションが、これを頻繁でない基礎で行う場合がある。システム２００の使用量モニタ２０８は、ファイル・アクセス・レートを監視し、データを分析モジュール２１２に供給する。使用量モニタ２０８は、アクセス時間、ファイル・サイズなどに関するデータも監視し、供給する。
【００３２】
使用量統計に、あるファイルがどれほど頻繁にアクセスされまたは変更されるかを含めることができる。使用量統計を使用することによって、諸実施形態は、システム内で使用可能なさまざまなメモリ実施態様へのアクセスを動的に知的に割り振ることができる。これらの統計は、あるファイルが、そのファイルをメモリのより上位の層に転送することを正当化するのに十分に頻繁に、メモリのある層からアクセスされていることを示すことができる。逆に、使用量統計は、あるファイルが、そのファイルをメモリのより下位の層に格納することを正当化するほどに低い頻度でアクセスされていることを示すことができる。したがって、あるファイルを、ある時点で高速ローカル・ディスクに割り振り、別の時点でリモート・ディスクに割り振ることができる。同様に、１日のある部分の間にテープに割り振られるファイルを、１日の別の部分の間にリモート・ディスクに割り振ることができる。使用量のヒストリ的傾向および現在の傾向を調べることによって、諸実施形態は、効率的かつ自動的にメモリを再割振りすることができる。したがって、諸実施形態は、ファイル使用量に関するヒストリカル情報を監視し、維持する。ヒストリカル・データは、それに対して現在の使用量傾向が比較されるベースラインを形成することができる。傾向を示すメトリックの例は、最終アクセス時刻、変更の時刻、ファイル・サイズ、ある動作（読取、書込、変更など）を実行する時間の長さ、および経時的なアクセスの頻度を含む。諸実施形態は、ファイルがどこに配置されるか、アプリケーション機能要件から生じる特殊なアクセス要件、性能要件などをも監視する。
【００３３】
分析モジュール２１２は、使用量モニタ２０８によって判定された使用量データを分析する。したがって、たとえば、分析モジュール２１２は、ファイル使用の頻度が低いのでまたはファイルがかなりの長さの時間にわたって休止になっているので、監視されるアプリケーションのファイルを層２のリモート・ディスクに転送しなければならないと決定することができる。したがって、分析モジュール２１２は、メモリの層ごとに使用閾値パラメータを含むことができる。所与の閾値未満の使用量は、分析モジュール２１２に、メモリのある層からメモリのより下位の層へのファイルの転送を指示するためにメモリ転送コントローラ２１４に制御信号を送るように促すことができる。分析モジュール２１２は、ユーザ・インターフェース２１６によって分析パラメータを入手することができ、ユーザ・インターフェース２１６は、ユーザ入力およびシステム２００の機能の制御を可能にするために、ｗｉｎｄｏｗｓ（Ｒ）様メニューと共に、キーボード、マウス、およびビデオ・モニタを含む。
【００３４】
コンピュータまたはコンピュータのネットワークによるメモリ使用量は、時刻を含むさまざまな要因のゆえに変化する可能性がある。たとえば、コンピュータのネットワークによってアクセスされるデータ・ベース・プログラムは、１日の業務時間中には使用される頻度が高い可能性があるが、勤務時間後には、その使用は、需要が少ない状態になる。実際に、一部のプログラムは、１日のある部分の間にメモリ・アクセスを激しく要求するが、他のプログラムは、１日の別の部分の間にメモリ・アクセスを激しく要求する。したがって、諸実施形態は、時間−需要に従ってメモリを割り振ることを可能にする。
【００３５】
メモリ使用量は、サービス・レベル仕様に従って、メモリ・アクセスの割振りについて提供されるサービス・レベル・アグリーメント（ＳＬＡ）に従って判定することもできる。たとえば、あるユーザが、異なるＳＬＡの下の第２ユーザより高いメモリ・アクセスの優先順位を与えるサービスのレベルを提供するＳＬＡを有する場合がある。諸実施形態は、そのようなアグリーメントに従うメモリ・アクセス割振りならびにＳＬＡの変更に従う再割振りを可能にする。サービス・レベル・データ・ストア２１０は、あるユーザ、コンピュータ端末、またはアプリケーション・プログラムに与えられるサービスのレベルに関する情報を格納する。たとえば、所与のアプリケーションのサービス・レベルに、午後２時から午後４時の時間中に高い優先順位を与えることができる。これらのサービス・レベル仕様は、ユーザ・インターフェース２１６によってサービス・レベル・データ・ストア２１０に入力される。したがって、サービス・レベル・データ・ストア２１０を、時折、サービス・レベル仕様の変更が発生するとき、または新しいサービスのレベルが実施されるときに、更新することができる。
【００３６】
最新のサービス・レベル仕様は、ファイルまたはデータのブロックあるいはその両方のメモリ・マイグレーションを指示するようにメモリ転送コントローラ２１４に知らせるかどうか、およびいつそれを知らせるかに影響するために、分析モジュール２１２から使用可能である。したがって、一実施形態で、分析モジュール２１２は、指定された時間中に特定のアプリケーションに与えられるサービスの所与のレベルから、メモリ・マイグレーションが行われる場合に、どのメモリ・マイグレーションを行わなければならないかを判定することができる。次に、分析モジュール２１２は、規定されたメモリ・マイグレーションを指示するようにメモリ転送コントローラ２１４に知らせる。したがって、ピーク使用期間が始まるか終わるときに、あるメモリ層から別のメモリ層へのファイルのマイグレーションを、サービス・レベル・データ・ストア２１０に格納され、分析モジュール２１２に送られたサービス・レベル仕様に従って指示することができる。
【００３７】
データが複数のメモリ層のどこに格納されるかは、サービスのクラスの関数であり、各クラスは、サービス・レベル仕様の異なる組を含む。したがって、１つのシステムが、さまざまなサービス・クラスを実施することができる。あるサービスのクラスのサービス・レベル仕様は、ビジネス考慮事項ならびに処理される情報のクラスを含むさまざまな要因に依存するものとすることができる。ビジネス考慮事項は、可用性、復元可能性、セキュリティ、性能、および価値などの問題を含む。情報クラスには、電子メール、意思決定サポート、データ・ウェアハウス、オーディオ／ビジュアルなどを含めることができる。データは、ブロック単位、オブジェクト単位、またはバイナリおよび圧縮ビットマップなどの複数のフォーマットのファイル単位とすることができ、情報またはコンピュータ・コードを含めることができる。したがって、さまざまなサービス・レベル仕様を、メモリ・アクセス割振り決断を行うときに考慮に入れることができる。
【００３８】
前に注記したように、ユーザ・インターフェース２１６は、サービス・レベル・データ・ストア２１０へのサービス・レベル仕様のユーザ入力を可能にし、分析モジュール２１２への閾値および制御パラメータのユーザ入力を可能にする。ユーザ・インターフェース２１６は、ユーザが、メモリ転送コントローラ２１４にあるメモリ層から別のメモリ層へのファイルの転送を指示させるために介入することをも可能にする。したがって、システム管理者は、したがって、ユーザが指示した目的のためにメモリを割り振るために介入することができる。これらのユーザが指示した変更は、分析モジュール２１２によって決定される自動マイグレーションの対象にすることができ、あるいは、いくつかの実施形態もしくは動作のモードで、分析モジュール２１２のマイグレーション判断をオーバーライドすることができる。
【００３９】
一実施形態で、メモリ転送コントローラ２１４は、分析モジュール２１２またはユーザ・インターフェース２１６からの制御信号に応答してメモリ読取信号またはメモリ書込信号を生成するかトリガする回路網を含む。メモリ転送コントローラ２１４は、より上位のメモリ層からより下位のメモリ層にデータを転送するために書込信号をトリガしまたは発行することができ、より下位の層からより上位の層にデータを転送するために読取信号をトリガしまたは発行することができる。したがって、たとえば、分析モジュール２１２は、使用量モニタ２０８から入手された使用量データに基づいて、現在はより上位の層に格納されているプログラムのファイルを、サービス・レベル・データ・ストア２１０から入手されたサービス・レベル仕様と一貫して、より下位の層に格納できると判定することができる。その後、メモリ転送コントローラ２１４は、そのファイルをより上位層のメモリからより下位層のメモリにコピーするために書込信号をトリガし、または発行することができる。
【００４０】
メモリ転送コントローラ２１４は、データがどこにマイグレーションされたかに関わりなく、データのアクセスを可能にするための回路網をも含む。たとえば、ローカル・ハード・ドライブに格納されたファイルが、低い頻度で使用されると判定され、分析モジュール２１２が、そのファイルが所与のサービス・レベル・アグリーメントの仕様の下でリモート・ディスクに転送可能であると判定すると仮定する。この転送が完了したときに、データは、異なるメモリ・デバイス内に異なるアドレスを用いて配置される。マイグレーションされたデータへのアクセスを試みるアプリケーション・プログラムのプロセスは、このデータを新しいアドレスで見つけることが、論理的にできなければならない。これは、複数の形で達成することができる。たとえば、一実施形態では、アプリケーションに既知のファイル名と、そのファイル名に対応するファイル内のデータが格納されているメモリ・デバイス内の位置との間のマップを維持するディレクトリが作成される。このディレクトリは、ファイルのデータのマイグレーションごとに更新される。したがって、アプリケーション・プログラムは、このディレクトリからメモリ内のデータの現在のアドレスを確かめることができる。したがって、この非仮想実施形態では、アプリケーションが、マイグレーションされたデータの実際の現在のアドレスについて知らされる。
【００４１】
もう１つの例として、仮想記憶システムでは、メモリ転送コントローラ２１４の中央論理スイッチ２１８を実施して、要求元アプリケーションとマイグレーションされたデータとの間の論理接続を自動的に形成することができる。したがって、一実施形態で、メモリ転送コントローラ２１４の中央論理スイッチ２１８は、アプリケーション・プログラムの実行中のプロセスからメモリ・アクセス要求を受け取る。このメモリ・アクセス要求は、仮想アドレスを含む。中央論理スイッチは、仮想アドレスとアプリケーション・プログラムのデータの実際のアドレスとの間の最新のマップを維持する。したがって、受け取られた仮想アドレスは、マイグレーションされたデータの実際の現在のアドレスにマッピングされる。したがって、そのような環境では、データ・アクセスを要求するアプリケーション・プログラム・プロセスは、データの実際のアドレスを知る必要がない。
【００４２】
図３に、メモリ・マイグレーションを決定するための使用量統計およびサービス・レベル仕様の分析の実施形態の流れ図３００を示す。要素３０２で、システムが、ブロック、ファイル、およびオブジェクト・レベルの使用量統計を入手する。これらの統計を検査する（要素３０４）。システムは、統計が経時的に変化したかどうかを判定する（要素３０６）。そうでない場合に、論理は要素３１０に流れる。統計が経時的に変化した場合には、システムは、サービス・クラスが変化したかどうかを判定する（要素３０８）。各サービス・クラスが、サービス・レベル仕様のそれ自体の組に関連することを想起されたい。サービス・クラスが経時的に変化していない場合には、論理は要素３１０に流れる。サービス・クラスが変化した場合には、論理は要素３２２に流れて、データの新しいストレージ層を判定する。
【００４３】
要素３１０で、システムは、可用性、復元可能性、セキュリティ、および性能要件を含むサービス仕様を検査する。次に、システムは、サービス要件が経時的に変化したかどうかを判定する（要素３１２）。そうでない場合には、論理は要素３１６に流れる。サービス要件が経時的に変化した場合には、システムは、サービス・クラスが変化したかどうかを判定する（要素３１４）。そうでない場合には、論理は要素３１６に流れる。サービス・クラスが変化した場合には、論理は要素３２２に流れて、新しいストレージ層を判定する。
【００４４】
要素３１６で、システムは、経路管理、データ配置の時点要件、ならびにイベント、トリガ、およびアクションを含むポリシを含む、Ｉｎｆｏｒｍａｔｉｏｎ  Ｌｉｆｅ−ｃｙｃｌｅ  Ｍａｎａｇｅｍｅｎｔ（ＩＬＭ）要件を検査する。次に、システムは、ＩＬＭ要件が経時的に変化したかどうかを判定する（要素３１８）。そうでない場合には、論理は要素３２６に流れる。ＩＬＭ要件が経時的に変化した場合には、システムは、サービス・クラスが変化したかどうかを判定する（要素３２０）。そうでない場合には、論理は要素３２６に流れる。サービス・クラスが経時的に変化した場合には、論理は要素３２２に流れて、新しいストレージを判定する。要素３２２で、新しいストレージ層を判定する。次に、システムは、データをその新しい層にマイグレーションする（要素３２４）。その後、システムは、指定された時間間隔だけ待ち、このプロセスは、要素３０２で継続される。
【００４５】
本発明のいくつかの実施形態は、たとえば図１に示されたディジタル・システム１１６などのコンピュータ・システムと共に使用されるプログラム製品として実施される。このプログラム製品を、他のコンピュータ・システムまたはプロセッサ上で使用することができる。このプログラム製品の１つまたは複数のプログラムは、諸実施形態の機能（本明細書で説明した方法を含む）を定義し、さまざまな信号担持媒体に含めることができる。例示的な信号担持媒体は、（ｉ）書込不能記憶媒体（たとえば、ＣＤ−ＲＯＭドライブによって可読のＣＤ−ＲＯＭディスクなど、コンピュータ内の読取専用メモリ・デバイス）に永久的に格納された情報、（ｉｉ）書込可能記憶媒体（たとえば、ディスケット・ドライブ内のフロッピ・ディスク、ハード・ディスク・ドライブ、または書込可能ＣＤディスク）に格納された変更可能な情報、および（ｉｉｉ）無線通信を含む、コンピュータ・ネットワークまた電話網などの通信媒体によってコンピュータに伝えられる情報を含むが、これらに限定はされない。後者の実施形態は、具体的に、インターネットおよび他のネットワークからダウンロードされる情報を含む。そのような信号担持媒体は、本発明の機能を指示するコンピュータ可読命令を担持するときに、本発明の実施形態を表す。
【００４６】
一般に、本発明の実施形態を実施するために実行されるルーチンは、オペレーティング・システムもしくは特定のアプリケーションの一部、コンポーネント、プログラム、モジュール、オブジェクト、または命令のシーケンスとすることができる。本発明のコンピュータ・プログラムは、通常、ネイティブ・コンピュータによって機械アクセス可能フォーマットに、したがって実行可能命令に変換される複数の命令からなる。また、プログラムは、プログラムにローカルに常駐するかメモリまたはストレージ・デバイス内で見つけられるかのいずれかである変数およびデータ構造体からなる。さらに、本明細書で後で説明するさまざまなプログラムは、それらが本発明の特定の実施形態でそのために実施される応用例に基づいて識別することができる。しかし、この後に続く特定のプログラム術語のどれもが、単に便宜のために使用され、したがって、本発明が、そのような術語によって識別されまたは暗示されあるいはその両方である特定の応用例のいずれかだけでの使用に限定されてはならないことを了解されたい。
【００４７】
したがって、本発明のもう１つの実施形態は、データ処理システム内で実行されるときに、そのシステムに複数のメモリ・ストレージ・デバイスのうちの複数の間でのデータの自動マイグレーションの一連の動作を実行させるのに有効な命令を含む機械アクセス可能媒体を提供する。この一連の動作は、一般に、１つまたは複数のアプリケーション・プログラムについて複数のメモリ・ストレージ・デバイスのうちの１つまたは複数に格納されたアプリケーション・プログラム・データのアクセスを監視することを含む。また、この動作は、１つまたは複数のアプリケーション・プログラムのサービス・レベル仕様を判定することを含む。この動作は、さらに、アプリケーション・プログラムのうちの１つまたは複数のデータに関するメモリ割振りの変化を、監視されたアクセスおよびサービス・レベル仕様から判定することを含む。この動作は、さらに、判定されたメモリ割振りの変化に従って、複数のストレージ・デバイスのうちの複数の間でのデータの割振りを達成するために、複数のメモリ・ストレージ・デバイスの間でデータを自動的に転送することを含む。この動作は、さらに、メモリ・ストレージ仕様のベースラインの組を実際のメモリ使用量と比較することを含むことができる。この動作は、アプリケーション・プログラムについて指定されたサービス・レベルの変化から生じるメモリ割振りの変化を判定することをも含むことができる。この動作は、さらに、アプリケーション・プログラムのデータのアクセスの頻度を判定すること、またはアクセス時間の持続時間を判定することを含むことができる。
【００４８】
本発明およびその長所のいくつかを、いくつかの実施形態について詳細に説明したが、添付の特許請求の範囲によって定義される本発明の趣旨および範囲から逸脱せずに、さまざまな変更、置換、および改変を行えることを理解されたい。本発明の実施形態は、複数の目的を達成することができるが、添付の特許請求の範囲に含まれるすべての実施形態が、すべての目的を達成するわけではない。さらに、本願の範囲を本明細書に記載されたプロセス、機械、製造物、材料の構成、手段、方法、およびステップの特定の実施形態に限定することは、意図されていない。当業者が本発明の開示からたやすく了解するように、本明細書に記載の対応する実施形態と実質的に同一の機能を実行するか実質的に同一の結果を達成する、現在存在するか後に開発されるプロセス、機械、製造物、材料の構成、手段、方法、またはステップを、本発明に従って利用することができる。したがって、添付の特許請求の範囲が、その範囲にそのようなプロセス、機械、製造物、材料の構成、手段、方法、またはステップを含むことが意図されている。
【図面の簡単な説明】
【００４９】
【図１】ディジタル・システム内にプロセッサがある、ネットワーク内のディジタル・システムの実施形態を示す図である。
【図２】複数のメモリ・ストレージ・デバイスの間でのデータの自動マイグレーションのシステムの実施形態を示す図である。
【図３】複数のメモリ・ストレージ・デバイスの間でデータの自動マイグレーションを達成する実施形態の流れ図を示す図である。
【符号の説明】
【００５０】
１００  プロセッサ
１０２  レベル２（Ｌ２）キャッシュ
１０４  基本入出力システム（ＢＩＯＳ）コード
１０６  オペレーティング・システム（ＯＳ）コード
１０８  メモリ
１０９  データ
１１０  入出力デバイス
１１２  サーバ
１１４  他のコンピュータおよびサーバ
１１６  ディジタル・システム
１１８  別のメモリ
１３０  命令バッファ
１５０  実行ユニット
１６０  制御回路網
１９０  レベル１（Ｌ１）キャッシュ
２００  システム
２０２  層
２０４  層
２０６  層
２０８  使用量モニタ
２１０  サービス・レベル・データ・ストア
２１２  分析モジュール
２１４  メモリ転送コントローラ
２１６  ユーザ・インターフェース
２１８  中央論理スイッチ
３００  流れ図
３０２  ブロック、ファイル、およびオブジェクト・レベルの統計を入手するステップ
３０４  情報分類を検査するステップ
３０６  統計が経時的に変化したかどうかを判定するステップ
３０８  サービス・クラスが変化したかどうかを判定するステップ
３１０  サービス要件を検査するステップ
３１２  サービス要件が経時的に変化したかどうかを判定するステップ
３１４  サービス・クラスが変化したかどうかを判定するステップ
３１６  ＩＬＭ要件を検査するステップ
３１８  ＩＬＭ要件が経時的に変化したかどうかを判定するステップ
３２０  サービス・クラスが変化したかどうかを判定するステップ
３２２  新しいストレージ層を判定するステップ
３２４  データを新しい層にマイグレーションするステップ
３２６  指定された間隔だけ待つステップ
【図１】
2009500705.tif 000003
【図２】
2009500705.tif 000004
【図３】
2009500705.tif 000005
【国際調査報告】
2009500705.tif 000006
2009500705.tif 000007
2009500705.tif 000008