フラッシュメモリーのウェアレベリング

最終更新日 2023年09月17日

フラッシュメモリーのウェアレベリングとは

基礎

フラッシュメモリーのウェアレベリングとは、フラッシュメモリーの論理的な場所全体にデータ書き込みが不均等に分散している場合でも、フラッシュメモリーの物理的な場所全体にデータ書き換え回数を分散させる方法です。

ウェアレベリングの例

フラッシュメモリーではデータを書き換える場合、データを消去してから書き込む必要があります。データ読み書きはページ単位で行えますが、データ消去はブロック単位で行えます。そのため、ブロックのデータを1ビットでも書き換える場合、ブロックのデータを制御チップの作業用メモリーにコピーし、作業用メモリーでデータを書き換え、作業用メモリーのデータを別のブロックにコピーします。元のブロックのデータは消去します。

制御チップではブロック単位でデータ書き換え回数を管理しています。ウェアレベリングでは、作業用メモリーのデータをどのブロックにコピーするか選びますが、データ書き換え回数が少ないブロックを選びます。これによりブロックのデータ書き換え回数を全体的に平準化できます。

1
 
7
 
2
 
4
A
2
D’
7
 
2
 
4
A
1
B
3
 
4
C
2
 
1
B
3
 
4
C
2
 
2
 
2
D
1
E
3
F
2
 
2
 
1
E
3
F
6
 
4
 
2
G
3
 
6
 
4
 
2
G
3
 

例えばブロックが16個あるとします。水色のブロックはデータが書き込まれていない未使用ブロック、紫色のブロックはデータが書き込まれている使用中ブロックです。各ブロックの左上の数字はデータ書き換え回数、左下のアルファベットはブロックを識別するために付けています。

上から3番目、左から2番目の位置にあるブロックDのデータを書き換えるとします。書き換え後のデータは、上から1番目、左から1番目のブロックがデータ書き換え回数1回と少ないので、このブロックにコピーします。

制御チップによっては、データ書き換え回数が少ないブロックのデータを、多いブロックに移動させます。前者のブロックにあるデータは今後もデータ書き換え対象になる可能性が低いと判断します。これにより他のブロックと比べてデータ書き換え回数が少ないブロックが存在することを防ぎます。

1
 
7
 
2
 
4
A
1
 
8
B
2
 
4
A
1
B
3
 
4
C
2
 
1
 
3
 
4
C
2
 
2
 
2
D
1
E
3
F
2
 
2
D
1
E
3
F
6
 
4
 
2
G
3
 
6
 
4
 
2
G
3
 

上から2番目、左から1番目のブロックBはデータ書き換え回数が1回と少ないです。ブロックBのデータを、上から1番目、左から2番目のブロックにコピーします。新たなブロックBはデータ書き換え回数が7回から8回になりますが、8回のままが続き、元ブロックBのデータ書き換え回数が増える可能性があります。

出典
なぜ消えるのか、劣化するのか(6ページ目) | 日経クロステック(xTECH)(2009/11/19公開記事)


キャンペーン情報(PR)
マウスコンピューター
・オータムセール
最大50,000円OFF
(10月9日迄)
DELL
・今週のおすすめ製品
対象製品が特別価格でお買い得
(キャンペーン実施中)
パソコン工房
・決算セール
セール対象BTOパソコン最大55,000円OFF
(10月1日迄)

フラッシュメモリーのウェアレベリング



デル株式会社