JP5407230B2 - Pciカード、マザーボード、pciバスシステム、制御方法、及びプログラム - Google Patents

Pciカード、マザーボード、pciバスシステム、制御方法、及びプログラム Download PDF

Info

Publication number
JP5407230B2
JP5407230B2 JP2008229378A JP2008229378A JP5407230B2 JP 5407230 B2 JP5407230 B2 JP 5407230B2 JP 2008229378 A JP2008229378 A JP 2008229378A JP 2008229378 A JP2008229378 A JP 2008229378A JP 5407230 B2 JP5407230 B2 JP 5407230B2
Authority
JP
Japan
Prior art keywords
lane
transmission
failure
predetermined number
lanes
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
Application number
JP2008229378A
Other languages
English (en)
Other versions
JP2010061606A (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.)
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 JP2008229378A priority Critical patent/JP5407230B2/ja
Publication of JP2010061606A publication Critical patent/JP2010061606A/ja
Application granted granted Critical
Publication of JP5407230B2 publication Critical patent/JP5407230B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明はPCI(Peripheral Component Interconnect)カード、マザーボード、PCIバスシステム、制御方法、及びプログラムに関し、特に、障害処理を行うPCIカード、マザーボード、PCIバスシステム、制御方法、及びプログラムに関する。
PCI Expressバスは、複数レーンを束ねて利用する事が可能な構成を有している。このような構成であるため、例えば、あるレーンが故障してリンクダウンとなった場合には、当該レーンを縮退し、残りの使用可能なレーンを使用することが可能となる。
例えば、これに関連して、複数のレーンで障害が起きたときの性能低下を抑えることができるシリアル伝送制御装置が特許文献1に開示されている。
特開2005−182485号公報
しかしながら、上記特許文献1記載のシリアル伝送制御装置では、障害時にレーンが縮退されるため、保守介入による復旧が行われるまでの間、十分な性能が出せないまま処理を継続しなければならないという問題点があった。
本発明の目的は、障害時の性能低下を抑えることができるPCIカード、マザーボード、PCIバスシステム、制御方法、及びプログラムを提供することにある。
本発明のPCI(Peripheral Component Interconnect)カードは、コントローラ部と、外部回路と第1のレーンを介して接続される第1の送受信回路と、第1のレーンに障害が発生していない場合にはコントローラ部により使用されていない第2のレーンを介して、外部回路と接続される第2の送受信回路と、第1のレーンに障害が検出された場合に、使用する送受信回路を第1の送受信回路から第2の送受信回路に切り替える切替部とを含む。
本発明のマザーボードは、PCIカードと第1のレーンを介して接続される第1の送受信回路と、第1のレーンに障害が発生していない場合には使用されていない第2のレーンを介して、PCIカードと接続される第2の送受信回路とを含み、第1のレーンに障害が検出された場合に、使用する送受信回路を第1の送受信回路から第2の送受信回路に切り替えるコントローラ部を含む。
本発明のPCIバスシステムは、コントローラ部と、マザーボードと第1のレーンを介して接続される第1のPCIカード送受信回路と、第1のレーンに障害が発生していない場合にはコントローラ部により使用されていない第2のレーンを介して、マザーボードと接続される第2のPCIカード送受信回路と、第1のレーンに障害が検出された場合に、使用する送受信回路を第1のPCIカード送受信回路から第2のPCIカード送受信回路に切り替える切替部とを含むPCIカードと、PCIカードと第1のレーンを介して接続される第1のマザーボード送受信回路と、第1のレーンに障害が発生していない場合には使用されていない第2のレーンを介して、PCIカードと接続される第2のマザーボード送受信回路とを含み、第1のレーンに障害が検出された場合に、使用する送受信回路を第1のマザーボード送受信回路から第2のマザーボード送受信回路に切り替えるコントローラ部を含むマザーボードとを含む。
本発明のPCIカードの制御方法は、コントローラ部と、外部回路と第1のレーンを介して接続される第1のPCIカード送受信回路と、第1のレーンに障害が発生していない場合にはコントローラ部により使用されていない第2のレーンを介して、外部回路と接続される第2のPCIカード送受信回路とを含むPCIカードの制御方法において、第1のレーンに障害が検出された場合に、使用する送受信回路を第1の送受信回路から第2の送受信回路に切り替える。
本発明のマザーボードの制御方法は、PCIカードと第1のレーンを介して接続される第1の送受信回路と、第1のレーンに障害が発生していない場合には使用されていない第2のレーンを介して、PCIカードと接続される第2の送受信回路とを含むマザーボードの制御方法において、1レーンに障害が検出された場合に、使用する送受信回路を第1の送受信回路から第2の送受信回路に切り替える。
本発明のプログラムは、コントローラ部と、外部回路と第1のレーンを介して接続される第1のPCIカード送受信回路と、第1のレーンに障害が発生していない場合にはコントローラ部により使用されていない第2のレーンを介して、外部回路と接続される第2のPCIカード送受信回路とを含むPCIカードを制御するコンピュータに、第1のレーンに障害が検出された場合に、使用する送受信回路を第1の送受信回路から第2の送受信回路に切り替える手段として機能させる。
本発明のプログラムは、PCIカードと第1のレーンを介して接続される第1の送受信回路と、第1のレーンに障害が発生していない場合には使用されていない第2のレーンを介して、PCIカードと接続される第2の送受信回路とを含むマザーボードを制御するコンピュータに、1レーンに障害が検出された場合に、使用する送受信回路を第1の送受信回路から第2の送受信回路に切り替える手段として機能させる。
本発明は、PCIバスシステムにおいて障害時の性能低下を抑えることができる、という効果を奏する。
まず、本発明の概要を説明する。
図1は、PCIバスシステム100の構成を示す図である。PCIバスシステム100は、PCIカード200と、第1のレーン303と、第2のレーン304と、マザーボード400とを含む。
PCIカード200は、コントローラ部008と、切替部205とを含む。
切替部205は、外部回路(図1の例ではマザーボード400)と第1のレーン303を介して接続される送受信回路211と、第1のレーン303に障害が発生していない場合にはコントローラ部008により使用されていない第2のレーン304を介して、マザーボード400と接続される送受信回路214とを含む。
切替部205は、第1のレーン303に障害が検出された場合に、使用する送受信回路を送受信回路211から送受信回路214に切り替える。
マザーボード400は、PCIカード200の外部回路の一例であり、コントローラ部402を含む。
コントローラ部402は、PCIカード200と第1のレーン303を介して接続される送受信回路431と、第1のレーン303に障害が発生していない場合には使用されていない第2のレーン304を介して、PCIカード200と接続される送受信回路434とを含む。そして、コントローラ部402は、第1のレーン303に障害が検出された場合に、使用する送受信回路を送受信回路431から送受信回路434に切り替える。
これにより、本発明は、PCIバスシステム100において障害時の性能低下を抑えることができるという効果を奏する。
その理由は、PCIカード200及びマザーボード400のそれぞれが、第1のレーン303でレーン障害が検出された場合に、使用するレーンを第1のレーン303から、冗長レーンである第2のレーン304に切り替えるためである。即ち、本発明では、障害時にもレーンが縮退されないため、性能低下が抑えられる。
現在のPCI Expressバスを採用したシステムでは、マザーボード400は将来の拡張性を考慮して装置が対応可能な最大のレーン数に対応している。これに対し、PCIカード200はコントローラ202の処理性能に応じて必要となるレーン数のみに対応している。そのため、マザーボード400が対応しているレーン数に対し、PCIカード200が対応しているレーン数が少ない場合が一般的となっている。本発明は、この点に着目し、PCIカード200のコントローラ202が必要とする第1のレーン303以外の未使用となっている冗長レーンを、障害時用の第2のレーン304として使用できるようにした。これにより、障害が発生した時も、障害が発生した第1のレーン303のデータ転送処理を第2のレーン304に肩代わりさせることを可能とし、性能低下を抑えつつ処理を継続できるようにしたものである。
次に、本発明の第1の実施の形態について図面を参照して詳細に説明する。まず、PCI Expressバスについて説明する。
図2は、PCI Expressバスの階層を示した図である。PCI Expressバスは、物理レイヤ、リンクレイヤ、トランザクションレイヤ、ソフトウェアレイヤを含む。ソフトウェアからのデータを基に、トランザクションレイヤでヘッダ情報を加えたパケットが作られ、データリンクレイヤでそのパケットのシーケンス番号とデータ保障のためのCRC(Cyclic Redundancy Check)コードが付加される。そしてそのパケットは、物理レイヤで8b/10b変換されてシリアルバスでデータ転送される。
図3は、PCI Expressバスにおける各レーンへのデータ分配方法を示す図である。図3に示すように、PCI Expressバスは、複数バイトのデータ転送を行う場合、送信側でデータリンクレイヤで各バイトにシーケンス番号を付加し、物理レイヤで各バイトを各レーンに順番に分配する。受信側では、物理レイヤが分配されたデータを受信すると、データリンクレイヤが各バイトに付けられたシーケンス番号に基づき、受信データを元のデータに復元する。
次に、本発明の第1の実施の形態の構成について図面を参照して説明する。
図6は、PCIバスシステム100の構成を示す図である。
PCIバスシステム100は、PCIカード200と、マザーボード400と、レーン0〜7とを含む。
PCIカード200は、コントローラ202と、障害検出部203と、切替制御部204と、切替部205と、Port220〜227とを含む。
コントローラ202は、ファームウェアで制御され、PCIカード200を制御する。コントローラ202は、マザーボード400のPCIコントローラ401と使用するレーンを決定するネゴシエーション及びデータ転送を行う。
障害検出部203は、レーン毎に、PCI Expressの仕様(PCI Express Base Specification)に基づいた障害検出を行う。例えば、受信したパケットが決められたフォーマットになっていないこと、または、パケットのデータが異常である(Poisoned TLP Recieved 等)ことを、レーン障害として検出する。また、受信したパケットでCRCエラーを検出した場合や、要求したパケットに対する応答が規定時間内に無かった場合も、レーン障害として検出する。障害検出部203は、ファームウェア制御により、障害を検出した場合に、切替制御部204にレーン切替の指示を出し、レーンの切替を実施する。
切替制御部204及び切替部205は、ファームウェア制御により、障害検出部203の指示に従い、レーンの切替を行う。切替部205は切替回路206を含む。切替制御部204は切替部205の切替回路206を制御し、後述のPCIカードコントローラ使用レーン301に障害が検出された場合に、使用する送受信回路(後述する)を、マザーボード400とPCIカードコントローラ使用レーン301を介して接続される送受信回路から、PCIカードコントローラ使用レーン301に障害が発生していない場合にはコントローラ202により使用されていない冗長レーン302を介して、マザーボード400と接続される送受信回路に切り替える。
このとき、切替部205の切替回路206は、PCIカードコントローラ使用レーン301(図1ではレーン1)に障害が検出された場合に、コントローラ202からのデータの転送先を、送受信回路211から、複数の冗長レーン302のうちで一番若いレーン番号(図1ではレーン4)が割り当てられた送受信回路224に切替える。PCIバスシステム100の利用者又は製造者は、切替部205のファームウェアに、様々な条件に応じた切替パターンを登録したテーブルを格納しておく。
切替部205は、マザーボード400のPCIコントローラ401との間で、レーンのリンクアップ処理を行う。また、各々から一定時間毎にレーン毎に特定のデータ(例、アイドルパケット)を送信し応答データ(例、アクノリッジ)を受信するか否かにより、障害の発生を検出する。また、切替部205は、レーン毎に、特定のデータ(例、Aliveパケット)を受信すると、応答データ(例、アクノリッジ)をPCIコントローラ401に送信する。
切替部205は、送受信回路210〜217を含む。
送受信回路210〜217及びPort(0〜7)220〜227は、切替回路206とレーン1〜7の間に、各レーン毎に設けられる。ここでは、一連のレーン番号をそれぞれ割り当てるものとする。第1の実施の形態では、PCIカード200は、PCIカード200のコントローラ202が使用するカードコントローラ使用レーン301(レーン0〜3)に対応した送受信回路210〜213とPort(0〜3)220〜223だけでなく、PCIカード200が接続されるマザーボード400がサポートし、PCIカード200のコントローラ202が未使用の冗長レーン302(レーン4〜7)に対応した送受信回路214〜217とPort(4〜7)224〜227も備える。
マザーボード400は、PCIカード200の外部回路の一例であり、PCIコントローラ401と、Port(0〜7)420〜427とを含む。
PCIコントローラ401は、ファームウェアで制御される、マザーボード400のコントローラである。PCIコントローラ401は、PCIカードコントローラ使用レーン301に障害が検出された場合に、使用する送受信回路を、PCIカード200とPCIカードコントローラ使用レーン301を介して接続される送受信回路から、PCIカードコントローラ使用レーン301に障害が発生していない場合には使用されていない冗長レーン302を介してPCIカード200と接続される送受信回路に切り替える。
PCIコントローラ401は、PCIカード200からレーンを介して特定のデータ(例、アイドルパケット)を受信した場合に、当該レーンを介してPCIカード200に応答データ(例、アクノリッジ)を送信する。
又、PCIコントローラ401は、レーン障害が検出された場合に、PCIカード200のレーン切替が完了したことを検出するための特定のデータ(例、Aliveパケット)を送信し、全ての使用レーンを介して応答データ(例、アクノリッジ)を受信した場合に、障害により送信失敗したデータを再送信する。
PCIコントローラ401は、Bus Enable405とNegotiated Link Register406とを含む。Bus Enable405は、障害発生後、データ送信を再開できる状態になったかどうかを示す値を格納する。“1”(Enable)はデータ送信可、“0”(disable)は、データ送信不可を示す。
Negotiated Link Register406は、記憶手段であり、データ転送に使用するレーンに対応する送受信回路(後述する)を定める値である送受信回路情報を格納する。PCIコントローラ401は、任意のレーンで障害が発生した場合、送受信回路情報を、障害の発生した当該レーン番号に代えて、レーン番号の一番若い冗長レーン302の番号を新たに加えた値に変更する。
例えば、0xF0(“1111,0000”)から0xB8(“1011,1000”)に変更する。複数回障害が発生した場合は、順に使用可能な若い番号の冗長レーン302に対応した送受信回路を使用するように値を変更する。例えば、2回目の場合、障害の発生した当該レーン番号を除き、冗長レーン302の中でレーン番号が二番目に若いレーンの番号を付加した値に変更する。PCIバスシステム100の利用者又は製造者は、PCIコントローラ401のファームウェアに、それぞれの条件に応じた送受信回路情報が登録されたテーブルを格納しておく。
送受信回路430〜437及びPort(0〜7)420〜427は、各レーン毎に設けられる。ここでは、一連のレーン番号をそれぞれ割り当てるものとする。
レーン0〜7は、それぞれがシリアルバスであり、シリアルバスの束である。第1の実施の形態のPCIバスシステム100では、レーン0〜3はカードコントローラ202が初期化時に使用するカードコントローラ使用レーン301であり、レーン4〜7はカードコントローラ202が初期化時には使用しない(未使用の)冗長レーン302である。
次に、本発明の第1の実施の形態の動作について図面を参照して説明する。
まず、PCIバスシステム100のデータ転送開始先立つ初期化処理について図6を参照して説明する。
PCIバスシステム100は初期化時に使用するレーンのリンクアップを行う。PCI Expressにおいて、PCIコントローラ401は、ハードウェアの初期化の中で、接続されるレーンの数、および動作周波数を自動検出する。検出の方法は仕様(PCI Express Base Specification)で決まっており、規定時間以内に各レーンのパルスが検出されるかどうかで行う。
通常のリンクアップでは、例えば、マザーボード400が8レーンまでサポートしているのに対し、PCIカード200が4レーンまでしかサポートされていない場合、マザーボード400のPCIコントローラ401は、初期化時に各ポートのパルスが4ポート分しか検出されないため、4レーンでリンクアップを行うことになる。
一方、第1の実施の形態では、切替部205が外部(マザーボード400側)に8つのレーンを備えている。即ち、PCIカード200は、冗長レーン302(レーン4〜7)に対応して、Port(4)224〜Port(7)227と送受信回路214〜217とを備えている。そのため、第1の実施の形態では、PCIコントローラ401は、8つ全てのレーンでリンクアップを行う。
次に、マザーボード400のPCIコントローラ401と、PCIカード200のコントローラ202との間で、使用レーンについてネゴシエーションを行う。PCIコントローラ401が、テストパケットを全てのレーン1〜7に送信し、コントローラ202からアクノリッジが返ってきたレーンは、ネゴシエーションが成立し、使用レーンとなる。PCIカード200が4レーン(レーン0〜4)をサポートしているため、切替回路206は4レーンをサポートしている。そのため、初期状態では、レーン4〜7に送信したテストパケットは切替回路206を通過せず、コントローラ202に到達しない。その結果、PCIコントローラ401とコントローラ202との間で、レーン0〜4のみを使用レーンとするネゴシエーションが成立する。PCIコントローラ401は、ネゴシエーションの結果を、Negotiated Link Register406に送受信回路情報として格納する。ここでは、0xF0(“1111,0000”)の値を格納する。
そして、使用することが決定されたレーン(カードコントローラ使用レーン301)を使用して、PCIバスシステム100はデータ転送を開始する。残りのレーン(冗長レーン302)は、リンクアップは完了しているため、アイドル状態となる。
図4は、各レーンへのデータ分配方法を示す図である。前述の通り、マザーボード400のPCIコントローラ401は、複数バイトのデータを転送するときは、各バイトを各レーンに分配するが、分配はNegotiated Link Register406の送受信回路情報(第1の実施の形態の例では0xF0(“1111,0000”))で“1”がセットされたレーンの若番から老番の順番にデータを分割(ストライピング)する。即ち、マザーボード400のPCIコントローラ401は、レーン0(送受信回路430)からレーン3(送受信回路433)を使いデータ分割(ストライピング)をしてデータを転送する。
次に、図1の装置において、あるレーンで障害が発生したときのリカバリ動作について図7,8を参照して説明する。
図7は、マザーボード400側で障害を検出したときの動作を示したシーケンス図である。
まず、マザーボード400のPCIコントローラ401と、PCIカード200の切替部205との間は、各々から一定時間毎にアイドルパケットを送信しアクノリッジを受けることで、ヘルスチェックを実行している。
マザーボード400のPCIコントローラ401が障害を検出すると(タイミング1)、PCIコントローラ401は Negotiated Link Register406の値を変更する(タイミング2)。
図5は、各レーンへのデータ分配方法(レーン切替後)を示した図である。図4と比較して図5では、送受信回路情報が0xF0(“1111,0000”)から0xB8(“1011,1000”)に変更されている。即ち、PCIコントローラ401は、障害の発生したレーン1に対応する送受信回路431が除かれ、マザーボード400がサポートし、PCIカード200のコントローラ202が未使用の冗長レーン302(レーン4)に対応する送受信回路434が加えられた、送受信回路情報をNegotiated Link Register406に格納している。より具体的には、送受信回路情報は、障害の発生したレーン1が除かれ、「レーン番号の一番若い」レーン4に対応する送受信回路434が付加された値である。これにより、PCIコントローラ401は、障害が発生したレーン1に対応する送受信回路431に代えて、レーン4に対応する送受信回路434を使用して分割したデータを送信することになる。
この処理と共に、PCIコントローラ401は、Bus Enable405に“0”(disable)を格納する。以上の処理により、PCIコントローラ401は障害が発生したレーン(レーン1)を閉塞したことになる(タイミング3)。レーンを閉塞すると、PCIコントローラ401は、PCIカード200のレーン切替が完了したことを知るために、Negotiated Link Register406に使用送受信回路として定義されている全てのレーンに対応する送受信回路を使用してPCIカード200に対するAliveパケットの送信を開始する(タイミング5)。そして、全てのレーン経由でアクノリッジが戻るまでAliveパケットを送信し続ける。PCIコントローラ401は、障害の発生していないレーンを経由したアクノリッジはすぐに受信できるが、レーン切替後の新しいレーン(レーン4)を経由したアクノリッジはPCIカード200のレーン切替が完了するまで受信できない。
これに対しPCIカード200側では、障害検出部203が、マザーボード400のPCIコントローラ401に対して送信したアイドルパケットに対するアクノリッジが戻らないため、レーンの閉塞を検出する(タイミング4)。
レーンの閉塞を検出すると、障害検出部203は、切替制御部204にレーン切替の指示を出し、レーンの切替を実施する(タイミング6)。切替制御部204は切替部205を制御し、使用する送受信回路を、マザーボード400とレーン1を介して接続される送受信回路211から、レーン1に障害が発生していない場合にはコントローラ202により使用されていないレーン4を介して、マザーボード400と接続される送受信回路214に切り替える。このとき、送受信回路224は、複数の冗長レーン302のうちで一番若いレーン番号(図1ではレーン4)が割り当てられた送受信回路である。
PCIカード200においてレーンの切替が完了すると、コントローラ202は、マザーボード400の切替部205がPCIカード200に対し送信し続けていたAliveパケットを、切替後の新しいレーンを経由して受信することが可能となる。Aliveパケットを受信後、切替部205は、アクノリッジをマザーボード400のPCIコントローラ401に送信し、PCIコントローラ401はアクノリッジを受信する。これにより、PCIコントローラ401は全てのレーンを介してアクノリッジを受信したことになり、PCIコントローラ401はレーンの切替が完了したことを認識し、データを再び送信する準備が整ったことになる。そのため、PCIコントローラ401は、Bus Enable405を“1”(Enable)にセットし(タイミング7)、データの転送を開始する(タイミング8)。
PCIコントローラ401は、図6に示すように、Negotiated Link Register406に設定されている値に従い、レーン0,2,3,4に対してデータのストライピングを行う。データ転送の開始にあたって、PCIコントローラ401は、まず、障害により送信失敗したシーケンス番号のデータの再送信を行う。使用レーンはレーン0,2,3,4であるが、切替回路206において切り替えるため、PCIカード200のコントローラ202からは、レーン0,1,2,3が使用されているように見える。そして、PCIカード200のコントローラ202は、受信したデータをシーケンス番号に基づきリンクレイヤでデータを復元する。これにより、PCIバスシステム100は、コントローラ202に対し障害を隠蔽することができ、また、ソフトウェアレイヤに対しても障害を隠蔽することができる。
図8は、PCIカード200側で障害を検出した時の動作を示したシーケンス図である。
まず、PCIカード200の切替部205と、マザーボード400のコントローラ401との間は、上述したように、各々から一定時間毎にアイドルパケットを送信し、アクノリッジを受ける事を確認することで、ヘルスチェックを実施している。
PCIカード200の障害検出部203は、障害を検出すると(タイミング1)、障害検出部203は切替制御部204に対し障害検出を通知し、切替制御部204がレーンの切替を実施する(タイミング2)。該当レーンは閉塞することになる(タイミング3)。一方、障害が発生したレーン(レーン1)が閉塞されたため、マザーボード400のPCIコントローラ401は、レーン1の閉塞を検出する(タイミング4)。
マザーボード400のPCIコントローラ401は、Bus Enable405を“0”(Disable)にし、Negotiated Link Register406を変更し(タイミング5)、Aliveパケットを全てのレーン経由でPCIカード200に対して送信する(タイミング6)。この場合、PCIカード200はすでにレーンの切替が完了しているため、障害の発生していないレーンのみならず、レーン切替後の新しいレーンについても、Aliveパケットに対してはすぐにアクノリッジが戻ってくる。マザーボード400のPCIコントローラ401は、レーンの切替が完了したことを認識し、Bus Enable405を“1”(Enable)にセットし(タイミング7)、データの送信を開始する(タイミング8)。
次に、第1の実施の形態の奏する効果を説明する。
まず、第1の実施の形態は、PCIバスシステム100において障害時の性能低下を抑えることができるという効果を奏する。
その理由は、PCIカード200及びマザーボード400のそれぞれが、レーン障害が検出された場合に、使用するレーンを、障害の発生したレーンから、冗長レーン302に切り替えるためである。即ち、障害時にもレーンが縮退されないため、性能低下が抑えられる。
さらに、第1の実施の形態は、上述の効果を比較的低コストに実現できるという効果を奏する。
その理由は、レーン障害が検出された場合に、使用するレーンを、障害の発生したレーンから、マザーボード400がサポートし、PCIカード200のコントローラ202が未使用の冗長レーン302に切り替えるためである。即ち、第1の実施の形態では、新レーンを既存のレーンとは別に新たに用意するのではなく、マザーボード400がサポートし、PCIカード200のコントローラ202が未使用の冗長レーン302を利用することにより確保しているためである。
また、マザーボード400のハードウェアの変更量が少ないことも理由の一つである。即ち、第1の実施の形態によれば、PCIコントローラ401にレーン切替前後で、データのストライピングを行うレーンを変更するための機構としてNegotiated Link Register406を追加するという最小限の変更にとどめることが可能であるためである。
また、PCIカード200のハードウェアの変更量が少ないことも理由の一つである。即ち、第1の実施の形態では、PCIカード200に既存のレーンへの切替を行うための構成を追加するという最小限の変更にととめることが可能であるためである。特に、コントローラ202に対し障害やレーンの切替を隠蔽可能であるため、コントローラ202自体を改造する必要がないためである。
さらに、第1の実施の形態は、汎用性があるという効果を奏する。
その理由は、第1の実施の形態では、障害時にレーンの切替という物理レイヤ中心の変更を行い、ソフトウェアレイヤには障害を隠蔽しており、このため、ドライバソフトウェアには依存しないためである。
さらに、第1の実施の形態は、リンクの構成に必須となるレーン0で障害が発生しても、転送処理を再開できるという効果を奏する。
その理由は、PCIコントローラ401がデータ転送に使用するレーンを定める値である送受信回路情報を格納するNegotiated Link Register406を備え、この送受信回路情報を使用してデータのストライピングを行うためである。
通常のPCI Expressバスでは、レーン0がリンクの構成に必須であり、レーン0で障害が発生すると、別のレーンが健常であるにもかかわらず、データのストライピングが行えなくなり、転送処理を継続することができないという問題があった。第1の実施の形態はこの問題を解決できる。
次に、本発明の第2の実施の形態について図面を参照して説明する。
図9は、第2の実施の形態におけるマザーボード400側で障害を検出したときの動作を示したシーケンス図であり、図10は、PCIカード200側で障害を検出した時の動作を示したシーケンス図である。第1の実施の形態の図7,8と比較して、マザーボード400は、Aliveパケットを送信、アクノリッジの受信をしてから、Negotiated Link Register406の値の変更を行う点が異なる。
図9,10において、PCIカード200の切替部205は、マザーボード400からいずれかのレーンを介してAliveパケットを受信した場合に、切替後のレーンを示す情報を含むアクノリッジを当該レーンを介してマザーボード400に送信する。そして、マザーボード400のPCIコントローラ401は、当該アクノリッジを受信し、切替後のレーンを示す情報を基に、使用する送受信回路を、マザーボード400とPCIカードコントローラ使用レーン301を介して接続される送受信回路から、PCIカードコントローラ使用レーン301に障害が発生していない場合にはコントローラ202により使用されていない冗長レーン302を介して、マザーボード400と接続される送受信回路に切り替える。
具体的には、PCIコントローラ401は、当該切替後のレーンを示す情報を基に、送受信回路情報を生成し、Negotiated Link Register406に格納する。以後、PCIコントローラ401は、Negotiated Link Register406に格納された送受信回路情報に沿って、データ転送を行う。
以上のような構成により、第2の実施の形態は、レーン切替の設定が容易になるという効果を奏する。
その理由は、第1の実施の形態では、マザーボード400側及びPCIカード200側双方に切替後のレーンを示す情報を予め設定しておく必要があったが、第2の実施の形態では、PCIカード200側のみに設定しておけばよいためである。マザーボード400側は、PCIカード200側に設定した切替後のレーンを示す情報をPCIカード200から受信し、その情報に沿ってレーン切替を行う。
PCIバスシステム100の構成を示す図である。 PCI Expressバスの階層を示した図である。 PCI Expressバスにおける各レーンへのデータ分配方法を示す図である。 各レーンへのデータ分配方法を示す図である。 各レーンへのデータ分配方法(レーン切替後)を示した図である。 PCIバスシステム100の構成を示す図である。 マザーボード400側で障害を検出したときの動作を示したシーケンス図である。 PCIカード200側で障害を検出した時の動作を示したシーケンス図である。 第2の実施の形態におけるマザーボード400側で障害を検出したときの動作を示したシーケンス図である。 第2の実施の形態におけるPCIカード200側で障害を検出した時の動作を示したシーケンス図である。
符号の説明
0,1,2,3,4,5,6,7 レーン
008 コントローラ部
100 PCIバスシステム
200 PCIカード
202 コントローラ
203 障害検出部
204 切替制御部
205 切替部
206 切替回路
210,211,212,213,214,215,216,217 送受信回路
220 Port(0)
221 Port(1)
222 Port(2)
223 Port(3)
224 Port(4)
225 Port(5)
226 Port(6)
227 Port(7)
301 カードコントローラ使用レーン
302 冗長レーン
303 第1のレーン
304 第2のレーン
400 マザーボード
401 PCIコントローラ
402 コントローラ部
405 Bus Enable
406 Negotiated Link Register
420 Port(0)
421 Port(1)
422 Port(2)
423 Port(3)
424 Port(4)
425 Port(5)
426 Port(6)
427 Port(7)
430 送受信回路
431 送受信回路
432 送受信回路
433 送受信回路
434 送受信回路
435 送受信回路
436 送受信回路
437 送受信回路

Claims (18)

  1. 所定数のレーンにより構成されるリンクを用いて外部回路との間でデータ転送を行うコントローラ部と、
    前記外部回路と前記所定数の第1のレーンを介して接続される前記所定数の第1の送受信回路と、
    前記外部回路と第2のレーンを介して接続される第2の送受信回路と、
    前記所定数の第1のレーンに障害が検出されていない場合は、前記コントローラ部と前記所定数の第1の送受信回路を接続し、前記所定数の第1のレーンのいずれかに障害が検出された場合は、前記コントローラ部と該障害が検出されたレーンに対応する前記第1の送受信回路との接続を前記第2の送受信回路との接続に切り替える切替部と
    を含むPCI(Peripheral Component Interconnect)カード。
  2. 前記第2の送受信回路を複数個有し、当該複数の第2の送受信回路には一連のレーン番号がそれぞれ割り当てられ、
    前記切替部は、前記第1のレーンに障害が検出された場合に、前記コントローラ部と該障害が検出されたレーンに対応する前記第1の送受信回路との接続を、前記複数の第2の送受信回路のうちで一番若いレーン番号が割り当てられた第2の送受信回路との接続に切替える
    請求項1に記載のPCIカード。
  3. 前記切替部は、レーンを使用して特定のデータを前記外部回路に送信し、前記外部回路から該特定のデータに対する応答データが返送されてこない場合に、レーン障害の発生を検出する
    請求項1又は2に記載のPCIカード。
  4. レーン障害を検出する障害検出部
    を含む請求項1乃至3のいずれかに記載のPCIカード。
  5. 前記切替部は、前記外部回路からレーンを介して特定のデータを受信した場合に、当該レーンを介して前記外部回路に応答データを送信する
    請求項1乃至4のいずれかに記載のPCIカード。
  6. 前記切替部は、レーン障害が検出された場合に、前記外部回路からレーンを介して特定のデータを受信した場合に、当該レーンを介して前記外部回路に応答データを送信する
    請求項1乃至5のいずれかに記載のPCIカード。
  7. 前記切替部は、前記外部回路からレーンを介して特定のデータを受信した場合に、切替後のレーンを示す情報を含む応答データを当該レーンを介して前記外部回路に送信する
    請求項1に記載のPCIカード。
  8. 所定数のレーンにより構成されるリンクを用いてデータ転送を行うPCIカードコントローラ部を含むPCIカードと前記所定数の第1のレーンを介して接続される第1の送受信回路と、
    前記PCIカードと第2のレーンを介して接続される第2の送受信回路と、
    前記所定数の第1のレーンに障害が検出されていない場合は、前記PCIカードコントローラ部との間で前記所定数の第1の送受信回路によりデータ転送を行い、前記所定数の第1のレーンのいずれかに障害が検出された場合は、該障害が検出されたレーンに対応する前記第1の送受信回路によるデータ転送を、前記第2の送受信回路によるデータ転送に切り替えるコントローラ部と
    を含むマザーボード。
  9. 前記コントローラ部が使用する送受信回路を特定する送受信回路情報を格納する記憶手段を含み、
    前記記憶手段は、前記第1のレーンにレーン障害が検出された場合に、前記第1の送受信回路に代えて、切り替えられた前記第2の送受信回路を加えた送受信回路情報を格納する
    請求項8に記載のマザーボード。
  10. 前記第2の送受信回路を複数個有し、当該複数の第2の送受信回路には一連のレーン番号がそれぞれ割り当てられ、
    前記記憶手段は、前記第1のレーンに障害が検出された場合に、前記第1の送受信回路に代えて、前記複数の第2の送受信回路のうちで一番若いレーン番号が割り当てられた第2の送受信回路を加えた送受信回路情報を格納する
    請求項9に記載のマザーボード。
  11. 前記コントローラ部は、前記PCIカードからレーンを介して特定のデータを受信した場合に、当該レーンを介して前記PCIカードに応答データを送信する
    請求項8乃至10のいずれかに記載のマザーボード
  12. 前記コントローラ部は、
    レーン障害が検出された場合に、PCIカードのレーン切替が完了したことを検出するための特定のデータを送信し、
    全ての使用レーンを介して応答データを受信した場合に、障害により送信失敗したデータを再送信する
    請求項8乃至11のいずれかに記載のマザーボード。
  13. 前記コントローラ部は、
    レーン障害が検出された場合に、PCIカードのレーン切替が完了したことを検出するための特定のデータを送信し、切替後のレーンを示す情報を含む応答データを受信し、
    前記切替後のレーンを示す情報を基に、前記第1の送受信回路から前記第2の送受信回路に切り替える
    請求項8に記載のマザーボード。
  14. 所定数のレーンにより構成されるリンクを用いてマザーボードとの間でデータ転送を行うPCIカードコントローラ部と、
    前記マザーボードと前記所定数の第1のレーンを介して接続される前記所定数の第1のPCIカード送受信回路と、
    前記マザーボードと第2のレーンを介して接続される第2のPCIカード送受信回路と、
    前記所定数の第1のレーンに障害が検出されていない場合は、前記PCIカードコントローラ部と前記所定数の第1のPCIカード送受信回路を接続し、前記所定数の第1のレーンのいずれかに障害が検出された場合は、前記PCIカードコントローラ部と該障害が検出されたレーンに対応する前記第1のPCIカード送受信回路との接続を前記第2のPCIカード送受信回路との接続に切り替える切替部と
    を含むPCIカードと、
    前記PCIカードと前記所定数の第1のレーンを介して接続される第1のマザーボード送受信回路と、
    前記PCIカードと前記第2のレーンを介して接続される第2のマザーボード送受信回路と、
    前記所定数の第1のレーンに障害が検出されていない場合は、前記PCIカードコントローラ部との間で前記所定数の第1のマザーボード送受信回路によりデータ転送を行い、前記所定数の第1のレーンのいずれかに障害が検出された場合は、該障害が検出されたレーンに対応する前記第1のマザーボード送受信回路によるデータ転送を、前記第2のマザーボード送受信回路によるデータ転送に切り替えるコントローラ部と
    を含む前記マザーボードと
    を含むPCIバスシステム。
  15. 所定数のレーンにより構成されるリンクを用いて外部回路との間でデータ転送を行うコントローラ部と、前記外部回路と前記所定数の第1のレーンを介して接続される前記所定数の第1の送受信回路と、前記外部回路と第2のレーンを介して接続される第2の送受信回路と、を含むPCIカードの制御方法であって、
    前記所定数の第1のレーンに障害が検出されていない場合は、前記コントローラ部と前記所定数の第1の送受信回路を接続し、前記所定数の第1のレーンのいずれかに障害が検出された場合は、前記コントローラ部と該障害が検出されたレーンに対応する前記第1の送受信回路との接続を前記第2の送受信回路との接続に切り替える
    PCIカードの制御方法。
  16. 所定数のレーンにより構成されるリンクを用いてデータ転送を行うPCIカードコントローラ部を含むPCIカードと前記所定数の第1のレーンを介して接続される第1の送受信回路と、前記PCIカードと第2のレーンを介して接続される第2の送受信回路と、を含むマザーボードの制御方法であって、
    前記所定数の第1のレーンに障害が検出されていない場合は、前記PCIカードコントローラ部との間で前記所定数の第1の送受信回路によりデータ転送を行い、前記所定数の第1のレーンのいずれかに障害が検出された場合は、該障害が検出されたレーンに対応する前記第1の送受信回路によるデータ転送を、前記第2の送受信回路によるデータ転送に切り替える
    マザーボードの制御方法。
  17. 所定数のレーンにより構成されるリンクを用いて外部回路との間でデータ転送を行うコントローラ部と、前記外部回路と前記所定数の第1のレーンを介して接続される前記所定数の第1の送受信回路と、前記外部回路と第2のレーンを介して接続される第2の送受信回路と、を含むPCIカードを制御するコンピュータを、
    前記所定数の第1のレーンに障害が検出されていない場合は、前記コントローラ部と前記所定数の第1の送受信回路を接続し、前記所定数の第1のレーンのいずれかに障害が検出された場合は、前記コントローラ部と該障害が検出されたレーンに対応する前記第1の送受信回路との接続を前記第2の送受信回路との接続に切り替える手段
    として機能させるためのプログラム。
  18. 所定数のレーンにより構成されるリンクを用いてデータ転送を行うPCIカードコントローラ部を含むPCIカードと前記所定数の第1のレーンを介して接続される第1の送受信回路と、前記PCIカードと第2のレーンを介して接続される第2の送受信回路と、を含むマザーボードを制御するコンピュータを、
    前記所定数の第1のレーンに障害が検出されていない場合は、前記PCIカードコントローラ部との間で前記所定数の第1の送受信回路によりデータ転送を行い、前記所定数の第1のレーンのいずれかに障害が検出された場合は、該障害が検出されたレーンに対応する前記第1の送受信回路によるデータ転送を、前記第2の送受信回路によるデータ転送に切り替える手段
    として機能させるためのプログラム。
JP2008229378A 2008-09-08 2008-09-08 Pciカード、マザーボード、pciバスシステム、制御方法、及びプログラム Active JP5407230B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008229378A JP5407230B2 (ja) 2008-09-08 2008-09-08 Pciカード、マザーボード、pciバスシステム、制御方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008229378A JP5407230B2 (ja) 2008-09-08 2008-09-08 Pciカード、マザーボード、pciバスシステム、制御方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2010061606A JP2010061606A (ja) 2010-03-18
JP5407230B2 true JP5407230B2 (ja) 2014-02-05

Family

ID=42188294

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008229378A Active JP5407230B2 (ja) 2008-09-08 2008-09-08 Pciカード、マザーボード、pciバスシステム、制御方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP5407230B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012199724A (ja) 2011-03-19 2012-10-18 Fujitsu Ltd データ送信装置、データ受信装置、データ送受信装置及びデータ送受信装置の制御方法
WO2013168192A1 (en) 2012-05-08 2013-11-14 Hitachi, Ltd. Storage apparatus and method for controlling storage apparatus
JP6251806B2 (ja) 2013-12-26 2017-12-20 インテル・コーポレーション 装置、方法、プログラム、システム、およびコンピュータ可読ストレージ媒体
JP2018050172A (ja) * 2016-09-21 2018-03-29 富士通株式会社 情報処理装置、演算処理装置、及び情報処理装置の制御方法
WO2019159347A1 (ja) * 2018-02-19 2019-08-22 三菱電機株式会社 電子機器
JP7163554B2 (ja) * 2019-07-02 2022-11-01 インテル・コーポレーション 装置、方法、プログラム、システム、およびコンピュータ可読ストレージ媒体

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59157759A (ja) * 1983-02-28 1984-09-07 Fuji Electric Co Ltd 二重化システム
US4890224A (en) * 1986-06-27 1989-12-26 Hewlett-Packard Company Method and apparatus for fault tolerant communication within a computing system
JPH07302208A (ja) * 1994-05-02 1995-11-14 Mitsubishi Electric Corp 保護継電装置
JP3161507B2 (ja) * 1996-06-21 2001-04-25 日本電気株式会社 ルーティング制御方法とその装置
JP4322659B2 (ja) * 2003-12-19 2009-09-02 エヌイーシーコンピュータテクノ株式会社 シリアル伝送制御装置、コンピュータシステム、および、シリアル伝送制御方法

Also Published As

Publication number Publication date
JP2010061606A (ja) 2010-03-18

Similar Documents

Publication Publication Date Title
US8238255B2 (en) Recovering from failures without impact on data traffic in a shared bus architecture
JP5407230B2 (ja) Pciカード、マザーボード、pciバスシステム、制御方法、及びプログラム
US7536584B2 (en) Fault-isolating SAS expander
US8281203B2 (en) PCI.Express communication system and communication method thereof
EP2052326B1 (en) Fault-isolating sas expander
JP4451837B2 (ja) データ転送装置およびデータ転送方法
US11544132B2 (en) Communication apparatus, communication method, program, and communication system
US20030014520A1 (en) Method and apparatus for improved RAID 1 write performance in low cost systems
US20190215100A1 (en) Communication apparatus, communication method, program, and communication system
CN115437978A (zh) 高速外围组件互连接口装置及其操作方法
JP2003348105A (ja) Canコントローラ
CN102436430B (zh) 存储设备、主机控制器和存储系统
US8484546B2 (en) Information processing apparatus, information transmitting method, and information receiving method
US11561922B2 (en) Communication apparatus, communication method, program, and communication system
JP4755050B2 (ja) データ処理装置、モード管理装置、及びモード管理方法
US10805043B2 (en) Data transmission apparatus and data transmission method, reception device and reception method, program, and data transmission system
JP2020021313A (ja) データ処理装置および診断方法
JP2008009794A (ja) プログラマブル電子制御装置及びプログラマブル電子装置の通信制御方法
WO2017199762A1 (ja) 通信装置、通信方法、プログラム、および、通信システム
US8639967B2 (en) Controlling apparatus, method for controlling apparatus and information processing apparatus
US20100208581A1 (en) Data transfer system, data transmitting device, data receiving device and data transfer method
US10824582B2 (en) Communication apparatus, communication method, program, and communication system
JP5145860B2 (ja) メモリ二重化システム及び情報処理装置
EP1988469A1 (en) Error control device
JP2009130614A (ja) 通信制御装置、通信制御方法および通信制御プログラム

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20110706

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110811

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130507

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130702

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131021

R150 Certificate of patent or registration of utility model

Ref document number: 5407230

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150