(57)【要約】【課題】  S0ステート及びS0ixステートにおいて、PCIeデバイスPCIホストにWAKE#信号を通知するための仕組みを提供する。【解決手段】  ホストとPCIeで接続されるデバイスが、PCIeを経由するホストとデバイスとの通信を制御するPCIe転送手段と、割込みが入力されたときに、PCIe転送手段の電力ステートに基づいて、PCIeを経由して前記割込みを前記ホストに通知するか、PCIeを経由せずに前記割込みを前記ホストに送信するかを切り替える割込み制御手段と、を備えることを特徴とするデバイス。 【選択図】図２
2017097638.tif 000002
【特許請求の範囲】
【請求項１】
ホストとPCIeで接続されるデバイスであって、
前記PCIeを経由する前記ホストと前記デバイスとの通信を制御するPCIe転送手段と、
割込みが入力されたときに、前記PCIe転送手段の電力ステートに基づいて、前記PCIeを経由して前記割込みを前記ホストに通知するか、前記PCIeを経由せずに前記割込みを前記ホストに送信するかを切り替える割込み制御手段と、を備えることを特徴とするデバイス。 
【請求項２】
前記割込み制御手段は、前記PCIe転送手段がD0ステートであると、前記割込み出力を前記PCIe転送手段に送信し、前記PCIe転送手段は、その前記割込み出力に応じて、PCIe割込みパケットを生成してPCIeを経由して前記ホストに送信し、
前記割込み制御手段は、前記PCIe転送手段がD3ステートであると、前記割込み出力を前記PCIeを経由せずに前記ホストに送信することを特徴とする請求項１に記載のデバイス。 
【請求項３】
前記割込み制御手段は、さらに、前記デバイスが処理する割込みのマスク設定を有することを特徴とする請求項１又は２のいずれか１項に記載のデバイス。
【請求項４】
前記マスク設定は、前記ホストが設定するものであることを特徴とする請求項３に記載のデバイス。
【請求項５】
前記マスク設定は、前記PCIe転送手段の電力ステートの通知信号に応じて切り替えることを特徴とする請求項３に記載のデバイス。
【請求項６】
ホストとPCIeで接続されるデバイスの制御方法であって、
前記PCIeを経由する前記ホストと前記デバイスとの通信を制御するPCIe転送工程と、
割込みが入力されたときに、前記PCIe転送工程の電力ステートに基づいて、前記PCIeを経由して前記割込みを前記ホストに通知するか、前記PCIeを経由せずに前記割込みを前記ホストに送信するかを切り替える割込み制御工程と、を備えることを特徴とするデバイスの制御方法。 
【請求項７】
前記割込み制御工程は、前記PCIe転送工程がD0ステートであると、前記割込み出力を前記PCIe転送工程に送信し、前記PCIe転送工程は、その前記割込み出力に応じて、PCIe割込みパケットを生成してPCIeを経由して前記ホストに送信し、
前記割込み制御工程は、前記PCIe転送工程がD3ステートであると、前記割込み出力を前記PCIeを経由せずに前記ホストに送信することを特徴とする請求項６に記載のデバイスの制御方法。 
【請求項８】
前記割込み制御工程は、さらに、前記デバイスが処理する割込みのマスク設定を有することを特徴とする請求項６又は７のいずれか１項に記載のデバイスの制御方法。
【請求項９】
前記マスク設定は、前記ホストが設定するものであることを特徴とする請求項８に記載のデバイスの制御方法。
【請求項１０】
前記マスク設定は、前記PCIe転送工程の電力ステートの通知信号に応じて切り替えることを特徴とする請求項８に記載のデバイスの制御方法。
【請求項１１】
ホストとPCIeで接続されるデバイスの制御方法をコンピュータで実行するためのプログラムであって、
前記PCIeを経由する前記ホストと前記デバイスとの通信を制御するPCIe転送ステップと、
割込みが入力されたときに、前記PCIe転送工程の電力ステートに基づいて、前記PCIeを経由して前記割込みを前記ホストに通知するか、前記PCIeを経由せずに前記割込みを前記ホストに送信するかを切り替える割込み制御ステップと、を備えることを特徴とするデバイスの制御方法のプログラム。 
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、S0ixステートのシステム電力状態をサポートする情報処理装置において、PCIeで接続されるデバイスからホストへ、S0ixステートからの復帰を通知するための方法に関する。
【背景技術】
【０００２】
電力制御のための規格であるACPI（Advanced Control and Power Interface）に定義される電力状態(Sステート)の拡張として、S0ixという新たな電力ステートがIntel(登録商標)社によって提唱されている。このS0ixは、OSが不要なI/Oや接続デバイスの供給電源を積極的にOFFすることで、S0ステートでありながら、S3/S4ステートと遜色ない低消費電力を実現できる技術である。
【０００３】
このS0ixに対応するために、接続デバイスは、RuntimeD3という各Ｉ/Ｆ仕様に応じた電力状態をサポートする必要がある。例えば、PCIe経由でホストと接続されるデバイスには、PCIe通信部への供給電源がOFF状態となるD3cold状態がある。該D3cold状態において、WAKE#信号なるアウトバンド信号を使用して、デバイス側からホスト側へS0ixステートからS0ステートへの復帰を要求できるように実装される必要がある。そして、ホストは、そのWAKE#信号による復帰要求に応じて、デバイス側のPCIe通信部への電源やクロックの供給を開始し、S0ixステートからS0ステートへの復帰処理を行うような構成が要求される（例えば、特許文献1参照。）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表2013-538385号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、S0ステート及びS0ixステートにおいて、PCIeデバイスがPCIホストにWAKE#信号を通知するための仕組みを提供するものである。
【課題を解決するための手段】
【０００６】
本願発明は、ホストとPCIeで接続されるデバイスであって、前記PCIeを経由する前記ホストと前記デバイスとの通信を制御するPCIe転送手段と、割込みが入力されたときに、前記PCIe転送手段の電力ステートに基づいて、前記PCIeを経由して前記割込みを前記ホストに通知するか、前記PCIeを経由せずに前記割込みを前記ホストに送信するかを切り替える割込み制御手段と、を備えることを特徴とする。
【発明の効果】
【０００７】
S0ステート及びS0ixステートにおいて、PCIeデバイスがPCIホストにWAKE#信号を通知するための仕組みを提供することができる。
【図面の簡単な説明】
【０００８】
【図１】S0ixステートを有するPCIeホスト/デバイスを含む情報処理装置の構成例である。
【図２】デバイスのPCIe制御部のブロック図である。
【図３】デバイスに割込みが発生した場合の振る舞いを表したフローチャートである。
【図４】本発明の実施例におけるデバイスの割込み制御部の内部のブロック図である。
【図５】本発明の別の実施例におけるデバイスの割込み制御部の内部のブロック図である。
【発明を実施するための形態】
【実施例１】
【０００９】
以下、本発明を実施するための形態について図面を用いて説明する。
図１は、本発明における情報処理装置のシステム全体構成を示す図である。
ホスト101は情報処理装置100全体の制御を行う。例えば、ＲＯＭ135、ＣＰＵ130、ＲＡＭ131等を保持し、ＣＰＵ130はＲＯＭ135上からブートして、実行プログラムをＲＡＭ131上に展開する。そして、展開したプログラムをＣＰＵ130が実行することで、SATA制御部133経由で接続されたＨＤＤ134、ＮＷ（ネットワーク）制御部132の制御や、後述するＰＭＵ(Power Management Unit)103への指示という形で、システムの電力制御の一部を行う。
【００１０】
また、PCIe制御部136を有し、PCIe(110)を経由して後述するデバイス102とデータ通信を行う。
デバイス102は、ホスト101とPCIe(110)経由で接続されるPCIeエンドポイントデバイスである。デバイス102はPCIe制御部146を有し、ホスト101とはPCIe(110)経由(インバンド)でデータをやり取りし、システム全体がサポートする機能の一部をホスト101から委託されて実行を行う。
【００１１】
例えば、情報処理装置100が、画像形成装置に適用された場合の1つの実施形態においては、ホスト101がＮＷ制御部132から受信してＲＡＭ131に格納した画像データを、PCIe(110)経由でデバイス102のＲＡＭ141に転送する。転送された画像データは、画像処理部149によってプリント用画像処理が施されたのち、プリンタＩ/Ｆ143を介してプリンタ144に転送されて、印刷を実施する用途に用いられる。
【００１２】
また、情報処理装置100が、画像形成装置に適用された場合のもう1つの実施形態においては、スキャナ148が取りこんだ画像データはスキャナＩ/Ｆ147を介して、ＲＡＭ141に格納される。ＲＡＭ141に格納された画像データは、画像処理部149によってスキャン用/プリント用画像処理が施されたのち、プリンタＩ/Ｆ143を介してプリンタ144に転送されて、印刷を実施する用途に用いられる。
【００１３】
PCIe(110)は、送受信データを授受するための1レーン分の転送信号である。PERST#信号111は、ホスト101からデバイス102の後述するPCIe転送部201の動作状態を制御するためのリセット信号である。また。電力ステートの復帰要求であるWAKE#信号112は、デバイス102からホスト101へ復帰要求を出すための復帰要求信号である。このWAKE#信号112は、アウトバンドでホスト101に通知される。デバイス102はWAKE#信号をアサートすることで、具体的には、後述する自身の持つPCIe転送部の電力ステートをD3からD0に遷移すること、システム全体の電力ステートをS0ixからS0に遷移することを要求する。
【００１４】
ＰＭＵ103は、情報処理装置100の電力制御を行う。ＰＭＵ103は、ホスト101からの制御線114を介して指示を受け、制御線113を介して電源回路104に対して制御を行う。電源回路104は、ホスト101、デバイス102、ＰＭＵ103に対して、破線で示された電力供給線120、121、122を介して、電力供給を行う。
【００１５】
図２は、デバイス102内部の詳細ブロック図のうち、PCIe制御部146の本発明に関係する部分のみ記載したものである。PCIe転送部201は、PCIe(110)によるデータ転送を制御する部分である。PCIe転送部201は、ホスト101からのPERST#信号111によってリセット制御される。また、後述する割込み制御部202からの割込み信号210を受けて、INTXやMSI（Message Signaled Interrupt）などの割込み通知パケットを生成し、PCIe(110)経由でホスト101にデバイス102側の割込みを通知することができる。さらに、PCIe転送部201は、自身の電力ステート(Dステート)を、電力ステート通知信号211として、後述する割込み制御部202に通知することができる。
割込み制御部202は、デバイス102内部からの割込み要因212、213や、デバイス102外部からの割込み要因214を受けて、後段のPCIe転送部201に割込み信号210を介して、割込みを通知する。また、割込み制御部からの割込み出力は、WAKE#信号112として、ホスト101に直接、通知することもできる。割込み制御部202には、前述したように、電力ステート通知信号211が入力されており、これによって、割込み出力を割込み信号210に出力するか、WAKE#信号112に出力するかを切り替えることができる。すなわち、割込み出力は、PCIe転送部201がD0ステートだった場合は、割込み信号210に出力し、D3ステートだった場合は、WAKE#信号112に出力するように制御される。
【００１６】
図３は、デバイス102の割込み制御部202に割込み要因212〜214が発生した場合の、デバイス102のふるまいを表したフローチャートである。このフローチャートには、電力ステート通知信号211による割込み制御部202の挙動の差分や、その挙動の差分に応じたホスト101からデバイス102への制御フローの差分が含まれる。以下の説明では、システム全体がS0ixステート、デバイス102のPCIe転送部201がD3ステートの低電力状態であることを想定する。
【００１７】
［デバイス割り込み制御フロー（全体）］
最初に、デバイス割り込み制御の全体フローを図３(a)を参照し、説明する。
まず、デバイス102の割込み制御部202に、割込み要因212〜214が発生すると(S301)、割込み制御部202は、電力ステート通知信号211の状態を確認し、PCIe転送部201の電力ステートがD3かどうかを判定する(S302)。PCIe転送部201の電力ステートがD3である場合(S302のYes)、デバイス復帰処理(S304)に移行する。デバイス復帰処理が終了したら、PCIe転送部201の電力ステートを判断するS302 に戻る。
【００１８】
一方、PCIe転送部201の電力ステートがD0である場合(S302のNo)、ホスト101がデバイス102からのPCIe経由での割込みを処理する通常のPCIe割込み処理(S303)に移行する。すなわち、PCIe転送部201がD0ステートだった場合は、通常のPCIe割込み処理を行うが、D3ステートだった場合は、D0ステートへの復帰処理を経た後に、通常のPCIe割込み処理を行うといった制御を行う。
【００１９】
［デバイス復帰処理］
デバイス復帰処理S304について図３(c)を参照し、説明する。
デバイス復帰処理S304では、まず、割込み制御部202は、WAKE#信号112をアサートして、ホスト101に復帰処理要求を送信する(S320)。ホスト101は、WAKE#信号112を介して復帰処理要求を受信すると、ＰＭＵ103にデバイス102への電力復帰を指示する。ＰＭＵ103はその指示を受けて電源回路104を制御し、デバイス102のPCIe転送部201への電力供給を開始する(S321)。次に、ホスト101は、PERST#信号111を介して、デバイス102のPCIe転送部201へリセット解除を行う(S322)。以上の処理によって、デバイス102のPCIe転送部201がD0ステートに復帰する。すると、デバイス102のPCIe転送部201は、WAKE#信号112からの要求にしたがって不図示の復帰処理でD0ステートに復帰したホスト101側のPCIe転送部とリンクトレーニングを行う(S323)。ホスト101とデバイス102のリンクが確立すると、ホスト101がS0ixステートに移行する際に保存しておいたデバイス102のPCIe転送部201のコンフィグレーション情報をデバイス102にリストアする(S324)。以上の処理によって、S0ixステートからS0ステートへの復帰処理のうち、PCIeデバイスに関わる部分の復帰処理が完了する(S325)。
【００２０】
［PCIe割り込み処理］
次に、PCIe割り込み処理S303について図３(b)を参照し、説明する。
一方、PCIe割込み処理S303では、割込み制御部202は、割込み信号210を介して、後段のPCIe転送部201に割込み出力を通知する(S310)。すると、PCIe転送部201は、PCIeの割込み仕様であるINTXもしくはMSIパケットを生成し、PCIe(110)経由でホスト101に割込みを通知する(S311)。ホスト101は、デバイス102からPCIe(110)経由で割込みパケットを受信すると、割込み要因をクリアし(S312)、デバイスからの割込み処理を完了する(S313)。
【００２１】
次に、割込み制御部202の詳細構成について図４を用いて説明する。
入力となる割込み要因212〜214は、ＭＵＸ（マルチプレクサ）401によって、割込み出力信号404として出力される。マスク402は、いずれの割込み要因をマスクするかを示すマスク信号である。マスク402は、例えばホスト101からPCIe転送部201を介して設定される。出力された割込み出力信号404は、後段のスイッチ403に入力される。スイッチ403では、電力ステート通知信号211にしたがって、割込み信号210に出力されるか、WAKE#信号112に出力されるかが制御される。
具体的には、電力ステート通知信号211がステートD3を示している場合は、WAKE#信号112に出力され、D0を示している場合は、割り込み信号210に出力される。
以上、本実施例においては、デバイス102のPCIe制御部の電力ステート(D0、D3)を電力ステート通知信号211として割込み制御部202に通知する。そして、割込み制御部202では、それによって割込み出力先を切り替えるように構成する。これによって、割込み制御部202は、低電力時(S0ix/D3)に、復帰要求通知であるWAKE#信号112を、出力することができる。また、デバイス102の回路規模増加を抑えることも可能となる。
【実施例２】
【００２２】
実施例１では、電力ステート通知信号211によって、割込み制御部202の出力のみをスイッチ403を切り替えた。ただ、割込み制御部202への割込み入力については、マスク402の単一の設定によっていずれの要因をマスクするかが決定されていた。そのため、通常状態であるS0ステート時と低電力状態であるS0ixステート時で、マスクする要因を切り替える場合、電力ステート移行時にホスト101からマスク402の設定を変更する必要があった。
実施例２では、予め２つのマスクをホスト101がデバイス102に設定しておき、電力ステート移行時にホスト101から指示を与えることなく、電力ステート通知信号211に応じて、これらを自動的に切り換えることができるようにしたものである。
【００２３】
図５は、実施例２における割込み制御部202の詳細構成を示した図である。図４との差分として、ＭＵＸ401の切り替え信号となるマスク402が、別のＭＵＸ501からの出力として構成されている。そして、ＭＵＸ501には、2つの入力マスク502、503のいずれかを、電力ステート通知信号211に応じて切り替えるような構成となっている。2つの入力マスク502、503は、図４のマスク402と同様に、例えばホスト101からPCIe転送部201を介して設定される。すなわち、本実施形態における割込み制御部202は、割込み入力のマスク設定を２つ持てるようになっている。これにより、デバイス102が、システム起動時、ホスト101からPCIeコンフィグレーション設定される時に、通常動作時と低電力動作時にデバイス側で有効とする入力割込みを、あらかじめ両方設定することができる。
そして、電力ステート通知信号211に応じて、入力マスク502，503がＭＵＸ501によって自動的に切り替えられることで、S0ixとS0との間のシステム電力ステート遷移時に、ホスト101がいちいちマスク402の設定を変えなければならないといった処理が不要となる。
【００２４】
（その他の実施例）
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【符号の説明】
【００２５】
101  ホスト
102  デバイス
136、146   PCIe制御部
110  PCIe
111  PERST#信号
112  WAKE#信号
201  PCIe転送部
202  割込み制御部
210  割込み信号
【図１】
2017097638.tif 000003
【図２】
2017097638.tif 000004
【図３】
2017097638.tif 000005
【図４】
2017097638.tif 000006
【図５】
2017097638.tif 000007