CN108074622A - 存储器控制器、数据芯片及其控制方法 - Google Patents
存储器控制器、数据芯片及其控制方法 Download PDFInfo
- Publication number
- CN108074622A CN108074622A CN201710742400.3A CN201710742400A CN108074622A CN 108074622 A CN108074622 A CN 108074622A CN 201710742400 A CN201710742400 A CN 201710742400A CN 108074622 A CN108074622 A CN 108074622A
- Authority
- CN
- China
- Prior art keywords
- data
- chip
- pollution
- pollution mode
- memory controller
- 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
- 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/1012—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 codes or arrangements adapted for a specific type of error
-
- 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/1068—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 sector programmable memories, e.g. flash disk
-
- 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/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/409—Read-write [R-W] circuits
- G11C11/4093—Input/output [I/O] data interface arrangements, e.g. data buffers
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Detection And Correction Of Errors (AREA)
- Dram (AREA)
Abstract
公开一种存储器控制器、数据芯片及其控制方法。公开一种可污染数据的数据芯片,包括:数据阵列;读取电路,用于从数据阵列读取原数据;缓冲器,用于存储原数据。使数据污染引擎可用存储在屏蔽寄存器中的污染模式,污染原数据。然后传输电路可从缓冲器发送污染的数据。
Description
本申请要求于2016年11月7日提交的第62/418,779号美国临时专利申请和于2017年1月19日提交的第15/410,752号美国专利申请的权益,所述申请出于所有目的通过引用包含于此。
技术领域
本发明构思总体涉及存储器,更具体地讲,涉及在不增加存储器模块中的数据芯片的数量的情况下提供纠错能力。
背景技术
在未来,存储器模块可需要动态随机存取存储器(DRAM)中的纠错。与窄通道的使用相结合,纠错所需的开销可能正在增加。例如,从宽通道到窄通道的转变可使纠错开销加倍。满足存储器的可靠性、可用性和可服务性(RAS)要求可变得昂贵。但是完全放弃纠错能力可降低存储器模块的可用性。
仍然需要在不增加纠错的开销需要的情况下提供存储器模块中的纠错能力的方法。
发明内容
根据本公开的方面,提供一种数据芯片,包括:数据阵列;读取电路,用于从数据阵列读取原数据;缓冲器,用于存储由读取电路从数据阵列读取的原数据;屏蔽寄存器,用于存储污染模式;数据污染引擎,用于使用存储在屏蔽寄存器中的污染模式修改存储在缓冲器中的原数据,以产生污染的数据;传输电路,从缓冲器发送污染的数据。
根据本公开的另一方面,提供一种存储器控制器,包括:读取电路,用于请求在存储在多个数据芯片中的地址的值;奇偶校验电路,用于计算来自从所述多个数据芯片接收的原始数据的奇偶校验;污染模式分析电路,用于将奇偶校验与编程到所述多个数据芯片中的多个污染模式进行比较,以识别具有错误的数据芯片;纠错电路,用于纠正从识别的具有错误的数据芯片接收的原始数据中的错误。
根据本公开的另一方面,提供一种控制数据芯片的方法,包括:在数据芯片接收针对在地址的值的请求;在数据芯片的缓冲器中缓冲原数据,原数据包括在所述地址的值;确定缓冲器中的原数据是否具有错误;如果缓冲器中的原数据具有错误:使用污染模式污染缓冲器中的原数据,以产生污染的数据;将缓冲器中的污染的数据发送到存储器控制器。
附图说明
图1示出根据本发明构思的实施例的具有存储器和存储器控制器的机器。
图2示出图1的机器的额外细节。
图3示出图1的存储器中的存储器芯片的细节。
图4示出图3的XOR电路的示例实现。
图5示出可如何污染图3的数据芯片中的数据。
图6示出图3的数据芯片中的存储污染模式的屏蔽寄存器。
图7示出图1的存储器控制器的细节。
图8示出图1的存储器控制器对来自图1的存储器中的数据芯片的数据执行奇偶校验计算。
图9示出图7的污染模式分析电路的操作。
图10示出图1的存储器控制器从数据去除污染模式,其中,该数据是从数据芯片接收的。
图11示出图7的奇偶校验电路针对数据具有污染模式的数据芯片计算数据。
图12A至图12B示出根据本发明构思的实施例的图1的存储器模块中的数据芯片污染数据的示例过程的流程图。
图13示出根据本发明构思的实施例的使用污染模式编程图1的存储器模块中的数据芯片的示例过程的流程图。
图14示出根据本发明构思的实施例的图1的存储器模块中的数据芯片将原始数据发送到图1的存储器控制器的示例过程的流程图。
图15A至图15B示出根据本发明构思的实施例的当图1的存储器模块中的数据芯片使用污染模式污染数据时图1的存储器控制器执行纠错的示例过程的流程图。
图16示出根据本发明构思的实施例的图7的污染模式分析电路识别哪种污染模式被用于污染数据的示例过程的流程图。
图17示出根据本发明构思的实施例的图7的纠错电路对图1的存储器模块中的数据芯片中的错误进行纠正的示例过程的流程图。
图18示出根据本发明构思的实施例的图1的存储器控制器从图1的存储器模块中的数据芯片请求原始数据的示例过程的流程图。
具体实施方式
现在将对本发明构思的实施例做出详细参照,其中,在附图中示出本发明构思的实施例的示例。在下面的具体实施方式中,大量的具体细节被阐述,以确保对本发明构思的全面理解。然而,应当理解,本领域普通技术人员可在没有这些具体细节的情况下实践本发明构思。在其他实例中,公知的方法、过程、组件、电路和网络没有被详细描述,从而不会不必要地模糊实施例的方面。
将理解,尽管在这里可使用术语第一、第二等描述各种元件,但是这些元件不应该由这些术语限制。这些术语仅用于将一个元件与另一个元件进行区分。例如,在不脱离本发明构思的范围的情况下,第一模块可被称为第二模块,类似地,第二模块可被称为第一模块。
本发明构思的描述中使用的术语在这里仅是用于描述特定的实施例的目的,而不意图限制本发明构思。除非上下文明确地另有指示,否则如本发明构思的描述和权利要求书所使用的单数形式也意图包括复数形式。还将理解,如这里所使用的术语“和/或”表示并包含一个或多个相关所列项的任意和全部可能的组合。还将理解,当在本说明书中使用术语“包括”和/或“包含”时,表明存在叙述的特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其他特征、整体、步骤、操作、元件、组件和/或它们的组。附图的组件和特征不一定是按比例绘制的。
本发明构思的实施例可降低动态随机存取存储器(DRAM)模块的纠错码(ECC)开销。本发明构思的实施例可与现有双倍数据速率(DDR)-4 64位通道和未来窄(32位)DDR通道一起使用。本发明构思的实施例可支持包括x4(4位数据宽度DRAM)、x8、x16或任何其他突发长度(burst length)的任何DRAM类型。本发明构思的实施例还可支持在存储器事务中可支持任何数量的突发的存储器模块,其中,任何数量的突发包括每个存储器事务8次突发(每个存储器事务每个数据芯片8次突发)、16次突发或任何其他数量的突发。
未来的DRAM装置可使用更窄的通道(相对于64位,32位)以保持增长的吞吐量。还可存在内部预取(internal prefetch)(16n对比8n)和外部突发长度(16n对比8n)中存在相应增加。
但是,这些变化可使得保持具有与现有动态随机存取存储器(DRAM)双列直插存储器模块(DIMM)装置相似的开销的现有可靠性、可用性和可服务性(RAS)特征变得困难。例如,现有DDR-4纠错码(ECC)DRAM DIMM针对每个通道使用16个数据芯片和2个纠错码(ECC)芯片。为保持相同的ECC覆盖(coverage),未来窄DRAM通道可需要2个ECC芯片以仅保护8个数据芯片:继续仅使用2个ECC芯片来保护16个数据芯片可引起降级的ECC覆盖。
此外,未来DRAM装置可使用DRAM中的ECC(in-DRAM ECC)来降低DRAM装置的误码率(BER)。为将DRAM中的ECC信息从DRAM装置传递到存储器控制器,需要专用或共享的引脚。反而,当在DRAM装置中检测到错误时,用于传递DRAM中的ECC信息的方法和结构可通过引入另外的错误被实现。也就是说,存储器控制器可在启动期间使用不同的污染模式在相同的通道中对DRAM芯片进行编程。相同的通道中的不同的DRAM芯片应具有不同的污染模式。污染模式选择可根据不同的芯片集供应商而不同。污染模式选择可造成不同的错误覆盖。
本发明构思的实施例可仅使用1个ECC芯片加DRAM中的ECC来提供基本的可靠性、可用性和可服务性(RAS)保护。例如:
●在使用x4芯片的DDR-4 64位通道中,存储器模块可包括16个x4数据芯片加1个ECC芯片。本发明构思的这样的实施例可以以现有纠错(使用16个数据芯片加2个ECC芯片的现有纠错)的1/2开销提供纠错。
●在使用x8芯片的DDR-4 64位通道中,存储器模块可包括8个x8数据芯片加1个ECC芯片。本发明构思的这样的实施例可提供现有DDR-4 x8不支持的基本芯片终止(basicchip kill)(一次数据芯片无效)。
●在使用x16芯片的DDR-4 64位通道中,存储器模块可包括4个x16数据芯片加1个ECC芯片。本发明构思的这样的实施例可提供现有DDR-4x16不支持的基本芯片终止(一次数据芯片无效)。
●在针对未来32位通道x4存储器模块,存储器模块可包括8个x4数据芯片加1个ECC芯片。本发明构思的这样的实施例可以以现有纠错的1/2开销提供纠错。
●总体上,针对具有每个通道N位和x4M数据芯片的未来存储器模块,存储器模块可包括N/4M个x4M数据芯片加1个xM ECC芯片(这里,M和N中的每一个是正整数)。
当DRAM中的ECC机制检测到内部不可纠正的错误时,DRAM使用这些存储的模式污染数据。当内部不可纠正的错误发生时,数据污染可通过将芯片上的数据和污染模式进行异或运算而被完成。
污染模式可使用粗粒度或细粒度。使用细粒度方法,每个模式在位对位映射(bit-to-bit mapping)中具有64位。这提供更加灵活的信息传递,但在屏蔽寄存器中需要更多的位(存储开销),并且更不可靠。在粗粒度,每个芯片被给定重复、预定义的模式。这意味着污染模式是固定的和不灵活的,但在屏蔽寄存器中需要更少的位(存储开销),并且更可靠。
污染模式可具有任何期望的大小。推荐的最小污染模式大小可以是一个突发的大小(虽然,只要存储器控制器可确定施加污染模式的数据芯片,任何污染模式大小都可被使用)。因此,本发明构思的实施例可使用具有x4数据芯片的4位污染模式、具有x8数据芯片的8位污染模式以及具有x16数据芯片的16位污染模式等。例如,污染模式可与可从32位(针对8突发x4数据芯片)至256位(针对16突发x16数据芯片)或者甚至更大的存储器事务(单个突发中的位的数量与存储器事务中的突发的数量相乘)一样大。
此外,污染模式可大于一个存储器事务。但如果污染模式大于单个存储器事务,则检测污染模式可需要两个或更多个存储器事务连续发生,这就性能而言是低效的。
假设存储器控制器可检测错误,则存储器控制器可通过使用污染模式来识别错误位置(具有错误的芯片)。然后,存储器控制器可使用芯片间的奇偶校验来纠错。
图1示出根据本发明构思的实施例的具有存储器和存储器控制器的机器。在图1中,示出了机器105。机器105可以是任何期望的机器或者可从本发明构思的实施例受益的任何其他装置,其中,任何期望的机器包括但不限于台式计算机或膝上型计算机、服务器(独立服务器或机架服务器)。机器105还可包括诸如专用便携式计算装置、平板计算机以及甚至智能电话的装置。虽然描述的本发明构思的实施例表示DRAM模块,但是本发明构思的实施例可被应用到在多个芯片(每个芯片可能是单独的故障源)之间内部地存储信息的任何形式的存储器。
不管机器105的具体形式,机器105可包括处理器110、存储器115、存储装置120和存储器控制器125。处理器110可以是各种处理器:例如,英特尔至强(Xeon)、赛扬(Celeron)、安腾(Itanium)或凌动(Atom)处理器、AMD皓龙(Opteron)处理器以及ARM处理器等。虽然图1示出单个处理器,但是机器105可包括任何数量的处理器。存储器115可以是任何种类的存储器,诸如,闪存、静态随机存取存储器(SRAM)、持久随机存取存储器、铁电随机存储器(FRAM)或非易失性随机存取存储器(NVRAM)(诸如,磁阻随机存取存储器(MRAM)等),但可应用本发明构思的实施例典型地是DRAM。存储器115还可以是任何期望的不同存储器类型的组合。
存储装置120可以是任何种类的存储装置。这样的装置的示例可包括固态驱动器(SSD),但其他存储形式(诸如,硬盘驱动器或其他长期存储装置)也是可行的。此外,存储器115和存储装置120可被组合:也就是说,本发明构思的实施例可不区分短期存储和长期存储的概念,而是以单一形式因素管理二者。最后,存储器控制器125可管理处理器110与存储器115之间的通信,以在适当的时候请求存储器115中的信息以及将信息存储在存储器115中。存储器控制器125可与处理器110集成,或被集成在单独的芯片中。
图2示出图1的机器105的额外细节。参照图2,典型地,机器105包括一个或多个处理器110,其中,处理器110可包括存储器控制器125和时钟205,并可被用于协调机器105的组件的操作。处理器110还可连接到存储器115,其中,作为示例,存储器115可包括随机存储存储器(RAM)、只读存储器(ROM)或其他状态保持介质。处理器110还可连接到存储装置120以及网络连接器210,其中,例如,网络连接器210可以是以太网连接器或无线连接器。处理器110还可连接到总线215,其中,总线215可附接其他组件中的用户接口220以及可使用输入/输出引擎225管理的输入/输出接口端口。
图3示出图1的存储器115中的存储器芯片的细节。在图3中,数据芯片305(可以是存储器115中的多个芯片中的一个)可包括DRAM阵列310、读取电路315、缓冲器320、ECC引擎325、数据污染引擎330、屏蔽寄存器335、解复用器340和传输电路345(图3中的DQ TX)。DRAM阵列310可存储数据芯片305内的数据。读取电路315可从DRAM阵列310读取数据。例如,读取电路315可包括用于从DRAM阵列310读取值的感测放大器。缓冲器320可在数据芯片305进行一些处理时,暂时存储通过读取电路315从DRAM阵列310读取的数据。如果可能,则ECC引擎325可尝试对缓冲器320中的数据执行纠错。ECC引擎325可将它的操作的结果提供到数据污染引擎330,使得数据污染引擎330知道它是否需要操作。
数据污染引擎330可在需要时污染来自缓冲器320的数据。如下面参照图5所述,污染涉及基于污染模式修改缓冲器320中的数据。例如,可通过使用异或(XOR)电路350对污染模式和缓冲器320中的数据执行XOR运算来执行数据污染。可选地,可通过简单地使用污染模式替换缓冲器320中的数据来执行数据污染,而不管错误实际是什么。如果缓冲器320中的数据准确地匹配污染模式,则这个事实可造成系统不正确地“检测”虚假错误,但(有望)本系统可从这样的情况恢复。可向屏蔽寄存器335中的污染模式进行访问。与这里描述的任何其他引擎或电路类似,数据污染引擎330可以以任何期望的方式被实现。例如,引擎和电路可使用实现期望的功能的定制电路被实现,或者他们可使用诸如现场可编程门阵列(FPGA)的阵列或等同的技术被实现。
因为可存在存储器控制器125可能想要来自缓冲器320的原(未污染)数据(rawdata)的情况,所以存储器控制器125可将存储器控制器(MC)禁用信号355发送到数据污染引擎330。因此,除非存储器控制器125已经发送存储器控制器禁用信号355,否则如果ECC引擎325指示存在不可纠正的错误,则数据污染引擎330可操作以污染数据。
然后,数据污染引擎330的输出可被发送到解复用器340,其中,解复用器340可选择用于输出到存储器控制器125的合适数据。然后,传输电路345可用于将选择的数据发送到存储器控制器125。
图4示出图3的XOR电路350的示例实现。在图4中,XOR电路350可包括逻辑405和逻辑410,其中,逻辑405和逻辑410可(使用信号分离器、信号否定和复用器)控制是选择位的原始输入值还是它的反转值。逻辑405和逻辑410可使用控制逻辑位来确定选择什么值。
一般来说,控制逻辑将选择位的原始值,除非图3的ECC引擎325不能够纠错并且图1的存储器控制器125还没有发送图3的存储器控制器禁用信号(MC D)355。因此,根据逻辑等式,控制逻辑(CL)可被认为是来自图3的屏蔽寄存器335的污染模式(PP)、(非图3的存储器控制器禁用信号335)和图3的ECC引擎325进行与运算的结果。表415示出给定污染模式、图3的存储器控制器禁用信号355和图3的ECC引擎325的不同值的情况下控制逻辑可采用的值。但表415仅是示意性的,并且在给定不同输入的情况下,可使用其他逻辑等式来指定控制逻辑。
图5示出可如何污染图3的数据芯片305中的数据。在图5中,存储在图3的缓冲器320中的值被示出为包括32位(但是图3的缓冲器320的宽度可以是任何宽度:32位仅是示例性的)。虽然图3的缓冲器320在实践中可以是一维的,但是为了简单呈现,图5示出以二维布置的数据。原数据505可与污染模式510进行XOR运算,产生污染的数据515。注意,污染的数据515中的每个位是原数据505和污染模式510的相应位的XOR。然而,虽然图5示出对原数据505和污染模式510进行XOR运算,但是本发明构思的实施例可支持用于污染原数据505的任何期望的方法。
图6示出图3的数据芯片305中的图3的存储污染模式的屏蔽寄存器335。在图6中,屏蔽寄存器335可包括诸如污染模式510的污染模式。在本发明构思的一些实施例中,图1的存储器控制器125可在启动时将污染模式510编程到屏蔽寄存器335中。如上所述,通过使用不同的污染模式对(至少在相同数据通道中的)图3的每个数据芯片305进行编程,然后,图1的存储器控制器125可尝试确定图3的哪个数据芯片305是具有不能使用芯片中的ECC纠正的错误的数据芯片。
可选地,在本发明构思的其他实施例中,可(例如,通过制造商)使用各种污染模式预编程图3的数据芯片305。例如,可使用其他污染模式之中的污染模式605、610、615、620、625和630来预编程屏蔽寄存器335。虽然图6示出6个预编程污染模式,但是预编程污染模式的数量通常将至少与存储器模块中的数据芯片的数量一样大(尽管,在相同的数据通道中的每个数据芯片可被分配唯一污染模式的假设下,更少的污染模式可被预编程)。然后,图1的存储器控制器125可从污染模式605、610、615、620、625和630,针对数据芯片选择将使用的污染模式。
每个预编程污染模式可被分配标识符。例如,预编程污染模式605可被分配标识符635,预编程污染模式610可被分配标识符640,依此,污染模式被分配标识符645、650、655和660。然后,图1的存储器控制器125可通过将选择的预编程污染模式的标识符传递到图3的数据芯片305来简单地识别将使用的预编程污染模式。
注意,在图6中,污染模式510是32位长,而污染模式605-630是四位长。在本发明构思的一些实施例中,具有与图3的缓冲器320的宽度相同宽度的污染模式(诸如,污染模式510)可被使用,然而,在本发明构思的其他实施例中,具有比图3的缓冲器320的宽度窄的宽度的污染模式(诸如,污染模式605)可被使用,其中,模式经常根据需要被重复,以建立覆盖图3的整个缓冲器320的污染模式。使用细粒度(全宽度)污染模式的优点是在建立和使用污染模式时增加灵活性;细粒度污染模式的缺点是:图3的屏蔽寄存器335将需要存储更多信息,并且污染模式可能较不可靠。粗粒度(窄宽度)污染模式的优点是:它与图3的缓冲器320不一样宽,因此在图3的屏蔽寄存器335中需要较少的位;粗粒度污染模式还可能更可靠。粗粒度污染模式的缺点是污染模式较不灵活并且可能的污染模式的数量被限制。
注意,理想地,用在存储器模块中的任何一对污染模式之间共同的位的数量应当不多于污染模式中的位的数量的一半。例如,如果两种污染模式除单个位中的值之外是相同的,则影响该位的错误可使得图1的存储器控制器125不能够确定哪个数据芯片具有错误。增加污染模式之间不同的位的数量增加图1的存储器控制器125可识别哪个数据芯片具有错误的可能性。因此,针对污染模式605、610、615、620、625和630中的任何一对,四个位中仅两个位相同,保持污染模式尽可能地分开。
图7示出图1的存储器控制器125的细节。在图7中,存储器控制器125被示出为包括污染模式编程电路705、读取电路710、奇偶校验电路715、污染模式分析电路725、纠错电路730和日志735。污染模式编程电路705可使用污染模式对图1的存储器115的数据芯片(诸如,图3的数据芯片305)进行编程。如上面参照如6所述,污染模式编程电路705可将特定污染模式(细粒度或粗粒度的污染模式)编程到图3的数据芯片305中,或者污染模式编程电路705可识别将使用的图3的数据芯片305的预编程污染模式(再次,细粒度或粗粒度的污染模式)。虽然本发明构思的实施例可支持在任何时间改变编程的污染模式,但是污染模式编程电路705通常用于机器启动时,使得编程的污染模式在图3的数据芯片305中保持不变直到机器再次启动为止。
在本发明构思的其他实施例中,图3的数据芯片305可由图1的存储器115的制造商使用污染模式来编程。在本发明构思的这样实施例中,假设,特定通道中的每个数据芯片具有唯一污染模式。(不同通道中的数据芯片可通过它们的通道被区分,因此不同通道中的数据芯片可能具有相同的污染模式)。这样,当检测到污染的数据时,可(有望)识别具有错误的特定芯片。
在正常操作期间,读取电路710可发送用于从图1的存储器115读取数据的请求,其中,请求然后可由存储器控制器125接收。然后,奇偶校验电路715可对从数据芯片接收的数据执行奇偶校验计算。如果从数据芯片读取数据没有错误(或者,任何错误在数据芯片内被成功纠正),则奇偶校验电路715的结果应指示接收的数据中没有奇偶校验错误,并且存储器控制器125可将数据传递到请求数据的主机或其他实体。
但是,如果奇偶校验电路715的结果指示存在奇偶校验错误,则存储器控制器125可尝试纠正错误。污染模式分析电路725可将奇偶校验电路715的结果与编程到图3的数据芯片305中的污染模式进行比较,以看可否发现匹配(或近似匹配)。如果可发现匹配(或近似匹配),则纠错电路730可尝试使用图1的存储器115中的图3的全部数据芯片305之间的信息来纠正错误。如果错误可由于任何原因而没有被纠正,则日志735可存储关于错误的信息。
图8示出图3的存储器控制器125对来自图1的存储器115中的图3的数据芯片305的数据执行奇偶校验计算。在图8中,原始数据(original data)805、810、815等至原始数据820可表示来自图1的存储器115中的各种数据芯片的数据。虽然在图8中,示出了来自总共9个数据芯片的数据,但是本发明构思的实施例可支持来自任意数量的数据芯片的数据。注意,图3的一个或多个数据芯片305的结果可以是来自芯片中的ECC的结果:原始数据805、810、815和820不需要严格地来自存储真实数据的芯片。
奇偶校验825是计算原始数据805、810、815等至原始数据820的奇偶校验的结果。可以以任何期望的方式计算奇偶校验825:在图8中,将奇偶校验825计算为原始数据805、810、815等至原始数据820的XOR。如果奇偶校验825全是零,则图1的存储器控制器125可断定图3的数据芯片305中的任何一个都不存在错误。但是,如果奇偶校验825具有任何的“1”(指示奇偶校验错误),则该结果指示存在具有错误的图3的至少一个数据芯片305。注意,由于一个(或多个)数据芯片将已经具有不可纠正的错误,因此来自该/那些芯片的数据将通过与数据芯片相关联的污染模式被污染。
上面的描述假设:当不存在错误时,奇偶校验825包括全部的零。如果根据不同的原理(例如,全部的1指示没有错误)来计算奇偶校验825,则可适当调整描述以适应计算奇偶校验825的方法。
假设奇偶校验825指示图3的一个数据芯片325具有错误,则图1的存储器控制器125需要确定哪个数据芯片具有错误。图7的污染模式分析电路725执行这样的分析,在图9中示出图7的污染模式分析电路725的操作。
如图9所示,污染模式分析电路725可接收奇偶校验825以及污染模式605、610、615、620、625和630。虽然图9示出六种污染模式,但是本发明构思的实施例可支持任何数量的污染模式。污染模式分析电路725可将奇偶校验825与污染模式605、610、615、620、625和630中的每一个进行比较,并可尝试确定最接近奇偶校验825的污染模式。该比较的结果可以是结果905。
注意,污染模式分析电路725被描述为尝试确定“最接近”奇偶校验825的污染模式。这样声明有两种原因。首先,具有错误的数据芯片可包括防止奇偶校验825正确地匹配任何编程的污染模式的一个或多个错误。例如,错误可强制特定位为不正确的值。在那种情况下,即使该不正确的位不是污染模式的部分,该位也可看起来也像数据污染,或者即使该位被污染,它也可看起来像不是污染模式的部分的位。其次,由于数据错误,奇偶校验825可距任何编程的污染模式足够远,使得污染模式分析电路725不可决定性地确定使用了哪种污染模式(因此不可决定性地确定哪个数据芯片具有错误)。
对这些问题的解决方法是双重的。首先,污染模式分析电路725可选择最接近奇偶校验825的编程的污染模式(也就是说,与奇偶校验825具有最多匹配的位的编程的污染模式)。(可通过匹配污染模式中的全部的位(0和1二者)或者仅匹配污染模式中为1的位来完成匹配。)例如,奇偶校验825匹配编程的污染模式605、610和620的两种位以及编程的污染模式615、625和630的一种位。虽然这可能看起来是不确定的,但是回忆起图3的每个数据芯片提供多于四位的数据。因此,虽然污染模式605、610、615、620、625和630被重复以覆盖来自数据芯片的全部数据,但是他们自己的错误的数量不太可能以与污染模式相同的频率重复。例如,假设具有错误的数据芯片是提供原始数据805的数据芯片。在那种情况下,污染模式贡献了奇偶校验825的前两位,而奇偶校验825的第三位是起因于数据错误。如果仅第三位是具有数据错误的位,则奇偶校验825将实际匹配与数据芯片相关联的污染模式中的全部位。
其次,污染模式分析电路725可包括阈值910。阈值910可规定最大距离(也就是,奇偶校验825与编程的污染模式605、610、612、620、625、和630之间不同的位的数量)。假如编程的污染模式605、610、612、620、625和630中的至少一个是在奇偶校验825的阈值910内,则最接近奇偶校验825的编程的污染模式可被选择。如果没有污染模式在奇偶校验825的阈值910内,则图1的存储器控制器125可断定错误可能没有被纠正。阈值910可被设置为任何期望的距离:例如,图3的缓冲器320的大小(当然,等于由图1的存储器控制器125从图3的数据芯片305接收的数据的大小和奇偶校验825的大小)的一半或污染模式的大小的一半(当污染模式具有比图3的缓冲器320更少的位时)。然而,本发明构思的实施例还可支持其他阈值。可用于确定阈值910的另一准则可以是任何两个编程的污染模式之间的不同的位的最小数量(考虑到编程的污染模式根据需要被重复以完全污染图3的缓冲器320)。
虽然图8至图9描述使用奇偶校验825作为用于识别污染模式的数据源,但是本发明构思的实施例可支持用于识别污染模式的其他机制。例如,替代使用奇偶校验825,图7的存储器控制器125可包括污染模式确定电路。污染模式确定电路可对图8的原始数据805、810、815和820中的任何或全部执行任何期望的计算,以计算确定的污染模式,其中,确定的污染模式可然后通过污染模式分析电路725与编程的污染模式进行比较。在本发明构思的这样的实施例中,奇偶校验825可被单独用于确定是否存在错误,而污染模式确定电路可被用于确定被期望为由具有错误的数据芯片使用的污染模式的是什么。
图10示出图3的存储器控制器125从图8的奇偶校验825去除污染模式,其中,图8的奇偶校验825是从数据芯片接收的。在图10中,在图7的污染模式分析电路725已经确定使用的污染模式是图6的污染模式605之后,图3的存储器控制器125可从奇偶校验825去除污染模式605。如果通过对原数据和污染模式605进行XOR运算而将污染模式605添加到原数据,则可通过对污染模式605和奇偶校验825进行XOR运算来从奇偶校验825去除污染模式605。如果不同的技术被数据芯片用于污染原数据,则相应的技术可被用于从奇偶校验825去除污染模式。不管使用的技术,结果是错误1005:位的值实际是错误的。一旦在错误1005中已经识别这些位,这些位就可被纠正。
纠正位的一种方式就是使用来自全部其他数据芯片的原始数据(包括奇偶校验数据)去重建来自数据芯片的错误的原始位。可使用任何期望的方法在位级操作该纠正:例如,可使用来自其他数据芯片的奇偶校验信息和相应的位来重建错误的原始位。但是,仅丢弃来自具有错误的数据芯片的数据代替重建来自具有错误的数据芯片全部数据可能更简单。图11示出这种方法。
在图11中,已经丢弃了具有错误的数据芯片的数据(例如,图8的原始数据805)。可从原始数据810、原始数据815等至原始数据820重建具有错误的数据芯片的全部数据。由于原始数据810、815等至原始数据820可包括来自奇偶校验芯片的信息,所以原始数据810、815等至820可包括用于重建具有错误的数据芯片的正确信息的足够信息。也就是说,通过对原始数据810、815等至820进行XOR运算,结果可从具有错误的数据芯片恢复原始数据。
图11示出如何从包括来自奇偶校验芯片的数据的其他数据芯片重建原始数据。如果一些其他技术被用于提供纠错,则在图11中所示的技术可被适当修改。
图12A至图12B示出根据本发明构思的实施例的图1的存储器115中的图3的数据芯片305污染数据的示例过程的流程图。在图12A中,在块1205,图3的数据芯片305可如由图1的存储器控制器125所指示那样存储污染模式。可仅在系统的初始启动而非每次执行存储器访问时执行块1205。下面描述的图13提供关于图3的数据芯片305可如何存储污染模式的更多细节。在块1210,图3的数据芯片305可从图1的存储器控制器125接收针对在存储器地址的值的请求。与针对单独位于单个数据芯片内的数据的请求或针对在特定位的数据的请求相对,这个请求可以是针对存储在图1的存储器模块115中的全部数据芯片之间的值的更广泛的请求的部分。在块1215,图3的缓冲器320可缓冲从图3的DRAM阵列310检索的数据。在块1220,图3的数据芯片305可确定图3的缓冲器320中的数据是否包含错误。例如,图3的数据芯片305可对图3的缓冲器320中的位执行奇偶校验计算,以确定是否存在错误,或者图3的ECC引擎325可指示是否存在错误。如果图3的数据芯片305确定不存在错误,则在块1225,图3的传输电路345可将原数据发送到图1的存储器控制器125。
但如果在块1220,图3的数据芯片305确定存在错误,则在块1230(图12B),图3的数据芯片305可确定是否可使用图3的ECC引擎325纠正错误。如果错误是可纠正的,则在块1235,图3的ECC引擎325可纠正错误,之后在块1240,纠正的数据可经由图3的传输电路345被发送到图1的存储器控制器125。否则,在块1245,图3的数据芯片305可从图3的屏蔽寄存器335访问污染模式。在块1250,图3的数据污染引擎330可使用访问的污染模式来污染图3的缓冲器320中的数据。如上面参照图3所述,可通过对图3的缓冲器320中的数据和污染模式进行XOR运算来完成对数据的污染。最后,在块1255,图3的传输电路345可将污染的数据发送到图1的存储器控制器125。
图13示出根据本发明构思的实施例的将使用污染模式编程的图1的存储器模块115中的数据芯片305的示例过程的流程图。在图13中,在块1305,图3的数据芯片305可从图1的存储器控制器125接收污染模式;在块1310,图3的数据芯片305可将接收的污染模式存储在图3的屏蔽寄存器335中。可选地,在块1315,图3的数据芯片305可接收已经被预编程到图3的屏蔽寄存器335中的污染模式的标识符;在块1320,图3的数据芯片305可在图3的屏蔽寄存器335中定位识别的污染模式,用于在需要时在污染数据中使用。
图14示出根据本发明构思的实施例的图1的存储器115中的图3的数据芯片305将原始数据发送到图1的存储器控制器125的示例过程的流程图。如上面参照图3所述,图1的存储器控制器125可将存储器控制器禁用信号355发送到数据污染引擎330。图3的存储器控制器禁用信号355提供以下机制:当图3的数据污染引擎330可另外污染包含不可纠正的错误的数据时,图1的存储器控制器125可从图3的缓冲器320接收原数据(即,未污染的数据)。例如,在污染模式可出于某些原因而未从污染的数据被去除并且图1的存储器控制器125想要未污染的数据的情况下,图3的存储器控制器禁用信号355可以是有用的。
在图14中,在块1405,图3的数据芯片305可接收图3的存储器控制器禁用信号355。在块1225(功能上与图12A的块1225相同),图3的传输电路345可将原(未污染的)数据从图3的缓冲器320发送到图1的存储器控制器125。
图14可被认为是图12A的块1220至块1225的变化。例如,在图12A的块1220中执行的测试可以是两部分测试:第一,图3的缓冲器320中的原数据是否无错误;第二,图3的数据芯片305是否从图1的存储器控制器125接收图3的存储器控制器禁用信号335?如果测试的任一部分结果是肯定答案,则图3的传输电路345可从图3的缓冲器320发送原数据;否则,处理可继续进行图12B的块1230。
图15A至图15B示出根据本发明构思的实施例的当图1的存储器115中的数据芯片305使用污染模式污染数据时图1的存储器控制器125执行纠错的示例过程的流程图。在图15A,在块1505,图1的存储器控制器125可使用污染模式对图3的数据芯片305进行编程。在块1505,图1的存储器控制器125可选择细粒度或粗粒度的任何期望的污染模式。可选地,在块1510,图1的存储器控制器125可选择预编程污染模式的标识符;在块1515,图1的存储器控制器125可使用选择的标识符对图3的数据芯片305进行编程。与12A的块1205相似,可仅在系统的初始启动而非每次执行存储器访问时执行块1505至块1510。
不管图1的存储器控制器125如何使用污染模式对图3的数据芯片305进行编程,在块1520,图7的读取电路710可从图3的数据芯片305接收原始数据(original data)。在块1525,图7的奇偶校验电路715可计算图8的奇偶校验825。在块1530,图1的存储器控制器125可(基于图8的奇偶校验825)确定在原始数据中是否存在错误。如上所述,计算图8的奇偶校验825是用于确定在原始数据中是否存在错误的一种方式,但不是唯一方式,并且本发明构思的实施例可支持用于确定在原始数据中是否存在错误的其他技术。
在块1535(图15B),图1的存储器控制器125确定在原始数据中是否存在错误。如果在原始数据中不存错误,则在块1540,图1的存储器控制器125可将原始数据发送到处理器。否则,在块1545,图7的污染模式分析电路725可尝试识别奇偶校验825中的污染模式。在块1550,存储器控制器125可使用识别的污染模式来识别具有错误的图3的数据芯片305。在块1555,图7的纠错电路730可纠正图3的数据芯片305中的错误。最后,在块1560,图1的存储器控制器125可将纠正的数据发送到主机。
图16示出根据本发明构思的实施例的图7的污染模式分析电路725识别哪种污染模式被用来污染数据的示例过程的流程图。在图16中,在块1525(功能上与15A的块1525类似,并且实际上两个块可以是单个操作),图8的奇偶校验825可被计算,以产生计算的污染模式。在块1605,图7的污染模式分析电路725可将计算的污染模式和与图1的存储器115中的数据芯片相关联的污染模式进行比较。在块1610,图7的污染模式分析电路725可确定与图1的存储器模块115中的数据芯片相关联的任何污染模式是否在计算的污染模式的阈值距离内。如上面参照图9所述,距离可被测量为在计算的污染模式与编程的污染模式之间不同的位的数量,阈值可以是任何期望的阈值。
如果任何的编程的污染模式不是在计算的污染模式的阈值距离内,则在块1615,图1的存储器控制器125可确定未识别到污染模式;在块1620,图1的存储器控制器125可将错误作为不可纠正错误(UE)记录在图7的日志735中。否则,在块1625,图7的污染模式分析电路725可识别最接近计算的污染模式的污染模式,并因此识别具有错误的数据芯片。
图17示出根据本发明构思的实施例的图7的纠错电路730对图1的存储器115中的图3的数据芯片305中的错误进行纠正的示例过程的流程图。在图17中,在块1705,图7的纠错电路730可丢弃来自具有错误的数据芯片305的数据。在块1710,图7的纠错电路730可计算来自图1的存储器115中的其他数据芯片的奇偶校验;在块1715,图7的纠错电路730可使用计算的奇偶校验作为来自识别的数据芯片的数据。
可选地,在块1720,图7的纠错电路730可从来自图3的具有错误的数据芯片305的原始数据去除污染模式。在块1725,图7的纠错电路730可使用来自图3的具有错误的数据芯片305的未污染的数据来计算奇偶校验;在块1730,图7的纠错电路730可基于计算的奇偶校验将未污染的数据中的位反转。
图18示出根据本发明构思的实施例的图1的存储器控制器125从图1的存储器模块115中的数据芯片305请求原始数据的示例过程的流程图。在图18中,在块1805,图1的存储器控制器125可将图3的存储器控制器禁用信号355发送到图3的数据芯片305。在块1810,图1的存储器控制器125可从图3的数据芯片305接收原数据。
在图12A至图18中,示出了本发明构思的一些实施例。但是本领域技术人员将认识到,通过改变块的顺序、通过省略块或通过包括附图中未示出的链接,本发明构思的其他实施例也是可行的。无论是否清楚地描述,流程图的全部这样的改变被认为是本发明构思的实施例。
下面的讨论意图提供对可实现本发明构思的特定方面的合适机器的简洁和总体描述。可通过来自传统输入装置(诸如,键盘、鼠标等)的输入以及从另一机器接收的指令、与虚拟现实(VR)环境的交互、生物反馈或其他输入信号,来至少部分地控制机器。如这里所使用的,术语“机器”意图宽泛地包含单个机器、虚拟机、或通信连接的机器、虚拟机或一起操作的装置的系统。示例性机器包括计算装置(诸如,个人计算机、工作站、服务器、便携式计算机、手持设备、电话、平板等)以及运输装置(诸如,私人或公共运输工具(例如,汽车、火车、出租车等))。
机器可包括嵌入式控制器,诸如,可编程或非可编程逻辑器件或阵列、专用集成电路(ASIC)、嵌入式计算机、智能卡等。机器可诸如通过网络接口、调制解调器或其他通信连接来将一个或多个连接用于一个或多个远程装置。机器可通过物理和/或逻辑网络(诸如,内联网、互联网、局域网、广域网等)的方式互连。本领域技术人员将理解,网络通信可采用包括射频(RF)、卫星、微波、电气和电子工程师协会(IEEE)802.11、蓝牙、光学、红外、线缆、激光等的各种有线和/或无线短程或长程载波和协议。
可通过参照或结合包括功能、过程、数据结构和应用程序等的相关联的数据来描述本发明构思的实施例,其中,相关联的数据在被机器访问时使得机器执行任务或限定抽象数据类型或低层硬件上下文。例如,相关联的数据可存储在易失性和/或非易失性存储器(例如,RAM、ROM等)或者存储在其他存储装置和他们的相关联的存储介质中,其中,相关联的存储介质包括硬盘驱动器、软盘、光学存储、磁带、闪存、存储棒、数字视频磁盘、生物存储等。相关联的数据可以以包、串行数据、并行数据、传播信号等的形式在包括物理和/或逻辑网络的传输环境上被传递,并可以以压缩或加密的格式来使用相关联的数据。相关联的数据可被用于分布式环境,并且被本地和/或远程地存储,以供机器访问。
本发明构思的实施例可包括有形的非暂时性机器可读介质,其中,有形的非暂时性机器可读介质包括通过一个或多个处理器可执行的指令,指令包括用于执行如这里描述的本发明构思的元件的指令。
已经参照示出的实施例描述和示出了本发明构思的原理,将认识到:可在不脱离这样的原理的情况下在布置和细节上修改示出的实施例,并可以以任何期望的方式组合示出的实施例。此外,虽然前述讨论已经集中于特定实施例,但是其他配置被考虑。尤其,即使在这里使用诸如“根据本发明构思的实施例”等的表述,但是这些短语通常意味着参考实施例可能性,而不意图将本发明构思限制为特定实施例配置。如这里所使用,这些术语可参考可组合到其他实施例中的相同或不同的实施例。
前述说明性的实施例不被解释为限制它们的发明构思。虽然已经描述了一些实施例,本领域技术人员将容易理解,在不实质地脱离本公开的新的教导和优点的情况下,可对那些实施例做出很多修改。因此,全部这样的修改意图包括在权利要求所限定的本发明构思的范围内。
在没有限制的情况下,本发明构思的实施例可延伸到下面的声明:
声明1、本发明构思的实施例包括一种数据芯片,所示数据芯片包括:
数据阵列;
读取电路,用于从数据阵列读取原数据;
缓冲器,用于存储由读取电路从数据阵列读取的原数据;
屏蔽寄存器,用于存储污染模式;
数据污染引擎,用于使用存储在屏蔽寄存器中的污染模式修改存储在缓冲器中的原数据,以产生污染的数据;
传输电路,用于从缓冲器发送污染的数据。
声明2、本发明构思的实施例包括根据声明1的数据芯片,其中,所述数据芯片包括在动态随机存取存储器(DRAM)模块中。
声明3、本发明构思的实施例包括根据声明1的数据芯片,其中:
所述数据芯片被包括在动态随机存取存储器(DRAM)模块中,DRAM模块包括多个其他数据芯片,
存储在所述数据芯片的屏蔽寄存器中的污染模式与存储在DRAM模块中的所述多个其他数据芯片中的污染模式不同。
声明4、本发明构思的实施例包括根据声明1的数据芯片,其中,传输电路操作为:将污染的数据发送到存储器控制器。
声明5、本发明构思的实施例包括根据声明1的数据芯片,其中:
所述数据芯片还包括:纠错码(ECC)电路,用于对存储在缓冲器中的原数据执行纠错;
当ECC电路检测到但不可纠正存储在缓冲器中的原数据中的错误时,数据污染引擎操作为:使用存储在屏蔽寄存器中的污染模式修改存储在缓冲器中的原数据。
声明6、本发明构思的实施例包括根据声明1的数据芯片,其中,数据污染引擎包括:XOR电路,用于对存储在缓冲器中的原数据和存储在屏蔽寄存器中的污染模式执行XOR运算。
声明7、本发明构思的实施例包括根据声明1的数据芯片,其中,除非数据污染引擎从存储器控制器接收到存储器控制器禁用信号,否则数据污染引擎操作为:使用存储在屏蔽寄存器中的污染模式修改存储在缓冲器中的原数据。
声明8、本发明构思的实施例包括根据声明1的数据芯片,其中,污染模式在启动时通过存储器控制器被编程到所述数据芯片内的屏蔽寄存器中。
声明9、本发明构思的实施例包括根据声明1的数据芯片,其中:
污染模式是存储在屏蔽寄存器中的多个预编程污染模式中的一个;
所述数据芯片可从存储器控制器接收来自屏蔽寄存器的将要使用的污染模式的标识符。
声明10、本发明构思的实施例包括一种存储器控制器,所述存储器控制器包括:
读取电路,用于请求在存储在多个数据芯片中的地址的值;
奇偶校验电路,用于计算来自从所述多个数据芯片接收的原始数据的奇偶校验;
污染模式分析电路,用于将奇偶校验与编程到所述多个数据芯片中的多个污染模式进行比较,以识别具有错误的数据芯片;
纠错电路,用于纠正从识别的具有错误的数据芯片接收的原始数据中的错误。
声明11、本发明构思的实施例包括根据声明10的存储器控制器,其中,所述多个数据芯片被包括在动态随机存取存储器(DRAM)模块中。
声明12、本发明构思的实施例包括根据声明10的存储器控制器,其中,仅如果奇偶校验电路指示从所述多个数据芯片接收的原始数据中存在错误,则污染模式分析电路和纠错电路被使用。
声明13、本发明构思的实施例包括根据声明12的存储器控制器,其中,计算的来自从所述多个数据芯片接收的原始数据的奇偶校验指示从所述多个数据芯片接收的原始数据中是否存在错误。
声明14、本发明构思的实施例包括根据声明10的存储器控制器,其中,污染模式分析电路操作为:识别编程到所述多个数据芯片中的所述多个污染模式中最接近奇偶校验的污染模式。
声明15、本发明构思的实施例包括根据声明14的存储器控制器,其中,污染模式分析电路还操作为:确定编程到所述多个数据芯片中的所述多个污染模式中的识别的污染模式是否在奇偶校验的阈值内。
声明16、本发明构思的实施例包括根据声明15的存储器控制器,其中,所述阈值是奇偶校验的大小的一半。
声明17、本发明构思的实施例包括根据声明15的存储器控制器,其中,污染模式分析电路还操作为:如果编程到所述多个数据芯片中的所述多个污染模式中没有一个污染模式是在奇偶校验的所述阈值内,则未识别到编程到所述多个数据芯片中的所述多个污染模式中的任何一个污染模式。
声明18、本发明构思的实施例包括根据声明17的存储器控制器,还包括:日志,用于记录编程到所述多个数据芯片中的所述多个污染模式中没有一个污染模式是在奇偶校验的所述阈值内。
声明19、本发明构思的实施例包括根据声明14的存储器控制器,其中,污染模式分析电路操作为:识别编程到所述多个数据芯片中的所述多个污染模式中具有最多的与奇偶校验中的位匹配的位的污染模式。
声明20、本发明构思的实施例包括根据声明14的存储器控制器,其中,污染模式分析电路操作为:将所述多个数据芯片中的与编程到所述多个数据芯片中的所述多个污染模式中的识别的污染模式相关联的数据芯片识别为识别的具有错误的数据芯片。
声明21、本发明构思的实施例包括根据声明14的存储器控制器,其中:
所述存储器控制器操作为:向识别的具有错误的数据芯片发送存储器控制器禁用信号;
读取电路操作为:从识别的具有错误的数据芯片接收原数据。
声明22、本发明构思的实施例包括根据声明10的存储器控制器,其中,纠错电路操作为:使用来自所述多个数据芯片中的其他数据芯片的原始数据来重建来自识别的具有错误的数据芯片的数据。
声明23、本发明构思的实施例包括根据声明22的存储器控制器,其中,奇偶校验电路操作为:通过计算针对来自所述多个数据芯片中的其他数据芯片的原始数据的奇偶校验,来重建来自识别的具有错误的数据芯片的数据。
声明24、本发明构思的实施例包括根据声明10的存储器控制器,其中,纠错电路操作为:从来自识别的具有错误的数据芯片接收的原始数据去除污染模式以获得未污染的数据,并使用来自识别的具有错误的数据芯片的未污染的数据和来自所述多个数据芯片中的其他数据芯片的原始数据,来纠正来自识别的具有错误的数据芯片的未污染的数据中的错误。
声明25、本发明构思的实施例包括根据声明24的存储器控制器,其中,纠错电路还操作为:针对来自识别的具有错误的数据芯片的未污染的数据和来自所述多个数据芯片中的其他数据芯片的原始数据,计算奇偶校验,并基于计算的奇偶校验反转来自识别的具有错误的数据芯片的未污染的数据中的至少一位。
声明26、本发明构思的实施例包括根据声明10的存储器控制器,所述存储器控制器还包括:污染模式编程电路,用于在启动期间选择用于所述多个数据芯片的多个污染模式。
声明27、本发明构思的实施例包括根据声明26的存储器控制器,其中,所述多个污染模式都是唯一的。
声明28、本发明构思的实施例包括根据声明26的存储器控制器,其中,污染模式编程电路操作为:在启动期间使用所述多个污染模式对所述多个数据芯片进行编程。
声明29、本发明构思的实施例包括根据声明26的存储器控制器,其中,污染模式编程电路操作为:在启动期间选择用于所述多个数据芯片的多个预编程污染模式的多个标识符,并在启动期间使用选择的所述多个标识符对所述多个数据芯片进行编程。
声明30、本发明构思的实施例包括一种控制数据芯片的方法,所述方法包括:
在数据芯片接收针对在地址的值的请求;
在数据芯片的缓冲器中缓冲原数据,原数据包括在所述地址的值;
确定缓冲器中的原数据是否具有错误;
如果缓冲器中的原数据具有错误,则:
使用污染模式污染缓冲器中的原数据,以产生污染的数据;
将缓冲器中的污染的数据发送到存储器控制器。
声明31、本发明构思的实施例包括根据声明30的方法,其中,使用污染模式污染缓冲器中的原数据的步骤包括:对缓冲器中的原数据和污染模式进行XOR运算。
声明32、本发明构思的实施例包括根据声明30的方法,所述方法还包括:如果缓冲器中的原数据没有错误,则将缓冲器中的原数据发送到存储器控制器。
声明33、本发明构思的实施例包括根据声明30的方法,其中,数据芯片被包括在动态随机存取存储器(DRAM)模块中。
声明34、本发明构思的实施例包括根据声明30的方法,所述方法还包括:如果缓冲器中的原数据具有错误,则:
确定缓冲器中的原数据中的错误是否可纠正;
如果缓冲器中的原数据中的错误不可纠正,则:
使用污染模式污染缓冲器中的原数据;
将污染的缓冲器中的数据发送到存储器控制器。
声明35、本发明构思的实施例包括根据声明34的方法,所述方法还包括:如果缓冲器中的原数据中的错误可纠正,则:
纠正缓冲器中的原数据;
将纠正的缓冲器中的数据发送到存储器控制器。
声明36、本发明构思的实施例包括根据声明30的方法,其中,使用污染模式污染缓冲器中的原数据的步骤包括:从数据芯片中的屏蔽寄存器访问污染模式。
声明37、本发明构思的实施例包括根据声明36的方法,所述方法还包括:
从存储器控制器接收污染模式;
将接收的污染模式存储在屏蔽寄存器中。
声明38、本发明构思的实施例包括根据声明36的方法,其中:
所述方法还包括从存储器控制器接收污染模式标识符;
从数据芯片中的屏蔽寄存器访问污染模式的步骤包括:响应于污染模式标识符,从数据芯片中的屏蔽寄存器访问污染模式。
声明39、本发明构思的实施例包括根据声明30的方法,其中,污染模式具有与缓冲器的第二宽度相等的第一宽度。
声明40、本发明构思的实施例包括根据声明30的方法,其中,污染模式具有小于缓冲器的第二宽度的第一宽度,污染模式被重复为至少与缓冲器一样宽。
声明41、本发明构思的实施例包括根据声明30的方法,所述方法还包括:
在数据芯片接收存储器控制器禁用信号;
将缓冲器中的原数据发送到存储器控制器。
声明42、本发明构思的实施例包括一种方法,所述方法包括:
从所述多个数据芯片接收原始数据;
确定来自所述多个数据芯片中的至少一个数据芯片的原始数据是否具有错误;
如果来自所述多个数据芯片中的至少一个数据芯片的原始数据具有错误,则:
尝试使用来自所述多个数据芯片的原始数据来识别污染模式;
使用污染模式来识别所述多个数据芯片中的具有错误的所述至少一个数据芯片;
响应于污染模式和来自所述多个数据芯片的原始数据,纠正来自所述多个数据芯片的原始数据中的错误。
声明43、本发明构思的实施例包括根据声明42的方法,其中,所述多个数据芯片包括在动态随机存取存储器(DRAM)中。
声明44、本发明构思的实施例包括根据声明42的方法,所述方法还包括:将纠正的数据发送到主机。
声明45、本发明构思的实施例包括根据声明42的方法,其中,如果来自所述多个数据芯片中的至少一个数据芯片的原始数据不具有错误,则将原始数据传输到主机。
声明46、本发明构思的实施例包括根据声明42的方法,其中,确定来自所述多个数据芯片中的至少一个数据芯片的原始数据是否具有错误的步骤包括:
对来自所述多个数据芯片的原始数据执行奇偶校验计算;
如果奇偶校验计算指示奇偶校验错误,则确定来自所述多个数据芯片中的所述至少一个数据芯片的原始数据具有错误。
声明47、本发明构思的实施例包括根据声明42的方法,其中,尝试使用来自所述多个数据芯片的原始数据来识别污染模式的步骤包括:
从来自所述多个数据芯片的原始数据计算污染模式;
将计算的污染模式和与所述多个数据芯片相关联的多个污染模式进行比较;
如果与所述多个数据芯片相关联的所述多个污染模式中的一个污染模式在计算的污染模式的阈值内,则识别在计算的污染模式的阈值内的污染模式。
声明48、本发明构思的实施例包括根据声明47的方法,其中,将计算的污染模式和与所述多个数据芯片相关联的多个污染模式进行比较的步骤包括:识别与所述多个数据芯片相关联的所述多个污染模式中的最接近计算的污染模式的污染模式。
声明49、本发明构思的实施例包括根据声明48的方法,其中,识别与所述多个数据芯片相关联的所述多个污染模式中的最接近计算的污染模式的污染模式的步骤包括:识别与所述多个数据芯片相关联的所述多个污染模式中的具有最多的与计算的污染模式中的位匹配的位的污染模式。
声明50、本发明构思的实施例包括根据声明47的方法,其中,实施阈值是计算的污染模式的大小的一半。
声明51、本发明构思的实施例包括根据声明47的方法,其中,如果与所述多个数据芯片相关联的所述多个污染模式中没有一个污染模式在计算的污染模式的阈值内,则未识别到与所述多个数据芯片相关联的任何污染模式。
声明52、本发明构思的实施例包括根据声明51的方法,所述方法还包括:将错误记录为不可纠正的错误(UE)。
声明53、本发明构思的实施例包括根据声明47的方法,所述方法还包括:
向所述多个数据芯片中的识别的具有错误的所述至少一个数据芯片发送存储器控制器禁用信号;
从所述多个数据芯片中的识别的具有错误的所述至少一个数据芯片接收原数据。
声明54、本发明构思的实施例包括根据声明47的方法,其中,响应于污染模式和来自所述多个数据芯片的原始数据,纠正来自所述多个数据芯片的原始数据中的错误的步骤包括:
丢弃来自所述多个数据芯片中的识别的具有错误的所述至少一个数据芯片的原始数据;
使用来自所述多个数据芯片中的其他数据芯片的原始数据来重建来自所述多个数据芯片中的识别的具有错误的所述至少一个数据芯片的数据。
声明55、本发明构思的实施例包括根据声明54的方法,其中,使用来自所述多个数据芯片中的其他数据芯片的原始数据来重建来自所述多个数据芯片中的识别的具有错误的所述至少一个数据芯片的数据的步骤包括:
针对来自所述多个数据芯片中的其他数据芯片的原始数据计算奇偶校验;
使用计算的奇偶校验作为来自所述多个数据芯片中的识别的具有错误的所述至少一个数据芯片的数据。
声明56、本发明构思的实施例包括根据声明47的方法,其中,响应于污染模式和来自所述多个数据芯片的原始数据,纠正来自所述多个数据芯片的原始数据中的错误的步骤包括:
从来自所述多个数据芯片中的识别的具有错误的所述至少一个数据芯片的原始数据去除识别的污染模式,产生未污染的数据;
使用来自所述多个数据芯片中的识别的具有错误的所述至少一个数据芯片的未污染的数据和来自所述多个数据芯片中的其他数据芯片的原始数据,来纠正来自所述多个数据芯片中的识别的具有错误的所述至少一个数据芯片的未污染的数据中的错误。
声明57、本发明构思的实施例包括根据声明56的方法,其中,从来自所述多个数据芯片中的识别的具有错误的所述至少一个数据芯片的原始数据去除识别的污染模式,产生未污染的数据的步骤包括:对识别的污染模式和来自所述多个数据芯片中的识别的具有错误的所述至少一个数据芯片的原始数据进行XOR运算。
声明58、本发明构思的实施例包括根据声明56的方法,其中,使用来自所述多个数据芯片中的识别的具有错误的所述至少一个数据芯片的未污染的数据和来自所述多个数据芯片中的其他数据芯片的原始数据,来纠正来自所述多个数据芯片中的识别的具有错误的所述至少一个数据芯片的未污染的数据中的错误的步骤包括:
针对来自所述多个数据芯片中的识别的具有错误的所述至少一个数据芯片的未污染的数据和来自所述多个数据芯片中的其他数据芯片的原始数据计算奇偶校验;
基于计算的奇偶校验,反转来自所述多个数据芯片中的识别的具有错误的所述至少一个数据芯片的未污染的数据中的至少一位。
声明59、本发明构思的实施例包括根据声明42的方法,所述方法还包括:在启动期间选择用于所述多个数据芯片的多个污染模式。
声明60、本发明构思的实施例包括根据声明59的方法,其中,选择用于所述多个数据芯片的多个污染模式的步骤包括:在启动期间使用所述多个污染模式对所述多个数据芯片进行编程。
声明61、本发明构思的实施例包括根据声明59的方法,其中,选择用于所述多个数据芯片的多个污染模式的步骤包括:
在启动期间选择用于所述多个数据芯片的多个预编程污染模式的多个标识符;
在启动期间使用选择的所述多个标识符对所述多个数据芯片进行编程。
声明62、本发明构思的实施例包括一种物品,所述物品包括有形的存储介质,所述有形的存储介质具有存储在其上的非暂时性指令,所述非暂时性指令在被机器执行时使得:
在数据芯片接收针对在地址的值的请求;
在数据芯片的缓冲器中缓冲原数据,原数据包括在所述地址的值;
确定缓冲器中的原数据是否具有错误;
如果缓冲器中的原数据具有错误,则:
使用污染模式污染缓冲器中的原数据,以产生污染的数据;
将缓冲器中的污染的数据发送到存储器控制器。
声明63、本发明构思的实施例包括根据声明62的物品,其中,使用污染模式污染缓冲器中的原数据的步骤包括:对缓冲器中的原数据和污染模式进行XOR运算。
声明64、本发明构思的实施例包括根据声明62的物品,所述有形的存储介质具有存储在其上的另外非暂时性指令,所述另外非暂时性指令在被机器执行时使得:如果缓冲器中的原数据没有错误,则将缓冲器中的原数据发送到存储器控制器。
声明65、本发明构思的实施例包括根据声明62的物品,其中,数据芯片被包括在动态随机存取存储器(DRAM)中。
声明66、本发明构思的实施例包括根据声明62的物品,所述有形的存储介质具有存储在其上的另外非暂时性指令,所述另外非暂时性指令在被机器执行时使得:如果缓冲器中的原数据具有错误,则:
确定缓冲器中的原数据中的错误是否可纠正;
如果缓冲器中的原数据中的错误不可纠正,则:
使用污染模式污染缓冲器中的原数据;
将缓冲器中的污染的数据发送到存储器控制器。
声明67、本发明构思的实施例包括根据声明66的物品,所述有形的存储介质具有存储在其上的另外非暂时性指令,所述另外非暂时性指令在被机器执行时使得:如果缓冲器中的原数据中错误可被纠正,则:
纠正缓冲器中的原数据;
将缓冲器中的纠正的数据发送到存储器控制器。
声明68、本发明构思的实施例包括根据声明62的物品,其中,使用污染模式污染缓冲器中的原数据的步骤包括:从数据芯片中的屏蔽寄存器访问污染模式。
声明69、本发明构思的实施例包括根据声明68的物品,所述有形的存储介质具有存储在其上的另外非暂时性指令,所述另外非暂时性指令在被机器执行时使得:
从存储器控制器接收污染模式;
将接收的污染模式存储在屏蔽寄存器中。
声明70、本发明构思的实施例包括根据声明68的物品,所述有形的存储介质具有存储在其上的另外非暂时性指令,所述另外非暂时性指令在被机器执行时导致:
从存储器控制器接收污染模式标识符;
从数据芯片中的屏蔽寄存器访问污染模式的步骤包括:响应于污染模式标识符,从数据芯片中的屏蔽寄存器访问污染模式。
声明71、本发明构思的实施例包括根据声明62的物品,其中,污染模式具有与缓冲器的第二宽度相等的第一宽度。
声明72、本发明构思的实施例包括根据声明62的物品,其中,污染模式具有小于缓冲器的第二宽度的第一宽度,污染模式被重复为至少与缓冲器一样宽。
声明73、本发明构思的实施例包括根据声明62的物品,所述有形的存储介质具有存储在其上的另外非暂时性指令,所述另外非暂时性指令在被机器执行时使得:
在数据芯片接收存储器控制器禁用信号;
将缓冲器中的原数据发送到存储器控制器。
声明74、本发明构思的实施例包括一种物品,包括有形的存储介质,所述有形的存储介质具有存储在其上的非暂时性指令,所述非暂时性指令在被机器执行时使得:
从所述多个数据芯片接收原始数据;
确定来自所述多个数据芯片中的至少一个数据芯片的原始数据是否具有错误;
如果来自所述多个数据芯片中的至少一个数据芯片的原始数据具有错误,则:
尝试使用来自所述多个数据芯片的原始数据识别污染模式;
使用污染模式来识别所述多个数据芯片中的具有错误的所述至少一个数据芯片;
响应于污染模式和来自所述多个数据芯片的原始数据,纠正来自所述多个数据芯片的原始数据中的错误。
声明75、本发明构思的实施例包括根据声明74的物品,其中,所述多个数据芯片被包括在动态随机存取存储器(DRAM)中。
声明76、本发明构思的实施例包括根据声明74的物品,所述有形的存储介质具有存储在其上的另外非暂时性指令,所述另外非暂时性指令在被机器执行时使得:将纠正的数据发送到主机。
声明77、本发明构思的实施例包括根据声明74的物品,所述有形的存储介质具有存储在其上的另外非暂时性指令,所述另外非暂时性指令在被机器执行时使得:如果来自所述多个数据芯片中的至少一个数据芯片的原始数据没有错误,则将原始数据发送到主机。
声明78、本发明构思的实施例包括根据声明74的物品,其中,确定来自所述多个数据芯片中的至少一个数据芯片的原始数据是否具有错误的步骤包括:
对来自所述多个数据芯片的原始数据执行奇偶校验计算;
如果奇偶校验计算指示奇偶校验错误,则确定来自所述多个数据芯片中的所述至少一个数据芯片的原始数据是否具有错误。
声明79、本发明构思的实施例包括根据声明74的物品,其中,尝试使用来自所述多个数据芯片的原始数据识别污染模式的步骤包括:
从来自所述多个数据芯片的原始数据计算污染模式;
将计算的污染模式和与所述多个数据芯片相关联的多个污染模式进行比较;
如果与所述多个数据芯片相关联的所述多个污染模式中的一个污染模式在计算的污染模式的阈值内,则识别到在计算的污染模式的阈值内的污染模式。
声明80、本发明构思的实施例包括根据声明79的物品,其中,将计算的污染模式和与所述多个数据芯片相关联的多个污染模式进行比较的步骤包括:识别与所述多个数据芯片相关联的所述多个污染模式中最接近计算的污染模式的污染模式。
声明81、本发明构思的实施例包括根据声明80的物品,其中,识别与所述多个数据芯片相关联的所述多个污染模式中最接近计算的污染模式的污染模式的步骤包括:识别与所述多个数据芯片相关联的所述多个污染模式中具有最多的与计算的污染模式中的位匹配的位的污染模式。
声明82、本发明构思的实施例包括根据声明79的物品,其中,所述阈值是计算的污染模式的大小的一半。
声明83、本发明构思的实施例包括根据声明79的物品,其中,如果与所述多个数据芯片相关联的所述多个污染模式中没有一个污染模式在计算的污染模式的阈值内,则未识别到与所述多个数据芯片相关联的任何污染模式。
声明84、本发明构思的实施例包括根据声明83的物品,所述有形的存储介质具有存储在其上的另外非暂时性指令,所述另外非暂时性指令在被机器执行时使得:将错误记录为不可纠正错误(UE)。
声明85、本发明构思的实施例包括根据声明79的物品,所述有形的存储介质具有存储在其上的另外非暂时性指令,所述另外非暂时性指令在被机器执行时使得:
向所述多个数据芯片中的识别的具有错误的所述至少一个数据芯片发送存储器控制器禁用信号;
从所述多个数据芯片中的识别的具有错误的所述至少一个数据芯片接收原数据。
声明86、本发明构思的实施例包括根据声明79的物品,其中,响应于污染模式和来自所述多个数据芯片的原始数据,纠正来自所述多个数据芯片的原始数据中的错误的步骤包括:
丢弃来自所述多个数据芯片中的识别的具有错误的所述至少一个数据芯片的原始数据;
使用来自所述多个数据芯片中的其他数据芯片的原始数据来重建来自所述多个数据芯片中的识别的具有错误的所述至少一个数据芯片的数据。
声明87、本发明构思的实施例包括根据声明86的物品,其中,使用来自所述多个数据芯片中的其他数据芯片的原始数据来重建来自所述多个数据芯片中的识别的具有错误的所述至少一个数据芯片的数据的步骤包括:
针对来自所述多个数据芯片中的其他数据芯片的原始数据计算奇偶校验;
使用计算的奇偶校验作为来自所述多个数据芯片中的识别的具有错误的所述至少一个数据芯片的数据。
声明88、本发明构思的实施例包括根据声明79的物品,其中,响应于污染模式和来自所述多个数据芯片的原始数据,纠正来自所述多个数据芯片的原始数据中的错误的步骤包括:
从来自所述多个数据芯片中的识别的具有错误的所述至少一个数据芯片的原始数据去除识别的污染模式,产生未污染的数据;
使用来自所述多个数据芯片中的识别的具有错误的所述至少一个数据芯片的未污染的数据和来自所述多个数据芯片中的其他数据芯片的原始数据,来纠正来自所述多个数据芯片中的识别的具有错误的所述至少一个数据芯片的未污染的数据中的错误。
声明89、本发明构思的实施例包括根据声明88的物品,其中,从来自所述多个数据芯片中的识别的具有错误的所述至少一个数据芯片的原始数据去除识别的污染模式,产生未污染的数据的步骤包括:对识别的污染模式和来自所述多个数据芯片中的识别的具有错误的所述至少一个数据芯片的原始数据进行XOR运算。
声明90、本发明构思的实施例包括根据声明88的物品,其中,使用来自所述多个数据芯片中的识别的具有错误的所述至少一个数据芯片的未污染的数据和来自所述多个数据芯片中的其他数据芯片的原始数据,纠正来自所述多个数据芯片中的识别的具有错误的所述至少一个数据芯片的未污染的数据中的错误的步骤包括:
针对来自所述多个数据芯片中的识别的具有错误的所述至少一个数据芯片的未污染的数据和来自所述多个数据芯片中的其他数据芯片的原始数据计算奇偶校验;
基于计算的奇偶校验,反转来自所述多个数据芯片中的识别的具有错误的所述至少一个数据芯片的未污染的数据中的至少一位。
声明91、本发明构思的实施例包括根据声明74的物品,所述有形的存储介质具有存储在其上的另外非暂时性指令,所述另外非暂时性指令在被机器执行时使得:在启动期间选择用于所述多个数据芯片的多个污染模式。
声明92、本发明构思的实施例包括根据声明91的物品,其中,选择用于所述多个数据芯片的多个污染模式的步骤包括:在启动期间使用所述多个污染模式对所述多个数据芯片进行编程。
声明93、本发明构思的实施例包括根据声明91的物品,其中,选择用于所述多个数据芯片的多个污染模式的步骤包括:
在启动期间选择用于所述多个数据芯片的多个预编程污染模式的多个标识符;
在启动期间使用选择的所述多个标识符对所述多个数据芯片进行编程。
因此,考虑到这里描述的实施例的各种各样的置换,本具体实施方式和附件意图仅为示意性的,并不应被认为限制本发明构思的范围。因此,要求保护的发明构思是可在权利要求书和其等同物的精神和范围内的所有这样的修改。
Claims (21)
1.一种数据芯片,包括:
数据阵列;
读取电路,用于从数据阵列读取原数据;
缓冲器,用于存储由读取电路从数据阵列读取的原数据;
屏蔽寄存器,用于存储污染模式;
数据污染引擎,用于使用存储在屏蔽寄存器中的污染模式修改存储在缓冲器中的原数据,以产生污染的数据;
传输电路,从缓冲器发送污染的数据。
2.如权利要求1所述的数据芯片,其中,所述数据芯片被包括在动态随机存取存储器模块中。
3.如权利要求1所述的数据芯片,其中:
所述数据芯片还包括:纠错码ECC电路,用于对存储在缓冲器中的原数据执行纠错;
当ECC电路检测到但不能够纠正存储在缓冲器中的原数据中的错误时,数据污染引擎操作为:使用存储在屏蔽寄存器中的污染模式修改存储在缓冲器中的原数据。
4.如权利要求1所述的数据芯片,其中,除非数据污染引擎从存储器控制器接收到存储器控制器禁用信号,否则数据污染引擎操作为使用存储在屏蔽寄存器中的污染模式修改存储在缓冲器中的原数据。
5.如权利要求1所述的数据芯片,其中,污染模式在启动时通过存储器控制器被编程到屏蔽寄存器中。
6.一种存储器控制器,包括:
读取电路,用于请求在存储在多个数据芯片中的地址的值;
奇偶校验电路,用于计算来自从所述多个数据芯片接收的原始数据的奇偶校验;
污染模式分析电路,用于将奇偶校验与编程到所述多个数据芯片中的多个污染模式进行比较,以识别具有错误的数据芯片;
纠错电路,用于纠正从识别的具有错误的数据芯片接收的原始数据中的错误。
7.如权利要求6所述的存储器控制器,其中,仅当奇偶校验电路指示在从所述多个数据芯片接收的原始数据中存在错误时,污染模式分析电路和纠错电路才被使用。
8.如权利要求6所述的存储器控制器,其中,污染模式分析电路操作为:识别编程到所述多个数据芯片中的所述多个污染模式中的最接近奇偶校验的污染模式。
9.如权利要求8所述的存储器控制器,其中,污染模式分析电路还操作为:确定编程到所述多个数据芯片中的所述多个污染模式中的识别的污染模式是否在奇偶校验的阈值内。
10.如权利要求8所述的存储器控制器,其中,污染模式分析电路操作为:识别编程到所述多个数据芯片中的所述多个污染模式中的具有最多的与奇偶校验中的位匹配的位的污染模式。
11.如权利要求6所述的存储器控制器,其中,纠错电路操作为:使用来自所述多个数据芯片中的其他数据芯片的原始数据来重建来自识别的具有错误的数据芯片的数据。
12.如权利要求11所述的存储器控制器,其中,奇偶校验电路操作为:通过计算针对来自所述多个数据芯片中的其他数据芯片的原始数据的奇偶校验,来重建来自识别的具有错误的数据芯片的数据。
13.如权利要求6所述的存储器控制器,还包括:污染模式编程电路,用于在启动期间选择用于所述多个数据芯片的多个污染模式。
14.如权利要求13所述的存储器控制器,其中,所述多个污染模式都是唯一的。
15.一种控制数据芯片的方法,包括:
在数据芯片接收针对在地址的值的请求;
在数据芯片的缓冲器中缓冲原数据,原数据包括在所述地址的值;
确定缓冲器中的原数据是否具有错误;
如果缓冲器中的原数据具有错误,则:
使用污染模式污染缓冲器中的原数据,以产生污染的数据;
将缓冲器中的污染的数据发送到存储器控制器。
16.如权利要求15所述的方法,其中,使用污染模式污染缓冲器中的原数据的步骤包括:对缓冲器中的原数据和污染模式进行异或运算。
17.如权利要求15所述的方法,还包括:如果缓冲器中的原数据具有错误,则:
确定缓冲器中的原数据中的错误是否能够纠正;
如果缓冲器中的原数据中的错误不能够纠正,则:
使用污染模式污染缓冲器中的原数据;
将缓冲器中的污染的数据发送到存储器控制器。
18.如权利要求15所述的方法,其中,使用污染模式污染缓冲器中的原数据的步骤包括:向数据芯片中的屏蔽寄存器的污染模式进行访问。
19.如权利要求18所述的方法,还包括:
从存储器控制器接收污染模式;
将接收的污染模式存储在屏蔽寄存器中。
20.如权利要求18所述的方法,其中:
所述方法还包括从存储器控制器接收污染模式标识符;
向数据芯片中的屏蔽寄存器的污染模式进行访问的步骤包括:响应于污染模式标识符,向数据芯片中的屏蔽寄存器的污染模式进行访问。
21.如权利要求15所述的方法,还包括:
在数据芯片接收存储器控制器禁用信号;
将缓冲器中的原数据发送到存储器控制器。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662418779P | 2016-11-07 | 2016-11-07 | |
US62/418,779 | 2016-11-07 | ||
US15/410,752 | 2017-01-19 | ||
US15/410,752 US10394648B2 (en) | 2016-11-07 | 2017-01-19 | Method to deliver in-DRAM ECC information through DDR bus |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108074622A true CN108074622A (zh) | 2018-05-25 |
CN108074622B CN108074622B (zh) | 2023-06-06 |
Family
ID=62063731
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710742400.3A Active CN108074622B (zh) | 2016-11-07 | 2017-08-25 | 存储器控制器、数据芯片及其控制方法 |
Country Status (5)
Country | Link |
---|---|
US (3) | US10394648B2 (zh) |
JP (1) | JP6858682B2 (zh) |
KR (1) | KR102274593B1 (zh) |
CN (1) | CN108074622B (zh) |
TW (1) | TWI733923B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117149681A (zh) * | 2023-08-31 | 2023-12-01 | 中科驭数(北京)科技有限公司 | 轮询调度实现方法、装置、设备及计算机可读存储介质 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102414866B1 (ko) * | 2017-10-31 | 2022-06-29 | 미츠비시 쥬고 기카이 시스템 가부시키가이샤 | 정보 처리 장치, 정보 처리 장치의 제어 방법 및 프로그램 |
US11037623B2 (en) * | 2019-01-22 | 2021-06-15 | SK Hynix Inc. | Semiconductor memory device |
US11663883B2 (en) * | 2020-11-20 | 2023-05-30 | Adrenalineip | Method, system and apparatus to authenticate large bets |
CN115176313A (zh) * | 2021-01-19 | 2022-10-11 | 阿里巴巴集团控股有限公司 | 内存启动和初始化系统和方法 |
JP7253594B2 (ja) * | 2021-08-27 | 2023-04-06 | ウィンボンド エレクトロニクス コーポレーション | 半導体記憶装置 |
US12019503B2 (en) | 2022-05-18 | 2024-06-25 | Samsung Electronics Co., Ltd. | Systems and methods for expandable memory error handling |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020144210A1 (en) * | 2001-03-29 | 2002-10-03 | Borkenhagen John Michael | SDRAM address error detection method and apparatus |
US20060171202A1 (en) * | 2004-08-02 | 2006-08-03 | Kazuya Kawamoto | Memory system and data writing method |
US20090217136A1 (en) * | 2008-02-21 | 2009-08-27 | Phison Electronics Corp. | Storage apparatus, controller and data accessing method thereof |
US20110246791A1 (en) * | 2010-03-31 | 2011-10-06 | Kabushiki Kaisha Toshiba | Memory chip, information storing system, and reading device |
US20120198309A1 (en) * | 2011-01-29 | 2012-08-02 | International Business Machines Corporation | Correcting memory device and memory channel failures in the presence of known memory device failures |
CN102713855A (zh) * | 2009-12-23 | 2012-10-03 | 桑迪士克科技股份有限公司 | 在存储器设备处的控制数据的错误校正的系统和方法 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5381540A (en) * | 1990-08-13 | 1995-01-10 | Dallas Semiconductor Corporation | Interface: interrupt masking with logical sum and product options |
WO1996032674A2 (en) * | 1995-04-13 | 1996-10-17 | Cirrus Logic, Inc. | Semiconductor memory device for mass storage block access applications |
US5875195A (en) | 1997-03-31 | 1999-02-23 | International Business Machines Corporation | Method and apparatus for error injection techniques |
JP4112849B2 (ja) * | 2001-11-21 | 2008-07-02 | 株式会社東芝 | 半導体記憶装置 |
JP3609794B2 (ja) * | 2002-03-26 | 2005-01-12 | 株式会社東芝 | トレースデータ圧縮装置、トレースデータ圧縮方法及びトレースデータ圧縮回路を内蔵したマイクロコンピュータ |
US7873803B2 (en) * | 2007-09-25 | 2011-01-18 | Sandisk Corporation | Nonvolatile memory with self recovery |
US7979667B2 (en) * | 2007-12-10 | 2011-07-12 | Spansion Llc | Memory array search engine |
US8255783B2 (en) | 2008-04-23 | 2012-08-28 | International Business Machines Corporation | Apparatus, system and method for providing error protection for data-masking bits |
US9037949B1 (en) | 2012-06-21 | 2015-05-19 | Rambus Inc. | Error correction in a memory device |
US9305614B2 (en) * | 2012-12-21 | 2016-04-05 | Cypress Semiconductor Corporation | Memory device with internal combination logic |
US8862953B2 (en) | 2013-01-04 | 2014-10-14 | International Business Machines Corporation | Memory testing with selective use of an error correction code decoder |
EP2775652B1 (en) * | 2013-03-07 | 2018-08-22 | Viavi Solutions Deutschland GmbH | Bit error pattern analyzer and method |
US9696923B2 (en) * | 2015-03-10 | 2017-07-04 | Samsung Electronics Co., Ltd. | Reliability-aware memory partitioning mechanisms for future memory technologies |
US10210041B2 (en) * | 2015-11-05 | 2019-02-19 | SK Hynix Inc. | Systems and methods for low latency copy operations in non-volatile memory |
US10552252B2 (en) * | 2016-08-29 | 2020-02-04 | Seagate Technology Llc | Patterned bit in error measurement apparatus and method |
-
2017
- 2017-01-19 US US15/410,752 patent/US10394648B2/en active Active
- 2017-05-10 KR KR1020170058205A patent/KR102274593B1/ko active IP Right Grant
- 2017-08-25 CN CN201710742400.3A patent/CN108074622B/zh active Active
- 2017-09-26 JP JP2017184897A patent/JP6858682B2/ja active Active
- 2017-10-16 TW TW106135225A patent/TWI733923B/zh active
-
2019
- 2019-05-13 US US16/411,122 patent/US10908993B2/en active Active
- 2019-05-13 US US16/411,127 patent/US10795764B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020144210A1 (en) * | 2001-03-29 | 2002-10-03 | Borkenhagen John Michael | SDRAM address error detection method and apparatus |
US20060171202A1 (en) * | 2004-08-02 | 2006-08-03 | Kazuya Kawamoto | Memory system and data writing method |
US20090217136A1 (en) * | 2008-02-21 | 2009-08-27 | Phison Electronics Corp. | Storage apparatus, controller and data accessing method thereof |
CN102713855A (zh) * | 2009-12-23 | 2012-10-03 | 桑迪士克科技股份有限公司 | 在存储器设备处的控制数据的错误校正的系统和方法 |
US20110246791A1 (en) * | 2010-03-31 | 2011-10-06 | Kabushiki Kaisha Toshiba | Memory chip, information storing system, and reading device |
US20120198309A1 (en) * | 2011-01-29 | 2012-08-02 | International Business Machines Corporation | Correcting memory device and memory channel failures in the presence of known memory device failures |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117149681A (zh) * | 2023-08-31 | 2023-12-01 | 中科驭数(北京)科技有限公司 | 轮询调度实现方法、装置、设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
KR20180052068A (ko) | 2018-05-17 |
KR102274593B1 (ko) | 2021-07-08 |
US20180129561A1 (en) | 2018-05-10 |
CN108074622B (zh) | 2023-06-06 |
US20190266049A1 (en) | 2019-08-29 |
JP6858682B2 (ja) | 2021-04-14 |
US10908993B2 (en) | 2021-02-02 |
TWI733923B (zh) | 2021-07-21 |
US10795764B2 (en) | 2020-10-06 |
TW201818410A (zh) | 2018-05-16 |
US20190266050A1 (en) | 2019-08-29 |
US10394648B2 (en) | 2019-08-27 |
JP2018077833A (ja) | 2018-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108074622A (zh) | 存储器控制器、数据芯片及其控制方法 | |
CN103748561B (zh) | 用以减少延迟并提高对主机的吞吐量的同步数据传输和错误控制 | |
CN109582494A (zh) | 使用内部存储器设备代码的存储器控制器错误校验过程 | |
FR2879320A1 (fr) | Carte a puce a circuit integre et procede pour detecter si des donnees en memoire dans une telle carte ont ete compromises | |
CN103810440B (zh) | 存取系统及方法 | |
KR20170035983A (ko) | 고체 상태 드라이브의 전송 버퍼 사용률을 향상시키기 위해 nand 페이지 버퍼들을 사용하는 방법 및 시스템 | |
JP5341928B2 (ja) | 時間的に分離した冗長プロセッサの実行を使用しての周辺機器への読み書き | |
CN108108263A (zh) | 一种固态硬盘的数据处理方法及装置 | |
EP0709782A2 (en) | Error detection system for mirrored memory between dual disk storage controllers | |
US5553238A (en) | Powerfail durable NVRAM testing | |
US10908876B2 (en) | Determination of a match between data values stored by several arrays | |
CN115794481A (zh) | 存储器控制器和包括其的存储器系统 | |
US8151176B2 (en) | CPU instruction RAM parity error procedure | |
KR101260313B1 (ko) | 전자장치 및 그 데이터 송수신방법과, 슬레이브 장치 및복수의 장치 간의 통신방법 | |
US9417954B2 (en) | Data storage device and method for operating the same | |
US11194477B2 (en) | Determination of a match between data values stored by three or more arrays | |
US20170109595A1 (en) | Method for reading graphical indicator, indicator structure and electronic apparatus thereof | |
US20180032397A1 (en) | Last writers of datasets in storage array errors | |
JPS6051142B2 (ja) | ロギングエラ−制御方式 | |
KR20230070158A (ko) | 디버깅을 위해 외부 장치의 데이터를 획득하는 스토리지 장치 | |
CN117635977A (zh) | 交互关系检测方法、装置、计算机设备及存储介质 | |
CN110362181A (zh) | 电子装置、具有电子装置的存储器系统及其操作方法 | |
JPH05307510A (ja) | ディスクサブシステムにおけるデータ転送チェック方式 | |
JPH02232741A (ja) | マイクロコンピュータの評価装置 | |
JPS6013390A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |