CN108538337B - 具有固定带宽接口的存储器设备中的集成的错误检查和校正(ecc) - Google Patents

具有固定带宽接口的存储器设备中的集成的错误检查和校正(ecc) Download PDF

Info

Publication number
CN108538337B
CN108538337B CN201810170935.2A CN201810170935A CN108538337B CN 108538337 B CN108538337 B CN 108538337B CN 201810170935 A CN201810170935 A CN 201810170935A CN 108538337 B CN108538337 B CN 108538337B
Authority
CN
China
Prior art keywords
memory
memory die
bits
interface
ecc
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
CN201810170935.2A
Other languages
English (en)
Other versions
CN108538337A (zh
Inventor
C·E·考克斯
U·康
N·阿布伦宁
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.)
Taihao Research Co ltd
Original Assignee
Taihao Research 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 Taihao Research Co ltd filed Critical Taihao Research Co ltd
Publication of CN108538337A publication Critical patent/CN108538337A/zh
Application granted granted Critical
Publication of CN108538337B publication Critical patent/CN108538337B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • 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
    • 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
    • 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
    • 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/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • 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/1201Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details comprising I/O circuitry
    • 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

Abstract

一种具有固定带宽接口的多管芯存储器设备可以选择性地将多个存储器管芯的接口的部分连接作为用于多管芯设备的存储器通道。存储器管芯的接口比特的选择性应用使得在没有足够的连接器来交换ECC信息的存储器设备中ECC(错误检查和校正)的应用。该装置包括用于选择性地将CAS(列地址选择)信号应用于存储器管芯以选择性地连接存储器管芯的连接器的电路。CAS选择可以提供各种配置,其中第一存储器管芯接口的所选择的比特与第二存储器管芯接口的所选择的比特或多个比特组合以提供设备接口。存储器管芯可以在字节模式中操作,以只应用其数据I/O(输入/输出)接口的一半,并将CAS加倍以提供对存储器阵列的存取。

Description

具有固定带宽接口的存储器设备中的集成的错误检查和校正 (ECC)
优先权
本申请是基于2017年3月2日提交的美国临时申请第62/465,837号的非临时申请,并且要求该申请的优先权益。该临时申请通过引用被并入到本文中。
技术领域
本描述总体上涉及计算机存储器系统,并且更具体的描述涉及将错误检查和校正集成在能够进行字节模式操作的存储器设备中。
背景技术
包括服务器、桌面型计算机或膝上型计算机、移动设备、或消费性和商业电子产品的几乎任何各种电子设备都利用存储器资源来存储并且管理数据以及代码以用于由处理资源执行。存储器设备制造工艺特征几何尺寸持续缩小,这使得存储器密度持续增加。然而,缩放为更高的密度很可能会增加存储器设备中的错误的数量。一种用于解决存储器错误的技术是采用ECC(错误检查和校正,也被称为纠错编码)。传统地,存储器控制器执行错误检查和校正。
然而,使用ECC通常需要交换更多的数据比特,这可能需要总线宽度增加以及到存储器设备数据接口的相对应的改变。低功耗存储器设备通常具有x16接口、或者具有16个连接器和相对应的16个内部数据路径的数据总线接口。因此,ECC应用于低功耗存储器设备通常涉及添加第二设备、或添加接近两倍的存储器以允许ECC。虽然浪费了资源,但是存储器设备的数量加倍通常是仅有的实际的选项,出于ECC的目的实现到低功耗存储器的接口改变,将会需要对存储器的I/O(输入/输出)接口的大量的重新设计和大量的内部重新设计以提供信号线以用于ECC信息的交换。
因此,针对其中ECC被认为是必要的系统,传统地会使用非低功耗存储器。然而,存在操作条件,例如,高温度环境,其中低功耗存储器比标准商品存储器表现得更好。在这样的系统中,使用低功耗存储器设备,并且为了能够实现ECC,系统将被部署有所需要的多个设备。
附图说明
以下描述包括对附图的讨论,该讨论具有通过本发明的实现的示例给出的示例性示出。附图应当通过示例而不是通过限制的方式来理解。如本文中所使用的,对一个或多个“实施例”或“示例”的引用将被理解为描述包括在本发明的至少一个实现中的特定特征、结构、和/或特性。因此,出现在本文中的短语(例如,“在一个示例中”或“在可替代实现中”)描述了本发明的各种示例和实现,并且不一定所有都指代相同的示例。然而,它们也不一定相互排斥。
图1是用于将ECC应用于具有固定的通道宽度而没有传统的ECC比特分配的多芯片存储器的系统的示例的框图。
图2A是存储器设备接口的示例的表示,其中在字节模式中使用的x16接口实现x9接口以用于ECC的实现。
图2B是设备的示例的框图,其中在字节模式中使用的x16接口实现x9接口以用于ECC的实现。
图3A是存储器设备的示例的表示,其中添加附加的I/O路径以在两个x16设备之上扩展数据和ECC比特路径,以实现三个x9接口以用于ECC的实现。
图3B是设备的示例的框图,其中在固定宽度的通道内添加附加的I/O路径以在两个x16设备之上扩展数据和ECC比特路径,以实现三个x9接口以用于ECC的实现。
图4A是存储器设备接口的示例的表示,其中列选择线被多路复用以将存储区域分离为多个部分以用于在两个设备之上扩展数据和ECC比特路径,而不必增加I/O路径。
图4B是具有图4A的两个非断言的列选择线的存储器设备接口的示例的表示。
图4C是具有图4A的两个断言的列选择线的存储器设备接口的示例的表示。
图4D是具有图4A的一个断言的和一个非断言的列选择线的存储器设备接口的示例的表示。
图4E是存储器设备接口的示例的框图,其中列选择线被多路复用以将存储区域分离为多个部分以用于在两个设备之上扩展数据和ECC比特路径,而不必增加I/O路径。
图4F是设备的示例的框图,其中列选择线被多路复用以将存储区域分离为多个部分以用于在两个设备之上扩展数据和ECC比特路径,而不必增加I/O路径。
图5是可以与不同带宽的系统数据总线接合以实现字节模式操作的存储器设备的示例的框图。
图6是可以在不同的模式中与不同带宽的系统数据总线接合的存储器设备的示例的框图。
图7是示出了到存储器元件的I/O路径和选择逻辑的存储器设备的示例的框图。
图8是用于在传统上不实现ECC的具有固定宽度的通道的多芯片环境中提供ECC的过程的示例的流程图。
图9是其中可以实现ECC的具有字节模式存储器的存储器子系统的示例的框图。
图10是其中低功耗存储器设备可以在字节模式中被实现具有ECC的计算系统的示例的框图。
图11是其中低功耗存储器设备可以在字节模式中被实现具有ECC的移动设备的示例的框图。
以下是对某些细节和实现的描述,包括对附图的描述,其可以描绘下面所述的示例中的一些或所有,以及讨论本文中呈现的发明的概念的其他潜在的示例或实现。
具体实施方式
如本文中所描述的,存储器设备可以在字节模式中被操作以使得能够使用一个或多个I/O(输入/输出)信号线来在具有到存储器设备的固定通道宽度的系统中实现ECC(错误检查与校验)。存在各种配置,其中字节模式能够使用存储器设备的不同部分来使得在具有典型的固定通道宽度和I/O接口大小(例如,x16)的存储器设备中实现ECC。虽然引用了字节模式,但是应该理解的是,可以使用类似的技术使得存储器设备能够与比内部带宽宽度更小的总线进行接合,以利用带宽的一部分以用于数据并且一部分以用于ECC。
通常,设备包括用于选择性地将CAS(列地址选择)信号应用于存储器管芯以选择性地连接存储器管芯的连接器的电路。CAS选择可以提供各种配置,其中第一存储器管芯接口的所选择的比特与第二存储器管芯接口的所选择的一个或多个比特进行组合来提供设备接口。存储器管芯可以在字节模式中操作,以只应用其数据I/O(输入/输出)接口的一半,将CAS加倍以提供对存储器阵列的存取。
具有固定接口的存储器设备的特定系统实现可以通过在管芯上计算和存储ECC信息以及与主机(其可以包括存储器控制器)交换ECC比特来实现ECC。对固定接口的引用可以指示支持预期数据带宽的存储器设备的接口,例如具有多个数据(DQ)信号线或信号线接口以支持期望的带宽。通常,数据带宽被提供为2的幂(例如,2N数据比特,其中N是整数)。固定接口不包括用于ECC的信号线或信号线接口。因此,例如,存储器设备可以具有二进制或2的幂数量的信号线接口,但是不具有用于ECC的数据比特的信号线的附加的信号线接口。作为具体的示例,其他商品存储设备可以具有5个信号线接口,其中4个用于数据,1个用于ECC,或者9个信号线接口,其中8个用于数据,1个用于ECC。在固定接口系统中,所提及的商品存储器设备的第5个或第9个比特在设备上是不可用的。因此,传统方法涉及添加额外的设备以耦合到更宽的存储器通道,并且附加设备将只连接例如用于ECC的单个信号线。
在涉及汽车和某些IOT(物联网)网关设备的应用中,由于功耗和耐热性能力,系统趋于使用低功耗(LP)存储器设备。然而,传统的LP存储器设备,例如,LPDDR2(低功耗双倍速版本2)、LPDDR3(低功耗双倍速版本3)、以及LPDDR4(低功耗双倍速版本4)具有x16接口,其不允许在不添加另一设备的情况下交换ECC比特。不能进行ECC比特的交换是因为在二进制数的数据比特被交换时没有信号线可用于ECC信息。新兴的字节模式操作使LPDDR存储器设备或其他设备能够像两个独立的部分(例如,两个独立的x8接口)一样进行操作。
向LPDDR设备的ECC的当前应用需要带宽非常密集的软件替代物或使用每通道附加的x16DRAM管芯,因为通道宽度刚好也是x16。软件替代物添加了开销和延迟,并且使用每通道附加的x16DRAM会导致100%的开销花费增加。
扩展字节模式操作可以使得向LPDDR设备的ECC的实现。利用字节模式,DRAM设备可能对两个存储器管芯的DQ或数据信号进行多路复用,每管芯从x16下降到只有x8,并且然后在封装级将两个x8接合在一起以形成x16通道。在这样的配置中,命令和地址(C/A)线到达两个管芯,但是每个字节的DQ可以从不同的管芯中选择。随着如本文所描述的ECC的实现,x8接口变成x9。根据本文中所描述的内容,列选择配置可以被改变以将存储器阵列中的一些重新应用作为ECC比特。
存储器设备内的内部DQ(数据)路径使得能够在存储器核心或存储器阵列与外部I/O或面向外部的连接器之间交换数据。LPDDR设备可以通过重新映射或改变内部DQ的选择或两者来在字节模式中实现基于ECC的,而进行对存储器设备的最小内部改变。
图1是用于将ECC应用于具有固定的通道宽度而没有传统的ECC比特分配的多芯片存储器的系统的示例的框图。系统100包括主机110,其与多芯片存储器120耦合。主机110表示用于系统100的控件,并且可以是或包括处理器或中央处理系统。主机110可以包括存储器控制器,其用于管理对芯片存储器120的存取。系统100可以是任何类型的计算系统、或车载控制系统或娱乐系统。系统100可以是传感器系统或包括处理硬件和存储器的其他类型的系统。
主机110和多芯片存储器120通过一个或多个系统总线(例如,命令和地址(CA)总线112和数据(DQ)总线114)进行互连。如本文中所描述的,DQ总线114包括用于用户数据的数据比特和用于错误检查和校正操作以改进数据传输的可靠性的ECC比特。CA总线112使主机110能够提供命令和地址信息以使得存储器设备执行存储器存取操作,例如读取、写入、刷新或与存取事务相关联的其他操作。存取事物可以包括多个命令和多个操作。通常在多个周期或单元间隔(UI)内发生读取和写入,其响应于命令或命令序列提供了通过数据总线的连续信号传输的突发。主机110可以通过未明确示出的其他总线或连接与多芯片存储器120连接。
多芯片存储器120提供了包括多个存储器管芯122的存储器封装。存储器管芯122可以包括两个或更多个存储器芯片。每个管芯可以支持一个或多个通道,指代用于CA总线和相对应的DQ总线的信号线的组合。DQ路径126表示从多芯片存储器120的封装到存储器管芯122的数据路径。DQ路径126可以是或包括外部封装接口硬件,例如,到存储器管芯122的相对应的引脚或焊盘的连接器、焊点、或引脚、以及电气通路。在一个示例中,DQ总线144上的用于DQ和ECC的信号线以所选择的线连接到存储器管芯122的所选择的I/O(输入/输出)数据引脚的方式进行路由。在一个示例中,DQ路径126可以是全局I/O路径,并且路径可以在存储器管芯122的多个I/O接口当中共享。例如,相同的DQ路径126可以被路由到两个独立的存储器管芯122的I/O接口。然后,路径可以在两个存储器管芯之间被切换或选择以基于哪个设备在什么时间对其进行存取之间的切换,来实现及时地通信通路的共享。
在一个示例中,多芯片存储器120包括CAS选择124,其用于选择列地址选择(CAS)信号到不同存储器管芯122的应用。在一个示例中,CA总线信号线中的所选择的一个或CA总线信号线中的所选择的一些提供CAS来触发数据的读取和写入。在当前存储器设备架构中,CA总线112上的通信速度比用于读取(例如,取回或锁存)数据或将数据写入(存储)到存储器阵列的所需要的延迟更快。尽管存储器阵列忙于执行功能,但是共享控制硬件或存取硬件的阵列的选择被锁定而不能处理独立的存取事务。因此,例如,通常对相同数据阵列的连续读取将必须等待处理。当前架构提供存取硬件的分离,并且主机110将通常提供对独立部分的连续存取,例如,对两个独立的组块(bank)的连续读取事务。
在系统100中,CAS选择124在多芯片存储器120内提供用于在多个不同的CAS信号当中选择以使存储器管芯122对其存储器阵列的不同部分进行存取的能力。因此,在一个示例中,存储器管芯122可以在字节模式中操作并且被选择以通过相同的DQ I/O接口对其存储器阵列的不同部分进行存取。在字节模式中,存储器管芯122限制对其I/O端口中的被选择的一个端口的存取(例如,管芯上的8DQ引脚而不是16DQ引脚)。但是利用CAS选择,存储器管芯可以将存储器事务应用于存储器阵列的不同部分,引起使用更多的存储器阵列。另外,例如,某些I/O将永远不会被使用,并且大部分存储器阵列将是不被使用的。
在一个示例中,存储器管芯122具有本地N比特接口(例如,具有16比特数据总线接口的x16存储器设备)。用于DQ总线114的通道宽度也是N比特宽,并因此包括用于该通道的N个信号线。因此,多芯片存储器120可以包括N比特接口。在其中多芯片存储器120包括两个存储器管芯122的示例中,两个管芯可以只应用其DQ接口的N/2比特(例如,每个8比特),在多芯片存储器120中两个(N/2)比特接口被组合成N比特DQ通道,其中N比特的通道可以应用少于全部N比特(例如,仅N/2比特)以用于数据,并且应用至少一比特以用于ECC。例如,多芯片存储器120可以具有16比特DQ接口,其中8比特用于数据,而1比特用于ECC。在任何配置中,如果存储器管芯122以字节模式配置或等同物来操作,则它们将传输用于读取的所有预提取数据或用于写入的所有写入数据,以通过N/2比特而不是全部N比特来对整个存储器阵列进行存取。在一个示例中,多芯片存储器120表示包含两个低功耗双倍速(LPDDR)存储器芯片或存储器管芯122的存储器封装。存储器管芯或存储器芯片可以被称为DRAM(动态随机存取存储器)设备或管芯。多芯片存储器120包括用于实现对两个LPDDR管芯的CAS应用的选择的电路或逻辑。
在各种配置中,多芯片存储器120可以包括选择逻辑,例如CAS选择124或用于DQ路径126的DQ路径选择或两者。在一个示例中,多芯片存储器120使用两个存储器管芯122中的一个以用于DQ,而另一个用于ECC的单个信号线。在一个示例中,多芯片存储器120可以在用于DQ的两个存储器管芯122中的一个与用于ECC的另一个信号线之间交替。这样的配置可以实现存储器管芯122的存储器空间的更完全的使用。在具有x16接口的一个示例中,系统100可以一次使用9个比特或每事务使用9个比特,但是如果一个设备用于DQ而另一个用于ECC,则选择性地应用CAS以尽可能使用更多的存储器管芯。下面更详细地提供各种示例。
图2A是存储器设备接口的示例的表示,其中在字节模式中使用的x16接口实现x9接口以用于ECC的实现。系统202向被示出用于D0:D15中的每一个的列选择线(CSL)252提供了用于存储器设备的I/O的表示,其表示数据I/O连接器。在一个示例中,D0:D7表示用于与一个存储器管芯接合的信号线,并且D8:D15表示用于与另一个存储器管芯接合的信号线,其中两个管芯都在字节模式中操作。
在一个示例中,每个DQ路径耦合到在存取周期内提供16比特的存储器单元。在一个示例中,两个x16DRAM可以被置于字节模式中(例如,经由模式寄存器配置),并且然后操作为x9设备而不是独立的x8设备。因此,字节模式可以具有替代方案,以在字节模式中操作为x8(或x(N/2)设备),或在字节模式中操作为具有ECC的x9设备(或x((N/2)+1)设备)。在系统202中,D0:D7提供数据比特,而DQ8提供ECC比特。在一个示例中,D9:D15被阻止或选通。作为阻止或选通的信号线,信号线可能无法用于存取。
两个设备作为具有ECC的单个x9DRAM的实现可以在不对DRAM进行内部改变的情况下发生。然而,这样的实现是以较低的带宽为代价的。通常,DRAM在字节模式中将列选择线(CSL 252)加倍,因此每个DQ都可以对两倍的阵列区域进行存取,这不会留下未使用的单元。然而,通过选通或阻止I/O,存储器设备具有不对存储器阵列进行存取的DQ信号线,这留下了未被使用的存储器单元。通常,在没有用于增加存储器的某些列的应用的一些电路或逻辑的情况下,字节模式操作将产生未使用的存储器单元。在下面提供的示例中,可以利用增加全局列选择或全局I/O线的数量的电路来增加存储器单元使用百分比。
例如,如果16个线中的7个未被使用,则大约存储器资源的44%是未使用的。这样的带宽损失是相对高的,但是与加倍存储器资源的数量(例如,使用两个x16设备)的未使用的百分比是相同的,但是不一定会添加第二存储器设备,这降低了系统组件成本。在一个示例中,用于列选择线的选通逻辑可以用于阻止DQ9:DQ15存储区域。在一个示例中,选通逻辑可以包括禁用对被阻止的信号线的存取的开关。
系统202表示在I/O接口中具有N=16个连接器的多芯片或多管芯封装,以耦合到具有少于N个连接器的9个信号线的系统总线的通道。如图所示,D0:D7表示第一存储器管芯,并且D8:D15表示第二存储器管芯。未在系统202中具体示出的第一存储器管芯和第二存储器管芯包括16个连接器,但是可以在字节模式中操作以将存储器阵列资源与用于该管芯的相同的I/O绑定。因此,八个DQ提供对另外可以通过16个DQ I/O连接器进行存取的存储器资源的存取。
行解码器(Dec)逻辑240表示用于对系统202的封装中的行地址进行解码的电路。列解码器(Dec)逻辑250表示用于对列地址进行解码的电路。CSL 252表示跨行地址进行选择的列选择线。系统202可以提供字节模式操作和列地址选择信令以提供来自两个存储器管芯的组合的通道,其中第一个提供对8(或N/2)个连接器的存取,并且第二个只提供对用于ECC的1个的存取。在所示的一个示例中,系统202在16个UI(或BL16)的BL(突发长度)上操作。因此,数据210在16个循环突发(来自每个DQ的16个比特)内从八个DQ提供128个比特。ECC比特220也可以提供16个比特,一个比特用于八个DQ的每个周期。用于D9:D15的连接器可以是被阻止的信号线230,并因此到由这些路径存取的存储器资源的数据路径未被使用。在一个示例中,阻止的连接器230在多管芯封装内通过选通逻辑被阻止,所述选通逻辑禁止将连接器用于第二存储器管芯的相对应的信号线。
图2B是设备的示例的框图,其中在字节模式中使用的x16接口实现x9接口以用于ECC的实现。系统204提供系统202的逻辑图的硬件表示的示例。系统204包括表示多器件封装的封装260。封装260包括两个存储器芯片262和264。
存储器芯片262包括多个存储器子阵列272,并且包括在子阵列272和数据连接器DQB0和DQB1(在系统202中分别被表示为D0:D7和D8:D15)之间的映射或路由数据路径。子阵列272表示存储器阵列的单独可寻址部分,其共同指代存储器存储单元。子阵列可以指代组块或组块分组或存储单元的其他划分或其组合。在一个示例中,芯片262包括逻辑274,其表示用于将数据路径从DQ I/O路由到子阵列272的逻辑块或电路。逻辑274包括芯片262内的电路,其用于选择性地将数据从子阵列272路由到DQ I/O。在一个示例中,逻辑274通过芯片262来实现字节模式的应用,其中DQB0或DQB1被选择用于存储器存取,但是另一个不用于从外部连接到存储器芯片。在一个示例中,逻辑274可以在字节模式中将所有子阵列272路由到所选择的DQ块,这可以实现通过较少的I/O连接器来使用整个存储器资源。CA表示到命令和地址(CA)总线的命令和地址连接器。在一个示例中,CA总线在到封装260的CA连接器的芯片262和264之间被共享。
DQB0表示DQ I/O连接器的块,其表示多个连接器。数量例如可以是一个字节或八个连接器,或者半字节或四个连接器,或一些其他数量的连接器。芯片262可以分别被组织为“较上的”和“较下的”块DQB0和DQB1。在一个示例中,如图所示,DQB0和DQB1各自包括N/2个连接器,但可以使用其他数量。因此,在一个示例中,芯片262包括用于DQ I/O的N个连接器。
芯片264可以被构造为与芯片262类似或相同,具有DQB0和DQB1连接器,以及CA连接器。芯片264被示为具有子阵列282,所述子阵列282利用数据路径通过逻辑284映射到用于芯片的DQ I/O。在一个示例中,逻辑284选择性地将DQ I/O映射到子阵列282,其可以实现字节模式或类似的操作。
在一个示例中,DQ I/O从芯片262和264进行组合以用于封装260的外部DQ I/O。因此,如图所示,来自芯片262的DQB0和来自芯片264的DQB0可以被路由以连接到封装上的DQ连接器。来自芯片262的DQB0和来自芯片264的DQB0具有N/2个连接器,并且用于封装260的DQ I/O包括N个连接器。在一个示例中,用于芯片262和264的连接器可以被映射到用于封装260的DQ I/O连接器,但是不是封装中的所有数据路径都被使用。虽然,用于芯片262和264的接口提供用于交换DQ信号的正确数量的信号线,但是封装260上的DQ I/O的N个连接器包括数据和ECC。考虑上面的示例,其中N=16,但只使用八个DQ比特和一个ECC比特。在这样的实现中,封装204的外部通道可以具有九个信号线,所述九个信号线可以例如被映射为到芯片262的8个DQ比特以及到芯片264的1个ECC比特。在一个示例中,除了用于DQB1的连接器以外,用于芯片264的DQB0的剩余的7个信号通路可以被选通或阻止,用于DQB1的连接器可以由路由逻辑284在内部被阻止。
图3A是存储器设备接口的示例的表示,其中添加附加的I/O路径以在两个x16设备之上扩展数据和ECC比特路径,以实现三个x9接口以用于ECC的实现。系统302提供存储器设备的I/O的表示,作为系统202的替代方案。系统302示出了由各种数据区段所示的可寻址存储器阵列空间。数据区段应理解为表示可寻址空间,其中作为整体,存储器设备内的存储器空间可被认为是存储器单元的阵列。基于通过附加的全局I/O线的更多寻址的应用,系统202中表示的相同的DQ空间可被认为将在系统302中被细分。全局I/O线指代多管芯存储器封装内部的数据路径,并所述数据路径将存储器管芯连接到封装连接器。附加的全局I/O线可以基于CAS的选择来实现存储器空间的附加的选择。
系统302示出了用于提供行解码的行解码器(Dec)340,以及用于提供列解码的列解码器(Col Dec)350。行地址选择(RAS)触发行解码硬件,并且列地址选择(CAS)触发列解码硬件。CSL 352可以提供CAS选择以实现针对系统302的存储器设备的所选择的DQ。
在系统302中,示出了CSL 352以用于一起使用的两个设备的16个DQ,D0:D15用于第一设备,并且D16:D31用于第二设备,示出了系统302内的总共32个可选信号线。如图所示,利用附加的全局选择线,系统302可以实现8个DQ的3个独立分组加上相关联的ECC比特。分组或块A包括DQ0:DQ7被示为数据312,被实现在第一设备的D0:D7中,ECC比特作为第二设备的D16。对于术语,D0指代设备的数据I/O连接器,而DQ0指代用于多器件封装内的DQ信号线的数据路径。因此,分组或块B包括DQ0:DQ7被示为数据314,被实现在第一设备的D8:D15中,并且ECC被实现在第二设备的D17中。分组或块C包括DQ0:DQ7被示为数据316,被实现在第二设备中的D24:D31中,而ECC被实现在第二设备的D18中。应该理解,映射仅是说明性的,并且可以使用不同但相似的映射来实现本文提供的教导。如图所示,ECC比特320被实现在第二设备的连续部分中,并且第二设备的D19:D23是阻止的或未使用的部分330,并且可以被选通或选择性地实现,如所描述的。
在一个示例中,系统302表示通过增加全局I/O线而实现的配置。在相对于系统202的系统302的特定示例中,全局I/O线被加倍。全局I/O线的增加允许存储区域的划分的更细的粒度,并且在这种情况下允许跨两个设备的3路划分。应该理解的是,三路划分实际上将I/O分离为五个部分,如上所述,其中三个x8接口具有相对应的ECC DQ路径以及未使用的部分。系统302的配置将未使用的空间减少到32列中的5列,或约16%。在一个示例中,系统302包括多路复用或多路复用逻辑,其用于从DQ0:DQ7(例如,A、B和C)的三个不同存储区域中进行选择。在一个示例中,不同块或存储区域的选择可以基于CAS信号利用多路复用全局I/O线来完成。
图3B是设备的示例的框图,其中在固定宽度的通道内添加附加的I/O路径以在两个x16设备之上扩展数据和ECC比特路径,以实现三个x9接口以用于ECC的实现。系统304表示系统302的逻辑的硬件实现的一个示例。
系统304包括表示多器件封装的封装360。封装360包括两个存储器芯片362和364。封装360的单独的组件可以与上述封装260的那些组件相同或类似。这些描述将不会被重复详细说明。芯片362包括存储器子阵列372和逻辑374,其用于将子阵列选择性地路由到芯片的DQ I/O连接器。类似地,芯片364包括存储器子阵列382和逻辑384,以将子阵列选择性地路由到芯片的DQ I/O连接器。在一个示例中,CA总线作为多点总线在芯片之间被共享。
封装360与封装260的不同之处在于封装360包括逻辑366,其用于在附加的全局I/O线当中进行选择。在一个示例中,封装360包括用于外部总线的连接器,其可以是多达N个的信号线,其中芯片362和芯片364都具有带有N个数据I/O连接器的本地N比特接口。逻辑366将芯片362和364的连接器映射到封装360的外部连接器。在一个示例中,CA总线的一个或多个信号线用作用于逻辑366的控制。在一个示例中,逻辑366在不同的内部数据路径当中进行选择以耦合到提供数据和ECC的外部DQ I/O。
在一个示例中,芯片362和364在常规模式中操作,而不是在字节模式中操作。逻辑366可以针对芯片提供对连接器的选择,而不是使芯片内的逻辑提供字节模式路由。在一个示例中,封装360内的芯片362和364可以在字节模式中操作,并因此附加的通路被示为虚线。在这样的配置中,逻辑366将选择要选择哪个芯片,并将附加选择逻辑提供给芯片,以使得逻辑374和384的操作能够提供附加选择。因此,封装360内部的逻辑可以结合存储器芯片内部的逻辑一起来工作,以选择数据I/O到DQ的映射。
图4A是存储器设备接口的示例的表示,其中列选择线被多路复用以将存储区域分离为多个部分以用于在两个设备之上扩展数据和ECC比特路径,而不必增加I/O路径。系统402提供存储器设备的I/O的表示,作为系统202或系统302的替代方案。系统402示出了由各种数据区段所示的可寻址存储器阵列空间。与系统302类似,系统402示出了在系统202中表示的相同的DQ空间,其基于更多寻址的应用而被细分。在系统402中,通过多路复用CAS选择来完成更多寻址的应用。
在系统402的一个示例中,存在第一和第二存储器设备或存储器管芯,其中第一个具有D0:D7,并且第二个具有D8:D15。D0:D15表示用于存储设备的数据I/O连接器。系统402表示多器件封装,其具有用于实现行解码的行解码器(Dec)逻辑420和用于实现列解码的列解码器(Col Dec)逻辑430。在一个示例中,每个数据I/O连接器D0:D15可以每突发长度的周期来传送一比特(例如,发送读取命令或接收写入命令)。系统402的示例假设BL=16,并因此每个数据I/O连接器可以传送16比特。
系统402包括多路复用或多路复用逻辑(未明确示出)以用于从三个不同的区域或分组中进行选择,所述三个不同的区域或分组可以被认为是具有八个DQ和ECC比特或信号的三个独立的x9接口。虽然可以理解的是不同的配置是可能的,但是如图所示,部分A或分组A包括DQ0:DQ8(包括ECC比特)。分组A(DQ_A 440)是利用第一存储器管芯的D0:D7的第一部分和第二存储器管芯的D8来实现的。部分B或分组B(DQ_B 450)包括第一存储器管芯的DQ0:DQ6和第二存储器管芯的DQ9和DQ10。部分C或分组C(DQ_C 460)包括第一存储器管芯的DQ7和第二管芯的DQ8:DQ15。可以通过利用CSL[0:1](如CSL[0]432CSL[1]434所示)的CAS选择来控制对各种DQ的选择。系统402还示出了标记为“B”的其他部分,指代可以从使用中被阻止的部分。
利用系统402,DRAM可以在列选择配置中包括多路复用器,其用于提供对CSL[0:1]的控制而不具有附加的I/O。例如,在系统302的示例中,可以利用附加的列选择逻辑和附加的全局I/O来完成配置。系统402对列选择进行多路复用并且完成用于控制列选择的类似的能力。在一个示例中,系统402包括附加的多路复用逻辑,其用于从不同的DQ分组中进行选择。在一个示例中,系统402还包括用于未使用的区域的附加选通逻辑。因此,系统402可以基于选择逻辑来将16个连接器表示为32个不同的数据路径。
图4B是具有图4A的两个非断言的列选择线的存储器设备接口的示例的表示。系统404示出了系统402的示例,其中,针对两个存储器设备CSL[0]被选择或设置,CSL[1]被取消选择或未设置。作为针对两个存储器设备选择CSL[0]的结果,第一存储器设备选择或实现D0:D7作为DQ_A[0:7]以用于数据442,并且第二存储器设备选择或实现D8作为ECC_A以用于ECC 444。D9:D15可以是未使用的部分446。
图4C是具有图4A的两个断言的列选择线的存储器设备接口的示例的表示。系统406示出了系统402的示例,其中,针对两个存储器设备,CSL[1]被选择或设置,并且CSL[0]被取消选择或未设置。作为针对两个存储器设备选择CSL[1]的结果,第一存储器设备选择或实现D7作为DQ_C[0],并且第二存储器设备选择或实现D9:D15作为DQ_C[1:7]以用于数据452。第一存储器设备的D0:D6可以是未使用的选择456。第二设备可以选择D8作为ECC_B以用于ECC 454。
图4D是具有图4A的一个断言的和一个非断言的列选择线的存储器设备接口的示例的表示。系统408示出了系统402的示例,其中,针对第一存储器设备CSL[1]被设置或选择,并且针对第二存储器设备,CSL[0]被设置或选择。在这样的示例中,第一存储器设备选择或实现D0:D6作为DQ_B[0:6],并且第二存储器设备选择或启用D10作为用于数据462的DQ_B[7]。第二设备还选择或实现D9作为ECC_B以用于ECC 464。D7、D8和D11:D15可以是未使用的部分466。
图4E是存储器设备接口的示例的框图,其中列选择线被多路复用以将存储区域分离为多个部分以用于在两个设备之上扩展数据和ECC比特路径,而不必增加I/O路径。系统412示出了系统402的一个示例,在列解码器逻辑430中具有多路复用电路436。
在一个示例中,取决于控制逻辑,多路复用逻辑选择CSL[0]432或CSL[1]434,其中控制逻辑可以是控制信号、列地址选择信号或组合。CSL的选择确定选择存储器资源中的哪些部分被选择用于输出为数据。根据系统402中所示的内容,数据可以来自不同的部分,并且可以包括阻止的或未使用的存储器部分。利用可以包括多路复用器的多路复用电路436,系统412可以从包括存储器的不同部分的D0:D15当中选择数据比特和ECC(例如,8个数据比特和1个ECC比特)。控制信号可以是或基于用于存储器存取命令的CAS信号。多路复用电路可以在不同的CAS信号线或CSL信号当中选择。
图4F是设备的示例的框图,其中列选择线被多路复用以将存储区域分离为多个部分以用于在两个设备之上扩展数据和ECC比特路径,而不必增加I/O路径。系统414表示系统402的逻辑的硬件实现的一个示例。
系统414包括表示多器件封装的封装470。封装470包括两个存储器芯片472和474。封装470的单独的组件可以与上述封装260的那些组件相同或类似。这些描述将不会被重复详细说明。芯片472包括存储器子阵列482和逻辑484,,其用于将子阵列选择性地路由到芯片的DQ I/O连接器。类似地,芯片474包括存储器子阵列492和逻辑494,其用于将子阵列选择性地路由到芯片的DQ I/O连接器。在一个示例中,CA总线作为多点总线在芯片之间被共享。
封装470与封装260的不同之处在于封装470包括逻辑476,其用于在附加的全局I/O线当中进行选择。在一个示例中,封装470包括用于外部总线的连接器,其可以多达N个信号线,其中芯片472和芯片474都具有带有N个数据I/O连接器的本地N比特接口。在一个示例中,逻辑476将芯片472和474的连接器映射到封装470的CA总线。在一个示例中,CA总线的一个或多个信号线用作用于逻辑476的控制。在一个示例中,逻辑476在不同的内部命令信号路径当中进行选择以耦合到将命令提供给封装470的CA总线I/O。在一个示例中,芯片472和474在字节模式中操作。逻辑476可以针对芯片提供对命令连接器的选择以提供CAS选择,以及将子阵列映射到封装470的外部数据I/O连接器。
图5是可以与不同带宽的系统数据总线接合以实现字节模式操作的存储器设备的示例的框图。正如在全文中所提到的,字节模式可以指代其中传送少于全部标准接口数量的比特的模式。通常,数量将是典型I/O接口带宽的一半(例如,8比特而不是16比特,或4比特而不是8比特)。存储器设备500可以是系统100的存储器管芯122的一个示例。在一个示例中,存储器设备500包括比所示出的更多的元件。更具体而言,存储器设备500示出了单个I/O通道,其中每个通道在内部路由N个比特(例如,256比特)。应该理解的是,在系统500中,N指代总带宽或比特的总数,其可以被理解为外部连接器的数目乘以突发长度。与之前提到的相同的原理是一致的,因为使得一半数量的DQ连接器是活动的以用于传输的突发长度,这将产生一半数量的比特被传送。在一个示例中,存储器设备500可以包括两个独立的通道,每个通道都能够在内部路由N个比特。
存储器设备500包括M个存储器阵列512。M个存储器阵列512是分组510的部分。存储器阵列512可以以多种不同方式中的任何一种被组织成分组。在一个示例中,分组510包括可以读取或写入多达N数据比特的多个存储器阵列。在一个示例中,分组510包括可以读取或写入多达N/2数据比特的多个存储器阵列。总线520表示存储器设备500内的内部总线。总线520具有N比特的可用带宽。在一个示例中,N比特的可用带宽表示来自所有M个存储器阵列512的比特。
逻辑522表示允许存储器设备500将总线520的N比特路由到两个独立的I/O输出位置的信号线、逻辑电路和/或存储器设备500内的其他元件。在一个示例中,逻辑522包括到存储器阵列512的接口,并且可以针对每个存储器存取事务选择哪个存储器阵列和该阵列内的哪个位置将被读取或写入。因此,存储器阵列内的特定位置可以被选择以用于针对每个事务的读取和/或写入。在一个示例中,逻辑522可以针对特定存储器存取事务而终止一个路径或其他路径。例如,当进行读取事务时,存储器设备500可以预取N比特,并且N/2比特可以被丢弃而不被发送。在一个示例中,逻辑522针对写入事务而禁用一个路径或其他路径。
逻辑532和534表示与用于该存储器设备的数据I/O连接器或引脚接合的信号线、逻辑电路和/或存储器设备500内的其他元件。逻辑532和534可以是或包括或被包括在来自表示存储器核心以及I/O的分组510的数据路径中。具体地,逻辑532选择性地将存储器阵列512与DQ I/O 552接合,并且逻辑534选择性地将存储器阵列512与DQ I/O 554接合。标注DQI/O指代数据总线接口。逻辑元件选择性地将I/O与存储器阵列接合,因此逻辑元件可以选择在I/O连接器处接收到的将被路由和写入到所选择的存储器阵列512的数据比特。逻辑元件选择性地将I/O与存储器阵列接合,因此逻辑元件可以选择从存储器阵列512接收到的将被路由和从DQ I/O 552和/或DQ I/O 554发送的数据比特。
在一个示例中,DQ I/O 552和DQ I/O 554横跨命令/地址(C/A)I/O连接器或引脚540。数据I/O连接器横跨C/A I/O连接器,因此数据I/O连接器在管芯或封装上并非所有都是物理相邻的,但是存在由C/A I/O连接器540物理地分离的数据I/O连接器的两个分组。这样的配置可以允许解码逻辑(未具体示出)相对于从数据I/O连接器(即,552、554)到存储器阵列512的信号线位于存储器设备500内的“中心”。
数据I/O连接器552和554与系统数据总线550的信号线接合。将会观察到的是,总线550被指示为具有N/2比特的带宽,而总线520具有N比特的带宽。因此,总线550具有用于与存储器设备500接合的比总线520的总的可用内部带宽更低的带宽。应该理解的是,总线550可以连接到多个其他存储器设备和/或其他存储器设备通道(例如,如果存储器设备500包括具有存储器阵列的独立的分组的另一通道)。因此,如果总线550的信号线被分离以独立地连接到不同的存储器设备,则总线550可以实际上具有比总线520更高的带宽。然而,出于与存储器设备500接合的目的,当与存储器设备500接合的总线550的多个信号线具有比总线520能够在传送的突发长度的时间段内能够传送的更低的带宽时,总线550被认为具有更低的带宽。
另外,将会观察到的是,总线550被指示为具有N/2比特的带宽,N/2比特与被示出为与数据I/O 522和数据I/O 554中的每一个接合的比特的数量相同。存在可以被提供以将存储器设备500与总线550接合的多个不同配置中的任何一个。在一个示例中,对于特定事务,在存储器设备500与相关联的存储器控制器(未具体示出)之间交换(读取或写入)的所有N/2比特经由I/O 552或I/O 554交换,同时其他I/O不交换用于该事务的任何比特。因此,I/O 552和I/O 554可以连接到相同的N/2信号线,并且逻辑(例如,逻辑532、534、522和/或其他逻辑)可以选择哪个I/O以用于特定的存储器存取事务。
在一个示例中,I/O 552和I/O 554两者都提供各自的N/4I/O连接器以与总线550接合。因此,总线550在I/O 552和I/O 554当中是分离的。内部地,要从I/O 552到逻辑532和/或从I/O 554到逻辑534被路由的N/2可能的数据比特可以是N/4比特而不是N/2比特,如所示的。在一个示例中,逻辑534可以选择N/4比特并且将它们路由到I/O 552而绕开I/O554。因此,I/O 552将提供所有N/2I/O接口,但是N/4比特通过逻辑532被路由,并且N/4通过逻辑534被路由。应该理解的是,类似地,逻辑532可以选择N/4比特以路由到I/O 554,绕过I/O 552。因此,在一个示例中,逻辑532和/或逻辑534可以包括多路复用逻辑,其用于选择性地将不同存储器阵列之间的信号线路由到相同的I/O连接器。
在一个示例中,存储器设备500总是通过对来自所有M个存储器阵列或核心的数据比特进行存取来生成N比特以用于读取。存储器设备500可以通过选择N比特中的N/2并且丢弃任何其他预取的比特,来通过总线550交换N/2比特。在一个示例中,存储器设备500可以通过从M/2个存储器阵列512的两个不同的分组中选择N/4比特(并且丢弃从存储器阵列的两个分组中的每一个存取的其他N/4比特),来通过总线550交换N/2比特。在一个示例中,存储器设备500可以通过从M/2个存储器阵列512的一个分组中选择N/2比特,并且丢弃从M/2个存储器阵列512的其他分组中存取的N/2比特,来通过总线550交换N/2比特。
类似地,存储器设备500能够通过将数据比特写入到所有M个存储器阵列或核心512来写入N比特。在一个示例中,存储器设备500通过选择要写入的M/2个存储器阵列并且不写入到其他M/2个存储器阵列,来写入N/2比特而不是N比特。在一个示例中,存储器设备500将N/4比特写入到M/2个存储器阵列512的一个选择的分组中,并且将N/4比特写入到M/2个存储器阵列512的另一选择的分组中。在这样的情况下,存储器阵列中的逻辑可以确定关于特定存储器存取事务,要写入什么比特、和/或选择要写入哪个存储器阵列、以及哪个存储器可以不被写入。因此,对于读取和写入,存储器设备500可以在一个公共的DQ I/O或其他DQ I/O(即,552、554)处交换N/2比特,或者从两个DQ I/O交换N/4比特。存储器设备600可以选择M个存储器阵列的不同分组以进行写入和从中读取,并且可以将N/2比特路由到一个分组或另一个分组(没有任何内容被路由到未选择的分组),或者将N/4比特各自路由到两个分组。
在一个示例中,存储器设备500中的由C/A I/O 540分离的DQ I/O 552和DQ I/O554的配置可以被指代为从“核心”提供N比特、引用存储器阵列并且从核心将比特路由到“顶部”和“底部”半字节或总的I/O的部分。对“顶部”和“底部”这样的引用将被理解为针对存储器设备500,哪个I/O连接器被标注为MSB(最高有效位)和LSB(最低有效位),而不是引用物理封装的空间定向。如何划分存储器阵列或存储器核心,以及如何将阵列路由到I/O,以及哪个I/O会被物理定位到封装上的哪个地方,这些都是设计选择。本领域技术人员将理解多个配置中的任何一个配置。
图6是可以在不同的模式中与不同带宽的系统数据总线接合的存储器设备的示例的框图。存储器设备610是根据系统100的存储器管芯122的存储器设备的一个示例。在一个示例中,存储器设备610包括比所示出的那些更多的元件。在一个示例中,存储器设备610包括存储器的多个通道。出于一个示例的目的,存储器设备610只示出了单个通道。每个通道单独地被存取和控制。因此,针对每个通道,定时、数据传送、命令和地址交换以及其他操作是独立的。在一个示例中,针对每个通道的设置由独立的模式寄存器或其他寄存器设置来控制
存储器设备610包括N个独立的接口路径。虽然通道可以是接口路径但是,在一个示例中,通道可以包括多个接口路径。在一个示例中,通道包括多个单独的并且独立的接口路径。出于示例的目的,考虑每个接口路径与作为组块分组的可以独立地被存取的存储器资源的分组相关联。因此,每个组块分组BG[(N-1):0]被示出为包括M个组块。在一个示例中,在组块模式中,存储器设备610表现为具有存储器的M个组块,其中每个组块都是虚拟组块。因此,BG[0]的组块B[0]和BG[N-1]的组块B[0]一起用作逻辑组块,并且并行地被存取以用于识别组块B[0]的存储器存取命令。在组块分组模式中,在每个组块分组内,每个组块分组中的M个组块中的每一个都是可独立寻址的。因此,存储器设备610的内部控制器(未具体示出)对特定组块分组和该组块分组内的特定组块进行存取。其他组块分组的相对应的组块在组块分组模式中将不被存取。因此,例如,当在组块模式中时,BG[0]的组块B[0]和BG[N-1]的组块B[0]可以一起进行操作并且两者都将执行存取命令,但是在组块分组模式中,BG[0]的组块B[0]和BG[N-1]的组块B[0]将独立地被寻址并且不执行相同的存取命令。
逻辑612确定如何将比特路由到存储器组块和如何从存储器组块中路由比特,并且可以是或包括或被包括在存储器阵列与I/O之间的数据路径中。逻辑612表示存储器设备610内的选择如何路由比特并且执行用于基于该模式来路由比特的操作的任何逻辑或电路。逻辑612可以包括信号线、多路复用器、选择逻辑、和/或其他逻辑、和/或其他电路。在一个示例中,在组块模式中,存储器设备610包括BW比特(带宽)的总线长度,N个不同的I/O接口(DQ[(N-1):0])中的每一个都提供BW/N比特。在一个示例中,在组块分组模式中,比特内部地从所选择的组块分组被路由到单个BW/N比特接口(例如,DQ[0])。因此,外部设备(例如,存储器控制器)只具有BW/N个信号线以用于与存储器设备610交换数据(每通道,假设多个通道)。I/O接口表示允许存储器设备610与存储器设备610外部的设备交换(发送和接收)数据的信号线、逻辑电路和/或存储器设备610内的其他元件。
出于示例的目的考虑到N等于2的实现。在组块模式中,DQ0和DQ1可以被认为是独立的接口路径,这是因为组块中的每一个分组(BG0和BG1)都将数据提供给独立的I/O接口。存储器组块并行地提供数据,以用于可能从存储器设备610提供完整的带宽。在组块分组模式中,组块中的每一个分组(BG0和BG1)用作独立的组块分组,并且存取可以被交错用于独立的组块。因此,对一个组块的存取将不会阻止对不同组块分组中的另一组块的存取。在一个示例中,存储器设备包括8个组块分组,每一个分组具有4个组块。在一个示例中,存储器设备包括4个组块分组,每一个分组具有8个组块。在一个示例中,存储器设备包括4个组块分组,每一个分组具有4个组块。其他配置是可能的。
图7是示出了到存储器原件的I/O路径和选择逻辑的存储器设备的示例的框图。存储器700示出了根据本文中所描述的任何示例的具有I/O到存储器阵列的部分的特定映射的存储器设备的组件。例如,存储器700可以表示根据系统100的存储器管芯122的存储器设备的示例。
存储器700包括组块710,组块710包括存储器单元702的多行。图中的垂直的矩形表示行。在一个示例中,组块710被组织成多个子阵列712。子阵列712或阵列可以称为行702的分组。存取命令(读取命令或写入命令)触发命令信号线,该命令信号线由行解码逻辑720解释以选择行或多个行以用于操作。在一个示例中,行解码逻辑720包括子阵列或阵列解码逻辑722,其用于选择组块710的特定子阵列712。
存储器700包括列解码逻辑730,其用于选择数据的列,其中来自特定子阵列的信号线可以被输出到感测放大器并且利用本地I/O 740被路由到全局I/O 750。在一个示例中,存储器700支持ECC,并且相对于不支持设备级ECC的存储器设备,存储器700在列解码逻辑730中包括附加的选择逻辑。在一个示例中,列解码逻辑730包括多路复用器,其用于选择性地将某些列连接到公共I/O连接器。本地I/O 740指代路由电路,其用于传送特定子阵列712的数据。全局I/O 750指代将本地I/O与存储器700的外部I/O连接器耦合的路由电路。
在一个示例中,本地I/O 740包括用于将特定信号线从子阵列712映射到连接到特定全局I/O连接器的特定I/O路径或数据路径760的逻辑。数据路径760可以包括导线762和电路,其用于切换或选择路径从而将存储器单元连接到设备的I/O。在一个示例中,存储器700支持ECC,并且相对于不支持ECC的存储器设备,存储器700包括附加的全局I/O 750逻辑或附加的本地I/O 740逻辑,或两者。数据路径中的附加的I/O可以实现多个列到相同的I/O路径的连接,并且解码逻辑可以确定要进行哪些连接。如果存储器阵列的子集以及到和来自这些子集的数据路径都被映射到单个I/O连接器,则系统可以选择性地针对ECC数据的存储,使用特定列。数据路径760可以指代用于在子阵列与I/O之间传送数据的导线、迹线、逻辑门以及其他电路。在一个示例中,数据路径指代用于将数据阵列与面向外部的连接器或用于设备封装的焊盘耦合的所有连接逻辑和I/O逻辑。
图8是用于在传统上不实现ECC的具有固定宽度的通道的多芯片环境中提供ECC的过程的示例的流程图。过程800可以包括写入过程810和读取过程820。
在写入过程中,在一个示例中,在812处,存储器控制器生成用于写入的数据并且计算写入ECC。在814处,存储器控制器可以发出写入命令编码。在818处,存储器控制器可以发送数据和与写入命令相关联的ECC。
在816处,响应于写入命令编码,存储器设备可以对命令进行解码并且基于CAS来选择信号线。存储器设备从存储器控制器取回数据和ECC。在819处,存储器设备通过所选择的数据路径将数据和ECC存储到存储器资源。根据所描述的任何示例,存储器设备选择从多器件封装的外部连接器到存储器管芯的数据路径。
在读取过程中,在一个示例中,在822处,存储器控制器发出读取命令编码。在824处,响应于读取命令,存储器设备对命令进行解码并基于CAS选择来选择用于数据输出的信号线。CAS选择可以是根据所描述的任何示例的。
在826处,存储器设备取回数据和ECC比特并通过所选择的数据路径将它们发送到存储器控制器。所选择的数据路径可以提供用于在存储器子系统中具有带有数据和ECC的通道的能力,其中ECC通常是不可以应用的。在828处,存储器控制器接收数据和ECC比特,并且在830处,计算读取ECC。计算读取ECC可以确保读取数据是正确的。
图9是具有其中可以实现ECC的字节模式存储器的存储器子系统的示例的框图。系统900包括处理器和存储器子系统的元件包括在计算设备中。处理器910表示可以执行操作系统(OS)和应用的计算平台的处理单元,其可以被统称为主机或存储器的用户。OS和应用执行引起存储器存取的操作。处理器910可以包括一个或多个独立的处理器。每个独立的处理器可以包括单个处理单元、多核处理单元、或组合。处理单元可以是主处理器(例如CPU(中央处理单元))、外围处理器(例如,GPU(图形处理单元))、或组合。存储器存取还可以由例如网络控制器或硬盘控制器之类的设备来发起。这样的设备在一些系统中可以与处理器集成在一起或经由总线(例如,快速PCI)被附接到处理器,或组合。系统900可以被实现为SOC(片上系统),或利用独立的组件来实现。
对存储器设备的引用可以应用于不同的存储器类型。存储器设备通常指代易失性存储器技术。易失性存储器是如果到设备的电力被中断则其状态(并因此存储在其上的数据)是不确定的处理器。非易失性存储器指代即使到设备的电力被中断其状态也是确定的存储器。动态易失性存储器需要刷新存储在设备中的数据以维持状态。动态易失性存储器的一个示例包括DRAM(动态随机存取存储器)、或一些变型,例如同步DRAM(SDRAM)。如本文中所述的存储器子系统可以与以下多个存储器技术兼容:例如,DDR4(DDR版本4,JESD79,由JEDEC于2012年9月公布的初始规范)、LPDDR4(低功耗DDR版本4,JESD209-4,最初由JEDEC于2014年8月发布)、WIO2(宽I/O 2(宽IO 2),JESD229-2,最初由JEDEC于2014年8月发布)、HBM(高带宽存储器DRAM,JESD235A,最初由JEDEC于2015年11月发布)、DDR5(DDR版本5,当前由JEDEC讨论中)、LPDDR5(当前由JEDEC讨论中)、HBM2((HMB版本2),当前由JEDEC讨论中)、或其他或存储器技术的组合、以及基于这样的规范的衍生物或扩展的技术。
除了易失性存储器以外,或可替代易失性存储器,在一个示例中,对存储器设备的引用可以指代即使到设备的电力被中断其状态也是确定的非易失性存储器设备。在一个示例中,非易失性存储器设备是块可寻址存储器设备,例如,NAND或NOR技术。因此,存储器设备还可以包括下一代非易失性设备,例如,三维交叉点存储器设备、其他字节可寻址非易失性存储器设备、或使用硫属化合物相变材料(例如,硫属化合物玻璃)的存储器设备。在一个示例中,存储器设备可以是或包括多阈值级别NAND闪存存储器、NOR闪速存储器、单个或多级相变存储器(PCM)或具有开关的相变存储器(PCMS)、电阻式存储器、纳米线存储器、铁电晶体管随机存取存储器(FeTRAM)、并入忆阻器技术的磁阻式随机存取存储器(MRAM)、或自旋转移矩(STT)-MRAM、或以上中的任何的组合、或其他存储器。
本文中指代“RAM”或“RAM设备”的描述可以应用于允许随机存取的任何存储器设备,无论是易失性还是非易失性的。指代“DRAM”或“DRAM设备”的描述可以指代易失性随机存取存储器设备。存储器设备或DRAM可以指代管芯本身,指代包括一个或多个管芯的封装的存储器产品、或两者。在一个示例中,具有需要被刷新的易失性存储器的系统还可以包括非易失性存储器。
存储器控制器920表示用于系统900的一个或多个存储器控制器电路或设备。存储器控制器920表示如下控制逻辑,其响应于由处理器910执行操作来生成存储器存取命令。存储器控制器920对一个或多个存储器设备940进行存取。根据以上所提到的任何内容,存储器设备940可以是DRAM设备。在一个示例中,存储器设备940被组织并且管理为不同的通道,其中每个通道与并行地耦合到多个存储器设备的总线和信号线耦合。每个通道是独立可操作的。因此,每个通道是独立存取和控制的,并且对于每个通道,定时、数据传输、命令和地址交换以及其他操作是独立的。耦合可以指代电耦合、通信耦合、物理耦合、或这些的组合。物理耦合可以包括直接接触。电耦合包括允许组件之间的电流动或允许组件之间的信令或两者的接口或互连。通信耦合包括使组件能够交换数据的有线的或无线的连接。
在一个示例中,针对每个通道的设置是由独立的模式寄存器或其他寄存器设置来控制的。在一个示例中,每个存储器控制器920管理独立的存储器通道,但是系统900可以被配置为具有由单个控制器管理的多个通道,或者被配置为在单个通道上具有多个控制器。在一个示例中,存储器控制器920是主机处理器910的部分,例如,在与处理器相同的管芯上被实现的逻辑,或在与处理器相同的封装空间中被实现的逻辑。
存储器控制器920包括I/O接口逻辑922以用于与存储器总线(例如,上面提到的存储器通道)耦合。I/O接口逻辑922(以及存储器设备940的I/O接口逻辑942)可以包括引脚、焊盘、连接器、信号线、迹线或导线、或用于连接设备的其他硬件、或这些的组合。I/O接口逻辑922可以包括硬件接口。如所示,I/O接口逻辑922至少包括用于信号线的驱动器/收发机。通常,在集成电路接口内的导线与焊盘、引脚、或连接器耦合以接合设备之间的信号线、或迹线、或其他导线。I/O接口逻辑922可以包括驱动器、接收机、收发机、或终端、或其他电路、或电路的组合以在设备之间的信号线上交换信号。信号的交换至少包括发送或接收中的一个。当被示出为将来自存储器控制器920的I/O 922与存储器设备940的I/O 942耦合时,将会理解的是,在系统900的实现中,其中多组存储器设备940被并行地存取,多个存储器设备可以包括到存储器控制器920的相同接口的I/O接口。在包括一个或多个存储器模块970的系统900的实现中,I/O 942可以包括除了存储器设备本身上的接口硬件之外的存储器模块的接口硬件。其他存储器控制器920将包括到其他存储器设备940的独立的接口。
存储器控制器920与存储器设备940之间的总线可以被实现为将存储器控制器920与存储器设备940耦合的多个信号线。通常,总线可以至少包括时钟(CLK)932、命令/地址(CMD)934以及写入数据(DQ)和读取数据(DQ)936、以及零信号线或更多其他信号线938。在一个示例中,存储器控制器920与存储器之间的总线或连接可以被称为存储器总线。用于CMD的信号线可以被称为“C/A总线”(或ADD/CMD总线、或指示命令(C或CMD)和地址(A或ADD)信息的传输的一些其他标注),并且用于写入和读取DQ的信号线可以被称为“数据总线”。在一个示例中,独立的通道具有不同的时钟信号、C/A总线、数据总线、以及其他信号线。因此,系统900可以被认为具有多个“总线”,在某种意义上,独立的接口路径可以被认为是独立的总线。应该理解的是,除了明确示出的线以外,总线可以包括选通信令线、警告线、辅助线、或其他信号线、或组合中的至少一个。还应该理解的是,串行总线技术可以用于存储器控制器920与存储器设备940之间的连接。串行总线技术的示例是高速数据的8B10B编码和传输,嵌入式时钟在每个方向上的单个差分信号对上。在一个示例中,CMD 934表示并行地与多个存储器设备共享的信号线。在一个示例中,多个存储器设备共享CMD 934的编码命令信号线,并且每个都具有独立的芯片选择(CS_n)信号线以用于选择单独的存储器设备。
应该理解的是,在系统900的示例中,存储器控制器920与存储器设备940之间的总线包括辅助命令总线CMD 934和用于承载写入和读取数据的辅助总线,DQ 936。在一个示例中,数据总线可以包括用于读取数据并且用于写入/命令数据的双向线。在另一示例中,辅助总线DQ 936可以包括用于将数据从主机写入到存储器的单向写入信号线,并且可以包括用于将数据从存储器读取到主机的单向线。根据所选择的存储器技术和系统设计,其他信号938可以伴随总线或子总线,例如,选通线DQS。基于系统900的设计或实现,如果设计支持多个实现,则数据总线可以具有每存储器设备940更多或更少的带宽。例如,数据总线可以支持具有x32接口、x16接口、x8接口或其他接口的存储器设备。规定“xW”,其中W是指代存储器设备940的接口的接口大小或宽度的整数,其表示用于与存储器控制器920交换数据的信号线的数量。存储器设备的接口大小是关于在系统900中每通道同时可以使用多少存储器设备或将多少存储器设备并行地与相同的信号线耦合的控制因素。在一个示例中,高带宽存储器设备、宽接口设备、或堆栈存储器配置、或组合可以实现更宽的接口,例如,x28接口、x256接口、x512接口、x1024接口或其他数据总线接口宽度。
在一个示例中,存储器设备940和存储器控制器920通过突发中的数据总线或者连续数据传送的序列来交换数据。突发与多个传送周期相对应,该多个传送周期与总线频率相关。在一个示例中,传送周期可以是用于在相同时钟或选通信号边沿(例如,在上升沿)上发生的传送的整个时钟周期。在一个示例中,指代系统时钟的周期的每一个时钟周期被分离成多个单元间隔(UI),其中每个UI是传送周期。例如,双倍数据速率传送在时钟信号的两个边沿(例如,上升和下降)上触发。突发可以持续配置数量的UI,其可以是被存储在寄存器中的配置或者直接被触发。例如,八个连续的传送时间段的序列可以被认为是突发长度8(BL8),并且每个存储器设备940可以在每个UI内传送数据。因此,在BL8内操作的x8存储器设备可以传送64比特的数据(在突发期间8个数据信号线乘以每条线传送的8个数据比特)。将会理解的是该简单的示例仅是示出性的并不是限制性的。
存储器设备940表示用于系统900的存储器资源。在一个示例中,每个存储器设备940都是独立的存储器管芯。在一个示例中,每个存储器设备940可以与每设备或管芯多个(例如,2个)通道接合。每个存储器设备940包括I/O接口逻辑942,其具有由设备的实现确定的带宽(例如,x16或x8或一些其他接口带宽)。I/O接口逻辑942使存储器设备能够与存储器控制器920接合。I/O接口逻辑942可以包括硬件接口,并且可以与存储器控制器的I/O 922一致,但是在存储器设备端。在一个示例中,多个存储器设备940并行地连接到相同的命令和数据总线。在另一示例中,多个存储器设备940并行地连接到相同的命令总线,并且被连接到不同的数据总线。例如,系统900可以被配置有并行地耦合的多个存储器设备940,每个存储器设备响应于命令并且对每个存储器设备内部的存储器资源960进行存取。对于写入操作,单独的存储器设备940可以写入整体数据字的部分,并且对于读取操作,单独的存储器设备940可以取整体数据字的部分。作为非限制性示例,特定存储器设备可以分别提供或接收128比特数据字中的8比特以用于读取或写入事务,或256比特数据字中的8比特或16比特(取决于是x8还是x16设备)。字的剩余的比特将并行地由其他存储器设备提供或接收。
在一个示例中,存储器设备940直接被设置在计算设备的母板或主机系统平台(例如,其上设置有处理器910的PCB(印刷电路板))上。在一个示例中,存储器设备940可以被组织为存储器模块970。在一个示例中,存储器模块970表示双列直插式存储器模块(DIMM)。在一个示例中,存储器模块970表示用于共享存取或控制电路的至少一部分的多个存储器设备的其他组织,其可以是与主机系统平台分离的电路、分离的设备或分离的板。存储器模块970可以包括多个存储器设备940,并且存储器模块可以包括支持到设置在存储器模块上的所包括的存储器设备的多个独立的通道。在另一示例中,存储器设备940可以被并入到与存储器控制器920相同的封装中,例如通过诸如多芯片模组(MCM)、堆叠封装、硅穿孔(TSV)、或其他技术或组合等的技术。类似地,在一个示例中,多个存储器设备940可以被并入到存储器模块970中,其中存储器模块970本身可以被并入到与存储器控制器920相同的封装中。应该意识到的是,对于这些和其他实现,存储器控制器920可以是主机处理器910的部分。
存储器设备940各自包括存储器资源960。存储器资源960表示用于数据的存储器位置或存储位置的单独的阵列。通常,存储器资源960被管理为经由字线(行)和位线(行内单独的比特)控制来进行存取的数据的行。存储器资源960可以被组织为存储器的独立的通道、区块(rank)以及组块。通道可以指代到存储器设备940内的存储位置的独立的控制路径。区块可以指代跨多个存储器设备的公共位置(例如,不同设备内的相同的行地址)。组块可以指代存储器设备940内的存储器位置的阵列。在一个示例中,存储器的组块被划分为子组块,其具有针对该子组块的共享的电路(例如,驱动器、信号线、控制逻辑)的至少一部分,允许独立的寻址和存取。应该理解的是,通道、区块、组块、子组块、组块分组、或存储器位置的其他组织、以及组织的组合在其应用中对物理资源可以是重叠的。例如,相同的物理存储器位置可以通过特定通道来进行存取作为特定组块,还可以属于区块。因此,将以包容而非排他的方式来理解存储器资源的组织。
在一个示例中,存储器设备940包括一个或多个寄存器944。寄存器944表示提供用于存储器设备的操作的配置或设置的一个或多个存储设备或存储位置。在一个示例中,寄存器944可以提供用于存储器设备940的存储位置以存储用于由存储器控制器920进行存取的数据,作为控制或管理操作的部分。在一个示例中,寄存器944包括一个或多个模式寄存器。在一个示例中,寄存器944包括一个或多个多用途寄存器。寄存器944内的位置的配置可以对存储器设备940进行配置从而以不同的“模式”进行操作,其中命令信息可以基于模式来触发存储器设备940内的不同的操作。附加地或可替代地,不同的模式还可以根据地址信息来触发不同的操作或取决于模式来触发其他信号线。寄存器944的设置可以指示I/O设置的配置(例如,定时、终止或ODT(片内终止)946、驱动器配置、或其他I/O设置)。
在一个示例中,存储器设备940包括ODT 946,作为与I/O 942相关联的接口硬件的部分。ODT 946可以如上所提到的来进行配置,并且提供用于被应用于到特定信号线的接口的阻抗的设置。在一个示例中,ODT 946被应用于DQ信号线。在一个示例中,ODT 946被应用于命令信号线。在一个示例中,ODT 946被应用于地址信号线。在一个示例中,ODT 946可以被应用于前述的任何组合。ODT设置可以基于存储器设备是存取操作的选择的目标还是非目标设备来进行改变。ODT 946设置可以影响终止线上的信令的定时和反射。通过ODT 946的小心的控制可以实现更高速的操作,具有应用的阻抗与负载的改进的匹配。ODT 946可以被应用于I/O接口942、922的特定信号线,并且不一定应用于所有信号线。
存储器设备940包括控制器950,其表示存储器设备内的控制逻辑,其用于控制存储器设备内的内部操作。例如,控制器950对由存储器控制器920发送的命令进行解码,并且生成内部操作以执行或满足命令。控制器950可以被称为内部控制器,并且与主机的存储器控制器920是分离的。控制器950可以确定基于寄存器944选择了什么模式,并且基于所选择的模式对操作的内部执行进行配置以用于对存储器资源960进行存取或其他操作。控制器950生成控制信号来控制存储器设备940内的比特的路由以提供用于所选择的模式的适当的接口,并且将命令引导到适当的存储器位置或地址。控制器950包括命令逻辑952,其可以对在命令和地址信号线上接收的命令编码进行解码。因此,命令逻辑952可以是或包括命令解码器。利用命令逻辑952,存储器设备可以识别命令并且生成内部操作以执行所请求的命令。
再次参考存储器控制器920,存储器控制器920包括命令(CMD)逻辑924,其表示用于生成命令以发送到存储器设备940的逻辑或电路。命令的生成可以指代在调度之前的命令,或准备好被发送的查询的命令的准备。通常,存储器子系统中的信令包括命令内的或伴随命令的地址信息以用于指示或选择其中存储器设备应该执行命令的一个或多个存储器位置。响应于针对存储器设备940的事务的调度,存储器控制器920可以经由I/O 922发出命令以使存储器设备940执行命令。在一个示例中,存储器设备940的控制器950接收并且解码经由I/O 942从存储器控制器920接收到的命令和地址信息。基于接收到的命令和地址信息,控制器950可以控制存储器设备940内的逻辑和电路的操作的定时以用于执行命令。控制器950负责遵守存储器设备940内的标准或规范,例如,定时和信令要求。存储器控制器920可以通过存取调度和控制来实现遵守标准或规范。
存储器控制器920包括调度器930,其表示用于生成发送到存储器设备940的事务并且对其进行排序的逻辑或电路。从一方面而言,存储器控制器920的主要功能可以被认为是调度对存储器设备940的存储器存取和其他事务。这样的调度可以包括生成事务本身以实现由处理器910针对数据的请求,并且维持数据的完整性(诸如例如,利用与刷新相关的命令)。事务可以包括一个或多个命令并且引起在一个或多个定时周期(例如,时钟周期或单位间隔)内命令或数据或两者的传送。事务可以用于存取例如读取或写入或相关的命令或组合,并且其他事务可以包括用于配置、设置、数据完整性的存储器管理命令或其他命令或组合。
存储器控制器920通常包括诸如调度器930之类的逻辑,其用于允许事务的选择和排序从而改进系统900的性能。因此,存储器控制器920可以选择应该以哪种顺序将未解决的事务中的哪个发送到存储器设备940,这通常利用比简单的先入先出算法复杂得多的逻辑来实现。存储器控制器920管理到存储器设备940的事务的传输,并且管理与事务相关联的定时。在一个示例中,事务具有确定的定时,其可以由存储器控制器920来管理并且用于确定如何利用调度器930来调度事务。
在一个示例中,存储器控制器920包括刷新(REF)逻辑926。刷新逻辑926可以用于是易失性的并且需要被刷新来保持确定的状态的存储器资源。在一个示例中,刷新逻辑926指示用于刷新的位置和要执行的刷新的类型。刷新逻辑926可以触发存储器设备940内的自刷新,或通过发送刷新指令来执行可以被称为自动刷新指令的外部刷新,或组合。在一个示例中,系统900支持所有组块刷新以及每组块刷新。所有组块刷新引起所有存储器设备940内并行地耦合的组块的刷新。每组块刷新引起指定存储器设备940内的指定组块的刷新。在一个示例中,存储器设备940内的控制器950包括刷新逻辑954以应用存储器设备940内的刷新。在一个示例中,刷新逻辑954生成内部操作,以根据从存储器控制器920接收到的外部刷新来执行刷新。刷新逻辑954可以确定刷新是否是指向存储器设备940,并且响应于该命令要刷新什么存储器资源960。
在一个示例中,存储器控制器920包括错误检查和校正逻辑(ECC)970以用于执行系统900的系统级ECC。系统级ECC指代在存储器控制器920处的错误校正的应用,并且可以将错误校正应用于来自多个不同存储器设备940的数据比特。ECC 970表示用于实现系统级ECC操作(例如,双比特错误校正)的电路或逻辑。
在一个示例中,存储器设备940包括内部ECC 980,其还可以被称为管芯上ECC。在一个示例中,内部ECC 980表示存储器设备940内的SEC ECC逻辑。在一个示例中,ECC 980对内部ECC代码982进行操作,内部ECC代码982表示具有基于象限的代码以用于操纵混叠的代码矩阵。根据本文的任何示例,该代码防止对与检测到错误的象限相邻的象限的混叠。
I/O 942可以表示用于与处理器910和存储器控制器920接合的存储器设备940的I/O连接器。在一个示例中,存储器设备940的存储器资源960包括被划分为子阵列的组块。可替代地,子阵列可以简单地被称为阵列。子阵列指代存储器的区段,例如,存储器单元的行的分组。数据路径948表示导线的路由和连接设备以在子阵列与I/O 942之间传输数据信号。在一个示例中,数据路径948包括选择逻辑以用于能够选择到I/O 942的存储器阵列的特定部分。数据路径948可以实现在通常包括二进制接口大小的设备内应用ECC。对数据路径948的选择可以根据本文所描述的任何示例。
在一个示例中,存储器控制器包括ECC管理器928,其用于管理系统900的存储器存取中的错误检查和校正。存储器控制器920的ECC管理器928管理系统范围的ECC,并且可以并行地跨多个不同的存储器资源(例如,多个存储器设备940)来检测和校正错误。用于系统范围的ECC的许多技术是已知的,并且可以包括ECC管理器928,其以跨多个资源分散错误的方式来管理存储器资源。通过跨多个资源来分散错误,存储器控制器920甚至可以在存储器设备940中发生一个或多个故障的事件中来恢复数据。存储器故障通常被分类为软错误或软故障,或者硬错误或硬故障,软错误或软故障是通常由随机环境条件导致的暂时性比特错误,硬错误或硬故障是由于硬件故障而发生的非暂时性比特错误。
在一个示例中,存储器控制器920可以将额外的系统比特提供给存储器设备940,并且响应于读取请求相同的额外的比特可以由存储器设备返回。在一个示例中,存储器设备940以突发(burst)的方式来传输数据,其中突发是传输周期的序列。传输周期指代基于时钟或定时信号的时间段。传输周期可以被称为单位间隔(UI)。存储器传输通常在N个UI的突发(例如,16个周期或16个UI突发长度或16突发长度(BL16)、或8UI突发长度(BL8))内通过DQ信号线发生。因此,存储器子系统在BL16期间在某些DQ信号线上提供数据,并且同时针对不同DQ信号线上的传输的数据比特提供ECC数据。如本文中所述的,数据路径948可以使存储器设备940能够根据系统配置选择性地使用DQ信号线以用于数据或ECC比特。在一个示例中,寄存器944包括模式寄存器设置或其他寄存器字段或配置,其对存储器设备进行配置以在ECC模式中进行操作,在ECC模式中存储器资源960的至少一部分是不被利用的,并且数据路径948提供非二进制数量的ECC I/O接口,以提供用于二进制数量的数据线的ECC比特。
图10是其中低功耗存储器设备可以在字节模式中被实现ECC的计算系统的示例的框图。系统1000表示根据本文中所描述的任何示例的计算设备,并且可以是膝上型计算机、桌面型计算机、平板计算机、服务器、游戏或娱乐控制系统、嵌入式计算设备或其他电子设备。
在一个示例中,存储器1030包括I/O逻辑1090。逻辑1090可以在数据路径中包括用于根据本文中描述的任何示例,根据CAS选择来选择数据路径的逻辑。逻辑1090使数据路径能够选择性地与外部链接耦合以用于交换ECC数据。在一个示例中,逻辑1090用于与用于存储器1030的字节模式配置结合使用。在一个示例中,逻辑1090包括I/O的重新映射,以使用接口的一部分作为ECC,并且阻止接口的未使用的部分。在一个示例中,逻辑1090包括用于使多个列能够选择性地连接到I/O连接器并且阻止接口的未使用的部分的逻辑。
在一个示例中,存储器1032是DRAM。在一个示例中,处理器1020表示执行存储在一个或多个DRAM存储器1032中的数据的一个或多个处理器。在一个示例中,网络接口1050与另一网络位置中的另一设备交换数据,并且该数据是存储在存储器1032中的数据。在一个示例中,系统1000包括用于执行存储器内的内部ECC的ECC逻辑1080,并因此ECC逻辑1080可以至少部分地表示在存储器1032内。ECC逻辑1080还可以表示存储器控制器1034处的系统范围的ECC,其使用如下事实存储器1032执行内部ECC来针对系统1000提供更鲁棒的ECC。根据本文描述的任何示例,关于存储器1032中的内部ECC的ECC逻辑1080包括代码矩阵。因此,ECC逻辑1080根据被视为独立象限或分段的代码矩阵来进行操作,这可以操纵混叠。根据本文的任何示例,该代码防止对与检测到错误的象限相邻的象限的混叠。
在一个示例中,系统1000包括功率管理1090,其用于将功率提供给系统1000。在一个示例中,功率管理1090包括功率控制逻辑,其用于将选通控制和复位控制提供给包括处理器1010和接口1012的核心电路。功率控制逻辑还将选通和复位控制提供给存储器控制器1022和用于存储器1030的接口。在一个示例中,系统1000还包括测试功率控件1092,其可以是根据本文的示例的测试控件。测试功率控件1092提供选择性启用存储器I/O以用于其中包含系统1000的平台的平台测试。
系统1000包括处理器1010,其可以包括微处理器、中央处理单元(CPU)、图形处理单元(GPU)、处理核心、或其他处理硬件或组合以用于提供用于系统1000的指令的处理和执行。处理器1010控制系统1000的整体操作,并且可以是或包括一个或多个可编程通用或专用微处理器、数字信号处理器(DSP)、可编程控制器、专用集成电路(ASIC)、可编程逻辑器件(PLD)等、或这样的设备的组合。
在一个示例中,系统1000包括与处理器1010耦合的接口1012,其可以表示用于需要更高的带宽连接的系统组件(例如,存储器子系统1020或图形接口组件1040)的更高速的接口或高吞吐量接口。接口1012表示接口电路,其可以是独立组件或被集成在处理器管芯上。接口1012可以作为电路被集成在处理器管芯上或作为部件被集成在片上系统上。其中呈现了,图形接口1040接合到图形组件以用于将视觉显示提供给系统1000的用户。图形接口1040可以是独立的组件或被集成在处理器管芯或片上系统上。在一个示例中,图形接口1040可以驱动将输出提供给用户的高清晰度(HD)显示器。在一个示例中,显示器可以包括触摸屏显示器。在一个示例中,图形接口1040基于存储在存储器1030中的数据或基于由处理器1010执行的操作或基于两者来生成显示。
存储器子系统1020表示系统1000的主存储器,并且提供用于由处理器1010执行的代码或在执行例程中使用的数据值的存储。存储器子系统1020可以包括一个或多个存储器设备1030,例如,只读存储器(ROM)、闪速存储器、一种或多种随机存取存储器(RAM)(例如,DRAM)、或其他存储器设备、或这样的设备的组合。除此之外,存储器1030存储并托管操作系统(OS)1032以提供用于在系统1000中执行指令的软件平台。另外,应用1034可以在来自存储器1030的OS 1032的软件平台上执行。应用1034表示具有其自己的操作逻辑以执行一个或多个功能的执行的程序。进程1036表示将辅助功能提供给OS 1032或一个或多个应用1034或组合的代理或例程。OS1032、应用1034以及进程1036提供用于提供用于系统1000的功能的软件逻辑。在一个示例中,存储器子系统1020包括存储器控制器1022,其是用于生成命令和向存储器1030发出命令的存储器控制器。应该理解的是,存储器控制器1022可以是处理器1010的物理部分或接口1012的物理部分。例如,存储器控制器1022可以是被集成在具有处理器1010的电路上的(例如,被集成在处理器管芯或片上系统上的)集成的存储器控制器。
虽然没有具体示出,但是应该理解的是系统1000可以包括设备之间的一个或多个总线或总线系统,例如,存储器总线、图形总线、接口总线、或其他。总线或其他信号线可以将组件通信地耦合或电耦合在一起,或将组件同时通信地和电耦合在一起。总线可以包括物理通信线、点到点连接、桥、适配器、控制器、或其他电路或组合。总线可以包括,例如,以下中的一个或多个:系统总线、外围设备互连(PCI)总线、超传输或工业标准结构(ISA)总线、小型计算机系统接口(SCSI)总线、通用串行总线(USB)、或其他总线或组合。
在一个示例中,系统1000包括可以与接口1012耦合的接口1014。接口1014可以是比接口1012更低速的接口。在一个示例中,接口1014表示接口电路,其可以包括独立的组件和集成电路。在一个示例中,多个用户接口组件或外围组件或两者与接口1014耦合。网络接口1050向系统1000提供用于通过一个或多个网络与远程设备(例如,服务器或其他计算设备)进行通信的能力。网络接口1050可以包括以太网适配器、无线互连组件、蜂窝网络互连组件、USB(通用串行总线)、或基于其他有线或无线标准的接口或外围接口。网络接口1050可以与远程设备交换数据,其可以包括发送存储在存储器中的数据或接收将被存储在存储器中的数据。
在一个示例中,系统1000包括一个或多个输入/输出(I/O)接口1060。I/O接口1060可以包括一个或多个接口组件(例如,音频、字母数字、触觉/触摸、或其他接合),通过该一个或多个接口组件用户与系统1000进行交互。外围接口1070可以包括上面没有具体提到的任何硬件接口。外围设备通常指代相关连接到系统1000的设备。相关连接是以下中的一个,其中系统1000提供了操作在其上执行的软件平台或硬件平台或两者并且用户与该平台进行交互的连接。
在一个示例中,系统1000包括用于以非易失性方式来存储数据的存储子系统1080。在一个示例中,在某些系统实现中,存储装置1080的至少某些组件可以与存储器子系统1020的组件重叠。存储子系统1080包括存储设备1084,其可以是或包括用于以非易失性方式存储大量数据的任何常规介质,例如,一个或多个磁性、固态或基于光学的盘、或其组合。存储装置1084将代码或指令和数据1086保持在持续状态(即,即使到系统1000的电力中断,该值仍保持不变)。存储装置1084通常可以被认为是“存储器”,尽管存储器1030通常是执行或操作存储器以用于将指令提供到处理器1010。然而,存储装置1084是非易失性的,存储器1030可以包括易失性存储器(即,如果到系统1000的电力中断,则数据的值或状态是不确定的)。在一个示例中,存储子系统1080包括控制器1082以用于与存储装置1084进行接合。在一个示例中,控制器1082是接口1014或处理器1010的物理部分,或可以包括处理器1010和接口1014两者中的电路或逻辑。
电源1002将电力提供给系统1000的组件。更具体地,电源1002通常接合到系统1002中的一个或多个电力供应1004,以将电力提供给系统1000的组件。在一个示例中,电力供应1004包括用于插入到墙上的插座的AC到DC(交流到直流)适配器。这样的AC电力可以是再生能量(例如,太阳能)电源1002。在一个示例中,电源1002包括DC电源,例如,外部AC到DC转换器。在一个示例中,电源1002或电力供应1004包括无线充电硬件以用于经由接近充电场来进行充电。在一个示例中,电源1002可以包括内部电池或燃料电池源。
图11是其中低功耗存储器设备可以在字节模式中被实现具有ECC的移动设备的示例的框图。设备1100表示移动计算设备,例如计算平板电脑、移动电话或智能电话、可穿戴计算设备或其他移动设备或嵌入式计算设备。应该理解的是,通常示出了组件中的某些组件,并且在设备1100中并没有示出这种设备的所有组件。
在一个示例中,存储器1162包括I/O逻辑1190。逻辑1190可以包括根据本文中所描述的任何示例的数据路径中的逻辑,以用于根据CAS选择来选择数据路径。逻辑1190使数据路径能够选择性地与外部连接耦合以用于交换ECC数据。在一个示例中,逻辑1190结合字节模式配置来使用以用于存储器1162。在一个示例中,逻辑1190包括I/O的重新映射,以将接口的部分用作ECC并且阻止该接口的未使用的部分。在一个示例中,逻辑1190包括如下逻辑,其用于使多个列能够选择性地连接到I/O连接器并且阻止该接口的未使用的部分。
在一个示例中,存储器1162是DRAM。在一个示例中,处理器1110表示执行存储在一个或多个DRAM存储器1162中的数据的一个或多个处理器。在一个示例中,连接1170包括网络接口,其用于与另一网络位置中的另一设备交换数据,并且该数据是存储在存储器1162中的数据。在一个示例中,系统1100包括ECC逻辑1190,其用于执行存储器内的内部ECC,并因此ECC逻辑1190可以至少部分地表示在存储器1162内。ECC逻辑1190还可以表示在存储器控制器1164处的系统范围的ECC,其使用如下事实存储器1162执行内部ECC以针对系统1100提供更鲁棒的ECC。根据本文描述的任何示例,关于存储器1162中的内部ECC的ECC逻辑1190包括代码矩阵。因此,ECC逻辑1190根据代码矩阵进行操作,该代码矩阵可以在与用于读取和写入操作的数据字的多个分段相对应的多个分段中进行操作。因此,ECC逻辑1190根据被视为独立的象限或分段的代码矩阵进行操作,这可以操纵混叠。根据本文的任何示例,该代码防止对与检测到错误的象限相邻的象限的混叠。
在一个示例中,系统1100包括用于将功率提供给系统1100的功率管理1150。虽然示出为连接到处理器1110,但是功率管理1150也将功率提供给系统1100的其他组件,但是可以由处理器1110来管理。在一个示例中,功率管理1150包括功率控制逻辑,其用于将选通控制和复位控制提供给包括处理器1110和其到其他组件的接口的核心电路。功率控制逻辑还将选通和复位控制提供给存储器控制器1164和用于存储器1162的接口。在一个示例中,系统1100还包括存储器I/O测试功率控制逻辑1190,其可以是根据本文的示例的测试控件。存储器I/O测试逻辑1190提供选择性实现存储器I/O以用于其中包含系统1100的平台的平台测试。
设备1100包括处理器1110,其执行设备1100的主处理操作。处理器1110可以包括一个或多个物理设备,例如,微处理器、应用处理器、微控制器、可编程逻辑设备、或其他处理单元。由处理器1110执行的处理操作包括在其上执行应用和设备功能的操作平台或操作系统的执行。处理操作包括与和人类用户或和其它设备的I/O(输入/输出)相关的操作、与电力管理相关的操作、与将设备1100连接到另一设备相关的操作、或组合。处理操作还可以包括与音频I/O、显示I/O、或其他接合、或组合相关的操作。处理器1110可以执行存储在存储器中的数据。处理器1110可以对存储在存储器中的数据进行写入或编辑。
在一个示例中,系统1100包括一个或多个传感器1112。传感器1112表示嵌入式传感器或到外部传感器的接口、或组合。传感器1112使系统1100能够监测或检测其中实现了系统1100的环境或设备的一个或多个条件。传感器1112可以包括环境传感器(例如,温度传感器、运动检测器、光检测器、摄像机、化学传感器(例如,一氧化碳、二氧化碳、或其他化学传感器))、压力传感器、加速度计、陀螺仪、医学或生理学传感器(例如,生物传感器、心率监测器、或用于检测生理学属性的其他传感器)、或其他传感器、或组合。传感器1112还可以包括用于生物识别系统(例如,指纹识别系统、面部检测或认知系统、或检测或认知用户特征的其他系统)的传感器。传感器1112应该被广泛地理解,并且其不限于可以利用系统1100来实现的许多不同类型的传感器。在一个示例中,一个或多个传感器1112经由与处理器1110集成的前端电路来与处理器1110耦合。在一个示例中,一个或多个传感器1112经由系统1100的另一组件与处理器1110耦合。
在一个示例中,设备1100包括音频子系统1120,其表示与将音频功能提供给计算设备相关联的硬件(例如,音频硬件和音频电路)和软件(例如,驱动、编码解码器)组件。音频功能可以包括扬声器或头戴式耳机输出、以及麦克风输入。用于这样的功能的设备可以被集成到设备1100中,或连接到设备1100。在一个示例中,用户通过提供由处理器1110接收和处理的音频命令来与设备1100进行交互。
显示子系统1130表示提供视觉显示以用于呈现给用户的硬件(例如,显示器设备)和软件(例如,驱动)组件。在一个示例中,显示器包括触觉组件或触摸屏元件以用于用户与计算设备进行交互。显示子系统1130包括显示接口1132,其包括用于将显示提供给用户的特定的屏幕或硬件设备。在一个示例中,显示接口1132包括与处理器1110(例如,图形处理器)分离的逻辑以用于执行与显示相关的至少一些处理。在一个示例中,显示子系统1130包括将输出和输入两者提供给用户的触摸屏设备。在一个示例中,显示子系统1130包括将输出提供给用户的高清(HD)或超高清(UHD)显示器。在一个示例中,显示子系统包括或驱动触摸屏显示器。在一个示例中,显示子系统1130基于存储在存储器中的数据或基于由处理器1110执行的操作或基于两者来生成显示信息。
I/O控制器1140表示与和用户的交互相关的硬件设备和软件组件。I/O控制器1140可以操作以管理作为音频子系统1120或显示子系统1130或两者的部分的硬件。另外,I/O控制器1140示出了用于连接到设备1100的附加设备的连接点,通过该连接点用户可以与系统进行交互。例如,可以被附接到设备1100的设备可以包括麦克风设备、扬声器或立体声系统、视频系统或其他显示设备、键盘或小键盘设备、或与特定应用(例如,读卡器或其他设备)一起使用的其他I/O设备。
如上提到的,I/O控制器1140可以与音频子系统1120或显示子系统1130或两者进行交互。例如,通过麦克风或其他音频设备的输入可以提供用于设备1100的一个或多个应用或功能的输入或命令。另外,可以提供音频输出而不是显示输出,或除了显示输出以外可以提供音频输出。在另一示例中,如果显示子系统包括触摸屏,则显示设备也用作输入设备,其可以至少部分地由I/O控制器1140来管理。在设备1100上还可以有附加按钮或开关以提供由I/O控制器1140管理的I/O功能。
在一个示例中,I/O控制器1140管理以下设备:例如,加速度计、摄像机、光传感器或其他环境传感器、陀螺仪、全球定位系统(GPS)、或可以被包括在设备1100中的其他硬件、或传感器1112。输入可以是直接用户交互的部分,以及将环境输入提供给系统以用于影响其操作(例如,过滤噪声、调节显示以用于亮度检测、将闪光灯应用于摄像机、或其它特征)。
在一个示例中,设备1100包括电力管理1150,其管理电池电力使用、电池的充电以及与省电操作相关的特征。电力管理1150管理来自电源1152的电力,电源1152将电力提供给系统1100的组件。在一个示例中,电源1152包括用于插入到墙上的插座的AC到DC(交流到直流)适配器。这样的AC电力可以是再生能量(例如,太阳能、基于运动的电力)。在一个示例中,电源1152只包括DC电力,其可以由DC电源(例如,外部AC到DC转换器)来提供。在一个示例中,电源1152包括无线充电硬件以用于经由接近充电场来进行充电。在一个示例中,电源1152可以包括内部电池或燃料电池源。
存储器子系统1160包括用于将信息存储在设备1100中的存储器设备1162。存储器子系统1160可以包括非易失性(如果到存储器设备的电力被中断,则状态不改变)或易失性(如果到存储器设备的电力被中断,则状态是不确定的)存储器设备,或组合。存储器1160可以存储应用数据、用户数据、音乐、图片、文档、或其他数据、以及与系统1100的应用和功能的执行相关的系统数据(无论是长期的还是暂时性的)。在一个示例中,存储器子系统1160包括存储器控制器1164(其还可以被认为是系统1100的控制的部分,并且可以潜在地被认为是处理器1110的部分)。存储器控制器1164包括调度器,其用于生成和发出命令来控制对存储器设备1162的存取。
连接1170包括使设备1100能够与外部设备进行通信的硬件设备(例如,无线或有线连接器和通信硬件、或有线和无线硬件的组合)和软件组件(例如,驱动器、协议栈)。外部设备可以是独立的设备,例如,其他计算设备、无线接入点或基站、以及外围设备(例如,头戴式耳机、打印机)或其他设备。在一个示例中,系统1100与外部设备交换数据以用于存储在存储器中或用于显示在显示设备上。交换的数据可以包括将被存储在存储器中的数据、或已经存储在存储器中的数据,以用于读取、写入或编辑数据。
连接1170可以包括多个不同类型的连接。概括而言,设备1100被示出为蜂窝连接1172和无线连接1174。蜂窝连接1172通常指代由无线载波提供的蜂窝网络连接,例如经由GSM(全球移动通信系统)或变型或衍生物、CDMA(码分多址)或变型或衍生物、TDM(时分复用)或变型或衍生物、LTE(长期演进-也称为“4G”)、或其他蜂窝服务标准提供的。无线连接1174指代不是蜂窝的无线连接,并且可以包括个域网(例如,蓝牙)、局域网(例如,WiFi)、或广域网(例如,WiMax)或其他无线通信或组合。无线通信指代通过使用调制的电磁辐射通过非固态介质的数据的传输。有线通信通过固态通信介质而发生。
外围连接1180包括用于进行外围连接的硬件接口和连接器以及软件组件(例如,驱动器、协议栈)。应该理解的是,设备1100可以是到其他计算设备的外围设备(“到”1182),以及具有连接到设备1100的外围设备(“来自”1184)。设备1100通常具有“对接”连接器以用于连接到其他计算设备,出于例如管理(例如,下载、上传、改变、同步)设备1100上的内容的目的。另外,对接连接器可以允许设备1100连接到允许设备1100控制例如到视听或其他系统的内容输出的某些外围设备。
本文中示出的流程图提供了各种处理动作的序列的示例。流程图可以指示由软件或固件例程执行的操作,以及物理操作。在一个示例中,流程图可以示出可以以硬件和/或软件实现的有限状态机(FSM)的状态。尽管以特定的序列或顺序示出,但是除非另有指示,否则动作的顺序可以被修改。因此,所示出的示例应该只被理解为是示例,并且该过程可以以不同的顺序来执行,并且一些动作可以并行地来执行。另外,在各种示例中,一个或多个动作可以被忽略;因此,在每个示例中并不需要所有的动作。其他过程流是可能的。
在本文中所描述的各种操作或功能的程度上,其可以被描述或定义为软件代码、指令、配置和/或数据。内容可以是直接可执行文件(“对象”或“可执行”形式)、源代码、或差异代码(“增量”或“补丁”代码)。本文中所描述的示例的软件内容可以经由具有存储在其上的内容的制品来提供,或经由操作通信接口以经由该通信接口发送数据的方法来提供。机器可读存储介质可以使机器执行所描述的功能或操作,并且包括以由机器(例如,计算设备、电子系统等)可存取的形式存储信息的任何机制,例如,可记录/不可记录的介质(例如,只读存储器(ROM)、随机存取存储器(RAM)磁盘存储介质、光存储介质、闪速存储器设备等)。通信接口包括与硬连线、无线、光学等介质中的任一个接合以与另一设备进行通信的任何机制,例如,存储器总线接口、处理器总线接口、互联网连接、盘控制器等。通信接口可以通过提供配置参数和/或发送信号以准备通信接口来提供描述软件内容的数据信号的方式来进行配置。通信接口可以经由发送到通信接口的一个或多个命令或信号来进行存取。
本文中所描述的各种组件可以是用于执行所描述的操作或功能的单元。本文中所描述的每个组件包括软件、硬件或这些的组合。组件可以被实现为软件模块、硬件模块、专用硬件(例如,应用特定的硬件、专用集成电路(ASIC)、数字信号处理(DSP)等)、嵌入式控制器、硬连线电路等。
除了本文中所描述的内容之外,可以对本发明所公开的示例和实现方式进行各种修改而不脱离本发明的范围。因此,本文中的说明和示例应当被解释为说明性的而不是限制性意义的。本发明的范围应该仅通过参考以上权利要求来测量。

Claims (21)

1.一种存储器设备封装,包括:
输入/输出(I/O)接口,其具有与具有少于N个信号线的通道耦合的N个连接器;
具有第一N比特接口的第一存储器管芯;
具有第二N比特接口的第二存储器管芯;以及
电路,其用于选择性地将列地址选择(CAS)信号应用于所述第一存储器管芯和所述第二存储器管芯,以选择性地将所述第一存储器管芯的所述第一N比特接口中的N/2个比特接口与所述N个连接器中的N/2个连接器耦合,并且将所述第二存储器管芯的所述第二N比特接口中的至少一个比特接口与所述N个连接器中的至少一个连接器耦合,从而提供具有在所述第一存储器管芯与所述第二存储器管芯之间扩展的少于N个比特的比特的通道,所述通道包括N/2个数据(DQ)信号线和至少一个错误检查和校正(ECC)信号线。
2.根据权利要求1所述的存储器设备封装,其中,所述第一存储器管芯和所述第二存储器管芯在字节模式中操作以仅应用其相应的N比特接口中的每一个N比特接口的N/2个比特。
3.根据权利要求1所述的存储器设备封装,其中,所述电路包括选通逻辑,其用于选择性地禁用所述I/O接口的N个信号线中的未使用的连接器。
4.根据权利要求1所述的存储器设备封装,其中,所述电路包括多路复用电路,其用于选择所述第一存储器管芯和所述第二存储器管芯中的将被存取的比特。
5.根据权利要求4所述的存储器设备封装,其中,所述多路复用电路多路复用器,其用于基于列地址选择(CAS)信号来选择所述第一存储器管芯和第二存储器管芯中的(N/2)+1个比特以用于N/2个DQ信号线和ECC信号线。
6.根据权利要求5所述的存储器设备封装,其中,所述多路复用器用于在将所述I/O接口连接到所述第一存储器管芯和所述第二存储器管芯的全局I/O信号线当中进行多路复用,以选择所述(N/2)+1个比特。
7.根据权利要求5所述的存储器设备封装,其中,所述多路复用器用于在命令和地址总线的CAS信号线当中进行多路复用,以选择所述(N/2)+1个比特,所述命令和地址总线在所述第一存储器管芯和所述第二存储器管芯之间共享。
8.根据权利要求1所述的存储器设备封装,其中,所述第一存储器管芯和所述第二存储器管芯包括低功耗双倍速(LPDDR)存储器芯片。
9.根据权利要求1所述的存储器设备封装,其中,N=16,具有八个数据(DQ)信号线和一个ECC信号线。
10.根据权利要求9所述的存储器设备封装,其中,所述电路用于在来自所述第一存储器管芯和所述第二存储器管芯的32个比特接口中的每具有八个DQ比特和一个ECC比特的3个组合中进行选择,其中,所述第一存储器管芯包括八个DQ比特的两个分组并且所述第二存储器管芯包括八个DQ比特的一个分组,以及用于八个DQ比特的三个分组的中的每一个的ECC比特。
11.一种具有存储器子系统的系统,包括:
存储器控制器;以及
多器件封装,其与所述存储器控制器耦合,所述多器件封装包括
输入/输出(I/O)接口,其具有与具有少于N个信号线的通道耦合的N个连接器;
具有第一N比特接口的第一存储器管芯;
具有第二N比特接口的第二存储器管芯;以及
电路,其用于选择性将列地址选择(CAS)信号应用于所述第一存储器管芯和所述第二存储器管芯,以选择性地将所述第一存储器管芯的所述第一N比特接口中的N/2个比特接口与所述N个连接器中的N/2个连接器耦合,并且将所述第二存储器管芯的所述第二N比特接口中的至少一个比特接口与所述N个连接器中的至少一个连接器耦合,从而提供具有在所述第一存储器管芯与所述第二存储器管芯之间扩展的少于N个比特的比特的通道,所述通道包括N/2个数据(DQ)信号线和至少一个错误检查和校正(ECC)信号线。
12.根据权利要求11所述的系统,其中,所述第一存储器管芯和所述第二存储器管芯在字节模式中操作以仅应用其相应的N比特接口中的每一个N比特接口的N/2个比特。
13.根据权利要求11所述的系统,其中,所述电路包括选通逻辑,其用于选择性地禁用所述I/O接口的N个信号线中的未使用的连接器。
14.根据权利要求11所述的系统,其中,所述电路包括多路复用电路,其用于选择所述第一存储器管芯和所述第二存储器管芯中的将被存取的比特。
15.根据权利要求14所述的系统,其中,所述多路复用电路包括多路复用器,其用于基于列地址选择(CAS)信号来选择所述第一存储器管芯和第二存储器管芯中的(N/2)+1个比特以用于N/2个DQ信号线和ECC信号线。
16.根据权利要求15所述的系统,其中,所述多路复用器用于在将所述I/O接口连接到所述第一存储器管芯和所述第二存储器管芯的全局I/O信号线当中进行多路复用,以选择所述(N/2)+1个比特。
17.根据权利要求15所述的系统,其中,所述多路复用器用于在命令和地址总线的CAS信号线当中多路复用,以选择所述(N/2)+1个比特,所述命令和地址总线在所述第一存储器管芯和所述第二存储器管芯之间共享。
18.根据权利要求11所述的系统,其中,所述第一存储器管芯和所述第二存储器管芯包括低功耗双倍速(LPDDR)存储器芯片。
19.根据权利要求11所述的系统,其中,N=16,具有八个数据(DQ)信号线和一个ECC信号线。
20.根据权利要求19所述的系统,其中,所述电路用于在来自所述第一存储器管芯和所述第二存储器管芯的32个比特接口中的每具有八个DQ比特和一个ECC比特的3个组合当中进行选择,其中,所述第一存储器管芯包括八个DQ比特的两个分组并且所述第二存储器管芯包括八个DQ比特的一个分组,以及用于八个DQ比特的三个分组的中的每一个的ECC比特。
21.根据权利要求11所述的系统,还包括以下中的一个或多个:
多核处理器,其与所述存储器控制器耦合,所述处理器中的至少一个核心用于执行存储在DRAM设备中的数据;
网络适配器,其被耦合以用于在所述DRAM设备与远程网络位置之间交换数据;或者
通信地与多核处理器耦合的显示器。
CN201810170935.2A 2017-03-02 2018-03-01 具有固定带宽接口的存储器设备中的集成的错误检查和校正(ecc) Active CN108538337B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201762465837P 2017-03-02 2017-03-02
US62/465,837 2017-03-02

Publications (2)

Publication Number Publication Date
CN108538337A CN108538337A (zh) 2018-09-14
CN108538337B true CN108538337B (zh) 2024-04-05

Family

ID=61580916

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810170935.2A Active CN108538337B (zh) 2017-03-02 2018-03-01 具有固定带宽接口的存储器设备中的集成的错误检查和校正(ecc)

Country Status (3)

Country Link
US (1) US10482947B2 (zh)
EP (1) EP3370152B1 (zh)
CN (1) CN108538337B (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11416050B2 (en) * 2017-05-08 2022-08-16 Octavo Systems Llc Component communications in system-in-package systems
KR102543177B1 (ko) * 2018-03-12 2023-06-14 삼성전자주식회사 고 대역폭 메모리 장치 및 이 장치를 포함하는 시스템 장치
US10846225B1 (en) * 2018-08-07 2020-11-24 Innovium, Inc. Buffer read optimizations in a network device
US10868769B1 (en) 2018-08-07 2020-12-15 Innovium, Inc. Read instruction queues in a network device
KR102577268B1 (ko) * 2018-10-15 2023-09-12 에스케이하이닉스 주식회사 메모리 장치 및 이의 동작 방법
US10636476B2 (en) 2018-11-01 2020-04-28 Intel Corporation Row hammer mitigation with randomization of target row selection
EP3674902A1 (en) * 2018-12-26 2020-07-01 Robert Bosch GmbH A memory system
US10795767B2 (en) * 2018-12-26 2020-10-06 M31 Technology Corporation Error correcting system shared by multiple memory devices
US10770431B1 (en) * 2019-02-27 2020-09-08 Western Digital Technologies, Inc. Memory die layouts for failure protection in SSDs
KR20210034726A (ko) 2019-09-20 2021-03-31 삼성전자주식회사 메모리 모듈, 그것을 제어하는 메모리 제어기의 에러 정정 방법, 및 그것을포함하는 컴퓨팅 시스템
US11210167B2 (en) * 2019-10-28 2021-12-28 Intel Corporation Memory wordline isolation for improvement in reliability, availability, and scalability (RAS)
US11210429B2 (en) * 2020-03-10 2021-12-28 Micron Technology, Inc. Memory access gate
US11308006B2 (en) * 2020-03-27 2022-04-19 Intel Corporation Memory rank design for a memory channel that is optimized for graph applications
US11545189B2 (en) * 2020-04-07 2023-01-03 Micron Technology, Inc. Apparatuses and methods for different IO widths for stacked die
CN114446370A (zh) * 2020-11-06 2022-05-06 长鑫存储技术有限公司 信号校验系统
CN117716332A (zh) * 2021-07-29 2024-03-15 美光科技公司 分组存储器裸片的选择性存取
CN114527941B (zh) * 2022-02-18 2023-04-18 群联电子股份有限公司 存储器控制方法、存储器存储装置及存储器控制电路单元

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6370668B1 (en) * 1999-07-23 2002-04-09 Rambus Inc High speed memory system capable of selectively operating in non-chip-kill and chip-kill modes
US6938193B1 (en) * 1999-07-12 2005-08-30 Matsushita Electric Industrial Co., Ltd. ECC circuit-containing semiconductor memory device and method of testing the same
CN1920879A (zh) * 2005-07-05 2007-02-28 英特尔公司 识别和访问在存储通道中的独立储存装置
KR20070072229A (ko) * 2005-12-31 2007-07-04 삼성전자주식회사 Eds 구조를 이용하는 반도체 메모리 장치
CN101060006A (zh) * 2006-02-27 2007-10-24 英特尔公司 用于使用相同存储器类型来支持检错模式和非检错模式的系统、方法和设备
US7620875B1 (en) * 2006-03-07 2009-11-17 Xilinx, Inc. Error correction code memory system with a small footprint and byte write operation
KR20140005757A (ko) * 2012-07-03 2014-01-15 삼성전자주식회사 선택적 ecc 동작을 수행하는 메모리 장치
US8977930B1 (en) * 2011-06-02 2015-03-10 Drc Computer Corporation Memory architecture optimized for random access
CN104508646A (zh) * 2012-06-08 2015-04-08 惠普发展公司,有限责任合伙企业 访问存储器

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4437519B2 (ja) * 2001-08-23 2010-03-24 スパンション エルエルシー 多値セルメモリ用のメモリコントローラ
US7386765B2 (en) 2003-09-29 2008-06-10 Intel Corporation Memory device having error checking and correction
US7451380B2 (en) * 2005-03-03 2008-11-11 International Business Machines Corporation Method for implementing enhanced vertical ECC storage in a dynamic random access memory
US8245109B2 (en) * 2006-03-31 2012-08-14 Hewlett-Packard Development Company, L.P. Error checking and correction (ECC) system and method
US8352805B2 (en) * 2006-05-18 2013-01-08 Rambus Inc. Memory error detection
US8108761B2 (en) * 2007-08-23 2012-01-31 Intel Corporation Optimizing the size of memory devices used for error correction code storage
US8644104B2 (en) * 2011-01-14 2014-02-04 Rambus Inc. Memory system components that support error detection and correction
US9323608B2 (en) 2012-06-07 2016-04-26 Micron Technology, Inc. Integrity of a data bus
US9037949B1 (en) * 2012-06-21 2015-05-19 Rambus Inc. Error correction in a memory device
US20150234726A1 (en) 2014-02-19 2015-08-20 Brian P. Moran Apparatus, system and method to provide platform support for multiple memory technologies
US9317464B2 (en) 2014-06-26 2016-04-19 Intel Corporation Method, apparatus and system for configuring coupling with input-output contacts of an integrated circuit
US20160092383A1 (en) 2014-09-26 2016-03-31 Kuljit S. Bains Common die implementation for memory devices
US9870325B2 (en) 2015-05-19 2018-01-16 Intel Corporation Common die implementation for memory devices with independent interface paths
US10061645B2 (en) * 2015-06-30 2018-08-28 Qualcomm Incorporated Memory array and link error correction in a low power memory sub-system
US10127101B2 (en) 2015-08-28 2018-11-13 Intel Corporation Memory device error check and scrub mode and error transparency
US10061644B2 (en) 2015-11-02 2018-08-28 Qualcomm Incorporated Systems and methods for implementing error correcting code in a memory
US10146711B2 (en) 2016-01-11 2018-12-04 Intel Corporation Techniques to access or operate a dual in-line memory module via multiple data channels
EP3453022B1 (en) 2016-05-02 2022-07-06 INTEL Corporation Internal error checking and correction (ecc) with extra system bits
KR102547713B1 (ko) 2016-09-01 2023-06-26 삼성전자주식회사 반도체 메모리 장치 및 이의 동작 방법
US10120749B2 (en) 2016-09-30 2018-11-06 Intel Corporation Extended application of error checking and correction code in memory
US10249351B2 (en) 2016-11-06 2019-04-02 Intel Corporation Memory device with flexible internal data write control circuitry
US20180137005A1 (en) 2016-11-15 2018-05-17 Intel Corporation Increased redundancy in multi-device memory package to improve reliability

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6938193B1 (en) * 1999-07-12 2005-08-30 Matsushita Electric Industrial Co., Ltd. ECC circuit-containing semiconductor memory device and method of testing the same
US6370668B1 (en) * 1999-07-23 2002-04-09 Rambus Inc High speed memory system capable of selectively operating in non-chip-kill and chip-kill modes
CN1920879A (zh) * 2005-07-05 2007-02-28 英特尔公司 识别和访问在存储通道中的独立储存装置
KR20070072229A (ko) * 2005-12-31 2007-07-04 삼성전자주식회사 Eds 구조를 이용하는 반도체 메모리 장치
CN101060006A (zh) * 2006-02-27 2007-10-24 英特尔公司 用于使用相同存储器类型来支持检错模式和非检错模式的系统、方法和设备
US7620875B1 (en) * 2006-03-07 2009-11-17 Xilinx, Inc. Error correction code memory system with a small footprint and byte write operation
US8977930B1 (en) * 2011-06-02 2015-03-10 Drc Computer Corporation Memory architecture optimized for random access
CN104508646A (zh) * 2012-06-08 2015-04-08 惠普发展公司,有限责任合伙企业 访问存储器
KR20140005757A (ko) * 2012-07-03 2014-01-15 삼성전자주식회사 선택적 ecc 동작을 수행하는 메모리 장치

Also Published As

Publication number Publication date
US20180254079A1 (en) 2018-09-06
EP3370152B1 (en) 2019-12-25
EP3370152A1 (en) 2018-09-05
US10482947B2 (en) 2019-11-19
CN108538337A (zh) 2018-09-14

Similar Documents

Publication Publication Date Title
CN108538337B (zh) 具有固定带宽接口的存储器设备中的集成的错误检查和校正(ecc)
US10755753B2 (en) Memory device with flexible internal data write control circuitry
US10636476B2 (en) Row hammer mitigation with randomization of target row selection
EP3453022B1 (en) Internal error checking and correction (ecc) with extra system bits
CN109478177B (zh) 双数据率命令总线
KR102501147B1 (ko) 메모리에서 에러 체킹 및 정정 코드의 확장된 적용
EP3910475B1 (en) Read retry to selectively disable on-die ecc
US20220075689A1 (en) Memory wordline isolation for improvement in reliability, availability, and scalability (ras)
US11188264B2 (en) Configurable write command delay in nonvolatile memory
US11200113B2 (en) Auto-increment write count for nonvolatile memory
JP2022113100A (ja) メタデータにエラー検出訂正(ecc)ビットを割り当てるためのeccビットの分散
CN117099075A (zh) 针对长突发长度的存储器数据传送的双倍取得
KR20230043692A (ko) 메모리 모듈 데이터 폭의 유연한 구성을 위한 인에이블링 로직

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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20221027

Address after: Irish Dublin

Applicant after: Taihao Research Co.,Ltd.

Address before: California, USA

Applicant before: INTEL Corp.

GR01 Patent grant
GR01 Patent grant