(57)【要約】【課題】ＤＭＡ機能を搭載した半導体装置において、ＣＰＵの処理速度とＤＭＡ転送の速度をバランス良く制御する。【解決手段】マイクロコンピュータ１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｉｎｔ）１１０と、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）処理部１２０と、制御部１３０を備える。制御部１３０は、ＤＭＡ処理部１２０に保留されたＤＭＡ転送の数である保留数に応じて、該保留数が多いほど、処理速度が速くなるようにＣＰＵ１１０の処理速度を制御する。【選択図】図１
2012243176.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｉｎｔ）と、
ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）転送を行うＤＭＡ処理部と、
前記ＣＰＵの処理速度を制御する制御部とを有し、
該制御部は、前記ＤＭＡ処理部に保留されたＤＭＡ転送の数である保留数に応じて、該保留数が多いほど、処理速度が速くなるように前記ＣＰＵの処理速度を制御することを特徴とする半導体装置。
【請求項２】
前記制御部は、前記ＤＭＡ処理部に対してなされたＤＭＡ転送要求の数と、前記ＤＭＡ処理部により完了したＤＭＡ転送の数との差分を、前記保留数として求めることを特徴とする請求項１に記載の半導体装置。
【請求項３】
前記ＣＰＵは、処理速度が異なる複数の動作モードを有し、
前記制御部は、前記保留数に応じて前記ＣＰＵの動作モードを切り換えることを特徴とする請求項１または２に記載の半導体装置。
【請求項４】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｉｎｔ）と、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）転送を行うＤＭＡ処理部とを有する半導体装置に対して、
前記ＤＭＡ処理部に保留されたＤＭＡ転送の数である保留数に応じて、該保留数が多いほど、処理速度が速くなるように前記ＣＰＵの処理速度を制御することを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置、具体的には、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）と、ＤＭＡ転送を行うＤＭＡ転送処理部とを備える半導体装置における制御技術に関する。
【背景技術】
【０００２】
近年、処理の高速化と、消費電力の削減は、マイクロコンピュータの開発者が常に直面している２つの課題であり、様々な視点からの技術が提案されている(特許文献１、特許文献２)。
【０００３】
例えば、特許文献２には、ＣＰＵ（マイクロプロセッサ）が演算処理を行う際に、演算処理に伴って累積される演算遅延が大きくなったときにマイクロプロセッサのメインクロックの周波数を高くし、演算遅延が小さくなったときにメインクロックの周波数を低くする技術が開示されている。
【０００４】
ＣＰＵの処理速度が速ければ、ＣＰＵによる消費電力も大きくなるため、ＣＰＵの処理速度を調整することにより、ＣＰＵの消費電力を調整することができる。
【０００５】
また、ＣＰＵに供給する電圧を調整することによりＣＰＵの処理速度を調整する技術も知られている。例えば、特許文献３には、非同期式回路により構成されたＣＰＵ（以下非同期式ＣＰＵという）に対して、非同期式回路の処理速度を計測し、計測した処理速度に応じて、処理速度が目標速度より速い場合には電圧を下げ、処理速度が目標速度より遅い場合には電圧を上げるように、非同期式回路に供給する電圧を調整する。こうすることにより、該非同期式回路により構成されたＣＰＵの処理速度は、目標速度に一定に保たれる。
【０００６】
また、ＣＰＵの低速処理時の補助技術としてＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）が知られている。ＤＭＡは、ＣＰＵを介さずに直接メモリへアクセスする技術であり、ＣＰＵ処理のバックグランドで実行することが可能であるため、ＣＰＵ処理が低速であっても、マイクロコンピュータ全体の処理速度を高めることができる。さらに、ＣＰＵがスタンバイ状態であっても、ＤＭＡによるメモリアクセスが可能であるため、ＤＭＡを適用することは、マイクロコンピュータの消費電力の削減にも有効である。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１０−０１５２３３号公報
【特許文献２】特開平１１−０２４７８２号公報
【特許文献３】特開２００９−２６０６１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ＣＰＵの動作中にＤＭＡ転送を行う場合、ＣＰＵからのメモリアクセスとＤＭＡ転送の競合を回避するため、ＣＰＵによるメモリアクセスと、ＤＭＡによるメモリアクセスとでバスの占有権を調停しながら動作する必要がある。一般的に、ＣＰＵの処理速度が低下すると、ＣＰＵによるバス占有時間が長くなるため、ＤＭＡ転送の速度も低下する。
【０００９】
本発明は、上記事情に鑑みてなされたものであり、ＤＭＡ機能を搭載した半導体装置において、ＣＰＵの処理速度とＤＭＡ転送の速度をバランス良く制御する技術を提供する。
【課題を解決するための手段】
【００１０】
本発明の一つの態様は、制御方法である。この制御方法は、ＤＭＡ転送を行うＤＭＡ処理部を有する半導体装置に対して、ＤＭＡ処理部に保留されたＤＭＡ転送の数である保留数に応じて、該保留数が多いほど、処理速度が速くなるようにＣＰＵの処理速度を制御する。
【００１１】
なお、上記態様の方法を実行する回路や装置、該装置を含むシステムなども、本発明の態様としては有効である。
【発明の効果】
【００１２】
本発明にかかる技術によれば、ＤＭＡ機能を搭載した半導体装置において、ＣＰＵの処理速度とＤＭＡ転送の速度をバランス良く制御できる。
【図面の簡単な説明】
【００１３】
【図１】本発明の第１の実施の形態にかかるマイクロコンピュータを示す図である。
【図２】図１に示すマイクロコンピュータにおける制御部の処理を示すフローチャートである。
【図３】本発明の第２の実施の形態にかかるマイクロコンピュータを示す図である。
【図４】図３に示すマイクロコンピュータにおける処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下、図面を参照して本発明の実施の形態について説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
＜第１の実施の形態＞
【００１５】
図１は、本発明の第１の実施の形態にかかるマイクロコンピュータ１００を示す。マイクロコンピュータ１００は、ＣＰＵ１１０と、ＤＭＡ転送を行うＤＭＡ処理部１２０と、制御部１３０を備える。なお、マイクロコンピュータに通常備えられるメモリやバスなどの図示は、省略している。
【００１６】
制御部１３０は、例えば図示しないバスによりＣＰＵ１１０と接続されており、ＣＰＵ１１０の処理速度を制御する。制御部１３０によるＣＰＵ１１０の処理速度制御手法は、従来知られているいかなる方法であってもよく、例えば、ＣＰＵ１１０に供するクロックの周波数や、電圧を調整することにより、ＣＰＵ１１０の処理速度を制御する。なお、この制御は、ＤＭＡ処理部１２０に保留されたＤＭＡ転送の数（以下「保留数ＮＵＭ」という）に応じてなされる。
【００１７】
ＣＰＵ１１０は、ＤＭＡ処理部１２０にＤＭＡ転送を行わせる際に、ＤＭＡ処理部１２０にＤＭＡ転送要求信号Ｄ１を出力する。ＤＭＡ処理部１２０は、ＤＭＡ転送要求信号Ｄ１を受信すると、該ＤＭＡ転送が可能なときに、ＣＰＵ１１０にＤＭＡ転送許可信号Ｄ２を返送する。
【００１８】
本実施の形態において、ＤＭＡ処理部１２０は、さらに、転送要求フラグＦ１及び転送完了フラグＦ２を制御部１３０に出力する。転送要求フラグＦ１は、ＤＭＡ処理部１２０がＣＰＵ１１０からＤＭＡ転送が要求される度に出力するフラグであり、転送完了フラグＦ２は、ＤＭＡ処理部１２０がＤＭＡ転送を完了する度に出力するフラグである。すなわち、転送要求フラグＦ１の数の総和は、ＤＭＡ処理部１２０に対してなされたＤＭＡ転送要求の数であり、転送完了フラグＦ２の数の総和は、ＤＭＡ処理部１２０により完了したＤＭＡ転送の数である。
【００１９】
制御部１３０は、ＤＭＡ処理部１２０からの転送要求フラグＦ１の総和と、転送完了フラグＦ２の総和を求め、転送要求フラグＦ１の総和から転送完了フラグＦ２の総和を減算して得た値を上述した保留数ＮＵＭとして算出する。
【００２０】
そして、制御部１３０は、該保留数ＮＵＭが大きいほど、ＣＰＵ１１０の処理速度が速くなるように制御を行う。
【００２１】
本実施の形態において、制御部１３０は、３段階にＣＰＵ１１０の処理速度を制御する。具体的には、保留数ＮＵＭが閾値Ｔ１より小さいときには処理速度Ｖ１になり、保留数ＮＵＭが閾値Ｔ１以上閾値Ｔ２より小さいときには処理速度Ｖ２になり、保留数ＮＵＭが閾値Ｔ２以上であるときには処理速度Ｖ３になりように、ＣＰＵ１１０の処理速度を制御する。なお、閾値Ｔ２はＴ１より大きく、処理速度は、Ｖ１、Ｖ２、Ｖ３の順に大きくなる。
【００２２】
図２は、マイクロコンピュータ１００における制御部１３０の制御処理を示すフローチャートの例である。なお、図２に示す例において、制御部１３０の初期設定は、ＣＰＵ１１０の処理速度が最も低い処理速度Ｖ１になるようにされている。
【００２３】
図２に示すように、マイクロコンピュータ１００の動作開始直後には、制御部１３０は、初期設定に従って、ＣＰＵ１１０の処理速度が処理速度Ｖ１になるように制御する（Ｓ１００）。その後、制御部１３０は、転送要求フラグＦ１の総和と転送完了フラグＦ２の総和の差分となる保留数ＮＵＭを算出する（Ｓ１０２）。
【００２４】
保留数ＮＵＭが閾値Ｔ１より小さいと、制御部１３０は、ＣＰＵ１１０の処理速度を変えずに処理速度Ｖ１に維持する（Ｓ１０４：Ｙｅｓ、Ｓ１０６）。そして、保留数ＮＵＭを算出するステップＳ１０２に戻る。
【００２５】
保留数ＮＵＭが閾値Ｔ１以上閾値Ｔ２より小さいと、制御部１３０は、ＣＰＵ１１０の処理速度が処理速度Ｖ２になるように制御する（Ｓ１０４：Ｎｏ、Ｓ１０８：Ｙｅｓ、Ｓ１１０）。そして、保留数ＮＵＭを算出するステップＳ１０２に戻る。
【００２６】
保留数ＮＵＭがＴ２以上であると、制御部１３０は、ＣＰＵ１１０の処理速度が処理速度Ｖ３になるように制御する（Ｓ１０４：Ｎｏ、Ｓ１０８：Ｎｏ、Ｓ１１２）。そして、保留数ＮＵＭを算出するステップＳ１０２に戻る。
【００２７】
その後、保留数ＮＵＭの算出と、算出した保留数ＮＵＭに基づいたＣＰＵ１１０の処理速度の調整が繰り返される（Ｓ１０２〜）
【００２８】
このように、本実施の形態のマイクロコンピュータ１００において、制御部１３０は、ＤＭＡ処理部１２０によりＤＭＡ転送の保留数ＮＵＭに基づいて、保留数ＮＵＭが多いほどＣＰＵ１１０の処理速度を速くするように制御を行う。そのため、保留数ＮＵＭが少ないときにはＣＰＵ１１０の処理速度を下げることにより消費電流を抑制する一方、保留数ＮＵＭが多いときにはＣＰＵ１１０の処理速度を上げることによりマイクロコンピュータ１００全体の処理速度の過度の低下を回避する。
＜第２の実施の形態＞
【００２９】
図３は、本発明の第２の実施の形態にかかるマイクロコンピュータ２００を示す。マイクロコンピュータ２００は、ＣＰＵ２１０と、ＤＭＡ処理部１２０と、制御部２３０を有する。
【００３０】
ＤＭＡ処理部１２０は、第１の実施の形態にかかるマイクロコンピュータ１００におけるＤＭＡ処理部１２０と同一のものである。
【００３１】
ＣＰＵ２１０は、ＣＰＵコア２１２と、速度維持回路２１４を備える。
ＣＰＵコア２１２は、非同期式回路により構成された非同期式のものである。
【００３２】
非同期式回路は、温度などの環境要因やチップ製造上のばらつきなどにより、処理速度がばらつくことが知られている。従って、ＣＰＵコア２１２も、処理速度が一定ではない。
【００３３】
速度維持回路２１４は、ＣＰＵコア２１２の処理速度を一定に保つものである。例えば、特許文献３に記載されたように、ＣＰＵコア２１２の処理速度を計測し、計測した処理速度に応じて、処理速度が目標速度より速い場合には電圧を下げ、処理速度が目標速度より遅い場合には電圧を上げるように、ＣＰＵコア２１２に供給する電圧を調整する。こうすることにより、ＣＰＵコア２１２の処理速度は、目標速度に一定に保たれる。
【００３４】
本実施の形態のマイクロコンピュータ２００において、速度維持回路２１４は、ＣＰＵコア２１２の処理速度のばらつく範囲内の最も遅い速度以下の所定の速度にＣＰＵコア２１２の処理速度を保つものである。
【００３５】
速度維持回路２１４が動作するか否かは、制御部２３０からの制御信号ＣＴＲにより制御される。速度維持回路２１４が動作しない場合には、ＣＰＵコア２１２は、通常の非同期式ＣＰＵと同様に処理速度がばらつくが、速度維持回路２１４が動作すると、ＣＰＵコア２１２は、処理速度が上記所定の速度に一定に保たれる。
【００３６】
以下の説明において、速度維持回路２１４が動作するか否かを、ＣＰＵ２１０のモードとして表現する。速度維持回路２１４が動作しない場合をＣＰＵ２１０の「非同期モード」といい、速度維持回路２１４が動作する場合をＣＰＵ２１０の「速度一定モード」という。ＣＰＵ２１０が「速度一定モード」にある場合には、ＣＰＵコア２１２の処理速度は、ＣＰＵ２１０が「非同期モード」にある場合の最も遅い速度以下である。
【００３７】
制御部２３０は、保留数算出回路２３２、比較器２３４、制御信号出力回路２３６を備える。
【００３８】
保留数算出回路２３２は、ＤＭＡ処理部１２０から転送要求フラグＦ１の総和と、転送完了フラグＦ２の総和との差分を保留数ＮＵＭとして算出して比較器２３４に出力する。
【００３９】
比較器２３４は、保留数算出回路２３２からの保留数ＮＵＭを閾値と比較し、比較の結果を制御信号出力回路２３６に出力する。本実施の形態において、比較器２３４は、ＣＰＵ２１０のモードに応じて異なる閾値を用いる。ＣＰＵ２１０が「速度一定モード」にある場合に、比較器２３４は、所定の閾値Ｔ１（例えば５）を用い、ＣＰＵ２１０が「非同期モード」にある場合に、比較器２３４が、閾値Ｔ１より小さい閾値Ｔ２（例えば３）を用いる。
【００４０】
制御信号出力回路２３６は、比較器２３４による比較の結果に応じて、ＣＰＵ２１０のモードを切り換えるか否かの制御を行う。
【００４１】
図４は、マイクロコンピュータ２００における処理を示すフローチャートの例である。なお、図４に示す例において、制御部２３０の初期設定は、ＣＰＵ２１０が「速度一定モード」になるようにされている。
【００４２】
図４に示すように、マイクロコンピュータ２００は、動作開始直後は、「速度一定モード」で動作し、すなわち、速度維持回路２１４は、動作する（Ｓ２００）。
【００４３】
比較器２３４により、保留数ＮＵＭが得た保留数ＮＵＭと閾値Ｔ１（５）とを比較した結果、保留数ＮＵＭが５より小さいときには、制御信号出力回路２３６は、制御信号ＣＴＲをＯＮにしない。これにより、速度維持回路２１４は、引き続き動作し、ＣＰＵ２１０は、引き続き「速度一定モード」で動作する（Ｓ２０２：Ｙｅｓ、Ｓ２０４）。
【００４４】
一方、ステップＳ２０２において、保留数ＮＵＭが５以上になったときには（Ｓ２０２：Ｎｏ）、制御信号出力回路２３６は、制御信号ＣＴＲをＯＮにする。これにより、速度維持回路２１４は動作を停止し、ＣＰＵ２１０は、「速度一定モード」から「非同期モード」に切り換わる（Ｓ２１０、Ｓ２１２）。
【００４５】
ＣＰＵ２１０の「非同期モード」での動作中に、保留数ＮＵＭが閾値Ｔ２（３）以上であれば（Ｓ２１４：Ｎｏ）、制御信号出力回路２３６は、制御信号ＣＴＲをＯＮにしない。これにより、速度維持回路２１４は、動作を停止したままになり、ＣＰＵ２１０は、引き続き「非同期モード」で動作する（Ｓ２１２）。
【００４６】
一方、ステップＳ２１４において、保留数ＮＵＭが「３」以下になったときには（Ｓ２１４：Ｎｏ）、制御信号出力回路２３６は、制御信号ＣＴＲをＯＮにする。これにより、速度維持回路２１４は動作を開始し、ＣＰＵ２１０は、「非同期モード」から「速度一定モード」に切り換わる（Ｓ２２０、Ｓ２０４）。
【００４７】
このように、本実施の形態のマイクロコンピュータ２００において、ＣＰＵ２１０が処理速度の遅い「速度一定モード」で動作中に、ＤＭＡ処理部１２０の保留数ＮＵＭが「５」以上になったときに、制御部２３０は、ＣＰＵ２１０の動作モードを処理速度の速い「非同期モード」に切り換える。また、ＣＰＵ２１０が処理速度の速い「非同期モード」で動作中に、ＤＭＡ処理部１２０の保留数ＮＵＭが３より小さくなったときに、制御部２３０は、ＣＰＵ２１０の動作モードを処理速度の遅い「速度一定モード」に切り換える。そのため、保留数ＮＵＭが少ないときには消費電流を抑制する一方、保留数ＮＵＭが多いときにはマイクロコンピュータ２００全体の処理速度の過度の低下を回避できる。
【００４８】
以上、実施の形態をもとに本発明を説明した。実施の形態は例示であり、本発明の主旨から逸脱しない限り、上述した実施の形態に対してさまざまな変更、増減を行ってもよい。これらの変更、増減が行われた変形例も本発明の範囲にあることは当業者に理解されるところである。
【００４９】
例えば、マイクロコンピュータ１００において、ＣＰＵ１１０の処理速度を調整する手法としてＣＰＵ１１０へ供給するクロックの周波数や電圧を例挙しましたが、本発明にかかる技術は、いかなる手法でＣＰＵの処理を調整する場合にも適用することができる。
【００５０】
また、マイクロコンピュータ２００において、速度維持回路２１４が、非同期式回路により構成されたＣＰＵコア２１２に供給する電圧を調整することによりＣＰＵコア２１２の処理速度を一定に保つようになっているが、いかなる手法で非同期式のＣＰＵコアの処理速度を一定に保つモードを有するＣＰＵに対しても本発明にかかる技術を適用することができる。
【符号の説明】
【００５１】
１００  マイクロコンピュータ
１１０  ＣＰＵ
１２０  ＤＭＡ処理部
１３０  制御部
２００  マイクロコンピュータ
２１０  ＣＰＵ
２１２  ＣＰＵコア
２１４  速度維持回路
２３０  制御部
２３２  保留数算出回路
２３４  比較器
２３６  制御信号出力回路
Ｄ１  ＤＭＡ転送要求信号
Ｄ２  ＤＭＡ転送許可信号
Ｆ１  転送要求フラグ
Ｆ２  転送完了フラグ
ＮＵＭ  保留数
ＣＴＲ  制御信号
【図１】
2012243176.tif 000003
【図２】
2012243176.tif 000004
【図３】
2012243176.tif 000005
【図４】
2012243176.tif 000006