信道旋转纠错码的制作方法

文档序号:8287857阅读:497来源:国知局
信道旋转纠错码的制作方法
【技术领域】
[0001]本发明一般涉及在对存储器模块的写入操作和从存储器模块的读取操作期间提供和控制数字存储器错误检测和纠正的方法,且更具体来说涉及在对存储器的写入操作和从存储器的读取操作期间处理纠错操作。
【背景技术】
[0002]计算机系统在存储器设备(例如但不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)等)中操作和传送数据。
[0003]纠错码(ECC)存储器(例如DRAM)可以检测和纠正最常见类型的内部数据损坏。ECC存储器有效保持存储器系统不受单个位错误影响,其中即使单个位已被存储,或在某些情况下被翻转到错误状态,从每个字读出的数据也总是与已被写入到字的数据相同。
[0004]某些计算机系统被设计成满足大型阵列的存储器以及系统内高水平的数据完整性的要求。对于这些系统,由于约束(例如高成本、设计的局限性和/或存储器模块中纠错的非可用性),故具有ECC的标准DRAM存储器通常不是最好的选择。
[0005]计算机系统设计的另一个考虑是信道带宽,其一般定义例如跨数字通信网络或往返于计算机中的存储器信道的通信路径的净比特率、信道容量或最大吞吐量。大的带宽是可取的并且有时需要用于传输和接收大量数据。
[0006]用于计算机系统的目前可用的DRAM存储器包括纠错码能力,所以当数据包通过网络被传送并且在计算机处被接收时,那台计算机将最有可能具有具ECC的DRAM存储器以确保数据完整性。然而如上提示过,使用TSV-DRAM存储器更好服务于需要高存储容量和带宽的一些计算机。当然对于任何计算机系统,某种形式的数据纠正对准确的数据存储和调用是必不可少的。
[0007]需要高水平的数据完整性的一些计算机系统需要在大型阵列的存储器上使用错误检测和纠正。然而,如果系统设计由于成本、设计局限性或可用性而不能利用具有ECC逻辑的DRAM,那么必须使用其他方法来确保数据完整性。
[0008]对使用标准DRAM-ECC存储器芯片和逻辑以外的计算机系统实施数据纠正的一个方法是对存储器控制器实施ECC逻辑并且将纠错码以及数据存储在DRAM模块上。然而,这种方法对于每个写入和读取需要两个访问:一个访问用于写入或读取数据,并且第二访问用于写入或读取ECC值。这种双重的写入/读取要求实际上具有将DRAM信道的带宽切成两半的不利影响。

【发明内容】

[0009]本发明的目的是提供一种具有改进的纠错和改进的带宽的计算机系统。本发明的另一目的是提供一种用于对使用标准DRAM-ECC存储器芯片和逻辑以外的计算机系统实施数据纠正的改进的方法和系统。本发明的又一目的是提供保持宽带宽能力的这种系统。
[0010]根据一个方面,一种用于具有多个信道的存储器的计算机的一般写入或读取方法包括将数据写入到存储器中的一个信道或从存储器中的一个信道读取数据,并且将对应于数据的纠错码同时并行写入到存储器中的不同信道或从存储器中的不同信道同时并行读取对应于数据的纠错码。
[0011]根据一个方面,一种用于将数据写入到多信道存储器模块的方法包括以下步骤:(a)为具有m个信道的多信道存储器模块设置η的起始值(m-1),其中η和m为大于和等于零的整数并且m比η至少大I ; (b)将数据DATn写入到存储器模块的信道CHn ;(c)如果n = m-1,那么将对应于DATn的纠错码ECCn同时并行写入到存储器模块的另一信道CH(Start) ; (cl)如果数据的写入完成,那么结束;(c2)如果数据的写入未完成,那么将η重设为不同的起始值并且返回到步骤(b) ;(d)如果n #m-l,那么将对应于DATn的纠错码ECCn同时并行写入到存储器模块的另一信道CH(n+1) ; (e)递增η = η+1 ;以及(f)返回到(b)。
[0012]根据一个方面,一种用于从多信道存储器模块读取数据的方法包括以下步骤:(a)为具有m个信道的多信道存储器模块设置O < η < (m-1),其中η和m为大于和等于零的整数并且m比η至少大I ;(b)从存储器模块的信道CHn读取数据DATn; (c)如果n = m_l,那么从存储器模块的另一信道CH(O)同时并行读取对应于DATn的纠错码ECCn; (Cl)如果数据的读取完成,那么结束;(c2)如果数据的读取未完成,那么将η重设为不同的起始值并且返回到步骤(b) ;(d)如果n #m-l,那么从存储器模块的另一信道CH(n+1)同时并行读取对应于DATn的纠错码ECCn ; (e)递增n = n+1 ;以及(f)返回到步骤(b)。
【附图说明】
[0013]通过结合附图参照下面的描述,可以更好地理解本发明的上述及其他优点,各附图中相似的数字指示相似的结构元件和特征。附图不一定是按比例绘制,而是将重点放在说明本发明的原理。
[0014]图1为数字网络的现有技术图;
[0015]图2为根据本发明的原理代表TSV-DRAM多信道存储器模块的一部分的图解;
[0016]图3为根据本发明的原理在对多信道存储器的写入操作期间控制数字存储器错误检测和纠正的方法的第一优选写入实施方案的流程图;
[0017]图4为根据本发明的原理在从多信道存储器的读取操作期间控制数字存储器错误检测和纠正的方法的第一优选读取实施方案的流程图;
[0018]图5为根据本发明的原理在对多信道存储器的写入操作期间控制数字存储器错误检测和纠正的方法的第二优选写入实施方案的流程图;以及
[0019]图6为根据本发明的原理在从多信道存储器的读取操作期间控制数字存储器错误检测和纠正的方法的第二优选读取实施方案的流程图。
【具体实施方式】
[0020]图1为包括计算机20的标准数字通信网络10的图解。网络10代表任何数字通信网络,例如互联网、以太网或局域网LAN。连接到网络10的每个计算机20将具有某种类型的存储器,例如RAM、DRAM、SRAM、TSV-DRAM等。
[0021]如下结合图2至图6说明用于具有增加的带宽的大型阵列的存储器(例如DRAM存储器(其不包括纠错码))的计算机系统和方法。在图2中,DRAM存储器模块70的一部分被示出为具有多个存储器信道60、62、64和66。尽管只描绘四个存储器信道,但是在实践中存储器模块70可以具有8、16、32或只受限于设计或特定应用限制的任何其他数量的存储器信道。纠错码被标示为ECCO、ECC1、ECC2和ECC3。有效载荷或数据区被标示为DATO、DATl、DAT2和DAT3。DRAM存储器模块70可以包括芯片堆叠式存储器,其在一个实施方案中可以通过使用硅通孔(TSV)启用堆叠式存储器芯片之间的通信。在示例性实施方案中,这种芯片堆叠式DRAM存储器将被称为TSV-DRAM,然而也可以使用其他DRAM存储器。
[0022]图3为在对多信道存储器的写入操作期间控制数字存储器错误检测和纠正的方法的第一优选写入实施方案的流程图。在这个实例中,η和m为包括O的整数值,其中m等于存储设备(例如TSV-DRAM存储器模块)的存储器信道的数量,并且η被最初设置为等于Oo如果我们结合图2使用这种方法,那么对于η = O和m = 3,有3个存储器信道并且默认的起始值为η = O。
[0023]第一数据DATO具有相应的第一纠错码ECC0,第二数据DATl具有相应的第二纠错码ECC1,第三数据DAT2具有相应的第三纠错码ECC2,并且第四数据DAT3具有相应的第四纠错码ECC3ο应注意,将第一数据DATO写入到第一信道60 (CHO)并且将第一纠错码ECCl写入到第二信道62 (CHl)。类似地,将第二数据DATl写入到第二信道62 (CHl)并且将第二纠错码ECCl写入到第三信道64 (CH2);将第三数据DAT2写入到第三信道66 (CH2);并且将第三纠错码ECC2写入到第四信道68 (CH3)。最后,将第四数据DAT3写入到第四信道68 (CH3)并且将第四纠错码ECC3写入到第一信道60 (CHO)。
[0024]图3针对以默认值η = O开始的写入数据。在步骤100中选择对应于第一信道CH(O)的用于写入数据的默认的起始值η = O。在步骤102中,将DATn写入到信道CH(η),然后将对应于DATn的纠错码同时并行写入到另一信道CH(n+1)(步骤104)。步骤106询问写入过程是否完成。如果是,那么在步骤112中过程结束。如果否,那么步骤108确定是否n = m-1 ο如果η确实等于m-1,那么过程返回到步骤100,其中η被初始化为O。如果η不等于m-1,那么在步骤110中递增η并且在步骤102中写入过程继续。
[0025]图4为在对多信道存储器的读取操作期间控制数字存储器错误检测和纠正的方法的第一优选读取实施方案的流程图。在步骤150中选择用于读取数据的起始值作为对应于第一信道CH(O)的η = O。在步骤152中,从信道CH(η)读取DATn,然后从另一信道CH(n+1)同时并行读取对应于DATn的纠错码(步骤154)。步骤156询问写入过程是否完成。如果是,那么在步骤162中过程结束。如果否,那么步骤158确定是否η = m-Ι。如果η确实等于m-1,那么过程返回到步骤150,其中η被初始化为O。如果η不等于m_l,那么在步骤160中递增η并且在步骤152中写入过程继续。
[0026]在图5的流程图中概述在写入操作期间控制数字存储器错误检测和纠正的第二写入实施方案。通常在存储器内的不同信道开始写入可能是有益的,以防止磨损、提高带宽和实现更好的数据组织。在图5中,我们具有具m-l个信道的存储器的多信道存储器模块,其中η等于任意起始值“start”并且start幸O。与图3中默认的起始值η总是O的写入过程相反,写入到存储器的起始值η将在每个写入周期变化。
[0027]步骤200设置起始值start = η,0 < η < (m_l),其中η和m均为大于或等于O的整数值,并且m比η至少大I。在步骤202中,将DATn写入到存储
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1