半導体集積回路
【課題】低消費電力化に適したAVS技術又はDVS技術を実現した半導体集積回路を提供すること。
【解決手段】半導体集積回路は、クリティカル・パスを形成する第1のフリップ・フロップ、組み合わせ回路及び第2のフリップ・フロップと、前記組み合わせ回路の後段に設けられる第1の遅延回路及び第3のフリップ・フロップと、前記組み合わせ回路の後段に設けられる第2の遅延回路及び第4のフリップ・フロップと、第2のフリップ・フロップの出力と第3のフリップ・フロップの出力とを比較する第1の比較回路と、第2のフリップ・フロップの出力と第4のフリップ・フロップの出力とを比較する第2の比較回路と、これら比較回路の出力に応じて、前記組み合わせ回路に供給される電源電圧を制御する制御回路とを備える。なお、第1の遅延回路による遅延時間と第2の遅延回路による遅延時間は異なる。
【解決手段】半導体集積回路は、クリティカル・パスを形成する第1のフリップ・フロップ、組み合わせ回路及び第2のフリップ・フロップと、前記組み合わせ回路の後段に設けられる第1の遅延回路及び第3のフリップ・フロップと、前記組み合わせ回路の後段に設けられる第2の遅延回路及び第4のフリップ・フロップと、第2のフリップ・フロップの出力と第3のフリップ・フロップの出力とを比較する第1の比較回路と、第2のフリップ・フロップの出力と第4のフリップ・フロップの出力とを比較する第2の比較回路と、これら比較回路の出力に応じて、前記組み合わせ回路に供給される電源電圧を制御する制御回路とを備える。なお、第1の遅延回路による遅延時間と第2の遅延回路による遅延時間は異なる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、低消費電力化に適したAVS(Adaptive Voltage Scaling)技術又はDVS(Dynamic Voltage Scaling)を用いた半導体集積回路に関する。
【背景技術】
【0002】
3年に4倍という半導体の集積度向上というペースがここ10年以上続いたために半導体集積回路の規模は膨大になり、半導体集積回路のチップ構成の仕方も大きく変化を遂げてきた。
【0003】
図15は、システムLSIの構成を示すブロック図である。図15において、半導体集積回路600は、汎用のCPU611、DSP(Digital Signal Processor)612、専用回路613、専用回路614、SDRAM(Synchronous Dynamic RAM)制御回路615、及びDMA(Direct Memory Access)コントローラ616などから構成されており、これらは共通のバス617を介して相互に接続されている。CPU611及びDSP612は、それぞれ内部に内部メモリ611a及び内部メモリ612aを有する。半導体集積回路600は、通常、外部に大容量のSDRAM618を用意している。
【0004】
現在でも半導体集積回路に搭載される機能に対する要求は日々めまぐるしく変わる可能性があり、図15のように一部の機能を専用回路613や専用回路614のように構成してしまうと、このような要望の変化に迅速に対応できない可能性がある。
【0005】
そのため、現状の段階では図16のように、汎用CPU以外の演算機能を中心とする機能に対しては「多機能DSP+拡張機能」という構成にして、変化する可能性がある仕様に対しては多機能DSP上のソフトで対応するようになりつつある。
【0006】
図16は、このようなシステムLSIの構成を示すブロック図である。図16において、半導体集積回路700は、汎用のCPU711、多機能DSP721及び拡張機能722からなる演算機能部723、多機能DSP724及び拡張機能725からなる演算機能部726、SDRAM制御回路715、DMAコントローラ716、各機能部側に配置されたローカルバス727〜729、SDRAM制御回路715及びDMAコントローラ716側に配置されたグローバルバス730、及びローカルバス727〜729とグローバルバス730とを接続するバスブリッジ731〜733を備えて構成される。多機能DSP721は、内部メモリ721aを有する。バス構成も各機能部にはローカルバス727〜729が割り当てられ、SDRAM制御回路715側にはグローバルバス730が配置され、ローカルバス727〜729とグローバルバス730の間はバスブリッジ731〜733が置かれている。
【0007】
今後半導体プロセスの進歩により、ますます多くの機能が半導体集積回路に搭載されるようになると、半導体集積回路の構成はさらに図17のように変化するであろう。
【0008】
図17は、システムLSIのさらに別の構成を示すブロック図である。図17において、半導体集積回路800は、1つの汎用のCPU811、内部メモリ841a〜844aを有する4個の汎用演算プロセッサ841〜844、SDRAM制御回路815、DMAコントローラ816、周辺I/O群860を制御するI/O制御回路845、CPU811及びI/O制御回路845側に配置されたローカルバス846、汎用演算プロセッサ841〜844側に配置されたローカルバス847〜850、ローカルバス846とローカルバス847〜850との間に配置されたグローバルバス851、ローカルバス847〜50とグローバルバス851とを接続するバスブリッジ852〜855、及びローカルバス846とグローバルバス851とを接続するバスブリッジ856を備える。
【0009】
半導体集積回路800では、1つの汎用CPU811と数個(4個から8個程度)の汎用演算プロセッサ841〜844がローカルバス846〜850、グローバルバス851とバスブリッジ852〜856を介して接続され、外部には大容量のSDRAM818を配置し、SDRAM制御回路815は、汎用CPU811、数個の汎用演算プロセッサ841〜844、DMAコントローラ816などとSDRAM818の調停を行う。
【0010】
上述したように半導体集積回路の集積度が上がってくると、最も深刻な問題として動作時及びスタンバイ時の増大する消費電力の問題がある。この問題の解決策として最も注目を浴びている技術として、DVS(Dynamic Voltage Scaling)技術又はAVS(Adaptive Voltage Scaling)技術がある。これらの技術に関する内容に関しては以下の文献(例えば、特許文献1,2及び非特許文献1,2)に詳細に述べられているので、説明は省略する。
【0011】
しかしながら、このような従来の半導体集積回路にあっては、以下のような問題点があった。
【0012】
非特許文献1によると、AVS技術には、現状において大きな制限事項がある。現状のAVS技術では、チップ全体に対してこの技術を採用することを前提にしている。この場合ではチップ全体が同時に電源電圧とそれに対応したシステム・クロック周波数を変えるようになっている。つまり、このシステムにおいて、チップの電源電圧、そしてシステム・クロック周波数は時間軸で変化して、仕事の付加量が大きいときにはチップの電源電圧を高くし(例えば、VDD=1.5V)、そしてシステム・クロック周波数も高くする(例えば、fclk=400MHz)ように、CPUが制御する。また、仕事の負荷量が小さくなるとチップの電源電圧を低くし(例えば、VDD=1.0V)、そしてシステム・クロック周波数も低くする(例えば、fclk=200MHz)ように、CPUが制御する。こうすることにより、このチップで消費される消費電力を少なくすることができる。通常システムLSIにはビデオ信号処理ブロック、オーディオ信号処理ブロック、制御信号処理ブロックなど各種の機能ブロックが存在して、しかも、これらの機能ブロック間ではその処理に必要とされる仕事の負荷量に大きな差がある。
【0013】
この問題に対して課題解決を試みようとしている先行技術に、上記非特許文献2がある。ここでは、オーディオ信号処理ブロックの電源電圧は0.9V/1.2V、システム・クロック周波数は90MHz/180MHzから選択できるようにするが、オーディオ信号処理ブロック以外のブロック(ここにはビデオ信号処理ブロックなどが存在する)に対しては、電源電圧は1.2V、システム・クロック周波数は180MHzに固定している。
【0014】
以上の説明では各機能ブロックにおいて、それぞれの仕事内容に対応して多機能DSPにとってどのような電源電圧に設定し、かつ、どのような動作周波数に設定するかは事前に綿密なシミュレーションによって決定する。しかし、各多機能DSPのブロックの内部回路を検討すると、この回路にはさまざまな遅延パスが存在する。ある特定の仕事をこの多機能DSPにおいて実行するのに必要な電源電圧値は、この機能ブロックに存在するさまざまな遅延パスの内、クリティカル・パスと呼ぶ一群の遅延パスによってその値が決定されている。ある仕事を実施する間は動作周波数が一定であると想定すると、多機能DSPの動作にマージンを持たせるには電源電圧値にマージンを持たせることになる。
【0015】
当該多機能DSPの消費電力を少なくしようとすると、設定する当該多機能DSPの電源電圧値を、最も遅延値が大きいクリティカル・パスをどうにかパスできるようなギリギリの値に設定すればよい。しかし、このような微妙な設定は事前に綿密なシミュレーションによっても決定するのは非常に困難である。
【0016】
電源電圧値の微妙な設定を実現する技術として従来は、非特許文献3に開示されている、図18に示すカナリア・フリップ・フロップが考案されている。図18において、まず信号901はクロック信号902に同期してフリップ・フロップ903に取り込まれ、次のクロック周期において、組み合わせ回路904により遅延した後、フリップ・フロップ905(以下「メインFF905」という。)に取り込まれる。組み合わせ回路904により遅延した後の信号を遅延素子907により特定の時間だけ遅延させた信号はフリップ・フロップ908(以下「カナリアFF908」という。)に取り込まれる。メインFF905とカナリアFF908からの信号を排他的論理和(Exclusive−OR)回路によって構成される比較回路909によって比較する。メインFF905とカナリアFF908に保持されている値が異なると、信号901は遅延素子907の遅延値だけ現状よりも遅くなると誤動作を起こすことを表している。つまり、このカナリアFFの構成によりタイミングエラーの予測ができている。マージンの観点から見ると、必要なマージンに相当する遅延素子907の遅延値により比較回路909の出力が“1”になった場合は、多機能DSPのブロックの電源電圧値に十分なマージンがないことを表すので、多機能DSPのブロックの電源電圧値VDD950を上げるような制御を行う必要がある。
【0017】
【特許文献1】米国特許第5745375号明細書
【特許文献2】米国特許第6868503号明細書
【特許文献3】特願2004−241466
【特許文献4】特願2006−68400
【非特許文献1】“A Combined Hardware-Software Approach for Low-Power SoC: Applying Adaptive Voltage Scaling and Intelligent Energy Management Software”, Design 2003(System-on-Chip and ASIC Design Conference)
【非特許文献2】“An H.264/MPEG-4Audio/Visual Codec LSI with Module-Wise Dynamic Voltage/Frequency Scaling”, ISSCC2005 Dig. Tech. Papers, pp.132-133
【非特許文献3】T.Sato and Y Kunitake “A Simple Flip-Flop Circuit for Typical-Case Designs for DFM” 8th International Symposium on Quality Electronic Design, 2007
【発明の開示】
【発明が解決しようとする課題】
【0018】
以上に説明したカナリアFFを用いた多機能DSPブロックの電源電圧値の制御は、事前に綿密なシミュレーションによっても決定しきれない電源電圧値の設定に有効な方法であるが、以下のような課題がある。
【0019】
(1)課題1
非特許文献3において、比較回路909の出力が“1”になった場合は、多機能DSPのブロックの電源電圧値に十分なマージンがないことを表すので、多機能DSPのブロックの電源電圧値VDD950を上げるような制御を行う。非特許文献3では、多機能DSPのブロック全体の電源電圧を上げることになる。従って、クリティカル・パスでもない大多数の回路の電源電圧も上げることになり、半導体集積回路の低消費電力化の観点から好ましくない。
【0020】
(2)課題2
非特許文献3のカナリアFFを用いた多機能DSPブロックの電源電圧値の制御の構成では、当該クリティカル・パスのマージンを10%から20%の間に設定したいと思っても、これを実現することはできない。
【0021】
このように、カナリアFFを用いた多機能DSPブロックの電源電圧値の制御には、以上のような大きな2つの課題が存在する。
【0022】
本発明は、低消費電力化に適したAVS(Adaptive Voltage Scaling)技術又はDVS(Dynamic Voltage Scaling)を実現した半導体集積回路を提供することを目的とする。
【課題を解決するための手段】
【0023】
本発明は、クリティカル・パスを有する半導体集積回路であって、前記クリティカル・パスを形成する、直列接続された第1のフリップ・フロップ、組み合わせ回路及び第2のフリップ・フロップと、前記組み合わせ回路の後段に前記第2のフリップ・フロップと並列に設けられる、直列接続された第1の遅延回路及び第3のフリップ・フロップと、前記組み合わせ回路の後段に前記第2のフリップ・フロップと並列に設けられる、直列接続された第2の遅延回路及び第4のフリップ・フロップと、前記第2のフリップ・フロップの出力と前記第3のフリップ・フロップの出力とを比較する第1の比較回路と、前記第2のフリップ・フロップの出力と前記第4のフリップ・フロップの出力とを比較する第2の比較回路と、前記第1の比較回路の出力及び前記第2の比較回路の出力に応じて、前記組み合わせ回路に供給される電源電圧を制御する制御回路と、を備え、前記第1の遅延回路は、前記組み合わせ回路から入力された信号を第1の遅延時間後に出力し、前記第2の遅延回路は、前記組み合わせ回路から入力された信号を前記第1の遅延時間とは異なる第2の遅延時間後に出力する半導体集積回路を提供する。
【0024】
上記半導体集積回路では、前記第1の遅延時間は、前記第1のフリップ・フロップから前記第2のフリップ・フロップまでの遅延時間の5%から30%の値である。
【0025】
上記半導体集積回路では、前記第2の遅延時間は、前記第1の遅延時間の105%から130%の値である。
【0026】
上記半導体集積回路では、前記第1の比較回路の出力が2つの入力信号の“不一致”を示し、かつ、前記第2の比較回路の出力が2つの入力信号の“不一致”を示す場合、前記制御回路は、前記組み合わせ回路に供給される電源電圧を上げるよう制御する。
【0027】
上記半導体集積回路では、前記第1の比較回路の出力が2つの入力信号の“一致”を示し、かつ、前記第2の比較回路の出力が2つの入力信号の“不一致”を示す場合、前記制御回路は、前記組み合わせ回路に供給される電源電圧を保持するよう制御する。
【0028】
上記半導体集積回路では、前記第1の比較回路の出力が2つの入力信号の“一致”を示し、かつ、前記第2の比較回路の出力が2つの入力信号の“一致”を示す場合、前記制御回路は、前記組み合わせ回路に供給される電源電圧を下げるよう制御する。
【0029】
上記半導体集積回路では、前記第1のフリップ・フロップ及び前記第2のフリップ・フロップには等しい電源電圧が供給され、当該電源電圧は、前記組み合わせ回路に供給される電源電圧より低い。
【0030】
上記半導体集積回路では、前記制御回路は、前記組み合わせ回路に供給される電源電圧を「上げる」、「保持する」又は「下げる」よう制御する。
【0031】
上記半導体集積回路では、前記制御回路は、前記組み合わせ回路に供給される電源電圧の初期設定を「保持する」に設定する。
【0032】
上記半導体集積回路は、前記組み合わせ回路の後段に前記第2のフリップ・フロップと並列に設けられる、直列接続された第3の遅延回路及び第5のフリップ・フロップと、前記組み合わせ回路の後段に前記第2のフリップ・フロップと並列に設けられる、直列接続された第4の遅延回路及び第6のフリップ・フロップと、前記第2のフリップ・フロップの出力と前記第5のフリップ・フロップの出力とを比較する第3の比較回路と、前記第2のフリップ・フロップの出力と前記第6のフリップ・フロップの出力とを比較する第4の比較回路と、を備え、前記制御回路は、前記第1の比較回路の出力、前記第2の比較回路の出力、前記第3の比較回路の出力及び前記第4の比較回路の出力に応じて、前記組み合わせ回路に供給される電源電圧を制御し、前記第1の遅延時間、前記第2の遅延時間、前記第3の遅延回路による第3の遅延時間及び前記第4の遅延回路による第4の遅延時間は、それぞれ異なる。
【発明の効果】
【0033】
本発明によれば、半導体集積回路は、DVS(Dynamic Voltage Scaling)技術又はAVS(Adaptive Voltage Scaling)技術を最適な形で実現でき、より効果的に低消費電力化を図ることができる。
【発明を実施するための最良の形態】
【0034】
以下、本発明の実施形態について、図面を参照して説明する。
【0035】
(実施の形態1)
図1は、本発明の実施の形態1に係る半導体集積回路の構成を示す図である。図1に示すように、本実施形態の半導体集積回路は、2つのカナリアFF108,112を備える。
【0036】
図1において、まず信号101はクロック信号102に同期してフリップ・フロップ103に取り込まれ、次のクロック周期において、異電圧間の電圧レベルの変換を行うレベル・シフタ152及び組み合わせ回路104により遅延した後、フリップ・フロップ105(以下「メインFF105」という。)に取り込まれる。レベル・シフタ152及び組み合わせ回路104により遅延した後の信号を第1の遅延素子107により特定の遅延時間T1だけ遅延させた信号はフリップ・フロップ108(以下「第1カナリアFF108」という。)に取り込まれる。メインFF105からの信号と第1カナリアFF108からの信号を第1のExclusive−OR(不一致回路)109によって比較する。比較結果は比較結果信号110として出力される。
【0037】
また、レベル・シフタ152及び組み合わせ回路104により遅延した後の信号を、第2の遅延素子111により特定の遅延時間T2だけ遅延させた信号はフリップ・フロップ112(以下「第2カナリアFF112」という。)に取り込まれる。メインFF105からの信号と第2カナリアFF112からの信号を第2のExclusive−OR(不一致回路)113によって比較する。比較結果は比較結果信号114として出力される。
【0038】
ここで、第1の遅延素子107による特定の遅延時間T1をフリップ・フロップ103からフリップ・フロップ105までの遅延時間の10%に設定し、第2の遅延素子111による特定の遅延時間T2をフリップ・フロップ103からフリップ・フロップ105までの遅延時間の20%に設定する。
【0039】
このように設定した場合において、比較結果信号110の値と比較結果信号114の値の組み合わせにより、以下に示す表1のように、レベル・シフタ152及び組み合わせ回路104に供給する電源電圧値VDDHを制御する。図1において、レベル・シフタ152及び組み合わせ回路104に供給されている電源電圧値VDDHは、組み合わせ回路104以外に供給されている電源電圧値VDDLと比較して高い電圧値に設定されている。
【0040】
表1において、×と表示されているケースは、通常では存在しない場合である。つまり、比較結果信号110の値が“1”、かつ、比較結果信号114の値が“0”になるような場合は通常存在しない。
【0041】
【表1】
【0042】
比較結果信号110の値と比較結果信号114の値の組み合わせによる電源電圧値VDDHの制御の方法は以下のようにまとめることもできる。この方法による表を表2に示す。
【0043】
(1)の場合:
比較結果信号110の値が“1”で比較結果信号114の値が“1”の場合、つまり、10%のマージンに対してもフェイルする場合は、現実のマージンが10%未満であるため、電源電圧値VDDHを上げるように制御される。その結果、現実のマージンが上がる。
【0044】
(2)の場合:
比較結果信号110の値が“0”で比較結果信号114の値が“1”の場合、つまり、10%のマージンに対してはパスするが、20%のマージンに対してはフェイルする場合は、現実のマージンが10%以上20%未満であるため、電源電圧値VDDHを保持するように制御される。
【0045】
(3)の場合:
比較結果信号110の値が“0”で比較結果信号114の値が“0”の場合、つまり、20%のマージンに対してもパスする場合は、現実のマージンが20%以上であるため、電源電圧値VDDHを下げるように制御される。その結果、現実のマージンが下がる。
【0046】
【表2】
【0047】
比較結果信号110の値と比較結果信号114の値の組み合わせにより、表1及び表2のように、レベル・シフタ152及び組み合わせ回路104に供給する電源電圧値VDDHを制御することにより、当該クリティカル・パスのマージンを10%から20%の間に設定することが可能となる。
【0048】
この構成を各クリティカル・パスに適応することにより、すべてのクリティカル・パス個々に対して対応することができる。これにより課題2は解決される。
【0049】
また、図1の回路図からわかるように、遅延時間のマージンを確保するために多機能DSPのブロック全体の電源電圧を上げることなく、クリティカル・パスを形成する組み合わせ回路104の電源電圧値VDDHだけを上げるような回路構成にしている。このためクリティカル・パスを形成しない遅延パスの電源電圧値は電源電圧値VDDHより電圧値が低い電源電圧値VDDLに設定されている。従ってクリティカル・パスでない大多数の回路の電源電圧は上げることないので、低消費電力化の観点から好ましい。これにより課題1も解決される。
【0050】
以上に、第1カナリアFF108と第2カナリアFF112の2つのカナリアFFがある場合について説明したが、カナリアFFを4つの構成にすることにより、2つの構成では当該クリティカル・パスのマージンを10%から20%の間のような設定しかできないが、さらに一歩進んで当該クリティカル・パスのマージンをより細かく設定することができるようになり、より低消費電力化が可能になる。
【0051】
(実施の形態2)
図2は、本発明の実施の形態2に係る半導体集積回路の構成を示す図である。図2に示すように、本実施形態の半導体集積回路は、4つのカナリアFF108,112,116,120を備える。
【0052】
図2において、まず信号101はクロック信号102に同期してフリップ・フロップ103に取り込まれ、次のクロック周期において、レベル・シフタ152及び組み合わせ回路104により遅延した後、フリップ・フロップ105(以下「メインFF105」という。)に取り込まれる。レベル・シフタ152及び組み合わせ回路104により遅延した後の信号を第1の遅延素子107による特定の遅延時間TT1だけ遅延させた信号は、フリップ・フロップ108(以下「第1カナリアFF108」という。)に取り込まれる。メインFF105と第1カナリアFF108からの信号を第1のExclusive−OR(不一致回路)109によって比較する。比較結果は比較結果信号110として出力される。
【0053】
また、レベル・シフタ152及び組み合わせ回路104により遅延した後の信号を、第2の遅延素子111により特定の遅延時間TT2だけ遅延させた信号は、フリップ・フロップ112(以下「第2カナリアFF112」という。)に取り込まれる。メインFF105からの信号と第2カナリアFF112からの信号を第2のExclusive−OR(不一致回路)113によって比較する。比較結果は比較結果信号114として出力される。
【0054】
また、レベル・シフタ152及び組み合わせ回路104により遅延した後の信号を、第3の遅延素子115による特定の遅延時間TT3だけ遅延させた信号は、フリップ・フロップ116(以下「第3カナリアFF116」という。)に取り込まれる。メインFF105からの信号と第3カナリアFF116からの信号を第3のExclusive−OR(不一致回路)117によって比較する。比較結果は比較結果信号118として出力される。
【0055】
さらに、レベル・シフタ152及び組み合わせ回路104により遅延した後の信号を、第4の遅延素子119による特定の遅延時間TT4だけ遅延させた信号は、フリップ・フロップ120(以下「第4カナリアFF120」という。)に取り込まれる。メインFF105からの信号と第4カナリアFF120からの信号を第4のExclusive−OR(不一致回路)121によって比較する。比較結果は比較結果信号122として出力される。
【0056】
ここで、第1の遅延素子107による特定の遅延時間TT1をフリップ・フロップ103からフリップ・フロップ105までの遅延時間の5%に設定し、第2の遅延素子111による特定の遅延時間TT2をフリップ・フロップ103からフリップ・フロップ105までの遅延時間の10%に設定し、第3の遅延素子115による特定の遅延時間TT3をフリップ・フロップ103からフリップ・フロップ105までの遅延時間の15%に設定し、さらに第4の遅延素子119による特定の遅延時間TT4をフリップ・フロップ103からフリップ・フロップ105までの遅延時間の20%に設定する。
【0057】
このように設定した場合において、比較結果信号110の値、比較結果信号114の値、比較結果信号118の値及び比較結果信号122の値の組み合わせにより、以下に示す表3のように、レベル・シフタ152及び組み合わせ回路104に供給する電源電圧値VDDHを制御する。図2においてレベル・シフタ152及び組み合わせ回路104に供給されている電源電圧値VDDHは、組み合わせ回路4以外に供給されている電源電圧値VDDLと比較して高い電圧値に設定されている。
【0058】
表3において、×と表示されているケースは、通常では存在しない場合である。表3に示すように、4つのケースが通常では存在しない。
【0059】
【表3】
【0060】
比較結果信号110の値、比較結果信号114の値、比較結果信号118の値及び比較結果信号122の値の組み合わせによる電源電圧値VDDHの制御の方法は以下のようにまとめることもできる。この方法による表を表4に示す。
【0061】
(1)の場合:
比較結果信号110の値が“1”、比較結果信号114の値が“1”、比較結果信号118の値が“1”かつ、比較結果信号122の値が“1”の場合、つまり、5%のマージンに対してもフェイルする場合は、現実のマージンが5%未満であるため、電源電圧値VDDHを上げるように制御する。その結果、現実のマージンが上がる。
【0062】
(2)の場合:
比較結果信号110の値が“0”、比較結果信号114の値が“1”、比較結果信号118の値が“1”かつ、比較結果信号122の値が“1”の場合、つまり、5%のマージンのみパスする場合は、現実のマージンが5%以上10%未満であるため、電源電圧値VDDHを上げるように制御する。その結果、現実のマージンが上がる。
【0063】
(3)の場合:
比較結果信号110の値が“0”、比較結果信号114の値が“0”、比較結果信号118の値が“1”かつ、比較結果信号122の値が“1”の場合、つまり、10%までのマージンのみパスする場合は、現実のマージンが10%以上15%未満であるため、電源電圧値VDDHを保持するように制御する。
【0064】
(4)の場合:
比較結果信号110の値が“0”、比較結果信号114の値が“0”、比較結果信号118の値が“0”かつ、比較結果信号122の値が“1”の場合、つまり、15%までのマージンのみパスする場合は、現実のマージンが15%以上20%未満であるため、電源電圧値VDDHを下げるように制御する。その結果、現実のマージンが下がる。
【0065】
(5)の場合:
比較結果信号110の値が“0”、比較結果信号114の値が“0”、比較結果信号118の値が“0”かつ、比較結果信号122の値が“0”の場合、つまり、20%までのマージンjまでパスする場合は、現実のマージンが20%以上であるため、電源電圧値VDDHを下げるように制御する。その結果、現実のマージンが下がる。
【0066】
【表4】
【0067】
比較結果信号110の値、比較結果信号114の値、比較結果信号118の値及び比較結果信号122の値の組み合わせにより、表3及び表4のように、レベル・シフタ152及び組み合わせ回路104に供給する電源電圧値VDDHを制御することにより、当該クリティカル・パスのマージンを10%から15%の間に設定することが可能となる。
【0068】
この構成を各クリティカル・パスに適応することにより、すべてのクリティカル・パス個々に対して対応することができる。これにより課題2は実施の形態1より精度よく解決される。
【0069】
また、図2の回路図からわかるように、本実施例2の場合でも図1の実施例1場合と同様に、遅延時間のマージンを確保するために多機能DSPのブロック全体の電源電圧を上げることなく、クリティカル・パスを形成する組み合わせ回路104の電源電圧値VDDHだけを上げるような回路構成にしている。このためクリティカル・パスを形成しない遅延パスの電源電圧値は電源電圧値VDDHより電圧値が低い電源電圧値VDDLに設定されている。従ってクリティカル・パスでない大多数の回路の電源電圧は上げることないので、低消費電力化の観点から好ましい。これにより課題1も解決される。
【0070】
図3はカナリアFFが4つの構成の場合において、クリティカル・パスを形成する組み合わせ回路104の電源電圧値VDDHを具体的にどのように変えるかを示す構成図である。図3において図2と同じ番号をつけているものは図2で説明した動作をするので説明は省略する。
【0071】
符号201は電源電圧値VDDLを供給する電源線、符号202、203、204、205、206はそれぞれ電源電圧値VDDH−lowlow、電源電圧値VDDH−low、電源電圧値VDDH−normal、電源電圧値VDDH−high、電源電圧値VDDH−highhighを供給する電源線である。符号208は、比較結果信号110の値、比較結果信号114の値、比較結果信号118の値及び比較結果信号122の値の組み合わせにより、表3及び表4のように、レベル・シフタ152及び組み合わせ回路104に供給する電源電圧値VDDHを切り替えるスイッチ部207制御するCPU等の制御回路である。
【0072】
(実施の形態3)
図4は、実施の形態1又は実施の形態2を具体的にDVFS(Dynamic Voltage and Frequency Scaling)機構を搭載した半導体集積回路に適用した場合の構成を示す回路ブロック図である。但し、まずDVFS(Dynamic Voltage and Frequency Scaling)機構を搭載した半導体集積回路300について詳細に説明する。その後に、今回の発明をDVFS(Dynamic Voltage and Frequency Scaling)機構を搭載した半導体集積回路に適用する方法について説明する。
【0073】
図4において、半導体集積回路300は、汎用CPUを想定した第1の機能ブロック410、第2の機能ブロック420、第3の機能ブロック430、第4の機能ブロック440、第5の機能ブロック450、SDRAM330を制御するSDRAM制御回路331、DMAコントローラ332、周辺I/O群333を制御するI/O制御回路334、第1の機能ブロック410及びI/O制御回路334側に配置されたローカルバス461、第2の機能ブロック420側に配置されたローカルバス462、第3の機能ブロック430側に配置されたローカルバス463、第4の機能ブロック440側に配置されたローカルバス464、第5の機能ブロック450側に配置されたローカルバス465、ローカルバス461とローカルバス462〜465との間に配置されたグローバルバス466、ローカルバス461とグローバルバス466とを接続するバスブリッジ471、ローカルバス462とグローバルバス466とを接続するバスブリッジ472、ローカルバス463とグローバルバス466とを接続するバスブリッジ473、ローカルバス464とグローバルバス466とを接続するバスブリッジ474、ローカルバス465とグローバルバス466とを接続するバスブリッジ475、外部から入力されるクロック351を基にして逓倍したクロックを生成するクロック発生回路352、及び外部電源480をもとに各部に所定電源を供給する電源レギュレータ480を備えて構成される。
【0074】
第1の機能ブロック410は、第1のシステム・クロック(fCLK1)414を生成する第1のクロック発生回路411と、第1の内部メモリ412と、第1のシステム・クロック(fCLK1)414と第2のシステム・クロック(fCLK2)424と第3のシステム・クロック(fCLK3)434と第4のシステム・クロック(fCLK4)444と第5のシステム・クロック(fCLK5)454のいずれかのクロックを選択し、第1の内部メモリ412に供給するセレクタ413とを備えて構成される。
【0075】
また、第2の機能ブロック420は、第2のシステム・クロック(fCLK2)424を生成する第2のクロック発生回路421と、第2の内部メモリ422と、第1のシステム・クロック(fCLK1)414と第2のシステム・クロック(fCLK2)424と第3のシステム・クロック(fCLK3)434と第4のシステム・クロック(fCLK4)444と第5のシステム・クロック(fCLK5)454のいずれかのクロックを選択し、第2の内部メモリ422に供給するセレクタ423とを備えて構成される。
【0076】
第3の機能ブロック430、第4の機能ブロック440及び第5の機能ブロック450も第1の機能ブロック410、第2の機能ブロック420と同様である。
【0077】
クロック発生回路352は、システム・クロック353を生成し、生成したシステム・クロック353を、第1の機能ブロック410内の第1のクロック発生回路411、第2の機能ブロック420内の第2のクロック発生回路421、第3の機能ブロック430内の第2のクロック発生回路431、第4の機能ブロック440内の第2のクロック発生回路441、第5の機能ブロック450内の第2のクロック発生回路451、SDRAM制御回路331、及びDMAコントローラ332にそれぞれ供給する。
【0078】
第1の機能ブロック410内にある回路に供給される第1のシステム・クロック(fCLK1)414は、第1の機能ブロック410内にある第1のクロック発生回路411で生成される。また、第2の機能ブロック420内にある回路に供給される第2のシステム・クロック(fCLK2)424は、第2の機能ブロック420内にある第2のクロック発生回路421で生成され、第3の機能ブロック430内にある回路に供給される第3のシステム・クロック(fCLK3)434は、第3の機能ブロック430内にある第3のクロック発生回路431で生成され、第4の機能ブロック440内にある回路に供給される第4のシステム・クロック(fCLK4)444は、第4の機能ブロック440内にある第4のクロック発生回路441で生成され、第5の機能ブロック450内にある回路に供給される第5のシステム・クロック(fCLK5)454は、第5の機能ブロック450内にある第5のクロック発生回路451で生成される。
【0079】
また、図4には示されていないが第1の機能ブロック410内にある第1のクロック発生回路411で生成された第1のシステム・クロック414はセレクタ413に供給されるだけでなく、第2から第5の機能ブロック420〜450内にあるセレクタ423からセレクタ453にも供給される。このことは他のシステム・クロックにおいても同様である。
【0080】
電源レギュレータ481は、第1の機能ブロック410に電源配線482を、第4の機能ブロック220に電源配線483を、第3の機能ブロック430に電源配線484を、第4の機能ブロック440に電源配線485を、第5の機能ブロック450に電源配線486をそれぞれ配線する。
【0081】
本実施の形態では、全体のフロー制御関係は、汎用CPUを想定した第1の機能ブロック410内の内部メモリ412に保存されているメインプログラム上に記載されており、処理能力を要するAV関連の処理などは、多機能DSPを想定した第2から第5の機能ブロック420〜450内の内部メモリ422〜452に保存されているサブプログラム上に記載されている。この意味からも、半導体集積回路300の仕事全体の管理を行っているのは汎用CPUを想定した第1の機能ブロック410である。
【0082】
以下、上述のように構成された半導体集積回路300の動作について説明する。
【0083】
第1の機能ブロック410内の第1のクロック発生回路411では、内部のPLL回路を用いて、半導体集積回路300に供給されたシステム・クロック353を基に第1の機能ブロック410の時間によって処理量が変化する演算を行うために必要な第1のシステム・クロック414を生成する。
【0084】
同様に、第2の機能ブロック420内の第2のクロック発生回路421では、第2の機能ブロック420の時間によって処理量が変化する演算を行うために必要な第2のシステム・クロック424を生成し、第3の機能ブロック430内の第3のクロック発生回路431では、第3の機能ブロック430の時間によって処理量が変化する演算を行うために必要な第3のシステム・クロック434を生成する。また、第4の機能ブロック440内の第4のクロック発生回路441では、第4の機能ブロック440の時間によって処理量が変化する演算を行うために必要な第4のシステム・クロック444を生成し、第5の機能ブロック450内の第5のクロック発生回路451では、第5の機能ブロック450の時間によって処理量が変化する演算を行うために必要な第5のシステム・クロック454を生成する。
【0085】
汎用CPUである第1の機能ブロック410は、大容量の内部メモリ412を有し、この汎用CPUである第1の機能ブロック410内にあるスケジューラ(図示せず)が半導体集積回路300全体の動作を統括している。このスケジューラは、具体的には汎用CPUによるメインプログラムの実行により実現される。
【0086】
第1の機能ブロック410は、上記メインプログラムを実行して半導体集積回路300全体の動作を統括するために、内部メモリ412に以下の情報を格納する。すなわち、第1の機能ブロック410の内部メモリ412は、第2の機能ブロック420がどのような時間からどのような仕事量の仕事をするためにどのような能力で処理しなければならなく、そのためには第2の機能ブロック420がどのような周波数で動作し、その動作周波数で第2の機能ブロック420が動作するためにはどのような電源電圧に設定する必要があるかの情報や、第3の機能ブロック430がどのような時間からどのような仕事量の仕事をするためにどのような能力で処理しなければならなく、そのためには第3の機能ブロック430がどのような周波数で動作し、その動作周波数で第3の機能ブロック430が動作するためにはどのような電源電圧に設定する必要があるかの情報や、第4の機能ブロック440がどのような時間からどのような仕事量の仕事をするためにどのような能力で処理しなければならなく、そのためには第4の機能ブロック440がどのような周波数で動作し、その動作周波数で第4の機能ブロック440が動作するためにはどのような電源電圧に設定する必要があるかの情報や、第5の機能ブロック450がどのような時間からどのような仕事量の仕事をするためにどのような能力で処理しなければならなく、そのためには第5機能ブロック450がどのような周波数で動作し、その動作周波数で第5の機能ブロック450が動作するためにはどのような電源電圧に設定する必要があるかの情報を有している。
【0087】
第1の機能ブロック410、第2の機能ブロック420、第3の機能ブロック430、第4の機能ブロック440、及び第5の機能ブロック450の電源電圧は、内蔵された電源レギュレータ481により生成され、各機能ブロックに対して第1の機能ブロック410に電源配線482が、第2の機能ブロック420に電源配線483が、第3の機能ブロック430に電源配線484が、第4の機能ブロック440に電源配線485が、第5の機能ブロック450に電源配線486がそれぞれ配線される。
【0088】
図5は、上記第1の機能ブロック410内にある内部メモリ412の接続図を示す図、図6は、上記第2の機能ブロック420内にある第2の内部メモリ422の接続を示す図である。
【0089】
図5において、符号412は第1の機能ブロック410内にある内部メモリ、符号491Aはチップセレクト信号、符号492Aはアウトプットイネーブル信号、符号493Aはリード/ライト信号、符号494Aはアドレス信号、符号495Aはデータ信号、符号496Aはローカルバス、符号414は第1の機能ブロック410内にある回路に供給される第1のシステム・クロック、符号424は第2の機能ブロック420内にある回路に供給される第2のシステム・クロック、符号434は第3の機能ブロック430内にある回路に供給される第3のシステム・クロック、符号444は第4の機能ブロック440内にある回路に供給される第4のシステム・クロック、符号454は第5の機能ブロック450内にある回路に供給される第5のシステム・クロック、符号413はセレクタ、符号497Aはセレクタ413の制御信号、符号498Aはセレクタ413の制御信号497Aにより選択された、第1の機能ブロック410内にある回路に供給される第1のシステム・クロック414か第2の機能ブロック420内にある回路に供給される第2のシステム・クロック424か第3の機能ブロック430内にある回路に供給される第3のシステム・クロック434か第4の機能ブロック440内にある回路に供給される第4のシステム・クロック444か第5の機能ブロック450内にある回路に供給される第5のシステム・クロック454のいずれかのシステム・クロック信号である。
【0090】
また、図6において、符号422は第2の機能ブロック410内にある内部メモリ、符号491Bはチップセレクト信号、符号492Bはアウトプットイネーブル信号、符号493Bはリード/ライト信号、符号494Bはアドレス信号、符号495Bはデータ信号、符号496Bはローカルバス、符号414は第1の機能ブロック410内にある回路に供給される第1のシステム・クロック、符号424は第2の機能ブロック420内にある回路に供給される第2のシステム・クロック、符号434は第3の機能ブロック430内にある回路に供給される第3のシステム・クロック、符号444は第4の機能ブロック440内にある回路に供給される第4のシステム・クロック、符号454は第5の機能ブロック450内にある回路に供給される第5のシステム・クロック、符号423はセレクタ、符号497Bはセレクタ423の制御信号、符号498Bはセレクタ423の制御信号497Bにより選択された、第1の機能ブロック410内にある回路に供給される第1のシステム・クロック414か第2の機能ブロック420内にある回路に供給される第2のシステム・クロック424か第3の機能ブロック430内にある回路に供給される第3のシステム・クロック434か第4の機能ブロック440内にある回路に供給される第4のシステム・クロック444か第5の機能ブロック450内にある回路に供給される第5のシステム・クロック454のいずれかのシステム・クロック信号である。
【0091】
〔第1の機能ブロック410内のデータ信号を第2の機能ブロック420内にある内部メモリ422に書き込む動作〕
第1の機能ブロック410が主導権をとって、第1の機能ブロック410内にあるデータ信号を、第2の機能ブロック420内にある内部メモリ422に書き込む場合には、第2の機能ブロック420内にある内部メモリ422が第2の機能ブロック420内にある回路によって使用されていないことを確認後、セレクタ423の制御信号497B(図6参照)を制御してシステム・クロック498Bが第1の機能ブロック410内にある回路に供給される第1のシステム・クロック(fCLK1)414となるように設定する。そして、チップセレクト信号491Bを“H”に設定し、リード/ライト信号493Bを“ライト状態”に設定し、第2の機能ブロック420内にある内部メモリ422のアドレス494Bを設定し、バスブリッジ471及びバスブリッジ472を制御してローカルバス461、グローバルバス466、ローカルバス462経由で第1の機能ブロック410内にあるデータ信号495Aを第2の機能ブロック420内にある内部メモリ422のデータ信号495Bへ送り、しかる後にデータ信号495Bを第2の機能ブロック420内にある内部メモリ422に書き込む。
【0092】
〔第2の機能ブロック420内にある第2の内部メモリ422のデータ信号を第1の機能ブロック410内の第1の内部メモリ412に読み出す動作〕
第1の機能ブロック410が主導権をとって、第1の機能ブロック410内へ第2の機能ブロック420内にある内部メモリ422のデータ信号を読み出す場合には、第2の機能ブロック420内にある内部メモリ422が第2の機能ブロック420内にある回路によって使用されていないことを確認後、セレクタ413の制御信号497A(図5参照)を制御してシステム・クロック498Aに第1の機能ブロック410内にある回路に供給される第1のシステム・クロック414が選択されるように設定し、チップセレクト信号491Aを“H”に設定し、リード/ライト信号493Aを“リード状態”に設定し、第2の機能ブロック420内にある内部メモリ4222のアドレス494Aを読み出したい領域のアドレスに設定し、バスブリッジ472及びバスブリッジ471を制御してローカルバス462、グローバルバス466、ローカルバス461経由で第2の機能ブロック420内にある内部メモリ222内に記憶されているデータ信号を第1の機能ブロック410内に読み出す。
【0093】
また、第2の機能ブロック410が主導権をとって、第2の機能ブロック420内にあるデータ信号を第1の機能ブロック410内にある内部メモリ412に書き込みたい場合や第2の機能ブロック420内へ第1の機能ブロック410内にある内部メモリ412のデータ信号を読み出す場合も上記と同様にすることにより実現できる。
【0094】
以上では、第1の機能ブロック410と第2の機能ブロック420相互でのデータの書き込み、読み出しについて説明してきたが、第1の機能ブロック410、第2の機能ブロック420、第3の機能ブロック430、第4の機能ブロック440、第5の機能ブロック450間での相互でのデータの書き込み、読み出しにおいても同様に実現できる。但し、本実施の形態では、第1の機能ブロック410が汎用CPUであり、それ以外の第2の機能ブロック420、第3の機能ブロック430、第4の機能ブロック440、第5の機能ブロック450は多機能DSPであることを仮定しているので、あくまで本実施の形態にあっても第1の機能ブロック410である汎用CPUが半導体集積回路300全体の動作を管理している。したがって、第1の機能ブロック410、第2の機能ブロック420、第3の機能ブロック430、第4の機能ブロック440、第5の機能ブロック450間での相互でのデータの書き込み、読み出しにおいても、基本的には、汎用CPUである第1の機能ブロック410の管理の下、汎用CPUである第1の機能ブロック410の指示に従って、第2の機能ブロック420、第3の機能ブロック430、第4の機能ブロック440、第5の機能ブロック450は相互でのデータの書き込み、読み出しを行っている。
【0095】
図7は、第2の機能ブロック420の仕事量及び第2の機能ブロック420の電源電圧(動作周波数)の時間経過依存性を示す図である。また、図8は、第1の機能ブロック410の仕事量、及び第1の機能ブロック410の電源電圧(動作周波数)の時間経過依存性を示す図である。
【0096】
図7(a)の第2の機能ブロック420の仕事量及び図7(b)の第2の機能ブロック420の動作電源電圧の例に示すように、第2の機能ブロック420は時間t0からt1まで仕事21を電源電圧VDD21、動作周波数fCLK21で行い、時間t1からt2まで仕事22を電源電圧VDD22、動作周波数fCLK22で行い、時間t2からt3まで仕事23を電源電圧VDD23、動作周波数fCLK23で行い、時間t3からt4まで仕事24を電源電圧VDD24、動作周波数fCLK24で行うという仕事のスケジュールが、汎用CPUである第1の機能ブロック410で管理されている。
【0097】
図8(a)の第1の機能ブロック410の仕事量及び図8(b)の第1の機能ブロック410の動作電源電圧の例に示すように、第1の機能ブロック410は時間t0からt1まで仕事11を電源電圧VDD11、動作周波数fCLK11で行い、時間t1からt2まで仕事12を電源電圧VDD12、動作周波数fCLK12で行い、時間t2からt3まで仕事13を電源電圧VDD13、動作周波数fCLK13で行うという仕事のスケジュールが、自己の第1の機能ブロック410で管理されている。
【0098】
図7及び図8を比較して分かるように、第1の機能ブロック410内にある第1のクロック発生回路411で生成され、第1の機能ブロック410内にある回路に供給される第1のシステム・クロック414の周波数は、第1の機能ブロック410内で行われる仕事の演算処理量に依存して決まり、第2の機能ブロック420内にある第2のクロック発生回路421で生成され、第2の機能ブロック420内にある回路に供給される第2のシステム・クロック424の周波数は、第2の機能ブロック420内で行われる仕事の演算処理量に依存して決まる。したがって、第1の機能ブロック410内にある第1のクロック発生回路411で生成され、第1の機能ブロック410内にある回路に供給される第1のシステム・クロック414の周波数と第2の機能ブロック420内にある第2のクロック発生回路421で生成され、第2の機能ブロック420内にある回路に供給される第2のシステム・クロック424の周波数との間に明確な相関はない。
【0099】
図9は、第2の機能ブロック420内にある第2のクロック発生回路421の構成を示すブロック図である。
【0100】
図9において、第2のクロック発生回路421は、クロック発生回路352で生成されたシステム・クロック353と分周回路出力とを位相比較する位相検出器381、ループフィルタ382、VCO(Voltage Controlled Oscillator)383、及びVCO383からの出力信号の周波数をN/M倍(但し、M>N)に分周する分周回路384Aを備えて構成される。また、符号385Aは汎用CPUを想定する第1の機能ブロック410からの制御信号、符号424は第2の機能ブロック420内にある第2のクロック発生回路421で生成された第2のシステム・クロック(fCLK2)である。
【0101】
第2のクロック発生回路421は、PLL(Phase-Locked Loop)回路386を構成しており、クロック発生回路352で生成されたシステム・クロック353に同期した第2のシステム・クロック424を生成している。しかも、第2のシステム・クロック424の動作周波数は汎用CPUを想定する第1の機能ブロック410からの制御信号385Aで希望する周波数に設定できる。例えば、クロック発生回路352で生成されたシステム・クロック353の周波数をfCLK_353,クロック発生回路352で生成されたシステム・クロック353に同期した第2のシステム・クロック424の周波数をfCLK_424、汎用CPUを想定する第1の機能ブロック410からの制御信号385Aで設定されるVCO383からの出力信号の周波数の分周比率をN/Mとすると、以下の関係が成立する。
fCLK_424×N/M=fCLK_353 …(1)
【0102】
したがって、
fCLK_424=fCLK_353×M/N …(2)
の関係が成立する。
【0103】
以上のように方法により、第2のクロック発生回路421によってクロック発生回路352で生成されたシステム・クロック353に同期した第2のシステム・クロック424は汎用CPUを想定する第1の機能ブロック410からの制御信号385Aで自由に制御することができる。
【0104】
図10は、第1の機能ブロック410内にある第1のクロック発生回路411の構成を示すブロック図である。図9と同一構成部分には同一符号を付している。
【0105】
第1のクロック発生回路411は、第2のクロック発生回路421における第1の機能ブロック410からの制御信号385Bが自分自身のブロック内からの信号であること以外は同様な構成になっている。
【0106】
以上の関係をまとめると、第1の機能ブロック410内にある第1のクロック発生回路411によって、第1の機能ブロック410の時間によって処理量が変化する演算を行うために必要な第1のシステム・クロック414が第1のクロック発生回路411を用いて、半導体集積回路300のシステム・クロック353から生成され、第2の機能ブロック420内にある第2のクロック発生回路421によって、第2の機能ブロック420の時間によって処理量が変化する演算を行うために必要な第2のシステム・クロック424が第2のクロック発生回路421を用いて、半導体集積回路300のシステム・クロック353から生成される。
【0107】
汎用CPUである第1の機能ブロック410は、大容量の第1の内部メモリ412を有し、この第1の機能ブロック410が半導体集積回路300全体の動作を統括している。本実施の形態において、第2の機能ブロック420がどのような順序で、どのような仕事を行うかの具体的なスケジュールを大容量な内部メモリ412内にプログラムの形で有しており、さらに、そのプログラムを実行する過程で第2の機能ブロック420がどのような時間からどのような仕事量の仕事をするためにどのような能力で処理しなければならなく、そのためには第2機能ブロック420がどのような周波数で動作し、その動作周波数で第2の機能ブロック420が動作するためにはどのような電源電圧で動作しなければならないかの情報を有している。
【0108】
次に、第1の機能ブロック410が第2の機能ブロック420の電源電圧と動作周波数を如何に制御するかを具体的に説明する。
【0109】
第2の機能ブロック420がどのような仕事をするかは、第1の機能ブロック410の内部メモリ412に動作プログラムの形で記述されている。第1の機能ブロック410は、上記動作プログラムにより、第2の機能ブロック420は時間t0から仕事21(図7参照)を実行することを読み取る。次に、その仕事21に相応しい電源電圧VDD21、動作周波数fCLK21、前記式(2)に述べたM/Nを前記動作プログラムとは別の特定領域に保存された表5から読み出す。
【0110】
【表5】
【0111】
この表5は、動作プログラムに記載されているそれぞれの仕事内容を事前に検討し、それぞれの仕事を第2の機能ブロック420の多機能DSPに行わせる場合どのような動作周波数を必要として、そのためにはどのような電源電圧に設定する必要があるかに対する綿密なシミュレーションに基づいて決定されている。
【0112】
そして、まず、第1の機能ブロック410は内蔵された電源レギュレータ481に指示して、第2の機能ブロック420に電源電圧VDD2を供給する。
【0113】
次に、第1の機能ブロック410は、図9に示す制御信号385を介して第2のクロック発生回路421のVCO383からの出力信号の周波数をN/M倍(但し、M>N)に分周する回路にしかるべきM/Nの具体的な値を書き込む。第2のクロック発生回路421はPLL回路386のセットアップ時間を経過後に安定した動作周波数fCLK2に設定される。但し、以上の設定に要する時間は仕事21に要する時間に比して僅かであるので、図7には示していない。
【0114】
第2の機能ブロック420の電源電圧VDD2と動作周波数fCLK2が安定するに必要な時間経過後に、第1の機能ブロック410は第2の機能ブロック420が仕事21の開始を許可するので、第2の機能ブロック420は仕事21を開始する。
【0115】
第2の機能ブロック420は、仕事21が完了したときには、「仕事21が完了したとの情報」を仕事全体の管理している第1の機能ブロック410に報告する。勿論、第2の機能ブロック420は仕事21が完了したときには、「仕事21が完了したとの情報」を仕事全体の管理している第1の機能ブロック410に報告することに代えて、第2の機能ブロック420が「仕事21が完了したとの情報」をフラグとして、特定のレジスタに記録して、第1の機能ブロック410が上記レジスタを見に行くような仕組みでもよい。
【0116】
以上の説明では各機能ブロックにおいて、それぞれの仕事内容に対応して多機能DSPにとってどのような電源電圧に設定し、かつ、どのような動作周波数に設定するかは事前に綿密なシミュレーションによって決定すると記述した。ある仕事を実施する間は動作周波数を一定と想定すると、多機能DSPの動作にマージンを持たせるには動作電源電圧値にマージンを持たせることになる。この際に主に考慮しなければならい点が2点存在する。
(1)遅延パスのバラツキ
(2)保証温度範囲
【0117】
まず、遅延パスのバラツキについて述べる。各多機能DSPのブロックの内部回路を検討すると、図11で述べるように、この回路の遅延パスには様々な値が存在する。ある特定の仕事をこの多機能DSPにおいて実行するのに必要な電源電圧値は、この機能ブロックに存在するさまざまな遅延パスの内、クリティカル・パスと呼ぶ一群の遅延パスによってその値が決定される。従って、多機能DSPのブロックのすべての内部回路の電源電圧を上げる必要はなく、図1のようにクリティカル・パスを形成する組み合わせ回路104の電源電圧VDDH151のみ上げるのが低消費電力化の観点から有効である。しかも、クリティカル・パスにはその遅延の程度によりある遅延マージンを保証するのに必要とされる電源電圧VDDH151の値も異なるので、それぞれ必要な値を設定するのが有効である。勿論、図4の電源レギュレータで発生する電源電圧値があまり多くなるのは好ましくないので、図3のようクリティカル・パスの組み合わせ回路104に供給される電源電圧値VDDHには、電源電圧値VDDH−lowlow、電源電圧値VDDH−low、電源電圧値VDDH−normal、電源電圧値VDDH−high、電源電圧値VDDH−highhighの5段階の電圧にし、クリティカル・パスの組み合わせ回路104以外に供給する電源電圧値VDDLと合わせて6電源値にするのが好ましい。
【0118】
次に、保証温度範囲について述べる。ディープサブミクロン領域の半導体技術において、従来行われてきた最悪ケースに配慮した半導体集積回路の設計は困難になりつつある。図18のカナリアFFを使用した回路も、最悪ケースに配慮した半導体集積回路の設計ではなく典型的なケースでの設計を可能にする構成の1例である。この方法はそれ以前に提案されている Razor回路による方法を改善したものであるが、課題1及び課題2で説明したような課題を有していた。図1、図2に示した実施の形態1、実施の形態2は、従来のカナリアFFによる方法を更に改善したものであり、必要最小限の半導体集積回路の設計マージンにすることができる構成であり、この構成により消費電力削減に効果がある。
【0119】
図3の黒の太枠で囲った部分は、図4に示した電源レギュレータ481の一部を示す。図3に示される電源電圧値VDDH−lowlow202、電源電圧値VDDH−low203、電源電圧値VDDH−normal204、電源電圧値VDDH−high205、電源電圧値VDDH−highhigh206を供給する電源線と、比較結果信号110の値、比較結果信号114の値、比較結果信号118の値及び比較結果信号122の値の組み合わせにより、表3及び表4のようにレベル・シフタ152及び組み合わせ回路104に供給する電源電圧値VDDHを切り替えるスイッチ部207は、それぞれのクリティカル・パスの近傍にレイアウトしてもよく、また、当該多機能DSPブロックの適当な場所にまとめてレイアウトしてもよく、さらに半導体集積回路の中の1箇所にまとめて集中管理するように設計することもできる。
【0120】
例えば、図4の電源レギュレータ481から、電源電圧VDDL、VDDHを、第1の機能ブロック410には電源配線482で、第4の機能ブロック220には電源配線483で、第3の機能ブロック430には電源配線484で、第4の機能ブロック440には電源配線485で、第5の機能ブロック450には電源配線486でそれぞれ配線し、供給することができる。
【0121】
次に、図3の太枠で囲まれた回路をそれぞれのクリティカル・パスの近傍にレイアウトする場合においては、図4の電源レギュレータ481からそれぞれのクリティカル・パスの近傍の間に複数の電源を配線する必要がある。この場合においては、スペースの点から配線する電源配線の数は極力少なくする必要がある。そこで以下のような工夫を行う。
【0122】
図11に当該多機能DSPブロックにおける電源電圧値VDDLでのパスディレイの値を横軸に、対応するパスディレイの値のカウント数を縦軸に示す。当該多機能DSPブロックに供給されるクロック周波数で決まる遅延時間を図中に縦線で示している。図11中の縦線によって示された時間よりパスディレイの値が大きい場合はクリティカル・パスになり、クリティカル・パスの組み合わせ回路104に対しては遅延時間を減少させるために電源電圧値VDDLより高い値の電源電圧値VDDHを供給する。但し、フリップ・フロップ103に供給される電源電圧VDDLよりクリティカル・パスの組み合わせ回路104に供給される電源電圧値VDDHが高くなるのでフリップ・フロップ103と組み合わせ回路104の間にレベル・シフタ152を挿入してある。
【0123】
図11から解かるように、クリティカル・パスと言ってもパスディレイの値には差が有り、その遅延時間の厳しさにより、3段階程度の差を想定して対応する。従ってクリティカル・パスの組み合わせ回路104に供給される電源電圧値VDDHにも、電源電圧値VDDH−lowlow、電源電圧値VDDH−low、電源電圧値VDDH−normal、電源電圧値VDDH−high、電源電圧値VDDH−highhighの5段階の電圧を想定することにする。具体的な値としては、例えば、電源電圧値VDDL、電源電圧値VDDH−lowlow、電源電圧値VDDH−low、電源電圧値VDDH−normal、電源電圧値VDDH−high、電源電圧値VDDH−highhighの値はそれぞれ、1.0V、1.10V、1.15V、1.20V、1.25V、1.30Vである。
【0124】
繰り返すが、クリティカル・パスと言ってもパスディレイの値には差が有る。クリティカル・パスの遅延の程度が低いものに対しては、電源電圧値VDDH−lowlow、電源電圧値VDDH−low、電源電圧値VDDH−normalの3段階の電圧を選択できるように設定し、クリティカル・パスの遅延の程度が中程度のものに対しては、電源電圧値VDDH−low、電源電圧値VDDH−normal、電源電圧値VDDH−highの3段階の電圧を選択できるように設定し、クリティカル・パスの遅延の程度が大のものに対しては電源電圧値VDDH−normal、電源電圧値VDDH−high、電源電圧値VDDH−highhighの3段階の電圧を選択できるように設定する。図12、図13、図14にそれぞれの場合の図を示す。電源電圧値VDDHはそれぞれのクリティカル・パスにおいては3段階になっているので、図1にあるようなカナリアFFが2つで充分である。
【0125】
初期値としては、それぞれの場合における中間の電源電位を、つまり、表2の(2)の場合になるように設計する。具体的には、クリティカル・パスの遅延の程度が低いものに対しては、電源電圧値VDDHの初期値として電源電圧値VDDH−lowに設定するように設計し、クリティカル・パスの遅延の程度が中程度のものに対しては、電源電圧値VDDHの初期値として電源電圧値VDDH−normalに設定するように設計し、クリティカル・パスの遅延の程度が大のものに対しては電源電圧値VDDHの初期値として電源電圧値VDDH−highに設定するように設計する。
【0126】
例えば、あるクリティカル・パスにおいて、当該クリティカル・パスのクリティカル・パス遅延の程度が中程度のものだと想定し表2の(2)の場合になるように設計したとする。ところが現実には表2の(1)の場合になっていたとする。このとき、比較結果信号10の値が“1”、比較結果信号14の値が“1”になるので、「電源電圧値VDDHを上げる」ように制御が働く。従って、電源電圧値VDDHは初期値に設定されていた電源電圧値VDDH−normalから電源電圧値VDDH−highに電源電圧値が変更される。
【0127】
同様にあるクリティカル・パスにおいて、当該クリティカル・パスのクリティカル・パス遅延の程度が中程度のものだと想定し表2の(2)の場合になるように設計したとする。ところが、現実には表2の(3)の場合になっていたとする。このとき、比較結果信号10の値が“0”、比較結果信号14の値が“0”になるので、「電源電圧値VDDHを下げる」ように制御が働く。従って、電源電圧値VDDHは初期値に設定されていた電源電圧値VDDH−normalから電源電圧値VDDH−lowに電源電圧値が変更される。当該クリティカル・パスの遅延を起こす原因が何であれ、本発明の構成により自動的に当該クリティカル・パスの遅延のマージンを所定値に調節する機能がある。
【0128】
当該多機能DSPの当該仕事における消費電力を少なくしようとすると、設定する当該多機能DSPの電源電圧値を最も遅延値が大きいクリティカル・パスがどうにかパスするようなギリギリの値に設定すればよい。しかし、このような微妙な設定は事前に綿密なシミュレーションによっても決定するのは非常に困難である。
【0129】
それぞれのクリティカル・パスにカナリアFFを複数使用することにより、現状の回路で遅延マージンが希望する値に対して少ないか、適切か、多いかを知ることができ、この情報を用いてそれぞれのクリティカル・パスの組み合わせ回路の電源電圧を「上げる」「保持する」「下げる」制御に用いることにより、低消費電力化に適したDVS(Dynamic Voltage Scaling)技術及びAVS(Adaptive Voltage Scaling)技術を実現することができる。
【0130】
以上の説明は本発明の好適な実施の形態の例証であり、本発明の範囲はこれに限定されることはない。
【0131】
以上の実施の形態3において、本発明の実施の形態1又は実施の形態2を活用する半導体集積回路の一例について記載した。しかし、本発明の実施の形態1又は実施の形態2を活用する半導体集積回路は実施の形態3に限るものではない。
【0132】
例えば、実施の形態3においては、第2の機能ブロックから第5の機能ブロックすべてを“多機能DSP”として定義したが、ある機能ブロックは演算中心の処理を実行するだけで一般的にいう“DSP”に該当しない場合も含まれる。
【0133】
また、“多機能DSP”を想定した機能ブロックとして第2の機能ブロックから第5の機能ブロックの4つの機能ブロックがある場合について説明してきたが、この数は勿論4つに限定されるものではない。
【産業上の利用可能性】
【0134】
本発明に係る半導体集積回路は、AVS(Adaptive Voltage Scaling)技術又はDVS(Dynamic Voltage Scaling)技術を用いた半導体集積回路等の低消費電力化に対して有効である。
【図面の簡単な説明】
【0135】
【図1】本発明の実施の形態1に係る半導体集積回路の構成を示すブロック図
【図2】本発明の実施の形態2に係る半導体集積回路の構成を示すブロック図
【図3】カナリアFFが4つの構成の場合において、クリティカル・パスを形成する組み合わせ回路104の電源電圧値VDDHを具体的にどのように変えるかを示す構成図
【図4】実施の形態1又は実施の形態2を具体的にDVFS(Dynamic Voltage and Frequency Scaling)機構を搭載した半導体集積回路に適用した場合の構成を示すブロック図
【図5】第2の機能ブロック420内にある第2の内部メモリ422の接続を示す図
【図6】実施の形態2に係る半導体集積回路の第1の機能ブロック内にある内部メモリの接続を示す図
【図7】第2の機能ブロック420の仕事量及び第2の機能ブロック420の電源電圧(動作周波数)の時間経過依存性を示す図
【図8】第1の機能ブロック410の仕事量及び第1の機能ブロック410の電源電圧(動作周波数)の時間経過依存性を示す図
【図9】第2の機能ブロック420内にある第2のクロック発生回路421の構成を示すブロック図
【図10】第1の機能ブロック410内にある第1のクロック発生回路411の構成を示すブロック図
【図11】遅延パスのパス・ディレイとカウント数の図
【図12】クリティカル・パスの遅延の程度が低い場合に、電源電圧値VDDH−lowlow、電源電圧値VDDH−low、電源電圧値VDDH−normalの3段階の電圧を選択する回路図
【図13】クリティカル・パスの遅延の程度が中程度の場合に、電源電圧値VDDH−low、電源電圧値VDDH−normal、電源電圧値VDDH−high、の3段階の電圧を選択する回路図
【図14】クリティカル・パスの遅延の程度が大の場合に、電源電圧値VDDH−normal電源電圧値VDDH−high、電源電圧値VDDH−highhighの3段階の電圧を選択する回路図
【図15】従来のシステムLSIのブロック図
【図16】従来のシステムLSIのブロック図
【図17】従来のシステムLSIのブロック図
【図18】カナリアFFの回路図を従来のクリティカル・パスに適応したブロック図
【符号の説明】
【0136】
101 信号
102 クロック信号
103,105,108,112,116,120 フリップ・フロップ
104 組み合わせ回路
107,111,115,119 遅延素子
109,113,117,121 Exclusive−OR(不一致回路)
106,110,114,118,122 比較結果信号
152 レベル・シフタ
150 電源電圧VDDL
151 電源電圧VDDH
【技術分野】
【0001】
本発明は、低消費電力化に適したAVS(Adaptive Voltage Scaling)技術又はDVS(Dynamic Voltage Scaling)を用いた半導体集積回路に関する。
【背景技術】
【0002】
3年に4倍という半導体の集積度向上というペースがここ10年以上続いたために半導体集積回路の規模は膨大になり、半導体集積回路のチップ構成の仕方も大きく変化を遂げてきた。
【0003】
図15は、システムLSIの構成を示すブロック図である。図15において、半導体集積回路600は、汎用のCPU611、DSP(Digital Signal Processor)612、専用回路613、専用回路614、SDRAM(Synchronous Dynamic RAM)制御回路615、及びDMA(Direct Memory Access)コントローラ616などから構成されており、これらは共通のバス617を介して相互に接続されている。CPU611及びDSP612は、それぞれ内部に内部メモリ611a及び内部メモリ612aを有する。半導体集積回路600は、通常、外部に大容量のSDRAM618を用意している。
【0004】
現在でも半導体集積回路に搭載される機能に対する要求は日々めまぐるしく変わる可能性があり、図15のように一部の機能を専用回路613や専用回路614のように構成してしまうと、このような要望の変化に迅速に対応できない可能性がある。
【0005】
そのため、現状の段階では図16のように、汎用CPU以外の演算機能を中心とする機能に対しては「多機能DSP+拡張機能」という構成にして、変化する可能性がある仕様に対しては多機能DSP上のソフトで対応するようになりつつある。
【0006】
図16は、このようなシステムLSIの構成を示すブロック図である。図16において、半導体集積回路700は、汎用のCPU711、多機能DSP721及び拡張機能722からなる演算機能部723、多機能DSP724及び拡張機能725からなる演算機能部726、SDRAM制御回路715、DMAコントローラ716、各機能部側に配置されたローカルバス727〜729、SDRAM制御回路715及びDMAコントローラ716側に配置されたグローバルバス730、及びローカルバス727〜729とグローバルバス730とを接続するバスブリッジ731〜733を備えて構成される。多機能DSP721は、内部メモリ721aを有する。バス構成も各機能部にはローカルバス727〜729が割り当てられ、SDRAM制御回路715側にはグローバルバス730が配置され、ローカルバス727〜729とグローバルバス730の間はバスブリッジ731〜733が置かれている。
【0007】
今後半導体プロセスの進歩により、ますます多くの機能が半導体集積回路に搭載されるようになると、半導体集積回路の構成はさらに図17のように変化するであろう。
【0008】
図17は、システムLSIのさらに別の構成を示すブロック図である。図17において、半導体集積回路800は、1つの汎用のCPU811、内部メモリ841a〜844aを有する4個の汎用演算プロセッサ841〜844、SDRAM制御回路815、DMAコントローラ816、周辺I/O群860を制御するI/O制御回路845、CPU811及びI/O制御回路845側に配置されたローカルバス846、汎用演算プロセッサ841〜844側に配置されたローカルバス847〜850、ローカルバス846とローカルバス847〜850との間に配置されたグローバルバス851、ローカルバス847〜50とグローバルバス851とを接続するバスブリッジ852〜855、及びローカルバス846とグローバルバス851とを接続するバスブリッジ856を備える。
【0009】
半導体集積回路800では、1つの汎用CPU811と数個(4個から8個程度)の汎用演算プロセッサ841〜844がローカルバス846〜850、グローバルバス851とバスブリッジ852〜856を介して接続され、外部には大容量のSDRAM818を配置し、SDRAM制御回路815は、汎用CPU811、数個の汎用演算プロセッサ841〜844、DMAコントローラ816などとSDRAM818の調停を行う。
【0010】
上述したように半導体集積回路の集積度が上がってくると、最も深刻な問題として動作時及びスタンバイ時の増大する消費電力の問題がある。この問題の解決策として最も注目を浴びている技術として、DVS(Dynamic Voltage Scaling)技術又はAVS(Adaptive Voltage Scaling)技術がある。これらの技術に関する内容に関しては以下の文献(例えば、特許文献1,2及び非特許文献1,2)に詳細に述べられているので、説明は省略する。
【0011】
しかしながら、このような従来の半導体集積回路にあっては、以下のような問題点があった。
【0012】
非特許文献1によると、AVS技術には、現状において大きな制限事項がある。現状のAVS技術では、チップ全体に対してこの技術を採用することを前提にしている。この場合ではチップ全体が同時に電源電圧とそれに対応したシステム・クロック周波数を変えるようになっている。つまり、このシステムにおいて、チップの電源電圧、そしてシステム・クロック周波数は時間軸で変化して、仕事の付加量が大きいときにはチップの電源電圧を高くし(例えば、VDD=1.5V)、そしてシステム・クロック周波数も高くする(例えば、fclk=400MHz)ように、CPUが制御する。また、仕事の負荷量が小さくなるとチップの電源電圧を低くし(例えば、VDD=1.0V)、そしてシステム・クロック周波数も低くする(例えば、fclk=200MHz)ように、CPUが制御する。こうすることにより、このチップで消費される消費電力を少なくすることができる。通常システムLSIにはビデオ信号処理ブロック、オーディオ信号処理ブロック、制御信号処理ブロックなど各種の機能ブロックが存在して、しかも、これらの機能ブロック間ではその処理に必要とされる仕事の負荷量に大きな差がある。
【0013】
この問題に対して課題解決を試みようとしている先行技術に、上記非特許文献2がある。ここでは、オーディオ信号処理ブロックの電源電圧は0.9V/1.2V、システム・クロック周波数は90MHz/180MHzから選択できるようにするが、オーディオ信号処理ブロック以外のブロック(ここにはビデオ信号処理ブロックなどが存在する)に対しては、電源電圧は1.2V、システム・クロック周波数は180MHzに固定している。
【0014】
以上の説明では各機能ブロックにおいて、それぞれの仕事内容に対応して多機能DSPにとってどのような電源電圧に設定し、かつ、どのような動作周波数に設定するかは事前に綿密なシミュレーションによって決定する。しかし、各多機能DSPのブロックの内部回路を検討すると、この回路にはさまざまな遅延パスが存在する。ある特定の仕事をこの多機能DSPにおいて実行するのに必要な電源電圧値は、この機能ブロックに存在するさまざまな遅延パスの内、クリティカル・パスと呼ぶ一群の遅延パスによってその値が決定されている。ある仕事を実施する間は動作周波数が一定であると想定すると、多機能DSPの動作にマージンを持たせるには電源電圧値にマージンを持たせることになる。
【0015】
当該多機能DSPの消費電力を少なくしようとすると、設定する当該多機能DSPの電源電圧値を、最も遅延値が大きいクリティカル・パスをどうにかパスできるようなギリギリの値に設定すればよい。しかし、このような微妙な設定は事前に綿密なシミュレーションによっても決定するのは非常に困難である。
【0016】
電源電圧値の微妙な設定を実現する技術として従来は、非特許文献3に開示されている、図18に示すカナリア・フリップ・フロップが考案されている。図18において、まず信号901はクロック信号902に同期してフリップ・フロップ903に取り込まれ、次のクロック周期において、組み合わせ回路904により遅延した後、フリップ・フロップ905(以下「メインFF905」という。)に取り込まれる。組み合わせ回路904により遅延した後の信号を遅延素子907により特定の時間だけ遅延させた信号はフリップ・フロップ908(以下「カナリアFF908」という。)に取り込まれる。メインFF905とカナリアFF908からの信号を排他的論理和(Exclusive−OR)回路によって構成される比較回路909によって比較する。メインFF905とカナリアFF908に保持されている値が異なると、信号901は遅延素子907の遅延値だけ現状よりも遅くなると誤動作を起こすことを表している。つまり、このカナリアFFの構成によりタイミングエラーの予測ができている。マージンの観点から見ると、必要なマージンに相当する遅延素子907の遅延値により比較回路909の出力が“1”になった場合は、多機能DSPのブロックの電源電圧値に十分なマージンがないことを表すので、多機能DSPのブロックの電源電圧値VDD950を上げるような制御を行う必要がある。
【0017】
【特許文献1】米国特許第5745375号明細書
【特許文献2】米国特許第6868503号明細書
【特許文献3】特願2004−241466
【特許文献4】特願2006−68400
【非特許文献1】“A Combined Hardware-Software Approach for Low-Power SoC: Applying Adaptive Voltage Scaling and Intelligent Energy Management Software”, Design 2003(System-on-Chip and ASIC Design Conference)
【非特許文献2】“An H.264/MPEG-4Audio/Visual Codec LSI with Module-Wise Dynamic Voltage/Frequency Scaling”, ISSCC2005 Dig. Tech. Papers, pp.132-133
【非特許文献3】T.Sato and Y Kunitake “A Simple Flip-Flop Circuit for Typical-Case Designs for DFM” 8th International Symposium on Quality Electronic Design, 2007
【発明の開示】
【発明が解決しようとする課題】
【0018】
以上に説明したカナリアFFを用いた多機能DSPブロックの電源電圧値の制御は、事前に綿密なシミュレーションによっても決定しきれない電源電圧値の設定に有効な方法であるが、以下のような課題がある。
【0019】
(1)課題1
非特許文献3において、比較回路909の出力が“1”になった場合は、多機能DSPのブロックの電源電圧値に十分なマージンがないことを表すので、多機能DSPのブロックの電源電圧値VDD950を上げるような制御を行う。非特許文献3では、多機能DSPのブロック全体の電源電圧を上げることになる。従って、クリティカル・パスでもない大多数の回路の電源電圧も上げることになり、半導体集積回路の低消費電力化の観点から好ましくない。
【0020】
(2)課題2
非特許文献3のカナリアFFを用いた多機能DSPブロックの電源電圧値の制御の構成では、当該クリティカル・パスのマージンを10%から20%の間に設定したいと思っても、これを実現することはできない。
【0021】
このように、カナリアFFを用いた多機能DSPブロックの電源電圧値の制御には、以上のような大きな2つの課題が存在する。
【0022】
本発明は、低消費電力化に適したAVS(Adaptive Voltage Scaling)技術又はDVS(Dynamic Voltage Scaling)を実現した半導体集積回路を提供することを目的とする。
【課題を解決するための手段】
【0023】
本発明は、クリティカル・パスを有する半導体集積回路であって、前記クリティカル・パスを形成する、直列接続された第1のフリップ・フロップ、組み合わせ回路及び第2のフリップ・フロップと、前記組み合わせ回路の後段に前記第2のフリップ・フロップと並列に設けられる、直列接続された第1の遅延回路及び第3のフリップ・フロップと、前記組み合わせ回路の後段に前記第2のフリップ・フロップと並列に設けられる、直列接続された第2の遅延回路及び第4のフリップ・フロップと、前記第2のフリップ・フロップの出力と前記第3のフリップ・フロップの出力とを比較する第1の比較回路と、前記第2のフリップ・フロップの出力と前記第4のフリップ・フロップの出力とを比較する第2の比較回路と、前記第1の比較回路の出力及び前記第2の比較回路の出力に応じて、前記組み合わせ回路に供給される電源電圧を制御する制御回路と、を備え、前記第1の遅延回路は、前記組み合わせ回路から入力された信号を第1の遅延時間後に出力し、前記第2の遅延回路は、前記組み合わせ回路から入力された信号を前記第1の遅延時間とは異なる第2の遅延時間後に出力する半導体集積回路を提供する。
【0024】
上記半導体集積回路では、前記第1の遅延時間は、前記第1のフリップ・フロップから前記第2のフリップ・フロップまでの遅延時間の5%から30%の値である。
【0025】
上記半導体集積回路では、前記第2の遅延時間は、前記第1の遅延時間の105%から130%の値である。
【0026】
上記半導体集積回路では、前記第1の比較回路の出力が2つの入力信号の“不一致”を示し、かつ、前記第2の比較回路の出力が2つの入力信号の“不一致”を示す場合、前記制御回路は、前記組み合わせ回路に供給される電源電圧を上げるよう制御する。
【0027】
上記半導体集積回路では、前記第1の比較回路の出力が2つの入力信号の“一致”を示し、かつ、前記第2の比較回路の出力が2つの入力信号の“不一致”を示す場合、前記制御回路は、前記組み合わせ回路に供給される電源電圧を保持するよう制御する。
【0028】
上記半導体集積回路では、前記第1の比較回路の出力が2つの入力信号の“一致”を示し、かつ、前記第2の比較回路の出力が2つの入力信号の“一致”を示す場合、前記制御回路は、前記組み合わせ回路に供給される電源電圧を下げるよう制御する。
【0029】
上記半導体集積回路では、前記第1のフリップ・フロップ及び前記第2のフリップ・フロップには等しい電源電圧が供給され、当該電源電圧は、前記組み合わせ回路に供給される電源電圧より低い。
【0030】
上記半導体集積回路では、前記制御回路は、前記組み合わせ回路に供給される電源電圧を「上げる」、「保持する」又は「下げる」よう制御する。
【0031】
上記半導体集積回路では、前記制御回路は、前記組み合わせ回路に供給される電源電圧の初期設定を「保持する」に設定する。
【0032】
上記半導体集積回路は、前記組み合わせ回路の後段に前記第2のフリップ・フロップと並列に設けられる、直列接続された第3の遅延回路及び第5のフリップ・フロップと、前記組み合わせ回路の後段に前記第2のフリップ・フロップと並列に設けられる、直列接続された第4の遅延回路及び第6のフリップ・フロップと、前記第2のフリップ・フロップの出力と前記第5のフリップ・フロップの出力とを比較する第3の比較回路と、前記第2のフリップ・フロップの出力と前記第6のフリップ・フロップの出力とを比較する第4の比較回路と、を備え、前記制御回路は、前記第1の比較回路の出力、前記第2の比較回路の出力、前記第3の比較回路の出力及び前記第4の比較回路の出力に応じて、前記組み合わせ回路に供給される電源電圧を制御し、前記第1の遅延時間、前記第2の遅延時間、前記第3の遅延回路による第3の遅延時間及び前記第4の遅延回路による第4の遅延時間は、それぞれ異なる。
【発明の効果】
【0033】
本発明によれば、半導体集積回路は、DVS(Dynamic Voltage Scaling)技術又はAVS(Adaptive Voltage Scaling)技術を最適な形で実現でき、より効果的に低消費電力化を図ることができる。
【発明を実施するための最良の形態】
【0034】
以下、本発明の実施形態について、図面を参照して説明する。
【0035】
(実施の形態1)
図1は、本発明の実施の形態1に係る半導体集積回路の構成を示す図である。図1に示すように、本実施形態の半導体集積回路は、2つのカナリアFF108,112を備える。
【0036】
図1において、まず信号101はクロック信号102に同期してフリップ・フロップ103に取り込まれ、次のクロック周期において、異電圧間の電圧レベルの変換を行うレベル・シフタ152及び組み合わせ回路104により遅延した後、フリップ・フロップ105(以下「メインFF105」という。)に取り込まれる。レベル・シフタ152及び組み合わせ回路104により遅延した後の信号を第1の遅延素子107により特定の遅延時間T1だけ遅延させた信号はフリップ・フロップ108(以下「第1カナリアFF108」という。)に取り込まれる。メインFF105からの信号と第1カナリアFF108からの信号を第1のExclusive−OR(不一致回路)109によって比較する。比較結果は比較結果信号110として出力される。
【0037】
また、レベル・シフタ152及び組み合わせ回路104により遅延した後の信号を、第2の遅延素子111により特定の遅延時間T2だけ遅延させた信号はフリップ・フロップ112(以下「第2カナリアFF112」という。)に取り込まれる。メインFF105からの信号と第2カナリアFF112からの信号を第2のExclusive−OR(不一致回路)113によって比較する。比較結果は比較結果信号114として出力される。
【0038】
ここで、第1の遅延素子107による特定の遅延時間T1をフリップ・フロップ103からフリップ・フロップ105までの遅延時間の10%に設定し、第2の遅延素子111による特定の遅延時間T2をフリップ・フロップ103からフリップ・フロップ105までの遅延時間の20%に設定する。
【0039】
このように設定した場合において、比較結果信号110の値と比較結果信号114の値の組み合わせにより、以下に示す表1のように、レベル・シフタ152及び組み合わせ回路104に供給する電源電圧値VDDHを制御する。図1において、レベル・シフタ152及び組み合わせ回路104に供給されている電源電圧値VDDHは、組み合わせ回路104以外に供給されている電源電圧値VDDLと比較して高い電圧値に設定されている。
【0040】
表1において、×と表示されているケースは、通常では存在しない場合である。つまり、比較結果信号110の値が“1”、かつ、比較結果信号114の値が“0”になるような場合は通常存在しない。
【0041】
【表1】
【0042】
比較結果信号110の値と比較結果信号114の値の組み合わせによる電源電圧値VDDHの制御の方法は以下のようにまとめることもできる。この方法による表を表2に示す。
【0043】
(1)の場合:
比較結果信号110の値が“1”で比較結果信号114の値が“1”の場合、つまり、10%のマージンに対してもフェイルする場合は、現実のマージンが10%未満であるため、電源電圧値VDDHを上げるように制御される。その結果、現実のマージンが上がる。
【0044】
(2)の場合:
比較結果信号110の値が“0”で比較結果信号114の値が“1”の場合、つまり、10%のマージンに対してはパスするが、20%のマージンに対してはフェイルする場合は、現実のマージンが10%以上20%未満であるため、電源電圧値VDDHを保持するように制御される。
【0045】
(3)の場合:
比較結果信号110の値が“0”で比較結果信号114の値が“0”の場合、つまり、20%のマージンに対してもパスする場合は、現実のマージンが20%以上であるため、電源電圧値VDDHを下げるように制御される。その結果、現実のマージンが下がる。
【0046】
【表2】
【0047】
比較結果信号110の値と比較結果信号114の値の組み合わせにより、表1及び表2のように、レベル・シフタ152及び組み合わせ回路104に供給する電源電圧値VDDHを制御することにより、当該クリティカル・パスのマージンを10%から20%の間に設定することが可能となる。
【0048】
この構成を各クリティカル・パスに適応することにより、すべてのクリティカル・パス個々に対して対応することができる。これにより課題2は解決される。
【0049】
また、図1の回路図からわかるように、遅延時間のマージンを確保するために多機能DSPのブロック全体の電源電圧を上げることなく、クリティカル・パスを形成する組み合わせ回路104の電源電圧値VDDHだけを上げるような回路構成にしている。このためクリティカル・パスを形成しない遅延パスの電源電圧値は電源電圧値VDDHより電圧値が低い電源電圧値VDDLに設定されている。従ってクリティカル・パスでない大多数の回路の電源電圧は上げることないので、低消費電力化の観点から好ましい。これにより課題1も解決される。
【0050】
以上に、第1カナリアFF108と第2カナリアFF112の2つのカナリアFFがある場合について説明したが、カナリアFFを4つの構成にすることにより、2つの構成では当該クリティカル・パスのマージンを10%から20%の間のような設定しかできないが、さらに一歩進んで当該クリティカル・パスのマージンをより細かく設定することができるようになり、より低消費電力化が可能になる。
【0051】
(実施の形態2)
図2は、本発明の実施の形態2に係る半導体集積回路の構成を示す図である。図2に示すように、本実施形態の半導体集積回路は、4つのカナリアFF108,112,116,120を備える。
【0052】
図2において、まず信号101はクロック信号102に同期してフリップ・フロップ103に取り込まれ、次のクロック周期において、レベル・シフタ152及び組み合わせ回路104により遅延した後、フリップ・フロップ105(以下「メインFF105」という。)に取り込まれる。レベル・シフタ152及び組み合わせ回路104により遅延した後の信号を第1の遅延素子107による特定の遅延時間TT1だけ遅延させた信号は、フリップ・フロップ108(以下「第1カナリアFF108」という。)に取り込まれる。メインFF105と第1カナリアFF108からの信号を第1のExclusive−OR(不一致回路)109によって比較する。比較結果は比較結果信号110として出力される。
【0053】
また、レベル・シフタ152及び組み合わせ回路104により遅延した後の信号を、第2の遅延素子111により特定の遅延時間TT2だけ遅延させた信号は、フリップ・フロップ112(以下「第2カナリアFF112」という。)に取り込まれる。メインFF105からの信号と第2カナリアFF112からの信号を第2のExclusive−OR(不一致回路)113によって比較する。比較結果は比較結果信号114として出力される。
【0054】
また、レベル・シフタ152及び組み合わせ回路104により遅延した後の信号を、第3の遅延素子115による特定の遅延時間TT3だけ遅延させた信号は、フリップ・フロップ116(以下「第3カナリアFF116」という。)に取り込まれる。メインFF105からの信号と第3カナリアFF116からの信号を第3のExclusive−OR(不一致回路)117によって比較する。比較結果は比較結果信号118として出力される。
【0055】
さらに、レベル・シフタ152及び組み合わせ回路104により遅延した後の信号を、第4の遅延素子119による特定の遅延時間TT4だけ遅延させた信号は、フリップ・フロップ120(以下「第4カナリアFF120」という。)に取り込まれる。メインFF105からの信号と第4カナリアFF120からの信号を第4のExclusive−OR(不一致回路)121によって比較する。比較結果は比較結果信号122として出力される。
【0056】
ここで、第1の遅延素子107による特定の遅延時間TT1をフリップ・フロップ103からフリップ・フロップ105までの遅延時間の5%に設定し、第2の遅延素子111による特定の遅延時間TT2をフリップ・フロップ103からフリップ・フロップ105までの遅延時間の10%に設定し、第3の遅延素子115による特定の遅延時間TT3をフリップ・フロップ103からフリップ・フロップ105までの遅延時間の15%に設定し、さらに第4の遅延素子119による特定の遅延時間TT4をフリップ・フロップ103からフリップ・フロップ105までの遅延時間の20%に設定する。
【0057】
このように設定した場合において、比較結果信号110の値、比較結果信号114の値、比較結果信号118の値及び比較結果信号122の値の組み合わせにより、以下に示す表3のように、レベル・シフタ152及び組み合わせ回路104に供給する電源電圧値VDDHを制御する。図2においてレベル・シフタ152及び組み合わせ回路104に供給されている電源電圧値VDDHは、組み合わせ回路4以外に供給されている電源電圧値VDDLと比較して高い電圧値に設定されている。
【0058】
表3において、×と表示されているケースは、通常では存在しない場合である。表3に示すように、4つのケースが通常では存在しない。
【0059】
【表3】
【0060】
比較結果信号110の値、比較結果信号114の値、比較結果信号118の値及び比較結果信号122の値の組み合わせによる電源電圧値VDDHの制御の方法は以下のようにまとめることもできる。この方法による表を表4に示す。
【0061】
(1)の場合:
比較結果信号110の値が“1”、比較結果信号114の値が“1”、比較結果信号118の値が“1”かつ、比較結果信号122の値が“1”の場合、つまり、5%のマージンに対してもフェイルする場合は、現実のマージンが5%未満であるため、電源電圧値VDDHを上げるように制御する。その結果、現実のマージンが上がる。
【0062】
(2)の場合:
比較結果信号110の値が“0”、比較結果信号114の値が“1”、比較結果信号118の値が“1”かつ、比較結果信号122の値が“1”の場合、つまり、5%のマージンのみパスする場合は、現実のマージンが5%以上10%未満であるため、電源電圧値VDDHを上げるように制御する。その結果、現実のマージンが上がる。
【0063】
(3)の場合:
比較結果信号110の値が“0”、比較結果信号114の値が“0”、比較結果信号118の値が“1”かつ、比較結果信号122の値が“1”の場合、つまり、10%までのマージンのみパスする場合は、現実のマージンが10%以上15%未満であるため、電源電圧値VDDHを保持するように制御する。
【0064】
(4)の場合:
比較結果信号110の値が“0”、比較結果信号114の値が“0”、比較結果信号118の値が“0”かつ、比較結果信号122の値が“1”の場合、つまり、15%までのマージンのみパスする場合は、現実のマージンが15%以上20%未満であるため、電源電圧値VDDHを下げるように制御する。その結果、現実のマージンが下がる。
【0065】
(5)の場合:
比較結果信号110の値が“0”、比較結果信号114の値が“0”、比較結果信号118の値が“0”かつ、比較結果信号122の値が“0”の場合、つまり、20%までのマージンjまでパスする場合は、現実のマージンが20%以上であるため、電源電圧値VDDHを下げるように制御する。その結果、現実のマージンが下がる。
【0066】
【表4】
【0067】
比較結果信号110の値、比較結果信号114の値、比較結果信号118の値及び比較結果信号122の値の組み合わせにより、表3及び表4のように、レベル・シフタ152及び組み合わせ回路104に供給する電源電圧値VDDHを制御することにより、当該クリティカル・パスのマージンを10%から15%の間に設定することが可能となる。
【0068】
この構成を各クリティカル・パスに適応することにより、すべてのクリティカル・パス個々に対して対応することができる。これにより課題2は実施の形態1より精度よく解決される。
【0069】
また、図2の回路図からわかるように、本実施例2の場合でも図1の実施例1場合と同様に、遅延時間のマージンを確保するために多機能DSPのブロック全体の電源電圧を上げることなく、クリティカル・パスを形成する組み合わせ回路104の電源電圧値VDDHだけを上げるような回路構成にしている。このためクリティカル・パスを形成しない遅延パスの電源電圧値は電源電圧値VDDHより電圧値が低い電源電圧値VDDLに設定されている。従ってクリティカル・パスでない大多数の回路の電源電圧は上げることないので、低消費電力化の観点から好ましい。これにより課題1も解決される。
【0070】
図3はカナリアFFが4つの構成の場合において、クリティカル・パスを形成する組み合わせ回路104の電源電圧値VDDHを具体的にどのように変えるかを示す構成図である。図3において図2と同じ番号をつけているものは図2で説明した動作をするので説明は省略する。
【0071】
符号201は電源電圧値VDDLを供給する電源線、符号202、203、204、205、206はそれぞれ電源電圧値VDDH−lowlow、電源電圧値VDDH−low、電源電圧値VDDH−normal、電源電圧値VDDH−high、電源電圧値VDDH−highhighを供給する電源線である。符号208は、比較結果信号110の値、比較結果信号114の値、比較結果信号118の値及び比較結果信号122の値の組み合わせにより、表3及び表4のように、レベル・シフタ152及び組み合わせ回路104に供給する電源電圧値VDDHを切り替えるスイッチ部207制御するCPU等の制御回路である。
【0072】
(実施の形態3)
図4は、実施の形態1又は実施の形態2を具体的にDVFS(Dynamic Voltage and Frequency Scaling)機構を搭載した半導体集積回路に適用した場合の構成を示す回路ブロック図である。但し、まずDVFS(Dynamic Voltage and Frequency Scaling)機構を搭載した半導体集積回路300について詳細に説明する。その後に、今回の発明をDVFS(Dynamic Voltage and Frequency Scaling)機構を搭載した半導体集積回路に適用する方法について説明する。
【0073】
図4において、半導体集積回路300は、汎用CPUを想定した第1の機能ブロック410、第2の機能ブロック420、第3の機能ブロック430、第4の機能ブロック440、第5の機能ブロック450、SDRAM330を制御するSDRAM制御回路331、DMAコントローラ332、周辺I/O群333を制御するI/O制御回路334、第1の機能ブロック410及びI/O制御回路334側に配置されたローカルバス461、第2の機能ブロック420側に配置されたローカルバス462、第3の機能ブロック430側に配置されたローカルバス463、第4の機能ブロック440側に配置されたローカルバス464、第5の機能ブロック450側に配置されたローカルバス465、ローカルバス461とローカルバス462〜465との間に配置されたグローバルバス466、ローカルバス461とグローバルバス466とを接続するバスブリッジ471、ローカルバス462とグローバルバス466とを接続するバスブリッジ472、ローカルバス463とグローバルバス466とを接続するバスブリッジ473、ローカルバス464とグローバルバス466とを接続するバスブリッジ474、ローカルバス465とグローバルバス466とを接続するバスブリッジ475、外部から入力されるクロック351を基にして逓倍したクロックを生成するクロック発生回路352、及び外部電源480をもとに各部に所定電源を供給する電源レギュレータ480を備えて構成される。
【0074】
第1の機能ブロック410は、第1のシステム・クロック(fCLK1)414を生成する第1のクロック発生回路411と、第1の内部メモリ412と、第1のシステム・クロック(fCLK1)414と第2のシステム・クロック(fCLK2)424と第3のシステム・クロック(fCLK3)434と第4のシステム・クロック(fCLK4)444と第5のシステム・クロック(fCLK5)454のいずれかのクロックを選択し、第1の内部メモリ412に供給するセレクタ413とを備えて構成される。
【0075】
また、第2の機能ブロック420は、第2のシステム・クロック(fCLK2)424を生成する第2のクロック発生回路421と、第2の内部メモリ422と、第1のシステム・クロック(fCLK1)414と第2のシステム・クロック(fCLK2)424と第3のシステム・クロック(fCLK3)434と第4のシステム・クロック(fCLK4)444と第5のシステム・クロック(fCLK5)454のいずれかのクロックを選択し、第2の内部メモリ422に供給するセレクタ423とを備えて構成される。
【0076】
第3の機能ブロック430、第4の機能ブロック440及び第5の機能ブロック450も第1の機能ブロック410、第2の機能ブロック420と同様である。
【0077】
クロック発生回路352は、システム・クロック353を生成し、生成したシステム・クロック353を、第1の機能ブロック410内の第1のクロック発生回路411、第2の機能ブロック420内の第2のクロック発生回路421、第3の機能ブロック430内の第2のクロック発生回路431、第4の機能ブロック440内の第2のクロック発生回路441、第5の機能ブロック450内の第2のクロック発生回路451、SDRAM制御回路331、及びDMAコントローラ332にそれぞれ供給する。
【0078】
第1の機能ブロック410内にある回路に供給される第1のシステム・クロック(fCLK1)414は、第1の機能ブロック410内にある第1のクロック発生回路411で生成される。また、第2の機能ブロック420内にある回路に供給される第2のシステム・クロック(fCLK2)424は、第2の機能ブロック420内にある第2のクロック発生回路421で生成され、第3の機能ブロック430内にある回路に供給される第3のシステム・クロック(fCLK3)434は、第3の機能ブロック430内にある第3のクロック発生回路431で生成され、第4の機能ブロック440内にある回路に供給される第4のシステム・クロック(fCLK4)444は、第4の機能ブロック440内にある第4のクロック発生回路441で生成され、第5の機能ブロック450内にある回路に供給される第5のシステム・クロック(fCLK5)454は、第5の機能ブロック450内にある第5のクロック発生回路451で生成される。
【0079】
また、図4には示されていないが第1の機能ブロック410内にある第1のクロック発生回路411で生成された第1のシステム・クロック414はセレクタ413に供給されるだけでなく、第2から第5の機能ブロック420〜450内にあるセレクタ423からセレクタ453にも供給される。このことは他のシステム・クロックにおいても同様である。
【0080】
電源レギュレータ481は、第1の機能ブロック410に電源配線482を、第4の機能ブロック220に電源配線483を、第3の機能ブロック430に電源配線484を、第4の機能ブロック440に電源配線485を、第5の機能ブロック450に電源配線486をそれぞれ配線する。
【0081】
本実施の形態では、全体のフロー制御関係は、汎用CPUを想定した第1の機能ブロック410内の内部メモリ412に保存されているメインプログラム上に記載されており、処理能力を要するAV関連の処理などは、多機能DSPを想定した第2から第5の機能ブロック420〜450内の内部メモリ422〜452に保存されているサブプログラム上に記載されている。この意味からも、半導体集積回路300の仕事全体の管理を行っているのは汎用CPUを想定した第1の機能ブロック410である。
【0082】
以下、上述のように構成された半導体集積回路300の動作について説明する。
【0083】
第1の機能ブロック410内の第1のクロック発生回路411では、内部のPLL回路を用いて、半導体集積回路300に供給されたシステム・クロック353を基に第1の機能ブロック410の時間によって処理量が変化する演算を行うために必要な第1のシステム・クロック414を生成する。
【0084】
同様に、第2の機能ブロック420内の第2のクロック発生回路421では、第2の機能ブロック420の時間によって処理量が変化する演算を行うために必要な第2のシステム・クロック424を生成し、第3の機能ブロック430内の第3のクロック発生回路431では、第3の機能ブロック430の時間によって処理量が変化する演算を行うために必要な第3のシステム・クロック434を生成する。また、第4の機能ブロック440内の第4のクロック発生回路441では、第4の機能ブロック440の時間によって処理量が変化する演算を行うために必要な第4のシステム・クロック444を生成し、第5の機能ブロック450内の第5のクロック発生回路451では、第5の機能ブロック450の時間によって処理量が変化する演算を行うために必要な第5のシステム・クロック454を生成する。
【0085】
汎用CPUである第1の機能ブロック410は、大容量の内部メモリ412を有し、この汎用CPUである第1の機能ブロック410内にあるスケジューラ(図示せず)が半導体集積回路300全体の動作を統括している。このスケジューラは、具体的には汎用CPUによるメインプログラムの実行により実現される。
【0086】
第1の機能ブロック410は、上記メインプログラムを実行して半導体集積回路300全体の動作を統括するために、内部メモリ412に以下の情報を格納する。すなわち、第1の機能ブロック410の内部メモリ412は、第2の機能ブロック420がどのような時間からどのような仕事量の仕事をするためにどのような能力で処理しなければならなく、そのためには第2の機能ブロック420がどのような周波数で動作し、その動作周波数で第2の機能ブロック420が動作するためにはどのような電源電圧に設定する必要があるかの情報や、第3の機能ブロック430がどのような時間からどのような仕事量の仕事をするためにどのような能力で処理しなければならなく、そのためには第3の機能ブロック430がどのような周波数で動作し、その動作周波数で第3の機能ブロック430が動作するためにはどのような電源電圧に設定する必要があるかの情報や、第4の機能ブロック440がどのような時間からどのような仕事量の仕事をするためにどのような能力で処理しなければならなく、そのためには第4の機能ブロック440がどのような周波数で動作し、その動作周波数で第4の機能ブロック440が動作するためにはどのような電源電圧に設定する必要があるかの情報や、第5の機能ブロック450がどのような時間からどのような仕事量の仕事をするためにどのような能力で処理しなければならなく、そのためには第5機能ブロック450がどのような周波数で動作し、その動作周波数で第5の機能ブロック450が動作するためにはどのような電源電圧に設定する必要があるかの情報を有している。
【0087】
第1の機能ブロック410、第2の機能ブロック420、第3の機能ブロック430、第4の機能ブロック440、及び第5の機能ブロック450の電源電圧は、内蔵された電源レギュレータ481により生成され、各機能ブロックに対して第1の機能ブロック410に電源配線482が、第2の機能ブロック420に電源配線483が、第3の機能ブロック430に電源配線484が、第4の機能ブロック440に電源配線485が、第5の機能ブロック450に電源配線486がそれぞれ配線される。
【0088】
図5は、上記第1の機能ブロック410内にある内部メモリ412の接続図を示す図、図6は、上記第2の機能ブロック420内にある第2の内部メモリ422の接続を示す図である。
【0089】
図5において、符号412は第1の機能ブロック410内にある内部メモリ、符号491Aはチップセレクト信号、符号492Aはアウトプットイネーブル信号、符号493Aはリード/ライト信号、符号494Aはアドレス信号、符号495Aはデータ信号、符号496Aはローカルバス、符号414は第1の機能ブロック410内にある回路に供給される第1のシステム・クロック、符号424は第2の機能ブロック420内にある回路に供給される第2のシステム・クロック、符号434は第3の機能ブロック430内にある回路に供給される第3のシステム・クロック、符号444は第4の機能ブロック440内にある回路に供給される第4のシステム・クロック、符号454は第5の機能ブロック450内にある回路に供給される第5のシステム・クロック、符号413はセレクタ、符号497Aはセレクタ413の制御信号、符号498Aはセレクタ413の制御信号497Aにより選択された、第1の機能ブロック410内にある回路に供給される第1のシステム・クロック414か第2の機能ブロック420内にある回路に供給される第2のシステム・クロック424か第3の機能ブロック430内にある回路に供給される第3のシステム・クロック434か第4の機能ブロック440内にある回路に供給される第4のシステム・クロック444か第5の機能ブロック450内にある回路に供給される第5のシステム・クロック454のいずれかのシステム・クロック信号である。
【0090】
また、図6において、符号422は第2の機能ブロック410内にある内部メモリ、符号491Bはチップセレクト信号、符号492Bはアウトプットイネーブル信号、符号493Bはリード/ライト信号、符号494Bはアドレス信号、符号495Bはデータ信号、符号496Bはローカルバス、符号414は第1の機能ブロック410内にある回路に供給される第1のシステム・クロック、符号424は第2の機能ブロック420内にある回路に供給される第2のシステム・クロック、符号434は第3の機能ブロック430内にある回路に供給される第3のシステム・クロック、符号444は第4の機能ブロック440内にある回路に供給される第4のシステム・クロック、符号454は第5の機能ブロック450内にある回路に供給される第5のシステム・クロック、符号423はセレクタ、符号497Bはセレクタ423の制御信号、符号498Bはセレクタ423の制御信号497Bにより選択された、第1の機能ブロック410内にある回路に供給される第1のシステム・クロック414か第2の機能ブロック420内にある回路に供給される第2のシステム・クロック424か第3の機能ブロック430内にある回路に供給される第3のシステム・クロック434か第4の機能ブロック440内にある回路に供給される第4のシステム・クロック444か第5の機能ブロック450内にある回路に供給される第5のシステム・クロック454のいずれかのシステム・クロック信号である。
【0091】
〔第1の機能ブロック410内のデータ信号を第2の機能ブロック420内にある内部メモリ422に書き込む動作〕
第1の機能ブロック410が主導権をとって、第1の機能ブロック410内にあるデータ信号を、第2の機能ブロック420内にある内部メモリ422に書き込む場合には、第2の機能ブロック420内にある内部メモリ422が第2の機能ブロック420内にある回路によって使用されていないことを確認後、セレクタ423の制御信号497B(図6参照)を制御してシステム・クロック498Bが第1の機能ブロック410内にある回路に供給される第1のシステム・クロック(fCLK1)414となるように設定する。そして、チップセレクト信号491Bを“H”に設定し、リード/ライト信号493Bを“ライト状態”に設定し、第2の機能ブロック420内にある内部メモリ422のアドレス494Bを設定し、バスブリッジ471及びバスブリッジ472を制御してローカルバス461、グローバルバス466、ローカルバス462経由で第1の機能ブロック410内にあるデータ信号495Aを第2の機能ブロック420内にある内部メモリ422のデータ信号495Bへ送り、しかる後にデータ信号495Bを第2の機能ブロック420内にある内部メモリ422に書き込む。
【0092】
〔第2の機能ブロック420内にある第2の内部メモリ422のデータ信号を第1の機能ブロック410内の第1の内部メモリ412に読み出す動作〕
第1の機能ブロック410が主導権をとって、第1の機能ブロック410内へ第2の機能ブロック420内にある内部メモリ422のデータ信号を読み出す場合には、第2の機能ブロック420内にある内部メモリ422が第2の機能ブロック420内にある回路によって使用されていないことを確認後、セレクタ413の制御信号497A(図5参照)を制御してシステム・クロック498Aに第1の機能ブロック410内にある回路に供給される第1のシステム・クロック414が選択されるように設定し、チップセレクト信号491Aを“H”に設定し、リード/ライト信号493Aを“リード状態”に設定し、第2の機能ブロック420内にある内部メモリ4222のアドレス494Aを読み出したい領域のアドレスに設定し、バスブリッジ472及びバスブリッジ471を制御してローカルバス462、グローバルバス466、ローカルバス461経由で第2の機能ブロック420内にある内部メモリ222内に記憶されているデータ信号を第1の機能ブロック410内に読み出す。
【0093】
また、第2の機能ブロック410が主導権をとって、第2の機能ブロック420内にあるデータ信号を第1の機能ブロック410内にある内部メモリ412に書き込みたい場合や第2の機能ブロック420内へ第1の機能ブロック410内にある内部メモリ412のデータ信号を読み出す場合も上記と同様にすることにより実現できる。
【0094】
以上では、第1の機能ブロック410と第2の機能ブロック420相互でのデータの書き込み、読み出しについて説明してきたが、第1の機能ブロック410、第2の機能ブロック420、第3の機能ブロック430、第4の機能ブロック440、第5の機能ブロック450間での相互でのデータの書き込み、読み出しにおいても同様に実現できる。但し、本実施の形態では、第1の機能ブロック410が汎用CPUであり、それ以外の第2の機能ブロック420、第3の機能ブロック430、第4の機能ブロック440、第5の機能ブロック450は多機能DSPであることを仮定しているので、あくまで本実施の形態にあっても第1の機能ブロック410である汎用CPUが半導体集積回路300全体の動作を管理している。したがって、第1の機能ブロック410、第2の機能ブロック420、第3の機能ブロック430、第4の機能ブロック440、第5の機能ブロック450間での相互でのデータの書き込み、読み出しにおいても、基本的には、汎用CPUである第1の機能ブロック410の管理の下、汎用CPUである第1の機能ブロック410の指示に従って、第2の機能ブロック420、第3の機能ブロック430、第4の機能ブロック440、第5の機能ブロック450は相互でのデータの書き込み、読み出しを行っている。
【0095】
図7は、第2の機能ブロック420の仕事量及び第2の機能ブロック420の電源電圧(動作周波数)の時間経過依存性を示す図である。また、図8は、第1の機能ブロック410の仕事量、及び第1の機能ブロック410の電源電圧(動作周波数)の時間経過依存性を示す図である。
【0096】
図7(a)の第2の機能ブロック420の仕事量及び図7(b)の第2の機能ブロック420の動作電源電圧の例に示すように、第2の機能ブロック420は時間t0からt1まで仕事21を電源電圧VDD21、動作周波数fCLK21で行い、時間t1からt2まで仕事22を電源電圧VDD22、動作周波数fCLK22で行い、時間t2からt3まで仕事23を電源電圧VDD23、動作周波数fCLK23で行い、時間t3からt4まで仕事24を電源電圧VDD24、動作周波数fCLK24で行うという仕事のスケジュールが、汎用CPUである第1の機能ブロック410で管理されている。
【0097】
図8(a)の第1の機能ブロック410の仕事量及び図8(b)の第1の機能ブロック410の動作電源電圧の例に示すように、第1の機能ブロック410は時間t0からt1まで仕事11を電源電圧VDD11、動作周波数fCLK11で行い、時間t1からt2まで仕事12を電源電圧VDD12、動作周波数fCLK12で行い、時間t2からt3まで仕事13を電源電圧VDD13、動作周波数fCLK13で行うという仕事のスケジュールが、自己の第1の機能ブロック410で管理されている。
【0098】
図7及び図8を比較して分かるように、第1の機能ブロック410内にある第1のクロック発生回路411で生成され、第1の機能ブロック410内にある回路に供給される第1のシステム・クロック414の周波数は、第1の機能ブロック410内で行われる仕事の演算処理量に依存して決まり、第2の機能ブロック420内にある第2のクロック発生回路421で生成され、第2の機能ブロック420内にある回路に供給される第2のシステム・クロック424の周波数は、第2の機能ブロック420内で行われる仕事の演算処理量に依存して決まる。したがって、第1の機能ブロック410内にある第1のクロック発生回路411で生成され、第1の機能ブロック410内にある回路に供給される第1のシステム・クロック414の周波数と第2の機能ブロック420内にある第2のクロック発生回路421で生成され、第2の機能ブロック420内にある回路に供給される第2のシステム・クロック424の周波数との間に明確な相関はない。
【0099】
図9は、第2の機能ブロック420内にある第2のクロック発生回路421の構成を示すブロック図である。
【0100】
図9において、第2のクロック発生回路421は、クロック発生回路352で生成されたシステム・クロック353と分周回路出力とを位相比較する位相検出器381、ループフィルタ382、VCO(Voltage Controlled Oscillator)383、及びVCO383からの出力信号の周波数をN/M倍(但し、M>N)に分周する分周回路384Aを備えて構成される。また、符号385Aは汎用CPUを想定する第1の機能ブロック410からの制御信号、符号424は第2の機能ブロック420内にある第2のクロック発生回路421で生成された第2のシステム・クロック(fCLK2)である。
【0101】
第2のクロック発生回路421は、PLL(Phase-Locked Loop)回路386を構成しており、クロック発生回路352で生成されたシステム・クロック353に同期した第2のシステム・クロック424を生成している。しかも、第2のシステム・クロック424の動作周波数は汎用CPUを想定する第1の機能ブロック410からの制御信号385Aで希望する周波数に設定できる。例えば、クロック発生回路352で生成されたシステム・クロック353の周波数をfCLK_353,クロック発生回路352で生成されたシステム・クロック353に同期した第2のシステム・クロック424の周波数をfCLK_424、汎用CPUを想定する第1の機能ブロック410からの制御信号385Aで設定されるVCO383からの出力信号の周波数の分周比率をN/Mとすると、以下の関係が成立する。
fCLK_424×N/M=fCLK_353 …(1)
【0102】
したがって、
fCLK_424=fCLK_353×M/N …(2)
の関係が成立する。
【0103】
以上のように方法により、第2のクロック発生回路421によってクロック発生回路352で生成されたシステム・クロック353に同期した第2のシステム・クロック424は汎用CPUを想定する第1の機能ブロック410からの制御信号385Aで自由に制御することができる。
【0104】
図10は、第1の機能ブロック410内にある第1のクロック発生回路411の構成を示すブロック図である。図9と同一構成部分には同一符号を付している。
【0105】
第1のクロック発生回路411は、第2のクロック発生回路421における第1の機能ブロック410からの制御信号385Bが自分自身のブロック内からの信号であること以外は同様な構成になっている。
【0106】
以上の関係をまとめると、第1の機能ブロック410内にある第1のクロック発生回路411によって、第1の機能ブロック410の時間によって処理量が変化する演算を行うために必要な第1のシステム・クロック414が第1のクロック発生回路411を用いて、半導体集積回路300のシステム・クロック353から生成され、第2の機能ブロック420内にある第2のクロック発生回路421によって、第2の機能ブロック420の時間によって処理量が変化する演算を行うために必要な第2のシステム・クロック424が第2のクロック発生回路421を用いて、半導体集積回路300のシステム・クロック353から生成される。
【0107】
汎用CPUである第1の機能ブロック410は、大容量の第1の内部メモリ412を有し、この第1の機能ブロック410が半導体集積回路300全体の動作を統括している。本実施の形態において、第2の機能ブロック420がどのような順序で、どのような仕事を行うかの具体的なスケジュールを大容量な内部メモリ412内にプログラムの形で有しており、さらに、そのプログラムを実行する過程で第2の機能ブロック420がどのような時間からどのような仕事量の仕事をするためにどのような能力で処理しなければならなく、そのためには第2機能ブロック420がどのような周波数で動作し、その動作周波数で第2の機能ブロック420が動作するためにはどのような電源電圧で動作しなければならないかの情報を有している。
【0108】
次に、第1の機能ブロック410が第2の機能ブロック420の電源電圧と動作周波数を如何に制御するかを具体的に説明する。
【0109】
第2の機能ブロック420がどのような仕事をするかは、第1の機能ブロック410の内部メモリ412に動作プログラムの形で記述されている。第1の機能ブロック410は、上記動作プログラムにより、第2の機能ブロック420は時間t0から仕事21(図7参照)を実行することを読み取る。次に、その仕事21に相応しい電源電圧VDD21、動作周波数fCLK21、前記式(2)に述べたM/Nを前記動作プログラムとは別の特定領域に保存された表5から読み出す。
【0110】
【表5】
【0111】
この表5は、動作プログラムに記載されているそれぞれの仕事内容を事前に検討し、それぞれの仕事を第2の機能ブロック420の多機能DSPに行わせる場合どのような動作周波数を必要として、そのためにはどのような電源電圧に設定する必要があるかに対する綿密なシミュレーションに基づいて決定されている。
【0112】
そして、まず、第1の機能ブロック410は内蔵された電源レギュレータ481に指示して、第2の機能ブロック420に電源電圧VDD2を供給する。
【0113】
次に、第1の機能ブロック410は、図9に示す制御信号385を介して第2のクロック発生回路421のVCO383からの出力信号の周波数をN/M倍(但し、M>N)に分周する回路にしかるべきM/Nの具体的な値を書き込む。第2のクロック発生回路421はPLL回路386のセットアップ時間を経過後に安定した動作周波数fCLK2に設定される。但し、以上の設定に要する時間は仕事21に要する時間に比して僅かであるので、図7には示していない。
【0114】
第2の機能ブロック420の電源電圧VDD2と動作周波数fCLK2が安定するに必要な時間経過後に、第1の機能ブロック410は第2の機能ブロック420が仕事21の開始を許可するので、第2の機能ブロック420は仕事21を開始する。
【0115】
第2の機能ブロック420は、仕事21が完了したときには、「仕事21が完了したとの情報」を仕事全体の管理している第1の機能ブロック410に報告する。勿論、第2の機能ブロック420は仕事21が完了したときには、「仕事21が完了したとの情報」を仕事全体の管理している第1の機能ブロック410に報告することに代えて、第2の機能ブロック420が「仕事21が完了したとの情報」をフラグとして、特定のレジスタに記録して、第1の機能ブロック410が上記レジスタを見に行くような仕組みでもよい。
【0116】
以上の説明では各機能ブロックにおいて、それぞれの仕事内容に対応して多機能DSPにとってどのような電源電圧に設定し、かつ、どのような動作周波数に設定するかは事前に綿密なシミュレーションによって決定すると記述した。ある仕事を実施する間は動作周波数を一定と想定すると、多機能DSPの動作にマージンを持たせるには動作電源電圧値にマージンを持たせることになる。この際に主に考慮しなければならい点が2点存在する。
(1)遅延パスのバラツキ
(2)保証温度範囲
【0117】
まず、遅延パスのバラツキについて述べる。各多機能DSPのブロックの内部回路を検討すると、図11で述べるように、この回路の遅延パスには様々な値が存在する。ある特定の仕事をこの多機能DSPにおいて実行するのに必要な電源電圧値は、この機能ブロックに存在するさまざまな遅延パスの内、クリティカル・パスと呼ぶ一群の遅延パスによってその値が決定される。従って、多機能DSPのブロックのすべての内部回路の電源電圧を上げる必要はなく、図1のようにクリティカル・パスを形成する組み合わせ回路104の電源電圧VDDH151のみ上げるのが低消費電力化の観点から有効である。しかも、クリティカル・パスにはその遅延の程度によりある遅延マージンを保証するのに必要とされる電源電圧VDDH151の値も異なるので、それぞれ必要な値を設定するのが有効である。勿論、図4の電源レギュレータで発生する電源電圧値があまり多くなるのは好ましくないので、図3のようクリティカル・パスの組み合わせ回路104に供給される電源電圧値VDDHには、電源電圧値VDDH−lowlow、電源電圧値VDDH−low、電源電圧値VDDH−normal、電源電圧値VDDH−high、電源電圧値VDDH−highhighの5段階の電圧にし、クリティカル・パスの組み合わせ回路104以外に供給する電源電圧値VDDLと合わせて6電源値にするのが好ましい。
【0118】
次に、保証温度範囲について述べる。ディープサブミクロン領域の半導体技術において、従来行われてきた最悪ケースに配慮した半導体集積回路の設計は困難になりつつある。図18のカナリアFFを使用した回路も、最悪ケースに配慮した半導体集積回路の設計ではなく典型的なケースでの設計を可能にする構成の1例である。この方法はそれ以前に提案されている Razor回路による方法を改善したものであるが、課題1及び課題2で説明したような課題を有していた。図1、図2に示した実施の形態1、実施の形態2は、従来のカナリアFFによる方法を更に改善したものであり、必要最小限の半導体集積回路の設計マージンにすることができる構成であり、この構成により消費電力削減に効果がある。
【0119】
図3の黒の太枠で囲った部分は、図4に示した電源レギュレータ481の一部を示す。図3に示される電源電圧値VDDH−lowlow202、電源電圧値VDDH−low203、電源電圧値VDDH−normal204、電源電圧値VDDH−high205、電源電圧値VDDH−highhigh206を供給する電源線と、比較結果信号110の値、比較結果信号114の値、比較結果信号118の値及び比較結果信号122の値の組み合わせにより、表3及び表4のようにレベル・シフタ152及び組み合わせ回路104に供給する電源電圧値VDDHを切り替えるスイッチ部207は、それぞれのクリティカル・パスの近傍にレイアウトしてもよく、また、当該多機能DSPブロックの適当な場所にまとめてレイアウトしてもよく、さらに半導体集積回路の中の1箇所にまとめて集中管理するように設計することもできる。
【0120】
例えば、図4の電源レギュレータ481から、電源電圧VDDL、VDDHを、第1の機能ブロック410には電源配線482で、第4の機能ブロック220には電源配線483で、第3の機能ブロック430には電源配線484で、第4の機能ブロック440には電源配線485で、第5の機能ブロック450には電源配線486でそれぞれ配線し、供給することができる。
【0121】
次に、図3の太枠で囲まれた回路をそれぞれのクリティカル・パスの近傍にレイアウトする場合においては、図4の電源レギュレータ481からそれぞれのクリティカル・パスの近傍の間に複数の電源を配線する必要がある。この場合においては、スペースの点から配線する電源配線の数は極力少なくする必要がある。そこで以下のような工夫を行う。
【0122】
図11に当該多機能DSPブロックにおける電源電圧値VDDLでのパスディレイの値を横軸に、対応するパスディレイの値のカウント数を縦軸に示す。当該多機能DSPブロックに供給されるクロック周波数で決まる遅延時間を図中に縦線で示している。図11中の縦線によって示された時間よりパスディレイの値が大きい場合はクリティカル・パスになり、クリティカル・パスの組み合わせ回路104に対しては遅延時間を減少させるために電源電圧値VDDLより高い値の電源電圧値VDDHを供給する。但し、フリップ・フロップ103に供給される電源電圧VDDLよりクリティカル・パスの組み合わせ回路104に供給される電源電圧値VDDHが高くなるのでフリップ・フロップ103と組み合わせ回路104の間にレベル・シフタ152を挿入してある。
【0123】
図11から解かるように、クリティカル・パスと言ってもパスディレイの値には差が有り、その遅延時間の厳しさにより、3段階程度の差を想定して対応する。従ってクリティカル・パスの組み合わせ回路104に供給される電源電圧値VDDHにも、電源電圧値VDDH−lowlow、電源電圧値VDDH−low、電源電圧値VDDH−normal、電源電圧値VDDH−high、電源電圧値VDDH−highhighの5段階の電圧を想定することにする。具体的な値としては、例えば、電源電圧値VDDL、電源電圧値VDDH−lowlow、電源電圧値VDDH−low、電源電圧値VDDH−normal、電源電圧値VDDH−high、電源電圧値VDDH−highhighの値はそれぞれ、1.0V、1.10V、1.15V、1.20V、1.25V、1.30Vである。
【0124】
繰り返すが、クリティカル・パスと言ってもパスディレイの値には差が有る。クリティカル・パスの遅延の程度が低いものに対しては、電源電圧値VDDH−lowlow、電源電圧値VDDH−low、電源電圧値VDDH−normalの3段階の電圧を選択できるように設定し、クリティカル・パスの遅延の程度が中程度のものに対しては、電源電圧値VDDH−low、電源電圧値VDDH−normal、電源電圧値VDDH−highの3段階の電圧を選択できるように設定し、クリティカル・パスの遅延の程度が大のものに対しては電源電圧値VDDH−normal、電源電圧値VDDH−high、電源電圧値VDDH−highhighの3段階の電圧を選択できるように設定する。図12、図13、図14にそれぞれの場合の図を示す。電源電圧値VDDHはそれぞれのクリティカル・パスにおいては3段階になっているので、図1にあるようなカナリアFFが2つで充分である。
【0125】
初期値としては、それぞれの場合における中間の電源電位を、つまり、表2の(2)の場合になるように設計する。具体的には、クリティカル・パスの遅延の程度が低いものに対しては、電源電圧値VDDHの初期値として電源電圧値VDDH−lowに設定するように設計し、クリティカル・パスの遅延の程度が中程度のものに対しては、電源電圧値VDDHの初期値として電源電圧値VDDH−normalに設定するように設計し、クリティカル・パスの遅延の程度が大のものに対しては電源電圧値VDDHの初期値として電源電圧値VDDH−highに設定するように設計する。
【0126】
例えば、あるクリティカル・パスにおいて、当該クリティカル・パスのクリティカル・パス遅延の程度が中程度のものだと想定し表2の(2)の場合になるように設計したとする。ところが現実には表2の(1)の場合になっていたとする。このとき、比較結果信号10の値が“1”、比較結果信号14の値が“1”になるので、「電源電圧値VDDHを上げる」ように制御が働く。従って、電源電圧値VDDHは初期値に設定されていた電源電圧値VDDH−normalから電源電圧値VDDH−highに電源電圧値が変更される。
【0127】
同様にあるクリティカル・パスにおいて、当該クリティカル・パスのクリティカル・パス遅延の程度が中程度のものだと想定し表2の(2)の場合になるように設計したとする。ところが、現実には表2の(3)の場合になっていたとする。このとき、比較結果信号10の値が“0”、比較結果信号14の値が“0”になるので、「電源電圧値VDDHを下げる」ように制御が働く。従って、電源電圧値VDDHは初期値に設定されていた電源電圧値VDDH−normalから電源電圧値VDDH−lowに電源電圧値が変更される。当該クリティカル・パスの遅延を起こす原因が何であれ、本発明の構成により自動的に当該クリティカル・パスの遅延のマージンを所定値に調節する機能がある。
【0128】
当該多機能DSPの当該仕事における消費電力を少なくしようとすると、設定する当該多機能DSPの電源電圧値を最も遅延値が大きいクリティカル・パスがどうにかパスするようなギリギリの値に設定すればよい。しかし、このような微妙な設定は事前に綿密なシミュレーションによっても決定するのは非常に困難である。
【0129】
それぞれのクリティカル・パスにカナリアFFを複数使用することにより、現状の回路で遅延マージンが希望する値に対して少ないか、適切か、多いかを知ることができ、この情報を用いてそれぞれのクリティカル・パスの組み合わせ回路の電源電圧を「上げる」「保持する」「下げる」制御に用いることにより、低消費電力化に適したDVS(Dynamic Voltage Scaling)技術及びAVS(Adaptive Voltage Scaling)技術を実現することができる。
【0130】
以上の説明は本発明の好適な実施の形態の例証であり、本発明の範囲はこれに限定されることはない。
【0131】
以上の実施の形態3において、本発明の実施の形態1又は実施の形態2を活用する半導体集積回路の一例について記載した。しかし、本発明の実施の形態1又は実施の形態2を活用する半導体集積回路は実施の形態3に限るものではない。
【0132】
例えば、実施の形態3においては、第2の機能ブロックから第5の機能ブロックすべてを“多機能DSP”として定義したが、ある機能ブロックは演算中心の処理を実行するだけで一般的にいう“DSP”に該当しない場合も含まれる。
【0133】
また、“多機能DSP”を想定した機能ブロックとして第2の機能ブロックから第5の機能ブロックの4つの機能ブロックがある場合について説明してきたが、この数は勿論4つに限定されるものではない。
【産業上の利用可能性】
【0134】
本発明に係る半導体集積回路は、AVS(Adaptive Voltage Scaling)技術又はDVS(Dynamic Voltage Scaling)技術を用いた半導体集積回路等の低消費電力化に対して有効である。
【図面の簡単な説明】
【0135】
【図1】本発明の実施の形態1に係る半導体集積回路の構成を示すブロック図
【図2】本発明の実施の形態2に係る半導体集積回路の構成を示すブロック図
【図3】カナリアFFが4つの構成の場合において、クリティカル・パスを形成する組み合わせ回路104の電源電圧値VDDHを具体的にどのように変えるかを示す構成図
【図4】実施の形態1又は実施の形態2を具体的にDVFS(Dynamic Voltage and Frequency Scaling)機構を搭載した半導体集積回路に適用した場合の構成を示すブロック図
【図5】第2の機能ブロック420内にある第2の内部メモリ422の接続を示す図
【図6】実施の形態2に係る半導体集積回路の第1の機能ブロック内にある内部メモリの接続を示す図
【図7】第2の機能ブロック420の仕事量及び第2の機能ブロック420の電源電圧(動作周波数)の時間経過依存性を示す図
【図8】第1の機能ブロック410の仕事量及び第1の機能ブロック410の電源電圧(動作周波数)の時間経過依存性を示す図
【図9】第2の機能ブロック420内にある第2のクロック発生回路421の構成を示すブロック図
【図10】第1の機能ブロック410内にある第1のクロック発生回路411の構成を示すブロック図
【図11】遅延パスのパス・ディレイとカウント数の図
【図12】クリティカル・パスの遅延の程度が低い場合に、電源電圧値VDDH−lowlow、電源電圧値VDDH−low、電源電圧値VDDH−normalの3段階の電圧を選択する回路図
【図13】クリティカル・パスの遅延の程度が中程度の場合に、電源電圧値VDDH−low、電源電圧値VDDH−normal、電源電圧値VDDH−high、の3段階の電圧を選択する回路図
【図14】クリティカル・パスの遅延の程度が大の場合に、電源電圧値VDDH−normal電源電圧値VDDH−high、電源電圧値VDDH−highhighの3段階の電圧を選択する回路図
【図15】従来のシステムLSIのブロック図
【図16】従来のシステムLSIのブロック図
【図17】従来のシステムLSIのブロック図
【図18】カナリアFFの回路図を従来のクリティカル・パスに適応したブロック図
【符号の説明】
【0136】
101 信号
102 クロック信号
103,105,108,112,116,120 フリップ・フロップ
104 組み合わせ回路
107,111,115,119 遅延素子
109,113,117,121 Exclusive−OR(不一致回路)
106,110,114,118,122 比較結果信号
152 レベル・シフタ
150 電源電圧VDDL
151 電源電圧VDDH
【特許請求の範囲】
【請求項1】
クリティカル・パスを有する半導体集積回路であって、
前記クリティカル・パスを形成する、直列接続された第1のフリップ・フロップ、組み合わせ回路及び第2のフリップ・フロップと、
前記組み合わせ回路の後段に前記第2のフリップ・フロップと並列に設けられる、直列接続された第1の遅延回路及び第3のフリップ・フロップと、
前記組み合わせ回路の後段に前記第2のフリップ・フロップと並列に設けられる、直列接続された第2の遅延回路及び第4のフリップ・フロップと、
前記第2のフリップ・フロップの出力と前記第3のフリップ・フロップの出力とを比較する第1の比較回路と、
前記第2のフリップ・フロップの出力と前記第4のフリップ・フロップの出力とを比較する第2の比較回路と、
前記第1の比較回路の出力及び前記第2の比較回路の出力に応じて、前記組み合わせ回路に供給される電源電圧を制御する制御回路と、を備え、
前記第1の遅延回路は、前記組み合わせ回路から入力された信号を第1の遅延時間後に出力し、
前記第2の遅延回路は、前記組み合わせ回路から入力された信号を前記第1の遅延時間とは異なる第2の遅延時間後に出力することを特徴とする半導体集積回路。
【請求項2】
前記第1の遅延時間は、前記第1のフリップ・フロップから前記第2のフリップ・フロップまでの遅延時間の5%から30%の値であることを特徴とする請求項1記載の半導体集積回路。
【請求項3】
前記第2の遅延時間は、前記第1の遅延時間の105%から130%の値であることを特徴とする請求項2記載の半導体集積回路。
【請求項4】
前記第1の比較回路の出力が2つの入力信号の“不一致”を示し、かつ、前記第2の比較回路の出力が2つの入力信号の“不一致”を示す場合、前記制御回路は、前記組み合わせ回路に供給される電源電圧を上げるよう制御することを特徴とする請求項1記載の半導体集積回路。
【請求項5】
前記第1の比較回路の出力が2つの入力信号の“一致”を示し、かつ、前記第2の比較回路の出力が2つの入力信号の“不一致”を示す場合、前記制御回路は、前記組み合わせ回路に供給される電源電圧を保持するよう制御することを特徴とする請求項1記載の半導体集積回路。
【請求項6】
前記第1の比較回路の出力が2つの入力信号の“一致”を示し、かつ、前記第2の比較回路の出力が2つの入力信号の“一致”を示す場合、前記制御回路は、前記組み合わせ回路に供給される電源電圧を下げるよう制御することを特徴とする請求項1記載の半導体集積回路。
【請求項7】
前記第1のフリップ・フロップ及び前記第2のフリップ・フロップには等しい電源電圧が供給され、当該電源電圧は、前記組み合わせ回路に供給される電源電圧より低いことを特徴とする請求項1記載の半導体集積回路。
【請求項8】
前記制御回路は、前記組み合わせ回路に供給される電源電圧を「上げる」、「保持する」又は「下げる」よう制御することを特徴とする請求項1記載の半導体集積回路。
【請求項9】
前記制御回路は、前記組み合わせ回路に供給される電源電圧の初期設定を「保持する」に設定することを特徴とする請求項8記載の半導体集積回路。
【請求項10】
前記組み合わせ回路の後段に前記第2のフリップ・フロップと並列に設けられる、直列接続された第3の遅延回路及び第5のフリップ・フロップと、
前記組み合わせ回路の後段に前記第2のフリップ・フロップと並列に設けられる、直列接続された第4の遅延回路及び第6のフリップ・フロップと、
前記第2のフリップ・フロップの出力と前記第5のフリップ・フロップの出力とを比較する第3の比較回路と、
前記第2のフリップ・フロップの出力と前記第6のフリップ・フロップの出力とを比較する第4の比較回路と、を備え、
前記制御回路は、前記第1の比較回路の出力、前記第2の比較回路の出力、前記第3の比較回路の出力及び前記第4の比較回路の出力に応じて、前記組み合わせ回路に供給される電源電圧を制御し、
前記第1の遅延時間、前記第2の遅延時間、前記第3の遅延回路による第3の遅延時間及び前記第4の遅延回路による第4の遅延時間は、それぞれ異なることを特徴とする請求項1記載の半導体集積回路。
【請求項1】
クリティカル・パスを有する半導体集積回路であって、
前記クリティカル・パスを形成する、直列接続された第1のフリップ・フロップ、組み合わせ回路及び第2のフリップ・フロップと、
前記組み合わせ回路の後段に前記第2のフリップ・フロップと並列に設けられる、直列接続された第1の遅延回路及び第3のフリップ・フロップと、
前記組み合わせ回路の後段に前記第2のフリップ・フロップと並列に設けられる、直列接続された第2の遅延回路及び第4のフリップ・フロップと、
前記第2のフリップ・フロップの出力と前記第3のフリップ・フロップの出力とを比較する第1の比較回路と、
前記第2のフリップ・フロップの出力と前記第4のフリップ・フロップの出力とを比較する第2の比較回路と、
前記第1の比較回路の出力及び前記第2の比較回路の出力に応じて、前記組み合わせ回路に供給される電源電圧を制御する制御回路と、を備え、
前記第1の遅延回路は、前記組み合わせ回路から入力された信号を第1の遅延時間後に出力し、
前記第2の遅延回路は、前記組み合わせ回路から入力された信号を前記第1の遅延時間とは異なる第2の遅延時間後に出力することを特徴とする半導体集積回路。
【請求項2】
前記第1の遅延時間は、前記第1のフリップ・フロップから前記第2のフリップ・フロップまでの遅延時間の5%から30%の値であることを特徴とする請求項1記載の半導体集積回路。
【請求項3】
前記第2の遅延時間は、前記第1の遅延時間の105%から130%の値であることを特徴とする請求項2記載の半導体集積回路。
【請求項4】
前記第1の比較回路の出力が2つの入力信号の“不一致”を示し、かつ、前記第2の比較回路の出力が2つの入力信号の“不一致”を示す場合、前記制御回路は、前記組み合わせ回路に供給される電源電圧を上げるよう制御することを特徴とする請求項1記載の半導体集積回路。
【請求項5】
前記第1の比較回路の出力が2つの入力信号の“一致”を示し、かつ、前記第2の比較回路の出力が2つの入力信号の“不一致”を示す場合、前記制御回路は、前記組み合わせ回路に供給される電源電圧を保持するよう制御することを特徴とする請求項1記載の半導体集積回路。
【請求項6】
前記第1の比較回路の出力が2つの入力信号の“一致”を示し、かつ、前記第2の比較回路の出力が2つの入力信号の“一致”を示す場合、前記制御回路は、前記組み合わせ回路に供給される電源電圧を下げるよう制御することを特徴とする請求項1記載の半導体集積回路。
【請求項7】
前記第1のフリップ・フロップ及び前記第2のフリップ・フロップには等しい電源電圧が供給され、当該電源電圧は、前記組み合わせ回路に供給される電源電圧より低いことを特徴とする請求項1記載の半導体集積回路。
【請求項8】
前記制御回路は、前記組み合わせ回路に供給される電源電圧を「上げる」、「保持する」又は「下げる」よう制御することを特徴とする請求項1記載の半導体集積回路。
【請求項9】
前記制御回路は、前記組み合わせ回路に供給される電源電圧の初期設定を「保持する」に設定することを特徴とする請求項8記載の半導体集積回路。
【請求項10】
前記組み合わせ回路の後段に前記第2のフリップ・フロップと並列に設けられる、直列接続された第3の遅延回路及び第5のフリップ・フロップと、
前記組み合わせ回路の後段に前記第2のフリップ・フロップと並列に設けられる、直列接続された第4の遅延回路及び第6のフリップ・フロップと、
前記第2のフリップ・フロップの出力と前記第5のフリップ・フロップの出力とを比較する第3の比較回路と、
前記第2のフリップ・フロップの出力と前記第6のフリップ・フロップの出力とを比較する第4の比較回路と、を備え、
前記制御回路は、前記第1の比較回路の出力、前記第2の比較回路の出力、前記第3の比較回路の出力及び前記第4の比較回路の出力に応じて、前記組み合わせ回路に供給される電源電圧を制御し、
前記第1の遅延時間、前記第2の遅延時間、前記第3の遅延回路による第3の遅延時間及び前記第4の遅延回路による第4の遅延時間は、それぞれ異なることを特徴とする請求項1記載の半導体集積回路。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【公開番号】特開2009−200739(P2009−200739A)
【公開日】平成21年9月3日(2009.9.3)
【国際特許分類】
【出願番号】特願2008−39228(P2008−39228)
【出願日】平成20年2月20日(2008.2.20)
【出願人】(000005821)パナソニック株式会社 (73,050)
【Fターム(参考)】
【公開日】平成21年9月3日(2009.9.3)
【国際特許分類】
【出願日】平成20年2月20日(2008.2.20)
【出願人】(000005821)パナソニック株式会社 (73,050)
【Fターム(参考)】
[ Back to top ]