CN108292248B - 存储器系统中的单独链路和阵列纠错 - Google Patents
存储器系统中的单独链路和阵列纠错 Download PDFInfo
- Publication number
- CN108292248B CN108292248B CN201680067416.2A CN201680067416A CN108292248B CN 108292248 B CN108292248 B CN 108292248B CN 201680067416 A CN201680067416 A CN 201680067416A CN 108292248 B CN108292248 B CN 108292248B
- Authority
- CN
- China
- Prior art keywords
- memory
- data
- link
- ecc
- parity bits
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 305
- 238000012937 correction Methods 0.000 title claims abstract description 69
- 238000001514 detection method Methods 0.000 claims abstract description 14
- 238000000034 method Methods 0.000 claims description 38
- 230000005540 biological transmission Effects 0.000 claims description 22
- 238000004891 communication Methods 0.000 claims description 14
- 238000010586 diagram Methods 0.000 description 20
- 238000003491 array Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 12
- 230000008569 process Effects 0.000 description 12
- 239000003990 capacitor Substances 0.000 description 8
- 230000000694 effects Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 230000007334 memory performance Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 239000000203 mixture Substances 0.000 description 3
- 239000000758 substrate Substances 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 238000004193 electrokinetic chromatography Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1048—Adding 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
-
- 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/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1068—Adding 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Dram (AREA)
- Detection And Correction Of Errors (AREA)
- Memory System (AREA)
Abstract
存储器设备可以包括链路纠错码(ECC)解码器和校正电路。ECC解码器和校正电路可以被布置在写入路径中并且被配置用于对通过数据链路接收到的写入数据进行链路错误的检测和校正。存储器设备还可以包括存储器ECC编码器电路。存储器ECC编码器电路可以被布置在写入路径中并且被配置用于在存储器阵列存储期间对写入数据进行存储器保护。
Description
相关申请的交叉引用
本申请根据35U.S.C.§119(e)要求于2015年11月20日提交的题为“SEPARATE LINKAND ARRAY ERROR CORRECTION IN A MEMORY SYSTEM”的美国临时专利申请No.62/258,219的权益,其公开内容通过引用整体并入本文。
技术领域
本公开总体上涉及集成电路(IC)。更具体地,本公开的一个方面涉及在低功率存储器子系统中的单独存储器阵列和链路纠错。
背景技术
半导体存储器设备包括例如静态随机存取存储器(SRAM)和动态随机存取存储器(DRAM)。DRAM存储器单元通常包括一个晶体管和一个电容器,这实现了高度的集成。电容器可以被充电或放电以将信息存储为对应的位值(例如'0'或'1')。因为电容器泄露电荷,所以存储的信息最终会消失,除非电容器电荷被周期性刷新。由于刷新要求,与SRAM和其他静态存储器相比,DRAM被称为动态存储器。DRAM的持续刷新通常限制了其在计算机主存储器中的使用。
DRAM缩放不断地增加每个DRAM芯片的总位数。不幸的是,DRAM缩放会增加弱保留单元(例如,具有减少的保留时间的单元)的数目。这些单元涉及额外的刷新周期以维持所存储的信息。由于额外的刷新周期或其他工艺变化,高级DRAM工艺可能在存储器单元阵列内遭受额外的随机位刷新错误。一些低功率存储器实现纠错码(ECC),以通过将ECC应用于存储器单元阵列中的任意随机位错误来提高存储器产量和可靠性。但是,ECC解码和纠错由于增加的读取访问时间会降低存储器性能。另外,存储器链路(例如,接口)不受ECC的保护,并且整体存储器可靠性不足以满足高可靠性和高性能系统存储器要求。
发明内容
存储器设备可以包括链路纠错码(ECC)解码器和校正电路。ECC解码器和校正电路可以被布置在写入路径中,并且被配置用于对通过数据链路接收到的写入数据进行链路错误检测和校正。存储器设备还可以包括存储器ECC编码器电路。存储器ECC编码器电路可以被布置在写入路径中,并且被配置用于在存储在存储器阵列期间对写入数据进行存储器保护。
一种低功率存储器子系统中的存储器单元阵列和链路纠错的方法可以包括:读取链路纠错码(ECC)奇偶校验位。该方法还可以包括:根据链路ECC奇偶校验位来验证接收到的写入数据。该方法还可以包括:将经验证的写入数据传送到存储器ECC编码器电路,该存储器ECC编码器电路被配置用于根据存储器ECC奇偶校验位对存储器阵列内的恢复的写入数据进行存储器保护。
一种存储器子系统可以包括具有纠错码(ECC)编码器/解码器的存储器控制器。存储器子系统还可以包括至少经由数据链路耦合到存储器控制器的存储器设备。存储器设备可以包括链路ECC解码器和校正电路。链路ECC解码器和校正电路可以被布置在写路径中并且被配置用于在通过数据链路传输写入数据期间检测和校正链路错误。存储器设备可以包括存储器ECC编码器电路。存储器ECC编码器电路可以被布置在写入路径中并且被配置用于根据存储器ECC奇偶校验位在存储在存储器阵列期间对写入数据进行存储器保护。
一种存储器设备可以包括:在存储器设备的写入路径中的用于对通过数据链路接收到的写入数据进行链路错误检测和校正的部件。所述存储器设备还可以包括:在所述存储器设备的写入路径中的用于在存储在存储器阵列中期间对写入数据进行保护的部件。
这已相当广泛地概述了本公开的特征和技术优点,以便可以更好地理解下面的详细描述。下面将描述本公开的附加特征和优点。本领域技术人员应该理解,本公开可以容易地用作修改或设计用于实现本公开的相同目的的其他结构的基础。本领域技术人员还应该认识到,这样的等同构造不脱离如所附权利要求书中阐述的本公开的教导。当结合附图考虑时,从下面的描述中将更好地理解新颖性特征以及进一步的目的和优点,新颖性特征关于其组织和方法操作方面被认为是本公开的特性。然而,要明确理解的是,每个附图仅用于说明和描述的目的而被提供,并不旨在作为本公开的限制的定义。
附图说明
为了更完整地理解本公开,现在参考结合附图进行的以下描述。
图1示出了根据本公开的各方面的低功率存储器子系统的顶视图,该子系统示出了主机片上系统(SoC),其可通信地耦合到低功率存储器设备。
图2示出了根据本公开的另一方面的低功率存储器子系统的顶视图,该子系统示出了主机片上系统,其可通信地耦合到低功率存储器设备。
图3A和图3B是示出根据本公开的各方面的在正常或掩码写入命令期间奇偶校验位的通信的时序图。
图4A到图4C是示出根据本公开的各方面的用于在掩码写入(MWT)命令期间在主机片上系统(SoC)与低功率存储器设备之间传送纠错码(ECC)奇偶校验位的各种选项的时序图。
图5是示出根据本公开的各方面的在总线内在读取(RD)命令期间纠错码(ECC)奇偶校验位的通信的时序图。
图6示出了根据本公开的各方面的低功率存储器子系统的顶视图,其示出了使用共享命令/地址可通信地耦合到存储器设备的主机片上系统(SoC)。
图7示出了根据本公开的各方面的用于在掩码写入(MWT)命令期间传送纠错码(ECC)位置信息的时序图。
图8A和图8B是示出根据本公开的各方面的用于在掩码写入(MWT)命令、正常写入命令和读取(RD)命令期间传送链路/存储器纠错码(ECC)奇偶校验位的方法的流程图。
图9是示出其中可有利地采用本公开的配置的无线通信系统的框图。
具体实施方式
以下结合附图阐述的详细描述旨在作为对各种配置的描述,并且不旨在表示可以实践本文所描述的概念的仅有配置。详细描述包括了提供对各种概念透彻理解的具体细节。然而,对于本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下实践这些概念。在一些情况下,为了避免混淆这些概念,以框图形式显示了众所周知的结构和部件。如本文所述,术语“和/或”的使用旨在表示“包含性或”,并且术语“或”的使用旨在表示“排斥性或”。
半导体存储器设备包括例如静态随机存取存储器(SRAM)和动态随机存取存储器(DRAM)。DRAM存储器单元通常包括一个晶体管和一个电容器,这实现了高度的集成。电容器可以被充电或放电以将信息存储为对应的位值(例如'0'或'1')。因为电容器泄露电荷,所以储存的信息最终会消失,除非电容器电荷被周期性刷新。由于刷新要求,与SRAM和其他静态存储器相比,DRAM被称为动态存储器。DRAM的持续刷新通常限制了DRAM用作计算机主存储器。
DRAM缩放不断地增加每个DRAM芯片的总位数。不幸的是,DRAM缩放会增加弱保留单元(例如,具有缩短的保留时间的单元)的数目。这些单元涉及额外的刷新周期以维持所存储的信息。由于额外的刷新周期或其他工艺变化,高级DRAM工艺可能在存储器单元阵列内遭受额外的随机位刷新错误。一些低功率存储器实现纠错码(ECC),以通过将ECC应用于存储器单元阵列中的任意随机位错误来提高存储器产量和可靠性。
例如,服务器和计算系统可以使用宽(例如,72位输入/输出(IO)宽度)存储器模块来增强存储器链路和存储器单元阵列的可靠性。因为服务器计算系统中的存储器故障是不可容忍的,所以通过将ECC应用于存储器操作来增强存储器链路的可靠性。然而,ECC的存储涉及额外的设备。例如,在72位IO宽度存储器模块中,8位ECC被分配给8个存储器设备的每个64位数据块。为每个64位数据块分配8位ECC在存储器接口和存储器单元阵列两者中提供针对位错误的保护。
然而,在72位IO宽度存储器模块中,使用第九个64位(ECC)存储器设备来存储分配给八个存储器设备的每个64位数据块的八个8位ECC。不幸的是,这种存储器配置增加了存储器系统成本和存储器功率。特别地,由于ECC存储器设备,这种存储器配置涉及用于支持更宽存储器信道的附加印刷电路板(PCB)面积和成本。ECC存储器设备还涉及备用和有功功率,这增加了与该存储器配置相关联的成本。
用于保护存储器阵列和链路的一种技术包括在主机(例如,片上系统(SoC))与低功率存储器之间传输ECC位。可以通过扩展数据突发长度(例如,16位突发长度扩展到18位突发长度)来传输ECC位。不幸的是,扩展的突发长度通过减少净存储器带宽而导致了显著的存储器性能损失。一些低功率存储器实现ECC以通过将ECC应用于存储器单元阵列中的任意随机位错误来提高存储器产量和可靠性。然而,存储器设备中的ECC解码和纠错由于读取访问时间增加而降低了存储器性能。另外,存储器链路(例如,接口)不受ECC的保护,并且整体存储器可靠性不足以满足高可靠性和高性能系统存储器规范。
本公开的各方面涉及包括主机片上系统(SoC)和多个存储器设备的存储器子系统。存储器控制器包括纠错码(ECC)编码和解码块,以生成用于保护写数据免受存储器链路错误的链路ECC位,并且校正由存储器设备的存储器链路和/或存储器阵列引起的任何数据故障。每个存储器设备具有用于数据的单元阵列和用于存储器ECC奇偶校验位的ECC阵列。在本公开的各方面中,生成链路ECC奇偶校验位以在通过存储器链路(例如并行总线结构)传输期间保护读取/写入数据免受链路错误,并且生成存储器ECC奇偶校验位以保护存储器设备内的写入数据免受存储器设备的存储器阵列内的随机位错误。在本公开的一些方面中,基于与用于生成链路ECC奇偶校验位的主机SoC的非专有方法不同的、存储器设备的专有方法,来生成存储器ECC奇偶校验位。
来自存储器控制器的链路ECC奇偶校验位可以通过与掩码写入(MWT)命令相关联的数据掩码引脚或数据字节在主机和存储器设备之间传送。链路ECC奇偶校验位的位置可以使用链路ECC位位置信息被传送给存储器设备。该过程不涉及存储器子系统中的存储器带宽损失或存储器接口更改。在掩码写入操作的情况下,存储器设备恢复与第一被断言数据掩码(DM)位(例如,“H”)相关联的链路ECC奇偶校验位,其中掩码写入命令位字段指示DM活动用于“m”位数据模式。在正常写入操作的情况下,存储器设备从DM数据流中恢复链路ECC位。
在读取操作中,存储器控制器可以从存储器设备恢复DM数据流内的存储器/链路ECC奇偶校验位。当命令/地址(CA)总线在多个存储器设备之间共享时,掩码写入命令可以包括指示ECC字节被嵌入在DM数据流中何处的附加位字段(EL)信息。在一种配置中,主机程序在初始化期间将DQ字节ID写入每个存储器设备中的模式寄存器。存储设备选项(用于确定字节ID/次序)在封装级别可以是硬连线的。如果“m”=128,则“n”等于或小于16。在本公开的该方面中,掩码写入命令之后是链路ECC位置命令(例如,EL位)以指示链路ECC代码被嵌入在写入数据突发中何处。
图1示出了根据本公开的各方面的低功率存储器子系统的顶视图,其示出了耦合到存储器设备140(140-1,...,140-N)的主机片上系统(SoC)100。本公开的该方面将链路纠错码(ECC)奇偶校验位应用于移动或计算系统中的低功率存储器子系统,以保护存储器链路(例如,并行总线结构)免受随机位错误的影响。更具体地,本公开的各方面可以涉及移动或计算系统芯片组中的下一代低功率双倍数据速率(DDR)规范(例如,低功率双倍数据速率4(LPDDR4))和存储器控制器实现方式,其中存储器设备使用专用存储器ECC奇偶校验位来保护存储器单元阵列免受随机位错误。
典型地,主机SoC 100包括支持多线程操作的各种处理单元。对于图1中所示的配置,主机SoC 100包括数字信号处理器(DSP)102、图形处理器单元(GPU)和多媒体引擎104、多核中央处理单元(CPU)106、系统总线108、存储器控制器110以及存储器物理层(PHY)130。DSP 102、GPU和多媒体引擎104以及多核CPU 106支持各种功能,例如视频、音频、图形、游戏等。多核CPU 106的每个处理器核心可以是精简指令集计算(RISC)机器、微处理器或某种其他类型的处理器。
在本公开的该方面中,主机SoC 100通过存储器PHY 130通信地耦合到存储器设备140(例如,低功率动态随机存取存储器(DRAM))。在该配置中,存储器控制器110包括ECC编码器/解码器电路120,以生成通过存储器PHY 130沿着数据链路132(132-1,...,132-N)和命令/地址总线134(134-1,...,134-N)(可以统称为存储器链路)传送到存储器设备140之一的数据122(例如,读取/写入数据)的链路ECC奇偶校验位124。由ECC编码器/解码器电路120生成的链路ECC奇偶校验位124使得能够校正由存储器设备140处的存储器链路(例如,数据链路132)引起的任何数据故障。
当主机SoC 100将存储器链路串行数据速率从例如三千二百(3200)兆位每秒(Mbps)增加到六千四百(6400)Mbps时,针对存储器链路错误的保护变得更受关注。在该配置中,存储器控制器110生成链路ECC奇偶校验位124(“n”位ECC),以在通过数据链路132传输期间保护数据122(例如,“m”位写入)免于随机位错误。因为在写入和读取操作期间,链路ECC奇偶校验位124和数据122两者都是在主机SoC 100和存储器设备140之间传送的,所以可以用链路ECC奇偶校验位124检测和校正任何存储器链路错误。而且,可以在存储器控制器110的ECC编码器/解码器电路120中校正从存储器单元阵列150传输期间的任何随机位错误。
在该配置中,存储器设备140包括用于存储数据122的存储器单元阵列150(例如,存储器组)和用于存储存储器ECC奇偶校验位的ECC阵列152。在本公开的该方面中,存储器设备140包括存储器ECC编码器电路170,其被配置为生成存储器ECC奇偶校验位172以支持在数据122的存储期间对由存储器设备140的存储器单元阵列150引起的任何随机位错误的检测和校正。数据122存储于存储器单元阵列150(例如,存储器组)之一中,并且存储器ECC奇偶校验位172存储于ECC阵列152中。而且,在存储器设备140的存储器ECC解码器和校正电路180中,可以基于存储器设备制造商的专用算法,来校正存储器单元阵列150中的任何随机位错误,所述专用算法不同于主机SoC用于生成链路ECC奇偶校验位124的非专用算法。虽然被分别描述为用于阵列和链路的专有和非专有算法,但是本公开考虑到专有和非专有算法的任何组合。
来自存储器控制器110的链路ECC奇偶校验位124可以由存储器设备140通过用于与掩码写入命令相关联的数据字节的数据掩码引脚接收。可以使用ECC位位置(EL)信息将链路ECC奇偶校验位124的位置传送给存储器设备140。该过程在掩码写入(MWT)操作期间被执行,其中当第一数据掩码(DM)位被断言(例如,“H”)且MWT命令位字段表示DM活动时,存储器设备140根据数据122恢复链路ECC奇偶校验位124。在正常写入操作期间,存储器设备140可以从DM数据流恢复链路ECC奇偶校验位124。
在该配置中,存储器设备140包括可通信地耦合到数据链路132和命令/地址总线134的输入/输出(I/O)块146。在操作中,根据主机SoC 100的非专有方法由存储器控制器110生成的链路ECC奇偶校验位124可以由存储器设备140的链路ECC解码器和校正电路160使用,以检测和校正数据122内的链路错误。也就是说,链路ECC解码器和校正电路160使得存储器设备140能够执行存储器链路纠错。在本公开的该方面中,存储器设备140包括存储器ECC编码器电路170,其被配置为生成存储器ECC奇偶校验位172以在数据122的存储期间能够检测和校正任何随机位错误。因此,一旦数据122被校正和/或验证时,存储器ECC奇偶校验位172就在存储器ECC编码器电路170内沿着存储器设备140的写入路径142被生成,以保护数据122免于存储期间的随机位错误。
在操作期间,数据122存储于存储器单元阵列150(例如,存储器组)之一中,并且存储器ECC奇偶校验位172存储于ECC阵列152中。在该配置中,可以在存储器设备140的存储器ECC解码器和校正电路180中,基于存储器设备制造商的专有算法使用存储于ECC阵列152内的存储器ECC奇偶校验位172来校正存储器单元阵列150中的任何随机位错误。因此,一旦数据122被校正和/或验证,链路ECC奇偶校验位124就在链路ECC编码器电路190内沿着存储器设备140的读取路径144被生成,以在通过数据链路132传输期间保护数据122免于随机位错误。
在本公开的该方面中,主机SoC 100能够使用链路ECC奇偶校验位124检测和校正任何存储器链路错误,这可能是由增加的存储器链路串行数据速率引起的(例如,从3200Mbps到6400Mbps)。另外,存储器单元阵列150中的任何随机位错误可以由存储器设备140的存储器ECC解码器和校正电路180使用存储器ECC奇偶校验位172来校正。沿着存储器设备140的读取路径144使用存储器ECC解码器和校正电路180以及链路ECC编码器电路190可能导致不期望的读取时延。在本公开的一个方面中,例如,如图2所示,存储器ECC解码器和校正电路180和/或链路ECC编码器电路190的功能被并入到存储器控制器中。
图2示出了根据本发明的另一方面的低功率存储器子系统的顶视图,其示出了可通信地耦合到低功率存储器设备的主机SoC 200。在本公开的该方面中,主机SoC 200通过存储器PHY 130可通信地耦合到存储器设备240。在该配置中,存储器控制器210包括ECC编码器/解码器电路220,以生成用于数据122(例如,写入数据)的链路ECC奇偶校验位124,数据122沿着包括数据链路132和命令/地址总线134的存储器链路通过存储器PHY 130被传送到存储器设备140之一。由ECC编码器/解码器电路220生成的链路ECC奇偶校验位124能够校正由存储器设备140处的存储器链路(例如,数据链路132)引起的任何数据故障。
在本公开的该方面中,存储器ECC解码器和校正电路180和/或链路ECC编码器电路190的功能被并入存储器控制器210的ECC编码器/解码器220。在该配置中,存储器设备240的写入路径142与图1所示的配置相同。然而,存储器设备240的读取路径244省略了图1的存储器设备140的存储器ECC解码器和校正电路180以及链路ECC编码器电路190的使用,以避免不希望的读取时延。相反,存储器控制器210的ECC编码器/解码器220被修改以使用存储器ECC奇偶校验位来检测并校正读取数据222(例如,从存储器单元阵列读取出的数据)的链路错误(例如,在并行总线结构上传输期间)或存储器错误(例如,在存储器单元阵列150之一存储期间)。
在本公开的这个方面,读取数据时延被认为是确定存储器系统性能的关键参数之一。因此,为了减少读取时延,用于生成存储器ECC奇偶校验位172的存储器设备制造商的专有方法与主机SoC制造商共享。在本公开的这个方面中,存储器控制器210提供双重ECC支持以消除存储器设备240内的存储器ECC检测和校正。在读取操作期间,从存储器单元阵列150之一读取出的读取数据222和存储器ECC奇偶校验位272被直接传送到存储器控制器210,并且由存储器控制器210执行存储器ECC检测和校正。通过跳过存储器设备240内的ECC解码和校正过程,读取时延得到改善。作为提供专有算法的替代方案,存储器设备制造商可以提供解码算法,该解码算法还考虑与存储器阵列编码组合的链路编码。在这种情况下,专有算法没有被公开,并且可以保持专有。
再次参考图1,在存储器设备140中,通常在写入操作期间从存储器阵列读取整个存储器行(例如,256位字)。在掩码写入操作期间,存储器ECC编码器电路170在存储器单元阵列150之一内执行读取-修改-写入操作以用读取和写入数据执行ECC编码(在存储器单元阵列150之一中将掩码数据字节替换为对应的数据字节)。也就是说,掩码写入操作使得能够更新存储器行的所选字节,从而掩码数据字节不被写入到存储器单元阵列150。在操作中,与数据122一起发送额外的引脚(例如,数据掩码位)来去除指定的写入数据,并通过指定被忽略的写入数据字节来限制读取-修改-写入操作。
图3A的时序图300示出了用于例如128位写入数据的掩码写入(MWT)命令,该写入数据具有突发长度等于16的关联的16位数据掩码。在时序图300中,“D”表示写入数据;“M”表示数据掩码位,为每个DQ字节分配一个数据掩码位。在这个例子中,与写入数据D<16:23>相关联的DM0引脚的M2位被断言(例如“高”或“H”)。结果,掩码写入数据320(例如,写入数据D<16:23>)不被写入存储器单元阵列150(图1)中的目标存储器单元阵列。响应于掩码写入命令,存储器设备140中的目标存储器设备从存储器单元阵列150之一执行读取操作,并用读取数据Q<16:23>替换掩码写入数据320以形成写入数据(例如,128位写入数据),用于使用存储器ECC编码器电路170进行存储器ECC编码。存储器ECC编码器电路170将128位写入数据存储在存储器单元阵列150中的目标存储器单元阵列内,并且存储器ECC奇偶校验位172被写入ECC阵列152中的目标ECC阵列。
在本公开的各方面中,来自存储器控制器110的链路ECC奇偶校验位124通过与掩码写入命令相关联的数据掩码引脚或数据字节在主机SoC 100与存储器设备之间传送。链路ECC奇偶校验位124的位置可以使用ECC位位置信息被传送到存储器设备140。在掩码写入操作的情况下,存储器设备140恢复与第一断言数据掩码(DM)位(例如,“H”)相关联的链路ECC奇偶校验位124,其中掩码写入命令位字段指示每个“m”位数据模式的DM活动。在正常写入操作的情况下,存储器设备140从DM数据流中恢复链路ECC奇偶校验位124。
图3B的时序图350示出了用于例如128位写入数据的正常写入命令,该写入数据具有突发长度等于16的相关联的16位数据掩码。低功率存储器设备(例如,存储器设备140(图1))具有与掩码写入命令不同的正常写入命令。对于正常的写入命令,与128位写入数据相关联的DM0引脚的所有位(E0,...,E15)都被取消断言(例如“低”)。相比之下,对于掩码写入命令,在突发数据流(BL)期间,至少一个DM位被断言为“高”。因此,在正常写入命令期间,DM0引脚的位未被使用。在正常写入命令的这个示例中,链路ECC奇偶校验位(E0,...,E15)通过未使用的DM位360被传送到存储器设备140,其中“E”表示链路ECC奇偶校验位。结果,存储器设备140可以识别由存储器控制器110通过DM引脚生成的链路ECC奇偶校验位124。
然而,在掩码写入命令期间,DM引脚不可用于携带链路ECC奇偶校验位124。在本公开的各方面中,来自存储器控制器110的链路ECC奇偶校验位124在主机SoC 100和存储器设备140之间通过与掩码写入命令相关联的掩码写入数据字节来传送。链路ECC奇偶校验位124的位置可以使用ECC位位置信息被传递到存储器设备140。存储器设备140可以恢复与第一断言的数据掩码(DM)位(例如,“H”)相关联的ECC位,其中掩码写入命令位字段指示每个“m”位数据模式的DM活动。在正常写入操作的情况下,存储器设备从DM数据流中恢复ECC位。另外,在读取操作期间,通过DM引脚传递链路ECC奇偶校验位124或存储器ECC奇偶校验位172。
在本公开的各方面中,总共16个链路ECC奇偶校验位可以从128位数据块(例如,DQ字节X 16数据节拍)可用。在替代实现方式中,针对每128位数据块的链路ECC奇偶校验位的16个数据节拍可以比链路ECC奇偶校验位包含得更多。例如,16个数据节拍可以包括8位链路ECC加数据总线反转(DBI)位和其他相似位。
图4A到图4C的时序图示出了根据本发明的各方面的用于在掩码写入命令期间在主机SoC 100与存储器设备140之间传送链路ECC奇偶校验位124的各种选项。链路ECC奇偶校验位124和/或存储器ECC奇偶校验位172从存储器设备140/240到主机SoC 100/200的通信是通过在读取操作期间使用的掩码写入数据320来传递的。
图4A的时序图400示出了用于例如具有突发长度等于16的相关联的16位数据掩码的128位写入数据的掩码写入命令。在此布置中,128位写入数据被分成第一写入数据410和第二写入数据420(例如,具有前8位链路ECC奇偶校验位的第一64位数据部分和具有接着的8位链路ECC奇偶校验位的第二64位数据部分)。如上所述,对于掩码写入命令,在突发数据流(例如,具有64位突发长度)期间,至少一个数据掩码位(DM0)被断言为“H”。在这个例子中,前8位链路ECC(例如E0,...,E7)被嵌入在第一掩码写入数据字节412(例如D<16:23>)内。另外,接着的8位链路ECC(例如,E8,...,E15)被嵌入在第二掩码写入数据字节422(例如,D<64:71>)内。
图4B的时序图430示出了第一写入数据410的掩码写入操作与第二写入数据420的正常写入操作的组合。在此布置中,前8位链路ECC(例如,E0,...,E7)嵌入在第一掩码写入数据字节412(例如D<16:23>)内。在第二写入数据420中,DM0引脚的位未使用以用于正常写入操作。在该示例中,通过第二未使用的DM位424将接着的8位链路ECC(例如,E8,...,E15)传送到存储器设备140。结果,存储器设备可以通过用于第一写入数据410的第一掩码写入数据字节412和用于第二写入数据420的第二未用DM位424识别由存储器控制器110生成的链路ECC奇偶校验位124。在本公开的该方面中,主机SoC 100发布掩码写入命令,其具有扩展的位字段以指示ECC字节被嵌入的位置;即,掩码写入数据字节或未使用的DM位,这取决于数据掩码活动。
图4C的时序图450示出了第一写入数据410的正常写入操作与第二写入数据420的掩码写入操作的组合。在该布置中,针对正常写入操作,DM0引脚的位未使用。在该示例中,通过第一未使用的DM位414将前8位链路ECC(例如,E0,...,E8)传送到存储器设备140。在第二写入数据420中,接着的8位链路ECC(例如,E8,...,E15)嵌入在第二掩码写入数据字节422(例如D<120:127>)内。结果,存储器设备可以通过用于第一写入数据410的第一未使用DM位414和用于第二写入数据420的第二掩码写入数据字节422识别由存储器控制器110生成的链路ECC奇偶校验位124。在本公开的这个方面,主机SoC 100还发布掩码写入命令,其具有扩展的位字段以指示ECC信息被嵌入的位置;即,未使用的DM位或掩码写入数据字节,这取决于数据掩码活动。
图5的时序图500示出了根据本公开的各方面的在例如具有128位输入/输出总线宽度的总线内在读取(RD)命令期间传递链路/存储器ECC奇偶校验位。时序图500示出了时钟信号502、命令信号504和地址信号506。时序图500还示出了第一数据信号510和具有关联的读取时延514和突发数据516的关联的第一数据掩码信号512。对于读取(RD)命令,128位读取数据和每个DQ字节(例如,D0,...,D15)的16位链路/存储器ECC(例如,E0,...,E15)使用未使用的DM位550从存储器单元阵列150被传送到主机SoC 100。
在本公开的一个方面中,可以根据图1所示的低功率存储器子系统配置,使用来自未使用的DM位550的链路ECC奇偶校验位124,在存储器控制器110的ECC编码器/解码器电路120中检测和校正在读取操作期间的存储器链路错误。替代地,可以根据图2所示的低功率存储器子系统配置,使用存储器ECC奇偶校验位272,来检测存储器单元阵列内的读取数据的随机位错误和/或链路错误。还示出了第二数据信号520和关联的第二数据掩码信号522以及第四数据信号530和关联的第四数据掩码信号532。
图6示出了根据本公开的各方面的低功率存储器子系统的顶视图,其示出了通过共享命令/地址总线634通信地耦合到存储器设备640(640-1、640-2)的主机片上系统(SoC)600。在读取操作期间,可以使用未使用的DM位550(见图5)来从存储器设备640恢复链路ECC奇偶校验位124和/或存储器ECC奇偶校验位272。然而,在该布置中,共享命令/地址总线634设置在主机SoC 600和存储器设备640之间。在使用共享命令/地址总线634的配置中,掩码写入命令可以包括附加位字段(EL),其指示链路ECC奇偶校验位124或存储器ECC奇偶校验位272被嵌入在数据还是数据掩码位流中。
在其中共享命令/地址总线634支持多个设备的本公开的这个方面中,主机可以将字节ID编程到每个设备以区分EL信息。该编程可以通过使用封装选项或模式寄存器组(MRS)编程来执行。例如,当使用共享命令/地址总线634时,主机SOC 600将字节ID编程到每个存储器设备640(例如,“L”被编程到存储器设备640-1之一,并且“H”被编程到存储器设备640-2之一,则存储器设备640-1之一被分配EL<0:3>,而存储器设备640-2之一被分配EL<4:7>)。替代地,在封装级别提供该功能,其中设备ID引脚被连接到用于存储器设备640-1之一的“接地”和用于存储器设备640-2之一的“电源(逻辑高)”。
例如,图7示出了根据本公开的各方面的用于在掩码写入命令期间传递ECC位置的时序图700。时序图700示出了时钟信号702和命令/地址信号704。在本公开的该方面中,掩码写入(MW)命令之后是ECC位置命令(例如,EL位)以指示链路ECC奇偶校验位124被嵌入在数据222中的位置或存储器ECC奇偶校验位272在读取数据222中的位置。在替代配置中,在初始化期间主机SoC 600程序将DQ字节ID(标识)写入到每个存储器设备640中的模式寄存器650(650-1、650-2),如图6所示。存储器设备选项(用于确定字节ID/次序)在封装级也可以是硬连线的。
图8A是示出根据本公开的各方面的低功率存储器子系统中的存储器单元阵列和链路纠错的方法的流程图。方法800从框802开始,其中存储器控制器生成用于写入数据的链路ECC奇偶校验位(例如,用于64位写入数据的8位ECC奇偶校验位)。在框804处,确定是否正在执行掩码写入操作。当正在执行正常写入操作时,在框808处,链路ECC奇偶校验位被添加到数据掩码突发数据。例如,如图3B所示,链路ECC奇偶校验位(E0,...,E15)通过未使用的DM引脚(例如,320)被传送到存储器设备140。对于掩码写入命令,在框806处,链路ECC奇偶校验位替换与第一断言的数据掩码位相关联的第一掩码写入数据字节。例如,如图4A所示,前8位链路ECC(例如,E0,...,E7)被嵌入在第一掩码写入数据字节412(例如D<16:23>)内。
再次参考图8A,在框810处,主机(例如,SoC)将写入数据和数据掩码发送到目标存储器设备。在框812处,目标存储器设备从主机接收写入数据和数据掩码。在框820处,确定是否正在执行掩码写入操作。当正在执行正常写入操作时,处理框830至834执行以完成正常写入命令。对于掩码写入命令,处理框822至828执行以完成掩码写入命令。在本公开的该方面中,存储器设备140/240可以被配置用于在正常写入操作期间在未使用的数据掩码位中或在掩码写入操作期间在对应于断言的数据掩码位的掩码写入数据字节中读取链路纠错码(ECC)奇偶校验位。
图8B是示出根据本公开的各方面的用于低功率存储器子系统中的读取操作的方法850的流程图。在框852处,存储器控制器向目标存储器设备发出读取命令。在框854处,目标存储器设备从存储器单元阵列读出读取数据,并从ECC阵列读取存储器ECC位。在读取操作中,可选地,可以跳过用于存储器ECC解码和读取数据纠错的框856和858,以简化存储器实现方式并加速读取速度(例如,从读取命令的较低读取时延),因为存储器控制器可以在框860和862处使用ECC编码器/解码器恢复在存储器单元阵列中引起的位错误。这是在存储器性能(时延)和存储器子系统可靠性(存储器单元阵列位错误+读取链路错误)之间的折中。
在一个配置中,低功率存储器子系统包括用于在正常写入操作期间从未使用的数据掩码位或在接收到的写入数据的掩码写入操作期间从对应于断言的数据掩码位的掩码写入数据字节读取链路ECC奇偶校验位的部件。低功率存储器子系统还包括用于根据链路ECC奇偶校验位检测和校正写入数据在通过数据链路传输期间的链路错误的部件。低功率存储器子系统还包括用于生成链路ECC奇偶校验位以在通过数据链路上传输期间保护读取数据的部件。低功率存储器子系统还包括用于在通过数据链路传输读取数据期间在数据掩码位内嵌入链路ECC奇偶校验位的部件。
在本公开的一个方面中,读取部件是图1和图2的输入/输出(IO)块146,其被配置为执行由读取部件所述的功能。在本公开的一个方面中,检测和校正部件是图1和2的链路ECC解码器和校正电路160,其被配置为执行由检测和校正部件所述的功能。生成部件可以是链路ECC编码器电路190,并且嵌入部件可以是图1的输入/输出(IO)块146,被配置为嵌入链路ECC奇偶校验位的。另一方面,前述部件可以是被配置为执行前述部件所述功能的设备或任何层。
本公开的各方面涉及包括主机片上系统(SoC)和多个存储器的存储器子系统。存储器控制器具有纠错码(ECC)编码和解码块,以生成用于写入数据的链路ECC位并且校正由存储器链路和/或存储器核心阵列引起的任何数据故障。存储器具有用于数据的单元阵列和用于存储器ECC奇偶校验位的ECC阵列。来自存储器控制器的链路ECC奇偶校验位通过数据掩码引脚或与掩码写入(MWT)命令关联的数据字节在主机和存储器之间传送。链路ECC奇偶校验位的位置可以使用ECC位位置信息被传递到存储器设备。该过程不涉及存储器子系统中的存储器带宽损失或存储器接口更改。在掩码写入操作的情况下,存储器设备恢复与第一断言的数据掩码(DM)位(例如,“H”)相关联的链路ECC位,其中掩码写入命令位字段指示每个“m”位数据模式的DM活动。在正常写入操作的情况下,存储器设备从DM数据流中恢复链路ECC位。
在本公开的一个方面中,读取数据时延被识别为确定存储器系统性能的关键参数之一。因此,为了减少读取时延,用于生成存储器ECC奇偶校验位的、存储器设备制造商的专有方法与主机SoC制造商共享。在本公开的该方面中,存储器控制器提供双重ECC支持以消除存储器设备内的存储器ECC检测和校正。在读取操作期间,从存储器单元阵列之一读出的读取数据和存储器ECC奇偶校验位被直接传送到存储器控制器,并且由存储器控制器执行存储器ECC检测和校正。因此,通过跳过存储器设备内的ECC解码和校正过程来改善读取时延。
图9是示出其中可以有利地采用本公开的配置的示例性无线通信系统900的框图。出于说明的目的,图9示出了三个远程单元920、930和950以及两个基站940。将认识到,无线通信系统可以具有更多的远程单元和基站。远程单元920、930和950包括IC设备925A、925B和925C,其包括所公开的低功率存储器子系统。应该认识到,包含IC的任何设备也可以包括所公开的低功率存储器子系统,包括基站、交换设备和网络设备。图9示出了从基站940到远程单元920、930和950的前向链路信号980,以及从远程单元920、930和950到基站940的反向链路信号990。
在图9中,远程单元920被示出为移动电话,远程单元930被示出为便携式计算机,并且远程单元950被示出为无线本地环路系统中的固定位置远程单元。例如,远程单元可以是移动电话,手持式个人通信系统(PCS)单元,诸如个人数据助理的便携式数据单元,支持GPS的设备,导航设备,机顶盒,音乐播放器,视频播放器,娱乐单元,固定位置数据单元(例如仪表读取设备),或者存储或取回数据或计算机指令的任何其他设备,或其任何组合。例如,包括低功率存储器子系统的远程单元可以集成在指定关键数据完整性的车辆控制系统、服务器计算系统或其他类似系统内。虽然图9示出了包括所公开的低功率存储器子系统的IC设备925A、925B和925C,但是本公开不限于这些示例性图示单元。本公开的各方面可以适当地用于包括低功率存储器子系统的任何设备中。
对于固件和/或软件实现方式,方法可以用执行本文描述的功能的模块(例如,进程、函数等)来实现。任何有形地体现指令的机器可读介质都可以用于实现本文描述的方法。例如,软件代码可以存储于存储器中并由处理器单元执行。存储器可以在处理器单元内或处理器单元外部实现。如本文所使用的,术语“存储器”是指任何类型的长期、短期、易失、非易失或其他存储器,并且不限于任何特定类型的存储器或存储器数目或者储存了存储器的介质类型。
如果以固件和/或软件实现,则可以将这些功能作为一个或多个指令或代码存储在计算机可读介质上。例子包括用数据结构编码的计算机可读介质和用计算机程序编码的计算机可读介质。计算机可读介质包括物理计算机存储介质。存储介质可以是可由计算机访问的可用介质。通过示例而非限制,这样的计算机可读介质可以包括RAM,ROM,EEPROM,CD-ROM或其他光盘存储设备,磁盘存储设备或其他磁存储设备,或者能够用于存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的其它介质;如本文使用的,盘和碟包括压缩光碟(CD)、激光影碟、光碟、数字通用光碟(DVD)和蓝光光碟,其中盘通常磁性地复制数据,而碟则用激光来光学地复制数据。上面的组合也应当包括在计算机可读介质的范围之内。
除了在计算机可读介质上存储之外,指令和/或数据可以被提供为包含于通信装置中的传输介质上的信号。例如,通信装置可以包括具有指示指令和数据的信号的收发器。指令和数据被配置为使一个或多个处理器实现权利要求中概述的功能。
虽然已经详细描述了本公开及其优点,但应该理解,在不背离由所附权利要求限定的本公开的技术的情况下,可以在此做出各种改变、替换和更改。例如,关于基板或电子设备使用诸如“之上”和“之下”的关系术语。当然,如果基板或电子设备被倒置,则之上变为之下,反之亦然。另外,如果侧向定位,则之上和之下可以指基板或电子设备的侧面。此外,本申请的范围不旨在限于说明书中描述的过程、机器、制造、物质组成、部件、方法和步骤的特定配置。如本领域普通技术人员将容易从本公开中理解的,可以根据本公开,利用目前存在或将来开发的执行与本文描述的对应配置基本相同功能或实现基本相同结果的过程、机器、制造、物质组成、部件、方法或步骤。因此,所附权利要求旨在在其范围内包括这样的过程、机器、制造、物质组成、部件、方法或步骤。
本领域技术人员将进一步认识到,结合本文公开所描述的各种说明性逻辑块、模块、电路和算法步骤可以实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,上面已经按照其功能一般性地描述了各种说明性的部件、块、模块、电路和步骤。这样的功能是以硬件还是软件来实现取决于特定的应用和对整个系统施加的设计约束。本领域技术人员可以针对每个特定应用以各种方式实现所描述的功能,但是这样的实现决策不应该被解释为导致偏离本公开的范围。
被设计为执行本文所述功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件部件或者其任意组合,可以实现或执行结合本文公开所描述的各种示例性的逻辑块、模块和电路。通用处理器可以是微处理器,但在替代例中,处理器也可以是任何常规的处理器、控制器、微控制器或者状态机。处理器也可以实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器与DSP内核的结合,或者任何其它此种结构。
结合本公开描述的方法或算法的步骤可直接体现为硬件、由处理器执行的软件模块或两者的组合。软件模块可以驻留在RAM、闪存、ROM、EPROM、EEPROM、寄存器、硬盘、可移动磁盘、CD-ROM或本领域中已知的任何其他形式的存储介质中。示例性存储介质耦合到处理器,从而处理器可从存储介质读取信息及将信息写入到存储介质。在替代例中,存储介质可以集成到处理器中。处理器和存储介质可以驻留在ASIC中。ASIC可以驻留在用户终端中。在替代例中,处理器和存储介质可以作为分立部件驻留在用户终端中。
在一个或多个示例性设计中,所描述的功能可以用硬件、软件、固件或其任何组合来实现。如果以软件实现,则可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质两者,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用计算机或专用计算机能够存取的任何可用介质。通过示例而非限制,这种计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储设备、磁盘存储设备或其它磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的特定程序代码单元并能够由通用计算机或专用计算机或通用处理器或专用处理器存取的任何其它介质。此外,任何连接可以适当地称为计算机可读介质。例如,如果软件是使用同轴电缆、光纤光缆、双绞线、数字用户线(DSL)或者诸如红外线、无线和微波之类的无线技术从网站、服务器或其它远程源传输的,那么同轴电缆、光纤光缆、双绞线、DSL或者诸如红外线、无线和微波之类的无线技术包括在所述介质的定义中。如本申请所使用的,盘和碟包括压缩光碟(CD)、激光影碟、光碟、数字通用光碟(DVD)、软盘和蓝光光碟,其中盘通常磁性地复制数据,而碟则用激光来光学地复制数据。上面的组合也应当包括在计算机可读介质的保护范围之内。
提供之前的描述是为了使本领域的任何技术人员能够实践本文描述的各个方面。这些方面的各种修改对于本领域技术人员而言将是显而易见的,并且这里定义的一般原理可以应用于其他方面。因此,权利要求不旨在限于本文所示的各方面,而是要符合与权利要求的语言一致的全部范围,其中以单数形式提及元素并非旨在表示“仅有一个”,除非特别说明,而是“一个或多个”。除非另有特别说明,否则术语“一些”是指一个或多个。提及项目列表中的“至少一个”的短语是指这些项目的任何组合,包括单个成员。例如,“a、b或c中的至少一个”旨在涵盖:a;b;c;a和b;a和c;b和c;以及a、b和c。贯穿本公开所描述的各个方面的元素的所有结构和功能等同物(对于本领域的普通技术人员而言是已知的或随后已知的),通过引用明确地并入本文中并且旨在由权利要求所涵盖。此外,本发明中没有任何公开内容是想要奉献给公众的,不管这样的公开内容是否明确记载在权利要求书中。不应依据35 U.S.C.§112第6款来解释任何权利要求的构成要素,除非该构成要素明确采用了“功能性模块”的措辞进行记载,或者在方法权利中,该构成要素是用“功能性步骤”的措辞来记载的。
Claims (27)
1.一种存储器设备,包括:
链路纠错码ECC解码器和校正电路,其在写入路径中并且被配置用于对通过数据链路接收到的写入数据进行链路错误检测和校正,所述链路ECC解码器和校正电路还被配置为:在正常写入操作期间从未使用的数据掩码位读取链路ECC奇偶校验位,或者在接收到的所述写入数据的掩码写入操作期间从对应于断言的数据掩码位的掩码写入数据字节读取所述链路ECC奇偶校验位;以及根据所述链路ECC奇偶校验位,检测和校正接收到的所述数据在通过所述数据链路传输期间的链路错误;以及
存储器ECC编码器电路,其在所述写入路径中并被配置用于在存储器阵列存储期间对所述写入数据进行存储器保护。
2.根据权利要求1所述的存储器设备,其中所述存储器ECC编码器电路生成存储器ECC奇偶校验位,以在所述存储器阵列内存储期间保护所述写入数据。
3.根据权利要求1所述的存储器设备,还包括:
存储器ECC解码器和校正电路,其在读取路径中并且被配置用于对从所述存储器阵列读取的数据进行存储器错误检测和校正;以及
链路ECC编码器电路,其在所述读取路径中并被配置用于对从所述存储器阵列读取的所述数据进行链路保护。
4.根据权利要求3所述的存储器设备,其中所述存储器ECC解码器和校正电路被配置为根据存储器ECC奇偶校验位来检测和校正从所述存储器阵列读取的所述数据的存储器错误。
5.根据权利要求3所述的存储器设备,其中所述链路ECC编码器电路还被配置为生成链路ECC奇偶校验位,以在通过所述数据链路传输期间保护读取的所述数据。
6.根据权利要求5所述的存储器设备,其中所述链路ECC编码器电路还被配置为在读取的所述数据通过所述数据链路传输期间将所述链路ECC奇偶校验位嵌入到数据掩码位内。
7.根据权利要求1所述的存储器设备,其被集成到以下至少一者中:机顶盒、娱乐单元、导航设备、计算机、手持式个人通信系统PCS单元、便携式数据单元、固定位置数据单元、和车辆控制系统。
8.根据权利要求7所述的存储器设备,其中以下至少一项:
所述娱乐单元包括音乐播放器或视频播放器;
所述计算机包括服务器计算系统;以及
所述手持式PCS单元包括移动电话。
9.一种低功率存储器子系统中的存储器单元阵列和链路纠错方法,包括:
读取链路纠错码ECC奇偶校验位,所述链路ECC奇偶校验位在正常写入操作期间在未使用的数据掩码位内,或者所述链路ECC奇偶校验位在掩码写入操作期间在对应于断言的数据掩码位的掩码写入数据字节内;
根据所述链路ECC奇偶校验位验证接收到的写入数据;以及
将经验证的所述写入数据传送到存储器ECC编码器电路,所述存储器ECC编码器电路被配置用于根据存储器ECC奇偶校验位对存储器阵列内的恢复的所述写入数据进行存储器保护。
10.根据权利要求9所述的方法,还包括:当所述写入数据在通过数据链路传输期间被破坏时,根据所述链路ECC奇偶校验位来检测和校正接收到的所述写入数据。
11.根据权利要求9所述的方法,还包括将所述低功率存储器子系统集成到以下至少一者中:机顶盒、娱乐单元、导航设备、计算机、手持式个人通信系统PCS单元、便携式数据单元、固定位置数据单元、和车辆控制系统。
12.根据权利要求11所述的方法,其中以下至少一项:
所述娱乐单元包括音乐播放器或视频播放器;
所述计算机包括服务器计算系统;以及
所述手持式PCS单元包括移动电话。
13.一种存储器子系统,包括:
具有纠错码ECC编码器/解码器的存储器控制器;以及
至少经由数据链路耦合到所述存储器控制器的存储器设备,其包括:
链路ECC解码器和校正电路,其在写入路径中并且被配置用于对写入数据通过所述数据链路传输期间的链路错误进行检测和校正,所述链路ECC解码器和校正电路还被配置为:在正常写入操作期间从未使用的数据掩码位读取链路ECC奇偶校验位,或者在接收到的所述写入数据的掩码写入操作期间从对应于断言的数据掩码位的掩码写入数据字节读取所述链路ECC奇偶校验位;以及根据所述链路ECC奇偶校验位,检测和校正接收到的所述数据在通过所述数据链路传输期间的链路错误;以及
存储器ECC编码器电路,其在所述写入路径中并且被配置用于根据存储器ECC奇偶校验位在存储器阵列内存储期间对所述写入数据进行存储器保护。
14.根据权利要求13所述的存储器子系统,其中所述存储器控制器被配置为直接访问读取路径以从所述存储器设备读取数据,并且被配置为在所述存储器控制器的所述ECC编码器/解码器处,检测和校正来自所述存储器设备的所述数据内的随机位错误和/或存储器链路错误。
15.根据权利要求13所述的存储器子系统,其中所述存储器设备还包括:
存储器ECC解码器和校正电路,其在读取路径中并且被配置用于对来自所述存储器阵列的读取数据进行存储器错误检测和校正;以及
链路ECC编码器电路,其在所述读取路径中并且被配置用于对所述读取数据进行链路保护。
16.根据权利要求15所述的存储器子系统,其中所述存储器ECC解码器和校正电路被配置为根据存储器ECC奇偶校验位来检测和校正所述存储器阵列内的所述读取数据的存储器错误。
17.根据权利要求15所述的存储器子系统,其中所述链路ECC编码器电路还被配置为生成链路ECC奇偶校验位,以在通过所述数据链路传输期间保护所述读取数据。
18.根据权利要求15所述的存储器子系统,其中所述链路ECC编码器电路还被配置为在所述读取数据通过所述数据链路传输期间将所述链路ECC奇偶校验位嵌入在数据掩码位内。
19.根据权利要求13所述的存储器子系统,其被集成到以下至少一者中:机顶盒、娱乐单元、导航设备、计算机、手持式个人通信系统PCS单元、便携式数据单元、固定位置数据单元、和车辆控制系统。
20.根据权利要求19所述的存储器子系统,其中以下至少一项:
所述娱乐单元包括音乐播放器或视频播放器;
所述计算机包括服务器计算系统;以及
所述手持式PCS单元包括移动电话。
21.一种存储器设备,包括:
在所述存储器设备的写入路径内的、用于检测和校正通过数据链路接收到的写入数据的链路错误的部件;
用于在正常写入操作期间从未使用的数据掩码位读取链路ECC奇偶校验位,或者在接收到的所述写入数据的掩码写入操作期间从对应于断言的数据掩码位的掩码写入数据字节读取所述链路ECC奇偶校验位的部件;
用于根据所述链路ECC奇偶校验位检测和校正所述写入数据在通过所述数据链路传输期间的链路错误的部件;以及
在所述存储器设备的所述写入路径内的、用于在存储器阵列中存储期间保护所述写入数据的部件。
22.根据权利要求21所述的存储器设备,还包括:
在所述存储器设备的读取路径中的、用于检测和校正所述数据在所述存储器阵列内存储期间的存储器错误的部件;以及
在所述读取路径内的、用于在通过所述数据链路传输期间保护来自所述存储器阵列的读取数据的部件。
23.根据权利要求22所述的存储器设备,还包括:用于根据存储器ECC奇偶校验位检测和校正所述读取数据在存储在所述存储器阵列内期间的存储器错误的部件。
24.根据权利要求22所述的存储器设备,还包括:用于生成链路ECC奇偶校验位以在通过所述数据链路传输期间保护所述读取数据的部件。
25.根据权利要求24所述的存储器设备,还包括:用于在所述读取数据通过所述数据链路传输期间,将所述链路ECC奇偶校验位嵌入到数据掩码位内的部件。
26.根据权利要求21所述的存储器设备,其被集成到以下至少一者中:机顶盒、娱乐单元、导航设备、计算机、手持式个人通信系统PCS单元、便携式数据单元、固定位置数据单元、和车辆控制系统。
27.根据权利要求26所述的存储器设备,其中以下至少一项:
所述娱乐单元包括音乐播放器或视频播放器;
所述计算机包括服务器计算系统;以及
所述手持式PCS单元包括移动电话。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110632711.0A CN113176862A (zh) | 2015-11-20 | 2016-09-28 | 存储器系统中的单独链路和阵列纠错 |
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562258219P | 2015-11-20 | 2015-11-20 | |
US62/258,219 | 2015-11-20 | ||
US15/151,329 US9965352B2 (en) | 2015-11-20 | 2016-05-10 | Separate link and array error correction in a memory system |
US15/151,329 | 2016-05-10 | ||
PCT/US2016/054175 WO2017087076A1 (en) | 2015-11-20 | 2016-09-28 | Separate link and array error correction in a memory system |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110632711.0A Division CN113176862A (zh) | 2015-11-20 | 2016-09-28 | 存储器系统中的单独链路和阵列纠错 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108292248A CN108292248A (zh) | 2018-07-17 |
CN108292248B true CN108292248B (zh) | 2021-06-25 |
Family
ID=57124170
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680067416.2A Active CN108292248B (zh) | 2015-11-20 | 2016-09-28 | 存储器系统中的单独链路和阵列纠错 |
CN202110632711.0A Pending CN113176862A (zh) | 2015-11-20 | 2016-09-28 | 存储器系统中的单独链路和阵列纠错 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110632711.0A Pending CN113176862A (zh) | 2015-11-20 | 2016-09-28 | 存储器系统中的单独链路和阵列纠错 |
Country Status (9)
Country | Link |
---|---|
US (1) | US9965352B2 (zh) |
EP (1) | EP3377974B1 (zh) |
JP (1) | JP2019500686A (zh) |
KR (1) | KR20180084798A (zh) |
CN (2) | CN108292248B (zh) |
AU (1) | AU2016355460A1 (zh) |
BR (1) | BR112018010196A2 (zh) |
TW (1) | TW201729213A (zh) |
WO (1) | WO2017087076A1 (zh) |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10331517B2 (en) * | 2016-08-26 | 2019-06-25 | Qualcomm Incorporated | Link error correction in memory system |
KR102688423B1 (ko) * | 2017-07-05 | 2024-07-26 | 에스케이하이닉스 주식회사 | 메모리 장치, 이를 포함하는 메모리 시스템 및 메모리 시스템의 동작 방법 |
US10387242B2 (en) | 2017-08-21 | 2019-08-20 | Qualcomm Incorporated | Dynamic link error protection in memory systems |
KR102410021B1 (ko) * | 2017-11-20 | 2022-06-21 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 메모리 모듈을 갖는 메모리 시스템 및 그 메모리 시스템에서의 데이터 처리 방법 |
KR20190132237A (ko) | 2018-05-18 | 2019-11-27 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
KR20190132238A (ko) * | 2018-05-18 | 2019-11-27 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
US10802908B2 (en) * | 2018-07-31 | 2020-10-13 | Western Digital Technologies, Inc. | Data dependent allocation of error correction resources |
US11144385B2 (en) | 2018-08-21 | 2021-10-12 | Micron Technology, Inc. | Transmission failure feedback schemes for reducing crosstalk |
US11204835B2 (en) * | 2018-10-12 | 2021-12-21 | Supermem, Inc. | Error correcting memory systems |
KR102629405B1 (ko) * | 2018-11-09 | 2024-01-25 | 삼성전자주식회사 | 반도체 메모리 장치, 메모리 시스템 및 반도체 메모리 장치의 동작 방법 |
US11521697B2 (en) | 2019-01-30 | 2022-12-06 | STMicroelectronics International, N.V. | Circuit and method for at speed detection of a word line fault condition in a memory circuit |
US11005501B2 (en) * | 2019-02-19 | 2021-05-11 | Micron Technology, Inc. | Error correction on a memory device |
WO2020172557A1 (en) * | 2019-02-22 | 2020-08-27 | Micron Technology, Inc. | Memory device interface and method |
US11393532B2 (en) | 2019-04-24 | 2022-07-19 | Stmicroelectronics International N.V. | Circuit and method for at speed detection of a word line fault condition in a memory circuit |
US11372717B2 (en) | 2019-08-30 | 2022-06-28 | Qualcomm Incorporated | Memory with system ECC |
US11010243B2 (en) | 2019-09-09 | 2021-05-18 | Winbond Electronics Corp. | Memory apparatus with error bit correction in data reading period |
US11314588B2 (en) * | 2019-11-11 | 2022-04-26 | Winbond Electronics Corp. | Memory device and multi physical cells error correction method thereof |
KR20220119697A (ko) | 2019-12-27 | 2022-08-30 | 마이크론 테크놀로지, 인크. | 뉴로모픽 메모리 장치 및 방법 |
EP4085458A4 (en) | 2019-12-30 | 2023-05-31 | Micron Technology, Inc. | STORAGE DEVICE INTERFACE AND METHOD |
US11327836B1 (en) * | 2020-09-29 | 2022-05-10 | Xilinx, Inc. | Protection of data on a data path in a memory system |
US11734114B2 (en) * | 2020-12-09 | 2023-08-22 | Advanced Micro Devices, Inc. | Programmable error correction code encoding and decoding logic |
TWI779634B (zh) * | 2021-01-22 | 2022-10-01 | 瑞昱半導體股份有限公司 | 用來進行記憶體校準之方法、系統單晶片積體電路以及非暫態計算機可讀取媒體 |
US11409601B1 (en) * | 2021-01-26 | 2022-08-09 | Micron Technology, Inc. | Memory device protection |
KR20220139199A (ko) | 2021-04-07 | 2022-10-14 | 삼성전자주식회사 | 반도체 메모리 장치 및 이를 포함하는 메모리 시스템 |
US11762736B2 (en) | 2021-05-18 | 2023-09-19 | Samsung Electronics Co., Ltd. | Semiconductor memory devices |
US20210336767A1 (en) * | 2021-06-25 | 2021-10-28 | Intel Corporation | Memory bus integrity and data encryption (ide) |
KR20230052346A (ko) * | 2021-10-12 | 2023-04-20 | 삼성전자주식회사 | 메모리 모듈, 메모리 시스템, 및 메모리 컨트롤러의 동작 방법 |
US11886295B2 (en) | 2022-01-31 | 2024-01-30 | Pure Storage, Inc. | Intra-block error correction |
CN116244108A (zh) * | 2023-01-09 | 2023-06-09 | 海光信息技术股份有限公司 | 存储器控制器和存储器的数据写入和读取方法及存储系统 |
CN117851113B (zh) * | 2024-01-18 | 2024-05-10 | 北京飘石科技有限公司 | 一种具有ecc校验的ddr数据传输系统和方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101246748A (zh) * | 2007-02-13 | 2008-08-20 | 三星电子株式会社 | 基于字节的掩码操作的设备和产生奇偶校验数据的方法 |
CN101507171A (zh) * | 2006-07-06 | 2009-08-12 | 普罗维根特有限公司 | 使用迭代码度量的通信链路控制 |
CN103533045A (zh) * | 2013-10-12 | 2014-01-22 | 江苏华丽网络工程有限公司 | 一种用于pcie数据链路层高性能容错的方法 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7464241B2 (en) * | 2004-11-22 | 2008-12-09 | Intel Corporation | Memory transaction burst operation and memory components supporting temporally multiplexed error correction coding |
US7774684B2 (en) * | 2006-06-30 | 2010-08-10 | Intel Corporation | Reliability, availability, and serviceability in a memory device |
US7840876B2 (en) * | 2007-02-20 | 2010-11-23 | Qimonda Ag | Power savings for memory with error correction mode |
US8082482B2 (en) * | 2007-08-31 | 2011-12-20 | International Business Machines Corporation | System for performing error correction operations in a memory hub device of a memory module |
US20100269021A1 (en) | 2007-09-05 | 2010-10-21 | Gower Kevin C | Method for Performing Error Correction Operations in a Memory Hub Device of a Memory Module |
US7558887B2 (en) | 2007-09-05 | 2009-07-07 | International Business Machines Corporation | Method for supporting partial cache line read and write operations to a memory module to reduce read and write data traffic on a memory channel |
US20110041005A1 (en) * | 2009-08-11 | 2011-02-17 | Selinger Robert D | Controller and Method for Providing Read Status and Spare Block Management Information in a Flash Memory System |
US8438344B2 (en) * | 2010-03-12 | 2013-05-07 | Texas Instruments Incorporated | Low overhead and timing improved architecture for performing error checking and correction for memories and buses in system-on-chips, and other circuits, systems and processes |
WO2011160957A1 (en) | 2010-06-24 | 2011-12-29 | International Business Machines Corporation | Isolation of faulty links in a transmission medium |
US9183078B1 (en) * | 2012-04-10 | 2015-11-10 | Marvell International Ltd. | Providing error checking and correcting (ECC) capability for memory |
KR20140071639A (ko) * | 2012-12-04 | 2014-06-12 | 에스케이하이닉스 주식회사 | 동작 속도가 향상된 반도체 메모리 장치 및 그것을 포함하는 데이터 저장 장치 |
US9064606B2 (en) | 2012-12-20 | 2015-06-23 | Advanced Micro Devices, Inc. | Memory interface supporting both ECC and per-byte data masking |
KR102133233B1 (ko) * | 2013-05-06 | 2020-07-13 | 삼성전자주식회사 | 반도체 메모리 장치 및 메모리 시스템 |
KR101750662B1 (ko) * | 2013-06-24 | 2017-06-23 | 마이크론 테크놀로지, 인크. | 데이터 에러 교정용 회로, 장치, 및 방법 |
CN103594120B (zh) * | 2013-10-31 | 2018-08-21 | 西安紫光国芯半导体有限公司 | 以读代写的存储器纠错方法 |
US10061645B2 (en) * | 2015-06-30 | 2018-08-28 | Qualcomm Incorporated | Memory array and link error correction in a low power memory sub-system |
US10140175B2 (en) | 2015-11-20 | 2018-11-27 | Qualcomm Incorporated | Protecting an ECC location when transmitting correction data across a memory link |
-
2016
- 2016-05-10 US US15/151,329 patent/US9965352B2/en active Active
- 2016-09-28 CN CN201680067416.2A patent/CN108292248B/zh active Active
- 2016-09-28 WO PCT/US2016/054175 patent/WO2017087076A1/en active Application Filing
- 2016-09-28 AU AU2016355460A patent/AU2016355460A1/en not_active Abandoned
- 2016-09-28 EP EP16779289.4A patent/EP3377974B1/en active Active
- 2016-09-28 JP JP2018525570A patent/JP2019500686A/ja active Pending
- 2016-09-28 KR KR1020187014083A patent/KR20180084798A/ko unknown
- 2016-09-28 CN CN202110632711.0A patent/CN113176862A/zh active Pending
- 2016-09-28 BR BR112018010196A patent/BR112018010196A2/pt not_active Application Discontinuation
- 2016-10-18 TW TW105133553A patent/TW201729213A/zh unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101507171A (zh) * | 2006-07-06 | 2009-08-12 | 普罗维根特有限公司 | 使用迭代码度量的通信链路控制 |
CN101246748A (zh) * | 2007-02-13 | 2008-08-20 | 三星电子株式会社 | 基于字节的掩码操作的设备和产生奇偶校验数据的方法 |
CN103533045A (zh) * | 2013-10-12 | 2014-01-22 | 江苏华丽网络工程有限公司 | 一种用于pcie数据链路层高性能容错的方法 |
Also Published As
Publication number | Publication date |
---|---|
BR112018010196A2 (pt) | 2018-11-21 |
CN108292248A (zh) | 2018-07-17 |
EP3377974A1 (en) | 2018-09-26 |
AU2016355460A1 (en) | 2018-05-10 |
CN113176862A (zh) | 2021-07-27 |
WO2017087076A1 (en) | 2017-05-26 |
EP3377974B1 (en) | 2019-10-23 |
KR20180084798A (ko) | 2018-07-25 |
JP2019500686A (ja) | 2019-01-10 |
TW201729213A (zh) | 2017-08-16 |
US20170147432A1 (en) | 2017-05-25 |
US9965352B2 (en) | 2018-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108292248B (zh) | 存储器系统中的单独链路和阵列纠错 | |
CN108351820B (zh) | 在跨存储器链路传送纠正数据时保护ecc位置 | |
US10061645B2 (en) | Memory array and link error correction in a low power memory sub-system | |
CN110120243B (zh) | 半导体存储器装置、操作其的方法以及存储器系统 | |
CN110377453B (zh) | 半导体存储器装置和包括半导体存储器装置的存储器系统 | |
US10684793B2 (en) | Semiconductor memory devices including error correction circuits and methods of operating the semiconductor memory devices | |
JP6630869B2 (ja) | メモリシステムにおけるリンクエラー訂正 | |
US8869007B2 (en) | Three dimensional (3D) memory device sparing | |
US10546649B2 (en) | Post package repair for mapping to a memory failure pattern | |
US8959417B2 (en) | Providing low-latency error correcting code capability for memory | |
KR20170039057A (ko) | 메모리 시스템 및 메모리 에러 정정 방법 | |
US10606690B2 (en) | Memory controller error checking process using internal memory device codes | |
KR102589913B1 (ko) | 반도체 메모리 장치 및 이를 포함하는 메모리 시스템 | |
US11010304B2 (en) | Memory with reduced exposure to manufacturing related data corruption errors | |
BR112018010187B1 (pt) | Proteção de um local de ecc ao transmitir dados de correção através de um link de memória | |
CN116340049A (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 |