JP5068108B2 - メモリ・アドレスの変換およびピン止めのための方法およびシステム - Google Patents

メモリ・アドレスの変換およびピン止めのための方法およびシステム Download PDF

Info

Publication number
JP5068108B2
JP5068108B2 JP2007166028A JP2007166028A JP5068108B2 JP 5068108 B2 JP5068108 B2 JP 5068108B2 JP 2007166028 A JP2007166028 A JP 2007166028A JP 2007166028 A JP2007166028 A JP 2007166028A JP 5068108 B2 JP5068108 B2 JP 5068108B2
Authority
JP
Japan
Prior art keywords
consumer
memory
mapping
address space
dma request
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
JP2007166028A
Other languages
English (en)
Other versions
JP2008009982A (ja
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 JP2008009982A publication Critical patent/JP2008009982A/ja
Application granted granted Critical
Publication of JP5068108B2 publication Critical patent/JP5068108B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Bus Control (AREA)

Description

本発明は一般に、コンピュータおよびプロセッサ・アーキテクチャの分野に関する。とりわけ、本発明は、メモリ・アドレスの変換およびピン止め(pinning)のための方法およびシステムに関する。
関連出願の相互参照
本発明は、2006年1月11日出願の「A METHOD AND SYSTEM FOR MEMORY PROTECTION AND SECURITY USING CREDENTIALS」という名称の米国特許出願第11/333066号、および2006年1月11日出願の「A METHOD AND SYSTEM FOR PROTECTION AND SECURITY of IO DEVICES USING CREDENTIALS」という名称の米国特許出願第11/333716号に関連する。
デスクトップからサーバまで、現代のほとんどのパーソナル・コンピュータ(PC)システムのアーキテクチャが概念的および概略的に図1に示されており、次に、この図について説明する。
PCシステム10は、通常、1つまたは複数の処理ユニット12内に組み込むか、またはそれらとは別にすることが可能な、メモリ20を含む。処理ユニット12は、通常、1つまたは複数のI/Oバス16、たとえば周辺構成要素相互接続(PCI)バスを介して、I/Oデバイス14[1]〜14[i]と結合される。オプションで、処理ユニット12とI/Oデバイス14[1]〜14[i]との間の接続をより迅速にするために、PCシステム10は、処理ユニット12と通信し、メモリ20との対話およびI/Oバス16を制御する、たとえばノース・ブリッジ・ユニット18などの1つまたは複数の構成要素を含むこともできる。
通常、処理ユニット12は、通常は、メモリ管理ユニット(MMU)24によって物理アドレスに変換される、仮想メモリ・アドレス・スペース内の仮想メモリ・アドレスを参照する、中央処理ユニット(CPU)26を含む。
通常、I/Oデバイスが直接メモリ・アクセス(DMA)オペレーションを使用してメモリ20からデータの書き込みまたは読み取りを行う場合、そのデータは物理ページ・フレーム内に配置され、それ自体の仮想メモリ・スペースを有するI/Oを使用するハイパーバイザ、OS、またはプロセスなどのコンシューマは、このデータを使用することになる。コンシューマは、通常、MMU 24によって物理アドレスに変換される仮想アドレスを介してデータにアクセスする。
仮想アドレス・スペースから物理アドレス・スペースへの変換は、DMAオペレーションが進行中である限り安定状態を維持するために必要であり、たとえば、DMAが進行中である限り他の物理ページを参照することはできない。この要件に違反すると、データの破損が生じる可能性がある。以下、この要件をメモリ・ピン止めと呼ぶ。
メモリ・ピン止めの既知の方法は、通常、物理アドレスをI/Oデバイスへ送る。これらの方法は、通常、システム10の上位層、たとえばOSまたはハイパーバイザ(または、図1には示されていない、システム40のオペレーティング・システムを管理することおよびコンシューマあたりのI/Oメモリ・スペースを割り振ることが可能な、他の構成要素)での仮想アドレスから物理アドレスへの変換、および変換のピン止めを含む。結果として、各DMAオペレーションに上位層が関与する必要があるため、I/Oパスはより長くより低速になる。別の方法として、必要なすべての物理メモリを事前に登録することによって、変換はコンシューマのメモリ・スペースであらかじめ実行される。
2006年1月11日出願の「A METHOD AND SYSTEM FOR MEMORY PROTECTION AND SECURITY USING CREDENTIALS」という名称の米国特許出願第11/333066号
この手法の欠点は、貴重なリソースである物理メモリの「無駄遣い」であり、たとえば、ページ・フレームが所与のプロセスに対してピン止めされている限りは、たとえそのページ・フレームとの間でいかなるI/Oオペレーションも実行されていない場合であっても、他のプロセスはこれを使用することができない。
本発明の第1の態様によれば、集中メモリ・アドレス変換およびピン止めのためのコンピュータ実施方法が提供される。この方法は、メモリ・アドレス・スペース識別子を直接メモリ・アクセス(DMA)要求に付加するステップを含み、DMA要求はコンシューマにより、所与のアドレス・スペース内の仮想アドレスを使用して送信される。この方法はさらに、DMA要求で使用される所与のアドレス・スペース内の仮想アドレスの、物理ページ・フレームへの変換を見つけるために、メモリ・アドレス・スペース識別子を探索するステップも含む。物理ページ・フレームが見つかったという条件で、当該所与のアドレス・スペース内の当該仮想アドレスのマップ解除オペレーションを防ぐために、DMA要求が進行中である限りは、物理ページ・フレームをピン止めし、さらに、DMA要求を完了するものであって、付加、探索、およびピン止めのステップは、ホスト・ゲートウェイによって中央制御される。
本発明の第2の態様によれば、仮想メモリ・アドレス・スペース内の仮想アドレスのマップ解除オペレーションを送るための、コンピュータ実施方法が提供される。この方法は、仮想アドレスがマップ解除するよう意図されることをマークするステップと、仮想アドレスがマップ解除可能であるかどうかを判定するために、仮想アドレス・スペースのアドレス・スペース識別子および仮想アドレスを送信するステップと、仮想アドレスがマップ解除であるかどうかを判定するステップとを含む。
本発明の第3の態様によれば、集中メモリ・アドレス変換およびピン止めのためのシステムが提供される。このシステムは、メモリ・アドレス・スペース識別子を直接メモリ・アクセス(DMA)要求に付加するように配置構成されたホスト・ゲートウェイを含み、DMA要求はコンシューマによって、および仮想アドレス・スペースを使用して送信される。システムは、DMA要求で使用される仮想アドレス・スペースの、物理ページ・フレームへの変換を見つけるために、メモリ・アドレス・スペース識別子を探索するように配置構成された第2の構成要素と、物理ページ・フレームのマップ解除オペレーションを防ぐために、DMA要求が進行中である限りは、物理ページ・フレームをピン止めするように配置構成された第3の構成要素とをさらに含み、この第2および第3の構成要素は、ホスト・ゲートウェイによって中央制御される。
本発明の第4の態様によれば、コンピュータによって読み取られた場合、コンピュータに集中メモリ・アドレス変換およびピン止めのための方法を実行させる、コンピュータ・プログラム命令が格納された、コンピュータ読み取り可能媒体を含む、コンピュータ・ソフトウェア製品が提供される。この方法は、メモリ・アドレス・スペース識別子を直接メモリ・アクセス(DMA)要求に付加するステップを含み、DMA要求はコンシューマによって、および所与のアドレス・スペース内の仮想アドレスを使用して、送信される。この方法は、DMA要求で使用される所与のアドレス・スペース内の仮想アドレスの、物理ページ・フレームへの変換を見つけるために、メモリ・アドレス・スペース識別子を探索するステップをさらに含む。物理ページ・フレームが見つかったという条件で、当該所与のアドレス・スペース内の当該仮想アドレスのマップ解除オペレーションを防ぐために、DMA要求が進行中である限りは、物理ページ・フレームをピン止めし、DMA要求を完了するものであって、付加、探索、およびピン止めのステップは、ホスト・ゲートウェイによって中央制御される。
次に、本発明の諸実施形態について、添付の図面を参照しながら単なる例として説明する。
システムの概要
以下の詳細な説明では、本発明を完全に理解するために、多数の特定の細部について説明する。しかしながら、当業者であれば、本発明がこれらの特定の細部なしに実施可能であることを理解されよう。他のインスタンスでは、本発明をわかりにくくしないために、良く知られた方法、手順、および構成要素については詳細に説明しない。
次に、本発明の実施形態に従ったコンピュータ・システム40を示す概略ブロック図である、図2を参照する。システム40は、以下で詳細に説明するように、メモリのピン止めおよび変換を利用することができる。
システム40では、ハイパーバイザ、OSまたは、自体の仮想メモリ・スペース(図示せず)を有するI/Oが、総称的に「コンシューマ」と呼ばれ、メモリ50と通信し、1つまたは複数のI/Oデバイス14[1]〜14[i]からメモリ50へ直接メモリ・アクセス(DMA)を要求することができる。DMA要求は、たとえば、コンシューマのID、コンシューマのアドレス・スペース内の仮想アドレス(仮想アドレスは、ページおよびそのページ内のオフセットの両方を供給することができる)、および要求の長さを含むことができる。DMA要求は、DMA要求にアドレス・スペース識別子を付加することが可能なホスト・ゲートウェイ(HG)42に送信可能であり、アドレス・スペース識別子は開始コンシューマのそれである。
図2に示されるように、HG 42は、たとえば周辺構成要素相互接続(PCI)バスなどの1つまたは複数のI/Oバス16、ならびに、メモリ50との対話およびI/Oバス16を制御することができる1つまたは複数のノース・ブリッジ18に、結合することができる。
DMA要求は、コンシューマのアドレス・スペース、仮想アドレス、オフセット、および前述の長さを含むことが可能な形で、HG 42からデバイス・コントローラ(DC)46に送信することができる。その後DC 46は、DMA要求をI/Oデバイス14[1]〜14[i]へ送信することができる。DMA要求が実行された後、DC 46は、同じ形(アドレス・スペース、仮想アドレス、オフセット、長さ)で、I/Oオペレーションに関与したバッファをHG 42に送信することができる。その後HG 42は、実際のデータをメモリ50内へ配置することができる。
本発明のいくつかの諸実施形態によれば、HG 42は(図2に示されるように)処理ユニット12から分離することができる。この構成では、HG 42は第1にアドレス変換を実行し、その後、その変換ならびにDMA要求およびI/Oオペレーションに関与したページをピン止めし、次に、実際のデータ配置を実行することができる。
本発明のいくつかの他の諸実施形態によれば、HG 42は処理ユニット12、とりわけMMU 24に統合することが可能である。この構成(図示せず)では、HG 42は、メモリ50にアクセスする場合、仮想アドレスを使用することが可能であり、MMU 24は変換を制御および実行し、I/Oミス割り込み(IO miss interrupt)のケースなどを処理することが可能である。
ピン止めおよび変換オペレーション
次に、本発明の諸実施形態に従った、メモリのピン止めおよび変換のための方法を示す概略流れ図である、図3を参照する。この方法の以下の説明では、メモリのピン止めおよび変換の責務を負うエンティティ、たとえばHG 42は、処理ユニット12から分離している。この構成によれば、HG 42は、メモリ・アドレス・スペース識別子を着信するDMA要求に付加する(ステップ300)責務を負うことができる。その後HG 42は、着信するDMA要求を受信すると必ず、たとえば、DMA要求に付加されたアドレス・スペース識別子によって識別されるアドレス・スペース、または他の事前に定義されたアドレス・スペース内で、バッファの仮想アドレスを探索することによって、要求内で参照されたバッファに関する変換が存在するかどうかをチェックする(ステップ302)。すべての変換が存在し、有効である場合、HG 42は(ホスト・ページ・テーブルまたは何らかの他の変換情報を使用して)、仮想アドレスを対応する物理ページ・フレームに変換する(ステップ304)ことができる。
変換が存在しない場合、HG 42は、変換を確立するために、システム40の上位層、たとえばハイパーバイザまたはOSへ、「I/Oミス割り込み」呼び出しを発生させる(ステップ306)ことができる。ハイパーバイザは、そのI/Oミス割り込みが、そのOSの下で実行中のアプリケーションによって実行されたI/Oオペレーションによって発生した場合、このI/Oミス割り込みを、その下で実行中のOSに反映させることができる。
変換が見つかった場合、DMAオペレーションおよびメモリ内へのデータの配置が進行中である限りは、たとえばそれぞれのページ・フレームなどの物理ページをピン止めする(ステップ308)ことが可能であり、その結果、データの配置が進行中の間、上位層はそれらをマップ解除しないことになる。
本発明のこの実施形態によれば、DMAオペレーションは、上位層の関与または制御なしに(前述の特定のケースを除く)、コンシューマ、HG 42、DC 46、およびI/Oデバイスの間で実行されるため、HG 42は、DMAオペレーションに関与している間、上位層がページをマップ解除するのを防ぐ必要があり、上位層は、ページをマップ解除する前にHG 42でマップ解除プロトコルを実行することができる。このように実行するために、HG 42は、どのページが現在DMAオペレーションおよびデータの配置に関与しているか、したがって上位層によってマップ解除できないかをマークし、DMA「読み取り」オペレーションに関与していたどのページがダーティ(dirty)であるかを上位層の知識なしにマークすることができる。これらのマーキングは、たとえば各タイプのマークに関するダーティ・ビットを使用することによって達成可能である。
DMAオペレーションが終了すると、HG 42は、たとえばダーティ・ビットを更新することによって、ページのマップ解除が可能な上位層を更新する(ステップ310)ことができる。
HG 42がMMU 24と統合されている構成では、ピン止めおよび変換オペレーションは、コンシューマのCPUメモリ・アクセスに対して実行されたものと同じ方法で、MMUを介して実行可能であることに留意されたい。この方法では、HG 42は、着信するDMA要求にアドレス・スペース識別子を付加する責務を負うことができる。MMU 24も、自動的にページ・テーブル・エントリのダーティ化を担当することができる。
データ・トランザクション
図2および3に関連して、次に、本発明の実施形態に従った、データ・トランザクションの方法を示す例示的流れ図である、図4を参照する。
コンシューマは、HG 42に対してDMA要求を開始する(ステップ400)ことができる。HG 42は、コンシューマのアドレス・スペース内の仮想アドレスである、コンシューマIDを受け取ることができる(仮想アドレスは、ページとそのページ内のオフセットの両方、およびDMA要求の長さを供給することができる)。
コンシューマは、DMA要求が開始された旨を上位層に通知することなく、HG 42に対して直接DMA要求を開始できることに留意されたい。
HG 42は、同じ情報を備えたDMA要求を、DC 46に渡す(ステップ402)に渡す(ステップ402)ことができる。この情報は、本出願の譲受人に譲渡された、2006年1月11日出願の「A METHOD AND SYSTEM FOR MEMORY PROTECTION AND SECURITY USING CREDENTIALS」という名称の米国特許出願第11/333066号に記載されたように、その保全性を維持するために保護することができる。
何らかの時点で、DMA要求がI/Oデバイスによって完了された場合、DC 46は、DMAオペレーションをコンシューマのメモリにあるその宛先へと完了するために必要なバッファ情報を含む、I/Oオペレーションを、HG 42に送信する(ステップ404)ことができる。たとえば、各バッファについて、コンシューマの仮想アドレス・スペース内のバッファのアドレス、コンシューマID(その後アドレス・スペースIDに変換される)、バッファの長さなどを含むことができる。オプションで、バッファを保護する証明書を含むことなどもできる。
HG 42は、I/Oオペレーションによって提供されたアドレスの妥当性をチェックし、有効であれば、HG 42は、DMA要求によるアクセスに関して要求されたアドレスを、コンシューマIDからアドレス・スペースIDに変換し、その後、前述のようにアドレス・スペースおよび仮想アドレスから物理ページ・フレームに変換する(ステップ406)ことができる。
変換が見つかった場合、HG 42は、DMAオペレーションを進行させ、特定のアドレス・スペース内の特定の仮想アドレスに対してデータ配置オペレーションが実行される旨をマークする(ステップ408)ことができる。変換が見つからない場合、HG 42は、メモリ50内のこの特定のアドレス・スペースについて、ページ・テーブルをチェックする(ステップ410)ことができる。ページ・テーブルはメモリ50内に配置可能であるが、処理ユニット12内にも配置可能であることに留意されたい。ページ・テーブルは、CPU 26と、CPU上で実行中の最高の特権が与えられたソフトウェア・アプリケーション、たとえばOSまたはハイパーバイザ、との間で共有される、データ構造である。
ページ・テーブル内で変換が見つかった場合、HG 42はこの変換を使用して、I/Oオペレーションを進行させ、前述のようにステップ408で、I/Oオペレーションが進行中である旨をマークする。ページ・テーブル内で変換が見つからない場合、HGはI/Oミス割り込みを発生させる(ステップ412)。以下で詳細に説明するように、たとえばハイパーバイザまたはOSなどの上位層によってI/Oミス割り込みが処理され、ページが更新される(ステップ414)と、HG 42はI/Oオペレーションを進行させるか、別の方法として、HG 42はI/Oオペレーションを打ち切るか、または上位層から受け取る応答に応じて任意の他のアクションを実行することができる。
I/Oミス割り込みという用語は、初期の割り込み、たとえば、DMA要求がコンシューマから受け取られ、DC 46に送られる前に、HG 42が必要な変換情報を見つけられない場合に発生する割り込み、または、遅延(late)割り込み、すなわちDC 46がI/Oオペレーションを送り、HG 42が必要な変換情報を見つけられない場合に発生する割り込み、あるいはその両方の組み合わせを含むことに留意されたい。どちらの場合も、HG 42は同じ変換およびピン止め・オペレーションを実行することができる。相違点は、変換がピン止めされたままである時間の長さである。変換が早く実行されるほど、ピン止めされたままである時間は長い。したがって、初期の割り込みによって確立される変換は、遅延割り込み後に確立される変換よりも、ピン止めされたままである時間は長くなる。
I/Oオペレーションが完了し、データ配置オペレーションが終了すると、HG 42は、DMAプロセスに使用された仮想アドレスがもはやデータの配置には使用されない旨をマークする(ステップ416)ことができる。
たとえば、メモリ50内での探索オペレーションの実行、I/Oミス割り込みの発生など、HG 42が実行するルーチン・オペレーションよりも多くのHG 42からのリソースを必要とするオペレーションを、HG 42が実行する必要がある場合、着信するDMA要求をペーシングする(pace)必要がある可能性があることに留意されたい。HG 42は、以下のいずれかを、望ましさの高い順から実行することができる。
HG 42は、DC 46に対してDMA要求を再試行するように要求することができる。その後、近い将来、DMA要求の再試行はDC 46の責務となり、DMA要求が再試行される場合に、HG 42はマッピングが存在することを保証するためのアクションを行うことができる。
別の方法として、HG 42はメモリ50内のフリー・ページの事前割振りリストへのDMA要求を実行し、その後、コンシューマが予測した箇所で必ずマッピングされて終わるように、マッピングを修正するために上位層に対してI/Oミス割り込みを発生させることができる。
あまり好ましくない代替形態は、DMA要求を失敗させ、最終的に再試行が生じることを予期することである。HG 42は、マッピングを持たない任意のDMA要求を失敗させることができるため、HG 42は、たとえばすべての他のDMA要求/I/Oオペレーションを失敗させることによって、すべてのI/Oバッファのピン止めをあらかじめ効果的に要求することができることに留意されたい。
他のオプションは、HG 42それ自体にDMA要求をバッファリングすることである。このオプションは最も費用のかかるオプションである。追加のオプションは、DC 46がHG 42に対して明示的なプリフェッチ要求を発行することである。こうした要求は、HG 42がそれに関する変換を確立すべき1つまたはいくつかのバッファ・アドレスを含むことができる。
前述のように、HG 42がI/Oミス割り込みを発生させるケースがある。ハイパーバイザがI/Oミス割り込みをHG 42から受信した場合、ハイパーバイザは所与のアドレスおよび所与のアドレス・スペース内の領域に対して有効なマッピングを確立することができる。アドレス・スペースがOSに属している場合、OSがマッピング自体を実行する。アドレス・スペースがOS内で実行中のアプリケーションに属している場合、これがI/Oミス割り込みをOSに反映させ、OSに処理させる。ページ・テーブルが更新されると、HG 42に通知され、DMAオペレーションを進行させることができる。
たとえば、現在実行中のプロセスに生じるなど、典型的には同期的な最先端のページ障害とは異なり、I/Oミス割り込みは本質的には非同期的であることに留意されたい。MMUによって管理されるページ障害は、通常、現在実行中のコードが物理アドレスへの有効な変換を持たない仮想アドレスを参照した場合に、MMUによって発生する。これらの変換はアドレス・スペースごとの変換であり、たとえば、異なるアドレス・スペース内の同じ仮想アドレスは、異なる物理アドレスを示すことができる。ページ障害が発生した場合、これは、現在実行中のコードのアドレス・スペースである、現在のアドレス・スペース内の変換に対して生じるものである。
ページ障害とは異なり、I/Oミス割り込みは、必ずしも現在実行中のコードおよびそのアドレス・スペースに関係しているとは限らない、I/Oアクティビティの結果として発生する可能性があることに留意されたい。
最先端のページ障害は、通常、特定の良く知られたアドレス・スペース内で実行中である、現在実行中のコードに代わって発生するものであるため、本質的には、そのアドレス・スペース内でページ障害を処理するべきであるページを処理する構成要素に渡す必要はない。前述のように、これはI/Oミス割り込みには当てはまらないため、HG 42は、たとえば、そのアドレス・スペース内でこのI/Oミス割り込みを処理するべきである、I/Oミス割り込みを処理するコンシューマ・コードと通信する必要が生じる場合がある。この追加情報は、アーキテクチャに応じて、I/Oミス割り込みスタック上、または何らかのアーキテクチャ特有のレジスタ内で、渡すことができる。
ページのマップ解除
前述のように、HG 42は、ページがDMAオペレーションに関与している間、たとえばデータが書き込まれている間は、上位層がそのページをマップ解除するのを防ぐ必要がある。したがって、たとえばハイパーバイザまたはOSがページのマップを解除する必要がある場合、マップ解除が意図されているページがI/Oオペレーションに関与している可能性があり、その場合はデータの破損を避けるためにマップ解除オペレーションを防ぐべきであるため、ページをマップ解除するという意図をHG 42に伝えなければならない。
次に、マップ解除オペレーションをHG 42に送るための方法を示す流れ図である、図5を参照する。通信エンティティは、マップ解除オペレーションを制御することが可能な、たとえばOSまたはハイパーバイザなどのシステムの上位層にあるものとすることができる。
はじめに、上位層のエンティティは、マップ解除するよう意図されるページ・テーブル・エンティティ(PTE)は存在しないが、そのPTEの物理フレームを他の目的では再使用しないものとしてマークする(ステップ500)ことができる。その後、上位層のエンティティは、マップ解除するよう意図されるページのアドレス・スペース識別子および仮想アドレスをHG 42に送信する(ステップ502)ことができる。HG 42は、このページがマップ解除可能であるかどうかをチェックする(ステップ504)ことが可能であり、たとえば、データの配置が進行中である場合、マップ解除オペレーションは実行できない。
HG 42が、ページはマップ解除可能であると応答した場合、上位層のエンティティはページをマップ解除し、応答の受信を確認する(ステップ506)ことができる。別の方法として、マップ解除が実行できない場合、上位層のエンティティは要求されたページのマップ解除の試行を打ち切る(ステップ508)か、または待機期間後にマップ解除を再試行する(508A)ことができる。
この2つのどちらを選択するかは、主に、マップ解除オペレーションが要求された本来の理由によって決定されることに留意されたい。たとえば、プロセスが終了したためである場合、可能性の高い決定は、これを再試行することである。メモリ不足のためである場合は、マップ解除オペレーションの打ち切りおよび何らかの他のページの試行の可能性が高い。
このマップ解除オペレーションを送るための方法は、I/O用に仮想アドレスを使用するコンシューマのアドレス・スペース内でPTEをマップ解除する場合に必要となる可能性があるが、それ以外の場合は必要でない可能性があることにも留意されたい。この場合、本出願の譲受人に譲渡された、2006年1月11日出願の「A METHOD AND SYSTEM FOR MEMORY PROTECTION AND SECURITY USING CREDENTIALS」という名称の米国特許出願第11/333066号に記載されたように、上位層、たとえばOSまたはハイパーバイザのそれぞれが、I/Oオペレーションが開始される前にコンシューマに証明書を認可する必要がある可能性がある。I/Oターゲットを所与のページ・テーブルに関する変換のサブセットに制約することによって、結果としてそれらの変換のみが、前述のマップ解除オペレーションを送るための方法を使用することになるような、追加の最適化も可能である。
スケーラブルな分散型システム
本発明のいくつかの実施形態によれば、提案されたシステムはスケーラブルであり、以下で詳細に説明するように、たとえば追加のコンシューマ、I/Oデバイス、ホスト・ゲートウェイ(HG)、およびデバイス・コントローラ(DC)を、システムに容易に追加することが可能である。
システムのスケーラビリティは、システムに追加することができるデバイスにとって重要な情報を分散させることによって達成可能である。本発明のいくつかの実施形態によれば、DC 46はその関連する変換制御エントリ(TCE)を維持することができる。TCEは、I/Oデバイスに結合された、ページ・エントリおよびそれらの対応する仮想アドレスのテーブルである。DC 46は、制御するすべてのI/Oデバイスに対して単一のTCEを維持するか、または、DC 46が制御する1つのI/Oデバイスに対して1つのTCEという、複数のTCEを維持することができる。たとえばそれ自体の仮想メモリ・スペースを有するI/Oを使用するハイパーバイザ、OS、またはプロセスなどの、コンシューマの観点からすれば、コンシューマのI/O変換テーブルは、分散型TCEの形ですべてのDC 46の間で分散される。特定のコンシューマが必要とする可能性のあるすべてのマッピングには、たとえば以下で説明するような証明書を管理するために使用可能な、マッピングID、MIDでマーク付けすることが可能である。以下のように、単一のMIDを使用して多くの機能を管理することが可能であり、さらに、マッピング証明書CAPは1つまたは複数のTCEを検証することができることに留意されたい。
TCE=[仮想アドレス領域、物理アドレス、フラグ]
CAPMi=[MID、TCE、時間、保護ビット]
:同じMIDによって識別される1つまたは複数のTCEエントリ
HG 42がコンシューマからI/O要求を受信し、したがってマッピングが要求される可能性がある場合、HG 42は符号CAPを作成し、これを関連するDC 46に送信することができる。
DC 46が、事前に定義された時間ウィンドウ(TW)によって要求されたDMAオペレーションをHG 42に提供することに失敗した場合、CAPを更新できることに留意されたい。CAPの更新は、たとえば、本出願の譲受人に譲渡された、2006年1月11日出願の「A METHOD AND SYSTEM FOR MEMORY PROTECTION AND SECURITY USING CREDENTIALS」という名称の米国特許出願第11/333066号に記載されたように、適用可能である。遅延ピン止めが必要な場合、たとえばCAPが生成された時点でマッピングがわかっていない場合、たとえば有効なMIDなしのCAPなどのnull CAPをDCに送信して、DCによってDMAオペレーションが開始された時点でページ障害をトリガできることにも留意されたい。
DC 46は、関連するTCEおよびCAPと共に、DMAオペレーションをHG 42に送信することができる。HG 42は、この情報を使用して仮想アドレスを検証および変換することができる。HG 42が、CAPが有効であること、たとえば、有効な証明書、時間ウィンドウ内の時間、およびMIDが、証明書の更新を管理するためにHG 42によって使用される取り消された証明書リストに掲載されていないことを決定した場合、変換を実行し、DMAオペレーションを進行させることができる。変換が無効である場合、HG 42は再試行要求をDC 46に送信することができる。加えて、HG 42は、上位層にマッピングを要求することができる。新しいマッピングが受信されると、更新済みのCAPをDC 46に送信することが可能であり、次にこれがDMAオペレーションを再試行することができる。
マッピングは、たとえば以下の場合に無効な可能性があることに留意されたい。
・遅延ピン止めが要求された(たとえばnull CAPによって)場合
・前のTW内にOSまたはハイパーバイザからのマッピング更新が受信された場合
後者の場合、HG 42は取り消されたリストにMIDを追加することが可能であり、これを任意の新しい受信変換をチェックするために使用することができる。CAPはあらゆるTWを更新しなければならないため、本出願の譲受人に譲渡された、2006年1月11日出願の「A METHOD AND SYSTEM FOR MEMORY PROTECTION AND SECURITY USING CREDENTIALS」という名称の米国特許出願第11/333066号に記載されたように、取り消されたリストの長さは制限される。
さらに、本発明のいくつかの実施形態によれば、HG 42およびDC 46は、転送されるデータの任意の状態情報を格納する必要がなく、たとえばステートレスである可能性がある。前述のように、共通の状態のみが、HG 42によって維持される取り消されたリストである。TCEは、たとえば、(関連TCEの更新を必要とする可能性がある)OSまたはハイパーバイザのページ・テーブル更新通知は、HG 42にのみ送信可能であり、マッピング障害時にのみ、更新を関連DC 46に送信可能であるなど、グローバルな同期化なしに、様々なDC 46全体にわたって分散することができる。
上記の説明では、本発明を完全に理解するために多数の特定の細部について説明した。しかしながら、当業者であれば、本発明がこれらの特定の細部なしに実施可能であることが明らかとなろう。他のインスタンスでは、従来のアルゴリズムおよびプロセスに関する良く知られた回路、制御論理、ならびにコンピュータ・プログラム命令の細部については、本発明を不必要にわかりにくくしないために、詳細に示してはいない。
本発明の諸態様を具体化するソフトウェア・プログラミング・コードは、通常、コンピュータ読み取り可能媒体などの永続ストレージ内に維持される。クライアント・サーバ環境では、こうしたソフトウェア・プログラミング・コードをクライアントまたはサーバ上に格納することができる。ソフトウェア・プログラミング・コードは、データ処理システムで使用するために多様な知られた媒体のいずれで具体化することもできる。これには、ディスク・ドライブ、磁気テープ、コンパクト・ディスク(CD)、デジタル・ビデオ・ディスク(DVD)などの、磁気および光のストレージ・デバイス、ならびに、信号が変調される搬送波を伴うかまたは伴わない伝送媒体内で具体化されるコンピュータ命令信号が含まれるが、これらに限定されるものではない。たとえば伝送媒体は、インターネットなどの通信ネットワークを含むことができる。加えて、本発明はコンピュータ・ソフトウェア内で具体化することができるが、本発明を実施するのに必要な機能は、特定用途向け集積回路または他のハードウェアなどのハードウェア構成要素、あるいはハードウェア構成要素およびソフトウェアの何らかの組み合わせを使用して、別の方法で部分的または全体的に具体化することもできる。たとえばHG 42は、コンピュータ・ソフトウェア内で、あるいは別の方法として、ハードウェア構成要素を使用して部分的または全体的に、具体化することができる。
本発明は、通常、コンピュータまたは同様のデバイスを制御するためのプログラム命令のセットを備える、コンピュータ・プログラム製品として実施される。これらの命令は、システムに事前ロードされるか、またはCD−ROMなどのストレージ媒体上に記録されて供給するか、あるいはインターネットまたは移動電話網などのネットワークを介してダウンロードするために入手可能とすることができる。
前述の内容には、本発明の範囲を逸脱することなく、改良および修正を実行することができる。
当業者であれば、本発明が、上記で具体的に図示および説明された内容に限定されるものでないことを理解されよう。むしろ、本発明の範囲には、前述の様々な特徴の組み合わせおよび下位組み合わせ(sub-combination)の両方、ならびに、当業者が前述の説明を読めば思いつくであろう、従来技術にはないそれらの変形形態および修正形態が含まれる。
従来技術のコンピュータ・システムを示す概略ブロック図である。 本発明の一実施形態に従ったコンピュータ・システムを示す概略ブロック図である。 本発明の諸実施形態に従った、メモリのピン止めおよび変換のための方法を示す概略流れ図である。 本発明の実施形態に従った、データ・トランザクションの方法を示す例示的流れ図である。 マップ解除オペレーションを送るための方法を示す流れ図である。
符号の説明
12 処理ユニット
14 I/Oデバイス
16 I/Oバス
17 I/Oブリッジ
18 ノース・ブリッジ
22 キャッシュ
24 MMU
26 CPU
28 DMAエンジン
40 コンピュータ・システム
42 HG
46 DC
50 メモリ

Claims (9)

  1. コンピュータ・システムにおけるホスト・ゲートウェイによる集中メモリ・アドレス変換およびピン止めのための方法であって、
    コンシューマによって送られた直接メモリ・アクセス(DMA)要求に、前記コンシューマのメモリ・アドレス・スペースのためのメモリ・アドレス・スペース識別子を付加するステップと、
    前記コンシューマのメモリ・アドレス・スペースにおける仮想アドレスを物理ページ・フレームへマップするマッピングを用いて、前記DMA要求に含まれる仮想アドレスをメモリにおける物理ページ・フレームに変換するステップと、
    前記マッピングが存在しないと判断することに応答して、マッピングを確立するため、前記コンシューマを動作させるハイパーバイザまたはオペレーティング・システムに対するI/Oミス割り込み呼び出しを発生させるステップと、
    前記所与のアドレス・スペース内の前記仮想アドレスのマップ解除オペレーションを防ぐために、前記DMA要求が進行中である限りは、前記物理ページ・フレームをピン止めするステップとを有し、
    前記DMA要求が前記メモリ・アドレス・スペース識別子を決定するために使用されるコンシューマ識別子をさらに含み、
    前記コンシューマを動作させるハイパーバイザまたはオペレーティング・システムは、前記物理アドレスがピン止めされていると判断することに応答して、マップ解除を中止し、または待機期間の後マッピングを試行し、
    前記付加、変換及びピン止めは、前記コンシューマを動作させるハイパーバイザまたはオペレーティング・システムとは独立に行われ、
    前記ピン止めは、前記コンシューマを動作させるハイパーバイザまたはオペレーティング・システムに、物理ページ・フレームが現在DMA要求に関与していることを通知するために、該物理ページ・フレームをマークすることを含み、
    第1のタイプのマークは、物理ページ・フレームが現在、読み取りまたは書き込み処理に関与していることを示し、
    第2のタイプのマークは、物理ページ・フレームが、前記コンシューマを動作させるハイパーバイザまたはオペレーティング・システムの知識なしに、少なくとも1つの読み取りI/Oに以前関与していたことを示す、
    方法。
  2. 前記DMA要求が、前記コンシューマの少なくとも1つの識別子、前記コンシューマのアドレス・スペース内の仮想アドレス、および前記DMA要求の長さを含む、請求項1に記載の方法。
  3. 前記変換ステップが、前記コンシューマのメモリ内に配置されたページ・テーブルにおける探索ステップをさらに有する、請求項1に記載の方法。
  4. 前記変換ステップが、前記DMA要求を行うI/Oデバイスと結合されたデバイス・コントローラ内に配置された変換制御エントリ(TCE)テーブルにおけるマッピングを探索するステップをさらに有する、請求項1に記載の方法。
  5. 前記マッピングが、マッピング識別子と関連付けられている、請求項4に記載の方法。
  6. DMA要求の正しさを保護するために、マッピング証明書を作成することをさらに有する、請求項5に記載の方法。
  7. 前記マッピング識別子と前記マッピング証明書を使用して仮想アドレスを検証することをさらに有する、請求項6に記載の方法。
  8. 前記ホスト・ゲートウェイが処理ユニットのメモリ管理ユニット(MMU)と統合される、請求項1に記載の方法。
  9. 前記付加するステップが前記ホスト・ゲートウェイによって制御され、前記変換ステップおよびピン止め・ステップが前記MMUによって制御される、請求項8に記載の方法。
JP2007166028A 2006-06-27 2007-06-25 メモリ・アドレスの変換およびピン止めのための方法およびシステム Expired - Fee Related JP5068108B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/426,588 US7636800B2 (en) 2006-06-27 2006-06-27 Method and system for memory address translation and pinning
US11/426588 2006-06-27

Publications (2)

Publication Number Publication Date
JP2008009982A JP2008009982A (ja) 2008-01-17
JP5068108B2 true JP5068108B2 (ja) 2012-11-07

Family

ID=38874758

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007166028A Expired - Fee Related JP5068108B2 (ja) 2006-06-27 2007-06-25 メモリ・アドレスの変換およびピン止めのための方法およびシステム

Country Status (4)

Country Link
US (2) US7636800B2 (ja)
JP (1) JP5068108B2 (ja)
CN (1) CN100538667C (ja)
TW (1) TW200817901A (ja)

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8209683B2 (en) * 2007-04-17 2012-06-26 International Business Machines Corporation System and method for probing hypervisor tasks in an asynchronous environment
US8166254B2 (en) 2008-06-06 2012-04-24 International Business Machines Corporation Hypervisor page fault processing in a shared memory partition data processing system
US10437865B1 (en) * 2009-01-21 2019-10-08 Vmware, Inc. Computer storage deduplication
US8090911B2 (en) 2009-04-16 2012-01-03 International Business Machines Corporation Selecting a target number of pages for allocation to a partition
US8386745B2 (en) * 2009-07-24 2013-02-26 Advanced Micro Devices, Inc. I/O memory management unit including multilevel address translation for I/O and computation offload
US9535849B2 (en) * 2009-07-24 2017-01-03 Advanced Micro Devices, Inc. IOMMU using two-level address translation for I/O and computation offload devices on a peripheral interconnect
US20110153877A1 (en) * 2009-12-23 2011-06-23 King Steven R Method and apparatus to exchange data via an intermediary translation and queue manager
US8631404B2 (en) * 2010-02-18 2014-01-14 Red Hat Israel, Ltd. Mechanism for downloading hypervisor updates via a virtual hardware device using existing virtual machine-host channels
US8954959B2 (en) * 2010-09-16 2015-02-10 Red Hat Israel, Ltd. Memory overcommit by using an emulated IOMMU in a computer system without a host IOMMU
US8631170B2 (en) 2010-09-16 2014-01-14 Red Hat Israel, Ltd. Memory overcommit by using an emulated IOMMU in a computer system with a host IOMMU
JP5593195B2 (ja) * 2010-10-19 2014-09-17 ルネサスエレクトロニクス株式会社 データ処理装置
US9021465B2 (en) 2010-12-15 2015-04-28 Red Hat Israel, Ltd. Downloading guest software updates by a hypervisor
US9164923B2 (en) 2011-07-01 2015-10-20 Intel Corporation Dynamic pinning of virtual pages shared between different type processors of a heterogeneous computing platform
US20140165196A1 (en) 2012-05-22 2014-06-12 Xockets IP, LLC Efficient packet handling, redirection, and inspection using offload processors
WO2013177310A2 (en) 2012-05-22 2013-11-28 Xockets IP, LLC Offloading of computation for rack level servers and corresponding methods and systems
US9021476B1 (en) * 2012-06-19 2015-04-28 Bromium, Inc. Ensuring the privacy and integrity of a hypervisor
US9135046B1 (en) 2012-06-19 2015-09-15 Bromium, Inc. Preventing host operating system from inspecting or modifying data received by hardware controller by moving host operating system into a virtual machine after boot up
US10140139B1 (en) 2012-06-19 2018-11-27 Bromium, Inc. Ensuring the privacy and integrity of a hypervisor
US9373182B2 (en) * 2012-08-17 2016-06-21 Intel Corporation Memory sharing via a unified memory architecture
US9197446B2 (en) 2012-12-12 2015-11-24 Google Inc. Address pinning
US9378161B1 (en) 2013-01-17 2016-06-28 Xockets, Inc. Full bandwidth packet handling with server systems including offload processors
US9348638B2 (en) 2013-01-17 2016-05-24 Xockets, Inc. Offload processor modules for connection to system memory, and corresponding methods and systems
CN103455438A (zh) * 2013-07-30 2013-12-18 华为技术有限公司 一种内存管理方法及设备
US9037753B2 (en) * 2013-08-29 2015-05-19 International Business Machines Corporation Automatic pinning and unpinning of virtual pages for remote direct memory access
US9239804B2 (en) * 2013-10-03 2016-01-19 Advanced Micro Devices, Inc. Back-off mechanism for a peripheral page request log
JP6294732B2 (ja) * 2014-03-31 2018-03-14 株式会社メガチップス データ転送制御装置及びメモリ内蔵装置
CN107209738B (zh) * 2015-05-02 2020-01-10 慧与发展有限责任合伙企业 储存存储器直接访问
US10025722B2 (en) * 2015-10-28 2018-07-17 International Business Machines Corporation Efficient translation reloads for page faults with host accelerator directly accessing process address space without setting up DMA with driver and kernel by process inheriting hardware context from the host accelerator
WO2018053830A1 (en) * 2016-09-26 2018-03-29 Intel Corporation Apparatus and method for mediate pass through and shared memory page merge
US10387186B2 (en) * 2017-06-28 2019-08-20 Vmware, Inc. Hypervisor with virtual-memory file system
US10761983B2 (en) * 2017-11-14 2020-09-01 International Business Machines Corporation Memory based configuration state registers
US10698686B2 (en) * 2017-11-14 2020-06-30 International Business Machines Corporation Configurable architectural placement control
US10664181B2 (en) 2017-11-14 2020-05-26 International Business Machines Corporation Protecting in-memory configuration state registers
US10761751B2 (en) 2017-11-14 2020-09-01 International Business Machines Corporation Configuration state registers grouped based on functional affinity
US10552070B2 (en) * 2017-11-14 2020-02-04 International Business Machines Corporation Separation of memory-based configuration state registers based on groups
US10901738B2 (en) 2017-11-14 2021-01-26 International Business Machines Corporation Bulk store and load operations of configuration state registers
US10592164B2 (en) 2017-11-14 2020-03-17 International Business Machines Corporation Portions of configuration state registers in-memory
US10496437B2 (en) 2017-11-14 2019-12-03 International Business Machines Corporation Context switch by changing memory pointers
US10635602B2 (en) * 2017-11-14 2020-04-28 International Business Machines Corporation Address translation prior to receiving a storage reference using the address to be translated
US10558366B2 (en) 2017-11-14 2020-02-11 International Business Machines Corporation Automatic pinning of units of memory
US10642757B2 (en) 2017-11-14 2020-05-05 International Business Machines Corporation Single call to perform pin and unpin operations
CN113660336B (zh) * 2018-03-30 2024-03-15 北京忆芯科技有限公司 利用kv存储设备的云计算与雾计算系统
US11243891B2 (en) * 2018-09-25 2022-02-08 Ati Technologies Ulc External memory based translation lookaside buffer
CN110046106B (zh) * 2019-03-29 2021-06-29 海光信息技术股份有限公司 一种地址转换方法、地址转换模块及系统
KR20210016188A (ko) 2019-08-01 2021-02-15 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4638426A (en) * 1982-12-30 1987-01-20 International Business Machines Corporation Virtual memory address translation mechanism with controlled data persistence
US6119214A (en) * 1994-04-25 2000-09-12 Apple Computer, Inc. Method for allocation of address space in a virtual memory system
US5666514A (en) * 1994-07-01 1997-09-09 Board Of Trustees Of The Leland Stanford Junior University Cache memory containing extra status bits to indicate memory regions where logging of data should occur
US5765022A (en) * 1995-09-29 1998-06-09 International Business Machines Corporation System for transferring data from a source device to a target device in which the address of data movement engine is determined
US5659798A (en) * 1996-02-02 1997-08-19 Blumrich; Matthias Augustin Method and system for initiating and loading DMA controller registers by using user-level programs
US5983332A (en) * 1996-07-01 1999-11-09 Sun Microsystems, Inc. Asynchronous transfer mode (ATM) segmentation and reassembly unit virtual address translation unit architecture
US6493343B1 (en) * 1998-01-07 2002-12-10 Compaq Information Technologies Group System and method for implementing multi-pathing data transfers in a system area network
US6356996B1 (en) * 1998-03-24 2002-03-12 Novell, Inc. Cache fencing for interpretive environments
US6859867B1 (en) * 2000-05-31 2005-02-22 Intel Corporation Translation and protection table and method of using the same to validate access requests
US6658522B1 (en) * 2000-06-16 2003-12-02 Emc Corporation Method to reduce overhead associated with system I/O in a multiprocessor computer system
US6779049B2 (en) * 2000-12-14 2004-08-17 International Business Machines Corporation Symmetric multi-processing system with attached processing units being able to access a shared memory without being structurally configured with an address translation mechanism
CN1528080B (zh) * 2001-02-13 2011-04-20 西门子公司 确定终端设备的虚拟地址的方法和设备
US7254696B2 (en) * 2002-12-12 2007-08-07 Alacritech, Inc. Functional-level instruction-set computer architecture for processing application-layer content-service requests such as file-access requests
US7664909B2 (en) * 2003-04-18 2010-02-16 Nextio, Inc. Method and apparatus for a shared I/O serial ATA controller
US7594053B2 (en) * 2003-12-12 2009-09-22 Alcatel-Lucent Usa Inc. Adaptive object level locking
US7278008B1 (en) * 2004-01-30 2007-10-02 Nvidia Corporation Virtual address translation system with caching of variable-range translation clusters
US20050246453A1 (en) * 2004-04-30 2005-11-03 Microsoft Corporation Providing direct access to hardware from a virtual environment
US8214622B2 (en) * 2004-05-27 2012-07-03 International Business Machines Corporation Facilitating management of storage of a pageable mode virtual environment absent intervention of a host of the environment

Also Published As

Publication number Publication date
US20100049883A1 (en) 2010-02-25
CN100538667C (zh) 2009-09-09
US7636800B2 (en) 2009-12-22
CN101097546A (zh) 2008-01-02
JP2008009982A (ja) 2008-01-17
US20070299990A1 (en) 2007-12-27
TW200817901A (en) 2008-04-16

Similar Documents

Publication Publication Date Title
JP5068108B2 (ja) メモリ・アドレスの変換およびピン止めのための方法およびシステム
JP5870206B2 (ja) 効率的なメモリ及びリソース管理
US8850098B2 (en) Direct memory access (DMA) address translation between peer input/output (I/O) devices
US7882330B2 (en) Virtualizing an IOMMU
US8627040B2 (en) Processor-bus-connected flash storage paging device using a virtual memory mapping table and page faults
JP4776586B2 (ja) 共用仮想記憶を管理する方法および装置
US7739466B2 (en) Method and apparatus for supporting immutable memory
US7516247B2 (en) Avoiding silent data corruption and data leakage in a virtual environment with multiple guests
US9875208B2 (en) Method to use PCIe device resources by using unmodified PCIe device drivers on CPUs in a PCIe fabric with commodity PCI switches
US20090037614A1 (en) Offloading input/output (I/O) virtualization operations to a processor
US20130145055A1 (en) Peripheral Memory Management
US7861095B2 (en) Data processing apparatus security
JP2006252554A (ja) 仮想マシン環境内でのゲスト物理アドレスの仮想化の方法およびシステム
TWI417724B (zh) 使用替代頁池管理直接記憶器存取寫入頁錯誤之電腦執行方法、裝置、及電腦程式產品
US20070038799A1 (en) Ensuring deadlock free operation for peer to peer traffic in an input/output memory management unit (IOMMU)
US7454787B2 (en) Secure direct memory access through system controllers and similar hardware devices
US20140006737A1 (en) Protected access to virtual memory
WO2010097925A1 (ja) 情報処理装置
US20220308755A1 (en) Migrating Pages of Memory Accessible by Input-Output Devices
TWI297831B (en) Method for managing a memory device, computer system and computer-readable medium
JP2024503259A (ja) 入出力デバイスによってアクセス可能なメモリのページの移行
US10545885B2 (en) Information processing device, information processing method, and computer program product
WO2013075443A1 (zh) 一种内存区间相互隔离的程序之间的通讯方法及处理单元
KR20220014272A (ko) 복사 명령 처리 시스템 및 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100319

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120605

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120702

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120731

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120814

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

Free format text: PAYMENT UNTIL: 20150824

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees