存储器系统和电子系统的制作方法

文档序号:15479212发布日期:2018-09-18 22:13阅读:149来源:国知局

本公开总体涉及一种用于存储数据的存储电路或系统,并且具体涉及通过测试冗余地存储的错误纠正码(ECC)校验位而验证存储器电路的适当操作。



背景技术:

许多系统包括用于存储应用数据的存储器电路。系统的适当操作取决于所存储的应用数据的准确性。然而,已知的是,存储器电路可以存储和/或检索包括码位错误的应用数据。例如,码位错误可以与用于向存储器写入应用数据有关的操作而引入。码位错误也可以与从存储器读取应用数据有关的操作而引入。也能够在由存储器存储应用数据的时间段期间引入码位错误。为了解决关于在应用数据中该码位错误的问题,现有技术已知在存储之前对应用数据应用错误纠正码(ECC),在本领域也称作向前错误纠正(FEC)。该编码过程添加冗余数据(例如以校验位的形式)至应用数据,应用数据以及其相关联的冗余数据存储在存储器电路中。当稍后需要时,从存储器电路检索应用数据以及其相关联的冗余数据,并且使用冗余数据以检测在所检索应用数据中错误的存在,以及在一些情形中纠正所检测的错误。

然而,对于给定ECC可以纠正的错误数目和类型是有限的。出现超过该限值的码位错误可能导致不可预测的结果。这可能是因为存储器电路内操作环境或故障的条件。这些不可靠行为在一些应用中可以不是可接受的。此外,ECC可以无法检测存储器电路故障的情况。

特别关注存储器电路的逻辑电路的故障。考虑所涉及的待解决的以下故障:具有ECC的应用数据被写入存储器电路内的第一存储器地址,但是由于存储器电路内逻辑电路的故障,该应用数据被替代地写入第二存储器地址。该故障引起三个问题。首先,数据已经被存储在错误的地址处(也即第二存储器地址)。其次,已经覆盖了在该错误地址处的好的数据。第三,应该被覆盖的数据仍然存在于正确地址处(也即第一存储器地址)处的存储器电路中。在存储器操作中检测该故障是重要的。然而,ECC并未提供足够的保护,因为当从第一存储器地址进行后续读取时,与ECC相对的读取数据将可能不会揭示数据错误。类似地,从第二存储器地址进行后续读取也将可能不揭示数据错误。

考虑关于芯片选择的以下故障:由主机请求应用数据以写入某一所选择的存储器芯片,但是由于存储器电路内用于对芯片选择(CS)信号做出响应的逻辑电路的故障,并未发生对存储器的写入。因此,应该存储在存储器电路中地址处的应用数据并未存在,并且应该被覆盖的数据仍然存在于该地址处的存储器电路中。同样地,该故障的检测是重要的。然而,ECC并未提供足够的保护,因为当进行从存储器地址的后续读取时,与ECC相对的读取数据将可能不会揭示数据错误。

本领域需要解决在存储器电路操作中故障的检测。



技术实现要素:

鉴于上述问题,本公开的实施例旨在解决或缓解上述问题中的至少一部分。

在一个实施例中,一种存储器系统包括:第一存储器;第二存储器;存储器控制器,被配置用于:应用存储器地址至第一存储器和第二存储器,将纠错码(ECC)校验位写入第一存储器和第二存储器中的所述存储器地址,并且仅从在所述存储器地址处的第一存储器读取ECC校验位;以及比较器电路,被配置用于:从在第一存储器和第二存储器中的所述存储器地址获得ECC校验位,并且执行从第一存储器和第二存储器接收的ECC校验位的逐位比较,以产生指示如下信号,其指示如果ECC校验位的逐位比较失败则第一存储器和第二存储器中的一个或多个存在故障。

在一个实施例中,一种系统包括:主机系统,被配置用于做出写入请求以将应用数据写入存储器;以及存储器系统,响应于所述写入请求而通过以下项进行操作:根据应用数据计算纠错码(ECC)校验位;将应用数据和计算的ECC校验位写入第一存储器;以及将ECC校验位而非应用数据写入第二存储器。

在一个实施例中,一种存储器系统包括:第一存储器,被配置用于存储应用数据以及与该应用数据相关联的纠错码(ECC)校验位;第二存储器,被配置用于存储与应用数据相关联的所述ECC校验位,其中第二存储器并未存储应用数据;存储器控制器电路,被配置用于从第一存储器读取应用数据和ECC校验位,以及使用检索到的ECC校验位检测并纠正在所检索到的应用数据中的错误;以及比较器电路,被配置用于从第一存储器和第二存储器接收ECC校验位并且执行从第一存储器和第二存储器接收到的ECC校验位的逐位比较,以产生如下信号,所述信号指示如果ECC校验位的逐位比较失败则第一存储器和第二存储器的一个或多个存在故障。

在一个实施例中,一种系统包括:主机系统,被配置用于提出读取请求以从存储器读取应用数据;以及存储器系统,响应于所述读取请求通过以下项而进行操作:从第一存储器读取应用数据以及与该应用数据相关联的纠错码(ECC)校验位;使用所检索到的ECC校验位检测并纠正在所检索到应用数据中的错误;从第一存储器以及从并未存储应用数据的第二存储器接收与该应用数据相关联的ECC校验位;以及执行所接收到ECC校验位的逐位比较以产生如下信号,所述信号指示如果ECC校验位的逐位比较失败则第一存储器和第二存储器的一个或多个存在故障。

从结合附图阅读的实施例的以下详细说明将使得本公开的前述和其他特征和优点变得更明显。详细说明书和附图仅是本公开的示意说明,并非限制如由所附权利要求及其等价形式所限定的本实用新型的范围。

通过使用根据本公开的实施例,可以至少解决上述问题或需求中的至少一些,并且实现相应的技术效果。

附图说明

借由无需按照比例绘制的附图中的示例的方式而说明实施例,其中相同的数字指示类似的部件,以及其中:

图1显示了存储器系统的框图。

具体实施方式

现在参照示出了存储器系统10的方框图的图1。存储器系统10耦合至主机系统12(例如以数据处理系统的形式)。主机系统12具有存储并检索应用数据的需求。存储器系统10响应于主机系统12进行数据存储的请求而操作,并且进一步响应于主机系统请求从存储装置检索数据而操作。由主机系统12提出的请求,不论是用于数据存储或数据检索,都包括通过地址总线16发送的存储器地址(addr),其规定了在存储器系统10中应用数据将要存储至其、或者将要从检索应用数据的位置。双向数据总线18将主机系统12耦合至存储器系统10,其中数据总线18承载应用数据(app_data)。读/写控制线(r/w)20用于规定所应用的存储器地址(addr)是否用于读取操作或写入操作。

存储器系统10包括第一存储器24和第二存储器26。第一存储器和第二存储器24和26中的每一个可以例如包括静态随机访问存储器(SRAM)阵列。第一存储器24包括存储器阵列24a,然而其尺寸基本上大于第二存储器26的存储器阵列26a。例如,第一存储器阵列24a可以具有n×(64+8)位大小,而第二存储器阵列26a可以具有n×8位大小(其中n表示存储器阵列中不同地址的数目)。逻辑电路24b(包括用于地址解码、使能、多路复用等的电路)提供接口至存储器阵列24a。逻辑电路26b(包括用于地址解码、使能、多路复用等的电路)提供接口至存储器阵列26a。

第一存储器和第二存储器24和26的操作由存储器控制电路34控制。存储器控制器电路34由地址总线36耦合至第一存储器24和第二存储器26。响应于由主机系统12通过地址总线16发送的存储器地址(addr),存储器控制器电路34产生专用于第一存储器24和第二存储器26的地址(SRAM_addr)以用于地址总线36。在优选的实施方式中,相同的地址(SRAM_addr)通过地址总线36被施加至第一存储器24和第二存储器26,并且因此第一存储器24和第二存储器26被配置为覆盖相同的存储器地址范围。逻辑24b和26b处理所应用的地址以分别访问存储器阵列24a和26a的位置。

存储器控制器电路34进一步确立(assert)芯片选择(CS)信号以选择第一存储器24和第二存储器26用于操作(读取和写入)。CS信号由逻辑24b和26b处理以分别使能存储器阵列24a和26a以用于操作。

存储器控制器电路34进一步由双向数据总线40耦合至第一存储器24,数据总线40承载将要存储在第一存储器阵列24a中或者从第一存储器阵列24a检索的应用数据(app_data)。数据总线40并未耦合至第二存储器26。

存储器控制器电路34包括纠错码(ECC)电路44,其以本领域技术人员广泛已知方式操作,以处理应用数据(在所请求的写入操作期间从主机系统12接收的app_data),以及在一些情形中处理存储器地址(addr)或地址(SRAM_addr),并且计算将要通过ECC总线46写入由地址总线36上地址(SRAM_addr)所规定存储器位置处的第一存储器和第二存储器24和26的ECC校验位(ECC_write)。在示例性的实施方式中,可以对于应用数据(app_data)中的每个64位数据片计算8位ECC校验位。

存储器控制器电路34进一步由读取ECC总线52耦合至第一存储器24,读取ECC总线52输送ECC校验位(ECC_read),该ECC校验位(ECC_read)是从第一存储器24读取的并且响应于地址总线36上的读取地址而输送至ECC电路44的。在该上下文中,应该理解,ECC校验位(ECC_read)应该与第一存储器24没有故障的ECC校验位(ECC_write)相同。以对本领域技术人员广泛已知的方式,ECC电路44处理ECC校验位(ECC_read)以识别、并且可能纠正从第一存储器24读取的应用数据(app_data)中的错误。

尽管图1示出写入ECC总线46和读取ECC总线52作为分立总线,但是应该理解,在实施方式中这是逻辑区分的并且ECC校验位可以替代地由双向总线运载。

逻辑电路60耦合至读取ECC总线52并由冗余读取ECC总线62进一步耦合至第二存储器26。逻辑电路60响应于地址总线36上的读取地址而接收在第二存储器26中访问的冗余ECC校验位(red_ECC_read)。在该上下文中,应该理解,冗余ECC校验位(red_ECC_read)应该与第二存储器26没有故障的ECC校验位(ECC_write)相同。逻辑电路60用作数据比较器电路,以比较ECC校验位(ECC_read)的单个位与冗余ECC校验位(red_ECC_read)的单个位。如果在该逐位比较中所有位匹配,则逻辑电路60在耦合至主机系统12上的线路70上确立SRAM_OK信号。主机系统12将线路70上SRAM_OK信号的确立理解为第一存储器24和第二存储器26中的一个或多个没有故障或失效。相反地,逐位比较中一个或多个位失配指示存在第一存储器24和第二存储器26中的一个或多个或两者的故障,并且因此由逻辑电路60去确立(deassert)SRAM_OK信号。

存储器系统10在应用数据写入期间的操作如下:a)主机系统12施加存储器地址(addr)至地址总线16,施加应用数据(app_data)至数据总线18,并且确立写入控制信号;b)存储器控制器电路34从主机系统12所接收的存储器地址(addr)产生用于第一存储器24和第二存储器26的地址(SRAM_addr),并且施加地址(SRAM_addr)至地址总线36;c)存储器控制器电路34进一步施加从主机系统12所接收的应用数据(app_data)至双向数据总线40;d)ECC电路44处理在数据总线18上接收的应用数据(app_data)并计算ECC校验位(ECC_write);e)存储器控制器电路34进一步施加ECC校验位(ECC_write)至写入ECC总线46;f)第一存储器24的逻辑电路24b在存储器阵列24a中指定地址(SRAM_addr)处存储应用数据(app_data)和ECC校验位(ECC_write);以及g)第二存储器26的逻辑电路26b在存储器阵列26a中指定地址(SRAM_addr)处存储ECC校验位(ECC_wrtie)(注意:第二存储器26并未存储应用数据(app_data))。

存储器系统10在应用数据读取期间的操作如下:a)主机系统12施加存储器地址(addr)至地址总线16并且确立读取控制信号;b)存储器控制器电路34从主机系统12所接收的存储器地址(addr)产生用于第一存储器24和第二存储器26的地址(SRAM_addr)并且施加地址(SRAM_addr)至地址总线36;c)第一存储器24的逻辑电路24b检索存储在存储器阵列24a中地址(SRAM_addr)处的应用数据(app_data)和ECC校验位(ECC_read)以分别施加至数据总线40和读取ECC总线52;d)第二存储器26的逻辑电路26b检索存储在存储器阵列26a中地址(SRAM_addr)处的冗余ECC校验位(red_ECC_read),以用于施加至冗余读取ECC总线62;e)ECC电路44处理在数据总线40上接收的应用数据(app_data)和在读取ECC总线52上接收的ECC校验位(ECC_read)以识别并纠正错误,以及施加已纠正错误的应用数据(app_data)至数据总线18以用于输送至主机系统12;以及f)逻辑电路60执行ECC校验位(ECC_read)与冗余ECC校验位(red_ECC_read)的逐位比较,并且如果存在完全位匹配则确立SRAM_OK信号(并且否则如果检测到任何位失配则去确立SRAM_OK信号)。

主机系统12可以以任何许多方式处理已去确立的SRAM_OK信号(指示了逐位比较失败以及可能的存储器故障)。例如,主机系统12可以提出标志询问存储器操作但是另外如正常的使用所检索到的错误已纠正应用数据(app_data)。备选地,主机系统12可以执行操作以响应于SRAM_OK信号的去确立而执行另一读取(在相同或不同存储器位置处)以双重校对或检测到的故障。另外进一步,主机系统12可以终止因检测到的故障所致的进一步存储器访问操作并确立错误代码。

现在再次参照关于存储器的逻辑电路的故障而之前所述的内容。感兴趣的一个故障涉及寻址故障,其中旨在写入存储器内的第一存储器地址的具有ECC的应用数据被替代的写入第二存储器地址。采用图1的实施方式,具有ECC的应用数据向第二存储器地址的错误写入可能因逻辑24b的故障发生在存储器阵列24a中。然而,不太可能的是,存储器26的逻辑26b类似地受影响,因此ECC将正确地写入存储器阵列26a中的第一存储器地址。随后从存储器阵列24a的第一存储器地址读取,读取数据与ECC对比将可能揭示没有数据错误。然而,从存储器阵列24a中第一存储器地址读取的ECC将不会匹配从存储器阵列26a中第一存储器地址读取的ECC。去确立的SRAM_OK信号将因此向主机12指示没有错误。沿着相同的线路,随后从存储器阵列24a的第二存储器地址进一步读取,读取数据对比ECC将可能揭示没有数据错误,但是从存储器阵列24a中第二存储器地址读取的ECC将不会匹配从存储器阵列26a中第二存储器地址读取的ECC。去确立的SRAM_OK信号将因此向主机12指示具有错误。

相对于之前所述关于芯片选择(CS)的存储器的逻辑电路的故障,将回想:由主机12请求的用于写入某一所选择存储器芯片的应用数据并未发生。采用图1的实施方式,即使由于逻辑24b故障而并未发生将具有ECC的应用数据写入存储器24中存储器地址,不太可能的是存储器26的逻辑26b类似地受影响。因此,ECC将正确地写入存储器阵列26a中该存储器地址。随后从存储器阵列24a的该存储器地址读取,读取数据对比ECC将可能揭示没有数据错误。然而,从存储器阵列24a中该存储器地址读取的ECC将不会匹配从存储器阵列26a中该存储器地址读取的ECC。去确立的SRAM_OK信号将因此向主机12指示具有错误。

图1的实施方式的优点在于可以使用具有相对简单逻辑电路的小存储器26检测存储器的逻辑中的故障。对于该存储器逻辑故障检测/预防的现有技术方案将要求特殊设计的存储器(诸如具有本领域已知的反馈SRAM)或者要求存储器的完全复制。

前述说明书已经借由示例性和非限定性示例提供了本实用新型一个或多个示例性实施例的全面和丰富的描述说明。然而,当结合附图和所附权利要求阅读时,考虑到前述说明书,各种修改和改变对于相关领域技术人员可以变得明显。然而,本实用新型的所有这种教导和类似修改将仍然落入所附权利要求中所限定的本实用新型的范围内。

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