(57)【要約】【課題】メモリの性能を高めることができるデータ処理システムおよびその動作方法を提供する。【解決手段】ここに開示されるデータ処理システムの動作方法は、データ格納装置においてデータ操作を行うために使用される読み出し／書き込み動作単位のサイズを取得する段階と、メモリ割り当てファイルシステム単位のサイズを前記読み出し／書き込み動作単位のサイズの倍数に設定する段階５１５と、メモリ割り当てファイルシステム単位の開始アドレスを前記データ格納装置において使用される読み出し／書き込み動作単位の開始アドレスに設定する段階５２０と、を含む。【選択図】図５
2008198206.tif 000002
【特許請求の範囲】
【請求項１】
データ格納装置におけるデータ操作を行うために使用される読み出し／書き込み動作単位のサイズを取得する段階と、
メモリ割り当てファイルシステム単位のサイズを前記読み出し／書き込み動作単位のサイズの倍数に設定する段階と、
前記メモリ割り当てファイルシステム単位の開始アドレスを前記データ格納装置で使用された前記読み出し／書き込み動作単位の開始アドレスに設定する段階と、
を含むことを特徴とするデータ処理システムの動作方法。
【請求項２】
前記読み出し／書き込み動作単位のサイズを取得する段階は、
前記読み出し／書き込み動作単位のサイズを取得するための要求信号をホストから前記データ格納装置に伝送する段階と、
前記要求信号に応じて、前記読み出し／書き込み動作単位のサイズを前記データ格納装置から前記ホストに伝送する段階と、
を含むことを特徴とする請求項１に記載のデータ処理システムの動作方法。
【請求項３】
前記読み出し／書き込み動作単位のサイズを前記データ格納装置から前記ホストに伝送する段階は、
前記データ格納装置で前記要求信号に応じて前記データ格納装置の識別情報を読み出す段階と、
前記データ格納装置の識別情報に基づいて前記読み出し／書き込み動作単位のサイズを決定する段階と、
前記決定された前記読み出し／書き込み動作単位のサイズを前記データ格納装置から前記ホストに伝送する段階と、
をさらに含むことを特徴とする請求項２に記載のデータ処理システムの動作方法。
【請求項４】
前記読み出し／書き込み動作単位のサイズを取得する段階は、
前記要求信号に応じて前記データ格納装置のレジスタから前記読み出し／書き込み動作単位のサイズを読み出す段階と、
前記読み出した前記読み出し／書き込み動作単位のサイズを前記データ格納装置から前記ホストに伝送する段階と、
をさらに含むことを特徴とする請求項２に記載のデータ処理システムの動作方法。
【請求項５】
前記読み出し／書き込み動作単位のサイズを取得する段階は、
前記データ格納装置で前記データ格納装置の識別情報を読み出す段階と、
前記読み出した前記データ格納装置の識別情報に基づいて前記読み出し／書き込み動作単位のサイズを決定する段階と、
を含むことを特徴とする請求項１に記載のデータ処理システムの動作方法。
【請求項６】
前記読み出し／書き込み動作単位のサイズを取得する段階は、
前記データ格納装置と関連するレジスタから前記読み出し／書き込み動作単位のサイズを読み出す段階を含むことを特徴とする請求項１に記載のデータ処理システムの動作方法。
【請求項７】
前記読み出し／書き込み動作単位のサイズの倍数に設定された前記メモリ割り当てファイルシステム単位のサイズを、前記データ格納装置へ伝送するデータ単位、または前記データ格納装置から伝送されるデータ単位に使用する段階をさらに含むことを特徴とする請求項１に記載のデータ処理システムの動作方法。
【請求項８】
前記データ格納装置におけるデータ操作を行うために使用される消去動作単位のサイズを取得する段階をさらに含むことを特徴とする請求項１に記載のデータ処理システムの動作方法。
【請求項９】
動作システムの管理下の前記データ格納装置におけるメモリ管理動作を行うための動作単位を定義するために前記消去動作単位のサイズを使用する段階をさらに含むことを特徴とする請求項８に記載のデータ処理システムの動作方法。
【請求項１０】
前記メモリ管理動作は、メモリデフラグメント動作であることを特徴とする請求項９に記載のデータ処理システムの動作方法。
【請求項１１】
前記読み出し／書き込み動作単位のサイズの倍数に設定された前記メモリ割り当てファイルシステム単位のサイズを、前記データ格納装置へ伝送するデータ単位に使用する段階と、
前記データ格納装置に伝送されたデータを書き込むために前記データ格納装置において、前記設定された前記メモリ割り当て単位のサイズと前記読み出し／書き込み動作単位のサイズとの間の関係を定義する倍数の前記読み出し／書き込み動作単位でプログラム動作を行う段階と、
を含むことを特徴とする請求項１に記載のデータ処理システムの動作方法。
【請求項１２】
前記データ格納装置は、ＳＳＤ（ｓｏｌｉｄ  ｓｔａｔｅ  ｄｒｉｖｅ）および／またはフラッシュメモリ装置であることを特徴とする請求項１に記載のデータ処理システムの動作方法。
【請求項１３】
データ格納装置におけるデータ操作を行うために使用される少なくとも一つのパラメータを決定するための要求信号をホストから前記データ格納装置に伝送する段階と、
前記データ格納装置で前記要求信号に基づいて前記少なくとも一つのパラメータを決定する段階と、
前記データ格納装置から前記ホストへ前記少なくとも一つのパラメータを伝送する段階と、
を含むことを特徴とするデータ格納装置の動作方法。
【請求項１４】
前記少なくとも一つのパラメータは、読み出し／書き込み動作単位のサイズおよび／または消去動作単位のサイズを含むことを特徴とする請求項１３に記載のデータ格納装置の動作方法。
【請求項１５】
前記少なくとも一つのパラメータを決定する段階は、
前記データ格納装置で前記データ格納装置の識別情報を読み出す段階と、
前記データ格納装置で前記データ格納装置の識別情報に基づいて前記少なくとも一つのパラメータを決定する段階と、
を含むことを特徴とする請求項１３に記載のデータ格納装置の動作方法。
【請求項１６】
前記少なくとも一つのパラメータを決定する段階は、前記データ格納装置のレジスタから読み出し／書き込み動作単位のサイズおよび／または消去動作単位のサイズを読み出す段階を含むことを特徴とする請求項１３に記載のデータ格納装置の動作方法。
【請求項１７】
プロセッサと、
前記プロセッサに連結されたコンピュータの読み出し媒体と、
を含み、
前記コンピュータの読み出し媒体はコンピュータ読み出しプログラムコードを含み、
前記コンピュータ読み出しプログラムコードは、
データ格納装置におけるデータ操作を行うために使用される読み出し／書き込み動作単位のサイズを取得するためのコンピュータ読み出しプログラムコードと、
メモリ割り当てファイルシステム単位のサイズを前記読み出し／書き込み動作単位のサイズの倍数に設定するためのコンピュータ読み出しプログラムコードと、
前記メモリ割り当てファイルシステム単位の開始アドレスを前記データ格納装置で使用された前記読み出し／書き込み動作単位の開始アドレスに設定するためのコンピュータ読み出しプログラムコードと、
を含むことを特徴とするデータ処理システム。
【請求項１８】
プロセッサと、
前記プロセッサに連結されたコンピュータの読み出し媒体と、
を含み、
前記コンピュータの読み出し媒体は、コンピュータ読み出しプログラムコードを含み、
前記コンピュータ読み出しプログラムコードは、
データ格納装置におけるデータ操作を行うために使用される少なくとも一つのパラメータを決定するための要求信号をホストから前記データ格納装置に伝送するためのコンピュータ読み出しプログラムコードと、
前記データ格納装置で前記要求進行に基づいて前記少なくとも一つのパラメータを決定するためのコンピュータ読み出しプログラムコードと、
前記データ格納装置から前記ホストへ前記少なくとも一つのパラメータを伝送するためのコンピュータ読み出しプログラムコードと、
を含むことを特徴とするデータ格納装置。
【請求項１９】
データ格納装置と、
前記データ格納装置に連結されたホストと、
を含み、
前記ホストは、
前記データ格納装置におけるデータ操作を行うために使用される読み出し／書き込み動作単位のサイズを取得し、メモリ割り当てファイルシステム単位のサイズを前記読み出し／書き込み動作単位のサイズの倍数に設定し、前記メモリ割り当てファイルシステム単位の開始アドレスを前記データ格納装置で使用された前記読み出し／書き込み動作単位の開始アドレスに設定するためのホストプロセッサを含むことを特徴とするデータ処理システム。
【請求項２０】
前記ホストプロセッサは、前記ホストから前記データ格納装置に前記読み出し／書き込み動作ユニットのサイズを取得するための要求信号を伝送し、前記データ格納装置から前記読み出し／書き込み動作単位のサイズを前記ホストに伝送されることを特徴とする請求項１９に記載のデータ処理システム。
【請求項２１】
前記データ格納装置は、データ格納装置プロセッサを含み、
前記データ格納装置プロセッサは、
前記データ格納装置で、前記要求信号に応じて前記データ格納装置の識別情報を読み出し、前記データ格納装置の識別情報に基づいて前記読み出し／書き込み動作単位のサイズを決定し、前記決定された前記読み出し／書き込み動作単位のサイズをホストに伝送することを特徴とする請求項２０に記載のデータ処理システム。
【請求項２２】
前記データ格納装置は、データ格納装置プロセッサを含み、
前記データ格納装置プロセッサは、前記ホストから伝送された要求信号に応じて前記データ格納装置のレジスタから前記読み出し／書き込み動作単位のサイズを読み出し、前記読み出された読み出し／書き込み動作単位のサイズを前記ホストに伝送することを特徴とする請求項２０に記載のデータ処理システム。
【請求項２３】
前記ホストプロセッサは、前記データ格納装置の識別情報を読み出し、前記データ格納装置の識別情報に基づいて前記読み出し／書き込み動作単位のサイズを決定することを特徴とする請求項１９に記載のデータ処理システム。
【請求項２４】
前記ホストプロセッサは、前記データ格納装置に関連されたレジスタから前記読み出し／書き込み動作単位のサイズを読み出すことを特徴とする請求項１９に記載のデータ処理システム。
【請求項２５】
前記ホストプロセッサは、前記読み出し／書き込み動作単位のサイズの倍数に設定された前記メモリ割り当てファイルシステム単位のサイズを伝送するデータ単位に使用して前記データ格納装置にデータを伝送し、
前記データ格納装置はデータ格納装置プロセッサを含み、
前記データ格納装置プロセッサは、前記データ格納装置に伝送されたデータを記入するために前記データ格納装置に前記設定されたメモリ割り当て単位のサイズと前記読み出し／書き込み動作単位のサイズとの間の関係を定義する倍数の前記読み出し／書き込み動作単位でプログラム動作を行うことを特徴とする請求項１９に記載のデータ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ処理システムに関し、更に詳しくはデータ格納装置を使用するデータ処理システムおよびその動作方法に関する。
【背景技術】
【０００２】
データ処理システムは、アクセスを容易にするためにコンピュータファイルを整理して格納するファイルシステムを使用する。ファイルシステムはデータの格納、整理、操作、検索、アクセス、そして復旧のため使用される圧縮データの集合のように見える。ファイルシステムはディスクファイルシステム、ネットワークファイルシステム、特殊目的ファイルシステムの三種類に分けられる。一般にディスクファイルシステムは、データ格納装置からファイルを格納するように構成される。一般にネットワークファイルシステムは、クライアントと遠距離ファイルアクセスプロトコル（ｒｅｍｏｔｅ  ｆｉｌｅ  ａｃｃｅｓｓ  ｐｒｏｔｏｃｏｌ）のために使用される。一般に特殊目的ファイルシステムは、ディスクファイルシステムやネットワークファイルシステムとは関連がない。例えば、特殊目的ファイルシステムは、ファイルがソフトウェアによって動的に配列されたシステムであり、コンピュータの処理（ｃｏｍｐｕｔｅｒ  ｐｒｏｃｅｓｓｅｓ）および／または一時ファイル領域の間の通信のために使用される。
【０００３】
上述したように、ディスクファイルシステムは、データ格納装置からファイルを格納するように構成される。図１は一般的なデータ処理システムのブロック図であり、図１に図示されたデータ処理システム１００は、ファイルを格納するためのデータ格納装置としてフラッシュメモリを使用する。図１を参照すれば、一般的なデータ処理システム１００は、ホスト１０５、メモリコントローラ１１０およびフラッシュメモリ１１５を備える。
【０００４】
メモリコントローラ１１０は、バッファメモリ１２０を備える。フラッシュメモリ１１５はセルアレイ１２５およびページバッファ１３０を備える。図１には図示されてないが、フラッシュメモリ１１５はデコーダ、データバッファまたは制御単位を含む。
【０００５】
メモリコントローラ１１０は、ホスト１０５からデータおよび書き込み命令を受信し、セルアレイ１２５にデータをプログラムするためにフラッシュメモリ１１５を制御する。又、メモリコントローラ１１０は、ホスト１０５から入力された読み出し命令に応じてセルアレイ１２５に格納されたデータを読み出すためにフラッシュメモリ１１５を制御する。
【０００６】
バッファメモリ１２０は、フラッシュメモリ１１５にプログラムされるデータとフラッシュメモリ１１５から読み出されたデータを一時格納する。バッファメモリ１２０は、メモリコントローラ１１０の制御によって一時格納されたデータをフラッシュメモリ１１５に伝送しホスト１０５に伝送する。
【０００７】
フラッシュメモリ１１５のセルアレイ１２５は複数のセルを含む。メモリセルは不揮発性であるので電源が切れても格納されたデータを維持する。ページバッファ１３０は、バッファとしてセルアレイの選択されたページに格納されるデータを格納し選択されたページから読み出されたデータを格納する。
【０００８】
フラッシュメモリ１１５のメモリセルは格納可能なデータビット数によってシングルレベルセル（ＳＬＣ）およびマルチレベルセル（ＭＬＣ）に分類される。シングルレベルセルはシングル−ビットデータを格納し、マルチレベルセルはマルチ−ビットデータを格納する。
【０００９】
一般にフラッシュメモリは、ブロックおよびページから構成される。各ブロックが３２ページから構成される場合、各ページは５１２バイトである。また、ブロックが６４ページから構成される場合、各ページは２０４８バイトである。一般に、各ページはエラー検出および／またはエラー訂正に使用される所定のバイトを有する。フラッシュメモリは、ページ単位で読み出しまたはプログラムされるが、消去はブロック単位で同時に行われる。フラッシュメモリは、読み出しおよび／または書き込み動作を行うためのメモリ単位のサイズとしてページのサイズを利用する。
【００１０】
図１に図示されたフラッシュメモリ１１５にファイルを格納するために使用されるファイルシステムは、ファイルを維持するために割り当てられるディスク領域の一番少ない論理量で定義されたメモリ割り当て単位を有する。例えば、ファイル割り当てテーブル（Ｆｉｌｅ  Ａｌｌｏｃａｔｉｏｎ  Ｔａｂｌｅ）として知られたＭＳ−ＤＯＳファイルシステムは、クラスタ（ｃｌｕｓｔｅｒ）と言うメモリ割り当てファイルシステム単位である。しかし、メモリ割り当てファイルシステム単位のサイズおよびフラッシュメモリに使用される読み出し／書き込み動作単位のサイズは合わなく、サイズが合わない場合、データ処理システムの性能は低下し、格納装置領域の利用効率が悪くなる。
【００１１】
図２Ａを参照すれば、クラスタのサイズは２ＫＢ（メモリ割り当てファイルシステム単位のサイズ）に設定され、ページのサイズは４ＫＢ（フラッシュメモリの読み出し／書き込み動作単位のサイズ）に設定される。また、クラスタの開始アドレスは、ページ開始アドレスから２ＫＢを差し引きして設定される。即ち、クラスタの開始アドレスとページの開始アドレスは一致しない。フラッシュメモリに記入するためのデータは、二つのクラスタデータである。この場合、二回のプログラム動作によって一番目のページに２ＫＢが記入され、二番目のページに２ＫＢが記入され、使用されてない２ＫＢのメモリ領域が両側のページに生じる。この理由は、一回のプログラム動作ごとに一つのページが許可され、一つのページに一つのクラスタだけが割り当てられるのでそれぞれのページに使用されてないメモリ領域が生じる。
【００１２】
図２Ｂを参照すれば、クラスタのサイズは４ＫＢに設定され、ページのサイズは４ＫＢに設定される。図２Ａと同様に、クラスタの開始アドレスは、ページ開始アドレスから２ＫＢを差し引きして設定される。即ち、クラスタの開始アドレスとページの開始アドレスは一致しない。結果的に、シングルクラスタは二回の分離されたプログラム動作を利用して二つのページに記入され、使用されてない２ＫＢのメモリが両側のページに生じる。上述した動作を参照すれば、メモリ領域の利用効率が落ちると共に、シングルのクラスタデータを記入するために二回のプログラム動作を使用するのでメモリ性能が低下する。
【００１３】
図３を参照すれば、他の例として性能の低下とメモリ領域の利用効率が落ちることが分かる。複数のクラスタは論理ページに配列され、同じ物理ページに論理部分を維持することが好ましい。クラスタ０は、フラッシュメモリのページ０に一番目に記入される。しかし、二番目のプログラム動作は、ページ０に対して実行されない。従って、クラスタ０およびクラスタ１を同じ物理ページに共に記入するために、クラスタ１がページ１に記入されると同時にクラスタ０がページ１に複写される。同様な動作の実行によって、クラスタ２およびクラスタ３がページ３に共に記入される。同じ物理ページに多様な論理ページのクラスタを記入するために倍数のプログラム動作が実行され、メモリの全てのページはそれぞれの論理ページ（複数のクラスタ）のために消耗される。
【発明の開示】
【発明が解決しようとする課題】
【００１４】
本発明の目的は、メモリの性能を高めることができるデータ処理システムおよびその動作方法を提供することである。
【００１５】
本発明の他の目的は、データ格納装置を効率的に利用可能なデータ処理システムおよびその動作方法を提供することである。
【課題を解決するための手段】
【００１６】
本発明の特徴によるデータ処理システムの動作方法は、データ格納装置においてデータ操作を行うために使用される読み出し／書き込み動作単位のサイズを取得する段階と、メモリ割り当てファイルシステム単位のサイズを前記読み出し／書き込み動作単位のサイズの倍数に設定する段階と、前記メモリ割り当てファイルシステム単位の開始アドレスを前記データ格納装置において使用される読み出し／書き込み動作単位の開始アドレスに設定する段階と、を含む。
【００１７】
この実施形態に於いて、前記読み出し／書き込み動作単位のサイズを取得する段階は、前記読み出し／書き込み動作単位のサイズを取得するためにホストから前記データ格納装置に要求信号を伝送する段階と、前記ホストにおいて前記データ格納装置から前記読み出し／書き込み動作単位のサイズを受け取る段階と、を含む。
【００１８】
この実施形態に於いて、前記読み出し／書き込み動作単位のサイズを取得する段階は、前記データ格納装置において前記ホストから伝送された前記要求信号に応じて前記データ格納装置の識別情報（ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）を読み出す段階と、前記データ格納装置の識別情報に基づいて前記読み出し／書き込み動作単位のサイズを決定する段階と、前記決定する段階において決定された前記読み出し／書き込み動作単位のサイズをホストに伝送する段階と、をさらに含む。
【００１９】
この実施形態に於いて、前記読み出し／書き込み動作単位のサイズを取得する段階は、前記データ格納装置において前記ホストから伝送された前記要求信号に応じて前記データ格納装置のレジスタから前記読み出し／書き込み動作単位のサイズを読み出す段階と、前記読み出す段階において読み出された前記読み出し／書き込み動作単位のサイズを前記ホストに伝送する段階と、をさらに含む。
【００２０】
この実施形態に於いて、前記読み出し／書き込み動作単位のサイズを取得する段階は、前記データ格納装置の識別情報を読み出す段階と、前記データ格納装置の識別情報に基づいて前記読み出し／書き込み動作単位のサイズを決定する段階と、を含む。
【００２１】
この実施形態に於いて、前記読み出し／書き込み動作単位のサイズを取得する段階は、前記データ格納装置と関連するレジスタから前記読み出し／書き込み動作単位のサイズを読み出す段階を含む。
【００２２】
この実施形態に於いて、前記設定されたメモリ割り当てファイルシステム単位のサイズをデータ格納装置にまたはデータ格納装置からデータ伝送単位に使用する段階をさらに含む。
【００２３】
この実施形態に於いて、データ格納装置からデータ操作を行うために使用される消去動作単位のサイズを取得する段階をさらに含む。
【００２４】
この実施形態に於いて、動作システム管理下のデータ格納装置においてメモリ管理動作を行うための動作単位を定義するために前記消去動作単位のサイズを使用する段階をさらに含む。
【００２５】
この実施形態に於いて、前記メモリ管理動作は、メモリのデフラグメント（ｄｅｆｒａｇｍｅｎｔａｔｉｏｎ）動作である。
【００２６】
この実施形態に於いて、設定された前記メモリ割り当てファイルシステム単位のサイズを前記データ格納装置へ伝送するデータ単位として使用する段階と、前記データ格納装置において伝送されたデータを記入するために前記データ格納装置にＮの読み出し／書き込み動作単位のプログラム動作を行う段階と、をさらに含み、前記Ｎは前記設定された前記メモリ割り当て単位のサイズと前記読み出し／書き込み動作単位のサイズとの間の関係を定義する倍数である。
【００２７】
この実施形態に於いて、前記データ格納装置は、ＳＳＤ（ｓｏｌｉｄ ｓｔａｔｅ ｄｒｉｖｅ）および／またはフラッシュメモリ装置である。
【００２８】
本発明の他の特徴によるデータ格納装置の動作方法は、データ格納装置においてデータ操作を行うために使用される少なくとも一つのパラメータを決定するためにホストから要求信号を受け取る段階と、前記少なくとも一つのパラメータを決定する段階と、前記ホストへ前記少なくとも一つのパラメータを伝送する段階と、を含む。
【００２９】
この実施形態に於いて、前記少なくとも一つのパラメータは、読み出し／書き込み動作単位のサイズおよび／または消去動作単位のサイズを含む。
【００３０】
この実施形態に於いて、前記少なくとも一つのパラメータを決定する段階は、前記データ格納装置の識別情報を読み出す段階と、前記データ格納装置の識別情報に基づいて前記少なくとも一つのパラメータと、を決定する段階を含む。
【００３１】
この実施形態に於いて、前記少なくとも一つのパラメータを決定する段階は、前記データ格納装置のレジスタから読み出し／書き込み動作単位のサイズおよび／または消去動作単位のサイズを読み出す段階を含む。
【００３２】
本発明の他の特徴によるデータ処理システムは、プロセッサおよび前記プロセッサに連結されたコンピュータの読み出し媒体を含み、前記コンピュータの読み出し媒体は、コンピュータの読み出しプログラムコードを含み、前記コンピュータの読み出しプログラムコードは、データ格納装置からデータ操作を行うために使用される読み出し／書き込み動作単位のサイズを取得する構成のコンピュータの読み出しプログラムコードと、メモリ割り当てファイルシステム単位のサイズを前記読み出し／書き込み動作単位のサイズの倍数に設定する構成のコンピュータの読み出しプログラムコードと、前記メモリ割り当てファイルシステム単位の開始アドレスを前記データ格納装置から使用される読み出し／書き込み動作単位の開始アドレスに設定するように構成されるコンピュータの読み出しプログラムコードと、を含む。
【００３３】
本発明の他の特徴によるデータ格納装置、プロセッサおよび前記プロセッサに連結されたコンピュータの読み出し媒体を含み、前記コンピュータの読み出し媒体はコンピュータの読み出しプログラムコードを含み、前記コンピュータの読み出しプログラムコードは、データ格納装置からデータ操作を行うために使用される少なくとも一つのパラメータを決定するためにホストから要求信号を受け取る構成のコンピュータの読み出しプログラムコードと、前記少なくとも一つのパラメータを決定するように構成されるコンピュータの読み出しプログラムコードと、前記少なくとも一つのパラメータをホストに提供する構成のコンピュータの読み出しプログラムコードとを含む。
【００３４】
本発明の他の特徴によるデータ処理システムは、データ格納装置および前記データ格納装置に連結されたホストを含み、前記ホストは前記データ格納装置からデータ操作を行うために使用される読み出し／書き込み動作単位のサイズを取得し、メモリ割り当てファイルシステム単位のサイズを前記読み出し／書き込み動作単位のサイズの倍数に設定し、前記メモリ割り当てファイルシステム単位の開始アドレスを前記データ格納装置から使用される読み出し／書き込み動作単位の開始アドレスに設定する構成のプロセッサを含む。
【００３５】
この実施形態に於いて、前記ホストのプロセッサは、前記読み出し／書き込み動作単位のサイズを要求するために前記データ格納装置に要求信号を伝送し、前記データ格納装置から前記読み出し／書き込み動作単位のサイズを入力される構成である。
【００３６】
この実施形態に於いて、前記データ格納装置はプロセッサを含み、前記データ格納装置のプロセッサは、前記ホストから入力された要求信号に応じて前記データ格納装置の識別情報を読み出し、前記データ格納装置の識別情報に基づいて前記読み出し／書き込み動作単位のサイズを決定し、前記決定された読み出し／書き込み動作単位のサイズをホストに伝送する構成である。
【００３７】
この実施形態に於いて、前記データ格納装置はプロセッサを含み、前記データ格納装置のプロセッサは、前記ホストから入力された要求信号に応じて前記データ格納装置のレジスタから前記読み出し／書き込み動作単位のサイズを読み出し、前記読み出された読み出し／書き込み動作単位のサイズをホストに伝送する構成である。
【００３８】
この実施形態に於いて、前記ホストのプロセッサは、前記データ格納装置の識別情報を読み出し、前記データ格納装置の識別情報に基づいて読み出し／書き込み動作単位のサイズを決定する構成である。
【００３９】
この実施形態に於いて、前記ホストのプロセッサは、前記データ格納装置に関連されたレジスタから前記読み出し／書き込み動作単位のサイズを読み出す構成である。
【００４０】
この実施形態に於いて、前記ホストプロセッサは、前記設定されたメモリ割り当てファイルシステム単位のサイズをデータ伝送単位に使用して前記データ格納装置にデータを伝送する構成であり、前記データ格納装置はプロセッサを含み、前記データ格納装置のプロセッサは前記データ格納装置に伝送されたデータを記入するために前記データ格納装置に前記設定されたメモリ割り当て単位のサイズと前記読み出し／書き込み動作単位のサイズとの間の関係を定義する倍数の読み出し／書き込み動作単位でプログラム動作を行う構成である。
【発明の効果】
【００４１】
本発明によるデータ処理システムはメモリの性能を高めて、データ格納装置の使用効率を改善する。
【発明を実施するための最良の形態】
【００４２】
以下、添付された図面を参照して本発明の実施形態に対して詳しく説明する。
【００４３】
本発明の実施形態によると、データ処理システムは、データ格納装置（例えば、フラッシュメモリ装置のページのサイズ）からデータ操作を行うために使用される読み出し／書き込み動作単位のサイズを取得し、取得された読み出し／書き込み動作単位のサイズによって動作することができるデータ格納装置を備える。多過ぎる読み出し／書き込み動作を減少させるために、そして格納装置でより効率的にメモリを利用するためにメモリ割り当てファイルシステム単位のサイズは読み出し／書き込み動作単位のサイズの倍数（ｍｕｌｔｉｐｌｅ）に設定され、メモリ割り当てファイルシステム単位の開始アドレスは格納装置の読み出し／書き込み動作単位の開始アドレスに設定される。
【００４４】
図４を参照すれば、データ処理システムは、インターフェース４１０を通じて連結されるホスト４００および格納装置４０５を備える。インターフェース４１０はＡＴＡ、ＳＡＴＡ、ＰＡＴＡ、ＵＳＢ、ＳＣＳＩ、ＥＳＤＩ、ＩＥＥＥ１３９４、ＩＤＥまたはカードインターフェースの様な標準化されたインターフェースである。ホスト４００はアドレス／データバス４２５を通じてメモリ４２０と通信するプロセッサ４１５を備える。プロセッサ４１５は、例えば、大量に生産して商業的に販売されるマイクロプロセッサ、または注文生産されるマイクロプロセッサである。メモリ４２０は、本発明の実施形態によるデータ処理システムを動作させるために使用されるソフトウェアおよびデータを含む一つまたはそれ以上のメモリ装置を示す。メモリ４２０はキャッシュ、ＲＯＭ、ＰＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュ、ＳＲＡＭおよびＤＲＡＭ型の装置等を含むが、それに限定されるものではない。
【００４５】
メモリ４２０は五つまたはそれ以上に分けられるソフトウェアおよび／またはデータを含む。例えば、図４に図示されたように、メモリ４２０は動作システム４２８、アプリケーション（等）４３０、ファイルシステム４３５、メモリマネージャ４４０および入／出力ドライバ等４４５を備える。動作システム４２８はホスト４００の動作を制御する。特に、動作システム４２８はホスト４００のソフトウェアおよび／またはハードウェアの資源等（ｒｅｓｏｕｒｃｅｓ）を管理し、プロセッサ４１５を通じてプログラムの実行をコントロールする。アプリケーション（等）４３０はホスト４００から処理される多様なアプリケーションのプログラムを示す。ファイルシステム４３５は、メモリ４２０および／または格納装置４０５の様な格納場所にコンピュータファイルおよび／またはデータを整理して格納するために使用されるシステムである。ファイルシステム４３５は、特別な動作システム４２８に基づいて動作する。メモリマネージャ４４０はメモリ４２０に行われるメモリアクセス動作および／または格納装置４０５の様な外部装置から行われる動作を管理する。入／出力ドライバ４４５はホスト４００と他の装置（例えば、格納装置４０５）、コンピュータシステム、またはネットワーク（例えば、インターネット）との間で情報を伝送するために使用される。
【００４６】
格納装置４０５はアドレス／データバス４６０を通じてメモリ４５５と通信するコントローラ４５０を備える。メモリ４５５は固体状態メモリ（ｓｏｌｉｄ  ｓｔａｔｅ  ｍｅｍｏｒｙ）、フラッシュメモリおよび／または光学メモリ（ｏｐｔｉｃａｌ  ｍｅｍｏｒｙ）の様な多様な形態のメモリであるが、それに限定されるものではない。従って、格納装置４０５は固体状態メモリ（ＳＳＤ）装置、フラッシュメモリ装置、ハードドライブ、ＣＤ／ＤＶＤである。コントローラ４５０はアドレス／データバス４７５を通じてローカルメモリ４７０と通信するプロセッサ４６５を備える。プロセッサ４６５は、例えば大量に生産して商業的に販売されるマイクロプロセッサ、または注文生産されるマイクロプロセッサである。ローカルメモリ４７０は、本発明の実施形態によるデータ処理システムを動作させるために使用されるソフトウェアおよびデータを含む一つまたはそれ以上のメモリ装置を示す。ローカルメモリ４７０はキャッシュ、ＲＯＭ、ＰＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュ、ＳＲＡＭおよびＤＲＡＭ型の装置を含むが、それに限定されるものではない。
【００４７】
図４に図示されたように、ローカルメモリ４７０は三つまたはそれ以上に分けられるソフトウェアおよび／またはデータを含む。例えば、図４に図示されたように、ローカルメモリ４７０は動作システム４７８、フラッシュ変換レイヤ（ＦＴＬ、Ｆｌａｓｈ  Ｔｒａｎｓｌａｔｉｏｎ  Ｌａｙｅｒ）モジュール４８０、データ４８５を備える。動作システム４７８は格納装置４０５の動作を制御する。特に、動作システム４７８は格納装置４０５のソフトウェアおよび／またはハードウェアの資源（ｒｅｓｏｕｒｃｅｓ）を管理し、プロセッサ４６５を通じてプログラムの実行をコントロールする。ＦＴＬモジュール４８０はフラッシュメモリ装置に利用される。上述したように、フラッシュチップはブロック単位で消去される。フラッシュメモリの一般的な消去動作の寿命はブロック当たり１００、０００回程度である。フラッシュメモリのある部分が他の部分より多く使用されて劣化されるのを避けるためにフラッシュメモリ装置は消去サイクルを分散するように構成される。これをウェアレべリング（ｗｅａｒ  ｌｅｖｅｌｉｎｇ）と言う。ファイルシステム４３５がウェアレべリングのためにメモリ４５５のファイル／データの実際の位置を計算しないようにするためにＦＴＬモジュール４８０はファイルシステム４３５およびメモリ４５５のファイル／データのインターフェースとして使用される。
【００４８】
図４は、本発明の実施形態によるデータ処理システムのソフトウェアの構造を示しているが、本発明は前記構造に限定されるものではなく、図示された動作を行うために他の構造を利用しても良い。
【００４９】
既に図４から説明した装置およびシステムの動作を行うためのコンピュータプログラムコードはＪＡＶＡ（登録商標）、ＣまたはＣ++のようなハイレベルプログラム言語で記入される。なお、本発明の具体化された動作の実行のためにコンピュータプログラムコードは、他のプログラム言語で記入されても良い。モジュールおよびルーチンは性能向上、メモリの使用効率を向上するためにアセンブリ言語（ａｓｓｅｍｂｌｙ  ｌａｎｇｕａｇｅ）またはイーブンマイクロ−コード（ｅｖｅｎ  ｍｉｃｒｏ−ｃｏｄｅ）で記入される。なお、あるプログラムモジュールの機能は、不連続的なハードウェアの構成、ＡＳＩＣｓ（ａｐｐｌｉｃａｔｉｏｎ  ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔｓ）またはプログラムされたデジタル信号のプロセッサやマイクロコントローラを使用して行われる。
【００５０】
続いて、本発明の実施形態による方法、システム、装置、および／またはコンピュータプログラム製品のメッセージフロー（ｍｅｓｓａｇｅ  ｆｌｏｗ）、フローチャートおよびブロック図に関して説明する。メッセージフロー、フローチャートおよびブロック図は、データ格納装置を含むデータ処理システムの例示的な動作を示す。それぞれのメッセージフロー、フローチャートおよびブロック図の説明、そしてメッセージフローでメッセージ／ブロック、フローチャートおよびブロック図の説明の結合は、コンピュータプログラム命令および／またはハードウェア動作によって行われる。コンピュータプログラム命令は、一般目的コンピュータ、特殊目的コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供されて、プロセッサによってメッセージフロー、フローチャートおよびブロック図の特別な機能が行われる。
【００５１】
コンピュータプログラム命令はコンピュータメモリに格納され、コンピュータまたは他のプログラム可能なデータ処理装置が特別な方式で機能するように指示する。前記命令はメッセージフロー、フローチャートおよびブロック図の特別な機能を行う。
【００５２】
コンピュータプログラム命令は、コンピュータまたは他のプログラム可能なデータ処理装置から行われる直列の動作ステップを引き起こすためにコンピュータまたは他のプログラム可能なデータ処理装置にロードされる。
【００５３】
図５乃至図７は図４に図示された本発明の実施形態によるデータ処理システムの動作を説明するための順序図である。
【００５４】
図５を参照すれば、ブロック５００で、ホスト４００は読み出し／書き込み動作単位のサイズ情報を得るために格納装置４０５に要求信号を伝送する。要求信号は消去動作単位のサイズ情報を得るための要求信号を含む。ブロック５０５で、格納装置４０５はホスト４００から伝送された要求信号に応じて読み出し／書き込み動作単位のサイズを決定する。本発明の実施形態による格納装置４０５のコントローラ４５０は格納装置の識別情報（ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）を読み出し、格納装置の識別情報に基づいて読み出し／書き込み動作のサイズを決定することによって読み出し／書き込み動作単位のサイズを決定する。本発明の他の実施形態による格納装置４０５のコントローラ４５０は格納装置４０５のレジスタから読み出し／書き込み動作単位のサイズを読み出す。
【００５５】
上述した本発明の実施形態に於いて、図５には図示されてないが次のように説明することができる。
【００５６】
格納装置４０５はデータ格納装置からデータ操作を行うために使用される少なくとも一つのパラメータを決定するためにホスト４００から要求信号を受け取る。格納装置４０５はホストから入力された要求信号に応じて少なくとも一つのパラメータを決定する。少なくとも一つのパラメータは読み出し／書き込み動作単位のサイズおよび消去動作単位のサイズを含む。
【００５７】
少なくとも一つのパラメータを決定するために本発明の実施形態による格納装置４０５のコントローラ４５０は、格納装置の識別情報を読み出し、格納装置の識別情報に基づいて少なくとも一つのパラメータを決定する。本発明の他の実施形態による格納装置４０５のコントローラ４５０は、少なくとも一つのパラメータを決定するために格納装置４０５のレジスタから読み出し／書き込み動作単位のサイズを読み出す。
【００５８】
ブロック５１０で、格納装置４０５はホスト４００に読み出し／書き込み動作単位のサイズを伝送する。
【００５９】
ブロック５１５で、メモリ割り当てファイルシステム４３５の単位のサイズは読み出し／書き込み動作単位のサイズの倍数に設定される。ブロック５２０で、ホスト４００はメモリ割り当てファイルシステム４３５の単位の開始アドレスを格納装置４０５に使用された読み出し／書き込み動作単位の開始アドレスに設定する。メモリ割り当てファイルシステム単位のサイズを読み出し／書き込み動作単位のサイズの倍数に設定し、メモリ割り当てファイルシステム単位の開始アドレスを読み出し／書き込み動作単位の開始アドレスに設定することによってクラスタの開始アドレスは、ページの開始アドレスと一致し、クラスタの大きさがページの大きさと一致するようになる。従って格納装置４０５はさらに効率的に使用可能であり、要らないプログラミング動作が減少される。
【００６０】
設定されたメモリ割り当てファイルシステム単位のサイズは、ホスト４００から格納装置４０５に、またはデータ格納装置４０５からホスト４００に、データを伝送する場合データ伝送単位に使用される。
【００６１】
図６を参照して本発明の実施形態によるホスト４００から格納装置４０５に書き込む動作を説明すると、ブロック６００で、ホスト４００は図５のブロック５１５から設定されたメモリ割り当て単位のサイズをデータ伝送の単位に使用して格納装置４０５にデータを伝送する。ブロック６０５で、格納装置４０５は伝送されたデータを記入するためにメモリ４５５にＮの読み出し／書き込み動作単位のプログラム動作を行う。Ｎは設定されたメモリ割り当ての単位のサイズと読み出し／書き込み動作単位のサイズとの間の関係を定義する倍数である。
【００６２】
多様なメモリ動作が格納装置に行われるとき、自由領域としてブロックを形成するためにガベージコレクション（ｇａｒｂａｇｅ  ｃｏｌｌｅｃｔｉｏｎ）を行うことが好ましい。従って、図７を参照すれば、ファイルシステム４３５は動作システム４７８の管理の下に格納装置４０５から行われるガベージコレクション動作の様なメモリ管理動作を初期化するために図５のブロック５００から取得された消去動作単位のサイズを使用する。上述したメモリ管理動作はメモリのデフラグメント（ｄｅｆｒａｇｍｅｎｔａｔｉｏｎ）動作である。
【００６３】
以上、図面と明細書によって最適の実施形態を説明した。ここに特定な用語が使用されたが、これは本発明を説明するためのものであり、意味限定や特許請求範囲に記載された本発明の範囲を制限するものではない。従って、本発明の技術的な保護範囲は特許請求範囲の技術的な思想によって決められるべきである。
【図面の簡単な説明】
【００６４】
【図１】一般的なデータ処理システムのブロック図である。
【図２Ａ】一般的なメモリ割り当てサイズのファイルシステム単位と読み出し／書き込み動作単位のサイズのデータ格納単位との間の関係を説明するブロック図である。
【図２Ｂ】一般的なメモリ割り当てサイズのファイルシステム単位と読み出し／書き込み動作単位のサイズのデータ格納単位との間の関係を説明するブロック図である。
【図３】一般的なデータ格納システムに於いて、論理ページのプログラミングを説明するためのブロック図である。
【図４】本発明の実施形態によるデータ処理システムを説明するためのブロック図である。
【図５】図４に図示された本発明の実施形態によるデータ処理システムの動作を説明するための順序図である。
【図６】図４に図示された本発明の実施形態によるデータ処理システムの動作を説明するための順序図である。
【図７】図４に図示された本発明の実施形態によるデータ処理システムの動作を説明するための順序図である。
【符号の説明】
【００６５】
４００  ホスト、
４１５  プロセッサ、
４２０  メモリ、
４２８  動作システム、
４３０  アプリケーション（等）、
４３５  ファイルシステム、
４４０  メモリマネージャ、
４４５  入／出力ドライバ等、
４０５  格納装置、
４５０  コントローラ、
４６５  プロセッサ、
４７０  ローカルメモリ、
４７８  動作システム、
４８０  ＦＴＬ、
４８５  データ、
４５５  メモリ。
【図１】
2008198206.tif 000003
【図２Ａ】
2008198206.tif 000004
【図２Ｂ】
2008198206.tif 000005
【図３】
2008198206.tif 000006
【図４】
2008198206.tif 000007
【図５】
2008198206.tif 000008
【図６】
2008198206.tif 000009
【図７】
2008198206.tif 000010