(57)【要約】【課題】半導体集積回路上の各機能ブロックが自由に電源電圧、システムクロック周波数を時間軸において変えて、しかも、相互にデータを交換できること。【解決手段】半導体集積回路装置１００は、第１の機能ブロック１１０が、機能ブロック内の回路に供給する第１のシステムクロックを発生する第１のクロック発生回路１１１と、第１のシステムクロックによりデータを読み出し／書き込みする第１の内部メモリ１１２と、第１のシステムクロックと第２のシステムクロックとを選択し、該選択したクロックを第１の内部メモリ１１２に供給するセレクタ１１３とを有する。第１の内部メモリ１１１に供給されるクロックには、第１のシステムクロックと第２のシステムクロックからセレクタ１１３により選択された一のクロックが支給される。【選択図】図１
2008123531.tif 000002
【特許請求の範囲】
【請求項１】
主クロック発生回路と、複数の機能ブロックと、前記複数の機能ブロック内のクロック発生回路と、前記クロック発生回路内のＰＬＬ回路とを備え、
前記ＰＬＬ回路は、前記主クロック回路からのクロック信号を用いて、前記機能ブロック回路内のクロック信号を生成する半導体集積回路装置。
【請求項２】
前記複数の機能ブロックは、メモリを有する第１の機能ブロックと、第２の機能ブロックとからなり、
前記ＰＬＬ回路は、前記第１の機能ブロック内の前記メモリに記憶された値を基に、前記複数の機能ブロック回路内のクロック信号の周波数を決定する請求項１記載の半導体集積回路装置。
【請求項３】
前記第１の機能ブロックは、プログラムを記憶する内部メモリと、
前記プログラムを実行する実行手段とを備え、
前記実行手段は、前記内部メモリに記憶された前記プログラムを実行して、前記第１の機能ブロック内の前記メモリのデータを読み出し又は書き換える請求項２記載の半導体集積回路装置。
【請求項４】
前記実行手段は、前記内部メモリに記憶された前記プログラムを実行して、前記各機能ブロックの仕事に対応した電源電圧値、及び／又は動作周波数値を決定する請求項３記載の半導体集積回路装置。
【請求項５】
前記第１の機能ブロックと前記第２の機能ブロックに電源を供給するチップ内レギュレータを備える請求項３記載の半導体集積回路装置。
【請求項６】
前記実行手段は、前記内部メモリに記憶された前記プログラムを実行して、前記レギュレータから前記第１の機能ブロックと前記第２の機能ブロックに供給される電源の電圧値を決定する請求項５記載の半導体集積回路装置。
【請求項７】
前記第１の機能ブロックはＣＰＵから構成され、前記第２の機能ブロックはＤＳＰから構成される請求項２記載の半導体集積回路装置。
【請求項８】
前記第２の機能ブロックに相当する機能ブロックを複数搭載する請求項２記載の半導体集積回路装置。
【請求項９】
ＣＰＵ及びＤＳＰ以外からなる第３の機能ブロックを備える請求項７記載の半導体集積回路装置。
【請求項１０】
前記内部メモリは、レジスタ・ファイル又はキャッシュ・メモリである請求項３記載の半導体集積回路装置。
【請求項１１】
ＤＭＡコントローラが前記複数の第２の機能ブロックに相当する機能ブロック内部のメモリ間相互の読み書きを制御する請求項８記載の半導体集積回路装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、多様な機能を搭載する半導体集積回路装置に関し、特に、Adaptive Voltage Scaling技術を用いた低消費電力化に適したシステムＬＳＩ（Large Scale Integration）内の機能ブロック間でのデータの転送に関する。
【背景技術】
【０００２】
３年に４倍という半導体の集積度向上というペースがここ１０年以上続いたために半導体集積回路の規模は膨大になり、半導体集積回路のチップ構成の仕方も大きく変化を遂げてきた。
【０００３】
図１５は、システムＬＳＩの構成を示すブロック図である。
【０００４】
図１５において、半導体集積回路装置１０は、汎用のＣＰＵ１１、ＤＳＰ（Digital Signal Processor）１２、専用回路１３（専用回路<１>）、専用回路１４（専用回路<２>）、ＳＤＲＡＭ（Synchronous Dynamic RAM)アクセス）制御回路１５、及びＤＭＡ（Direct Memory Access）コントローラ１６などから構成されており、これらは共通のバス１７を介して相互に接続されている。ＣＰＵ１１及びＤＳＰ１２は、それぞれ内部に内部メモリ１１ａ及び内部メモリ１２ａを有する。この半導体集積回路装置１０は、通常外部に大容量のＳＤＲＡＭ１８を用意し、Unified Memory構成をとって使用される。
【０００５】
現在でも半導体集積回路に搭載される機能に対する要求は日々めまぐるしく変わる可能性があり、図１５のように一部の機能を専用回路<１>、専用回路<２>のように構成してしまうと、このような要望の変化に迅速に対応できない可能性がある。
【０００６】
そのため、現状の段階では図１６のように、汎用ＣＰＵ以外の演算機能を中心とする機能に対しては［多機能ＤＳＰ＋拡張機能］という構成にして、変化する可能性がある仕様に対しては多機能ＤＳＰ上のソフトで対応するようになりつつある。
【０００７】
図１６は、システムＬＳＩの別の構成を示すブロック図である。図１５と同一構成部材には同一符号を付している。
【０００８】
図１６において、半導体集積回路装置２０は、汎用のＣＰＵ１１、多機能ＤＳＰ２１（多機能ＤＳＰ<１>）及び拡張機能２２（拡張機能<１>）からなる演算機能部２３、多機能ＤＳＰ２４（多機能ＤＳＰ<２>）及び拡張機能２５（拡張機能<２>）からなる演算機能部２６、ＳＤＲＡＭ制御回路１５、ＤＭＡコントローラ１６、各機能部側に配置されたローカルバス２７〜２９、ＳＤＲＡＭ制御回路１５及びＤＭＡコントローラ１６側に配置されたグローバルバス３０、及びローカルバス２７〜２９とグローバルバス３０とを接続するバスブリッジ３１〜３３を備えて構成される。多機能ＤＳＰ２１（多機能ＤＳＰ<１>）は、内部メモリ２１ａを有する。バス構成も各機能部にはローカルバス２７〜２９が割り当てられ、ＳＤＲＡＭ制御回路１５側にはグローバルバス３０が配置され、ローカルバス２７〜２９とグローバルバス３０の間はバスブリッジ３１〜３３が置かれている。
【０００９】
今後半導体プロセスの進歩により、ますます多くの機能が半導体集積回路に搭載されるようになると、半導体集積回路装置の構成はさらに図１７ように変化するであろう。
【００１０】
図１７は、システムＬＳＩのさらに別の構成を示すブロック図である。図１６と同一構成部材には同一符号を付している。
【００１１】
図１７において、半導体集積回路装置４０は、１つの汎用のＣＰＵ１１、内部メモリ４１ａ〜４４ａを有する数個（ここでは４個）の汎用演算プロセッサ４１〜４４、ＳＤＲＡＭ制御回路１５、ＤＭＡコントローラ１６、周辺Ｉ／Ｏ群６０を制御するＩ／Ｏ制御回路４５、ＣＰＵ１１及びＩ／Ｏ制御回路４５側に配置されたローカルバス４６、汎用演算プロセッサ４１〜４４側に配置されたローカルバス４７〜５０、ローカルバス４６とローカルバス４７〜５０との間に配置されたグローバルバス５１、ローカルバス４７〜５０とグローバルバス５１とを接続するバスブリッジ５２〜５５、及びローカルバス４６とグローバルバス５１とを接続するバスブリッジ５６を備えて構成される。
【００１２】
このように、この半導体集積回路装置４０は、１つの汎用ＣＰＵ１１と数個（４個から８個程度）の汎用演算プロセッサ４１〜４４がローカルバス４６〜５０、グローバルバス５１とバスブリッジ５２〜５６を介して接続され、外部には大容量のＳＤＲＡＭ１８を配置し、ＳＤＲＡＭ制御回路１５は、汎用ＣＰＵ１１、数個の汎用演算プロセッサ４１〜４４、ＤＭＡコントローラ１６などとＳＤＲＡＭ１８の調停を行う。
【００１３】
上述したように半導体集積回路装置の集積度が上がってくると、最も深刻な問題として動作時及びスタンバイ時の増大する消費電力の問題がある。この問題の解決策として最も注目を浴びている技術として、Dynamic Voltage Scaling（DVS）又はAdaptive Voltage Scaling技術がある。これらの技術に関する内容に関しては以下の文献（例えば、特許文献１，２及び非特許文献１，２）に詳細に述べられているので、説明は省略する。
【特許文献１】米国特許第５７４５３７５号明細書
【特許文献２】米国特許第６８６８５０３号明細書
【非特許文献１】“A Combined Hardware-Software Approach for Low-Power SoC:Applying Adaptive Voltage Scaling and Intelligent Energy Management Software”,Design ２００３（System-on-Chip and ASIC Design Conference）
【非特許文献２】“An H.２６４/MPEG-４ Audio/Visual Codec LSI with Module-Wise Dynamic Voltage/Frequency Scaling” , ISSCC2005  Dig. Tech. Papers, pp.１３２-１３３
【発明の開示】
【発明が解決しようとする課題】
【００１４】
しかしながら、このような従来の半導体集積回路装置にあっては、以下のような問題点があった。
【００１５】
上記非特許文献１によると、Adaptive Voltage Scaling技術には、現状において大きな制限事項がある。現状のAdaptive Voltage Scaling技術では、チップ全体に対してこの技術を採用することを前提にしている。この場合ではチップ全体が同時に電源電圧とそれに対応したシステムクロック周波数を変えるようになっている。つまり、このシステムにおいて、チップの電源電圧、そしてシステムクロック周波数は時間軸で変化して、仕事の付加量が大きいときにはチップの電源電圧を高くし（例えば、ＶＤＤ＝１．５Volt）、そしてシステムクロック周波数も高くする（例えば、fclk＝４００ＭＨｚ）ように、ＣＰＵが制御する。また、仕事の負荷量が小さくなるとチップの電源電圧を低くし（例えば、ＶＤＤ＝１．０Volt）、そしてシステムクロック周波数も低くする（例えば、fclk＝２００ＭＨｚ）ように、ＣＰＵが制御する。こうすることにより、このチップで消費される消費電力を少なくすることができる。
【００１６】
但し、このシステムは現実的ではない。上述したように、通常システムＬＳＩにはビデオ信号処理ブロック、オーディオ信号処理ブロック、制御信号処理ブロックなど各種の機能ブロックが存在して、しかも、これらの機能ブロック間ではその処理に必要とされる仕事の負荷量に大きな差がある。
【００１７】
この問題に対して課題解決を試みようとしている先行技術に、上記非特許文献２がある。ここでは、オーディオ信号処理ブロックの電源電圧は０．９Ｖ／１．２Ｖ、システムクロック周波数は９０ＭＨｚ／１８０ＭＨｚから選択できるようにするが、オーディオ信号処理ブロック以外のブロック（ここにはビデオ信号処理ブロックなどが存在する）に対しては、電源電圧は１．２Ｖ、システムクロック周波数は１８０ＭＨｚに固定している。
【００１８】
オーディオ信号処理ブロックの電源電圧、システムクロック周波数をＣＰＵからのソフト制御で自由に切り換えられるようにするため、dynamic de-skewing system（DDS）の導入を試みている。つまり、オーディオ信号処理ブロックの電源電圧は０．９Ｖ／１．２Ｖ、間で変えることにより、システムクロック周波数は９０ＭＨｚ／１８０ＭＨｚにスキューが発生するため、このスキュー対策としてdynamic de-skewing system（DDS）を導入しているのである。しかし、先行技術に上記非特許文献２で想定している環境は、Adaptive Voltage Scaling技術を今後の低消費電力化に有効に利用しようとする観点から程遠いものである。
【００１９】
図１７で想定しているような半導体集積回路装置４０において、各機能ブロックが自由に電源電圧、システムクロック周波数を時間軸において変えて、しかも、相互にデータを交換できるようにするにはどのようにしたらよいのであろうか、現在有効な方法は提案されていない。
【００２０】
本発明は、かかる点に鑑みてなされたものであり、半導体集積回路上の各機能ブロックが自由に電源電圧、システムクロック周波数を時間軸において変えて、しかも、相互にデータを交換できる半導体集積回路装置を提供することを目的とする。
【課題を解決するための手段】
【００２１】
本発明の半導体集積回路装置は、主クロック発生回路と、複数の機能ブロックと、前記複数の機能ブロック内のクロック発生回路と、前記クロック発生回路内のＰＬＬ回路とを備え、前記ＰＬＬ回路は、前記主クロック回路からのクロック信号を用いて、前記機能ブロック回路内のクロック信号を生成する構成を採る。
【００２２】
前記複数の機能ブロックは、メモリを有する第１の機能ブロックと、第２の機能ブロックとからなり、前記ＰＬＬ回路は、前記第１の機能ブロック内の前記メモリに記憶された値を基に、前記複数の機能ブロック回路内のクロック信号の周波数を決定するものであってもよい。
【００２３】
また、前記第１の機能ブロックは、プログラムを記憶する内部メモリと、前記プログラムを実行する実行手段とを備え、前記実行手段は、前記内部メモリに記憶された前記プログラムを実行して、前記第１の機能ブロック内の前記メモリのデータを読み出し又は書き換えるものであってもよい。
【００２４】
具体的な態様として、前記実行手段は、前記内部メモリに記憶された前記プログラムを実行して、前記各機能ブロックの仕事に対応した電源電圧値、及び／又は動作周波数値を決定するものであってもよい。
【００２５】
前記第１の機能ブロックと前記第２の機能ブロックに電源を供給するチップ内レギュレータを備えるものであってもよい。
【００２６】
具体的な態様として、前記実行手段は、前記内部メモリに記憶された前記プログラムを実行して、前記レギュレータから前記第１の機能ブロックと前記第２の機能ブロックに供給されるものであってもよい。
【００２７】
前記第１の機能ブロックはＣＰＵから構成され、前記第２の機能ブロックはＤＳＰから構成されるものであってもよい。
【００２８】
前記第２の機能ブロックに相当する機能ブロックを複数搭載するものであってもよい。
【００２９】
また、ＣＰＵ及びＤＳＰ以外からなる第３の機能ブロックを備えるものであってもよい。
【００３０】
具体的な態様として、前記内部メモリは、レジスタ・ファイル又はキャッシュ・メモリであってもよい。
【００３１】
また、ＤＭＡコントローラが前記複数の第２の機能ブロックに相当する機能ブロック内部のメモリ間相互の読み書きを制御するものであってもよい。
【発明の効果】
【００３２】
本発明によれば、第１の機能ブロックとデータを読み書きする第２の機能ブロック内にある第２の内部メモリは共に、第１の機能ブロック内にある回路に支給される第１のシステムクロックで動作するようになるので、第１の機能ブロックと第２の機能ブロック内にある第２の内部メモリは完全に同期が取れるようになる。したがって、各々の機能ブロックがDynamic Voltage Scaling技術やAdaptive Voltage Scaling技術をそれぞれの機能ブロックの負荷量に応じて自由に電源電圧とシステムクロック周波数を変えても、機能ブロック間でデータを相互に転送することが可能である。これにより、本システムＬＳＩは、Dynamic Voltage Scaling技術やAdaptive Voltage Scaling技術を最大限に活用して低消費電力化を図ることができる。
【発明を実施するための最良の形態】
【００３３】
以下、本発明の実施の形態について、図面を参照して詳細に説明する。
【００３４】
（実施の形態１）
図１は、本発明の実施の形態１に係る半導体集積回路装置の構成を示す回路ブロック図である。本実施の形態は、半導体集積回路装置における機能ブロックを第１の機能ブロックと第２の機能ブロックに限定した場合で説明する。第１の機能ブロックは汎用ＣＰＵを、第２の機能ブロックは多機能ＤＳＰを想定している。
【００３５】
図１において、半導体集積回路装置１００は、汎用ＣＰＵを想定した第１の機能ブロック１１０、第２の機能ブロック１２０、ＳＤＲＡＭ１３０を制御するＳＤＲＡＭ制御回路１３１、ＤＭＡコントローラ１３２、周辺Ｉ／Ｏ群１３３を制御するＩ／Ｏ制御回路１３４、第１の機能ブロック１１０及びＩ／Ｏ制御回路１３４側に配置されたローカルバス１４１、第２の機能ブロック１２０側に配置されたローカルバス１４２、ローカルバス１４１とローカルバス１４２との間に配置されたグローバルバス１４３、ローカルバス１４１とグローバルバス１４３とを接続するバスブリッジ１４４、ローカルバス１４２とグローバルバス１４３とを接続するバスブリッジ１４５、外部から入力されるクロック１５１を基にして逓倍したクロックを生成するクロック発生回路１５２、及び外部電源１６１を基に各部に所定電源を供給する電源レギュレータ１６２を備えて構成される。
【００３６】
第１の機能ブロック１１０は、第１のシステムクロック（ｆＣＬＫ１）１１４を生成する第１のクロック発生回路１１１と、第１の内部メモリ１１２と、第１のシステムクロックと第２のシステムクロックのいずれかのクロックを選択し第１の内部メモリ１１２に供給するセレクタ１１３とを備えて構成される。また、第２の機能ブロック１２０は、第２のシステムクロック（ｆＣＬＫ２）１２４を生成する第２のクロック発生回路１２１と、第２の内部メモリ１２２と、第１のシステムクロックと第２のシステムクロックのいずれかのクロックを選択し第２の内部メモリ１２２に供給するセレクタ１２３とを備えて構成される。
【００３７】
上記第１の内部メモリ１１２及び第２の内部メモリ１２２の接続例については、第１の内部メモリ１１２を例に採り図２により後述する。
【００３８】
クロック発生回路１５２は、システムクロック１５３を生成し、生成したシステムクロック１５３を、第１の機能ブロック１１０内の第１のクロック発生回路１１１、第２の機能ブロック１２０内の第２のクロック発生回路１２１、ＳＤＲＡＭ制御回路１３１、及びＤＭＡコントローラ１３２にそれぞれ供給する。
【００３９】
第１の機能ブロック１１０内にある回路に供給される第１のシステムクロック（ｆＣＬＫ１）１１４は、第１の機能ブロック１１０内にある第１のクロック発生回路１１１で生成され、第２の機能ブロック１２０内にある回路に供給される第２のシステムクロック（ｆＣＬＫ２）１２４は第２の機能ブロック１２０内にある第２のクロック発生回路１２１で生成される。また、図１には示されていないが第１の機能ブロック１１０内にある第１のクロック発生回路１１１で生成された第１のシステムクロック（ｆＣＬＫ１）１１４は第２の機能ブロック１２０内にある回路にも供給されるとともに、第２の機能ブロック１２０内にある第２のクロック発生回路１２１で生成された第２のシステムクロック（ｆＣＬＫ２）１２４は第１の機能ブロック１１０内にある回路にも供給されている。
【００４０】
電源レギュレータ１６２は、第１の機能ブロック１１０に電源１６３を、第２の機能ブロック１２０に電源１６４をそれぞれ供給する。
【００４１】
本実施の形態では、全体のフロー制御関係は汎用ＣＰＵを想定した第１の機能ブロック１１０内の内部メモリ１１２に保存されているメインプログラム上に記載されており、処理能力を要するＡＶ関連の処理などは、多機能ＤＳＰを想定した第２の機能ブロック１２０内の内部メモリ１２２に保存されているサブプログラム上に記載されている。この意味からも、本半導体集積回路の仕事全体の管理を行っているのは汎用ＣＰＵを想定した第１の機能ブロック１１０である。
【００４２】
図２は、機能ブロック内にある内部メモリの接続を示す図である。第１の機能ブロック１１０内の第１の内部メモリ１１２と第２の機能ブロック１２０内の第２の内部メモリ１２２とは同一構成を採るため、第１の内部メモリ１１２で代表して説明する。
【００４３】
図２において、１１２は第１の機能ブロック１１０内にある内部メモリ、１７１はチップセレクト（Ｃ／Ｓ）信号、１７２はアウトプットイネーブル（ＯＥ）信号、１７３はリード／ライト（Ｒ／Ｗ）信号、１７４はアドレス信号、１７５はデータ信号、１７６はローカルバス、１１４は第１の機能ブロック１１０内にある回路に供給される第１のシステムクロック、１２４は第２の機能ブロック１２０内にある回路に供給される第２のシステムクロック、１１３はセレクタ、１７７はセレクタ１１３の制御信号、１７８はセレクタ１１３の制御信号１７７により選択された、第１の機能ブロック１１０内にある回路に供給される第１のシステムクロック１１４か第２の機能ブロック１２０内にある回路に供給される第２のシステムクロック１２４かのいずれかのクロックである。
【００４４】
第１の機能ブロック１１０内にある第１の内部メモリ１１２に供給されるシステムクロック１７８がセレクタ１１３の制御信号１７７により、第１の機能ブロック１１０内にある回路に供給される第１のシステムクロック１１４か第２の機能ブロック１２０内にある回路に供給される第２のシステムクロック１２４かのどちらかの信号に選択される。
【００４５】
図３は、第２の機能ブロック１２０内にある第２のクロック発生回路１２１の構成を示すブロック図である。
【００４６】
図３において、第２のクロック発生回路１２１は、クロック発生回路１５２で生成されたシステムクロック１５３と分周回路出力とを位相比較する位相検出器１８１、ループフィルタ１８２、ＶＣＯ（Voltage Controlled Oscillator）１８３、及びＶＣＯ１８３からの出力信号の周波数をＮ／Ｍ倍（但し、Ｍ＞Ｎ）に分周する分周回路１８４を備えて構成される。また、１８５は汎用ＣＰＵを想定する第１の機能ブロック１１０からの制御信号、１２４は第２の機能ブロック１２０内にある第２のクロック発生回路１２１で生成された第２のシステムクロックである。
【００４７】
第２のクロック発生回路１２１は、ＰＬＬ（Phase-Locked Loop）回路１８６を構成しており、クロック発生回路１５２で生成されたシステムクロック１５３に同期した第２のシステムクロック１２４を生成している。しかも、第２のシステムクロック１２４の動作周波数は汎用ＣＰＵを想定する第１の機能ブロック１１０からの制御信号１８５で希望する周波数に設定できる。例えば、クロック発生回路１５２で生成されたシステムクロック１５３の周波数をｆＣＬＫ_１５３，クロック発生回路１５２で生成されたシステムクロック１５３に同期した第２のシステムクロック１２４の周波数をｆＣＬＫ_１２４、汎用ＣＰＵを想定する第１の機能ブロック１１０からの制御信号１８５で設定されるＶＣＯ１８３からの出力信号の周波数の分周比率をＮ／Ｍとすると、以下の関係が成立する。
【００４８】
ｆＣＬＫ_１２４×Ｎ／Ｍ＝ｆＣＬＫ_１５３                    …（１）
したがって、
ｆＣＬＫ_１２４＝ｆＣＬＫ_１５３×Ｍ／Ｎ                    …（２）
の関係が成立する。
【００４９】
以上のように方法により、第２のクロック発生回路１２１によってクロック発生回路１５２で生成されたシステムクロック１５３に同期した第２のシステムクロック１２４を汎用ＣＰＵを想定する第１の機能ブロック１１０からの制御信号１８５で自由に制御することができる。
【００５０】
図４は、第１の機能ブロック１１０内にある第１のクロック発生回路１１１の構成を示すブロック図である。図３と同一構成部分には同一符号を付している。
【００５１】
第１のクロック発生回路１１１は、第２のクロック発生回路１２１における第１の機能ブロック１１０からの制御信号１８５が自分自身のブロック内からの信号であること以外は同様な構成になっている。
【００５２】
以上の関係をまとめると、第１の機能ブロック１１０内にある第１のクロック発生回路１１１によって、第１の機能ブロック１１０の時間軸に依存して変化する演算処理量を処理するに必要な第１のシステムクロック１１４が第１のクロック発生回路１１１を用いて、本半導体集積回路装置１００のシステムクロック１５３から生成され、第２の機能ブロック１２０内にある第２のクロック発生回路１２１によって、第２の機能ブロック１２０の時間軸に依存して変化する演算処理量を処理するに必要な第２のシステムクロック１２４が第２のクロック発生回路１２１を用いて、本半導体集積回路装置１００のシステムクロック１５３から生成される。
【００５３】
汎用ＣＰＵである第１の機能ブロック１１０は、大容量の第１の内部メモリ１１２を有し、この第１の機能ブロック１１０が本半導体集積回路装置１００全体の動作を統括している。本実施の形態において、第２の機能ブロック１２０がどのような順序で、どのような仕事を行うかの具体的なスケジュールを大容量な第１の内部メモリ１１２内にプログラムの形で有しており、さらに、そのプログラムを実行する過程で第２の機能ブロック１２０がどのような時間からどのような仕事量の仕事をするためにどのような能力で処理しなければならなく、そのためには第２機能ブロック１２０がどのような周波数で動作し、その動作周波数で第２の機能ブロック１２０が動作するためにはどのような電源電圧で動作しなければならないかの情報を有している。
【００５４】
以下、上述のように構成された半導体集積回路装置１００の動作について説明する。
【００５５】
図５は、第２の機能ブロック１２０の仕事量、及び第２の機能ブロック１２０の電源電圧（動作周波数）の時間経過依存性を示す図である。また、図６は、第１の機能ブロック１１０の仕事量、及び第１の機能ブロック１１０の電源電圧（動作周波数）の時間経過依存性を示す図である。
【００５６】
図５（ａ）の第２の機能ブロック１２０の仕事量及び図５（ｂ）の第２の機能ブロック１２０の動作電源電圧の例に示すように、第２の機能ブロック１２０は時間ｔ０からｔ１まで仕事２１を電源電圧ＶＤＤ２１、動作周波数ｆＣＬＫ２１で行い、時間ｔ１からｔ２まで仕事２２を電源電圧ＶＤＤ２２、動作周波数ｆＣＬＫ２２で行い、時間ｔ２からｔ３まで仕事２３を電源電圧ＶＤＤ２３、動作周波数ｆＣＬＫ２３で行い、時間ｔ３からｔ４まで仕事２４を電源電圧ＶＤＤ２４、動作周波数ｆＣＬＫ２４で行うという仕事のスケジュールが、汎用ＣＰＵである第１の機能ブロック１１０の内部メモリ１１２内で管理されている。
【００５７】
図６（ａ）の第１の機能ブロック１１０の仕事量及び図６（ｂ）の第１の機能ブロック１１０の動作電源電圧の例に示すように、第１の機能ブロック１１０は時間ｔ０からｔ１まで仕事１１を電源電圧ＶＤＤ１１、動作周波数ｆＣＬＫ１１で行い、時間ｔ１からｔ２まで仕事１２を電源電圧ＶＤＤ１２、動作周波数ｆＣＬＫ１２で行い、時間ｔ２からｔ３まで仕事１３を電源電圧ＶＤＤ１３、動作周波数ｆＣＬＫ１３で行うという仕事のスケジュールが、自己の第１の機能ブロック１１０の内部メモリ１１２内で管理されている。
【００５８】
図５及び図６を比較して分かるように、第１の機能ブロック１１０内にある第１のクロック発生回路１１１で生成され、第１の機能ブロック１１０内にある回路に供給される第１のシステムクロック１１４の周波数は、第１の機能ブロック１１０内で行われる仕事の演算処理量に依存して決まり、第２の機能ブロック１２０内にある第２のクロック発生回路１２１で生成され、第２の機能ブロック１２０内にある回路に供給される第２のシステムクロック１２４の周波数は、第２の機能ブロック１２０内で行われる仕事の演算処理量に依存して決まる。したがって、第１の機能ブロック１１０内にある第１のクロック発生回路１１１で生成され、第１の機能ブロック１１０内にある回路に供給される第１のシステムクロック１１４の周波数と第２の機能ブロック１２０内にある第２のクロック発生回路１２１で生成され、第２の機能ブロック１２０内にある回路に供給される第２のシステムクロック１２４の周波数との間に明確な相関はない。
【００５９】
このため、本実施の形態では、図１に示す半導体集積回路装置１００における機能ブロック内にある内部メモリの構造として、図２で説明した構成を用いている。この構成を採ることにより第１の機能ブロック１１０内にある第１のクロック発生回路１１１で生成され、第１の機能ブロック１１０内にある回路に供給される第１のシステムクロック１１４の周波数と第２の機能ブロック１２０内にある第２のクロック発生回路１２１で生成され、第２の機能ブロック１２０内にある回路に供給される第２のシステムクロック１２４の周波数との間に明確な相関はない場合においても、第１の機能ブロック１１０と第２の機能ブロック１２０間で相手の機能ブロックの内部メモリが相手の機能ブロックの回路により使われていない場合には、自由に相手の機能ブロック内にある内部メモリのデータを読み出したり、自分の機能ブロック内にあるデータを相手の機能ブロック内にある内部メモリに書き込んだりすることができるようになる。
【００６０】
次に、第１の機能ブロック１１０及び第２の機能ブロック１２０内にある内部メモリ１１２，１２２の接続図を参照してより具体的な動作について説明する。
【００６１】
図７は、上記第１の機能ブロック１１０内にある第１の内部メモリ１１２の接続を示す図、図８は、上記第２の機能ブロック１２０内にある第２の内部メモリ１２２の接続を示す図である。
【００６２】
図７において、１１２は第１の機能ブロック１１０内にある第１の内部メモリ（内部メモリ<１>）、１７１Ａはチップセレクト信号、１７２Ａはアウトプットイネーブル信号、１７３Ａはリード／ライト信号、１７４Ａはアドレス信号、１７５Ａはデータ信号、１７６Ａはローカルバス、１１４は第１の機能ブロック１１０内にある回路に供給される第１のシステムクロック、１２４は第２の機能ブロック１２０内にある回路に供給される第２のシステムクロック、１１３はセレクタ、１７７Ａはセレクタ１１３の制御信号、１７８Ａはセレクタ１１３の制御信号１７７Ａにより選択された、第１の機能ブロック１１０内にある回路に供給される第１のシステムクロック１１４か第２の機能ブロック１２０内にある回路に供給される第２のシステムクロック１２４かのどちらかのシステムクロック信号である。
【００６３】
また、図８において、１２２は第２の機能ブロック１２０内にある第２の内部メモリ（内部メモリ<２>）、１７１Ｂはチップセレクト信号、１７２Ｂはアウトプットイネーブル信号、１７３Ｂはリード／ライト信号、１７４Ｂはアドレス信号、１７５Ｂはデータ信号、１７６Ｂはローカルバス、１１４は第１の機能ブロック１１０内にある回路に供給される第１のシステムクロック、１２４は第２の機能ブロック１２０内にある回路に供給される第２のシステムクロック、１２３はセレクタ、１７７Ｂはセレクタ１２３の制御信号、１７８Ｂはセレクタ１２３の制御信号１７７Ｂにより選択された、第１の機能ブロック１１０内にある回路に供給される第１のシステムクロック１１４か第２の機能ブロック１２０内にある回路に供給される第２のシステムクロック１２４かのどちらかである。
【００６４】
〔第１の機能ブロック１１０内のデータ信号を第２の機能ブロック１２０内にある第２の内部メモリ１２２に書き込む動作〕
第１の機能ブロック１１０内にあるデータ信号を、第２の機能ブロック１２０内にある第２の内部メモリ１２２に書き込みたい場合には、図８において第２の機能ブロック１２０内にある第２の内部メモリ１２２が第２の機能ブロック１２０内にある回路によって使用されていないことを確認後、セレクタ１２３の制御信号１７７Ｂを制御して信号１７８Ｂに第１の機能ブロック１１０内にある回路に供給される第１のシステムクロック１１４が選択されるように設定し、チップセレクト信号１７１Ｂを“Ｈ”に設定し、リード／ライト信号１７３Ｂを“ライト状態”に設定し、第２の機能ブロック１２０内にある第２の内部メモリ１２２のアドレス１７４Ｂを設定する。その上で、図１に示すバスブリッジ１４４、バスブリッジ１４５を制御してローカルバス１４１、グローバルバス１４３、ローカルバス１４２経由で第１の機能ブロック１１０内にあるデータ信号を第２の機能ブロック１２０内にある第２の内部メモリ１２２のデータ信号１７５Ｂ（図８参照）へ送り、しかる後に第２の機能ブロック１２０内にある第２の内部メモリ１２２に書き込む。
【００６５】
〔第２の機能ブロック１２０内にある第２の内部メモリ１２２のデータ信号を第１の機能ブロック１１０内の第１の内部メモリ１１２に読み出す動作〕
第１の機能ブロック１１０内へ第２の機能ブロック１２０内にある第２の内部メモリ１２２のデータ信号を読み出す場合には、図８において第２の機能ブロック１２０内にある第２の内部メモリ１２２が第２の機能ブロック１２０内にある回路によって使用されていないことを確認後、セレクタ１２３の制御信号１７７Ｂを制御して信号１７８Ｂに第１の機能ブロック１１０内にある回路に供給される第１のシステムクロック１１４が選択されるように設定し、チップセレクト信号１７１Ｂを“Ｈ”に設定し、リード／ライト信号１７３Ｂを“リード状態”に設定し、第２の機能ブロック１２０内にある第２の内部メモリ１２２のアドレス１７４Ｂを読み出したい領域のアドレスに設定する。そして、図１に示すバスブリッジ１４４、バスブリッジ１４５を制御してローカルバス１４２、グローバルバス１４３、ローカルバス１４１経由で第２の機能ブロック１２０内にある第２の内部メモリ１２２内に記憶されているデータ信号を第１の機能ブロック１１０内に読み出す。
【００６６】
以上は、第２の機能ブロック１２０内にある第２の内部メモリ１２２の書き込み／読み出し動作であるが、第２の機能ブロック１２０内にあるデータ信号を第１の機能ブロック１１０内にある第１の内部メモリ１１２に書き込みたい場合や第２の機能ブロック１２０内の第２の内部メモリ１２２へ第１の機能ブロック１１０内にある第１の内部メモリ１１２のデータ信号を読み出す場合も同様の動作で実現することができる。
【００６７】
次に、第１の機能ブロック１１０が第２の機能ブロック１２０の電源電圧と動作周波数を如何に制御するかを具体的に説明する。
【００６８】
第２の機能ブロック１２０がどのような仕事をするかは、第１の機能ブロック１１０の内部メモリ１１２に動作プログラムの形で記述されている。第１の機能ブロック１１０は、上記動作プログラムにより、第２の機能ブロック１２０は時間ｔ０から仕事２１（図５参照）を実行することを読み取る。次に、その仕事２１に相応しい動作電圧ＶＤＤ２１、動作周波数ｆＣＬＫ２１、前記式（２）に述べたＭ／Ｎを前記動作プログラムの別の特定領域に保存された〔表１〕から読み出す。
【００６９】
【表１】
2008123531.tif 000003
この〔表１〕は動作プログラムに記載されているそれぞれの仕事内容を事前に検討し、それぞれの仕事を第２の機能ブロック１２０の多機能ＤＳＰに行わせる場合どのような動作周波数を必要として、そのためにはどのような電源電圧に設定する必要があるかに対する綿密なシミュレーションに基づいて決定されている。
【００７０】
そして、まず、第１の機能ブロック１１０は内蔵された電源レギュレータ１６２に指示して、第２の機能ブロック１２０に電源電圧ＶＤＤ２を供給する。
【００７１】
次に、第１の機能ブロック１１０は、図３に示す制御信号１８５を介して第２のクロック発生回路１２１のＶＣＯ１８３からの出力信号の周波数をＮ／Ｍ倍（但し、Ｍ＞Ｎ）に分周する回路にしかるべきＭ／Ｎの具体的な値を書き込む。第２のクロック発生回路１２１はＰＬＬ回路１８６のセットアップ時間を経過後に安定した動作周波数ｆＣＬＫ２に設定される。但し、以上の設定に要する時間は仕事２１に要する時間に比して僅かであるので、図５には示していない。
【００７２】
第２の機能ブロック１２０の電源電圧ＶＤＤ２と動作周波数ｆＣＬＫ２が安定するに必要な時間経過後に、第１の機能ブロック１１０は第２の機能ブロック１２０が仕事２１の開始を許可するので、第２の機能ブロック１２０は仕事２１を開始する。
【００７３】
第２の機能ブロック１２０は、仕事２１が完了したときには、「仕事２１が完了したとの情報」を仕事全体の管理している第１の機能ブロック１１０に報告する。勿論、第２の機能ブロック１２０は仕事２１が完了したときには、「仕事２１が完了したとの情報」を仕事全体の管理している第１の機能ブロック１１０に報告することに代えて、第２の機能ブロック１２０が「仕事２１が完了したとの情報」をフラグとして、特定のレジスタに記録して、第１の機能ブロック１１０が上記レジスタを見に行くような仕組みでもよい。
【００７４】
次に、上述した本装置の各機能が如何に実施されるかについて具体的に説明する。
【００７５】
第２の機能ブロック１２０が仕事２３を実行するためには、第１の機能ブロック１１０の内部メモリ１１２のある領域に格納されているデータを必要とする。この場合、第２の機能ブロック１２０は、仕事２３を実行する前に、第１の機能ブロック１１０の内部メモリ１１２のある領域に格納されているデータをまず、自らの内部メモリ１２２のしかるべき領域に転送しなければならない。仕事全体を管理している第１の機能ブロック１１０がこの仕事を制御する必要がある。第１の機能ブロック１１０は、この仕事を仕事１１の中で実行する。このとき、第２の機能ブロック１２０は、内部メモリ１２２に関連するリソース使用しないような仕事２２であれば並行して実行し得る。
【００７６】
第１の機能ブロック１１０は、動作周波数ｆＣＬＫ１１で動作しており、第２の機能ブロック１２０は動作周波数ｆＣＬＫ２２で動作しているため、同期が取れないので、従来は第１の機能ブロック１１０の内部メモリ１１２のある領域に格納されているデータを第２の機能ブロック１２０の内部メモリ１２２のしかるべき領域に転送することはできなかった。これに対して、本実施の形態では、図２に示すように第２の機能ブロック１２０の内部メモリ１２２を構成することによりこの課題を解決している。
【００７７】
すなわち、図８で説明したように、第１の機能ブロック１１０内にあるデータ信号を第２の機能ブロック１２０内にある内部メモリ１２２に書き込みたい場合には、まず、第２の機能ブロック１２０内にある内部メモリ１２２が第２の機能ブロック１２０内にある回路によって使用されていないことを確認する。本実施の形態においては、第１の機能ブロック１１０内の内部メモリ１１２内に、本半導体集積回路装置１０全体がどのような順序でどのようなプログラムを実行するかが書かれたメインプログラムが置かれているので、第１の機能ブロック１１０が指示しなければ基本的には第２の機能ブロック１２０が内部メモリ１２２を使用することはない。しかし場合によっては、第２の機能ブロック１２０の内部メモリ１２２に格納されているローカルなプログラムで第２の機能ブロック１２０が動作する可能性もあるので、第２の機能ブロック１２０は仕事の変わり目に内部メモリ関連のリソースを使うか使わないかの情報を第１の機能ブロック１１０に送るように構成することにする。各機能ブロックは内部メモリの他にレジスタ・ファイルのような多目的な記録領域を有することがあるので、内部メモリ関連のリソースを占有せず、レジスタ・ファイルと外部メモリを有効に使う処理も十分あり得る。
【００７８】
第２の機能ブロック１２０内にある内部メモリ１２２が第２の機能ブロック１２０内にある回路によって使用されていないことを確認した後に、セレクタ１１３の制御信号１７７Ｂを制御して制御信号１７８Ｂに第１の機能ブロック１１０内にある回路に供給される第１のシステムクロック１１４が選択されるように設定する。この間の動作により第２の機能ブロック１２０の内部メモリ１２２（内部メモリ<２>）が書き換わることがないように、チップセレクト信号１７１Ｂは“Ｌ”に設定しておく。つまり、内部メモリ１１２（内部メモリ<１>）に接続されたシステムクロック１７８を変更する時は、ノイズによって内部メモリ１１２（内部メモリ<１>）の内容が書き換わらないように、チップセレクト信号は“Ｌ”に設定して、内部メモリ１１２（内部メモリ<１>）が非選択の状態にしておく。
【００７９】
以上の設定作業が終了した後にチップセレクト信号を“Ｈ”に設定し、リード／ライト信号１７３Ｂを“ライト状態”に設定し、第２の機能ブロック１２０内にある内部メモリ１２２（内部メモリ<２>）のアドレス１７４Ｂを設定し、バスブリッジ１４４，１４５を制御してローカルバス１４１、グローバルバス１４３、ローカルバス１４２経由で第１の機能ブロック１１０内にあるデータ信号を、第２の機能ブロック１２０内にある内部メモリ１２２のデータ信号１７５Ｂへ送り、しかる後に第２の機能ブロック１２０内にある内部メモリ１２２（内部メモリ<２>）に書き込む。第２の機能ブロック１２０が、この間、内部メモリ１２２（内部メモリ<２>）に関連するリソース使用しないような仕事２２を並行して実施している場合には、仕事２２が完了したときには、「仕事２２が完了したとの情報」を仕事全体の管理している第１の機能ブロック１１０に報告する。
【００８０】
次に、第１の機能ブロック１１０は、上記動作プログラムにより、第２の機能ブロック１２０が時間t２から仕事２３を実行することを読み取る。その仕事２３に相応しい動作電圧ＶＤＤ２３、動作周波数ｆＣＬＫ２３、式（２）に述べたＭ／Ｎを仕事内容と動作電圧、動作周波数、式（２）に述べたＭ／Ｎを前記動作プログラムの別の特定領域に記録された〔表１〕から読み出す。そして、まず、第１の機能ブロック１１０は内蔵された電源レギュレータ１６２に指示して、第２の機能ブロック１２０に電源電圧ＶＤＤ２３を供給する。
【００８１】
次に、第１の機能ブロック１１０は、図３に示す制御信号１８５を介して第２のクロック発生回路１２１のＶＣＯ１８３からの出力信号の周波数をＮ／Ｍ倍（但し、Ｍ＞Ｎ）に分周する回路にしかるべきＭ／Ｎの具体的な値を書き込む。第２のクロック発生回路１２１は、ＰＬＬ回路１８６のセットアップ時間を経過後に安定した動作周波数ｆＣＬＫ２３に設定される。
【００８２】
第１の機能ブロック１１０は、第２の機能ブロック１２０の電源電圧ＶＤＤ２３と動作周波数ｆＣＬＫ２３が安定するに必要な時間経過後に、第２の機能ブロック１２０が仕事２３の開始を許可するので、これを受けて第２の機能ブロック１２０は仕事２３を開始する。
【００８３】
第１の機能ブロック１１０内にあるデータ信号を、第２の機能ブロック１２０内にある内部メモリ１２２に書き込み場合について説明したが、第２の機能ブロック１２０内にあるデータ信号を第１の機能ブロック１１０内にある内部メモリ１１２に読み出す場合も基本的な内容は同じであるので、この場合の説明は省略する。
【００８４】
以上で第１の機能ブロック１１０が主導権をとって、第１の機能ブロック１１０内にあるデータ信号を第２の機能ブロック１２０内にある内部メモリ１２２に書き込み場合について説明した。第１の機能ブロック１１０内の内部メモリ１１２と第２の機能ブロック１２０内にある内部メモリ１２２の構成は同一構成であるため、第２の機能ブロック１２０が主導権をとって、第２の機能ブロック１２０内にあるデータ信号を第１の機能ブロック１１０内にある内部メモリ１１２に書き込むことも可能である。但し、第１の機能ブロック１１０が汎用ＣＰＵであり、第２の機能ブロック１２０が多機能ＤＳＰであることを本実施の形態では仮定しているので、あくまで本実施の形態では第１の機能ブロック１１０である汎用ＣＰＵが半導体集積回路装置１００全体の動作を管理しているが、動作の中である期間だけ第２の機能ブロック１２０が主導権をとって、第２の機能ブロック１２０内にあるデータ信号を第１の機能ブロック１１０内にある内部メモリ１１２に書き込むこともできるように構成することにより半導体集積回路装置１００全体の動作に自由度を持たせている。
【００８５】
以上詳細に説明したように、本実施の形態によれば、半導体集積回路装置１００は、汎用ＣＰＵを想定した第１の機能ブロック１１０、多機能ＤＳＰからなる第２の機能ブロック１２０を備え、第１の機能ブロック１１０は、機能ブロック内の回路に供給する第１のシステムクロックを発生する第１のクロック発生回路１１１と、第１のシステムクロックによりデータを読み出し／書き込みする第１の内部メモリ１１２と、第１のシステムクロックと第２のシステムクロックとを選択し、該選択したクロックを第１の内部メモリ１１２に供給するセレクタ１１３とを有し、第２の機能ブロック１２０は、機能ブロック内の回路に供給する第２のシステムクロックを発生する第２のクロック発生回路１２１と、第２のシステムクロックによりデータを読み出し／書き込みする第２の内部メモリ１２２と、第１のシステムクロックと第２のシステムクロックとを選択し、該選択したクロックを第２の内部メモリ１２２に供給するセレクタ１２３とを有し、第１の内部メモリ１１１に供給されるクロックには、第１のシステムクロックと第２のシステムクロックからセレクタ１１３により選択された一のクロックが支給され、第２の内部メモリ１２２に供給されるクロックには、第１のシステムクロックと第２のシステムクロックからセレクタ１２３により選択された一のクロックが支給される。これにより、第１の機能ブロックとデータを読み書きする第２の機能ブロック内にある第２の内部メモリは共に、第１の機能ブロック内にある回路に支給される第１のシステムクロックで動作するようになるので、第１の機能ブロックと第２の機能ブロック内にある第２の内部メモリは完全に同期が取れるようになる。したがって、本半導体集積回路装置１００においては、各々の機能ブロックがDynamic Voltage Scaling技術やAdaptive Voltage Scaling技術をそれぞれの機能ブロックの負荷量に応じて自由に電源電圧とシステムクロック周波数を変えても、機能ブロック間でデータを相互に転送することが可能である。
【００８６】
このように、各々の機能ブロックがDynamic Voltage Scaling技術やAdaptive Voltage Scaling技術をそれぞれの機能ブロックの負荷量に応じて自由に電源電圧とシステムクロック周波数を変えても、機能ブロック間でデータを相互に転送することを可能にし、半導体集積回路、特に、Dynamic Voltage Scaling（DVS）又はAdaptive Voltage Scaling（AVS）技術を用いた低消費電力化に適した半導体集積回路において機能ブロック間での柔軟なデータ転送を実現することができる。これにより、本システムＬＳＩは、Dynamic Voltage Scaling技術やAdaptive Voltage Scaling技術を最大限に活用して低消費電力化を図ることができる。
【００８７】
（実施の形態２）
図９は、本発明の実施の形態２に係る半導体集積回路装置の構成を示す回路ブロック図である。本実施の形態は、機能ブロック内にある内部メモリを機能ブロック数が５個の半導体集積回路に適用した例である。図１と同一構成部分には同一符号を付している。
【００８８】
図９において、半導体集積回路装置２００は、汎用ＣＰＵを想定した第１の機能ブロック２１０、第２の機能ブロック２２０、第３の機能ブロック２３０、第４の機能ブロック２４０、第５の機能ブロック２５０、ＳＤＲＡＭ１３０を制御するＳＤＲＡＭ制御回路１３１、ＤＭＡコントローラ１３２、周辺Ｉ／Ｏ群１３３を制御するＩ／Ｏ制御回路１３４、第１の機能ブロック２１０及びＩ／Ｏ制御回路１３４側に配置されたローカルバス２６１、第２の機能ブロック２２０側に配置されたローカルバス２６２、第３の機能ブロック２３０側に配置されたローカルバス２６３、第４の機能ブロック２４０側に配置されたローカルバス２６４、第５の機能ブロック２５０側に配置されたローカルバス２６５、ローカルバス２６１とローカルバス２６２〜２６５との間に配置されたグローバルバス２６６、ローカルバス２６１とグローバルバス２６６とを接続するバスブリッジ２７１、ローカルバス２６２とグローバルバス２６６とを接続するバスブリッジ２７２、ローカルバス２６３とグローバルバス２６６とを接続するバスブリッジ２７３、ローカルバス２６４とグローバルバス２６６とを接続するバスブリッジ２７４、ローカルバス２６５とグローバルバス２６６とを接続するバスブリッジ２７５、外部から入力されるクロック１５１を基にして逓倍したクロックを生成するクロック発生回路１５２、及び外部電源１６１を基に各部に所定電源を供給する電源レギュレータ２８０を備えて構成される。
【００８９】
第１の機能ブロック２１０は、第１のシステムクロック（ｆＣＬＫ１）２１４を生成する第１のクロック発生回路２１１と、第１の内部メモリ２１２と、第１のシステムクロック２１４と第２のシステムクロック２２４と第３のシステムクロック２３４と第４のシステムクロック２４４と第５のシステムクロック２５４のいずれかのクロックを選択し第１の内部メモリ２１２に供給するセレクタ２１３とを備えて構成される。
【００９０】
また、第２の機能ブロック２２０は、第２のシステムクロック（ｆＣＬＫ2）２２４を生成する第２のクロック発生回路２２１と、第２の内部メモリ２２２と、第１のシステムクロック２１４と第２のシステムクロック２２４と第３のシステムクロック２３４と第４のシステムクロック２４４と第５のシステムクロック２５４のいずれかのクロックを選択し第２の内部メモリ２２２に供給するセレクタ２２３とを備えて構成される。
【００９１】
同様に、第３の機能ブロック２３０は、第３のシステムクロック（ｆＣＬＫ３）２３４を生成する第３のクロック発生回路２３１と、第３の内部メモリ２３２と、第１のシステムクロック２１４と第２のシステムクロック２２４と第３のシステムクロック２３４と第４のシステムクロック２４４と第５のシステムクロック２５４のいずれかのクロックを選択し第３の内部メモリ２３２に供給するセレクタ２３３とを備えて構成される。
【００９２】
第４の機能ブロック２４０は、第４のシステムクロック（ｆＣＬＫ４）２４４を生成する第４のクロック発生回路２４１と、第４の内部メモリ２４２と、第１のシステムクロック２１４と第２のシステムクロック２２４と第３のシステムクロック２３４と第４のシステムクロック２４４と第５のシステムクロック２５４のいずれかのクロックを選択し第４の内部メモリ２４２に供給するセレクタ２４３とを備えて構成される。
【００９３】
第５の機能ブロック２５０は、第５のシステムクロック（ｆＣＬＫ５）２５４を生成する第５のクロック発生回路２５１と、第５の内部メモリ２５２と、第１のシステムクロック２１４と第２のシステムクロック２２４と第３のシステムクロック２３４と第４のシステムクロック２４４と第５のシステムクロック２５４のいずれかのクロックを選択し第５の内部メモリ２５２に供給するセレクタ２５３とを備えて構成される。
【００９４】
上記第１の内部メモリ２１２及び第２の内部メモリ２２２の接続例については、第１の内部メモリ２１２を例に採り図１０により後述する。
【００９５】
クロック発生回路１５２は、システムクロック１５３を生成し、生成したシステムクロック１５３を、第１の機能ブロック２１０内の第１のクロック発生回路２１１、第２の機能ブロック２２０内の第２のクロック発生回路２２１、第３の機能ブロック２３０内の第２のクロック発生回路２３１、第４の機能ブロック２４０内の第２のクロック発生回路２４１、第５の機能ブロック２５０内の第２のクロック発生回路２５１、ＳＤＲＡＭ制御回路１３１、及びＤＭＡコントローラ１３２にそれぞれ供給する。
【００９６】
第１の機能ブロック２１０内にある回路に供給される第１のシステムクロック（ｆＣＬＫ１）２１４は、第１の機能ブロック２１０内にある第１のクロック発生回路２１１で生成される。また、第２の機能ブロック２２０内にある回路に供給される第２のシステムクロック（ｆＣＬＫ２）２２４は第２の機能ブロック２２０内にある第２のクロック発生回路２２１で生成され、第３の機能ブロック２３０内にある回路に供給される第３のシステムクロック（ｆＣＬＫ３）２３４は第３の機能ブロック２３０内にある第３のクロック発生回路２３１で生成され、第４の機能ブロック２４０内にある回路に供給される第４のシステムクロック（ｆＣＬＫ４）２４４は第４の機能ブロック２４０内にある第４のクロック発生回路２４１で生成され、第５の機能ブロック２５０内にある回路に供給される第５のシステムクロック（ｆＣＬＫ５）２５４は第５の機能ブロック２５０内にある第５のクロック発生回路２５１で生成される。
【００９７】
また、図９には示されていないが第１の機能ブロック２１０内にある第１のクロック発生回路２１１で生成された第１のシステムクロック２１４はセレクタ２１３に供給されるだけでなく、第２から第５の機能ブロック２２０〜２５０内にあるセレクタ２２３からセレクタ２５３にも供給される。このことは他のシステムクロックにおいても同様である。
【００９８】
電源レギュレータ２８０は、第１の機能ブロック２１０に電源２８１を、第２の機能ブロック２２０に電源２８２を、第３の機能ブロック２３０に電源２８３を、第４の機能ブロック２４０に電源２８４を、第５の機能ブロック２５０に電源２８５をそれぞれ供給する。
【００９９】
本実施の形態では、全体のフロー制御関係は汎用ＣＰＵを想定した第１の機能ブロック２１０内の内部メモリ２１２に保存されているメインプログラム上に記載されており、処理能力を要するＡＶ関連の処理などは、多機能ＤＳＰを想定した第２から第５の機能ブロック２２０〜２５０内の内部メモリ２２２〜２５２に保存されているサブプログラム上に記載されている。この意味からも、本半導体集積回路の仕事全体の管理を行っているのは汎用ＣＰＵを想定した第１の機能ブロック２１０である。
【０１００】
以下、上述のように構成された半導体集積回路装置２００の動作について説明する。
【０１０１】
第１の機能ブロック２１０内の第１のクロック発生回路２１１では、内部のＰＬＬ回路（図３参照）を用いて、半導体集積回路装置２００に供給されたシステムクロック１５３を基に第１の機能ブロック２１０の時間軸に依存して変化する演算処理量を処理するために必要な第１のシステムクロック２１４を生成する。
【０１０２】
同様に、第２の機能ブロック２２０内の第２のクロック発生回路２２１では、第２の機能ブロック２２０の時間軸に依存して変化する演算処理量を処理するために必要な第２のシステムクロック２２４を生成し、第３の機能ブロック２３０内の第３のクロック発生回路２３１では、第３の機能ブロック２３０の時間軸に依存して変化する演算処理量を処理するために必要な第３のシステムクロック２３４を生成する。また、第４の機能ブロック２４０内の第４のクロック発生回路２４１では、第４の機能ブロック２４０の時間軸に依存して変化する演算処理量を処理するために必要な第４のシステムクロック２４４を生成し、第５の機能ブロック２５０内の第５のクロック発生回路２５１では、第５の機能ブロック２５０の時間軸に依存して変化する演算処理量を処理するために必要な第５のシステムクロック２５４を生成する。
【０１０３】
汎用ＣＰＵである第１の機能ブロック２１０は、大容量の内部メモリ２１２を有し、この汎用ＣＰＵである第１の機能ブロック２１０内にあるスケジューラ（図示せず）が半導体集積回路装置２００全体の動作を統括している。このスケジューラは、具体的には汎用ＣＰＵによるメインプログラム実行により実現される。
【０１０４】
第１の機能ブロック２１０は、上記メインプログラムを実行して半導体集積回路装置２００全体の動作を統括するために、内部メモリ２１２に以下の情報を格納する。すなわち、第１の機能ブロック２１０の内部メモリ２１２は、第２の機能ブロック２２０がどのような時間からどのような仕事量の仕事をするためにどのような能力で処理しなければならなく、そのためには第２の機能ブロック２２０がどのような周波数で動作し、その動作周波数で第２の機能ブロック２２０が動作するためにはどのような電源電圧に設定する必要があるかの情報や、第３の機能ブロック２３０がどのような時間からどのような仕事量の仕事をするためにどのような能力で処理しなければならなく、そのためには第３の機能ブロック２３０がどのような周波数で動作し、その動作周波数で第３の機能ブロック２３０が動作するためにはどのような電源電圧に設定する必要があるかの情報や、第４の機能ブロック２４０がどのような時間からどのような仕事量の仕事をするためにどのような能力で処理しなければならなく、そのためには第４の機能ブロック２４０がどのような周波数で動作し、その動作周波数で第４の機能ブロック２４０が動作するためにはどのような電源電圧に設定する必要があるかの情報や、第５の機能ブロック２５０がどのような時間からどのような仕事量の仕事をするためにどのような能力で処理しなければならなく、そのためには第５機能ブロック２５０がどのような周波数で動作し、その動作周波数で第５の機能ブロック２５０が動作するためにはどのような電源電圧に設定する必要があるかの情報を有している。
【０１０５】
第１の機能ブロック２１０、第２の機能ブロック２２０、第３の機能ブロック２３０、第４の機能ブロック２４０、及び第５の機能ブロック２５０の電源電圧は、内蔵された電源レギュレータ２８０により生成され、各機能ブロックに対して第１の機能ブロック２１０に電源２８１が、第２の機能ブロック２２０に電源２８２が、第３の機能ブロック２３０に電源２８３が、第４の機能ブロック２４０に電源２８４が、第５の機能ブロック２５０に電源２８５がそれぞれ供給される。
【０１０６】
図１０は、上記第１の機能ブロック２１０内にある内部メモリ２１２の接続図を示す図、図１１は、上記第２の機能ブロック２２０内にある第２の内部メモリ２２２の接続を示す図である。
【０１０７】
図１０において、２１２は第１の機能ブロック２１０内にある第１の内部メモリ（内部メモリ<１>）、２９１Ａはチップセレクト信号、２９２Ａはアウトプットイネーブル信号、２９３Ａはリード／ライト信号、２９４Ａはアドレス信号、２９５Ａはデータ信号、２９６Ａはローカルバス、２１４は第１の機能ブロック２１０内にある回路に供給される第１のシステムクロック、２２４は第２の機能ブロック２２０内にある回路に供給される第２のシステムクロック、２３４は第３の機能ブロック２３０内にある回路に供給される第３のシステムクロック、２４４は第４の機能ブロック２４０内にある回路に供給される第４のシステムクロック、２５４は第５の機能ブロック２５０内にある回路に供給される第５のシステムクロック、２１３はセレクタ、２９７Ａはセレクタ２１３の制御信号、２９８Ａはセレクタ２１３の制御信号２９７Ａにより選択された、第１の機能ブロック２１０内にある回路に供給される第１のシステムクロック２１４か第２の機能ブロック２２０内にある回路に供給される第２のシステムクロック２２４か第３の機能ブロック２３０内にある回路に供給される第３のシステムクロック２３４か第４の機能ブロック２４０内にある回路に供給される第４のシステムクロック２４４か第５の機能ブロック２５０内にある回路に供給される第５のシステムクロック２５４のいずれかのシステムクロック信号である。
【０１０８】
また、図１１において、２２２は第２の機能ブロック２１０内にある第２の内部メモリ（内部メモリ<２>）、２９１Ｂはチップセレクト信号、２９２Ｂはアウトプットイネーブル信号、２９３Ｂはリード／ライト信号、２９４Ｂはアドレス信号、２９５Ｂはデータ信号、２９６Ｂはローカルバス、２１４は第１の機能ブロック２１０内にある回路に供給される第１のシステムクロック、２２４は第２の機能ブロック２２０内にある回路に供給される第２のシステムクロック、２３４は第３の機能ブロック２３０内にある回路に供給される第３のシステムクロック、２４４は第４の機能ブロック２４０内にある回路に供給される第４のシステムクロック、２５４は第５の機能ブロック２５０内にある回路に供給される第５のシステムクロック、２２３はセレクタ、２９７Ｂはセレクタ２２３の制御信号、２９８Ｂはセレクタ２２３の制御信号２９７Ｂにより選択された、第１の機能ブロック２１０内にある回路に供給される第１のシステムクロック２１４か第２の機能ブロック２２０内にある回路に供給される第２のシステムクロック２２４か第３の機能ブロック２３０内にある回路に供給される第３のシステムクロック２３４か第４の機能ブロック２４０内にある回路に供給される第４のシステムクロック２４４か第５の機能ブロック２５０内にある回路に供給される第５のシステムクロック２５４のいずれかのシステムクロック信号である。
【０１０９】
〔第１の機能ブロック２１０内のデータ信号を第２の機能ブロック２２０内にある第２の内部メモリ２２２に書き込む動作〕
第１の機能ブロック２１０が主導権をとって、第１の機能ブロック２１０内にあるデータ信号を、第２の機能ブロック２２０内にある内部メモリ２２２に書き込みたい場合には、第２の機能ブロック２２０内にある内部メモリ２２２が第２の機能ブロック２２０内にある回路によって使用されていないことを確認後、セレクタ２２３の制御信号２９７Ｂ（図１１参照）を制御してシステムクロック２９８Ｂに第１の機能ブロック２１０内にある回路に供給される第１のシステムクロック２１４が選択されるように設定する。そして、チップセレクト信号２９１Ｂを“Ｈ”に設定し、リード／ライト信号２９３Ｂを”ライト状態”に設定し、第２の機能ブロック２２０内にある内部メモリ２２２のアドレス２９４Ｂを設定し、バスブリッジ２７１及びバスブリッジ２７２を制御してローカルバス２６１、グローバルバス２６６、ローカルバス２６２経由で第１の機能ブロック２１０内にあるデータ信号を第２の機能ブロック２２０内にある内部メモリ２２２のデータ信号２９５Ｂへ送り、しかる後に第２の機能ブロック２２０内にある内部メモリ２２２に書き込む。
【０１１０】
〔第２の機能ブロック２２０内にある第２の内部メモリ２２２のデータ信号を第１の機能ブロック２１０内の第１の内部メモリ２１２に読み出す動作〕
第１の機能ブロック２１０が主導権をとって、第１の機能ブロック２１０内へ第２の機能ブロック２２０内にある内部メモリ２２２のデータ信号を読み出す場合には、第２の機能ブロック２２０内にある内部メモリ２２２が第２の機能ブロック２２０内にある回路によって使用されていないことを確認後、セレクタ２１３の制御信号２９７Ａ（図１０参照）を制御してシステムクロック２９８Ａに第１の機能ブロック２１０内にある回路に供給される第１のシステムクロック２１４が選択されるように設定し、チップセレクト信号２９１Ａを“Ｈ”に設定し、リード／ライト信号２９３Ａを“リード状態”に設定し、第２の機能ブロック２２０内にある内部メモリ２２２のアドレス２９４Ａを読み出したい領域のアドレスに設定し、バスブリッジ２７２及びバスブリッジ２７１を制御してローカルバス２６２、グローバルバス２６６、ローカルバス２６１経由で第２の機能ブロック２２０内にある内部メモリ２２２内に記憶されているデータ信号を第１の機能ブロック２１０内に読み出す。
【０１１１】
また、第２の機能ブロック２１０が主導権をとって、第２の機能ブロック２２０内にあるデータ信号を第１の機能ブロック２１０内にある内部メモリ２１２に書き込みたい場合や第２の機能ブロック２２０内へ第１の機能ブロック２１０内にある内部メモリ２１２のデータ信号を読み出す場合も上記と同様にすることにより実現できる。
【０１１２】
以上では、第１の機能ブロック２１０と第２の機能ブロック２２０相互でのデータの書き込み、読み出しについて説明してきたが、第１の機能ブロック２１０、第２の機能ブロック２２０、第３の機能ブロック２３０、第４の機能ブロック２４０、第５の機能ブロック２５０間での相互でのデータの書き込み、読み出しにおいても同様に実現できる。但し、本実施の形態では、第１の機能ブロック２１０が汎用ＣＰＵであり、それ以外の第２の機能ブロック２２０、第３の機能ブロック２３０、第４の機能ブロック２４０、第５の機能ブロック２５０は多機能ＤＳＰであることを仮定しているので、あくまで本実施の形態にあっても第１の機能ブロック２１０である汎用ＣＰＵが半導体集積回路装置２００全体の動作を管理している。したがって、第１の機能ブロック２１０、第２の機能ブロック２２０、第３の機能ブロック２３０、第４の機能ブロック２４０、第５の機能ブロック２５０間での相互でのデータの書き込み、読み出しにおいても、基本的には、汎用ＣＰＵである第１の機能ブロック２１０の管理の下、汎用ＣＰＵである第１の機能ブロック２１０の指示に従って、第２の機能ブロック２２０、第３の機能ブロック２３０、第４の機能ブロック２４０、第５の機能ブロック２５０は相互でのデータの書き込み、読み出しを行っている。
【０１１３】
（実施の形態３）
図１２は、本発明の実施の形態３に係る半導体集積回路装置の構成を示す回路ブロック図である。本実施の形態は、半導体集積回路装置のＤＭＡコントローラ内にクロック発生回路を設けた場合の例である。図９と同一構成部分には同一符号を付して重複箇所の説明を省略する。
【０１１４】
図１２において、半導体集積回路装置３００は、汎用ＣＰＵを想定した第１の機能ブロック２１０、第２の機能ブロック２２０、第３の機能ブロック２３０、第４の機能ブロック２４０、第５の機能ブロック２５０、ＳＤＲＡＭ１３０を制御するＳＤＲＡＭ制御回路１３１、クロック発生回路を備えるＤＭＡコントローラ３１０、周辺Ｉ／Ｏ群１３３を制御するＩ／Ｏ制御回路１３４、第１の機能ブロック２１０及びＩ／Ｏ制御回路１３４側に配置されたローカルバス２６１、第２の機能ブロック２２０側に配置されたローカルバス２６２、第３の機能ブロック２３０側に配置されたローカルバス２６３、第４の機能ブロック２４０側に配置されたローカルバス２６４、第５の機能ブロック２５０側に配置されたローカルバス２６５、ローカルバス２６１とローカルバス２６２〜２６５との間に配置されたグローバルバス２６６、ローカルバス２６１とグローバルバス２６６とを接続するバスブリッジ２７１、ローカルバス２６２とグローバルバス２６６とを接続するバスブリッジ２７２、ローカルバス２６３とグローバルバス２６６とを接続するバスブリッジ２７３、ローカルバス２６４とグローバルバス２６６とを接続するバスブリッジ２７４、ローカルバス２６５とグローバルバス２６６とを接続するバスブリッジ２７５、外部から入力されるクロック１５１を基にして逓倍したクロックを生成するクロック発生回路１５２、及び外部電源１６１を基に各部に所定電源を供給する電源レギュレータ２８０を備えて構成される。
【０１１５】
ＤＭＡコントローラ３１０は、ＤＭＡコントローラ３１０内にＤＭＡコントローラ用のクロック発生回路３１１を備える。３１２はＤＭＡコントローラ用のクロック発生回路３１１で生成されたＤＭＡコントローラ用のクロックである。
【０１１６】
ＤＭＡコントローラ３１０内にあるＤＭＡコントローラ用のクロック発生回路３１１の回路構成も、前記図９及び図３に示した第２の機能ブロック２２０内にある第２のクロック発生回路２２１と同じ構成である。汎用ＣＰＵを想定する第１の機能ブロック２１０（図２では第１の機能ブロック１１０）からの制御信号で設定されるＶＣＯからの出力信号の周波数の分周比率であるＮ／Ｍを変えることができる。つまり、ＤＭＡコントローラ３１０の転送速度を決定するクロック周波数は、汎用ＣＰＵを想定する第１の機能ブロック２１０から信号により制御することができる。
【０１１７】
図１３は、上記第２の機能ブロック２２０内にある内部メモリ２２２の接続図を示す図、図１４は、上記第３の機能ブロック２３０内にある第３の内部メモリ２３２の接続を示す図である。
【０１１８】
図１３において、第２の機能ブロック２２０内のセレクタ２２３には、さらにＤＭＡコントローラ用のクロック３１２が入力される。同様に、図１４において、第３の機能ブロック２３０内のセレクタ２３３には、さらにＤＭＡコントローラ用のクロック３１２が入力される。
【０１１９】
以下、上述のように構成された半導体集積回路装置３００の動作について説明する。基本的な動作は、実施の形態２と同様であるため説明を省略し、ＤＭＡコントローラ３１０の動作について説明する。
【０１２０】
ＤＭＡコントローラ３１０が主導権をとって、第３の機能ブロック２３０内にある内部メモリ２３２へ第２の機能ブロック２２０内にある内部メモリ２２２のデータ信号を転送する場合には、第２の機能ブロック２２０内にある内部メモリ２２２が第２の機能ブロック２２０内にある回路によって使用されていないこと確認後、第２の機能ブロック２２０内にあるセレクタ２２３の制御信号２９７Ｂを制御してシステムクロック２９８ＢにＤＭＡコントローラ３１０内の回路に供給されるＤＭＡコントローラ用のクロック３１２が選択されるように設定し、チップセレクト信号２９１Ｂを“Ｈ”に設定し、リード／ライト信号２９３Ｂを“リード状態”に設定し、第２の機能ブロック２２０内にある内部メモリ２２２のアドレス２９４Ｂを読み出したい領域のアドレスに設定する。
【０１２１】
そして、第３の機能ブロック２３０内にある内部メモリ２３２が第３の機能ブロック２３０内にある回路によって使用されていないことを確認後、第３の機能ブロック２３０内にあるセレクタ２３３の制御信号２９７Ｃを制御してシステムクロック２９８ＣにＤＭＡコントローラ３１０内の回路に供給ＤＭＡコントローラ用のクロック３１２が選択されるように設定し、チップセレクト信号２９１Ｃを“Ｈ”に設定し、リード／ライト信号２９３Ｃを“ライト状態”に設定し、第３の機能ブロック２３０内にある内部メモリ２３２のアドレス２９４Ｃに書き込みたい領域のアドレスを設定し、バスブリッジ２７２、バスブリッジ２７３を制御してローカルバス２６２、グローバルバス２６６、ローカルバス２６３経由で第２の機能ブロック２２０内にある内部メモリ２２２内に記憶されているデータ信号を第３の機能ブロック２３０内にある内部メモリ２３２内に転送する。
【０１２２】
このようにして第２の機能ブロックから第５の機能ブロックがそれぞれ独自のシステムクロックで動作していても、それぞれの内部メモリ関連のリソースが使用されていないときを利用して、ＤＭＡコントローラ３１０が、ＤＭＡコントローラ３１０内の回路に供給されるＤＭＡコントローラ用のクロック３１２でそれぞれの内部メモリ２１２〜２５２の動作を支配することにより、第２の機能ブロックから第５の機能ブロック間で自由にデータを転送することができる。
【０１２３】
ここで、通常のＤＭＡコントローラと同じように、本実施の形態のＤＭＡコントローラ３１０も汎用ＣＰＵである第１の機能ブロック２１０が別の仕事で忙しい時に、第１の機能ブロック２１０の仕事の一部である第１の機能ブロック２１０以外の機能ブロック間のデータ信号の転送を第１の機能ブロック２１０から委託されて実行する。この場合も、半導体集積回路装置３００全体の動作を管理しているのは汎用ＣＰＵである第１の機能ブロック２１０であり、ＤＭＡコントローラ３１０は一時的に２つの機能ブロック間のデータ転送を委託されて実効するだけであり、ＤＭＡコントローラ３１０は２つの機能ブロック間のデータ転送が終了した時には、「２機能ブロック間のデータ転送が終了したとの情報」を汎用ＣＰＵである第１の機能ブロック２１０に報告する。
【０１２４】
このように、半導体集積回路装置３００のＤＭＡコントローラ３１０は、内部にクロック発生回路３１１を有し、独自のシステムクロック３１２を発生できる。したがって、第２の機能ブロック２２０から第５の機能ブロック２５０の内の２機能ブロック間でのデータ転送時に、それぞれの機能ブロックが内部メモリ関連のリソースを使用せず独自の仕事を独自の動作周波数で行っていている場合には、第１の機能ブロック２１０はそのことにわずらわせられることなく、２機能ブロック間のデータ転送に必要とされる動作周波数を有するシステムクロックｆＣＬＫＤＭＡをＤＭＡコントローラ３１０の内部のクロック発生回路３１１で発生させ、このシステムクロックｆＣＬＫＤＭＡを用いて、機能ブロック間でのデータ信号を転送できる。
【０１２５】
以上の説明は本発明の好適な実施の形態の例証であり、本発明の範囲はこれに限定されることはない。
【０１２６】
例えば、各実施の形態では、各機能ブロック内にそれぞれクロック発生回路を有して独自のシステムクロックを発生する場合について説明してきたが、すべての機能ブロックがそれぞれクロック発生回路を持つ必要は必ずしもない。いくつかの機能ブロックはクロック発生回路で生成されたシステムクロックを機能ブロック内のシステムクロックとして使用してもよい。
【０１２７】
また、各機能ブロックのクロック発生回路の機能を本半導体集積回路装置の外部から入力されるクロックをもとにして逓倍したクロックを生成するクロック発生回路のブロックに集約して、その結果発生するシステムクロックを各機能ブロックに供給するような構成も本発明に含まれる。
【０１２８】
また、以上の実施の形態２又は実施の形態３においては、第２の機能ブロックから第５の機能ブロックすべてを“多機能ＤＳＰ”として定義したが、ある機能ブロックは演算中心の処理を実行するだけで一般的にいう“ＤＳＰ”に該当しない場合も含まれる。
【０１２９】
また、“多機能ＤＳＰ”を想定した機能ブロックとして第２の機能ブロックから第５の機能ブロックの４つの機能ブロックがある場合について説明してきたが、この数は勿論４つに限定されるものではない。
【０１３０】
また、以上の各実施の形態では、各機能ブロックのその仕事に相応しい動作電圧、動作周波数を前記動作プログラムに保存された〔表１〕から読み出す。この表は動作プログラムに記載されているそれぞれの仕事内容を事前に検討し、それぞれの仕事を第２の機能ブロック１２０の多機能ＤＳＰに行わせる場合どのような動作周波数を必要として、そのためにはどのような電源電圧に設定する必要があるかに対する綿密なシミュレーションに基づいて決定されているとしている。
【０１３１】
Dynamic Voltage Scaling（DVS）技術を実現する方法としは以上のようなやり方の他に、前記非特許文献１で述べられているように、Hardware Performance Monitorでシステムの負荷をモニタし、Intelligent Energy Management（IEM）とAdaptive Power Control（APC）が負荷に応じた最適な電源電圧と動作周波数を外部に要求し、この要求に応じて外付けのＤＣ−ＤＣコンバータを内蔵した電源電圧／動作周波数発生回路が最適な電源電圧と動作周波数をチップに供給するように閉ループを構成するやり方も存在する。この方法をAdaptive Voltage Scaling（AVS）技術とも呼ぶ。
【０１３２】
但し、本発明の内容は直接的にはDynamic Voltage Scaling（DVS）技術の実現方法と関係しないので、実施例１から実施例３で述べたようなDynamic Voltage Scaling（DVS）技術の実現方法を実施例の中では用いて説明しているが、前記非特許文献１で述べられているようなDynamic Voltage Scaling（DVS）技術を活用することもできることは勿論である。
【０１３３】
また、本実施の形態では半導体集積回路装置という名称を用いたが、これは説明の便宜上であり、半導体集積回路等であってもよいことは勿論である。
【０１３４】
さらに、上記半導体集積回路装置を構成する各回路部、例えばセレクタ等の種類、数及び接続方法などは前述した実施の形態に限られない。
【産業上の利用可能性】
【０１３５】
本発明に係る半導体集積回路装置は、半導体集積回路、特に、Dynamic Voltage Scaling（DVS）技術を用いた低消費電力化に適したシステムＬＳＩ内の機能ブロック間での柔軟なデータの転送に有効である。
【図面の簡単な説明】
【０１３６】
【図１】本発明の実施の形態１に係る半導体集積回路装置の構成を示すブロック図
【図２】本実施の形態１に係る半導体集積回路装置の機能ブロック内にある内部メモリの接続を示す図
【図３】本実施の形態１に係る半導体集積回路装置の第２の機能ブロック内にある第２のクロック発生回路のブロック図
【図４】本実施の形態１に係る半導体集積回路装置の第１の機能ブロック内にある第１のクロック発生回路のブロック図
【図５】本実施の形態１に係る半導体集積回路装置の第２の機能ブロックの仕事量、第２の機能ブロックの電源電圧（動作周波数）の時間経過依存性を示す図
【図６】本実施の形態１に係る半導体集積回路装置の第１の機能ブロックの仕事量、第１の機能ブロックの電源電圧（動作周波数）の時間経過依存性を示す図
【図７】本実施の形態１に係る半導体集積回路装置の第１の機能ブロック内にある内部メモリの接続図
【図８】本実施の形態１に係る半導体集積回路装置の機能ブロック内にある内部メモリの接続を示す図
【図９】本発明の実施の形態２に係る半導体集積回路装置の構成を示すブロック図
【図１０】本実施の形態２に係る半導体集積回路装置の第１の機能ブロック内にある内部メモリの接続を示す図
【図１１】本実施の形態２に係る半導体集積回路装置の第２の機能ブロック内にある内部メモリの接続を示す図
【図１２】本実施の形態３に係る半導体集積回路装置の構成を示すブロック図
【図１３】本実施の形態３に係る半導体集積回路装置の第２の機能ブロック内にある内部メモリの接続を示す図
【図１４】本実施の形態３に係る半導体集積回路装置の第３の機能ブロック内にある内部メモリの接続を示す図
【図１５】従来のシステムＬＳＩのブロック図
【図１６】従来のシステムＬＳＩのブロック図
【図１７】従来のシステムＬＳＩのブロック図
【符号の説明】
【０１３７】
１００，２００，３００  半導体集積回路装置
１１０，２１０  第１の機能ブロック
１１３，１２３，２１３，２２３  セレクタ
１２０，２２０  第２の機能ブロック
１３１  ＳＤＲＡＭ制御回路
１３２  ＤＭＡコントローラ
１３４  Ｉ／Ｏ制御回路
１４１，１４２  ローカルバス
１４３  グローバルバス
１４４，１４５  バスブリッジ
１５２  クロック発生回路
１６１  外部電源
１６２  電源レギュレータ
２３０  第３の機能ブロック
２４０  第４の機能ブロック
２５０  第５の機能ブロック
【図１】
2008123531.tif 000004
【図２】
2008123531.tif 000005
【図３】
2008123531.tif 000006
【図４】
2008123531.tif 000007
【図５】
2008123531.tif 000008
【図６】
2008123531.tif 000009
【図７】
2008123531.tif 000010
【図８】
2008123531.tif 000011
【図９】
2008123531.tif 000012
【図１０】
2008123531.tif 000013
【図１１】
2008123531.tif 000014
【図１２】
2008123531.tif 000015
【図１３】
2008123531.tif 000016
【図１４】
2008123531.tif 000017
【図１５】
2008123531.tif 000018
【図１６】
2008123531.tif 000019
【図１７】
2008123531.tif 000020