JP2008225534A - 動的縮退装置、方法 - Google Patents

動的縮退装置、方法 Download PDF

Info

Publication number
JP2008225534A
JP2008225534A JP2007058457A JP2007058457A JP2008225534A JP 2008225534 A JP2008225534 A JP 2008225534A JP 2007058457 A JP2007058457 A JP 2007058457A JP 2007058457 A JP2007058457 A JP 2007058457A JP 2008225534 A JP2008225534 A JP 2008225534A
Authority
JP
Japan
Prior art keywords
transaction
routing
identification information
master device
slave
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.)
Granted
Application number
JP2007058457A
Other languages
English (en)
Other versions
JP4984051B2 (ja
Inventor
Takahiro Tanioka
隆浩 谷岡
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2007058457A priority Critical patent/JP4984051B2/ja
Publication of JP2008225534A publication Critical patent/JP2008225534A/ja
Application granted granted Critical
Publication of JP4984051B2 publication Critical patent/JP4984051B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】ハードウェア・レベルでI/Oデバイスの二重化を実現すると共に、マスターデバイスの動的縮退を可能とすることである。
【解決手段】マスターデバイスとスレーブデバイスとに二重化されたI/Oデバイスの動的縮退装置によって解決する。トランザクションルーティングコントローラ143は、トランザクションを受信し、ルーティングし、送出する。ルーティングテーブル142は、I/Oデバイスの二重化が有効であることを示す有効情報と、マスターデバイス識別情報と、スレーブデバイス識別情報とを有する。サービスプロセッサ21は、前記トランザクションルーティングコントローラ143と、前記ルーティングテーブル142とを制御する。
【選択図】図2

Description

本発明は、マスターデバイスとスレーブデバイスとに二重化されたI/Oデバイスの動的縮退装置、方法に関する。
PCIデバイスに代表されるI/Oコントローラデバイスを二重化し、システムの耐故障性を向上させるものとして、従来からフォルトトレラントコンピュータなどが知られる。フォルトトレラントコンピュータなどでは、二重化されたI/Oデバイスへのアクセスをソフトウェアのデバイスドライバ層で吸収し、上位層のオペレーティングシステムやアプリケーションからは単一のI/Oデバイスとして見えるようにする手法が採用されている。この方式の問題点は、二重化を実現するために、専用のデバイスドライバが必要となることである。
この問題点を解決するために、I/Oデバイスの二重化をハードウェア層で実現するようにしたシステムも知られる。しかし、ハードウェア層の機能で二重化されたI/Oデバイスを、障害などを契機に縮退する場合には、システムを一旦ダウンさせ、一方を切り離した後に再立ち上げを行う方法が採られている。この縮退方法は、システムの耐故障性の観点から問題となっている。
特開2000−148523号公報(特許文献1参照)には「二重化メモリ装置」の発明が記載されている。この二重化メモリ装置においては、共有メモリ部は、バスで接続した複数のプロセッサが扱うデータを運用系メモリ及び待機系メモリに二重化して格納する。障害検知部は、前記運用系メモリでの障害発生を検知する。メモリ切替部は、前記障害検知部が障害発生を検知した場合に、前記バスの使用権を調停することなく前記データの格納先を前記運用系メモリから前記待機系メモリに自発的に切り替える。
特開2001−331467号公報(特許文献2参照)には「計算機システム」の発明が記載されている。この計算機システムは、独立して演算処理が可能な複数の計算機と、記憶装置と、ネットワークとを備える。記憶装置は、当該複数の計算機が共通に利用するデータを記憶する共有記憶領域を提供する。ネットワークは、これら複数の計算機および記憶装置を接続する。各計算機はシステムメモリ上に上記記憶装置に対応するエリアを確保するとともに、当該エリアへのアクセスに応じて上記共有記憶領域に対するアクセスを行う。サーバ装置を、上記記憶装置とネットワークとの間に設ける。サーバ装置は、上記共有記憶領域を管理して上記各計算機からのアクセスに応じた処理を行うとともに、各計算機の動作状態を監視し、その監視結果に応じて各計算機による当該共有記憶領域への書込みの許可/禁止を制御する。
特開平5−313831号公報(特許文献3参照)には「二重化ボリュームの制御方式」の発明が記載されている。この二重化ボリュームの制御方式においては、二重化されたボリュームに対してアクセスを行いボリュームの制御を行う。二重化論理ボリュームアドレス格納手段と二重化ボリュームの状態を示す運用状態格納手段とを備える。これらの手段内の情報に基づいて、前記二重化ボリュームに対する制御を実行する。すなわち、二重化し、常に両系の状態を同期して運用する形態のI/Oデバイスの片系に障害が発生した際に、障害系を切り離して継続運用する際のオーバーヘッドを軽減するものである。
特開平11−242608号公報(特許文献4参照)には「二重化制御システム」の発明が記載されている。この二重化制御システムは、二以上の装置から重複したデータが周期的に送信される場合に、前記装置のうち一のマスタとなる装置からのデータを採用する二重化制御システムである。二以上のメモリ手段は、前記二以上の装置それぞれに対応して設けられ、その各々が対応する装置から送信されたデータを格納する。マスタ指定手段は、前記二以上のメモリ手段のうち一つを前記マスタからのデータを格納するものとして指定するとともに、当該メモリ手段に対応する装置からのデータ到着が遅れた場合には、他のメモリ手段をマスタからのデータを格納するものとして指定し直す。
特開2000−148523号公報 特開2001−331467号公報 特開平5−313831号公報 特開平11−242608号公報
本発明の課題は、トランザクションをルーティングする際に用いられるルーティングテーブルに、I/Oデバイスの二重化が有効であることを示す有効情報と、当該有効情報に関連付けられたスレーブデバイスへの経路を示すスレーブデバイス識別情報とを追加することにより、ハードウェア・レベルでI/Oデバイスの二重化を実現すると共に、マスターデバイスの動的縮退を可能とすることである。
以下に、[発明を実施するための最良の形態]で使用される番号・符号を用いて、[課題を解決するための手段]を説明する。これらの番号・符号は、[特許請求の範囲]の記載と[発明を実施するための最良の形態]との対応関係を明らかにするために括弧付きで付加されたものである。ただし、それらの番号・符号を、[特許請求の範囲]に記載されている発明の技術的範囲の解釈に用いてはならない。
本発明は、マスターデバイス(30)とスレーブデバイス(40)とに二重化されたI/Oデバイスの動的縮退装置である。トランザクションルーティングコントローラ(143)は、トランザクションを受信し、ルーティングし、送出する。ルーティングテーブル(142)は、I/Oデバイスの二重化が有効であることを示す有効情報(54)と、当該有効情報(54)に関連付けられた二つの識別情報であって、前記マスターデバイス(30)への経路を示すマスターデバイス識別情報(53)と、前記スレーブデバイス(40)への経路を示すスレーブデバイス識別情報(55)とを有する。サービスプロセッサ(21)は、前記トランザクションルーティングコントローラ(143)と、前記ルーティングテーブル(142)とを制御する。
本発明による動的縮退装置においては、前記ルーティングテーブル(142)は、ルーティング・レコードから成る。当該ルーティング・レコードは、前記有効ビット情報(54)を格納する第一のフィールドと、前記マスターデバイス識別情報(53)を格納する第二のフィールドと、前記スレーブデバイス識別情報(55)を格納する第三のフィールドとを具備する。本発明による動的縮退装置においては、前記I/OデバイスがマルチファンクションI/Oデバイスの場合には、前記ルーティング・テーブル(142)は、前記有効情報(54)と、当該有効情報(54)に関連付けられる前記マスターデバイス識別情報(53)と、前記スレーブデバイス識別情報(55)とを、ファンクション単位に具備する。本発明による動的縮退装置においては、前記サービスプロセッサ(21)は、I/Oデバイスの二重化が有効である場合には、メモリマップドI/O空間に、前記マスターデバイス(30)と前記スレーブデバイス(40)とに共用される一つのみのアドレス領域を割り当てる。
本発明による動的縮退装置においては、前記トランザクションルーティングコントローラ(143)は、トランザクションを受信したときに、前記メモリマップドI/O空間を参照することにより、当該トランザクションの宛先となるI/Oデバイスを割り出す。また、前記ルーティングテーブル(142)を参照することにより、当該I/Oデバイスに係る前記有効情報(54)が、有効を示していた場合には、前記マスターデバイス識別情報(53)と、前記スレーブデバイス識別情報(55)とに基づいて、前記マスターデバイス(30)と前記スレーブデバイス(40)との双方に、前記トランザクションを送出する。本発明による動的縮退装置においては、前記トランザクションルーティングコントローラ(143)は、前記スレーブデバイス(40)から、リプライ・トランザクションを受信したときに、当該リプライ・トランザクションのルーティングを行うことなく、破棄する。
本発明による動的縮退方法においては、上記の動的縮退装置を使用して、二重化されたI/Oデバイスからマスターデバイス(30)を動的に縮退する方法である。受信するステップは、前記トランザクションルーティングコントローラ(143)が、トランザクションを受信する。ルーティングするステップは、前記トランザクションルーティングコントローラ(143)が、トランザクションをルーティングする。参照するステップは、前記ルーティングテーブル(142)を参照する。送出するステップは、ルーティングの宛先がI/Oデバイスであって、当該I/Oデバイスに係る前記有効情報(54)が有効を示していた場合には、前記トランザクションルーティングコントローラ(143)が、前記マスターデバイス識別情報(53)と、前記スレーブデバイス識別情報(55)とに基づいて、前記マスターデバイス(30)と前記スレーブデバイス(40)との双方に、前記トランザクションを送出する。破棄するステップは、前記トランザクションルーティングコントローラ(143)が、前記スレーブデバイス(40)から、リプライ・トランザクションを受信したときに、当該リプライ・トランザクションのルーティングを行うことなく、破棄する。二重化されたI/Oデバイスからマスターデバイス(30)を縮退するときには、以下のステップを実行する。抑止するステップは、前記サービスプロセッサ(21)が、前記送出するステップによる送出を抑止する。待ち合わせを行うステップは、一定時間待ち合わせを行う。縮退するステップは、前記サービスプロセッサ(21)が、前記マスターデバイス(30)を縮退する。更新するステップは、前記サービスプロセッサ(21)が、当該ルーティングテーブル(142)を更新する。解除するステップは、前記サービスプロセッサ(21)が、前記抑止するステップによる抑止を解除する。
本発明による動的縮退方法においては、上記の動的縮退装置を使用して、二重化されたI/Oデバイスからマスターデバイス(30)を動的に縮退する方法である。抑止するステップは、前記サービスプロセッサ(21)が、前記トランザクションルーティングコントローラ(143)によるトランザクションの送出を抑止する。待ち合わせを行うステップは、一定時間待ち合わせを行う。縮退するステップは、前記サービスプロセッサ(21)が、前記マスターデバイス(30)を縮退する。更新するステップは、前記サービスプロセッサ(21)が、前記ルーティングテーブル(142)を更新する。解除するステップは、前記サービスプロセッサ(21)が、前記抑止するステップによる抑止を解除する。
本発明によれば、トランザクションをルーティングする際に用いられるルーティングテーブルに、I/Oデバイスの二重化が有効であることを示す有効情報と、当該有効情報に関連付けられたスレーブデバイスへの経路を示すスレーブデバイス識別情報とを追加することにより、ハードウェア・レベルでI/Oデバイスの二重化を実現すると共に、マスターデバイスの動的縮退を可能とすることができる。
I/Oデバイスの二重化をハードウェア層で実現する場合、例えば、メモリを搭載したI/Oデバイスを二重化する場合を考えると、プロセッサからI/Oデバイス上のメモリへの書き込みを複製して、双方のI/Oデバイスへ書き込み、I/Oデバイスからプロセッサへの読み出しはいずれか一方のI/Oデバイスからのみアクセスする機構をチップセットに実装する方法が考えられる。この方法はI/Oデバイスをファイバーチャネル(FibreChannel)やSCSI(Small Computer System Interface)などのインタフェースに置き換え、各々の先に同一諸元のストレージデバイスを接続した構成に置き換えてもうまく機能するであろう。
しかしながら、この方式の問題点は、二系統あるチップセットからメモリやストレージデバイスまでの経路の何れかで障害が発生した場合に、システムの運用を継続したまま動的にその経路を縮退させることが困難な点にある。その理由は、一般に双方のメモリやストレージデバイスまでのアクセスレイテンシ(Access Latency)は一致しないため、任意のタイミングで片方の経路を縮退させると、仕掛かり中のトランザクションが失われてシステムの継続運用ができなくなる可能性があるためである。
このようなI/Oデバイスの動的縮退時に関わる問題は、I/OデバイスがシステムのコアI/O、すなわちシステム構成上必須となるリアルタイムクロック(RTC)や割り込みコントローラ、不揮発メモリ(NvRAM)を集約したマルチファンクションI/Oカードではさらに深刻になる。例えば、マルチファンクションI/Oカードにおける不揮発メモリのみを二重化し、他のファンクションは二重化しないことを考えると、上記の方法では到底対応できない。
図1に、本実施の形態におけるコンピュータシステムのブロック構成を示す。図1は、コンピュータシステム内で二重化されたI/Oデバイス、特に一つのI/Oデバイスに複数の機能を兼ね備えたマルチファンクションPCIデバイスをマスター・スレーブ方式で二重化した構成になっている。本実施の形態では、マルチファンクションI/Oデバイスをファンクション単位に二重化すること、及び、システム運用中に動的にマスターデバイスからスレーブデバイスへの切り替えを実現することが可能になる。
図1において、プロセッサ(Central Processing Unit)11,12は、同一のフロントサイドバス(Front Side Bus)13に接続され、対称型マルチプロセッシング(Symmetric Multi Processing)構成を形成している。また、FSB13に接続されたメモリコントローラ14は、CPU11,12、メモリ15、I/Oデバイス30,40間のトランザクションのルーティングを司る。さらに、メモリコントローラ14には、メモリ15、複数のI/Oコントローラ16,17が接続されている。I/Oコントローラ16,17は、メモリコントローラ14と、複数のPCIバス(Peripheral Components Interconnect Bus)18,19とを接続するバスブリッジである。PCIバス18にはI/Oデバイス30が、また、PCIバス19にはI/Oデバイス40が、それぞれ接続されている。I/Oデバイス30は、不揮発メモリ(Nonvolatile RAM)31と、リアルタイムクロック(Real Time Clock)32と、外部I/Oインタフェース33とを実装したマルチファンクションI/Oデバイスである。I/Oデバイス40も、I/Oデバイス30と同等の構成要素41〜43を有する。外部I/Oインタフェース33,43は、それぞれ外部入出力デバイスに接続される。
また、図1のコンピュータシステムには、システムの運用制御を司るサービスプロセッサ(Service Processor)21が搭載されている。このサービスプロセッサ21は、メモリコントローラ14をはじめ、システム内の各要素に対する初期化、モード設定、リセットなどの制御を行うことができる。なお、図中には、本実施の形態の説明に直接関係しない通信経路などは図示していない。
本実施の形態において、コンピュータシステムに接続されるプロセッサ、メモリの数は本願発明の要件に直接関与するものではなく、任意の構成において本願発明は実施可能であることは明らかである。同様に、I/Oコントローラの数、I/Oコントローラに接続されるPCIバスの数も本願発明の権利範囲に関与するものではない。また、PCIバスの代わりにPCI−XバスやPCIエクスプレス(Express)バスの他、任意のI/Oバスを用いることも可能である。さらに、I/Oデバイスの機能・構成も本実施の形態に記載する機能・構成に限定するものではない。
図2に、メモリコントローラ14の機能ブロック図を示す。図2を参照すると、メモリコントローラ14と、コンピュータシステム内の各要素13,15〜17とを接続するインタフェースが、FSBインタフェース141、メモリインタフェース144、I/Oインタフェース145,146として図示されている。各インタフェース141,144〜146を結ぶ位置に存在するのがトランザクションルーティングコントローラ143である。トランザクションルーティングコントローラ143は、各インタフェース141,144〜146から入力されるメモリリード・メモリライト・リプライ・割り込み等のトランザクションをルーティングし、適切なインタフェース141,144〜146へ出力する。これらの各種トランザクションに含まれる情報は、本願発明の解説範囲を超えるため詳細には説明しないが、メモリアクセスのターゲットアドレス、リプライデータ、リプライや割り込みのソースデバイスID、ターゲットデバイスIDなどである。また、トランザクションルーティングコントローラ143は、ルーティング経路を決定するためにルーティングテーブル142を参照する。
図3に、ルーティングテーブル142に格納されるルーティング・レコードの形式を示す。ルーティングテーブル142は、図示するような一連の情報を含むルーティング・レコードから成るテーブルである。すなわち、物理主記憶空間の各々のアドレスレンジに対するトランザクションのルーティング情報を格納したレコードからなるテーブルである。図1のコンピュータシステムは、メモリ15の他、I/Oデバイス30,40上のレジスタやメモリデバイスを物理記憶空間上にメモリマップドI/O(Memory-mapped I/O:図面においては、「MMIO」とも称す。)としてマッピングする構成を採っている。ルーティングテーブル142の一レコードに格納される情報は、これら物理記憶空間上にマッピングされた何れかのデバイスへのルーティング経路情報である。
図3のルーティング・レコードの個々のフィールドを見ると、アドレスオフセット51と、アドレスレンジ52と、マスターデバイスID53とが含まれるほか、有効ビット(VaIid)54と、スレーブデバイスID55とが追加されている。アドレスオフセット51およびアドレスレンジ52は、プロセッサ及びI/Oデバイスからのメモリアクセスに対し、当該トランザクションをルーティングすべきアドレスレンジを定義する。アドレスオフセット51は、連続したメモリ領域ごとにその領域における先頭アドレスを示す。アドレスレンジ52は、メモリ領域のサイズを示す。マスターデバイスID53は、その物理記憶空間の当該アドレスにマッピングされたメモリ15やI/Oデバイス30,40へのルーティング経路情報となる。有効ビット54は、マッピングされたデバイスが二重化されており、二重化されたスレーブデバイスへのルーティングが有効である(VaIid)ことを示す。スレーブデバイスID55は、二重化されたスレーブI/Oデバイスへのルーティング経路情報となる。
本実施の形態では、I/Oデバイスをマスター・スレーブ方式で二重化する際に、マスターデバイス30へのトランザクションを、トランザクションルーティングコントローラ143にて複製する。そして、当該トランザクションを、マスターデバイス30と、スレーブデバイス40との双方へ送出する。複製のためのルーティング情報を、メモリコントローラ14に実装するルーティングテーブル142に持たせている。
図2において、トランザクションルーティングコントローラ143は、プロセッサ11,12側のFSBインタフェース141およびI/Oデバイス30,40側のI/Oインタフェース145,146からのトランザクションを受け付ける。当該トランザクションがメモリアクセスのトランザクションであれば、ルーティングテーブル142を参照して、当該トランザクションのターゲットデバイスを決定する。そして、そのターゲットデバイスに向けたインタフェースへトランザクションを送出する。さて、ルーティングテーブル142を参照したとき、当該トランザクションの送出先デバイスが二重化されたI/Oデバイスであり、有効なスレーブデバイスが存在するか否か、すなわちスレーブデバイスへのルーティングが有効であるか否かが判明する。その結果、スレーブデバイスへのルーティングが有効である場合には、当該トランザクションをマスターデバイスとスレーブデバイスとに向けて、それぞれのI/Oインタフェース145,146へ送出する。
さらに、トランザクションルーティングコントローラ143が、FSBインタフェース141、I/Oインタフェース145、146もしくはメモリインタフェース144からメモリアクセスに対するリプライトランザクションを受け付けた場合にも、ルーティングテーブル142を参照する。そして、当該リプライトランザクションを送出したデバイスが有効なスレーブデバイスであることが判明した場合には、当該リプライトランザクションを破棄する。そうでない場合は、リプライトランザクションが指示するターゲットデバイスへルーティングする。
このように、本実施の形態では、二重化されたI/Oデバイスに対するメモリアクセスを、トランザクションルーティングコントローラ143にて複製し、それぞれのデバイスへ向けて送出する。よって、マスターデバイスに対する単一のメモリアクセスで、マスター・スレーブ両方のデバイスへのアクセスを実現することができる。
以上、メモリコントローラ14の動作概要を説明した。メモリコントローラ14の動作を更に詳述する。まず始めに、システム立ち上げ時の初期設定方法について説明する。図1に示すように、I/Oデバイス30,40を二重化する。このとき、I/Oデバイス30をマスターデバイスとし、I/Oデバイス40をスレーブデバイスとする設定が必要である。この設定は、システムの立ち上げ時にサービスプロセッサ21からルーティングテーブル142に対し、表1に記載するような情報を書き込むことにより実現される。
Figure 2008225534
表1の設定内容を詳細に説明する。表1の上方には、I/Oデバイス30に対する設定項目が三レコード分定義されている。図1では、I/Oデバイス30は、三種のファンクションを搭載したマルチファンクションI/Oカードであるので、個々のファンクションに対応するメモリマップドI/O空間のアドレスを一レコードずつ定義する。ここでは、個々のファンクション名をそれぞれA,B,Cと記載している。さらに三種のファンクションのうち、ファンクションBのみに対して二重化の設定が行われている。よって、ファンクションBに対応する二重化の有効ビットが真(T)、他のファンクションA、Cは偽(F)に定義される。また、ファンクションBに対応するスレーブデバイスへのルーティング経路情報が、スレーブデバイスIDの欄に設定される。ファンクションBに対応するスレーブデバイスは、I/Oデバイス40のファンクションB’(I/Oデバイス40側は、「’」を付加して、「B’」と記載する。)である。
表1の下方には、スレーブ側のI/Oデバイス40に対する設定項目が二レコード分定義されている。図1では、I/Oデバイス40は、スレーブデバイスとして定義されているが、I/Oデバイス40のファンクションA’,C’については、二重化定義が設定されていない。そこで、I/Oデバイス40のファンクションA’,C’は、I/Oデバイス30のファンクションA,Cとは独立した別デバイスとして動作させる。表1の下方に、これらのファンクションA’,C’に対応するルーティング経路情報が設定されている。
このような設定の結果、物理記憶空間上にマッピングされた各デバイス、ファンクションのメモリマップドI/O空間は、図4に示すようなレイアウトになる。I/Oデバイス30のファンクションA,B,CおよびI/Oデバイス40のファンクションA’,C’が個々に物理記憶空間上にマッピングされている。加えて、I/Oデバイス40のファンクションB’が、I/Oデバイス30のファンクションBと同じアドレスにマッピングされており、ソフトウェアからは単一のデバイスとして見えることがわかる。
次に、システム運用中の動作について説明する。トランザクションルーティングコントローラ143がプロセッサ11,12からのメモリリードやメモリライトなどメモリアクセス・トランザクションをFSBインタフェース141を経由して受け取ったとする。この場合、トランザクションルーティングコントローラ143はルーティングテーブル142を参照して、当該トランザクションで指定されるアドレスレンジに該当するルーティング・レコードを検索する。該当するルーティング・レコードが見つかると、そこからマスターデバイスIDを取り出す。そして、トランザクションのターゲットとなるデバイスへのルーティング経路情報に従い、メモリインタフェース144、I/Oインタフェース145、146のいずれかへトランザクションを送出する。さらに、ルーティングテーブル142の有効ビット54を参照してターゲットとなるデバイスが二重化されたI/Oデバイスであるか否かを確認する。二重化されたI/Oデバイスであることが判明したとすると、当該トランザクションをスレーブデバイスIDで指定されるデバイスへのルーティング経路情報に従い、I/Oインタフェース145、146のいずれかへトランザクションを送出する。すなわち、有効ビット54が有効の場合には、トランザクションを、マスターデバイスとスレーブデバイスとの双方へ送出する。
一方、トランザクションルーティングコントローラ143がメモリリードなどのトランザクションに対するリプライや、割り込みをいずれかのインタフェース141,144〜146から受信した場合は、トランザクションルーティングコントローラ143はルーティングテーブル142を参照する。そして、当該トランザクションの送出元のデバイスIDと一致するスレーブデバイスIDが登録されたレコードを検索する。一致するレコードが存在し、かつ有効ビット54が真(T)であれば、当該トランザクションは二重化されたスレーブデバイスからのトランザクションなので、ルーティングは行わずに廃棄する。その他の場合、トランザクションルーティングコントローラ143はトランザクションのターゲットデバイスIDに従い、ルーティング経路を決定し、適切なインタフェース141,144〜146へトランザクションを送出する。
次に、システム運用中に二重化されたI/Oデバイスのマスターデバイスを動的に縮退する手順を説明する。二重化されたI/Oデバイスにおけるマスターデバイス30を縮退する際には、サービスプロセッサ21の制御により、メモリコントローラ14中のI/Oインタフェース145,146からI/Oデバイス30,40へのトランザクション送出を一時的に抑止する。そして、先行する仕掛中のトランザクションが流れ終わるのを待ち合わせてからルーティングテーブル142を更新する。二重化されたI/Oデバイス30,40のスレーブデバイス40をマスターデバイスとして再定義し、I/Oインタフェース145,146の動作を再開することで、I/Oデバイスのマスター・スレーブ切替えを実現する。以下説明する手順は、サービスプロセッサ21が、トランザクションルーティングコントローラ143をはじめとしたシステム内の各要素の動作を制御することで実現するものである。制御の手順は、サービスプロセッサ21に実装されるプログラムによって実行される。
まず最初に、サービスプロセッサ21は、メモリコントローラ14のI/Oインタフェース145,146からI/Oコントローラ16,17へのトランザクション送出を抑止する。その結果、抑止されたトランザクションは、トランザクションルーティングコントローラ143中に存在するバッファ等に一時的に滞留する。実装に依存して、I/Oインタフェース145,146から送出を抑止するトランザクションは、二重化されたI/Oデバイスに向けたもののみに限定しても良い。この場合には、ルーティングテーブル142を参照し、トランザクションのターゲットが二重化されたI/Oデバイスか否かを調べて、トランザクションの送出・抑止を決定することになる。サービスプロセッサ21は、I/Oコントローラ16,17へのトランザクション送出を抑止したとき、I/Oコントローラ16,17からI/Oインタフェース145,146へのトランザクションは抑止しない。メモリコントローラ14は、I/Oデバイスから来るトランザクションの処理は継続する。
サービスプロセッサ21は、この状態で一定時間待ち合わせを行う。これにより、プロセッサ11,12、メモリ15などから受信し、かつ、I/Oインタフェース145,146を経由して送出済みとなっている仕掛かり中のトランザクションに対する、リプライ処理等が完了する。待ち合わせ時間はコンピュータシステムの実装に依存して適切な値を設定する。
待ち合わせ時間が経過し、I/Oデバイスに対する先行するトランザクションの処理が完了した後に、サービスプロセッサ21はマスターデバイスを縮退させる。I/Oデバイスの縮退方法は本願発明の解説範囲を超えるため、ここでは詳細に説明はしないが、PCIデバイスであれば、[a]デバイスの機能に依存して、当該デバイスのコンフィグレーション(Configuration)レジスタを操作してデバイスの動作を止める方法、[b]デバイスが接続されるバスブリッジが存在すればバスブリッジを操作してPCIバスをリセットする方法、[c]I/Oインタフェースの機能に依存して当該デバイスからのトランザクションを受け取らないようにマスクする方法などが考えられる。当該デバイスがメモリデバイスのような受動的なデバイスであれば、何もせずにそのまま放置する方法でも構わない。
マスターデバイスの動的縮退が終了したら、サービスプロセッサ21は、ルーティングテーブル142を更新する。具体的には、二重化されたデバイスが定義されているレコードに記載されるルーティング経路情報のうち、スレーブデバイスIDの情報をマスターデバイスIDに上書きし、有効ビット54を偽(F)に書き換えればよい。
最後に、サービスプロセッサ21は、I/Oインタフェース145,146からI/Oコントローラ16,17へのトランザクション送出を再開する。これによりトランザクションルーティングコントローラ143内に滞留していたトランザクションは、更新されたルーティングテーブル142に従い、新しいマスターデバイスへルーティングされ、I/Oインタフェース145,146から送出されることになる。このようにして、マスター・スレーブ方式で二重化されたI/Oデバイスのマスターデバイスとスレーブデバイスとをシステム運用中に入れ替えることができる。
以上説明したように、本実施の形態においては、以下に記載するような効果を奏する。第一の効果は、ルーティングテーブル142に格納されるルーティング・レコードに有効ビット54とスレーブデバイスID55とを追加しているので、トランザクションルーティングコントローラ143が当該ルーティング・レコードを検索・参照することにより、トランザクション送出先のI/Oデバイスが二重化されていると判断できた場合に、二重化されたマスターデバイスとスレーブデバイスとの双方に対してトランザクションを送出することができ、I/Oデバイスのマスター・スレーブ方式による二重化を実現できることである。
第二の効果は、ルーティングテーブル142に格納されるアドレス情報で定義されるメモリマップドI/O空間のマッピングが、I/Oデバイスのファンクション単位で定義できるため、二重化する対象のI/Oデバイスが複数の機能を持つマルチファンクションI/Oデバイスの場合に、ファンクション単位で各ファンクションを二重化するか、各ファンクションを個別のデバイスとして動作させるかを選択的に設定できることである。
第三の効果は、サービスプロセッサ21からメモリコントローラ14の各機能ブロック141〜146を制御することにより、一定時間だけI/Oデバイスへのトランザクションを停止し、マスターデバイスを縮退し、ルーティングテーブル142を更新し、トランザクションの処理を再開することで、二重化されたI/Oデバイスのマスターデバイスを動的に縮退し、スレーブデバイスへ動作を引き継ぐことができることである。
図1は、本実施の形態におけるコンピュータシステムのブロック構成を示す図である。 図2は、メモリコントローラ14の機能ブロック図である。 図3は、ルーティングテーブル142に格納されるルーティング・レコードの形式を示す図である。 図4は、メモリマップドI/O空間のレイアウトを示す図である。
符号の説明
11,12 プロセッサ
13 フロントサイドバス
14 メモリコントローラ
15 メモリ
16,17 I/Oコントローラ
18,19 PCIバス
21 サービスプロセッサ
30,40 I/Oデバイス
31,41 不揮発メモリ
32,42 リアルタイムクロック
33,43 外部I/Oインタフェース
51 アドレスオフセット
52 アドレスレンジ
53,55 デバイスID
54 有効ビット
141 FSBインタフェース
142 ルーティングテーブル
143 トランザクションルーティングコントローラ
144 メモリインタフェース
145,146 I/Oインタフェース

Claims (8)

  1. マスターデバイスとスレーブデバイスとに二重化されたI/Oデバイスの動的縮退装置であって、
    トランザクションを受信し、ルーティングし、送出するトランザクションルーティングコントローラと、
    I/Oデバイスの二重化が有効であることを示す有効情報と、当該有効情報に関連付けられた二つの識別情報であって、前記マスターデバイスへの経路を示すマスターデバイス識別情報と、前記スレーブデバイスへの経路を示すスレーブデバイス識別情報とを有するルーティングテーブルと、
    前記トランザクションルーティングコントローラと、前記ルーティングテーブルとを制御するサービスプロセッサと
    を具備する動的縮退装置。
  2. 前記ルーティングテーブルは、ルーティング・レコードから成り、
    当該ルーティング・レコードは、
    前記有効ビット情報を格納する第一のフィールドと、
    前記マスターデバイス識別情報を格納する第二のフィールドと、
    前記スレーブデバイス識別情報を格納する第三のフィールドと
    を具備する請求項1記載の動的縮退装置。
  3. 前記I/OデバイスがマルチファンクションI/Oデバイスの場合には、
    前記ルーティング・テーブルは、
    前記有効情報と、当該有効情報に関連付けられる前記マスターデバイス識別情報と、前記スレーブデバイス識別情報とを、ファンクション単位に具備する
    請求項1又は2記載の動的縮退装置。
  4. 前記サービスプロセッサは、
    I/Oデバイスの二重化が有効である場合には、メモリマップドI/O空間に、前記マスターデバイスと前記スレーブデバイスとに共用される一つのみのアドレス領域を割り当てる
    請求項1〜3いずれか1項に記載の動的縮退装置。
  5. 前記トランザクションルーティングコントローラは、
    トランザクションを受信したときに、前記メモリマップドI/O空間を参照することにより、当該トランザクションの宛先となるI/Oデバイスを割り出し、
    前記ルーティングテーブルを参照することにより、当該I/Oデバイスに係る前記有効情報が、有効を示していた場合には、前記マスターデバイス識別情報と、前記スレーブデバイス識別情報とに基づいて、前記マスターデバイスと前記スレーブデバイスとの双方に、前記トランザクションを送出する
    請求項4記載の動的縮退装置。
  6. 前記トランザクションルーティングコントローラは、
    前記スレーブデバイスから、リプライ・トランザクションを受信したときに、当該リプライ・トランザクションのルーティングを行うことなく、破棄する
    請求項5記載の動的縮退装置。
  7. 請求項1〜4いずれか1項に記載の動的縮退装置を使用して、二重化されたI/Oデバイスからマスターデバイスを動的に縮退する方法であって、
    前記トランザクションルーティングコントローラが、トランザクションを受信するステップと、
    前記トランザクションルーティングコントローラが、トランザクションをルーティングするステップと、
    前記ルーティングテーブルを参照するステップと、
    ルーティングの宛先がI/Oデバイスであって、当該I/Oデバイスに係る前記有効情報が有効を示していた場合には、前記トランザクションルーティングコントローラが、前記マスターデバイス識別情報と、前記スレーブデバイス識別情報とに基づいて、前記マスターデバイスと前記スレーブデバイスとの双方に、前記トランザクションを送出するステップと、
    前記トランザクションルーティングコントローラが、前記スレーブデバイスから、リプライ・トランザクションを受信したときに、当該リプライ・トランザクションのルーティングを行うことなく、破棄するステップと、
    二重化されたI/Oデバイスからマスターデバイスを縮退するときには、
    前記サービスプロセッサが、前記送出するステップによる送出を抑止するステップと、
    一定時間待ち合わせを行うステップと、
    前記サービスプロセッサが、前記マスターデバイスを縮退するステップと、
    前記サービスプロセッサが、当該ルーティングテーブルを更新するステップと、
    前記サービスプロセッサが、前記抑止するステップによる抑止を解除するステップと
    を有する動的縮退方法。
  8. 請求項6記載の動的縮退装置を使用して、二重化されたI/Oデバイスからマスターデバイスを動的に縮退する方法であって、
    前記サービスプロセッサが、前記トランザクションルーティングコントローラによるトランザクションの送出を抑止するステップと、
    一定時間待ち合わせを行うステップと、
    前記サービスプロセッサが、前記マスターデバイスを縮退するステップと、
    前記サービスプロセッサが、前記ルーティングテーブルを更新するステップと、
    前記サービスプロセッサが、前記抑止するステップによる抑止を解除するステップと
    を有する動的縮退方法。
JP2007058457A 2007-03-08 2007-03-08 動的縮退装置、方法 Expired - Fee Related JP4984051B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007058457A JP4984051B2 (ja) 2007-03-08 2007-03-08 動的縮退装置、方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007058457A JP4984051B2 (ja) 2007-03-08 2007-03-08 動的縮退装置、方法

Publications (2)

Publication Number Publication Date
JP2008225534A true JP2008225534A (ja) 2008-09-25
JP4984051B2 JP4984051B2 (ja) 2012-07-25

Family

ID=39844132

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007058457A Expired - Fee Related JP4984051B2 (ja) 2007-03-08 2007-03-08 動的縮退装置、方法

Country Status (1)

Country Link
JP (1) JP4984051B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009193469A (ja) * 2008-02-15 2009-08-27 Nec Corp 動的切り替え装置、動的切り替え方法、及び動的切り替えプログラム
JP2012168650A (ja) * 2011-02-10 2012-09-06 Nec Computertechno Ltd 情報処理装置及び情報処理装置の動作方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04186422A (ja) * 1990-11-21 1992-07-03 Nec Corp 二重化ボリュームシステム
JPH0744435A (ja) * 1993-08-04 1995-02-14 Nec Corp ファイル装置二重化時のi/o負荷分散制御方式
JPH09305327A (ja) * 1996-05-20 1997-11-28 Pfu Ltd ディスク装置
JP2001344191A (ja) * 2000-06-02 2001-12-14 Nec Soft Ltd 二重化入出力制御方式および二重化入出力制御方法
JP2004094433A (ja) * 2002-08-30 2004-03-25 Nec Corp フォールトトレラントコンピュータ及びそのディスク管理機構及びディスク管理プログラム
JP2004120411A (ja) * 2002-09-26 2004-04-15 Fujitsu Ltd 中継システム
JP2006154880A (ja) * 2004-11-04 2006-06-15 Hitachi Ltd 情報処理システム及びアクセス方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04186422A (ja) * 1990-11-21 1992-07-03 Nec Corp 二重化ボリュームシステム
JPH0744435A (ja) * 1993-08-04 1995-02-14 Nec Corp ファイル装置二重化時のi/o負荷分散制御方式
JPH09305327A (ja) * 1996-05-20 1997-11-28 Pfu Ltd ディスク装置
JP2001344191A (ja) * 2000-06-02 2001-12-14 Nec Soft Ltd 二重化入出力制御方式および二重化入出力制御方法
JP2004094433A (ja) * 2002-08-30 2004-03-25 Nec Corp フォールトトレラントコンピュータ及びそのディスク管理機構及びディスク管理プログラム
JP2004120411A (ja) * 2002-09-26 2004-04-15 Fujitsu Ltd 中継システム
JP2006154880A (ja) * 2004-11-04 2006-06-15 Hitachi Ltd 情報処理システム及びアクセス方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009193469A (ja) * 2008-02-15 2009-08-27 Nec Corp 動的切り替え装置、動的切り替え方法、及び動的切り替えプログラム
JP2012168650A (ja) * 2011-02-10 2012-09-06 Nec Computertechno Ltd 情報処理装置及び情報処理装置の動作方法

Also Published As

Publication number Publication date
JP4984051B2 (ja) 2012-07-25

Similar Documents

Publication Publication Date Title
CN106776159B (zh) 具有故障转移的快速外围元件互连网络系统与操作方法
US6449699B2 (en) Apparatus and method for partitioned memory protection in cache coherent symmetric multiprocessor systems
US7469321B2 (en) Software process migration between coherency regions without cache purges
US6826123B1 (en) Global recovery for time of day synchronization
US7668923B2 (en) Master-slave adapter
US6647453B1 (en) System and method for providing forward progress and avoiding starvation and livelock in a multiprocessor computer system
US20050081080A1 (en) Error recovery for data processing systems transferring message packets through communications adapters
EP2634696B1 (en) Information processing apparatus, control method, and control program
US20050091383A1 (en) Efficient zero copy transfer of messages between nodes in a data processing system
US7441150B2 (en) Fault tolerant computer system and interrupt control method for the same
JP6098778B2 (ja) 冗長化システム、冗長化方法、冗長化システムの可用性向上方法、及びプログラム
US20050080869A1 (en) Transferring message packets from a first node to a plurality of nodes in broadcast fashion via direct memory to memory transfer
US20050080920A1 (en) Interpartition control facility for processing commands that effectuate direct memory to memory information transfer
JP2004054949A (ja) 単一入出力ハブ下の複数ハードウェアパーティション
CN104798059A (zh) 在检查点外部处理写入数据的多个计算机系统
US7159079B2 (en) Multiprocessor system
US20070156980A1 (en) Method and apparatus for memory write performance optimization in architectures with out-of-order read/request-for-ownership response
US20050080945A1 (en) Transferring message packets from data continued in disparate areas of source memory via preloading
JP4984077B2 (ja) 動的切り替え装置、動的切り替え方法、及び動的切り替えプログラム
US20050078708A1 (en) Formatting packet headers in a communications adapter
US6532519B2 (en) Apparatus for associating cache memories with processors within a multiprocessor data processing system
JP4984051B2 (ja) 動的縮退装置、方法
Tu et al. Seamless fail-over for PCIe switched networks
US10545885B2 (en) Information processing device, information processing method, and computer program product
US7916146B1 (en) Halt context switching method and system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120116

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120118

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

Ref document number: 4984051

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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