CN110968455B - 一种非易失性存储器的修复方法及装置 - Google Patents
一种非易失性存储器的修复方法及装置 Download PDFInfo
- Publication number
- CN110968455B CN110968455B CN201811148673.6A CN201811148673A CN110968455B CN 110968455 B CN110968455 B CN 110968455B CN 201811148673 A CN201811148673 A CN 201811148673A CN 110968455 B CN110968455 B CN 110968455B
- Authority
- CN
- China
- Prior art keywords
- repair
- storage unit
- data
- address
- data area
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000015654 memory Effects 0.000 title claims abstract description 310
- 238000000034 method Methods 0.000 title claims abstract description 38
- 230000008439 repair process Effects 0.000 claims abstract description 456
- 238000013507 mapping Methods 0.000 claims abstract description 19
- 230000004044 response Effects 0.000 claims description 25
- 238000012545 processing Methods 0.000 claims description 4
- 230000002950 deficient Effects 0.000 description 36
- 238000013500 data storage Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 10
- 238000004519 manufacturing process Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000003252 repetitive effect Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000002035 prolonged effect Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1438—Restarting or rejuvenating
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/44—Indication or identification of errors, e.g. for repair
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/76—Masking faults in memories by using spares or by reconfiguring using address translation or modifications
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明的实施方式提供了一种非易失性存储器的修复方法及装置,方法包括:将多个存储单元中的故障存储单元映射到修复存储单元;将修复控制器电连接至修复存储单元,并在上电初始化时将固化于修复存储单元的第一数据存入第一数据区,以及将待写入修复存储单元的第二数据存入第二数据区,并将第二数据区的第二数据写回至修复存储单元。保证了从修复空间中读取的数据不会再次写回修复存储单元的数据,进一步提高了存储器的良率。
Description
技术领域
本发明涉及存储器领域,具体涉及一种非易失性存储器的修复方法及装置。
背景技术
本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
非易失性存储器在制造过程中不可避免的存在坏点,使得良品率降低,进一步增加了芯片设计开发成本。因此在芯片出厂测试过程中,通常采用预置的冗余存储单元替换已检测到的故障存储单元,在外部访问错误地址时,自动对照和映射地址,从而完成修复的目的。实现对相应冗余存储空间的访问,以替换原先的缺陷空间。
现有技术中,在上电初始化阶段,会将修复空间的数据读入内存以启动CPU,而当CPU启动后,向修复空间新写入数据时,系统会将内存中的所有数据一并写回非易失性存储器的修复存储空间中,并不区分新写入的数据与已经固化在修复空间中的数据,这样会导致从非易失性存储器的修复空间中读出的数据重新烧写回该存储器的同一地址的相同位,而针对任一bit存储空间而言,每一次进行编程操作都会施加一次编程高压,进一步对该bit存储空间造成损伤,导致非易失性存储器的寿命降低。
具体地,假设非易失性存储器的修复存储空间的某一地址内已经存储有数据A(0101_0101),那么,在上电初始化阶段,该数据A(0101_0101)会被读取至系统内存,以供CPU启动使用,CPU启动后,若开发人员想要向该地址继续写入数据B(0000_0010)时,则会首先将数据写入内存中,与原有的数据A组合成为数据C(0101_0111),而后将内存中的数据C整体写回非易失性存储器的指定地址。其中,上述写入数据均为二进制表达形式,也即直接对一指定的比特位执行写操作。
特别地,当该非易失性存储器为OTP存储器(One Time Programmable,一次性可编程存储器),上述存在的问题尤为重要。由于OTP存储器的每位信息都是一次性写入,不可重写,因此开发者在对OTP存储器内存储的数据进行修改时,必然会采取上述对选定的比特位进行编程的方式对数据进行有计划的改写。值得注意的是,上述继续写入以修改数据步骤中并不尝试从逻辑“1”到逻辑“0”来复位存储器的任何位,因为这种改变是不可能的。
发明内容
针对现有技术中存在的向非易失性存储器的修复空间写入数据时,并不区分新写入的数据与从修复空间中读取的数据,导致从非易失性存储器的修复空间中读出的数据重新烧写回该存储器的同一地址的相同位,进而造成存储器寿命降低的问题。本发明的实施例提出一种非易失性存储器的修复方法及装置,用于解决现有技术中存在的上述问题。
依据本发明的第一方面,提出一种非易失性存储器的修复方法,所述非易失性存储器至少包括具有多个存储单元的主存储阵列,其中,其特征在于,所述修复方法包括:
将所述多个存储单元中的故障存储单元映射到修复存储单元;
将修复控制器电连接至所述修复存储单元,所述修复控制器在上电初始化时将固化于所述修复存储单元的第一数据存入第一数据区;以及将待写入所述修复存储单元的第二数据存入第二数据区,并将所述第二数据区的第二数据写回至修复存储单元。
在一种实施方式中,其中,将所述多个存储单元中的故障存储单元映射到修复存储单元进一步包括:
通过将所述故障存储单元的地址存储至所述修复存储单元以建立所述故障存储单元与所述修复存储单元之间的对应关系。
在一种实施方式中,其中,所述修复控制器进一步包括多个寄存器,其中,
所述多个寄存器与所述修复存储单元一一对应,所述修复存储单元与所述故障存储单元一一对应,以及每个所述寄存器中具有相互独立的所述第一数据区与所述第二数据区。
在一种实施方式中,其中,每个所述寄存器进一步包括地址存储区,用于存储从所述修复存储单元获取的所述故障存储单元的地址;并且,
所述修复控制器还用于:
响应于上电初始化信号,从所述修复存储单元读取所存储的所述故障存储单元的地址并写入对应的寄存器的地址存储区;以及
响应于对所述故障存储单元的访问请求,通过比较所述访问请求中的访问地址与存储于所述地址存储区中的地址以确定与所述故障存储单元对应的修复存储单元和寄存器。
在一种实施方式中,其中,所述修复控制器在上电初始化时将固化在所述修复存储单元的第一数据存入第一数据区;以及将待写入所述修复存储单元的第二数据存入第二数据区,并将所述第二数据区的第二数据写回至修复存储单元具体包括:
响应于所述上电初始化信号,所述修复控制器将固化在所述修复存储单元的所述第一数据存入与所述修复存储单元对应的寄存器的所述第一数据区;
响应于针对指定故障存储单元的写入请求,所述修复控制器将所述写入请求对应的外部输入的第二数据存入与指定故障存储单元对应的寄存器的第二数据区,并将所述第二数据区的第二数据写回至与所述对应寄存器相对应的修复存储单元。
在一种实施方式中,其中,所述通过将所述故障存储单元的地址存储至所述修复存储单元以建立所述故障存储单元与所述修复存储单元之间的对应关系之后,所述方法还包括:
通过添加至少占据2bit存储空间的修复标识以表示所述修复存储单元的占用。
在一种实施方式中,其中,所述方法还包括通过基于所述多个寄存器的查找表模块以执行:
响应于针对指定故障存储单元的访问请求,所述查找表模块通过在所述地址存储区快速查找所述指定故障存储单元的地址以找到所述指定故障存储单元所对应的所述第一数据区以及所述第二数据区;以及根据所述访问请求从所述第一数据区读取数据或向所述第二数据写入数据。
在一种实施方式中,其中,所述非易失性存储器为一次性可编程存储器。
依据本发明的第二方面,提出一种非易失性存储器的修复装置,其中,其特征在于,所述修复装置包括:
具有多个存储单元的主存储阵列;
修复存储单元,用于将所述多个存储单元中的故障存储单元映射到所述修复存储单元;
电连接至所述修复存储单元的修复控制器,所述修复控制器在上电初始化时将固化在所述修复存储单元的第一数据存入第一数据区;以及将待写入所述修复存储单元的第二数据存入第二数据区,并将所述第二数据区的第二数据写回至修复存储单元。
在一种实施方式中,其中,将所述多个存储单元中的故障存储单元映射到修复存储单元进一步包括:
通过将所述故障存储单元的地址存储至所述修复存储单元以建立所述故障存储单元与所述修复存储单元之间的对应关系。
在一种实施方式中,其中,所述修复控制器进一步包括多个寄存器,其中,
所述多个寄存器与所述修复存储单元一一对应,所述修复存储单元与所述故障存储单元一一对应,以及每个所述寄存器中具有相互独立的所述第一数据区与所述第二数据区。
在一种实施方式中,其中,每个所述寄存器进一步包括地址存储区,用于存储从所述修复存储单元获取的所述故障存储单元的地址;并且,
所述修复控制器还用于:
响应于上电初始化信号,从所述修复存储单元读取所存储的所述故障存储单元的地址并写入对应的寄存器的地址存储区;以及
响应于对所述故障存储单元的访问请求,通过比较所述访问请求中的访问地址与存储于所述地址存储区中的地址以确定与所述故障存储单元对应的修复存储单元和寄存器。
在一种实施方式中,其中,所述修复控制器在上电初始化时将固化在所述修复存储单元的第一数据存入第一数据区;以及将待写入所述修复存储单元的第二数据存入第二数据区,并将所述第二数据区的第二数据写回至修复存储单元进一步包括:
响应于所述上电初始化信号,所述修复控制器将固化于所述修复存储单元的所述第一数据存入与所述修复存储单元对应的寄存器的所述第一数据区;
响应于针对指定故障存储单元的写入请求,所述修复控制器将所述写入请求对应的外部输入的第二数据存入与指定故障存储单元对应的寄存器的第二数据区,并将所述第二数据区的第二数据写回至与所述对应寄存器相对应的修复存储单元。
在一种实施方式中,其中,所述通过将所述故障存储单元的地址存储至所述修复存储单元以建立所述故障存储单元与所述修复存储单元之间的对应关系之后进一步包括:
通过添加至少占据2bit存储空间的修复标识以表示所述修复存储单元的占用。
在一种实施方式中,其中,所述装置还包括基于所述多个寄存器的查找表模块,其中,所述查找表模块用于:
响应于针对指定故障存储单元的访问请求,所述查找表模块通过在所述地址存储区快速查找所述指定故障存储单元的地址以找到所述指定故障存储单元所对应的所述第一数据区以及所述第二数据区;以及
根据所述访问请求从所述第一数据区读取数据或向所述第二数据写入数据。
在一种实施方式中,其中,所述非易失性存储器为一次性可编程存储器。
本发明实施方式通过采用相互独立的第一数据区与第二数据区对新写入修复空间的数据与从修复空间中读取的数据(已经固化在修复空间)进行了有效区分,进一步保证了从修复空间中读取的数据(已经固化在修复空间)不会再次写回修复存储单元的数据,进一步提高了存储器寿命。
附图说明
通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
图1示出了根据本发明实施例的一种非易失性存储器的修复方法的流程图。
图2示出了根据本发明实施例的一种非易失性存储器的修复装置的示意图。
图3示出了根据本发明实施例的故障存储单元与修复存储单元的替换关系图。
图4示出了根据本发明实施例的另一种非易失性存储器的修复装置的示意图。
图5(a)示出了向非易失性存储器写回数据前寄存器与修复存储单元的示意图。
图5(b)示出了向非易失性存储器写回数据后寄存器与修复存储单元的示意图。
图6示出了根据本发明实施例的又一种非易失性存储器的修复装置的示意图。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下文中,将参考附图详细描述本发明的示例性实施方式,以使本领域技术人员可容易地实现它们。此外,为了清楚起见,在附图中省略了与描述示例性实施方式无关的部分。
在本发明中,应理解,诸如“包括”或“具有”等的术语旨在指示本说明书中所公开的特征、数字、步骤、行为、部件、部分或其组合的存在,并且不欲排除一个或多个其他特征、数字、步骤、行为、部件、部分或其组合存在或被添加的可能性。
另外还需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
示例性方法
图1示出了本发明实施例的一种非易失性存储器的修复方法的流程图。如图1所示,非易失性存储器至少包括具有多个存储单元的主存储阵列,所述修复方法包括:
S110:将所述多个存储单元中的故障存储单元映射到修复存储单元;
S120:将修复控制器电连接至所述修复存储单元,所述修复控制器在上电初始化时将固化于所述修复存储单元的第一数据存入第一数据区;以及将待写入所述修复存储单元的第二数据存入第二数据区,并将所述第二数据区的第二数据写回至修复存储单元。
具体地,上述将所述多个存储单元中的故障存储单元映射到修复存储单元指的是在存储器的使用过程中,将用户对故障模块的访问操作转换成对与该故障模块对应的修复存储单元的访问操作。
本领域技术人员可以理解的是,主存储阵列作为非易失性存储器的主存储空间,不可避免地存在一定概率的故障存储单元,由于硬件损坏,存储于该故障存储单元的数据与实际需要存储的数据产生差异,多个修复存储单元是非易失性存储器预留的存储空间,用于替换各自对应的故障存储单元。然而从用户的角度而言,其并不清楚存储器内部产生了存储单元的替换,仍然会对故障存储单元进行访问,因此,此时针对故障存储单元的访问(实际是对修复存储单元的访问)需要由修复控制器来执行,而非正常模式(也即对非故障存储单元的访问模式)下直接对存储单元进行访问的步骤。
具体地,本发明实施例中的修复控制器在上电初始化时将固化于所述修复存储单元的第一数据存入第一数据区;以及将待写入所述修复存储单元的第二数据存入第二数据区,并将所述第二数据区的第二数据写回至修复存储单元,提供一种相互独立的“读取”与“写入”的数据存储流程。但是在现有技术中,带修复功能的非易失性存储器一般采取先将修复数据读入本地内存,在接收到外部传来的针对故障存储单元的写入请求后,在本地内存中对该故障存储单元的数据进行更新,最后将更新后的数据整体写回用于替换故障存储单元的修复存储单元中,也即“读取-修改-写入”这一数据存储流程。因此,现有技术中,对某一修复存储单元的写入数据实际上是对该修复存储单元的读出数据的更新,并非独立于原读出数据,进一步会导致原读出数据重新写入对应的位存储空间。
本发明实施例中,上述修复存储单元可以与故障存储单元一同位于非易失性存储器上,也可以位于独立于上述非易失性存储器的其他存储装置上,附图与下文中仅以修复存储单元与故障存储单元位于同一非易失性存储器为例,但不限于此。
在一实施例中,上述将所述多个存储单元中的故障存储单元映射到修复存储单元进一步包括:
通过将所述故障存储单元的地址存储至所述修复存储单元以建立所述故障存储单元与所述修复存储单元之间的对应关系。
例如,将第一故障存储单元111_1的地址(0001)存入第一修复存储单元120_1,将第二故障存储单元111_2的地址(0002)存入第二修复存储单元120_2,就因此建立了第一故障存储单元111_1与第一修复存储单元120_1之间的对应关系,以及建立了第二故障存储单元111_2与第二修复存储单元120_2之间的对应关系。
本领域技术人员可以理解的是,非易失性存储器在制造过程中会产生多少故障存储单元是无法控制的,因此,不同的非易失性存储器会存在故障存储单元数据的差异。然而由于工业需要,同一款非易失性存储器所预留的修复存储单元是一致的,因此对于不同的非易失性存储器而言,修复存储单元的占用数量是不同的。
具体地,上述将故障存储单元的地址存入修复存储单元以形成对应关系的操作可以在存储器件的制造期间执行,进一步地,上述故障存储单元与修复存储单元之间的对应关系在非易失性存储器封装后不可修改。
本发明实施例通过采用上述利用修复存储单元本身存储故障存储单元的地址来形成对应关系的技术方案,省略了单独设置存储单元以用于存储修复存储单元与故障存储单元的对应关系,并因此节省了存储器制造成本。
本发明实施例中,也可以采用其他技术方案以形成故障存储单元与修复存储单元之间的对应关系,例如,采用独立的地址映射单元,以及将存储器中的修复存储单元中的预定地址,替换主存储单元中故障存储单元的指定地址,并在地址映射单元中将所述故障存储单元对应的指定地址映射到修复存储单元中的预定地址上。本发明实施例以上述将故障存储单元的地址存储到选定的修复存储单元为例,但不限于此。
在下文中,故障地址也即故障存储单元的地址。
在一实施例中,在将故障地址存入修复存储单元后还可以在故障地址之后添加2bit位的修复标识,以标识该修复存储单元已经被占用以及该区域为有效修复存储单元。
在一实施例中,修复控制器进一步可以包括多个寄存器,其中,所述多个寄存器中的每一个寄存器与所述多个修复存储单元中的每一个修复存储单元一一对应。
具体地,寄存器与所述修复存储单元通过硬件电路的连接建立对应关系。
例如,如图5(a)及图5(b)所示,第一寄存器131_1与第一修复存储器120_1如虚线部分所表示的通过硬件连接,相应地,由于上文中已经提到,由于第一修复存储单元120_1中存储有第一故障存储单元111_1的地址,因此相当于建立了第一故障存储单元111_1、第一修复存储单元120_1以及第一寄存器131_1之间的对应关系。
在上电初始化阶段,修复存储单元将储存的数据发送至对应的寄存器,CPU基于寄存器中的数据执行启动,并在CPU启动后基于该寄存器对所对应的修复存储单元进行存取操作。
进一步地,当存储系统失电关闭时,储存于非易失性存储器的数据可以被永久保存,且储存于寄存器中的数据可以被抹除。
例如,如图3所示,在上电初始化阶段,因为非易失性存储器11是非易失性的,因而能在前述电源关闭或者断电之后保留其内容,进一步地,非易失性存储器11的第一修复存储单元120_1的电源开启,就直接拷贝到第一寄存器131_1中,并在后续步骤中基于第一寄存器131_1对第一修复存储单元120_1执行存取操作。
具体地,上述多个寄存器组成的阵列可以是非易失性存储器11存取电路的一部分,也可以与非易失性存储器11存取电路位于同一SOC芯片上以降低延迟。
本发明实施例中,上述修复存储单元与主存储阵列均为非易失性,而非易失性存储器由于具有阵列结构具有很长的读取时延,难以快速提取储存在非易失性存储器中的数据。因此,在上电初始化阶段将非易失性的修复存储单元中的数据传送至对应寄存器中供存储,并且在执行上电初始化之后利用存储在寄存器中的数据来执行修复操作能够加快访问速度。
本发明实施例中,由于用户无法直接对修复存储单元执行访问操作,因此采用与修复存储单元相对应的寄存器能够执行对修复存储单元的访问操作。
在一实施例中,寄存器进一步可以包含地址存储区,用于存储从所述修复存储单元获取的所述故障地址。
进一步地,修复控制器用于:响应于上电初始化信号,从所述修复存储单元读取所存储的所述故障存储单元的地址并写入对应的寄存器的地址存储区;以及
响应于对所述指定故障存储单元的访问请求,通过比较所述访问请求中的访问地址与存储于所述地址存储区中的地址以确定与所述故障存储单元对应的修复存储单元和寄存器。
如图5所示,本发明实施例中的修复存储单元还可以用于储存修复标识,该修复标识用于表示主存储单元的故障存储单元在修复存储单元中的占用,也即表示着该修复存储单元以及存储于该修复存储单元的数据是有效的。
响应于上电初始化信号,存储于修复存储单元的<故障地址、标识位>可以一起被传送至对应的寄存器,并存储于该寄存器的地址存储区。
例如,如图5(a)所示,第一修复存储单元120_1中存储的(0001,11)在上电初始化后被传送至第一寄存器131_1中的地址存储区。
进一步地,所述修复标识优选地可以至少占据2bit的存储空间。由于位存储空间有一定几率成为坏块,相较于只保留1bit位存储空间作为标识位,采用2bit位存储空间的标识可以提高抗坏点的能力,具体地,若只有1bit存储空间的标识位,若该bit位是坏点,则会影响修复。
例如,将第一故障存储单元111_1的故障地址(0001)存储到第一修复存储单元120_1后,在该故障地址后添加2bit的修复标识,也即将故障地址后的2bit位的从逻辑“00”转为逻辑“11”以形成(0001,11),用于标识该第一修复存储单元120_1已经被使用。
在一实施例中,修复控制器在上电初始化时将固化在所述修复存储单元的第一数据存入第一数据区;以及将待写入所述修复存储单元的第二数据存入第二数据区,并将所述第二数据区的第二数据写回至修复存储单元具体包括:
响应于所述上电初始化信号,所述修复控制器将固化在所述修复存储单元的所述第一数据存入与所述修复存储单元对应的寄存器的所述第一数据区;
响应于针对指定故障存储单元的写入请求,所述修复控制器将所述写入请求对应的外部输入的第二数据存入与指定故障存储单元对应的寄存器的第二数据区,并将所述第二数据区的第二数据写回至与所述对应寄存器相对应的修复存储单元。
例如,如图5(b)所示,响应于写入请求,该写入请求至少包括目标单元的写入地址以及写入数据0002(16进制),此时,若该写入地址匹配到第一寄存器131_1中所存储的第一故障存储单元111_1的地址,则将该写入数据0002(16进制)写入第一寄存器131_1中空置的第二数据区。进一步地,将该第二数据区的数据0002(16进制)通过硬件电路写回至第一修复存储单元120_1的数据,由于第一修复存储单元120_1已经存储有数据0055(16进制),此时可以通过写入的新数据获取数据0057(16进制)。
此外,例如,若访问请求为读请求,该读请求至少包括对目标单元的读地址,此时,若该读地址匹配到第一寄存器131_1中所存储的第一故障存储单元111_1的故障地址,则将第一寄存器131_1的第一数据区所存储的数据0055读出至处理器。
此外,又例如,若该访问请求的访问地址不能匹配到多个寄存器131中的任一个寄存器中所存储的有效故障地址,则直接对主存储阵列进行正常访问。
在一实施例中,寄存器可以与对应的修复存储单元具有相对应的位存储位置。进一步地,寄存器的位布置方式也可以与相对应的修复存储单元中的位置方式相对应。例如,如果第一修复存储单元120_1中数据存储位置的定义:35:16bit<地址区>,15:0bit<数据区>,那么与其具有对应关系的第一寄存器131_1中数据存储位置的定义可以为:47:36<地址存储区>,35:16bit<第一数据区>,15:0bit<第二修复数据位>。
以下结合图4、图5(a)、图5(b)以及各个修复阶段的修复过程对本发明实施例进行具体描述
(1)坏点测试阶段
检测该主存储阵列中是否存在故障的存储单元,在检测到第一故障存储单元111_1后,进而将故障存储单元111_1的故障地址(0001)存储到选定的第一修复存储单元120_1的地址区,以形成第一故障存储单元111_1的地址和第一修复存储单元120_1的地址之间的对应关系。以及,在第一修复存储单元120_1的地址区内的故障地址之后存储2bit的修复标识以表示该第一修复存储单元120_1的占用。
(2)上电初始化阶段
在上电初始化阶段,从非易失性存储器的多个修复存储单元中读取一个或者多个修复数据,其中,修复存储单元存在三种情况:(a)无效修复存储单元,也即并未替换故障存储单元的修复存储单元,其数据全空;(b)有效但未使用的修复存储单元,该修复存储单元至少存储有故障地址与修复标识。例如第二修复存储单元120_2,存储数据为:地址区(1002,11)。(c)有效且被使用的修复存储单元,若该修复存储单元在本次上电初始化之前已经被写入数据,则上述修复存储单元至少存储有故障地址、修复标识与第一数据,例如第一修复存储单元120_1,存储数据有:地址区(1001,11),数据区(0055)。
相应地,一旦电源开启,针对上述三类修复存储单元,就将修复存储单元中的各类数据存入对应寄存器的对应区域内,并通过寄存器对故障存储单元相应的数据进行访问,直到电源断开。
(3)CPU启动后
获取对该非易失性存储器的访问请求,该访问请求可以分为:(i)对故障存储单元的访问请求;(ii)对非故障存储单元的访问请求。
其该访问请求(读请求或写入请求)至少包括访问目标单元的访问地址,修复控制器130通过访问多个寄存器131以确定该访问目标单元是否为故障存储单元。具体地,可以执行地址比较来确定访问目标单元的地址是否能匹配到多个寄存器130的地址存储区存储的任一故障地址。进一步地,在匹配之前,可先通过修复标识对多个寄存器进行筛选,进一步从具有修复标识的有效故障地址中进行地址比较。
进一步地,一旦确定该访问目标单元为故障存储单元时,可以直接对寄存器进行访问,这样会带来更快的性能。如果访问目标单元的地址对应于故障地址,那么处理器会通过修复控制器对该访问目标单元所对应的修复存储单元进行访问;若该访问目标单元并非故障存储单元,则直接对主存储阵列进行访问。
进一步地,对故障存储单元的访问请求进一步可以分为:(a)对故障存储单元的读请求;(b)对故障存储单元的写请求。
具体地,上述读请求与写请求的区分可以通过解析该访问请求获得。
以下以对第一故障存储单元111_1的访问请求为例进行描述,但不限于此,本发明实施例可以针对任一故障存储单元111进行类似以下所描述的访问操作。
其中,若该访问请求为对第一故障存储单元111_1的读请求,该读请求至少包括访问地址,也即第一故障存储单元111_1的故障地址,则可以直接根据该访问地址找到对应的寄存器,也即第一寄存器131_1,并从第一寄存器131_1的第一数据区获取第一数据0055(16进制)并输出到处理器。
其中,若该访问请求为对第一故障存储单元111_1的写入请求,该写入请求至少可以包括访问地址与写入数据0002(16进制),该访问地址也即第一故障存储单元111_1的故障地址,本发明实施例则可以根据该访问地址找到对应的寄存器,也即第一寄存器131_1,并将写入数据0002(16进制)写入第一寄存器131_1的第二数据区,并通过硬件电路将第一寄存器131_1的第二数据区存储的第二数据0002(16进制)写回至第一修复存储单元120_1中的数据区获取更新后的数据0057(16进制)。为便于理解,上述对第一修复存储单元120_1新写入数据0002(16进制)可以表示为0000_0000_0000_0010(二进制),上述新写入数据也即将存储单元的第二位从逻辑“0”变更为逻辑“1”。
进一步地,当存储系统失电关闭时,储存于非易失性存储器的数据可以被永久保存,且储存于寄存器中的数据可以被抹除。
在一实施例中,上述多个寄存器进一步可以被配置成查找表模块,
具体地,该查找表模块的数据存储方式一方面可以同样被划分为地址存储区、第一数据区与第二数据区,另一方面可以同样依据故障地址进行划分。
响应于访问请求,所述查找表模块根据故障地址选择性地从所述第一数据区输出数据或向所述第二数据区输入数据。
具体地,在上电初始化后,存储于地址存储区中的故障地址可以成为所述查找表模块的索引地址,以及访问请求的类型(读或写)可以成为从所述查找表模块的第一数据区读数据或向所述查找表模块的第二数据区写数据的又一索引条件。
例如,当访问请求为针对第一故障存储单元的写请求,则在查找表中找到对应的第二数据区并向查找表中写入数据,查找表的第二数据区由于硬件连接可以直接向第一修复存储单元写回数据。
具体地,上述对查找表模块的存取操作等同于前文中对多个寄存器的存取操作,但是上述采用查找表机制直接查询访问地址是否存在于地址存储区的技术方案省去了依次地址比较的过程。
进一步地,由于查找表的使用本身在本领域技术人员的认知范围内,查找表和相关的电路将不进一步描述。
如上文所述,判断是否为针对故障存储单元的访问请求时,需要将访问地址与寄存器的地址存储区的故障存储单元地址依次进行比较,以判断访问地址是否为故障地址。这种依次比较式的地址比较效率较低,当存在较多的故障存储单元时需要消耗大量的时钟周期才能判断出访问地址是否为故障地址。降低了读写速度。因此,本发明实施例通过采用查找表机制可以快速定位目标地址在表中的位置并输出需要的数据,而不需要进行耗时的全搜索。因此减小了运算量,节省了内存空间,并可精确定位,非常适用于在嵌入式系统等运算和存储资源有限情况下的快速定位。
在一实施例中,非易失性存储器优选为OTP存储器。
本领域技术人员可以理解的是,OTP存储器的设计本意提供一个存储固定数据或固定程序的小区间,因此并没有考虑后续还会去重新写入的问题。而本发明实施例中所提及的向OTP存储区继续写入数据的应用场景为该OTP存储器的开发使用者可能需要可以多次写入的功能,因此在可控的范围内采用主动操作去执行继续写入。
因此,针对于对主存储阵列中非故障存储单元的访问请求,通过开发者用户的主观操作可以防止对1bit存储单元的重复写入操作,例如,在主存储阵列中,某一存储单元中已存储有数据A(0101_0101),继续写入数据B(0000_0010),此时,由于上述写入是直接写入,因此存储单元存储有数据C(0101_0111),并且不会发生重复写入的情况。然而对于修复存储单元访问请求而言,从开发者用户的角度并不清楚系统内部执行了替换操作,其访问地址仍然是原故障地址,因此会出现背景技术中所提出的问题。
在这里,对非易失性存储器的类型不作具体限定,其可以是EPROM(可抹除可编程只读存储器,Erasable Programmable Read Only Memory),或者是EEPROM(电子抹除式可复写只读存储器,Electrically Erasable Programmable Read Only Memory)。本申请实施例在下文中以OTP存储器为例进行描述,但是不限于此。
本领域技术人员可以理解的是,上述通过新写入第二修复数据以改变OTP修复存储单元目标位置的存储数据的技术方案不会尝试从逻辑“1”到逻辑“0”来复位OTP修复存储单元的目标位置的任何位,因为这样做物理上是不可能实现的。
在一实施例中,本发明实施例中所涉及的修复均是指的是在存储器的制造与使用过程中所执行的永久修复。
本发明实施方式通过采用相互独立的第一数据区与第二数据区对新写入修复空间的数据与从修复空间中读取的数据(已经固化在修复空间)进行了有效区分,进一步保证了从修复空间中读取的数据(已经固化在修复空间)不会再次写回修复存储单元的数据,进一步提高了存储器寿命。
示例性设备
本发明实施例提出一种非易失性存储器的修复装置。
图2示出了本发明实施例的一种非易失性存储器的修复装置的示意图。如图2所示,该系统包括:
具有多个存储单元的主存储阵列110;
修复存储单元120,用于将所述多个存储单元中的故障存储单元111映射到所述修复存储单元120;
电连接至所述修复存储单元的修复控制器130,所述修复控制器130在上电初始化时将固化在所述修复存储单元120的第一数据存入第一数据区;以及将待写入所述修复存储单元的第二数据存入第二数据区,并将所述第二数据区的第二数据写回至修复存储单元120。
具体地,上述将所述多个存储单元中的故障存储单元111映射到所述修复存储单元120指的是在存储器的使用过程中,将用户对故障模块111的访问操作转换成对与该故障模块111对应的修复存储单元120的访问操作。
具体地,上述对指定的修复存储单元120执行相互独立的读取操作与写入操作指的是在读取操作过程中与写入操作过程中,从修复存储单元120传向修复控制器130的读取数据与从修复控制器130传向修复存储单元120的写入数据之间是相互独立并区分开来的,更具体地,上述写入数据不会在写入修复存储单元120之前与从该修复存储单元120中读取的数据产生数据叠加。
本领域技术人员可以理解的是,主存储阵列110作为非易失性存储器的主存储空间,不可避免地存在一定概率的故障存储单元111,由于硬件损坏,存储于该故障存储单元111的数据与实际需要存储的数据产生差异,多个修复存储单元120是非易失性存储器11预留的存储空间,用于替换各自对应的故障存储单元。然而从用户的角度而言,其并不清楚存储器内部产生了存储单元的替换,仍然会对故障存储单元111进行访问,因此,此时针对故障存储单元111的访问(实际是对修复存储单元120的访问)需要由修复控制器130来执行,而非正常模式(也即对非故障存储单元的访问模式)下直接对存储单元进行访问的步骤。
具体地,本发明实施例中的修复控制器130在上电初始化时将固化于所述修复存储单元120的第一数据存入第一数据区;以及将待写入所述修复存储单元120的第二数据存入第二数据区,并将所述第二数据区的第二数据写回至修复存储单元120,提供了一种相互独立的“读取”与“写入”的数据存储流程。但是在现有技术中,带修复功能的非易失性存储器一般采取先将修复数据读入本地内存,在接收到外部传来的针对故障存储单元的写入请求后,在本地内存中对该故障存储单元的数据进行更新,最后将更新后的数据整体写回用于替换故障存储单元的修复存储单元中,也即“读取-修改-写入”这一数据存储流程。因此,现有技术中,对某一修复存储单元的写入数据实际上是对该修复存储单元的读出数据的更新,并非独立于原读出数据,进一步会导致原读出数据重新写入对应的位存储空间。
本发明实施例中,上述修复存储单元可以与故障存储单元一同位于非易失性存储器上,也可以位于独立于上述非易失性存储器的其他存储装置上,附图与下文中仅以修复存储单元与故障存储单元位于同一非易失性存储器为例,但不限于此。
在一实施例中,如图3所示,上述将所述多个存储单元中的故障存储单元111映射到修复存储单元120进一步包括:通过将所述每一个故障存储单元111的故障地址分别存储至所述多个修复存储单元120中以建立所述每一个故障存储单元与所述修复存储单元的对应关系。
例如,将第一故障存储单元111_1的地址(0001)存入第一修复存储单元120_1,将第二故障存储单元111_2的地址(0002)存入第二修复存储单元120_2,就因此建立了第一故障存储单元111_1与第一修复存储单元120_1之间的对应关系,以及建立了第二故障存储单元111_2与第二修复存储单元120_2之间的对应关系。
本领域技术人员可以理解的是,非易失性存储器在制造过程中会产生多少故障存储单元是无法控制的,因此,不同的非易失性存储器会存在故障存储单元数据的差异。然而由于工业需要,同一款非易失性存储器所预留的修复存储单元是一致的,因此对于不同的非易失性存储器而言,修复存储单元的占用数量是不同的。
具体地,上述将故障存储单元的地址存入修复存储单元以形成对应关系的操作可以在存储器件的制造期间执行,进一步地,上述故障存储单元与修复存储单元之间的对应关系在非易失性存储器封装后不可修改。
本发明实施例通过采用上述利用修复存储单元本身存储故障存储单元的地址来形成对应关系的技术方案,省略了单独设置存储单元以用于存储修复存储单元与故障存储单元的对应关系,并因此节省了存储器制造成本。
本发明实施例中,也可以采用其他技术方案以形成故障存储单元与修复存储单元之间的对应关系,例如,采用独立的地址映射单元,以及将存储器中的修复存储单元中的预定地址,替换主存储单元中故障存储单元的指定地址,并在地址映射单元中将所述故障存储单元对应的指定地址映射到修复存储单元中的预定地址上。本发明实施例以上述将故障存储单元的地址存储到选定的修复存储单元为例,但不限于此。
在一实施例中,在将故障存储单元的故障地址存入修复存储单元后还可以在故障地址之后添加2bit位的修复标识,以标识该修复存储单元已经被占用以及该区域为有效修复存储单元。
图4为根据本发明另一实施例的非易失性存储器的修复装置;图5(a)为根据本发明实施例的向存储器写回数据前的非易失性存储器及寄存器的示意图;图5(b)为根据本发明实施例的向存储器写入数据后的非易失性存储器及寄存器的示意图,下面结合图4和图5(a)及图5(b)进一步描述本发明实施例。
在图3所示的实施例中,其中的修复控制器130进一步可以包括多个寄存器131,其中,所述多个寄存器中的每一个寄存器与所述多个修复存储单元中的每一个修复存储单元一一对应。
具体地,寄存器131与所述修复存储单元130通过硬件电路的连接建立对应关系。
例如,如图5(a)及图5(b)所示,第一寄存器131_1与第一修复存储器120_1如虚线部分所表示的通过硬件连接,相应地,由于上文中已经提到,由于第一修复存储单元120_1中存储有第一故障存储单元111_1的地址,因此相当于建立了第一故障存储单元111_1、第一修复存储单元120_1以及第一寄存器131_1之间的对应关系。
在上电初始化阶段,修复存储单元将储存的数据发送至对应的寄存器,CPU基于寄存器中的数据执行启动,并在CPU启动后基于该寄存器对所对应的修复存储单元进行存取操作。
例如,在上电初始化阶段,因为非易失性存储器11是非易失性的,因而能在前述电源关闭或者断电之后保留其内容,进一步地,非易失性存储器11的第一修复存储单元120_1的电源开启,就直接拷贝到第一寄存器131_1中,并在后续步骤中基于第一寄存器131_1对第一修复存储单元120_1执行存取操作。
具体地,上述多个寄存器组成的阵列可以是非易失性存储器11存取电路的一部分,也可以与非易失性存储器11存取电路位于同一SOC芯片上以降低延迟。
本发明实施例中,上述修复存储单元与主存储阵列均属于非易失性存储器,而非易失性存储器由于具有阵列结构,所以需要具有很长的读取时延,难以快速提取储存在非易失性存储器中的数据。因此,在上电初始化阶段将非易失性的修复存储单元中的数据传送至对应寄存器中供存储,并且在执行上电初始化之后利用存储在寄存器中的数据来执行修复操作能够加快访问速度。
本发明实施例中,由于用户无法直接对修复存储单元执行访问操作,因此采用与修复存储单元相对应的寄存器能够执行对修复存储单元的访问操作。
在一实施例中,寄存器进一步可以包含地址存储区,用于存储从所述修复存储单元获取的所述故障地址。
进一步地,修复控制器用于:响应于上电初始化信号,将所述修复存储单元存储的所述故障地址读入对应的寄存器的地址存储区。
响应于对所述指定故障存储单元的访问请求,通过比较所述访问请求中的访问地址与存储于所述地址存储区中的地址以确定与所述故障存储单元对应的修复存储单元和寄存器。
如图5(a)所示,本发明实施例中的修复存储单元还可以用于储存修复标识,该修复标识用于表示主存储单元的故障存储单元在修复存储单元中的占用,也即表示着该修复存储单元以及存储于该修复存储单元的数据是有效的。
响应于上电初始化信号,存储于修复存储单元的<故障地址、标识位>可以一起被传送至对应的寄存器,并存储于该寄存器的地址存储区。
例如,第一修复存储单元120_1中存储的(0001,11)在上电初始化后被传送至第一寄存器131_1中的地址存储区。
进一步地,所述修复标识优选地可以至少占据2bit的存储空间。由于位存储空间有一定几率成为坏块,相较于只保留1bit位存储空间作为标识位,采用2bit位存储空间的标识可以提高抗坏点的能力,具体地,若只有1bit存储空间的标识位,若该bit位是坏点,则会影响修复。
例如,将第一故障存储单元111_1的故障地址(0001)存储到第一修复存储单元120_1后,在该故障地址后添加2bit的修复标识,也即将故障地址后的2bit位的从逻辑“00”转为逻辑“11”以形成(0001,11),用于标识该第一修复存储单元120_1已经被使用。
如图5(b)所示,在本示例中,寄存器131进一步可以包括第一数据区以及第二数据区。其中,第一数据区用于存储已固化在所述修复存储单元的第一数据;第二数据区用于存储待存入所述修复存储单元的第二数据。
在一实施例中,修复控制器在上电初始化时将固化在所述修复存储单元的第一数据存入第一数据区;以及将待写入所述修复存储单元的第二数据存入第二数据区,并将所述第二数据区的第二数据写回至修复存储单元具体包括:
响应于所述上电初始化信号,所述修复控制器将固化在所述修复存储单元的所述第一数据存入与所述修复存储单元对应的寄存器的所述第一数据区;
响应于针对指定故障存储单元的写入请求,所述修复控制器将所述写入请求对应的外部输入的第二数据存入与指定故障存储单元对应的寄存器的第二数据区,并将所述第二数据区的第二数据写回至与所述对应寄存器相对应的修复存储单元。
例如,响应于写入请求,该写入请求至少包括目标单元的写入地址以及写入数据0002(16进制),此时,若该写入地址匹配到第一寄存器131_1中所存储的第一故障存储单元111_1的故障地址,则将该写入数据0002(16进制)写入第一寄存器131_1中空置的第二数据区。进一步地,将该第二数据区的数据0002(16进制)通过硬件电路写回至第一修复存储单元120_1的数据,由于第一修复存储单元120_1已经存储有数据0055(16进制),此时可以通过写入的新数据获取数据0057(16进制)。
此外,例如,若访问请求为读请求,该读请求至少包括对目标单元的读地址,此时,若该读地址匹配到第一寄存器131_1中所存储的第一故障存储单元111_1的故障地址,则将第一寄存器131_1的第一数据区所存储的数据0055读出至处理器。
此外,又例如,若该访问请求的访问地址不能匹配到多个寄存器131中的任一个寄存器中所存储的有效故障地址,则直接对主存储阵列进行正常访问。
在一实施例中,寄存器可以与对应的修复存储单元具有相对应的位存储位置。进一步地,寄存器的位布置方式也可以与相对应的修复存储单元中的位置方式相对应。例如,如果第一修复存储单元120_1中数据存储位置的定义:35:16bit<地址区>,15:0bit<数据区>,那么与其具有对应关系的第一寄存器131_1中数据存储位置的定义可以为:47:36<地址存储区>,35:16bit<第一数据区>,15:0bit<第二修复数据位>。
以下结合图4、图5(a)及图5(b)以及各个修复阶段的修复过程对本发明实施例进行具体描述
(1)坏点测试阶段
检测该主存储阵列中是否存在故障的存储单元,在检测到第一故障存储单元111_1后,进而将故障存储单元111_1的故障地址(0001)存储到选定的第一修复存储单元120_1的地址区,以形成第一故障存储单元111_1的地址和第一修复存储单元120_1的地址之间的对应关系。以及,在第一修复存储单元120_1的地址区内的故障地址之后存储2bit的修复标识以表示该第一修复存储单元120_1的占用。
(2)上电初始化阶段
在上电初始化阶段,从非易失性存储器的多个修复存储单元中读取一个或者多个修复数据,其中,修复存储单元存在三种情况:(a)无效修复存储单元,也即并未替换故障存储单元的修复存储单元,其数据全空;(b)有效但未使用的修复存储单元,该修复存储单元至少存储有故障地址与修复标识。例如第二修复存储单元120_2,存储数据为:地址区(1002,11)。(c)有效且被使用的修复存储单元,若该修复存储单元在本次上电初始化之前已经被写入数据,则上述修复存储单元至少存储有故障地址、修复标识与第一数据,例如第一修复存储单元120_1,存储数据有:地址区(1001,11),数据区(0055)。
相应地,一旦电源开启,针对上述三类修复存储单元,就将修复存储单元中的各类数据存入对应寄存器的对应区域内,并通过寄存器对故障存储单元相应的数据进行访问,直到电源断开。
(3)CPU启动后
获取对该非易失性存储器的访问请求,该访问请求可以分为:(i)对故障存储单元的访问请求;(ii)对非故障存储单元的访问请求。
其该访问请求(读请求或写入请求)至少包括访问目标单元的访问地址,修复控制器130通过访问多个寄存器131以确定该访问目标单元是否为故障存储单元。具体地,可以执行地址比较来确定访问目标单元的地址是否能匹配到多个寄存器130的地址存储区存储的任一故障地址。进一步地,在匹配之前,可先通过修复标识对多个寄存器进行筛选,进一步从具有修复标识的有效故障地址中进行地址比较。
进一步地,一旦确定该访问目标单元为故障存储单元时,可以直接对寄存器进行访问,这样会带来更快的性能。如果访问目标单元的地址对应于故障地址,那么处理器会通过修复控制器对该访问目标单元所对应的修复存储单元进行访问;若该访问目标单元并非故障存储单元,则直接对主存储阵列进行访问。
进一步地,对故障存储单元的访问请求进一步可以分为:(a)对故障存储单元的读请求;(b)对故障存储单元的写请求。
具体地,上述读请求与写请求的区分可以通过解析该访问请求获得。
以下以对第一故障存储单元111_1的访问请求为例进行描述,但不限于此,本发明实施例可以针对任一故障存储单元111进行类似以下所描述的访问操作。
其中,若该访问请求为对第一故障存储单元111_1的读请求,该读请求至少包括访问地址,也即第一故障存储单元111_1的故障地址,则可以直接根据该访问地址找到对应的寄存器,也即第一寄存器131_1,并从第一寄存器131_1的第一数据区获取第一数据0055(16进制)并输出到处理器。
其中,若该访问请求为对第一故障存储单元111_1的写入请求,该写入请求至少可以包括访问地址与写入数据0002(16进制),该访问地址也即第一故障存储单元111_1的故障地址,本发明实施例则可以根据该访问地址找到对应的寄存器,也即第一寄存器131_1,并将写入数据0002(16进制)写入第一寄存器131_1的第二数据区,并通过硬件电路将第一寄存器131_1的第二数据区存储的第二数据0002(16进制)写回至第一修复存储单元120_1中的数据区获取更新后的数据0057(16进制)。为便于理解,上述对第一修复存储单元120_1新写入数据0002(16进制)可以表示为0000_0000_0000_0010(二进制),上述新写入数据也即将存储单元的第二位从逻辑“0”变更为逻辑“1”。
进一步地,当存储系统失电关闭时,储存于非易失性存储器的数据可以被永久保存,且储存于寄存器中的数据可以被抹除。
下面结合图6进一步描述本发明实施例,图6是本发明实施例提供的另一种非易失性存储器的修复装置示意图。
其中上述多个寄存器131进一步可以被配置成查找表模块132,
如图6所示,该查找表模块132的数据存储方式一方面可以同样被划分为地址存储区、第一数据区与第二数据区,另一方面可以同样依据故障地址进行划分。
响应于访问请求,所述查找表模块132根据故障地址选择性地从所述第一数据区输出数据或向所述第二数据区输入数据。
具体地,在上电初始化后,存储于地址存储区中的故障地址可以成为所述查找表模块132的索引地址,以及访问请求的类型(读或写)可以成为从所述查找表模块132的第一数据区读数据或向所述查找表模块132的第二数据区写数据的又一索引条件。
例如,当访问请求为针对第一故障存储单元111_1的写请求,则在查找表中找到对应的第二数据区并向查找表中写入数据,查找表的第二数据区由于硬件连接可以直接向第一修复存储单元120_1写回数据。
具体地,上述对查找表模块132的存取操作等同于前文中对多个寄存器131的存取操作,但是上述采用查找表机制直接查询访问地址是否存在于地址存储区的技术方案省去了依次地址比较的过程。
进一步地,由于查找表的使用本身在本领域技术人员的认知范围内,查找表和相关的电路将不进一步描述。
如上文所述,判断是否为针对故障存储单元的访问请求时,需要将访问地址与寄存器的地址存储区的故障存储单元地址依次进行比较,以判断访问地址是否为故障地址。这种依次比较式的地址比较效率较低,当存在较多的故障存储单元时需要消耗大量的时钟周期才能判断出访问地址是否为故障地址。降低了读写速度。因此,本发明实施例通过采用查找表机制可以快速定位目标地址在表中的位置并输出需要的数据,而不需要进行耗时的全搜索。因此减小了运算量,节省了内存空间,并可精确定位,非常适用于在嵌入式系统等运算和存储资源有限情况下的快速定位。
在一实施例中,非易失性存储器优选为OTP存储器。
本领域技术人员可以理解的是,OTP存储器的设计本意提供一个存储固定数据或固定程序的小区间,因此并没有考虑后续还会去重新写入的问题。而本发明实施例中所提及的向OTP存储区继续写入数据的应用场景为该OTP存储器的开发使用者可能需要可以多次写入的功能,因此在可控的范围内采用主动操作去执行继续写入。
因此,针对于对主存储阵列中非故障存储单元的访问请求,通过开发者用户的主观操作可以防止对1bit存储单元的重复写入操作,例如,在主存储阵列中,某一存储单元中已存储有数据A(0101_0101),继续写入数据B(0000_0010),此时,由于上述写入是直接写入,因此存储单元存储有数据C(0101_0111),并且不会发生重复写入的情况。然而对于修复存储单元访问请求而言,从开发者用户的角度并不清楚系统内部执行了替换操作,其访问地址仍然是原故障地址,因此会出现背景技术中所提出的问题。
在这里,对非易失性存储器的类型不作具体限定,其可以是EPROM(可抹除可编程只读存储器,Erasable Programmable Read Only Memory),或者是EEPROM(电子抹除式可复写只读存储器,Electrically Erasable Programmable Read Only Memory)。本申请实施例在下文中以OTP存储器为例进行描述,但是不限于此。
本领域技术人员可以理解的是,上述通过新写入第二修复数据以改变OTP修复存储单元目标位置的存储数据的技术方案不会尝试从逻辑“1”到逻辑“0”来复位OTP修复存储单元的目标位置的任何位,因为这样做物理上是不可能实现的。
在一实施例中,本发明实施例中所涉及的修复均是指的是在存储器的制造与使用过程中所执行的永久修复。
本发明实施方式通过采用相互独立的第一数据区与第二数据区对新写入修复空间的数据与从修复空间中读取的数据(已经固化在修复空间)进行了有效区分,进一步保证了从修复空间中读取的数据(已经固化在修复空间)不会再次写回修复存储单元的数据,进一步提高了存储器寿命。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。
Claims (14)
1.一种非易失性存储器的修复方法,所述非易失性存储器至少包括具有多个存储单元的主存储阵列,其特征在于,所述多个存储单元与多个修复存储单元一一对应,所述多个修复存储单元与修复控制器包括的多个寄存器一一对应,每个寄存器包括第一数据区与第二数据区,所述修复方法包括:
将所述多个存储单元中的故障存储单元映射到对应的修复存储单元;
将所述修复控制器电连接至该修复存储单元,所述修复控制器在上电初始化时将固化于该修复存储单元的第一数据存入对应于该修复存储单元的寄存器的第一数据区;以及将待写入所述修复存储单元的第二数据存入该寄存器的第二数据区,并将所述第二数据区的第二数据写回至该修复存储单元。
2.如权利要求1所述修复方法,其特征在于,将所述多个存储单元中的故障存储单元映射到修复存储单元进一步包括:
通过将所述故障存储单元的地址存储至所述修复存储单元以建立所述故障存储单元与所述修复存储单元之间的对应关系。
3.如权利要求2所述修复方法,其特征在于,每个所述寄存器进一步包括地址存储区,用于存储从所述修复存储单元获取的所述故障存储单元的地址;并且,
所述修复控制器还用于:
响应于上电初始化信号,从所述修复存储单元读取所存储的所述故障存储单元的地址并写入对应的寄存器的地址存储区;以及
响应于对所述故障存储单元的访问请求,通过比较所述访问请求中的访问地址与存储于所述地址存储区中的地址以确定与所述故障存储单元对应的修复存储单元和寄存器。
4.如权利要求3所述修复方法,其特征在于,所述修复控制器在上电初始化时将固化在所述修复存储单元的第一数据存入第一数据区;以及将待写入所述修复存储单元的第二数据存入第二数据区,并将所述第二数据区的第二数据写回至修复存储单元具体包括:
响应于所述上电初始化信号,所述修复控制器将固化在所述修复存储单元的所述第一数据存入所述寄存器的所述第一数据区,其中,所述修复存储单元与所述寄存器相对应;
响应于针对指定故障存储单元的写入请求,所述修复控制器将所述写入请求对应的外部输入的第二数据存入与指定故障存储单元对应的寄存器的第二数据区,并将所述第二数据区的第二数据写回至与对应寄存器相对应的修复存储单元。
5.如权利要求2所述修复方法,其特征在于,所述通过将所述故障存储单元的地址存储至所述修复存储单元以建立所述故障存储单元与所述修复存储单元之间的对应关系之后,所述方法还包括:
通过添加至少占据2bit存储空间的修复标识以表示所述修复存储单元的占用。
6.如权利要求3所述修复方法,其特征在于,所述方法还包括通过基于所述多个寄存器的查找表模块以执行:
响应于针对指定故障存储单元的访问请求,所述查找表模块通过在所述地址存储区快速查找所述指定故障存储单元的地址以找到所述指定故障存储单元所对应的所述第一数据区以及所述第二数据区;以及
根据所述访问请求从所述第一数据区读取数据或向所述第二数据区写入数据。
7.如权利要求1~6中任一项所述修复方法,其特征在于,所述非易失性存储器为一次性可编程存储器。
8.一种非易失性存储器的修复装置,其特征在于,多个存储单元与多个修复存储单元一一对应,所述多个修复存储单元与修复控制器包括的多个寄存器一一对应,每个寄存器包括第一数据区与第二数据区,所述修复装置包括:
具有多个存储单元的主存储阵列;
修复存储单元,用于将所述多个存储单元中的故障存储单元映射到对应的修复存储单元;
电连接至该修复存储单元的修复控制器,所述修复控制器在上电初始化时将固化在该修复存储单元的第一数据存入对应于该修复存储单元的寄存器的第一数据区;以及将待写入所述修复存储单元的第二数据存入该寄存器的第二数据区,并将所述第二数据区的第二数据写回至该修复存储单元。
9.如权利要求8所述修复装置,其特征在于,将所述多个存储单元中的故障存储单元映射到修复存储单元进一步包括:
通过将所述故障存储单元的地址存储至所述修复存储单元以建立所述故障存储单元与所述修复存储单元之间的对应关系。
10.如权利要求9所述修复装置,其特征在于,每个所述寄存器进一步包括地址存储区,用于存储从所述修复存储单元获取的所述故障存储单元的地址;并且,
所述修复控制器还用于:
响应于上电初始化信号,从所述修复存储单元读取所存储的所述故障存储单元的地址并写入对应的寄存器的地址存储区;以及
响应于对所述故障存储单元的访问请求,通过比较所述访问请求中的访问地址与存储于所述地址存储区中的地址以确定与所述故障存储单元对应的修复存储单元和寄存器。
11.如权利要求10所述修复装置,其特征在于,所述修复控制器在上电初始化时将固化在所述修复存储单元的第一数据存入第一数据区;以及将待写入所述修复存储单元的第二数据存入第二数据区,并将所述第二数据区的第二数据写回至修复存储单元进一步包括:
响应于所述上电初始化信号,所述修复控制器将固化于所述修复存储单元的所述第一数据存入所述寄存器的所述第一数据区,其中,所述修复存储单元与所述寄存器相对应;
响应于针对指定故障存储单元的写入请求,所述修复控制器将所述写入请求对应的外部输入的第二数据存入与指定故障存储单元对应的寄存器的第二数据区,并将所述第二数据区的第二数据写回至与对应寄存器相对应的修复存储单元。
12.如权利要求9所述修复装置,其特征在于,所述通过将所述故障存储单元的地址存储至所述修复存储单元以建立所述故障存储单元与所述修复存储单元之间的对应关系之后进一步包括:
通过添加至少占据2bit存储空间的修复标识以表示所述修复存储单元的占用。
13.如权利要求10所述修复装置,其特征在于,所述装置还包括基于所述多个寄存器的查找表模块,其中,所述查找表模块用于:
响应于针对指定故障存储单元的访问请求,所述查找表模块通过在所述地址存储区快速查找所述指定故障存储单元的地址以找到所述指定故障存储单元所对应的所述第一数据区以及所述第二数据区;以及
根据所述访问请求从所述第一数据区读取数据或向所述第二数据区写入数据。
14.如权利要求8~13中任一项所述修复装置,其特征在于,所述非易失性存储器为一次性可编程存储器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811148673.6A CN110968455B (zh) | 2018-09-29 | 2018-09-29 | 一种非易失性存储器的修复方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811148673.6A CN110968455B (zh) | 2018-09-29 | 2018-09-29 | 一种非易失性存储器的修复方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110968455A CN110968455A (zh) | 2020-04-07 |
CN110968455B true CN110968455B (zh) | 2024-03-29 |
Family
ID=70027413
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811148673.6A Active CN110968455B (zh) | 2018-09-29 | 2018-09-29 | 一种非易失性存储器的修复方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110968455B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112447247A (zh) * | 2020-10-19 | 2021-03-05 | 加特兰微电子科技(上海)有限公司 | 数据存储装置、系统级芯片、无线电器件和设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102113058A (zh) * | 2008-04-09 | 2011-06-29 | 拉姆伯斯公司 | 可编程存储器修复方案 |
CN103390430A (zh) * | 2012-05-07 | 2013-11-13 | 中国科学院微电子研究所 | 基于哈希表的存储器内建自修复系统及方法 |
CN105448348A (zh) * | 2014-06-06 | 2016-03-30 | 北京兆易创新科技股份有限公司 | 一种芯片修复方法和装置 |
CN107844431A (zh) * | 2017-11-03 | 2018-03-27 | 合肥兆芯电子有限公司 | 映射表更新方法、存储器控制电路单元与存储器存储装置 |
CN108182962A (zh) * | 2016-12-08 | 2018-06-19 | 三星电子株式会社 | 包括虚拟故障产生器的存储器装置及其存储单元修复方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060077734A1 (en) * | 2004-09-30 | 2006-04-13 | Fong John Y | Direct mapped repair cache systems and methods |
US20060080572A1 (en) * | 2004-09-30 | 2006-04-13 | Fong John Y | Set associative repair cache systems and methods |
US9153343B2 (en) * | 2013-11-13 | 2015-10-06 | Taiwan Semiconductor Manufacturing Co., Ltd. | Memory device having RRAM-based non-volatile storage array |
-
2018
- 2018-09-29 CN CN201811148673.6A patent/CN110968455B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102113058A (zh) * | 2008-04-09 | 2011-06-29 | 拉姆伯斯公司 | 可编程存储器修复方案 |
CN103390430A (zh) * | 2012-05-07 | 2013-11-13 | 中国科学院微电子研究所 | 基于哈希表的存储器内建自修复系统及方法 |
CN105448348A (zh) * | 2014-06-06 | 2016-03-30 | 北京兆易创新科技股份有限公司 | 一种芯片修复方法和装置 |
CN108182962A (zh) * | 2016-12-08 | 2018-06-19 | 三星电子株式会社 | 包括虚拟故障产生器的存储器装置及其存储单元修复方法 |
CN107844431A (zh) * | 2017-11-03 | 2018-03-27 | 合肥兆芯电子有限公司 | 映射表更新方法、存储器控制电路单元与存储器存储装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110968455A (zh) | 2020-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100622349B1 (ko) | 불량 블록 관리 기능을 가지는 플레시 메모리 장치 및플레시 메모리 장치의 불량 블록 관리 방법. | |
US8127184B2 (en) | System and method including built-in self test (BIST) circuit to test cache memory | |
US6788575B2 (en) | Nonvolatile memory | |
US8122319B2 (en) | Page-based failure management for flash memory | |
US7454670B2 (en) | Data management apparatus and method of flash memory | |
CN109165115B (zh) | 一种增强flash存储器可靠性的方法 | |
US9177668B2 (en) | Method and apparatus for bit cell repair | |
US7366946B2 (en) | ROM redundancy in ROM embedded DRAM | |
US20040139310A1 (en) | Information processing apparatus, memory management apparatus, memory management method, and information processing method | |
US20020039312A1 (en) | Nonvolatile memory and method of writing data thereto | |
US20060253764A1 (en) | Computer system and method for redundancy repair of memories installed in computer system | |
US20210166777A1 (en) | Memory repair circuit, memory repair method, and memory module using memory repair circuit | |
JP2016512646A (ja) | 構成情報を記憶するための予備セクタを有するメモリセルアレイ | |
CN114530189A (zh) | 芯片的修复方法、修复装置、芯片 | |
EP3392885B1 (en) | Non-volatile memory repair circuit | |
CN113672430A (zh) | 运行虚拟机的系统、操作其的方法、介质和存储器件 | |
CN110968455B (zh) | 一种非易失性存储器的修复方法及装置 | |
US7518918B2 (en) | Method and apparatus for repairing embedded memory in an integrated circuit | |
CN111124294B (zh) | 一种扇区映射信息的管理方法及装置、存储介质和设备 | |
KR20190062879A (ko) | 스페어 피봇 고장 특성을 이용한 메모리 분석 방법 및 장치 | |
US20240086319A1 (en) | Virtual and physical extended memory array | |
JP2008251154A (ja) | 不揮発性半導体記憶装置 | |
WO2018040804A1 (zh) | 一种存储器块处理方法、装置和计算机存储介质 | |
US9710347B2 (en) | Handling defective non-volatile memory | |
CN112908401B (zh) | 内存修复电路、内存模块及内存修复方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20201203 Address after: Room 206, 2 / F, building C, phase I, Zhongguancun Software Park, No. 8, Dongbei Wangxi Road, Haidian District, Beijing 100094 Applicant after: Canaan Bright Sight Co.,Ltd. Address before: 100094, No. 3, building 23, building 8, northeast Wang Xi Road, Beijing, Haidian District, 307 Applicant before: Canaan Creative Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |