(57)【要約】  本発明の実施形態は、フラッシュメモリデバイスのアクセス効率を最適化するために、フラッシュメモリデバイスにアクセスするための方法および装置を提供している。方法は、ストレージコントローラによって、アクセス要求を受信するステップと、ストレージコントローラによって、アクセス対象のストレージエリアの履歴アクセス情報を取得するステップであって、履歴アクセス情報は、アクセス対象のストレージエリアの履歴アクセスタイプを含み、フラッシュメモリデバイスに対するアクセスのアクセスタイプは、書込み動作と読込み動作とを含む、ステップと、ストレージコントローラによって、履歴アクセス情報およびアクセス要求のアクセスタイプに従ってアクセス対象のストレージエリアに対するアクセス動作を行うステップとを含む。データは、リードオンリーデータ、ライトオンリーデータ、およびクロスアクセスデータの3つのタイプに分類され、データの3つのタイプは、履歴アクセス情報および現在のアクセス要求のアクセスタイプを使用して互いに区別され、それによって、リードオンリーデータの読込み速度を増大しており、ライトオンリーデータの書込み速度を増大させ、フラッシュメモリデバイスの総合的なアクセス効率を改善している。
2019512832.tif 000002
【特許請求の範囲】
【請求項１】
フラッシュメモリデバイスにアクセスするための方法であって、前記フラッシュメモリデバイスに対するアクセスのタイプは、書込み動作と読込み動作とを含み、前記書込み動作の形式は、高速書込みと低速書込みとを含み、前記方法は、
アクセス対象のストレージエリアのための第1の書込みアクセス要求を受信するステップと、
前記アクセス対象のストレージエリアの履歴アクセスタイプを取得するステップであって、前記履歴アクセスタイプは、前記第1の書込みアクセス要求前の前記アクセス対象のストレージエリアに対するアクセスのアクセスタイプである、ステップと、
前記アクセス対象のストレージエリアの前記履歴アクセスタイプが書込み動作である場合には、前記第1の書込みアクセス要求の書込み対象のデータを前記高速書込みの形式で前記アクセス対象のストレージエリアに書き込むステップと
を含む、方法。
【請求項２】
前記アクセス対象のストレージエリアの履歴アクセスタイプを取得するステップは、
前記アクセス対象のストレージエリアのものであるとともに履歴アクセスレコードに記録されている前記履歴アクセスタイプを検索するステップを含む、請求項1に記載の方法。
【請求項３】
前記アクセス対象のストレージエリアのための第1の書込みアクセス要求を受信するステップの前に、前記方法は、
前記アクセス対象のストレージエリアのための第2の書込みアクセス要求を受信するステップであって、前記第2の書込みアクセス要求は、前記アクセス対象のストレージエリアのための最初の書込みアクセス要求である、ステップと、
前記第2の書込みアクセス要求の書込み対象のデータを前記アクセス対象のストレージエリアに書き込み、前記アクセス対象のストレージエリアの前記履歴アクセスタイプを前記履歴アクセスレコードに記録するステップと
をさらに含む、請求項2に記載の方法。
【請求項４】
前記第2の書込みアクセス要求の書込み対象のデータを前記アクセス対象のストレージエリアに書き込むステップは、
前記第2の書込みアクセス要求の前記書込み対象のデータを前記低速書込みの形式で前記アクセス対象のストレージエリアに書き込むステップを含む、請求項3に記載の方法。
【請求項５】
前記方法は、
前記アクセス対象のストレージエリア内の前記データが無効であると決定された場合には、前記アクセス対象のストレージエリアの前記記録されている履歴アクセスタイプを削除するステップをさらに含む、請求項2から4のいずれか一項に記載の方法。
【請求項６】
前記方法は、
前記アクセス対象のストレージエリアの前記履歴アクセスタイプが書込み動作ではない場合には、前記第1の書込みアクセス要求の前記書込み対象のデータを前記低速書込みの前記形式で前記アクセス対象のストレージエリアに書き込み、前記アクセス対象のストレージエリアの前記履歴アクセスタイプを更新するステップをさらに含む、請求項1から5のいずれか一項に記載の方法。
【請求項７】
前記書込み動作の前記形式は、通常書込みをさらに含み、前記通常書込みの書込み速度は、前記低速書込みの書込み速度より大きく前記高速書込みの書込み速度未満であり、
前記方法は、
前記アクセス対象のストレージエリアの前記履歴アクセスタイプが書込み動作ではない場合には、前記第1の書込みアクセス要求の前記書込み対象のデータを前記通常書込みの形式で前記アクセス対象のストレージエリアに書き込み、前記アクセス対象のストレージエリアの前記履歴アクセスタイプを更新するステップをさらに含む、請求項1から5のいずれか一項に記載の方法。
【請求項８】
フラッシュメモリデバイスにアクセスするための方法であって、フラッシュメモリデバイスに対するアクセスのタイプは、書込み動作と読込み動作とを含み、前記書込み動作の形式は、高速書込みと低速書込みとを含み、前記読込み動作の形式は、高速読込みと低速読込みとを含み、前記方法は、
アクセス対象のストレージエリアのための読込みアクセス要求を受信するステップと、
前記高速読込みの形式で前記アクセス対象のストレージエリアに対する読込み動作を行うステップと、
前記アクセス対象のストレージエリアの履歴アクセスタイプを取得するステップであって、前記履歴アクセスタイプは、前記読込みアクセス要求前の前記アクセス対象のストレージエリアに対するアクセスのアクセスタイプである、ステップと、
前記高速読込みを使用する復号が失敗し前記履歴アクセスタイプが読込み動作である場合には、前記アクセス対象のストレージエリアに記憶されているデータを前記低速書込みの形式で前記アクセス対象のストレージエリアに再書込みするステップと
を含む、方法。
【請求項９】
前記アクセス対象のストレージエリアの履歴アクセスタイプを取得するステップは、
前記アクセス対象のストレージエリアのものであるとともに履歴アクセスレコードに記録されている前記履歴アクセスタイプを検索するステップを含む、請求項8に記載の方法。
【請求項１０】
前記アクセス対象のストレージエリアのための読込みアクセス要求を受信するステップの前に、前記方法は、
前記アクセス対象のストレージエリアのための第2の書込みアクセス要求を受信するステップであって、前記第2の書込みアクセス要求は、前記アクセス対象のストレージエリアのための最初の書込みアクセス要求である、ステップと、
前記第2の書込みアクセス要求の書込み対象のデータを前記アクセス対象のストレージエリアに書き込み、前記アクセス対象のストレージエリアの前記履歴アクセスタイプを前記履歴アクセスレコードに記録するステップと
をさらに含む、請求項9に記載の方法。
【請求項１１】
前記第2の書込みアクセス要求の書込み対象のデータを前記アクセス対象のストレージエリアに書き込むステップは、
前記第2の書込みアクセス要求の前記書込み対象のデータを前記低速書込みの前記形式で前記アクセス対象のストレージエリアに書き込むステップを含む、請求項10に記載の方法。
【請求項１２】
前記方法は、
前記アクセス対象のストレージエリア内の前記データが無効であると決定された場合には、前記アクセス対象のストレージエリアの前記記録されている履歴アクセスタイプを削除するステップをさらに含む、請求項9から11のいずれか一項に記載の方法。
【請求項１３】
前記方法は、
前記高速読込みを使用する復号が失敗した場合には、前記低速読込みの形式で前記アクセス対象のストレージエリアに対する読込み動作を行うステップをさらに含む、請求項8から12のいずれか一項に記載の方法。
【請求項１４】
前記読込み動作の前記形式は、通常読込みをさらに含み、前記通常読込みの読込み速度は、前記低速読込みの読込み速度より大きく前記高速読込みの読込み速度未満であり、
前記方法は、
前記高速読込みを使用する復号が失敗した場合には、前記通常読込みの形式で前記アクセス対象のストレージエリアに対する読込み動作を行うステップをさらに含む、請求項8から12のいずれか一項に記載の方法。
【請求項１５】
前記方法は、
前記履歴アクセスタイプが読込み動作ではない場合には、前記履歴アクセスタイプを更新するステップをさらに含む、請求項8から14のいずれか一項に記載の方法。
【請求項１６】
前記アクセス対象のストレージエリアに記憶されているデータを前記低速書込みの形式で前記アクセス対象のストレージエリアに再書込みするステップの前に、前記方法は、
前記アクセス対象のストレージエリアのアドレス情報を再書込みキューに保存するステップと、
前記再書込みキューに保存されている前記アドレス情報に従って前記アクセス対象のストレージエリアから、前記アクセス対象のストレージエリアに記憶されている前記データを読み込むステップと
をさらに含む、請求項8から15のいずれか一項に記載の方法。
【請求項１７】
フラッシュメモリデバイスにアクセスするための方法であって、前記フラッシュメモリデバイスに対するアクセスのタイプは、書込み動作と読込み動作とを含み、前記書込み動作の形式は、高速書込みと低速書込みとを含み、前記方法は、
アクセス対象のストレージエリアのための読込みアクセス要求を受信するステップと、
前記アクセス対象のストレージエリアの履歴アクセス情報を取得するステップであって、前記履歴アクセス情報は、前記アクセス対象のストレージエリアの履歴アクセスタイプと書込み速度マークとを含み、前記書込み速度マークは、前記アクセス対象のストレージエリアに記憶されているデータに対する書込み動作の形式を示すために使用され、前記履歴アクセスタイプは、前記読込みアクセス要求前の前記アクセス対象のストレージエリアに対するアクセスのアクセスタイプである、ステップと、
前記履歴アクセスタイプが読込み動作であるとともに前記書込み速度マークが前記低速書込みを示していない場合には、前記アクセス対象のストレージエリアに記憶されている前記データを前記低速書込みの形式で前記アクセス対象のストレージエリアに再書込みするステップと
を含む、方法。
【請求項１８】
前記アクセス対象のストレージエリアの履歴アクセス情報を取得するステップは、
前記アクセス対象のストレージエリアのものであるとともに履歴アクセスレコードに記録されている前記履歴アクセス情報を検索するステップを含む、請求項17に記載の方法。
【請求項１９】
前記アクセス対象のストレージエリアのための読込みアクセス要求を受信するステップの前に、前記方法は、
前記アクセス対象のストレージエリアのための第2の書込みアクセス要求を受信するステップであって、前記第2の書込みアクセス要求は、前記アクセス対象のストレージエリアのための最初の書込みアクセス要求である、ステップと、
前記第2の書込みアクセス要求の書込み対象のデータを前記アクセス対象のストレージエリアに書き込み、前記アクセス対象のストレージエリアの前記履歴アクセス情報を前記履歴アクセスレコードに記録するステップと
をさらに含む、請求項18に記載の方法。
【請求項２０】
前記第2の書込みアクセス要求の書込み対象のデータを前記アクセス対象のストレージエリアに書き込むステップは、
前記第2の書込みアクセス要求の前記書込み対象のデータを前記低速書込みの前記形式で前記アクセス対象のストレージエリアに書き込むステップを含む、請求項19に記載の方法。
【請求項２１】
前記方法は、
前記アクセス対象のストレージエリア内の前記データが無効であると決定された場合には、前記アクセス対象のストレージエリアの前記記録されている履歴アクセス情報を削除するステップをさらに含む、請求項18から20のいずれか一項に記載の方法。
【請求項２２】
前記アクセス対象のストレージエリアに記憶されている前記データを前記低速書込みの形式で前記アクセス対象のストレージエリアに再書込みするステップの後に、前記方法は、
前記書込み速度マークを前記低速書込みに更新するステップをさらに含む、請求項17から21のいずれか一項に記載の方法。
【請求項２３】
前記読込み動作は、高速読込みと低速読込みとを含み、前記アクセス対象のストレージエリアの履歴アクセス情報を取得するステップの後に、前記方法は、
前記書込み速度マークに従って前記アクセス対象のストレージエリアに対する読込み動作を行うステップであって、前記高速書込みは、前記低速読込みに対応し、前記低速書込みは、前記高速読込みに対応する、ステップをさらに含む、請求項17から22のいずれか一項に記載の方法。
【請求項２４】
前記アクセス対象のストレージエリアに記憶されている前記データを前記低速書込みの形式で前記アクセス対象のストレージエリアに再書込みするステップの前に、前記方法は、
前記アクセス対象のストレージエリアのアドレス情報を再書込みキューに保存するステップと、
前記再書込みキューに保存されている前記アドレス情報に従って前記アクセス対象のストレージエリアから、前記アクセス対象のストレージエリアに記憶されている前記データを読み込むステップと
をさらに含む、請求項17から23のいずれか一項に記載の方法。
【請求項２５】
フラッシュメモリデバイスにアクセスするための装置であって、前記フラッシュメモリデバイスに対するアクセスのタイプは、書込み動作と読込み動作とを含み、前記書込み動作の形式は、高速書込みと低速書込みとを含み、前記装置は、
アクセス対象のストレージエリアのための第1の書込みアクセス要求を受信するように構成される、受信ユニットと、
前記アクセス対象のストレージエリアの履歴アクセスタイプを取得するように構成される、取得ユニットであって、前記履歴アクセスタイプは、前記第1の書込みアクセス要求前の前記アクセス対象のストレージエリアに対するアクセスのアクセスタイプである、取得ユニットと、
前記アクセス対象のストレージエリアの前記履歴アクセスタイプが書込み動作である場合には、前記第1の書込みアクセス要求の書込み対象のデータを前記高速書込みの形式で前記アクセス対象のストレージエリアに書き込むように構成される、書き込みユニットと
を含む、装置。
【請求項２６】
前記取得ユニットが前記アクセス対象のストレージエリアの履歴アクセスタイプを取得するように構成されることは、
前記取得ユニットが前記アクセス対象のストレージエリアのものであるとともに履歴アクセスレコードに記録されている前記履歴アクセスタイプを検索するように構成されることを含む、請求項25に記載の装置。
【請求項２７】
前記アクセス対象のストレージエリアのための前記第1の書込みアクセス要求を受信する前に、前記受信ユニットは、前記アクセス対象のストレージエリアのための第2の書込みアクセス要求を受信するようにさらに構成され、前記第2の書込みアクセス要求は、前記アクセス対象のストレージエリアのための最初の書込みアクセス要求であり、
前記書き込みユニットは、前記第2の書込みアクセス要求の書込み対象のデータを前記アクセス対象のストレージエリアに書き込み、前記アクセス対象のストレージエリアの前記履歴アクセスタイプを前記履歴アクセスレコードに記録するようにさらに構成される、請求項26に記載の装置。
【請求項２８】
前記書き込みユニットが前記第2の書込みアクセス要求の書込み対象のデータを前記アクセス対象のストレージエリアに書き込むように構成されることは、
前記書き込みユニットが前記第2の書込みアクセス要求の前記書込み対象のデータを前記低速書込みの形式で前記アクセス対象のストレージエリアに書き込むように構成されることを含む、請求項27に記載の装置。
【請求項２９】
前記装置は、削除ユニットをさらに含み、
前記アクセス対象のストレージエリア内の前記データが無効であると決定された場合には、前記削除ユニットは、前記アクセス対象のストレージエリアの前記記録されている履歴アクセスタイプを削除するように構成される、請求項26から28のいずれか一項に記載の装置。
【請求項３０】
前記書き込みユニットは、前記アクセス対象のストレージエリアの前記履歴アクセスタイプが書込み動作ではない場合には、前記第1の書込みアクセス要求の前記書込み対象のデータを前記低速書込みの前記形式で前記アクセス対象のストレージエリアに書き込み、前記アクセス対象のストレージエリアの前記履歴アクセスタイプを更新するようにさらに構成される、請求項25から29のいずれか一項に記載の装置。
【請求項３１】
前記書込み動作の前記形式は、通常書込みをさらに含み、前記通常書込みの書込み速度は、前記低速書込みの書込み速度より大きく前記高速書込みの書込み速度未満であり、
前記書き込みユニットは、前記アクセス対象のストレージエリアの前記履歴アクセスタイプが書込み動作ではない場合には、前記第1の書込みアクセス要求の前記書込み対象のデータを前記通常書込みの形式で前記アクセス対象のストレージエリアに書き込み、前記アクセス対象のストレージエリアの前記履歴アクセスタイプを更新するようにさらに構成される、請求項25から29のいずれか一項に記載の装置。
【請求項３２】
フラッシュメモリデバイスにアクセスするための装置であって、前記フラッシュメモリデバイスに対するアクセスのタイプは、書込み動作と読込み動作とを含み、前記書込み動作の形式は、高速書込みと低速書込みとを含み、前記読込み動作の形式は、高速読込みと低速読込みとを含み、前記装置は、
アクセス対象のストレージエリアのための読込みアクセス要求を受信するように構成される、受信ユニットと、
前記高速読込みの形式で前記アクセス対象のストレージエリアに対する読込み動作を行うように構成される、読み込みユニットと、
前記アクセス対象のストレージエリアの履歴アクセスタイプを取得するように構成される、取得ユニットであって、前記履歴アクセスタイプは、前記読込みアクセス要求前の前記アクセス対象のストレージエリアに対するアクセスのアクセスタイプである、取得ユニットと、
前記高速読込みを使用する復号が失敗し前記履歴アクセスタイプが読込み動作である場合には、前記アクセス対象のストレージエリアに記憶されているデータを前記低速書込みの形式で前記アクセス対象のストレージエリアに再書込みするように構成される、書き込みユニットと
を含む、装置。
【請求項３３】
前記取得ユニットが前記アクセス対象のストレージエリアの履歴アクセスタイプを取得するように構成されることは、
前記取得ユニットが前記アクセス対象のストレージエリアのものであるとともに履歴アクセスレコードに記録されている前記履歴アクセスタイプを検索するように構成されることを含む、請求項32に記載の装置。
【請求項３４】
前記アクセス対象のストレージエリアのための前記読込みアクセス要求を受信する前に、前記受信ユニットは、前記アクセス対象のストレージエリアのための第2の書込みアクセス要求を受信するようにさらに構成され、前記第2の書込みアクセス要求は、前記アクセス対象のストレージエリアのための最初の書込みアクセス要求であり、
前記書き込みユニットは、前記第2の書込みアクセス要求の書込み対象のデータを前記アクセス対象のストレージエリアに書き込み、前記アクセス対象のストレージエリアの前記履歴アクセスタイプを前記履歴アクセスレコードに記録するようにさらに構成される、請求項33に記載の装置。
【請求項３５】
前記書き込みユニットが前記第2の書込みアクセス要求の書込み対象のデータを前記アクセス対象のストレージエリアに書き込むように構成されることは、
前記書き込みユニットが前記第2の書込みアクセス要求の前記書込み対象のデータを前記低速書込みの前記形式で前記アクセス対象のストレージエリアに書き込むように構成されることを含む、請求項34に記載の装置。
【請求項３６】
前記装置は、削除ユニットをさらに含み、
前記アクセス対象のストレージエリア内の前記データが無効であると決定された場合には、前記削除ユニットは、前記アクセス対象のストレージエリアの前記記録されている履歴アクセスタイプを削除するように構成される、請求項33から35のいずれか一項に記載の装置。
【請求項３７】
前記読み込みユニットは、前記高速読込みを使用する復号が失敗した場合には、前記低速読込みの形式で前記アクセス対象のストレージエリアに対する読込み動作を行うようにさらに構成される、請求項32から36のいずれか一項に記載の装置。
【請求項３８】
前記読込み動作の前記形式は、通常読込みをさらに含み、前記通常読込みの読込み速度は、前記低速読込みの読込み速度より大きく前記高速読込みの読込み速度未満であり、
前記読み込みユニットは、前記高速読込みを使用する復号が失敗した場合には、前記通常読込みの形式で前記アクセス対象のストレージエリアに対する読込み動作を行うようにさらに構成される、請求項32から36のいずれか一項に記載の装置。
【請求項３９】
前記書き込みユニットは、前記履歴アクセスタイプが読込み動作ではない場合には、前記履歴アクセスタイプを更新するようにさらに構成される、請求項32から38のいずれか一項に記載の装置。
【請求項４０】
前記アクセス対象のストレージエリアに記憶されている前記データを前記低速書込みの前記形式で前記アクセス対象のストレージエリアに再書込みする前に、前記書き込みユニットは、前記アクセス対象のストレージエリアのアドレス情報を再書込みキューに保存するようにさらに構成され、
前記読み込みユニットは、前記再書込みキューに保存されている前記アドレス情報に従って前記アクセス対象のストレージエリアから、前記アクセス対象のストレージエリアに記憶されている前記データを読み込むようにさらに構成される、請求項32から39のいずれか一項に記載の装置。
【請求項４１】
フラッシュメモリデバイスにアクセスするための装置であって、フラッシュメモリデバイスに対するアクセスのタイプは、書込み動作と読込み動作とを含み、前記書込み動作の形式は、高速書込みと低速書込みとを含み、前記装置は、
アクセス対象のストレージエリアのための読込みアクセス要求を受信するように構成される、受信ユニットと、
前記アクセス対象のストレージエリアの履歴アクセス情報を取得するように構成される、取得ユニットであって、前記履歴アクセス情報は、前記アクセス対象のストレージエリアの履歴アクセスタイプと書込み速度マークとを含み、前記書込み速度マークは、前記アクセス対象のストレージエリアに記憶されているデータに対する書込み動作の形式を示すために使用され、前記履歴アクセスタイプは、前記読込みアクセス要求前の前記アクセス対象のストレージエリアに対するアクセスのアクセスタイプである、取得ユニットと、
前記履歴アクセスタイプが読込み動作であるとともに前記書込み速度マークが前記低速書込みを示していない場合には、前記アクセス対象のストレージエリアに記憶されている前記データを前記低速書込みの形式で前記アクセス対象のストレージエリアに再書込みするように構成される、書き込みユニットと
を含む、装置。
【請求項４２】
前記取得ユニットが前記アクセス対象のストレージエリアの履歴アクセス情報を取得するように構成されることは、
前記取得ユニットが前記アクセス対象のストレージエリアのものであるとともに履歴アクセスレコードに記録されている前記履歴アクセス情報を検索するように構成されることを含む、請求項41に記載の装置。
【請求項４３】
前記アクセス対象のストレージエリアのための前記読込みアクセス要求を受信する前に、前記受信ユニットは、前記アクセス対象のストレージエリアのための第2の書込みアクセス要求を受信するようにさらに構成され、前記第2の書込みアクセス要求は、前記アクセス対象のストレージエリアのための最初の書込みアクセス要求であり、
前記書き込みユニットは、前記第2の書込みアクセス要求の書込み対象のデータを前記アクセス対象のストレージエリアに書き込み、前記アクセス対象のストレージエリアの前記履歴アクセス情報を前記履歴アクセスレコードに記録するようにさらに構成される、請求項42に記載の装置。
【請求項４４】
前記書き込みユニットが前記第2の書込みアクセス要求の書込み対象のデータを前記アクセス対象のストレージエリアに書き込むように構成されることは、
前記書き込みユニットが前記第2の書込みアクセス要求の前記書込み対象のデータを前記低速書込みの前記形式で前記アクセス対象のストレージエリアに書き込むように構成されることを含む、請求項43に記載の装置。
【請求項４５】
前記装置は、削除ユニットをさらに含み、
前記アクセス対象のストレージエリア内の前記データが無効であると決定された場合には、前記削除ユニットは、前記アクセス対象のストレージエリアの前記記録されている履歴アクセス情報を削除するように構成される、請求項42から44のいずれか一項に記載の装置。
【請求項４６】
前記アクセス対象のストレージエリアに記憶されている前記データを前記低速書込みの前記形式で前記アクセス対象のストレージエリアに再書込みした後に、前記書き込みユニットは、前記書込み速度マークを前記低速書込みに更新するようにさらに構成される、請求項41から45のいずれか一項に記載の装置。
【請求項４７】
前記読込み動作は、高速読込みと低速読込みとを含み、前記装置は、読み込みユニットをさらに含み、
前記取得ユニットが前記アクセス対象のストレージエリアの履歴アクセス情報を取得した後に、前記読み込みユニットは、前記書込み速度マークに従って前記アクセス対象のストレージエリアに対する読込み動作を行うように構成され、前記高速書込みは、前記低速読込みに対応し、前記低速書込みは、前記高速読込みに対応する、請求項41から46のいずれか一項に記載の装置。
【請求項４８】
前記装置は、前記読み込みユニットをさらに含み、
前記アクセス対象のストレージエリアに記憶されている前記データを前記低速書込みの前記形式で前記アクセス対象のストレージエリアに再書込みする前に、前記書き込みユニットは、前記アクセス対象のストレージエリアのアドレス情報を再書込みキューに保存するようにさらに構成され、
前記読み込みユニットは、前記再書込みキューに保存されている前記アドレス情報に従って前記アクセス対象のストレージエリアから、前記アクセス対象のストレージエリアに記憶されている前記データを読み込むように構成される、請求項41から47のいずれか一項に記載の装置。
【請求項４９】
ストレージコントローラのプロセッサが実行命令を実行すると、前記ストレージコントローラは、請求項1から24のいずれか一項に従って前記方法を行う、実行命令を含む、可読媒体。
【請求項５０】
プロセッサと、メモリと、バスとを含む、ストレージコントローラであって、
前記メモリは、実行命令を記憶するように構成され、前記プロセッサおよび前記メモリが前記バスを使用して接続されており、前記ストレージコントローラが動作すると、前記プロセッサは、前記ストレージコントローラが請求項1から24のいずれか一項に従って前記方法を行うように、前記メモリに記憶されている前記実行命令を実行する、ストレージコントローラ。
【請求項５１】
フラッシュメモリデバイスであって、前記フラッシュメモリデバイスに対するアクセスのタイプは、書込み動作と読込み動作とを含み、前記書込み動作の形式は、高速書込みと低速書込みとを含み、前記フラッシュメモリデバイスは、ストレージコントローラとフラッシュメモリアレイとを含み、
前記フラッシュメモリアレイは、データを記憶するように構成され、
前記ストレージコントローラは、前記フラッシュメモリアレイのアクセス対象のストレージエリアのための第1の書込みアクセス要求を受信することと、前記アクセス対象のストレージエリアの履歴アクセスタイプを取得することであって、前記履歴アクセスタイプは、前記第1の書込みアクセス要求前の前記アクセス対象のストレージエリアに対するアクセスのアクセスタイプである、ことと、前記アクセス対象のストレージエリアの前記履歴アクセスタイプが書込み動作である場合には、前記第1の書込みアクセス要求の書込み対象のデータを前記高速書込みの形式で前記アクセス対象のストレージエリアに書き込むこととをするように構成される、フラッシュメモリデバイス。
【請求項５２】
前記ストレージコントローラは、
前記アクセス対象のストレージエリアの前記履歴アクセスタイプが書込み動作ではない場合には、前記第1の書込みアクセス要求の前記書込み対象のデータを前記低速書込みの形式で前記アクセス対象のストレージエリアに書き込み、前記アクセス対象のストレージエリアの前記履歴アクセスタイプを更新するようにさらに構成される、請求項51に記載のフラッシュメモリデバイス。
【請求項５３】
前記書込み動作の前記形式は、通常書込みをさらに含み、前記通常書込みの書込み速度は、前記低速書込みの書込み速度より大きく前記高速書込みの書込み速度未満であり、
前記ストレージコントローラは、
前記アクセス対象のストレージエリアの前記履歴アクセスタイプが書込み動作ではない場合には、前記第1の書込みアクセス要求の前記書込み対象のデータを前記通常書込みの形式で前記アクセス対象のストレージエリアに書き込み、前記アクセス対象のストレージエリアの前記履歴アクセスタイプを更新するようにさらに構成される、請求項51に記載のフラッシュメモリデバイス。
【請求項５４】
フラッシュメモリデバイスであって、前記フラッシュメモリデバイスに対するアクセスのタイプは、書込み動作と読込み動作とを含み、前記書込み動作の形式は、高速書込みと低速書込みとを含み、前記読込み動作の形式は、高速読込みと低速読込みとを含み、前記フラッシュメモリデバイスは、ストレージコントローラとフラッシュメモリアレイとを含み、
前記フラッシュメモリアレイは、データを記憶するように構成され、
前記ストレージコントローラは、前記フラッシュメモリアレイのアクセス対象のストレージエリアのための読込みアクセス要求を受信することと、前記高速読込みの形式で前記アクセス対象のストレージエリアに対する読込み動作を行うことと、前記アクセス対象のストレージエリアの履歴アクセスタイプを取得することであって、前記履歴アクセスタイプは、前記読込みアクセス要求前の前記アクセス対象のストレージエリアに対するアクセスのアクセスタイプである、ことと、前記高速読込みを使用する復号が失敗し前記履歴アクセスタイプが読込み動作である場合には、前記アクセス対象のストレージエリアに記憶されているデータを前記低速書込みの形式で前記アクセス対象のストレージエリアに再書込みすることとをするように構成される、フラッシュメモリデバイス。
【請求項５５】
前記ストレージコントローラは、前記高速読込みを使用する復号が失敗した場合には、前記低速読込みの形式で前記アクセス対象のストレージエリアに対する読込み動作を行うようにさらに構成される、請求項54に記載のフラッシュメモリデバイス。
【請求項５６】
前記読込み動作の前記形式は、通常読込みをさらに含み、前記通常読込みの読込み速度は、前記低速読込みの読込み速度より大きく前記高速読込みの読込み速度未満であり、
前記ストレージコントローラは、前記高速読込みを使用する復号が失敗した場合には、前記通常読込みの形式で前記アクセス対象のストレージエリアに対する読込み動作を行うようにさらに構成される、請求項54に記載のフラッシュメモリデバイス。
【請求項５７】
フラッシュメモリデバイスであって、前記フラッシュメモリデバイスに対するアクセスのタイプは、書込み動作と読込み動作とを含み、前記書込み動作の形式は、高速書込みと低速書込みとを含み、前記フラッシュメモリデバイスは、ストレージコントローラとフラッシュメモリアレイとを含み、
前記フラッシュメモリアレイは、データを記憶するように構成され、
前記ストレージコントローラは、アクセス対象のストレージエリアのための読込みアクセス要求を受信することと、前記アクセス対象のストレージエリアの履歴アクセス情報を取得することであって、前記履歴アクセス情報は、前記アクセス対象のストレージエリアの履歴アクセスタイプと書込み速度マークとを含み、前記書込み速度マークは、前記アクセス対象のストレージエリアに記憶されているデータに対する書込み動作の形式を示すために使用され、前記履歴アクセスタイプは、前記読込みアクセス要求前の前記アクセス対象のストレージエリアに対するアクセスのアクセスタイプである、ことと、前記履歴アクセスタイプが読込み動作であるとともに前記書込み速度マークが前記低速書込みを示していない場合には、前記アクセス対象のストレージエリアに記憶されている前記データを前記低速書込みの形式で前記アクセス対象のストレージエリアに再書込みすることとをするように構成される、フラッシュメモリデバイス。
【請求項５８】
前記アクセス対象のストレージエリアに記憶されている前記データを前記低速書込みの前記形式で前記アクセス対象のストレージエリアに再書込みした後に、前記ストレージコントローラは、前記書込み速度マークを前記低速書込みに更新するようにさらに構成される、請求項57に記載のフラッシュメモリデバイス。
【請求項５９】
前記読込み動作は、高速読込みと低速読込みとを含み、前記アクセス対象のストレージエリアの前記履歴アクセス情報を取得した後に、前記ストレージコントローラは、前記書込み速度マークに従って前記アクセス対象のストレージエリアに対する読込み動作を行うようにさらに構成され、前記フラッシュメモリデバイスに対する前記読込み動作の形式は、前記高速読込みと前記低速読込みとを含み、前記高速読込みの読込み速度は、前記低速読込みの読込み速度より大きく、前記高速書込みは、前記低速読込みに対応し、前記低速書込みは、前記高速読込みに対応する、請求項57または58に記載のフラッシュメモリデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、コンピュータの分野に関し、詳細には、フラッシュメモリデバイスにアクセスするための方法および装置に関する。
【背景技術】
【０００２】
優れたランダムアクセスパフォーマンス、低密度、および低電力消耗などの利点により、フラッシュメモリに基づいたソリッドステートドライブ(Solid State Drive、SSD)は、従来の磁気ディスクに次第に取って代わり、重要な記憶媒体となっている。近年では、フラッシュメモリ技術は、急速に進展しており、ストレージ密度は、シングルビットフラッシュセルから、最新のマルチビットフラッシュセル、例えば、6ビットへと進展しており、製造技術は、65ナノメータから10ナノメータへと進展している。これらの進展に伴い、フラッシュメモリのストレージ密度は急速に増大するも、フラッシュメモリの信頼性は大きく減少している。したがって、より強力な誤り訂正性能を有する誤り訂正符号が、データを正確に符号化および復号するために必要とされている。
【０００３】
フラッシュメモリの信頼性の問題を解決するために、低密度パリティ検査符号(Low Density Parity Check Code、LDPC)誤り訂正機構が、現在広く使用されるソリューションにおいて使用されている。LDPC復号は、信念伝搬アルゴリズムを使用して実装され、硬判定復号と軟判定復号とに分類される。硬判定復号は、高い効率性を有し、読込みおよび復号のための時間が短くて済むが、低い誤り率を有するデータのみ復号することが可能である。軟判定復号は、比較的高い誤り率を有するデータの正確な復号を実施できるが、読込みおよび復号の際に比較的長い遅延を必要とする。LDPC符号が検査符号として使用されている場合には、読出し要求時間と誤り率との間に相関があり、高い誤り率を有するデータのための読出し要求が必要とする時間は比較的長い。
【０００４】
データは、インクリメンタルステップパルスプログラミング(Incremental Step Pulse Programming、ISPP)方式でフラッシュメモリに書き込まれる。フラッシュセルが所定の電圧に達することを可能にするために、プログラミング電圧を徐々に増大させる方式を使用している。データを書き込むために使用されるプログラミングステップ電圧、すなわち、プログラミング電圧の単位変化量が、大いにデータの誤り率を決定することになる。プログラミングステップ電圧がより高ければ、所定の電圧値を比較的小さな反復量の後に達することができる。しかしながら、プログラミングステップ電圧が高くなればなるほど、プログラミング精度はより低くなり、誤り率はより高くなる。したがって、プログラミング速度が高くなればなるほど誤り率がより高くなり、プログラミング速度が低くなればなるほど誤り率がより低くなることがわかるであろう。
【０００５】
フラッシュメモリに記憶することに関して、ある量の電荷が、データを表すためにフラッシュメモリのフラッシュセルに蓄えられる。ストレージ時間が増大するにつれて、フラッシュセル内の電荷が流出する、すなわち、電気が漏れる。ストレージ時間が長くなればなるほど、より大きな電気量が漏れ、誤り率はより高くなる。従来技術では、フラッシュメモリ内のデータを記憶する時間に従って、データに対する書込み動作は調整され得る。データを長時間記憶する必要がある場合には、書込み動作は、低速書込みの形式で行われる。データが低速度で書き込まれていると、データが正確に読み込まれることを保証するために、誤り率は低い。データを短時間記憶する必要がある場合には、データのものであるとともにストレージ時間中の漏電に起因する誤り率は比較的低く、書込み動作は高速書込みの形式で行われ得る。従来技術では、読込み動作を行う場合には、硬判定復号を最初に使用し、硬判定復号が失敗した場合には、軟判定復号を使用している。
【０００６】
従来技術では、フラッシュメモリに対する読込みおよび書込み動作を柔軟且つ効果的に調整することができず、問題を解決するために新技術を進展させる必要がある。
【発明の概要】
【課題を解決するための手段】
【０００７】
このような点を考慮して、本発明は、フラッシュメモリデバイスにアクセスするための方法および装置を開示している。フラッシュメモリデバイスに対する読込みおよび書込み動作をデータのアクセス特性に従って調整し、フラッシュメモリデバイスの総合的なアクセスパフォーマンスを改善している。
【０００８】
第1の態様に従って、本発明は、フラッシュメモリデバイスにアクセスするための方法を提供している。フラッシュメモリデバイスに対するアクセスのアクセスタイプは、書込み動作と読込み動作とを含む。方法は、ストレージコントローラによって、アクセス要求を受信するステップであって、アクセス要求は、アクセス対象のストレージエリアを示す、例えば、アクセス要求は、アクセス対象のストレージエリアのアドレス情報を搬送する、ステップと、ストレージコントローラによって、アクセス対象のストレージエリアの履歴アクセス情報を取得するステップであって、履歴アクセス情報は、アクセス対象のストレージエリアの履歴アクセスタイプを含む、ステップと、ストレージコントローラによって、履歴アクセス情報および現在のアクセス要求のアクセスタイプに従ってアクセス対象のストレージエリアに対するアクセス動作を行うステップとを含む。
【０００９】
誤り率に従ってフラッシュメモリ内のデータの読込み速度と書込み速度との間で関係が確立され得る。フラッシュメモリストレージシステムでは、データが書き込まれる際にプログラミング速度が高い場合には、誤り率は高く、データの読込み速度は低い、反対に、データが書き込まれる際にプログラミング速度が低い場合には、誤り率は低く、データの読込み速度は高い。読込み動作と書込み動作との間の内部関係に従ってフラッシュメモリデバイスに対して調整が行われ得る。
【００１０】
第1の態様に準拠している、第1の態様の第1の可能な実施形態においては、履歴アクセスタイプが書込み動作であるとともに現在のアクセス要求のアクセスタイプが書込み動作である場合には、ストレージコントローラによって、アクセス対象のストレージエリアに対するアクセス動作を行うステップは、ストレージコントローラによって、高速書込みの形式でアクセス対象のストレージエリアに対する書込み動作を行うステップであって、書込み動作の形式は、高速書込みと低速書込みとを含み、高速書込みの書込み速度は、低速書込みの書込み速度より大きい、ステップを含む。
【００１１】
履歴アクセスタイプと現在のアクセス要求のアクセスタイプとが両方とも書込み動作である場合には、アクセス対象のストレージエリアに記憶されているデータが「ライトオンリー」特性を有していることを示しており、アクセス対象のストレージエリアに対する書込み動作の頻度はアクセス対象のストレージエリアに対する読込み動作の頻度よりはるかに大きい。したがって、書込み動作を高速書込みの形式でアクセス対象のストレージエリアに対して行い得るし、それによって、フラッシュメモリデバイスの総合的なアクセス速度を改善している。
【００１２】
第1の態様に準拠している、第1の態様の第2の可能な実施形態においては、履歴アクセスタイプが読込み動作であるとともに現在のアクセス要求のアクセスタイプが読込み動作である場合には、ストレージコントローラによって、アクセス対象のストレージエリアに対するアクセス動作を行うステップは、ストレージコントローラによって、高速読込みの形式でアクセス対象のストレージエリアに対する読込み動作を行うステップと、高速読込みを使用する復号が失敗した場合には、アクセス対象のストレージエリアを低速読込みの形式で再度読み込むステップと、アクセス対象のストレージエリアに記憶されているデータを低速書込みの形式でアクセス対象のストレージエリアに再書込みするステップであって、ストレージコントローラの読込み動作の形式は、高速読込みと低速読込みとを含み、高速読込みの読込み速度は、低速読込みの読込み速度より大きい、ステップとを含む。
【００１３】
履歴アクセスタイプと現在のアクセス要求のアクセスタイプとが両方とも読込み動作である場合には、アクセス対象のストレージエリアに記憶されているデータが「リードオンリー」特性を有していることを示しており、アクセス対象のストレージエリアに対する読込み動作の頻度は書込み動作の頻度よりはるかに大きい。したがって、アクセス対象のストレージエリアに対する高速読込みの形式における復号が失敗した場合には、アクセス対象のストレージエリアに記憶されているデータの精度が十分に高くないことを示しており、アクセス対象のストレージエリアに記憶されているデータは、低速書込みの形式でアクセス対象のストレージエリアに再書込みされ、それによって、データの精度を保証してアクセス対象のストレージエリアに対する後続の読込み動作を加速させており、フラッシュメモリデバイスの総合的なアクセス速度を改善している。
【００１４】
必要に応じて、別の可能な実施形態においては、アクセス対象のストレージエリア内のデータがリードオンリー特性を有する場合には、読込み動作中の復号のビット誤り率がプリセット閾値を超過すると、アクセス対象のストレージエリアに記憶されているデータは、低速書込みの形式でアクセス対象のストレージエリアに再書込みされる。
【００１５】
第1の態様に準拠している、第1の態様の第3の可能な実施形態においては、履歴アクセス情報は、書込み速度マークをさらに含む。書込み速度マークは、アクセス対象のストレージエリア内のデータに対する書込み動作の形式を示すために使用される。履歴アクセスタイプと現在のアクセス要求のアクセスタイプとが両方とも読込み動作であるとともに書込み速度マークが低速書込みを示していない場合には、方法は、ストレージコントローラによって、アクセス対象のストレージエリアに記憶されているデータを低速書込みの形式でアクセス対象のストレージエリアに再書込みするステップをさらに含む。
【００１６】
書込み速度マークは、アクセス対象のストレージエリアに記憶されているデータが低速書込みの形式で書き込まれているかどうかを示すために主に使用される。アクセス対象のストレージエリアに記憶されているデータが低速書込みの形式で書き込まれていない場合には、アクセス対象のストレージエリアに記憶されているデータの精度が十分に高くないことを大いに示している。データが「リードオンリー」特性を有している場合には、アクセス対象のストレージエリアに記憶されているデータは、低速書込みの形式でアクセス対象のストレージエリアに再書込みされ、それによって、データの精度を保証してアクセス対象のストレージエリアに対する後続の読込み動作を加速させており、フラッシュメモリデバイスの総合的なアクセス速度を改善している。
【００１７】
第1の態様または第1の態様の前述の可能な実施形態のうちのいずれか1つに準拠している、第1の態様の第4の可能な実施形態においては、ストレージコントローラによって、アクセス対象のストレージエリアに記憶されているデータを低速書込みの形式でアクセス対象のストレージエリアに再書込みするステップの前に、方法は、ストレージコントローラによって、アドレス情報を再書込みキューに保存するステップと、再書込みキューに保存されているアドレス情報に従ってアクセス対象のストレージエリアからストレージコントローラによって、アクセス対象のストレージエリアに記憶されているデータを読み込むステップとをさらに含む。
【００１８】
再書込みを行う必要があるアクセス対象のストレージエリアのアドレス情報が、再書込みキューに書き込まれ、再書込み動作は、フラッシュメモリデバイスがアイドル状態であるまたは比較的軽い負荷を有している場合に行われ、それによって、再書込み動作が通常読込みアクセスと通常書込みアクセスとをブロックしてしまうことを回避している。
【００１９】
必要に応じて、読み込まれるデータも、現在の読込み動作が終了した後に、アクセス対象のストレージエリアに直ちに再書込みされ得るし、それによって、後続の再読込みに起因する消耗を回避している。
【００２０】
第1の態様または第1の態様の前述の可能な実施形態のうちのいずれか1つに準拠している、第1の態様の第5の可能な実施形態においては、書込み動作の形式は、通常書込みをさらに含み、通常書込みの書込み速度は、低速書込みの書込み速度より大きく高速書込みの書込み速度未満である。履歴アクセスタイプが書込み動作ではなく、現在のアクセス要求のアクセスタイプが書込み動作である場合には、ストレージコントローラによって、アクセス対象のストレージエリアに対するアクセス動作を行うステップは、ストレージコントローラによって、通常書込みの形式でアクセス対象のストレージエリアに対する書込み動作を行うステップを含む。
【００２１】
履歴アクセスタイプが書込み動作ではなく、現在のアクセス要求のアクセスタイプが書込み動作である場合には、アクセス対象のストレージエリアに記憶されているデータが「クロスアクセス」特性を有していることを示しており、アクセス対象のストレージエリアに対する読込み動作の頻度と書込み動作の頻度とが実質的に等しいことを示している。この場合には、書込み動作を通常書込みの形式でアクセス対象のストレージエリアに対して行い得るし、それによって、読込み動作と書込み動作との速度のバランスをとっており、フラッシュメモリデバイスの総合的なアクセス速度を改善している。
【００２２】
第1の態様または第1の態様の前述の可能な実施形態のうちのいずれか1つに準拠している、第1の態様の第6の可能な実施形態においては、履歴アクセス情報は、書込み速度マークをさらに含む。現在のアクセス要求のアクセスタイプが読込み動作である場合には、ストレージコントローラによって、履歴アクセス情報およびアクセス要求のアクセスタイプに従ってアクセス対象のストレージエリアに対するアクセス動作を行うステップは、ストレージコントローラによって、書込み速度マークに従ってアクセス対象のストレージエリアに対する読込み動作を行うステップであって、高速書込みは、低速読込みに対応し、低速書込みは、高速読込みに対応する、ステップを含む。
【００２３】
読込み動作の対応する形式をアクセス対象のストレージエリア内のデータに対する書込み動作の形式に従って使用する。ある程度読込み動作の時間を低減することを可能としており、フラッシュメモリデバイスの総合的なアクセス速度を改善している。
【００２４】
第1の態様または第1の態様の前述の可能な実施形態のうちのいずれか1つに準拠している、第1の態様の第7の可能な実施形態においては、履歴アクセスタイプと現在のアクセス要求のアクセスタイプとが異なる場合には、方法は、ストレージコントローラによって、現在のアクセス要求のアクセスタイプに従って履歴アクセスタイプを更新するステップをさらに含む。
【００２５】
さらに、履歴アクセス情報が書込み速度マークを含むとともに現在のアクセス要求のアクセスタイプが書込み動作である場合には、現在の書込み動作の形式と履歴アクセス情報内の書込み速度マークによって示される形式とが異なっているならば、書込み速度マークを更新する必要がさらにある。
【００２６】
第1の態様または第1の態様の前述の可能な実施形態のうちのいずれか1つに準拠している、第1の態様の第8の可能な実施形態においては、ストレージコントローラによって、アクセス対象のストレージエリアの履歴アクセス情報を取得するステップは、ストレージコントローラによって、アクセス対象のストレージエリアのものであるとともに履歴アクセスレコードに記録されている履歴アクセス情報を検索するステップを含む。例えば、アクセス対象のストレージエリアに対応する履歴アクセス情報エントリは、アクセス対象のストレージエリアのアドレス情報に従って検索され得るし、履歴アクセス情報エントリは、アクセス対象のストレージエリアの履歴アクセス情報を含む。
【００２７】
第1の態様または第1の態様の前述の可能な実施形態のうちのいずれか1つに準拠している、第1の態様の第9の可能な実施形態においては、ストレージコントローラによって、アクセス要求を受信するステップの前に、方法は、ストレージコントローラによって、第2の書込みアクセス要求を受信するステップであって、第2の書込みアクセス要求は、アクセス対象のストレージエリアのための最初の書込みアクセス要求である、ステップと、ストレージコントローラによって、第2の書込みアクセス要求の書込み対象のデータをアクセス対象のストレージエリアに書き込むステップと、アクセス対象のストレージエリアの履歴アクセス情報を履歴アクセスレコードに記録するステップとをさらに含む。特に、第2の書込みアクセス要求は、アクセス対象のストレージエリアのアドレス情報を搬送し、ストレージコントローラは、アドレス情報に従って履歴アクセスレコードに、アドレス情報に対応する履歴アクセス情報エントリを作成する。
【００２８】
第2の書込みアクセス要求は、「データ無効」状態から「データ有効」状態へとするアクセス対象のストレージエリアに対する最初の書込みである。最初の書込みの間に、アクセス対象のストレージエリアの履歴アクセス情報が記録される。例えば、アクセス対象のストレージエリアに対応する履歴アクセス情報エントリが作成され、アクセス対象のストレージエリアの履歴アクセスタイプが書込み動作として記録される。
【００２９】
第1の態様または第1の態様の前述の可能な実施形態のうちのいずれか1つに準拠している、第1の態様の第10の可能な実施形態においては、ストレージコントローラによって、第2の書込みアクセス要求の書込み対象のデータをアクセス対象のストレージエリアに書き込むステップは、ストレージコントローラによって、第2の書込みアクセス要求の書込み対象のデータを低速書込みの形式でアクセス対象のストレージエリアに書き込むステップを含む。
【００３０】
第2の書込みアクセス要求は、「データ無効」状態から「データ有効」状態へとするアクセス対象のストレージエリアに対する最初の書込みである。書き込まれたデータのアクセスタイプが「リードオンリー」特性を有しているかどうかを決定することができないので、最初の書込みは、低速書込みの形式の書込みである。当然のことながら、別の形式の書込み動作も使用されてもよい。
【００３１】
第1の態様または第1の態様の前述の可能な実施形態のうちのいずれか1つに準拠している、第1の態様の第11の可能な実施形態においては、方法は、アクセス対象のストレージエリア内のデータが無効であるとストレージコントローラが決定した場合には、アクセス対象のストレージエリアの記録されている履歴アクセス情報を削除するステップをさらに含む。例えば、ストレージコントローラは、削除通知メッセージを受信し、削除通知メッセージは、アドレス情報を搬送し、ストレージコントローラは、削除通知メッセージに従ってアクセス対象のストレージエリアの履歴アクセス情報を削除する。
【００３２】
特に、削除通知メッセージは、後続のガベージコレクションを促進するために、ストレージコントローラがアクセス対象のストレージエリアのアドレス情報を無効となるように設定するように、アクセス対象のストレージエリア内のデータを削除するようにユーザに指示するために使用されるトリム命令であり得る。
【００３３】
第2の態様に従って、本発明は、フラッシュメモリデバイスにアクセスするための方法を提供している。フラッシュメモリデバイスに対するアクセスのタイプは、書込み動作と読込み動作とを含み、フラッシュメモリデバイスに対する書込み動作の形式は、高速書込みと低速書込みとを含み、高速書込みの書込み速度は、低速書込みの書込み速度より大きい。方法は、アクセス対象のストレージエリアのための第1の書込みアクセス要求を受信するステップであって、第1の書込みアクセス要求は、アクセス対象のストレージエリアのアドレス情報を搬送する、ステップと、アドレス情報に従ってアクセス対象のストレージエリアの履歴アクセスタイプを取得するステップであって、履歴アクセスタイプは、第1の書込みアクセス要求前のアクセス対象のストレージエリアに対するアクセスのアクセスタイプである、ステップと、アクセス対象のストレージエリアの履歴アクセスタイプが書込み動作である場合には、第1の書込みアクセス要求の書込み対象のデータを高速書込みの形式でアクセス対象のストレージエリアに書き込むステップとを含む。
【００３４】
アクセス対象のストレージエリアの履歴アクセスタイプと現在のアクセス要求のアクセスタイプとが両方とも書込み動作である場合には、アクセス対象のストレージエリアに記憶されているデータが「ライトオンリー」特性を有していることを示しており、アクセス対象のストレージエリアに対する書込み動作の頻度は読込み動作の頻度よりはるかに大きい。したがって、書込み動作を高速書込みの形式でアクセス対象のストレージエリアに対して行い、それによって、フラッシュメモリデバイスの総合的なアクセス速度を改善している。
【００３５】
第2の態様に準拠している、第2の態様の第1の可能な実施形態においては、アクセス対象のストレージエリアの履歴アクセスタイプを取得するステップは、アクセス対象のストレージエリアのものであるとともに履歴アクセスレコードに記録されている履歴アクセスタイプを検索するステップを含む。
【００３６】
特に、履歴アクセス情報テーブルが保持され得る。履歴アクセス情報テーブルは、有効データを有するアドレス情報の各要素に対応する履歴アクセス情報エントリを記録し、履歴アクセス情報エントリは、アクセス対象のストレージエリアの履歴アクセスタイプを記録する。
【００３７】
第2の態様または第2の態様の前述の可能な実施形態のうちのいずれか1つに準拠している、第2の態様の第2の可能な実施形態においては、アクセス対象のストレージエリアのための第1の書込みアクセス要求を受信するステップの前に、方法は、アクセス対象のストレージエリアのための第2の書込みアクセス要求を受信するステップであって、第2の書込みアクセス要求は、アクセス対象のストレージエリアのための最初の書込みアクセス要求である、ステップと、第2の書込みアクセス要求の書込み対象のデータをアクセス対象のストレージエリアに書き込み、アクセス対象のストレージエリアの履歴アクセスタイプを履歴アクセスレコードに記録するステップとをさらに含む。
【００３８】
第2の書込みアクセス要求は、「データ無効」状態から「データ有効」状態へとするアクセス対象のストレージエリアに対する最初の書込みである。最初の書込みの間に、アクセス対象のストレージエリアに対応する履歴アクセス情報エントリが作成され、アクセス対象のストレージエリアの履歴アクセスタイプが書込み動作として記録される。
【００３９】
第2の態様または第2の態様の前述の可能な実施形態のうちのいずれか1つに準拠している、第2の態様の第3の可能な実施形態においては、第2の書込みアクセス要求の書込み対象のデータをアクセス対象のストレージエリアに書き込むステップは、第2の書込みアクセス要求の書込み対象のデータを低速書込みの形式でアクセス対象のストレージエリアに書き込むステップを含む。
【００４０】
第2の書込みアクセス要求は、「データ無効」状態から「データ有効」状態へとするアクセス対象のストレージエリアに対する最初の書込みである。書き込まれたデータのアクセスタイプが「リードオンリー」特性を有しているかどうかを決定することができないので、最初の書込みは、低速書込みの形式の書込みである。当然のことながら、別の形式の書込み動作も最初の書込み中に使用されてもよい。
【００４１】
第2の態様または第2の態様の前述の可能な実施形態のうちのいずれか1つに準拠している、第2の態様の第4の可能な実施形態においては、方法は、アクセス対象のストレージエリア内のデータが無効であると決定された場合には、アクセス対象のストレージエリアの記録されている履歴アクセスタイプを削除するステップをさらに含む。
【００４２】
特に、アクセス対象のストレージエリアに対応する履歴アクセス情報エントリは、オペレーティングシステムのトリム命令を受信すると削除され得る。トリム命令は、現在のアクセス対象のストレージエリア内のデータがオペレーティングシステムによって削除されたことを示す。
【００４３】
第2の態様または第2の態様の前述の可能な実施形態のうちのいずれか1つに準拠している、第2の態様の第5の可能な実施形態においては、方法は、アクセス対象のストレージエリアの履歴アクセスタイプが書込み動作ではない場合には、第1の書込みアクセス要求の書込み対象のデータを低速書込みの形式でアクセス対象のストレージエリアに書き込み、アクセス対象のストレージエリアの履歴アクセスタイプを更新するステップをさらに含む。
【００４４】
特に、履歴アクセス情報エントリが2つ以上の履歴アクセスタイプを記録している場合には、履歴アクセスタイプの1つが書込み動作ではないならば、履歴アクセスタイプが書込み動作ではないと見なされ、記録されている履歴アクセスタイプのすべてが書込み動作である場合のみ履歴アクセスタイプが書込み動作であると見なされる。
【００４５】
第2の態様または第2の態様の前述の可能な実施形態のうちのいずれか1つに準拠している、第2の態様の第6の可能な実施形態においては、書込み動作の形式は、通常書込みをさらに含み、通常書込みの書込み速度は、低速書込みの書込み速度より大きく高速書込みの書込み速度未満であり、方法は、アクセス対象のストレージエリアの履歴アクセスタイプが書込み動作ではない場合には、第1の書込みアクセス要求の書込み対象のデータを通常書込みの形式でアクセス対象のストレージエリアに書き込み、アクセス対象のストレージエリアの履歴アクセスタイプを更新するステップをさらに含む。
【００４６】
履歴アクセスタイプが書込み動作ではなく、現在のアクセス要求のアクセスタイプが書込み動作である場合には、アクセス対象のストレージエリアに記憶されているデータが「クロスアクセス」特性を有していることを示しており、アクセス対象のストレージエリアに対する読込み動作の頻度と書込み動作の頻度とが実質的に等しいことを示している。この場合には、書込み動作を通常書込みの形式でアクセス対象のストレージエリアに対して行い得るし、それによって、読込み動作と書込み動作との速度のバランスをとっており、フラッシュメモリデバイスの総合的なアクセス速度を改善している。
【００４７】
第3の態様に従って、本発明は、フラッシュメモリデバイスにアクセスするための方法を提供している。フラッシュメモリデバイスに対するアクセスのタイプは、書込み動作と読込み動作とを含む。フラッシュメモリデバイスに対する書込み動作の形式は、高速書込みと低速書込みとを含み、高速書込みの書込み速度は、低速書込みの書込み速度より大きい。フラッシュメモリデバイスに対する読込み動作の形式は、高速読込みと低速読込みとを含み、高速読込みの読込み速度は、低速読込みの読込み速度より大きい。方法は、アクセス対象のストレージエリアのための読込みアクセス要求を受信するステップと、高速読込みの形式でアクセス対象のストレージエリアに対する読込み動作を行うステップと、アクセス対象のストレージエリアの履歴アクセスタイプを取得するステップであって、履歴アクセスタイプは、読込みアクセス要求前のアクセス対象のストレージエリアに対するアクセスのアクセスタイプである、ステップと、高速読込みを使用する復号が失敗し履歴アクセスタイプが読込み動作である場合には、アクセス対象のストレージエリアに記憶されているデータを低速書込みの形式でアクセス対象のストレージエリアに再書込みするステップとを含む。
【００４８】
履歴アクセスタイプと現在のアクセス要求のアクセスタイプとが両方とも読込み動作である場合には、アクセス対象のストレージエリアに記憶されているデータが「リードオンリー」特性を有していることを示しており、アクセス対象のストレージエリアに対する読込み動作の頻度が書込み動作の頻度よりはるかに大きい。したがって、アクセス対象のストレージエリアに対する高速読込みの形式における復号が失敗した場合には、アクセス対象のストレージエリアに記憶されているデータの精度が十分に高くないことを示しており、アクセス対象のストレージエリアに記憶されているデータは、低速書込みの形式でアクセス対象のストレージエリアに再書込みされ、それによって、データの精度を保証してアクセス対象のストレージエリアに対する後続の読込み動作を加速させており、フラッシュメモリデバイスの総合的なアクセス速度を改善している。
【００４９】
必要に応じて、別の可能な実施形態においては、アクセス対象のストレージエリア内のデータがリードオンリー特性を有する場合には、読込み動作中の復号のビット誤り率がプリセット閾値を超過すると、アクセス対象のストレージエリアに記憶されているデータは、低速書込みの形式でアクセス対象のストレージエリアに再書込みされる。
【００５０】
第3の態様に準拠している、第3の態様の第1の可能な実施形態においては、アクセス対象のストレージエリアの履歴アクセスタイプを取得するステップは、アクセス対象のストレージエリアのものであるとともに履歴アクセスレコードに記録されている履歴アクセスタイプを検索するステップを含む。
【００５１】
特に、履歴アクセス情報テーブルが保持され得る。履歴アクセス情報テーブルは、有効データを有するアドレス情報の各要素に対応する履歴アクセス情報エントリを記録し、履歴アクセス情報エントリは、アクセス対象のストレージエリアの履歴アクセスタイプを記録する。
【００５２】
第3の態様または第3の態様の前述の可能な実施形態のうちのいずれか1つに準拠している、第3の態様の第2の可能な実施形態においては、アクセス対象のストレージエリアのための読込みアクセス要求を受信するステップの前に、方法は、アクセス対象のストレージエリアのための第2の書込みアクセス要求を受信するステップであって、第2の書込みアクセス要求は、アクセス対象のストレージエリアのための最初の書込みアクセス要求である、ステップと、第2の書込みアクセス要求の書込み対象のデータをアクセス対象のストレージエリアに書き込み、アクセス対象のストレージエリアの履歴アクセスタイプを履歴アクセスレコードに記録するステップとをさらに含む。
【００５３】
第2の書込みアクセス要求は、「データ無効」状態から「データ有効」状態へとするアクセス対象のストレージエリアに対する最初の書込みである。最初の書込みの間に、アクセス対象のストレージエリアに対応する履歴アクセス情報エントリが作成され、アクセス対象のストレージエリアの履歴アクセスタイプが書込み動作として記録される。
【００５４】
第3の態様または第3の態様の前述の可能な実施形態のうちのいずれか1つに準拠している、第3の態様の第3の可能な実施形態においては、第2の書込みアクセス要求の書込み対象のデータをアクセス対象のストレージエリアに書き込むステップは、第2の書込みアクセス要求の書込み対象のデータを低速書込みの形式でアクセス対象のストレージエリアに書き込むステップを含む。
【００５５】
第2の書込みアクセス要求は、「データ無効」状態から「データ有効」状態へとするアクセス対象のストレージエリアに対する最初の書込みである。書き込まれたデータのアクセスタイプが「リードオンリー」特性を有しているかどうかを決定することができないので、最初の書込みは、低速書込みの形式の書込みである。当然のことながら、別の形式の書込み動作も最初の書込み中に使用されてもよい。
【００５６】
第3の態様または第3の態様の前述の可能な実施形態のうちのいずれか1つに準拠している、第3の態様の第4の可能な実施形態においては、方法は、アクセス対象のストレージエリア内のデータが無効であると決定された場合には、アクセス対象のストレージエリアの記録されている履歴アクセスタイプを削除するステップをさらに含む。
【００５７】
特に、アクセス対象のストレージエリアに対応する履歴アクセス情報エントリは、オペレーティングシステムのトリム命令を受信すると削除され得る。トリム命令は、現在のアクセス対象のストレージエリア内のデータがオペレーティングシステムによって削除されたことを示す。
【００５８】
第3の態様または第3の態様の前述の可能な実施形態のうちのいずれか1つに準拠している、第3の態様の第5の可能な実施形態においては、方法は、高速読込みを使用する復号が失敗した場合には、低速読込みの形式でアクセス対象のストレージエリアに対する読込み動作を行うステップをさらに含む。
【００５９】
第3の態様または第3の態様の前述の可能な実施形態のうちのいずれか1つに準拠している、第3の態様の第6の可能な実施形態においては、読込み動作の形式は、通常読込みをさらに含み、通常読込みの読込み速度は、低速読込みの読込み速度より大きく高速読込みの読込み速度未満であり、方法は、高速読込みを使用する復号が失敗した場合には、通常読込みの形式でアクセス対象のストレージエリアに対する読込み動作を行うステップをさらに含む。
【００６０】
特に、高速読込みを使用する復号が失敗した場合には、アクセス対象のストレージエリアに対するより精密な読込みを行うために、異なる状態間の閾値電圧の数量が増大され、それによって、復号の成功率を改善している。
【００６１】
第3の態様または第3の態様の前述の可能な実施形態のうちのいずれか1つに準拠している、第3の態様の第7の可能な実施形態においては、方法は、履歴アクセスタイプが読込み動作ではない場合には、履歴アクセスタイプを更新するステップをさらに含む。
【００６２】
特に、履歴アクセス情報エントリが2つ以上の履歴アクセスタイプを記録している場合には、履歴アクセスタイプの1つが読込み動作ではないならば、履歴アクセスタイプが読込み動作ではないと見なされ、記録されている履歴アクセスタイプのすべてが読込み動作である場合のみ履歴アクセスタイプが読込み動作であると見なされる。
【００６３】
第3の態様または第3の態様の前述の可能な実施形態のうちのいずれか1つに準拠している、第3の態様の第8の可能な実施形態においては、アクセス対象のストレージエリアに記憶されているデータを低速書込みの形式でアクセス対象のストレージエリアに再書込みするステップの前に、方法は、アクセス対象のストレージエリアのアドレス情報を再書込みキューに保存するステップと、再書込みキューに保存されているアドレス情報に従ってアクセス対象のストレージエリアから、アクセス対象のストレージエリアに記憶されているデータを読み込むステップとをさらに含む。
【００６４】
再書込みを行う必要があるアクセス対象のストレージエリアのアドレス情報が、再書込みキューに書き込まれ、再書込み動作は、フラッシュメモリデバイスがアイドル状態であるまたは比較的軽い負荷を有している場合に行われ、それによって、再書込み動作が通常読込みアクセスと通常書込みアクセスとをブロックしてしまうことを回避している。
【００６５】
必要に応じて、読み込まれるデータも、現在の読込み動作が終了した後に、アクセス対象のストレージエリアに直ちに再書込みされ得るし、それによって、後続の再読込みに起因する消耗を回避している。
【００６６】
第4の態様に従って、本発明は、フラッシュメモリデバイスにアクセスするための方法を提供している。フラッシュメモリデバイスに対するアクセスのタイプは、書込み動作と読込み動作とを含む。フラッシュメモリデバイスに対する書込み動作の形式は、高速書込みと低速書込みとを含み、高速書込みの書込み速度は、低速書込みの書込み速度より大きい。方法は、アクセス対象のストレージエリアのための読込みアクセス要求を受信するステップと、アクセス対象のストレージエリアの履歴アクセス情報を取得するステップであって、履歴アクセス情報は、アクセス対象のストレージエリアの履歴アクセスタイプと書込み速度マークとを含み、書込み速度マークは、アクセス対象のストレージエリアに記憶されているデータに対する書込み動作の形式を示すために使用され、履歴アクセスタイプは、読込みアクセス要求前のアクセス対象のストレージエリアに対するアクセスのアクセスタイプである、ステップと、履歴アクセスタイプが読込み動作であるとともに書込み速度マークが低速書込みを示していない場合には、アクセス対象のストレージエリアに記憶されているデータを低速書込みの形式でアクセス対象のストレージエリアに再書込みするステップとを含む。
【００６７】
書込み速度マークは、アクセス対象のストレージエリアに記憶されているデータが低速書込みの形式で書き込まれているかどうかを示すために主に使用される。アクセス対象のストレージエリアに記憶されているデータが低速書込みの形式で書き込まれていない場合には、アクセス対象のストレージエリアに記憶されているデータの精度が十分に高くないことを大いに示している。データが「リードオンリー」特性を有している場合には、アクセス対象のストレージエリアに記憶されているデータは、低速書込みの形式でアクセス対象のストレージエリアに再書込みされ、それによって、データの精度を保証してアクセス対象のストレージエリアに対する後続の読込み動作を加速させており、フラッシュメモリデバイスの総合的なアクセス速度を改善している。
【００６８】
第4の態様に準拠している、第4の態様の第1の可能な実施形態においては、アクセス対象のストレージエリアの履歴アクセス情報を取得するステップは、アクセス対象のストレージエリアのものであるとともに履歴アクセスレコードに記録されている履歴アクセス情報を検索するステップを含む。
【００６９】
特に、履歴アクセス情報テーブルが保持され得る。履歴アクセス情報テーブルは、有効データを有するアドレス情報の各要素に対応する履歴アクセス情報エントリを記録し、履歴アクセス情報エントリは、アクセス対象のストレージエリアの履歴アクセス情報を記録する。
【００７０】
第4の態様または第4の態様の前述の可能な実施形態のうちのいずれか1つに準拠している、第4の態様の第2の可能な実施形態においては、アクセス対象のストレージエリアのための読込みアクセス要求を受信するステップの前に、方法は、アクセス対象のストレージエリアのための第2の書込みアクセス要求を受信するステップであって、第2の書込みアクセス要求は、アクセス対象のストレージエリアのための最初の書込みアクセス要求である、ステップと、第2の書込みアクセス要求の書込み対象のデータをアクセス対象のストレージエリアに書き込み、アクセス対象のストレージエリアの履歴アクセス情報を履歴アクセスレコードに記録するステップとをさらに含む。
【００７１】
第2の書込みアクセス要求は、「データ無効」状態から「データ有効」状態へとするアクセス対象のストレージエリアに対する最初の書込みである。最初の書込みの間に、アクセス対象のストレージエリアに対応する履歴アクセス情報エントリが作成され、アクセス対象のストレージエリアの履歴アクセスタイプが書込み動作として記録される。
【００７２】
第4の態様または第4の態様の前述の可能な実施形態のうちのいずれか1つに準拠している、第4の態様の第3の可能な実施形態においては、第2の書込みアクセス要求の書込み対象のデータをアクセス対象のストレージエリアに書き込むステップは、第2の書込みアクセス要求の書込み対象のデータを低速書込みの形式でアクセス対象のストレージエリアに書き込むステップを含む。
【００７３】
第2の書込みアクセス要求は、「データ無効」状態から「データ有効」状態へとするアクセス対象のストレージエリアに対する最初の書込みである。書き込まれたデータのアクセスタイプが「リードオンリー」特性を有しているかどうかを決定することができないので、最初の書込みは、低速書込みの形式の書込みである。当然のことながら、別の形式の書込み動作も最初の書込み中に使用されてもよい。
【００７４】
第4の態様または第4の態様の前述の可能な実施形態のうちのいずれか1つに準拠している、第4の態様の第4の可能な実施形態においては、方法は、アクセス対象のストレージエリア内のデータが無効であると決定された場合には、アクセス対象のストレージエリアの記録されている履歴アクセス情報を削除するステップをさらに含む。
【００７５】
特に、アクセス対象のストレージエリアに対応する履歴アクセス情報エントリは、オペレーティングシステムのトリム命令を受信すると削除され得る。トリム命令は、現在のアクセス対象のストレージエリア内のデータがオペレーティングシステムによって削除されたことを示す。
【００７６】
第4の態様または第4の態様の前述の可能な実施形態のうちのいずれか1つに準拠している、第4の態様の第5の可能な実施形態においては、アクセス対象のストレージエリアに記憶されているデータを低速書込みの形式でアクセス対象のストレージエリアに再書込みするステップの後に、方法は、書込み速度マークを低速書込みに更新するステップをさらに含む。
【００７７】
第4の態様または第4の態様の前述の可能な実施形態のうちのいずれか1つに準拠している、第4の態様の第6の可能な実施形態においては、アクセス対象のストレージエリアの履歴アクセス情報を取得するステップの後に、方法は、書込み速度マークに従ってアクセス対象のストレージエリアに対する読込み動作を行うステップであって、高速書込みは、低速読込みに対応し、低速書込みは、高速読込みに対応する、ステップをさらに含む。
【００７８】
読込み動作の対応する形式をアクセス対象のストレージエリア内のデータに対する書込み動作の形式に従って使用する。ある程度読込み動作の時間を低減することを可能としており、フラッシュメモリデバイスの総合的なアクセス速度を改善している。
【００７９】
第4の態様または第4の態様の前述の可能な実施形態のうちのいずれか1つに準拠している、第4の態様の第7の可能な実施形態においては、アクセス対象のストレージエリアに記憶されているデータを低速書込みの形式でアクセス対象のストレージエリアに再書込みするステップの前に、方法は、アクセス対象のストレージエリアのアドレス情報を再書込みキューに保存するステップと、再書込みキューに保存されているアドレス情報に従ってアクセス対象のストレージエリアから、アクセス対象のストレージエリアに記憶されているデータを読み込むステップとをさらに含む。
【００８０】
再書込みを行う必要があるアクセス対象のストレージエリアのアドレス情報が、再書込みキューに書き込まれ、再書込み動作は、フラッシュメモリデバイスがアイドル状態であるまたは比較的軽い負荷を有している場合に行われ、それによって、再書込み動作が通常読込みアクセスと通常書込みアクセスとをブロックしてしまうことを回避している。
【００８１】
必要に応じて、読み込まれるデータも、現在の読込み動作が終了した後に、アクセス対象のストレージエリアに直ちに再書込みされ得るし、それによって、後続の再読込みに起因する消耗を回避している。
【００８２】
第5の態様に従って、本発明は、実行命令を含む、可読媒体を提供している。ストレージコントローラのプロセッサが実行命令を実行すると、ストレージコントローラは、前述の態様または前述の態様の可能な実施形態のうちのいずれか1つにおける方法を行う。
【００８３】
第6の態様に従って、本発明は、プロセッサと、メモリと、バスとを含む、ストレージコントローラを提供している。メモリは、実行命令を記憶するように構成され、プロセッサおよびメモリがバスを使用して接続されており、ストレージコントローラが動作すると、プロセッサは、ストレージコントローラが前述の態様または前述の態様の可能な実施形態のうちのいずれか1つにおける方法を行うように、メモリに記憶されている実行命令を実行する。
【００８４】
第7の態様に従って、本発明は、フラッシュメモリデバイスにアクセスするための装置を提供している。フラッシュメモリデバイスに対するアクセスのタイプは、書込み動作と読込み動作とを含み、フラッシュメモリデバイスに対する書込み動作の形式は、高速書込みと低速書込みとを含み、高速書込みの書込み速度は、低速書込みの書込み速度より大きい。装置は、アクセス対象のストレージエリアのための第1の書込みアクセス要求を受信するように構成される、受信ユニットと、アクセス対象のストレージエリアの履歴アクセスタイプを取得するように構成される、取得ユニットであって、履歴アクセスタイプは、第1の書込みアクセス要求前のアクセス対象のストレージエリアに対するアクセスのアクセスタイプである、取得ユニットと、アクセス対象のストレージエリアの履歴アクセスタイプが書込み動作である場合には、第1の書込みアクセス要求の書込み対象のデータを高速書込みの形式でアクセス対象のストレージエリアに書き込むように構成される、書き込みユニットとを含む。
【００８５】
第7の態様に準拠している、第7の態様の第1の可能な実施形態においては、取得ユニットがアクセス対象のストレージエリアの履歴アクセスタイプを取得するように構成されることは、取得ユニットがアクセス対象のストレージエリアのものであるとともに履歴アクセスレコードに記録されている履歴アクセスタイプを検索するように構成されることを含む。
【００８６】
第7の態様または第7の態様の前述の可能な実施形態のうちのいずれか1つに準拠している、第7の態様の第2の可能な実施形態においては、アクセス対象のストレージエリアのための第1の書込みアクセス要求を受信する前に、受信ユニットは、アクセス対象のストレージエリアのための第2の書込みアクセス要求を受信するようにさらに構成され、第2の書込みアクセス要求は、アクセス対象のストレージエリアのための最初の書込みアクセス要求であり、書き込みユニットは、第2の書込みアクセス要求の書込み対象のデータをアクセス対象のストレージエリアに書き込み、アクセス対象のストレージエリアの履歴アクセスタイプを履歴アクセスレコードに記録するようにさらに構成される。
【００８７】
第7の態様または第7の態様の前述の可能な実施形態のうちのいずれか1つに準拠している、第7の態様の第3の可能な実施形態においては、書き込みユニットが第2の書込みアクセス要求の書込み対象のデータをアクセス対象のストレージエリアに書き込むように構成されることは、書き込みユニットが第2の書込みアクセス要求の書込み対象のデータを低速書込みの形式でアクセス対象のストレージエリアに書き込むように構成されることを含む。
【００８８】
第7の態様または第7の態様の前述の可能な実施形態のうちのいずれか1つに準拠している、第7の態様の第4の可能な実施形態においては、装置は、削除ユニットをさらに含み、アクセス対象のストレージエリア内のデータが無効であると決定された場合には、削除ユニットは、アクセス対象のストレージエリアの記録されている履歴アクセスタイプを削除するように構成される。
【００８９】
第7の態様または第7の態様の前述の可能な実施形態のうちのいずれか1つに準拠している、第7の態様の第5の可能な実施形態においては、書き込みユニットは、アクセス対象のストレージエリアの履歴アクセスタイプが書込み動作ではない場合には、第1の書込みアクセス要求の書込み対象のデータを低速書込みの形式でアクセス対象のストレージエリアに書き込み、アクセス対象のストレージエリアの履歴アクセスタイプを更新するようにさらに構成される。
【００９０】
第7の態様または第7の態様の前述の可能な実施形態のうちのいずれか1つに準拠している、第7の態様の第6の可能な実施形態においては、書込み動作の形式は、通常書込みをさらに含み、通常書込みの書込み速度は、低速書込みの書込み速度より大きく高速書込みの書込み速度未満であり、書き込みユニットは、アクセス対象のストレージエリアの履歴アクセスタイプが書込み動作ではない場合には、第1の書込みアクセス要求の書込み対象のデータを通常書込みの形式でアクセス対象のストレージエリアに書き込み、アクセス対象のストレージエリアの履歴アクセスタイプを更新するようにさらに構成される。
【００９１】
第7の態様は、第2の態様における方法に対応する装置の実施形態である。したがって、第2の態様または第2の態様の可能な実施形態のうちのいずれか1つの説明は、それに対応するように、第7の態様または第7の態様の可能な実施形態のうちのいずれか1つに適用可能である。その詳細を本明細書では再び説明しない。
【００９２】
第8の態様に従って、本発明は、フラッシュメモリデバイスにアクセスするための装置を提供している。フラッシュメモリデバイスに対するアクセスのタイプは、書込み動作と読込み動作とを含む。フラッシュメモリデバイスに対する書込み動作の形式は、高速書込みと低速書込みとを含み、高速書込みの書込み速度は、低速書込みの書込み速度より大きい。フラッシュメモリデバイスに対する読込み動作の形式は、高速読込みと低速読込みとを含み、高速読込みの読込み速度は、低速読込みの読込み速度より大きい。装置は、アクセス対象のストレージエリアのための読込みアクセス要求を受信するように構成される、受信ユニットと、高速読込みの形式でアクセス対象のストレージエリアに対する読込み動作を行うように構成される、読み込みユニットと、アクセス対象のストレージエリアの履歴アクセスタイプを取得するように構成される、取得ユニットであって、履歴アクセスタイプは、読込みアクセス要求前のアクセス対象のストレージエリアに対するアクセスのアクセスタイプである、取得ユニットと、高速読込みを使用する復号が失敗し履歴アクセスタイプが読込み動作である場合には、アクセス対象のストレージエリアに記憶されているデータを低速書込みの形式でアクセス対象のストレージエリアに再書込みするように構成される、書き込みユニットとを含む。
【００９３】
第8の態様に準拠している、第8の態様の第1の可能な実施形態においては、取得ユニットがアクセス対象のストレージエリアの履歴アクセスタイプを取得するように構成されることは、取得ユニットがアクセス対象のストレージエリアのものであるとともに履歴アクセスレコードに記録されている履歴アクセスタイプを検索するように構成されることを含む。
【００９４】
第8の態様または第8の態様の前述の可能な実施形態のうちのいずれか1つに準拠している、第8の態様の第2の可能な実施形態においては、アクセス対象のストレージエリアのための読込みアクセス要求を受信する前に、受信ユニットは、アクセス対象のストレージエリアのための第2の書込みアクセス要求を受信するようにさらに構成され、第2の書込みアクセス要求は、アクセス対象のストレージエリアのための最初の書込みアクセス要求であり、書き込みユニットは、第2の書込みアクセス要求の書込み対象のデータをアクセス対象のストレージエリアに書き込み、アクセス対象のストレージエリアの履歴アクセスタイプを履歴アクセスレコードに記録するようにさらに構成される。
【００９５】
第8の態様または第8の態様の前述の可能な実施形態のうちのいずれか1つに準拠している、第8の態様の第3の可能な実施形態においては、書き込みユニットが第2の書込みアクセス要求の書込み対象のデータをアクセス対象のストレージエリアに書き込むように構成されることは、書き込みユニットが第2の書込みアクセス要求の書込み対象のデータを低速書込みの形式でアクセス対象のストレージエリアに書き込むように構成されることを含む。
【００９６】
第8の態様または第8の態様の前述の可能な実施形態のうちのいずれか1つに準拠している、第8の態様の第4の可能な実施形態においては、装置は、削除ユニットをさらに含み、アクセス対象のストレージエリア内のデータが無効であると決定された場合には、削除ユニットは、アクセス対象のストレージエリアの記録されている履歴アクセスタイプを削除するように構成される。
【００９７】
第8の態様または第8の態様の前述の可能な実施形態のうちのいずれか1つに準拠している、第8の態様の第5の可能な実施形態においては、読み込みユニットは、高速読込みを使用する復号が失敗した場合には、低速読込みの形式でアクセス対象のストレージエリアに対する読込み動作を行うようにさらに構成される。
【００９８】
第8の態様または第8の態様の前述の可能な実施形態のうちのいずれか1つに準拠している、第8の態様の第6の可能な実施形態においては、読込み動作の形式は、通常読込みをさらに含み、通常読込みの読込み速度は、低速読込みの読込み速度より大きく高速読込みの読込み速度未満であり、読み込みユニットは、高速読込みを使用する復号が失敗した場合には、通常読込みの形式でアクセス対象のストレージエリアに対する読込み動作を行うようにさらに構成される。
【００９９】
第8の態様または第8の態様の前述の可能な実施形態のうちのいずれか1つに準拠している、第8の態様の第7の可能な実施形態においては、書き込みユニットは、履歴アクセスタイプが読込み動作ではない場合には、履歴アクセスタイプを更新するようにさらに構成される。
【０１００】
第8の態様または第8の態様の前述の可能な実施形態のうちのいずれか1つに準拠している、第8の態様の第8の可能な実施形態においては、アクセス対象のストレージエリアに記憶されているデータを低速書込みの形式でアクセス対象のストレージエリアに再書込みする前に、書き込みユニットは、アクセス対象のストレージエリアのアドレス情報を再書込みキューに保存するようにさらに構成され、読み込みユニットは、再書込みキューに保存されているアドレス情報に従ってアクセス対象のストレージエリアから、アクセス対象のストレージエリアに記憶されているデータを読み込むようにさらに構成される。
【０１０１】
第8の態様は、第3の態様における方法に対応する装置の実施形態である。したがって、第3の態様または第3の態様の可能な実施形態のうちのいずれか1つの説明は、それに対応するように、第8の態様または第8の態様の可能な実施形態のうちのいずれか1つに適用可能である。その詳細を本明細書では再び説明しない。
【０１０２】
第9の態様に従って、本発明は、フラッシュメモリデバイスにアクセスするための装置を提供している。フラッシュメモリデバイスに対するアクセスのタイプは、書込み動作と読込み動作とを含む。フラッシュメモリデバイスに対する書込み動作の形式は、高速書込みと低速書込みとを含み、高速書込みの書込み速度は、低速書込みの書込み速度より大きい。装置は、アクセス対象のストレージエリアのための読込みアクセス要求を受信するように構成される、受信ユニットと、アクセス対象のストレージエリアの履歴アクセス情報を取得するように構成される、取得ユニットであって、履歴アクセス情報は、アクセス対象のストレージエリアの履歴アクセスタイプと書込み速度マークとを含み、書込み速度マークは、アクセス対象のストレージエリアに記憶されているデータに対する書込み動作の形式を示すために使用され、履歴アクセスタイプは、読込みアクセス要求前のアクセス対象のストレージエリアに対するアクセスのアクセスタイプである、取得ユニットと、履歴アクセスタイプが読込み動作であるとともに書込み速度マークが低速書込みを示していない場合には、アクセス対象のストレージエリアに記憶されているデータを低速書込みの形式でアクセス対象のストレージエリアに再書込みするように構成される、書き込みユニットとを含む。
【０１０３】
第9の態様に準拠している、第9の態様の第1の可能な実施形態においては、取得ユニットがアクセス対象のストレージエリアの履歴アクセス情報を取得するように構成されることは、取得ユニットがアクセス対象のストレージエリアのものであるとともに履歴アクセスレコードに記録されている履歴アクセス情報を検索するように構成されることを含む。
【０１０４】
第9の態様または第9の態様の前述の可能な実施形態のうちのいずれか1つに準拠している、第9の態様の第2の可能な実施形態においては、アクセス対象のストレージエリアのための読込みアクセス要求を受信する前に、受信ユニットは、アクセス対象のストレージエリアのための第2の書込みアクセス要求を受信するようにさらに構成され、第2の書込みアクセス要求は、アクセス対象のストレージエリアのための最初の書込みアクセス要求であり、書き込みユニットは、第2の書込みアクセス要求の書込み対象のデータをアクセス対象のストレージエリアに書き込み、アクセス対象のストレージエリアの履歴アクセス情報を履歴アクセスレコードに記録するようにさらに構成される。
【０１０５】
第9の態様または第9の態様の前述の可能な実施形態のうちのいずれか1つに準拠している、第9の態様の第3の可能な実施形態においては、書き込みユニットが第2の書込みアクセス要求の書込み対象のデータをアクセス対象のストレージエリアに書き込むように構成されることは、書き込みユニットが第2の書込みアクセス要求の書込み対象のデータを低速書込みの形式でアクセス対象のストレージエリアに書き込むように構成されることを含む。
【０１０６】
第9の態様または第9の態様の前述の可能な実施形態のうちのいずれか1つに準拠している、第9の態様の第4の可能な実施形態においては、装置は、削除ユニットをさらに含み、アクセス対象のストレージエリア内のデータが無効であると決定された場合には、削除ユニットは、アクセス対象のストレージエリアの記録されている履歴アクセス情報を削除するように構成される。
【０１０７】
第9の態様または第9の態様の前述の可能な実施形態のうちのいずれか1つに準拠している、第9の態様の第5の可能な実施形態においては、アクセス対象のストレージエリアに記憶されているデータを低速書込みの形式でアクセス対象のストレージエリアに再書込みした後に、書き込みユニットは、書込み速度マークを低速書込みに更新するようにさらに構成される。
【０１０８】
第9の態様または第9の態様の前述の可能な実施形態のうちのいずれか1つに準拠している、第9の態様の第6の可能な実施形態においては、装置は、読み込みユニットをさらに含み、取得ユニットがアクセス対象のストレージエリアの履歴アクセス情報を取得した後に、読み込みユニットは、書込み速度マークに従ってアクセス対象のストレージエリアに対する読込み動作を行うように構成され、高速書込みは、低速読込みに対応し、低速書込みは、高速読込みに対応する。
【０１０９】
第9の態様または第9の態様の前述の可能な実施形態のうちのいずれか1つに準拠している、第9の態様の第7の可能な実施形態においては、装置は、読み込みユニットをさらに含み、アクセス対象のストレージエリアに記憶されているデータを低速書込みの形式でアクセス対象のストレージエリアに再書込みする前に、書き込みユニットは、アクセス対象のストレージエリアのアドレス情報を再書込みキューに保存するようにさらに構成され、読み込みユニットは、再書込みキューに保存されているアドレス情報に従ってアクセス対象のストレージエリアから、アクセス対象のストレージエリアに記憶されているデータを読み込むように構成される。
【０１１０】
第9の態様は、第4の態様における方法に対応する装置の実施形態である。したがって、第4の態様または第4の態様の可能な実施形態のうちのいずれか1つの説明は、それに対応するように、第9の態様または第9の態様の可能な実施形態のうちのいずれか1つに適用可能である。その詳細を本明細書では再び説明しない。
【０１１１】
第10の態様に従って、本発明は、フラッシュメモリデバイスを提供する。フラッシュメモリデバイスに対するアクセスのタイプは、書込み動作と読込み動作とを含み、フラッシュメモリデバイスに対する書込み動作の形式は、高速書込みと低速書込みとを含み、高速書込みの書込み速度は、低速書込みの書込み速度より大きい。フラッシュメモリデバイスは、ストレージコントローラとフラッシュメモリアレイとを含み、フラッシュメモリアレイは、データを記憶するように構成され、ストレージコントローラは、フラッシュメモリアレイのアクセス対象のストレージエリアのための第1の書込みアクセス要求を受信することと、アクセス対象のストレージエリアの履歴アクセスタイプを取得することであって、履歴アクセスタイプは、第1の書込みアクセス要求前のアクセス対象のストレージエリアに対するアクセスのアクセスタイプである、ことと、アクセス対象のストレージエリアの履歴アクセスタイプが書込み動作である場合には、第1の書込みアクセス要求の書込み対象のデータを高速書込みの形式でアクセス対象のストレージエリアに書き込むこととをするように構成される。
【０１１２】
第10の態様に準拠している、第10の態様の第1の可能な実施形態においては、ストレージコントローラは、アクセス対象のストレージエリアの履歴アクセスタイプが書込み動作ではない場合には、第1の書込みアクセス要求の書込み対象のデータを低速書込みの形式でアクセス対象のストレージエリアに書き込み、アクセス対象のストレージエリアの履歴アクセスタイプを更新するようにさらに構成される。
【０１１３】
第10の態様に準拠している、第10の態様の第2の可能な実施形態においては、書込み動作の形式は、通常書込みをさらに含み、通常書込みの書込み速度は、低速書込みの書込み速度より大きく高速書込みの書込み速度未満であり、ストレージコントローラは、アクセス対象のストレージエリアの履歴アクセスタイプが書込み動作ではない場合には、第1の書込みアクセス要求の書込み対象のデータを通常書込みの形式でアクセス対象のストレージエリアに書き込み、アクセス対象のストレージエリアの履歴アクセスタイプを更新するようにさらに構成される。
【０１１４】
第10の態様は、第2の態様における方法に対応する装置の実施形態である。したがって、第2の態様または第2の態様の可能な実施形態のうちのいずれか1つの説明は、それに対応するように、第10の態様または第10の態様の可能な実施形態のうちのいずれか1つに適用可能である。その詳細を本明細書では再び説明しない。
【０１１５】
第11の態様に従って、本発明は、フラッシュメモリデバイスを提供する。フラッシュメモリデバイスに対するアクセスのタイプは、書込み動作と読込み動作とを含む。フラッシュメモリデバイスに対する書込み動作の形式は、高速書込みと低速書込みとを含み、高速書込みの書込み速度は、低速書込みの書込み速度より大きい。フラッシュメモリデバイスに対する読込み動作の形式は、高速読込みと低速読込みとを含み、高速読込みの読込み速度は、低速読込みの読込み速度より大きい。装置は、ストレージコントローラとフラッシュメモリアレイとを含み、フラッシュメモリアレイは、データを記憶するように構成され、ストレージコントローラは、フラッシュメモリアレイのアクセス対象のストレージエリアのための読込みアクセス要求を受信することと、高速読込みの形式でアクセス対象のストレージエリアに対する読込み動作を行うことと、アクセス対象のストレージエリアの履歴アクセスタイプを取得することであって、履歴アクセスタイプは、読込みアクセス要求前のアクセス対象のストレージエリアに対するアクセスのアクセスタイプである、ことと、高速読込みを使用する復号が失敗し履歴アクセスタイプが読込み動作である場合には、アクセス対象のストレージエリアに記憶されているデータを低速書込みの形式でアクセス対象のストレージエリアに再書込みすることとをするように構成される。
【０１１６】
第11の態様に準拠している、第11の態様の第1の可能な実施形態においては、ストレージコントローラは、高速読込みを使用する復号が失敗した場合には、低速読込みの形式でアクセス対象のストレージエリアに対する読込み動作を行うようにさらに構成される。
【０１１７】
第11の態様に準拠している、第11の態様の第2の可能な実施形態においては、読込み動作の形式は、通常読込みをさらに含み、通常読込みの読込み速度は、低速読込みの読込み速度より大きく高速読込みの読込み速度未満であり、ストレージコントローラは、高速読込みを使用する復号が失敗した場合には、通常読込みの形式でアクセス対象のストレージエリアに対する読込み動作を行うようにさらに構成される。
【０１１８】
第11の態様は、第3の態様における方法に対応する装置の実施形態である。したがって、第3の態様または第3の態様の可能な実施形態のうちのいずれか1つの説明は、それに対応するように、第11の態様または第11の態様の可能な実施形態のうちのいずれか1つに適用可能である。その詳細を本明細書では再び説明しない。
【０１１９】
第12の態様に従って、本発明は、フラッシュメモリデバイスを提供する。フラッシュメモリデバイスに対するアクセスのタイプは、書込み動作と読込み動作とを含む。フラッシュメモリデバイスに対する書込み動作の形式は、高速書込みと低速書込みとを含み、高速書込みの書込み速度は、低速書込みの書込み速度より大きい。装置は、ストレージコントローラとフラッシュメモリアレイとを含み、フラッシュメモリアレイは、データを記憶するように構成され、ストレージコントローラは、アクセス対象のストレージエリアのための読込みアクセス要求を受信することと、アクセス対象のストレージエリアの履歴アクセス情報を取得することであって、履歴アクセス情報は、アクセス対象のストレージエリアの履歴アクセスタイプと書込み速度マークとを含み、書込み速度マークは、アクセス対象のストレージエリアに記憶されているデータに対する書込み動作の形式を示すために使用され、履歴アクセスタイプは、読込みアクセス要求前のアクセス対象のストレージエリアに対するアクセスのアクセスタイプである、ことと、履歴アクセスタイプが読込み動作であるとともに書込み速度マークが低速書込みを示していない場合には、アクセス対象のストレージエリアに記憶されているデータを低速書込みの形式でアクセス対象のストレージエリアに再書込みすることとをするように構成される。
【０１２０】
第12の態様に準拠している、第12の態様の第1の可能な実施形態においては、アクセス対象のストレージエリアに記憶されているデータを低速書込みの形式でアクセス対象のストレージエリアに再書込みした後に、ストレージコントローラは、書込み速度マークを低速書込みに更新するようにさらに構成される。
【０１２１】
第12の態様または第12の態様の前述の可能な実施形態のうちのいずれか1つに準拠している、第12の態様の第2の可能な実施形態においては、アクセス対象のストレージエリアの履歴アクセス情報を取得した後に、ストレージコントローラは、書込み速度マークに従ってアクセス対象のストレージエリアに対する読込み動作を行うようにさらに構成され、フラッシュメモリデバイスに対する読込み動作の形式は、高速読込みと低速読込みとを含み、高速読込みの読込み速度は、低速読込みの読込み速度より大きく、高速書込みは、低速読込みに対応し、低速書込みは、高速読込みに対応する。
【０１２２】
第12の態様は、第4の態様における方法に対応する装置の実施形態である。したがって、第4の態様または第4の態様の可能な実施形態のうちのいずれか1つの説明は、それに対応するように、第12の態様または第12の態様の可能な実施形態のうちのいずれか1つに適用可能である。その詳細を本明細書では再び説明しない。
【０１２３】
本発明の実施形態において開示した技術的ソリューションに従って、データのアクセス特性に基づいて、データは、リードオンリーデータ、ライトオンリーデータ、およびクロスアクセスデータの3つのタイプに分類され、データの3つのタイプは、履歴アクセスタイプを使用して互いに区別される。したがって、リードオンリー特性を有するデータのための速度が調整され、高速読込みを実現するために低速書込みが行われ、その結果、書込みパフォーマンスにほとんど影響を及ぼすことなく読込みパフォーマンスを大幅に改善している。ライトオンリー特性を有するデータのための速度が調整され、高速書込みが行われ、その結果、読込みパフォーマンスにほとんど影響を及ぼすことなく書込みパフォーマンスを大幅に改善している。さらに、クロスアクセス特性を有するデータのための速度も調整されてもよく、通常書込みが行われ、それによって、読込み速度と書込み速度との間のバランスを実現している。
【０１２４】
本発明の実施形態における技術的ソリューションをより明確に説明するために、以下で、実施形態を説明するために必要とされる添付の図面を簡単に説明している。以下の説明における添付の図面が本発明の実施形態の一部を示しているに過ぎず、当業者が創造的努力無しにこれらの添付の図面から他の図面をさらに導出し得ることは明らかであろう。
【図面の簡単な説明】
【０１２５】
【図１】データアクセスシステムの論理構造の概略図である。
【図２】本発明の実施形態による、ストレージコントローラのハードウェア構造の概略図である。
【図３】本発明の実施形態による、ISPPプログラミングの概略フローチャートである。
【図４】本発明の実施形態による、硬判定のための閾値電圧の分布図である。
【図５】本発明の実施形態による、軟判定のための閾値電圧の分布図である。
【図６】本発明の実施形態による、フラッシュメモリデバイスにアクセスするための方法のフローチャートの例である。
【図７】本発明の実施形態による、履歴アクセス情報エントリの概略図である。
【図８】本発明の実施形態による、フラッシュメモリデバイスにアクセスするための方法のフローチャートの例である。
【図９】本発明の実施形態による、履歴アクセス情報エントリの概略図である。
【図１０】本発明の実施形態による、フラッシュメモリデバイスにアクセスするための装置の論理構造の概略図である。
【図１１】本発明の実施形態による、フラッシュメモリデバイスにアクセスするための装置の論理構造の概略図である。
【図１２】本発明の実施形態による、フラッシュメモリデバイスにアクセスするための装置の論理構造の概略図である。
【発明を実施するための形態】
【０１２６】
以下で、添付の図面を参照して本発明の実施形態を説明している。
【０１２７】
図1は、本発明の実施形態による、フラッシュメモリデバイスにアクセスするためのシステム100の論理構造の概略図である。図1に示しているように、システム100は、オペレーティングシステム102およびフラッシュメモリデバイス108を含む。
【０１２８】
オペレーティングシステム102は、ルーチンシステムタスク(メモリ管理、ストレージデバイス制御、および電力管理など)を制御および管理するとともに様々なソフトウェアおよびハードウェアコンポーネントの間の通信を円滑にするにために使用される様々なソフトウェアコンポーネントおよび/またはドライバを含む。オペレーティングシステム102は、Darwin、RTXC、Linux(登録商標)、Unix、OS X、MAC OS、もしくはWindow、またはVxWorkなどの組み込みオペレーティングシステムであり得る。このことは本発明の本実施形態に限定されない。
【０１２９】
特に、オペレーティングシステム102は、ファイルシステム104およびドライバ106を含む。ファイルシステム104は、フラッシュメモリデバイス108上のファイルを指定するためにオペレーティングシステム102によって使用される方法およびデータ構造、すなわち、フラッシュメモリデバイス108上のファイルを構造化するための方法である。ファイルシステム104は、FAT、NTFS、exFAT、RAW、Ext2、Ext3、Ext4、Btrf、ZFS、HFS、HFS+、ReiserFS、JFS、VMFS、XFSUFS、またはVXFSなどの任意のタイプのものであり得る。
【０１３０】
ユーザのアプリケーションプログラムは、オペレーティングシステム102において動作する。アプリケーションプログラムは、下層のハードウェアにアクセスすることによってヒューマンマシンインタラクションを実施する。ドライバ106は、アプリケーションプログラムとハードウェアとの間のインタラクションのためのブリッジである。一方、アプリケーションプログラムは、対応する命令をドライバ106に送信することによってハードウェアを制御する。他方、ドライバ106は、アプリケーションプログラムに、ハードウェアの読込みおよび書込み状態およびハードウェアから取得したデータを伝達し、それによって、アプリケーションプログラムと下層のハードウェアとの間のインタラクションを実施する。
【０１３１】
オペレーティングシステム102は、ハードディスクドライブインターフェース技術(Advanced Technology Attachment、ATA)を使用してフラッシュメモリデバイス108に接続されている。
【０１３２】
フラッシュメモリデバイス108は、フラッシュメモリに基づいてストレージデバイスであり、例えば、フラッシュメモリデバイス108は、SSDであり得る。フラッシュメモリデバイス108は、キャッシュ110、ストレージコントローラ112、およびフラッシュメモリアレイ130を含む。
【０１３３】
ストレージコントローラ112は、ホストインターフェース114、フラッシュ変換レイヤ(Flash Translation Layer、FTL)116、およびフラッシュメモリインターフェース128を含む。
【０１３４】
ホストインターフェース114は、ホストに接続し、オペレーティングシステム102とのデータ伝送を制御するように構成される。
【０１３５】
フラッシュメモリインターフェース128は、フラッシュメモリアレイ130に接続し、フラッシュメモリアレイ130とのデータ伝送を制御するように構成される。
【０１３６】
フラッシュ変換レイヤ116は、不良ブロック管理(Bad Block Management、BBM)モジュール118、ウェアレベリング(Wear leveling、WL)モジュール120、アドレス変換モジュール122、誤り検査および訂正(Error Checking and Correction、ECC)モジュール124、およびガベージコレクション(Garbage Collection、GC)モジュール126を含む。
【０１３７】
フラッシュメモリアレイ130は、複数のブロック(Block)に分割され得るし、各ブロックは、複数のページ(Page)にさらに分割され得る。データは、ページに直ちに書き込まれ得る。しかしながら、データをブロックで消去する必要がある。既存のデータを消去する前に新規データを書き込むことはできない。しかしながら、オペレーティングシステム102は、ハードディスクドライブ(Hard Disk Drive、HDD)のセクタのサイズに従ってデータを通常読み込みおよび書き込みをする。その結果として、オペレーティングシステム102によって現在使用されているファイルシステム104を使用してSSDを管理することができず、この問題を解決するためにより高度且つ複雑なファイルシステムにファイルシステム104を置換する必要がある。しかしながら、この場合には、オペレーティングシステム102におけるロードが増大する。オペレーティングシステム102におけるロードの増大を回避するために、フラッシュメモリデバイス108は、ソフトウェアを使用して、フラッシュメモリアレイ130に対する動作を磁気ディスクの独立セクタに対する動作に仮想化している。これがフラッシュ変換レイヤ116の機能である。
【０１３８】
フラッシュ変換レイヤ116は、ファイルシステム104と物理的な媒体(フラッシュメモリアレイ130)との間に存在する。オペレーティングシステム102は、従来通り、論理ブロックアドレス(Logical Block Address、LBA)を操作する必要だけでよい。フラッシュ変換レイヤ116は、論理アドレスから物理ブロックアドレス(Physical Block Address、PBA)への変換についてのすべての作業の責任を負う。
【０１３９】
不良ブロック管理モジュール118は、フラッシュメモリアレイ130の不良ブロックを管理するように構成される。フラッシュメモリアレイ130にあるとともに読み込み/書き込みまたは消去中にデータの精度を保証することができない不安定なブロックを不良ブロックと称する。不良ブロック管理モジュール118は、不良ブロックテーブルを使用して不良ブロックを管理する。不良ブロックテーブルを作成した後に、不良ブロック管理モジュール118は、正常ブロックに不良ブロックテーブルを保存し、各リスタートの後に、ブロック内部からキャッシュ110に不良ブロックテーブルをロードする。書込みをページ内のフラッシュメモリアレイ130に対して行う。その動作中に、ブロック内にある別のページ内のデータが影響を受ける場合がある。したがって、書込み中に誤りが発生した場合には、不良ブロック管理モジュール118は、不良ブロックを正常ブロックで置換し、データを新規正常ブロックに再書込みし、検出された不良ブロック内にある残りの有効ページ内のすべてのデータを新規ブロックにコピーし、不良ブロックとして先のブロックをマークし、不良ブロックテーブル内のアドレスを更新し、元の不良ブロックのアドレスを新規正常ブロックに再マッピングする。
【０１４０】
フラッシュメモリアレイ130の寿命は、プログラミング/消去回数に従って計算され、ウェアレベリングモジュール120は、フラッシュメモリアレイ130内の各ブロックが同一の書込み回数を有していることを保証するための機構である。本機構を用いなければ、フラッシュメモリアレイ130内のフラッシュメモリチップが同時にライフサイクルに至ることはできない。論理アドレス領域内にあるユーザのデータは、異なる更新速度を有する。いくつかのデータは頻繁に更新される必要があるし、いくつかのデータは長時間変更させる必要がない。したがって、WL機構を用いなければ、頻繁に更新されるデータが位置するフラッシュメモリチップの寿命が最初に終了し、比較的頻繁に変更されないデータが位置するフラッシュメモリチップは低損耗度を有することになる。このような状況を回避するために、WL機構は、フラッシュメモリアレイ130内のフラッシュメモリチップの比較的等しい損耗度を維持する必要がある。
【０１４１】
特に、ウェアレベリングモジュール120は、アドレス変換モジュール122と協調する。オペレーティングシステム102内のアプリケーションプログラムが同一の論理アドレスを再書込みまたは更新するたびに、アドレス変換モジュール122は、論理アドレスを別の異なる物理アドレスに動的にマッピングし、特定の「アドレスマッピングテーブル」にマッピング関係を保存する。失効した物理アドレスは、「無効」としてマークされ、後続の消去動作を待機する。ウェアレベリングモジュール120は、本マッピングプロセスにおける各ストレージチップのプログラミング/消去の頻度を制御する。このように、すべての物理ブロックは、同一の損耗範囲内にあり同時に「寿命を迎える」ように制御され得る。
【０１４２】
誤り検査および訂正モジュール124は、データ読込み中の誤りを検出および訂正するように構成される。データが書き込まれると、ストレージコントローラ112内部の誤り検査および訂正モジュール124は、データに従ってECCシグニチャを生成する。ECCシグニチャは、フラッシュメモリページの最終部内にあるスペアエリア(Spare Area、SA)に一般的に記憶される。データがフラッシュメモリページから読み込まれる場合には、誤り検査および訂正モジュール124は、ECCシグニチャを読み込み、読み込まれたデータおよびECCシグニチャに従って、誤りがデータに発生しているかどうかを決定する。読み込まれたデータが誤りビットを含むと検出された場合には、ECCアルゴリズムを使用して検出された誤りを訂正する必要がある。ECCアルゴリズムは、BCH符号化、LDPC符号化などであり得る。LDPC符号化を、本発明の本実施形態におけるソリューションを説明するために使用している。しかしながら、ECCのために使用される符号化アルゴリズムは本発明の本実施形態に限定されないことを理解されたい。
【０１４３】
ガベージコレクションモジュール126は、フラッシュメモリブロック内にある「有効」ページ内のデータを別のデータブロックにコピーし、先のデータブロック内にあるデータを完全に消去するように特に構成される。従来のHDDとは異なり、元のデータをフラッシュメモリアレイ130に直ちに上書きすることはできない。フラッシュメモリデバイス108では、古いデータを、新規データが書き込みされ得る前に消去する必要がある。フラッシュメモリアレイ130については、ガベージコレクションは、既存のデータを別のフラッシュメモリロケーションに移動していくつか不要となったデータを完全に消去するプロセスを指す。データをページ内のフラッシュメモリアレイ130に直ちに書き込みしてもよいが、データをブロック内にあるフラッシュメモリアレイ130から消去する必要がある。したがって、不要となったデータを消去するために、フラッシュメモリアレイ130では、まず、ブロックに含まれる有効データを別のブロック内にあるページにコピーする必要がある。このように、元のブロックに含まれる不要となったデータは、ブロックで消去され得る。消去を、新規データが書き込みされ得る前に行う必要がある。
【０１４４】
必要に応じて、フラッシュメモリデバイス108は、トリム(Trim)機能をさらにサポートする。トリムは、ATA命令であり、オペレーティングシステム102は、「無効」アドレスを占有しているデータをストレージコントローラ112に通知するために、命令をストレージコントローラ112に送信する。ユーザがオペレーティングシステム102内のファイルを削除した場合には、オペレーティングシステム102は、ファイルのデータを実際には削除しておらず、その代わりに、オペレーティングシステム102は、「無効」としてデータによって占有されているアドレスをマークするだけである。すなわち、アドレスにおけるデータを使用のために上書きすることができる。しかしながら、これは、ファイルシステム104のレイヤにおける動作のみである。フラッシュメモリデバイス108は、新規データがこれらのアドレスで書き込まれることになることをオペレーティングシステム102がフラッシュメモリデバイス108に通知するまで、データが既に「無効」である特定のアドレスを把握していない。フラッシュメモリアレイ130は上書きを許可しておらず、書込みが行われ得る前に消去を行う必要がある。「アイドル」状態のフラッシュメモリブロックを取得して書込みを行うために、トリム機構を用いなければ、ストレージコントローラ112は、どの「削除済み」データページが既に「無効」となっているかを事前に把握することができず、オペレーティングシステム102が同一のロケーションにデータを書き込む必要がある場合のみどのデータを消去することができるかを知ることになる。したがって、最大限の最適化を最も適切な時点において行うことができない。その結果として、GCの効率が影響を受けることになり、フラッシュメモリアレイ130の寿命が影響を受けることになる。
【０１４５】
キャッシュ110は、不良ブロックテーブルまたは開始時の論理アドレスから物理アドレスへのマッピングに関する「アドレスマッピングテーブル」などのデータを記憶するように構成される。ストレージコントローラ112は、フラッシュメモリアレイ130に不良ブロックテーブル、「アドレスマッピングテーブル」などを保存する。各リスタートの後に、ストレージコントローラ112は、フラッシュメモリアレイ130からキャッシュ110へと不良ブロックテーブルおよび「アドレスマッピングテーブル」などのデータをロードする。
【０１４６】
フラッシュメモリアレイ130は、複数のブロック(block)に分割され得るし、各ブロック(block)は、複数のページ(pages)にさらに分割され得る。データは、ページに直ちに書き込まれ得るし、ブロックで消去され得る。古いデータを、新規データが書き込みされ得る前に消去する必要がある。
【０１４７】
フラッシュメモリアレイ130は、シングルレベルセル(Single-level cell、SLC)またはマルチレベルセル(Multi-level cell、MLC)を使用し得る。各SLCセルは、1ビットの情報を記憶し、各MLCセルは、2ビット以上のデータを記憶し得る。このことは本発明の本実施形態に限定されない。
【０１４８】
一例としてシステム100に関与するものおよびその関与するものの間の関係を説明するために図1を使用したに過ぎないことを理解されたい。したがって、説明したシステム100は極めて単純化されている。システム100を本発明の本実施形態においてのみ概略的に説明している。実際の使用においては、システム100は、より多くまたはより少ないコンポーネントを含み得る。本発明の本実施形態は、システム100の実施形態に対するいかなる限定もするものではない。
【０１４９】
図2は、本発明の実施形態による、ストレージコントローラ200のハードウェア構造の概略図である。図2に示しているように、ストレージコントローラ200は、プロセッサ202、メモリ204、入力/出力インターフェース206、通信インターフェース208、およびバス210を含む。プロセッサ202、メモリ204、入力/出力インターフェース206、および通信インターフェース208は、バス210を使用して互いに通信および接続している。
【０１５０】
プロセッサ202は、ストレージコントローラ200のコントロールセンタであり、関連プログラムを実行して本発明の本実施形態において提供した技術的ソリューションを実施するように構成される。プロセッサ202は、関連プログラムを実行して本発明の本実施形態において提供した技術的ソリューションを実施するために、汎用中央処理ユニット(Central Processing Unit、CPU)、マイクロプロセッサ、特定用途向け集積回路(Application Specific Integrated Circuit、ASIC)、または1つまたは複数の集積回路であり得る。特に別段の説明がない限り、本発明においては、特定の機能を実行するように構成されるコンポーネント、例えば、プロセッサ202またはメモリ204は、対応する機能を実行するために汎用コンポーネントを構成することによって実装されてもよい、または、特定の機能を特別に実行する専用コンポーネントを使用して実装されてもよい。このことは本発明に限定されない。
【０１５１】
メモリ204は、リードオンリーメモリ(Read Only Memory、ROM)、静的ストレージデバイス、動的ストレージデバイス、またはランダムアクセスメモリ(Random Access Memory、RAM)であり得る。メモリ204は、オペレーティングシステムおよび別のアプリケーションプログラムを記憶し得る。本発明の本実施形態において提供した技術的ソリューションがソフトウェアまたはファームウェアによって実施される場合には、本発明の本実施形態において提供した技術的ソリューションを実施するためのプログラムコードは、メモリ204に記憶されるとともにプロセッサ202によって実行される。メモリ204は、プロセッサ202と統合され得る、または、プロセッサ202内に統合され得る、または、プロセッサ202から独立した1つまたは複数のストレージユニットであり得る。
【０１５２】
プロセッサ202によって実行されることになるプログラムコードは、フラッシュメモリまたはプロセッサ202に接続されているメモリ204に記憶され得る。必要に応じて、メモリ204は、RAMであり、フラッシュメモリに記憶されているプログラムコード(例えば、通信モジュールまたはアクセス制御モジュール)は、プロセッサ202による実行のためにメモリ204にコピーされる。
【０１５３】
メモリ204は、不良ブロックテーブルおよびアドレスマッピングテーブルまたは本発明の本実施形態における別のマッピングテーブルを記憶するようにさらに構成される。より詳細には、システムが開始する場合には、ストレージコントローラ200は、プロセッサ202による使用のために、不良ブロックテーブルおよびアドレスマッピングテーブルまたはフラッシュメモリに記憶されている別のマッピングテーブルをメモリ204にロードする。
【０１５４】
図2に示しているように、ストレージコントローラ200のメモリ204は、アクセス制御モジュールを含む。プロセッサ202は、フラッシュメモリデバイスへのアクセスを実施するために、アクセス制御モジュールのプログラムコードを実行する。
【０１５５】
必要に応じて、メモリ204は、図1中のストレージコントローラ112内にある不良ブロック管理モジュール118、ウェアレベリングモジュール120、アドレス変換モジュール122、誤り検査および訂正モジュール124、またはガベージコレクションモジュール126のうちの1つまたは複数をさらに含む。
【０１５６】
入力/出力インターフェース206は、入力されるデータおよび情報、ならびに動作結果などの出力データを受信するように構成される。
【０１５７】
通信インターフェース208は、それに限定されるわけではないが、例えば、トランシーバなどの送受信装置を使用して、ストレージコントローラ200と別のデバイスまたは通信ネットワークとの間の通信を実施する。
【０１５８】
バス210は、ストレージコントローラ200のコンポーネント間で情報(例えば、プロセッサ202、メモリ204、入力/出力インターフェース206、および通信インターフェース208)を伝達するための経路を含み得る。
【０１５９】
プロセッサ202、メモリ204、入力/出力インターフェース206、通信インターフェース208、およびバス210のみをストレージコントローラ200に関して図2に示したが、特定の実施形態プロセスにおいては、ストレージコントローラ200は通常の動作に必須の別のデバイスをさらに含むことを当業者は理解すべきであることに留意されたい。加えて、特定の要件によっては、ストレージコントローラ200が別の追加の機能を実施するためのハードウェアデバイスをさらに含み得ることを当業者は理解すべきである。加えて、ストレージコントローラ200がまた図2に示したデバイスのすべてというよりむしろ本発明の実施形態の本実施形態に必須のデバイスのみを含み得ることを当業者は理解すべきである。
【０１６０】
図2に示したハードウェア構造および前述の説明は、本発明の実施形態において提供したフラッシュメモリデバイスにアクセスするための様々な装置およびシステムに適用可能であり、本発明の実施形態において提供した様々なフラッシュメモリデバイスにアクセスするための方法を行うのに適している。
【０１６１】
データをページ内のフラッシュメモリに書き込む。書込み動作の時間は、データの伝送時間とデータの書込み時間(すなわち、プログラミング動作)との2つの部分を主に含む。バス上のデータのページの伝送時間は一定であり、書込み動作の時間はプログラミング動作の時間に主に依存する。データは、ISPPプログラミング方式でフラッシュメモリに一般的に書き込まれる。フラッシュセルが所定の電圧に達することを可能にするために、各ラウンドにおけるプログラミング電圧は、フラッシュセルが所定の電圧値に達するまでフラッシュセルをチャージするために、ステップ電圧によって徐々に電圧を増大させることによって変更される、ここで、ステップ電圧は固定である。
【０１６２】
特に、ISPPプログラミング動作の反復の各ラウンドは、プログラミングと検証との2つの部分を含む。図3に示しているように、プログラミング中に、プログラミング電圧が、フラッシュセル内の電荷を増大させるために、フラッシュセルに印加される。各回におけるプログラミング電圧は、ある期間の間、フラッシュセルで維持される。検証中に、比較的低電圧が、フラッシュセルが所定の値に達したかどうかを決定するために印加される。フラッシュセルが所定の値に達した場合には、チャージングは完了し、プログラミングは停止する。フラッシュセルが所定の値に達していない場合には、データの書込みが完了するまで、プログラミング電圧を1つのステップ電圧ずつ増大させてフラッシュセルを継続してチャージする。
【０１６３】
そのような反復プロセスとステップ電圧との間に比例関係が存在している。一方、ステップ電圧が高くなればなるほど、所定の電圧値に達するために必要となる反復量はより小さくなる。したがって、プログラミング時間は、ステップ電圧に反比例している。他方、プログラミングステップ電圧と誤り率との間に別の関係が存在している。ステップ電圧が高くなればなるほど、プログラミング精度はより低くなり、その結果、誤り率はより高くなる。ステップ電圧が低くなればなるほど、プログラミング精度はより高くなり、その結果、誤り率はより低くなる。したがって、書込み動作中のISPPプログラミングのためのステップ電圧は、後続の読込み動作中のデータの誤り率に影響を及ぼす。
【０１６４】
本発明の本実施形態においては、フラッシュメモリデバイスに対する書込み動作の形式は、ISPPプログラミングのための異なるステップ電圧に従って分類される。書込み動作は、高速書込みと低速書込みとを含む。高速書込みの書込み速度は、低速書込みの書込み速度より大きい。すなわち、高速書込みのISPPプログラミングのためのステップ電圧は、低速書込みのISPPプログラミングのためのステップ電圧より大きい。
【０１６５】
より詳細には、フラッシュメモリデバイスに対する書込み動作の形式は、通常書込みをさらに含み得る。通常書込みの書込み速度は、低速書込みの書込み速度より大きく高速書込みの書込み速度未満である。すなわち、通常書込みのISPPプログラミングのためのステップ電圧は、低速書込みのISPPプログラミングのためのステップ電圧より大きく、高速書込みのISPPプログラミングのためのステップ電圧未満である。
【０１６６】
本明細書における「高速書込み」はフラッシュメモリデバイスによってサポートされている高速書込み動作であってもよく、「低速書込み」はフラッシュメモリデバイスによってサポートされている低速書込み動作であってもよく、「通常書込み」はその速度が「低速書込み」のものと「高速書込み」のものとの間にある書込み動作であることを理解されたい。本発明の本実施形態においては、フラッシュメモリデバイスは、少なくとも2つのタイプの書込み動作の速度をサポートする。書込み動作の速度は、プログラミングステップ電圧によって一般的に決定される。高いプログラミングステップ電圧は高速書込み動作に対応し、低いプログラミングステップ電圧は低速書込み動作に対応する。本実施形態における高速書込みは、フラッシュメモリデバイスに対する書込み動作の速度のうちの最高速度または2番目に高い速度に対応し、本実施形態における低速書込みは、フラッシュメモリデバイスに対する書込み動作の速度のうちの最低速度または2番目に低い速度に対応する。例えば、2つのタイプの書込み動作の速度をサポートするフラッシュメモリデバイスについては、高速書込みは、高速度の書込み動作であり、低速書込みは、低速度の書込み動作である。3つ以上のタイプの書込み動作の速度をサポートするフラッシュメモリデバイスについては、高速書込みは、最高速度、2番目に高い速度、または比較的高速度の書込み動作であり、低速書込みは、最低速度、2番目に低い速度、または比較的低速度の書込み動作である。
【０１６７】
読込み動作の時間は、データの読込み時間とデータの伝送時間との2つの部分を主に含む。読込み時間と閾値電圧の数量との間には正の相関があり、伝送時間と送信したデータのボリュームとの間には正の相関がある。N個の閾値電圧が存在し、フラッシュメモリのフラッシュセルに対する電圧値がN+1個の領域に分割されていると仮定すると、N+1個の電圧エリアを表すのにceil(Log2(N+1))ビット必要になる。読込み時間とNとの間には正の相関が存在し、伝送時間とceil(Log2(N+1))との間には正の相関が存在し、ceil()は端数の切り上げを表す。
【０１６８】
LDPC符号が検査符号として使用されており2ビットのデータがフラッシュセルユニットに記憶されている例を説明のために使用する。読込み動作スキームについては、一般的に、LDPC硬判定復号が最初に使用される。図4は、LDPC硬判定のための閾値電圧の分布を示している。2つの隣接した状態の間に1つの閾値電圧のみが存在しており、4つの状態の間に合計3つの閾値電圧が存在している。読込み動作中に、読み込まれるデータページの各フラッシュセルに対する電圧は、フラッシュセルに対する電圧の状態を決定するために、3つの閾値電圧と比較される。3つの閾値電圧のみ存在しているため、読込み時間は比較的短い。フラッシュセルに対する電圧を4つの状態に分割しているため、情報を記録するのにceil(Log2(4))=2ビット必要となり、伝送時間は比較的短い。
【０１６９】
チェックが成功した場合には、読み込みは成功している。反対に、チェックが失敗した場合には、軟判定が復号のために使用される。図5は、LDPC軟判定のための閾値電圧の分布を示している。2つの隣接した状態の間に複数の閾値電圧が存在している。2つの状態の間に7つの閾値電圧が存在している例を図5における説明のために使用する。この場合には、4つの状態に対して合計21個の閾値電圧が存在しており、フラッシュセルに対する電圧を22エリアに分割している。読込み動作中に、読み込まれるデータページの各フラッシュセルに対する電圧は、フラッシュセルに対する電圧の状態を決定するために、21個の閾値電圧と比較される。この場合には、読込み動作の読込み時間は比較的長くなる。加えて、フラッシュセルに対する電圧を22個の状態に分割しているため、情報を記録するのにceil(Log2(22))=5ビット必要になり、伝送時間も比較的長くなる。復号がそれでも失敗した場合には、軟判定については、情報が正確に復号されるまで、隣接した状態の間にある閾値電圧の数量を徐々に増大して読込む精度を改善する。
【０１７０】
軟判定のための閾値電圧の分布は図5中の例に限定されないことを理解されたい。2つの隣接した状態の間にある閾値電圧の数量は、可変であり、LDPC復号のためのデータの許容誤り率を決定する。閾値電圧の数量が高くなればなるほど、正確な復号のために許容できる誤り率はより高くなる。
【０１７１】
低速書込みのためのステップ電圧は比較的低く、データを書き込む精度は高いことは、前述の説明から理解できよう。読込み動作を行う場合には、フラッシュメモリからデータを読み込む正確性はより高く、データは比較的容易に成功し得るが、書込み速度は低い。高速書込みのためのステップ電圧は比較的高く、書込み速度は高い。しかしながら、データを書き込む精度は比較的低い。読込み動作を行う場合には、フラッシュメモリからデータを読み込む正確性は比較的低く、フラッシュメモリ内のデータは、複数ラウンドの読込みまたは反復をして初めて、正確に読み込まれ得る。
【０１７２】
本発明の本実施形態においては、隣接した状態の間にある閾値電圧の異なる数量に従って、フラッシュメモリに対する読込み動作の形式は、高速読込みと低速読込みとを含む。高速読込みの読込み速度は、低速読込みの読込み速度より大きい。すなわち、高速読込みのための閾値電圧の数量は、低速読込みのための閾値電圧の数量未満である。
【０１７３】
より詳細には、フラッシュメモリに対する読込み動作の形式は、通常読込みをさらに含み得る。通常読込みの読込み速度は、低速読込みの読込み速度より大きく高速読込みの読込み速度未満である。すなわち、通常読込みのための閾値電圧の数量は、低速読込みのための閾値電圧の数量未満且つ高速読込みのための閾値電圧の数量より大きい。
【０１７４】
本発明の本実施形態においては、フラッシュメモリデバイスは、少なくとも2つのタイプの読込み動作の速度をサポートする。読込み動作の速度は、隣接した状態の間にある閾値電圧の数量によって一般的に決定される。隣接した状態の間にある少ない数量の閾値電圧は高速読込み動作に対応し、隣接した状態の間にある多い数量の閾値電圧は低速読込み動作に対応する。本実施形態における高速読込みは、フラッシュメモリデバイスに対する読込み動作の速度のうちの最高または2番目に高い速度に対応し、本実施形態における低速読込みは、フラッシュメモリデバイスに対する読込み動作の速度のうちの最低または2番目に低い速度に対応する。例えば、2つのタイプの読込み動作の速度をサポートするフラッシュメモリデバイスについては、高速読込みは、高速度の読込み動作であり、低速読込みは、低速度の読込み動作である。3つ以上のタイプの読込み動作の速度をサポートするフラッシュメモリデバイスについては、高速読込みは、最高速度、2番目に高い速度、または比較的高速度の読込み動作であり、低速読込みは、最低速度、2番目に低い速度、または比較的低速度の読込み動作である。
【０１７５】
本発明の本実施形態によれば、複数のデータに対するアクセスの挙動を解析することによって、フラッシュメモリへのアクセスが特定の特性を有していることが分かっている。アクセスは、以下の3つの特性を主に有している。
【０１７６】
(1)リードオンリー特性ある期間内において、データページへのアクセスのほぼすべてが読込みアクセスである。この場合には、これらの読込みアクセスは、リードオンリー特性を有する。例えば、メディアファイルが書き込まれた後には、一般的に、書込みアクセスが、メディアファイルに対してもはや発生することはなく、メディアファイルは、複数回読み込まれるだけである。
【０１７７】
(2)ライトオンリー特性ある期間内において、データページへのアクセスのほぼすべてが書込みアクセスである。この場合には、これらの書込みアクセスは、ライトオンリー特性を有する。例えば、ログファイルおよびメタデータは、通常繰り返し書き込まれ、ほとんど読み込まれることはない。
【０１７８】
(3)クロスアクセス特性ある期間内において、データページに対する読込みアクセスと書込みアクセスとの両方が存在している。この場合には、このようなアクセスは、クロスアクセス特性を有している。
【０１７９】
フラッシュメモリは、高速で書き込まれたデータが低速で読み込まれ低速で書き込まれたデータが高速で読み込まれる特性を有している。その特性に基づいて、本発明の本実施形態においては、フラッシュメモリページのための書込み速度は、フラッシュメモリの読込みおよび書込みパフォーマンスを改善するために、フラッシュメモリページに対するアクセスの特性に従って調整されている。具体的な方法を以下の実施形態において説明している。
【０１８０】
図6は、本発明の実施形態による、フラッシュメモリデバイスにアクセスするための方法600のフローチャートである。フラッシュメモリデバイスに対するアクセスのタイプは、書込み動作と読込み動作とを含む。フラッシュメモリデバイスに対する書込み動作の形式は、高速書込みと低速書込みとを含み、高速書込みの書込み速度は、低速書込みの書込み速度より大きい。フラッシュメモリデバイスに対する読込み動作の形式は、高速読込みと低速読込みとを含み、高速読込みの読込み速度は、低速読込みの読込み速度より大きい。図6に示しているように、方法600は、以下のステップを含む。
【０１８１】
S602. ストレージコントローラは、アクセス要求をオペレーティングシステムから受信する。
【０１８２】
アクセス要求は、アクセス対象のストレージエリアを示す。特に、アクセス要求は、アクセス対象のストレージエリアのアドレス情報を搬送する。アドレス情報は、アクセス対象のストレージエリアの論理アドレスである。本発明の本実施形態におけるアクセス対象のストレージエリアは、論理アドレスによって示されるストレージエリアを指す。元のデータを、フラッシュメモリのフラッシュメモリページに直ちに上書きすることはできない。古いデータを、新規データが書き込みされ得る前に消去する必要がある。したがって、本発明の本実施形態におけるアドレス情報は、アクセス対象のストレージエリアの論理アドレスであり、アクセス対象のストレージエリアは、論理アドレスと対応付けられている。フラッシュメモリを上書きすることはできないので、同一の論理アドレスに対応する実際の物理アドレスは、チャージング状態にあり得る。
【０１８３】
S604. ストレージコントローラは、アクセス要求のアクセスタイプを決定し、フラッシュメモリデバイスに対するアクセスのタイプは、書込み動作と読込み動作とを含み、アクセス要求のアクセスタイプが書込み動作である場合には、ストレージコントローラはステップS606を行う、または、アクセス要求のアクセスタイプが読込み動作である場合には、ストレージコントローラはステップS616を行う。
【０１８４】
S606. ストレージコントローラは、アクセス対象のストレージエリアの履歴アクセス情報が存在しているかどうかを決定し、アクセス対象のストレージエリアの履歴アクセス情報が存在していない場合には、ストレージコントローラはステップS608を行う、または、アクセス対象のストレージエリアの履歴アクセス情報が存在している場合には、ストレージコントローラはステップS610を行う。
【０１８５】
ストレージコントローラは、アクセス対象のストレージエリアの履歴アクセス情報のための履歴アクセスレコードを検索する。履歴アクセス情報は、アクセス対象のストレージエリアの履歴アクセスタイプを含み、履歴アクセスタイプは、現在のアクセス要求前のアクセス対象のストレージエリアに対するアクセスのアクセスタイプである。
【０１８６】
特に、履歴アクセス情報は、直近の履歴アクセスタイプをアクセス対象のストレージエリアに記録し得る。例えば、「0」が、直近の履歴アクセスタイプが書込み動作であることを示し、「1」が、直近の履歴アクセス動作のタイプが読込み動作であることを示す区別のために、1ビットが使用され得る。
【０１８７】
必要に応じて、履歴アクセス情報は、直近のN個の履歴アクセスタイプをアクセス対象のストレージエリアに記録し得る、ここで、Nは、1より大きい正の整数である。
【０１８８】
例えば、Nが2である場合には、「00」が、直近の2つの履歴アクセスタイプが両方とも書込み動作であることを示し、「01」が、直近の2つの履歴アクセスタイプが連続して書込み動作と読込み動作とであることを示し、「10」が、直近の2つの履歴アクセスタイプが連続して読込み動作と書込み動作とであることを示し、「11」が、直近の2つの履歴アクセスタイプが両方とも読込み動作であることを示す区別のために、2ビットが使用され得る。Nが別の正の整数である場合には、同様に、N個のビットが区別のために使用され得る。
【０１８９】
本発明の本実施形態における例においては、「0」が書込み動作を示すために使用され、「1」が読込み動作を示すために使用されていることを理解されたい。実際の動作においては、別の指示方法を、履歴アクセスタイプを記録するために使用してもよい。このことは本発明の本実施形態に限定されない。
【０１９０】
特定の実施形態プロセスにおいては、履歴アクセス情報は、アドレス情報とアクセス対象のストレージエリアの履歴アクセスタイプとの間の対応付けを記録する。履歴アクセス情報は、論理アドレスから物理アドレスへのマッピングに関するアドレスマッピングテーブルに記録され得る。このように、アクセス対象のストレージエリアのアドレス情報を記録するための領域の必要以上の消耗を回避することを可能としている。当然のことながら、履歴アクセス情報はまた、別々に記録されてもよい。履歴アクセス情報の形式は本発明の本実施形態に限定されない。
【０１９１】
特に、ストレージコントローラは、履歴アクセス情報テーブルを保持している。履歴アクセス情報テーブルは、複数の有効アドレス情報に対応する履歴アクセス情報エントリを含み、アドレス情報とストレージエリアの履歴アクセスタイプとの間の対応付けは、履歴アクセス情報エントリに記憶されている。
【０１９２】
特定の実施形態プロセスにおいては、履歴アクセス情報は、フラッシュメモリページの粒度に基づいて記録され得る、または、別のアルゴリズムは、より小さい粒度に基づいて履歴アクセス情報を記録するために使用され得る。このことは本発明の本実施形態に限定されない。
【０１９３】
図7は、本発明の実施形態による、履歴アクセス情報エントリの概略図である。履歴アクセス情報エントリは、アドレス情報およびアクセス対象のストレージエリアの履歴アクセスタイプを記録する。
【０１９４】
S608. ストレージコントローラは、アクセス対象のストレージエリアの履歴アクセス情報を記録する。
【０１９５】
ストレージコントローラが履歴アクセスレコード内のアクセス対象のストレージエリアの履歴アクセス情報を見つけることができなかった場合には、または、より詳細には、ストレージコントローラが、履歴アクセス情報テーブル内で、アドレス情報に対応する履歴アクセス情報エントリを見つけることができなかった場合には、オペレーティングシステムが初めてアクセス対象のストレージエリアを書き込んだことを示す。この場合には、ストレージコントローラは、書込み対象のデータをアクセス対象のストレージエリアに書き込み、アクセス対象のストレージエリアの履歴アクセス情報を履歴アクセスレコードに記録する。より詳細には、ストレージコントローラは、履歴アクセス情報テーブル内の履歴アクセス情報エントリを作成し、アクセス対象のストレージエリアの履歴アクセスタイプを書込み動作に設定する。
【０１９６】
本明細書では最初の書込みが、アクセス対象のストレージエリアのための最初の書込みアクセス要求を指し、「データ無効」状態から「データ有効」状態へとするアクセス対象のストレージエリアに対する最初の書込みであることを理解されたい。最初の書込みの間に、アクセス対象のストレージエリアに対応する履歴アクセス情報エントリが作成され、アクセス対象のストレージエリアの履歴アクセスタイプが書込み動作として記録される。
【０１９７】
必要に応じて、最初の書込みの間に、ストレージコントローラは、書込み対象のデータを低速書込みの形式でアクセス対象のストレージエリアに書き込み、書込み動作の形式は、低速書込みと高速書込みとを含む。データが初めて書き込まれると、データへの後続のアクセスの特性は、書込み中は不明となる。すなわち、データがリードオンリー特性、ライトオンリー特性、またはクロスアクセス特性のどれを有しているかが不明となる。したがって、最初の書込みの間は、書込み対象のデータの特性にかかわらず、低速書込みの形式が、書込み対象のデータを書き込むために使用され得る。
【０１９８】
書込み動作の形式は、通常書込みをさらに含み得る。通常書込みまたは高速書込みの形式も、最初の書込みの間に使用してもよいが、データは、リードオンリー特性を有してもよく、この場合には、その結果、データに対する読込み動作は悪影響を受ける。データの最初の書込みの形式は本発明の本実施形態に限定されない。
【０１９９】
S610. ストレージコントローラは、アクセス対象のストレージエリアの履歴アクセスタイプが書込み動作であるかどうかを決定し、アクセス対象のストレージエリアの履歴アクセスタイプが書込み動作である場合には、ストレージコントローラはステップS612を行う、または、アクセス対象のストレージエリアの履歴アクセスタイプが書込み動作ではない場合には、ストレージコントローラはステップS614を行う。
【０２００】
特に、ストレージコントローラは、アクセス対象のストレージエリアに対応する履歴アクセス情報エントリに記録されている履歴アクセスタイプが書込み動作であるかどうかを決定する。履歴アクセスタイプが書込み動作であることは、すべての履歴アクセスタイプが書込み動作であることを意味する。アクセス対象のストレージエリアの履歴アクセスタイプが書込み動作である場合には、現在のアクセス要求のアクセスタイプも書込み動作であるため、アクセス対象のストレージエリア内のデータがライトオンリー特性を有していることを示す。履歴アクセスタイプのすべてが書込み動作ではない場合には、履歴アクセスタイプは書込み動作ではなく、現在のアクセス要求のアクセスタイプが書込み動作であるため、アクセス対象のストレージエリアに記憶されているデータがクロスアクセス特性を有していることを示す。
【０２０１】
S612. ストレージコントローラは、書込み対象のデータを高速書込みの形式でアクセス対象のストレージエリアに書き込む。
【０２０２】
アクセス対象のストレージエリアの履歴アクセスタイプが書込み動作であり、現在のアクセス要求のタイプは書込み動作であるため、アクセス対象のストレージエリア内のデータがライトオンリー特性を有していることを示しており、読込み動作はアクセス対象のストレージエリア内のデータに対してほとんど行われない。書込み動作に起因する消耗を回避するために、書込み対象のデータは、高速書込みの形式で書き込まれる。
【０２０３】
履歴アクセスタイプが書込み動作であり、現在のアクセス要求のアクセスタイプも書込み動作であるため、現在のアクセス要求は履歴アクセスタイプを変更せず、履歴アクセス情報エントリ内の履歴アクセスタイプを変更しないままとするために、履歴アクセス情報が更新されなくてもよい。
【０２０４】
特定の実施形態プロセスにおいては、元のデータをフラッシュメモリでは上書きすることができないので、アドレス情報によって示されるアクセス対象のストレージエリアに対する書込み動作前に、ストレージコントローラは、論理アドレスから物理アドレスへのマッピングに関するアドレスマッピングテーブルをまず修正し、論理アドレスを新規物理アドレスにリダイレクトし、その後、書込み対象のデータを新規物理アドレスに書き込む。ストレージコントローラは、元の物理アドレスのデータを「無効」状態に設定する。その後に、ガベージコレクション機構は、書込み動作が元の物理アドレスにおいて行われ得る前に、元の物理アドレスのデータを消去する必要がある。
【０２０５】
S614. ストレージコントローラは、通常書込みの形式でアクセス対象のストレージエリアに対する書込み動作を行い、アクセス対象のストレージエリアの履歴アクセス情報を更新する。
【０２０６】
履歴アクセスタイプが書込み動作ではないので、アドレス情報によって示されるアクセス対象のストレージエリアがクロスアクセス特性を有していることを示す。この場合には、読込みコストと書込みコストとの間のバランスを実現するために、書込み動作を通常書込みの形式でアクセス対象のストレージエリアに対して行う。
【０２０７】
必要に応じて、ステップS614においては、ストレージコントローラはまた、低速書込みまたは高速書込みの形式でアクセス対象のストレージエリアに対する書込み動作を行い得る。しかしながら、比較的高い書込みコストが低速書込みを使用するために必要になり、比較的高い読込みコストが高速書込みを使用するために必要になる。
【０２０８】
履歴アクセスタイプが書込み動作ではなく、現在のアクセス要求のアクセスタイプが書込み動作であるため、履歴アクセスタイプを更新する必要がある。直近の履歴アクセスタイプを記録するために1ビットのみを使用している場合には、履歴アクセスタイプを書込み動作に更新する必要だけでよい。直近のN個の履歴アクセスタイプが記録されている場合には、実際の状況に従って、履歴アクセスタイプを「シフト」方式で更新してもよい。例えば、Nが2であり、履歴アクセスタイプのマークが「11」である場合には、直近の2つの履歴アクセスタイプが両方とも読込み動作であること示す(「0」は、書込み動作を示すために使用され、「1」は、読込み動作を示すために使用される)。現在の動作が「0」で示されているため、「11」を「10」として修正する必要だけでよい。
【０２０９】
S616. ストレージコントローラは、アクセス対象のストレージエリアに対する読込み動作を行う。
【０２１０】
まず、読込み動作を高速読込みの方式でアクセス対象のストレージエリアに対して行う。例えば、硬判定を使用し得る、または、隣接した状態の間に比較的少ない数量の閾値電圧を有する軟判定を使用する。復号が成功した場合には、読込み動作は終了する。復号が失敗した場合には、読込み動作の速度が読込み動作の精度を増大するために低減され、読込みが再び行われ、復号が行われる。例えば、硬判定を軟判定に変更し得る、または、軟判定の隣接した状態の間にある閾値電圧の数量を増大し得る。
【０２１１】
特に、ストレージコントローラは検査符号としてLDPC符号を使用し得るし、LDPC硬判定復号がまず読込み動作のために使用され得る。チェックが成功した場合には、読込み動作は成功している。反対に、チェックが失敗した場合には、復号は失敗しており、軟判定が復号のために使用される。復号がさらに失敗した場合には、情報が正確に復号されるまで、軟判定の隣接した状態の間にある閾値電圧の数量が徐々に増大される。
【０２１２】
本発明の本実施形態における前述の説明は単に説明のための一例に過ぎないことを理解されたい。読込み動作の形式および使用されるECC符号化は本発明の本実施形態に限定されない。
【０２１３】
S618. ストレージコントローラは、アクセス対象のストレージエリアの履歴アクセスタイプが読込み動作であるかどうかを決定し、アクセス対象のストレージエリアの履歴アクセスタイプが読込み動作である場合には、ストレージコントローラはステップS622を行う、または、アクセス対象のストレージエリアの履歴アクセスタイプが読込み動作ではない場合には、ストレージコントローラはステップS620を行う。
【０２１４】
特に、ストレージコントローラは、アクセス対象のストレージエリアに対応する履歴アクセス情報エントリに記録されている履歴アクセスタイプが読込み動作であるかどうかを決定する。履歴アクセスタイプが読込み動作であることは、すべての履歴アクセスタイプが読込み動作であることを意味する。履歴アクセスタイプが読込み動作である場合には、現在のアクセス要求のタイプも読込み動作であるため、アドレス情報によって示されるアクセス対象のストレージエリアがリードオンリー特性を有していることを示す。履歴アクセスタイプのすべてが読込み動作ではない場合には、履歴アクセスタイプは読込み動作ではなく、アドレス情報によって示されるアクセス対象のストレージエリアがクロスアクセス特性を有していることを示す。
【０２１５】
S620. ストレージコントローラは、履歴アクセス情報を更新する。
【０２１６】
履歴アクセスタイプが読込み動作ではなく、現在のアクセス要求のアクセスタイプが読込み動作であるため、履歴アクセスタイプを更新する必要がある。直近の履歴アクセスタイプを記録するために1ビットのみを使用している場合には、履歴アクセスタイプを読込み動作に更新する必要だけでよい。直近のN個の履歴アクセスタイプが記録されている場合には、実際の状況に従って、履歴アクセスタイプを「シフト」方式で更新してもよい。例えば、Nが2であり、履歴アクセスタイプのマークが「00」である場合には、直近の2つの履歴アクセスタイプが両方とも書込み動作であること示す(「0」は、書込み動作を示すために使用され、「1」は、読込み動作を示すために使用される)。現在の動作が「1」で示されているため、「00」を「01」として修正する必要だけでよい。
【０２１７】
S622. ストレージコントローラは、高速読込みが使用されている読込み動作プロセスにおいて復号が失敗したかどうかを決定し、復号が失敗した場合には、ストレージコントローラはステップS624を行う、または、復号が成功した場合には、プロシージャを終了する。
【０２１８】
アクセス対象のストレージエリアの履歴アクセスタイプが読込み動作であり、現在のアクセス要求のタイプが読込み動作であるため、アドレス情報によって示されるアクセス対象のストレージエリアがリードオンリー特性を有していることを示しており、アクセス対象のストレージエリアに対するアクセスは大部分が読込み動作である。高速読込みの形式でのストレージコントローラによる読込みが失敗した場合には、アクセス対象のストレージエリアに記憶されているデータが低い精度を有していることを示している。
【０２１９】
S624. ストレージコントローラは、低速書込みの形式でアクセス対象のストレージエリアに対する再書込み動作を行う。
【０２２０】
アクセス対象のストレージエリア内のデータがリードオンリー特性を有するとともに、アクセス対象のストレージエリアのための高速読込みを使用する復号が失敗したことが検出された場合には、ストレージコントローラは、アクセス対象のストレージエリアに対する後続の読込み動作の速度を改善するために、低速書込みの形式でアクセス対象のストレージエリアに対する再書込み動作を行う。すなわち、高速読込みを使用する復号が失敗し履歴アクセスタイプが読込み動作である場合には、アクセス対象のストレージエリアに記憶されているデータは、低速書込みの形式でアクセス対象のストレージエリアに再書込みされる。
【０２２１】
元のデータをフラッシュメモリのフラッシュメモリページに直ちに上書きすることはできないので、古いデータを、新規データが書き込みされ得る前に消去する必要がある。本明細書における再書込み動作は、論理アドレスにおける再書込みを指す。ストレージコントローラは、論理アドレスが新たに利用可能な物理アドレスを指し示すように、論理アドレスから物理アドレスへのアドレスマッピング関係を修正し、データを新規物理アドレスに書き込む。元の物理アドレスは、「無効」としてマークされ、元の物理アドレスにおけるデータがその後消去された後のみ再利用され得る。
【０２２２】
必要に応じて、本発明の別の可能な実施形態の本実施形態においては、アクセス対象のストレージエリア内のデータがリードオンリー特性を有する場合には、読込み動作中の復号のビット誤り率がプリセット閾値を超過すると、アクセス対象のストレージエリアに記憶されているデータは、低速書込みの形式でアクセス対象のストレージエリアに再書込みされる。
【０２２３】
フラッシュメモリに対する通常アクセス動作のブロック処理を回避するために、ストレージコントローラは、アクセス対象のストレージエリアのアドレス情報を再書込みキューに保存し得る。フラッシュメモリがアイドル状態である場合には、ストレージコントローラは、再書込みキューに含まれるアドレス情報に従ってデータをアクセス対象のストレージエリアから読み込み、読み込まれたデータを低速書込みの形式でアクセス対象のストレージエリアに再書込みし得る。
【０２２４】
特に、再書込みされる必要があるアドレス情報は、LRU(Least Recently Used)連結リストにまとめられ得るし、LRU連結リストは、キャッシュに記憶され得る。システムがアイドルであることをストレージコントローラが検出すると、ストレージコントローラは、LRU連結リストをキャッシュから読み込み、アドレス情報をLRU連結リストから取得し、再書込みされる必要があるデータを対応するアドレス情報から読み込み、書込み動作のためのステップ電圧を調整し、再書込み対象のデータを低速書込みの形式でフラッシュメモリに再書込みし、論理アドレスを再書込みキューから削除する。
【０２２５】
LRU連結リストの先頭にあるデータ、すなわち、連結リストにもっとも最近追加されたデータまたは最後にアクセスされたデータが、優先的に再書き込みされ得る。連結リストに記録されているデータが再書込みの前にホストの書込みアクセスによって更新されていた場合には、データのアドレス情報は、再書込みを行うことなく連結リストから直ちに削除され得る。
【０２２６】
必要に応じて、読込み動作が成功した後に、ストレージコントローラはまた、データの読込みに成功したことに従って、アクセス対象のストレージエリアに対する再書込み動作を直ちに行い得る。このことはデータの複数の読込みを回避するが、フラッシュメモリに対する通常アクセス動作をブロックする可能性がある。
【０２２７】
アクセス対象のストレージエリア内のデータが無効であると決定した場合には、ストレージコントローラは、アクセス対象のストレージエリアに対応する履歴アクセス情報を削除する。例えば、ストレージコントローラは、削除通知メッセージをオペレーティングシステムから受信し得る、ここで、削除通知メッセージは、アクセス対象のストレージエリア内のデータが既に無効であることを示すために使用される。この場合には、ストレージコントローラは、アクセス対象のストレージエリアの履歴アクセス情報エントリを削除し、アクセス対象のストレージエリアは、有効状態から無効状態に変化する。
【０２２８】
特に、フラッシュメモリデバイスがトリム機能をサポートしている場合には、ストレージコントローラは、トリム命令をさらに受信し得る。トリム命令は、アドレス情報を搬送して、そのアドレス情報にあるデータがオペレーティングシステムによって削除されていることを示す。この場合には、ストレージコントローラは、アドレス情報に対応する履歴アクセス情報エントリを履歴アクセス情報テーブルから削除し、アドレス情報に対応する物理ブロックアドレスにあるデータを「無効」としてマークして後続の消去動作を待機し得る。
【０２２９】
必要に応じて、履歴アクセス情報は、詳細に書込み動作の速度を記録するために使用される書込み速度マークをさらに含む。この場合には、ストレージコントローラは、書込み動作の速度と読込み動作の速度との間の対応付けをさらに確立し得る。したがって、クロスアクセスシナリオにおいては、ストレージコントローラは、書込み速度マークに従ってアクセス対象のストレージエリアに対する読込み動作を行う。高速書込みは、低速読込みに対応し、低速書込みは、高速読込みに対応する。
【０２３０】
方法600はフラッシュメモリデバイスにアクセスするための方法を説明するための一例に過ぎないことを理解されたい。特定のステップを、特定の順序で行わなくてもよいし、また、組み合わせてもよい。本発明におけるステップのシーケンス番号は、より明確にソリューションのプロシージャを説明するためのものに過ぎず、ステップを行う順序を限定するものではない。
【０２３１】
本発明の本実施形態において開示した技術的ソリューションに従って、データのアクセス特性に基づいて、データは、リードオンリーデータ、ライトオンリーデータ、およびクロスアクセスデータの3つのタイプに分類され、データの3つのタイプは、履歴アクセスタイプを使用して互いに区別される。したがって、リードオンリー特性を有するデータのための速度が調整され、高速読込みを実現するために低速書込みが行われ、その結果、書込みパフォーマンスにほとんど影響を及ぼすことなく読込みパフォーマンスを大幅に改善している。ライトオンリー特性を有するデータのための速度が調整され、高速書込みが行われ、その結果、読込みパフォーマンスにほとんど影響を及ぼすことなく書込みパフォーマンスを大幅に改善している。さらに、クロスアクセス特性を有するデータのための速度も調整されてもよく、通常書込みが行われ、それによって、読込みおよび書込み速度間のバランスを実現している。
【０２３２】
図8は、本発明の実施形態による、フラッシュメモリデバイスにアクセスするための方法800のフローチャートである。履歴アクセス情報は、書込み速度マークをさらに含む。書込み速度マークは、アクセス対象のストレージエリアに記憶されているデータが低速書込みの形式で書き込まれているかどうかを示すために、書込み動作の形式を記録するために使用される。
【０２３３】
特に、ストレージコントローラは、1ビットの書込み速度マークを使用して、データが低速書込みの形式で書き込まれているかどうかを記録し得る。例えば、「0」はデータが低速書込みの形式で書き込まれていることを示し、「1」はデータが低速書込みの形式で書き込まれていないことを示す。
【０２３４】
さらに、ストレージコントローラはまた、詳細に書込み動作の速度を記憶し得る。書込み動作の速度をM個のレベルに分類する場合には、合計ceil(Log2 M)ビットの書込み速度マークが書込み動作の速度を記録するために必要となる。例えば、書込み動作の速度を低速書込み、通常書込み、および高速書込みの3つのレベルに分類する場合には、ceil(Log2 3)=2ビットが書込み動作の速度を記録するために必要となる。例えば、「00」が低速書込みを示すために使用され得るし、「01」が通常書込みを示すために使用され得るし、「10」が高速書込みを示すために使用され得るし、状態「11」は予約ビットとして使用される。
【０２３５】
図9は、本発明の実施形態による、履歴アクセス情報エントリの概略図である。履歴アクセス情報エントリは、アクセス対象のストレージエリアに対応する履歴アクセス情報を記録する。
【０２３６】
図8に示しているように、方法800は、以下のステップを含む。
【０２３７】
S802からS814の特徴の説明については、ステップS602からS614を参照されたい。さらに、書込み動作を行う場合には、ストレージコントローラは、書込み動作の形式が低速書込みであるかどうかをさらに記録する、または、書込み動作の速度レベルを詳細に記録する。残りの部分については、S602からS614を参照すればよいため、その詳細を本明細書では再び説明しない。
【０２３８】
S816. ストレージコントローラは、アクセス対象のストレージエリアの履歴アクセスタイプが読込み動作であるかどうかを決定し、アクセス対象のストレージエリアの履歴アクセスタイプが読込み動作である場合には、ストレージコントローラはステップS820を行う、または、アクセス対象のストレージエリアの履歴アクセスタイプが読込み動作ではない場合には、ストレージコントローラはステップS818を行う。
【０２３９】
詳しい説明については、ステップS618を参照すればよいため、その詳細を本明細書では再び説明しない。
【０２４０】
S818. ストレージコントローラは、履歴アクセスタイプを更新する。
【０２４１】
詳しい説明については、ステップS620を参照すればよいため、その詳細を本明細書では再び説明しない。
【０２４２】
S820. ストレージコントローラは、書込み動作の形式が低速書込みであるかどうかを決定し、書込み動作の形式が低速書込みである場合には、ストレージコントローラはステップS824を行う、または、書込み動作の形式が低速書込みではない場合には、ストレージコントローラはステップS822を行う。
【０２４３】
特に、履歴アクセスタイプが読込み動作であり、現在のアクセス要求のアクセスタイプも読込み動作であるため、アドレス情報によって示されるアクセス対象のストレージエリアがリードオンリー特性を有していることを示している。読込み動作のコストを低減するために、ストレージコントローラは、アドレス情報に対応する履歴アクセス情報エントリ内の速度マークが低速書込みであるかどうかを決定する。速度マークが低速書込みを示す場合には、ストレージコントローラは、読込み動作を直接行う。速度マークが低速書込みを示していない場合には、データを高速で読み込むことができることを保証することができないことを示しており、ストレージコントローラは、アクセス対象のストレージエリアに対する低速再書込み動作を行う必要がある。
【０２４４】
S822. ストレージコントローラは、低速書込みの形式でアクセス対象のストレージエリアに対する再書込み動作を行う。
【０２４５】
アクセス対象のストレージエリア内のデータがリードオンリー特性を有するとともに、アクセス対象のストレージエリアに記憶されているデータが低速書込みの形式で書き込まれていない場合には、アクセス対象のストレージエリアに記憶されているデータが比較的低い書込み精度を有していることを示している。この場合には、ストレージコントローラは、アクセス対象のストレージエリアに対する後続の読込み動作の速度を改善するために、低速書込みの形式でアクセス対象のストレージエリアに対する再書込み動作を行う必要がある。すなわち、アクセス対象のストレージエリアの履歴アクセスタイプが読込み動作であるとともに書込み速度マークが低速書込みを示していない場合には、アクセス対象のストレージエリアに記憶されているデータは、低速書込みの形式でアクセス対象のストレージエリアに再書込みされる。
【０２４６】
詳しい説明については、ステップS624を参照すればよいため、その詳細を本明細書では再び説明しない。
【０２４７】
アクセス対象のストレージエリアに記憶されているデータを低速書込みの形式でアクセス対象のストレージエリアに再書込みした後に、ストレージコントローラは、書込み速度マークを低速書込みに更新する。
【０２４８】
S824. ストレージコントローラは、アドレス情報によって示されるアクセス対象のストレージエリアに対する読込み動作を行う。
【０２４９】
ステップS824の詳細な説明については、ステップS616を参照すればよいため、その詳細を本明細書では再び説明しない。
【０２５０】
ストレージコントローラが書込み速度マークを使用して詳細に書込み動作の速度を記録している場合には、ストレージコントローラは、書込み動作の速度と読込み動作の速度との間の対応付けをさらに確立し、書込み速度マークに従ってアクセス対象のストレージエリアに対する読込み動作を行い得る。高速書込みは、低速読込みに対応し、低速書込みは、高速読込みに対応する。
【０２５１】
さらに、書込み動作は、低速書込み、通常書込み、および高速書込みの3つのレベルに分類され得るし、読込み動作は、それに対応するように、高速読込み、通常読込み、および低速読込みの3つのレベルに分類され得る。低速書込みは、高速読込みに対応し、通常書込みは、通常読込みに対応し、高速書込みは、低速読込みに対応する。
【０２５２】
アドレス情報によって示されるアクセス対象のストレージエリアに対する読込み動作を行う場合には、ストレージコントローラは、履歴アクセス情報に記録されている書込み動作の形式に従って、読込みのための読込み動作の対応する形式を直ちに選択し得る。
【０２５３】
アクセス対象のストレージエリア内のデータが無効であると決定した場合には、ストレージコントローラは、アクセス対象のストレージエリアに対応する履歴アクセス情報を削除する。詳しい説明については、図6中の実施形態における説明を参照すればよいため、その詳細を本明細書では再び説明しない。
【０２５４】
方法800はフラッシュメモリデバイスのための方法を説明するための一例に過ぎないことを理解されたい。特定のステップを、特定の順序で行わなくてもよいし、また、組み合わせてもよい。本発明におけるステップのシーケンス番号は、より明確にソリューションのプロシージャを説明するためのものに過ぎず、ステップを行う順序を限定するものではない。
【０２５５】
本発明の本実施形態において開示した技術的ソリューションに従って、データのアクセス特性に基づいて、データは、リードオンリーデータ、ライトオンリーデータ、およびクロスアクセスデータの3つのタイプに分類され、データの3つのタイプは、履歴アクセスタイプを使用して互いに区別される。したがって、リードオンリー特性を有するデータのための速度が調整され、高速読込みを実現するために低速書込みが行われ、その結果、書込みパフォーマンスにほとんど影響を及ぼすことなく読込みパフォーマンスを大幅に改善している。ライトオンリー特性を有するデータのための速度が調整され、高速書込みが行われ、その結果、読込みパフォーマンスにほとんど影響を及ぼすことなく書込みパフォーマンスを大幅に改善している。さらに、クロスアクセス特性を有するデータのための速度も調整されてもよく、通常書込みが行われ、それによって、読込みおよび書込み速度間のバランスを実現している。
【０２５６】
図10は、本発明の実施形態による、フラッシュメモリデバイスにアクセスするための装置1000の論理構造の概略図である。図10に示しているように、装置1000は、受信ユニット1002、取得ユニット1004、および書き込みユニット1006を含む。
【０２５７】
受信ユニット1002は、アクセス対象のストレージエリアのための第1の書込みアクセス要求を受信するように構成される。
【０２５８】
特定の実施形態プロセスにおいては、受信ユニット1002は、図2に示したプロセッサ202、メモリ204、および通信インターフェース208を使用して実装され得る。より詳細には、プロセッサ202は、通信インターフェース208が第1の書込みアクセス要求をオペレーティングシステムから受信するように、メモリ204内の通信モジュールを実行し得る。
【０２５９】
取得ユニット1004は、アクセス対象のストレージエリアの履歴アクセスタイプを取得するように構成され、履歴アクセスタイプは、第1の書込みアクセス要求前のアクセス対象のストレージエリアに対するアクセスのアクセスタイプであり、フラッシュメモリデバイスに対するアクセスのタイプは、書込み動作と読込み動作とを含む。
【０２６０】
特定の実施形態プロセスにおいては、取得ユニット1004は、図2に示したプロセッサ202およびメモリ204を使用して実施され得る。より詳細には、プロセッサ202は、アクセス対象のストレージエリアのアドレス情報に従ってアクセス対象のストレージエリアの履歴アクセスタイプを取得するために、メモリ204内のアクセス制御モジュールを実行し得る。
【０２６１】
書き込みユニット1006は、アクセス対象のストレージエリアの履歴アクセスタイプが書込み動作である場合には、第1の書込みアクセス要求の書込み対象のデータを高速書込みの形式でアクセス対象のストレージエリアに書き込むように構成され、フラッシュメモリデバイスに対する書込み動作の形式は、高速書込みと低速書込みとを含み、高速書込みの書込み速度は、低速書込みの書込み速度より大きい。
【０２６２】
特定の実施形態プロセスにおいては、書き込みユニット1006は、図2に示したプロセッサ202およびメモリ204を使用して実施され得る。より詳細には、プロセッサ202は、第1の書込みアクセス要求の書込み対象のデータを高速書込みの形式でアクセス対象のストレージエリアに書き込むために、メモリ204内のアクセス制御モジュールを実行し得る。
【０２６３】
取得ユニット1004がアクセス対象のストレージエリアの履歴アクセスタイプを取得するように構成されることは、取得ユニット1004がアクセス対象のストレージエリアのものであるとともに履歴アクセスレコードに記録されている履歴アクセスタイプを検索するように構成されることを含む。
【０２６４】
アクセス対象のストレージエリアのための第1の書込みアクセス要求を受信する前に、受信ユニット1002は、アクセス対象のストレージエリアのための第2の書込みアクセス要求を受信するようにさらに構成され、第2の書込みアクセス要求は、アクセス対象のストレージエリアのための最初の書込みアクセス要求であり、書き込みユニット1006は、第2の書込みアクセス要求の書込み対象のデータをアクセス対象のストレージエリアに書き込み、アクセス対象のストレージエリアの履歴アクセスタイプを履歴アクセスレコードに記録するようにさらに構成される。
【０２６５】
書き込みユニット1006が第2の書込みアクセス要求の書込み対象のデータをアクセス対象のストレージエリアに書き込むように構成されることは、書き込みユニット1006が第2の書込みアクセス要求の書込み対象のデータを低速書込みの形式でアクセス対象のストレージエリアに書き込むように構成されることを含む。
【０２６６】
装置1000は、削除ユニット1008をさらに含む。アクセス対象のストレージエリア内のデータが無効であると決定された場合には、削除ユニット1008は、アクセス対象のストレージエリアの記録されている履歴アクセスタイプを削除するように構成される。
【０２６７】
特定の実施形態プロセスにおいては、削除ユニット1008は、図2に示したプロセッサ202およびメモリ204を使用して実施され得る。より詳細には、プロセッサ202は、オペレーティングシステムから受信ユニット1002によって受信された削除通知メッセージに従ってアクセス対象のストレージエリアの記録されている履歴アクセスタイプを削除するために、メモリ204内のアクセス制御モジュールを実行し得る。
【０２６８】
必要に応じて、書き込みユニット1006は、アクセス対象のストレージエリアの履歴アクセスタイプが書込み動作ではない場合には、第1の書込みアクセス要求の書込み対象のデータを低速書込みの形式でアクセス対象のストレージエリアに書き込み、アクセス対象のストレージエリアの履歴アクセスタイプを更新するようにさらに構成される。
【０２６９】
必要に応じて、書込み動作の形式は、通常書込みをさらに含み、通常書込みの書込み速度は、低速書込みの書込み速度より大きく高速書込みの書込み速度未満である。書き込みユニット1006は、アクセス対象のストレージエリアの履歴アクセスタイプが書込み動作ではない場合には、第1の書込みアクセス要求の書込み対象のデータを通常書込みの形式でアクセス対象のストレージエリアに書き込み、アクセス対象のストレージエリアの履歴アクセスタイプを更新するようにさらに構成される。
【０２７０】
説明を簡潔にするために、本発明の本実施形態における取得ユニット1004、書き込みユニット1006、および削除ユニット1008の機能が図2に示したアクセス制御モジュールに統合され得ることを理解されたい。プロセッサ202は、アクセス制御モジュールの異なる部分を実行して異なる機能を実施する。しかしながら、特定の実施形態においては、アクセス制御モジュールがさらに指定されてもよい。このことは本発明の本実施形態に限定されない。
【０２７１】
本発明の本実施形態は、ストレージコントローラ112の装置の実施形態である。図6および図8中の実施形態における特徴の説明は、本発明の本実施形態に適用可能である。その詳細を本明細書では再び説明しない。
【０２７２】
図11は、本発明の実施形態による、フラッシュメモリデバイスにアクセスするための装置1100の論理構造の概略図である。図11に示しているように、装置1100は、受信ユニット1102、読み込みユニット1104、取得ユニット1106、および書き込みユニット1108を含む。
【０２７３】
受信ユニット1102は、アクセス対象のストレージエリアのための読込みアクセス要求を受信するように構成される。
【０２７４】
特定の実施形態プロセスにおいては、受信ユニット1102は、図2に示したプロセッサ202、メモリ204、および通信インターフェース208を使用して実装され得る。より詳細には、プロセッサ202は、通信インターフェース208が読込みアクセス要求をオペレーティングシステムから受信するように、プロセッサ204内の通信モジュールを実行し得る。
【０２７５】
読み込みユニット1104は、高速読込みの形式でアクセス対象のストレージエリアに対する読込み動作を行うように構成され、フラッシュメモリデバイスに対する読込み動作の形式は、高速読込みと低速読込みとを含み、高速読込みの読込み速度は、低速読込みの読込み速度より大きい。
【０２７６】
特定の実施形態プロセスにおいては、読み込みユニット1104は、図2に示したプロセッサ202およびメモリ204を使用して実施され得る。より詳細には、プロセッサ202は、アクセス対象のストレージエリアに対する読込み動作を行うために、メモリ204内のアクセス制御モジュールを実行し得る。
【０２７７】
取得ユニット1106は、アクセス対象のストレージエリアの履歴アクセスタイプを取得するように構成され、履歴アクセスタイプは、読込みアクセス要求前のアクセス対象のストレージエリアに対するアクセスのアクセスタイプであり、フラッシュメモリデバイスに対するアクセスのタイプは、書込み動作と読込み動作とを含む。
【０２７８】
特定の実施形態プロセスにおいては、取得ユニット1106は、図2に示したプロセッサ202およびメモリ204を使用して実施され得る。より詳細には、プロセッサ202は、アクセス対象のストレージエリアのアドレス情報に従ってアクセス対象のストレージエリアの履歴アクセスタイプを取得するために、メモリ204内のアクセス制御モジュールを実行し得る。
【０２７９】
書き込みユニット1108は、高速読込みを使用する復号が失敗し履歴アクセスタイプが読込み動作である場合には、アクセス対象のストレージエリアに記憶されているデータを低速書込みの形式でアクセス対象のストレージエリアに再書込みするように構成され、フラッシュメモリデバイスに対する書込み動作の形式は、高速書込みと低速書込みとを含み、高速書込みの書込み速度は、低速書込みの書込み速度より大きい。
【０２８０】
特定の実施形態プロセスにおいては、書き込みユニット1108は、図2に示したプロセッサ202およびメモリ204を使用して実施され得る。より詳細には、プロセッサ202は、アクセス対象のストレージエリアに記憶されているデータを低速書込みの形式でアクセス対象のストレージエリアに再書込みするために、メモリ204内のアクセス制御モジュールを実行し得る。
【０２８１】
取得ユニット1106がアクセス対象のストレージエリアの履歴アクセスタイプを取得するように構成されることは、取得ユニット1106がアクセス対象のストレージエリアのものであるとともに履歴アクセスレコードに記録されている履歴アクセスタイプを検索するように構成されることを含む。
【０２８２】
アクセス対象のストレージエリアのための読込みアクセス要求を受信する前に、受信ユニット1102は、アクセス対象のストレージエリアのための第2の書込みアクセス要求を受信するようにさらに構成され、第2の書込みアクセス要求は、アクセス対象のストレージエリアのための最初の書込みアクセス要求であり、書き込みユニット1108は、第2の書込みアクセス要求の書込み対象のデータをアクセス対象のストレージエリアに書き込み、アクセス対象のストレージエリアの履歴アクセスタイプを履歴アクセスレコードに記録するようにさらに構成される。
【０２８３】
書き込みユニット1108が第2の書込みアクセス要求の書込み対象のデータをアクセス対象のストレージエリアに書き込むように構成されることは、書き込みユニット1108が第2の書込みアクセス要求の書込み対象のデータを低速書込みの形式でアクセス対象のストレージエリアに書き込むように構成されることを含む。
【０２８４】
装置1100は、削除ユニット1110をさらに含む。アクセス対象のストレージエリア内のデータが無効であると決定された場合には、削除ユニット1110は、アクセス対象のストレージエリアの記録されている履歴アクセスタイプを削除するように構成される。
【０２８５】
特定の実施形態プロセスにおいては、削除ユニット1110は、図2に示したプロセッサ202およびメモリ204を使用して実施され得る。より詳細には、プロセッサ202は、オペレーティングシステムから受信ユニット1102によって受信された削除通知メッセージに従ってアクセス対象のストレージエリアの記録されている履歴アクセスタイプを削除するために、メモリ204内のアクセス制御モジュールを実行し得る。
【０２８６】
必要に応じて、読み込みユニット1104は、高速読込みを使用する復号が失敗した場合には、低速読込みの形式でアクセス対象のストレージエリアに対する読込み動作を行うようにさらに構成される。
【０２８７】
必要に応じて、読込み動作の形式は、通常読込みをさらに含み、通常読込みの読込み速度は、低速読込みの読込み速度より大きく高速読込みの読込み速度未満である。読み込みユニット1104は、高速読込みを使用する復号が失敗した場合には、通常読込みの形式でアクセス対象のストレージエリアに対する読込み動作を行うようにさらに構成される。
【０２８８】
書き込みユニット1108は、履歴アクセスタイプが読込み動作ではない場合には、履歴アクセスタイプを更新するようにさらに構成される。
【０２８９】
必要に応じて、アクセス対象のストレージエリアに記憶されているデータを低速書込みの形式でアクセス対象のストレージエリアに再書込みする前に、書き込みユニット1108は、アクセス対象のストレージエリアのアドレス情報を再書込みキューに保存するようにさらに構成され、読み込みユニット1104は、再書込みキューに保存されているアドレス情報に従ってアクセス対象のストレージエリアから、アクセス対象のストレージエリアに記憶されているデータを読み込むようにさらに構成される。
【０２９０】
説明を簡潔にするために、本発明の本実施形態における読み込みユニット1104、取得ユニット1106、書き込みユニット1108、および削除ユニット1110の機能が図2に示したアクセス制御モジュールに統合され得ることを理解されたい。プロセッサ202は、アクセス制御モジュールの異なる部分を実行して異なる機能を実施する。しかしながら、特定の実施形態においては、アクセス制御モジュールがさらに指定されてもよい。このことは本発明の本実施形態に限定されない。
【０２９１】
ストレージコントローラ112の装置の実施形態を本発明の本実施形態において提供している。図6および図8中の実施形態における特徴の説明は、本発明の本実施形態に適用可能である。その詳細を本明細書では再び説明しない。
【０２９２】
図12は、本発明の実施形態による、フラッシュメモリデバイスにアクセスするための装置1200の論理構造の概略図である。図12に示しているように、装置1200は、受信ユニット1202、取得ユニット1204、および書き込みユニット1206を含む。
【０２９３】
受信ユニット1202は、アクセス対象のストレージエリアのための読込みアクセス要求を受信するように構成される。
【０２９４】
特定の実施形態プロセスにおいては、受信ユニット1202は、図2に示したプロセッサ202、メモリ204、および通信インターフェース208を使用して実装され得る。より詳細には、プロセッサ202は、通信インターフェース208が読込みアクセス要求をオペレーティングシステムから受信するように、プロセッサ204内の通信モジュールを実行し得る。
【０２９５】
取得ユニット1204は、アクセス対象のストレージエリアの履歴アクセス情報を取得するように構成され、履歴アクセス情報は、アクセス対象のストレージエリアの履歴アクセスタイプと書込み速度マークとを含み、書込み速度マークは、アクセス対象のストレージエリアに記憶されているデータに対する書込み動作の形式を示すために使用され、履歴アクセスタイプは、読込みアクセス要求前のアクセス対象のストレージエリアに対するアクセスのアクセスタイプである。フラッシュメモリデバイスに対するアクセスのタイプは、書込み動作と読込み動作とを含む。フラッシュメモリデバイスに対する書込み動作の形式は、高速書込みと低速書込みとを含み、高速書込みの書込み速度は、低速書込みの書込み速度より大きい。
【０２９６】
特定の実施形態プロセスにおいては、取得ユニット1204は、図2に示したプロセッサ202およびメモリ204を使用して実施され得る。より詳細には、プロセッサ202は、アクセス対象のストレージエリアのアドレス情報に従ってアクセス対象のストレージエリアの履歴アクセス情報を取得するために、メモリ204内のアクセス制御モジュールを実行し得る。
【０２９７】
書き込みユニット1206は、履歴アクセスタイプが読込み動作であるとともに書込み速度マークが低速書込みを示していない場合には、アクセス対象のストレージエリアに記憶されているデータを低速書込みの形式でアクセス対象のストレージエリアに再書込みするように構成される。
【０２９８】
特定の実施形態プロセスにおいては、書き込みユニット1206は、図2に示したプロセッサ202およびメモリ204を使用して実施され得る。より詳細には、プロセッサ202は、アクセス対象のストレージエリアに記憶されているデータを低速書込みの形式でアクセス対象のストレージエリアに再書込みするために、メモリ204内のアクセス制御モジュールを実行し得る。
【０２９９】
取得ユニット1204がアクセス対象のストレージエリアの履歴アクセス情報を取得するように構成されることは、取得ユニット1204がアクセス対象のストレージエリアのものであるとともに履歴アクセスレコードに記録されている履歴アクセス情報を検索するように構成されることを含む。
【０３００】
アクセス対象のストレージエリアのための読込みアクセス要求を受信する前に、受信ユニット1202は、アクセス対象のストレージエリアのための第2の書込みアクセス要求を受信するようにさらに構成され、第2の書込みアクセス要求は、アクセス対象のストレージエリアのための最初の書込みアクセス要求であり、書き込みユニット1206は、第2の書込みアクセス要求の書込み対象のデータをアクセス対象のストレージエリアに書き込み、アクセス対象のストレージエリアの履歴アクセス情報を履歴アクセスレコードに記録するようにさらに構成される。
【０３０１】
書き込みユニット1206が第2の書込みアクセス要求の書込み対象のデータをアクセス対象のストレージエリアに書き込むように構成されることは、書き込みユニット1206が第2の書込みアクセス要求の書込み対象のデータを低速書込みの形式でアクセス対象のストレージエリアに書き込むように構成されることを含む。
【０３０２】
装置1200は、削除ユニット1208をさらに含む。アクセス対象のストレージエリア内のデータが無効であると決定された場合には、削除ユニット1208は、アクセス対象のストレージエリアの記録されている履歴アクセス情報を削除するように構成される。
【０３０３】
特定の実施形態プロセスにおいては、削除ユニット1208は、図2に示したプロセッサ202およびメモリ204を使用して実施され得る。より詳細には、プロセッサ202は、オペレーティングシステムから受信ユニット1202によって受信された削除通知メッセージに従ってアクセス対象のストレージエリアの記録されている履歴アクセス情報を削除するために、メモリ204内のアクセス制御モジュールを実行し得る。
【０３０４】
アクセス対象のストレージエリアに記憶されているデータを低速書込みの形式でアクセス対象のストレージエリアに再書込みした後に、書き込みユニット1206は、書込み速度マークを低速書込みに更新するようにさらに構成される。
【０３０５】
装置1200は、読み込みユニット1210をさらに含む。読込み動作は、高速読込みと低速読込みとを含む。取得ユニット1204がアクセス対象のストレージエリアの履歴アクセス情報を取得した後に、読み込みユニット1210は、書込み速度マークに従ってアクセス対象のストレージエリアに対する読込み動作を行うように構成され、高速書込みは、低速読込みに対応し、低速書込みは、高速読込みに対応する。
【０３０６】
特定の実施形態プロセスにおいては、読み込みユニット1210は、図2に示したプロセッサ202およびメモリ204を使用して実施され得る。より詳細には、プロセッサ202は、書込み速度マークに従ってアクセス対象のストレージエリアに対する読込み動作を行うために、メモリ204内のアクセス制御モジュールを実行し得る。
【０３０７】
必要に応じて、アクセス対象のストレージエリアに記憶されているデータを低速書込みの形式でアクセス対象のストレージエリアに再書込みする前に、書き込みユニット1206は、アクセス対象のストレージエリアのアドレス情報を再書込みキューに保存するようにさらに構成され、読み込みユニット1210は、再書込みキューに保存されているアドレス情報に従ってアクセス対象のストレージエリアから、アクセス対象のストレージエリアに記憶されているデータを読み込むように構成される。
【０３０８】
説明を簡潔にするために、本発明の本実施形態における取得ユニット1204、書き込みユニット1206、削除ユニット1208、および読み込みユニット1210の機能が図2に示したアクセス制御モジュールに統合され得ることを理解されたい。プロセッサ202は、アクセス制御モジュールの異なる部分を実行して異なる機能を実施する。しかしながら、特定の実施形態においては、アクセス制御モジュールがさらに指定されてもよい。このことは本発明の本実施形態に限定されない。
【０３０９】
ストレージコントローラ112の装置の実施形態を本発明の本実施形態において提供している。図6および図8中の実施形態における特徴の説明は、本発明の本実施形態に適用可能である。その詳細を本明細書では再び説明しない。
【０３１０】
本願において提供した実施形態において、開示したシステム、デバイス、および方法が他の方式で実施されてもよいことを理解されたい。例えば、説明した装置の実施形態は一例に過ぎない。例えば、モジュール分割は論理的な機能分割に過ぎず、実際の実施形態においては他の分割であってもよい。例えば、複数のモジュールまたはコンポーネントを別のシステムに結合もしくは統合してもよく、または、いくつかの特徴を無視もしくは行わなくてもよい。加えて、図示または記載した相互接続または直接接続または通信接続をいくつかのインターフェースを介して実装してもよい。装置またはモジュール間の間接接続または通信接続を電子的、機械的、または他の形式で実装してもよい。
【０３１１】
別個の部分として説明したモジュールを物理的に分離してもしなくてもよいし、モジュールとして図示した部分が物理モジュールであってもなくてもよく、1つの場所に位置していてもよいし、または複数のネットワークモジュールに分散されていてもよい。一部またはすべてのモジュールは、実施形態のソリューションの目的を達成するための実際の必要性に従って選択されてもよい。
【０３１２】
加えて、本発明の実施形態における機能モジュールは1つの処理モジュールに統合されてもよいし、または、モジュールの各々は物理的に単独で存在してもよいし、または、2つ以上のモジュールは1つのモジュールに統合される。統合されたモジュールを、ハードウェアの形式で実装してもよいし、または、ソフトウェア機能モジュールに加えてハードウェアの形式で実装してもよい。
【０３１３】
前述の統合されたモジュールがソフトウェア機能モジュールの形式で実装されている場合には、統合されたユニットをコンピュータ可読記憶媒体に記憶してもよい。ソフトウェア機能モジュールは、記憶媒体に記憶され、コンピュータデバイス(パーソナルコンピュータ、サーバ、またはネットワークデバイスであり得る)に本発明の実施形態において説明した方法のステップの一部を行うように命令するための命令を含む。前述の記憶媒体は、リムーバブルハードディスク、リードオンリーメモリ、ランダムアクセスメモリ、磁気ディスク、または光ディスクなどのプログラムコードを記憶することができる任意の媒体を含む。
【０３１４】
最後に、前述の実施形態は、本発明の技術的ソリューションを説明することを意図したものに過ぎず、本発明を限定することを意図したものではないことに留意されたい。前述の実施形態を参照して本発明を詳細に説明したが、当業者は、本発明の実施形態の技術的ソリューションの範囲を逸脱しない限り、前述の実施形態において説明した技術的ソリューションに対して修正をさらに行い得ること、または、その技術的特徴の一部に対して均等物との置換を行い得ることを理解すべきである。
【符号の説明】
【０３１５】
100  システム
102  オペレーティングシステム
104  ファイルシステム
106  ドライバ
108  フラッシュメモリデバイス
110  キャッシュ
112  ストレージコントローラ
114  ホストインターフェース
116  フラッシュ変換レイヤ
118  不良ブロック管理モジュール
120  ウェアレベリングモジュール
122  アドレス変換モジュール
124  訂正モジュール
126  ガベージコレクションモジュール
128  フラッシュメモリインターフェース
130  フラッシュメモリアレイ
200  ストレージコントローラ
202  プロセッサ
204  プロセッサ
204  メモリ
206  出力インターフェース
208  通信インターフェース
210  バス
1000  装置
1002  受信ユニット
1004  取得ユニット
1006  ユニット
1008  削除ユニット
1100  装置
1102  受信ユニット
1104  ユニット
1106  取得ユニット
1108  ユニット
1110  削除ユニット
1200  装置
1202  受信ユニット
1204  取得ユニット
1206  ユニット
1208  削除ユニット
1210  ユニット
【図１】
2019512832.tif 000003
【図２】
2019512832.tif 000004
【図３】
2019512832.tif 000005
【図４】
2019512832.tif 000006
【図５】
2019512832.tif 000007
【図６】
2019512832.tif 000008
【図７】
2019512832.tif 000009
【図８】
2019512832.tif 000010
【図９】
2019512832.tif 000011
【図１０】
2019512832.tif 000012
【図１１】
2019512832.tif 000013
【図１２】
2019512832.tif 000014
【手続補正書】
【提出日】平成30年10月10日(2018.10.10)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
フラッシュメモリデバイスにアクセスするための方法であって、前記フラッシュメモリデバイスに対するアクセスのタイプは、書込み動作と読込み動作とを含み、前記書込み動作の形式は、高速書込みと低速書込みとを含み、前記方法は、
アクセス対象のストレージエリアのための第1の書込みアクセス要求を受信するステップと、
前記アクセス対象のストレージエリアの記録されている履歴アクセスタイプを取得するステップであって、前記履歴アクセスタイプは、前記第1の書込みアクセス要求前の前記アクセス対象のストレージエリアに対するアクセスのアクセスタイプである、ステップと、
前記アクセス対象のストレージエリアの前記履歴アクセスタイプが書込み動作である場合には、前記第1の書込みアクセス要求の書込み対象のデータを前記高速書込みの形式で前記アクセス対象のストレージエリアに書き込むステップと
を含む、方法。
【請求項２】
前記方法は、
前記アクセス対象のストレージエリア内の前記データが無効であると決定された場合には、前記アクセス対象のストレージエリアの前記記録されている履歴アクセスタイプを削除するステップをさらに含む、請求項1に記載の方法。
【請求項３】
前記方法は、
前記アクセス対象のストレージエリアの前記履歴アクセスタイプが書込み動作ではない場合には、前記第1の書込みアクセス要求の前記書込み対象のデータを前記低速書込みの前記形式で前記アクセス対象のストレージエリアに書き込み、前記アクセス対象のストレージエリアの前記履歴アクセスタイプを更新するステップをさらに含む、請求項1または2に記載の方法。
【請求項４】
フラッシュメモリデバイスにアクセスするための方法であって、フラッシュメモリデバイスに対するアクセスのタイプは、書込み動作と読込み動作とを含み、前記書込み動作の形式は、高速書込みと低速書込みとを含み、前記読込み動作の形式は、高速読込みと低速読込みとを含み、前記方法は、
アクセス対象のストレージエリアのための読込みアクセス要求を受信するステップと、
前記高速読込みの形式で前記アクセス対象のストレージエリアに対する読込み動作を行うステップと、
前記アクセス対象のストレージエリアの記録されている履歴アクセスタイプを取得するステップであって、前記履歴アクセスタイプは、前記読込みアクセス要求前の前記アクセス対象のストレージエリアに対するアクセスのアクセスタイプである、ステップと、
前記高速読込みを使用する復号が失敗し前記履歴アクセスタイプが読込み動作である場合には、前記アクセス対象のストレージエリアに記憶されているデータを前記低速書込みの形式で前記アクセス対象のストレージエリアに再書込みするステップと
を含む、方法。
【請求項５】
前記方法は、
前記アクセス対象のストレージエリア内の前記データが無効であると決定された場合には、前記アクセス対象のストレージエリアの前記記録されている履歴アクセスタイプを削除するステップをさらに含む、請求項4に記載の方法。
【請求項６】
前記方法は、
前記高速読込みを使用する復号が失敗した場合には、前記低速読込みの形式で前記アクセス対象のストレージエリアに対する読込み動作を行うステップをさらに含む、請求項4または5に記載の方法。
【請求項７】
前記方法は、
前記履歴アクセスタイプが読込み動作ではない場合には、前記履歴アクセスタイプを更新するステップをさらに含む、請求項4から6のいずれか一項に記載の方法。
【請求項８】
前記アクセス対象のストレージエリアに記憶されているデータを前記低速書込みの形式で前記アクセス対象のストレージエリアに再書込みするステップの前に、前記方法は、
前記アクセス対象のストレージエリアのアドレス情報を再書込みキューに保存するステップと、
前記再書込みキューに保存されている前記アドレス情報に従って前記アクセス対象のストレージエリアから、前記アクセス対象のストレージエリアに記憶されている前記データを読み込むステップと
をさらに含む、請求項4から7のいずれか一項に記載の方法。
【請求項９】
フラッシュメモリデバイスにアクセスするための方法であって、前記フラッシュメモリデバイスに対するアクセスのタイプは、書込み動作と読込み動作とを含み、前記書込み動作の形式は、高速書込みと低速書込みとを含み、前記方法は、
アクセス対象のストレージエリアのための読込みアクセス要求を受信するステップと、
前記アクセス対象のストレージエリアの記録されている履歴アクセス情報を取得するステップであって、前記履歴アクセス情報は、前記アクセス対象のストレージエリアの履歴アクセスタイプと書込み速度マークとを含み、前記書込み速度マークは、前記アクセス対象のストレージエリアに記憶されているデータに対する書込み動作の形式を示すために使用され、前記履歴アクセスタイプは、前記読込みアクセス要求前の前記アクセス対象のストレージエリアに対するアクセスのアクセスタイプである、ステップと、
前記履歴アクセスタイプが読込み動作であるとともに前記書込み速度マークが前記低速書込みを示していない場合には、前記アクセス対象のストレージエリアに記憶されている前記データを前記低速書込みの形式で前記アクセス対象のストレージエリアに再書込みするステップと
を含む、方法。
【請求項１０】
前記方法は、
前記アクセス対象のストレージエリア内の前記データが無効であると決定された場合には、前記アクセス対象のストレージエリアの前記記録されている履歴アクセス情報を削除するステップをさらに含む、請求項9に記載の方法。
【請求項１１】
前記アクセス対象のストレージエリアに記憶されている前記データを前記低速書込みの形式で前記アクセス対象のストレージエリアに再書込みするステップの後に、前記方法は、
前記書込み速度マークを前記低速書込みに更新するステップをさらに含む、請求項9または10に記載の方法。
【請求項１２】
前記読込み動作は、高速読込みと低速読込みとを含み、前記アクセス対象のストレージエリアの履歴アクセス情報を取得するステップの後に、前記方法は、
前記書込み速度マークに従って前記アクセス対象のストレージエリアに対する読込み動作を行うステップであって、前記高速書込みは、前記低速読込みに対応し、前記低速書込みは、前記高速読込みに対応する、ステップをさらに含む、請求項9から11のいずれか一項に記載の方法。
【請求項１３】
前記アクセス対象のストレージエリアに記憶されている前記データを前記低速書込みの形式で前記アクセス対象のストレージエリアに再書込みするステップの前に、前記方法は、
前記アクセス対象のストレージエリアのアドレス情報を再書込みキューに保存するステップと、
前記再書込みキューに保存されている前記アドレス情報に従って前記アクセス対象のストレージエリアから、前記アクセス対象のストレージエリアに記憶されている前記データを読み込むステップと
をさらに含む、請求項9から12のいずれか一項に記載の方法。
【請求項１４】
フラッシュメモリデバイスにアクセスするための装置であって、前記フラッシュメモリデバイスに対するアクセスのタイプは、書込み動作と読込み動作とを含み、前記書込み動作の形式は、高速書込みと低速書込みとを含み、前記装置は、
アクセス対象のストレージエリアのための第1の書込みアクセス要求を受信するように構成される、受信ユニットと、
前記アクセス対象のストレージエリアの記録されている履歴アクセスタイプを取得するように構成される、取得ユニットであって、前記履歴アクセスタイプは、前記第1の書込みアクセス要求前の前記アクセス対象のストレージエリアに対するアクセスのアクセスタイプである、取得ユニットと、
前記アクセス対象のストレージエリアの前記履歴アクセスタイプが書込み動作である場合には、前記第1の書込みアクセス要求の書込み対象のデータを前記高速書込みの形式で前記アクセス対象のストレージエリアに書き込むように構成される、書き込みユニットと
を含む、装置。
【請求項１５】
前記装置は、削除ユニットをさらに含み、
前記アクセス対象のストレージエリア内の前記データが無効であると決定された場合には、前記削除ユニットは、前記アクセス対象のストレージエリアの前記記録されている履歴アクセスタイプを削除するように構成される、請求項14に記載の装置。
【請求項１６】
前記書き込みユニットは、前記アクセス対象のストレージエリアの前記履歴アクセスタイプが書込み動作ではない場合には、前記第1の書込みアクセス要求の前記書込み対象のデータを前記低速書込みの前記形式で前記アクセス対象のストレージエリアに書き込み、前記アクセス対象のストレージエリアの前記履歴アクセスタイプを更新するようにさらに構成される、請求項14または15に記載の装置。
【請求項１７】
フラッシュメモリデバイスにアクセスするための装置であって、前記フラッシュメモリデバイスに対するアクセスのタイプは、書込み動作と読込み動作とを含み、前記書込み動作の形式は、高速書込みと低速書込みとを含み、前記読込み動作の形式は、高速読込みと低速読込みとを含み、前記装置は、
アクセス対象のストレージエリアのための読込みアクセス要求を受信するように構成される、受信ユニットと、
前記高速読込みの形式で前記アクセス対象のストレージエリアに対する読込み動作を行うように構成される、読み込みユニットと、
前記アクセス対象のストレージエリアの記録されている履歴アクセスタイプを取得するように構成される、取得ユニットであって、前記履歴アクセスタイプは、前記読込みアクセス要求前の前記アクセス対象のストレージエリアに対するアクセスのアクセスタイプである、取得ユニットと、
前記高速読込みを使用する復号が失敗し前記履歴アクセスタイプが読込み動作である場合には、前記アクセス対象のストレージエリアに記憶されているデータを前記低速書込みの形式で前記アクセス対象のストレージエリアに再書込みするように構成される、書き込みユニットと
を含む、装置。
【請求項１８】
前記装置は、削除ユニットをさらに含み、
前記アクセス対象のストレージエリア内の前記データが無効であると決定された場合には、前記削除ユニットは、前記アクセス対象のストレージエリアの前記記録されている履歴アクセスタイプを削除するように構成される、請求項17に記載の装置。
【請求項１９】
前記書き込みユニットは、前記履歴アクセスタイプが読込み動作ではない場合には、前記履歴アクセスタイプを更新するようにさらに構成される、請求項17または18に記載の装置。
【請求項２０】
前記アクセス対象のストレージエリアに記憶されている前記データを前記低速書込みの前記形式で前記アクセス対象のストレージエリアに再書込みする前に、前記書き込みユニットは、前記アクセス対象のストレージエリアのアドレス情報を再書込みキューに保存するようにさらに構成され、
前記読み込みユニットは、前記再書込みキューに保存されている前記アドレス情報に従って前記アクセス対象のストレージエリアから、前記アクセス対象のストレージエリアに記憶されている前記データを読み込むようにさらに構成される、請求項17から19のいずれか一項に記載の装置。
【請求項２１】
フラッシュメモリデバイスにアクセスするための装置であって、フラッシュメモリデバイスに対するアクセスのタイプは、書込み動作と読込み動作とを含み、前記書込み動作の形式は、高速書込みと低速書込みとを含み、前記装置は、
アクセス対象のストレージエリアのための読込みアクセス要求を受信するように構成される、受信ユニットと、
前記アクセス対象のストレージエリアの記録されている履歴アクセス情報を取得するように構成される、取得ユニットであって、前記履歴アクセス情報は、前記アクセス対象のストレージエリアの履歴アクセスタイプと書込み速度マークとを含み、前記書込み速度マークは、前記アクセス対象のストレージエリアに記憶されているデータに対する書込み動作の形式を示すために使用され、前記履歴アクセスタイプは、前記読込みアクセス要求前の前記アクセス対象のストレージエリアに対するアクセスのアクセスタイプである、取得ユニットと、
前記履歴アクセスタイプが読込み動作であるとともに前記書込み速度マークが前記低速書込みを示していない場合には、前記アクセス対象のストレージエリアに記憶されている前記データを前記低速書込みの形式で前記アクセス対象のストレージエリアに再書込みするように構成される、書き込みユニットと
を含む、装置。
【請求項２２】
前記アクセス対象のストレージエリアに記憶されている前記データを前記低速書込みの前記形式で前記アクセス対象のストレージエリアに再書込みした後に、前記書き込みユニットは、前記書込み速度マークを前記低速書込みに更新するようにさらに構成される、請求項21に記載の装置。
【請求項２３】
前記読込み動作は、高速読込みと低速読込みとを含み、前記装置は、読み込みユニットをさらに含み、
前記取得ユニットが前記アクセス対象のストレージエリアの履歴アクセス情報を取得した後に、前記読み込みユニットは、前記書込み速度マークに従って前記アクセス対象のストレージエリアに対する読込み動作を行うように構成され、前記高速書込みは、前記低速読込みに対応し、前記低速書込みは、前記高速読込みに対応する、請求項21または22に記載の装置。
【請求項２４】
請求項1から13のいずれか一項に記載のメモリ管理方法をコンピュータに実行させるように構成される、コンピュータプログラム。
【請求項２５】
請求項２４に記載のコンピュータプログラムを記憶する、コンピュータ可読記憶媒体。
【請求項２６】
請求項14から23のいずれか一項に記載のストレージコントローラと、フラッシュメモリアレイとを含む、フラッシュメモリデバイスであって、前記フラッシュメモリアレイは、データを記憶するように構成される、フラッシュメモリデバイス。
【国際調査報告】
2019512832.tif 000015
2019512832.tif 000016
2019512832.tif 000017
2019512832.tif 000018