用于在存储器中实现纠错码的系统和方法技术方案

技术编号:18580389 阅读:13 留言:0更新日期:2018-08-01 14:45
公开了用于包括数据部分和纠错控制(ECC)部分的存储器设备的ECC的系统和方法,该存储器设备耦合到片上系统(SoC)。该SoC包括ECC高速缓存。在接收到向存储器写入数据行的请求时,确定该数据是否是可压缩的。如果是,则对该数据行进行压缩。针对压缩或未压缩的数据行生成ECC比特。确定ECC高速缓存行是否与所接收的数据行相关联。如果该数据行是可压缩的,则将ECC比特附加到所压缩的数据行,并且将所附加的数据行存储在存储器的数据部分中。否则,将ECC比特存储在ECC高速缓存中,并且将数据行存储在存储器的数据部分中。

System and method for implementing error correcting codes in memory

A system and method for the ECC of a memory device including the data part and the error correction control (ECC) part is disclosed. The memory device is coupled to the on-chip system (SoC). The SoC includes the ECC cache. When receiving requests to write data rows to memory, determine whether the data is compressible. If so, the data line is compressed. Generate ECC bits for compressed or uncompressed data rows. Determines whether the ECC cache line is associated with the received data rows. If the data line is compressible, the ECC bit is attached to the compressed data row, and the additional data rows are stored in the data portion of the memory. Otherwise, the ECC bits are stored in the ECC cache and the data rows are stored in the data part of the memory.

【技术实现步骤摘要】
【国外来华专利技术】用于在存储器中实现纠错码的系统和方法相关申请的优先权要求本申请根据35U.S.C.§119(b),要求享受于2015年11月2日提交的、标题为“SYSTEMSANDMETHODSFORIMPLEMENTINGERRORCORRECTINGCODEINAMEMORY”的印度专利申请No.5908/CHE/2015的优先权。故以引用方式将该印度专利申请的全部内容并入本文。
技术介绍
包括有耦合到存储器的至少一个处理器的计算设备无处不在。计算设备可以包括个人计算设备(例如,桌面型计算机、膝上型计算机、蜂窝电话、智能电话、平板计算机、便携式数字助理(PDA)和便携式游戏控制台),或者可以包括成较大产品(例如,家电、汽车、飞机、军事或建筑设备等等)的组件。包含计算设备的各种产品可能受制于设置针对该产品中使用的存储器的要求的规定或标准,其包括对诸如DDR(双倍数据速率)DRAM(动态随机存取存储器)之类的存储器使用纠错码(ECC)。这种标准的一个例子是标题为“Roadvehicles–Functionalsafety”的、用于汽车的功能安全标准ISO26262,其为汽车电气/电子系统中使用的存储器设定了标准和要求,其包括在DDRDRAM存储器中使用ECC。为了满足这些标准或规定(例如,ISO26262),可以将DDRDRAM存储器定制设计为满足可以在其中使用DDRDRAM存储器的产品和/或应用的特定要求。但是,这种定制的DDRDRAM存储器的设计和制造成本很高。另外,试图使用常规存储器来满足这些标准或规定也可能是昂贵的,尤其是在这些标准需要非标准的存储器大小和/或存储器接口宽度以及ECC要求的情况下。因此,需要在计算设备的存储器中实现ECC的改进系统和方法,尤其需要这些改进的系统和方法来实现在作为汽车电气和/或电子系统的一部分的计算设备中使用的存储器里的ECC。
技术实现思路
公开了用于在诸如与片上系统(SoC)通信的DDRDRAM/LPDDR(低功率DDR)DRAM之类的存储器中实现纠错控制(ECC)的系统、方法和计算机程序。将存储器划分成数据部分和ECC部分。SoC包括ECC高速缓存。在SoC的组件接收到向存储器写入一行数据的请求时,确定所接收的数据行是否是可压缩的。此外,还可以确定在ECC高速缓存中是命中还是未命中所接收的数据行。如果该数据行是可压缩的,则对其进行压缩,并针对该压缩的数据行生成ECC比特,将附加的压缩数据行存储在存储器的数据部分中。另外,响应于ECC高速缓存的命中,删除与所接收的数据行相关联的ECC高速缓存的高速缓存行。在ECC高速缓存未命中时,确定是否删除与所接收的数据行相关联的存储器设备的ECC部分的行。如果所接收的数据行是不可压缩的,则将该数据行存储在存储器设备的数据部分中,将所生成的ECC比特写入到ECC高速缓存中。写入所生成的ECC比特可以包括:响应于ECC高速缓存的命中,使用所生成的ECC比特来替换ECC高速缓存的高速缓存行;或者响应于ECC高速缓存的未命中,则在将所生成的ECC比特写入到ECC之前,如果ECC高速缓存已满的话,确定是否首先从ECC高速缓存中驱逐高速缓存行。在接收到针对存储器设备中存储的数据行的读取请求时,确定与该存储的数据行的地址相关联的ECC高速缓存是读取命中还是读取未命中。响应于读取命中,与该存储的数据行的地址相关联的ECC高速缓存中的ECC数据将用于该存储的数据行的ECC检查。在ECC高速缓存未命中时,针对与该存储的数据行相关联的有效比特,对存储器设备的ECC部分进行检查。响应于有效比特位于ECC部分中,使用存储器设备的ECC部分中的ECC数据进行ECC检查。响应于有效比特不位于ECC部分中,在ECC检查之后,对附加到该存储的数据行的用于ECC检查的ECC数据和该存储的数据行进行解压缩。附图说明在附图中,除非另外指示,否则遍及各个视图,相似的附图标记指代相似的部分。对于具有诸如“102A”或“102B”的字母字符标记的附图标记,字母字符标记可以区分出现在同一附图中的两个相似的部分或元素。当旨在使附图标记涵盖在所有附图中具有相同附图标记的所有部分时,可以省略附图标记的字母字符标记。。图1是用于在与示例性计算设备的片上系统(SoC)进行通信的存储器中实现纠错控制(ECC)的系统的实施例的框图;图2A是示出在针对与SoC通信的存储器的写操作期间,图1的系统的各部分的交互的功能图;图2B是示出在从与SoC通信的存储器的读操作期间,图1的系统的各部分的交互的功能图;图2C是示出可以在图1和图2A-2B的系统和/或图3-5的方法中使用的ECC高速缓存的实施例的各方面的框图;图3是示出用于为与SoC通信的存储器提供改进的ECC的方法的实施例的流程图;图4是示出用于为针对与SoC通信的存储器的写操作提供ECC数据的方法的实施例的流程图;图5是示出用于为从与SoC通信的存储器的读操作取回ECC数据的方法的实施例的流程图;以及图6是示出可以在其中实现图1的系统或者图3-5的方法的示例性计算设备的框图。具体实施方式本文所使用的“示例性”一词意味着“用作例子、例证或说明”。本文中描述为“示例性”的任何方面不应被解释为比其它方面更优选或更具优势。在本说明书中,术语“应用”或“图像”还可以包括具有可执行内容的文件,例如:目标代码、脚本、字节码、标记语言文件和补丁。此外,本文所引用的“应用”还可以包括在本质上不可执行的文件,例如,可能需要被打开的文档或者需要进行访问的其它数据文件。术语“内容”也可以包括具有可执行内容的文件,例如:目标代码、脚本、字节代码、标记语言文件和补丁。此外,本文所引用的“内容”还可以包括在本质上不可执行的文件,例如,可能需要被打开的文档或者需要进行访问的其它数据文件。如在本描述中使用的,术语“组件”、“数据库”、“模块”、“系统”等旨在指代计算机相关的实体,要么是硬件、固件、硬件和软件的组合、软件,要么是执行中的软件。例如,组件可以是,但不限于是:在处理器上运行的过程、处理器、对象、可执行文件、执行的线程、程序和/或计算机。通过说明的方式,在计算设备运行上的应用和计算设备二者可以是组件。一个或多个组件可以存在于过程和/或执行的线程中,并且组件可以位于一个计算机中和/或分布在两个或更多计算机之间。此外,这些组件可以从具有存储在其上的各种数据结构的各种计算机可读介质中执行。组件可以诸如根据具有一个或多个数据分组(例如,来自与本地系统、分布式系统中的另一个组件进行交互,和/或跨越诸如互联网的网络通过信号的方式与其它系统进行交互的一个组件的数据)的信号通过本地和/或远程过程进行通信。在本描述中,术语“计算设备”用于意指实现与存储器通信的处理器(无论是模拟还是数字)的任何设备,无论该计算设备是否是诸如计算机(包括桌面型计算机、服务器、膝上型计算机、手持计算机、平板电脑等等)之类的“独立”设备。“计算设备”还包括与存储器通信的处理器,其中该存储器是诸如家用电器、汽车、飞机、军事或建筑设备等等之类的较大产品的一部分、部件或组件。“计算设备”也可以是“便携式计算设备”(PCD),术语PCD、“通信设备”、“无线设备”、“无线电话”、“无线通信设备”和“无线手持设备”在本文中本文档来自技高网
...

【技术保护点】
1.一种用于在存储器设备中实现纠错控制(ECC)的方法,所述方法包括:在片上系统(SoC)的组件处,接收向与所述SoC进行电通信的存储器设备写入数据行的请求;确定所接收的数据行是否是可压缩的;确定存在针对与所接收的数据行相关联的所述SoC的ECC高速缓存的高速缓存行的命中还是未命中;以及响应于确定所接收的数据行是可压缩的,进行以下操作:对所接收的数据行进行压缩,基于所压缩的数据行来生成ECC比特,将所述ECC比特附加到所压缩的数据行,将所附加的经压缩的数据行存储在所述存储器设备的数据部分中,以及响应于针对所述ECC高速缓存的命中,删除与所接收的数据行相关联的所述ECC高速缓存的所述高速缓存行,或者响应于针对所述ECC高速缓存的未命中,确定是否删除所述存储器设备的ECC部分的行,或者,响应于确定所接收的数据行是不可压缩的,进行以下操作:基于未压缩的数据行来生成ECC比特,将所述未压缩的数据行存储在所述存储器设备的所述数据部分中,并且将所生成的ECC比特写入到所述ECC高速缓存中。

【技术特征摘要】
【国外来华专利技术】2015.11.02 IN 5908/CHE/2015;2016.01.12 US 14/994,01.一种用于在存储器设备中实现纠错控制(ECC)的方法,所述方法包括:在片上系统(SoC)的组件处,接收向与所述SoC进行电通信的存储器设备写入数据行的请求;确定所接收的数据行是否是可压缩的;确定存在针对与所接收的数据行相关联的所述SoC的ECC高速缓存的高速缓存行的命中还是未命中;以及响应于确定所接收的数据行是可压缩的,进行以下操作:对所接收的数据行进行压缩,基于所压缩的数据行来生成ECC比特,将所述ECC比特附加到所压缩的数据行,将所附加的经压缩的数据行存储在所述存储器设备的数据部分中,以及响应于针对所述ECC高速缓存的命中,删除与所接收的数据行相关联的所述ECC高速缓存的所述高速缓存行,或者响应于针对所述ECC高速缓存的未命中,确定是否删除所述存储器设备的ECC部分的行,或者,响应于确定所接收的数据行是不可压缩的,进行以下操作:基于未压缩的数据行来生成ECC比特,将所述未压缩的数据行存储在所述存储器设备的所述数据部分中,并且将所生成的ECC比特写入到所述ECC高速缓存中。2.根据权利要求1所述的方法,其中,确定是否删除所述存储器设备的ECC部分的所述行还包括:将表示存储在所述存储器设备的所述数据部分中的未压缩的数据行的数量的值(COUNT)与表示所述ECC高速缓存中的存储ECC数据的存储器区域的数量的值(VALID_WAY)进行比较,其中,如果所述COUNT大于所述VALID_WAY,则针对与所接收的数据行相关联的有效比特,对所述存储器设备的所述ECC部分进行检查。3.根据权利要求2所述的方法,其中,响应于所述有效比特位于所述ECC部分中,删除与所述有效比特相关联的所述ECC部分的高速缓存行,并且减小COUNT的所述值。4.根据权利要求1所述的方法,其中,将所生成的ECC比特写入到所述ECC高速缓存中还包括:响应于针对所述ECC高速缓存的命中,使用所生成的ECC比特来替换所述ECC高速缓存的所述高速缓存行,或者响应于针对所述ECC高速缓存的未命中,确定所述ECC高速缓存是否已满。5.根据权利要求4所述的方法,其中,确定所述ECC高速缓存是否已满还包括:确定COUNT的所述值是否小于表示所述ECC高速缓存中的用于存储数据ECC数据的存储器区域的最大数量的值(PHYSICAL_WAY)。6.根据权利要求5所述的方法,还包括:响应于确定COUNT小于PHYSICL_WAY,将所生成的ECC比特写入到所述ECC高速缓存中,并且对COUNT和PHYSICAL_WAY的所述值进行递增,或者响应于确定COUNT等于或大于PHYSICAL_WAY,将VALID_WAY与PHYSICAL_WAY进行比较。7.根据权利要求6所述的方法,还包括:响应于确定VALID_WAY小于PHYSICAL_WAY,将所生成的ECC比特写入到所述ECC高速缓存中,并且对COUNT和PHYSICAL_WAY的所述值进行递增,或者响应于确定VALID_WAY大于或等于PHYSICAL_WAY,将所述ECC高速缓存的第二高速缓存行驱逐到所述存储器设备的所述ECC部分,将所生成的ECC比特写入到所述ECC高速缓存中,并且对COUNT的所述值进行递增。8.根据权利要求7所述的方法,其中,所述第二高速缓存行是最近最少使用(LRE)高速缓存行。9.根据权利要求1所述的方法,还包括:在所述SoC的组件处,接收针对所述存储器设备的所述数据部分中的经存储的数据行的读取请求;确定存在针对与所述经存储的数据行的地址相关联的所述ECC高速缓存的读取命中还是读取未命中;以及响应于针对所述ECC高速缓存的读取命中,使用与所述经存储的数据行的所述地址相关联的所述ECC高速缓存中的ECC数据,来进行对所述经存储的数据行的ECC检查,或者响应于针对所述ECC高速缓存的读取未命中,针对与所述经存储的数据行相关联的有效比特,对所述存储器设备的所述ECC部分进行检查,其中,响应于所述有效比特位于所述ECC部分中,使用所述存储器设备的所述ECC部分中的ECC数据来进行所述ECC检查,或者响应于所述有效比特不位于所述ECC部分中,使用附加到所述经存储的数据行的ECC数据来进行所述ECC检查,并且对所述经存储的数据行进行解压缩。10.根据权利要求1所述的方法,其中,针对写入所述数据行的所述请求是从所述SoC的高速缓存接收的,并且所接收的数据行包括128比特、64比特、32比特、16比特或者8比特高速缓存行。11.一种用于在存储器设备中实现纠错控制(ECC)的系统,所述系统包括:用于在片上系统(SoC)的组件处,接收向与所述SoC进行电通信的存储器设备写入数据行的请求的单元;用于确定所接收的数据行是否是可压缩的单元;用于确定存在针对与所接收的数据行相关联的所述SoC的ECC高速缓存的高速缓存行的命中还是未命中的单元;用于响应于确定所接收的数据行是可压缩的,对所接收的数据行进行压缩的单元;用于基于所压缩的数据行来生成ECC比特的单元;用于将所述ECC比特附加到所压缩的数据行的单元;用于将所附加的经压缩的数据行存储在所述存储器设备的数据部分中的单元;用于响应于针对所述ECC高速缓存的命中,删除与所接收的数据行相关联的所述ECC高速缓存的所述高速缓存行的单元;用于响应于针对所述ECC高速缓存的未命中,确定是否删除所述存储器设备的ECC部分的行的单元;用于响应于确定所接收的数据行是不可压缩的,基于未压缩的数据行来生成ECC比特的单元;用于响应于确定所接收的数据行是不可压缩的,将所述未压缩的数据行存储在所述存储器设备的所述数据部分中的单元;以及用于响应于确定所接收的数据行是不可压缩的,将所生成的ECC比特写入到所述ECC高速缓存中的单元。12.根据权利要求11所述的系统,其中,所述用于确定是否删除所述存储器设备的ECC部分的所述行的单元还包括:用于将表示存储在所述存储器设备的所述数据部分中的未压缩的数据行的数量的值(COUNT)与表示所述ECC高速缓存中的存储ECC数据的存储器区域的数量的值(VALID_WAY)进行比较的单元,其中,如果所述COUNT大于所述VALID_WAY,则针对与所接收的数据行相关联的有效比特,对所述存储器设备的所述ECC部分进行检查。13.根据权利要求12所述的系统,还包括:用于响应于所述有效比特位于所述ECC部分中,删除与所述有效比特相关联的所述ECC部分的高速缓存行的单元,以及用于减小COUNT的值的单元。14.根据权利要求11所述的系统,其中,所述用于将所生成的ECC比特写入到所述ECC高速缓存中的单元还包括:用于响应于针对所述ECC高速缓存的命中,使用所生成的ECC比特来替换所述ECC高速缓存的所述高速缓存行的单元;以及用于响应于针对所述ECC高速缓存的未命中,确定所述ECC高速缓存是否已满的单元。15.根据权利要求14所述的系统,其中,所述用于确定所述ECC高速缓存是否已满的单元还包括:用于确定COUNT的所述值是否小于表示所述ECC高速缓存中的用于存储数据ECC数据的存储器区域的最大数量的值(PHYSICAL_WAY)的单元。16.根据权利要求15所述的系统,还包括:用于响应于确定CO...

【专利技术属性】
技术研发人员:N·郭M·比斯瓦斯P·布扬J·沙贝尔R·哈达克R·古拉蒂M·黑德斯
申请(专利权)人:高通股份有限公司
类型:发明
国别省市:美国,US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1