(57)【要約】【課題】  半導体メモリ上の指定された特定の領域に対して消去処理を短時間に行う。【解決手段】    ホストと半導体メモリとを含む情報処理システムにおいて、半導体メモリに対してコマンドを発行すると、発行されたコマンドが半導体メモリの指定されたメモリ領域を消去するためのコマンドであるかどうかを判断する。ここで、指定されたメモリ領域を消去するためのコマンドであると判断した場合、指定されたメモリ領域に対して消去処理を実行することを特徴とする。【選択図】  図６
2016206938.tif 000002
【特許請求の範囲】
【請求項１】
ホストと半導体メモリとを含む情報処理システムであって、
半導体メモリに対してコマンドを発行する発行手段と、
発行されたコマンドが前記半導体メモリの指定されたメモリ領域を消去するためのコマンドであるかどうかを判断する第１の判断手段と、
指定されたメモリ領域を消去するためのコマンドであると判断した場合、指定されたメモリ領域を消去する消去手段と、
を備えることを特徴とする情報処理システム。
【請求項２】
指定されたメモリ領域が空き領域であるかどうかを判断する第２の判断手段を備え、
指定されたメモリ領域が空き領域であると判断した場合、前記消去手段は、指定されたメモリ領域を消去することを特徴とする請求項１記載の情報処理システム。
【請求項３】
前記消去手段は、指定されたメモリ領域をブロック単位で消去することを特徴とする請求項１記載の情報処理システム。
【請求項４】
前記コマンドは、前記半導体メモリのうち、消去すべき領域の開始位置を特定する論理アドレスと、消去すべきサイズとを含むことを特徴とする請求項１記載の情報処理システム。
【請求項５】
前記消去手段は、所定のジョブが終了することに応じて、指定されたメモリ領域を消去することを特徴とする請求項１記載の情報処理システム。
【請求項６】
前記論理アドレスと、前記半導体メモリの物理アドレスとを対応づけるテーブルを備え、
前記消去手段は、前記テーブルを参照して、前記半導体メモリで消去すべき物理アドレスを特定することを特徴とする請求項１乃至５のいずれか１項に記載の情報処理システム。
【請求項７】
前記半導体メモリに対する消去指示を受け付ける受付手段を備えることを特徴とする請求項１記載の情報処理システム。
【請求項８】
半導体メモリは、ソリッド・ステート・ドライブであることを特徴とする請求項１乃至７のいずれか１項に記載の情報処理システム。
【請求項９】
ホストと半導体メモリとを含む情報処理システムのメモリ制御方法であって、
半導体メモリに対してコマンドを発行する発行工程と、
発行されたコマンドが前記半導体メモリの指定されたメモリ領域を消去するためのコマンドであるかどうかを判断する判断工程と、
指定されたメモリ領域を消去するためのコマンドであると判断した場合、指定されたメモリ領域を消去する消去工程と、
を備えることを特徴とする情報処理システムのメモリ制御方法。
【請求項１０】
請求項９に記載の情報処理システムのメモリ制御方法をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、情報処理システムのメモリ制御方法、及びプログラムに関するものである。
【背景技術】
【０００２】
従来、情報処理装置に備える記憶デバイスとして、ＳＳＤ（ソリッドステートドライブ）が利用されるものがある。ここで、ＳＳＤはデータが書き込まれているブロックに対してデータを上書きすることができない。そのため書換えたいブロックを一旦、バッファに読み出しバッファ上のデータを書き換え、該当ブロックを消去してからバッファの内容をブロックに書き戻すと言った手順が必要であった。そのため、空きブロックが少なくなると書き込み速度が著しく低下することが問題となっていた。
【０００３】
そこで、この書き込み速度の低下を改善するため、不要になったデータのあるブロックをＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）がＳＳＤに通知し、そのブロック内の不要領域を解放して空きブロックにするＴｒｉｍコマンドが考案された。
【０００４】
また、データの書き込み可能な領域が無くなった場合には、データを書き込む場所を確保するために一度データ領域の全内容を消去するガベージコレクションを実行するのもがある（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００１―１８４２５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、先行技術においてはＴｒｉｍコマンドが実行されると不要データが存在する全てのブロックに対してガベージコレクションを実行するため、不要データが多数存在する場合には処理時間を要してしまう。
このため、ＳＳＤ全体の処理能力が低下してしまう。また、データ領域の全内容を消去するガベージコレクションを実行した場合には更に処理時間を要してしまい、著しくＳＳＤ全体の処理能力が低下してしまう。
【０００７】
本発明は、上記の課題を解決するためになされたもので、本発明の目的は、半導体メモリ上の指定された特定の領域に対して消去処理を短時間に行える仕組みを提供することである。
【課題を解決するための手段】
【０００８】
上記目的を達成する本発明の情報処理システムは以下に示す構成を備える。
ホストと半導体メモリとを含む情報処理システムであって、半導体メモリに対してコマンドを発行する発行手段と、発行されたコマンドが前記半導体メモリの指定されたメモリ領域を消去するためのコマンドであるかどうかを判断する第１の判断手段と、指定されたメモリ領域を消去するためのコマンドであると判断した場合、指定されたメモリ領域を消去する消去手段と、を備えることを特徴とする。
【発明の効果】
【０００９】
本発明によれば、半導体メモリ上の指定された特定の領域に対して消去処理を短時間に行える。
【図面の簡単な説明】
【００１０】
【図１】情報処理システムの構成をブロック図である。
【図２】Ｔｒｉｍコマンド・フォーマットの一例を示す図である。
【図３】ＳＳＤのメモリマップを示す図である。
【図４】ホストに表示されるＵＩ画面の一例を示す図である。
【図５】情報処理システムのメモリ制御方法を説明するフローチャートである。
【図６】情報処理システムのメモリ制御方法を説明するフローチャートである。
【図７】図２に示したＳＳＤのブロック情報を示す図である。
【図８】情報処理システムのメモリ制御方法を説明するフローチャートである。
【発明を実施するための形態】
【００１１】
次に本発明を実施するための最良の形態について図面を参照して説明する。
＜システム構成の説明＞
〔第１実施形態〕
【００１２】
図１は、本実施形態を示す情報処理システムの構成をブロック図である。本例は、半導体メモリとして使用されるＳＳＤ（ソリッド・ステート・ドライブ）及びホストを１つの情報処理システムとする例である。なお、特に断らない限り、本発明の機能が実行されるのであれば、単体の機器であっても、複数の機器からなるシステムであっても、本発明を適用できることは言うまでもない。
【００１３】
図１において、１０１はホストであって、ＳＳＤ１０２に対してデータの書き込みや読み出しを行うと共に、コマンドの送信やＳＳＤ１０２のステータスを受信してＳＳＤ１０２の制御を行う。このため、ホスト１０１には、図示しないＣＰＵ、メモリ、データバス、制御バスを含むシステムバス等を備えている。
１０２はＳＳＤであって、ホスト１０１から受信したデータを内部のＮＡＮＤフラッシュメモリ１０５に書き込む。また、内部のＮＡＮＤフラッシュメモリ１０５からデータを読み出してホスト１０１へ送信する。それと、ホスト１０１から受信したコマンドに基づき自身の設定を行うと共に、自身のステータスをホスト１０１に送信する。
【００１４】
１０３はＳＡＴＡ  Ｉ／Ｆ部であって、ホスト１０１とコントローラ１０４との通信を行う。１０４はコントローラ部であって、ＳＳＤ全体の制御を司る。１０５はＮＡＮＤフラッシュメモリであって、コントローラ１０４の指示に従ってデータの記憶及び読み出しを行う。１０６はワークメモリであって、コントローラ１０４で実行するプログラムや制御に必要な各種参照データの記憶及び一時的なデータバッファとして機能する。
【００１５】
図２は、図１に示したホスト１０１が発行するＴｒｉｍコマンド・フォーマットの一例を示す図である。ここで、Ｔｒｉｍコマンドとは、あらかじめ物理消去してもよい論理アドレスをＳＳＤ１０２に通知するためのコマンドである。
図２において、２０１はＴｒｉｍコマンド・フォーマットのＴｒｉｍフィールドであって、"１"がセットされるとＴｒｉｍが有効に、"０"がセットされるとＴｒｉｍが無効になる。
２０２はＴｒｉｍコマンド・フォーマットで開始位置を特定する論理アドレスフィールドであって、Ｔｒｉｍフィールド２０１が"１"の場合、ここに記述された論理アドレスからＴｒｉｍコマンドを実行する。
２０３はＴｒｉｍコマンド・フォーマットのサイズフィールドであって、Ｔｒｉｍフィールド２０１が"１"の場合、開始論理アドレスフィールド２０２に記述された論理アドレスから、ここに記述されたサイズまでの領域に対してＴｒｉｍコマンドを実行する。ＴｒｉｍコマンドはＡＴＡ（ＡＴ  Ａｔｔａｃｈｍｅｎｔ）インタフェース規格で定められており、ホスト１０１からＳＳＤ１０２に対して送信される。ＳＳＤ１０２はＳＡＴＡ  Ｉ／Ｆ１０３を介して受信し、コントローラ１０４によって解釈、実行される。
【００１６】
以下、表１に上記開始位置を特定する論理アドレスと物理アドレスの変換の一例を示す。テーブル形式で示す表１において、論理アドレスはホスト１０１からＳＳＤ１０２の記憶領域を見た場合のアドレスである。物理アドレスはＳＳＤ１０２内のＮＡＮＤフラッシュメモリ１０５の記憶領域（メモリ領域）であるブロックのアドレスであり、論理アドレス２０２とは一対一に紐付けられている。この情報はワークメモリ１０６に記憶されており、コントローラ１０４によって管理される。ガベージコレクションなどでデータの書き込まれている物理アドレスが変わった場合でも逐次更新され、論理アドレスとの紐付けは維持される。
【００１７】
【表１】
2016206938.tif 000003
【００１８】
図３は、図１に示したＳＳＤ１０２のメモリマップを示す図である。
図３において、３０１はホスト１０１から見たＳＳＤ１０２の領域である。３０２はスプール領域であって、ＳＳＤ１０２の一部の領域に、ホスト１０１もしくはユーザによる指示によって設けられる。この領域は一時的なデータを記憶するもので、例えば、複合機のジョブデータを一時記録するために使用される。
【００１９】
図４は、図１に示したホスト１０１に表示されるＵＩ画面の一例を示す図である。
図４において、４０１はホスト１０１でＴｒｉｍコマンドを発行するＵＩ（Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）の一例であって、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）のモニタや複合機の操作パネルなどに表示され、ユーザから消去指示の操作を受付ける。４０２はＴｒｉｍコマンド実行ボタンであって、ユーザによるＴｒｉｍコマンド実行の指示を受け付ける。
【００２０】
図５は、本実施形態を示す情報処理システムのメモリ制御方法を説明するフローチャートである。本例は、図１に示したホスト１０１のＴｒｉｍコマンド実行の処理手順に対応する。各ステップは、ホスト１０１の制御部が記憶される制御プログラムを実行することで実現される。なお、ホスト１０１には、所定のＯＳがインストールされ、ＯＳの管理下で各種のシステム（ファイルシステムを含む）がデータ処理を実行する。
【００２１】
ホスト１０１は、図４に示したＵＩ画面において、ユーザが実行ボタン４０２を押下したことを検知すると（Ｓ５０１）、図示しないＯＳに管理されるファイルシステムで、ＳＳＤ１０２のスプール領域３０２を消去する（Ｓ５０２）。なお、ファイルシステムによる消去は、該当ブロックのデータを不要データに置き換えるだけでブロック上に存在し続けている。
続いて、ホスト１０１は、ＯＳからスプール領域３０２の論理アドレス及びサイズを取得し（Ｓ５０４）、ＡＴＡコマンドのＴｒｉｍフィールド２０１に"１"を設定する。更に、開始論理アドレスフィールド２０２にＳ５０４で取得した論理アドレスを、サイズフィールド２０３にＳ５０４で取得したサイズを設定し（Ｓ５０５）、ＴｒｉｍコマンドをＳＳＤ１０２に対して送信して（Ｓ５０６）、本処理を終了する。
【００２２】
図６は、本実施形態を示す情報処理システムのメモリ制御方法を説明するフローチャートである。本実施形態におけるＳＳＤ１０２がホスト１０１から受信するＴｒｉｍコマンドの実行処理手順に対応する。各ステップは、コントローラ１０４が記憶される制御プログラムを実行することで実現される。
ＳＳＤ１０２のコントローラ１０４は、ホスト１０１からＡＴＡコマンドを受信すると（Ｓ６０１）、受信したコマンドがＴｒｉｍコマンドか否かを判別する（Ｓ６０２）。ここで、Ｔｒｉｍコマンドでないとコントローラ１０４が判断した場合、コントローラ１０４は、該当するコマンドを実行して（Ｓ６０３）、本処理を終了する。
【００２３】
一方、Ｔｒｉｍコマンドであるとコントローラ１０４が判断した場合、コントローラ１０４は、ＳＳＤ１０２は領域指定のオプションがあるか否かを判別する（Ｓ６０４）。ここで、領域指定のオプションがあるとコントローラ１０４が判断した場合、コントローラ１０４は、開始論理アドレスフィールド２０２が示す論理アドレスに紐付けられた物理アドレスを表１から取得する（Ｓ６０５）。続いて、コントローラ１０４は、データの書き込まれていない空きブロックを探し（Ｓ６０７）、コントローラ１０４は、処理に適したタイミングを待つ（Ｓ６０８）。
【００２４】
ここで、処理に適したタイミングとは、例えば、ホスト１０１からのアクセスが少ない時や予め定めた時間を経過した時などである。
このように処理に適したタイミングが来ると、ＳＳＤ１０２のコントローラ１０４は、指定領域内の１つのブロック内に書き込まれている有効データを空きブロックにコピーし（Ｓ６０９）、コントローラ１０４は、続いてコピー元の古いブロックを消去して空きブロックを作る（Ｓ６１０）。
【００２５】
一方、Ｓ６０４で指定領域オプションが無いとコントローラ１０４が判断した場合、コントローラ１０４は、通常のＴｒｉｍコマンド処理としてＳＳＤ１０２はデータの書き込まれていない空きブロックを探す（Ｓ６１２）。そして、コントローラ１０４は、処理に適したタイミングを待つ（Ｓ６１３）。ここで、処理に適したタイミングが来ると、コントローラ１０４は、全領域内の１つのブロック内に書き込まれている有効データを空きブロックにコピーし（Ｓ６１４）、続いて、コントローラ１０４は、コピー元の古いブロックを消去して空きブロックを作り（Ｓ６１５）、Ｓ６１１へ戻る。
【００２６】
図７は、図２に示したＳＳＤ１０２のブロック情報を示す図である。
図７の（Ａ）において、７０１はブロックであって、ＳＳＤ１０２の消去単位である。７０２はＳＳＤ１０２に書き込まれている有効データである。７０３は空きブロックであり、新たなデータを書込み可能な状態を示している。７０４は不要データであって、ファイルシステムによって消去されたデータである。７０５はスプール領域３０２に該当するＳＳＤ１０２の領域であって、不要データとなっている。ここでは連続したブロックで表わしているが、論理アドレスと物理アドレスの紐付けによっては不連続なブロックの集まりになることもある。
【００２７】
図７の（Ｂ）において、７０１から７０４は図７の（Ａ）と同様である。７０６はスプール領域３０２に該当するＳＳＤ１０２の領域であって、図７の（Ａ）の７０５の領域を本発明の方法で領域指定Ｔｒｉｍコマンドを実行した後の状態を示している。領域指定した部分が空きブロック７０６に置き換わっている。以上説明した様に、領域指定した部分に対してブロック単位でガベージコレクションを行うので高速である。
本実施形態によれば、ブロック単位で指定した一部の領域に対してのみ不要データを消去することが可能となるので、全ての領域に対してＴｒｉｍコマンドや消去を実行するよりも高速に空き領域を確保する処理を終了できる。
【００２８】
〔第２実施形態〕
図８は、本実施形態を示す情報処理システムのメモリ制御方法を説明するフローチャートである。本例は、図１に示したホスト１０１のＴｒｉｍコマンド実行の処理手順に対応する。各ステップは、ホスト１０１の制御部が記憶される制御プログラムを実行することで実現される。なお、ホスト１０１には、所定のＯＳがインストールされ、ＯＳの管理下で各種のシステム（ファイルシステムを含む）がデータ処理を実行する。なお、Ｓ５０２からＳ５０６は図５と同様である。
【００２９】
ホスト１０１はスプール領域３０２に一時的に記憶したジョブデータを用いた処理が終了したことを検知すると（Ｓ５１１）、第１実施形態と同様にファイルシステムでＳＳＤ１０２のスプール領域３０２を消去する（Ｓ５０２）。
【００３０】
続いて、ホスト１０１はＯＳからスプール領域３０２の論理アドレス及びサイズを取得し（Ｓ５０４）、ホスト１０１は、ＡＴＡコマンドのＴｒｉｍフィールド２０１に"１"を設定する。更に、ホスト１０１は、開始論理アドレスフィールド２０２にＳ５０４で取得した論理アドレスを、サイズフィールド２０３にＳ５０４で取得したサイズを設定し（Ｓ５０５）、ホスト１０１は、ＴｒｉｍコマンドをＳＳＤ１０２に対して送信する（Ｓ５０６）。
これにより、ホスト１０１はユーザからの指示を待つことなく速やかに領域指定のＴｒｉｍコマンドをＳＳＤ１０２に送信することが可能となる。
これにより、ホスト１０１から発行されるＴｒｉｍコマンドの実行タイミングを所定のジョブの実行が終了した時点で開始させることができる。したがって、ジョブ処理中におけるＳＳＤ１０２のコントローラ１０４のデータ処理負担を軽減することができる。
【００３１】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステムまたは装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読み出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えばＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００３２】
１０１  ホスト
１０２  ＳＳＤ
１０３  ＳＡＴＡ  Ｉ／Ｆ
１０４  コントローラ
１０５  ＮＡＮＤフラッシュメモリ
１０６  ワークメモリ
【図１】
2016206938.tif 000004
【図２】
2016206938.tif 000005
【図３】
2016206938.tif 000006
【図４】
2016206938.tif 000007
【図５】
2016206938.tif 000008
【図６】
2016206938.tif 000009
【図７】
2016206938.tif 000010
【図８】
2016206938.tif 000011