CN105684086A - 存储器模块上的存储器备用 - Google Patents

存储器模块上的存储器备用 Download PDF

Info

Publication number
CN105684086A
CN105684086A CN201380079788.3A CN201380079788A CN105684086A CN 105684086 A CN105684086 A CN 105684086A CN 201380079788 A CN201380079788 A CN 201380079788A CN 105684086 A CN105684086 A CN 105684086A
Authority
CN
China
Prior art keywords
data
memory
nibble
default
shelf storage
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
CN201380079788.3A
Other languages
English (en)
Inventor
M.K.贝内迪特
E.L.波佩
A.C.沃尔顿
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
Hewlett Packard Enterprise Development LP
Original Assignee
Hewlett Packard Enterprise Development 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 Enterprise Development LP filed Critical Hewlett Packard Enterprise Development LP
Publication of CN105684086A publication Critical patent/CN105684086A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • G11C7/1012Data reordering during input/output, e.g. crossbars, layers of multiplexers, shifting or rotating
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2038Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with a single idle spare processing component
    • 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/1012Adding 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
    • G06F11/1016Error in accessing a memory location, i.e. addressing error
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2058Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring using more than 2 mirrored copies
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2069Management of state, configuration or failover
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/78Masking faults in memories by using spares or by reconfiguring using programmable devices
    • G11C29/84Masking faults in memories by using spares or by reconfiguring using programmable devices with improved access time or stability
    • G11C29/846Masking faults in memories by using spares or by reconfiguring using programmable devices with improved access time or stability by choosing redundant lines at an output stage
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1015Read-write modes for single port memories, i.e. having either a random port or a serial port
    • G11C7/103Read-write modes for single port memories, i.e. having either a random port or a serial port using serially addressed read-write data registers
    • G11C7/1033Read-write modes for single port memories, i.e. having either a random port or a serial port using serially addressed read-write data registers using data registers of which only one stage is addressed for sequentially outputting data from a predetermined number of stages, e.g. nibble read-write mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

示例实施方式涉及使用存储器模块上的备用存储器。在示例实施方式中,存储器模块可以具有多个存储器,包括缺省存储器和备用存储器。存储器模块上的多个数据缓冲器可以从多个存储器选择数据半字节,使得在缺省存储器被标识为缺陷时,从备用存储器而不从缺陷缺省存储器选择数据半字节。在缺省存储器起作用时,从缺省存储器选择的数据半字节可以在存储器模块的输出中的第一位置。从备用存储器选择的数据半字节可以在存储器模块的输出中的第二位置。

Description

存储器模块上的存储器备用
背景技术
数以千计的存储器管芯可以驻留在服务器中的存储器模块上。错误校正逻辑可以用于校正存储器管芯中检测到的错误。存储器模块可以包括额外的存储器管芯,使得在存储器模块上的存储器管芯失效时,额外的存储器管芯可以使用而不必更换整个存储器模块。
附图说明
以下详细描述参照附图,其中:
图1为使得能够选择数据半字节的各种组合的示例数据缓冲器的方框图;
图2为示例数据缓冲器的方框图,该数据缓冲器包括用于在该数据缓冲器中存储数据选择器的输出的寄存器;
图3为示例存储器模块的方框图,该示例存储器模块包括用于选择在该存储器模块上的存储器中存储的数据半字节的各种组合的数据缓冲器;
图4为用于使得能够使用存储器模块上的备用存储器的示例***控制器的方框图;
图5为包括多个备用存储器的示例存储器模块的方框图;
图6为包括以使得能够使用存储器模块上的备用存储器的指令编码的机器可读存储介质的示例装置的方框图;
图7为包括以用于拷贝和校正存储在存储器模块上的数据的指令编码的机器可读存储介质的示例装置的方框图;
图8为包括以用于通知存储器控制器使用存储器模块上的备用存储器并且用于校正备用存储器中的错误数据的指令编码的机器可读存储介质的示例装置的方框图;
图9为用于使用存储器模块上的备用存储器的示例方法的流程图;以及
图10为用于校正存储在存储器模块上的错误数据的示例方法的流程图。
具体实施方式
随着存储器模块上的存储器管芯密度增加,将数据路由至存储器模块上的额外存储器以及从存储器模块上的额外存储器路由数据的难度可能增加。本公开提供了在存储器模块上的数据缓冲器,其具有可以从各种存储器(包括备用存储器)选择数据的数据选择器。取决于失效存储器的位置,数据选择器可以以各种方式配置。数据选择器的可配置性可以简化使用额外存储器的路由挑战、减少需要更换整个存储器模块的速率。
现参照附图,图1为使得能够选择数据半字节的各种组合的示例数据缓冲器100的方框图。数据缓冲器100可以从存储器模块上的存储器选择数据半字节。存储器可以包括易失性存储器,诸如动态随机存取存储器(DRAM)和/或非易失性存储器,诸如闪速存储器。
在图1中,数据缓冲器100包括数据选择器102以及数据选择器104。在一些实施方式中,数据选择器102和104可以包括多路复用器(例如,2合1多路复用器)。数据选择器102可以在存储于第一存储器的数据半字节(例如,数据半字节1)与存储于第二存储器的数据半字节(例如,数据半字节2)之间选择。如在此使用的术语“数据半字节”指的是多于一比特但小于一字节的数据单位。例如,数据半字节可以是四比特。数据选择器104可以在存储于第三存储器的数据半字节(例如,数据半字节3)与存储于第二存储器的数据半字节(例如,数据半字节2)之间选择。第一、第二和第三存储器可以在存储器模块上的集成电路(IC)上。数据选择器102可以可通信地耦接于第一和第二存储器,并且数据选择器104可以可通信地耦接于第二和第三存储器。
数据选择器102和104的选择可以基于存储器模块上的第一和第二存储器是否起作用来确定。如在此使用的术语“起作用”指的是精确地存储写入存储器的数据并且在对存储器执行读取操作时精确地输出所存储的数据的存储器。在第一存储器和第二存储器起作用时,数据选择器102可以选择存储于第一存储器的数据半字节(例如,数据半字节1),并且数据选择器104可以选择存储于第二存储器的数据半字节(例如,数据半字节2)。在第一存储器未起作用时,数据选择器102可以选择存储于第二存储器的数据半字节(例如,数据半字节2),并且数据选择器104可以选择存储于第三存储器的数据半字节(例如,数据半字节3)。在第二存储器未起作用时,数据选择器102可以选择存储于第一存储器的数据半字节(例如,数据半字节1),并且数据选择器104可以选择存储于第三存储器的数据半字节(例如,数据半字节3)。数据选择器102和104可以从存储器模块上的***控制器接收选择控制信号。
数据缓冲器100的输出可以包括由数据选择器102和104选择的数据半字节。在一些实施方式中,数据缓冲器100可以提供8比特(即,1字节)输出。该输出的首四比特可以是由数据选择器102选择的数据半字节(例如,选择的数据半字节1),并且该输出的后四比特可以是由数据选择器104选择的数据半字节(例如,选择的数据半字节2)。
图2为示例数据缓冲器200的方框图,该数据缓冲器200包括用于在该数据缓冲器中存储数据选择器的输出的寄存器。数据缓冲器200可以包括数据选择器202和204,其可以分别类似于(例如,具有类似的功能和/或组件)图1的数据选择器102和104。数据缓冲器200还可以包括寄存器206和208。寄存器206可以存储数据选择器202的输出。数据选择器202的输出可以包括由数据选择器202选择的数据半字节(例如,数据半字节1或2)。寄存器208可以存储数据选择器204的输出。数据选择器204的输出可以包括由数据选择器204选择的数据半字节(例如,数据半字节2或3)。
寄存器206和208可以输出它们各自存储的数据半字节,并且数据缓冲器200的输出可以包括由寄存器206和208输出的数据半字节。例如,寄存器206可以输出选择的数据半字节1,并且寄存器208可以输出选择的数据半字节2。每个选择的数据半字节可以为四比特长。数据缓冲器200可以提供8比特(即,1字节)输出;该输出的首四比特可以为选择的数据半字节1,并且该输出的后四比特可以为选择的数据半字节2。
图3为示例存储器模块300的方框图,该示例存储器模块300包括用于选择在该存储器模块上的存储器中存储的数据半字节的各种组合的数据缓冲器。存储器模块300可以为内联存储器模块,诸如单内联存储器模块(SIMM)或双内联存储器模块(DIMM),或者任意适于安装存储器集成电路(IC)的存储器模块。在图3中,存储器模块300包括缺省存储器302、304、306和308、备用存储器310、数据缓冲器320和322,以及***控制器330。
存储器302、304、306、308和310可以包括易失性(例如DRAM)或非易失性(例如,闪速存储器、只读存储器)存储器,并且可以在存储器模块300上的IC上。存储器302、304、306和308可以为存储器模块300上的缺省存储器。如在此使用的术语“缺省存储器”指的是其上规律地执行读取和写入操作的存储器。存储器310可以为存储器模块300上的备用存储器。如在此使用的术语“备用存储器”指的是用于在缺省存储器未精确地存储或输出数据时更换缺省存储器的存储器。术语“缺陷”可以在本公开中用于描述未精确地存储写入存储器的数据和/或在对存储器执行读取操作时未精确地输出所存储的数据的存储器或存储器的一部分。在一些实施方式中,存储器302、304、306、308和310可以为具有纠错码(ECC)功能性的易失性存储器。
存储器模块300上的数据缓冲器320和322可以类似于数据缓冲器100或数据缓冲器200。数据缓冲器可以对存储器模块300上的存储器执行读取和写入操作。数据缓冲器320可以可通信地耦接于缺省存储器302、304和306。数据缓冲器322可以可通信地耦接于缺省存储器306和308,以及备用存储器310。存储器模块300上的每个数据缓冲器可以选择两个数据半字节(即,数据缓冲器可以从该数据缓冲器所耦接到的三个存储器中的两个存储器选择数据半字节)。数据选通信号可以与每个数据半字节相关联,并且每个数据选通信号可以与存储器模块300上的针脚相关联。应理解,存储器模块300可以具有比图3中所示的更多或更少的存储器(例如,存储器模块300可以具有多于一个备用存储器)和/或数据缓冲器,并且在此有关图3中示出的存储器和/或数据缓冲器的论述可以可应用于附加的存储器和/或数据缓冲器。
在存储器模块300上的全部缺省存储器起作用时,数据缓冲器320可以选择存储于缺省存储器302的数据半字节以及存储于缺省存储器304的数据半字节,并且数据缓冲器322可以选择存储于缺省存储器306的数据半字节以及存储于缺省存储器308的数据半字节。在缺省存储器或缺省存储器的一部分确定为缺陷时,数据缓冲器320和322可以从起作用的缺省存储器和从备用存储器310选择数据半字节,并且可以不从缺陷的或者具有缺陷部分的缺省存储器选择数据半字节。例如,如果缺省存储器302为缺陷,则数据缓冲器320可以从缺省存储器304选择数据半字节以及从缺省存储器306选择数据半字节,并且数据缓冲器322可以从缺省存储器308选择数据半字节以及从备用存储器310选择数据半字节。
数据缓冲器320可以提供8比特输出,例如字节0。类似地,数据缓冲器322可以提供8比特输出,例如字节1。存储器模块300的输出可以包括数据缓冲器的按照指定顺序的输出。例如,存储器模块300可以具有16比特输出;该输出的首八比特可以为由数据缓冲器320输出的两个数据半字节(例如,字节0),并且该输出的后八比特可以为由数据缓冲器322输出的两个数据半字节(例如,字节1)。由数据缓冲器输出的每个比特可以与存储器模块300上的针脚相关联。数据缓冲器的输出可以包括由数据缓冲器从存储器模块300上的存储器选择的数据半字节。存储器模块300的输出可以为由字节0和字节1组成的缓存线,每个字节由各自数据缓冲器选择的数据半字节组成。
在存储器模块300上的全部缺省存储器起作用时,从缺省存储器302选择的数据半字节可以为字节0的首四比特,从缺省存储器304选择的数据半字节可以为字节0的后四比特,从缺省存储器306选择的数据半字节可以为字节1的首四比特,并且从缺省存储器308选择的数据半字节可以为字节1的后四比特。在存储器模块300上的缺省存储器为缺陷时,数据半字节可以从备用存储器310选择,并且数据半字节可以不从缺陷缺省存储器选择。从备用存储器310选择的数据半字节可以为字节1的后四比特(例如,存储器模块300的输出的后四比特),并且从起作用的缺省存储器选择的数据半字节可以在存储器模块300的输出中相对于在全部数据半字节从缺省存储器选择时(即,在全部缺省存储器起作用时)产生的存储器模块300的输出移位。
例如,在图3中示出的全部缺省存储器起作用时,从缺省存储器306和308选择的数据半字节可以分别为字节1的首四比特和字节1的后四比特,但是在缺省存储器304为缺陷时,从缺省存储器306和308选择的数据半字节可以分别为字节0的第二个四比特以及字节1的首四比特,因为数据半字节可以不从缺省存储器304选择(在两种情况下,从缺省存储器302选择的数据半字节可以为字节0的首四比特)。如由该示例说明的,在存储器模块中的缺省存储器为缺陷时,从缺陷缺省存储器与备用存储器之间的缺省存储器选择的数据比特可以在存储器模块的输出中相对于在全部缺省存储器起作用时存储器模块的输出移位四比特。在两种情况下,从缺陷缺省存储器的另一侧的缺省存储器选择的数据半字节可以出现在存储器模块的输出中的相同位置。
在一些实施方式中,缺省存储器的第一部分可以是缺陷的,并且同一缺省存储器的第二部分可以起作用。在这样的实施方式中,在要从缺省存储器读取的数据半字节的地址指的是缺陷部分中的位置时,数据缓冲器320和322可以读取和选择存储于备用存储器(例如备用存储器310)的数据半字节,并且可以不从缺省存储器选择数据半字节。在要从缺省存储器读取的数据半字节的地址指的是起作用的部分中的位置时,数据缓冲器320和322可以读取和选择存储于缺省存储器的数据半字节,并且可以不从备用存储器选择数据半字节。
存储器模块300上的机器可读指令(例如软件)可以确定应当从哪些存储器选择数据半字节,并且可以相应地指定选择控制信号。可以通知存储器模块300上的***控制器330选择控制信号。例如,机器可读指令可以将选择控制信号写入***控制器330内的内部寄存器中。***控制器330可以将选择控制信号传输到数据缓冲器320和322。选择控制信号可以用于配置数据缓冲器中的数据选择器。
***控制器330可以经由数据总线可通信地偶接到数据缓冲器320和322,所述数据总线可以携带选择控制信号以及用于定向定时和/或片内终结器(ODT)的控制信号。***控制器330可以控制存储器模块300上的数据的路由。在一些实施方式中,***控制器330可以缓冲来自在存储器模块300外部的存储器控制器的控制信号。该外部存储器控制器可以接收由存储器模块300上的数据缓冲器输出的数据(例如,字节0、字节1)。
从存储器模块300接收数据输出的存储器控制器可以检测输出中的错误和/或检测存储器模块300上的缺省存储器中的缺陷。存储器控制器可以确定错误的严重性以及是否应当继续使用缺陷缺省存储器。存储器控制器可以确定存储器控制器输出的哪个字节或数据半字节具有错误,并且标识从其读取了错误数据的存储器。存储器控制器和/或存储器模块300上的机器可读指令(例如,软件和/或固件)可以确定展现出错误的存储器地址的范围。
在一些实施方式中,可以不向可通信地偶接到存储器模块300的外部存储器控制器通知存储器模块300上的备用存储器的存在。当在存储器模块输出中检测到错误时,存储器控制器上的机器可读指令(例如,软件)可以校正该错误(例如,使用ECC逻辑)并且将校正后的数据的拷贝存储在临时位置(例如,缓冲器、虚拟存储器)中。机器可读指令也可以确定用于存储器模块300上的数据缓冲器的选择控制信号,使得数据半字节不从缺陷缺省存储器选择并且数据半字节从备用存储器选择。根据选择控制信号,校正后的数据可以随后从临时位置拷贝至数据半字节将从其选择的存储器。这样的拷贝可能导致缺陷缺省存储器与备用存储器之间的缺省存储器存储与在全部缺省存储器起作用时存储的数据不同的数据。
例如,如果存储器模块300中的缺省存储器306为缺陷,选择控制信号可以配置数据缓冲器320以从缺省存储器302和304选择数据半字节,并且数据缓冲器322从缺省存储器308和备用存储器310选择数据半字节。在校正后的数据拷贝至合适存储器中之后,缺省存储器308可以存储先前存储在缺省存储器306中的数据半字节,并且备用存储器310可以存储先前存储于缺省存储器308的数据半字节(缺省存储器302和304可以存储与之前相同的各自数据半字节)。因此,数据半字节在存储器模块300的输出中的顺序在备用存储器310使用时与在全部缺省存储器起作用(并且备用存储器310未使用)时可以相同。
在一些实施方式中,可通信地耦接于存储器模块300的外部存储器控制器可以例如由存储器模块300上的机器可读指令(例如软件和/或固件)通知:存储器模块300上的备用存储器的存在。在这样的实施方式中,备用存储器可以存储存储于缺陷缺省存储器的数据的拷贝,并且存储器模块300上的数据缓冲器可以配置为使得数据半字节从备用存储器而不是缺陷缺省存储器选择。例如,如果缺省存储器304为缺陷,备用存储器310可以存储存储于缺省存储器304的数据的拷贝。数据缓冲器320可以选择存储于缺省存储器302的数据半字节以及存储于缺省存储器306的数据半字节,并且数据缓冲器322可以选择存储于缺省存储器308和备用存储器310的数据半字节。因此,在使用备用存储器时,存储器模块输出中的数据可能“扰乱(scrambled)”;在全部缺省存储器起作用时,从缺省存储器304选择的数据半字节组成字节0的后四比特,但在缺省存储器304为缺陷时,该数据半字节中的信息在字节1的后四比特中,并且处于之间的比特相对于如果全部缺省存储器起作用时它们将所处的位置移位。即,在图3中示出的全部缺省存储器起作用时,从缺省存储器306和308选择的数据半字节分别为字节1的首四比特和后四比特,但在缺省存储器304为缺陷时,从缺省存储器306和308选择的数据半字节分别为字节0的后四比特和字节1的首四比特。
已经被通知备用存储器的存在的存储器控制器可以被通知(例如,在缺省存储器被确定为缺陷时):从备用存储器而不是从缺陷缺省存储器选择数据半字节。存储器控制器可以“还原(unscramble)”数据半字节在存储器模块输出中的顺序(例如,将数据半字节按照如果它们全部从缺省存储器选择时将具有的顺序放置),随后应用错误校正逻辑。在一些实施方式中,备用存储器中的错误数据可以被校正。例如,存储于备用存储器中的数据可以被扫描,并且ECC逻辑和/或其他合适的错误校正逻辑可以用于检测并且校正错误。在一些实施方式中,可以扫描整个备用存储器。在一些实施方式中,可以扫描备用存储器的具有存储在缺省存储器的缺陷部分中的数据的拷贝的一部分。
图4为用于使得能够使用存储器模块上的备用存储器的示例***控制器400的方框图。***控制器400可以例如实施为***控制器330。***控制器400可以包括模块402和404。模块可以包括在机器可读存储介质上编码并且可由***控制器400的处理器执行的指令集。此外或者作为替代,模块可以包括硬件装置,其包括用于实施以下描述的功能性的电子电路。
数据缓冲器接口模块402可以将信息传送至可通信地耦接于存储器模块上的***控制器400的数据缓冲器。数据缓冲器接口模块402可以将选择控制信号传输至数据缓冲器。在一些实施方式中,数据缓冲器接口模块402可以将数据半字节应该从其读取的地址发送至数据缓冲器。地址可以由存储器模块外部的存储器控制器来指定。
记录模块404可以维持缺陷缺省存储器以及数据半字节替代地从其选择的各自备用存储器的记录。如在此相对于记录所使用的术语“维持”指的是生成和/或存储新纪录、更新现存记录以及删除现存记录。例如,存储器模块可以具有第一备用存储器以及第二备用存储器。在存储器模块上的第一数据缓冲器从***控制器400接收与存储器模块上的第一缺陷缺省存储器中的位置(或如以上参照图3讨论的,第一缺省存储器的缺陷部分中的位置)相对应的第一地址时,存储器模块上的数据缓冲器可以从第一备用存储器而不是第一缺陷缺省存储器选择数据半字节。在存储器模块上的第二数据缓冲器从***控制器400接收与存储器模块上的第二缺陷缺省存储器中的位置(或第二缺省存储器的缺陷部分中的位置)相对应的第二地址时,存储器模块上的数据缓冲器可以从第二备用存储器而不是第二缺陷缺省存储器选择数据半字节。记录模块404可以存储标识第一缺省存储器(或标识第一缺省存储器的缺陷部分)以及将第一备用存储器标识为用于更换第一缺省存储器(的缺陷部分)的记录。记录模块404也可以存储标识第二缺省存储器(或标识第二缺省存储器的缺陷部分)以及将第二备用存储器标识为用于更换第二缺省存储器(的缺陷部分)的记录。记录可以维持在例如***控制器400中的只读存储器(ROM)中。
图5为包括多个备用存储器的示例存储器模块500的方框图。存储器模块500可以为内联存储器模块,诸如SIMM或DIMM,或者任意适于安装存储器IC的存储器模块。在图5中,存储器模块500包括缺省存储器502、504、506、508、510、512、514、516、518、520、522、524、526、528、530、532、534、536、542、544、546、548、550、552、554、556、558、560、562、564、566、568、570、572、574和576、备用存储器538和540、数据缓冲器580、582、584、586、588、590、592、594和596,以及***控制器578。可以实施为***控制器400的***控制器578可以可通信地耦接于可以在存储器模块500外部的存储器控制器598。存储器控制器598可以执行与以上参照图3讨论的外部存储器控制器类似的功能。
缺省存储器502、504、506、508、510、512、514、516、518、520、522、524、526、528、530、532、534和536可以在第一列(rank),并且缺省存储器542、544、546、548、550、552、554、556、558、560、562、564、566、568、570、572、574和576可以在第二列。图5中的缺省存储器可以与图3中的缺省存储器类似。数据缓冲器正上方的每组四个缺省存储器可以容纳在四管芯封装(QDP)中。例如,缺省存储器502、504、542和544可以容纳在第一QDP中,缺省存储器506、508、546和548可以容纳在第二QDP中。
图5中的备用存储器538和540可以与图3中的备用存储器310类似。在一些实施方式中,备用存储器538和540可以二者均在第一列中,或者可以二者均在的第二列中。在一些实施方式中,备用存储器538可以在第一列中并且备用存储器540可以在第二列中,或者反过来。备用存储器容纳在其中的IC可以具有与缺省存储器容纳在其中的IC不同的管芯数量。
图5中的数据缓冲器可以与图3中的数据缓冲器类似。图5中的每个数据缓冲器可以以与以上参照图3讨论的类似方式从可通信地耦接于各自的数据缓冲器的两个存储器选择数据半字节。数据缓冲器580、582、584、586、588、590、592、594和596可以从***控制器578接收选择控制信号。数据缓冲器580、582、584、586、588、590、592、594和596从其选择数据半字节的存储器可以全部在相同列中。例如,如果备用存储器538和540两者在第一(或第二)列,可以更换第一(或第二)列中多达两个缺陷缺省存储器。如果备用存储器538在第一列中并且备用存储器540在第二列中,备用存储器538可以用于更换第一列中的缺陷缺省存储器,并且备用存储器540可以用于更换第二列中的缺陷缺省存储器。
图6为包括以使得能够使用存储器模块上的备用存储器的指令编码的机器可读存储介质的示例装置600的方框图。装置600可以为存储器控制器,诸如存储器控制器598。在图6中,装置600包括处理器602和机器可读存储介质604。
处理器602可以包括中央处理单元(CPU)、微处理器(例如基于半导体的微处理器)和/或其他适于检索和/或执行存储在机器可读存储介质604中的指令的硬件装置。处理器602可以取得、解码和/或执行指令606、608和610以使得能够使用存储器模块上的备用存储器,如以下描述的。作为替代或除了检索和/或执行指令以外,处理器602可以包括电子电路,其包括用于执行指令606、608和/或610的功能性的多个电子组件。
机器可读存储介质604可以为任何包含或存储可执行指令的合适的电子、磁性、光学或其他物理存储装置。因此,机器可读存储介质604可以包括例如随机存取存储器(RAM)、电可擦除可编程只读存储器(EEPROM)、存储装置、光学盘等。在一些实施方式中,机器可读存储介质604可以包括非临时性存储介质,其中术语“非临时性”不涵盖临时传播的信号。如以下详细描述的,机器可读存储介质604可以以可执行指令606、608和610的集合来编码。
指令606可以标识存储器模块上的缺省存储器的缺陷部分。在一些实施方式中,如果缺省存储器的一部分中存储的/从该部分读取的数据被使用ECC逻辑或其他错误校正逻辑重复地校正,则缺省存储器的该部分可以标识为缺陷。例如,每次来自该缺省存储器的该部分的错误被校正,计数器可以递增,并且在该计数器中的值超过阈值时,缺省存储器的该部分可以标识为缺陷。缺陷DRAM的记录可以在缺省存储器的该部分标识为缺陷时更新(例如,通过图4的记录模块404)。
指令608可以确定用于存储器模块上的数据选择器的选择控制信号。选择控制信号可以被确定以使得数据半字节从存储器模块上的备用存储器而不从缺陷缺省存储器选择。在缺陷部分起作用时,从缺省存储器选择的数据半字节可以在存储器模块的输出中的第一位置。从备用存储器选择的数据半字节可以在存储器模块的输出中的第二位置。
指令610可以将选择控制信号通知给存储器模块上的***控制器。在一些实施方式中,指令610可以将选择控制信号写入***控制器内的内部寄存器中。***控制器可以可通信地耦接于具有数据选择器的数据缓冲器。
图7为包括以用于拷贝和校正存储在存储器模块上的数据的指令编码的机器可读存储介质的示例装置700的方框图。装置700可以为存储器控制器,诸如存储器控制器598。在图7中,装置700包括出处理器702和机器可读存储介质704。
如与图6的处理器602一样,处理器702可以包括CPU、微处理器(例如基于半导体的微处理器)和/或其他适于检索和/或执行存储在机器可读存储介质704中的指令的硬件装置。处理器702可以取得、解码和/或执行指令706、708、710、712、714和716以使得能够拷贝和校正存储器模块上的数据,如以下描述的。作为替代或除了检索和/或执行指令以外,处理器702可以包括电子电路,其包括用于执行指令706、708、710、712、714和/或716的功能性的多个电子组件。
如与图6的机器可读存储介质604一样,机器可读存储介质704可以为任何存储可执行指令的合适的物理存储装置。机器可读存储介质704上的指令706、708和712可以类似于机器可读存储介质604上的指令606、608和610。指令710可以校正从存储器模块上的缺省存储器的缺陷部分读取的错误数据。例如,错误数据可以使用ECC逻辑和/或其他合适的错误校正逻辑来校正。
指令714可以将校正后的数据写入存储器模块上的无缺陷缺省存储器。校正后的数据可以存储在临时位置,诸如虚拟存储器或盘驱动,其中数据拷贝自其他无缺陷缺省存储器。校正后的数据可以从临时位置拷贝并且被写入数据半字节将根据确定的选择控制信号从其选择的无缺陷缺省存储器中。如以上参照图3讨论的,在全部缺省存储器起作用时,校正后的数据被拷贝至的无缺陷缺省存储器可以存储不同数据。
指令716可以将数据从无缺陷缺省存储器传送至存储器模块上的备用存储器。第一数据半字节可以从第一无缺陷缺省存储器拷贝并且存储在临时位置,诸如虚拟存储器或盘驱动。临时位置也可以存储从第二无缺陷缺省存储器拷贝的第二数据半字节,以及来自缺陷缺省存储器的校正后的数据。第一数据半字节可以从临时位置拷贝并且写入备用存储器。在第一数据半字节写入备用存储器时,第二数据半字节可以写入第一无缺陷缺省存储器。
图8为包括以用于通知存储器控制器使用存储器模块上的备用存储器并且用于校正备用存储器中的错误数据的指令编码的机器可读存储介质的示例装置800的方框图。装置800可以是存储器控制器,诸如存储器控制器598。在图8中,装置800包括处理器802和机器可读存储介质804。
如与图6的处理器602一样,处理器802可以包括CPU、微处理器(例如基于半导体的微处理器)和/或其他适于检索和/或执行存储在机器可读存储介质804中的指令的硬件装置。处理器802可以取得、解码和/或执行指令806、808、810、812、814和816以使得能够通知存储器控制器使用备用存储器以及校正备用存储器中的数据,如以下描述的。作为替代或除了检索和/或执行指令以外,处理器802可以包括电子电路,其包括用于执行指令806、808、810、812、814和/或816的功能性的多个电子组件。
如与图6的机器可读存储介质604一样,机器可读存储介质804可以为任何存储可执行指令的合适的物理存储装置。机器可读存储介质804上的指令806、808和810可以类似于机器可读存储介质604上的指令606、608和610。指令812可以通知在存储器模块外部的存储器控制器由指令808确定的选择控制信号。指令812因此可以通知存储器控制器:从备用存储器而不是缺陷缺省存储器选择数据半字节。备用存储器可以存储存储于缺省存储器的缺陷部分中的数据的拷贝。
指令814可以将选择控制信号从存储器模块上的***控制器传输至存储器模块上的数据选择器。选择控制信号可以用于配置数据选择器,所述数据选择器可以在存储器模块上的数据缓冲器中。选择控制信号可以经由数据总线从***控制器传输至数据选择器。
指令816可以校正存储器模块上的备用存储器中的错误数据。例如,存储在备用存储器中的数据可以被扫描,并且ECC逻辑和/或其他合适的错误校正逻辑可以用于检测和校正错误。在一些实施方式中,可以扫描整个备用存储器。在一些实施方式中,可以扫描备用存储器的具有存储在缺省存储器的缺陷部分中的数据的拷贝的一部分。
图9为用于使用存储器模块上的备用存储器的示例方法900的流程图。虽然以下参照图6的处理器602描述方法900的执行,但应理解方法900的执行可以由其他合适的装置来执行,诸如分别为图7和8的处理器702和802。方法900可以以存储在机器可读存储介质上的可执行指令的形式和/或电子电路的形式来实施。
方法900可以在方框902中开始,其中处理器602可以标识缺省存储器的缺陷部分。在一些实施方式中,如果缺省存储器的一部分中存储的/从该部分读取的数据被使用ECC逻辑或其他错误校正逻辑重复地校正,则缺省存储器的该部分可以标识为缺陷。例如,每次来自该缺省存储器的该部分的错误被校正,计数器可以递增,并且处理器602可以监测该计数器中的值。在该计数器中的值超过阈值时,处理器602可以标识缺省存储器的该部分为缺陷。
接下来,在方框904中,处理器602可以确定用于存储器模块上的数据选择器的选择控制信号。选择控制信号可以被确定以使得数据半字节从存储器模块上的备用存储器而不从缺陷缺省存储器选择。在缺陷部分起作用时,从缺省存储器选择的数据半字节可以在存储器模块的输出中的第一位置。从备用存储器选择的数据半字节可以在存储器模块的输出中的第二位置。
最后,在方框906中,处理器602可以将选择控制信号通知给存储器模块上的***控制器。在一些实施方式中,处理器602可以将选择控制信号写入***控制器内的内部寄存器中。***控制器可以可通信地耦接于具有数据选择器的数据缓冲器。
图10为用于校正存储在存储器模块上的错误数据的示例方法1000的流程图。虽然以下参照图6的处理器602描述方法1000的执行,但应理解方法1000的执行可以由其他合适的装置来执行,诸如分别为图7和8的处理器702和802。方法1000可以以存储在机器可读存储介质上的可执行指令的形式和/或电子电路的形式来实施。
方法1000可以在方框1002中开始,其中处理器602可以确定错误的位置。例如,处理器602可以确定存储器模块的输出中的哪个字节或数据半字节包含错误。在一些实施方式中,处理器602可以确定错误数据从其读取的存储器中的地址范围。例如,处理器602可以确定错误数据从其读取的存储器的列、块(bank)组、块和/或行。
在方框1004中,处理器602可以确定存储器控制器是否具有存储器模块上的备用存储器的知识。如果存储器控制器不具有备用存储器的知识,方法1000可以行进至方框1006,其中处理器602可以校正从缺省存储器的缺陷部分读取的错误数据。例如,处理器602可以使用ECC逻辑和/或其他合适的错误校正逻辑校正错误数据。
在方框1008中,处理器602可以将校正后的数据拷贝至临时位置。临时位置可以包括盘驱动、虚拟存储器和/或缓冲器。在一些实施方式中,处理器602可以将来自无缺陷缺省存储器的数据拷贝至临时位置。临时位置可以在存储器控制器和/或存储器模块上。
在方框1010中,处理器602可以将选择控制信号通知给存储器模块上的***控制器。在一些实施方式中,处理器602可以将选择控制信号写入***控制器内的内部寄存器中。***控制器可以可通信地耦接于具有数据选择器的数据缓冲器。
在方框1012中,处理器602可以将数据从无缺陷缺省存储器传送至存储器模块上的备用存储器。例如,第一数据半字节可以从第一无缺陷缺省存储器拷贝并且存储在方框1008的临时位置中。处理器602可以从临时位置拷贝第一数据半字节并且将第一数据半字节写入备用存储器。在处理器602将第一数据半字节写入备用存储器时,处理器602也可以将方框1008的校正后的数据写入第一无缺陷缺省存储器或另一无缺陷缺省存储器。
如果在方框1004中处理器602确定存储器控制器确实具有备用存储器的知识,则方法1000可以行进至方框1014,在方框1014处理器602可以将选择控制信号通知给***控制器和存储器控制器。处理器602可以将选择控制信号写入***控制器内的内部寄存器中以及存储器控制器内的寄存器中。在被通知了备用存储器之后,存储器控制器可以能够“还原”数据半字节在存储器模块输出中的顺序(例如,将数据半字节按照如果它们全部从缺省存储器选择时将具有的顺序放置),随后应用错误校正逻辑,如以上参照图3讨论的。
接下来,在方框1016中,处理器602可以校正备用存储器中的错误数据。例如,处理器602可以扫描存储于备用存储器中的数据,并且ECC逻辑和/或其他合适的错误校正逻辑可以用于检测并且校正错误。在一些实施方式中,可以扫描整个备用存储器。在一些实施方式中,可以扫描备用存储器的具有存储在缺省存储器的缺陷部分中的数据的拷贝的一部分。
前述公开描述了具有带数据选择器的数据缓冲器的存储器模块。在存储器模块上的全部缺省存储器起作用时,存储器模块上的数据选择器可以从缺省存储器选择数据半字节。在存储器模块上的缺省存储器为缺陷时,数据选择器可以从备用存储器选择数据半字节并且可以不从缺陷缺省存储器选择数据半字节。

Claims (15)

1.一种数据缓冲器,包括:
第一数据选择器,用于在存储于第一存储器的第一数据半字节与存储于第二存储器的第二数据半字节之间进行选择;以及
第二数据选择器,用于在存储于第三存储器的第三数据半字节与所述第二数据半字节之间进行选择;其中:
在所述第一存储器和所述第二存储器起作用时,所述第一数据选择器和所述第二数据选择器分别选择所述第一数据半字节和所述第二数据半字节;
在所述第一存储器未起作用时,所述第一数据选择器和所述第二数据选择器分别选择所述第二数据半字节和所述第三数据半字节;
在所述第二存储器未起作用时,所述第一数据选择器和所述第二数据选择器分别选择所述第一数据半字节和所述第三数据半字节;以及
所述数据缓冲器的输出包括由所述第一数据选择器和所述第二数据选择器选择的数据半字节。
2.根据权利要求1所述的数据缓冲器,还包括:
第一寄存器,用于存储所述第一数据选择器的输出,其中所述第一数据选择器的输出包括由所述第一数据选择器选择的数据半字节;以及
第二寄存器,用于存储所述第二数据选择器的输出,其中所述第二数据选择器的输出包括由所述第二数据选择器选择的数据半字节;其中:
所述第一寄存器和所述第二寄存器输出它们各自存储的数据半字节;以及
所述数据缓冲器的输出包括由所述第一寄存器和所述第二寄存器输出的数据半字节。
3.根据权利要求1所述的数据缓冲器,其中:
所述数据缓冲器、所述第一存储器、所述第二存储器以及所述第三存储器在存储器模块上的集成电路上;以及
用于所述第一数据选择器和所述第二数据选择器的选择控制信号接收自所述存储器模块上的***控制器。
4.一种机器可读存储介质,以由存储器模块的处理器可执行的用于使用所述存储器模块上的备用存储器的指令进行编码,其中,所述存储器模块上的多个存储器包括缺省存储器和所述备用存储器,所述机器可读存储介质包括:
用于标识所述缺省存储器中的第一存储器的缺陷部分的指令,其中在所述缺陷部分起作用时,从所述第一存储器选择的数据半字节处于所述存储器模块的输出中的第一位置;
用于确定用于所述存储器模块上的数据选择器的选择控制信号以使得从所述备用存储器而不从所述第一存储器选择数据半字节的指令,其中从所述备用存储器选择的所述数据半字节处于所述存储器模块的所述输出中的第二位置;以及
用于将所述选择控制信号通知给所述存储器模块上的***控制器的指令。
5.根据权利要求4所述的机器可读存储介质,还包括用于将所述选择控制信号从所述***控制器传输至所述数据选择器的指令,其中响应于接收所述选择控制信号,所述数据选择器从除了所述第一存储器以外的缺省存储器选择数据半字节,使得在所述存储器模块的输出中的所述第一位置与所述第二位置之间的数据半字节相对于全部数据半字节从缺省存储器选择时产生的所述存储器模块的输出移位。
6.根据权利要求4所述的机器可读存储介质,还包括:
用于校正从所述缺陷部分读取的错误数据的指令;
用于将校正后的数据写入所述缺省存储器的第二存储器的指令;以及
用于将数据从所述缺省存储器中的无缺陷存储器传送至所述备用存储器的指令。
7.根据权利要求4所述的机器可读存储介质,还包括:
用于将数据半字节从所述备用存储器而不是所述第一存储器选择通知给在所述存储器模块外部的存储器控制器的指令,其中所述备用存储器存储存储于所述第一存储器的所述缺陷部分的数据的拷贝;以及
用于校正所述备用存储器中的错误数据的指令。
8.一种用于存储器备用的***,所述***包括:
包括缺省存储器和第一备用存储器的多个存储器;
多个数据缓冲器,用于从所述多个存储器选择数据半字节,以使得在所述缺省存储器中的第一缺省存储器标识为缺陷时,从所述第一备用存储器而非从所述第一缺省存储器选择数据半字节,其中:
在所述第一缺省存储器起作用时,从所述第一缺省存储器选择的数据半字节处于所述***的输出中的第一位置;以及
从所述第一备用存储器选择的数据半字节处于所述***的输出中的第二位置;以及
***控制器,用于将选择控制信号传输至所述多个数据缓冲器。
9.根据权利要求8所述的***,其中:
所述***的输出包括所述多个数据缓冲器的按照指定顺序的输出;
所述多个数据缓冲器的输出包括从所述多个存储器选择的数据半字节;以及
所述多个数据缓冲器还用于从除了所述第一缺省存储器以外的缺省存储器选择数据半字节,以使得在所述***的输出中的所述第一位置与所述第二位置之间的数据半字节相对于全部数据半字节从缺省存储器选择时产生的所述***的输出移位。
10.根据权利要求8所述的***,其中所述多个数据缓冲器中的每一个可通信地耦接于所述多个存储器中的三个存储器,并且其中所述多个数据缓冲器中的每一个还用于从两个存储器选择数据半字节。
11.根据权利要求10所述的***,其中:
所述多个数据缓冲器中的第一数据缓冲器可通信地耦接于所述第一缺省存储器并且耦接于所述缺省存储器中的第二和第三缺省存储器;
所述多个数据缓冲器中的第二数据缓冲器可通信地耦接于所述第一备用存储器;
所述第一数据缓冲器用于从所述第二和第三缺省存储器选择数据半字节;以及
所述第二数据缓冲器用于从所述第一备用存储器选择数据半字节。
12.根据权利要求8所述的***,其中所述多个存储器是具有纠错码(ECC)功能性的易失性存储器。
13.根据权利要求8所述的***,其中存储器控制器被通知:从所述备用存储器而不是所述第一存储器选择数据半字节。
14.根据权利要求8所述的***,其中:
所述第一备用存储器存储存储于所述第一缺省存储器的数据的拷贝;以及
所述第一备用存储器中的错误数据被校正。
15.根据权利要求8所述的***,其中:
所述多个存储器还包括第二备用存储器;
在所述多个数据缓冲器中的第一数据缓冲器从所述***控制器接收与所述第一缺省存储器中的位置相对应的第一地址时,所述多个数据缓冲器用于从所述第一备用存储器而不是所述第一缺省存储器选择数据半字节;
在所述第一数据缓冲器从所述***控制器接收与所述缺省存储器中的第二缺省存储器中的位置相对应的第二地址时,所述多个数据缓冲器用于从所述第二备用存储器而不是所述第二缺省存储器选择数据半字节;以及
所述***控制器还用于维持缺陷缺省存储器以及数据半字节替代地从其选择的各个备用存储器的记录。
CN201380079788.3A 2013-09-27 2013-09-27 存储器模块上的存储器备用 Pending CN105684086A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/062396 WO2015047332A1 (en) 2013-09-27 2013-09-27 Memory sparing on memory modules

Publications (1)

Publication Number Publication Date
CN105684086A true CN105684086A (zh) 2016-06-15

Family

ID=52744229

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380079788.3A Pending CN105684086A (zh) 2013-09-27 2013-09-27 存储器模块上的存储器备用

Country Status (5)

Country Link
US (1) US10180888B2 (zh)
EP (1) EP3050057A1 (zh)
CN (1) CN105684086A (zh)
TW (1) TWI511158B (zh)
WO (1) WO2015047332A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9904611B1 (en) 2016-11-29 2018-02-27 International Business Machines Corporation Data buffer spare architectures for dual channel serial interface memories
US10496584B2 (en) * 2017-05-11 2019-12-03 Samsung Electronics Co., Ltd. Memory system for supporting internal DQ termination of data buffer
KR102400102B1 (ko) * 2017-05-11 2022-05-23 삼성전자주식회사 데이터 버퍼의 내부 데이터(dq) 터미네이션을 지원하는 메모리 시스템

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101202106A (zh) * 2006-09-22 2008-06-18 三星电子株式会社 非易失性存储***及其相应的编程方法
US20100115215A1 (en) * 2008-10-31 2010-05-06 Shaun Rosychuk Recovering From a Backup Copy of Data in a Multi-Site Storage System
US20130028035A1 (en) * 2011-07-27 2013-01-31 Fujitsu Semiconductor Limited Memory device

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69034227T2 (de) 1989-04-13 2007-05-03 Sandisk Corp., Sunnyvale EEprom-System mit Blocklöschung
US5323353A (en) * 1993-04-08 1994-06-21 Sharp Microelectronics Technology Inc. Method and apparatus for repair of memory by redundancy
JP3673027B2 (ja) 1996-09-05 2005-07-20 沖電気工業株式会社 テスト対象の半導体記憶回路を備えた半導体記憶装置
KR100338776B1 (ko) 2000-07-11 2002-05-31 윤종용 멀티 로우 어드레스 테스트 가능한 반도체 메모리 장치 및그 테스트 방법
US6373758B1 (en) 2001-02-23 2002-04-16 Hewlett-Packard Company System and method of operating a programmable column fail counter for redundancy allocation
US20050283581A1 (en) * 2004-06-16 2005-12-22 Chiang Chen M Data reading structure
US9171585B2 (en) * 2005-06-24 2015-10-27 Google Inc. Configurable memory circuit system and method
KR100877701B1 (ko) * 2006-11-23 2009-01-08 삼성전자주식회사 반도체 메모리 장치 및 이 장치의 리던던시 방법
US7589552B1 (en) 2007-10-23 2009-09-15 Altera Corporation Integrated circuit with redundancy
US7796451B2 (en) 2007-12-10 2010-09-14 Unity Semiconductor Corporation Integrated circuits and methods to compensate for defective memory in multiple layers of memory
US20100005335A1 (en) 2008-07-01 2010-01-07 International Business Machines Corporation Microprocessor interface with dynamic segment sparing and repair
US7821830B2 (en) * 2008-07-23 2010-10-26 Micron Technology, Inc. Flash memory device with redundant columns
US20100106904A1 (en) * 2008-10-23 2010-04-29 Dell Products L.P. Shadow raid cache memory
US8832464B2 (en) * 2009-03-31 2014-09-09 Oracle America, Inc. Processor and method for implementing instruction support for hash algorithms
US8495418B2 (en) * 2010-07-23 2013-07-23 Brocade Communications Systems, Inc. Achieving ultra-high availability using a single CPU
JP5598914B2 (ja) 2010-08-05 2014-10-01 三洋電機株式会社 電力供給システム
KR101196907B1 (ko) 2010-10-27 2012-11-05 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그의 동작 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101202106A (zh) * 2006-09-22 2008-06-18 三星电子株式会社 非易失性存储***及其相应的编程方法
US20100115215A1 (en) * 2008-10-31 2010-05-06 Shaun Rosychuk Recovering From a Backup Copy of Data in a Multi-Site Storage System
US20130028035A1 (en) * 2011-07-27 2013-01-31 Fujitsu Semiconductor Limited Memory device

Also Published As

Publication number Publication date
EP3050057A1 (en) 2016-08-03
WO2015047332A1 (en) 2015-04-02
TWI511158B (zh) 2015-12-01
TW201524285A (zh) 2015-06-16
US20160203065A1 (en) 2016-07-14
US10180888B2 (en) 2019-01-15

Similar Documents

Publication Publication Date Title
US10198221B2 (en) Methods of operating semiconductor memory devices with selective write-back of data for error scrubbing and related devices
US10115446B1 (en) Spin transfer torque MRAM device with error buffer
US10671478B2 (en) Scrubbing controllers of semiconductor memory devices, semiconductor memory devices and methods of operating the same
CN108701090B (zh) 用以支持存储器错误校正的非易失性存储器模块架构
US8606988B2 (en) Flash memory control circuit for interleavingly transmitting data into flash memories, flash memory storage system thereof, and data transfer method thereof
US10846008B2 (en) Apparatuses and methods for single level cell caching
CN106297895A (zh) 纠错电路、半导体存储器装置及其控制方法
US8910018B2 (en) Memory with dynamic error detection and correction
US20200142771A1 (en) Error correction code decoders, semiconductor memory devices and memory systems
US20160011813A1 (en) Atomic Non-Volatile Memory Data Transfer
JP2019114318A (ja) Nandプログラミングフェイルを処理するための内部コピー
KR20180061383A (ko) 기록 카운트에 기초하여 기록 파라미터를 조정하기 위한 장치 및 방법
KR20140113100A (ko) 레퍼런스 셀을 포함하는 불휘발성 메모리 장치 및 그것의 데이터 관리 방법 및
US10552255B2 (en) Memory device
US9507710B2 (en) Command execution using existing address information
US9471417B1 (en) Methods and apparatus for back-annotating errors in a RRAM array
CN105684086A (zh) 存储器模块上的存储器备用
CN106201761A (zh) 数据储存装置及其操作方法
CN109753440A (zh) 存储器件及包括其的存储***
WO2019000456A1 (zh) 传输数据掩码的方法、内存控制器、内存芯片和计算机***
US9104596B2 (en) Memory system
US10297304B1 (en) Memory device and operating method thereof
US10521134B2 (en) Memory system
CN116913356A (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
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20160615