JP6070732B2 - 入出力制御装置、入出力制御システム、入出力制御方法、および、プログラム - Google Patents
入出力制御装置、入出力制御システム、入出力制御方法、および、プログラム Download PDFInfo
- Publication number
- JP6070732B2 JP6070732B2 JP2015013467A JP2015013467A JP6070732B2 JP 6070732 B2 JP6070732 B2 JP 6070732B2 JP 2015013467 A JP2015013467 A JP 2015013467A JP 2015013467 A JP2015013467 A JP 2015013467A JP 6070732 B2 JP6070732 B2 JP 6070732B2
- Authority
- JP
- Japan
- Prior art keywords
- input
- output
- address
- conversion table
- output control
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/404—Coupling between buses using bus bridges with address mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4295—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using an embedded synchronisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Small-Scale Networks (AREA)
Description
本発明は、入出力制御装置、入出力制御システム、入出力制御方法およびプログラム、特に、システム構成の柔軟性を維持しつつ、低コストで入出力装置を増設可能な入出力制御装置、入出力制御システム、入出力制御方法、および、プログラムに関する。
特許文献1は、PCI Express(Peripheral Component Interconnect Express)規格を用いた入出力機器の共有システム、情報処理装置の共有システムを開示する。このシステムは、プロセッサ側に設けられたブリッジと入出力装置(以降、I/O(Input/Output)装置)側に設けられたブリッジを、イーサネット(登録商標)で接続して構成される。このシステムにおいて、プロセッサからI/O装置に向けて発行された入出力要求は、プロセッサ側のブリッジでイーサネットのフレームにカプセル化されて、I/O装置側のブリッジに送信される。
特許文献2は、デバイスの組合せごとに必要な同期調整を行うことができる通信制御システムを開示する。この通信制御システムは、プロセッサ側に設けられたブリッジとI/O装置側に設けられたブリッジを、ネットワークで接続して構成される。
特許文献3は、マルチルートPCIスイッチにおける管理用仮想スイッチの一点障害を排除する、計算機システムを開示する。
図11の左図は、特許文献1が示す技術を用いているシステムの構成を示す。このシステムは、サーバ側に接続されたブリッジ(ExpEther(登録商標)Serverカード:以降、EESV)とI/O装置側に接続されたブリッジ(ExpEther I/Oカード:以降、EEIO)がレイヤ2スイッチを介して接続されて構成される。
このシステムは、CPU(Central Processing Unit)とI/O装置のグループ化が出来る。例えば、EESV0、EEIO0、EEIO2、EEIO3をグループ0とし、EESV1、EEIO1をグループ1とすると、各ブリッジに接続されたCPUとI/O装置がグループ化される。
すなわち、CPU0、I/O装置0、2、3がグループ0、CPU1、I/O装置1がグループ1となり、図11の右図が示すように、グループごとに別々の構成が存在することと等価となる。ExpEther技術を用いたシステムは、このように柔軟な構成が可能である。
図11のシステムでは、EEIOごとにグループが決定される。ユーザは、各EEIOにI/O装置を直接接続することでI/Oデバイスごとのグルーピングが可能である。このような構成の場合、I/O装置の増設に伴いEEIOの増設が必要となり、コスト高となる。
一方、図12が示すように、EEIOにPCI Expressスイッチ(以降、PCIeスイッチ)を接続することで、ユーザは1台のEEIO配下に多数のI/O装置を接続することが出来る。つまり、ユーザは、低コストでI/O装置の増設が可能である。ただしこの場合、システムはI/O装置ごとに別々のグルーピングができない。
すなわち、特許文献1の技術を用いたシステムは、システム構成の柔軟性を維持しつつ、低コストでI/O装置を増設することが出来ないのである。
本発明は、上述の課題を解決するための入出力制御装置、入出力制御システム、入出力制御方法、および、プログラムを提供することを目的とする。
本発明の1実施の形態の入出力制御装置は、受信した入出力命令を、入出力命令が指定するローカルアドレスの入出力装置に転送する入出力スイッチと接続され、プロセッサと入出力装置を包含する装置グループに関連付けて、プロセッサの特定情報と、入出力装置の論理アドレスからローカルアドレスへの変換表と、を記憶する変換表記憶手段と、入出力命令受信時に得られる送信元プロセッサの特定情報から装置グループを特定し、前記入出力命令に含まれる論理アドレスを、特定した装置グループの変換表から得られるローカルアドレスに変換して、前記入出力スイッチに送信する変換手段と、を備える。
本発明の1実施の形態の入出力制御方法は、プロセッサと入出力装置を包含する装置グループに関連付けて、プロセッサの特定情報と、入出力装置の論理アドレスからローカルアドレスへの変換表と、を記憶し、入出力命令受信時に得られる送信元プロセッサの特定情報から装置グループを特定し、前記入出力命令に含まれる論理アドレスを、特定した装置グループの変換表から得られるローカルアドレスに変換して、入出力命令を、入出力命令が指定するローカルアドレスの入出力装置に転送する入出力スイッチに送信する。
本発明にかかる入出力制御装置は、システム構成の柔軟性を維持しつつ、低コストでI/O装置を増設できる。
<概要>
図1は、本発明を用いたシステムの構成例を示すブロック図である。本発明の実施の形態は、1台のEEIO54に接続された複数のI/O装置70を、複数のCPU10と組み合わせて、複数のグループに分けることを可能とする。そして、CPU10は、同じグループに分けられたI/O装置70に入出力可能である。
図1は、本発明を用いたシステムの構成例を示すブロック図である。本発明の実施の形態は、1台のEEIO54に接続された複数のI/O装置70を、複数のCPU10と組み合わせて、複数のグループに分けることを可能とする。そして、CPU10は、同じグループに分けられたI/O装置70に入出力可能である。
具体的に、このシステムに例おいて、複数のI/O装置70(I/O装置0からI/O装置NまでのN+1台)が、1台のEEIO54に接続されている。そして、EEIO54には、レイヤ2スイッチ(以降、L2スイッチ40)等を介して複数のCPU10(CPU0とCPU1)が接続されている。
ここで、CPU1及びI/O装置3がグループ1を構成し、CPU0、及び、その他のI/O装置70がグループ0を構成している。このグループ分けの結果、CPU1はI/O装置3に入出力可能で、CPU0は他のI/O装置に入出力可能である。
<第1の実施の形態>
<構成>
図2は、本実施の形態にかかる入出力制御システム80の構成を示す。入出力制御システム80において、複数のCPU10は、各々のEESV20を経由してL2スイッチ40に接続されている。図2の例では、CPU0がEESV0を、CPU1がEESV1を経由して、L2スイッチ40に接続されている。
<構成>
図2は、本実施の形態にかかる入出力制御システム80の構成を示す。入出力制御システム80において、複数のCPU10は、各々のEESV20を経由してL2スイッチ40に接続されている。図2の例では、CPU0がEESV0を、CPU1がEESV1を経由して、L2スイッチ40に接続されている。
入出力制御システム80において、複数のI/O装置70が、EEIO54及びPCIe(PCI Express)スイッチ60を経由してL2スイッチ40に接続されている。
なお、L2スイッチ40に接続される、CPU10とEESV20の組、EEIO54とPCIeスイッチ60の組の数は、図2に示す台数に限られない。さらに、PCIeスイッチ60に接続されるI/O装置70の数も、図2に示す台数に限られない。
本実施の形態において、EEIO54は本発明特有の機能を追加されており入出力制御装置50とも呼ばれる。主たる追加機能は、以下のとおりである。
1)EEIO54は、複数CPU10からのアクセスを処理する。このため、EEIO54は、コンフィグレーション情報を複数のグループのおのおのに関連付けて保持する。具体的には、変換テーブル(変換表ともいう)が、グループに関連付けてコンフィグレーション情報を保持する。
2)PCIeスイッチ60は、複数CPU10からのアクセスを処理する。この為、EEIO54が変換テーブルを用いて複数CPU10からの入出力命令内のアドレスを変換する。
3)EEIO54は、変換テーブルを作成する際、配下のI/O装置70のレジスタを設定する。このため、EEIO54が配下のI/O装置70にコンフィグレーションアクセスする。
4)EEIO54は、各I/O装置70及びCPU10にグループID(IDentification)を割り当てる。
なお、出力制御システム80において、CPU10が発行したPCI Express規格準拠の入出力命令は、EESV20においてイーサネットのフレーム内にカプセル化されて、L2スイッチ40を経由して、適切なEEIO54に転送される。EEIO54は、イーサネットのフレームから入出力命令を取り出し、適切なアドレス変換をしたうえで、PCIeスイッチ60に出力する。
EEIO54は、変換表作成部51、変換表記憶部52、および、変換部53を包含する。変換表作成部51は、後述する変換テーブルを作成して変換表記憶部52に格納する。変換部53は、変換テーブルを参照して、入出力命令が包含するI/O装置70のアドレスを変換してPCIeスイッチ60に出力する。
変換表作成部51、および、変換部53は、論理回路で構成される。変換表作成部51、または、変換部53は、コンピュータでもあるEEIO54の図示されないプロセッサで実行されるプログラムで実現されても良い。変換表作成部51は、半導体メモリなどの記憶媒体である。
PCIeスイッチ60は、複数のブリッジ61を包含しており、入出力命令が包含するI/O装置70のアドレスに基づいてI/O装置70を選択して、当該入出力命令を渡す。図2の例において、PCIeスイッチ60は、3つのブリッジ61(ブリッジ1乃至ブリッジ3)を包含している。EEIO54は、ブリッジ0とブリッジ1を経由してI/O装置0に接続している。さらにEEIO54は、ブリッジ0とブリッジ2を経由してI/O装置1に接続している。
I/O装置70は、PCI Express規格準拠の入出力装置である。
入出力制御システム80において、管理サーバ装置30が、L2スイッチ40に接続されている。管理サーバ装置30は、入出力制御システム80の接続構成を管理し、管理者からCPU10、I/O装置70のグループ分け情報を取得して、CPU10、I/O装置70、更には、各ブリッジ61のグループへの帰属を決定し、EEIO54に出力する。
図3は、変換テーブルの構成を示す。変換テーブルは、第1テーブル(図3のa))、第2テーブル(図3のb))、及び、第3テーブル(図3のc))を包含する。
第1テーブルは、ブリッジ61及びI/O装置70(以降、両者をまとめてデバイスと称する)の各々のIDに関連付けて、ローカルアドレスとグループIDを保持する。ここで、ローカルアドレスは、EEIO54が割り当てるI/O装置70のメモリアドレスやI/Oアドレスやプリフェッチャブルアドレスである。
なお、デバイスを識別するためのIDは、ローカルバス番号とデバイス番号の組み合わせとする。
ローカルバス番号は、EEIO54が割り当てるデバイスのバス番号である。デバイス番号は、デバイスを区別して扱うための番号である。
ローカルバス番号は、EEIO54が割り当てるデバイスのバス番号である。デバイス番号は、デバイスを区別して扱うための番号である。
第2テーブルは、デバイスのIDに関連付けて、グループID、バス番号、及び、論理アドレスを保持する。バス番号は、CPU10が割り当てるデバイスのバス番号である。論理アドレスは、CPU10が割り当てるデバイスのメモリアドレスやI/Oアドレスやプリフェッチャブルアドレスである。
第3テーブルは、MACアドレスに関連付けてグループIDを格納する。MACアドレスは、EESV20のMACアドレスである。EEIO54の変換表作成部51および変換部53は、EESV20からイーサネットフレームを受信すると、送信元MACアドレスを取り出して、本表を検索してグループIDを得る。すなわち、変換表作成部51および変換部53は、EESV20のMACアドレスから、入出力命令を発行したCPU10が属するグループを認識する。
<動作>
入力制御システム80の動作は、大きく、グループ構成フェーズと、入出力実行フェーズに分けられる。
入力制御システム80の動作は、大きく、グループ構成フェーズと、入出力実行フェーズに分けられる。
<グループ構成フェーズの動作>
グループ構成フェーズにおいて、EEIO54の変換表作成部51は、1)変換テーブルの作成、および、2)グループ定義(I/O装置70及びCPU10へのグループID設定)を行う。両者の実行順序は問わない。
グループ構成フェーズにおいて、EEIO54の変換表作成部51は、1)変換テーブルの作成、および、2)グループ定義(I/O装置70及びCPU10へのグループID設定)を行う。両者の実行順序は問わない。
図4乃至図8は、グループ構成フェーズの動作を説明する為の図である。各図(図5を除く)は、グループ構成フェーズの動作過程の変換テーブルの第1テーブル及び第2テーブル(各図のa)、b))の状態、及び、当該過程で重要な入出力システム80の構成情報(各図のc))を示している。図5は、グループ構成フェーズの動作過程の変換テーブルの第1テーブル(a))、第2テーブル(b))、第3テーブル(c))の状態を示している。
1)変換テーブルの作成
システム電源投入後、EEIO54の変換表作成部51は、PCI Express管理ソフトウェアが行う初期化と同様の方法で下位のデバイスの構成を把握し、デバイスのレジスタにローカルアドレスとローカルバス番号を設定する。その際に、変換表作成部51は、ID(ローカルバス番号、デバイス番号)を第1テーブルと第2テーブルに、ローカルアドレスを第1テーブルに格納する(図4)。
システム電源投入後、EEIO54の変換表作成部51は、PCI Express管理ソフトウェアが行う初期化と同様の方法で下位のデバイスの構成を把握し、デバイスのレジスタにローカルアドレスとローカルバス番号を設定する。その際に、変換表作成部51は、ID(ローカルバス番号、デバイス番号)を第1テーブルと第2テーブルに、ローカルアドレスを第1テーブルに格納する(図4)。
ここで、ブリッジ0、ブリッジ1、ブリッジ2、I/O装置0、I/O装置1のローカルバス番号が、各々、0、1、1、2、3(図4(c)の()内の#マーク付きの数字)であったとする。また、I/O装置0のローカルアドレスはA’からB’迄(以降A’B’と表記する。他のアドレスの表記も同様)、I/O装置1のローカルアドレスはB’C’であったとする。この時、変換表作成部51は、デバイスのIDとして、ブリッジ0(0,0)、ブリッジ1(1,0)、ブリッジ2(1,1)、I/O装置0(2,0)、I/O装置1(3,0))を格納する。
さらに、変換表作成部51は、ブリッジ0、ブリッジ1、ブリッジ2、I/O装置0、I/O装置1の各々のローカルアドレスとして、A’C’、A’B’、B’C’、A’B’、B’C’を格納する。ここで、配下のブリッジ1、ブリッジ2のローカルアドレスがA’B’とB’C’であるため、ブリッジ0のローカルアドレスは、両領域を連結した領域であるA’C’となる。この値は、変換表作成部51が計算して変換テーブルに書き込む。
2)グループ定義
変換表作成部51は、EEIO54配下のデバイス構成を管理サーバ装置30に伝える。管理サーバ装置30は、すべてのデバイスを認識して、デバイスのグループ構成を定義できる。
変換表作成部51は、EEIO54配下のデバイス構成を管理サーバ装置30に伝える。管理サーバ装置30は、すべてのデバイスを認識して、デバイスのグループ構成を定義できる。
システムの管理者は、CPU10とI/O装置70のグループ構成情報を管理サーバ装置30に入力する。例えば、管理者は、グループ0はCPU0とI/O装置0を包含し、グループ1はCPU1とI/O装置1を包含するとのグループ構成情報を管理サーバ装置30に入力する。
管理サーバ装置30は、入出力制御システム80の構成情報とグループ構成情報の両者が入力された時点で、両者を照らし合わせて以下のグループ構成を認定し、変換表作成部51に通知する。
・I/O装置0はグループ0、I/O装置1はグループ1に属す。
・ブリッジ0、ブリッジ1、ブリッジ2は、グループ0と1で共用される。
・グループ0のMACアドレスは、EESV0のMACアドレスであり、グループ1のMACアドレスは、EESV1のMACアドレスである。
・I/O装置0はグループ0、I/O装置1はグループ1に属す。
・ブリッジ0、ブリッジ1、ブリッジ2は、グループ0と1で共用される。
・グループ0のMACアドレスは、EESV0のMACアドレスであり、グループ1のMACアドレスは、EESV1のMACアドレスである。
変換表作成部51は、この情報を管理サーバ装置30から受信し、第1テーブルと第2テーブルに各デバイスが帰属するグループのIDを格納する(図5のa)、b))。変換表作成部51は、複数グループで共用されるデバイスについては、グループごとに第2テーブルの行を設ける。
さらに、変換表作成部51は、第3テーブルにMACアドレスとグループIDを格納する(図5のc))。
図5a)及びb)は、第1テーブルおよび第2テーブルに、I/O装置0のグループIDが0、I/O装置1のグループIDが1、ブリッジ0、ブリッジ1、および、ブリッジ2のグループIDが0及び1であることを示す情報が格納されていることを示している。ここで、グループIDが0及び1であることは、当該デバイスが、グループIDが0と1の2つのグループで共用されていることを表している。
図5c)は、第3テーブルに、EESV0のMACアドレスがグループIDの0、EESV1のMACアドレスがグループIDの1に関連付けられていることを示す情報が格納されていることを示している。
なお、入出力制御システム80が、1台のEEIO54しか備えていない場合、管理サーバ装置30は存在しなくても良い。変換表作成部51が、管理サーバ装置30を兼ねていても良い。
OS(Operating System)起動時などに、CPU10、例えばCPU0がバスサーチを行う(図6)。ここで、CPU0とEESV0間のバス番号は1、CPU1とEESV1間のバス番号は11であるとする。
CPU0がバスサーチを行う際、変換表作成部51は、同じグループIDのデバイスに対し、暫定的なバス番号を変換テーブル第2テーブル(図6b))に格納する。なお、変換表作成部51は、CPU0のバスサーチ要求をカプセル化していたイーサネットのフレームの発信元MACアドレスで第3テーブルを検索することにより、処理対象がグループ0であることを認識する。
暫定的なバス番号は、EEIO54のバス番号にローカルバス番号+1を加算した値である。EESV0のバス番号が1のため、EEIO54のバス番号が2となる。したがって、ブリッジ0、ブリッジ1、I/O装置0のバス番号は、それぞれ3、4、4、5となる(図6のc))。I/O装置1はグループIDが異なるため、暫定的なバス番号は格納されない。
その後、CPU0がブリッジ0のバス番号割当を行う。ブリッジ0はグループIDが0であるため、CPU0はブリッジ0のバス番号3を第2テーブルに格納する。CPU0は、ブリッジ1のバス番号4、ブリッジ2のバス番号4、I/O装置0のバス番号5も第2テーブルに格納する。
I/O装置1のグループIDは1であるため、I/O装置1のバス番号は格納されない。処理がタイムアウトするため、CPU0は、ブリッジ2配下のデバイスは不在と認識する。
次に、CPU0からI/O装置0のコンフィグレーションライト命令を受信すると、変換表作成部51はI/O装置0のアドレス割当を行う(図7)。EEIO54は受信したコンフィグレーションライト命令を解析して得られたアドレス、例えばアドレスAB、を第2テーブルに論理アドレスとして書き込む。変換表作成部51は、ブリッジ1、ブリッジ2、ブリッジ0のアドレス割当も同様に行う(図7のb))。ただし、変換表作成部51は、ブリッジ2のアドレスは0とする。ブリッジ2配下のデバイスは不在と認識されるためである。
CPU1からのアクセスに基づいて、バス番号割り当て、アドレス割り当てを行うときも、変換表作成部51は、同じように動作する(図8)。但し、CPU1からアクセスされた場合は、アクセス要求をカプセル化しているイーサネットのフレームの発信元のMACアドレスで第3テーブルを検索することにより、処理対象がグループ1であることを認識する。
CPU1においては、EESV0のバス番号が11のため、EEIO54のバス番号が12となる。したがって、ブリッジ0、ブリッジ1、I/O装置1のバス番号は、それぞれ13、14、14、15となる(図8のc))。また、CPU1からI/O装置0のコンフィグレーションライト命令を受信すると、変換表作成部51はI/O装置1のアドレス割当を行う。EEIO54は受信したコンフィグレーションライト命令を解析して得られたアドレス、例えばアドレスXY、を第2テーブルに書き込む(図8のb))。
<入出力実行フェーズの動作>
図9は、入出力実行フェーズにおける入出力制御システム80の動作フローチャートである。
図9は、入出力実行フェーズにおける入出力制御システム80の動作フローチャートである。
まず、CPU10、例えば、CPU0はI/O装置0にアクセスするため、TLP (Transaction Layer Packet)を発行する(S1)。TLPは、入出力命令を包含する。
当該CPU10に接続されたEESV20がTLPを受信する。CPU0がTLPを発行した場合、EESV0がTLPを受信する。当該EESV20は、受信したTLPをイーサネットフレームにカプセル化し、L2スイッチ40に送信する(S2)。L2スイッチ40は、イーサネットフレームをMACアドレスでルーティングし、EEIO54に送信する(S3)。
EEIO54の変換部53は、受信したイーサネットフレームから送信元MACアドレスを読み出す(S4)。読み出されるのは、EESV0のMACアドレスである。
EEIO54の変換部53は、読み出したMACアドレスで変換テーブルの第3テーブルを検索してグループIDを取得する。EESV0のMACアドレスで第3テーブルを検索した場合、EEIO54の変換部53は、グループIDの0を取得する(S5)。続けて、変換部53は、TLPに含まれている入出力命令から入出力の対象となるI/O装置70のアドレスを取得する。変換部53は、当該アドレスとグループIDで変換テーブルの第2テーブルと第1テーブルを順次検索して、I/O装置70のローカルアドレスを取得する。
さらに、変換部53は、TLPに含まれている入出力命令内のI/O装置70のアドレスをローカルアドレスに置換したうえで、TLPをPCIeスイッチ60に出力する(S5)。
さらに、変換部53は、TLPに含まれている入出力命令内のI/O装置70のアドレスをローカルアドレスに置換したうえで、TLPをPCIeスイッチ60に出力する(S5)。
PCIeスイッチ60は、受信したTLPのローカルアドレスでルーティングし、I/O装置70に送信する(S6)。最後に、I/O装置70は受信したTLPを実行する(S7)。
<その他の動作>
CPU10が発行する入出力命令の種類によっては、EEIO54は配下のデバイスにパケットを通過させず、自分で応答する場合がある。
CPU10が発行する入出力命令の種類によっては、EEIO54は配下のデバイスにパケットを通過させず、自分で応答する場合がある。
例えば、I/O装置70が保持しているアドレスやバス番号をCPU10がリードする場合、パケットを通過させてしまうと、CPU10はローカルなアドレスやパスの値をリードしてしまう。これを防ぐため、EEIO54の変換部53が応答して変換テーブル(第2テーブル)に格納されている論理アドレス等を読み出して返す。
また、CPU10がI/O装置70にアドレスやバス番号をライトする場合、パケットを通過させてしまうと、I/O装置70が保持しているローカルなアドレスやバスの値を上書きされてしまう。これを防ぐため、EEIO54の変換部53が応答し、ライト命令で指定されたアドレスを変換テーブル(第2テーブル)に論理アドレスとして書き込む。
また、アドレスルーティングやIDルーティングなど、アドレスやバス番号を使用するパケットに含まれるアドレスやバス番号は、変換部53が変換テーブルで変換し、それ以外のパケットに対しては変換しない。
<効果>
入出力制御装置50は、入出力制御システム80の構成の柔軟性を維持しつつ、低コストでI/O装置70を増設できる。
入出力制御装置50は、入出力制御システム80の構成の柔軟性を維持しつつ、低コストでI/O装置70を増設できる。
その理由は、1台の入出力制御装置50が、接続されているI/O装置70とCPU10を複数のグループに分割して、グループごとに、CPU10が独自のアドレスでI/O装置70にアクセスすることを可能とするからである。したがって、1台の入出力制御装置50にI/O装置70を接続することで、複数グループのどれに対してもI/O装置70を増設することが出来る。入出力制御装置50の増設は必ずしも必要ではない。これを実現するため、入出力制御装置50の変換部53はグループごとのアドレスを、I/O装置70に一意のローカルアドレスに変換して、PCIeスイッチ60に転送する。
入出力制御装置50は、入出力制御システム80の構成の柔軟性を維持しつつ、CPU10が発行する入出力要求の制限を課さない。CPU10は、グループ内のI/O装置70に対しても、アドレス変更などが可能である。
その理由は、変換部53が、アクセスの種類に応じて、アクセスを下位のデバイスに転送したり、自分で応答したりするからである。
<変形例>
EESV20とEEIO54を結ぶイーサネットは、L2スイッチ40以外の他の形態であっても良い。さらに、通信プロトコルは、他のプロトコルであっても良い。
EESV20とEEIO54を結ぶイーサネットは、L2スイッチ40以外の他の形態であっても良い。さらに、通信プロトコルは、他のプロトコルであっても良い。
また、入出力インタフェースは、PCI Express以外のインタフェース、例えば、PCIで有っても良い。この場合、PCIeスイッチも他のインタフェースの入出力スイッチになる。
<第2の実施形態>
図10は、第2の実施の形態にかかる入出力制御装置50の構成を示す。入出力制御装置50は、受信した入出力命令を、入出力命令が指定するローカルアドレスの入出力装置に転送する入出力スイッチと接続される。
図10は、第2の実施の形態にかかる入出力制御装置50の構成を示す。入出力制御装置50は、受信した入出力命令を、入出力命令が指定するローカルアドレスの入出力装置に転送する入出力スイッチと接続される。
また、入出力制御装置50は、変換表記憶部52と、変換部53を備える。変換表記憶部52は、プロセッサと入出力装置を包含する装置グループに関連付けて、プロセッサの特定情報と、入出力装置の論理アドレスからローカルアドレスへの変換表と、を記憶する。変換部53は、入出力命令受信時に得られる送信元プロセッサの特定情報から装置グループを特定し、入出力命令に含まれる論理アドレスを、特定した装置グループの変換表から得られるローカルアドレスに変換して、入出力スイッチに送信する。
入出力制御装置50は、入出力制御システム80の構成の柔軟性を維持しつつ、低コストでI/O装置70を増設できる。
その理由は、1台の入出力制御装置50が、接続されているI/O装置70とCPU10を複数のグループに分割して、グループごとに、CPU10が独自のアドレスでI/O装置70にアクセスすることを可能とするからである。したがって、1台の入出力制御装置50にI/O装置70を接続することで、複数グループのどれに対してもI/O装置70を増設することが出来る。入出力制御装置50の増設は必ずしも必要ではない。これを実現するため、入出力制御装置50の変換部53はグループごとのアドレスを、I/O装置70に一意のローカルアドレスに変換して、入出力スイッチに転送する。
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
10 CPU
20 EESV
30 管理サーバ装置
40 L2スイッチ
50 入出力制御装置
51 変換表作成部
52 変換表記憶部
53 変換部
54 EEIO
60 PCIeスイッチ
61 ブリッジ
70 I/O装置
20 EESV
30 管理サーバ装置
40 L2スイッチ
50 入出力制御装置
51 変換表作成部
52 変換表記憶部
53 変換部
54 EEIO
60 PCIeスイッチ
61 ブリッジ
70 I/O装置
Claims (10)
- 受信した入出力命令を、入出力命令が指定するローカルアドレスの入出力装置に転送する入出力スイッチと接続され、
プロセッサと入出力装置が複数接続されており、該接続されたプロセッサと入出力装置を複数のグループに分けた結果である装置グループに関連付けて、プロセッサの特定情報と、入出力装置の論理アドレスからローカルアドレスへの変換表と、を記憶する変換表記憶手段と、
入出力命令受信時に得られる送信元プロセッサの特定情報から装置グループを特定し、前記入出力命令に含まれる論理アドレスを、特定した装置グループの変換表から得られるローカルアドレスに変換して、前記入出力スイッチに送信する変換手段と、を備える入出力制御装置。 - プロセッサがブリッジ装置を介して接続されたネットワークに接続され、
前記変換手段は、前記ネットワークから入出力命令を包含するフレームを受信し、受信したフレームの送信元ブリッジ装置アドレスから、入出力命令の送信元プロセッサを特定する、請求項1の入出力制御装置。 - 配下に接続されている入出力装置にローカルアドレスを割り当てて前記変換表に格納し、プロセッサから入出力装置へのアドレスを割り当てる命令を受信して、当該命令が包含するアドレスを、前記変換表の論理アドレスとして格納する変換表作成手段を、さらに備える請求項1乃至2の何れか1項の入出力制御装置。
- 前記変換手段は、受信した入出力命令が入出力装置のアドレスを変更するものである場合、受信した入出力命令を前記入出力スイッチに転送せず、前記変換表の書き換えを行う、請求項1乃至3の何れか1項の入出力制御装置。
- 請求項1乃至4の何れか1項の入出力制御装置と、
前記入出力スイッチと、
前記プロセッサがブリッジ装置を介して接続されたネットワークを実現するレイヤ2スイッチと、
前記レイヤ2スイッチに接続されたブリッジ装置とプロセッサを包含する、入出力制御システム。 - プロセッサと入出力装置が複数接続されており、該接続されたプロセッサと入出力装置を複数のグループに分けた結果である装置グループに関連付けて、プロセッサの特定情報と、入出力装置の論理アドレスからローカルアドレスへの変換表と、を記憶し、
入出力命令受信時に得られる送信元プロセッサの特定情報から装置グループを特定し、前記入出力命令に含まれる論理アドレスを、特定した装置グループの変換表から得られるローカルアドレスに変換して、入出力命令を、入出力命令が指定するローカルアドレスの入出力装置に転送する入出力スイッチに送信する、入出力制御方法。 - プロセッサがブリッジ装置を介して接続されたネットワークから入出力命令を包含するフレームを受信し、受信したフレームの送信元ブリッジ装置アドレスから、入出力命令の送信元プロセッサを特定する、請求項6の入出力制御方法。
- 配下に接続されている入出力装置にローカルアドレスを割り当てて前記変換表に格納し、プロセッサから入出力装置へのアドレスを割り当てる命令を受信して、当該命令が包含するアドレスを、前記変換表の論理アドレスとして格納する請求項6乃至7の何れか1項の入出力制御方法。
- 受信した入出力命令が入出力装置のアドレスを変更するものである場合、受信した入出力命令を前記入出力スイッチに転送せず、前記変換表の書き換えを行う、請求項6乃至8の何れか1項の入出力制御方法。
- コンピュータに、請求項6乃至9の何れか1項の入出力制御方法を実行させるプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015013467A JP6070732B2 (ja) | 2015-01-27 | 2015-01-27 | 入出力制御装置、入出力制御システム、入出力制御方法、および、プログラム |
US14/996,357 US10169279B2 (en) | 2015-01-27 | 2016-01-15 | Input/output control device, input/output control system, and input/output control method for conversion of logical address of instruction into local address of device specified in instruction |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015013467A JP6070732B2 (ja) | 2015-01-27 | 2015-01-27 | 入出力制御装置、入出力制御システム、入出力制御方法、および、プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016139256A JP2016139256A (ja) | 2016-08-04 |
JP6070732B2 true JP6070732B2 (ja) | 2017-02-01 |
Family
ID=56434103
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015013467A Active JP6070732B2 (ja) | 2015-01-27 | 2015-01-27 | 入出力制御装置、入出力制御システム、入出力制御方法、および、プログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US10169279B2 (ja) |
JP (1) | JP6070732B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021026421A (ja) * | 2019-08-02 | 2021-02-22 | 株式会社日立製作所 | ストレージ装置 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6696265B2 (ja) * | 2016-03-29 | 2020-05-20 | 日本電気株式会社 | リモート端末装置とその制御方法とコンピュータシステム並びにプログラム |
JP7315753B2 (ja) * | 2019-08-02 | 2023-07-26 | 株式会社日立製作所 | ストレージ装置 |
US12248424B2 (en) | 2022-08-09 | 2025-03-11 | Enfabrica Corporation | System and method for ghost bridging |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63231550A (ja) * | 1987-03-19 | 1988-09-27 | Hitachi Ltd | 多重仮想空間制御方式 |
JP4501916B2 (ja) * | 2006-09-20 | 2010-07-14 | 日本電気株式会社 | I/o機器の共有システムと情報処理装置共有システム及びそれらに用いる方法 |
US7707383B2 (en) * | 2006-11-21 | 2010-04-27 | Intel Corporation | Address translation performance in virtualized environments |
US8171230B2 (en) * | 2007-12-03 | 2012-05-01 | International Business Machines Corporation | PCI express address translation services invalidation synchronization with TCE invalidation |
US7929565B2 (en) * | 2007-12-12 | 2011-04-19 | Dell Products L.P. | Ethernet switching of PCI express packets |
JP5074457B2 (ja) * | 2009-06-04 | 2012-11-14 | 株式会社日立製作所 | 計算機システム、スイッチ切り替え方法及びpciスイッチ |
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 |
JP5266590B2 (ja) * | 2009-09-18 | 2013-08-21 | 株式会社日立製作所 | 計算機システムの管理方法、計算機システム及びプログラム |
US9141571B2 (en) * | 2010-12-28 | 2015-09-22 | Avago Technologies General Ip (Singapore) Pte. Ltd. | PCI express switch with logical device capability |
JP5664250B2 (ja) * | 2011-01-11 | 2015-02-04 | 日本電気株式会社 | 通信制御システム、装置、方法及びプログラム |
US20140237156A1 (en) * | 2012-10-25 | 2014-08-21 | Plx Technology, Inc. | Multi-path id routing in a pcie express fabric environment |
-
2015
- 2015-01-27 JP JP2015013467A patent/JP6070732B2/ja active Active
-
2016
- 2016-01-15 US US14/996,357 patent/US10169279B2/en active Active
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021026421A (ja) * | 2019-08-02 | 2021-02-22 | 株式会社日立製作所 | ストレージ装置 |
JP7080863B2 (ja) | 2019-08-02 | 2022-06-06 | 株式会社日立製作所 | ストレージ装置 |
US11372552B2 (en) | 2019-08-02 | 2022-06-28 | Hitachi, Ltd. | Storage device |
Also Published As
Publication number | Publication date |
---|---|
US10169279B2 (en) | 2019-01-01 |
US20160217094A1 (en) | 2016-07-28 |
JP2016139256A (ja) | 2016-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8412863B2 (en) | Storage apparatus and virtual port migration method for storage apparatus | |
US8683110B2 (en) | I/O system and I/O control method | |
US11113089B2 (en) | Sharing data via virtual machine to host device bridging | |
CN108268412B (zh) | 用于扩展外围组件互连高速结构的系统和方法 | |
JP4670676B2 (ja) | スイッチ及びネットワークブリッジ装置 | |
CN102722458B (zh) | 一种用于多根共享系统的i/o重映射方法和装置 | |
US9146890B1 (en) | Method and apparatus for mapped I/O routing in an interconnect switch | |
KR101754549B1 (ko) | 재구성 가능한 메모리 시스템들을 위한 가상화된 물리적 어드레스들 | |
US10162780B2 (en) | PCI express switch and computer system using the same | |
US20090282211A1 (en) | Network On Chip With Partitions | |
US9213662B2 (en) | I/O bus system | |
JPWO2008018485A1 (ja) | インターコネクション用スイッチおよびシステム | |
JP6070732B2 (ja) | 入出力制御装置、入出力制御システム、入出力制御方法、および、プログラム | |
US20130259053A1 (en) | Switch, information processing apparatus, and communication control method | |
EP3159802B1 (en) | Sharing method and device for pcie i/o device and interconnection system | |
US9875131B2 (en) | Virtual PCI device based hypervisor bypass using a bridge virtual machine | |
US10353857B2 (en) | Parallel processing apparatus and method for controlling communication | |
CN105630727A (zh) | 多SoC节点之间的访问方法、装置和系统 | |
CN112867998B (zh) | 运算加速器、交换器、任务调度方法及处理系统 | |
US20150036691A1 (en) | Efficiency of data payloads to data arrays accessed through registers in a distributed virtual bridge | |
US11836105B2 (en) | Communication device, information processing system, and communication method | |
Tu et al. | Seamless fail-over for PCIe switched networks | |
JP5110156B2 (ja) | スイッチ及びネットワークブリッジ装置 | |
JP2011113163A (ja) | Ioアクセス通信システムにおけるエンドポイント間通信制御装置および方法 | |
JP6597925B1 (ja) | 情報処理システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160606 |
|
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: 20161206 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20161219 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6070732 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |