(57)【要約】【課題】回路規模を抑えつつ適切な制御を行う並列処理装置及び演算処理方法を提供する。【解決手段】並列処理装置は、１つ又は複数のＤＳＰ演算器１２２及び各ＤＳＰ演算器１２２にそれぞれ対応する１つ又は複数のＤＳＰ妥当性確認部１２３を備える。ＤＳＰ妥当性確認部１２３は、以下の各部を備える。レジスタ２３１は、ＤＳＰ演算器１２２から演算結果を繰り返し受信する。判定部２３２は、演算結果が同じ算出値を有する場合、ＤＳＰ演算器１２２による演算が完了したと判定し、算出値を確定演算結果として出力する。【選択図】図８
2020061124.tif 000002
【特許請求の範囲】
【請求項１】
１つ又は複数の演算器及び各前記演算器にそれぞれ対応する１つ又は複数の演算結果判定部を備えた並列処理装置であって、
前記演算結果判定部は、
前記演算器から演算結果を繰り返し受信する受信部と、
前記受信部が連続して受信する前記演算結果が同じ算出値を有する場合、前記演算器による演算が完了したと判定し、前記算出値を確定演算結果として出力する判定部と
を備えたことを特徴とする並列処理装置。
【請求項２】
前記判定部は、前記受信部が保持する前記演算結果と、前記受信部が次に受信する前記演算結果とを比較して、それぞれの算出値が同じ値か否かを判定することを特徴とする請求項１に記載の並列処理装置。
【請求項３】
前記並列処理装置は、各前記演算器のそれぞれ対応する１つ又は複数の入力保持部をさらに備え、
前記入力保持部は、入力された値に付加された誤り検出情報を用いて誤り検出を行い、検出結果を前記判定部へ出力し、
各前記演算器は、それぞれに対応する前記入力保持部に入力された値を用いて演算を実行し、
前記判定部は、前記検出結果が誤り未検出の場合、前記判定を実行する
ことを特徴とする請求項１又は２に記載の並列処理装置。
【請求項４】
各前記演算器が実行する前記演算は、電力計算であることを特徴とする請求項１〜３のいずれか一つに記載の並列処理装置。
【請求項５】
各前記演算器が行う演算はそれぞれ連結されてまとまった全体演算に含まれ、
前記全体演算の最後の前記演算器以外の前記演算器に対応する前記判定部から出力された前記確定演算結果は次の演算を行う前記演算器へ入力され、
前記全体演算の最後の前記演算器に対応する前記判定部から出力された前記確定演算結果を用いて所定の制御を行う制御実行部をさらに有する
ことを特徴とする請求項１〜４のいずれか一つに記載の並列処理装置。
【請求項６】
前記並列処理装置は、複数の電力モニタ素子を備え、
前記全体演算は、各前記電力モニタ素子から取得した消費電力からそれぞれの平均消費電力値を算出し、前記平均消費電力値の合計が閾値を上回るか否かを判定する演算であり、
前記制御実行部は、前記平均消費電力値が閾値を上回ることを前記確定演算結果が示す場合、省電力制御を実行する
ことを特徴とする請求項５に記載の並列処理装置。
【請求項７】
演算開始信号を受信し、
演算器から演算結果を繰り返し受信し、
連続して受信する前記演算結果が同じ算出値を有する場合、前記演算器による演算が完了したと判定し、
前記算出値を確定演算結果として出力する
ことを特徴とする演算処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、並列処理装置及び演算処理方法に関する。
【背景技術】
【０００２】
データセンタ等の施設には、サーバなどの多数の情報処理装置が設置される。情報処理装置の消費電力は、ＣＰＵ（Central  Processing  Unit）などの演算処理装置及びメモリの数の増加等に伴い、増加が著しい。そのため、近年、施設全体の消費電力を抑制する省電力化の要望が増えている。
【０００３】
特に、近年の高性能化に伴い、ＣＰＵによる消費電力がサーバ全体で占める割合は大きくなっている。そこで、消費電力抑制の要望に応えるため、ＣＰＵに省電力機能が搭載されることが多い。例えば、省電力機能としては、ＣＰＵに印加される電源電圧又はＣＰＵが用いるクロックの周波数を低下させるものがある。電源電圧又はクロック周波数を低下させることでＣＰＵは省電力モードに移行し、消費電力が抑制される。他にも、省電力機能として、ＣＰＵの電源を強制的に遮断する方法もある。
【０００４】
ＣＰＵの省電力機能の動作として以下のような動作が行われる。情報処理装置は、各ＣＰＵに設けられた電力モニタでＣＰＵの消費電力量を監視する。そして、平均消費電力値が設定上限値を超えた場合に、情報処理装置は、ＣＰＵの省電力モードへの移行又はＣＰＵ電源の強制的な遮断により、全体の消費電力を制限する。複数の電力モニタから得られる消費電力値を基に時間毎のシステムの平均消費電力値の取得方法としては、ＦＰＧＡ（Field  Programmable  Gate  Array）を使ってハードウェアで算出する方法がある。
【０００５】
平均消費電力値を算出する計算回路は、ＦＰＧＡ内に組み込まれた加算、減算及び乗算の可能な回路部品であるＤＳＰ（Digital  Signal  Processing）演算器を複数組み合わせることで実現される。ＤＳＰ演算器は、パイプライン構造を有し、クロックサイクル毎に計算し続けて計算結果を更新し続ける。
【０００６】
ただし、このような計算回路では、電力モニタから得られる消費電力値から時間毎の平均消費電力値を算出する際に、中性子線などの影響によりデータ化けが発生する可能性がある。データ化けが発生した場合、計算回路が誤った平均消費電力値を算出することが考えられる。そして、平均消費電力値に誤りがあると、結果的に誤った制御判定を行ってしまう。そこで、情報処理装置は、データの誤りが発生した場合にも、正確な平均消費電力を算出することが求められる。
【０００７】
データの誤りによる間違った演算を抑制する技術として、論理回路からの書き込みデータと書き込みデータを反転させた反転データとを比較し、互いに異なる場合に書き込みデータを出力する従来技術がある。また、データを保持した状態で、入力された入力データと入力データに遅延を与えて入力された遅延データとを比較し、入力データと遅延データとが異なる場合には、保持するデータを保持し続ける従来技術がある。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００７−１７９４５０号公報
【特許文献２】特開２０１２−１５７０６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、個々のＤＳＰ演算器には、パリティなどの誤り検出及び訂正機構が存在しないことが一般的である。データの誤りが発生する場合、誤り訂正などを用いてデータを訂正する方法が考えられるが、ＤＳＰ演算器単体では、誤り訂正を行うことは困難である。また、ＤＳＰ演算器を組み合わせて、誤り検出ビット入りの演算回路を作成することは複雑で回路規模も大きくなるため実現困難である。そのため、ＤＳＰ演算器を用いて制御を行う並列処理装置おいて、正確な演算結果に基づく適切な制御を行うことは困難である。
【００１０】
また、書き込みデータと反転データとの比較結果に基づき出力するデータを決定する場合、単なる反転データとの差分ではデータの誤りについて妥当な判定を得ることは難しく、正確な演算結果に基づく適切な制御を行うことは困難である。また、入力データと遅延データとの比較であっても、いずれのデータが正しいかの判定は難しく、正確性な演算結果に基づく適切な制御を行うことは困難である。
【００１１】
開示の技術は、上記に鑑みてなされたものであって、回路規模を抑えつつ適切な制御を行う並列処理装置及び演算処理方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本願の開示する並列処理装置及び演算処理方法の一つの態様において、並列処理装置は、１つ又は複数の演算器及び各前記演算器にそれぞれ対応する１つ又は複数の演算結果判定部を備える。前記演算結果判定部は、前記演算器から演算結果を繰り返し受信する受信部と、前記受信部が連続して受信する前記演算結果が同じ算出値を有する場合、前記演算器による演算が完了したと判定し、前記算出値を確定演算結果として出力する判定部とを備える。
【発明の効果】
【００１３】
１つの側面では、本発明は、回路規模を抑えつつ適切な制御を行うことができる。
【図面の簡単な説明】
【００１４】
【図１】図１は、並列処理装置の概略構成図である。
【図２】図２は、乗算テーブルを用いた演算を説明するための図である。
【図３】図３は、実施例に係るＦＰＧＡの詳細を表すブロック図である。
【図４】図４は、ＤＳＰ演算器の一例の回路図である。
【図５】図５は、加算を行うＤＳＰ演算器の一例の回路図である。
【図６】図６は、減算を行うＤＳＰ演算器の一例の回路図である。
【図７】図７は、乗算を行うＤＳＰ演算器の一例の回路図である。
【図８】図８は、ＤＳＰ入力保持部によるデータ入力開始の状態を表す図である。
【図９】図９は、１クロック後の状態を表す図である。
【図１０】図１０は、２クロック後の状態を表す図である。
【図１１】図１１は、３クロック後の状態を表す図である。
【図１２】図１２は、４クロック後の状態を表す図である。
【図１３】図１３は、５クロック後の状態を表す図である。
【図１４】図１４は、１つのＤＳＰ演算器で行われる演算処理のフローチャートである。
【発明を実施するための形態】
【００１５】
以下に、本願の開示する並列処理装置及び演算処理方法の実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示する並列処理装置及び演算処理方法が限定されるものではない。
【実施例１】
【００１６】
図１は、並列処理装置の概略構成図である。並列処理装置１は、ＦＰＧＡ１０、複数のノード２０及び制御用コントローラ３０を有する。
【００１７】
ノード２０は、演算処理を実行するコンピュータである。ノード２０は、電力モニタ素子２１及びＣＰＵ２２を有する。ＣＰＵ２２は、演算処理を実行する。電力モニタ素子２１は、ＣＰＵ２２の消費電力を監視する。そして、電力モニタ素子２１は、ＣＰＵ２２の消費電力の計測値をＦＰＧＡ１０へ出力する。
【００１８】
制御用コントローラ３０は、並列処理装置１の全体の管理を行う。例えば、制御用コントローラ３０は、後述する演算結果の判定に用いる閾値の設定及び消費電力の監視間隔の設定を行う。また、制御用コントローラ３０は、電力モニタ素子２１の立ち上げや監視を行う。本実施例では、制御用コントローラ３０は、演算結果の判定に用いる消費電力の監視を５ｍｓ間隔で行うと設定する。
【００１９】
ＦＰＧＡ１０は、各ノード２０のそれぞれの電力モニタ素子２１から消費電力の値を５ｍｓ間隔で受信する。次に、ＦＰＧＡ１０は、取得した各ノード２０の消費電力から各ノード２０における予め決められた期間における平均電力を算出する。その後、ＦＰＧＡ１０は、全てのノード２０の平均電力の総和を算出する。そして、ＦＰＧＡ１０は、算出した平均電力の総和が設定された閾値より大きいか否かを判定する。平均電力の総和が閾値より大きい場合、ＦＰＧＡ１０は、各ノード２０に対して省電力制御を行う。具体的には、ＦＰＧＡ１０は、省電力制御としてＣＰＵ２２の動作の停止やＣＰＵ２２の消費電力の抑制処理などを実行する。
【００２０】
例えば、ＦＰＧＡ１０は、各ノード２０の消費電力を表す電力モニタ値をノード２０毎に加算して記憶する。ここで、ｎ回目の判定における加算結果であるＥＡ（Energy  Accumulator）値をＥＡ（ｎ）と表す。また、ＦＰＧＡ１０は、電力モニタ値の加算した数を記憶する。ここで、ｎ回目の加算されたサンプル数であるＳＣ（Sample  Count）値をＳＣ（ｎ）と表す。
【００２１】
ＦＰＧＡ１０は、ｎ回目の判定時の加算結果からｎ−１回目の判定時の加算結果を減算した値を、ｎ回目の判定時のサンプル数からｎ−１回目の判定時のサンプル数を減算した値で除算して、平均電力Ｐ（ｎ）を求める。すなわち、ＦＰＧＡ１０は、Ｐ（ｎ）＝（ＥＡ（ｎ）−ＥＡ（ｎ−１）／ＳＣ（ｎ）−ＳＣ（ｎ−１））という式により平均電力Ｐ（ｎ）を求める。
【００２２】
次に、ＦＰＧＡ１０は、各ノード２０の平均電力Ｐ（ｎ）の合計を算出する。そして、ＦＰＧＡ１０は、算出した合計値が閾値より大きいか否かを判定する。この時、ＦＰＧＡ１０は、除算を避けるため乗算を用いて判定を行う。例えば、ＦＰＧＡ１０は、図２に示す除数に相当する乗算テーブル１０１を用いて判定を行う。
【００２３】
図２は、乗算テーブルを用いた演算を説明するための図である。ＦＰＧＡ１０は、例えば図２に示す方法で、乗算により除算結果を取得する。
【００２４】
乗算テーブル１０１は、５ｍｓ間で採取されるサンプルの個数であるＳＣ（ｎ）−ＳＣ（ｎ−１）が取り得る範囲の各値に対応する逆数を保持する。例えば、図２では、ｉ〜ｉ＋５がＳＣ（ｎ）−ＳＣ（ｎ−１）が取り得る範囲である。ただし、この数は一例であり、ＳＣ（ｎ）−ＳＣ（ｎ−１）が取り得る範囲の値は、ノード数や計算スピードにより決定されることが好ましい。
【００２５】
マルチプレクサ１０２は、ＦＰＧＡ１０が有する演算器により算出されたＳＣ（ｎ）−ＳＣ（ｎ−１）の値の入力を受ける。マルチプレクサ１０２は、入力されたＳＣ（ｎ）−ＳＣ（ｎ−１）の値に対応する逆数を乗算テーブル１０１から取得して乗算器１０３へ出力する。
【００２６】
また、乗算器１０３は、ＦＰＧＡ１０が有する演算器により算出されたＥＡ（ｎ）−ＥＡ（ｎ−１）の値の入力を受ける。そして、乗算器１０３は、ＥＡ（ｎ）−ＥＡ（ｎ−１）とマルチプレクサ１０２から入力されたＳＣ（ｎ）−ＳＣ（ｎ−１）の値に対応する逆数とを乗算してＰ（ｎ）を算出する。そして、乗算器１０３は、算出したＰ（ｎ）を出力する。
【００２７】
さらに、図３を参照して、本実施例に係るＦＰＧＡ１０の詳細について説明する。図３は、実施例に係るＦＰＧＡの詳細を表すブロック図である。図３に示すように、ＦＰＧＡ１０は、電力モニタ値取得部１１、計算回路１２及び動作判定部１３を有する。
【００２８】
電力モニタ値取得部１１は、各ノード２０に配置されたそれぞれの電力モニタ素子２１から５ｍｓ間隔でＣＰＵ２２の消費電力を表す電力モニタ値を取得する。そして、電力モニタ値取得部１１は、取得した各ノード２０の電力モニタ値を計算回路１２へ出力する。
【００２９】
計算回路１２は、上述した平均電力の合計値の算出及び閾値との比較の処理を実行する。具体的には、計算回路１２は、それぞれ接続された複数のＤＳＰ演算器１２２を有する。各ＤＳＰ演算器１２２から出力される演算結果は、他のＤＳＰ演算器１２２の入力となる。ただし、図２に向かって右端に図示された、演算の最後のＤＳＰ演算器１２２から出力される演算結果は、動作判定部１３へ出力される。計算回路１２は、各ＤＳＰ演算器１２２による演算を用いてまとまった全体演算を実行する。
【００３０】
さらに、計算回路１２は、各ＤＳＰ演算器１２２の入力経路側にＤＳＰ入力保持部１２１が配置される。また、計算回路１２は、各ＤＳＰ演算器１２２の出力経路側にＤＳＰ妥当性確認部１２３が配置される。
【００３１】
ＤＳＰ演算器１２２は、それぞれがパイプラインの構造を有する。そして、ＤＳＰ演算器１２２は、クロックサイクル毎に計算をし続ける。図４は、ＤＳＰ演算器の一例の回路図である。ＤＳＰ演算器１２２は、レジスタ２０１〜２０７、加算器２０８及び２１０、並びに、乗算器２０９を有する。そして、ＤＳＰ演算器１２２では、回路２１１〜２１３のそれぞれは選択的にスルー可能である。ここで、主な演算毎にＤＳＰ演算器１２２の回路構成を説明する。
【００３２】
図５は、加算を行うＤＳＰ演算器の一例の回路図である。加算を行うＤＳＰ演算器１２２は、図５に示すように、図４に示したＤＳＰ演算器１２２における回路２１２をスルーさせることで実現される。レジスタ２０１、２０２及び２０４は、それぞれ値の入力を受ける。レジスタ２０１及び２０２は、保持した値を加算器２０８へ出力する。加算器２０８は、レジスタ２０１及び２０２から入力された値を加算し、加算結果をレジスタ２０５へ出力する。レジスタ２０５は、加算器２０８から値の入力を受ける。そして、レジスタ２０４及び２０５は、保持した値を加算器２１０へ出力する。加算器２１０は、レジスタ２０４及び２０５から入力された値を加算し、加算結果をレジスタ２０７へ出力する。レジスタ２０７は、加算器２１０から値の入力を受ける。その後、レジスタ２０７は、保持する値を出力する。ここで、図５では、３値の加算を行うＤＳＰ演算器１２２を示したが、このＤＳＰ演算器１２２は、レジスタ２０３への入力を０とすれば２値の加算を行うこともできる。
【００３３】
図６は、減算を行うＤＳＰ演算器の一例の回路図である。減算を行うＤＳＰ演算器１２２は、図６に示すように、図４に示したＤＳＰ演算器１２２における回路２１２及び２１３をスルーさせることで実現される。ここで、図６では、分かり易いように加算器２０８で減算が行われることを表すように図示した。レジスタ２０１及び２０２は、それぞれ値の入力を受ける。レジスタ２０１及び２０２は、保持した値を加算器２０８へ出力する。加算器２０８は、レジスタ２０１及び２０２から入力された値を減算し、減算結果をレジスタ２０５へ出力する。レジスタ２０５は、加算器２０８から値の入力を受ける。そして、レジスタ２０５は、保持した値をレジスタ２０７へ出力する。レジスタ２０７は、レジスタ２０５から値の入力を受ける。その後、レジスタ２０７は、保持する値を出力する。
【００３４】
図７は、乗算を行うＤＳＰ演算器の一例の回路図である。乗算を行うＤＳＰ演算器１２２は、図７に示すように、図４に示したＤＳＰ演算器１２２における回路２１１及び２１３をスルーさせることで実現される。レジスタ２０１及び２０３は、それぞれ値の入力を受ける。レジスタ２０１及び２０３は、保持した値を乗算器２０９へ出力する。乗算器２０９は、レジスタ２０１及び２０３から入力された値を乗算し、乗算結果をレジスタ２０６へ出力する。レジスタ２０６は、乗算器２０９から値の入力を受ける。そして、レジスタ２０６は、保持した値をレジスタ２０７へ出力する。レジスタ２０７は、レジスタ２０６から値の入力を受ける。その後、レジスタ２０７は、保持する値を出力する。
【００３５】
このように、いずれの演算の場合でも、ＤＳＰ演算器１２２は、値の入力を１クロック目とした場合、４クロック目に演算結果を出力する。
【００３６】
図３に戻って説明を続ける。ＤＳＰ入力保持部１２１は、電力モニタ値取得部１１又は１つ前の演算を行うＤＳＰ演算器１２２に接続されたＤＳＰ妥当性確認部１２３のいずれか一方もしくは双方からデータの入力を５ｍｓ間隔で受ける。ここで、電力モニタ値取得部１１から送信されるデータは、パリティを有する。また、ＤＳＰ妥当性確認部１２３が出力するデータも、パリティを有する。このパリティが、「誤り検出情報」の一例にあたる。
【００３７】
ＤＳＰ入力保持部１２１は、５ｍｓ間隔で行われるデータの入力が確定すると、入力確定及び入力データの保持開始を自己が接続するＤＳＰ演算器１２２に接続するＤＳＰ妥当性確認部１２３へ出力する。さらに、ＤＳＰ入力保持部１２１は、入力されたデータのパリティをチェックする。
【００３８】
データに誤りが検出された場合、ＤＳＰ入力保持部１２１は、データに誤りが発生したことを示す通知を、自己が接続するＤＳＰ演算器１２２に接続されたＤＳＰ妥当性確認部１２３へ出力する。その後、ＤＳＰ入力保持部１２１は、データの再取得の要求をＤＳＰ妥当性確認部１２３から受ける。その後、ＤＳＰ入力保持部１２１は、データの再送をデータの出力元である電力モニタ値取得部１１又はＤＳＰ妥当性確認部１２３のいずれか一つもしくは双方へ通知し、新たにデータを取得する。
【００３９】
一方、データに誤りが検出されなかった場合、ＤＳＰ入力保持部１２１は、データが正しいことを示すパリティＯＫの通知を、自己が接続するＤＳＰ演算器１２２に接続されたＤＳＰ妥当性確認部１２３へ出力する。これにより、ＤＳＰ演算器１２２へ入力されるまでのデータには誤りが無いことが保証される。さらに、ＤＳＰ入力保持部１２１は、取得したデータからパリティを除いて、自己が接続するＤＳＰ演算器１２２へ出力する。ここで、ＤＳＰ入力保持部１２１は、次のデータが入力されるまでの５ｍｓの間、同じデータをクロック毎に出力し続ける。
【００４０】
ＤＳＰ演算器１２２は、ＤＳＰ入力保持部１２１からデータの入力を受ける。そして、ＤＳＰ演算器１２２は、ＤＳＰ入力保持部１２１からのデータの入力を１クロック目として、３クロックかけて演算を行う。その後、データの入力から４クロック目に、ＤＳＰ演算器１２２は、入力されたデータを用いた演算結果をＤＳＰ妥当性確認部１２３へ出力する。
【００４１】
ここで、ＤＳＰ演算器１２２は、クロック毎にＤＳＰ入力保持部１２１から同じデータの入力を受ける。そして、ＤＳＰ演算器１２２は、入力されたデータを用いて同じ演算を連続して繰り返す。すなわち、ＤＳＰ演算器１２２では、ＤＳＰ妥当性確認部１２３へ演算結果を出力したタイミングで、次の演算結果が最終段のレジスタ２０７に格納される。そして、ＤＳＰ演算器１２２は、演算結果をＤＳＰ妥当性確認部１２３へクロック毎に次々出力し続ける。５ｍｓ後にＤＳＰ入力保持部１２１へ新たなデータが入力されるまで、ＤＳＰ演算器１２２は、データ化けが発生せず計算が正しければ同じ値を出力することになる。
【００４２】
ＤＳＰ妥当性確認部１２３は、入力確定及び入力データの保持開始の通知をＤＳＰ入力保持部１２１から受けて演算処理の状態の進行を開始する。また、ＤＳＰ妥当性確認部１２３は、パリティチェックの結果の通知をＤＳＰ入力保持部１２１から受ける。そして、ＤＳＰ妥当性確認部１２３は、データの保持開始の通知を受けてから２クロック後に、パリティＯＫの通知を受けたか否かを判定する。ここで、パリティＯＫの通知を受けていない場合、すなわち、データに誤りが検出された場合、ＤＳＰ演算器１２２にそれまでに入力されたデータもその後に入力されるデータも誤りを含んでいる。そこで、ＤＳＰ妥当性確認部１２３は、データの再取得をＤＳＰ入力保持部１２１に要求する。その後、ＤＳＰ妥当性確認部１２３は、新たにＤＳＰ入力保持部１２１が取得したデータがＤＳＰ演算器１２２に入力されるのを待って、演算結果の判定を再度行う。
【００４３】
これに対して、パリティＯＫの通知受けている場合、データの保持開始の通知を受けてから４クロック後に、ＤＳＰ妥当性確認部１２３は、パリティＯＫであるデータを用いて行われた演算結果の値の入力をＤＳＰ演算器１２２から受ける。ＤＳＰ妥当性確認部１２３は、入力された演算結果の値を保持する。次のクロックで、ＤＳＰ妥当性確認部１２３は、保持するデータの次のデータを用いて行われた演算結果の値をＤＳＰ演算器１２２から取得する。
【００４４】
そして、ＤＳＰ妥当性確認部１２３は、保持する値と新たに取得した値とを比較する。保持する値と新たに取得した値とが同じ値であれば、ＤＳＰ妥当性確認部１２３は、データ化けが発生していないと判定する。そして、ＤＳＰ妥当性確認部１２３は、保持する演算結果の値を確定演算結果とする。その後、ＤＳＰ妥当性確認部１２３は、確定演算結果のパリティを作成し、確定演算結果にパリティを付加して、次の演算を行うＤＳＰ演算器１２２に接続されたＤＳＰ入力保持部１２１へ出力する。ただし、接続するＤＳＰ演算器１２２が全体演算の最後の演算を行う場合、ＤＳＰ妥当性確認部１２３は、パリティを付加した確定演算結果を動作判定部１３へ出力する。
【００４５】
これに対して、保持する値と新たに取得した値とが異なる値であれば、ＤＳＰ妥当性確認部１２３は、データ化けが発生したと判定する。この場合、ＤＳＰ妥当性確認部１２３は、そのタイミングでＤＳＰ演算器１２２に入力されたタイミングを１クロック目とした場合の２クロック目にあるデータを用いた演算結果を待ってデータ化けの判定を再度行う。このＤＳＰ妥当性確認部１２３が、「演算結果判定部」の一例にあたる。
【００４６】
ここで、図８〜１３を参照して、ＤＳＰ演算器１２２におけるデータの状態とともにＤＳＰ妥当性確認部１２３によるデータ化けの判定処理についてさらに説明する。ここでは、データがＤＳＰ入力保持部１２１によるデータの保持開始のタイミングから数えたクロック数を用いて説明する。図８は、ＤＳＰ入力保持部によるデータ入力開始の状態を表す図である。すなわち、図８の状態が、ここの説明で用いるクロックの基準となる状態である。図９は、１クロック後の状態を表す図である。図１０は、２クロック後の状態を表す図である。図１１は、３クロック後の状態を表す図である。図１２は、４クロック後の状態を表す図である。図１３は、５クロック後の状態を表す図である。
【００４７】
またここでは、乗算を行うＤＳＰ演算器１２２を例に説明する。この場合、ＤＳＰ演算器１２２は、レジスタ２０１，２０３，２０６及び２０７、並びに、乗算器２０９を有する。だたし、他の演算を行うＤＳＰ演算器１２２であっても、同様の処理となる。また、ＤＳＰ妥当性確認部１２３は、レジスタ２３１及び判定部２３２を有する。このレジスタ２３１が、「受信部」の一例にあたる。
【００４８】
１クロック後の図８の状態を状態＃１という。状態＃１では、ＤＳＰ入力保持部１２１は、パリティ付きのデータＡ及びパリティ付きのデータＢを保持する。ＤＳＰ入力保持部１２１は、データＡ及びデータＢの入力が確定すると、入力確定及び入力データの保持開始をＤＳＰ妥当性確認部１２３へ通知する。ＤＳＰ妥当性確認部１２３は、入力確定及び入力データの保持開始の通知を受けて演算処理の状態の進行を開始する。さらに、ＤＳＰ入力保持部１２１は、データＡ及びＢのそれぞれのパリティをチェックし、そのチェック結果をＤＳＰ妥当性確認部１２３へ出力する。そして、ＤＳＰ入力保持部１２１は、パリティを除いたデータＡ及びデータＢをＤＳＰ演算器１２２へ出力する。
【００４９】
ＤＳＰ入力保持部１２１からデータが出力されて１クロック後には、図９に示すように、レジスタ２０１にデータＡが格納され、レジスタ２０３にデータＢが格納される。１クロック後の図９の状態を状態＃２という。
【００５０】
次のクロックで、乗算器２０９がデータＡ及びデータＢの乗算を行い、乗算結果であるデータＡＢをレジスタ２０６へ出力する。そして、２クロック後には、図１０に示すようにレジスタ２０６に、データＡＢが格納される。２クロック後の図１０の状態を状態＃２という。このタイミングで、ＤＳＰ妥当性確認部１２３は、パリティＯＫの信号を受信したか否かを判定する。パリティＯＫの信号を受信していない場合、ＤＳＰ妥当性確認部１２３は、データの再取得をＤＳＰ入力保持部１２１へ要求する。その後、ＤＳＰ入力保持部１２１が新たに取得したデータＡ及びデータＢを保持した後に、状態＃１に戻って処理が繰り返される。これに対して、パリティＯＫの信号を受信した場合、ＤＳＰ妥当性確認部１２３は、ＤＳＰ演算器１２２から演算結果の値が出力されるのを待つ。
【００５１】
次のクロックでは、レジスタ２０６からレジスタ２０７にデータＡＢが移動する。そして、３クロック後には、図１１に示すように、レジスタ２０７にデータＡＢが格納された状態となる。３クロック後の図１１の状態を状態＃３という。ここで、レジスタ２０１に格納されたデータＡ及びレジスタ２０３に格納されたデータＢ、レジスタ２０６及び２０７に格納されたデータＡＢは、入力の段階ではデータが化けていなかったことがＤＳＰ入力保持部１２１によるパリティチェックにより確定している。
【００５２】
次のクロックでは、ＤＳＰ妥当性確認部１２３は、レジスタ２０７に格納されたデータＡＢを取得し、レジスタ２３１の中に格納する。このレジスタ２０７からレジスタ２３１へ送られるデータＡＢが、「算出値」の一例にあたる。これにより、４クロック後には、図１２の状態となる。４クロック後の図１２の状態を状態＃４という。この時、レジスタ２０６には、次に入力されたデータＡ及びデータＢを用いた次の演算結果であるデータＡＢが格納される。ＤＳＰ妥当性確認部１２３は、過剰チェックを回避するため、パリティチェックは行わない。
【００５３】
さらに、次のクロックでＤＳＰ妥当性確認部１２３の判定部２３２は、レジスタ２３１に格納されたデータＡＢとレジスタ２０７に格納されたデータＡＢとを比較する。すなわち、５クロック後に、図１３に示すように、判定部２３２は、連続する２つの値の比較を行う。５クロック後の図１３の状態は、状態＃５という。
【００５４】
それぞれのデータＡＢの値が一致しない場合、判定部２３２は、演算結果が確定していないと判定する。そして、判定部２３２は、そのタイミングでパリティＯＫの確認を行う対象となる状態＃２にあるデータＡＢを待ってデータ化けの判定を再開する。すなわち、演算処理が２クロック後の状態＃２からやり直される。
【００５５】
これに対して、それぞれのデータＡＢの値が一致した場合、判定部２３２は、データＡＢを確定演算結果とする。そして、判定部２３２は、レジスタ２３１に格納された確定演算結果であるデータＡＢを取得してパリティを生成し、生成したパリティを付加したデータＡＢを他のＤＳＰ演算器１２２に接続するＤＳＰ入力保持部１２１へ出力する。これにより、ＤＳＰ演算器１２２による１回の演算処理が終了する。
【００５６】
計算回路１２は、図２に示した乗算テーブル１０１及び図５〜７に示したＤＳＰ演算器１２２の組み合わせにより、各ノード２０の平均電力の合計を算出する。ここで、図３では、乗算テーブル１０１及びマルチプレクサ１０２を省略して記載したが、実際には、除算を行う場合には、乗算テーブル１０１及びマルチプレクサ１０２と、図７に示した乗算を行うＤＳＰ演算器１２２とを組にして演算が行われる。
【００５７】
また、全体演算の最後の演算を行うＤＳＰ演算器１２２に接続されるＤＳＰ妥当性確認部１２３の判定部２３２は、平均電力の合計が閾値以下か否かの判定も実行する。そして、当該判定部２３２は、平均電力の合計が閾値以下か否かを表す確定演算結果を動作判定部１３へ出力する。
【００５８】
図３に戻って説明を続ける。動作判定部１３は、計算回路１２で実行される全体演算の最後の演算を行うＤＳＰ演算器１２２に接続されたＤＳＰ妥当性確認部１２３から、確定演算結果の入力を受ける。平均電力の合計が閾値以下であることを確定演算結果が示す場合、動作判定部１３は、各ノード２０の現在の動作の継続を決定する。この場合、動作判定部１３は、単に動作制御処理を終了する。
【００５９】
これに対して、平均電力の合計が閾値を超えていることを確定演算結果が示す場合、動作判定部１３は、消費電力の抑制制御の実行を決定する。そして、動作判定部１３は、消費電力抑制動作の実行又は強制電源切断などの省電力制御の実行を各ノード２０に指示ずる。この動作判定部１３が、「制御実行部」の一例にあたる。
【００６０】
次に、図１４を参照して、演算処理の流れについて説明する。図１４は、１つのＤＳＰ演算器で行われる演算処理のフローチャートである。ここでも、乗算を行うＤＳＰ演算器１２２を例に説明する。
【００６１】
ＤＳＰ入力保持部１２１は、接続するＤＳＰ演算器１２２が演算に使用するデータの５ｍｓ間隔で行われる入力が確定したか否かを判定する（ステップＳ１）。確定していない場合（ステップＳ１：否定）、ＤＳＰ入力保持部１２１は、出力中のデータの出力を継続しつつ５ｍｓ間隔の次のデータの入力が確定するまで待機する。
【００６２】
これに対して、５ｍｓ間隔のデータの入力が確定した場合（ステップＳ１:肯定）、ＤＳＰ入力保持部１２１は、入力データの保持を開始する。そして、ＤＳＰ入力保持部１２１は、入力確定及び入力データの保持開始をＤＳＰ妥当性確認部１２３へ出力する。さらに、ＤＳＰ入力保持部１２１は、取得したデータのパリティをチェックし、データに誤りが無ければパリティＯＫの通知をＤＳＰ妥当性確認部１２３へ出力する。そして、ＤＳＰ入力保持部１２１は、保持したデータをＤＳＰ演算器１２２へ出力する。ＤＳＰ演算器１２２は、データの入力をＤＳＰ入力保持部１２１から受けてレジスタ２０１及び２０３にデータが格納されて状態＃１に遷移する（ステップＳ２）。
【００６３】
次に、ＤＳＰ演算器１２２は、レジスタ２０１及び２０３に格納されたデータを乗算器２０９を用いて加算しレジスタ２０６へ出力する。この時、ＤＳＰ妥当性確認部１２３は、パリティＯＫの通知を受けているか否かを判定する（ステップＳ３）。パリティＯＫの通知を受けていない場合（ステップＳ３：否定）、ＤＳＰ妥当性確認部１２３は、データの再取得をＤＳＰ入力保持部１２１へ要求し、その後、ＤＳＰ入力保持部１２１から新たなデータがレジスタ２０１及び２０２が入力されてステップＳ２へ戻る。
【００６４】
これに対して、パリティＯＫの通知を受けた場合（ステップＳ３:肯定）、ＤＳＰ演算器１２２は、データをレジスタ２０６に格納して状態＃２へ遷移する（ステップＳ４）。
【００６５】
次に、ＤＳＰ演算器１２２は、データをレジスタ２０６からレジスタ２０７へ移動し、レジスタ２０７にデータを格納して状態＃３へ遷移する（ステップＳ５）。
【００６６】
次に、ＤＳＰ演算器１２２は、レジスタ２０７に格納されたデータをＤＳＰ妥当性確認部１２３へ出力する。ＤＳＰ妥当性確認部１２３は、ＤＳＰ演算器１２２から入力されたデータをレジスタ２３１に格納し状態＃４へ遷移する（ステップＳ６）。
【００６７】
次に、ＤＳＰ妥当性確認部１２３は、レジスタ２３１に格納されたデータとレジスタ２０７に格納されたデータとが一致するか否かを判定する（ステップＳ７）。データが一致しない場合（ステップＳ７：否定）、ＤＳＰ妥当性確認部１２３は、ステップＳ４へ戻る。すなわち、ＤＳＰ演算器１２２及びＤＳＰ妥当性確認部１２３は、ＤＳＰ入力保持部１２１からのパリティＯＫの通知の有無を確認した段階である状態＃２の段階にあるデータの処理を行う。
【００６８】
これに対して、データが一致する場合（ステップＳ７：肯定）、ＤＳＰ妥当性確認部１２３は、演算結果を確定し、レジスタ２３１に格納されたデータのパリティを作成し、そのデータにパリティを付加して状態＃５に遷移する（ステップＳ８）。そして、ＤＳＰ妥当性確認部１２３は、確定した演算結果としてパリティを付加したデータを他のＤＳＰ演算器１２２に接続されたＤＳＰ入力保持部１２１へ出力する。
【００６９】
以上に説明したように、本実施例に係る計算回路は、各演算器から出力された演算結果の値が続けて同じ値となった場合に、演算結果を確定し、連続する演算結果の値が異なる場合は、連続する演算結果が同じ値となるまで演算を繰返す。これにより、ＤＳＰ演算器を活用して回路規模を抑えつつ、データ化けに対する計算値の妥当性保証を実現することができる。また、パリティやＥＣＣ（Error  Check  Code）によるデータの保護は、多数ビットの同時化けまではカバーすることが困難である。すなわち、本実施例に係る計算回路による演算結果のチェック機能により、パリティやＥＣＣ（Error  Check  Code）によるデータの保護と同程度のデータの正確性を実現することができる。そして、データ化けを抑制することで、正確なデータを用いて省電力制御を行うことができ、省電力制御を適切に行うことができる。
【００７０】
また、以上では、省電力制御に用いられる演算について説明したが、本実施例に係るＤＳＰ演算器の演算結果の妥当性保証は、他の演算にも用いることができる。すなわち、本実施例に係る計算回路を用いることで、正確な演算結果を用いた適切な制御を実行することができる。
【符号の説明】
【００７１】
１  並列処理装置
１０  ＦＰＧＡ
１１  電力モニタ値取得部
１２  計算回路
１３  動作判定部
２０  ノード
２１  電力モニタ素子
２２  ＣＰＵ
３０  制御用コントローラ
１０１  乗算テーブル
１０２  マルチプレクサ
１０３  乗算器
１２１  ＤＳＰ入力保持部
１２２  ＤＳＰ演算器
１２３  ＤＳＰ妥当性確認部
【図１】
2020061124.tif 000003
【図２】
2020061124.tif 000004
【図３】
2020061124.tif 000005
【図４】
2020061124.tif 000006
【図５】
2020061124.tif 000007
【図６】
2020061124.tif 000008
【図７】
2020061124.tif 000009
【図８】
2020061124.tif 000010
【図９】
2020061124.tif 000011
【図１０】
2020061124.tif 000012
【図１１】
2020061124.tif 000013
【図１２】
2020061124.tif 000014
【図１３】
2020061124.tif 000015
【図１４】
2020061124.tif 000016