JP4984077B2 - 動的切り替え装置、動的切り替え方法、及び動的切り替えプログラム - Google Patents
動的切り替え装置、動的切り替え方法、及び動的切り替えプログラム Download PDFInfo
- Publication number
- JP4984077B2 JP4984077B2 JP2008035240A JP2008035240A JP4984077B2 JP 4984077 B2 JP4984077 B2 JP 4984077B2 JP 2008035240 A JP2008035240 A JP 2008035240A JP 2008035240 A JP2008035240 A JP 2008035240A JP 4984077 B2 JP4984077 B2 JP 4984077B2
- Authority
- JP
- Japan
- Prior art keywords
- bit
- transaction
- routing
- valid
- dynamic switching
- 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
Links
Images
Landscapes
- Hardware Redundancy (AREA)
Description
この関連技術では、ルーティングテーブルを参照して、現用系にかかる情報及び予備系にかかる情報のルーティングを管理する。
この関連技術では、動的切替装置は、チャネル装置及び入出力装置の数に対応した所定数のポートを有し、通常のデータ転送に伴なう経路切り替え時に所定数のポート毎に経路を切り替えてデータを送出した相手先情報を記憶する相手先記憶手段と、チャネル装置及び入出力装置の間を接続しているインターフェースの障害を検出した場合に相手先記憶手段により記憶されている相手先情報に基づいて該当する相手先に対して障害通知情報を送出する障害通知手段とを備えている。
この関連技術では、当該システムは、ネットワーク環境内でルーティング・テーブル更新情報を交換するルータを含む。また、当該システムは、プライマリ・プロセスは遠隔プロセスとの通信に関与し、この通信にはデータ内容及び通信状態の転送が含まれる。また、当該システムは、プライマリ・プロセスはデータ内容及び通信状態をデータ格納装置に格納する。プライマリ・プロセスが故障した場合、遠隔プロセスとの通信は、データ格納装置からデータ内容及び通信状態を取り出すことによりプライマリ・プロセスをミラーリングする、バックアップ・プロセスに移される。これより、バックアップ・プロセスは、データ格納装置から取り出された通信状態を用いて、遠隔プロセスとの通信を続行する。
図1を参照すると、本発明の動的切り替え装置の一例であるコンピュータシステムは、プロセッサ(CPU:Central Processing Unit)11と、プロセッサ(CPU)12と、フロントサイドバス(FSB:Front Side Bus)13と、メモリコントローラ(MEMCTL:Memory Controller)14と、メモリ(MEM:Memory)15と、I/Oコントローラ(IOCTL:Input/Output Controller)16と、I/Oコントローラ(IOCTL)17を備える。
メモリコントローラ(MEMCTL)14は、FSBインターフェース(FBS I/F)141と、ルーティングテーブル(Routing Table)142と、トランザクションルーティングコントローラ(Txn Routing CTL)143と、メモリインターフェース(MEM I/F)144と、I/Oインターフェース(I/O I/F)145と、I/Oインターフェース(I/O I/F)146と、SPインターフェース(SP I/F)147を備える。
ルーティングテーブル(Routing Table)142は、図示したような一連の情報を含むレコードを複数有するテーブルであり、I/Oデバイスの個々のファンクション(Function)毎に1つのレコードを登録する。本実施形態のコンピュータシステムは、メモリ(MEM)15の他、I/Oデバイス上のレジスタやメモリデバイスを物理記憶空間上にメモリマップドI/O(MMIO:Memory Mapped I/O)としてマッピングする構成を採用しているため、テーブルの1レコードに格納される情報は、これら物理記憶空間上にマッピングされたいずれかのデバイスへのルーティング経路情報である。
まず、始めに、システム立ち上げ時の初期設定方法について説明する。
図4の表における設定内容を詳細に説明すると、I/Oデバイス(Master Device)30に対する設定項目について、図4の表の上方に3レコード分の定義がされている。本実施形態では、I/Oデバイス(Master Device)30は、3種のファンクション(Function)を搭載したマルチファンクションI/Oカードであり、個々のファンクション(Function)に対応するMMIO空間のアドレスを1レコードずつ定義する。ここでは、個々のファンクション(Function)名をそれぞれa、b、cと記載している。
図6を参照して、プロセッサからのメモリアクセスのトランザクションに対する動作について説明する。
(1)ステップS101
トランザクションルーティングコントローラ(Txn Routing CTL)143は、プロセッサ(CPU)11及びプロセッサ(CPU)12からのメモリリードやメモリライト等のメモリアクセスのトランザクションを、FSBインターフェース(FBS I/F)141を経由して受け取る。
(2)ステップS102
トランザクションルーティングコントローラ(Txn Routing CTL)143は、ルーティングテーブル(Routing Table)142を参照して、当該トランザクションで指定されるアドレス範囲に該当するルーティング情報を検索する。
(3)ステップS103
トランザクションルーティングコントローラ(Txn Routing CTL)143は、該当するルーティング情報のレコードが見つかると、Vmビット(Vm)51を参照し、Vmビット(Vm)51が真(T)である場合には、そのレコードからマスターデバイスID(Master DID)52を取り出して、トランザクションのターゲットとなるデバイスへのルーティング経路に従い、メモリインターフェース(MEM I/F)144、I/Oインターフェース(I/O I/F)145、I/Oインターフェース(I/O I/F)146のいずれかへトランザクションを送出する。
(4)ステップS104
更に、トランザクションルーティングコントローラ(Txn Routing CTL)143は、Vsビット(Vs)53を参照し、Vsビット(Vs)53が真(T)である場合には、スレーブデバイスID(Slave DID)54を取り出して、ターゲットとなるデバイスへのルーティング経路に従い、メモリインターフェース(MEM I/F)144、I/Oインターフェース(I/O I/F)145、I/Oインターフェース(I/O I/F)146のいずれかへトランザクションを送出する。
(1)ステップS201
トランザクションルーティングコントローラ(Txn Routing CTL)143は、I/Oコントローラ(IOCTL)16若しくはI/Oコントローラ(IOCTL)17から、I/Oインターフェース(I/O I/F)145若しくはI/Oインターフェース(I/O I/F)146を経由して、メモリリードやメモリライト等のメモリアクセスのトランザクションを受け取る。
(2)ステップS202
トランザクションルーティングコントローラ(Txn Routing CTL)143は、先の場合(図6)と同様に、ルーティングテーブル(Routing Table)142を参照して、当該トランザクションで指定されるアドレス範囲に該当するルーティング情報を検索する。
(3)ステップS203
トランザクションルーティングコントローラ(Txn Routing CTL)143は、該当するルーティング情報のレコードが見つかると、まず、Vmビット(Vm)51を参照し、Vmビット(Vm)51が真(T)である場合には、そこからマスターデバイスID(Master DID)52を取り出して、トランザクションのターゲットとなるデバイスへのルーティング経路に従い、メモリインターフェース(MEM I/F)144、I/Oインターフェース(I/O I/F)145、I/Oインターフェース(I/O I/F)146のいずれかへトランザクションを送出する。
(4)ステップS204
更に、トランザクションルーティングコントローラ(Txn Routing CTL)143は、Vsビット(Vs)53を検索し、Vsビット(Vs)53が真(T)である場合には、スレーブデバイスID(Slave DID)54を取り出して、ターゲットとなるデバイスへのルーティング経路に従い、メモリインターフェース(MEM I/F)144、I/Oインターフェース(I/O I/F)145、I/Oインターフェース(I/O I/F)146のいずれかへトランザクションを送出する。
(1)ステップS301
トランザクションルーティングコントローラ(Txn Routing CTL)143は、メモリリード等のトランザクションに対するリプライや、割り込みをいずれかのインターフェースブロックから受信する。すなわち、トランザクションルーティングコントローラ(Txn Routing CTL)143は、FSBインターフェース(FBS I/F)141、メモリインターフェース(MEM I/F)144、I/Oインターフェース(I/O I/F)145及びI/Oインターフェース(I/O I/F)146のいずれかのインターフェースブロックから、メモリリード等のトランザクションに対するリプライや、割り込みを受信する。
(2)ステップS302
トランザクションルーティングコントローラ(Txn Routing CTL)143は、ルーティングテーブル(Routing Table)142を参照し、トランザクション送出元を特定するための条件に一致するレコードを検索する。ここでは、トランザクションルーティングコントローラ(Txn Routing CTL)143は、ルーティングテーブル(Routing Table)142を参照し、Vmが真(T)且つマスターデバイスID(Master DID)52がトランザクション送出元のデバイスIDと一致する、若しくは、Vmが偽(F)且つVsが真(T)且つスレーブデバイスID(Slave DID)54がトランザクション送出元のデバイスIDと一致するレコードを検索する。
(3)ステップS303
トランザクションルーティングコントローラ(Txn Routing CTL)143は、トランザクション送出元を特定するための条件に一致するレコードが存在する場合、トランザクション送出元のデバイスが二重化されたI/Oデバイスのうちのマスターデバイスであるか、コールドスタンバイ状態の運用系のスレーブデバイスであると判定する。
(4)ステップS304
トランザクションルーティングコントローラ(Txn Routing CTL)143は、当該トランザクションのターゲットデバイスIDに従い、ルーティング経路を決定し、適切なインターフェースブロックへトランザクションを送出する。すなわち、トランザクションルーティングコントローラ(Txn Routing CTL)143は、FSBインターフェース(FBS I/F)141、メモリインターフェース(MEM I/F)144、I/Oインターフェース(I/O I/F)145及びI/Oインターフェース(I/O I/F)146のいずれかへトランザクションを送出する。
(5)ステップS305
トランザクションルーティングコントローラ(Txn Routing CTL)143は、トランザクション送出元を特定するための条件に一致するレコードが見つからなかった場合、例えば、ミラーリングのスレーブデバイスからのトランザクションを受信したような場合、ルーティングは行わず当該トランザクションを破棄する。
(1)ステップS401
まず、システムの起動開始時に、初期設定として、サービスプロセッサ(SP)21は、ルーティングテーブル(Routing Table)142にI/Oデバイスのルーティング情報を登録する際、対象のI/Oデバイスのファンクション(Function)のレコードに対し、前述したミラーリングの設定を行う。オペレーティングシステムが起動する一連のシーケンスの中で、オペレーティングシステムのデバイスドライバ(図示せず)により、当該I/Oデバイスの初期設定が行われる。この時点では、二重化されたI/Oデバイスはミラーリングされているので、マスター・スレーブ双方に対して同じ初期設定が行われる。ここでは、サービスプロセッサ(SP)21は、I/Oデバイス(Master Device)30及びI/Oデバイス(Slave Device)40の双方に対して同じ初期設定を行う。
(2)ステップS402
初期設定が完了した時点で、デバイスドライバは、スレーブ側のI/Oデバイスを切り離してコールドスタンバイ状態で並行して運用する旨の指示を、サービスプロセッサ(SP)21に対して通知する。この通知は、より具体的な例として、I/Oデバイスと同じくサービスプロセッサ(SP)21の通信用レジスタをMMIOにマッピングし、図2のトランザクションルーティングコントローラ(Txn Routing CTL)143からSPインターフェース(SP I/F)147を経由してサービスプロセッサ(SP)21へ通知する実装が考えられる。
(3)ステップS403
サービスプロセッサ(SP)21は、通知を受け取ると、I/Oデバイスのスレーブデバイスを動的に切り離し、コールドスタンバイへ移行する。ここでは、サービスプロセッサ(SP)21は、I/Oデバイス(Slave Device)40を動的に切り離し、コールドスタンバイへ移行する。
以下の手順は、サービスプロセッサ(SP)21からトランザクションルーティングコントローラ(Txn Routing CTL)143を始めシステム内の各要素の動作を制御する事で実現するもので、制御の手順はサービスプロセッサ(SP)21内のプログラムとして実装されるものである。
(1)ステップS501
まず、最初に、サービスプロセッサ(SP)21は、メモリコントローラ(MEMCTL)14内の各I/OインターフェースからI/Oコントローラへのトランザクション送出を抑止する。その結果、抑止されたトランザクションは、トランザクションルーティングコントローラ(Txn Routing CTL)143中に存在するバッファ等(図示せず)に一時的に滞留する。実装方法に依存して、I/Oインターフェースから送出を抑止するトランザクションは、二重化されたI/Oデバイスに向けたもののみに限定しても良い。この場合、サービスプロセッサ(SP)21は、トランザクションのターゲットデバイスIDを参照して、トランザクションの送出・抑止を決定する事になる。また、このとき、サービスプロセッサ(SP)21は、I/OコントローラからI/Oインターフェースへのトランザクション送出を抑止せず、I/Oデバイスからのトランザクション送出に対しては動作を継続する。
(2)ステップS502
サービスプロセッサ(SP)21は、この状態で一定時間待ち合わせを行う。これにより、各プロセッサ、メモリ、他のI/OデバイスからI/Oインターフェースを経由して送出済みの仕掛かり中トランザクションに対するリプライ処理が完了する。待ち合わせの時間は、コンピュータシステムの実装に依存して適切な値を定義する必要がある。すなわち、サービスプロセッサ(SP)21は、現在のトランザクションに対するリプライ処理が全て完了するまで待機する。
(3)ステップS503
I/Oデバイスに対する先行するトランザクションが完了した後に、サービスプロセッサ(SP)21は、ルーティングテーブル(Routing Table)142中のレコードの更新を行う。具体的には、対象のミラーリングされたデバイスが定義されているレコードに記載されているVsビット(Vs)53を偽(F)に書き換える。
(4)ステップS504
続いて、サービスプロセッサ(SP)21は、I/OインターフェースからI/Oコントローラへのトランザクション送出を再開する。これによりトランザクションルーティングコントローラ(Txn Routing CTL)143内に滞留していたトランザクションは、更新されたルーティング情報に従い、マスターデバイスのみへルーティングされてI/Oインターフェースから送出される事になる。
(1)ステップS601
障害の発生等、何らかの理由によりマスターデバイスとスレーブデバイスの切り替えを行う必要が生じたとき、サービスプロセッサ(SP)21は、先に示したミラーリングからコールドスタンバイへの移行時と同様に、各I/OインターフェースからI/Oコントローラへのトランザクション送出を一時的に抑止する。
(2)ステップS602
サービスプロセッサ(SP)21は、一定時間の待ち合わせを行う。
(3)ステップS603
サービスプロセッサ(SP)21は、ルーティングテーブル(Routing Table)142中の当該デバイスに対応するレコードのVmビット(Vm)51を偽(F)に更新し、Vsビット(Vs)53を真(T)に更新する。すなわち、サービスプロセッサ(SP)21は、コールドスタンバイ状態にあるスレーブデバイスを切り替えて新しいマスターデバイスとする。
(4)ステップS604
サービスプロセッサ(SP)21は、I/Oインターフェースからのトランザクション送出を再開する。このとき、サービスプロセッサ(SP)21は、新しいマスターデバイスに対して、トランザクション送出を行う。
第1の効果は、ルーティングテーブルに格納されるルーティング情報にVmビット、マスターデバイスID、Vsビット、スレーブデバイスIDを付加しており、トランザクションルーティングコントローラが当該ルーティング情報を参照してトランザクション送出先のI/Oデバイスが二重化されている場合に二重化されたマスターデバイスとスレーブデバイスの双方又はいずれか一方にトランザクション送出できる仕組みを具備したことにより、I/Oデバイスのミラーリングやコールドスタンバイを任意に実現できる事である。
12… プロセッサ(CPU)
13… フロントサイドバス(FSB:Front Side Bus)
14… メモリコントローラ(MEMCTL:Memory Controller)
141… FSBインターフェース(FBS I/F)
142… ルーティングテーブル(Routing Table)
143… トランザクションルーティングコントローラ(Txn Routing CTL)
144… メモリインターフェース(MEM I/F)
145… I/Oインターフェース(I/O I/F)
146… I/Oインターフェース(I/O I/F)
147… SPインターフェース(SP I/F)
15… メモリ(MEM:Memory)
16… I/Oコントローラ(IOCTL:Input/Output Controller)
17… I/Oコントローラ(IOCTL)
18… PCIバス(PCI−Bus)
19… PCIバス(PCI−Bus)
21… サービスプロセッサ(SP:Service Processor)
30… I/Oデバイス(Master Device)
31… ファンクション(Function)a
32… ファンクション(Function)b
33… ファンクション(Function)c
40… I/Oデバイス(Slave Device)
41… ファンクション(Function)a’
42… ファンクション(Function)b’
43… ファンクション(Function)c’
51… Vmビット(Vm)
52… マスターデバイスID(Master DID)
53… Vsビット(Vs)
54… スレーブデバイスID(Slave DID)
55… アドレスオフセット(Addr. Offset)
56… アドレス範囲(Addr. Range)
Claims (18)
- I/Oデバイスへのルーティングが有効である事を示す有効ビットに関する情報、及び前記I/Oデバイスへのルーティング経路情報を格納したルーティングテーブルと、
トランザクションを受け取り、前記ルーティングテーブルを参照し、I/Oデバイスにアドレス空間が割り当てられているメモリマップドI/Oのアドレス空間のアドレスに基づいて、当該トランザクションの宛先となるI/Oデバイスを割り出し、前記有効ビットが偽である場合、前記トランザクションの送出を抑止するトランザクションルーティングコントローラと
を具備し、
前記トランザクションルーティングコントローラは、前記有効ビットが真である場合、前記ルーティング経路情報に従い、前記I/Oデバイスに対して前記トランザクションを送出し、前記I/Oデバイスの切り替えが発生した場合、前記トランザクションの送出を一時的に抑止し、一定時間の待ち合わせを行い、前記有効ビットを更新し、前記トランザクションの送出を再開する
動的切り替え装置。 - 請求項1に記載の動的切り替え装置であって、
前記ルーティングテーブルは、前記I/Oデバイスのファンクション(Function)単位で、前記有効ビット及び前記ルーティング経路情報を対応付けて格納し、
前記トランザクションルーティングコントローラは、前記トランザクションを受け取り、前記ルーティングテーブルを参照し、前記メモリマップドI/Oのアドレス空間のアドレスに基づいて、当該トランザクションの宛先となるI/Oデバイスのファンクションを割り出し、前記有効ビットが真である場合、前記ルーティング経路情報に従い、前記I/Oデバイスのファンクションに対して前記トランザクションを送出する
動的切り替え装置。 - 請求項1又は2に記載の動的切り替え装置であって、
前記トランザクションルーティングコントローラは、前記トランザクションに対するリプライ(応答)又は割り込みを受け取り、前記ルーティングテーブルを参照し、前記有効ビットが真であり、前記ルーティング経路情報において前記I/Oデバイスが前記トランザクションの送出元である場合、前記ルーティング経路情報に従い、適切な送出先に対して、前記トランザクションを送出する
動的切り替え装置。 - 請求項1乃至3のいずれか一項に記載の動的切り替え装置であって、
前記ルーティングテーブルは、
前記I/Oデバイスのうちマスターデバイスへのルーティングが有効である事を示す有効ビットであるVmビットと、
前記I/Oデバイスのうちスレーブデバイスへのルーティングが有効である事を示す有効ビットであるVsビットと
を含み、
前記トランザクションルーティングコントローラは、前記Vmビット及び前記Vsビットが共に真である場合、前記マスターデバイス及び前記スレーブデバイスの双方に対して前記トランザクションを送出する
動的切り替え装置。 - 請求項4に記載の動的切り替え装置であって、
前記トランザクションルーティングコントローラは、前記Vmビットが偽であり、前記Vsビットが真である場合、前記スレーブデバイスに対して前記トランザクションを送出する
動的切り替え装置。 - 請求項1乃至3のいずれか一項に記載の動的切り替え装置であって、
前記ルーティングテーブルは、
前記I/Oデバイスの一つである第1のI/Oデバイスのうちマスターデバイスへのルーティングが有効である事を示す有効ビットである第1のVmビットと、
前記第1のI/Oデバイスのうちスレーブデバイスへのルーティングが有効である事を示す有効ビットである第1のVsビットと
前記I/Oデバイスの他の一つである第2のI/Oデバイスのうちマスターデバイスへのルーティングが有効である事を示す有効ビットである第2のVmビットと、
前記第2のI/Oデバイスのうちスレーブデバイスへのルーティングが有効である事を示す有効ビットである第2のVsビットと
を含み、
前記第1のI/Oデバイスをマスターデバイスとし、前記第2のI/Oデバイスをスレーブデバイスとして、
ミラーリングの設定のとき、前記第1のVmビットと前記第1のVsビットとは真とされ、前記第2のVmビットと前記第2のVsビットとは偽とされ、前記メモリマップドI/Oのアドレス空間に、当該マスターデバイスと当該スレーブデバイスとに一つの共通なアドレス領域が割り当てられ、
コールドスタンバイの設定のとき、前記第1のVmビットは真とされ、前記第1のVsビットと前記第2のVmビットと前記第2のVsビットとは偽とされ、前記メモリマップドI/Oのアドレス空間に、当該マスターデバイスと当該スレーブデバイスとに一つの共通なアドレス領域が割り当てられ、
前記第1のI/Oデバイスと、前記第2のI/Oデバイスとを別個に動作させるとき、前記第1のVmビットは真、前記第1のVsビットとは偽とされ、前記第2のVmビットは真、前記第2のVsビットとは偽とされ、前記メモリマップドI/Oのアドレス空間に、当該マスターデバイスと当該スレーブデバイスとに別々のアドレス領域が割り当てられる
動的切り替え装置。 - トランザクションを受け取ると、I/Oデバイスへのルーティングが有効である事を示す有効ビットに関する情報、及び前記I/Oデバイスへのルーティング経路情報を格納したルーティングテーブルを参照するステップと、
I/Oデバイスにアドレス空間が割り当てられているメモリマップドI/Oのアドレス空間のアドレスに基づいて、当該トランザクションの宛先となるI/Oデバイスを割り出すステップと、
前記有効ビットが偽である場合、前記トランザクションの送出を抑止するステップと、
前記有効ビットが真である場合、前記ルーティング経路情報に従い、前記I/Oデバイスに対して前記トランザクションを送出するステップと、
前記I/Oデバイスの切り替えが発生した場合、前記トランザクションの送出を一時的に抑止し、一定時間の待ち合わせを行い、前記有効ビットを更新し、前記トランザクションの送出を再開するステップと
を含む
動的切り替え方法。 - 請求項7に記載の動的切り替え方法であって、
前記ルーティングテーブルにおいて、前記I/Oデバイスのファンクション(Function)単位で、前記有効ビット及び前記ルーティング経路情報を対応付けるステップと、
前記トランザクションを受け取ると、前記ルーティングテーブルを参照し、前記メモリマップドI/Oのアドレス空間のアドレスに基づいて、当該トランザクションの宛先となるI/Oデバイスのファンクションを割り出すステップと、
前記有効ビットが真である場合、前記ルーティング経路情報に従い、前記I/Oデバイスのファンクションに対して前記トランザクションを送出するステップと
を更に含む
動的切り替え方法。 - 請求項7又は8に記載の動的切り替え方法であって、
前記トランザクションに対するリプライ(応答)又は割り込みを受け取ると、前記ルーティングテーブルを参照するステップと、
前記有効ビットが真であり、前記ルーティング経路情報において前記I/Oデバイスが前記トランザクションの送出元である場合、前記ルーティング経路情報に従い、適切な送出先に対して、前記トランザクションを送出するステップと
を更に含む
動的切り替え方法。 - 請求項7乃至9のいずれか一項に記載の動的切り替え方法であって、
前記ルーティングテーブルは、
前記I/Oデバイスのうちマスターデバイスへのルーティングが有効である事を示す有効ビットであるVmビットと、
前記I/Oデバイスのうちスレーブデバイスへのルーティングが有効である事を示す有効ビットであるVsビットと
を含み、
前記Vmビット及び前記Vsビットが共に真である場合、前記マスターデバイス及び前記スレーブデバイスの双方に対して前記トランザクションを送出するステップ
を更に含む
動的切り替え方法。 - 請求項10に記載の動的切り替え方法であって、
前記Vmビットが偽であり、前記Vsビットが真である場合、前記スレーブデバイスに対して前記トランザクションを送出するステップ
を更に含む
動的切り替え方法。 - 請求項7乃至9のいずれか一項に記載の動的切り替え方法であって、
前記ルーティングテーブルは、
前記I/Oデバイスの一つである第1のI/Oデバイスのうちマスターデバイスへのルーティングが有効である事を示す有効ビットである第1のVmビットと、
前記第1のI/Oデバイスのうちスレーブデバイスへのルーティングが有効である事を示す有効ビットである第1のVsビットと
前記I/Oデバイスの他の一つである第2のI/Oデバイスのうちマスターデバイスへのルーティングが有効である事を示す有効ビットである第2のVmビットと、
前記第2のI/Oデバイスのうちスレーブデバイスへのルーティングが有効である事を示す有効ビットである第2のVsビットと
を含み、
前記第1のI/Oデバイスをマスターデバイスとし、前記第2のI/Oデバイスをスレーブデバイスとして、
ミラーリングの設定のとき、前記第1のVmビットと前記第1のVsビットとは真とされ、前記第2のVmビットと前記第2のVsビットとは偽とされ、前記メモリマップドI/Oのアドレス空間に、当該マスターデバイスと当該スレーブデバイスとに一つの共通なアドレス領域が割り当てられ、
コールドスタンバイの設定のとき、前記第1のVmビットは真とされ、前記第1のVsビットと前記第2のVmビットと前記第2のVsビットとは偽とされ、前記メモリマップドI/Oのアドレス空間に、当該マスターデバイスと当該スレーブデバイスとに一つの共通なアドレス領域が割り当てられ、
前記第1のI/Oデバイスと、前記第2のI/Oデバイスとを別個に動作させるとき、前記第1のVmビットは真、前記第1のVsビットとは偽とされ、前記第2のVmビットは真、前記第2のVsビットとは偽とされ、前記メモリマップドI/Oのアドレス空間に、当該マスターデバイスと当該スレーブデバイスとに別々のアドレス領域が割り当てられる
動的切り替え方法。 - トランザクションを受け取ると、I/Oデバイスへのルーティングが有効である事を示す有効ビットに関する情報、及び前記I/Oデバイスへのルーティング経路情報を格納したルーティングテーブルを参照するステップと、
I/Oデバイスにアドレス空間が割り当てられているメモリマップドI/Oのアドレス空間のアドレスに基づいて、当該トランザクションの宛先となるI/Oデバイスを割り出すステップと、
前記有効ビットが偽である場合、前記トランザクションの送出を抑止するステップと、
前記有効ビットが真である場合、前記ルーティング経路情報に従い、前記I/Oデバイスに対して前記トランザクションを送出するステップと、
前記I/Oデバイスの切り替えが発生した場合、前記トランザクションの送出を一時的に抑止し、一定時間の待ち合わせを行い、前記有効ビットを更新し、前記トランザクションの送出を再開するステップと
をコンピュータに実行させるための
動的切り替えプログラム。 - 請求項13に記載の動的切り替えプログラムであって、
前記ルーティングテーブルにおいて、前記I/Oデバイスのファンクション(Function)単位で、前記有効ビット及び前記ルーティング経路情報を対応付けるステップと、
前記トランザクションを受け取ると、前記ルーティングテーブルを参照し、前記メモリマップドI/Oのアドレス空間のアドレスに基づいて、当該トランザクションの宛先となるI/Oデバイスのファンクションを割り出すステップと、
前記有効ビットが真である場合、前記ルーティング経路情報に従い、前記I/Oデバイスのファンクションに対して前記トランザクションを送出するステップと
を更にコンピュータに実行させるための
動的切り替えプログラム。 - 請求項13又は14に記載の動的切り替えプログラムであって、
前記トランザクションに対するリプライ(応答)又は割り込みを受け取ると、前記ルーティングテーブルを参照するステップと、
前記有効ビットが真であり、前記ルーティング経路情報において前記I/Oデバイスが前記トランザクションの送出元である場合、前記ルーティング経路情報に従い、適切な送出先に対して、前記トランザクションを送出するステップと
を更にコンピュータに実行させるための
動的切り替えプログラム。 - 請求項13乃至15のいずれか一項に記載の動的切り替えプログラムであって、
前記ルーティングテーブルは、
前記I/Oデバイスのうちマスターデバイスへのルーティングが有効である事を示す有効ビットであるVmビットと、
前記I/Oデバイスのうちスレーブデバイスへのルーティングが有効である事を示す有効ビットであるVsビットと
を含み、
前記Vmビット及び前記Vsビットが共に真である場合、前記マスターデバイス及び前記スレーブデバイスの双方に対して前記トランザクションを送出するステップ
を更にコンピュータに実行させるための
動的切り替えプログラム。 - 請求項16に記載の動的切り替えプログラムであって、
前記Vmビットが偽であり、前記Vsビットが真である場合、前記スレーブデバイスに対して前記トランザクションを送出するステップ
を更にコンピュータに実行させるための
動的切り替えプログラム。 - 請求項13乃至15のいずれか一項に記載の動的切り替え方法であって、
前記ルーティングテーブルは、
前記I/Oデバイスの一つである第1のI/Oデバイスのうちマスターデバイスへのルーティングが有効である事を示す有効ビットである第1のVmビットと、
前記第1のI/Oデバイスのうちスレーブデバイスへのルーティングが有効である事を示す有効ビットである第1のVsビットと
前記I/Oデバイスの他の一つである第2のI/Oデバイスのうちマスターデバイスへのルーティングが有効である事を示す有効ビットである第2のVmビットと、
前記第2のI/Oデバイスのうちスレーブデバイスへのルーティングが有効である事を示す有効ビットである第2のVsビットと
を含み、
前記第1のI/Oデバイスをマスターデバイスとし、前記第2のI/Oデバイスをスレーブデバイスとして、
ミラーリングの設定のとき、前記第1のVmビットと前記第1のVsビットとは真とされ、前記第2のVmビットと前記第2のVsビットとは偽とされ、前記メモリマップドI/Oのアドレス空間に、当該マスターデバイスと当該スレーブデバイスとに一つの共通なアドレス領域が割り当てられ、
コールドスタンバイの設定のとき、前記第1のVmビットは真とされ、前記第1のVsビットと前記第2のVmビットと前記第2のVsビットとは偽とされ、前記メモリマップドI/Oのアドレス空間に、当該マスターデバイスと当該スレーブデバイスとに一つの共通なアドレス領域が割り当てられ、
前記第1のI/Oデバイスと、前記第2のI/Oデバイスとを別個に動作させるとき、前記第1のVmビットは真、前記第1のVsビットとは偽とされ、前記第2のVmビットは真、前記第2のVsビットとは偽とされ、前記メモリマップドI/Oのアドレス空間に、当該マスターデバイスと当該スレーブデバイスとに別々のアドレス領域が割り当てられる
動的切り替えプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008035240A JP4984077B2 (ja) | 2008-02-15 | 2008-02-15 | 動的切り替え装置、動的切り替え方法、及び動的切り替えプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008035240A JP4984077B2 (ja) | 2008-02-15 | 2008-02-15 | 動的切り替え装置、動的切り替え方法、及び動的切り替えプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009193469A JP2009193469A (ja) | 2009-08-27 |
JP4984077B2 true JP4984077B2 (ja) | 2012-07-25 |
Family
ID=41075403
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008035240A Expired - Fee Related JP4984077B2 (ja) | 2008-02-15 | 2008-02-15 | 動的切り替え装置、動的切り替え方法、及び動的切り替えプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4984077B2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4944220B2 (ja) * | 2010-03-12 | 2012-05-30 | 株式会社バッファロー | 記憶装置及びその制御プログラム |
JP2012128697A (ja) * | 2010-12-16 | 2012-07-05 | Hitachi Ltd | 情報処理装置 |
JP5240872B2 (ja) * | 2011-02-10 | 2013-07-17 | エヌイーシーコンピュータテクノ株式会社 | 情報処理装置及び情報処理装置の動作方法 |
JP5733384B2 (ja) * | 2011-02-24 | 2015-06-10 | 富士通株式会社 | 情報処理装置 |
WO2017122298A1 (ja) | 2016-01-13 | 2017-07-20 | 三菱電機株式会社 | 通信システム、通信機器および通信先の切換え方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04186422A (ja) * | 1990-11-21 | 1992-07-03 | Nec Corp | 二重化ボリュームシステム |
JP2806749B2 (ja) * | 1993-08-04 | 1998-09-30 | 日本電気株式会社 | ファイル装置二重化時のi/o負荷分散制御方式 |
JPH09305327A (ja) * | 1996-05-20 | 1997-11-28 | Pfu Ltd | ディスク装置 |
JP2001344191A (ja) * | 2000-06-02 | 2001-12-14 | Nec Soft Ltd | 二重化入出力制御方式および二重化入出力制御方法 |
JP3862011B2 (ja) * | 2002-08-30 | 2006-12-27 | 日本電気株式会社 | フォールトトレラントコンピュータ及びそのディスク管理機構及びディスク管理プログラム |
JP4111793B2 (ja) * | 2002-09-26 | 2008-07-02 | 富士通株式会社 | 中継システム |
JP4617847B2 (ja) * | 2004-11-04 | 2011-01-26 | 株式会社日立製作所 | 情報処理システム及びアクセス方法 |
JP4984051B2 (ja) * | 2007-03-08 | 2012-07-25 | 日本電気株式会社 | 動的縮退装置、方法 |
-
2008
- 2008-02-15 JP JP2008035240A patent/JP4984077B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2009193469A (ja) | 2009-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4585463B2 (ja) | 仮想計算機システムを機能させるためのプログラム | |
CN106776159B (zh) | 具有故障转移的快速外围元件互连网络系统与操作方法 | |
US7844852B2 (en) | Data mirror cluster system, method and computer program for synchronizing data in data mirror cluster system | |
US7441150B2 (en) | Fault tolerant computer system and interrupt control method for the same | |
JP4984077B2 (ja) | 動的切り替え装置、動的切り替え方法、及び動的切り替えプログラム | |
US20100042795A1 (en) | Storage system, storage apparatus, and remote copy method | |
JP2006285919A (ja) | 計算機システム、計算機及びリモートコピー処理方法 | |
JP6098778B2 (ja) | 冗長化システム、冗長化方法、冗長化システムの可用性向上方法、及びプログラム | |
JPH09259098A (ja) | 分散メモリ型マルチプロセッサシステム及び故障回復方法 | |
US9398094B2 (en) | Data transfer device | |
JP2008046685A (ja) | 二重化システム及び系切り換え方法 | |
US20210089379A1 (en) | Computer system | |
US8090907B2 (en) | Method for migration of synchronous remote copy service to a virtualization appliance | |
US6810010B1 (en) | Redundant LAN system, active line/stand-by line switching method, and recording medium | |
JP5287974B2 (ja) | 演算処理システム、再同期方法、およびファームプログラム | |
JP3774826B2 (ja) | 情報処理装置 | |
JP4984051B2 (ja) | 動的縮退装置、方法 | |
JP2007264976A (ja) | コンピュータシステム、データ退避方法、及び、プログラム | |
JP5251690B2 (ja) | 遠隔コピーシステムおよび遠隔コピー方法 | |
JP5703860B2 (ja) | フォールトトレラントシステム、メモリ制御方法、及びプログラム | |
US20220083564A1 (en) | Maintaining consistency of asynchronous replication | |
JP6658299B2 (ja) | 情報処理装置及び情報処理装置の制御方法 | |
KR19990074420A (ko) | 특정 신호를 이용하여 이중화 방식을 구현하기 위한 메모리제어 방법 | |
JP2000353106A (ja) | データ引き継ぎ装置および方法 | |
WO2014076765A1 (ja) | データ処理装置及びデータ処理方法及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110110 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120116 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120312 |
|
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: 20120328 |
|
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: 20120410 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150511 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |