(57)【要約】【課題】ウェアレベリングが機能しない状態で特定の領域に集中アクセスが行われると、その領域に割り当てられたフラッシュメモリの物理ブロックの書き換え回数がデバイスの制限値を超過し、本来の性能を発揮出来ない場合がある。【解決手段】ＳＳＤのマスターディスク用のプログラムデータを作成時に、使用するＳＳＤの容量に合わせて未使用領域の容量分の特定のファイル名が付けられたダミーデータを付加し、プログラムデータの起動設定にオプションフラグをセットした上でパッケージングを行い、マスターディスクを作成する。マスターディスクプログラムは、最初の起動時に起動設定のオプションフラグを確認し、オプションフラグがセットされた場合は特定のファイル名の付いたダミーデータの削除を行う事で論理空き領域に割り当てられた物理ブロックを未使用状態にする。【選択図】図８
2018014005.tif 000002
【特許請求の範囲】
【請求項１】
システムの起動に必要なプログラム及びデータを備えた起動ディスクの量産コピーに使用するマスターディスクのデータを生成するためのストレージ制御装置であって、
生成したデータの出力先デバイスの選択を行う選択手段と、
前記マスターディスクに格納するプログラム及びデータの容量と前記選択手段で選択されたデバイスの容量を比較して出力先デバイスの未使用領域となる領域の容量を算出する解析手段と、
前記解析手段で算出した未使用領域の容量分の特定のファイル名を付加したダミーデータを生成する生成手段と、を備え、
前記選択手段で選択された出力先デバイスが半導体ストレージの場合は、前記マスターディスクに格納する起動プログラムの設定データにオプションフラグを立て、前記生成手段によってダミーデータを生成し、前記マスターディスクに格納するプログラム及びデータと前記生成されたダミーデータと合わせてマスターディスクデータとしてパッケージングを行い出力先デバイスに書き込みを行い、前記マスターディスクによって量産コピーされた半導体ストレージは最初の起動時に前記オプションフラグが立っている事を確認した場合は、前記特定のファイル名のダミーデータの論理的削除を行うことを特徴とするストレージ制御装置。
【請求項２】
前記マスターディスクから量産コピーされた半導体ストレージは、特定ファイルの論理的削除を行った後にＴｒｉｍコマンドを実行することを特徴とする請求項１に記載のストレージ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージへのデータの書込及び消去を制御するストレージ制御装置に関する。
【背景技術】
【０００２】
従来、画像形成装置内にＨＤＤが搭載され、プログラムを格納すると共に画像データの保存、編集などを実現するストレージ機能を実現している。
【０００３】
近年、大容量化と低価格化が進んでモバイルＰＣを中心に急速に普及が進んでいる半導体ディスク（以下、ＳＳＤ）はＨＤＤと比べて高速なランダムアクセスが可能であり、低消費電力、高い耐衝撃性、軽量、省スペースといった点に特長がある。特にシステム起動時においてＨＤＤで必要なスピンアップ等の初期動作が必要無い為、高速なデータ転送と相まって起動時間の短縮化には非常に効果があるため、画像形成装置のストレージデバイスとしても注目されている。
【０００４】
ただし、ＳＳＤに搭載されている記憶デバイスであるＮＡＮＤ型フラッシュメモリには書き込み可能回数に上限がある（ＳＬＣで約１０万回、ＭＬＣで約１万回）。更に、プロセスの微細化によりフラッシュメモリは将来的に現在の書き換え可能回数から減少する傾向にある。
【０００５】
これに対して、ＳＳＤに搭載されているフラッシュメモリ・コントローラは同じ領域への書き込み頻度が集中しないように書き込み先を平均化させてストレージデバイスの寿命を延伸化させるウェアレベリングという技術を用いて前記問題に対応している。
【０００６】
ウェアレベリングには、主にダイナミック・ウェアレベリングとスタティック・ウェアレベリングの２種類の方法がある。
【０００７】
ダイナミック・ウェアレベリングは図５に示すように書き込みアドレスに割り当てられた物理メモリの範囲でウェアレベリングを実行するのが特徴である。つまりオペレーション・システム（以下ＯＳ）のような頻繁に更新されないスタティック（静的）データはそのままで、ダイナミックデータ（新しいデータ）のみ分散化する。このため、物理メモリに対して必要な書き換えのみ行うので書き換え回数を抑制できる長所を持つ半面、物理メモリの使用状況によってウェアレベリングの有効範囲が狭くなる可能性があるという短所を持つ。
【０００８】
スタティック・ウェアレベリングは図６に示すように前記に対して書き込みを行わないアドレスの物理メモリに対してもデータの移し変えをして、全領域においてウェアレベリングを実行する。このとき各ブロックの書き換え回数を記録し、なるべく書き換えの少ないブロックにデータを書き込んでいく。必要に応じて書き換えられていないブロックのデータ（スタティックデータ）を別のブロックに移し変えて、書き込み回数の均等化を図る。これによって、前者のダイナミック・ウェアレベリングに対してウェアレベリング有効範囲の制限が無い長所をもつが、スタティックデータの移動に伴い物理メモリの無駄な書き換えが頻繁に発生するという短所を持つ。また、上記の様に書き換え頻度が高いためダイナミック・ウェアレベリングと比べてパフォーマンスダウンを起こしやすいという短所も持つ。
【０００９】
一般的にＳＳＤは上記２種類のウェアレベリングの内の何れか、もしくは組み合わせて使用している。
【００１０】
前述の通り、ダイナミック・ウェアレベリングを採用するＳＳＤにおいては搭載されるフラッシュメモリの未使用ブロックが十分に多い場合は極めて有効的に平準化が機能するが、未使用ブロック数が少ない状態になると平準化が適切に機能しなくなってしまう。
【００１１】
例えば、図３のようにマスターディスクからデュプリケータ７００のディスクコピー専用機でＳＳＤにディスクコピーを行った場合においてはコピー先のＳＳＤにはマスターディスク全領域分のディスクイメージがコピーされる場合がある。この時、前記コピーされたＳＳＤはＯＳのファイルシステムからみて論理的空き領域に割り当てられた物理ブロックの全領域にもマスターディスクから読み出したデータが書き込まれた状態となっている。つまり、ＳＳＤに搭載されるフラッシュメモリ・コントローラからみると全てのブロックが使用済み状態となるためダイナミック・ウェアレベリングが機能しない状態となる。
【００１２】
図４に、前記ダイナミック・ウェアレベリングが有効に機能しなくなったＳＳＤの状態を４ＧＢのＳＳＤを例として示す。
【００１３】
図４のようにユーザー解放に解放された全領域が使われているため、ＳＳＤコントローラは自身の保有する僅かなシステム領域をだけでウェアレベリングするしかないため、ダイナミック・ウェアレベリングが有効に機能できない。この状態でシステムに組み込んで動作させた場合に、ＯＳ等が特定領域に書き換え処理を集中して行うと、ウェアレベリングによる平準化が機能しない事からその特定領域に割り当てられた物理ブロックの寿命が著しく疲弊する。
【００１４】
また、上記の様にユーザーに開放された全物理領域に空き領域が無い状態では、スタティック・ウェアレベリングで平準化を行ったとしても、データの書き換えが生じる度にウェアレベリングのためのスタティックデータの書き換えが頻発する。これによってスループットパフォーマンスが大幅にダウンし、ＳＳＤが持つ本来のパフォーマンスを発揮することが出来ない。
【００１５】
前記問題を解決するためには、論理的空き領域に割り当てられている物理領域を使用済み状態から未使用状態に戻す必要ある。使用済み物理領域の解放は、ファイルシステム上の論理的空き領域に対して、搭載されるフラッシュメモリのブロックサイズ単位で任意のデータ（ダミーデータ）をライトし、その領域を論理的に解放するデータの書き換え処理を行う事で可能となる。
【００１６】
しかしながらフラッシュメモリへのライト処理は処理速度が遅いため、書き換え対象となる論理空き領域が大きい場合においてはこの処理の実施によってシステム的なパフォーマンスダウンが生じる可能性がある。
【００１７】
特許文献１には、論理的空き領域に対してパフォーマンスダウンが起きないレベルで周期的に所定容量のダミーデータのライトと前記ダミーデータの論理的消去を繰り返す事により徐々に使用済み物理領域を未使用状態に解放することが提案されている。
【先行技術文献】
【特許文献】
【００１８】
【特許文献１】特開２０１４−１０６９１８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１９】
しかし、上記の手法では、処理対象となる物理領域が大きい場合は、対象領域が全て開放されるまでに長い時間がかかってしまう。
【００２０】
本発明は、上記課題に鑑みてなされたものであり、その目的とするところは、ウェアレベリングを有効に機能させ、パフォーマンダウンを防ぐことにある。
【課題を解決するための手段】
【００２１】
上記の目的を達成するために、本発明に係るストレージ制御装置は、
システムの起動に必要なプログラム及びデータを備えた起動ディスクの量産コピーに使用するマスターディスクのデータを生成するための制御装置において、生成したデータの出力先デバイスの選択を行う選択手段と、前記マスターディスクに格納するプログラム及びデータの容量と前記選択手段で選択されたデバイスの容量を比較して出力先デバイスの未使用領域となる領域の容量を算出する解析手段と、前記解析手段で算出した未使用領域の容量分の特定のファイル名を付加したダミーデータを生成する生成手段と、を備え、前記選択手段で選択された出力先デバイスが半導体ストレージの場合は、前記マスターディスクに格納する起動プログラムの設定データにオプションフラグを立て、前記生成手段によってダミーデータを生成し、前記マスターディスクに格納するプログラム及びデータと前記生成されたダミーデータと合わせてマスターディスクデータとしてパッケージングを行い出力先デバイスに書き込みを行い、前記マスターディスク生成プログラムによって生成されたマスターディスクによって量産コピーされた半導体ストレージは最初の起動時に前記オプションフラグが立っている事を確認した場合は、前記特定のファイル名のダミーデータの論理的削除を行う事を特徴とする。
【発明の効果】
【００２２】
本発明に係るストレージ制御装置によれば、ウェアレベリングを有効に機能させ、パフォーマンダウンを防ぐことができる。
【図面の簡単な説明】
【００２３】
【図１】本発明に係るコントローラ部４００の構成を示すブロック図である。
【図２】画像形成装置に搭載されるＳＳＤ４１３の構成を表すブロック図である。
【図３】デュプリケータ７００によるＳＳＤ４１３の量産コピー時の構成を表すブロックズである。
【図４】図３のコピーによって、ウェアレベリングが有効に機能しなくなったＳＳＤ４１３の内部状態を説明する図である。
【図５】ダイナミック・ウェアレベリングを説明する図である。
【図６】スタティック・ウェアレベリングを説明する図である。
【図７】マスターディスクのデータを生成するための開発環境の構成図である。
【図８】マスターディスクプログラムデータと特定ファイル名のダミーデータを同一パッケージ化してＳＳＤ４１３に出力するパッケージング及び出力方法を説明するフローチャートである。
【図９】マスターディスクプログラムデータをＳＳＤ４１３に出力後に、ＳＳＤ４１３の空き領域を特定ファイル名のダミーデータで満たす処理を説明するフローチャートである。
【図１０】図８または図９の処理によって作成されたマスターディスクからコピーされたＳＳＤ４１３の最初のシステム起動時における処理を説明するフローチャートである。
【図１１】図１０の処理にＴｒｉｍコマンド出力を追加したフローチャートである。
【発明を実施するための形態】
【００２４】
以下、本発明の実施の形態によるストレージ制御装置の一例について図面を参照して説明する。なお、この実施の形態に記載されている構成要素はあくまで例示であり、この発明の範囲をそれらのみに限定する趣旨のものではない。
【００２５】
図１はマスターディスクからコピーされた半導体ストレージ（ＳＳＤ）４１３が組み込まれる画像形成装置のコントローラ部４００を示すブロック図である。
【００２６】
コントローラ部４００は、不図示の操作部や外部コンピュータからの指示に基づいて原稿搬送装置を制御する原稿搬送装置制御部、イメージリーダを制御するイメージリーダ制御部と通信し、入力される原稿の画像データを取得する。また、プリンタ部を制御するプリンタ制御部と通信を行い、画像データをシートに印刷する。折り装置を制御する折り装置制御部、フィニッシャを制御するフィニッシャ制御部と通信を行い、印刷されたシートにステイプルやパンチ穴といった所望の出力を実現する。
【００２７】
外部Ｉ／Ｆ４５１は外部のコンピュータと接続するインターフェースである。例えばネットワークやＵＳＢなどの外部バスで接続し外部コンピュータからのプリントデータを画像に展開して出力するほか、後述するＳＳＤ４１３内の画像データを外部コンピュータに送信することを行う。
【００２８】
コントローラ部４００はＣＰＵ４０１を有し、オペレーティングシステム（以下、ＯＳ）で制御される。ＣＰＵ４０１には、バスブリッジ４０４が接続され、バスブリッジ４０４を介して、ＣＰＵ４０１の初期起動プログラムを格納しているＲＯＭ４０２から、前記初期起動プログラムを読み出す。また、制御に伴う演算の作業領域として用いられるＲＡＭ４０３とストレージ機器を制御するストレージ制御部４１２もまたバスブリッジ４０４と接続されている。
【００２９】
ＳＳＤ４１３は、ＣＰＵ４０１のＯＳを含むメインプログラムの格納と、イメージリーダや外部Ｉ／Ｆ４５１より取得した画像データや操作部で画像を編集した時の保存用やアプリケーションプログラムの格納先として使用される。また、アプリケーションプログラムやユーザープリファレンスデータの格納先としても使用される。ＳＳＤ４１３には、ＣＰＵ４０１からアクセスができるように構成されている。
【００３０】
また、ネットワークやＵＳＢインターフェースを制御する外部Ｉ／Ｆ制御部４０５、操作部を制御する操作部制御部４０６が接続されている。
【００３１】
デバイス制御部４１１は、不図示の原稿搬送装置制御部、イメージリーダ制御部、プリンタ制御部、折り装置制御部、フィニッシャ制御部と接続され、これらの制御を司る。
【００３２】
図２はＳＳＤ４１３の内部構成の一例を示すブロック図である。
【００３３】
図２において、ＳＳＤ４１３はフラッシュ制御部１０００および複数のフラッシュメモリ１００３を有している。そして、フラッシュ制御部１０００はストレージＩ／Ｆ１００１およびメモリ制御部１００２を備えており、ストレージＩ／Ｆ１００１はストレージ制御部４１２に接続されている。つまり、ストレージＩ／Ｆ１００１はストレージ制御部４１２との通信するためのモジュールである。図示の例では、ストレージＩ／Ｆ１００１として、シリアルＡＴＡ（Ｓｅｒｉａｌ  ＡＴ  Ａｔｔａｃｈｍｅｎｔ：以下ＳＡＴＡという）インターフェースが用いられる。
【００３４】
図７はＳＳＤ４１３に格納される画像形成装置のシステムの起動に必要なプログラム及びデータを備えた起動ディスクの量産コピーに使用するマスターディスクのデータを生成するための開発環境の構成図である。
【００３５】
ホストコンピュータ８００と出力先ストレージ・メディアは任意のインターフェースで接続されている。出力先ストレージ・メディア（出力先デバイス）としてはＳＳＤ４１３の他、ハードディスクドライブ（ＨＤＤ）も想定している。
【００３６】
図８はホストコンピュータ８００上でマスターディスクプログラムデータと特定ファイル名のダミーデータをマスターディスクデータとして同一パッケージ化してＳＳＤ４１３に出力するパッケージング及び出力方法を説明するフローチャートである。
【００３７】
ホストコンピュータ８００上は、ホストコンピュータ８００内のストレージ及びホストコンピュータ８００が接続されるネットワーク上から、マスターディスクに必要なプログラム及びデータ（以下、マスターデータ）を集結する（ステップＳ１０１）。
【００３８】
ステップＳ１０２にて前記の集結されたプログラム及びデータのデータ量を確認する。ステップＳ１０３にてマスターディスクプログラムデータを出力するストレージ・メディア８０３を選択する。
【００３９】
ここで、選択された出力先ストレージ・メディア８０３がＳＳＤの場合は（ステップＳ１０４でＹｅｓ）、前記出力先ストレージ・メディア８０３の容量を確認する（ステップＳ１０５）。前記出力先ストレージ・メディア８０３がＳＳＤでは無い場合は、ステップＳ１０１で集結したマスターデータのパッケージングを行う（Ｓ１１０）。
【００４０】
ステップＳ１０５で確認したメディアの容量とステップＳ１０２にて確認したマスターデータのデータ量を解析・比較することで、前記マスターデータを書き込み後に想定される前記出力先ストレージ・メディアの空き領域の容量（未使用領域）を算出する（Ｓ１０６）。
【００４１】
ホストコンピュータ８００にて、ステップＳ１０６で算出した前記想定される前記出力先ストレージ・メディア８０３の空き領域の容量と同容量の予め設定した特定ファイル名のダミーデータを生成する（Ｓ１０７）。前記の特定ファイル名のダミーデータは単一データもしくは特定ファイル名に連番を付加した複数のデータでも良い。また、ダミーデータは“ＦＦ”（ＡＬＬ“１”）のデータを使用する事で、ＳＳＤ４１３の実質的な書き換え寿命の消費を抑制する事ができる。
【００４２】
ステップＳ１０８にて前記マスターデータに含まれるシステムの起動設定ファイル（設定データ）に対して、最初の起動時に特定ファイル名のダミーデータの削除処理を有効化するためのオプションフラグを設定する。
【００４３】
前記オプションフラグを設定されたマスターデータとステップＳ１０７で生成したダミーデータを合わせてパッケージングを行う（Ｓ１０９）。ステップＳ１０９またはステップＳ１１０でパッケージングを行ったデータを出力先ストレージ・メディア８０３に出力し書き込みを行う（Ｓ１１１）。
【００４４】
図９はマスターディスクプログラムデータをＳＳＤ４１３に出力及び書き込み後に、ＳＳＤ４１３の空き領域をダミーデータで満たす処理を説明するフローチャートである。
【００４５】
ホストコンピュータ８００は、ホストコンピュータ８００内のストレージ及びホストコンピュータ８００が接続されるネットワーク上から、マスターディスクに必要なプログラム及びデータを集結する（ステップＳ２０１）。
【００４６】
前記マスターデータを出力先ストレージ・メディア８０３に出力し書き込みを行う（Ｓ２０２）。ステップＳ２０３で出力先ストレージ・メディア８０３を判別し、ストレージ・メディア８０３がＳＳＤだった場合は（ステップＳ２０４でＹｅｓ）、ストレージ・メディア８０３の空き領域の容量を確認する（Ｓ２０５）。
【００４７】
ホストコンピュータ８００は、ステップＳ２０５で確認したストレージ・メディア８０３の空き容量と同じ容量分の特定ファイル名のダミーデータを生成する（Ｓ２０６）。図８のステップＳ１０７と同様に、前記ダミーデータは単一データもしくは特定ファイル名に連番を付加した複数のデータでも良い。また、また、ダミーデータは“ＦＦ”（ＡＬＬ“１”）のデータを使用する。
【００４８】
ステップＳ２０６にて生成したダミーデータをストレージ・メディア８０３に書き込みを行う（Ｓ２０７）。
【００４９】
ステップＳ２０２にて書き込まれたマスターデータに含まれるシステムの起動設定ファイルに対して、システムの最初の起動時に特定ファイル名のダミーデータの削除処理を有効化するためのオプションフラグを設定する（Ｓ２０８）。
【００５０】
図１０は図８または図９の処理によって作成されたマスターディスクからコピーされたＳＳＤ４１３の最初のシステム起動時における処理を説明するフローチャートである。
【００５１】
マスターディスクからコピーされたＳＳＤ４１３が組み込まれる画像形成装置のコントローラ部４００において電源がオンにされると、ＣＰＵ４０１はＳＳＤ４１３からシステムの起動に必要なプログラム及びデータをロードする（Ｓ３０１）。
【００５２】
ＣＰＵ４０１は起動設定にオプションフラグが有効化されているかを確認する（Ｓ３０２）。
【００５３】
オプションフラグが有効だった場合は（ステップＳ３０３にてＹｅｓ）、ＣＰＵ４０１はＳＳＤ４１３に格納されている特定ファイル名のダミーデータの論理的削除（ファイルシステムの管理情報で不要とする）を行う（Ｓ３０４）。
【００５４】
ＣＰＵ４０１は前記起動設定のオプションフラグをクリアして無効化する（Ｓ３０５）。
【００５５】
ＣＰＵ４０１はシステムをスタンバイ状態に移行する（Ｓ３０６）。
【００５６】
図１１は図１０の処理にＴｒｉｍコマンド出力処理を追加したフローチャートである。なお、図１１に示す処理において、図１０で説明した処理と同様の処理については同一の参照符号を付し、説明を省略する。
【００５７】
ステップＳ４０７にて、ＣＰＵ４０１はＳＳＤ４１３にＴｒｉｍコマンドを行う。Ｔｒｉｍコマンドを受信したＳＳＤ４１３は、ステップＳ３０４で論理的削除をおこなった領域に対して、前記領域に紐づけられた物理領域に対してデータの消去処理を行う。これによって、ＳＳＤ４１３の空き領域はクリーンな状態となる。
【００５８】
以上、本実施形態によれば、マスターディスクとなるＳＳＤ４１３の本来空き領域となる領域を特定ファイル名のダミーデータで満たした状態で作成し、これを元に量産コピーを行う。またコピーされたＳＳＤ４１３は最初の起動時に前記特定ファイル名のダミーデータの論理的削除を行う。これによって、デュプリケータでのイメージコピーによる物理領域が全て使用済み状態になるのを防ぐ事で、ウェアレベリングを有効に機能させると共にＳＳＤ４１３のウェアレベリングによるパフォーマンスダウンを防ぐ事が出来る。
【００５９】
また、システムの最初の起動時の処理で使用済み物理ブロックの一括解放を行う事から、物理ブロックの解放に伴うパフォーマンスダウンを最小限にする事が出来る。
【００６０】
また、ダミーライトに使用するデータとして“ＦＦ”（ＡＬＬ“１”）データを使用する事により、実質的なデバイス寿命の消費を抑制する事が出来る。
【００６１】
また、ダミーデータの論理的削除後にＴｒｉｍコマンドを実行する事により、前記の論理的削除を行った領域に紐づけられた物理領域に対してデータの消去処理を行う事によって、ＳＳＤ４１３の空き領域をクリーンな状態とする事が出来る。
【符号の説明】
【００６２】
４００  コントローラ部、４０１  ＣＰＵ、４０２  ＲＯＭ、４０３  ＲＡＭ、
４０４  バスブリッジ、４１２  ストレージ制御部
【図１】
2018014005.tif 000003
【図２】
2018014005.tif 000004
【図３】
2018014005.tif 000005
【図４】
2018014005.tif 000006
【図５】
2018014005.tif 000007
【図６】
2018014005.tif 000008
【図７】
2018014005.tif 000009
【図８】
2018014005.tif 000010
【図９】
2018014005.tif 000011
【図１０】
2018014005.tif 000012
【図１１】
2018014005.tif 000013