JPWO2005003981A1 - ステータス通知装置およびステータス通知方法 - Google Patents
ステータス通知装置およびステータス通知方法 Download PDFInfo
- Publication number
- JPWO2005003981A1 JPWO2005003981A1 JP2005503379A JP2005503379A JPWO2005003981A1 JP WO2005003981 A1 JPWO2005003981 A1 JP WO2005003981A1 JP 2005503379 A JP2005503379 A JP 2005503379A JP 2005503379 A JP2005503379 A JP 2005503379A JP WO2005003981 A1 JPWO2005003981 A1 JP WO2005003981A1
- Authority
- JP
- Japan
- Prior art keywords
- status
- priority
- bus
- determination
- pci bus
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/124—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
- G06F13/128—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine for dedicated transfers to a network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/4031—Coupling between buses using bus bridges with arbitration
Abstract
CPUおよびメモリが接続されたホストバスにブリッジを介して接続されたPCIバスに接続するネットワークコントローラのステータスをCPUに通知するステータス通知装置であって、ネットワークコントローラのステータスの優先度を判定する優先度判定部と、優先度の低いステータスを格納するステータスキューと、PCIバスの使用状況を判定するバスモニタと、ステータスの優先度が低い場合にはPCIバスが使用されていない時にのみステータスキューに格納されたステータスのメモリへの書き込みを許可する出力許可部とを備える。
Description
この発明は、中央処理装置および記憶装置が接続された第1のバスにブリッジを介して接続された第2のバスに接続するデバイスのステータスを中央処理装置に通知するステータス通知装置およびステータス通知方法に関し、特に、不急な第2のバスの使用を無くし、もって第2のバスの使用効率を向上することができるステータス通知装置およびステータス通知方法に関するものである。
従来、ホストバス(第1のバス)に接続するCPUがホストバスにブリッジを介して接続されたPCIバス(第2のバス)に接続するデバイスのステータスを取得する場合には、CPUがデバイスのステータスをポーリングしていた。
第8図は、従来のデバイスステータス通知方式を説明するための説明図である。同図に示すように、ブリッジ40を介してPCIバス50に接続されたデバイスC800のステータスをCPU10が取得する場合には、CPU10がホストバス30、ブリッジ40およびPCIバス50を介してデバイスC800のステータスレジスタ810を読み取っていた。なお、CPUがポーリングによってデバイスのステータスを読み出す技術については、特許文献1に開示されている。
また、CPU10がデバイスC800をポーリングする代わりに、DMA(Direct Memory Access)機能を用いて、デバイスC800がステータスをメモリ20に書き込み、CPU10がメモリ20を読み出すことによってデバイスC800のステータスを取得することもできる。たとえば、特許文献2〜4には、DMA機能を用いてデバイスステータスをメモリに書き込む技術が開示されている。
特開昭59−122257 特開昭57−103530 特開2001−45095 特開平09−204311
第8図は、従来のデバイスステータス通知方式を説明するための説明図である。同図に示すように、ブリッジ40を介してPCIバス50に接続されたデバイスC800のステータスをCPU10が取得する場合には、CPU10がホストバス30、ブリッジ40およびPCIバス50を介してデバイスC800のステータスレジスタ810を読み取っていた。なお、CPUがポーリングによってデバイスのステータスを読み出す技術については、特許文献1に開示されている。
また、CPU10がデバイスC800をポーリングする代わりに、DMA(Direct Memory Access)機能を用いて、デバイスC800がステータスをメモリ20に書き込み、CPU10がメモリ20を読み出すことによってデバイスC800のステータスを取得することもできる。たとえば、特許文献2〜4には、DMA機能を用いてデバイスステータスをメモリに書き込む技術が開示されている。
しかしながら、ポーリング方式の場合には、ステータスレジスタ810からのステータスの読み出しがPCIバス50を介しておこなわれ(▲1▼)、DMA方式の場合には、ステータスのメモリ20への書き込みがPCIバス50を介しておこなわれるため(▲2▼)、PCIバス50に接続された他のデバイスA60からデバイスB70へデータ転送中(▲3▼)にポーリングまたはDMAが発生すると、その度にデータ転送が中断され、PCIバス50のデータ転送効率が悪くなるという問題点があった。
この発明は、上述した従来技術による問題点を解消するためになされたものであり、不急なPCIバス50(第2のバス)の使用を無くし、もってPCIバス50の使用効率を向上することができるステータス通知装置およびステータス通知方法を提供することを目的としている。
この発明は、上述した従来技術による問題点を解消するためになされたものであり、不急なPCIバス50(第2のバス)の使用を無くし、もってPCIバス50の使用効率を向上することができるステータス通知装置およびステータス通知方法を提供することを目的としている。
上述した課題を解決し、目的を達成するため、本発明は、中央処理装置および記憶装置が接続された第1のバスにブリッジを介して接続された第2のバスに接続するデバイスのステータスを該中央処理装置に通知するステータス通知装置であって、前記ステータスの優先度を判定する優先度判定手段と、前記第2のバスの使用状況を判定するバス使用状況判定手段と、前記優先度判定手段による優先度の判定結果および前記バス使用状況判定手段による第2のバスの使用状況の判定結果に基づいて前記ステータスを記憶装置に書き込むステータス書き込み手段と、を備えたことを特徴とする。
また、本発明は、中央処理装置および記憶装置が接続された第1のバスにブリッジを介して接続された第2のバスに接続するデバイスのステータスを該中央処理装置に通知するステータス通知方法であって、前記ステータスの優先度を判定する優先度判定工程と、前記第2のバスの使用状況を判定するバス使用状況判定工程と、前記優先度判定工程による優先度の判定結果および前記バス使用状況判定工程による第2のバスの使用状況の判定結果に基づいて前記ステータスを記憶装置に書き込むステータス書き込み工程と、を含んだことを特徴とする。
かかる発明によれば、ステータスの優先度を判定し、第2のバスの使用状況を判定し、優先度の判定結果および第2のバスの使用状況の判定結果に基づいてステータスを記憶装置に書き込むこととしたので、不急な第2のバスの使用を無くし、もって第2のバスの使用効率を向上することができる。
また、本発明は、中央処理装置および記憶装置が接続された第1のバスにブリッジを介して接続された第2のバスに接続するデバイスのステータスを該中央処理装置に通知するステータス通知方法であって、前記ステータスの優先度を判定する優先度判定工程と、前記第2のバスの使用状況を判定するバス使用状況判定工程と、前記優先度判定工程による優先度の判定結果および前記バス使用状況判定工程による第2のバスの使用状況の判定結果に基づいて前記ステータスを記憶装置に書き込むステータス書き込み工程と、を含んだことを特徴とする。
かかる発明によれば、ステータスの優先度を判定し、第2のバスの使用状況を判定し、優先度の判定結果および第2のバスの使用状況の判定結果に基づいてステータスを記憶装置に書き込むこととしたので、不急な第2のバスの使用を無くし、もって第2のバスの使用効率を向上することができる。
第1図は、本実施の形態に係るデバイスステータス通知方式の概念を説明するための説明図であり、第2図は、本実施の形態に係るネットワークコントローラの構成を示す機能ブロック図であり、第3図は、優先度判定テーブルの一例を示す図であり、第4図は、本実施の形態に係るネットワークコントローラによるステータス通知動作を示すフローチャートであり、第5図は、本実施の形態に係るネットワークコントローラによる高優先度ステータス通知動作を説明するための説明図であり、第6図は、本実施の形態に係るネットワークコントローラによる低優先度ステータス通知動作を説明するための説明図であり、第7図は、デバイスAからデバイスBへのデータ転送中にネットワークコントローラにステータス通知要因が発生した場合のPCIバスおよびホストバスのタイムチャートを示す図であり、第8図は、従来のデバイスステータス通知方式を説明するための説明図である。
以下、添付図面を参照して、この発明に係るステータス通知装置およびステータス通知方法の好適な実施の形態を詳細に説明する。なお、本実施の形態では、本発明をネットワークコントローラに適用した場合を中心に説明する。
まず、本実施の形態に係るデバイスステータス通知方式の概念について説明する。第1図は、本実施の形態に係るデバイスステータス通知方式の概念を説明するための説明図である。
同図に示すように、本実施の形態に係るデバイスステータス通知方式では、ネットワークコントローラ100がステータスをメモリ20に書き込み、CPU10はネットワークコントローラ100のステータスを取得するためにネットワークコントローラ100をポーリングする代わりにメモリ20をポーリングする(▲1▼)。このため、CPU10がデバイスステータスをポーリングする場合にPCIバス50が使用されることはなく、デバイスA60からデバイスB70へのデータ転送中(▲2▼)にCPU10のポーリングが発生してもデータ転送が中断されることはない。
また、ネットワークコントローラ100は、CPU10に通知すべきステータスの優先度を判定し、優先度が低い場合には、ステータスを直ちにメモリ20に書き込むのではなく、ステータスキュー150に格納する。そして、PCIバス50が使用されていない時に、ステータスキュー150に格納した低優先度ステータスをまとめて、PCIバス50、ブリッジ40およびホストバス30を介してメモリ20に書き込む(▲3▼)。
したがって、デバイスA60からデバイスB70へのデータ転送中にCPU10に通知するステータスが発生しても、ステータスの優先度が低い場合にはデータ転送が中断されることはない。ただし、ネットワークコントローラ100に発生したステータスの優先度が高い場合には、直ちにそのステータスをメモリ20に書き込む(▲4▼)。
このように、本実施の形態係るデバイスステータス通知では、ネットワークコントローラ100は、DMA機能を用いてステータスをメモリ20に書き込む場合に、ステータスの優先度を判定し、優先度が低い場合にはステータスキュー150に格納し、PCIバス50が使用されていない時にまとめてステータスをメモリ20に書き込むことによって、PCIバスを効率良く使用することができる。
次に、本実施の形態に係るネットワークコントローラ100の構成について説明する。第2図は、本実施の形態に係るネットワークコントローラ100の構成を示す機能ブロック図である。
同図に示すように、このネットワークコントローラ100は、MAC制御部110と、ステータス生成部120と、優先度判定部130と、DeMUX140と、ステータスキュー150と、MUX160と、バスモニタ170と、出力許可部180と、出力制御部190とを有する。
MAC制御部110は、MAC(Media Access Controller)200とのデータ転送を制御する処理部である。なお、MAC200は、ネットワークとデータ授受をおこなう装置である。
ステータス生成部120は、MAC200からのエラー通知やMAC制御部110からのデータ転送完了通知などCPU10への通知要因を受け、CPU10へ通知すべきステータスを生成する処理部である。
優先度判定部130は、ステータス生成部120からステータスの要因を受け取り、ステータスの優先度を判定する処理部であり、具体的には、優先度判定テーブルを用いてステータスの優先度を判定する。
第3図は、優先度判定テーブルの一例を示す図である。同図に示すように、この優先度判定テーブルは、ステータスの種類を示すラベルと、ステータスの優先度と、ステータスを識別するバイナリコードとをステータスごとに対応付けて記憶している。
たとえば、ラベルが「フレームチェックエラー」であるステータスは、優先度が「高」であり、バイナリコードが「0001」であることを示し、ラベルが「受信完了」であるステータスは、優先度が「低」であり、バイナリコードが「0011」であることを示している。
DeMUX140は、優先度判定部130によるステータスの優先度判定結果に従ってステータスを出力制御部190に直接送るかステータスキュー150に格納するかを選択する処理部である。すなわち、優先度判定部130がステータスの優先度が高いと判定した場合には、ステータスを出力制御部190に直接送り、優先度判定部130がステータスの優先度が低いと判定した場合には、ステータスをステータスキュー150に格納する。
このように、優先度判定部130がステータスの優先度を判定し、優先度判定部130がステータスの優先度が低いと判定した場合に、DeMUX140がステータスをステータスキュー150に格納してPCIバス50への出力を延期することによって、不急なPCIバス50の使用を避けることができる。
ステータスキュー150は、優先度判定部130が優先度が低いと判定したステータスを一時的に格納する記憶部であり、PCIバス50が使用中である間は優先度が低いステータスを格納しておく。そして、このステータスキュー150に格納されたステータスは、PCIバス50が使用中でなくなった時にまとめて出力制御部190に渡される。
MUX160は、DeMUX140から受け取った高優先度ステータスまたはステータスキュー150に格納された低優先度ステータスを出力制御部190へ渡す処理部である。
バスモニタ170は、PCIバス50の状態を常に監視し、PCIバス50が使用されているか否かを判定する処理部であり、判定した結果を出力許可部180に伝える。
出力許可部180は、ステータスの優先度およびPCIバス50の使用状況に基づいてメモリ20へのステータスの書き込みを許可する処理部であり、具体的には、ステータスの優先度が高い場合には、PCIバス50の使用状況にかかわらずメモリ20へのステータスの書き込みを許可し、ステータスの優先度が低い場合には、PCIバス50が使用中でなければメモリ20へのステータスの書き込みを許可する。
この出力許可部180がステータスの優先度が低い場合に、PCIバス50が使用中でない時だけメモリ20へのステータスの書き込みを許可することによって、PCIバス50の不急な使用を無くし、PCIバス50を効率良く使用することができる。
出力制御部190は、出力許可部180の出力許可を受け、PCIバス50、ブリッジ40およびホストバス30を介してメモリ20へステータスの書き込みをおこなう処理部である。
次に、本実施の形態に係るネットワークコントローラ100によるステータス通知動作ついて説明する。第4図は、本実施の形態に係るネットワークコントローラ100によるステータス通知動作を示すフローチャートである。
同図に示すように、このネットワークコントローラ100は、CPU10に通知する必要があるイベントが発生すると(ステップS401、肯定)、ステータス生成部120がステータスを生成し(ステップS402)、その要因を優先度判定部130に伝える。
すると、優先度判定部130がステータスの優先度を判定し(ステップS403)、優先度が高い場合には、出力許可部180が出力許可信号を生成し(ステップS404)、出力制御部190がメモリ20への書き込みをおこなう(ステップS405)。
一方、優先度が低い場合には、DeMUX140がステータスをステータスキュー150に格納し(ステップS406)、バスモニタ170によって判定されたPCIバス50の使用状況を参照して出力許可部180が、PCIバス50がビジーである間は(ステップS407、ビジー)、出力許可をおこなわない。
また、PCIバス50がアイドルである場合またはPCIバス50がアイドルになった場合(ステップS407、アイドル)、出力許可部180が出力許可信号を生成し(ステップS404)、ステータスキュー150に格納されたステータスをまとめて出力制御部190がメモリ20へ書き込む(ステップS405)。
このように、優先度判定部130がステータスの優先度を判定し、ステータスの優先度とPCIバス50の使用状況に基づいて出力許可部180が出力許可信号を生成することによって、不急なPCIバス50の使用を無くし、PCIバス50を効率良く使用することができる。
次に、本実施の形態に係るネットワークコントローラ100が優先度の高いステータスを通知する場合の動作について説明する。第5図は、本実施の形態に係るネットワークコントローラ100による高優先度ステータス通知動作を説明するための説明図である。
同図に示すように、たとえば、MAC200がフレームチェックエラーを検出し(▲1▼)、ステータス生成部120に通知すると(▲2▼)、ステータス生成部120はフレームチェックエラーのステータスを生成するとともにその要因を優先度判定部130に通知し、優先度判定部130が優先度テーブルを用いてフレームチェックエラーの優先度は高いと判定する(▲3▼)。
すると、DeMUX140がこの判定結果を受け(▲4▼)、ステータスをMUX160経由で出力制御部190に渡す(▲5▼)。一方、優先度判定部130の判定結果を受けて出力許可部180は、PCIバス50の使用状況にかかわらず出力許可信号を生成し出力制御部190に伝える(▲6▼)。そして、出力制御部190が、フレームチェックエラーのステータスをメモリ20へ書き込む。
このように、このネットワークコントローラ100は、フレームチェックエラーのような優先度の高いステータスについては、PCIバス50の使用状況にかかわらず直ちにメモリ20へ書き込む。
次に、本実施の形態に係るネットワークコントローラ100が優先度の低いステータスを通知する場合の動作について説明する。第6図は、本実施の形態に係るネットワークコントローラ100による低優先度ステータス通知動作を説明するための説明図である。
同図に示すように、たとえば、MAC制御部110がデータの受信を完了し(▲1▼)、ステータス生成部120に転送完了を通知すると(▲2▼)、ステータス生成部120は受信完了のステータスを生成するとともにその要因を優先度判定部130に通知し、優先度判定部130が優先度テーブルを用いて受信完了の優先度は低いと判定する(▲3▼)。
すると、DeMUX140がこの判定結果を受け(▲4▼)、ステータスをステータスキュー150に格納する。一方、優先度判定部130の判定結果を受けて出力許可部180は、バスモニタ170によるPCIバス50の使用状況判定結果(▲5▼)を参照し、PCIバス50が使用中でない場合には、出力許可信号を生成して出力制御部190に伝える(▲6▼)。そして、出力制御部190が、受信完了のステータスをメモリ20へ書き込む(▲7▼)。
これに対して、PCIバス50が使用中である場合には、出力許可部180は、PCIバス50が使用中でなくなるまで待ち、使用中でなくなると出力許可信号を生成して出力制御部190に伝える(▲6▼)。そして、出力制御部190が、受信完了のステータスをメモリ20へ書き込む(▲8▼)。
このように、このネットワークコントローラ100は、受信完了のような優先度の低いステータスについては、PCIバス50が使用されていない時を利用してメモリ20へ書き込む。
次に、従来のCPU10によるポーリング方式を用いた場合のPCIバス50の動作および本実施の形態に係るステータス通知方式を用いた場合のPCIバス50の動作について説明する。第7図は、デバイスA60からデバイスB70へのデータ転送中にネットワークコントローラ100にステータス通知要因が発生した場合のPCIバス50およびホストバス30のタイムチャートを示す図である。
同図に示すように、従来のCPU10によるポーリング方式では、デバイスA60からデバイスB70へのデータ転送中にCPU10によるポーリングが発生すると、その度にPCIバス50がCPU10に使用され、データ転送が中断される。そして、ネットワークコントローラ100に発生した3つの低優先度ステータス通知要因は、要因発生後のCPU10のポーリングによって検出される。
一方、本実施の形態に係るステータス通知方式では、デバイスA60からデバイスB70へのデータ転送中にネットワークコントローラ100に優先度の低いステータス通知要因が発生した場合には、発生したステータス通知要因をデータ転送が完了するまでステータスキュー150に格納し、データ転送が終了した時点で3つまとめてメモリ20に書き込む。このため、デバイスA60からデバイスB70へのデータ転送は中断されることなく早期に完了し、PCIバス50を効率良く使用することができる。
また、本実施の形態に係るステータス通知方式では、CPU10はメモリ20をポーリングしてネットワークコントローラ100のステータスを取得するため、ポーリングにはホストバス30のみを使用し、PCIバス50を使用する必要はない。
上述したように、本実施の形態では、優先度判定部130がネットワークコントローラ100に発生したステータスの優先度を判定し、ステータスの優先度が低い場合には、DeMUX140が優先度の低いステータスをステータスキュー150に格納し、バスモニタ170がPCIバス50の使用状況を判定し、出力許可部180がPCIバス50が使用されていない時にのみステータスキュー150に格納されたステータスのメモリ20への書き込みを許可することとしたので、不急なPCIバス50の使用を無くし、PCIバス50を効率良く使用することができる。
なお、本実施の形態では、PCIバスに接続されたネットワークコントローラのステータスを、ブリッジを介してPCIバスに接続されたホストバスに接続するCPUに通知する場合について説明したが、本発明はこれに限定されるものではなく、ネットワークコントローラ以外のデバイスやPCIバス以外のバスに接続されたデバイスのステータスを通知する場合にも同様に適用することができる。
以上説明したように、本発明によれば、デバイスのステータスの優先度を判定し、第2のバスの使用状況を判定し、優先度の判定結果および第2のバスの使用状況の判定結果に基づいてステータスを記憶装置に書き込むよう構成したので、不急な第2のバスの使用を無くし、もって第2のバスの使用効率を向上することができるという効果を奏する。
まず、本実施の形態に係るデバイスステータス通知方式の概念について説明する。第1図は、本実施の形態に係るデバイスステータス通知方式の概念を説明するための説明図である。
同図に示すように、本実施の形態に係るデバイスステータス通知方式では、ネットワークコントローラ100がステータスをメモリ20に書き込み、CPU10はネットワークコントローラ100のステータスを取得するためにネットワークコントローラ100をポーリングする代わりにメモリ20をポーリングする(▲1▼)。このため、CPU10がデバイスステータスをポーリングする場合にPCIバス50が使用されることはなく、デバイスA60からデバイスB70へのデータ転送中(▲2▼)にCPU10のポーリングが発生してもデータ転送が中断されることはない。
また、ネットワークコントローラ100は、CPU10に通知すべきステータスの優先度を判定し、優先度が低い場合には、ステータスを直ちにメモリ20に書き込むのではなく、ステータスキュー150に格納する。そして、PCIバス50が使用されていない時に、ステータスキュー150に格納した低優先度ステータスをまとめて、PCIバス50、ブリッジ40およびホストバス30を介してメモリ20に書き込む(▲3▼)。
したがって、デバイスA60からデバイスB70へのデータ転送中にCPU10に通知するステータスが発生しても、ステータスの優先度が低い場合にはデータ転送が中断されることはない。ただし、ネットワークコントローラ100に発生したステータスの優先度が高い場合には、直ちにそのステータスをメモリ20に書き込む(▲4▼)。
このように、本実施の形態係るデバイスステータス通知では、ネットワークコントローラ100は、DMA機能を用いてステータスをメモリ20に書き込む場合に、ステータスの優先度を判定し、優先度が低い場合にはステータスキュー150に格納し、PCIバス50が使用されていない時にまとめてステータスをメモリ20に書き込むことによって、PCIバスを効率良く使用することができる。
次に、本実施の形態に係るネットワークコントローラ100の構成について説明する。第2図は、本実施の形態に係るネットワークコントローラ100の構成を示す機能ブロック図である。
同図に示すように、このネットワークコントローラ100は、MAC制御部110と、ステータス生成部120と、優先度判定部130と、DeMUX140と、ステータスキュー150と、MUX160と、バスモニタ170と、出力許可部180と、出力制御部190とを有する。
MAC制御部110は、MAC(Media Access Controller)200とのデータ転送を制御する処理部である。なお、MAC200は、ネットワークとデータ授受をおこなう装置である。
ステータス生成部120は、MAC200からのエラー通知やMAC制御部110からのデータ転送完了通知などCPU10への通知要因を受け、CPU10へ通知すべきステータスを生成する処理部である。
優先度判定部130は、ステータス生成部120からステータスの要因を受け取り、ステータスの優先度を判定する処理部であり、具体的には、優先度判定テーブルを用いてステータスの優先度を判定する。
第3図は、優先度判定テーブルの一例を示す図である。同図に示すように、この優先度判定テーブルは、ステータスの種類を示すラベルと、ステータスの優先度と、ステータスを識別するバイナリコードとをステータスごとに対応付けて記憶している。
たとえば、ラベルが「フレームチェックエラー」であるステータスは、優先度が「高」であり、バイナリコードが「0001」であることを示し、ラベルが「受信完了」であるステータスは、優先度が「低」であり、バイナリコードが「0011」であることを示している。
DeMUX140は、優先度判定部130によるステータスの優先度判定結果に従ってステータスを出力制御部190に直接送るかステータスキュー150に格納するかを選択する処理部である。すなわち、優先度判定部130がステータスの優先度が高いと判定した場合には、ステータスを出力制御部190に直接送り、優先度判定部130がステータスの優先度が低いと判定した場合には、ステータスをステータスキュー150に格納する。
このように、優先度判定部130がステータスの優先度を判定し、優先度判定部130がステータスの優先度が低いと判定した場合に、DeMUX140がステータスをステータスキュー150に格納してPCIバス50への出力を延期することによって、不急なPCIバス50の使用を避けることができる。
ステータスキュー150は、優先度判定部130が優先度が低いと判定したステータスを一時的に格納する記憶部であり、PCIバス50が使用中である間は優先度が低いステータスを格納しておく。そして、このステータスキュー150に格納されたステータスは、PCIバス50が使用中でなくなった時にまとめて出力制御部190に渡される。
MUX160は、DeMUX140から受け取った高優先度ステータスまたはステータスキュー150に格納された低優先度ステータスを出力制御部190へ渡す処理部である。
バスモニタ170は、PCIバス50の状態を常に監視し、PCIバス50が使用されているか否かを判定する処理部であり、判定した結果を出力許可部180に伝える。
出力許可部180は、ステータスの優先度およびPCIバス50の使用状況に基づいてメモリ20へのステータスの書き込みを許可する処理部であり、具体的には、ステータスの優先度が高い場合には、PCIバス50の使用状況にかかわらずメモリ20へのステータスの書き込みを許可し、ステータスの優先度が低い場合には、PCIバス50が使用中でなければメモリ20へのステータスの書き込みを許可する。
この出力許可部180がステータスの優先度が低い場合に、PCIバス50が使用中でない時だけメモリ20へのステータスの書き込みを許可することによって、PCIバス50の不急な使用を無くし、PCIバス50を効率良く使用することができる。
出力制御部190は、出力許可部180の出力許可を受け、PCIバス50、ブリッジ40およびホストバス30を介してメモリ20へステータスの書き込みをおこなう処理部である。
次に、本実施の形態に係るネットワークコントローラ100によるステータス通知動作ついて説明する。第4図は、本実施の形態に係るネットワークコントローラ100によるステータス通知動作を示すフローチャートである。
同図に示すように、このネットワークコントローラ100は、CPU10に通知する必要があるイベントが発生すると(ステップS401、肯定)、ステータス生成部120がステータスを生成し(ステップS402)、その要因を優先度判定部130に伝える。
すると、優先度判定部130がステータスの優先度を判定し(ステップS403)、優先度が高い場合には、出力許可部180が出力許可信号を生成し(ステップS404)、出力制御部190がメモリ20への書き込みをおこなう(ステップS405)。
一方、優先度が低い場合には、DeMUX140がステータスをステータスキュー150に格納し(ステップS406)、バスモニタ170によって判定されたPCIバス50の使用状況を参照して出力許可部180が、PCIバス50がビジーである間は(ステップS407、ビジー)、出力許可をおこなわない。
また、PCIバス50がアイドルである場合またはPCIバス50がアイドルになった場合(ステップS407、アイドル)、出力許可部180が出力許可信号を生成し(ステップS404)、ステータスキュー150に格納されたステータスをまとめて出力制御部190がメモリ20へ書き込む(ステップS405)。
このように、優先度判定部130がステータスの優先度を判定し、ステータスの優先度とPCIバス50の使用状況に基づいて出力許可部180が出力許可信号を生成することによって、不急なPCIバス50の使用を無くし、PCIバス50を効率良く使用することができる。
次に、本実施の形態に係るネットワークコントローラ100が優先度の高いステータスを通知する場合の動作について説明する。第5図は、本実施の形態に係るネットワークコントローラ100による高優先度ステータス通知動作を説明するための説明図である。
同図に示すように、たとえば、MAC200がフレームチェックエラーを検出し(▲1▼)、ステータス生成部120に通知すると(▲2▼)、ステータス生成部120はフレームチェックエラーのステータスを生成するとともにその要因を優先度判定部130に通知し、優先度判定部130が優先度テーブルを用いてフレームチェックエラーの優先度は高いと判定する(▲3▼)。
すると、DeMUX140がこの判定結果を受け(▲4▼)、ステータスをMUX160経由で出力制御部190に渡す(▲5▼)。一方、優先度判定部130の判定結果を受けて出力許可部180は、PCIバス50の使用状況にかかわらず出力許可信号を生成し出力制御部190に伝える(▲6▼)。そして、出力制御部190が、フレームチェックエラーのステータスをメモリ20へ書き込む。
このように、このネットワークコントローラ100は、フレームチェックエラーのような優先度の高いステータスについては、PCIバス50の使用状況にかかわらず直ちにメモリ20へ書き込む。
次に、本実施の形態に係るネットワークコントローラ100が優先度の低いステータスを通知する場合の動作について説明する。第6図は、本実施の形態に係るネットワークコントローラ100による低優先度ステータス通知動作を説明するための説明図である。
同図に示すように、たとえば、MAC制御部110がデータの受信を完了し(▲1▼)、ステータス生成部120に転送完了を通知すると(▲2▼)、ステータス生成部120は受信完了のステータスを生成するとともにその要因を優先度判定部130に通知し、優先度判定部130が優先度テーブルを用いて受信完了の優先度は低いと判定する(▲3▼)。
すると、DeMUX140がこの判定結果を受け(▲4▼)、ステータスをステータスキュー150に格納する。一方、優先度判定部130の判定結果を受けて出力許可部180は、バスモニタ170によるPCIバス50の使用状況判定結果(▲5▼)を参照し、PCIバス50が使用中でない場合には、出力許可信号を生成して出力制御部190に伝える(▲6▼)。そして、出力制御部190が、受信完了のステータスをメモリ20へ書き込む(▲7▼)。
これに対して、PCIバス50が使用中である場合には、出力許可部180は、PCIバス50が使用中でなくなるまで待ち、使用中でなくなると出力許可信号を生成して出力制御部190に伝える(▲6▼)。そして、出力制御部190が、受信完了のステータスをメモリ20へ書き込む(▲8▼)。
このように、このネットワークコントローラ100は、受信完了のような優先度の低いステータスについては、PCIバス50が使用されていない時を利用してメモリ20へ書き込む。
次に、従来のCPU10によるポーリング方式を用いた場合のPCIバス50の動作および本実施の形態に係るステータス通知方式を用いた場合のPCIバス50の動作について説明する。第7図は、デバイスA60からデバイスB70へのデータ転送中にネットワークコントローラ100にステータス通知要因が発生した場合のPCIバス50およびホストバス30のタイムチャートを示す図である。
同図に示すように、従来のCPU10によるポーリング方式では、デバイスA60からデバイスB70へのデータ転送中にCPU10によるポーリングが発生すると、その度にPCIバス50がCPU10に使用され、データ転送が中断される。そして、ネットワークコントローラ100に発生した3つの低優先度ステータス通知要因は、要因発生後のCPU10のポーリングによって検出される。
一方、本実施の形態に係るステータス通知方式では、デバイスA60からデバイスB70へのデータ転送中にネットワークコントローラ100に優先度の低いステータス通知要因が発生した場合には、発生したステータス通知要因をデータ転送が完了するまでステータスキュー150に格納し、データ転送が終了した時点で3つまとめてメモリ20に書き込む。このため、デバイスA60からデバイスB70へのデータ転送は中断されることなく早期に完了し、PCIバス50を効率良く使用することができる。
また、本実施の形態に係るステータス通知方式では、CPU10はメモリ20をポーリングしてネットワークコントローラ100のステータスを取得するため、ポーリングにはホストバス30のみを使用し、PCIバス50を使用する必要はない。
上述したように、本実施の形態では、優先度判定部130がネットワークコントローラ100に発生したステータスの優先度を判定し、ステータスの優先度が低い場合には、DeMUX140が優先度の低いステータスをステータスキュー150に格納し、バスモニタ170がPCIバス50の使用状況を判定し、出力許可部180がPCIバス50が使用されていない時にのみステータスキュー150に格納されたステータスのメモリ20への書き込みを許可することとしたので、不急なPCIバス50の使用を無くし、PCIバス50を効率良く使用することができる。
なお、本実施の形態では、PCIバスに接続されたネットワークコントローラのステータスを、ブリッジを介してPCIバスに接続されたホストバスに接続するCPUに通知する場合について説明したが、本発明はこれに限定されるものではなく、ネットワークコントローラ以外のデバイスやPCIバス以外のバスに接続されたデバイスのステータスを通知する場合にも同様に適用することができる。
以上説明したように、本発明によれば、デバイスのステータスの優先度を判定し、第2のバスの使用状況を判定し、優先度の判定結果および第2のバスの使用状況の判定結果に基づいてステータスを記憶装置に書き込むよう構成したので、不急な第2のバスの使用を無くし、もって第2のバスの使用効率を向上することができるという効果を奏する。
以上のように、本発明に係るステータス通知装置およびステータス通知方法は、バスに接続されたデバイスがブリッジおよび他のバスを介してCPUにデバイスステータスを通知する場合に適している。
Claims (6)
- 中央処理装置および記憶装置が接続された第1のバスにブリッジを介して接続された第2のバスに接続するデバイスのステータスを該中央処理装置に通知するステータス通知装置であって、
前記ステータスの優先度を判定する優先度判定手段と、
前記第2のバスの使用状況を判定するバス使用状況判定手段と、
前記優先度判定手段による優先度の判定結果および前記バス使用状況判定手段による第2のバスの使用状況の判定結果に基づいて前記ステータスを記憶装置に書き込むステータス書き込み手段と、
を備えたことを特徴とするステータス通知装置。 - 前記ステータス書き込み手段は、前記優先度判定手段がステータスの優先度が高いと判定した場合には、前記バス使用状況判定手段によるバス使用状況の判定結果にかかわらずステータスを記憶装置に書き込み、前記優先度判定手段がステータスの優先度が低いと判定した場合には、ステータスをキューに格納し、前記バス使用状況判定手段が第2のバスが使用されていないと判定するとキューに格納したステータスを記憶装置に書き込むことを特徴とする請求の範囲第1項に記載のステータス通知装置。
- 前記優先度判定手段は、前記ステータスと優先度とを対応付けて記憶した優先度テーブルを用いて優先度を判定することを特徴とする請求の範囲第1項または第2項に記載のステータス通知装置。
- 中央処理装置および記憶装置が接続された第1のバスにブリッジを介して接続された第2のバスに接続するデバイスのステータスを該中央処理装置に通知するステータス通知方法であって、
前記ステータスの優先度を判定する優先度判定工程と、
前記第2のバスの使用状況を判定するバス使用状況判定工程と、
前記優先度判定工程による優先度の判定結果および前記バス使用状況判定工程による第2のバスの使用状況の判定結果に基づいて前記ステータスを記憶装置に書き込むステータス書き込み工程と、
を含んだことを特徴とするステータス通知方法。 - 前記ステータス書き込み工程は、前記優先度判定工程がステータスの優先度が高いと判定した場合には、前記バス使用状況判定工程によるバス使用状況の判定結果にかかわらずステータスを記憶装置に書き込み、前記優先度判定工程がステータスの優先度が低いと判定した場合には、ステータスをキューに格納し、前記バス使用状況判定工程が第2のバスが使用されていないと判定するとキューに格納したステータスを記憶装置に書き込むことを特徴とする請求の範囲第4項に記載のステータス通知方法。
- 前記優先度判定工程は、前記ステータスと優先度とを対応付けて記憶した優先度テーブルを用いて優先度を判定することを特徴とする請求の範囲第4項または第5項に記載のステータス通知方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2003/008411 WO2005003981A1 (ja) | 2003-07-02 | 2003-07-02 | ステータス通知装置およびステータス通知方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPWO2005003981A1 true JPWO2005003981A1 (ja) | 2006-08-17 |
Family
ID=33562080
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005503379A Pending JPWO2005003981A1 (ja) | 2003-07-02 | 2003-07-02 | ステータス通知装置およびステータス通知方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7257662B2 (ja) |
JP (1) | JPWO2005003981A1 (ja) |
WO (1) | WO2005003981A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4535129B2 (ja) * | 2005-04-14 | 2010-09-01 | パナソニック株式会社 | サーバ装置、情報通知方法、および情報通知システム |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS57103530A (en) | 1980-12-19 | 1982-06-28 | Fujitsu Ltd | Channel controlling system |
JPS59122257A (ja) | 1982-12-28 | 1984-07-14 | Fujitsu Ltd | ポ−リング方式 |
JPS60169952A (ja) * | 1984-02-14 | 1985-09-03 | Nec Corp | デ−タ処理装置 |
US5369748A (en) * | 1991-08-23 | 1994-11-29 | Nexgen Microsystems | Bus arbitration in a dual-bus architecture where one bus has relatively high latency |
JP2979771B2 (ja) * | 1991-09-12 | 1999-11-15 | 株式会社日立製作所 | 情報処理装置及びそのバス制御方法 |
US5546548A (en) * | 1993-03-31 | 1996-08-13 | Intel Corporation | Arbiter and arbitration process for a dynamic and flexible prioritization |
JPH0713923A (ja) * | 1993-06-24 | 1995-01-17 | Ricoh Co Ltd | バス制御方法 |
US5619727A (en) * | 1995-03-08 | 1997-04-08 | United Microelectronics Corp. | Apparatus for a multiple channel direct memory access utilizing a virtual array technique |
US5528767A (en) * | 1995-03-21 | 1996-06-18 | United Microelectronics Corp. | Programmable multi-level bus arbitration apparatus in a data processing system |
US5758105A (en) * | 1995-12-04 | 1998-05-26 | International Business Machines Corporation | Method and apparatus for bus arbitration between isochronous and non-isochronous devices |
US5740381A (en) * | 1995-12-22 | 1998-04-14 | United Microelectronics Corporation | Expandable arbitration architecture for sharing system memory in a computer system |
JPH09204311A (ja) | 1996-01-29 | 1997-08-05 | Toshiba Corp | 情報処理システム |
US6172984B1 (en) * | 1997-06-19 | 2001-01-09 | Siemens Information And Communication Networks, Inc. | System and method for reducing the latency for time sensitive data over CSMA/CD networks |
GB2334116A (en) * | 1998-02-04 | 1999-08-11 | Ibm | Scheduling and dispatching queued client requests within a server computer |
JPH11312138A (ja) * | 1998-04-28 | 1999-11-09 | Nec Eng Ltd | 割込み制御システム及びその制御方法 |
JP2000047977A (ja) * | 1998-07-27 | 2000-02-18 | Hitachi Ltd | 双方向バス制御方式 |
US6363445B1 (en) * | 1998-10-15 | 2002-03-26 | Micron Technology, Inc. | Method of bus arbitration using requesting device bandwidth and priority ranking |
JP2001045095A (ja) | 1999-07-27 | 2001-02-16 | Alpine Electronics Inc | データ通信方式 |
US6718422B1 (en) * | 1999-07-29 | 2004-04-06 | International Business Machines Corporation | Enhanced bus arbiter utilizing variable priority and fairness |
US6463489B1 (en) * | 1999-08-26 | 2002-10-08 | Sony Corporation | System and method for effectively performing isochronous data transfers |
US6687821B1 (en) * | 2000-03-31 | 2004-02-03 | Intel Corporation | System for dynamically configuring system logic device coupled to the microprocessor to optimize application performance by reading from selection table located in non-volatile memory |
JP2002063130A (ja) * | 2000-08-23 | 2002-02-28 | Nec Corp | バス調停システム |
US7035277B1 (en) * | 2000-08-31 | 2006-04-25 | Cisco Technology, Inc. | Priority-based arbitration system for context switching applications |
US7058741B2 (en) * | 2001-08-02 | 2006-06-06 | Matsushita Electric Industrial Co., Ltd. | System for suspending processing by a first electronic device on a data line to allow a second electronic device to use the data line, with subsequent resumption of the processing of the first electronic device |
US6976109B2 (en) * | 2003-04-16 | 2005-12-13 | Neomagic Israel Ltd. | Multi-level and multi-resolution bus arbitration |
-
2003
- 2003-07-02 WO PCT/JP2003/008411 patent/WO2005003981A1/ja active Application Filing
- 2003-07-02 JP JP2005503379A patent/JPWO2005003981A1/ja active Pending
-
2006
- 2006-01-03 US US11/322,360 patent/US7257662B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US7257662B2 (en) | 2007-08-14 |
US20060161708A1 (en) | 2006-07-20 |
WO2005003981A1 (ja) | 2005-01-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2008090375A (ja) | 割込み制御システム、およびこれを利用した記憶制御システム | |
US7805556B2 (en) | Interrupt control apparatus, bus bridge, bus switch, image processing apparatus, and interrupt control method | |
US20130019032A1 (en) | Apparatus and method for generating interrupt signal that supports multi-processor | |
JP4034572B2 (ja) | 遠隔割り込み信号の処理方法、システムおよびネットワークインターフェースシステム | |
JPWO2005003981A1 (ja) | ステータス通知装置およびステータス通知方法 | |
JP2004078683A (ja) | コンピュータシステムおよび共有メモリ制御方法 | |
CN106776393B (zh) | 一种无中断的串口数据接收方法和装置 | |
JP5076967B2 (ja) | 情報処理システム、情報処理システムの制御方法、および情報処理システムの制御プログラム | |
JP2009043089A (ja) | バス制御装置及びバス制御方法 | |
JP2015170070A (ja) | スイッチ装置、情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラム | |
US20200382655A1 (en) | Image forming apparatus equipped with sata system, control method therefor, and storage medium | |
US9977739B2 (en) | Image processing apparatus, control method for image processing apparatus, and storage medium | |
JPH09204311A (ja) | 情報処理システム | |
KR20070080307A (ko) | Cpu의 성능 향상을 위한 버스 구조를 갖는 시스템과성능 향상방법 | |
JPH1097489A (ja) | 磁気ディスク装置のブロック長変換方法及びブロック長変換装置 | |
CN114040023B (zh) | 一种高速总线报文出错处理方法、控制器及存储介质 | |
JPH0683715A (ja) | メモリデータコピー方式 | |
JP2006277363A (ja) | 情報転送方式,画像形成装置 | |
JP2008299632A (ja) | 半導体集積回路、半導体集積回路を備えた画像処理装置、及び半導体集積回路の通信制御方法 | |
JP5756738B2 (ja) | 通信システム、通信装置及び通信方法 | |
JP2760322B2 (ja) | パリティエラー障害エージェントの特定方式 | |
JP4969054B2 (ja) | 情報処理装置 | |
JP2005115658A (ja) | 情報処理装置 | |
JPH06195272A (ja) | バス調停回路 | |
US20100115357A1 (en) | Novel Architecture for a Message Bus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090106 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090302 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090331 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090804 |