(57)【要約】      （修正有）【課題】情報処理装置において、データが書込まれた記録領域に対して新たなデータを上書きできないデータ用メモリを利用する場合での性能や利便性の低下を抑制する。【解決手段】情報処理装置（画像形成装置１０１）は、データが書込まれている記録領域に対して新たなデータを上書きできないデータ用メモリ１１３と、データ用メモリ１１３を管理して、データが書込まれている記録領域に対して新たなデータの書込みを可能にするための領域解放処理を実行する下位コントローラ１１２と、データ用メモリ１１３の記録領域を含む記録空間および記録空間に記録されているデータを管理する上位コントローラ１０２と、を有する。上位コントローラ１０２は、記録空間で記録されているデータを記録空間の管理から削除する際に、データ用メモリ１１３に記録していたデータの属性に応じて、記録領域を指定した領域解放処理を、下位コントローラ１１２へ指示する。【選択図】図１
2020109591.tif 000002
【特許請求の範囲】
【請求項１】
データが書込まれている記録領域に対して新たなデータを上書きできないデータ用メモリと、
前記データ用メモリを管理して、データが書込まれている記録領域に対して新たなデータの書込みを可能にするための領域解放処理を実行する下位コントローラと、
前記データ用メモリの記録領域を含む記録空間および前記記録空間に記録されているデータを管理する上位コントローラと、
を有し、
前記上位コントローラは、
前記記録空間で記録されているデータを前記記録空間の管理から削除する際に、前記データ用メモリに記録していたデータの属性に応じて、前記記録領域を指定した前記領域解放処理を、前記下位コントローラへ指示する、
ことを特徴とする情報処理装置。
【請求項２】
前記データ用メモリの記録領域に記録されているデータについての属性情報として、前記情報処理装置の処理における中間データと最終データとを区別することができる情報を保持するシステムメモリ、を有し、
前記上位コントローラは、
前記中間データについては、前記記録空間で記録されているデータを前記記録空間の管理から削除する際に、前記中間データの記録領域を指定した前記領域解放処理を、前記下位コントローラへ指示する、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記上位コントローラは、
前記最終データについては、前記記録空間で記録されているデータを前記記録空間の管理から削除する際に前記最終データの記録領域が不足する場合において、前記最終データの記録領域を指定した前記領域解放処理を、前記下位コントローラへ指示する、
ことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記上位コントローラは、
前記記録空間で記録されているデータを前記記録空間の管理から削除する際に前記最終データの記録領域が不足しない場合には、前記最終データの記録領域を指定した前記領域解放処理を、前記下位コントローラへ指示しない、
ことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記記録空間についての論理アドレスと前記データ用メモリについての物理アドレスとを対応付けて記憶する管理メモリ、を有し、
前記下位コントローラは、
前記論理アドレスにより記録領域を指定した前記領域解放処理を取得した場合、前記管理メモリにおいて前記論理アドレスに対応する物理アドレスの記録領域に対して領域解放処理を実行する、
ことを特徴とする請求項１から４のいずれか一項に記載の情報処理装置。
【請求項６】
前記下位コントローラは、前記データ用メモリとともに半導体メモリデバイスとして設けられる、
ことを特徴とする請求項１から５のいずれか一項に記載の情報処理装置。
【請求項７】
前記半導体メモリデバイスは、ソリッド・ステート・ドライブである、
ことを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記上位コントローラは、
前記記録空間に記録されているデータとして、画像形成装置の処理に係るデータを管理する、
ことを特徴とする請求項１から７のいずれか一項に記載の情報処理装置。
【請求項９】
データが書込まれている記録領域に対して新たなデータを上書きできないデータ用メモリを用いる情報処理装置の制御方法であって、
前記データ用メモリを管理して、データが書込まれている記録領域に対して新たなデータの書込みを可能にするための領域解放処理を実行する下位制御工程と、
前記データ用メモリの記録領域を含む記録空間および前記記録空間に記録されているデータを管理する上位制御工程と、
を有し、
前記上位制御工程では、
前記記録空間で記録されているデータを前記記録空間の管理から削除する際に、前記データ用メモリに記録していたデータの属性に応じて、前記記録領域を指定した前記領域解放処理を、前記下位制御工程へ指示する、
ことを特徴とする情報処理装置の制御方法。
【請求項１０】
データが書込まれている記録領域に対して新たなデータを上書きできないデータ用メモリを用いる情報処理装置の制御方法をコンピュータに実行させるプログラムであって、
前記情報処理装置の制御方法は、
前記データ用メモリを管理して、データが書込まれている記録領域に対して新たなデータの書込みを可能にするための領域解放処理を実行する下位制御工程と、
前記データ用メモリの記録領域を含む記録空間および前記記録空間に記録されているデータを管理する上位制御工程と、
を有し、
前記上位制御工程では、
前記記録空間で記録されているデータを前記記録空間の管理から削除する際に、前記データ用メモリに記録していたデータの属性に応じて、前記記録領域を指定した前記領域解放処理を、前記下位制御工程へ指示する、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置に関する。
【背景技術】
【０００２】
記録領域にデータを書込んで記録することができる半導体メモリデバイスがある。この半導体メモリデバイスを情報処理装置などのシステムに利用することが考えられる（特許文献１、２）。しかしながら、半導体メモリデバイスには、データが書込まれている記録領域に対して、新たなデータを上書きできないデータ用メモリを有するものがある。この場合、情報処理装置は、半導体メモリデバイスに対して、データが書込まれている記録領域に対して新たなデータの書込みを可能にするための領域解放処理を指示し、半導体メモリデバイスの下位コントローラがそれを実行する必要がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００１―１８４２５５号公報
【特許文献２】特開２０１６―２０６９３８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、半導体メモリデバイスの下位コントローラがデータ用メモリについての領域解放処理を実行している場合、情報処理装置は、半導体メモリデバイスの記録領域を利用することが難しい。情報処理装置は、下位コントローラが領域解放処理の実行中においては、半導体メモリデバイスのデータ用メモリの記録領域を利用した処理を実行することができなくなる可能性がある。
【０００５】
このように、情報処理装置では、データが書込まれた記録領域に対して新たなデータを上書きできないデータ用メモリを利用する場合には、そのようなデータ用メモリの利用に起因した性能や利便性の低下を抑制することが求められている。
【課題を解決するための手段】
【０００６】
本発明に係る情報処理装置は、データが書込まれている記録領域に対して新たなデータを上書きできないデータ用メモリと、前記データ用メモリを管理して、データが書込まれている記録領域に対して新たなデータの書込みを可能にするための領域解放処理を実行する下位コントローラと、前記データ用メモリの記録領域を含む記録空間および前記記録空間に記録されているデータを管理する上位コントローラと、を有し、前記上位コントローラは、前記記録空間で記録されているデータを前記記録空間の管理から削除する際に、前記データ用メモリに記録していたデータの属性に応じて、前記記録領域を指定した前記領域解放処理を、前記下位コントローラへ指示する。
【発明の効果】
【０００７】
本発明では、情報処理装置において、データが書込まれた記録領域に対して新たなデータを上書きできないデータ用メモリを利用しつつ、そのようなデータ用メモリの利用に起因した性能や利便性の低下を抑制することができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施形態に係る情報処理装置の一例としての画像形成装置の概略的な構成図である。
【図２】図１の画像形成装置において画像形成装置の記憶空間を管理するためにシステムメモリに記録されるデータ管理テーブルの一例の説明図である。
【図３】図１のＳＳＤのＮＡＮＤフラッシュメモリの記録領域の一例の説明図である。
【図４】図１のＳＳＤのＮＡＮＤフラッシュメモリの記録領域を管理するためのアドレス管理テーブルの一例の説明図である。
【図５】図１のＣＰＵからＳＳＤへ出力する領域解放処理の指示コマンドとしてのＴＲＩＭコマンドの一例の説明図である。
【図６】図１の操作部に表示される記録データ表示画面の一例の説明図である。
【図７】図１の上位コントローラとしてのＣＰＵが実行する実データの削除処理の一例の流れを示すフローチャートである。
【図８】図１の下位コントローラとしてのＮＡＮＤコントローラによるコマンド処理の一例の流れを示すフローチャートである。
【図９】図１の画像形成装置におけるＣＰＵとＮＡＮＤコントローラとが協働した領域解放シーケンスの説明図である。
【図１０】図１のＳＳＤのＮＡＮＤフラッシュメモリの記録領域の領域開放状態の一例を示す説明図である。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態について図面を参照しながら詳細に説明する。しかしながら、以下の実施形態に記載されている構成はあくまで例示に過ぎず、本発明の範囲は実施形態に記載されている構成によって限定されることはない。
【００１０】
図１は、本発明の実施形態に係る情報処理装置の一例としての画像形成装置１０１の概略的な構成図である。図１の画像形成装置１０１は、プリント、コピー、ファックス、スキャナといった複数の機能を実行するＭＦＰの一例である。画像形成装置１０１は、操作部１０９、コントローラ１０２、ソリッド・ステート・ドライブ（ＳＳＤ）１１１、印刷部１０７、原稿読取部１０８、を有する。コントローラ１０２は、ＣＰＵ１０３、システムメモリ１０４、画像処理部１０５、ストレージ制御部１１０、を有する。ＳＳＤ１１１は、半導体メモリデバイスの一例であり、ＮＡＮＤフラッシュメモリ（Ｆｌａｓｈ  Ｍｅｍ）１１３、ＮＡＮＤコントローラ１１２、管理メモリ１１４、を有する。画像形成装置１０１は、各種の機能の処理において、ＳＳＤ１１１の記録領域を、画像形成装置１０１の記録空間の一部として用いる。なお、画像形成装置１０１は、図１に示すように単体の機器として構成されていても、複数の機器を組み合わせて構成されていてもよい。
【００１１】
操作部１０９は、画像形成装置１０１に対するユーザ操作を取得する。また、操作部１０９は、タッチパネルなどの表示部を有し、操作に係る画像などを表示部に表示する。原稿読取部１０８は、原稿の画像を読み取る。印刷部１０７は、用紙に対して画像を印刷する。画像処理部１０５は、原稿読取部１０８、印刷部１０７に接続される。画像処理部１０５は、たとえば、原稿読取部１０８により読み取られた画像データを変換し、印刷用の画像データを生成する。ストレージ制御部１１０は、ＳＡＴＡインタフェース１１５により、ＳＳＤ１１１のＮＡＮＤコントローラ１１２と接続される。ストレージ制御部１１０は、ＳＳＤ１１１のインタフェースとして機能する。コントローラ１０２のシステムメモリ１０４は、画像形成装置１０１において上述した各種の機能に対応するプログラム、およびプログラムの実行中に使用するデータを保持する。ＣＰＵ１０３には、操作部１０９、システムメモリ１０４、画像処理部１０５、ストレージ制御部１１０、に接続される。なお、ＣＰＵ１０３には、不図示のネットワークＩＦに接続されてよい。ＣＰＵ１０３は、システムメモリ１０４に記録されているプログラムを読み込んで実行する。これにより、画像形成装置１０１の全体の動作を制御する制御部が、画像形成装置１０１に実現される。なお、コントローラ１０２には、所定のＯＳがインストールされ、ＯＳの管理下で各種のシステム（ファイルシステムを含む）についての処理が実行されてよい。画像形成装置１０１の全体の動作を制御するＣＰＵ１０３は、ＳＳＤ１１１の記録領域を含む画像形成装置１０１のすべての記録空間を管理する。ＣＰＵ１０３は、ＳＳＤ１１１の記録領域を含む画像形成装置１０１のすべての記録空間と、記録空間に記録されているデータと管理する。たとえば、ＣＰＵ１０３は、ＳＳＤ１１１に対してデータを書込んだり読み出したりするアクセスを行う場合、ストレージ制御部１１０に書込み動作または読み出し動作を指示する。ストレージ制御部１１０は、ＣＰＵ１０３の指示に基づいて、指示に対応するコマンドを、ＳＳＤ１１１のＮＡＮＤコントローラ１１２へ出力する。また、ストレージ制御部１１０は、コマンドの実行結果としてのデータやステータスを、ＳＳＤ１１１のＮＡＮＤコントローラ１１２から取得する。ストレージ制御部１１０は、ＳＳＤ１１１の動作を制御する。
【００１２】
ＳＳＤ１１１において、ＮＡＮＤフラッシュメモリ１１３は、データ用メモリであり、書込まれたデータを、記録領域に読出可能に書込んで記録して保持する。管理メモリ１１４は、ＳＳＤ１１１のＮＡＮＤフラッシュメモリ１１３を管理するためのプログラム、およびプログラムの実行中に使用するデータを保持する。ＮＡＮＤコントローラ１１２は、ＮＡＮＤフラッシュメモリ１１３、管理メモリ１１４、に接続される。ＮＡＮＤコントローラ１１２は、管理メモリ１１４に記録されているプログラムを読み込んで実行する。これにより、ＳＳＤ１１１の全体の動作を制御する制御部が、ＳＳＤ１１１に実現される。ＳＳＤ１１１の全体の動作を制御するＮＡＮＤコントローラ１１２は、ＳＳＤ１１１の記録領域を管理する。たとえば、ＮＡＮＤコントローラ１１２は、ストレージ制御部１１０から取得した書込みデータを、ＮＡＮＤフラッシュメモリ１１３の記録領域に記録して保持させる。ＮＡＮＤコントローラ１１２は、ストレージ制御部１１０から要求された読出しデータを、ＮＡＮＤフラッシュメモリ１１３の記録領域から読み出して、ストレージ制御部１１０へ出力する。ＮＡＮＤコントローラ１１２は、ストレージ制御部１１０からコマンドを取得した場合、コマンドに対応する処理を実行する。ＮＡＮＤコントローラ１１２は、コマンド実行後の状態を、ストレージ制御部１１０へ出力する。なお、ＮＡＮＤコントローラ１１２は、ストレージ制御部１１０との間で送受するデータを、管理メモリ１１４に一時的に書込んでよい。この場合、管理メモリ１１４は、送受するデータの一時的なデータバッファとして機能する。
【００１３】
ところで、ＮＡＮＤフラッシュメモリ１１３などのＳＳＤ１１１に用いられるデータ用メモリには、データが書込まれている記録領域に対して新たなデータを上書きできないものがある。この場合、経時的にＮＡＮＤフラッシュメモリ１１３についてのデータを書込める記録領域が減ってゆく。このため、ＮＡＮＤコントローラ１１２は、データが書込まれている記録領域に対して新たなデータの書込みを可能にするための領域解放処理を実行する必要がある。また、ＣＰＵ１０３は、ストレージ制御部１１０を通じて、領域解放処理の指示コマンドを、ＮＡＮＤコントローラ１１２へ出力する必要がある。しかしながら、ＳＳＤ１１１のＮＡＮＤコントローラ１１２がＮＡＮＤフラッシュメモリ１１３についての領域解放処理を実行している場合、情報処理装置は、ＳＳＤ１１１の記録領域を利用することが難しい。情報処理装置は、ＮＡＮＤコントローラ１１２が領域解放処理の実行中においては、ＳＳＤ１１１のＮＡＮＤフラッシュメモリ１１３の記録領域を利用した処理を実行することができなくなる可能性がある。また、ＣＰＵ１０３は、記録空間で記録されているデータを記録空間の管理から削除する際に、領域解放処理を実行しない場合、ＮＡＮＤフラッシュメモリ１１３の記録領域についての、新たなデータの書込みが可能な領域は、経時的に減る。新たなデータの書込みが可能な領域は、たとえば情報処理装置の連続使用期間が長くなることにより減り続ける。その結果、画像形成装置１０１では、ＮＡＮＤフラッシュメモリ１１３についての利用可能な記録領域が経時的に不足したり、画像形成装置１０１の処理速度が低下したりするなどの影響が生じる可能性がある。また、ＣＰＵ１０３は、記録空間で記録されているデータを記録空間の管理から削除する際に、一律に領域解放処理を実行する場合、ＮＡＮＤフラッシュメモリ１１３からデータを削除する際には常に領域解放処理のための処理時間が必要になる。画像形成装置１０１は、その処理中においてはＮＡＮＤフラッシュメモリ１１３の記録領域を利用した処理を実行することができなくなる。処理が実行できない期間が生じると、画像形成装置１０１としての利便性が悪くなる。このように、画像形成装置１０１では、データが書込まれた記録領域に対して新たなデータを上書きできないＮＡＮＤフラッシュメモリ１１３を利用する場合には、そのようなメモリの特性に起因した性能や利便性の低下を抑制することが求められている。以下、本実施形態での対策について説明する。
【００１４】
図２は、図１の画像形成装置１０１において画像形成装置１０１の記憶空間を管理するためにシステムメモリ１０４に記録されるデータ管理テーブル５０１の一例の説明図である。ＣＰＵ１０３は、データ管理テーブル５０１を用いて、画像形成装置１０１の記憶空間に記録されているデータを管理する。ＣＰＵ１０３は、たとえば新たに記録するデータが発生すると、そのデータをＳＳＤ１１１などに記録するとともに、データ管理テーブル５０１を更新する。ＣＰＵ１０３は、記録されているデータを管理から削除する場合、データ管理テーブル５０１を更新する。図２のデータ管理テーブル５０１は、データをファイル単位で管理するファイルシステムについての管理テーブルである。データ管理テーブル５０１は、少なくとも、論理アドレス５０２、データサイズ５０３、データ属性５０４、を有する。図２に示すように、データ管理テーブル５０１は、この他にも、記録日時５０５、消去日時５０６、などを有してよい。論理アドレス５０２は、画像形成装置１０１の記憶空間を一定のバイト数毎に順番に区分けし、その区分けされた記録領域ごとに固有に割り当てられる識別情報である。論理アドレス５０２の値により、画像形成装置１０１の記憶空間でのデータの記録領域を特定することができる。データ管理テーブル５０１は、論理アドレス５０２の値ごとのレコードを有する。データサイズ５０３は、ファイルについて記録されているデータ量をいう。論理アドレス５０２とデータサイズ５０３とにより、１つのファイルのデータが記録されている記録領域の範囲を特定することができる。データ属性５０４は、ファイルに記録されているデータの属性をいう。データ属性５０４の値には、たとえば、スプール、読み取り画像、アドレス帳、がある。「スプール」とは、データが、プリント処理する際の中間データを意味する。データ属性５０４が「スプール」であるファイルのデータは、画像処理中に一時的に生成される一時格納データである。「読み取り画像」とは、データが、画像形成装置１０１において読み取られた最終データを意味する。「アドレス帳」とは、ユーザデータとして記録管理される最終データを意味する。これらのデータ属性５０４が「読み取り画像」または「アドレス帳」であるファイルのデータは、画像処理後にも残存させることが望ましい最終データを意味する。記録日時５０５は、ファイルシステムの記録空間にファイルが記録された日時である。ＣＰＵ１０３は、ファイルシステムの記録空間に新たなファイルを記録する場合、その日時をデータ管理テーブル５０１の記録日時５０５に記録する。消去日時５０６は、ファイルがファイルシステムの記録空間の管理から削除された日時である。ＣＰＵ１０３は、ファイルシステムの記録空間からファイルを削除する場合、その日時をデータ管理テーブル５０１の消去日時５０６に記録する。このように、データ管理テーブル５０１は、データの属性情報として、データ属性５０４を記録する。データ属性５０４の情報により、ＣＰＵ１０３は、ＮＡＮＤフラッシュメモリ１１３の記録領域を含むファイルシステムの各論理アドレスの記録領域に記録されているデータについて、中間データと最終データとを区別することができる。
【００１５】
図３は、図１のＳＳＤ１１１のＮＡＮＤフラッシュメモリ１１３の記録領域３０１の一例の説明図である。ＮＡＮＤフラッシュメモリ１１３の記録領域３０１には、図の上から下へ向かって物理アドレスが割り当てられる。物理アドレスは、ＮＡＮＤフラッシュメモリ１１３の記録領域３０１を一定のバイト数毎に順番に区分けし、その区分けされた記録領域ごとに固有に割り当てられる識別情報である。物理アドレスの値により、ＮＡＮＤフラッシュメモリ１１３の記録領域３０１でのデータの記録領域を特定することができる。図３のＮＡＮＤフラッシュメモリ１１３の記録領域３０１は、スプール領域３０２、読み取りデータ格納領域３０３、を有する。スプール領域３０２、読み取りデータ格納領域３０３は、コントローラ１０２のＣＰＵ１０３によりデータ格納に利用される記録領域である。スプール領域は、一時的なデータを記録する領域である。一時的なデータには、たとえば印刷部１０７が印刷に使用する画像変換後の画像データがある。読み取りデータ格納領域は、最終成果物としての恒久的なデータを記録する領域である。恒久的なデータには、たとえば原稿読取部１０８による原稿を読み取った画像データがある。
【００１６】
図４は、図１のＳＳＤ１１１のＮＡＮＤフラッシュメモリ１１３の記録領域を管理するためのアドレス管理テーブル７０１の一例の説明図である。図３のスプール領域３０２、読み取りデータ格納領域３０３には、論理アドレスが割り当てられる。アドレス管理テーブル７０１は、このような画像形成装置１０１の処理に係るデータを管理するために用いられる。図４のアドレス管理テーブル７０１は、図３のスプール領域３０２および読み取りデータ格納領域３０３についての物理アドレスと論理アドレスとを対応付けて記録するテーブルである。論理アドレスは、コントローラ１０２のＣＰＵ１０３からＳＳＤ１１１の記録領域を見た場合のアドレスである。物理アドレスは、ＳＳＤ１１１のＮＡＮＤフラッシュメモリ１１３の記録領域であるブロックのアドレスである。アドレス管理テーブル７０１は、記録空間についての論理アドレスと、ＮＡＮＤフラッシュメモリ１１３についての物理アドレスとを対応付けて記憶する。ここで、物理アドレスは、論理アドレスと一対一に紐付けられる。アドレス管理テーブル７０１は、管理メモリ１１４に記録される。ＮＡＮＤコントローラ１１２は、アドレス管理テーブル７０１を用いて、ＳＳＤ１１１のスプール領域３０２および読み取りデータ格納領域３０３に記録されているデータを管理する。ＮＡＮＤコントローラ１１２は、たとえば論理アドレスを指定した新たな記録データが発生すると、そのデータを、スプール領域３０２または読み取りデータ格納領域３０３についての、データの書込みが可能な記録領域に記録する。ＮＡＮＤコントローラ１１２は、アドレス管理テーブル７０１を更新する。ＮＡＮＤコントローラ１１２は、データを記録した記録領域の物理アドレスに対応する論理アドレスを、指定された論理アドレスにより更新する。ＮＡＮＤコントローラ１１２は、たとえば論理アドレスを指定したデータの読み出しが発生すると、アドレス管理テーブル７０１を参照して指定された論理アドレスに対応する物理アドレスを取得し、取得した物理アドレスからデータを読み出す。ＮＡＮＤコントローラ１１２は、ガベージコレクションの処理を実行した場合、移動前の記録領域の物理アドレスに対応する論理アドレスにより、移動後の記録領域の物理アドレスに対応する論理アドレスを更新する。これにより、物理アドレスと論理アドレスとの紐付けが維持できる。
【００１７】
図５は、図１のＣＰＵ１０３からＳＳＤ１１１へ出力する領域解放処理の指示コマンドとしてのＴＲＩＭコマンドの一例の説明図である。ＣＰＵ１０３は、ＳＳＤ１１１に領域解放処理を指示する場合、ストレージ制御部１１０からＳＳＤ１１１へＴＲＩＭコマンドを出力させる。ＴＲＩＭコマンドは、ＡＴＡ（ＡＴ  Ａｔｔａｃｈｍｅｎｔ）インタフェース規格で定められている領域解放処理の指示コマンドである。ＣＰＵ１０３は、ＴＲＩＭコマンドにより、物理消去をしてもよい論理アドレスを、ＳＳＤ１１１へ通知する。図５のＴＲＩＭコマンドは、ＴＲＩＭフィールド２０１、開始論理アドレスフィールド２０２、サイズフィールド２０３、を有する。ＴＲＩＭフィールド２０１は、ＴＲＩＭのための領域解放処理の有効無効を示すフィールドである。ＴＲＩＭフィールド２０１が“１”にセットされると、領域解放処理が有効となる。ＴＲＩＭフィールド２０１が“０”にセットされると、領域解放処理が無効となる。開始論理アドレスフィールド２０２は、データを削除する論理アドレスを格納するフィールドである。サイズフィールド２０３は、データを削除する記録領域のサイズを格納するフィールドである。ＮＡＮＤコントローラ１１２は、ＴＲＩＭフィールド２０１が“１”にセットされている場合、開始論理アドレスフィールド２０２に記述された論理アドレスの記録領域から、サイズフィールド２０３に記述された記録領域までのデータを削除する。ＮＡＮＤコントローラ１１２は、領域指定された記録領域を、データ書込み可能な状態にする。
【００１８】
図６は、図１の操作部１０９に表示される記録データ表示画面の一例の説明図である。図６（ａ）は、記録データの表示画面である。ＣＰＵ１０３は、記録データの表示画面を、図１の操作部１０９に表示する。図６（ａ）の記録データの表示画面４０１には、記録データの一覧をファイル名、サイズ、記録日時などとともに表示するウィンドウ４０２、ファイル選択のチェックボックス４０３、ファイル編集メニュー表示ボタン４０４、が表示される。図６（ｂ）は、図６（ａ）において１つのチェックボックス４０３をチェックした状態でファイル編集メニュー表示ボタン４０４が操作された場合に、ＣＰＵ１０３が操作部１０９に表示するポップアップウィンドウ４０５の表示画面である。ポップアップウィンドウ４０５には、ファイル編集内容として、削除ボタン４０６、ファイル複製ボタン、ファイル名変更ボタン、が表示される。削除ボタン４０６が押下された場合、ＣＰＵ１０３は、削除指定されたファイルのデータを、ファイルシステムの管理から削除する。ＣＰＵ１０３は、図２のデータ管理テーブル５０１において、削除指定されたファイルの消去日時５０６を記録する。
【００１９】
図７は、図１の上位コントローラとしてのＣＰＵ１０３が実行する実データの削除処理の一例の流れを示すフローチャートである。ＣＰＵ１０３は、ファイルシステムの管理からデータを削除する際に図７の実データの削除処理を実行し、データの属性などに応じてＴＲＩＭコマンドを発行して出力する。ＣＰＵ１０３は、ＮＡＮＤフラッシュメモリ１１３の記録領域を含む記録空間および記録空間に記録されているデータを管理する上位制御工程として、図７の実データの削除処理を実行する。
【００２０】
図７のステップＳ６０１において、ＣＰＵ１０３は、ファイルシステムにおいてデータが削除されたか否かを判断する。ＣＰＵ１０３は、たとえば図６の削除ボタン４０６が押下されたか否かを判断して、ファイルシステムにおいてデータが削除されたか否かを判断する。ＣＰＵ１０３は、ファイルシステムにおいてデータが削除されていない場合、ステップＳ６０１の判断処理を繰り返す。ステップＳ６０２において、ＣＰＵ１０３は、システムメモリ１０４に記録されたデータ管理テーブル５０１を参照し、削除されたデータの属性を確認する。ステップＳ６０３において、ＣＰＵ１０３は、管理から削除されたデータの属性が、一時格納データとしてのスプールであるか否かを判断する。管理から削除されたデータの属性が一時格納データとしてのスプールでない場合、ＣＰＵ１０３は、処理をステップＳ６０７へ進める。管理から削除されたデータの属性が一時格納データとしてのスプールである場合、ＣＰＵ１０３は、処理をステップＳ６０４へ進める。
【００２１】
ステップＳ６０４において、ＣＰＵ１０３は、管理から削除されたデータを格納している記録領域についての、最初の論理アドレスと、サイズとを取得する。たとえば管理から削除されたデータがスプール領域３０２に記録されている場合、ＣＰＵ１０３は、スプール領域３０２において管理から削除されたデータを格納している記録領域についての、最初の論理アドレスと、サイズとを取得する。ステップＳ６０５において、ＣＰＵ１０３は、ＴＲＩＭコマンドを生成する。ＣＰＵ１０３は、ＴＲＩＭコマンドのＴＲＩＭフィールド２０１に“１”を設定し、取得した論理アドレスを開始論理アドレスフィールド２０２に設定し、取得したサイズをサイズフィールド２０３に設定する。ステップＳ６０５において、ＣＰＵ１０３は、ステップＳ６０５において生成した領域指定のＴＲＩＭコマンドを、ＳＳＤ１１１へ出力する。その後、ＣＰＵ１０３は、図７の処理を終了する。
【００２２】
一方、ステップ６０３においてスプールデータでないと判断した場合、ステップＳ６０７において、ＣＰＵ１０３は、ファイルシステムで管理しているＳＳＤ１１１の残容量（Ｘ）を確認する。ＣＰＵ１０３は、たとえば、ＳＳＤ１１１のスプール領域３０２についての残容量（Ｘ）を確認する。ステップＳ６０８において、ＣＰＵ１０３は、確認した残容量（Ｘ）と、画像形成装置１０１の処理のために必要とされている必要量（Ｙ）とを比較する。必要量は、たとえば画像形成装置１０１の性能を一定以上に維持するために必要とされる空き容量でよい。必要量（Ｙ）は、予めＳＳＤ１１１のコントローラ１０２によって設定されても、ユーザによって任意な値に設定されてもよい。残容量（Ｘ）が必要量（Ｙ）より小さくない場合、ＣＰＵ１０３は、ＣＰＵ１０３は、図７の処理を終了する。残容量（Ｘ）が必要量（Ｙ）より小さい場合、ＣＰＵ１０３は、処理をステップＳ６０９へ進める。ステップＳ６０９において、ＣＰＵ１０３は、ＴＲＩＭコマンドの発行対象となるデータを決定する。ＣＰＵ１０３は、たとえば、データ管理テーブル５０１を参照し、記録日時５０５が古いものから順番にデータを選択して決定する。ＣＰＵ１０３は、不足量（Ｙ−Ｘ）以上のデータ量が削除されるように、データを選択する。その後、ＣＰＵ１０３は、上述したステップＳ６０４〜Ｓ６０６の処理を実行し、図７の処理を終了する。
【００２３】
このように、ＣＰＵ１０３は、記録空間で記録されているデータを記録空間の管理から削除する際に、ＮＡＮＤフラッシュメモリ１１３に記録していたデータの属性に応じて、記録領域を指定したＴＲＩＭコマンドを、ＮＡＮＤコントローラ１１２へ出力する。たとえば、管理から削除されるデータが一時格納データなどの中間データである場合、ＣＰＵ１０３は、記録空間で記録されているデータを記録空間の管理から削除する際に、中間データの記録領域を指定したＴＲＩＭコマンドを出力する。ＣＰＵ１０３は、中間データの記録領域を指定したＴＲＩＭコマンドを、ＮＡＮＤコントローラ１１２へ出力する。また、管理から削除されるデータが最終データである場合、ＣＰＵ１０３は、最終データの記録領域が不足する場合において、最終データの記録領域を指定したＴＲＩＭコマンドを、ＮＡＮＤコントローラ１１２へ出力する。記録空間で記録されているデータを記録空間の管理から削除する際に最終データの記録領域が不足しない場合には、ＣＰＵ１０３は、最終データの記録領域を指定したＴＲＩＭコマンドを、ＮＡＮＤコントローラ１１２へ出力しない。
【００２４】
図８は、図１の下位コントローラとしてのＮＡＮＤコントローラ１１２によるコマンド処理の一例の流れを示すフローチャートである。図８には、ＣＰＵ１０３から取得する複数のコマンドの中の、ＮＡＮＤフラッシュメモリ１１３についてのデータが書込まれている記録領域についての領域開放処理を指示するＴＲＩＭコマンドに関する処理について詳しく図示している。ＮＡＮＤコントローラ１１２は、ストレージ制御部１１０を通じてＣＰＵ１０３からコマンドを取得する場合、図８のコマンド処理を実行する。  ＮＡＮＤフラッシュメモリ１１３を管理するＮＡＮＤコントローラ１１２は、データが書込まれている記録領域に対して新たなデータの書込みを可能にするための領域解放処理を実行する下位制御工程として、図８のコマンド処理を実行する。
【００２５】
図８のステップＳ７０１において、ＮＡＮＤコントローラ１１２は、ＣＰＵ１０３からＡＴＡコマンドを取得したか否かを判断する。ＡＴＡコマンドを取得していない場合、ＮＡＮＤコントローラ１１２は、ステップＳ７０１の判断処理を繰り返す。ステップＳ７０２において、ＮＡＮＤコントローラ１１２は、取得したＡＴＡコマンドが、ＴＲＩＭコマンドであるか否かを判断する。取得したＡＴＡコマンドがＴＲＩＭコマンドでない場合、ＮＡＮＤコントローラ１１２は、ステップＳ７０３において取得したＡＴＡコマンドに対応する処理を実行し、図８の処理を終了する。取得したＡＴＡコマンドがＴＲＩＭコマンドである場合ＮＡＮＤコントローラ１１２は、処理をステップＳ７０４へ進める。
【００２６】
ステップＳ７０４において、ＮＡＮＤコントローラ１１２は、取得したＴＲＩＭコマンドについて、領域指定のオプションの有無を判断する。領域指定のＴＲＩＭコマンドでない場合、ＮＡＮＤコントローラ１１２は、処理をステップＳ７１１へ進める。領域指定のＴＲＩＭコマンドである場合、ＮＡＮＤコントローラ１１２は、処理をステップＳ７０５へ進める。ステップＳ７０５において、ＮＡＮＤコントローラ１１２は、図４のアドレス管理テーブル７０１を用いて、ＴＲＩＭコマンドの開始論理アドレスフィールド２０２の論理アドレスに対応する物理アドレスを取得する。ステップＳ７０６において、ＮＡＮＤコントローラ１１２は、ＮＡＮＤフラッシュメモリ１１３についての、取得した物理アドレスの記録領域について、書込まれた不要データの有無を判断する。不要データが書込まれていない場合、ＮＡＮＤコントローラ１１２は、取得した物理アドレスの記録領域についての領域開放処理を実行することなく、図８の処理を終了する。
【００２７】
不要データが書込まれている場合、ＮＡＮＤコントローラ１１２は、取得した物理アドレスの記録領域についての領域開放処理を実行する。領域開放処理のステップＳ７０７において、ＮＡＮＤコントローラ１１２は、ＮＡＮＤフラッシュメモリ１１３についての、データの書込まれていない記録領域としての空きブロックを探して取得する。ステップＳ７０８において、ＮＡＮＤコントローラ１１２は、処理に適したタイミングを待つ（Ｓ７０８）。処理に適したタイミングとは、たとえばＣＰＵ１０３によるＮＡＮＤフラッシュメモリ１１３へのアクセスが少ないタイミングをいう。処理に適したタイミングは、この他にもたとえば予め定めた時間が経過したタイミングでもよい。処理に適したタイミングになると、ステップＳ７０９において、ＮＡＮＤコントローラ１１２は、取得した物理アドレスの記録領域に書込まれている有用データを、空きブロックにコピーする。ステップＳ７１０において、ＮＡＮＤコントローラ１１２は、取得した物理アドレスの記録領域を消去し、新たなデータの書込みが可能な状態にする。また、ＮＡＮＤコントローラ１１２は、図４のアドレス管理テーブル７０１を更新する。ＮＡＮＤコントローラ１１２は、図４のアドレス管理テーブル７０１において領域指定された論理アドレスに対応する物理アドレスを、コピー先の記録領域の物理アドレスに更新する。
【００２８】
以上の領域解放処理を終了すると、ＮＡＮＤコントローラ１１２は、処理をステップＳ７０６へ戻す。ＮＡＮＤコントローラ１１２は、ＴＲＩＭコマンドで指定された開始の論理アドレスからサイズにより指定される終了の論理アドレスまでの論理アドレス空間に対応するすべての物理アドレス空間について、領域解放処理を繰り返す。すべての物理アドレス空間についての領域解放処理が終了すると、ＮＡＮＤコントローラ１１２は、図８の処理を終了する。これにより、下位コントローラとしてのＮＡＮＤコントローラ１１２は、領域指定の領域解放処理の指示に基づいて、指示された記録領域を、新たなデータの書込みが可能な状態にする。ＮＡＮＤコントローラ１１２は、論理アドレスにより記録領域を指定した領域解放処理を取得した場合、管理メモリ１１４において論理アドレスに対応づけられている物理アドレスの記録領域に対して領域解放処理を実行する。
【００２９】
ステップＳ７０４において領域指定のＴＲＩＭコマンドでないと判断した場合、ＮＡＮＤコントローラ１１２は、処理をステップＳ７１１へ進める。ステップＳ７１１において、ＮＡＮＤコントローラ１１２は、ＮＡＮＤフラッシュメモリ１１３についての、論理アドレスに対応付けられている記録領域に、不要データが書込まれているものがあるか否かを判断する。不要データが書込まれている記録領域がない場合、ＮＡＮＤコントローラ１１２は、図８の処理を終了する。不要データが書込まれている記録領域がある場合、ＮＡＮＤコントローラ１１２は、処理をステップＳ７１２へ進め、不要データが書込まれている記録領域についての領域開放処理を実行する。ステップＳ７１２からステップＳ７１５までの領域開放処理は、ステップＳ７０７からステップＳ７７１０までの領域開放処理に対応するので、その説明を省略する。以上の領域解放処理を終了すると、ＮＡＮＤコントローラ１１２は、処理をステップＳ７１１へ戻す。
【００３０】
ＮＡＮＤコントローラ１１２は、不要データが書込まれているすべての記録領域について、領域解放処理を繰り返す。すべての領域解放処理が終了すると、ＮＡＮＤコントローラ１１２は、図８の処理を終了する。これにより、下位コントローラとしてのＮＡＮＤコントローラ１１２は、領域指定がない領域解放処理の指示に基づいて、ＮＡＮＤフラッシュメモリ１１３についての、有用データが記録されていない記録領域を、新たなデータの書込みが可能な状態にする。
【００３１】
図９は、図１の画像形成装置１０１におけるＣＰＵ１０３とＮＡＮＤコントローラ１１２とが協働した領域解放シーケンスの説明図である。図９には、図１のＣＰＵ１０３、ストレージ制御部１１０、ＮＡＮＤコントローラ１１２が図示されている。図９では、図面の上から下へ向かって時間が流れる。ＣＰＵ１０３は、データ消去を受け付けると、ストレージ制御部１１０へＴＲＩＭコマンドを出力する。ストレージ制御部１１０は、ＡＴＡインタフェース規格で定められたＴＲＩＭコマンドを、ＮＡＮＤコントローラ１１２へ出力する。ＮＡＮＤコントローラ１１２は、ＴＲＩＭコマンドを取得すると、ＴＲＩＭコマンドの受付通知を、ＮＡＮＤコントローラ１１２へ返す。また、ＴＲＩＭコマンドを取得したＮＡＮＤコントローラ１１２は、ＴＲＩＭコマンドに基づいて、ＮＡＮＤフラッシュメモリ１１３に対してデータを消去する領域解放処理を実行する。
【００３２】
図１０は、図１のＳＳＤ１１１のＮＡＮＤフラッシュメモリ１１３の記録領域の領域開放状態の一例を示す説明図である。図１０（ａ）は、領域開放処理前のＮＡＮＤフラッシュメモリ１１３の記録領域の説明図である。図１０（ｂ）は、領域開放処理後のＮＡＮＤフラッシュメモリ１１３の記録領域の説明図である。ＮＡＮＤフラッシュメモリ１１３は、複数の記録領域としてのブロック９０１を有する。ブロック９０１は、ＳＳＤ１１１でのデータの消去単位となる。ＮＡＮＤフラッシュメモリ１１３の複数のブロック９０１は、有用データが書込まれている点付きのブロック９０２、ファイルシステムによって消去された不要データが書込まれている灰色のブロック９０４、白抜きの空きブロック９０３、に分類できる。そして、図１０（ａ）においてブロック群９０５は、スプール領域３０２として用いられる記録領域である。図１０（ａ）では、スプール領域３０２として用いられるブロック群９０５は、不要データが書込まれている灰色のブロック９０４のみで構成されている。この状態において、ＣＰＵ１０３は、たとえばスプール領域３０２の論理アドレスを指定したＴＲＩＭコマンドを、ＮＡＮＤコントローラ１１２へ出力する。これに応じて、ＮＡＮＤコントローラ１１２は、領域指定されたスプール領域３０２についての領域開放処理を、ブロック単位で実行する。ＮＡＮＤコントローラ１１２は、図１０（ｂ）に示すように、領域指定されたスプール領域３０２を、白抜きの新たなデータの書込みが可能な状態にする。領域指定されたスプール領域３０２は、不要なデータが削除され、新たなデータの書込みが可能な状態になる。
【００３３】
以上のように、本実施形態では、上位コントローラとしてのＣＰＵ１０３は、記録空間で記録されているデータを記録空間の管理から削除する際に、下位コントローラとしてのＮＡＮＤコントローラ１１２への記録領域を指定した領域解放処理を制御する。ＣＰＵ１０３は、ＮＡＮＤフラッシュメモリ１１３に記録していたデータの属性に応じて、記録領域を指定した領域解放処理を指示する。そして、ＮＡＮＤコントローラ１１２は、領域解放処理の指示に基づいて、指示された記録領域を、新たなデータの書込みを可能にする。よって、本実施形態では、データを記録空間の管理から削除する際に、ＮＡＮＤフラッシュメモリ１１３についての領域解放処理の実行の有無は、ＮＡＮＤフラッシュメモリ１１３の記録領域に記録されていたデータの属性に応じて制御することができる。また、本実施形態では、データが書込まれている記録領域についての新たなデータの書込みを可能な状態にするか否かは、ＮＡＮＤフラッシュメモリ１１３の記録領域に記録されていたデータの属性に応じて制御することができる。たとえば、本実施形態では、画像処理の途中で生成される中間データについては、その中間データを記録空間の管理から削除する際に、即時的に領域開放処理を実行する。これにより、画像形成装置１０１には、たとえばプリント出力後に中間データが残らなくなる。画像形成装置１０１のセキュリティが向上し得る。また、本実施形態では、画像処理後にも残す最終データについては、最終データを記録空間の管理から削除する際には、残容量が不足しないかぎり、即時的に領域開放処理を実行しない。これにより、画像形成装置１０１には、たとえばプリント出力後にも最終データが保持され続け易くなる。画像形成装置１０１は、最終データといった資産を可能な限り適切に保持することができる。
【００３４】
これに対し、仮にたとえば、記録空間で記録されているデータを記録空間の管理から削除する際に、領域解放処理を実行しない場合、ＮＡＮＤフラッシュメモリ１１３の記録領域についての、新たなデータの書込みが可能な領域は、経時的に減り続ける。新たなデータの書込みが可能な領域は、たとえば画像形成装置１０１の連続使用期間が長くなることにより減り続ける。その結果、経時的には、画像形成装置１０１では、ＮＡＮＤフラッシュメモリ１１３についての利用可能な記録領域が不足したり、処理速度などに影響を生じたりする可能性がある。この他にもたとえば、記録空間で記録されているデータを記録空間の管理から削除する際に、一律に領域解放処理を実行する場合、記録領域からデータを削除する際には常に領域解放処理のための処理時間が必要になる。画像形成装置１０１のＣＰＵ１０３は、その処理中においてはＮＡＮＤフラッシュメモリ１１３の記録領域を利用した処理を実行することができなくなる。処理が実行できない期間が生じると、画像形成装置１０１としての利便性が悪くなる。本実施形態では、解放されるＮＡＮＤフラッシュメモリ１１３の記録領域に記録されていたデータの属性に応じて、記録空間の管理から削除する際におけるＮＡＮＤフラッシュメモリ１１３についての領域解放処理の実行の有無を制御する。よって、これらの課題は、生じ難くなる。本実施形態では、画像形成装置１０１でのデータの属性に応じた最適化されたタイミングにおいて、ＮＡＮＤフラッシュメモリ１１３についての領域開放処理を実行させることができる。本実施形態の画像形成装置１０１は、データが書込まれた記録領域に対して新たなデータを上書きできないＮＡＮＤフラッシュメモリ１１３を利用しつつ、そのようなＮＡＮＤフラッシュメモリ１１３の利用に起因した性能や利便性の低下を抑制することができる。
【００３５】
また、本実施形態では、ＮＡＮＤコントローラ１１２は、記録空間で記録されているデータを記録空間の管理から削除する際に、領域開放処理を実行できる。その結果、本実施形態では、その後にデータを書込む際に、領域開放処理を実行する必要がない。画像形成装置１０１は、データを書込む際に、書込み先の記録領域のデータを管理メモリ１１４へ読み出し、書込み先の記録領域をデータの書込み可能な状態にする領域開放処理を実行し、その上で退避していたデータを、書込み先の記録領域に書込む必要がない。
【００３６】
以上、本発明をその好適な実施形態に基づいて詳述してきたが、本発明はこれら特定の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。
【００３７】
本発明は、上述の実施の形態の１以上の機能を実現するプログラムを、ネットワークや記憶媒体を介してシステムや装置に供給し、そのシステム又は装置のコンピュータの１つ以上のプロセッサーがプログラムを読み出して実行する処理でも実現可能である。また、本発明は、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００３８】
１０１  画像形成装置
１０３  ＣＰＵ
１０４  システムメモリ
１１１  ＳＳＤ
１１２  ＮＡＮＤコントローラ
１１３  ＮＡＮＤフラッシュメモリ
１１４  管理メモリ
２０１  ＴＲＩＭフィールド
２０２  開始論理アドレスフィールド
２０３  サイズフィールド
３０１  記録領域
３０２  スプール領域
３０３  データ格納領域
５０１  データ管理テーブル
７０１  アドレス管理テーブル
【図１】
2020109591.tif 000003
【図２】
2020109591.tif 000004
【図３】
2020109591.tif 000005
【図４】
2020109591.tif 000006
【図５】
2020109591.tif 000007
【図６】
2020109591.tif 000008
【図７】
2020109591.tif 000009
【図８】
2020109591.tif 000010
【図９】
2020109591.tif 000011
【図１０】
2020109591.tif 000012