JP5186367B2 - Memory migration system and method - Google Patents

Memory migration system and method Download PDF

Info

Publication number
JP5186367B2
JP5186367B2 JP2008518866A JP2008518866A JP5186367B2 JP 5186367 B2 JP5186367 B2 JP 5186367B2 JP 2008518866 A JP2008518866 A JP 2008518866A JP 2008518866 A JP2008518866 A JP 2008518866A JP 5186367 B2 JP5186367 B2 JP 5186367B2
Authority
JP
Japan
Prior art keywords
memory
memory layer
data
computer
service
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.)
Expired - Fee Related
Application number
JP2008518866A
Other languages
Japanese (ja)
Other versions
JP2009500705A (en
JP2009500705A5 (en
Inventor
ボス、グレゴリー、ジェンセン
ドーソン、クリストファー、ジェームズ
セカンド、リック、アレン ハミルトン
ウォーターズ、ティモシー、モフェット
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2009500705A publication Critical patent/JP2009500705A/en
Publication of JP2009500705A5 publication Critical patent/JP2009500705A5/ja
Application granted granted Critical
Publication of JP5186367B2 publication Critical patent/JP5186367B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory

Description

本発明は、コンピュータ・メモリの分野に関する。より具体的には、本発明は、自動的に制御されるメモリ・マイグレーション(memory migration)に関する。   The present invention relates to the field of computer memory. More specifically, the present invention relates to automatically controlled memory migration.

多数の異なるタイプのコンピューティング・システムが、全世界で広く行き渡って使用されている。これらのコンピューティング・システムは、パーソナル・コンピュータ、サーバ、メインフレーム、ならびにさまざまな独立型コンピューティング・デバイスおよび組み込みコンピューティング・デバイスを含む。不規則に延び広がるクライアント−サーバ・システムが存在し、アプリケーションおよび情報は、多数のPCネットワーク、メインフレーム、およびミニコンピュータにまたがって分散している。ネットワークによって接続された分散システムでは、ユーザが、多数のアプリケーション・プログラム、データベース、ネットワーク・システム、オペレーティング・システム、およびメインフレーム・アプリケーションにアクセスすることができる。コンピュータは、ワード・プロセッシング、スプレッドシート、会計、電子メール、voice over Internet protocol遠隔通信、およびファクシミリを含むソフトウェア・アプリケーションのホストを個人および会社に与える。   Many different types of computing systems are in widespread use throughout the world. These computing systems include personal computers, servers, mainframes, and various stand-alone and embedded computing devices. There are randomly-extending client-server systems where applications and information are distributed across multiple PC networks, mainframes, and minicomputers. In a distributed system connected by a network, a user can access a large number of application programs, databases, network systems, operating systems, and mainframe applications. Computers provide individuals and companies with a host of software applications including word processing, spreadsheets, accounting, email, voice over Internet protocol telecommunications, and facsimile.

コンピュータなどのディジタル・プロセッサのユーザは、ますます複雑で困難なタスクを処理するために、そのようなシステムにますます高まる性能を要求し続ける。さらに、処理速度は、メイン・メモリ・アクセスの速度よりはるかにすばやく向上してきた。その結果、キャッシュ・メモリまたはキャッシュが、しばしば、相対的にコスト効率のよい形で性能を高めるために、多数のそのようなシステムで使用されている。多数の近代コンピュータは、複数のプログラムまたはプログラムのスレッドがディジタル・プロセッサの実行パイプライン内で交互に実行される、「マルチタスキング」または「マルチスレッディング」もサポートする。高性能単一チップマイクロプロセッサの共通のアーキテクチャは、高速実行のための頻繁に使用される命令の小さい単純化されたセットの特徴がある、縮小命令セット・コンピュータ(RISC)アーキテクチャである。したがって、RISCアーキテクチャでは、1つの複合命令が、複数のステップで非常にすばやく実行される単純な命令の小さいセットを含む。これらのステップは、特定の単純命令を実行するように適合された実行ユニット内で実行される。スーパースカラ・アーキテクチャでは、これらの実行ユニットが、通常、並列に動作する、ロード/ストア・ユニット、整数算術/論理ユニット、浮動小数点算術/論理ユニット、およびグラフィカル論理ユニットを含む。プロセッサ・アーキテクチャでは、オペレーティング・システムが、プロセッサおよびプロセッサの周辺の構成要素の動作を制御する。実行可能アプリケーション・プログラムは、コンピュータのハード・ドライブに格納される。コンピュータのプロセッサは、ユーザ入力に応答してアプリケーション・プログラムを実行させる。   Users of digital processors, such as computers, continue to demand increasingly high performance from such systems to handle increasingly complex and difficult tasks. Furthermore, processing speed has improved much faster than main memory access speed. As a result, cache memory or cache is often used in many such systems to increase performance in a relatively cost effective manner. Many modern computers also support “multitasking” or “multithreading,” where multiple programs or thread of programs are executed alternately in the execution pipeline of a digital processor. A common architecture for high performance single chip microprocessors is the reduced instruction set computer (RISC) architecture, which is characterized by a small simplified set of frequently used instructions for high speed execution. Thus, in a RISC architecture, a single compound instruction contains a small set of simple instructions that are executed very quickly in multiple steps. These steps are performed in an execution unit adapted to execute certain simple instructions. In a superscalar architecture, these execution units typically include load / store units, integer arithmetic / logical units, floating point arithmetic / logical units, and graphical logical units that operate in parallel. In a processor architecture, the operating system controls the operation of the processor and the peripheral components of the processor. The executable application program is stored on the computer hard drive. The computer processor causes the application program to execute in response to user input.

メモリ・ストレージは、現在存在するほとんどすべてのソフトウェア・アプリケーションのクリティカル構成要素である。ストレージ産業が成熟するにつれて、ストレージ・オプションの数が大幅に増え、データ入力およびデータ検索の性能が大幅に向上してきた。ストレージ・オプションは、磁気テープ、ハード・ディスク・ドライブ(HDD)、コンパクト・ディスク(CD)、ディジタル・ビデオ・ディスク(DVD)、および他の媒体を含む。ハード・ディスク・ドライブのカテゴリ内では、単純でより信頼性の低い独立HDDから高性能冗長ディスク・アレイまでの範囲にわたる豊富なストレージ・オプションが存在する。これが、仮想ストレージ環境を複雑にする。ディスク・アレイの主要なメトリックには、アクセス速度および冗長性が含まれる。複雑な仮想ストレージ環境には、単一コンピューティング環境を超えて延びるストレージ・アーキテクチャが含まれる。そのような環境に、ストレージ・エリア・ネットワーク(SAN)が含まれる。各ストレージ機構は、関連するコストおよびサービス・レベルを有し、この両方が、大きく変化する可能性がある。   Memory storage is a critical component of almost every software application that exists today. As the storage industry has matured, the number of storage options has increased significantly and the performance of data entry and data retrieval has greatly improved. Storage options include magnetic tape, hard disk drive (HDD), compact disk (CD), digital video disk (DVD), and other media. Within the hard disk drive category, there are abundant storage options that range from simple and less reliable independent HDDs to high performance redundant disk arrays. This complicates the virtual storage environment. Key metrics for disk arrays include access speed and redundancy. Complex virtual storage environments include storage architectures that extend beyond a single computing environment. Such environments include a storage area network (SAN). Each storage mechanism has an associated cost and service level, both of which can vary greatly.

実際には、多数のアプリケーション・プログラムが、使用のピーク期間を経験し、その結果、より厳密なサービス・レベル要件を経験する。これらのプログラムは、オフピーク期間中の比較的使用量の少ない期間を、その結果のオフピーク期間中の低いサービス・レベル要件と共に経験する。アプリケーション・プログラム開発者は、予想される使用、コスト、サービス・レベル要件、ならびに他の要件に基づいて、どのストレージ機構がアプリケーション・プログラムによって要求されるかを判断しなければならない。たとえば、バックアップ/リカバリ・システムが、その消失が致命的に有害である場合がある、頻繁に使用されるファイルまたは非常に重要なファイルを格納するために、高サービス・レベル・ストレージ・サブシステムを要求する場合がある。しばしば、予想された必要は、プログラムがインストールされるときに生じる実際の必要と異なる。さらに、ストレージの必要は、経時的に変化する場合がある。   In practice, many application programs experience peak periods of use, resulting in more stringent service level requirements. These programs experience a period of relatively low usage during the off-peak period, along with low service level requirements during the resulting off-peak period. The application program developer must determine which storage mechanism is required by the application program based on expected usage, cost, service level requirements, and other requirements. For example, a backup / recovery system might use a high service level storage subsystem to store frequently used or critical files whose loss can be catastrophic. May require. Often, the expected needs are different from the actual needs that arise when the program is installed. Furthermore, storage needs may change over time.

現在、アプリケーション・プログラムの予想される必要が、実際の必要と異なるときに、アプリケーション・プログラム管理者は、ストレージ管理者にストレージ・サービスの変更を要求する。そのような変更は、破壊的であり、ファイルをあるストレージ・サブシステムから別のストレージ・サブシステムに物理的に移動し、あまり利用されていないストレージを再生利用し、追加ストレージを提供するのにダウンタイムを必要とする。変化する必要が、ストレージ・レイアウトの変更を要求する場合もある。レイアウトの変更は、通常、代替ストレージ・レイアウトが変化する需要を満足するのを容易にするために、一時的なファイルのマイグレーションを伴う。   Currently, when the anticipated need of an application program is different from the actual need, the application program administrator requests the storage administrator to change the storage service. Such changes are destructive and can be used to physically move files from one storage subsystem to another, reclaim unused storage, and provide additional storage. Requires downtime. The need to change may require changes to the storage layout. Layout changes usually involve temporary file migrations to make it easier for alternative storage layouts to meet changing demands.

本発明の目的は、複数のメモリ・デバイスの間でデータの自動マイグレーションを実行するシステム、方法、およびプログラムを提供することである。   An object of the present invention is to provide a system, method, and program for performing automatic migration of data between a plurality of memory devices.

第1の態様によれば、複数のメモリ・ストレージ・デバイスの間でのデータの自動マイグレーションの方法であって、1つまたは複数のアプリケーション・プログラムについて複数のメモリ・ストレージ・デバイスのうちの1つまたは複数に格納されたアプリケーション・プログラム・データのアクセスを監視することと、1つまたは複数のアプリケーション・プログラムの1つまたは複数のサービス・レベル仕様を判定することとのうちの少なくとも1つを含み、さらに、監視されたアクセスのうちの少なくとも1つおよびすべての判定されたサービス・レベル仕様から、アプリケーション・プログラムのうちの1つまたは複数のデータに関するメモリ割振りの変化を判定することと、判定されたメモリ割振りの変化に従って、複数のストレージ・デバイスのうちの複数の間でのデータの割振りを達成するために複数のメモリ・ストレージ・デバイスの間でデータを自動的に転送することとを含む、方法が提供される。   According to a first aspect, a method for automatic migration of data between a plurality of memory storage devices, wherein one of the plurality of memory storage devices for one or more application programs is provided. Or at least one of monitoring access to a plurality of stored application program data and determining one or more service level specifications of the one or more application programs. And determining a change in memory allocation for one or more data of the application program from at least one of the monitored accesses and all determined service level specifications. Depending on changes in memory allocation, multiple And a to automatically transfer data between multiple memory storage devices to achieve an allocation of data in a plurality between of the over-di device, a method is provided.

第2の態様によれば、事前に決定可能な性能特性にそれぞれが関連する複数のメモリ・ストレージ・ユニットを含む自動マイグレーション・メモリ・ストレージ・システムであって、1つまたは複数のアプリケーション・プログラムの1つまたは複数のサービス・レベル仕様を格納するデータ・ストアと、メモリ・ストレージ・ユニットのうちの少なくとも1つに格納されたアプリケーション・プログラムのデータのアクセスを監視する監視構成要素とのうちの少なくとも1つをさらに含み、監視されたアクセスのうちの少なくとも1つおよびすべてのサービス・レベル仕様から、複数のメモリ・ストレージ・ユニットの間でのデータの再割振りを決定する分析構成要素と、決定された再割振りに応答して、あるメモリ・ストレージ・ユニットから別のメモリ・ストレージ・ユニットにデータを転送する転送制御構成要素とをさらに含む自動マイグレーション・メモリ・ストレージ・システムが提供される。   According to a second aspect, an automatic migration memory storage system comprising a plurality of memory storage units each associated with a predeterminable performance characteristic, comprising one or more application programs At least one of a data store that stores one or more service level specifications and a monitoring component that monitors access of application program data stored in at least one of the memory storage units An analysis component that further comprises one and determines reallocation of data among the plurality of memory storage units from at least one of the monitored accesses and all service level specifications; In response to a reallocation, a memory storage unit Automatic migration memory storage system further comprising a transfer control component to transfer data to another memory storage unit is provided by.

第3の態様によれば、コンピュータに、1つまたは複数のアプリケーション・プログラムについて複数のメモリ・ストレージ・デバイスのうちの1つまたは複数に格納されたアプリケーション・プログラム・データのアクセスを監視することと、1つまたは複数のアプリケーション・プログラムの1つまたは複数のサービス・レベル仕様を判定することとのうちの少なくとも1つを含む動作を実行させるメモリ・自動マイグレーションを実行する命令を含む機械アクセス可能媒体であって、動作は、監視されたアクセスのうちの少なくとも1つおよびすべての判定されたサービス・レベル仕様から、アプリケーション・プログラムのうちの1つまたは複数のデータに関するメモリ割振りの変化を判定することと、判定されたメモリ割振りの変化に従って、複数のストレージ・デバイスのうちの複数の間でのデータの割振りを達成するために複数のメモリ・ストレージ・デバイスの間でデータを自動的に転送することとをさらに実行させるプログラムが提供される。   According to a third aspect, the computer monitors access of application program data stored in one or more of the plurality of memory storage devices for one or more application programs; A machine-accessible medium comprising instructions for performing an automatic migration, a memory for performing an operation including determining at least one of one or more service level specifications of one or more application programs The operation determines a change in memory allocation for one or more data of the application program from at least one of the monitored accesses and all determined service level specifications. Change of the determined memory allocation A program is further provided that further performs automatic transfer of data between the plurality of memory storage devices to achieve allocation of data between the plurality of storage devices. The

好ましくは、アプリケーション・プログラム使用の崩壊をほとんどまたは全く伴わない、あるメモリ・サブシステムから別のメモリ・サブシステムへファイルを自動的にマイグレーションする形が提供される。   Preferably, a form of automatically migrating files from one memory subsystem to another with little or no disruption of application program usage is provided.

複数のメモリ・ストレージ・デバイスの間でのデータの自動マイグレーションのシステム、方法、および媒体が提供される。一実施形態は、1つまたは複数のアプリケーション・プログラムについて複数のメモリ・ストレージ・デバイスのうちの1つまたは複数に格納されたアプリケーション・プログラム・データのアクセスを監視することを含む。また、このプロセスは、1つまたは複数のアプリケーション・プログラムのサービス・レベル仕様を判定する。この方法は、監視されたアクセスおよびサービス・レベル仕様から、アプリケーション・プログラムのうちの1つまたは複数のデータに関するメモリ割振りの変化を判定することを含む。データは、判定されたメモリ割振りの変化に従って、複数のストレージ・デバイスのうちの複数の間でのデータの割振りを達成するために複数のメモリ・ストレージ・デバイスの間で自動的に転送される。   Systems, methods, and media for automatic migration of data between multiple memory storage devices are provided. One embodiment includes monitoring access of application program data stored in one or more of the plurality of memory storage devices for one or more application programs. The process also determines service level specifications for one or more application programs. The method includes determining a change in memory allocation for one or more data of the application program from the monitored access and service level specifications. Data is automatically transferred between the plurality of memory storage devices to achieve allocation of data among the plurality of storage devices according to the determined change in memory allocation.

実施形態は、事前に決定可能な性能特性にそれぞれが関連する複数のメモリ・ストレージ・ユニットを含む自動マイグレーション・メモリ・ストレージ・システムを含む。データ・ストアが、1つまたは複数のアプリケーション・プログラムのサービス・レベル仕様を格納する。監視構成要素が、メモリ・ストレージ・ユニットのうちの少なくとも1つに格納されたアプリケーション・プログラムのデータのアクセスを監視する。分析構成要素が、監視されたアクセスおよびサービス・レベル仕様から、複数のメモリ・ストレージ・ユニットの間でのデータの再割振りを決定する。転送制御構成要素が、決定された再割振りに応答して、あるメモリ・ストレージ・ユニットから別のメモリ・ストレージ・ユニットにデータを転送する。   Embodiments include an automatic migration memory storage system that includes a plurality of memory storage units each associated with a predeterminable performance characteristic. A data store stores service level specifications for one or more application programs. A monitoring component monitors access to application program data stored in at least one of the memory storage units. An analysis component determines reallocation of data among multiple memory storage units from monitored access and service level specifications. A transfer control component transfers data from one memory storage unit to another in response to the determined reallocation.

本発明のもう1つの実施形態は、データ処理システムによって実行されるときに、そのシステムに、メモリ・自動マイグレーションを実行する一連の動作を実行させるのに有効な命令を含む機械アクセス可能媒体を提供する。この動作は、1つまたは複数のアプリケーション・プログラムについて複数のメモリ・ストレージ・デバイスのうちの1つまたは複数に格納されたアプリケーション・プログラム・データのアクセスを監視することを含む。また、この動作は、1つまたは複数のアプリケーション・プログラムのサービス・レベル仕様を判定することを含む。この動作は、監視されたアクセスおよびサービス・レベル仕様から、アプリケーション・プログラムのうちの1つまたは複数のデータに関するメモリ割振りの変化を判定することをも含む。データは、判定されたメモリ割振りの変化に従って、複数のストレージ・デバイスのうちの複数の間でのデータの割振りを達成するために複数のメモリ・ストレージ・デバイスの間で自動的に転送される。   Another embodiment of the present invention provides a machine-accessible medium that includes instructions effective when executed by a data processing system to cause the system to perform a series of operations that perform memory and automatic migration. To do. This operation includes monitoring access to application program data stored in one or more of the plurality of memory storage devices for one or more application programs. This operation also includes determining a service level specification for one or more application programs. This operation also includes determining memory allocation changes for one or more data of the application program from the monitored access and service level specifications. Data is automatically transferred between the plurality of memory storage devices to achieve allocation of data among the plurality of storage devices according to the determined change in memory allocation.

本発明の実施形態を、これから、例としてのみ、添付図面を参照して説明する。   Embodiments of the invention will now be described, by way of example only, with reference to the accompanying drawings.

類似する符号は、類似する要素を示す場合がある。   Similar symbols may indicate similar elements.

次は、添付図面に示された本発明の例の実施形態の詳細な説明である。例の実施形態は、本発明を明瞭に伝えるほどに詳細である。しかし、提供される詳細の量は、実施形態の予想される変形形態を限定することを意図されたものではなく、逆に、その意図は、添付の特許請求の範囲によって定義される本発明の趣旨および範囲に含まれるすべての修正形態、同等物、および代替形態を含むことである。下の詳細な説明は、そのような実施形態を当業者に明白にするように計画されている。   The following is a detailed description of example embodiments of the invention illustrated in the accompanying drawings. The example embodiments are so detailed as to clearly convey the invention. However, the amount of detail provided is not intended to limit the anticipated variations of the embodiments, but conversely, the intent is that of the present invention as defined by the appended claims. It includes all modifications, equivalents, and alternatives falling within the spirit and scope. The detailed description below is designed to make such embodiments obvious to a person of ordinary skill in the art.

複数のメモリ・デバイスの間でデータの自動マイグレーションを実行するシステム、方法、および媒体を開示する。一実施形態では、アプリケーション・プログラム・データのメモリ・アクセスが、1つまたは複数のアプリケーション・プログラムのそれぞれについて監視される。データを、それぞれがそれ自体の性能特性を有する複数のメモリ・ストレージ・デバイスのうちの1つまたは複数に格納することができる。監視されるアクセスは、複数のメモリ・ストレージ・デバイスの間での、通常はファイルに格納されるアプリケーション・プログラム・データの最適分配を決定するために評価される。この評価は、各アプリケーション・プログラムのサービス・レベル仕様を考慮に入れたものである。周期的に、データを、あるメモリ・ストレージ・デバイスから別のメモリ・ストレージ・デバイスに自動的に転送して、サービス・レベル仕様と一貫する、使用可能メモリ・ストレージ・デバイスの間での決定された最適割振りを達成することができる。   Disclosed are systems, methods, and media for performing automatic migration of data between multiple memory devices. In one embodiment, memory access for application program data is monitored for each of the one or more application programs. Data can be stored in one or more of a plurality of memory storage devices, each having its own performance characteristics. Monitored access is evaluated to determine the optimal distribution of application program data, usually stored in files, among multiple memory storage devices. This evaluation takes into account the service level specification of each application program. Periodically, data is automatically transferred from one memory storage device to another, determined between available memory storage devices consistent with service level specifications. Optimal allocation can be achieved.

図1に、本発明の一実施形態に従って実施される、コンピュータまたはサーバなどのディジタル・システム116を示す。ディジタル・システム116は、基本入出力システム(BIOS)コード104およびオペレーティング・システム(OS)コード106に従って動作することができるプロセッサ100を含む。BIOSコードおよびOSコードは、メモリ108に格納される。BIOSコードは、通常は読取専用メモリ(ROM)に格納され、OSコードは、通常はディジタル・システム116のハード・ドライブに格納される。メモリ108は、プロセッサ100による実行のための他のプログラムをも格納し、データ109を格納する。ディジタル・システム116は、マルチスレッド式のプロセッサ100の物理的に近くに配置されたレベル2(L2)キャッシュ102を含む。   FIG. 1 illustrates a digital system 116, such as a computer or server, implemented in accordance with one embodiment of the present invention. Digital system 116 includes a processor 100 that can operate according to basic input / output system (BIOS) code 104 and operating system (OS) code 106. The BIOS code and the OS code are stored in the memory 108. The BIOS code is typically stored in read only memory (ROM), and the OS code is typically stored on the hard drive of the digital system 116. The memory 108 also stores other programs for execution by the processor 100 and stores data 109. The digital system 116 includes a level 2 (L2) cache 102 located physically close to the multithreaded processor 100.

プロセッサ100は、オンチップのレベル1(L1)キャッシュ190、命令バッファ130、制御回路網160、および実行ユニット150を含む。L1キャッシュ190は、実行のときに近い命令を受け取り、格納する。命令バッファ130は、命令キューを形成し、実行ユニットに発行される命令の順序に対する制御を可能にする。実行ユニット150は、命令によって要求された動作を実行する。実行ユニット150には、ロード/ストア・ユニット、整数算術/論理ユニット、浮動小数点算術/論理ユニット、およびグラフィカル論理ユニットを含めることができる。各実行ユニットは、命令バッファ130から受け取られた命令の実行におけるステップを実行するステージを含む。制御回路網160は、命令バッファ130および実行ユニット150を制御する。制御回路網160は、制御判断に関連する情報をも実行ユニット150から受け取る。たとえば、制御回路網160は、実行パイプライン内のデータ・キャッシュ・ミスの場合に通知される。   The processor 100 includes an on-chip level 1 (L1) cache 190, instruction buffer 130, control circuitry 160, and execution unit 150. The L1 cache 190 receives and stores an instruction close to execution. The instruction buffer 130 forms an instruction queue and allows control over the order of instructions issued to the execution unit. The execution unit 150 performs the operation requested by the instruction. Execution unit 150 may include a load / store unit, an integer arithmetic / logical unit, a floating point arithmetic / logical unit, and a graphical logical unit. Each execution unit includes a stage that performs steps in the execution of instructions received from the instruction buffer 130. Control circuitry 160 controls instruction buffer 130 and execution unit 150. The control circuitry 160 also receives information related to control decisions from the execution unit 150. For example, the control circuitry 160 is notified in the case of a data cache miss in the execution pipeline.

ディジタル・システム116は、通常、Trusted Platform Module、メモリ・コントローラ、ランダム・アクセス・メモリ(RAM)、周辺ドライバ、システム・モニタ、キーボード、カラー・ビデオ・モニタ、1つまたは複数のフレキシブル・ディスケット・ドライブ、固定ディスク・ハード・ドライブ、CDドライブ、およびDVDドライブなどの1つまたは複数の取外し可能不揮発性媒体ドライブ、マウスなどのポインティング・デバイス、ならびにネットワーク・インターフェース・アダプタなど、図示されていない他の構成要素およびサブシステムをも含む。ディジタル・システム116には、パーソナル・コンピュータ、ワークステーション、サーバ、メインフレーム・コンピュータ、ノートブックコンピュータまたはラップトップ・コンピュータ、デスクトップ・コンピュータ、あるいは類似物を含めることができる。プロセッサ100は、入出力デバイス110によってサーバ112と通信することもできる。サーバ112は、ディジタル・システム116を他のコンピュータおよびサーバ114に接続する。したがって、ディジタル・システム116は、インターネットまたはローカル・イントラネットあるいはその両方などのコンピュータのネットワーク内にあるものとすることができる。さらに、サーバ112は、テープ・ドライブ・ストレージ、ハード・ディスク・アレイ、RAM、ROMなどを含む別のメモリ118へのアクセスを制御することができる。   The digital system 116 typically includes a Trusted Platform Module, a memory controller, a random access memory (RAM), peripheral drivers, a system monitor, a keyboard, a color video monitor, and one or more flexible diskette drives. Other configurations not shown, such as one or more removable non-volatile media drives such as fixed disk hard drives, CD drives, and DVD drives, pointing devices such as mice, and network interface adapters Also includes elements and subsystems. Digital system 116 may include a personal computer, workstation, server, mainframe computer, notebook or laptop computer, desktop computer, or the like. The processor 100 can also communicate with the server 112 via the input / output device 110. Server 112 connects digital system 116 to other computers and server 114. Thus, the digital system 116 can be in a network of computers such as the Internet and / or a local intranet. In addition, the server 112 can control access to another memory 118 including tape drive storage, hard disk array, RAM, ROM, and the like.

ディジタル・システム116の動作の1つのモードで、L2キャッシュは、メモリ108から、プロセッサ100のパイプライン内で処理されると期待されるデータおよび命令を受け取る。L2キャッシュ102は、より高い速度を達成するために物理的にプロセッサ100の近くに配置された高速メモリである。L2キャッシュは、メモリ108から複数の命令スレッドの命令を受け取る。そのような命令に、分岐命令が含まれる場合がある。L1キャッシュ190は、プロセッサ内に配置され、好ましくはL2キャッシュ102から受け取られるデータおよび命令を含む。理想的には、あるプログラム命令が実行されるときに接近するときに、その命令が、データがある場合にそのデータと共に、まずL2キャッシュに渡され、その後、実行の時がほぼ切迫しているときに、L1キャッシュに渡される。   In one mode of operation of digital system 116, the L2 cache receives data and instructions from memory 108 that are expected to be processed in the pipeline of processor 100. The L2 cache 102 is high speed memory that is physically located near the processor 100 to achieve higher speeds. The L2 cache receives instructions from a plurality of instruction threads from the memory 108. Such an instruction may include a branch instruction. The L1 cache 190 is located within the processor and preferably contains data and instructions received from the L2 cache 102. Ideally, when a program instruction is approached when it is executed, that instruction is first passed to the L2 cache along with the data, if any, and then is almost imminent. Sometimes passed to the L1 cache.

実行ユニット150は、L1キャッシュ190から受け取った命令を実行する。実行ユニット150には、ロード/ストア・ユニット、整数算術/論理ユニット、浮動小数点算術/論理ユニット、およびグラフィカル論理ユニットを含めることができる。ユニットのそれぞれを、命令の特定の組を実行するように適合させることができる。命令を、実行のために異なる実行ユニットに並列にサブミットすることができる。一実施形態で、2つの実行ユニットが、ある種の命令を実行するために同時に使用される。実行ユニット150によって処理されるデータは、整数レジスタ・ファイルおよび浮動小数点レジスタ・ファイル(図示せず)に格納でき、そこからアクセス可能である。これらのレジスタ・ファイルに格納されたデータは、オンボードのL1キャッシュ190または外部キャッシュもしくは外部メモリから来ることができ、あるいはそれに転送されることができる。プロセッサは、ロード命令を実行することによって、L1キャッシュなどのメモリからプロセッサのレジスタにデータをロードすることができる。プロセッサは、ストア命令を実行することによって、レジスタからメモリにデータをストアすることができる。   The execution unit 150 executes the instruction received from the L1 cache 190. Execution unit 150 may include a load / store unit, an integer arithmetic / logical unit, a floating point arithmetic / logical unit, and a graphical logical unit. Each of the units can be adapted to execute a specific set of instructions. Instructions can be submitted in parallel to different execution units for execution. In one embodiment, two execution units are used simultaneously to execute certain instructions. Data processed by the execution unit 150 can be stored in and accessed from integer register files and floating point register files (not shown). The data stored in these register files can come from or be transferred to the onboard L1 cache 190 or external cache or external memory. The processor can load data from a memory, such as an L1 cache, into a processor register by executing a load instruction. The processor can store data from a register into memory by executing a store instruction.

したがって、図1のシステムに、サーバによってサービスされるネットワーク内で接続された、すぐ上で説明したプロセッサおよびメモリを有する複数のコンピュータを含めることができる。サーバは、ネットワーク内のコンピュータの間の通信を容易にし、調整する。各コンピュータは、そのオペレーティング・システム、BIOS、およびアプリケーション・プログラムを実行するためのコード、ならびにファイルおよびデータを格納するために、それ自体のメモリを有する。コンピュータのメモリは、読取専用メモリ(ROM)、DRAMおよびSRAMで実施されたキャッシュ・メモリ、ハード・ディスク・ドライブ、CDドライブ、およびDVDドライブを含む。サーバも、それ自体のメモリを有し、テープ・ドライブおよびハード・ディスク・アレイなどの他のメモリへのアクセスを制御することができる。各コンピュータは、それ自体のアプリケーション・プログラムを格納することができる。データベースなど、一部のアプリケーション・プログラムは、サーバ内に常駐することができる。したがって、各コンピュータは、そのサーバに格納された同一のデータベースにアクセスすることができる。さらに、各コンピュータは、サーバによって他のメモリにアクセスすることができる。したがって、コンピュータおよびサーバのプロセッサに近い、より高速でより高コストのメモリと、プロセッサから遠い、より低速でより安価なメモリとを有する、メモリ・グラデーション(memory gradation)が存在する。   Accordingly, the system of FIG. 1 can include a plurality of computers having the processor and memory just described connected in a network serviced by a server. The server facilitates and coordinates communication between computers in the network. Each computer has its own memory for storing code and files and data for executing its operating system, BIOS, and application programs. Computer memory includes read only memory (ROM), cache memory implemented in DRAM and SRAM, hard disk drives, CD drives, and DVD drives. The server also has its own memory and can control access to other memories such as tape drives and hard disk arrays. Each computer can store its own application program. Some application programs, such as databases, can reside in the server. Thus, each computer can access the same database stored on that server. In addition, each computer can access other memory by the server. Thus, there is a memory gradation with faster and more expensive memory closer to the computer and server processors and slower and less expensive memory far from the processors.

図1のシステムの動作の過程において、データは、あるメモリ位置から別のメモリ位置に移動される。たとえば、データが、プロセッサのローカル・キャッシュからハード・ドライブ・システム・メモリに移動される場合がある。データは、通常、ハード・ドライブ上のファイルに編成される。ファイルには、テキスト、オブジェクト、コンピュータ・コードなどを含めることができる。したがって、いくつかのデータ・ファイルが、コンピュータのハード・ドライブに格納される。他のファイルは、CDまたはDVDに格納することができる。バックアップ・メモリ・デバイスをコンピュータに取外し可能に接続して、ハード・ドライブからデータをバックアップすることもできる。より大型のシステムでは、一部のデータ・ファイルを、サーバ112を介してアクセスされるテープにバックアップすることができる。他の磁気メモリまたは光メモリを使用することができる。   In the course of operation of the system of FIG. 1, data is moved from one memory location to another. For example, data may be moved from the processor's local cache to hard drive system memory. Data is typically organized into files on the hard drive. Files can contain text, objects, computer code, and so on. Thus, several data files are stored on the computer hard drive. Other files can be stored on a CD or DVD. A backup memory device can also be removably connected to the computer to back up data from the hard drive. In larger systems, some data files can be backed up to tape accessed via server 112. Other magnetic or optical memory can be used.

一般に、メモリ・アクセス速度は、プロセッサに近づくにつれて高まる。したがって、キャッシュ・メモリ・アクセスは、高速ディスク・アクセスより高速であり、高速ディスク・アクセスは、リモート・ディスク・アクセスより高速であり、リモート・ディスク・アクセスは、オフライン・ストレージ・アクセスより高速である。逆に、メモリは、メモリ・アクセス速度が低下するにつれて、コストが減る。したがって、キャッシュ・メモリは、高速ディスクなどよりコストが高い。また、メモリ・サイズは、メモリ速度の低下に伴って増加する。したがって、たとえば、高速ディスクは、キャッシュ・メモリより大きい。したがって、一般に、頻繁に使用されるか変更されるデータは、好ましくはキャッシュまたは高速ディスク内に常駐する。より低い頻度で使用されるか変更されるデータは、リモート・ディスク・アレイに常駐することができる。ある時間期間にわたってアーカイブされなければならないデータは、テープ・ドライブ・システムによってテープに格納することができる。   In general, memory access speed increases as one approaches the processor. Thus, cache memory access is faster than fast disk access, fast disk access is faster than remote disk access, and remote disk access is faster than offline storage access. . Conversely, memory decreases in cost as memory access speed decreases. Thus, the cache memory is more expensive than a high speed disk or the like. Also, the memory size increases with decreasing memory speed. Thus, for example, a high speed disk is larger than a cache memory. Thus, in general, frequently used or changed data preferably resides in a cache or high speed disk. Data that is used or changed less frequently can reside in the remote disk array. Data that must be archived over a period of time can be stored on tape by a tape drive system.

メモリ使用は、ソフトウェアの開発における重要な構成要素である。ソフトウェア開発者は、使用可能なメモリおよび期待される使用を予想してソフトウェアを記述する。たとえば、ソフトウェア開発者は、あるプログラムCD上のファイルの総数のうちの一部のファイルだけが、通常のインストールで使用されると予想する場合がある。したがって、セットアップ・プログラムが、そのプログラムCDからプログラム・ファイルの一部だけをハード・ドライブにロードする場合がある。ユーザが、ハード・ドライブにロードされていない特徴を選択するときには、そのユーザは、選択された特徴を実施するファイルを取り出すためにプログラムCDを挿入するように促される。明らかに、ソフトウェア開発者が、ソフトウェアの動作の過程でのメモリの実際の使用について思い違いをする場合がある。したがって、諸実施形態は、実際の使用に従ってメモリ割振りを自動的に適合させることができる。   Memory usage is an important component in software development. Software developers write software in anticipation of available memory and expected usage. For example, a software developer may expect that only some of the total number of files on a program CD will be used for normal installation. Thus, the setup program may load only a portion of the program file from the program CD onto the hard drive. When a user selects a feature that is not loaded on the hard drive, the user is prompted to insert a program CD to retrieve a file that implements the selected feature. Obviously, software developers may misunderstand the actual use of memory during the operation of the software. Thus, embodiments can automatically adapt memory allocation according to actual use.

しばしば、あるアプリケーション・プログラムによって生成され、操作されるデータ・ファイルは、コンピュータのハード・ドライブに格納される。これらのファイルは、処理のためにコンピュータのキャッシュに呼び込まれる可能性があるデータおよび命令を含む。動作の過程で、ある種のファイルが、休止状態になる、すなわち、そのファイルが、比較的長い時間にわたって使用されなくなる。その場合に、これらのファイルを、ディスク・アレイなど、コストがより低く、より多くの使用可能な余地を有する、より離れたメモリに格納することができる。その後、ディスク・アレイ内で休止しているファイルを、テープ・ストレージに転送することができる。したがって、諸実施形態は、メモリ使用量を監視し、使用量統計をコンパイルし、使用量に従ってファイルをあるメモリ・デバイスから別のメモリ・デバイスに転送するシステムを含む。   Often, data files created and manipulated by an application program are stored on the hard drive of the computer. These files contain data and instructions that can be loaded into the computer's cache for processing. In the course of operation, certain files become dormant, i.e. they are not used for a relatively long time. In that case, these files can be stored in a more distant memory, such as a disk array, that is less costly and has more available space. Files that are dormant in the disk array can then be transferred to tape storage. Accordingly, embodiments include a system that monitors memory usage, compiles usage statistics, and transfers files from one memory device to another according to usage.

図2に、メモリ使用量を監視し、メモリを動的に割り振るシステム200の実施形態を示す。一般に、メモリを、層で説明し、実施することができる。たとえば、メモリを、キャッシュ・メモリ、高速ディスク、リモート・ディスク、およびオフライン・ストレージとすることができる。キャッシュ・メモリは、コンピュータ・プロセッサに近く、通常は高速ランダム・アクセス・メモリ(RAM)で実施することができる。ハード・ドライブなどの高速ディスク・ストレージは、プロセッサにローカルである。リモート・ディスク・アレイも、アレイにアクセスするおそらくは複数のコンピュータを有する、メモリの第3層として使用することができる。第4層すなわちオフライン・ストレージは、磁気テープを含む。オフライン・ストレージは、保存されなければならないが滅多に使用されない可能性が高いデータのアーカイブとして働く。   FIG. 2 illustrates an embodiment of a system 200 that monitors memory usage and dynamically allocates memory. In general, memory can be described and implemented in layers. For example, the memory can be cache memory, high speed disk, remote disk, and offline storage. The cache memory is close to the computer processor and can usually be implemented with high speed random access memory (RAM). High speed disk storage such as hard drives are local to the processor. A remote disk array can also be used as the third layer of memory, possibly with multiple computers accessing the array. The fourth layer or offline storage includes magnetic tape. Offline storage serves as an archive of data that must be preserved but rarely used.

メモリの3つの層202、204、および206が示されているが、異なる個数の層をサポートすることができる。たとえば、メモリ層#1に、高速ディスクを含めることができ、メモリ層#2に、リモート・ディスクを含めることができ、メモリ層#3に、テープ・ドライブを含めることができる。他の層に、キャッシュ・メモリ、バックアップ媒体などを含めることができる。データを、ある層から別の層に転送することができる。一実施形態で、データを、層1と2との間、1と3との間、および2と3との間で転送することができる。ある層から別の層へのデータの転送は、メモリ転送コントローラ214によって制御される。メモリ転送コントローラ214は、分析モジュール212またはユーザ・インターフェース216からの制御信号に応答する。これらの制御信号に応答して、メモリ転送コントローラ214は、あるメモリ層から別のメモリ層への転送を指示する。   Although three layers of memory 202, 204, and 206 are shown, different numbers of layers can be supported. For example, memory layer # 1 can include a high speed disk, memory layer # 2 can include a remote disk, and memory layer # 3 can include a tape drive. Other layers can include cache memory, backup media, and the like. Data can be transferred from one layer to another. In one embodiment, data can be transferred between layers 1 and 2, between 1 and 3, and between 2 and 3. The transfer of data from one layer to another is controlled by the memory transfer controller 214. Memory transfer controller 214 is responsive to control signals from analysis module 212 or user interface 216. In response to these control signals, the memory transfer controller 214 instructs transfer from one memory layer to another.

メモリ・マイグレーションのシステム200は、さらに、メモリの各層の使用量を監視し、使用量統計を累積する使用量モニタ208を含む。複数のアプリケーション・プログラムが、コンピュータまたはコンピュータのネットワーク上で同時に動作している場合がある。各アプリケーションは、それ自体のメモリの使用量を作ることを試みる。したがって、命令およびデータが、もう1つのプログラムの実行中に層1内のハード・ドライブからアクセスされる場合がある。一部のアプリケーションが、ハード・ドライブとコンピュータ・プロセッサのキャッシュとの間で非常に頻繁な基礎でデータを転送する場合がある。一部のアプリケーションが、これを頻繁でない基礎で行う場合がある。システム200の使用量モニタ208は、ファイル・アクセス・レートを監視し、データを分析モジュール212に供給する。使用量モニタ208は、アクセス時間、ファイル・サイズなどに関するデータも監視し、供給する。   The memory migration system 200 further includes a usage monitor 208 that monitors the usage of each layer of memory and accumulates usage statistics. Multiple application programs may be running simultaneously on the computer or network of computers. Each application attempts to make its own memory usage. Thus, instructions and data may be accessed from a hard drive in tier 1 during the execution of another program. Some applications may transfer data on a very frequent basis between the hard drive and the computer processor cache. Some applications may do this on an infrequent basis. The usage monitor 208 of the system 200 monitors file access rates and provides data to the analysis module 212. The usage monitor 208 also monitors and supplies data relating to access time, file size, and the like.

使用量統計に、あるファイルがどれほど頻繁にアクセスされまたは変更されるかを含めることができる。使用量統計を使用することによって、諸実施形態は、システム内で使用可能なさまざまなメモリ実施態様へのアクセスを動的に知的に割り振ることができる。これらの統計は、あるファイルが、そのファイルをメモリのより上位の層に転送することを正当化するのに十分に頻繁に、メモリのある層からアクセスされていることを示すことができる。逆に、使用量統計は、あるファイルが、そのファイルをメモリのより下位の層に格納することを正当化するほどに低い頻度でアクセスされていることを示すことができる。したがって、あるファイルを、ある時点で高速ローカル・ディスクに割り振り、別の時点でリモート・ディスクに割り振ることができる。同様に、1日のある部分の間にテープに割り振られるファイルを、1日の別の部分の間にリモート・ディスクに割り振ることができる。使用量のヒストリ的傾向および現在の傾向を調べることによって、諸実施形態は、効率的かつ自動的にメモリを再割振りすることができる。したがって、諸実施形態は、ファイル使用量に関するヒストリカル情報を監視し、維持する。ヒストリカル・データは、それに対して現在の使用量傾向が比較されるベースラインを形成することができる。傾向を示すメトリックの例は、最終アクセス時刻、変更の時刻、ファイル・サイズ、ある動作(読取、書込、変更など)を実行する時間の長さ、および経時的なアクセスの頻度を含む。諸実施形態は、ファイルがどこに配置されるか、アプリケーション機能要件から生じる特殊なアクセス要件、性能要件などをも監視する。   Usage statistics can include how often a file is accessed or modified. By using usage statistics, embodiments can dynamically and intelligently allocate access to various memory implementations available in the system. These statistics can indicate that a file is being accessed from a layer of memory frequently enough to justify transferring the file to a higher layer of memory. Conversely, usage statistics can indicate that a file is being accessed infrequently enough to justify storing the file in a lower layer of memory. Thus, a file can be allocated to a fast local disk at some point and to a remote disk at another point. Similarly, files allocated to tape during one part of the day can be allocated to a remote disk during another part of the day. By examining historical and current trends in usage, embodiments can efficiently and automatically reallocate memory. Accordingly, embodiments monitor and maintain historical information regarding file usage. Historical data can form a baseline against which current usage trends are compared. Examples of metrics that show trends include last access time, time of change, file size, length of time to perform an operation (read, write, change, etc.), and frequency of access over time. Embodiments also monitor where files are located, special access requirements, performance requirements, etc. that arise from application functional requirements.

分析モジュール212は、使用量モニタ208によって判定された使用量データを分析する。したがって、たとえば、分析モジュール212は、ファイル使用の頻度が低いのでまたはファイルがかなりの長さの時間にわたって休止になっているので、監視されるアプリケーションのファイルを層2のリモート・ディスクに転送しなければならないと決定することができる。したがって、分析モジュール212は、メモリの層ごとに使用閾値パラメータを含むことができる。所与の閾値未満の使用量は、分析モジュール212に、メモリのある層からメモリのより下位の層へのファイルの転送を指示するためにメモリ転送コントローラ214に制御信号を送るように促すことができる。分析モジュール212は、ユーザ・インターフェース216によって分析パラメータを入手することができ、ユーザ・インターフェース216は、ユーザ入力およびシステム200の機能の制御を可能にするために、windows(R)様メニューと共に、キーボード、マウス、およびビデオ・モニタを含む。   The analysis module 212 analyzes the usage data determined by the usage monitor 208. Thus, for example, the analysis module 212 must transfer a monitored application file to a tier 2 remote disk because the file is infrequently used or because the file has been dormant for a significant amount of time. You can decide that you have to. Accordingly, the analysis module 212 can include usage threshold parameters for each layer of memory. Usage below a given threshold prompts the analysis module 212 to send a control signal to the memory transfer controller 214 to direct the transfer of files from one layer of memory to a lower layer of memory. it can. The analysis module 212 can obtain analysis parameters via a user interface 216, which can be used with a keyboard (R) -like menu to allow control of user input and system 200 functions. , Mouse, and video monitor.

コンピュータまたはコンピュータのネットワークによるメモリ使用量は、時刻を含むさまざまな要因のゆえに変化する可能性がある。たとえば、コンピュータのネットワークによってアクセスされるデータ・ベース・プログラムは、1日の業務時間中には使用される頻度が高い可能性があるが、勤務時間後には、その使用は、需要が少ない状態になる。実際に、一部のプログラムは、1日のある部分の間にメモリ・アクセスを激しく要求するが、他のプログラムは、1日の別の部分の間にメモリ・アクセスを激しく要求する。したがって、諸実施形態は、時間−需要に従ってメモリを割り振ることを可能にする。   Memory usage by a computer or computer network can vary due to various factors, including time of day. For example, a database program accessed by a network of computers may be used more frequently during the working hours of the day, but after working hours, its use is less demanding. Become. In fact, some programs demand memory access heavily during one part of the day, while other programs demand memory access heavily during another part of the day. Thus, embodiments allow memory to be allocated according to time-demand.

メモリ使用量は、サービス・レベル仕様に従って、メモリ・アクセスの割振りについて提供されるサービス・レベル・アグリーメント(SLA)に従って判定することもできる。たとえば、あるユーザが、異なるSLA下の第2ユーザより高いメモリ・アクセスの優先順位を与えるサービスレベルを提供するSLAを有する場合がある。諸実施形態は、そのようなアグリーメントに従うメモリ・アクセス割振りならびにSLAの変更に従う再割振りを可能にする。サービス・レベル・データ・ストア210は、あるユーザ、コンピュータ端末、またはアプリケーション・プログラムに与えられるサービスレベルに関する情報を格納する。たとえば、所与のアプリケーションのサービス・レベルに、午後2時から午後4時の時間中に高い優先順位を与えることができる。これらのサービス・レベル仕様は、ユーザ・インターフェース216によってサービス・レベル・データ・ストア210に入力される。したがって、サービス・レベル・データ・ストア210を、時折、サービス・レベル仕様の変更が発生するとき、または新しいサービスレベルが実施されるときに、更新することができる。 Memory usage may also be determined according to a service level agreement (SLA) provided for memory access allocation according to service level specifications. For example, one user may have a SLA to provide service level that gives priority higher than the second user with a different SL A memory access. Embodiments allow memory access allocation according to such agreements as well as reallocation according to SLA changes. Service level data store 210 stores a user, a computer terminal or information regarding the service level provided to the application program. For example, a service level for a given application can be given high priority during the hours from 2pm to 4pm. These service level specifications are entered into the service level data store 210 by the user interface 216. Thus, the service level data store 210, occasionally, when a change of service level specification time occurs, or a new service level is implemented, may be updated.

最新のサービス・レベル仕様は、ファイルまたはデータのブロックあるいはその両方のメモリ・マイグレーションを指示するようにメモリ転送コントローラ214に知らせるかどうか、およびいつそれを知らせるかに影響するために、分析モジュール212から使用可能である。したがって、一実施形態で、分析モジュール212は、指定された時間中に特定のアプリケーションに与えられるサービスの所与のレベルから、メモリ・マイグレーションが行われる場合に、どのメモリ・マイグレーションを行わなければならないかを判定することができる。次に、分析モジュール212は、規定されたメモリ・マイグレーションを指示するようにメモリ転送コントローラ214に知らせる。したがって、ピーク使用期間が始まるか終わるときに、あるメモリ層から別のメモリ層へのファイルのマイグレーションを、サービス・レベル・データ・ストア210に格納され、分析モジュール212に送られたサービス・レベル仕様に従って指示することができる。   From the analysis module 212, the latest service level specification can affect whether and when to notify the memory transfer controller 214 to direct memory migration of files and / or blocks of data. It can be used. Thus, in one embodiment, the analysis module 212 must perform which memory migration if memory migration occurs from a given level of service provided to a particular application during a specified time. Can be determined. The analysis module 212 then informs the memory transfer controller 214 to indicate the prescribed memory migration. Accordingly, the migration of files from one memory layer to another memory layer is stored in the service level data store 210 and sent to the analysis module 212 when the peak usage period begins or ends. Can be instructed according to.

データが複数のメモリ層のどこに格納されるかは、サービスクラスの関数であり、各サービス・クラスは、サービス・レベル仕様の異なる組を含む。したがって、1つのシステムが、さまざまなサービス・クラスを実施することができる。あるサービスクラスのサービス・レベル仕様は、ビジネス考慮事項ならびに処理される情報のクラスを含むさまざまな要因に依存するものとすることができる。ビジネス考慮事項は、可用性、復元可能性、セキュリティ、性能、および価値などの問題を含む。情報クラスには、電子メール、意思決定サポート、データ・ウェアハウス、オーディオ/ビジュアルなどを含めることができる。データは、ブロック単位、オブジェクト単位、またはバイナリおよび圧縮ビットマップなどの複数のフォーマットのファイル単位とすることができ、情報またはコンピュータ・コードを含めることができる。したがって、さまざまなサービス・レベル仕様を、メモリ・アクセス割振り決断を行うときに考慮に入れることができる。 Whether data is stored anywhere in the plurality of memory layers is a function of the service class, the service class includes a different set of service level specifications. Thus, one system can implement various service classes. A service class service level specifications may be dependent on various factors, including the class of information to be business considerations and process. Business considerations include issues such as availability, recoverability, security, performance, and value. Information classes can include email, decision support, data warehousing, audio / visual, and so on. The data can be in block units, object units, or file units in multiple formats such as binary and compressed bitmaps, and can include information or computer code. Thus, various service level specifications can be taken into account when making memory access allocation decisions.

前に注記したように、ユーザ・インターフェース216は、サービス・レベル・データ・ストア210へのサービス・レベル仕様のユーザ入力を可能にし、分析モジュール212への閾値および制御パラメータのユーザ入力を可能にする。ユーザ・インターフェース216は、ユーザが、メモリ転送コントローラ214にあるメモリ層から別のメモリ層へのファイルの転送を指示させるために介入することをも可能にする。したがって、システム管理者は、したがって、ユーザが指示した目的のためにメモリを割り振るために介入することができる。これらのユーザが指示した変更は、分析モジュール212によって決定される自動マイグレーションの対象にすることができ、あるいは、いくつかの実施形態もしくは動作のモードで、分析モジュール212のマイグレーション判断をオーバーライドすることができる。   As previously noted, the user interface 216 allows user input of service level specifications to the service level data store 210 and allows user input of threshold and control parameters to the analysis module 212. . User interface 216 also allows a user to intervene to direct memory transfer controller 214 to transfer files from one memory layer to another. Thus, the system administrator can therefore intervene to allocate memory for the purpose indicated by the user. These user-instructed changes can be subject to automatic migration as determined by the analysis module 212, or may override the migration decisions of the analysis module 212 in some embodiments or modes of operation. it can.

一実施形態で、メモリ転送コントローラ214は、分析モジュール212またはユーザ・インターフェース216からの制御信号に応答してメモリ読取信号またはメモリ書込信号を生成するかトリガする回路網を含む。メモリ転送コントローラ214は、より上位のメモリ層からより下位のメモリ層にデータを転送するために書込信号をトリガしまたは発行することができ、より下位の層からより上位の層にデータを転送するために読取信号をトリガしまたは発行することができる。したがって、たとえば、分析モジュール212は、使用量モニタ208から入手された使用量データに基づいて、現在はより上位の層に格納されているプログラムのファイルを、サービス・レベル・データ・ストア210から入手されたサービス・レベル仕様と一貫して、より下位の層に格納できると判定することができる。その後、メモリ転送コントローラ214は、そのファイルをより上位層のメモリからより下位層のメモリにコピーするために書込信号をトリガし、または発行することができる。   In one embodiment, the memory transfer controller 214 includes circuitry that generates or triggers a memory read signal or memory write signal in response to a control signal from the analysis module 212 or the user interface 216. Memory transfer controller 214 can trigger or issue write signals to transfer data from higher memory layers to lower memory layers, and transfer data from lower layers to higher layers The reading signal can be triggered or issued to Thus, for example, the analysis module 212 obtains from the service level data store 210 a program file currently stored in a higher layer based on the usage data obtained from the usage monitor 208. It can be determined that it can be stored in a lower layer consistent with the service level specification made. The memory transfer controller 214 can then trigger or issue a write signal to copy the file from the higher layer memory to the lower layer memory.

メモリ転送コントローラ214は、データがどこにマイグレーションされたかに関わりなく、データのアクセスを可能にするための回路網をも含む。たとえば、ローカル・ハード・ドライブに格納されたファイルが、低い頻度で使用されると判定され、分析モジュール212が、そのファイルが所与のサービス・レベル・アグリーメントの仕様の下でリモート・ディスクに転送可能であると判定すると仮定する。この転送が完了したときに、データは、異なるメモリ・デバイス内に異なるアドレスを用いて配置される。マイグレーションされたデータへのアクセスを試みるアプリケーション・プログラムのプロセスは、このデータを新しいアドレスで見つけることが、論理的にできなければならない。これは、複数の形で達成することができる。たとえば、一実施形態では、アプリケーションに既知のファイル名と、そのファイル名に対応するファイル内のデータが格納されているメモリ・デバイス内の位置との間のマップを維持するディレクトリが作成される。このディレクトリは、ファイルのデータのマイグレーションごとに更新される。したがって、アプリケーション・プログラムは、このディレクトリからメモリ内のデータの現在のアドレスを確かめることができる。したがって、この非仮想実施形態では、アプリケーションが、マイグレーションされたデータの実際の現在のアドレスについて知らされる。   The memory transfer controller 214 also includes circuitry to allow data access regardless of where the data has been migrated. For example, a file stored on a local hard drive is determined to be used infrequently and the analysis module 212 transfers the file to a remote disk under the specifications of a given service level agreement. Assume that it is determined that it is possible. When this transfer is complete, the data is placed with different addresses in different memory devices. Application program processes attempting to access the migrated data must be able to logically find this data at the new address. This can be achieved in several ways. For example, in one embodiment, a directory is created that maintains a map between a file name known to the application and a location in the memory device where data in the file corresponding to that file name is stored. This directory is updated each time file data is migrated. Thus, the application program can ascertain the current address of the data in memory from this directory. Thus, in this non-virtual embodiment, the application is informed about the actual current address of the migrated data.

もう1つの例として、仮想記憶システムでは、メモリ転送コントローラ214の中央論理スイッチ218を実施して、要求元アプリケーションとマイグレーションされたデータとの間の論理接続を自動的に形成することができる。したがって、一実施形態で、メモリ転送コントローラ214の中央論理スイッチ218は、アプリケーション・プログラムの実行中のプロセスからメモリ・アクセス要求を受け取る。このメモリ・アクセス要求は、仮想アドレスを含む。中央論理スイッチは、仮想アドレスとアプリケーション・プログラムのデータの実際のアドレスとの間の最新のマップを維持する。したがって、受け取られた仮想アドレスは、マイグレーションされたデータの実際の現在のアドレスにマッピングされる。したがって、そのような環境では、データ・アクセスを要求するアプリケーション・プログラム・プロセスは、データの実際のアドレスを知る必要がない。   As another example, in a virtual storage system, the central logical switch 218 of the memory transfer controller 214 can be implemented to automatically create a logical connection between the requesting application and the migrated data. Thus, in one embodiment, the central logical switch 218 of the memory transfer controller 214 receives a memory access request from a process that is executing an application program. This memory access request includes a virtual address. The central logical switch maintains an up-to-date map between the virtual address and the actual address of the application program data. Thus, the received virtual address is mapped to the actual current address of the migrated data. Thus, in such an environment, the application program process requesting data access does not need to know the actual address of the data.

図3に、メモリ・マイグレーションを決定するための使用量統計およびサービス・レベル仕様の分析の実施形態の流れ図300を示す。要素302で、システムが、ブロック、ファイル、およびオブジェクト・レベルの使用量統計を入手する。これらの統計を検査する(要素304)。システムは、統計が経時的に変化したかどうかを判定する(要素306)。そうでない場合に、論理は要素310に流れる。統計が経時的に変化した場合には、システムは、サービス・クラスが変化したかどうかを判定する(要素308)。各サービス・クラスが、サービス・レベル仕様のそれ自体の組に関連することを想起されたい。サービス・クラスが経時的に変化していない場合には、論理は要素310に流れる。サービス・クラスが変化した場合には、論理は要素322に流れて、データの新しいストレージ層を判定する。   FIG. 3 shows a flowchart 300 of an embodiment of usage statistics and service level specification analysis to determine memory migration. At element 302, the system obtains block, file, and object level usage statistics. These statistics are examined (element 304). The system determines whether the statistics have changed over time (element 306). Otherwise, logic flows to element 310. If the statistics change over time, the system determines whether the service class has changed (element 308). Recall that each service class is associated with its own set of service level specifications. If the service class has not changed over time, logic flows to element 310. If the service class has changed, logic flows to element 322 to determine a new storage layer for the data.

要素310で、システムは、可用性、復元可能性、セキュリティ、及び性能要件を含むサービス要件を検査する。次に、システムは、当該サービス要件が経時的に変化したかどうかを判定する(要素312)。当該サービス要件が経時的に変化していない場合には、論理は要素316に流れる。当該サービス要件が経時的に変化した場合には、システムは、サービス・クラスが変化したかどうかを判定する(要素314)。そうでない場合には、論理は要素316に流れる。当該サービス・クラスが変化した場合には、論理は要素322に流れて、新しいストレージ層を判定する。 At element 310, the system checks service requirements , including availability, recoverability, security, and performance requirements. Next, the system determines the service requirements whether the changes over time (element 312). If the service requirement has not changed over time , logic flows to element 316. If the service requirements have changed over time, the system determines whether the service class has changed (element 314). Otherwise, logic flows to element 316. If the service class has changed, logic flows to element 322 to determine the new storage layer.

要素316で、システムは、データ配置の経路管理;データ配置の時点要件;ならびにイベント、トリガ及びアクションを含むポリシを含む、Information Life−cycle Management(ILM)要件を検査する。次に、システムは、ILM要件が経時的に変化したかどうかを判定する(要素318)。そうでない場合には、論理は要素326に流れる。ILM要件が経時的に変化した場合には、システムは、サービス・クラスが変化したかどうかを判定する(要素320)。そうでない場合には、論理は要素326に流れる。サービス・クラスが経時的に変化した場合には、論理は要素322に流れて、新しいストレージを判定する。要素322で、新しいストレージ層を判定する。次に、システムは、データをその新しい層にマイグレーションする(要素324)。その後、システムは、指定された時間間隔だけ待ち、このプロセスは、要素302で継続される。 In element 316, the system, route management data arrangement; time requirements of the data arrangement; and events, including a policy that includes a trigger and an action, examines the Information Life-cycle Management (ILM) requirements. Next, the system determines whether the ILM requirements have changed over time (element 318). Otherwise, logic flows to element 326. If the ILM requirements have changed over time, the system determines whether the service class has changed (element 320). Otherwise, logic flows to element 326. If the service class has changed over time, logic flows to element 322 to determine the new storage. Element 322 determines the new storage layer. The system then migrates the data to the new layer (element 324). The system then waits for the specified time interval and the process continues at element 302.

本発明のいくつかの実施形態は、たとえば図1に示されたディジタル・システム116などのコンピュータ・システムと共に使用されるプログラム製品として実施される。このプログラム製品を、他のコンピュータ・システムまたはプロセッサ上で使用することができる。このプログラム製品の1つまたは複数のプログラムは、諸実施形態の機能(本明細書で説明した方法を含む)を定義し、さまざまな信号担持媒体に含めることができる。例示的な信号担持媒体は、(i)書込不能記憶媒体(たとえば、CD−ROMドライブによって可読のCD−ROMディスクなど、コンピュータ内の読取専用メモリ・デバイス)に永久的に格納された情報、(ii)書込可能記憶媒体(たとえば、ディスケット・ドライブ内のフロッピ・ディスク、ハード・ディスク・ドライブ、または書込可能CDディスク)に格納された変更可能な情報、および(iii)無線通信を含む、コンピュータ・ネットワークまた電話網などの通信媒体によってコンピュータに伝えられる情報を含むが、これらに限定はされない。後者の実施形態は、具体的に、インターネットおよび他のネットワークからダウンロードされる情報を含む。そのような信号担持媒体は、本発明の機能を指示するコンピュータ可読命令を担持するときに、本発明の実施形態を表す。   Some embodiments of the present invention are implemented as a program product for use with a computer system, such as the digital system 116 shown in FIG. The program product can be used on other computer systems or processors. One or more programs of this program product define the functionality of the embodiments (including the methods described herein) and can be included in various signal bearing media. Exemplary signal bearing media include: (i) information permanently stored on a non-writable storage medium (eg, a read-only memory device in a computer, such as a CD-ROM disk readable by a CD-ROM drive); (Ii) modifiable information stored on a writable storage medium (eg, a floppy disk, hard disk drive, or writable CD disk in a diskette drive), and (iii) wireless communication Including, but not limited to, information communicated to the computer via a communication medium such as a computer network or telephone network. The latter embodiment specifically includes information downloaded from the Internet and other networks. Such signal bearing media represent an embodiment of the present invention when carrying computer readable instructions that direct the functionality of the present invention.

一般に、本発明の実施形態を実施するために実行されるルーチンは、オペレーティング・システムもしくは特定のアプリケーションの一部、コンポーネント、プログラム、モジュール、オブジェクト、または命令のシーケンスとすることができる。本発明のコンピュータ・プログラムは、通常、ネイティブ・コンピュータによって機械アクセス可能フォーマットに、したがって実行可能命令に変換される複数の命令からなる。また、プログラムは、プログラムにローカルに常駐するかメモリまたはストレージ・デバイス内で見つけられるかのいずれかである変数およびデータ構造体からなる。さらに、本明細書で後で説明するさまざまなプログラムは、それらが本発明の特定の実施形態でそのために実施される応用例に基づいて識別することができる。しかし、この後に続く特定のプログラム術語のどれもが、単に便宜のために使用され、したがって、本発明が、そのような術語によって識別されまたは暗示されあるいはその両方である特定の応用例のいずれかだけでの使用に限定されてはならないことを了解されたい。   In general, the routines executed to implement an embodiment of the invention may be part of an operating system or a particular application, component, program, module, object, or sequence of instructions. The computer program of the present invention typically consists of a plurality of instructions that are converted by a native computer into a machine accessible format and thus into executable instructions. A program also consists of variables and data structures that either reside locally in the program or are found in memory or storage devices. Further, the various programs described later in this specification can be identified based on the applications for which they are implemented in particular embodiments of the invention. However, any of the specific program terms that follow are used for convenience only, and thus, the invention is any specific application that is identified and / or implied by such terms. It should be understood that it should not be limited to just use.

したがって、本発明のもう1つの実施形態は、データ処理システム内で実行されるときに、そのシステムに複数のメモリ・ストレージ・デバイスのうちの複数の間でのデータの自動マイグレーションの一連の動作を実行させるのに有効な命令を含む機械アクセス可能媒体を提供する。この一連の動作は、一般に、1つまたは複数のアプリケーション・プログラムについて複数のメモリ・ストレージ・デバイスのうちの1つまたは複数に格納されたアプリケーション・プログラム・データのアクセスを監視することを含む。また、この動作は、1つまたは複数のアプリケーション・プログラムのサービス・レベル仕様を判定することを含む。この動作は、さらに、アプリケーション・プログラムのうちの1つまたは複数のデータに関するメモリ割振りの変化を、監視されたアクセスおよびサービス・レベル仕様から判定することを含む。この動作は、さらに、判定されたメモリ割振りの変化に従って、複数のストレージ・デバイスのうちの複数の間でのデータの割振りを達成するために、複数のメモリ・ストレージ・デバイスの間でデータを自動的に転送することを含む。この動作は、さらに、メモリ・ストレージ仕様のベースラインの組を実際のメモリ使用量と比較することを含むことができる。この動作は、アプリケーション・プログラムについて指定されたサービス・レベルの変化から生じるメモリ割振りの変化を判定することをも含むことができる。この動作は、さらに、アプリケーション・プログラムのデータのアクセスの頻度を判定すること、またはアクセス時間の持続時間を判定することを含むことができる。   Thus, another embodiment of the present invention provides a series of operations for automatic migration of data between a plurality of memory storage devices when executed in a data processing system. A machine accessible medium is provided that includes instructions useful for execution. This series of operations generally includes monitoring access of application program data stored in one or more of the plurality of memory storage devices for one or more application programs. This operation also includes determining a service level specification for one or more application programs. This operation further includes determining a change in memory allocation for one or more data of the application program from the monitored access and service level specifications. This operation further automatically automates data between multiple memory storage devices to achieve allocation of data among multiple of the multiple storage devices according to the determined change in memory allocation. Transfer. This operation may further include comparing a baseline set of memory storage specifications to actual memory usage. This operation may also include determining a change in memory allocation resulting from a change in service level specified for the application program. This operation may further include determining the frequency of access of the application program's data or determining the duration of the access time.

本発明およびその長所のいくつかを、いくつかの実施形態について詳細に説明したが、添付の特許請求の範囲によって定義される本発明の趣旨および範囲から逸脱せずに、さまざまな変更、置換、および改変を行えることを理解されたい。本発明の実施形態は、複数の目的を達成することができるが、添付の特許請求の範囲に含まれるすべての実施形態が、すべての目的を達成するわけではない。さらに、本願の範囲を本明細書に記載されたプロセス、機械、製造物、材料の構成、手段、方法、およびステップの特定の実施形態に限定することは、意図されていない。当業者が本発明の開示からたやすく了解するように、本明細書に記載の対応する実施形態と実質的に同一の機能を実行するか実質的に同一の結果を達成する、現在存在するか後に開発されるプロセス、機械、製造物、材料の構成、手段、方法、またはステップを、本発明に従って利用することができる。したがって、添付の特許請求の範囲が、その範囲にそのようなプロセス、機械、製造物、材料の構成、手段、方法、またはステップを含むことが意図されている。   Although the invention and some of its advantages have been described in detail with respect to certain embodiments, various modifications, substitutions, and the like can be made without departing from the spirit and scope of the invention as defined by the appended claims. It should be understood that modifications can be made. While embodiments of the invention may achieve multiple objectives, not all embodiments within the scope of the appended claims will achieve all objectives. Furthermore, it is not intended that the scope of the application be limited to the specific embodiments of the processes, machines, articles of manufacture, material configurations, means, methods, and steps described herein. As one of ordinary skill in the art readily appreciates from the disclosure of the present invention, does it exist that perform substantially the same function or achieve substantially the same result as the corresponding embodiments described herein? Later developed processes, machines, products, material configurations, means, methods, or steps may be utilized in accordance with the present invention. Accordingly, the appended claims are intended to include within their scope such processes, machines, manufacture, compositions of materials, means, methods, or steps.

ディジタル・システム内にプロセッサがある、ネットワーク内のディジタル・システムの実施形態を示す図である。FIG. 2 illustrates an embodiment of a digital system in a network with a processor in the digital system. 複数のメモリ・ストレージ・デバイスの間でのデータの自動マイグレーションのシステムの実施形態を示す図である。FIG. 1 illustrates an embodiment of a system for automatic migration of data between multiple memory storage devices. 複数のメモリ・ストレージ・デバイスの間でデータの自動マイグレーションを達成する実施形態の流れ図を示す図である。FIG. 5 illustrates a flow diagram of an embodiment that achieves automatic migration of data between multiple memory storage devices.

符号の説明Explanation of symbols

100 プロセッサ
102 レベル2(L2)キャッシュ
104 基本入出力システム(BIOS)コード
106 オペレーティング・システム(OS)コード
108 メモリ
109 データ
110 入出力デバイス
112 サーバ
114 他のコンピュータおよびサーバ
116 ディジタル・システム
118 別のメモリ
130 命令バッファ
150 実行ユニット
160 制御回路網
190 レベル1(L1)キャッシュ
200 システム
202 層
204 層
206 層
208 使用量モニタ
210 サービス・レベル・データ・ストア
212 分析モジュール
214 メモリ転送コントローラ
216 ユーザ・インターフェース
218 中央論理スイッチ
300 流れ図
302 ブロック、ファイル、およびオブジェクト・レベルの統計を入手するステップ
304 情報分類を検査するステップ
306 統計が経時的に変化したかどうかを判定するステップ
308 サービス・クラスが変化したかどうかを判定するステップ
310 サービス要件を検査するステップ
312 サービス要件が経時的に変化したかどうかを判定するステップ
314 サービス・クラスが変化したかどうかを判定するステップ
316 ILM要件を検査するステップ
318 ILM要件が経時的に変化したかどうかを判定するステップ
320 サービス・クラスが変化したかどうかを判定するステップ
322 新しいストレージ層を判定するステップ
324 データを新しい層にマイグレーションするステップ
326 指定された間隔だけ待つステップ
100 processor 102 level 2 (L2) cache 104 basic input / output system (BIOS) code 106 operating system (OS) code 108 memory 109 data 110 input / output device 112 server 114 other computer and server 116 digital system 118 separate memory 130 instruction buffer 150 execution unit 160 control network 190 level 1 (L1) cache 200 system 202 layer 204 layer 206 layer 208 usage monitor 210 service level data store 212 analysis module 214 memory transfer controller 216 user interface 218 central Logic switch 300 Flow diagram 302 Step to obtain block, file, and object level statistics 304 Checking information classification 306 Determining whether statistics have changed over time 308 Determining whether service class has changed 310 Checking service requirements 312 Changing service requirements over time Step 314 determining whether the service class has changed 316 checking the ILM requirement 318 determining whether the ILM requirement has changed over time 320 whether the service class has changed Step 322 step 322 step to determine a new storage layer 324 step to migrate data to the new layer 326 wait for a specified interval

Claims (4)

コンピュータが備えている複数のメモリ・ストレージ・デバイスの間でデータを自動マイグレーションするための方法であって、前記複数のメモリ・ストレージ・デバイスが、3つのメモリ層に分けられており、第1のメモリ層が高速ディスク・ストレージであり、第2のメモリ層がリモート・ディスクであり、第3のメモリ層がオフライン・ストレージであり、前記マイグレーションが、前記第1のメモリ層と前記第2のメモリ層との間、前記第1のメモリ層と前記第3のメモリ層との間、又は前記第2のメモリ層と前記第3のメモリ層との間で行われ、前記コンピュータが、
前記複数のメモリ・ストレージ・デバイスのうちの1つまたは複数内に格納されたデータのアクセスの頻度、前記データのアクセス時間、前記データのサイズ、又は前記データにアクセスするために要する時間の使用量統計を入手するステップと、
前記使用量統計が経時的に変したかどうかを判定するステップと、
前記使用量統計が経時的に変化していることに応じて、
サービス・クラスが変化したかどうかを判定するステップであって、前記コンピュータは様々なサービス・クラスを実施することができ、各サービス・クラスは、1つまたは複数のアプリケーション・プログラムのサービス・レベル仕様の異なる組に関連付けられている、前記判定するステップと、
前記サービス・クラスが変化したことに応じて、新しいメモリ層を判定して、前記データを前記判定されたメモリ層に転送するステップと、
前記使用量統計が経時的に変化していないことに応じて、サービス要件が経時的に変化したかどうかを判定するステップであって、前記サービス要件は、可用性、復元可能性、セキュリティ、及び性能要件である、前記判定するステップと、
前記サービス要件が経時的に変化していることに応じて、
サービス・クラスが変化したかどうかを判定するステップであって、前記コンピュータは様々なサービス・クラスを実施することができ、各サービス・クラスは、1つまたは複数のアプリケーション・プログラムのサービス・レベル仕様の異なる組に関連付けられている、前記判定するステップと、
前記サービス・クラスが変化したことに応じて、新しいメモリ層を判定して、前記データを前記判定されたメモリ層に転送するステップと、
前記サービス要件が経時的に変化していないことに応じて、インフォメーション・ライフサイクル・マネジメント(ILM)が経時的に変化したかどうかを判定するステップであって、前記ILMは、データ配置の経路管理;データ配置の時点要件;イベント、トリガ及びアクションを含むポリシからなる、前記判定するステップと、
前記ILMが経時的に変化したことに応じて、
サービス・クラスが変化したかどうかを判定するステップであって、前記コンピュータは様々なサービス・クラスを実施することができ、各サービス・クラスは、1つまたは複数のアプリケーション・プログラムのサービス・レベル仕様の異なる組に関連付けられている、前記判定するステップと、
前記サービス・クラスが変化したことに応じて、新しいメモリ層を判定して、前記データを前記判定されたメモリ層に転送するステップと
を実行することを含む、前記方法。
A method for automatically migrating data between a plurality of memory storage devices included in a computer , wherein the plurality of memory storage devices are divided into three memory layers, and The memory layer is a high-speed disk storage, the second memory layer is a remote disk, the third memory layer is offline storage, and the migration includes the first memory layer and the second memory. Between the first memory layer and the third memory layer, or between the second memory layer and the third memory layer, the computer comprising :
Access frequency of data stored in one or more of the plurality of memory storage devices, access time of the data, size of the data, or usage of time required to access the data Obtaining statistics,
Determining whether the usage statistics with time to change,
In response to the usage statistics changing over time,
Determining whether a service class has changed, wherein the computer can implement various service classes, each service class having a service level specification for one or more application programs; Said determining step associated with different sets of:
Determining a new memory layer in response to a change in the service class and transferring the data to the determined memory layer;
Determining whether service requirements have changed over time in response to the usage statistics not changing over time, the service requirements comprising availability, recoverability, security, and performance; The determining step, which is a requirement ;
In response to the service requirements changing over time,
Determining whether a service class has changed, wherein the computer can implement various service classes, each service class having a service level specification for one or more application programs; Said determining step associated with different sets of:
Determining a new memory layer in response to a change in the service class and transferring the data to the determined memory layer;
Determining whether an information lifecycle management (ILM) has changed over time in response to the service requirements not changing over time, the ILM managing route of data placement Said determination step comprising a policy including events, triggers and actions;
In response to the ILM changing over time,
Determining whether a service class has changed, wherein the computer can implement various service classes, each service class having a service level specification for one or more application programs; Said determining step associated with different sets of :
Performing a step of determining a new memory layer and transferring the data to the determined memory layer in response to a change in the service class.
前記使用量統計を入手するステップが、各メモリ層における前記使用量統計を入手するステップを含む、請求項に記載の方法。The method of claim 1 , wherein obtaining the usage statistics comprises obtaining the usage statistics at each memory layer. コンピュータが備えている複数のメモリ・ストレージ・デバイスの間でのデータを自動マイグレーションするためのコンピュータ・プログラムであって、前記複数のメモリ・ストレージ・デバイスが、3つのメモリ層に分けられており、第1のメモリ層が高速ディスク・ストレージであり、第2のメモリ層がリモート・ディスクであり、第3のメモリ層がオフライン・ストレージであり、前記マイグレーションが、前記第1のメモリ層と前記第2のメモリ層との間、前記第1のメモリ層と前記第3のメモリ層との間、又は前記第2のメモリ層と前記第3のメモリ層との間で行われ、コンピュータに、請求項1又は2に記載の方法の各ステップを実行させる、前記コンピュータ・プログラム。 A computer program for automatically migrating data between a plurality of memory storage devices provided in a computer, wherein the plurality of memory storage devices are divided into three memory layers, The first memory layer is a high-speed disk storage, the second memory layer is a remote disk, the third memory layer is offline storage, and the migration is performed between the first memory layer and the first memory layer. Between the second memory layer, the first memory layer and the third memory layer, or between the second memory layer and the third memory layer. Item 3. The computer program that causes each step of the method according to Item 1 or 2 to be executed. 複数のメモリ・ストレージ・デバイスの間でのデータを自動マイグレーションするための前記コンピュータであって、
プロセッサと、
前記プロセッサに接続されたメモリと、
前記複数のメモリ・ストレージ・デバイスであって、3つのメモリ層に分けられており、第1のメモリ層が高速ディスク・ストレージであり、第2のメモリ層がリモート・ディスクであり、第3のメモリ層がオフライン・ストレージである、前記複数のメモリ・ストレージ・デバイス
を備えており、前記マイグレーションが、前記第1のメモリ層と前記第2のメモリ層との間、前記第1のメモリ層と前記第3のメモリ層との間、又は前記第2のメモリ層と前記第3のメモリ層との間で行われ、
前記プロセッサが、請求項に記載されたコンピュータ・プログラムを前記メモリ内に読み込んで実行する、前記コンピュータ
A computer for automatically migrating data between a plurality of memory storage devices,
A processor;
A memory connected to the processor;
A plurality of memory storage devices , divided into three memory layers, wherein the first memory layer is a high speed disk storage, the second memory layer is a remote disk, A plurality of memory storage devices, wherein the memory layer is offline storage, and the migration is between the first memory layer and the second memory layer, the first memory layer Between the second memory layer and the third memory layer, or between the second memory layer and the third memory layer,
The computer, wherein the processor reads the computer program according to claim 3 into the memory and executes the computer program .
JP2008518866A 2005-07-05 2006-07-03 Memory migration system and method Expired - Fee Related JP5186367B2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/174,959 2005-07-05
US11/174,959 US7529903B2 (en) 2005-07-05 2005-07-05 Systems and methods for memory migration
PCT/EP2006/063814 WO2007003630A1 (en) 2005-07-05 2006-07-03 Systems and methods for memory migration

Publications (3)

Publication Number Publication Date
JP2009500705A JP2009500705A (en) 2009-01-08
JP2009500705A5 JP2009500705A5 (en) 2009-03-05
JP5186367B2 true JP5186367B2 (en) 2013-04-17

Family

ID=37199099

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008518866A Expired - Fee Related JP5186367B2 (en) 2005-07-05 2006-07-03 Memory migration system and method

Country Status (5)

Country Link
US (2) US7529903B2 (en)
EP (1) EP1899796A1 (en)
JP (1) JP5186367B2 (en)
CN (1) CN101218557B (en)
WO (1) WO2007003630A1 (en)

Families Citing this family (75)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7392234B2 (en) * 1999-05-18 2008-06-24 Kom, Inc. Method and system for electronic file lifecycle management
US9361243B2 (en) 1998-07-31 2016-06-07 Kom Networks Inc. Method and system for providing restricted access to a storage medium
US7392356B1 (en) 2005-09-06 2008-06-24 Symantec Corporation Promotion or demotion of backup data in a storage hierarchy based on significance and redundancy of the backup data
US8522228B1 (en) 2006-03-31 2013-08-27 Vmware, Inc. Updating software on dormant disks
US7823145B1 (en) * 2006-03-31 2010-10-26 Vmware, Inc. Updating software on dormant disks
JP5018774B2 (en) * 2006-06-05 2012-09-05 日本電気株式会社 Monitoring device, monitoring system, monitoring method and program
US8346729B2 (en) * 2006-11-18 2013-01-01 International Business Machines Corporation Business-semantic-aware information lifecycle management
JP5745749B2 (en) * 2008-01-15 2015-07-08 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation Method for automatically managing storage infrastructure and suitable storage infrastructure
US7877482B1 (en) * 2008-04-01 2011-01-25 Google Inc. Efficient application hosting in a distributed application execution system
US8006038B2 (en) * 2008-10-02 2011-08-23 Microsoft Corporation Optimizing information lifecycle management for fixed storage
US8005950B1 (en) 2008-12-09 2011-08-23 Google Inc. Application server scalability through runtime restrictions enforcement in a distributed application execution system
US8195878B2 (en) 2009-02-19 2012-06-05 Pmc-Sierra, Inc. Hard disk drive with attached solid state drive cache
KR101023877B1 (en) * 2009-04-17 2011-03-22 (주)인디링스 Method managing cache/disk and controller of enabling the method
JP2010257094A (en) * 2009-04-23 2010-11-11 Hitachi Ltd Method for clipping migration candidate file in hierarchical storage management system
JP5250482B2 (en) * 2009-05-21 2013-07-31 株式会社日立製作所 Power saving control apparatus and method
US20100325352A1 (en) * 2009-06-19 2010-12-23 Ocz Technology Group, Inc. Hierarchically structured mass storage device and method
JP4962921B2 (en) 2009-08-26 2012-06-27 日本電気株式会社 Computer memory relocation control method and program, and computer system
US8245060B2 (en) * 2009-10-15 2012-08-14 Microsoft Corporation Memory object relocation for power savings
JP5209591B2 (en) * 2009-11-16 2013-06-12 株式会社日立製作所 Storage system with power saving function
US8566540B2 (en) 2010-02-02 2013-10-22 International Business Machines Corporation Data migration methodology for use with arrays of powered-down storage devices
US8230192B2 (en) * 2010-02-05 2012-07-24 Lsi Corporation System and method for QoS-based storage tiering and migration technique
US9197514B2 (en) 2010-03-31 2015-11-24 Paypal, Inc. Service level agreement based storage access
US8386859B2 (en) * 2010-04-30 2013-02-26 International Business Machines Corporation On-chip non-volatile storage of a test-time profile for efficiency and performance control
US8276018B2 (en) 2010-04-30 2012-09-25 International Business Machines Corporation Non-volatile memory based reliability and availability mechanisms for a computing device
US20110283277A1 (en) 2010-05-11 2011-11-17 International Business Machines Corporation Virtualization and dynamic resource allocation aware storage level reordering
CN101853183B (en) * 2010-05-14 2012-11-21 中国科学院声学研究所 Method for dynamically managing on-chip instruction scratchpad memory
US8645730B2 (en) * 2010-09-21 2014-02-04 International Business Machines Corporation Systems and methods to improve power efficiency in hybrid storage clusters
US9575781B1 (en) * 2011-05-23 2017-02-21 Open Invention Network Llc Automatic determination of a virtual machine's dependencies on storage virtualization
CN102326149B (en) * 2011-07-28 2013-09-25 华为技术有限公司 Realization method and apparatus for internal memory migration
US8667490B1 (en) * 2011-07-29 2014-03-04 Emc Corporation Active/active storage and virtual machine mobility over asynchronous distances
US9189405B2 (en) 2011-08-03 2015-11-17 International Business Machines Corporation Placement of data in shards on a storage device
US11048410B2 (en) * 2011-08-24 2021-06-29 Rambus Inc. Distributed procedure execution and file systems on a memory interface
CN102521138B (en) * 2011-11-28 2015-11-25 华为技术有限公司 data migration triggering method and device
US8738877B2 (en) * 2011-12-14 2014-05-27 Advance Micro Devices, Inc. Processor with garbage-collection based classification of memory
US9253275B2 (en) 2012-01-30 2016-02-02 International Business Machines Corporation Cognitive dynamic allocation in caching appliances
US10467212B2 (en) 2012-04-27 2019-11-05 Empire Technology Development Llc Multiple variable coverage memory for database indexing
US9092461B1 (en) 2012-06-30 2015-07-28 Emc Corporation System and method for tiering data storage
US9542153B1 (en) * 2012-06-30 2017-01-10 EMC IP Holding Company LLC System and method for tiering data storage
US8935695B1 (en) * 2012-07-12 2015-01-13 Symantec Corporation Systems and methods for managing multipathing configurations for virtual machines
CN107402891B (en) * 2012-12-25 2020-12-22 华为技术有限公司 Method for determining page management mode of shared virtual memory and related equipment
US9047239B2 (en) * 2013-01-02 2015-06-02 International Business Machines Corporation Determining weight values for storage devices in a storage tier to use to select one of the storage devices to use as a target storage to which data from a source storage is migrated
US9560127B2 (en) 2013-01-18 2017-01-31 International Business Machines Corporation Systems, methods and algorithms for logical movement of data objects
US9396030B2 (en) * 2013-03-13 2016-07-19 Samsung Electronics Co., Ltd. Quota-based adaptive resource balancing in a scalable heap allocator for multithreaded applications
US9450981B2 (en) * 2013-03-14 2016-09-20 Radware, Ltd. System and method thereof for mitigating denial of service attacks in virtual networks
US9274840B2 (en) * 2013-03-15 2016-03-01 International Business Machines Corporation Dynamic memory management with thread local storage usage
GB2516435A (en) * 2013-04-05 2015-01-28 Continental Automotive Systems Embedded memory management scheme for real-time applications
US9063667B2 (en) * 2013-08-13 2015-06-23 Utah State University Dynamic memory relocation
WO2015116080A1 (en) * 2014-01-30 2015-08-06 Hewlett-Packard Development Company, L.P. Migrating data between memories
US9195401B2 (en) 2014-02-18 2015-11-24 University Of Florida Research Foundation, Inc. Method and apparatus for virtual machine live storage migration in heterogeneous storage environment
US9678797B2 (en) 2014-03-10 2017-06-13 Microsoft Technology Licensing, Llc Dynamic resource management for multi-process applications
US9478274B1 (en) 2014-05-28 2016-10-25 Emc Corporation Methods and apparatus for multiple memory maps and multiple page caches in tiered memory
US9535844B1 (en) 2014-06-30 2017-01-03 EMC IP Holding Company LLC Prioritization for cache systems
US20160092115A1 (en) * 2014-09-29 2016-03-31 Hewlett-Packard Development Company, L. P. Implementing storage policies regarding use of memory regions
US10235054B1 (en) * 2014-12-09 2019-03-19 EMC IP Holding Company LLC System and method utilizing a cache free list and first and second page caches managed as a single cache in an exclusive manner
JP6547306B2 (en) * 2015-01-27 2019-07-24 富士ゼロックス株式会社 INFORMATION PROCESSING APPARATUS, DATA BACKUP METHOD, AND PROGRAM
US9971821B1 (en) * 2015-02-17 2018-05-15 Cohesity, Inc. Search and analytics for a storage systems
JP6519228B2 (en) * 2015-02-27 2019-05-29 富士通株式会社 Data allocation determination device, data allocation determination program, and data allocation determination method
US20170031600A1 (en) 2015-07-30 2017-02-02 Netapp Inc. Real-time analysis for dynamic storage
US10203874B1 (en) * 2015-09-30 2019-02-12 EMC IP Holding Company LLC Managing time scheduled data placement in data storage systems
US10152498B2 (en) * 2015-12-11 2018-12-11 Emc Corporation Providing storage technology information to improve database performance
US10216433B2 (en) 2015-12-11 2019-02-26 EMC IP Holding Company LLC Accessing a virtual volume on a storage array
US10564870B1 (en) * 2016-03-02 2020-02-18 Amazon Technologies, Inc. Placing data storage volumes
CN106371762A (en) * 2016-08-19 2017-02-01 浪潮(北京)电子信息产业有限公司 Optimization method and system of storage data
US10698619B1 (en) * 2016-08-29 2020-06-30 Infinidat Ltd. Service level agreement based management of pending access requests
US10552079B2 (en) * 2017-01-18 2020-02-04 International Business Machines Corporation Planning of data segment merge for distributed storage system
JP6955142B2 (en) 2017-03-17 2021-10-27 富士通株式会社 Information processing device, storage control method and storage control program
CN110915161B (en) * 2017-07-12 2023-05-02 惠普发展公司,有限责任合伙企业 Computing device, memory device migration method and system
US10783119B2 (en) 2017-08-08 2020-09-22 Seagate Technology Llc Fixed record media conversion with data compression and encryption
US20190057045A1 (en) * 2017-08-16 2019-02-21 Alibaba Group Holding Limited Methods and systems for caching based on service level agreement
US10725660B2 (en) * 2017-11-17 2020-07-28 International Business Machines Corporation Policy-based optimization of cloud resources on tiered storage operations
JP7160449B2 (en) * 2017-11-17 2022-10-25 インターナショナル・ビジネス・マシーンズ・コーポレーション Method, system, computer program and recording medium for allocating cloud resources in a cloud computing system based on tiered storage data movement
US20190155511A1 (en) * 2017-11-17 2019-05-23 International Business Machines Corporation Policy-based optimization of cloud resources on tiered storage operations
CN108733484B (en) * 2018-04-13 2021-12-03 华为技术有限公司 Method and device for managing application program
CN108667916B (en) * 2018-04-24 2021-08-13 百度在线网络技术(北京)有限公司 Data access method and system for Web application
JP2021135760A (en) 2020-02-27 2021-09-13 キオクシア株式会社 Memory system and memory control method

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5313631A (en) * 1991-05-21 1994-05-17 Hewlett-Packard Company Dual threshold system for immediate or delayed scheduled migration of computer data files
JPH0659982A (en) * 1992-08-10 1994-03-04 Hitachi Ltd Method and device for controlling virtual storage
JP2682811B2 (en) 1994-03-22 1997-11-26 インターナショナル・ビジネス・マシーンズ・コーポレイション Data storage management system and method
JPH0944381A (en) * 1995-07-31 1997-02-14 Toshiba Corp Method and device for data storage
JP3193880B2 (en) 1996-12-11 2001-07-30 株式会社日立製作所 Data migration method
US7392234B2 (en) 1999-05-18 2008-06-24 Kom, Inc. Method and system for electronic file lifecycle management
US6269382B1 (en) 1998-08-31 2001-07-31 Microsoft Corporation Systems and methods for migration and recall of data from local and remote storage
US6426893B1 (en) * 2000-02-17 2002-07-30 Sandisk Corporation Flash eeprom system with simultaneous multiple data sector programming and storage of physical block characteristics in other designated blocks
JP2002182859A (en) * 2000-12-12 2002-06-28 Hitachi Ltd Storage system and its utilizing method
US6754895B1 (en) 2001-04-26 2004-06-22 Palm Source, Inc. Method and system for automatic firmware updates in a portable hand-held device
US6718435B2 (en) 2001-08-14 2004-04-06 International Business Machines Corporation Method and system for migrating data in a raid logical drive migration
CA2458908A1 (en) * 2001-08-31 2003-03-13 Arkivio, Inc. Techniques for storing data based upon storage policies
CA2461025A1 (en) 2001-09-26 2003-04-03 Mark Saake Efficient mangement of large files
US7269612B2 (en) * 2002-05-31 2007-09-11 International Business Machines Corporation Method, system, and program for a policy based storage manager
JP2005115438A (en) * 2003-10-03 2005-04-28 Mitsubishi Electric Corp Data management apparatus

Also Published As

Publication number Publication date
WO2007003630A1 (en) 2007-01-11
CN101218557A (en) 2008-07-09
CN101218557B (en) 2011-09-28
EP1899796A1 (en) 2008-03-19
US7669026B2 (en) 2010-02-23
US20080172539A1 (en) 2008-07-17
JP2009500705A (en) 2009-01-08
US20070011420A1 (en) 2007-01-11
US7529903B2 (en) 2009-05-05

Similar Documents

Publication Publication Date Title
JP5186367B2 (en) Memory migration system and method
US9405476B2 (en) Systems and methods for a file-level cache
JP4749255B2 (en) Storage system control device having multiple types of storage devices
US8996807B2 (en) Systems and methods for a multi-level cache
US6912635B2 (en) Distributing workload evenly across storage media in a storage array
US8166270B2 (en) Storage control apparatus, data management system and data management method for determining storage heirarchy based on a user policy
JP5121427B2 (en) Method and apparatus for unified storage system
WO2011074284A1 (en) Migration method for virtual machine, virtual machine system, and storage medium containing program
US20130290598A1 (en) Reducing Power Consumption by Migration of Data within a Tiered Storage System
US8244955B2 (en) Storage system and its controlling method
US7194594B2 (en) Storage area management method and system for assigning physical storage areas to multiple application programs
JP2007233783A (en) Storage management method and storage management server
KR20140034246A (en) Memory management model and interface for new applications
US20080270698A1 (en) Data migration including operation environment information of a host computer
KR20140033448A (en) Memory management model and interface for unmodified applications
US10380066B2 (en) File system with multi-class in situ tiered archiving
US20080109630A1 (en) Storage system, storage unit, and storage management system
US11550489B2 (en) Storage system and processing migration method
KR101099130B1 (en) A storage management system with virtual volumes
US10992751B1 (en) Selective storage of a dataset on a data storage device that is directly attached to a network switch

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090113

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090325

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110927

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20111226

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111226

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20111226

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20111227

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120704

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121022

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20121022

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20121029

TRDD Decision of grant or rejection written
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20121228

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20121228

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121228

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130121

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

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees