JP5200646B2 - 割込制御装置および画像処理装置 - Google Patents

割込制御装置および画像処理装置 Download PDF

Info

Publication number
JP5200646B2
JP5200646B2 JP2008113974A JP2008113974A JP5200646B2 JP 5200646 B2 JP5200646 B2 JP 5200646B2 JP 2008113974 A JP2008113974 A JP 2008113974A JP 2008113974 A JP2008113974 A JP 2008113974A JP 5200646 B2 JP5200646 B2 JP 5200646B2
Authority
JP
Japan
Prior art keywords
interrupt
msi
factor
group
factors
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
JP2008113974A
Other languages
English (en)
Other versions
JP2009169928A (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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2008113974A priority Critical patent/JP5200646B2/ja
Priority to US12/111,521 priority patent/US7805556B2/en
Publication of JP2009169928A publication Critical patent/JP2009169928A/ja
Application granted granted Critical
Publication of JP5200646B2 publication Critical patent/JP5200646B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Bus Control (AREA)

Description

この発明は、PCI−Express(以下、「PCIe」という)など、割込通知がパケット転送またはエッジ割り込みによっておこなわれるシステムにおける割込制御装置、バスブリッジ、バススイッチ、画像処理装置、および割込制御方法に関する。
従来、複数のPCIバスを持つデバイスにおいて、割込入力線を共用することによって端子数を削減する技術が提案されている(たとえば、下記特許文献1参照)。また、割込制御ユニットが、割り込みを上位のデバイスに伝達する際に選択し、リセット中の入出力割込パケットを無効として破棄する技術が提案されている(たとえば、下記特許文献2参照)。
ここで、PCIeバスの割込制御方法について説明する。PCIeバスは、専用の割込信号を持たず、割り込みをパケットによって要求する。割込用のパケットは、MSI(Message Signaled Interrupt)パケットと呼ばれ、MSIパケットに埋め込むメッセージナンバーにより、割り込みの要因を最大32種類に区別して通知することができる。
MSIパケットに埋め込むことのできるメッセージナンバーの数(MSIメッセージ数)は、システム起動時にPCIeコンフィギュレーションサイクルによって設定される。PCIe規格では、MSIメッセージ数は32,16,8,4,2,1の6通りあり、どれを選択するかはシステムで決定する。たとえば、MSIメッセージ数=32が選択された場合、MSIメッセージ数=32でMSIパケットを送出可能なデバイスは、独立した32通り(0〜31)のメッセージナンバーを埋め込んだMSIパケットを送出できる。
また、MSIメッセージ数=16が選択された場合、MSIメッセージ数=32でMSIパケットを送出可能なデバイスは、2つの要因に同一のメッセージナンバーを割り当ててMSIパケットとして送出する。また、MSIメッセージ数=8が選択された場合、MSIメッセージ数=32でMSIパケットを送出可能なデバイスは、4つの要因に同一のメッセージナンバーを割り当ててMSIパケットとして送出する。
また、MSIメッセージ数=4が選択された場合、MSIメッセージ数=32でMSIパケットを送出可能なデバイスは、8つの要因に同一のメッセージナンバーを割り当ててMSIパケットとして送出する。また、MSIメッセージ数=2が選択された場合、MSIメッセージ数=32でMSIパケットを送出可能なデバイスは、16の要因に同一のメッセージナンバーを割り当ててMSIパケットとして送出する。また、MSIメッセージ数=1が選択された場合、MSIメッセージ数=32でMSIパケットを送出可能なデバイスは、すべて(32種類)の要因に同一のメッセージナンバー(たとえば、メッセージナンバー0)を割り当ててMSIパケットを送出する。
特開2005−092770号公報 特開平10−149293号公報
しかしながら、上述した従来技術にかかるPCIeバスの割込制御方法では、MSIメッセージ数=16,8,4,2,1が選択された場合、複数の割込要因に同一のメッセージナンバーが割り当てられることとなる。同一のメッセージナンバーが埋め込まれたMSIパケットが何回も発行されると、PCIeバスのトラフィックが増大し、デバイスのパフォーマンスが低下してしまう可能性があるという問題点がある。
この発明は、上述した従来技術による問題点を解消するため、冗長な割込処理(MSIパケットの送出)を抑制することができる割込制御装置および画像処理装置を提供することを目的とする。
上述した課題を解決し、目的を達成するため、請求項1の発明にかかる割込制御装置は、所定の割込要因に起因する割込要求を制御する制御手段を備える割込制御装置であって、前記制御手段は、少なくとも2つ以上の割込要因を複数のグループに分類し、ある割込要因がアサートされたときに、当該割込要因が属するグループに対応する割込要求を、前記割込制御装置に接続された割込処理手段に発行し、前記割込要因が属するグループに含まれる当該割込要因よりも優先順位の低い割込要因を全てマスクし、前記割込要求に基づき前記割込処理手段により割込処理が行われて前記割込要因がクリアされた後に、前記マスクを解除し、前記マスクが解除された割込要因を含む前記グループに属する全ての割込要因がネゲートされているか否かを判断し、当該グループに属する全ての割込要因がネゲートされている場合に処理を終了する一方、当該グループに属するいずれかの割込要因がアサートされている場合に当該グループに対応する割込要求を前記割込処理手段に発行し、前記制御手段は、ある割込要因に起因する割込要求に係る割込処理中に、当該割込要因が属するグループと同じグループに属し、当該割込要因よりも優先度の高い割込要因がアサートされた場合に、当該グループに対応する割込要求を再度発行することを特徴とする。
この請求項1の発明によれば、冗長な割込処理の実行を抑制し、デバイスのパフォーマンスを向上させることができる。
また、請求項2の発明にかかる割込制御装置は、請求項1に記載の発明において、前記制御手段は、複数の割込要因が同時にアサートされた場合に、割込要因が属するグループの優先順位又は割込要因の優先順位に従った順番で割込要求を発行することを特徴とする。
また、請求項の発明にかかる割込制御装置は、請求項1又は2に記載の発明において、前記制御手段は、各記憶領域に割込要因が割り当てられた記憶手段を備え、当該記憶手段を参照することにより、割込要因がアサートされているか否かを判断することを特徴とする。
また、請求項の発明にかかる割り込み制御装置は、請求項1〜のいずれか一つに記載の発明において、前記割込処理はPCI−Express規格のバス同士、PCI規格のバス同士またはPCI−Express規格のバスとPCI規格のバスとで接続されたデバイス間における割込処理であり、前記複数のグループの各々はMSIメッセージナンバーにより識別され、前記割込要求はMSIパケットの発行によって行われることを特徴とする。
この請求項の発明によれば、PCI−Express規格のバス同士、PCI規格のバス同士、またはPCI−Express規格のバスとPCI規格のバスとで接続されたデバイス間において、冗長な割込処理の実行を抑制し、デバイスのパフォーマンスを向上させることができる。
また、請求項にかかる発明は、請求項1〜のいずれか一つに記載の割り込み制御装置と、画像処理手段とを備えたことを特徴とする画像処理装置である。
本発明にかかる割込制御装置および画像処理装置によれば、冗長な割込処理(MSIパケットの送出)を抑制し、デバイスのパフォーマンスが低下するのを防止することができるという効果を奏する。
以下に添付図面を参照して、この発明にかかる割込制御装置、バスブリッジ、バススイッチ、画像処理装置および割込制御方法の好適な実施の形態を詳細に説明する。なお、以下の説明では、割込パケットの種類をMSIパケットに限定して説明するが、割り込みをパケット(広義にはエッジ割り込みも含む)で伝達するシステムであれば、本発明を適用することができる。
(実施の形態)
はじめに、実施の形態にかかるブリッジチップが搭載されたシステムの構成例について説明する。図1は、実施の形態にかかるブリッジチップが搭載されたシステム構成の一例を示すブロック図である。システム100は、ブリッジチップ101、デバイス102、MCH(Memory Controller Hub)103、CPU104、ICH(I/O Controller Hub)105、システムメモリ106によって構成される。
ブリッジチップ101は、たとえば、各種機能(圧縮伸長器、編集器、回転器など)を内蔵するプリンタコントローラである。デバイス102は、たとえばプリンタ用エンジンあり、ブリッジチップ101のPCIe下位デバイスである。また、MCH103は、x86システムのノースブリッジチップであり、ブリッジチップ101のPCIe上位デバイスである。また、ICH105は、x86システムのサウスブリッジチップである。
デバイス102とブリッジチップ101、MCH103とブリッジチップ101とは、それぞれPCIeバス110a,110bによって接続されている。以下、デバイス102とブリッジチップ101とをつなぐPCIeバス110を、デバイスI/F110aという。また、MCH103とブリッジチップ101とをつなぐPCIeバス110を、MCHI/F110bという。
次に、実施の形態にかかるバスブリッジが搭載されたシステムの他の例としての画像処理装置150の構成例を図2を参照して説明する。
図2に示すように、この画像処理装置150は、バスブリッジ151、画像処理部152、MCH(Memory Controller Hub)153、CPU154、ICH(I/O Controller Hub)155、システムメモリ156、プロッタ157、スキャナ158、HDD(Hard Disk Drive)159、NIC(Network Interface Card)160を有する。図2に示す例では、画像処理装置150は、LAN170に接続されている。また、LAN170にはホストPC171、ホストPC172が接続されている。
バスブリッジ151は、図1に示す構成におけるブリッジチップ101と同様の装置であり、本発明に係る割込み制御部(INTC)に加えて、圧縮伸長モジュール、HDD I/Fモジュール、画像処理部152とのI/FとMCHとのI/Fとを仲介するブリッジ機能等を有する装置である。
例えば、バスブリッジ151は、画像処理部152からスキャナデータを入力し、当該スキャナデータをMCH153を介してシステムメモリ156へ転送したり、MCH153を介してシステムメモリ156から読み出したプロッタデータを画像処理部152に転送する。
画像処理部152は、スキャンデータの画像処理、及びプロッタデータの画像処理を行うとともに、各種データをバスブリッジ151に転送する。HDD159は画像データを蓄積する。プロッタ157は画像データを印刷するための装置であり、スキャナ158は画像を読み取り、画像データを生成する装置である。NIC160は、LAN170と画像処理装置150とのインタフェース機能を有する装置である。CPU154、MCH153、ICH155、システムメモリ156は、それぞれ図1に示すCPU104、MCH103、ICH105、システムメモリ106に対応する装置である。
画像処理装置150の動作を次に説明する。
まず、ホストPC(171または172)からPDL(Page Description Language)データが画像処理装置150に入力される。当該PDLデータは、NIC160、ICH155、MCH153を経由してシステムメモリ156に転送される。そして、CPU154がPDLデータを画像データに展開し、再びシステムメモリ156に格納する。
システムメモリ156が全部の画像データを格納できない場合、もしくは、画像データを蓄積し再利用する場合には、画像データはMCH153及びバスブリッジ151を介してHDD159に転送される。ここでは、バスブリッジ151により画像データが圧縮され、圧縮された画像データがHDD159に蓄積される。
HDD159に蓄積された画像データは、バスブリッジ151により伸長され、システムメモリ156へ転送される。そして、バスブリッジ151は、システムメモリ156から画像データを読み出し、それを画像処理部152に転送する。画像処理部152は、プロッタ157に画像データを送り、プロッタが紙に画像を印刷する。
これら一連の処理の中で、バスブリッジ151は、圧縮モジュール、伸長モジュール、画像処理部152等の割り込みを束ね、MCH153を介してCPU154へ割り込みを通知する。例えば、バスブリッジ151が、圧縮/伸長が終了したことをCPU154に割り込みで通知することにより、CPU154は、次の画像データの圧縮/伸長指示を行うことができる。更に、バスブリッジ151と画像処理部152との間のデータ転送も、バスブリッジ151からの割り込みでタイミングを調整することができる。
以下、図1の構成に基づいて本実施の形態に係る割込制御に係る構成、及び処理内容を詳細に説明するが、下記で説明する構成及び処理内容は、図2で説明した構成にも同様に適用されるものである。
つぎに、ブリッジチップ101およびその周辺部の詳細な構成について説明する。図3は、ブリッジチップおよびその周辺部の構成を示すブロック図である。ブリッジチップ101は、ROOT211、INTC212、ENDP213、機能モジュール214によって構成される。
ROOT211は、下位デバイスとのインターフェースを司るルートコンプレックス(RootCopmplex)機能モジュールである。INTC212は、割込コントローラであり、機能モジュール214、およびROOT211からの割込要因を束ねて、ENDP213へMSIパケットの発行要求をおこなう。ENDP213は、上位デバイスとのI/Fを司るエンドポイント(Endpoint)機能モジュールである。機能モジュール214は、ROOT211以外の割込要因となるモジュール群であり、たとえば、CEP、EDIT、ROTなどである。
ENDP213にはPCIe I/F221が設けられており、MCH I/F110bを介してMCH103と接続されている。また、デバイス102にもPCIe I/F222が設けられており、デバイスI/F110aを介してROOT211と接続されている。
デバイスI/F110aは、デバイス102からブリッジチップ101に送信される割込要求の送信方式として、MSIとITNx message(以下、「ITNx」という)の両方をサポートする。割込要求の送出方法には、MSIとITNxとがあり、どちらの方式とするかは、システム起動時にデバイス102のPCIeコンフィギュレーションによって設定する。また、MSIメッセージ数についても、システム起動時にデバイス102のPCIeコンフィギュレーションによって設定する。MSIメッセージ数は、1,2,4,8,16,32の6通りから選択される。
また、MCH I/F110bについても、ブリッジチップ101からMCH103に送信される割込要求の送信方式として、MSIとITNxの両方をサポートする。どちらの送信方式とするかは、システム起動時にENDP213のPCIeコンフィギュレーションにより設定する。また、MSIメッセージ数についてもシステム起動時にデバイス102のPCIeコンフィギュレーションによって設定する。MSIメッセージ数は、1,2,4,8,16,32の6通りから選択される。
つづいて、ブリッジチップ101内の割込コントローラであるINTC212の構成について説明する。図4は、INTCの構成を示すブロック図である。図4では、割込要因が32種類の場合について例示している。レジスタI/F301は、INTC212の各モジュール内のレジスタへのアクセスを仲介する。ペンディングレジスタ(IRC_PEND)302は、INTC212へ入力される各割込要因(int[31:0])の状態を表示するためのレジスタ群である。マスクレジスタ(IRC_MSK)303は、各割込要因(int[31:0])の割り込みをマスクするためのレジスタ群である。
ステータスレジスタ(IRC_STAT)304は、マスクレジスタ303によってマスクされた後の割込要因の状態を表示するためのレジスタ群である。図5にステータスレジスタ304の構成例を示す。図5は、ステータスレジスタの構成例を示す説明図である。ステータスレジスタ304は、32ビット幅であり、それぞれのビットに割込要因(図5中、A,Bなど)が割り当てられている。なお、要因が割り当てられていないビットがあってもよい。
図4の説明に戻り、MSI要求部(MSI_REQ)305は、ENDP213に設けられたMCH103側のPCIe I/F221(図3参照)へMSIパケットの発行要求をおこなうモジュールである。MSI要求部305には、PCIe I/F221から許容されるメッセージナンバーの数(MSIメッセージ数)が入力される。MSI要求部305は、MCH I/F110bにMSIの発行要求をおこなう。
(INTC212周辺における割込信号の流れ)
つぎに、INTC212の周辺における割込信号の流れについて説明する。なお、以下の説明では、ブリッジチップ101とMCH103との間の処理(MCH I/F110b間の処理)に着目して説明を進めるが、ブリッジチップ101とデバイス102との間の処理(デバイスI/F110a間の処理)についても同様に適用することができる。
図6は、INTC周辺における割込信号の流れを説明するための説明図である。図6において、信号は左から右へと流れるものとする。また、図6は、MSIメッセージ数=8の場合について図示している。図6では、マスクレジスタ303は図示されていないが、ペンディングレジスタ302とステータスレジスタとの間にマスクゲートの一部が図示されている。まず、レジスタI/F301(図4参照)を介してROOT211または機能モジュール214から信号が入力される。Hイネーブルの場合、割り込みが発生すると、ペンディングレジスタ302の対応するビットがHとなる。
マスクレジスタ303(図4参照)の対応するビットに1が書き込まれている場合、ペンディングレジスタ302のHがステータスレジスタ304に伝わるのが、マスクゲートによって阻止される(割込マスク)。一方、マスクレジスタ303の対応するビットに0が書き込まれている場合、マスクゲートを通ってペンディングレジスタ302のHがステータスレジスタ304に伝わる(割込非マスク)。ステータスレジスタ304の状態は、MSI要求部305に伝わる。
MSI要求部305は、ステータスレジスタ304の状態と、ENDP213のPCIe I/F221から入力されるMSIメッセージ数にしたがって、ENDP213のPCIe I/F221に対してMSIパケットの発行を要求する。MSIメッセージ数は5ビットの信号であり、マルチプル・メッセージ・イネーブル(Multiple Message Enable:詳細はPCI Local Bus Specification参照)の結果をINTC212に伝達する。
MSI要求部305は、たとえば、MSIメッセージ数=32の場合、ステータスレジスタ304の各ビットから出力された信号(図6中A)が"H"の時、対応するビット番号のメッセージナンバーが埋め込まれたMSIパケットの発行をENDP213に要求する。また、図6に示すように、MSIメッセージ数=8の場合、MSI要求部305は、ステータスレジスタ304の各ビットから出力された信号(図6中A)を8つのグループとみなし、8種類のメッセージナンバーのいずれかが埋め込まれたMSIパケットの発行をENDP213に要求する。
この場合、MSI要求部305は、たとえば、各信号を以下のようにグルーピングする。{bit31、bit23、bit15、bit7}:MSIメッセージナンバー7のグループ、{bit30、bit22、bit14、bit6}:MSIメッセージナンバー6のグループ、{bit29、bit21、bit13、bit5}:MSIメッセージナンバー5のグループ、{bit28、bit20、bit12、bit4}:MSIメッセージナンバー4のグループ、{bit27、bit19、bit11、bit3}:MSIメッセージナンバー3のグループ、{bit26、bit18、bit10、bit2}:MSIメッセージナンバー2のグループ、{bit25、bit17、bit9、 bit1}:MSIメッセージナンバー1のグループ、{bit24、bit16、bit8、 bit0}:MSIメッセージナンバー0のグループ。MSIメッセージ数が16、4、2、1の場合も同様にグルーピングする。
図7は、MSIパケットの発行要求時のタイミングチャートである。図7のタイミングチャートにおいて、タイミングチャートAはステータスレジスタ304からの出力(図6中A)、タイミングチャートBはMSI要求部305からの出力をそれぞれ示す(図6中B)。上述したように、ステータスレジスタ304からの出力のうち{bit24、bit16、bit8、bit0}の信号がMSIメッセージナンバー0を共用する。以下、bitx(xは0から32までの数)からの割込要求をInterruptxと表記する。
図7のタイミングチャートAに示すように、まず、Interrupt0がCLK4でアサートされる。つづいて、CLK6でInterrupt8がアサート、CLK7でInterrupt16がアサートされる。Interrupt0がCLK4でアサートされると、タイミングチャートBに示すように、MSI要求部305はENDP213に対してメッセージナンバー0を埋め込んだMSIパケットの発行を要求する。MSI要求部305は、Interrupt0がネゲートする前に同じグループの他のInterrupt(Interrupt8、Interrupt16など)がアサートされても、MSIパケットの発行要求をおこなわない(タイミングチャートB参照)。
つぎに、図7のタイミングチャートAにおいて、CLK11でInterrupt0とInterrupt16が同時にネゲートしている。このときInterrupt8はアサートされたままであるため、MSI要求部305は、所定の時間の後に、MSIパケットの発行要求を再度おこなう(タイミングチャートB参照)。つまり、同一グループ内のいずれかのInterruptがネゲートされたタイミングで、同一グループ中のいずれかのInterruptがアサートされている場合、MSI要求部305は再度MSIパケットの発行を要求する。
上記のように、MSI要求部305は、Interrupt0が無効となるまで(つまり、Interrupt0がクリアされるまで)、当該Interrupt0の割込要因と同じグループの割込要因(Interrupt8)に起因する割込処理を実行しないよう制御を行う。この処理において、Interrupt0の"H"(ステータスレジスタの値)がクリアされる場合としては、割込要因自体がクリアされる場合の他、Interrupt0に対応するペンディングレジスタの値が、マスクレジスタの値によりマスクされる場合も含まれる(割り込みのマスクは、割込要因のネゲートと等価である)。
つまり、MSI要求部305は、Interrupt0の値がマスクされるまで、当該Interrupt0の割込要因と同じグループの割込要因(Interrupt8)に起因する割込処理を実行しないよう制御を行うこともできる。
上記のような構成とすることにより、冗長なMSIパケットの発行を抑制し、PCIeバスの処理効率を向上させることができる。
しかし、上記の制御方法を用いても、以下のような不都合を生じる場合がある。
第1に、複数の要因がアサートされている場合において、割込処理の中で複数の要因を一斉にクリアしたい場合、要因をクリアするタイミングが少しでもずれると、1つの要因がネゲートされたタイミングでMSIパケットが再発行されてしまう。例えば、Interrupt0、8、16が同時にアサートされた場合において、上記のようにInterrupt0に基づく割込処理(MSI発行)を行った後に、Interrupt0、8、16を一斉にクリアする必要が生じたと想定する。この場合、例えばInterrupt8だけクリアのタイミングがずれてしまうと、メッセージナンバー0を埋め込んだMSIパケットの発行の要求が再度行われてしまう。
第2に、割込処理の中で、ある要因をクリアした直後に同じ要因がアサートされる場合、割込信号が一旦ネゲートされずに必要なMSIが発行されない可能性がある。例えば、図7の例において、Interrupt0がクリアされた直後にInterrupt0がアサートされた場合、MSI要求部305は、MSIパケット送出に係る要因であるInterrupt0がクリア(ネゲート)されたことを認識せずに、Interrupt8に対するMSI発行の抑止を継続してしまう可能性がある。この場合、Interrupt8に対するMSI発行が行われない可能性がある。
そこで、INCT212は、最初に割込処理対象とした要因と同じグループに属する他の要因を全てマスクした後の割込要求をMSI要求部305に入力する構成を採ることとしている。そして、マスクをせずに処理対象となった要因がクリアされた後にマスクを解除する。
上記の第1の問題に関し、上記のように複数の要因を一斉にクリアしたい場合には、それをマスクをしている中で行えばよい。これにより、要因のクリアのタイミングがずれたとしても、マスクされているので余計なMSI発行がなされることはなくなる。したがって、無駄なMSIパケットの発行を抑制することができる。
また、第2の問題に関しては、マスクを解除した後に、アサートされている要因に基づいてMSIパケット発行処理を行えばよい。これにより、必要なMSIパケットの発行漏れを防止することができる。マスクを解除した後に、複数の要因(例えばInterrupt0とInterrupt8)がアサートされている場合には、より割込処理の必要性の高い要因に対するMSI発行を行えばよい。例えば、後述するように、要因間に優先順位を設けておき、優先順位の高い要因に対するMSI発行を優先的に行う。
なお、このマスクに関わる処理については後に図9〜11を参照してより詳細に説明する。
(ブリッジチップ101の初期化処理手順)
つぎに、ブリッジチップ101の初期化処理手順について説明する。図8は、ブリッジチップの初期化処理手順を示すシーケンス図である。なお、図8のシーケンス図では、MCH103がレジスタにアクセスするかのように記載されているが、MCH103はCPU104内蔵のチップのこともあれば、MCH103のさらに上位にCPU104が接続される場合もある。
まず、MCH103によってENDP213のコンフィギュレーションを実施する(ステップS701)。ENDP213のコンフィギュレーションとは、たとえばMSI関連(特にメッセージナンバー数)の設定などである。つぎに、MCH103からブリッジチップ101へのレジスタアクセスによって、ROOT211のコンフィギュレーションを実行する(ステップS702)。ROOT211のコンフィギュレーションとは、たとえばPCIeとしてのベースアドレスの設定などである。
つづいて、MCH103によってROOT211の内部レジスタを初期設定する(ステップS703)。ROOT211の内部レジスタ設定とは、たとえばデバイス102からMSIパケットを受信するための設定などである。そして、MCH103によってデバイス102のコンフィギュレーションを実施する(ステップS704)。デバイス102のコンフィギュレーションとは、たとえばPCIeとしてのベースアドレスの設定などである。以上のような手順によって、ブリッジチップ101が初期化される。
(ブリッジチップ101の割込制御処理手順)
つづいて、ブリッジチップ101による割込制御処理手順について説明する。ここでは、機能モジュール214からの割込要求が発生した場合の割込制御処理手順と、デバイス102からの割込要求が発生した場合の割込処理制御手順とをそれぞれ説明する。図9は、機能モジュールからの割り込みが発生した場合の割込制御処理手順を示すシーケンス図である。ここでは、図8に示したブリッジチップ101の初期化処理において、ENDP213のコンフィギュレーションにより、MSIメッセージ数が8に設定されたものとして説明する。
まず、機能モジュール214の一例であるCEPが割込要求をINTC212にアサートする(ステップS801)。CEPからの割込要求を受けたINTC212は、MSIメッセージ数とメッセージナンバーとの対応表を参照して、CEP214に対応するメッセージナンバーを検索する。
図10は、MSI要因名とメッセージナンバーとの対応を示す図表である。図10の表中の値はメッセージナンバーである。図10に示す例では、MSIメッセージ数8の場合、CEP214(図10では要因名Zとする)にはメッセージナンバー3が割り当てられている。よって、INTC212は、ENDP213にメッセージナンバー3のMSIパケットの発行を要求する(ステップS802)。
INTC212からのMSI要求を受け、ENDP213は、PCIeバス上にMSIパケットを発行する(ステップS803)。このMSIパケットをMCH103が受信することにより、割り込みが受け付けられる。MSIパケットを受信したMCH103は、INTC212のステータスレジスタ304をリードし(ステップS804)、割込要因がCEPと特定する。つづいて、MCH103は、CEPのステータスレジスタをリードし(ステップS805)、割込要因の詳細(たとえば、割り込みの発生原因など)を特定する。割り込みの発生原因には、たとえば転送終了やエラーの発生などが挙げられる。
そして、MCH103は、CEPと同じメッセージナンバーにグルーピングされたCEP以外の要因をすべてマスクする(ステップS806)。たとえば、MSIメッセージ数が8の場合、同一のメッセージナンバーの要因は4つある。図10の表では、要因Z(=CEP)はステータスレジスタ304のbit27、メッセージナンバー3なので、MCH103は同じメッセージナンバー3にグルーピングされている要因(bit19、bit11、bit3)をすべてマスクする。
つづいて、MCH103は、CEPの割込処理をおこなうとともに、CEPの割込要因をクリアする(ステップS807)。そして、MCH103は、ステップS806でマスクしたbit19、bit11、bit3のマスクをすべて解除する(ステップS808)。つぎに、INTC212は、ステータスレジスタ304を参照し、メッセージナンバー3にグルーピングされている要因(bit27、bit19、bit11、bit3)がすべてネゲートされているか否かを判断する。
メッセージナンバー3にグルーピングされている要因がすべてネゲートされている場合(図9中C)、MSIパケットの発行要求をおこなわず、処理を終了する。一方、メッセージナンバー3にグルーピングされている要因のいずれかがアサートされている場合(図9中D)、INTC212は、メッセージナンバー3のMSIパケットの発行を再要求する(ステップS809)。INTC212からのMSI要求を受け、ENDP213は、PCIeバス上にMSIパケットを発行する(ステップS810)。この後は、ステップS804以降の処理を繰り返す。以上のような処理によって、ブリッジチップ101は機能モジュール214からの割り込みを制御する。
このように、MCH103は割込処理開始時、同一のメッセージナンバーの割り込みを同時にマスクする。そして、割込要因がネゲートされた後、全てのマスクを解除する。そのときに、同一メッセージナンバーの他の要因がアサートされている場合にはMSIパケットの発行が自動的に再要求される。
つぎに、デバイス102からの割込要求に対する制御処理について説明する。図11は、デバイスからの割り込みが発生した場合の割込制御処理手順を示すシーケンス図である。まず、デバイス102からMSIパケットが発行され、ROOT211がINTC212に割込要求(ROOT_MSI)をアサートする(ステップS1001)。デバイスからの割込要求を受けたINTC212は、MSIメッセージ数とメッセージナンバーとの対応表を参照して、ROOT_MSI(図10では要因Tとする)に対応するメッセージナンバーを検索する。前述の図10に示す例では、MSIメッセージ数8の場合、要因Tはメッセージナンバー4が割り当てられている。よって、INTC212は、ENDP213にメッセージナンバー4のMSIパケットの発行を要求する(ステップS1002)。
INTC212からのMSI要求を受け、ENDP213は、PCIeバス上にMSIパケットを発行する(ステップS1003)。このMSIパケットをMCH103が受信することにより、割り込みが受け付けられる。MSIパケットを受信したMCH103は、INTC212のステータスレジスタ304をリードし(ステップS1004)、割込要因がROOT211の下位モジュール(デバイス102)であると特定する。つづいて、MCH103は、デバイス102のステータスレジスタおよびROOT211のステータスレジスタをリードし(ステップS1005,S1006)、割込要因の詳細を特定する。
そして、MCH103は、ROOT_MSIと同じメッセージナンバーにグルーピングされた要因をすべてマスクする(ステップS1007)。たとえば、MSIメッセージ数が8の場合、同一のメッセージナンバーの要因は4つある。図10の表では、要因T(=ROOT_MSI)はステータスレジスタ304のbit20、メッセージナンバー4なので、MCH103は同じメッセージナンバー4にグルーピングされている他の要因(bit28、bit12、bit4)をマスクする。つぎに、MCH103は、ROOT211のROOT_MSI要因をクリアする(ステップS1008)。つづいて、ROOT211は、INTC212に割込要求(ROOT_MSI)をネゲートする(ステップS1009)。
つづいて、MCH103は、デバイス102の割込処理をおこなうとともに、デバイス102の割込要因をクリアする(ステップS1010)。そして、MCH103は、ステップS1006でマスクしたbit28、bit12、bit4のマスクをすべて解除する(ステップS1011)。つぎに、INTC212は、ステータスレジスタ304を参照し、メッセージナンバー4にグルーピングされている要因(bit28、bit20、bit12、bit4)がすべてネゲートされているか否かを判断する。
メッセージナンバー4にグルーピングされている要因がすべてネゲートされている場合(図11中E)、MSIパケットの発行要求をおこなわず、処理を終了する。一方、メッセージナンバー4にグルーピングされている要因のいずれかがアサートされている場合(図11中F)、INTC212は、メッセージナンバー4のMSIパケットの発行を再要求する(ステップS1012)。INTC212からのMSI要求を受け、ENDP213は、PCIeバス上にMSIパケットを発行する(ステップS1013)。この後は、ステップS1004以降の処理を繰り返す。以上のような処理によって、ブリッジチップ101はデバイス102からの割り込みを制御する。
このように、MCH103は、ある要因による割込要求があった場合、その要因と同じメッセージナンバーにグルーピングされているすべての要因をマスクする。たとえば、同じメッセージナンバーにグルーピングされている要因のうち、1つの要因のみマスクした後、割込処理をおこなう制御では、マスクした時点で同一グループの要因がアサートされている場合に再度MSIパケットの発行を要求してしまう。また、同時に複数の要因をクリアする割込処理をおこなう場合、要因をクリアするタイミングが少しでもずれると、マスクしていない方の要因について、MSIパケットの再発行が要求されてしまう。本実施の形態のように、同じメッセージナンバーにグルーピングされているすべての要因をマスクすれば、冗長なMSIパケットの発行を抑制し、PCIeバスの処理効率を向上させることができる。
なお、INCT212は、複数の割込要求が同時に検出された場合、あらかじめ定められた優先順位にしたがった順番でMSIパケットの発行を要求することとしてもよい。この場合、優先順位は、たとえば、割込要求のメッセージナンバーやステータスレジスタ304のビット番号によって定めることができる。優先順位の設定に、メッセージナンバーまたはステータスレジスタ304のビット番号のいずれを用いるかは、たとえば、メッセージナンバーのグルーピングの方法によって判断する。
割込要求に優先順位を設けた場合、INCT212は、受け付けた割込要求のうち最も優先順位が高い割込要求を実行する。このとき、INCT212は、実行している割込要因と同じメッセージナンバーが割り当てられた割込要因のうち、実行している割込要因よりも優先順位の低い割込要因からの割込要求をマスクする。
メッセージナンバーによって優先順位を定める場合、たとえば、メッセージナンバー7の優先順位を最も高く、メッセージナンバー0の優先順位を最も低く設定する。この場合、すべての要因がネゲートされている状態から、Interrupt12(メッセージナンバー4)とInterrupt24(メッセージナンバー0)がMSI要求部305で同時に検出されると、MSI要求部305は、まずメッセージナンバー4のMSIパケットをENDP213に要求し、つづいてメッセージナンバー0のMSIパケットをENDP213に要求する。
また、ステータスレジスタ304のビット番号によって優先順位を定める場合、たとえば、ビット番号31の優先順位を最も高く、ビット番号0の優先順位を最も低く設定する。この場合、すべての要因がネゲートされている状態から、Interrupt12(メッセージナンバー4)とInterrupt24(メッセージナンバー0)がMSI要求部305で同時に検出されると、MSI要求部305は、まずメッセージナンバー0のMSIパケットをENDP213に要求し、つづいてメッセージナンバー4のMSIパケットをENDP213に要求する。
また、INCT212は、同一のメッセージナンバーが割り当てられた要因間に対しても優先度を設定できる構成としてもよい。INCT212が同一グループ内の要因に対して優先度を設定できない場合、同一のメッセージナンバーのMSIパケットはいずれかの要因がクリアされるまで一度しか発行されない。つまり、割込ハンドラの最初にステータスレジスタ304の要因をリードした後、同一メッセージナンバー内での割り込みが発生しても、CPU104はその割り込みを検出することができないという問題がある。
INCT212が同一グループ内の要因に対して優先順位を設定できる構成とした場合、MSI要求部305は、現在要求中の割り込みよりも優先度の高い割込要因があると、同じメッセージナンバーのMSIパケットを再度発行する。このことにより、割込要因数に対してメッセージナンバーの数が少ない場合でも、多重割込制御をおこなうことができる。たとえば、下位デバイスの割込要因が32種類あるにも関わらず、MCH103(上位チップ)の制約によってメッセージナンバーが8種類しか使えない場合であっても、多重割込制御によって効率的に処理をおこなうことができる。
以上説明したように、実施の形態にかかるブリッジチップ101は、所定のメッセージナンバーを含むMSIパケットによる割込処理がおこなわれている間は、所定のメッセージナンバーを含む他のMSIパケットを発行しない。これにより、冗長なMSIパケットの発行を抑制し、デバイスのパフォーマンスを向上させることができる。
また、実施の形態にかかるブリッジチップ101では、マスクレジスタ303によってマスクされた後の割込要求信号がMSI要求部305に入力される。これにより、処理対象の割り込みをマスクした後に割込処理の中で各要因をクリアし、対象のマスクを解除することができる。したがって、実施の形態にかかるブリッジチップ101によれば、無駄なMSIパケットの発行を抑制することができるとともに、必要なMSIパケットの発行漏れを防止することができる。
また、実施の形態にかかるブリッジチップ101によれば、ある要因による割込要求があった場合、その要因と同じメッセージナンバーにグルーピングされているすべての要因をマスクする。これにより、冗長なMSIパケットの発行を抑制し、PCIeバスの処理効率を向上させることができる。
また、実施の形態にかかるブリッジチップ101によれば、優先順位の高い割込要因に起因する割込処理を優先的に実行することができるため、システムのパフォーマンスを向上させることができる。また、実施の形態にかかるブリッジチップ101によれば、同一のメッセージナンバーに対応づけられた割込要因間の多重割込処理をおこなうことができる。
本実施の形態ではPCIe規格のバス同士を接続した例(PCIe−PCIeバススイッチ)を示したが、本発明はPCI規格のバス同士を接続する場合にも適応できる。また、本発明は、異なる規格のバス、たとえばPCIe規格のバスとPCI規格のバスとを接続する(PCIe−PCIバスブリッジ)場合であっても適用は可能である。
なお、本実施の形態で説明した割込制御方法は、あらかじめ用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネットなどのネットワークを介して配布することが可能な伝送媒体であってもよい。
以上のように、本発明にかかる割込制御装置、バスブリッジおよび割込制御方法は、割込要求をパケット(広義にはエッジ割り込みも含む)で伝達するシステムに有用であり、特に、PCIeバスを有するチップセットや、PCIe−PCIeバススイッチ、PCIe−PCIバスブリッジ、前記バススイッチまたはバスブリッジ機能を有する多機能チップセット、プリンタコントローラ、I/Oチップなどに適している。
実施の形態にかかるブリッジチップが搭載されたシステム構成の一例を示すブロック図である。 実施の形態にかかるバスブリッジが搭載された画像処理装置の一例を示すブロック図である。 ブリッジチップおよびその周辺部の構成を示すブロック図である。 INTCの構成を示すブロック図である。 ステータスレジスタの構成例を示す説明図である。 INTC周辺における割込信号の流れを説明するための説明図である。 MSIパケットの発行要求時のタイミングチャートである。 ブリッジチップの初期化処理手順を示すシーケンス図である。 機能モジュールからの割り込みが発生した場合の割込制御処理手順を示すシーケンス図である。 MSI要因数とメッセージナンバーとの対応を示す図表である。 デバイスからの割り込みが発生した場合の割込制御処理手順を示すシーケンス図である。
100 システム
101 ブリッジチップ
102 デバイス
103、153 MCH
104、154 CPU
105、155 ICH
106、156 システムメモリ
110a デバイスI/F
110b MCH I/F
150 画像処理装置
151 バスブリッジ
152 画像処理部
157 プロッタ
158 スキャナ
159 HDD
160 NIC
170 LAN
171、172 ホストPC
211 ROOT
212 INTC
213 ENDP
214 機能モジュール
221,222 PCIe I/F
301 レジスタI/F
302 ペンディングレジスタ
303 マスクレジスタ
304 ステータスレジスタ
305 MSI要求部

Claims (5)

  1. 所定の割込要因に起因する割込要求を制御する制御手段を備える割込制御装置であって、
    前記制御手段は、
    少なくとも2つ以上の割込要因を複数のグループに分類し、
    ある割込要因がアサートされたときに、当該割込要因が属するグループに対応する割込要求を、前記割込制御装置に接続された割込処理手段に発行し、
    前記割込要因が属するグループに含まれる当該割込要因よりも優先順位の低い割込要因を全てマスクし、
    前記割込要求に基づき前記割込処理手段により割込処理が行われて前記割込要因がクリアされた後に、前記マスクを解除し、
    前記マスクが解除された割込要因を含む前記グループに属する全ての割込要因がネゲートされているか否かを判断し、当該グループに属する全ての割込要因がネゲートされている場合に処理を終了する一方、当該グループに属するいずれかの割込要因がアサートされている場合に当該グループに対応する割込要求を前記割込処理手段に発行し、
    前記制御手段は、ある割込要因に起因する割込要求に係る割込処理中に、当該割込要因が属するグループと同じグループに属し、当該割込要因よりも優先度の高い割込要因がアサートされた場合に、当該グループに対応する割込要求を再度発行する
    ことを特徴とする割込制御装置。
  2. 前記制御手段は、複数の割込要因が同時にアサートされた場合に、割込要因が属するグループの優先順位又は割込要因の優先順位に従った順番で割込要求を発行することを特徴とする請求項1に記載の割込制御装置。
  3. 前記制御手段は、各記憶領域に割込要因が割り当てられた記憶手段を備え、当該記憶手段を参照することにより、割込要因がアサートされているか否かを判断することを特徴とする請求項1又は2に記載の割込制御装置。
  4. 前記割込処理はPCI−Express規格のバス同士、PCI規格のバス同士またはPCI−Express規格のバスとPCI規格のバスとで接続されたデバイス間における割込処理であり、
    前記複数のグループの各々はMSIメッセージナンバーにより識別され、
    前記割込要求はMSIパケットの発行によって行われることを特徴とする請求項1〜のいずれか一つに記載の割込制御装置。
  5. 請求項1〜のいずれか一つに記載の割込制御装置と、画像処理手段とを備えたことを特徴とする画像処理装置。
JP2008113974A 2007-05-01 2008-04-24 割込制御装置および画像処理装置 Expired - Fee Related JP5200646B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008113974A JP5200646B2 (ja) 2007-05-01 2008-04-24 割込制御装置および画像処理装置
US12/111,521 US7805556B2 (en) 2007-05-01 2008-04-29 Interrupt control apparatus, bus bridge, bus switch, image processing apparatus, and interrupt control method

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP2007121129 2007-05-01
JP2007121129 2007-05-01
JP2007324627 2007-12-17
JP2007324627 2007-12-17
JP2008113974A JP5200646B2 (ja) 2007-05-01 2008-04-24 割込制御装置および画像処理装置

Publications (2)

Publication Number Publication Date
JP2009169928A JP2009169928A (ja) 2009-07-30
JP5200646B2 true JP5200646B2 (ja) 2013-06-05

Family

ID=40970977

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008113974A Expired - Fee Related JP5200646B2 (ja) 2007-05-01 2008-04-24 割込制御装置および画像処理装置

Country Status (1)

Country Link
JP (1) JP5200646B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010224689A (ja) * 2009-03-19 2010-10-07 Nec Soft Ltd デバイス制御システム、情報処理装置及びデバイス制御方法
US9015357B2 (en) * 2012-10-22 2015-04-21 Ati Technologies Ulc Method and device for providing high speed data transmission with video data
US10922252B2 (en) 2015-06-22 2021-02-16 Qualcomm Incorporated Extended message signaled interrupts (MSI) message data
JP2021012447A (ja) * 2019-07-04 2021-02-04 富士ゼロックス株式会社 情報処理装置および半導体装置
CN115221083B (zh) * 2022-09-05 2023-01-24 浪潮电子信息产业股份有限公司 一种PCIe中断处理方法、装置、设备及介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02118837A (ja) * 1988-10-28 1990-05-07 Ricoh Co Ltd 割込み制御装置
JP3549703B2 (ja) * 1997-05-12 2004-08-04 沖電気工業株式会社 割り込み処理システム
JPH10333922A (ja) * 1997-05-29 1998-12-18 Ando Electric Co Ltd 割り込み信号出力回路
JP3699806B2 (ja) * 1997-06-20 2005-09-28 株式会社東芝 割込みコントローラ及び制御システム
JP2002055830A (ja) * 2000-05-29 2002-02-20 Seiko Epson Corp 割込信号生成装置及び割込信号の生成方法
JP2005085055A (ja) * 2003-09-10 2005-03-31 Renesas Technology Corp 割り込みコントローラおよびマイクロコンピュータ
JP4184908B2 (ja) * 2003-09-19 2008-11-19 株式会社リコー Pciバスに接続するデバイス構成
JP2006268282A (ja) * 2005-03-23 2006-10-05 Nec Corp マルチ・パーティション・システムの割り込み制御方式

Also Published As

Publication number Publication date
JP2009169928A (ja) 2009-07-30

Similar Documents

Publication Publication Date Title
US7805556B2 (en) Interrupt control apparatus, bus bridge, bus switch, image processing apparatus, and interrupt control method
JP4928100B2 (ja) 改善されたデータ転送のためのコントローラ装置および方法
JP5200646B2 (ja) 割込制御装置および画像処理装置
JP2008090375A (ja) 割込み制御システム、およびこれを利用した記憶制御システム
JP5824488B2 (ja) トランザクション属性を修正するためのメモリ領域オーダリング要求に関するコンプリータ知識の使用
JPH10301889A (ja) データ転送方法及び装置
JP3895610B2 (ja) 画像形成装置および画像形成方法
JP2006209448A (ja) ダイレクトメモリアクセス制御方法、ダイレクトメモリアクセス制御装置、情報処理システム、プログラム
JP2007102653A (ja) データ記憶装置の機能試験方法及び機能試験装置
US20050256998A1 (en) Bus bridge device
JP4408840B2 (ja) Hddコントローラ及びそれを搭載したシステム
JP6843508B2 (ja) 情報処理装置及び情報処理装置の制御方法
JP2006323541A (ja) データ転送回路及びデータ転送方法
US5875458A (en) Disk storage device
CN1297892C (zh) 用于微处理器的中断控制器
JP5076967B2 (ja) 情報処理システム、情報処理システムの制御方法、および情報処理システムの制御プログラム
US6434635B1 (en) Methods, apparatus, and computer program product for data transfer using a scatter-gather list
JPH1097489A (ja) 磁気ディスク装置のブロック長変換方法及びブロック長変換装置
JP2009093225A (ja) ストレージ制御装置、方法及びプログラム並びにストレージ装置
JP2007264751A (ja) データ転送制御装置
JP2005258783A (ja) データ転送装置、データ転送方法、画像形成装置及びオプションボード
JP2021074974A (ja) 画像形成装置および画像形成装置の制御方法
JP2007164572A (ja) ディスクアレイ装置及び制御方法並びにプログラム
JP2007272643A (ja) Usbデバイス共有システム、これで用いるサーバのインタフェース装置、及びその動作方法
JP4439295B2 (ja) データ転送制御装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100901

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120327

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120424

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120625

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121002

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121130

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130128

R151 Written notification of patent or utility model registration

Ref document number: 5200646

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160222

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees