(57)【要約】【課題】動作状態に応じて電流と消費電力を適切に調整すること。【解決手段】通信インタフェース１００は、受信されたパケットを送信するために蓄積する送信バッファ２２１と、パケットの受信の有無と送信バッファ２２１内における残存パケットの残存量とに基づいて、送信バッファ２２１を構成するＣＭＯＳ回路３０１−ｉに対する基板バイアス電圧を制御する電圧制御部２２４と、パケットの受信の有無と送信バッファ２２１内における残存パケットの有無とに基づいて、送信バッファ２２１に与えるクロックの動作周波数を制御するクロック制御部２２２と、を有する。【選択図】図２
2014175969.tif 000002
【特許請求の範囲】
【請求項１】
受信されたパケットを送信するために蓄積する送信バッファと、
前記パケットの受信の有無と前記送信バッファ内における残存パケットの残存量とに基づいて、前記送信バッファを構成するＣＭＯＳ回路に対する基板バイアス電圧を制御する電圧制御部と、
前記パケットの受信の有無と前記送信バッファ内における前記残存パケットの残存量とに基づいて、前記送信バッファに与えるクロックの動作周波数を制御するクロック制御部と、
を有することを特徴とする通信インタフェース。
【請求項２】
前記送信バッファ内の残存パケットの残存量が所定量以下の場合、
前記電圧制御部は、ドレイン電流が第１の閾値であるゲート電圧を超えた場合に流れる第１の基板バイアス電圧と、前記ドレイン電流が前記第１の閾値よりも高い第２の閾値を超えた場合に流れる第２の基板バイアス電圧と、のうち、前記第２の基板バイアス電圧を前記ＣＭＯＳ回路に出力し、
前記クロック制御部は、前記送信バッファへのクロックの供給を停止することを特徴とする請求項１に記載の通信インタフェース。
【請求項３】
前記パケットの受信が有り、かつ、前記送信バッファ内の前記残存パケットの残存量が所定量を超えた場合、
前記電圧制御部は、ドレイン電流が第１の閾値であるゲート電圧を超えた場合に流れる第１の基板バイアス電圧と、前記ドレイン電流が前記第１の閾値よりも高い第２の閾値を超えた場合に流れる第２の基板バイアス電圧と、のうち、前記第１の基板バイアス電圧を前記ＣＭＯＳ回路に出力し、
前記クロック制御部は、前記電圧制御部が前記第２の基板バイアス電圧を出力する場合に前記送信バッファに供給されるクロックの動作周波数よりも高い動作周波数のクロックを、前記送信バッファに出力することを特徴とする請求項１に記載の通信インタフェース。
【請求項４】
前記パケットの受信がなく、かつ、前記送信バッファ内の前記残存パケットの残存量が所定量を超えた場合、
前記電圧制御部は、ドレイン電流が第１の閾値であるゲート電圧を超えた場合に流れる第１の基板バイアス電圧と、前記ドレイン電流が前記第１の閾値よりも高い第２の閾値を超えた場合に流れる第２の基板バイアス電圧と、のうち、前記第２の基板バイアス電圧を前記ＣＭＯＳ回路に出力し、
前記クロック制御部は、前記電圧制御部が前記第１の基板バイアス電圧を出力する場合に前記送信バッファに供給されるクロックの動作周波数よりも低い動作周波数のクロックを、前記送信バッファに出力することを特徴とする請求項１に記載の通信インタフェース。
【請求項５】
前記通信インタフェースは、他のブロックが接続されるインターコネクトに接続されており、前記インターコネクトから前記パケットを受信し、前記送信バッファ内の前記残存パケットを前記インターコネクトに送信することを特徴とする請求項１に記載の通信インタフェース。
【請求項６】
前記電圧制御部は、さらに、前記通信インタフェースのリンク状態に基づいて、前記送信バッファを構成するＣＭＯＳ回路に対する基板バイアス電圧を制御することを特徴とする請求項１に記載の通信インタフェース。
【請求項７】
前記クロック制御部は、さらに、前記通信インタフェースのリンク状態に基づいて、前記送信バッファに与えるクロックの動作周波数を制御することを特徴とする請求項１または６に記載の通信インタフェース。
【請求項８】
インターコネクトと、前記インターコネクトに接続される通信インタフェースと、前記インターコネクトに接続される他のブロックと、を有する半導体集積回路であって、
前記通信インタフェースは、
前記半導体集積回路外または前記インターコネクトから受信されたパケットを、前記インターコネクトまたは前記半導体集積回路外に送信するために蓄積する送信バッファと、
前記パケットの受信の有無と前記送信バッファ内における残存パケットの残存量とに基づいて、前記送信バッファを構成するＣＭＯＳ回路に対する基板バイアス電圧を制御する電圧制御部と、
前記パケットの受信の有無と前記送信バッファ内における前記残存パケットの残存量とに基づいて、前記送信バッファに与えるクロックの動作周波数を制御するクロック制御部と、
を有することを特徴とする半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケットを通信する通信インタフェースおよび半導体集積回路に関する。
【背景技術】
【０００２】
通信装置に使用されるＳｙｓｔｅｍ−ｏｎ−ａ−Ｃｈｉｐ（ＳｏＣ）等の半導体集積回路は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、メモリおよび、通信インタフェースを有する。通信インタフェースには、イーサネット（イーサネットは登録商標、以下同じ）、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）−ＥＸＰＲＥＳＳ、ＳＡＴＡ（Ｓｅｒｉａｌ  Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ）等がある。ＣＰＵ、メモリおよび、通信インタフェースは、がインターコネクトにより接続されている。これらの通信インタフェースに入力したデータは、インターコネクトを介して、ＣＰＵまたはメモリに転送され処理される。
【０００３】
これらの通信インタフェースには、常にデータが入力しているわけではなく、データが入力していない場合に、データが入力されている場合と同様の動作をすると無駄な電力が消費されるという問題がある。そこで、データの入力状態に応じてクロックの周波数を変更させて、無駄な消費電力を低減する提案がなされている。例えば、特許文献１には、通信インタフェースからバスに転送されるデータ量に応じてバスのクロック周波数を変更することで消費電力を低減する装置が記載されている。
【０００４】
また、リーク電流による消費電力技術として、ＭＯＳＦＥＴの基板バイアス効果を利用して基板バイアス電圧を変化させ、ＭＯＳＦＥＴの閾値を高くすることによってリーク電流を低減する技術が開示されている。（例えば、下記特許文献２を参照。）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−１９９４６１号公報
【特許文献２】特開平６−５３４９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、特許文献１の技術は、クロック周波数のみを変更して消費電力の低減を図っているため、近年プロセスの微細化により増大しているリーク電流による電力消費を低減できないという問題がある。また、特許文献２の技術は、リーク電流を低減する閾値を高くすると、動作速度が遅くなるため、性能が低下するという問題がある。
【０００７】
本発明は、上記問題に鑑みてなされたものであり、動作状態に応じて電流と消費電力を適切に調整することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するため、本発明の一側面となる通信インタフェースは、受信されたパケットを送信するために蓄積する送信バッファと、前記パケットの受信の有無と前記送信バッファ内における残存パケットの残存量とに基づいて、前記送信バッファを構成するＣＭＯＳ回路に対する基板バイアス電圧を制御する電圧制御部と、前記パケットの受信の有無と前記送信バッファ内における前記残存パケットの残存量とに基づいて、前記送信バッファに与えるクロックの動作周波数を制御するクロック制御部と、を有する。
【発明の効果】
【０００９】
本発明の代表的な実施の形態によれば、動作状態に応じて電流と消費電力を適切に調整することができる。前述した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【００１０】
【図１】実施例における半導体集積回路の一例である通信装置用ＳｏＣの構成図の例である。
【図２】実施例における通信ＩＦの詳細なハードウェア構成例を示すブロック図である。
【図３】図２に示した送信バッファおよび電圧制御部の詳細なハードウェア構成例１を示す回路図である。
【図４】ＮＭＯＳのゲート電圧とドレイン電流の関係の一例を示すグラフである。
【図５】ＰＭＯＳのゲート電圧とドレイン電流の関係の一例を示すグラフである。
【図６】実施例にかかる通信ＩＦの制御処理手順例を示すフローチャートである。
【図７】実施例における通信ＩＦの動作例を示すタイムチャートである。
【図８】図２に示した送信バッファおよび電圧制御部の詳細なハードウェア構成例２を示す回路図である。
【図９】図２に示した送信バッファおよび電圧制御部の詳細なハードウェア構成例３を示す回路図である。
【図１０】電圧選択部における選択論理を示す説明図である。
【発明を実施するための形態】
【００１１】
図１は、実施例における半導体集積回路の一例である通信装置用ＳｏＣの構成図の例である。通信装置用ＳｏＣ１０は、通信インタフェース（以下、通信ＩＦという）１００である、イーサネットＩＦ１０１、ＵＳＢＩＦ１０２、ＰＣＩｅＩＦ１０３、ＳＡＴＡＩＦ１０４を備える。なお、上記以外の通信ＩＦ１００を備えてもよいし、上記通信ＩＦ１００を複数備えてもよい。また、通信装置用ＳｏＣ１０は、ＣＰＵ１１、メモリコントローラ１２、ＲＯＭコントローラ１３を備え、それぞれインターコネクト１４に接続されている。なお、インターコネクト１４には上記以外の機能ブロックが接続されてもよい。
【００１２】
通信ＩＦ１００は通信データであるパケットの送受信制御を行う。すなわち、通信ＩＦ１００が外部装置からパケットを受信すると、各種プロトコルに従った受信処理がなされ、インターコネクト１４を介して他の機能ブロック、例えばＣＰＵ１１やメモリコントローラ１２に送信する。また、通信ＩＦ１００は、他の機能ブロックからインターコネクト１４を介し通信ＩＦ１００に送信されたパケットを、各種プロトコルに従った送信処理を行い、外部装置にパケットを送信する。
【００１３】
ＣＰＵ１１は、プログラムに従って、アプリケーションの制御やパケットの解析・転送制御を行う。プログラムやプログラムで使用する設定値等は図示していない外部ＲＯＭに格納されており、ＲＯＭコントローラ１３は、外部ＲＯＭへの送受信制御を行う。メモリコントローラ１２は、図示していない外部メモリへの送受信制御を行い、外部メモリには、外部ＲＯＭから転送されたプログラムやプログラムで使用するデータ、およびパケット等が格納される。
【００１４】
＜通信ＩＦ１００のハードウェア構成例＞
図２は、実施例における通信ＩＦ１００の詳細なハードウェア構成例を示すブロック図である。通信ＩＦ１００は、パケット処理部２０１と、インターコネクトＩＦ２０２と、を有する。パケット処理部２０１は、パケット検出部２１１と、プロトコル処理部２１２と、を有する。インターコネクトＩＦ２０２は、送信バッファ２２１と、クロック制御部２２２と、送信制御部２２３と、電圧制御部２２４と、を有する。パケット処理部２０１から説明する。
【００１５】
パケット検出部２１１は、外部装置からパケットが受信したことを検出し、検出信号を出力する。プロトコル処理部２１２は、受信したパケットを所定のプロトコルに従い、ヘッダ解析、パケット廃棄、フロー制御等のプロトコル処理を行い、プロトコル処理が施されたパケットを送信バッファ２２１に転送する。送信バッファ２２１へのパケット転送終了後、またはパケット廃棄後、パケット検出部２１１は検出信号の出力を停止する。パケット検出部２１１およびプロトコル処理部２１２は、通信ＩＦ１００の速度に対応した周波数（例えば、イーサネットの場合は１２５［ＭＨｚ］等）のクロックで動作する。このクロックを通信ＩＦ１００クロックと称す。
【００１６】
送信バッファ２２１は、クロック制御部２２２から出力されるクロックに基づき、プロトコル処理を施されたパケットを一時的に蓄積した後、所定のビット幅、例えば６４ビット幅で、インターコネクト１４にデータを送信する。また、送信バッファ２２１は、送信バッファ２２１にパケットが存在する場合には、送信バッファ２２１にパケットが存在することを示すＢＵＳＹ信号を出力する。つぎに、インターコネクトＩＦ２０２について説明する。
【００１７】
クロック制御部２２２は、検出信号とＢＵＳＹ信号に基づき、送信バッファ２２１に与えるクロックの動作周波数を制御する。具体的には、例えば、クロック制御部２２２は、検出信号が出力されている状態で、かつ、ＢＵＳＹ信号が出力されている状態、すなわち、パケットを連続して受信している状態では、インターコネクト１４の動作周波数と等しいクロックを出力する。
【００１８】
また、検出信号が出力されていない状態で、かつ、ＢＵＳＹ信号が出力されている状態、すなわち、新規パケットを受信しておらず、インターコネクト１４へ送信すべきパケットが送信バッファ２２１に蓄積されている状態では、インターコネクト１４の動作周波数より低いクロックを出力する。さらに検出信号およびＢＵＳＹ信号がともに出力されていない状態では、クロック制御部２２２は、送信バッファ２２１へのクロックの供給を停止する。
【００１９】
送信制御部２２３は、インターコネクト１４の動作クロック（インターコネクトクロック）により、インターコネクト１４に対し制御信号の送受信を行う。また、送信制御部２２３は、送信バッファ２２１から送信されたデータが有効であることを示すＤａｔａ  Ｖａｌｉｄ信号を送信する。
【００２０】
電圧制御部２２４は、検出信号とＢＵＳＹ信号に基づき、送信バッファ２２１を構成するＣＭＯＳ回路の基板バイアス電圧を制御する。具体的には、例えば、電圧制御部２２４は、検出信号が出力されている状態で、かつ、ＢＵＳＹ信号が出力されている状態、すなわち、パケットを連続して受信している状態では、ＣＭＯＳ回路の閾値電圧を低くする基板バイアス電圧を出力する。また、電圧制御部２２４は、検出信号が出力されていない状態、すなわち、新規パケットを受信していない状態では、ＣＭＯＳ回路の閾値電圧を高くする基板バイアス電圧を出力する。
【００２１】
図３は、図２に示した送信バッファ２２１および電圧制御部２２４の詳細なハードウェア構成例１を示す回路図である。図３において、送信バッファ２２１は、ｎ個（ｎは１以上の整数）のＣＭＯＳ回路を有する。ここでは、ＣＭＯＳインバータを例として説明するが、ＣＭＯＳインバータに限らず、送信バッファ２２１を構成するすべてのＣＭＯＳ回路が対象である。
【００２２】
ＣＭＯＳ回路３０１−ｉ（ｉは、１≦ｉ≦ｎとなる整数）は、ＰＭＯＳ３０２−ｉおよびＮＭＯＳ３０３−ｉを有する。ＣＭＯＳ回路３０１−ｉには、電源電圧としてＶｄｄ（例えば１．０［Ｖ］）、接地電圧としてＶｓｓ（例えば０［Ｖ］）が供給される。３０４−ｉは、ＰＭＯＳの基板端子（Ｎウェル端子）であり、３０５−ｉは、ＮＭＯＳの基板端子（Ｐウェル端子）である。
【００２３】
電圧制御部２２４は、ＡＮＤ回路３１０と、第１のスイッチ３１１と、第２のスイッチ３１２と、を有する。ＡＮＤ回路３１０は、検出信号とＢＵＳＹ信号の論理積を出力する。第１のスイッチ３１１は、ＰＭＯＳの基板バイアス電圧を選択し、ＰＭＯＳの基板端子３０４−ｉにバイアスを与える。第２のスイッチ３１２は、ＮＭＯＳの基板バイアス電圧を選択し、ＮＭＯＳ基板端子３０５−ｉにバイアスを与える。
【００２４】
ＰＭＯＳ用の基板バイアス電圧は、高閾値用の電圧であるＶｂｐｈまたは低閾値用の電圧であるＶｂｐｌから選択される。例えば、Ｖｂｐｈは２．５［Ｖ］であり、Ｖｂｐｌは１．０［Ｖ］である。ＮＭＯＳ用の基板バイアスは、低閾値用の電圧であるＶｂｎｈまたは高閾値用の電圧であるＶｂｎｌから選択される。例えば、Ｖｂｎｈは０［Ｖ］であり、Ｖｂｎｌは−１．５［Ｖ］である。ここで、基板バイアス用の電圧であるＶｂｐｈ、Ｖｂｐｌ、Ｖｂｎｈ、Ｖｂｎｌは、電圧制御部２２４内で生成されてもよいし、電圧制御部２２４の外部から供給されてもよい。つぎに、基板バイアス電圧を制御することによる効果について説明する。
【００２５】
図４は、ＮＭＯＳのゲート電圧（ＶＧＳ）とドレイン電流（ＩＤＳ）の関係の一例を示すグラフである。図５は、ＰＭＯＳのゲート電圧（ＶＧＳ）とドレイン電流（ＩＤＳ）の関係の一例を示すグラフである。横軸はゲート電圧を示し、縦軸はドレイン電流の絶対値を対数スケールで示す。ゲート電圧が閾値を超えるとチャネルが形成され急激にドレイン電流が流れ始めるが、閾値以下のゲート電圧でもドレイン電流は０とはならずドレイン電流が流れる（リーク電流）。
【００２６】
リーク電流は閾値に依存し、閾値に対して指数関数的に変化するため、閾値を高くすることでリーク電流を大幅に低減できる。逆に閾値が低くするとリーク電流を大きくなるが、ドレイン電流をより流すことができるため動作速度は速くなる。この閾値は基板端子のバイアスを制御することにより変更することができ、順方向にバイアスをかけると閾値は低くなり、逆方向にバイアスをかけると閾値は高くなる。パケットの到来に応じて高速動作の必要有無によって基板バイアス電圧を制御することにより、消費電力を低減することができる。以下に実施例における基板バイアス電圧制御の方法を具体的に説明する。
【００２７】
検出信号とＢＵＳＹ信号がともに出力されている場合は、ＡＮＤ論理３０６の出力である基板バイアス電圧選択信号はＨＩＧＨレベルとなり、第１のスイッチ３１１はＶｂｐｌを、第２のスイッチ３１２はＶｂｎｈを選択する。これにより、ＣＭＯＳ回路３０１−ｉの閾値が低くなり、高速動作が可能となる。
【００２８】
検出信号とＢＵＳＹ信号のいずれか一方、または、検出信号とＢＵＳＹ信号の両方が出力されていない場合は、基板バイアス電圧選択信号はＬＯＷレベルとなり、第１のスイッチ３１１はＶｂｐｈを、第２のスイッチ３１２はＶｂｎｌを選択する。これにより、ＣＭＯＳ回路３０１−ｉの閾値が高くなり、リーク電流が減少する。
【００２９】
＜通信ＩＦ１００の動作処理手順例＞
図６は、実施例にかかる通信ＩＦ１００の制御処理手順例を示すフローチャートである。まず、電圧制御部２２４は、高閾値用の基板バイアス電圧を出力し、クロック制御部２２２は、送信バッファ２２１へのクロックを停止する（ステップＳ６０１）。これにより、リーク電流を抑制するとともに、クロック停止により消費電力の低減が図られる。つぎに、パケット検出部２１１は、外部装置からのパケットの受信を監視する（ステップＳ６０２）。
【００３０】
まず、検出信号が出力されている、すなわちパケットが受信している場合について説明する。検出信号が出力されている場合（ステップＳ６０２：Ｙｅｓ）、電圧制御部２２４およびクロック制御部２２２は、送信バッファ２２１に送信パケットがあるか否かを判断する（ステップＳ６０３）。
【００３１】
送信バッファ２２１に送信パケットがない場合（ステップＳ６０３：Ｎｏ）、ＢＵＳＹ信号が出力されていないため、パケット処理部２０１から送信バッファ２２１へのパケット転送が完了していない、またはパケットが廃棄されたことを示す。したがって、この場合は、再びパケット受信の監視（ステップＳ５０２）を行う。
【００３２】
送信バッファ２２１に送信パケットがある場合（ステップＳ６０３：Ｙｅｓ）、ＢＵＳＹ信号が出力されているため、電圧制御部２２４は、低閾値用の基板バイアス電圧を出力し、クロック制御部２２２はインターコネクト１４の動作周波数と等しいクロックを出力する（ステップＳ６０４）。これにより、ＣＭＯＳ回路３０１−ｉの閾値が低くなり、高速動作が可能となる。その後、送信バッファ２２１は、インターコネクト１４の動作周波数と等しいクロックに基づきデータを送信する（ステップＳ６０５）。このあと、ステップＳ６０２に戻る。
【００３３】
次に、検出信号が出力されていない、すなわちパケットを受信していない場合について説明する。検出信号が出力されていない場合（ステップＳ６０２：Ｎｏ）、電圧制御部２２４およびクロック制御部２２２は、送信バッファ２２１に送信パケットがあるか否かを判断する（ステップＳ６０６）。
【００３４】
送信バッファ２２１に送信パケットがない場合（ステップＳ６０６：Ｎｏ）、ＢＵＳＹ信号が出力されていないため、通信ＩＦ１００に処理すべきパケットがないことを示す。このため、電圧制御部２２４は、高閾値用の基板バイアス電圧を出力し、クロック制御部２２２は送信バッファ２２１へのクロックを停止する（ステップＳ６０１）。高閾値用の基板バイアス電圧を出力することにより、リーク電流を低減することができ、クロック停止により消費電力の低減を図ることができる。
【００３５】
一方、送信バッファ２２１に送信パケットがある場合（ステップＳ６０６：Ｙｅｓ）、ＢＵＳＹ信号が出力されているため、電圧制御部２２４は、高閾値用の基板バイアス電圧を出力する。すなわち、新たなパケットが受信されておらず、送信バッファ２２１内に現存するパケットが送信されれば、送信すべきパケットがなくなる。したがって、高速動作よりもリーク電流の低減を優先して、電圧制御部２２４は、高閾値用の基板バイアス電圧を出力する。
【００３６】
また、クロック制御部２２２は、インターコネクト１４の動作周波数より低いクロック、例えばインターコネクト１４の動作周波数の１／２の周波数のクロックを出力する（ステップＳ６０７）。すなわち、新たなパケットが受信されておらず、送信バッファ２２１内に現存するパケットが送信されれば、送信すべきパケットがなくなる。したがって、動作が遅くなっても支障がないため、クロックの動作周波数を低下させることにより、消費電力の低減を図ることができる。
【００３７】
その後、送信バッファ２２１は、クロック制御部２２２から出力されたクロックに基づきデータを送信する（ステップＳ５０８）。さらに、送信制御部２２３は、送信バッファ２２１から出力されるデータの最後方のクロックでＤａｔａ  Ｖａｌｉｄを出力するように制御する（ステップＳ６０９）。このような制御をする理由は、送信バッファ２２１内のＣＭＯＳ回路の閾値を高くすることにより、データ変化の立ち上りまたは立ち下りに時間を要し、値の確定が遅くなったデータを確実に取り込むためである。このあと、ステップＳ６０２に戻る。
【００３８】
図７は、実施例における通信ＩＦ１００の動作例を示すタイムチャートである。時刻Ｔ０では、初期状態であり、基板バイアス電圧選択信号はＨＩＧＨレベルであり、クロック制御部２２２は送信バッファクロックの出力を停止する。そのため、送信バッファ２２１内のＣＭＯＳ回路３０１−ｉのゲート電圧の閾値は高くなっており、かつ、クロックも停止している。したがって、消費電力の低減化を図ることができる。
【００３９】
時刻Ｔ１〜Ｔ２およびＴ１６〜Ｔ１８は、パケット処理部２０１において、パケットを受信しているが、まだ送信バッファ２２１に転送していない状態である。このとき、検出信号はＨＩＧＨレベル、ＢＵＳＹ信号はＬＯＷレベルであり、基板バイアス電圧選択信号はＨＩＧＨレベルとなり、クロック制御部２２２はクロックを停止する。従って、このような状態においても、消費電力の低減化を図ることができる。
【００４０】
時刻Ｔ３〜Ｔ４およびＴ１１〜Ｔ１２は、パケットを受信しており、かつ、送信バッファ２２１に送信パケットが存在する状態である。このとき、検出信号およびＢＵＳＹ信号はともにＨＩＧＨレベルであり、基板バイアス電圧選択信号はＬＯＷレベルとなり、クロック制御部２２２はインターコネクト１４の動作周波数と等しい送信バッファクロックを出力する。
【００４１】
また、送信バッファ２２１は、送信バッファクロックに基づきデータを出力し、送信制御部２２３は送信バッファ２２１から出力されるデータ毎にＤａｔａ  Ｖａｌｉｄ信号を出力する。このように、パケットが連続して受信される場合には、送信バッファ２２１内のＣＭＯＳ回路の閾値を低くし、動作周波数を高速とすることにより、スループットに影響を与えずにインターコネクト１４にパケットを送信することができる。
【００４２】
時刻Ｔ５〜Ｔ１０およびＴ１３〜Ｔ１５は、パケットは受信していないが、送信バッファ２２１に送信パケットが存在する状態である。このとき、検出信号はＬＯＷレベル、ＢＵＳＹ信号はＨＩＧＨレベルであり、基板バイアス電圧選択信号はＨＩＧＨレベルとなり、クロック制御部２２２はインターコネクト１４の動作周波数より低いクロック、この例ではインターコネクト１４の動作周波数の１／２の周波数のクロックを出力する。
【００４３】
送信バッファ２２１は送信バッファクロックに基づきデータを出力し、送信制御部２２３は、例えば時刻Ｔ７のように、Ｄａｔａ  Ｖａｌｉｄを送信バッファ２２１から出力されるデータの最後方のクロックで出力する。このように、パケットが連続して受信されない場合には、送信バッファ２２１内のＣＭＯＳ回路３０１−ｉのゲート電圧の閾値を高くし動作周波数を低速とすることにより、消費電力を低減することができる。
【００４４】
このように、実施例によれば、各通信インタフェース内でのみクロックの制御を行うため、他のブロックに影響を与えずに、パケットの到来に応じて消費電力を低減することができる。なお、本発明は上記の実施例に限られるものではなく、様々な変形例が含まれる。以下にその例を述べる。
【００４５】
図３において、例えば、基板バイアス用電圧をスイッチにより選択するのではなく、基板バイアス電圧選択信号の出力レベルに基づき基板バイアス用電圧を生成する構成としてもよい。
【００４６】
また、実施例では、連続してパケットを受信している状態において、クロック制御部２２２はインターコネクト１４の動作周波数と等しいクロックを出力する例を説明したが、通信インタフェースのリンク状態によってクロック制御部２２２の出力クロックの周波数を変更してもよい。
【００４７】
例えば、イーサネットＩＦ１０１において、１０００ＢＡＳＥ−Ｔでリンクしている場合は、インターコネクト１４の動作周波数と等しいクロック、１００ＢＡＳＥ−ＴＸでリンクしている場合は、インターコネクト１４の動作周波数の１／１０のクロック、１０ＢＡＳＥ−Ｔでリンクしている場合は、インターコネクト１４の動作周波数の１／１００のクロックを出力してもよい。
【００４８】
また、パケットは受信していないが、送信バッファ２２１に送信パケットが存在する状態においても、通信インタフェースのリンク状態に応じてクロック制御部２２２の出力クロックの周波数を決定してもよい。また、図３における基板バイアス用電圧は、ＰＭＯＳ用、ＮＭＯＳ用それぞれ３種類以上の電圧としてもよい。例えば、通信インタフェース１００のリンク状態により、基板バイアス用電圧を選択してもよい。
【００４９】
図８は、図２に示した送信バッファ２２１および電圧制御部２２４の詳細なハードウェア構成例２を示す回路図である。図８では、基板バイアス電圧が３種類の場合の例を示す。図８において、電圧制御部２２４は、ＰＭＯＳ用基板バイアス電圧として、低閾値用から順にＶｂｐ１、Ｖｂｐ２、Ｖｂｐ３を有する。電圧制御部２２４は、ＮＭＯＳ用基板バイアス電圧として、低閾値用から順にＶｂｎ１、Ｖｂｎ２、Ｖｂｎ３を有する。
【００５０】
電圧選択部８１０は、検出信号とＢＵＳＹ信号に基づき２ビットで構成される電圧選択信号を出力する。検出信号とＢＵＳＹ信号がともに出力されている場合は、電圧選択信号として「１１」を出力し、第１のスイッチ３１１および第２のスイッチ３１２はそれぞれ低閾値用基板バイアス電圧Ｖｂｐ１、Ｖｂｎ１を選択する。
【００５１】
このときＣＭＯＳ回路３０１−ｉは高速動作可能となる。ＢＵＳＹ信号のみが出力されている場合は、電圧選択信号として「０１」を出力し、第１のスイッチ３１１および第２のスイッチ３１２はそれぞれ、Ｖｂｐ２、Ｖｂｎ２を選択する。Ｖｂｐ２およびＶｂｎ２は、クロック制御部２２２が出力する低周波数のクロックでＣＭＯＳ回路３０１−ｉが動作できる閾値である。このとき、Ｖｂｐ１およびＶｂｎ１を選択する場合よりもリーク電流を低減することができる。
【００５２】
ＢＵＳＹ信号が出力されていない場合は、電圧選択部８１０は、電圧選択信号「００」を出力し、第１のスイッチ３１１および第２のスイッチ３１２はそれぞれ、最も閾値が高くなるような基板バイアス電圧Ｖｂｐ３、Ｖｂｎ３を選択する。このときＣＭＯＳ回路３０１−ｉへのクロックは停止しているため、値を保持できるだけの閾値とすればよく、リーク電流をより低減することが可能となる。
【００５３】
図９は、図２に示した送信バッファ２２１および電圧制御部２２４の詳細なハードウェア構成例３を示す回路図である。図９において、電圧選択部８１０に検出信号、ＢＵＳＹ信号に加え、通信ＩＦ１００のリンク状態を示すリンク情報が入力される。例えば、通信ＩＦ１００がイーサネットＩＦ１０１の場合、リンク情報はリンク未確立状態、１０ＢＡＳＥ−Ｔリンク状態、１００ＢＡＳＥ−ＴＸリンク状態、１０００ＢＡＳＥ−Ｔリンク状態の４パターンを示す。ＰＭＯＳ用基板バイアス電圧は、Ｖｂｐ１、Ｖｂｐ２、Ｖｂｐ３、Ｖｂｐ４から選択され、Ｖｂｐ１を選択すると最も閾値が低くなり、Ｖｂｐ４を選択すると最も閾値が高くなる。
【００５４】
ＮＭＯＳ用基板バイアス電圧は、Ｖｂｎ１、Ｖｂｎ２、Ｖｂｎ３、Ｖｂｎ４から選択され、Ｖｂｎ１を選択すると最も閾値が低くなり、Ｖｂｎ４を選択すると最も閾値が高くなる。電圧選択部８１０は、検出信号、ＢＵＳＹ信号およびリンク情報に基づいて選択論理により電圧選択信号を出力する。
【００５５】
図１０は、電圧選択部８１０における選択論理を示す説明図である。これにより、ＣＭＯＳ回路３０１−ｉへ供給するクロックの周波数に応じてより細かくリーク電流の低減が可能になる。
【００５６】
以上に説明したように、本発明の実施例によれば、通信インタフェースの動作状態に応じて電流と消費電力を適切に調整することができる。すなわち、パケットが連続して受信される場合には、送信バッファ２２１内のＣＭＯＳ回路３０１−ｉのゲート電圧の閾値を低くし、動作周波数を高速とすることにより、スループットに影響を与えずにインターコネクト１４にパケットを送信することができる。
【００５７】
また、パケットが連続して受信されない場合には、送信バッファ２２１内のＣＭＯＳ回路３０１−ｉのゲート電圧の閾値を高くし動作周波数を低速とすることにより、消費電力を低減することができる。さらに、送信バッファ２２１にパケットがない場合、クロックの供給を停止することにより、消費電力を低減することができる。
【００５８】
また、通信インタフェース内で基板バイアス電圧とクロックを制御するため、他のブロックに影響を与えずに、パケットの到来に応じて消費電力の低減を図ることができる。
【００５９】
また、本実施例では、送信バッファ２２１は、送信バッファ２２１にパケットが存在する場合にはＢＵＳＹ信号を出力し、存在しない場合には出力しない構成としたが、送信バッファ２２１内のパケットの残存量が所定量を超えた場合にはＢＵＳＹ信号を出力し、所定量以下となった場合には出力しないこととしてもよい。
【００６０】
以上、本発明を添付の図面を参照して詳細に説明したが、本発明はこのような具体的構成に限定されるものではなく、添付した請求の範囲の趣旨内における様々な変更及び同等の構成を含むものである。
【符号の説明】
【００６１】
１０  通信装置用ＳｏＣ
１１  ＣＰＵ
１２  メモリコントローラ
１３  ＲＯＭコントローラ
１００  通信インタフェース
２０１  パケット処理部
２１１  パケット検出部
２１２  プロトコル処理部
２２１  送信バッファ
２２２  クロック制御部
２２３  送信制御部
２２４  電圧制御部
３０１−ｉ  ＣＭＯＳ回路
【図１】
2014175969.tif 000003
【図２】
2014175969.tif 000004
【図３】
2014175969.tif 000005
【図４】
2014175969.tif 000006
【図５】
2014175969.tif 000007
【図６】
2014175969.tif 000008
【図７】
2014175969.tif 000009
【図８】
2014175969.tif 000010
【図９】
2014175969.tif 000011
【図１０】
2014175969.tif 000012