CN102483710A - 纠错 - Google Patents

纠错 Download PDF

Info

Publication number
CN102483710A
CN102483710A CN2009801611067A CN200980161106A CN102483710A CN 102483710 A CN102483710 A CN 102483710A CN 2009801611067 A CN2009801611067 A CN 2009801611067A CN 200980161106 A CN200980161106 A CN 200980161106A CN 102483710 A CN102483710 A CN 102483710A
Authority
CN
China
Prior art keywords
memory
ecc
word
data
logic
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.)
Pending
Application number
CN2009801611067A
Other languages
English (en)
Inventor
J.E.蒂勒马
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of CN102483710A publication Critical patent/CN102483710A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1048Adding 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

示例设备具有到第一存储器和第二存储器的接口。示例设备还具有用于控制该接口的控制逻辑。控制逻辑能够控制该接口以向第一存储器写入数据字并向第二存储器写入与该数据字相关联的检错和纠错(ECC)字。

Description

纠错
背景技术
使用纠错码(ECC)来保护存储器涉及处理检错字和数据以确定是否以及如何修复数据字。按照惯例,ECC字已被存储在特殊的ECC存储器模块中。
附图说明
附图举例说明本发明的各方面的各种示例实施例。将认识到图中的所示元件边界(例如,方框、方框组或其它形状)表示边界的一个示例。本领域的普通技术人员将认识到在某些示例中,可以将一个元件设计为多个元件或者可以将多个元件设计为一个元件。在某些示例中,可以将被示为另一元件的内部组件的元件实现为外部组件,并且反之亦然。
图1举例说明包括被可操作地连接到接口的控制逻辑的实施例,该接口又被可操作地连接到两个存储器。
图2举例说明包括被可操作地连接到接口的控制逻辑和获取逻辑的实施例,该接口又被可操作地连接到两个存储器。
图3举例说明包括被连接到控制逻辑和获取逻辑的ECC逻辑的实施例,控制逻辑和获取逻辑被可操作地连接到接口,所述接口又被可操作地连接到两个存储器。
图4举例说明在存储器控制器中实现的实施例。
图5举例说明与向单独存储器写入数据字和与该数据字相关联的ECC字相关联的方法的实施例。
图6举例说明与控制ECC字大小和向单独存储器写入数据字和与该数据字相关联的ECC字相关联的方法的实施例。
图7举例说明与控制ECC字大小、向单独存储器写入数据字和与该数据字相关联的ECC字以及从单独存储器检索数据字和相关ECC字相关联的方法的实施例。
图8举例说明其中与向单独存储器写入数据字及关联的检错和纠错字相关联的示例设备和方法可以进行操作的计算环境的实施例。
图9举例说明两个存储器和存储器控制器的实施例。
图10举例说明使用非ECC双列直插存储器模块(DIMM)的两个存储器和存储器控制器的实施例。
图11举例说明使用ECC DIMM的两个存储器和存储器控制器的实施例。
定义
以下包括本文所采用的所选术语的定义。该定义包括落在术语的范围内且可以用于实现的组件的各种示例和/或形式。示例并不意图是限制性的。术语的单数和复数形式可以在该定义内。
对“一个实施例”、“实施例”、“一个示例”、“示例”等的引用指示这样描述的(一个或多个)实施例或(一个或多个)示例可以包括特定的特征、结构、特性、性质、元件或限制,但是不是每个实施例或示例都一定包括该特定特征、结构、元件或限制。此外,短语“在一个实施例中”的重复使用不一定指代相同实施例。
ASIC:专用集成电路。
CD:紧致盘。
CD-R:可记录CD。
CD-RW:可重写CD。
DIMM:双列直插存储器模块。要将术语DIMM的使用解释为包括任何种类的“存储器模块”。
DVD:数字多功能盘和/或数字视频盘。
ECC:纠错码。
LAN:局域网。
NVRAM:非易失性随机存取存储器。
PCI:外围组件互连。
PCIE:快速PCI (PCI express)。
RAM:随机存取存储器。
DRAM:动态RAM。
SRAM:静态RAM。
ROM:只读存储器。
PROM:可编程ROM。
EPROM:可擦除PROM。
EEPROM:电可擦除PROM。
USB:通用串行总线。
WAN:广域网。
本文所使用的“计算机组件”指的是计算机相关实体(例如硬件、固件、执行中的指令、其组合)。计算机组件可以包括例如在处理器上运行的进程、处理器、对象、可执行程序、执行的线程和计算机。(一个或多个)计算机组件可以驻留在进程和/或线程内。可以将计算机组件定位于一个计算机上和/或可以分布在多个计算机之间。
本文所使用的“逻辑”包括但不限于执行(一个或多个)功能和/或(一个或多个)动作和/或引起来自另一逻辑、方法和/或系统的功能或动作的硬件、固件和/或每个的组合。逻辑可以包括软件控制微处理器、分立逻辑(例如,ASIC)、模拟电路、数字电路、编程逻辑器件等。逻辑可以包括一个或多个门、门的组合或其它电路组件。在描述多个逻辑性逻辑的情况下,可以可能将多个逻辑性逻辑结合成一个物理逻辑。类似地,在描述单个逻辑元件的情况下,可以可能将该单个逻辑元件分布在多个物理元件之间。
具体实施方式
示例实施例促进向不同的存储器写入数据字和关联的纠错码(ECC)字。一个实施例描述包括到第一存储器和第二存储器的接口的设备。第一存储器和第二存储器可以是标准存储器而不是特殊ECC存储器。因此,第一存储器和第二存储器可能都不为ECC提供原生支持(native support)。然而,示例实施例仍可以用确实为ECC提供原生支持的存储器进行操作。该设备还包括控制逻辑,其用于控制所述接口以向第一存储器写入数据字并向第二存储器写入与该数据字相关联的ECC字。由于两个存储器正在被写入,所以可以基本上同时地写入数据字及其相关ECC字。由于数据字及其相关ECC字驻留于不同的存储器中,所以还可以基本上同时地检索数据字及其相关ECC字。在一个实施例中,这两个存储器可以位于两个单独物理存储器中,而在另一实施例中,这两个存储器可以位于在物理上位于相同物理存储器(例如存储器模块、存储器芯片)中的两个单独逻辑存储器中。在另一实施例中,可以跨越一个或多个物理存储器将ECC存储器与数据存储器混合。虽然描述了两个存储器,但是本领域的普通技术人员将认识到可以采用更大数目的存储器。
另一实施例描述一种方法。该方法包括在硬件电路中计算与数据字相关联的ECC字。该方法还包括向第一存储器写入数据字并向第二、潜在不同的存储器写入ECC字。该方法还可以包括控制ECC字大小,控制如何计算ECC字,以及控制如何评估ECC字。该方法还可以包括检索数据字和相关ECC字。在一个示例中,可以基本上并行地写入数据字和ECC字两者。再次地,虽然描述了两个存储器,本领域的技术人员将认识到可以采用更大数目的存储器。
图1举例说明设备100。设备100包括可操作地连接到第一存储器120和第二存储器130的接口110。第一存储器120可以例如是RAM、NVRAM、DIMM或其它类型的存储器。第一存储器120不必是特殊ECC存储器。第二存储器130也可以是RAM、NVRAM、DIMM或其它形式的存储器。第二存储器130也不必是特殊ECC存储器。因此,第一存储器120和第二存储器130可能都不为ECC提供原生支持。虽然第一存储器120和第二存储器130被示为单独物理存储器,但是在一个实施例中,第一存储器120和第二存储器130可以是位于相同物理存储器中的单独逻辑存储器。
设备100还包括控制逻辑140。控制逻辑140用于控制接口110以向第一存储器120写入数据字并向第二存储器130写入与该数据字相关联的ECC字。在一个实施例中,第一存储器120是可经由第一数据总线访问的且第二存储器130是可经由第二、不同的数据总线访问的。在该实施例中,可以在单个写周期期间基本上同时地写入数据字和ECC字。
设备100促进动态地将计算系统重配置为支持ECC、不支持ECC和支持不同类型的ECC。因此,在一个实施例中,可以将第一存储器120配置为存储数据字,而可以将第二存储器130配置为存储ECC字。在另一实施例中,可以将第一存储器120配置为存储ECC字,而将第二存储器130配置为存储数据字。在另一实施例中,可以将第一存储器120配置为存储数据字和ECC字两者。类似地,在一个实施例中,可以将第二存储器130配置为存储数据字和ECC字两者,而第一存储器120存储数据字。在一个实施例中,设备100可以包括第一存储器120和第二存储器130中的任一者或两者。本领域的普通技术人员将认识到在一个实施例中,可以在两个或更多存储器中将ECC字和数据字混合。因此,虽然提供了其中邻接地存储ECC字和数据字的示例,但是本领域的技术人员将认识到可以不邻接地存储字。
在第一存储器120和第二存储器130的这些不同的可能配置下,可以将控制逻辑140配置为选择性地控制与数据字相关联的ECC字是否被写入到第二存储器130、与数据字相关联的ECC字是否被写入到第一存储器120或者ECC字甚至是否被写入到存储器。
图2举例说明包括被可操作地连接到接口210的控制逻辑240的设备200,所述接口210又被可操作地连接到第一存储器220和第二存储器230。控制逻辑240、接口210以及存储器220和230可以与结合设备100所描述的那些类似地操作。设备200还包括获取逻辑250。获取逻辑250用于控制接口210同时从第一存储器220获取数据字并从第二存储器230获取ECC字。在一个实施例中,获取逻辑250可以在单个获取时间段期间从第一存储器220读取数据字并从第二存储器230读取ECC字。在一个实施例中,当数据字和ECC字两者被写入第一存储器220中时,获取逻辑250仍可以在单个获取时间段中读取数据字和ECC字。
图3举例说明设备300。设备300包括被可操作地连接到接口310的控制逻辑340,所述接口310又被可操作地连接到第一存储器320和第二存储器330。设备300还包括获取逻辑350。控制逻辑340、接口310、获取逻辑350以及存储器320和330可以与结合设备200所描述的那些类似地操作。设备300还包括ECC逻辑360。
可以将ECC逻辑360配置为在设备300中以硬件执行ECC处理。ECC处理可以包括例如对数据字和ECC字的检错和纠错两者。ECC字生成和/或解释的不同方法可以是可用的。因此,在一个实施例中,ECC逻辑360可以是动态可控的以执行在ECC逻辑360中可用的不同ECC方法。以举例说明的方式,第一ECC方法可以是可用的,其生成能够以第一方式解释的第一类型的ECC字。第二ECC方法还可以是可用的,其生成能够以第二方式解释的第二类型的ECC字。在不同的时间,能够动态地控制ECC逻辑360以执行第一ECC方法或第二ECC方法。ECC逻辑360还可以用于控制ECC字大小。ECC字大小可以例如是单个比特、两个比特、8个比特、16个比特及其它比特大小。
图4举例说明存储器控制器400。在不同的实施例中,可以在存储器控制器400中实现设备100(图1)、设备200(图2)和设备300(图3)的元件。例如,存储器控制器400可以包括控制逻辑440、获取逻辑450和ECC逻辑460。可以通过接口410将存储器控制器400连接到第一存储器420和第二存储器430。所述接口可以例如是总线。
按照对存储器内的数据比特的操作的算法和符号表示给出了以下的详细描述的某些部分。这些算法描述和表示被本领域的技术人员用来向其他人传达其工作的实质。在这里且一般地,认为算法是产生结果的操作序列。操作可以包括物理量的物理操纵。通常但不一定,物理量采取能够在逻辑中被存储、传输、组合、比较和以其它方式操纵等的电或磁信号的形式。
已证明将这些信号称为比特、值、元素、符号、字符、项、数字等有时是方便的(主要是由于常用的原因)。然而,应记住这些和类似术语将与适当的物理量相关联且仅仅是应用于这些量的方便标签。除非具体地另外说明,要认识到遍及本说明书,包括处理、计算、确定等的术语指的是操纵和变换被表示为物理(电子)量的数据的计算机系统、逻辑、处理器或类似电子设备的动作和进程。
参考流程图可以更好地理解示例方法。要认识到方法不受方框顺序的限制,因为某些方框可以按照与所示和所描述的不同的顺序和/或与其它方框并发地发生。可以将方框组合或分离成多个组件。此外,附加和/或替换方法可以采用附加的未示出方框。
图5举例说明与向单独存储器写入数据字和与该数据字相关联的ECC字相关联的方法500的实施例。方法500包括在530处在硬件电路中计算与数据字相关联的ECC字。ECC字可以具有不同的大小且可以根据不同的协议来计算。方法500还包括在540处向第一存储器写入数据字以及在550处向第二、不同的存储器写入ECC字。本领域的技术人员将认识到在540和550处发生的动作一般将同时发生。然而,在某些实施例中,例如当ECC字在被写入到存储器之前被高速缓存和/或合并时,它们可以在不同的时间发生。
第一存储器可以例如是RAM、NVRAM、DIMM或其它类型的存储器。第一存储器不必是特殊ECC存储器。第二存储器也可以是RAM、NVRAM、DIMM或其它形式的存储器。第二存储器也不必是特殊ECC存储器。第一存储器和第二存储器可以是单独的物理存储器。第一存储器和第二存储器也可以是位于相同物理存储器中的单独逻辑存储器。
图6举例说明方法600。方法600包括类似于与方法500(图5)相关联的那些的某些动作。例如,方法600包括在630处计算ECC字、在640处向第一存储器写入数据字以及在650处向第二存储器写入ECC字。然而,方法600包括某些附加动作。
方法600包括与控制ECC字大小和控制如何计算ECC字相关联的动作。方法600包括在610处选择性地确定ECC字大小。ECC字大小可以是例如1比特(或奇偶位)、4比特、8比特、16比特、32比特等。由于能够采用非ECC存储器模块,所以ECC字的大小不受模块配置约束。可以基于例如系统设计、用户输入、编程输入、存储器条件(例如可用存储器)以及其它因素来动态地确定ECC字大小。方法600还包括在620处选择性地控制如何计算ECC字。ECC电路可以能够根据不同的协议来计算ECC字。可以基于例如用户输入来动态地确定使用哪个协议。可以将不同的协议接线至ECC电路中并由控制信号来驱动。
图7举例说明方法700。方法700包括类似于与方法600(图6)相关联的那些的某些动作。例如,方法700包括在710处确定ECC字大小、在720处控制将如何计算ECC字、在730处基于720处的确定来计算ECC字、在740处向第一存储器写入数据字并在750处向第二存储器写入ECC字。然而,方法700包括某些附加动作。
方法700还包括在760处在一个获取时段中从第一存储器和第二存储器检索已检索数据字和已检索ECC字两者。在一个示例中,第一存储器和第二存储器可以是经由不同数据总线可用的,在这种情况下,该一个获取时段可以包括通过不同的总线向单独存储器发送单独的读控制信号。在另一示例中,第一存储器和第二存储器可以是经由相同数据总线可用的。方法700还包括在770处选择性地控制ECC电路如何用于按照已检索ECC字来执行对已检索数据字的纠错和检错。ECC电路可以包括根据不同的算法或协议来评估ECC字的电路。可以根据例如用户输入、编程输入、控制信号、中断及其它标准来动态地选择使用哪个协议。本领域的技术人员将认识到通常协议将与在写入数据时所使用的ECC功能匹配。
方法700还可以包括选择性地确定是否甚至存储或读取ECC字。这促进增加系统相比于使用特殊ECC存储器的常规系统的灵活性。以举例说明的方式,可以用一种方法在第一时间将计算机配置为使用第一存储器来存储数据字并使用第二存储器来存储ECC字。然而,在另一时间点,计算机可能对使用ECC不感兴趣。因此,在此另一时间点,可以使用一种方法来控制计算机不存储ECC字,而是使用第二存储器来存储数据字。
虽然图5至7举例说明串行地发生的各种动作,但是要认识到示例方法中所示的某些动作可以基本上并行地发生。以举例说明的方式,一般地将同时地写入数据字和ECC字。作为另一举例说明,第一进程可以写入数据字和相关ECC字,第二进程可以读取数据字和相关ECC字,并且第三进程可以控制ECC产生和解释。虽然描述了三个进程,但是要认识到可以采用更大和/或更少数目的进程。
图8举例说明其中与向不同存储器写入数据字及关联的检错和纠错字相关联的设备和方法可以进行操作的计算环境。示例计算环境可以是计算机800,其包括通过存储器控制器840及ECC和数据逻辑830被总线808可操作地连接的存储器804和处理器802。ECC和数据逻辑830用于促进向不同的存储器写入数据字和相关ECC字、从不同的存储器读取数据字和相关ECC字、控制ECC字大小、控制ECC字计算以及控制ECC字解释。在不同的示例中,可以以硬件、固件和/或其组合来实现逻辑830。虽然逻辑830被示为附着于总线808的硬件组件,但是要认识到在一个示例中可以在处理器802中实现逻辑830。
逻辑830可以提供用于访问在一个获取循环中可作为两个单独存储器访问的第一存储器和第二存储器的装置(例如硬件、固件)。所述存储器可以是常规存储器且不必是特殊ECC存储器。可以将所述装置例如实现为ASIC。逻辑830还可以提供用于选择性地在第一存储器中写入和读取数据字的装置(例如硬件、固件)。逻辑830还可以提供用于选择性地在第二存储器中写入和读取ECC字的装置(例如硬件、固件),其中第二存储器中的ECC字与第一存储器中的数据字相关。
一般地描述计算机800的示例配置,处理器802可以是多种不同的处理器,包括双微处理器及其它多处理器架构。存储器804可以包括易失性存储器和/或非易失性存储器。
总线808可以是单内部总线互连架构和/或其它总线或网格架构。虽然示出了单个总线,但是要认识到计算机800可以使用其它总线(例如,PCIE、1394、USB、以太网)与各种设备、逻辑和外围设备通信。总线808可以是包括例如存储器总线、存储器控制器、外围总线、外部总线、纵横开关和/或本地总线的类型。
图9举例说明连接到逻辑910的存储器控制器900。逻辑910包括地址解码逻辑912和执行ECC生成、检查和纠正的ECC逻辑914。存储器控制器900向逻辑910提供地址和数据。逻辑910被连接到数据储存器920和ECC字储存器930。数据储存器920可以包括例如DIMM0 922和DIMM1 924。DIMM不需要支持ECC。ECC字储存器930可以包括DIMM2 932和DIMM3 934。DIMM再次地不需要支持ECC。虽然在数据储存器920和ECC字储存器930中的每一个中举例说明了两个DIMM,但是本领域的技术人员将认识到可以使用不同数目和类型的DIMM。本领域的技术人员将认识到可以向数据储存器920及ECC字储存器930提供不同的地址和ECC信息。图9所示的组件的布置促进向不同的存储器写入数据字和关联的ECC字,其中该促进在存储器控制器900之外发生。
图10举例说明具有执行ECC地址生成的逻辑1012的存储器控制器1000。存储器控制器1000还包括执行ECC生成、ECC高速缓存(以使ECC字的写入/合并最优化)、检查以及纠正的逻辑1014。存储器控制器1000被连接到数据储存器1020和ECC字储存器1030。数据储存器1020可以包括例如DIMM0 1022和DIMM1 1024。DIMM可以或可以不支持ECC。ECC字储存器1030可以包括DIMM2 1032和DIMM3 1034。再次地,DIMM不需要但可能支持ECC。本领域的技术人员将认识到可以向数据储存器1020及ECC字储存器1030提供不同的地址信息和ECC信息。图10所示的组件的布置促进向不同的存储器写入数据字和关联的ECC字,其中该促进在存储器控制器1000内部发生。
图11举例说明支持ECC DIMM的使用的组件的布置。在此布置中,可以使用来自数据储存器1120的比特来存储附加ECC比特而不是存储数据。在一个示例中,额外比特可以促进扩展向ECC DIMM给予的保护。扩展的保护可以支持例如单芯片容错(chip-spare)、双芯片容错等。“芯片容错”是用来描述ECC算法容忍单存储器设备故障而仍提供正确数据的能力的术语。能够容错的芯片的数目将随着设备大小(例如每ECC字提供多少比特的数据)和ECC算法的强度(例如ECC的比特数、精确算法等)而改变。例如,对于由提供4比特的数据的×4 DRAM设备组成的DIMM而言,单芯片容错ECC算法将需要允许每次访问该设备有4个比特发生故障。但是如果提供8比特的数据的×8 DRAM设备发生故障,则单芯片容错ECC算法将需要容忍每次访问8个比特发生故障。结果,随着存储器设备宽度的增加,需要更多的ECC比特来容忍故障。
存储器控制器1100包括地址解码逻辑1112和能够执行ECC生成、检查和纠正的ECC逻辑1114。存储器控制器1100被连接到包括DIMM0 1122和DIMM1 1124的数据储存器1120。存储器控制器1100还被连接到包括DIMM2 1132和DIMM3 1134的ECC字储存器1130。本领域的技术人员将认识到可以向数据储存器1120及ECC字储存器1130提供不同的地址信息和ECC信息。
与图11相关联的另一替换方案涉及数据被存储在数据储存器1120和ECC字储存器1130两者中,其中ECC以及数据被存储在ECC字储存器1130中(或者反之亦然)。另外,本领域的普通技术人员将认识到可以在1120和1130之间将ECC和数据混合。这允许系统设计者有与单个DIMM相比将额外数据存储在存储器中并仍获得比之前更好的ECC保护的能力。一个示例DDR[123] ECC DIMM具有64比特的数据+ 8比特的ECC(或者总共72比特)。两个DIMM提供144比特的数据+ ECC。一个示例实施方式是每个DIMM存储8比特的ECC,或者128比特的数据和16比特的ECC。使用本文所描述的示例系统和方法对于需要更多保护的应用而言促进存储24比特的ECC和120比特的数据。相反,可以减少ECC保护的量以存储更多的数据。使用相同示例,可以存储8比特的ECC和136比特的数据。
如上所示,本文所描述的系统和方法为系统设计员或最终用户提供他们愿意如何权衡纠错强度、数据和成本方面的灵活性。使用图11作为示例,可以跨越数据储存器1120以及ECC字储存器1130的一部分存储数据。例如,采取DDR[123] ECC DIMM,数据储存器1120可以存储72比特的数据,并且ECC字储存器1130可以存储40比特的数据,其中32比特的ECC被连同数据一起存储在1130中。
就在详细描述或权利要求中采用术语“含有”或“包含”而言,意图是以与术语“包括”如该术语当被用作权利要求中的过渡词语时所解释的那样类似的方式是包括性的。
就在详细描述或权利要求中采用术语“或”(例如A或B)而言,意图是意指“A或B或两者”。当本申请人意图意指“仅A或B而不是两者”时,则将采用术语“仅A或B而不是两者”。因此,本文中的术语“或”的使用是包括性的,而不是排他性的使用。参见Bryan A. Garner的A Dictionary of Modern Legal Usage 624(1995年第二版)。
就在本文中采用短语“A、B和C中的一个或多个”而言(例如,被配置为存储A、B和C中的一个或多个的数据仓库),意图传达可能性A、B、C、AB、AC、BC和/或ABC的集合(例如,数据仓库可以存储仅A、仅B、仅C、A和B、A和C、B和C和/或A和B和C)。并不意图要求A中的一个、B中的一个和C中的一个。当本申请人意图指示“A中的至少一个、B中的至少一个和C中的至少一个”时,则将采用短语“A中的至少一个、B中的至少一个和C中的至少一个”。

Claims (15)

1.一种设备,包括:
到第一存储器和第二存储器的接口;以及
控制逻辑,该控制逻辑用于控制所述接口以向所述第一存储器写入数据字并向所述第二存储器写入与该数据字相关联的检错和纠错(ECC)字。
2.根据权利要求1所述的设备,包括:
获取逻辑,该获取逻辑用于控制所述接口以在单个获取时间段期间同时从第一存储器获取数据字并从第二存储器获取ECC字。
3.根据权利要求1或2中的任一项所述的设备,包括:
ECC逻辑,其被配置为根据在ECC逻辑中可用的多种ECC方法之一而在所述设备中以硬件执行对数据字和ECC字的检错和纠错,ECC方法是动态可选的。
4.根据权利要求1、2或3中的任一项所述的设备,第一存储器是经由第一数据总线可访问的且第二存储器是经由第二、不同的数据总线可访问的。
5.权利要求3的设备,其中所述ECC逻辑用于控制ECC字大小。
6.根据权利要求1、2、3、4或5中的任一项所述的设备,所述控制逻辑被配置为选择性地控制与数据字相关联的ECC字是否被写入到第二存储器。
7.根据权利要求1、2、3、4、5或6中的任一项所述的设备,包括所述第一存储器和所述第二存储器,所述第一存储器是RAM、NVRAM、DIMM和存储器结构中的一个,所述第二存储器是RAM、NVRAM、DIMM和存储器结构中的一个,以及
其中所述第一存储器和第二存储器中的至少一个不提供原生ECC支持。
8.根据权利要求1、2、3、4、5、6或7中的任一项所述的设备,所述控制逻辑被配置为通过用来自第二DIMM的附加比特来选择性地扩展由第一ECC DIMM提供的ECC比特而支持单芯片容错和双芯片容错中的一个或多个。
9.根据权利要求1、2、3、4、5、6、7或8中的任一项所述的设备,在存储器控制器中实现所述设备。
10.根据权利要求1、2、3、4、5、6、7、8或9中的任一项所述的设备,所述第一存储器被配置为存储仅数据字以及数据字和ECC字两者中的一个,第二存储器被配置为存储仅ECC字以及ECC字和数据字两者中的一个。
11.一种方法,包括:
在硬件电路中计算与数据字相关联的检错和纠错(ECC)字;
向第一存储器写入所述数据字;以及
向第二、不同存储器写入所述ECC字。
12.权利要求11的方法,包括:
选择性地确定ECC字的大小;以及
选择性地控制所述电路如何用于计算ECC字。
13.根据权利要求11或12中的任一项所述的方法,包括:
在一个获取时段中从第一存储器和第二存储器检索已检索数据字和已检索ECC字两者;以及
选择性地控制所述电路如何用于基于已检索ECC字来执行对已检索数据字的检错和纠错。
14.根据权利要求11、12或13中的任一项所述的方法,包括:
选择性地确定是否使用第二存储器来存储数据字。
15.一种系统,包括:
用于访问可在一个获取周期中作为两个单独存储器来访问的第一存储器和第二存储器的装置;
用于在第一存储器中选择性地写入和读取数据字的装置;以及
用于在第二存储器中选择性地写入和读取ECC字的装置,其中第二存储器中的ECC字与第一存储器中的数据字相关。
CN2009801611067A 2009-08-25 2009-08-25 纠错 Pending CN102483710A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2009/054843 WO2011025474A1 (en) 2009-08-25 2009-08-25 Error correcting

Publications (1)

Publication Number Publication Date
CN102483710A true CN102483710A (zh) 2012-05-30

Family

ID=43628272

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009801611067A Pending CN102483710A (zh) 2009-08-25 2009-08-25 纠错

Country Status (4)

Country Link
US (1) US20120151300A1 (zh)
KR (1) KR20120052251A (zh)
CN (1) CN102483710A (zh)
WO (1) WO2011025474A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105308574A (zh) * 2013-06-28 2016-02-03 惠普发展公司,有限责任合伙企业 永久主存储器的容错
CN105706069A (zh) * 2013-09-04 2016-06-22 英特尔公司 用于未匹配信号接收器的周期训练

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012170154A1 (en) 2011-06-06 2012-12-13 Rambus Inc. Memory system for error detection and correction coverage
KR20130012737A (ko) * 2011-07-26 2013-02-05 에스케이하이닉스 주식회사 반도체 메모리 장치 및 이를 포함하는 반도체 시스템
JP2013109567A (ja) * 2011-11-21 2013-06-06 Toshiba Corp ストレージデバイス及び誤り訂正方法
US9191060B2 (en) * 2012-04-16 2015-11-17 The Hong Kong University Of Science And Technology Distributive source coding and signal processing
US8812915B2 (en) 2012-09-27 2014-08-19 Hewlett-Packard Development Company, L.P. Determining whether a right to use memory modules in a reliability mode has been acquired
CN105283923A (zh) 2013-07-31 2016-01-27 惠普发展公司,有限责任合伙企业 存储器模块外的ecc辅助存储器系统
JP6318769B2 (ja) * 2014-03-28 2018-05-09 富士通株式会社 ストレージ制御装置、制御プログラム、および制御方法
KR102204391B1 (ko) 2014-08-18 2021-01-18 삼성전자주식회사 공유 가능한 ecc 셀 어레이를 갖는 메모리 장치

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6216247B1 (en) * 1998-05-29 2001-04-10 Intel Corporation 32-bit mode for a 64-bit ECC capable memory subsystem
US20030067472A1 (en) * 2001-10-09 2003-04-10 William Radke Embedded memory system and method including data error correction
US7117421B1 (en) * 2002-05-31 2006-10-03 Nvidia Corporation Transparent error correction code memory system and method
CN101060006A (zh) * 2006-02-27 2007-10-24 英特尔公司 用于使用相同存储器类型来支持检错模式和非检错模式的系统、方法和设备
CN101373449A (zh) * 2007-08-21 2009-02-25 三星电子株式会社 Ecc控制电路、多通道存储器系统以及相关操作方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5172379A (en) * 1989-02-24 1992-12-15 Data General Corporation High performance memory system
US5987627A (en) * 1992-05-13 1999-11-16 Rawlings, Iii; Joseph H. Methods and apparatus for high-speed mass storage access in a computer system
US5452429A (en) * 1993-11-17 1995-09-19 International Business Machines Corporation Error correction code on add-on cards for writing portions of data words
US6014720A (en) * 1997-05-05 2000-01-11 Intel Corporation Dynamically sizing a bus transaction for dual bus size interoperability based on bus transaction signals
US6587977B1 (en) * 1999-12-06 2003-07-01 Maxtor Corporation o,k,m,/m recording code
US6961819B2 (en) * 2002-04-26 2005-11-01 Mips Technologies, Inc. Method and apparatus for redirection of operations between interfaces
US7386765B2 (en) * 2003-09-29 2008-06-10 Intel Corporation Memory device having error checking and correction
US7224595B2 (en) * 2004-07-30 2007-05-29 International Business Machines Corporation 276-Pin buffered memory module with enhanced fault tolerance
US6965537B1 (en) * 2004-08-31 2005-11-15 Micron Technology, Inc. Memory system and method using ECC to achieve low power refresh
KR100695890B1 (ko) * 2004-10-29 2007-03-19 삼성전자주식회사 멀티 칩 시스템 및 그것의 데이터 전송 방법
US7810017B2 (en) * 2006-03-20 2010-10-05 Micron Technology, Inc. Variable sector-count ECC
KR101211503B1 (ko) * 2007-10-02 2012-12-12 삼성전자주식회사 부팅 시스템, 그 시스템을 구비한 화상형성장치 및 그제어방법
US8046542B2 (en) * 2007-11-21 2011-10-25 Micron Technology, Inc. Fault-tolerant non-volatile integrated circuit memory
US8140936B2 (en) * 2008-01-24 2012-03-20 International Business Machines Corporation System for a combined error correction code and cyclic redundancy check code for a memory channel

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6216247B1 (en) * 1998-05-29 2001-04-10 Intel Corporation 32-bit mode for a 64-bit ECC capable memory subsystem
US20030067472A1 (en) * 2001-10-09 2003-04-10 William Radke Embedded memory system and method including data error correction
US7117421B1 (en) * 2002-05-31 2006-10-03 Nvidia Corporation Transparent error correction code memory system and method
CN101060006A (zh) * 2006-02-27 2007-10-24 英特尔公司 用于使用相同存储器类型来支持检错模式和非检错模式的系统、方法和设备
CN101373449A (zh) * 2007-08-21 2009-02-25 三星电子株式会社 Ecc控制电路、多通道存储器系统以及相关操作方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105308574A (zh) * 2013-06-28 2016-02-03 惠普发展公司,有限责任合伙企业 永久主存储器的容错
US10452498B2 (en) 2013-06-28 2019-10-22 Hewlett Packard Enterprise Development Lp Fault tolerance for persistent main memory
CN105706069A (zh) * 2013-09-04 2016-06-22 英特尔公司 用于未匹配信号接收器的周期训练
CN105706069B (zh) * 2013-09-04 2019-10-15 英特尔公司 用于未匹配信号接收器的周期训练

Also Published As

Publication number Publication date
KR20120052251A (ko) 2012-05-23
US20120151300A1 (en) 2012-06-14
WO2011025474A1 (en) 2011-03-03

Similar Documents

Publication Publication Date Title
CN102483710A (zh) 纠错
US9223648B2 (en) Memory storage device, memory controller thereof, and method for processing data thereof
US20180217751A1 (en) System and method for dynamic folding or direct write based on block health in a non-volatile memory system
US9361036B2 (en) Correction of block errors for a system having non-volatile memory
CN101359513A (zh) 地址译码器故障的检测
CN103119569A (zh) 基于存储条的非易失性多级存储器操作
US9437327B2 (en) Combined rank and linear address incrementing utility for computer memory test operations
US11556414B2 (en) Memory device
JP4460967B2 (ja) メモリカード、不揮発性半導体メモリ、及び半導体メモリの制御方法
US20160117221A1 (en) Error detection and correction utilizing locally stored parity information
KR100757128B1 (ko) 플래시 메모리를 이용한 메모리 카드 및 그 제어 방법
US20140372833A1 (en) Data protecting method, memory controller and memory storage device
TWI632459B (zh) 記憶體位址保護電路與方法
US9009548B2 (en) Memory testing of three dimensional (3D) stacked memory
CN105988936B (zh) 非挥发性储存装置与控制器
TWI527049B (zh) 操作記憶體之方法及記憶體裝置
CN102890645A (zh) 存储器储存装置、存储器控制器与数据写入方法
CN102324251B (zh) 用以指示存储器中的编程失败的信号线
US9230692B2 (en) Apparatuses and methods for mapping memory addresses to redundant memory
CN109493911B (zh) 存储器控制器的操作方法、以及存储器件及其操作方法
CN104810061B (zh) 存储器及其操作方法
CN109119126A (zh) 半导体器件和错误管理方法
JP5964265B2 (ja) 半導体集積回路装置
JP5982148B2 (ja) 半導体記憶装置
CN107015913B (zh) 记忆体装置以及映射表保证方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20120530