(58)【調査した分野】(Int.Cl.,DB名)
機械実行可能命令を記憶するための機械可読記憶媒体であって、前記機械実行可能命令が実行されるとき、機械が、請求項1または2のステップを実行することが可能にされる、機械可読記憶媒体。
【発明を実施するための形態】
【0014】
本発明の実施形態は、キャッシュマッピングを制御するための方法およびキャッシュシステムを提供する。この方法は、プリセット時間間隔で、基礎をなす記憶媒体のキャッシュ内のターゲットデータブロックを変更するステップであって、基礎をなす記憶媒体内の少なくとも1個のデータブロックがターゲットデータブロックにマッピングされ、基礎をなす記憶媒体内の1個または複数のデータブロックがキャッシュ内の1個のターゲットデータブロックだけにマッピングされ、基礎をなす記憶媒体のキャッシュがフラッシュメモリ媒体を含み、キャッシュ内の変更されたターゲットデータブロックが、キャッシュ内の、最大消去回数を現在有するターゲットデータブロックを含む、変更するステップを含む。
【0015】
本発明のそれぞれの実施形態は、下で、添付の図面を参照して詳細に説明される。
【0016】
図2は、本発明の第1の実施形態による、キャッシュマッピングを制御するための方法の概略流れ図である。この実施形態では、フラッシュメモリ媒体がキャッシュとして使用され、基礎をなす記憶媒体は、例えば、ハードディスクであり、基礎をなす記憶媒体内の1個または複数のデータブロックはキャッシュ内の1個のターゲットデータブロックだけにマッピングされる。フラッシュメモリ媒体は、固体ディスク、すなわち、SSD(solid storage disk)を含む。
【0017】
図2に示されるように、第1の実施形態による、キャッシュマッピングを制御するための方法は、以下のステップを含む。
【0018】
ステップS201。プリセットされた切替え期間Tに従って、タイミングを開始するためのタイマをトリガするステップ。
【0019】
ステップS202。1つの切替え周期の後でキャッシュ内のターゲットデータブロックの消去回数が互いに近接するように、ハードディスク内の少なくとも1個のデータブロックがマッピングされる、キャッシュ内のターゲットデータブロックを、1つの切替え周期のそれぞれの切替え期間に変更するステップであって、1つの切替え周期内に含まれる切替え期間の数がキャッシュ内に含まれたターゲットデータブロックの数N以上である、変更するステップ。
【0020】
図1および
図3から
図5は、本発明の第1の実施形態による方法を採用することによって、キャッシュマッピングを制御する特定の例を示す。この例では、ハードディスク内のそれぞれのデータブロックが1つの切替え周期の異なる切替え期間にキャッシュ内の異なるターゲットデータブロックにマッピングされるように、ハードディスク内のそれぞれのデータブロックがマッピングされる、キャッシュ内のターゲットデータブロックが、1つの切替え周期のそれぞれの切替え期間に変更され、1つの切替え周期内に含まれる切替え期間の数はキャッシュ内に含まれたターゲットデータブロックの数Nに等しい。この例では、例えば、限定としてではなく、キャッシュは4個のターゲットデータブロックを有し、ハードディスクは2つのセットを含み、それぞれのセットは、キャッシュの4個のターゲットデータブロックに対応する4個のデータブロックに分割され、ハードディスク内のそれぞれのデータブロックのサイズは、フラッシュメモリ媒体内のそれぞれのターゲットデータブロックのサイズに一致する。
【0021】
図1および
図3から
図5に示されるように、この例は、周期的なラウンドロビンの動的切替えポリシーを採用し、1つの切替え周期内に含まれる切替え期間の数はキャッシュ内に含まれたターゲットデータブロックの数Nに等しく、Nは0を超える整数であり、この例では、N=4である。この例では、それぞれの切替え期間の後で、ハードディスク内のそれぞれのデータブロックに対応するマッピングターゲットが切り替えられる。ハードディスク内のそれぞれのデータブロックは、異なる切替え期間に、異なるターゲットデータブロックにマッピングされる。
【0022】
詳細には、この例では、最初に、
図1に示されたマッピング関係が採用される。
図1に示されるように、この例では、当初、ハードディスクとキャッシュとの間のマッピング関係は以下の通りである。すなわち、ハードディスクのデータブロック0とデータブロック4とがキャッシュのターゲットデータブロック0にマッピングされ、ハードディスクのデータブロック1とデータブロック5とがキャッシュのターゲットデータブロック1にマッピングされ、ハードディスクのデータブロック2とデータブロック6とがキャッシュのターゲットデータブロック2にマッピングされ、ハードディスクのデータブロック3とデータブロック7とがキャッシュのターゲットデータブロック3にマッピングされる。数字は、データブロックまたはターゲットデータブロックの数である。
【0023】
(略して、第1の期間と呼ばれる)第1の切替え期間が終了するとき、フラッシュメモリ媒体内のそれぞれのターゲットデータブロック内にキャッシュされているデータは別のターゲットデータブロックに移動(migrate)される。この例では、例えば、フラッシュメモリ媒体内のターゲットデータブロック0内に現在キャッシュされている有効データはターゲットデータブロック1に移動され、ターゲットデータブロック1内に現在キャッシュされている有効データはターゲットデータブロック2に移動され、ターゲットデータブロック2内に現在キャッシュされている有効データはターゲットデータブロック3に移動され、ターゲットデータブロック3内に現在キャッシュされている有効データはターゲットデータブロック0に移動される。キャッシュ内のデータが移動された後で、ターゲットデータブロック内のデータに移動に応じて、ハードディスク内のそれぞれのデータブロックがマッピングされるターゲットデータブロックがそれに応じて変更される。この移動の後で、修正により取得されるマッピング関係が
図3に示される。
【0024】
第2の期間が終了するとき、同様に、フラッシュメモリ媒体内のターゲットデータブロック0内に現在キャッシュされている有効データはターゲットデータブロック1に移動され、ターゲットデータブロック1内に現在キャッシュされている有効データはターゲットデータブロック2に移動され、ターゲットデータブロック2内に現在キャッシュされている有効データはターゲットデータブロック3に移動され、ターゲットデータブロック3内に現在キャッシュされている有効データはターゲットデータブロック0に移動される。この移動の後で、この移動に応じて、キャッシュとハードディスクとの間のマッピング関係が修正され、修正の後のマッピング関係は
図4に示される。
【0025】
第3の期間が終了するとき、同様に、フラッシュメモリ媒体内のターゲットデータブロック0内に現在キャッシュされている有効データはターゲットデータブロック1に移動され、ターゲットデータブロック1内に現在キャッシュされている有効データはターゲットデータブロック2に移動され、ターゲットデータブロック3内に現在キャッシュされている有効データはターゲットデータブロック3に移動され、ターゲットデータブロック3内に現在キャッシュされている有効データはターゲットデータブロック0に移動される。この移動の後で、この修正に従って、キャッシュとハードディスクとの間のマッピング関係が修正され、修正の後のマッピング関係、すなわち、修正によって取得されるマッピング関係は
図5に示される。第4の期間が終了するとき、同様に、移動が実行された後で、マッピング関係がそれに応じて修正され、修正によって取得されるマッピング関係は
図1に示され、すなわち、修正によって取得されるマッピング関係は、第1の期間のマッピング関係に戻る。このようにして、1つの切替え周期が終了する。次いで、次の切替え周期の切替えプロセスを続けることができる。
【0026】
この実施形態では、ターゲットデータブロック内にキャッシュされているデータの移動の後で、データブロックがマッピングされるターゲットデータブロックは、フラッシュメモリ媒体内および/またはメモリ内に記憶されたキャッシュメタデータを更新することによって変更可能である。
【0027】
ハードディスク内のデータブロックなど、ローカルエリアが頻繁にアクセスされるシナリオでは、ハードディスク内の頻繁にアクセスされるローカルエリアが常に固定ターゲットデータブロックに静的にマッピングされるだけでなく、それによって、フラッシュメモリ媒体のサービス寿命を延期および最適化するように、ハードディスク内の頻繁にアクセスされるデータブロックは、1つの切替え周期のそれぞれの切替え期間に、フラッシュメモリ媒体内の異なるターゲットデータブロックにマッピングされる。さらに、上で説明された、1つのラウンドロビン切替え周期の後で、フラッシュメモリ媒体内のターゲットデータブロックの消去回数は互いに近接し、かつ平均値に近接し、フラッシュメモリ媒体のサービス寿命が最適化されるように、ターゲットデータブロックの消去回数は均等に分散される。
【0028】
この実施形態では、マッピング関係の動的切替えにおいて、キャッシュ内のターゲットデータブロックの数列(number sequence)に従って、キャッシュ内のそれぞれのターゲットデータブロック内のデータは、ラウンドロビン様式で、ターゲットデータブロックの数に隣り合う数を有するターゲットデータブロックに移動される。この例は、単なる例示的な実施例であり、他のラウンドロビン様式も適用可能である。例えば、切替え期間が終了するとき、ターゲットデータブロック0内に現在キャッシュされているデータがターゲットデータブロック3に移動され、ターゲットデータブロック3内に現在キャッシュされているデータがターゲットデータブロック2に移動され、ターゲットデータブロック2内に現在キャッシュされているデータがターゲットデータブロック1に移動され、ターゲットデータブロック1内に現在キャッシュされているデータがターゲットデータブロック0に移動される順番で、キャッシュのそれぞれのターゲットデータブロック内にキャッシュされているデータは移動される。次いで、ハードディスクなど、基礎をなす記憶媒体内のそれぞれのデータブロックがマッピングされるターゲットデータブロックがそれに応じて変更され、ハードディスクとキャッシュとの間のマッピング関係がそれに応じて変更される。
【0029】
当然、上で説明されたラウンドロビン様式に加えて、1つの切替え周期の後でキャッシュ内のターゲットデータブロックの消去回数が互いに近接することを条件に、基礎をなす記憶媒体内の少なくとも1個のデータブロックがマッピングされる、キャッシュ内のターゲットデータブロックを変更する他の様式も適用可能である。互いに近接することは、ターゲットデータブロックの消去回数が平均値に近接することを指す場合があり、詳細には、ターゲットデータブロック同士の間の消去回数の差が消去回数の差のプリセットされたしきい値未満であることを指す。差のしきい値は、要件または特定のアプリケーションシナリオに従って設定可能である。
【0030】
周期的なラウンドロビンの動的切替えポリシーが採用されるとき、ユーザはアプリケーションシナリオに従って、切替え期間を柔軟に設定することができ、切替え周期は比較的に短い。しかし、周期的なラウンドロビンの動的切替えポリシーが小容量を有するキャッシュに関してより適切であるように、マッピングターゲットが切り替わるたびに、キャッシュ内のすべての有効データは移動される。
【0031】
図6から
図11は、本発明の第1の実施形態による方法を採用することによって、キャッシュマッピングを制御する別の例を示す。この例では、1つの切替え周期の後でキャッシュ内のターゲットデータブロックの消去回数が互いに近接するように、ハードディスク内のそれぞれのデータブロックがマッピングされる、キャッシュ内のターゲットデータブロックを変更するために周期配列動的切替えマッピングポリシー(periodic-arrangement dynamic switching mapping policy)が採用される。この例では、1つの切替え周期内に含まれる切替え期間の数はN×(N-1)に等しく、式中、Nは、キャッシュ内に含まれたターゲットデータブロックの数であり、Nは0より大きな整数である。例えば、この例では、N=3である。したがって、この例では、1つの切替え周期は、6個の切替え期間を含む。
【0032】
この例では、フラッシュメモリ媒体はキャッシュとして使用され、基礎をなす記憶媒体は、例えば、ハードディスクとして使用される。例えば、限定としてではなく、キャッシュは3個のターゲットデータブロックを有し、ハードディスクは2つのセットを含み、それぞれのセットは、キャッシュの3個のターゲットデータブロックに対応する、3個のデータブロックに分割され、ハードディスク内のそれぞれのデータブロックのサイズは、フラッシュメモリ媒体内のそれぞれのターゲットデータブロックのサイズに一致する。
【0033】
この例では、キャッシュ内の、最大消去回数を現在有するターゲットデータブロック内にキャッシュされているデータは、1つの切替え周期のそれぞれの切替え期間に、最大消去回数を有するターゲットデータブロック以外の、キャッシュ内のターゲットデータブロック内にキャッシュされているデータと交換され、後者のターゲットデータブロック内のデータは現在の切替え周期に最小回数だけ交換され、前記後者のターゲットデータブロックは、現在の切替え周期の先の切替え期間において、最大消去回数を現在有するターゲットデータブロックとデータを交換するターゲットデータブロックとは異なり、すなわち、データは相互に移動され、ハードディスク内の対応するデータブロックがマッピングされるターゲットデータブロックは、ターゲットデータブロック内にキャッシュされているデータの移動に応じて、それに応じて変更される。キャッシュ内のそれぞれのターゲットデータブロックは、最大消去回数を有するターゲットデータブロックになる、N-1個の機会を有し、すなわち、1つの切替え周期において、それぞれのターゲットデータブロックは、最大消去回数を有するターゲットデータブロックであり、すなわち、異なるN-1個の期間に最も頻繁にアクセスされるデータブロックに対応する。
【0034】
例えば、切替え周期の初めに、フラッシュメモリ媒体内のターゲットデータブロック0は最大消去回数を有すると仮定され、これは、ターゲットデータブロック0にマッピングされる、ハードディスク内のデータブロック0およびデータブロック3が最も頻繁にアクセスされることを示す。ターゲットデータブロック0に加えて、ターゲットデータブロックは、ターゲットデータブロック1とターゲットデータブロック2とを含む。
図6に示されるように、この例では、第1の期間が終了する前に、ハードディスクとキャッシュとの間のマッピング関係は以下の通りである。すなわち、ハードディスクのデータブロック0とデータブロック3とがキャッシュのターゲットデータブロック0にマッピングされ、ハードディスクのデータブロック1とデータブロック4とがキャッシュのターゲットデータブロック1にマッピングされ、ハードディスクのデータブロック2とデータブロック5とがキャッシュのターゲットデータブロック2にマッピングされる。
【0035】
この例では、例えば、第1の期間が終了するとき、フラッシュメモリ媒体内のターゲットデータブロック0内に現在キャッシュされている有効データはターゲットデータブロック1に移動され、ターゲットデータブロック1内に現在キャッシュされている有効データはターゲットデータブロック0に移動される。キャッシュ内のデータの移動の後で、ターゲットデータブロック内のデータに移動に応じて、ハードディスク内のデータブロック0とデータブロック3とがマッピングされる、キャッシュ内のターゲットデータブロックと、ハードディスク内のデータブロック1とデータブロック4とがマッピングされる、キャッシュ内のターゲットデータブロックとがそれに応じて変更される。この移動の後で、修正によって取得されるマッピング関係が
図7に示される。この時点で、最も頻繁にアクセスされるデータブロック0とデータブロック3とがターゲットデータブロック1にマッピングされる。
【0036】
第2の期間が終了するとき、フラッシュメモリ媒体内の、最大消去回数を現在有するターゲットデータブロック1内にキャッシュされている有効データはターゲットデータブロック2に移動され、ターゲットデータブロック2内に現在キャッシュされている有効データはターゲットデータブロック1に移動される。キャッシュ内のデータの移動の後で、ターゲットデータブロック内の移動に応じて、ハードディスク内のデータブロック0とデータブロック3とがマッピングされる、キャッシュ内のターゲットデータブロックと、ハードディスク内のデータブロック2とデータブロック5とがマッピングされる、キャッシュ内のターゲットデータブロックとがそれに応じて変更される。この移動の後で、修正によって取得されるマッピング関係が
図8に示される。この時点で、最も頻繁にアクセスされる、ハードディスク内のデータブロック0とデータブロック3とがターゲットデータブロック2にマッピングされる。
【0037】
第3の期間が終了するとき、フラッシュメモリ媒体内の、最大消去回数を現在有するターゲットデータブロック2内にキャッシュされている有効データはターゲットデータブロック0に移動され、ターゲットデータブロック0内に現在キャッシュされている有効データはターゲットデータブロック2に移動される。キャッシュ内のデータの移動の後で、ターゲットデータブロック内のデータの移動に応じて。この移動の後で、修正によって取得されるマッピング関係が
図9に示される。この時点で、最も頻繁にアクセスされる、ハードディスク内のデータブロック0とデータブロック3とがターゲットデータブロック0にマッピングされる。
【0038】
第4の期間が終了するとき、フラッシュメモリ媒体内の、最大消去回数を現在有するターゲットデータブロック0内にキャッシュされている有効データはターゲットデータブロック1に移動され、ターゲットデータブロック1内に現在キャッシュされている有効データはターゲットデータブロック0に移動される。キャッシュ内のデータの移動の後で、ターゲットデータブロック内のデータに移動に応じて。この移動の後で、修正によって取得されたマッピング関係が
図10に示される。この時点で、最も頻繁にアクセスされる、ハードディスク内のデータブロック0とデータブロック3とがターゲットデータブロック1にマッピングされる。
【0039】
第5の期間が終了するとき、フラッシュメモリ媒体内の、最大消去回数を現在有するターゲットデータブロック1内にキャッシュされている有効データはターゲットデータブロック2に移動され、ターゲットデータブロック2内に現在キャッシュされている有効データはターゲットデータブロック1に移動される。キャッシュ内のデータの移動の後で、ターゲットデータブロック内のデータの移動に応じて。この移動の後で、修正によって取得されたマッピング関係が
図11に示される。この時点で、最も頻繁にアクセスされる、ハードディスク内のデータブロック0とデータブロック3とがターゲットデータブロック2にマッピングされる。
【0040】
第6の期間が終了するとき、フラッシュメモリ媒体内の、最大消去回数を現在有するターゲットデータブロック2内にキャッシュされている有効データはターゲットデータブロック0に移動され、ターゲットデータブロック0内に現在キャッシュされている有効データはターゲットデータブロック2に移動される。キャッシュ内のデータの移動の後で、ターゲットデータブロック内のデータの移動に応じて。この移動の後で、修正によって取得されたマッピング関係が
図6に示される。この時点で、1つの切替え周期が終了し、
図6から、次の切替え周期が
図6から
図11に示される切替え順序に従って継続的に実行される。
【0041】
この例では、それぞれの期間が終了するとき、最大消去回数を現在有するターゲットデータブロック、すなわち、現在最も頻繁にアクセスされているデータブロックがマッピングされるターゲットデータブロックの切替えターゲットが、ターゲットデータブロックの数列に従って選択される。その他の実施形態では、ターゲットデータブロックの数が3を超えたとき、切替えターゲット内のデータが現在の切替え周期に最大回数だけ他のターゲットデータブロックと交換されており、切替えターゲットが、現在の切替え周期の先の切替え期間において、最大消去回数を現在有するターゲットデータブロックとデータ交換を実行したばかりのターゲットデータブロックとは異なる任意のターゲットデータブロックであることを条件に、切替えターゲットは、ターゲットデータブロックの数列に従って選択されてよく、またはターゲットデータブロックの数列に従わずに、選択されてもよい。
【0042】
この実施形態では、ターゲットデータブロック内にキャッシュされているデータの移動の後でフラッシュメモリ媒体内および/またはメモリ内に記憶されたキャッシュメタデータを更新することによって、データブロックがマッピングされるターゲットデータブロックを変更することが可能である。
【0043】
ハードディスク内のデータブロックなど、ローカルエリアが頻繁にアクセスされるシナリオでは、ハードディスク内の頻繁にアクセスされるローカルエリアが常に固定ターゲットデータブロックにマッピングされるだけでなく、それによって、フラッシュメモリ媒体のサービス寿命を延期および最適化するように、ハードディスク内の頻繁にアクセスされるデータブロックは、1つの切替え周期のそれぞれの切替え期間に、フラッシュメモリ媒体内の異なるターゲットデータブロックにマッピングされる。さらに、上で説明された1つの周期配列切替え周期の後で、フラッシュメモリ媒体内のターゲットデータブロックの消去回数は互いに近接し、かつ平均値に近接し、フラッシュメモリ媒体のサービス寿命が最適化されるように、ターゲットデータブロックの消去回数は均等に分散される。さらに、この実施形態の周期配列動的切替えマッピングポリシーを採用することによって、マッピングターゲットが切り替わるたびに、キャッシュ内の2個のターゲットデータブロック内の有効データだけが移動され、これはパフォーマンスに深刻な影響を与えず、様々なサイズのキャッシュに適用可能である。
【0044】
上で説明された基礎をなす記憶媒体とキャッシュとの間の周期的な動的マッピング切替え方法は、サービスが周期的規則を有するアプリケーションシナリオ、特に、サービスが周期的規則を有し、システム内で最も頻繁にアクセスされるデータがハードディスク上の固定位置に記憶されるシナリオに適用可能である。
【0045】
本発明のある実施形態は、キャッシュマッピングを制御する解決策であって、基礎をなす記憶媒体のキャッシュ内のそれぞれのターゲットデータブロックの消去回数を監視するステップであって、基礎をなす記憶媒体内の1個または複数のデータブロックがキャッシュ内の1個のターゲットデータブロックだけにマッピングされ、基礎をなす記憶媒体のキャッシュがフラッシュメモリ媒体を含む、監視するステップと、キャッシュ内の、最大消去回数を有するターゲットデータブロックと最小消去回数を有するターゲットデータブロックとの間の差がプリセットされた消去しきい値に達したとき、基礎をなす記憶媒体内の少なくとも1個のデータブロックがマッピングされる、キャッシュ内のターゲットデータブロックを変更するステップであって、キャッシュ内の変更されたターゲットデータブロックが、キャッシュ内の、最大消去回数を現在有するターゲットデータブロックを含む、変更するステップと、キャッシュ内のそれぞれのターゲットデータブロックが変更された後で生成される消去回数を継続的に監視するステップとを含む、解決策をさらに提供する。
【0046】
図12は、本発明の第2の実施形態による、キャッシュマッピングを制御するための方法の概略流れ図である。この実施形態では、フラッシュメモリ媒体は、キャッシュとして使用され、基礎をなす記憶媒体は、例えば、ハードディスクとして使用される。例えば、限定としてではなく、キャッシュは4個のターゲットデータブロックを有し、ハードディスクは2つのセットを含み、それぞれのセットは、キャッシュの4個のターゲットデータブロックに対応する4個のデータブロックに分割され、ハードディスク内のそれぞれのデータブロックのサイズは、フラッシュメモリ媒体内のそれぞれのターゲットデータブロックのサイズに一致する。
【0047】
図12に示されるように、本実施形態による、キャッシュマッピングを制御するための方法は、以下のステップを含む。
【0048】
ステップS1201。キャッシュ内のそれぞれのターゲットデータブロックの消去回数を監視および記録するステップ。
【0049】
ステップS1202。キャッシュ内の、最大消去回数を有するターゲットデータブロックと最小消去回数を有するターゲットデータブロックとの間の消去回数の差がプリセットされた消去しきい値に達したとき、最大消去回数を有するターゲットデータブロック内にキャッシュされているデータを、最小消去回数を有するターゲットデータブロック内にキャッシュされているデータと交換するステップ。
【0050】
ステップS1203。ターゲットデータブロックの交換に従って、それに応じて、基礎をなす記憶媒体内の、最大消去回数を有するターゲットデータブロックに現在マッピングされているすべてのデータブロックがマッピングされる、キャッシュ内のターゲットデータブロックを、最小消去回数を有するターゲットデータブロックに現在マッピングされているすべてのデータブロックにマッピングされる、キャッシュ内のターゲットデータブロックと変更するステップ。詳細には、基礎をなす記憶媒体内の、最大消去回数を有するターゲットデータブロックに現在マッピングされているすべてのデータブロックが、最小消去回数を現在有するターゲットデータブロックにマッピングされ、基礎をなす記憶媒体内の、最小消去回数を有するターゲットデータブロックに現在マッピングされているすべてのデータブロックが最大消去回数を現在有するターゲットデータブロックにマッピングされるように変更を行う。詳細には、キャッシュメタデータを変更することによって、ハードディスク内のデータブロックとキャッシュ内のターゲットデータブロックとの間のマッピング関係を変更することができる。
【0051】
ステップS1204。ハードディスクとキャッシュとの間のマッピングが変更された後で、キャッシュのそれぞれのターゲットデータブロックの記録された消去回数をリセットして、ステップS1201に戻って、マッピング変更の後で生成される、それぞれのターゲットデータブロックの消去回数を継続的に監視および記録して、条件が満たされたとき、ステップS1203およびステップS1204を実行するステップ。例えば、それぞれのターゲットデータブロックの消去回数を記録するために、カウンタを使用することができる。それぞれのマッピング変更の後で、カウンタはリセットされ、次いで、カウントを開始して、マッピング変更の後で生成される消去回数を記録する。
【0052】
図1、
図13、および
図14は、本発明の第2の実施形態による方法を採用することによって、キャッシュマッピングを制御する特定の例を示す。この例では、当初、
図1に示されるマッピング関係がハードディスクとキャッシュとの間で採用されると仮定する。
図1に示されるように、当初、ハードディスクとキャッシュとの間のマッピング関係は以下の通りである。すなわち、ハードディスク内のデータブロック0とデータブロック4とがキャッシュ内のターゲットデータブロック0にマッピングされ、ハードディスクのデータブロック1とデータブロック5とがキャッシュ内のターゲットデータブロック1にマッピングされ、ハードディスクのデータブロック2とデータブロック6とがキャッシュ内のターゲットデータブロック2にマッピングされ、ハードディスクのデータブロック3とデータブロック7とがキャッシュ内のターゲットデータブロック3にマッピングされる。キャッシュ内のそれぞれのターゲットデータブロックの消去回数が監視される。
【0053】
ターゲットデータブロック0は、最大消去回数を現在有し、ターゲットデータブロック1は、最小消去回数を現在有すると仮定する。データキャッシングの進展に伴い、それぞれのターゲットデータブロックの消去回数が監視および記録される。ターゲットデータブロック0とターゲットデータブロック1との間の消去回数の差が消去しきい値Sに達したと判断されたとき、最大消去回数を有するターゲットデータブロック0内にキャッシュされているデータは最小消去回数を有するターゲットデータブロック1内にキャッシュされているデータと交換され、それに応じて、ハードディスク内のターゲットデータブロック0に現在マッピングされているすべてのデータブロック(この例では、データブロック0およびデータブロック4)がターゲットデータブロック1にマッピングされ、ターゲットデータブロック1に現在マッピングされているすべてのデータブロック(この例では、データブロック1およびデータブロック5)がターゲットデータブロック0にマッピングされるように、変更が実行される。変更の後のマッピング関係が
図13に示される。次いで、キャッシュ内のそれぞれのターゲットデータブロックの消去回数がリセットされ、マッピング変更の後で生成される、キャッシュ内のそれぞれのターゲットデータブロックの消去回数が継続的に監視される。
【0054】
この例では、前の交換の後で、データキャッシングの進展に伴い、ターゲットデータブロック3の消去回数は最小になり、ターゲットデータブロック2の消去回数は最大になると仮定する。ターゲットデータブロック2とターゲットデータブロック3との間の消去回数の差が消去しきい値Sに達したとき、最大消去回数を有するターゲットデータブロック2内にキャッシュされているデータは、最小消去回数を有するターゲットデータブロック3内にキャッシュされているデータと交換され、それに応じて、ハードディスク内のターゲットデータブロック2に現在マッピングされているすべてのデータブロック(この例では、データブロック2およびデータブロック6)がターゲットデータブロック3にマッピングされ、ターゲットデータブロック3に現在マッピングされているすべてのデータブロック(この例では、データブロック3およびデータブロック7)がターゲットデータブロック2にマッピングされるように、変更が実行される。変更の後のマッピング関係が
図14に示される。次いで、キャッシュ内のそれぞれのターゲットデータブロックの消去回数はリセットされて、マッピング変更の後で生成される、キャッシュ内のそれぞれのターゲットデータブロックの消去回数は継続的に監視され、最大消去回数を有するターゲットデータブロックと最小消去回数を有するターゲットデータブロックとの間の消去回数の差がプリセットされた消去しきい値Sに達したとき、上で説明されたのと類似の形でハードディスクとキャッシュとの間のマッピングは変更される。
【0055】
本実施形態を使用することによって、フラッシュメモリ媒体内のターゲットデータブロックの最大消去回数と最小消去回数との間の差と、消去されたブロックの最大消去回数と最小消去回数との間の差は制御可能になり、その結果、それぞれのターゲットデータブロックの消去回数が平均値に近接することが確実にされる。フラッシュメモリ媒体内のターゲットデータブロックの消去回数の相違は、消去しきい値Sを設定することによって制御可能である。本実施形態は、サービスが周期現象を有さないか、または自明でない周期現象を有するアプリケーションシナリオに特に適用可能である。
【0056】
本発明の実施形態の実装では、消去回数を置換回数と置き換えることが可能であり、置換回数は、動的マッピング交換を実行するために監視および記録される。当業者が理解するように、キャッシュ内でデータを書き込まれた他のデータと置換する動作は、キャッシュ置換と呼ばれる。
【0057】
特定のアプリケーションでは、ユーザは、実際のアプリケーションシナリオに従って、上で説明された動的マッピングポリシーからある動的マッピングポリシーを選択して、その動的マッピングポリシーを採用し、動的マッピングポリシーが必要とされないときは、その動的マッピングポリシーを完了させることが可能である。さらに、動的マッピングポリシーを選択した後で、ユーザは、実際のニーズに従って、対応するインターフェースモジュールを介して、切替え期間、切替え周期、および/または消去しきい値など、対応するパラメータを設定することも可能である。動的マッピングポリシーを選択しない場合、ユーザは、デフォルトマッピングポリシー、例えば、直接マッピング、完全なアソシアティブマッピング、およびNウェイセットアソシアティブマッピングを使用することができる。
【0058】
キャッシュとして機能するフラッシュメモリ媒体内のターゲットデータブロックが使用限度に迅速に達せず、それによって、フラッシュメモリ媒体のサービス寿命を延長できるように、その切替え方法が、基礎をなす記憶媒体内の頻繁にアクセスされるデータブロック内のデータが常にキャッシュ内の固定ターゲットデータブロックに対応するだけではないことを可能にすることを条件に、上で説明された切替え方法の他に、他の切替え順序を使用するマッピング切替え方法も容認可能である点を当業者は理解されたい。
【0059】
切替え方法が、キャッシュ内のそれぞれのターゲットデータブロックの消去回数が互いに近接すること、例えば、平均値に近接することを可能にするとき、フラッシュメモリ媒体のサービス寿命が最大となることを当業者は理解されたい。
【0060】
次に、
図15を参照すると、
図15は、本発明のある実施形態によるキャッシュシステムを示す。
【0061】
図15に示されるように、本発明の本実施形態によるキャッシュシステム1500は、基礎をなす記憶媒体1510と、基礎をなす記憶媒体に結合され、かつ基礎をなす記憶媒体のキャッシュとして機能するフラッシュメモリ媒体1520であって、基礎をなす記憶媒体内の1個または複数のデータブロックがキャッシュ内の1個のターゲットデータブロックだけにマッピングされる、フラッシュメモリ媒体1520と、プリセット時間間隔で、基礎をなす記憶媒体のキャッシュ内のターゲットデータブロックを変更するステップであって、基礎をなす記憶媒体内の少なくとも1個のデータブロックがターゲットデータブロックにマッピングされ、キャッシュ内の変更されたターゲットデータブロックが、キャッシュ内の、最大消去回数を現在有するターゲットデータブロックを含む、変更するステップを行うように構成されたプロセッサ1530とを含む。
【0062】
キャッシュシステム内のプロセッサは、1つの切替え周期の後でキャッシュ内のターゲットデータブロックの消去回数が互いに近接するように、基礎をなす記憶媒体内の少なくとも1個のデータブロックがマッピングされる、キャッシュ内のターゲットデータブロックを、1つの切替え周期のそれぞれの切替え期間に変更するステップであって、1つの切替え周期内に含まれる切替え期間の数が、キャッシュ内に含まれたターゲットデータブロックの数N以上である、変更するステップを行うようにさらに構成可能である。
【0063】
キャッシュシステム内のプロセッサは、基礎をなす記憶媒体内のそれぞれのデータブロックが1つの切替え周期の異なる切替え期間にキャッシュ内の異なるターゲットデータブロックにマッピングされるように、基礎をなす記憶媒体内のそれぞれのデータブロックがマッピングされる、キャッシュ内のターゲットデータブロックを、1つの切替え周期のそれぞれの切替え期間に変更するステップであって、1つの切替え周期内に含まれる切替え期間の数がキャッシュ内に含まれたターゲットデータブロックの数に等しい、変更するステップを行うようにさらに構成可能である。
【0064】
キャッシュシステム内のプロセッサは、キャッシュ内のターゲットデータブロックの数列に従って、キャッシュ内のそれぞれのターゲットデータブロックのデータを、1つの切替え周期のそれぞれの切替え期間に、ラウンドロビン様式で、ターゲットデータブロックの数に隣り合う数を有するターゲットデータブロックに移動するステップと、ターゲットデータブロック内のデータの移動に応じて、基礎をなす記憶媒体内のそれぞれのデータブロックがマッピングされるターゲットデータブロックをそれに応じて変更するステップとを行うようにさらに構成可能である。
【0065】
キャッシュシステム内のプロセッサは、キャッシュ内の、最大消去回数を現在有するターゲットデータブロック内にキャッシュされているデータを、1つの切替え周期のそれぞれの切替え期間に、最大消去回数を有するターゲットデータブロック以外の、キャッシュ内のターゲットデータブロック内にキャッシュされているデータと交換するステップであって、後者のターゲットデータブロック内のデータが現在の切替え周期に最小回数だけ交換され、前記後者のターゲットデータブロックが、現在の切替え周期の前の切替え期間において、最大消去回数を現在有するターゲットデータブロックとデータを交換するターゲットデータブロックとは異なる、交換するステップと、基礎をなす記憶媒体内の対応するデータブロックがマッピングされるターゲットデータブロックをそれに応じて変更するステップとを行うようにさらに構成可能であり、1つの切替え周期はN×(N-1)個の切替え期間を含み、1つの切替え周期において、キャッシュ内のそれぞれのターゲットデータブロックは、異なるN-1個の切替え期間において、キャッシュ内の、最大消去回数を有するターゲットデータブロックである。
【0066】
本発明のある実施形態は、基礎をなす記憶媒体と、基礎をなす記憶媒体に結合され、かつ基礎をなす記憶媒体のキャッシュとして機能するフラッシュメモリ媒体であって、基礎をなす記憶媒体内の1個または複数のデータブロックがキャッシュ内の1個のターゲットデータブロックだけにマッピングされる、フラッシュメモリ媒体と、キャッシュ内のそれぞれのターゲットデータブロックの消去回数を監視するステップと、キャッシュ内の、最大消去回数を有するターゲットデータブロックと最小消去回数を有するターゲットデータブロックとの間の消去回数の差がプリセットされた消去しきい値に達したとき、基礎をなす記憶媒体内の少なくとも1個のデータブロックがマッピングされる、キャッシュ内のターゲットデータブロックを変更するステップであって、キャッシュ内の変更されたターゲットデータブロックが、キャッシュ内の、最大消去回数を現在有するターゲットデータブロックを含む、変更するステップと、キャッシュ内のそれぞれのターゲットデータブロックが変更された後で生成される消去回数を継続的に監視するステップとを行うように構成されたプロセッサとを含むキャッシュシステムをさらに提供する。
【0067】
キャッシュシステム内のプロセッサは、最大消去回数を有するターゲットデータブロック内にキャッシュされているデータを、最小消去回数を有するターゲットデータブロック内にキャッシュされているデータと交換するステップと、基礎をなす記憶媒体内の、最大消去回数を有するターゲットデータブロックに現在マッピングされているすべてのデータブロックが最小消去回数を有するターゲットデータブロックにマッピングされ、基礎をなす記憶媒体内の最小消去回数を有するターゲットデータブロックに現在マッピングされているすべてのデータブロックが最大消去回数を有するターゲットデータブロックにマッピングされるように、それに応じて変更を実行するステップとを行うようにさらに構成可能である。
【0068】
装置1500内のプロセッサの機能は、ソフトウェア、ハードウェア、またはソフトウェアとハードウェアの組合せによって実施可能であることを当業者は理解されたい。
【0069】
本発明のある実施形態は、機械実行可能命令を記憶するための機械可読記憶媒体であって、機械実行可能命令が実行されるとき、機械が、プリセット時間間隔で、基礎をなす記憶媒体のキャッシュ内のターゲットデータブロックを変更するステップであって、基礎をなす記憶媒体内の少なくとも1個のデータブロックがターゲットデータブロックにマッピングされ、基礎をなす記憶媒体内の1個または複数のデータブロックがキャッシュ内の1個のターゲットデータブロックだけにマッピングされ、基礎をなす記憶媒体のキャッシュがフラッシュメモリ媒体を含み、キャッシュ内の変更されたターゲットデータブロックが、キャッシュ内の、最大消去回数を現在有するターゲットデータブロックを含む、変更するステップを行うことが可能にされる機械可読記憶媒体をさらに提供する。
【0070】
この方法は、以下のステップ、すなわち、1つの切替え周期の後でキャッシュ内のターゲットデータブロックの消去回数が互いに近接するように、基礎をなす記憶媒体内の少なくとも1個のデータブロックがマッピングされる、キャッシュ内のターゲットデータブロックを、1つの切替え周期のそれぞれの切替え期間に変更するステップであって、1つの切替え周期内に含まれる切替え期間の数がキャッシュ内に含まれたターゲットデータブロックの数N以上である、変更するステップをさらに含むことが可能である。
【0071】
この方法は、以下のステップ、すなわち、基礎をなす記憶媒体内のそれぞれのデータブロックが1つの切替え周期の異なる切替え期間にキャッシュ内の異なるターゲットデータブロックにマッピングされるように、基礎をなす記憶媒体内のそれぞれのデータブロックがマッピングされる、キャッシュ内のターゲットデータブロックを、1つの切替え周期のそれぞれの切替え期間に変更するステップであって、1つの切替え周期内に含まれる切替え期間の数がキャッシュ内に含まれたターゲットデータブロックの数Nに等しい、変更するステップをさらに含むことが可能である。
【0072】
上で説明された送信ステップは、以下のステップ、すなわち、キャッシュ内のターゲットデータブロックの数列に従って、キャッシュ内のそれぞれのターゲットデータブロックのデータを、1つの切替え周期のそれぞれの切替え期間に、ラウンドロビン様式で、ターゲットデータブロックの数に隣り合う数を有するターゲットデータブロックに移動させるステップと、ターゲットデータブロック内のデータの移動に応じて、基礎をなす記憶媒体内のそれぞれのデータブロックがマッピングされるターゲットデータブロックをそれに応じて変更するステップとをさらに含むことが可能である。
【0073】
上で説明された検出ステップは、以下のステップ、すなわち、キャッシュ内の、最大消去回数を現在有するターゲットデータブロック内にキャッシュされているデータを、1つの切替え周期のそれぞれの切替え期間に、最大消去回数を有するターゲットデータブロック以外の、キャッシュ内のターゲットデータブロック内にキャッシュされているデータと交換するステップであって、後者のターゲットデータブロック内のデータが現在の切替え周期に最小回数だけ交換され、前記後者のターゲットデータブロックが、現在の切替え周期の前の切替え期間において、最大消費回数を現在有するターゲットデータブロックとデータを交換するターゲットデータブロックとは異なる、交換するステップと、基礎をなす記憶媒体内の対応するデータブロックがマッピングされるターゲットデータブロックをそれに応じて変更するステップとをさらに含むことが可能であり、1つの切替え周期はN×(N-1)個の切替え期間を含み、1つの切替え周期において、キャッシュのそれぞれのターゲットデータブロックは、異なるN-1個の切替え期間において、キャッシュ内の、最大消去回数を有するターゲットデータブロックである。
【0074】
本発明のある実施形態は、機械実行可能命令を記憶するための機械可読記憶媒体であって、機械実行可能命令が実行されるとき、機械が、基礎をなす記憶媒体のキャッシュ内のそれぞれのターゲットデータブロックの消去回数を監視するステップであって、基礎をなす記憶媒体内の1個または複数のデータブロックがキャッシュ内の1個のターゲットデータブロックだけにマッピングされ、基礎をなす記憶媒体のキャッシュがフラッシュメモリ媒体を含む、監視するステップと、キャッシュ内の、最大消去回数を有するターゲットデータブロックと最小消去回数を有するターゲットデータブロックとの間の消去回数の差がプリセットされた消去しきい値に達したとき、基礎をなす記憶媒体内の少なくとも1個のデータブロックがマッピングされる、キャッシュ内のターゲットデータブロックを変更するステップであって、キャッシュ内の変更されたターゲットデータブロックが、キャッシュ内の、最大消去回数を現在有するターゲットデータブロックを含む、変更するステップと、キャッシュ内のそれぞれのターゲットデータブロックが変更された後で生成される消去回数を継続的に監視するステップとを実行することが可能にされる機械可読記憶媒体をさらに提供する。
【0075】
この方法は、以下のステップ、すなわち、最大消去回数を有するターゲットデータブロック内にキャッシュされているデータを、最小消去回数を有するターゲットデータブロック内にキャッシュされているデータと交換するステップと、基礎をなす記憶媒体内の、最大消去回数を有するターゲットデータブロックに現在マッピングされているすべてのデータブロックが最小消去回数を有するターゲットデータブロックにマッピングされ、基礎をなす記憶媒体内の、最小消去回数を有するターゲットデータブロックに現在マッピングされているすべてのデータブロックが最大消去回数を有するターゲットデータブロックにマッピングされるように、それに応じて変更を実行するステップとをさらに含むことが可能である。
【0076】
本発明の本質から逸脱せずに、本発明の実施形態で開示された方法および装置に様々な修正および変更を行うことが可能であり、これらの修正および変更は本発明の保護範囲に該当することを当業者は理解されたい。したがって、本発明の保護範囲は、添付の請求項を条件とすべきである。