CN109524051A - 用于执行并行读取-修改-写入操作的存储器器件 - Google Patents
用于执行并行读取-修改-写入操作的存储器器件 Download PDFInfo
- Publication number
- CN109524051A CN109524051A CN201810588868.6A CN201810588868A CN109524051A CN 109524051 A CN109524051 A CN 109524051A CN 201810588868 A CN201810588868 A CN 201810588868A CN 109524051 A CN109524051 A CN 109524051A
- Authority
- CN
- China
- Prior art keywords
- data
- parity
- circuit
- generate
- corrected
- 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.)
- Granted
Links
Classifications
-
- 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
- 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
- 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/1044—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 with specific ECC/EDC distribution
-
- 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/1072—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 in multilevel memories
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
Abstract
本发明提供了一种被配置为执行并行读取‑修改‑写入操作的存储器器件,其根据数据掩码选项生成用于从存储器单元阵列读取的第一部分数据和第二部分数据的纠正子,纠正第二部分数据的错误,通过组合第二数据与经纠正的第二部分数据来生成合并的数据,并生成用于合并的数据的内部奇偶校验。存储器器件将第二部分数据设置为二进制值0,通过组合设置为二进制值0的第二部分数据和第二数据来生成第三数据,生成用于第三数据的第三奇偶校验,并基于纠正子、部分奇偶校验和第三奇偶校验来生成用于合并的数据的内部奇偶校验。
Description
相关申请的交叉引用
本申请要求于2017年9月18日向韩国知识产权局提交的韩国专利申请第10-2017-0119661号的权益和优先权,其公开内容通过引用整体并入本文。
技术领域
本发明构思涉及一种纠错电路和包括该纠错电路的存储器器件,并且更具体地,涉及一种纠错电路和包括该纠错电路的被配置为执行读取-修改-写入操作的存储器器件。
背景技术
存储器器件可提供数据掩码选项,用于执行掩码写入操作,在该掩码写入操作中写入操作中的数据字的一个或一个以上部分保持旧数据值,且数据字的一个或一个以上其他部分被一个新的数据值更新。掩码写入操作可以包括读取旧数据、经由纠错码(ECC)电路修改旧数据和新数据的奇偶校验位、写入其中组合了旧数据和新数据的数据并改变奇偶校验位。为了满足存储器器件的高速定时要求,可能期望更高速度地在掩码写入操作中执行读取-修改-写入操作。
发明内容
本发明构思提供了一种纠错码(ECC)电路和一种存储器器件,以及一种操作ECC电路来执行并行读取-修改-写入操作的方法。
根据本发明构思的一个方面,提供了一种纠错码(ECC)电路,包括:第一ECC电路,其被配置为接收包括第一部分数据和第二部分数据的第一数据以及第二数据,以纠正第二部分数据中的一个或多个错误,并通过组合第二数据和经纠正的第二部分数据来生成合并的数据;以及第二ECC电路,其被配置为将第二部分数据设置为二进制值0,通过组合被设置为二进制值0的第二部分数据和第二数据来生成第三数据,生成用于第三数据的第三奇偶校验,并通过使用第三奇偶校验生成用于合并的数据的内部奇偶校验。
根据本发明构思的另一方面,提供了一种存储器器件,包括:存储器单元阵列,其包括多个存储器单元并且被配置为根据数据掩码选项输出存储在存储器单元中的第一数据;以及纠错电路,其被配置为根据数据掩码选项基于第一数据和第二数据生成合并的数据和用于合并的数据的内部奇偶校验,其中,纠错电路包括:第一ECC电路,其被配置为接收包括第一部分数据和第二部分数据的第一数据以及第二数据,纠正包括在第二部分数据中的一个或多个错误,并通过组合第二数据和经纠正的第二部分数据来生成合并的数据;以及第二ECC电路,其被配置为将第二部分数据设置为二进制值0,通过组合设置为二进制值0的第二部分数据和第二数据来生成第三数据,生成用于第三数据的第三奇偶校验,并通过使用第三奇偶校验生成用于合并的数据的内部奇偶校验。
根据本发明构思的另一方面,提供了一种操作方法,包括:(a)接收包括第一部分数据和第二部分数据的第一数据以及第二数据;(b)纠正第二部分数据中的一个或多个错误;(c)通过组合第二数据和经纠正的第二数据来生成合并的数据;(d)将第二部分数据设置为二进制值0,并通过组合被设置为二进制值0的第二部分数据和第二数据来生成第三数据;(e)生成用于第三数据的第三奇偶校验;以及(f)通过使用第三奇偶校验生成用于合并的数据的内部奇偶校验。
附图说明
根据以下结合附图的详细描述,将更清楚地理解本发明构思的实施例,其中:
图1是示出根据本发明构思的一些实施例的执行并行读取-修改-写入操作的存储器器件的框图;
图2是示出根据本发明构思的一些实施例的纠错电路的框图;
图3是示出图2中的第一奇偶校验生成电路的一部分的电路图;
图4是用于解释根据本发明构思的一些实施例的纠错电路的操作的流程图;
图5是示出根据本发明构思的一些实施例的根据纠错电路的操作的数据结构的图;
图6是示出根据本发明构思的实施例将执行并行读取-修改-写入操作的存储器器件应用于计算***的示例的框图;以及
图7是示出根据本发明构思的实施例将执行并行读取-修改-写入操作的存储器器件应用于移动设备的示例的框图。
具体实施方式
图1是示出根据本发明构思的一些实施例的执行并行读取-修改-写入操作的存储器器件100的框图。
参考图1,存储器器件100可以包括存储器单元阵列110、命令地址控制电路120、数据控制电路130和纠错电路140。
存储器单元阵列110可以包括以行和列排列的矩阵形式提供的多个存储器单元。存储器单元阵列110可以包括被连接到存储器单元的多个字线和多个位线。多个字线可以被连接到存储器单元的行,并且多条位线可以被连接到存储器单元的列。存储器单元阵列110的存储器单元可以包括动态随机存取存储器(DRAM)单元、静态RAM(SRAM)单元、闪存单元、相变RAM(PRAM)单元、电阻RAM(ReRAM)单元、磁阻RAM(MRAM)单元或其他类型的存储器单元。
存储器单元阵列110可以包括与存储器器件100相关联的典型电路,诸如行解码器、列解码器和感测放大器。行解码器可以选择连接到存储器单元阵列110的多个字线中的任意一个。行解码器可以对从命令地址控制电路120接收到的行地址进行解码,选择对应于行地址的任意一个字线,并激活所选定的字线。
列解码器可以选择存储器单元阵列110的多个位线中的特定位线。列解码器可以解码从命令地址控制电路120接收到的列地址,并选择对应于列地址的特定位线。感测放大器可以被连接到存储器单元阵列110的位线。
感测放大器可以感测多个位线中的所选定的位线的电压变化,并放大和输出所感测的电压变化。由感测放大器基于所感测并放大的电压输出的数据可以经由数据控制电路130和数据输入/输出引脚被输出到外部(例如,到外部器件)。
命令地址控制电路120可以从存储器器件100的外部器件,例如中央处理单元(CPU)或存储器控制器,接收命令地址信号CA。可以通过组合所接收到的命令地址信号CA来生成激活命令、读取命令、写入命令、预充电命令等。
命令地址控制电路120可以接收指示读取-修改-写入命令RMW的命令地址信号CA。读取-修改-写入命令RMW可被提供给数据控制电路130以执行掩码写入操作或读取-修改-写入操作。在下文中,将掩码写入操作统称为读取-修改-写入操作。
命令地址控制电路120可以接收指示要在存储器单元阵列110中访问的存储器单元的地址ADDR的命令地址信号CA。可以将地址ADDR提供给存储器单元阵列110并且可以执行由地址ADDR寻址的存储器单元的数据访问操作。
数据访问操作可以被配置为将多个数据字存储在地址ADDR的存储器单元中并读取所存储的数据字。每个数据字可以包括例如128位的数据。作为另一示例,每个数据字可以包括32个数据位、64个数据位、256个数据位、512个数据位等的数据。
存储在存储器单元阵列110中的数据字可以包括软数据错误或硬数据错误。数据字中的一个或多个数据位可以在存储到存储器单元阵列110中或从存储器单元阵列110读取期间翻转,并且因此可以改变其值。或者,存储器单元阵列110中的存储器单元可能被损坏,从而防止精确的存储和读取一个或多个数据位。因此,可以假定从存储器单元阵列110读取的数据字包括这样的数据错误。
为了减少数据错误,存储器器件100可包括纠错电路140,以生成包含用于数据字的一个或一个以上奇偶校验位的奇偶校验,并将所生成的奇偶校验存储在存储器单元阵列110中。可以将对存储器单元阵列110的数据存取操作输出的数据作为其中奇偶校验被添加到数据字的码字提供给纠错电路140。
从存储器单元阵列110输出到纠错电路140的码字将被称为与读取-修改-写入操作相关联的读取数据READ_DATA。读取数据READ_DATA可以包括作为数据字的第一数据OLD_DATA和用于第一数据OLD_DATA的第一奇偶校验OP。作为示例,存储器单元阵列110可以输出136位的读取数据READ_DATA,第一数据OLD_DATA可以包括128位的数据,并且第一奇偶校验OP可以包括8位的数据。应该理解的是,虽然这里可以使用术语第一、第二、第三等来描述各种元件,但是元件不应该被这些术语限制;相反,这些术语仅用于区分一个元件与另一个元件。因此,在不脱离本发明构思的范围的情况下,下面讨论的第一元件可以被称为第二元件。
数据控制电路130可以经由数据输入/输出引脚接收写入数据WRITE_DATA以及数据掩码信号DM。数据掩码信号DM可以指示要在接收到的写入数据WRITE_DATA中更新的新位(或字节)以及要作为读取数据READ_DATA的第一数据OLD_DATA保留的先前位(或字节)。
对应于数据掩码信号DM的逻辑低的写入数据WRITE_DATA的匹配位将被作为新数据写入存储器单元阵列110。对应于数据掩码信号DM的逻辑高的写入数据WRITE_DATA的匹配位将被掩码并保留为第一数据OLD_DATA的匹配位。
在该实施例中,假定从存储器单元阵列110输出的读取数据READ_DATA包括第一数据OLD_DATA和第一奇偶校验OP,并且写入数据WRITE_DATA中的未掩码数据包括第二数据NEW_DATA或新数据N1。另外,假定第一数据OLD_DATA包括第一部分数据O1和第二部分数据O2。从读取-修改-写入操作的方面来看,定义第一部分数据O1是要被更新作为第二数据NEW_DATA或新数据N1的数据,第二部分数据O2是要被保留在经掩码的写入数据WRITE_DATA中的先前数据。
作为说明,可将128位的写入数据WRITE_DATA应用到存储器器件100。在128位的写入数据WRITE_DATA中,根据数据掩码选项,第二数据NEW_DATA或新数据N1可包括120位。128位的写入数据WRITE_DATA的其余8位可以包括第二部分数据O2。因此,可以将第一部分数据O1更新为120位的第二数据NEW_DATA或新数据N1,并且可以保留8位的第二部分数据O2。
当未提供存储器器件100的数据掩码选项时,纠错电路140可为写入数据WRITE_DATA生成奇偶校验。在这种情况下,写入数据WRITE_DATA可以是要写入存储器单元阵列110中的全新数据。全新的写入数据WRITE_DATA的奇偶校验可以与写入数据WRITE_DATA一起被存储在存储器单元阵列110中。当从存储器单元阵列110读取数据时,纠错电路140可以解码奇偶校验以检测和/或纠正读取数据或奇偶校验中的任何错误。
当提供了存储器器件100的数据掩码选项时,写入数据WRITE_DATA中的新数据N1可与经掩码部分的先前数据组合。然而,由于在组合新数据N1和先前数据之前的先前数据中可能存在一个或多个错误,因此可能需要对先前数据进行纠错操作。另外,可能需要为其中组合了新数据N1和先前数据的数据生成新的奇偶校验。但是,在生成新奇偶校验之前,可能需要执行先前奇偶校验的纠错操作。
这里,经组合的数据的新奇偶校验不仅可以取决于写入数据WRITE_DATA的新数据N1,而且也取决于经掩码的先前数据。当顺序执行纠错操作的步骤时,纠错操作所需的时间可能很长。由于这个原因,在高速存储器器件的情况下,顺序纠错操作可能是不合适的。另一方面,当根据本发明构思的实施例并行地执行纠错操作的步骤时,存储器器件100可以满足高速定时要求。
纠错电路140可以根据数据掩码操作并行地执行读取-修改-写入操作操作步骤。换句话说,纠错电路140可以同时执行生成其中组合或合并了新数据N1和先前数据的数据的操作,以及为组合或合并的数据生成奇偶校验的操作。因此,可以在短时间内执行读取-修改-写入操作。
纠错电路140可以并行执行通过组合新数据N1和先前数据来生成合并的数据MERGED_DATA的操作,以及生成用于合并的数据MERGED_DATA的内部奇偶校验NP的操作。
在纠错电路140中,用于生成合并的数据MERGED_DATA的操作可以包括:接收包括第一部分数据O1和第二部分数据O2的第一数据OLD_DATA,以及第二数据NEW_DATA;生成指示第一部分数据O1和第二部分数据O2中存在一个或多个错误的纠正子(syndrome);并通过解码纠正子来纠正包括在第一部分数据O1和第二部分数据O2中的一个或多个错误。
另外,用于生成合并的数据MERGED_DATA的操作还可以包括:将第一部分数据O1设置为二进制值0;将为二进制值0的第一部分数据O1与经纠正的第二部分数据O2进行组合;并通过使用经组合的数据来生成用于经纠正的第二部分数据O2的部分奇偶校验。根据本发明构思的一些实施例,生成用于经纠正的第二部分数据O2的部分奇偶校验的操作可以包括:将经纠正的第一部分数据O1而不是具有二进制值0的第一部分数据设置为二进制值0;组合为二进制值0的经纠正的第一部分数据O1和经纠正的第二部分数据O2;并通过使用经组合的数据来为经纠正的第二部分数据O2生成部分奇偶校验。
此后,用于生成合并的数据MERGED_DATA的操作还可以包括通过组合第二数据NEW_DATA和经纠正的第二部分数据O2来生成合并的数据MERGED_DATA的操作。
在纠错电路140中,用于生成用于合并的数据MERGED_DATA的内部奇偶校验NP的操作可以包括:将第二部分数据O2设置为二进制值0;在将第二部分数据O2设置为二进制值0之后,通过组合第二数据NEW_DATA和为二进制值0的第二部分数据O2来生成第三数据;为第三数据生成第三奇偶校验;并基于纠正子、部分奇偶校验和第三奇偶校验来生成用于合并的数据MERGED_DATA的内部奇偶校验位NP。
图2是示出根据本发明构思的一些实施例的纠错电路140的框图。为了便于解释,假设从存储器单元阵列110输出的136位的读取数据READ_DATA包括128位的第一数据OLD_DATA和8位的第一奇偶校验OP。
参考图2,纠错电路140可以包括第一奇偶校验生成电路212、读取数据纠正电路214和第一合并电路216。第一奇偶校验生成电路212、读取数据纠正电路214和第一合并电路216可以生成其中组合了第二数据NEW_DATA或新数据N1以及第二部分数据O2或先前数据的数据,即,合并的数据MERGED_DATA。
第一奇偶校验生成电路212可以接收由第一数据OLD_DATA和用于第一数据OLD_DATA的第一奇偶校验OP组成的读取数据READ_DATA。第一奇偶校验生成电路212可以生成指示在包括第一部分数据O1和第二部分数据O2的第一数据OLD_DATA中存在一个或多个错误的纠正子S。第一奇偶校验生成电路212可以生成用于128位的第一数据OLD_DATA的8位的纠正子S。
读取数据纠正电路214可以通过解码纠正子S来提供第一数据OLD_DATA中存在的错误的位置。读取数据纠正电路214可以通过解码8位的纠正子S来生成128位的解码信号。128位的解码信号可以以位为单位与128位的第一数据OLD_DATA一一对应。作为示例,在128位的解码信号中,二进制值1可以指示第一数据OLD_DATA的匹配位是错误的。
读取数据纠正电路214可以通过使用128位的解码信号来纠正128位的第一数据OLD_DATA的错误。作为第一数据OLD_DATA的纠错的结果,可以生成经纠正的第一部分数据O1*和经纠正的第二部分数据O2*。经纠正的第二部分数据O2*可以被提供给第一奇偶校验生成电路212和第一合并电路216。
第一奇偶校验生成电路212可以通过使用具有快速处理时间的汉明码或扩展汉明码来为经纠正的第二部分数据O2*生成部分奇偶校验PP。
汉明码可以被添加到底层数据,并且当错误率很小时,可以检测和纠正错误。通常,汉明距离为3的汉明码可以检测和纠正单个位错误,但是可能不能够检测某些码字的双位错误。当汉明码由额外的奇偶校验位扩展时,解码器可以检测并纠正单个位错误,并同时检测双位错误。此时,汉明码的最小汉明距离可以增加到4。该扩展汉明码被称为单纠错双检错(SECDED)码,并且通常用于保持数据完整性。
SECDED码可以是作为线性纠错码的汉明码的服务器级码。更一般地,可以使用(n,k)二进制汉明码(n和k是整数)来将k位数据编码为n位(n>k)的码字。总共n个位不仅可以包括(n-k)个奇偶校验位(或校验位),还可以包括k个数据位。
根据一些实施例,第一奇偶校验生成电路212可以通过使用Bose ChaudhuriHocquenghem(BCH)码和Reed-Solomon(RS)码来生成部分奇偶校验PP。BCH码可以是使用伽罗瓦域操作的块码(block code)之一。根据诸如BCH码和RS码的块码,可以通过使用错误位置搜索等式来计算错误位置。例如,可以通过将伽罗瓦域中不是0的每个元素顺序地代入错误位置搜索方程来搜索错误位置搜索方程的根来执行错误位置搜索。
第一奇偶校验生成电路212可以将与经纠正的第一部分数据O1*相对应的位设置为二进制值0。第一奇偶校验生成电路212可以组合被设置为二进制值0的经纠正的第一部分数据O1*和经纠正的第二部分数据O2*,并且可以通过使用所组合的数据生成用于第二部分数据O2*的部分奇偶校验PP。根据一些实施例,第一奇偶校验生成电路212可将与第一部分数据O1相对应的位设置为二进制值0,组合被设置为二进制值0的第一部分数据O1与经纠正的第二部分数据O2*,并且通过使用组合的数据来生成用于经纠正的第二部分数据O2*的部分奇偶校验PP。
在第一奇偶校验生成电路212中生成的纠正子S和部分奇偶校验PP可以被提供给奇偶校验纠正电路226。
第一合并电路216可通过组合作为写入数据WRITE_DATA的新数据的第二数据NEW_DATA与经纠正的第二部分数据O2*来生成合并的数据MERGED_DATA。合并的数据MERGED_DATA可以作为读取-修改-写入操作的最终数据被写入存储器单元阵列(图1中的110)。
第一奇偶校验生成电路212、读取数据纠正电路214和第一合并电路216可以是基于错误检测和纠正操作(即,ECC操作)来生成合并的数据MERGED_DATA的电路。因此,第一奇偶校验生成电路212、读取数据纠正电路214和第一合并电路216可以被称为第一ECC电路210。
第一ECC电路210可以接收包括第一部分数据O1和第二部分数据O2的第一数据OLD_DATA,通过纠正第一数据OLD_DATA中的错误来生成经纠正的第二部分数据O2*,并通过组合作为写入数据WRITE_DATA的新数据N1的第二数据NEW_DATA与经纠正的第二部分数据O2*来生成合并的数据MERGED_DATA。用于合并的数据MERGED_DATA的内部奇偶校验NP可以在第二ECC电路220中生成。
第二ECC电路220可使用从第一ECC电路210的第一奇偶校验生成电路212提供的部分奇偶校验PP和纠正子S以生成用于合并的数据MERGED_DATA的内部奇偶校验NP。第二ECC电路220可以包括第二合并电路222、第二奇偶校验生成电路224和奇偶校验纠正电路226。
第二合并电路222可以接收作为写入数据WRITE_DATA中的新数据N1的第二数据NEW_DATA。第二合并电路222可以将在写入数据WRITE_DATA中经掩码的所有数据位设置为二进制值0。由于在写入数据WRITE_DATA中经掩码的数据位与作为先前数据的第二部分数据O2相同,设置为二进制值0的数据位可以对应于第二部分数据O2。因此,第二合并电路222可以将第二部分数据O2设置为二进制值0。第二合并电路222可以通过组合第二数据NEW_DATA和为二进制值0的第二部分数据O2来生成第三数据MOD_DATA。因此,第三数据MOD_DATA可以被称为编码(或修改)数据,使得为二进制值0的位被包括在第二数据NEW_DATA中。第三数据MOD_DATA可以被提供给第二奇偶校验生成电路224。
第二奇偶校验生成电路224可以接收第三数据MOD_DATA,并通过使用汉明码或扩展汉明码来生成第三数据MOD_DATA的第三奇偶校验IP。根据一些实施例,第二奇偶校验生成电路224可以通过使用BCH码和RS码来生成用于第三数据MOD_DATA的第三奇偶校验IP。第三奇偶校验IP可以被提供给奇偶校验纠正电路226。
奇偶校验纠正电路226可以接收第一奇偶校验生成电路212的纠正子S、部分奇偶校验PP和第二奇偶校验生成电路224的第三奇偶校验IP。奇偶校验纠正电路226可以基于纠正子S、部分奇偶校验PP和第三奇偶校验IP生成内部奇偶校验NP。内部奇偶校验NP可以是在第一ECC电路210中生成的用于合并的数据MERGED_DATA的奇偶校验。
合并的数据MERGED_DATA和内部奇偶校验NP可以经由数据控制电路(图1中的130)被提供给存储器单元阵列(图1中的110)。合并的数据MERGED_DATA和内部奇偶校验位NP可以写入由地址(图1中的ADDR)寻址的存储器单元。
图3是示出图2中的第一奇偶校验生成电路212的一部分的电路图。
参照图3,第一奇偶校验生成电路212可以生成指示从存储器单元阵列110输出的数据中存在一个或多个错误的纠正子S,例如,128位第一数据OLD_DATA。第一奇偶校验生成电路212可以包括第一级上的64个2-输入异或电路31-1(在下文中,称为XOR电路)、第二级上的32个XOR电路31-2、第三级上的16个XOR电路31-3、第四级上的8个XOR电路31-4以及第五级上的8个XOR电路31-5。
第一级至第五级上的XOR电路可以以级联连接被连接。第一级上的XOR电路31-1的输出端可以被连接到第二级上的XOR电路31-2的输入端。第二级XOR电路31-2的输出端可以被连接到第三级XOR电路31-3的输入端。第三级XOR电路31-3的输出端可以被连接到第四级XOR电路31-4的输入端。第四级上的XOR电路31-4的每个输出端可以被连接到第五级上对应的XOR电路31-5的一个输入端。用于第一数据OLD_DATA的第一奇偶校验OP的对应奇偶校验位RP0至RP7可以被连接到第五级的XOR电路31-5的另一个输入端。
第一数据OLD_DATARD0至RD127的128位可以被输入到第一级上的XOR电路31-1的输入端。可以从第五级XOR电路31-5的输出端输出纠正子S的8个纠正子位S0到S7。包括纠正子位S0到S7的纠正子S可指示第一数据OLD_DATA中存在一个或多个错误。
图4是用于解释图2中的纠错电路140的示例操作的流程图。
参考图4,纠错电路140可以接收作为数据控制电路(图1中的130)的掩码操作的结果而获得的第二数据NEW_DATA(S10)。数据控制电路130的掩码操作可以将与数据掩码信号DM一起接收的写入数据WRITE_DATA中的要更新的新位做为第二数据NEW_DATA提供。与数据掩码信号DM的逻辑低对应的写入数据WRITE_DATA的匹配位可以被提供为第二数据NEW_DATA。
纠错电路140可以接收从存储器单元阵列110输出的读取数据READ_DATA(S21)。读取数据READ_DATA可以包括第一部分数据O1、第二部分数据O2和第一奇偶校验OP。在包括第一部分数据O1和第二部分数据O2的第一数据OLD_DATA中,第一部分数据O1可以是要被更新为第二数据NEW_DATA的数据,并且第二部分数据O2可以是要被保留在经掩码的写入数据WRITE_DATA中的数据。
纠错电路140可以生成指示第一数据OLD_DATA的第一部分数据O1和第二部分数据O2中存在一个或多个错误的纠正子S(S22)。纠错电路140可以通过使用第一数据OLD_DATA和第一奇偶校验OP来生成纠正子S。纠错电路140可以为128位的第一数据OLD_DATA生成8位的纠正子S。
纠错电路140可以通过使用纠正子S来纠正第一数据OLD_DATA的第一部分数据O1和第二部分数据O2的错误(S23)。纠错电路140可以通过解码8位的纠正子位(图3中的S0到S7)来生成128位的解码信号,并且以位为单位对与128位解码信号相对应的128位的第一数据OLD_DATA执行纠错。作为在步骤S23中执行的纠错的结果,可以生成经纠正的第一部分数据O1*和经纠正的第二部分数据O2*。
纠错电路140可以生成用于经纠正的第二部分数据O2*的部分奇偶校验PP(S24)。纠错电路140可以将与第一部分数据O1相对应的位设置为二进制值0,或者将与经纠正的第一部分数据O1*相对应的位设置为二进制值0。纠错电路140可以组合被设置为二进制值0的第一部分数据O1和经纠正的第二部分数据O2*,并且通过使用汉明码方法(H(0|O2*))生成用于组合数据(0|O2*)的部分奇偶校验PP。组合数据(0|O2*)表示设置为二进制值0的第一部分数据O1和经纠正的第二部分数据O2*。或者,纠错电路140可以组合被设置为二进制值0的第一部分数据O1*和纠正的第二部分数据O2*,并且通过使用汉明码方法H(0|O2*)来生成用于组合数据0|O2*的部分奇偶校验PP。
纠错电路140可以通过组合第二数据NEW_DATA和经纠正的第二外部数据O2*来生成合并的数据MERGED_DATA(S25)。
纠错电路140可以将在写入数据WRITE_DATA中被掩码的所有数据设置为二进制值0(S31)。由于写入数据WRITE_DATA中的被掩码数据对应于第二部分数据O2,所以第二部分数据O2可以被设置为二进制值0。因此,纠错电路140可以通过组合第二数据NEW_DATA和设置为二进制值0的第二部分数据O2来生成第三数据MOD_DATA。
纠错电路140可以生成用于第三数据MOD_DATA的第三奇偶校验IP(S32)。纠错电路140可以通过使用汉明码方法(H(N1|0))生成用于第三数据MOD_DATA的第三奇偶校验IP。
纠错电路140可以基于在步骤S22中生成的校验子S、在步骤S24中生成的部分奇偶校验PP以及第三奇偶校验IP(S33)来生成内部奇偶校验NP。内部奇偶校验NP可以是在步骤S25中的合并的数据MERGED_DATA的奇偶校验位。
合并的数据MERGED_DATA和内部奇偶校验NP可以被写入存储器单元阵列110(S40)。
在上述纠错电路140的操作方法中,可以并行执行步骤S21至S25中执行的操作以及步骤S31至S33中执行的操作。换句话说,在纠错电路140中,可以并行执行用于通过组合第二数据NEW_DATA和经纠正的第二部分数据O2*来生成合并的数据MERGED_DATA的操作,以及用于生成合并的数据MERGED_DATA的内部奇偶校验NP的操作。因此,根据数据掩码选项的读取-修改-写入操作可以在短时间内执行。
根据一些实施例,参照图4描述的操作纠错电路140的方法可以通过使用存储器器件(图1的100)中的电路硬件和/或通过使用能够运行或被配置为运行以微码类型存储在非暂时性计算机可读取数据存储介质或软件/固件中的编码指令的硬件来完成。作为示例并且作为例子,操作纠错电路140的方法可以被提供在被实现为软件可执行对象或由处理器响应指令而执行的一组编码指令的计算机程序产品中。或者,操作纠错电路140的方法可全部或部分地通过使用诸如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、状态机、控制器、和/或其它硬件之类的硬件组件和/或其他硬件设备、或者硬件、软件和固件组件的组合来实现。术语“和/或”包括一个或多个相关所列项目的任何和所有组合。
图5是示出根据本发明构思的一些实施例的根据纠错电路140的操作的数据结构的图。图5示出了其中在包括第一部分数据O1和第二部分数据O2的第一数据OLD_DATA的结构中,在读取-修改-写入操作期间将第一部分数据O1更新为新数据N1并且保留第二部分数据O2的示例。新数据N1可以是与作为数据控制电路(图1中的130)的掩码操作的结果而获得的第二数据NEW_DATA相对应的数据。
新数据N1可以由第一ECC电路210和第二ECC电路220接收。
第一ECC电路210的第一奇偶校验生成电路212可以接收第一部分数据O1、第二部分数据O2和第一奇偶校验OP,并生成指示在第一部分数据O1和第二部分数据O2存在一个或多个错误的纠正子S。
第一ECC电路210的读取数据纠正电路214可以通过解码纠正子S来纠正存在于第一部分数据O1和第二部分数据O2中的错误。作为纠错的结果,可以生成经纠正的第一部分数据O1*和经纠正的第二部分数据O2*。
第一ECC电路210的第一奇偶校验生成电路212可以生成用于经纠正的第二部分数据O2*的部分奇偶校验PP。第一奇偶校验生成电路212可以将与第一部分数据O1或者经纠正的第一部分数据O1*相对应的位设置为二进制值0。第一奇偶校验生成电路212通过使用汉明码方案H(0|O2*)生成用于二进制值0的第一部分数据O1和经纠正的第二部分数据O2*的部分奇偶校验PP。或者,第一奇偶校验生成电路212可以通过使用汉明码方案H(0|O2*)为二进制值0的第一部分数据O1*和经纠正的第二部分数据O2*生成部分奇偶校验PP。
第一ECC电路210的第一合并电路216可以通过组合新数据N1和经纠正的第二部分数据O2*来生成合并的数据MERGED_DATA。合并的数据MERGED_DATA可能具有N1|O2*的数据结构。
第二ECC电路220的第二合并电路222可以接收新数据N1。第二合并电路222可以将与第二部分数据O2相对应的位设置为二进制值0。第二合并电路222可以组合新数据N1和为二进制值0的第二部分数据O2。
第二ECC电路220的第二奇偶校验生成电路224可以通过使用汉明码方案H(N1|0)来生成用于组合的新数据N1和为二进制值0的第二部分数据O2的第三奇偶校验IP。
第二ECC电路220的奇偶校验纠正电路226可基于由第一奇偶校验生成电路212提供的纠正子S、部分奇偶校验PP和由第二奇偶校验生成电路224提供的第三奇偶校验IP来生成内部奇偶校验NP。由奇偶校验纠正电路226生成的内部奇偶校验位NP可以与通过使用汉明码方案H(N1|O2*)生成的用于新数据N1和经纠正的第二部分数据O2*的奇偶校验相同。结果,内部奇偶校验NP可能是合并的数据MERGED_DATA的奇偶校验。
其中合并了从第一ECC电路210输出的新数据N1和经纠正的第二部分数据O2*,以及从第二ECC电路220输出的内部奇偶校验NP的合并的数据MERGED_DATA可以被写入存储器单元阵列110。
图6是示出根据本发明构思的实施例的将执行并行读取-修改-写入操作的存储器器件100应用到计算机***600的示例的框图。
参考图6,计算机***600可以包括处理器610、输入/输出集线器(IOH)620、输入/输出控制器集线器(ICH)630、存储器器件640和图像卡650。根据一些实施例,计算机***600可以是任意的计算***,例如个人计算机(PC)、服务器计算机、工作站、膝上型计算机、移动电话、智能电话、个人数字助理(PDA)、便携式多媒体播放器(PMP)、数码相机、数字电视、机顶盒、音乐播放器、便携式游戏机或导航***。
处理器610可以运行各种计算功能,例如特定的计算或任务。例如,处理器610可以是微处理器或中央处理单元(CPU)。根据一些实施例,处理器610可以包括单个处理器核或多个处理器核(多核)。例如,处理器610可以包括双核、四核、六核等。另外,图6中示出了包括一个处理器610的计算机***600,但是根据一些实施例,计算机***600可以包括多个处理器610。另外,根据一些实施例,处理器610还可以包括位于内部或外部的高速缓存存储器。
处理器610可以包括控制存储器器件640的操作的存储器控制器611。包括在处理器610中的存储器控制器611可以被称为集成存储器控制器(IMC)。根据一些实施例,存储器控制器611可以被布置在输入/输出集线器620中。包括存储器控制器611的输入/输出集线器620可以被称为存储器控制器集线器(MCH)。
存储器器件640可提供数据掩码选项。在根据数据掩码选项执行的读取-修改-写入操作中,存储器器件640可以并行执行通过组合新数据N1和先前数据来生成合并的数据MERGED_DATA的操作,以及生成用于合并的数据MERGED_DATA的内部奇偶校验NP的操作。
用于生成合并的数据MERGED_DATA的操作可以包括:接收包括第一部分数据O1和第二部分O2的第一数据OLD_DATA以及第二数据NEW_DATA;生成指示第一部分数据O1和第二部分数据O2中存在一个或多个错误的纠正子;通过解码纠正子S来纠正包括在第一部分数据O1和第二部分数据O2中的一个或多个错误;生成用于经纠正的第二部分数据O2*的部分奇偶校验;并通过组合第二数据NEW_DATA和经纠正的第二部分数据O2*来生成合并的数据MERGED_DATA。
用于生成合并的数据MERGED_DATA的内部奇偶校验位NP的操作可以包括:通过组合第二数据NEW_DATA和设置为二进制值0的第二部分数据O2来生成第三数据;生成用于第三数据的第三奇偶校验;并基于纠正子、部分奇偶校验和第三奇偶校验生成用于合并的数据MERGED_DATA的内部奇偶校验位NP。
输入/输出集线器620可以管理诸如图像卡650和处理器610之类的设备之间的数据传输。输入/输出集线器620可以经由各种类型的接口被连接到处理器610。例如,输入/输出集线器620和处理器610可以被连接到各种标准接口,诸如前端总线(FSB)、***总线、HyperTransport、闪电数据传输(LDT)、QuickPath互连(QPI)、通用***接口和快速***组件接口(CSI)。在图6中示出了包括一个输入/输出集线器620的计算机***600,但是根据一些实施例,计算机***600可以包括多个输入/输出集线器620。
输入/输出集线器620可以提供与各种设备的接口。例如,输入/输出集线器620可以提供加速图像端口(AGP)接口、快速***组件接口(PCIe)、通信流式架构(CSA)等。
图像卡650可以经由AGP接口或PCIe被连接到输入/输出集线器620。图像卡650可以控制显示设备(未示出)显示图像。图像卡650可以包括内部处理器和内部半导体存储器器件以处理图像数据。根据一些实施例,输入/输出集线器620可以包括布置在输入/输出集线器620外部/外面的图像卡650或输入/输出集线器620内部/里面的图像设备,而不是图像卡650。包括在输入/输出集线器620中的图像设备可以被称为集成图像设备。另外,包括存储器控制器和图像设备的输入/输出集线器620可以被称为图像和存储器控制器集线器(GMCH)。
输入/输出控制器集线器630可以执行数据缓冲和接口仲裁,使得各种***接口有效地操作。输入/输出控制器集线器630可以经由内部总线被连接到输入/输出集线器620。例如,输入/输出集线器620和输入/输出控制器集线器630可以通过直接媒体接口(DMI)、集线器接口、企业南桥接口(ESI)、PCIe等被连接。
输入/输出控制器集线器630可以提供具有***设备的各种接口。例如,输入/输出控制器集线器630可以包括通用串行总线(USB)端口、串行高级技术附件(SATA)端口、通用输入/输出(GPIO)端口、低引脚数(LPC)总线、串行***接口(SPI)、PCI、PCIe等。
根据一些实施例,处理器610、输入/输出集线器620或输入/输出控制器集线器630中的的两个或更多个组件可以被实现为一个芯片组。
图7是示出根据本发明构思的一些实施例的被配置为在移动设备700中执行并行读取-修改-写入操作的存储器器件100的应用的框图。移动设备700可以是移动手机或智能手机。
如图7所示,移动设备700可以包括全球移动通信***(GSM)块710、近场通信(NFC)收发器720、输入/输出块730、应用程序块740、存储器750和显示器760。移动设备700的组件/块在图7中示例性地示出。移动设备700可以包括更多或更少的组件/块。另外,即使在本实施例中示出了GSM技术,移动设备700也可以通过使用码分多址(CDMA)等其他技术来实现。图7的块可以被实现为集成电路。或者,一些块可以被实现为集成电路,而其他块可以被实现为另一个电路。
GSM块710可以被连接到天线711并且可以操作以提供无线电话功能。GSM块710可以在内部包括被配置为分别执行相应的接收操作和发送操作的接收器和发射器。
NFC收发器720可以被配置为通过使用用于无线通信的电感耦合来收发NFC信号。NFC收发器720可以向NFC天线匹配网络***(AMNS)721提供NFC信号,并且NFC天线匹配网络***721可以经由电感耦合传输NFC信号。NFC天线匹配网络***721可以接收从其他NFC设备提供的NFC信号并将接收到的NFC信号提供给NFC收发器720。
由NFC收发器720发送和接收NFC信号可以以时分方式执行。因此,NFC收发器720发送NFC信号的时间段可以被称为发送间隔,并且NFC收发器720的对应操作模式可以被称为发送模式或NFC读取器发送模式。以相同的方式,NFC收发器720接收NFC信号的时间段可以被称为接收时间间隔,并且NFC收发器720的相应操作模式可以被称为接收模式或NFC标签接收模式。
NFC收发器720可以根据在NFC接口和协议-1(NFCIP-1)、NFC接口和协议-2(NFCIP-2)、欧洲计算机制造商协会(ECMA)-340,国际标准化组织/国际电工委员会(ISO/IEC)18092、欧洲电信标准协会(ETSI)技术规范(TS)102 190、ISO 21481、ECMA 352、ETSI TS102 312等中描述的标准化规则来操作。
应用程序块740可以包括硬件电路,例如一个或多个处理器,并且可以操作以提供由移动设备700提供的各种用户应用。用户应用可以包括语音呼叫操作、数据发送、数据交换等。应用程序块740可以结合GSM块710和/或NFC收发器720来操作,以提供GSM块710和/或NFC收发器720的操作特性。或者,应用程序块740可以包括用于销售点(POS)***的程序。这样的程序可以使用移动电话即智能手机提供***购买功能和支付功能。
响应于从应用程序块740接收的显示信号,显示器760可以显示图像。图像可以由应用程序块740提供,或者可以由嵌入在移动设备700中的相机生成。显示器760可以在内部包括用于临时存储像素值的帧缓冲器,并且可以包括具有相关控制电路的液晶显示屏。
输入/输出块730可以向用户提供输入功能并且提供通过将由应用程序块740接收的输出。
存储器750可以存储应用程序块740要使用的程序(指令)和/或数据,并且可以被实现为RAM、闪存、电阻式存储器等。因此,存储器750可以包括易失性以及非易失性存储元件。例如,存储器750可对应于图1中所示的存储器器件100。
存储器750可以被配置为提供数据掩码选项。在根据数据掩码选项执行的读取-修改-写入操作中,存储器750可以并行执行通过组合新数据N1和先前数据来生成合并的数据MERGED_DATA的操作,以及生成用于合并的数据MERGED_DATA的内部奇偶校验NP。
用于生成合并的数据MERGED_DATA的操作可以包括:接收包括第一部分数据O1和第二部分O2的第一数据OLD_DATA以及第二数据NEW_DATA;生成指示第一部分数据O1和第二部分数据O2中存在一个或多个错误的纠正子;通过解码纠正子S来纠正包括在第一部分数据O1和第二部分数据O2中的一个或多个错误;生成用于经纠正的第二部分数据O2*的部分奇偶校验;并通过组合第二数据NEW_DATA和经纠正的第二部分数据O2*来生成合并的数据MERGED_DATA。
用于生成用于合并的数据MERGED_DATA的内部奇偶校验NP的操作可以包括:通过组合第二数据NEW_DATA和设置为二进制值0的第二部分数据O2来生成第三数据;生成用于第三数据的第三奇偶校验;并基于纠正子、部分奇偶校验和第三奇偶校验生成用于合并的数据MERGED_DATA的内部奇偶校验NP。
因此,本发明构思的一些实施例可以通过基于要写入的新数据N1来生成初始奇偶校验IP,并基于指示从存储器单元阵列读取的先前数据O1、O2中的错误的纠正子S来纠正初始奇偶校验IP、基于来自先前数据的经纠正的部分数据O2*纠正部分奇偶校验PP来实现读取-修改-写入操作。这可以允许与组合新数据N1和经纠正的部分数据O2*生成合并的数据来并行地生成内部奇偶校验NP。因此,本发明构思的实施例可以生成等同于可以顺序地或响应于合并的数据而生成的内部奇偶校验NP,但是与生成合并的数据同时地进行,从而提高执行读取-修改-写操作。
按照功能块、单元和/或模块描述并在附图中示出实施例。本领域技术人员将会理解,这些块、单元和/或模块在物理上由诸如逻辑电路、分立元件、微处理器、硬连线电路、存储器元件、接线连接等可以使用基于半导体的制造技术或其他制造技术来形成的电子(或光学)电路来实现。在由微处理器或类似设备实现的块、单元和/或模块的情况下,可以使用软件(例如,微码)对它们进行编程以执行本文所讨论的各种功能,并且可以可选地由固件和/或软件驱动。或者,每个块、单元和/或模块可以由专用硬件或作为执行某些功能的专用硬件和处理器(例如,一个或多个经编程的微处理器和相关电路)的组合来执行以执行其他功能。而且,在不脱离本发明构思的范围的情况下,实施例的每个块、单元和/或模块可以物理地分成两个或更多个交互和离散的块、单元和/或模块。此外,在不脱离本发明构思的范围的情况下,实施例的块、单元和/或模块可以物理地组合成更复杂的块、单元和/或模块。
虽然已经参考本发明的示例性实施例具体示出和描述了本发明构思,但是本领域的普通技术人员将会理解,在不脱离本发明的精神和范围的情况下,可以在其中进行形式和细节上的各种改变由权利要求限定的本发明构思。因此,本发明构思的真正保护范围应该由权利要求的技术思想来确定。
Claims (20)
1.一种纠错码ECC电路,包括:
第一ECC电路,被配置为接收第一数据和第二数据,所述第一数据包括第一部分数据和第二部分数据,以纠正所述第二部分数据中的一个或多个差错以生成经纠正的第二部分数据,并且通过组合所述第二数据与所述经纠正的第二部分数据以生成合并的数据;以及
第二ECC电路,被配置为将所述第二部分数据设置为二进制值0,通过组合设置为所述二进制值0的所述第二部分数据和所述第二数据来生成第三数据,生成用于所述第三数据的第三奇偶校验,并通过使用所述第三奇偶校验来生成用于所述合并的数据的内部奇偶校验。
2.如权利要求1所述的ECC电路,其中,所述第一ECC电路被配置为生成指示所述第一部分数据和所述第二部分数据中存在一个或多个错误的纠正子。
3.如权利要求2所述的ECC电路,其中,所述第一ECC电路被配置为将所述第一部分数据设置为所述二进制值0,组合被设置为所述二进制值0的所述第一部分数据和所述经纠正的第二部分数据以生成组合的数据,并通过使用所述组合的数据来生成用于所述经纠正的第二部分数据的部分奇偶校验。
4.如权利要求3所述的ECC电路,其中,所述第二ECC电路被配置为基于所述纠正子、所述部分奇偶校验和所述第三奇偶校验来生成所述内部奇偶校验。
5.如权利要求1所述的ECC电路,其中,所述第一ECC电路和所述第二ECC电路被配置为并行地分别生成所述合并的数据和所述内部奇偶校验。
6.如权利要求1所述的ECC电路,其中,所述第一ECC电路包括:
第一奇偶校验生成电路,被配置为生成指示所述第一部分数据和所述第二部分数据中存在一个或多个错误的纠正子,并且还为所述经纠正的第二部分数据生成部分奇偶校验;
读取数据纠正电路,被配置为通过解码所述纠正子来纠正所述第一部分数据和所述第二部分数据的所述一个或多个错误,并且生成所述经纠正的第二部分数据;以及
第一合并电路,被配置为通过组合所述第二数据和所述经纠正的第二部分数据来生成所述合并的数据。
7.如权利要求6所述的ECC电路,其中,所述第二ECC电路包括:
第二合并电路,被配置为通过组合所述第二数据与被设置为所述二进制值0的所述第二部分数据来生成所述第三数据;
第二奇偶校验生成电路,被配置为生成所述第三数据的所述第三奇偶校验;以及
奇偶校验纠正电路,被配置为基于所述纠正子、所述部分奇偶校验和所述第三奇偶校验来生成所述内部奇偶校验。
8.一种存储器器件,包括:
存储器单元阵列,包括多个存储器单元并且被配置为根据数据掩码选项输出存储在所述存储器单元中的第一数据;以及
纠错电路,被配置为根据所述数据掩码选项基于所述第一数据和第二数据来生成合并的数据以及用于所述合并的数据的内部奇偶校验,
其中,所述纠错电路包括:
第一ECC电路,被配置为接收所述第一数据和所述第二数据,所述第一数据包括第一部分数据和第二部分数据,纠正所述第二部分数据中的一个或多个错误以生成经纠正的第二部分数据,并通过组合所述第二数据与所述经纠正的第二部分数据来生成所述合并的数据;以及
第二ECC电路,被配置为将所述第二部分数据设置为二进制值0,通过组合设置为所述二进制值0的所述第二部分数据和所述第二数据来生成第三数据,生成用于所述第三数据的第三奇偶校验,并通过使用所述第三奇偶校验来生成用于所述合并的数据的所述内部奇偶校验。
9.如权利要求8所述的存储器器件,其中,所述第一ECC电路被配置为生成指示所述第一部分数据及所述第二部分数据中存在一个或一个以上错误的纠正子。
10.如权利要求9所述的存储器器件,其中,所述第一ECC电路被配置为将所述第一部分数据设定为所述二进制值0,组合设置为所述二进制值0的所述第一部分数据和所述经纠正的第二部分数据以生成组合的数据,并通过使用所述组合的数据来生成用于所述经纠正的第二部分数据的部分奇偶校验。
11.如权利要求10所述的存储器器件,其中,所述第二ECC电路被配置为基于所述纠正子、所述部分奇偶校验和所述第三奇偶校验来生成所述内部奇偶校验。
12.如权利要求8所述的存储器器件,其中,所述第一ECC电路及所述第二ECC电路被配置为并行地分别生成所述合并的数据及所述内部奇偶校验。
13.如权利要求8所述的存储器器件,其中,所述第一ECC电路包括:
第一奇偶校验生成电路,其被配置为生成指示所述第一部分数据和所述第二部分数据中存在一个或多个错误的纠正子,并为所述经纠正的第二部分数据生成部分奇偶校验;
读取数据纠正电路,其被配置为通过解码所述纠正子来纠正所述第一部分数据和所述第二部分数据的所述一个或多个错误,并且生成所述经纠正的第二部分数据;以及
第一合并电路,其被配置为通过组合所述第二数据和所述经纠正的第二部分数据来生成所述合并的数据。
14.如权利要求13所述的存储器器件,其中,所述第二ECC电路包括:
第二合并电路,被配置为通过组合所述第二数据和设置为所述二进制值0的所述第二部分数据来生成所述第三数据;
第二奇偶校验生成电路,被配置为生成用于所述第三数据的所述第三奇偶校验;以及
奇偶校验纠正电路,其被配置为基于所述纠正子、所述部分奇偶校验和所述第三奇偶校验来生成所述内部奇偶校验。
15.如权利要求8所述的存储器器件,其中,所述存储器单元阵列被配置为响应于所述数据掩码选项来存储所述合并的数据及所述内部奇偶校验。
16.一种操作纠错码(ECC)电路的方法,所述方法包括:
(a)接收第一数据和第二数据,其中所述第一数据包括从存储器单元阵列输出的第一部分数据和第二部分数据;
(b)纠正所述第二部分数据中的一个或多个错误以生成经纠正的第二部分数据;
(c)通过组合所述第二数据和所述经纠正的第二部分数据来生成合并的数据;
(d)将所述第二部分数据设置为二进制值0,并通过组合设置为所述二进制值0的所述第二部分数据和所述第二数据来生成第三数据;
(e)生成用于所述第三数据的第三奇偶校验;以及
(f)通过使用所述第三奇偶校验生成用于所述合并的数据的内部奇偶校验。
17.如权利要求16所述的方法,其中,所述生成上述合并的数据和所述生成所述内部奇偶校验是并行执行的,并且其中,所述合并的数据和所述内部奇偶校验响应于其生成而并行地输出以存储在所述存储器单元阵列中。
18.如权利要求17所述的方法,还包括生成指示所述第一部分数据和所述第二部分数据中存在一个或多个错误的纠正子。
19.如权利要求18所述的方法,还包括:
将所述第一部分数据设置为二进制值0,组合设置为所述二进制值0的所述第一部分数据和所述经纠正的第二部分数据来生成组合的数据,并通过使用所述组合的数据来生成用于所述经纠正的第二部分数据的部分奇偶校验。
20.如权利要求19所述的方法,其中,所述生成内部奇偶校验包括基于所述纠正子、所述部分奇偶校验和所述第三奇偶校验来生成所述内部奇偶校验。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170119661A KR20190031787A (ko) | 2017-09-18 | 2017-09-18 | 병렬 리드-모디파이-라이트 동작을 수행하는 메모리 장치 |
KR10-2017-0119661 | 2017-09-18 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109524051A true CN109524051A (zh) | 2019-03-26 |
CN109524051B CN109524051B (zh) | 2023-09-19 |
Family
ID=65721446
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810588868.6A Active CN109524051B (zh) | 2017-09-18 | 2018-06-08 | 用于执行并行读取-修改-写入操作的存储器器件 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10521293B2 (zh) |
KR (1) | KR20190031787A (zh) |
CN (1) | CN109524051B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111984457A (zh) * | 2019-05-23 | 2020-11-24 | 华为技术有限公司 | 对存储信息更新的方法和装置 |
CN116594924A (zh) * | 2023-05-19 | 2023-08-15 | 无锡众星微***技术有限公司 | 一种片上ecc存储器的访问方法和装置 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11373726B2 (en) | 2019-04-03 | 2022-06-28 | Texas Instruments Incorporated | Management of multiple memory in-field self-repair options |
CN110136769B (zh) * | 2019-04-16 | 2020-11-24 | 珠海市杰理科技股份有限公司 | Otp寄存器数据修正方法、装置、计算机设备和存储介质 |
US11099987B2 (en) * | 2019-11-27 | 2021-08-24 | Micron Technology, Inc. | Bit masking valid sectors for write-back coalescing |
KR20210157830A (ko) | 2020-06-22 | 2021-12-29 | 에스케이하이닉스 주식회사 | 메모리 및 메모리의 동작 방법 |
JP7500365B2 (ja) * | 2020-09-14 | 2024-06-17 | キオクシア株式会社 | メモリシステム |
KR20220106307A (ko) | 2021-01-22 | 2022-07-29 | 삼성전자주식회사 | 스토리지 장치 및 그 구동 방법 |
KR20220118265A (ko) * | 2021-02-18 | 2022-08-25 | 에스케이하이닉스 주식회사 | 데이터마스킹동작을 수행하는 전자장치 |
US20220300370A1 (en) * | 2021-03-17 | 2022-09-22 | Micron Technology, Inc. | Configurable Error Correction Code (ECC) Circuitry and Schemes |
CN117834570B (zh) * | 2024-03-04 | 2024-06-07 | 山东云海国创云计算装备产业创新中心有限公司 | 传输***的数据包处理方法、装置、电子设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4958350A (en) * | 1988-03-02 | 1990-09-18 | Stardent Computer, Inc. | Error detecting/correction code and apparatus |
CN101026004A (zh) * | 2006-02-21 | 2007-08-29 | 三星电子株式会社 | 包括无电容器的存储单元的半导体存储器件 |
KR20080007806A (ko) * | 2006-07-18 | 2008-01-23 | 삼성전자주식회사 | Ecc엔진을 이용한 병렬 비트 테스트 방법 및 그 장치 |
US20080109700A1 (en) * | 2006-11-03 | 2008-05-08 | Kwang-Jin Lee | Semiconductor memory device and data error detection and correction method of the same |
CN101246748A (zh) * | 2007-02-13 | 2008-08-20 | 三星电子株式会社 | 基于字节的掩码操作的设备和产生奇偶校验数据的方法 |
US9329926B1 (en) * | 2013-09-13 | 2016-05-03 | Microsemi Storage Solutions (U.S.), Inc. | Overlapping data integrity for semiconductor devices |
CN106297895A (zh) * | 2015-06-29 | 2017-01-04 | 三星电子株式会社 | 纠错电路、半导体存储器装置及其控制方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7392456B2 (en) | 2004-11-23 | 2008-06-24 | Mosys, Inc. | Predictive error correction code generation facilitating high-speed byte-write in a semiconductor memory |
JP4864395B2 (ja) | 2005-09-13 | 2012-02-01 | 株式会社東芝 | 半導体記憶装置 |
US7930615B2 (en) | 2007-05-31 | 2011-04-19 | Agere Systems Inc. | Memory device with error correction capability and preemptive partial word write operation |
CN101572125B (zh) * | 2008-04-30 | 2013-02-27 | 扬智科技股份有限公司 | 错误更正电路及其方法 |
US9003260B2 (en) | 2011-06-29 | 2015-04-07 | Texas Instruments Incorporated | Partial-writes to ECC (error check code) enabled memories |
US9311181B2 (en) | 2012-11-15 | 2016-04-12 | Samsung Electronics Co., Ltd. | Memory controller changing partial data in memory device and method for changing partial data thereof |
JP5794240B2 (ja) * | 2013-02-05 | 2015-10-14 | ソニー株式会社 | 誤り検出訂正装置、誤り検出訂正方法、情報処理装置、および、プログラム |
WO2014205590A1 (en) | 2013-06-24 | 2014-12-31 | Micron Technology, Inc. | Circuits, apparatuses, and methods for correcting data errors |
WO2015048037A1 (en) | 2013-09-24 | 2015-04-02 | Rambus Inc. | Memory component having internal read-modify-write operation |
US9342402B1 (en) | 2014-01-28 | 2016-05-17 | Altera Corporation | Memory interface with hybrid error detection circuitry for modular designs |
KR20170045806A (ko) | 2015-10-20 | 2017-04-28 | 삼성전자주식회사 | 반도체 메모리 장치 및 이의 동작 방법 |
KR102677592B1 (ko) * | 2017-02-06 | 2024-06-24 | 에스케이하이닉스 주식회사 | 연장된 제품 수명을 갖는 메모리장치 및 그 동작방법 |
-
2017
- 2017-09-18 KR KR1020170119661A patent/KR20190031787A/ko unknown
-
2018
- 2018-03-19 US US15/925,111 patent/US10521293B2/en active Active
- 2018-06-08 CN CN201810588868.6A patent/CN109524051B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4958350A (en) * | 1988-03-02 | 1990-09-18 | Stardent Computer, Inc. | Error detecting/correction code and apparatus |
CN101026004A (zh) * | 2006-02-21 | 2007-08-29 | 三星电子株式会社 | 包括无电容器的存储单元的半导体存储器件 |
KR20080007806A (ko) * | 2006-07-18 | 2008-01-23 | 삼성전자주식회사 | Ecc엔진을 이용한 병렬 비트 테스트 방법 및 그 장치 |
US20080109700A1 (en) * | 2006-11-03 | 2008-05-08 | Kwang-Jin Lee | Semiconductor memory device and data error detection and correction method of the same |
CN101246748A (zh) * | 2007-02-13 | 2008-08-20 | 三星电子株式会社 | 基于字节的掩码操作的设备和产生奇偶校验数据的方法 |
US9329926B1 (en) * | 2013-09-13 | 2016-05-03 | Microsemi Storage Solutions (U.S.), Inc. | Overlapping data integrity for semiconductor devices |
CN106297895A (zh) * | 2015-06-29 | 2017-01-04 | 三星电子株式会社 | 纠错电路、半导体存储器装置及其控制方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111984457A (zh) * | 2019-05-23 | 2020-11-24 | 华为技术有限公司 | 对存储信息更新的方法和装置 |
CN111984457B (zh) * | 2019-05-23 | 2022-09-02 | 华为技术有限公司 | 对存储信息更新的方法和装置 |
US11914895B2 (en) | 2019-05-23 | 2024-02-27 | Huawei Technologies Co. Ltd. | Method for updating stored information and apparatus |
CN116594924A (zh) * | 2023-05-19 | 2023-08-15 | 无锡众星微***技术有限公司 | 一种片上ecc存储器的访问方法和装置 |
CN116594924B (zh) * | 2023-05-19 | 2023-10-24 | 无锡众星微***技术有限公司 | 一种片上ecc存储器的访问方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109524051B (zh) | 2023-09-19 |
US20190087263A1 (en) | 2019-03-21 |
US10521293B2 (en) | 2019-12-31 |
KR20190031787A (ko) | 2019-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109524051A (zh) | 用于执行并行读取-修改-写入操作的存储器器件 | |
US20170286197A1 (en) | Validation of memory on-die error correction code | |
CN101329916B (zh) | 闪存装置纠错码控制器以及相关方法和存储*** | |
CN105340022B (zh) | 用于校正数据错误的电路、设备及方法 | |
US9772902B2 (en) | Error correction code for unidirectional memory | |
US10803971B2 (en) | Device for supporting error correction code and test method thereof | |
US10319461B2 (en) | Low-overhead mechanism to detect address faults in ECC-protected memories | |
CN103811076A (zh) | 存储模块、具有其的存储***及其读写方法 | |
US20120233521A1 (en) | Apparatus, system, and method for decoding linear block codes in a memory controller | |
KR101750457B1 (ko) | Ecc를 이용하는 메모리 장치 및 그 시스템 | |
CN101944067A (zh) | 存储数据的方法和存储器*** | |
CN107408069A (zh) | 用于检测和缓解闪速存储器中的位线开路的装置和方法 | |
US20230376378A1 (en) | Integrated circuit and method of operating same | |
US20230176948A1 (en) | Ecc protected storage | |
US10804935B2 (en) | Techniques for reducing latency in the detection of uncorrectable codewords | |
CN111726121A (zh) | 错误校正解码器和具有该错误校正解码器的存储器*** | |
US10680656B2 (en) | Memory controller, memory system including the same, and operation method thereof | |
US20160378594A1 (en) | Method and apparatus to decode low density parity codes | |
US20080163036A1 (en) | Cyclic redundancy check code generating circuit, semiconductor memory device, and method of driving semiconductor memory device | |
US8448048B2 (en) | Flash memory device and related programming method | |
US11689224B2 (en) | Error correction device and method for generating syndromes and partial coefficient information in a parallel | |
CN102346711B (zh) | 内存组件及其制造方法 | |
US9275758B2 (en) | Error detection circuit and semiconductor integrated circuit using the same | |
US20130007563A1 (en) | Semiconductor memory device having error correction function and memory system including the same | |
US10552260B2 (en) | Detection of double bit errors and correction of single bit errors in a multiword array |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |