説明

半導体集積回路装置

【課題】バス停止するモジュールをできるだけ少なくし、これにより性能低下を抑えた半導体集積回路装置を提供する。
【解決手段】バス停止要求制御部16からモジュール別バス停止要求信号MRが発生すると、バススレーブとなるモジュールに接続されたバス停止制御部17は、例えば依存関係設定レジスタ18の情報に基づいてバススレーブとの依存関係があるバスマスタとなるモジュールを判定する。依存関係があるモジュールに事前バス停止要求信号を出力して該モジュールを停止させる。依存関係があるモジュールのバス停止が完了したことを示すモジュール別バス停止完了信号MAを受け取ると、バス停止制御部17は、動作停止対象のモジュールにモジュール別バス停止リクエスト信号RQを出力する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、半導体集積回路装置におけるモジュールのバス停止技術に関し、特に、低消費電力制御に伴うモジュールのバス停止に有効な技術に関する。
【背景技術】
【0002】
携帯端末などに広く用いられているSoC(System on Chip)などの半導体集積回路装置における低電力化は、必須の技術となりつつある。
【0003】
この種の半導体集積回路装置においては、低電力化を行うパワーマネージメント制御の際に、該半導体集積回路装置内の該当するモジュールのバス使用を停止させる、いわゆるモジュールのバス停止を行うケースがある。
【0004】
このバス停止は、パワーマネージメント制御の前にバス停止制御部が行い、例えば、バスマスタモジュール(例えば、CPUなど)に対するバス停止要求信号とバスマスタモジュールからのバス停止完了信号のハンドシェイクを行う。
【0005】
各バスマスタモジュールは、バス停止制御部からのバス停止要求信号を受け取ると、該バスマスタモジュールが発行した全てのバストランザクション(バスリクエスト)を完了した後にバス停止完了信号を発行する。バス停止制御部は、全ての停止制御対象のバスマスタモジュールからバス停止完了信号を受け取った後、バス停止完了信号をパワーマネージメント制御部に発行する。
【0006】
この種の低電力化に伴うバス停止制御技術については、例えば、コンピュータシステム動作中のバスクロックのダイナミックな停止/周波数低減を行うことによりシステム全体の消費電力を低減するもの(特許文献1参照)、低電力モードへの移行の判定に応答して、アービタにバス要求を与え、そのバス要求に応答してアービタに関連するバスマスタに与えられたクロックをディスエーブルするもの(特許文献2参照)、およびレジスタの値に応じて、マスタコントローラが、セレクタによるバス要求と各優先度のアービトレーションシーケンサとの対応を切り替えるもの(特許文献3参照)などがある。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2002−7316号公報
【特許文献2】特表2006−508409号公報
【特許文献3】特開2000−215157号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
ところが、上記のような半導体集積回路装置におけるバス停止制御技術では、次のような問題点があることが本発明者により見出された。
【0009】
バススレーブとなるモジュールのバス停止を行うにあたり、まずはバスマスタとなるモジュールはその発行しているバストランザクションを完了させることでバスマスタとなるモジュールのバス停止を行う。なぜならバストランザクションを完了しないうちにバススレーブとなるモジュールのバス停止をすると、バスマスタのバストランザクションがハングアップするからである。
【0010】
ところが近年の大規模化するSoCなどの半導体装置製品は、高性能化のために多数のバスで構成されかつバスマスタとなるモジュールの数も激増している。このような状況においてバスマスタのハングアップを防止するため、バススレーブとなるモジュールのバス停止前に、バスマスタとなるすべてのモジュールについてバストランザクションを完了させることはハードウェア設計上簡単な構成である。しかしながらこの場合、必要以上にバスマスタにバス停止を実施してしまうことがありうる。これは半導体集積回路装置全体の性能を下げることにもつながる。
【0011】
よって本発明の目的は、バス停止するモジュールをできるだけ少なくし、これにより性能低下を抑えた半導体集積回路装置を提供することにある。
【0012】
本発明の前記ならびにそのほかの目的と新規な特徴については、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【0013】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
【0014】
一実施の形態によれば、半導体集積回路装置は、バスマスタとなる複数のモジュールと、バススレーブとなるモジュールと、このバススレーブとなるモジュールのバス使用を停止する要求をする第1の制御信号が入力された際に、バスマスタとなるモジュールの動作を先に停止させた後、バススレーブとなるモジュールにバス停止を指示する信号を出力するバス動作制御部とを有する。
【0015】
このバス動作制御部は、バススレーブに対するバスマスタとなるモジュールを判定し、その判定されたモジュールに対してバス停止を指示する第2の制御信号を出力する。そして、そのバスマスタとなるモジュールのバス停止が完了した後に、バススレーブとなるモジュールにバス停止を指示する。
【発明の効果】
【0016】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【0017】
モジュールのバス停止に伴う処理能力の低下を低減させることができる。
【図面の簡単な説明】
【0018】
【図1】本発明の一実施の形態による半導体集積回路装置における構成の一例を示すブロック図である。
【図2】図1の半導体集積回路装置に設けられたCPUに対応するバス停止制御部、および依存関係設定レジスタの接続構成の一例を示す説明図である。
【図3】図1の半導体集積回路装置に設けられた依存関係設定レジスタのデータ内容を示す説明図である。
【図4】図3の依存関係設定レジスタにおけるレジスタ設定の一例示す説明図である。
【図5】図1の半導体集積回路装置に設けられたバス停止制御部によるバス停止処理の動作の一例を示すフローチャートである。
【図6】図1の半導体集積回路装置に設けられた内部メモリにおける動作クロックの周波数を変更させる際のバス停止処理に注目した説明図である。
【図7】図6における各部の信号タイミングを示すタイミングチャートである。
【発明を実施するための形態】
【0019】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【0020】
図1は、本発明の一実施の形態による半導体集積回路装置における構成の一例を示すブロック図、図2は、図1の半導体集積回路装置に設けられたCPUに対応するバス停止制御部、および依存関係設定レジスタの接続構成の一例を示す説明図、図3は、図1の半導体集積回路装置に設けられた依存関係設定レジスタのデータ内容を示す説明図、図4は、図3の依存関係設定レジスタにおけるレジスタ設定の一例示す説明図、図5は、図1の半導体集積回路装置に設けられたバス停止制御部によるバス停止処理の動作の一例を示すフローチャート、図6は、図1の半導体集積回路装置に設けられた内部メモリにおける動作クロックの周波数を変更させる際のバス停止処理に注目した説明図、図7は、図6における各部の信号タイミングを示すタイミングチャートである。
【0021】
〈実施の形態の概要〉
本実施の形態の概要は、バスマスタとなる複数のモジュール(CPU2、CPU3、グラフィックスコア4)と、バススレーブとなるモジュール(L2キャッシュ5、ダイレクトメモリアクセスコントローラ6、USBインタフェース7、外部メモリインタフェース8、内部メモリ9)と、バス動作制御部(バス停止制御部17、依存関係設定レジスタ18)とを有する半導体集積回路装置からなる。
【0022】
また、バス動作制御部は、バススレーブとなるモジュールの動作を停止させる第1の制御信号(モジュール別バス停止要求信号MR)が入力された際に、複数のバスマスタのなかからバススレーブに対するバスマスタとなるモジュールを判定し、その判定されたバスマスタとなるモジュールに対して、バス停止を指示する第2の制御信号(事前バス停止要求信号ABS)を出力し、バスマスタとなるモジュールのバス停止が完了した後に、バススレーブとなるモジュールにバス停止を指示する第3の制御信号(モジュール別バス停止リクエスト信号RQ)を出力する。
【0023】
以下、上記した概要に基づいて、実施の形態を詳細に説明する。
【0024】
〈半導体集積回路装置の構成〉
本実施の形態1において、半導体集積回路装置1は、例えば、SoCを構成し、例えば携帯電話のベースバンドICに用いられる。半導体集積回路装置1は、図1に示すように、CPU(Central Processing Unit)2、CPU3、グラフィックスコア4、L2キャッシュ5、ダイレクトメモリアクセスコントローラ(DMAC)6、USBインタフェース7、外部メモリインタフェース8、内部メモリ9からなる各モジュール、パワーマネージメント部10、およびバス制御部11を有する。
【0025】
CPU2、CPU3、グラフィックスコア4、ならびにL2キャッシュ5は、高速コアバス12を介して相互に接続されている。グラフィックスコア4、L2キャッシュ5、ダイレクトメモリアクセスコントローラ6、USBインタフェース7、外部メモリインタフェース8、内部メモリ9、およびパワーマネージメント部10は、メインバス13を介して相互に接続されている。
【0026】
高速コアバス12は、高速通信が可能なバスであり、メインバス13は、高速コアバス12に比べて低速な通信が行われるバスである。半導体集積回路装置1には、周辺機器であるUSB(Universal Serial Bus)デバイス14、および外部メモリ15が外部端子を介して外部接続されている。
【0027】
よって、高速コアバス12に関してL2キャッシュ5はバススレーブとなるモジュールであり、CPU2、CPU3、グラフィクスコア4はそのバスマスタとなるモジュールである。メインバス13に関しては、USBインタフェース7、外部メモリインタフェース8及び内部メモリ9はバススレーブとなるモジュールであり、L2キャッシュ5、ダイレクトメモリアクセスコントローラ6及びグラフィクスコア4はそのバスマスタとなるモジュールである。またダイレクトメモリアクセスコントローラ6はバススレーブでもあり、そのバスマスタはL2キャッシュ5およびグラフィクスコア4である。CPU2、CPU3、グラフィクスコア4、L2キャッシュ5及びダイレクトメモリアクセスコントローラ6は、バスマスタとなるモジュールである。L2キャッシュ5、ダイレクトメモリアクセスコントローラ6、USBインタフェース7、外部メモリインタフェース8及び内部メモリ9はバススレーブをなすモジュールである。L2キャッシュ5及びダイレクトメモリアクセスコントローラ6は、バスマスタ及びバススレーブの双方の機能を有したモジュールといえる。
【0028】
外部メモリ15は、例えば、DDR−SDRAM(Double Data Rate Synchronous Dynamic Random Access Memory)などの揮発性半導体メモリなどからなる。
【0029】
CPU2,3は、ユーザプログラムに基づいて、半導体集積回路装置1における動作を行う。グラフィックスコア4は、2次元、または3次元のグラフィック処理を行う。L2キャッシュ5は、CPU2,3の2次キャッシュとして用いられ、CPU2,3などに用いられるデータなどを蓄積する。なおCPU2,3の各々は1次キャッシュを有している。
【0030】
ダイレクトメモリアクセスコントローラ6は、外部接続された外部メモリ15や内部メモリ9などに対してCPU2,3を介することなく直接アクセスしてデータの書き込み/読み出し制御を行う。
【0031】
USBインタフェース7は、USBデバイス14とのインタフェース回路であり、外部メモリインタフェース8は、外部メモリ15とのインタフェース回路である。内部メモリ9は、例えば、フラッシュメモリやROM(Read Only Memory)などの不揮発性メモリ、あるいはRAM(Random Access Memory)などからなり、CPU2,3などが用いるユーザプログラムなどが格納される。
【0032】
パワーマネージメント部10は、半導体集積回路装置1における低消費電力化を制御する。パワーマネージメント部10は、例えば、USBインタフェース7、外部メモリインタフェース8、および内部メモリ9などのバススレーブとなるモジュールにそれぞれ対応づけられた複数の制御レジスタ101を有しており、該制御レジスタに格納された情報に基づいて、バス制御部11に対応するモジュールの省電力化を制御する。
【0033】
パワーマネージメント部10による省電力制御の内容は、例えば、モジュールへのクロック供給の停止、モジュールの動作周波数(クロック)の変更、ならびにモジュールへの電源供給の停止などである。パワーマネージメント部10は、低消費電力対象となるモジュールを停止させて、上記した3つの省電力制御の内容から、最適な低消費電力制御の内容を選択して実行する。
【0034】
バス制御部11は、バス停止要求制御部16、バス停止制御部171〜178、および依存関係設定レジスタ181〜188を有する。バス停止制御部171〜178、ならびに依存関係設定レジスタ181〜188は、半導体集積回路装置1における複数のモジュール(CPU2、CPU3、グラフィックスコア4、L2キャッシュ5、ダイレクトメモリアクセスコントローラ6、USBインタフェース7、外部メモリインタフェース8、内部メモリ9)にそれぞれ対応して設けられている。
【0035】
ここで、依存関係設定レジスタは、必ずしもすべてのモジュールに対応するように設けるのではなく、バススレーブとなるモジュール(図1のL2キャッシュ5、ダイレクトメモリアクセスコントローラ6、USBインタフェース7、外部メモリインタフェース8、および内部メモリ9)に設け、バスマスタとなるモジュール(CPU2、CPU3、グラフィックスコア4)には設けない構成としてもよい。
【0036】
バス停止要求制御部16は、パワーマネージメント部10から出力されるバス停止要求信号BSRが入力されるように接続されていると共に、バス停止要求制御部16から出力されるバス停止完了信号BSAがパワーマネージメント部10に入力されるように接続されている。
【0037】
バス停止要求信号BSRは、バス停止要求を行う信号であり、バス停止の対象となるモジュールがどれであるかを示す情報も含まれている。バス停止要求制御部16は、パワーマネージメント部10から出力されるバス停止要求信号BSRに基づいて、該当するモジュールのバス停止制御を行う。
【0038】
また、バス停止完了信号BSAは、バス停止要求制御部16が該当するモジュールを停止させた際に発行する信号である。パワーマネージメント部10は、バス停止完了信号BSAが入力されたことにより、対象モジュールがバス停止したと判断し、対象モジュールに対して前述した省電力制御(モジュールのクロック供給の停止、モジュールの動作周波数の変更、あるいはモジュールへの電源供給の停止のいずれか)を実行する。
【0039】
バス停止制御部171〜178には、バス停止要求制御部16から出力されるモジュール別バス停止要求信号MR1〜MR8がそれぞれ入力されるように接続されている。また、バス停止要求制御部16、およびバス停止制御部171〜178には、各々のモジュール(CPU2、CPU3、グラフィックスコア4、L2キャッシュ5、ダイレクトメモリアクセスコントローラ6、USBインタフェース7、外部メモリインタフェース8、内部メモリ9)から出力されるモジュール別バス停止完了信号MA1〜MA8がそれぞれ入力されるように接続されている。
【0040】
なお、図1では、簡略化のために省略したが、モジュール別バス停止完了信号は、対応するモジュールに接続されたバス停止制御部だけではなく、すべてのバス停止制御部にも入力されるように接続されている。例えば、CPU2から出力されるモジュール別バス停止完了信号MA1は、バス停止要求制御部16、およびバス停止制御部171だけでなく、バス停止制御部172〜178にも入力されるようにそれぞれ接続されている。
【0041】
さらに、各々のモジュール(CPU2、CPU3、グラフィックスコア4、L2キャッシュ5、ダイレクトメモリアクセスコントローラ6、USBインタフェース7、外部メモリインタフェース8、内部メモリ9)には、バス停止制御部171〜178から出力されるモジュール別バス停止リクエスト信号RQ1〜RQ8がそれぞれ入力されるように接続されている。
【0042】
モジュール別バス停止要求信号MR1〜MR8は、バス停止させたいモジュールに対してバス停止を要求する信号であり、モジュール別バス停止完了信号MA1〜MA8は、バス停止要求制御部16が指定した対象モジュールのバス停止が完了したことを知らせる信号である。
【0043】
モジュール別バス停止リクエスト信号RQ1〜RQ8は、バス停止要求制御部16から出力されるモジュール別バス停止要求信号MR1〜MR8に基づいて、それぞれ対応するモジュールをバス停止させる信号である。
【0044】
また、バス停止制御部171〜178には、他のバス停止制御部から出力される事前バス停止要求信号ABSがそれぞれ出力される構成となっている。図1では、簡略化するために省略している。
【0045】
例えば、バス停止制御部171からは、他のバス停止制御部172〜178に事前バス停止要求信号ABSが入力されるようにそれぞれ接続されるとともに、他のバス停止制御部172〜178から出力された事前バス停止要求信号ABSがバス停止制御部171に入力されるようにそれぞれ接続されている。
【0046】
事前バス停止要求信号ABSは、対象モジュールと依存関係のあるモジュールがどれであるかの情報を含み、対象モジュールよりも先に依存関係のあるモジュールをバス停止させるための信号である。
【0047】
また、依存関係とは、バス停止要求制御部16が指定した対象モジュールがアクセスする他のモジュールであり、対象モジュールはバススレーブとなり、アクセスするモジュールは、対象モジュールにアクセスするモジュールはバスマスタとなる。
【0048】
〈バス停止制御部、および依存関係設定レジスタの接続構成例〉
図2は、CPU2に対応するバス停止制御部171、および依存関係設定レジスタ181の接続構成を示す説明図である。
【0049】
図示するように、バス停止制御部171には、依存関係設定レジスタ181が接続されている。また、バス停止制御部171には、他のモジュール(CPU3、グラフィックスコア4、L2キャッシュ5、ダイレクトメモリアクセスコントローラ6、USBインタフェース7、外部メモリインタフェース8、内部メモリ9)から出力されたモジュール別バス停止完了信号MA2〜MA8が入力される。
【0050】
さらに、CPU2から出力されるモジュール別バス停止完了信号MA1は、バス停止要求制御部16、ならびにバス停止制御部171〜178にそれぞれ入力されるように接続されている。また、バス停止制御部171から出力されるモジュール別バス停止リクエスト信号RQ1はCPU2に入力されるように接続されている。
【0051】
また、バス停止制御部171から出力される事前バス停止要求信号ABSは、他のバス停止制御部172〜178にそれぞれ入力されるように接続されるとともに、他のバス停止制御部172〜178から出力される事前バス停止要求信号ABSがバス停止制御部171にそれぞれ入力されるように接続されている。
【0052】
なお、図2では、モジュールがCPU2として、バス停止制御部171、および依存関係設定レジスタ181の接続構成について説明したが、他のモジュール(CPU3、グラフィックスコア4、L2キャッシュ5、ダイレクトメモリアクセスコントローラ(DMAC)6、USBインタフェース7、外部メモリインタフェース8、内部メモリ9)にそれぞれ対応するバス停止制御部172〜178、および依存関係設定レジスタ182〜188の接続構成についても同様である。
【0053】
〈依存関係設定レジスタのデータ内容、およびデータ構成例〉
図3は、依存関係設定レジスタ181(〜188)のデータ内容を示す説明図であり、図4は、依存関係設定レジスタ181(〜188)におけるレジスタ設定の一例示す説明図である。
【0054】
依存関係設定レジスタ181(〜188)は、例えば、8ビットのデータレジスタD0〜D7を保持する構成を有する。データレジスタD0はCPU2、データレジスタD1はCPU3、データレジスタD2はグラフィックスコア4、データレジスタD3はL2キャッシュ5、データレジスタD4はダイレクトメモリアクセスコントローラ6、データレジスタD5はUSBインタフェース7、データレジスタD6は外部メモリインタフェース8、そしてデータレジスタD7は内部メモリ9にそれぞれ対応する。そして、依存関係のあるモジュールに対応するデータレジスタに’1’が格納されることにより、依存関係があることが示される。
【0055】
依存関係が示される情報は、バススレーブとなるモジュール(L2キャッシュ5、ダイレクトメモリアクセスコントローラ6、USBインタフェース7、外部メモリインタフェース8、および内部メモリ9)のみに格納されている。また、依存先のないバスマスタとなるモジュール(CPU2、CPU3、グラフィックスコア4)に対応する依存関係設定レジスタ181〜183のデータレジスタD0〜D7には、すべて’0’の情報が格納されている。
【0056】
例えば、USBインタフェース7に接続される依存関係設定レジスタ186の場合には、図4に示すように、データレジスタD3,D4に’1’が格納されているので、USBインタフェース7は、L2キャッシュ5、およびダイレクトメモリアクセスコントローラ6と依存関係があることになる。言い換えれば、L2キャッシュ5、およびダイレクトメモリアクセスコントローラ6は、バススレーブであるUSBインタフェース7のバスマスタとなる。
【0057】
また各バススレーブ(L2キャッシュ5、ダイレクトメモリアクセスコントローラ6、USBインタフェース7、外部メモリインタフェース8及び内部メモリ9)において、そのバススレーブにアクセス可能なすべてのバスマスタをバススレーブに依存させる必要はない。例えばUSBインタフェース7にアクセス可能なバスマスタは、L2キャッシュ5、ダイレクトメモリアクセスコントローラ6及びグラフィクスコア4であるが、そのうち依存関係レジスタ186により特定されるバスマスタは、L2キャッシュ5及びダイレクトメモリアクセスコントローラ6である。
【0058】
依存関係設定レジスタ181〜188の各々は揮発性のメモリ装置で構成され、CPU2、CPU3またはその双方によって依存関係を示す情報が書き込まれる。例えば半導体集積回路装置の電源投入時の初期設定において依存関係設定レジスタに依存関係を示す情報が設定される。この依存関係設定レジスタは不揮発性のメモリ装置で構成されてもよい。
【0059】
また依存関係レジスタに記憶される情報は半導体集積回路装置の動作時は常に固定としてもよいが、半導体集積回路装置1の動作状態(動作シーン別)に応じてソフトウェアによって動的に書き換えるようにしてもよい。これにより、より詳細なモジュールのバス停止制御を行うことが可能となり、半導体集積回路装置1のパフォーマンスを向上させることができる。
【0060】
〈バス制御部の動作例〉
次に、本実施の形態におけるバス制御部11の動作について説明する。
【0061】
図5は、バス停止制御部(171〜178)によるバス停止処理の動作の一例を示すフローチャートである。
【0062】
バス停止制御部(171〜178)は、バス停止要求制御部16から、モジュール別バス停止要求信号(MR1〜MR8)が発生したか否か、または他のバス停止制御部(171〜178)から事前バス停止要求信号ABSが発生したか否かを判定する(ステップS101)。
【0063】
モジュール別バス停止要求信号(MR1〜MR8)、または事前バス停止要求信号ABSのいずれかが発生すると、バス停止対象のモジュールに接続されたバス停止制御部(171〜178)は、依存関係設定レジスタ(181〜188)に格納されている情報を読み出し、該当するモジュール(L2キャッシュ5、ダイレクトメモリアクセスコントローラ6、USBインタフェース7、外部メモリインタフェース8、または内部メモリ9)に依存関係があるか否かを判定する(ステップS102)。
【0064】
依存関係がある場合、依存関係があるモジュールに対して事前バス停止要求信号ABSを出力する(ステップS103)。たとえば、内部メモリ9の場合、図4に示すように、L2キャッシュ5のみと依存関係があるので、内部メモリ9に接続されているバス停止制御部178は、L2キャッシュ5に接続されているバス停止制御部174に対して事前バス停止要求信号ABSを出力する。
【0065】
この事前バス停止要求信号ABSは、前述したように、バス停止要求制御部16がバス停止を要求したモジュールよりも先に依存関係のあるモジュールをバス停止させるための信号である。
【0066】
事前バス停止要求信号ABSを受け取ったバス停止制御部は、接続されているモジュールのバス停止制御を行い、依存関係のあるモジュールのバス停止が完了すると、モジュール別バス停止完了信号MAを出力する。
【0067】
事前バス停止要求信号ABSを出力したバス停止制御部がモジュール別バス停止完了信号を受け取ると(ステップS104)、バス停止対象となる事前バス停止要求信号ABSを出力したバス停止制御部に接続されたモジュールに対してモジュール別バス停止リクエスト信号RQをアサートする(ステップS105)。
【0068】
アサートされたモジュール別バス停止リクエスト信号RQに基づいて、バス停止対象のモジュールはバスの使用を停止する。このときモジュール全体の動作が停止されてもよく、バスの使用が停止されていればモジュールの一部が動作していてもよい。特にバスマスタとなるモジュールでは、発行しているバストランザクションを完了した後にバス使用が停止される。バス停止がなされるとモジュールからモジュール別バス停止完了信号MAが出力される(ステップS106)。モジュール別バス停止リクエスト信号RQがアサートされたときモジュールはバス停止している場合は、実質的な処理を行うことなくモジュールはモジュール別バス停止完了信号MAを出力することもある。
【0069】
以上によりモジュールのバス停止処理が終了となる。
【0070】
前述した内部メモリ9の場合には、バス停止制御部174が受け取った事前バス停止要求信号ABSに基づいて、L2キャッシュ5の動作を停止させ、その後、バス停止制御部174から該L2キャッシュ5がバス停止したことを示すモジュール別バス停止完了信号が出力される。
【0071】
モジュール別バス停止完了信号を受けて、バス停止制御部178は、内部メモリ9に対してモジュール別バス停止リクエスト信号RQ8を出力する。これにより、内部メモリ9の動作が停止し、モジュール別バス停止完了信号MAが出力され、内部メモリ9がバス停止したことをバス停止要求制御部16が認識するとバス停止処理が終了となる。
【0072】
このように、バス停止制御部171〜178は、バス停止要求制御部16によってバス停止されるモジュール(バススレーブ)が、他のモジュール(バスマスタ)と依存関係がある場合には、依存関係があるモジュールを先にバス停止させた後、バス停止要求制御部16からバス停止要求のあったモジュールをバス停止する制御を行う。
【0073】
これにより、バスマスタのモジュールがバススレーブのモジュールに対してバスリクエストした直後などにバススレーブのモジュールがバス停止されることがなくなり、バススレーブのモジュールからの応答をバスマスタのモジュールが待ち続けることによって生じるハングアップなどを防止することができる。
【0074】
そのうえで、バススレーブとなるモジュールがバス停止の処理を開始する前に、バス停止をすべきモジュールが判別され、その判別されたバスマスタのみのバス停止の処理が行われるため、必要以上のバスマスタがバス停止されることを防ぐ。特に書込み可能な記憶装置(揮発性メモリあるいは不揮発性メモリ)に記憶した情報に基づきそのバス停止すべきバスマスタを指定することで、必要に応じてバス停止すべきバスマスタを変更することも可能である。
【0075】
〈省電力制御の際のバス制御におけるバス停止制御〉
続いて、バス制御部11におけるバス停止制御処理の詳細について説明する。
【0076】
特にバスが階層化するなどバス構成が複雑化した半導体集積回路装置においては、バスマスタ機能とバススレーブ機能とを兼ね備えたモジュールが存在する。例えば図1においては、L2キャッシュ5及びダイレクトメモリアクセスコントローラ6がこれに該当する。このようなモジュールが存在する場合、あるバスマスタとなるモジュール(第1のモジュール)が自身の発行するバスリクエストを完了させるために、バスマスタ機能とバススレーブ機能とを兼ね備えたモジュール(第2のモジュール)がさらに新たなバスリクエストを発行する処理が必要となることがある。このときバス停止制御部がバス停止要求を発行したとき、第1のモジュール、第2のモジュールのバス停止が第1のモジュールよりも先に完了してしまうと、第1のモジュールは、第2のモジュールからの応答を待ち続けることになり、第1のモジュールのバス停止制御が完了せずに、半導体集積回路装置がハングアップに陥ってしまう可能性が生じることになる。
【0077】
このような、ハングアップを回避するためには、ハングアップが発生する条件を洗い出し、ハングアップが発生しない順序でバス停止制御を行うようにソフトウェア(プログラム)設計を行うことが一般的である。しかしながら、バス停止制御に伴う上述したソフトウェア設計を行う際には、多くの工数が必要となり、開発コストも大きくなってしまうという問題がある。さらに、バス構成が異なる製品設計の際は、再度ハングアップが発生する条件を見直し、バス停止制御におけるソフトウェアの修正が必要となってしまうことになる。
【0078】
この実施の形態は、バスマスタ機能とバススレーブ機能とを兼ね備えたモジュールが存在する場合でも、適正な順序でモジュールのバス停止を行うハードウェア構成を提供する。以下ではバスマスタ機能とバススレーブ機能とを兼ね備えたモジュールが存在する場合のモジュールのバス停止制御を説明する。
【0079】
ここでは、図1におけるパワーマネージメント部10が省電力制御により、内部メモリ9における動作クロックの周波数を変更させる場合のバス停止処理について説明する。
【0080】
図6は、内部メモリ9における動作クロックの周波数を変更させる際のバス停止処理に注目した説明図であり、図7は、図6における各部の信号タイミングを示すタイミングチャートである。
【0081】
図6は、内部メモリ9における動作クロックの周波数を変更させる際のバス停止処理に関係するブロックのみを示したものであり、図1から、バス停止要求制御部16、バス停止制御部178,174,171、依存関係設定レジスタ188,184,181、内部メモリ9、L2キャッシュ5、およびCPU2の接続関係のみを抜き出したものである。
【0082】
なお、図4からL2キャッシュ5と依存関係があるのは、モジュールはCPU2,3であるが、図6においては、CPU2と同様の接続構成であるので、CPU2、バス停止制御部172、依存関係設定レジスタ182を省略している。
【0083】
また、図7は、上方から下方にかけて、パワーマネージメント部10(図1)が発行するバス停止要求信号BSR、バス停止制御部178から出力されるモジュール別バス停止リクエスト信号RQ8、内部メモリ9から出力されるモジュール別バス停止完了信号MA8、バス停止制御部174から出力される事前バス停止要求信号ABS、バス停止制御部174から出力されるモジュール別バス停止リクエスト信号RQ4、L2キャッシュ5から出力されるモジュール別バス停止完了信号MA4、バス停止制御部171から出力される事前バス停止要求信号ABS、バス停止制御部171から出力されるモジュール別バス停止リクエスト信号RQ1、CPU2から出力されるモジュール別バス停止完了信号MA1、バス停止制御部172から出力される事前バス停止要求信号ABS、バス停止制御部172から出力されるモジュール別バス停止リクエスト信号RQ2、およびCPU3から出力されるモジュール別バス停止完了信号MA2における信号タイミングをそれぞれ示している。
【0084】
まず、パワーマネージメント部10から、省電力制御により内部メモリ9における動作クロックの周波数を変更させるために、該内部メモリ9のバス停止を要求するバス停止要求信号BSRが出力される(図7、時間t1)。
【0085】
バス停止要求制御部16は、バス停止要求信号BSRを受けて、内部メモリ9にバス停止を要求するモジュール別バス停止要求信号MR8をバス停止制御部178に出力する。モジュール別バス停止要求信号MR8が入力されると、バス停止制御部178は、依存関係設定レジスタ188の情報を読み出し、内部メモリ9と依存関係のあるモジュール(内部メモリ9のバスマスタとなるモジュール)があるか否かを判断する。
【0086】
この場合、図4から、L2キャッシュ5と依存関係があるので、バス停止制御部178は、バス停止制御部174に事前バス停止要求信号ABSを出力する(図7、時間t2)。バス停止制御部174は、事前バス停止要求信号ABSが入力されると、依存関係設定レジスタ184の情報を読み出し、L2キャッシュ5と依存関係のあるモジュール(内部メモリ9のバスマスタとなるモジュール)があるか否かを判断する。
【0087】
図4から、L2キャッシュ5と依存関係のあるモジュールは、CPU2,3であるので、バス停止制御部174は、バス停止制御部171、および図示しないバス停止制御部172に事前バス停止要求信号ABSをそれぞれ出力する(図7、時間t3)。
【0088】
バス停止制御部171,172は、事前バス停止要求信号ABSを受けて、依存関係設定レジスタ181,182の情報をそれぞれ読み出し、CPU2,3と依存関係があるモジュールがあるか否かを判断する。
【0089】
バスマスタであるCPU2,3に対応する依存関係設定レジスタ181,182には、前述したように依存関係の情報が格納されていないので、依存関係設定レジスタ181,182の情報をそれぞれ読み出す動作を省略するようにしてもよい。
【0090】
この場合、図4から、CPU2,3と依存関係があるモジュールはないので、バス停止制御部171,172は、CPU2,3に対して、バス停止を要求するモジュール別バス停止リクエスト信号RQ1,RQ2をそれぞれ出力する(図7、時間t4)。
【0091】
CPU2,3は、モジュール別バス停止リクエスト信号RQ1,RQ2がそれぞれ入力されるとバス停止を行い、バス停止を完了したことを示すモジュール別バス停止完了信号MA1,MA2をバス停止制御部171,172に出力する(図7、時間t5,t6)。
【0092】
モジュール別バス停止完了信号MA1,MA2は、バス停止制御部174にも入力され、該バス停止制御部174は、L2キャッシュ5と依存関係のあるCPU2,3がバス停止したこと判断し、L2キャッシュ5に対してモジュール別バス停止リクエスト信号RQ4を出力する(図7、時間t7)。
【0093】
L2キャッシュ5は、モジュール別バス停止リクエスト信号RQ4が入力されるとバス停止を行い、バス停止を完了したことを示すモジュール別バス停止完了信号MA4を出力する(図7、時間t8)。
【0094】
モジュール別バス停止完了信号MA4は、バス停止制御部174に入力されると共に、バス停止制御部178にも入力される。バス停止制御部178は、内部メモリ9と依存関係のあるL2キャッシュ5がバス停止したこと判断し、内部メモリ9に対してモジュール別バス停止リクエスト信号RQ8を出力する(図7、時間t9)。
【0095】
内部メモリ9は、モジュール別バス停止リクエスト信号RQ8が入力されるとバス停止を行い、バス停止を完了したことを示すモジュール別バス停止完了信号MA8を出力する(図7、時間t10)。
【0096】
内部メモリ9から出力されたモジュール別バス停止完了信号MA8は、バス停止要求制御部16に入力される。それによって、バス停止要求制御部16は、内部メモリ9のバス停止が完了したと判断し、パワーマネージメント部10に対してバス停止完了信号BSAを出力する。
【0097】
パワーマネージメント部10は、バス停止完了信号BSAを受けて、内部メモリ9における動作クロックの周波数を変更する制御を行った後、バス停止要求信号BSRを取り下げる(図7、時間t11)。以上により、内部メモリ9における動作クロックの周波数を変更させる際のバス停止処理の動作が終了となる。
【0098】
それにより、本実施の形態によれば、低消費電力制御に必要なモジュールのみをバス停止させることができるので、バス停止処理に起因するハングアップなどを回避することができ、半導体集積回路装置1のパフォーマンスを向上させることができる。
【0099】
また、ハングアップ条件を回避するためのソフトウェア処理が不要となるので、半導体集積回路装置1の開発工数、およびコストを低減することができる。
【0100】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【符号の説明】
【0101】
1 半導体集積回路装置
2 CPU
3 CPU
4 グラフィックスコア
5 L2キャッシュ
6 ダイレクトメモリアクセスコントローラ
7 USBインタフェース
8 外部メモリインタフェース
9 内部メモリ
10 パワーマネージメント部
11 バス制御部
12 高速コアバス
13 メインバス
14 USBデバイス
15 外部メモリ
16 バス停止要求制御部
171〜178 バス停止制御部
181〜188 依存関係設定レジスタ

【特許請求の範囲】
【請求項1】
バスマスタとなる複数のモジュールと、
バススレーブとなるモジュールと、
前記バススレーブとなるモジュールのバス使用を停止させる第1の制御信号が入力された際に、前記バスマスタとなる前記複数のモジュールのうち前記バススレーブに対するバスマスタとなる第1のモジュールを判定し、その判定された第1のモジュールに対して、バス停止を指示する第2の制御信号を出力し、前記モジュールのバス停止が完了した後に、前記バススレーブとなるモジュールにバス停止を指示する第3の制御信号を出力するバス動作制御部とを有する半導体集積回路装置。
【請求項2】
バスマスタとなる複数のモジュールと、
バススレーブとなるモジュールと、
前記バスマスタとなる複数のモジュールのうちの1以上のモジュールを特定する情報を記憶する記憶部と、
前記バススレーブとなるモジュールにバス使用を停止させる第1の制御信号が入力される際、前記記憶部に記憶された情報により特定される1以上のモジュールに対して、バス停止を指示する第2の制御信号を出力し、前記記憶部に記憶された情報により特定される1以上のモジュール全てからバス停止が完了したことを示す信号を受け取った後に、前記バススレーブとなるモジュールにバス停止を指示する第3の制御信号を出力するバス動作制御部とを有する半導体集積回路装置。
【請求項3】
請求項2記載の半導体集積回路装置において、
前記バスマスタとなる複数のモジュールは、前記記憶部にその記憶される情報を書き込むモジュールを有する、半導体集積回路装置。
【請求項4】
請求項1〜3のいずれか1項に記載の半導体集積回路装置において、
前記バススレーブとなるモジュールの低省電力制御を行う電力制御部と、
前記電力制御部から出力される制御信号に基づいて、前記第1の制御信号を出力し、前記第1の制御信号によって前記バススレーブとなるモジュールのバス停止が完了すると、前記バススレーブとなるモジュールのバス停止の処理が完了したことを示すバス停止完了信号を前記電力制御部に出力するバス停止要求制御部とを、さらに有し、
前記電力制御部は、
前記バス停止要求制御部からバス停止完了信号を受け取ると、前記バススレーブとなるモジュールに対して省電力制御処理を実行することを特徴とする半導体集積回路装置。
【請求項5】
バスマスタとなる複数の第1のモジュールと、
バススレーブとなる複数の第2のモジュールと、
前記複数の第1のモジュールにそれぞれ対応して設けられ、各々は第1のバス停止要求信号に基づいてその対応するモジュールにバス停止を指示する複数の第1のバス停止制御部と、
前記複数の第2のモジュールにそれぞれ対応して設けられ、各々は第2のバス停止要求信号に基づいてその対応するモジュールにバス停止を指示する複数の第2のバス停止制御部と、
前記複数の第2のバス停止制御部にそれぞれ接続され、各々は前記複数の第1のモジュールのうちの1以上の第1のモジュールを特定するための情報を記憶する複数の記憶部と、
を有し、
前記複数の第2のバス停止制御部の各々は、前記第2のバス停止要求信号を受けたとき、その接続された前記記憶部の情報から特定される第1のモジュールに対応する第1のバス停止制御部に前記第1のバス停止要求信号を出力し、その第1のバス停止制御部から前記特定される第1のモジュールのバス停止が完了したことを示すバス停止完了信号を受けたとき、その対応する第2のモジュールに対してバス停止を指示する、半導体集積回路装置。
【請求項6】
請求項5記載の半導体集積回路装置において、
前記複数の第1のモジュールのなかの第3のモジュールと、前記複数の第2のモジュールのなかの第4のモジュールとは共通のモジュールであり、
前記第4のモジュールに対応する前記第1のバス停止制御部は、前記バススレーブとなる複数のモジュールのうちの前記共通のモジュールとは異なる第5のモジュールに対応する前記第1のバス停止制御部から前記第1のバス停止要求信号を受ける、半導体集積回路装置。
【請求項7】
請求項5記載の半導体集積回路装置において、
前記複数のバスマスタとなるモジュールは、前記複数の記憶部にそれぞれ記憶されるべき情報を書き込むモジュールを有する、半導体集積回路装置。
【請求項8】
請求項5記載の半導体集積回路装置において、
前記複数の第1のバス停止制御部にそれぞれ接続され、各々は前記複数の第1のモジュールのうち1以上の第1のモジュールを特定する情報が記憶される複数の別の記憶部を有し、
前記複数の第1のバス停止制御部の各々は、その接続される記憶部に記憶された情報に基づき、対応する第1のモジュールに前記第1のバス停止要求信号を出力し、
前記複数の別の記憶部の少なくとも一つは、前記複数の第1のモジュールのいずれも特定しない情報を記憶する半導体集積回路装置。
【請求項9】
請求項5記載の半導体集積回路装置において、
前記バススレーブとなる複数のモジュールの電力制御を少なくとも行う電力制御部と、
前記電力制御部から出力される電力制御信号に基づいて、前記複数の第2のバス停止制御部にそれぞれ前記第2のバス停止要求信号を供給し、所定のモジュールからそのバス停止の処理が完了すると、バス停止完了信号を前記電力制御部に出力するバス停止要求制御部とを、さらに有し、
前記電力制御部は、
前記バス停止要求制御部からバス停止完了信号を受け取ると、前記所定のモジュールに対して省電力制御処理を実行することを特徴とする半導体集積回路装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2013−45348(P2013−45348A)
【公開日】平成25年3月4日(2013.3.4)
【国際特許分類】
【出願番号】特願2011−183805(P2011−183805)
【出願日】平成23年8月25日(2011.8.25)
【出願人】(302062931)ルネサスエレクトロニクス株式会社 (8,021)
【Fターム(参考)】