存储器系统及其操作方法与流程

文档序号:27093797发布日期:2021-10-27 16:18阅读:256来源:国知局
存储器系统及其操作方法与流程

1.本发明的实施例涉及存储器系统及其操作方法。


背景技术:

2.存储器被广泛用于将信息(数据和程序二者)存储于数字系统。在系统操作过程中,出于各种原因,存储于存储器中的信息(位)可能被损坏。导致损坏的一个可能的原因是由于存储器内部和存储器外部的环境事件。一个此类外部事件为粒子轰击。除了环境事件,还有其他原因导致位的损坏(故障)。当位被损坏时,存储的信息丢失导致系统故障或数据丢失。因此,保护存储器内容的完整性很重要。已使用各种手段来保护存储器内容免遭损坏。错误校正码(ecc)具有以下优点:能够检测码字(数据位和校验位二者)中的错误并且还能够校正错误。


技术实现要素:

3.根据本发明实施例的一个方面,提供了一种操作耦合到存储器器件的存储器控制器的方法,包括:基于第一错误检测方案生成与要写入存储器器件的数据位对应的第一多个第一级校验位;以及基于第一错误校正方案生成与数据位和第一多个第一级校验位两者对应的第二多个第二级校验位。
4.根据本发明实施例的另一个方面,提供了一种存储器系统,包括:存储器器件,配置为存储要写入存储器器件的数据位;以及存储器控制器,存储器控制器包括:第一级错误校正码电路,耦合到存储器器件,其中,第一级错误校正码电路具有第一错误检测方案并且配置为基于数据位和第一错误检测方案生成第一多个第一级校验位,第一多个第一级校验位用于第一级错误检测;以及第二级错误校正码电路,耦合到存储器器件,其中,第二级错误校正码电路具有第一错误校正方案并且配置为基于数据位、第一多个第一级校验位以及第一错误校正方案来生成第二多个第二级校验位,第二多个第二级校验位用于第二级错误校正。
5.根据本发明实施例的又一个方面,提供了一种在第一级错误校正码和第二级错误校正码之间共享校验位的方法,包括:生成与第一级错误校正码中的第一错误检测方案相关联的第一级奇偶校验矩阵;将第一级奇偶校验矩阵变换成第一级奇偶校验矩阵的系统形式;生成与第二级错误校正码中的第一错误校正方案相关联的第二级奇偶校验矩阵;将第二级奇偶校验矩阵变换成第二级奇偶校验矩阵的系统形式;对从第一级奇偶校验矩阵的系统形式中能够导出的第二级奇偶校验矩阵的系统形式的行进行标识;以及对于与第一级奇偶校验矩阵的系统形式的所有行和不能从第一级奇偶校验矩阵的系统形式中导出的第二级奇偶校验矩阵的系统形式的行相关联的校验位进行存储。
附图说明
6.当与附图一起阅读时,根据以下详细描述可以最好地理解本发明的各方面。应该
注意,根据工业中的标准实践,各个部件未按比例绘制。实际上,为了清楚的讨论,各个部件的尺寸可以任意地增大或减小。另外,附图是说明性的,作为本发明的实施例的实例,并且不意图是限制性的。
7.图1是一般示出了根据一些实施例的一个示例性装置的框图。
8.图2是示出了根据一些实施例的具有两级ecc的存储器控制器的示例性写入操作的示意图。
9.图3是示出了根据一些实施例的具有两级ecc的存储器控制器的示例性读取操作的示意图。
10.图4a是示出了根据一些实施例的示例性存储器阵列的示意图。
11.图4b是示出了根据一些实施例的两个示例性存储器阵列的示意图。
12.图5是示出了根据一些实施例的在第一级ecc和第二级ecc之间共享校验位的数据位和校验位的示意图。
13.图6a是示出了根据一些实施例的一种在第一级ecc和第二级ecc之间共享校验位的方法的流程图。
14.图6b是示出了根据一些实施例的图6a的步骤606的具体步骤的流程图。
具体实施方式
15.以下公开内容提供了许多用于实现所提供主题的不同特征的不同实施例或示例。以下将描述元件和布置的具体示例,以简化本发明。当然,这些仅仅是示例,并不旨在限制本发明。例如,在以下描述中,在第二部件上方或者上形成第一部件可以包括第一部件和第二部件直接接触形成的实施例,并且也可以包括在第一部件和第二部件之间可以形成额外的部件,从而使得第一部件和第二部件可以不直接接触的实施例。此外,本发明可在各个示例中重复参考数字和/或字符。这种重复是出于简明和清楚的目的,并且其本身不指示所论述的各个实施例和/或配置之间的关系。
16.此外,为了便于描述,本文中可使用诸如“在

之下”、“在

下方”、“下部”、“在

之上”、“上部”等空间关系术语来描述如图所示的一个元件或部件与另一元件或部件的关系。空间相对术语旨在涵盖除附图所示的方向之外的使用或操作中的器件的不同方向。装置可以以其他方式进行定向(旋转90度或者处于其他方向),而其中所使用的空间相关描述符可做相应解释。
17.存储器器件用于将信息存储于半导体器件和系统中。流行的动态随机存取存储器(dram)单元包括开关和电容器。当切断电源时,dram不保留数据。非易失存储器器件甚至在切断电源后也能保留数据。非易失存储器器件的示例包括闪存、磁随机存取存储器(mram)、铁电随机存取存储器(fram)、可变电阻式随机存取存储器(rram)和相变随机存取存储器(pram)。mram、fram、rram和pram有时被称为“新兴存储器”。mram使用磁隧道结处的磁化方向的变化来存储数据。fram使用铁电性的极化特性来存储数据。rram使用电阻材料层的电阻的变化来存储数据。pram使用特定材料相变引起的电阻变化来存储数据。
18.存储器通常被布置于2维阵列中。存储器阵列可以是其本身的器件或者被嵌入到另一个器件中,并且也能够包括很多存储器位单元。每个存储器位单元通常能够存储信息的一个位。存储器宏可以包括位单元的一个或多个阵列和其他逻辑电路,诸如,驱动器、缓
冲器、时钟扇出电路、错误校正码(ecc)电路和其他外围电路。
19.可以由干扰错误、辐射效应、热效应或其他方面导致数据错误,诸如,对于器件来说不是永久的或者不是物理损坏代表的软错误。此类错误可以是确定性的或者可以是由随机过程产生的。包括软错误的数据错误率可能需要使用内置于存储器器件芯片中的错误校正码(ecc)方案。ecc可以用于检测和校正存储于存储器中的位错误。通过生成ecc校验位,例如,冗余位或奇偶位,ecc编码数据,ecc校验位,例如,冗余位或奇偶位,与数据一起被存储于存储器器件中。数据位和校验(例如,奇偶)位一起形成码字。例如,生成对应于64个数据位的8个奇偶位的ecc通常能够检测两个位错误并且校正64个数据位中的一个位错误,被称为ded/sec码,意为双错误检测(ded)和单错误校正(sec)。
20.可能需要额外存储器空间以存储与ecc一起使用的校验位。因此,可能需要一个或多个额外存储器器件(例如,一个或多个额外芯片)以存储校验位来提供能力。在一些存储器阵列中,额外列可以被增加至存储器阵列以存储校验位。包括在存储器阵列的一个行中的数据可以被称为字,并且码字包括附加在一个或多个额外列中的字加奇偶位。如果码字包括具有k个位和m个奇偶位的字部分,则码字长度n将会为n=k+m。例如,能够提供对应于每个32位数据字的8位奇偶的ecc存储器可以包括40位宽接口以访问具有32位数据的40位码字。同样地,能够提供对应于每个64位数据字的8位奇偶的ecc存储器可以包括72位宽接口以访问具有64位数据的72位码字。
21.根据所公开的实施例,两级ecc存储器控制器仅可以保护具有错误检测的较小字并且保护兼具错误检测和错误校正的较大字。码字中的位错误检测比位错误校正需要更少的操作,并且同样地,需要更少电路以支持更少的操作。由此,两级ecc存储器控制器能够实现相对较少的开销,最小化ecc增加的额外时延并且提供更多元件平面布置灵活性。此外,在第一级ecc和第二级ecc之间共享校验位能够进一步减少开销。
22.图1是一般示出了根据一些实施例的一个示例性装置的框图。在图1中所示的示例中,装置100包括,但不限于,存储器器件102、存储器控制器104和一个或多个处理器核106。
23.存储器器件102可以是计算机组件,并且记录用于保留数字数据的介质。在一示例中,存储器器件102可以是处理器寄存器和高速缓存。在一示例中,存储器器件102可以是在线大容量存储器器件(诸如,用作次级存储器的硬盘驱动器)的形式。在线大容量存储器器件可以包括非易失存储器,非易失存储器的形式多种多样,包括但不限于nand(闪存)存储器、新兴存储器,诸如,mram、fram、rram和pram。在一示例中,存储器器件102可以是离线海量存储存储器器件(诸如,用作三级存储器的高密度只读光盘(dvd

rom))的形式。在一示例中,存储器器件102可以是动态随机存取存储器(dram)。在一示例中,存储器器件102可以是静态随机存取存储器(sram)。
24.存储器控制器104可以配置为向存储器器件102提供接口并且管理去往和来自存储器器件102的数据流。在一示例中,存储器控制器104可以是独立芯片的形式。在一示例中,存储器控制器104可以与存储器器件102集成。在一示例中,存储器控制器104可以在主板上实现或在微处理器上形成集成存储器控制器(imc)以可能减少存储器时延。
25.在图1中所示的示例中,存储器控制器104包括,但不限于,第一级ecc电路108和第二级ecc电路110。第一级ecc电路108包括,但不限于,第一级错误检测模块112。第一级ecc电路108配置为在传输或存储过程中检测与较小字相关联的错误。较小字的宽度,例如,可
以是物理阵列的宽度。在一示例中,较小字的宽度为64位,对应于物理阵列的宽度。第二级ecc电路110包括,但不限于,第二级错误检测模块114和错误校正模块116。第二级ecc电路110配置为在传输或存储过程中检测和校正与较大字相关联的错误。较大字的宽度,例如,可以是逻辑数据大小,诸如,高速缓存线,的宽度。高速缓存线为高速缓存和主存储器之间的数据传送的单元。在一示例中,较大字的宽度为512位,对应于高速缓存线的宽度。需要注意的是,“较小字”和“较大字”是相对的术语,并且较大字的宽度大于较小字的宽度。
26.已开发出很多方案以实现ecc,包括汉明码、三模冗余和其他码。汉明码,例如,是二元线性分组码中的一类,根据使用的奇偶位的数量,二元线性分组码中的其他类检测到每一码字有两个位错误或者在未检测到未校正的错误的情况下校正一个位错误。已开发出若干方案,但是在一般情况下,如果奇偶位布置在码字中从而使得不同的不正确位生成不同的错误结果,则能够标识错误的位。
27.当设计ecc时,两个码字应当充分地不同从而使得一位(或可能若干位)的损坏不会将一个有效码字转变为另一个有效码字。汉明码是两个码字之间的距离的测量结果。汉明距离是两个码字之间不同的位的数量。
28.因为没有设置d一位错误能够将有效码字转变为另一个有效码字,所以为了设计能够检测d一位错误的码,对应于码字的最小汉明距离为(d+1)。另一方面,为了设计能够校正d一位错误的码,对应于码字的最小汉明距离为(2d+1)。因此,尽管出现d一位错误的码,有效码字仍相去甚远,仍小于一半的汉明距离。
29.如果码字的字部分具有k个位,需要m个奇偶位通过汉明码来编码k个位。码字具有(k+m)个位。一个额外位用于指示无错误状态。因此,存在可能发生错误的(k+m+1)个可能不同位置。另一方面,m个奇偶位可能指示2
m
状态。因此,m是满足以下不等式的最小整数。
[0030]2m
≥k+m+1。
[0031]
一般情况下,在两级ecc中,基于要写入存储器的数据位的数量和错误检测方案来确定第一级ecc中的错误检测方案所需的校验位的数量,并且基于要写入存储器的数据位的数量、对应于第一级ecc的校验位的数量和错误校正方案来确定第二级ecc中的错误校正方案所需的校验位的数量。例如,如果使用汉明码并且64个数据位(即,物理阵列的示例性宽度)要写入至存储器中,这意味着k是上述不等式中的64,则7个校验位用于第一级ecc。换句话说,如果k是64,则根据上述不等式计算出m为7。
[0032]
在一示例中,可以采用ded/dec方案,ded/dec方案意指双错误检测(ded)和双错误校正(dec)。具体地,第一级ecc电路108能够保护具有ded的64个数据位(即,物理阵列的示例性宽度),并且7个校验位用于第一级,如前所解释。另一方面,第二级ecc电路110能够保护512个数据位(即,高速缓存线的示例性宽度和64个数据位的8倍)和具有dec的56个校验位(即,7个校验位的8倍),并且20个校验位用于第二级。因此,对应于512个数据位总共有76(即56加20)个校验位,并且在此示例中开销(即,校验位数量与数据位数量之间的比率)为14.8%。
[0033]
在另一个示例中,可以采用sed/sec方案,sed/sec方案意指单错误检测(sed)和单错误校正(sec)。具体地,第一级ecc电路108能够保护具有sed的64个数据位(即,物理阵列的示例性宽度),并且1个校验位用于第一级。另一方面,第二级ecc电路110能够保护512个数据位(即,高速缓存线的示例性宽度和64个数据位的8倍)和具有sec的8个校验位(即,1个
校验位的8倍),并且20个校验位用于第二级。因此,对应于512个数据位总共有28(即8加20)个校验位,并且在此示例中开销为5.47%。
[0034]
在另一个示例中,可以采用sed/dec方案,sed/dec方案意指单错误检测(sed)和双错误校正(dec)。具体地,第一级ecc电路108能够保护具有sed的16个数据位(即,物理阵列的另一个示例性宽度),并且1个校验位用于第一级。另一方面,第二级ecc电路110能够保护512个数据位(即,高速缓存线的示例性宽度和16个数据位的32倍)和具有dec的32个校验位(即,1个校验位的32倍),并且20个校验位用于第二级。因此,对应于512个数据位总共有52(即32加20)个校验位,并且在此示例中开销为10.16%。
[0035]
在另一个示例中,可以采用ted/tec方案,ted/tec方案意指三重误差检测(ted)和三重错误校正(tec)。具体地,第一级ecc电路108能够保护具有ted的64个数据位(即,物理阵列的示例性宽度),并且8个校验位用于第一级。另一方面,第二级ecc电路110能够保护512个数据位(即,高速缓存线的示例性宽度和64个数据位的8倍)和具有tec的64个校验位(即,8个校验位的8倍),并且30个校验位用于第二级。因此,对应于512个数据位总共有94(即64加30)个校验位,并且在此示例中开销为18.4%。
[0036]
总而言之,两级ecc存储器控制器104仅保护具有错误检测的较小字并且保护兼具错误检测和错误校正的较大字。由此,两级ecc存储器控制器104能够实现相对较少的开销,最小化ecc增加的额外时延并且提供更多元件平面布置灵活性。需要注意的是,也可以根据需要采用ded/dec方案、sed/sec方案、sed/dec方案和ted/tec方案之外的方案。
[0037]
在图1中所示的示例,处理器核106可以具有一个或多个中央处理单元(cpu)或核,其中,每一个核都能够读取并且执行cpu指令,诸如,添加、移动、转移、读取、写入等等。通过在单个集成电路管芯或单芯片封装中多个管芯上集成多个核的方式,多核处理器可适于并行计算,从而增加总计算速度。
[0038]
图2是示出了根据一些实施例的具有两级ecc的存储器控制器104的示例性写入操作的示意图。一般情况下,在两个层级中发生写入操作:第一级ecc 202和第二级ecc 204,并且第一级ecc 202中生成的校验位与数据位一起进一步用于在第二级ecc 204中生成校验位。具体地,采用上面已经描述的ded/dec。512个数据位210将会被写入到存储器器件102中。512(即,64的八倍)个数据位210分为八个字210

1至210

8,每个字具有对应于物理阵列的宽度的64个数据位。
[0039]
用ded保护八个字210

1至210

8中的每一个,并且64个数据位使用7个校验位。八个字210

1至210

8中的每一个被输入到写异或(xor)树的各自的组以生成7个第一级校验位。具体地,字210

1被输入到写xor树220

1的组,并且生成7个第一级校验位230

1;字210

2被输入到写xor树220

2的组,并且生成7个第一级校验位230

2;字210

3被输入到写xor树220

3的组,并且生成7个第一级校验位230

3;字210

4被输入到写xor树220

4的组,并且生成7个第一级校验位230

4;字210

5被输入到写xor树220

5的组,并且生成7个第一级校验位230

5;字210

6被输入到写xor树220

6的组,并且生成7个第一级校验位230

6;字210

7被输入到写xor树220

7的组,并且生成7个第一级校验位230

7;并且字210

8被输入到写xor树220

8的组,并且生成7个第一级校验位230

8。因此,在第一级ecc 202中总共生成56个第一级校验位230。56个第一级校验位230被写入到存储器器件102中。在一示例中,56个第一级校验位230被写入到存储器器件102的存储器阵列的单独列中。
[0040]
在第二级ecc 204中,56个第一级校验位230与512个数据位210一起被dec保护,并且568个位(即,56个位加512个位)使用20个校验位,如前所解释。具体地,56个第一级校验位230与512个数据位210一起被写入到20个写xor树240中。因此,在第二级ecc 204中总共生成20个第一级校验位250。20个第二级校验位250被写入到存储器器件102中。在一示例中,20个第二级校验位250被写入到存储器器件102的存储器阵列的单独列中。
[0041]
总而言之,在第一级ecc 202和第二级ecc 204之后,生成56个第一级校验位230和20个第二级校验位250。56个第一级校验位230和20个第二级校验位250与512个数据位210一起被写入到存储器器件102的存储器阵列中。如上所述,在ded/dec方案的该示例中,开销为14.8%。一般情况下,生成第一数量的第一级校验位,并且生成第二数量的第二级校验位。基于两个因素确定第一数量:(1)要写入到存储器器件的数据位;以及(2)错误检测方案。基于三个因素确定第二数量:(1)要写入到存储器器件的数据位;(2)第一级校验位的数量(即第一数量);以及(3)错误校正方案。
[0042]
图3是示出了根据一些实施例的具有两级ecc的存储器控制器104的示例性读取操作的示意图。一般情况下,在两个层级中发生读取操作:第一级ecc 202和第二级cc 204。在第一级ecc 202中校验每个字。当没有对应于任何字的错误时,完成读取操作。当存在对应于任何字的任何错误时,读取整个第二级码字(即,数据位、生成在写入操作中的第一级校验位和生成在写入操作中的第二级校验位),并且错误校正模块116重构原始数据位。
[0043]
具体地,读取存储在存储器器件102中的512个数据位210’。由于随着时间在写入操作或存储器器件102的数据损坏中发生的错误,所以512个数据位不必与最初要写入到如图2所示的存储器器件102中的512个数据位210相同。同样地,512个数据位210’能够分为8个字210
’‑
1至210
’‑
8,其中的每一个都包括64个数据位。
[0044]
8个字210
’‑
1至210
’‑
8与在写入操作中生成的各自的第一级校验位230

1至230

8被写入到读xor树320

1至320

8的各自的组,以生成校正子330

1至330

8的各自的组。对应于具有错误的码字,错误模式被称为(错误)校正子并且标识有错误的位。使用校正子解码方法能够解码汉明码。在校正子解码方法中,通过用接收到的码字乘以奇偶校验矩阵的转置,来计算校正子。将会在下面详细描述奇偶校验矩阵。能够作为异或(xor)树来实现校正子计算电路。每个xor树由于输入具有多个数据位。
[0045]
具体地,字210
’‑
1和第一级校验位230

1被输入到读xor树320

1的组中,并且生成校正子330

1的组;字210
’‑
2和第一级校验位230

2被输入到读xor树320

2的组中,并且生成校正子330

2的组;字210
’‑
3和第一级校验位230

3被输入到读xor树320

3的组中,并且生成校正子330

3的组;字210
’‑
4和第一级校验位230

4被输入到读xor树320

4的组中,并且生成校正子330

4的组;字210
’‑
5和第一级校验位230

5被输入到读xor树320

5的组中,并且生成校正子330

5的组;字210
’‑
6和第一级校验位230

6被输入到读xor树320

6的组中,并且生成校正子330

6的组;字210
’‑
7和第一级校验位230

7被输入到读xor树320

7的组中,并且生成校正子330

7的组;以及字210
’‑
8和第一级校验位230

8被输入到读xor树320

8的组中,并且生成校正子330

8的组。
[0046]
将任何有效码字与奇偶校验矩阵的转置相乘都等于零。因此,如果接收的码字中没有错误,则校正子全部都等于零。具体地,当校正子320

1至320

8的所有组都等于零时,所有字210
’‑
1至210
’‑
8都确定为有效。当校正子320

1至校正子320

8的组中的任何一个都
不等于零时,对应的字(例如,210
’‑
1)确定为无效。但是,为了重构原始512个数据位210,使用全部第二级码字(即,数据位210’、第一级校验位230

1至230

8和第二级校验位250)。具体地,在第二级ecc 204中,错误校正模块116使用全部第二级码字(即,数据位210’、第一级校验位230

1至230

8和第二级校验位250),来用dec重构原始512个数据位210。具体地,第二级错误检测模块114能够通过将接收的码字与原始码字对比来标识错误,从而计算出哪一个数据位被翻转了(即,从0至1或从1至0)。然后,基于第二级错误检测模块114标识的错误的位置,通过反转数据位的逻辑值,错误校正模块116校正该错误。
[0047]
图4a是示出了根据一些实施例的示例性存储器阵列402i的示意图。一般情况下,第一级ecc 202对应于较小数据宽度,该较小数据宽度通常为物理存储器阵列的宽度。在图4a所示示例中,八个存储器阵列402i(i=1、2、3、4、5、6、7、8)对应于图2中的八个64位字210

1至210

8。每个存储器阵列402i能够将64个数据位210

i存储在数据位区域412中并且将7个校验位230

i存储在校验位区域414中。在如上所述的写入操作中,通过读xor树220

i的组生成7个校验位230

i,并且64个数据位210

i与7个校验位230

i一起被存储在存储器阵列402i中。在如上所述的读取操作中,从存储器阵列402i读取存储的71个位(包括64个数据位210
’‑
i和7个校验位230

i)。通过将接收的码字乘以奇偶校验矩阵的转置,读xor树320

i的组生成校正子的组330

i。当校正子330

i的组没有一个等于零时,64个数据位210
’‑
i确定为有效(即,64个数据位210
’‑
i与64个数据位210

i相同)。当校正子330

i的组中的任何一个都不等于零时,64个数据位210
’‑
i确定为无效(即,64个数据位210
’‑
i与64个数据位210

i不相同,并且使用第二级ecc 204中的错误校正)。因此,八个存储器阵列402i(i=1、2、3、4、5、6、7、8)执行读取操作和写入操作。
[0048]
图4b是示出了根据一些实施例的两个示例性存储器阵列402a和402b的示意图。在图4b中所示的示例中,两个存储器阵列402a和402b中的每一个都对应于图2中的四个64位字。具体地,存储器阵列402a对应于四个64位字210

j(j=1、3、5、7);存储器阵列402b对应于另外四个64位字210

k(k=2、4、6、8)。一般情况下,存储器阵列402a和存储器阵列402b二者都访问四次。因此,对于两个存储器阵列402a和402b每一个的四次访问都能够存储512(即,512=2
×4×
64)个数据位,512个数据位相当于图4a中所示情况,其中,一次访问八个存储器阵列。通过使用多次访问,对应于相同数量的数据位,读取操作和写入操作需要较少存储器阵列。存储器阵列402a和存储器阵列402b二者都能够分别将64个数据位210

j和64个数据位210

k存储在数据位区域412中并且分别将7个校验位230

j和7个校验位230

k存储在校验位区域414中。以存储器阵列402a为例,存储器阵列402b的操作与存储器阵列402a的操作类似。在如上所述的写入操作中,通过读xor树220

j的组生成7个校验位230

j(j=1、3、5、7),并且64个数据位210

j7个校验位230

j一起被存储在存储器阵列402a中。在如上所述的读取操作中,从存储器阵列402a读取存储的71个位(包括64个数据位210
’‑
j和7个校验位230

j)。读xor树320

j的组生成校正子330

j的组。当校正子330

j的组没有一个等于零时,64个数据位210
’‑
j确定为有效(即,64个数据位210
’‑
j与64个数据位210

j相同)。当校正子330

j组中的任何一个都不等于零时,64个数据位210
’‑
j确定为无效(即,64个数据位210
’‑
j与64个数据位210

j不相同,并且使用第二级ecc 204中的错误校正)。因此,通过多次(在此示例中,四次)访问,两个存储器阵列402a和402b能够执行读取操作和写入操作。需要注意的是,具有八次访问的一个存储器阵列也能够执行读取操作和写入操作。因此,对
于一个存储器阵列的八次访问也能够存储512(即,512=8
×1×
64)个数据位,512个数据位相当于图4a中所示情况,其中,一次访问八个存储器阵列。通过使用多次访问,对应于相同数量的数据位,读取操作和写入操作需要更少存储器阵列。
[0049]
图5是示出了根据一些实施例的在第一级ecc 202第二级ecc 204共享校验位的数据位210’和校验位230和250’的示意图。一般情况下,使用奇偶矩阵p生成校验位,奇偶矩阵p由奇偶校验矩阵h导出。ecc的奇偶校验矩阵h是描述码字分量必须满足的线性关系的矩阵。能够使用奇偶校验矩阵h确定特定向量是否为码字。奇偶校验矩阵h也能够用于解码算法中。生成矩阵g为行形成线性码的基的矩阵。码字是生成矩阵g的行的线性组合的全部。借助生成矩阵g,从奇偶校验矩阵h导出奇偶矩阵p。通过将数据位乘以奇偶矩阵p来生成校验位。
[0050]
对于图2中所示的两级ecc,第一级奇偶校验矩阵h1对应于第一级ecc 202,并且第二级奇偶校验矩阵h2对应于第二级ecc 204。能够通过来自第一级奇偶校验矩阵h1的系统形式h1’
的行的线性组合来重构来自第二级奇偶校验矩阵h2的系统形式h2’
的一些行,因此既然能够从h1’
构建他们,那么就不需要存储一些第二级校验位。因此,由于系统形式h2’
的行的重构,共享对应于第一级ecc 202的校验位和对应于第二级ecc 204的校验位。在第一级ecc 202和第二级ecc 204之间共享校验位能够进一步减少开销。下面将会参照图6a和图6b详细描述在第一级ecc 202和第二级ecc 204之间共享校验位的方法。
[0051]
在图5中所示的示例中,512个数据位210’存储于存储器器件102中。56个第一级校验位存储于存储器器件102中。由于在第一级ecc 202和第二级ecc 204之间共享校验,存储于存储器器件102中的第二级校验位250’少于20个位。
[0052]
图6a是示出了根据一些实施例的一种在第一级ecc 202和第二级ecc 204之间共享校验位的方法的流程图。在步骤602中,生成对应于第一级ecc 202的h矩阵h1,h1变换成系统形式h1’
。h1’
对应于较小数据宽度。在图2中的ded示例中,数据宽度为64位,并且校验位宽度为7位。在步骤604中,生成对应于第二级ecc 204的h矩阵h2,h2变换成系统形式h2’
。h2’
对应于较大数据宽度。在图2中的dec示例中,数据宽度为568位,并且校验位宽度为20位。在步骤606中,标识能够自h1’
导出的h2’
的行。在一个示例中,能够自h1’
导出四个行。在步骤608中,存储与h1’
的所有行和不能自h1’
导出的h2’
的行相关联的校验位。在一个示例中,存储与h1’
的所有行相关联的56个校验位,并且存储与不能自h1’
导出的h2’
的行相关联的16个校验位。
[0053]
图6b是示出了根据一些实施例的图6a的步骤606的具体步骤的流程图。在步骤692中,对h2’
的列进行排序以查找具有匹配并对准的零的最多n行。在一个示例中,n是4。方法进行至步骤694或步骤696。在步骤694,h1’
的行用于导出n行中的剩余列(即,非零元素)。在图2的示例中,剩余列由8组h1’
组成。可选地,在步骤696,h1’
的行的线性组合用于导出n行中的剩余列(即,非零元素)。然后,在步骤698,在错误校正模块116中设计线性组合。因此,能够自h1’
导出那些n行,并且不需要存储与那些n行相关联的校验位。
[0054]
根据一些公开的实施例,提供一种操作耦合到存储器器件的存储器控制器的方法。方法包括:基于第一错误检测方案生成对应于要写入存储器器件的数据位的第一多个第一级校验位;以及基于第一错误校正方案生成对应于数据位和第一多个第一级校验位两者的第二多个第二级校验位。
[0055]
在上述方法中,还包括:将数据位存储在存储器器件中。
[0056]
在上述方法中,还包括:将第一多个第一级校验位和第二多个第二级校验位存储在存储器器件中。
[0057]
在上述方法中,还包括:读取存储的数据位;读取第一多个第一级校验位;以及基于存储的数据位和第一多个第一级校验位来计算第一多个校正子。
[0058]
在上述方法中,还包括:如果第一多个校正子中的任一个不等于零,则基于存储的数据位、第一多个第一级校验位以及第二多个第二级校验位,通过使用第一错误校正方案来校正存储的数据位。
[0059]
在上述方法中,还包括:基于第一多个第一级校验位和第二多个第二级校验位来生成第三多个第二级校验位。
[0060]
根据一些公开的实施例,提供一种存储器系统。存储器系统包括:存储器器件,配置为存储要写入存储器器件的数据位;以及存储器控制器。存储器控制器包括:第一级错误校正码(ecc)电路,耦合到存储器器件,其中第一级ecc电路具有第一错误检测方案并且配置为基于数据位和第一错误检测方案生成第一多个第一级校验位,第一多个第一级校验位用于第一级错误检测;以及第二级ecc电路,耦合到存储器器件,其中,第二级ecc电路具有第一错误校正方案并且配置为基于数据位、第一多个第一级校验位以及第一错误校正方案来生成第二多个第二级校验位,第二多个第二级校验位用于第二级错误校正。
[0061]
在上述存储器系统中,第一错误检测方案是双错误检测,并且第一错误校正方案是双错误校正。
[0062]
在上述存储器系统中,第一错误检测方案是单错误检测,并且第一错误校正方案是单错误校正。
[0063]
在上述存储器系统中,第一错误检测方案是单错误检测,并且第一错误校正方案是双错误校正。
[0064]
在上述存储器系统中,存储器器件是磁随机存取存储器、铁电随机存取存储器、可变电阻式随机存取存储器或相变随机存取存储器中的一种。
[0065]
在上述存储器系统中,第一级错误校正码电路进一步配置为:读取存储的数据位;读取第一多个第一级校验位;并且基于存储的数据位和第一多个第一级校验位来计算第一多个校正子。
[0066]
在上述存储器系统中,第二级错误校正码电路进一步配置为:当第一多个校验子中的任一个不等于零时,基于存储的数据位、第一多个第一级校验位以及第二多个第二级校验位,使用第一错误校正方案来校正存储的数据位。
[0067]
在上述存储器系统中,存储器控制器配置为基于第一多个第一级校验位和第二多个第二级校验位来生成第三多个第二级校验位。
[0068]
在上述存储器系统中,数据位分成多个字,并且每个字对应于第一多个第一校验位的子集。
[0069]
在上述存储器系统中,多个字通过多次访问存储器器件的一个存储器阵列来写入和读取。
[0070]
在上述存储器系统中,多个字通过一次访问存储器器件的多个存储器阵列来写入和读取。
[0071]
根据一些公开的实施例,提供一种在第一级错误校正码(ecc)和第二级ecc之间共享校验位的方法。方法包括:生成与第一级ecc中的第一错误检测方案相关联的第一级奇偶校验矩阵;将第一级奇偶校验矩阵变换成第一级奇偶校验矩阵的系统形式;生成与第二级ecc中的第一错误校正方案相关联的第二级奇偶校验矩阵;将第二级奇偶校验矩阵变换成第二级奇偶校验矩阵的系统形式;对从第一级奇偶校验矩阵的系统形式中能够导出的第二级奇偶校验矩阵的系统形式的行进行标识;以及对于与第一级奇偶校验矩阵的系统形式的所有行和不能从第一级奇偶校验矩阵的系统形式中导出的第二级奇偶校验矩阵的系统形式的行相关联的校验位进行存储。
[0072]
在上述方法中,对从第一级奇偶校验矩阵的系统形式中能够导出的第二级奇偶校验矩阵的系统形式的行进行标识还包括:对第二级奇偶校验矩阵的系统形式的列进行排序,以查找具有匹配并对准的零的最多n行;以及使用第一级奇偶校验矩阵的系统形式的行来导出n行中的剩余列。
[0073]
在上述方法中,对从第一级奇偶校验矩阵的系统形式中能够导出的第二级奇偶校验矩阵的系统形式的行进行标识还包括:对第二级奇偶校验矩阵的系统形式的列进行排序,以查找具有匹配并对准的零的最多n行;使用第一级奇偶校验矩阵的系统形式的行的线性组合来导出n行中的剩余列;以及将线性组合设计到第二级错误校正码中的第一错误校正方案中。
[0074]
本发明概述了各种实施例,使得本领域技术人员可以更好地理解本发明的方面。本领域的技术人员应该理解的是,他们可以轻松地将本发明作为基础来设计或修改用于实施与本文所介绍实施例的相同目的和/或实现相同的优点的其他工艺或结构。本领域技术人员还应认识到的是,这种等效结构并不背离本发明的精神和范围,并且在不背离本发明的精神和范围的情况下可以对其进行各种更改、替换和变更。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1