JP3584977B2 - Pciデバイスおよびそれを備えるpciバスシステムならびにデータ収集方法 - Google Patents

Pciデバイスおよびそれを備えるpciバスシステムならびにデータ収集方法 Download PDF

Info

Publication number
JP3584977B2
JP3584977B2 JP2001167800A JP2001167800A JP3584977B2 JP 3584977 B2 JP3584977 B2 JP 3584977B2 JP 2001167800 A JP2001167800 A JP 2001167800A JP 2001167800 A JP2001167800 A JP 2001167800A JP 3584977 B2 JP3584977 B2 JP 3584977B2
Authority
JP
Japan
Prior art keywords
data
pci
register
configuration
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2001167800A
Other languages
English (en)
Other versions
JP2002358251A (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 JP2001167800A priority Critical patent/JP3584977B2/ja
Publication of JP2002358251A publication Critical patent/JP2002358251A/ja
Application granted granted Critical
Publication of JP3584977B2 publication Critical patent/JP3584977B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、PCI(Peripheral Component Interconnect)バスに接続されるPCIデバイスおよびそのPCIデバイスを備えるPCIシステムに関する。さらには、そのPCIデバイス内に格納されたデータを収集する方法に関する。
【0002】
【従来の技術】
PCIバスはコンピュータ用バスアーキテクチャの一つであって、モデムカードやビデオカードなど種々のPCIデバイスの接続(増設)が可能である。このようなPCIバスを備えるPCIバスシステムの一例として、特開平10−21152号公報には、大容量のLAN回線を収容してデータ通信を専用に行うLANP(LAN Processor)のシステムが開示されている。図10は、そのシステムの概略構成を示すブロック図である。
【0003】
図10を参照すると、LANPは、中央処理装置(CPU)200と主記憶装置(MEM)201がシステムバス210を介して接続され、システムバス210にPCIバス制御用LSI(PCL)202が接続され、PCL202にLAN回線接続アダプタ(NIC)203およびホスト接続装置(OLA)204がPCIバス211を介して接続された構成となっている。
【0004】
上記のLANPは、NIC203を介してLAN回線222と接続することができる。また、LANPは、OLA204がIOインタフェース212を介して外部のホストコンピュータ221と接続されており、ホストコンピュータ221との間でデータの送受信を行うことができる。ここで、NIC203およびOLA204は通信プロトコルを制御するPCI拡張カード(PCIデバイス)である。
【0005】
図11に、PCI拡張カードの一例を示す。このPCI拡張カードは図10に示したOLA204であって、その構成は、ホストコンピュータ221とのデータ伝送の制御を行うマイクロプロセッサ(MPU)301と、PCIバス211を介したデータ転送の制御をMPU301とは独立して行うPCIバスコントローラ(PBC)300と、データの一時記憶などに用いられる、DRAMよりなるローカルメモリ(LM)302とからなる。PBC300およびMPU301はそれぞれ内部バスを介してLM302に接続されており、それぞれがLM302にアクセスしてデータの読み出し/書き込みを行うことができる。また、PBC300は、図10に示したCPU200やMEM201とのPCIバス211を介したデータの送受信を行うことができる。
【0006】
PBC300は、内部にSRAMで構成されたコンフィグレーション空間(CFG)310を備える。コンフィグレーション空間はコンフィグレーション情報を記憶するための記録領域であって、システム設定時にコンフィグレーション情報が設定される。コンフィグレーション情報は定義済みヘッダ領域とデバイス依存領域からなり、通常は、PCIバス仕様で、全体として256バイトある。定義済みヘッダ領域は64バイトであり、そのレイアウトはPCIバスの規格として定められている。デバイス依存領域は192バイトあり、通常、各PCIデバイス毎に任意の情報を設定することができる。PBC300は、PCIバス211を介したPCIバストランザクションを受け付けると、その受け付けたトランザクションの内容に応じて、LM302にアクセスしてデータの読み出し/書き込みを行ったり、PCIバス211を介したデータの転送を行ったりする。これらのデータ伝送に際して必要となる制御ビットやPCI拡張カードをCPU200に認識させるめの情報などがコンフィグレーション情報として設定されている。
【0007】
【発明が解決しようとする課題】
上述したようなPCI拡張カード(PCIデバイス)がPCIバスに接続されるシステムにおいて、PCIデバイス内に故障が生じた場合には、そのPCIデバイス内のデータ、例えば図11のLM302に記憶されているデータを収集して故障原因を解析する、といったことが行われる。また、PCIデバイスの開発時のデバッグの際にも、PCIデバイス内のデータの収集が行われる。
【0008】
しかしながら、PCIデバイス内で障害が検出されている場合やデバッグ時には、PCIデバイス内のPCIバス関連の設定情報が失われていたり、正しく設定されていなかったりする場合があり、そのような場合には、PCIデバイスは通常のPCIバストランザクションを受け付けることができなくなり、その結果、PCIデバイス内のデータを収集することができなくなってしまう。
【0009】
更に、PCIデバイスがPCIトランザクションを受け付けられない状態の時に、オペレーティングシステム(OS)からPCIデバイスに対して情報収集のためのIOトランザクションが発行されると、PCIデバイスはOSからのIOトランザクションの結果としてPCIバス上に発行されるトランザクションに対する動作を保証できない。その場合、PCIホスト(図10のPCL202)が致命的なエラーを検出するか、またはPCIバス上のトランザクションが消失するというような事象が発生する。その結果、OSが動作を続けることができなくなり、PCIデバイス内のデータ収集動作によりシステム全体が停止する(システムエラーの発生)という問題があった。
【0010】
本発明の目的は、上記問題を解決し、データの収集を確実に行うことのできる、PCIデバイスおよびデータ収集方法を提供することにある。
【0011】
本発明のさらなる目的は、そのようなPCIデバイスを用いたPCIバスシステムを提供することにある。
【0012】
【課題を解決するための手段】
上記目的を達成するため、本発明のPCIデバイスは、PCIバスに接続される、任意にレジスタの設定が可能なデバイス固有領域を含むコンフィグレーション空間を持つPCIデバイスであって、
前記デバイス固有領域として定義されるレジスタが実装され、データ収集指示を受けると、前記レジスタの内容に従って指示されたデータの収集を行うデータ収集制御手段と、
前記PCIバスを介して前記デバイス固有領域に対するコンフィグレーションアクセスを受けると、前記データ収集制御手段に対して前記データ収集指示を送出するとともに、該データ収集指示に応じて前記データ収集制御手段が収集したデータを前記PCIバス上に送出するコンフィグレーションアクセス制御手段とを有する。
【0013】
本発明のPCIバスシステムは、上述のいずれかのPCIデバイスと、前記PCIデバイスが接続されるPCIバスとを有することを特徴とする。
【0014】
本発明のデータ収集方法は、任意にレジスタの設定が可能なデバイス固有領域を含むコンフィグレーション空間を持つPCIデバイスがPCIバスに接続されたPCIバスシステムにおいて行われるデータ収集方法であって、
前記デバイス固有領域を使用して、前記PCIデバイスに対してデータの収集を指示するコンフィグレーションアクセスを実行するステップと、
前記PCIデバイスが、前記コンフィグレーションアクセスに従って指定されたデータの収集を行い、該収集したデータを前記PCIバス上に送出するステップとを含むことを特徴とする。
【0015】
上記のとおりの本発明においては、PCIバスにおけるコンフィギュレーションアクセスを利用してPCIデバイス内に格納されたデータの収集が行われる。このPCIバスにおけるコンフィギュレーションアクセスは、PCIデバイスに何も設定されていない状態であっても、PCIバス仕様で定義されるIDESL信号により対象のPCIデバイスを指定してアクセスすることが可能であるため、PCIバス上のPCIデバイスの障害のみならず、OSやデバイスドライバなどのソフトウェアの不具合によりPCIバス動作に関する情報が正常に設定されていない場合でも、PCIデバイス内のデータを収集することが可能である。よって、本発明によれば、PCIデバイス内で障害が検出されている場合やデバッグ時に、PCIデバイス内のPCIバス関連の設定情報が失われていたり、正しく設定されていなかったりしていても、PCIデバイス内のデータを収集することができる。
【0016】
また、従来は、障害時の情報収集の際にPCIホストが致命的なエラーを検出したり、PCIバス上のトランザクションが消失したりして、OSが動作を続けることができなくなってシステム全体が停止する(システムエラーの発生)という問題があったが、本発明では、上記のとおり、障害時においてPCIデバイス内のデータを収集する動作を確実に行うことが可能であるので、そのようなシステムエラーは発生しない。
【0017】
【発明の実施の形態】
次に、本発明の実施形態について図面を参照して説明する。
【0018】
本発明のPCIデバイスは、周知のPCIバスに接続されるものであって、例えばコンピュータのマザーボードに拡張ボード(カード)として取り付けられる。図1に、本発明のPCIデバイスの一実施形態であるPCIカードの概略構成を示す。
【0019】
本実施形態のPCIカード102は、PCIバス101に接続されるものであって、その構成は、PCIバスインターフェース制御部103、Configアクセス制御部104、ノーマルアクセス制御部105、PCIバストレーサ106、Configレジスタ107、内部レジスタ108、データ収集制御部109、内部バストレーサ110、内部バスインタフェース制御部111、内部バス112、ローカルメモリ113、マイクロプロセッサ(MPU:Micro Processing Unit)114からなる。
【0020】
PCIカード102はコンフィグレーション空間という特別な256バイトのレジスタを有する。図2に、PCIバス仕様におけるコンフィギュレーション空間のアドレスマップの一例を示す。先頭より64バイトはヘッダ領域(定義済みヘッダ領域)であって、各PCIデバイス毎に装備する必要がある。残りの192バイトはデバイス固有領域(デバイス依存領域)であって、その使用は各PCIデバイスで自由である。ヘッダ領域として定義されるレジスタはConfigレジスタ107内に実装され、デバイス固有領域として定義されるレジスタはデータ収集制御部109内に実装される。後述するデータ収集制御部109へのデータ収集を指示するコンフィギュレーションアクセスは、この図2に示したコンフィギュレーション空間のデバイス固有領域を使用して実行される。
【0021】
図3に、PCIバス仕様のコンフィギュレーションアクセスにおけるAD(アドレス・データ)線のアドレスフェーズの定義を示す。ビット0〜1で「タイプ」、ビット7〜2で「レジスタ番号」、ビット10〜8で「機能番号」、ビット31〜11で「予約」がそれぞれ定義されている。コンフィギュレーション空間のどのアドレスをアクセスするかは、ビット7〜2で定義されるレジスタ番号によって決定する。6ビットのレジスタ番号はダブルワード(32ビット)単位での指定となるため、例えば10h〜3Fh(「**h」は16進数表現であることを示す)の値であればデバイス固有領域を示している。
【0022】
PCIバスインターフェース制御部103はPCIバス101に接続されており、PCIバス101を介してコンフィグレーションアクセスを受けた場合は、Configアクセス制御部104に対してそのコンフィグレーションアクセスに応じた処理の実行を指示し、メモリリードやメモリライトなど、コンフィグレーションアクセス以外のPCIバストランザクションを受け付けた場合は、ノーマルアクセス制御部105に対してそのPCIバストランザクションに応じた処理の実行を指示する。
【0023】
Configアクセス制御部104は、PCIバスインターフェース制御部103からの指示に従って、受け付けたコンフィグレーションアクセスの内容に応じて、Configレジスタ107へのアクセスを実行したり、データ収集制御部109に対してデータ収集の指示を出したりする。例えば、Configアクセス制御部104は、図3に示したコンフィギュレーションサイクルのビット7〜2で定義されるレジスタ番号が「00h」〜「0Fh」であれば、図2に示したコンフィグレーション空間のヘッダ領域であるため、Configレジスタ107へのアクセスを実行し、レジスタ番号が「10h」〜「3Fh」であれば、図2に示したコンフィグレーション空間のデバイス固有領域であるため、データ収集制御部109にデータ収集を指示する。
【0024】
ノーマルアクセス制御部105は、PCIバスインターフェース制御部103からの指示に応じて、受け付けたPCIバストランザクションの内容に従って、内部レジスタ108へアクセスしたり、内部バスインターフェース制御部111を介して内部バス112へアクセスして、最終的にローカルメモリ113やMPU114へのアクセスを実行する。
【0025】
PCIバストレーサ106は、PCIバスインターフェース制御部103を通して、PCIバス101上で実行されるトランザクションのトレースデータを格納する。同様に、内部バストレーサ110は内部バス114上で実行されるトランザクションのトレースデータを格納する。
【0026】
データ収集制御部109は、デバイス固有領域に対するコンフィギュレーションアクセスによりConfigアクセス制御部104からデータ収集の指示を受ると、その指示に従って、指示されたデータの収集を行う。例えばPCIバストレーサ106に関するデータ収集指示であれば、データ収集制御部109は、PCIバストレーサ106からデータを読み出してConfigアクセス制御部104へその読み出したデータを渡す。ローカルメモリ113に関するデータ収集指示であれば、データ収集制御部109は、内部バス112を介してローカルメモリ113へ指示を出してローカルメモリ113のダンプデータをリードし、Configアクセス制御部104へそのリードしたダンプデータを渡す。MPU114に関するデータ収集指示であれば、データ収集制御部109は、内部バス112を介してMPU114へ指示を出してMPU114のダンプデータをリードし、Configアクセス制御部104へそのリードしたダンプデータを渡す。内部バストレーサ110に関するデータ収集指示であれば、データ収集制御部109は、内部バストレーサ110からデータを読み出し、Configアクセス制御部104へその読み出したデータを渡す。内部レジスタ108に関するデータ収集指示であれば、データ収集制御部109は、内部レジスタ108からデータを読み出し、Configアクセス制御部104へその読み出したデータを渡す。各々から収集されたデータはPCIバスインターフェース制御部103を介してPCIバス101へ出力される。
【0027】
次に、本実施形態のPCIカード102の動作について具体的に説明する。図4は、図1のPCIカード102内でマッピングされているアドレス空間の一例を示す模式図である。この例では、アドレス「00000000h〜000003FFh」は内部レジスタ領域、アドレス「00000400h〜000FFFFFh」は未使用、アドレス「00100000h〜001FFFFFh」はPCIバストレーサ領域、アドレス「00200000h〜002FFFFFh」は内部バストレーサ領域、「00300000h〜012FFFFFh」はローカルメモリ領域、「01300000h〜FFFFFDFFh」は未使用、「FFFFFE00h〜FFFFFFFFh」はMPU領域となっている。
【0028】
PCIバス101上のアドレスフェーズで、図3で図示されるコンフィギュレーションサイクルが実行された時、PCIカード102は、バスマスタであるPCIホストにバス接続ではなく1対1で接続されるIDSEL(イニシャライズデバイスセレクト)信号がアサートされている(アクティブ状態)と、実行されているコンフィギュレーションサイクルがPCIカード102自身をターゲットとしたコンフィギュレーションサイクルであることを認識する。つまり、コンフィギュレーションサイクルはターゲットとなるPCIデバイスをIDSEL信号によって指定するため、PCIデバイス側、ここではPCIカード102側に何の設定もされていない状態でもアクセス可能である。通常のメモリリード/ライトのトランザクションなどでは、PCIデバイス側にアドレス空間などの設定が完了した後でないと、アクセス不可能である。
【0029】
PCIバス101から本PCIカード102に対するコンフィギュレーションアクセスを受け付けると、PCIバスインターフェース制御部103は、Configアクセス制御部104へ図3における機能番号及びレジスタ番号を通知する。Configアクセス制御部104は、PCIバスインターフェース制御部103から受け取った機能番号及びレジスタ番号によりアクセス先を判定する。ここで、PCIカード102が単一機能デバイスであると仮定すると、機能番号は0固定となる。この場合、アクセス先はレジスタ番号によって決定され、6ビットのレジスタ番号はダブルワード(32ビット)単位でコンフィギュレーションレジスタを示し、それは図2で示される256バイトの領域のどのレジスタにアクセスするかを示す。
【0030】
レジスタ番号はダブルワード単位で振られているため、レジスタ番号を4倍すると図2におけるレジスタのアドレスとなる。例えば、レジスタ番号が「02h」を示している場合、アドレスは「08h」で先頭から64バイト以内のヘッダ領域となるから、Configアクセス制御部はConfigレジスタ107にアクセスする。Configレジスタ107内のコンフィギュレーションレジスタはPCIバス仕様に決められ、アドレス「08h」のレジスタはクラスコードとレビジョン番号を格納している。レジスタ番号が「10h」以上であれば、デバイス固有領域を指し示しているため、Configアクセス制御部104はデータ収集制御部109へデータ収集の指示を出す。つまり、図2のヘッダ領域はConfigレジスタ107内に実装され、デバイス固有領域はデータ収集制御部109内に実装される。
【0031】
データ収集制御部109にデータ収集を行わせるためには、2回のコンフィギュレーションアクセスを実行する必要がある。ここで、図2におけるデバイス固有領域はアドレス「40h」からの32ビットのレジスタのみを使用する。つまり、コンフィギュレーションアクセスにおけるレジスタ番号は「10h」のみ使用する。
【0032】
1回目のコンフィギュレーションアクセスでは、レジスタ番号「10h」に対してコンフィギュレーションライトを実行する。ライトするデータはデータ収集を行うアドレスであり、PCIカード102内のアドレスマッピングは図4で示されている通りである。例えば「00000000h」のアドレスであれば、データ収集制御部109は内部レジスタ108の先頭のレジスタのデータを収集する。また、データ収集制御部109は、このコンフィギュレーションライトによって指示されたアドレスが「00100000h〜001FFFFFh」であればPCIバストレーサ106からデータを収集し、「00200000h〜002FFFFFh」であれば内部バストレーサ110からデータを収集し、「00300000h〜012FFFFFh」であればローカルメモリ113からデータを収集し、「FFFFFE00h〜FFFFFFFFh」であればMPU114からデータを収集する。これらの収集データはレジスタ番号「10h」のレジスタに格納される。
【0033】
2回目のコンフィギュレーションアクセスでは、レジスタ番号「10h」に対してコンフィギュレーションリードを実行する。このリードでは、データ収集制御部109が1回目のコンフィギュレーションライトにより収集したデータをConfigアクセス制御部104へリプライする。Configアクセス制御部104は、PCIバスインターフェース制御部103を介してPCIバス101へ収集データを出力する。
【0034】
一方、PCIバス101から受け取ったトランザクションが通常のトランザクション、例えばメモリリードであれば、PCIバスインターフェース制御部103はノーマルアクセス制御部105へ制御を移し、ノーマルアクセス制御部105がそのメモリリードトランザクションで受け取ったアドレスと、PCIカード102として設定されているベースアドレスにより、PCIカード102内のどの領域に対するアクセスかを判定する。PCIカード102内のアドレスマッピングは図4に示されている通りである。例えば、上記メモリリードが内部レジスタ領域に対するアクセスであれば、ノーマルアクセス制御部105は内部レジスタ108にアクセスし、ローカルメモリ領域に対するアクセスであれば、ノーマルアクセス制御部105は内部バスインターフェース制御部111に指示を出して、内部バス112を介してローカルメモリ113にアクセスする。
【0035】
なお、図4に示されているアドレスマッピングは、実際的にはPCIカード102内がアドレスマッピングされていない場合であっても、図4の通りに仮想的にアドレスマッピングして、その仮想的なアドレスマッピングに従って動作することも可能である。
【0036】
次に、上述のPCIカードを備えるPCIバスシステムについて説明する。図5は、図1に示したPCIカードを備えるPCIバスシステムの一構成例を示すブロック図である。このPCIバスシステムは、ローカルバス3にCPU1、メモリ2、PCIホスト(ブリッジ)4がそれぞれ接続されており、PCIホスト(ブリッジ)4にはPCIバス101を介してPCIカード102が接続されている。ここで、PCIカード102は複数設けられてもよい。
【0037】
CPU1は、システム全体の動作を制御するものであって、その制御はメモリ2に予め記憶された種々のプログラムに従って行われる。メモリ2には、プログラムの1つとして、PCIカード102を制御するためのプログラム、すなわちデバイスドライバが用意されており、このデバイスドライバによってPCIカード102の本来の動作と後述するような障害時のデータ収集動作が制御される。
【0038】
図6は、図5のPCIバスシステムにおける、PCIカード102の障害発生時のデータ収集動作の一例を示すフローチャートである。以下、図6を参照して障害発生時のデータ収集動作を説明する。
【0039】
まず、PCIカード102内で障害を検出すると(ステップS10)、PCIカード102はPCIバス101へ割り込みを発生する方法などにより、障害が発生したことをデバイスドライバへ通知する(ステップS11)。デバイスドライバは、障害の発生したPCIカード102から障害発生の通知を受けると(ステップS12)、その障害の発生したPCIカード102に対して障害情報を収集するためにPCIカード102内のデータ収集を指示する(ステップS13)とともに、その指示に際して、まずデータ収集を行うアドレスをコンフィギュレーションライトにより通知する(ステップS14)。障害の発生したPCIカード102側では、データ収集制御部109がその指示されたアドレスのデータを収集する(ステップS15)。次いで、デバイスドライバは、コンフィギュレーションリードを実行する(ステップS16)。障害の発生したPCIカード102側では、そのコンフィギュレーションリードを受けて、データ収集制御部109により収集されたデータがPCIバスインタフェース制御部103を介してPCIバス101上に送出される(ステップS17)。デバイスドライバは、そのPCIバス101上に送出されたデータを障害情報として例えばメモリ2内に格納する(ステップS18)。
【0040】
更にデータ収集を行う場合は、デバイスドライバが再度コンフィギュレーションライトによりデータ収集を行うアドレスを通知し、上述のステップS14〜S18の処理が繰り返される。必要な全てのデータが収集されると、データ収集動作を完了する(ステップS19)。
【0041】
以上説明したとおり、本形態のPCIデバイスにおいては、PCIバスインターフェース制御部103を通して、PCIバス101からPCIカード102に対するデータ収集を指示するコンフィギュレーションアクセスをConfigアクセス制御部104が受け取ると、その指示に従ってPCIバストレーサ106やローカルメモリ113などに格納されているデータの収集を行い、収集されたデータをPCIバス101へ出力する。この動作により、PCIカード102内のMPU114がハングアップして停止しているような障害が発生している場合であっても、最も確実で安全なPCIバストランザクションであるコンフィギュレーションアクセスによりPCIカード102内のデータを収集することが可能になる。
【0042】
また、PCIバス101におけるコンフィギュレーションアクセスは、PCIデバイスに何も設定されていない状態であっても、PCIバス仕様で定義されるIDESL信号により対象のPCIデバイスを指定してアクセスするため、PCIバス上のPCIカード102の障害のみならず、OSやドライバなどのソフトウェアの不具合によりPCIバス動作に関する情報が正常に設定されていない状態にあったとしても、同様にPCIカード102内のデータを収集することが可能となる。
【0043】
上記のコンフィギュレーションアクセスの使用では、OSが動作不可能になることはない。これは、元々コンフィギュレーションアクセスはPCIバス初期化時に、PCIデバイスが接続されているかどうかを確認するリソースチェックの手段として使用されており、PCIデバイスが接続されているかどうか不明なリソースに対してコンフィギュレーションアクセスが実行されることを前提としているため、コンフィギュレーションアクセスに対してPCIデバイスが応答せず、PCIホストが強制的にコンフィギュレーションアクセスをマスタアボートするような場合にも、致命的なエラーとはならないためである。従って、本形態では、PCIバス関連の情報が設定されていない場合でも、PCIデバイス内のデータをそのまま収集することができる。また、万が一、PCIバスインターフェース制御部103の故障によりPCIトランザクションに対して応答できないような場合があったとしても、システムの停止に至る重大な問題を引き起こすことがなく、PCIデバイスから確実にデータを収集することが可能である。
【0044】
(他の実施形態1)
上述の実施形態では、データ収集制御部109において使用されるPCIコンフィギュレーション空間のデバイス固有領域はアドレス「40h」のレジスタのみである。そのため、32ビット(つまり4バイト)のデータを収集する毎にアドレスの設定(デバイスドライバによるデータ収集を行うアドレスの通知)が必要とされる。つまり、4バイトのデータを収集するために2回のコンフィギュレーションアクセスが必要とされる。
【0045】
図7は、データ収集制御部109において使用されるPCIコンフィギュレーション空間のデバイス固有領域のレジスタ構造の一例を示す模式図である。この例では、デバイス固有領域のアドレス「43h〜40h」がデータ収集行うアドレスの先頭を設定するアドレス設定レジスタとされ、このアドレス設定レジスタで設定されたアドレスから64バイト分のデータが収集され、アドレス「44h〜83h」までのデータ収集レジスタ群にその収集されたデータが格納される。アドレス「44h〜83h」までの16個のレジスタを順々にコンフィギュレーションリードすることにより、まとめて64バイトのデータ収集が可能となる。
【0046】
前述の図1に示した例においては、64バイトのデータ収集のためには32回のコンフィギュレーションアクセスが必要であるが、図7に示したレジスタ構造にすることで、約半分の17回のコンフィギュレーションアクセスで64バイトのデータ収集が可能となる。
【0047】
なお、図7の例では、まとめて収集されるデータ長は64バイトであるが、データ長は4バイトから192バイトまでのいずれのサイズでも可能である。ただし、データ長を192バイトとする場合は、前述の実施形態と同様に、アドレス設定レジスタにも収集されたデータを格納する必要がある。
【0048】
(他の実施形態2)
上述の図7の例では、収集されたデータを格納するデータ収集レジスタ群のサイズを予め決められたサイズに固定する必要がある。その場合、本当に必要な部分のみのデータ収集を行うことはできない。本形態では、必要に応じたサイズのデータを収集するために以下のようなデバイス固有領域のレジスタ構造を採用する。
【0049】
図8は、データ収集制御部109において使用されるPCIコンフィギュレーション空間のデバイス固有領域のレジスタ構造の一例を示す模式図である。この例では、デバイス固有領域のアドレス「43h〜40h」がデータ収集行うアドレスの先頭を設定するアドレス設定レジスタとされるとともに、アドレス「47h〜44h」が収集されるデータの大きさを設定する収集データ長設定レジスタとされ、アドレス設定レジスタに設定されたアドレスから収集データ長設定レジスタに設定されたサイズのデータが収集され、アドレス「48h〜XXh」までのデータ収集レジスタ群にその収集されたデータが格納される。このように構成することにより、必要に応じたサイズのデータを収集することが可能となる。
【0050】
(他の実施形態3)
上述の図8の例では、収集データ長設定レジスタを設けることにより収集されるデータの大きさを指示しているが、図3における機能番号を使用することによってもデータの大きさを指示することができる。
【0051】
図9は、データ収集制御部109内のレジスタ構造の一例を示す模式図である。この例では、PCIコンフィギュレーション空間のデバイス固有領域としてのレジスタに加えて機能番号保持レジスタを備える。デバイス固有領域のアドレス「43h〜40h」がデータ収集行うアドレスの先頭を設定するアドレス設定レジスタとされ、このアドレス設定レジスタに設定された先頭アドレスから機能番号保持レジスタに格納されたデータによって指定されたサイズのデータが収集され、アドレス「44h〜XXh」までのデータ収集レジスタ群にその収集されたデータが格納される。
【0052】
本形態の場合は、まず、データ収集を行うためのアドレスをアドレス設定レジスタに設定するためのコンフィギュレーションライトが実行されるが、この時のアドレスフェーズの機能番号が機能番号保持レジスタに格納される。データフェーズでライトされるデータはアドレス設定レジスタに格納される。
【0053】
機能番号は3ビットであり、従って、機能番号保持レジスタには3ビットのデータが格納される。つまり、3ビットのデータで8パターンのデータ長を指示することが可能である。例えば、4,8,16,32,64,96,128,192バイトのデータ長を設定することができる。これにより、機能番号を使用して自由に収集データ長を設定し、必要に応じたサイズのデータを収集することが可能になる。
【0054】
【発明の効果】
以上説明したように、本発明によれば、PCIデバイスがどんな状態であっても、システムエラーを生じることなく、PCIデバイス内のデータを確実に収集することができるという効果がある。
【図面の簡単な説明】
【図1】本発明のPCIデバイスの一実施形態であるPCIカードの概略構成を示すブロック図である。
【図2】本発明に適用される、PCIバス仕様におけるコンフィギュレーション空間のアドレスマップの一例を示す模式図である。
【図3】本発明に適用される、PCIバス仕様のコンフィギュレーションアクセスにおけるAD(アドレス・データ)線のアドレスフェーズの定義を示す模式図である。
【図4】図1に示すPCIカード内でマッピングされているアドレス空間の一例を示す模式図である。
【図5】図1に示すPCIカードを備えるPCIバスシステムの一構成例を示すブロック図である。
【図6】図5に示すPCIバスシステムにおけるデータ収集動作の一例を示すフローチャート図である。
【図7】図1に示すデータ収集制御部において使用されるPCIコンフィギュレーション空間のデバイス固有領域のレジスタ構造の一例を示す模式図である。
【図8】図1に示すデータ収集制御部において使用されるPCIコンフィギュレーション空間のデバイス固有領域のレジスタ構造の一例を示す模式図である。
【図9】図1に示すデータ収集制御部109内のレジスタ構造の一例を示す模式図である。
【図10】特開平10−21152号公報に記載されたLANPシステムの概略構成を示すブロック図である。
【図11】図10に示すPCI拡張カードの一例を示すブロック図である。
【符号の説明】
1、200 CPU
2 メモリ
3 ローカルバス
4 PCIホスト
101、211 PCIバス
102 PCIカード
103 PCIバスインターフェース制御部
104 Configアクセス制御部
105 ノーマルアクセス制御部
106 PCIバストレーサ
107 Configレジスタ
108 内部レジスタ
109 データ収集制御部
110 内部バストレーサ
111 内部バスインターフェース制御部
112 内部バス
113 ローカルメモリ
114、301 MPU
201 MEM
202 PCL
203 NIC
204 OLA
210 システムバス
212 IOインタフェース
220 LANP
221 ホストコンピュータ
222 LAN回線
300 PBC
302 LM
310 CFG

Claims (13)

  1. PCIバスに接続される、任意にレジスタの設定が可能なデバイス固有領域を含むコンフィグレーション空間を持つPCIデバイスであって、
    前記デバイス固有領域として定義されるレジスタが実装され、データ収集指示を受けると、前記レジスタの内容に従って指示されたデータの収集を行うデータ収集制御手段と、
    前記PCIバスを介して前記デバイス固有領域に対するコンフィグレーションアクセスを受けると、前記データ収集制御手段に対して前記データ収集指示を送出するとともに、該データ収集指示に応じて前記データ収集制御手段が収集したデータを前記PCIバス上に送出するコンフィグレーションアクセス制御手段とを有するPCIデバイス。
  2. コンフィグレーションアクセスはコンフィグレーションライトとコンフィグレーションリードの2つのアクセスからなり、
    データ収集手段は、前記コンフィグレーションライトによって、デバイス固有領域の所定のアドレスからの所定のビット数のレジスタに対してデータ収集を行うべきアドレスが書き込まれ、該書き込まれたアドレスに従ってデータが収集され、該収集されたデータが前記所定のビット数のレジスタに格納され、さらに前記コンフィグレーションリードによって、前記所定のビット数のレジスタに格納されたデータがコンフィグレーションアクセス制御手段に送出されるように構成されていることを特徴とする請求項1に記載のPCIデバイス。
  3. コンフィグレーションアクセスはコンフィグレーションライトとコンフィグレーションリードの2つのアクセスからなり、
    データ収集手段は、前記コンフィグレーションライトによって、デバイス固有領域の所定のアドレスのアドレス設定レジスタにデータ収集を行うべきアドレスの先頭アドレスが書き込まれ、該書き込まれた先頭アドレスから所定のバイト分のデータが収集され、該収集されたデータが前記デバイス固有領域の複数のアドレスにわたるレジスタ群に格納され、さらに前記コンフィグレーションリードによって、前記レジスタ群に格納されたデータが順次読み出されてコンフィグレーションアクセス制御手段に送出されるように構成されていることを特徴とする請求項1に記載のPCIデバイス。
  4. データ収集手段は、デバイス固有領域の所定のアドレスに収集データのサイズを指定するためのサイズ指定用レジスタを有し、レジスタの設定アドレスに書き込まれた先頭アドレスから前記サイズ指定用レジスタで指定されたデータサイズ分のデータが収集されてレジスタ群に格納されるように構成されていることを特徴とする請求項3に記載のPCIデバイス。
  5. データ収集手段は、コンフィグレーション空間に対して行われる操作であるコンフィグレーションサイクルの所定のビットによって定義された機能番号が格納される機能番号保持レジスタを有し、レジスタの設定アドレスに書き込まれた先頭アドレスから前記機能番号保持レジスタに格納されたデータで指定されるデータサイズ分のデータが収集されてレジスタ群に格納されるように構成されていることを特徴とする請求項3に記載のPCIデバイス。
  6. コンフィグレーション空間のヘッダ領域として定義されるレジスタを実装するコンフィグレーションレジスタをさらに有し、
    コンフィグレーションアクセス制御手段は、PCIバスを介して前記ヘッダ領域に対するコンフィグレーションアクセスを受けると、前記コンフィグレーションレジスタに対してアクセスするように構成されていることを特徴とする請求項1に記載のPCIデバイス。
  7. PCIバスを介したデータ伝送を制御するPCIバスインターフェース制御手段と、
    所定のノーマルアクセス動作を制御するノーマルアクセス制御手段とをさらに有し、
    前記PCIバスインターフェース制御手段が、前記PCIバスを介してコンフィグレーションアクセスを受けた場合は、コンフィグレーションアクセス手段に対して前記コンフィグレーションアクセスの内容に応じた動作の実行を指示し、前記PCIバスを介して前記コンフィグレーションアクセス以外のPCIバストランザクションを受けた場合は、前記ノーマルアクセス制御手段に対してPCIバストランザクションの内容に応じたノーマルアクセス動作の実行を指示するように構成されていることを特徴とする請求項1に記載のPCIデバイス。
  8. 請求項1乃至7のいずれか1項に記載のPCIデバイスと、前記PCIデバイスが接続されるPCIバスとを有するPCIバスシステム。
  9. 任意にレジスタの設定が可能なデバイス固有領域を含むコンフィグレーション空間を持つPCIデバイスがPCIバスに接続されたPCIバスシステムにおいて行われるデータ収集方法であって、
    前記デバイス固有領域を使用して、前記PCIデバイスに対してデータの収集を指示するコンフィグレーションアクセスを実行するステップと、
    前記PCIデバイスが、前記コンフィグレーションアクセスに従って指定されたデータの収集を行い、該収集したデータを前記PCIバス上に送出するステップとを含むことを特徴とするデータ収集方法。
  10. コンフィグレーションアクセスがコンフィグレーションライトとコンフィグレーションリードの2つのアクセスからなり、
    前記コンフィグレーションライトによって、PCIデバイス内に実装されたデバイス固有領域の所定のアドレスからの所定のビット数のレジスタに対して、データ収集を行うべきアドレスを書き込むステップと、
    前記PCIデバイスが、前記書き込まれたデータ収集を行うべきアドレスに従ってデータを収集し、該収集したデータを前記所定のビット数のレジスタに格納するステップと、
    前記コンフィグレーションリードによって、前記所定のビット数のレジスタに格納されたデータを読み出すステップとを含むことを特徴とする請求項9に記載のデータ収集方法。
  11. コンフィグレーションアクセスがコンフィグレーションライトとコンフィグレーションリードの2つのアクセスからなり、
    前記コンフィグレーションライトによって、PCIデバイス内に実装されたデバイス固有領域の所定のアドレスのアドレス設定レジスタにデータ収集を行うべきアドレスの先頭アドレスを書き込むステップと、
    前記PCIデバイスが、前記アドレス設定レジスタに書き込まれた先頭アドレスに従ってデータを収集し、該収集したデータを前記デバイス固有領域の複数のアドレスにわたるレジスタ群に格納するステップと、
    前記コンフィグレーションリードによって、前記レジスタ群に格納されたデータを読み出すステップとを含むことを特徴とする請求項9に記載のデータ収集方法。
  12. デバイス固有領域の所定のアドレスのレジスタをサイズ指定用レジスタとし、該サイズ指定用レジスタに収集すべきデータのサイズを設定するステップをさらに含み、
    PCIデバイスによるデータ収集のステップが、レジスタの設定アドレスに書き込まれた先頭アドレスから前記サイズ指定用レジスタで指定されたデータサイズ分のデータを収集し、該収集したデータをレジスタ群に格納するステップであることを特徴とする請求項11に記載のデータ収集方法。
  13. コンフィグレーション空間に対して行われる操作であるコンフィグレーションサイクルの所定のビットによって定義された機能番号をPCIデバイス内に実装された機能番号保持レジスタに格納するステップをさらに含み、
    PCIデバイスによるデータ収集のステップが、レジスタの設定アドレスに書き込まれた先頭アドレスから前記機能番号保持レジスタに格納されたデータで指定されるデータサイズ分のデータを収集し、該収集したデータを前記デバイス固有領域の複数のアドレスにわたるレジスタ群に格納するステップであることを特徴とする請求項11に記載のデータ収集方法。
JP2001167800A 2001-06-04 2001-06-04 Pciデバイスおよびそれを備えるpciバスシステムならびにデータ収集方法 Expired - Fee Related JP3584977B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001167800A JP3584977B2 (ja) 2001-06-04 2001-06-04 Pciデバイスおよびそれを備えるpciバスシステムならびにデータ収集方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001167800A JP3584977B2 (ja) 2001-06-04 2001-06-04 Pciデバイスおよびそれを備えるpciバスシステムならびにデータ収集方法

Publications (2)

Publication Number Publication Date
JP2002358251A JP2002358251A (ja) 2002-12-13
JP3584977B2 true JP3584977B2 (ja) 2004-11-04

Family

ID=19010136

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001167800A Expired - Fee Related JP3584977B2 (ja) 2001-06-04 2001-06-04 Pciデバイスおよびそれを備えるpciバスシステムならびにデータ収集方法

Country Status (1)

Country Link
JP (1) JP3584977B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4945053B2 (ja) * 2003-03-18 2012-06-06 ルネサスエレクトロニクス株式会社 半導体装置、バスインターフェース装置、およびコンピュータシステム
US8166207B2 (en) 2008-09-29 2012-04-24 Intel Corporation Querying a device for information
JP5380392B2 (ja) * 2010-08-04 2014-01-08 ルネサスエレクトロニクス株式会社 半導体装置、バスインターフェース装置、およびコンピュータシステム
JP5324676B2 (ja) * 2012-02-17 2013-10-23 ルネサスエレクトロニクス株式会社 プロセッサ、バスインターフェース装置、およびコンピュータシステム

Also Published As

Publication number Publication date
JP2002358251A (ja) 2002-12-13

Similar Documents

Publication Publication Date Title
US5729767A (en) System and method for accessing peripheral devices on a non-functional controller
JP2579435B2 (ja) マルチプル・バス・システムにおけるエラー検知及び回復機構とその方法
US6263373B1 (en) Data processing system and method for remotely controlling execution of a processor utilizing a test access port
US5682512A (en) Use of deferred bus access for address translation in a shared memory clustered computer system
US6282643B1 (en) Computer system having flash memory BIOS which can be accessed remotely while protected mode operating system is running
KR100395393B1 (ko) 컴퓨터 주변장치의 초기화 및 컴퓨터 주변장치와의 통신을위한 시스템, 장치 및 방법
US8566644B1 (en) System and method for debugging a target computer using SMBus
US7849242B2 (en) PCI express-compatible controller and interface that provides PCI express functionality and flash memory operations to host device
US7131035B2 (en) Serial bus host controller diagnosis
US11609874B2 (en) System-on-chips and methods of controlling reset of system-on-chips
US20090089467A1 (en) Bus communication emulation
JPH09508227A (ja) Pciバス・コンピュータのための使用可/使用不可拡張romを有する追加ボード
US6611912B1 (en) Method and apparatus having a system BIOS write configuration data of a riser card to a controller configuration space when connecting the riser card to a motherboard
US7225288B2 (en) Extended host controller test mode support for use with full-speed USB devices
US6898646B1 (en) Highly concurrent DMA controller with programmable DMA channels
JPH04315253A (ja) 電子機器
US7644263B2 (en) Storage control system and boot control system
CN112231005A (zh) 一种基于uboot管理fpga版本的方法
US6148384A (en) Decoupled serial memory access with passkey protected memory areas
JP3584977B2 (ja) Pciデバイスおよびそれを備えるpciバスシステムならびにデータ収集方法
JPH1055331A (ja) プログラム可能な読み出し/書き込みアクセス信号とその方法
US20030065868A1 (en) Distributed peer-to-peer communication for interconnect busses of a computer system
US7424580B2 (en) Data transfer control device, electronic instrument, program and method of fabricating electronic instrument
US20040153810A1 (en) Computer system equipped with a BIOS debugging card
US6651172B1 (en) Multi-phase EEPROM reading for network interface initialization

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040708

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040727

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees