(57)【要約】【課題】シームレスな環境を維持しながら、電源装置のスイッチング周期ごとの制御を確実に行い、電源装置を検証する電源ＲＣＰシステムの実現。【解決手段】計算機30と、ＭＰＵ50と、計算機とＭＰＵとの間でデータをＤＭＡ転送するブリッジ40と、を有し、ＭＰＵは、電源装置60のスイッチング周期に応じて、電源装置の信号からＡＤ値を生成し、生成したＡＤ値を、ブリッジを経由して計算機にＤＭＡ転送するように指示すると共に、ブリッジを経由してＤＭＡ転送された補償値に応じて電源装置を制御し、計算機は、ＭＰＵからブリッジを経由してＡＤ値がＤＭＡ転送されたことをポーリングにより検出した後、１つ前のＤＭＡ転送されたＡＤ値に基づいて演算した補償値を、ブリッジを経由してＭＰＵにＤＭＡ転送するように指示すると共に、新たにＤＭＡ転送されたＡＤ値に基づいて補償値を演算する電源ＲＣＰシステム。【選択図】図３
2016063727.tif 000002
【特許請求の範囲】
【請求項１】
計算機と、
ＭＰＵと、
前記計算機と前記ＭＰＵとを接続し、前記計算機と前記ＭＰＵの間でデータをＤＭＡ転送するブリッジと、を有し、
前記ＭＰＵは、前記制御対象の電源装置のスイッチング周期に応じて、前記電源装置の信号からＡＤ値を生成し、生成した前記ＡＤ値を、前記ブリッジを経由して前記計算機にＤＭＡ転送するように指示すると共に、前記ブリッジを経由してＤＭＡ転送された補償値に応じて前記電源装置を制御し、
前記計算機は、前記ＭＰＵから前記ブリッジを経由して前記ＡＤ値がＤＭＡ転送されたことをポーリングにより検出した後、１つ前のＤＭＡ転送された前記ＡＤ値に基づいて演算した前記補償値を、前記ブリッジを経由して前記ＭＰＵにＤＭＡ転送するように指示すると共に、新たにＤＭＡ転送された前記ＡＤ値に基づいて前記補償値を演算することを特徴とする電源ＲＣＰシステム。
【請求項２】
前記ＭＰＵは、前記スイッチング周期毎にカウント値を変化させるカウンタを備え、
前記ＡＤ値を前記計算機に転送する時に、前記カウンタのカウント値を前記ＡＤ値に付加し、
前記計算機は、ポーリングにより前記ＡＤ値がＤＭＡ転送されるアドレスに格納されるデータの前記カウント値を監視することにより、前記ＡＤ値がＤＭＡ転送されたことを検出する請求項１に記載の電源ＲＣＰシステム。
【請求項３】
前記計算機は、ポーリング開始時に、前記カウント値からポーリング開始の遅れを検出することにより、オーバーランを判定する請求項１または２に記載の電源ＲＣＰシステム。
【請求項４】
前記ＭＰＵおよび前記ブリッジは、処理の順序からエラー発生を検出し、エラーが発生した時には、前記計算機に転送する前記ＡＤ値に付加したエラービットにエラーフラグを立てる請求項１から３のいずれか１項に記載の電源ＲＣＰシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電源ＲＣＰシステムに関する。
【背景技術】
【０００２】
車両などに搭載されるＥＣＵ(Electronic Control Unit)の制御プログラムの開発手法として、シミュレータプログラムが実装された開発用コンピュータ上で、制御プログラムのソースコードを自動生成する手法が知られている。この手法は、モデルベース開発（ＭＢＤ:Model Based Development)として知られ、制御モデル（制御ロジックをブロック線図等によってグラフィカルに表現したもの）の作成、および制御仕様に対する制御モデル（すなわち制御ロジック）の適合性の検証を行う。そして、検証した制御モデルから制御プログラムのソースコードを自動生成する。ＭＢＤを利用することにより、ＥＣＵの制御プログラムの開発が効率的に行えるようになり、開発時間が短縮され、開発コストが低減される。
【０００３】
ＭＢＤでは、自動コード生成を行う前に、制御ロジックが正しく設計されているかを確認する。そのため、制御ロジックを量産用ＭＰＵではなく高性能コンピュータ（計算機）に置き換え、試作の量産エンジン等の動作を確認し、制御モデルの正しさを検証するラピッドコントロールプロトタイピング（ＲＣＰ:Rapid Control Prototyping)が行われる。
【０００４】
ＲＣＰは、コンピュータシミュレーションで確認した制御モデルを、そのまま（シームレスに）高性能な計算機において忠実に再現し、試作の制御対象物を検証するシステムである。ＲＣＰを用いることで、プログラム作成すること無しに制御モデルの検証を行うことができる。
【０００５】
ＲＣＰは、これまで車関連分野に適用されるだけで、他の分野には適用されていなかったが、他の分野においてもＲＣＰを適用し、開発の効率化を図ることが考えられる。しかし、他の分野にＲＣＰを適用する場合、分野によっては車関連分野で使用されるＲＣＰの手法が適用できない場合がある。例えば、車関連分野のＲＣＰをデジタル電源（スイッチング電源をデジタル制御するもの）に適用する場合、デジタル電源の制御周期は、車関連分野の制御周期に比べて短い。そのため、車関連分野のＲＣＰにおける構成を、電源関連分野のＲＣＰに適用するのは難しかった。
【０００６】
シームレスな環境を低コストで実現するためには、ＲＣＰ用高性能計算機は、汎用のＰＣアーキテクチャを採用することが望ましい。ＰＣアーキテクチャは、外部と大量のデータを高速に通信できるが、リアルタイム通信には適しておらず、電源分野のＲＣＰ環境に必要な正確な制御周期を維持しながら高速化するには限界があった。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平１１−１３４２８６号公報
【特許文献２】特開２００４−２８７６５４号公報
【特許文献３】特表２００９−５１０９９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
そのため、車関連分野のＲＣＰの構成を電源関連分野のＲＣＰに適用した場合、制御が遅れ、制御の遅れに起因した各種の問題、例えば、試作の電源装置が破壊されるといった問題が発生する。
【０００９】
実施形態によれば、シームレスな環境を維持しながら、短い制御周期の電源装置を制御する電源ＲＣＰシステムが実現される。
【課題を解決するための手段】
【００１０】
第１の態様の電源ＲＣＰシステムは、計算機と、ＭＰＵと、計算機とＭＰＵとを接続し、計算機とＭＰＵの間でデータをＤＭＡ転送するブリッジと、を有する。ＭＰＵは、制御対象の電源装置のスイッチング周期に応じて、制御対象の電源装置の信号からＡＤ値を生成し、生成したＡＤ値を、ブリッジを経由して計算機にＤＭＡ転送するように指示すると共に、ブリッジを経由してＤＭＡ転送された補償値に応じて電源装置を制御する。計算機は、ＭＰＵからブリッジを経由してＡＤ値がＤＭＡ転送されたことをポーリングにより検出する。その後、計算機は、１つ前のＤＭＡ転送されたＡＤ値に基づいて演算した補償値を、ブリッジを経由してＭＰＵにＤＭＡ転送するように指示すると共に、新たにＤＭＡ転送されたＡＤ値に基づいて補償値を演算する。
【発明の効果】
【００１１】
実施形態によれば、シームレスな環境を維持しながら、電源装置の周期ごとの制御を確実に行い、電源装置を検証する電源ＲＣＰシステムが実現される。
【図面の簡単な説明】
【００１２】
【図１】図１は、試作エンジンを制御対象とするＲＣＰシステムの構成例を示す図である。
【図２】図２は、電源装置ＲＣＰシステムを実現する場合に想定される構成および動作を示す図であり、（Ａ）がブロック構成図であり、（Ｂ）が動作フローチャートである。
【図３】図３は、実施形態の電源ＲＣＰシステムの構成を示す図であり、（Ａ）が全体構成を、（Ｂ）が高性能計算機、ブリッジおよびＭＰＵを含むＲＣＰマシンの部分の構成を示す図である。
【図４】図４は、実施形態の電源ＲＣＰシステムにおける高性能計算機とＭＰＵの動作を示すフローチャートであり、左が高性能計算機の動作を、右がＭＰＵの動作を示す。
【図５】図５は、実施形態の電源ＲＣＰシステムにおいてＤＭＡ転送されるデータを示す図である。
【図６】図６は、カウント値をポーリングするカウンタポーリングによるＡＤ値の転送を説明する図であり、（Ａ）がタイムチャートを、（Ｂ）が転送データにおけるデータ構成を示す。
【図７】図７は、実施形態の電源ＲＣＰシステムにおける高性能計算機、ブリッジおよびＭＰＵの動作を示すフローチャートであり、左が高性能計算機の動作を、中央がブリッジの動作を、右がＭＰＵの動作を示す。
【図８】図８は、高性能計算機において、次のスイッチング周期でのＡＤ値の転送完了までに、補償値（ＰＷＭ）データの演算が終了しなかったオーバーランを検出するタイムチャートである。
【図９】図９は、ＡＤ値の転送を、ポーリングにより検出する場合と、割り込み処理により行う場合について比較する図であり、上側が割り込み処理による場合を、下側がポーリングによる場合を示す。
【発明を実施するための形態】
【００１３】
実施形態を説明する前に、車関連分野のＲＣＰシステムについて説明する。
【００１４】
図１は、試作エンジンを制御対象とするＲＣＰシステムの構成例を示す図である。
ＲＣＰシステムは、ＰＣ１と、ＲＣＰマシンとして機能する高性能計算機５と、モーター・エンジン等の制御対象９と、を含む。
【００１５】
ここでは、高性能計算機５が、ＲＣＰマシンとして機能する。高性能計算機５は、ＣＰＵ６と、モーター・エンジン等の制御対象９に出力するドライブ信号を生成するＰＷＭ(Pulse Width Modulation)処理部７と、制御対象９のセンサ信号を読み取りデジタルデータに変換するＡ／Ｄ変換器８と、を有する。
【００１６】
ＰＣ１において、例えば、ＭＡＴＬＡＢ（登録商標）／Ｓｉｍｕｌｉｎｋによりシミュレーションモデル２が作成され、実行形式のデータに変換される。ＰＣ１は、変換したシミュレーションデータを高性能計算機５にダウンロードし、高性能計算機５はダウンロードされたシミュレーションデータに基づいて、制御対象を動作させる。ＲＣＰ用高性能計算機５は、シミュレーションモデルのシームレスな環境を実現するため、汎用ＰＣアーキテクチャを採用する。
【００１７】
ＰＣアーキテクチャは、外部と大量のデータを高速に通信可能であり、リアルタイム通信には適していないが、現状の車関連の制御対象の制御周期は数ｍｓであり、車関連の制御対象のＲＣＰマシンを構築する上では特に問題はない。しかし、ＰＣアーキテクチャは、リアルタイム通信には適しておらず、制御周期が１〜２桁ほど短い制御対象の場合に、ＲＣＰ環境に必要な正確な周期を維持するように高速化するには限界があった。
【００１８】
ＲＣＰは、これまで車関連分野に適用されるだけで、他の分野には適用されていなかったが、他の分野においてもＲＣＰを適用し、開発の効率化を図ることが考えられる。しかし、車関連分野のＲＣＰをスイッチング周期の短い電源装置に適用する場合、ＰＣアーキテクチャは高速化に限界があり、車関連分野のＲＣＰの構成は、電源関連分野のＲＣＰに適用できない。
【００１９】
図２は、電源装置ＲＣＰシステムを実現する場合に想定される構成および動作を示す図であり、（Ａ）がブロック構成図であり、（Ｂ）が動作フローチャートである。
【００２０】
図２の（Ａ）に示すように、ＲＣＰマシンとして機能する高性能計算機１１は、制御対象のスイッチング（デジタル）電源装置１０に対してドライブ信号であるＰＷＭ信号を印加し、スイッチング電源装置１０の各部の電圧・電流などを検出する。高性能計算機１１は、検出信号をＡＤ変換してＡＤ値を生成し、差演算器１２により目標値とＡＤ値の差を演算し、演算回路１３により差に応じた補償値データからＰＷＭ信号を生成してスイッチング電源装置１０に出力する。
【００２１】
高性能計算機１１は、図２の（Ｂ）に示すステップＳ１１からＳ１４を、スイッチング電源装置１０のスイッチング周期に同期して行う。
ステップＳ１１で、スイッチング電源装置１０の各部の電圧・電流検出信号をＡＤ変換してＡＤ値を取得する。
【００２２】
ステップＳ１２で、目標値とＡＤ値を比較し、差を演算する。
ステップＳ１３で、差に対応する補償値データを演算する。
ステップＳ１４で、補償値データに対応したＰＷＭ信号を生成する。
【００２３】
スイッチング電源装置１０の制御における位相遅れは、周期をまたいで積算されず、常に一定であることが求められる。
【００２４】
例えば、電源装置のスイッチング周期は１０μｓ以下であり、図２の（Ｂ）のステップＳ１１からＳ１４は、１０μｓ以下で行うことが求められる。しかし、高性能計算機は、ＰＣアーキテクチャでは高速化に限界があるため、ＰＷＭ信号の生成および電源装置への出力と、電源装置の信号からのＡＤ変換値の生成とを、電源装置のスイッチング周期（１０μｓ以下）内で行うのは難しい。そのため、電源装置のモデル設計を忠実に再現できず、最悪の場合には試作の電源装置を破壊する場合も生じる。
【００２５】
以下に開示する実施形態の電源ＲＣＰシステムは、シミュレーションモデルのシームレスな環境を実現した上で、電源装置のスイッチング周期に対応した制御を可能にしている。
【００２６】
図３は、実施形態の電源ＲＣＰシステムの構成を示す図であり、（Ａ）が全体構成を、（Ｂ）が高性能計算機、ブリッジおよびＭＰＵを含むＲＣＰマシンの部分の構成を示す図である。
【００２７】
図３の（Ａ）に示すように、実施形態の電源ＲＣＰシステムは、ＰＣ２１と、高性能計算機、ブリッジおよびＭＰＵを含むＲＣＰマシンと、制御対象のスイッチング（デジタル）電源６０と、を含む。
【００２８】
ここでは、高性能計算機３０、ブリッジ４０およびＭＰＵ５０が、ＲＣＰマシンを形成する。ＰＣ２１は、ＭＡＴＬＡＢ（登録商標）／Ｓｉｍｕｌｉｎｋによりシミュレーションモデル２２を作成し、モデル２２を実行形式データ２３に変換し、変換したシミュレーションデータを高性能計算機３０にダウンロードする。スイッチング電源６０は、ＭＰＵ５０からの高分解能データから生成したＰＷＭ信号により制御され、各部の電圧および電流を検出信号としてＭＰＵ５０に出力する。近年、スイッチング電源６０は、省電力を実現するため、負荷に応じて精密な制御を高速に行うことが求められており、短い周期で高分解能データから生成したＰＷＭ信号により制御される。
【００２９】
前述のように、スイッチング電源６０は、スイッチング周期が１０μｓ以下であり、ＲＣＰマシンはスイッチング周期中に図２の（Ｂ）のＳ１１からＳ１４のステップを実行することが求められる。ＰＣアーキテクチャは、高速化に限界があり、高速でのＡＤ変換機能や入出力機能などのペリフェラル機能が不十分である。そこで、実施形態では、ペリフェラル機能が充実し、安価で容易に入手可能な組込用ＭＰＵ５０を代替インターフェース（Ｉ／Ｆ）として利用し、高性能計算機３０とＭＰＵ５０の間で高速Ｉ／Ｆ変換を行うブリッジ４０を設けてＲＣＰマシンを形成する。高性能計算機３０は、ＣＰＵ３１を有する。ＭＰＵ５０は、高分解能ＰＷＭ信号を生成するＰＷＭ信号処理部５１と、Ａ／Ｄ変換器５２と、を有する。
【００３０】
図３の（Ｂ）に示すように、高性能計算機３０は、ＣＰＵ３１に加えて、メモリ３２、ＰＣＩ＿Ｉ／Ｆ３３などの通常のＰＣアーキテクチャと同じ要素を有する。ブリッジ４０は、ＤＭＡＣ（コントローラ）４１と、ＰＣＩ＿Ｉ／Ｆ４２と、ＦＩＦＯ４３および４４と、ＳＲＡＭ＿Ｉ／Ｆ４５と、を有するＤＭＡ回路であり、ＦＰＧＡまたはPCI Target Interface Adapter ("APIC21")などで形成される。ＭＰＵ５０は、ＰＷＭ信号処理部５１およびＡ／Ｄ変換器５２に加えて、ＳＲＡＭ＿Ｉ／Ｆ４５を有し、さらに図示していないが、プロセッサとして機能するのに必要な演算機能、メモリなどを有する。
【００３１】
実施形態では、ＭＰＵ５０とブリッジ４０の間のデータ転送は、ＳＲＡＭ＿Ｉ／Ｆを介したメモリ（ＭＰＵ５０のメモリおよびＦＩＦＯ４３および４４）間のＤＭＡ転送で行う。ＭＰＵ５０は、ユーザが任意のロジックで動作させるので、制御対象のスイッチング電源６０のスイッチング周期に応じて動作させることができ、リアルタイム性が確保できる。高性能計算機３３とブリッジ４０の間のデータ転送は、ＰＣＩ＿Ｉ／Ｆ３３を介したＤＭＡ転送により行う。以上のデータ転送は、メモリ３２とＭＰＵ５０のメモリとの間のブリッジ４０を介したＤＭＡ転送ともいえる。
【００３２】
ＤＭＡアクセス（データ転送）は、大量のデータを高速に送ることができるが、小さなデータを高速にかつ“決まった周期（スイッチング周期）”で送受信することはできない。これに対して、ＰＩＯアクセスは、ＣＰＵ３１が１ワード(word)毎にアクセスを行うため、送受信スケジューリングを自由に行える。ただし、ＣＰＵ３１が他の計算等を行っている場合には送受信自体が行えない。また、メモリアクセスのレイテンシが高く、高速に送受信することはできない。ここでは、２つを組み合わせ、これらの特性を生かして高速性を確保する。
【００３３】
高性能計算機３０とＭＰＵ５０間のブリッジを介したデータの転送は、第１と第２のデータ転送に分けられる。第１のデータ転送はＭＰＵ５０から高性能計算機３０へのＡＤ値の転送であり、第２のデータ転送は高性能計算機３０からＭＰＵ５０への補償値データ（ＰＷＭデータ）の転送である。
【００３４】
第１の転送（ＡＤ値転送）では、ＭＰＵ５０は、ＡＤ値をメモリの所定アドレス領域に書き込み、書き込みが終了すると割り込み信号をブリッジ４０に出力する。これに応じて、ブリッジ４０のＤＭＡＣ４１は、ＭＰＵ５０のメモリの所定アドレス領域のデータ（ＡＤ値）を、ＳＲＡＭ＿Ｉ／Ｆ４５および５３、ＦＩＦＯ４３、ＰＣＩ＿Ｉ／Ｆ３３および４２を介して、メモリ３２に転送する。高性能計算機３０は、メモリ３２へのＡＤ値の転送をポーリングにより監視しており、メモリ３２にＡＤ値が転送されると、ただちに第２のデータ転送のための処理を開始する。高性能計算機３０におけるメモリ３２へのＡＤ値の転送をポーリングにより監視する処理については後述する。
【００３５】
第２の転送（補償値転送）では、高性能計算機３０のＣＰＵ３１は、前の周期で受信したＡＤ値に基づいて演算した補償値（ＰＷＭ）データを、すぐにＤＭＡ転送できるようにメモリ３２の所定領域に記憶している。ＣＰＵ３１は、ポーリングによりＡＤ値の転送を確認すると直ちに記憶している補償値（ＰＷＭ）データのＤＭＡ転送をブリッジ４０のＤＭＡＣ４１に指示する。ブリッジ４０は、メモリ３２に書込まれた補償値（ＰＷＭ）データを、ＰＣＩ＿Ｉ／Ｆ３３および４２を介して、ＦＩＦＯ４４に転送し、さらにＳＲＡＭ＿Ｉ／Ｆ４５および５３を介してＭＰＵ５０のメモリに転送する。ＣＰＵ３１は、補償値（ＰＷＭ）データのＤＭＡ転送をブリッジ４０に指示した後は、別の処理を行える。
【００３６】
例えば、ＣＰＵ３１は、メモリ３２に補償値（ＰＷＭ）データを書き込んだ後、メモリ３０の補償値（ＰＷＭ）データ書き込み領域およびＰＣＩ＿Ｉ／Ｆ３３をブリッジ４０向けに切り離し（有効にし）ておく。この時、メモリ３２で補償値（ＰＷＭ）データを記憶するアドレス等はあらかじめ決まっている。これにより、ＣＰＵ３１は、補償値（ＰＷＭ）データのＤＭＡ転送に直接関与する必要が無くなり、メモリ３０の補償値（ＰＷＭ）データ書き込み領域以外にアクセス可能となる。ＰＣＩ＿Ｉ／Ｆ４２、ＳＲＡＭ＿Ｉ／Ｆ４５およびＳＲＡＭ＿Ｉ／Ｆ５３は、第１の転送および第２の転送専用として常時開いており、ＤＭＡ転送により、メモリ３２の補償値がＭＰＵ５０のメモリに高速で転送される。この際、通常第１の転送と第２の転送は重なることはないが、必要に応じて、ＭＰＵ５０で、バスの調停が行われ、エラーとして取り扱う。
【００３７】
ＭＰＵ５０がＡＤ値を生成してメモリの所定領域に書き込み、書き込みが終了したことを割り込み信号によりブリッジ４０にＤＭＡ転送するように通知する。ＰＣＩ＿Ｉ／Ｆ４２、ＳＲＡＭ＿Ｉ／Ｆ４５、ＳＲＡＭ＿Ｉ／Ｆ５３およびＰＣＩ＿Ｉ／Ｆ３３は開いており、ＭＰＵ５０のＡＤ値が、高性能計算機３０のメモリ３２にＤＭＡ転送される。メモリ３２でＡＤ値が転送される領域のアドレス等はあらかじめ決まっている。ＣＰＵ３１は、上記のようにＣＰＵ３１はポーリングによりメモリ３２を監視しており、ＡＤ値がメモリ３２に転送されると、メモリ３２でＡＤ値が転送される領域をＰＣＩ＿Ｉ／Ｆ３３から切り離す。ＣＰＵ３１は、以上のようにＰＩＯアクセスにより、メモリ３２の補償値記憶領域およびＡＤ値転送領域とＰＣＩ＿Ｉ／Ｆ３３との接続状態を制御する。
【００３８】
図４は、実施形態の電源ＲＣＰシステムにおける高性能計算機３０とＭＰＵ５０の動作を示すフローチャートであり、左が高性能計算機３０の動作を、右がＭＰＵ５０の動作を示す。
【００３９】
まず、ＭＰＵ５０における処理を説明する。以下の処理をスイッチング周期毎に行う。
ステップＳ３１で、ＭＰＵ５０は、スイッチング周期を管理しており、スイッチング電源装置６０の各部の検出信号（電圧信号、電流信号）からＡＤ値を生成するタイミングになるまで待機し、そのタイミングになるとＡＤ値を生成する。
【００４０】
ステップＳ３２で、ＭＰＵ５０は、ＡＤ値をＤＭＡ転送されるようにメモリの所定領域にセットし、ブリッジ４０にＡＤ値のセット完了を割り込み信号で通知する。ブリッジ４０は、この割り込み信号に応じて、ただちにＡＤ値のＤＭＡ転送処理を行い、高性能計算機３０のメモリ３２にＡＤ値がＤＭＡ転送される。ブリッジ４０は、ＤＭＡ転送処理のみを行うので、ブリッジ４０が割り込み信号を受けてからＡＤ値のＤＭＡ転送処理を開始するまでの時間は非常に短い。ＡＤ値のＤＭＡ転送後の処理については、高性能計算機３０での処理で説明する。
【００４１】
ステップＳ３３で、ＭＰＵ５０は、すでにＤＭＡ転送によりメモリに転送された補償値（ＰＷＭ）データを読み取る。
【００４２】
ステップＳ３４で、ＭＰＵ５０は、補償値（ＰＷＭ）データからＰＷＭ信号を生成し、スイッチング電源装置６０のトランジスタに印加する。
【００４３】
次に、高性能計算機３０におけるＣＰＵ３１の処理を説明する。
ステップＳ２１で、ＣＰＵ３１は、ブリッジ４０によりメモリ３２にＤＭＡ転送されるＡＤ値に付加されているカウンタビットをポーリングする。
【００４４】
ステップＳ２２で、ＣＰＵ３１は、カウンタビットの値から、ＡＤ値が受信されたか判定し、受信されていなければステップＳ２１に戻り、ＡＤ値受信まで監視処理を繰り返し、ＡＤ値が受信されるとステップＳ２３に進む。
【００４５】
ステップＳ２３で、ＣＰＵ３１は、前の周期の受信したＡＤ値に基づいて演算しておいた補償値（ＰＷＭ）データを、ＤＭＡ転送されるようにメモリ３２の所定領域に記憶しており、ブリッジ４０に補償値（ＰＷＭ）データのセット完了を割り込み信号で通知する。この場合も、ブリッジ４０は、この割り込み信号に応じて、ただちに補償値（ＰＷＭ）データのＤＭＡ転送処理を行い、ＭＰＵ５０のメモリに補償値（ＰＷＭ）データがＤＭＡ転送される。
【００４６】
ステップＳ２４で、ＣＰＵ３１は、ステップＳ２２で受信したＡＤ値に基づいて補償値（ＰＷＭ）データを演算し、メモリ３２の所定領域に記憶し、Ｓ２１に戻る。
【００４７】
高性能計算機に組込用ＭＰＵを組み合わせることにより、高分解能制御は実現可能であるが、スイッチング周期がμｓの単位（例えば、スイッチング周波数が２００ｋＨｚで、周期は５μｓ）の電源装置の場合、正確な周期更新は難しい。高性能計算機のＣＰＵ３１が通信に関与しないＤＭＡ通信を行っても、データ送受信完了のタイミングでの割り込みに対してＣＰＵ３１が関与し、多数のレジスタ値の退避等の処理を行うため、アクセス時間が安定しない。ＣＰＵ３１がメモリ３２のデータ送受信を直接行うＰＩＯアクセスでは、制御周期を早くすることができず、スイッチング周期に間に合わない。さらに、データの送受信にＣＰＵ３１が関与するため、ＣＰＵ３１のレジスタの占有状態により、データ送受信のタイミングがずれ、ＭＰＵ５０への補償値の送信およびＭＰＵ５０によるＰＷＭデータの設定タイミングがばらつく。
【００４８】
これに対して、実施形態の電源ＲＣＰシステムでは、上記のように、高性能計算機に組込用ＭＰＵおよびブリッジを組み合わせ、ブリッジによるＤＭＡ転送および高性能計算機のポーリングを利用して、スイッチング周期での高分解能制御を実現している。ＣＰＵ３１のリソースを占有しないＤＭＡ転送を、ＭＰＵ５０が電源のスイッチング周期に合わせて起動し、ＡＤ値を高性能計算機３０のメモリ３２に転送する。ＣＰＵ３１は、割り込みでなく、ポーリングにより転送完了を検出すると同時に、前の周期において計算済みの結果をＤＭＡ転送用にセットし、ＭＰＵ５０に転送する。ＣＰＵ３１は、さらに転送されたＡＤ値に基づいて補償値（ＰＷＭ）データの演算を行う。
【００４９】
図５は、実施形態の電源ＲＣＰシステムにおいてＤＭＡ転送されるデータを示す図である。
実施形態の電源ＲＣＰシステムでは、高分解能の制御を行うため、ビット数の多いデータを転送するが、データ長を固定化によるバス占有時間を削減するため、異なるデータ長で転送を行えるようにする。まず、前提となる高性能計算機３０およびＭＰＵ５０におけるデータ構造について説明する。
【００５０】
ＭＰＵ５０は、組込用であり、１６ビット（または３２ビット）のアドレス空間にアクセス可能で、２４ビット（または３２ビット）のデータを扱える。ただし、ＭＰＵ５０が、スイッチング電源装置６０の制御に使用するメモリ領域はごく一部である。さらに、起動時の制御は１６ビットの補償値（ＰＷＭ）データで行うが、起動後は精密な制御のために２４ビットの補償値（ＰＷＭ）データを使用する。そこで、高性能計算機３０のＣＰＵ３１は、起動時には１５ビットのアドレスで１６ビットの補償値（ＰＷＭ）データを生成し、先頭の１ビットのフラグを１６ビットデータであることを示すように（例えば０に）セットする。また、高性能計算機３０のＣＰＵ３１は、起動後の通常動作時には７ビットのアドレスで２４ビットの補償値（ＰＷＭ）データを生成し、先頭の１ビットのフラグを２４ビットデータであることを示すように（例えば１に）セットする。ＣＰＵ３１は、このような２種類の３２ビットデータをメモリ３２の所定領域に書き込み、ブリッジ４０にＤＭＡ転送を指示する。ブリッジ４０は、これらの３２ビットデータを、ＭＰＵ５０のメモリの所定領域に転送する。図５では、１５ビットおよび７ビットのアドレスが１６ビットアドレスで示される領域に転送されるように示されるが、上記のように、ＭＰＵ５０のアドレス空間が１６ビットであるためで、使用する領域が限定されるので不要なビットを０にすればよい。ＭＰＵ５０は、フラグが０のデータが転送されたアドレスのデータを１６ビットデータとして、フラグが１のデータが転送されたアドレスのデータを２４ビットデータとして、取り扱う。以上が、高性能計算機３０からＭＰＵ５０への補償値（ＰＷＭ）データのＤＭＡ転送である。
【００５１】
ＭＰＵ５０で生成されるＡＤ値は、１２ビットデータであり、２つのＡＤ値を３２ビットデータに含めて高性能計算機３０にＤＭＡ転送される。３２ビットデータの残り８ビットのうち、１ビットはエラーフラグであり、残りの７ビットは、スイッチング周期毎にダウンカウントされるカウント値が付加される。図５に示すように、ＭＰＵ５０は、カウンタ５３を有しており、カウンタ５３は初期設定時に最大値に設定され、それ以後スイッチング周期毎にダウンカウントされ、そのカウント値が転送データに付加される。ＭＰＵ５０は、スイッチング周期毎に複数のＡＤ値を生成すると、メモリの所定領域に上記のデータ形式でＤＭＡ転送データをセットする。これに応じて、ブリッジ４０がデータを高性能計算機３０のメモリ３１の所定領域にＤＭＡ転送する。ＣＰＵ３１は、前の周期のカウント値を記憶しており、ポーリングにより、ＤＭＡ転送された３２ビットデータのカウント値をチェックし、記憶しているカウント値より１減じていれば新しいＡＤ値が転送されたことを検出する。ＣＰＵ３１は、エラーフラグをチェックし、エラーが無ければ、３２ビットデータのうちの１２ビットの２つのＡＤ値を抽出する。
【００５２】
図６は、カウント値をポーリングするカウンタポーリングによるＡＤ値の転送を説明する図であり、（Ａ）がタイムチャートを、（Ｂ）が転送データにおけるデータ構成を示す。ここでは、ＭＰＵ５０は、スイッチング周期を示す信号の立上りに同期して検出信号のＡＤ変換を行いＡＤ値を生成するとして説明する。
【００５３】
図６の（Ａ）に示すように、スイッチング周期信号の立上り前から、ＣＰＵ３１はポーリングを行っている。ＭＰＵ５０は、スイッチング周期信号の立上りに同期してＡＤ値を生成し、ブリッジ４０にＤＭＡ転送を指示し、これに応じてＡＤ値のＤＭＡ転送が行われる（ＡＤＩｎ（ＤＭＡ））。前述のように、エラービットおよびＡＤ値にはカウント値が付加されており、図ではＦＬＡＧ（０ｘＦ）が付加されている。
【００５４】
ＣＰＵ３１は、ポーリングによりカウント値を含むＦＬＡＧ（０ｘＦ）を確認し、ＡＤ値の転送が行われたことを検出する。ＣＰＵ３１は、前のスイッチング周期で転送されたＡＤ値に基づいて演算されメモリ３２の所定領域に記憶されている補償値（ＰＷＭ）データのＤＭＡ転送を指示し、これに応じて補償値（ＰＷＭ）データのＤＭＡ転送が行われる（ＰＷＭＯｕｔ（ＤＭＡ））。さらに、ＣＰＵ３１は、転送されたＡＤ値に基づいた補償値（ＰＷＭ）データの演算を開始し、演算した補償値（ＰＷＭ）データをメモリ３２の所定領域に書込む。そして、ＣＰＵ３１は、再びポーリングによるＡＤ値の転送が行われたかの監視を開始する。ＣＰＵ３１が次に確認するカウント値を含むフラグは、ＦＬＡＧ（０ｘＥ）から１減じている。
【００５５】
図６の（Ｂ）に示すように、メモリ３２においてＡＤ値が転送される領域はあらかじめ決められており、スイッチング周期毎に常に同じアドレスにＡＤ値のデータが展開（転送）される。図６の（Ｂ）では、アドレス０ｘ０００００（＋０）から０ｘ００００９（＋９）が転送領域であり、ＣＰＵ３１はポーリングによりアドレス０ｘ００００９（＋９）のダウンカウンタのビット値をポーリングしてデータ転送を監視する。
【００５６】
図６の（Ａ）に示すように、補償値（ＰＷＭ）データの転送は、ＡＤ値の転送を検出した直後にブリッジ４０にＤＭＡ転送を指示するのみで行えるため、ＣＰＵ３１が直接補償値（ＰＷＭ）データの転送に関与しない。ＣＰＵ３１は、補償値（ＰＷＭ）データの演算およびメモリ３２の所定領域に書込んだ後ポーリングを行うが、ポーリングは次のスイッチング周期が始まるまでに開始されればよい。そのため、ＣＰＵ３１は、図６の（Ａ）において、Ｅで示す期間まで、補償値（ＰＷＭ）データの演算時間を延ばすことができる。
【００５７】
実施形態の電源ＲＣＰシステムにおいて、ブリッジ４０およびＭＰＵ５０において、何らかの理由で処理の順番が守られなかった場合は、故障が発生したことを意味するので、高性能計算機３０に通知することが望ましい。そこで、ブリッジ４０およびＭＰＵ５０は、処理の順番が守られなかった時に、図５に示すＡＤ値を含む３２ビットの転送データの先頭のエラービットにエラーフラグを立てる。
【００５８】
図７は、実施形態の電源ＲＣＰシステムにおける高性能計算機３０、ブリッジ４０およびＭＰＵ５０の動作を示すフローチャートであり、左が高性能計算機３０の動作を、中央がブリッジ４０の動作を、右がＭＰＵ５０の動作を示す。図７の高性能計算機３０およびＭＰＵ５０の動作は、図４と実質的に同じである。
【００５９】
ＭＰＵ５０がスイッチング周期毎にＳ６１のＡＤ値生成（変換）を行い、Ｓ６２のＡＤ値のＤＭＡ転送のためのセットを行う。ブリッジ４０は、Ｓ５１でＡＤ値のＤＭＡ転送の指示を待っており、指示があるとＳ５２でＡＤ値のＤＭＡ転送を行う。高性能計算機３０は、Ｓ４１でポーリングによりＡＤ値受信を監視しており、ＡＤを受信すると、Ｓ４２で前回のＡＤ値に基づいて演算した補償値（ＰＷＭ）データのＤＭＡ転送のためのセットを行う。ブリッジ４０は、Ｓ５３で補償値（ＰＷＭ）データのＤＭＡ転送の指示を待っており、指示があるとＳ５４で補償値（ＰＷＭ）データのＤＭＡ転送を行う。ＭＰＵ５０は、Ｓ６３で補償値（ＰＷＭ）データを受信すると、Ｓ６４で補償値（ＰＷＭ）データに基づいてＰＷＭ信号を生成し、制御に反映する。
【００６０】
ブリッジ４０およびＭＰＵ５０は、上記の処理の順番が守られなかった時にエラーが発生したと判定し、３２ビットの転送データの先頭のエラービットにエラーフラグを立てる。例えば、ブリッジ４０は、Ｓ５４の補償値（ＰＷＭ）データのＤＭＡ転送が完了する前に、ＭＰＵ５０からＡＤ値のＤＭＡ転送の指示を受けた場合には、エラー発生と判定し、エラーフラグを立てる。同様に、ブリッジ４０は、Ｓ５２のＡＤ値のＤＭＡ転送が完了する前に、高性能計算機３０から補償値（ＰＷＭ）データのＤＭＡ転送の指示を受けた場合には、エラー発生と判定し、エラーフラグを立てる。ＭＰＵ５０は、Ｓ６２のＡＤ値のＤＭＡ転送の指示前に、ブリッジから補償値（ＰＷＭ）データのＤＭＡ転送を受けた場合には、エラー発生と判定し、エラーフラグを立てる。さらに、ＭＰＵ５０は、Ｓ６４の補償値（ＰＷＭ）データのスイッチング電源装置６０の制御への反映の前に、ＡＤ値の取得（変換）のタイミングが到来した場合には、エラー発生と判定し、エラーフラグを立てる。高性能計算機３０は、エラーフラグの立ったＡＤ値を含むデータを受信すると、シミュレーションを中止し、エラー発生を報知する。
【００６１】
上記は、ブリッジ４０およびＭＰＵ５０においてエラー発生を判定する場合であるが、高性能計算機３０においても処理の順番が守られない場合にエラー発生を判定される。
【００６２】
図８は、高性能計算機３０において、次のスイッチング周期でのＡＤ値の転送完了までに、補償値（ＰＷＭ）データの演算が終了しなかったオーバーランを検出するタイムチャートである。
【００６３】
図８は、図６の（Ａ）に類似しており、ＣＰＵ３１が補償値（ＰＷＭ）データを演算してメモリ３２の所定領域に書込む時間が、Ｆで示す時間まで長くなったことが異なる。この場合、ポーリングを開始するタイミングが、次のスイッチング周期でＡＤ値が転送された後になり、次のスイッチング周期のＡＤ値が転送されたことを認識できない状態が発生し、エラーと判定する必要がある。
【００６４】
ＣＰＵ３１による補償値（ＰＷＭ）データの演算およびメモリ３２の所定領域への書込みは、ＡＤ値の転送が完了する前に終了している必要がある。そこで、ＣＰＵ３１は、ポーリングの開始時の最初に、ＡＤ値が転送されるアドレスのデータのカウント値をチェックする時に、すでにカウントダウンされたカウント値であった場合にはオーバーランと判定する。
【００６５】
以上、実施形態の電源ＲＣＰシステムについて説明したが、ＡＤ値の高性能計算機３０のメモリ３２への転送を、実施形態のようにポーリングにより検出する場合と、ブリッジ４０から高性能計算機３０への割り込み処理により行う場合について比較する。
【００６６】
図９は、２つの場合を比較する図であり、上側が割り込み処理による場合を、下側がポーリングによる場合を示す。
【００６７】
割り込み処理による場合は、ＡＤ値のＤＭＡ転送の後、ブリッジ４０からＣＰＵ３１に割り込み信号が出力される。これに応じて、ＣＰＵ３１は、処理中のレジスタ値等を退避し、その後補償値（ＰＷＭ）データを演算する。退避処理は、ＣＰＵ３１の占有状態で処理量が異なるために、割り込み処理時間は変動し、一定でない。
【００６８】
これに対して、ポーリングによる場合は、退避処理等を必要としないので、ＡＤ値のＤＭＡ転送の後、一定の短時間後に演算処理が開始される。
【００６９】
以上、実施形態を説明したが、ここに記載したすべての例や条件は、発明および技術に適用する発明の概念の理解を助ける目的で記載されたものである。特に記載された例や条件は発明の範囲を制限することを意図するものではなく、明細書のそのような例の構成は発明の利点および欠点を示すものではない。発明の実施形態を詳細に記載したが、各種の変更、置き換え、変形が発明の精神および範囲を逸脱することなく行えることが理解されるべきである。
【符号の説明】
【００７０】
２１    ＰＣ
３０    高性能計算機
３１    ＣＰＵ
３２    メモリ
４０    ブリッジ
４１    ＤＭＡＣ
５０    ＭＰＵ
６０    スイッチング電源装置
【図１】
2016063727.tif 000003
【図２】
2016063727.tif 000004
【図３】
2016063727.tif 000005
【図４】
2016063727.tif 000006
【図５】
2016063727.tif 000007
【図６】
2016063727.tif 000008
【図７】
2016063727.tif 000009
【図８】
2016063727.tif 000010
【図９】
2016063727.tif 000011