(57)【要約】【課題】集積回路の回路情報を記憶するメモリの書き換えを行う際に、電源遮断等の異常が発生しても安全に元の状態に復旧する。【解決手段】ＦｌａｓｈＲＯＭ２は、装置全体の電源を投入した際にＦＰＧＡ１より読み出される回路情報が格納される第１の領域と、第１の領域の回路情報とは異なる回路情報を格納される第２の領域とを有し、装置全体の電源を投入した際は、ＦＰＧＡ１はＦｌａｓｈＲＯＭ２の第１の領域から回路情報を読み出し、この回路情報によりＦＰＧＡ１内部の回路を構成し、ＦｌａｓｈＲＯＭ２の第２の領域に正常な回路情報が格納されていることを検査し、正常な回路情報が格納されていると判断した場合は、ＦｌａｓｈＲＯＭ２のアドレスを変更する手段により、アドレスを変更し、ＦＰＧＡ１の回路情報の更新を行うことで、ＦｌａｓｈＲＯＭ２の第２の領域から回路情報を読み出し、この回路情報によりＦＰＧＡ１内部の回路を構成し、プロセッサ５のリセットを解除する。【選択図】図１
2012118904.tif 000002
【特許請求の範囲】
【請求項１】
装置全体の制御を行う制御手段と、回路情報を書換可能な集積回路と、前記集積回路の回路情報を保持するメモリ手段とを備える情報処理装置であって、
前記メモリ手段は、情報処理装置全体の電源を投入した際に前記集積回路より読み出される回路情報が格納される第１の領域と、第１の領域の回路情報とは異なる回路情報を格納される第２の領域とを有し、
情報処理装置全体の電源を投入した際は、前記集積回路は前記メモリ手段の第１の領域から回路情報を読み出し、この回路情報により前記集積回路内部の回路を構成し、前記メモリ手段の第２の領域に正常な回路情報が格納されていることを検査する手段を備え、
前記メモリ手段の第２の領域に回路情報が格納されていない、または正常な回路情報が格納されていないと判断した場合は、前記制御手段のリセットを解除し、他方、正常な回路情報が格納されていると判断した場合は、前記メモリ手段のアドレスを変更する手段により、アドレスを変更し、前記集積回路の回路情報の更新を行うことで、前記メモリ手段の第２の領域から回路情報を読み出し、この回路情報により前記集積回路内部の回路を構成し、前記制御手段のリセットを解除する、ことを特徴とする情報処理装置。
【請求項２】
前記メモリ手段は、前記第２の領域に有効な回路情報が格納されていることを示す起動コードを記憶する第３の領域と、前記第２の領域のチェックサムを記憶する第４の領域を有することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記メモリ手段は、前記第２の領域が複数あることを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記メモリ手段は、パラレルインターフェースであることを特徴とする請求項１乃至３のいずれか１つに記載の情報処理装置。
【請求項５】
前記回路情報が格納されていることを検査する手段は、前記集積回路内に構成されたプロセッサであることを特徴とする請求項１記載の情報処理装置。
【請求項６】
前記メモリ手段のアドレスを変更する手段は、前記集積回路内に構成されたプロセッサであることを特徴とする請求項１記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内部論理回路の書き換えが可能な集積回路を搭載した情報処理装置に関する。
【背景技術】
【０００２】
ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）等の内部回路を不揮発メモリの内容に応じて変更可能な集積回路において、製品に組み込んだまま不揮発メモリの内容を変更し、ＦＰＧＡ内部回路の構成を変更する技術がすでに知られている。
例えば、ＦＰＧＡとプロセッサにより構成される機器において、ネットワークからのＦＰＧＡ用データを受信し、ＦＰＧＡ用データを用いてプロセッサにてＦＰＧＡの内部回路構成を変更するという技術が知られている。
【０００３】
しかし、ＦＰＧＡのコンフィグレーションデータとプロセッサが読み出す命令コード及びデータを不揮発メモリに格納し、プロセッサがＦＰＧＡを介して不揮発メモリから命令コード、データを読み出すような構成の場合は、プロセッサはＦＰＧＡを介して不揮発メモリをアクセスすることとなる。
このような構成のため、ＦＰＧＡのコンフィグレーションデータが異常になってしまうと、プロセッサ自体が不揮発メモリにアクセスすることが不可能となり、システム自体が起動不可能となってしまう。
【０００４】
このため、プロセッサとＦＰＧＡにより構成される機器において、プロセッサからＦＰＧＡを経由して、ＦＰＧＡの回路情報を保持している不揮発メモリを書き換えて、ＦＰＧＡの回路構成を変更する場合、今までは書き換え途中に電源が遮断されたりすると不揮発メモリの内容が不完全な状態となり、ＦＰＧＡが正常に動作することができなくなり、その後ＦＰＧＡの回路が正常ではないため不揮発メモリをプロセッサから再度書き換えることができないといった問題があった。
また、回路情報を保持している不揮発メモリ中の別領域に新たな回路情報を追加する場合は、不揮発メモリから読み出す回路情報のアドレスを変更する必要があるため、ＦＰＧＡが搭載された基板のスイッチを操作する等の処理が必要であるため、例えば、ネットワーク経由で遠隔操作にてＦＰＧＡの回路情報を安全に変更するようなことはできないといった問題があった。
【０００５】
特許文献１には、ネットワーク経由でＦＰＧＡのコンフィグレーションメモリを書き換える目的で、ＦＰＧＡからのリセット信号に遅延を持たせるリセット回路から、コンフィグレーションのリセットをかける構成が開示されている。詳しくは、ＦＰＧＡへ入力される特定パターンのデータを検出して、その検出結果をトリガーとして、メモリに回路データを書き込み、リセット回路からリセット信号が入力されるタイミングで取りこんで、ＦＰＧＡのコアロジックを書換えるように構成が開示されている。
特許文献１では、ネットワーク経由でＦＰＧＡを書き換えることが可能であるが、安全にＦＰＧＡを書き換えることができないといった問題があった。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は、上記に鑑みてなされたもので、その目的としては、集積回路の回路情報を記憶するメモリの書き換えを行う際に、電源遮断等の異常が発生しても安全に元の状態に復旧することができる情報処理装置を提供することにある。
【課題を解決するための手段】
【０００７】
上記課題を解決するため、請求項１記載の発明は、装置全体の制御を行う制御手段と、回路情報を書換可能な集積回路と、前記集積回路の回路情報を保持するメモリ手段とを備える情報処理装置であって、前記メモリ手段は、情報処理装置全体の電源を投入した際に前記集積回路より読み出される回路情報が格納される第１の領域と、第１の領域の回路情報とは異なる回路情報を格納される第２の領域とを有し、情報処理装置全体の電源を投入した際は、前記集積回路は前記メモリ手段の第１の領域から回路情報を読み出し、この回路情報により前記集積回路内部の回路を構成し、前記メモリ手段の第２の領域に正常な回路情報が格納されていることを検査する手段を備え、前記メモリ手段の第２の領域に回路情報が格納されていない、または正常な回路情報が格納されていないと判断した場合は、前記制御手段のリセットを解除し、他方、正常な回路情報が格納されていると判断した場合は、前記メモリ手段のアドレスを変更する手段により、アドレスを変更し、前記集積回路の回路情報の更新を行うことで、前記メモリ手段の第２の領域から回路情報を読み出し、この回路情報により前記集積回路内部の回路を構成し、前記制御手段のリセットを解除する、ことを特徴とする。
【０００８】
請求項２記載の発明は、請求項１記載の発明において、前記メモリ手段は、前記第２の領域に有効な回路情報が格納されていることを示す起動コードを記憶する第３の領域と、前記第２の領域のチェックサムを記憶する第４の領域を有することを特徴とする。
【０００９】
請求項３記載の発明は、請求項１または２に記載の発明において、前記メモリ手段は、前記第２の領域が複数あることを特徴とする。
【００１０】
請求項４記載の発明は、請求項１乃至３のいずれか１つに記載の発明において、前記メモリ手段は、パラレルインターフェースであることを特徴とする。
【００１１】
請求項５記載の発明は、請求項１記載の発明において、前記回路情報が格納されていることを検査する手段は、前記集積回路内に構成されたプロセッサであることを特徴とする。
【００１２】
請求項６記載の発明は、請求項１記載の発明において、前記メモリ手段のアドレスを変更する手段は、前記集積回路内に構成されたプロセッサであることを特徴とする。
【発明の効果】
【００１３】
本発明によれば、集積回路の回路情報を記憶するメモリの書き換えを行う際に、電源遮断等の異常が発生しても安全に元の状態に復旧することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施形態に係る情報処理装置の全体構成を示すブロック図である。
【図２】図１に示すＦｌａｓｈＲＯＭ２のメモリマップの例を示す図である。
【図３】図１に示すＦｌａｓｈＲＯＭ２のアドレスを変更する回路構成を示す図である。
【図４】図１に示すＦＰＧＡ１とプロセッサ５との間に、プロセッサリセット信号が接続されていることを示す図である。
【発明を実施するための形態】
【００１５】
本発明の実施形態に係る情報処理装置の特徴について説明する。
本発明の実施形態に係る情報処理装置は、プロセッサとＦＰＧＡとにより構成される機器において、プロセッサからＦＰＧＡを介して、ＦＰＧＡの回路情報を記憶する不揮発メモリに対する書換処理を行う場合に、以下の特徴を有する。
【００１６】
ＦＰＧＡの回路情報を新しくする場合に、新しい回路情報を元の回路情報を記憶するメモリ領域に上書きするのではなく、元の回路情報とは別のメモリ領域に書き込み、起動時は、元の回路情報により起動し、追加した新しい回路情報領域に正しく書き込まれた回路情報があるかどうかを検査し、あれば回路情報を記憶するメモリ領域においてコンフィグレーションメモリのアドレス端子を制御し、新しいコンフィグレーションデータ領域において、再コンフィグレーションし、新しい回路情報でＦＰＧＡが起動し、プロセッサのリセットを解除することでプロセッサはＦＰＧＡを介して不揮発メモリから起動に必要なプログラムコードを読み出すことができ、システムを安全に起動でき、ＦＰＧＡを安全に書き換えることができる。
【００１７】
また、新しい回路情報がなければ、同様に、ＦＰＧＡがプロセッサのリセットを解除することで、プロセッサはＦＰＧＡを介して不揮発メモリから起動に要するプログラムコードを読み出すことができ、システムを安全に起動することができる。このように、メモリに新しいコンフィグレーションデータを書き込む場合に、電源遮断等が発生した場合でも安全に復旧することができることを特徴としている。
【００１８】
本発明の実施形態に係る情報処理装置について、図面を参照して説明する。
図１は本発明の実施形態に係る情報処理装置の全体構成を示すブロック図である。
図１に示すように、情報処理装置１００は、ＦＰＧＡ１、ＦｌａｓｈＲＯＭ２、ＳＤＲＡＭ３、ネットワークコントローラ４、プロセッサ５、ＬＡＮコネクタ６を備える。
ＦＰＧＡ１は、情報処理装置１００のコントローラであり、回路情報を書換可能な集積回路である。ＦｌａｓｈＲＯＭ２は、メモリ手段を構成し、ＦＰＧＡ１の回路情報およびプロセッサ５の命令コード及びデータが格納されている。ＦＰＧＡ１の初期起動回路情報は、ＦｌａｓｈＲＯＭ２の領域１に格納されている。
【００１９】
図２はＦｌａｓｈＲＯＭ２のメモリマップである。
追加の回路情報は、領域２、領域３へ格納される。領域２及び領域３に回路情報が正しく書き込まれていることを検査するためのチェックサムは領域５及び領域７に、領域２、３に有効な追加回路情報があることを示す起動コードは領域４、領域６にそれぞれ格納される。なお、本実施形態では、初期起動回路情報の領域１以外の追加領域として、領域２と領域３を示しているが、追加回路情報の領域は領域２である必要はない。
【００２０】
プロセッサ５の命令コード及びデータは、領域８に格納されている。ＳＤＲＡＭ３は、プロセッサ５が情報を処理するために実行する命令及びデータを格納する。ネットワークコントローラ４は外部ネットワークとの通信を行うために使用する。プロセッサ５は、制御手段を構成し、領域８に格納された、命令コード及びデータをＦＰＧＡ１を介して読み出し、情報処理装置１００の全体の制御を行う。情報処理装置１００は、電源投入後、正常に起動できた場合は、通常状態の制御として各種処理を行う。
【００２１】
次に、本情報処理装置１００に電源が投入され、稼動状態となるまでのフローを示す。
（１）電源ONにより、ＦＰＧＡ１がＦｌａｓｈＲＯＭ２の０番地から初期起動回路情報を読み出し、ＦＰＧＡ１内部の回路を構成するメモリに書き込んで行く。
（２）回路情報がＦＰＧＡ１に正常に書き込まれ起動すると、ＦＰＧＡ１はＦｌａｓｈＲＯＭ２の領域５からデータを読み出し、そのデータが起動コードでなければＦｌａｓｈＲＯＭ２の領域２に有効な回路情報がないと判断し、ＦＰＧＡ１は初期起動回路情報のまま、通常動作を行う。
【００２２】
このとき、ＦＰＧＡ１は図４に示すＲＳＴ端子をＨｉｇｈにして、プロセッサ５のリセットを解除する。このとき、ＦＰＧＡ１はＲＳＴ端子の制御を行うが、ＦＰＧＡ１のコンフィグレーション完了の信号を用いても構わない。続いて、プロセッサ５はＦＰＧＡ１を介してＦｌａｓｈＲＯＭ２の領域８から命令コードを読み出し動作を開始する。
【００２３】
（３）起動コードと一致した場合は、ＦｌａｓｈＲＯＭ２の領域２のチェックサムを算出する。
（４）次に、ＦＰＧＡ１は、ＦｌａｓｈＲＯＭ２の領域４に格納されているチェックサムを読み出す。
（５）ＦＰＧＡ１は、（３）で算出したチェックサムと（４）で読み出したチェックサムを比較し、合致すれば領域２に正常な回路情報があると判断し、ＦｌａｓｈＲＯＭ２の領域２が０番地になるようにＦｌａｓｈＲＯＭ２のアドレス端子を操作する。
【００２４】
図３は、図１に示すＦｌａｓｈＲＯＭ２のアドレスを変更する回路構成を示す図である。
上記（５）での処理は、具体的には、図３に示すように、アドレス線が０〜２０までの２MBのＦｌａｓｈＲＯＭ２の場合について、領域１が５１２KB、領域２と領域４および領域５が合わせて５１２KB、領域３と領域６および領域７が合わせて５１２KB、領域８が５１２KBの場合について説明する。
図４に示すように、領域２のアドレスを０番地とするために、ＦＰＧＡ１はデ−タ・フリップ・フロップであるＤＦＦ２０を１にセットし、ＤＦＦ２１を０にセットする。
【００２５】
なお、電源投入時はＲｅｓｅｔＩＣ３０によって、ＤＦＦ２０、ＤＦＦ２１はそれぞれ０にセットされており、ＦＰＧＡ１のＳＥＬ０、１はハイインピーダンス状態のため各セレクタはプルダウンにより０を選択している。これによって、ＦｌａｓｈＲＯＭ２のアドレス１９,２０に与えられる信号は０となり、電源投入時にＦＰＧＡ１はＦｌａｓｈＲＯＭ２の０番地から回路情報を読み出すようになっている。
【００２６】
（６）上記（５）により、ＦｌａｓｈＲＯＭ２のアドレス１９は１に、アドレス２０は０になっており、この状態でＦＰＧＡ１は再度回路情報の更新を行う。具体的には、ＦＰＧＡ１が持つ回路情報更新用の端子を自らセットする、または、ＦＰＧＡ１自身の電源を一旦遮断し、再度起動することで回路情報更新を促す。
（７）上記（６）によって再度回路情報がＦＰＧＡ１に書き込まれる際、ＦｌａｓｈＲＯＭ２のアドレス１９は１に、アドレス２０は０になっているため、ＦＰＧＡ１の回路情報は領域２から読み出されることになる。これによって、ＦＰＧＡ１は領域２の回路情報により正常に起動することが可能となる。
【００２７】
その後、ＦＰＧＡ１は図４に示すＲＳＴ端子をＨｉｇｈにして、プロセッサ５のリセットを解除する。
なお、このときＦＰＧＡ１はＲＳＴ端子の制御を行うが、ＦＰＧＡ１のコンフィグレーション完了の信号を用いても構わない。
続いて、プロセッサ５は、ＦＰＧＡ１を介してＦｌａｓｈＲＯＭ２の領域８から命令コードを読み出し動作を開始する。
【００２８】
次に、新たに回路情報を書き込む場合について説明する。
（１）プロセッサ５は、ＦＰＧＡ１及びネットワークコントローラ４を介し、ネットワーク経由で、新しい回路情報を取得し、ＳＤＲＡＭ３に書き込む。
（２）プロセッサ５は、ＦｌａｓｈＲＯＭ２の領域２にＳＤＲＡＭ３に格納した新しい回路情報を書き込む前に、領域２、４、５を消去する際は、まず領域４を消去し、次に、領域２、領域５と順に消去する。これにより安全にＦＰＧＡ１が起動できるようになる。
【００２９】
もし、領域２を先に消している最中に電源が遮断した場合、領域４が残っていると、ＦＰＧＡ１は領域２には回路情報があると判断してしまい、チェックサムの計算を行う。
ここで、万が一、チェックサムが一致してしまった場合は、不正な回路が書き込まれエラーとなってしまうためである。
【００３０】
（３）プロセッサ５は、ＦｌａｓｈＲＯＭ２の領域２にＳＤＲＡＭ３に格納した新しい回路情報を書き込むときは、まず始めに、領域２に回路情報を書き込む。続いて、チェックサムを計算し、領域5に計算結果のチェックサムを書き込む。最後に領域４に起動コードを書き込む。
この順番で書き込むことで、万が一書き込み中に電源が遮断された場合でも、領域４に起動コードがなければ、領域２には有効な回路情報が記憶されてないと判断できるので、領域１の回路情報で正常にＦＰＧＡ１は起動できる。
【００３１】
（４）回路情報の書き込みが完了した後は、図４に示すように、領域２アドレス０番地とするために、ＦＰＧＡ１はＤＦＦ２０を１にセットし、ＤＦＦ２１を０にセットする。
なお、電源投入時はＲｅｓｅｔＩＣ３０によって、ＤＦＦ２０、ＤＦＦ２１は０にセットされており、ＦＰＧＡ１のＳＥＬ０、１はハイインピーダンス状態のため各セレクタはプルダウンにより０を選択している。これによって、ＦｌａｓｈＲＯＭ２のアドレス１９,２０に与えられる信号は０となり、ＦＰＧＡ１はＦｌａｓｈＲＯＭ２の０番地から回路情報を読み出すようになっている。
【００３２】
（５）ＦｌａｓｈＲＯＭ２のアドレス１９は１に、アドレス２０は０になっており、この状態でＦＰＧＡ１は再度回路情報の更新を行う。具体的にはＦＰＧＡ１が持つ回路情報更新用の端子を自らセットする、または、ＦＰＧＡ１自身の電源を一旦遮断し、再度起動することで回路情報更新を促す。
（６）上記（５）によって再度回路情報がＦＰＧＡ１に書き込まれる際、ＦｌａｓｈＲＯＭ２のアドレス１９は１に、アドレス２０は０になっているため、ＦＰＧＡ１の回路情報は領域２から読み出されることになる。
【００３３】
これによって、ＦＰＧＡ１は領域２の回路情報により正常に起動することが可能となる。その後、ＦＰＧＡ１は図４に示すＲＳＴ端子をＨｉｇｈにして、プロセッサ５のリセットを解除する。
なお、このときＦＰＧＡ１はＲＳＴ端子の制御を行うが、ＦＰＧＡ１のコンフィグレーション完了の信号を用いても構わない。
続いて、プロセッサ５は、ＦＰＧＡ１を介してＦｌａｓｈＲＯＭ２の領域８から命令コードの読み出し動作を開始する。
以上により、ＦＰＧＡ１に新しい回路を追加する際、電源遮断等が発生しても、元の回路に影響を与えることがなく、また元の回路で安全に再起動することができるため、ＦＰＧＡ１の回路情報をネットワーク経由で安全に書き換えることが可能となる。
【００３４】
これによって、正常に動作することが保障されている回路情報が書き込まれているメモリ領域を消去することなく、新しい回路情報をメモリ領域へ追加できるため、メモリに新しい回路情報を書き込んでいる最中に電源が遮断でしても、次回の起動時は初期起動用の回路情報でＦＰＧＡが起動し、新しい回路情報の入ったメモリ領域を検査し、異常であると判断できるため、初期起動用の回路で正常に動作することができる。
【００３５】
本実施の形態によれば、メモリ手段は、情報処理装置全体の電源を投入した際にＦＰＧＡより読み出される回路情報が格納される第１の領域と、第１の領域の回路情報とは異なる回路情報を格納される第２の領域とを有し、情報処理装置全体の電源を投入した際は、ＦＰＧＡはメモリ手段の第１の領域から回路情報を読み出し、この回路情報によりＦＰＧＡ内部の回路を構成し、メモリ手段の第２の領域に正常な回路情報が格納されていることを検査する手段を備え、メモリ手段の第２の領域に回路情報が格納されていない、または正常な回路情報が格納されていないと判断した場合は、制御手段のリセットを解除し、他方、正常な回路情報が格納されていると判断した場合は、メモリ手段のアドレスを変更する手段により、アドレスを変更し、ＦＰＧＡの回路情報の更新を行うことで、メモリ手段の第２の領域から回路情報を読み出し、この回路情報によりＦＰＧＡ内部の回路を構成し、制御手段のリセットを解除することで、ＦＰＧＡの回路情報を記憶するメモリの書き換えを行う際に、電源遮断等の異常が発生しても安全に元の状態に復旧することができる。
【００３６】
本実施の形態によれば、メモリ手段は、第２の領域に有効な回路情報が格納されていることを示す起動コードを記憶する第３の領域と、第２の領域のチェックサムを記憶する第４の領域を有することで、第２の領域に有効な回路情報が格納されていることを検査することができる。
【００３７】
本実施の形態によれば、メモリ手段は、第２の領域が複数あることで、第１の領域の回路情報とは異なる回路情報を複数格納することができる。
【００３８】
本実施の形態によれば、メモリ手段は、パラレルインターフェースであることで、集積回路から与えられるアドレスを変更して、集積回路の回路情報を安全に更新することができる。
【００３９】
本実施の形態によれば、回路情報が格納されていることを検査する手段は、ＦＰＧＡ内に構成されたプロセッサであることで、ＦＰＧＡ内に内蔵されたプロセッサによりメモリ手段に回路情報が格納されていることを安全に検査することができ、構成チップの点数を削減することができる。
【００４０】
本実施の形態によれば、メモリ手段のアドレスを変更する手段は、ＦＰＧＡ内に構成されたプロセッサであることで、ＦＰＧＡ内に内蔵されたプロセッサにより、メモリ手段のアドレスを安全に変更することができる。
【符号の説明】
【００４１】
１  ＦＰＧＡ
２  ＦｌａｓｈＲＯＭ
３  ＳＤＲＡＭ
４  ネットワークコントローラ
５  プロセッサ
６  ＬＡＮコネクタ
２０,２１  ＤＦＦ
２２，２３  セレクタ
３０  ＲｅｓｅｔＩＣ
１００  情報処理装置
【先行技術文献】
【特許文献】
【００４２】
【特許文献１】特開２００２−３０５４３８号公報
【図１】
2012118904.tif 000003
【図２】
2012118904.tif 000004
【図３】
2012118904.tif 000005
【図４】
2012118904.tif 000006