(57)【特許請求の範囲】
【請求項１】
演算処理シーケンスを命令の列として格納するプログラム・メモリと、
前記演算処理シーケンスにおける実行中の命令の位置を示すプログラム・カウンタと、
前記プログラム・カウンタを含み、前記演算処理シーケンスにおける実行中の命令に基づいて演算処理を制御する制御論理回路と、
前記演算処理シーケンスのための演算データを格納する複数のレジスタと、を有する演算処理装置であって、
前記演算処理シーケンスの各命令のビット・フィールド内には、その命令の実行を停止するかどうかを示す命令停止フラグ情報と、その命令の実行再開トリガ条件を示すビット・フィールド情報とを持ち、
前記複数のレジスタは、他の演算処理装置のバスにも接続され、外部からの書き込みが可能であり、
前記ビット・フィールド情報は、前記複数のレジスタのうちどのレジスタへの書き込みを実行再開トリガ条件とするかを意味し、
前記制御論理回路は、
前記命令停止フラグ情報がクリアされている命令はそのまま実行し、前記プログラム・カウンタを更新して次の命令処理に進み、
前記命令停止フラグ情報がセットされている命令は、前記ビット・フィールド情報に対応する実行再開トリガ条件が成立していなければその実行を行わずに停止し、
前記命令停止フラグ情報がセットされている命令は、前記ビット・フィールド情報に対応する実行再開トリガ条件が成立していればその実行を行い、前記プログラム・カウンタを更新して次の命令処理に進む、ように制御し、
さらに、前記演算処理装置は、
前記複数のレジスタの個々のレジスタに対応するフラグ情報を持ち、
前記他の演算処理装置が前記複数のレジスタのうちのいずれかひとつの第１レジスタにライトしたら対応する第１フラグ情報がセットされ、
前記制御論理回路は、
前記命令停止フラグ情報がセットされ、かつ、前記ビット・フィールド情報が前記第１レジスタへのライトを実行再開トリガ条件とすることを示す命令は、前記第１フラグ情報がクリアされていたらその実行を行わずに停止し、その後、前記第１フラグ情報がセットされたら実行を行い、前記第１フラグ情報をクリアして前記プログラム・カウンタを更新して次の命令処理に進み、
前記命令停止フラグ情報がセットされ、かつ、前記ビット・フィールド情報が前記第１レジスタへのライトを実行再開トリガ条件とすることを示す命令は、前記第１フラグ情報がセットされていたらそのまま実行し、前記第１フラグ情報をクリアして前記プログラム・カウンタを更新して次の命令処理に進む、ように制御することを特徴とする演算処理装置。
【請求項２】
請求項１記載の演算処理装置において、さらに、
前記演算処理シーケンスの各命令のビット・フィールド内には、外部への割り込み出力を示すイベント情報を持ち、
前記制御論理回路は、
前記イベント情報がセットされた命令の実行が行われたら前記プログラム・カウンタを更新して次の命令処理に進むとともに、外部に割り込み信号またはトリガ・パルス信号を出力する、ように制御することを特徴とする演算処理装置。
【請求項３】
デジタル制御電源からの電圧信号をＡ／Ｄ変換するＡ／Ｄ変換器と、
前記Ａ／Ｄ変換器からのデータをフィルタ演算する演算処理装置と、
前記デジタル制御電源のパワーＭＯＳトランジスタを駆動するＰＷＭ波形のデューティを求めるパルス幅変調器と、
前記Ａ／Ｄ変換器から前記演算処理装置へデータ転送し、前記演算処理装置から前記パルス幅変調器へデータ転送するダイレクト・メモリ・アクセス・コントローラと、
システム処理を行う中央演算処理装置とを有するマイクロコンピュータであって、
前記演算処理装置によるフィルタ演算と前記中央演算処理装置によるシステム処理とを独立して並行に実行可能であり、
前記演算処理装置は、
演算処理シーケンスを命令の列として格納するプログラム・メモリと、
前記演算処理シーケンスにおける実行中の命令の位置を示すプログラム・カウンタと、
前記プログラム・カウンタを含み、前記演算処理シーケンスにおける実行中の命令に基づいて演算処理を制御する制御論理回路と、
前記演算処理シーケンスのための演算データを格納する複数のレジスタと、を有し、
前記演算処理シーケンスの各命令のビット・フィールド内には、その命令の実行を停止するかどうかを示す命令停止フラグ情報と、その命令の実行再開トリガ条件を示すビット・フィールド情報とを持ち、
前記複数のレジスタは、他の演算処理装置のバスにも接続され、外部からの書き込みが可能であり、
前記ビット・フィールド情報は、前記複数のレジスタのうちどのレジスタへの書き込みを実行再開トリガ条件とするかを意味し、
前記制御論理回路は、
前記命令停止フラグ情報がクリアされている命令はそのまま実行し、前記プログラム・カウンタを更新して次の命令処理に進み、
前記命令停止フラグ情報がセットされている命令は、前記ビット・フィールド情報に対応する実行再開トリガ条件が成立していなければその実行を行わずに停止し、
前記命令停止フラグ情報がセットされている命令は、前記ビット・フィールド情報に対応する実行再開トリガ条件が成立していればその実行を行い、前記プログラム・カウンタを更新して次の命令処理に進む、ように制御し、
さらに、前記演算処理装置は、
前記複数のレジスタの個々のレジスタに対応するフラグ情報を持ち、
前記他の演算処理装置が前記複数のレジスタのうちのいずれかひとつの第１レジスタにライトしたら対応する第１フラグ情報がセットされ、
前記制御論理回路は、
前記命令停止フラグ情報がセットされ、かつ、前記ビット・フィールド情報が前記第１レジスタへのライトを実行再開トリガ条件とすることを示す命令は、前記第１フラグ情報がクリアされていたらその実行を行わずに停止し、その後、前記第１フラグ情報がセットされたら実行を行い、前記第１フラグ情報をクリアして前記プログラム・カウンタを更新して次の命令処理に進み、
前記命令停止フラグ情報がセットされ、かつ、前記ビット・フィールド情報が前記第１レジスタへのライトを実行再開トリガ条件とすることを示す命令は、前記第１フラグ情報がセットされていたらそのまま実行し、前記第１フラグ情報をクリアして前記プログラム・カウンタを更新して次の命令処理に進む、ように制御することを特徴とするマイクロコンピュータ。
【請求項４】
請求項３記載のマイクロコンピュータにおいて、さらに、
前記演算処理装置は、
前記演算処理シーケンスの各命令のビット・フィールド内には、外部への割り込み出力を示すイベント情報を持ち、
前記制御論理回路は、
前記イベント情報がセットされた命令の実行が行われたら前記プログラム・カウンタを更新して次の命令処理に進むとともに、外部に割り込み信号またはトリガ・パルス信号を出力する、ように制御することを特徴とするマイクロコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演算処理装置の技術に関し、特に、デジタル制御電源向けマイクロコンピュータ（以下、単にマイコンとも記す）に内蔵するデジタル・シグナル・プロセッサ（ＤＳＰ：Digital Signal Processor）などの演算処理装置、およびこれを内蔵したマイコンに適用して有効な技術に関する。
【背景技術】
【０００２】
例えば、デジタル制御電源向けマイコンにおいて、デジタル制御電源では、そのフィードバック制御ループ内の位相補償計算用にデジタル・フィルタ演算機能が必要で、ＣＰＵコアに一般的なＤＳＰが持つ積和演算命令を持たせており、フィルタ演算とシステム的な処理を同一のコアで実行させている。このようなデジタル制御電源向けマイコンとして、例えば非特許文献１〜３などがある。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】著者：Microchip Technology Inc.、表題：dsPIC33F Family Reference Manual Part 1、章：Section2 CPU、ページ：Page2-1、文献No.：DS70204B、媒体：[online]、発行年：2009年、検索日：[2011年7月7日]、情報源：インタネット<http://ww1.microchip.com/downloads/en/DeviceDoc/70204B.pdf>
【非特許文献２】著者：Texas Instruments Inc.、表題：TMS320F28030, TMS320F28031, TMS320F28032, TMS320F28033, TMS320F28034, TMS320F28035 Piccolo Microcontrollers、章：3.3 Brief Descriptions、ページ：Page27-34、文献No.：SPRS584E-APRIL 2009-REVISED MARCH 2011、媒体：[online]、発行年：2009年4月、2011年3月改定、検索日：[2011年7月7日]、情報源：インタネット<http://focus.tij.co.jp/jp/lit/ds/symlink/tms320f28030.pdf>
【非特許文献３】著者：新日本無線株式会社、表題：NJU20010  デジタル電源制御用DSC、章：4. Ximo16 アーキテクチャ概要、ページ：Page16-23、文献No.：Ver.2010.6.30、媒体：[online]、発行年：2010年6月30日、検索日：[2011年7月7日]、情報源：インタネット<http://semicon.njr.co.jp/digital-power-control/index.html>
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、前述した非特許文献１〜３などを含む従来のデジタル制御電源向けマイコンに関して、本発明者が検討した結果、以下のようなことが明らかとなった。
【０００５】
例えば、デジタル制御電源内のシステム的な処理には、異常検知、保護処置、外部との通信、ログ記録など多岐に渡る。この中でフィルタ演算をこなしていくため、処理性能を確保するには、ＣＰＵコアの動作周波数を上げるなどの性能向上策が必要になる。これは、自己消費電力を増大させ、低負荷時の電源の電力効率を低下させることに繋がる。
【０００６】
一方、ＣＰＵ性能がネックになるケースでは、制御周期が長くなることによって、電源コンバータ回路のパワーＭＯＳトランジスタを駆動するパルス幅変調（ＰＷＭ：Pulse Width Modulation）波形の周期が短くならない問題が発生する。こうなると、外部電源回路上のＬＣフィルタ回路の定数が大きくなり、電源ユニットのサイズも大きくかつコスト高になる問題が生じる。
【０００７】
そこで、本発明者は、上述のような問題点に鑑みて、デジタル制御電源のフィードバック制御ループ内の位相補償計算用にデジタル・フィルタ演算機能を持つ小規模なＤＳＰを内蔵して、このＤＳＰはＣＰＵとは独立して並行して動作可能なものとし、その起動方法について見出した。
【０００８】
そこで、本発明の代表的な目的は、システム処理とフィルタ処理の双方の負荷を軽くすることができ、消費電力の向上や性能の向上を図ることが可能な技術を提供することにある。
【０００９】
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１０】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
【００１１】
（１）代表的な演算処理装置は、演算処理シーケンスを命令の列として格納するプログラム・メモリと、前記演算処理シーケンスを実行中の命令の位置を示すプログラム・カウンタと、前記プログラム・カウンタを含み、前記演算処理シーケンスを実行中の命令に基づいて演算処理を制御する制御論理回路とを有し、以下のような特徴を有するものである。
【００１２】
前記演算処理シーケンスの各命令のビット・フィールド内には、その命令の実行を停止するかどうかを示す命令停止フラグ情報と、その命令の実行再開トリガ条件を示すビット・フィールド情報とを持つ。そして、前記制御論理回路は、前記命令停止フラグ情報がクリアされている命令はそのまま実行し、次の命令処理に進み、前記命令停止フラグ情報がセットされている命令は、前記ビット・フィールド情報に対応する実行再開トリガ条件が成立していなければその実行を行わずに停止し、前記命令停止フラグ情報がセットされている命令は、前記ビット・フィールド情報に対応する実行再開トリガ条件が成立していればその実行を行い、次の命令処理に進む、ように制御する。
【００１３】
（２）代表的なマイコンは、デジタル制御電源からの電圧信号をＡ／Ｄ変換するＡ／Ｄ変換器と、前記Ａ／Ｄ変換器からのデータをフィルタ演算する演算処理装置と、前記デジタル制御電源のパワーＭＯＳトランジスタを駆動するＰＷＭ波形のデューティを求めるパルス幅変調器と、前記Ａ／Ｄ変換器から前記演算処理装置へデータ転送し、前記演算処理装置から前記パルス幅変調器へデータ転送するダイレクト・メモリ・アクセス・コントローラと、システム処理を行う中央演算処理装置とを有し、以下のような特徴を有するものである。
【００１４】
前記演算処理装置によるフィルタ演算と前記中央演算処理装置によるシステム処理とを独立して並行に実行可能であり、前記演算処理装置は、前記（１）のような構成を有し、そして、前記制御論理回路は、前記（１）のように制御する。
【発明の効果】
【００１５】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【００１６】
すなわち、代表的な効果は、システム処理とフィルタ処理の双方の負荷を軽くすることができ、消費電力の向上や性能の向上を図ることが可能となる。
【図面の簡単な説明】
【００１７】
【図１】本発明の一実施の形態のマイコンによるＤＣ−ＤＣコンバータの制御の一例を示すブロック図である。
【図２】本発明の一実施の形態のマイコンによるＤＣ−ＤＣコンバータの制御の一例を示すタイミング図である。
【図３】本発明の一実施の形態のマイコンに内蔵されるデジタル・シグナル・プロセッサの一例を示すブロック図である。
【図４】本発明の一実施の形態のデジタル・シグナル・プロセッサを内蔵したマイコン製品の一例を示すブロック図である。
【図５】本発明の一実施の形態のデジタル・シグナル・プロセッサの命令セットの命令コード表の一例を示す説明図である。
【図６】本発明の一実施の形態のデジタル・シグナル・プロセッサ内の制御論理回路に内蔵されるコントロール／ステータス・レジスタの一例を示す説明図である。
【図７】本発明の一実施の形態のデジタル・シグナル・プロセッサの命令起動動作タイミングの一例を示す説明図である。
【発明を実施するための形態】
【００１８】
以下の実施の形態においては、便宜上その必要があるときは、複数の実施の形態またはセクションに分割して説明するが、特に明示した場合を除き、それらは互いに無関係なものではなく、一方は他方の一部または全部の変形例、詳細、補足説明等の関係にある。また、以下の実施の形態において、要素の数等（個数、数値、量、範囲等を含む）に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でも良い。
【００１９】
さらに、以下の実施の形態において、その構成要素（要素ステップ等も含む）は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではないことは言うまでもない。同様に、以下の実施の形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数値および範囲についても同様である。
【００２０】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００２１】
［実施の形態の概要］
本発明の実施の形態の演算処理装置（一例として、（）内に対応する構成要素、符号等を付記）は、演算処理シーケンスを命令の列として格納するプログラム・メモリ（ＰＭ）と、前記演算処理シーケンスを実行中の命令の位置を示すプログラム・カウンタ（ＰＣ）と、前記プログラム・カウンタを含み、前記演算処理シーケンスを実行中の命令に基づいて演算処理を制御する制御論理回路（ＣＬ）とを有する演算処理装置（デジタル・シグナル・プロセッサＤＳＰ）である。
【００２２】
以上の構成において、前記演算処理シーケンスの各命令のビット・フィールド内には、その命令の実行を停止するかどうかを示す命令停止フラグ情報（ＴＲＩＧ＿ＷＡＩＴ）と、その命令の実行再開トリガ条件を示すビット・フィールド情報（ＴＲＩＧ＿ＷＨＡＴ）とを持つ。そして、前記制御論理回路は、前記命令停止フラグ情報がクリアされている命令はそのまま実行し、次の命令処理に進み、前記命令停止フラグ情報がセットされている命令は、前記ビット・フィールド情報に対応する実行再開トリガ条件が成立していなければその実行を行わずに停止し、前記命令停止フラグ情報がセットされている命令は、前記ビット・フィールド情報に対応する実行再開トリガ条件が成立していればその実行を行い、次の命令処理に進む、ように制御する。
【００２３】
さらに望ましくは、前記演算処理装置は、前記演算処理シーケンスのための演算データを格納する複数のレジスタ（Ｒｎ）を有し、前記複数のレジスタは、他の演算処理装置のバスにも接続され、外部からの書き込み（すなわち値の更新）が可能である。前記ビット・フィールド情報は、前記複数のレジスタのうちどのレジスタへの書き込みをトリガ条件とするかを意味する。そして、前記制御論理回路は、前記命令停止フラグ情報がクリアされている命令はそのまま実行し、前記プログラム・カウンタを更新して次の命令処理に進み、前記命令停止フラグ情報がセットされている命令は、前記ビット・フィールド情報に対応する実行再開トリガ条件が成立していなければその実行を行わずに停止し、前記命令停止フラグ情報がセットされている命令は、前記ビット・フィールド情報に対応する実行再開トリガ条件が成立していればその実行を行い、前記プログラム・カウンタを更新して次の命令処理に進む、ように制御する。
【００２４】
さらに望ましくは、前記演算処理装置は、前記複数のレジスタ（Ｒｎ）の個々のレジスタに対応するフラグ情報（ＴＲＧｎ：ＳＥＴ＿Ｒｎ）を持ち、前記他の演算処理装置が前記複数のレジスタのうちのいずれかひとつの第１レジスタ（Ｒｎ、例えばｎ＝０）にライトしたら対応する第１フラグ情報（ＴＲＧｎ、例えばｎ＝０）がセットされる。そして、前記制御論理回路は、前記命令停止フラグ情報がセットされ、かつ、前記ビット・フィールド情報が前記第１レジスタへのライトを再開トリガとすることを示す命令は、前記第１フラグ情報がクリアされていたらその実行を行わずに停止し、その後、前記第１フラグ情報がセットされたら実行を行い、前記第１フラグ情報をクリアして前記プログラム・カウンタを更新して次の命令処理に進み、前記命令停止フラグ情報がセットされ、かつ、前記ビット・フィールド情報が前記第１レジスタへのライトを再開トリガとすることを示す命令は、前記第１フラグ情報がセットされていたらそのまま実行し、前記第１フラグ情報をクリアして前記プログラム・カウンタを更新して次の命令処理に進む、ように制御する。
【００２５】
さらに望ましくは、前記演算処理シーケンスの各命令のビット・フィールド内には、外部への割り込み出力を示すイベント情報（ＥＶＥＮＴ）を持つ。そして、前記制御論理回路は、前記イベント情報がセットされた命令の実行が行われたら前記プログラム・カウンタを更新して次の命令処理に進むとともに、外部に割り込み信号またはトリガ・パルス信号を出力する、ように制御する。
【００２６】
また、本発明の実施の形態の演算処理装置を内蔵したマイコンは、デジタル制御電源からの電圧信号をＡ／Ｄ変換するＡ／Ｄ変換器（ＡＤＣ）と、前記Ａ／Ｄ変換器からのデータをフィルタ演算する演算処理装置（デジタル・シグナル・プロセッサＤＳＰ）と、前記デジタル制御電源のパワーＭＯＳトランジスタを駆動するＰＷＭ波形のデューティを求めるパルス幅変調器（ＰＷＭ）と、前記Ａ／Ｄ変換器から前記演算処理装置へデータ転送し、前記演算処理装置から前記パルス幅変調器へデータ転送するダイレクト・メモリ・アクセス・コントローラ（ＤＭＡＣ）と、システム処理を行う中央演算処理装置（ＣＰＵ）とを有する。前記演算処理装置によるフィルタ演算と前記中央演算処理装置によるシステム処理とを独立して並行に実行可能であり、前記演算処理装置は、前記のような構成を有し、そして、前記制御論理回路は、前記のように制御する。
【００２７】
以上説明した実施の形態の概要に基づいた実施の形態を、以下において具体的に説明する。以下に説明する実施の形態は本発明を用いた一例であり、本発明は以下の実施の形態により限定されるものではない。
【００２８】
［実施の形態］
本発明の一実施の形態を、図１〜図７を用いて説明する。
【００２９】
＜マイコンによるＤＣ−ＤＣコンバータの制御＞
図１は、本実施の形態のマイコンによるＤＣ−ＤＣコンバータの制御の一例を示すブロック図である。本実施の形態において、マイコンとは、マイクロコンピュータの他、マイクロ・コントローラ・ユニットなども含むものであり、ここでは符号としてＭＣＵを用いる。
【００３０】
マイコンＭＣＵは、入力電圧信号などをＡ／Ｄ変換するＡ／Ｄ変換器ＡＤＣと、このＡ／Ｄ変換器ＡＤＣからのデータをフィルタ演算するデジタル・シグナル・プロセッサＤＳＰと、ＤＣ−ＤＣコンバータのパワーＭＯＳトランジスタを駆動するＰＷＭ波形のデューティを求めるパルス幅変調器ＰＷＭなどを主に含んで構成される。このマイコンＭＣＵの製品は、図４において後述する。
【００３１】
ＤＣ−ＤＣコンバータは、入力端子ＩＮから入力される電源電位と接地電位との間に直列に接続された２つのパワーＭＯＳトランジスタ（ダイオード内蔵）Ｍ１，Ｍ２と、各パワーＭＯＳトランジスタＭ１，Ｍ２を制御する２つのプリバッファＰＢ１，ＰＢ２と、２つのパワーＭＯＳトランジスタＭ１，Ｍ２の接続ノードと出力端子ＯＵＴとの間に接続された平滑用のインダクタＬおよびコンデンサＣと、出力電圧を分圧する２つの抵抗Ｒ１，Ｒ２などから構成される。抵抗Ｒ１，Ｒ２により分圧された電圧は、入力電圧信号として、マイコンＭＣＵのＡ／Ｄ変換器ＡＤＣの入力となる。プリバッファＰＢ１，ＰＢ２には、マイコンＭＣＵのパルス幅変調器ＰＷＭからの出力信号が入力される。
【００３２】
以上のような構成において、マイコンＭＣＵによるＤＣ−ＤＣコンバータのフィードバック制御ループ処理の流れは、以下のようになる。一例として、このマイコンＭＣＵによるＤＣ−ＤＣコンバータの制御の一例を示すタイミング図である図２を用いて補足する。図２は、Ｉｎ−Ｃｙｃｌｅ、２ＭＨｚの例である。
【００３３】
まず、入力電圧信号などをＡ／Ｄ変換器ＡＤＣでＡ／Ｄ変換（０．２５μｓ）し、そのデータをデジタル・シグナル・プロセッサＤＳＰでフィルタ演算（０．２μｓ）して、ＤＣ−ＤＣコンバータのパワーＭＯＳトランジスタＭ１，Ｍ２を駆動するＰＷＭ波形のデューティをパルス幅変調器ＰＷＭで求め、このデューティをパルス幅変調器ＰＷＭ内のＰＷＭタイマに設定（０．０５μｓ）する。
【００３４】
本実施の形態においては、上記のＡ／Ｄ変換からＰＷＭタイマ設定までの流れについては、マイコンＭＣＵ内の中央演算処理装置ＣＰＵの介在なく、Ａ／Ｄ変換器ＡＤＣとデジタル・シグナル・プロセッサＤＳＰとパルス幅変調器ＰＷＭのハードウェアだけで処理が進むようにしている。このため、システム的な処理を行うＣＰＵと、フィルタ演算を実行するＤＳＰとを独立させ、並行に動作させる構成を採用している。これにより、システム処理とフィルタ処理との双方の負荷を軽くすることができ、消費電力の向上や性能の向上を図ることができる。
【００３５】
図１に示した構成要素以外の構成として、ダイレクト・メモリ・アクセス・コントローラ（ＤＭＡＣ：Direct Memory Access Controller）としての機能を持つモジュールを配置し、Ａ／Ｄ変換器ＡＤＣが変換終了したら、ＤＭＡＣが自動的にＡ／Ｄ変換器ＡＤＣの変換結果レジスタからデジタル・シグナル・プロセッサＤＳＰのデータ・レジスタにデータを転送し、ＤＳＰの演算シーケンスを起動させ、ＤＳＰの演算シーケンスが終了したら、同様にＤＭＡＣがその結果データをＰＷＭタイマのデューティ設定レジスタに転送する方式を採用している。
【００３６】
本実施の形態においては、以上のような構成および方式を採用し、特に、以下のような制御を行うことを特徴としている。詳細は、図３〜図７などを用いて後述する。
【００３７】
デジタル・シグナル・プロセッサＤＳＰ内には、予めフィルタ演算のためのシーケンスを命令列として記述したものを保持しておく。すなわち、ＤＳＰ専用のプログラム・メモリ（ＰＭ）に命令シーケンスが格納されている。このプログラムをいつ起動するかのトリガとしては、上記処理の流れに沿えばＡ／Ｄ変換器ＡＤＣの変換結果データのＤＭＡＣによるＤＳＰのデータ・レジスタ（Ｒｎ）へのライトが考えられる。ただし、ＤＳＰの処理シーケンスで使用する入力データは一つとは限らない。電源フィードバック制御では、電圧値と電流値を同時に計算に使用する場合や、複数の電圧値を比較する場合などがある。
【００３８】
デジタル・シグナル・プロセッサＤＳＰ内の命令シーケンスは電源方式に応じて任意であり、シーケンス中で使用される入力データの個数、到着順序、タイミングは一定とは限らない。このため、ＤＳＰの処理の起動トリガには工夫が必要である。
【００３９】
本実施の形態では、デジタル・シグナル・プロセッサＤＳＰの命令シーケンスの起動は、基本的にはＤＳＰのデータ・レジスタ（Ｒｎ）へのデータ・ライト動作をトリガにするが、（１）ＤＳＰのデータ・レジスタの個数分のフラグ（ＴＲＧｎ：ＳＥＴ＿Ｒｎ）を設け、そのフラグは対応するＤＳＰのデータ・レジスタがライトされたらセットされることとし、（２）命令コード内にＤＳＰのデータ・レジスタへのライトが来るまでその命令実行を待つことを示す情報、すなわち命令コード内にＤＳＰのデータ・レジスタへのライトが実行されたらその命令から再起動することを示すトリガ・ビット（ＴＲＩＧ＿ＷＡＩＴ）と、どのＤＳＰのデータ・レジスタへのライトが命令の再起動をさせるかのＤＳＰのデータ・レジスタ番号フィールド（ＴＲＩＧ＿ＷＨＡＴ）を設け、（３）ＤＳＰのデータ・レジスタへのデータ・ライト動作を待つ命令がデコードされたら前記フラグをチェックし続けることとし、（４）当該の前記フラグがセットされ、命令再起動条件が成立したら当該前記フラグを自動クリアし、命令実行を再開する、という方式を採る。
【００４０】
命令シーケンスが完了し、演算結果が準備できたら、ＤＭＡＣにイベント信号を送り、ＤＭＡＣにＤＳＰのデータ・レジスタをリードさせ、演算結果をＰＷＭタイマのデューティ設定レジスタに転送する。このために、命令コード内に、ＤＭＡＣへのイベント信号を出力することを示すイベント・ビット（ＥＶＥＮＴ）を設ける。このイベント・ビットがセットされた命令を実行完了した時点でＤＭＡＣにイベント信号を送る。
【００４１】
前記のような構成によれば、ダイレクト・メモリ・アクセス・コントローラＤＭＡＣはＡ／Ｄ変換器ＡＤＣの変換終了トリガによって、予め決められたデジタル・シグナル・プロセッサＤＳＰのデータ・レジスタにデータをライトすることができるから、ＤＳＰの命令シーケンス内で入力データが必要になるところまで命令シーケンスを実行しておき、ＤＳＰのデータ・レジスタにデータがライトされるまで命令実行を止め、ＤＳＰのデータ・レジスタにデータが準備されたら命令実行を再開することができる。また、複数の入力データが必要な場合でも、その都度、命令シーケンスを一旦停止するようにしておけばよい。これによって、任意のＤＳＰのシーケンスの中で任意個数、任意順序で必要なデータが集めながら演算処理を実行していくことができる。
【００４２】
＜デジタル・シグナル・プロセッサ＞
図３は、前述したマイコンＭＣＵに内蔵されるデジタル・シグナル・プロセッサＤＳＰの一例を示すブロック図である。
【００４３】
デジタル・シグナル・プロセッサＤＳＰは、マイコンＭＣＵ内で中央演算処理装置ＣＰＵとは独立したモジュールとして存在し、以下のリソースから構成されている。このＤＳＰ内の演算は、すべて固定小数点形式で行う。また、内部的には整数演算を行うのみであり、小数点の位置はユーザ（プログラマ）が自由に想定してよい。
【００４４】
（１）Ｒ０−Ｒ１５（レジスタ）
ＤＳＰには、１６本の１６ビット汎用レジスタＲｎ（ｎ＝０，１，２，…，１５）から構成されるレジスタ・ファイルＲＦがある。このレジスタＲｎは、ＤＳＰ演算時の係数値の記憶や、デジタル・フィルタの遅延素子としての内部メモリとして使うことができる。Ｒｎは、ＣＰＵまたはＤＭＡＣからリード・ライト可能な内部バス（Ｄａｔａ  Ｂｕｓ）に接続されている。Ｒｎは、以下で説明するＭＵＬ、ＤＩＶの入力ポートに接続されている。また、Ｒｎは、以下で説明するＡＣＣからＳＦＴ経由でデータを受け取ることができる。
【００４５】
（２）ＡＣＣ（アキュムレータ）
ＤＳＰのデータ・パス・ユニットＤＰＵには、１本の３６ビット長アキュムレータＡＣＣがあり、積算演算結果を記憶する。ＡＣＣは、ＡＬＵ、ＭＵＬ、ＤＩＶから計算結果を受け取る。ＡＣＣは、ＣＰＵバス（Ｄａｔａ  Ｂｕｓ）からアクセスすることもできる。ＡＣＣ上での積算演算中にオーバーフローが発生した場合は、演算結果は正の最大値か負の最小値に飽和される。
【００４６】
（３）ＭＵＬ（乗算器）
ＤＳＰのデータ・パス・ユニットＤＰＵには、１個の乗算器ＭＵＬがあり、基本的に１６ビット×１６ビットの乗算を行う。ＭＵＬは、Ｒｎからデータを受け取り、ＡＬＵまたはＡＣＣに対して演算結果を出力する。
【００４７】
（４）ＡＬＵ（演算ユニット）
ＤＳＰのデータ・パス・ユニットＤＰＵには、１個の演算ユニットＡＬＵがあり、基本的に３６ビット＋３６ビット→３６ビットの加算演算を行う。
【００４８】
（５）ＳＦＴ（シフタ）
ＤＳＰのデータ・パス・ユニットＤＰＵには、１個のシフタＳＦＴがあり、右シフトだけの機能を持つ。ＳＦＴは、３６ビット幅のデータをＡＣＣから受け取り、入力値のうちの１６ビット幅の部分をクリップし（切り出し）、Ｒｎに対して１６ビット幅データを出力する。このクリップ操作は右シフト操作と等価であり、オーバーフローが発生する可能性がある。オーバーフローが発生する場合は、ＳＦＴが出力する値は正の最大値か負の最小値に飽和される。また、このクリップ操作（右シフト操作）において、最下位ビット（ＬＳＢ）は最近傍値に丸められる。
【００４９】
（６）ＤＩＶ（除算器）
ＤＳＰのデータ・パス・ユニットＤＰＵには、１個の除算器ＤＩＶがあり、「Ｒｎ（１６ビット精度）÷Ｒｍ（１６ビット精度）→１６ビット精度×（１／１６ビット精度）→１６ビット精度×１６ビット精度→ＡＣＣ（３２ビット精度）」という演算を行う。除算アルゴリズムは、まず、ニュートン・ラプソン法に基づきＲｍの逆数を求めてから、Ｒｎを乗じて最終結果を得ている。内部的には除算専用のハードウェアは存在せず、除算操作は内部の他のリソース（ＭＵＬ、ＡＬＵ、ＡＣＣなど上述されたもの）を使用している。
【００５０】
（７）ＰＭ（プログラム・メモリ）
ＤＳＰ内の実行シーケンスを設定するために、ＤＳＰのコントロール・ユニットＣＵは、小さいサイズのプログラム・メモリＰＭを内蔵している。ＰＭのサイズは、１６ビット幅×１６ワードである。各命令の長さは、１６ビット幅固定である。このＰＭは、最大で１６ステップの命令だけを記憶できる。
【００５１】
（８）ＲＡＩ（レジスタ・アクセス・インタフェース）
レジスタ・アクセス・インタフェースＲＡＩは、内部データバス（Ｄａｔａ  Ｂｕｓ）からＤＳＰのデータ・レジスタ（レジスタＲｎ）をアクセスするためのインタフェース回路である。ＲＡＩは、制御論理回路ＣＬに対してレジスタ・ライトが行われたことを示すトリガ情報（Ｔｒｉｇｇｅｒ）を送る。
【００５２】
（９）ＣＬ（制御論理回路）
制御論理回路ＣＬは、ＤＳＰの動作全体を制御するブロックである。ＣＬには、プログラム・カウンタＰＣや、ＤＳＰの動作を設定するためのレジスタやスタータスを得るためのレジスタが含まれる。ＣＬは、プログラム・メモリＰＭ内の命令を取り込み、デコードして実行する機能を持つ。各命令に応じてデータ・パス・ユニットＤＰＵへの制御信号（Ｃｏｎｔｒｏｌ  Ｓｉｇｎａｌｓ）を出力して演算処理を実行させることができる。このＣＬの中に、後述する図６に示すようなコントロール／ステータス・レジスタ（ＤＳＰｘＴＲＧ）があり、ＤＳＰのデータ・レジスタ（レジスタＲｎ）へのライトが行われたことを示すフラグなどが格納されている。このＣＬからは、割り込みイベント情報（Ｉｎｔｅｒｒｕｐｔｓ  Ｅｖｅｎｔｓ）が出力される。
【００５３】
以上（１）〜（９）のように、本実施の形態のデジタル・シグナル・プロセッサＤＳＰは、レジスタＲ０−Ｒ１５とレジスタ・アクセス・インタフェースＲＡＩを含むレジスタ・ファイルＲＦと、アキュムレータＡＣＣと乗算器ＭＵＬと演算ユニットＡＬＵとシフタＳＦＴと除算器ＤＩＶを含むデータ・パス・ユニットＤＰＵと、プログラム・メモリＰＭと制御論理回路ＣＬを含むコントロール・ユニットＣＵなどから構成される。
【００５４】
＜マイコン製品＞
図４は、前述したデジタル・シグナル・プロセッサＤＳＰを内蔵したマイコン製品の一例を示すブロック図である。
【００５５】
マイコン製品は、前述した図１に示したようなＡ／Ｄ変換器ＡＤＣとデジタル・シグナル・プロセッサＤＳＰとパルス幅変調器ＰＷＭとダイレクト・メモリ・アクセス・コントローラＤＭＡＣの他、中央演算処理装置ＣＰＵ、アービタＡＲＢ、フラッシュメモリＦＬＡＳＨ、ランダム・アクセス・メモリＲＡＭ、割り込みコントローラＩＮＴＣ、ウォッチドッグタイマＷＤＴ、リセットコントローラＲＣ、パワーオンリセット回路ＰＯＲ、低電圧検出回路ＬＶＤ、モードコントローラＭＣ、クロックコントローラＣＣ、位相同期回路ＰＬＬ１、リングオシレータＯＳＣ、内部オシレータＩＲＣ、デバッガＯＣＤ、デバッガインタフェースＤＢＧＩ／Ｆ、位相同期回路ＰＬＬ２、割り込みタイマＴＭ、シリアルバス回路Ｉ２Ｃ、サービス・プロバイダ・インタフェースＳＰＩ、非同期送受信回路ＵＡＲＴ、コンパレータＣＭＰ、レギュレータＲＧＬ、Ｄ／Ａ変換器ＤＡＣ、基準電源回路ＶＲＥＦ、温度センサＴＥＭＰ、アナロググランド回路ＡＧＮＤ、入出力回路ＧＰＩＯなどを含んで構成される。
【００５６】
このマイコン製品において、本実施の形態の特徴に関連するブロックでは、例えば、Ａ／Ｄ変換器ＡＤＣなどから変換終了トリガをダイレクト・メモリ・アクセス・コントローラＤＭＡＣが受け、Ａ／Ｄ変換器ＡＤＣからデジタル・シグナル・プロセッサＤＳＰにデータ転送し、さらに、デジタル・シグナル・プロセッサＤＳＰが演算終了したトリガをダイレクト・メモリ・アクセス・コントローラＤＭＡＣが受け、そして、デジタル・シグナル・プロセッサＤＳＰからパルス幅変調器ＰＷＭにデータ転送するパスが設けられている。このマイコンによる動作を、デジタル制御電源であるＤＣ−ＤＣコンバータの制御に適用したときの構成が前述した図１であり、この動作のタイミングを示したのが前述した図２である。
【００５７】
なお、このマイコン製品を構成する他のブロック（ＣＰＵ、ＡＲＢ、ＦＬＡＳＨ、ＲＡＭ、ＩＮＴＣ、ＷＤＴ、ＲＣ、ＰＯＲ、ＬＶＤ、ＭＣ、ＣＣ、ＰＬＬ１、ＯＳＣ、ＩＲＣ、ＯＣＤ、ＤＢＧＩ／Ｆ、ＰＬＬ２、ＴＭ、Ｉ２Ｃ、ＳＰＩ、ＵＡＲＴ、ＣＭＰ、ＲＧＬ、ＤＡＣ、ＶＲＥＦ、ＴＥＭＰ、ＡＧＮＤ、ＧＰＩＯなど）による動作は、従来のマイコン製品の動作と基本的に同じであるので、ここでの説明は省略する。
【００５８】
＜デジタル・シグナル・プロセッサの命令コード＞
図５は、前述したデジタル・シグナル・プロセッサＤＳＰの命令セットの命令コード表の一例を示す説明図である。
【００５９】
この命令コード表には、命令フォーマット（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｆｏｒｍａｔ）、命令種別（Ｉｎｓｔｒｕｃｔｉｏｎ）、動作内容（Ｏｐｅｒａｔｉｏｎ）、実行サイクル（Ｅｘｅｃ．  Ｃｙｃｌｅ）の情報が記録されている。命令形式には、最上位ビットＭＳＢ（ｂｉｔ１５）から最下位ビットＬＳＢ（ｂｉｔ０）までの１６ビットに、命令停止フラグ（ＴＲＩＧ＿ＷＡＩＴ）、ビット・フィールド（ＴＲＩＧ＿ＷＨＡＴ）、イベント・ビット（ＥＶＥＮＴ）、オペレーションコード（ＯＰＣＯＤＥ）、命令フィールドＡ（ＦＩＥＬＤ  Ａ）、命令フィールドＢ（ＦＩＥＬＤ  Ｂ）の情報がある。
【００６０】
なお、ＴＲＩＧ＿ＷＡＩＴは、命令停止フラグの他、ＴＲＩＧ＿ＷＡＩＴフラグなどとも記載する。ＴＲＩＧ＿ＷＨＡＴは、ビット・フィールドの他、ＴＲＩＧ＿ＷＨＡＴフィールドなどとも記載する。ＥＶＥＮＴは、イベント・ビットの他、ＥＶＥＮＴビットなどとも記載する。
【００６１】
各命令の動作を、以下に説明する。ユーザは、あらかじめこの命令をプログラム・メモリＰＭ内に格納しておく。全命令は、トリガ・ウェイト機能とイベント出力機能を持つ。
【００６２】
（１）０ｘ０  ＮＯＰ
このＮＯＰ命令は、ノー・オペレーション命令である。プログラム・カウンタＰＣだけがインクリメントされる。
【００６３】
（２）０ｘ１  ＪＭＰ
このＪＭＰ命令は、指定された番地（４ビット）にプログラム・カウンタＰＣを変更しジャンプする。
【００６４】
（３）０ｘ２  ＭＵＬ
このＭＵＬ命令は、Ｒｎ（１６ビット）とＲｍ（１６ビット）を乗算し、結果をアキュムレータＡＣＣの下位３２ビットに格納する。アキュムレータＡＣＣの上位側４ビット分には乗算結果の符合ビットと同じ値が格納される。
【００６５】
（４）０ｘ３  ＭＡＣ
このＭＡＣ命令は、Ｒｎ（１６ビット）とＲｍ（１６ビット）を乗算し、得られた結果を３６ビット長に符号拡張したものをアキュムレータＡＣＣ上の３６ビット値に積算する。この積算（加算）処理中に、正方向側へのオーバーフローが発生した場合は積算結果を０ｘ７＿ＦＦＦＦ＿ＦＦＦＦに飽和させ、また負方向側へのオーバーフローが発生した場合は積算結果を０ｘ８＿００００＿００００に飽和させる。
【００６６】
（５）０ｘ４  ＤＩＶ
このＤＩＶ命令は、まず、Ｒｍ（１６ビット）の逆数値を計算し、内部的に１６ビット幅精度の値を生成する。そして、その結果（１６ビット幅精度）をＲｎ（１６ビット）に乗算して、３２ビット精度の値をアキュムレータＡＣＣに格納する。上位４ビットは符号拡張される。
【００６７】
小数点位置については、プログラムの想定に基づくのみである。例えば、Ｒｍの小数点位置がビット０とビット−１の間にある場合（すなわち、Ｒｍは純粋に整数値の場合）は、Ｒｍの逆数値（１／Ｒｍ）の小数点位置はビット１５（符号ビット）とビット１４の間になる。さらに、Ｒｎの小数点位置がビット０とビット−１の間にある場合（すなわち、Ｒｎは純粋に整数値の場合）は、このＤＩＶ命令のアキュムレータＡＣＣに入る最終結果の小数点位置はビット１５とビット１４の間に置かれる。
【００６８】
ユーザが、ＤＩＶ命令の演算結果をアキュムレータＡＣＣから取り出すときは、ＲＳＦ命令を使ってアキュムレータＡＣＣ上の任意位置の１６ビット幅を切り出してレジスタ・ファイルＲＦに格納する。
【００６９】
ＤＳＰ命令のうち、ＤＩＶ命令だけがマルチ・サイクル命令（実行サイクル数が複数サイクル）である。
【００７０】
（６）０ｘ５  ＬＳＦ
このＬＳＦ命令は、Ｒｍがｎビットだけ左シフトされ、その値をアキュムレータＡＣＣに格納する。左シフト操作は乗算器ＭＵＬによる乗算演算で実現する。アキュムレータＡＣＣの上位側フィールドは符号拡張で埋められる。アキュムレータＡＣＣの下位側フィールドは０で埋められる。
【００７１】
（７）０ｘ６  ＲＳＦ
このＲＳＦ命令は、アキュムレータＡＣＣ（３６ビット）がｎビットだけ右シフトされ、その結果をレジスタ・ファイルＲＦのＲｍに格納する。この意味は、ＲＳＦ命令はアキュムレータＡＣＣから３６ビット幅データを受け取り、そのうちの１６ビット幅のフィールドをクリップして（切り出して）１６ビット幅データとしてＲｍに格納する、ということである。このクリップ操作（右シフト操作）においてオーバーフローが発生する可能性があるが、この場合は飽和された結果が生成される。また同時に、最下位ビットＬＳＢは最近傍値に丸められる。
【００７２】
（８）０ｘ７  ＭＶＣ
このＭＶＣ命令は、レジスタ・ファイルＲＦ内の複数のレジスタ間でチェーン結合方式でデータ転送するもので、デジタル・フィルタの遅延素子の実装に適するものである。チェーン結合される対象レジスタは番号が連続するものに限る。命令フィールド上のｍとｎの値に応じて、ＲｍはＲｍ−１からデータを受け取り、Ｒｍ−１はＲｍ−２からデータを受け取り、他も同様である。同時に、Ｒｎ＋２はＲｎ＋１からデータを受け取り、Ｒｎ＋１はＲｎからデータを受け取る。Ｒｍ内の初期値は破壊され、Ｒｎの値はそのまま維持される。ユーザがｍ＜＝ｎを指定したら、この命令はＮＯＰ命令と等価な動きとなる。
【００７３】
以上（１）〜（８）のような各命令による機能を有して、本実施の形態のデジタル・シグナル・プロセッサＤＳＰは動作する。
【００７４】
＜コントロール／ステータス・レジスタ＞
図６は、前述したデジタル・シグナル・プロセッサＤＳＰ内の制御論理回路ＣＬに内蔵されるコントロール／ステータス・レジスタの一例を示す説明図である。
【００７５】
コントロール／ステータス・レジスタとして、ＤＳＰｘＴＲＧ（ＤＳＰｘ  Ｅｘｅｃｕｔｉｏｎ  Ｔｒｉｇｇｅｒ  Ｓｔａｔｕｓ  Ｒｅｇｉｓｔｅｒ、ｘはＤＳＰのチャネル）があり、ビット番号（Ｂｉｔ）、ビット名称（Ｂｉｔ  Ｎａｍｅ）、リード／ライト区分（Ｒ／Ｗ）、初期値（Ｉｎｉｔｉａｌ）、記述（Ｄｅｓｃｒｉｐｔｉｏｎ）、注釈（Ｎｏｔｅ）などの情報から構成される。図６の例では、ＤＳＰの「０」チャネルのＤＳＰ０ＴＲＧ、ＤＳＰの「１」チャネルのＤＳＰ１ＴＲＧの例を図示している。
【００７６】
このＤＳＰｘＴＲＧにおいて、ＤＳＰのレジスタ・ファイルＲＦのうちのいずれかひとつのレジスタＲｎにライトしたら、このレジスタＲｎに対応するフラグＴＲＧｎがセットされる（ＳＥＴ＿Ｒｎ、Ｒｎ＝Ｒ０〜Ｒ７）。この各レジスタＲ０〜Ｒ７に対応するフラグＴＲＧｎは、それぞれ、ＳＥＴ＿Ｒ０〜ＳＥＴ＿Ｒ７である。
【００７７】
＜デジタル・シグナル・プロセッサの動作＞
図７は、前述したデジタル・シグナル・プロセッサＤＳＰの命令起動動作タイミングの一例を示す説明図である。ＤＳＰの命令起動動作を以下に示す。この命令起動動作を含むＤＳＰの動作全体は、ＤＳＰに内蔵される制御論理回路ＣＬにより制御される。
【００７８】
図７では、命令Ａ（ＩＮＳＴＲ  Ａ）、命令Ｂ（ＩＮＳＴＲ  Ｂ）、命令Ｃ（ＩＮＳＴＲ  Ｃ）、命令Ｄ（ＩＮＳＴＲ  Ｄ）を順に実行する例を示す。各命令は、ＩＮＳＴＲ  Ａが（ＴＲＩＧ＿ＷＡＩＴ＝０、ＴＲＩＧ＿ＷＨＡＴ＝ｘ）、ＩＮＳＴＲ  Ｂが（ＴＲＩＧ＿ＷＡＩＴ＝０、ＴＲＩＧ＿ＷＨＡＴ＝ｘ）、ＩＮＳＴＲ  Ｃが（ＴＲＩＧ＿ＷＡＩＴ＝１、ＴＲＩＧ＿ＷＨＡＴ＝３）、ＩＮＳＴＲ  Ｄが（ＴＲＩＧ＿ＷＡＩＴ＝０、ＴＲＩＧ＿ＷＨＡＴ＝ｘ）の設定となっている。
【００７９】
（１）ユーザは、前もって以下のようにＤＳＰをコンフィギュレーションしておく。
・プログラム・メモリＰＭ内に命令シーケンス（命令列）を書き込む。
・レジスタ・ファイルＲＦ内の複数のレジスタＲ０−Ｒ１５内に初期値を設定する（係数や遅延素子の初期値）。
・プログラム・カウンタＰＣの初期値を設定する（プログラムの開始位置の設定）。
【００８０】
（２）ＤＳＰ全体の動作を有効化する。たとえば、詳細は明記しないが、専用レジスタ内にＤＳＰイネーブル・ビット（ＤＳＰＥ）があって、それを０から１にセットすることでＤＳＰの動作が始まる。
【００８１】
（３）ＤＳＰの命令シーケンスが起動し、ＰＣの初期値の位置から命令が順番に実行される。ただし、各命令フィールド内のＴＲＩＧ＿ＷＡＩＴフラグ（図５）がセットされていたら、当該命令はその実行の前に停止し、対応するトリガ入力を待つ。停止中の命令の命令フィールド内のＴＲＩＧ＿ＷＨＡＴフィールド（３ビット）に対応する番号のレジスタＲｎ（Ｒ０−Ｒ７のいずれか）にライト操作が行われたら、それを再開トリガとして停止していた命令の実行が行われ、実行命令がＰＣの次のアドレスに移行する。
【００８２】
（４）命令再開のためのトリガ状況は、図６に示す専用レジスタＤＳＰｘＴＲＧに表示される（ｘはＤＳＰのチャネルを示し、ＤＳＰが２個入っている製品ではｘ＝０および１である）。例えば、図７の上側に記述されているように、実行前で停止中の命令がＣＰＵまたはＤＭＡＣによりＲ３にデータが書き込まれる（ｕｐｄａｔｅｄ（ｗｒｉｔｔｅｎ））のを待っているとする。これは、すなわち当該命令の命令フィールド内でＴＲＩＧ＿ＷＡＩＴ＝１、ＴＲＩＧ＿ＷＡＩＴ＝３になっている状況である。命令実行制御として、もしＤＳＰｘＴＲＧレジスタのＳＥＴ＿Ｒ３ビットが０なら、その命令は実行前に停止状態を維持し、一旦ＤＳＰまたはＤＭＡＣがＲ３に値をライトしたら、ＳＥＴ＿Ｒ３ビットが自動セット（ａｕｔｏ  ｓｅｔ）され、停止していた命令の実行が開始する。このとき、ＳＥＴ＿Ｒ３ビットは自動クリア（ａｕｔｏ  ｃｌｅａｒ）される。ここで注意すべき点は、ＤＳＰ動作中にＣＰＵはＤＳＰｘＴＲＧレジスタをアクセスしたり監視したりする必要はないことである。ただし、デバッグの際やＤＳＰ全体処理の再初期化などの際は、ＣＰＵによるリード（監視）やライト（初期化）を行う。
【００８３】
なお、図７の下側に記述されているように、ある命令に停止＆再開トリガが設定されていて、その命令を実行する前までにＤＳＰｘＴＲＧレジスタの対応するビットがセットされていたら（あらかじめトリガ条件が成立していたら）当該命令は停止せず、そのまま実行される。ＤＳＰｘＴＲＧレジスタの対応ビットは自動クリアされる。
【００８４】
（５）ＤＳＰが命令シーケンスを実行中に、もしＰＣが最終アドレス（０ｘＦ）に到達したら、ＰＣは０ｘ０にリワインドされ、ＤＳＰによる命令シーケンスは継続される。
【００８５】
（６）命令フィールド内のＥＶＥＮＴビットが１にセットされている命令を実行終了したら、ＤＳＰはそのモジュール外に対して、イベント信号や割り込み信号を出力することができる。
【００８６】
（７）ＤＳＰをデバッグするために、ＤＳＰをデバッグ・モードに設定することができる。これは、前述した図４に示すデバッガＯＣＤ内の専用レジスタの専用ビットＤＳＰ＿ＤＢＧをセットすることで設定できる。このデバッグ・モードでは、同専用レジスタの専用ビットＤＳＰ＿ＳＴＥＰに１ライトするたびに命令列を１個ずつステップ実行できる。このデバッグ・モードでは、命令フィールド内のＴＲＩＧ＿ＷＡＩＴフラグがセットされていて命令再開トリガ条件が成立していなくても（ＤＳＰｘＴＲＧレジスタの当該ビットが０でも）、ＤＳＰ＿ＳＴＥＰに１ライトすれば当該命令はステップ実行する。
【００８７】
以上（１）〜（７）のように、命令起動動作を含むＤＳＰの動作全体は、このＤＳＰに内蔵される制御論理回路ＣＬにより制御することができる。
【００８８】
＜実施の形態の効果＞
以上説明した本実施の形態によれば、デジタル・シグナル・プロセッサＤＳＰにおいて、プログラム・メモリＰＭ、プログラム・カウンタＰＣ、制御論理回路ＣＬ、複数のレジスタＲｎなどを有し、また、このＤＳＰを内蔵したマイコンＭＣＵにおいて、Ａ／Ｄ変換器ＡＤＣ、デジタル・シグナル・プロセッサＤＳＰ、パルス幅変調器ＰＷＭ、ダイレクト・メモリ・アクセス・コントローラＤＭＡＣ、中央演算処理装置ＣＰＵなどを有することで、以下のような効果を得ることができる。
【００８９】
（１）各命令のビット・フィールド内にＴＲＩＧ＿ＷＡＩＴフラグとＴＲＩＧ＿ＷＨＡＴフィールドとを持つことにより、制御論理回路ＣＬは、ＴＲＩＧ＿ＷＡＩＴフラグがクリアされている命令はそのまま実行し、次の命令処理に進むように制御することができる。また、制御論理回路ＣＬは、ＴＲＩＧ＿ＷＡＩＴフラグがセットされている命令は、ＴＲＩＧ＿ＷＨＡＴフィールドに対応する実行再開トリガ条件が成立していなければその実行を行わずに停止し、一方、ＴＲＩＧ＿ＷＨＡＴフィールドに対応する実行再開トリガ条件が成立していればその実行を行い、次の命令処理に進むように制御することができる。
【００９０】
（２）前記（１）に加えて、さらに、各命令のビット・フィールド内のＴＲＩＧ＿ＷＨＡＴフィールドが複数のレジスタＲｎのうちどのレジスタへの書き込みをトリガ条件とするかを意味することにより、制御論理回路ＣＬは、ＴＲＩＧ＿ＷＡＩＴフラグがクリアされている命令はそのまま実行し、プログラム・カウンタＰＣを更新して次の命令処理に進むように制御することができる。また、制御論理回路ＣＬは、ＴＲＩＧ＿ＷＡＩＴフラグがセットされている命令は、ＴＲＩＧ＿ＷＨＡＴフィールドに対応する実行再開トリガ条件が成立していなければその実行を行わずに停止し、一方、ＴＲＩＧ＿ＷＨＡＴフィールドに対応する実行再開トリガ条件が成立していればその実行を行い、プログラム・カウンタＰＣを更新して次の命令処理に進むように制御することができる。
【００９１】
（３）前記（２）に加えて、さらに、複数のレジスタＲｎの個々のレジスタに対応するフラグＴＲＧｎ（ＳＥＴ＿Ｒｎ）を持ち、他の演算処理装置が複数のレジスタＲｎのうちのいずれかひとつの第１レジスタＲｎにライトしたら対応する第１フラグＴＲＧｎがセットされることにより、制御論理回路ＣＬは、ＴＲＩＧ＿ＷＡＩＴフラグがセットされ、かつ、ＴＲＩＧ＿ＷＨＡＴフィールドが第１レジスタＲｎへのライトを再開トリガとすることを示す命令は、第１フラグＴＲＧｎがクリアされていたらその実行を行わずに停止し、その後、第１フラグＴＲＧｎがセットされたら実行を行い、第１フラグＴＲＧｎをクリアしてプログラム・カウンタＰＣを更新して次の命令処理に進むように制御することができる。一方、制御論理回路ＣＬは、ＴＲＩＧ＿ＷＡＩＴフラグがセットされ、かつ、ＴＲＩＧ＿ＷＨＡＴフィールドが第１レジスタＲｎへのライトを再開トリガとすることを示す命令は、第１フラグＴＲＧｎがセットされていたらそのまま実行し、第１フラグＴＲＧｎをクリアしてプログラム・カウンタＰＣを更新して次の命令処理に進むように制御することができる。
【００９２】
（４）前記（２）に加えて、さらに、各命令のビット・フィールド内にＥＶＥＮＴビットを持つことにより、制御論理回路ＣＬは、ＥＶＥＮＴビットがセットされた命令の実行が行われたらプログラム・カウンタＰＣを更新して次の命令処理に進むとともに、外部に割り込み信号またはトリガ・パルス信号を出力するように制御することができる。
【００９３】
（５）前記（１）〜（４）により、ダイレクト・メモリ・アクセス・コントローラＤＭＡＣはＡ／Ｄ変換器ＡＤＣの変換終了トリガによって、予め決められたデジタル・シグナル・プロセッサＤＳＰのデータ・レジスタＲｎにデータをライトすることができるので、ＤＳＰの命令シーケンス内で入力データが必要になるところまで命令シーケンスを実行しておき、ＤＳＰのデータ・レジスタにデータがライトされるまで命令実行を止め、ＤＳＰのデータ・レジスタにデータが準備されたら命令実行を再開することができる。また、複数の入力データが必要な場合でも、その都度、命令シーケンスを一旦停止するようにしておくことによって、任意のＤＳＰのシーケンスの中で任意個数、任意順序で必要なデータが集めながら演算処理を実行していくことができる。
【００９４】
（６）前記（５）により、ＤＳＰの演算が終了した時点でＤＭＡＣにイベントを送り、ＤＭＡＣに演算結果をＤＳＰのデータ・レジスタからＰＷＭのデューティ・レジスタに転送させることもできる。この一連の動作のＡＤＣの変換開始トリガを、例えばＰＷＭの周期イベント信号にしておけば、ＣＰＵの介在なく、ＡＤＣ、ＤＳＰ、ＰＷＭ、ＤＭＡＣの間で自動的に入力・演算・出力の各処理を行わせることができ、例えばＤＣ−ＤＣコンバータのデジタル電源のデジタル・フィルタ演算を伴うフィードバック処理を自動的に実行させることができ、ＣＰＵはそれ以外のシステム処理に集中することができる。これにより、システム処理とフィルタ処理との双方の負荷を軽くすることができ、消費電力の向上や性能の向上を図ることができる。
【００９５】
＜実施の形態の変形例＞
前記実施の形態では、デジタル・シグナル・プロセッサＤＳＰのデータ・レジスタへのライトが命令再起動条件としていたが、ＤＳＰのデータ・レジスタからのリードを命令再起動条件とする例もあり得る。この場合、演算結果が格納されているＤＳＰのデータ・レジスタを読み出さないでいても、その結果値がオーバーライトされ、消えてしまうことを防ぐことができる。
【００９６】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【００９７】
本発明の演算処理装置は、特に、デジタル制御電源向けマイコンに内蔵するデジタル・シグナル・プロセッサ等の演算処理装置、およびこれを内蔵したマイコンに適用して有効である。さらに、このマイコンを用いたデジタル電源システム、ＡＣモータ制御用インバータなどにも利用可能である。
【符号の説明】
【００９８】
ＭＣＵ…マイコン、ＡＤＣ…Ａ／Ｄ変換器、ＤＳＰ…デジタル・シグナル・プロセッサ、ＰＷＭ…パルス幅変調器、ＤＭＡＣ…ダイレクト・メモリ・アクセス・コントローラ、Ｍ１，Ｍ２…パワーＭＯＳトランジスタ、ＰＢ１，ＰＢ２…プリバッファ、Ｌ…インダクタ、Ｃ…コンデンサ、Ｒ１，Ｒ２…抵抗、ＩＮ…入力端子、ＯＵＴ…出力端子、
ＲＦ…レジスタ・ファイル、Ｒ０−Ｒ１５…レジスタ、ＲＡＩ…レジスタ・アクセス・インタフェース、ＤＰＵ…データ・パス・ユニット、ＡＣＣ…アキュムレータ、ＭＵＬ…乗算器、ＡＬＵ…演算ユニット、ＳＦＴ…シフタ、ＤＩＶ…除算器、ＣＵ…コントロール・ユニット、ＰＭ…プログラム・メモリ、ＣＬ…制御論理回路、ＰＣ…プログラム・カウンタ、ＤＳＰｘＴＲＧ…コントロール／ステータス・レジスタ、
ＣＰＵ…中央演算処理装置、ＡＲＢ…アービタ、ＦＬＡＳＨ…フラッシュメモリ、ＲＡＭ…ランダム・アクセス・メモリ、ＩＮＴＣ…割り込みコントローラ、ＷＤＴ…ウォッチドッグタイマ、ＲＣ…リセットコントローラ、ＰＯＲ…パワーオンリセット回路、ＬＶＤ…低電圧検出回路、ＭＣ…モードコントローラ、ＣＣ…クロックコントローラ、ＰＬＬ…位相同期回路、ＯＳＣ…リングオシレータ、ＩＲＣ…内部オシレータ、ＯＣＤ…デバッガ、ＤＢＧＩ／Ｆ…デバッガインタフェース、ＰＬＬ２…位相同期回路、ＴＭ…割り込みタイマ、Ｉ２Ｃ…シリアルバス回路、ＳＰＩ…サービス・プロバイダ・インタフェース、ＵＡＲＴ…非同期送受信回路、ＣＭＰ…コンパレータ、ＲＧＬ…レギュレータ、ＤＡＣ…Ｄ／Ａ変換器、ＶＲＥＦ…基準電源回路、ＴＥＭＰ…温度センサ、ＡＧＮＤ…アナロググランド回路、ＧＰＩＯ…入出力回路。
【図１】
0005655733.tif 000002
【図２】
0005655733.tif 000003
【図３】
0005655733.tif 000004
【図４】
0005655733.tif 000005
【図５】
0005655733.tif 000006
【図６】
0005655733.tif 000007
【図７】
0005655733.tif 000008