CN112540867B - 存储模块以及存储控制器的纠错方法 - Google Patents

存储模块以及存储控制器的纠错方法 Download PDF

Info

Publication number
CN112540867B
CN112540867B CN202010796384.8A CN202010796384A CN112540867B CN 112540867 B CN112540867 B CN 112540867B CN 202010796384 A CN202010796384 A CN 202010796384A CN 112540867 B CN112540867 B CN 112540867B
Authority
CN
China
Prior art keywords
memory
address
chip
data
error correction
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
Application number
CN202010796384.8A
Other languages
English (en)
Other versions
CN112540867A (zh
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 CN112540867A publication Critical patent/CN112540867A/zh
Application granted granted Critical
Publication of CN112540867B publication Critical patent/CN112540867B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • 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
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/08Clock generators with changeable or programmable clock frequency
    • 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/0703Error 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/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • 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/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
    • 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/1072Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in multilevel memories
    • 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/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1679Temporal synchronisation or re-synchronisation of redundant processing components at clock signal level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0615Address space extension
    • G06F12/0623Address space extension for memory modules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1004Compatibility, e.g. with legacy hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7204Capacity control, e.g. partitioning, end-of-life degradation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices

Landscapes

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

Abstract

提供一种存储模块以及存储控制器的纠错方法。所述存储模块包括:第一存储芯片,均具有第一输入/输出宽度并且被配置为存储数据;第二存储芯片,具有第二输入/输出宽度并且被配置为存储用于纠正所述数据中的错误的纠错码;以及驱动器电路,被配置为从存储控制器接收时钟信号、命令和地址,并向所述第一存储芯片和所述第二存储芯片发送所述时钟信号、所述命令和所述地址。每个所述第一存储芯片的地址深度不同于所述第二存储芯片的地址深度。

Description

存储模块以及存储控制器的纠错方法
相关申请的交叉引用
本申请要求于2019年9月20日在韩国知识产权局提交的韩国专利申请No.10-2019-0116041的优先权权益,通过引用将该申请的全部内容合并于此。
技术领域
本公开涉及一种存储模块、控制该存储模块的存储控制器的纠错方法以及包括该存储模块的计算***。
背景技术
数据可以与纠错码(ECC)一起被存储在存储***的存储器中。如果以后数据出现一个或更多个错误,则可以使用相应的ECC来潜在地纠正错误。ECC的示例包括分组码(block code)和卷积码。
存储***的存储控制器或其他逻辑可以使用一个或更多个ECC对数据执行错误检测并纠正数据。位于裸片(die)内的逻辑可以被称为裸片上ECC电路(on-die ECCcircuit)。裸片上ECC电路的通用存储器架构包括4位宽的接口(即,x4接口)、8位宽的接口(即,x8接口)或16位宽的接口(即,x16接口)。实现ECC所需的ECC位的设计和数量主要由存储器架构决定。
发明内容
本发明构思的示例性实施例提供一种被配置为提高纠错能力同时防止性能下降的存储模块、被配置为控制该存储模块的存储控制器的纠错方法、以及包括该存储模块的计算***。
根据本发明构思的示例性实施例,一种存储模块包括:第一存储芯片,均具有第一输入/输出宽度并且被配置为存储数据;第二存储芯片,具有第二输入/输出宽度并且被配置为存储用于纠正所述数据中的错误的纠错码;以及驱动器电路,被配置为从存储控制器接收时钟信号、命令和地址,并向所述第一存储芯片和所述第二存储芯片发送所述时钟信号、所述命令和所述地址。每个所述第一存储芯片的地址深度不同于所述第二存储芯片的地址深度。
根据本发明构思的示例性实施例,一种存储模块包括:第一子通道;第二子通道;以及驱动器电路,被配置为从存储控制器接收时钟信号、第一命令和第二命令以及地址,并向所述第一子通道发送所述时钟信号、所述第一命令和所述地址,向所述第二子通道发送所述时钟信号、所述第二命令和所述地址。所述第一子通道和所述第二子通道均包括:第一存储芯片,均具有第一输入/输出宽度并且被配置为存储数据;以及第二存储芯片,具有小于所述第一输入/输出宽度的第二输入/输出宽度并且被配置为存储用于纠正所述数据中的错误的纠错码。每个所述第一存储芯片的地址深度不同于所述第二存储芯片的地址深度。
根据本发明构思的示例性实施例,提供了一种存储控制器的纠错方法。所述存储控制器被配置为控制存储模块,所述存储模块包括:第一存储芯片,均具有第一输入/输出宽度并且被配置为存储数据;以及至少一个第二存储芯片,具有第二输入/输出宽度并且被配置为存储用于纠正所述数据中的错误的纠错码。所述纠错方法包括:确定从所述存储模块接收到的所述数据是否包括可纠正的错误;确定是否需要物理替换存储所述数据的存储单元;当所述错误是可纠正的并且需要所述物理替换时,选择第一纠错模式;当所述错误是可纠正的并且不需要所述物理替换时,选择第二纠错模式;以及根据所选择的纠错模式对所述数据执行纠错操作。
根据本发明构思的示例性实施例,提供了一种计算***,包括:至少一个存储模块、至少一个非易失性存储模块以及至少一个处理器,所述至少一个处理器被配置为控制所述至少一个存储模块和所述至少一个非易失性存储模块。所述至少一个存储模块包括:至少一个第一存储芯片,具有第一输入/输出宽度并且被配置为存储数据;以及至少一个第二存储芯片,具有与所述第一输入/输出宽度不同的第二输入/输出宽度并且被配置为存储用于纠正所述数据中的错误的纠错码。
附图说明
通过以下结合附图的详细描述,将更清楚地理解本公开的示例性实施例,在附图中:
图1示出了根据本发明构思的示例性实施例的存储***10;
图2A和图2B示出了均包括具有相同输入/输出宽度的存储芯片的通用存储模块;
图3示出了根据本发明构思的示例性实施例的存储模块100;
图4示出了根据本发明构思的示例性实施例的***通道CH;
图5A示出了根据示例性实施例的存储模块100中的存储芯片的地址深度,图5B示出了根据本发明构思的示例性实施例的容纳存储模块100的存储芯片的寻址表;
图6示出了根据本发明构思的示例性实施例的存储模块100根据纠错模式的数据输出;
图7示出了根据本发明构思的示例性实施例的存储模块100a;
图8示出了根据本发明构思的示例性实施例的存储***20;
图9示出了根据本发明构思的示例性实施例的存储***30;
图10是示出了根据本发明构思的示例性实施例的存储***的纠错操作的流程图;
图11是示出了根据本发明构思的示例性实施例的存储***100的第一纠错操作的流程图;
图12是示出了根据本发明构思的示例性实施例的存储***100的第二纠错操作的流程图;
图13是示出了根据本发明构思的示例性实施例的存储***的纠错操作的流程图;
图14是根据本发明构思的示例性实施例的存储芯片的框图;
图15示出了根据本发明构思的示例性实施例的存储芯片2000;
图16示出了根据本发明构思的示例性实施例的计算***3000;以及
图17示出了根据本发明构思的示例性实施例的服务器设备4000。
具体实施方式
在下文中,将参照附图描述本发明构思的示例性实施例。
根据本发明构思的示例性实施例的存储***包括存储模块,该存储模块包括具有彼此不同的输入和输出宽度的第一存储芯片和第二存储芯片。第一存储芯片和第二存储芯片可以具有分开的地址控制,以扩展纠错码(ECC)范围,而不会导致性能下降。
图1示出了根据本发明构思的示例性实施例的存储***10。参照图1,存储***10可以包括存储模块100和存储控制器200。
存储模块100可以临时存储处理器处理后的数据或要由处理器处理的数据。存储模块100可以用作计算***中的操作存储器、工作存储器或缓冲存储器。存储模块100包括第一存储芯片110、至少一个第二存储芯片120和寄存时钟驱动器(RCD)130(例如,驱动电路)。
在示例性实施例中,存储模块100可以被实现为单列直插式存储模块(SIMM)、双列直插式存储模块(DIMM)、小外型DIMM(SODIMM)、无缓冲DIMM(UDDIMM)、全缓冲DIMM(FBDIMM)、区块缓冲DIMM(Rank-Buffered DIMM,RBDIMM)、小型DIMM、微型DIMM、寄存DIMM(RDIMM)或减载DIMM(LRDIMM)。
每个第一存储芯片110可以被实现为存储从存储控制器200发送的数据。在示例性实施例中,每个第一存储芯片110可以是易失性存储器,例如,动态随机存取存储器(DRAM)、同步DRAM(SDRAM)、双倍数据速率SDRAM(DDR SDRAM)、低功耗双倍数据速率SDRAM(LPDDRSDRAM)、图形双倍数据速率SDRAM(GDDR SDRAM)、Rambus DRAM(RDRAM)或静态RAM(SRAM)。在另一实施例中,每个第一存储芯片110可以是非易失性存储器,例如,相变RAM(PRAM)、磁阻RAM(MRAM)、电阻RAM(ReRAM)、铁电RAM(FRAM)或闪存。在示例性实施例中,每个第一存储芯片110可以被实现为根据诸如双倍数据速率(DDR)、DDR2、DDR3、DDR4和DDR5的各种标准的DRAM芯片。在示例性实施例中,每个第一存储芯片110被实现为通过n个数据通道DQ[1:n]输入和输出数据,其中n是大于或等于2的正整数。
第二存储芯片120可以被实现为存储用于纠正存储在第一存储芯片110中的数据的错误的奇偶校验位(例如,奇偶校验数据)。在示例性实施例中,第二存储芯片120可以是诸如DRAM、SDRAM、DDR SDRAM、LPDDR SDRAM、GDDR SDRAM、RDRAM或SRAM的易失性存储器。在另一示例性实施例中,第二存储芯片120可以是诸如PRAM、MRAM、ReRAM、FRAM或闪存的非易失性存储器。在示例性实施例中,第二存储芯片120可以被实现为根据诸如DDR、DDR2、DDR3、DDR4和DDR5的各种标准的DRAM芯片。在示例性实施例中,第二存储芯片120被实现为通过m个数据通道DQ[1:m]输入和输出数据,其中m是小于n的正整数。
在示例性实施例中,每个第一存储芯片110的存储容量和第二存储芯片120的存储容量彼此相等。
寄存时钟驱动器(RDC)130可以被实现为从存储控制器200接收命令CMD、地址ADD和时钟信号CK。RCD 130可以向第一存储芯片110和第二存储芯片120发送接收到的命令CMD、接收到的地址ADD和接收到的时钟信号CK。
尽管未在图1中示出,但是存储模块100还可以包括串行存在检测(SPD)芯片。SPD芯片可以被实现为存储关于存储模块100的特性的信息。在示例性实施例中,SPD芯片可以存储诸如存储模块100的模块类型、操作环境、线路布置、模块配置和存储容量的存储模块信息。在示例性实施例中,SPD芯片可以包括可编程只读存储器,例如,电可擦除可编程只读存储器(EEPROM)。
存储控制器200可以被实现为通过通道向存储模块100发送命令/地址CMD/ADD、时钟信号CK、控制信号、数据DQ和数据选通信号DQS,以及通过通道从存储模块100接收命令/地址CMD/ADD、时钟信号CK、控制信号、数据DQ和数据选通信号DQS。在示例性实施例中,存储控制器200控制从存储模块100读取数据DQ以及将数据DQ写入存储模块100。在示例性实施例中,存储控制器200向存储模块100提供命令/地址CMD/ADD和控制信号,并且可以在对应于命令/地址CMD/ADD的写入或读取操作中,基于控制信号控制向存储芯片当中的要被访问的存储芯片发送数据DQ或从要被访问的存储芯片接收数据DQ。例如,可以响应于写入命令的CMD执行写入操作,并且可以响应于读取命令的CMD执行读取操作。
在示例性实施例中,存储控制器200连接到诸如处理器的外部主机。例如,存储控制器200可以通过诸如以下各种接口协议中的至少一种接口协议与外部主机通信:通用串行总线(USB)、多媒体卡(MMC)、并行连接接口(PCI)、快速并行连接接口(PCIe)、高级技术附件(ATA)、串行ATA、并行ATA、小型计算机***接口(SCSI)、串行连接的SCSI(SAS)、增强型小型设备接口(ESDI)或集成驱动电子设备(IDE)。
在示例性实施例中,存储控制器200可以被配置为额外的芯片或者可以与存储模块100集成在一起。例如,存储控制器200可以被实现在母板上并且可以被实现为包括在微处理器中的集成存储控制器(IMC)。另外,存储控制器200可以被设置在输入/输出集线器中,并且包括存储控制器200的输入/输出集线器可以被称为存储控制器集线器(MCH)。
存储控制器200包括用于执行错误检测和纠正操作的ECC引擎210(例如,电路)。
ECC引擎210可以使用奇偶校验位、循环冗余校验码(CRC Check)、校验和校验(Checksum Check)和汉明码中的至少一种来检测错误并纠正检测到的错误。在示例性实施例中,ECC引擎210可以使用诸如x4单设备数据纠正(SDDC)、x8单比特纠错和双比特错误检测(SECDED)或Lockstep x8SDDC的纠正方案来纠正多个存储芯片的错误。
在示例性实施例中,ECC引擎210在第一纠错模式和第二纠错模式中的一种模式下进行操作。第一纠错模式是软纠错模式,第二纠错模式是硬纠错模式。在软纠错模式下,使用第二存储芯片120的m个奇偶校验位来纠正第一存储芯片110的数据。在硬纠错模式下,使用第二存储芯片120的2m个奇偶校验位来纠正第一存储芯片110的数据。
在示例性实施例中,ECC引擎210确定在第一纠错模式下对于第一存储芯片110的数据是否可以进行纠错,并且当确定可以进行纠错时(例如,当确定错误可纠正时)执行软纠错操作。在示例性实施例中,当错误是可纠正的但是需要物理替换(冗余单元替换)时,ECC引擎210在第二纠错模式下对第一存储芯片110的数据执行硬纠错操作。例如,如果数据被存储在已经被确定为不可靠的原始存储单元中,则在数据被纠正之后,可以将其存储在冗余单元中。在示例性实施例中,对逻辑地址映射到原始存储单元的物理地址的映射表进行更新,以将该逻辑地址映射到冗余存储单元的物理地址。
在示例性实施例中,ECC引擎210根据使用只有ECC的第二存储芯片120的至少一个地址选择的纠错模式,从第二存储芯片120读取奇偶校验位。至少一个地址可以是行地址、列地址、存储体(bank)地址或存储体组(bank group,BG)地址。
通用存储***包括具有相同输入和输出宽度的存储芯片,以在由存储模块限定的ECC纠错范围内操作。另一方面,根据本发明构思的示例性实施例的存储***10将存储模块中的第一存储芯片110的地址控制和第二存储芯片120的地址控制分开,其中,存储数据的第一存储芯片120和存储数据的奇偶校验位的第二存储芯片12被配置为具有彼此不同的输入/输出宽度,以根据预定方案来扩展ECC纠错范围宽度。
图2A和图2B示出了均包括具有相同输入/输出宽度的存储芯片的通用存储模块。参照图2A和图2B,子通道A和B均可以输入和输出x8 ECC和x32 DATA(码字)。通过具有相同输入/输出宽度的x4存储芯片来实现图2A中所示的x8 ECC和x32 DATA的配置。该存储模块包括用于x8 ECC的两个x4存储芯片和用于x32 DATA的八个x4存储芯片。通过具有相同输入/输出宽度的x8存储芯片来实现图2B中所示的x8 ECC和x32 DATA的配置。该存储模块包括用于x8 ECC的一个x8存储芯片和用于x32 DATA的四个x8存储芯片。
图2A中所示的存储模块可以每个子通道最多执行x4数据线路(data lane)纠正。图2B中所示的存储模块可以在x8数据线路的纠正期间同时操作两个区块(rank),从而导致由于突发斩波(锁步)而引起的性能下降。例如,当在DDR5 RAM中主流DRAM密度增加到16Gb时,由于存储体数量减少了一半,因此8Gb配置可能会导致性能下降。均具有16Gb基本容量的基于x4的DIMM和基于x8的DIMM可能难以配置低容量(例如8Gb或16Gb)。x4DIMM具有32Gb的最小容量,x8 DIMM具有16Gb的最小容量。因此,可以在配置最小容量时使用单个区块。为此,区块交叉存取(rank interleave)可能不可行,因此,可能出现性能下降。
图3示出了根据本发明构思的示例性实施例的存储模块100。参照图3,存储模块(DIMM)100被实现为使用诸如具有彼此不同的输入/输出宽度的x8 DRAM和x16 DRAM的存储芯片分别向两个子通道SCH-A和SCH-B输入和输出x8 ECC和x32 DATA。
第一子通道SCH-A包括两个第一存储芯片111A和112A以及一个第二存储芯片120A。
第一存储芯片111A和112A均可以被实现为存储数据。在示例性实施例中,第一存储芯片111A和112A均被实现为具有x16的第一输入/输出宽度。在示例性实施例中,第二存储芯片120A被实现为具有x8的第二输入/输出宽度。第二输入/输出宽度x8是第一输入/输出宽度x16的一半。然而,应当理解,第二输入/输出宽度不限于此。例如,响应于时钟信号CK的每个时钟脉冲,第一存储芯片111A能够输出16位,而第二存储芯片120A输出8位。
在示例性实施例中,第一存储芯片111A和112A以及第二存储芯片120A均具有相同的存储容量。
第二子通道SCH-B包括两个第一存储芯片111B和112B以及一个第二存储芯片120B。第二子通道SCH-B可以具有与第一子通道SCH-A相同的配置。
图4示出了根据本发明构思的示例性实施例的***通道CH。参照图4,***通道CH包括第一子通道SCH-A和第二子通道SCH-B。第一子通道SCH-A和第二子通道SCH-B可以共享数据线路DQ,并且可以依据命令(读取命令和写入命令)CMD_A和CMD_B独立地执行通道操作。
图5A示出了根据本发明构思的示例性实施例的存储模块100中的存储芯片的地址深度,图5B示出了根据本发明构思的示例性实施例的容纳存储模块100的存储芯片的寻址表。
参照图5A,数据芯片(第一存储芯片)和ECC芯片(第二存储芯片)都接收地址ADD的k+1个地址位ADD1至ADDk+1。通常,芯片大小(存储容量)由输入/输出宽度(DQ引脚数)和地址深度决定。术语“地址深度”是指为了确定芯片大小而计数(或关注)的地址位数(循环计数)。例如,地址深度可以指考虑到的地址位数或未被忽略的地址位数。
在本发明构思的示例性实施例中,数据芯片的地址深度小于ECC芯片的地址深度。尽管在存储模块100中数据芯片和ECC芯片都接收相同数目的地址位,但是数据芯片不对接收到的地址位中的至少一个地址位进行计数(或不考虑接收到的地址位中的至少一个地址位)。
例如,如图5A所示,数据芯片不对接收到的地址位当中的单个地址位ADDj+1进行计数(或不考虑单个地址位ADDj+1)。例如,数据芯片忽略接收到的地址位中的一些地址位。因此,数据芯片的地址深度为k,而ECC芯片的地址深度为k+1。例如,通过被计数的k个地址位访问数据芯片,通过被计数的k+1个地址位访问ECC芯片。在示例性实施例中,地址包括k+1个地址位,使用第一至第k+1地址位ADD1至ADDk+1来访问ECC芯片,使用第一至第j地址位ADD1至ADDj以及第j+2至第k+1地址位ADDj+2至ADDk+1来访问数据芯片。
在示例性实施例中,被ECC芯片计数的地址位数大于被数据芯片计数的地址位数。例如,ECC芯片比数据芯片考虑更多的地址位。在示例性实施例中,被ECC芯片计数的存储体组地址的位数大于被数据芯片计数的存储体组地址的位数。在示例性实施例中,ECC芯片比数据芯片考虑更多的存储体组地址位。
图5B示出了构成16Gb的存储容量的存储芯片的地址配置。如图5B所示,x8存储芯片(第二存储芯片)和x16存储芯片(第一存储芯片)在存在或不存在存储体组地址的最低有效位BG2以及存储体的数目方面是不同的。
在本发明构思的示例性实施例中,第一存储芯片111A、112A、111B、112B(参见图3)均可以通过包括2位存储体组地址、2位存储体地址、16位行地址和10位列地址的寻址表来访问。
在示例性实施例中,第二存储芯片120A和120B(参见图3)均可以通过包括3位存储体组地址、2位存储体地址、16位行地址和10位列地址的寻址表来访问。
在示例性实施例中,存储体组地址的最低有效位BG2仅在x8存储芯片中被激活。在示例性实施例中,x16存储芯片不对存储体组地址的最低有效位BG2进行计数。例如,x16存储芯片可以忽略存储体组地址的最低有效位BG2。当在纠错操作期间存储体组地址的最低有效位BG2为低电平时,根据示例性实施例的存储***10确保x8 ECC线路,当在纠错操作期间存储体组地址的最低有效位BG2从低电平L转换为高电平H时,根据示例性实施例的存储***10确保x16 ECC线路。
图6示出了根据本发明构思的示例性实施例的存储模块100根据纠错模式的数据输出。
在示例性实施例中,当存储体组地址的最低有效位BG2为低电平L时,执行根据第一纠错模式的读取操作。在第一纠错模式下,可以响应于读取命令Read分别从x8存储芯片和x16存储芯片输出x8 ECC位和x16 DATA位。
当存储体组地址的最低有效位BG2的信号为低电平L时,可以响应于第一读取命令Read1分别从x8存储芯片和x16存储芯片输出x8 ECC位和x16DATA位。在示例性实施例中,当存储体组地址的最低有效位BG2从低电平L转变为高电平H时,执行根据第二纠错模式的读取操作。响应于第二读取命令Read2,可以分别从x8存储芯片和x16存储芯片输出x8 ECC位和x16DATA位。因此,可以基于第一读取命令Read1和第二读取命令Read2从x8存储芯片输出x16 ECC(即,x8*2ECC)线路的奇偶校验位。
在示例性实施例中,x8存储芯片(第二存储芯片)可以使用有缺陷的存储芯片(采用半个芯片)来将存储体组地址的最低有效位BG2固定为低电平L或将存储体组地址的最低有效位BG2固定为高电平H。
存储模块100包括具有相同存储容量(例如,16Gb)的异构的第一存储芯片和第二存储芯片,如图3至图6所示。第一存储芯片具有x16输入/输出宽度,第二存储芯片具有x8输入/输出宽度。然而,根据本公开的实施例的存储模块的配置不限于此。具有相同存储容量的异构的存储芯片可以以各种组合来配置。
图7示出了根据本发明构思的示例性实施例的存储模块100a。参照图7,存储模块100a的每个子通道包括用于x8 ECC输入/输出的两个x4存储芯片和用于x32 DATA输入/输出的四个x8存储芯片。例如,位于左侧的第一x8ECC和第一x32 DATA可以对应于第一子通道,位于右侧的第二x8 ECC和第二x32 DATA可以对应于第二子通道。
根据示例性实施例的存储***可以通过多个***通道连接在存储控制器与存储模块之间。
图8示出了根据本发明构思的示例性实施例的存储***20。参照图8,与图1所示的存储***10相比,存储***20包括通过两个***通道CH1和CH2连接的存储模块100b和存储控制器200b。在示例性实施例中,存储模块100b中的分别与***通道CH1和CH2连接的部分均包括存储数据的第一存储芯片DRAM和存储用于纠正数据的错误的奇偶校验位的第二存储芯片DRAM(ECC)。在示例性实施例中,每个第一存储芯片DRAM发送和接收n个数据信号DQ[1:n],第二存储芯片DRAM(ECC)发送和接收m个数据信号DQ[1:m]。例如,n个数据信号可以对应于常规数据,m个数据信号可以对应于用于纠正常规数据的奇偶校验位或ECC数据。
在示例性实施例中,第一存储芯片和第二存储芯片具有相同的存储容量并且具有彼此不同的地址深度。存储芯片的地址深度可以根据不同的可靠性要求而不同。
存储控制器200b可以将第一存储芯片的存储体组地址的控制和第二存储芯片的存储体组地址的控制分开,以扩展纠错性能。
在图1至图8中,存储***在具有相同存储容量的异构的存储芯片中使用不同的地址深度来扩展纠错性能。然而,根据示例性实施例的存储***的纠错性能的扩展不限于此。例如,可以通过改变ECC输入和输出线路的宽度来实现纠错性能的扩展。
图9示出了根据本发明构思的示例性实施例的存储***30。参照图9,与图8所示的存储***20相比,存储***30包括用于纠正各个***通道CH1和CH2中的错误的两个第二存储芯片DRAM(ECC)。ECC引擎(例如,控制电路)根据纠错模式确定是通过m个ECC输入/输出线路(第一ECC输入/输出线路)接收用于纠错的奇偶校验位,还是通过2m个ECC输入/输出线路(均包括m个ECC输入/输出线路的第一和第二ECC输入/输出线路)接收用于纠错的奇偶校验位。
根据示例性实施例的存储模块30的存储控制器200c能够根据不同的性能和可靠性要求改变用于纠错的ECC输入/输出线路的宽度。
图10是示出了根据本发明构思的示例性实施例的存储***的纠错操作的流程图。参照图1至图10,可以如下面的存储***10的操作方法那样执行纠错方法。存储控制器200(参见图1)确定错误是否可纠正,并且在错误可纠正时确定是否需要物理替换存储芯片(S110)。当错误是可纠正的并且需要物理替换时,存储控制器200改变ECC模式(S120)。例如,存储控制器200可以在正常模式下以第一纠错模式操作,并且可以在需要物理替换时以第二纠错模式操作。物理替换是指利用冗余单元替换对应于地址的存储单元。例如,如果具有可纠正错误的数据存储在变得不可靠的存储单元中,则可能需要物理替换。在第二纠错模式下,从地址深度大于存储芯片的地址深度的ECC芯片接收额外的奇偶校验位。
图11是示出了根据本发明构思的示例性实施例的存储***100的第一纠错操作的流程图。参照图1和图11,可以如下执行第一纠错操作。存储控制器200通过第一线路从第一存储芯片110接收数据(S210)。存储控制器200通过第二线路从第二存储芯片120接收ECC数据(奇偶校验位)(S220)。存储控制器200使用ECC数据纠正接收到的数据的错误(S230)。例如,存储控制器使用ECC数据对接收到的数据执行纠错操作。
图12是示出了根据本发明构思的示例性实施例的存储***100的第二纠错操作的流程图。参照图1和图12,可以如下执行第二纠错操作。
在第一读取时段内,存储控制器200通过第二线路从第二存储芯片120接收第一ECC数据(奇偶校验位)(S310)。在第二读取时段内,存储控制器200通过第二线路从第二存储芯片120接收第二ECC数据(奇偶校验位)(S320)。在示例性实施例中,第二读取时段发生在第一读取时段之后。在第一读取时段或第二读取时段内,存储控制器200通过第一线路接收数据(S330)。存储控制器200使用第一ECC数据和第二ECC数据纠正接收到的数据的错误(S340)。因此,可以确保数据的可靠性。然后,存储控制器200可以可选地控制第一存储芯片110以利用冗余单元替换经历了第二纠错操作的存储单元(S350)。
图13是示出了根据本发明构思的示例性实施例的存储***的纠错操作的流程图。现在将参照图9和图13来描述存储***的纠错。
存储控制器200c通过数据线路从第一存储芯片接收数据,通过第一ECC线路从第二存储芯片接收第一ECC数据(S410)。例如,存储控制器200c可以从存储模块100c的由被标记为“DRAMs”的第一框表示的存储芯片接收数据,从存储模块100c的由被标记为“DRAM(ECC)”的第二框表示的存储芯片接收第一ECC数据。存储控制器220c确定接收到的数据中是否存在错误,当存在错误时确定该错误是否可纠正,并且当该错误可纠正时确定是否需要物理替换存储芯片(S420)。
当错误可纠正并且需要物理替换存储芯片时,存储控制器200c通过第二ECC线路从第三存储芯片接收第二ECC数据(S430)。例如,存储控制器200c可以从存储模块100c的由被标记为“DRAM(ECC)”的第三框表示的存储芯片接收第二ECC数据。在示例性实施例中,根据可纠正错误位数以及错误位数是否大于预定值来确定物理替换。在示例性实施例中,当可纠正错误位数大于预定值时,需要物理替换。
存储控制器200c使用第一ECC数据和第二ECC数据(强ECC)对接收到的数据执行纠错操作,并对存储芯片执行物理替换(S440)。当纠错操作成功时,接收到的数据中的一个或更多个错误被纠正。例如,在错误被纠正之后,存储控制器200c可以请求存储芯片利用冗余单元替换对应于发生数据错误的地址的存储单元。存储芯片可以根据存储控制器200c的请求利用冗余单元替换对应于该地址的存储单元。例如,如果接收到的数据被存储在第一存储单元中,则在接收到的数据中的错误被纠正以生成纠正后的数据之后,可以在需要替换时将纠正后的数据存储在替换后的存储单元中。
另一方面,当错误是可纠正的,但是存储芯片不需要物理替换时,存储控制器200c使用第一ECC数据(弱ECC)来纠正接收到的数据的错误(S450)。例如,当不需要物理替换时,存储控制器200c仅使用第一ECC数据对接收到的数据执行纠错操作。
可以使用硬件组件、软件组件和/或它们的组合来实现上述实施例。例如,可以使用诸如以下项的一个或更多个通用或专用计算机来实现实施例中描述的方法和组件:例如,处理器、控制器、算术逻辑单元(ALU)、数字信号处理器、微型计算机、现场可编程门阵列(FPGA)、可编程逻辑单元(PLU)、微处理器或能够以定义的方式响应并执行指令的任何其他设备。
本公开的存储芯片可以以堆叠配置来实现。
图14是根据本发明构思的示例性实施例的存储芯片的框图。
参照图14,存储芯片1000包括沿垂直方向在衬底上堆叠的第一至第三存储器裸片1100至1300以及穿硅通路(TSV)。堆叠的存储器裸片的数目不限于图14所示的数目。例如,第一存储器裸片1100和第二存储器裸片1200可以是从裸片,而第三存储器裸片1300可以是主裸片或缓冲裸片。
第一存储器裸片1100包括第一存储单元阵列1110和用于访问第一存储单元阵列1110的第一贯通电极区域1120。第二存储器裸片1200包括第二存储单元阵列1210和用于访问第二存储单元阵列1210的第二贯通电极区域1220。第一贯通电极区域1120可以表示第一存储器裸片1100中的设置有用于第一存储器裸片1100与第三存储器裸片1300之间通信的贯通电极的区域。类似地,第二贯通电极区域1220可以表示第二存储器裸片1200中的设置有用于第二存储器裸片1200与第三存储器裸片1300之间通信的贯通电极的区域。贯通电极可以在第一至第三存储器裸片1100至1300之间提供电路径。第一至第三存储器裸片1100至1300可以通过贯通电极彼此电连接。例如,可以设置数百至数千个贯通电极,并且可以以矩阵形式布置贯通电极。第三存储芯片1300包括第一***电路1310和第二***电路1320。第一***电路1310可以包括用于访问第一存储芯片1100的电路,第二***电路1320包括用于访问第二存储芯片1200的电路。
根据本公开的示例性实施例的存储芯片具有根据存储控制器的控制的可变输入/输出宽度。
图15示出了根据本发明构思的示例性实施例的存储芯片2000。参照图15,存储芯片2000包括存储单元阵列2100、行译码器2200(例如,译码器电路)、输入/输出(I/O)读出放大电路2300、列译码器2400(例如,译码器电路)、DQ重新配置电路2500、DQ配置控制器2600(例如,控制电路)和输入/输出缓冲器2700。
DQ配置控制器2600可以基于用户命令来生成控制信号。控制信号可以被提供给DQ重新配置电路2500,从而以运行中的方式(on-the-fly manner)(例如,动态地)将DQ配置的模式(例如,DQ焊盘)改变为期望的模式。用户命令可以包括用于以x4、x8和x16 DQ焊盘模式中的用户期望的模式来配置DQ焊盘的命令。这样的用户命令可以在包括存储芯片2000的存储装置***作时被发送。当控制信号被提供给DQ重新配置电路2500时,DQ重新配置电路2500可以以运行中的方式(例如,以由控制信号指定的DQ焊盘模式)重新配置DQ焊盘配置。
在示例性实施例中,用户命令是从处理器的存储控制器提供的命令。当与存储装置的DQ焊盘模式相关的使用计划或调度作为预定程序的一部分被包括并且通过处理器执行该程序时,由处理器指示的存储控制器可以将指令发送到DQ配置控制器200,以切换存储装置的DQ焊盘模式。DQ重新配置电路2500可以基于从DQ配置控制器2600提供的控制信号,以指令模式重新配置DQ焊盘的配置。例如,当从DQ配置控制器2600提供的控制信号是用于切换到x8模式的信号时,DQ焊盘的配置可以立即更改为x8模式。
存储芯片2000包括存储单元阵列2100以及支持逻辑,该存储单元阵列2100包括存储单元,该支持逻辑用于将数据写入存储单元阵列2100或从存储单元阵列2100读取数据。在示例性实施例中,以存储单元的行(或字线)和列(或位线)来设置存储单元阵列2100。存储单元阵列2100中的每个存储单元具有唯一的位置,例如,由行和列的交点限定的地址。支持逻辑可以锁存存储单元阵列2100的行地址和列地址。支持逻辑包括行译码器2200、输入/输出读出放大电路2300、列译码器2400和输入/输出缓冲器2700。行译码器2200和列译码器2400可以被配置为解析地址并控制读取操作和写入操作的开始和结束。输入/输出读出放大电路2300可以被配置为放大数据线的输入/输出信号。输入/输出缓冲器2700可以被配置为缓冲输入/输出数据。例如,数据在被输出之前可以临时存储在输入/输出缓冲器2700中。
根据示例性实施例的存储芯片2000可以将图9所示的两个ECC存储芯片的配置实现为单个存储芯片。
图16示出了根据本发明构思的示例性实施例的计算***3000。参照图16,计算***3000包括至少一个存储模块(DIMM)3100、至少一个非易失性存储模块(NVDIMM)3200和至少一个处理器3300。
在示例性实施例中,计算***3000可以用作诸如如下项的多个设备之一:计算机、便携式计算机、超便携式个人计算机(UMPC)、工作站、数据服务器、上网本、个人数据助理(PDA)、网络平板电脑、无线电话、移动电话、智能电话、电子书、便携式多媒体播放器(PMP)、数码相机、数字录音机/播放器、数字图片/视频记录仪/播放器、便携式游戏机、导航***、黑匣子、3D电视、能够以无线方式发送和接收信息的设备、可穿戴设备、构成家庭网络的各种电子设备之一、构成计算机网络的各种电子设备之一、构成远程信息处理网络的各种电子设备之一、射频识别(RFID)设备或构成计算***的各种电子设备之一。
至少一个存储模块3100可以利用参照图1至图15描述的存储模块或纠错操作来实现。在示例性实施例中,存储模块3100根据DDRx接口连接到处理器3300。
在示例性实施例中,至少一个存储模块3100包括至少一个第一存储芯片(数据芯片)和至少一个第二存储芯片(ECC芯片),至少一个第一存储芯片(数据芯片)具有第一输入/输出宽度并存储数据,至少一个第二存储芯片(ECC芯片)具有不同于第一输入/输出宽度的第二输入/输出宽度并且存储用于纠正数据中的错误的纠错码。
至少一个非易失性存储模块3200可以包括至少一个非易失性存储器。在示例性实施例中,至少一个非易失性存储器可以包括以下至少一种:NAND闪存、垂直NAND闪存(VNAND)、NOR闪存、电阻式随机存取存储器(RRAM)、相变存储器(PRAM)、磁阻随机存取存储器(MRAM)、铁电随机存取存储器(FRAM)、自旋转移力矩随机存取存储器(STT-RAM)、晶闸管随机存取存储器(TRAM)等。在示例性实施例中,非易失性存储模块3200根据DDR接口连接到处理器3300。
至少一个处理器3300可以被实现为控制存储模块3100和非易失性存储模块3200。在示例性实施例中,处理器3300可以包括以下至少一种:通用微处理器、多核处理器、数字信号处理器(DSP)、专用集成电路(ASIC)或它们的组合。
在示例实施例中,处理器3300可以将存储模块3100的至少一个第一存储芯片的地址深度和存储模块3100的至少一个第二存储芯片的地址深度彼此区分开。
在示例性实施例中,处理器3300根据性能和可靠性要求来改变存储模块3100的至少一个第二存储芯片的第二输入/输出宽度。
在示例性实施例中,上述存储模块被设置在数据服务器中。
图17示出了根据本发明构思的示例性实施例的服务器设备4000(例如,数据服务器)。参照图17,服务器设备4000包括多个机架(rack)4100。参照图1至图16描述的存储模块4200可以安装在多个机架4100的每一个机架中。
在示例性实施例中,每个机架4100可以包括安装在其上的主存储装置(memorydevice)、至少一个处理器、至少一个芯片组和至少一个存储设备(storage device)。在示例性实施例中,服务器设备4000可以另外地设置有输入/输出装置、图形处理器和显示装置。
可以基于x4 DRAM或x8 DRAM来配置存储模块。在通用存储模块中,整个DRAM以相同的配置(输入和输出宽度)实现,并且通过***ECC执行x4至x8数据线路的释放。根据本发明构思的示例性实施例的用于下一代DDR5的存储模块包括两个子通道。在每个子通道中,可以输入和输出x32数据和x8 ECC。与现有模块相比,根据本实施例的存储模块可以包括x16DRAM和x8 DRAM彼此混合的DDR5面向服务器的存储模块,以配置面向服务器的DIMM并实现改善的ECC覆盖率。
如上所述,根据本发明构思的示例性实施例,存储芯片的地址深度和纠错芯片的地址深度彼此分开,以在不降低性能的情况下扩展纠错范围。
尽管上面已经示出和描述了示例性实施例,但是对于本领域技术人员显而易见的是,在不脱离本发明构思的范围的情况下,能够进行各种修改。

Claims (19)

1.一种存储模块,包括:
多个第一存储芯片,被配置为存储数据,其中,每个所述第一存储芯片具有第一输入/输出宽度;
第二存储芯片,被配置为存储用于纠正所述数据中的错误的纠错码,所述第二存储芯片具有第二输入/输出宽度;以及
驱动器电路,被配置为从存储控制器接收时钟信号、命令和地址,并向所述第一存储芯片和所述第二存储芯片发送所述时钟信号、所述命令和所述地址,
其中,每个所述第一存储芯片的地址深度小于所述第二存储芯片的地址深度。
2.根据权利要求1所述的存储模块,其中,所述第一输入/输出宽度大于所述第二输入/输出宽度。
3.根据权利要求1所述的存储模块,其中,所述第一输入/输出宽度是x16位接口,所述第二输入/输出宽度是x8位接口。
4.根据权利要求1所述的存储模块,其中,每个所述第一存储芯片和所述第二存储芯片通过包括3位存储体组地址、2位存储体地址、16位行地址和10位列地址的所述地址被访问,并且
每个所述第一存储芯片忽略所述地址中的至少一个地址位。
5.根据权利要求4所述的存储模块,其中,所述至少一个地址位是所述存储体组地址的最低有效位。
6.根据权利要求1所述的存储模块,其中,所述第一存储芯片输入和输出x32位接口的数据,并且
所述第二存储芯片输入和输出x8位接口的纠错码。
7.根据权利要求6所述的存储模块,其中,所述地址包括存储体组地址、存储体地址、行地址和列地址,并且
当所述存储体组地址的最低有效位为低电平时,响应于读取命令从所述第一存储芯片输出32位数据,并且响应于所述读取命令从所述第二存储芯片输出8位数据。
8.根据权利要求6所述的存储模块,其中,所述地址包括存储体组地址、存储体地址、行地址和列地址,
当所述存储体组地址的最低有效位为低电平时,响应于第一读取命令从所述第一存储芯片输出32位数据,并且响应于所述第一读取命令从所述第二存储芯片输出8位纠错码,并且
当所述存储体组地址的所述最低有效位从所述低电平转变为高电平时,响应于第二读取命令从所述第一存储芯片输出所述32位数据,并且响应于所述第二读取命令从所述第二存储芯片输出8位纠错码。
9.根据权利要求1所述的存储模块,其中,每个所述第一存储芯片和所述第二存储芯片的输入/输出宽度通过所述存储控制器改变。
10.根据权利要求1所述的存储模块,其中,每个所述第一存储芯片是数据芯片,并且
所述第二存储芯片是纠错码芯片。
11.根据权利要求10所述的存储模块,其中,所述纠错码芯片考虑的地址的位数大于所述数据芯片考虑的地址的位数。
12.根据权利要求10所述的存储模块,其中,所述纠错码芯片考虑的存储体组地址的位数大于所述数据芯片考虑的存储体组地址的位数。
13.根据权利要求10所述的存储模块,其中,所述数据芯片是根据2位存储体组地址通过存储体被访问的,并且
所述纠错码芯片是根据3位存储体组地址通过存储体被访问的。
14.根据权利要求10所述的存储模块,其中,所述地址包括k+1个地址位,
所述纠错码芯片是通过使用第一至第k+1地址位被访问的,并且
所述数据芯片是通过使用第一至第j地址位以及第j+2至第k+1地址位被访问的,其中,j和k是正整数。
15.一种存储模块,包括:
第一子通道;
第二子通道;以及
驱动器电路,被配置为从存储控制器接收时钟信号、第一命令和第二命令以及地址,并向所述第一子通道发送所述时钟信号、所述第一命令和所述地址,向所述第二子通道发送所述时钟信号、所述第二命令和所述地址,
其中,所述第一子通道和所述第二子通道均包括:
多个第一存储芯片,被配置为存储数据,每个所述第一存储芯片具有第一输入/输出宽度;以及
第二存储芯片,被配置为存储用于纠正所述数据中的错误的纠错码,所述第二存储芯片具有小于所述第一输入/输出宽度的第二输入/输出宽度,并且
每个所述第一存储芯片的地址深度小于所述第二存储芯片的地址深度。
16.根据权利要求15所述的存储模块,其中,所述第一子通道和所述第二子通道中的每一者输入和输出x32位接口的数据并且输入和输出x8位接口的纠错码。
17.根据权利要求15所述的存储模块,其中,所述第二存储芯片使用有缺陷的存储芯片来将存储体组地址的最低有效位固定为低电平或将所述存储体组地址的所述最低有效位固定为高电平。
18.根据权利要求17所述的存储模块,其中,不管所述存储体组地址的所述最低有效位如何,每个所述第一存储芯片都输出数据,并且
所述第二存储芯片响应于所述存储体组地址的所述最低有效位输出用于纠正所述数据中的错误的额外的纠错码。
19.一种存储控制器的纠错方法,所述存储控制器被配置为控制包括第一存储芯片和至少一个第二存储芯片的存储模块,每个所述第一存储芯片具有第一输入/输出宽度并且被配置为存储数据,所述至少一个第二存储芯片具有第二输入/输出宽度并且被配置为存储用于纠正所述数据中的错误的纠错码,所述纠错方法包括:
确定从所述存储模块接收到的所述数据是否包括可纠正的错误;
确定是否需要物理替换存储所述数据的存储单元;
当所述错误是可纠正的并且需要所述物理替换时,选择第一纠错模式;
当所述错误是可纠正的并且不需要所述物理替换时,选择第二纠错模式;以及
根据所选择的纠错模式对所述数据执行纠错操作。
CN202010796384.8A 2019-09-20 2020-08-10 存储模块以及存储控制器的纠错方法 Active CN112540867B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2019-0116041 2019-09-20
KR1020190116041A KR20210034726A (ko) 2019-09-20 2019-09-20 메모리 모듈, 그것을 제어하는 메모리 제어기의 에러 정정 방법, 및 그것을포함하는 컴퓨팅 시스템

Publications (2)

Publication Number Publication Date
CN112540867A CN112540867A (zh) 2021-03-23
CN112540867B true CN112540867B (zh) 2024-06-28

Family

ID=74846624

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010796384.8A Active CN112540867B (zh) 2019-09-20 2020-08-10 存储模块以及存储控制器的纠错方法

Country Status (5)

Country Link
US (2) US11157358B2 (zh)
KR (1) KR20210034726A (zh)
CN (1) CN112540867B (zh)
DE (1) DE102020115747A1 (zh)
SG (1) SG10202005170VA (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210034726A (ko) 2019-09-20 2021-03-31 삼성전자주식회사 메모리 모듈, 그것을 제어하는 메모리 제어기의 에러 정정 방법, 및 그것을포함하는 컴퓨팅 시스템
US11366772B2 (en) * 2020-03-16 2022-06-21 Micron Technology, Inc. Separate inter-die connectors for data and error correction information and related systems, methods, and apparatuses
US11658685B2 (en) * 2021-10-05 2023-05-23 Macronix International Co., Ltd. Memory with multi-mode ECC engine
CN114153402B (zh) * 2022-02-09 2022-05-03 阿里云计算有限公司 存储器及其数据读写方法
US20240143200A1 (en) * 2022-10-31 2024-05-02 ScaleFlux, Inc. Reducing energy comsumption of self-managed dram modules

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104471549A (zh) * 2012-06-28 2015-03-25 三菱电机株式会社 读取请求处理装置
CN107943609A (zh) * 2016-10-12 2018-04-20 三星电子株式会社 存储器模块、存储器控制器和***及其相应操作方法

Family Cites Families (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1495523A (zh) 1996-08-27 2004-05-12 ������������ʽ���� 转移方法和有源矩阵基板的制造方法
USRE38466E1 (en) 1996-11-12 2004-03-16 Seiko Epson Corporation Manufacturing method of active matrix substrate, active matrix substrate and liquid crystal display device
US5996096A (en) * 1996-11-15 1999-11-30 International Business Machines Corporation Dynamic redundancy for random access memory assemblies
US7208725B2 (en) 1998-11-25 2007-04-24 Rohm And Haas Electronic Materials Llc Optoelectronic component with encapsulant
JP3906654B2 (ja) 2000-07-18 2007-04-18 ソニー株式会社 半導体発光素子及び半導体発光装置
US6818465B2 (en) 2001-08-22 2004-11-16 Sony Corporation Nitride semiconductor element and production method for nitride semiconductor element
JP2003218034A (ja) 2002-01-17 2003-07-31 Sony Corp 選択成長方法、半導体発光素子及びその製造方法
JP3815335B2 (ja) 2002-01-18 2006-08-30 ソニー株式会社 半導体発光素子及びその製造方法
JP4159415B2 (ja) 2002-08-23 2008-10-01 エルピーダメモリ株式会社 メモリモジュール及びメモリシステム
KR100499129B1 (ko) 2002-09-02 2005-07-04 삼성전기주식회사 발광 다이오드 및 그 제조방법
US7002182B2 (en) 2002-09-06 2006-02-21 Sony Corporation Semiconductor light emitting device integral type semiconductor light emitting unit image display unit and illuminating unit
US7457822B1 (en) 2002-11-01 2008-11-25 Bluearc Uk Limited Apparatus and method for hardware-based file system
KR100714639B1 (ko) 2003-10-21 2007-05-07 삼성전기주식회사 발광 소자
KR100506740B1 (ko) 2003-12-23 2005-08-08 삼성전기주식회사 질화물 반도체 발광소자 및 그 제조방법
US8868790B2 (en) 2004-02-13 2014-10-21 Oracle International Corporation Processor-memory module performance acceleration in fabric-backplane enterprise servers
KR100664985B1 (ko) 2004-10-26 2007-01-09 삼성전기주식회사 질화물계 반도체 소자
US7414312B2 (en) * 2005-05-24 2008-08-19 Kingston Technology Corp. Memory-module board layout for use with memory chips of different data widths
KR100665222B1 (ko) 2005-07-26 2007-01-09 삼성전기주식회사 확산재료를 이용한 엘이디 패키지 및 그 제조 방법
KR100661614B1 (ko) 2005-10-07 2006-12-26 삼성전기주식회사 질화물계 반도체 발광소자 및 그 제조방법
KR100723247B1 (ko) 2006-01-10 2007-05-29 삼성전기주식회사 칩코팅형 led 패키지 및 그 제조방법
KR100735325B1 (ko) 2006-04-17 2007-07-04 삼성전기주식회사 발광다이오드 패키지 및 그 제조방법
KR100930171B1 (ko) 2006-12-05 2009-12-07 삼성전기주식회사 백색 발광장치 및 이를 이용한 백색 광원 모듈
KR100855065B1 (ko) 2007-04-24 2008-08-29 삼성전기주식회사 발광 다이오드 패키지
KR100982980B1 (ko) 2007-05-15 2010-09-17 삼성엘이디 주식회사 면 광원 장치 및 이를 구비하는 lcd 백라이트 유닛
KR101164026B1 (ko) 2007-07-12 2012-07-18 삼성전자주식회사 질화물계 반도체 발광소자 및 그 제조방법
KR100891761B1 (ko) 2007-10-19 2009-04-07 삼성전기주식회사 반도체 발광소자, 그의 제조방법 및 이를 이용한 반도체발광소자 패키지
US20100005219A1 (en) * 2008-07-01 2010-01-07 International Business Machines Corporation 276-pin buffered memory module with enhanced memory system interconnect and features
US7717752B2 (en) * 2008-07-01 2010-05-18 International Business Machines Corporation 276-pin buffered memory module with enhanced memory system interconnect and features
US20100005220A1 (en) * 2008-07-01 2010-01-07 International Business Machines Corporation 276-pin buffered memory module with enhanced memory system interconnect and features
KR101332794B1 (ko) 2008-08-05 2013-11-25 삼성전자주식회사 발광 장치, 이를 포함하는 발광 시스템, 상기 발광 장치 및발광 시스템의 제조 방법
KR20100030470A (ko) 2008-09-10 2010-03-18 삼성전자주식회사 다양한 색 온도의 백색광을 제공할 수 있는 발광 장치 및 발광 시스템
KR101530876B1 (ko) 2008-09-16 2015-06-23 삼성전자 주식회사 발광량이 증가된 발광 소자, 이를 포함하는 발광 장치, 상기 발광 소자 및 발광 장치의 제조 방법
US8008683B2 (en) 2008-10-22 2011-08-30 Samsung Led Co., Ltd. Semiconductor light emitting device
US8234459B2 (en) 2009-03-13 2012-07-31 Hewlett-Packard Development Company, L.P. Switch module based non-volatile memory in a server
US20120030544A1 (en) * 2010-07-27 2012-02-02 Fisher-Jeffes Timothy Perrin Accessing Memory for Data Decoding
TW201222254A (en) * 2010-11-26 2012-06-01 Inventec Corp Method for protecting data in damaged memory cells by dynamically switching memory mode
WO2012082656A2 (en) * 2010-12-13 2012-06-21 Aplus Flash Technology, Inc. Universal timing waveforms sets to improve random access read and write speed of memories
US9069719B2 (en) * 2012-02-11 2015-06-30 Samsung Electronics Co., Ltd. Method and system for providing a smart memory architecture
US9357649B2 (en) * 2012-05-08 2016-05-31 Inernational Business Machines Corporation 276-pin buffered memory card with enhanced memory system interconnect
US8874979B2 (en) 2012-06-14 2014-10-28 International Business Machines Corporation Three dimensional(3D) memory device sparing
US20140019588A1 (en) 2012-07-16 2014-01-16 VMO Systems Inc. Distributed Local Text, Audio and Video And Application-Specific Messaging Service With Video Recording In A Battery-Operated Wireless Mobile Data Server With Removable Solid-State Memory Modules
US9183057B2 (en) * 2013-01-21 2015-11-10 Micron Technology, Inc. Systems and methods for accessing memory
US9690650B2 (en) * 2013-03-11 2017-06-27 Macronix International Co., Ltd. Storage scheme for built-in ECC operations
US9519315B2 (en) * 2013-03-12 2016-12-13 International Business Machines Corporation 276-pin buffered memory card with enhanced memory system interconnect
CN105706064B (zh) * 2013-07-27 2019-08-27 奈特力斯股份有限公司 具有本地分别同步的内存模块
US9983990B1 (en) * 2013-11-21 2018-05-29 Altera Corporation Configurable storage circuits with embedded processing and control circuitry
WO2015080717A1 (en) 2013-11-27 2015-06-04 Intel Corporation Method and apparatus for server platform architectures that enable serviceable nonvolatile memory modules
US9772900B2 (en) 2014-07-10 2017-09-26 Samsung Electronics Co., Ltd. Tiered ECC single-chip and double-chip Chipkill scheme
US9971733B1 (en) * 2014-12-04 2018-05-15 Altera Corporation Scalable 2.5D interface circuitry
US9870325B2 (en) 2015-05-19 2018-01-16 Intel Corporation Common die implementation for memory devices with independent interface paths
US10127101B2 (en) 2015-08-28 2018-11-13 Intel Corporation Memory device error check and scrub mode and error transparency
KR102416004B1 (ko) 2015-09-02 2022-07-04 삼성전자주식회사 인터페이스 회로들, 메모리 모듈들 및 인터페이스 회로들과 메모리 모듈들을 연결하는 스위치 회로를 포함하는 서버 장치
JP6757141B2 (ja) * 2016-01-18 2020-09-16 キヤノン株式会社 画像処理装置、その制御方法、及びプログラム
WO2017192626A1 (en) 2016-05-02 2017-11-09 Intel Corporation Internal error checking and correction (ecc) with extra system bits
US10403333B2 (en) 2016-07-15 2019-09-03 Advanced Micro Devices, Inc. Memory controller with flexible address decoding
EP3370152B1 (en) 2017-03-02 2019-12-25 INTEL Corporation Integrated error checking and correction (ecc) in memory devices with fixed bandwidth interfaces
KR20190012566A (ko) * 2017-07-27 2019-02-11 삼성전자주식회사 에러 정정 기능을 갖는 메모리 시스템, 메모리 모듈 및 메모리 컨트롤러의 동작 방법
KR102412609B1 (ko) * 2017-11-03 2022-06-23 삼성전자주식회사 내부 커맨드에 따른 어드레스에 대한 저장 및 출력 제어를 수행하는 메모리 장치 및 그 동작방법
US10749528B2 (en) * 2019-08-20 2020-08-18 Intel Corporation Stacked programmable integrated circuitry with smart memory
KR20210034726A (ko) 2019-09-20 2021-03-31 삼성전자주식회사 메모리 모듈, 그것을 제어하는 메모리 제어기의 에러 정정 방법, 및 그것을포함하는 컴퓨팅 시스템

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104471549A (zh) * 2012-06-28 2015-03-25 三菱电机株式会社 读取请求处理装置
CN107943609A (zh) * 2016-10-12 2018-04-20 三星电子株式会社 存储器模块、存储器控制器和***及其相应操作方法

Also Published As

Publication number Publication date
US11507456B2 (en) 2022-11-22
KR20210034726A (ko) 2021-03-31
US20220012127A1 (en) 2022-01-13
US20210089395A1 (en) 2021-03-25
DE102020115747A1 (de) 2021-03-25
SG10202005170VA (en) 2021-04-29
US11157358B2 (en) 2021-10-26
CN112540867A (zh) 2021-03-23

Similar Documents

Publication Publication Date Title
CN112540867B (zh) 存储模块以及存储控制器的纠错方法
CN110148434B (zh) 半导体存储器件、存储***和操作半导体存储器件的方法
US10997020B2 (en) Memory device, memory system, and method of operating the same
CN108074595B (zh) 存储器***的接口方法、接口电路和存储器模块
US9922724B2 (en) Methods of operating buffered multi-rank memory modules configured to selectively link rank control signals
US9164834B2 (en) Semiconductor memory devices, memory systems including the same and method of writing data in the same
US10846171B2 (en) Error correction code decoders, semiconductor memory devices and memory systems
US20150199234A1 (en) Memory device, memory system, and method of operating memory device
US10867690B2 (en) Memory modules and methods of operating memory systems including the same
US20190310923A1 (en) Data storage device and operating method thereof
US10579472B2 (en) Semiconductor devices
US10319455B2 (en) Semiconductor device
US10917111B2 (en) Error correction code unit and error correction method
US10552277B2 (en) Electronic devices
US10866855B2 (en) Memory system varying operation of memory controller according to internal status of memory device
US11429477B2 (en) Semiconductor devices
KR20230121611A (ko) 시스템 메모리 신뢰성, 가용성 및 서비스 가능성(ras)을개선하기 위한 적응형 오류 정정
US20230259422A1 (en) Memory system including data-width aware encoder and data-width aware decoder and operating method thereof
US10014073B2 (en) Semiconductor devices
KR20240096194A (ko) 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
TW202329106A (zh) 記憶體系統及其操作方法

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