【文献】
Nak Hee Seong et al.,SAFER: Stuck-At-Fault Error Recovery for Memories,Microarchitecture (MICRO), 2010 43rd Annual IEEE/ACM International Symposium on,米国,IEEE,2010年12月 4日,P.115-124,DOI: 10.1109/MICRO.2010.46,URL,http://ieeexplore.ieee.org/document/5695530/
【文献】
Rami Melhem et al.,RDIS: A recursively defined invertible set scheme to tolerate multiple stuck-at faults in ,Dependable Systems and Networks (DSN), 2012 42nd Annual IEEE/IFIP International Conference on,米国,IEEE,2012年 6月25日,DOI: 10.1109/DSN.2012.6263949 ,URL,http://ieeexplore.ieee.org/document/6263949/
(58)【調査した分野】(Int.Cl.,DB名)
前記分類条件は、グループに含まれるstuck-at faultの前記数が1を超えるとき、前記B個のグループの前記グループに含まれる前記stuck-at faultの前記タイプが同じであることを含み、前記stuck-at faultの前記タイプはstuck-at right faultとstuck-at wrong faultとを含み、前記stuck-at right faultは、前記stuck-at faultが位置する第1のビットの数値が前記第1のビットに書き込まれる必要がある数値と等しいことを指し、前記stuck-at wrong faultは、前記stuck-at faultが位置する第2のビットの数値が前記第2のビットに書き込まれる必要がある数値と反対であることを指す、請求項1に記載の書き込み方法。
前記n個のビットに、前記分類方式に従って、且つ、前記B個のグループの各グループに含まれる前記stuck-at faultについての情報と前記B個のグループの各グループ内の前記stuck-at faultが位置するビットに対応する、書き込まれる必要がある数値とに従って、書き込まれる必要がある前記n個の数値を対応して書き込む前記ステップは、
前記B個のグループの各グループに含まれる前記stuck-at faultについての前記情報と、前記stuck-at faultが位置する前記ビットに対応する、書き込まれる必要がある前記数値とに従って、前記B個のグループの各グループに含まれる前記stuck-at faultの前記タイプを決定するステップと、
前記n個のビットに、前記B個のグループと前記B個のグループの各グループに含まれる前記stuck-at faultの前記タイプとに従って、書き込まれる必要がある前記n個の数値を対応して書き込むステップと
を含む、請求項1乃至4のいずれか1項に記載の書き込み方法。
前記n個のビットに、前記B個のグループと前記B個のグループの各グループに含まれる前記stuck-at faultの前記タイプとに従って、書き込まれる必要がある前記n個の数値を対応して書き込む前記ステップは、
前記B個のグループのi番目のグループに含まれるstuck-at faultのタイプがstuck-at wrong faultであるとき、前記i番目のグループのビットに対応する、書き込まれる必要がある数値を反転し、前記反転の後に得られた前記数値を前記i番目のグループに書き込むステップであって、iはB以下の正の整数である、ステップ
を含む、請求項5に記載の書き込み方法。
前記n個のビットに、前記B個のグループと前記B個のグループの各グループに含まれる前記stuck-at faultの前記タイプとに従って、書き込まれる必要がある前記n個の数値を対応して書き込む前記ステップは、
フラグビットmiを前記B個のグループのi番目のグループに割り当てるステップであって、miは、前記B個のグループの前記i番目のグループに含まれるstuck-at faultのタイプを示すために使用される、ステップと、
前記i番目のグループに、前記フラグビットmiに従って、前記i番目のグループに対応する、書き込まれる必要がある数値を対応して書き込むステップであって、iはB以下の正の整数である、ステップと
を含む、請求項5に記載の書き込み方法。
前記分類条件は、グループに含まれるstuck-at faultの前記数が1を超えるとき、前記B個のグループの前記グループに含まれる前記stuck-at faultのタイプが同じであることを含み、前記stuck-at faultの前記タイプはstuck-at right faultとstuck-at wrong faultとを含み、前記stuck-at right faultは、前記stuck-at faultが位置する第1のビットの数値が前記第1のビットに書き込まれる必要がある数値と等しいことを指し、且つ、前記stuck-at wrong faultは、前記stuck-at faultが位置する第2のビットの数値が前記第2のビットに書き込まれる必要がある数値と反対であることを指す、請求項9に記載の書き込み装置。
【発明の概要】
【課題を解決するための手段】
【0006】
本発明の実施形態は記憶デバイスに対する書き込み方法および書き込み装置を提供し、このことは、stuck-at faultが発生した記憶デバイスの書き込みエラーの問題を解決することができる。
【0007】
第1の態様によると、記憶デバイスに対する書き込み方法が提供され、ここで、書き込み方法は、書き込まれる必要があるn個の数値を取得するステップと、書き込まれる必要があるn個の数値に対応する、記憶デバイス内のn個のビットと、n個のビットに含まれるstuck-at faultについての情報とを決定するステップであって、ここで、stuck-at faultについての情報は、n個のビットにおけるstuck-at faultの位置と、stuck-at faultが位置するビットの数値とを含む、ステップと、B個のグループのビットが分類条件を満たし、且つ、n個のビットがB行A列の2次元配列を表すとき、n個のビットにおける、同じグループに属する任意の2個のビットは異なる行および列内にあるか、または、n個のビットにおける、同じグループに属する任意の2個のビットは同じ行内にあるように、n個のビットをB個のグループのビットに分類するステップであって、ここで、分類条件は、B個のグループのビットにおける各グループのビットに含まれるstuck-at faultのタイプまたは数を制限するために使用される、ステップと、n個のビットに、分類方式に従って、且つ、B個のグループのビットにおける各グループのビットに含まれるstuck-at faultについての情報と、書き込まれる必要があり、且つ、B個のグループのビットにおける各グループのビット内のstuck-at faultが位置するビットに対応する数値とに従って、書き込まれる必要があるn個の数値を対応して書き込むステップとを含み、ここで、n、AおよびBは正の整数であり、且つ、n≦A×Bである。
【0008】
第1の態様を参照すると、第1の可能な実施方式では、B個のグループのビットが分類条件を満たすように、n個のビットをB個のグループのビットに分類するステップは、n個のビットがB行A列の2次元配列を表すとき、B行A列の2次元配列における、B個のグループのビットにおけるi番目のグループのビット内のj番目のビットの位置が、
p
i,j+1=p
i,j+1およびq
i,j+1=(q
i,j+k)modB
を満たすように、n個のビットをB個のグループのビットに分類するステップと、B個のグループのビットが分類条件を満たすように、kの値を調整するステップとを含み、ここで、p
i,jは、2次元配列における、B個のグループのビットにおけるi番目のグループのビット内のj番目のビットの列番号であり、q
i,jは、2次元配列における、B個のグループのビットにおけるi番目のグループのビット内のj番目のビットの行番号であり、iおよびq
i,jは、B以下の正の整数であり、jおよびp
i,jは、A以下の正の整数であり、kはBよりも小さい非負整数であり、kの値を調整するステップは、kの値を1増やすステップを含み、ここで、Bは
【0009】
【数1】
【0010】
以上の最小素数であり、且つ、
【0011】
【数2】
【0012】
である。
【0013】
第1の態様または第1の態様の第1の可能な実施方式を参照すると、第2の可能な実施方式では、分類条件は、B個のグループのビットにおける各グループのビットに含まれるstuck-at faultの数が1を超えないことを含む。
【0014】
第1の態様または第1の態様の第1の可能な実施方式を参照すると、第3の可能な実施方式では、分類条件は、B個のグループのビットにおける各グループのビットに含まれるstuck-at faultのタイプが同じであることを含み、ここで、stuck-at faultのタイプはstuck-at right faultとstuck-at wrong faultとを含み、stuck-at right faultは、stuck-at faultが位置する1番目のビットの数値が、書き込まれる必要があり、且つ、1番目のビットに対応する数値と等しいことを指し、stuck-at wrong faultは、stuck-at faultが位置する2番目のビットの数値が、書き込まれる必要があり、且つ、2番目のビットに対応する数値と反対であることを指す。
【0015】
第1の態様または第1の態様の前述の可能な実施方式のいずれか1つを参照すると、第4の可能な実施方式では、n個のビットに、B個のグループのビットにおける各グループのビットに含まれるstuck-at faultについての情報と、書き込まれる必要があり、且つ、stuck-at faultが位置するビットに対応する数値とに従って、書き込まれる必要があるn個の数値を対応して書き込むステップは、B個のグループのビットにおける各グループのビットに含まれるstuck-at faultについての情報と、書き込まれる必要があり、且つ、stuck-at faultが位置するビットに対応する数値とに従って、B個のグループのビットにおける各グループのビットに含まれるstuck-at faultのタイプを決定するステップと、n個のビットに、B個のグループのビットとB個のグループのビットにおける各グループのビットに含まれるstuck-at faultのタイプとに従って、書き込まれる必要があるn個の数値を対応して書き込むステップとを含む。
【0016】
第1の態様の第4の可能な実施方式を参照すると、第5の可能な実施方式では、n個のビットに、B個のグループのビットとB個のグループのビットにおける各グループのビットに含まれるstuck-at faultのタイプとに従って、書き込まれる必要があるn個の数値を対応して書き込むステップは、B個のグループのビットにおけるi番目のグループのビットに含まれるstuck-at faultのタイプがstuck-at wrong faultであるとき、書き込まれる必要があり、且つ、i番目のグループのビットに対応する数値を対応して反転し、反転の後に得られた数値をi番目のグループのビットに書き込むステップであって、ここで、iはB以下の正の整数である、ステップを含む。
【0017】
第1の態様の第4の可能な実施方式を参照すると、第6の可能な実施方式では、n個のビットに、B個のグループのビットとB個のグループのビットにおける各グループのビットに含まれるstuck-at faultのタイプとに従って、書き込まれる必要があるn個の数値を対応して書き込むステップは、フラグビットm
iをB個のグループのビットにおけるi番目のグループのビットに割り当てるステップであって、ここで、m
iは、B個のグループのビットにおけるi番目のグループのビットに含まれるstuck-at faultのタイプを示すために使用される、ステップと、i番目のグループのビットに、フラグビットm
iに従って、書き込まれる必要があり、且つ、i番目のグループのビットに対応する数値を対応して書き込むステップであって、ここで、iはB以下の正の整数である、ステップとを含む。
【0018】
第1の態様の第6の可能な実施方式を参照すると、第7の可能な実施方式では、i番目のグループのビットに、フラグビットm
iに従って、書き込まれる必要があり、且つ、i番目のグループのビットに対応する数値を対応して書き込むステップは、フラグビットm
i=1のとき、書き込まれる必要があり、且つ、i番目のグループのビットに対応する数値を反転して、反転の後に得られた数値をi番目のグループのビットに書き込むステップであって、ここで、フラグビットm
i=1は、B個のグループのビットにおけるi番目のグループのビットに含まれるstuck-at faultのタイプがstuck-at wrong faultであることを示す、ステップを含む。
【0019】
第2の態様によると、記憶デバイスに対する書き込み装置が提供され、ここで、書き込み装置は、書き込まれる必要があるn個の数値を取得するように構成された取得ユニットと、書き込まれる必要があるn個の数値に対応するn個のビットと、n個のビットに含まれるstuck-at faultについての情報とを決定するように構成された第1決定ユニットであって、ここで、stuck-at faultについての情報は、n個のビットにおけるstuck-at faultの位置と、stuck-at faultが位置するビットの数値とを含む、第1決定ユニットと、B個のグループのビットが分類条件を満たし、且つ、n個のビットがB行A列の2次元配列を表すとき、n個のビットにおける、同じグループに属する任意の2個のビットは異なる行および列内にあるか、または、n個のビットにおける、同じグループに属する任意の2個のビットは同じ行内にあるように、n個のビットをB個のグループのビットに分類するように構成された分類ユニットであって、ここで、分類条件は、B個のグループのビットにおける各グループのビットに含まれるstuck-at faultのタイプまたは数を制限するために使用される、分類ユニットと、n個のビットに、分類方式に従って、且つ、B個のグループのビットにおける各グループのビットに含まれるstuck-at faultについての情報と、書き込まれる必要があり、且つ、B個のグループのビットにおける各グループのビット内のstuck-at faultが位置するビットに対応する数値とに従って、書き込まれる必要があるn個の数値を対応して書き込むように構成された書き込みユニットとを含み、ここで、n、AおよびBは正の整数であり、且つ、n≦A×Bである。
【0020】
第2の態様を参照すると、第1の可能な実施方式では、分類ユニットは、具体的には、
n個のビットがB行A列の2次元配列を表すとき、B行A列の2次元配列における、B個のグループのビットにおけるi番目のグループのビット内のj番目のビットの位置が、
p
i,j+1=p
i,j+1およびq
i,j+1=(q
i,j+k)modB
を満たすように、n個のビットをB個のグループのビットに分類し、B個のグループのビットが分類条件を満たすように、kの値を調整するように構成され、ここで、p
i,jは、2次元配列における、B個のグループのビットにおけるi番目のグループのビット内のj番目のビットの列番号であり、q
i,jは、2次元配列における、B個のグループのビットにおけるi番目のグループのビット内のj番目のビットの行番号であり、iおよびq
i,jは、B以下の正の整数であり、jおよびp
i,jは、A以下の正の整数であり、kはBよりも小さい非負整数であり、kの値を調整することは、kの値を1増やすことを含み、ここで、Bは
【0021】
【数3】
【0022】
以上の最小素数であり、且つ
【0023】
【数4】
【0024】
である。
【0025】
第2の態様または第2の態様の第1の可能な実施方式を参照すると、第2の可能な実施方式では、分類条件は、B個のグループのビットにおける各グループのビットに含まれるstuck-at faultの数が1を超えないことである。
【0026】
第2の態様または第2の態様の第1の可能な実施方式を参照すると、第3の可能な実施方式では、分類条件は、B個のグループのビットにおける各グループのビットに含まれるstuck-at faultのタイプが同じであることであり、ここで、stuck-at faultのタイプはstuck-at right faultとstuck-at wrong faultとを含み、stuck-at right faultは、stuck-at faultが位置する1番目のビットの数値が、書き込まれる必要があり、且つ、1番目のビットに対応する数値と等しいことを指し、且つ、stuck-at wrong faultは、stuck-at faultが位置する2番目のビットの数値が、書き込まれる必要があり、且つ、2番目のビットに対応する数値と反対であることを指す。
【0027】
第2の態様または第2の態様の前述の可能な実施方式のいずれか1つを参照すると、第4の可能な実施方式では、書き込みユニットは、B個のグループのビットにおける各グループのビットに含まれるstuck-at faultについての情報と、書き込まれる必要があり、且つ、stuck-at faultが位置するビットに対応する数値とに従って、B個のグループのビットにおける各グループのビットに含まれるstuck-at faultのタイプを決定するように構成された第2決定ユニットと、n個のビットに、B個のグループのビットとB個のグループのビットにおける各グループのビットに含まれるstuck-at faultのタイプとに従って、書き込まれる必要があるn個の数値を対応して書き込むように構成された第1書き込みユニットとを含む。
【0028】
第2の態様の第4の可能な実施方式を参照すると、第5の可能な実施方式では、第1書き込みユニットは、具体的には、B個のグループのビットにおけるi番目のグループのビットに含まれるstuck-at faultのタイプがstuck-at wrong faultであるとき、書き込まれる必要があり、且つ、i番目のグループのビットに対応する数値を、対応して反転し、反転の後に得られた数値をi番目のグループのビットに書き込むように構成され、ここで、iはB以下の正の整数である。
【0029】
第2の態様の第4の可能な実施方式を参照すると、第6の可能な実施方式では、書き込みユニットは割り当てユニットをさらに含み、ここで、割り当てユニットは、フラグビットm
iをB個のグループのビットにおけるi番目のグループのビットに割り当てるように構成され、ここで、m
iは、B個のグループのビットにおけるi番目のグループのビットに含まれるstuck-at faultのタイプを示すために使用され、第1書き込みユニットは、具体的には、i番目のグループのビットに、フラグビットm
iに従って、書き込まれる必要があり、且つ、i番目のグループのビットに対応する数値を対応して書き込むように構成され、ここで、iはB以下の正の整数である。
【0030】
第2の態様の第6の可能な実施方式を参照すると、第7の可能な実施方式では、第1書き込みユニットは、具体的には、フラグビットm
i=1のとき、書き込まれる必要があり、且つ、i番目のグループのビットに対応する数値を反転して、反転の後に得られた数値をi番目のグループのビットに書き込むように構成され、ここで、フラグビットm
i=1は、B個のグループのビットにおけるi番目のグループのビットに含まれるstuck-at faultのタイプがstuck-at wrong faultであることを示す。
【0031】
本発明の実施形態では、同じグループ内の2個の隣接するビット間の間隔を調整することによって、n個のビットはB個のグループに分類されると決定され、且つ、書き込まれる必要がある数値は、B個のグループの各グループ内のstuck-at faultについての情報に従って、n個のビットに、対応して書き込まれることができ、その結果、インピーダンス記憶デバイス内のstuck-at faultによって引き起こされる書き込みエラーが有効に回避されることができる。
【発明を実施するための形態】
【0034】
以下では、本発明の実施形態における添付図面を参照して、本発明の実施形態における技術的解決手段を明確且つ完全に説明する。明らかに、説明される実施形態は一部であるが、本発明の実施形態の全てではない。創造的努力なしに本発明の実施形態に基づいて当業者によって得られる全ての他の実施形態は、本発明の保護範囲内に包含されるべきである。
【0035】
図1は、本発明の実施形態に係る記憶デバイスに対する書き込み方法のフローチャートである。
図1に示される書き込み方法は以下を含む。
【0036】
101. 書き込まれる必要があるn個の数値を取得する。
【0037】
102. 書き込まれる必要があるn個の数値に対応するn個のビットと、n個のビットに含まれるstuck-at faultについての情報とを決定し、ここで、stuck-at faultについての情報は、n個のビットにおけるstuck-at faultの位置と、stuck-at faultが位置するビットの数値とを含む。
【0038】
103. B個のグループのビットが分類条件を満たし、且つ、n個のビットがB行A列の2次元配列を表すとき、n個のビットにおける、同じグループに属する任意の2個のビットは異なる行および列内にあるか、または、n個のビットにおける、同じグループに属する任意の2個のビットは同じ行内にあるように、n個のビットをB個のグループのビットに分類し、ここで、分類条件は、B個のグループのビットにおける各グループのビットに含まれるstuck-at faultのタイプまたは数を制限するために使用される。
【0039】
104. n個のビットに、B個のグループのビットにおける各グループのビットに含まれるstuck-at faultについての情報と、書き込まれる必要があり、且つ、stuck-at faultが位置するビットに対応する数値とに従って、書き込まれる必要があるn個の数値を対応して書き込み、ここで、n、AおよびBは正の整数であり、且つ、n≦A×Bである。
【0040】
本発明の本実施形態では、同じグループ内の2個の隣接するビット間の間隔を調整することによって、n個のビットはB個のグループに分類されると決定され、且つ、書き込まれる必要がある数値は、B個のグループの各グループ内のstuck-at faultについての情報に従って、n個のビットに、対応して書き込まれることができ、その結果、インピーダンス記憶デバイス内のstuck-at faultによって引き起こされる書き込みエラーが有効に防止されることができる。
【0041】
ステップ102において、n個のビットは、ステップ101におけるn個の数値が対応して書き込まれる必要がある位置である。加えて、n個のビットが決定されるとき、n個のビットに含まれるstuck-at faultについての情報もまた決定されてよい。stuck-at faultについての情報は、n個のビットに含まれるstuck-at faultの数、n個のビット内のstuck-at faultの位置、およびstuck-at faultが位置するビットの数値を含んでよい。
【0042】
理解を容易にするために、ステップ102で決定されるn個のビットは、1からnに番号付けされてよく、これらはまた、n個のビットの位置番号として理解されてよい。
【0043】
ステップ103では、まず、n個のビットに対して初期分類が実行される。初期分類は、n個のビットが初期分類中にB個のグループのビットに分類されるように、n個のビットにおける各A個のビットが1個のグループとして連続的に分類されることであってよく、ここで、B個のグループのビットにおける最初のB-1個のグループのビットの各々は、A個のビットを含み、且つ、B番目のグループのビット、すなわち、最後のグループのビットは、n-A×(B-1)個のビットを含む。
【0044】
任意で、ステップ103では、n個のビットがB行A列の2次元配列を表すとき、B行A列の2次元配列における、B個のグループのビットにおけるi番目のグループのビット内のj番目のビットの位置が、
p
i,j+1=p
i,j+1およびq
i,j+1=(q
i,j+k)modB
を満たすべきであるように、n個のビットはB個のグループのビットに分類されることが理解されてよい。加えて、B個のグループのビットが分類条件を満たすように、kの値が調整されてよく、ここで、
p
i,jは、2次元配列における、B個のグループのビットにおけるi番目のグループのビット内のj番目のビットの列番号であり、q
i,jは、2次元配列における、B個のグループのビットにおけるi番目のグループのビット内のj番目のビットの行番号であり、iおよびq
i,jは、B以下の正の整数であり、jおよびp
i,jは、A以下の正の整数であり、kはBよりも小さい非負整数であり、kの値を調整することは、kの値を1増やすことを含み、ここで、Bは
【0049】
具体的には、n個のビットは、初期分類に従って、2次元配列に相互に対応してよい。例えば、2次元配列における1個の行は、初期分類における1個のグループに対応してよく、すなわち、k=0であってよい。あるいは、n個のビットにおけるビットの位置番号がxであり、且つ、2次元配列におけるビットの対応する行および列がaおよびbであると仮定される場合、x=(b-1)×A+aが満たされるべきである。
【0050】
初期グループに対応するkもまた、1、2またはB-1等の、Bよりも小さい別の整数であってよく、このことは本発明で限定されないことは留意されるべきである。
【0051】
任意で、ステップ103では、n個のビットにおける、B個のグループのビットの各々における2個の隣接するビットの位置番号間の差はk×A+1であり、または、すなわち、n個のビットにおけるk×A+1の間隔をおいたビットは同じグループに属するように、n個のビットがB個のグループのビットに分類されることもまた理解されてよい。具体的には、n=A×Bの場合、n個のビットにおけるn番目のビットの次のビットはn個のビットの1番目のビットであるとみなされてよく、または、n個のビットはヘッドトゥテール(head-to-tail)の環状にリンクされるとともに間隔を置いて分類されるとみなされてよい。n<A×Bの場合、n+1番目のビットからA×B番目のビットは空であり、n個のビットにおけるn番目のビットの次のビットは空のn+1番目のビットであり、A×B番目のビットの次のビットはn個のビットにおける1番目のビットであるとみなされてよく、または、A×B個のビットはヘッドトゥテールの環状にリンクされるとともに間隔を置いて分類されるとみなされてよい。
【0052】
任意で、ステップ10
3では、n個のビットが2次元デカルト座標系におけるn個のデータポイントに対応するとき、同じグループに属する任意の2個のビットに対応する2個のデータポイントは2次元デカルト座標系において同じ垂直座標を有するか、または、同じグループに属する任意の2個のビットに対応する2個のデータポイントは2次元デカルト座標系において異なる水平座標および垂直座標を有するように、n個のビットがB個のグループのビットに分類されると理解されてもまたよい。加えて、同じ傾きを有する複数の直線が作られてよく、且つ、同じ直線における全てのデータポイントは同じグループに属する。加えて、複数の直線の傾きはkである。
【0053】
具体的には、n個のビットと2次元デカルト座標系におけるn個のデータポイントとの間の対応のために、前述のn個のビットと2次元配列におけるポイントとの間の対応を参照されたい。例えば、同じ垂直座標を有する、且つ、2次元デカルト座標系におけるn個のデータポイント内のデータポイントは、n個のビットの初期グループにおける1個のグループに対応してよく、すなわち、傾きk=0である。任意で、初期グループに対応するkもまた、B-1の値の別の整数であってもよく、このことは本発明で限定されない。
【0054】
前述の説明は、異なる数学的な見地からのみ実行される分類の分析であり、ここで、共通パラメータはkであることは留意されるべきである。パラメータkは、n個のビットにおける、同じグループ内の2個の隣接するビット間の位置間隔はk×A+1であると理解されてよい。パラメータkはまた、同じグループ内の2個の隣接するビットが2次元配列内で位置する行の間の差として理解されてもよい。パラメータkはまた、同じグループ内のビットが2次元デカルト座標系内で位置する線の傾きとして理解されてもよい。さらなる分類の調整の間、kの値を調整することによって、新しいグループが決定されてよい。ここで、kの値を調整することは、kの値を1増やすことであってよく、例えば、0から1に増やすこと、または1から2に増やすことであってよい。kの値の範囲は、0からB-1のB個の整数を含む。
【0055】
当業者は、パラメータkの値の変化を使用することによって、グループを決定することとして表されることができる方式は、例え別の数学的手法または方法が分析を実行するために使用されたとしても、本発明の本実施形態の範囲に依然として包含されることを理解することができる。
【0056】
任意で、実施形態として、ステップ103で説明される分類条件は、B個のグループのビットにおける各グループのビットに含まれるstuck-at faultの数は1を超えないという、第1の分類条件であってよい。
【0057】
任意で、別の実施形態として、ステップ103で説明される分類条件は第2の分類条件であってよく、第2の分類条件では、B個のグループのビットにおける各グループのビットに含まれるstuck-at faultのタイプが同じであり、ここで、stuck-at faultのタイプはstuck-at right faultとstuck-at wrong faultとを含み、stuck-at right faultは、stuck-at faultが位置する1番目のビットの数値が、書き込まれる必要があり、且つ、1番目のビットに対応する数値と等しいことを指し、stuck-at wrong faultは、stuck-at faultが位置する2番目のビットの数値が、書き込まれる必要があり、且つ、2番目のビットに対応する数値と反対であることを指す。
【0058】
第1の分類条件を満たす分類方式では、同じグループに含まれるstuck-at faultの数は0または1である。第2の分類条件を満たす分類方式では、同じグループに含まれるstuck-at faultの数は0であってよく、または1以上であってよい。
【0059】
任意で、実施形態として、ステップ104では、B個のグループのビットにおける各グループのビットに含まれるstuck-at faultについての情報と、書き込まれる必要があり、且つ、stuck-at faultが位置するビットに対応する数値とに従って、B個のグループのビットにおける各グループのビットに含まれるstuck-at faultのタイプが決定される。次いで、B個のグループのビットとB個のグループのビットにおける各グループのビットに含まれるstuck-at faultのタイプとに従って、書き込まれる必要があるn個の数値が、n個のビットに、対応して書き込まれる。
【0060】
具体的には、B個のグループのビットにおけるi番目のグループのビットに含まれるstuck-at faultのタイプがstuck-at wrong faultであるとき、書き込まれる必要があり、且つ、i番目のグループのビットに対応する数値は反転され、次いで、i番目のグループのビットに書き込まれてよく、ここで、iはB以下の正の整数である。
【0061】
具体的には、別の実施形態として、対応するフラグビットm
iがB個のグループのビットにおけるi番目のグループのビットに割り当てられてよく、ここで、m
iは、i番目のグループのビットに含まれるstuck-at faultのタイプを示すために使用され、さらに、フラグビットm
iに従って、書き込まれる必要があり、且つ、i番目のグループのビットに対応する数値は、i番目のグループのビットに、対応して書き込まれ、ここで、iはB以下の正の整数である。
【0062】
例えば、m
i=1は、B個のグループのビットにおけるi番目のグループのビットに含まれるstuck-at faultのタイプがstuck-at wrong faultであることを示すために使用されてよい。加えて、m
i=1であるとき、書き込まれる必要があり、且つ、i番目のグループのビットに対応する数値が対応して反転され、次いで、i番目のグループのビットに書き込まれる。
【0063】
例えば、B個の成分を有するベクトルmがB個のグループのビットに割り当てられてよく、ここで、ベクトルのi番目の成分は、B個のグループのビットにおけるi番目のグループのビットのフラグビットm
iに対応する。加えて、ベクトルmにおける各成分の初期値は0に設定されてよい。グループに含まれるstuck-at faultがstuck-at wrong faultであると決定されることができるとき、グループに対応するフラグビットは1に設定される。書き込み中、そのフラグビットが1であるグループに対して、書き込まれる必要があり、且つ、グループに対応する数値が対応して反転され、次いで、書き込まれる。
【0064】
具体的な書き込み方式は、本発明の本実施形態では限定されないことは留意されるべきである。任意で、書き込みは決定されたグループに従って実行されてよい。例えば、B個のグループのビットのn個の数値の書き込みが完了するまで、書き込まれる必要があり、且つ、決定されたグループにおける1番目のグループのビットに対応する数値が最初に書き込まれてよく、次いで、書き込まれる必要があり、且つ、決定されたグループにおける2番目のグループのビットに対応する数値が書き込まれる、等々である。あるいは、書き込みは、順に、または逆順に、n個のビットの位置番号に従って実行されてよい。例えば、n個の数値の書き込みが完了するまで、まず、n個のビットにおける1番目のビットが位置するグループが決定されてよく、1番目のビットが位置するグループに対応するフラグビットに従って、書き込みが実行され、次いで、n個のビットにおける2番目のビットが位置するグループが決定され、2番目のビットが位置するグループに対応するフラグビットに従って、書き込みが実行される、等々である。当業者は、別の方式において書き込みを完了することは、本発明の本実施形態の範囲に依然として包含されることを理解することができる。
【0065】
本発明の本実施形態では、決定されたグループの数は固定され、且つ、変更されず、すなわち、グループの数はn個のビットに対してBのままである。加えて、kの値は0からB-1のB個の整数であり、且つ、グループを決定するためにkを調整する最大回数はB回である。このように、分類効率が保証されることができる。加えて、この分類方式は、実施中、比較的単純である。
【0066】
本発明の本実施形態では、分類条件の決定は、各書き込み中に実行される必要がある。例えば、第1の書き込み中、決定されたグループに対応するkはk1と等しく、第2の書き込み中、分類条件の決定が実行され、且つ、初期グループに対応するkはk1と等しく、分類調整はk=k1に基づいて実行されてよく、且つ、第2の書き込み中に分類条件を満たす、対応するkが決定される。
【0067】
図2は、本発明の別の実施形態に係る記憶デバイスに対する書き込み方法のフローチャートである。
図2に示される書き込み方法は、以下を含む。
【0068】
201. 書き込まれる必要があるn個の数値を取得する。
【0069】
202. 書き込まれる必要があるn個の数値に対応するn個のビットと、n個のビットに含まれるstuck-at faultについての情報とを決定し、ここで、stuck-at faultについての情報は、n個のビットにおけるstuck-at faultの位置と、stuck-at faultが位置するビットの数値とを含む。
【0070】
203. 初期グループと、stuck-at faultが位置するグループとを決定する。
【0071】
具体的には、n個のビットは最初にB個のグループのビットに分類されてよく、最初のB-1個のグループのビットにおける各グループのビットはA個のビットを含み、B番目のグループのビットはn-A×(B-1)個のビットを含む。例えば、n個のビットにおいて、1番目のビットからA番目のビットは1番目のグループに分類され、A+1番目のビットから2A番目のビットは2番目のグループに分類される等々である。
【0072】
この分類方式は、k=0に対応する。kに関係する説明は、上述の説明と同じであり、繰り返しを防ぐために、詳細はここでは再び説明されない。
【0073】
初期グループに対応するkもまた、B-1の別の整数であってもよく、このことは本発明で限定されないことは留意されるべきである。
【0074】
204. グループが第1の分類条件を満たしているかどうか判定し、グループが第1の分類条件を満たしていないとき、ステップ205を実行し、且つ、グループが第1の分類条件を満たしているとき、ステップ206を実行する。
【0075】
ステップ202における決定することの間に、n個のビット内で発生したstuck-at faultの数がBよりも大きいことがわかった場合、第1の分類条件は、この方式で分類を実行することによって満たされることはできないことは留意されるべきである。あるいは、他方では、ステップ204における判定することの間に、第1の分類条件が満たされていないとわかったとき、ステップ205が実行される。kが0からB-1まで増えるとき、グループは、kがB個の値のいずれか1個であるとき、第1の分類条件を満たさない。
【0076】
205. kの値を1増やして分類を再び実行する。
【0077】
kの値が1増えるとき、分類方式が再び決定されるとともに、分類方式は上述の分類方式と同じであり、繰り返しを防ぐために、詳細はここでは再び説明されない。
【0078】
206. グループの各グループに含まれるstuck-at faultのタイプを決定する。
【0079】
具体的には、stuck-at fault のタイプを決定するために、stuck-at faultが位置するビットの数値と、書き込まれる必要があり、且つ、ビットに対応する数値が比較される。ビットの数値が、書き込まれる必要があり、且つ、ビットに対応する数値と同じであるとき、stuck-at faultのタイプはstuck-at right faultである。ビットの数値が、書き込まれる必要があり、且つ、ビットに対応する数値と反対であるとき、stuck-at faultのタイプはstuck-at wrong faultである。
【0080】
207. ステップ206で決定されたタイプに従って、1個のフラグビットを各グループに割り当てる。
【0081】
具体的には、stuck-at faultのタイプがstuck-at wrong faultである場合、フラグビット1が、stuck-at faultが位置するグループに割り当てられてよく、且つ、フラグビット0が、stuck-at faultを含まないグループおよびタイプがstuck-at right faultであるstuck-at faultが位置するグループに割り当てられる。
【0082】
208. 決定されたグループと、対応するフラグビットとに従って、n個の数値を書き込む。
【0083】
具体的には、そのフラグビットが1であるグループの数値は対応して反転され、次いで、書き込まれ、そのフラグビットが0であるグループは通常通り対応して書き込まれる。
【0084】
本発明の本実施形態では、同じグループ内の2個の隣接するビット間の間隔を調整することによって、n個のビットはB個のグループに分類されると決定され、且つ、書き込まれる必要がある数値は、B個のグループの各グループ内のstuck-at faultについての情報に従って、n個のビットに、対応して書き込まれることができ、その結果、インピーダンス記憶デバイス内のstuck-at faultによって引き起こされる書き込みエラーが有効に防止されることができる。
【0085】
図3は、本発明の別の実施形態に係る記憶デバイスに対する書き込み方法のフローチャートである。
図3に示される書き込み方法は以下を含む。
【0086】
301. 書き込まれる必要があるn個の数値を取得する。
【0087】
302. 書き込まれる必要があるn個の数値に対応するn個のビットと、n個のビットに含まれるstuck-at faultについての情報とを決定し、ここで、stuck-at faultについての情報は、n個のビットにおけるstuck-at faultの位置と、stuck-at faultが位置するビットの数値と、stuck-at faultのタイプとを含む。
【0088】
具体的には、stuck-at fault のタイプを決定するために、stuck-at faultが位置するビットの数値と、書き込まれる必要があり、且つ、ビットに対応する数値が比較される。ビットの数値が、書き込まれる必要があり、且つ、ビットに対応する数値と同じであるとき、stuck-at faultのタイプはstuck-at right faultである。ビットの数値が、書き込まれる必要があり、且つ、ビットに対応する数値と反対であるとき、stuck-at faultのタイプはstuck-at wrong faultである。
【0089】
303. 初期グループと、stuck-at faultが位置するグループとを決定する。
【0090】
具体的には、n個のビットは最初にB個のグループのビットに分類されてよく、最初のB-1個のグループのビットにおける各グループのビットはA個のビットを含み、B番目のグループのビットはn-A×(B-1)個のビットを含む。例えば、n個のビットにおいて、1番目のビットからA番目のビットは1番目のグループに分類され、A+1番目のビットから2A番目のビットは2番目のグループに分類される等々である。
【0091】
この分類方式は、k=0に対応する。kに関係する説明は、上述の説明と同じであり、繰り返しを防ぐために、詳細はここでは再び説明されない。
【0092】
初期グループに対応するkもまた、B-1の別の整数であってもよく、このことは本発明で限定されないことは留意されるべきである。
【0093】
304. グループが第2の分類条件を満たしているかどうか判定し、グループが第2の分類条件を満たしていないとき、ステップ305を実行し、且つ、グループが第2の分類条件を満たしているとき、ステップ306を実行する。
【0094】
305. kの値を1増やして分類を再び実行する。
【0095】
306. 決定されたグループの各グループに含まれるstuck-at faultのタイプに従って、1個のフラグビットを各グループに割り当てる。
【0096】
307. 決定されたグループと、対応するフラグビットとに従って、n個の数値を書き込む。
【0097】
本発明の本実施形態では、同じグループ内の2個の隣接するビット間の間隔を調整することによって、n個のビットはB個のグループに分類されると決定され、且つ、書き込まれる必要がある数値は、B個のグループの各グループ内のstuck-at faultについての情報に従って、n個のビットに、対応して書き込まれることができ、その結果、インピーダンス記憶デバイス内のstuck-at faultによって引き起こされる書き込みエラーが有効に防止されることができる。
【0098】
図4は、本発明の別の実施形態に係る記憶デバイスに対する書き込み方法の具体例の概略図である。
図4に示される方法では、本発明の本実施形態を説明するための具体例として、n=32が使用される。
【0099】
図4に示される各行は32個のビットにおける数値である。
図4における破線は、stuck-at faultが発生した位置を示す。
【0100】
n=32は、
図4における実施形態の説明のための例として使用されることは留意されるべきである。しかしながら、当業者は、nは別の正の整数であってよく、且つ、そのような変更は、本発明の本実施形態の範囲に依然として包含されることを理解することができる。
【0101】
データブロックがn=32個のビットを含むと想定される。32個のビットの数値、すなわち、書き込みが実行される前のn個の数値は、
図4における1番目の行内に示される。32個のビットが位置する位置は、1から32に番号付けされ、且つ、32個のビットが位置する位置番号および対応する数値は表1に示される。32個のビット内で、
stuck-at faultが発生した位置番号は、7、9、16、17および27である。
【0103】
本発明の本実施形態では、位置番号は、データブロックのn個のビットを番号付けすることによって生成されたシーケンス番号を参照することは留意されるべきである。
【0104】
書き込まれる必要があり、且つ、32個のビットに対応する数値は、すなわち、書き込まれる必要があるn個の数値は、
図4における2番目の行内に示される。書き込まれる必要があり、且つ、32個の位置番号に対応する32個の数値は、表2に示される。
【0108】
以上の最小素数として与えられ、すなわち、B=7であり、
【0111】
表1に示されるn=32個のビットは、表3に示されるように、B=7行A=5列の2次元配列として表される。説明を容易にするために、表3に示される2次元配列は、表1に示される数値に対応する位置番号を含む。加えて、この2次元配列の1個の行は1個のグループを表し、すなわち、同じグループに属する任意の2個のビットは同じ行内にある。説明を容易にするために、位置番号33、34および35が、本発明の本実施形態において、表3内で仮定として補足される。対応して、その位置番号が33、34および35であるビットは空であると仮定される。
【0113】
表3では、2次元配列において、位置番号xの行番号および列番号はaおよびbであると想定される場合、表3における位置番号の分布はx=(b-1)×A+aを満たす。
【0114】
表3は例示的な説明でしかなく、且つ、7行5列の2次元配列として32個の位置番号を表す唯一の表現ではないことは留意されるべきである。例えば、32個の位置番号もまた、垂直に配置されてもよく、すなわち、x=(b-1)×B+aが満たされ、このことは本発明で限定されない。
【0115】
32個のビットはB=7個のグループに分類され、且つ、表3に示される2次元配列の各行は、対応して1個のグループとみなされ、すなわち、2次元配列の行数は、グループの数とみなされる。1番目のグループに対応する位置番号は1、2、3、4および5であり、2番目のグループに対応する位置番号は6、7、8、9および10であり、3番目のグループに対応する位置番号は11、12、13、14および15であり、4番目のグループに対応する位置番号は16、17、18、19および20であり、5番目のグループに対応する位置番号は21、22、23、24および25であり、6番目のグループに対応する位置番号は26、27、28、29および30であり、7番目のグループに対応する位置番号は31および32である。
【0116】
n=32個のビットは7個のグループに分類され、且つ、各グループに含まれるビットの数はA=5を超えないことは留意されるべきである。3個の仮定された位置番号33、34および35が含まれる場合、各グループは前述の分類方式において5個の位置番号を含むとみなされてよい。
【0117】
このように、32個の位置番号は7個のグループに分類される。第1の見地から、この分類方式は以下のように理解されてよい。2次元配列における、7個のグループにおけるi番目のグループのj番目の位置番号の位置(q
i,j, p
i,j)は
p
i,j+1=p
i,j+1、q
i,j+1=(q
i,j+k)modB (1)
を満たし、ここで、k=0且つB=7であり、q
i,jは2次元配列における、7個のグループにおけるi番目のグループのj番目の位置番号の行番号であり、p
i,jは2次元配列における、7個のグループにおけるi番目のグループのj番目の位置番号の列番号である。
【0118】
本発明の本実施形態では、2次元配列における位置が、2次元配列における行および列の位置情報を参照することは留意されるべきである。
【0119】
例えば、前述のグループにおける4番目のグループが例として使用され、すなわち、i=4であり、4番目のグループにおける位置番号と、2次元配列における、4番目のグループにおける位置番号の位置(q
i,j, p
i,j)との間の対応が表4に示される。(q
i,j, p
i,j)、iおよびj間の対応は前述の式(1)を満たすことがわかり得る。
【0121】
第2の見地から、この分類方式は、以下のようであることがまた理解されてもよい。各グループにおける2個の隣接する位置番号間の差は1である。すなわち、各グループにおける2個の隣接する位置番号間の間隔は1である。加えて、この間隔は第1の見地からk×A+1に対応してよい。
【0122】
第3の見地から、この分類方式は、以下のようであることがまた理解されてもよい。n個のビットが2次元デカルト座標系におけるn個のデータポイントに対応するとき、同じグループに属する任意の2個のビットに対応する2個のデータポイントは、2次元デカルト座標系において同じ垂直座標を有する。32個のビットに対応する32個のデータポイントは2次元デカルト座標系における7個の直線内に位置し、且つ、各直線におけるデータポイントは同じグループ内に位置する。加えて、これらの7個の直線の傾きは0である。加えて、直線の傾きは第1の見地からkに対応してよい。
【0123】
前述の第1の見地から第3の見地は単に、現在の分類の異なる数学的な理解であることは留意されるべきである。当業者は、別の数学的手法または方法を使用することによって、この分類方式に対して実行される分析は本発明の本実施形態の範囲に依然として包含されることを理解することができる。
【0124】
表3に示される分類方式に対して、まず、分類が分類条件を満たしているかどうか判定することが必要とされる。
【0125】
任意で、実施形態として、分類条件は、各グループに含まれるstuck-at faultの数は1を超えないという、第1の分類条件であってよい。表1に示される32個のビットにおいて、stuck-at faultが発生した位置番号は7、9、16、17および27である。表3を参照することによって、stuck-at faultが発生した位置番号7および9は2番目のグループ内にあり、且つ、stuck-at faultが発生した位置番号16および17は4番目のグループ内にあることがわかり得る。すなわち、前述のグループでは、2番目のグループに含まれるstuck-at faultの数と4番目のグループに含まれるstuck-at faultの数のいずれも1を超え、その結果、第1の分類条件は満たされない。この場合、前述の分類方式は、32個のビットを再分類するために、調整される必要がある。
【0126】
前述の第1の見地に対応して、再分類方式はkを1増やすことであってよい。すなわち、再分類の前はk=0であり、且つ、再分類中はk=1である。このように、新しい分類方式は以下のようである。1番目のグループに対応する位置番号は1、7、13、19および25であり、2番目のグループに対応する位置番号は6、12、18、24および30であり、3番目のグループに対応する位置番号は11、17、23、29および○であり、4番目のグループに対応する位置番号は16、22、28、□および5であり、5番目のグループに対応する位置番号は21、27、◎、4および10であり、6番目のグループに対応する位置番号は26、32、3、9および15であり、7番目のグループに対応する位置番号は31、2、8、14および20であり、ここで、◎、□および○は、位置が空であるとともに表3における仮定された位置番号33、34および35を連続的に表すことを示す。
【0127】
表3を参照すると、このような新しい分類方式では、同じグループに属する任意の2個のビットは異なる行および列内にあることがわかり得る。加えて、前述の第1の見地に対応して、この新しい分類方式では、2次元配列における、7個のグループにおけるi番目のグループのj番目の位置番号の位置(q
i,j, p
i,j)は、前述の式(1)を依然として満たし、k=1である。繰り返しを防ぐために、詳細はここでは再び説明されない。
【0128】
前述の第2の見地に対応して、この新しい分類方式は以下のようであることがまた理解されてもよい。各グループにおける2個の隣接する位置番号間の差は6である。すなわち、各グループにおける2個の隣接する位置番号間の間隔は6である。加えて、この間隔は第1の見地からk×A+1に対応してよい。分析は、例として、新しいグループにおける4番目のグループを使用することによって実行される。4番目のグループにおける最初の3個の位置番号16、22および28のうちの2個の間の間隔は6であり、4番目の位置番号□は仮定された位置番号34を表し、34と28との間の間隔は6であり、5番目の位置番号5は35の次の位置番号は1であるとして理解されてよく、すなわち、1から35の位置番号はヘッドトゥテールでリンクされたリング状に配置されると仮定されてよく、その結果、34から6の間隔を有する次の位置番号は5である。加えて、各グループに含まれる位置番号の数は5であり、5個の位置番号は仮定された位置番号を含み、且つ、4番目のグループにおける5番目の位置番号は位置番号5として決定されている。従って、この分類方式における4番目のグループが決定されることができる。前述の第2の見地に対応するいくつかの他のグループにおける位置番号もまた、同様に理解されてもよく、繰り返しを防ぐために、詳細はここでは再び説明されない。
【0129】
前述の第3の見地に対応して、この新しい分類方式は以下のようであることがまた理解されてもよい。32個のビットが2次元デカルト座標系における32個のデータポイントに対応するとき、同じグループに属する任意の2個のビットに対応する2個のデータポイントは、2次元デカルト座標系において異なる水平座標および垂直座標を有する。加えて、同じ傾きを有する複数の直線が作られてよく、同じ直線における全てのデータポイントは同じグループに属する。加えて、複数の直線の傾きは第1の見地からk=1に対応してよい。
【0130】
さらに、新しいグループが第1の分類条件を満たしているかどうか判定することが必要とされる。表1に示される32個のビットにおいて、stuck-at faultが発生した位置番号は7、9、16、17および27である。新しい分類方式を参照すると、stuck-at faultが発生した位置番号は、それぞれ新しいグループにおける1番目のグループ、6番目のグループ、4番目のグループ、3番目のグループおよび5番目のグループ内に位置する7、9、16、17および27であることがわかり得る。すなわち、新しい分類方式は、各グループに含まれるstuck-at faultの数は1を超えないという、第1の分類条件を満たす。従って、分類条件を満たしている7個のグループが新しいグループであると決定されてよい。
【0131】
新しいグループが第1の分類条件を依然として満たしていないと想定される場合、別の新しい分類方式を得るために、kは引き続き1増やされてよく、且つ、別の新しい分類方式が第1の分類条件を満たしているかどうかさらに判定されることは留意されるべきである。
【0132】
任意で、別の実施形態として、分類条件は、各グループに含まれるstuck-at faultのタイプが同じであり、ここで、stuck-at faultのタイプはstuck-at right faultまたはstuck-at wrong faultを含み、stuck-at right faultは、stuck-at faultが位置する1番目のビットの数値が、書き込まれる必要があり、且つ、1番目のビットに対応する数値と等しいことを指し、stuck-at wrong faultは、stuck-at faultが位置する2番目のビットの数値が、書き込まれる必要があり、且つ、2番目のビットに対応する数値と反対であることを指す、第2の分類条件であってよい。
【0133】
表1に示される32個のビットにおける、stuck-at faultが発生した位置番号は、7、9、16、17および27である。表1および表2を参照すると、表1における、その位置番号が7であるビットの数値は、表2における、この位置に書き込まれる必要がある数値“0”と等しい“0”であることがわかり得、従って、位置番号7のstuck-at faultのタイプはstuck-at right faultである。同様に、位置番号9のstuck-at faultのタイプはstuck-at right faultであり、位置番号16のstuck-at faultのタイプはstuck-at wrong faultであり、位置番号17のstuck-at faultのタイプはstuck-at right faultであり、位置番号27のstuck-at faultのタイプはstuck-at wrong faultであることがわかり得る。
【0134】
前述の分類方式について、位置番号7および9は2番目のグループに属するが、位置番号7および9の両方のstuck-at faultのタイプはstuck-at right faultであり、このことは、第2の分類条件を満たす。位置番号16および17は4番目のグループに属するが、位置番号
16および
17のstuck-at faultのタイプは異なり、このことは、第2の分類条件を満たさない。従って、この場合、前述の分類方式はまた、32個のビットを再分類するために、調整される必要がある。
【0135】
再分類を決定するための方法は、第1の分類条件に従って決定が行われた後、再分類を実行するための前述の方法と同様であり、繰り返しを防ぐために、詳細はここでは再び説明されない。前述の分析から、新しい分類方式は以下のようであることがわかり得る。1番目のグループに対応する位置番号は1、7、13、19および25であり、2番目のグループに対応する位置番号は6、12、18、24および30であり、3番目のグループに対応する位置番号は11、17、23、29および○であり、4番目のグループに対応する位置番号は16、22、28、□および5であり、5番目のグループに対応する位置番号は21、27、◎、4および10であり、6番目のグループに対応する位置番号は26、32、3、9および15であり、7番目のグループに対応する位置番号は31、2、8、14および20であり、ここで、◎、□および○は、位置が空であるとともに表3における仮定された位置番号33、34および35を連続的に表すことを示す。
【0136】
さらに、新しいグループが第2の分類条件を満たしているかどうか判定することを必要とする。表1に示される32個のビットにおいて、stuck-at faultが発生した位置番号は7、9、16、17および27である。新しい分類方式を参照すると、stuck-at faultが発生した位置番号は、それぞれ新しいグループにおける1番目のグループ、6番目のグループ、4番目のグループ、3番目のグループおよび5番目のグループ内に位置する7、9、16、17および27であることがわかり得る。すなわち、新しい分類方式は、各グループに含まれるstuck-at faultのタイプは同じであるという、第2の分類条件を満たす。従って、分類条件を満たしている7個のグループが新しいグループであると決定されてよい。
【0137】
新しいグループが第2の分類条件を依然として満たしていないと想定される場合、別の新しい分類方式を得るために、kは引き続き1増やされてよく、且つ、別の新しい分類方式が第2の分類条件を満たしているかどうかさらに判定されることは留意されるべきである。
【0138】
本発明の本実施形態では、第1の分類条件に従って決定される分類方式は、第2の分類条件に従って決定される分類方式とは無関係であることは留意されるべきである。2個の分類条件に従って決定される分類方式は、同じであってよく、または異なってもよい。
【0139】
なお、さらに、新しいグループにおける各グループに含まれるstuck-at faultについての情報に従って、書き込まれる必要がある、表2における32個の数値が、表1における32個のビットに、対応して書き込まれる。ここで、stuck-at faultについての情報は、stuck-at faultの位置番号とstuck-at faultのタイプとを含む。
【0140】
任意で、実施形態として、第1の分類条件に従って、新しいグループが決定された後、まず、各グループに含まれるstuck-at faultのタイプが決定される。stuck-at faultが発生した位置番号は、それぞれ新しいグループにおける1番目のグループ、6番目のグループ、4番目のグループ、3番目のグループおよび5番目のグループ内に位置する7、9、16、17および27である。表1および表2を参照して分析を行うことによって、位置番号7、9および17のstuck-at faultのタイプはstuck-at right faultであり、且つ、位置番号16および27のstuck-at faultのタイプはstuck-at wrong faultであることがわかり得る。書き込まれる必要があり、且つ、4番目のグループおよび5番目のグループに対応する数値は、反転され、次いで、書き込まれ、ここで、4番目のグループおよび5番目のグループはstuck-at wrong faultが位置するグループであり、書き込まれる必要があり、且つ、他のグループに対応する数値は、通常通り書き込まれる。書き込みの後の32個のビットの数値、すなわち、書き込まれたn個の数値は、
図4における、n個の数値が書き込まれた後の3番目の行に示される。このように、書き込みの後の32個の位置番号および対応する書き込まれた数値は、表5に示されることができる。
【0142】
あるいは、フラグビットm
iもまた、新しいグループにおける各グループに対して指定されてもよく、ここで、iは7個のグループにおけるi番目のグループを示し、且つ、iは7以下の正の整数である。対応して、7個のグループは7個のフラグビットを有し、ここで、フラグビットは、グループに含まれるstuck-at faultのタイプを示すために使用される。例えば、0はstuck-at right faultを示すために使用されてよく、且つ、1はstuck-at wrong faultを示すために使用されてよい。このように、前述の新しいグループに対応するフラグビットは連続的に0001100である。さらに、書き込みは、グループに対応するフラグビットに従って実行されてよい。具体的には、グループのフラグビットが1であるとき、書き込まれる必要があり、且つ、グループに対応する数値は反転され、次いで、書き込まれる。グループのフラグビットが0であるとき、書き込まれる必要があり、且つ、グループに対応する数値は通常通り書き込まれる。
【0143】
フラグビットの形態は、本発明では限定されないことは留意されるべきである。例えば、フラグビットはB個の成分を有するベクトルmであってよく、ここで、ベクトルのi番目の成分は、B個のグループのビットにおけるi番目のグループのビットのフラグビットm
iに対応する。加えて、ベクトルの初期値は0に設定されてよく、且つ、iはB以下の正の整数である。
【0144】
具体的な書き込み方式は、本発明の本実施形態で限定されないことは留意されるべきである。任意で、書き込みは、決定されたグループに従って実行されてよい。例えば、1番目のグループの位置番号は1、7、13、19および25であり、且つ、1番目のグループに含まれるstuck-at faultのタイプはstuck-at right faultであるか、または、1番目のグループのフラグビットは0であり、位置番号1、7、13、19および25に対応する数値は通常通り書き込まれる。次いで、書き込みは2番目のグループから7番目のグループまで順に実施される。任意で、書き込みはまた、位置番号の順に実行されてもよい。例えば、位置番号1について、まず、位置番号1が属するグループが1番目のグループであり、且つ、1番目のグループに含まれるstuck-at faultのタイプはstuck-at right faultであるか、または、1番目のグループのフラグビットは0であると決定され、位置番号1に対応する数値は通常通り書き込まれる。次いで、位置番号2について、まず、位置番号2が属するグループが7番目のグループであり、且つ、7番目のグループはstuck-at faultを含まないか、または、
7番目のグループのフラグビットは0であると決定され、位置番号2に対応する数値は通常通り書き込まれる。その後、書き込みは、位置番号3から位置番号32まで順に実施される。あるいは、書き込みはまた、位置番号の逆順で実行されてもよい。書き込みはまた、別の方式で実施されてもよい。当業者は、別の方式において書き込みを実施することは、本発明の本実施形態の範囲に依然として包含されることを理解することができる。
【0145】
任意で、別の実施形態として、第2の分類条件に従って、新しいグループが決定された後、新しいグループにおける4番目のグループおよび5番目のグループに含まれるstuck-at faultのタイプはstuck-at wrong faultであり、且つ、他のグループに含まれるstuck-at faultのタイプはstuck-at right faultであるか、または、他のグループはstuck-at faultを含まないことがわかり得る。書き込まれる必要があり、且つ、stuck-at wrong faultが位置するグループに対応する数値は、反転され、次いで、書き込まれ、書き込まれる必要があり、且つ、他のグループに対応する数値は、通常通り書き込まれる。このように、書き込みの後の32個のビットの数値は、表5に示されることができる。
【0146】
同様に、各グループに対応するフラグビットもまた導入されてもよく、さらに、フラグビットに従って、書き込みが実行される。フラグビットの具体的な説明については、第1の分類条件についての前述の説明を参照されたい。繰り返しを防ぐために、詳細はここでは再び説明されない。
【0147】
図5は、本発明の実施形態に係る記憶デバイスに対する書き込み装置のブロック図である。
図5に示される書き込み装置500は、取得ユニット501、第1決定ユニット502、分類ユニット503および書き込みユニット504を含む。
【0148】
取得ユニット501は、書き込まれる必要があるn個の数値を取得するように構成される。
【0149】
第1決定ユニット502は、書き込まれる必要があるn個の数値に対応するn個のビットと、n個のビットに含まれるstuck-at faultについての情報とを決定するように構成され、ここで、stuck-at faultについての情報は、n個のビットにおけるstuck-at faultの位置と、stuck-at faultが位置するビットの数値とを含む。
【0150】
分類ユニット503は、B個のグループのビットが分類条件を満たし、且つ、n個のビットがB行A列の2次元配列を表すとき、n個のビットにおける、同じグループに属する任意の2個のビットは異なる行および列内にあるか、または、n個のビットにおける、同じグループに属する任意の2個のビットは同じ行内にあるように、n個のビットをB個のグループのビットに分類するように構成され、ここで、分類条件は、B個のグループのビットにおける各グループのビットに含まれるstuck-at faultを制限するために使用される。
【0151】
書き込みユニット504は、n個のビットに、B個のグループのビットにおける各グループのビットに含まれるstuck-at faultについての情報と、書き込まれる必要があり、且つ、stuck-at faultが位置するビットに対応する数値とに従って、書き込まれる必要があるn個の数値を対応して書き込むように構成され、
ここで、n、AおよびBは正の整数であり、且つ、n≦A×Bである。
【0152】
本発明の本実施形態では、同じグループ内の2個の隣接するビット間の間隔を調整することによって、n個のビットはB個のグループに分類されると決定され、且つ、書き込まれる必要がある数値は、B個のグループの各グループ内のstuck-at faultについての情報に従って、n個のビットに、対応して書き込まれることができ、その結果、インピーダンス記憶デバイス内のstuck-at faultによって引き起こされる書き込みエラーが有効に防止されることができる。
【0153】
任意で、実施形態として、分類ユニット502は、具体的には、n個のビットがB行A列の2次元配列を表すとき、B行A列の2次元配列における、B個のグループのビットにおけるi番目のグループのビット内のj番目のビットの位置が、
p
i,j+1=p
i,j+1およびq
i,j+1=(q
i,j+k)modB
を満たすように、n個のビットをB個のグループのビットに分類し、B個のグループのビットが分類条件を満たすように、kの値を調整するように構成され、ここで、
p
i,jは、2次元配列における、B個のグループのビットにおけるi番目のグループのビット内のj番目のビットの列番号であり、q
i,jは、2次元配列における、B個のグループのビットにおけるi番目のグループのビット内のj番目のビットの行番号であり、iおよびq
i,jは、B以下の正の整数であり、jおよびp
i,jは、A以下の正の整数であり、kはBよりも小さい非負整数であり、kの値を調整することは、kの値を1増やすことを含み、ここで、Bは
【0158】
任意で、実施形態として、分類条件は、B個のグループのビットにおける各グループのビットに含まれるstuck-at faultの数が1を超えないことである。
【0159】
任意で、別の実施形態として、分類条件は、B個のグループのビットにおける各グループのビットに含まれるstuck-at faultのタイプが同じであり、ここで、stuck-at faultのタイプはstuck-at right fault
とstuck-at wrong fault
とを含み、stuck-at right faultは、stuck-at faultが位置する1番目のビットの数値が、書き込まれる必要があり、且つ、1番目のビットに対応する数値と等しいことを指し、stuck-at wrong faultは、stuck-at faultが位置する2番目のビットの数値が、書き込まれる必要があり、且つ、2番目のビットに対応する数値と反対であることを指す、ことである。
【0160】
任意で、実施形態として、書き込みユニット504は第2決定ユニット505と第1書き込みユニット506とを含む。第2決定ユニット505は、B個のグループのビットにおける各グループのビットに含まれるstuck-at faultについての情報と、書き込まれる必要があり、且つ、stuck-at faultが位置するビットに対応する数値とに従って、B個のグループのビットにおける各グループのビットに含まれるstuck-at faultのタイプを決定するように構成される。第1書き込みユニット506は、n個のビットに、B個のグループのビットとB個のグループのビットにおける各グループのビットに含まれるstuck-at faultのタイプとに従って、書き込まれる必要があるn個の数値を対応して書き込むように構成される。
【0161】
任意で、別の実施形態として、第1書き込みユニット506は、具体的には、B個のグループのビットにおけるi番目のグループのビットに含まれるstuck-at faultのタイプがstuck-at wrong faultであるとき、書き込まれる必要があり、且つ、i番目のグループのビットに対応する数値を、対応して反転し、反転の後に得られた数値をi番目のグループのビットに書き込むように構成され、ここで、iはB以下の正の整数である。
【0162】
任意で、別の実施形態として、書き込みユニット504は割り当てユニット507をさらに含み、ここで、割り当てユニット507は、フラグビットm
iをB個のグループのビットにおけるi番目のグループのビットに割り当てるように構成され、ここで、m
iは、B個のグループのビットにおけるi番目のグループのビットに含まれるstuck-at faultのタイプを示すために使用される。第1書き込みユニット506は、具体的には、i番目のグループのビットに、フラグビットm
iに従って、書き込まれる必要があり、且つ、i番目のグループのビットに対応する数値を対応して書き込むように構成され、ここで、iはB以下の正の整数である。
【0163】
具体的には、フラグビットが、B個のグループにおけるi番目のグループに含まれるstuck-at faultのタイプがstuck-at wrong faultであることを示すとき、書き込まれる必要があり、且つ、i番目のグループに対応する数値は反転され、次いで、書き込まれる。
【0164】
あるいは、具体的には、フラグビットm
i=1のとき、書き込まれる必要があり、且つ、i番目のグループのビットに対応する数値は反転され、次いで、i番目のグループのビットに書き込まれ、ここで、フラグビットm
i=1は、B個のグループのビットにおけるi番目のグループのビットに含まれるstuck-at faultのタイプがstuck-at wrong faultであることを示す。
【0165】
書き込み装置500は、
図2から
図4の実施形態における書き込み装置によって実施される全てのプロセスを実施することができる。繰り返しを防ぐために、詳細はここでは再び説明されない。
【0166】
図6は、本発明の実施形態に係る記憶デバイスに対する書き込み装置のブロック図である。
図6に示される書き込み装置600は、プロセッサ601、メモリ602および送受信回路603を含む。
【0167】
送受信回路603は、書き込まれる必要があるn個の数値を取得するように構成される。
【0168】
プロセッサ601は、書き込まれる必要があるn個の数値に対応するn個のビットと、n個のビットに含まれるstuck-at faultについての情報とを決定するように構成され、ここで、stuck-at faultについての情報は、n個のビットにおけるstuck-at faultの位置と、stuck-at faultが位置するビットの数値とを含み、プロセッサ601は、B個のグループのビットが分類条件を満たし、且つ、n個のビットがB行A列の2次元配列を表すとき、n個のビットにおける、同じグループに属する任意の2個のビットは異なる行および列内にあるか、または、n個のビットにおける、同じグループに属する任意の2個のビットは同じ行内にあるように、n個のビットをB個のグループのビットに分類するように構成され、ここで、分類条件は、B個のグループのビットにおける各グループのビットに含まれるstuck-at faultを制限するために使用され、プロセッサ601は、n個のビットに、B個のグループのビットにおける各グループのビットに含まれるstuck-at faultについての情報と、書き込まれる必要があり、且つ、stuck-at faultが位置するビットに対応する数値とに従って、書き込まれる必要があるn個の数値を対応して書き込むように構成され、ここで、n、AおよびBは正の整数であり、且つ、n≦A×Bである。
【0169】
本発明の本実施形態では、同じグループ内の2個の隣接するビット間の間隔を調整することによって、n個のビットはB個のグループに分類されると決定され、且つ、書き込まれる必要がある数値は、B個のグループの各グループ内のstuck-at faultについての情報に従って、n個のビットに、対応して書き込まれることができ、その結果、インピーダンス記憶デバイス内のstuck-at faultによって引き起こされる書き込みエラーが有効に防止されることができる。
【0170】
書き込み装置600の全ての構成要素は、バスシステム604を使用することによって共に結合され、ここで、バスシステム604は、データバスに加えて、電源バス、制御バス、状態信号バスを含んでよい。しかしながら、説明の明確性のために、様々なバスは、
図6におけるバスシステム604として示される。
【0171】
本発明の前述の実施形態で開示された方法は、プロセッサ601に適用されるか、またはプロセッサ601によって実施されてよい。プロセッサ601は、集積回路チップであってよく、且つ、信号処理能力を有する。実施プロセスでは、前述の方法におけるステップは、プロセッサ601内のハードウェアの集積論理回路によって実施されてよく、または、ソフトウェアの形態における命令によって実施されてよい。プロセッサ601は、汎用プロセッサ、デジタル信号プロセッサ(Digital Signal Processor, DSP)、特定用途向け集積回路(Application Specific Integrated Circuit, ASIC)、フィールド・プログラマブル・ゲート・アレイ(Field Programmable Gate Array, FPGA)または別のプログラマブル論理デバイス、ディスクリートゲートまたはトランジスタ論理デバイス、またはディスクリート・ハードウェア・コンポーネントであってよく、且つ、本発明の実施形態で開示される方法、ステップおよび論理ブロックダイアグラムを実施または実行することができる。汎用プロセッサはマイクロプロセッサであってよく、または、プロセッサは任意の従来のプロセッサ等であってもまたよい。本発明の実施形態を参照して開示される方法のステップは、ハードウェア復号プロセッサによって直接実行および達成されてよく、または、復号プロセッサにおけるハードウェアおよびソフトウェアモジュールの組み合わせを使用することによって実行および達成されてよい。ソフトウェアモジュールは、ランダムアクセスメモリ(Random Access Memory, RAM)、フラッシュメモリ、読み出し専用メモリ(Read-Only Memory, ROM)、プログラマブル読み出し専用メモリ、電気的に消去可能なプログラマブルメモリまたはレジスタ等の、当該技術における成熟した記憶媒体内に位置してよい。記憶媒体は、メモリ602内に位置する。プロセッサ601は、メモリ602から情報を読み出し、且つ、ハードウェアと組み合わせて、前述の方法のステップを実施する。
【0172】
任意で、実施形態として、プロセッサ601は、具体的には、n個のビットがB行A列の2次元配列を表すとき、B行A列の2次元配列における、B個のグループのビットにおけるi番目のグループのビット内のj番目のビットの位置が、
p
i,j+1=p
i,j+1およびq
i,j+1=(q
i,j+k)modB
を満たすように、n個のビットをB個のグループのビットに分類し、B個のグループのビットが分類条件を満たすように、kの値を調整するように構成され、ここで、
p
i,jは、2次元配列における、B個のグループのビットにおけるi番目のグループのビット内のj番目のビットの列番号であり、q
i,jは、2次元配列における、B個のグループのビットにおけるi番目のグループのビット内のj番目のビットの行番号であり、iおよびq
i,jは、B以下の正の整数であり、jおよびp
i,jは、A以下の正の整数であり、kはBよりも小さい非負整数であり、kの値を調整することは、kの値を1増やすことを含み、ここで、Bは
【0177】
任意で、実施形態として、分類条件は、B個のグループのビットにおける各グループのビットに含まれるstuck-at faultの数が1を超えないことである。
【0178】
任意で、別の実施形態として、分類条件は、B個のグループのビットにおける各グループのビットに含まれるstuck-at faultのタイプが同じであり、ここで、stuck-at faultのタイプはstuck-at right faultとstuck-at wrong faultとを含み、stuck-at right faultは、stuck-at faultが位置する1番目のビットの数値が、書き込まれる必要があり、且つ、1番目のビットに対応する数値と等しいことを指し、stuck-at wrong faultは、stuck-at faultが位置する2番目のビットの数値が、書き込まれる必要があり、且つ、2番目のビットに対応する数値と反対であることを指す、ことである。
【0179】
任意で、実施形態として、プロセッサ601は、具体的には、B個のグループのビットにおける各グループのビットに含まれるstuck-at faultについての情報と、書き込まれる必要があり、且つ、stuck-at faultが位置するビットに対応する数値とに従って、B個のグループのビットにおける各グループのビットに含まれるstuck-at faultのタイプを決定し、
n個のビットに、B個のグループのビットとB個のグループのビットにおける各グループのビットに含まれるstuck-at faultのタイプとに従って、書き込まれる必要があるn個の数値を対応して書き込むように構成される。
【0180】
任意で、別の実施形態として、プロセッサ601は、B個のグループのビットにおけるi番目のグループのビットに含まれるstuck-at faultのタイプがstuck-at wrong faultであるとき、書き込まれる必要があり、且つ、i番目のグループのビットに対応する数値を、対応して反転し、反転の後に得られた数値をi番目のグループのビットに書き込むように構成され、ここで、iはB以下の正の整数である。
【0181】
任意で、別の実施形態として、プロセッサ601は、具体的には、フラグビットm
iをB個のグループのビットにおけるi番目のグループのビットに割り当てるように構成され、ここで、m
iは、B個のグループのビットにおけるi番目のグループのビットに含まれるstuck-at faultのタイプを示すために使用され、且つ、プロセッサ601は、i番目のグループのビットに、フラグビットm
iに従って、書き込まれる必要があり、且つ、i番目のグループのビットに対応する数値を対応して書き込むように構成され、ここで、iはB以下の正の整数である。
【0182】
具体的には、フラグビットが、B個のグループにおけるi番目のグループに含まれるstuck-at faultのタイプがstuck-at wrong faultであることを示すとき、書き込まれる必要があり、且つ、i番目のグループに対応する数値は反転され、次いで、書き込まれる。
【0183】
あるいは、具体的には、フラグビットm
i=1のとき、書き込まれる必要があり、且つ、i番目のグループのビットに対応する数値は反転され、次いで、i番目のグループのビットに書き込まれ、ここで、フラグビットm
i=1は、B個のグループのビットにおけるi番目のグループのビットに含まれるstuck-at faultのタイプがstuck-at wrong faultであることを示す。
【0184】
書き込み装置600は、
図2から
図4の実施形態における書き込み装置によって実施される全てのプロセスを実施することができる。繰り返しを防ぐために、詳細はここでは再び説明されない。
【0185】
当業者は、本明細書で開示される実施形態で説明される例と組み合わせて、ユニットおよびアルゴリズムステップは、電子ハードウェア、またはコンピュータソフトウェアおよび電子ハードウェアの組み合わせによって実施されてよいことを理解することができる。機能がハードウェアによって実行されるかソフトウェアによって実行されるかは、技術的解決手段の特定の用途および設計制約条件に依存する。当業者は、各特定の用途に対して、説明される機能を実施するために、異なる方法を使用してよいが、実施が本発明の範囲を越えるとみなされるべきではない。
【0186】
便利且つ簡潔な説明のために、前述のシステム、装置およびユニットの詳細な動作プロセスについて、前述の方法の実施形態における対応するプロセスに対して参照が行われてよいことは、当業者によって明確に理解されることができ、詳細はここでは再び説明されない。
【0187】
本願で提供されるいくつかの実施形態では、開示されたシステム、装置および方法は他の方式で実施されてよいことは理解されるべきである。例えば、説明された装置の実施形態は単に例示的なものである。例えば、ユニットの分割は単に、論理的な機能の分割であるとともに、実際の実施では他の分割であってよい。例えば、複数のユニットまたは構成要素は、別のシステムに結合または統合されてよく、または、いくつかの特徴は無視されるか、または実行されなくてもよい。加えて、表示されたまたは議論された相互結合または直接結合または通信接続は、いくつかのインタフェースを介して実施されてよい。装置またはユニット間の間接結合または通信接続は、電子的、機械的または他の形態で実施されてよい。
【0188】
個別の部分として説明されたユニットは、物理的に分離していてもしていなくてもよく、ユニットとして表示された部分は、物理ユニットであってもなくてもよく、1つの位置に配置されてもよく、または複数のネットワークユニット上に分配されてもよい。ユニットのいくつかまたは全ては、実施形態の解決手段の目的を達成するための実際のニーズに従って選択されてよい。
【0189】
加えて、本発明の実施形態における機能ユニットは1個の処理ユニットに統合されてよく、またはユニットの各々は物理的に孤立して存在してよく、または2つ以上のユニットは1個のユニットに統合される。
【0190】
機能がソフトウェア機能ユニットの形態で実施されるとき、および独立した製品として販売または使用されるとき、機能はコンピュータ可読記憶媒体内に格納されてよい。そのような理解に基づいて、本発明の技術的解決手段は本質的に、または従来技術に貢献する部分は、または技術的解決手段のいくつかは、ソフトウェア製品の形態で実施されてよい。ソフトウェア製品は記憶媒体内に格納され、且つ、本発明の実施形態で説明される方法のステップの全てまたはいくつかを実行するように、コンピュータデバイス(パーソナルコンピュータ、サーバまたはネットワークデバイスであってよい)に命令するためのいくつかの命令を含む。前述の記憶媒体は、USBフラッシュドライブ、リムーバブルハードディスク、ROM、RAM、磁気ディスクまたは光ディスク等のプログラムコードを格納することができる任意の媒体を含む。
【0191】
前述の説明は単に本発明の具体的な実施方式であるが、本発明の保護範囲を限定するものではない。本発明で開示される技術的範囲内で当業者によって容易に理解されるいかなる変更または置換も、本発明の保護範囲に包含されるべきである。従って、本発明の保護範囲は、請求項の保護範囲に従うべきである。