存储器、存储系统以及存储器的操作方法
1.相关申请的交叉引用
2.本技术要求于2020年6月22日提交的申请号为63/042215的美国临时申请和于2021年3月23日提交的申请号为63/164809的美国临时申请的优先权,其内容通过引用合并于本文中。
技术领域
3.本发明的各种实施例涉及一种存储器和存储系统。
背景技术:4.在半导体存储器件行业的早期阶段,晶圆上有许多原本良好的裸片,这意味着通过半导体制造工艺生产出的存储芯片没有缺陷的存储单元。然而,随着存储器件的容量增加,制造不具有任何缺陷的存储单元的存储器件变得困难,如今,可以说,基本上没有可能制造出没有任何缺陷的存储单元的存储器件。为了解决该问题,正在使用在存储器件中包括冗余存储单元并利用冗余存储单元替换有缺陷的存储单元的修复方法。
5.作为另一种方法,用于校正存储系统中的错误的错误校正电路(ecc电路)用于校正存储单元中发生的错误以及在存储系统的读取操作和写入操作期间传送数据时发生的错误。
技术实现要素:6.本发明的实施例涉及一种检测存储器中的不可校正错误并将不可校正错误通知存储器控制器的方法。
7.根据本发明的一个实施例,一种存储器包括:下行链路错误校正电路,其适用于基于从存储器控制器传送的下行链路错误校正码来校正从所述存储器控制器传送的数据中的错误,以产生错误校正数据;存储器错误校正码生成电路,其适用于基于由所述下行链路错误校正电路获得的所述错误校正数据来生成存储器错误校正码;错误注入电路,其适用于:当所述下行链路错误校正电路在从所述存储器控制器传送的数据中检测到未校正的错误时,将错误注入到由所述下行链路错误校正电路获得的所述错误校正数据和所述存储器错误校正码中的至少一个中;以及存储器核,其适用于储存从所述错误注入电路传送的所述存储器错误校正码和所述数据。
8.根据本发明的另一个实施例,一种存储系统包括存储器控制器和存储器,所述存储器控制器包括:下行链路错误校正码生成电路,其适用于基于要传送到存储器的数据来生成下行链路错误校正码,所述存储器包括:下行链路错误校正电路,其适用于基于从所述存储器控制器传送的所述下行链路错误校正码来校正从所述存储器控制器传送的数据中的错误,以产生错误校正数据;存储器错误校正码生成电路,其适用于基于由所述下行链路错误校正电路获得的所述错误校正数据来生成存储器错误校正码;错误注入电路,其适用于:当所述下行链路错误校正电路在从所述存储器控制器传送的数据中检测到不可校正错
误时,将错误注入到由所述下行链路错误校正电路获得的所述错误校正数据和所述存储器错误校正码中的至少一个中;以及存储器核,其适用于储存从所述错误注入电路传送的所述存储器错误校正码和所述错误校正数据。
9.根据本发明的又一个实施例,一种操作存储器的方法包括:接收数据和下行链路错误校正码;执行第一错误校正操作,以产生错误校正数据,所述第一错误校正操作用于基于所述下行链路错误校正码来校正数据的错误;通过所述第一错误校正操作来检测所述数据中的不可校正错误;基于错误校正数据来生成存储器错误校正码;响应于不可校正错误的检出而将错误注入到所述错误校正数据和所述存储器错误校正码中的至少一个中,并且在所述注入后将所述数据和所述存储器错误校正码传送到存储器核;以及将传送到所述存储器核的所述数据和所述存储器错误校正码写入所述存储器核。
10.根据本发明的又一个实施例,一种操作存储系统的方法包括:基于第一数据来生成第一错误校正码;基于所述第一错误校正码,对经过介质的所述第一数据执行第一错误校正操作,以生成第二数据;基于所述第二数据来生成第二错误校正码;当所述第二数据包括通过所述第一错误校正操作未被校正的原始错误时,将有意错误注入到所述第二数据和所述第二错误校正码中的至少一个中;以及将所述第二数据和所述第二错误校正码储存到存储器核中。
附图说明
11.图1是示出了根据本发明的一个实施例的存储系统100的框图。
12.图2是描述了根据本发明的一个实施例的图1所示的存储系统100的写入操作的流程图。
13.图3是描述了根据本发明的一个实施例的图1所示的存储系统100的读取操作的流程图。
具体实施方式
14.下面将参照附图更详细地描述本发明的各种实施例。然而,本发明可以采用不同的形式来实施并且不应解释为限于本文中所阐述的实施例。确切地说,提供这些实施例是为了使本公开将全面和完整,并将本发明的范围充分地传达给本领域技术人员。贯穿本公开,在本发明的各个附图和实施例中相同的附图标记指代相同的部件。
15.图1是示出了根据本发明的一个实施例的存储系统100的框图。在图1中,仅示出了与存储系统100中的数据传送和错误校正直接相关的部分。
16.参见图1,存储系统100可以包括存储器控制器110和存储器150。
17.存储器控制器110可以根据来自主机的请求来控制存储器150的操作,例如读取操作和写入操作。主机可以包括:中央处理单元(cpu)、图形处理单元(gpu)、应用处理器(ap)等,而存储器控制器110可以被包括在主机内部或外部。当存储器控制器110被包括在主机内部时,图中的主机数据host_data可以表示在主机的存储器控制器110与主机内部的主机的其他组成元件之间交换的数据。当存储器控制器110存在于主机外部时,图中的主机数据host_data可以表示存储器控制器110与主机交换的数据。主机数据host_data可以是多比特位数据。
18.存储器控制器110可以包括下行链路错误校正码生成电路111和上行链路错误校正电路113。下行链路错误校正码生成电路111和上行链路错误校正电路113可以是用于处理在存储器控制器110与存储器150之间传送数据data的过程中可能出现的错误的电路。
19.下行链路错误校正码生成电路111可以通过在写入操作期间对主机数据host_data进行编码来生成用于校正数据data的错误的下行链路错误校正码ecc_link。下行链路错误校正码ecc_link可以是用于校正可能发生在通道101上的错误的错误校正码,数据data通过所述通道101传送。在通道101上从存储器控制器110传送到存储器150的链路错误校正码ecc_link可以称为下行链路错误校正码,并且从存储器150传送到存储器控制器110的链路错误校正码ecc_link可以称为上行链路错误校正码。在写入操作期间,下行链路错误校正码生成电路111可以仅基于主机数据host_data来生成下行链路错误校正码ecc_link,而不会改变主机数据host_data。因此,在写入操作期间输入到下行链路错误校正码生成电路111的数据host_data和从下行链路错误校正码生成电路111输出的数据data可以相同。下行链路错误校正码ecc_link可以是多个比特位。
20.上行链路错误校正电路113可以在读取操作期间基于从存储器150传送的上行链路错误校正码ecc_link来校正从存储器150传送的数据data的错误。错误校正可以意味着基于上行链路错误校正码ecc_link来检测数据data的错误,并且当检测到错误时,校正检测到的错误。上行链路错误校正电路113可以从存储器150接收错误标志信号err_falg。当错误标志信号err_flag被激活时,即使通过上行链路错误校正电路113的错误校正操作在从存储器150提供的数据data中没有检测到错误,也可以识别出在从存储器150提供的数据data中存在错误。也就是说,尽管在上行链路错误校正电路113的错误校正操作期间在从存储器150提供的数据data中没有检测到错误,激活的错误标志信号err_flag也可以意味着:在将数据data从存储器150传送到存储器控制器110之前,在存储器150中处理数据的同时在数据data中已发生了错误。当上行链路错误校正电路113检测到不可校正错误时,或者当错误标志信号err_flag被激活时,上行链路错误校正电路113可以利用存储器控制器110中的数据host_data和主机,来通知组成元件(未示出):由上行链路错误校正电路113提供的数据host_data是错误数据。
21.存储器150可以在写入操作期间从存储器控制器110接收和存储数据data,并且在读取操作期间将数据data传送到存储器控制器110。存储器150可以是诸如dram、高带宽存储器(hbm)、相变随机存取存储器(pcram)、快闪存储器等的不同类型的存储器中的一种。存储器150可以包括:下行链路错误校正电路151、上行链路错误校正码生成电路153、存储器错误校正码生成电路155、存储器错误校正电路157、错误注入电路159和存储器核161。下行链路错误校正电路151和上行链路错误校正码生成电路153可以是用于处理在存储器控制器110与存储器150之间传送数据data的过程中发生的错误的电路。此外,存储器错误校正码生成电路155和存储器错误校正电路157可以是用于处理在将数据data'写入存储器核161中和从存储器核161读取数据data'的过程中可能发生的错误的电路。
22.下行链路错误校正电路151可以基于从存储器控制器110传送的下行链路错误校正码ecc_link来校正从存储器控制器110传送的数据data的错误。错误校正可以意味着:基于下行链路错误校正码ecc_link,检测数据data的错误并且校正检测到的错误。当在从存储器控制器110提供的数据data中检测到不可校正错误时,下行链路错误校正电路151可以
激活不可校正错误信号ue。当存在超出下行链路错误校正电路151的错误校正能力的错误时,不可校正错误信号ue可以被激活。例如,当下行链路错误校正电路151能够校正多达1比特位的错误而当存在2比特位或更多比特位的错误时,不可校正错误信号ue可以被激活。当不可校正错误信号ue被激活时,可以意味着下行链路错误校正电路151不能校正该错误,因此从下行链路错误校正电路151输出的数据wr_data有错误。在图1中,“wr”表示在写入操作中向存储器核161处理的数据和错误校正码,而“rd”表示在读取操作中向存储器控制器110处理的数据和错误校正码。
23.存储器错误校正码生成电路155可以基于其错误被下行链路错误校正电路151校正的数据wr_data来生成存储器错误校正码wr_mem_ecc。由于存储器错误校正码生成电路155基于错误校正数据wr_data仅生成存储器错误校正码wr_mem_ecc,因此输入到存储器错误校正码生成电路155的数据wr_data和从存储器错误校正码生成电路155输出的数据wr_data可以相同。存储器错误校正码wr_mem_ecc可以是多个比特位。
24.当下行链路错误校正电路151检测到不可校正错误时,即,当不可校正错误信号ue被激活时,错误注入电路159可以将错误注入到数据wr_data和存储器错误校正码wr_mem_ecc之中的至少一个或更多个中,并且将它们传送到存储器核161。当下行链路错误校正电路151没有检测到不可校正错误时,即,当不可校正错误信号ue被去激活时,错误注入电路159可以将输入的数据wr_data和存储器错误校正码wr_mem_ecc照样子传送到存储器核161。简言之,在这种情况下,wr_data=wr_data'并且wr_mem_ecc=wr_mem_ecc'。
25.当不可校正错误信号ue被激活时,错误注入电路159可以有意地将错误注入到数据wr_data和存储器错误校正码wr_mem_ecc之中的至少一个或更多个中,以使存储器错误校正电路157检测到不可校正错误,即有意注入的错误。下面是错误注入电路159的错误注入方法的两个示例。
26.(1)无论数据wr_data的值如何,错误注入电路159都可以生成预定模式的数据wr_data'。例如,错误注入电路159可以生成预定模式“1111...”的数据wr_data'。在这种情况下,存储器错误校正电路157可以在读取操作期间检测出该数据具有预定模式,并且确定出该数据中存在错误。
27.(2)错误注入电路159可以将数据wr_data和存储器错误校正码wr_mem_ecc中的至少一个或更多个的一部分反相,并将其传送到存储器核161。错误注入电路159可以注入错误,以使存储器错误校正电路157检测到不可校正错误。因此,错误注入电路159可以注入错误,该错误的数量超过了存储器错误校正电路157的错误校正能力。例如,当存储器错误校正电路157的错误校正能力为1个比特位时,错误注入电路159可以将数据wr_data和存储器错误校正码wr_mem_ecc中的两个比特位或更多个比特位反相,并且将其传送到存储器核161。
28.除了上述方法(1)和(2)之外,错误注入电路159可以采用不同的方法来注入错误,以使存储器错误校正电路157检测到在数据wr_data和存储器错误校正码wr_mem_ecc中的不可校正错误。
29.存储器核161可以储存从错误注入电路159传送的数据wr_data'和存储器错误校正码wr_mem_ecc'。存储器核161可以包括:单元阵列,其包括多个存储单元;和电路,其用于向单元阵列写入数据和从单元阵列读取数据。
30.存储器错误校正电路157可以基于从存储器核161读取的存储器错误校正码rd_mem_ecc来校正从存储器核161读取的数据rd_data的错误。校正错误可以意味着:基于存储器错误校正码rd_mem_ecc来检测数据rd_data的错误并校正检测到的错误。当在数据rd_data中检测到不可校正错误时,存储器错误校正电路157可以激活错误标志信号err_flag。当存在超过存储器错误校正电路157的错误校正能力的错误时,错误标志信号可以被激活。当超过存储器错误校正电路157的错误校正能力的错误在存储器核161中发生时,错误标志信号err_flag可以被激活。此外,尽管在存储器核161中没有发生错误,但是,当错误注入电路159在数据rd_data中注入错误时,错误标志信号err_flag可以被激活。错误标志信号err_flag可以从存储器150传送到存储器控制器110。
31.上行链路错误校正码生成电路153可以基于从存储器错误校正电路157输出的数据rd_data'来生成上行链路错误校正码ecc_link。上行链路错误校正码生成电路153的不同之处仅在于:其在读取操作期间生成从存储器150传送到存储器控制器110的上行链路错误校正码ecc_link,并且其可以采用与下行链路错误校正码生成电路111相同的方式来生成码ecc_link。上行链路错误校正码生成电路153可以生成上行链路错误校正码ecc_link,但不对数据进行处理。因此,输入到上行链路错误校正码生成电路153的数据rd_data'可以与从上行链路错误校正码生成电路153输出的数据data相同。
32.图2是描述了根据本发明的一个实施例的图1所示的存储系统100的写入操作的流程图。
33.参见图2,首先,在操作s201中,存储器控制器110的下行链路错误校正码生成电路111可以基于主机数据host_data来生成下行链路错误校正码ecc_link。
34.在操作s203中,数据data和下行链路错误校正码ecc_link可以从存储器控制器110传送到存储器150。
35.在操作s205中,可以执行存储器150的下行链路错误校正电路151的错误校正操作。下行链路错误校正电路151可以基于下行链路错误校正码ecc_link来检测数据data的错误并且校正检测到的错误。当下行链路错误校正电路151检测到不可校正错误时,不可校正错误信号ue可以被激活。
36.在操作s207中,存储器150的存储器错误校正码生成电路155可以基于从下行链路错误校正电路151接收到的数据wr_data来生成存储器错误校正码wr_mem_ecc。
37.当不可校正错误信号被激活时(在操作s209中的是),在操作s211中,错误注入电路159可以将错误注入到数据wr_data和存储器错误校正码wr_err_ecc中的至少一个中。当不可校正错误信号被去激活时(在操作s209中的否),可以不执行错误注入操作。
38.此外,在操作s213中,数据wr_data'和存储器错误校正码wr_mem_ecc'可以被写入存储器核161中。
39.图3是描述了根据本发明的一个实施例的图1所示的存储系统100的读取操作的流程图。
40.参见图3,首先,在操作s301中,可以从存储器核161读取数据rd_data和存储器错误校正码rd_mem_ecc。
41.在操作s303中,可以执行存储器错误校正电路157的错误校正操作。存储器错误校正电路157可以基于存储器错误校正码rd_mem_ecc来检测数据rd_data中的错误并且校正
检测到的错误。当存储器错误校正电路157检测到不可校正错误时,错误标志信号err_flag可以被激活。
42.在操作s305中,上行链路错误校正码生成电路153可以基于从存储器错误校正电路157传送的数据rd_data'来生成上行链路错误校正码ecc_link。
43.在操作s307中,数据data、上行链路错误校正码ecc_link和错误标志信号err_flag可以从存储器150传送到存储器控制器110。
44.现在,在操作s309中,可以执行存储器控制器110的上行链路错误校正电路113的错误校正操作。上行链路错误校正电路113可以基于上行链路错误校正码ecc_link来检测数据data的错误,并且校正检测到的错误。当上行链路错误校正电路113检测到不可校正错误时,或者当错误标志信号err_flag被激活时,上行链路错误校正电路113可以识别出在接收到的数据data中存在不可校正错误。
45.当在存储器150的下行链路错误校正电路151中检测到不可校正错误时,或者当在存储器150的存储器错误校正电路157中检测到不可校正错误时,可以利用不可校正错误信号ue和错误标志信号err_flag将存在不可校正错误的信息传送到存储系统100中的存储器控制器110。因此,可以提高存储系统100的可靠性。
46.根据本发明的实施例,可以提高存储系统的可靠性。
47.此外,已经在附图和说明书中描述了本公开的实施例。尽管这里使用了特定的术语,但是那些术语仅用于描述本公开的实施例。因此,本公开不限于上述实施例,并且在本公开的精神和范围内可以有许多变化。对于本领域的技术人员来说应显而易见的是,除了本文中公开的实施例之外,还可以在本公开的技术范围的基础上进行各种修改。实施例可以被组合以形成附加的实施例。
48.尽管已经参照具体的实施例描述了本发明,但对于本领域的技术人员来说显而易见的是,在不脱离所附权利要求所限定的本发明的精神和范围的情况下,可以进行各种改变和修改。