(57)【要約】      （修正有）【課題】柔軟に情報の変更を行うことができる制御システムおよび電子機器を提供する。【解決手段】制御システムは、情報を書き換え不能に記録する第１の記録手段１３に書き込まれた書き込み情報または自身に設定された情報に基づき、第１の記録手段に記録された情報を仮想化するか否かを判定する判定手段３０と、仮想化すると判定された場合、第１の記録手段に記録された情報の読み取り要求に対し、情報の書き換えが可能な第２の記録手段から情報を読み取らせるように、第１の記録手段に記録された情報を仮想化する仮想化手段３１とを含む。【選択図】図５
2020003983.tif 000002
【特許請求の範囲】
【請求項１】
情報の読み取りを制御するシステムであって、
情報を書き換え不能に記録する第１の記録手段に書き込まれた書き込み情報または自身に設定された情報に基づき、前記第１の記録手段に記録された情報を仮想化するか否かを判定する判定手段と、
前記判定手段により仮想化すると判定された場合、前記第１の記録手段に記録された情報の読み取り要求に対し、情報の書き換えが可能な第２の記録手段から情報を読み取らせるように、前記第１の記録手段に記録された情報を仮想化する仮想化手段と
を含む、制御システム。
【請求項２】
前記判定手段は、前記第１の記録手段の指定されたアドレスを参照し、前記アドレスの値を前記書き込み情報として用い、前記仮想化するか否かを判定する、請求項１に記載の制御システム。
【請求項３】
前記第１の記録手段に記録された情報および前記第２の記録手段に記録された情報は、メモリ上に読み出され、
前記仮想化手段は、前記第２の記録手段に記録された情報が読み出されたメモリ上のアドレスを、前記第１の記録手段に記録された情報が読み出されたメモリ上のアドレスとして設定する、請求項１または２に記載の制御システム。
【請求項４】
電子機器を制御する制御手段と、
前記制御手段を起動させる起動手段と
を含み、
前記起動手段は、前記制御手段を起動させる前に、前記判定手段に対し、前記仮想化するか否かを判定するように要求する、請求項１〜３のいずれか１項に記載の制御システム。
【請求項５】
前記起動手段は、前記制御手段を起動させる前に、前記判定手段から仮想化するとの判定結果を受けて、前記仮想化手段に対し、前記第１の記録手段に記録された情報を仮想化するように指示する、請求項４に記載の制御システム。
【請求項６】
前記制御手段は、前記第１の記録手段に対して情報の読み取りを要求し、前記第１の記録手段に記録された情報を仮想化した場合は、前記第２の記録手段に記録された情報を読み取り、仮想化していない場合は、前記第１の記録手段に記録された情報を読み取り、読み取った情報を用いて前記電子機器を制御する、請求項４または５に記載の制御システム。
【請求項７】
請求項１〜６のいずれか１項に記載の制御システムを含む、電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報の読み取りを制御するシステムおよび電子機器に関する。
【背景技術】
【０００２】
電子機器には、不揮発なビット情報を保持することができ、一度ビット情報を変更すると、二度と変更することができないという特徴を有する電子ヒューズが搭載されているものがある。電子ヒューズは、機器の最終構成情報等の上書きされては困る情報を保存する際に使用されている。
【０００３】
しかしながら、特注品で後に装置を追加した場合等、保存した情報を変更したい場合がある。
【０００４】
そこで、仮想の電子ヒューズを用意し、仮想の電子ヒューズの値を読み取るように指定しておくことで、電子ヒューズの値は変更できないが、機器が読み取る値は後からでも変更できるようにした技術が提案されている（例えば、特許文献１参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記の技術では、電子ヒューズを複数ビット読み取り、書き込まれているビットの個数が偶数か、奇数かで、電子ヒューズに記録されている値を読み替える方法であるため、変更可能な回数に制限がある。また、電子ヒューズの値を読み取るように指定されているため、読み取り先を変更しなければならない。これでは、柔軟に情報の変更を行えないという問題があった。
【０００６】
本発明は、上記に鑑みてなされたものであって、柔軟に情報の変更を行うことを可能にするシステムおよび電子機器を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決するために、発明の一実施形態では、情報の読み取りを制御するシステムであって、
情報を書き換え不能に記録する第１の記録手段に書き込まれた書き込み情報または自身に設定された情報に基づき、第１の記録手段に記録された情報を仮想化するか否かを判定する判定手段と、
判定手段により仮想化すると判定された場合、第１の記録手段に記録された情報の読み取り要求に対し、情報の書き換えが可能な第２の記録手段から情報を読み取らせるように、第１の記録手段に記録された情報を仮想化する仮想化手段と
を含む、制御システムを提供する。
【発明の効果】
【０００８】
本発明によれば、柔軟に情報の変更を行えるようになる。
【図面の簡単な説明】
【０００９】
【図１】電子機器のハードウェア構成の一例を示した図。
【図２】情報の読み取り時のメモリアクセスについて説明する図。
【図３】電子機器に搭載される電子ヒューズの一例を示した図。
【図４】電子ヒューズを利用した制御の流れを示したシーケンス図。
【図５】制御システムの構成例を示したブロック図。
【図６】仮想化を実施した場合の情報の読み取り時のメモリアクセスについて説明する図。
【図７】制御システムにより実行される情報の読み取り制御の第１の例を示したシーケンス図。
【図８】制御システムにより実行される情報の読み取り制御の第２の例を示したシーケンス図。
【発明を実施するための形態】
【００１０】
図１は、電子機器のハードウェア構成の一例を示した図である。電子機器は、CPU１０と、DRAM等のメモリ１１と、HDD等の不揮発性記憶装置１２と、電子ヒューズ１３とを含んで構成される。CPU１０は、演算を行う演算ユニットと、演算ユニットが演算を行うために使用するレジスタ１４とを含んで構成される。不揮発性記憶装置１２は、OSや各種のアプリケーション等のソフトウェアや、各種のデータ等を記憶する。
【００１１】
電子ヒューズ１３は、一度書き込みを行ったら、二度と書き換えることができない（書き換え不能）という特徴を有し、電子機器の構成情報等の上書きされては困る情報を保存する。このため、電子ヒューズ１３に情報を保存することで、機器の構成情報を書き換えて機器のグレードを上げる等の悪意を持った行為を防ぐことができる。
【００１２】
電子ヒューズ１３やレジスタ１４等のハードウェアは、メモリ１１と関連付けられ、CPU１０は、メモリ１１にアクセスすることにより処理を実行し、電子機器を制御する。この関連付けは、マップと呼ばれる。ハードウェアがマップされたメモリの領域は、メモリに付与されたアドレスにより管理され、アクセスする際は、アドレスが参照される。
【００１３】
図２に示すように、電子ヒューズ１３がマップされたメモリ領域１５には、電子ヒューズ１３に保存されている情報が読み出され、レジスタ１４がマップされたメモリ領域１６には、レジスタ１４に書かれた情報が読み出される。このため、各メモリ領域１５、１６のアドレスを参照し、各メモリ領域１５、１６にアクセスすることで、各情報を取得することができる。
【００１４】
電子機器は、上記のハードウェアを備える機器であれば情報処理装置や画像形成装置等のいかなる機器であってもよく、例えばスマートフォン、ゲーム機、デジタルカメラ、ビデオカメラ、プリンタ、MFP(Multi-Function Peripheral)、プロジェクタ等とすることができる。このため、上記のハードウェアのほか、機器に応じて、入力装置、表示装置、通信装置、画像読取装置、撮像装置等を備えることができる。
【００１５】
デジタルカメラやプリンタ等は、特定の用途に特化した機能を実現するための回路（ASIC）が組み込み機器として実装されている。組み込み回路により実行されるソフトウェアは、組み込みソフトウェアと呼ばれ、その組み込みソフトウェアの中には、同一の命令（バイナリ）で複数の機器に対応するモジュールが存在する。同一のバイナリで複数の機器に対応するには、そのバイナリが動作する機器を判別し、その機器に応じた処理を選択する必要がある。
【００１６】
機器を判別する方法の１つとして、電子ヒューズ１３に保存されている情報を読み取る方法がある。電子ヒューズ１３に保存されている情報としては、図３に示すように、例えばスキャナ機能「あり」、FAX機能「なし」等の情報が挙げられる。これは一例であるので、その他の情報であってもよい。
【００１７】
ところで、電子機器は、機器Aとして製造されたが、その後改造され、機器Bの開発用として用いられる場合がある。このような場合、電子ヒューズ１３には、既に機器Aの情報が書き込まれているので、何らかの方法で読み取る箇所を変更し、機器Bの情報を読み取らせないと、機器Bとしての処理を行うことができない。
【００１８】
例えば、機器AはFAX機能がないが、機器Bは改造してFAX機能を追加した場合、読み取る箇所が変更されないと、電子ヒューズ１３に書き込まれた、FAX機能なしという機器Aの情報が読み取られることになる。これでは、せっかくFAX機能を追加したのに、FAX機能を実現するためのFAXモジュールが起動しないので、FAX機能を使用することができない。
【００１９】
このときの処理について、図４を参照し、読み取る箇所が変更された場合と変更されない場合に分けて説明する。電子機器が、各機能を実現するためのソフトウェアとして各モジュールを備えるものとし、モジュールとして、機能の有無で起動するモジュールを選択するモジュールM２０と、スキャナモジュール２１と、FAXモジュール２２とを含むものとする。
【００２０】
モジュールM２０は、電子ヒューズ１３に保存されている情報を参照し、スキャナの有無を読み取る（図４のS1）。ここでは、電子ヒューズ１３が「あり」の情報を保持しているので、「あり」を返す（図４のS2）。そして、モジュールM２０は、スキャナモジュール２１を起動する（図４のS3）。
【００２１】
次に、モジュールM２０は、電子ヒューズ１３に保存されている情報を参照し、FAXの有無を読み取る（図４のS4、S7）。電子ヒューズ１３に「あり」が書き込まれている場合は、「あり」を返す（図４のS5）。そして、FAXモジュール２２を起動する（図４のS6）。
【００２２】
一方、電子ヒューズ１３に「なし」が書き込まれている場合は、「なし」を返す（図４のS8）。この場合は、モジュールM２０は、FAXモジュール２２を起動しない。改造によりFAX機能を追加した場合も、モジュールM２０は、FAXモジュール２２を起動しない。これは、モジュールM２０が読み取る情報が電子ヒューズ１３の情報で、電子ヒューズ１３には「なし」という情報が保存されているためである。
【００２３】
このように機能を追加し、追加した機能を使用できるようにするためには、読み取る箇所を変更する必要がある。そこで、図５に示す機能構成の制御システムを実装する。制御システムは、少なくとも判定部３０と仮想化部３１とを含み、さらに、起動部３２、制御部３３を含むことができる。
【００２４】
電子ヒューズ１３には、機器の構成情報等が書き込まれるが、特定のビットは、通常書き込まれない。そこで、当該特定のビットを指定し、電子ヒューズ１３の情報を仮想化するか否かを示す仮想化フラグ（値）を書き込むことができる。仮想化フラグは、例えば仮想化する場合の値を１とし、仮想化しない場合の値を０とすることができる。
【００２５】
ここで、電子ヒューズ１３の情報を仮想化するとは、電子ヒューズ１３とは別の電子ヒューズ（仮想電子ヒューズ）に保存されている情報を、電子ヒューズ１３に保存されている情報として参照させることをいう。仮想化フラグは、製造後に電子ヒューズ１３に保存されている情報を書き換えたくなった場合に書き込むことができる。
【００２６】
判定部３０は、電子ヒューズ１３に書き込まれた仮想化フラグを参照し、電子ヒューズ１３の情報を仮想化すべきかどうかを判定する。
【００２７】
判定部３０は、仮想化すべきかどうかを判定する際、仮想化フラグのほか、自身に設定された情報として、自身のバージョン情報を参照することができる。バージョン情報は、改造等が行われるたびに変更されるため、電子機器の製造時のバージョンから変更がない場合は、仮想化しないと判定し、変更がある場合は、仮想化すると判定することができる。
【００２８】
仮想化部３１は、判定部３０の判定結果で、仮想化すると判定された場合に、電子ヒューズ１３の情報を仮想化する。具体的には、仮想化部３１は、メモリ１１上に展開されている仮想電子ヒューズの情報がメモリ１１上のどこにあるかを判断し、そのアドレスを特定する。電子ヒューズ１３の情報と、仮想電子ヒューズの情報は、いずれも同じ構成情報等であるため、電子ヒューズ１３の情報以外に、同じ構成情報等がある場所を確認し、アドレスを特定することができる。これは一例であり、その他の方法により仮想電子ヒューズの情報がある場所を見つけ、アドレスを特定してもよい。
【００２９】
仮想化部３１は、アドレスを特定した後、仮想電子ヒューズの情報が展開されているメモリ１１上のアドレスを、電子ヒューズ１３がマップされているメモリのアドレスとして設定する。
【００３０】
仮想電子ヒューズの情報は、機能を追加したとき等、適時作成し、不揮発性記憶装置１２に保存することができる。
【００３１】
起動部３２は、電子機器が実装するブートローダにより実現され、電子機器に電源が投入された場合に制御部３３を起動する。起動部３２は、制御部３３を起動する前に、判定部３０に対し、電子ヒューズ１３を仮想化するかどうかを問い合わせ、判定結果を取得する。また、起動部３２は、制御部３３を起動する前に、判定結果で、仮想化すると判定された場合、仮想化部３１がメモリを仮想化する際に、どのような値を仮想化するかを、仮想化部３１に対して指示する。ここでは、起動部３２は、電子ヒューズ１３の情報を仮想化することを指示する。
【００３２】
制御部３３は、電子機器が実装するOSの中核部分を構成するカーネルにより実現され、起動部３２により起動される。制御部３３は、設定されたアドレスを参照して電子ヒューズ１３の情報の読み取りを要求し、電子ヒューズ１３の情報が仮想化されていない場合は、電子ヒューズ１３の情報を読み取り、仮想化されている場合は、仮想化部３１により設定されたアドレスの仮想電子ヒューズの情報を読み取る。そして、制御部３３は、読み取った電子ヒューズの情報または仮想電子ヒューズの情報に基づき、機器に応じた制御を実行する。
【００３３】
仮想電子ヒューズは、書き換え可能なHDD等の不揮発性記憶装置１２により実現され、その情報は、メモリ１１上に展開されて使用される。このため、仮想電子ヒューズは、何度でも情報を書き換えることができる。また、電子ヒューズの特定のビットに一度書き込むだけで、仮想電子ヒューズから情報を読み取るようになるため、仮想電子ヒューズの情報を書き換えても、書き換えた後の情報を読み取ることができる。
【００３４】
図６を参照して、仮想化した場合のメモリアクセスについて説明する。図２を参照して説明したように、電子ヒューズ１３やレジスタ等のハードウェアは、メモリ１１にマップされており、メモリアクセスにより制御が行われるように構成されている。
【００３５】
電子ヒューズ１３がマップされているメモリのアドレスを仮想化することで、制御部３３が電子ヒューズ１３のアドレスを参照してきた場合、設定されているアドレスが仮想電子ヒューズの情報が展開されているメモリのアドレスであるため、仮想電子ヒューズの情報を参照させることができる。このため、仮想化された場合は、本当の電子ヒューズ１３の情報は参照されない。
【００３６】
図７を参照して、機器Aを改造した機器Bで、機器Aの情報が書き込まれている電子ヒューズの情報を仮想化し、機器Bの処理を行う例について説明する。制御システムは、ブートローダ等の起動部３２、カーネル等の制御部３３、判定部３０、仮想化部３１を含む。
【００３７】
制御部３３は、機器Aでも、機器Bでも、同様のバイナリで動作することができ、電子ヒューズの情報を参照し、機器Aの処理と機器Bの処理を切り替えて制御することができる。しかしながら、機器Aを改造して機器Bを開発している場合、電子ヒューズに書き込まれている情報は、機器Aの情報で、電子ヒューズの情報を参照して動作する制御部３３は、機器Bの処理に切り替えることはできない。そこで、電子ヒューズの仮想化を行う。
【００３８】
起動部３２は、最初に、判定部３０に対して仮想化すべきかどうかの問い合わせを行う（図７のS1）。この問い合わせは、仮想化判断要求として判定部３０へ送ることができる。判定部３０は、その問い合わせを受けて、電子ヒューズの情報、例えば特定のアドレスの値（特定のビット）を参照し（図７のS2）、その値に応じて、仮想化するかどうかを判定する。この例では、特定のアドレスの値が書き込まれているので、仮想化すると判定する（図７のS3）。
【００３９】
なお、判定部３０は、電子ヒューズの特定のアドレスの値に限らず、自身に設定されているバージョン情報等に基づき、仮想化するかどうかを判定してもよい。
【００４０】
起動部３２は、判定部３０から仮想化するとの判定結果が返ってきた場合（図７のS4）、仮想化を開始するように仮想化部３１に対して指示する（図７のS5）。このとき、起動部３２は、どのような値に仮想化するかを仮想化部３１に対して指示する。仮想化部３１は、起動部３２からの指示を受けて、電子ヒューズの情報の仮想化を実施する（図７のS6）。仮想化部３１は、仮想電子ヒューズ１７の情報が展開されているメモリのアドレスを、電子ヒューズがマップされているメモリのアドレスとして設定する。
【００４１】
起動部３２は、仮想化部３１に対して電子ヒューズの仮想化を指示した後、制御部３３を起動する（図７のS7）。制御部３３は、起動後、電子ヒューズのアドレスを参照し、電子ヒューズの情報の読み取りを行う（図７のS8）。設定された電子ヒューズのアドレスは、仮想電子ヒューズ１７の情報が展開されているメモリのアドレスであるため、制御部３３は、仮想電子ヒューズ１７の情報を読み取り、取得する（図７のS9）。
【００４２】
図７は、仮想化を実施した場合の例を示したが、図８は、仮想化を実施しない場合の例を示す。制御システムは、図７に示す例と同様、ブートローダ等の起動部３２、カーネル等の制御部３３、判定部３０、仮想化部３１を含む。
【００４３】
起動部３２は、最初に、判定部３０に対して仮想化すべきかどうかの問い合わせを行う（図８のS1）。判定部３０は、その問い合わせを受けて、電子ヒューズの情報、例えば特定のアドレスの値（特定のビット）を参照し（図８のS2）、その値に応じて、仮想化すべきかどうかを判定する。この例では、特定のアドレスの値が書き込まれていないので、仮想化しないと判定する（図８のS3）。
【００４４】
この場合も、判定部３０は、電子ヒューズの特定のアドレスの値に限らず、自身に設定されているバージョン情報等に基づき、仮想化するかどうかを判定してもよい。
【００４５】
起動部３２は、判定部３０から仮想化しないとの判定結果が返ってきた場合（図８のS4）、仮想化部３１に対して何も指示せず、制御部３３を起動する（図８のS5）。制御部３３は、起動後、電子ヒューズのアドレスを参照し、電子ヒューズの情報の読み取りを行う（図８のS6）。設定された電子ヒューズのアドレスは、電子ヒューズの情報がマップされているメモリのアドレスであるため、制御部３３は、電子ヒューズの情報を読み取り、取得する（図８のS7）。
【００４６】
このように仮想化する場合も、仮想化しない場合も、カーネルのバイナリを変更することなく、同じ操作で電子ヒューズの情報または仮想電子ヒューズの情報を読み取り、取得することができる。
【００４７】
上記の例では、電子ヒューズの情報を仮想化することについて説明してきたが、仮想化する対象は、電子ヒューズの情報に限られるものではなく、例えば書き込み不可のROMに格納された情報等としてもよい。
【００４８】
これまで本発明を、制御システムおよび電子機器として上述した実施の形態をもって説明してきたが、本発明は上述した実施の形態に限定されるものではない。本発明は、他の実施の形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。したがって、制御システムにより実行される制御方法等も提供することができるものである。
【符号の説明】
【００４９】
１０…CPU
１１…メモリ
１２…不揮発性記憶装置
１３…電子ヒューズ
１４…レジスタ
１５、１６…メモリ領域
１７…仮想電子ヒューズ
２０…モジュールM
２１…スキャナモジュール
２２…FAXモジュール
３０…判定部
３１…仮想化部
３２…起動部
３３…制御部
【先行技術文献】
【特許文献】
【００５０】
【特許文献１】特表２０１０−５１８５４０号公報
【図１】
2020003983.tif 000003
【図２】
2020003983.tif 000004
【図３】
2020003983.tif 000005
【図４】
2020003983.tif 000006
【図５】
2020003983.tif 000007
【図６】
2020003983.tif 000008
【図７】
2020003983.tif 000009
【図８】
2020003983.tif 000010