CN109753239B - 半导体存储模块、半导体存储系统和访问其的方法 - Google Patents
半导体存储模块、半导体存储系统和访问其的方法 Download PDFInfo
- Publication number
- CN109753239B CN109753239B CN201811317210.8A CN201811317210A CN109753239B CN 109753239 B CN109753239 B CN 109753239B CN 201811317210 A CN201811317210 A CN 201811317210A CN 109753239 B CN109753239 B CN 109753239B
- Authority
- CN
- China
- Prior art keywords
- data
- data buffer
- fault
- controller
- tolerant
- 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.)
- Active
Links
- 239000004065 semiconductor Substances 0.000 title claims abstract description 120
- 238000000034 method Methods 0.000 title claims description 14
- 239000000872 buffer Substances 0.000 claims abstract description 363
- 238000012546 transfer Methods 0.000 claims abstract description 43
- 230000015654 memory Effects 0.000 claims description 176
- 238000013508 migration Methods 0.000 claims description 34
- 230000005012 migration Effects 0.000 claims description 34
- 230000004044 response Effects 0.000 claims description 18
- 230000008859 change Effects 0.000 claims description 3
- 230000008569 process Effects 0.000 claims description 3
- 230000002950 deficient Effects 0.000 claims 7
- 238000004891 communication Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 3
- 230000009977 dual effect Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012827 research and development Methods 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
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/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2053—Error 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/2094—Redundant storage or storage space
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/202—Error 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/2023—Failover techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2017—Error 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 memory access, memory control or I/O control functionality is redundant
-
- 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
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/022—Detection or location of defective auxiliary circuits, e.g. defective refresh counters in I/O circuitry
-
- 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/10—Test algorithms, e.g. memory scan [MScan] algorithms; Test patterns, e.g. checkerboard patterns
-
- 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/44—Indication or identification of errors, e.g. for repair
- G11C29/4401—Indication or identification of errors, e.g. for repair for self repair
-
- 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
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/702—Masking faults in memories by using spares or by reconfiguring by replacing auxiliary circuits, e.g. spare voltage generators, decoders or sense amplifiers, to be used instead of defective ones
-
- 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/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/78—Masking faults in memories by using spares or by reconfiguring using programmable devices
- G11C29/84—Masking faults in memories by using spares or by reconfiguring using programmable devices with improved access time or stability
- G11C29/846—Masking 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/82—Solving problems relating to consistency
-
- 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/36—Data generation devices, e.g. data inverters
- G11C2029/3602—Pattern generator
-
- 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/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/78—Masking faults in memories by using spares or by reconfiguring using programmable devices
- G11C29/835—Masking faults in memories by using spares or by reconfiguring using programmable devices with roll call arrangements for redundant substitutions
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C5/00—Details of stores covered by group G11C11/00
- G11C5/02—Disposition of storage elements, e.g. in the form of a matrix array
- G11C5/04—Supports for storage elements, e.g. memory modules; Mounting or fixing of storage elements on such supports
-
- 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
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
一种半导体存储模块包括易失性存储设备、非易失性存储设备、数据缓冲器和控制器。控制器通过数据缓冲器向外部设备输出从易失性存储设备或非易失性存储设备读取的第一数据,并且通过数据缓冲器将从外部设备接收到的第二数据写入易失性存储设备或非易失性存储设备中。控制器根据容错移转请求来执行容错移转操作,容错移转请求包括指示数据缓冲器当中的出故障的数据缓冲器的位置的故障信息。在容错移转操作中,控制器通过数据缓冲器当中的容错移转数据缓冲器向外部设备传递与出故障的数据缓冲器相关联的第三数据。
Description
对相关申请的交叉引用
本申请要求于2017年11月8日在韩国知识产权局中提交的第10-2017-0148210号韩国专利申请的优先权,其整个内容在此通过引用被合并。
技术领域
在本文公开的本发明构思的实施例涉及一种半导体电路,并且更具体地涉及一种半导体存储模块、一种半导体存储系统以及一种访问半导体存储模块的方法。
背景技术
半导体存储器使用半导体元件来存储数据。半导体存储器可以总体上被分类为包括诸如像动态随机存取存储器或静态随机存取存储器的易失性存储器,以及诸如像闪速存储器、相变存储器、铁电存储器、磁存储器、电阻存储器等等的非易失性存储器。
通常,易失性存储器支持高速随机存取并且典型地用作诸如像个人计算机、服务器或工作站的计算系统的主存储器。非易失性存储器支持大存储容量并且被用作例如计算系统的辅助存储。
当前,很多研究与开发已经集中于存储类存储器(SCM)。当前开发的存储类存储器的目标是支持大非易失性存储容量和高速随机存取两者。为了实现与现存的主存储器的兼容性,与存储类存储器相关联的研究与开发基于与动态随机存取存储器相同的存储模块。
发明内容
本发明构思的实施例提供一种半导体存储模块,包括易失性存储设备、非易失性存储设备、数据缓冲器和控制器,该控制器通过数据缓冲器向外部设备输出从易失性存储设备或非易失性存储设备读取的第一数据并且通过数据缓冲器将从外部设备接收到的第二数据写入易失性存储设备或非易失性存储设备中。控制器基于容错移转请求来执行容错移转操作,该容错移转请求包括指示数据缓冲器当中出故障的数据缓冲器的位置的故障信息。在容错移转操作期间,控制器通过数据缓冲器当中的容错移转数据缓冲器向外部设备输送与出故障的数据缓冲器相关联的第三数据。
本发明构思的实施例提供一种半导体存储系统,包括半导体存储模块,和控制半导体存储模块的存储器控制器。半导体存储模块包括易失性存储设备、非易失性存储设备、数据缓冲器和控制器,该控制器通过数据缓冲器向存储器控制器输出从易失性存储设备或非易失性存储设备读取的第一数据并且通过数据缓冲器将从存储器控制器接收到的第二数据写入易失性存储设备或非易失性存储设备中。存储器控制器确定何时数据缓冲器当中的至少一个数据缓冲器是出故障的数据缓冲器,并且控制器执行容错移转操作以旁路出故障的数据缓冲器。
本发明构思的实施例进一步提供一种由存储器控制器访问半导体存储模块的方法。半导体存储模块包括易失性存储设备、非易失性存储设备和数据缓冲器。该方法包括:由存储器控制器对数据缓冲器执行错误位置搜索操作,并且当在错误位置搜索操作期间检测到出故障的数据缓冲器时,由控制器执行容错移转操作,该容错移转操作包括在旁路出故障的数据缓冲器的同时读取存储在非易失性存储设备中的数据。
本发明构思的实施例更进一步提供一种半导体存储系统,包括半导体存储模块和存储器控制器。半导体存储模块包括易失性存储设备、非易失性存储设备、数据缓冲器和控制器。存储器控制器被配置为从数据缓冲器当中检测出故障的数据缓冲器并且提供容错移转请求。控制器被配置为执行容错移转操作,该容错移转操作包括响应于容错移转请求从易失性存储设备或非易失性存储设备读取数据,并且通过数据缓冲器当中的容错移转数据缓冲器且通过数据缓冲器当中的无缺陷数据缓冲器向存储器控制器提供数据。容错移转数据缓冲器提供用于与出故障的数据缓冲器相关联的数据的旁路路径。
附图说明
考虑参考附图的示例性实施例的以下具体实施方式,本发明构思的以上和其他目的和特征将变得明显。
图1图示出根据本发明构思的实施例的存储系统的框图。
图2图示出根据本发明构思的实施例的半导体存储模块的框图。
图3图示出根据本发明构思的实施例的存储系统的操作方法的流程图。
图4图示出其中存储器控制器执行错误位置搜索操作的示例的流程图。
图5图示出其中通过图4的方法在半导体存储模块中找出错误的示例。
图6图示出其中存储器控制器执行容错移转操作的示例的流程图。
图7图示出其中控制器执行容错移转操作的示例的流程图。
图8图示出其中当出故障的数据缓冲器不存在时半导体存储模块输出数据的示例。
图9图示出其中第一至第八数据缓冲器输出第一至第八数据的示例的时序图。
图10图示出其中当第三和第六数据缓冲器出故障时半导体存储模块通过容错移转操作输出数据的示例。
图11图示出其中图10的容错移转数据缓冲器和正常数据缓冲器输出第一至第八数据的示例的时序图。
图12图示出其中存储器控制器执行容错移转操作的应用的流程图。
图13图示出其中根据图12的方法来选择容错移转数据缓冲器的半导体存储模块的示例。
图14图示出其中图13的容错移转数据缓冲器输出第一至第八数据的示例的时序图。
具体实施方式
在下面,将本发明构思的实施例详细且清楚地描述到本领域普通技术人员可以容易地实施本发明构思的程度。
如在本发明构思的领域中按照惯例,可以按照执行所描述的一个或多个功能的框来描述和说明实施例。可以在本文被称为单元或者模块等等的这些框通过诸如逻辑门、集成电路、微处理器、微控制器、存储器电路、无源电子部件、有源电子部件、光学部件、硬连线电路等等的模拟和/或数字电路被物理地实施,并且可以可选地被固件和/或软件驱动。电路例如可以被体现在一个或多个半导体芯片中,或者被体现在诸如印刷电路板等等的基板支承上。可以通过专用硬件,或者通过处理器(例如,一个或多个编程微处理器和相关联的电路),或者通过执行框的一些功能的专用硬件和执行框的其他功能的处理器的组合来实施构成框的电路。在不背离本发明构思的范围的情况下,实施例的每个框可以被物理地分离为两个或更多相互作用和分立的框。同样地,在不背离本发明构思的范围的情况下,实施例的框可以被物理地组合为更复杂的框。
图1图示出根据本发明构思的实施例的存储系统10的框图。参考图1,存储系统10包括半导体存储模块100、存储设备20和主机设备30。半导体存储模块100可以用作主机设备30的主存储器。
例如,主机设备30可以存储和访问半导体存储模块100中的各种代码,需要该各种代码来控制存储系统10。主机设备30可以在半导体存储模块100中存储和访问将在存储系统10中执行的操作系统或应用的代码、实例或者有关的数据。
每一个半导体存储模块100包括易失性存储设备110和非易失性存储设备120。易失性存储设备110可以支持高速随机存取。非易失性存储设备120可以支持大容量非易失性存储。例如,半导体存储模块100可以是存储类存储器。
在实施例中,半导体存储模块100可以是同构存储模块。例如,半导体存储模块100可以具有相同的结构。作为另一个示例,半导体存储模块100可以是异构存储模块。例如,至少一个半导体存储模块100可以仅仅包括易失性存储设备110或非易失性存储设备120。
存储设备20可以用作主机设备30的辅助存储。主机设备30可以把要被长时间地存储的数据存储在存储设备20中。例如,主机设备30可以在存储设备20中存储和访问将在存储系统10中执行的操作系统或应用的原始数据或由应用生成的数据。
可以以各种形式实施存储设备20。例如,可以利用硬盘驱动器、固态驱动器、光盘驱动器或其两个或更多的组合来实施存储设备20。
主机设备30被配置为访问半导体存储模块100和存储设备20。主机设备30包括半导体存储器插槽31、存储器控制器32、存储器插槽34、设备驱动器35、处理器36、调制解调器37以及用户接口38。
半导体存储器插槽31可以被配置为使得半导体存储模块100附接到其。半导体存储器插槽31可以包括可与半导体存储模块100连接的引脚。例如,每一个半导体存储器插槽31可以具有基于双列直插式存储模块(DIMM)的结构。
存储器控制器32可以通过半导体存储器插槽31访问半导体存储模块100。根据处理器36的请求,存储器控制器32可以将数据写入半导体存储模块100中或可以从半导体存储模块100读取数据。
存储器控制器32可以包括第一容错移转(failover)控制器33。当至少一个半导体存储模块100的数据缓冲器物理地出故障时,第一容错移转控制器(FOC1)33可以通过将出故障的数据缓冲器旁路的旁路路径来支持读取与出故障的数据缓冲器相关联的数据的容错移转操作。
存储器插槽34可以被配置为使得存储设备20附接到其。存储器插槽34可以包括可与存储设备20连接的引脚。例如,每一个存储器插槽34可以具有基于诸如串行高级技术附件(SATA)、外部组件互联(PCI)、通用串行总线(USB)等等的各种标准中的至少一个的结构。
设备驱动器35可以通过存储器插槽34访问存储设备20。例如,响应于处理器36的请求,设备驱动器35可以在存储设备20中写入或从存储设备20读取数据。根据存储设备20的种类,设备驱动器35可以包括两个或更多异构驱动器。
处理器36可以控制存储系统10的操作。处理器36可以执行各种代码、操作系统、以及应用,需要该各种代码、操作系统和应用来驱动存储系统10。处理器36可以通过存储器控制器32访问半导体存储模块100。处理器36可以通过设备驱动器35访问存储设备20。
处理器36可以通过调制解调器37与网络NET进行通信。调制解调器37可以通过有线或无线通信与网络NET进行通信。例如,调制解调器37可以支持诸如以太网的有线通信,或者诸如无线保真(Wi-Fi)、蓝牙、近场通信(NFC)、长期演进(LTE)等等的无线通信。
处理器36可以通过用户接口38与“USER”进行通信。例如,用户接口38可以包括诸如触摸板、触摸面板、键盘、鼠标、照相机、麦克风、传感器等等的输入接口,以及诸如监视器、扬声器、马达等等的输出接口。
存储系统10被叫作“存储系统”,这是因为存储系统10包括半导体存储模块100。然而,本发明构思的范围和精神不应当限于存储系统。例如,可以将存储系统10包括在诸如个人计算机、服务器以及工作站等等的各种计算设备之一中。
为了改善存储系统10的性能的目的,需要增加半导体存储模块100的存储容量。可以通过增加半导体存储模块100的数量来实现半导体存储模块100的存储容量的增加。然而,由于诸如现有的指定标准等等的实际限制,半导体存储器插槽31的数量受到限制。因此,半导体存储模块100的数量的增加也受到限制。
为此原因,为了作为整体增加半导体存储模块100的容量的目的,存在增加每一个单独的半导体存储模块100的容量的尝试。通常,利用动态随机存取存储器来实施存储系统10的主存储器。可以通过使得动态随机存取存储器的容量更大来增加半导体存储模块100的容量,因此,导致成本的相当大的增加。
为了以相对小的成本或费用增加每一个半导体存储模块100的容量,可以利用易失性存储设备110和非易失性存储设备120的组合来实施每一个半导体存储模块100。制造昂贵但支持快速响应速度的易失性存储设备110可以用于存储需要以相对快的响应速度被访问的数据。制造低廉但支持大容量存储的非易失性存储设备120可以用于存储可以以相对慢的响应速度被访问的数据。
作为另一个示例,可以分层次地使用易失性存储设备110和非易失性存储设备120。例如,易失性存储设备110可以用作非易失性存储设备120的缓冲存储器或高速缓存存储器。通过组合易失性存储设备110和非易失性存储设备120,可以以相对低的成本增加每一个半导体存储模块100的容量。
为了与传统主存储器的兼容性,按照与传统主存储器相同的标准来设计每个包括易失性存储设备110和非易失性存储设备120的半导体存储模块100。例如,可以按照诸如双列直插式存储模块(DIMM)、寄存DIMM(Registered DIMM,RDIMM)和低负载DIMM(Loadreduced DIMM,LRDIMM)之类的至少一个标准来设计半导体存储模块100。
图2图示出根据本发明构思的实施例的半导体存储模块100a的框图。在实施例中,在图2中图示出按照LRDIMM标准设计的半导体存储模块100a。参考图2,半导体存储模块100a包括易失性存储设备110、非易失性存储设备120、控制器130以及第一至第八数据缓冲器141至148。
易失性存储设备110包括第一至第四易失性存储器111至114。第一至第四易失性存储器111至114可以由彼此分开的封装形成。第一至第四易失性存储器111至114可以包括动态随机存取存储器。
非易失性存储设备120包括第一至第四非易失性存储器121至124。第一至第四非易失性存储器121至124可以由彼此分开的封装形成。作为另一个示例,第一至第四非易失性存储器121至124可以是通过不同的地址所标识的非易失性存储设备120的存储区。
非易失性存储设备120可以包括各种非易失性存储设备中的至少一个,诸如闪速存储设备、相变存储设备、铁电存储设备、电阻存储设备和磁性存储设备。
控制器130可以例如从主机设备(例如,图1中的主机设备30)接收第一命令和地址CA1、第一时钟信号CK1以及第一控制信号CTRL1。控制器130可以与第一至第八数据缓冲器141至148交换第二数据信号DQ2。根据第一命令和地址CA1、第一时钟信号CK1以及第一控制信号CTRL1,控制器130可以访问易失性存储设备110或非易失性存储设备120。
控制器130可以向易失性存储设备110传送第二命令和地址CA2、第二时钟信号CK2以及第二控制信号CTRL2,并且可以与易失性存储设备110交换第三数据信号DQ3。控制器130可以向非易失性存储设备120传送第三命令和地址CA3、第三时钟信号CK3以及第三控制信号CTRL3,并且可以与非易失性存储设备120交换第四数据信号DQ4。
在实施例中,第一命令和地址CA1、第二命令和地址CA2以及第三命令和地址CA3可以具有不同的格式。作为另一个示例,第一命令和地址CA1、第二命令和地址CA2以及第三命令和地址CA3中的至少两个可以具有相同的格式。
例如,由控制器130使用以与易失性存储设备110进行通信的格式可以不同于由控制器130使用以与非易失性存储设备120进行通信的格式。控制器130可以传送第一缓冲器命令CMD_B1以控制第一至第四数据缓冲器141至144。控制器130可以传送第二缓冲器命令CMD_B2以控制第五至第八数据缓冲器145至148。
第一至第八数据缓冲器141至148可以与数据选通信号DQS同步地与主机设备30交换第一数据信号DQ1。第一至第八数据缓冲器141至148可以将从主机设备30接收到的第一数据信号DQ1传送到控制器130作为第二数据信号DQ2。
第一至第八数据缓冲器141至148可以将从控制器130接收到的第二数据信号DQ2作为第一数据信号DQ1传送到主机设备30。第一至第八数据缓冲器141至148可以由彼此分开的封装形成。
当第一命令和地址CA1或第一控制信号CTRL1指示易失性存储设备110时,控制器130可以将第一命令和地址CA1以及第一控制信号CTRL1传递到易失性存储设备110,作为第二命令和地址CA2以及第二控制信号CTRL2。控制器130可以将第一时钟信号CK1作为第二时钟信号CK2传递到易失性存储设备110,或者控制器130可以将第一时钟信号CK1转换为第二时钟信号CK2并且可以向易失性存储设备110传递第二时钟信号CK2。
当第一命令和地址CA1指示写入操作时,控制器130可以将从第一至第八数据缓冲器141至148接收的第二数据信号DQ2传递到易失性存储设备110作为第三数据信号DQ3。当第一命令和地址CA1指示读取操作时,控制器130可以向第一至第八数据缓冲器141至148传递从易失性存储设备110接收的第三数据信号DQ3。
在实施例中,控制器130可以物理地使第一至第四易失性存储器111至114与第一至第八数据缓冲器141至148彼此相关联。例如,控制器130可以物理地使第一易失性存储器111与第一和第二数据缓冲器141和142相关联(或者耦合或连接)。控制器130可以将用于与第一易失性存储器111进行通信的第三数据信号DQ3传递到第一和第二数据缓冲器141和142作为第二数据信号DQ2。
同样地,控制器130可以物理地使第二易失性存储器112与第三和第四数据缓冲器143和144相关联。控制器130可以物理地使第三易失性存储器113与第五和第六数据缓冲器145和146相关联。控制器130可以物理地使第四易失性存储器114与第七和第八数据缓冲器147和148相关联。
作为另一个示例,控制器130可以将从第一至第四易失性存储器111至114传递的数据分散在第一至第八数据缓冲器141至148上。例如,控制器130可以以分散方式从第一至第八数据缓冲器141至148接收将被写入第k易失性存储器(k是正整数)中的数据。控制器130可以将从第k易失性存储器读取的数据分散在第一至第八数据缓冲器141至148上以便输出到外部(即,主机130)。
当第一命令和地址CA1或者第一控制信号CTRL1指示非易失性存储设备120时,控制器130可以将第一命令和地址CA1以及第一控制信号CTRL1转换为第三命令和地址CA3以及第三控制信号CTRL3,并且可以向非易失性存储设备120传递第三命令和地址CA3以及第三控制信号CTRL3。
控制器130可以将第一时钟信号CK1作为第三时钟信号CK3传递到非易失性存储设备120,或者控制器130可以将第一时钟信号CK1转换为第三时钟信号CK3并且可以向非易失性存储设备120传递第三时钟信号CK3。第三时钟信号CK3可以是选通信号,其只有当与命令或数据有必要相关联时才进行触发并且当不必要时不进行触发。
当第一命令和地址CA1指示写入操作时,控制器130可以将从第一至第八数据缓冲器141至148接收的第二数据信号DQ2传递到非易失性存储设备120作为第四数据信号DQ4。当第一命令和地址CA1指示读取操作时,控制器130可以向第一至第八数据缓冲器141至148输送从非易失性存储设备120接收到的第四数据信号DQ4。
在实施例中,控制器130可以物理地使第一至第四非易失性存储器121至124与第一至第八数据缓冲器141至148彼此相关联。例如,控制器130可以物理地使第一非易失性存储器121与第一和第二数据缓冲器141和142相关联(或者耦合或连接)。控制器130可以将用于与第一非易失性存储器121进行通信的第四数据信号DQ4传递到第一和第二数据缓冲器141和142作为第二数据信号DQ2。
同样地,控制器130可以物理地使第二非易失性存储器122与第三和第四数据缓冲器143和144相关联。控制器130可以物理地使第三非易失性存储器123与第五和第六数据缓冲器145和146相关联。控制器130可以物理地使第四非易失性存储器124与第七和第八数据缓冲器147和148相关联。
作为另一个示例,控制器130可以将从第一至第四非易失性存储器121至124传递的数据分散在第一至第八数据缓冲器141至148上。例如,控制器130可以以分散方式从第一至第八数据缓冲器141至148接收将被写入第k非易失性存储器(k是正整数)中的数据。控制器130可以将从第k非易失性存储器读取的数据分散在第一至第八数据缓冲器141至148上以便输出到外部(即,主机30)。
在其他实施例中,易失性存储器的数量、非易失性存储器的数量和数据缓冲器的数量不受限制。易失性存储器或者非易失性存储器的数量可以与数据缓冲器的数量相同。数据缓冲器的数量可以被改变为“9”。
如果数据缓冲器141至148中的至少一个出故障(逻辑上或者物理上地),则通过出故障的数据缓冲器写入易失性存储设备110或非易失性存储设备120中的数据可能丢失。例如,在读取通过出故障的数据缓冲器写入的数据时,由于数据缓冲器的故障所引起的错误可能存在于所读取的数据中。
例如,如果由于出故障的数据缓冲器所产生的错误是不可校正的,则可能不可以读取存储在非易失性存储设备120中的数据的一部分。也就是说,存储在非易失性存储设备120中的数据的一部分可能由于出故障的数据缓冲器而丢失。类似地,由于出故障的数据缓冲器,可能不可以读取存储在易失性存储设备110中的数据的一部分。
例如,当易失性存储器111至114或非易失性存储器121至124物理地与数据缓冲器141至148相关联时,数据缓冲器的故障可以进一步造成另一个方面的问题。例如,可能仅仅通过同一数据缓冲器来读取通过使用特定数据缓冲器在易失性存储设备110或非易失性存储设备120中写入的数据。
在这种情况下,不可能在没有错误的情况下读取物理地与出故障的数据缓冲器相关联的非易失性存储器的数据。也就是说,存储在物理地与出故障的数据缓冲器相关联的非易失性存储器中的全部数据可能丢失。为了解决以上描述的问题,控制器130可以包括第二容错移转控制器131。第二容错移转控制器(FOC2)131可以与图1的第一容错移转控制器33一起支持容错移转操作。
在容错移转操作中,半导体存储模块100a可以通过另一个数据缓冲器(例如,容错移转数据缓冲器)、而不是出故障的数据缓冲器来向主机设备30输出与出故障的数据缓冲器相关联的数据。如果支持容错移转操作,则可以向主机设备30输出与出故障的数据缓冲器相关联的数据,而没有由于数据缓冲器的故障导致的读取错误。也就是说,可以执行数据恢复和备份。
图3图示出根据本发明构思的实施例的存储系统10的操作方法的流程图。参考图1至3,在操作S110中,存储器控制器32检测错误搜索事件。例如,如果在从半导体存储模块100a读取数据时检测到读取错误(或者不可校正的读取错误),则存储器控制器32可以确定检测到错误搜索事件。
作为另一个示例,当向主机设备30提供电力时或者当执行关于半导体存储模块100a的训练时,存储器控制器32可以确定检测到错误搜索事件。例如,训练可以包括为了提高数据传输的可靠性的目的、存储器控制器32关于半导体存储模块100a执行的调整的集合。
当在操作S110中检测到错误搜索事件时,此后,在操作S120中,存储器控制器32执行错误位置搜索操作。例如,错误位置可以指示第一至第八数据缓冲器141至148当中出故障的数据缓冲器的位置。当在操作S130中确定没有发现或者检测到错误位置(S130中的“否”)时,即,当在数据缓冲器141至148不存在出故障的数据缓冲器(即,没有发现或者检测到出故障的错误缓冲器)时,不执行容错移转操作,并且操作结束。
当在操作S130中确定发现或者检测到错误位置(S110中的“是”)时,在操作S140中,存储器控制器32的第一容错移转控制器33可以与半导体存储模块100a的第二容错移转控制器131一起执行容错移转操作。例如,半导体存储模块100a可以旁路出故障的数据缓冲器以通过容错移转数据缓冲器向存储器控制器32输出与出故障的数据缓冲器相关联的数据。
在实施例中,在操作S140中,存储器控制器32可以将错误位置的数量与阈值相比较。如果错误位置的数量大于或等于阈值,则存储器控制器32在操作S140中执行容错移转操作。如果错误位置的数量小于阈值,则存储器控制器32不在操作S140中执行容错移转操作。
图4图示出其中存储器控制器32执行错误位置搜索操作的示例的流程图。例如,参考图4所描述的错误位置搜索操作可以对应于图3中的操作S120。参考图1、图2和图4,在操作S210中,存储器控制器32将错误搜索图案写入半导体存储模块100a中。例如,存储器控制器32可以向半导体存储模块100a传送第一命令和地址CA1以及第一控制信号CTRL1以便执行第一写入操作。可以通过数据缓冲器141至148将错误搜索图案写入易失性存储设备110或非易失性存储设备120中。
作为另一个示例,存储器控制器32可以向半导体存储模块100a传送第一命令和地址CA1以及第一控制信号CTRL1以便执行第二写入操作。错误搜索图案可以被存储在数据缓冲器141至148中并且可以不被传递到易失性存储设备110或非易失性存储设备120。错误搜索图案可以是使得错误搜索操作容易的任何图案。例如,错误搜索图案可以包括伪随机图案。
在操作S220中,存储器控制器32读取写入半导体存储模块100a中的图案。例如,存储器控制器32可以向半导体存储模块100a传送第一命令和地址CA1以及第一控制信号CTRL1以便执行第一读取操作。半导体存储模块100a可以通过数据缓冲器141至148向存储器控制器32输出写入易失性存储设备110或非易失性存储设备120中的错误搜索图案。
作为另一个示例,存储器控制器32可以向半导体存储模块100a传送第一命令和地址CA1以及第一控制信号CTRL1以便执行第二读取操作。半导体存储模块100a可以向存储器控制器32输出存储在数据缓冲器141至148中的错误搜索图案。
在操作S230中,存储器控制器32将从半导体存储模块100a读取的图案与错误搜索图案相比较。存储器控制器32可以将与数据缓冲器141和148中的每一个相关联的读取的图案与错误搜索图案相比较。当在操作S240中确定特定数据缓冲器的读取图案等同于错误搜索图案(S240中的“是”)时,存储器控制器32确定没有从特定数据缓冲器(即,在其中)发现错误,并且操作处理结束。
当在操作S240中确定特定数据缓冲器的读取图案不等同于错误搜索图案(S240中的“否”)时,存储器控制器32此后在操作S250中确定从特定数据缓冲器(即,在其中)发现错误。存储器控制器32可以确定是否从数据缓冲器141和148中的每一个发现错误。也就是说,通过比较与数据缓冲器141和148中的每一个相关联的读取图案和错误搜索图案,存储器控制器32可以确定在数据缓冲器141至148中的哪个中(如果有的话)发现错误,或者换句话说数据缓冲器141至148中的哪个(如果有的话)已经出故障。
例如,存储器控制器32可以重复操作S210至操作S250,同时改变错误搜索图案的值。如果从特定数据缓冲器发现错误的次数、或者发现错误的次数与没有发现错误的次数的比率大于或等于阈值,则存储器控制器32可以最终确定从特定数据缓冲器发现错误。如果从特定数据缓冲器发现错误的次数或比率小于阈值,则存储器控制器32可以最终确定没有从特定数据缓冲器发现错误。
如果在改变错误搜索图案的值时重复操作S210至操作S250,则可以防止由于从出故障的数据缓冲器读取的图案无意地偶然匹配错误搜索图案的事件所造成的确定出故障的数据缓冲器的失败。因此,存储器控制器32正确地发现出故障的数据缓冲器的概率可以变得更高。
图5图示出其中通过图4的方法在半导体存储模块100a中找出错误的示例。参考图1和图5,存储器控制器32通过第一数据缓冲器141写入“1010”作为错误搜索图案。存储器控制器32通过第一数据缓冲器141读取相同的图案“1010”作为错误搜索图案。因此,存储器控制器32确定没有在第一数据缓冲器141中发现错误。
同样地,存储器控制器32通过第二、第四、第五、第七和第八数据缓冲器142、144、145、147和148中的每一个写入“1010”作为错误搜索图案。存储器控制器32通过第二、第四、第五、第七和第八数据缓冲器142、144、145、147和148中的每一个读取相同的图案“1010”作为错误搜索图案。因此,存储器控制器32确定没有从第二、第四、第五、第七和第八数据缓冲器142、144、145、147和148(即,在其中)发现错误。
存储器控制器32也通过第三和第六数据缓冲器143和146中的每一个写入“1010”作为错误搜索图案。然而,存储器控制器32通过第三和第六数据缓冲器143和146分别读取图案“1011”和“1110”,其读取图案不同于错误搜索图案“1011”和“1110”。因此,存储器控制器32确定从第三和第六数据缓冲器143和146(即,在其中)发现错误。
在图5中描述的是通过第一至第八数据缓冲器141至148写入相同的错误搜索图案的示例。然而,在其他的实施例中,将通过第一至第八数据缓冲器141至148写入的错误搜索图案可以彼此不同。例如,可以通过向原始图案应用诸如反相和循环移位之类的至少一个编码方案来生成将通过第一至第八数据缓冲器141至148写入的错误搜索图案。
图6图示出其中存储器控制器32执行容错移转操作的示例的流程图。例如,参考图6所描述的容错移转操作可以对应于图3中的操作S140。参考图1、图2和图6,在操作S310中,第一容错移转控制器33为出故障的数据缓冲器选择容错移转数据缓冲器。例如,第一容错移转控制器33可以为一个出故障的数据缓冲器选择至少一个容错移转数据缓冲器。
作为另一个示例,第一容错移转控制器33可以为两个或更多出故障的数据缓冲器选择至少一个容错移转数据缓冲器。也就是说,第一容错移转控制器33可以允许通过至少一个容错移转数据缓冲器来读取与两个或更多出故障的数据缓冲器相关联的数据。
在操作S320中,第一容错移转控制器33通过第一命令和地址CA1或第一控制信号CTRL1向第二容错移转控制器131传递容错移转信息。容错移转信息可以包括指示出故障的数据缓冲器(例如,出故障的数据缓冲器的位置)或用于出故障的数据缓冲器的容错移转数据缓冲器的故障信息。可以将容错移转信息与容错移转请求一起传递。
在操作S330中,对于每个业务,存储器控制器32通过正常数据缓冲器接收数据一次。正常数据缓冲器指示或对应于任何其他数据缓冲器,而不是出故障的数据缓冲器或容错移转数据缓冲器。也就是说,正常数据缓冲器是适当运行的或者无缺陷的数据缓冲器。业务指示或者对应于在存储器控制器32向半导体存储模块100a传送读取请求(或者需要数据的输出的任何请求)一次时所执行的操作周期。
例如,当在半导体存储模块100a和存储器控制器32之间定义特定突发长度时,半导体存储模块100a可以响应于一个读取请求通过一个数据缓冲器来输出与突发长度相对应的数据。输出与突发长度相对应的数据的操作周期可以是一个业务。
在操作S340中,对于每个业务,存储器控制器32通过容错移转数据缓冲器接收数据至少两次。例如,存储器控制器32可以响应于一个读取请求通过容错移转数据缓冲器接收与突发长度相对应的数据至少两次。
对应于一个突发长度的数据(例如,第四数据)可以是与容错移转数据缓冲器相关联的数据(即,意欲响应于读取请求通过容错移转数据缓冲器读取的与突发长度相对应的数据)。对应于至少另一个突发长度的数据(例如,第三数据)可以是与至少一个出故障的数据缓冲器相关联的数据(即,最初意欲响应于读取请求通过至少一个出故障的数据缓冲器被读取的与突发长度相对应的数据)。存储器控制器32可以通过将通过正常数据缓冲器接收的数据和通过容错移转数据缓冲器接收的数据组合来恢复原始数据。
图7图示出其中控制器130执行容错移转操作的示例的流程图。参考图1、图2和图7,在操作S410中,控制器130通过第一命令和地址CA1或第一控制信号CTRL1从存储器控制器32接收容错移转信息。
在操作S420中,取决于容错移转信息,第二容错移转控制器131为出故障的数据缓冲器选择容错移转数据缓冲器。在操作S430中,响应于一个读取请求,对于每个业务,半导体存储模块100a通过正常数据缓冲器输出存储在易失性存储设备110或非易失性存储设备120中的数据(例如,第五数据)一次。
在操作S440中,响应于一个读取请求,对于每个业务,半导体存储模块100a通过容错移转数据缓冲器输出存储在易失性存储设备110或非易失性存储设备120中的数据至少两次。对应于一个突发长度的数据(例如,第四数据)可以是与容错移转数据缓冲器相关联的数据(即,意欲响应于读取请求通过容错移转数据缓冲器输出的与突发长度相对应的数据)。对应于至少另一个突发长度的数据(例如,第三数据)可以是与出故障的数据缓冲器相关联的数据(即,最初意欲响应于读取请求通过至少一个出故障的数据缓冲器输出的数据)。
图8图示出其中当不存在出故障的数据缓冲器时半导体存储模块100a输出数据的示例。参考图8,响应于一个读取请求,在一个业务期间,半导体存储模块100a可以分别通过第一至第八数据缓冲器141至148输出存储在易失性存储设备110或非易失性存储设备120中的第一至第八数据DATA1至DATA8。
图9图示出其中第一至第八数据缓冲器141至148输出第一至第八数据DATA1至DATA8的示例的时序图。参考图8和图9,可以与数据选通信号DQS同步地输出第一至第八数据DATA1至DATA8。第一至第八数据DATA1至DATA8可以具有相同的长度。例如,第一至第八数据DATA1至DATA8可以具有与突发长度相同的长度。
图10图示出其中当第三和第六数据缓冲器143和146出故障时半导体存储模块100a通过容错移转操作输出数据的示例。参考图10,第三数据缓冲器143已经出故障,并且将第二数据缓冲器142选择为第三数据缓冲器143的容错移转数据缓冲器。而且,第六数据缓冲器146已经出故障,并且将第五数据缓冲器145选择为第六数据缓冲器146的容错移转数据缓冲器。
因此,在参考图10所描述的实施例中第三和第六数据缓冲器143和146是出故障的数据缓冲器。第一、第四、第七和第八数据缓冲器141、144、147和148是正常数据缓冲器。第二和第五数据缓冲器142和145是容错移转数据缓冲器。
在参考图10所描述的实施例中,响应于一个读取请求,在一个业务期间,半导体存储模块100a通过第一、第四、第七和第八数据缓冲器141、144、147和148分别输出存储在易失性存储设备110或非易失性存储设备120中的第一、第四、第七和第八数据DATA1、DATA4、DATA7和DATA8。
而且,响应于该一个读取请求,在一个业务期间,半导体存储模块100a通过第二数据缓冲器142输出存储在易失性存储设备110或非易失性存储设备120中的第二和第三数据DATA2和DATA3。
更进一步,响应于该一个读取请求,在一个业务期间,半导体存储模块100a通过第五数据缓冲器145输出存储在易失性存储设备110或非易失性存储设备120中的第五和第六数据DATA5和DATA6。
图11图示出其中图10的容错移转数据缓冲器和正常数据缓冲器输出第一至第八数据DATA1至DATA8的示例的时序图。参考图10和图11,作为正常数据缓冲器的第一、第四、第七和第八数据缓冲器141、144、147和148分别输出对应于一个突发长度的第一、第四、第七和第八数据DATA1、DATA4、DATA7和DATA8。
与正常数据缓冲器同时,作为容错移转数据缓冲器的第二和第五数据缓冲器142和145分别输出与第二和第五数据缓冲器142和145相关联的第二和第五数据DATA2和DATA5。之后,第二和第五数据缓冲器142和145分别输出与出故障的数据缓冲器相关联的第三和第六数据DATA3和DATA6。
第一、第四、第七和第八数据缓冲器141、144、147和148不输出数据,同时从第二和第五数据缓冲器142和145输出第三和第六数据DATA3和DATA6。作为另一个示例,第一、第四、第七和第八数据缓冲器141、144、147和148可以输出虚拟数据,同时第三和第六数据DATA3和DATA6输出。
图1的存储器控制器32可以将第一至第八数据DATA1至DATA8处理为在一个业务期间接收的一个数据组。例如,存储器控制器32可以重新排列第三数据DATA3和第六数据DATA6以恢复原始数据。
在实施例中,控制器130可以停止向确定为出故障的数据缓冲器的第三和第六数据缓冲器143和146提供电力。因为停止向出故障的数据缓冲器提供电力,所以可以减小半导体存储模块100a的功率消耗、具体地是容错移转操作的功率消耗。
图12图示出其中存储器控制器32执行容错移转操作的应用的流程图。例如,参考图12所描述容错移转操作可以对应于图3中的操作S140。参考图1、图2和图12,在操作S510中,存储器控制器32为出故障的数据缓冲器和未出故障的数据缓冲器选择容错移转数据缓冲器。
例如,存储器控制器32或控制器130可以将数据缓冲器141至148分组用于管理目的。如果属于特定组的数据缓冲器出故障,则存储器控制器32可以选择与出故障的数据缓冲器属于同一组的未出故障的数据缓冲器来作为容错移转数据缓冲器。
作为另一个示例,存储器控制器32或控制器130可以管理数据缓冲器141至148当中的活动数据缓冲器的总数量。例如,存储器控制器32可以管理正常数据缓冲器和容错移转数据缓冲器的总数量。例如,存储器控制器32可以管理活动数据缓冲器的数量以便对应于2的幂。
当不存在出故障的数据缓冲器时,存储器控制器32可以管理活动数据缓冲器的数量以便对应于数据缓冲器141至148的总数量。如果数据缓冲器出故障,则存储器控制器32可以将活动数据缓冲器的数量调整为提前确定的第一值。当活动数据缓冲器的数量被调整为第一值时,存储器控制器32可以为出故障的数据缓冲器和未出故障的数据缓冲器两者选择容错移转数据缓冲器。
如果出故障的数据缓冲器的数量增加并且因此活动数据缓冲器的数量减小到小于第一值,则存储器控制器32可以将活动数据缓冲器的数量调整为提前确定的第二值。当活动数据缓冲器的数量被调整为第二值时,存储器控制器32可以为出故障的数据缓冲器和未出故障的数据缓冲器两者选择容错移转数据缓冲器。
可能不能使用与容错移转数据缓冲器匹配(或配对或相关联的)数据缓冲器——即使该数据缓冲器没有出故障。控制器130可以停止向未使用的数据缓冲器提供电力。因为停止向未使用的数据缓冲器提供电力,所以可以减小半导体存储模块100a的功率消耗。
图13图示出其中根据图12的方法来选择容错移转数据缓冲器的半导体存储模块100a的示例。参考图1、图12和图13,选择第二数据缓冲器142作为用于出故障的数据缓冲器(其是在图13中被指示为出故障的数据缓冲器的第三数据缓冲器143)的容错移转数据缓冲器。第二数据缓冲器142输出与第二数据缓冲器142相关联的第二数据DATA2和与作为出故障的数据缓冲器的第三数据缓冲器143相关联的第三数据DATA3。
选择第一数据缓冲器141作为用于未使用的数据缓冲器(其是在图13中被指示为未使用的数据缓冲器的第四数据缓冲器144)的容错移转数据缓冲器。第一数据缓冲器141输出与第一数据缓冲器141相关联的第一数据DATA1和与作为未使用的数据缓冲器的第四数据缓冲器144相关联的第四数据DATA4。
选择第五数据缓冲器145作为用于出故障的数据缓冲器(其是在图13中被指示为出故障的数据缓冲器的第六数据缓冲器146)的容错移转数据缓冲器。第五数据缓冲器145输出与第五数据缓冲器145相关联的第五数据DATA5和与作为出故障的数据缓冲器的第六数据缓冲器146相关联的第六数据DATA6。
第七数据缓冲器147被选择为用于未使用的数据缓冲器(其是在图13被指示为未使用的数据缓冲器的第八数据缓冲器148)的容错移转数据缓冲器。第七数据缓冲器147输出与第七数据缓冲器147相关联的第七数据DATA7和与作为未使用的数据缓冲器的第八数据缓冲器148相关联的第八数据DATA8。
图14图示出其中图13的容错移转数据缓冲器输出第一至第八数据DATA1至DATA8的示例的时序图。参考图13和图14,第一、第二、第五和第七数据缓冲器141、142、145和147同时分别输出第一、第二、第五和第七数据DATA1、DATA2、DATA5和DATA7。
之后,第一、第二、第五和第七数据缓冲器141、142、145和147同时分别输出与出故障的第三和第六数据缓冲器143和146以及未使用的第四和第八数据缓冲器144和148相关联的第四、第三、第六和第八数据DATA4、DATA3、DATA6和DATA8。
如上所述,即使数据缓冲器141至148中的至少一个出故障,根据本发明构思的实施例的存储系统10也可以通过容错移转操作读取存储在易失性存储设备110或非易失性存储设备120中的数据。根据容错移转操作,防止由于数据缓冲器的故障所造成的错误。也就是说,在容错移转操作期间,控制器130控制半导体模块100a,使得通过数据缓冲器141至148从易失性存储设备110或非易失性存储设备120输出到主机设备(即,外部设备)的所有数据都是有效数据。
在以上描述了实施例,凭此容错移转数据缓冲器中的每一个首先输出分别与本身相关联的数据(即,分别与对应的容错移转数据缓冲器相关联的或者目的是对应的容错移转数据缓冲器的数据),并且然后输出与相应的出故障的数据缓冲器或者未使用的数据缓冲器相关联的数据。然而,在其他的实施例中,容错移转数据缓冲器可以被改变为在输出与出故障的数据缓冲器或者未使用的数据缓冲器相关联的数据之后输出与本身相关联的数据。
根据本发明构思的实施例,当数据缓冲器出故障时,执行容错移转操作,其中通过另一个数据缓冲器来访问与出故障的数据缓冲器相关联的数据。因此,可以防止存储在非易失性存储器中的数据由于半导体存储模块中的数据缓冲器的故障而不被读取。
尽管已经参考其示例性实施例描述了本发明构思,但应当对本领域技术人员明显的是,在不背离如在所附权利要求中所阐述的本发明构思的精神和范围的情况下,可以对其进行各种改变和修改。
Claims (16)
1.一种半导体存储模块,包括:
易失性存储设备;
非易失性存储设备;
数据缓冲器;和
控制器,被配置为通过所述数据缓冲器向外部设备输出从所述易失性存储设备或所述非易失性存储设备读取的第一数据,并且通过所述数据缓冲器将从所述外部设备接收的第二数据写入所述易失性存储设备或所述非易失性存储设备中,
其中,所述控制器被配置为基于容错移转请求来执行容错移转操作,所述容错移转请求包括指示所述数据缓冲器当中出故障的数据缓冲器的位置的故障信息,
在所述容错移转操作期间,所述控制器被配置为通过所述数据缓冲器当中的容错移转数据缓冲器向所述外部设备传递与所述出故障的数据缓冲器相关联的第三数据,并且
在所述容错移转操作期间,所述控制器被配置为通过所述容错移转数据缓冲器向所述外部设备输出与所述容错移转数据缓冲器相关联的第四数据、以及从所述非易失性存储设备读取的第一数据中的第三数据,并且通过所述数据缓冲器当中的无缺陷数据缓冲器向所述外部设备输出来自所述第一数据并且与所述无缺陷数据缓冲器相关联的第五数据。
2.根据权利要求1所述的半导体存储模块,其中,在所述容错移转操作期间,所述控制器被配置为通过所述数据缓冲器当中的无缺陷数据缓冲器向所述外部设备传递与无缺陷数据缓冲器相关联的第五数据。
3.根据权利要求1所述的半导体存储模块,其中,所述控制器被配置为基于从所述外部设备接收到的命令和控制信号来操作,并且
其中,以所述命令或所述控制信号的形式来接收所述容错移转请求。
4.根据权利要求1所述的半导体存储模块,其中,通过所述容错移转数据缓冲器顺序地输出所述第三数据和所述第四数据。
5.根据权利要求1所述的半导体存储模块,其中,在所述容错移转操作期间,所述控制器被配置为通过所述数据缓冲器向所述外部设备输出来自所述易失性存储设备或所述非易失性存储设备的有效数据。
6.根据权利要求1所述的半导体存储模块,其中,所述控制器被配置为停止向所述出故障的数据缓冲器提供电力。
7.根据权利要求1所述的半导体存储模块,其中,所述故障信息还包括所述容错移转数据缓冲器的位置。
8.一种半导体存储系统,包括:
半导体存储模块;和
存储器控制器,被配置为控制所述半导体存储模块,
其中,所述半导体存储模块包括
易失性存储设备,
非易失性存储设备,
数据缓冲器,以及
控制器,被配置为通过所述数据缓冲器向所述存储器控制器输出从所述易失性存储设备或所述非易失性存储设备读取的第一数据,以及通过所述数据缓冲器将从所述存储器控制器接收的第二数据写入所述易失性存储设备或所述非易失性存储设备,
其中,所述存储器控制器被配置为确定所述数据缓冲器当中的至少一个数据缓冲器何时是出故障的数据缓冲器,并且所述控制器被配置为执行容错移转操作以旁路所述出故障的数据缓冲器,
其中,在所述容错移转操作期间,所述存储器控制器被配置为通过所述数据缓冲器当中的无缺陷数据缓冲器来接收第三数据,并且通过所述数据缓冲器当中的容错移转数据缓冲器接收与所述出故障的数据缓冲器相关联的第四数据以旁路所述出故障的数据缓冲器,并且
其中,所述存储器控制器被配置为将所述第三数据和所述第四数据处理为与所述数据缓冲器相关联的一个数据组。
9.根据权利要求8所述的半导体存储系统,其中,所述存储器控制器被配置为执行错误位置搜索操作以从所述数据缓冲器当中检测所述出故障的数据缓冲器。
10.根据权利要求9所述的半导体存储系统,其中,在所述错误位置搜索操作期间,所述存储器控制器被配置为将第三数据写入所述数据缓冲器中的每一个中,从所述数据缓冲器中的每一个读取第四数据,并且将所述第三数据与所述第四数据相比较。
11.根据权利要求10所述的半导体存储系统,其中,在将所述第三数据与所述第四数据相比较之后,所述存储器控制器被配置为改变所述第三数据的数据图案以提供改变的第三数据,将改变的第三数据写入所述数据缓冲器中的每一个中,从所述数据缓冲器中的每一个读取第五数据,并且将所述改变的第三数据与所述第五数据相比较。
12.根据权利要求11所述的半导体存储系统,其中,所述存储器控制器被配置为从所述数据缓冲器当中确定其中所述第三数据和所述第四数据彼此不同或者其中所述改变的第三数据和所述第五数据彼此不同的数据缓冲器,作为所述出故障的数据缓冲器。
13.根据权利要求8所述的半导体存储系统,其中,在所述容错移转操作期间,所述存储器控制器被配置为以命令或者控制信号的形式向所述控制器传送容错移转请求,用于请求所述容错移转操作。
14.根据权利要求13所述的半导体存储系统,其中,所述容错移转请求包括以下中的至少一个:关于所述出故障的数据缓冲器的位置的信息,以及关于所述数据缓冲器当中的并且通过其来旁路且传递与所述出故障的数据缓冲器相关联的数据的容错移转数据缓冲器的位置的信息。
15.一种半导体存储系统,包括:
半导体存储模块,包括易失性存储设备、非易失性存储设备、数据缓冲器和控制器;以及
存储器控制器,被配置为从所述数据缓冲器当中检测出故障的数据缓冲器并且提供容错移转请求,
其中,所述控制器被配置为响应于所述容错移转请求执行容错移转操作,所述容错移转操作包括从所述易失性存储设备或所述非易失性存储设备读取数据,并且通过数据缓冲器当中的容错移转数据缓冲器且通过数据缓冲器当中的无缺陷数据缓冲器向所述存储器控制器提供所述数据,以及
其中,所述容错移转数据缓冲器提供用于与所述出故障的数据缓冲器相关联的数据的旁路路径,
其中,在所述容错移转操作期间,所述控制器被配置为通过所述容错移转数据缓冲器向所述存储器控制器顺序地传递与出故障的数据缓冲器相关联的数据和与所述容错移转数据缓冲器相关联的数据。
16.根据权利要求15所述的半导体存储系统,其中,在所述容错移转操作期间,所述控制器被配置为通过所述无缺陷数据缓冲器向所述存储器控制器传递与无缺陷数据缓冲器相关联的数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170148210A KR102427323B1 (ko) | 2017-11-08 | 2017-11-08 | 반도체 메모리 모듈, 반도체 메모리 시스템, 그리고 반도체 메모리 모듈을 액세스하는 액세스 방법 |
KR10-2017-0148210 | 2017-11-08 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109753239A CN109753239A (zh) | 2019-05-14 |
CN109753239B true CN109753239B (zh) | 2023-11-21 |
Family
ID=66179371
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811317210.8A Active CN109753239B (zh) | 2017-11-08 | 2018-11-07 | 半导体存储模块、半导体存储系统和访问其的方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10698781B2 (zh) |
KR (1) | KR102427323B1 (zh) |
CN (1) | CN109753239B (zh) |
DE (1) | DE102018122482A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102499794B1 (ko) | 2018-05-21 | 2023-02-15 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 장치의 동작 방법 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07311658A (ja) * | 1994-05-18 | 1995-11-28 | Oki Electric Ind Co Ltd | ディスクアレイ装置 |
US5751939A (en) * | 1995-11-29 | 1998-05-12 | Texas Micro, Inc. | Main memory system and checkpointing protocol for fault-tolerant computer system using an exclusive-or memory |
CN101312068A (zh) * | 2007-05-23 | 2008-11-26 | 三星电子株式会社 | 半导体存储器系统及控制其非易失性存储器的操作的方法 |
CN101373449A (zh) * | 2007-08-21 | 2009-02-25 | 三星电子株式会社 | Ecc控制电路、多通道存储器系统以及相关操作方法 |
CN101689130A (zh) * | 2006-12-06 | 2010-03-31 | 弗森多系统公司(dba弗森-艾奥) | 采用渐进raid存储数据的装置、系统和方法 |
CN101868830A (zh) * | 2007-11-21 | 2010-10-20 | 美光科技公司 | 容错非易失性集成电路存储器 |
CN103093818A (zh) * | 2011-11-04 | 2013-05-08 | 三星电子株式会社 | 存储系统及其操作方法 |
CN103793258A (zh) * | 2012-10-31 | 2014-05-14 | 三星Sds株式会社 | 基于管理程序的服务器复制系统及其方法 |
CN104094351A (zh) * | 2012-01-31 | 2014-10-08 | 惠普发展公司,有限责任合伙企业 | 内存模块缓冲器数据存储 |
US8966327B1 (en) * | 2012-06-21 | 2015-02-24 | Inphi Corporation | Protocol checking logic circuit for memory system reliability |
CN105247617A (zh) * | 2013-06-27 | 2016-01-13 | 英特尔公司 | 混合存储器设备 |
KR20170065732A (ko) * | 2015-12-03 | 2017-06-14 | 삼성전자주식회사 | 불휘발성 메모리 모듈 및 메모리 시스템 |
CN107003919A (zh) * | 2014-12-24 | 2017-08-01 | 英特尔公司 | 容错自动双列直插存储器模块刷新 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030037280A1 (en) * | 2001-08-20 | 2003-02-20 | Berg Jerry D. | Computer memory error management system and method |
DE102004052612B4 (de) * | 2004-10-29 | 2008-04-17 | Qimonda Ag | Halbleiterspeicherbaustein, Halbleiterspeichermodul und Verfahren zur Übertragung von Schreibdaten zu Halbleiterspeicherbausteinen |
US8352805B2 (en) * | 2006-05-18 | 2013-01-08 | Rambus Inc. | Memory error detection |
US9128632B2 (en) | 2009-07-16 | 2015-09-08 | Netlist, Inc. | Memory module with distributed data buffers and method of operation |
US8688901B2 (en) | 2009-12-08 | 2014-04-01 | Intel Corporation | Reconfigurable load-reduced memory buffer |
US10817502B2 (en) * | 2010-12-13 | 2020-10-27 | Sandisk Technologies Llc | Persistent memory management |
US8694857B2 (en) | 2011-04-13 | 2014-04-08 | Inphi Corporation | Systems and methods for error detection and correction in a memory module which includes a memory buffer |
JP5490062B2 (ja) * | 2011-07-19 | 2014-05-14 | 株式会社東芝 | 不揮発性半導体記憶装置 |
KR20130086887A (ko) | 2012-01-26 | 2013-08-05 | 삼성전자주식회사 | 메모리 버퍼, 이를 포함하는 장치들 및 이의 데이터 처리 방법 |
KR101989792B1 (ko) * | 2012-11-01 | 2019-06-17 | 삼성전자주식회사 | 불휘발성 메모리를 포함하는 메모리 시스템 및 불휘발성 메모리의 동작 방법 |
US9032177B2 (en) * | 2012-12-04 | 2015-05-12 | HGST Netherlands B.V. | Host read command return reordering based on time estimation of flash read command completion |
KR102143517B1 (ko) * | 2013-02-26 | 2020-08-12 | 삼성전자 주식회사 | 에러 정정회로를 포함하는 반도체 메모리 장치 및 반도체 메모리 장치의 동작방법 |
US9449651B2 (en) | 2014-03-21 | 2016-09-20 | Diablo Technologies Inc. | System and method for offsetting the data buffer latency of a device implementing a JEDEC standard DDR-4 LRDIMM chipset |
US9354872B2 (en) * | 2014-04-24 | 2016-05-31 | Xitore, Inc. | Apparatus, system, and method for non-volatile data storage and retrieval |
US20150363309A1 (en) * | 2014-06-17 | 2015-12-17 | Kingtiger Technology (Canada) Inc. | System and method of increasing reliability of non-volatile memory storage |
US9348518B2 (en) | 2014-07-02 | 2016-05-24 | International Business Machines Corporation | Buffered automated flash controller connected directly to processor memory bus |
CN106155926B (zh) | 2015-04-09 | 2019-11-26 | 澜起科技股份有限公司 | 存储器及存储器的数据交互方法 |
US10261697B2 (en) | 2015-06-08 | 2019-04-16 | Samsung Electronics Co., Ltd. | Storage device and operating method of storage device |
KR102430561B1 (ko) | 2015-09-11 | 2022-08-09 | 삼성전자주식회사 | 듀얼 포트 디램을 포함하는 메모리 모듈 |
US20170123991A1 (en) * | 2015-10-28 | 2017-05-04 | Sandisk Technologies Inc. | System and method for utilization of a data buffer in a storage device |
KR102491651B1 (ko) | 2015-12-14 | 2023-01-26 | 삼성전자주식회사 | 비휘발성 메모리 모듈, 그것을 포함하는 컴퓨팅 시스템, 및 그것의 동작 방법 |
KR102523141B1 (ko) | 2016-02-15 | 2023-04-20 | 삼성전자주식회사 | 휘발성 메모리 장치 및 불휘발성 메모리 장치를 포함하는 불휘발성 메모리 모듈 |
US9904611B1 (en) | 2016-11-29 | 2018-02-27 | International Business Machines Corporation | Data buffer spare architectures for dual channel serial interface memories |
-
2017
- 2017-11-08 KR KR1020170148210A patent/KR102427323B1/ko active IP Right Grant
-
2018
- 2018-06-03 US US15/996,482 patent/US10698781B2/en active Active
- 2018-09-14 DE DE102018122482.6A patent/DE102018122482A1/de active Pending
- 2018-11-07 CN CN201811317210.8A patent/CN109753239B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07311658A (ja) * | 1994-05-18 | 1995-11-28 | Oki Electric Ind Co Ltd | ディスクアレイ装置 |
US5751939A (en) * | 1995-11-29 | 1998-05-12 | Texas Micro, Inc. | Main memory system and checkpointing protocol for fault-tolerant computer system using an exclusive-or memory |
CN101689130A (zh) * | 2006-12-06 | 2010-03-31 | 弗森多系统公司(dba弗森-艾奥) | 采用渐进raid存储数据的装置、系统和方法 |
CN101312068A (zh) * | 2007-05-23 | 2008-11-26 | 三星电子株式会社 | 半导体存储器系统及控制其非易失性存储器的操作的方法 |
CN101373449A (zh) * | 2007-08-21 | 2009-02-25 | 三星电子株式会社 | Ecc控制电路、多通道存储器系统以及相关操作方法 |
CN101868830A (zh) * | 2007-11-21 | 2010-10-20 | 美光科技公司 | 容错非易失性集成电路存储器 |
CN103093818A (zh) * | 2011-11-04 | 2013-05-08 | 三星电子株式会社 | 存储系统及其操作方法 |
CN104094351A (zh) * | 2012-01-31 | 2014-10-08 | 惠普发展公司,有限责任合伙企业 | 内存模块缓冲器数据存储 |
US8966327B1 (en) * | 2012-06-21 | 2015-02-24 | Inphi Corporation | Protocol checking logic circuit for memory system reliability |
CN103793258A (zh) * | 2012-10-31 | 2014-05-14 | 三星Sds株式会社 | 基于管理程序的服务器复制系统及其方法 |
CN105247617A (zh) * | 2013-06-27 | 2016-01-13 | 英特尔公司 | 混合存储器设备 |
CN107003919A (zh) * | 2014-12-24 | 2017-08-01 | 英特尔公司 | 容错自动双列直插存储器模块刷新 |
KR20170065732A (ko) * | 2015-12-03 | 2017-06-14 | 삼성전자주식회사 | 불휘발성 메모리 모듈 및 메모리 시스템 |
Also Published As
Publication number | Publication date |
---|---|
CN109753239A (zh) | 2019-05-14 |
US20190138413A1 (en) | 2019-05-09 |
KR102427323B1 (ko) | 2022-08-01 |
US10698781B2 (en) | 2020-06-30 |
DE102018122482A1 (de) | 2019-05-09 |
KR20190052490A (ko) | 2019-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7984329B2 (en) | System and method for providing DRAM device-level repair via address remappings external to the device | |
CN108074595B (zh) | 存储器系统的接口方法、接口电路和存储器模块 | |
CN107430537B (zh) | 从片上动态随机存取存储器错误校正码中提取选择性信息 | |
TWI553650B (zh) | 以記憶體控制器來處理資料錯誤事件之方法、設備及系統 | |
US9934143B2 (en) | Mapping a physical address differently to different memory devices in a group | |
US7624225B2 (en) | System and method for providing synchronous dynamic random access memory (SDRAM) mode register shadowing in a memory system | |
US6961281B2 (en) | Single rank memory module for use in a two-rank memory module system | |
CN101405708B (zh) | 自动计算机器的存储器系统 | |
TW202004754A (zh) | 半導體記憶元件、記憶系統以及操作半導體記憶元件的方法 | |
US7895374B2 (en) | Dynamic segment sparing and repair in a memory system | |
US8359521B2 (en) | Providing a memory device having a shared error feedback pin | |
US7952944B2 (en) | System for providing on-die termination of a control signal bus | |
WO2016160275A1 (en) | Dynamic application of ecc based on error type | |
CN107919160B (zh) | 测试单元阵列的方法及执行其的半导体器件 | |
KR20190052754A (ko) | 적응적 온-다이 에러 체크 및 정정을 위한 반도체 메모리 장치 및 이를 포함하는 메모리 시스템 | |
US9262284B2 (en) | Single channel memory mirror | |
WO2016127143A1 (en) | Dynamically changing lockstep configuration | |
CN101477480A (zh) | 内存控制方法、装置及内存读写系统 | |
US11609817B2 (en) | Low latency availability in degraded redundant array of independent memory | |
CN116745849A (zh) | 存储器装置保护 | |
CN102117236A (zh) | 使集成存储器控制器能透明地与有缺陷存储器装置工作 | |
KR102142589B1 (ko) | 패리티 체크를 수행하는 반도체 메모리 장치, 메모리 시스템 및 반도체 메모리 장치의 동작방법 | |
CN109753239B (zh) | 半导体存储模块、半导体存储系统和访问其的方法 | |
CN116783654A (zh) | 自适应错误校正以提高系统存储器可靠性、可用性和可服务性(ras) | |
WO2016032784A1 (en) | Buffer circuit with adaptive repair capability |
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 |