JP2021111231A - Information processing device and information presentation method - Google Patents

Information processing device and information presentation method Download PDF

Info

Publication number
JP2021111231A
JP2021111231A JP2020003951A JP2020003951A JP2021111231A JP 2021111231 A JP2021111231 A JP 2021111231A JP 2020003951 A JP2020003951 A JP 2020003951A JP 2020003951 A JP2020003951 A JP 2020003951A JP 2021111231 A JP2021111231 A JP 2021111231A
Authority
JP
Japan
Prior art keywords
program
verification
information
execution
information processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2020003951A
Other languages
Japanese (ja)
Inventor
実 橋本
Minoru Hashimoto
実 橋本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2020003951A priority Critical patent/JP2021111231A/en
Publication of JP2021111231A publication Critical patent/JP2021111231A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)

Abstract

To attain a mechanism capable of appropriately presenting users with information relating to verifying programs.SOLUTION: Provided is an information processing device, comprising: execution means for executing a program; first storage means for storing a first program to be executed by the execution means; verification means for verifying appropriateness of the first program, for enabling the execution means to execute the first program if the first program is determined to be appropriate; information presentation means for presenting a user with information; control means for causing the information presentation means to present the user with the information relating to verifying the first program; and switching means which is able to switch a connection source of a signal path to the information presentation means, between the execution means and the control means. The verification means controls the switching means so as to connect the control means to the signal path to the information presentation means if the first program is unable to be executed by the execution means.SELECTED DRAWING: Figure 7

Description

本開示は、情報処理装置及び情報提示方法に関する。 The present disclosure relates to an information processing device and an information presentation method.

情報機器に組み込まれるファームウェアが改竄されるリスクへの対策として、機器の起動時にファームウェアの正当性を検証する手法が知られている。ファームウェアの正当性を検証することは、改竄のみならずファームウェアの劣化から機器を保護する観点でも有益である。 As a countermeasure against the risk of falsification of the firmware incorporated in an information device, a method of verifying the validity of the firmware at the time of booting the device is known. Verifying the correctness of the firmware is useful not only from the viewpoint of tampering but also from the viewpoint of protecting the device from deterioration of the firmware.

特許文献1は、プログラムを主として実行するプロセッサとは別の補助的なプロセッサが主たるプロセッサにより実行されるプログラムの正当性を検証することで、機器による不正な動作のリスクを低減する手法を開示している。主たるプロセッサは、補助的なプロセッサによりプログラムが正当であると判定されるまで起動されない。 Patent Document 1 discloses a method for reducing the risk of unauthorized operation by a device by verifying the validity of a program executed by an auxiliary processor other than the processor that mainly executes the program. ing. The main processor is not started until the auxiliary processor determines that the program is legitimate.

特開2019−128792号公報Japanese Unexamined Patent Publication No. 2019-128792

補助的なプロセッサによるプログラムの検証には、ある程度の時間を要する。検証中又は検証失敗時にシステムによりユーザへ何も情報が提供されなければ、ユーザは、システムが起動しない原因を把握することができない。原因が分からずに待たされたユーザは、例えばシステムを再起動するために電源をオフにしてしまうかもしれない。すると、プログラムの検証はやり直しとなり、システムの正常な起動までに一層長い時間が掛かってしまう。しかし、補助的なプロセッサに主たるプロセッサと同等の情報提示機能を実装することは、複雑さ及びコストの観点から望ましくない。 It takes some time to verify the program by the auxiliary processor. If the system does not provide any information to the user during verification or at the time of verification failure, the user cannot understand the cause of the system not booting. A user who waits without knowing the cause may turn off the power, for example, to restart the system. Then, the verification of the program will be redone, and it will take a longer time for the system to start normally. However, it is not desirable to implement the information presentation function equivalent to that of the main processor in the auxiliary processor from the viewpoint of complexity and cost.

そこで、本開示は、プログラムの検証に関する情報を適切にユーザへ提供できる仕組みを実現することを目的とする。 Therefore, it is an object of the present disclosure to realize a mechanism capable of appropriately providing information on program verification to users.

ある観点によれば、プログラムを実行する実行手段と、前記実行手段による実行のための第1のプログラムを記憶する第1の記憶手段と、前記第1のプログラムの正当性を検証して、前記第1のプログラムが正当であると判定された場合に前記実行手段による前記第1のプログラムの実行を可能にする検証手段と、ユーザへ情報を提示する情報提示手段と、前記情報提示手段に前記第1のプログラムの検証に関する情報をユーザへ提示させる制御手段と、前記情報提示手段への信号経路の接続元を、前記実行手段及び前記制御手段の間で切替可能な切替手段と、を備え、前記検証手段は、前記実行手段による前記第1のプログラムの実行が可能ではない時に、前記制御手段を前記情報提示手段への信号経路へ接続するように前記切替手段を制御する、情報処理装置が提供される。 According to a certain viewpoint, the execution means for executing the program, the first storage means for storing the first program for execution by the execution means, and the validity of the first program are verified, and the above-mentioned The verification means that enables the execution means to execute the first program when the first program is determined to be valid, the information presenting means that presents information to the user, and the information presenting means include the above. A control means for presenting information regarding verification of the first program to the user and a switching means for switching the connection source of the signal path to the information presenting means between the execution means and the control means are provided. The verification means is an information processing apparatus that controls the switching means so as to connect the control means to the signal path to the information presenting means when the execution means cannot execute the first program. Provided.

また別の観点によれば、プログラムを実行する実行手段と、前記実行手段による実行のための第1のプログラムを記憶する第1の記憶手段と、前記第1のプログラムの正当性を検証して、前記第1のプログラムが正当であると判定された場合に前記実行手段による前記第1のプログラムの実行を可能にする検証手段と、ユーザへ情報を提示する情報提示手段と、前記実行手段による実行のための第2のプログラムを記憶する第2の記憶手段と、を備え、前記検証手段は、前記実行手段による前記第1のプログラムの実行が可能ではない時に、前記実行手段による前記第2のプログラムの実行を可能にし、前記実行手段は、前記第2のプログラムを実行することにより、前記情報提示手段に前記第1のプログラムの検証に関する情報をユーザへ提示させる、情報処理装置が提供される。 From another point of view, the validity of the execution means for executing the program, the first storage means for storing the first program for execution by the execution means, and the first program is verified. The verification means that enables the execution of the first program by the execution means when the first program is determined to be valid, the information presentation means that presents information to the user, and the execution means. The verification means includes a second storage means for storing a second program for execution, and the verification means is the second by the execution means when the execution of the first program by the execution means is not possible. The execution means provides an information processing apparatus that enables the execution of the program of the above, and causes the information presenting means to present information regarding the verification of the first program to the user by executing the second program. NS.

本開示によれば、プログラムの検証に関する情報を適切にユーザへ提供することが可能となる。 According to the present disclosure, it is possible to appropriately provide the user with information regarding the verification of the program.

比較例に係るMFPの構成の一例を示すブロック図。The block diagram which shows an example of the structure of the MFP which concerns on the comparative example. 第1の実施形態に係るMFPの構成の一例を示すブロック図。The block diagram which shows an example of the structure of the MFP which concerns on 1st Embodiment. 第1の実施形態に係るメインCPUの詳細な構成の一例を示すブロック図。The block diagram which shows an example of the detailed structure of the main CPU which concerns on 1st Embodiment. 第1の実施形態に係るサブCPUの詳細な構成の一例を示すブロック図。The block diagram which shows an example of the detailed structure of the sub CPU which concerns on 1st Embodiment. 第1の実施形態に係るフラッシュROMのメモリマップの一例を示す説明図。The explanatory view which shows an example of the memory map of the flash ROM which concerns on 1st Embodiment. 第1の実施形態に係るバススイッチの構成の一例を示すブロック図。The block diagram which shows an example of the structure of the bus switch which concerns on 1st Embodiment. 第1の実施形態に係るサブCPUにより実行される処理の流れの第1の例を示すフローチャート。The flowchart which shows 1st example of the flow of processing executed by the sub CPU which concerns on 1st Embodiment. 第1の実施形態に係るサブCPUにより実行される処理の流れの第2の例を示すフローチャート。The flowchart which shows the 2nd example of the flow of processing executed by the sub CPU which concerns on 1st Embodiment. 検証関連情報のいくつかの例を示す模式図。Schematic diagram showing some examples of verification-related information. 第2の実施形態に係るMFPの構成の一例を示すブロック図。The block diagram which shows an example of the structure of the MFP which concerns on 2nd Embodiment. 第2の実施形態に係るバススイッチの構成の一例を示すブロック図。The block diagram which shows an example of the structure of the bus switch which concerns on 2nd Embodiment. 第2の実施形態に係るサブCPUにより実行される処理の流れの一例を示すフローチャート。The flowchart which shows an example of the flow of processing executed by the sub CPU which concerns on 2nd Embodiment. 第2の実施形態に係るメインCPUにより実行される処理の流れの一例を示すフローチャート。The flowchart which shows an example of the flow of processing executed by the main CPU which concerns on 2nd Embodiment.

以下、添付図面を参照して実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものではない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。 Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. The following embodiments do not limit the invention according to the claims. Although a plurality of features are described in the embodiment, not all of the plurality of features are essential to the invention, and the plurality of features may be arbitrarily combined. Further, in the attached drawings, the same or similar configurations are designated by the same reference numbers, and duplicate explanations are omitted.

<<1.概要>>
本明細書では、本開示に係る技術がMFP(Multi-Function Peripheral)に適用される例を主に説明する。しかしながら、本開示に係る技術は、MFPに限定されず、例えばプリンタ、スキャナ、ファクシミリ、PC(Personal Computer)、タブレットデバイス及びスマートフォンといった、いかなる種類の情報処理装置に適用されてもよい。特に説明の無い限り、以下に説明する装置、デバイス、モジュール及びチップといった構成要素の各々は、単一のエンティティで構成されてもよく、又は物理的に異なる複数のエンティティから構成されてもよい。
<< 1. Overview >>
In the present specification, an example in which the technique according to the present disclosure is applied to an MFP (Multi-Function Peripheral) will be mainly described. However, the technique according to the present disclosure is not limited to the MFP, and may be applied to any kind of information processing device such as a printer, a scanner, a facsimile, a PC (Personal Computer), a tablet device, and a smartphone. Unless otherwise specified, each of the components such as devices, devices, modules and chips described below may be composed of a single entity or may be composed of a plurality of physically different entities.

<1−1.比較例>
図1は、比較例に係るMFP1の構成の一例を示すブロック図である。図1を参照すると、MFP1は、メインCPU11、DRAM12、操作I/F13、ネットワークI/F14、プリンタ15、スキャナ16、FAX17、HDD18、画像処理部19及び電源制御部22を備える。MFP1のこれら構成要素は、信号バス20を介して相互に接続される。操作I/F13は、操作部21へ接続される。
<1-1. Comparative example>
FIG. 1 is a block diagram showing an example of the configuration of the MFP 1 according to the comparative example. Referring to FIG. 1, the MFP 1 includes a main CPU 11, a DRAM 12, an operation I / F 13, a network I / F 14, a printer 15, a scanner 16, a FAX 17, an HDD 18, an image processing unit 19, and a power supply control unit 22. These components of the MFP 1 are connected to each other via the signal bus 20. The operation I / F 13 is connected to the operation unit 21.

メインCPU(Central Processing Unit)11は、MFP1の機能の全般を制御するプロセッサである。DRAM(Dynamic Random Access Memory)12は、メインCPU11のための主記憶デバイスであり、メインCPU11により実行されるプログラム及び関連するデータを一時的に記憶する。操作インタフェース(I/F)13は、操作部21を信号バス20へ接続するためのインタフェースである。操作部21は、ユーザによるMFP1の操作のためのユーザインタフェースを提供するユニットである。操作部21は、例えば、ボタンの押下又はタッチパネルへのタッチといったユーザ操作を受け付けると、対応する操作信号を操作I/F13を介してメインCPU11へ出力する。また、操作部21は、例えば、操作のための情報をディスプレイ(図示せず)の画面上に表示させる。ネットワークI/F14は、MFP1による外部の装置との間の通信のためのインタフェースである。ネットワークI/F14は、例えばLAN(Local Area Network)インタフェースであってもよい。プリンタ15は、画像データにより表現される画像をシートへ印刷するユニットである。スキャナ16は、原稿の画像を光学的に読み取り、光信号を電気信号へ変換して、スキャン画像データを生成するユニットである。ファクシミリ(FAX)17は、公衆回線へ接続され、外部のファクシミリ装置との間でファクシミリ通信を行うユニットである。HDD(Hard Disk Drive)18は、いわゆる二次記憶デバイスである。HDD18は、MFP1の様々な機能により利用されるデータと、メインCPU11により実行されるプログラムのうち正当性の検証を要しないプログラムとを記憶する。HDD18は、プリントジョブ及びスキャンジョブをスプールするためのスプール領域、並びにスキャン画像データを再利用に向けて保存するための保存領域として利用されてもよい。画像処理部19は、ネットワークI/F14を介して受信されるプリントジョブの画像データを、プリンタ15による印刷に適した画像データへ変換する処理モジュールである。画像処理部19は、さらに、スキャナ16により読み取られたスキャン画像データについて、ノイズ除去、色空間の変換、回転及びデータ圧縮といった画像処理を実行し得る。さらに、画像処理部19は、HDD18に記憶される画像データについて任意の種類の画像処理を実行してよい。電源制御部22は、MFP1を構成するモジュールへの電力の供給を制御するユニットである。図中では、外部の商用AC電源からの電力の供給及びMFP1内の各モジュールへの電力の供給が太い破線の矢印で簡略的に示されている。 The main CPU (Central Processing Unit) 11 is a processor that controls all the functions of the MFP 1. The DRAM (Dynamic Random Access Memory) 12 is a main storage device for the main CPU 11, and temporarily stores a program executed by the main CPU 11 and related data. The operation interface (I / F) 13 is an interface for connecting the operation unit 21 to the signal bus 20. The operation unit 21 is a unit that provides a user interface for the user to operate the MFP1. When the operation unit 21 receives a user operation such as pressing a button or touching a touch panel, the operation unit 21 outputs a corresponding operation signal to the main CPU 11 via the operation I / F 13. Further, the operation unit 21 displays, for example, information for operation on the screen of a display (not shown). The network I / F14 is an interface for communication with an external device by the MFP1. The network I / F14 may be, for example, a LAN (Local Area Network) interface. The printer 15 is a unit that prints an image represented by image data on a sheet. The scanner 16 is a unit that optically reads an image of a document, converts an optical signal into an electric signal, and generates scanned image data. The facsimile (FAX) 17 is a unit that is connected to a public line and performs facsimile communication with an external facsimile apparatus. The HDD (Hard Disk Drive) 18 is a so-called secondary storage device. The HDD 18 stores data used by various functions of the MFP 1 and a program executed by the main CPU 11 that does not require verification of validity. The HDD 18 may be used as a spool area for spooling the print job and the scan job, and a storage area for storing the scanned image data for reuse. The image processing unit 19 is a processing module that converts the image data of the print job received via the network I / F 14 into image data suitable for printing by the printer 15. The image processing unit 19 can further perform image processing such as noise removal, color space conversion, rotation, and data compression on the scanned image data read by the scanner 16. Further, the image processing unit 19 may execute any kind of image processing on the image data stored in the HDD 18. The power supply control unit 22 is a unit that controls the supply of electric power to the modules constituting the MFP 1. In the figure, the power supply from the external commercial AC power supply and the power supply to each module in the MFP 1 are simply indicated by thick dashed arrows.

図1を参照すると、MFP1は、さらに、フラッシュROM30、サブCPU31及びリセット回路32を含む。メインCPU11、フラッシュROM30及びサブCPU31は、SPI(Serial Peripheral Interface)バス25を介して相互に接続される。 Referring to FIG. 1, the MFP 1 further includes a flash ROM 30, a sub CPU 31, and a reset circuit 32. The main CPU 11, the flash ROM 30, and the sub CPU 31 are connected to each other via the SPI (Serial Peripheral Interface) bus 25.

フラッシュROM30は、メインCPU11による実行のためのプログラムを記憶する記憶手段である。フラッシュROM30は、例えば、メインCPU11の起動時に実行されるブートコードを記述したブートプログラムを記憶する。フラッシュROM30に記憶されるプログラムは、サブCPU31による正当性の検証の対象とされる。 The flash ROM 30 is a storage means for storing a program for execution by the main CPU 11. The flash ROM 30 stores, for example, a boot program that describes a boot code that is executed when the main CPU 11 starts up. The program stored in the flash ROM 30 is subject to verification of validity by the sub CPU 31.

サブCPU31は、フラッシュROM30に記憶されているプログラムの正当性をメインCPU11による実行の前に検証する、補助的なプロセッサである。プログラムが正当な開発者の意図に反して変化している場合には、検証の結果として、プログラムは正当ではないと判定され得る。一方で、そうした変化が無い場合には、プログラムは正当であると判定され得る。例えば、MFP1に不正にアクセスした第三者がプログラムを改竄した場合に、プログラムは正当性を失う。また、装置の経年劣化に起因してプログラムデータのビットが書き換わった場合にも、プログラムは正当性を失う。サブCPU31は、フラッシュROM30に記憶されているプログラムが検証の結果として正当であると判定された場合に、メインCPU11による当該プログラムの実行を可能にする。サブCPU31は、検証の対象のプログラムが正当ではないと判定された場合に、追加的なROM(図示せず)に予め記憶される復旧用バージョンを用いて、正当性を否定されたプログラムを復旧してもよい。 The sub CPU 31 is an auxiliary processor that verifies the validity of the program stored in the flash ROM 30 before execution by the main CPU 11. If the program changes against the intent of a legitimate developer, the verification may result in the program being determined to be legitimate. On the other hand, in the absence of such changes, the program can be justified. For example, if a third party who illegally accesses the MFP1 modifies the program, the program loses its legitimacy. The program also loses its legitimacy when the bits of the program data are rewritten due to aged deterioration of the device. The sub CPU 31 enables the main CPU 11 to execute the program when the program stored in the flash ROM 30 is determined to be valid as a result of verification. When the sub CPU 31 determines that the program to be verified is not valid, the sub CPU 31 recovers the program whose validity is denied by using the recovery version stored in advance in the additional ROM (not shown). You may.

リセット回路32は、リセット信号線41を介してサブCPU31へ接続され、サブCPU31へリセット制御信号を出力する。一方、サブCPU31は、リセット信号線42を介してメインCPU11へ接続され、メインCPU11へリセット制御信号を出力する。これらリセット制御信号は、例えば、“Low”又は“High”という2通りの信号レベルを有する信号である(例えば、“Low”はゼロに相当する電気信号レベル、“High”は1に相当する電気信号レベルであり得る)。リセット制御信号の“Low”レベルは信号の出力先のCPUがリセット状態(無効化状態)に維持されるべきことを、“High”レベルは当該CPUが通常の動作を行うべきことを意味する。 The reset circuit 32 is connected to the sub CPU 31 via the reset signal line 41, and outputs a reset control signal to the sub CPU 31. On the other hand, the sub CPU 31 is connected to the main CPU 11 via the reset signal line 42, and outputs a reset control signal to the main CPU 11. These reset control signals are, for example, signals having two signal levels of "Low" and "High" (for example, "Low" is an electric signal level corresponding to zero and "High" is an electric signal corresponding to 1). Can be signal level). The "Low" level of the reset control signal means that the CPU to which the signal is output should be maintained in the reset state (disabled state), and the "High" level means that the CPU should perform normal operation.

リセット回路32は、例えば、MFP1の電源が投入されると、サブCPU31へ出力されるリセット制御信号の信号レベルを“Low”から“High”へ切替える。この切替えは、リセット解除の指示を意味し、それによりサブCPU31の動作が可能とされる。サブCPU31は、リセット解除の指示に応じて動作を開始し、フラッシュROM30からプログラムを読出して、読出したプログラムの正当性を検証する。この間、サブCPU31からメインCPU11へ出力されるリセット制御信号の信号レベルは、“Low”に維持される。サブCPU31は、プログラムの検証に成功すると、メインCPU11へのリセット制御信号の信号レベルを“Low”から“High”へ切替える。この切替えは、リセット解除の指示を意味し、それによりメインCPU11の動作が可能とされる。メインCPU11は、リセット解除の指示に応じて動作を開始し、プログラムを実行する。 For example, when the power of the MFP 1 is turned on, the reset circuit 32 switches the signal level of the reset control signal output to the sub CPU 31 from “Low” to “High”. This switching means an instruction to release the reset, which enables the operation of the sub CPU 31. The sub CPU 31 starts the operation in response to the reset release instruction, reads the program from the flash ROM 30, and verifies the validity of the read program. During this time, the signal level of the reset control signal output from the sub CPU 31 to the main CPU 11 is maintained at “Low”. When the sub CPU 31 succeeds in verifying the program, the sub CPU 31 switches the signal level of the reset control signal to the main CPU 11 from “Low” to “High”. This switching means an instruction to release the reset, which enables the operation of the main CPU 11. The main CPU 11 starts the operation in response to the reset release instruction and executes the program.

<1−2.課題の説明>
上述したように、メインCPU11がMFP1の基本的なプログラムを実行する前にプログラムの正当性をサブCPU31が検証することで、プログラムの改竄及び劣化といったリスクからMFP1が保護される。サブCPU31が検証失敗時にプログラムを復旧する機能を有する場合には、MFP1のダウンタイムが短縮され、可用性が向上する。しかしながら、図1からも理解されるように、サブCPU31は、操作部21及びネットワークI/F14といった情報提示手段から分離されている。これは、サブCPU31がメインCPU11により実行されるべきプログラムを検証し又は復旧している期間中、サブCPU31によりユーザへ情報を提示できないことを意味する。こうした期間中にユーザへ何も情報が提供されなければ、ユーザは、システムが起動しない原因を把握することができない。原因が分からずに待たされたユーザは、例えばシステムを再起動するために電源をオフにしてしまうかもしれない。すると、プログラムの検証はやり直しとなり、システムの正常な起動までに一層長い時間が掛かってしまう。しかし、サブCPU31にメインCPU11と同等の情報提示機能を実装することは、複雑さ及びコストの観点から望ましくない。
<1-2. Explanation of issues>
As described above, the sub CPU 31 verifies the validity of the program before the main CPU 11 executes the basic program of the MFP 1, so that the MFP 1 is protected from risks such as falsification and deterioration of the program. When the sub CPU 31 has a function of recovering the program when the verification fails, the downtime of the MFP 1 is shortened and the availability is improved. However, as can be seen from FIG. 1, the sub CPU 31 is separated from the information presenting means such as the operation unit 21 and the network I / F14. This means that the sub CPU 31 cannot present information to the user during the period during which the sub CPU 31 is verifying or recovering the program to be executed by the main CPU 11. If no information is provided to the user during these periods, the user will not be able to figure out why the system is not booting. A user who waits without knowing the cause may turn off the power, for example, to restart the system. Then, the verification of the program will be redone, and it will take a longer time for the system to start normally. However, it is not desirable to implement an information presentation function equivalent to that of the main CPU 11 in the sub CPU 31 from the viewpoint of complexity and cost.

<1−3.基本的な原理>
上で説明した不都合を解消するために、次節で説明する第1の実施形態では、操作部21にプログラムの検証に関する情報をユーザへ提示させるコントローラを、MFPに追加的に設けることとする。このコントローラは、メインCPUによるプログラム(例えば、ブートプログラム)の実行が可能ではない時に、プログラムの検証に関する情報をユーザへ提示するように、操作部21を制御する。後に説明する第2の実施形態では、検証に関する情報のユーザへの提示のための第2のプログラムを予め記憶するメモリを、MFPに追加的に設けることとする。この第2のプログラムは、メインCPUによる第1のプログラム(例えば、ブートプログラム)の実行が可能ではない時に、メインCPUにより実行される。メインCPUは、第2のプログラムの実行に基づいて、第1のプログラムの検証に関する情報をユーザへ提示するように操作部21を制御する。いずれのケースでも、プログラムの検証に関する情報をユーザへ適時に提示して、MFPの起動を待受けるユーザに状況を適切に把握させることが可能となる。次節より、これら実施形態の詳細を順に説明する。
<1-3. Basic principle>
In order to eliminate the inconvenience described above, in the first embodiment described in the next section, the MFP is additionally provided with a controller for causing the operation unit 21 to present information regarding program verification to the user. This controller controls the operation unit 21 so as to present information regarding the verification of the program to the user when the program (for example, the boot program) cannot be executed by the main CPU. In the second embodiment described later, the MFP is additionally provided with a memory for storing the second program for presenting the verification information to the user in advance. This second program is executed by the main CPU when the first program (for example, a boot program) cannot be executed by the main CPU. The main CPU controls the operation unit 21 so as to present information regarding the verification of the first program to the user based on the execution of the second program. In either case, it is possible to present the information on the verification of the program to the user in a timely manner so that the user waiting for the startup of the MFP can appropriately grasp the situation. The details of these embodiments will be described in order from the next section.

<<2.第1の実施形態>>
<2−1.装置の全体的な構成例>
図2は、第1の実施形態に係るMFP100の構成の一例を示すブロック図である。図2を参照すると、MFP100は、メインCPU111、DRAM12、操作I/F13、ネットワークI/F14、プリンタ15、スキャナ16、FAX17、HDD18、画像処理部19及び電源制御部22を備える。MFP1のこれら構成要素は、信号バス20を介して相互に接続される。
<< 2. First Embodiment >>
<2-1. Overall configuration example of the device>
FIG. 2 is a block diagram showing an example of the configuration of the MFP 100 according to the first embodiment. Referring to FIG. 2, the MFP 100 includes a main CPU 111, a DRAM 12, an operation I / F 13, a network I / F 14, a printer 15, a scanner 16, a FAX 17, an HDD 18, an image processing unit 19, and a power supply control unit 22. These components of the MFP 1 are connected to each other via the signal bus 20.

MFP100は、さらに、フラッシュROM130、サブCPU131、リセット回路32、情報生成部133及びバススイッチ134を含む。メインCPU111、フラッシュROM130及びサブCPU131は、SPIバス25を介して相互に接続される。操作I/F13は、バススイッチ134を介して操作部121へ接続される。情報生成部133もまた、バススイッチ134を介して操作部121へ接続される。サブCPU131は、制御信号線143を介して情報生成部133へ、制御信号線144を介してバススイッチ134へ接続される。 The MFP 100 further includes a flash ROM 130, a sub CPU 131, a reset circuit 32, an information generation unit 133, and a bus switch 134. The main CPU 111, the flash ROM 130, and the sub CPU 131 are connected to each other via the SPI bus 25. The operation I / F 13 is connected to the operation unit 121 via the bus switch 134. The information generation unit 133 is also connected to the operation unit 121 via the bus switch 134. The sub CPU 131 is connected to the information generation unit 133 via the control signal line 143 and to the bus switch 134 via the control signal line 144.

メインCPU111は、MFP100の機能の全般を制御するプロセッサである。メインCPU111は、サブCPU131からのリセット解除の指示に応じて動作を開始し、フラッシュROM130に記憶されている第1のプログラム(例えば、ブートプログラム)を読出して実行する。第1のプログラムの実行によってMFP100の基本的なシステムが起動すると、メインCPU111は、さらにHDD18に記憶されている様々なプログラム(例えば、OS、デバイスドライバ及びアプリケーションプログラム)を実行する。その結果、MFP100の諸機能がセットアップされる。 The main CPU 111 is a processor that controls all the functions of the MFP 100. The main CPU 111 starts the operation in response to the reset release instruction from the sub CPU 131, and reads and executes the first program (for example, the boot program) stored in the flash ROM 130. When the basic system of the MFP 100 is started by executing the first program, the main CPU 111 further executes various programs (for example, an OS, a device driver, and an application program) stored in the HDD 18. As a result, various functions of the MFP 100 are set up.

操作部121は、上述した操作部21と同様の、MFP100の操作のためのユーザインタフェースを提供するユニットである。操作部121は、例えば、ボタンの押下又はタッチパネルへのタッチといったユーザ操作を受け付けると、対応する操作信号をバススイッチ134へ出力する。また、操作部121は、バススイッチ134を介して入力される情報をディスプレイ(図示せず)の画面上に表示させる。即ち、操作部121は、ユーザへ情報を提示する情報提示手段としての役割を有する。なお、ユーザへの情報の提示は、情報の表示の代わりに(又はそれに加えて)、音声の出力又はメッセージの送信といった他の形式で行われてもよい。 The operation unit 121 is a unit that provides a user interface for operating the MFP 100, similar to the operation unit 21 described above. When the operation unit 121 receives a user operation such as pressing a button or touching a touch panel, the operation unit 121 outputs a corresponding operation signal to the bus switch 134. Further, the operation unit 121 displays the information input via the bus switch 134 on the screen of the display (not shown). That is, the operation unit 121 has a role as an information presenting means for presenting information to the user. It should be noted that the presentation of the information to the user may be performed in another form such as voice output or message transmission instead of (or in addition to) the display of the information.

フラッシュROM130は、メインCPU111による実行のためのプログラム(例えば、第1のプログラム)と、MFP100の基本的な設定のための既定の設定値とを記憶する記憶手段である。フラッシュROM130は、例えば、メインCPU111の起動時に実行されるブートコードを記述したブートプログラムを記憶する。フラッシュROM130は、MFP100のBIOS(Basic Input Output System)プログラムをさらに記憶してもよい。フラッシュROM130に記憶されるプログラムは、サブCPU131による正当性の検証の対象とされる。 The flash ROM 130 is a storage means for storing a program for execution by the main CPU 111 (for example, a first program) and a default setting value for basic settings of the MFP 100. The flash ROM 130 stores, for example, a boot program that describes a boot code that is executed when the main CPU 111 is started. The flash ROM 130 may further store the BIOS (Basic Input Output System) program of the MFP 100. The program stored in the flash ROM 130 is subject to verification of validity by the sub CPU 131.

サブCPU131は、フラッシュROM130に記憶されているプログラムの正当性をメインCPU111による実行の前に検証する、補助的なプロセッサである。サブCPU131は、例えば、第1のプログラムの正当性を検証して、第1のプログラムが正当であると判定された場合に、メインCPU111による第1のプログラムの実行を可能にする。サブCPU131による正当性検証の手法について、後にさらに説明する。サブCPU131は、第1のプログラムが正当ではないと判定された場合に、第1のプログラムの復旧用バージョンを用いて、正当性を否定された第1のプログラムを復旧してもよい。第1のプログラムの復旧用バージョンは、例えば、フラッシュROM130又はその他の記憶媒体(図示せず)に予め記憶され得る。 The sub CPU 131 is an auxiliary processor that verifies the validity of the program stored in the flash ROM 130 before execution by the main CPU 111. The sub CPU 131 verifies the validity of the first program, for example, and enables the main CPU 111 to execute the first program when the first program is determined to be legitimate. The method of validity verification by the sub CPU 131 will be further described later. When the sub CPU 131 determines that the first program is not valid, the sub CPU 131 may recover the first program whose validity has been denied by using the recovery version of the first program. The recovery version of the first program may be pre-stored in, for example, a flash ROM 130 or other storage medium (not shown).

情報生成部133は、第1のプログラムの検証に関する情報(以下、検証関連情報という)を生成し、操作部121を制御して、生成した検証関連情報をユーザへ提示させる補助的な制御手段(例えば、ディスプレイコントローラ)である。本実施形態において、情報生成部133は、バススイッチ134を介して検証関連情報及び制御信号を操作部121へ出力する。情報生成部133から操作部121への検証関連情報の出力は、メインCPU111による第1のプログラムの実行が可能ではない時に行われる。一例として、検証関連情報の出力は、第1のプログラムの検証の開始に応じて行われてもよい。この場合、検証関連情報は、第1のプログラムの正当性の検証が開始されたこと又は検証が実行中であることを報知する内容を含み得る。他の例として、検証関連情報の出力は、第1のプログラムの検証の失敗に応じて行われてもよい。この場合、検証関連情報は、第1のプログラムが正当ではないと判定されたことを報知する内容を含んでもよい。 The information generation unit 133 generates information related to the verification of the first program (hereinafter referred to as verification-related information), controls the operation unit 121, and makes the generated verification-related information presented to the user as an auxiliary control means (hereinafter referred to as verification-related information). For example, a display controller). In the present embodiment, the information generation unit 133 outputs verification-related information and control signals to the operation unit 121 via the bus switch 134. The verification-related information is output from the information generation unit 133 to the operation unit 121 when the main CPU 111 cannot execute the first program. As an example, the output of the verification-related information may be performed in response to the start of the verification of the first program. In this case, the verification-related information may include content notifying that the verification of the validity of the first program has been started or that the verification is in progress. As another example, the output of the verification-related information may be performed in response to the failure of the verification of the first program. In this case, the verification-related information may include content notifying that the first program is determined to be invalid.

バススイッチ134は、操作部121への信号経路の接続元を、メインCPU111及び情報生成部133の間で切替可能な切替手段である。なお、図2からも理解されるように、バススイッチ134は、操作I/F13及び信号バス20を介してメインCPU111と接続される。本実施形態において、バススイッチ134による信号経路の切替えは、サブCPU131により制御される。典型的には、サブCPU131は、第1のプログラムが正当であると判定される前に、情報生成部133を操作部121への信号経路へ接続するようにバススイッチ134を制御する。それにより、操作部121の画面上への検証関連情報の出力が可能となる。また、サブCPU131は、第1のプログラムが正当であると判定された場合に、メインCPU111を操作部121への信号経路へ接続するようにバススイッチ134を制御する。それにより、操作部121の画面上への通常の情報出力が可能となる。バススイッチ134による信号経路の切替制御について、後にさらに説明する。 The bus switch 134 is a switching means capable of switching the connection source of the signal path to the operation unit 121 between the main CPU 111 and the information generation unit 133. As can be understood from FIG. 2, the bus switch 134 is connected to the main CPU 111 via the operation I / F 13 and the signal bus 20. In the present embodiment, the switching of the signal path by the bus switch 134 is controlled by the sub CPU 131. Typically, the sub CPU 131 controls the bus switch 134 to connect the information generation unit 133 to the signal path to the operation unit 121 before the first program is determined to be valid. As a result, verification-related information can be output on the screen of the operation unit 121. Further, the sub CPU 131 controls the bus switch 134 so as to connect the main CPU 111 to the signal path to the operation unit 121 when the first program is determined to be valid. As a result, normal information output on the screen of the operation unit 121 becomes possible. The control of switching the signal path by the bus switch 134 will be further described later.

<2−2.メインCPUの構成例>
図3は、本実施形態に係るメインCPU111の詳細な構成の一例を示すブロック図である。メインCPU111は、CPUコア301、SPI I/F302、バスI/F303、リセット端子304、SRAM305及び信号バス309を含む。
<2-2. Main CPU configuration example>
FIG. 3 is a block diagram showing an example of a detailed configuration of the main CPU 111 according to the present embodiment. The main CPU 111 includes a CPU core 301, an SPI I / F 302, a bus I / F 303, a reset terminal 304, a SRAM 305, and a signal bus 309.

CPUコア301は、メインCPU111の機能を遂行するための演算を実行するプロセッサコアである。SPI I/F302は、SPIバス25を介するメインCPU111と他のSPIデバイスとの間の通信のためのインタフェース(SPIマスタともいう)である。バスI/F303は、信号バス20を介するメインCPU111と他のモジュールとの間の通信のためのインタフェースである。リセット端子304は、サブCPU131からリセット信号線42を介して入力されるリセット制御信号を受け付ける端子である。SRAM305は、メインCPU111のいわゆるキャッシュメモリであり、CPUコア301により演算用のワークメモリとして使用され得る。信号バス309は、CPUコア301、SPI I/F302、バスI/F303及びSRAM305を相互に接続する。 The CPU core 301 is a processor core that executes an operation for performing the function of the main CPU 111. The SPI I / F 302 is an interface (also referred to as an SPI master) for communication between the main CPU 111 and another SPI device via the SPI bus 25. The bus I / F 303 is an interface for communication between the main CPU 111 and other modules via the signal bus 20. The reset terminal 304 is a terminal that receives a reset control signal input from the sub CPU 131 via the reset signal line 42. The SRAM 305 is a so-called cache memory of the main CPU 111, and can be used as a work memory for calculation by the CPU core 301. The signal bus 309 connects the CPU core 301, the SPI I / F 302, the bus I / F 303, and the SRAM 305 to each other.

本実施形態において、MFP100の電源が投入された直後に、リセット端子304が受け付けるリセット制御信号のレベルは“Low”であり、メインCPU111はリセット状態(無効化状態)に維持される。その間、サブCPU131によりプログラムの正当性の検証が行われる。サブCPU131により第1のプログラムが正当であると判定された場合、リセット制御信号のレベルが“High”へ切替わり、CPUコア301は動作を開始する。その動作の冒頭において、CPUコア301は、フラッシュROM130の所定のアドレスに記憶されている第1のプログラムをSPIバス25を介して読出し、読出した第1のプログラムを実行する。上述したように、第1のプログラムは、少なくともブートコードを記述したブートプログラムを含み得る。例えば、メインCPU111は、ブートプログラムを実行してメインCPU111の入出力機能を初期化した後、さらにOS、各モジュールのドライバ及びその他のアプリケーションといったプログラムを実行してMFP100の通常の動作を開始する。本実施形態において、第1のプログラムの正当性が成功裏に検証されるまで、リセット端子304へ入力されるリセット制御信号のレベルは“Low”のまま維持される。その間、メインCPU111の代わりに上述した情報生成部133が、ユーザへの情報の提示を制御する。 In the present embodiment, the level of the reset control signal received by the reset terminal 304 is "Low" immediately after the power of the MFP 100 is turned on, and the main CPU 111 is maintained in the reset state (disabled state). During that time, the sub CPU 131 verifies the validity of the program. When the sub CPU 131 determines that the first program is valid, the level of the reset control signal is switched to "High", and the CPU core 301 starts operation. At the beginning of the operation, the CPU core 301 reads the first program stored in the predetermined address of the flash ROM 130 via the SPI bus 25, and executes the read first program. As mentioned above, the first program may include at least a boot program that describes the boot code. For example, the main CPU 111 executes a boot program to initialize the input / output functions of the main CPU 111, and then further executes a program such as an OS, a driver for each module, and other applications to start normal operation of the MFP 100. In the present embodiment, the level of the reset control signal input to the reset terminal 304 is maintained at "Low" until the validity of the first program is successfully verified. Meanwhile, the above-mentioned information generation unit 133 controls the presentation of information to the user instead of the main CPU 111.

<2−3.サブCPUの構成例>
図4は、本実施形態に係るサブCPU131の詳細な構成の一例を示すブロック図である。サブCPU131は、CPUコア401、SPI I/F402、GPIO403a、403b及び403c、OTP405、SRAM406、リセット端子407、暗号処理部408、信号バス409、ブートROM410及び暗号RAM411を含む。
<2-3. Sub CPU configuration example>
FIG. 4 is a block diagram showing an example of a detailed configuration of the sub CPU 131 according to the present embodiment. The sub CPU 131 includes a CPU core 401, SPI I / F402, GPIO403a, 403b and 403c, OTP405, SRAM 406, a reset terminal 407, a cryptographic processing unit 408, a signal bus 409, a boot ROM 410 and a cryptographic RAM 411.

CPUコア401は、サブCPU131の機能を遂行するための演算を実行するプロセッサコアである。SPI I/F402は、SPIバス25を介するサブCPU131と他のSPIデバイスとの間の通信のためのインタフェース(SPIマスタともいう)である。汎用入出力端子(GPIO)403aは、リセット信号線42を介してメインCPU111へ接続される端子であり、メインCPU111へのリセット制御信号の出力のために使用される。GPIO403bは、制御信号線143を介して情報生成部133へ接続される端子であり、ユーザへ提示すべき情報の生成及び出力を情報生成部133へ指示するために使用される。GPIO403cは、制御信号線144を介してバススイッチ134へ接続される端子であり、操作部121への信号経路の接続元の切替えをバススイッチ134に指示するために使用される。OTP(One Time Programmable)405は、製造時に一度だけ書込みが可能であって、書換えが不能なメモリ領域である。本実施形態では、サブCPU131のファームウェアのハッシュ値を公開鍵暗号方式の秘密鍵で暗号化した暗号化済みハッシュ値(即ち、署名)及び後述するTagのアドレスが、予めOTP405に書込まれ得る。SRAM406は、サブCPU131のいわゆるキャッシュメモリであり、CPUコア401により演算用のワークメモリとして使用され得る。リセット端子407は、リセット回路32からリセット信号線41を介して入力されるリセット制御信号を受け付ける端子である。暗号処理部408は、サブCPU131による署名検証を支援する、暗号関連処理に専用のプロセッサである。例えば、暗号処理部408は、サブCPU131のファームウェア及びメインCPU111のプログラムの署名を復号することにより、それぞれの正当なハッシュ値を復元する。暗号処理部408は、プログラムデータからハッシュ値を導出するためのハッシュ計算を行ってもよい。信号バス409は、CPUコア401、SPI I/F402、GPIO403a、403b、403c、OTP405、SRAM406、暗号処理部408、ブートROM410及び暗号RAM411を相互に接続する。ブートROM410は、サブCPU131のブートコードを記述したブートプログラムを予め記憶する記憶デバイスである。暗号RAM411は、暗号処理部408により処理される高い機密性の求められるデータを一時的に記憶する、暗号関連処理に専用のメモリである。 The CPU core 401 is a processor core that executes an operation for performing the function of the sub CPU 131. The SPI I / F 402 is an interface (also referred to as an SPI master) for communication between the sub CPU 131 and another SPI device via the SPI bus 25. The general-purpose input / output terminal (GPIO) 403a is a terminal connected to the main CPU 111 via the reset signal line 42, and is used for outputting a reset control signal to the main CPU 111. The GPIO403b is a terminal connected to the information generation unit 133 via the control signal line 143, and is used to instruct the information generation unit 133 to generate and output information to be presented to the user. The GPIO403c is a terminal connected to the bus switch 134 via the control signal line 144, and is used to instruct the bus switch 134 to switch the connection source of the signal path to the operation unit 121. The OTP (One Time Programmable) 405 is a memory area that can be written only once at the time of manufacture and cannot be rewritten. In the present embodiment, the encrypted hash value (that is, the signature) obtained by encrypting the hash value of the firmware of the sub CPU 131 with the private key of the public key encryption method and the Tag address described later can be written in the OTP 405 in advance. The SRAM 406 is a so-called cache memory of the sub CPU 131, and can be used as a work memory for calculation by the CPU core 401. The reset terminal 407 is a terminal that receives a reset control signal input from the reset circuit 32 via the reset signal line 41. The encryption processing unit 408 is a processor dedicated to encryption-related processing that supports signature verification by the sub CPU 131. For example, the encryption processing unit 408 restores the respective valid hash values by decrypting the signatures of the firmware of the sub CPU 131 and the program of the main CPU 111. The cryptographic processing unit 408 may perform a hash calculation for deriving a hash value from the program data. The signal bus 409 connects the CPU core 401, SPI I / F402, GPIO403a, 403b, 403c, OTP405, SRAM406, the encryption processing unit 408, the boot ROM 410, and the encryption RAM 411 to each other. The boot ROM 410 is a storage device that stores in advance a boot program in which the boot code of the sub CPU 131 is described. The encryption RAM 411 is a memory dedicated to encryption-related processing that temporarily stores data that requires high confidentiality processed by the encryption processing unit 408.

本実施形態において、MFP100の電源が投入されると、リセット端子407が受付けるリセット制御信号のレベルは“Low”から“High”へ切替わり、CPUコア401は動作を開始する。その動作の冒頭において、CPUコア401は、ブートROM410から自身のブートプログラムをSRAM406へ読出し、読出したブートプログラムを実行する。そして、CPUコア401は、ブートプログラムに従って、上述したようにメインCPU111により実行されるべきプログラムの正当性の検証を開始する。 In the present embodiment, when the power of the MFP 100 is turned on, the level of the reset control signal received by the reset terminal 407 is switched from "Low" to "High", and the CPU core 401 starts operation. At the beginning of the operation, the CPU core 401 reads its own boot program from the boot ROM 410 into the SRAM 406, and executes the read boot program. Then, the CPU core 401 starts verification of the validity of the program to be executed by the main CPU 111 as described above according to the boot program.

<2−4.メモリマップ>
図5は、本実施形態に係るフラッシュROM130のメモリマップの一例を示す説明図である。例えば、フラッシュROM130は、メインCPU FW(例えば、ブートプログラム)501、署名502、Tag503、サブCPU FW504、署名505、及びROM−ID506を予め記憶する。メインCPUファームウェア(FW)501は、例えば、メインCPU111のブートプログラムである。メインCPU FW501は、典型的には、フラッシュROM130の先頭の記憶領域に記憶される。署名502は、メインCPU FW501の正当性検証用の署名(例えば、RSA署名)である。署名502は、(正当な)メインCPU FW501のハッシュ値を暗号化することにより予め導出され、フラッシュROM130に記憶され得る。Tag503は、サブCPU FW504が記憶されている記憶領域の先頭のアドレスを示すデータである。Tag503のアドレスは、上述したようにOTP405に記憶される。サブCPU FW504は、CPUコア401により実行されるプログラムコードを含むファームウェアである。署名505は、サブCPU FW504の正当性検証用の署名(例えば、ECDSA署名)である。署名505は、(正当な)サブCPU FW504の全体又は先頭の特定部分に基づいて予め導出され、フラッシュROM130に記憶され得る。ROM−ID506は、メインCPU FW501が記憶されている記憶領域の先頭のアドレス、その記憶領域のサイズ及び署名502のアドレスを含むデータである。なお、ここでは一例として、署名502がRSA署名、署名505がECDSA署名である例を説明したが、各署名は、RSA署名、DSA署名又はECDSA署名といった、いかなる種類のデジタル署名方式に基づいていてもよい。
<2-4. Memory map>
FIG. 5 is an explanatory diagram showing an example of a memory map of the flash ROM 130 according to the present embodiment. For example, the flash ROM 130 stores the main CPU FW (for example, boot program) 501, signature 502, Tag 503, sub CPU FW 504, signature 505, and ROM-ID 506 in advance. The main CPU firmware (FW) 501 is, for example, a boot program of the main CPU 111. The main CPU FW501 is typically stored in the head storage area of the flash ROM 130. The signature 502 is a signature for verifying the validity of the main CPU FW501 (for example, an RSA signature). The signature 502 can be pre-derived by encrypting the hash value of the (legitimate) main CPU FW501 and stored in the flash ROM 130. The Tag 503 is data indicating the start address of the storage area in which the sub CPU FW504 is stored. The address of Tag503 is stored in OTP405 as described above. The sub CPU FW504 is firmware including a program code executed by the CPU core 401. The signature 505 is a signature for verifying the validity of the sub CPU FW504 (for example, an ECDSA signature). The signature 505 may be pre-derived and stored in the flash ROM 130 based on the whole or heading specific portion of the (legitimate) sub CPU FW504. The ROM-ID 506 is data including the start address of the storage area in which the main CPU FW501 is stored, the size of the storage area, and the address of the signature 502. Here, as an example, an example in which the signature 502 is an RSA signature and the signature 505 is an ECDSA signature has been described, but each signature is based on any kind of digital signature method such as an RSA signature, a DSA signature, or an ECDSA signature. May be good.

<2−5.バススイッチの構成例>
図6は、本実施形態に係るバススイッチ134の構成の一例を示すブロック図である。図6の例では、バススイッチ134は、画像入力端子IMAGE_A、通信端子COM_A、制御入力端子SELECT_IN、画像入力端子IMAGE_B、通信端子COM_B、画像出力端子IMAGE_Y及び通信端子COM_Yを有する。画像入力端子IMAGE_Aは、画像信号線151を介して操作I/F13の画像出力端子IMAGE_OUTへ接続される。通信端子COM_Aは、通信線152を介して操作I/F13の通信端子COMへ接続される。制御入力端子SELECT_INは、制御信号線144を介してサブCPU131のGPIO403cへ接続される。画像入力端子IMAGE_Bは、画像信号線153を介して情報生成部133の画像出力端子IMAGE_OUTへ接続される。通信端子COM_Bは、通信線154を介して情報生成部133の通信端子COMへ接続される。画像出力端子IMAGE_Yは、画像信号線155を介して操作部121の画像入力端子IMAGE_INへ接続される。通信端子COM_Yは、通信線156を介して操作部121の通信端子COMへ接続される。ここでは、検証関連情報は、画像形式で表現された情報であるものとする。画像信号線151、153及び155は、画像形式の情報信号を伝送する信号線である。通信線152、154及び156は、操作部121への制御信号(例えば、画面表示のオン/オフの制御)及び操作部121からの操作信号を伝送する信号線である。サブCPU131のGPIO403bは、制御信号線143を介して情報生成部133の制御入力端子CTRL_INへ接続される。
<2-5. Bus switch configuration example>
FIG. 6 is a block diagram showing an example of the configuration of the bus switch 134 according to the present embodiment. In the example of FIG. 6, the bus switch 134 has an image input terminal IMAGE_A, a communication terminal COM_A, a control input terminal SELECT_IN, an image input terminal IMAGE_B, a communication terminal COM_B, an image output terminal IMAGE_Y, and a communication terminal COM_Y. The image input terminal IMAGE_A is connected to the image output terminal IMAGE_OUT of the operation I / F 13 via the image signal line 151. The communication terminal COM_A is connected to the communication terminal COM of the operation I / F 13 via the communication line 152. The control input terminal SELECT_IN is connected to the GPIO403c of the sub CPU 131 via the control signal line 144. The image input terminal IMAGE_B is connected to the image output terminal IMAGE_OUT of the information generation unit 133 via the image signal line 153. The communication terminal COM_B is connected to the communication terminal COM of the information generation unit 133 via the communication line 154. The image output terminal IMAGE_Y is connected to the image input terminal IMAGE_IN of the operation unit 121 via the image signal line 155. The communication terminal COM_Y is connected to the communication terminal COM of the operation unit 121 via the communication line 156. Here, it is assumed that the verification-related information is information expressed in an image format. The image signal lines 151, 153, and 155 are signal lines for transmitting an information signal in an image format. The communication lines 152, 154 and 156 are signal lines for transmitting a control signal to the operation unit 121 (for example, control of turning on / off the screen display) and an operation signal from the operation unit 121. The GPIO403b of the sub CPU 131 is connected to the control input terminal CTRL_IN of the information generation unit 133 via the control signal line 143.

例えば、サブCPU131は、リセット回路32からのリセット解除の指示に応じて動作を開始し、操作部121への信号経路へ情報生成部133を接続させるための制御信号を制御信号線144を介してバススイッチ134へ出力する。操作部121への信号経路とは、図6に示した画像信号線155及び通信線156であり得る。バススイッチ134は、制御入力端子SELECT_INを介して入力される上記制御信号に従って、画像入力端子IMAGE_Bを画像出力端子IMAGE_Yへ、通信端子COM_Bを通信端子COM_Yへ接続する。それにより、情報生成部133から操作部121への信号出力が可能となる。 For example, the sub CPU 131 starts the operation in response to the reset release instruction from the reset circuit 32, and transmits a control signal for connecting the information generation unit 133 to the signal path to the operation unit 121 via the control signal line 144. Output to bus switch 134. The signal path to the operation unit 121 may be the image signal line 155 and the communication line 156 shown in FIG. The bus switch 134 connects the image input terminal IMAGE_B to the image output terminal IMAGE_Y and the communication terminal COM_B to the communication terminal COM_Y according to the control signal input via the control input terminal SELECT_IN. As a result, the signal can be output from the information generation unit 133 to the operation unit 121.

その後、サブCPU131は、例えば第1のプログラムの正当性の検証を開始する際に、制御信号線143を介して、情報生成部133に、検証関連情報(例えば、検証開始を示す情報)の生成及び出力を指示する。情報生成部133は、サブCPU131からの指示に応じて、検証関連情報を生成し、生成した検証関連情報を画像出力端子IMAGE_OUTから送出する。送出された検証関連情報は、バススイッチ134の画像入力端子IMAGE_B及び画像出力端子IMAGE_Yを経由して、操作部121の画像入力端子IMAGE_INへ到達する。その結果、操作部121により検証関連情報が画面上に表示され、ユーザは、プログラムの検証が行われているためにMFP100が未だ起動しないことを把握することができる。 After that, when the sub CPU 131 starts verification of the validity of the first program, for example, the sub CPU 131 generates verification-related information (for example, information indicating the start of verification) in the information generation unit 133 via the control signal line 143. And instruct the output. The information generation unit 133 generates verification-related information in response to an instruction from the sub CPU 131, and sends the generated verification-related information from the image output terminal IMAGE_OUT. The transmitted verification-related information reaches the image input terminal IMAGE_IN of the operation unit 121 via the image input terminal IMAGE_B and the image output terminal IMAGE_Y of the bus switch 134. As a result, the verification-related information is displayed on the screen by the operation unit 121, and the user can grasp that the MFP 100 has not yet started because the program has been verified.

追加的に又は代替的に、サブCPU131は、例えば第1のプログラムが正当ではないと判定された場合に、制御信号線143を介して、情報生成部133に、検証関連情報(例えば、検証失敗を示す情報)の生成及び出力を指示する。情報生成部133は、サブCPU131からの指示に応じて、検証関連情報を生成し、生成した検証関連情報を画像出力端子IMAGE_OUTから送出する。送出された検証関連情報は、バススイッチ134の画像入力端子IMAGE_B及び画像出力端子IMAGE_Yを経由して、操作部121の画像入力端子IMAGE_INへ到達する。その結果、操作部121により検証関連情報が画面上に表示され、ユーザは、プログラムの検証失敗を原因としてMFP100が未だ起動しないことを把握することができる。 Additionally or alternatively, the sub CPU 131 informs the information generator 133 via the control signal line 143, for example, when the first program is determined to be invalid, for verification-related information (eg, verification failure). (Information indicating) is instructed to generate and output. The information generation unit 133 generates verification-related information in response to an instruction from the sub CPU 131, and sends the generated verification-related information from the image output terminal IMAGE_OUT. The transmitted verification-related information reaches the image input terminal IMAGE_IN of the operation unit 121 via the image input terminal IMAGE_B and the image output terminal IMAGE_Y of the bus switch 134. As a result, the operation unit 121 displays the verification-related information on the screen, and the user can grasp that the MFP 100 has not yet started due to the verification failure of the program.

サブCPU131は、例えば第1のプログラムが正当であると判定された場合には、操作部121への信号経路へメインCPU111(直接的には、操作I/F13)を接続させるための制御信号を制御信号線144を介してバススイッチ134へ出力する。バススイッチ134は、制御入力端子SELECT_INを介して入力される上記制御信号に従って、画像入力端子IMAGE_Aを画像出力端子IMAGE_Yへ、通信端子COM_Aを通信端子COM_Yへ接続する。それにより、メインCPU111から操作部121への信号出力が可能となる。情報生成部133は、操作部121への信号経路から切り離される。メインCPU111は、サブCPU131からのリセット解除の指示に応じて動作を開始し、通常のシステム起動時にユーザへ提示される情報を、バススイッチ134を介して操作部121へ出力する。 For example, when the sub CPU 131 determines that the first program is valid, the sub CPU 131 transmits a control signal for connecting the main CPU 111 (directly, the operation I / F13) to the signal path to the operation unit 121. It is output to the bus switch 134 via the control signal line 144. The bus switch 134 connects the image input terminal IMAGE_A to the image output terminal IMAGE_Y and the communication terminal COM_A to the communication terminal COM_Y according to the control signal input via the control input terminal SELECT_IN. As a result, the signal can be output from the main CPU 111 to the operation unit 121. The information generation unit 133 is separated from the signal path to the operation unit 121. The main CPU 111 starts the operation in response to the reset release instruction from the sub CPU 131, and outputs the information presented to the user at the time of normal system startup to the operation unit 121 via the bus switch 134.

表1は、バススイッチ134における、制御信号の状態に基づく信号経路の切替えの規則を示す真理値表である。 Table 1 is a truth table showing the rules for switching the signal path based on the state of the control signal in the bus switch 134.

Figure 2021111231
Figure 2021111231

表1の例によれば、バススイッチ134は、制御入力端子SELECT_INにおいて受付ける制御入力が“Low”を示す場合、画像入力端子IMAGE_Aを画像出力端子IMAGE_Yへ、通信端子COM_Aを通信端子COM_Yへ接続する。また、バススイッチ134は、制御入力端子SELECT_INにおいて受付ける制御入力が“High”を示す場合、画像入力端子IMAGE_Bを画像出力端子IMAGE_Yへ、通信端子COM_Bを通信端子COM_Yへ接続する。サブCPU131からバススイッチ134への制御信号の初期値は“High”に設定され、それにより、サブCPU131による第1のプログラムの検証が成功するまで、情報生成部133が操作部121へアクセス可能となる。第1のプログラムの検証が成功すると、サブCPU131からバススイッチ134への制御信号は“Low”に変更され、メインCPU111が操作部121へアクセス可能となる。なお、表1に示した規則は一例に過ぎず、他の規則が使用されてもよい(例えば、制御信号の信号レベルを逆にした規則が使用されてもよい)。 According to the example in Table 1, when the control input received at the control input terminal SELECT_IN indicates "Low", the bus switch 134 connects the image input terminal IMAGE_A to the image output terminal IMAGE_Y and the communication terminal COM_A to the communication terminal COM_Y. .. Further, when the control input received by the control input terminal SELECT_IN indicates "High", the bus switch 134 connects the image input terminal IMAGE_B to the image output terminal IMAGE_Y and the communication terminal COM_B to the communication terminal COM_Y. The initial value of the control signal from the sub CPU 131 to the bus switch 134 is set to "High", so that the information generation unit 133 can access the operation unit 121 until the verification of the first program by the sub CPU 131 is successful. Become. If the verification of the first program is successful, the control signal from the sub CPU 131 to the bus switch 134 is changed to "Low", and the main CPU 111 can access the operation unit 121. The rules shown in Table 1 are merely examples, and other rules may be used (for example, rules in which the signal levels of control signals are reversed) may be used.

<2−6.処理の流れ>
ここでは、本実施形態においてMFP100により実行され得る処理の流れを、サブCPU131による処理を中心に説明する。以下に説明する第1の例では、プログラムの検証失敗に応じて、検証関連情報がユーザへ提示される。第2の例では、プログラムの検証が開始される際にも、検証関連情報がユーザへ提示される。
<2-6. Process flow>
Here, the flow of processing that can be executed by the MFP 100 in the present embodiment will be described focusing on the processing by the sub CPU 131. In the first example described below, verification-related information is presented to the user according to the verification failure of the program. In the second example, the verification-related information is presented to the user when the verification of the program is started.

(1)第1の例
図7は、本実施形態に係るサブCPU131により実行される処理の流れの第1の例を示すフローチャートである。なお、以下の説明では、処理ステップをS(ステップ)と略記する。
(1) First Example FIG. 7 is a flowchart showing a first example of a processing flow executed by the sub CPU 131 according to the present embodiment. In the following description, the processing step is abbreviated as S (step).

まず、S701で、サブCPU131は、ブートROM410内のブートプログラムを実行し、サブCPU FW504及び署名505をフラッシュROM130からSRAM406へ読出す。次いで、サブCPU131は、S702で、サブCPU FW504から導出されるハッシュ値と署名505との比較に基づいて、サブCPU FW504が正当であるかを判定する。その後の処理は、判定の結果に依存してS703で分岐し、サブCPU FW504が正当ではないと判定された場合には、図7の処理は終了する。サブCPU FW504が正当であると判定された場合、処理はS704へ進む。 First, in S701, the sub CPU 131 executes the boot program in the boot ROM 410, and reads the sub CPU FW504 and the signature 505 from the flash ROM 130 to the SRAM 406. Next, in S702, the sub CPU 131 determines whether the sub CPU FW 504 is valid based on the comparison between the hash value derived from the sub CPU FW 504 and the signature 505. Subsequent processing branches in S703 depending on the result of the determination, and when it is determined that the sub CPU FW504 is not valid, the processing of FIG. 7 ends. If the sub CPU FW504 is determined to be valid, the process proceeds to S704.

S704で、サブCPU131は、正当であると判定したサブCPU FW504を実行し、メインCPU FWの検証を開始する。S705で、サブCPU131は、メインCPU FW501及び署名502をフラッシュROM130からSRAM406へ読出す。次いで、サブCPU131は、S706で、メインCPU FW501から導出されるハッシュ値と署名502との比較に基づいて、メインCPU FW501が正当であるかを判定する。その後の処理は、判定の結果に依存してS707で分岐し、メインCPU FW501が正当ではないと判定された場合には、処理はS711へ進む。メインCPU FW501が正当であると判定された場合、処理はS708へ進む。 In S704, the sub CPU 131 executes the sub CPU FW 504 determined to be valid, and starts the verification of the main CPU FW. In S705, the sub CPU 131 reads the main CPU FW501 and the signature 502 from the flash ROM 130 to the SRAM 406. Next, in S706, the sub CPU 131 determines whether the main CPU FW 501 is valid based on the comparison between the hash value derived from the main CPU FW 501 and the signature 502. Subsequent processing branches in S707 depending on the result of the determination, and if it is determined that the main CPU FW501 is not valid, the processing proceeds to S711. If the main CPU FW501 is determined to be valid, the process proceeds to S708.

S708で、サブCPU131は、メインCPU FW501が正当であるという判定に応じて、バススイッチ134向けの制御信号の信号レベルを切替えて、操作部121への信号経路にメインCPU111を接続させる。次いで、S709で、サブCPU131は、メインCPU111向けのリセット制御信号の信号レベルを切替えて、メインCPU111のリセット状態を解除し、メインCPU111によるプログラムの実行を可能にする。その後、S710で、サブCPU131は、消費電力を低減するためにスリープ状態へ移行し得る。スリープ状態においても、サブCPU131は、例えば“High”に設定したリセット制御信号のメインCPU111への出力を維持する。なお、サブCPU131がプログラムの正当性検証以外の用途に再利用される場合には、サブCPU131は、スリープ状態へ移行しなくてもよく、又は一旦スリープ状態へ移行したサブCPU131が(例えば、割込信号に応じて)通常状態へ戻ってもよい。 In S708, the sub CPU 131 switches the signal level of the control signal for the bus switch 134 in response to the determination that the main CPU FW501 is valid, and connects the main CPU 111 to the signal path to the operation unit 121. Next, in S709, the sub CPU 131 switches the signal level of the reset control signal for the main CPU 111 to release the reset state of the main CPU 111, and enables the main CPU 111 to execute the program. After that, in S710, the sub CPU 131 may shift to the sleep state in order to reduce the power consumption. Even in the sleep state, the sub CPU 131 maintains the output of the reset control signal set to, for example, “High” to the main CPU 111. When the sub CPU 131 is reused for a purpose other than verification of the validity of the program, the sub CPU 131 does not have to go to the sleep state, or the sub CPU 131 that has once moved to the sleep state is (for example, interrupted). It may return to the normal state (depending on the interrupt signal).

S711で、サブCPU131は、メインCPU FW501が正当ではないという判定に応じて、情報生成部133に、メインCPU FW501が検証の結果として正当ではないと判定されたことを報知する内容を含む検証関連情報の出力を指示する。情報生成部133は、この指示に応じて、バススイッチ134を介して操作部121へ検証関連情報を出力し、検証関連情報は操作部121の画面上に表示される。その後、S710で、サブCPU131は、消費電力を低減するためにスリープ状態へ移行し得る。 In S711, the sub CPU 131 notifies the information generation unit 133 that the main CPU FW 501 is not valid as a result of the verification in response to the determination that the main CPU FW 501 is not valid. Instructs the output of information. In response to this instruction, the information generation unit 133 outputs verification-related information to the operation unit 121 via the bus switch 134, and the verification-related information is displayed on the screen of the operation unit 121. After that, in S710, the sub CPU 131 may shift to the sleep state in order to reduce the power consumption.

なお、サブCPU131は、S711の後、スリープ状態へ移行する代わりに、フラッシュROM130に記憶されているメインCPU FW501を、他の記憶領域に記憶されている復旧用バージョンで上書きすることにより復旧してもよい。その後、システムが再起動されると、図7の処理が再び実行され、S706で復旧後のメインCPU FW501の検証が成功し得る。 The sub CPU 131 recovers by overwriting the main CPU FW501 stored in the flash ROM 130 with a recovery version stored in another storage area instead of shifting to the sleep state after S711. May be good. After that, when the system is restarted, the process of FIG. 7 is executed again, and the verification of the main CPU FW501 after restoration in S706 can be successful.

(2)第2の例
図8は、本実施形態に係るサブCPU131により実行される処理の流れの第2の例を示すフローチャートである。
(2) Second Example FIG. 8 is a flowchart showing a second example of the flow of processing executed by the sub CPU 131 according to the present embodiment.

S701〜S703は、図7に関連して説明した処理ステップであるため、ここでは説明を省略する。サブCPU131は、サブCPU FW504が正当であると判定した場合、S704で、サブCPU FW504を実行し、メインCPU FWの検証を開始する。次いで、S804で、サブCPU131は、情報生成部133に、メインCPU FW501の検証を開始したこと(又は検証を実行中であること)を報知する内容を含む検証関連情報の出力を指示する。情報生成部133は、この指示に応じて、バススイッチ134を介して操作部121へ検証関連情報を出力し、検証関連情報は操作部121の画面上に表示される。また、S705〜S707で、サブCPU131は、メインCPU FW501の正当性を検証する。 Since S701 to S703 are the processing steps described in relation to FIG. 7, the description thereof will be omitted here. When the sub CPU 131 determines that the sub CPU FW 504 is valid, the sub CPU 131 executes the sub CPU FW 504 in S704 and starts the verification of the main CPU FW. Next, in S804, the sub CPU 131 instructs the information generation unit 133 to output verification-related information including the content notifying that the verification of the main CPU FW501 has started (or the verification is being executed). In response to this instruction, the information generation unit 133 outputs verification-related information to the operation unit 121 via the bus switch 134, and the verification-related information is displayed on the screen of the operation unit 121. Further, in S705 to S707, the sub CPU 131 verifies the validity of the main CPU FW501.

メインCPU FW501が正当であると判定された場合、S708で、サブCPU131は、バススイッチ134向けの制御信号の信号レベルを切替えて、操作部121への信号経路にメインCPU111を接続させる。その後のS709及びS710は、図7に関連して説明した処理ステップであるため、ここでは説明を省略する。 When the main CPU FW501 is determined to be valid, in S708, the sub CPU 131 switches the signal level of the control signal for the bus switch 134 and connects the main CPU 111 to the signal path to the operation unit 121. Subsequent S709 and S710 are processing steps described in relation to FIG. 7, and thus description thereof will be omitted here.

メインCPU FW501が正当ではないと判定された場合、S811で、サブCPU131は、情報生成部133に、メインCPU FW501が検証の結果として正当ではないと判定されたことを報知する内容を含む検証関連情報の出力を指示する。情報生成部133は、この指示に応じて、バススイッチ134を介して操作部121へ検証関連情報を出力し、検証関連情報は操作部121の画面上に表示される。その後、S710で、サブCPU131は、消費電力を低減するためにスリープ状態へ移行し得る。 When the main CPU FW501 is determined to be invalid, in S811, the sub CPU 131 notifies the information generation unit 133 that the main CPU FW501 is not valid as a result of the verification. Instructs the output of information. In response to this instruction, the information generation unit 133 outputs verification-related information to the operation unit 121 via the bus switch 134, and the verification-related information is displayed on the screen of the operation unit 121. After that, in S710, the sub CPU 131 may shift to the sleep state in order to reduce the power consumption.

第2の例においても、サブCPU131は、S811の後、スリープ状態へ移行する代わりに、フラッシュROM130に記憶されているメインCPU FW501を、他の記憶領域に記憶されている復旧用バージョンで上書きすることにより復旧してもよい。 Also in the second example, the sub CPU 131 overwrites the main CPU FW501 stored in the flash ROM 130 with the recovery version stored in the other storage area instead of shifting to the sleep state after S811. It may be restored by doing so.

(3)検証関連情報の例
図9は、第1のプログラム(例えば、メインCPU FW501)の検証に関する情報である検証関連情報のいくつかの例を示している。図9(A)に示したメッセージウィンドウ910は、システムの起動に必要なプログラムの検証に失敗したことを報知し、管理者(又はサービスマン)への連絡をユーザに促す内容を示している。メッセージウィンドウ910は、例えば図7のS711又は図8のS811で画面上に表示され得る。図9(B)に示したメッセージウィンドウ920は、システムの起動に必要なプログラムの検証を開始したことを報知し、検証完了まで待機することをユーザに求める内容を示している。メッセージウィンドウ920は、例えば図8のS804で画面上に表示され得る。ユーザは、これらメッセージを見ることで、システムの状況を適時に把握し、待機又は管理者への連絡といった適切な対応をとることができる。なお、ユーザへのこうした情報の提示は、スピーカを介した音声出力又はユーザのアカウントへのメッセージの送信といった他の手段で行われてもよい。
(3) Examples of verification-related information FIG. 9 shows some examples of verification-related information which is information related to verification of the first program (for example, main CPU FW501). The message window 910 shown in FIG. 9A shows the content of notifying that the verification of the program necessary for starting the system has failed and prompting the user to contact the administrator (or serviceman). The message window 910 can be displayed on the screen in, for example, S711 of FIG. 7 or S811 of FIG. The message window 920 shown in FIG. 9B notifies the user that the verification of the program necessary for starting the system has started, and requests the user to wait until the verification is completed. The message window 920 may be displayed on the screen, for example, in S804 of FIG. By seeing these messages, the user can grasp the system status in a timely manner and take appropriate measures such as waiting or contacting the administrator. It should be noted that the presentation of such information to the user may be performed by other means such as voice output through the speaker or transmission of a message to the user's account.

<2−7.第1の実施形態のまとめ>
ここまで、図2〜図9を用いて、本開示の第1の実施形態について説明した。本実施形態では、メインCPUによる実行のための第1のプログラムの正当性を検証するサブCPU、及びディスプレイ(又は、他の種類の情報提示手段)を備える情報処理装置に、上記ディスプレイを制御する追加的なコントローラが設けられる。そして、上記ディスプレイへの信号経路の接続元が、メインCPU及び上記コントローラの間で切替えられる。具体的には、上記第1のプログラムが正当であると判定された場合、メインCPUが上記ディスプレイへの信号経路へ接続され、メインCPUによる上記第1のプログラムの実行が可能とされる。一方、メインCPUによる上記第1のプログラムの実行が可能ではない時に、上記コントローラが上記ディスプレイへの信号経路へ接続され、上記コントローラにより、上記第1のプログラムの検証に関する情報を提示するように上記ディスプレイが制御される。かかる構成によれば、上記第1のプログラムの検証の成功を待つことなく、メインCPUにより通常使用される上記ディスプレイを用いて、上記第1のプログラムの検証に関する情報をユーザに提示することができる。したがって、ユーザは、システムが起動しない原因を適時に把握することができる。また、上記構成によれば、サブCPUにメインCPUと同等の情報提示機能を実装する必要が無いため、装置の構成の複雑化が回避され、コストの増加が抑制される。
<2-7. Summary of the first embodiment>
Up to this point, the first embodiment of the present disclosure has been described with reference to FIGS. 2 to 9. In the present embodiment, the display is controlled by an information processing device including a sub CPU for verifying the validity of the first program for execution by the main CPU and a display (or other type of information presenting means). An additional controller is provided. Then, the connection source of the signal path to the display is switched between the main CPU and the controller. Specifically, when it is determined that the first program is valid, the main CPU is connected to the signal path to the display, and the main CPU can execute the first program. On the other hand, when the main CPU cannot execute the first program, the controller is connected to the signal path to the display, and the controller presents information regarding verification of the first program. The display is controlled. According to such a configuration, information regarding the verification of the first program can be presented to the user by using the display normally used by the main CPU without waiting for the success of the verification of the first program. .. Therefore, the user can timely understand the cause of the system not booting. Further, according to the above configuration, since it is not necessary to implement the information presentation function equivalent to that of the main CPU in the sub CPU, the complexity of the configuration of the device is avoided and the increase in cost is suppressed.

また、本実施形態では、サブCPUは、上記第1のプログラムが正当ではないと判定された場合に、上記コントローラに、上記第1のプログラムの検証に関する情報を、上記ディスプレイへの信号経路へ出力させ得る。かかる構成によれば、上記第1のプログラムの正当性の検証の失敗に応じて、上記第1のプログラムが正当ではないと判定されたことを適時にユーザへ報知することができる。また、ユーザは、こうした報知を受けて、システム管理者への連絡などといった適切な対応を直ちにとることができる。 Further, in the present embodiment, when it is determined that the first program is not valid, the sub CPU outputs information regarding the verification of the first program to the controller to the signal path to the display. I can let you. According to such a configuration, it is possible to timely notify the user that the first program is determined to be invalid in response to the failure of the verification of the validity of the first program. In addition, the user can immediately take appropriate measures such as contacting the system administrator in response to such notification.

また、本実施形態では、サブCPUは、上記第1のプログラムの正当性の検証が開始される場合に、上記コントローラに、上記第1のプログラムの検証に関する情報を、上記ディスプレイへの信号経路へ出力させ得る。その情報は、例えば、検証が開始されたこと又は検証が実行中であることを報知する内容を含み得る。かかる構成によれば、検証にある程度長い時間を要するとしても、装置の動作の状況をユーザへ適切に伝えて、ユーザを不安に陥らせないことができる。 Further, in the present embodiment, when the verification of the validity of the first program is started, the sub CPU sends the information regarding the verification of the first program to the controller to the signal path to the display. Can be output. The information may include, for example, content notifying that the verification has been started or that the verification is in progress. According to such a configuration, even if it takes a long time for verification, it is possible to appropriately inform the user of the operation status of the device and not cause anxiety to the user.

また、本実施形態では、上記第1のプログラムは、ブートプログラムを含む。このブートプログラムの正当性がサブCPUにより保証されることで、上記情報処理装置の動作の安全性が確保される。また、情報提示手段として上記ディスプレイが使用されることで、上記第1のプログラムの実行に基づいてシステムの全体的な機能がセットアップされる前から、ユーザに情報を視覚的に提示することが可能となる。 Further, in the present embodiment, the first program includes a boot program. By guaranteeing the correctness of this boot program by the sub CPU, the safety of the operation of the information processing apparatus is ensured. Further, by using the display as the information presenting means, it is possible to visually present the information to the user even before the overall function of the system is set up based on the execution of the first program. It becomes.

<<3.第2の実施形態>>
<3−1.装置の全体的な構成例>
図10は、第2の実施形態に係るMFP200の構成の一例を示すブロック図である。図10を参照すると、MFP200は、メインCPU211、DRAM12、操作I/F13、ネットワークI/F14、プリンタ15、スキャナ16、FAX17、HDD18、画像処理部19及び電源制御部22を備える。MFP200のこれら構成要素は、信号バス20を介して相互に接続される。操作I/F13は、操作部21へ接続される。
<< 3. Second embodiment >>
<3-1. Overall configuration example of the device>
FIG. 10 is a block diagram showing an example of the configuration of the MFP 200 according to the second embodiment. Referring to FIG. 10, the MFP 200 includes a main CPU 211, a DRAM 12, an operation I / F 13, a network I / F 14, a printer 15, a scanner 16, a FAX 17, an HDD 18, an image processing unit 19, and a power supply control unit 22. These components of the MFP 200 are connected to each other via the signal bus 20. The operation I / F 13 is connected to the operation unit 21.

MFP200は、さらに、フラッシュROM130、サブCPU231、リセット回路32、マスクROM233及びバススイッチ234を含む。フラッシュROM130、サブCPU231及びバススイッチ234は、SPIバス225を介して相互に接続される。マスクROM233は、バススイッチ234を介してSPIバス225へ接続される。サブCPU231は、制御信号線244を介してバススイッチ234へ接続される。 The MFP 200 further includes a flash ROM 130, a sub CPU 231 and a reset circuit 32, a mask ROM 233 and a bus switch 234. The flash ROM 130, the sub CPU 231 and the bus switch 234 are connected to each other via the SPI bus 225. The mask ROM 233 is connected to the SPI bus 225 via the bus switch 234. The sub CPU 231 is connected to the bus switch 234 via the control signal line 244.

メインCPU211は、MFP200の機能の全般を制御するプロセッサである。メインCPU211は、サブCPU231からのリセット解除の指示に応じて動作を開始し、メモリの所定の記憶領域に記憶されているプログラムを読出して実行する。本実施形態では、メインCPU211のリセット状態は、フラッシュROM130に記憶されている第1のプログラムがメインCPU211により実行可能ではない時に解除され得る。例えば、初期状態で、メインCPU211は、バススイッチ234を介してマスクROM233へ接続されている。一実施例において、メインCPU211は、サブCPU231による第1のプログラムの正当性の検証の失敗に応じて、サブCPU231からリセット解除の指示を受付ける。他の実施例において、メインCPU211は、サブCPU231による第1のプログラムの正当性の検証の開始に応じて、サブCPU231からリセット解除の指示を受付ける。いずれのケースでも、プログラム読出しのためのメインCPU211からのアクセスは、バススイッチ234によりマスクROM233へ転送される。その結果、メインCPU211は、マスクROM233から第2のプログラムを読出して実行する。メインCPU211は、第2のプログラムを実行することにより、第1のプログラムの検証に関する検証関連情報を生成し、操作部21に検証関連情報をユーザへ提示させる。前者のケースで提示される検証関連情報は、例えば、第1のプログラムが正当ではないと判定されたことを報知する内容を含んでよい。後者のケースで提示される検証関連情報は、例えば、第1のプログラムの正当性の検証が開始されたこと又は検証が実行中であることを報知する内容を含んでよい。第1のプログラムの正当性の検証が成功した場合、バススイッチ234により信号経路が切替えられ、プログラム読出しのためのメインCPU211からのアクセスは、バススイッチ234によりフラッシュROM130へ転送される。メインCPU211は、リセット解除の指示に応じて、フラッシュROM130から第1のプログラムを読出して実行する。第1のプログラムの実行によってMFP200の基本的なシステムが起動すると、メインCPU211は、さらにHDD18に記憶されている様々なプログラムを実行して、MFP200の諸機能をセットアップする。 The main CPU 211 is a processor that controls all the functions of the MFP 200. The main CPU 211 starts the operation in response to the reset release instruction from the sub CPU 231 to read and execute the program stored in the predetermined storage area of the memory. In the present embodiment, the reset state of the main CPU 211 can be released when the first program stored in the flash ROM 130 is not executable by the main CPU 211. For example, in the initial state, the main CPU 211 is connected to the mask ROM 233 via the bus switch 234. In one embodiment, the main CPU 211 receives a reset release instruction from the sub CPU 231 in response to the failure of the sub CPU 231 to verify the validity of the first program. In another embodiment, the main CPU 211 receives a reset release instruction from the sub CPU 231 in response to the start of verification of the validity of the first program by the sub CPU 231. In either case, the access from the main CPU 211 for reading the program is transferred to the mask ROM 233 by the bus switch 234. As a result, the main CPU 211 reads the second program from the mask ROM 233 and executes it. By executing the second program, the main CPU 211 generates verification-related information related to the verification of the first program, and causes the operation unit 21 to present the verification-related information to the user. The verification-related information presented in the former case may include, for example, content notifying that the first program has been determined to be invalid. The verification-related information presented in the latter case may include, for example, content notifying that the verification of the validity of the first program has started or is in progress. When the verification of the validity of the first program is successful, the signal path is switched by the bus switch 234, and the access from the main CPU 211 for reading the program is transferred to the flash ROM 130 by the bus switch 234. The main CPU 211 reads the first program from the flash ROM 130 and executes it in response to the reset release instruction. When the basic system of the MFP 200 is started by executing the first program, the main CPU 211 further executes various programs stored in the HDD 18 to set up various functions of the MFP 200.

本実施形態に係るメインCPU211の詳細な構成は、SPI I/F302がSPIバス225へバススイッチ234を介して接続されることを除き、図3を用いて説明したメインCPU111の構成と同様であってよい。 The detailed configuration of the main CPU 211 according to the present embodiment is the same as the configuration of the main CPU 111 described with reference to FIG. 3 except that the SPI I / F 302 is connected to the SPI bus 225 via the bus switch 234. You can.

サブCPU231は、フラッシュROM130に記憶されているプログラムの正当性をメインCPU211による実行の前に検証する、補助的なプロセッサである。本実施形態において、サブCPU231は、第1のプログラムの正当性の検証が終了する前に(例えば、初期状態で)、メインCPU211からの信号経路をマスクROM233へ接続するようにバススイッチ234を制御する。バススイッチ234がメインCPU211からの信号経路をマスクROM233へ接続することで、未検証の第1のプログラムがメインCPU211により実行されないことが保証される。一実施例において、サブCPU231は、第1のプログラムが正当ではないと判定された場合、バススイッチ234に信号経路を切替えさせることなく、メインCPU211のリセット状態を解除する。それにより、メインCPU211による第2のプログラムの実行が可能となる。正当性検証の手法は、第1の実施形態に関連して説明した手法と同様であってよい。本実施形態においても、サブCPU231は、第1のプログラムの復旧用バージョンを用いて、正当性を否定された第1のプログラムを復旧してもよい。他の実施例において、サブCPU231は、第1のプログラムの正当性の検証が開始される場合に、メインCPU211のリセット状態を解除する。それにより、メインCPU211による第2のプログラムの実行が可能となる。サブCPU231は、第1のプログラムが正当であると判定された場合、メインCPU211からの信号経路をフラッシュROM130へ接続するようにバススイッチ234を制御する。そして、サブCPU231は、メインCPU211のリセット状態を解除することにより、メインCPU211による第1のプログラムの実行を可能にする。その結果、メインCPU211によりMFP200の基本的なシステムが起動され、MFP200の諸機能がセットアップされる。 The sub CPU 231 is an auxiliary processor that verifies the validity of the program stored in the flash ROM 130 before execution by the main CPU 211. In the present embodiment, the sub CPU 231 controls the bus switch 234 so as to connect the signal path from the main CPU 211 to the mask ROM 233 before the verification of the validity of the first program is completed (for example, in the initial state). do. By connecting the signal path from the main CPU 211 to the mask ROM 233 by the bus switch 234, it is guaranteed that the unverified first program is not executed by the main CPU 211. In one embodiment, when it is determined that the first program is not valid, the sub CPU 231 releases the reset state of the main CPU 211 without causing the bus switch 234 to switch the signal path. As a result, the main CPU 211 can execute the second program. The method of validation may be similar to the method described in relation to the first embodiment. Also in this embodiment, the sub CPU 231 may recover the first program whose validity has been denied by using the recovery version of the first program. In another embodiment, the sub CPU 231 releases the reset state of the main CPU 211 when the verification of the validity of the first program is started. As a result, the main CPU 211 can execute the second program. The sub CPU 231 controls the bus switch 234 so as to connect the signal path from the main CPU 211 to the flash ROM 130 when the first program is determined to be valid. Then, the sub CPU 231 releases the reset state of the main CPU 211, thereby enabling the main CPU 211 to execute the first program. As a result, the main CPU 211 starts the basic system of the MFP 200, and various functions of the MFP 200 are set up.

本実施形態に係るサブCPU231の詳細な構成は、情報生成部133及びバススイッチ134への制御出力の代わりにバススイッチ234への制御出力が存在することを除き、図4を用いて説明したサブCPU131の構成と同様であってよい。 The detailed configuration of the sub CPU 231 according to the present embodiment is described with reference to FIG. 4 except that the control output to the bus switch 234 exists instead of the control output to the information generation unit 133 and the bus switch 134. It may be the same as the configuration of the CPU 131.

マスクROM233は、メインCPU211による実行のための第2のプログラムを記憶する、書換不能な記憶媒体を含む(読取専用の)記憶手段である。第2のプログラムは、例えば、第1のプログラムの検証に関する検証関連情報の提示のための専用のプログラムであってよい。即ち、第2のプログラムは、当該プログラムを実行するデバイスに、情報の提示以外の機能を提供しない。マスクROM233は、第2のプログラムを記憶するための専用のデバイスであってよい。マスクROM233において、第2のプログラムは、図5に例示したフラッシュROM130のメモリマップにおけるメインCPU FW501のアドレスと同じアドレスに記憶される。それにより、メインCPU211が、正当性検証の結果を考慮した能動的な制御を要することなく(アクセス先のメモリデバイスの相違を認識することなく)、第1及び第2のプログラムのうち適切な方を読出して実行することが可能される。 The mask ROM 233 is a (read-only) storage means that includes a non-rewritable storage medium that stores a second program for execution by the main CPU 211. The second program may be, for example, a dedicated program for presenting verification-related information regarding the verification of the first program. That is, the second program does not provide the device that executes the program with any function other than presenting information. The mask ROM 233 may be a dedicated device for storing the second program. In the mask ROM 233, the second program is stored at the same address as the address of the main CPU FW501 in the memory map of the flash ROM 130 illustrated in FIG. As a result, the main CPU 211 does not require active control in consideration of the result of the validity verification (without recognizing the difference in the access destination memory device), and is the appropriate one of the first and second programs. Can be read and executed.

バススイッチ234は、メインCPU211からの信号経路の接続先を、フラッシュROM130及びマスクROM233の間で切替可能な切替手段である。バススイッチ234による信号経路の切替えは、上述したように、サブCPU231により制御される。例えば、バススイッチ234は、メインCPU211による第1のプログラムの実行が可能ではない時に(例えば、初期状態で)、メインCPU211からの信号経路をマスクROM233へ接続する。この状態でメインCPU211が起動した場合には、メインCPU211により第2のプログラムが読出される。また、バススイッチ234は、サブCPU231により第1のプログラムが正当であると判定されると、メインCPU211からの信号経路をフラッシュROM130へ接続する。その後メインCPU211が起動した場合には、メインCPU211により第1のプログラムが読出される。 The bus switch 234 is a switching means capable of switching the connection destination of the signal path from the main CPU 211 between the flash ROM 130 and the mask ROM 233. The switching of the signal path by the bus switch 234 is controlled by the sub CPU 231 as described above. For example, the bus switch 234 connects the signal path from the main CPU 211 to the mask ROM 233 when the first program cannot be executed by the main CPU 211 (for example, in the initial state). When the main CPU 211 is started in this state, the second program is read by the main CPU 211. Further, the bus switch 234 connects the signal path from the main CPU 211 to the flash ROM 130 when the sub CPU 231 determines that the first program is valid. When the main CPU 211 is started after that, the first program is read by the main CPU 211.

<3−2.バススイッチの構成例>
図11は、本実施形態に係るバススイッチ234の構成の一例を示すブロック図である。ここでは、バススイッチ234は、SPIバスの信号経路を切替えるように構成される。メインCPU211及びサブCPU231はSPIのマスタデバイスであり、フラッシュROM130及びマスクROM233はSPIのスレーブデバイスである。
<3-2. Bus switch configuration example>
FIG. 11 is a block diagram showing an example of the configuration of the bus switch 234 according to the present embodiment. Here, the bus switch 234 is configured to switch the signal path of the SPI bus. The main CPU 211 and the sub CPU 231 are SPI master devices, and the flash ROM 130 and mask ROM 233 are SPI slave devices.

SPIは、集積回路間のシリアル通信のための同期的な通信方式の一種である。SPIバスの基本的なアーキテクチャは、マスタデバイスとスレーブデバイスとの間を接続する4本の信号線からなる。それら信号線のうちの2本は、それぞれクロック信号及びスレーブ選択信号(チップ選択(CS)信号ともいう)の伝送用である。他の2本は、マスタデバイスからスレーブデバイスへ(マスタ・アウト・スレーブ・イン(MOSI))のデータ信号の伝送用、及びスレーブデバイスからマスタデバイスへ(マスタ・イン・スレーブ・アウト(MISO))のデータ信号の伝送用である。マスタデバイスは、スレーブ選択信号をアサートして通信相手のスレーブデバイスを選択することを示しつつ、クロック信号をスレーブデバイスへ供給する。すると、それらクロック信号及びスレーブ選択信号に従って、マスタデバイスから選択されたスレーブデバイスへ、又は選択されたスレーブデバイスからマスタデバイスへデータが送信される。 SPI is a kind of synchronous communication method for serial communication between integrated circuits. The basic architecture of the SPI bus consists of four signal lines connecting the master device and the slave device. Two of these signal lines are for transmission of a clock signal and a slave selection signal (also referred to as a chip selection (CS) signal), respectively. The other two are for transmitting data signals from the master device to the slave device (master out slave in (MOSI)) and from the slave device to the master device (master in slave out (MISO)). For the transmission of data signals. The master device supplies the clock signal to the slave device while asserting the slave selection signal to indicate that the slave device of the communication partner is selected. Then, data is transmitted from the master device to the selected slave device or from the selected slave device to the master device according to the clock signal and the slave selection signal.

図11の例では、バススイッチ234は、サブCPU231向けに、選択信号入力端子CS_A、クロック入力端子CLK_A、データ入力端子MOSI_A、データ出力端子MISO_A及び制御入力端子SELECTを有する。選択信号入力端子CS_Aは、信号線251を介してサブCPU231の選択信号出力端子CSへ接続される。信号線251には、さらにフラッシュROM130の選択信号入力端子CSが接続される。クロック入力端子CLK_Aは、信号線252を介してサブCPU231のクロック出力端子CLKへ接続される。信号線252には、さらにフラッシュROM130のクロック入力端子CLKが接続される。データ入力端子MOSI_Aは、信号線253を介してサブCPU231のデータ出力端子MOSIへ接続される。信号線253には、さらにフラッシュROM130のデータ入力端子MOSIが接続される。データ出力端子MISO_Aは、信号線254を介してサブCPU231のデータ入力端子MISOへ接続される。信号線254には、さらにフラッシュROM130のデータ出力端子MISOが接続される。制御入力端子SELECTは、制御信号線244を介してサブCPU231の制御出力端子GPIOへ接続される。バススイッチ234は、さらに、メインCPU211向けに、選択信号入力端子CS_Y、クロック入力端子CLK_Y、データ入力端子MOSI_Y及びデータ出力端子MISO_Yを有する。選択信号入力端子CS_Yは、信号線261を介してメインCPU211の選択信号出力端子CSへ接続される。クロック入力端子CLK_Yは、信号線262を介してメインCPU211のクロック出力端子CLKへ接続される。データ入力端子MOSI_Yは、信号線263を介してメインCPU211のデータ出力端子MOSIへ接続される。データ出力端子MISO_Yは、信号線264を介してメインCPU211のデータ入力端子MISOへ接続される。バススイッチ234は、さらに、マスクROM233向けに、選択信号出力端子CS_B、クロック出力端子CLK_B、データ出力端子MOSI_B及びデータ入力端子MISO_Bを有する。選択信号出力端子CS_Bは、信号線271を介してマスクROM233の選択信号入力端子CSへ接続される。クロック出力端子CLK_Bは、信号線272を介してマスクROM233のクロック入力端子CLKへ接続される。データ出力端子MOSI_Bは、信号線273を介してマスクROM233のデータ入力端子MOSIへ接続される。データ入力端子MISO_Bは、信号線274を介してマスクROM233のデータ出力端子MISOへ接続される。 In the example of FIG. 11, the bus switch 234 has a selection signal input terminal CS_A, a clock input terminal CLK_A, a data input terminal MOSI_A, a data output terminal MISO_A, and a control input terminal SELECT for the sub CPU 231. The selection signal input terminal CS_A is connected to the selection signal output terminal CS of the sub CPU 231 via the signal line 251. The selection signal input terminal CS of the flash ROM 130 is further connected to the signal line 251. The clock input terminal CLK_A is connected to the clock output terminal CLK of the sub CPU 231 via the signal line 252. The clock input terminal CLK of the flash ROM 130 is further connected to the signal line 252. The data input terminal MOSI_A is connected to the data output terminal MOSI of the sub CPU 231 via the signal line 253. The data input terminal MOSI of the flash ROM 130 is further connected to the signal line 253. The data output terminal MISO_A is connected to the data input terminal MISO of the sub CPU 231 via the signal line 254. The data output terminal MISO of the flash ROM 130 is further connected to the signal line 254. The control input terminal SELECT is connected to the control output terminal GPIO of the sub CPU 231 via the control signal line 244. The bus switch 234 further has a selection signal input terminal CS_Y, a clock input terminal CLK_Y, a data input terminal MOSI_Y, and a data output terminal MISO_Y for the main CPU 211. The selection signal input terminal CS_Y is connected to the selection signal output terminal CS of the main CPU 211 via the signal line 261. The clock input terminal CLK_Y is connected to the clock output terminal CLK of the main CPU 211 via the signal line 262. The data input terminal MOSI_Y is connected to the data output terminal MOSI of the main CPU 211 via the signal line 263. The data output terminal MISO_Y is connected to the data input terminal MISO of the main CPU 211 via the signal line 264. The bus switch 234 further has a selection signal output terminal CS_B, a clock output terminal CLK_B, a data output terminal MOSI_B, and a data input terminal MISO_B for the mask ROM 233. The selection signal output terminal CS_B is connected to the selection signal input terminal CS of the mask ROM 233 via the signal line 271. The clock output terminal CLK_B is connected to the clock input terminal CLK of the mask ROM 233 via the signal line 272. The data output terminal MOSI_B is connected to the data input terminal MOSI of the mask ROM 233 via the signal line 273. The data input terminal MISO_B is connected to the data output terminal MISO of the mask ROM 233 via the signal line 274.

例えば、サブCPU231は、リセット回路32からのリセット解除の指示に応じて動作を開始し、初期状態で、メインCPU211からの信号経路をマスクROM233へ接続させるための制御信号を制御信号線244を介してバススイッチ234へ出力する。メインCPU211からの信号経路とは、図11に示した信号線261、262、263及び264であり得る。バススイッチ234は、制御入力端子SELECTを介して入力される上記制御信号に従って、選択信号入力端子CS_Yを選択信号出力端子CS_Bへ、クロック入力端子CLK_Yをクロック出力端子CLK_Bへ接続する。また、バススイッチ234は、データ入力端子MOSI_Yをデータ出力端子MOSI_Bへ、データ出力端子MISO_Yをデータ入力端子MISO_Bへ接続する。それにより、メインCPU211によるマスクROM233からのSPI方式でのプログラムの読出しが可能となる。この接続状態において、メインCPU211からの信号は、信号線251、252、253及び254へ出力されない。そのため、サブCPU231は、メインCPU211のリセット状態を解除したとしても、メインCPU211と競合することなく、フラッシュROM130に記憶されている第1のプログラムの検証(又は復旧)を進めることができる。 For example, the sub CPU 231 starts the operation in response to the reset release instruction from the reset circuit 32, and in the initial state, the control signal for connecting the signal path from the main CPU 211 to the mask ROM 233 is transmitted via the control signal line 244. Is output to the bus switch 234. The signal path from the main CPU 211 may be the signal lines 261, 262, 263 and 264 shown in FIG. The bus switch 234 connects the selection signal input terminal CS_Y to the selection signal output terminal CS_B and the clock input terminal CLK_Y to the clock output terminal CLK_B according to the control signal input via the control input terminal SELECT. Further, the bus switch 234 connects the data input terminal MOSI_Y to the data output terminal MOSI_B and the data output terminal MISO_Y to the data input terminal MISO_B. As a result, the main CPU 211 can read the program from the mask ROM 233 in the SPI method. In this connected state, the signal from the main CPU 211 is not output to the signal lines 251, 252, 253 and 254. Therefore, even if the reset state of the main CPU 211 is released, the sub CPU 231 can proceed with the verification (or recovery) of the first program stored in the flash ROM 130 without competing with the main CPU 211.

例えば、サブCPU231が第1のプログラムの正当性の検証を開始する際に、メインCPU211は、リセット状態を解除され、マスクROM233から第2のプログラムを読出して実行する。メインCPU211は、第2のプログラムを実行することにより、検証関連情報(例えば、検証開始を示す情報)を生成し、生成した検証関連情報を操作部21の画面上に表示させる。その結果、ユーザは、プログラムの検証が行われているためにMFP200が未だ起動しないことを把握することができる。 For example, when the sub CPU 231 starts verifying the validity of the first program, the main CPU 211 is released from the reset state, reads the second program from the mask ROM 233, and executes it. The main CPU 211 generates verification-related information (for example, information indicating the start of verification) by executing the second program, and displays the generated verification-related information on the screen of the operation unit 21. As a result, the user can know that the MFP 200 has not started yet because the program has been verified.

追加的に又は代替的に、サブCPU231が第1のプログラムが正当ではないと判定した場合に、メインCPU211は、リセット状態を解除され、マスクROM233から第2のプログラムを読出して実行する。メインCPU211は、第2のプログラムを実行することにより、検証関連情報(例えば、検証失敗を示す情報)を生成し、生成した検証関連情報を操作部21の画面上に表示させる。その結果、ユーザは、プログラムの検証失敗を原因としてMFP200が未だ起動しないことを把握することができる。 Additionally or additionally, when the sub CPU 231 determines that the first program is not valid, the main CPU 211 is released from the reset state, reads the second program from the mask ROM 233, and executes it. The main CPU 211 generates verification-related information (for example, information indicating verification failure) by executing the second program, and displays the generated verification-related information on the screen of the operation unit 21. As a result, the user can know that the MFP 200 has not yet started due to the program verification failure.

サブCPU231は、例えば第1のプログラムが正当であると判定された場合には、メインCPU211からの信号経路をフラッシュROM130へ接続させるための制御信号を制御信号線244を介してバススイッチ234へ出力する。バススイッチ234は、制御入力端子SELECTを介して入力される上記制御信号に従って、選択信号入力端子CS_Yを選択信号出力端子CS_Aへ、クロック入力端子CLK_Yをクロック出力端子CLK_Aへ接続する。また、バススイッチ234は、データ入力端子MOSI_Yをデータ出力端子MOSI_Aへ、データ出力端子MISO_Yをデータ入力端子MISO_Aへ接続する。それにより、メインCPU211によるフラッシュROM130からのSPI方式でのプログラムの読出しが可能となる。この接続状態において、サブCPU231は、第1のプログラムの正当性の検証が終了しているため、フラッシュROM130へのアクセスを行わない(例えば、スリープ状態に入る)。そのため、メインCPU211は、サブCPU231と競合することなく、信号線251、252、253及び254を介してフラッシュROM130と通信することができる。メインCPU211は、リセット状態を解除され(既に起動済みであった場合には再起動され)、フラッシュROM130から第1のプログラムを読出して実行する。 For example, when the sub CPU 231 is determined to be valid, the sub CPU 231 outputs a control signal for connecting the signal path from the main CPU 211 to the flash ROM 130 to the bus switch 234 via the control signal line 244. do. The bus switch 234 connects the selection signal input terminal CS_Y to the selection signal output terminal CS_A and the clock input terminal CLK_Y to the clock output terminal CLK_A according to the control signal input via the control input terminal SELECT. Further, the bus switch 234 connects the data input terminal MOSI_Y to the data output terminal MOSI_A and the data output terminal MISO_Y to the data input terminal MISO_A. As a result, the main CPU 211 can read the program from the flash ROM 130 in the SPI method. In this connected state, the sub CPU 231 does not access the flash ROM 130 (for example, enters a sleep state) because the verification of the validity of the first program has been completed. Therefore, the main CPU 211 can communicate with the flash ROM 130 via the signal lines 251 and 252, 253 and 254 without competing with the sub CPU 231. The main CPU 211 is released from the reset state (restarted if it has already been started), reads the first program from the flash ROM 130, and executes the program.

表2は、バススイッチ234における、制御信号の状態に基づく信号経路の切替えの規則を示す真理値表である。 Table 2 is a truth table showing the rules for switching the signal path based on the state of the control signal in the bus switch 234.

Figure 2021111231
Figure 2021111231

表2の例によれば、バススイッチ234は、制御入力が“Low”を示す場合、端子CS_A、CLK_A、MOSI_A及びMISO_Aを端子CS_Y、CLK_Y、MOSI_Y及びMISO_Yへそれぞれ接続する。また、バススイッチ234は、制御入力が“High”を示す場合、端子CS_B、CLK_B、MOSI_B及びMISO_Bを端子CS_Y、CLK_Y、MOSI_Y及びMISO_Yへそれぞれ接続する。サブCPU231からバススイッチ234への制御信号の初期値は“High”に設定され、それにより、メインCPU211によるフラッシュROM130へのアクセスが防止される。サブCPU231による第1のプログラムの検証が成功すると、サブCPU231からバススイッチ234への制御信号は“Low”に変更され、メインCPU211がフラッシュROM130へアクセス可能となる。なお、表2に示した規則は一例に過ぎず、他の規則が使用されてもよい(例えば、制御信号の信号レベルを逆にした規則が使用されてもよい)。 According to the example in Table 2, the bus switch 234 connects terminals CS_A, CLK_A, MOSI_A and MISO_A to terminals CS_Y, CLK_Y, MOSI_Y and MISO_Y, respectively, when the control input indicates "Low". Further, the bus switch 234 connects terminals CS_B, CLK_B, MOSI_B and MISO_B to terminals CS_Y, CLK_Y, MOSI_Y and MISO_Y, respectively, when the control input indicates "High". The initial value of the control signal from the sub CPU 231 to the bus switch 234 is set to "High", which prevents the main CPU 211 from accessing the flash ROM 130. If the verification of the first program by the sub CPU 231 is successful, the control signal from the sub CPU 231 to the bus switch 234 is changed to "Low", and the main CPU 211 can access the flash ROM 130. The rules shown in Table 2 are merely examples, and other rules may be used (for example, rules in which the signal levels of control signals are reversed) may be used.

<3−3.処理の流れ>
ここでは、本実施形態においてMFP200により実行され得る処理の流れを説明する。以下に説明する例では、プログラムの検証失敗に応じて、検証関連情報がユーザへ提示される。
<3-3. Process flow>
Here, the flow of processing that can be executed by the MFP 200 in this embodiment will be described. In the example described below, verification-related information is presented to the user according to the verification failure of the program.

(1)サブCPUの処理
図12は、本実施形態に係るサブCPU231により実行される処理の流れの一例を示すフローチャートである。
(1) Processing of Sub CPU FIG. 12 is a flowchart showing an example of a flow of processing executed by the sub CPU 231 according to the present embodiment.

まず、S1200で、サブCPU231は、バススイッチ234向けの制御信号の信号レベルを初期値(例えば、表2の例における“High”)に設定して、メインCPU211からの信号経路をマスクROM233へ接続させる。次いで、S1201で、サブCPU231は、ブートROM410内のブートプログラムを実行し、サブCPU FW504及び署名505をフラッシュROM130からSRAM406へ読出す。次いで、サブCPU231は、S1202で、サブCPU FW504から導出されるハッシュ値と署名505との比較に基づいて、サブCPU FW504が正当であるかを判定する。その後の処理は、判定の結果に依存してS1203で分岐し、サブCPU FW504が正当ではないと判定された場合には、図12の処理は終了する。サブCPU FW504が正当であると判定された場合、処理はS1204へ進む。 First, in S1200, the sub CPU 231 sets the signal level of the control signal for the bus switch 234 to an initial value (for example, “High” in the example of Table 2), and connects the signal path from the main CPU 211 to the mask ROM 233. Let me. Next, in S1201, the sub CPU 231 executes the boot program in the boot ROM 410, and reads the sub CPU FW 504 and the signature 505 from the flash ROM 130 to the SRAM 406. Next, in S1202, the sub CPU 231 determines whether the sub CPU FW 504 is valid based on the comparison between the hash value derived from the sub CPU FW 504 and the signature 505. Subsequent processing branches in S1203 depending on the result of the determination, and when it is determined that the sub CPU FW504 is not valid, the processing of FIG. 12 ends. If the sub CPU FW504 is determined to be valid, the process proceeds to S1204.

S1204で、サブCPU231は、正当であると判定したサブCPU FW504を実行し、メインCPU FWの検証を開始する。S1205で、サブCPU231は、メインCPU FW501及び署名502をフラッシュROM130からSRAM406へ読出す。次いで、サブCPU231は、S1206で、メインCPU FW501から導出されるハッシュ値と署名502との比較に基づいて、メインCPU FW501が正当であるかを判定する。その後の処理は、判定の結果に依存してS1207で分岐し、メインCPU FW501が正当であると判定された場合、処理はS1208へ進む。メインCPU FW501が正当ではないと判定された場合には、S1208はスキップされ、処理はS1209へ進む。 In S1204, the sub CPU 231 executes the sub CPU FW 504 determined to be valid, and starts the verification of the main CPU FW. In S1205, the sub CPU 231 reads the main CPU FW501 and the signature 502 from the flash ROM 130 to the SRAM 406. Next, in S1206, the sub CPU 231 determines whether the main CPU FW 501 is valid based on the comparison between the hash value derived from the main CPU FW 501 and the signature 502. Subsequent processing branches at S1207 depending on the result of the determination, and when the main CPU FW501 is determined to be valid, the processing proceeds to S1208. If it is determined that the main CPU FW501 is not valid, S1208 is skipped and the process proceeds to S1209.

S1208で、サブCPU231は、バススイッチ234向けの制御信号の信号レベルを(例えば、表2の例における“Low”に)切替えて、メインCPU211からの信号経路をフラッシュROM130へ接続させる。次いで、S1209で、サブCPU231は、メインCPU211向けのリセット制御信号の信号レベルを切替えて、メインCPU211のリセット状態を解除し、メインCPU211によるプログラムの実行を可能にする。その後、S1210で、サブCPU231は、スリープ状態へ移行し得る。スリープ状態においても、サブCPU231は、例えば“High”に設定したリセット制御信号のメインCPU211への出力を維持する。第1の実施形態において説明したように、サブCPU231は、必ずしもスリープ状態へ移行しなくてもよく、一旦スリープ状態へ移行したサブCPU231が(例えば、割込信号に応じて)通常状態へ戻ってもよい。 In S1208, the sub CPU 231 switches the signal level of the control signal for the bus switch 234 (for example, to "Low" in the example of Table 2) to connect the signal path from the main CPU 211 to the flash ROM 130. Next, in S1209, the sub CPU 231 switches the signal level of the reset control signal for the main CPU 211 to release the reset state of the main CPU 211, and enables the main CPU 211 to execute the program. After that, in S1210, the sub CPU 231 can shift to the sleep state. Even in the sleep state, the sub CPU 231 maintains the output of the reset control signal set to, for example, “High” to the main CPU 211. As described in the first embodiment, the sub CPU 231 does not necessarily have to go to the sleep state, and the sub CPU 231 that has once moved to the sleep state returns to the normal state (for example, in response to an interrupt signal). May be good.

S1208でバススイッチ234により信号経路が切替えられた後にS1209でメインCPU211のリセット状態が解除されると、メインCPU211は、通常通り起動して第1のプログラムを実行し、MFP200をセットアップする。一方、S1208がスキップされた後に(即ち、信号経路が切替えられることなく)S1209でメインCPU211のリセット状態が解除されると、メインCPU211により図13に示した処理が実行されることになる。 When the reset state of the main CPU 211 is released in S1209 after the signal path is switched by the bus switch 234 in S1208, the main CPU 211 starts up as usual, executes the first program, and sets up the MFP 200. On the other hand, if the reset state of the main CPU 211 is released in S1209 after S1208 is skipped (that is, the signal path is not switched), the process shown in FIG. 13 is executed by the main CPU 211.

なお、第1の実施形態に関連して説明した図8の例と同様に、本実施形態においても、プログラムの検証が開始される際に検証関連情報がユーザへ提示されてもよい。 Similar to the example of FIG. 8 described in relation to the first embodiment, in this embodiment as well, verification-related information may be presented to the user when the verification of the program is started.

(2)メインCPUの処理
図13は、本実施形態に係るメインCPU211により実行される処理の流れの一例を示すフローチャートである。
(2) Processing of Main CPU FIG. 13 is a flowchart showing an example of a flow of processing executed by the main CPU 211 according to the present embodiment.

まず、S1301で、メインCPU211は、起動に応じて、クロック入力端子CLK_Yを介してクロック信号を出力しつつ、選択信号出力端子CSを介してスレーブ選択信号をアサートする。これらクロック信号及びスレーブ選択信号は、バススイッチ234を介してマスクROM233へ到達する。その結果、マスクROM233の所定の記憶領域に記憶されている第2のプログラムがメインCPU211により読出される。次いで、S1302で、メインCPU211は、マスクROM233から読出した第2のプログラムを実行して、メインCPU211の基本的な入出力機能を初期化する。次いで、S1303で、メインCPU211は、第2のプログラムに従って、検証関連情報を生成し、生成した検証関連情報を操作部21のディスプレイへ出力する。それにより、検証関連情報がディスプレイの画面上に表示され得る。ここで表示される検証関連情報は、例えば、図9(A)に示したような情報であってよい。次いで、S1304で、メインCPU211は、動作を停止する。 First, in S1301, the main CPU 211 asserts the slave selection signal via the selection signal output terminal CS while outputting the clock signal via the clock input terminal CLK_Y in response to startup. These clock signals and slave selection signals reach the mask ROM 233 via the bus switch 234. As a result, the second program stored in the predetermined storage area of the mask ROM 233 is read out by the main CPU 211. Next, in S1302, the main CPU 211 executes a second program read from the mask ROM 233 to initialize the basic input / output functions of the main CPU 211. Next, in S1303, the main CPU 211 generates verification-related information according to the second program, and outputs the generated verification-related information to the display of the operation unit 21. Thereby, verification-related information can be displayed on the screen of the display. The verification-related information displayed here may be, for example, the information shown in FIG. 9A. Then, in S1304, the main CPU 211 stops operating.

<3−4.第2の実施形態のまとめ>
ここまで、図10〜図13を用いて、本開示の第2の実施形態について説明した。本実施形態では、第1のプログラムを記憶する第1のメモリ、上記第1のプログラムの正当性検証用のサブCPU、及び、ディスプレイ(又は、他の種類の情報提示手段)を備える情報処理装置に、第2のプログラムを記憶する第2のメモリが設けられる。上記第1のプログラム及び上記第2のプログラムは、共にメインCPUによる実行のためのプログラムである。上記第2のプログラムは、メインCPUによる上記第1のプログラムの実行が可能ではない時に、メインCPUにより実行されて、上記ディスプレイに上記第1のプログラムの検証に関する情報をユーザへ提示させる。かかる構成によれば、上記第1のプログラムの検証の成功を待つことなく、代替的な上記第2のプログラムの実行に基づいて上記第1のプログラムの検証に関する情報をユーザに提示することができる。したがって、ユーザは、システムが起動しない原因を適時に把握することができる。また、上記構成によれば、サブCPUにメインCPUと同等の情報提示機能を実装する必要が無いため、装置の構成の複雑化が回避され、コストの増加が抑制される。
<3-4. Summary of the second embodiment>
Up to this point, the second embodiment of the present disclosure has been described with reference to FIGS. 10 to 13. In the present embodiment, an information processing device including a first memory for storing the first program, a sub CPU for verifying the validity of the first program, and a display (or other type of information presenting means). Is provided with a second memory for storing the second program. The first program and the second program are both programs for execution by the main CPU. The second program is executed by the main CPU when the main CPU cannot execute the first program, and causes the display to present information regarding verification of the first program to the user. According to such a configuration, information regarding the verification of the first program can be presented to the user based on the execution of the alternative second program without waiting for the success of the verification of the first program. .. Therefore, the user can timely understand the cause of the system not booting. Further, according to the above configuration, since it is not necessary to implement the information presentation function equivalent to that of the main CPU in the sub CPU, the complexity of the configuration of the device is avoided and the increase in cost is suppressed.

また、本実施形態では、上記情報処理装置は、メインCPUからの信号経路の接続先を、上記第1のメモリ及び上記第2のメモリの間で切替可能なスイッチをさらに備え得る。そして、サブCPUは、上記第1のプログラムが正当であると判定された場合に、メインCPUからの信号経路を上記第1のメモリへ接続するように上記スイッチを制御し得る。かかる構成によれば、上記第1のプログラムが正当であると判定されるまで、メインCPUを、上記第1のメモリから切り離して上記第1のプログラムへアクセス不能に維持することができる。したがって、上記第1のプログラムの正当性の検証中にメインCPUを起動しても、例えば改竄された可能性のある上記第1のプログラムがメインCPUにより実行されてしまう可能性が無い。 Further, in the present embodiment, the information processing apparatus may further include a switch capable of switching the connection destination of the signal path from the main CPU between the first memory and the second memory. Then, the sub CPU can control the switch so as to connect the signal path from the main CPU to the first memory when it is determined that the first program is valid. According to such a configuration, the main CPU can be separated from the first memory and kept inaccessible to the first program until the first program is determined to be valid. Therefore, even if the main CPU is started during the verification of the validity of the first program, there is no possibility that the first program, which may have been tampered with, is executed by the main CPU.

また、本実施形態では、サブCPUは、初期状態で、メインCPUからの信号経路を上記第2のメモリへ接続するように上記スイッチを制御し得る。かかる構成によれば、上記第1のプログラムの検証開始の当初から、メインCPUを上記第1のメモリから確実に切り離しておくことができる。 Further, in the present embodiment, the sub CPU can control the switch so as to connect the signal path from the main CPU to the second memory in the initial state. According to such a configuration, the main CPU can be reliably separated from the first memory from the beginning of the verification of the first program.

また、ある実施例では、サブCPUは、上記第1のプログラムが正当ではないと判定された場合に、メインCPUによる上記第2のプログラムの実行を(例えば、メインCPUのリセット状態を解除することで)可能にし得る。この場合、上記第1のプログラムの正当性の検証の失敗に応じて、上記第1のプログラムが正当ではないと判定されたことを、上記第2のプログラムの実行に基づいて適時にユーザへ報知することができる。他の実施例では、サブCPUは、上記第1のプログラムの正当性の検証が開始される場合に、メインCPUによる上記第2のプログラムの実行を可能にし得る。この場合、検証にある程度長い時間を要するとしても、上記第2のプログラムの実行に基づいて装置の動作の状況をユーザへ適切に伝えて、ユーザを不安に陥らせないことができる。 Further, in a certain embodiment, when it is determined that the first program is not valid, the sub CPU executes the execution of the second program by the main CPU (for example, cancels the reset state of the main CPU). Can be made possible. In this case, the user is notified in a timely manner based on the execution of the second program that the first program is determined to be invalid in response to the failure of the verification of the validity of the first program. can do. In another embodiment, the sub CPU may allow the main CPU to execute the second program when the validation of the first program is initiated. In this case, even if it takes a long time for verification, it is possible to appropriately inform the user of the operation status of the device based on the execution of the second program so as not to cause anxiety to the user.

また、本実施形態では、上記第2のプログラムは、上記第1のプログラムの検証に関する情報の提示のための専用のプログラムであってよく、上記第2のメモリの書換不能な記憶媒体に記憶され得る。かかる構成によれば、上記第2のプログラムの不正な書換えによって上記情報処理装置の機能が不正な目的で利用されるリスクを最小化することができる。また、上記第2のプログラムのデータサイズは小さくて済むため、上記第2のメモリを少ないコストで上記情報処理装置に追加的に実装することが可能である。 Further, in the present embodiment, the second program may be a dedicated program for presenting information regarding verification of the first program, and is stored in a non-rewritable storage medium of the second memory. obtain. According to such a configuration, it is possible to minimize the risk that the function of the information processing apparatus is used for an illegal purpose due to the illegal rewriting of the second program. Further, since the data size of the second program can be small, the second memory can be additionally implemented in the information processing apparatus at a low cost.

本実施形態においても、上記第1のプログラムは、ブートプログラムを含む。このブートプログラムの正当性がサブCPUにより保証されることで、上記情報処理装置の動作の安全性が確実化される。上記第2のプログラムもまた、ブートプログラムであってよく、上記第2のプログラムの正当性もまた(メインCPUによる実行の前に)サブCPUにより検証されてもよい。また、本実施形態においても、情報提示手段として上記ディスプレイが使用されることで、上記第1のプログラムの実行に基づいてシステムの全体的な機能がセットアップされる前から、ユーザに情報を視覚的に提示することが可能となる。 Also in this embodiment, the first program includes a boot program. By guaranteeing the correctness of this boot program by the sub CPU, the safety of the operation of the information processing apparatus is ensured. The second program may also be a boot program, and the validity of the second program may also be verified by the sub CPU (prior to execution by the main CPU). Further, also in the present embodiment, by using the display as the information presenting means, the information is visually displayed to the user even before the overall function of the system is set up based on the execution of the first program. It becomes possible to present to.

<<4.変形例>>
本発明は上記実施形態に限定されず、様々な変形が可能である。例えば、上で信号経路の切替えのためにバススイッチを利用する例を説明した。しかしながら、信号経路の切替えは、バススイッチの代わりに、FET(Field-Effect Transistor)などのトランジスタ又はロジック回路を用いて実現されてもよい。また、プログラムを記憶する記憶手段として、フラッシュROM又はマスクROMの代わりに他の種類のメモリデバイスが使用されてもよい。
<< 4. Modification example >>
The present invention is not limited to the above embodiment, and various modifications are possible. For example, an example of using a bus switch for switching a signal path has been described above. However, switching of the signal path may be realized by using a transistor or a logic circuit such as a FET (Field-Effect Transistor) instead of the bus switch. Further, as a storage means for storing the program, another type of memory device may be used instead of the flash ROM or the mask ROM.

<<5.その他の実施形態>>
上記実施形態は、1つ以上の機能を実現するプログラムをネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読み出して実行する処理の形式でも実現可能である。また、1つ以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
<< 5. Other embodiments >>
In the above embodiment, a program that realizes one or more functions is supplied to a system or a device via a network or a storage medium, and one or more processors in the computer of the system or the device read and execute the program. It is also feasible in the form. It can also be realized by a circuit (for example, an ASIC) that realizes one or more functions.

発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。 The invention is not limited to the above embodiments, and various modifications and modifications can be made without departing from the spirit and scope of the invention. Therefore, a claim is attached to make the scope of the invention public.

100:MFP(情報処理装置)、111:メインCPU(実行手段)、121:操作部(情報提示手段)、130:フラッシュROM(第1の記憶手段)、131:サブCPU(検証手段)、133:情報生成部(制御手段)、134:バススイッチ(切替手段)、200:MFP(情報処理装置)、211:メインCPU(実行手段)、21:操作部(情報提示手段)、231:サブCPU(検証手段)、233:マスクROM(第2の記憶手段)、234:バススイッチ(切替手段)、 100: MFP (information processing device), 111: main CPU (execution means), 121: operation unit (information presentation means), 130: flash ROM (first storage means), 131: sub CPU (verification means), 133 : Information generation unit (control means), 134: Bus switch (switching means), 200: MFP (information processing device), 211: Main CPU (execution means), 21: Operation unit (information presentation means), 231: Sub CPU (Verification means) 233: Mask ROM (second storage means), 234: Bus switch (switching means),

Claims (17)

プログラムを実行する実行手段と、
前記実行手段による実行のための第1のプログラムを記憶する第1の記憶手段と、
前記第1のプログラムの正当性を検証して、前記第1のプログラムが正当であると判定された場合に前記実行手段による前記第1のプログラムの実行を可能にする検証手段と、
ユーザへ情報を提示する情報提示手段と、
前記情報提示手段に前記第1のプログラムの検証に関する情報をユーザへ提示させる制御手段と、
前記情報提示手段への信号経路の接続元を、前記実行手段及び前記制御手段の間で切替可能な切替手段と、
を備え、
前記検証手段は、前記実行手段による前記第1のプログラムの実行が可能ではない時に、前記制御手段を前記情報提示手段への信号経路へ接続するように前記切替手段を制御する、
情報処理装置。
Execution means to execute the program and
A first storage means for storing a first program for execution by the execution means, and
A verification means that verifies the validity of the first program and enables the execution means to execute the first program when the first program is determined to be legitimate.
Information presentation means for presenting information to users
A control means for causing the information presenting means to present information regarding the verification of the first program to the user.
A switching means capable of switching the connection source of the signal path to the information presenting means between the executing means and the controlling means, and
With
The verification means controls the switching means so as to connect the control means to the signal path to the information presenting means when the execution means cannot execute the first program.
Information processing device.
請求項1に記載の情報処理装置であって、前記検証手段は、前記第1のプログラムが正当ではないと判定された場合に、前記制御手段に、前記第1のプログラムの検証に関する前記情報を前記信号経路へ出力させる、情報処理装置。 The information processing apparatus according to claim 1, wherein when the verification means determines that the first program is not valid, the control means is provided with the information regarding the verification of the first program. An information processing device that outputs information to the signal path. 請求項1に記載の情報処理装置であって、前記検証手段は、前記第1のプログラムの正当性の検証が開始される場合に、前記制御手段に、前記第1のプログラムの検証に関する前記情報を前記信号経路へ出力させる、情報処理装置。 The information processing apparatus according to claim 1, wherein when the verification of the validity of the first program is started, the control means is provided with the information regarding the verification of the first program. An information processing device that outputs the information to the signal path. 請求項2又は3に記載の情報処理装置であって、前記検証手段は、前記第1のプログラムが正当であると判定された場合に、前記実行手段を前記情報提示手段への前記信号経路へ接続するように前記切替手段を制御する、情報処理装置。 The information processing apparatus according to claim 2 or 3, wherein the verification means transfers the execution means to the signal path to the information presenting means when it is determined that the first program is valid. An information processing device that controls the switching means so as to connect. 請求項2に記載の情報処理装置であって、前記第1のプログラムの検証に関する前記情報は、前記第1のプログラムが正当ではないと判定されたことを報知する内容を含む、情報処理装置。 The information processing device according to claim 2, wherein the information regarding the verification of the first program includes a content for notifying that the first program is not valid. 請求項3に記載の情報処理装置であって、前記第1のプログラムの検証に関する前記情報は、前記第1のプログラムの正当性の検証が開始されたこと又は当該検証が実行中であることを報知する内容を含む、情報処理装置。 The information processing apparatus according to claim 3, wherein the information regarding the verification of the first program indicates that the verification of the validity of the first program has been started or the verification is being executed. An information processing device that includes the content to be notified. プログラムを実行する実行手段と、
前記実行手段による実行のための第1のプログラムを記憶する第1の記憶手段と、
前記第1のプログラムの正当性を検証して、前記第1のプログラムが正当であると判定された場合に前記実行手段による前記第1のプログラムの実行を可能にする検証手段と、
ユーザへ情報を提示する情報提示手段と、
前記実行手段による実行のための第2のプログラムを記憶する第2の記憶手段と、
を備え、
前記検証手段は、前記実行手段による前記第1のプログラムの実行が可能ではない時に、前記実行手段による前記第2のプログラムの実行を可能にし、
前記実行手段は、前記第2のプログラムを実行することにより、前記情報提示手段に前記第1のプログラムの検証に関する情報をユーザへ提示させる、
情報処理装置。
Execution means to execute the program and
A first storage means for storing a first program for execution by the execution means, and
A verification means that verifies the validity of the first program and enables the execution means to execute the first program when the first program is determined to be legitimate.
Information presentation means for presenting information to users
A second storage means for storing a second program for execution by the execution means, and
With
The verification means enables the execution means to execute the second program when the execution means cannot execute the first program.
By executing the second program, the execution means causes the information presenting means to present information regarding verification of the first program to the user.
Information processing device.
請求項7に記載の情報処理装置であって、
前記実行手段からの信号経路の接続先を、前記第1の記憶手段及び前記第2の記憶手段の間で切替可能な切替手段、をさらに備え、
前記検証手段は、前記第1のプログラムが正当であると判定された場合に、前記実行手段からの前記信号経路を前記第1の記憶手段へ接続するように前記切替手段を制御し、前記実行手段による前記第1のプログラムの実行を可能にする、
情報処理装置。
The information processing device according to claim 7.
Further, a switching means capable of switching the connection destination of the signal path from the executing means between the first storage means and the second storage means is provided.
The verification means controls the switching means so as to connect the signal path from the execution means to the first storage means when the first program is determined to be valid, and the execution means. Allows execution of the first program by means,
Information processing device.
請求項8に記載の情報処理装置であって、前記検証手段は、初期状態で、前記実行手段からの前記信号経路を前記第2の記憶手段へ接続するように前記切替手段を制御する、情報処理装置。 The information processing apparatus according to claim 8, wherein the verification means controls the switching means so as to connect the signal path from the executing means to the second storage means in an initial state. Processing equipment. 請求項9に記載の情報処理装置であって、前記検証手段は、前記第1のプログラムが正当ではないと判定された場合に、前記実行手段による前記第2のプログラムの実行を可能にする、情報処理装置。 The information processing apparatus according to claim 9, wherein the verification means enables the execution means to execute the second program when it is determined that the first program is not valid. Information processing device. 請求項9に記載の情報処理装置であって、前記検証手段は、前記第1のプログラムの正当性の検証が開始される場合に、前記実行手段による前記第2のプログラムの実行を可能にする、情報処理装置。 The information processing apparatus according to claim 9, wherein the verification means enables execution of the second program by the execution means when verification of the validity of the first program is started. , Information processing equipment. 請求項7乃至11のいずれか1項に記載の情報処理装置であって、前記第2のプログラムは、前記第1のプログラムの検証に関する前記情報の提示のための専用のプログラムである、情報処理装置。 The information processing apparatus according to any one of claims 7 to 11, wherein the second program is a dedicated program for presenting the information regarding verification of the first program. Device. 請求項7乃至12のいずれか1項に記載の情報処理装置であって、前記第2の記憶手段は、書換不能な記憶媒体を含む、情報処理装置。 The information processing device according to any one of claims 7 to 12, wherein the second storage means includes a non-rewritable storage medium. 請求項1乃至13のいずれか1項に記載の情報処理装置であって、前記第1のプログラムは、ブートプログラムを含む、情報処理装置。 The information processing device according to any one of claims 1 to 13, wherein the first program is an information processing device including a boot program. 請求項1乃至14のいずれか1項に記載の情報処理装置であって、前記情報提示手段は、ディスプレイを含む、情報処理装置。 The information processing device according to any one of claims 1 to 14, wherein the information presenting means includes an information processing device including a display. 実行手段、前記実行手段による実行のための第1のプログラムを記憶する第1の記憶手段、検証手段、ユーザへ情報を提示する情報提示手段、前記情報提示手段による前記情報の提示を制御する制御手段、及び、前記情報提示手段への信号経路の接続元を、前記実行手段及び前記制御手段の間で切替可能な切替手段を備える情報処理装置により実行される情報提示方法であって、
前記検証手段により、前記第1のプログラムの正当性を検証することと、
前記実行手段による前記第1のプログラムの実行が可能ではない時に、
前記切替手段により、前記制御手段を前記情報提示手段への前記信号経路へ接続することと、
前記制御手段により、前記情報提示手段に前記第1のプログラムの検証に関する情報をユーザへ提示させることと、
前記第1のプログラムが正当であると判定された場合に、
前記切替手段により、前記実行手段を前記情報提示手段への信号経路へ接続することと、
前記検証手段により、前記実行手段による前記第1のプログラムの実行を可能にすることと、
前記実行手段により、前記第1のプログラムを実行することと、
を含む情報提示方法。
An execution means, a first storage means for storing a first program for execution by the execution means, a verification means, an information presenting means for presenting information to a user, and a control for controlling the presentation of the information by the information presenting means. An information presentation method executed by an information processing apparatus including a switching means capable of switching a means and a connection source of a signal path to the information presenting means between the executing means and the controlling means.
To verify the validity of the first program by the verification means,
When the execution of the first program by the execution means is not possible,
By connecting the control means to the signal path to the information presenting means by the switching means,
The control means causes the information presenting means to present information regarding the verification of the first program to the user.
When the first program is determined to be valid,
By connecting the executing means to the signal path to the information presenting means by the switching means,
The verification means enables the execution of the first program by the execution means.
To execute the first program by the execution means,
Information presentation method including.
実行手段、前記実行手段による実行のための第1のプログラムを記憶する第1の記憶手段、検証手段、前記実行手段による実行のための第2のプログラムを記憶する第2の記憶手段、及び、ユーザへ情報を提示する情報提示手段を備える情報処理装置により実行される情報提示方法であって、
前記検証手段により、前記第1のプログラムの正当性を検証することと、
前記実行手段による前記第1のプログラムの実行が可能ではない時に、
前記検証手段により、前記実行手段による前記第2のプログラムの実行を可能にすることと、
前記実行手段により、前記第2のプログラムを実行して、前記情報提示手段に前記第1のプログラムの検証に関する情報をユーザへ提示させることと、
前記第1のプログラムが正当であると判定された場合に、
前記検証手段により、前記実行手段による前記第1のプログラムの実行を可能にすることと、
前記実行手段により、前記第1のプログラムを実行することと、
を含む情報提示方法。
An execution means, a first storage means for storing a first program for execution by the execution means, a verification means, a second storage means for storing a second program for execution by the execution means, and An information presentation method executed by an information processing apparatus provided with information presentation means for presenting information to a user.
To verify the validity of the first program by the verification means,
When the execution of the first program by the execution means is not possible,
The verification means enables the execution of the second program by the execution means.
The execution means executes the second program, and causes the information presenting means to present information regarding the verification of the first program to the user.
When the first program is determined to be valid,
The verification means enables the execution of the first program by the execution means.
To execute the first program by the execution means,
Information presentation method including.
JP2020003951A 2020-01-14 2020-01-14 Information processing device and information presentation method Pending JP2021111231A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020003951A JP2021111231A (en) 2020-01-14 2020-01-14 Information processing device and information presentation method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020003951A JP2021111231A (en) 2020-01-14 2020-01-14 Information processing device and information presentation method

Publications (1)

Publication Number Publication Date
JP2021111231A true JP2021111231A (en) 2021-08-02

Family

ID=77059986

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020003951A Pending JP2021111231A (en) 2020-01-14 2020-01-14 Information processing device and information presentation method

Country Status (1)

Country Link
JP (1) JP2021111231A (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009511854A (en) * 2005-10-12 2009-03-19 ヘルマンヌス・ヘルハルドゥス・マリア・シルデルハイス Auxiliary device to add to the air conditioner
JP2016032620A (en) * 2014-07-26 2016-03-10 エネフォレスト株式会社 Ultraviolet radiation air sterilizer

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009511854A (en) * 2005-10-12 2009-03-19 ヘルマンヌス・ヘルハルドゥス・マリア・シルデルハイス Auxiliary device to add to the air conditioner
JP2016032620A (en) * 2014-07-26 2016-03-10 エネフォレスト株式会社 Ultraviolet radiation air sterilizer

Similar Documents

Publication Publication Date Title
JP4848190B2 (en) Application execution apparatus, application execution method, and application execution program
RU2628325C2 (en) System on-a-chip to implement safe bootstrap loading, using its device of image formation and method of its use
US20160006887A1 (en) Image forming apparatus and control method of image forming apparatus
US9547487B2 (en) Image forming apparatus, control method therefor, and control program therefor
JP2023129643A (en) Information processing apparatus, information processing method, and program
US11681809B2 (en) Information processing apparatus, control method, and storage medium
JP6418966B2 (en) Image forming system, image forming apparatus, control method for the system, and program
JP2005148934A (en) Information processor, program activation method, program activation program and recording medium
JP2021111231A (en) Information processing device and information presentation method
JP5847120B2 (en) Internet facsimile machine
JP5752066B2 (en) Image forming apparatus and image forming system
JP2011164686A (en) Information processor, image processor, login authentication method, program, and recording medium
JP2010208075A (en) Image forming apparatus, method for controlling image formation, program for controlling image formation and recording medium
KR102467636B1 (en) Information processing apparatus, method of controlling information processing apparatus, and storage medium
JP2021111916A (en) Information processing device and program restoration method
JP6800932B2 (en) Image forming device, image forming method, and program
JP6064755B2 (en) Electronic apparatus, image forming apparatus, control apparatus, and program
JP2020154601A (en) Information processing device and its control method, and program
US20230103698A1 (en) Information processing apparatus and control method therefor
EP3605311B1 (en) Information processing method, information processing system, and communication apparatus
US11917414B2 (en) Information processing method and information processing system
US20220197629A1 (en) Processing apparatus, apparatus, system, and method
JPH11216915A (en) Printer apparatus
JP7215116B2 (en) Information processing device, information processing method and program
JP2007166387A (en) Printing data file generator and printing device

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20210103

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210113