(57)【要約】【課題】印刷装置の起動時及び省電力モードから通常モードへの復帰時におけるユーザの待ち時間に対するストレスを軽減する。【解決手段】ストレージデバイスを制御するストレージ制御手段を介してストレージデバイスに接続された印刷装置であって、前記印刷装置を制御するメインコントローラと、前記メインコントローラからのコマンドに従って前記ストレージデバイスを制御するストレージ制御手段と、を備え、前記ストレージ制御手段は、前記メインコントローラからの通信確立要求に対して、前記ストレージデバイスの起動状態に関わらず、前記ストレージデバイスとの通信が確立したことを示す情報を前記メインコントローラに送信する第１の代理応答を行なう、ことを特徴とする。【選択図】図５
2017136866.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置であって、
ストレージデバイスと、
前記情報処理装置を制御する制御手段と、
前記ストレージデバイスを制御するストレージ制御手段と、
を備え、
前記ストレージデバイスは、前記ストレージ制御手段から通信の開始要求を受信すると当該開始要求に対する応答を自身の起動処理が完了した後に前記ストレージ制御手段に送信し、
前記ストレージ制御手段は、前記制御手段から通信の開始要求を受信すると当該開始要求に対する応答を前記ストレージデバイスからの応答を待たずに前記制御手段に送信し、前記応答の送信後に前記制御手段から情報の取得要求を受信すると、予め記憶されていた情報の中から前記取得要求に係る情報を前記制御手段に送信する、
ことを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷装置の制御技術に関する。
【背景技術】
【０００２】
最近の印刷装置は、待機時電力削減のための省電力モード機能を備えているのが一般的である。印刷装置が起動状態で一定期間使用されないと、通常モードから省電力モードに自動的に移行することで待機時の電力削減を行う。この省電力モードは、待機時電力の削減が図れる反面、印刷処理に即時に対応することができないため、ユーザの利便性とトレードオフの関係にある。すなわち、省電力モードでは、次回ユーザ利用時に省電力モードから通常モードに復帰する必要があり、復帰時間だけユーザは待たされるというデメリットがある。特に、省電力モードからの復帰にハードディスク装置の起動が絡む場合、物理的構造を持つ記録部（ディスク）が所定の回転速度に安定するまでの時間や、書き込み及び読み出し処理チェックなどの自己診断処理の時間が入る。そのため、ハードディスク装置の起動時間だけでも数秒〜１０数秒間の時間を要してしまう。
【０００３】
この点、省電力モードからの復帰時に、ハードディスク装置がアクセス可能になるまでの無駄なアクセス時間を排除する提案がなされている（例えば、特許文献１）。この特許文献１の手法は、以下のとおりである。
・省電力モードへの移行時に、次回復帰時に以前と同じ状態に復元するために必要な情報（状態情報）を取得して２つに分割し、読み出し可能となるまでの時間が異なる２種類の不揮発性ストレージデバイスにそれぞれ保存する。
・省電力モードからの復帰時に、先に読み出し可能となる方のストレージデバイスから順に保存しておいた分割後の状態情報を取得し、各種リソースに再設定することにより省電力モード移行前の状態に復元する。
【０００４】
この手法では、２種類の不揮発性ストレージデバイスの一方をハードディスク装置、他方を高速に起動可能なFlashメモリにすることで、起動に時間の掛かるハードディスク装置の起動を待たずに、Flashメモリから起動処理を進めることが可能となる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開2010-124076号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記特許文献１の手法では、復帰に必要な状態情報を２つに分割し、その片方を起動の遅いハードディスク装置にも保存するため、結局のところハードディスク装置の起動時間に復帰時間が引きずられる可能性がある。
【課題を解決するための手段】
【０００７】
本発明に係る印刷装置は、ストレージデバイスを制御するストレージ制御手段を介してストレージデバイスに接続された印刷装置であって、前記印刷装置を制御するメインコントローラと、前記メインコントローラからのコマンドに従って前記ストレージデバイスを制御するストレージ制御手段と、を備え、前記ストレージ制御手段は、前記メインコントローラからの通信確立要求に対して、前記ストレージデバイスの起動状態に関わらず、前記ストレージデバイスとの通信が確立したことを示す情報を前記メインコントローラに送信する第１の代理応答を行なう、ことを特徴とする。
【発明の効果】
【０００８】
本発明によれば、復帰までに比較的長い時間を要するストレージデバイスの起動を待つことなく高速に復帰又は起動を行うことが可能となり、ユーザの利便性を向上させることができる。
【図面の簡単な説明】
【０００９】
【図１】印刷システムの構成例を示す図である。
【図２】暗号化処理装置の内部構成例を示した図である。
【図３】省電力モードからの復帰処理の流れを示すフローチャートである。
【図４】操作部の構成例を示した図である。
【図５】省電力モードから通常モードに復帰する過程の復帰シーケンスを時系列に表現した図である。
【図６】HDDの情報を内部記憶手段に格納する処理の流れを示すフローチャートである。
【図７】暗号化処理装置におけるリンク確立処理の流れを示すフローチャートである。
【図８】メインコントローラ側における起動からコマンド発行までの処理の流れを示すフローチャートである。
【図９】メインコントローラ側における、暗号化処理装置及びHDDの状態を取得する処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下、添付図面を参照して、本発明を好適な実施例に従って詳細に説明する。なお、以下の実施例において示す構成は一例にすぎず、本発明は図示された構成に限定されるものではない。
【実施例１】
【００１１】
図１は、本実施例に係る、印刷システムの構成例を示す図である。印刷システムは、印刷装置１００とホストコンピュータ１２０とで構成され、これらがLAN等のネットワーク１３０を介して接続されている。
【００１２】
印刷装置１００は、メインコントローラ１０１、スキャナ部１１４、印刷部１１５、操作部１１６、SATA-Flashメモリ１１７、暗号化処理装置１１８、HDD１１９で構成される。以下、詳しく説明する。
【００１３】
メインコントローラ１０１は、印刷装置全体を制御する制御部である。メインコントローラ内のCPU１０２は、ROM１０４に記憶されたプログラムを読み出して、各部の制御や各種演算処理を行う。メモリ制御部１０３は、各種メモリデバイスへの入出力制御やDMA（ダイレクト・メモリ・アクセス）制御を行う。ROM１０４は、Flashメモリに代表されるリード専用メモリであり、BIOS(Basic Input/Output System)プログラムや制御パラメータ等が格納される。Flashメモリを接続すれば、オンボードでの書き換えも可能である。RAM１０５は、DDRメモリに代表される書き換え専用メモリであり、プログラムの作業領域や印刷データの格納領域等の用途に用いられる。LAN-IF１０６は、印刷装置１００に接続されるLAN１３０とのインタフェースであり、一般的にはTCP/IPプロトコルに対応する。ネットワークケーブルを介して外部のホストコンピュータ１２０などのネットワーク対応機器と接続され、ネットワーク経由での印刷処理を行うことができる。また、ルーターを介してインターネットに接続することも可能である。スキャナ部IF１０７は、スキャナ部１１４との通信制御を行うインタフェースで、スキャナ部１１４でのスキャンによって取得した画像データを印刷することでコピー機能を実現する。画像処理部１０８は、LAN-IF１０６、スキャナ部IF１０７を介して取り込んだ画像データに対して、各種画像処理を行う。操作部IF１０９は、操作部１１６との通信制御を行うインタフェースで、不図示の操作パネル上の液晶画面表示やボタン等を操作することにより印刷装置１００の各種設定及び状態の確認ができる。印刷部IF１１０は、印刷部１１５とのコマンド／ステータスの通信制御や印刷データの転送を行うインタフェースである。印刷部１１５は、不図示のプリントエンジンと給紙系及び排紙系から構成され、主に印刷部IF１１０からのコマンド情報に従い、印刷データを紙等に印刷する。システムバス１１１は、制御バス、データバス及び任意ブロック間のローカルバスを便宜的にまとめて表現したもので、代表例としてPCIe(PCI Express)などがある。
【００１４】
第１SATA-IF１１２及び第２SATA-IF１１３は、SATA（Serial Advanced Technology Attachment）規格に準拠した不揮発性ストレージデバイスとのデータ入出力制御を行うインタフェースである。第１SATA-IF１１２には、SATA-Flashメモリ１１７が接続される。SATA-Flashメモリ１１７は、プライマリ・ストレージデバイスであり、起動プログラム、各種アプリケーションプログラム及び各種パラメータ等が格納されている。CPU１０２のブート処理は、プライマリ・ストレージデバイスであるSATA-Flashメモリ１１７から起動処理が実行される。第２SATA-IF１１３には、暗号化処理装置１１８及びHDD（ハードディスク装置）１１９が接続される。HDD１１９は、セカンダリ・ストレージデバイスであり、アプリケーションプログラムの設定パラメータや印刷処理時の一時的な作業領域及びユーザデータの格納場所として利用される。暗号化処理装置１１８は、第２SATA-IF１１３とHDD１１９との中間に位置するSATA-SATAブリッジ装置の一種であり、ストレージデバイスを制御するストレージ制御手段としての機能に加え、データの暗号化処理機能も併有する。すなわち、SATA-Hostである第２SATA-IF１１３からの入出力データに暗号/復号化処理を行い、HDD１１９への書き込み及び読み出し処理を実行する。
【００１５】
なお、ここでは暗号化処理装置１１８をメインコントローラ１０１に接続される外部装置として構成しているが、当然ながら暗号化処理装置１１８の機能をメインコントローラ１０１の内部に組み込んだ構成でも構わない。
【００１６】
また、HDD１１９を印刷装置１００本体の外部装置として構成しても構わない。
【００１７】
図２は、暗号化処理装置１１８の内部構成例を示した図である。暗号化処理装置１１８は、CPU２０１、メモリ制御部２０２、Flashメモリ２０３、RAM２０４、SATA-Device制御部２０５、SATA-Host制御部２０６、SATA-IF_H２０７、SATA-IF_D２０８、暗号/復号化部２０９、システムバス２１０で構成される。
【００１８】
CPU２０１は、システム制御や各種演算処理を行う。メモリ制御部２０２は、各種メモリデバイスへの入出力制御やDMA制御を行う。Flashメモリ２０３は、書き換え可能な不揮発性メモリであり、制御プログラムや暗号/復号化プログラム及び制御パラメータ等が格納される。RAM２０４は、書き換え可能で高速にアクセスできる揮発性メモリであり、Flashメモリ２０３に格納されたプログラムの一部のロードやその作業領域、データのバッファ領域として用いられる。SATA-Device制御部２０５は、SATA規格に準拠したインタフェースSATA-IF_H２０７を介してSATA-Hostである第２SATA-IF１１３（以下、「ホスト」と呼ぶ）と接続され、ホストからのデータ入出力要求に対する制御処理を行う。SATA-Host制御部２０６は、SATA規格に準拠したインタフェースSATA-IF_D２０８を介してSATA-DeviceであるHDD１１９と接続され、HDD１１９とのデータ入出力制御を行う。すなわち、暗号化処理装置１１８は、“ホスト”である第２SATA-IF１１３から“デバイス”であるHDD１１９へのデータ入出力要求に対してSATA-SATAブリッジ装置としての機能を持つ。暗号/復号化部２０９は、ホストからのデータ書き込み要求に対しては暗号化処理、データ読み出し要求に対しては復号化処理を行う。システムバス２１０は、制御バス、データバス及び任意ブロック間のローカルバスを便宜的にまとめて表現したものである。
【００１９】
＜省電力モード＞  
次に、省電力モードの概要並びに省電力モードからの復帰処理について説明する。
【００２０】
省電力モードとは、ユーザが印刷装置を利用していない待機時間の電力削減を目的とする動作モードであり、即時に各種機能が利用可能な動作モードである通常モードに相対する概念である。前述したように省電力モードは、ユーザの利便性とトレードオフの関係にあるため、通常モードへの復帰に要する時間の違いに応じて幾つかのレベルを持つのが一般的である。例えば、電力削減に大きな効果を発揮する反面、復帰までに長時間を要する最も深いレベルの省電力モードでは、RAM１０５とその制御に関わる一部の機能を残すのみで、それ以外の部分への電力供給が遮断される。つまり、この場合には、プライマリ・ストレージデバイスであるSATA-Flashメモリ１１７やセカンダリ・ストレージデバイスであるHDD１１９のへ電源供給も停止状態となる。
【００２１】
図３は、メインコントローラ１０１における、上述の最も深いレベルの省電力モードからの復帰処理の流れを示すフローチャートである。ここでは、復帰処理の大まかな流れを説明し、本発明に関わる部分は別途図を用いて詳細を説明することとする。
【００２２】
ステップ３０１において、電力の供給を開始されたCPU１０２は、RAM１０５に保持されたデータを用いて起動処理を開始する。
【００２３】
ステップ３０２において、CPU１０２は、プライマリ・ストレージであるSATA-Flashメモリ１１７の接続確認を実施する。この場合において、SATA-Flashメモリ１１７は、半導体デバイスで構成されるため高速に起動可能である。なお、この接続確認に併せて必要に応じ所定の処理が実行されるが、本発明とは関係しないので説明を省略する。
【００２４】
ステップ３０３において、CPU１０２は、HDD１１９の接続確認を実施する。この場合において、HDD１１９は、そのディスクサイズや容量に依存して数秒〜１０数秒の起動時間を要する。また、この接続確認に併せて必要に応じ所定の処理が実行される。ここでの所定の処理は、本発明において重要な要素である代理応答に関係する。その詳細については後述する。
【００２５】
ステップ３０４において、CPU１０２は、復帰処理の前半部分に関する各種起動処理を実施する。この各種起動処理は、本発明には関係しないので説明を省略する。
【００２６】
ステップ３０５において、CPU１０２は、操作部１１６の液晶画面に各種機能ボタンを表示する。例えば、印刷装置１００の基本機能であるコピーボタンをユーザが押下可能な状態に遷移させる。この時点で、印刷装置１００を利用するユーザは、コピー機能等を利用するための操作を開始することが可能となる。図４は、操作部１１６の構成例を示した図である。液晶パネル４０１には、印刷装置１００で利用可能な各種機能に対応したアイコンが表示される。図４の例では、最も基本的な機能であるコピーアイコン４０２の他、機能Ａ〜Ｃにそれぞれ対応するアイコン４０３〜４０５が表示されている。Startボタン４０６は、上述の各アイコン４０２〜４０５を選択し、各種設定をした上で、当該選択されたアイコンの処理の開始を確定するボタンである。例えば、ユーザがコピーアイコン４０２を選択し、必要な設定をした後にStartボタン４０６を押下することでコピー処理が開始される。電源ボタン４０７は、ファームウェアで制御されるLED内蔵のボタンである。印刷装置１００が省電力モードの状態から通常モードに移行させる場合や省電力モードに強制的に移行させたい場合に利用する。通常、省電力モードの有効及び無効の状態は、緑色や橙色などのLEDが点灯することでユーザに通知される。その他のボタン類４０８は、テン・キーなどユーザ操作のための補助的役割を担っている。
【００２７】
ステップ３０６において、CPU１０２は、復帰処理の後半部分に関する各種起動処理を実施する。この各種起動処理も、本発明には関係しないので説明を省略する。
【００２８】
以上が、メインコントローラ１０１における、省電力モードからの復帰処理の概要である。
【００２９】
＜代理応答＞
次に、上述の代理応答について説明する。ここで「省電力モードから通常モードへの復帰」或いは「電源スイッチ・オンによる通常起動時の起動確定まで」を、ユーザが上記アイコン４０２〜４０５を選択してStartボタン４０６を押下可能な状態（ステップ７０５参照）に移行するまで、と定義する。この時、このように定義される状態に移行するまでの時間を如何に短時間に抑え、ユーザに体感上及び実質的にストレスを感じさせないようにするには、HDD１１９の起動時間の問題解決が鍵となる。
【００３０】
図５は、第２SATA-IF１１３（メインコントローラ１０１）、暗号化処理装置１１８及びHDD１１９間の、省電力モードから通常モードに復帰する過程の復帰シーケンスを時系列に表現した図である。SATA規格によれば、まず電源オン時に所定のシーケンス処理を経て各IF間のリンク（通信）を確立することが必要である。以下にリンク確立までの過程を時系列に説明する。
【００３１】
まず、電源がオンされた後、ホストである第２SATA-IF１１３は、次段の暗号化処理装置１１８に対して通信確立要求としてのComReset信号（SATA規格で定義された固有名称）５０１を発行する。そして、ComReset信号５０１を受信した暗号化処理装置１１８は、さらに次段のHDD１１９に対して同様に通信確立要求としてのComReset信号５０２を発行する。SATA規格によれば、基本的にリンク確立の起点はSATA-Hostインタフェース側からのComReset信号の発行である。そして、順次OOB（Out of Band）処理やスピードネゴシエーション処理を経て最終的にSATA-Deviceインタフェース側からのRegDH（Register Device to Host）信号の受信を持ってリンク確立完了となる。この一連の流れをOOBシーケンス処理と呼ぶことにする。なお、SATA規格によれば、SATA-Deviceインタフェース側から発行のComInit信号を起点としてリンク確立を行うこともできる。続いて、暗号化処理装置１１８からのComReset信号５０２によって、HDD１１９間とのOOBシーケンス処理５０３が開始される。以後、経過時間Th５０９を経て、HDD１１９からのRegDH信号５０４を暗号化処理装置１１８が受信することでリンク確立（HDD１１９が起動完了して上位ホストからアクセス可能となる状態）が完了する。そして、上記経過時間Th５０９として、数秒〜１０数秒の時間を要することになる。
【００３２】
一方、第２SATA-IF１１３と暗号化処理装置１１８間もComReset信号５０１を起点としてOOBシーケンス処理５０５が開始され、暗号化処理装置１１８からのRegDH信号５０６の発行をもってリンク確立が完了する。
【００３３】
ここで、暗号化処理装置１１８がリンク確立を示すRegDH信号５０６を発行するタイミングは、図５で示されるように、一般的にHDD１１９からのRegDH信号５０４を受信した後である。なぜならば、RegDH信号５０４を受信した後でなければHDD１１９へはアクセスできない（未だアクセス不能な状態にある）からである。
【００３４】
本発明では、HDD１１９からのRegDH信号５０４を待たずに、暗号化処理装置１１８は第２SATA-IF１１３に対してRegDH信号５０６’を即座に発行する。すなわち、HDD１１９の起動状態の如何に関わらず（結果的にHDD１１９の正常・異常に関わらず）、メインコントローラ１０１からの通信確立要求であるComReset信号５０１に対してRegDH信号５０６’を発行する。そのため、その間の経過時間Td５０８は非常に短時間で済み、リンク確立が完了することになる。具体的には、経過時間Th５０９が数秒〜１０数秒であるのに対して、経過時間Td５０８は１〜２ms程度である。ここで、HDD１１９の真の起動に応答したものではないという意味でダミーの応答と言えるRegDH信号５０６’の発行（送信）を、「第１の代理応答」と呼ぶこととする。そして、この第１の代理応答以降は擬似的にリンク確立が完了していることになるため、ホストである第２SATA-IF１１３からの各種コマンドの発行が許可されることになる。そして、省電力モードからの復帰や起動処理の過程においては、上記第１の代理応答以降に、HDD１１９に関する情報を取得するための例えば以下のような特定のコマンドがシステムの必須要件として発行される。  
・接続状態を調査する目的や接続されたHDD１１９が期待するデバイスであることを確認するための、シリアル番号や性能及び設定値などの情報を取得するためのIdentifyコマンド
・パーティション・テーブル作成のためにセカンダリ・ストレージであるHDD１１９からMBR（Master Boot Record）を読み出すReadコマンド
【００３５】
本明細書では、復帰や起動時に必要となる、第１の代理応答以降になされる第２SATA-IF１１３から発行された特定コマンドに対する暗号化処理装置１１８の応答を総称して「第２の代理応答」と呼ぶこととする。
【００３６】
次に、上述の復帰シーケンスについて、第２SATA-IF１１３及び暗号化処理装置１１８における内部での制御フローについてそれぞれ詳しく説明する。
【００３７】
まず、暗号化処理装置１１８内部での制御フローについて説明する。
【００３８】
図６は、印刷装置１００の初回起動時に、ストレージ制御手段としての暗号化処理装置１１８においてなされる、HDD１１９の情報を内部記憶手段としてのFlashメモリ２０３に格納する処理の流れを示すフローチャートである。
【００３９】
ステップ６０１において、CPU２０１は、HDD１１９とのOOBシーケンス処理５０３を実施し、リンクの確立を行なう。
【００４０】
ステップ６０２において、CPU２０１は、第２の代理応答に必要な特定のコマンドを発行してHDD１１９の情報を取得する。
【００４１】
ステップ６０３において、CPU２０１は、ステップ６０２で取得したHDD１１９の情報を暗号化処理装置１１８内のFlashメモリ２０３に格納する。
【００４２】
ステップ６０４において、CPU２０１は、第２の代理応答に必要な情報の取得が完了したかどうかを判定する。未取得の必要な情報がある場合は、ステップ６０２に戻ってHDD１１９の情報の取得処理を繰り返す。一方、必要な情報をすべて取得していた場合は本処理を終える。
【００４３】
以上が、暗号化処理装置１１８における、HDD１１９の情報を内部記憶手段に格納する処理の内容である。なお、この処理は、第２の代理応答に必要な情報が更新された場合（例えば、新規のハードディスク装置が装着された場合）、必ず初回起動時に一度だけ実行される。
【００４４】
図７は、本実施例に係る、暗号化処理装置１１８におけるリンク確立処理の流れを示すフローチャートである。
【００４５】
ステップ７０１において、CPU２０１は、印刷装置１００への電源投入直後の初期状態時に、HDD１１９の接続状態を示すHDD接続OKフラグを“OFF”に設定する。この際、HDD１１９との通信が確立されていない未接続の状態であることを意味するOFFを表す設定値（例えば“0”）がFlashメモリ２０３に保存される。
【００４６】
ステップ７０２において、CPU２０１は、ホストである第２SATA-IF１１３からComReset信号５０１を受信したかどうかを判定する。第２SATA-IF１１３からComReset信号５０１を受信した場合は、ステップ７０３に進む。一方、第２SATA-IF１１３からComReset信号５０１を受信していない場合は、ComReset信号５０１の受信待ち状態を継続する。
【００４７】
ステップ７０３において、CPU２０１は、第２SATA-IF１１３との間のOOBシーケンス処理５０５を実施する。そして、OOBシーケンス処理５０５の最後に、前述の第１の代理応答として、RegDH信号５０６’を即座に発行する。これにより、第２SATA-IF１１３と暗号化処理装置１１８間のリンクが擬似的に確立される。
【００４８】
ステップ７０４において、CPU２０１は、HDD１１９からRegDH信号５０４を受信したかどうかを判定する。HDD１１９からRegDH信号５０４を受信していない場合は、ステップ７０５に進む。一方、HDD１１９からRegDH信号５０４を受信した場合は、ステップ７０８に進む。
【００４９】
ステップ７０５において、CPU２０１は、第２SATA-IF１１３からコマンドを受信したかどうかを判定する。第２SATA-IF１１３からコマンドを受信した場合は、ステップ７０６に進む。一方、第２SATA-IF１１３からコマンドを受信していない場合は、RegDH信号５０４の受信待ち状態を継続する（ステップ７０４に戻る）。
【００５０】
ステップ７０６において、CPU２０１は、第２SATA-IF１１３から受信したコマンドが、前述の特定コマンド（IdentifyコマンドやReadコマンド等）であるかどうかを判定する。受信したコマンドが特定コマンドであった場合は、ステップ７０７に進む。一方、受信したコマンドが特定コマンド以外のコマンドであった場合は、RegDH信号５０４の受信待ち状態を継続する（ステップ７０４に戻る）。
【００５１】
ステップ７０７において、CPU２０１は、第２SATA-IF１１３から受信した特定コマンドに対応する応答処理を実行する。特定コマンドに対応する応答処理が終了するとステップ７０４に戻り、RegDH信号５０４の受信待ち状態を継続する。こうして、全ての特定コマンドの処理が完了するまで、ステップ７０４〜ステップ７０７の処理が繰り返される。
【００５２】
ステップ７０８において、CPU２０１は、HDD１１９の状態が正常かどうかを判定する。具体的には、ステップ７０４で受信したRegDH信号５０４に付随するレジスタ値にエラーがないかどうかを確認し、ハードディスク装置としていつでもアクセス可能なReady状態にあるのか、何等かの理由でアクセス不可能なBusy状態にあるのかの判定を行う。HDD１１９の状態が正常である場合は、ステップ７０９に進む。一方、HDD１１９の状態が正常でない場合は、ステップ７１０に進む。
【００５３】
ステップ７０９において、CPU２０１は、上述のHDD接続OKフラグを“ON”に設定する。この際、ONを表す設定値（例えば“1”）がFlashメモリ２０３に保存される。この時点で、暗号化処理装置１１８とHDD１１９間の真性のリンク確立が完了し、かつHDD１１９の状態も正常であることが確認されたことになる。そして、CPU２０１は、例えばステートを１段階進める等の処理を必要に応じて実行して、HDD１１９への通常のアクセス処理を開始可能にし、本処理を終了する。
【００５４】
ステップ７１０において、CPU２０１は、HDD１１９が正常でないことを示す情報（エラー情報）をFlashメモリ２０３に保存する。この場合、Flashメモリ２０３に保存されたエラー情報は、印刷装置１００のCPU１０２によって第２SATA-IF１１３を介して取得され、適切なエラー処理が実施される。その間、暗号化処理装置１１８は、HDD１１９へのアクセス処理を停止して待機状態に入る。
【００５５】
以上が、暗号化処理装置１１８におけるリンク確立処理の内容である。
【００５６】
次に、メインコントローラ１０１側（第２SATA-IF１１３）におけるリンク確立の制御フローについて説明する。
【００５７】
図８は、起動からコマンド発行までの処理の流れを示すフローチャートである。
【００５８】
ステップ８０１において、第２SATA-IF１１３は、ComReset信号５０１を発行し、暗号化処理装置１１８との間のOOBシーケンス処理５０５を開始する。
【００５９】
ステップ８０２において、CPU１０２は、暗号化処理装置１１８からRegDH信号５０６’（すなわち、第１の代理応答）を受信したかどうかを判定する。暗号化処理装置１１８からRegDH信号５０６’を受信していない場合、受信待ち状態を継続する。暗号化処理装置１１８からRegDH信号５０６’を受信した場合、ステップ８０３に進む。
【００６０】
ステップ８０３において、CPU１０２は、コマンド発行要求の有無を判定する。コマンド発行要求がない場合、コマンド発行要求の待ち状態を継続する。コマンド発行要求があった場合、ステップ８０４に進む。
【００６１】
ステップ８０４において、CPU１０２は、要求されたコマンド（特定コマンドを含む）を暗号化処理装置１１８に対して発行する処理を実行する。
【００６２】
ステップ８０５において、CPU１０２は、ステップ８０４で行なったコマンド発行処理の結果が正常か（例えば、発行した特定コマンドに対して正しく暗号化処理装置１１８から第２の代理応答があったか）どうかを判定する。コマンド発行処理の結果が正常である場合は、ステップ８０６に進む。一方、コマンド発行処理の結果が正常でない場合は、ステップ８０７に進む。
【００６３】
ステップ８０６において、CPU１０２は、HDD１１９へのアクセスを終了する旨の要求の有無を判定する。HDD１１９へのアクセスを終了する旨の要求があった場合は、本処理を終了する。具体的には、例えば通常モードから省電力モードへ移行するための準備として暗号化処理装置１１８やHDD１１９の電源をＯＦＦするためのシャットダウン処理を実行し、HDD１１９へのアクセスを終了する。一方、HDD１１９へのアクセスを終了する旨の要求がない場合は、ステップ８０３に戻り、コマンド発行要求の待機状態に入る。
【００６４】
ステップ８０７において、CPU１０２は、適切なエラー処理を実行する。エラー処理内容については本発明とは関係しないため省略する。
【００６５】
以上が、メインコントローラ１０１側における起動からコマンド発行までの処理の内容である。上記のとおり、ステップ８０２におけるRegDH信号５０６’の受信が上述の第１の代理応答に対応し、ステップ８０３及びステップ８０４でのコマンド発行処理のうち特定のコマンドに関する部分が上述の第２の代理応答に対応することになる。
【００６６】
図９は、メインコントローラ１０１側における、暗号化処理装置１１８及びHDD１１９の状態を取得する処理の流れを示すフローチャートである。この処理は、上述の図８で示した「起動からコマンド発行までの処理」と並行して実行される。
【００６７】
ステップ９０１において、CPU１０２は、暗号化処理装置１１８からRegDH信号５０６’（すなわち、第１の代理応答）を受信したかどうかを判定する。暗号化処理装置１１８からRegDH信号５０６’を受信していない場合、受信待ち状態を継続する。暗号化処理装置１１８からRegDH信号５０６’を受信した場合、ステップ９０２に進む。なお、本ステップは前述の図８のフローチャートにおけるステップ８０２と同一の処理を指している。
【００６８】
ステップ９０２において、CPU１０２は、ホストである第２SATA-IF１１３を介してGetStatusコマンドを暗号化処理装置１１８に対して発行する。ここで、GetStatusコマンドとは、暗号化処理装置１１８及びHDD１１９の各種ステータス情報を取得するためのコマンドである。このGetStatusコマンドは、SATA規格でベンダーユニークコマンド（空コマンド）に定義されたものに、そのシステム独自の意味（内容）を持たせた拡張コマンドのひとつである。このGetStatusコマンドを発行することによって、CPU１０２は、暗号化処理装置１１８及びHDD１１９の現在の状態や状況に関する情報を取得することができる。そして、各種ステータス情報の中には、HDD接続OKフラグの情報（設定内容）の他、HDD１１９の状態が正常か否かを示す情報などが含まれる。
【００６９】
ステップ９０３において、CPU１０２は、ステップ９０２で取得した各種ステータス情報に含まれるHDD接続OKフラグの情報から、HDD１１９の接続状態を判定する。すなわち、HDD１１９が暗号化処理装置１１８とリンク確立状態にあるかどうかの判定を行う。HDD１１９が暗号化処理装置１１８とリンク確立状態にない場合（HDD接続OKフラグ＝OFFの場合）は、ステップ９０２に戻ってGetStatusコマンドを再び発行する。つまり、少なくともHDD１１９と暗号化処理装置１１８間のリンク確立が完了するまで、所定の時間間隔でポーリング処理が実行され、GetStatusコマンドの発行が繰り返されることになる。一方、HDD１１９が暗号化処理装置１１８とリンク確立状態にある場合（HDD接続OKフラグ＝ONの場合）は、ステップ９０４に進む。
【００７０】
ステップ９０４において、CPU１０２は、ステップ９０２で取得した各種ステータス情報に含まれるHDD１１９の状態に関する情報を参照して、HDD１１９の状態が正常か否かを判定する。HDD１１９の状態が正常である場合は、HDD１１９への通常アクセスが可能な状態にあることが確認されたことになり、本処理を終了する。一方、HDD１１９の状態が正常でない場合は、ステップ９０５に進む。
【００７１】
ステップ９０５において、CPU１０２は、適切なエラー処理を実施する。エラー処理内容については本発明とは関係しないため省略する。
【００７２】
以上が、メインコントローラ１０１側における、暗号化処理装置１１８及びHDD１１９の状態を取得する処理の内容である。このように印刷装置１００のCPU１０２は、暗号化処理装置１１８の第１及び第２の代理応答によって復帰に必要な処理を進めつつ、他方でHDD１１９の状態を監視し、真にHDD１１９へのアクセスが可能となったかどうかを判断している。
【００７３】
なお、ステップ９０４における判定結果は、ステップ９０５のエラー処理以外にも利用される。具体的には、復帰処理に必要な第１の代理応答及び第２の代理応答の処理以後に、メインコントローラ１０１側の各アプリケーションプログラムから本格的にHDD１１９にアクセスを開始しても問題ないかどうかの判定などに利用される。そして、本格的にHDD１１９にアクセスを開始しても問題ない場合、HDD119にアクセス可能なことを示すフラグ（HDD起動OKフラグ）を“ON”に設定するといった処理が必要に応じて実行される。
【００７４】
本実施例では、主に省電力モードから通常モードへの復帰処理を中心に説明してきたが、印刷装置１００の電源スイッチ・オンによる通常起動時にも適用可能である。この場合、起動プログラムを格納したプライマリ・ストレージからのブート処理から開始（図３のステップ３０２を参照）される点が異なるだけで、以後の処理は基本的に変わらない。
【００７５】
また、暗号化処理装置１１８のインタフェース（SATA-IF_H２０７及びSATA-IF_D２０８）は、SATA-IFに限定されるものではなく、例えばPCIe（PCI Express）などの他のインタフェースであってもよい。
【００７６】
そして、ストレージ制御手段としての暗号化処理装置１１８に接続されるストレージデバイスもハードディスク装置に限定されるものではなく、SSD（Solid State Drive）などの他のストレージデバイスであっても構わない。
【００７７】
さらに、SATA-Device制御部２０５及びSATA-Host制御部２０６は、それぞれ複数備えていても構わない。たとえば、ミラーリングのためハードディスク装置を複数設置する場合は、各ハードディスク装置に対応付けられたSATA-Host制御部２０６が複数設けられることになる。この場合、SATA-Host制御部２０６とハードディスク装置との間のデータ入出力のためのSATA-IF_D２０８も複数設けられることになる。SATA-Device制御部２０５と第２SATA-IF１１３とを複数設けた場合も同様である。
【００７８】
本発明によれば、省電力モードから通常モードへの復帰時又は電源スイッチ・オンによる通常起動時に、ストレージ制御手段による代理応答によって疑似的にホストとのリンク確立状態に移行させることができる。従って、ストレージデバイスの起動を待つことなく高速に復帰又は起動を行うことが可能となり、ユーザの利便性を向上させることができる。
【００７９】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2017136866.tif 000003
【図２】
2017136866.tif 000004
【図３】
2017136866.tif 000005
【図４】
2017136866.tif 000006
【図５】
2017136866.tif 000007
【図６】
2017136866.tif 000008
【図７】
2017136866.tif 000009
【図８】
2017136866.tif 000010
【図９】
2017136866.tif 000011