JP2022089783A - セルフ・クリアリング・データ移動支援の方法、システム、およびコンピュータ・プログラム、およびコンピュータ可読な記録媒体 - Google Patents

セルフ・クリアリング・データ移動支援の方法、システム、およびコンピュータ・プログラム、およびコンピュータ可読な記録媒体 Download PDF

Info

Publication number
JP2022089783A
JP2022089783A JP2021195188A JP2021195188A JP2022089783A JP 2022089783 A JP2022089783 A JP 2022089783A JP 2021195188 A JP2021195188 A JP 2021195188A JP 2021195188 A JP2021195188 A JP 2021195188A JP 2022089783 A JP2022089783 A JP 2022089783A
Authority
JP
Japan
Prior art keywords
data
memory
request
source memory
engine
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2021195188A
Other languages
English (en)
Inventor
スコット、ライダー
Rider Scot
マーセル、シャール
Schaal Marcel
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 JP2022089783A publication Critical patent/JP2022089783A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/556Detecting local intrusion or implementing counter-measures involving covert channels, i.e. data leakage between processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • 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
    • 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/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • 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/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • 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/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2143Clearing memory, e.g. to prevent the data from being stolen

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Bus Control (AREA)
  • Storage Device Security (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)

Abstract

Figure 2022089783000001
【課題】セルフ・クリアリング・データ移動支援(DMA)エンジンを提供する。
【解決手段】態様は、ソース・システムのソース・メモリからターゲット・システムのターゲット・メモリにデータを移動させるためのリクエストをリクエスト・システムから受け取ることを含む。受け取ることは、ソース・メモリおよびターゲット・メモリにアクセスするように構成された第1のハードウェア・エンジンにおけるものである。リクエストを受け取ることに応答して、第1のハードウェア・エンジンは、ソース・メモリからデータを読み込むこと、およびターゲット・メモリにデータを書き込むことを行う。読込みが完了したことに応答して、第1のハードウェア・エンジンは、ソース・メモリにアクセスするように構成された第2のハードウェア・エンジンにデータ・クリア・リクエストを伝送する。データ・クリア・リクエストは、クリアするべきソース・メモリ内のデータの位置を指定する。
【選択図】図1

Description

本発明は、一般に、コンピュータ処理に関し、より詳細には、セルフ・クリアリング・データ移動支援(DMA:self-clearing data move assist)エンジンに関する。
DMAは、「データ移動支援」または「ダイレクト・メモリ・アクセス」を短くしたものであり、中央処理装置(CPU)から独立して、特定のハードウェア・サブシステムがメイン・システム・メモリにアクセスできるようにするコンピュータ・システムの特徴を指す。DMAがない場合、プログラムした入出力(I/O)をCPUが使用しているとき、CPUは、典型的には、読込みまたは書込み動作の全期間、完全に占有されるので、他の作業を実施するために利用することができない。DMAがある場合、CPUは、データ転送を最初に開始し、次に、CPUは、移送の進行中に、他の動作を実施することができる。CPUは、I/O動作が完了したときに、DMAコントローラまたはDMAエンジンからの割込みを受ける。DMAの使用は、CPUがデータ転送率についていけないとき、または、CPUが、I/Oデータ転送が完了するのを待ちつつ、他の作業を実施する必要があるときに役に立つ。ディスク・ドライブ・コントローラ、グラフィック・カード、ネットワーク・カード、およびサウンド・カードを含む多くのハードウェア・システムがDMAを使用する。また、マルチコア・プロセッサのチップ内のデータ転送にDMAを使用する。DMAチャネルを有するコンピュータは、DMAチャネルのないコンピュータより、はるかに小さいCPUオーバヘッドで、デバイスとの間でデータを移送することができる。同様に、マルチコア・プロセッサ内部の処理要素は、マルチコア・プロセッサのプロセッサ時間を占有することなく、マルチコア・プロセッサのローカル・メモリとの間でデータを移送することができ、計算およびデータ転送を同時に進めることができる。
DMAエンジンなどのコンピュータ・ハードウェアのセキュリティは、クラウド・システムのような仮想化環境の多数の個別ユーザがハードウェアを頻繁に使用しているので、ますます重要になりつつある。悪意がなくても、I/Oアダプタにおいて仮想化の使用を拡大すると、1つの処理の作業負荷を別の処理の残りのワーク・スペースにオーバーレイできるようになり、後者の処理が、残されたデータを参照できるようになる。ソフトウェアがこのメモリを自発的にクリアしない限り、極秘データが露出されたままになり、無関係の、そしておそらくは安全対策のない処理に対し可視となる恐れがある。本開示の実施形態は、セルフ・クリアリング・データ移動支援(DMA)エンジンを提供することを目的とする。
本発明の実施形態は、セルフ・クリアリング・データ移動支援(DMA)エンジンを対象とする。コンピュータ実行方法の非限定的な例は、ソース・システムのソース・メモリからターゲット・システムのターゲット・メモリにデータを移動させるためのリクエストをリクエスト・システムから受け取ることを含む。この受け取ることは、ソース・メモリおよびターゲット・メモリにアクセスするように構成された第1のハードウェア・エンジンにおけるものである。リクエストを受け取ることに応答して、第1のハードウェア・エンジンは、ソース・メモリからデータを読み込むこと、およびターゲット・メモリにデータを書き込むことを行う。読込みが完了したことに応答して、第1のハードウェア・エンジンは、ソース・メモリにアクセスするように構成された第2のハードウェア・エンジンにデータ・クリア・リクエストを伝送する。データ・クリア・リクエストは、クリアするべきソース・メモリ内のデータの位置を指定する。
本発明の他の実施形態は、コンピュータ・システムおよびコンピュータ・プログラム製品における上述の方法の特徴を実行する。
さらなる技術的特徴および利益は、本発明の技術を通じて実現される。本発明の実施形態および態様は、本明細書で詳細に説明し、特許請求する主題の一部と考えられる。さらなる理解のために、詳細な説明および図面を参照する。
本明細書で説明する排他的な権利の細目は、本明細書の結びにおける特許請求の範囲において具体的に指摘し、明確に請求する。本発明の実施形態の前述のおよび他の特徴および長所は、添付の図面を併用して行われる以下の詳細な説明から明らかである。
本発明の1つまたは複数の実施形態による、セルフ・クリアリング・データ移動支援(DMA)エンジンを提供するためのシステムのブロック図である。 本発明の1つまたは複数の実施形態による、セルフ・クリアリングDMAエンジンによって実施される方法の流れ図である。 本発明の1つまたは複数の実施形態によるクラウド・コンピューティング環境の図である。 本発明の1つまたは複数の実施形態による抽象化モデル層の図である。 本発明の1つまたは複数の実施形態によるセルフ・クリアリングDMAエンジンを提供するためのシステムの図である。
本明細書で描写する図は例示である。本発明の思想から逸脱することなく、図または図に描写した動作に対する多くの変形形態があり得る。例えば、アクションは、異なる順序で実施することができるか、またはアクションは、追加、削除、もしくは修正することができる。また、用語「連結される」およびその変形は、2つの要素間に通信経路があることを表し、必ずしも要素間に介在する要素/接続がない要素間の直接接続を示唆しない。これらの変形形態の全てを本明細書の一部であるものと考える。
本発明の1つまたは複数の実施形態は、データ移動支援エンジン(DMA)エンジンを提供し、DMAエンジンは、データをターゲット記憶位置に移動させた後、ソース記憶位置から読み込んだデータを自動的にクリアする。したがって、本発明の1つまたは複数の実施形態は、データの新しい所有者または位置にデータを移動させた後、その後の何らかの処理が、ソース位置のデータを見るのを防ぐ。
ソース位置を移動させた後に、ソース位置をクリアすることに対する現在のアプローチは、データ移動が完了したときに、リクエストしたホスト・プロセッサへの割込みをDMAエンジンが発行することを含む。次に、ホスト・プロセッサは、DMAエンジンに新しいコマンドを発行して、例えば、オール・ゼロまたはランダム・データをソース位置に書き込むことによって、ソース位置のデータをクリアする。ソース位置をクリアすることに対する現代のアプローチは、ソフトウェア駆動型であり、ホスト・プロセッサの中央処理装置(CPU)への2つの割込みを必要とし、一方は、データ移動が完了したとき、および他方は、クリア動作が完了したときである。CPUがクリア・コマンドを発行するのにどれだけかかるかに応じて、別の処理が、ソース位置を既に使用しており、したがって場合によっては、読み込むべきでないデータを読み込んでいる可能性がある。
本発明の1つまたは複数の実施形態は、クリア機能をハードウェアに組み込むことによって、現代のシステムの上記に記した1つまたは複数の欠陥に対処する。これは、クリア処理がソフトウェア処理によって覆されるのを防ぐ。さらに、データをターゲット位置に移動させた後にメモリをクリアするよう呼び出される別の動作を持たないことによって、性能が改善されている。さらに、ダイナミック・ランダム・アクセス・メモリ(DRAM)にインターフェースするとき、DRAMバンクがまだ開いている可能性があり、より低いレイテンシ状態にあることにより、移送または移動に近い時間で、ワイプまたはクリアを実行することによって、性能が改善されている。
ここで図1に移り、本発明の1つまたは複数の実施形態による、セルフ・クリアリングDMAエンジンを提供するためのシステムのブロック図100を全体的に示す。図1に示す構成要素のそれぞれの全てまたは一部は、図5のコンピュータ501によって、または図3のクラウド・コンピューティング・ノード10によって、あるいはその両方によって実行することができる。図1の実施形態に示す構成要素は、ホスト・システム170、DMAエンジン110、DMAエンジン135、およびターゲット・システム150を含む。
図1に示すホスト・システム170は、数ある要素の中でも、中央処理装置(CPU)175およびホスト・メモリ165を含む。図1に示すターゲット・システム150は、数ある要素の中でも、CPU185およびターゲット・メモリ155を含む。ラベル「ホスト・システム」および「ターゲット・システム」は、本明細書で説明するデータ移動処理においてプロセッサのそれぞれによって実施される処理を指し、ホスト・システム170は、DMAエンジン110、135を制御して、データ移動を実施する。本発明の1つまたは複数の実施形態によれば、ターゲット・システム150は、ラップトップまたは他のモバイル・デバイスなどの、ローカル・システムとすることができる。。
図1に示すDMAエンジン110は、読込みチャネル130に接続された読込みポート(図示せず)を含み、読込みチャネル130は、ホスト・メモリ165に連結される。読込みチャネル130は、ホスト・メモリ165上の(例えば、アドレスおよび長さで)特定の位置を指定するための読込み制御バス、ならびに、DMAエンジン110上のデータ・バッファ140に、読み込んだデータを返すための読込みデータ・バスを含む。また、DMAエンジン110は、書込みチャネル160に接続された書込みポート(図示せず)を含み、書込みチャネル160は、ターゲット・メモリ155に連結される。書込みチャネル160は、ターゲット・メモリ155内の位置を指定するための書込み制御バス、および、データ・バッファ140からターゲット・メモリ155内の位置にデータを移送するための書込みデータ・バスを含む。図1のDMAエンジン110は、読込みポートおよび書込みポートがデータ・バッファ140を通じて連結されるように構成された、バスに取り付けた読込みポートおよび書込みポートを含む全二重モードの、ステート・マシンまたはプロセッサである。
図1に示すDMAエンジン135は、ターゲット・メモリ155に接続された読込みチャネル115に接続された読込みポート(図示せず)を含む。読込みチャネル115は、ターゲット・メモリ155上の(例えば、アドレスおよび長さで)特定の位置を指定するための読込み制御バス、ならびに、ホスト・メモリ165からDMAエンジン135上のデータ・バッファ105に、読み込んだデータを返すための読込みデータ・バスを含む。また、DMAエンジン135は、ホスト・メモリ165に接続された書込みチャネル190に接続された書込みポート(図示せず)を含む。書込みチャネル190は、ホスト・メモリ165内の位置を指定するための書込み制御バス、および、データ・バッファ105からホスト・メモリ165内の位置にデータを移送するための書込みデータ・バスを含む。DMAエンジン135は、読込みポートおよび書込みポートがデータ・バッファ105を通じて連結されるように接続された、バスに取り付けた読込みポートおよび書込みポートを含む全二重モードの、ステート・マシンまたはプロセッサである。
図1に示すように、ホスト・メモリ165への読込み、およびターゲット・メモリ155への書込みを、DMAエンジン110が発行し、ターゲット・メモリ155への読込み、およびホスト・メモリ165への書込みを、DMAエンジン135が独自に発行し、これによりデータ移動を両方向に制御できるように、DMAエンジン110およびDMAエンジン135を対称的にインスタンス化する。DMAエンジン110の制御は制御ポート120を介し、DMAエンジン135の制御は制御ポート125を介す。図1の実施形態に示すように、ホスト・システム170のCPU175は、DMAエンジン110の制御ポート120に、またはDMAエンジン135の制御ポート125に、あるいはその両方に、ホスト・システム170上の制御ポート(図示せず)、および制御チャネル145を介して記述子を送る。制御ポート120、125は、データをどこに移動するべきか(アドレス)、および、どれだけ多くのデータが移動するべきか(長さ)を、DMAエンジン110、135に説明する連続命令である記述子を書き込む。DMAエンジン110、135は、受け取った記述子に基づいて、行うべきアクションを判定するための記述子パーサを含む。本発明の1つまたは複数の実施形態によれば、DMAエンジン110、135におけるDMAエンジンの記述子パーサは、多数のチャネルをサポートすることができ、移送処理のいくつかの個別のシーケンスを同時に保つことができる。
図1の実施形態に示すように、データ・クリア制御チャネル180は、2つの二重化したDMAエンジン110、135の間で交差連結される。本発明の1つまたは複数の実施形態によれば、CPU175は、移動記述子または読書き(R/W)記述子をDMAエンジン110に発行する。移動記述子は、ホスト・メモリ165内の指定アドレス、および、データを書き込むべきターゲット・メモリ155内のアドレスで始まる、読み込むべきビットの数、または長さを指定する。移動記述子を受け取ることに応答して、DMAエンジン110は、ホスト・メモリ165からデータを読み込み、ターゲット・メモリ155にデータを書き込み、ホスト・メモリ165からデータを除去することになる。
本発明の1つまたは複数の実施形態によれば、DMAエンジン110の読込みフェーズが完了した後、DMAエンジン110の制御ポート120に送られた移動記述子の読込み部分(読込みアドレスおよび長さ)は、元の読込みアドレスおよび長さに戻す書込みリクエストを発行して、読込みアドレスおよび長さで指定した記憶位置のホスト・メモリ165からのデータを除去またはワイプするために、データ・クリア制御チャネル180を介してDMAエンジン135の待ち行列に入る。本発明の1つまたは複数の実施形態によれば、指定の長さの読込みアドレス位置にオール・ゼロまたはオール1を書き込む。本発明の1つまたは複数の実施形態によれば、一連のランダム・ビットまたは任意の意味のないデータ・パターンを、読込みアドレスおよび長さで指定した記憶位置に書き込む。このように、ホスト・メモリ内の元のデータは、データの残りのコピーだけが、ターゲット・メモリ155内のターゲット・アドレスにあるようにクリアされる。
データがターゲット・メモリ155から読み込まれ、ホスト・メモリ165に書き込まれるときに、同様の処理を実施することができる。このシナリオでは、DMAエンジン135の読込みフェーズが完了した後、DMAエンジン135の制御ポート125に送られた移動記述子の読込み部分(読込みアドレスおよび長さ)は、元の読込みアドレスおよび長さに戻す書込みリクエストを発行して、読込みアドレスおよび長さで指定した記憶位置のターゲット・メモリ155からのデータを除去またはワイプするために、データ・クリア制御チャネル180を介してDMAエンジン110の待ち行列に入る。本発明の1つまたは複数の実施形態によれば、指定の長さの読込みアドレス位置にオール・ゼロまたはオール1を書き込む。本発明の1つまたは複数の実施形態によれば、一連のランダム・ビットまたは任意の意味のないデータ・パターンを、読込みアドレスおよび長さで指定した記憶位置に書き込む。このように、ターゲット・メモリ155内の元のデータは、データの残りのコピーだけが、ホスト・メモリ165内のターゲット・アドレスにあるようにクリアされる
図1のブロック図100について本明細書で説明する実施形態は、任意の適切なロジックで実行することができ、ロジックは、本明細書で言及するように、様々な実施形態では、任意の適切なハードウェア(例えば、数ある中でも、プロセッサ、組込型コントローラ、もしくは特定用途向け集積回路)、ソフトウェア(例えば、数ある中でも、アプリケーション)、ファームウェア、または、ハードウェア、ソフトウェア、およびファームウェアの任意の適切な組合せを含むことができる。
ここで図2に移り、本発明の1つまたは複数の実施形態による、セルフ・クリアリングDMAエンジンによって実施される方法200の流れ図を全体的に示す。図2に示す処理の全てまたは一部は、例えば、図1のDMAエンジン110またはDMAエンジン135によって実施することができる。
図2のブロック202において、ソース位置からターゲット位置にデータを移動させるためのリクエストを受け取る。リクエストは、ソース位置から読み込むこと、およびターゲット位置に書き込むことを行うように構成された第1のハードウェア・エンジンで受け取る。本発明の1つまたは複数の実施形態によれば、第1のハードウェア・エンジンが、別のDMAエンジンに連結されたDMAエンジンである場合、連結された2つのDMAエンジンのうちの1つのインスタンスは、記述子の形でデータ移動リクエストを受け取り、このリクエストは、DMAエンジンの制御ポートを介して受け取られる。本発明の1つまたは複数の実施形態によれば、記述子は、(読込みポートのメモリのアドレス空間に対応する)読込みアドレス、(書込みポートのメモリのアドレス空間に対応する)書込みアドレス、および、どれだけ多くのデータを読込み空間から書込み空間に移動させるべきかを指示するデータ・カウントまたは長さを含む命令のリストを含む。本発明の1つまたは複数の実施形態によれば、記述子は、その後の記述子につなげることができ、また、様々なアドレス空間識別子(処理識別子等)を収めることができる。
例えば、図1に示す構成要素を参照すると、第1のハードウェア・エンジンは、データ・クリア制御チャネル180を介してDMAエンジン135に連結されたDMAエンジン110によって実行することができる。この例では、図2のブロック202において実施される処理は、ホスト・システム170のCPU175によって、制御チャネル145を介してDMAエンジン110に記述子を送ることを含む。記述子は、ホスト・メモリ165内の読込みアドレス、ターゲット・メモリ155内の書込みアドレス、および、(読込みアドレスで始まる)移動するべきビットまたはバイトの数のデータ・カウントを指定することができる。
ブロック204において、第1のハードウェア・エンジンによってデータ移動リクエストを処理する。本発明の1つまたは複数の実施形態によれば、処理は、ソース・メモリからデータを読み込むこと、およびターゲット・メモリにデータを書き込むことを含む。ブロック204における処理の読込み部分が完了したとき、ブロック206における処理は、ソース・メモリからデータを除去することを実施することができる。ブロック206における処理は、ソース・メモリからデータを除去またはクリアするために、第1のハードウェア・エンジンが、第2のハードウェア・エンジンにリクエストを伝送することによって開始される。リクエストを受け取ることに応答して、第2のハードウェア・エンジンは、例えば、ソース・メモリ内の位置にオール・ゼロまたはランダム値を書き込むことによって、ソース・メモリ内の位置をクリアする。本発明の1つまたは複数の実施形態によれば、ブロック206における処理は、ブロック204における処理と、特にターゲット・メモリへのデータの書込みと、時間が重複する。
上記の例を参照すると、ブロック204において、読込みチャネル130を使用して記述子の読込み部分を実行し、これにより、DMAエンジン110のデータ・バッファ140にデータを移動させる。次に、書込みチャネル160を使用して記述子の書込み部分を実行し、DMAエンジン110のバッファ140からターゲット・システム150のターゲット・メモリ155にデータを移動させる。本発明の1つまたは複数の実施形態によれば、DMAエンジン110のデータ・バッファ140にデータを移動させると、ブロック206における処理を実施することができる。ブロック206において、ブロック202において受け取った記述子は、DMAエンジン135への書込みリクエストとして、データ・クリア制御チャネル180の待ち行列に入る。本発明の1つまたは複数の実施形態によれば、待ち行列に入る記述子は、ブロック202において受け取った記述子を利用し、記述子を修正して、ソース記憶位置への書込みリクエストを生成することによって、DMAエンジン110によって生成される。書込みリクエストは、ソース記憶位置をクリアするために書き込むべき値を指定することができる。書込みは、DMAエンジン135によって、書込みチャネル190を介して実施される。読込みチャネル115は、このモードで使用しないことに留意されたい。
ブロック208において、第1のハードウェア・エンジンは、ソース記憶位置のクリアが完了したという通知を第2のハードウェア・エンジンから受け取る。通知を受け取ることに応答して、第1のハードウェア・エンジンは、データを移動させるためのリクエストが完了したことをリクエスト・システムに通知することができる。本発明の1つまたは複数の実施形態によれば、リクエスト・システムへの通知は、(データ移動およびクリアを含む)記述子の全ての部分を実行するまで、延期することができる。
上記の例を再び参照すると、DMAエンジン135によってワイプ書込みが完了すると、2次またはデータ・クリア制御チャネル180を通じて、このクリアの完了が成功したことをDMAエンジン110に通知し、DMAエンジン110は、記述子リストのこの部分を完了と決定する。
本発明の1つまたは複数の実施形態によれば、図2に示す処理は、DMAエンジン135によって実施されるワイプより先に、DMAエンジン110の読込みを進めることができるように、パイプライン化される。このモードでは、DMAエンジン110は、未決定の完了全てを「スコアボード化する(scoreboard)」。全てのデータ移動、および従属したワイプが完了すると、DMAエンジン110は、競合する記述子チェーンの全般的な完了ステータスを、ホスト・システム170のCPU175に制御ポート120を介して通知する。この全体処理は、制御ポート120または125上で記述子を開始することによって、同時にまたは連続して行うことができる。(DMAエンジン自体の中で、または連結したバス上のエラー指示を介して)例外が発生した場合、検出エンジンは、アクションまたは連結したワイプあるいはその両方が正しく終了しなかったこと、および、このメモリを再使用できる前にホスト対話が必要であることを、ホスト・システム170のCPU175に制御ポート120を介して通知することができる。
実例の記述子のリストは以下の通りである。
sourceAddr=16、destinationAddr=256 len=16(16~31のワイプを意味する)
sourceAddr=32、destinationAddr=272 len=16(32~47のワイプを意味する)
sourceAddr=128、destinationAddr=288 len=16(128~143のワイプを意味する)
この例では、本発明の1つまたは複数の実施形態によれば、記述子リストの3つ全ての部分を実行した後、すなわち、ソース記憶位置から宛先(またはターゲット)記憶位置にデータを移動させ、ソース記憶位置からデータがクリアされたとき、リクエストするCPUに一度通知することができる。1つまたは複数の本発明の他の実施形態によれば、記述子リストの各部分を実行した後に、リクエストするCPUに通知することができる。
図2の処理の流れ図は、任意の特定の順序で動作を実行するべきであること、または、図2に示す動作の全てをあらゆるケースに含めるべきであることを示すことを意図しない。さらに、図2に示す処理は、任意の適切な数の追加の動作を含めることができる。
本開示はクラウド・コンピューティングについての詳細な説明を含むが、本明細書で列挙する教示の実装形態は、クラウド・コンピューティング環境に限定されないことを理解されたい。むしろ、本発明の実施形態は、今知られているか、後で開発されるコンピューティング環境の他の任意のタイプと共に実行することができる。
クラウド・コンピューティングは、最低限の管理努力、またはサービスのプロバイダとの対話で迅速に提供し、公開できる、構成可能なコンピューティング・リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共用プールへの、便利なオンデマンド・ネットワーク・アクセスを可能にするためのサービス配信のモデルである。このクラウド・モデルは、少なくとも5つの特性、少なくとも3つのサービス・モデル、および少なくとも4つの導入モデルを含むことができる。
特性は以下の通りである。
オンデマンド・セルフ・サービス:クラウド利用者は、サービスの提供者との人的対話を必要とすることなく、必要に応じて自動的に、サーバ時間およびネットワーク・ストレージなどのコンピュータ処理能力を一方的に提供することができる。
ブロード・ネットワーク・アクセス:能力はネットワーク上で利用可能であり、ヘテロジニアスなシンまたはシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、およびPDA)による使用を推進する標準メカニズムを通じてアクセスされる。
リソース・プーリング:提供者のコンピュータ処理リソースは、マルチ・テナント・モデルを使用して多数の利用者をサーブするためにプールされ、要求に従って、種々の物理的リソースおよび仮想リソースの動的な割当ておよび再割当てを行う。利用者は、一般に、提供されるリソースの正確な位置についての制御権または知識を有しておらず、抽象化のより高いレベル(例えば、国、州、またはデータセンタ)で位置を指定でき得るという点で位置独立の意味がある。
迅速な伸縮性:能力は、素早くスケール・アウトするために、迅速かつ伸縮自在に、場合によっては自動的に提供され、素早くスケール・インするために、迅速に解放することができる。利用者にとって、提供するために利用可能な能力は、しばしば、無制限のように見え、任意の量でいつでも購入することができる。
測定されるサービス:クラウド・システムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、およびアクティブ・ユーザ・アカウント)に適した抽象化のいくつかのレベルで計量能力を活用することによって、リソース利用を自動的に制御し、最適化する。リソース利用率の監視、制御、レポートを行うことができ、利用されるサービスの提供者と利用者の双方に透明性をもたらす。
サービス・モデルは以下の通りである。
サービスとしてのソフトウェア(SaaS):利用者に提供される能力は、クラウド・インフラストラクチャ上で動く提供者のアプリケーションを使用することである。アプリケーションは、ウェブ・ブラウザ(例えば、ウェブベースの電子メール)などの、シン・クライアント・インターフェースを通じて様々なクライアント・デバイスからアクセス可能である。利用者は、ネットワーク、サーバ、オペレーティング・システム、ストレージ、さらには個々のアプリケーション能力を含む、基礎をなすクラウド・インフラストラクチャを管理または制御せず、可能性のある例外は、限定的なユーザ固有のアプリケーション構成設定である。
サービスとしてのプラットフォーム(PaaS):利用者に提供される能力は、提供者によりサポートされるプログラミング言語およびツールを使用して制作された、利用者が制作または取得したアプリケーションを、クラウド・インフラストラクチャ上に配置することである。利用者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む、基礎をなすクラウド・インフラストラクチャを管理または制御しないが、配置されたアプリケーション、および場合によっては、アプリケーションをホストする環境構成に対する制御権を有している。
サービスとしてのインフラストラクチャ(IaaS):利用者に提供される能力は、処理、ストレージ、ネットワーク、ならびに、オペレーティング・システムおよびアプリケーションを含み得る任意のソフトウェアを利用者が配置し動かすことができる他の基本的なコンピューティング・リソースを提供することである。利用者は、基礎をなすクラウド・インフラストラクチャを管理または制御しないが、オペレーティング・システム、ストレージ、配置されたアプリケーション、および場合によっては、ネットワーキング構成要素(例えば、ホスト・ファイアウォール)の選択についての限定的な制御権を有している。
導入モデルは以下の通りである。
プライベート・クラウド:クラウド・インフラストラクチャは、組織のためにだけ運用される。クラウド・インフラストラクチャは、組織または第三者によって管理することができ、敷地内または敷地外に存在することがある。
コミュニティ・クラウド:クラウド・インフラストラクチャは、いくつかの組織によって共有され、懸念(例えば、ミッション、セキュリティ要件、ポリシ、およびコンプライアンス考慮)を共有してきた固有のコミュニティをサポートする。クラウド・インフラストラクチャは、組織または第三者によって管理することができ、敷地内または敷地外に存在することがある。
パブリック・クラウド:インフラストラクチャは、一般大衆または大規模な業界団体が利用でき、クラウド・サービスを売る組織が所有する。
ハイブリッド・クラウド:クラウド・インフラストラクチャは、一意のエンティティのままであるが、データおよびアプリケーションの移植を可能にする標準または独自の技術(例えば、クラウド間の負荷分散のためのクラウド・バースティング)と共に結びつけられた、2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の構成である。
クラウド・コンピューティング環境は、無国籍、疎結合、モジュラリティ、および意味論的相互運用性に焦点を合わせたサービス指向のものである。クラウド・コンピューティングの中心には、相互接続ノードのネットワークを含むインフラストラクチャがある。
ここで図3を参照し、例示的なクラウド・コンピューティング環境50を描写する。図示のように、クラウド・コンピューティング環境50は、1つまたは複数のクラウド・コンピューティング・ノード10を含み、例えば、パーソナル・デジタル・アシスタント(PDA)もしくはセルラー電話54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54C、または自動車コンピュータ・システム54N、あるいはその組合せなどの、クラウド利用者によって使用されるローカル・コンピューティング・デバイスは、クラウド・コンピューティング・ノード10と通信することができる。ノード10は、互いに通信することができる。ノード10は、上述のようなプライベート、コミュニティ、パブリック、もしくはハイブリッド・クラウド、またはその組合せなど、1つまたは複数のネットワーク内で、物理的または仮想的にグループ化することができる(図示せず)。これにより、クラウド・コンピューティング環境50は、クラウド利用者がローカル・コンピューティング・デバイス上でリソースを維持する必要のない、サービスとしてのインフラストラクチャ、プラットフォーム、またはソフトウェア、あるいはその組合せを提供することができる。図3に示すコンピューティング・デバイス54A~54Nのタイプは単なる例示のためのものであり、コンピューティング・ノード10およびクラウド・コンピューティング環境50は、任意のタイプのネットワーク、または(例えば、ウェブ・ブラウザを使用した)ネットワーク・アドレス指定可能接続、あるいはその両方で、任意のタイプのコンピュータ化デバイスと通信できると理解されている。
ここで図4を参照し、クラウド・コンピューティング環境50(図3)によって提供される機能抽象化層のセットを示す。図4に示す構成要素、層、および機能は単なる例示のためのものであり、本発明の実施形態はこれらに限定されないことを予め理解されたい。図示のように、以下の層および対応機能を提供する。
ハードウェアおよびソフトウェア層60は、ハードウェアおよびソフトウェア構成要素を含む。ハードウェア構成要素の例は、メインフレーム61、RISC(縮小命令セット・コンピュータ)アーキテクチャ・ベースのサーバ62、サーバ63、ブレード・サーバ64、ストレージ・デバイス65、ならびにネットワークおよびネットワーキング構成要素66を含む。いくつかの実施形態では、ソフトウェア構成要素は、ネットワーク・アプリケーション・サーバ・ソフトウェア67およびデータベース・ソフトウェア68を含む。
仮想化層70は、仮想サーバ71、仮想ストレージ72、仮想プライベート・ネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティング・システム74、ならびに仮想クライアント75といった、仮想エンティティの例を提供できる抽象化層を提供する。
一例では、管理層80は、下記に記述する機能を提供することができる。リソース提供81は、クラウド・コンピューティング環境内のタスクを実施するために利用されるコンピューティング・リソースおよび他のリソースの動的な調達を行う。計量および価格設定82は、クラウド・コンピューティング環境内でリソースが利用されるときのコスト追跡、および、これらのリソースの利用量に対する請求書作成またはインボイス作成を行う。一例では、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含むことができる。セキュリティは、クラウド利用者およびタスクの検証、ならびに、データおよび他のリソースの保護を行う。ユーザ・ポータル83は、利用者およびシステム・アドミニストレータに、クラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理84は、要求されるサービス・レベルを満たすように、クラウド・コンピューティング・リソースの配分および管理を行う。サービス・レベル合意書(SLA:Service Level Agreement)の計画および履行85は、SLAに応じて、将来の要件が予想されるクラウド・コンピューティング・リソースの事前配置および調達を行う。
ワークロード層90は、クラウド・コンピューティング環境を利用できる機能の例を提供する。この層から提供できるワークロードおよび機能の例は、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想クラスルーム教育配信93、データ分析処理94、トランザクション処理95、ならびにデータ暗号化/復号96を含む。
本発明の1つまたは複数の実施形態は、今知られているか、後で開発される任意のタイプのコンピューティング環境と共に実行できると理解される。
ここで図5に移り、本発明の1つまたは複数の実施形態による、クラスルーム分析に基づいてテキストブック内容再編成を実施するためのコンピュータ・システム500を全体的に示す。図5に示すコンピュータ・システム500の全てまたは一部は、図3の1つまたは複数のクラウド・コンピューティング・ノード10によって実行することができる。本明細書で説明する方法は、ハードウェア、ソフトウェア(例えば、ファームウェア)、またはその組合せで実行することができる。本発明の1つまたは複数の例示的な実施形態では、本明細書で説明する方法は、パーソナル・コンピュータ、ワークステーション、ミニコンピュータ、またはメインフレーム・コンピュータなどの、専用または汎用デジタル・コンピュータのマイクロプロセッサの一部としてハードウェアで実行される。したがって、システム500は、O/Sの多数のインスタンスを同時に実行できる汎用コンピュータまたはメインフレーム501を含むことができる。
本発明の1つまたは複数の例示的な実施形態では、図5に示すようなハードウェア・アーキテクチャに関して、コンピュータ501は、1つまたは複数のプロセッサ505、メモリ・コントローラ515に連結されたメモリ510、および、ローカル入出力コントローラ535を介して通信連結された1つまたは複数の入出力(I/O)デバイス540、545(または周辺機器)を含む。入出力コントローラ535は、例えば、当技術分野で知られているような、1つもしくは複数のバス、または他の有線もしくはワイヤレス接続が可能であるが、これらに限定されない。入出力コントローラ535は、通信を可能にするために、コントローラ、バッファ(キャッシュ)、ドライバ、リピータ、およびレシーバなどの、簡略化のために省略した追加の要素を有することができる。さらに、ローカル・インターフェースは、前述の構成要素間の適切な通信を可能にする、アドレス、制御、またはデータ接続、あるいはその組合せを含むことができる。入出力コントローラ535は、出力デバイス540および545にアクセスするように構成された複数のサブ・チャネルを含むことができる。サブ・チャネルは、光ファイバ通信ポートを含むことができる。
プロセッサ505は、特に、キャッシュ・ストレージなどのストレージ520、またはメモリ510に格納されたソフトウェアを実行するためのハードウェア・デバイスである。プロセッサ505は、任意のカスタム・メードもしくは市販のプロセッサ、中央処理装置(CPU)、コンピュータ501に関連付けられたいくつかのプロセッサ間の補助プロセッサ、(マイクロチップもしくはチップ・セットの形の)半導体ベースのマイクロプロセッサ、マクロプロセッサ、または命令を実行するための一般的な任意のデバイスとすることが可能である。
メモリ510は、揮発性メモリ素子(例えば、ランダム・アクセス・メモリ(DRAM、SRAM、SDRAM等などのRAM))、および不揮発性メモリ素子(例えば、ROM、消去可能プログラマブル・リード・オンリ・メモリ(EPROM)、電子的消去可能プログラマブル・リード・オンリ・メモリ(EEPROM)、プログラマブル・リード・オンリ・メモリ(PROM)、テープ、コンパクト・ディスク・リード・オンリ・メモリ(CD-ROM)、ディスク、ディスケット、カートリッジ、カセットまたは同様のもの等)のいずれか1つまたは組合せを含むことができる。その上、メモリ510は、電子、磁気、光、または他、あるいはその組合せのタイプのストレージ媒体を組み込むことができる。メモリ510は、様々な構成要素が互いに離れて置かれるが、プロセッサ505によってアクセスできる分散型アーキテクチャを有することができることに留意されたい。
メモリ510内の命令は、論理機能を実行するための実行可能命令の整然としたリストをそれぞれが含んだ、1つまたは複数の別個のプログラムを含むことができる。図5の例では、メモリ510内の命令は、適切なオペレーティング・システム(OS)511である。オペレーティング・システム511は、本質的に、他のコンピュータ・プログラムの実行を制御し、スケジューリング、入出力制御、ファイルおよびデータ管理、メモリ管理、ならびに、通信制御および関連サービスを行う。
本発明の1つまたは複数の実施形態によれば、メモリ510は、オペレーティング・システムのインスタンスをそれぞれ実行する多数の論理区画(LPAR:logical partition)を含むことができる。LPARは、ハイパーバイザによって管理することができ、ハイパーバイザは、メモリ510に格納され、プロセッサ505によって実行されるプログラムであってもよい。
本発明の1つまたは複数の例示的な実施形態では、従来のキーボード550およびマウス555を、入出力コントローラ535に連結することができる。I/Oデバイス540、545などの他の出力デバイスは、例えば、プリンタ、スキャナ、マイクロフォン、および同様のものであるがこれらに限定されない、入力デバイスを含むことができる。最後に、I/Oデバイス540、545は、例えば、(他のファイル、デバイス、システム、またはネットワークにアクセスするための)ネットワーク・インターフェース・カード(NIC)または変調器/復調器、無線周波数(RF)または他のトランシーバ、電話インターフェース、ブリッジ、ルータ、および同様のものであるがこれらに限定されない、入力と出力両方を通信するデバイスをさらに含むことができる。システム500は、ディスプレイ530に連結されたディスプレイ・コントローラ525をさらに含むことができる。
本発明の1つまたは複数の例示的な実施形態では、システム500は、ネットワーク565に連結するためのネットワーク・インターフェース560をさらに含むことができる。ネットワーク565は、コンピュータ501と、任意の外部サーバ、クライアントおよび同様のものとの間の、ブロードバンド接続を介した通信のための、IPベースのネットワークとすることが可能である。ネットワーク565は、コンピュータ501と外部システムとの間でデータを伝送し、受信する。例示的な実施形態では、ネットワーク565は、サービス・プロバイダによって運営される、管理されたIPネットワークとすることが可能である。ネットワーク565は、例えば、WiFi、WiMax等などのワイヤレス・プロトコルおよび技術を使用して、ワイヤレスで実行することができる。また、ネットワーク565は、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、メトロポリタン・エリア・ネットワーク、インターネット・ネットワーク、またはネットワーク環境の他の同様のタイプなどの、パケット交換型ネットワークとすることが可能である。ネットワーク565は、固定ワイヤレス・ネットワーク、ワイヤレス・ローカル・エリア・ネットワーク(LAN)、ワイヤレス・ワイド・エリア・ネットワーク(WAN)、パーソナル・エリア・ネットワーク(PAN)、仮想プライベート・ネットワーク(VPN)、イントラネットまたは他の適切なネットワーク・システムであってもよく、信号を受信し、伝送するための機器を含む。
コンピュータ501がPC、ワークステーション、インテリジェント・デバイス、または同様のものの場合、メモリ510内の命令は、基本入出力システム(BIOS:basic input output system)(簡略化のために省略)をさらに含むことができる。BIOSは、始動時にハードウェアを初期化してテストし、OS511をスタートさせ、ハードウェア・デバイス間のデータ転送をサポートする重要なソフトウェア・ルーチンのセットである。BIOSは、コンピュータ501がアクティブになったときにBIOSを実行できるように、ROMに格納される。
コンピュータ501が動作中のとき、プロセッサ505は、メモリ510に格納された命令を実行すること、メモリ510との間でデータを通信すること、および、命令に従ってコンピュータ501の動作を全体的に制御することを行うように構成される。本発明の1つまたは複数の実施形態によれば、コンピュータ501は、図3のクラウド・コンピューティング・ノード10の例である。
関連図面を参照して本発明の様々な実施形態を本明細書で説明する。本発明の範囲から逸脱することなく、本発明の代替実施形態を考案することができる。様々な接続および位置関係(例えば、上(over)、下(below)、隣(adjacent)、等)を、以下の説明および図面における要素間に示す。これらの接続または位置関係あるいはその両方は、別途指定のない限り、直接的または間接的とすることが可能であり、本発明は、この点に限定することを意図しない。したがって、エンティティの連結は、直接的または間接的な連結を指すものとすることができ、エンティティ間の位置関係は、直接的または間接的な位置関係とすることが可能である。さらに、本明細書で説明する様々なタスクおよび処理ステップは、本明細書で詳細に説明しない追加のステップまたは機能を有する、より包括的な手順または処理に組み込むことができる。
本明細書で説明する1つまたは複数の方法は、データ信号に対して論理機能を実行するための論理ゲートを有する個別論理回路、適切な組合せ論理ゲートを有する特定用途向け集積回路(ASIC)、プログラマブル・ゲート・アレイ(PGA)、フィールド・プログラマブル・ゲート・アレイ(FPGA)等といった、当技術分野でそれぞれよく知られた技術のいずれかまたは組合せを用いて実行することができる。
簡潔さのために、本発明の態様を行うことおよび使用することに関連した従来の技術は、本明細書で詳細に説明することも、しないこともある。具体的には、本明細書で説明する様々な技術的特徴を実行するためのコンピューティング・システムおよび固有のコンピュータ・プログラムの様々な態様が、よく知られている。したがって、簡潔さのために、多くの従来の実装形態の詳細は、本明細書で簡単に言及するのみであるか、あるいは、よく知られたシステムもしくは処理またはその両方の詳細を示すことなく全面的に省略する。
いくつかの実施形態では、様々な機能または行為は、所与の位置で、あるいは1つもしくは複数の装置もしくはシステムの動作と共に、またはその両方で行うことができる。いくつかの実施形態では、所与の機能または行為の一部は、第1のデバイスまたは位置で実施することができ、残りの機能または行為は、1つまたは複数の追加のデバイスまたは位置で実施することができる。
本明細書で使用する専門用語は、特定の実施形態のみを説明するためのものであり、限定することを意図するものではない。本明細書で使用するように、単数形「1つ(a)」、「1つ(an)」、および「前記(the)」は、別途文脈が明確に指示しない限り、複数形を同様に含むことを意図する。用語「備える(comprises)」または「備える(comprising)」あるいはその両方は、本明細書で使用するとき、述べた特徴、整数、ステップ、動作、要素、または構成要素、あるいはその組合せの存在を指定するが、1つまたは複数の他の特徴、整数、ステップ、動作、要素構成要素、またはそのグループ、あるいはその組合せの存在または追加を排除しないことがさらに理解されよう。
下記の特許請求の範囲における機能要素に加えて、全ての手段またはステップの対応する構造、材料、行為、および同等物は、明確に請求するような他の請求要素と組み合わせて機能を実施するための任意の構造、材料、または行為を含むことが意図されている。本開示は、例示および記述のために提示されてきたが、網羅的であること、または、開示の形に限定することを意図するものではない。本開示の範囲および思想から逸脱することなく、多くの修正および変更が当業者には明らかであろう。実施形態は、本開示の原理、および実用的用途を最も良く説明するように、および、想定される特定の使用に適したような、様々な修正を伴う様々な実施形態についての本開示を当業者が理解できるように、選び、説明した。
本明細書で描写する図は例示である。本開示の趣旨から逸脱することなく、図または図に描写したステップ(または動作)に対する多くの変形形態があり得る。例えば、行為を異なる順序で実施することができるか、または行為を追加、削除、もしくは修正することができる。また、用語「連結される」は、2つの要素間に信号経路があることを表し、要素間に介在する要素/接続がない要素間の直接的な接続を意味しない。これらの変形形態の全てを本開示の一部であるものと考える。
以下の定義および省略形は、特許請求の範囲および本明細書の解釈に使用するためのものである。本明細書で使用するように、用語「備える(comprises)」、「備える(comprising)」、「含む(includes)」、「含む(including)」、「有する(has)」、「有する(having)」、「収める(contains)」、もしくは「収める(containing)」、またはこれらの他の任意の変形形態は、非排他的な包含を含むことを意図する。例えば、要素の列挙を含む構造、混合、処理、方法、物品、または装置は、必ずしもこれらの要素のみに限定されず、明確に挙げられていないかまたはこのような構成物、混合、処理、方法、物品、もしくは装置に固有の、他の要素を含むことができる。
追加として、用語「例示的」が、「例、事例、または例証として機能すること」を意味するために本明細書で使用される。「例示的」として本明細書で説明する任意の実施形態または設計は、他の実施形態または設計に対して好ましいまたは有利であると必ずしも解釈するべきではない。用語「少なくとも1つ」および「1つまたは複数」は、1以上の任意の整数、すなわち、1、2、3、4、等を含むものと考える。用語「複数」は、2以上の任意の整数、すなわち2、3、4、5、等を含むものと考える。用語「接続」は、間接的な「接続」と直接的な「接続」との両方を含むことができる。
用語「約(about)」、「かなり(substantially)」、「およそ(approximately)」、およびこれらの変形形態は、本出願の出願時に利用可能な機器に基づく特定の量の測定値に関連付けられた誤差の程度を含むことを意図する。例えば、「約(about)」は、所与の値の±8%もしくは5%または2%の範囲を含むことができる。
本発明は、任意のインテグレーションの技術的詳細レベルにおけるシステム、方法、またはコンピュータ・プログラム製品、あるいはその組合せであってよい。コンピュータ・プログラム製品は、本発明の態様をプロセッサに実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読ストレージ媒体(または複数の媒体)を含むことができる。
コンピュータ可読ストレージ媒体は、命令実行デバイスによる使用のための命令を保持し、格納することができる有形デバイスとすることが可能である。コンピュータ可読ストレージ媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイス、または前述の任意の適切な組合せであってもよいがこれらに限定されない。コンピュータ可読ストレージ媒体のより具体的な例の完全に網羅されていないリストは、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ(RAM)、リード・オンリ・メモリ(ROM)、消去可能プログラマブル・リード・オンリ・メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク・リード・オンリ・メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピー・ディスク、命令が記録されたパンチ・カードまたは溝内***構造などの機械的にエンコードされたデバイス、および前述の任意の適切な組合せを含む。コンピュータ可読ストレージ媒体は、本明細書で使用する際には、電波もしくは他の自由に伝搬する電磁波、導波路もしくは他の伝送媒体を通じて伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、またはワイヤを通じて伝送される電気信号などの、本質的に一時的な信号であると解釈するべきではない。
本明細書で説明するコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれの計算/処理デバイスに、または、例えば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、もしくはワイヤレス・ネットワーク、あるいはその組合せなどの、ネットワークを介して外部コンピュータもしくは外部ストレージ・デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組合せを備えることができる。各計算/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、コンピュータ可読プログラム命令をネットワークから受け取り、それぞれの計算/処理デバイス内のコンピュータ可読ストレージ媒体に格納するためにコンピュータ可読プログラム命令を転送する。
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、インストラクション・セット・アーキテクチャ(ISA)命令、機械語命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路機器のための構成データ、または、Smalltalk、C++、もしくは同様のものなどのオブジェクト指向プログラミング言語、および「C」プログラミング言語もしくは類似のプログラミング言語などの手続き型プログラミング言語を含む1つもしくは複数のプログラミング言語の任意の組合せで書かれたソース・コードもしくはオブジェクト・コードであってもよい。コンピュータ可読プログラム命令は、スタンド・アロンのソフトウェア・パッケージとして、全面的にユーザのコンピュータ上で、または部分的にユーザのコンピュータ上で実行することができるか、部分的にユーザのコンピュータ上および部分的にリモート・コンピュータ上で、または全面的にリモート・コンピュータもしくはサーバ上で実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含むネットワークの任意のタイプを通じてユーザのコンピュータに接続することができるか、または、接続は、(例えば、インターネット・サービス・プロバイダを使用してインターネットを通じて)外部コンピュータに対して行うことができる。いくつかの実施形態では、例えば、プログラマブル論理回路機器、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路機器は、本発明の態様を実施するために、コンピュータ可読プログラム命令の状態情報を利用して、電子回路機器を個別化することによって、コンピュータ可読プログラム命令を実行することができる。
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品の流れ図またはブロック図あるいはその両方を参照しながら本明細書で説明する。流れ図またはブロック図あるいはその両方の各ブロック、および流れ図またはブロック図あるいはその両方におけるブロックの組合せは、コンピュータ可読プログラム命令によって実行できることが理解されよう。
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能データ処理装置のプロセッサによって実行する命令が、流れ図またはブロック図あるいはその両方の1つまたは複数のブロックで指定した機能/行為を実行するための手段を作り出すべく、機械を生み出すために、汎用コンピュータ、専用コンピュータ、または他のプログラム可能データ処理装置のプロセッサに提供することができる。また、これらのコンピュータ可読プログラム命令は、流れ図またはブロック図あるいはその両方の1つまたは複数のブロックで指定した機能/行為の態様を実行する命令を含む製品を、命令を格納したコンピュータ可読ストレージ媒体が備えるべく、コンピュータ可読ストレージ媒体に格納することができ、特定の手法で機能するように、コンピュータ、プログラム可能データ処理装置、または他のデバイス、あるいはその組合せに指図することができる。
また、コンピュータ可読プログラム命令は、コンピュータ、他のプログラム可能装置、または他のデバイス上で実行する命令が、流れ図またはブロック図あるいはその両方の1つまたは複数のブロックで指定した機能/行為を実行するべく、コンピュータ、他のプログラム可能装置、または他のデバイス上で一連の動作ステップを実施して、コンピュータ実行処理を生み出すために、コンピュータ、他のプログラム可能データ処理装置、または他のデバイス上にロードすることができる。
図中の流れ図およびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能、および動作を示す。この点に関して、流れ図またはブロック図中の各ブロックは、指定の論理機能を実現するための1つまたは複数の実行可能命令を含む命令のモジュール、セグメント、または一部を表すことができる。いくつかの代替実装形態では、ブロックに記した機能は、図に記したのとは異なる順序で発生させることができる。例えば、連続して示した2つのブロックは、実際には、実質的に同時に実行することができるか、または、ブロックは、時には、含まれる機能に応じて逆の順序で実行することができる。ブロック図または流れ図あるいはその両方の各ブロック、および、ブロック図または流れ図あるいはその両方におけるブロックの組合せは、指定の機能もしくは行為を行うか、または、専用ハードウェアとコンピュータ命令の組合せを実行する専用ハードウェア・ベースのシステムによって実現できることにも留意されたい。
本発明の様々な実施形態の説明は、例証のために提示してきたが、網羅的であること、または、開示の実施形態に限定することを意図するものではない。説明した実施形態の範囲および趣旨から逸脱することなく、多くの変更形態および変形形態が当業者には明らかになろう。本明細書で使用した専門用語は、実施形態の原理、実用的な用途、もしくは市場に見られる技術を超える技術的改善を最もよく説明するように、または、本明細書で説明する実施形態を当業者が理解できるように選んだ。
10 クラウド・コンピューティング・ノード
50 クラウド・コンピューティング環境
54A パーソナル・デジタル・アシスタント(PDA)、セルラー電話、コンピューティング・デバイス
54B デスクトップ・コンピュータ、コンピューティング・デバイス
54C ラップトップ・コンピュータ、コンピューティング・デバイス
54N 自動車コンピュータ・システム、コンピューティング・デバイス
60 ハードウェアおよびソフトウェア、ハードウェアおよびソフトウェア層
61 メインフレーム
62 RISCアーキテクチャ・ベースのサーバ
63 サーバ
64 ブレード・サーバ
65 ストレージ・デバイス
66 ネットワークおよびネットワーキング構成要素
67 ネットワーク・アプリケーション・サーバ・ソフトウェア
68 データベース・ソフトウェア
70 仮想化、仮想化層
71 仮想サーバ
72 仮想ストレージ
73 仮想ネットワーク
74 仮想アプリケーションおよびオペレーティング・システム
75 仮想クライアント
80 管理、管理層
81 リソース提供
82 計量および価格設定
83 ユーザ・ポータル
84 サービス・レベル管理
85 サービス・レベル契約(SLA)計画立案およびフルフィルメント
90 ワークロード、ワークロード層
91 マッピングおよびナビゲーション
92 ソフトウェア開発およびライフサイクル管理
93 仮想クラスルーム教育配信
94 データ分析処理
95 トランザクション処理
96 データ暗号化/復号
100 ブロック図
105 データ・バッファ
110 DMAエンジン
115 読込みチャネル
120 制御ポート
125 制御ポート
130 読込みチャネル
135 DMAエンジン
140 データ・バッファ
145 制御チャネル
150 ターゲット・システム
155 ターゲット・メモリ
160 書込みチャネル
165 ホスト・メモリ
170 ホスト・システム
175 中央処理装置(CPU)
180 データ・クリア制御チャネル
185 CPU
190 書込みチャネル
500 コンピュータ・システム
501 汎用コンピュータ、メインフレーム
505 プロセッサ
510 メモリ
515 メモリ・コントローラ
520 ストレージ
525 ディスプレイ・コントローラ
530 ディスプレイ
535 ローカル入出力コントローラ、入出力コントローラ
540 入出力(I/O)デバイス、出力デバイス
545 入出力(I/O)デバイス、出力デバイス
550 キーボード
555 マウス
560 ネットワーク・インターフェース
565 ネットワーク

Claims (16)

  1. ソース・システムのソース・メモリからターゲット・システムのターゲット・メモリにデータを移動させるためのリクエストをリクエスト・システムから受け取ることであって、前記受け取ることが、前記ソース・メモリおよび前記ターゲット・メモリにアクセスするように構成された第1のハードウェア・エンジンにおけるものである、前記受け取ることと、
    前記ソース・メモリから前記ターゲット・メモリに前記データを移動させるための前記リクエストを受け取ることに応答して、前記第1のハードウェア・エンジンによって、
    前記ソース・メモリから前記データを読み込むこと、
    前記ターゲット・メモリに前記データを書き込むこと、および
    前記読込みが完了したことに応答して、前記ソース・メモリにアクセスするように構成された第2のハードウェア・エンジンにデータ・クリア・リクエストを伝送することであって、前記データ・クリア・リクエストが、クリアするべき前記ソース・メモリ内の前記データの位置を指定する、前記伝送すること
    を実施することと
    を含む方法。
  2. 前記第1のハードウェア・エンジンにおいて、前記データ・クリア・リクエストが完了したことを指示する前記第2のハードウェア・エンジンからの第1の通知を受け取ることと、
    前記第1の通知を受け取ることに応答して、前記リクエスト・システムに第2の通知を伝送することであって、前記第2の通知が、前記ソース・メモリから前記ターゲット・メモリにデータを移動させるための前記リクエストが完了したことを指示する、前記伝送することと
    をさらに含む、請求項1に記載の方法。
  3. 前記リクエストが、ホスト・システムの中央処理装置(CPU)から受け取られる、請求項1または2に記載の方法。
  4. 前記第1のハードウェア・エンジンが、第1のデータ移動支援(DMA)エンジンであり、前記第2のハードウェア・エンジンが、第2のDMAエンジン上で前記データ・クリア・リクエストを開始するために制御チャネルを介して前記第1のDMAエンジンに連結された前記第2のDMAエンジンである、請求項1~3のいずれか1項に記載の方法。
  5. 前記ソース・メモリから前記ターゲット・メモリにデータを移動させるための前記リクエストが、記述子を含み、前記記述子が、前記ソース・メモリ内の読込みアドレス、前記ターゲット・メモリ内の書込みアドレス、および前記データの長さを含む、請求項4に記載の方法。
  6. 前記第1のDMAエンジンによって、前記データ・クリア・リクエストを生成することをさらに含み、前記生成することが、前記ターゲット・メモリ内の前記書込みアドレスを除去し、前記ソース・メモリ内の前記読込みアドレスを前記ソース・メモリ内の書込みアドレスに変更することによって前記記述子を修正することを含む、請求項5に記載の方法。
  7. 前記データ・クリア・リクエストが、前記第2のハードウェア・エンジンによって実行され、前記実行することが、スタティック・ビットおよびランダム・ビットの一方または両方で前記ソース・メモリ内の前記データを上書きすることを含む、請求項1に記載の方法。
  8. コンピュータ可読命令を実行するための1つまたは複数のプロセッサを備えるシステムであって、前記コンピュータ可読命令が、
    ソース・システムのソース・メモリからターゲット・システムのターゲット・メモリにデータを移動させるためのリクエストをリクエスト・システムから受け取ることであって、前記受け取ることが、前記ソース・メモリおよび前記ターゲット・メモリにアクセスするように構成された第1のハードウェア・エンジンにおけるものである、前記受け取ることと、
    前記ソース・メモリから前記ターゲット・メモリに前記データを移動させるための前記リクエストを受け取ることに応答して、前記第1のハードウェア・エンジンによって、
    前記ソース・メモリから前記データを読み込むこと、
    前記ターゲット・メモリに前記データを書き込むこと、および
    前記読込みが完了したことに応答して、前記ソース・メモリにアクセスするように構成された第2のハードウェア・エンジンにデータ・クリア・リクエストを伝送することであって、前記データ・クリア・リクエストが、クリアするべき前記ソース・メモリ内の前記データの位置を指定する、前記伝送すること
    を実施することと
    を含む動作を実施するように前記1つまたは複数のプロセッサを制御する、システム。
  9. 前記動作が、
    前記第1のハードウェア・エンジンにおいて、前記データ・クリア・リクエストが完了したことを指示する前記第2のハードウェア・エンジンからの第1の通知を受け取ることと、
    前記第1の通知を受け取ることに応答して、前記リクエスト・システムに第2の通知を伝送することであって、前記第2の通知が、前記ソース・メモリから前記ターゲット・メモリにデータを移動させるための前記リクエストが完了したことを指示する、前記伝送することと
    をさらに含む、請求項8に記載のシステム。
  10. 前記リクエストが、ホスト・システムの中央処理装置(CPU)から受け取られる、請求項8または9に記載のシステム。
  11. 前記第1のハードウェア・エンジンが、第1のデータ移動支援(DMA)エンジンであり、前記第2のハードウェア・エンジンが、第2のDMAエンジン上で前記データ・クリア・リクエストを開始するために制御チャネルを介して前記第1のDMAエンジンに連結された前記第2のDMAエンジンである、請求項8~10のいずれか1項に記載のシステム。
  12. 前記ソース・メモリから前記ターゲット・メモリにデータを移動させるための前記リクエストが、記述子を含み、前記記述子が、前記ソース・メモリ内の読込みアドレス、前記ターゲット・メモリ内の書込みアドレス、および前記データの長さを含む、請求項11に記載のシステム。
  13. 前記動作が、前記第1のDMAエンジンによって、前記データ・クリア・リクエストを生成することをさらに含み、前記生成することが、前記ターゲット・メモリ内の前記書込みアドレスを除去し、前記ソース・メモリ内の前記読込みアドレスを前記ソース・メモリ内の書込みアドレスに変更することによって前記記述子を修正することを含む、請求項12に記載のシステム。
  14. 前記データ・クリア・リクエストが、前記第2のハードウェア・エンジンによって実行され、前記実行することが、スタティック・ビットおよびランダム・ビットの一方または両方で前記ソース・メモリ内の前記データを上書きすることを含む、請求項8に記載のシステム。
  15. 請求項1~7のいずれか1項に記載されたコンピュータ実装方法を、コンピュータに対して実行させるためのコンピュータ・プログラム。
  16. 請求項15に記載のコンピュータ・プログラムを記録した、コンピュータ可読な記録媒体。
JP2021195188A 2020-12-04 2021-12-01 セルフ・クリアリング・データ移動支援の方法、システム、およびコンピュータ・プログラム、およびコンピュータ可読な記録媒体 Pending JP2022089783A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/111,570 US11288001B1 (en) 2020-12-04 2020-12-04 Self-clearing data move assist (DMA) engine
US17/111,570 2020-12-04

Publications (1)

Publication Number Publication Date
JP2022089783A true JP2022089783A (ja) 2022-06-16

Family

ID=79164001

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021195188A Pending JP2022089783A (ja) 2020-12-04 2021-12-01 セルフ・クリアリング・データ移動支援の方法、システム、およびコンピュータ・プログラム、およびコンピュータ可読な記録媒体

Country Status (5)

Country Link
US (1) US11288001B1 (ja)
JP (1) JP2022089783A (ja)
CN (1) CN114594905A (ja)
DE (1) DE102021130941A1 (ja)
GB (1) GB2604696B (ja)

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59189433A (ja) * 1983-04-12 1984-10-27 Fujitsu Kiden Ltd ダイレクトメモリアクセスによるデ−タ消去方式
JPH02105242A (ja) * 1988-10-14 1990-04-17 Nec Corp メモリクリア回路
JPH0516452A (ja) * 1991-07-11 1993-01-26 Mita Ind Co Ltd プリンタ
JPH0554658A (ja) * 1991-08-28 1993-03-05 Nec Corp 記憶装置
JP2001084119A (ja) * 1999-09-10 2001-03-30 Canon Inc プリンタ制御装置および方法
JP2001225515A (ja) * 2000-02-18 2001-08-21 Nec Corp 印刷装置およびそのメモリクリア方法
JP2003337668A (ja) * 2002-05-21 2003-11-28 Ricoh Co Ltd 画像形成装置及びそのメモリクリア方法
JP2004258935A (ja) * 2003-02-26 2004-09-16 Matsushita Electric Ind Co Ltd 半導体装置
CN1332319C (zh) * 2003-12-22 2007-08-15 松下电器产业株式会社 存储***控制方法
JP2006178550A (ja) * 2004-12-21 2006-07-06 Nec Corp 二重化同期システム、及び二重化同期システムの動作方法
CN100349150C (zh) * 2005-06-06 2007-11-14 北京中星微电子有限公司 通过直接存储器访问控制器传输数据的***及方法
WO2008100495A1 (en) * 2007-02-13 2008-08-21 Gainspan Corporation Method and system of fast clearing of memory using a built-in self-test circuit
US7934113B2 (en) 2007-05-21 2011-04-26 Texas Instruments Incorporated Self-clearing asynchronous interrupt edge detect latching register
KR101016036B1 (ko) * 2010-03-30 2011-02-23 엘아이지넥스원 주식회사 메모리 관리 모듈 및 메모리 관리 방법
US10120579B1 (en) 2012-08-08 2018-11-06 Amazon Technologies, Inc. Data storage management for sequentially written media
US9715464B2 (en) * 2015-03-27 2017-07-25 Microsoft Technology Licensing, Llc Direct memory access descriptor processing
CN106844245B (zh) * 2017-02-17 2019-11-12 北京腾凌科技有限公司 数据传输方法及装置
US10783240B2 (en) * 2017-09-29 2020-09-22 Stmicroelectronics, Inc. Secure environment in a non-secure microcontroller
US10769074B2 (en) 2017-11-09 2020-09-08 Microsoft Technology Licensing, Llc Computer memory content movement

Also Published As

Publication number Publication date
US11288001B1 (en) 2022-03-29
GB202116713D0 (en) 2022-01-05
GB2604696A (en) 2022-09-14
CN114594905A (zh) 2022-06-07
DE102021130941A1 (de) 2022-06-09
GB2604696B (en) 2023-04-26

Similar Documents

Publication Publication Date Title
US11061709B2 (en) Storage management for deployment of virtual machine
US9600308B2 (en) Virtual machine monitoring in cloud infrastructures
US8484639B2 (en) Fine-grained cloud management control using nested virtualization
US9665154B2 (en) Subsystem-level power management in a multi-node virtual machine environment
US10901749B2 (en) Running a kernel-dependent application in a container
US11327809B2 (en) Virtual machine memory removal increment selection
US11150810B2 (en) I/O data transmission in a hyper-converged storage system
JP2014096136A (ja) モビリティ動作リソース割り当てのための方法、システム、コンピュータ・プログラム
TWI734379B (zh) 用於使用初始程式載入機制啟動安全客體之電腦實施方法、電腦系統及電腦程式產品
AU2020426828B2 (en) Reserving one or more security modules for secure guest
US10664386B2 (en) Remotely debugging an operating system via messages including a list back-trace of applications that disable hardware interrupts
US10936330B2 (en) Instantaneous boot of virtual machine instances via remote direct memory access
US9164805B2 (en) Managing workload distribution to reduce acoustic levels
JP2022522849A (ja) セキュア仮想マシンのディスパッチ
US10719342B2 (en) Provisioning based on workload displacement
JP2022089783A (ja) セルフ・クリアリング・データ移動支援の方法、システム、およびコンピュータ・プログラム、およびコンピュータ可読な記録媒体
JP7391979B2 (ja) キー機能制御に基づくデータ移動および記憶キー設定
US11455264B2 (en) Minimizing delay while migrating direct memory access (DMA) mapped pages
WO2022262628A1 (en) Live migration and redundancy for virtualized storage
JP7479378B2 (ja) オーバーフロー例外の命令割込み抑制
US20230086195A1 (en) Efficient and extensive function groups with multi-instance function support for cloud based processing
US20220179754A1 (en) Cloning storage volumes from backup

Legal Events

Date Code Title Description
RD16 Notification of change of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7436

Effective date: 20220418

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20220419

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20220518

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240516