JP5056845B2 - スイッチおよび情報処理装置 - Google Patents

スイッチおよび情報処理装置 Download PDF

Info

Publication number
JP5056845B2
JP5056845B2 JP2009507317A JP2009507317A JP5056845B2 JP 5056845 B2 JP5056845 B2 JP 5056845B2 JP 2009507317 A JP2009507317 A JP 2009507317A JP 2009507317 A JP2009507317 A JP 2009507317A JP 5056845 B2 JP5056845 B2 JP 5056845B2
Authority
JP
Japan
Prior art keywords
input
address
output device
output
switch
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
JP2009507317A
Other languages
English (en)
Other versions
JPWO2008120325A1 (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2008120325A1 publication Critical patent/JPWO2008120325A1/ja
Application granted granted Critical
Publication of JP5056845B2 publication Critical patent/JP5056845B2/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
    • 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
    • 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/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • 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/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures

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

この発明は、入出力制御装置と入出力デバイスの間を接続するスイッチと、そのスイッチを有する情報処理装置とに関し、特に、ゲストOSでの入出力処理における入出力制御の負荷を軽減し、もって、ゲストOS上でアプリケーションの処理性能を向上させることができるスイッチおよび情報処理装置に関する。
従来、仮想化技術を用いてホストOS上に仮想計算機を実現し、仮想計算機上でゲストOSを稼動させた場合、ゲストOS上で動作するアプリケーションは、ホストOS上で動作する同種のアプリケーションよりも、かなり低い処理性能しか得ることができなかった。この問題を解決するため、近年、ゲストOS上で動作するアプリケーションの処理性能の低下を解消するための仕組みが実現されつつある。
ゲストOS上で動作するアプリケーションの処理性能が低化する要因の一つに、DMA(Direct Memory Access)におけるアドレス変換がある。ゲストOS上で動作するアプリケーションにおいて入出力デバイスへの入出力処理が発生した場合、ゲストOSは、その入出力処理を実現するためのDMAの実行を対象の入出力デバイスへ依頼する。ところが、DMAにおいて入出力デバイスがアクセスすべきメモリ領域は、実在の情報処理装置の物理アドレス(以下、「HPA(Host Physical Address)」という)で指定しなければならないところ、ゲストOSは、実在の情報処理装置の物理アドレスを意識しないため、仮想計算機の物理アドレス(以下、「GPA(Guest Physical Address)」という)で指定してしまう。
そのため、従来は、仮想計算機を実現するハイパーバイザと呼ばれるプログラムが、GPAをHPAへ変換する処理をソフトウェアによって実行していたが、このアドレス変換がオーバヘッドとなって、アプリケーションの性能低化が生じていた。このオーバヘッドを解消するため、DMAリマッピングやATS(Address Translation Service)といった技術が導入されつつある。DMAリマッピングは、入出力処理を制御する入出力制御装置において、GPAをHPAへ高速に変換する処理をハードウェアによって実現する技術である。また、ATSは、入出力デバイスにおいて、GPAをHPAへ変換する処理を実現する技術である(非特許文献1参照)。
"Intel Virtualization Technology"、[online]、[平成19年3月22日検索]、インターネット<URL:http://www.intel.com/technology/itj/2006/v10i3/2-io/5-platform-hardware-support.htm>
しかしながら、DMAリマッピングには、多数の入出力処理が発生した場合に、アドレス変換処理によって入出力制御装置の負荷が上昇してしまうという問題がある。この問題は、ATSを用いることにより緩和できるものの、ATSの機能を実現するには、入出力デバイスのハードウェアやファームウェアの対応が必要であり、従来の入出力デバイスをそのまま使用することはできないという問題がある。
この発明は、上述した従来技術による問題点を解消するためになされたものであり、ゲストOSでの入出力処理における入出力制御の負荷を軽減し、もって、ゲストOS上でアプリケーションの処理性能を向上させることができるスイッチおよび情報処理装置を提供することを目的とする。
上述した課題を解決し、目的を達成するため、本発明の一つの態様では、入出力制御装置と入出力デバイスの間を接続するスイッチであって、前記入出力デバイスがゲストOSによってDMAの転送先として指定された仮想計算機上の物理アドレスを実計算機上の物理アドレスへ変換するための変換表を記憶する記憶手段と、前記入出力デバイスが発行したDMA要求に含まれるアドレスを、前記変換表を参照して実計算機上の物理アドレスへ変換するアドレス変換手段とを備えたことを特徴とする。
また、本発明の他の態様では、入出力制御装置と入出力デバイスの間を接続するスイッチを有する情報処理装置であって、前記スイッチは、前記入出力デバイスがゲストOSによってDMAの転送先として指定された仮想計算機上の物理アドレスを実計算機上の物理アドレスへ変換するための変換表を記憶する記憶手段と、前記入出力デバイスが発行したDMA要求に含まれるアドレスを、前記変換表を参照して実計算機上の物理アドレスへ変換するアドレス変換手段とを備えたことを特徴とする。
これらの発明の態様によれば、入出力制御装置と入出力デバイスの間を接続するスイッチが、DMAの転送先として指定された仮想計算機上の物理アドレスを実計算機上の物理アドレスへ変換するための変換表を記憶し、アドレス変換を行うこととしたので、アドレス変換に要する入出力制御装置の負荷を軽減することができる。
また、本発明の他の態様では、上記の発明の態様において、前記入出力デバイスが前記入出力制御装置に転送を要求した前記変換表を前記記憶手段に記憶させるアドレス変換表管理手段をさらに備えたことを特徴とする。
この発明の態様によれば、スイッチが、入出力制御装置と入出力デバイスの間のやりとりを監視して変換表を取得することとしたので、スイッチへの変換表の登録を自動化することができる。
また、本発明の他の態様では、上記の発明の態様において、前記アドレス変換表管理手段は、前記入出力制御装置に前記変換表の転送を要求し、転送された前記変換表を前記記憶手段に記憶させることを特徴とする。
この発明の態様によれば、スイッチが、入出力制御装置に対して能動的に変換表の転送を要求することとしたので、入出力制御装置へ変換表の転送を要求しない入出力デバイスについても、スイッチへの変換表の登録を自動化することができる。
また、本発明の他の態様では、上記の発明の態様において、前記アドレス変換表管理手段は、前記記憶手段から前記変換表を削除する場合に、削除対象の部分を記憶している入出力デバイスに該当部分の削除を依頼することを特徴とする。
この発明の態様によれば、スイッチが、変換表を削除する場合に、削除対象の部分を記憶している入出力デバイスに該当部分の削除を依頼することとしたので、スイッチが保持する変換表と入出力デバイスが保持する変換表の一貫性を保つことができる。
また、本発明の他の態様では、上記の発明の態様において、前記アドレス変換表管理手段は、前記入出力制御装置が前記入出力デバイスへ前記変換表を無効化すべき指示を送信した場合に、前記記憶手段に記憶している変換表の該当部分を無効化することを特徴とする。
この発明の態様によれば、下位の入出力デバイスが変換表を削除する場合に、スイッチが、削除対象の部分を自身が記憶する変換表から削除することとしたので、スイッチが保持する変換表と入出力デバイスが保持する変換表の一貫性を保つことができる。
また、本発明の他の態様では、上記の発明の態様において、前記記憶手段に記憶されている前記変換表を編集するアドレス変換表編集手段をさらに備えたことを特徴とする。
この発明の態様によれば、変換表の内容を外部から編集できるようにしたので、入出力制御装置がアドレス変換表をもたない場合でも、スイッチが入出力制御装置に代わってアドレス変換に関する処理を行うことができる。
また、本発明の他の態様では、上記の発明の態様において、前記入出力デバイスが前記入出力制御装置に転送を要求した前記変換表が前記記憶手段に記憶されている場合に、前記入出力制御装置に代わって、前記記憶手段に記憶されている前記変換表を前記入出力デバイスへ応答するアドレス変換表応答手段をさらに備えたことを特徴とする。
この発明の態様によれば、スイッチが、入出力制御装置に代わって、入出力デバイスへの変換表の転送を行うこととしたので、入出力制御装置の負荷を軽減することができる。
また、本発明の他の態様では、上記の発明の態様において、前記入出力デバイスが発行したDMA要求に含まれるアドレスが、前記入出力デバイスによって実計算機上の物理アドレスへ変換したものである場合に、前記変換表を参照して該アドレスの正当性を検証するアドレス検証手段をさらに備えたことを特徴とする。
この発明の態様によれば、入出力デバイスが変換したアドレスを、スイッチが変換表を参照して検証することとしたので、信頼性を向上させることができる。
また、本発明の他の態様では、上記の発明の態様において、前記入出力デバイスが記憶する前記変換表における変換後のアドレスの一覧を前記記憶手段に記憶し、前記入出力デバイスが発行したDMA要求に含まれるアドレスが、前記入出力デバイスによって実計算機上の物理アドレスへ変換したものである場合に、前記一覧を参照して該アドレスの正当性を検証するアドレス検証手段をさらに備えたことを特徴とする。
この発明の態様によれば、入出力デバイスが変換したアドレスを検証するための情報を変換表とは別に設けることとしたので、少ない記憶容量で多くのアドレスの検証を行うことができる。
本発明の一つの態様によれば、入出力制御装置と入出力デバイスの間を接続するスイッチが、DMAの転送先として指定された仮想計算機上の物理アドレスを実計算機上の物理アドレスへ変換するための変換表を記憶し、アドレス変換を行うこととしたので、アドレス変換に要する入出力制御装置の負荷を軽減することができるという効果を奏する。
また、本発明の一つの態様によれば、スイッチが、入出力制御装置と入出力デバイスの間のやりとりを監視して変換表を取得することとしたので、スイッチへの変換表の登録を自動化することができるという効果を奏する。
また、本発明の一つの態様によれば、スイッチが、入出力制御装置に対して能動的に変換表の転送を要求することとしたので、入出力制御装置へ変換表の転送を要求しない入出力デバイスについても、スイッチへの変換表の登録を自動化することができるという効果を奏する。
また、本発明の一つの態様によれば、スイッチが、変換表を削除する場合に、削除対象の部分を記憶している入出力デバイスに該当部分の削除を依頼することとしたので、スイッチが保持する変換表と入出力デバイスが保持する変換表の一貫性を保つことができるという効果を奏する。
また、本発明の一つの態様によれば、下位の入出力デバイスが変換表を削除する場合に、スイッチが、削除対象の部分を自身が記憶する変換表から削除することとしたので、スイッチが保持する変換表と入出力デバイスが保持する変換表の一貫性を保つことができるという効果を奏する。
また、本発明の一つの態様によれば、変換表の内容を外部から編集できるようにしたので、入出力制御装置がアドレス変換表をもたない場合でも、スイッチが入出力制御装置に代わってアドレス変換に関する処理を行うことができるという効果を奏する。
また、本発明の一つの態様によれば、スイッチが、入出力制御装置に代わって、入出力デバイスへの変換表の転送を行うこととしたので、入出力制御装置の負荷を軽減することができるという効果を奏する。
また、本発明の一つの態様によれば、入出力デバイスが変換したアドレスを、スイッチが変換表を参照して検証することとしたので、信頼性を向上させることができるという効果を奏する。
また、本発明の一つの態様によれば、入出力デバイスが変換したアドレスを検証するための情報を変換表とは別に設けることとしたので、少ない記憶容量で多くのアドレスの検証を行うことができるという効果を奏する。
以下に、本発明に係るスイッチおよび情報処理装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
まず、従来の情報処理装置の構成について説明する。図8は、DMAリマッピング技術が適用された情報処理装置の構成の一例を示す図である。同図に示すように、情報処理装置1は、CPU(Central Processing Unit)10と、メモリ制御装置20と、メモリ30と、入出力制御装置40と、スイッチ50、60aおよび60bと、入出力デバイス70a〜70dとを有する。
CPU10は、各種演算処理を実行する演算装置である。図8に示した例では、CPU10は、ホストOS11上でハイパーバイザ12を動作させ、さらに、ハイパーバイザ12上でゲストOS13a〜13cを動作させている。ホストOS11上は、情報処理装置1を制御する基本ソフトであり、ハイパーバイザ12は、仮想計算機を実現するプログラムである。そして、ゲストOS13a〜13cは、仮想計算機上で動作する基本ソフトである。
メモリ制御装置20は、メモリ30へのアクセスを制御する制御装置であり、メモリ30は、情報処理装置1の主記憶である。入出力制御装置40は、入出力デバイス70a〜70dへのアクセスを制御する制御装置である。スイッチ50、60aおよび60bは、入出力制御装置40と入出力デバイス70a〜70dの接続状態を切り替える切替装置であり、CPU10に近い側を上位、入出力デバイス70a〜70dに近い側を下位と呼ぶこととして、スイッチ50の下位にスイッチ60aおよび60bが接続された構成となっている。
入出力デバイス70a〜70dは、ディスク装置やネットワークインターフェース装置等の各種デバイスである。入出力デバイス70aおよび70bは、スイッチ60aの下位に接続され、入出力デバイス70cおよび70dは、スイッチ60bの下位に接続されている。
現在広く利用されている入出力バスの仕様であるPCI Expressの用語に従えば、入出力制御装置40は、Root Complexに相当し、スイッチ50、60aおよび60bは、PCIe Switchに相当し、入出力デバイス70a〜70dは、PCIe Endpointに相当する。
そして、入出力制御装置40は、アドレス変換表41を備える。アドレス変換表41は、ゲストOS13a〜13cが入出力デバイス70a〜70dに対してDMAの実行を依頼する際に指定したアドレスをGPAからHPAへ変換するための変換表であり、ハイパーバイザ12によって編集される。
入出力制御装置40は、入出力デバイス70a〜70dがゲストOS13a〜13cから依頼されたDMAを実行するためにメモリ30へアクセスしようとした場合に、アドレス変換表41を参照して、アクセス先のアドレスをGPAからHPAへ変換する。このように、ハードウェアによってアドレス変換処理を行うことにより、入出力処理実行時にハイパーバイザ12がアドレス変換を行う必要がなくなり、ゲストOS13a〜13cの動作が高速化される。
しかしながら、この構成では、ゲストOS13a〜13cにおいて多数の入出力処理が発生した場合に、入出力制御装置40の負荷が高くなり、処理の遅延による性能低化が発生するという問題があった。
図9は、ATS技術が適用された情報処理装置の構成の一例を示す図である。同図に示すように、情報処理装置2は、入出力デバイス70aに代えて、入出力デバイス80aを有している点において情報処理装置1と異なる。入出力デバイス80aは、アドレス変換表81aを有する。
アドレス変換表81aは、ゲストOS13a〜13cが入出力デバイス80aに対してDMAの実行を依頼する際に指定したアドレスをGPAからHPAへ変換するための変換表である。入出力デバイス80aは、所定のプロトコルに従って、当該の入出力デバイスに対応する変換表をアドレス変換表41から抽出して転送するように求めるリクエストを入出力制御装置40へ送信し、応答された変換表をアドレス変換表81aとしてキャッシュする。
そして、入出力デバイス80aは、ゲストOS13a〜13cから依頼されたDMAを実行するためにメモリ30へアクセスする場合に、アドレス変換表81aを参照して、アクセス先のアドレスをGPAからHPAへ変換する。このように、アドレス変換表81aが自身の分のアドレス変換表をキャッシュしてDMA実行時にアドレス変換処理を行うことにより、入出力制御装置40がアドレス変換に要する負荷を軽減することができる。
しかしながら、ATS技術を用いて入出力デバイスにおいてアドレス変換を実行するには、入出力デバイスのハードウェアやファームウェアの対応が必要となる。このため、入出力デバイス70b〜70dのようにATSに対応していない旧来の入出力デバイスが多数接続されている場合には、アドレス変換に要する入出力制御装置40の負荷は十分には軽減されない。
次に、本実施例に係る情報処理装置の構成について説明する。図1は、本実施例に係る情報処理装置3の構成を示す図である。同図に示すように、情報処理装置3は、スイッチ60aおよび60bに代えて、スイッチ90aおよび90bを有している点において情報処理装置2と異なる。スイッチ90aおよび90bは、それぞれ、アドレス変換表91aおよび91bを有する。
スイッチ90aおよび90bは、同様の装置であるので、ここではスイッチ90aについて説明する。スイッチ90aは、自身を介して行われる情報のやりとりを監視し、入出力デバイス80aが、所定のプロトコルに従って、当該の入出力デバイスに対応する変換表の転送を求めるリクエストを入出力制御装置40へ送信した場合に、応答された変換表をアドレス変換表91aとしてキャッシュする。
そして、スイッチ90aは、入出力デバイス80aから同様のリクエストが入出力制御装置40へ再度送信された場合には、そのリクエストをトラップして、アドレス変換表91aから入出力デバイス80aに対応する変換表を抽出し、入出力制御装置40に代わって、これを応答する。このように、スイッチ90aが入出力制御装置40に代わって入出力デバイスに対応する変換表を応答することにより、入出力制御装置40の負荷が軽減される。
また、スイッチ90aは、ATSに対応していない入出力デバイス70bに代わって、入出力デバイス70bに対応するアドレスの変換表を入出力制御装置40へ要求し、応答された変換表をアドレス変換表91aに保持する。
そして、スイッチ90aは、入出力デバイス80aもしくは70bが、ゲストOS13a〜13cから依頼されたDMAを実行するためにGPAを指定してメモリ30へアクセスしようとした場合に、アドレス変換表91aを参照してGPAをHPAへ変換する処理を実行する。このように、スイッチ90aが入出力制御装置40に代わってアドレス変換を実行することにより、アドレス変換に要する入出力制御装置40の負荷が大きく軽減される。
スイッチ90a等のスイッチは、図1の例のように多段で構成され、下位のスイッチほど対応する入出力デバイスの数が少なくなるため、下位のスイッチでアドレス変換を行うことにより、アドレス変換に要する負荷が分散され、負荷が特定のスイッチに集中することを防止することができる。
また、スイッチ90aは、入出力デバイス80aが、ゲストOS13a〜13cから依頼されたDMAを実行するためにHPAを指定してメモリ30へアクセスしようとした場合に、アドレス変換表91aの変換後のアドレスを参照してHPAが正当な値であるかどうかの検証を行う。このようにHPAの正当性の検証を行うことにより、入出力デバイス80aが障害により不正な値をHPAとして指定した場合であっても、メモリの内容が破壊されることを防止することができる。
また、スイッチ90aは、所定の設定プログラムを介してシステム管理者等により入力されたアドレス変換情報もアドレス変換表91aに保持する。これにより、入出力制御装置40がDMAリマッピングに対応しない場合であっても、スイッチ90aが、入出力制御装置40に代わって、入出力デバイス80aや70bに対してアドレス変換機能を提供することができる。
次に、図1に示したスイッチ90aの構成について説明する。図2は、スイッチ90aの構成を示すブロック図である。同図に示すように、スイッチ90aは、アドレス変換支援部910と、アドレス変換表91aを記憶する記憶部920と、入出力制御装置40と入出力デバイス80aおよび70bの接続を切り替えるスイッチ部930とを有する。
アドレス変換支援部910は、入出力制御装置40等の入力制御装置や、入出力デバイス80aおよび70b等の各種入出力デバイスにおけるアドレス変換処理を支援するための各種処理を実行する処理部であり、アドレス変換表編集部911と、アドレス変換表管理部912と、アドレス変換表応答部913と、アドレス変換部914と、アドレス検証部915とを有する。
アドレス変換表編集部911は、所定の設定プログラムを介してシステム管理者等により入力された指示に基づいてアドレス変換表91aを編集する処理部である。システム管理者等によるアドレス変換表91aの編集は、例えば、入出力制御装置40がDMAリマッピングに対応しない場合に、アドレス変換表編集部911が、入出力制御装置40に代わって、入出力デバイス80aや70bに対してアドレス変換機能を提供できるようにするために行われる。
なお、アドレス変換表91aは、GPAからHPAへのアドレス変換を高速に行うことができるように、例えば、ハッシュテーブルや多段テーブルとして構成されていることが望ましい。
アドレス変換表管理部912は、アドレス変換表91aの内容を自動的に更新する処理部である。具体的には、アドレス変換表管理部912は、入出力デバイス80a等が、入出力制御装置40へ送信するTC(Translation Cash)リクエストと、その応答であるTCレスポンスを監視し、TCレスポンスに含まれる変換表をアドレス変換表91aに登録する。なお、TCリクエストは、当該の入出力デバイスに対応する変換表をアドレス変換表41から抽出して転送するように入出力制御装置40に求めるリクエストである。
また、アドレス変換表管理部912は、入出力デバイス70bのようにATSに対応していない入出力デバイスに代わって、入出力制御装置40にTCリクエストを送信し、応答されたTCレスポンスに含まれる変換表をアドレス変換表91aに登録する処理も行う。
なお、記憶部920の容量は有限であるため、アドレス変換表91aが、所定のサイズよりも大きくなると、記憶部920に記憶しておくことができなくなる。この場合、アドレス変換表管理部912は、LRU(Least Recently Used)論理等に基づいて重要度の低い情報をアドレス変換表91aから破棄する。
このようにアドレス変換表91aの一部を破棄した場合、そのままでは、後述するアドレス検証部915によるアドレスの検証処理において、検証対象のアドレスがアドレス変換表91aに存在しない場合に、アドレスが不正なものであるのか、あるいは、アドレスが削除されたためにアドレス変換表91aに存在していないのかを区別することができなくなる。そこで、アドレス変換表管理部912は、容量不足によりアドレス変換表91aの一部を破棄する場合、破棄対象の変換表を保持している可能性のある入出力デバイスに対してinvalidationを送信して、その部分の変換表を無効化させる。
invalidationは、入出力制御装置40が何らかの理由でアドレス変換表41の一部を破棄する場合に、一貫性を保持するために、その破棄する部分を保持している可能性がある入出力デバイスに該当部分の無効化を求めるリクエストである。上記のように、アドレス変換表91aの一部を破棄する場合にアドレス変換表管理部912がinvalidationを送信することにより、アドレス変換表91aと、入出力デバイスが保持する変換表との一貫性が確保され、アドレス検証部915によるアドレスの検証が適正に行われる。
なお、invalidationが入出力制御装置40によって発行された場合、アドレス変換表管理部912は、破棄を求められている部分をアドレス変換表91aから削除する処理を行う。
アドレス変換表応答部913は、TCリクエストによって要求された変換表がアドレス変換表91aに存在する場合に、そのTCリクエストをトラップして、入出力制御装置40に代わって、要求された変換表を格納したTCレスポンスを応答する処理部である。
アドレス変換部914は、入出力デバイス80a等が、ゲストOSから依頼されたDMAを実行するためにGPAを指定してメモリ30へアクセスしようとした場合に、アドレス変換表91aを参照してGPAをHPAへ変換する処理を実行する。
なお、PCI Expressの場合、DMAの要求元がどのOSであるかは、入出力デバイス80a等がDMAを実行するために発行するトランザクションリクエストのヘッダ部分のリクエスタIDを参照することにより判別することができる。また、入出力デバイス80a等がDMAを実行するために指定したアドレスがGPAであるかHPAであるかは、トランザクションリクエストのヘッダ部分のアドレスタイプを参照することにより判別することができる。具体的には、アドレスタイプの値が変換済みであることを示すコードである場合は、指定されたアドレスはHPAであり、アドレスタイプの値が未変換であることを示すコードである場合は、指定されたアドレスはGPAである。
アドレス検証部915は、入出力デバイス80a等が、ゲストOSから依頼されたDMAを実行するためにHPAを指定してメモリ30へアクセスしようとした場合に、アドレス変換表91aの変換後のアドレスを参照してHPAが適正な値であるかどうかの検証を行う。
なお、アドレス検証部915がアドレスの検証を行うために参照するテーブルをアドレス変換表91aと別に設けることとしてもよい。この場合、検証用のテーブルには下位の入出力デバイスがキャッシュしている可能性のある変換後のアドレスの全てを記憶しておく必要があるが、アドレス変換表91aにはそれよりも少ない件数の情報を記憶することとしてもよい。アドレスの検証は、変換後のアドレスさえあればよいため、このように検証用のテーブルを独立して設けることにより、比較的少ない記憶容量で多くのアドレスを検証することが可能になる。また、変化後のアドレスを検索するために最適なデータ構造をとることにより、アドレスの検証を高速化することもできる。
次に、情報処理装置3の処理手順について説明する。図3および4は、入出力デバイス80aがTCリクエストを発行したときの処理手順を示すシーケンス図である。同図に示すように、入出力デバイス80aがTCリクエストを発行すると(ステップS101)、スイッチ90aは、入出力デバイス80aに対応する変換表をアドレス変換表91aに保持していなければ、そのTCリクエストを上位へ中継する(ステップS102)。
TCリクエストを受信した入出力制御装置40は、入出力デバイス80aに対応する変換表をアドレス変換表41から抽出して、TCリプライとして応答する(ステップS103)。そして、スイッチ90aは、TCリプライを入出力デバイス80aへ転送し(ステップS104)、そのTCリプライに含まれる変換表をアドレス変換表91aに登録する(ステップS105)。そして、そのTCリプライを受信した入出力デバイス80aは、そのTCリプライに含まれる変換表をアドレス変換表81aとして記憶する(ステップS106)。
ここで、スイッチ90aが変換表をアドレス変換表91aに登録する際に記憶部920があふれ、入出力デバイス70bに対応する変換表の一部を記憶部920から削除したとすると(ステップS107肯定)、スイッチ90aは、入出力デバイス70bに対してinvalidationを発行し、該当部分の破棄を求める(ステップS108)。
その後、入出力デバイス80aが再びTCリクエストを発行した場合(ステップS201)、図4に示すように、スイッチ90aは、入出力デバイス80aに対応する変換表をアドレス変換表91aから抽出して、TCリプライとして応答し(ステップS202)、TCリプライを受信した入出力デバイス80aは、そのTCリプライに含まれる変換表をアドレス変換表81aとして記憶する(ステップS203)。
図5は、入出力デバイス80aが変換済みのアドレスを指定してトランザクションリクエストを発行した場合の処理手順を示すシーケンス図である。入出力デバイス80aが変換済みのアドレス、すなわち、HPAを指定して、DMAを実行するためのトランザクションリクエストを発行すると(ステップS301)、スイッチ90aは、アドレス変換表91aの変換後のアドレスを参照して、指定されたアドレスが正当であるかどうかを検証する(ステップS302)。
そして、指定されたアドレスが正当であれば(ステップS303肯定)、スイッチ90aは、そのトランザクションリクエストを上位へ中継し(ステップS304)、トランザクションリクエストを受信した入出力制御装置40が、そのトランザクションリクエストの内容に応じた処理を実行する(ステップS305)。一方、指定されたアドレスが正当でなければ(ステップS303否定)、スイッチ90aは、エラー処理を実行する(ステップS306)。
図6は、入出力デバイス80aが未変換のアドレスを指定してトランザクションリクエストを発行した場合の処理手順を示すシーケンス図である。入出力デバイス80aが未変換のアドレス、すなわち、GPAを指定して、DMAを実行するためのトランザクションリクエストを発行すると(ステップS401)、スイッチ90aは、アドレス変換表91aを参照して、指定されたアドレスをHPA変換し(ステップS402)、アドレスが変換されたトランザクションリクエストを上位へ中継する(ステップS403)。そして、トランザクションリクエストを受信した入出力制御装置40が、そのトランザクションリクエストの内容に応じた処理を実行する(ステップS404)。
図7は、入出力制御装置40が、入出力デバイス80aに対してinvalidationを発行した場合の処理手順を示すシーケンス図である。入出力制御装置40が、入出力デバイス80aに対してinvalidationを発行すると(ステップS501)、スイッチ90aがそれを入出力デバイス80aへ中継し(ステップS502)、アドレス変換表91aの該当部分を破棄する(ステップS503)。そして、invalidationを受信した入出力デバイス80aは、アドレス変換表81aの該当部分を破棄する(ステップS504)。
上述してきたように、本実施例では、入出力制御装置と入出力デバイスの間を接続するスイッチが、DMAの転送先として指定された仮想計算機上の物理アドレスを実計算機上の物理アドレスへ変換するための変換表を記憶し、アドレス変換を行うこととしたので、アドレス変換に要する入出力制御装置の負荷を軽減し、もって、ゲストOS上でアプリケーションの処理性能を向上させることができる。
以上のように、本発明に係るスイッチおよび情報処理装置は、ゲストOSを動作させる場合に有用であり、特に、ゲストOSでの入出力処理における入出力制御の負荷を軽減し、もって、ゲストOS上でアプリケーションの処理性能を向上させることが必要な場合に適している。
図1は、本実施例に係る情報処理装置の構成を示す図である。 図2は、スイッチの構成を示すブロック図である。 図3は、入出力デバイスがTCリクエストを発行したときの処理手順を示すシーケンス図である。 図4は、入出力デバイスがTCリクエストを発行したときの処理手順を示すシーケンス図である。 図5は、入出力デバイスが変換済みのアドレスを指定してトランザクションリクエストを発行した場合の処理手順を示すシーケンス図である。 図6は、入出力デバイスが未変換のアドレスを指定してトランザクションリクエストを発行した場合の処理手順を示すシーケンス図である。 図7は、入出力制御装置が、入出力デバイスに対してinvalidationを発行した場合の処理手順を示すシーケンス図である。 図8は、DMAリマッピング技術が適用された情報処理装置の構成の一例を示す図である。 図9は、ATS技術が適用された情報処理装置の構成の一例を示す図である。
1〜3 情報処理装置
10 CPU
11 ホストOS
12 ハイパーバイザ
13a〜13c ゲストOS
20 メモリ制御装置
30 メモリ
40 入出力制御装置
41 アドレス変換表
50、60a、60b スイッチ
70a〜70d 入出力デバイス
80a 入出力デバイス
81a アドレス変換表
90a、90b スイッチ
91a アドレス変換表
910 アドレス変換支援部
911 アドレス変換表編集部
912 アドレス変換表管理部
913 アドレス変換表応答部
914 アドレス変換部
915 アドレス検証部
920 記憶部
930 スイッチ部

Claims (7)

  1. 実計算機と接続され前記実計算機上で動作する仮想計算機上の物理アドレスと前記実計算機上の物理アドレスとを対応付けた変換情報を有する入出力制御装置と複数の入出力デバイスの間を接続し、前記複数の入出力デバイスにそれぞれ直接接続するスイッチであって、
    アドレス変換機能を有さない第1の入出力デバイスが前記スイッチに接続された場合に、前記仮想計算機が発行する前記第1の入出力デバイスへのDMA要求に応じて前記第1の入出力デバイスが発行したトランザクションリクエストを受信すると、該トランザクションリクエストにおいて指定された前記仮想計算機上の物理アドレスと、前記実計算機上の物理アドレスと、を対応付けた変換情報の転送要求を、前記入出力制御装置に送信し、
    前記入出力制御装置から前記変換情報を受信すると、前記変換情報を記憶する記憶手段と、
    前記第1の入出力デバイスが発行した前記トランザクションリクエストにおいて指定された前記仮想計算機上の物理アドレスを、前記記憶手段に記憶された前記変換情報で対応付けられた実計算機上の物理アドレスへ変換するアドレス変換手段と
    前記スイッチに接続された前記複数の入出力デバイスのうちのアドレス変換機能を有する第2の入出力デバイスから前記入出力制御装置への変換情報の転送要求を受信すると、要求された変換情報が前記記憶手段に記憶されている場合に、受信した前記変換情報の転送要求を前記入出力制御装置に中継せずに、前記記憶手段に記憶されている前記変換情報を前記第2の入出力デバイスへ応答する応答手段と、
    を備えたことを特徴とするスイッチ。
  2. 前記第1の入出力デバイスは、Address Translation Serviceに対応していない入出力デバイスである、
    ことを特徴とする請求項1に記載のスイッチ。
  3. 前記入出力制御装置が前記第2の入出力デバイスへ前記変換情報を無効化すべき指示を送信した場合に、前記記憶手段に記憶している変換情報の該当部分を無効化する無効化手段、
    をさらに含むことを特徴とする請求項1または2に記載のスイッチ。
  4. 前記記憶手段に記憶されている前記変換情報を編集するアドレス変換表編集手段をさらに備えたことを特徴とする請求項1に記載のスイッチ。
  5. 前記入出力デバイスが発行した前記トランザクションリクエストに含まれるアドレスが、前記第2の入出力デバイスによって実計算機上の物理アドレスへ変換したものである場合に、前記変換情報を参照して該アドレスの正当性を検証するアドレス検証手段をさらに備えたことを特徴とする請求項1に記載のスイッチ。
  6. 前記複数の入出力デバイスのうちのアドレス変換機能を有する前記第2の入出力デバイスが記憶する前記変換情報における変換後のアドレスの一覧を前記記憶手段に記憶し、
    前記入出力デバイスが発行した前記トランザクションリクエストに含まれるアドレスが、前記第2の入出力デバイスによって実計算機上の物理アドレスへ変換したものである場合に、前記一覧を参照して該アドレスの正当性を検証するアドレス検証手段をさらに備えたことを特徴とする請求項1に記載のスイッチ。
  7. 実計算機と接続され、前記実計算機上で動作する仮想計算機上の物理アドレスと前記実計算機上の物理アドレスとを対応付けた変換情報を有する入出力制御装置と複数の入出力デバイスの間を接続し、前記複数の入出力デバイスにそれぞれ直接接続するスイッチを有する情報処理装置であって、
    前記スイッチは、
    アドレス変換機能を有さない第1の入出力デバイスが前記スイッチに接続された場合に、前記仮想計算機が発行する前記接続された前記第1の入出力デバイスへのDMA要求に対応し、前記入出力デバイスが発行するトランザクションリクエストにおいて指定される仮想計算機上の物理アドレスと、前記実計算機上の前記物理アドレスと、を対応付けた変換情報の転送要求を、前記入出力制御装置に送信し、
    前記入出力制御装置から前記変換情報を受信すると、前記変換情報を記憶する記憶手段と、
    前記第1の入出力デバイスが発行した前記トランザクションリクエストにおいて指定された前記仮想計算機上の物理アドレスを、前記記憶手段に記憶された前記変換情報で対応付けられた実計算機上の物理アドレスへ変換するアドレス変換手段と
    前記スイッチに接続された前記複数の入出力デバイスのうちのアドレス変換機能を有する第2の入出力デバイスが前記入出力制御装置に転送を要求した前記変換情報が前記記憶手段に記憶されている場合に、前記記憶手段に記憶されている前記変換情報を前記第2の入出力デバイスへ応答する応答手段と、
    を備えたことを特徴とする情報処理装置。
JP2009507317A 2007-03-28 2007-03-28 スイッチおよび情報処理装置 Expired - Fee Related JP5056845B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2007/056695 WO2008120325A1 (ja) 2007-03-28 2007-03-28 スイッチ、情報処理装置およびアドレス変換方法

Publications (2)

Publication Number Publication Date
JPWO2008120325A1 JPWO2008120325A1 (ja) 2010-07-15
JP5056845B2 true JP5056845B2 (ja) 2012-10-24

Family

ID=39807918

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009507317A Expired - Fee Related JP5056845B2 (ja) 2007-03-28 2007-03-28 スイッチおよび情報処理装置

Country Status (3)

Country Link
US (1) US8707010B2 (ja)
JP (1) JP5056845B2 (ja)
WO (1) WO2008120325A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9424892B2 (en) 2013-03-28 2016-08-23 Fujitsu Limited Storage device to which memory device are connectable in multiple stages

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5318223B2 (ja) * 2009-04-06 2013-10-16 株式会社日立製作所 ストレージサブシステム、及びその制御方法
JP5346003B2 (ja) * 2010-12-22 2013-11-20 Necアクセステクニカ株式会社 情報機器制御装置および情報機器制御システム
US9952979B1 (en) * 2015-01-14 2018-04-24 Cavium, Inc. Methods and systems for direct memory access operations
US9626300B2 (en) * 2015-07-27 2017-04-18 Google Inc. Address caching in switches
KR102473665B1 (ko) 2015-07-28 2022-12-02 삼성전자주식회사 스토리지 디바이스 및 스토리지 가상화 시스템
US11030144B2 (en) 2018-12-14 2021-06-08 Texas Instruments Incorporated Peripheral component interconnect (PCI) backplane connectivity system on chip (SoC)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05250251A (ja) * 1992-03-04 1993-09-28 Nec Corp 情報処理装置
JPH086893A (ja) * 1994-06-20 1996-01-12 Internatl Business Mach Corp <Ibm> マルチプル・バス情報処理システム及びブリッジ回路
JP2002304364A (ja) * 2001-03-01 2002-10-18 Internatl Business Mach Corp <Ibm> Pci入出力スロットの論理分割を実施する方法および装置
JP2004302922A (ja) * 2003-03-31 2004-10-28 Toshiba Corp 情報機器およびトランザクション制御方法
JP2005122640A (ja) * 2003-10-20 2005-05-12 Hitachi Ltd サーバシステム及びi/oスロット共有方法。

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7917723B2 (en) * 2005-12-01 2011-03-29 Microsoft Corporation Address translation table synchronization

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05250251A (ja) * 1992-03-04 1993-09-28 Nec Corp 情報処理装置
JPH086893A (ja) * 1994-06-20 1996-01-12 Internatl Business Mach Corp <Ibm> マルチプル・バス情報処理システム及びブリッジ回路
JP2002304364A (ja) * 2001-03-01 2002-10-18 Internatl Business Mach Corp <Ibm> Pci入出力スロットの論理分割を実施する方法および装置
JP2004302922A (ja) * 2003-03-31 2004-10-28 Toshiba Corp 情報機器およびトランザクション制御方法
JP2005122640A (ja) * 2003-10-20 2005-05-12 Hitachi Ltd サーバシステム及びi/oスロット共有方法。

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9424892B2 (en) 2013-03-28 2016-08-23 Fujitsu Limited Storage device to which memory device are connectable in multiple stages

Also Published As

Publication number Publication date
WO2008120325A1 (ja) 2008-10-09
JPWO2008120325A1 (ja) 2010-07-15
US20090327645A1 (en) 2009-12-31
US8707010B2 (en) 2014-04-22

Similar Documents

Publication Publication Date Title
JP5056845B2 (ja) スイッチおよび情報処理装置
JP4405533B2 (ja) キャッシュ方法及びキャッシュ装置
US7234006B2 (en) Generalized addressing scheme for remote direct memory access enabled devices
JP4805314B2 (ja) 入出力(i/o)仮想化動作のプロセッサへのオフロード
US7426627B2 (en) Selective address translation for a resource such as a hardware device
JPH1185710A (ja) サーバ装置およびファイル管理方法
JP5928087B2 (ja) スイッチ、情報処理装置および通信制御方法
WO2009045884A2 (en) Address translation caching and i/o cache performance improvement in virtualized environments
JP2012141943A (ja) Sasエキスパンダ接続ルーティング技法
JPH1165969A (ja) サーバ装置および通信接続方法並びに通信の接続を行うプログラムを記録した記録媒体
US10901910B2 (en) Memory access based I/O operations
US8190853B2 (en) Calculator and TLB control method
US20070204129A1 (en) Address converting apparatus
US9454479B2 (en) Processing read and write requests in a storage controller
WO2014206229A1 (zh) 一种加速器以及数据处理方法
JP2017215745A (ja) データ処理装置、データ処理方法およびプログラム
JP4607937B2 (ja) キャッシュ方法及びキャッシュ装置
EP4191425A1 (en) Pcie communications
US20160253094A1 (en) Information processing device, data cache device, information processing method, and data caching method
US20190065419A1 (en) Message routing in a main memory arrangement
JP2014235531A (ja) データ転送装置、データ転送システム、およびプログラム
JP4478000B2 (ja) データ仲介方法およびデータ仲介装置
JP2019159858A (ja) ネットワークインタフェース装置、それを有するノードを複数有する情報処理装置及び情報処理装置のノード間送信データ送信方法
CN118502865A (zh) 容器热迁移的方法、处理器、主机、芯片及接口卡
CN117193931A (zh) 脏页发送方法、外部设备及计算设备

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110531

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110727

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120306

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120606

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120613

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

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

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

Free format text: PAYMENT UNTIL: 20150810

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5056845

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees