(57)【要約】【課題】演算装置による異常な処理の防止をより適切に行うこと。【解決手段】本願に係る演算装置は、アナログ回路を含む論理回路の組み合わせを変更することで所定の処理を実行可能な第１演算部と、所定の命令セットを実行可能な第２演算部とを有する演算装置であって、前記第１演算部は、前記論理回路を組み合わせることで、前記第２演算部が実行する処理を監視する監視処理と、前記第２演算部が実行する処理が所定の条件を満たした場合は、前記第２演算部による処理の実行を中断させる中断処理とを実行することを特徴とする。【選択図】図１
2019204365.tif 000002
【特許請求の範囲】
【請求項１】
アナログ回路を含む論理回路の組み合わせを変更することで所定の処理を実行可能な第１演算部と、所定の命令セットを実行可能な第２演算部とを有する演算装置であって、
前記第１演算部は、前記論理回路を組み合わせることで、
前記第２演算部が実行する処理を監視する監視処理と、
前記第２演算部が実行する処理が所定の条件を満たした場合は、前記第２演算部による処理の実行を中断させる中断処理と
を実行することを特徴とする演算装置。
【請求項２】
前記第１演算部は、前記論理回路を組み合わせることで、
前記第２演算部が実行する処理が所定の条件を満たした場合は、前記監視処理と前記中断処理とを実行するための論理回路の組み合わせを変更する変更処理
を実行することを特徴とする請求項１に記載の演算装置。
【請求項３】
前記変更処理は、前記第２演算部が実行する処理が所定の条件を満たす度に、前記論理回路の組み合わせを変更する
ことを特徴とする請求項２に記載の演算装置。
【請求項４】
アナログ回路を含む論理回路の組み合わせを変更することで所定の処理を実行可能な第１演算部と、所定の命令セットを実行可能な第２演算部とを有する演算装置が、前記第１演算部が有する前記論理回路を組み合わせることで実行する中断方法であって、
前記第２演算部が実行する処理を監視する監視工程と、
前記第２演算部が実行する処理が所定の条件を満たした場合は、前記第２演算部による処理の実行を中断させる中断工程と
を含むことを特徴とする中断方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演算装置および中断方法に関する。
【背景技術】
【０００２】
従来、演算装置による異常な処理を防ぐための対策が実施されている。このような技術の一例として、マイクロプロセッサが異常な分岐命令を実行した場合は、分岐命令後の数値データの読み込みを禁止することで、暴走を防ぐ技術が知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１１−２１２８２８号公報
【非特許文献】
【０００４】
【非特許文献１】“ＦＰＧＡのしくみと開発に使うソフトとハード”，丹下  昌彦＜インターネット＞http://toragi.cqpub.co.jp/Portals/0/backnumber/2009/03/p096-097.pdf（平成３０年５月１日検索）
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した技術では、異常な処理を適切に防ぐことができない場合がある。
【０００６】
例えば、上述した技術では、デジタル回路を用いてマイクプロセッサの動作を監視する。しかしながら、このようなデジタル回路がウイルスやハッカーにより操作された場合、適切にマイクロプロセッサの動作を監視することができなくなる。
【０００７】
本願は、上記に鑑みてなされたものであって、演算装置による異常な処理の防止をより適切に行うことを目的とする。
【課題を解決するための手段】
【０００８】
本願に係る演算装置は、アナログ回路を含む論理回路の組み合わせを変更することで所定の処理を実行可能な第１演算部と、所定の命令セットを実行可能な第２演算部とを有する演算装置であって、前記第１演算部は、前記論理回路を組み合わせることで、前記第２演算部が実行する処理を監視する監視処理と、前記第２演算部が実行する処理が所定の条件を満たした場合は、前記第２演算部による処理の実行を中断させる中断処理とを実行することを特徴とする。
【発明の効果】
【０００９】
実施形態の一態様によれば、演算装置による異常な処理の防止をより適切に行うことができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施形態に係る演算装置の一例を示す図である。
【図２】図２は、実施形態に係る演算装置の構成例を示す図である。
【図３】図３は、実施形態に係る処理の流れの一例を説明するフローチャートである。
【発明を実施するための形態】
【００１１】
以下に、本願に係る演算装置および中断方法を実施するための形態（以下、「実施形態」と記載する。）について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る演算装置および中断方法が限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
【００１２】
〔１−１．演算装置の一例〕
まず、図１を用いて、演算装置の一例について説明する。図１は、実施形態に係る演算装置の一例を示す図である。
【００１３】
演算装置１００は、以下に説明する演算処理を実行する演算装置である。ここで、演算装置１００は、製造後に利用者が内部の論理回路を定義あるいは変更することができる集積回路であり、所謂ＰＬＤ（Programmable  Logic  Device）である。
【００１４】
例えば、演算装置１００は、所定の命令セットを実行可能なプロセッサ１１０と、ＦＰＧＡ（Field-Programmable  Gate  Array）１５０とを有する。プロセッサ１１０は、演算装置１００が有するプロセッサであり、例えば、ＡＲＭアーキテクチャやＰＯＷＥＲアーキテクチャを採用したプロセッサ若しくはマイクロプロセッサである。すなわち、プロセッサ１１０は、デジタル回路により構成される。そして、プロセッサ１１０は、ＦＰＧＡと連携することで、各種の演算処理を実行する。
【００１５】
例えば、プロセッサ１１０は、プロセッサコア１１１とキャッシュメモリ１１２とを有する。プロセッサコア１１１は、論理演算や四則演算を実現する所謂コアであり、ＡＬＵ（Arithmetic  Logic  Unit）から構成される算術論理演算装置により実現される。キャッシュメモリ１１２は、プロセッサ１１０が有する補助記憶装置である。より具体的には、キャッシュメモリ１１２は、演算装置１００がアクセス可能な主記憶装置２００（例えば、図２参照）よりもプロセッサコア１１１が高速にアクセスすることができる記憶装置であり、所謂キャッシュメモリである。
【００１６】
ＦＰＧＡ１５０は、外部装置ＯＡからの指示に従って、回路構成を変更可能な演算装置である。例えば、ＦＰＧＡは、アナログ回路要素を含む。例えば、ＦＰＧＡには、プログラム可能な論理コンポ―ネットである複数の論理ブロックであって、アナログ回路により構成される論理ブロック、もしくは、アナログ回路とデジタル回路とを組み合わせた論理ブロックを有し、論理ブロック間が再構成可能な配線により相互接続されている。そして、ＦＰＧＡ１５０は、外部装置ＯＡから受付けたハードウェア記述言語（ＨＤＬ：Hardware  Description  Language）により、このような配線の接続を変更することで、各種の処理をハードウェアにより実現することができる。
【００１７】
すなわち、演算装置１００は、アナログ回路を含む論理回路の組み合わせを変更することで所定の処理を実行可能な第１演算部であるＦＰＧＡ１５０と、所定の命令セットを実行可能な第２演算部であるプロセッサ１１０とを有する。
【００１８】
〔１−２．中断処理の一例〕
ここで、従来のプロセッサとＦＰＧＡとを含む演算装置においては、デジタル回路により構成されるプロセッサ側がアナログ回路により構成されるＦＰＧＡ側の制御を実行していた。しかしながら、制御側をデジタル回路により構成した場合、ハッキングやウイルスの影響を受けやすくなる。この結果、プロセッサ側がＦＰＧＡ側の制御を実行した場合、ＦＰＧＡ側の処理の暴走を防ぐことができなくなる結果、演算装置１００による処理の暴走を許してしまう恐れがある。
【００１９】
そこで、演算装置１００は、アナログ回路により構成されるＦＰＧＡ１５０により、デジタル回路により構成されるプロセッサ１１０の制御を行う。より具体的には、ＦＰＧＡ１５０は、外部装置ＯＡから受付けたＨＤＬに従って回路を構成することで、プロセッサ１１０が実行する処理を監視する監視処理と、プロセッサ１１０が実行する処理が所定の条件を満たした場合は、プロセッサ１１０による処理の実行を中断させる中断処理とを実行する。例えば、ＦＰＧＡ１５０は、プロセッサ１１０による処理の実行をモニタリングする。そして、ＦＰＧＡ１５０は、プロセッサ１１０により実行される処理の内容が通常の処理とは異なる場合、プロセッサ１１０による処理の実行を中断させる。
【００２０】
また、ＦＰＧＡ１５０は、論理回路を組み合わせることで、プロセッサ１１０が実行する処理が所定の条件を満たした場合は、監視処理と中断処理とを実行するための論理回路の組み合わせを変更する変更処理を実行する。例えば、ＦＰＧＡ１５０は、プロセッサ１１０が実行する処理が所定の条件を満たす度に、論理回路の組み合わせを変更する。すなわち、ＦＰＧＡ１５０は、プロセッサ１１０により実行させる処理の内容が通常の処理とは異なる場合は、プロセッサ１１０が実行する処理を中断させ、ワンタイムパスワード的にＦＰＧＡ１５０の回路構成を変更する。
【００２１】
このように、演算装置１００は、アナログ回路により構成されるＦＰＧＡ１５０により、デジタル回路により構成されるプロセッサ１１０の制御を行う。ここで、アナログ回路は、デジタル回路と比較して、ハッキングやウイルスによる影響を受け辛い。この結果、演算装置１００は、異常な処理の実行をより適切に防ぐことができる。
【００２２】
〔１−３．処理の流れの一例〕
以下、図１を用いて、演算装置１００が実行する処理の一例を説明する。まず、演算装置１００は、外部装置ＯＡから所定内容を受付ける（ステップＳ１）。このような場合、ＦＰＧＡ１５０は、以下の処理を実行するように論理回路の組み合わせを構成する。まず、ＦＰＧＡ１５０は、プロセッサ１１０に実行させる処理を構成する（ステップＳ２）。そして、ＦＰＧＡ１５０は、プロセッサ１１０に処理を実行させる（ステップＳ３）。このような場合、プロセッサ１１０は、ＦＰＧＡ１５０から受付けた処理を実行する（ステップＳ４）。
【００２３】
ここで、ＦＰＧＡ１５０は、所定の時間間隔で、プロセッサ１１０による処理の状態を監視する（ステップＳ５）。そして、ＦＰＧＡ１５０は、プロセッサ１１０が想定した処理とは異なる処理を実行しているか否かを判定する（ステップＳ６）。例えば、ＦＰＧＡ１５０は、通常の処理として予め定められた処理とは異なる処理を実行しているか否かを判定する。そして、ＦＰＧＡ１５０は、プロセッサ１１０が想定した処理とは異なる処理を実行していると判定した場合は、プロセッサ１１０に対して、処理の中断命令を出力する（ステップＳ７）。例えば、ＦＰＧＡ１５０は、プロセッサ１１０に対して、処理の終了を指示する割り込み命令を出力することで、処理を中断させる。
【００２４】
そして、ＦＰＧＡ１５０は、処理を中断させた場合は、回路構成を変更する（ステップＳ８）。すなわち、ＦＰＧＡ１５０は、プロセッサ１１０が異常な処理を実行した場合は、回路構成を変更することで、ハッキングやウイルスによる影響を最小限にとどめる。このような処理を実行することで、演算装置１００は、異常な処理の防止をより適切に行うことができる。
【００２５】
〔２．演算装置の構成〕
以下、上記した演算処理を実現する演算装置１００が有する機能構成の一例について説明する。図２は、実施形態に係る演算装置の構成例を示す図である。
【００２６】
例えば、演算装置１００は、プロセッサ１１０、入出力装置１２０、メモリコントローラ１３０、およびＦＰＧＡ１５０を有する。また、プロセッサ１１０は、プロセッサコア１１１とキャッシュメモリ１１２とを有する。
【００２７】
入出力装置１２０は、演算装置１００と外部装置ＯＡとの間の通信を中継する装置であり、所謂Ｉ／Ｏ（Input  Output）装置である。例えば、入出力装置１２０は、ＵＳＢ（Universal  Serial  Bus）、イーサーネット、ＳＤ（Secure  Digital）、ＵＡＲＴ（Universal  Asynchronous  Receiver/Transmitter）、ＳＰＩ（Serial  Peripheral  Interface）、Ｉ２Ｃ、ＧＰＩＯ（General-purpose  input/output）等、各種の通信規格に沿って外部装置ＯＡとの間の通信を制御する各種の入出力装置により実現される。
【００２８】
メモリコントローラ１３０は、演算装置１００による主記憶装置２００へのメモリアクセスを制御する。より具体的には、メモリコントローラ１３０は、ページング方式により主記憶装置２００に格納されたデータの読み出しや書込みを行う。なお、主記憶装置２００は、ＲＡＭ（Random  Access  Memory)、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子等の記憶装置によって実現される。
【００２９】
ＦＰＧＡ１５０は、外部装置ＯＡから受付けたＨＤＬに従ってアナログ回路により構成される論理回路の組み合わせを変更することで、以下の機能を実現する。そして、ＦＰＧＡ１５０は、以下の機能を発揮することで、プロセッサ１１０による演算処理の制御を行う。
【００３０】
例えば、ＦＰＧＡ１５０は、受付部１５１、変更部１５２とともに、制御ユニット１６０を構成するように、論理回路を組み合わせる。また、制御ユニット１６０には、演算制御部１６１、監視部１６２、および中断部１６３が含まれる。例えば、ＦＰＧＡ１５０は、外部装置ＯＡから受付けたＨＤＬに従い、受付部１５１、変更部１５２、演算制御部１６１、監視部１６２、および中断部１６３を構成するように、論理回路の組み合わせを行う。
【００３１】
受付部１５１は、プロセッサ１１０に実行させる処理を受付ける。例えば、受付部１５１は、外部装置ＯＡから、プロセッサ１１０に実行させる処理、すなわち、演算処理の内容を示す処理情報を受付ける。このような場合、受付部１５１は、受付けた処理情報を演算制御部１６１に引き渡す。
【００３２】
変更部１５２は、第２演算部であるプロセッサ１１０が実行する処理が所定の条件を満たした場合は、監視処理と中断処理とを実行するための論理回路の組み合わせを変更する変更処理を実行する。また、変更部１５２は、第２演算部であるプロセッサ１１０が実行する処理が所定の条件を満たす度に、論理回路の組み合わせを変更する。
【００３３】
例えば、変更部１５２は、中断部１６３によりプロセッサ１１０による処理の実行が中断された場合は、制御ユニット１６０を構成する論理回路の組み合わせを解除する。より具体的には、変更部１５２は、制御ユニット１６０を構成する論理回路間の接続を解除する。そして、変更部１５２は、制御ユニット１６０を構成する論理回路の組み合わせであって、前回とは異なる組み合わせを構成するように、論理回路間の接続を設定する。なお、変更部１５２は、このような新たな接続をプロセッサ１１０に特定させてもよく、外部装置ＯＡに特定させてもよい。
【００３４】
演算制御部１６１は、プロセッサ１１０に所定の演算処理を実行させる。例えば、演算制御部１６１は、受付部１５１から実行対象となる演算処理の内容を示す処理情報を受付けた場合、処理情報が示す演算処理をプロセッサ１１０に実行させる。
【００３５】
監視部１６２は、第２演算部であるプロセッサ１１０が実行する処理を監視する。例えば、監視部１６２は、所定の時間間隔で、プロセッサコア１１１が有するレジスタのうち所定のレジスタに格納されている値や、キャッシュメモリ１１２に登録されている情報を収集する。なお、監視部１６２による監視対象は、演算制御部１６１がプロセッサ１１０に実行させる演算処理の内容に応じて適宜変更されてもよい。例えば、演算制御部１６１は、処理情報が示す処理の内容に基づいて、監視対象となるレジスタのアドレスや、キャッシュメモリ１１２に保持されるデータのアドレス（所謂仮想アドレス）を設定する。そして、監視部１６２は、演算制御部１６１により設定されたアドレスのレジスタを監視対象としてもよく、キャッシュメモリ１１２に登録されたデータのうち、演算制御部１６１により設定されたアドレスのデータを監視対象としてもよい。
【００３６】
中断部１６３は、第２演算部であるプロセッサ１１０が実行する処理が所定の条件を満たした場合は、プロセッサ１１０による処理の実行を中断させる。例えば、中断部１６３は、監視部１６２が監視対象とするレジスタに登録されたデータや、キャッシュメモリ１１２に保持されたデータを取得する。そして、中断部１６３は、取得したデータが所定の条件を満たすか否かを判定する。すなわち、中断部１６３は、取得したデータが所定の条件を満たすか否かを判定することで、プロセッサ１１０が想定された処理とは異なる処理を実行しているか否かを判定する。例えば、中断部１６３は、定期的に取得されたデータの変遷が所定の条件を満たすか否かを判定する。
【００３７】
そして、中断部１６３は、取得したデータが所定の条件を満たす場合は、プロセッサ１１０による処理の実行を中断させる。例えば、中断部１６３は、プロセッサ１１０に対して処理を中断させる割り込み命令を出力する。この結果、プロセッサ１１０は、想定していない処理、すなわち、異常な処理の実行を中断することができる。
【００３８】
なお、中断部１６３が判定に用いる条件は、プロセッサ１１０に実行させる処理の内容に応じて任意の条件が設定可能である。例えば、演算制御部１６１は、処理情報が示す処理の内容に基づいて、監視対象となるレジスタに登録されるデータの変化や、キャッシュメモリ１１２に保持されるデータの変化に関する情報を条件として設定する。そして、中断部１６３は、監視対象となるデータが演算制御部１６１により設定された条件を満たすか否かを判定してもよい。
【００３９】
より具体的な例を挙げると、演算制御部１６１は、第１のアドレスで示されるレジスタに保持されるデータが変化し、第２のアドレスで示されるレジスタに保持されるデータが変化しない旨を条件として設定する。このような場合、監視部１６２は、第１のアドレスで示されるレジスタに保持されるデータと、第２のアドレスで示されるレジスタに保持されるデータとを所定の時間間隔で取得する。また、中断部１６３は、監視部１６２が所定の時間間隔で取得したデータを参照し、第１のアドレスで示されるレジスタに保持されるデータが変化し、第２のアドレスで示されるレジスタに保持されるデータが変化していないか否かを判定する。そして、中断部１６３は、第１のアドレスで示されるレジスタに保持されるデータが変化していない場合や、第２のアドレスで示されるレジスタに保持されるデータが変化した場合は、異常な処理が実行されているものとして、プロセッサ１１０による処理を中断させてもよい。
【００４０】
〔３．演算装置が実行する処理の流れの一例〕
次に、図３を用いて、ＦＰＧＡ１５０が実行する処理の流れの一例について説明する。図３は、実施形態に係る処理の流れの一例を説明するフローチャートである。
【００４１】
まず、ＦＰＧＡ１５０は、外部装置ＯＡから処理内容を受付ける（ステップＳ１０１）。このような場合、ＦＰＧＡ１５０は、プロセッサ１１０に実行させる処理を構成し（ステップＳ１０２）、プロセッサ１１０に処理を実行させる（ステップＳ１０３）。ここで、ＦＰＧＡ１５０は、想定外の処理が実行されているか否かを判定し（ステップＳ１０４）、想定外の処理が実行されている場合は（ステップＳ１０４：Ｙｅｓ）、プロセッサ１１０の処理を停止させる（ステップＳ１０５）。続いて、ＦＰＧＡ１５０は、制御ユニット１６０の回路構成を変更し（ステップＳ１０６）、処理を終了する。
【００４２】
一方、ＦＰＧＡ１５０は、想定外の処理が実行されていない場合は（ステップ１０４：Ｎｏ）、プロセッサ１１０による処理が完了したか否かを判定し（ステップＳ１０７）、処理が完了した場合は（ステップＳ１０７：Ｙｅｓ）、処理結果を出力する（ステップＳ１０８）。その後。ＦＰＧＡ１５０は、ステップＳ１０６を実行する。一方、ＦＰＧＡ１５０は、処理が完了していない場合は（ステップＳ１０７：Ｎｏ）、ステップＳ１０３を実行する。
【００４３】
〔４．その他〕
上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文章中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
【００４４】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【００４５】
また、上記してきた各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【００４６】
〔５．効果〕
上述したように、演算装置１００は、アナログ回路を含む論理回路の組み合わせを変更することで所定の処理を実行可能な第１演算部（例えば、ＦＰＧＡ１５０）と、所定の命令セットを実行可能な第２演算部（例えば、プロセッサ１１０）とを有する演算装置１００であって、第１演算部は、論理回路を組み合わせることで、第２演算部が実行する処理を監視する監視処理と、第２演算部が実行する処理が所定の条件を満たした場合は、第２演算部による処理の実行を中断させる。
【００４７】
また、演算装置１００が有する第１演算部は、論理回路を組み合わせることで、第２演算部が実行する処理が所定の条件を満たした場合は、監視処理と中断処理とを実行するための論理回路の組み合わせを変更する。例えば、第１演算部は、第２演算部が実行する処理が所定の条件を満たす度に、論理回路の組み合わせを変更する。
【００４８】
これらの処理の結果、演算装置１００は、例えば、ハッキングやウイルスによる影響が少ないアナログ回路により、プロセッサ１１０による演算処理を制御することができるので、異常な処理の防止をより適切に行うことができる。
【００４９】
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【００５０】
また、上記してきた「部（section、module、unit）」は、「手段」や「回路」などに読み替えることができる。例えば、生成部は、生成手段や生成回路に読み替えることができる。
【符号の説明】
【００５１】
１００  演算装置
１１０  プロセッサ
１１１  プロセッサコア
１１２  キャッシュメモリ
１２０  入出力装置
１３０  メモリコントローラ
１５０  ＦＰＧＡ
１５１  受付部
１５２  変更部
１６０  制御ユニット
１６１  演算制御部
１６２  監視部
１６３  中断部
２００  主記憶装置
ＯＡ  外部装置
【図１】
2019204365.tif 000003
【図２】
2019204365.tif 000004
【図３】
2019204365.tif 000005