(57)【要約】【課題】低電力モードの周期的な解除のタイミングを遅くして、より省電力を可能とする半導体装置を提供する。【解決手段】実施形態によれば、半導体装置である通信制御部１２ａは、通常モードL0と、低電力モードL0sの少なくとも２つの動作モードで動作可能な通信回路２４ｃを有する。パワーマネジメント制御部２５は、通信回路２４ｃが通常モードL0で動作中に送信データが無くかつ受信バッファ２２ａに受信データがないとき、通信回路２４ｃの動作モードを低電力モードL0sに遷移させかつ第１の時間d1より長い第２の時間d2間隔でUpdateFC信号を送信するようにUpdateFC送信制御部２３ｂを制御すると共に、通信回路２４ｃが低電力モードL0sで動作中に送信データがあるあるいは第２の時間d2が経過したとき、通信回路２４ｃの動作モードを通常モードL0に遷移させ、且つUpdateFC信号を第１の時間d1間隔で送信するようにUpdateFC送信制御部２３ｂを制御する。【選択図】図２
2014060686.tif 000002
【特許請求の範囲】
【請求項１】
第１の動作モードと、該第１の動作モードよりも消費電力が低い第２の動作モードの少なくとも２つの動作モードで動作可能な通信回路を有する半導体装置であって、
送信データを格納する送信バッファと、
受信データを格納する受信バッファと、
第１の時間間隔で前記受信バッファの空き容量の情報を含むフロー制御情報を送信するフロー制御部と、
前記第１の時間より長い第２の時間間隔で前記フロー制御情報を送信するフロー制御情報遅延モードの設定を指定する第１のレジスタと、
前記通信回路の通信相手の前記フロー制御情報遅延モードを指定する第２のレジスタと、
前記通信回路の前記フロー制御情報遅延モードを設定し、かつ、前記通信相手の前記フロー制御情報遅延モードが設定されていない場合、前記通信回路が前記第１の動作モードで動作中に前記送信データが無いことの状態が第３の時間継続したとき、前記通信回路の動作モードを前記第２の動作モードに遷移させかつ前記第１の時間より長くかつ前記通信回路の動作モードが前記通信回路が採用する通信アークテクチャに規定されるリカバリ状態へ遷移するか否かの判定に用いられる判定基準時間よりも短い第２の時間間隔で前記フロー制御情報を送信するように前記フロー制御部を制御し、
前記通信回路が前記第２の動作モードで動作中に前記送信データがあるあるいは前記第２の時間が経過したとき、前記通信回路の動作モードを前記第１の動作モードに遷移させ、且つ前記フロー制御情報を前記第１の時間間隔で送信するように前記フロー制御部を制御し、
前記通信回路及び前記通信相手の前記フロー制御情報遅延モードが設定された場合、前記通信回路が前記第１の動作モードで動作中に前記送信データが無いことの状態が前記第３の時間継続しかつ前記受信バッファに前記受信データがないとき、前記フロー制御情報の送信を停止するように前記フロー制御部を制御すると共に、
前記フロー制御情報の送信停止後に前記送信データがあるとき、前記フロー制御情報の送信停止を解除すると共に前記通信回路の動作モードを前記第１の動作モードに遷移させるように前記フロー制御部を制御する、パワーマネジメント制御部と、
を有する半導体装置。
【請求項２】
第１の動作モードと、該第１の動作モードよりも消費電力が低い第２の動作モードの少なくとも２つの動作モードで動作可能な通信回路を有する半導体装置であって、
送信データを格納する送信バッファと、
受信データを格納する受信バッファと、
第１の時間間隔で所定の情報を送信する所定情報送信部と、
前記通信回路が前記第１の動作モードで動作中に前記送信データが無くかつ前記受信バッファに前記受信データがないとき、前記通信回路の動作モードを前記第２の動作モードに遷移させかつ前記第１の時間より長い第２の時間間隔で前記所定の情報を送信するように前記所定情報送信部を制御すると共に、前記通信回路が前記第２の動作モードで動作中に前記送信データがあるあるいは前記第２の時間が経過したとき、前記通信回路の動作モードを前記第１の動作モードに遷移させ、且つ前記所定の情報を前記第１の時間間隔で送信するように前記所定情報送信部を制御するパワーマネジメント制御部と、
を有する半導体装置。
【請求項３】
前記第２の時間は、前記通信回路の動作モードが前記通信回路が採用する通信アークテクチャに規定されるリカバリ状態へ遷移するか否かの判定に用いられる判定基準時間よりも短い請求項２に記載の半導体装置。
【請求項４】
第１の動作モードと、該第１の動作モードよりも消費電力が低い第２の動作モードの少なくとも２つの動作モードで動作可能な通信回路を有する半導体装置であって、
送信データを格納する送信バッファと、
受信データを格納する受信バッファと、
前記通信回路が前記第１の動作モードで動作中に前記送信データが無くかつ前記受信バッファに前記受信データがないとき、前記通信回路により通信を行う通信相手に関する第２の情報に基づいて、前記所定の情報の送信を停止するように前記所定情報送信部を制御し、前記所定の情報の送信停止後に前記送信データがあるとき、前記所定の情報の送信停止を解除すると共に前記通信回路の動作モードを前記第１の動作モードに遷移させるように前記所定情報送信部を制御するパワーマネジメント制御部と
を有する半導体装置。
【請求項５】
前記通信回路が採用する通信アークテクチャは、PCI expressであり、前記所定の情報はUpdataFCパケットである請求項１乃至４のいずれか１つに記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、半導体装置に関する。
【背景技術】
【０００２】
従来より、データ通信は、チップ間、ボード間及びシステム間で行われ、データ通信のための各種アーキテクチャが存在している。例えば、各種アーキテクチャの一つに、PCI（Peripheral Component Interconnect） Express規格がある。
【０００３】
また、各種アーキテクチャは、データ通信時の省電力を図るための機能を含むものもあり、所定の条件で、低電力モードに移行する制御が行われる。例えば、上記のPCI  Expressアーキテクチャの規格では、ASPM（Active State Power Management）と呼ばれるハードウエアによる低電力モードが規定されている。
【０００４】
一般に、データ通信のためのアーキテクチャは、受信バッファの状態を通知するためのフロー制御機構を有しており、定期的なフロー制御情報の送受信が行われるようになっている。例えば、PCI Expressアーキテクチャでは、LTSSM（Link Training Status State Machine）機構において、L0sからL0へのリンク状態への遷移が行われて、フロー制御情報であるUpdateFCパケットの送受信が行われる。
【０００５】
しかし、フロー制御機構によれば、通信回路が低電力モードになっても、フロー制御情報の送受信のために低電力モードが解除され、通常モードへの遷移が周期的に発生する。上記のPCI Expressアーキテクチャでは、UpdateFCパケットは、例えば３０μｓ（マイクロ秒）に一回送信される必要がある。従って、低電力モードになっても、消費電力の低下には限界があった。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−７９８３６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
実施形態は、より省電力を可能とする半導体装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
実施形態によれば、第１の動作モードと、該第１の動作モードよりも消費電力が低い第２の動作モードの少なくとも２つの動作モードで動作可能な通信回路を有する半導体装置であって、送信データを格納する送信バッファと、受信データを格納する受信バッファと、第１の時間間隔で所定の情報を送信する所定情報送信部と、パワーマネジメント制御部と、を有する半導体装置が提供される。パワーマネジメント制御部は、前記通信回路が前記第１の動作モードで動作中に前記送信データが無くかつ前記受信バッファに前記受信データがないとき、前記通信回路の動作モードを前記第２の動作モードに遷移させかつ前記第１の時間より長い第２の時間間隔で前記所定の情報を送信するように前記所定情報送信部を制御すると共に、前記通信回路が前記第２の動作モードで動作中に前記送信データがあるあるいは前記第２の時間が経過したとき、前記通信回路の動作モードを前記第１の動作モードに遷移させ、且つ前記所定の情報を前記第１の時間間隔で送信するように前記所定情報送信部を制御する。
【図面の簡単な説明】
【０００９】
【図１】本実施形態に係わるパーソナルコンピュータの構成図である。
【図２】本実施形態に係わる通信制御部１２ａの構成を示すブロック図である。
【図３】本実施形態に係わるパワーマネジメント制御部２５の処理による状態遷移の流れを示すフローチャートである。
【図４】時間ｔの経過に沿って、L0状態からL0s状態への変化とL0s状態からL0状態への変化が交互に繰り返される場合を説明するためのタイムチャートである。
【図５】本実施形態に係わる、L0s状態が延長された場合を説明するためのタイムチャートである。
【図６】本実施形態に係わる、通信相手にも拡張L0s機能が有効に設定されているときに、L0s状態が継続する場合を説明するためのタイムチャートである。
【発明を実施するための形態】
【００１０】
以下、図面を参照して実施形態を説明する。
【００１１】
（全体構成）
図１は、本実施形態に係わるパーソナルコンピュータの構成図である。パーソナルコンピュータ（以下、PCという）１は、PC１の全体の制御を行うCPU（中央処理装置）１１と、最上位のI/O構造を構成するルートコンプレックス１２と、スイッチ１３と、デバイス１４，１５を含んで構成されている。
【００１２】
CPU１１とルートコンプレックス１２は、マザーボード（図示せず）に搭載される。ルートコンプレックス１２は、バス１６により、CPU１１と接続されている。ルートコンプレックス１２は、シリアルインターフェース１７ａにより、スイッチ１３と接続されている。スイッチ１３は、シリアルインターフェース１７ｂにより、デバイス１４と接続され、さらに、スイッチ１３は、シリアルインターフェース１７ｃにより、デバイス１５と接続されている。ここでは、エンドポイントであるデバイス１４は、例えばハードディスクドライブ装置であり、デバイス１５は、例えば半導体素子メモリを用いたＳＳＤ（Solid State Drive）である。スイッチ１３は、ルートコンプレックス１２と、複数のデバイスとの接続を可能にするデバイスである。
【００１３】
ルートコンプレックス１２は、シリアルインターフェース１７ａを介するスイッチ１３との通信のための通信制御部１２ａを有している。スイッチ１３は、シリアルインターフェース１７ａを介するルートコンプレックス１２との通信のための通信制御部１３ａと、シリアルインターフェース１７ｂを介するデバイス１４との通信のための通信制御部１３ｂと、シリアルインターフェース１７ｃを介するデバイス１５との通信のための通信制御部１３ｃとを有している。デバイス１４も、シリアルインターフェース１７ｂを介するスイッチ１３との通信のための通信制御部１４ａを有し、同様に、デバイス１５も、シリアルインターフェース１７ｃを介するスイッチ１３との通信のための通信制御部１５ａを有している。
【００１４】
通信制御部１２ａは、ルートコンプレックス１２の他の回路と共に１つの半導体装置内に含まれている。なお、通信制御部１２ａは、マザーボード上の１つのチップとしての半導体装置として実現されていてもよい。  
他の通信制御部１３ａ、１３ｂ、１３ｃ、１４ａ、１５ａのそれぞれも、１つ半導体装置に形成されていてもよいし、CPU、他の回路と共に１つの半導体装置に含まれるものであってもよい。
【００１５】
デバイス同士は、シリアルインターフェース１７ａ、１７ｂ、１７ｃを介して、PCI Expressアーキテクチャの通信プロトコルで通信可能となっている。そして、シリアルインターフェース１７ａ、１７ｂ、１７ｃに接続されたデバイス間（図１では、ルートコンプレックス１２とスイッチ１３間、スイッチ１３とデバイス１４間、及びスイッチ１３とデバイス１５間）で、PCI Expressアーキテクチャの省電力機能が実現可能となっている。
【００１６】
すなわち、半導体装置である各通信制御部は、通常モードと低電力モードで動作可能な通信回路を有し、省電力機能により動作モードが低電力モードになると、通信制御部内の通信回路、コントローラ等は、低電力モードで動作する。言い換えると、各通信制御部は、第１の動作モードと、その該第１の動作モードよりも消費電力が低い第２の動作モードの少なくとも２つの動作モードで動作可能な通信回路を有する。
【００１７】
スイッチ１３は、内部のバス１３Ａに接続されたCPU１３Ｂを有しており、バス１３Ａには、通信制御部１３ａ、１３ｂ、１３ｃが接続されている。  
同様に、デバイス１４も、内部のバス１４Ａにそれぞれが接続されたCPU１４Ｂおよびハードディスク装置（HD）１４Ｃを有しており、バス１４Ａには、通信制御部１４ａが接続されている。  
例えば、ルートコンプレックス１２の通信制御部１２ａは、バス１６を介してCPU１１からスイッチ１３へ送信するデータ（送信データ）を受信すると、PCI Expressのシリアルインターフェース１７ａを介して送信データをスイッチ１３の通信制御部１３ａへ送信する。また、ルートコンプレックス１２の通信制御部１２ａは、PCI Expressのシリアルインターフェース１７ａを介して、スイッチ１３の通信制御部１３ａからのデータ（受信データ）を受信する。
【００１８】
同様に、スイッチ１３の通信制御部１３ａは、デバイス１４，１５からルートコンプレックス１２へ送信するパケットデータ（以下、送信データという）を受信すると、PCI Expressのシリアルインターフェース１７ａを介して送信データをルートコンプレックス１２の通信制御部１２ａへ送信する。また、スイッチ１３の通信制御部１３ａは、PCI Expressのシリアルインターフェース１７ａを介して、ルートコンプレックス１２の通信制御部１２ａからのデータ（受信データ）を受信する。  
他の通信制御部１３ｂ、１３ｃ、１４ａ、１５ａも、それぞれのシリアルインターフェース１７ｂ、１７ｃを介するデータの送受信を行う。
【００１９】
各通信制御部は、半導体装置内の回路として構築される。
【００２０】
（通信制御部の構成）
図２は、通信制御部１２ａの構成を示すブロック図である。ここでは、通信制御部１２ａの構成のみを説明するが、他の通信制御部１３ａ、１３ｂ、１３ｃ、１４ａ、１５ａは、通信制御部１２ａと同様の構成を有しているので、説明は省略する。  
通信制御部１２ａは、バスインターフェース（以下、バスI/Fと略す）２１と、トランザクション部２２と、データリンク部２３と、物理回路部２４と、パワーマネジメント制御部２５と、レジスタ部２６とを有している。
【００２１】
バスI/F２１は、CPU１１に接続されたバス１６と接続するためのインターフェース部であり、バスコントローラなどを含む。  
トランザクション部２２は、PCI Expressアークテクチャのトランザクション層に対応する処理部であり、受信バッファ２２ａを含む。受信バッファ２２ａには、シリアルインターフェース１７ａを介して受信した受信データが格納される。
【００２２】
データリンク部２３は、PCI Expressアークテクチャのデータリンク層に対応する処理部であり、送信バッファ２３ａと、UpdateFC送信制御部２３ｂとを含んでいる。UpdateFC送信制御部２３ｂは、タイマ２３ｃを含む。送信バッファ２３ａには、バス１６を介して受信した、CPU１１からの送信データが格納される。送信バッファ２３ａに格納された送信データは、シリアルインターフェース１７ａに出力される。
【００２３】
UpdateFC送信制御部２３ｂは、受信バッファ２２ａの空き状態を監視し、受信バッファ２２ａの空き状態、すなわち空き容量が変化すると、受信バッファ２２ａの空き容量の情報を含むフロー制御情報であるUpdateFC信号を、通信相手の通信制御部である通信制御部１３ａに送信する。すなわち、UpdateFC送信制御部２３ｂは、所定の時間間隔で所定の情報としてのフロー制御情報を送信する所定情報送信部（フロー制御部）を構成する。
【００２４】
さらに、PCI Express の規格によって、通常は、UpdateFC送信制御部２３ｂは、送信データがなくかつ受信バッファ２２ａが空であっても、タイマ２３ｃに設定された設定時間ST1として所定の時間d1の間隔で、フロー制御情報であるUpdateFC信号を、通信相手である通信制御部１３ａに送信する。例えば、所定の時間d1は、３０μsである。すなわち、UpdateFC送信制御部２３ｂは、送信データがなくかつ受信バッファ２２ａが空であっても、タイマ２３ｃがタイムアップする度に、受信バッファ２２ａが空であることを示すデータを含むUpdateFC信号を、通信相手に送信している。
【００２５】
本実施形態では後述するパワーマネジメント制御部２５からの送信間隔制御信号SCに基づいて、タイマ２３ｃの設定時間ST1は、設定変更可能となっている。後述するように、所定の状態になると、パワーマネジメント制御部２５は、UpdateFC送信制御部２３ｂに送信間隔制御信号SCを送信して、タイマ２３ｃの設定時間ST1を延長する。例えば、設定時間ST1は、所定の時間d1（３０μｓ）から所定の時間d2（１８０μｓ）に変更される。その結果、送信間隔制御信号SCによって、UpdateFC送信制御部２３ｂから出力されるフロー制御情報であるUpdateFC信号の送信間隔は、延長される。
【００２６】
物理回路部２４は、PCI Expressアークテクチャの物理層に対応する処理部であり、１つのリンクを構成するシリアルインターフェース１７を介する通信のための、ドライバ、パラレルシリアル変換器、シリアルパラレル変換器等の各種回路を含む。
【００２７】
物理回路部２４は、さらに、送信データである送信パケットを差動信号で送信するための差動回路２４ａと、差動信号である受信パケットを受信するための差動回路２４ｂを含んでいる。なお、ここでは、１つのリンクが１つのレーンのみを含むが、複数のレーンを含んでもよい。よって、物理回路部２４は、送信データ及び受信データをシリアルデータ形式で送信及び受信する通信回路２４ｃを含む。
【００２８】
パワーマネジメント制御部２５は、通信制御部１２ａの省電力機能を実行する処理部であり、ASPM（Active State Power Management）機能を実行するための処理部である。パワーマネジメント制御部２５は、拡張機能部２５ａ及びタイマ部２５ｂを含む。ASPMは、ハードウエアによる低電力モードL0sの回路動作の制御を行う。タイマ部２５ｂは、パワーマネジメント制御部２５が使用する各種タイマを含む。
【００２９】
レジスタ部２６は、各種データを格納するために複数のレジスタを含む回路であり、２つの拡張L0sイネーブルレジスタ（以下、第１、第２のイネーブルレジスタという）２６ａ、２６ｂを含む。
【００３０】
第１のイネーブルレジスタ２６ａは、後述する拡張L0s機能を有効（フロー制御情報遅延モード）とするか否かの情報を設定するためのレジスタである。拡張L0s機能は、後述するように、低電力モードL0sの状態を長く継続させる機能であり、拡張機能部２５ａにより実行される。すなわち、通信制御部１２ａの第１のイネーブルレジスタ２６ａは、時間d1より長い時間d2の時間間隔でUpdateFC信号を送信するようにUpdateFC送信制御部２３ｂを設定可能である。
【００３１】
第２のイネーブルレジスタ２６ｂは、通信相手のデバイスであるスイッチ１３の通信制御部１３ａも、拡張L0s機能が設定されているか否かの情報を設定するためのレジスタである。よって、第２のイネーブルレジスタ２６ｂは、通信相手に関する設定情報を設定可能である。
【００３２】
拡張L0s機能を有効とする場合には、第１のイネーブルレジスタ２６ａに所定の情報が設定される。有効の場合、拡張L0s機能により、UpdateFC送信制御部２３ｂ内のタイマ２３ｃの設定時間が、延長される。
【００３３】
ここでは、第１のイネーブルレジスタ２６ａに、所定の情報としての「１」が設定されていれば、パワーマネジメント制御部２５の拡張L0s機能は、有効とされる。第１のイネーブルレジスタ２６ａに、「０」に設定されていれば、パワーマネジメント制御部２５の拡張L0s機能は無効とされる。
【００３４】
後述するように、第１のイネーブルレジスタ２６ａが「１」かつ第２のイネーブルレジスタ２６ｂが「０」に設定されている場合、送信データがなくかつ受信バッファ２２ａが空のとき、UpdateFC信号の送信時間d2の間隔は、リンクの状態がリカバリ状態の判定に用いられる閾値の時間（リカバリ判定時間ST3）である２００μｓよりも短く、かつ３０μｓよりも長くなるように変更されて延長される。すなわち、UpdateFC信号を送信する時間d2は、通信回路２４ｃの動作モードが採用する通信アークテクチャに規定されるリカバリ状態へ遷移するか否かの判定に用いられる判定基準時間である閾値の時間ST3よりも短い。
【００３５】
また、第１のイネーブルレジスタ２６ｂが、「１」かつ第２のイネーブルレジスタ２６ｂが「１」に設定されている場合、送信データがなくかつ受信バッファ２２ａが空のとき、送信データが発生するまで、通信制御部１２ａは、UpdateFC信号を送信しない。通信相手のデバイスであるスイッチ１３の通信制御部１３ａの拡張L0s機能が有効に設定されており、リカバリ状態判定用のタイマはオフにされている。よって、通信制御部１２ａがUpdateFC信号を送信しなくても、リンクの状態は、リカバリ状態に遷移しない。
【００３６】
各通信制御部は、自己が拡張L0s機能を有しているか否かを示す設定情報を有しており、その情報は、第１のイネーブルレジスタ２６ａに設定される。通信相手の第１のイネーブルレジスタ２６ａにも、拡張L0s機能を有しているか否かを示す設定情報が設定されているので、各通信制御部は、自己及び通信相手の拡張L0s機能の有無を、自己の第１、第２のイネーブルレジスタ２６ａ、２６ｂに設定する。
【００３７】
第１、第２のイネーブルレジスタ２６ａ、２６ｂの値は、予め設定される。例えば、通信制御部１２ａのイネーブルレジスタ設定用のプログラムが通信制御部１２ａと１３ａ間で通信を行うことにより、通信制御部１２ａが通信制御部１３ａにおける設定情報（拡張L0s機能が有効に設定されているか否かの情報）を予め得ることによって、第２のイネーブルレジスタ２６ｂの設定が予め行われる。通信制御部１３ａにおいて拡張L0s機能が有効と設定されていると、通信制御部１２ａは、第２のイネーブルレジスタ２６ｂを「１」に設定する。なお、第２のイネーブルレジスタ２６ｂは予め設定されていなくても、通信開始後に相手側の第１のイネーブルレジスタ２６ａを確認し、自らの第２のイネーブルレジスタ２６ｂを設定することも可能である。
【００３８】
ここで、PCI Expressアーキテクチャにおけるリンクの状態とリカバリ状態について説明する。  
PCI Expressアーキテクチャは、リンクの状態を管理するためのLTSSM（Link Training Status State Machine）機能を有し、リンクの状態の一つとして、ハードウエアによる低電力状態のL0s状態を定義している。
【００３９】
L0s状態は、送信データであるパケットデータがない、もしくはパケットデータを送信できない時に、自発的に遷移する状態である。L0s状態では、各種回路へ供給される電圧を下げる等が行われることによって、省電力が図られる。
【００４０】
しかし、PCI Expressアーキテクチャの規格によれば、リンクの状態がL0s状態に遷移した後に送信データがない等の場合であっても、予め規定された所定の時間d1（例えば３０μｓ）の時間間隔でUpdateFC信号を送信するために、リンクの状態は、通常状態であるL0状態に遷移され、その後、L0s状態に戻る。すなわち、そのため、リンクの状態がL0s状態に遷移した後に送信データがない等の場合であっても、L0状態からL0s状態への遷移とL0s状態からL0状態への遷移が繰り返される。そのため、省電力モードであるL0s状態は、その所定の時間d1を超えて継続することができない。
【００４１】
そこで、本実施形態では、リンクの状態がL0s状態に遷移した後に送信パケットがない、等の場合には、所定の時間を超えて省電力モードであるL0s状態を継続することができるようになっている。
【００４２】
（動作）
図３は、パワーマネジメント制御部２５の処理による状態遷移の流れを示すフローチャートである。パワーマネジメント制御部２５の機能は、ソフトウエアプログラムによって実現してもよいし、ハードウエア回路により実現するようにしてもよい。
【００４３】
当初、リンクの状態は、L0状態である（S0）。  
パワーマネジメント制御部２５は、送信データがなくかつ受信バッファ２２ａが空であるか、あるいは、相手方の受信バッファ（すなわち、通信制御部１３ａの受信バッファ）が満杯であるか、を判定する（S1）。S1では、LTSSM（Link Training Status State Machine）機能におけるL0s状態への遷移条件の判定が行われる。
【００４４】
送信データがあるか否かは、タイマ部２５ｂの一つのタイマに設定された設定時間ST2（例えば、７μｓ）、送信データがない状態が継続したか否かによって、判定される。すなわち、パワーマネジメント制御部２５は、送信すべき送信データが無いことの状態が所定の時間ST2継続した場合に（S2）、送信データが無いと判定する。よって、送信データがない状態がタイマ部２５ｂの設定時間ST2継続すると、送信データがない、と判定される。
【００４５】
パワーマネジメント制御部２５は、バスI/F２１から送信バッファ２３ａへ出力される信号を監視することによって、送信データの有無を判定することができる。また、差動回路２４ｂを介して受信データを格納する受信バッファ２２ａを参照することによって、受信データのデータ格納状態（あるいは空き状態）から、受信バッファ２２ａが空であるかを判定することができる。
【００４６】
また、パワーマネジメント制御部２５は、通信相手である通信制御部１３ａからのUpdateFC信号に含まれる受信バッファの容量から、相手の通信制御部１３ａの受信バッファが満杯か否かを判定することができる。  
送信データがある、受信バッファ２２ａが空でない、あるいは相手方の受信バッファが満杯でない場合（S1:NO）、処理は、L0s状態への遷移は行われない。
【００４７】
送信データが無くかつ受信バッファ２２ａが空であるか、あるいは相手方の受信バッファが満杯であるとき（S1:YES）、次に、パワーマネジメント制御部２５は、送信データが無くかつ受信バッファ２２ａが空であるか否かを判定する（S2）。  
送信データがあるあるいは受信バッファ２２ａが空でない場合（S2:NO）、すなわち相手の受信バッファが満杯である場合、パワーマネジメント制御部２５は、リンクの状態を、L0s状態に遷移させる（S3）。
【００４８】
そして、パワーマネジメント制御部２５は、相手の受信バッファ（通信制御部１３ａの受信バッファ）に空きがあるか否かを判定する（S4）。相手の受信バッファに空きが無い場合（S4:NO）、処理は、送信データがあっても送信データは送信しない。すなわち、この場合、相手から、通常通り所定の時間d1間隔でUpdateFC信号が送信される。
【００４９】
相手の受信バッファに空きがある場合（S4:YES）、パワーマネジメント制御部２５は、リンクの状態を、L0状態に遷移させる（S5）。その結果、通信制御部１２ａは、送信データを送信することができる。S5の処理の後、処理は、S1へ戻る。
【００５０】
送信データが無くかつ受信バッファ２２ａが空である場合（S2:YES）、パワーマネジメント制御部２５は、リンクの状態を、L0s状態に遷移させる（S6）。  
そして、パワーマネジメント制御部２５は、自己の第１のイネーブルレジスタ２６ａにより、自己の拡張L0s機能が有効とされているか否かを判定する（S7）。  
第１のイネーブルレジスタ２６ａにより、通信制御部１２ａにおいて自己の拡張L0s機能が無効に設定されている場合（S7:NO）、処理は、S1へ移行する。
【００５１】
第１のイネーブルレジスタ２６ａにより自己の拡張L0s機能が有効の場合（S7:YES）、パワーマネジメント制御部２５は、第２のイネーブルレジスタ２６ｂにより、通信相手において拡張L0s機能が有効とされているか否かを判定する（S8）。
【００５２】
第２のイネーブルレジスタ２６ｂにより、通信相手の通信制御部において拡張L0s機能が無効に設定されている場合（S8:NO）、パワーマネジメント制御部２５は、UpdateFC送信制御部２３ｂ内のタイマ２３ｃの設定時間ST1を、所定の時間d2（例えば１８０μｓ）にセットすることによって、延長する（S9）。
【００５３】
以上のように、パワーマネジメント制御部２５は、通信回路２４ｃが通常モードで動作中に送信データが無くかつ受信バッファ２２ａに受信データがないとき（S2:YES）、通信回路２４ｃの動作モードを低電力モードに遷移させ（S6）、かつ所定の時間d1より長い所定の時間d2間隔で所定の情報としてのUpdateFC信号を送信するように所定情報送信部であるUpdateFC送信制御部２３ｂを制御する（S9）。
【００５４】
所定の時間d2は、PCI Expressアーキテクチャにおいて規定されるリカバリ状態に遷移するための閾値として設定されているリカバリ判定時間ST3よりも短い時間である。後述するリトレイン機能を動作させるための所定の時間d2は、リカバリ判定時間ST3の９割程度あれば十分である。従って、リカバリ判定時間ST3が、例えば、２００μsであるとき、所定の時間d2は、１８０μsである。L0s状態を延長できるので、消費電力を削減することができる。
【００５５】
そして、パワーマネジメント制御部２５は、UpdateFC送信制御部２３ｂ内のタイマ２３ｃが所定の時間d2をタイムアップしたか、あるいは送信データがあるか否かを判定し（S10）、タイムアップしていないあるいは送信データなければ（S10:NO）、処理は、S10に戻り、タイマ２３ｃと送信データの監視を継続する。
【００５６】
UpdateFC送信制御部２３ｂ内のタイマ２３ｃがタイムアップしたあるいは送信データがあると（S10:YES）、パワーマネジメント制御部２５は、S9で設定したタイマ２３ｃの設定時間ST1の延長を解除する（S11）。タイマ２３ｃの設定時間ST1の延長を解除することにより、タイマ２３ｃには、設定時間T1として、元の所定の時間t1（ここでは、３０μｓ）が設定される。
【００５７】
そして、パワーマネジメント制御部２５は、リンクの状態を、L0状態に遷移させる（S12）。その結果、通信制御部１２ａは、送信データを送信することができる。S12の処理の後、処理は、S1へ戻る。
【００５８】
以上のように、パワーマネジメント制御部２５は、通信回路２４ｃが低電力モードで動作中に送信データがあるあるいは所定の時間d2が経過したとき（S10：YES）、通信回路２４ｃの動作モードを通常モードL0状態に遷移させ（S12）、且つUpdateFC信号を所定の時間d1の時間間隔で送信するように所定情報送信部であるUpdateFC送信制御部２３ｂを制御する（S11）。
【００５９】
図４は、時間ｔの経過に沿って、拡張L0s機能が無効の場合のL0状態からL0s状態への変化とL0s状態からL0状態への変化が交互に繰り返される場合を説明するためのタイムチャートである。  
図４に示すように、ある時刻t1からタイマ２５ｂに設定されている設定時間ST2（例えば、７μｓ）、送信データがなくかつ受信バッファ２２ａが空の状態が継続すると、リンクの状態は、L0状態からL0s状態へ遷移する。図４では、時刻t2で、リンクの状態は、L0状態からL0s状態へ遷移している。
【００６０】
時刻t3で、設定時間t3において、タイマ２３ｃの設定時間ST1を超えたため、リンクの状態は、L0s状態からL0状態へ遷移している。そして、時刻t4では、タイマ２５ｂに設定されている設定時間ST2（例えば、７μｓ）、送信データがなくかつ受信バッファ２２ａが空の状態が継続したため、リンクの状態は、L0状態からL0s状態へ遷移している。  
図４では、以降、同様の動作が繰り返されている。
【００６１】
図５は、L0s状態が延長された場合を説明するためのタイムチャートである。本実施の形態では、図３のステップS7でYESかつS8でNOの場合、タイマ２３ｃの設定時間ST1は延長される（S9）。
【００６２】
図５に示すように、時刻t5において、タイマ２３ｃの延長された設定時間ST1（１８０μｓ）を超えたため、リンクの状態は、L0s状態からL0状態へ遷移している。そして、時刻t6では、タイマ２５ｂに設定されている設定時間ST2（例えば、７μｓ）、送信データがなくかつ受信バッファ２２ａが空の状態が継続したため、リンクの状態は、L0状態からL0s状態へ遷移している。
【００６３】
図５では、以降、同様の動作が繰り返される。従って、送信データが無くかつ受信バッファ２２ａが空である場合、図４に比べて、図５は、L0状態からL0s状態への遷移及びL0s状態からL0状態への遷移の回数が少なくなるため、通信制御部１２ａは長い時間、省電力になることを示している。
【００６４】
図３に戻り、イネーブルレジスタ２６ｂの値が「１」であり、相手の通信制御部においても拡張L0s機能が有効と設定されている場合（S8:YES）、パワーマネジメント制御部２５は、UpdateFC信号の送信を停止させるようにUpdateFC送信制御部２３ｂを制御する（S13）。
【００６５】
通信相手の通信制御部１３ａにおいても拡張L0s機能が有効に設定されると、通信制御部１３ａでは、リンク状態がリカバリ状態へ遷移する判定に使用されるタイマが無効とされる。  
通常、PCI Expressアークテクチャでは、通信相手から何のパケットも受信しない状態が所定時間（リカバリ判定時間ST3）以上継続すると、リンクの状態を、問題が発生したときに移行するリカバリ状態に遷移させて、リトレイン（Re-Train）することが必要である。相手からのデータの受信がリカバリ判定時間ST3以上無いか否かを判定するためにタイマが用いられる。
【００６６】
拡張L0s機能が有効に設定されると、通信制御部（ここでは、通信制御部１３ａ）は、このタイマによるリカバリ遷移判定を行わない。通信制御部１２ａのレジスタ部２６のイネーブルレジスタ２６ｂには、通信相手の通信制御部（ここでは、通信制御部１３ａ）に拡張L0s機能の設定情報が設定されているので、パワーマネジメント制御部２５は、S8の判定を行うことができる。
【００６７】
その後、パワーマネジメント制御部２５は、送信データがあるか否かを判定し（S14）、送信データがなければ（S14:NO）、処理は、何もしない。  
送信データがあると（S14:YES）、パワーマネジメント制御部２５は、UpdateFC信号の送信停止を解除する（S15）。そして、パワーマネジメント制御部２５は、リンクの状態を、L0状態に遷移させ（S12）、処理は、S1に戻る。
【００６８】
すなわち、パワーマネジメント制御部２５は、通信回路２４ｃが通常モードで動作中に送信データが無くかつ受信バッファ２２ａに受信データがないとき（S2:YES）、通信回路２４ｃにより通信を行う通信相手に関するイネーブルレジスタ２６ｂの情報に基づいて、UpdateFC信号の送信を停止するように所定情報送信部であるUpdateFC送信制御部２３ｂを制御し（S13）、UpdateFC信号の送信停止後に送信データがあるとき、UpdateFC信号の送信停止を解除する（S15）と共に通信回路２４ｃの動作モードを通常モードに遷移させる（S12）ようにUpdateFC送信制御部２３ｂを制御する。
【００６９】
図６は、通信相手にも拡張L0s機能が有効に設定されているときに、L0s状態が継続する場合を説明するためのタイムチャートである。本実施の形態では、図３のステップS8でYESかつS13でUpdateFC信号の送信が停止される。
【００７０】
図６に示すように、時刻t2において、タイマ２３ｃの延長された設定時間ST1を超えたため、リンクの状態は、L0s状態からL0状態へ遷移している。さらに、通信相手にも拡張L0s機能が有効に設定されているため、UpdateFC信号の送信が停止されている。よって、通信相手の通信制御部１３ａでは、リンク状態がリカバリ状態へ遷移する判定に使用されるタイマが無効とされているので、その後も、リンクの状態は、L0s状態のままである。
【００７１】
上述したS2、S6〜S12の処理が、拡張機能部２５ａを構成する。
【００７２】
従って、図５の場合に比べて、図６の場合は、送信データがあるまで、L0s状態が継続するため、通信制御部１２ａはさらに長い時間、省電力になる。
【００７３】
以上のように、上述した本実施形態によれば、低電力モードの周期的な解除のタイミングを遅くして、より省電力を可能とする半導体装置及び通信方法を提供することができる。
【００７４】
なお、以上の例では、PCI Expressアーキテクチャにおける構成と動作を説明したが、本実施形態の半導体装置は、PCI Expressアーキテクチャ以外の通信アーキテクチャにおいても適用可能である。
【００７５】
さらになお、以上の例では、通信制御部がPC内における通信に用いられている例を説明したが、本実施形態の通信制御部は、携帯電話、スマートフォン、タブレットPC等の各種電子機器における通信にも適用可能である。
【００７６】
本明細書における各「部」は、実施の形態の各機能に対応する概念的なもので、必ずしも特定のハードウエアやソフトウエア・ルーチンに１対１には対応しない。従って、本明細書では、以下、実施の形態の各機能を有する仮想的回路ブロック（部）を想定して実施の形態を説明した。また、本実施の形態における各手順の各ステップは、その性質に反しない限り、実行順序を変更し、複数同時に実行し、あるいは実行毎に異なった順序で実行してもよい。
【００７７】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として例示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００７８】
１  PC、１１  CPU、１２  ルートコンプレックス、１２ａ  通信制御部、１３  スイッチ、１３ａ、１３ｂ、１３ｃ  通信制御部、１３Ａ  バス、１３Ｂ  CPU、１４  デバイス、１４Ａ  バス、１４Ｂ  CPU、１４C  ハードディスク、１４ａ  通信制御部、１５  デバイス、１５ａ  通信制御部、１６  バス、１７ａ、１７ｂ、１７ｃ  シリアルインターフェース、２１  バスインターフェース、２２  トランザクション部、２２ａ  受信バッファ、２３  データリンク部、２３ａ  送信バッファ、２３ｂ  UpdateFC送信制御部、２３ｃ  タイマ、２４  物理回路部、２４ａ、２４ｂ  差動回路、２４ｃ  通信回路、２５  パワーマネジメント制御部、２５ａ  拡張機能部、２５ｂ  タイマ、２６  レジスタ部、２６ａ、２６ｂ  イネーブルレジスタ。
【図１】
2014060686.tif 000003
【図２】
2014060686.tif 000004
【図３】
2014060686.tif 000005
【図４】
2014060686.tif 000006
【図５】
2014060686.tif 000007
【図６】
2014060686.tif 000008