JP6742825B2 - 制御装置及び制御方法 - Google Patents

制御装置及び制御方法 Download PDF

Info

Publication number
JP6742825B2
JP6742825B2 JP2016112730A JP2016112730A JP6742825B2 JP 6742825 B2 JP6742825 B2 JP 6742825B2 JP 2016112730 A JP2016112730 A JP 2016112730A JP 2016112730 A JP2016112730 A JP 2016112730A JP 6742825 B2 JP6742825 B2 JP 6742825B2
Authority
JP
Japan
Prior art keywords
reset
control unit
control
watchdog reset
watchdog
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.)
Active
Application number
JP2016112730A
Other languages
English (en)
Other versions
JP2017219962A (ja
Inventor
浩子 辻口
浩子 辻口
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 JP2016112730A priority Critical patent/JP6742825B2/ja
Priority to US15/611,632 priority patent/US10423477B2/en
Publication of JP2017219962A publication Critical patent/JP2017219962A/ja
Application granted granted Critical
Publication of JP6742825B2 publication Critical patent/JP6742825B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy

Description

本発明は、ウォッチドッグタイマのリセットにより初期化されるCPUを備える制御装置及びその制御方法に関する。
従来、CPUなどで異常が発生し、ウォッチドッグリセットがかかった場合、CPUを含むシステム全体が初期化される情報処理装置が知られている。このとき、情報処理装置に外部装置が接続されている場合は、システム全体が初期化されることに同期して、外部装置も初期状態になる必要がある。外部装置を初期状態にする方法として、システム全体の初期化動作に、接続されている外部装置の初期化シーケンスを組み込んで実行する方法や、外部装置のリセット端子を有効にすることで初期化を実行する方法がある。また、CPUの命令を使用しない方法としては、異常検出装置により、ウォッチドッグリセットの信号をラッチして、外部装置用のI/Oのリセット信号を生成し、外部装置をリセットする方法が開示されている(特許文献1参照)。
特開平6−214831
ところで、CPUの初期化に必要なプログラムは、外部装置のメモリに入っているが、メモリもシステムの初期化と同期して初期化される必要がある。メモリが初期化されていない場合、CPUは、情報処理装置の電源を立ち上げた後のアクセスにより外部装置の状態を認識してコントローラのアクセス方法を変えることは不可能であり、メモリに対するアクセスを失敗してしまう。例えば、メモリがフラッシュROMであり、データを定期的に書き換える場合、メモリの該当する領域のデータを消去し、その領域に新たなデータを書き込む。消去作業や書き込みは、メモリを構成する半導体素子が備えるフローティングゲート内の電荷を操作するために一定時間を必要とするが、その間メモリはビジー状態となり他の命令を受け付けない。特許文献1の方法においても、初期化プログラムが動作する場合、同様の問題が生じる。
ウォッチドッグリセットが発生したとき、リセット復帰後のプログラムフェッチが発生しても、対象のメモリがビジー状態であった場合、メモリは外部装置からのリードデータを正しく返すことができない。具体的には、メモリがビジー中(ライトやイレース中)に、メモリコントローラがリードの命令及びデータ同期用のクロックをメモリに対して送信しても、メモリはそのコマンドを受け付けず、正しいリードデータを返す挙動をしていない。そのため、メモリコントローラが受け取るデータは正しい値ではなくなってしまう。また、シリアルROMなどのデバイスの場合はエラー信号がないためデータの中身で判断することになってしまう。そして、フェッチしたデータが正しくないため、CPUが初期化を失敗してしまうという問題が発生してしまう。
上記課題を解決するため、本発明に係る制御装置は、デバイスと接続する制御装置であって、前記制御装置全体を制御する第1制御部と、前記デバイスとアクセスし、前記デバイスを制御する第2制御部と、前記第1制御部及び前記第2制御部にウォッチドッグリセット信号を通知することにより、前記制御装置のリセットを制御する第3制御部と、を有し、前記第3制御部は、ウォッチドッグリセットがかかる条件を満たした場合、前記ウォッチドッグリセット信号を通知する前に、前記第2制御部にウォッチドッグリセットの発生通知をし、前記第1制御部は、前記ウォッチドッグリセット信号を受信すると、前記制御装置のウォッチドッグリセットを実行し、前記第2制御部は、ウォッチドッグリセットが実行される場合、前記ウォッチドッグリセットの発生通知の受信に応じて取得した情報に基づいて、前記デバイスに対して当該デバイスが命令を受付可能な状態にする処理を実行させる制御をする。
本発明によれば、接続されているデバイスをCPUの介在なしにリセットすることができる。これにより、リセット後のデバイスへのアクセスのコマンド入力エラーを回避することができる。
実施形態1に係る情報処理装置のハードウェア構成図である。 実施形態1に係るウォッチドッグリセットが発生した場合の各機能ブロックの状態及びシーケンスを示す図である。 実施形態1に係るウォッチドッグ復帰後のコントローラ制御フロー図である。 実施形態2に係るウォッチドッグリセットが発生する場合の各機能ブロックの状態及びシーケンスを示す図である。 実施形態2に係るウォッチドッグリセット発生時のコントローラ制御フロー図である。 実施形態1に係るパワーオンリセット時のシーケンスを示す図である。 従来のウォッチドッグリセット時のシーケンスを示す図である。 実施形態1に係る情報処理装置のハードウェア構成図である。
(実施形態1)
図1を用いて、本実施形態に係る情報処理装置について説明する。情報処理装置としては、例えば、画像処理装置が例に挙げられるが、これに限定されるものではなく、ウォッチドッグタイマのリセットにより初期化されるCPUを備える情報処理装置であればよい。画像処理装置としては、プリンタ、スキャナ、プリント機能及びスキャン機能を有する複合プリンタ、複写機、プロッタ等が挙げられる。
図1は、本実施形態に係る情報処理装置のハードウェアの構成を示す図である。情報処理装置は、ASIC20と、フラッシュROMデバイス30と、SDRAM40とを有する。本実施形態では、ASIC20が、フラッシュROMデバイス30の制御装置として機能する。ASIC20は、ROMコントローラ1と、CPU8と、リセット制御部9と、DMAC10と、SDRAMコントローラ11とを有する。また、ROMコントローラ1は、フラッシュROMデバイス30とROMインターフェース信号線で接続されており、SDRAMコントローラ11は、SDRAM40とRAMインターフェース信号線で接続されている。
CPU8は、プログラムに従って情報処理装置の全体を制御する。例えば、CPU8は、DMAC10のDMA制御、ROMコントローラ1の制御、SDRAMコントローラ11のSDRAMへのアクセス制御をする。
リセット制御部9は、パワーオンをした際のシステムリセットの制御と、ウォッチドッグ(WD)制御を実行する。具体的には、リセット制御部9は、パワーオン時に、ASIC20内のシステム全体に、システムリセット信号を入力する。なお、パワーオン時とは、情報処理装置の電源が投入されたとき、すなわち、ハード電源がONした時を指す。システムリセットの際は、情報処理装置全体がリセットされる。また、リセット制御部9は、WDリセットをする際に、ウォッチドッグリセット信号を情報処理装置内(ここでは、ASIC内)のシステム全体に入力する。このとき、デバイス情報保持部2と、リセット管理部3は、リセットされない。また、詳細は後述するが、リセット制御部9は、CPU8に異常が発生した場合、ウォッチドッグリセット信号を入力する前に、ウォッチドッグの事前通知信号を、ROMコントローラ1に対し入力する。これにより、ROMコントローラ1は、ウォッチドッグリセット用の制御が可能となる。ここで、ウォッチドッグリセットとは、ウォッチドッグにより異常状態であると判定された際にシステムを初期化することを指す。具体的には、CPU8に定期的に信号を送らせ、一定期間(予め設定した期間)を経過してもCPU8からタイマーをクリアする信号が送られなければ、異常状態であると判定し、CPU8に割込みを掛けてシステムを初期化する。すなわち、リセット制御部9は、ウォッチドッグリセットがかかる条件を満たした場合、ウォッチドッグリセット信号をCPU8やROMコントローラ1に送信することにより、ウォッチドッグリセットを実行させる。
ROMコントローラ1は、外部に接続されるフラッシュROMデバイス30の制御部である。そして、フラッシュROMデバイス30と接続されるROMアクセスI/F部7と、DMAC10と接続されるDMA I/F部6とCPU I/F部5と、リセット管理部3と、デバイス情報保持部2とを有する。さらに、ROMコントローラシーケンサ4を有する。
ROMアクセスI/F部7は、フラッシュROMデバイス30へのアクセスのためのインターフェースであり、DMA I/F部6は、DMAC10へのアクセスのためのインターフェースである。CPU I/F部5は、CPU8からプログラムデータを送受信する。
リセット管理部3は、システムリセット信号、WDリセット信号等の各種のリセット信号を受信し、リセット発生時にこれらの情報を保存する。また、本実施形態では、ウォッチドッグリセットの発生通知(以下、WD予告通知、WDの事前通知ともいう)を受信した場合、WDリセットフラグを保存する。なお、WDリセットが解除した場合は、WDリセットフラグを削除する。
また、デバイス情報保持部2は、ASICに接続するモジュールに関する情報を保存する。モジュールに関する情報としては、接続するモジュールのステータスに関する情報、制御履歴の情報、デバイスの識別情報(例えば、デバイスID)が挙げられる。本実施形態では、ASIC20には、フラッシュROMデバイス30が接続されているので、フラッシュROMデバイス30に関する情報として、制御履歴の情報及びフラッシュROMデバイス30のデバイスIDを保存する。デバイス情報保持部2には、定期的、すなわち、所定の周期で、フラッシュROMデバイス30の制御履歴の情報が保存される。なお、フラッシュROMデバイス30の制御履歴の情報を保存するタイミングは、これに限定されず、リセット管理部3にWDリセットフラグが保存されてからWDリセットが実行される前のタイミングであってもよい。デバイスIDは、ROMアクセスI/F制御部7が初期化動作時のデバイス初期設定時、すなわち、パワーオンをした際のシステムリセット後の初期動作の際にPDIRを取得し、フラッシュROMデバイス30に保持する。なお、デバイス情報保持部2は、WDリセットにおける初期化同期制御に必要な情報を保持するため、WDリセットによって初期化されない。
DMAC10は、CPU8の指示に従って、DMAの転送データを送受信するものであり、SDRAMコントローラ11にアクセスし、フラッシュROMデバイス30からのデータをSDRAM40に転送する。
SDRAMコントローラ11は、CPU8の指示に従って、データを送受信するものであり、SDRAM40にアクセスし、DMAC経由でフラッシュROMデバイス30に転送する。
フラッシュROMデバイス30は、ASIC20の外部に設けられ、ROMコントローラ1とアクセス可能に接続されている。
SDRAM40は、CPU8によるプログラムの実行時に、各種情報を一時的に記憶する。なお、本実施形態では、SDRAMとしたが、これに限定されず、その他の外部記憶装置であってもよい。フラッシュROMデバイス30は、CPU8により実行されるプログラムを記憶する。
ROMコントローラシーケンサ4は、ROMコントローラ1全体の動作制御を実行する。
本実施形態では、ウォッチドッグリセットをするシステムとして、ASIC20を例に挙げて説明するが、これに限定されず、FPGA、プロセッサ、中央処理装置であってもよい。
ここで、ウォッチドッグリセットについて説明する。情報処理装置は、パワーオンして起動後、CPU8は、システム起動用のプログラムが入っているフラッシュROMデバイス30にフェッチし、その後、フラッシュROMデバイス30内のデータを、システム内部のSDRAM40にコピーして展開する。そして、SDRAM40でプログラムを実行可能になった後、フラッシュROMデバイス30をデータ記憶領域として使用する。
情報処理装置のパワーオンリセット時のシーケンスを図6に示す。
まず、CPU8は、パワーオンリセットが解除された後、フラッシュROMデバイス30からプログラムフェッチを実行するために、ROMコントローラ1に対してプログラムリードの命令を発行する(S601)。プログラムリードの命令を受け取ったROMコントローラ1は、フラッシュROMデバイス30に対してリード命令を発行する(S602)。フラッシュROMデバイス30は、リード命令を受信すると、ROMコントローラ1にデータを送信し(S603)、ROMコントローラ1はそのデータをCPU8に送信する(S604)。ここで、初期動作は、プログラムをSDRAM40上で動作させる準備が完了するまでを指す。
フラッシュROMデバイス30におけるプログラム立ち上げ動作が完了した後、CPU8は、システム実行プログラムをフラッシュROMデバイス30からDMAC10に送信するために、ROMコントローラ1に対してDMAリードの命令を発行する(S605)。プログラムリードの命令を受け取ったROMコントローラ1は、フラッシュROMデバイス30に対してリード命令を発行する(S606)。フラッシュROMデバイス30は、ROMコントローラ1に対してデータを送り(S607)、ROMコントローラ1は、DMAC10にデータを転送し終わったことをCPU8に通知する(S608)。
DMAC10でプログラムを実行可能になって以降、フラッシュROMデバイス30はデータ領域として使用され、データの書き込みが行われる(S609〜S630)。
フラッシュROMデバイス30は、フラッシュメモリであり、ライトを行う前に該当するエリアをイレースする必要があり、イレースやライトの動作に関し、ROMコントローラ1から命令・データを受信後に該当するエリアの消去処理を行う。
そのため、ROMコントローラ1は、命令を送信した後、フラッシュROMデバイス30内のステータスレジスタにアクセスし、デバイスがBUSY状態であるかを確認することで、ライトやイレースの終了を検知する。具体的には、デバイスがBUSY状態でなくなった場合、ライトやイレースは終了したと検知する。
ここで図7を用いて、従来のウォッチドッグリセットのシーケンスについて説明する。図7は、ウォッチドッグリセット時の各機能ブロックの状態を示す図である。CPU8に異常が発生し、操作不能になった場合、リセット制御部9によるウォッチドッグ制御(WD制御)によってウォッチドッグリセットがかかる。ウォッチドッグリセットは、リセット制御部9が、CPU8だけでなく、ROMコントローラに1に対しても、WDリセット信号を送信し、リセットをかける。これにより、システム全体を初期化する(S701)。S702では、ウォッチドッグリセットが解除されて、CPU8とコントローラ1が初期化された状態となる。ウォッチドッグリセットが解除されると、CPU8は、パワーオンリセットがかかった場合と同様に、プログラムのフェッチから実行する。すなわち、まず、ROMコントローラ1に対してフェッチ用のプログラムリードの命令を発行する(S703)。このとき、CPU8やROMコントローラ1は初期化されているが、ウォッチドッグリセットでは、外部のフラッシュROMデバイス30にはリセットがかからない。つまり、ウォッチドッグリセット発生時に、フラッシュROMデバイス30がライトやイレースを処理していた場合、フラッシュROMデバイス30内では動作が継続される。したがって、ウォッチドッグリセットを解除した後もフラッシュROMデバイス30内はBUSY状態であることがある。このとき、フェッチ用のプログラムリードがCPU8から発行されてROMコントローラ1がフラッシュROMデバイス30に対してリードを実行しようとしても、フラッシュROMデバイス30は、BUSY状態であるため、正常なデータを返すことができない(S704)。そのため、CPU8は、システムを正常に起動することができなくなってしまう。これに対し、本実施形態では、CPU8に異常が発生すると、リセット制御部9は、WDリセット信号を入力する前にROMコントローラ1に対してウォッチドッグの予告通知を行う。ROMコントローラ1はこれを受けて、内部のリセット管理部3にウォッチドッグリセットフラグを保持する。リセット管理部3にウォッチドッグリセットフラグが保存されると、ウォッチドッグリセット時のステータスを特定するための情報として、デバイスの制御履歴の情報をデバイス情報保持部2に保存する。ここで、デバイスの制御履歴の情報とは、ASICに接続されているモジュールで実行中の命令に関する情報である。本実施形態では、フラッシュROMデバイス30で実行している命令を特定する情報が、デバイスの制御履歴の情報に相当する。
その後、リセット制御部9は、WDリセット信号をROMコントローラ1及びCPU8に入力する。これに応じて、システム全体がウォッチドッグリセットを行う。具体的には、システム全体を初期化する。その後、情報処理装置に初期化動作を行うことで復帰する。
図3は、ウォッチドッグリセット復帰後のROMコントローラ1の処理フローを示す。
ROMコントローラ1は、CPU8よりアクセスを受信すると(S301)、WDリセットを復帰した際のアクセスであるか判定する(S302)。具体的には、ROMコントローラシーケンサ4が、リセット管理部3がWDリセット信号を受けた履歴としてWDリセットフラグを保存しているかに基づいて、WDリセットを復帰した際のアクセスであるか判定する。CPU8からリード命令を受信した際にWDリセットフラグが立っていた場合、WDリセットを復帰した際のアクセスであると判定し(S302でYes)、S303へ進む。リセット管理部3がWDリセット信号を保存していない場合(S302でNo)、CPU8に対するアクセス応答を実行する。
S303では、ROMコントローラシーケンサ4がデバイス情報保持部2のROM制御履歴を確認する。具体的には、ROMコントローラシーケンサ4が、デバイス情報保持部2からROMアクセスに関する履歴情報を取得する。そして、S304において、WDリセットをする際に、フラッシュROMデバイス30は、BUSY状態であったか判定する。具体的には、情報保持部2に保存された情報に基づいて、ウォッチドッグリセット時に実行されていた命令がライトまたはイレースなどのビジー状態になるような命令かを特定し、これに基づいて、BUSY状態であったか判定する。
情報保持部に保存されている情報から、ウォッチドッグリセット直前の最後のアクセスがライトまたはイレースであった場合、WDリセット時にROMはBUSY状態であったと判定し(S304でYes)、S305へ進む。S305では現時点のフラッシュROMデバイス30のステータスを確認する。ROMコントローラ1からフラッシュROMデバイス30内のステータスレジスタを読み取り、フラッシュROMデバイス30のステータスに関する情報を取得することにより、ステータスを確認する。一方、WDリセット発生時にライトもイレースの動作も行っていない場合、WDリセット時にROMはBUSY状態ではなかったと判定し(S304でNo)、CPU8に対するアクセス応答を実行する。
現時点のフラッシュROMデバイス30のステータスがBUSY状態であるか判定する(S306)。フラッシュROMデバイスのステータスレジスタを読み取り、BUSYフラグが立っていた場合、BUSY状態であると判定し(S306でYes)、S307へ進む。フラッシュROMデバイスのステータスレジスタを読み取り、BUSYフラグが立っていない場合、BUSY状態ではないと判定し(S306でNo)、CPU8に対するアクセス応答を実行する。
S307では、ROMコントローラ1は、フラッシュROMデバイス30に対してリセットコマンドを発行して、フラッシュROMデバイス30に対してリセット処理を実行する。このように、本実施形態では、ROMコントローラ1は、リセット処理をCPU8による制御なしに、リセットコマンドを発行する。そして、S308で、ROMリセットが終了したか判定する。フラッシュROMデバイス30のステータスレジスタを読み取り、BUSYフラグが立っていない場合、ROMリセットが終了したと判定し、CPU8に対するアクセス応答を実行する。
次に、図2を用いて、ウォッチドッグリセット時の各機能ブロックの状態と共に、ウォッチドッグリセットのシーケンスについて説明する。図2は、ウォッチドッグリセット時の各機能ブロックの状態を示す図である。
CPU8に異常が発生すると、リセット制御部9は、ROMコントローラ1及びCPU8に対してWDリセット信号を入力する前に、ROMコントローラ1に対してウォッチドッグの予告通知を行う。ROMコントローラ1はこれを受けて、内部のリセット管理部3にWDリセットフラグを保持する(S201)。
その後、リセット制御部9が、CPU8だけでなく、ROMコントローラに1に対しても、WDリセット信号を送信し、リセットをかける(S202)。これにより、システム全体を初期化する。そして、CPU8がROMコントローラ1にフラッシュROMデバイス30へのリード命令(フェッチ命令)を発行する(S203)。ROMコントローラ1は、フェッチの命令を受けると、ステータスレジスタの読取命令を発行して(S204)、フラッシュROMデバイスのステータスレジスタを読み取る(S205)。ウォッチドッグリセットが解除した後、CPU8とROMコントローラ1は、リセット解除後の初期状態(IDLE)である。ROMコントローラ1は、初期状態であることを確認すると、フラッシュROMデバイス30にリセット命令を発行し(S206)、リセット動作の完了を読み取る(S207)。リセット動作が完了すると、リード命令を発行できるので、ROMコントローラ1は、リード命令をフラッシュROMデバイス30に発行し(S208)、リードデータをフラッシュROMデバイス30から受け取る(S209)。これにより、リードデータをCPU8は取得することができる(S210)。
このように、ROMコントローラ1は、フェッチの命令を受けると、リセット管理部3においてウォッチドッグリセットが解除した後であるかどうかを確認する。ウォッチドッグリセットが解除した後、CPU8とROMコントローラ1は、リセット解除後の初期状態(IDLE)であるため、プログラムのフェッチを実行することができる。ウォッチドッグリセットがかかっていない(ウォッチドッグリセットの復帰時のアクセスではない)場合は(図3のS302でNo)、パワーオンリセット後であると判断される。この場合、フラッシュROMデバイス30もIDLE状態であることが確定しているため、プログラムのフェッチを実行することができる。
ROMコントローラ1は、ウォッチドッグリセットの通知を受けた場合、フラッシュROMデバイス30で実行している命令を特定する情報を情報保持部2に保持する。そして、ウォッチドッグリセットを解除した後のフェッチ時に、この情報を情報保持部2から取得する(S303)。ウォッチドッグリセット時にフラッシュROMデバイス30がビジー状態になるような命令を実行していない場合、WDリセット時には、フラッシュROMデバイス30がBUSY状態ではないと判定され(S304でNo)、ステータスレジスタの確認は行わずに、プログラムのフェッチを実行することができる。
BUSY動作でリセットがかかった場合(S304でYes)、フラッシュROMデバイス30のステータスを確認する(S305)。フラッシュROMデバイス30内のステータスがBUSYではないと判定された場合は(S306でNo)、プログラムのフェッチを実行することができる(S205)。一方で、フラッシュROMデバイス30のステータスがライトやイレース処理が継続しているビジー状態だった場合は、ROMコントローラ1は、フラッシュROMデバイス30に対してリセットコマンドを発行して、リセット処理を実行する(S307)。これにより、フラッシュROMデバイス30をIDLE状態にする。これにより、プログラムのフェッチを実行することができる(S206〜207)。本実施形態では、ROMコントローラ1にウォッチドッグでリセットされないデバイス情報保持部2を備えており、システムがリセットされた時にROMコントローラ1がフラッシュROMデバイス30の初期化をCPU8の命令を受けることなく実行することができる。したがって、システムとフラッシュROMデバイス30の初期化を同期することができ、システムの再初期化をエラーなく行うことができる。より具体的には、ウォッチドッグが発生した場合、デバイス制御情報をデバイス情報保持部2に保存しているので、ROMコントローラ1は、ウォッチドッグリセットの復帰後であることを認識することができる。そして、ウォッチドッグリセット時のフラッシュROMデバイス30がBUSY状態であるか判定し、BUSY状態であると判定した場合は、現在のフラッシュROMデバイス30のステータスを確認する。アイドル状態である場合、すなわち、BUSY状態ではない場合、フラッシュROMデバイス30への通常のアクセスを行う。現在のフラッシュROMデバイス30がBUSY状態である場合、フラッシュROMデバイス30に対してリセットコマンドを送信する。これにより、フラッシュROMデバイス30のリセットが必要な場合のみ、リセットの処理を実行し、フェッチ時のエラーを回避することができる。また、上述したように、CPU8を介在することなく、外部デバイス(本実施形態では、フラッシュROMデバイス30)のリセット処理を実行することができるため、初期化の時間を短縮することができるという効果がある。
上述したように、本実施形態では、外部に接続されている接続デバイスであるフラッシュROMデバイス30をCPU8の介在なしにリセットすることができる。具体的には、ウォッチドッグリセット後にCPU8からフラッシュROMデバイス30に対してアクセスが実行されると、ROMコントローラシーケンサ4がリセット時の制御情報をデバイス情報保持部2から取得する。そして、ROMコントローラ1がCPU8のフラッシュROMデバイス30へのアクセスに先んじてフラッシュROMデバイス30に対してコマンド入力可能な状態にする制御を実行する。なお、コマンド入力可能な状態とは、言い換えれば、外部からの命令を受け付け可能な状態である。
これにより、ウォッチドッグリセット後の接続デバイスへのアクセスのコマンド入力エラーを回避することができる。 (実施形態2)
実施形態1においては、ウォッチドッグリセット後のフェッチ時にフラッシュROMの初期化を実行するシーケンスを例に挙げて説明した。これに対し、本実施形態では、ウォッチドッグリセットが発生する条件の下、ウォッチドッグリセットがかかる前にROMデバイスを初期化する。なお、本実施形態では、実施形態1とハードウェア構成は同じであるため、実施形態1と重複する説明は省略する。また、実施形態1と同一のものには同一の符号を付す。
本実施形態では、CPU8に異常が発生すると、リセット制御部9は、WDリセット信号を入力する前にROMコントローラ1に対してウォッチドッグリセットの予告通知を行う。
図5は、ウォッチドッグリセット時のROMコントローラ1の処理フローを示す。
ROMコントローラ1は、リセット制御部9よりウォッチドッグリセットの発生通知を受信すると(S501)、フラッシュROMデバイス30がBUSY状態であるか判定する(S502)。具体的には、ROMコントローラ1がフラッシュROMデバイス30のステータスレジスタを読み取ることで、フラッシュROMデバイス30のステータスに関する情報を取得することにより、ステータスを確認し、BUSY状態であるか判定する。ステータスレジスタのBUSYフラグが立っている場合、BUSY状態であると判定し(S502でYes)、SS503へ進む。ステータスレジスタのBUSYフラグが立っていない場合、BUSY状態ではないと判定し(S502でNo)、処理を終了する。このとき、ASIC20は、ウォッチドッグリセット可能な状態となる。
S503では、ROMコントローラ1は、フラッシュROMデバイス30に対してリセットコマンドを発行して、フラッシュROMデバイス30に対してリセット処理を実行させる。このように、本実施形態では、ROMコントローラ1は、リセット処理をCPU8による制御なしに、リセットコマンドを発行する。ここで、リセット処理とは、フラッシュROMデバイス30を初期化する処理であり、コマンドの入力が可能な状態にする処理である。
そして、S504で、ROMリセットが終了したか判定する。フラッシュROMデバイス30のステータスレジスタを読み取り、BUSYフラグが立っていない場合、ROMリセットが終了したと判定し、処理を終了する。このとき、ASIC20は、ウォッチドッグリセット可能な状態となる。
図4を用いて、ウォッチドッグリセット時の各機能ブロックの状態と共に、ウォッチドッグリセットのシーケンスについて説明する。図4は、ウォッチドッグリセット時の各機能モジュールの状態を示す図である。図5は、ウォッチドッグリセット時の処理フローを示す。
CPU8に異常が発生すると、リセット制御部9は、ROMコントローラ1に対し、ウォッチドッグリセットの発生通知をウォッチドッグリセットの発行よりも前に通知する(S401)。
ウォッチドッグの発生通知を受け取ったROMコントローラ1は、フラッシュROMデバイス30に命令している状況を確認する。フラッシュROMデバイス30がライトやイレースによりBUSY状態であった場合は、ROMコントローラ1は、ROMデバイス30に対しリセットコマンドを発行し(S402)、リセットの終了を検知する(S403)。
リセット制御部9は、フラッシュROMデバイス30のリセットがかかるまでの時間を待機した後、CPU8を含むシステム全体に対して、ウォッチドッグリセットを発行する(S404)。CPU8がROMコントローラ1にフラッシュROMデバイス30へのリード命令(フェッチ命令)を発行すると(S405)、フラッシュROMデバイス30は確実にIDLE状態になっているため、プログラムのフェッチを行うことができる(S405〜S408)。具体的には、ROMコントローラ1は、フェッチの命令を受けると、リード命令をフラッシュROMデバイス30に発行し(S406)、リードデータをフラッシュROMデバイス30から受け取る(S407)。これにより、リードデータをCPU8は取得することができる(S408)。 本実施形態では、リセット制御部9がウォッチドッグリセットの予告通知を、ROMコントローラ1に送信し、ROMコントローラ1が、ウォッチドックリセットの予告通知を受信すると、フラッシュROMデバイス30の初期化を行う。これにより、システムの再起動時には、フラッシュROMデバイス30が既に初期化されている状況を確保することができる。したがって、システムとフラッシュROMデバイス30の初期化を同期することができ、システムの再初期化をエラーなく行うことができる。
なお、ウォッチドッグのリセット信号の発行は、フラッシュROMデバイス30のリセットがかかるまでの時間を待機した後としたが、これに限定されるものではない。例えば、リセット制御部9にROMコントローラ1がフラッシュROMデバイス30のリセット完了を通知することをもって、リセット制御部9がウォッチドッグリセットを発行するようにしてもよい。これにより、ウォッチドッグリセットを解除した後、CPU8がフェッチでフラッシュROMデバイス30よりプログラムリードを実行するとき、フラッシュROMデバイス30は確実にIDLE状態にすることができる。
このように、本実施形態では、WDリセットの発生通知を受け取った場合、フラッシュROMデバイス30のステータスに関する情報に基づいて、WDリセットがかかる前にROMデバイスを初期化する。
また、本実施形態では、デバイス情報保持部2は、ウォッチドッグリセットによって初期化されない構成としたが、ウォッチドッグリセットによって初期化されるようにしてもよい。
(実施形態3)
本実施形態では、本発明をプリンタに適用した場合について、説明する。
図8は、本実施形携帯にかかるプリンタのハードウェア構成図である。
プリンタは、プリンタコントローラ800と、印刷ヘッド801と、ROM803と、を有する。また、プリンタは、外部のホストPC802と接続可能である。
ROM803は、プログラムが格納されているフラッシュROMであり、印刷ヘッド801は、印刷データに基づいて、印刷を実行する。
プリンタコントローラ800は、システム制御部804と、RAM805と、画像処理制御部806と、印刷制御部807と、を有する。RAM805は、印刷データ等が格納されるRAM部である。画像処理制御部806は、画像データに基づいて、印刷データを生成し、印刷制御部807は、印刷データを印刷ヘッドに送信する。
システム制御部804は、IF制御部808と、CPU809と、ROMコントローラ810とを有する。IF制御部808は、システム制御部804内で、ホストPC802との通信を行う。CPU809は、プリンタシステムの全体を制御し、ROMコントローラ810はフラッシュROMの制御を行う。
本実施形態において、フラッシュROM803、ROMコントローラ810、CPU809は、それぞれ、実施形態1のCPU8、ROMコントローラ1、フラッシュROMデバイス30と同様の動作を行う。これにより、本実施形態では、プリンタ動作中において予期せぬエラーが発生した場合でも、ROM803の読み出しからの再起動をエラーなく行うことができる。
(他の実施形態)
本発明の構成は、上述したものに限定されるものではない。例えば、フラッシュROMデバイス30は、記憶装置に限定されるものではなく、初期状態の同期が必要なその他の外部装置であってもよい。すなわち、外部からの通信で初期状態にすることができる外部装置であればよく、例えば、ICチップであってもよい。外部からの通信で初期状態にする方法としては、外部からのコマンド制御が挙げられるが、これに限定されるものではない。 また、本発明では、ウォッチドッグリセットにより、CPU8を含むシステム全体を初期化するものとしたが、これに限定されるものではない。例えば、その他の異常検知手段による初期化手段によるものでもよい。さらに、システム外部から受けるリセット全般でも適応可能である。例えば、温度が一定以上となった場合に、CPUを停止させるようなリセット、ソフトOFFボタンによるリセット等であってもよい。言い換えれば、CPUを含むシステムがリセットされるが接続されている外部装置などがリセットされないような構成において、適用可能である。
また、上述した実施形態では、ウォッチドッグリセット発生時にフラッシュROMデバイス30に対してリセットコマンドを発行するものとしたが、これに限定されるものではない。すなわち、フラッシュROMデバイス30が外部からの命令を受付可能な状態にするコマンドであればよい。例えば、フラッシュROMデバイス30内のステートを初期状態にもどすためのサスペンド等のその他のコマンドであってもよい。
1 ROMコントローラ
2 デバイス情報保持部
3 リセット管理部
4 シーケンサ
5 CPU IF制御部
6 DMA IF制御部
7 ROMアクセスIF部
8 CPU
9 リセット制御部
10 DMAC
11 SDRAMコントローラ
30 フラッシュROMデバイス
40 SDRAM

Claims (8)

  1. デバイスと接続する制御装置であって、
    前記制御装置の全体を制御する第1制御部と、
    前記デバイスとアクセスし、前記デバイスを制御する第2制御部と、
    前記第1制御部及び前記第2制御部にウォッチドッグリセット信号を通知することにより、前記制御装置のリセットを制御する第3制御部と、
    を有し、
    前記第3制御部は、ウォッチドッグリセットがかかる条件を満たした場合、前記ウォッチドッグリセット信号を通知する前に、前記第2制御部にウォッチドッグリセットの発生通知をし、
    前記第1制御部は、前記ウォッチドッグリセット信号を受信すると、前記制御装置のウォッチドッグリセットを実行し、
    前記第2制御部は、ウォッチドッグリセットが実行される場合、前記ウォッチドッグリセットの発生通知の受信に応じて取得した情報に基づいて、前記デバイスに対して当該デバイスが命令を受付可能な状態にする処理を実行させる制御をすることを特徴とする制御装置。
  2. 前記第2制御部は、デバイスの制御履歴に関する情報を記憶する情報保持部をさらに有し、
    前記第2制御部は、前記ウォッチドッグリセットの発生通知の受信に応じて前記デバイスの制御履歴に関する情報を取得し、
    前記第2制御部は、ウォッチドッグリセットが実行された後に、前記デバイスの制御履歴に関する情報に基づいて、前記デバイスに対して前記処理を実行させることを特徴とする請求項1に記載の制御装置。
  3. 前記情報保持部は、ウォッチドッグリセットが実行されても初期化されないことを特徴とする請求項2に記載の制御装置。
  4. 前記第2制御部は、前記ウォッチドッグリセットの発生通知の受信に応じて前記デバイスのステータスに関する情報を取得し、
    前記第2制御部は、ウォッチドッグリセットが実行される前に、前記デバイスのステータスに関する情報に基づいて、前記デバイスに対して前記処理を実行させることを特徴とする請求項1に記載の制御装置。
  5. 前記第2制御部は、前記デバイスにコマンドを発行して制御することを特徴とする請求項1〜4のいずれか1項に記載の制御装置。
  6. 請求項1〜5のいずれか1項に記載の制御装置と、前記デバイスとを有することを特徴とする情報処理装置。
  7. 請求項1〜5のいずれか1項に記載の制御装置と、前記デバイスと、印刷ヘッドとを有することを特徴とするプリンタ。
  8. デバイスと接続する制御装置の制御方法であって、
    前記制御装置は、
    前記制御装置の全体を制御する第1制御部と、
    前記デバイスとアクセスし、前記デバイスを制御する第2制御部と、
    前記第1制御部及び前記第2制御部にウォッチドッグリセット信号を通知することにより、前記制御装置のリセットを制御する第3制御部と、
    を有し、
    前記第3制御部に、ウォッチドッグリセットがかかる条件を満たした場合、前記ウォッチドッグリセット信号を通知する前に、前記第2制御部にウォッチドッグリセットの発生通知をさせ、
    前記第1制御部に、前記ウォッチドッグリセット信号を受信すると、前記制御装置のウォッチドッグリセットを実行させ、
    ウォッチドッグリセットが実行される場合、前記第2制御部に、前記ウォッチドッグリセットの発生通知の受信に応じて取得した情報に基づいて、前記デバイスに対して当該デバイスが命令を受付可能な状態にする処理を実行させる制御をさせることを特徴とする制御方法。
JP2016112730A 2016-06-06 2016-06-06 制御装置及び制御方法 Active JP6742825B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016112730A JP6742825B2 (ja) 2016-06-06 2016-06-06 制御装置及び制御方法
US15/611,632 US10423477B2 (en) 2016-06-06 2017-06-01 Control apparatus and control method for processor initialization

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016112730A JP6742825B2 (ja) 2016-06-06 2016-06-06 制御装置及び制御方法

Publications (2)

Publication Number Publication Date
JP2017219962A JP2017219962A (ja) 2017-12-14
JP6742825B2 true JP6742825B2 (ja) 2020-08-19

Family

ID=60483851

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016112730A Active JP6742825B2 (ja) 2016-06-06 2016-06-06 制御装置及び制御方法

Country Status (2)

Country Link
US (1) US10423477B2 (ja)
JP (1) JP6742825B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2019428065B2 (en) 2019-02-06 2023-02-02 Hewlett-Packard Development Company, L.P. Reset monitor
CN113835923A (zh) * 2020-06-24 2021-12-24 华为技术有限公司 一种复位系统、数据处理系统以及相关设备

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06214831A (ja) 1993-01-18 1994-08-05 Mitsubishi Electric Corp 中央処理装置の異常検出装置
US20030052180A1 (en) * 2001-09-19 2003-03-20 Trw Inc. Method and apparatus for establishing addresses for plural actuators connected to a bus
US7017038B1 (en) * 2002-08-26 2006-03-21 Network Equipment Technologies, Inc. Method and system to provide first boot to a CPU system
JP4294503B2 (ja) * 2003-07-31 2009-07-15 富士通マイクロエレクトロニクス株式会社 動作モード制御回路、動作モード制御回路を含むマイクロコンピュータ及びそのマイクロコンピュータを利用した制御システム
US7448734B2 (en) * 2004-01-21 2008-11-11 Silverbrook Research Pty Ltd Inkjet printer cartridge with pagewidth printhead

Also Published As

Publication number Publication date
JP2017219962A (ja) 2017-12-14
US20170351564A1 (en) 2017-12-07
US10423477B2 (en) 2019-09-24

Similar Documents

Publication Publication Date Title
JP5822527B2 (ja) 情報処理装置、その制御方法、および制御プログラム
US9679232B2 (en) Electronic apparatus
JP2015049731A (ja) 画像形成装置、画像形成装置の制御方法、及びプログラム
JP6742825B2 (ja) 制御装置及び制御方法
JP5943681B2 (ja) 情報処理装置、情報処理装置のファームウエア更新方法及びプログラム
US20170270395A1 (en) Electronic apparatus and method of managing status information of the same
US8638455B2 (en) Program executing apparatus, image processing apparatus and non-transitory computer readable medium for activating an equipment using stored variable
US10044891B2 (en) Electronic apparatus, recovery method, and computer-readable recording medium
US8949816B2 (en) Firmware updating method, image forming apparatus, and storage medium
US9811149B2 (en) Information processing apparatus, non-transitory computer readable medium, and information processing method
JP6590722B2 (ja) 電子機器、その制御方法及びプログラム
US8836983B2 (en) Information processing device, image forming apparatus, and non-transitory computer readable medium
JP2016110513A (ja) 情報処理装置、情報処理装置の制御方法、プログラムおよび記録媒体
JP7267692B2 (ja) ファームウェアを更新する画像形成装置
US10447886B2 (en) Image processing apparatus for updating a non-volatile memory and method controlling image processing apparatus
US9753728B2 (en) Apparatus and medium for converting a persistent wait instruction to an instruction for periodically waiting for a control target
US20240103956A1 (en) Control apparatus, control method, image processing apparatus, and non-transitory computer readable medium
JP2013250911A (ja) 画像形成装置、画像形成装置の制御方法およびコンピュータプログラム
US10942810B2 (en) Start-up processing for information processing apparatus and method, and storage medium
JP5932511B2 (ja) 情報処理装置、ソフトウェアの更新方法及びコンピュータプログラム
JP7196544B2 (ja) 情報処理装置、情報処理方法及びプログラム
JP6984524B2 (ja) 情報出力システム、情報の出力方法およびプログラム
JP2008305328A (ja) 画像形成装置及びデータ処理装置ならびにデータ処理方法ならびにデータ処理方法を実行するプログラム
JP5971022B2 (ja) 画像形成装置
JP2014238647A (ja) 情報処理装置及びそのプログラム更新方法、並びにプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190605

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200618

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200630

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200729

R151 Written notification of patent or utility model registration

Ref document number: 6742825

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151