CN113903390A - 存储器和存储器的操作方法 - Google Patents
存储器和存储器的操作方法 Download PDFInfo
- Publication number
- CN113903390A CN113903390A CN202110636133.8A CN202110636133A CN113903390A CN 113903390 A CN113903390 A CN 113903390A CN 202110636133 A CN202110636133 A CN 202110636133A CN 113903390 A CN113903390 A CN 113903390A
- Authority
- CN
- China
- Prior art keywords
- data
- error correction
- new
- correction code
- memory
- 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.)
- Withdrawn
Links
Images
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/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- 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/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- 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/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- 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/52—Protection of memory contents; Detection of errors in memory contents
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1051—Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/10—Decoders
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
本公开涉及存储器和存储器的操作方法。所述方法包括:从存储核心读取数据和错误校正码;基于所读取的错误校正码对所读取的数据的错误进行校正,从而产生已纠错数据;通过将已纠错数据的一部分替换为写入数据来生成新数据,使得所述一部分变为新数据的写入数据部分;基于新数据而生成新错误校正码;以及将新数据的写入数据部分和新错误校正码写入存储核心。
Description
相关申请的交叉引用
本申请要求于2020年6月22日提交的编号为63/042230的美国临时申请和2020年9月21日提交的编号为63/080850的美国临时申请的优先权,其全部内容通过引用合并于此。
技术领域
本发明的各种实施例涉及一种存储器。
背景技术
在半导体存储器件工业的初期,晶片上存在许多原本优良的裸片,这意味着通过半导体制造工艺生产的存储芯片具有无缺陷的存储单元。然而,随着存储器件的容量增加,制造无任何缺陷存储单元的存储器件变得困难。当前,可以说基本上不可能制造无任何缺陷的存储单元的存储器件。为了解决这个问题,正在使用一种修复方法,该方法包括在存储器件中包括冗余存储单元并且用该冗余存储单元替代有缺陷的存储单元。
另一方法包括用于校正存储系统中的错误的错误校正电路(ECC电路),该错误校正电路用于校正在存储单元中发生的错误以及当在存储系统的读取操作和写入操作期间传输数据时发生的错误。
发明内容
本发明的实施例涉及可以减少存储器中的错误数量的技术。
根据本发明的实施例,一种用于操作存储器的方法包括:从存储核心读取数据和错误校正码;基于所读取的错误校正码对所读取的数据的错误进行校正,从而产生已纠错数据;通过将所述已纠错数据的一部分替换为写入数据来生成新数据,使得所述一部分成为新数据的写入数据部分;基于所述新数据而生成新错误校正码;以及将所述新数据的所述写入数据部分和所述新错误校正码写入所述存储核心。
根据本发明的另一实施例,一种用于操作存储器的方法包括:从存储核心读取第一数据、第二数据和错误校正码;基于所读取的错误校正码来校正所读取的第一数据和所读取的第二数据的错误;通过将其已纠错的所述第一数据与写入数据进行组合而生成新数据;基于所述新数据而生成新错误校正码;以及将所述已纠错的第一数据、所读取的第二数据以及所述新错误校正码写入所述存储核心。
根据本发明的又一实施例,一种存储器包括:存储核心;存取电路,其适用于对所述存储核心进行存取;错误校正电路,其适用于校正错误;错误校正码生成电路,其适用于生成错误校正码;以及修改电路,其适用于修改数据,其中,在读取-修改-写入(RMW)操作期间:基于通过所述存取电路从所述存储核心读取的所述错误校正码,所述错误校正电路对从所述存储核心读取的数据的错误进行校正;所述修改电路通过将经所述误差校正电路校正了错误的读取数据的一部分替换为写入数据来生成新数据,所述一部分成为新数据的写入数据部分;所述错误校正码生成电路基于所述新数据而生成新错误校正码;当设置为第一模式时,所述存取电路将所述新数据和所述新错误校正码写入所述存储核心;当设置为第二模式时,所述存取电路将所述新数据的所述写入数据部分和所述新错误校正码写入所述存储核心。
根据本发明的又一实施例,一种存储器,包括:存储核心;存取电路,其适用于对所述存储核心进行存取;错误校正电路,其适用于校正错误;错误校正码生成电路,其适用于生成错误校正码;以及第一修改电路和第二修改电路,其适于修改数据,其中,在读取-修改-写入(RMW)操作期间:基于通过所述存取电路从所述存储核心读取的所述错误校正码,所述错误校正电路对从所述存储核心读取的第一数据和第二数据的错误进行校正;所述第一修改电路通过将经所述错误校正电路校正了错误的所述第一数据与写入数据进行组合来生成新数据;所述错误校正码生成电路基于所述新数据而生成新错误校正码;当设置为第一模式时,所述存取电路将所述新数据和所述新错误校正码写入所述存储核心;当设置为第二模式时,所述第二修改电路通过将其已纠错的所述第一数据与所读取的第二数据进行组合来生成新写入数据;当设置为所述第二模式时,所述存取电路将所述新写入数据和所述新错误校正码写入所述存储核心。
根据本发明的又一实施例,一种用于操作存储器的方法包括:分别从第一区域至第三区域读取数据的第一段和第二段以及基于所述第一段和第二段的原始版本所生成的第一错误校正码(ECC);基于所述第一ECC,对所述第一段和第二段执行错误校正操作,从而产生分别与所述第一段和第二段相对应的第三段和第四段数据;生成基于所述第四段的第二ECC以及与所述第一段相对应的第五段数据;分别将所述第五段和所述第二ECC写入所述第一区域和所述第三区域,而不将第所述四段写入所述第二区域。
所述写入步骤可以包括掩蔽所述第四段。
所述写入步骤可以包括将所述第二段回写到所述第二区域中。
附图说明
图1是示出根据本发明的实施例的存储器100的框图。
图2是描述由设置电路120设置为第一模式时的存储器100的RMW操作的流程图。
图3和图4解释了RMW操作的第一模式。
图5是描述由设置电路120设置为第二模式时的存储器100的RMW操作的流程图。
图6解释了RMW操作的第二模式。
图7是示出根据本发明的另一实施例的存储器700的框图。
图8是描述由设置电路720设置为第一模式时的存储器700的读取-修改-写入(RMW)操作的流程图。
图9描述了RMW操作的第一模式。
图10是描述由设置电路720设置为第二模式时的存储器700的RMW操作的流程图。
图11描述了RMW操作的第二模式。
具体实施方式
下面将参考附图更详细地描述本发明的各种实施例。然而,本发明可以以不同的形式实施,并且不应被解释为限于本文阐述的实施例。相反,提供这些实施例以使得本公开将是透彻和完整的,并将向本领域技术人员充分展示本发明的范围。贯穿本公开,在本发明的各个附图和实施例中,相同的附图标记指代相同的部分。
图1是示出根据本发明的实施例的存储器100的框图。
参考图1,存储器100可以包括命令接收电路101、地址接收电路103、数据接收电路105、数据传送电路107、命令解码器110、设置电路120、存储核心130、存取电路140、错误校正码生成电路150、错误校正电路160和修改电路170。
命令接收电路101可以接收从存储器控制器传送来的命令CMD。命令CMD可以包括多比特位信号。地址接收电路103可以接收从存储器控制器传送来的地址ADD。地址ADD可以包括多比特位信号。数据接收电路105可以接收从存储器控制器传送来的数据DATA,并且数据传送电路107可以向存储器控制器传送数据DATA。数据DATA可以是多个比特位。在写入操作期间,可以从存储器控制器向存储器100传送数据DATA,而在读取操作期间,可以从存储器100向存储器控制器传送数据DATA。
命令解码器110可以对经由命令接收电路101接收的命令CMD进行解码,以确定存储器控制器指示存储器100执行何种操作,由此可以相应地控制存储器100的组成元件。
设置电路120可以执行对于存储器100的操作而言所必需的各种设置操作。当设置命令(例如,MRS命令)被识别为在命令解码器中的命令解码的结果时,设置电路120可以基于由地址接收电路103所接收的地址来执行设置操作。设置电路120也可以被称为模式寄存器设置(MRS)电路。从设置电路120输出的模式信号MODE可以是与读取-修改-写入(RMW)操作有关的信号,并且可以基于模式信号MODE的逻辑电平来设置第一模式与第二模式中与RMW操作有关的一个模式。
存储核心130可以是存储器100中用于储存数据的区域。存储核心130可以包括:单元阵列,其包括多个存储单元;行解码器,其用于选择在单元阵列中要访问的行;位线感测放大器阵列,用于对单元阵列中的选定行的数据进行放大;以及列解码器,用于选择在单元阵列中要访问的列。
存取电路140可以是用于对存储核心130进行存取的电路。存取电路140可以在写入操作期间向存储核心130传送数据和错误校正码,并且可以在读取操作期间从存储核心130接收数据和错误校正码。存取电路140可以包括:多个写入驱动器,用于向存储核心130中的选定列传送数据;以及多个感测放大器,用于从存储核心130中的选定列接收数据(其也可以被称为输入/输出(IO)感测放大器)。在RMW操作期间,存取单元140可以根据模式信号MODE的逻辑电平(即,根据第一模式和第二模式)不同地操作,这将参考图2至图6进行详细描述。
在将数据DATA”写入存储核心130的写入操作期间,错误校正码生成电路150可以基于数据DATA”生成错误校正码ECC。在从存储核心130读取数据DATA”的读取操作期间,通过对数据DATA”进行编码,错误校正码生成电路150可以生成用于对数据DATA”的错误进行校正的错误校正码ECC。在写入操作期间,可以仅生成错误校正码ECC,但可以不执行错误校正操作。因此,输入到错误校正码生成电路150的数据DATA”可以与从错误校正码生成电路150输出的数据DATA”相同。
基于在读取操作期间通过存取电路140从存储核心读取的错误校正码ECC,错误校正电路160可以校正通过存取电路140从存储核心读取的数据DATA”的错误。在此,“校正错误”可以表示基于错误校正码ECC来检测数据DATA”的错误,并且当检测到错误时,对所检测到的错误进行校正。
修改电路170可以是用于在RMW操作期间修改数据的电路。在RMW操作期间,修改电路170可以通过将从存储器100的外部传送来的写入数据WR DATA与从存储器100读取的数据DATA”经错误校正的数据DATA’进行组合来生成要写入的数据DATA”。在正常写入操作和正常读取操作(其并非RMW操作)期间,数据可以绕过(bypass)修改电路170。也就是说,在正常写入操作期间,数据DATA和数据DATA”可以相同,并且在正常读取操作期间,数据DATA’和数据DATA可以相同。
由于错误校正码ECC被储存在支持RMW操作的存储器100的存储核心130中,因此在一个实施例中,在存储器100的初始化操作期间,初始化数据(例如,‘0’)可以被写入存储核心130的所有区域中。
图2是描述由设置电路120设置为第一模式时的存储器100的RMW操作的流程图。图3和图4描述了RMW操作的第一模式。
参考图2和图3,在操作S201中,可以向存储器100施加指示RMW操作的命令CMD和写入数据WR DATA。命令CMD可以经由命令接收电路101被传送到命令解码器110,并且命令解码器110可以对命令CMD进行解码以将命令CMD识别为指示RMW操作。写入数据WR DATA可以由数据接收电路105接收。可以经由地址接收电路103来接收用于指定存储核心130中要执行RMW操作的区域的地址ADD。
在操作S203中,可以从存储核心130读取数据DATA”和错误校正码ECC。可以基于地址ADD选择要在存储核心130中访问的区域,并且可以通过存取电路140从存储核心130的选定区域中读取数据DATA”和错误校正码ECC。在图3中,‘301’可以代表从存储核心130的选定区域读取的数据DATA”和错误校正码ECC。参考图3的‘301’,可以看出数据DATA”包括两个信息MSG0和MSG1,每个信息包括128比特位,而错误校正码ECC则包括32比特位。
在操作S205中,可以基于错误校正码ECC来校正数据DATA”的错误。错误校正电路160可以基于从存取电路140传送来的错误校正码ECC来校正数据DATA”的错误。在图3中,‘303’可以代表已纠错数据DATA’。
在操作S207中,可以将已纠错数据DATA’的一部分替换为写入数据WR DATA以生成新数据DATA”。修改电路170可以基于已纠错数据DATA’和从存储器100的外部输入的写入数据WR DATA来生成新数据DATA”。由于不同于数据DATA’的另一数据DATA”是由修改电路170生成的,所以该另一数据DATA”被称为新数据DATA”。在图3中,‘305’可以代表新数据DATA”。参考“305”,可以看到,由于将已纠错数据DATA’的已纠错信息MSG0’替换为写入数据WRDATA,因此生成了新数据DATA”。在此,可以通过操作S201中的数据接收电路105接收写入数据WR DATA。在正常写入操作期间,虽然从存储器100的外部输入的写入数据WR DATA可以是256比特位,但是在修改-写入操作期间,写入数据WR DATA则可以是128比特位。
在操作S209中,可以基于操作S207的新数据DATA”来生成新错误校正码ECC。错误校正码生成电路150可以基于在操作S207中由修改电路170生成的新数据DATA”来生成新错误校正码ECC。这里,由于基于新数据而新生成了另一错误校正码,因此该另一错误校正码被称为新错误校正码ECC。在图3中,‘307’可以代表新数据DATA”和在操作S209中基于新数据DATA”而生成的新错误校正码ECC。
在操作S211中,可以将新数据DATA”和新错误校正码ECC写入存储核心130中。新数据DATA”和新错误校正码ECC可以通过存取电路140被传送到存储核心130,而新数据DATA”和新错误校正码ECC可以被写入到存储核心130中根据地址ADD而选定的区域中。存储核心130中的在操作S211中被写入的区域可以与存储核心130中的在操作S203中被读取的区域相同。
当存在很多错误时,如图2所示的在第一模式下的RMW操作可能会导致使错误数量持续增多的问题。
在图4中,‘401’可以代表在操作S203中读取的数据DATA”中存在4比特位的错误。参考‘401’,可以看到数据DATA”的信息MSG1中存在4比特位的错误。在此,4比特位的错误超过了错误校正电路160的错误校正能力。
在图4中,‘403’可以代表在执行了操作S205中的错误校正操作之后的数据DATA’。由于在‘401’中存在超过错误校正电路160的错误校正能力的错误,因此错误校正电路160的错误校正操作甚至可能使在操作S203中读取的数据DATA”的错误更严重。结果,在‘403’中,错误的比特位数可能会增加到5比特位。
在图4中,‘405’可以代表在操作S207中由修改电路170生成的新数据DATA”。新数据DATA”也可能包含5比特位的错误。
在图4中,‘407’可以代表在操作S209中由错误校正码生成电路150生成的新错误校正码ECC与新数据DATA”合并。可以将‘407’原样写入存储核心130。即,可以将包括5比特位错误的数据和错误校正码的407照原样写入存储核心130。
参考图4,当存在许多错误时,存储核心130中所储存的错误的数量可能由于RMW操作而增大。当在相同区域中重复执行RMW操作时,错误的数量可能会持续增大。
图5是描述由设置电路120设置为第二模式时的存储器100的RMW操作的流程图。图6描述了RMW操作的第二模式。
参考图5和图6,在操作S501中,可以向存储器100施加指示RMW操作的命令CMD和写入数据WR DATA。命令CMD可以经由命令接收电路101被传送到命令解码器110,并且命令解码器110可以对命令CMD进行解码以将命令CMD识别为指示RMW操作。写入数据WR DATA可以由数据接收电路105接收。可以通过地址接收电路103来接收用于指定存储核心130中要执行RMW操作的区域的地址ADD。
在操作S503中,可以从存储核心130读取数据DATA”和错误校正码ECC。可以基于地址ADD来选择要在存储核心130中访问的区域,并且可以通过存取电路140从存储核心130的选定区域中读取数据DATA”和错误校正码ECC。在图6中,‘601’可以代表从存储核心130的选定区域读取的数据DATA”和错误校正码ECC。参考图6的‘601’,可以看出数据DATA”包括两个信息MSG0和MSG1,每个信息包括128比特位,并且错误校正码ECC可以包括32比特位。
在操作S505中,可以基于错误校正码ECC来校正数据DATA”的错误。错误校正电路160可以基于从存取电路140传送来的错误校正码ECC来校正数据DATA”的错误。在图6中,‘603’可以代表已纠错数据DATA’。
在操作S507中,可以将已纠错数据DATA’的一部分替换为写入数据WR DATA以生成新数据DATA”。修改电路170可以基于已纠错数据DATA’和从存储器100的外部输入的写入数据WR DATA来生成新数据DATA”。由于由修改电路170生成了不同于数据DATA’的另一数据DATA”,所以该另一数据DATA”被称为新数据DATA”。在图6中,‘605’可以代表新数据DATA”。参考‘605’,可以看到,新数据DATA”是由于将已纠错数据DATA’的已纠错信息MSG0’替换为写入数据WR DATA而生成的。在此,写入数据WR DATA可以是在操作S501中通过数据接收电路105接收的写入数据。在正常写入操作期间,虽然从存储器100的外部输入的写入数据WRDATA可以包括256比特位,但是在修改-写入操作期间,写入数据WR DATA则可以包括128比特位。
在操作S509中,可以基于操作S507中的新数据DATA”来生成新错误校正码ECC。错误校正码生成电路150可以基于在操作S507中由修改电路170生成的新数据DATA”来生成新错误校正码ECC。这里,由于基于新数据而新生成了另一错误校正码,因此该另一错误校正码被称为新错误校正码ECC。在图6中,‘607’可以代表新数据DATA”和在操作S509中基于新数据DATA”生成的新错误校正码ECC。
现在,在操作S511中,可以将新数据DATA”的写入数据部分WR DATA和新错误校正码ECC写入存储核心130中。由于由设置电路120设置为第二模式,所以存取电路140可以不将整个新数据DATA”而是将新数据DATA”的写入数据部分WR DATA以及新错误校正码ECC写入存储核心130中。即,通过对在操作S503中从存储核心130读取的信息MSG1的错误进行校正而获得的信息MSG1’可以不被回写到存储核心130,而是可以被掩蔽或丢弃。在图6中,‘609’可以代表在操作S511中在存储核心130中执行的写入操作。参考‘609’,可以看出只有在操作S501中输入的写入数据WR DATA和新错误校正码ECC被写入到存储核心130中。存储核心130的在操作S511中被写入的区域可以与存储核心130的在操作S503中被读取的区域相同。
参考图5和图6,当被设置为第二模式时,在RMW操作期间从存储核心130读取的数据不会再次被写回到存储核心130。因此,可以防止错误的累积和增多。然而,在第二模式下,即使所读取的数据具有的错误在错误校正电路160的错误校正能力之内,所读取的数据(尤其是以上示例中的信息MSG1)尽管进行了错误校正也可以不被再次写回。
当存储核心130中所储存的数据中存在少量错误时,在第一模式下执行RMW操作可能是有利的,并且当在存储核心130中所储存的数据中存在许多错误时,在第二模式下执行RMW操作可能是有利的。
图7是示出根据本发明的另一实施例的存储器700的框图。
参考图7,存储器700可以包括命令接收电路701、地址接收电路703、数据接收电路705、数据传送电路707、命令解码器710、设置电路720、存储核心730、存取电路740、错误校正码生成电路750、错误校正电路760、第一修改电路770和第二修改电路780。
命令接收电路701可以接收从存储器控制器传送来的命令CMD。命令CMD可以包括多比特位信号。地址接收电路703可以接收从存储器控制器传送来的地址ADD。地址ADD可以包括多比特位信号。数据接收电路705可以接收从存储器控制器传送来的数据DATA,并且数据传送电路707可以向存储器控制器传送数据DATA。数据DATA可以包括多个比特位。在写入操作期间,可以从存储器控制器向存储器700传送数据DATA,并且在读取操作期间,可以从存储器700向存储器控制器传送数据DATA。
命令解码器710可以对经由命令接收电路701接收到的命令CMD进行解码,以查明存储器控制器指示存储器700执行何种操作,因此,可以相应地控制存储器700的组成元件。
设置电路720可以执行对于存储器700的操作而言所需的各种设置操作。当将设置命令(例如,MRS命令)识别为在命令解码器中对命令进行解码的结果时,设置电路720可以基于由地址接收电路703所接收的地址来执行设置操作。设置电路720也可以被称为模式寄存器设置(MRS)电路。从设置电路720输出的模式信号MODE可以是与读取-修改-写入(RMW)操作有关的信号,并且可以设置第一模式与第二模式中与RMW操作有关的一个模式。
存储核心730可以是存储器700中的用于储存数据的区域。存储核心730可以包括:单元阵列,其包括多个存储单元;行解码器,其用于选择在单元阵列中要访问的行;位线感测放大器阵列,用于对单元阵列中的选定行的数据进行放大;以及列解码器,用于选择在单元阵列中要访问的列。
存取电路740可以是用于对存储核心730进行存取的电路。存取电路740可以在写入操作期间向存储核心730传送数据和错误校正码,并且可以在读取操作期间从存储核心730接收数据和错误校正码。存取电路740可以包括:多个写入驱动器,用于向存储核心730中的选定列传送数据;以及多个感测放大器,用于从存储核心730中的选定列接收数据。这些感测放大器也可以被称为IO感测放大器。在RMW操作期间,存取单元740可以根据模式信号MODE的逻辑电平(即,根据第一模式和第二模式)不同地操作,这将参考图8至图11进行详细描述。
在将数据DATA”写入存储核心730的写入操作期间,错误校正码生成电路750可以基于数据DATA”生成错误校正码ECC。即,在从存储核心730读取数据DATA”的读取操作期间,通过对数据DATA”进行编码,错误校正码生成电路750可以生成用于对数据DATA”的错误进行校正的错误校正码ECC。在写入操作期间,可以仅生成错误校正码ECC,而可以不执行错误校正操作。因此,输入到错误校正码生成电路750的数据DATA”可以与从错误校正码生成电路750输出的数据DATA”相同。
基于在读取操作期间通过存取电路740从存储核心读取的错误校正码ECC,错误校正电路760可以校正通过存取电路740从存储核心读取的数据DATA”的错误。在此,“校正错误”可以表示基于错误校正码ECC来检测数据DATA”的错误,并且当检测到错误时对其予以校正。
在RMW操作期间,第一修改电路770可以通过将从存储器700的外部传送来的写入数据WR DATA与从存储器700读取的数据DATA”经错误校正而得到的数据DATA’进行组合来生成要写入的数据DATA”。在正常写入操作和正常读取操作(它们不是RMW操作)期间,数据可以绕过第一修改电路770。在正常写入操作期间,数据DATA和数据DATA”可以相同,并且在正常读取操作期间,数据DATA’和数据DATA”可以相同。
第二修改电路780可以在被设置为第二模式时操作,并且可以在第二模式的RMW操作期间通过将由第一修改电路生成的数据DATA”与从存储核心730读取的数据DATA”进行组合来生成要储存在存储核心730中的数据。
由于错误校正码ECC被储存在支持RMW操作的存储器700的存储核心730中,因此,可能优选的是,在存储器700的初始化操作期间,初始化数据(例如,‘0’)被写入存储核心730的所有区域中。
图8是描述由设置电路720设置为第一模式时的存储器700的RMW操作的流程图。图9描述了RMW操作的第一模式。
参考图8和图9,在操作S801中,可以将指示RMW操作的命令CMD和写入数据WR DATA施加到存储器700。命令CMD可以经由命令接收电路701被传送到命令解码器710,并且命令解码器710可以对命令CMD进行解码以将命令CMD识别为指示RMW操作。写入数据WR DATA可以由数据接收电路705接收。可以经由地址接收电路703来接收用于指定存储核心730中要执行RMW操作的区域的地址ADD。
在操作S803中,可以从存储核心730读取数据DATA”和错误校正码ECC。可以基于地址ADD选择要在存储核心730中访问的区域,并且可以通过存取电路740从存储核心730的选定区域中读取数据DATA”和错误校正码ECC。在图9中,‘901’可以代表从存储核心730的选定区域读取的数据DATA”和错误校正码ECC。参考图9的‘901’,可以看出数据DATA”包括两个信息MSG0和MSG1,每个信息包括128比特位,而错误校正码ECC包括32比特位。
在操作S805中,可以基于错误校正码ECC来校正数据DATA”的错误。错误校正电路760可以基于从存取电路740传送来的错误校正码ECC来校正数据DATA”的错误。在图9中,‘903’可以代表已纠错数据DATA’。
在操作S807中,可以将已纠错数据DATA’的一部分替换为写入数据WR DATA以生成新数据DATA”。修改电路770可以基于已纠错数据DATA’和从存储器的外部输入的写入数据WR DATA来生成新数据DATA”。由于通过修改电路770生成了不同于数据DATA’的另一数据DATA”,所以该另一数据DATA”被称为新数据DATA”。在图9中,‘905’可以代表新数据DATA”。参考‘905’,可以看到,新数据DATA”是通过将已纠错数据DATA’的已纠错信息MSG0’替换为写入数据WR DATA而生成的。在此,可以通过操作S801中的数据接收电路705接收写入数据WR DATA。在正常写入操作期间,从存储器700的外部输入的写入数据WR DATA可以是256比特位,但是在修改-写入操作期间,写入数据WR DATA则可以是128比特位。
在操作S809中,可以基于操作S807的新数据DATA”来生成新错误校正码ECC。错误校正码生成电路750可以基于在操作S807中由修改电路770生成的新数据DATA”来生成新错误校正码ECC。这里,由于基于新数据而新生成了另一错误校正码,因此该另一错误校正码被称为新错误校正码ECC。在图9中,‘907’可以代表新数据DATA”和在操作S809中基于新数据DATA”而生成的新错误校正码ECC。
现在,在操作S811中,可以将新数据DATA”和新错误校正码ECC写入存储核心730中。新数据DATA”和新错误校正码ECC可以通过存取电路740被传送到存储核心730,而新数据DATA”和新错误校正码ECC可以被写入到存储核心730的基于地址ADD而选定的区域中。存储核心730中在操作S811中被写入的区域可以与存储核心730中的在操作S803中被读取的区域相同。
由于存储器700的在第一模式下的RMW操作以与存储器100的在第一模式下的RMW操作按照相同的方式执行,因此当存在许多错误时,可能会导致使错误增多的问题。
图10是描述由设置电路720设置为第二模式时的存储器700的RMW操作的流程图。图11描述了RMW操作的第二模式。
参考图10和图11,在操作S1001中,可以将指示RMW操作的命令CMD和写入数据WRDATA施加到存储器700。命令CMD可以经由命令接收电路701被传送到命令解码器710,并且命令解码器710可以对命令CMD进行解码以将命令CMD识别为指示RMW操作。写入数据WRDATA可以由数据接收电路705接收。可以通过地址接收电路703来接收用于指定存储核心730中要执行RMW操作的区域的地址ADD。
在操作S1003中,可以从存储核心730读取数据DATA”和错误校正码ECC。可以基于地址ADD来选择要在存储核心730中访问的区域,并且可以通过存取电路740从存储核心730的选定区域中读取数据DATA”和错误校正码ECC。在图11中,‘1101’可以代表从存储核心730的选定区域读取的数据DATA”和错误校正码ECC。参考图11的‘1101’,可以看出数据DATA”包括两个信息MSG0和MSG1,每个信息包括128比特位,并且错误校正码ECC可以包括32比特位。
在操作S1005中,可以基于错误校正码ECC来校正数据DATA”的错误。错误校正电路760可以基于从存取电路740传送来的错误校正码ECC来校正数据DATA”的错误。在图11中,‘1103’可以代表已纠错数据DATA’。
在操作S1007中,可以将已纠错数据DATA’的一部分替换为写入数据WR DATA以生成新数据DATA”。修改电路170可以基于已纠错数据DATA’和从存储器700的外部输入的写入数据WR DATA来生成新数据DATA”。由于通过修改电路770生成了不同于数据DATA’的另一数据DATA”,所以该另一数据DATA”被称为新数据DATA”。在图11中,‘1105’可以代表新数据DATA”。参考‘1105’,可以看到,新数据DATA”是通过将已纠错数据DATA’的已纠错信息MSG0’替换为写入数据WR DATA而生成的。在此,写入数据WR DATA可以是在操作S1001中通过数据接收电路705接收的写入数据。在正常写入操作期间,从存储器700的外部输入的写入数据WR DATA可以为256比特位,但是在修改-写入操作期间,写入数据WR DATA则可以为128比特位。
在操作S1009中,可以基于操作S1007中的新数据DATA”来生成新错误校正码ECC。错误校正码生成电路750可以基于在操作S1007中由修改电路770生成的新数据DATA”来生成新错误校正码ECC。在这种情况下,由于基于新数据而新生成了另一错误校正码,因此该另一错误校正码被称为新错误校正码ECC。在图11中,‘1107’可以代表新数据DATA”和在操作S1009中基于新数据DATA”生成的新错误校正码ECC。
在操作S1011中,可以基于在操作S1007中生成的新数据DATA”和在操作S1003中读取的读取数据DATA”来生成新写入数据NEW_WR_DATA。第二修改电路780可以通过将由第一修改电路770生成的新数据DATA”中的除写入数据WR DATA之外的已纠错信息MSG1’替换为在操作S1003中读取的信息MSG1,来生成新写入数据NEW_WR_DATA。在图11中,‘1109’可以代表通过用在操作S1003中读取的信息MSG1替换新数据DATA”中的已纠错信息MSG1’而生成的新写入数据NEW_WR_DATA。即,可以看出,在新写入数据NEW_WR_DATA中保存(secured)了在操作S1003中读取的信息MSG1而不是对其进行错误校正。
在操作S1013中,新写入数据NEW_WR_DATA和新错误校正码ECC可以被写到存储核心730中。由于由设置电路720设置为第二模式,因此存取电路740可以将新写入数据NEW_WR_DATA(不是新数据DATA”)和新错误校正码ECC写入存储核心730。
如图10至图11所示,当被设置为第二模式时,在RMW操作期间从存储核心730读取的数据可以照原样被回写到存储核心730。因此,可以防止由于执行RMW操作而使错误累积并增多的现象。
当存储核心730中所储存的数据中存在少量错误时,在第一模式下执行RMW操作可能是有利的。当存储核心730中所储存的数据中存在许多错误时,在第二模式下执行RMW操作可能是有利的。
根据本发明的实施例,可以减少错误的数量。
尽管已经针对特定实施例描述了本发明,但是对于本领域技术人员而言显而易见的是,在不脱离如所附权利要求所限定的本发明的精神和范围的情况下,可以进行各种改变和修改。
Claims (18)
1.一种用于操作存储器的方法,包括:
从存储核心读取数据和错误校正码;
基于所读取的错误校正码对所读取的数据的错误进行校正,从而产生已纠错数据;
通过将所述已纠错数据的一部分替换为写入数据来生成新数据,所述一部分成为新数据的写入数据部分;
基于所述新数据而生成新错误校正码;以及
将所述新数据的写入数据部分和所述新错误校正码写入所述存储核心。
2.根据权利要求1所述的方法,其中,所述写入步骤包括丢弃所述新数据的除所述写入数据部分之外的其余部分。
3.根据权利要求2所述的方法,进一步包括:在所述读取步骤之前:
接收读取-修改-写入(RMW)命令;以及
接收所述写入数据。
4.根据权利要求3所述的方法,进一步包括:在接收到所述RMW命令之前,确定是否在RMW操作期间执行所述丢弃步骤。
5.一种用于操作存储器的方法,包括:
从存储核心读取第一数据、第二数据和错误校正码;
基于所读取的错误校正码来校正所读取的第一数据和所读取的第二数据的错误;
通过将已纠错的所述第一数据与写入数据进行组合而生成新数据;
基于所述新数据而生成新错误校正码;以及
将所述已纠错的第一数据、所读取的第二数据和所述新错误校正码写入所述存储核心。
6.根据权利要求5所述的方法,在所述读取步骤之前,进一步包括:
接收读取-修改-写入(RMW)命令;以及
接收所述写入数据。
7.根据权利要求6所述的方法,进一步包括:
在接收到所述读取-修改-写入命令之前,确定是否在读取-修改-写入操作期间回写。
8.一种存储器,包括:
存储核心;
存取电路,其适用于对所述存储核心进行存取;
错误校正电路,其适用于校正错误;
错误校正码生成电路,其适用于生成错误校正码;和
修改电路,其适用于修改数据,
其中,在读取-修改-写入(RMW)操作期间:
基于通过所述存取电路从所述存储核心读取的所述错误校正码,所述错误校正电路对从所述存储核心读取的数据的错误进行校正;
所述修改电路通过将经所述错误校正电路校正了错误的所述读取数据的一部分替换为写入数据来生成新数据,所述一部分成为所述新数据的写入数据部分;
所述错误校正码生成电路基于所述新数据而生成新错误校正码;
当设置为第一模式时,所述存取电路将所述新数据和所述新错误校正码写入所述存储核心;以及
当设置为第二模式时,所述存取电路将所述新数据的写入数据部分和所述新错误校正码写入所述存储核心。
9.根据权利要求8所述的存储器,其中,当设置为所述第二模式时,所述存取电路丢弃所述新数据的除所述写入数据部分之外的其余部分。
10.根据权利要求8所述的存储器,进一步包括:
命令解码器,其适用于对命令进行解码;以及
数据接收电路,其适用于接收所述写入数据。
11.根据权利要求10所述的存储器,进一步包括:设置电路,其适用于设置所述第一模式和所述第二模式。
12.根据权利要求8所述的存储器,其中,所述存取电路还适用于在所述存储器初始化时将初始化数据写入所述存储核心。
13.一种存储器,包括:
存储核心;
存取电路,其适用于对所述存储核心进行存取;
错误校正电路,其适用于校正错误;
错误校正码生成电路,其适用于生成错误校正码;和
第一修改电路和第二修改电路,其适用于修改数据,
其中,在读取-修改-写入(RMW)操作期间:
基于通过所述存取电路从所述存储核心读取的所述错误校正码,所述错误校正电路对从所述存储核心读取的第一数据和第二数据的错误进行校正;
所述第一修改电路通过将经所述错误校正电路校正了错误的所述第一数据与写入数据进行组合来生成新数据;
所述错误校正码生成电路基于所述新数据而生成新错误校正码,
当设置为第一模式时,所述存取电路将所述新数据和所述新错误校正码写入所述存储核心,
当设置为第二模式时,所述第二修改电路通过将其已纠错的所述第一数据与所读取的第二数据进行组合来生成新写入数据,
当设置为所述第二模式时,所述存取电路将所述新写入数据与所述新错误校正码写入所述存储核心。
14.根据权利要求13所述的存储器,进一步包括:
命令解码器,其适用于对命令进行解码;和
数据接收电路,其适用于接收所述写入数据。
15.根据权利要求14所述的存储器,进一步包括:设置电路,其适用于设置所述第一模式和所述第二模式。
16.一种存储器的操作方法,所述操作方法包括:
分别从第一区域至第三区域读取数据的第一段和第二段以及基于所述第一段和第二段的原始版本所生成的第一错误校正码(ECC);
基于所述第一ECC,对所述第一段和第二段执行错误校正操作,从而产生分别与所述第一段和第二段相对应的第三段和第四段数据;
生成基于所述第四段的第二ECC以及与所述第一段相对应的第五段数据;
将所述第五段和所述第二ECC分别写入所述第一区域和所述第三区域,而不将所述第四段写入所述第二区域。
17.根据权利要求16所述的操作方法,其中,所述写入步骤包括掩蔽所述第四段。
18.根据权利要求16所述的操作方法,其中,所述写入步骤包括:将所述第二段回写到所述第二区域中。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063042230P | 2020-06-22 | 2020-06-22 | |
US63/042,230 | 2020-06-22 | ||
US202063080850P | 2020-09-21 | 2020-09-21 | |
US63/080,850 | 2020-09-21 | ||
KR10-2020-0150043 | 2020-11-11 | ||
KR1020200150043A KR20210157830A (ko) | 2020-06-22 | 2020-11-11 | 메모리 및 메모리의 동작 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113903390A true CN113903390A (zh) | 2022-01-07 |
Family
ID=79023527
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110636133.8A Withdrawn CN113903390A (zh) | 2020-06-22 | 2021-06-08 | 存储器和存储器的操作方法 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11698835B2 (zh) |
KR (1) | KR20210157830A (zh) |
CN (1) | CN113903390A (zh) |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3177207B2 (ja) * | 1998-01-27 | 2001-06-18 | インターナショナル・ビジネス・マシーンズ・コーポレ−ション | リフレッシュ間隔制御装置及び方法、並びにコンピュータ |
US20040163027A1 (en) * | 2003-02-18 | 2004-08-19 | Maclaren John M. | Technique for implementing chipkill in a memory system with X8 memory devices |
JP3892832B2 (ja) * | 2003-08-11 | 2007-03-14 | 株式会社東芝 | 半導体記憶装置 |
JP4041076B2 (ja) * | 2004-02-27 | 2008-01-30 | 株式会社東芝 | データ記憶システム |
JP4523886B2 (ja) * | 2005-07-08 | 2010-08-11 | 富士通株式会社 | 動画像復号装置、動画像復号方法および動画像復号プログラム |
US8762620B2 (en) * | 2007-12-27 | 2014-06-24 | Sandisk Enterprise Ip Llc | Multiprocessor storage controller |
US8281227B2 (en) * | 2009-05-18 | 2012-10-02 | Fusion-10, Inc. | Apparatus, system, and method to increase data integrity in a redundant storage system |
US9350386B2 (en) * | 2012-04-12 | 2016-05-24 | Samsung Electronics Co., Ltd. | Memory device, memory system, and method of operating the same |
JP5908375B2 (ja) * | 2012-08-30 | 2016-04-26 | ルネサスエレクトロニクス株式会社 | 半導体記憶装置 |
US9141478B2 (en) * | 2014-01-07 | 2015-09-22 | International Business Machines Corporation | Reconstructive error recovery procedure (ERP) using reserved buffer |
CN107003857B (zh) * | 2014-12-19 | 2019-06-18 | 美光科技公司 | 用于流水线处理具有纠错译码的存储器操作的方法 |
KR20190031787A (ko) | 2017-09-18 | 2019-03-27 | 삼성전자주식회사 | 병렬 리드-모디파이-라이트 동작을 수행하는 메모리 장치 |
US10769013B1 (en) * | 2018-06-11 | 2020-09-08 | Cadence Design Systems, Inc. | Caching error checking data for memory having inline storage configurations |
KR20200046245A (ko) * | 2018-10-24 | 2020-05-07 | 삼성전자주식회사 | 메모리 모듈 및 메모리 시스템의 동작 방법 |
US11693790B2 (en) * | 2019-05-24 | 2023-07-04 | Texas Instmments Incorporated | Methods and apparatus to facilitate write miss caching in cache system |
US11442808B2 (en) * | 2020-03-12 | 2022-09-13 | Kioxia Corporation | Memory system |
-
2020
- 2020-11-11 KR KR1020200150043A patent/KR20210157830A/ko unknown
-
2021
- 2021-05-25 US US17/329,681 patent/US11698835B2/en active Active
- 2021-06-08 CN CN202110636133.8A patent/CN113903390A/zh not_active Withdrawn
-
2023
- 2023-02-27 US US18/174,648 patent/US11928026B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
KR20210157830A (ko) | 2021-12-29 |
US20230222033A1 (en) | 2023-07-13 |
US20210397515A1 (en) | 2021-12-23 |
US11698835B2 (en) | 2023-07-11 |
US11928026B2 (en) | 2024-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7899980B2 (en) | Flash memory system and data writing method thereof | |
JP3892832B2 (ja) | 半導体記憶装置 | |
US10803971B2 (en) | Device for supporting error correction code and test method thereof | |
US11557366B2 (en) | Memory, memory system, operation method of the memory, and operation of the memory system | |
US10658064B2 (en) | Memory device and test method thereof | |
US11651832B2 (en) | Memory device and test method thereof | |
US20180336091A1 (en) | Method of Correcting an Error in a Memory Array in a DRAM During a Read Operation and a DRAM | |
KR20180038339A (ko) | 셀어레이 불량 테스트 방법 및 이를 수행하는 반도체장치 | |
JP2012119038A (ja) | 不揮発性半導体メモリ及び記憶装置 | |
US11188417B2 (en) | Memory system, memory module, and operation method of memory system | |
KR20180022014A (ko) | 반도체장치 | |
US7075851B2 (en) | Semiconductor memory device inputting/outputting data and parity data in burst operation | |
CN113903390A (zh) | 存储器和存储器的操作方法 | |
CN116153378A (zh) | 错误检查刷写操作方法和使用该方法的半导体系统 | |
US20210257040A1 (en) | Memory device and test method thereof | |
CN110058955B (zh) | 具有错误纠正功能的内存和相关内存系统 | |
KR20180027655A (ko) | 테스트방법 및 이를 이용한 반도체시스템 | |
KR20170143084A (ko) | 반도체장치 및 반도체시스템 | |
US11763909B2 (en) | Memory and operation method of memory | |
US20230385147A1 (en) | Memory control circuit, memory, and memory module | |
US20240029810A1 (en) | Memory, memory system and operation method of memory system | |
US20240168845A1 (en) | Memory including error correction circuit and operating method thereof | |
KR20180027656A (ko) | 반도체장치 및 반도체시스템 | |
CN117393030A (zh) | 存储器、存储系统及存储器的操作方法 | |
JP2012230730A (ja) | 半導体装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20220107 |