CN115966243A - 存储器模块、存储器系统和存储器控制器的操作方法 - Google Patents

存储器模块、存储器系统和存储器控制器的操作方法 Download PDF

Info

Publication number
CN115966243A
CN115966243A CN202211241025.1A CN202211241025A CN115966243A CN 115966243 A CN115966243 A CN 115966243A CN 202211241025 A CN202211241025 A CN 202211241025A CN 115966243 A CN115966243 A CN 115966243A
Authority
CN
China
Prior art keywords
data
sub
memory
array
line
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
CN202211241025.1A
Other languages
English (en)
Inventor
申院济
金成峻
金熙东
裵敏秀
徐一雄
李美珍
李昇周
李贤淑
崔仁寿
韩基悳
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN115966243A publication Critical patent/CN115966243A/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
    • 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/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/19Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes
    • 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/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
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/408Address circuits
    • G11C11/4085Word line control circuits, e.g. word line drivers, - boosters, - pull-up, - pull-down, - precharge
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4096Input/output [I/O] data management or control circuits, e.g. reading or writing circuits, I/O drivers or bit-line switches 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/08Word line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, for word lines
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/611Specific encoding aspects, e.g. encoding by means of decoding
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/02Disposition of storage elements, e.g. in the form of a matrix array
    • G11C5/04Supports for storage elements, e.g. memory modules; Mounting or fixing of storage elements on such supports

Abstract

公开了一种存储器模块、存储器系统和存储器控制器的操作方法。所述存储器系统包括存储器模块和存储器控制器,存储器模块包括第一存储器装置至第四存储器装置和第一纠错码(ECC)装置,存储器控制器通过8条数据线与第一存储器装置至第四存储器装置中的每个存储器装置交换第一用户数据,并通过4条数据线与第一ECC装置交换第一ECC数据。存储器控制器包括ECC引擎,ECC引擎基于第一ECC数据纠正第一用户数据的32位随机错误。

Description

存储器模块、存储器系统和存储器控制器的操作方法
本专利申请要求于2021年10月12日在韩国知识产权局提交的第10-2021-0135051号韩国专利申请的优先权,所述韩国专利申请的公开通过引用全部包含于此。
技术领域
在此描述的发明构思的实施例涉及一种半导体存储器。更具体地,本公开涉及一种存储器模块、存储器系统和存储器控制器的操作方法。
背景技术
半导体存储器装置分为易失性存储器装置或非易失性存储器装置。易失性存储器装置存储当电源断开时丢失的数据。易失性存储器装置的示例包括静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)。非易失性存储器装置存储即使电源断开也被保持的数据。非易失性存储器装置的示例包括闪存装置、相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)或铁电RAM(FRAM)。
DRAM可广泛用作计算系统的系统存储器,并且可以以存储器模块(诸如,双列直插式存储器模块(DIMM))的形式包括在计算系统中。一些DIMM提供用于恢复所存储数据的错误的纠错码(ECC)功能。作为示例,在用户系统(诸如,个人计算机)中广泛使用的无缓冲DIMM(UDIMM)可提供纠错功能。因为包括在UDIMM中的数据线的数量是有限的,所以将被用于纠错的数据的大小相对较小。由于这个原因,传统UDIMM可仅支持单个位纠错功能。
发明内容
本公开的实施例提供能够提高可靠性的存储器模块、存储器系统和存储器控制器的操作方法。
根据实施例,存储器系统包括存储器模块和存储器控制器,存储器模块包括第一存储器装置、第二存储器装置、第三存储器装置、第四存储器装置和第一纠错码(ECC)装置,存储器控制器通过8条数据线与第一存储器装置、第二存储器装置、第三存储器装置和第四存储器装置中的每个存储器装置交换第一用户数据,并且通过4条数据线与第一ECC装置交换第一ECC数据。存储器控制器包括ECC引擎,ECC引擎基于第一ECC数据纠正第一用户数据的32随机位错误。
根据实施例,存储器控制器被配置为控制具有无缓冲双列直插式存储器模块(UDIMM)的形状因数的存储器模块。存储控制器的操作方法包括:基于用户数据生成检测数据和纠正数据,将用户数据、检测数据和纠正数据写入存储器模块,从存储器模块读取用户数据、检测数据和纠正数据,基于检测数据和纠正数据纠正用户数据的随机位错误,以及输出已纠正的用户数据。
根据实施例,具有无缓冲双列直插式存储器模块(UDIMM)的形状因数的存储器模块包括第一存储器装置,第一存储器装置通过第一数据线、第二数据线、第三数据线、第四数据线、第五数据线、第六数据线、第七数据线和第八数据线与外部存储器控制器连接。第一存储器装置包括:分别与第一数据线至第八数据线对应的第一子阵列、第二子阵列、第三子阵列、第四子阵列、第五子阵列、第六子阵列、第七子阵列和第八子阵列;第一子字线驱动器,控制与第一子阵列和第二子阵列连接的字线;第二子字线驱动器,控制与第三子阵列和第四子阵列连接的字线;第三子字线驱动器,控制与第五子阵列和第六子阵列连接的字线;以及第四子字线驱动器,控制与第七子阵列和第八子阵列连接的字线。第一子字线驱动器、第二子字线驱动器、第三子字线驱动器和第四子字线驱动器在物理上彼此分离。
附图说明
通过参照附图详细描述本公开的实施例,本公开的以上和其他目的和特征将变得清楚。
图1是示出根据本公开的实施例的存储器系统的框图。
图2是示出图1的存储器模块的框图。
图3是示出通过图2的存储器模块的第一通道发送或接收的数据集的示图。
图4是示出图1的存储器系统的操作的流程图。
图5是示出包括在图2的存储器模块中的存储器装置中的第一存储器装置的框图。
图6是示出图5的存储器单元阵列的示例的示图。
图7是用于描述能够在图6的存储器单元阵列的结构中发生的错误情况的示图。
图8是示出图5的存储器单元阵列的示例的示图。
图9是用于描述能够在图8的存储器单元阵列的结构中发生的错误情况的示图。
图10是示出图5的存储器单元阵列的示例的示图。
图11是用于描述能够在图10的存储器单元阵列的结构中发生的错误情况的示图。
图12是示出图1的存储器系统的操作的流程图。
图13是示出根据图12的流程图的存储器模块的ECC引擎的框图。
图14是示出图5的存储器单元阵列的示例的示图。
图15是示出图5的存储器单元阵列的示例的示图。
图16是示出根据本公开的实施例的存储器系统被应用到的计算机系统的示图。
具体实施方式
下面,可详细并且清楚地描述本公开的实施例,使得相关领域中的普通技术人员可容易地实现在此描述的发明构思。
图1是示出根据本公开的实施例的存储器系统的框图。参照图1,存储器系统100可包括存储器模块110和存储器控制器120。在一个实施例中,存储器系统100可以是被配置为处理各种信息并且存储已处理的信息的信息处理装置(诸如,个人计算机(PC)、膝上型计算机、服务器、工作站、智能电话、平板PC、数码相机和黑匣子(black box))中的一者。
存储器模块110可被配置为在存储器控制器120的控制下存储数据或输出存储的数据。例如,存储器模块110可被配置为:通过命令/地址线CA从存储器控制器120接收命令信号,通过单独的线从存储器控制器120接收控制信号CTRL,并且响应于接收的信号通过数据线DQ输出数据信号或响应于接收的信号存储接收的数据信号。
在一个实施例中,存储器模块110可包括多个存储器装置。存储器模块110可具有双列直插式存储器模块(DIMM)的结构。下面,为了容易地描述本公开的实施例,假设存储器模块110是无缓冲DIMM(UDIMM)。然而,本公开不限于此。例如,存储器模块110或双列直插式存储器模块可以以各种形式(诸如,小外形双列直插式存储器模块(SODIMM))实现。
存储器控制器120可被配置为通过使用各种信号来控制存储器模块110。例如,存储器控制器120可通过命令/地址线CA将命令和地址信号发送给存储器模块110,并且可通过单独的线将控制信号CTRL发送给存储器模块110。存储器控制器120可通过使用各种信号来控制存储器模块110的写入操作和读取操作。在存储器模块110的读取操作中,存储器控制器120可通过数据线DQ从存储器模块110接收数据信号;在存储器模块110的写入操作中,存储器控制器120可通过数据线DQ将数据信号发送给存储器模块110。
在一个实施例中,存储器模块110和存储器控制器120可通过给定的接口彼此通信。给定的接口可以是双倍数据速率(DDR)接口,但是本公开不限于此。
存储器控制器120可包括ECC引擎(纠错码引擎)121。ECC引擎121可生成用于将被存储在存储器模块110中的写入数据的ECC数据。生成的ECC数据可与写入数据一起存储在存储器模块110中。之后,当数据从存储器模块110被读取时,ECC引擎121可通过使用与读取数据对应的ECC数据来检测和纠正读取数据的错误。
在一个实施例中,存储器模块110可具有UDIMM结构。在传统的UDIMM中,因为输入/输出线或数据线的数量是有限的,所以包括在一个数据集中的ECC数据的大小是有限的。由于这个原因,传统的UDIMM支持纠正单个位错误的单个位纠错(SEC)功能,但是不能纠正诸如多位错误或芯片错误的错误。
相反,根据本公开,包括在存储器模块110中的多个存储器装置中的每个存储器装置可被实现,使得错误范围被分类为特定范围;在这种情况下,即使ECC数据的容量有限,由于多个存储器装置中的一个存储器装置的故障而发生的随机位错误也可被纠正和恢复。将参照附图详细描述根据本公开的实施例的存储器模块110和多个存储器装置的结构。
图2是示出图1的存储器模块的框图。图3是示出通过图2的存储器模块的第一通道发送或接收的数据集的示图。图4是说明图1的存储器系统的操作的流程图。
参照图1、图2、图3和图4,存储器模块110可包括第一存储器装置MEM0、第二存储器装置MEM1、第三存储器装置MEM2、第四存储器装置MEM3、第五存储器装置MEM4、第六存储器装置MEM5、第七存储器装置MEM6、第八存储器装置MEM7、第一ECC装置ECC0和第二ECC装置ECC1。第一存储器装置MEM0、第二存储器装置MEM1、第三存储器装置MEM2、第四存储器装置MEM3、第五存储器装置MEM4、第六存储器装置MEM5、第七存储器装置MEM6、第八存储器装置MEM7、第一ECC装置ECC0和第二ECC装置ECC1中的每个可以是动态随机存取存储器(DRAM)装置。然而,本公开不限于此。
第一存储器装置MEM0、第二存储器装置MEM1、第三存储器装置MEM2、第四存储器装置MEM3、第五存储器装置MEM4、第六存储器装置MEM5、第七存储器装置MEM6、第八存储器装置MEM7、第一ECC装置ECC0和第二ECC装置ECC1中的每个可被配置为:通过命令/地址线CA从存储器控制器120接收命令信号,通过单独的线从存储器控制器120接收控制信号CTRL,并且响应于接收的信号通过数据线DQ输出数据信号或者响应于接收的信号存储接收的数据信号。
在一个实施例中,第一存储器装置MEM0、第二存储器装置MEM1、第三存储器装置MEM2、第四存储器装置MEM3、第五存储器装置MEM4、第六存储器装置MEM5、第七存储器装置MEM6和第八存储器装置MEM7中的每个可通过8条数据线DQx8与存储器控制器120交换数据。第一ECC装置ECC0和第二ECC装置ECC1中的每个可通过4条数据线DQx4与存储器控制器120交换数据。
例如,存储器模块110可具有UDIMM的形状因数(form factor)。UDIMM可通过总共72条数据线DQ[71:0]与存储器控制器120通信。UDIMM可支持第一通道CHa和第二通道CHb。第一通道CHa可包括36条数据线DQ[35:0],并且第二通道CHb可包括36条数据线DQ[71:36]。第一通道CHa的数据线DQ[35:0]可与多个存储器装置MEM0至MEM3和第一ECC装置ECC0连接。
如在此参照至少图3阐述的,存储器模块110可包括多个存储器装置(例如,存储器装置MEM0至MEM3)和ECC装置(例如,第一ECC装置ECC0)。多个存储器装置可通过“a×N”条数据线与存储器控制器120连接,其中“a”指示多个存储器装置的数量,并且N是大于1的自然数。ECC装置(例如,第一ECC装置ECC0)通过“M”条数据线与存储器控制器120连接,其中M是小于N的正整数。
例如,第一存储器装置MEM0、第二存储器装置MEM1、第三存储器装置MEM2和第四存储器装置MEM3以及第一ECC装置ECC0可通过第一通道CHa与存储器控制器120连接。在这种情况下,第一存储器装置MEM0可与数据线DQ[7:0]连接,第二存储器装置MEM1可与数据线DQ[15:8]连接,第三存储器装置MEM2可与数据线DQ[23:16]连接,第四存储器装置MEM3可与数据线DQ[31:24]连接,并且第一ECC装置ECC0可与数据线DQ[35:32]连接。在一个实施例中,数据线DQ[31:0]可以是用于发送或接收用户数据DT_USER的输入/输出线,并且数据线DQ[35:32]可以是用于发送或接收ECC数据DT_ECC的校验位线CB。
类似地,第五存储器装置MEM4、第六存储器装置MEM5、第七存储器装置MEM6和第八存储器装置MEM7以及第二ECC装置ECC1可通过第二通道CHb与存储器控制器120连接。在这种情况下,第五存储器装置MEM4可与数据线DQ[43:36]连接,第六存储器装置MEM5可与数据线DQ[51:44]连接,第七存储器装置MEM6可与数据线DQ[59:52]连接,第八存储器装置MEM7可与数据线DQ[67:60]连接,并且第二ECC装置ECC1可与数据线DQ[71:68]连接。在一个实施例中,数据线DQ[67:36]可以是用于发送或接收用户数据DT_USER的输入/输出线,并且数据线DQ[71:68]可以是用于发送或接收ECC数据DT_ECC的校验位线CB。
通过第一通道CHa和第二通道CHb,存储器控制器120可以以数据集DSET为单位在存储器模块110中写入数据或从存储器模块110读取数据。
在一个实施例中,如图3中所示,一个数据集DSET可包括用户数据DT_USER和ECC数据DT_ECC。在存储器模块110以突发长度16(BL16)操作的情况下,16位可通过一条数据线被发送或接收。因为第一存储器装置MEM0、第二存储器装置MEM1、第三存储器装置MEM2和第四存储器装置MEM3中的每个存储器装置与8条数据线DQx8连接,所以通过第一通道CHa发送给第一存储器装置MEM0、第二存储器装置MEM1、第三存储器装置MEM2和第四存储器装置MEM3或从第一存储器装置MEM0、第二存储器装置MEM1、第三存储器装置MEM2和第四存储器装置MEM3接收的用户数据DT_USER可以是64字节(=32×16)(即,512位)。因为第一ECC装置ECC0与4条数据线DQx4连接,所以通过第一通道CHa从第一ECC装置ECC0输出的ECC数据DT_ECC可以是8字节(=4×16)(即,64位)。
在一个实施例中,在包括在一个数据集DSET中的用户数据DT_USER和ECC数据DT_ECC的大小分别是64字节和8字节的情况下,存储器控制器120的ECC引擎121可支持单个位纠错。
例如,如图4中所示,在操作S11中,存储器控制器120可基于用户数据DT_USER生成ECC数据DT_ECC。在这种情况下,ECC数据DT_ECC可包括用于支持用户数据DT_USER的单个位纠错的奇偶校验位。
在操作S12中,存储器控制器120可执行将写入命令CMD_WR发送给存储器模块110的操作。例如,存储器控制器120可通过命令/地址线CA将写入命令CMD_WR发送给存储器模块110。
在操作S13中,存储器控制器120可将用户数据DT_USER和ECC数据DT_ECC发送给存储器模块110。例如,存储器控制器120可通过多条数据线DQ将用户数据DT_USER和ECC数据DT_ECC发送给存储器模块110。在一个实施例中,用户数据DT_USER通过与存储器模块110的存储器装置(例如,第一存储器装置MEM0至第四存储器装置MEM3)连接的数据线传送,并且ECC数据DT_ECC通过与存储器模块110的ECC装置(例如,第一ECC装置ECC0)连接的数据线传送。
在操作S14中,存储器模块110可将用户数据DT_USER存储在存储器装置(例如,第一存储器装置MEM0到第四存储器装置MEM3)中,并且可将ECC数据DT_ECC存储在ECC装置(例如,第一ECC装置ECC0)中。
在操作S21中,存储器控制器120可执行将读取命令CMD_RD发送给存储器模块110的操作。例如,为了读取通过操作S11至操作S14写入存储器模块110中的用户数据DT_USER,存储器控制器120可将读取命令CMD_RD发送给存储器模块110。
在操作S22中,存储器模块110可将用户数据DT_USER和ECC数据DT_ECC发送给存储器控制器120。例如,存储器模块110可通过与存储器装置连接的数据线将用户数据DT_USER发送给存储器控制器120,并且可通过与ECC装置(例如,第一ECC装置ECC0)连接的数据线将ECC数据DT_ECC发送给存储器控制器120。
在操作S31中,存储器控制器120可生成校验子。例如,存储器控制器120的ECC引擎121可通过基于这样接收的用户数据DT_USER和ECC数据DT_ECC执行异或(XOR)运算来生成校验子。
在操作S32中,存储器控制器120可执行校验子解码。例如,存储器控制器120的ECC引擎121可通过对生成的校验子进行解码,来检测包括在接收的用户数据DT_USER中的错误的位置。
当校验子解码的结果指示检测到错误时,在操作S33中,存储器控制器120可纠正单个位错误。在操作S34中,存储器控制器120可将已纠正的数据发送给外部主机。
当校验子解码的结果指示未检测到错误时,存储器控制器120可执行操作S34。在这种情况下,数据可以是未经历单独的纠错操作的数据。
在一个实施例中,通过操作S31至操作S33,存储器控制器120可纠正用户数据DT_USER的单个位错误,但是不可纠正从存储器装置(诸如,第一存储器装置MEM0)输出的用户数据DT_USER的多位错误或随机位错误。原因是存储器模块110中使用的数据线的数量是有限的(也就是说,包括在一个数据集DSET中的ECC数据DT_ECC与用户数据DT_USER之比是小的)。换言之,在现有的UDIMM形状因数中,RAS(可靠性可用性可维护性)特性支持单个位纠错,但是不支持针对多位错误、随机位错误或存储器装置的故障的恢复操作。
例如,在第一存储器装置MEM0、第二存储器装置MEM1、第三存储器装置MEM2和第四存储器装置MEM3中的一个存储器装置中发生故障的情况下,在一个数据集DSET中可发生128位随机错误。然而,因为在一个数据集DSET中发送给存储器模块110或从存储器模块110接收的ECC数据DT_ECC具有8字节的大小,所以不可能通过使用ECC数据DT_ECC来纠正128位随机错误。也就是说,在具有UDIMM形状因数的存储器模块110中,由于每个通道的有限数据线的数量,包括在一个数据集DSET中的ECC数据DT_ECC的大小可能相对小;在这种情况下,不可能纠正由于包括在存储器模块110中的第一存储器装置MEM0、第二存储器装置MEM1、第三存储器装置MEM2、第四存储器装置MEM3、第五存储器装置MEM4、第六存储器装置MEM5、第七存储器装置MEM6和第八存储器装置MEM7的故障而导致的随机错误位。
根据本公开,在包括在存储器模块中的多个存储器装置中的一个存储器装置中发生故障的情况下,随机位错误的发生范围可被配置为被限制为特定范围。在这种情况下,即使存储器装置中发生故障,因为随机位错误的范围是有限的,所以可通过使用有限大小的ECC数据DT_ECC来恢复随机位错误(即,存储器装置的故障)。在一个实施例中,存储器控制器120的ECC引擎121可使用或提供用于恢复存储器装置的随机错误位的ECC方案。将参照以下附图详细描述根据本公开的实施例的存储器装置的结构和存储器控制器的操作。
图5是示出包括在图2的存储器模块中的存储器装置中的第一存储器装置的框图。为了附图的简洁性和描述的方便性,将参照图5描述第一存储器装置MEM0的结构,但是本公开不限于此。包括第二存储器装置MEM1至第八存储器装置MEM7的剩余存储器装置或者第一ECC装置ECC0和第二ECC装置ECC1的结构可与第一存储器装置MEM0的结构相同或相似。
参照图2和图5,第一存储器装置MEM0可包括存储器单元阵列111、X解码器X-DEC、Y解码器Y-DEC、命令/地址缓冲器112、地址解码器113、命令解码器114、感测放大器(S/A)和写入驱动器(W/D)115和输入/输出(I/O)电路116。
存储器单元阵列111可包括多个存储器单元。多个存储器单元可与字线和位线连接。在一个实施例中,多个存储器单元中的每个存储单元可以是DRAM单元,但本公开不限于此。例如,多个存储器单元中的每个存储单元可以以各种类型的存储器单元(诸如,PRAM单元、MRAM单元、RRAM单元、FRAM单元和TRAM单元)中的一者来实现。
X解码器X-DEC可与字线连接,并且可在地址解码器113的控制下控制字线。Y解码器Y-DEC可与位线连接,并且可在地址解码器113的控制下控制位线。
命令/地址缓冲器112可被配置为通过命令/地址线CA从存储器控制器120(或寄存器时钟驱动器RCD)接收命令和地址信号并且暂时存储或缓冲接收的信号。
地址解码器113可对存储在命令/地址缓冲器112中的地址信号进行解码,并且可基于解码结果来控制X解码器X-DEC和Y解码器Y-DEC。
命令解码器114可对存储在命令/地址缓冲器112中的命令信号进行解码并且可控制第一存储器装置MEM0的组件。例如,在存储在命令/地址缓冲器112中的命令信号与写入命令对应的情况下(即,在从存储器控制器120接收的命令是写入命令的情况下),命令解码器114可控制感测放大器和写入驱动器115的操作(即,可激活写入驱动器),使得通过数据线DQ和输入/输出电路116接收的数据被写入存储器单元阵列111中。可选择地,在存储在命令/地址缓冲器112中的命令信号与读取命令对应的情况下(即,在从存储器控制器120接收的命令是读取命令的情况下),命令解码器114可控制感测放大器和写入驱动器115的操作(即,可激活感测放大器),使得存储在存储器单元阵列111中的数据被读出。
在命令解码器114的控制下,感测放大器和写入驱动器115可读取存储在存储器单元阵列111中的数据或者可将数据写入存储器单元阵列111中。
输入/输出电路116可通过数据线DQ从存储器控制器120接收数据,或者可通过数据线DQ将数据发送给存储器控制器120。
图6是示出图5的存储器单元阵列的示例的示图。图7是用于描述能够在图6的存储器单元阵列的结构中发生的错误情况的示图。参照图5、图6和图7,存储器单元阵列111a可包括多个子阵列SA0至SA7和多个子字线驱动器SWD0至SWD8。
多个子阵列SA0至SA7中的每个子阵列可包括多个存储器单元。多个存储器单元可与多条字线WL0至WL5连接。多个子阵列SA0至SA7可分别与多条数据线DQ0至DQ7对应。
例如,第一子阵列SA0可与第一数据线DQ0连接。换言之,通过第一数据线DQ0接收的数据可被存储在第一子阵列SA0的存储器单元中,并且存储在第一子阵列SA0的存储器单元中的数据可通过第一数据线DQ0输出。
第二子阵列SA1可与第二数据线DQ1连接。换言之,通过第二数据线DQ1接收的数据可被存储在第二子阵列SA1的存储器单元中,并且存储在第二子阵列SA1的存储器单元中的数据可通过第二数据线DQ1输出。
剩余子阵列SA2至SA7与剩余数据线DQ2至DQ7之间的关系与以上描述的关系类似,因此,为避免冗余将省略附加描述。
多个子字线驱动器SWD0至SWD8可被配置为驱动与多个子阵列SA0至SA7连接的多条字线WL0至WL5。例如,第一子字线驱动器SWD0可驱动与第一子阵列SA0连接的偶数字线WL0、WL2和WL4。第二子字线驱动器SWD1可驱动与第一子阵列SA0和第二子阵列SA1连接的奇数字线WL1、WL3和WL5。第三子字线驱动器SWD2可驱动与第二子阵列SA1和第三子阵列SA2连接的偶数字线WL0、WL2和WL4。第四子字线驱动器SWD3可驱动与第三子阵列SA2和第四子阵列SA3连接的奇数字线WL1、WL3和WL5。第五子字线驱动器SWD4可驱动与第四子阵列SA3和第五子阵列SA4连接的偶数字线WL0、WL2和WL4。第六子字线驱动器SWD5可驱动与第五子阵列SA4和第六子阵列SA5连接的奇数字线WL1、WL3和WL5。第七子字线驱动器SWD6可驱动与第六子阵列SA5和第七子阵列SA6连接的偶数字线WL0、WL2和WL4。第八子字线驱动器SWD7可驱动与第七子阵列SA6和第八子阵列SA7连接的奇数字线WL1、WL3和WL5。第九子字线驱动器SWD8可驱动与第八子阵列SA7连接的偶数字线WL0、WL2和WL4。
对于以上子字线驱动器SWD0至SWD8的驱动方案,多个子阵列SA0至SA7可设置在多个子字线驱动器SWD0至SWD8之间。也就是说,第一子阵列SA0可插入在第一子字线驱动器SWD0与第二子字线驱动器SWD1之间;第二子阵列SA1可插入在第二子字线驱动器SWD1与第三子字线驱动器SWD2之间;第三子阵列SA2可插入在第三子字线驱动器SWD2与第四子字线驱动器SWD3之间;第四子阵列SA3可插入在第四子字线驱动器SWD3与第五子字线驱动器SWD4之间;第五子阵列SA4可插入在第五子字线驱动器SWD4与第六子字线驱动器SWD5之间;第六子阵列SA5可插入在第六子字线驱动器SWD5与第七子字线驱动器SWD6之间;第七子阵列SA6可插入在第七子字线驱动器SWD6与第八子字线驱动器SWD7之间;第八子阵列SA7可插入在第八子字线驱动器SWD7与第九子字线驱动器SWD8之间。
在一个实施例中,在多个子字线驱动器SWD0至SWD8中的一个子字线驱动器故障的情况下,在从与故障的子字线驱动器对应的子阵列输出的位中可包括错误。在这种情况下,在第一存储器装置MEM0中可能发生128位随机错误。
例如,如图7中所示,在第一存储器装置MEM0以突发长度16(包括突发BL0至突发BL15)操作的情况下,在根据故障的子字线驱动器的位置通过特定数据线输出的位发生错误。详细地,在第一子字线驱动器SWD0故障的情况下,在通过第一数据线DQ0从与由第一子字线驱动器SWD0驱动的字线连接的第一子阵列SA0输出的位值中可包括错误。在第二子字线驱动器SWD1故障的情况下,在通过第一数据线DQ0和第二数据线DQ1从与由第二子字线驱动器SWD1驱动的字线连接的第一子阵列SA0和第二子阵列SA1输出的位值中可包括错误。在第三子字线驱动器SWD2故障的情况下,在通过第二数据线DQ1和第三数据线DQ2从与由第三子字线驱动器SWD2驱动的字线连接的第二子阵列SA1和第三子阵列SA2输出的位值中可包括错误。在第四子字线驱动器SWD3故障的情况下,在通过第三数据线DQ2和第四数据线DQ3从与由第四子字线驱动器SWD3驱动的字线连接的第三子阵列SA2和第四子阵列SA3输出的位值中可包括错误。在第五子字线驱动器SWD4故障的情况下,在通过第四数据线DQ3和第五数据线DQ4从与由第五子字线驱动器SWD4驱动的字线连接的第四子阵列SA3和第五子阵列SA4输出的位值中可包括错误。在第六子字线驱动器SWD5故障的情况下,在通过第五数据线DQ4和第六数据线DQ5从与由第六子字线驱动器SWD5驱动的字线连接的第五子阵列SA4和第六子阵列SA5输出的位值中可包括错误。在第七子字线驱动器SWD6故障的情况下,在通过第六数据线DQ5和第七数据线DQ6从与由第七子字线驱动器SWD6驱动的字线连接的第六子阵列SA5和第七子阵列SA6输出的位值中可包括错误。在第八子字线驱动器SWD7故障的情况下,在通过第七数据线DQ6和第八数据线DQ7从与由第八子字线驱动器SWD7驱动的字线连接的第七子阵列SA6和第八子阵列SA7输出的位值中可包括错误。在第九子字线驱动器SWD8故障的情况下,在通过第八数据线DQ7从与由第九子字线驱动器SWD8驱动的字线连接的第八子阵列SA7输出的位值中可包括错误。
如上所述,因为通过一条数据线输出的位值的错误与两条子字线的故障相关联,所以通过每条数据线输出的位值的错误可能无法在数据线上物理地识别;在这种情况下,由于第一存储器装置MEM0的故障(例如,一个子字线驱动器的故障)而能够发生的错误可以是128位随机错误。
图8是示出图5的存储器单元阵列的示例的示图。图9是用于描述能够在图8的存储器单元阵列的结构中发生的错误情况的示图。参照图5、图8和图9,存储器单元阵列111b可包括多个子阵列SA0至SA7和多个子字线驱动器SWD0至SWD8。多个子阵列SA0至SA7可分别与多条数据线DQ0至DQ7对应。多个子阵列SA0至SA7和多个子字线驱动器SWD0至SWD8中的一些的配置与参照图6描述的配置类似,因此,为避免冗余将省略附加描述。
与图6的实施例不同,第五子字线驱动器SWD4可被划分为两个子字线驱动器SWD4a和SWD4b。子字线驱动器SWD4a可驱动第四子阵列SA3的偶数字线WL0、WL2和WL4,并且子字线驱动器SWD4b可驱动第五子阵列SA4的偶数字线WL0、WL2和WL4。在一个实施例中,两个子字线驱动器SWD4a和SWD4b可以是物理上彼此分离并且彼此独立地操作的组件。在这种情况下,在第一存储器装置MEM0中,由于子字线驱动器的故障导致的随机位错误的范围可被限制为64位。
例如,如图9中所示,在第一子字线驱动器SWD0、第二子字线驱动器SWD1、第三子字线驱动器SWD2、第四子字线驱动器SWD3和第5a子字线驱动器SWD4a中的一个子字线驱动器故障的情况下,通过第一数据线至第四数据线DQ0、DQ1、DQ2和DQ3输出的位值中可能发生错误;在第5b子字线驱动器SWD4b、第六子字线驱动器SWD5、第七子字线驱动器SWD6、第八子字线驱动器SWD7和第九子字线驱动器SWD8中的一个子字线驱动器故障的情况下,通过第五数据线至第八数据线DQ4、DQ5、DQ6和DQ7输出的位值中可能发生错误。在这种情况下,因为随机位错误在以4条数据线为单位(也就是说,以第一数据线至第四数据线DQ0、DQ1、DQ2和DQ3为单位或以第五数据线至第八数据线DQ4、DQ5、DQ6和DQ7为单位)物理分离的状态下发生,所以在第一存储器装置MEM0中发生的随机位错误的范围可以是64位。
图10是示出图5的存储器单元阵列的示例的示图。图11是用于描述能够在图10的存储器单元阵列的结构中发生的错误情况的示图。
参照图5、图10和图11,存储器单元阵列111c可包括多个子阵列SA0至SA7和多个子字线驱动器SWD0至SWD8。多个子阵列SA0至SA7可分别与多条数据线DQ0至DQ7对应。多个子阵列SA0至SA7和多个子字线驱动器SWD0至SWD8中的一些的配置与参照图6描述的配置类似,因此,为避免冗余将省略附加描述。
在一个实施例中,包括在图11中示出的存储器单元阵列111c中的第三子字线驱动器SWD2、第五子字线驱动器SWD4和第七子字线驱动器SWD6中的每个可被划分为两个单独的子字线驱动器。
例如,子字线驱动器SWD2a可驱动第二子阵列SA1的偶数字线WL0、WL2和WL4,并且子字线驱动器SWD2b可驱动第三子阵列SA2的偶数字线WL0、WL2和WL4。子字线驱动器SWD4a可驱动第四子阵列SA3的偶数字线WL0、WL2和WL4,并且子字线驱动器SWD4b可驱动第五子阵列SA4的偶数字线WL0、WL2和WL4。子字线驱动器SWD6a可驱动第六子阵列SA5的偶数字线WL0、WL2和WL4,并且子字线驱动器SWD6b可驱动第七子阵列SA6的偶数字线WL0、WL2和WL4。在一个实施例中,两个子字线驱动器SWD2a和SWD2b可以是物理上彼此分离并且彼此独立地操作的组件;两个子字线驱动器SWD4a和SWD4b可以是物理上彼此分离并且彼此独立地操作的组件;两个子字线驱动器SWD6a和SWD6b可以是物理上彼此分离并且彼此独立地操作的组件。在这种情况下,在第一存储器装置MEM0中,由于子字线驱动器的故障导致的随机位错误的范围可被限制为32位。
例如,如图11中所示,在第一子字线驱动器SWD0、第二子字线驱动器SWD1和第3a子字线驱动器SWD2a中的一个故障的情况下,通过第一数据线DQ0和第二数据线DQ1输出的位值中可能发生错误;在第3b子字线驱动器SWD2b、第四子字线驱动器SWD3和第5a子字线驱动器SWD4a中的一个故障的情况下,通过第三数据线DQ2和第四数据线DQ3输出的位值中可能发生错误;在第5b子字线驱动器SWD4b、第六子字线驱动器SWD5和第7a子字线驱动器SWD6a中的一个故障的情况下,通过第五数据线DQ4和第六数据线DQ5输出的位值中可能发生错误;在第7b子字线驱动器SWD6b、第八子字线驱动器SWD7和第九子字线驱动器SWD8中的一个故障的情况下,通过第七数据线DQ6和第八数据线DQ7输出的位值中可能发生错误。
在这种情况下,因为随机位错误在以2条数据线为单位(也就是说,以第一数据线DQ0和第二数据线DQ1为单位、以第三数据线DQ2和第四数据线DQ3为单位、以第五数据线DQ4和第六数据线DQ5为单位、或者以第七数据线DQ6和第八数据线DQ7为单位)物理分离的状态下发生,所以在第一存储器装置MEM0中发生的随机位错误的范围可以是32位。
在一个实施例中,在存储器模块110具有UDIMM形状因数并且以突发长度16操作的情况下,包括在通过一个通道输出的一个数据集DSET中的ECC数据DT_ECC可以是8字节。不可能通过使用8字节ECC数据DT_ECC来纠正128位随机错误或64位随机错误。也就是说,通常,在存储器模块110具有UDIMM形状因数的情况下,在每个存储器装置中发生的128位随机错误或64位随机错误不能被纠正,并且存储器模块110和存储器控制器120可被配置为支持单个位纠错(SEC)。
然而,如图10中所示,根据本公开,具有UDIMM形状因数的存储器模块110可被配置为以两条相邻的数据线为单位确定第一存储器装置MEM0、第二存储器装置MEM1、第三存储器装置MEM2、第四存储器装置MEM3、第五存储器装置MEM4、第六存储器装置MEM5、第七存储器装置MEM6和第八存储器装置MEM7中的每个存储器装置中发生的随机位错误,因此,随机位错误的发生范围可被限制为32位。在这种情况下,32位随机错误可通过使用8字节ECC数据DT_ECC被纠正或被恢复,并且存储器控制器120的ECC引擎121可被配置为支持32位随机错误的纠正和恢复。
图12是示出图1的存储器系统的操作的流程图。在一个实施例中,基于图12的流程图操作的存储器模块110可包括第一存储器装置MEM0、第二存储器装置MEM1、第三存储器装置MEM2、第四存储器装置MEM3、第五存储器装置MEM4、第六存储器装置MEM5、第七存储器装置MEM6和第八存储器装置MEM7,并且第一存储器装置MEM0、第二存储器装置MEM1、第三存储器装置MEM2、第四存储器装置MEM3、第五存储器装置MEM4、第六存储器装置MEM5、第七存储器装置MEM6和第八存储器装置MEM7中的每个存储器装置可包括参照图10描述的存储器单元阵列111c。也就是说,由于包括在基于图12的流程图操作的存储器模块110中的第一存储器装置MEM0、第二存储器装置MEM1、第三存储器装置MEM2、第四存储器装置MEM3、第五存储器装置MEM4、第六存储器装置MEM5、第七存储器装置MEM6和第八存储器装置MEM7中的每个存储器装置的故障而发生的随机位错误的范围可以是32位。
参照图1、图2、图10和图12,在操作S111中,存储器控制器120可基于用户数据DT_USER生成检测数据DT_DEC和纠正数据DT_COR。检测数据DT_DEC可被认为是第一检测数据,纠正数据DT_COR可以是第一纠正数据,并且ECC引擎121可被配置为通过以32位为单位对用户数据(例如,第一用户数据)执行ECC操作来生成第一检测数据和第一纠正数据。在一个实施例中,检测数据DT_DEC可以是用于检测从存储器模块110读取的数据的错误的数据,并且纠正数据DT_COR可以是用于纠正从存储器模块110读取的数据的错误的数据。在一个实施例中,检测数据DT_DEC可以是通过32位循环冗余校验(CRC-32)计算生成的值,并且纠正数据DT_COR可以是偶校验数据(即,通过偶校验计算生成的值)。在一个实施例中,在用户数据DT_USER是64字节的情况下,检测数据DT_DEC的大小和纠正数据DT_COR的大小之和可以是8字节。检测数据DT_DEC和纠正数据DT_COR可以是ECC数据DT_ECC。
在操作S112中,存储器控制器120可将写入命令CMD_WR发送给存储器模块110。在操作S113中,存储器控制器120可将用户数据DT_USER、检测数据DT_DEC和纠正数据DT_COR发送给存储器模块110。例如,存储器控制器120可通过第一通道CHa的第一数据线至第32数据线DQ[31:0]将用户数据DT_USER发送给存储器模块110的第一存储器装置MEM0至第四存储器装置MEM3,并且可通过第一通道CHa的第33数据线至第36数据线DQ[35:32]将检测数据DT_DEC和纠正数据DT_COR发送给存储器模块110的第一ECC装置ECC0。
在操作S114中,存储器模块110可将用户数据DT_USER存储在存储器装置(例如,第一存储器装置MEM0至第四存储器装置MEM3))中,并且可将检测数据DT_DEC和纠正数据DT_COR存储在ECC装置(例如,ECC0)中。
在操作S121中,存储器控制器120可将读取命令CMD_RD发送给存储器模块110。在一个实施例中,读取命令CMD_RD可以是用于读取通过操作S111至操作S114存储在存储器模块110中的用户数据DT_USER的命令。
在操作S122中,存储器模块110可将用户数据DT_USER、检测数据DT_DEC和纠正数据DT_COR发送给存储器控制器120。例如,存储器模块110可通过第一通道CHa的第一数据线至第32数据线DQ[31:0]将用户数据DT_USER发送给存储器控制器120,并且可通过第一通道CHa的第33数据线至第36数据线DQ[35:32]将检测数据DT_DEC和纠正数据DT_COR发送给存储器控制器120。
在操作S131中,存储器控制器120可基于从存储器模块110读取的用户数据DT_USER来生成检测数据DT_DEC'。检测数据DT_DEC'可被认为是第二检测数据,并且ECC引擎121可被配置为基于从存储器模块110读取的用户数据(例如,第一用户数据)来生成第二检测数据。
在操作S132中,存储器控制器120可将生成的检测数据DT_DEC'与从存储器模块110接收的检测数据DT_DEC进行比较。例如,在从存储器模块110接收的用户数据DT_USER中不包括错误的情况下,生成的检测数据DT_DEC'与从存储器模块110接收的检测数据DT_DEC可匹配。相反,在从存储器模块110接收的用户数据DT_USER中包括错误的情况下,生成的检测数据DT_DEC'与从存储器模块110接收的检测数据DT_DEC可不匹配。当检测数据DT_DEC'(例如,第二检测数据)与从存储器模块110读取的检测数据DT_DEC(例如,第一检测数据)不同时,ECC引擎121可基于从存储器模块110读取的第一纠正数据DT_COR来纠正用户数据(例如,第一用户数据)的32位错误。
在从存储器模块110接收的用户数据DT_USER中包括错误的情况下,在操作S133中,存储器控制器120可纠正用户数据DT_USER的错误。例如,存储器控制器120的ECC引擎121可通过使用纠正数据DT_COR来纠正用户数据DT_USER的错误。在一个实施例中,纠正数据DT_COR可以是偶校验数据,并且ECC引擎121可通过使用纠正数据DT_COR执行偶校验计算来纠正用户数据DT_USER的错误。在操作S134中,存储器控制器120可将已纠正的数据输出到外部主机。
在从存储器模块110接收的用户数据DT_USER中不包括错误的情况下,存储器控制器120可执行操作S134。在这种情况下,数据可以是未经历单独的纠错操作的数据。
在一个实施例中,可通过操作S131至操作S133来纠正或恢复从存储器模块110接收的用户数据DT_USER的随机位错误。也就是说,在具有UDIMM形状因数的传统存储器模块的情况下,由于数据线的数量的限制,ECC数据的大小受到限制;在这种情况下,对于用户数据仅支持单个位纠错(SEC)。相反,根据本公开,通过将由于每个存储器装置的故障而能够发生的随机位错误的范围限制为32位,可通过使用有限大小的ECC数据来纠正或恢复从存储器模块110读取的用户数据DT_USER的随机位错误。
图13是示出根据图12的流程图的存储器模块的ECC引擎的框图。参照图1、图12和图13,ECC引擎121可包括编码电路121a和解码电路121b。编码电路121a可基于将被存储在存储器模块110中的用户数据DT_USER来生成检测数据DT_DEC和纠正数据DT_COR。例如,编码电路121a可包括32位检测编码逻辑121a-1和32位纠正编码逻辑121a-2。
32位检测编码逻辑121a-1可基于用户数据DT_USER生成检测数据DT_DEC。32位纠正编码逻辑121a-2可基于用户数据DT_USER生成纠正数据DT_COR。
在一个实施例中,32位检测编码逻辑121a-1可通过以32位为单位对用户数据DT_USER执行操作来生成检测数据DT_DEC,并且32位纠正编码逻辑121a-2可通过以32位为单位对用户数据DT_USER执行操作来生成纠正数据DT_COR。在这种情况下,检测数据DT_DEC和纠正数据DT_COR中的每个可包括32位。在一个实施例中,32位检测编码逻辑121a-1可以是CRC-32逻辑,并且32位纠正编码逻辑121a-2可以是偶校验逻辑。
解码电路121b可被配置为检测并纠正从存储器模块110读取的用户数据DT_USER的错误。例如,解码电路121b可包括32位检测解码逻辑121b-1和32位纠正解码逻辑121b-2。
32位检测解码逻辑121b-1可基于从存储器模块110接收的用户数据DT_USER和检测数据DT_DEC来执行解码操作。例如,32位检测解码逻辑121b-1可基于用户数据DT_USER生成检测数据DT_DEC'。32位检测解码逻辑121b-1可通过比较生成的检测数据DT_DEC'和接收的检测数据DT_DEC来确定用户数据DT_USER中是否存在错误。在用户数据DT_USER中不存在错误的情况下,32位检测解码逻辑121b-1可在没有附加纠错的情况下输出用户数据DT_USER。在检测到用户数据DT_USER的错误的情况下,32位纠正解码逻辑121b-2可基于接收的用户数据DT_USER和接收的纠正数据DT_COR来纠正用户数据DT_USER的错误并输出已纠正的用户数据DT_USER'。
如参照图13所述,存储器控制器120的ECC引擎121可以以32位为单位对用户数据DT_USER执行ECC操作;在这种情况下,可纠正或恢复用户数据DT_USER的32位随机错误。
如上所述,本公开的存储器模块110可具有UDIMM形状因数。由于数据线数量的限制,UDIMM形状因数的传统存储器模块仅支持单个位纠错。相反,根据本公开,存储器模块110可具有UDIMM形状因数,并且由于包括在存储器模块110中的第一存储器装置MEM0、第二存储器装置MEM1、第三存储器装置MEM2、第四存储器装置MEM3、第五存储器装置MEM4、第六存储器装置MEM5、第七存储器装置MEM6和第八存储器装置MEM7中的一个存储器装置的故障而发生的随机位错误的范围被限制为32位。在这种情况下,即使数据线的数量有限,也可纠正和恢复从存储器模块110读取的用户数据的随机位错误。存储器控制器120的ECC引擎121可被配置为纠正和恢复用户数据的32位随机错误。
图14是示出图5的存储器单元阵列的示例的示图。参照图5和图14,存储器单元阵列111d可包括多个子阵列SA0至SA7和多个子字线驱动器SWD0至SWD8。多个子阵列SA0至SA7和多个子字线驱动器SWD0至SWD8中的一些的配置与参照图10描述的配置类似,因此,将为避免冗余将省略附加描述。
除了一些子字线驱动器驱动不同的字线,图14的实施例可与图10的实施例类似。例如,在图14的实施例中,第3b子字线驱动器SWD2b可驱动第三子阵列SA2的奇数字线WL1、WL3和WL5,第四子字线驱动器SWD3可驱动第三子阵列SA2和第四子阵列SA3的偶数字线WL0、WL2和WL4,并且第5a子字线驱动器SWD4a可驱动第四子阵列SA3的奇数字线WL1、WL3和WL5。在图14的实施例中,第7b子字线驱动器SWD6b可驱动第七子阵列SA6的奇数字线WL1、WL3和WL5,第八子字线驱动器SWD7可驱动第七子阵列SA6和第八子阵列SA7的偶数字线WL0、WL2和WL4,并且第九子字线驱动器SWD8可驱动第八子阵列SA7的奇数字线WL1、WL3和WL5。
如图10的存储器单元阵列111C中那样,在图14的存储器单元阵列111d中可以以两条数据线为单位发生错误。也就是说,从包括图14的存储器单元阵列111d的存储装置发生的随机位错误的范围可被限制为32位。
图15是示出图5的存储器单元阵列的示例的示图。参照图5和图15,存储器单元阵列111e可包括多个子阵列SA0至SA7和多个子字线驱动器SWD1a、SWD3a、SWD5a和SWD7a。
多个子阵列SA0至SA7可分别与多条数据线DQ0至DQ7对应。多个子字线驱动器SWD1a、SWD3a、SWD5a和SWD7a可被配置为控制与多个子阵列SA0至SA7连接的字线WL0至WL5。
第2a子字线驱动器SWD1a可驱动第一子阵列SA0和第二子阵列SA1的字线WL0至WL5。第4a子字线驱动器SWD3a可驱动第三子阵列SA2和第四子阵列SA3的字线WL0至WL5。第6a子字线驱动器SWD5a可驱动第五子阵列SA4和第六子阵列SA5的字线WL0至WL5。第8a子字线驱动器SWD7a可驱动第七子阵列SA6和第八子阵列SA7的字线WL0至WL5。
在一个实施例中,在多个子字线驱动器SWD1a、SWD3a、SWD5a和SWD7a中的一个子字线驱动器故障的情况下,可以以两条数据线为单位发生错误。也就是说,如在上面的描述中那样,从包括图15的存储器单元阵列111e的存储装置发生的随机位错误的范围可被限制为32位。
如上所述,根据本公开的存储器装置可以以这样的方式配置,使得错误以两条数据线为单位发生(也就是说,存储器装置可被配置为将随机位错误的范围限制为32位)。参照图10、图14和图15描述的存储器单元阵列111c、111d和111e是一些示例,并且本公开不限于此。根据本公开的存储器单元阵列可以以各种形式实现,使得随机位错误的范围被限制为特定范围。
如上所述,根据本公开的实施例,存储器模块可具有UDIMM形状因数。由于根据UDIMM形状因数限制的数据线的数量,被配置为控制具有UDIMM形状因数的传统存储器模块的存储器控制器仅提供单个位纠错功能。然而,根据本公开的实施例,包括在存储器模块中的多个存储器装置中的每个存储器装置可被配置为具有有限范围的随机位错误;在这种情况下,存储器控制器的ECC引擎可被配置为纠正和恢复随机位错误。因此,具有UDIMM形状因数的存储器模块的可靠性可被提高。
在以上实施例中,为了容易地描述本公开的实施例,将存储器模块描述为具有UDIMM形状因数,但是本公开不限于此。例如,根据本公开的存储器模块可以以具有其数量是有限的数据线的各种DIMM形式(诸如,SODIMM)实现。
图16是根据实施例的存储器系统被应用到的计算机系统1000的示图。图16的计算机系统1000基本上可以是移动系统(诸如,便携式通信终端(例如,移动电话)、智能电话、平板个人计算机(PC)、可穿戴装置、医疗保健装置或物联网(IOT)装置)。然而,图16的计算机系统1000不必限于移动系统,并且可以是PC、膝上型计算机、服务器、媒体播放器或汽车装置(例如,导航装置)。
参照图16,计算机系统1000可包括主处理器1100、存储器(例如,1200a和1200b)和存储装置(例如,1300a和1300b))。此外,计算机系统1000可包括图像捕获装置1410、用户输入装置1420、传感器1430、通信装置1440、显示器1450、扬声器1460、电源装置1470和连接接口1480中的至少一者。
主处理器1100可控制计算机系统1000的所有操作,更具体地,可控制包括在计算机系统1000中的其他组件的操作。主处理器1100可被实现为通用处理器、专用处理器或应用处理器。
主处理器1100可包括至少一个CPU核1110,并且还包括被配置为控制存储器1200a和1200b和/或存储装置1300a和1300b的控制器1120。在一些实施例中,主处理器1100还可包括作为用于高速数据运算(诸如,人工智能(AI)数据运算)的专用电路的加速器1130。加速器1130可包括图形处理器(GPU)、神经处理器(NPU)和/或数据处理器(DPU),并且可被实现为与主处理器1100的其他组件物理上分离的芯片。
存储器1200a和1200b可用作计算机系统1000的主存储器装置。尽管存储器1200a和1200b中的每个可包括易失性存储器(诸如,静态随机存取存储器(SRAM)和/或动态RAM(DRAM)),但是存储器1200a和1200b中的每个可包括非易失性存储器(诸如,闪存、相变RAM(PRAM)和/或电阻式RAM(RRAM))。存储器1200a和1200b可与主处理器1100实现在同一封装件中。
在一个实施例中,参照图1至图15描述的存储器模块110可与图16的存储器1200a和1200b中的每个对应,并且参照图1至图15描述的存储器控制器120可以是图16的主处理器1100,或者可包括在主处理器1100中。图16的主处理器1100和存储器1200a和1200b可基于参照图1至图15描述的操作方法来操作。
存储装置1300a和1300b可用作非易失性存储装置,其被配置为无论是否被供电都存储数据,并且具有比存储器1200a和1200b的存储容量大的存储容量。存储装置1300a和1300b可分别包括存储控制器1310a和1310b(STRG CTRL)以及被配置为经由存储器控制器1310a和1310b的控制来存储数据的非易失性存储器(NVM)1320a和1320b。尽管NVM 1320a和1320b可包括具有二维(2D)结构或三维(3D)V-NAND结构的闪存,但是NVM 1320a和1320b可包括其他类型的NVM(例如PRAM和/或RRAM)。
存储装置1300a和1300b可与主处理器1100物理上分离,并且可包括在计算机系统1000中或者可与主处理器1100实现在同一封装件中。此外,存储装置1300a和1300b可具有各种类型的固态装置(SSD)或存储卡,并且通过接口(诸如,下面将描述的连接接口1480)与存储器系统100的其他组件可移除地组合。存储装置1300a和1300b可以是标准协议(诸如,通用闪存(UFS)、嵌入式多媒体卡(eMMC)或非易失性存储器快速(NVMe))被应用到的装置,但不限于此。
图像捕获装置1410可捕获静止图像或运动图像。图像捕获装置1410可包括相机、摄像机和/或网络摄像头。
用户输入装置1420可接收由计算机系统1000的用户输入的各种类型的数据,并且包括触摸板、小键盘、键盘、鼠标和/或麦克风。
传感器1430可检测可从计算机系统1000的外部获得的各种类型的物理量,并将检测的物理量转换为电信号。传感器1430可包括温度传感器、压力传感器、照度传感器、位置传感器、加速度传感器、生物传感器和/或陀螺仪传感器。
通信装置1440可根据各种通信协议在计算机系统1000外部的其他装置之间发送和接收信号。通信装置1440可包括天线、收发机和/或调制解调器。
显示器1450和扬声器1460可用作输出装置,其被配置为向计算机系统1000的用户分别输出视觉信息和听觉信息。
电源装置1470可适当地转换从嵌入在计算机系统1000中的电池(未示出)和/或外部电源供应的电力,并将转换的电力供应给计算机系统1000的每个组件。
连接接口1480可提供计算机系统1000与外部装置之间的连接,该外部装置连接到计算机系统1000并且能够向计算机系统1000发送数据并从计算机系统1000接收数据。连接接口1480可通过使用各种接口方案(诸如,高级技术附件(ATA)、串行ATA(SATA)、外部SATA(e-SATA)、小型计算机系统接口(SCSI)、串行连接SCSI(SAS)、外围组件互连(PCI)、PCI快速(PCIe)、NVMe、IEEE 1394、通用串行总线(USB)接口、安全数字(SD)卡接口、多媒体卡(MMC)接口、eMMC接口、UFS接口、嵌入式UFS(eUFS)接口和紧凑型闪存(CF)卡接口)来实现。
根据本公开,存储器模块可具有UDIMM形状因数。包括在存储器模块中的多个存储器装置中的每个存储器装置可被配置为以两条数据线为单位来确定随机位错误。也就是说,由于多个存储器装置中的一个存储器装置的故障而发生的随机位错误被限制为32位。存储器控制器的ECC引擎可包括被配置为纠正和恢复32位随机错误的ECC引擎。也就是说,由于数据线数量的限制,传统UDIMM仅支持单个位纠错。然而,根据本公开,由于在每个存储器装置中发生的随机位错误的范围是有限的,所以随机位错误的纠正和恢复是可行的。因此,提供了一种能够提高可靠性的存储器模块、存储器系统和存储器控制器的操作方法。
虽然已参照本公开的实施例描述了本公开,但是对于本领域普通技术人员将清楚的是,在不脱离如所附权利要求中阐述的本公开的精神和范围的情况下,可对本公开进行各种改变和修改。

Claims (20)

1.一种存储器系统,包括:
存储器模块,包括第一存储器装置、第二存储器装置、第三存储器装置、第四存储器装置和第一纠错码装置;以及
存储器控制器,被配置为:通过8条数据线与第一存储器装置、第二存储器装置、第三存储器装置和第四存储器装置中的每个存储器装置交换第一用户数据,并且通过4条数据线与第一纠错码装置交换第一纠错码数据,
其中,存储器控制器包括:
纠错码引擎,被配置为:基于第一纠错码数据来纠正第一用户数据的32位随机错误。
2.根据权利要求1所述的存储器系统,其中,第一纠错码数据包括第一检测数据和第一纠正数据,并且
其中,纠错码引擎被配置为:通过以32位为单位对第一用户数据执行纠错码操作来生成第一检测数据和第一纠正数据。
3.根据权利要求2所述的存储器系统,其中,通过对第一用户数据执行32位循环冗余校验计算来生成第一检测数据,并且
其中,通过对第一用户数据执行偶校验计算来生成第一纠正数据。
4.根据权利要求2所述的存储器系统,其中,纠错码引擎被配置为:
基于从存储器模块读取的第一用户数据生成第二检测数据;以及
当第二检测数据与从存储器模块读取的第一检测数据不同时,基于从存储器模块读取的第一纠正数据来纠正第一用户数据的32位随机错误。
5.根据权利要求1至权利要求4中的任意一项所述的存储器系统,其中,第一存储器装置、第二存储器装置、第三存储器装置和第四存储器装置中的每个存储器装置包括:
分别与第一数据线、第二数据线、第三数据线、第四数据线、第五数据线、第六数据线、第七数据线和第八数据线对应的第一子阵列、第二子阵列、第三子阵列、第四子阵列、第五子阵列、第六子阵列、第七子阵列和第八子阵列;以及
多个子字线驱动器,被配置为:控制与第一子阵列至第八子阵列连接的多条字线。
6.根据权利要求5所述的存储器系统,其中,在所述多个子字线驱动器中,多个第一子字线驱动器、多个第二子字线驱动器、多个第三子字线驱动器、多个第四子字线驱动器在物理上彼此分离,
所述多个第一子字线驱动器被配置为:控制与第一子阵列和第二子阵列连接的字线,
所述多个第二子字线驱动器被配置为:控制与第三子阵列和第四子阵列连接的字线,
所述多个第三子字线驱动器被配置为:控制与第五子阵列和第六子阵列连接的字线,以及
所述多个第四子字线驱动器被配置为:控制与第七子阵列和第八子阵列连接的字线。
7.根据权利要求6所述的存储器系统,其中,32位随机错误由于第一存储器装置至第四存储器装置中的一个存储器装置的故障而发生。
8.根据权利要求7所述的存储器系统,其中,当第一存储器装置至第四存储器装置中的一个存储器装置故障时,在从与第一存储器装置至第四存储器装置中的故障的一个存储器装置连接的第一数据线至第八数据线中的第一数据线和第二数据线、第三数据线和第四数据线、第五数据线和第六数据线、或者第七数据线和第八数据线输出的位中发生32位随机错误。
9.根据权利要求1所述的存储器系统,其中,第一用户数据的大小是64字节,并且第一纠错码数据的大小是8字节。
10.根据权利要求1所述的存储器系统,其中,存储器模块具有无缓冲双列直插式存储器模块或小外形双列直插式存储器模块的形状因数。
11.一种存储器控制器的操作方法,所述存储器控制器被配置为控制具有无缓冲双列直插式存储器模块的形状因数的存储器模块,所述方法包括:
基于用户数据生成检测数据和纠正数据;
将用户数据、检测数据和纠正数据写入存储器模块;
从存储器模块读取用户数据、检测数据和纠正数据;
基于检测数据和纠正数据来纠正用户数据的随机位错误;以及
输出已纠正的用户数据。
12.根据权利要求11所述的方法,其中,存储器模块包括多个存储器装置和纠错码装置,并且
其中,所述多个存储器装置通过“a×N”条数据线与存储器控制器连接,并且纠错码装置通过“M”条数据线与存储器控制器连接,“a”指示所述多个存储器装置的数量并且N是大于1的自然数,M是小于N的正整数。
13.根据权利要求12所述的方法,其中,将用户数据、检测数据和纠正数据写入存储器模块的步骤包括:
将写入命令发送给存储器模块;以及
通过与所述多个存储器装置连接的“a×N”条数据线发送用户数据,并且通过与纠错码装置连接的“M”条数据线发送检测数据和纠正数据。
14.根据权利要求13所述的方法,其中“a”为4,“N”为8,并且“M”为4。
15.根据权利要求13所述的方法,其中,从存储器模块读取用户数据、检测数据和纠正数据的步骤包括:
将读取命令发送给存储器模块;以及
通过与所述多个存储器装置连接的“a×N”条数据线接收用户数据,并且通过与纠错码装置连接的“M”条数据线接收检测数据和纠正数据。
16.根据权利要求15所述的方法,其中,基于检测数据和纠正数据来纠正用户数据的随机位错误的步骤包括:
基于接收的用户数据生成检测数据;以及
当接收的检测数据和生成的检测数据不匹配时,基于纠正数据来纠正接收的用户数据的随机位错误。
17.根据权利要求16所述的方法,其中,通过对用户数据执行偶校验计算来生成纠正数据,并且
其中,通过基于纠正数据对接收的用户数据执行偶校验计算来纠正随机位错误。
18.一种具有无缓冲双列直插式存储器模块的形状因数的存储器模块,包括:
第一存储器装置,通过第一数据线、第二数据线、第三数据线、第四数据线、第五数据线、第六数据线、第七数据线和第八数据线与外部存储器控制器连接,
其中,第一存储器装置包括:
分别与第一数据线、第二数据线、第三数据线、第四数据线、第五数据线、第六数据线、第七数据线和第八数据线对应的第一子阵列、第二子阵列、第三子阵列、第四子阵列、第五子阵列、第六子阵列、第七子阵列和第八子阵列;
多个第一子字线驱动器,被配置为:控制与第一子阵列和第二子阵列连接的字线;
多个第二子字线驱动器,被配置为:控制与第三子阵列和第四子阵列连接的字线;
多个第三子字线驱动器,被配置为:控制与第五子阵列和第六子阵列连接的字线;以及
多个第四子字线驱动器,被配置为:控制与第七子阵列和第八子阵列连接的字线,
其中,所述多个第一子字线驱动器、所述多个第二子字线驱动器、所述多个第三子字线驱动器和所述多个第四子字线驱动器在物理上彼此分离。
19.根据权利要求18所述的存储器模块,还包括:
第一纠错码装置,通过第一校验位线、第二校验位线、第三校验位线和第四校验位线与外部存储器控制器连接,第一纠错码装置被配置为存储检测数据和纠正数据,
其中,检测数据和纠正数据用于纠正从第一存储装置输出的用户数据的随机位错误。
20.根据权利要求19所述的存储器模块,其中,当所述多个第一子字线驱动器中的至少一个故障时,在通过第一数据线和第二数据线输出的位中发生随机位错误,
其中,当所述多个第二子字线驱动器中的至少一个故障时,在通过第三数据线和第四数据线输出的位中发生随机位错误,
其中,当所述多个第三子字线驱动器中的至少一个故障时,在通过第五数据线和第六数据线输出的位中发生随机位错误,并且
其中,当所述多个第四子字线驱动器中的至少一个故障时,在通过第七数据线和第八数据线输出的位中发生随机位错误。
CN202211241025.1A 2021-10-12 2022-10-11 存储器模块、存储器系统和存储器控制器的操作方法 Pending CN115966243A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2021-0135051 2021-10-12
KR1020210135051A KR20230052346A (ko) 2021-10-12 2021-10-12 메모리 모듈, 메모리 시스템, 및 메모리 컨트롤러의 동작 방법

Publications (1)

Publication Number Publication Date
CN115966243A true CN115966243A (zh) 2023-04-14

Family

ID=85797960

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211241025.1A Pending CN115966243A (zh) 2021-10-12 2022-10-11 存储器模块、存储器系统和存储器控制器的操作方法

Country Status (3)

Country Link
US (1) US20230113615A1 (zh)
KR (1) KR20230052346A (zh)
CN (1) CN115966243A (zh)

Also Published As

Publication number Publication date
KR20230052346A (ko) 2023-04-20
US20230113615A1 (en) 2023-04-13

Similar Documents

Publication Publication Date Title
US10404286B2 (en) Memory modules, memory systems including the same and methods of operating memory systems
US10846171B2 (en) Error correction code decoders, semiconductor memory devices and memory systems
KR20190090472A (ko) 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 반도체 메모리 장치의 동작 방법
CN111415699A (zh) 数据存储装置及其操作方法
US10162703B2 (en) Methods of correcting data errors and semiconductor devices used therein
US10579472B2 (en) Semiconductor devices
US11614869B2 (en) Controller for preventing uncorrectable error in memory device, memory device having the same, and operating method thereof
CN110942798A (zh) 半导体存储器件、存储系统及操作半导体存储器件的方法
US20210319813A1 (en) Methods, semiconductor devices, and semiconductor systems
US10261860B2 (en) Semiconductor systems
US10917111B2 (en) Error correction code unit and error correction method
US20230163786A1 (en) Error correction code circuit, memory device including error correction code circuit, and operation method of error correction code circuit
US10460826B2 (en) Test methods of semiconductor devices and semiconductor systems used therein
CN115732016A (zh) 存储器装置、存储器控制器和纠正数据错误的方法
EP4167091B1 (en) Memory module, memory system, and operation method of memory controller
CN115966243A (zh) 存储器模块、存储器系统和存储器控制器的操作方法
KR20180055148A (ko) 반도체장치 및 반도체시스템
US10181863B2 (en) Semiconductor devices and semiconductor systems
US10203891B2 (en) Data storage device and data processing system
US10360105B2 (en) Semiconductor devices and semiconductor systems including the same
KR20180027234A (ko) 반도체장치
US10014073B2 (en) Semiconductor devices
CN115878367A (zh) 存储器模块的操作方法、存储器控制器的操作方法
CN116069548A (zh) 存储器装置、存储器模块和存储器控制器的操作方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication