存储器、阵列单元模块及其存储方法、构建方法与流程

文档序号:24046173发布日期:2021-02-23 18:50阅读:171来源:国知局
存储器、阵列单元模块及其存储方法、构建方法与流程

[0001]
本发明涉及存储器领域。具体地,本发明涉及用于复用外围电路,从而减小外围电路面积的存储器、阵列单元模块及其存储方法、构建方法。


背景技术:

[0002]
ecc是一种对数据进行检错和纠错的方法。它利用在一定长度数据位的基础上增加额外的数据来实现检错和纠错功能,这些额外的数据称为校验位。校验位的长度根据选定的ecc算法来确定。
[0003]
在选定ecc算法之后,一定长度的数据位都存在与其对应的校验位,而这些校验位也需要阵列来存储。因此,需要与这些校验位对应的外围电路:行译码模块、列译码模块、灵敏放大器以及写驱动模块。
[0004]
图1示出了常见的不包含纠错码(error correction code,ecc)功能的存储器的核心结构。所述结构由一些重复的部分构成,每一部分都包含存储阵列模块、行译码模块、列译码模块、灵敏放大器以及写驱动模块。
[0005]
存储阵列模块用来存储数据,行译码模块和列译码模块通过地址确定数据存储的位置,写驱动模块在写操作的过程中把数据写入存储阵列模块,灵敏放大器在读操作的过程中放大从存储阵列模块中读出来的数据。
[0006]
图2示出了一种已知的包含ecc功能的存储器的核心结构。在这种情况下,尽管对行译码模块进行了复用(也就是,ecc阵列模块和数据阵列模块共用行译码模块),但是还分别需要用于数据阵列的列译码模块、用于数据阵列的灵敏放大器以及写驱动模块、用于ecc阵列的列译码模块、用于ecc阵列的灵敏放大器以及写驱动模块等其他的外围电路,这会使得存储器的面积大幅增加。
[0007]
因此,亟需解决现有技术中的上述技术问题。


技术实现要素:

[0008]
本发明涉及用于复用外围电路以减小面积的存储器、阵列单元模块及其存储方法、构建方法。本发明是基于这样的认识而提出的:存储器的核心结构是由一些重复的部分组成,这些重复的部分不会在同一时间都激活。针对未被激活的部分,其存储阵列的外围电路也不会被激活,而被激活的部分的ecc阵列或数据阵列,可以使用那些未被激活的数据阵列或ecc阵列的外围电路。这样就不需要额外的用于ecc阵列或数据阵列的外围电路,从而达到减小面积的目的。
[0009]
根据本发明的第一方面,提供了一种存储器,包括:
[0010]
n个数据阵列模块及l个ecc阵列模块;
[0011]
第m个数据阵列模块及对应的ecc阵列模块被同时激活,其中所述对应的ecc阵列模块用于存储ecc码,所述ecc码是针对所述第m个数据阵列模块中存储的数据进行ecc编码所获得的校验码;
[0012]
被激活的第m个数据阵列模块所对应的ecc阵列模块使用用于未被激活的一个或多个数据阵列模块的外围电路,或者被激活的第m个数据阵列模块使用用于未被激活的一个或多个ecc阵列模块的外围电路;
[0013]
其中,n为大于等于2的正整数,m为小于等于n的正整数,l为小于等于n的正整数。
[0014]
根据本发明的存储器的一个优选实施方案,所述被激活的第m个数据阵列模块所对应的ecc阵列模块与所述未被激活的一个或多个数据阵列模块在不同时间被激活时使用同一外围电路;或者
[0015]
所述被激活的第m个数据阵列模块与所述未被激活的一个或多个ecc阵列模块在不同时间被激活时使用同一外围电路;
[0016]
其中所述外围电路包括以下任意一项或其组合:行译码模块、列译码模块、灵敏放大器、写驱动模块。
[0017]
根据本发明的存储器的一个优选实施方案,每一数据阵列模块包括多个数据阵列子模块;
[0018]
一个数据阵列模块的多个数据阵列子模块所对应的ecc阵列模块与另一个或另一些数据阵列模块的多个数据阵列子模块在不同时间被激活时使用同一外围电路;或者
[0019]
一个数据阵列模块的多个数据阵列子模块与另一个或另一些数据阵列模块的多个数据阵列子模块所对应的一个或多个ecc阵列模块在不同时间被激活时使用同一外围电路;
[0020]
其中,所述外围电路包括以下任意一项或其组合:行译码模块、列译码模块、灵敏放大器、写驱动模块。
[0021]
根据本发明的存储器的一个优选实施方案,所述n个数据阵列模块至少包括:第一数据阵列模块和第二数据阵列模块;
[0022]
所述l个ecc阵列模块至少包括:与所述第一数据阵列模块对应的第一ecc阵列模块,所述第一ecc阵列模块用于存储第一ecc码,所述第一ecc码是针对所述第一数据阵列模块中存储的数据进行ecc编码所获得的校验码;以及,与所述第二数据阵列模块对应的第二ecc阵列模块,所述第二ecc阵列模块用于存储第二ecc码,所述第二ecc码是针对所述第二数据阵列模块中存储的数据进行ecc编码所获得的校验码;其中,
[0023]
所述第一数据阵列模块和所述第二数据阵列模块在不同时间被激活,其中所述第一数据阵列模块及对应的第一ecc阵列模块被同时激活,所述第二数据阵列模块及对应的第二ecc阵列模块被同时激活;
[0024]
被激活的数据阵列模块所对应的ecc阵列模块使用用于未被激活的数据阵列模块的外围电路,或者被激活的数据阵列模块使用用于未被激活的ecc阵列模块的外围电路。
[0025]
根据本发明的存储器的一个优选实施方案,所述第一数据阵列模块和所述第二ecc阵列模块在不同时间被激活时使用第一列译码模块,或者使用第一行译码模块,或者使用第一列译码模块和第一行译码模块二者;
[0026]
所述第二数据阵列模块和所述第一ecc阵列模块在不同时间被激活时使用第二列译码模块,或者使用第二行译码模块,或者使用第二列译码模块和第二行译码模块二者。
[0027]
根据本发明的存储器的一个优选实施方案,所述第一数据阵列模块设置在所述第二ecc阵列模块和所述第一列译码模块之间。
[0028]
根据本发明的存储器的一个优选实施方案,所述第二数据阵列模块设置在所述第一ecc阵列模块和所述第二列译码模块之间。
[0029]
根据本发明的存储器的一个优选实施方案,所述第二ecc阵列模块设置在所述第一数据阵列模块和所述第一列译码模块之间。
[0030]
根据本发明的存储器的一个优选实施方案,所述第一ecc阵列模块设置在所述第二数据阵列模块和所述第二列译码模块之间。
[0031]
根据本发明的存储器的一个优选实施方案,所述第一数据阵列模块、所述第二数据阵列模块、所述第一ecc阵列模块和所述第二ecc阵列模块设置在所述第一行译码模块和所述第二行译码块之间。
[0032]
根据本发明的存储器的一个优选实施方案,所述第一数据阵列模块包括多个数据阵列子模块,所述第一数据阵列模块的多个数据阵列子模块及第二ecc阵列模块在不同时间被激活时使用同一外围电路;以及
[0033]
所述第二数据阵列模块包括多个数据阵列子模块,所述第二数据阵列模块的多个数据阵列子模块及第一ecc阵列模块在不同时间被激活时使用同一外围电路;
[0034]
其中,所述外围电路包括以下任意一项或其组合:行译码模块、列译码模块、灵敏放大器、写驱动模块。
[0035]
根据本发明的存储器的一个优选实施方案,所述第一数据阵列模块至少包括第一数据阵列子模块和第二数据阵列子模块,所述第二数据阵列模块至少包括第三数据阵列子模块和第四数据阵列子模块;
[0036]
所述第一数据阵列子模块、所述第二数据阵列子模块和所述第二ecc阵列模块在不同时间被激活时使用第一列译码模块,或者使用第一行译码模块,或者使用第一列译码模块和第一行译码模块二者;
[0037]
所述第三数据阵列子模块、所述第四数据阵列子模块和所述第一ecc阵列模块在不同时间被激活时使用第二列译码模块,或者使用第二行译码模块,或者使用第二列译码模块和第二行译码模块二者。
[0038]
根据本发明的存储器的一个优选实施方案,所述第二ecc阵列模块设置在所述第一数据阵列子模块和所述第二数据阵列子模块之间,所述第二数据阵列子模块设置在所述第二ecc阵列模块和所述第一列译码模块之间;
[0039]
所述第一ecc阵列模块设置在所述第三数据阵列子模块和所述第四数据阵列子模块之间,所述第四数据阵列子模块设置在所述第一ecc阵列模块和所述第二列译码模块之间;
[0040]
所述第一数据阵列子模块、所述第二数据阵列子模块、所述第三数据阵列子模块、所述第四数据阵列子模块、所述第一ecc阵列模块和所述第二ecc阵列模块设置在所述第一行译码模块和所述第二行译码模块之间。
[0041]
根据本发明的第二方面,提供了一种阵列单元模块,包括:
[0042]
n个数据阵列单元及l个ecc阵列单元;
[0043]
第m个数据阵列单元及对应的ecc阵列单元被同时激活,其中所述对应的ecc阵列单元用于存储ecc码,所述ecc码是针对所述第m个数据阵列单元中存储的数据进行ecc编码所获得的校验码;
[0044]
被激活的第m个数据阵列单元所对应的ecc阵列单元使用用于未被激活的一个或多个数据阵列单元的行译码单元,或者被激活的第m个数据阵列单元使用用于未被激活的ecc阵列单元的行译码单元;
[0045]
其中,每个数据阵列单元及对应的ecc阵列单元的总大小是根据所采用的ecc算法来确定的,且所述总大小等于所述ecc算法所需的数据位长度及所产生的校验位长度之和的k倍;
[0046]
其中,n为大于等于2的正整数,m为小于等于n的正整数,l为小于等于n的正整数,k为大于等于1的正整数。
[0047]
根据本发明的阵列单元模块的一个优选实施方案,所述n个数据阵列单元至少包括:第一数据阵列单元和第二数据阵列单元;
[0048]
所述l个ecc阵列模块至少包括:与所述第一数据阵列单元对应的第一ecc阵列单元,所述第一ecc阵列单元用于存储第一ecc码,所述第一ecc码是针对所述第一数据阵列单元中所存储的数据进行ecc编码所获得的校验码;以及,与所述第二数据阵列单元对应的第二ecc阵列单元,所述第二ecc阵列单元用于存储第二ecc码,所述第二ecc码是针对所述第二数据阵列单元中所存储的数据进行ecc编码所获得的校验码;其中,
[0049]
所述第一数据阵列单元和所述第二数据阵列单元在不同时间被激活,其中所述第一数据阵列单元及对应的第一ecc阵列单元被同时激活,所述第二数据阵列单元及对应的第二ecc阵列单元被同时激活;
[0050]
被激活的数据阵列单元所对应的ecc阵列单元使用用于未被激活的数据阵列单元的行译码单元,或者被激活的数据阵列单元使用用于未被激活的ecc阵列单元的行译码单元。
[0051]
根据本发明的阵列单元模块的一个优选实施方案,所述第一数据阵列单元和所述第二ecc阵列单元在不同时间被激活时使用第一行译码单元;
[0052]
所述第二数据阵列单元和所述第一ecc阵列单元在不同时间被激活时使用第二行译码单元。
[0053]
根据本发明的阵列单元模块的一个优选实施方案,所述第一行译码单元设置在所述第一数据阵列单元和所述第二数据阵列单元之间;
[0054]
所述第二行译码单元设置在所述第一ecc阵列单元和所述第二ecc阵列单元之间。
[0055]
根据本发明的阵列单元模块的一个优选实施方案,所述第一行译码单元设置在所述第一数据阵列单元和所述第一ecc阵列单元之间;
[0056]
所述第二行译码单元设置在所述第二数据阵列单元和所述第二ecc阵列单元之间。
[0057]
根据本发明的阵列单元模块的一个优选实施方案,所述第一行译码单元设置在所述第一ecc阵列单元和所述第二ecc阵列单元之间;
[0058]
所述第二行译码单元设置在所述第一数据阵列单元和所述第二数据阵列单元之间。
[0059]
根据本发明的阵列单元模块的一个优选实施方案,所述第一行译码单元设置在所述第二数据阵列单元和所述第二ecc阵列单元之间;
[0060]
所述第二行译码单元设置在所述第一数据阵列单元和所述第一ecc阵列单元之
间。
[0061]
根据本发明的第三方面,提供了一种存储器,所述存储器包括多个如上所述的阵列单元模块,多个阵列单元模块在列方向上依次堆叠。
[0062]
根据本发明的存储器的一个优选实施方案,在所述多个阵列单元模块的每个阵列单元模块中,被激活的第m个数据阵列单元所对应的ecc阵列单元还使用用于未被激活的一个或多个数据阵列单元的外围电路,或者被激活的第m个数据阵列单元还使用用于未被激活的一个或多个ecc阵列单元的外围电路;
[0063]
其中,所述外围电路包括以下任意一项或其组合:列译码模块、灵敏放大器、写驱动模块。
[0064]
根据本发明的第四方面,提供了一种用于存储器的存储方法,所述存储器包括n个数据阵列模块及l个ecc阵列模块,所述存储方法包括:
[0065]
第m个数据阵列模块及对应的ecc阵列模块被同时激活,其中所述对应的ecc阵列模块用于存储ecc码,所述ecc码是针对所述第m个数据阵列模块中存储的数据进行ecc编码所获得的校验码;
[0066]
被激活的第m个数据阵列模块所对应的ecc阵列模块使用用于未被激活的一个或多个数据阵列模块的外围电路,或者被激活的第m个数据阵列模块使用用于未被激活的一个或多个ecc阵列模块的外围电路;
[0067]
其中,n为大于等于2的正整数,m为小于等于n的正整数,l为小于等于n的正整数。
[0068]
根据本发明的存储方法的一个优选实施方案,所述存储方法还包括:
[0069]
所述被激活的第m个数据阵列模块所对应的ecc阵列模块与所述未被激活的一个或多个数据阵列模块在不同时间被激活时使用同一外围电路;或者
[0070]
所述被激活的第m个数据阵列模块与所述未被激活的一个或多个ecc阵列模块在不同时间被激活时使用同一外围电路;
[0071]
其中所述外围电路包括以下任意一项或其组合:行译码模块、列译码模块、灵敏放大器、写驱动模块。
[0072]
根据本发明的存储方法的一个优选实施方案,每一数据阵列模块包括多个数据阵列子模块,所述存储方法还包括:
[0073]
一个数据阵列模块的多个数据阵列子模块所对应的ecc阵列模块与另一个或另一些数据阵列模块的多个数据阵列子模块在不同时间被激活时使用同一外围电路;或者
[0074]
一个数据阵列模块的多个数据阵列子模块与另一个或另一些数据阵列模块的多个数据阵列子模块所对应的一个或多个ecc阵列模块在不同时间被激活时使用同一外围电路;
[0075]
其中,所述外围电路包括以下任意一项或其组合:行译码模块、列译码模块、灵敏放大器、写驱动模块。
[0076]
根据本发明的存储方法的一个优选实施方案,所述n个数据阵列模块至少包括:第一数据阵列模块和第二数据阵列模块;
[0077]
所述l个ecc阵列模块至少包括:与所述第一数据阵列模块对应的第一ecc阵列模块,所述第一ecc阵列模块用于存储第一ecc码,所述第一ecc码是针对所述第一数据阵列模块中存储的数据进行ecc编码所获得的校验码;以及,与所述第二数据阵列模块对应的第二
ecc阵列模块,所述第二ecc阵列模块用于存储第二ecc码,所述第二ecc码是针对所述第二数据阵列模块中存储的数据进行ecc编码所获得的校验码;
[0078]
所述存储方法还包括:
[0079]
所述第一数据阵列模块和所述第二数据阵列模块在不同时间被激活,且所述第一数据阵列模块及对应的第一ecc阵列模块被同时激活,所述第二数据阵列模块及对应的第二ecc阵列模块被同时激活;
[0080]
被激活的数据阵列模块所对应的ecc阵列模块使用用于未被激活的数据阵列模块的外围电路,或者被激活的数据阵列模块使用用于未被激活的ecc阵列模块的外围电路。
[0081]
根据本发明的存储方法的一个优选实施方案,所述存储方法还包括:
[0082]
所述第一数据阵列模块和所述第二ecc阵列模块在不同时间被激活时使用第一列译码模块,或者使用第一行译码模块,或者使用第一列译码模块和第一行译码模块二者;
[0083]
所述第二数据阵列模块和所述第一ecc阵列模块在不同时间被激活时使用第二列译码模块,或者使用第二行译码模块,或者使用第二列译码模块和第二行译码模块二者。
[0084]
根据本发明的存储方法的一个优选实施方案,所述存储方法还包括:
[0085]
所述第一数据阵列模块设置在所述第二ecc阵列模块和所述第一列译码模块之间。
[0086]
根据本发明的存储方法的一个优选实施方案,所述存储方法还包括:
[0087]
所述第二数据阵列模块设置在所述第一ecc阵列模块和所述第二列译码模块之间。
[0088]
根据本发明的存储方法的一个优选实施方案,所述存储方法还包括:
[0089]
所述第二ecc阵列模块设置在所述第一数据阵列模块和所述第一列译码模块之间。
[0090]
根据本发明的存储方法的一个优选实施方案,所述存储方法还包括:
[0091]
所述第一ecc阵列模块设置在所述第二数据阵列模块和所述第二列译码模块之间。
[0092]
根据本发明的存储方法的一个优选实施方案,所述存储方法还包括:
[0093]
所述第一数据阵列模块、所述第二数据阵列模块、所述第一ecc阵列模块和所述第二ecc阵列模块设置在所述第一行译码模块和所述第二行译码块之间。
[0094]
根据本发明的存储方法的一个优选实施方案,所述第一数据阵列模块包括多个数据阵列子模块,所述第二数据阵列模块包括多个数据阵列子模块;所述存储方法还包括:
[0095]
所述第一数据阵列模块的多个数据阵列子模块及第二ecc阵列模块在不同时间被激活时使用同一外围电路;以及
[0096]
所述第二数据阵列模块的多个数据阵列子模块及第一ecc阵列模块在不同时间被激活时使用同一外围电路;
[0097]
其中,所述外围电路包括以下任意一项或其组合:行译码模块、列译码模块、灵敏放大器、写驱动模块。
[0098]
根据本发明的存储方法的一个优选实施方案,所述第一数据阵列模块包括第一数据阵列子模块和第二数据阵列子模块,所述第二数据阵列模块包括第三数据阵列子模块和第四数据阵列子模块;所述存储方法还包括:
[0099]
所述第一数据阵列子模块、所述第二数据阵列子模块和所述第二ecc阵列模块在不同时间被激活时使用第一列译码模块,或者使用第一行译码模块,或者使用第一列译码模块和第一行译码模块;
[0100]
所述第三数据阵列子模块、所述第四数据阵列子模块和所述第一ecc阵列模块在不同时间被激活时使用第二列译码模块,或者使用第二行译码模块,或者使用第二列译码模块和第二行译码模块。
[0101]
根据本发明的存储方法的一个优选实施方案,所述存储方法还包括:
[0102]
所述第二ecc阵列模块设置在所述第一数据阵列子模块和所述第二数据阵列子模块之间,且所述第二数据阵列子模块设置在所述第二ecc阵列模块和所述第一列译码模块之间;
[0103]
所述第一ecc阵列模块设置在所述第三数据阵列子模块和所述第四数据阵列子模块之间,且所述第四数据阵列子模块设置在所述第一ecc阵列模块和所述第二列译码模块之间;
[0104]
所述第一数据阵列子模块、所述第二数据阵列子模块、所述第三数据阵列子模块、所述第四数据阵列子模块、所述第一ecc阵列模块和所述第二ecc阵列模块设置在所述第一行译码模块和所述第二行译码模块之间。
[0105]
根据本发明的第五方面,提供了一种用于阵列单元模块的存储方法,所述阵列单元模块包括n个数据阵列单元及l个ecc阵列单元;所述存储方法包括:
[0106]
第m个数据阵列单元及对应的ecc阵列单元被同时激活,其中所述对应的ecc阵列单元用于存储ecc码,所述ecc码是针对所述第m个数据阵列单元中存储的数据进行ecc编码所获得的校验码;
[0107]
被激活的第m个数据阵列单元所对应的ecc阵列单元使用用于未被激活的一个或多个数据阵列单元的行译码单元,或者被激活的第m个数据阵列单元使用用于未被激活的一个或多个ecc阵列单元的行译码单元;
[0108]
其中,根据所采用的ecc算法来确定每个数据阵列单元及对应的ecc阵列单元的总大小,且将所述总大小设置成等于所述ecc算法所需的数据位长度及所产生的校验位长度之和的k倍;
[0109]
其中,n为大于等于2的正整数,m为小于等于n的正整数,l为小于等于n的正整数,k为大于等于1的正整数。
[0110]
根据本发明的存储方法的一个优选实施方案,所述n个数据阵列单元至少包括:第一数据阵列单元和第二数据阵列单元;
[0111]
所述l个ecc阵列模块至少包括:与所述第一数据阵列单元对应的第一ecc阵列单元,所述第一ecc阵列单元用于存储第一ecc码,所述第一ecc码是针对所述第一数据阵列单元中所存储的数据进行ecc编码所获得的校验码;以及,与所述第二数据阵列单元对应的第二ecc阵列单元,所述第二ecc阵列单元用于存储第二ecc码,所述第二ecc码是针对所述第二数据阵列单元中所存储的数据进行ecc编码所获得的校验码;
[0112]
所述存储方法还包括:
[0113]
所述第一数据阵列单元和所述第二数据阵列单元在不同时间被激活,其中所述第一数据阵列单元及对应的第一ecc阵列单元被同时激活,且所述第二数据阵列单元及对应
的第二ecc阵列单元被同时激活;
[0114]
被激活的数据阵列单元所对应的ecc阵列单元使用用于未被激活的数据阵列单元的行译码单元,或者被激活的数据阵列单元使用用于未被激活的ecc阵列单元的行译码单元。
[0115]
根据本发明的存储方法的一个优选实施方案,所述存储方法还包括:
[0116]
所述第一数据阵列单元和所述第二ecc阵列单元在不同时间被激活时使用第一行译码单元;
[0117]
所述第二数据阵列单元和所述第一ecc阵列单元在不同时间被激活时使用第二行译码单元。
[0118]
根据本发明的存储方法的一个优选实施方案,所述存储方法还包括:
[0119]
所述第一行译码单元设置在所述第一数据阵列单元和所述第二数据阵列单元之间;
[0120]
所述第二行译码单元设置在所述第一ecc阵列单元和所述第二ecc阵列单元之间。
[0121]
根据本发明的存储方法的一个优选实施方案,所述存储方法还包括:
[0122]
所述第一行译码单元设置在所述第一数据阵列单元和所述第一ecc阵列单元之间;
[0123]
所述第二行译码单元设置在所述第二数据阵列单元和所述第二ecc阵列单元之间。
[0124]
根据本发明的存储方法的一个优选实施方案,所述存储方法还包括:
[0125]
所述第一行译码单元设置在所述第一ecc阵列单元和所述第二ecc阵列单元之间;
[0126]
所述第二行译码单元设置在所述第一数据阵列单元和所述第二数据阵列单元之间。
[0127]
根据本发明的存储方法的一个优选实施方案,所述存储方法还包括:
[0128]
所述第一行译码单元设置在所述第二数据阵列单元和所述第二ecc阵列单元之间;
[0129]
所述第二行译码单元设置在所述第一数据阵列单元和所述第一ecc阵列单元之间。
[0130]
根据本发明的第六方面,提供了一种构建存储器的方法,所述方法包括:将多个如上所述的阵列单元模块在列方向上依次堆叠,以获得所述存储器。
[0131]
根据本发明的构建方法的一个优选实施方案,所述方法还包括:
[0132]
在所述多个阵列单元模块的每个阵列单元模块中,被激活的第m个数据阵列单元所对应的ecc阵列单元还使用用于未被激活的一个或多个数据阵列单元的外围电路,或者被激活的第m个数据阵列单元还使用用于未被激活的一个或多个ecc阵列单元的外围电路;
[0133]
其中,所述外围电路包括以下任意一项或其组合:列译码模块、灵敏放大器、写驱动模块。
[0134]
根据本发明的第七方面,提供了一种电子设备,所述电子设备包括:
[0135]
至少一个根据本发明的第一方面所述的存储器;以及
[0136]
至少一个处理器,所述处理器与所述存储器连接,且所述处理器与所述存储器通过所述总线进行通信,所述处理器对所述存储器中数据进行处理。
[0137]
根据本发明的第八方面,提供了一种电子设备,所述电子设备包括:
[0138]
至少一个根据本发明的第三方面所述的存储器;以及
[0139]
至少一个处理器,所述处理器与所述存储器连接,且所述处理器与所述存储器通过所述总线进行通信,所述处理器对所述存储器中数据进行处理。
[0140]
根据本发明的第九方面,提供了一种电子设备,所述电子设备包括:
[0141]
至少一个存储器,在所述存储器上存储有计算机可执行指令;以及
[0142]
至少一个处理器,所述处理器与所述存储器连接,且所述处理器与所述存储器通过总线进行通信,当所述处理器执行所述计算机可执行指令时,所述计算机可执行指令使得所述处理器执行如上所述的根据本发明的第四方面的存储方法。
[0143]
根据本发明的第十方面,提供了一种电子设备,所述电子设备包括:
[0144]
至少一个存储器,在所述存储器上存储有计算机可执行指令;以及
[0145]
至少一个处理器,所述处理器与所述存储器连接,且所述处理器与所述存储器通过总线进行通信,当所述处理器执行所述计算机可执行指令时,所述计算机可执行指令使得所述处理器执行如上所述的根据第五方面的存储方法。
[0146]
根据本发明的第十一方面,提供了一种电子设备,所述电子设备包括:
[0147]
至少一个存储器,在所述存储器上存储有计算机可执行指令;以及
[0148]
至少一个处理器,所述处理器与所述存储器连接,且所述处理器与所述存储器通过总线进行通信,当所述处理器执行所述计算机可执行指令时,所述计算机可执行指令使得所述处理器执行如上所述的根据第六方面的构建存储器的方法。
附图说明
[0149]
通过下文结合对附图的说明,将更容易理解本发明,在附图中:
[0150]
图1示出了常见的不包含纠错码功能的存储器的核心结构。
[0151]
图2示出了一种已知的包含ecc功能的存储器的核心结构。
[0152]
图3至图8是根据本发明的存储器的多个实施方案的示意图。
[0153]
图9至图12是根据本发明的阵列单元模块的多个实施方案的示意图。
[0154]
图13是根据本发明的通过阵列单元模块所构建的存储器的一个实施方案的示意图。
[0155]
图14示出了用于存储器的存储方法的一个实施方案的流程图。
[0156]
图15示出了用于阵列单元模块的存储方法的一个实施方案的流程图。
具体实施方式
[0157]
下面将结合附图来对本发明的实施方案进行进一步详述。
[0158]
图3至图8是根据本发明的存储器的多个实施方案的示意图。
[0159]
图3中示出的存储器包括:两个数据阵列模块,即,第一数据阵列模块310和第二数据阵列模块320;以及,两个ecc阵列模块,即,第一ecc阵列模块330和第二ecc阵列模块340,其中第一ecc阵列模块330用于存储针对第一数据阵列模块310中存储的数据进行ecc编码所获得的校验码,第二ecc阵列模块340用于存储针对第二数据阵列模块320中存储的数据进行ecc编码所获得的校验码。应理解,本发明的存储器也可以包括多于两个的数据阵列模
块和多于两个的ecc阵列模块。
[0160]
在图3至图6和图8中,存储器包括相同数目的数据阵列模块和ecc阵列模块。然而,本发明的存储器也可以包括不同数目的数据阵列模块和ecc阵列模块,其中多个数据阵列模块可以复用一个ecc阵列模块。在本文中,“复用”指的是共同使用,可以是在同一时间共同使用,也可以是在不同时间共同使用。
[0161]
返回参看图3,图3示出了根据本发明的存储器的一个实施方案的示意图。在图3中,第一数据阵列模块310设置在第二ecc阵列模块340和第一列译码模块350之间,第二数据阵列模320设置在第一ecc阵列模块330和第二列译码模块360之间。第一数据阵列模块310和对应的第一ecc阵列模块330被同时激活,第二数据阵列模块320和对应的第二ecc阵列模块340被同时激活。
[0162]
当第一数据阵列模块310和对应的第一ecc阵列模块330被同时激活时,第一数据阵列模块310使用第一列译码模块350,第一ecc阵列模块330使用第二列译码模块360。
[0163]
当第二数据阵列模块320和对应的第二ecc阵列模块340被同时激活时,第二数据阵列模块320使用第二列译码模块360,第二ecc阵列模块340使用第一列译码模块350。
[0164]
因此,第一数据阵列模块310和第二ecc阵列模块340在不同时间被激活时复用第一列译码模块350,第二数据阵列模块320和第一ecc阵列模块330在不同时间被激活时复用第二列译码模块360。
[0165]
当第一列译码模块350是专门设置用于第一数据阵列模块310且能够满足第二ecc阵列模块340对于列译码模块的需求时,称为第二ecc阵列模块340使用用于第一数据阵列模块310的第一列译码模块350;当第一列译码模块350是专门设置用于第二ecc阵列模块340且能够满足第一数据阵列模块310对于列译码模块的需求时,称为第一数据阵列模块310使用用于第二ecc阵列模块340的第一列译码模块350。
[0166]
同理,当第二列译码模块360是专门设置用于第二数据阵列模块320且能够满足第一ecc阵列模块330对于列译码模块的需求时,称为第一ecc阵列模块330使用用于第二数据阵列模块320的第二列译码模块360;当第二列译码模块360是专门设置用于第一ecc阵列模块330且能够满足第二数据阵列模块320对于列译码模块的需求时,称为第二数据阵列模块320使用用于第一ecc阵列模块330的第二列译码模块360。
[0167]
另外,也可以看到,在图3中,存储器在复用第一列译码模块350和第二列译码模块360的同时,也复用了相应的灵敏放大器和写驱动模块。
[0168]
图4示出了根据本发明的存储器的另一实施方案的示意图。在图4中,第二ecc阵列模块440设置在第一数据阵列模块410和第一列译码模块450之间,第一ecc阵列模块430设置在第二数据阵列模420和第二列译码模块460之间。第一数据阵列模块410和对应的第一ecc阵列模块430被同时激活,第二数据阵列模块420和对应的第二ecc阵列模块440被同时激活。
[0169]
当第一数据阵列模块410和对应的第一ecc阵列模块430被同时激活时,第一数据阵列模块410使用第一列译码模块450,第一ecc阵列模块430使用第二列译码模块460。
[0170]
当第二数据阵列模块420和对应的第二ecc阵列模块440被同时激活时,第二数据阵列模块420使用第二列译码模块460,第二ecc阵列模块440使用第一列译码模块450。
[0171]
因此,第一数据阵列模块410和第二ecc阵列模块440在不同时间被激活时复用第
一列译码模块450,第二数据阵列模块420和第一ecc阵列模块430在不同时间被激活时复用第二列译码模块460。
[0172]
当第一列译码模块450是专门设置用于第一数据阵列模块410且能够满足第二ecc阵列模块440对于列译码模块的需求时,称为第二ecc阵列模块440使用用于第一数据阵列模块410的第一列译码模块450;当第一列译码模块450是专门设置用于第二ecc阵列模块440且能够满足第一数据阵列模块410对于列译码模块的需求时,称为第一数据阵列模块410使用用于第二ecc阵列模块440的第一列译码模块450。
[0173]
同理,当第二列译码模块460是专门设置用于第二数据阵列模块420且能够满足第一ecc阵列模块430对于列译码模块的需求时,称为第一ecc阵列模块430使用用于第二数据阵列模块420的第二列译码模块460;当第二列译码模块460是专门设置用于第一ecc阵列模块430且能够满足第二数据阵列模块420对于列译码模块的需求时,称为第二数据阵列模块420使用用于第一ecc阵列模块430的第二列译码模块460。
[0174]
另外,也可以看到,在图4中,存储器在复用第一列译码模块450和第二列译码模块460的同时,也复用了相应的灵敏放大器和写驱动模块。
[0175]
图5示出了根据本发明的存储器的另一实施方案的示意图。在图5中,第一数据阵列模块510设置在第二ecc阵列模块540和第一列译码模块550之间,第一ecc阵列模块530设置在第二数据阵列模520和第二列译码模块560之间。第一数据阵列模块510和对应的第一ecc阵列模块530被同时激活,第二数据阵列模块520和对应的第二ecc阵列模块540被同时激活。
[0176]
当第一数据阵列模块510和对应的第一ecc阵列模块530被同时激活时,第一数据阵列模块510使用第一列译码模块550,第一ecc阵列模块530使用第二列译码模块560。
[0177]
当第二数据阵列模块520和对应的第二ecc阵列模块540被同时激活时,第二数据阵列模块520使用第二列译码模块560,第二ecc阵列模块540使用第一列译码模块550。
[0178]
因此,第一数据阵列模块510和第二ecc阵列模块540在不同时间被激活时复用第一列译码模块550,第二数据阵列模块520和第一ecc阵列模块530在不同时间被激活时复用第二列译码模块560。
[0179]
当第一列译码模块550是专门设置用于第一数据阵列模块510且能够满足第二ecc阵列模块540对于列译码模块的需求时,称为第二ecc阵列模块540使用用于第一数据阵列模块510的第一列译码模块550;当第一列译码模块550是专门设置用于第二ecc阵列模块540且能够满足第一数据阵列模块510对于列译码模块的需求时,称为第一数据阵列模块510使用用于第二ecc阵列模块540的第一列译码模块550。
[0180]
同理,当第二列译码模块560是专门设置用于第二数据阵列模块520且能够满足第一ecc阵列模块530对于列译码模块的需求时,称为第一ecc阵列模块530使用用于第二数据阵列模块520的第二列译码模块560;当第二列译码模块560是专门设置用于第一ecc阵列模块530且能够满足第二数据阵列模块520对于列译码模块的需求时,称为第二数据阵列模块520使用用于第一ecc阵列模块530的第二列译码模块560。
[0181]
另外,也可以看到,在图5中,存储器在复用第一列译码模块550和第二列译码模块560的同时,也复用了相应的灵敏放大器和写驱动模块。
[0182]
图6示出了根据本发明的存储器的另一实施方案的示意图。在图6中,第二ecc阵列
模块640设置在第一数据阵列模块610和第一列译码模块650之间,第二数据阵列模620设置在第一ecc阵列模块630和第二列译码模块660之间。第一数据阵列模块610和对应的第一ecc阵列模块630被同时激活,第二数据阵列模块620和对应的第二ecc阵列模块640被同时激活。
[0183]
当第一数据阵列模块610和对应的第一ecc阵列模块630被同时激活时,第一数据阵列模块610使用第一列译码模块650,第一ecc阵列模块630使用第二列译码模块660。
[0184]
当第二数据阵列模块620和对应的第二ecc阵列模块640被同时激活时,第二数据阵列模块620使用第二列译码模块660,第二ecc阵列模块640使用第一列译码模块650。
[0185]
因此,第一数据阵列模块610和第二ecc阵列模块640在不同时间被激活时复用第一列译码模块650,第二数据阵列模块620和第一ecc阵列模块630在不同时间被激活时复用第二列译码模块660。
[0186]
当第一列译码模块650是专门设置用于第一数据阵列模块610且能够满足第二ecc阵列模块640对于列译码模块的需求时,称为第二ecc阵列模块640使用用于第一数据阵列模块610的第一列译码模块650;当第一列译码模块650是专门设置用于第二ecc阵列模块640且能够满足第一数据阵列模块610对于列译码模块的需求时,称为第一数据阵列模块610使用用于第二ecc阵列模块640的第一列译码模块650。
[0187]
同理,当第二列译码模块660是专门设置用于第二数据阵列模块620且能够满足第一ecc阵列模块630对于列译码模块的需求时,称为第一ecc阵列模块630使用用于第二数据阵列模块620的第二列译码模块660;当第二列译码模块660是专门设置用于第一ecc阵列模块630且能够满足第二数据阵列模块620对于列译码模块的需求时,称为第二数据阵列模块620使用用于第一ecc阵列模块630的第二列译码模块660。
[0188]
另外,也可以看到,在图5中,存储器在复用第一列译码模块650和第二列译码模块660的同时,也复用了相应的灵敏放大器和写驱动模块。
[0189]
图7示出了根据本发明的存储器的另一实施方案的示意图。在图7中,第一数据阵列模块包括第一数据阵列子模块7101和第二数据阵列子模块7102,第二数据阵列模块包括第三数据阵列子模块7201和第四数据阵列子模块7202。
[0190]
为了更清楚地解释本发明,图7中仅示出了每个数据阵列模块包括两个数据阵列子模块。应理解,图7中仅是示意性的,本发明的存储器的每个数据阵列模块也可以包括多于两个的数据阵列子模块。
[0191]
在图7中,第二ecc阵列模块740设置在第一数据阵列子模块7101和第二数据阵列子模块7102之间,第二数据阵列子模块7102设置在第二ecc阵列模块740和第一列译码模块750之间。第一ecc阵列模块730设置在第三数据阵列子模块7201和第四数据阵列子模块7202之间,第四数据阵列子模块7202设置在第一ecc阵列模块730和第二列译码模块760之间。第一数据阵列子模块7101和第二数据阵列子模块7102以及对应的第一ecc阵列模块730被同时激活,第三数据阵列子模块7201和第四数据阵列子模块7202以及对应的第二ecc阵列模块740被同时激活。
[0192]
当第一数据阵列子模块7101和第二数据阵列子模块7102以及对应的第一ecc阵列模块730被同时激活时,第一数据阵列子模块7101和第二数据阵列子模块7102使用第一列译码模块750,第一ecc阵列模块730使用第二列译码模块760。
[0193]
当第三数据阵列子模块7201和第四数据阵列子模块7202以及对应的第二ecc阵列模块740时,第三数据阵列子模块7201和第四数据阵列子模块7202使用第二列译码模块760,第二ecc阵列模块740使用第一列译码模块750。
[0194]
因此,第一数据阵列子模块7101和第二数据阵列子模块7102以及第二ecc阵列模块740在不同时间被激活时复用第一列译码模块750,第三数据阵列子模块7201和第四数据阵列子模块7202以及第一ecc阵列模块730在不同时间被激活时复用第二列译码模块760。
[0195]
当第一列译码模块750是专门设置用于第一数据阵列子模块7101和第二数据阵列子模块7102且能够满足第二ecc阵列模块740对于列译码模块的需求时,称为第二ecc阵列模块740使用用于第一数据阵列子模块7101和第二数据阵列子模块7102的第一列译码模块650;当第一列译码模块750是专门设置用于第二ecc阵列模块740且能够满足第一数据阵列子模块7101和第二数据阵列子模块7102对于列译码模块的需求时,称为第一数据阵列子模块7101和第二数据阵列子模块7102使用用于第二ecc阵列模块740的第一列译码模块750。
[0196]
同理,当第二列译码模块760是专门设置用于第三数据阵列子模块7201和第四数据阵列子模块7202且能够满足第一ecc阵列模块730对于列译码模块的需求时,称为第一ecc阵列模块730使用用于第三数据阵列子模块7201和第四数据阵列子模块7202的第二列译码模块760;当第二列译码模块760是专门设置用于第一ecc阵列模块730且能够满足第三数据阵列子模块7201和第四数据阵列子模块7202对于列译码模块的需求时,称为第三数据阵列子模块7201和第四数据阵列子模块7202使用用于第一ecc阵列模块730的第二列译码模块760。
[0197]
另外,也可以看到,在图7中,存储器在复用第一列译码模块750和第二列译码模块760的同时,也复用了相应的灵敏放大器和写驱动模块。
[0198]
应理解,图7中事实上也示出了数据阵列子模块复用对应的ecc阵列的一种情形(数据阵列子模块在同一时间共同使用对应的ecc阵列)。在图7中,第一数据阵列子模块7101和第二数据阵列子模块7102复用第一ecc阵列模块730,第三数据阵列子模块7201和第四数据阵列子模块7202复用第二ecc阵列模块740。
[0199]
图3至图7中示出的是存储器复用列译码器以及相应的灵敏放大器和写驱动模块的情形,并且这些模块之间的布置仅是示意性的。本领域技术人员在阅读本申请之后,能够对这些布置进行改型,只要能够满足被激活的数据阵列模块或ecc阵列模块能够复用未被激活的数据阵列模块或ecc阵列模块这一条件,都应落入本发明的范围内。
[0200]
图8示出了根据本发明的存储器的另一实施方案的示意图,其中对于行译码器进行了复用。
[0201]
在图3至图7中示出的实施方案中,ecc阵列模块和数据阵列模块共享了列译码模块、灵敏放大器以及写驱动模块,但不同的ecc阵列模块和数据阵列模块具有其相对应的行译码模块。针对图3,如当第一数据阵列模块310以及对应的第一ecc阵列模块330被激活时,它们所对应的行译码模块被激活,而第二数据阵列模块320以及对应的第二ecc阵列模块340未被激活。图8对这一技术方案进行了改进,对行译码模块也进行了共享。
[0202]
在图8中,第一数据阵列模块810和第二ecc阵列模块840在不同时间被激活时,复用第一行译码器870和第一列译码器850以及相应的灵敏放大器和写驱动模块。第二数据阵列模块820和第一ecc阵列模块830在不同时间被激活时,复用第二行译码器880和第二列译
码器860以及相应的灵敏放大器和写驱动模块。
[0203]
在图8中,除了第一行译码器870和第二列译码器880,其余模块的布置均与图3中相同。应理解,本领域技术人员在阅读本申请之后,也可以对图4至图7中所示出的布置进行行译码器的复用。
[0204]
由于在进行行译码复用时,行译码模块与数据阵列模块以及ecc阵列模块之间的连线可能会比较困难。为此,本发明引入了最小尺寸的阵列单元模块。所述阵列单元模块的具体大小由具体的ecc算法决定。
[0205]
图9至图12示出了根据本发明的阵列单元模块的多个实施方案的示意图。
[0206]
图9中示出的阵列单元模块包括:两个数据阵列单元,即,第一数据阵列单元910和第二数据阵列单元920;以及,两个ecc阵列单元,即,第一ecc阵列单元930和第二ecc阵列单元940,其中第一ecc阵列单元930用于存储针对第一数据阵列单元910中存储的数据进行ecc编码所获得的校验码,第二ecc阵列单元940用于存储针对第二数据阵列单元920中存储的数据进行ecc编码所获得的校验码。应理解,本发明的阵列单元模块也可以包括多于两个的数据阵列单元和多于两个的ecc阵列单元。
[0207]
在图9至图12中,阵列单元模块包括相同数目的数据阵列单元和ecc阵列单元。然而,本发明的阵列单元模块也可以包括不同数目的数据阵列单元和ecc阵列单元,其中多个数据阵列单元可以复用一个ecc阵列单元。
[0208]
返回参看图9,图9示出了根据本发明的阵列单元模块的一个实施方案的示意图。在图9中,第一行译码单元970设置在第一数据阵列单元910和第二数据阵列单元920之间,第二行译码单元980设置在第一ecc阵列单元930和第二ecc阵列单元940之间。
[0209]
第一数据阵列单元910和对应的第一ecc阵列单元930被同时激活。此时,第一数据阵列单元910使用第一行译码单元970,第一ecc阵列单元930使用第二行译码单元980。第二数据阵列单元920和对应的第二ecc阵列单元940被同时激活。此时,第二数据阵列单元920使用第二行译码单元980,第二ecc阵列单元940使用第一行译码单元970。因此,第一数据阵列单元910和第二ecc阵列单元940在不同时间被激活时复用第一行译码单元970,第二数据阵列单元920和第一ecc阵列单元930在不同时间被激活时复用第二行译码单元980。
[0210]
如同上面关于图3至图8中所描述的,当第一行译码单元970是专门设置用于第一数据阵列单元910且能够满足第二ecc阵列单元940对于行译码单元的需求时,称为第二ecc阵列单元940使用用于第一数据阵列单元910的第一行译码单元970;当第一行译码单元970是专门设置用于第二ecc阵列单元940且能够满足第一数据阵列单元910对于行译码单元的需求时,称为第一数据阵列单元910使用用于第二ecc阵列单元940的第一行译码单元970。
[0211]
同理,当第二行译码单元980是专门设置用于第二数据阵列单元920且能够满足第一ecc阵列单元930对于行译码单元的需求时,称为第一ecc阵列单元930使用用于第二数据阵列单元920的第二行译码单元980;当第二行译码单元980是专门设置用于第一ecc阵列单元930且能够满足第二数据阵列单元920对于行译码单元的需求时,称为第二数据阵列单元920使用用于第一ecc阵列单元930的第二行译码单元980。
[0212]
图10示出了根据本发明的阵列单元模块的另一实施方案的示意图。在图10中,第一行译码单元1070设置在第一数据阵列单元1010和第一ecc阵列单元1030之间,第二行译码单元1080设置在第二数据阵列单元1020和第二ecc阵列单元1040之间。
[0213]
第一数据阵列单元1010和对应的第一ecc阵列单元1030被同时激活。此时,第一数据阵列单元1010使用第一行译码单元1070,第一ecc阵列单元1030使用第二行译码单元1080。第二数据阵列单元1020和对应的第二ecc阵列单元1040被同时激活。此时,第二数据阵列单元1020使用第二行译码单元1080,第二ecc阵列单元1040使用第一行译码单元1070。因此,第一数据阵列单元1010和第二ecc阵列单元1040在不同时间被激活时复用第一行译码单元1070,第二数据阵列单元1020和第一ecc阵列单元1030在不同时间被激活时复用第二行译码单元1080。
[0214]
如同上面关于图3至图8中所描述的,当第一行译码单元1070是专门设置用于第一数据阵列单元1010且能够满足第二ecc阵列单元1040对于行译码单元的需求时,称为第二ecc阵列单元1040使用用于第一数据阵列单元1010的第一行译码单元1070;当第一行译码单元1070是专门设置用于第二ecc阵列单元1040且能够满足第一数据阵列单元1010对于行译码单元的需求时,称为第一数据阵列单元1010使用用于第二ecc阵列单元1040的第一行译码单元1070。
[0215]
同理,当第二行译码单元1080是专门设置用于第二数据阵列单元1020且能够满足第一ecc阵列单元1030对于行译码单元的需求时,称为第一ecc阵列单元1030使用用于第二数据阵列单元1020的第二行译码单元1080;当第二行译码单元1080是专门设置用于第一ecc阵列单元1030且能够满足第二数据阵列单元1020对于行译码单元的需求时,称为第二数据阵列单元1020使用用于第一ecc阵列单元1030的第二行译码单元1080。
[0216]
图11示出了根据本发明的阵列单元模块的另一实施方案的示意图。在图11中,第一行译码单元1170设置在第一ecc阵列单元1130和第二ecc阵列单元1140之间,第二行译码单元1180设置在第一数据阵列单元1110和第二数据阵列单元1120之间。
[0217]
第一数据阵列单元1110和对应的第一ecc阵列单元1130被同时激活。此时,第一数据阵列单元1110使用第一行译码单元1170,第一ecc阵列单元1130使用第二行译码单元1180。第二数据阵列单元1120和对应的第二ecc阵列单元1140被同时激活。此时,第二数据阵列单元1120使用第二行译码单元1180,第二ecc阵列单元1140使用第一行译码单元1170。因此,第一数据阵列单元1110和第二ecc阵列单元1140在不同时间被激活时复用第一行译码单元1170,第二数据阵列单元1120和第一ecc阵列单元1130在不同时间被激活时复用第二行译码单元1180。
[0218]
如同上面关于图3至图8中所描述的,当第一行译码单元1170是专门设置用于第一数据阵列单元1110且能够满足第二ecc阵列单元1140对于行译码单元的需求时,称为第二ecc阵列单元1140使用用于第一数据阵列单元1110的第一行译码单元1170;当第一行译码单元1170是专门设置用于第二ecc阵列单元1140且能够满足第一数据阵列单元1110对于行译码单元的需求时,称为第一数据阵列单元1110使用用于第二ecc阵列单元1140的第一行译码单元1170。
[0219]
同理,当第二行译码单元1180是专门设置用于第二数据阵列单元1120且能够满足第一ecc阵列单元1130对于行译码单元的需求时,称为第一ecc阵列单元1130使用用于第二数据阵列单元1120的第二行译码单元1180;当第二行译码单元1180是专门设置用于第一ecc阵列单元1130且能够满足第二数据阵列单元1120对于行译码单元的需求时,称为第二数据阵列单元1120使用用于第一ecc阵列单元1130的第二行译码单元1180。
[0220]
图12示出了根据本发明的阵列单元模块的另一实施方案的示意图。在图12中,第一行译码单元1270设置在第二数据阵列单元1220和第二ecc阵列单元1240之间,第二行译码单元1280设置在第一数据阵列单元1210和第一ecc阵列单元1230之间。
[0221]
第一数据阵列单元1210和对应的第一ecc阵列单元1230被同时激活。此时,第一数据阵列单元1210使用第一行译码单元1270,第一ecc阵列单元1230使用第二行译码单元1280。第二数据阵列单元1220和对应的第二ecc阵列单元1240被同时激活。此时,第二数据阵列单元1220使用第二行译码单元1280,第二ecc阵列单元1240使用第一行译码单元1270。因此,第一数据阵列单元1210和第二ecc阵列单元1240在不同时间被激活时复用第一行译码单元1270,第二数据阵列单元1220和第一ecc阵列单元1230在不同时间被激活时复用第二行译码单元1280。
[0222]
如同上面关于图3至图8中所描述的,当第一行译码单元1270是专门设置用于第一数据阵列单元1210且能够满足第二ecc阵列单元1240对于行译码单元的需求时,称为第二ecc阵列单元1240使用用于第一数据阵列单元1210的第一行译码单元1270;当第一行译码单元1270是专门设置用于第二ecc阵列单元1240且能够满足第一数据阵列单元1210对于行译码单元的需求时,称为第一数据阵列单元1210使用用于第二ecc阵列单元1240的第一行译码单元1270。
[0223]
同理,当第二行译码单元1280是专门设置用于第二数据阵列单元1220且能够满足第一ecc阵列单元1230对于行译码单元的需求时,称为第一ecc阵列单元1230使用用于第二数据阵列单元1220的第二行译码单元1280;当第二行译码单元1280是专门设置用于第一ecc阵列单元1230且能够满足第二数据阵列单元1220对于行译码单元的需求时,称为第二数据阵列单元1220使用用于第一ecc阵列单元1230的第二行译码单元1280。
[0224]
在图9至图12中,第一数据阵列单元和对应的第一ecc阵列单元(或者第二数据阵列单元和对应的第二ecc阵列单元)的总大小是根据所采用的ecc算法来确定的,且总大小等于所述ecc算法所需的数据位长度及所产生的校验位长度之和的整数倍。例如,针对常见的汉明码(72,64),其中数据位为64位,校验位为8位。第一数据阵列单元和对应的第一ecc阵列单元(或者第二数据阵列单元和对应的第二ecc阵列单元)的总大小可以是72或者144或者216等72的整数倍。
[0225]
图13是根据本发明的通过阵列单元模块所构建的存储器的一个实施方案的示意图。
[0226]
图13中所示出的阵列单元模块1301是如图9至图12中所示出的任一项的阵列单元模块。这些阵列单元模块可以相同,也可以不同。通过将这些阵列单元模块在列方向上依次堆叠,实现了对于行译码单元、列译码模块、灵敏放大器、写驱动模块的复用。
[0227]
如图3至图13中所例示的实施方案,能够节约存储器的面积。再次以常见的汉明码(72,64)为例,其中数据位为64位,校验位为8位。本发明的实施方案可以节约近似11.11%(8/72)的列译码模块、灵敏放大器、写驱动模块、行译码模块的面积。对于整个芯片来说,所能够节约的面积取决于此部分电路在整个芯片中所占的比例。
[0228]
图14示出了存储器的存储方法的一个实施方案的流程图。
[0229]
图14中所涉及的存储器是上面所描述的任意一种存储器,所述存储器包括n个数据阵列模块及l个ecc阵列模块,其中n为大于等于2的正整数,l为小于等于n的正整数。所述
存储方法包括如下步骤:
[0230]
步骤1401:第m个数据阵列模块及对应的ecc阵列模块被同时激活,其中所述对应的ecc阵列模块用于存储ecc码,所述ecc码是针对所述第m个数据阵列模块中存储的数据进行ecc编码所获得的校验码,其中m为小于等于n的正整数。
[0231]
步骤1402:被激活的第m个数据阵列模块所对应的ecc阵列模块使用用于未被激活的一个或多个数据阵列模块的外围电路,或者被激活的第m个数据阵列模块使用用于未被激活的一个或多个ecc阵列模块的外围电路。
[0232]
图15示出了用于阵列单元模块的存储方法的一个实施方案的流程图。
[0233]
图15中所涉及的阵列单元模块是上面所描述的任意一种阵列单元模块,所述阵列单元模块包括n个数据阵列单元及l个ecc阵列单元,其中n为大于等于2的正整数,l为小于等于n的正整数。所述存储方法包括如下步骤:
[0234]
步骤1501:第m个数据阵列单元及对应的ecc阵列单元被同时激活,其中所述对应的ecc阵列单元用于存储ecc码,所述ecc码是针对所述第m个数据阵列单元中存储的数据进行ecc编码所获得的校验码,其中m为小于等于n的正整数。
[0235]
步骤1502:被激活的第m个数据阵列单元所对应的ecc阵列单元使用用于未被激活的一个或多个数据阵列单元的行译码单元,或者被激活的第m个数据阵列单元使用用于未被激活的一个或多个ecc阵列单元的行译码单元。
[0236]
在所述存储方法中,根据所采用的ecc算法来确定每个数据阵列单元及对应的ecc阵列单元的总大小,且将所述总大小设置成等于所述ecc算法所需的数据位长度及所产生的校验位长度之和的k倍,其中k为大于等于1的正整数。
[0237]
本发明中所提出的存储器是存储芯片(例如,rom、sdram、ram、dram、sram、flash、eprom、eeprom、cd-rom或其他光盘存储装置、磁盘存储装置或其他磁性存储装置),以用于存储数据和/或计算机代码。存储器可以是或包括非瞬态易失性存储器或非易失性存储器等。
[0238]
应注意,上文所提及的实施方案例示而非限制本发明,且在不脱离所附权利要求的范围的前提下,本领域技术人员将能够设计许多替代实施方案。应理解,本发明的范围由权利要求限定。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1