(57)【要約】【課題】再プログラム可能な論理素子を用いた電子機器において、コンフィグレーションデータを読み飛ばし、代わりにダミーデータを再プログラム可能な論理素子に書き出すこと。【解決手段】本発明に係る電子機器は、再プログラム可能な論理素子と、コンフィグレーションデータ記憶部と、コンフィグレーションデータを前記コンフィグレーションデータ記憶部から逐次読み出す読み出し部と、ダミーデータを作成するダミーデータ作成部と、前記コンフィグレーションデータを読み飛ばすか否か判別する読み飛ばし判別部と、データを前記再プログラム可能な論理素子に書き出す書き出し部と、前記読み飛ばし判別部が前記コンフィグレーションデータを読み飛ばすと判別した場合には、前記ダミーデータ作成部が作成したダミーデータを前記書き出し部へ送るように制御する制御部と、を有する。【選択図】図３
2010102638.tif 000002
【特許請求の範囲】
【請求項１】
再プログラム可能な論理素子と、
前記再プログラム可能な論理素子用コンフィグレーションデータを記憶するコンフィグレーションデータ記憶部と、
前記コンフィグレーションデータを前記コンフィグレーションデータ記憶部から逐次読み出す読み出し部と、
ダミーデータを作成するダミーデータ作成部と、
前記コンフィグレーションデータを読み飛ばすか否か判別する読み飛ばし判別部と、
前記コンフィグレーションデータまたは前記ダミーデータを前記再プログラム可能な論理素子に書き出す書き出し部と、
前記読み飛ばし判別部が前記コンフィグレーションデータを読み飛ばすと判別した場合には、前記ダミーデータ作成部が作成したダミーデータを前記書き出し部へ送るように制御する制御部と、
を有する電子機器。
【請求項２】
前記制御部は、前記読み飛ばし判別部が前記コンフィグレーションデータを読み飛ばさないと判別した場合には、前記読み出し部が読み出した前記コンフィグレーションデータを前記書き出し部へ送るように制御する請求項１記載の電子機器。
【請求項３】
前記制御部は、前記ダミーデータを含む第１のコンフィグレーションデータを前記再プログラム可能な論理素子に書き出した後、前記第１のコンフィグレーションデータとは異なる第２のコンフィグレーションデータを前記再プログラム可能な論理素子に書き出すよう制御する請求項２記載の電子機器。
【請求項４】
前記コンフィグレーションデータ記憶部は、前記第２のコンフィグレーションデータを記憶しており、前記第１のコンフィグレーションデータを記憶していない請求項３記載の電子機器。
【請求項５】
前記コンフィグレーションデータ記憶部は、前記第１のコンフィグレーションデータが前記再プログラム可能な論理素子に正常に書き出されたか否かをチェックするためのデータを記憶している請求項４記載の電子機器。
【請求項６】
前記制御部は、前記第２のコンフィグレーションデータの書き出しを、前記第１のコンフィグレーションデータ中の前記ダミーデータの少なくとも一部を上書きするように部分的に行う請求項３記載の電子機器。
【請求項７】
さらに、前記コンフィグレーションデータを読み飛ばす位置を示す読み飛ばし情報を記憶する読み飛ばし情報記憶部を有し、
前記読み飛ばし判別部は、前記読み飛ばし情報記憶部に記憶された前記読み飛ばし情報に基づいて、前記コンフィグレーションデータを読み飛ばすか否か判別する請求項１記載の電子機器。
【請求項８】
前記読み飛ばし判別部は、前記読み出し部が読みだした前記コンフィグレーションデータに基づいて、前記コンフィグレーションデータを読み飛ばすか否か判別する請求項１記載の電子機器。
【請求項９】
電子回路を、
コンフィグレーションデータをコンフィグレーションデータ記憶部から逐次読み出す読み出し部と、
ダミーデータを作成するダミーデータ作成部と、
前記コンフィグレーションデータを読み飛ばすか否か判別する読み飛ばし判別部と、
前記コンフィグレーションデータまたは前記ダミーデータを再プログラム可能な論理素子に書き出す書き出し部と、
前記読み飛ばし判別部が前記コンフィグレーションデータを読み飛ばすと判別した場合には、前記ダミーデータ作成部が作成したダミーデータを前記書き出し部へ送るように制御する制御部と、
を有するコントローラとして機能させるプログラム。
【請求項１０】
請求項１記載の電子機器を搭載した画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子機器に関する。
【背景技術】
【０００２】
ＰＧＡ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、ＣＰＬＤ（Ｃｏｍｐｌｅｘ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）やＤＲＰ（Ｄｙｎａｍｉｃａｌｌｙ  Ｒｅｃｏｎｆｉｇｕｒａｂｌｅ  Ｐｒｏｃｅｓｓｏｒ）等の再プログラム可能な論理素子を用いた電子機器が知られている。これらの再プログラム可能な論理素子は、電気的な信号を入力することにより、その内部の論理回路を事後的に書き換えることができるものであり、汎用性が高い、あるいは機能のアップデートが可能である等の利点を有している。
【０００３】
たとえば、特許文献１には、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｒａｍｍａｂｌｅ  ＲＯＭ）及びＦＰＧＡを備えた電子機器であって、電源が投入されると、ＰＲＯＭに記憶されたデータに基づいてＦＰＧＡをコンフィグレーション（初期化）した後、ＥＥＰＲＯＭに記憶されたデータに基づいてＦＰＧＡを再度コンフィグレーションするものが記載されている。
【０００４】
また、特許文献２には、フラッシュメモリ、コンフィグレーション制御部及びＦＰＧＡを備えた電子機器であって、電源が投入されると、コンフィグレーション制御部がフラッシュメモリに記憶されたデータに基づいてＦＰＧＡをコンフィグレーションするものが記載されている。
【特許文献１】特許第３６４４５９０号公報
【特許文献２】特開２００４−２１８６７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明の目的は、再プログラム可能な論理素子を用いた電子機器において、コンフィグレーションデータを読み飛ばし、代わりにダミーデータを再プログラム可能な論理素子に書き出すことである。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本願の請求項１に係る電子機器は、再プログラム可能な論理素子と、前記再プログラム可能な論理素子用コンフィグレーションデータを記憶するコンフィグレーションデータ記憶部と、前記コンフィグレーションデータを前記コンフィグレーションデータ記憶部から逐次読み出す読み出し部と、ダミーデータを作成するダミーデータ作成部と、前記コンフィグレーションデータを読み飛ばすか否か判別する読み飛ばし判別部と、前記コンフィグレーションデータまたは前記ダミーデータを前記再プログラム可能な論理素子に書き出す書き出し部と、前記読み飛ばし判別部が前記コンフィグレーションデータを読み飛ばすと判別した場合には、前記ダミーデータ作成部が作成したダミーデータを前記書き出し部へ送るように制御する制御部と、を有する。
【０００７】
また、本願の請求項２に係る電子機器は、前記制御部は、前記読み飛ばし判別部が前記コンフィグレーションデータを読み飛ばさないと判別した場合には、前記読み出し部が読み出した前記コンフィグレーションデータを前記書き出し部へ送るように制御する。
【０００８】
また、本願の請求項３に係る電子機器は、前記制御部は、前記ダミーデータを含む第１のコンフィグレーションデータを前記再プログラム可能な論理素子に書き出した後、前記第１のコンフィグレーションデータとは異なる第２のコンフィグレーションデータを前記再プログラム可能な論理素子に書き出すよう制御する。
【０００９】
また、本願の請求項４に係る電子機器は、前記コンフィグレーションデータ記憶部は、前記第２のコンフィグレーションデータを記憶しており、前記第１のコンフィグレーションデータを記憶していない。
【００１０】
また、本願の請求項５に係る電子機器は、前記コンフィグレーションデータ記憶部は、前記第１のコンフィグレーションデータが前記再プログラム可能な論理素子に正常に書き出されたか否かをチェックするためのデータを記憶している。
【００１１】
また、本願の請求項６に係る電子機器は、前記制御部は、前記第２のコンフィグレーションデータの書き出しを、前記第１のコンフィグレーションデータ中の前記ダミーデータの少なくとも一部を上書きするように部分的に行う。
【００１２】
また、本願の請求項７に係る電子機器は、さらに、前記コンフィグレーションデータを読み飛ばす位置を示す読み飛ばし情報を記憶する読み飛ばし情報記憶部を有し、前記読み飛ばし判別部は、前記読み飛ばし情報記憶部に記憶された前記読み飛ばし情報に基づいて、前記コンフィグレーションデータを読み飛ばすか否か判別する。
【００１３】
また、本願の請求項８に係る電子機器は、前記読み飛ばし判別部は、前記読み出し部が読みだした前記コンフィグレーションデータに基づいて、前記コンフィグレーションデータを読み飛ばすか否か判別する。
【００１４】
また、本願の請求項９に係るプログラムは、電子回路を、コンフィグレーションデータをコンフィグレーションデータ記憶部から逐次読み出す読み出し部と、ダミーデータを作成するダミーデータ作成部と、前記コンフィグレーションデータを読み飛ばすか否か判別する読み飛ばし判別部と、前記コンフィグレーションデータまたは前記ダミーデータを再プログラム可能な論理素子に書き出す書き出し部と、前記読み飛ばし判別部が前記コンフィグレーションデータを読み飛ばすと判別した場合には、前記ダミーデータ作成部が作成したダミーデータを前記書き出し部へ送るように制御する制御部と、を有するコントローラとして機能させる。
【００１５】
また、本願の請求項１０に係る画像形成装置は、請求項１記載の電子機器を搭載した。
【発明の効果】
【００１６】
上記本願の請求項１に係る電子機器によれば、当該電子機器は、コンフィグレーションデータを読み飛ばし、代わりにダミーデータを再プログラム可能な論理素子に書き出すことができる。
【００１７】
上記本願の請求項２に係る電子機器によれば、当該電子機器は、全てのコンフィグレーションデータを読み出すことなく、当該電子機器を接続した機器から認識可能になる。
【００１８】
また、上記本願の請求項３に係る電子機器によれば、当該電子機器が電子機器を接続した機器から認識可能になった後、再プログラム可能な論理素子上にロジックを構成することができる。
【００１９】
また、上記本願の請求項４に係る電子機器によれば、第１のコンフィグレーションデータを用意する必要がない。
【００２０】
また、上記本願の請求項５に係る電子機器によれば、再プログラム可能な論理素子がコンフィグレーションデータが正常に書き出されたか否かチェックする場合においても、第１のコンフィグレーションデータを用意する必要がない。
【００２１】
また、上記本願の請求項６に係る電子機器によれば、当該電子機器が電子機器を接続した機器から認識可能になった後、再プログラム可能な論理素子にロジックが構成される。
【００２２】
また、上記本願の請求項７に係る電子機器によれば、コンフィグレーションデータを読み飛ばす位置を任意に設定可能である。
【００２３】
また、上記本願の請求項８に係る電子機器によれば、コンフィグレーションデータを読み飛ばす位置が自動的に認識される。
【００２４】
また、上記本願の請求項９に係るプログラムによれば、電子回路を、全てのコンフィグレーションデータを読み出すことなく、接続した機器から認識可能になる電子機器を制御するコントローラとして動作させることができる。
【００２５】
また、上記本願の請求項１０に係る画像形成装置によれば、当該画像形成装置の機能を実現する論理回路を事後的に書き換えることができる。
【発明を実施するための最良の形態】
【００２６】
図１は、本発明の第１の実施形態に係る電子機器１を示す概略図である。
【００２７】
電子機器１は、ＰＣＩ  Ｅｘｐｒｅｓｓカードであり、基板２の表面に、再プログラム可能な論理素子であるＦＰＧＡ３、不揮発性メモリ４、コントローラ５及び端子６が実装され、図示しないプリント配線により相互に接続されている。符号７はコンピュータの筐体に取り付けるためのブラケットである。なお、基板２の表面には図示したもの以外にも各種電子部品が実装されるが、それらは公知のものであるため、本明細書においてはその説明を省略する。なお、本実施形態では電子機器１をＰＣＩ  Ｅｘｐｒｅｓｓカードとし、再プログラム可能な論理素子をＦＰＧＡとしたが、これらは説明のための一例であって、これに限定されるものではない。
【００２８】
不揮発性メモリ４は、ＦＰＧＡ３のコンフィグレーションデータを記憶するコンフィグレーションデータ記憶部として機能する。不揮発性メモリ４には、フラッシュメモリなどのＥＥＰＲＯＭや各種ＰＲＯＭを好適に用いることができる。もちろん、通常のＲＯＭを使用してもかまわない。
【００２９】
コントローラ５は、電子機器１に電源が投入された際に、ＦＰＧＡ３をコンフィグレーションするための電子回路である。その内部の動作の詳細は後述する。
【００３０】
端子６は、ＰＣＩ  Ｅｘｐｒｅｓｓ規格に準拠した、コンピュータと接続するための端子である。ここでは、ＰＣＩ  Ｅｘｐｒｅｓｓ  ｘ１６を例として図示しているが、これに限られず、ｘ１、ｘ２、ｘ８等、任意の数のレーンを有するものでよい。また、ＰＣＩ  Ｅｘｐｒｅｓｓ規格に限定されるものでなく、ＰＣＩ規格、ＣａｒｄＢｕｓ規格、ＥｘｐｒｅｓｓＣａｒｄ規格等、予め定められた時間以内にコンフィグレーションを終えなければならない任意の規格に基づいてよい。
【００３１】
図２は、電子機器１の機能ブロック図である。
【００３２】
図中破線で示した部分がコントローラ５に相当する部分であり、その内部に、不揮発性メモリ４からコンフィグレーションデータを逐次読み出す読み出し部５１、ダミーデータを作成するダミーデータ作成部５２、ＦＰＧＡ３にコンフィグレーションデータ又はダミーデータを書き出す書き出し部５３、制御部５４、コンフィグレーションデータを読み飛ばすか否か判別する読み飛ばし判別部５５及び、読み飛ばすべきコンフィグレーションデータの位置を記憶する読み飛ばし情報記憶部５６を備えている。これらの機能ブロックは、コントローラ５の内部で動作するプログラムによって仮想的に実現されており、必ずしも物理的に分離可能とは限らない。なお、このプログラムは、コントローラ５にあらかじめ記憶させておいても良いし、磁気テープ等の磁気記録媒体や光ディスク等の光記録媒体等の任意の情報記録媒体に記録して提供してもよく、コンピュータ読み取り可能な電気信号として提供してもよい。
【００３３】
図３は、不揮発性メモリ４が記憶しているコンフィグレーションデータを示す図である。
【００３４】
本実施形態では、不揮発性メモリ４は第１のコンフィグレーションデータ４１と、第２のコンフィグレーションデータ４２を記憶している。そして、第１のコンフィグレーションデータ４１は、ヘッダ領域４１ａ、認識用ロジック領域４１ｂ、ダミーデータ領域４１ｃ及びフッタ領域４１ｄからなっている。第２のコンフィグレーションデータ４２は、ヘッダ領域４２ａ、認識用ロジック領域４２ｂ、機能ロジック領域４２ｃ及びフッタ領域４２ｄからなっている。
【００３５】
ヘッダ領域４１ａ，４２ａは、ＦＰＧＡ３へコンフィグレーションデータを書き出す際に必要となるデータを含む領域である。認識用ロジック領域４１ｂ，４２ｂは、電子機器１が接続される機器（本実施形態では、一例として、コンピュータ）が、電子機器１を認識するために必要なロジックを構築するためのデータを含む領域である。この認識用ロジック領域４１ｂ，４２ｂのデータがＦＰＧＡ３に書き出されると、電子機器１は、接続先の機器からの信号に応答するようになり、正常に認識される。
【００３６】
ダミーデータ領域４１ｃは、ＦＰＧＡ３を特定の機能を持つものとして利用することのないロジックを構成するためのデータからなる領域である。本実施形態では、そのようなデータとして、例えば、ＮＯＰ（Ｎｏ  Ｏｐｅｒａｔｉｏｎ）や空デザインなどと呼ばれる、ＦＰＧＡ３に何も実行させないロジックを構築するデータを繰り返したものを用いる。もちろん、別の何らかのロジックを構築するデータを用いてもかまわないが、いずれにせよ、ダミーデータ領域４１ｃに含まれるデータにより構築されたロジックは、何らかの機能を発揮するものとしては利用されない。ダミーデータ領域４１ｃを構成するデータは、前述したＮＯＰ等のサイズの小さいデータを反復したものか、なんらかのアルゴリズムにより生成可能なものであることが好ましい。そして、第１のコンフィグレーションデータ４１における、ダミーデータ領域４１ｃが始まる位置及び終了する位置は、あらかじめ、読み飛ばし情報記憶部５６に記憶される。
【００３７】
機能ロジック領域４２ｃは、ＦＰＧＡ３に特定の機能を発揮させるためのロジックを構成するためのデータからなる領域である。機能ロジック領域４２ｃに含まれるデータがＦＰＧＡ３に書き出されると、電子機器１は、特定の機能を発現する。
【００３８】
フッタ領域４１ｄ，４２ｄは、ＦＰＧＡ３へのコンフィグレーションデータの書き出しを終了する際に必要となるデータを含む領域である。フッタ領域４１ｄ，４２ｄには、ＦＰＧＡ３へデータが正常に書き出されたか否かをチェックするためのデータ、例えば、チェックサムや、ＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）のための符号等が含まれる。
【００３９】
本実施形態では、ヘッダ領域４１ａ，４２ａ及び認識用ロジック領域４１ｂ，４２ｂのデータは、第１のコンフィグレーションデータ４１と第２のコンフィグレーションデータ４２とで共通である。フッタ領域４１ｄ，４２ｄのデータは、ダミーデータ領域４１ｃと機能ロジック領域４２ｃを構成するデータが同一でないため、異なったものとなる。
【００４０】
続いて、図２及び３を参照しつつ、電子機器１のコンフィグレーションの際の動作を説明する。
【００４１】
まず、電子機器１に電源が投入されると、制御部５４は不揮発性メモリ４から第１のコンフィグレーションデータ４１を逐次読み出し、書き出し部５３へと送るよう読み出し部５１を制御する。書き出し部５３はＦＰＧＡ３に受け取ったデータを書き出す。これにより、ＦＰＧＡ３には、第１のコンフィグレーションデータ４１がその先頭から逐次書き出されていく。
【００４２】
一方、読み飛ばし判別部５５は、読み飛ばし情報記憶部５６から、第１のコンフィグレーションデータ４１を読み飛ばすべき位置、すなわち、ダミーデータ領域４１ｃの第１のコンフィグレーションデータ４１における位置を読み込み、読み出し部５１が読み出そうとしているデータが、読み飛ばすべきデータであるダミーデータ領域４１ｃのデータであるか否かを判別し、制御部５４に伝える。
【００４３】
制御部５４は、読み飛ばし判別部５５が、第１のコンフィグレーションデータ４１を読み飛ばさないと判別している間は、読み出し部５１による読み出しを継続させる。その結果、ヘッダ領域４１ａと認識用ロジック領域４１ｂのデータが不揮発性メモリ４から読み出され、ＦＰＧＡ３に書き出される。
【００４４】
一方、読み飛ばし判別部５５が、第１のコンフィグレーションデータ４１を読み飛ばすと判別した場合には、制御部５４は、読み出し部５１による読み出しを停止させ、ダミーデータ作成部５２により作成されたダミーデータを書き出し部５３に送るように制御する。
【００４５】
ダミーデータ作成部５２は、ＮＯＰを構成するデータをダミーデータとして反復して生成する。したがって、読み飛ばし判別部５５が、第１のコンフィグレーションデータ４１を読み飛ばすと判別している間は、ＦＰＧＡ３にはＮＯＰを生成するデータが反復して書き出されることになる。このようにして書き出されるデータは、ダミーデータ領域４１ｃを構成するデータと同一のものとなる。もちろん、ダミーデータ領域４１ｃを構成するデータがＮＯＰ以外のものであれば、ダミーデータ作成部５２はそれと同一のデータを作成する。
【００４６】
再度、読み飛ばし判別部５５が、第１のコンフィグレーションデータ４１を読み飛ばさないと判別すると、制御部５４は、読み出し部５１が不揮発性メモリ４よりデータ、すなわち、フッタ領域４１ｄを読み出し、書き出し部５３に送るよう制御する。
【００４７】
このようにして第１のコンフィグレーションデータ４１がＦＰＧＡ３に書き出されると、ＦＰＧＡ３は、書き出しが正常に行われたか否かのチェックを行い、その結果が正常であれば、電子機器１は、接続先の機器から認識可能な状態となる。
【００４８】
以上の説明から明らかなように、読み飛ばし判別部５５が、第１のコンフィグレーションデータ４１を読み飛ばすと判別している場合には、コントローラ５がその内部に有するダミーデータ作成部５２により作成したダミーデータをＦＰＧＡ３に書き出す。そして、コントローラ５の動作は、不揮発性メモリ４からのデータの読み出しより高速であるから、第１のコンフィグレーションデータ４１の書き出しは、その全てを不揮発性メモリ４から読み出して書き出す場合に比して、高速に完了する。
【００４９】
さらに、制御部５４は、第１のコンフィグレーションデータ４１の書き出しが完了すると、第２のコンフィグレーションデータ４２をＦＰＧＡ３に書き出すように、読み出し部５１を制御する。この場合は、第２のコンフィグレーションデータ４２の全てが不揮発性メモリ４から読み出され、既にＦＰＧＡ３に書き出された第１のコンフィグレーションデータ４１に上書きされる。この結果、ダミーデータ領域４１ｃのデータが機能ロジック領域４２ｃのデータに上書きされるため、電子機器１は特定の機能を発現する。
【００５０】
なお、以上の説明では、第２のコンフィグレーションデータ４２をＦＰＧＡ３に書き出す際に、第２のコンフィグレーションデータ４２の全てを不揮発性メモリ４から読み出すものとしたが、これを部分的に読み出すようにしても良い。すなわち、第２のコンフィグレーションデータ４２のうち、機能ロジック領域４２ｃ及びフッタ領域４２ｄのみを不揮発性メモリ４から読み出し、ＦＰＧＡ３に書き出すようにしても良い。また、ＦＰＧＡ３が、データが正常に書き出されたか否かのチェックを行わないものである場合には、機能ロジック領域４２ｃのみを書き出すようにしても良い。さらに、機能ロジック領域４２ｃの一部分のみが特定の機能を実現するために使用され、残りの部分はＮＯＰで埋められているなど使用されない場合には、機能ロジック領域４２ｃの当該一部分のみを書き出すようにしても良い。いずれにせよ、第１のコンフィグレーションデータ４１におけるダミーデータの少なくとも一部分は、第２のコンフィグレーションデータ４２により上書きされる。
【００５１】
また、読み出し部５１にバッファを設けてもよい。電子機器１をこのように構成し、ダミーデータをＦＰＧＡ３に書き出している間に、不揮発性メモリ４からのデータを読み出すようにすると、第１のコンフィグレーションデータ４１の書き出しはさらに高速に完了する。
【００５２】
なお、図２ではコントローラ５内部に読み飛ばし情報記憶部５６が存在するものとして図示したが、これに限られず、コントローラ５の外部に読み飛ばし情報記憶部５６が存在してもよい。また、不揮発性メモリ４の一部に読み飛ばし情報を記憶させ、読み飛ばし情報記憶部５６を代替させても良い。
【００５３】
次に、本発明の第２の実施形態を図４を参照しつつ説明する。
【００５４】
図４は、本実施形態に係る電子機器１の機能ブロック図である。本実施形態は、読み飛ばし情報記憶部を持たず、読み飛ばし判別部５５’が、読み出し部５１が読み出すデータに基づいて、第１のコンフィグレーションデータ４１を読み飛ばすか否か判別する点において第１の実施形態と異なり、その他の点においては同一であるから、重複する部分については第１の実施形態と同符号を付し、その説明は省略する。
【００５５】
本実施形態では、符号５７に示すように、読み出し部５１が逐次読み出す第１のコンフィグレーションデータ４１は、読み飛ばし判別部５５’にも送られる。読み飛ばし判別部５５’は、第１のコンフィグレーションデータ４１を読み飛ばすか否かの判別を、読み出し部５１が読み出すデータに基づいて、特定のデータ、たとえば、ＮＯＰが読み出されたことを検出することにより行う。すなわち、ＮＯＰが読み出されるまでは読み飛ばさないと判別し、ＮＯＰが検出されると読み飛ばすと判別するのである。読み飛ばす範囲の終了位置は、ＦＰＧＡ３へ書き出すデータの位置が、フッタ領域４１ｄを書き出すべき位置に来たことにより判別する。
【００５６】
なお、読み飛ばし判別部５５’が検出するデータはＮＯＰに限られず、その他の特定のデータであっても良い。
【００５７】
続いて、本発明の第３の実施形態を図５を参照しつつ説明する。
【００５８】
図５は、本実施形態に係る電子機器１において不揮発性メモリ４が記憶しているコンフィグレーションデータを示す図である。本実施形態は、不揮発性メモリ４が第２のコンフィグレーションデータ４２を記憶しているが、第１のコンフィグレーションデータを記憶していない点において第１の実施形態と異なり、その他の点においては同一であるから、重複する部分については第１の実施形態と同符号を付し、その説明は省略する。
【００５９】
図５において、符号４３で示されるデータは、第１のコンフィグレーションデータが存在したとしたならば、そのフッタ領域となるべきデータである。ここでは、便宜的に差替データ４３と呼ぶことにする。第２のコンフィグレーションデータ４２は、第１の実施形態と同様である。
【００６０】
本実施形態における電子機器１のコンフィグレーションの際の動作は次のとおりである。
【００６１】
図２を再度参照し、まず、電子機器１に電源が投入されると、制御部５４は不揮発性メモリ４から第２のコンフィグレーションデータ４２を逐次読み出し、書き出し部５３へと送るよう読み出し部５１を制御する。書き出し部５３はＦＰＧＡ３に受け取ったデータを書き出す。これにより、ＦＰＧＡ３には、第２のコンフィグレーションデータ４２がその先頭から逐次書き出されていく。
【００６２】
一方、読み飛ばし判別部５５は、読み飛ばし情報記憶部５６から、第２のコンフィグレーションデータ４２を読み飛ばすべき位置、すなわち、第１のコンフィグレーションデータが存在するならば、そのダミーデータ領域に対応する位置を読み込み、読み出し部５１が読み出そうとしているデータが、読み飛ばすべきデータであるか否かを判別し、制御部５４に伝える。
【００６３】
制御部５４は、読み飛ばし判別部５５が、第２のコンフィグレーションデータ４２を読み飛ばさないと判別している間は、読み出し部５１による読み出しを継続させる。その結果、ヘッダ領域４２ａと認識用ロジック領域４２ｂのデータが不揮発性メモリ４から読み出され、ＦＰＧＡ３に書き出される。
【００６４】
一方、読み飛ばし判別部５５が、第２のコンフィグレーションデータ４２を読み飛ばすと判別した場合には、制御部５４は、読み出し部５１による読み出しを停止させ、ダミーデータ作成部５２により作成されたダミーデータを書き出し部５３に送るように制御する。
【００６５】
すなわち、ダミーデータ作成部５２は、第２のコンフィグレーションデータ４２における機能ロジック領域４２ｃに相当する位置に、ダミーデータを反復して生成し、送り出す。その結果、第１のコンフィグレーションデータが存在するならば、そのダミーデータ領域を構成したであろうデータをＦＰＧＡ３に書き出すことになる。
【００６６】
そして再度、読み飛ばし判別部５５が、第２のコンフィグレーションデータ４２を読み飛ばさないと判別すると、制御部５４は、読み出し部５１が差替データ４３を読み出し、書き出し部５３に送るよう制御する。
【００６７】
このようにすると、ＦＰＧＡ３には、結果として第１の実施形態における第１のコンフィグレーションデータ４１と同一のデータが書き込まれることとなり、電子機器１は、接続先の機器から認識可能な状態となる。また、当然に、第１の実施形態同様に、第１のコンフィグレーションデータ４１と同一のデータの書き出しは高速に完了する。
【００６８】
さらに、制御部５４は、第１のコンフィグレーションデータ４１と同一のデータの書き出しが完了すると、第１の実施形態と同様に第２のコンフィグレーションデータ４２をＦＰＧＡ３に書き出すように、読み出し部５１を制御する。この結果、電子機器１は特定の機能を発現する。
【００６９】
以上の説明から明らかな通り、本実施形態では、第１の実施形態に比して不揮発性メモリ４が記憶するコンフィグレーションデータの分量が少ない。
【００７０】
なお、本実施形態においては、差替データ４３のデータと、第２のコンフィグレーションデータ４２におけるフッタ領域４２ｄのデータとが異なるために、差替データ４３を第２のコンフィグレーションデータ４２とは別個に用意したが、ＦＰＧＡ３が、データが正常に書き出されたか否かのチェックを行わないものである場合には、両者は同一のデータでよいことになるから、差替データ４３を用意せず、フッタ領域４２ｄで代替してもよい。
【００７１】
さらに、本発明の好適な第４の実施形態は、上記第１乃至第３の実施形態に係る電子機器１の少なくともいずれかを搭載した画像形成装置である。ここで、電子機器１に実装されたＦＰＧＡ３には、コンフィグレーションにより、画像形成装置の機能の少なくとも一部を実現するための論理回路が書き込まれる。電子機器１により実現される画像形成装置の機能には、例えば、画像形成装置自体の動作を制御する機能や、通信用インターフェースとしての機能等がある。
【００７２】
なお、ここで電子機器１は必ずしもＰＣＩ  Ｅｘｐｒｅｓｓカードでなくともよく、また、電子機器１に搭載される再プログラム可能な論理素子はＦＰＧＡ３に限定されない。
【００７３】
また、ここで画像形成装置とは、プリンター、複写機、複合機を指す。複合機とは、プリンターとしての機能、複写機としての機能、スキャナとしての機能、ファクシミリとしての機能のうち少なくとも２つ以上の機能を有する機器である。
【図面の簡単な説明】
【００７４】
【図１】第１の実施形態に係る電子機器を示す概略図である。
【図２】電子機器の機能ブロック図である。
【図３】不揮発性メモリが記憶しているコンフィグレーションデータを示す図である。
【図４】第２の実施形態に係る電子機器の機能ブロック図である。
【図５】第３の実施形態に係る電子機器において不揮発性メモリが記憶しているコンフィグレーションデータを示す図である。
【符号の説明】
【００７５】
１  電子機器、２  基板、３  ＦＰＧＡ、４  不揮発性メモリ、５  コントローラ、６  端子、７  ブラケット、４１  第１のコンフィグレーションデータ、４１ａ  ヘッダ領域、４１ｂ  認識用ロジック領域、４１ｃ  ダミーデータ領域、４１ｄ  フッタ領域、４２  第２のコンフィグレーションデータ、４２ａ  ヘッダ領域、４２ｂ  認識用ロジック領域、４２ｃ  機能ロジック領域、４２ｄ  フッタ領域、４３  差替データ、５１  読み出し部、５２  ダミーデータ作成部、５３  書き出し部、５４  制御部、５５，５５’  読み飛ばし判別部、５６  読み飛ばし情報記憶部。
【図１】
2010102638.tif 000003
【図２】
2010102638.tif 000004
【図３】
2010102638.tif 000005
【図４】
2010102638.tif 000006
【図５】
2010102638.tif 000007