CN116324736A - 存储器控制电路、存储器以及存储器模块 - Google Patents

存储器控制电路、存储器以及存储器模块 Download PDF

Info

Publication number
CN116324736A
CN116324736A CN202180067427.1A CN202180067427A CN116324736A CN 116324736 A CN116324736 A CN 116324736A CN 202180067427 A CN202180067427 A CN 202180067427A CN 116324736 A CN116324736 A CN 116324736A
Authority
CN
China
Prior art keywords
error
bit length
verification
memory
verification error
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.)
Pending
Application number
CN202180067427.1A
Other languages
English (en)
Inventor
石井健
寺田晴彦
西野理市
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.)
Sony Semiconductor Solutions Corp
Original Assignee
Sony Semiconductor Solutions Corp
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 Sony Semiconductor Solutions Corp filed Critical Sony Semiconductor Solutions Corp
Publication of CN116324736A publication Critical patent/CN116324736A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • 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
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

本发明在通过组合多个存储器来配置存储器模块时实现了存储器的有效使用。在本发明中,存储器存取控制部对写入数据及其纠错码进行分割以将其写入多个存储器,并且获取指示在多个存储器的每个中是否发生了与写入相关的验证错误的信息。当在多个存储器中的至少任一个中发生验证错误时,错误位数获取部从多个存储器获取验证错误的位数。在多个存储器的至少任一个中发生了验证错误的情况下,写入控制部在验证错误的总位数落在分配给纠错码的可允许数量的错误位的能力的范围内时,确定写入成功,或者写入控制部在验证错误的总位数落在分配给纠错码的可允许数量的错误位的能力的范围外时,确定写入失败。

Description

存储器控制电路、存储器以及存储器模块
技术领域
本技术涉及一种存储器模块。具体地,本发明涉及在数据写入时检测验证错误的存储器控制电路、存储器和存储器模块。
背景技术
通常,当在闪存等中执行写操作时,执行以下处理:执行读取以确认是否已经正确地执行写入并且验证写入数据和读取数据之间的匹配。例如,提出了一种闪存系统,其在写入之后执行验证,并且如果认为数据改变失败的数据的数量等于或小于可校正的数量,则确定数据改变成功(例如,参见专利文献1)。
现有技术文献
专利文件
专利文献1:日本专利申请公开号2004-095145
发明内容
本发明要解决的问题
在上述现有技术中,对一个存储器进行验证,并且如果校正不可能,则将其视为写入失败。然而,在将来使用多个存储器配置存储器模块的情况下,通过单独的存储器的验证的确定是不够的,并且存在存储器的可用范围变窄的可能性。
考虑到这种情况做出了本技术,并且本发明的目的是当多个存储器被组合以构成存储器模块时有效地使用存储器。
问题的解决方案
已做出本技术以解决上述问题,并且其第一方面是一种存储器控制电路,包括:存储器存取控制部,通过将写入数据和用于写入数据的纠错码分割为多个存储器来执行写入,并且获取与写入相关的多个存储器中的每个中是否存在验证错误的发生;错误位长度获取部,在所述多个存储器中的至少任一个中发生所述验证错误的情况下,从所述多个存储器获取所述验证错误的位长度;以及写入控制部,如果验证错误的总位长度落入被分配给纠错码的错误位长度容差的能力的范围内,则确定写入成功,并且如果验证错误的总位长度落在被分配给纠错码的错误位长度容差的能力的范围外,则在多个存储器的至少任中发生验证错误的情况下,确定写入失败。这带来以下效果:如果验证错误的总位长度落入分配给纠错码的错误位长度容差的能力的范围内,则在发生验证错误以确定写入成功的情况下,从多个存储器获取验证错误的位长度。
此外,在第一方面中,可以进一步设置生成写入数据的纠错码的纠错码生成部。
此外,在第一方面中,在从所有与写入相关的多个存储器输出是否存在与写入相关的验证错误的发生之后,错误位长度获取部可以向多个存储器请求与写入相关的验证错误的位长度。
此外,在第一方面中,在已经执行多次写入的情况下,错误位长度获取部可以指定多次写入中的任一次以针对多个存储器请求验证错误的位长度。这带来这样的效果:即使在针对多个存储器连续执行写入的情况下,也获得与期望写入相关的验证错误的位长度。
此外,在第一方面中,在所述多个存储器中的每个存储器包括多个存储体的情况下,所述错误位长度获取部可以指定所述多个存储体中的任一个存储体向所述多个存储器请求所述验证错误的位长度。这带来这样的效果:在提供存储体配置的情况下,获取特定存储体的验证错误的位长度。
此外,在第一方面中,存储器存取控制部可以在用于获取是否存在验证错误的发生的信号线中使用与提供验证错误的发生的通知的信号具有不同脉冲宽度的信号来获取是否存在另一错误的发生。这带来这样的效果:使用用于获取是否存在验证错误的发生的信号线来获取是否存在另一错误的发生。
此外,在第一方面中,存储器存取控制部可以在多个存储器的至少任一个中发生验证错误的情况下,从多个存储器获取是否存在存储单元失败的发生。这带来针对存储单元失败进行失败控制的效果。
此外,本技术的第二方面是一种存储器,包括:存储单元阵列,响应于写入请求执行写入数据的写入操作;写入完成确定部,提供所述写入操作中是否发生验证错误的通知;以及验证错误位长度保持部,保持写入操作中的验证错误的位长度,并且响应于来自外部的请求输出验证错误的位长度。这带来当验证错误发生时响应于来自外部的请求而提供验证错误的位长度的效果。
此外,在第二方面,在执行多次写入操作的情况下,验证错误位长度保持部可以保持多次写入操作中至少最新两次的验证错误的位长度。这带来这样的效果:即使在相对于存储器连续执行写入的情况下,也提供与期望写入相关的验证错误的位长度。
此外,在第二方面中,存储单元阵列可以包括多个存储体,并且验证错误位长度保持部可以保持多个存储体中的每个存储体的写入操作中的验证错误的位长度。这带来这样的效果:在提供存储体配置的情况下,提供特定存储体的验证错误的位长度。
此外,在第二方面中,写入完成确定部可使用具有与在用于提供是否存在验证错误的发生的通知的信号线中提供验证错误的发生通知的信号不同的脉冲宽度的信号,来提供另一错误的发生存在或不存在的通知。这带来这样的效果:使用用于获取是否存在验证错误的发生的信号线来提供是否存在另一错误的发生。
另外,在上述第二方面中,还可以具有存储单元失败发生保持部,该存储单元失败发生保持部保持存储单元阵列的存储单元失败的有无,根据来自外部的请求而输出存储单元失败的有无。这带来针对存储单元失败进行失败控制的效果。
此外,在第二方面,存储单元阵列可以是非易失性存储器。
此外,本技术的第二方面是一种存储器模块,包括:多个存储器,分别包括验证错误位长度保持部,每个验证错误位长度保持部保持写入操作中的验证错误的位长度;存储器存取控制部,通过将写入数据和用于写入数据的纠错码分割为多个存储器来执行写入,并且获取与写入相关的多个存储器中的每个中的验证错误的发生的存在或不存在;错误位长度获取部,在所述多个存储器的至少任一个中发生所述验证错误的情况下,从所述多个存储器的所述验证错误位长度保持部获取所述验证错误的位长度;以及写入控制部,如果验证错误的总位长度落入被分配给纠错码的错误位长度容差的能力的范围内,则确定写入成功,并且如果验证错误的总位长度落入被分配给纠错码的错误位长度容差的能力的范围之外,则在多个存储器的至少任中发生验证错误的情况下,确定写入失败。这带来以下效果:如果验证错误的总位长度落入分配给纠错码的错误位长度容差的能力的范围内,则在发生验证错误的情况下获取多个存储器中的验证错误的位长度以确定写入成功。
附图说明
图1是示出本技术的实施方式中的信息处理系统的配置示例的图。
图2是示出本技术的第一实施方式中的非易失性存储器300的配置示例的图。
图3是示出本技术的第一实施方式中的非易失性存储器300的写入处理过程的示例的流程图。
图4是示出本技术的第一实施方式中的非易失性存储器300的接口的时序示例的图。
图5是示出本技术的第一实施方式中的存储器控制器200的配置示例的图。
图6是示出本技术的第一实施方式中的存储器控制器200中的写入数据的分割示例的图。
图7是示出本技术的第一实施方式中的存储器控制器200的写入控制过程的示例的流程图。
图8是示出本技术的第一实施方式中的多个非易失性存储器300的接口中的时序示例的图。
图9是示出本技术的第二实施方式中的非易失性存储器300的配置示例的图。
图10是示出本技术的第二实施方式中的存储器控制器200的写入控制过程的示例的流程图。
图11是示出本技术的第二实施方式中的多个非易失性存储器300的接口中的第一时序示例的图。
图12是示出本技术的第二实施方式中的多个非易失性存储器300的接口中的第二时序示例的图。
图13是示出本技术的第三实施方式中的非易失性存储器300的配置示例的图。
图14是示出本技术的第四实施方式中的非易失性存储器300的接口中的第一时序示例的图。
图15是示出本技术的第四实施方式中的非易失性存储器300的接口中的第二时序示例的图。
图16是示出本技术的第五实施方式中的非易失性存储器300的配置示例的图。
具体实施方式
在下文中,将描述用于执行本技术的模式(在下文中,称作实施方式)。将按照以下顺序给出描述。
1.第一实施方式(保持非易失性存储器中的验证错误位长度的示例)
2.第二实施方式(保持两个请求的验证错误位长度的示例)
3.第三实施方式(保持每个存储体的验证错误位长度的示例)
4.第四实施方式(使用验证状态的信号线提供另一错误的通知的示例)
5.第五实施方式(保持非易失性存储器中的是否存在存储单元失败的发生的示例)
<1.第一实施方式>
[信息处理系统的配置]
图1是示出本技术的实施方式中的信息处理系统的配置示例的图。
信息处理系统包括主计算机100、存储器控制器200和多个非易失性存储器300。存储器控制器200和非易失性存储器300构成存储器模块400。注意,这里假设了非易失性存储器300的K个芯片。这里,K是二以上的整数。
主计算机100发出用于指示非易失性存储器300执行数据读取处理、写入处理等的命令。主计算机100包括作为主计算机100执行处理的处理器以及用于执行与存储器控制器200的通信的控制器接口。
存储器控制器200根据来自主计算机100的命令执行关于非易失性存储器300的请求控制。注意,存储器控制器200是权利要求中所描述的存储器控制电路的示例。
多个非易失性存储器300中的每个均包括控制部和稍后描述的存储单元阵列。非易失性存储器300的控制部根据来自存储器控制器200的请求存取存储单元阵列。应注意,非易失性存储器300是权利要求中所描述的存储器的示例。
非易失性存储器300的存储单元阵列被假定为非易失性存储器(NVM),其中,多个字节大小(例如,64字节)的数据被用作用于读取或写入的存取单元,并且数据可被覆写而不擦除。作为这样的存储器,假定存储级存储器(SCM)。存储级存储器位于动态随机存取存储器(DRAM)和闪存之间,并且需要低延迟。
[非易失性存储器的配置]
图2是示出本技术的第一实施方式中的非易失性存储器300的配置示例的图。
作为非易失性存储器300和存储器控制器200之间的接口,请求391、写入数据392、读取数据393和验证状态394的信号线被连接。注意,假设在本示例中单独提供写入数据392和读取数据393的信号线,然而可以使用双向信号线,诸如双数据速率同步动态随机存取存储器(DDR SDRAM)。
非易失性存储器300包括存储单元阵列310和控制部。控制部包括请求控制部320、写入锁存器330、读取锁存器340、写入控制部350、写入完成确定部360和验证错误位长度寄存器370。
存储单元阵列310是包括多个存储单元的存储单元阵列,并且通过二维地(在矩阵中)布置针对每个位存储二进制值中的任一个值的多个存储单元或者针对每多个位存储多个值中的任一个值的多个存储单元来配置。
响应于来自存储器控制器200的请求,请求控制部320控制对存储单元阵列310的存取。请求控制部320通过请求391的信号线从存储器控制器200接收请求。如果接收的请求是写入请求,则请求控制部320从写入数据392的信号线接收写入数据,将写入数据提供至写入锁存器330,并且将写入地址提供至存储单元阵列310以执行写入操作。如果接收的请求是读取请求,则将读取地址提供给存储单元阵列310以执行读取操作。
写入锁存器330保持待写入到存储单元阵列310的写入数据。读取锁存器340保持从存储单元阵列310读取的读取数据。在读取请求的情况下,读取锁存器340根据来自请求控制部320的指令将保持的内容输出到读数据393的信号线。
写入控制部350控制针对存储单元阵列310的写入操作。写入控制部350将存储在作为写入操作目标的写入地址中的数据读取到读取锁存器340(预读取)。然后,针对每个位比较写入锁存器330和读取锁存器340的内容,并且仅对其值被改变的位执行编程处理。
在执行编程处理之后,写入完成确定部360将存储在写入地址中的数据再次读取到读取锁存器340,并将读取的数据与写入锁存器330的内容进行比较以验证数据。因此,如果两者的内容匹配,则写入完成确定部360确定写入成功,并且将完成通知输出到验证状态394的信号线。
另一方面,在两者的内容不匹配的情况下,如果具有不同值的位数(验证错误位长度)等于或小于预定的N位(N是整数),则结束写入操作,并且将完成通知输出到验证状态394的信号线。在验证错误位长度(bit length)大于N位的情况下,写入完成确定部360向写入控制部350提供重写指令以重复编程处理直到超过循环的最大数量。
验证错误位长度寄存器370是在写入完成确定部360的验证中保持验证错误位长度的寄存器。验证错误位长度寄存器370根据来自请求控制部320的指令将失败的位数(验证错误位长度)输出至读数据393的信号线。注意,验证错误位长度寄存器370是权利要求中描述的验证错误位长度保持部的示例。
[非易失性存储器的操作]
图3是示出本技术的第一实施方式中的非易失性存储器300的写入处理过程的示例的流程图。
当从存储器控制器200接收写入请求(步骤S911)时,请求控制部320将写入数据存储在写入锁存器330中(步骤S912)。
写入控制部350对存储单元阵列310进行预读取并且将存储在作为写入操作目标的写入地址中的数据存储在读取锁存器340中(步骤S913)。然后,写入控制部350比较写入锁存器330和读取锁存器340的值,并对要改变的位进行编程处理(步骤S914)。
写入控制部350对存储单元阵列310执行验证读取并且将存储在作为写入操作目标的写入地址中的数据存储在读取锁存器340中(步骤S915)。然后,写入控制部350比较写入锁存器330和读取锁存器340的值,并且执行验证(步骤S916)。
结果,如果验证错误位长度等于或小于N位(步骤S917:是),则确定写入成功(步骤S921),在验证错误位长度寄存器370中,反映验证错误位长度,并且将指示“通过”的完成通知输出到验证状态394的信号线(步骤S923)。
另一方面,在验证错误位长度大于N位的情况下(步骤S917:否),如果未超过最大重复次数(步骤S918:否),则重复预读取(步骤S913)之后的处理。在已经超过最大重复次数的情况下(步骤S918:是),确定写入失败(步骤S922),在验证错误位长度寄存器370中,反映验证错误位长度,并且将指示“失败”的完成通知输出至验证状态394的信号线(步骤S923)。
图4是示出本技术的第一实施方式中的非易失性存储器300的接口的时序示例的图。
在从存储器控制器200向请求391的信号线发出数据写入请求之后,将写入数据输出至写入数据392的信号线。此后,在存储单元阵列310中执行写入操作,并且写入完成确定部360将指示“通过”或“失败”的完成通知输出到验证状态394的信号线。
此后,当从存储器控制器200向请求391的信号线发出验证错误位长度读取请求时,从验证错误位长度寄存器370读取验证错误位长度,并且将其值输出至读取数据393的信号线。
[存储器控制器的配置]
图5是示出本技术的第一实施方式中的存储器控制器200的配置示例的图。
存储器控制器200包括多芯片(die)控制部210、ECC编码器220、非易失性存储器写入控制部230、验证错误位读取控制部240、读取控制部250和ECC解码器260。
多芯片控制部210控制连接到存储器控制器200的非易失性存储器300的多个芯片。多芯片控制部210根据来自主计算机100的命令并行存取连接的非易失性存储器300的K个芯片。多芯片控制部210在写入的情况下分割数据并且在读取的情况下组合数据。在来自非易失性存储器300的K个芯片的验证状态中的至少一个指示“失败”的情况下,返回“失败”作为非易失性存储器写入控制部230的验证状态。注意,多芯片控制部210是权利要求中描述的存储器存取控制部的示例。
ECC编码器220生成用于与来自主计算机100的写入命令相关的写入数据的纠错码(ECC)。生成的纠错码与写入数据一起提供给非易失性存储器写入控制部230。注意,ECC编码器220是权利要求中描述的纠错码生成部的示例。
非易失性存储器写入控制部230控制相对于非易失性存储器300的写入。当从主计算机100接收写入命令时,非易失性存储器写入控制部230生成写入请求,并且通过写入将写入请求输出到多芯片控制部210。因此,多芯片控制部210向非易失性存储器300的K个芯片发出写入请求,并且因此接收验证状态。
如果来自多芯片控制部210的验证状态是“失败”,则非易失性存储器写入控制部230指示验证错误位读取控制部240从非易失性存储器300的K个芯片获取验证错误位长度。另一方面,如果非易失性存储器300的所有K个裸片中的验证状态394“通过”,则不需要验证错误位长度,并且因此不获取验证错误位长度。因此,可以避免浪费地消耗读取数据393的信号线以降低非易失性存储器300的性能的情况。
作为获取验证错误位长度的结果,如果非易失性存储器300的K个芯片的总验证错误位长度落入分配给纠错码的错误位长度容差的能力的范围内,则在ECC解码器260在读取时可以执行校正的假设下,非易失性存储器写入控制部230确定写入成功。另一方面,如果非易失性存储器300的K个芯片的总验证错误位长度落在分配给纠错码的错误位长度容差的能力的范围外,则非易失性存储器写入控制部230确定写入失败。因此,非易失性存储器写入控制部230根据确定向主计算机100返回写入响应。注意,非易失性存储器写入控制部230是权利要求中所述的写入控制部的示例。
验证错误位读取控制部240从非易失性存储器300的K个芯片读取验证错误位长度,并且根据来自非易失性存储器写入控制部230的指令将所有芯片的总验证错误位长度提供给非易失性存储器写入控制部230。注意,验证错误位读取控制部240是权利要求中描述的错误位长度获取部的示例。
读取控制部250控制从非易失性存储器300的读取。当从主计算机100接收读取命令时,读取控制部250将读取请求输出到多芯片控制部210。因此,多芯片控制部210向非易失性存储器300的K个芯片发出读取请求,结果,多芯片控制部210从非易失性存储器300的K个芯片接收读取数据。
ECC解码器260使用纠错码对由多芯片控制部210从非易失性存储器300接收的K个芯片的读数据执行错误校正。在即使从非易失性存储器300的K个芯片读取的数据中的任一个包括错误纠错成功的情况下,将校正的读数据提供给主计算机100。
图6是示出本技术的第一实施方式中的存储器控制器200中的写入数据的分割示例的图。
这里,将描述当将来自主计算机100的写入数据分割并写入非易失性存储器300的K个芯片时的具体示例。在该示例中,写入数据的大小被假定为256字节(32字节×8),并且非易失性存储器300的芯片的数量被假定为9个芯片。
ECC编码器220针对输入的256字节写入数据生成32字节纠错码。因此,编码之后的大小是288字节。
多芯片控制部210将编码的288字节数据分割成九个块,并将分割的块并行输出到非易失性存储器300的九个芯片。因此,非易失性存储器300中的每一次写入32字节的数据。因此,在该示例中,指示在第五非易失性存储器300中验证结果为“失败”,并且在其他非易失性存储器300中验证结果为“通过”。
由ECC编码器220生成的纠错码具有包括在写入时可允许的验证错误的数量的校正能力。假设在非易失性存储器300的K个芯片中写入编码数据并且在每个芯片中允许N个位,总体上需要与N×K个位对应的额外校正能力。假设需要M位的校正能力来支持非易失性存储器的RBER,总共需要“K×N+M”位的校正能力。
例如,如果所有验证结果为“通过”,则验证错误等于或小于N×K位,并且因此可以由ECC解码器260校正。此外,当如在上述示例中至少一个芯片的验证结果“失败”时,为了确定ECC解码器260是否能够进行校正,需要确认验证错误是否等于或小于N×K位。读取和计算九个芯片的验证错误位长度,并且如果总验证错误位长度等于或小于N×K位,则做出响应作为写入成功,并且如果总验证错误位长度大于N×K位,则做出响应作为写入失败。
[存储器控制器的操作]
图7是示出本技术的第一实施方式中的存储器控制器200的写入控制过程的示例的流程图。
当存储器控制器200从主机计算机100接收写入命令时(步骤S931),ECC编码器220生成并编码用于写入数据的纠错码(步骤S932)。然后,多芯片控制部210将编码的写入数据分成K个芯片,并且向非易失性存储器300的每个芯片请求写入请求(步骤S933)。然后,多芯片控制部210等待来自非易失性存储器300的每个芯片的验证状态(步骤S934)。
在来自非易失性存储器300的所有K个芯片的验证状态指示“通过”的情况下(步骤S935:是),非易失性存储器写入控制部230确定写入成功(步骤S938)。
另一方面,在非易失性存储器300的K个芯片中的任一个的验证状态指示“失败”的情况下(步骤S935:否),验证错误位读取控制部240从非易失性存储器300的K个芯片读取验证错误位长度(步骤S936)。然后,如果总验证错误位长度等于或小于假定位长度(步骤S937:是),则非易失性存储器写入控制部230确定写入成功(步骤S938)。此外,如果总验证错误位长度大于假定位长度(步骤S937:否),则非易失性存储器写入控制部230确定写入失败(步骤S939)。
图8是示出本技术的第一实施方式中的多个非易失性存储器300的接口的时序示例的图。
在从存储器控制器200向第一非易失性存储器300和第二非易失性存储器300的请求391的信号线发出数据写入请求之后,将写入数据输出至写入数据392的相应信号线。此后,在每个存储单元阵列310中执行写入操作,并且每个写入完成确定部360将指示“通过”或“失败”的完成通知输出到验证状态394的信号线。该示例假设第一非易失性存储器300的验证状态394是“通过”并且第二非易失性存储器300的验证状态394是“失败”的情况。
在写入非易失性存储器时,在内部执行编程处理,执行关于写入是否已被正确执行的验证操作,并且在写入未被正常执行的情况下再次执行编程处理,因此,写入时间根据验证次数而不同,并且可变。在该示例中,由于在第二非易失性存储器300中执行的重写,延迟了验证结果的输出。因此,存在即使下写入可以在第一非易失性存储器300中在更早的阶段执行,也参考验证错误的数量的可能性,因此,非易失性存储器写入控制部230不发出下写入请求,直到获得所有验证结果。注意,在以下第二实施方式中将改进这一点。
以这种方式,在本技术的第一实施方式中,在多个非易失性存储器300的每个中提供验证错误位长度寄存器370,并且在多个非易失性存储器300的至少任一个中发生验证错误的情况下,获取其值。然后,如果总验证错误位长度落入被分配给ECC解码器260的纠错码的错误位长度容差的能力的范围内,则确定写入成功。因此,即使在非易失性存储器300的每个中写入失败的情况下,只要作为整体可以进行错误校正,该失败也是允许的,并且可以配置具有低延迟的高速存储器模块。
<2.第二实施方式>
在上述第一实施方式中,仅最新验证结果保存在非易失性存储器300中,因此,难以将下一个写入请求发出至非易失性存储器300,直至在存储器控制器200中获得所有验证结果。因此,在第二实施方式中,不仅保持其最新验证错误位长度,而且保持其紧邻的在先验证错误位长度,使得可以在早期阶段发出下一写入请求。
[非易失性存储器的配置]
图9是示出本技术的第二实施方式中的非易失性存储器300的配置示例的图。
第二实施方式中的非易失性存储器300与上述第一实施方式中的非易失性存储器300的不同在于包括最新验证错误位长度寄存器371和在先验证错误位长度寄存器372。最新验证错误位长度寄存器371是保持在最新执行的写入完成确定部360的验证中的验证错误位长度的寄存器,类似于第一实施方式中的验证错误位长度寄存器370。在先验证错误位长度寄存器372是保持在紧接最新验证的在先验证中的验证错误位长度的寄存器。也就是说,第二实施方式被配置成保持与其最新验证和紧接在其之前的验证中的总共两倍相对应的验证错误位长度。
当写入完成确定部360检测到验证错误时,其验证错误位长度被保持在最新验证错误位长度寄存器371中。然后,之前已经被保持在最新验证错误位长度寄存器371中的内容被保持在在先验证错误位长度寄存器372中。
因为存储器控制器200的基本配置类似于上述第一实施方式的基本配置,所以其详细描述将被省略,但是存储器控制器200的验证错误位读取控制部240指定最新验证错误位长度寄存器371或者在先验证错误位长度寄存器372以读取验证错误位长度。
[存储器控制器的操作]
图10是示出本技术的第二实施方式中的存储器控制器200的写入控制过程的示例的流程图。
当存储器控制器200从主机计算机100接收写入命令时(步骤S951),ECC编码器220生成并编码用于写入数据的纠错码(步骤S952)。然后,多芯片控制部210将编码的写入数据分成K个芯片,并且向非易失性存储器300的每个芯片请求写入请求(步骤S953)。然后,多芯片控制部210等待来自非易失性存储器300的每个芯片的验证状态(步骤S954)。
在来自非易失性存储器300的所有K个芯片的验证状态指示“通过”的情况下(步骤S955:是),非易失性存储器写入控制部230确定写入成功(步骤S961)。
另一方面,在非易失性存储器300的K个芯片中的任一个的验证状态指示“失败”的情况下(步骤S955:否),验证错误位读取控制部240从非易失性存储器300的K个芯片读取验证错误位长度(步骤S957或S958)。此时,如果已发出下一写入请求(步骤S956:是),则验证错误位读取控制部240从在先验证错误位长度寄存器372读取前一请求的验证错误位长度(步骤S958)。如果未发出下一写入请求(步骤S956:否),则验证错误位读取控制部240从最新验证错误位长度寄存器371读取最新请求的验证错误位长度(步骤S957)。
然后,如果总读取验证错误位长度等于或小于假定位长度(步骤S959:是),则非易失性存储器写入控制部230确定写入成功(步骤S961)。此外,如果总验证错误位长度大于假定位长度(步骤S959:否),则非易失性存储器写入控制部230确定写入失败(步骤S962)。
图11是示出本技术的第二实施方式中的多个非易失性存储器300的接口中的第一时序示例的图。
该第一时序示例假定在发出第一数据写入请求之后执行验证错误位的读取的情况在发出第二数据写入请求之前。在这种情况下,验证错误位读取控制部240从最新验证错误位长度寄存器371读取最新请求的验证错误位长度。该情况下的定时与上述第一实施方式相同。
图12是示出本技术的第二实施方式中的多个非易失性存储器300的接口中的第二时序示例的图。
该第二时序示例假定在发出第一数据写入请求之后执行验证错误位的读取的情况。在这种情况下,验证错误位读取控制部240从在先验证错误位长度寄存器372读取之前请求的验证错误位长度。换句话说,在第二实施方式中,在发出第一数据写入请求之后,可发出第二数据写入请求,而无需等待读取验证错误位。因此,可以提高数据写入的传送速率。
以这种方式,通过提供根据本技术的第二实施方式的最新验证错误位长度寄存器371和在先验证错误位长度寄存器372,可以迅速地发出随后的数据写入请求。
<3.第三实施方式>
[非易失性存储器的配置]
图13是示出本技术的第三实施方式中的非易失性存储器300的配置示例的图。
假定第三实施方式中的非易失性存储器300包括可由存储单元阵列310并行访问的多个存储体。在此示例中,说明包含I(I为两个或两个以上的整数)个存储体的存储体配置。
因此,还提供用于保持验证错误位长度的寄存器以对应于每个存储体,并且包括I最新验证错误位长度寄存器373和I在先验证错误位长度寄存器374。因此,当对多个存储体并行执行写入时,对于每个存储体,可参考其最新验证错误位长度和紧前面的验证错误位长度,并且在发出第一数据写入请求之后,可发出第二数据写入请求,而无需等待读取验证错误位,这与上述第二实施方式相似。
通过这种方式,根据本技术的第三实施方式,通过为每个存储体提供最新验证错误位长度寄存器373和在先验证错误位长度寄存器374,即使在存储体配置中,也可以迅速发出随后的数据写入请求。
<4.第四实施方式>
虽然在上述实施方式中假设通过验证状态394的信号线提供验证结果的通知,但是在第四实施方式中进一步提供另一错误的通知。
图14是示出本技术的第四实施方式中的非易失性存储器300的接口中的第一时序示例的图。
在该示例中,在从发出写入请求起的固定等待时间之后,在验证状态394的1位信号线中的验证结果为“失败”的情况下,指示具有脉冲宽度A的脉冲。另一方面,在验证结果为“通过”的情况下不存在脉冲。因此,可以使用1位信号线将“通过”或“失败”的通知提供为验证状态。
图15是示出本技术的第四实施方式中的非易失性存储器300的接口中的第二时序示例的图。
在该示例中,当发生另一错误时,在验证状态394的1位信号线中指示具有脉冲宽度B的脉冲。假定具有脉冲宽度B的脉冲足够宽,以便能够与上述具有脉冲宽度A的脉冲区分开。此外,具有脉冲宽度B的脉冲的定时不限于发出请求之后的固定延迟。
作为在这种情况下的另一错误,例如,假设类似于DRAM的命令地址奇偶校验错误。
以这种方式,除了根据本技术的第四实施方式的验证状态394的1位信号线中的验证结果之外,还可以提供另一错误的通知。
<5.第五实施方式>
存储单元失败可由写入完成确定部360在验证操作中检测。因此,在第五实施方式中,存储单元失败的发生与否保存在非易失性存储器300中,以使得能够从存储器控制器200读取存储单元失败的发生与否。
[非易失性存储器的配置]
图16是示出本技术的第五实施方式中的非易失性存储器300的配置示例的图。
第五实施方式的非易失性存储器300除了上述第三实施方式的最新验证错误位长度寄存器373和在先验证错误位长度寄存器374之外,还包括最新存储单元失败发生标志寄存器383和在先存储单元失败发生标志寄存器384。注意,与上述第三实施方式类似,在第五实施方式中假定存储体配置。因此,最新存储单元失败发生标志寄存器383和在先存储单元失败发生标志寄存器384对应于每个存储体而设置。
最新存储单元失败发生标志寄存器383是保持表示在写入完成确定部360的最新进行的验证中是否发生存储单元失败的标志的寄存器。在先存储单元失败发生标志寄存器384是保持表示在最新验证前一次的验证中是否发生存储单元失败的标志的寄存器。
当在验证操作中检测到存储单元阵列310的存储单元失败时,写入完成确定部360使用验证状态394的信号线提供验证错误的通知,并且将指示存储单元失败已经发生的标志保持在最新存储单元失败发生标志寄存器383中。然后,在在先存储单元失败发生标志寄存器384中保持到目前为止保持在最新存储单元失败发生标志寄存器383中的内容。
在存储器控制器200中,当非易失性存储器写入控制部230使用具有验证状态394的信号线检测到验证错误时,验证错误位读取控制部240读取最新验证错误位长度寄存器373和最新存储单元失败发生标志寄存器383,并且根据发生的错误的类型执行控制。即,当没有存储单元失败发生时,进行与验证错误相关的上述控制,并且当存储单元失败发生时,进行检测存储单元失败时的失败控制。
注意,在该示例中,假设在最新请求中接收到验证错误的通知的情况,但是在已发出另一请求的情况下,验证错误位读取控制部240读取在先验证错误位长度寄存器374和在先存储单元失败发生标志寄存器384。
以这种方式,可以进一步控制根据本技术的第五实施方式的存储单元失败。
应注意,上述实施方式示出用于体现本技术的示例,并且实施方式中的主题分别与权利要求书中指定本发明的主题具有对应关系。同样,在权利要求中指定本发明的主题分别与本技术的实施方式中的具有相同名称的主题具有对应关系。然而,本技术不限于这些实施方式,并且可以在不背离其主旨的范围内通过对实施方式进行各种修改来体现。
此外,在上述实施方式中描述的处理过程可被视为包括这些一系列过程的方法,并且可被视为使计算机执行这些一系列过程的程序或存储该程序的记录介质。作为该记录介质,例如,可以使用致密盘(CD)、迷你盘(MD)、数字通用盘(DVD)、存储卡、蓝光(注册商标)盘等。
应注意,本说明书中描述的效果仅是示例并且不受限制,并且可存在额外的效果。
应注意,本技术还可具有以下配置。
(1)一种存储器控制电路,包括:
存储器访问控制部,通过将写入数据和用于所述写入数据的纠错码分割为多个存储器来执行写,并且获取与所述写相关的所述多个存储器中的每个存储器中是否存在验证错误的发生;
错误位长度获取部,在所述多个存储器中的至少任一个中发生所述验证错误的情况下,从所述多个存储器获取所述验证错误的位长度;以及
写入控制部,如果所述验证错误的总位长度落入分配给所述纠错码的错误位长度容差的能力的范围内,则确定所述写入成功,并且在所述验证错误发生在所述多个存储器的至少任一个中的情况下,如果所述验证错误的总位长度落入分配给所述纠错码的错误位长度容差的能力的范围内,则确定所述写入失败。
(2)根据(1)所述的存储器控制电路,还包括错误校正码生成部,该错误校正码生成部生成写入数据的错误校正码。
(3)根据(1)或(2)所述的存储器控制电路,其中
在从所有与写入相关的多个存储器输出是否存在与写入相关的验证错误的发生之后,错误位长度获取部向多个存储器请求与写入相关的验证错误的位长度。
(4)根据(1)至(3)中的任一项所述的存储器控制电路,其中
在已经执行多次写入的情况下,所述错误位长度获取部指定所述多次写入中的任意次以向所述多个存储器请求所述验证错误的位长度。
(5)根据(1)至(4)中的任一项所述的存储器控制电路,其中
在所述多个存储器的每一个均包括多个存储体的情况下,所述错误位长度获取部指定所述多个存储体中的任一个,以向所述多个存储器请求所述验证错误的位长度。
(6)根据(1)至(5)中的任一项所述的存储器控制电路,其中
所述存储器存取控制部使用与在用于获取是否存在所述验证错误的发生的信号线中提供所述验证错误的发生的通知的信号具有不同脉冲宽度的信号来获取是否存在另一错误的发生。
(7)根据(1)至(6)中的任一项所述的存储器控制电路,其中
在所述多个存储器的至少任一中发生所述验证错误的情况下,所述存储器存取控制部从所述多个存储器获取存储单元失败的发生与否。
(8)一种存储器,包括:
存储单元阵列,响应于写入请求来执行写入数据的写入操作;
写入完成确定部,提供所述写入操作中是否发生验证错误的通知;以及
验证错误位长度保持部,保持写入操作中的验证错误的位长度,并且响应于来自外部的请求输出验证错误的位长度。
(9)根据(8)所述的存储器,其中
在执行多次写入操作的情况下,验证错误位长度保持部保持多次写入操作中至少最新两次的验证错误的位长度。
(10)根据(8)或(9)所述的存储器,其中
所述存储单元阵列包括多个存储体,并且
所述验证错误位长度保持部针对所述多个存储体中的每个存储体保持所述写入操作中的所述验证错误的位长度。
(11)根据(8)至(10)中的任一项所述的存储器,其中
所述写入完成确定部使用在用于提供所述验证错误的发生存在或不存在的通知的信号线中具有与提供所述验证错误的发生通知的信号不同的脉冲宽度的信号来提供另一错误的发生存在或不存在的通知。
(12)根据(8)至(11)中任一项所述的存储器,还包括:
存储单元失败发生保持部,保持存储单元阵列中存储单元失败的发生与否,并且响应于来自外部的请求输出存储单元失败的发生与否。
(13)根据(8)至(12)中的任一项所述的存储器,其中
所述存储单元阵列是非易失性存储器。
(14)一种存储器模块,包括:
多个存储器,分别包括验证错误位长度保持部,每个验证错误位长度保持部保持写入操作中的验证错误的位长度;
存储器访问控制部,通过将写入数据和用于写入数据的纠错码分割为多个存储器来执行写入,并且获取与写入相关的多个存储器中的每个中的验证错误的发生的存在或不存在;
错误位长度获取部,在所述多个存储器的至少任一个中发生所述验证错误的情况下,从所述多个存储器的所述验证错误位长度保持部获取所述验证错误的位长度;以及
写入控制部,如果所述验证错误的总位长度落入分配给所述纠错码的错误位长度容差的能力的范围内,则确定所述写入成功,并且在所述验证错误发生在所述多个存储器的至少任一个中的情况下,如果所述验证错误的总位长度落入分配给所述纠错码的错误位长度容差的能力的范围内,则确定所述写入失败。
附图标记列表
100主计算机
200存储器控制器
210多芯片控制部
220ECC编码器
230非易失性存储器写入控制部
240验证错误位读取控制部
250读取控制部
260ECC解码器
300非易失性存储器
310存储单元阵列
320请求控制部
330写入锁存器
340读取锁存器
350写入控制部
360写入完成确定部
370验证错误位长度寄存器
371最新验证错误位长度寄存器
372在先验证错误位长度寄存器
373最新验证错误位长度寄存器
374在先验证错误位长度寄存器
383最新存储单元失败发生标志寄存器
384在先存储单元失败发生标志寄存器
391请求(信号线)
392写入数据(信号线)
393读取数据(信号线)
394验证状态(信号线)
400存储器模块。

Claims (14)

1.一种存储器控制电路,包括:
存储器存取控制部,通过将写入数据和所述写入数据的纠错码分割成多个存储器来执行写入,并且获取与所述写入相关的所述多个存储器中的每个中是否存在验证错误的发生;
错误位长度获取部,在所述多个存储器中的至少任一个中发生所述验证错误的情况下,从所述多个存储器获取所述验证错误的位长度;以及
写入控制部,在所述验证错误发生在所述多个存储器中的至少任一个中的情况下,如果所述验证错误的总位长度落在分配给所述纠错码的错误位长度容差的能力的范围内,则确定所述写入成功,并且如果所述验证错误的总位长度落在分配给所述纠错码的错误位长度容差的能力的范围外,则确定所述写入失败。
2.根据权利要求1所述的存储器控制电路,还包括:
纠错码生成部,生成所述写入数据的所述纠错码。
3.根据权利要求1所述的存储器控制电路,其中,
在所有与所述写入相关的所述多个存储器输出了是否存在所述验证错误的发生之后,所述错误位长度获取部向所述多个存储器请求与所述写入相关的验证错误的位长度。
4.根据权利要求1所述的存储器控制电路,其中,
在已经执行多次写入的情况下,所述错误位长度获取部指定所述多次写入中的任一次,以向所述多个存储器请求所述验证错误的位长度。
5.根据权利要求1所述的存储器控制电路,其中,
在所述多个存储器的每个均包括多个存储体的情况下,所述错误位长度获取部指定所述多个存储体中的任一存储体,以向所述多个存储器请求所述验证错误的位长度。
6.根据权利要求1所述的存储器控制电路,其中,
所述存储器存取控制部在用于获取是否存在所述验证错误的发生的信号线中使用与提供所述验证错误的发生的通知的信号具有不同脉冲宽度的信号,来获取是否存在另一错误的发生。
7.根据权利要求1所述的存储器控制电路,其中,
在所述多个存储器中的至少任一个中发生所述验证错误的情况下,所述存储器存取控制部从所述多个存储器中获取是否存在存储单元失败的发生。
8.一种存储器,包括:
存储单元阵列,响应于写入请求来执行写入数据的写入操作;
写入完成确定部,提供所述写入操作中是否存在验证错误的发生的通知;以及
验证错误位长度保持部,保持所述写入操作中的所述验证错误的位长度,并且响应于来自外部的请求输出所述验证错误的位长度。
9.根据权利要求8所述的存储器,其中,
在执行多次写入操作的情况下,所述验证错误位长度保持部保持所述多次写入操作当中的至少最新两次的验证错误的位长度。
10.根据权利要求8所述的存储器,其中,
所述存储单元阵列包括多个存储体,并且
所述验证错误位长度保持部针对所述多个存储体中的每个存储体保持所述写入操作中的所述验证错误的位长度。
11.根据权利要求8所述的存储器,其中,
所述写入完成确定部在用于提供是否存在所述验证错误的发生的通知的信号线中使用与提供所述验证错误的发生的通知的信号具有不同脉冲宽度的信号,来提供是否存在另一错误的发生的通知。
12.根据权利要求8所述的存储器,还包括:
存储单元失败发生保持部,保持所述存储单元阵列中是否存在存储单元失败的发生,并且响应于来自外部的请求输出是否存在所述存储单元失败的发生。
13.根据权利要求8所述的存储器,其中,
所述存储单元阵列是非易失性存储器。
14.一种存储器模块,包括:
多个存储器,分别包括验证错误位长度保持部,每个验证错误位长度保持部保持写入操作中的验证错误的位长度;
存储器存取控制部,通过将写入数据和所述写入数据的纠错码分割成多个存储器来执行写入,并且获取与所述写入相关的所述多个存储器中的每个中是否存在验证错误的发生;
错误位长度获取部,在所述多个存储器中的至少任一个中发生所述验证错误的情况下,从所述多个存储器的所述验证错误位长度保持部获取所述验证错误的位长度;以及
写入控制部,在所述验证错误发生在所述多个存储器中的至少任一个中的情况下,如果所述验证错误的总位长度落在分配给所述纠错码的错误位长度容差的能力的范围内,则确定所述写入成功,并且如果所述验证错误的总位长度落在分配给所述纠错码的错误位长度容差的能力的范围外,则确定所述写入失败。
CN202180067427.1A 2020-10-08 2021-08-23 存储器控制电路、存储器以及存储器模块 Pending CN116324736A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2020-170373 2020-10-08
JP2020170373 2020-10-08
PCT/JP2021/030834 WO2022074947A1 (ja) 2020-10-08 2021-08-23 メモリ制御回路、メモリ、および、メモリモジュール

Publications (1)

Publication Number Publication Date
CN116324736A true CN116324736A (zh) 2023-06-23

Family

ID=81125789

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180067427.1A Pending CN116324736A (zh) 2020-10-08 2021-08-23 存储器控制电路、存储器以及存储器模块

Country Status (3)

Country Link
US (1) US20230385147A1 (zh)
CN (1) CN116324736A (zh)
WO (1) WO2022074947A1 (zh)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2503249B2 (ja) * 1988-05-13 1996-06-05 富士通株式会社 記憶装置におけるeccエラ―処理方式
JP3178912B2 (ja) * 1992-10-14 2001-06-25 株式会社東芝 半導体メモリチップ
JP2000215687A (ja) * 1999-01-21 2000-08-04 Fujitsu Ltd 冗長セルを有するメモリデバイス
JP5596143B2 (ja) * 2010-06-29 2014-09-24 パナソニック株式会社 不揮発性記憶システム、メモリシステム用の電源回路、フラッシュメモリ、フラッシュメモリコントローラ、および不揮発性半導体記憶装置
JP6948980B2 (ja) * 2018-04-23 2021-10-13 三菱電機株式会社 半導体素子の駆動装置

Also Published As

Publication number Publication date
US20230385147A1 (en) 2023-11-30
WO2022074947A1 (ja) 2022-04-14

Similar Documents

Publication Publication Date Title
US8473811B2 (en) Multi-chip memory system and related data transfer method
US20130080858A1 (en) Method of reading data from a non-volatile memory and devices and systems to implement same
US11347444B2 (en) Memory device for controlling operations according to different access units of memory
US8438457B2 (en) Nonvolatile memory apparatus, memory controller, and memory system
US20180052732A1 (en) Semiconductor device and semiconductor system
CN109542666B (zh) 用于支持纠错码的装置及其测试方法
TWI525430B (zh) 快取記憶體裝置以及該裝置的資料處理方法
US10445176B2 (en) Memory system, memory device and operating method thereof
CN107919160B (zh) 测试单元阵列的方法及执行其的半导体器件
US10379947B2 (en) Semiconductor device
US10319462B2 (en) Semiconductor device and semiconductor system
US11403172B2 (en) Methods for error detection and correction and corresponding systems and devices for the same
US20170344422A1 (en) Semiconductor devices and semiconductor systems
CN116324736A (zh) 存储器控制电路、存储器以及存储器模块
US11322220B2 (en) Memory system including a flash memory device and a memory controller
US11262936B2 (en) Memory controller, storage device, information processing system, and memory control method
US10922025B2 (en) Nonvolatile memory bad row management
US10290333B2 (en) Semiconductor device
KR20180027655A (ko) 테스트방법 및 이를 이용한 반도체시스템
KR20170130684A (ko) 반도체장치
US11599413B2 (en) Electronic system including error calculation circuit for performing error correction operation
KR20180027656A (ko) 반도체장치 및 반도체시스템
KR20180086817A (ko) 반도체장치
US10014073B2 (en) Semiconductor devices

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