(57)【特許請求の範囲】
【請求項１】
印刷データを処理する画像形成装置において、
第１不揮発性記憶装置と、
前記第１不揮発性記憶装置よりもデータの転送能力が低い第２不揮発性記憶装置と、
印刷データのサイズが、前記第２不揮発性記憶装置の単位時間当たりのデータ転送速度に対応するしきい値に対して所定の条件を満たすことによって、前記第２不揮発性記憶装置に前記印刷データを記憶させ、
前記印刷データのサイズが、前記しきい値に対して所定の条件を満たさないことによって、前記第１不揮発性記憶装置に前記印刷データを記憶させる制御部を有することを特徴とする画像形成装置。
【請求項２】
前記制御部は、前記印刷データのサイズが前記しきい値以下の場合に、前記第２不揮発性記憶装置に前記印刷データを記憶させ、前記印刷データのサイズが前記しきい値より大きい場合に、前記第１不揮発性記憶装置に前記印刷データを記憶させることを特徴とする請求項１に記載の画像形成装置。
【請求項３】
前記しきい値は、転送可能な印刷データの１ページ当たりの最大データサイズであることを特徴とする請求項１または２に記載の画像形成装置。
【請求項４】
前記印刷データは圧縮されており、
前記印刷データのサイズは、圧縮された印刷データの１ページ当たりの印刷データのサイズであることを特徴とする請求項１乃至３のいずれか１項に記載の画像形成装置。
【請求項５】
前記しきい値を記憶するしきい値記憶部を有することを特徴とする請求項１乃至４のいずれか１項に記載の画像形成装置。
【請求項６】
前記しきい値は、前記第２不揮発性記憶装置の転送可能な印刷データの１ページ当たりの最大データサイズであることを特徴とする請求項３に記載の画像形成装置。
【請求項７】
前記制御部は、各ページの書き込みデータのサイズと前記しきい値とを比較し、ページ単位で前記第１不揮発性記憶装置または前記第２不揮発性記憶装置に書き込みデータを記憶させることを特徴とする請求項１乃至６のいずれか１項に記載の画像形成装置。
【請求項８】
前記制御部は、前記第１不揮発性記憶装置または前記第２不揮発性記憶装置の論理アドレスを物理アドレスに変換し、前記物理アドレスに書き込みデータを転送することを特徴とする請求項１乃至７のいずれか１項に記載の画像形成装置。
【請求項９】
前記制御部は、前記論理アドレスを基に、前記第１不揮発性記憶装置または前記第２不揮発性記憶装置を決定することを特徴とする請求項８に記載の画像形成装置。
【請求項１０】
データを圧縮する圧縮処理部をさらに有し、
前記制御部は、前記圧縮処理部により圧縮されたデータを書き込みデータとして前記第１不揮発性記憶装置または前記第２不揮発性記憶装置に転送することを特徴とする請求項１乃至９のいずれか１項に記載の画像形成装置。
【請求項１１】
前記制御部は、前記第１不揮発性記憶装置の累積書き込み量が閾値より多い場合には通知することを特徴とする請求項１乃至１０のいずれか１項に記載の画像形成装置。
【請求項１２】
前記制御部は、前記第１不揮発性記憶装置の累積書き込み量が第１の閾値より多い場合には第１の通知を行い、第２の閾値より多い場合には第２の通知を行うことを特徴とする請求項１１に記載の画像形成装置。
【請求項１３】
前記制御部は、前記第１不揮発性記憶装置の累積書き込み量が閾値より多い場合には、前記第２不揮発性記憶装置を割り当てることを特徴とする請求項１乃至１２のいずれか１項に記載の画像形成装置。
【請求項１４】
前記第１不揮発性記憶装置は、不揮発性の半導体記憶装置であり、
前記第２不揮発性記憶装置は、不揮発性の磁気記憶装置であることを特徴とする請求項１乃至１３のいずれか１項に記載の画像形成装置。
【請求項１５】
第１不揮発性記憶装置と、前記第１不揮発性記憶装置よりもデータの転送能力が低い第２不揮発性記憶装置とを有し、印刷データを処理する画像形成装置の制御方法において、
印刷データのサイズが、前記第２不揮発性記憶装置の単位時間当たりのデータ転送速度に対応するしきい値に対して所定の条件を満たすことによって、前記第２不揮発性記憶装置に前記印刷データを記憶させるステップと、
前記印刷データのサイズが、前記しきい値に対して所定の条件を満たさないことによって、前記第１不揮発性記憶装置に前記印刷データを記憶させるステップを有することを特徴とする画像形成装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置及び画像形成装置の制御方法に関する。
【背景技術】
【０００２】
不揮発性記憶装置のストレージデバイスとして、ＨＤＤ（ハードディスク装置）がある。ＨＤＤは、ビット単価が安い、大容量、書き換え可能回数に対する制限がない等の利点を持つが、メカ的な構造ゆえに処理パフォーマンスが中速程度で、且つ振動に弱い等の欠点がある。一方で、近年、フラッシュメモリを用いたＳＳＤ（ソリッドステートドライブ）の普及が目覚ましい。ＳＳＤは、半導体素子で構成されるストレージデバイスであるため振動に強く、ＨＤＤに比較して２倍以上処理スピードが高速である利点を持つ。その反面、ＳＳＤは、微細化に伴い、ブロック単位当たりの書き換え可能回数が少なく、ＭＬＣ（マルチレベルセル）型で書き換え可能回数が１０００〜３０００回程度と極端に少ない。したがって、ＳＳＤの高速性は魅力的であるが、ＳＳＤの書き換え可能回数に対する寿命の短さは書き換え頻度の多いキャッシュシステムやデータベース装置及び印刷装置等においては致命的欠点となる。
【０００３】
ＳＳＤ等のフラッシュメモリを利用したストレージデバイスに対しての寿命延長方法が知られている。特許文献１には、ＳＳＤとＨＤＤをハイブリッド構成としたデータキャッシュシステムが開示されている。特許文献１では、データの書き込みキャッシュを一端ＨＤＤに格納し、ＳＳＤの寿命を考慮しながら移送ポリシーに従ってキャッシュデータをＳＳＤへ転送する。
【０００４】
特許文献２には、データベース装置において書込みデータの更新頻度に基づき、更新頻度の高いデータテーブルは長寿命のストレージデバイス（ＨＤＤ）上に作成し、更新頻度の低いデータテーブルはフラッシュメモリ上に作成する延命方法が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特表２０１３−５１３１８６号公報
【特許文献２】特開２０１２−１４６３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、特許文献１及び２の方法では、高解像度で、且つ高速印刷の両立を要求されるハイエンドクラスの印刷装置への適用は難しい。特許文献１は、ＨＤＤの処理性能に引きずられて、印刷装置の出力ＰＰＭ（Ｐａｇｅ Ｐｅｒ Ｍｉｎｕｔｅ）仕様を満たせない。また、特許文献２は、更新頻度等の統計値では、印刷装置への適用が困難である。
【０００７】
本発明の目的は、不揮発性記憶装置の寿命を延長させることができる画像形成装置及び画像形成装置の制御方法を提供することである。
【課題を解決するための手段】
【０００８】
本発明の画像形成装置は、印刷データを処理する画像形成装置において、第１不揮発性記憶装置と、前記第１不揮発性記憶装置よりもデータの転送能力が低い第２不揮発性記憶装置と、印刷データのサイズが、前記第２不揮発性記憶装置の単位時間当たりのデータ転送速度に対応するしきい値に対して所定の条件を満たすことによって、前記第２不揮発性記憶装置に前記印刷データを記憶させ、前記印刷データのサイズが、前記しきい値に対して所定の条件を満たさないことによって、前記第１不揮発性記憶装置に前記印刷データを記憶させる制御部を有する。
【発明の効果】
【０００９】
不揮発性記憶装置の書き換え回数を減らして寿命を相対的に延長させることができる。
【図面の簡単な説明】
【００１０】
【図１】印刷装置の構成例を示す図である。
【図２】ＳＡＴＡ制御部の構成例を示す図である。
【図３】圧縮処理部の構成例を示す図である。
【図４】ストレージ管理テーブルの構成例を示す図である。
【図５】メインメモリ上のファイル管理テーブルの構成例を示す図である。
【図６】ストレージデバイス上のファイル管理テーブルの構成例を示す図である。
【図７】ディスクリプタテーブルの構成例を示す図である。
【図８】メインメモリ上のマッピング構成例を示す図である。
【図９】ＳＡＴＡ制御部に含まれるＳＲＡＭ上のマッピング構成例を示す図である。
【図１０】ＬＢＡ管理テーブルの作成フローを示す図である。
【図１１】メインメモリ上のファイル管理テーブルの作成フローを示す図である。
【図１２】ストレージデバイス上のテーブルの作成フローを示す図である。
【図１３】ディスクリプタテーブルを用いたデータ転送フローを示す図である。
【図１４】寿命判定処理フローを示す図である。
【図１５】暗号化装置の接続の構成例を示す図である。
【図１６】暗号化装置の構成例を示す図である。
【図１７】暗号化装置の制御及びステータス取得の拡張コマンド例を示す図である。
【図１８】暗号化装置でのコマンド処理フローを示す図である。
【発明を実施するための形態】
【００１１】
（第１の実施形態）
図１は、本発明の第１の実施形態による印刷システムの構成例を示す図である。印刷システムは、印刷装置と、ローカルエリアネットワーク１０６と、ホストコンピュータ１０７とを有する。印刷装置は、メインコントローラ１１２と、外部画像処理装置１０８と、スキャナ装置１１１と、ＨＤＤ１１４と、ＳＳＤ１１５と、ＲＯＭ１１６と、フラッシュメモリ１０３と、ＤＲＡＭ１０４と、パネル装置１１８と、印刷部１２０とを有する。ＨＤＤ１１４は、ハードディスク装置であり、不揮発性記憶装置（ストレージデバイス）である。ＳＳＤ１１５は、フラッシュメモリを用いたソリッドステートドライブであり、不揮発性記憶装置（ストレージデバイス）である。ＳＳＤ１１５は、ＨＤＤ１１４より書き込み速度及び読み出し速度が速い。すなわち、ＨＤＤ１１４及びＳＳＤ１１５は、書き込み速度及び読み出し速度が異なる。メインコントローラ１２２は、メインＣＰＵ１０１と、メモリ制御部１０２と、ＬＡＮ−ＩＦ部１０５と、圧縮処理部１０９と、リーダＩＦ部１１０と、画像処理部１１２と、ＳＡＴＡ制御部１１３と、パネルＩＦ部１１７と、ビデオ出力ＩＦ部１１９とを有する。さらに、メインコントローラ１２２は、メインバス１２１を有する。
【００１２】
メインＣＰＵ（中央処理演算器）１０１は、制御部であり、システム制御や各種演算処理を行う。メモリ制御部１０２は、フラッシュメモリ１０３及びＤＲＡＭ１０４の各種メモリデバイスへの入出力制御やＤＭＡ（ダイレクトメモリアクセス）制御を行う。フラッシュメモリ１０３は、書き換え可能な不揮発性メモリであり、システム全体の制御プログラムや制御パラメータ等を格納する。ＤＲＡＭ（ダイナミックランダムアクセスメモリ）１０４は、ＤＤＲ（Ｄｏｕｂｌｅ−Ｄａｔａ−Ｒａｔｅ）メモリに代表される揮発性の書き換え専用メモリであり、プログラムの作業領域や印刷データの格納領域、各種テーブル情報格納領域等の用途に用いられる。ここで、メモリ制御部１０２と各種メモリデバイスとの関係は、簡略化して表現したものであって、独立に制御される。ＬＡＮ−ＩＦ部１０５は、ローカルエリアネットワーク１０６に対するインターフェース部であり、例えばＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）プロトコルに対応する。印刷装置は、ローカルエリアネットワーク１０６を介して、外部のホストコンピュータ１０７等のネットワーク対応機器と接続され、印刷を行うことができる。
【００１３】
外部画像処理装置１０８は、ローカルエリアネットワーク１０６を介して受信した印刷データに各種画像処理を施し、圧縮処理部１１２に画像データを送信する。また、外部画像処理装置１０８は、ＬＡＮ−ＩＦ部１０５と１対１で接続され、印刷情報やステータスの送受信を行う。圧縮処理部１０９は、外部画像処理装置１０８からの画像データを圧縮し、メモリ制御部１０２を介して、ＤＲＡＭ１０４の所定の場所に圧縮データを格納する。圧縮方式は、ロスレス圧縮やＪＰＥＧ（Ｊｏｉｎｔ Ｐｈｏｔｏｇｒａｐｈｉｃ Ｅｘｐｅｎｔｓ Ｇｒｏｕｐ）圧縮等である。リーダＩＦ部１１０は、スキャナ装置１１１に対して通信制御を行うインターフェース部である。スキャナ装置１１１は、スキャンにより画像データを生成する。メインコントローラ１２２は、スキャナ装置１１１によってスキャンされた画像データを、印刷部１２０に印刷させることで、コピー機能を実現する。画像処理部１１２は、ＬＡＮ−ＩＦ部１０５又はリーダＩＦ部１１０を介して入力した画像データに対して各種画像処理を行う。
【００１４】
ＳＡＴＡ制御部１１３は、ＳＡＴＡ（Ｓｅｒｉａｌ  Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ）規格に準拠したインターフェースを有するデバイスとのデータ入出力制御を行う。ＳＡＴＡ制御部１１３には、不揮発性記憶装置であるＨＤＤ１１４及びＳＳＤ１１５が接続される。ＲＯＭ１１６は、ＳＡＴＡ制御部１１３内部に含まれる第１のサブＣＰＵ２０１（図２）の制御プログラムや各種パラメータを格納する。印刷装置の起動時に、第１のサブＣＰＵ２０１は、メインＣＰＵ１０１とは独立に、ＲＯＭ１１６のプログラムによりブート処理を行い起動する。ＳＡＴＡ制御部１１３の内部構成は、図２を用いて後述する。パネルＩＦ部１１７は、パネル装置１１８に対して通信制御を行う。パネル装置１１８は、ＵＩ（ユーザインターフェイス）として、パネル上の液晶画面表示やボタン等を操作することにより、印刷装置の各種設定及び状態の確認ができる。ビデオ出力ＩＦ部１１９は、印刷部１２０に対して、コマンド／ステータスの通信制御や印刷データの転送を行う。印刷部１２０は、印刷部本体と給紙系及び排紙系から構成され、主にビデオ出力ＩＦ部１１９からのコマンド情報に従い、印刷データを紙に印刷する。メインバス１２１は、バスコントローラ含み、制御バス、データバス及び任意ブロック間のローカルバスを含む。例えば、メインバス１２１は、ＰＣＩｅ（ＰＣＩ Ｅｘｐｒｅｓｓ）やＡＳＩＣ（特定用途向け集積回路）の内部バス等を含む。
【００１５】
ＨＤＤ１１４又はＳＳＤ１１５には、圧縮処理部１０９により圧縮された圧縮データが書き込まれる。また、圧縮処理部１０９は、ＨＤＤ１１４又はＳＳＤ１１５に書き込まれた圧縮データを伸長する。印刷部１２０は、圧縮処理部１０９により伸長された画像データを印刷する。
【００１６】
図２は、ＳＡＴＡ制御部１１３の内部構成例を示す図である。ＳＡＴＡ制御部１１３は、第１のサブＣＰＵ２０１と、メモリ制御部２０２と、ＳＲＡＭ２０３と、第１のＳＡＴＡポート制御部２０４と、第２のＳＡＴＡポート制御部２０６と、ＤＭＡＣ２０８と、第１のサブバス２０９とを有する。第１のサブＣＰＵ２０１は、ＳＡＴＡコントローラであり、ＳＡＴＡコマンド発行処理、送受信データの転送処理、ＳＡＴＡステータス受信処理や各種計算処理等の全般的な制御を行う制御部である。メモリ制御部２０２は、ＲＯＭ１１６及びＳＲＡＭ（スタティックランダムアクセスメモリ）２０３の入出力制御や第１のサブＣＰＵ２０１への割り込み処理等を行う。ＳＲＡＭ２０３は、第１のサブＣＰＵ２０１の作業領域、各種制御テーブル、パラメータ格納領域及びデータバッファ等を有する。ここで、メモリ制御部２０２及びＳＲＡＭ２０３は、１ポートＲＡＭ、２ポートＲＡＭ、ＦＩＦＯメモリ等をそれぞれ独立に制御し、それらを複数個有していてもよい。
【００１７】
ＳＡＴＡポート制御部２０４及び２０５は、ＳＡＴＡのリンク層及び物理層から構成される。第１のサブＣＰＵ２０１は、ＳＡＴＡポート制御部２０４及び２０５の各種ＳＡＴＡレジスタの設定を行う。ＳＡＴＡポート制御部２０４及び２０５は、各種ＳＡＴＡレジスタの設定に応じて、ＳＡＴＡ−ＩＦ２０５及び２０７に接続されるＨＤＤ１１４及びＳＳＤ１１５に対して物理的な（電気信号としての）ＳＡＴＡ規格のコマンド発行やステータス受信を行う。第１のＳＡＴＡポート制御部２０４にはＨＤＤ１１４が接続され、第２のＳＡＴＡポート制御部２０５にはＳＳＤ１１５が接続される。ＤＭＡＣ（ダイレクトメモリアクセスコントローラ）２０８は、第１のサブＣＰＵ２０１より所定のレジスタに転送先の先頭アドレス及びサイズが設定され、起動が掛けられると所定のメモリ間でデータ転送を行う。第１のサブバス２０９は、バスコントローラを含み、制御バス、データバス及び任意ブロック間のローカルバスを含む。また、第１のサブバス２０９は、メインバス１２１に接続され、メインＣＰＵ１０１は、第１のサブバス２０９を介して、ＳＡＲＭ２０３の読み出し及び書き込みが可能である。ここで、ＤＭＡＣ２０８は、メインバス１２１及び第１のサブバス２０９を介して、ＳＲＡＭ２０３及びメインメモリであるＤＲＡＭ１０４間でのデータの読み出し及び書き込みの転送処理を行う。
【００１８】
図３は、圧縮処理部１０９の内部構成例を示す図である。圧縮処理部１０９は、ビデオ入力ＩＦ部３０１と、メモリ制御部３０２と、ＳＲＡＭ３０３と、圧縮伸長処理部３０４と、ＤＭＡＣ３０５と、第２のサブバス３０６とを有する。ビデオ入力ＩＦ部３０１は、外部画像処理装置１０８からの画像データの入力制御を行う。メモリ制御部３０２は、ＳＲＡＭ３０３の入出力制御や他の機能モジュールとの制御信号の入出力を行う。ＳＲＡＭ３０３は、画像データの一時的な格納領域として使用される。ここで、メモリ制御部３０２及びＳＲＡＭ３０３は、１ポートＲＡＭ、２ポートＲＡＭ、ＦＩＦＯメモリ等を独立に制御し、それらを複数個有していてもよい。圧縮伸長処理部３０４は、画像データの圧縮及び伸長処理を行う。前述したように、圧縮方式は、ロスレス圧縮やＪＰＥＧ圧縮等である。圧縮伸長処理部３０４は、外部画像処理装置１０８から入力された画像データを、圧縮伸長処理部３０４内のラインバッファに一時格納し、ラインバッファに格納した画像データを逐次圧縮して、メモリ制御部３０２を介してＳＲＡＭ３０３の所定の場所に格納する。伸長処理を行う場合には、圧縮伸長処理部３０４は、ＳＲＡＭ３０３内の所定の領域に格納された圧縮データをラインバッファに一時格納して伸長処理し、伸長処理した画像データを再びＳＲＡＭ３０３の所定の領域に格納する。
【００１９】
ＤＭＡＣ３０５は、メモリ間のＤＭＡ（ダイレクトメモリアクセス）制御を行う。ＤＭＡＣ３０５は、転送元アドレス、転送先アドレス及びサイズ情報を設定し、起動を掛けることで、所定メモリ間でのデータ転送を行う。第２のサブバス３０６は、バスコントローラを含み、制御バス、データバス及び任意ブロック間のローカルバスを含む。また、第２のサブバス３０６は、メインバス１２１に接続され、メインＣＰＵ１０１は、メインバス１２１を介して、圧縮処理部１０９へのアクセスが可能である。例えば、メインＣＰＵ１０１は、ＤＭＡＣ３０５や圧縮伸長処理部３０４へのレジスタ設定や読み出しが可能である。また、ＤＭＡＣ３０５は、メインバス１２１及び第２のサブバス３０６を介して、ＳＲＡＭ３０３及びメインメモリであるＤＲＡＭ１０４間でのデータの読み出し及び書き込みの転送処理を行う。
【００２０】
図４は、メインメモリであるＤＲＡＭ１０４に格納されるストレージ管理テーブル４１４を示す図である。ストレージ管理テーブル４１４は、ＨＤＤ１１４及びＳＳＤ１１５のストレージデバイスの各種情報及び判定情報を管理する。ストレージ管理テーブル４１４は、ＬＢＡ管理テーブル４１３と、ＰＭしきい値４０８と、寿命しきい値４０９と、現在の寿命値４１５とを有する。ＬＢＡ管理テーブル４１３は、各ストレージデバイスのシリアル番号を示すデバイス番号４０１、総セクタ数４０２、最大物理ＬＢＡ（最大物理アドレス）４０３、最小論理ＬＢＡ（最小論理アドレス）４０４、最大論理ＬＢＡ（最大論理アドレス）４０５を有する。デバイス番号４０１は、行４０６ではＨＤＤ１１４のシリアル番号を示し、行４０７ではＳＳＤ１１５のシリアル番号を示す。例えば、接続されているストレージデバイスの総セクタ数４０２は、ブロック数からセクタ数に換算した個数であり、ＨＤＤ１１４がＳＮＡ個であり、ＳＳＤ１１５がＳＮＢ個である。最大物理ＬＢＡ４０３は、ＨＤＤ１１４がＬＢＡｒ１であり、ＳＳＤ１１５がＬＢＡｒ２である。最小論理ＬＢＡ４０４は、ＨＤＤ１１４がＬＢＡｍ１（＝０ｈ）であり、ＳＳＤ１１５がＬＢＡｎ１である。最大論理ＬＢＡ４０５は、ＨＤＤ１１４がＬＢＡｍ２であり、ＳＳＤ１１５がＬＢＡｎ２である。したがって、論理ＬＢＡ（論理アドレス）の範囲は、ＨＤＤ１１４がＬＢＡｍ１（＝０ｈ）〜ＬＢＡｍ２であり、ＳＳＤ１１５がＬＢＡｎ１〜ＬＢＡｎ２であり、ＨＤＤ１１４及びＳＳＤ１１５を合わせた論理ＬＢＡは０ｈ〜ＬＢＡｎ２の通し番号となる。図４では、行４０６及び４０７においてＨＤＤ１１４及びＳＳＤ１１５の２個のストレージデバイスを管理しているケースを示しているが、２個に限定されず、３個以上のストレージデバイスが接続されていてもよい。
【００２１】
ストレージ管理テーブル４１４の残りの部分は、各種判定条件に用いられるパラメータを示す。ＰＭしきい値４０８は、所定の単位（例えば、ページ単位）でＨＤＤ１１４又はＳＳＤ１１５に書き込まれる圧縮データサイズによって、ＨＤＤ１１４又はＳＳＤ１１５を選定するための比較データサイズを示す。ここで、同一型番の複数個のＨＤＤ１１４を測定した書き込み速度の最大値の平均値をｘＭＢ／ｓとする。他方で、印刷装置の出力ＰＰＭ性能仕様から１ページ処理時間が決まり、１ページの各種処理時間（画像処理時間、メモリ間転送時間、メモリとＨＤＤ間転送時間等）のバジェットからＨＤＤ１１４に対する要求転送帯域を予め推定することができる。すなわち、１秒間当たりのデータ転送能力（転送量）を予め推定することができる。例えば、１２００ｄｐｉ、Ａ４サイズ、１／１２圧縮、１０３ｐｐｍの性能を満たすためには、１ページのデータサイズ５６ＭＢに対して１９２ＭＢ／ｓの書き込み速度がＨＤＤ１１４に要求される。その場合、ＨＤＤ１１４にｘ＝２００ＭＢ／ｓの書き込み速度があれば、要求値を満たすことになるが、ｘ＝１８０ＭＢ／ｓの書き込み速度しかなければ、要求値を満たせない。ここで、ＨＤＤ１１４がｘＭＢ／ｓの書き込み速度を満たせる１ページの最大データサイズＰをＰＭしきい値４０８として設定する。メインＣＰＵ１０１は、実際の１ページ当たりの転送データサイズ（書き込みデータサイズ）ＱとＰＭしきい値４０８との比較から、そのＨＤＤ１１４で要求値を満たせるかを判定することができる。ＨＤＤ１１４は、ＳＳＤ１１５より書き込み速度が遅い。実際の１ページ当たりの転送データサイズＱがＰＭしきい値４０８より小さい場合には、使用するストレージデバイスとしてＨＤＤ１１４を選定する。これに対し、実際のページ当たりの転送データサイズＱがＰＭしきい値４０８より大きい場合には、使用するストレージデバイスとしてＳＳＤ１１５を選定する。ＰＭしきい値４０８は、複数のストレージデバイス（ＨＤＤ１１４及びＳＳＤ１１５）の書き込み速度の境界を示す。具体的には、ＰＭしきい値４０８は、ＨＤＤ１１４の書き込み速度に対応する１ページ当たりの最大データサイズである。ＤＲＡＭ１０４は、ＰＭしきい値４０８を記憶するしきい値記憶部である。
【００２２】
寿命しきい値４０９は、ＳＳＤ１１５の許容される総書き込み量（例えばＴＢ：テラバイト単位で示される）を幾つかの区間に分けて寿命レベルの判定に用いる値である。本実施形態では、３区間に分けて寿命に余裕のある側から寿命レベル１（４１０）→寿命レベル２（４１１）の２段階の例を示している。例えば、寿命レベル１（４１０）は、第１の閾値であり、ＳＳＤ１１５の交換をユーザにお知らせする注意段階のイエローゾーンである。寿命レベル２（４１１）は、第２の閾値であり、ＳＳＤ１１５の運用から完全にＨＤＤ１１４の運用に移行する警告段階のレッドゾーンを示し、早急なＳＳＤ１１５の交換をユーザに促す。ＳＳＤ交換フラグ４１２は、寿命しきい値４０９が寿命レベル２（４１１）に達したことを示すフラグである。ＳＳＤ交換フラグ４１２の値は、０が交換不要を示し、１が交換必要を示す。印刷装置の起動時に寿命判定処理を実施する場合、ＳＳＤ交換フラグ４１２が１の場合には、寿命判定処理をスキップし、以後の起動時には、毎回ＳＳＤ交換の警告をパネル装置１１８のＵＩに表示する。
【００２３】
現在の寿命値４１５は、前回の電源オフまでのＳＳＤ１１５の累積書き込み量（総書き込み量）を示す。現在の寿命値４１５と寿命しきい値４０９とを比較することにより、寿命のレベルに応じた注意や警告をパネル装置１１８に表示する。例えば、ＳＳＤ１１５のＳＡＴＡ規格として定義されているスマート情報から現在の総書き込み量を得たり、書き込み処理毎に書き込んだサイズを加算して現在の総書き込み量を得ることができる。
【００２４】
図５は、メインメモリであるＤＲＡＭ１０４上に格納されるｍファイルの管理テーブル５１０を示す図である。ｍファイル管理テーブル５１０は、ファイル情報５０１を有する。ファイル情報５０１は、ファイルの属性情報５０２を示す。属性情報５０２は、ファイル番号、ファイル名称、タイムスタンプ、ファイルサイズ、用紙サイズ、ページ数等の基本情報を有する。また、ｍファイル管理テーブル５１０は、ページの番号を示すページ番号５０３、圧縮されたページのページ圧縮サイズ５０４、そのページが記録されているメモリ上の先頭アドレス５０５、先頭アドレス５０５から初めの記録領域のデータサイズ５０６を有する。対象ページがメモリ上の連続空間に記録されている場合、ページ圧縮サイズ５０４とページサイズ５０６は同値である。離散空間に記録されている場合、ページサイズ５０６は初回の連続空間のサイズを示し、以後は線形リスト構造で対象ページ全体にアクセスすることができる。１ページ目〜最後のｎページ目５０７〜５０９の各ページには、項目５０３〜５０６の項目内容が示されている。また、図５で示しているのは、ｍファイル管理テーブル５１０の１個のファイルに対するエントリ情報を示す図であって、必要なファイル個数分のエントリ内容が記録されている。
【００２５】
図６は、ストレージデバイス（ＨＤＤ１１４、ＳＳＤ１１５）上に格納されるｓファイル管理テーブル６１０を示す図である。ｓファイル管理テーブル６１０は、ファイル情報６０１を有する。ファイル情報６０１は、ファイルの属性情報６０２を示す。属性情報６０２の内容は、図５の属性情報５０２と基本的内容は同一である。また、ｓファイル管理テーブル６１０は、ページの番号を示すページ番号６０３、ページのサイズを示すページサイズ６０４、先頭アドレスを示す先頭論理ＬＢＡ（先頭論理アドレス）６０５、ページ単位でのデータサイズ６０６を有する。ここで、本実施形態では、ストレージデバイス上のページデータは連続領域に格納されているものとする。１ページ目〜最後のｎページ目６０７〜６０９の各ページには、項目６０３〜６０６の項目内容が示されている。また、図６で示しているのは、ｓファイル管理テーブル６１０の１個のファイルに対するエントリ情報を示す図であって、必要なファイル個数分のエントリ内容が記録されている。
【００２６】
図７は、ページ単位でＤＲＡＭ（メインメモリ）１０４上のデータをストレージデバイス（ＨＤＤ１１４、ＳＳＤ１１５）上に書き込むためのディスクリプタテーブル７１９の構成例を示す図である。ディスクリプタテーブル７１９は、コマンドテーブル７１７とデータテーブル７１８とを有する。
【００２７】
コマンドテーブル７１７は、コマンドの発行番号を示すコマンドエントリ番号７０１と、先頭アドレスを示す論理ＬＢＡ７０２と、セクタ数を示すセクタカウント７０３と、ＳＡＴＡコマンド番号７０４と、最終エントリの状態を示すＥＯＦフラグ７０５とを有する。ＳＡＴＡコマンド番号７０４は、ＳＡＴＡ規格でのコマンド番号（０x３５はＷｒｉｔｅ ＤＭＡ Ｅｘｔのコマンド番号）を示す。ここで、ＥＯＦフラグ７０５は、０が継続を示し、１が終了を示す。ＥＯＦフラグ７０５が１であることを検出した時点のコマンドを発行した後に、対象ページの転送処理を完了する。１ページの１番目のエントリ〜最終であるｎ番目のエントリ７０６〜７０８までのそれぞれにおいて、項目７０１〜７０５の項目内容が記録されている。
【００２８】
データテーブル７１８は、データの転送処理番号を示すデータエントリ番号７０９と、ソースアドレス７１０と、ディスティネーション７１１と、バイト単位での転送データ量を示すバイトカウント７１２と、最終エントリの状態を示すＥＯＦフラグ７１３を有する。ソースアドレス７１０は、ライト（Ｗｒｉｔｅ）コマンド時にＤＭＡＣ２０８に設定するＤＲＡＭ（メインメモリ）１０４上に格納されているデータの転送元の先頭アドレスを示す。ディスティネーション７１１は、ライト（Ｗｒｉｔｅ）コマンド時と同様にリード（Ｒｅａｄ）コマンド時に受信したデータをＤＲＡＭ（メインメモリ）１０４上に格納するための転送先の先頭アドレスを示す。ＥＯＦフラグ７１３の説明は、ＥＯＦフラグ７０５と同様である。なお、本実施形態では、１つのコマンドに対するメモリからの転送データは連続領域にあることを前提としているため、ＥＯＦフラグ７０５とＥＯＦフラグ７１３が共に最終を示すエントリ番号は同一である。
【００２９】
図８は、ＤＲＡＭ（メインメモリ）１０４のメモリマップを部分的に示す図である。ＤＲＡＭ１０４上には、作業領域８０１、ページデータを格納するページデータ領域８０２、ｍファイル管理テーブル領域８０３、ストレージ管理テーブル領域８０４、及びｓファイル管理テーブル領域８０５が、印刷可能な通常モード時に作成されている。ｍファイル管理テーブル領域８０３は、ｍファイル管理テーブル５１０を格納する。ストレージ管理テーブル領域８０４は、ストレージ管理テーブル４１４を格納する。ｓファイル管理テーブル領域８０５は、ｓファイル管理テーブル６１０を格納する。印刷情報格納領域８０６は、上記で説明したようにメインＣＰＵ１０１がＬＡＮ−ＩＦ部１０５を介して外部画像処理装置１０８との通信において取得した印刷情報（ページサイズ、ページ数、色情報等印刷に必要な属性情報）を格納する領域である。
【００３０】
図９は、ＳＡＴＡ制御部１１３に含まれるＳＲＡＭ２０３のメモリマップを部分的に示す図である。ＳＲＡＭ２０３上には、作業領域９０１、ＳＡＴＡ規格の各種コマンドを設定するコマンド領域９０２、ディスクリプタテーブル領域９０３、及びＬＢＡ管理テーブル領域９０４が、印刷可能な通常モード時に作成されている。ディスクリプタテーブル領域９０３は、ディスクリプタテーブル７１９を格納する。ＬＢＡ管理テーブル領域９０４は、ストレージ管理テーブル４１４の一部であるＬＢＡ管理テーブル４１３を格納する。ここで、コマンド領域９０２は、ディスクリプタテーブル７１９を用いた連続的なコマンド転送ではなく、ＳＡＴＡ規格で定義されたＤＭＡ転送モード以外のＰＩＯ転送モード又はＮｏｎ−Ｄａｔａ転送モードのコマンド系をこの領域に設定する。これにより、単発的なコマンド転送を行うために用いられる。
【００３１】
ここで、図８で説明したテーブル領域８０３〜８０５は、即座に印刷可能な状態である通常モードから省電力モードや電源オフ状態に移行する場合にはＤＲＡＭ（メインメモリ）１０４からフラッシュメモリ１０３へ退避される。そして、通常モードに復帰した際に、再びＤＲＡＭ（メインメモリ）１０４の所定のテーブル領域８０３〜８０５に書き戻される。同様に、図９で説明したテーブル領域９０３及び９０４も、省電力モードや電源オフにはＳＲＡＭ２０３からフラッシュメモリ１０３へ退避され、通常モードに復帰した際に再びＳＲＡＭ２０３の所定の領域に書き戻される。
【００３２】
図１０は、ＬＢＡ管理テーブル４１３の生成フローを示す図である。ステップＳ１００１では、メインＣＰＵ１０１は、ＳＡＴＡ制御部１１３内の第１のサブＣＰＵ２０１に対してＬＢＡ管理テーブル４１３の作成要求を指示する。具体的には、メインＣＰＵ１０１は、所定の制御レジスタを設定し、ＬＢＡ管理テーブル作成要求割り込みを発行する。次に、ステップＳ１００２では、メインＣＰＵ１０１は、ＬＢＡ管理テーブル４１３の完了を待つ。メインＣＰＵ１０１は、未完了の場合（ＮＯ）には、ステップＳ１００２に留まり、作成完了通知を受信した場合（ＹＥＳ）には、ステップＳ１００３に処理を進める。ここで、第１のサブＣＰＵ２０１は、接続されるＨＤＤ１１４及びＳＳＤ１１５に対してＳＡＴＡ規格で定義されているデバイス情報取得コマンドをそれぞれに発行する。そして、第１のサブＣＰＵ２０１は、デバイス型番、セクタ数等を取得してＬＢＡ管理テーブル４１３をＳＲＡＭ２０３上のテーブル領域９０４に作成する。ステップＳ１００３では、メインＣＰＵ１０１は、ＳＲＡＭ２０３上のテーブル領域９０４からＬＢＡ管理テーブル４１３を取得し、図８で説明したメインメモリＤＲＡＭ１０４上のテーブル領域８０４内の所定に位置に登録する。
【００３３】
図１１は、画像データの圧縮処理とｍファイル管理テーブル５１０の作成フローを示す図である。Ｓ１１０１では、メインＣＰＵ１０１は、外部画像処理装置１０８との通信によって印刷情報を取得し、図８で説明した印刷情報格納領域８０６に保存する。また、メインＣＰＵ１０１は、印刷準備のための初期化処理（ページ数のカウント値ｎ＝０等）を行う。次に、ステップＳ１１０２では、メインＣＰＵ１０１は、第ｎページ目のページデータを外部画像処理装置１０８から取得し、圧縮処理したものを図８で説明したページデータ領域８０２に格納する。具体的には、メインＣＰＵ１０１は、圧縮伸長処理部３０４、ビデオ入力ＩＦ部３０１及びＤＭＡＣ３０５に各種設定を行う。これによって、圧縮伸長処理部３０４はビデオ入力ＩＦ部３０１から受信した画像データを圧縮し、圧縮したページデータをＳＲＡＭ３０３に格納する。また、圧縮伸長処理部３０４は、転送元アドレス及び圧縮サイズをＤＭＡＣ３０５に設定及び起動を掛けることで、圧縮データをＤＲＡＭ（メインメモリ）１０４の所定の位置に転送する。転送先アドレス及びサイズは、メインＣＰＵ１０１によって設定されている。前述の処理を逐次繰り返すことで、１ページ分の圧縮されたページデータがページデータ領域８０２の所定の位置に格納される。１ページ分の圧縮処理が完了すると、圧縮処理部１０９からメインＣＰＵ１０１へ通知を行う。
【００３４】
次に、ステップＳ１１０３では、メインＣＰＵ１０１は、１ページ分の圧縮処理及び転送処理が未完了（ＮＯ）である場合には、ステップＳ１１０３に留まり、転送完了通知を圧縮処理部１０９から受信（ＹＥＳ）すると、ステップＳ１１０４に処理を進める。ステップＳ１１０４では、メインＣＰＵ１０１は、圧縮伸長処理部３０４から第ｎページの圧縮データサイズを取得する。次に、ステップＳ１１０５では、メインＣＰＵ１０１は、図５で説明した第ｎページ目のページ番号５０３、ページ圧縮サイズ５０４、ページデータ領域の指定の位置に格納した先頭アドレス５０５及びデータサイズ５０６を登録する。次に、ステップＳ１１０６では、メインＣＰＵ１０１は、全ページ分の圧縮処理及びｍファイル管理テーブル５１０の登録が完了したかを判定する。メインＣＰＵ１０１は、ステップＳ１１０６での判定結果がＮＯである場合にはステップＳ１１０７に処理を進め、ステップＳ１１０７では現在のページ数ｎにプラス１（ｎ＝ｎ＋１）して再びステップＳ１１０２へ処理を戻す。メインＣＰＵ１０１は、ステップＳ１１０３での判定結果がＹＥＳである場合には、処理を終了する。
【００３５】
図１２は、メインＣＰＵ１０１によって処理されるｓファイル管理テーブル６１０とディスクリプタテーブル７１９の作成及びストレージデバイスへの書き込みフローを示す図であり、印刷装置の制御方法を示す。ステップＳ１２０１では、メインＣＰＵ１０１は、ページデータの書き込み処理のための初期化処理（ページ数のカウント値ｎ＝０等）を行う。次に、ステップＳ１２０２では、メインＣＰＵ１０１は、ｍファイル管理テーブル５１０から第ｎページ目の情報を取得する。次に、ステップＳ１２０３では、メインＣＰＵ１０１は、取得した第ｎページ目の圧縮データサイズ（書き込みデータサイズ）とＰＭしきい値４０８（比較データサイズ）とを比較する。そして、メインＣＰＵ１０１は、複数のストレージデバイス（ＨＤＤ１１４、ＳＳＤ１１５）のうちのいずれか１個の使用するストレージデバイスとして、ＨＤＤ１１４又はＳＳＤ１１５を選択する。具体的には、メインＣＰＵ１０１は、第ｎページ目の圧縮データサイズがＰＭしきい値４０８より小さい場合には、使用するストレージデバイスとして、ＨＤＤ１１４を選定する。これに対し、メインＣＰＵ１０１は、第ｎページ目の圧縮データサイズがＰＭしきい値４０８より大きい場合には、使用するストレージデバイスとして、ＳＳＤ１１５を選定する。次に、ステップＳ１２０４では、メインＣＰＵ１０１は、選定処理の結果、ＳＳＤ１１５を使用すると決定した場合（ＹＥＳ）には、ステップＳ１２０５に処理を進め、ＨＤＤ１１４を使用すると決定した場合（ＮＯ）には、ステップＳ１２０６に処理を進める。ステップＳ１２０５では、メインＣＰＵ１０１は、ＳＳＤ用ディスクリプタテーブル７１９を作成し、ステップＳ１２０７に処理を進める。ステップＳ１２０６では、メインＣＰＵ１０１は、ＨＤＤ用ディスクリプタテーブル７１９を作成し、ステップＳ１２０７に処理を進める。
【００３６】
ステップＳ１２０７では、メインＣＰＵ１０１は、ｓファイル管理テーブル６１０に第ｎページの管理情報６０３〜６０６（図６）の登録を行う。次に、ステップＳ１２０８では、メインＣＰＵ１０１は、ステップＳ１２０５又はＳ１２０６で作成したディスクリプタテーブル７１９をＳＡＴＡ制御部１１３のＳＲＡＭ２０３の所定の場所に設定する。具体的には、図９で説明したＳＲＡＭ２０３のディスクリプタテーブル領域９０３に設定する。次に、ステップＳ１２０９では、メインＣＰＵ１０１は、ＳＡＴＡ制御部１１３に対して、ストレージデバイスへの転送要求を発行する。例えば、メインＣＰＵ１０１は、ＳＡＴＡ制御部１１３への転送割り込み信号をイネーブルにすることにより転送開始の指示を行う。ＳＡＴＡ制御部１１３はステップＳ１２０３で選択されたＨＤＤ１１４又はＳＳＤ１１５に圧縮データ（書き込みデータ）を転送し、その選択されたＨＤＤ１１４又はＳＳＤ１１５には圧縮データが書き込まれる。次に、ステップＳ１２１０では、メインＣＰＵ１０１は、第ｎページ目の転送が完了したか否かの判定を行い、完了していない場合（ＮＯ）には、ステップＳ１２１０で待ち続け、完了している場合（ＹＥＳ）には、ステップＳ１２１１に処理を進める。ステップＳ１２１１では、メインＣＰＵ１０１は、全ページ分の転送処理及びｓファイル管理テーブル６１０の登録が完了したか否かを判定し、完了していない場合（ＮＯ）には、ステップＳ１２１２に処理を進め、完了している場合（ＹＥＳ）には処理を終了する。ステップＳ１２１２では、メインＣＰＵ１０１は、現在のページ数ｎにプラス１（ｎ＝ｎ＋１）して再びステップＳ１２０２に処理を戻す。以上のように、メインＣＰＵ１０１は、各ページの圧縮データのサイズとＰＭしきい値４０８とを比較し、ステップＳ１２０３の選択を行う。なお、本実施形態では、圧縮データサイズに基づいてストレージデバイスを選択する例を説明したが、これに限定されるものではなく、例えば生データサイズに基づいてストレージを選択する場合にも適用することができる。
【００３７】
図１３は、メインＣＰＵ１０１からＳＡＴＡ１１３への転送要求に対して第１のサブＣＰＵ２０１がディスクリプタテーブル７１９を用いてストレージデバイスにデータ転送を行うフローを示す図である。ステップＳ１３０１では、第１のサブＣＰＵ２０１は、起動時の初期化処理を完了し、メインＣＰＵ１０１からの転送要求待ちを行う。次に、ステップＳ１３０２では、第１のサブＣＰＵ２０１は、転送要求の有無を判定し、無の場合（ＮＯ）には、ステップＳ１３０２に留まり、有の場合（ＹＥＳ）には、ステップＳ１３０３に処理を進める。ステップＳ１３０３では、第１のサブＣＰＵ２０１は、ディスクリプタテーブル７１９内部のコマンドテーブル７１７から第ｎ番目のコマンド情報の読み出しを行う。次に、ステップＳ１３０４では、第１のサブＣＰＵ２０１は、第ｎ番目の論理ＬＢＡ（論理アドレス）を物理ＬＢＡ（物理アドレス）に変換する。ステップＳ１３０４では、図９で説明したテーブル領域９０４に格納されているＬＢＡ管理テーブル４１３を用いて、論理ＬＢＡを物理ＬＢＡに変換し、論理ＬＢＡがＨＤＤ１１４及びＳＳＤ１１５のどちらのデバイスを指しているのかを特定することができる。
【００３８】
次に、ステップＳ１３０５では、第１のサブＣＰＵ２０１は、論理ＬＢＡがＨＤＤ１１４及びＳＳＤ１１５のどちらのストレージデバイスを指しているのかを判定を行う。そして、第１のサブＣＰＵ２０１は、ＳＳＤ１１５を使用する場合にはステップＳ１３０６に処理を進め、ＨＤＤ１１４を使用する場合にはステップＳ１３０７に処理を進める。すなわち、第１のサブＣＰＵ２０１は、論理ＬＢＡを基に、複数のストレージデバイス（ＨＤＤ１１４及びＳＳＤ１１５）のうちのいずれか１個を特定する。ステップＳ１３０６では、第１のサブＣＰＵ２０１は、ＳＳＤ１１５側のＳＡＴＡポート制御部２０６のＳＡＴＡレジスタの設定を行い、ステップＳ１３０８に処理を進める。ステップＳ１３０７では、第１のサブＣＰＵ２０１は、ＨＤＤ１１４側のＳＡＴＡポート制御部２０４のＳＡＴＡレジスタの設定を行い、ステップＳ１３０８に処理を進める。
【００３９】
ステップＳ１３０８では、第１のサブＣＰＵ２０１は、ディスクリプタテーブル７１９内部のデータテーブル７１８から第ｎ番目のデータ情報の読み出しを行う。次に、ステップＳ１３０９では、第１のサブＣＰＵ２０１は、第ｎ番目のデータ情報からＤＭＡＣ２０８にソースアドレス７１０とサイズであるバイトカウント７１２を設定する。次に、ステップＳ１３１０では、第１のサブＣＰＵ２０１は、ステップＳ１３０５で判定したストレージデバイス側にコマンド発行の指示を与える。それと同時に、第１のサブＣＰＵ２０１は、ステップＳ１３０９にて設定したＤＭＡＣ２０８に対して起動の指示を与えて第ｎ番目のコマンド転送を開始する。ＤＭＡＣ２０８は、ＤＲＡＭ（メインメモリ）１０４上のソースアドレス７１０から、ステップＳ１３０５で判定されたＨＤＤ１１４又はＳＳＤ１１５の物理ＬＢＡに書き込みデータを転送する。次に、ステップＳ１３１１では、第１のサブＣＰＵ２０１は、選択したストレージデバイスに発行したステータスを待ち、ステータス未受信の場合（ＮＯ）にはステップＳ１３１１に留まり、ステータス受信の場合（ＹＥＳ）にはステップＳ１３１２に処理を進める。ステップＳ１３１２では、第１のサブＣＰＵ２０１は、第ｎ番目が最終コマンドか否かを示すＥＯＦフラグ７０５及び７１３の判定を行う。第１のサブＣＰＵ２０１は、ＥＯＦフラグ７０５及び７１３が０である場合（ＮＯ）には、再びステップＳ１３０３に処理を戻し、次のコマンド情報を読み出して、ステップＳ１３０３〜Ｓ１３１１の処理を繰り返す。また、第１のサブＣＰＵ２０１は、ＥＯＦフラグ７０５及び７１３が１である場合（ＹＥＳ）には、ステップＳ１３１３に処理を進める。ステップＳ１３１３では、第１のサブＣＰＵ２０１は、対象ファイルの全ページのストレージデバイスへの転送処理（ここでは、書き込み処理）が完了したことをメインＣＰＵ１０１に通知し、処理を終了する。
【００４０】
なお、読み出し処理（Ｒｅａｄ ＤＭＡ Ｅｘｔコマンドの発行）も、ｓファイル管理テーブル６１０から読み出し用ディスクリプタテーブルを作成し、図１３のフローと基本的に同じ方法でストレージデバイス内に格納されたデータを読み出すことができる。
【００４１】
図１４は、ＳＳＤ１１５の寿命判定フローを示す図である。ステップＳ１４０１では、印刷装置は、電源オンにより起動する。次に、ステップＳ１４０２では、メインＣＰＵ１０１は、前回の寿命しきい値４０９をストレージ管理テーブル４１４から読み出す。次に、ステップＳ１４０３では、メインＣＰＵ１０１は、寿命しきい値４０９に登録されているＳＳＤ交換フラグ４１２から交換の必要性についての判定を行う。そして、メインＣＰＵ１０１は、交換が必要である場合（ＹＥＳ）には、ステップＳ１４０７に処理を進め、交換が不要である場合（ＮＯ）には、ステップＳ１４０４に処理を進める。ステップＳ１４０７では、メインＣＰＵ１０１は、パネル装置１１８のＵＩへ警告表示を表示するように指示を出して寿命判定処理を終了する。例えば、パネル装置１１８は、ＵＩ上のステータス表示領域にＳＳＤ交換を促す警告文を表示する。ステップＳ１４０４では、メインＣＰＵ１０１は、寿命比較処理を実行する。寿命比較処理とは、図４で説明したように現在の寿命値４１５と寿命レベル１及び２（４１０、４１１）との比較処理を意味する。次に、ステップＳ１４０５では、メインＣＰＵ１０１は、現在の寿命値４１５が寿命レベル２（４１１）より多いか否かを判定する。そして、メインＣＰＵ１０１は、現在の寿命値４１５が寿命レベル２（４１１）より多い場合（ＹＥＳ）には、ステップＳ１４０６に処理を進め、現在の寿命値４１５が寿命レベル２（４１１）より少ない場合（ＮＯ）には、ステップＳ１４０８に処理を進める。
【００４２】
ステップＳ１４０６では、メインＣＰＵ１０１は、ＳＳＤ１１５を用いた書き込み処理を停止し、書き込み処理に対する以後の運用は全てＨＤＤ１１４を使用するように動作モードを切り替える。すなわち、メインＣＰＵ１０１は、ＳＳＤ１１５の代わりに他のストレージデバイス（ＨＤＤ１１４）を割り当てる。次に、ステップＳ１４０７では、メインＣＰＵ１０１は、パネル装置１１８のＵＩへＳＳＤ交換の警告表示を表示するようにパネル装置１１８に第２の通知を出して寿命判定処理を終了する。ステップＳ１４０８では、メインＣＰＵ１０１は、現在の寿命値４１５が寿命レベル１（４１０）より多いか否かを判定する。メインＣＰＵ１０１は、現在の寿命値４１５が寿命レベル１（４１０）より多い場合（ＹＥＳ）には、ステップＳ１４０９に処理を進め、現在の寿命値４１５が寿命レベル１（４１０）より少ない場合（ＮＯ）には、寿命判定処理を終了し、通常運用を開始する。ステップＳ１４０９では、メインＣＰＵ１０１は、パネル装置１１８のＵＩへＳＳＤ交換の注意表示を表示するようにパネル装置１１８に第１の通知を出して寿命判定処理を終了する。
【００４３】
以上のように、メインＣＰＵ１０１は、印刷データの処理過程でのページ単位書き込みに必要なデータサイズがＰＭしきい値４０８より小さい場合にはＨＤＤ１１４にデータを転送し、ＰＭしきい値４０８より大きい場合にはＳＳＤ１１５にデータを転送する。すなわち、中速なＨＤＤ１１４の処理スピードで賄える書き込みは、ＳＳＤ１１５の使用を避け、ＨＤＤ１１５を使用し、高速な処理スピードが要求される書き込みのみにＳＳＤ１１５を利用する。これにより、ＳＳＤ１１５の欠点である書き換え可能回数制限に対する寿命を相対的に延命させることができる。
【００４４】
（第２の実施形態）
図１５は、ＳＡＴＡ制御部１１３に暗号化装置１５０１が接続されたＳＡＴＡ−ＳＡＴＡブリッジ構成例を示す図である。暗号化装置１５０１のＳＡＴＡ−Ｄｅｖｉｃｅ側にＳＡＴＡ制御部１１３が接続され、ＳＡＴＡ−Ｈｏｓｔ側にＨＤＤ１１４及びＳＳＤ１１５が接続される。なお、暗号化装置１５０１は、ＳＡＴＡケーブルで接続される外部装置でもよいし、メインコントローラ１２２上にオンチップとして搭載されてもよい。ＲＯＭ１１６は、ＳＡＴＡ制御部１１３に接続される。
【００４５】
図１６は、暗号化装置１５０１の内部構成例を示す図である。第２のサブＣＰＵ１６０１は、ＳＡＴＡコマンド発行処理、送受信データの暗号・復号化処理及びデータ転送処理、ＳＡＴＡステータス受信処理や各種計算処理等のＳＡＴＡコントローラとしての全般的な制御を行う制御部である。メモリ制御部１６０２は、フラッシュメモリ１６０３やＳＲＡＭ１６０４の入出力制御や第２のサブＣＰＵ１６０１への割り込み処理等の制御を行う。フラッシュメモリ１６０３は、ＳＡＴＡ制御プログラム、暗号化プログラム等の各種プログラムや制御パラメータ、暗号鍵情報等を格納する。第２のサブＣＰＵ１６０１は、起動時にフラッシュメモリ１６０３のプログラムからブートを行う。ＳＲＡＭ１６０４は、第２のサブＣＰＵ１６０１の作業領域、各種制御テーブルやパラメータ格納領域及びデータバッファ等に使用される。ここで、メモリ制御部１６０２及びＳＲＡＭ１６０４は、１ポートＲＡＭ、２ポートＲＡＭ、ＦＩＦＯメモリ等をそれぞれ独立に制御し、それらが複数個存在してもよい。ＳＡＴＡデバイス制御部１６０５は、ＳＡＴＡ−ＩＦ２０５でＳＡＴＡ制御部１１３に接続され、ＳＡＴＡ規格のコマンド受信やステータス送信の通信制御を行う。第１のＳＡＴＡポート制御部１６０６及び第２のＳＡＴＡポート制御部１６０８は、ＳＡＴＡのリンク層及び物理層から構成され、第２のサブＣＰＵ１６０１による各種ＳＡＴＡレジスタの設定に応じて、ＨＤＤ１１４及びＳＳＤ１１５を制御する。第１のＳＡＴＡポート制御部１６０６及び第２のＳＡＴＡポート制御部１６０８は、ＳＡＴＡ−ＩＦ１６０７及び１６０９に接続されるＨＤＤ１１４及びＳＳＤ１１５に対して物理的な（電気信号としての）ＳＡＴＡ規格のコマンド発行やステータス受信を行う。第１のＳＡＴＡポート制御部１６０６にはＨＤＤ１１４が接続され、第２のＳＡＴＡポート制御部１６０８にはＳＳＤ１１５が接続されている。暗号／復号化部１６１０は、受信データに対して暗号化又は復号化を行うモジュールである。第３のサブバス１６１１は、バスコントローラを含み、制御バス、データバス及び任意ブロック間のローカルバスを含む。ＨＤＤ１１４は、メインＣＰＵ１０１に対して、複数段のＳＡＴＡポート制御部２０４及びＳＡＴＡポート制御部１６０６を介して接続される。ＳＳＤ１１５は、メインＣＰＵ１０１に対して、複数段のＳＡＴＡポート制御部２０４及びＳＡＴＡポート制御部１６０８を介して接続される。
【００４６】
ここで、第２のサブＣＰＵ１６０１は、ＳＡＴＡ制御部１１３から受信したコマンドの解釈を行い、暗号／復号化部１６１０を制御することにより、必要なコマンドのデータペイロードに対して暗号化又は復号化を実施する。第２のサブＣＰＵ１６０１は、ＳＡＴＡ制御部１１３から、ＳＡＴＡ規格コマンド以外にユーザ独自に定義された拡張コマンドの受信も行う。後述するが、拡張コマンドは、ストレージデバイス（ＨＤＤ１１４及びＳＳＤ１１５）には発行されず、暗号化装置１５０１へのメインコントローラ１２２からの制御やステータス取得のために用いられる。
【００４７】
図１７は、拡張コマンドの例を示す図である。図１７を用いて、ＳＡＴＡ−ＳＡＴＡブリッジ構成時のＬＢＡ管理テーブル４１３の作成方法について説明する。メインＣＰＵ１０１は、拡張コマンドであるＬＢＡ管理テーブル作成コマンド１７０２を暗号化装置１５０１に発行する。ＬＢＡ管理テーブル作成コマンド１７０２を受信した第２のサブＣＰＵ１６０１は、ＬＢＡ管理テーブル４１３を作成する。その作成方法は、既に図１０で説明した第１のサブＣＰＵ２０１が作成する手順と同様である。ＬＢＡ管理テーブル４１３の作成を完了した第２のサブＣＰＵ１６０１は、予め定義されたステータスレジスタ内に配置された完了フラグビットを有効にする。メインＣＰＵ１０１は、定期的に拡張コマンドのステータスコマンド１７０１を暗号化装置１５０１に発行し、ステータスレジスタ情報を取得する。メインＣＰＵ１０１は、取得したステータスレジスタ情報の完了フラグが有効である場合には、さらに拡張コマンドのＬＢＡ管理テーブル取得コマンド１７０３を発行する。ＬＢＡ管理テーブル取得コマンド１７０３を受信した第２のサブＣＰＵ１６０１は、作成したテーブル情報をＳＡＴＡ規格で定義されたデータＦＩＳ（Ｆｒａｍｅ Ｉｎｓｔｒｕｃｔｉｏｎ Ｓｔｒｕｃｕｔｒｅ）に載せてＳＡＴＡ制御部１１３に送信する。受信したＬＢＡ管理テーブル情報は、拡張コマンド発行時に予め設定されたＤＲＡＭ（メインメモリ）１０４上の所定の位置に格納される。具体的には、既に説明した図８のストレージ管理テール領域８０４内のＬＢＡ管理テーブル格納位置に登録される。これによって、暗号化装置１５０１の第２のサブＣＰＵ１６０１とメインＣＰＵ１０１間でＬＢＡ管理テーブル４１３が共有されたことになる。
【００４８】
ここで、メインコントローラ１２２が受信したファイル（Ｎページ分）をストレージデバイス（ＨＤＤ１１４及びＳＳＤ１１５）に書き込むためのフローは、既に第１の実施形態の図１１〜図１３で説明した内容と基本的に同様である。但し、図１３で説明した第１のサブＣＰＵ２０１がディスクリプタテーブル７１９を用いてコマンドを発行する際のステップＳ１３０４での論理ＬＢＡから物理ＬＢＡへの変換は行わない。すなわち、ＳＡＴＡ制御部１１３から暗号化装置１５０１へ発行されるコマンドのアドレスは、論理ＬＢＡのままである。ＳＡＴＡ−ＳＡＴＡブリッジ構成において、実際のストレージデバイス（ＨＤＤ１１４及びＳＳＤ１１５）を管理しているのは暗号化装置１５０１であるので、論理ＬＢＡから物理ＬＢＡに変換する処理は、第２のサブＣＰＵ１６０１が実施する。従って、第２の実施形態では、ＳＡＴＡ制御部１１３がディスクリプタテーブル７１９に従って発行したコマンドを暗号化装置１５０１が受信した後の処理について説明を行う。
【００４９】
図１８は、暗号化装置１５０１がディスクリプタテーブル７１９に従ってＳＡＴＡ制御部１１３から発行された受信コマンドの処理フローを示す図である。ステップＳ１８０１では、第２のサブＣＰＵ１６０１は、ブート処理後、上位ホスト（ＳＡＴＡ制御部１１３）からの処理要求待ち準備を行う。具体的には、第２のサブＣＰＵ１６０１は、ＳＡＴＡ規格で定義されたコマンド受付可能状態を示すステータスを上位ホスト（ＳＡＴＡ制御部１１３）へ通知する。次に、ステップＳ１８０２では、第２のサブＣＰＵ１６０１は、上位ホスト（ＳＡＴＡ制御部１１３）からのコマンド受信を監視し、コマンド未受信の場合（ＮＯ）にはステップＳ１８０２に留まる。第２のサブＣＰＵ１６０１は、コマンドの受信を検知（ＹＥＳ）するとステップＳ１８０３に処理を進める。ステップＳ１８０３では、第２のサブＣＰＵ１６０１は、受信したコマンドの解釈処理を実行する。次に、ステップＳ１８０４では、第２のサブＣＰＵ１６０１は、ＬＢＡ管理テーブル４１３によって、受信した論理ＬＢＡから物理ＬＢＡに変換する。
【００５０】
次に、ステップＳ１８０５では、第２のサブＣＰＵ２０１は、論理ＬＢＡがＨＤＤ１１４及びＳＳＤ１１５のどちらのストレージデバイスを指しているのかを判定を行う。第２のサブＣＰＵ２０１は、ＨＤＤ１１４を指している場合（ＮＯ）にはステップＳ１８０６に処理を進め、ＳＳＤ１１５を指している場合（ＹＥＳ）にはステップＳ１８０７に処理を進める。ステップＳ１８０６では、第２のサブＣＰＵ１６０１は、ＨＤＤ１１４側のＳＡＴＡポート制御部１６０６のＳＡＴＡレジスタの設定を行い、ステップＳ１８０８に処理を進める。ステップＳ１８０７では、第２のサブＣＰＵ１６０１は、ＳＳＤ１１５側のＳＡＴＡポート制御部１６０８のＳＡＴＡレジスタの設定を行い、ステップＳ１８０８に処理を進める。
【００５１】
ステップＳ１８０８では、第２のサブＣＰＵ１６０１は、ステップＳ１８０５で判定したストレージデバイスに対してコマンド発行の設定を行う。次に、ステップＳ１８０９では、第２のサブＣＰＵ１６０１は、上位ホスト（ＳＡＴＡ制御部１１３）からの受信データに対して暗号化処理（ここでは書き込みを前提としているので暗号化。読み出しの場合には復号化である）を開始し、下位のストレージデバイスに対してデータＦＩＳに載せて送信する。全てのデータ送信が完了すると、ステップＳ１８１０では、第２のサブＣＰＵ１６０１は、ステップＳ１８０５で判定したストレージデバイスからのステータス受信を待ち、ステータス未受信の場合（ＮＯ）にはステップＳ１８１０に留まる。第２のサブＣＰＵ１６０１は、ステータスを受信（ＹＥＳ）するとステップＳ１８１１に処理を進める。ステップＳ１８１１では、第２のサブＣＰＵ１６０１は、上位ホスト、すなわちＳＡＴＡ制御部１１３に対してステータス通知を行い、ひとつのコマンド処理を終了する。
【００５２】
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【００５３】
１０１  メインＣＰＵ、１０４  ＤＲＡＭ、１１４  ＨＤＤ、１１５  ＳＳＤ
【図１】
0006672020.tif 000002
【図２】
0006672020.tif 000003
【図３】
0006672020.tif 000004
【図４】
0006672020.tif 000005
【図５】
0006672020.tif 000006
【図６】
0006672020.tif 000007
【図７】
0006672020.tif 000008
【図８】
0006672020.tif 000009
【図９】
0006672020.tif 000010
【図１０】
0006672020.tif 000011
【図１１】
0006672020.tif 000012
【図１２】
0006672020.tif 000013
【図１３】
0006672020.tif 000014
【図１４】
0006672020.tif 000015
【図１５】
0006672020.tif 000016
【図１６】
0006672020.tif 000017
【図１７】
0006672020.tif 000018
【図１８】
0006672020.tif 000019