(57)【要約】【課題】ＣＰＵマスター・コンフィギュレーションに先だって、プログラマブルロジックデバイスに必要な各回路構成データの整合性を確認し、装置の誤動作を未然に防止すること。【解決手段】ユーザが画像形成装置１００に第２コンフィグデータに対応する機能をインストールする場合、ＣＰＵ１０１が、第１コンフィグデータＩＤレジスタ３０８に保持されている第１コンフィグデータＩＤ４０８と、データ格納空間７００に記憶されている第２コンフィグデータに含まれる第２コンフィグデータＩＤ４０７とを比較し（Ｓ７１０〜Ｓ７１１）、比較の結果、ＩＤが一致する場合には第２コンフィグデータをＨＤＤ１０４に格納処理し（Ｓ７１２）、ＩＤが一致しない場合には第２コンフィグデータをＨＤＤ１０４に格納しない（Ｓ７１３）ように制御する。【選択図】図７
2017062537.tif 000002
【特許請求の範囲】
【請求項１】
回路構成されるために少なくとも２つの回路構成データが必要なプログラマブル処理部を有する情報処理装置であって、
前記プログラマブル処理部に設定されている第１の回路構成データに含まれる第１の識別子を保持する保持手段と、
第２の回路構成データを前記情報処理装置にインストールする場合に、前記保持手段に保持されている前記第１の識別子と、前記第２の回路構成データに含まれる第２の識別子とを比較する比較手段と、
前記比較手段による比較の結果、前記第１の識別子と前記第２の識別子が一致する場合には該第２の回路構成データをインストール可能に制御し、前記第１の識別子と前記第２の識別子が一致しない場合には該第２の回路構成データをインストール不可能に制御する制御手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記情報処理装置からアクセス可能な記憶領域に記憶されている１以上の第２の回路構成データからインストール対象となる第２の回路構成データを選択するための選択手段を有し、
前記比較手段は、前記第１の識別子と、前記選択手段で選択された第２の回路構成データに含まれる第２の識別子とを比較することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記プログラマブル処理部に設定可能な１以上の第２の回路構成データを格納しておくための格納手段と、
前記格納手段に格納されているいずれかの第２の回路構成データを前記プログラマブル処理部に設定する設定手段と、を有し、
前記制御手段は、前記第１の識別子と前記第２の識別子が一致する場合には該第２の回路構成データを前記格納手段に格納し、前記第１の識別子と前記第２の識別子が一致しない場合には該第２の回路構成データを前記格納手段に格納しない制御を行うことを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記情報処理装置からアクセス可能な記憶領域に記憶されている１以上の第２の回路構成データからインストール対象とする第２の回路構成データを選択するための選択手段を有し、
前記制御手段は、前記第１の識別子と前記第２の識別子が一致する場合には該第２の識別子を含む第２の回路構成データを前記選択手段で選択可能に制御し、前記第１の識別子と前記第２の識別子が一致しない場合には該第２の識別子を含む第２の回路構成データを前記選択手段で選択不可能に制御することを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記プログラマブル処理部に設定可能な１以上の第２の回路構成データを格納しておくための格納手段と、
前記格納手段に格納されているいずれかの第２の回路構成データを前記プログラマブル処理部に設定する設定手段と、を有し、
前記制御手段は、前記選択手段で選択された第２の回路構成データを前記格納手段に格納するように制御することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記プログラマブル処理部に設定される第１の回路構成データが更新された場合、前記格納手段に格納されている前記第２の回路構成データを、前記更新された第１の回路構成データに含まれる前記第１の識別子と一致する前記第２の識別子を含む、前記情報処理装置からアクセス可能な記憶領域から取得される第２の回路構成データで更新する更新手段を有することを特徴とする請求項３又は５に記載の情報処理装置。
【請求項７】
前記第１の回路構成データは、前記プログラマブル処理部の起動時に該プログラマブル処理部に設定されるものであり、
前記設定手段は、前記第２の回路構成データに対応する機能を実行するタイミングで、該第２の回路構成データを前記プログラマブル処理部に設定することを特徴とする請求項３、５、６のいずれか１項に記載の情報処理装置。
【請求項８】
前記第１の回路構成データに含まれる前記第１の識別子、および、該第１の識別子と一致する前記第２の識別子は、該第１の回路構成データに基づいて生成されることを特徴とする請求項１乃至７のいずれか１項に記載の情報処理装置。
【請求項９】
前記記憶領域は、前記情報処理装置がアクセス可能な装置が管理する記憶領域、又は、前記情報処理装置に接続される記憶装置の記憶領域であることを特徴とする請求項２または４に記載の情報処理装置。
【請求項１０】
前記情報処理装置は、画像処理装置であることを特徴とする請求項１乃至９のいずれか１項に記載の情報処理装置。
【請求項１１】
回路構成されるために少なくとも２つの回路構成データが必要なプログラマブル処理部を有する情報処理装置の制御方法であって、
第２の回路構成データを前記情報処理装置にインストールする場合に、前記プログラマブル処理部に設定されている第１の回路構成データに含まれる第１の識別子を保持する保持手段に保持されている前記第１の識別子と、前記第２の回路構成データに含まれる第２の識別子とを比較する比較ステップと、
前記比較ステップによる比較の結果、前記第１の識別子と前記第２の識別子が一致する場合には該第２の回路構成データをインストール可能に制御し、前記第１の識別子と前記第２の識別子が一致しない場合には該第２の回路構成データをインストール不可能に制御する制御ステップと、
を有することを特徴とする情報処理装置の制御方法。
【請求項１２】
コンピュータに、請求項１１に記載の制御方法を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブルロジックデバイスを備えた情報処理装置、情報処理装置の制御方法、及びプログラムに関するものである。
【背景技術】
【０００２】
ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ Ｇａｔｅ Ａｒｒａｙ）のコンフィギュレーション方法として、ＣＰＵをマスターデバイスとしてコンフィギュレーションを実行する手法がある。以下、この方法を「ＣＰＵマスター・コンフィギュレーション」と呼称する。一般的にＣＰＵマスター・コンフィギュレーションでは、コンフィギュレーションを２段階に分けて実行する。
【０００３】
第１段階のコンフィギュレーション（以下「第１コンフィギュレーション」と呼称する）は、ＦＰＧＡへの電源投入時に実行され、ＦＰＧＡに接続されたＲＯＭから回路構成データ（以下「第１コンフィグデータ」と呼称する）がＦＰＧＡにロードされる。第１コンフィギュレーションは、ＣＰＵが介在することなく実行され、第１コンフィグデータには、ハードＩＰ回路およびＩ／Ｏ回路データが含まれる。
【０００４】
第２段階のコンフィギュレーション（以下「第２コンフィギュレーション」と呼称する）は、第１コンフィギュレーションが完了した後、任意のタイミングでＣＰＵから実行される。ＣＰＵに接続されたＨＤＤから回路構成データ（以下「第２コンフィグデータ」と呼称する）がＦＰＧＡにロードされる。第２コンフィグデータには、ユーザロジック回路データが含まれる。
【０００５】
ＣＰＵマスター・コンフィギュレーションの大きな特徴として、当該装置への第２コンフィグデータのインストールが容易である点が挙げられる。前述した通り、第２コンフィグデータの格納領域は、ＣＰＵからアクセス可能な２次記憶装置（ＨＤＤ、ＳＳＤ等）であるため、リムーバブルメディアやネットワークサーバ上から、任意のタイミングでデータのインストールが可能である。なお、ここでのインストールとは、外部から２次記憶装置へデータを書きこむことを意味しており、コンフィギュレーション動作は含まれていない。
【０００６】
一方で、ＣＰＵマスター・コンフィギュレーションを扱う上で注意しなければならないのは、第１コンフィグデータと第２コンフィグデータの整合性である。ここでの整合性とは、第１コンフィグデータと第２コンフィグデータを組み合わせることで、正常動作可能なＦＰＧＡ回路を実現できることを意味している。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１３−０９８８２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
従来、第１コンフィグデータと第２コンフィグデータの整合性の確認方法は、ＣＰＵマスター・コンフィギュレーションを実行し、ＦＰＧＡが正常に動作するか否かを確認する以外になかった。よって、第１コンフィグデータと整合性が無い第２コンフィグデータをインストールしてしまうことがあり、この場合、ＦＰＧＡは正常に動作しない。これがインストール作業の煩雑さや、装置の誤動作の原因となっていた。
【０００９】
本発明は、上記の問題点を解決するためになされたものである。本発明の目的は、ＣＰＵマスター・コンフィギュレーションに先だって、プログラマブル処理部に必要な各回路構成データ（コンフィグデータ）の整合性を確認でき、装置の誤動作を未然に防止することができる仕組みを提供することである。
【課題を解決するための手段】
【００１０】
本発明は、回路構成されるために少なくとも２つの回路構成データが必要なプログラマブル処理部を有する情報処理装置であって、前記プログラマブル処理部に設定されている第１の回路構成データに含まれる第１の識別子を保持する保持手段と、第２の回路構成データを前記情報処理装置にインストールする場合に、前記保持手段に保持されている前記第１の識別子と、前記第２の回路構成データに含まれる第２の識別子とを比較する比較手段と、前記比較手段による比較の結果、前記第１の識別子と前記第２の識別子が一致する場合には該第２の回路構成データをインストール可能に制御し、前記第１の識別子と前記第２の識別子が一致しない場合には該第２の回路構成データをインストール不可能に制御する制御手段と、を有することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、ＣＰＵマスター・コンフィギュレーションに先だって、プログラマブル処理部に必要な各回路構成データの整合性を確認でき、装置の誤動作を未然に防止することができる。この結果、プログラマブル処理部のコンフィグデータをインストールする際に、製品利用者は、プログラマブルロジックデバイス等のハードウェアの種別等を意識せずに煩雑なインストール操作を正しく行うことができるようになる。
【図面の簡単な説明】
【００１２】
【図１】本実施例の画像形成装置の全体構成を例示する図
【図２】本実施例の拡張処理部の構成を例示する図
【図３】本実施例のＦＰＧＡの構成を例示する図
【図４】本実施例における回路構成データの内容を説明する模式図
【図５】本実施例における回路構成データのロードシーケンスを例示するフローチャート
【図６】本実施例における第１コンフィグデータＩＤ及び第２コンフィグデータＩＤの生成シーケンスを例示するフローチャート
【図７】実施例１における第２コンフィグデータのインストールシーケンスを説明するための図
【図８】実施例２における第２コンフィグデータのインストールシーケンスを説明するための図
【発明を実施するための形態】
【００１３】
以下、図面を参照して本発明を適用できる実施形態を詳細に説明する。なお、各図面において同様の機能を有する箇所には同一の符号を付し、説明の重複は適宜省略する。
【実施例１】
【００１４】
＜画像形成装置１００の構成＞
図１は、本発明の情報処理装置の一実施例を示す画像形成装置の全体構成を例示する図である。
【００１５】
図１において、１００は本発明の情報処理装置の一例を示す画像形成装置（画像処理装置）で、画像の入出力や送受信と、それに関連する各種の画像処理を行う複合機である。なお、画像形成装置１００は、複合機能型画像形成装置（ＭＦＰ；Multi-Function Peripheral）であっても、単一機能型画像形成装置（ＳＦＰ；Single Function Peripheral）などであってもよい。
【００１６】
ＣＰＵ１０１は、画像形成装置１００を構成する各要素を制御するための中央処理装置であり、システムバス１２０を介して各要素と接続される。ＲＡＭ１０２は、ＣＰＵ１０１の主記憶部として作業領域を提供するための随時読み書き可能なメモリであり、内部処理する画像データを一時記憶するための画像メモリとしても使用される。ＲＯＭ１０３は、ブートＲＯＭでありシステム起動に必要なブートプログラム、および、動作に必要な各種処理プログラムが格納される。
【００１７】
ＨＤＤ１０４は、不揮発なデータ記憶装置であり、画像データ、システムデータ、ユーザデータ等の各種データ、および、ＣＰＵ１０１が実行する動作プログラムが格納されるハードディスクドライブである。詳細は後述するが、拡張処理部１１４として接続されるＦＰＧＡ２０１の第２コンフィグデータもＨＤＤ１０４に格納される。なお、ＨＤＤ１０４の代わりに又は併設してＳＳＤ（ソリッドステートドライブ）等の他の記憶装置が設けられていてもよい。
【００１８】
ＮＷ通信部１０５は、ＬＡＮ等のネットワークと接続するためのインタフェースであり、ネットワークに対して情報の入出力を行う。
操作部ＩＦ１０６は、例えば、液晶タッチパネル等で構成する操作部１１５との間で入出力を行うためのインタフェースである。操作部ＩＦ１０６は、操作部１１５に対して表示すべき画像データを出力し、また、ユーザが操作部１１５を介して入力した情報をＣＰＵ１０１に伝送するために使用される。
【００１９】
画像バスＩＦ１０７は、システムバス１２０と画像データを転送するための画像バス１３０とを接続するインタフェースであり、データ構造を変換するバスブリッジとして動作する。画像バス１３０には、プリンタ画像処理部１０９、スキャナ画像処理部１１０、デバイスＩＦ１１１が接続される。
【００２０】
プリンタ画像処理部１０９は、プリンタ１１３へ出力するプリント出力画像データに対して、色変換、フィルタ処理、解像度変換等の処理を行う。スキャナ画像処理部１１０は、スキャナ１１２から読み込んだ入力画像データに対して、補正、加工、編集等の画像処理を行う。
【００２１】
デバイスＩＦ１１１は、スキャナ１１２、および、プリンタ１１３と画像バス１３０とを接続するインタフェースであり、画像データの同期系、または、非同期系の変換を行う。外部メディアＩＦ１１６は、ＵＳＢマスストレージデバイスなどの外部記憶媒体が接続可能なインタフェースである。
拡張ＩＦ１０８は、ＰＣＩ Ｅｘｐｒｅｓｓ等で構成される周辺機器接続用のインタフェースである。本実施例では、拡張ＩＦ１０８は、拡張処理部１１４と接続される。本実施例の拡張処理部１１４は、プログラマブルロジックデバイス（プログラマブル処理部）としてのＦＰＧＡを含むものであり、詳細は後述する。
【００２２】
＜拡張処理部１１４の構成＞
図２は、拡張処理部１１４の構成を例示する図である。
図２に示すように、拡張処理部１１４は、ＲＡＭ２００、ＦＰＧＡ２０１、ＲＯＭ２０２等を有する。
【００２３】
ＲＡＭ２００は、ＦＰＧＡ２０１が動作時に使用する主記憶メモリであり、画像データ等の中間処理データを一時的に保持するために使用される。ＦＰＧＡ２０１は、回路構成データに応じて論理回路を変更できる再構成可能デバイスである。ＦＰＧＡ２０１の回路構成データは、第１コンフィグデータと第２コンフィグデータに大きく分けられる。ＦＰＧＡ２０１の詳細や回路構成データの詳細は後述する。
【００２４】
ＲＯＭ２０２は、ＦＰＧＡ２０１の回路構成データ格納用の不揮発性メモリである。ＲＯＭ２０２に格納される回路構成データは、第１コンフィグデータであり、ＦＰＧＡ２０１の起動時に、後述する図３に示すコンフィグコントローラ３０２によってロードされる。回路構成データのロードシーケンスに関しては後述する。ＲＯＭ２０２に格納される第１コンフィグデータは、ＦＰＧＡ２０１に接続される外付けのＲＯＭライタにより書換えが可能である。
【００２５】
＜ＦＰＧＡ２０１の構成＞
図３は、ＦＰＧＡ２０１の構成を例示する図である。
図３において、ホストＩＦ３００は、拡張ＩＦ１０８とＦＰＧＡ２０１とが接続されるためのインタフェースブロックであり、本実施例では、ＰＣＩ Ｅｘｐｒｅｓｓの機能を有する。また、第１コンフィグデータと第２コンフィグデータの整合性を確認するために必要な第１コンフィグデータＩＤレジスタ３０８が、ホストＩＦ３００に含まれる。第１コンフィグデータＩＤレジスタ３０８については後述する。
【００２６】
メモリコントローラ３０１は、ＲＡＭ２００と接続されるインタフェース制御部であり、機能部３０４やホストＩＦ３００を介して受信するＣＰＵ１０１からのデータ書き込み要求や、データ読み出し要求に基づくメモリ制御を行う。
コンフィグコントローラ３０２は、ＲＯＭ２０２と接続されるインタフェース制御部であり、機能部３０４からの回路構成データ読み出し要求や、デバッグインタフェース３０３からの回路構成データの書き込み要求に基づく制御を行う。
デバッグインタフェース３０３は、例えばＪＴＡＧ（Joint Test Action Group）により構成されるインタフェースであり、機能部３０４の機能検証や、ＲＯＭ２０２への回路構成データの書き込みを実現する。
【００２７】
機能部３０４は、ユーザロジック部３０５と、Ｉ／Ｏロジック部３０６を有する。
ユーザロジック部３０５は、ＦＰＧＡ２０１の主たる処理機能が実装されるブロックであり、画像形成装置１００の場合、ユーザロジック部３０５には画像圧縮・伸長処理や、画像認識処理などの機能が実装される。
Ｉ／Ｏロジック部３０６は、ユーザロジック部３０５と、ＦＰＧＡ２０１の内部バス３０７とのインタフェースブロックである。Ｉ／Ｏロジック部３０６には、ユーザロジック部３０５に対するクロック信号接続も含まれる。
【００２８】
＜回路構成データ＞
図４は、本実施例における回路構成データの内容を説明する模式図である。
前述した通り、ＦＰＧＡ２０１の回路構成データ４００は、第１コンフィグデータ４０１と、第２コンフィグデータ４０２とに大きく分けられる。
【００２９】
第１コンフィグデータ４０１には、メモリコントローラ回路設定データ４０３と、ホストＩＦ回路設定データ４０４と、Ｉ／Ｏロジック回路構成データ４０５が含まれる。第１コンフィグデータ４０１は、ＲＯＭ２０２に格納され、ＦＰＧＡ２０１の起動時にコンフィグコントローラ３０２によってＦＰＧＡ２０１にロードされる。回路構成データのロードシーケンスについては後述する。
【００３０】
メモリコントローラ回路設定データ４０３は、メモリコントローラ３０１のレジスタ設定値を含んでいる。コンフィグコントローラ３０２によって、メモリコントローラ回路設定データ４０３がＦＰＧＡ２０１にロードされることで、メモリコントローラ３０１が使用可能状態になる。
【００３１】
ホストＩＦ回路設定データ４０４は、ホストＩＦ３００のレジスタ設定値を含んでいる。コンフィグコントローラ３０２によって、ホストＩＦ回路設定データ４０４がＦＰＧＡ２０１にロードされることで、ホストＩＦ３００が使用可能状態になる。また、ホストＩＦ回路設定データ４０４には、第１コンフィグデータと第２コンフィグデータの整合性を確認するための識別子である第１コンフィグデータＩＤ４０８が含まれる。
【００３２】
第１コンフィグデータＩＤ４０８は、第１コンフィグデータ内に含まれる回路設定データや回路構成データの内容、さらにはＦＰＧＡ２０１のデバイスタイプをキーとしてＭＤ５等のハッシュ関数を通して一意に定まるハッシュ値である。第１コンフィグデータＩＤ４０８の値は、第１コンフィグデータのロード時に、コンフィグコントローラ３０２によって第１コンフィグデータＩＤレジスタ３０８にロードされ保持される。なお、第１コンフィグデータＩＤ４０８の生成シーケンスについては後述する。
【００３３】
Ｉ／Ｏロジック回路構成データ４０５は、Ｉ／Ｏロジック部３０６の回路構成データである。コンフィグコントローラ３０２によってＩ／Ｏロジック回路構成データ４０５がＦＰＧＡ２０１にロードされることでＩ／Ｏロジック部３０６の回路が構成される。
【００３４】
第２コンフィグデータ４０２には、ユーザロジック回路構成データ４０６と、第１コンフィグデータ４０１と第２コンフィグデータ４０２の整合性を確認するための識別子である第２コンフィグデータＩＤ４０７とが含まれる。
【００３５】
ユーザロジック回路構成データ４０６は、ユーザロジック部３０５の回路構成データである。ユーザロジック回路構成データ４０６がＦＰＧＡ２０１にロードされることでユーザロジック部３０５の回路が構成される。
【００３６】
第２コンフィグデータＩＤ４０７は、ホストＩＦ回路設定データ４０４に含まれる第１コンフィグデータＩＤ４０８と同値のパラメータである。なお、第２コンフィグデータＩＤ４０７の生成シーケンスについては後述する。
【００３７】
第１コンフィグデータＩＤレジスタ３０８と第２コンフィグデータＩＤ４０７とを比較することで、第１コンフィグデータ４０１と第２コンフィグデータ４０２の整合性を確認することができる。この比較に関しては、第２コンフィグデータ４０２のインストールシーケンスに含まれており、その詳細は後述する。
【００３８】
＜回路構成データのロードシーケンス＞
次に、図５のフローチャートを用いて、第１コンフィグデータ４０１と第２コンフィグデータ４０２のロードタイミングについて説明する。
図５は、実施例１における回路構成データのロードシーケンスを例示するフローチャートである。なお、図５のフローチャートに示す処理は、拡張処理部１１４に対して電源が供給されたタイミングで、コンフィグコントローラ３０２によって実行される。
【００３９】
Ｓ５００において、コンフィグコントローラ３０２は、ＲＯＭ２０２に格納された第１コンフィグデータ４０１をＦＰＧＡ２０１にロードする。第１コンフィグデータ４０１がＦＰＧＡ２０１にロードされることで、ホストＩＦ３００、メモリコントローラ３０１が使用可能となるとともに、Ｉ／Ｏロジック部３０６の回路が構成される。また、この時、第１コンフィグデータＩＤ４０８の値は、コンフィグコントローラ３０２によって第１コンフィグデータＩＤレジスタ３０８にロードされ保持される。
【００４０】
第１コンフィグデータのロードが完了すると、ＦＰＧＡ２０１は、第２コンフィグデータ４０２のロード待ち状態となる。第２コンフィグデータのロードは、ＣＰＵ１０１のコンフィグ要求によって始まる。それに先立って、Ｓ５０１では、ＦＰＧＡ２０１がＣＰＵ１０１のコンフィグ要求を待ち受ける。なお、ＦＰＧＡ２０１がコンフィグ要求の待ち受け状態か否かは、ＣＰＵ１０１が拡張ＩＦ１０８を介して、ホストＩＦ３００のレジスタ値を読みだすことで確認可能である。
【００４１】
ＦＰＧＡ２０１がＣＰＵ１０１からコンフィグ要求を受信すると、Ｓ５０２が実行される。Ｓ５０２では、コンフィグコントローラ３０２が、ホストＩＦ３００を介して、ＨＤＤ１０４から第２コンフィグデータ４０２を受信しＦＰＧＡ２０１にロードする。第２コンフィグデータ４０２のロードが完了すると、ユーザロジック部３０５に実装された主たる処理機能が実行できる状態となる。
【００４２】
なお、背景でも説明した通り、本シーケンスにおける第１コンフィグデータ４０１と第２コンフィグデータ４０２が整合性の無いデータだった場合、ＦＰＧＡ２０１は誤動作を起こしてしまう。この課題に対して本実施例は、第２コンフィグデータ４０２をＨＤＤ１０４にインストールする際に、第１コンフィグデータＩＤレジスタ３０８と第２コンフィグデータＩＤ４０７とを比較し、上記インストールを実行するか否かを制御する。この構成により、第１コンフィグデータと整合しない第２コンフィグデータがＨＤＤ１０４にインストールされてしまい、コンフィギュレーションが失敗することを未然に防ぐことができる。なお、第１コンフィグデータ４０１と第２コンフィグデータ４０２の比較は、第２コンフィグデータ４０２のインストールシーケンスに含まれており、その詳細は後述する。
【００４３】
＜第１および第２コンフィグデータＩＤの生成シーケンス＞
次に、図６を用いて、本実施例における第１および第２コンフィグデータＩＤの生成シーケンスについて説明を行う。
図６は、本実施例における第１コンフィグデータＩＤ及び第２コンフィグデータＩＤの生成シーケンスを例示するフローチャートである。なお、ＦＰＧＡ回路構成データの生成は、本明細書では記載をしていないパーソナルコンピュータ（ＰＣ）やサーバなどで実行されるが、その手法は一般的であり公知であるため、ここでは説明を省略する。図６のフローチャートに示す処理は、回路構成データを生成した直後のタイミングで、前記ＰＣやサーバのＣＰＵによって実行される。ＰＣやサーバのＣＰＵは、ＰＣやサーバのＨＤＤ等に記憶されるプログラムを読み出して実行することにより上記処理を実現する。
【００４４】
Ｓ６００において、ＰＣやサーバのＣＰＵは、ＰＣやサーバによって生成された回路構成データを、第１コンフィグデータと第２コンフィグデータに分割処理する。第１コンフィグデータおよび第２コンフィグデータに含まれるデータ内容は、図４で説明した通りであるが、Ｓ６００においては第１コンフィグデータＩＤ４０８および第２コンフィグデータＩＤ４０７は初期値（例えば０値）となる。なお、コンフィグデータの具体的な分割方法に関しては公知であるため、ここでの説明は省略する。
【００４５】
次に、Ｓ６０１において、ＰＣやサーバのＣＰＵは、上記Ｓ６００で分割された第１コンフィグデータをキーとするＭＤ５などの一般的なハッシュ計算を行い、ハッシュ値を取得する。
次に、Ｓ６０２において、上記Ｓ６０１で取得したハッシュ値を第１コンフィグデータＩＤ４０８および第２コンフィグデータＩＤ４０７として、第１コンフィグデータ４０１および第２コンフィグデータ４０２に埋め込む。なお、コンフィグデータＩＤは、ハッシュ値に限定されるものではなく、コンフィグデータの識別子となるものであればどのようなものでもよい。
【００４６】
＜第２コンフィグデータ４０２のインストール＞
次に、図７（Ａ）〜（Ｃ）を用いて、第２コンフィグデータ４０２のインストールについて説明を行う。
図７は、実施例１における第２コンフィグデータのインストールシーケンスを説明するための図である。
【００４７】
図７（Ａ）は、第２コンフィグデータのインストール直前のデータの所在についての概念図である。データ格納空間７００は、ＮＷ通信部１０５を介してアクセス可能なネットワークサーバが管理する記憶領域であったり、外部メディアＩＦ１１６を介してアクセス可能な外部メディアであったりする。
【００４８】
第２コンフィグデータ７０１〜７０３は、それぞれが独立した第２コンフィグデータである。これらの第２コンフィグデータは、画像形成装置１００の操作部１１５を介してインストール対象として必要に応じて選択される。選択された第２コンフィグデータに対して、後述する第２コンフィグデータのインストールシーケンスが実行されることになる。
【００４９】
図７（Ｂ）は、第２コンフィグデータのインストール直前の画像形成装置１００の操作部１１５の表示画面の表示例を示す図である。なお、図７（Ｂ）の表示はあくまで一例である。
機能インストール画面７０４は、操作部１１５のディスプレイに表示される画面である。この機能インストール画面７０４は、操作部１１５を介して入力されるユーザから機能インストール指示に応じて、ＣＰＵ１０１により、操作部１１５のディスプレイに表示される。
【００５０】
アイコン７０５〜７０７は、それぞれが個別にユーザにより選択可能なアイコンになっており、それぞれが図７（Ａ）で示した第２コンフィグデータに対応している。アイコン７０５は第２コンフィグデータ７０１に対応しており、アイコン７０６は第２コンフィグデータ７０２に対応しており、アイコン７０７は第２コンフィグデータ７０３に対応している。例えば、ユーザが、アイコン７０５を選択することで、第２コンフィグデータ７０１を、後述するインストールシーケンスの対象として選択することができる。
【００５１】
次に、図７（Ｃ）のフローチャートを用いて、第２コンフィグデータのインストールシーケンスについて説明を行う。なお、図７（Ｃ）のフローチャートは、図７（Ａ）や図７（Ｂ）で示したように、操作部１１５を介してインストール対象の第２コンフィグデータが選択されたタイミングで、ＣＰＵ１０１によって実行される。ＣＰＵ１０１は、ＨＤＤ１０４に記憶されるプログラムを読み出して実行することにより図７（Ｃ）に示す処理を実現する。
【００５２】
Ｓ７１０において、ＣＰＵ１０１は、拡張ＩＦ１０８を介して、ホストＩＦ３００に含まれる第１コンフィグデータＩＤレジスタ３０８の値を読み出す。
次に、Ｓ７１１において、ＣＰＵ１０１は、インストール対象の第２コンフィグデータ４０２内のコンフィグデータＩＤと、上記Ｓ７１０で読み出した第１コンフィグデータＩＤレジスタ３０８の値を比較し、一致するかどうかを判断する。なお、インストール対象の第２コンフィグデータ４０２は、図７（Ｂ）の機能インストール画面７０４で選択されたアイコンに対応する第２コンフィグデータである。
【００５３】
上記Ｓ７１１において、インストール対象の第２コンフィグデータ４０２内のコンフィグデータＩＤと、第１コンフィグデータＩＤレジスタ３０８の値が一致すると判断した場合（Ｓ７１１でＹＥＳの場合）、ＣＰＵ１０１は、Ｓ７１２に処理を進める。
Ｓ７１２において、ＣＰＵ１０１は、上記インストール対象の第２コンフィグデータ４０２を、ＨＤＤ１０４に格納し、本フローチャートの処理を終了する。
【００５４】
一方、上記Ｓ７１１において、インストール対象の第２コンフィグデータ４０２内のコンフィグデータＩＤと、第１コンフィグデータＩＤレジスタ３０８の値が一致しないと判断した場合（Ｓ７１１でＮＯの場合）、ＣＰＵ１０１は、Ｓ７１３に処理を進める。
Ｓ７１３において、ＣＰＵ１０１は、操作部１１５を介し、上記インストール対象の第２コンフィグデータが不整合データである旨の通知（不整合通知）を行い、本フローチャートの処理を終了する。なお、上記不整合通知は、例えば、ＣＰＵ１０１が、上記インストール対象の第２コンフィグデータが不整合データである旨のメッセージ等を、操作部１１５のディスプレイに表示することにより行われる。
【００５５】
以上の処理により、ＨＤＤ１０４には、ＦＰＧＡ２０１に設定可能な第２コンフィグデータのみが格納され、設定不可能な第２コンフィグデータは格納されないようになる。なお、ＨＤＤ１０４には１以上の第２コンフィグデータを格納可能であり、対応する機能を実行するタイミングで、ＣＰＵ１０１が、対応する第２コンフィグデータをＨＤＤ１０４から読み出してＦＰＧＡ２０１に設定制御する。
【００５６】
以上、実施例１では、ＣＰＵマスター・コンフィギュレーションにおける第１コンフィグデータと第２コンフィグデータに、それぞれコンフィグデータＩＤを埋め込み、第２コンフィグデータのインストール時にそれらを比較する。そして、比較の結果、それぞれのコンフィグデータＩＤが一致する場合には第２コンフィグデータをインストール可能に制御する（ＨＤＤ１０４に格納するように制御する）。一方、それぞれのコンフィグデータＩＤが一致しない場合には第２コンフィグデータをインストール不可能に制御する（ＨＤＤ１０４に格納しないように制御する）。このような構成により、コンフィギュレーションに先だってコンフィグデータの整合性を確認することができるようになり、装置の誤動作を未然に防止することが可能になる。この結果、ＦＰＧＡのコンフィグデータをインストールする際に、製品利用者は、プログラマブルロジックデバイス等のハードウェアの種別等を意識せずに煩雑なインストール操作を正しく行うことができるようになる。
【実施例２】
【００５７】
上記実施例１では、インストール対象の第２コンフィグデータの選択が行われた場合に、該第２コンフィグデータの第１コンフィグデータとの整合を判断し、整合する場合に、該第２コンフィグデータをＨＤＤにインストールする構成について説明した。
【００５８】
本記実施例２では、機能インストール画面を表示する場合に、第１コンフィグデータと整合する第２コンフィグデータのみを機能インストール画面に選択可能に表示するように構成する。本実施例２の構成は、図１〜図６までは実施例１と同様となるため、説明は省略する。第２コンフィグデータのインストールに関してのみ、実施例１と異なるため、以下、図８を用いて説明を行う。
図８は、実施例２における第２コンフィグデータのインストールシーケンスを説明するための図である。
【００５９】
図８（Ａ）は、第２コンフィグデータのインストール直前のデータの所在についての概念図である。データ格納空間８００は、ＮＷ通信部１０５を介してアクセス可能なネットワークサーバであったり、外部メディアＩＦ１１６を介してアクセス可能な外部メディアであったりする。
【００６０】
第２コンフィグデータ８０１〜８０３は、それぞれが独立した第２コンフィグデータである。第２コンフィグデータ８０１は、画像形成装置１００内の第１コンフィグデータと整合性がとれているデータである。一方で、第２コンフィグデータ８０２および８０３は、画像形成装置１００内の第１コンフィグデータと整合性がとれていないデータである。
【００６１】
上述した実施例１では、これらの第２コンフィグデータのうち、操作部１１５を介してインストール対象として選択された第２コンフィグデータに対して、図７（Ｃ）のインストールシーケンスが実行された。これに対して本実施例２では、操作部１１５に第２コンフィグデータの選択画面を表示する直前に、データ格納空間８００内の全ての第２コンフィグデータについて、図８（Ｂ）に示す第２コンフィグデータの表示処理シーケンスが実行される。
【００６２】
図８（Ｂ）のフローチャートを用いて、第２コンフィグデータの表示処理シーケンスについて説明を行う。なお、図８（Ｂ）のフローチャートは、前述した通り、操作部１１５を介してユーザから機能インストール指示に応じて、操作部１１５に第２コンフィグデータの選択画面を表示する直前のタイミングで、ＣＰＵ１０１によって実行される。ＣＰＵ１０１は、ＨＤＤ１０４に記憶されるプログラムを読み出して実行することにより図８（Ｂ）に示す処理を実現する。
【００６３】
Ｓ８１０において、ＣＰＵ１０１は、拡張ＩＦ１０８を介して、ホストＩＦ３００に含まれる第１コンフィグデータＩＤレジスタ３０８の値を読み出す。
次に、Ｓ８１１において、ＣＰＵ１０１は、データ格納空間８００内の第２コンフィグデータのうち、いずれか一つを処理対象の第２コンフィグデータとして選択する。さらに、ＣＰＵ１０１は、処理対象のコンフィグデータＩＤと、上記Ｓ８１０で読み出した第１コンフィグデータＩＤレジスタ３０８の値を比較し、一致するかどうかを判断する。
【００６４】
上記Ｓ８１１において、処理対象の第２コンフィグデータ内のコンフィグデータＩＤと、第１コンフィグデータＩＤレジスタ３０８の値が一致すると判断した場合（Ｓ８１１でＹＥＳの場合）、ＣＰＵ１０１は、Ｓ８１２に処理を進める。
Ｓ８１２において、ＣＰＵ１０１は、上記処理対象の第２コンフィグデータに対応するアイコンを、操作部１１５のディスプレイに表示する機能インストール画面８０４に（図８（Ｃ））に選択可能に表示し（アイコン表示処理）、Ｓ８１４に処理を進める。
【００６５】
一方、上記Ｓ８１１において、処理対象の第２コンフィグデータ内のコンフィグデータＩＤと、第１コンフィグデータＩＤレジスタ３０８の値が一致しないと判断した場合（Ｓ８１１でＮＯの場合）、ＣＰＵ１０１は、Ｓ８１３に処理を進める。
Ｓ８１３において、ＣＰＵ１０１は、上記処理対象の第２コンフィグデータに対応するアイコンを、操作部１１５のディスプレイに表示する機能インストール画面８０４に（図８（Ｃ））に表示することなく（アイコン非表示処理）、Ｓ８１４に処理を進める。ここでアイコン非表示処理とは、対応するアイコンをグレーアウトして選択不可能な状態で表示する処理でもよいし、非表示にする処理でもよい。
【００６６】
Ｓ８１４において、ＣＰＵ１０１は、データ格納空間８００内の全ての第２コンフィグデータに関して、上記Ｓ８１１〜Ｓ８１３の処理を実行したか否かを判定する。
そして、未だデータ格納空間８００内の第２コンフィグデータで、上記Ｓ８１１〜Ｓ８１３の処理を実行していないものがあると判定した場合（Ｓ８１４でＮＯの場合）、ＣＰＵ１０１は、Ｓ８１１に処理を移行する。そして、未処理の第２コンフィグデータに対してＳ８１１〜〜Ｓ８１３の処理を実行するように制御する。
【００６７】
一方、既にデータ格納空間８００内の全ての第２コンフィグデータに関して、上記Ｓ８１１〜Ｓ８１３の処理を実行したと判定した場合（Ｓ８１４でＹＥＳの場合）、ＣＰＵ１０１は、本フローチャートの処理を終了する。
【００６８】
図８（Ｃ）は、第２コンフィグデータのインストール直前の画像形成装置１００の操作部１１５の表示画面の表示例を示す図である。
機能インストール画面８０４は、図８（Ｂ）で説明した第２コンフィグデータの表示処理シーケンスが実行された結果の表示例である。なお、図８（Ｃ）の表示はあくまで一例である。機能インストール画面８０４は、操作部１１５のディスプレイに表示される画面である。
【００６９】
アイコン８０５〜８０７は、それぞれが個別に選択可能なアイコンになっており、それぞれが図８（Ａ）で示した第２コンフィグデータに対応している。アイコン８０５は第２コンフィグデータ８０１に対応しており、アイコン８０６は第２コンフィグデータ８０２に対応しており、アイコン８０７は第２コンフィグデータ８０３に対応している。
【００７０】
前述した通り、第２コンフィグデータ８０１は、画像形成装置１００内の第１コンフィグデータと整合性がとれているデータである。一方で、第２コンフィグデータ８０２および８０３は、画像形成装置１００内の第１コンフィグデータと整合性がとれていないデータである。そのため、図８（Ｂ）の第２コンフィグデータの表示処理シーケンスが実行された結果、アイコン８０５が選択可能な状態であるのに対し、アイコン８０６、８０７はグレーアウトされ、選択不可能になっている。前述した通り、アイコン８０６、８０７は非表示にしてもよい。
【００７１】
例えば、ユーザが、アイコン８０５を選択することで、第２コンフィグデータ８０１を、インストールシーケンスの対象として選択してＨＤＤ１０４にインストールすることができる。一方、ユーザは、アイコン８０６や８０７を選択できず、第２コンフィグデータ８０２や８０３を、ＨＤＤ１０４にインストールすることはできない。
【００７２】
本実施例では、図８（Ｃ）の表示画面８０４上で、インストール対象の第２コンフィグデータが選択されると、ＣＰＵ１０１は、図７（Ｃ）のＳ７１２と同様の処理を実行し、該選択されたアイコンに対応する第２コンフィグデータをＨＤＤ１０４に格納する。例えば、アイコン８０５が選択されると、ＣＰＵ１０１は、第２コンフィグデータ８０１を、ＨＤＤ１０４に格納する。
【００７３】
以上、実施例２では、ＣＰＵマスター・コンフィギュレーションにおける第１コンフィグデータと第２コンフィグデータに、それぞれコンフィグデータＩＤを埋め込み、第２コンフィグデータのアイコンを画面（８０４）に表示する際にそれらを比較する。そして、比較の結果、それぞれのコンフィグデータＩＤが一致する場合には第２コンフィグデータをインストール可能に制御する（アイコン表示制御）。一方、それぞれのコンフィグデータＩＤが一致しない場合には第２コンフィグデータをインストール不可能に制御する（アイコン非表示制御）。この構成により、コンフィギュレーションに先だってコンフィグデータの整合性を確認することができるようになり、装置の誤動作を未然に防止することが可能になる。この結果、ＦＰＧＡのコンフィグデータをインストールする際に、製品利用者は、プログラマブルロジックデバイス等のハードウェアの種別等を意識せずに煩雑なインストール操作を正しく行うことができるようになる。
【実施例３】
【００７４】
実施例３では、第１コンフィグデータが更新された場合の処理について説明する。
ＲＯＭ２０２に記憶されている第１コンフィグデータが更新されると、更新前にＨＤＤ１０４に格納された第２コンフィグデータと整合しなくなる。すなわち、それまで使用可能であった第２コンフィグデータでは正常にコンフィギュレーションできなくなってしまう。このため、第１コンフィグデータの更新に合わせて、第２コンフィグデータも更新する必要が生じてくる。
【００７５】
実施例３の画像形成装置１００では、ＲＯＭ２０２に記憶されているＦＰＧＡ２０１に設定される第１コンフィグデータが更新された場合、ＣＰＵ１０１は次のように制御する。すなわち、ＣＰＵ１０１が、図７（Ｃ）のＳ７１２等でＨＤＤ１０４に格納済みの第２コンフィグデータを更新する更新処理を実行する。
【００７６】
この更新処理において、ＣＰＵ１０１は、更新された第１コンフィグデータに含まれる前記第１コンフィグデータＩＤと一致する第２コンフィグデータＩＤを含む第２コンフィグデータを、予め設定されている所定の記憶領域から取得する。なお、所定の記憶領域は、例えばデータ格納空間７００や８００等である。さらに、ＣＰＵ１０１は、該取得した第２コンフィグデータで、ＨＤＤ１０４に格納されている第２コンフィグデータを更新する。なお、上記第２コンフィグデータの更新は、第１コンフィグデータが更新されたタイミングで、全ての第２コンフィグデータを更新するようにしてもよい。また、第２コンフィグデータに対応する機能を実行するタイミングで、該実行する機能に対する第２コンフィグデータを更新するようにしてもよい。
【００７７】
なお、第１コンフィグデータは、以下のような場合に更新される。
例えば、第１コンフィグデータのバグ等が修正された場合、第１コンフィグデータが作成された当初想定されていなかった機能を画像形成装置１００にインストール可能にする場合（機能拡張等の場合）などに、第１コンフィグデータが更新される。ただし、これらの限定されるものではない。
【００７８】
上述したように、ＲＯＭ２０２に格納される第１コンフィグデータは、ＦＰＧＡ２０１に接続される外付けのＲＯＭライタにより書換えが可能なものである。この構成の場合、第１コンフィグデータは、サービスマン等により更新される。例えば、第１コンフィグデータの更新の通知を、画像形成装置１００がサーバ等から受信した場合には、ＣＰＵ１０１は、サービスマンによる第１コンフィグデータの更新を促すメッセージを、操作部１１５のディスプレイに表示してユーザに通知する。また、ユーザがインストールしたい機能に対応する、第１コンフィグデータＩＤレジスタの値と一致する第２コンフィグデータＩＤを含む第２コンフィグデータが選択できない場合、ＣＰＵ１０１が上述の第１コンフィグデータ更新通知を行うようにしてもよい。この場合、ＣＰＵ１０１は、予め設定されているサーバ等に、インストールしたい機能に対応した第１コンフィグデータが存在するか問い合わせ、存在する場合に、上述の第１コンフィグデータ更新通知を行うものとする。なお、インストールしたい機能に対応する、第１コンフィグデータＩＤレジスタの値と一致する第２コンフィグデータＩＤを含む第２コンフィグデータが選択できない場合には、以下のような場合が含まれる。例えば、図７（Ｃ）のＳ７１３の不整合通知が行われた場合や、図８（Ｂ）の処理の結果、選択可能なコンフィグデータのアイコンが１つも表示されなかった場合などが含まれる。
【００７９】
また、ＲＯＭ２０２がフラッシュＲＯＭ等で構成されており、外付けのＲＯＭライタなしに、書き換え可能な場合には、上述の第１コンフィグデータ更新通知に応じて、ユーザが、第１コンフィグデータを更新可能にしてもよい。この場合、例えば、ユーザは、上述の第１コンフィグデータ更新通知に関連して操作部１１５のディスプレイに表示される更新ボタン等を押下する。これに応じて、ＣＰＵ１０１が、画像形成装置１００の機種に対応する第１コンフィグデータを、予め設定されているサーバ等から取得して、更新するようにしてもよい。
【００８０】
なお、上述の第１コンフィグデータの更新に関連するＣＰＵ１０１の動作は、ＣＰＵ１０１がＨＤＤ１０４に記憶されるプログラムを読み出して実行することにより実現されるものとする。
【００８１】
以上、実施例３の画像形成装置１００は、第１コンフィグデータの更新に応じて、ＨＤＤ１０４にインストール済の第２コンフィグデータを更新するように構成する。この構成により、第１コンフィグデータが更新された場合でも、コンフィグデータの整合性を確認することができるようになり、装置の誤動作を未然に防止することが可能になる。
【００８２】
なお、上述した各実施例では、本発明の情報処理装置の一例として画像形成装置（画像処理装置）を用いて説明したが、本発明の情報処理装置は、画像形成装置（画像処理装置）に限定されるものではない。本発明の情報処理装置には、回路構成されるために少なくとも２つの回路構成データが必要なプログラマブル処理部を有する情報処理装置であればどのような装置であってもよい。例えば、パーソナルコンピュータ、タブレット型端末、テレビジョン、オーディオ、エアーコンディショナー、冷蔵庫等の家電や、カーナビゲーションシステム、カメラ等であってもよい。
【００８３】
以上のように、第１コンフィグデータと第２コンフィグデータに、それぞれコンフィグデータＩＤを埋め込み、第２コンフィグデータのインストール時にそれらを比較することで整合性を確認することにより、装置の誤動作を未然に防止することができる。このように、ＦＰＧＡで新規追加する回路データの整合性を判定することにより、次のような効果がある。すなわち、ＦＰＧＡのコンフィグデータをインストールする際に、製品利用者は、プログラマブルロジックデバイス等のハードウェアを意識せずに煩雑なインストール操作を正しく行うことができるようになる。
【００８４】
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されていてもよい。
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
また、上記各実施例を組み合わせた構成も全て本発明に含まれるものである。
【００８５】
（その他の実施例）
本発明は、上述の実施例の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
また、本発明は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用してもよい。
本発明は上記実施例に限定されるものではなく、本発明の趣旨に基づき種々の変形（各実施例の有機的な組合せを含む）が可能であり、それらを本発明の範囲から除外するものではない。即ち、上述した各実施例及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【００８６】
１００    画像形成装置
１０１    ＣＰＵ
１１４    拡張処理部
２０１    ＦＰＧＡ
３０８    第１コンフィグデータＩＤレジスタ
【図１】
2017062537.tif 000003
【図２】
2017062537.tif 000004
【図３】
2017062537.tif 000005
【図４】
2017062537.tif 000006
【図５】
2017062537.tif 000007
【図６】
2017062537.tif 000008
【図７】
2017062537.tif 000009
【図８】
2017062537.tif 000010