在存储器与主机系统之间交换ECC元数据的制作方法

文档序号:11160894阅读:1377来源:国知局
在存储器与主机系统之间交换ECC元数据的制造方法与工艺

本发明的实施例一般涉及存储器设备,并且更特别地涉及将内部错误校正位暴露为元数据位的存储器。

版权通知/许可

本专利文档的公开内容的部分可能包含受到版权保护的某些材料。版权所有人对任何人对如其在专利与商标局文件或记录中出现的专利文档或专利公开内容的再现没有异议,但是以其他方式在任何情况保留所有版权权利。版权通知适用于如以下所描述的和在随附于此的附图中的所有数据,以及以下描述的任何软件:Copyright © 2014,Intel Corporation,版权所有。



背景技术:

计算设备使用存储器设备来存储数据和代码以供处理器运行其操作。随着存储器设备在大小方面的减小和在密度方面的增加,它们在处理期间经历更多错误,称为良率问题。因此,存储器设备经历越来越多的位故障,甚至在现代处理技术的情况下。为了减轻位故障,现代存储器提供内部错误校正机制,诸如ECC(错误校正码)。存储器设备在内部生成ECC数据,并且在存储器设备处内部使用ECC数据。存储器设备内的内部错误校正可以附加于使用在存储器设备与存储器控制器之间的数据交换中的无论什么系统范围的错误校正或错误减轻。将理解到,存储器设备内的ECC的应用要求附加的逻辑以计算ECC和将其应用于校正数据位。还将理解到,在存储器设备内部的ECC的应用要求在与存储器控制器或存储器设备外部的其它组件交换数据时实时地计算和应用ECC。这样的实时要求可以将延迟引入数据交换中。

附图说明

以下描述包括具有通过本发明的实施例的实现的示例的方式给出的图示的附图的讨论。附图应当通过示例的方式而非通过限制的方式来理解。如本文所使用的,对一个或多个“实施例”的引用要被理解为描述包括在本发明的至少一个实现中的特定特征、结构和/或特性。因此,在本文中出现的诸如“在一个实施例中”或“在可替换的实施例中”之类的短语描述本发明的各种实施例和实现,并且不一定全部是指相同的实施例。然而,它们也不一定相互排斥。

图1是具有存储器设备的系统的实施例的框图,所述存储器设备可以暴露内部错误校正位以供外部存储器控制器使用。

图2是具有存储器设备的系统的实施例的框图,所述存储器设备可以暴露内部错误校正位以供外部存储器控制器使用。

图3是其中存储器控制器使来自多个存储器设备的内部错误校正位成群的系统的实施例的框图。

图4是其中存储器控制器与存储器设备对接以用于元数据交换的系统和引脚分配(pinout)表的实施例的框图。

图5是用于在存储器控制器与存储器设备之间对接以交换元数据的过程的实施例的流程图。

图6是其中可以实现被暴露为元数据位的内部位的计算系统的实施例的框图。

图7是其中可以实现被暴露为元数据位的内部位的移动设备的实施例的框图。

以下是某些细节和实现的描述,包括附图的描述,其可以描绘以下描述的实施例中的一些或全部,以及讨论本文所提出的发明概念的其它潜在实施例或实现。

具体实施方式

如本文所描述的,存储器设备暴露内部错误校正位以供外部存储器控制器用作元数据位。现代存储器设备设计(诸如DRAM(动态随机存取存储器)设计)使用内部错误校正以补偿良率问题。在一个实施例中,存储器设备可以暴露内部错误校正位以允许存储器控制器执行错误校正。在一个实施例中,存储器设备可以暴露内部错误校正位以允许存储器控制器出于除了数据信号的错误校正之外的目的而将所述位用作元数据。在其中存储器控制器利用内部错误校正位来执行错误校正的一个实施例中,存储器设备可以每事务读取/写入128位并且交换8位以用于错误校正。因此,存储器子系统可以使用136/128汉明码(每128个数据位8个专用位)来提供单个错误校正(SEC)。在一个实施例中,存储器子系统可以提供附加的元数据位以用于错误校正,其可以提供执行SECDED(单个错误校正,双错误检测)所需要的9位。

在一个实施例中,存储器设备被配置成是双模态的。在第一模式中,存储器设备在存储器设备处应用内部错误校正位以用于内部错误校正。这样的模式将与存储器设备传统上如何进行操作一致。在第二模式中,存储器设备向存储器控制器暴露内部错误校正位以允许存储器控制器使用该数据。因此,将理解到,在第二模式中,存储器控制器是由内部错误校正位表示的元数据的消费者。存储器设备和存储器控制器可以经由数个不同技术中的任何一个来交换元数据。在一个实施例中,存储器设备和存储器控制器经由数据交换上的额外的突发来交换元数据。这样的方案将降低系统带宽并且可能不是针对所有实现的最佳方案。在一个实施例中,存储器设备和存储器控制器经由添加到存储器封装的额外引脚或连接器来交换元数据。将理解到,这样的方案增加封装和其它制造成本,以及增加系统板上的布线要求。在一个实施例中,存储器设备和存储器控制器在重新目的化的现有引脚或连接器上交换元数据。例如,系统可以在读取或写入操作期间未使用的信号线上发送数据。作为另一示例,系统可以被配置成消除特定功能以有利于使用元数据,并且因而重新目的化可能在读取或写入操作期间使用的引脚。

在一个实施例中,存储器子系统利用来自存储器设备的内部位在存储器控制器处执行错误校正。这样的实现提供相对于在存储器设备内部的错误校正位的传统使用的某些优点。例如,存储器控制器处的错误校正可以消除在存储器设备或DRAM自身内具有ECC逻辑的需要。这样的实现还允许存储器控制器执行错误校正计算,而不是存储器设备。存储器控制器可以在使数据排成队以供写入之前以较缓慢的速度执行错误校正位计算,这降低在写入时的针对存储器设备的定时要求。同样地,在读取时,存储器设备可以简单地访问和发送错误校正位,存储器控制器可以使用比在存储器设备上典型发现的更快的晶体管来计算该错误校正位并且执行关于数据的错误校正,所述存储器设备否则将需要在发送数据之前执行所述操作。

在本文中参照不同接口的存储器设备。将理解到,接口类型是指可以由存储器设备驱动的数据信号线的数目。x16存储器设备是指具有16位宽数据I/O(输入/输出)接口的设备。类似地,存储器设备可以具有x32接口或x64接口(分别是指具有32位或64位宽数据I/O接口的设备)。其它常见存储器设备配置包括x8和x4设备。

对存储器设备的参照可以适用于不同存储器类型。存储器设备一般是指易失性存储器技术。易失性存储器是如果去往设备的功率中断则其状态(以及因而存储在其上的数据)是不确定的存储器。非易失性存储器或储存器保持其状态,即便功率中断(经受长时间段内的降级)。动态易失性存储器要求刷新存储在设备中的数据以维持状态。动态易失性存储器的一个示例包括DRAM(动态随机存取存储器),或者某种变型,诸如同步DRAM(SDRAM)。如本文所描述的存储器子系统可以与数个存储器技术兼容,诸如DDR3(双数据速率版本3,由JEDEC(联合电子设备工程会议)在2007年6月27日原始发布,当前处于发行本21)、DDR4(DDR版本4,在2012年9月由JEDEC公布的最初规范)、LPDDR3(低功率DDR版本3,JEDEC的JESD209-3B,2013年8月)、LPDDR4(低功率双数据速率(LPDDR)版本4,JESD209-4,由JEDEC在2014年8月原始公布)、WIO2(宽I/O 2(WideIO2)、JESD229-2,由JEDEC在2014年8月原始公布)、HBM DRAM(高带宽存储器,JESD235,由JEDEC在2013年10月原始公布)和/或其它,以及基于这样的规范的派生物或扩展的技术。

图1是具有存储器设备的系统的实施例的框图,所述存储器设备可以暴露内部错误校正位以供外部存储器控制器使用。系统100包括计算设备中的存储器子系统的元件。主机110表示运行操作系统(OS)和应用的主机计算平台。OS和应用运行导致存储器访问的操作。主机110包括处理器或处理单元,其可以是单核或多核处理器。系统100可以实现为SOC或者利用独立组件实现。

存储器控制器112表示响应于由(一个或多个)处理器运行操作而生成存储器访问命令的控制逻辑。在一个实施例中,系统100包括多个存储器控制器。在一个实施例中,系统100包括每通道一个或多个存储器控制器,其中一个通道耦合以访问数个存储器设备。每一个通道是去往存储器的独立访问路径,因此,多个不同的存储器访问可以在不同通道上并行发生。在一个实施例中,存储器控制器112是主机110的部分,诸如实现在与主机处理器相同的管芯或封装空间上的逻辑。

存储器设备120表示用于系统100的存储器资源。存储器设备120均包括多个存储器阵列122。存储器阵列122表示其中存储器设备120存储数据位的逻辑。存储器设备120均包括模式逻辑126。模式逻辑126可以是指存储器设备内存储配置设置的模式寄存器或其它机制。在一个实施例中,在模式逻辑126内设置用于特定存储器设备的实现。基于模式逻辑126中的设置,存储器设备120可以被配置成关于错误校正在两个不同模式之一中操作。在第一模式中,存储器设备120基于本地存储的错误校正位在内部应用错误校正。在内部应用错误校正可以使得存储器设备120能够解决缩放问题,诸如刷新定时、VRT(变量保留时间)或其它缩放问题。在第二模式中,存储器设备120向存储器控制器112暴露错误校正位。暴露错误校正位可以是指允许存储器控制器122写入内部错误校正位和向存储器控制器112发送内部错误校正位。

在一个实施例中,存储器设备120包括ECC 124,其表示实现错误校正的逻辑和存储器。因此,ECC 124表示存储器设备120生成和使用内部错误校正位的能力。如本文所描述的,存储器设备120向存储器控制器112暴露ECC 124,诸如经由并联到在存储器控制器112与存储器设备120之间共享的数据接口的接口。将理解到,ECC 124可以针对通过存储器控制器112的存储器访问引入读取和写入等待时间。当存储器设备120仅经由ECC 124在内部应用错误校正时,错误校正逻辑可以通过在飞行中计算和校正和/或通过推测性地使用错误校正数据而引入读取等待时间。

在一个实施例中,ECC 124的错误校正逻辑可以在其中存储器控制器112计算和使用错误校正位的模式期间是空闲的。在一个实施例中,这样的模式是可用于存储器设备120的仅有模式,并且存储器设备可以被设计和制造而没有内部错误校正逻辑,其否则将用于计算ECC和/或执行错误校正。因此,在一个实施例中,ECC 124可以仅表示用于内部错误校正位的储存器,以及与存储器控制器112交换这样的位所必要的逻辑,但是没有否则在内部使用所述位的逻辑。

在一个实施例中,存储器设备120包括双模态操作,其包括仅在内部使用ECC 124的第一模式,和向存储器控制器112暴露ECC 124的第二模式。在第一模式中,在写入期间,存储器设备120可以接收或累积数据(例如128位),经由ECC 124在接收的位上生成ECC码,并且写入数据和额外的位(例如8位)二者。在第二模式中,在写入期间,存储器控制器112在内部生成元数据并且将其连同数据一起发送至存储器设备120。如果元数据是ECC数据,则控制器可以在将数据标记为对调度准备就绪之前离线计算ECC。写入数据不是等待时间敏感的,并且因此这样的操作不招致性能损失。在第一模式中,在读取期间,存储器设备120预取数据(例如128位),并且生成针对所预取的数据的ECC,比较所生成的ECC与所存储的ECC,并且在向存储器控制器112发送数据之前利用ECC 124校正单个错误。在第二模式中,在读取期间,存储器设备120经由ECC 124访问ECC数据,并且将其作为元数据发送至存储器控制器112。存储器控制器112在内部使用该元数据。如果元数据是ECC数据,则控制器在内部计算ECC,将其与所接收到的ECC比较,并且相应地校正数据。如果元数据是非错误校正数据,则存储器控制器112将该数据用于其他目的。

在一个实施例中,来自存储器设备120的ECC 124的内部错误校正位可以提供在读取-修改-写入(RMW)或部分写入操作中的用途。在一个实施例中,存储器设备120不需要在内部执行RMW计算操作,但是RMW计算操作可以在向存储器设备102传送数据之前发生在存储器控制器112内。在第一模式中,存储器设备120将预取数据并且将其与部分写入数据合并。存储器设备120然后将经由ECC 124计算ECC并且将数据和ECC写入到(一个或多个)存储器阵列122。在第二模式中,存储器控制器112可以合并数据并且计算针对它的ECC。可替换地,存储器控制器112可以使ECC过时并且将其写有“非有效”值。

将理解到,多个存储器设备120可以连接到相同的存储器控制器112。系统100可以包括连接到主机110的多个存储器控制器112(未具体示出)。在一个实施例中,在存储器控制器112与存储器设备120之间交换的元数据用于ECC。在这样的实现中,存储器控制器112可以包括ECC逻辑,并且每通道操作逻辑一次以用于存储器访问,而不是在每一个存储器设备120中具有ECC逻辑的多个实例。

图2是具有存储器设备的系统的实施例的框图,所述存储器设备暴露内部错误校正位以供外部存储器控制器用于错误校正。系统200可以是图1的系统100的一个示例。具体地,系统200被配置成使存储器控制器210执行错误校正操作而不是使存储器设备220执行所述操作。存储器控制器210表示控制对存储器设备220的存储器访问的逻辑。在一个实施例中,存储器控制器210包括ECC读取逻辑212和ECC写入逻辑214。

存储器设备220包括数据储存器222,其表示存储器设备220中的存储空间,其中存储器设备写入从存储器控制器210接收到的数据并且访问所存储的数据以发送至存储器控制器210。在一个实施例中,存储器设备210包括ECC储存器224,其表示其中存储器设备220存储ECC或其它错误校正数据的存储空间。ECC储存器224可以据说表示其中存储器设备220存储内部错误校正位的位置。在一个实施例中,ECC储存器224是数据储存器222的部分,诸如特殊指定的地址范围。在其中ECC储存器224是数据储存器222的部分的一个实施例中,系统可以增加页面大小以存储ECC数据。例如,系统可以将页面大小从1024字节增加至1088字节。在一个实施例中,存储器设备220包括用于ECC储存器224的寄存器或一些其它的分离的存储位置。

在一个实施例中,存储器设备220包括ECC逻辑226。ECC逻辑226表示存储器设备用于计算错误校正的逻辑。ECC逻辑226可以表示存储器设备内的逻辑,其控制从在存储器设备220内在内部到在存储器控制器210处在外部应用错误校正。在一个实施例中,存储器设备220不包括ECC逻辑226,至少就执行ECC计算或其它操作的逻辑而言。存储器设备220包括用于交换错误校正元数据的与存储器控制器210的接口,其可以包括连接器和控制接口的逻辑。

对于读取存储器访问操作,ECC读取逻辑212使得存储器控制器210能够从ECC储存器224接收内部错误校正位并且计算错误校正和校正从数据储存器222取回的数据中的错误。因此,存储器控制器210可以利用存储在存储器设备220处的错误校正数据(内部错误校正位)校正错误而不是使存储器设备执行错误校正。这样的操作可以改进读取等待时间。

对于写入存储器访问操作,ECC写入逻辑214使得存储器控制器210能够在存储器控制器处计算错误校正数据并且向存储器设备220发送错误校正数据以供与该数据一起存储。这样的操作可以改进写入等待时间。将理解到,“内部错误校正位”可以是指由存储器控制器210计算的错误校正数据,因为其将与传统上用于内部错误校正的错误校正机制一起存储在存储器设备220中。对于由ECC写入逻辑214计算的错误校正元数据,存储器设备220将错误校正数据存储在ECC储存器224中,并且取回它以用于对与写入操作相关联的相同存储器位置的读取访问。对于部分写入或RMW,ECC写入逻辑214使得存储器控制器210能够从数据储存器222读取数据、修改数据、计算错误校正和写回具有适当的错误校正的数据。

图3是其中存储器控制器使来自多个存储器设备的内部错误校正位成群的系统的实施例的框图。系统300可以是依照图1的系统100或图2的系统200的系统的一个示例。系统300包括存储器控制器310,其控制针对存储器设备320的存储器访问操作。在一个实施例中,存储器设备320表示存储器队列(rank)。将理解到,存储器队列是指并联成群在一起的多个设备,其在存储器访问操作上被一起选择和访问。

每一个存储器设备320包括内部错误校正位322。依照本文所描述的任何实施例,每一个存储器设备320可以向存储器控制器310暴露内部位322。在一个实施例中,系统300使多个存储器设备320的所有内部位322成群在一起。因此,系统300允许更多的数据位作为元数据来交换。在使用用于ECC的元数据的情况下,使用来自多个存储器设备320的内部位322可以提供更强的错误校正。存储器控制器310包括组合来自多个存储器设备320的内部位322的元数据逻辑312。元数据逻辑312表示存储器控制器310中的逻辑(硬件和/或软件),其使得存储器控制器310能够与存储器设备320发送和接收作为元数据的内部位322。在一个实施例中,元数据逻辑312组合来自多个存储器设备320的内部位以增加可用的元数据的位数。

在其中存储器设备320执行内部错误校正的传统实现中,将理解到,存储器设备320将需要以高时钟速度预取数据并且执行错误校正操作。高时钟速度需要足以允许存储器设备及时执行操作以在读取时向存储器控制器310发送数据或者在写入时存储数据。在一个实施例中,存储器设备320可以在向存储器控制器310暴露内部位322时以较缓慢的时钟预取数据。此外,存储器控制器310的元数据逻辑312可以以较缓慢的时钟在元数据上操作。

假定在一个示例中存储器设备320执行128位的数据的内部预取,而同时读取/写入数据是64位。通过组合来自两个存储器设备320(两个不同高速缓存行)的数据,存储器控制器310可以交换128位的数据的完整带宽。在一个实施例中,元数据逻辑312基于内部位322而计算ECC,并且可以计算针对两个高速缓存行一起的ECC。对于x8设备,存储器控制器310可以向两个存储器设备320中的每一个交换4位的元数据。

在一个实施例中,元数据逻辑312在用于ECC的额外数据突发中传送元数据。在这样的实现中,存储器设备320可以在第一突发上传送读取元数据,并且元数据逻辑312可以在最后突发上传送写入元数据。通过在第一突发上发送读取元数据并且在最后突发上发送写入元数据,元数据逻辑312可以放松写入期间针对ECC的计算,并且在读取期间执行早期检测。

图4是其中存储器控制器与存储器设备对接以用于元数据交换的系统和引脚分配表的实施例的框图。系统400可以是依照图1的系统100、图2的系统200和/或图3的系统300的系统的一个示例。存储器控制器410是依照本文所描述的任何实施例的存储器控制器。存储器设备430是依照本文所描述的任何实施例的存储器设备。

存储器设备430包括内部位432,其表示存储和管理存储器设备430内的内部错误校正机制的使用的储存器和/或逻辑。在一个实施例中,存储器设备430向存储器控制器410暴露内部位432,以使得存储器控制器能够将内部位用作元数据。存储器控制器410包括元数据逻辑412,其表示使得存储器控制器410能够与存储器设备430交换内部位432的硬件和/或软件。

存储器控制器410包括一个或多个硬件I/O接口组件,在存储器设备430处具有对应I/O接口。例如,存储器控制器包括C/A(标记为CA)接口422,在存储器设备430处具有对应C/A接口442。接口元件422和442表示命令/地址总线,存储器控制器410通过所述命令/地址总线向存储器设备430发送命令,所述命令包括存储器访问命令。存储器控制器410包括DQ接口424,在存储器设备430处具有对应DQ接口444。DQ接口424和444表示数据总线,存储器控制器和存储器设备通过所述数据总线交换数据。在一个实施例中,存储器控制器410包括DM接口,在存储器设备430处具有对应DM接口446。DM接口426和446表示直接存储器接口。接口(422至442、424至444和426至446)中的每一个可以被视为分离的I/O接口,或者可以被视为设备之间的单个接口的部分。

在一个实施例中,存储器控制器410和存储器设备430如下传送数据。存储器控制器410通过CA接口422、442向存储器设备430发送存储器访问命令。存储器设备430接收和解码命令。对于写入,存储器控制器410还发送要通过DQ接口424、444写入的数据。在一个实施例中,存储器控制器410还经由元数据逻辑412计算并且通过DM接口426、446与写入数据一起发送元数据。存储器设备430接收写入数据和写入元数据,并且存储两个数据集合,(一个或多个)存储器阵列中的DQ数据和作为内部位432的写入元数据。在一个实施例中,内部位432可以被存储为DQ数据旁边的(一个或多个)主存储器阵列的部分。在一个实施例中,内部位432可以实现为(一个或多个)单独的位。对于读取,存储器设备430接收和解码命令和地址。存储器设备从(一个或多个)存储器阵列预取数据并且通过DQ接口444、424发送数据。存储器设备430还访问内部位432并且通过DM接口446、426发送所述位作为读取元数据。

将理解到,其它引脚可以用于传送元数据。例如,DQ接口424、444可以包括用于传送元数据的一个或多个附加引脚和信号线。在另一实施例中,在存储器控制器410与存储器设备430之间的接口中可以存在一个或多个其它引脚,其可以针对存储器设备430用于暴露内部位432并且针对存储器控制器410用于访问内部位432。被选择传送元数据的接口可以是否则对于读取或写入操作不活动的引脚或信号线。引脚或信号线可以可替换地在读取或写入期间服务不同目的并且被重新目的化。

在一个实施例中,存储器控制器410和存储器设备430可以此外或可替换地使用DBI接口(未示出)以交换元数据。将理解到,数据交换发生在传送时段的突发内,所述传送时段是特定读取/写入事务或操作的所有部分。元数据可以同样在具有数个不同选项中的任何一个的突发中来发送。表格450说明针对存储器设备430的不同配置的传送选项。将理解到,表格450是说明性而非限制性的。表格450具体地说明用于传送128位的数据和8位的元数据的若干配置。例如,具有x16接口宽度与BL8的突发长度的配置、具有x32接口宽度与BL4的突发长度的配置和具有x64接口宽度与BL2的突发长度的配置。

在一个实施例中,对于x16配置,系统400可以通过单个引脚或连接器DM[x]传送元数据位0至7。在这样的配置中,不使用其它引脚DM[y, z, w]。在x16配置中,系统400还可以通过总共八个DM引脚的任何二进制组合传送元数据位。例如,系统400可以通过DM[x]传送元数据位0至3和通过DM[y]传送元数据位4至7。在这样的示例中,将理解到,引脚将不通过最后四个突发来传送元数据,即便系统将通过那些突发传送数据。作为另一示例,系统400可以通过DM[x]传送元数据位0和1,通过DM[y]传送2和3,通过DM[z]传送4和5,并且通过DM[w]传送6和7。在八个DM引脚的情况下,将理解到,八个引脚中的每一个可以用于在单个突发期间发送单个位。在这样的示例中,单个突发可以是第一或最后突发。

在x32配置中,系统400可以依照类似的选项传送8个元数据位。在一个示例中,系统400可以通过DM[x]传送元数据位0至3并且通过DM[y]传送元数据位4至7。在这样的示例中,将理解到,引脚将不通过最后两个突发传送元数据。作为另一示例,系统400可以通过DM[x]传送元数据位0和1,通过DM[y]传送2和3,通过DM[z]传送4和5,并且通过DM[w]传送6和7,其中每一个引脚对于最后两个突发是空闲的。在x32配置中,系统400还可以利用8个传送信号线或引脚在单个突发中传送所有元数据位。类似地,在x64配置中,系统400可以通过DM[x]传送元数据位0和1,通过DM[y]传送2和3,通过DM[z]传送4和5,并且通过DM[w]传送6和7。在x642配置中,系统400还可以利用8个传送信号线或引脚在单个突发中传送所有元数据位。

图5是用于在存储器控制器与存储器设备之间对接以针对不同带宽的总线来交换数据的过程的实施例的流程图。过程500表示存储器设备通过其向存储器控制器暴露内部错误校正位和/或存储器控制器访问存储器设备的内部错误校正位的过程中的操作。在一个实施例中,存储器设备可以是双模态的,并且系统确定存储器设备处于第一还是第二模式中,502。在一个实施例中,存储器设备被设计或配置成具有总是暴露内部错误校正位的单个模式。

如果存储器设备处于第一模式,504第一分支,则存储器设备生成内部错误校正位,506,并且在内部使用内部错误校正位,508。因此,存储器设备并不向外部存储器控制器暴露内部错误校正位。如果存储器设备处于第二模式,504第二分支,则存储器设备暴露内部错误校正位以供存储器控制器使用,510。

存储器控制器生成和发送与通过主机的操作有关的存储器访问命令,512。存储器设备接收和解码存储器访问命令,514。如果所述命令是读取,516读取分支,则存储器设备读取内部错误校正位并且提取由命令指示的数据,518。存储器设备将作为元数据的内部错误校正位与数据一起发送到存储器控制器,520。如以上所讨论的,存在存储器设备可以以其向存储器控制器传送元数据位的多个不同方式。与存储器设备将所述位用于内部错误校正相比,存储器控制器在更低的时间约束下使用元数据,522。

如果所述命令是写入,516写入分支,则存储器控制器生成元数据位并且将元数据与数据一起发送到存储器设备,524。同样,存在存储器控制器可以以其向存储器设备传送元数据的许多不同方式。存储器设备写入数据并且存储和/或解码从存储器控制器接收到的元数据,526。在读取或写入的任一情况下,元数据可以用于在存储器控制器而不是存储器设备处的错误校正的目的和/或可以用于非错误校正目的。

参照存储器控制器和存储器设备来描述过程500。如以上所讨论的,在一个实施例中,存储器设备可以是耦合到存储器控制器的多个存储器设备之一。多个存储器设备可以并联耦合到存储器控制器,并且存储器控制器组合来自多个不同设备的元数据。在组合的情境中,存储器控制器可以将来自一个存储器设备的元数据视为所计算的总的元数据位的一部分。例如,存储器控制器可以生成作为错误校正或其它元数据的多于八位的元数据,并且存储和从并联耦合的多个存储器设备(诸如在存储器队列中)取回元数据。在这样的实现中,过程500中的通过存储器控制器的操作将包括与更多设备交换的元数据。在过程500中的通过存储器设备的操作可以由多个存储器设备执行。

图6是其中可以实现对接到不同带宽的数据总线的公共管芯的计算系统的实施例的框图。系统600表示依照本文所描述的任何实施例的计算设备,并且可以是膝上型计算机、台式计算机、服务器、游戏或娱乐控制系统、扫描仪、复印机、打印机、路由或交换设备或其它电子设备。系统600包括处理器620,其提供针对系统600的处理、操作管理和对指令的运行。处理器620可以包括任何类型的微处理器、中央处理单元(CPU)、处理核或其它处理硬件以提供针对系统600的处理。处理器620控制系统600的总体操作,并且可以是或包括,一个或多个可编程通用或专用微处理器、数字信号处理器(DSP)、可编程控制器、专用集成电路(ASIC)、可编程逻辑器件(PLD)等,或者这样的设备的组合。

存储器子系统630表示系统600的主存储器,并且提供针对要由处理器620执行的代码或要在运行例程中使用的数据值的临时存储。存储器子系统630可以包括一个或多个存储器设备,诸如只读存储器(ROM)、闪速存储器、一个或多个种类的随机存取存储器(RAM)或其它存储器设备或这样的设备的组合。除其它之外,存储器子系统630尤其存储和主控操作系统(OS)636以提供用于在系统600中运行指令的软件平台。此外,存储并且运行来自存储器子系统630的其它指令638以提供系统600的逻辑和处理。OS 636和指令638由处理器620运行。存储器子系统730包括存储器设备632,其中它存储数据、指令、程序或其它项目。在一个实施例中,存储器子系统包括存储器控制器634,其是生成命令和向存储器设备632发布命令的存储器控制器。将理解到,存储器控制器634可以是处理器620的物理部分。

处理器620和存储器子系统630耦合到总线/总线系统610。总线610是表示通过适当的桥接器、适配器和/或控制器连接的任何一个或多个分离的物理总线、通信线路/接口和/或点对点连接的抽象。因此,总线610可以包括例如以下中的一个或多个:系统总线、外围组件互连(PCI)总线、超传输或工业标准架构(ISA)总线、小型计算机系统接口(SCSI)总线、通用串行总线(USB)或电气和电子工程师(IEEE)协会标准1394总线(通常称为“火线”)。总线610的总线还可以对应于网络接口650中的接口。

系统600还包括耦合到总线610的一个或多个输入/输出(I/O)接口640、网络接口650、一个或多个内部大容量存储设备660和外围接口670。I/O接口640可以包括一个或多个接口组件,用户通过所述一个或多个接口组件与系统600交互(例如视频、音频和/或字母数字对接)。在一个实施例中,I/O接口640可以包括向用户提供输出的高清晰度(HD)显示器。高清晰度可以是指具有近似100PPI(像素每英寸)或更大的像素密度的显示,并且可以包括诸如全HD(例如1080P)、视网膜显示、4K(超高清晰度或UHD)或其它之类的格式。高清晰度还可以是指具有与像素显示器相当的视觉质量的投影的显示(例如头部安装的显示器)。网络接口650为系统600提供通过一个或多个网络与远程设备(例如服务器、其它计算设备)通信的能力。网络接口650可以包括以太网适配器、无线互连组件、USB(通用串行总线)或其它基于有线或无线标准的或专有的接口。

储存器660可以是或包括用于以非易失性方式存储大量数据的任何常规的介质,诸如一个或多个磁性、固态或基于光学的盘或组合。储存器660以持久性状态保存代码或指令和数据662(即尽管到系统600的功率中断也保留值)。储存器660可以一般地被视为“存储器”,尽管存储器630是向处理器620提供指令的运行或操作存储器。存储器630可以包括易失性存储器(即如果到系统600的功率中断则数据的值或状态是不确定的),而储存器660是非易失性的。

外围接口670可以包括以上未具体提到的任何硬件接口。外设一般是指独立连接到系统600的设备。从属连接是这样的连接,在该连接中系统600提供其上运行操作并且用户与其进行交互的软件和/或硬件平台。

在一个实施例中,系统600包括元数据逻辑680,其使得存储器设备632和存储器控制器634能够在读取或写入事务期间交换元数据。存储器设备632向存储器控制器634暴露内部错误校正位。在一个实施例中,存储器控制器634生成和消费元数据,所述元数据存储在存储器设备632中。内部错误校正位可以由存储器控制器用于在降低的定时约束下在存储器控制器处的错误校正。存储器控制器还可以或可替换地将元数据用于除错误校正之外的某事。存储器子系统630可以包括多个存储器设备632,其可以并联耦合到存储器控制器634以允许对更多的元数据位的存储器控制器访问。

图7是其中可以实现对接到不同带宽的数据总线的公共管芯的移动设备的实施例的框图。设备700表示移动计算设备,诸如计算平板电脑、移动电话或智能电话、启用无线使的电子阅读器、可穿戴计算设备或其它移动设备。将理解到,一般地示出某些组件,并且在设备700中未示出这样的设备的所有组件。

设备700可以包括处理器710,其执行设备700的主要处理操作。处理器710可以包括一个或多个物理设备,诸如微处理器、应用处理器、微控制器、可编程逻辑器件或其它处理部件。由处理器710执行的处理操作包括其上运行应用和/或设备功能的操作平台或操作系统的运行。处理操作包括涉及与人类用户或与其它设备的I/O(输入/输出)的操作、涉及功率管理的操作和/或涉及将设备700连接到另一设备的操作。处理操作还可以包括涉及音频I/O和/或显示I/O的操作。

在一个实施例中,设备700包括音频子系统720,其表示与向计算设备提供音频功能相关联的硬件(例如音频硬件和音频电路)和软件(例如驱动器、编解码器)组件。音频功能可以包括扬声器和/或耳机输出,以及麦克风输入。用于这样的功能的设备可以集成到设备700中,或者连接到设备700。在一个实施例中,用户通过提供由处理器710接收和处理的音频命令来与设备700交互。

显示子系统730表示针对用户提供与计算设备交互的视觉和/或触觉显示的硬件(例如显示设备)和软件(例如驱动器)组件。显示子系统730包括显示接口732,其包括用于向用户提供显示的特定屏幕或硬件设备。在一个实施例中,显示接口732包括与处理器710分离以执行涉及显示的至少一些处理的逻辑。在一个实施例中,显示子系统730包括向用户提供输出和输入二者的触摸屏设备。在一个实施例中,显示子系统730包括向用户提供输出的高清晰度(HD)显示器。高清晰度可以是指具有近似100 PPI(像素每英寸)或更大的像素密度的显示,并且可以包括诸如全HD(例如1080P)、视网膜显示、4K(超高清晰度或UHD)或其它之类的格式。

I/O控制器740表示涉及与用户的交互的硬件设备和软件组件。I/O控制器740可以操作成管理作为音频子系统720和/或显示子系统730的部分的硬件。此外,I/O控制器740说明用于连接到设备700的附加设备的连接点,用户通过其可以与系统交互。例如,可以附连到设备700的设备可以包括麦克风设备、扬声器或立体声系统、视频系统或其它显示设备、键盘或小键盘设备或供特定应用使用的其它I/O设备,诸如读卡器或其它设备。

如以上所提到的,I/O控制器740可以与音频子系统720和/或显示子系统730交互。例如,通过麦克风或其它音频设备的输入可以提供用于设备700的一个或多个应用或功能的输入或命令。此外,可以取代于或附加于显示输出而提供音频输出。在另一示例中,如果显示子系统包括触摸屏,则显示设备还充当输入设备,其可以至少部分地由I/O控制器740来管理。还可以存在设备700上的附加按钮或开关以提供由I/O控制器740管理的I/O功能。

在一个实施例中,I/O控制器740管理诸如加速度计、摄像机、光传感器或其它环境传感器、陀螺仪、全球定位系统(GPS)或可以包括在设备700中的其它硬件之类的设备。输入可以是直接用户交互的部分,以及向系统提供环境输入以影响其操作(诸如对噪声过滤、调节显示器以用于亮度检测、应用摄像机的闪光灯或其它特征)。在一个实施例中,设备700包括功率管理750,其管理电池功率使用、电池的充电和涉及功率节约操作的特征。

存储器子系统760包括用于在设备700中存储信息的(一个或多个)存储器设备762。存储器子系统760可以包括非易失性(如果到存储器设备的功率中断,状态不改变)和/或易失性(如果到存储器设备的供电中断,状态不确定)存储器设备。存储器760可以存储应用数据、用户数据、音乐、照片、文档或其它数据,以及涉及系统700的应用和功能的运行的系统数据(无论长期还是临时)。在一个实施例中,存储器子系统760包括存储器控制器764(其还可以被视为系统700的控制的部分,并且可以潜在地被视为处理器710的部分)。存储器控制器764包括生成命令和向存储器设备762发布命令的调度器。

连接性770包括使得设备700能够与外部设备通信的硬件设备(例如无线和/或有线连接器和通信硬件)和软件组件(例如驱动器、协议栈)。设备可以是分离的设备,诸如其它计算设备、无线接入点或基站以及诸如耳机、打印机或其它设备之类的外设。

连接性770可以包括多个不同类型的连接性。为了一般化,设备700被图示有蜂窝连接性772和无线连接性774。蜂窝连接性772一般是指由无线运营商提供的蜂窝网络连接性,诸如经由GSM(全球移动通信系统)或变型或派生物、CDMA(码分多址)或变型或派生物、TDM(时分复用)或变型或派生物、LTE(长期演进——还称为“4G”)或其它蜂窝服务标准来提供。无线连接性774是指不是蜂窝的无线连接性,并且可以包括个域网(诸如蓝牙)、局域网(诸如WiFi)和/或广域网(诸如WiMax)或其它无线通信。无线通信是指通过使用借由非固体介质的经调制电磁辐射来传送数据。有线通信通过固体通信介质发生。

外围连接780包括硬件接口和连接器,以及做出外围连接的软件组件(例如驱动器、协议栈)。将理解到,设备700可以既是到其它计算设备的外围设备(“去往”782)又是具有连接到它的外围设备(“来自”784)。设备700通常具有“坞接”连接器以连接到其它计算设备以用于诸如管理(例如下载和/或上传、改变、同步)设备700上的内容之类的目的。此外,坞接连接器可以允许设备700连接到某些外设,其允许设备700控制例如到影音或其它系统的内容输出。

除了专有坞接连接器或其它专有连接硬件之外,设备700还可以经由常见或基于标准的连接器做出外围连接780。常见类型可以包括通用串行总线(USB)连接器(其可以包括数个不同的硬件接口中的任何一个)、包括MiniDisplayPort(MDP)的DisplayPort、高清晰度多媒体接口(HDMI)、火线或其它类型。

在一个实施例中,系统700包括元数据逻辑766,其使得存储器设备762和存储器控制器764能够在读取或写入事务期间交换元数据。存储器设备762向存储器控制器764暴露内部错误校正位。在一个实施例中,存储器控制器764生成和消费元数据,所述元数据存储在存储器设备762中。内部错误校正位可以由存储器控制器用于在降低的定时约束下在存储器控制器处的错误校正。存储器控制器还可以或可替换地将元数据用于除错误校正之外的某事。存储器子系统760可以包括多个存储器设备762,其可以并联耦合到存储器控制器764以允许对更多的元数据位的存储器控制器访问。

在一个方面中,一种用于对接存储器设备和存储器控制器的方法包括:确定存储器设备处于第一模式还是第二模式;以及在第一模式中,仅在存储器设备处在内部应用内部错误校正位;以及在第二模式中,向外部存储器控制器暴露内部错误校正位作为元数据位以供外部存储器控制器使用。

在一个实施例中,向外部存储器控制器暴露内部错误校正位作为元数据位包括为存储器控制器暴露内部错误校正位以与存储器设备交换非错误校正信息。在一个实施例中,向外部存储器控制器暴露内部错误校正位作为元数据位包括为存储器控制器暴露内部错误校正位以校正错误而不是存储器设备在内部校正错误。在一个实施例中,为存储器控制器暴露内部错误校正位以校正错误进一步包括,在第二模式中:响应于读取请求,在存储器设备处在内部生成内部错误校正位;以及向存储器控制器发送内部错误校正位以供存储器控制器基于内部错误校正位向数据位应用错误校正。在一个实施例中,为存储器控制器暴露内部错误校正位以校正错误进一步包括,在第二模式中:结合写入请求而接收由存储器控制器计算的错误校正位;以及在存储器设备处在内部存储错误校正位。在一个实施例中,为存储器控制器暴露内部错误校正位包括在信号线上与存储器控制器交换内部错误校正位,所述信号线否则对于读取和写入是不活动的。在一个实施例中,为存储器控制器暴露内部错误校正位进一步包括:作为多个不同存储器设备之一,向存储器控制器暴露内部错误校正位,以增加可用于存储器控制器的元数据位的数目。

在一个方面中,一种与存储器子系统中的存储器控制器对接的存储器设备包括:存储数据的多个存储器单元;内部错误校正硬件,包括与存储器单元分离的存储内部错误校正位的储存器;以及确定存储器设备处于第一模式还是第二模式的逻辑,其中在第一模式中,逻辑仅用内部错误校正硬件在内部应用错误校正位,并且其中在第二模式中,逻辑通过作为元数据位向存储器控制器暴露内部错误校正位以供存储器控制器使用。

在一个实施例中,所述逻辑向存储器控制器暴露内部错误校正位作为元数据位以供存储器控制器与存储器设备交换非错误校正信息。在一个实施例中,所述逻辑向外部存储器控制器暴露内部错误校正位作为元数据位以供存储器控制器校正错误而不是存储器设备在内部校正错误。在一个实施例中,所述逻辑暴露内部错误校正位以供存储器控制器校正错误包括,错误校正逻辑响应于读取请求而生成内部错误校正位,并且所述逻辑发送内部错误校正位以使存储器控制器基于内部错误校正位而向数据位应用错误校正。在一个实施例中,所述逻辑暴露内部错误校正位以供存储器控制器校正错误包括,所述逻辑结合写入请求而接收由存储器控制器计算的错误校正位,并且在与存储器单元分离的储存器中在内部存储错误校正位。在一个实施例中,所述逻辑在信号线上与存储器控制器交换内部错误校正位,所述信号线否则对于读取和写入是不活动的。

在一个方面中,一种具有存储器子系统的电子设备包括:存储器控制器;与存储器控制器对接的存储器设备,存储器设备包括存储数据的多个存储器单元;内部错误校正硬件,包括与存储器单元分离以存储内部错误校正位的储存器;以及确定存储器设备处于第一模式还是第二模式的逻辑,其中在第一模式中,所述逻辑仅用内部错误校正硬件在内部应用错误校正位,并且其中在第二模式中,所述逻辑通过作为元数据位而向存储器控制器暴露内部错误校正位以供存储器控制器使用;以及触摸屏显示器,其耦合成基于从存储器设备访问的数据而生成显示。

在一个实施例中,所述逻辑向存储器控制器暴露内部错误校正位作为元数据位以供存储器控制器与存储器设备交换非错误校正信息。在一个实施例中,所述逻辑向外部存储器控制器暴露内部错误校正位作为元数据位以供存储器控制器校正错误而不是存储器设备在内部校正错误。在一个实施例中,所述逻辑暴露内部错误校正位以供存储器控制器校正错误包括,错误校正逻辑响应于读取请求而生成内部错误校正位,并且所述逻辑发送内部错误校正位以使存储器控制器基于内部错误校正位而向数据位应用错误校正。在一个实施例中,所述逻辑暴露内部错误校正位以供存储器控制器校正错误包括,所述逻辑结合写入请求而接收由存储器控制器计算的错误校正位,并且在与存储器单元分离的储存器中在内部存储错误校正位。在一个实施例中,所述逻辑在信号线上与存储器控制器交换内部错误校正位,所述信号线否则对于读取和写入是不活动的。在一个实施例中,存储器设备是与存储器控制器对接的多个存储器设备之一,并且进一步包括,存储器控制器包括交换来自多个不同存储器设备的内部错误校正位以增加可用于存储器控制器的元数据位的数目的逻辑。

在一个方面中,一种包括具有存储在其上的内容的计算机可读存储介质的制造品,所述内容在被运行时执行用于在存储器子系统中对接的操作,包括:确定存储器设备处于第一模式还是第二模式;以及在第一模式中,仅在存储器设备处在内部应用内部错误校正位;以及在第二模式中,向外部存储器控制器暴露内部错误校正位作为元数据位以供外部存储器控制器使用。

在一个实施例中,用于向外部存储器控制器暴露内部错误校正位作为元数据位的内容包括用于为存储器控制器暴露内部错误校正位以与存储器设备交换非错误校正信息的内容。在一个实施例中,用于向外部存储器控制器暴露内部错误校正位作为元数据位的内容包括用于为存储器控制器暴露内部错误校正位以校正错误而不是存储器设备在内部校正错误的内容。在一个实施例中,用于为存储器控制器暴露内部错误校正位以校正错误的内容进一步包括,在第二模式中,用于以下的内容:响应于读取请求而在存储器设备处在内部生成内部错误校正位;并且向存储器控制器发送内部错误校正位以供存储器控制器基于内部错误校正位向数据位应用错误校正。在一个实施例中,用于为存储器控制器暴露内部错误校正位以校正错误的内容进一步包括,在第二模式中,用于以下的内容:结合写入请求而接收由存储器控制器计算的错误校正位;并且在存储器设备处在内部存储错误校正位。在一个实施例中,用于为存储器控制器暴露内部错误校正位的内容包括用于在信号线上与存储器控制器交换内部错误校正位的内容,所述信号线否则对于读取和写入是不活动的。在一个实施例中,用于为存储器控制器暴露内部错误校正位的内容进一步包括用于作为多个不同存储器设备之一向存储器控制器暴露内部错误校正位以增加可用于存储器控制器的元数据位的数目的内容。

在一个方面中,一种与存储器子系统中的存储器控制器对接的装置包括:用于确定存储器设备处于第一模式还是第二模式的部件;以及用于在第一模式中仅在存储器设备处在内部应用内部错误校正位的部件;以及用于在第二模式中向外部存储器控制器暴露内部错误校正位作为元数据位以供外部存储器控制器使用的部件。

在一个实施例中,用于向外部存储器控制器暴露内部错误校正位作为元数据位的部件包括用于为存储器控制器暴露内部错误校正位以与存储器设备交换非错误校正信息的部件。在一个实施例中,用于向外部存储器控制器暴露内部错误校正位作为元数据位的部件包括用于为存储器控制器暴露内部错误校正位以校正错误而不是存储器设备在内部校正错误的部件。在一个实施例中,用于为存储器控制器暴露内部错误校正位以校正错误的部件进一步包括,在第二模式中,用于以下的部件:响应于读取请求而在存储器设备处在内部生成内部错误校正位;并且向存储器控制器发送内部错误校正位以供存储器控制器基于内部错误校正位而向数据位应用错误校正。在一个实施例中,用于为存储器控制器暴露内部错误校正位以校正错误的部件进一步包括,在第二模式中,用于以下的部件:结合写入请求而接收由存储器控制器计算的错误校正位;并且在存储器设备处在内部存储错误校正位。在一个实施例中,用于为存储器控制器暴露内部错误校正位的部件包括用于在信号线上与存储器控制器交换内部错误校正位的部件,所述信号线否则对于读取和写入是不活动的。在一个实施例中,用于为存储器控制器暴露内部错误校正位的部件进一步包括用于作为多个不同存储器设备之一向存储器控制器暴露内部错误校正位以增加可用于存储器控制器的元数据位的数目的部件。

如本文所图示的流程图提供各种过程动作的序列的示例。流程图可以指示要由软件或固件例程运行的操作,以及物理操作。在一个实施例中,流程图可以图示有限状态机(FSM)的状态,所述有限状态机可以以硬件和/或软件来实现。尽管以特定顺序或次序示出,但是除非另行指定,否则可以修改动作的次序。因此,所图示的实施例应当仅被理解为示例,并且过程可以以不同的次序执行,并且一些动作可以并行执行。此外,可以在各种实施例中省略一个或多个动作;因此,并非所有动作在每一个实施例中都是所必需的。其它过程流是可能的。

在本文描述各种操作或功能的程度上,它们可以被描述或定义为软件代码、指令、配置和/或数据。内容可以是可直接执行的(“对象”或“可执行”形式)、源代码或差异代码(“增量(delta)”或“补丁”代码)。本文所描述的实施例的软件内容可以经由具有存储在其上的内容的制造品来提供,或者经由操作通信接口以经由通信接口发送数据的方法来提供。机器可读存储介质可以使机器执行所描述的功能或操作,并且包括以可由机器(例如计算设备、电子系统等)访问的形式存储信息的任何机构,诸如可记录/非可记录介质(例如只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质、光学存储介质、闪速存储器设备等)。通信接口包括对接到任何硬连线、无线、光学等介质以向另一设备进行通信的任何机构,诸如存储器总线接口、处理器总线接口、因特网连接、盘控制器等。通信接口可以通过提供配置参数和/或发送信号来进行配置以使通信接口准备好提供描述软件内容的数据信号。通信接口可以经由发送至通信接口的一个或多个命令或信号来访问。

本文所描述的各种组件可以是用于执行所描述的操作或功能的部件。本文所描述的每一个组件包括软件、硬件或这些的组合。组件可以实现为软件模块、硬件模块、特殊目的硬件(例如专用硬件、专用集成电路(ASIC)、数字信号处理器(DSP)等)、嵌入式控制器、硬连线电路等。

除了本文所描述的之外,可以在不脱离其范围的情况下对本发明的所公开的实施例和实现做出各种修改。因此,本文中的说明和示例应当以说明性而非限制性含义来解释。本发明的范围应当仅通过参考随附权利要求来衡量。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1