一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

存储器、存储器系统、存储器的操作方法和存储器系统的操作与流程

2021-05-21 08:49:00 来源:中国专利 TAG:专利申请 韩国 存储器 提交 引用
存储器、存储器系统、存储器的操作方法和存储器系统的操作与流程

相关申请的交叉引用

本申请要求于2019年11月21日提交的韩国专利申请10-2019-0150511和于2020年6月5日提交的韩国专利申请10-2020-0068144的优先权,它们的整体内容通过引用合并于此。

本发明的实施方式涉及存储器和存储器系统。



背景技术:

在半导体存储器行业的早期,在已经历晶片上的半导体制造工艺的存储器芯片中存在许多原始良好裸片,它们是没有缺陷的存储单元的裸片。然而,随着存储器装置的容量逐渐增加,变得难于制造完全没有缺陷的存储单元的存储器装置,并且目前,可以说基本上没有可能制造没有缺陷的存储单元的存储器装置。作为克服该问题的一种解决方案,正在使用利用冗余的存储单元修复存储器装置的缺陷存储单元的方法。

作为另一解决方案,使用纠正存储器系统中的错误的纠错电路(即ecc电路)来纠正存储单元中出现的错误以及在存储器系统的读取操作和写入操作期间传送数据时出现的错误。



技术实现要素:

本发明的实施方式涉及一种用于减少存储器和存储器系统中的错误的技术。

根据本发明的一个实施方式,一种用于操作存储器的方法包括:确定是否执行纠错操作;响应于确定执行纠错操作来生成内部地址;从基于内部地址选择的存储单元读取数据和与数据对应的纠错码;基于纠错码对数据执行纠错操作以产生经纠错的数据;将经纠错的数据和与经纠错的数据对应的纠错码写入到存储单元中;基于在执行纠错操作时检测到的错误将存储器中的区域当中的一个或更多个区域确定为需要修复区域;接收第一命令;响应于第一命令将需要修复区域中存储的数据和纠错码备份到冗余区域中;以及利用冗余区域修复需要修复区域。

根据本发明的另一实施方式,一种存储器包括:正常单元阵列;冗余单元阵列;访问电路,其用于访问正常单元阵列和冗余单元阵列;地址生成电路,其响应于确定执行纠错操作来生成内部地址;纠错码生成电路,其基于写入数据生成与写入数据对应的纠错码;纠错电路,其基于与读取数据对应的纠错码来检测和纠正读取数据的错误;历史储存电路,其基于纠错电路检测到的错误将正常单元阵列的区域当中的一个或更多个区域确定为需要修复区域;以及修复电路,其用于将正常单元阵列的需要修复区域替换为冗余单元阵列的冗余区域,其中当第一命令被施加时,访问电路将正常单元阵列的需要修复区域中存储的数据和纠错码备份到冗余区域中,以及修复电路在所述备份完成之后将需要修复区域替换为冗余区域。

根据本发明的又一实施方式,一种用于操作存储器系统的方法包括:通过存储器确定是否执行纠错操作;通过存储器响应于确定执行纠错操作来生成内部地址;通过存储器从基于内部地址选择的存储单元读取数据和与数据对应的纠错码;通过存储器基于纠错码对数据执行纠错操作;通过存储器将经纠错的数据和与经纠错的数据对应的纠错码写入到基于内部地址选择的存储单元中;通过存储器基于在存储器执行纠错操作时检测到的错误将区域当中的一个或更多个区域确定为需要修复区域;通过存储器控制器将需要修复区域的数据移动到存储器的第一区域中;通过存储器控制器向存储器传送第一命令;通过存储器响应于第一命令利用存储器的冗余区域修复需要修复区域;以及通过存储器控制器将第一区域的数据移动到冗余区域中。

根据本发明的再一实施方式,一种存储器包括:正常单元阵列;冗余单元阵列;访问电路,其用于访问正常单元阵列和冗余单元阵列;地址生成电路,其响应于确定执行纠错操作来生成内部地址;纠错码生成电路,其基于写入数据生成与写入数据对应的纠错码;纠错电路,其基于与读取数据对应的纠错码来检测和纠正读取数据的错误;历史储存电路,其基于纠错电路检测到的错误将正常单元阵列的区域当中的一个或更多个区域确定为需要修复区域;以及修复电路,其用于将正常单元阵列的需要修复区域替换为冗余单元阵列的冗余区域,其中当第一命令被施加时,修复电路将需要修复区域替换为冗余区域。

根据本发明的再一实施方式,一种用于操作存储器系统的方法包括:通过存储器确定是否执行纠错操作;通过存储器响应于确定执行纠错操作来生成内部地址;通过存储器从基于内部地址选择的存储单元读取数据和与数据对应的纠错码;通过存储器基于纠错码对数据执行纠错操作;通过存储器将经纠错的数据和与经纠错的数据对应的纠错码写入到基于内部地址选择的存储单元中;通过存储器基于在存储器执行纠错操作时检测到的错误将区域当中的一个或更多个区域确定为需要修复区域;通过存储器在存储器控制器请求时将关于需要修复区域的信息传送到存储器控制器;通过存储器控制器确定是否不存在需要修复区域所必需的数据;通过存储器控制器向存储器传送第一命令;以及通过存储器响应于第一命令利用存储器的冗余区域来修复需要修复区域。

根据本发明的再一实施方式,一种用于操作存储器系统的方法包括:通过存储器确定是否执行纠错操作;通过存储器响应于确定执行纠错操作来生成内部地址;通过存储器从基于内部地址选择的存储单元读取数据和与数据对应的纠错码;通过存储器基于纠错码对数据执行纠错操作;通过存储器将经纠错的数据和与经纠错的数据对应的纠错码写入到基于内部地址选择的存储单元中;通过存储器基于在存储器执行纠错操作时检测到的错误将区域当中的一个或更多个区域确定为需要修复区域;通过存储器将从需要修复区域读取的第一数据传送到存储器控制器;通过存储器控制器向存储器施加第一命令;通过存储器响应于第一命令利用存储器的冗余区域修复需要修复区域;通过存储器控制器向存储器传送第一数据,使得第一数据被写入到冗余区域中;通过存储器控制器向存储器施加第二命令;通过存储器响应于第二命令取消修复;通过存储器向存储器控制器传送从需要修复区域读取的第二数据;通过存储器控制器向存储器施加第三命令;通过存储器响应于第三命令利用存储器的冗余区域修复需要修复区域;以及通过存储器控制器向存储器传送第二数据,使得第二数据被写入到冗余区域中。

根据本发明的再一实施方式,一种用于操作存储器系统的方法包括:通过存储器控制器向存储器传送第一命令;通过存储器响应于第一命令利用冗余单元阵列的冗余区域来修复正常单元阵列的正常区域;通过存储器控制器向存储器传送第二命令;通过存储器响应于第二命令取消修复;通过存储器传送从正常区域读取的第一数据;通过存储器控制器向存储器传送第三命令;通过存储器响应于第三命令再次利用冗余区域修复正常区域;以及通过存储器控制器向存储器传送第一数据,使得第一数据被写入到冗余区域中。

根据本发明的再一实施方式,一种存储器包括:正常单元阵列;冗余单元阵列;访问电路,其用于访问正常单元阵列和冗余单元阵列;以及修复电路,其执行当第一命令被施加时将正常单元阵列的一部分替换为冗余单元阵列的冗余区域、当第二命令被施加时取消先前修复操作、以及当第三命令被施加时再次执行先前修复操作的修复操作。

根据本发明的再一实施方式,一种存储器系统包括:存储器控制器,其被配置成发送修复命令;以及存储器装置,其被配置成接收修复命令,其中存储器装置包括:存储单元阵列,所述存储单元阵列包括耦接到需要修复正常行和冗余行的多个单元;访问电路,其被配置成响应于修复命令激活需要修复正常行和冗余行,并且将耦接到需要修复正常行的单元中所存储的数据备份到耦接到冗余行的单元中;以及修复电路,其被配置成在数据被备份之后将需要修复正常行替换为冗余行。

附图说明

图1是示出根据本发明的一个实施方式的存储器系统的框图。

图2是示出图1中所示的存储器的框图。

图3是描述在图1中所示的存储器系统中执行的写入操作的实施方式的流程图。

图4是描述在图1的存储器系统中执行的读取操作的实施方式的流程图。

图5是描述在图1的存储器系统中执行的纠错操作的实施方式的流程图。

图6是描述在图1的存储器系统中执行的修复操作的第一实施方式的流程图。

图7是描述在图1的存储器系统中执行的修复操作的第二实施方式的流程图。

图8是描述在图1的存储器系统中执行的修复操作的第三实施方式的流程图。

图9是描述在图1的存储器系统中执行的修复操作的第四实施方式的流程图。

具体实施方式

下面将参照附图更详细地描述本发明的各实施方式。然而,本发明可以以不同的形式实施并且不应被解释为限于本文阐述的实施方式。相反,这些实施方式被提供使得本公开内容将是详尽的和完整的,并且将向本领域技术人员全面传达本发明的范围。在本公开内容通篇中,遍及本发明的各个附图和各个实施方式,相同的附图标记表示相同的元件。

图1是示出根据本发明的一个实施方式的存储器系统100的框图。

参照图1,存储器系统100可以包括存储器控制器110和存储器120。

存储器控制器110可以根据主机host的请求控制存储器120的操作。主机host可以包括中央处理单元(cpu)、图形处理单元(gpu)、应用处理器(ap)等。存储器控制器110可以包括主机接口111、控制块113、命令生成器115、存储器接口117和临时存储器119。存储器控制器110可被配置在主机host外部。替选地,存储器控制器110可被包括在cpu、gpu、ap等中。在该情况下,主机host可以表示该配置中的除了存储器控制器110之外的构成元件。例如,当存储器控制器110被包括在cpu中时,图中的主机host可以表示cpu中的除了存储器控制器110之外的其他构成元件。

主机接口111可以是用于主机host和存储器控制器110之间的通信的接口。

控制块113可以控制存储器控制器110的整体操作并且调度要指向存储器220的操作。为了提高存储器120的性能,控制块113可以改变从主机host接收到的请求的顺序以及要指向存储器120的操作的顺序。例如,即使主机host首先向存储器120请求读取操作、随后向存储器120请求写入操作,仍可以调整顺序使得在读取操作之前执行写入操作。

命令生成器115可以根据控制块113确定的操作顺序生成要施加到存储器120的命令。

存储器接口117可以是存储器控制器110和存储器120之间的接口。命令cmd和地址add可以通过存储器接口117从存储器控制器110传送到存储器120,并且数据data可以在存储器控制器110和存储器120之间传送和/或接收。存储器接口117也可被称为phy接口。

临时存储器119可以是临时存储从存储器120读取的数据或者临时存储要写入到存储器120中的数据的存储器。临时存储器可以是静态随机存取存储器(sram)。

存储器120可以执行由存储器控制器110引导的操作。将参照图2详细描述存储器120。

图2是示出图1中所示的存储器120的框图。

参照图2,存储器120可以包括命令接收电路201、地址接收电路203、数据传送和接收(传送/接收)电路205、命令译码器210、地址生成电路220、单元阵列230、访问电路240、纠错码生成电路253、纠错电路(即ecc电路)251、历史储存电路260和修复电路270。

命令接收电路201可以接收从存储器控制器110的存储器接口117传送的命令cmd。地址接收电路203可以接收从存储器控制器110的存储器接口117传送的地址add。地址add可以连同基于行的命令、例如激活化(active)命令一起由地址接收电路203接收,该基于行的命令可被分类为行地址add_r。再者,地址add可以连同基于列的命令、例如读取命令和写入命令一起由地址接收电路203接收,该基于列的命令可被分类为列地址add_c。数据传送/接收电路205在写入操作期间接收从存储器接口117传送的数据data并且在读取操作期间向存储器接口117传送数据data。

命令译码器210可以对通过命令接收电路201接收到的命令cmd译码,以检测存储器控制器110引导的操作。命令译码器210不仅可以对命令cmd译码,也可以连同命令cmd一起对一部分地址add译码。命令译码器210可以根据由存储器控制器110引导的操作生成用于控制存储器120内部的构成元件的信号。信号rowcontrol可以是用于控制行译码器241的信号。信号columncontrol可以是用于控制列译码器243的信号。信号readcontrol可以是用于控制输入/输出(io)感测放大器245的信号。信号writecontrol可以是用于控制写入驱动器246的信号。信号ecccontrol可以是用于控制与纠错操作相关的构成元件诸如纠错码生成电路253、纠错电路251和地址生成电路220的信号。信号repaircontrol可以是用于控制修复电路270的信号。信号rowcontrol、columncontrol、readcontrol、writecontrol、ecccontrol和repaircontrol可以是多比特位信号。

历史储存电路260可以生成每当执行纠错操作时改变的内部地址。内部地址可以包括内部行地址ecc_add_row和内部列地址ecc_add_col。由于每次执行纠错操作时内部地址ecc_add_row和ecc_add_col改变,因此可以在多次执行纠错操作时对整个单元阵列230执行纠错操作。在一些实施方式中,地址生成电路220生成的内部列地址ecc_add_col可用于备份操作。在备份操作期间,地址生成电路220可以增加和改变内部列地址ecc_add_col。

复用器221可以选择地址接收电路203接收到的行地址arr_r和地址生成电路220生成的内部行地址ecc_add_row中的一个,以将所选择的地址传送到修复电路270的比较电路277。在一些实施方式中,在执行纠错操作时使用内部行地址ecc_add_row。在该情况下,复用器221可以将内部行地址ecc_add_row传送到比较电路277。否则,其可以将行地址add_r传送到比较电路277。

复用器223可以选择地址接收电路203接收到的列地址arr_c和地址生成电路220生成的内部列地址ecc_add_col中的一个并且将所选择的地址传送到列译码器243。在一些实施方式中,在执行纠错操作时使用内部列地址ecc_add_col。在该情况下,复用器223可以将内部列地址ecc_add_col传送到列译码器243。否则,其可以将列地址add_c传送到列译码器243。

单元阵列230可以包括布置在多个行和多个列之间的多个存储单元。单元阵列230可以包括具有正常存储单元的正常单元阵列231和具有冗余存储单元的冗余单元阵列232。

访问电路240可以将数据和与数据对应的纠错码写入到单元阵列230中以及从单元阵列230读取数据和与数据对应的纠错码。访问电路240可以包括行译码器241、感测放大器阵列242、列译码器243、io感测放大器245和写入驱动器246。

行译码器241可以从单元阵列230中选择要被访问的行(即字线)。输入到行译码器241的正常行地址norm_row_add可以是用于选择正常单元阵列231中的要被访问的行的地址。冗余行地址redun_row_add可以是冗余单元阵列232中的要被访问的行的地址。行译码器241可以在命中信号hit被去激活时激活基于正常行地址norm_row_add选择的行。行译码器241可以在命中信号hit被激活时激活基于冗余行地址redun_row_add选择的行。

感测放大器阵列242可以感测和放大由行译码器241选择的行的数据和纠错码。

列译码器243可以响应于列地址norm_col_add从单元阵列230中选择要被访问的列(即位线)。可以在由感测放大器阵列242感测和放大的数据和纠错码中选择由列译码器243选择的列的数据和纠错码。

在读取操作期间,io感测放大器245可以将由列译码器243选择的列的数据data'和纠错码ecc传送到纠错电路251。

在写入操作期间,写入驱动器246可以将从纠错码生成电路253传送的数据data'和纠错码ecc传送到由列译码器243选择的列。

在写入操作期间,纠错码生成电路253可以基于数据data生成纠错码ecc。可以使用数据data仅生成纠错码ecc,但是不对数据data的错误进行纠正。因此,输入到纠错码生成电路253的数据data和从纠错码生成电路253输出的数据data'可以是相同的。

在读取操作期间,纠错电路251可以基于纠错码ecc纠正数据data'中的错误。具体地,纠错电路251可以基于纠错码ecc检测数据data'中的错误并且纠正数据data'中的检测到的错误。当检测到数据data'的错误并且纠正所检测到的错误时,输入到纠错电路251的数据data'和从纠错电路251输出的数据data可以是不同的。

历史储存电路260可以基于从纠错电路251接收到的错误信息err将正常单元阵列231的行中的具有许多错误的行确定为需要修复行。例如,历史储存电路260可以将正常单元阵列的行中的其中错误数目大于或等于阈值的行确定为需要修复行。图中的fail_information可以表示关于历史储存电路260中存储的需要修复行的信息。

修复电路270可以将一部分正常单元阵列231替换为冗余单元阵列232的冗余区域。修复电路270可以包括修复控制电路271、电子熔丝电路273、寄存器电路275和比较电路277。

修复控制电路271可以控制整体修复操作。电子熔丝电路273可以存储缺陷地址。寄存器电路275可以接收电子熔丝电路273中存储的缺陷地址repair_add并且通过启动操作(boot-up)临时存储缺陷地址repair_add。比较电路277可以将寄存器电路275中存储的缺陷地址repair_add与从复用器221传送的行地址进行比较。当从复用器221传送的行地址与寄存器电路275中存储的缺陷地址repair_add不一致时,比较电路277可以去激活命中信号hit并且将从复用器221传送的行地址作为正常行地址norm_row_add来传送。在该情况下,行译码器241可以访问正常单元阵列231的行。当从复用器221传送的行地址与寄存器电路275中存储的缺陷地址repair_add中的一个一致时,比较电路277可以激活命中信号hit并且将冗余行地址redun_row_add传送到行译码器241。在该情况下,行译码器241可以访问冗余单元阵列232的行。

所述修复可以包括作为永久修复的硬修复以及作为临时修复的软修复。当在电子熔丝电路273中对缺陷地址编程时,可以永久修复缺陷地址。因此,这被称为硬修复。当缺陷地址仅被存储在寄存器电路275中时,可以仅在存储器120的电力保持时维持修复效果。因此,这被称为软修复。

图2示例性地示出了其中修复电路270将缺陷的正常行替换为冗余行的行修复操作。然而,本领域技术人员将认识到,可以执行其中修复电路270将缺陷的正常列替换为冗余列的列修复操作。

图3是描述在图1中所示的存储器系统100中执行的写入操作的实施方式的流程图。

参照图3,为了执行写入操作,首先在步骤s301中必须执行激活化操作。激活化操作可以通过从存储器控制器110向存储器120传送行地址add连同激活化命令cmd来开始。在激活化操作中,地址接收电路203接收到的行地址add_r可以通过复用器221传送到比较电路277。比较电路277可以基于行地址add_r和缺陷地址repair_add的比较结果将正常行地址norm_row_add或冗余行地址redun_row_add传送到行译码器241。可以选择行译码器241要访问的行,并且感测放大器阵列242可以感测和放大行译码器241选择的行的数据和纠错码。

在激活化操作之后,可以在步骤s303中从存储器控制器110向存储器120传送写入命令cmd、列地址add和写入数据data。命令cmd可以通过命令接收电路201被传送到命令译码器210。命令译码器210可以对命令cmd译码,以识别所传送的命令cmd是写入命令并且控制相关的构成元件。列地址add可以通过地址接收电路203和复用器223被传送到列译码器243。

数据传送/接收电路205接收到的写入数据data可被传送到纠错码生成电路253。在步骤s305中纠错码生成电路253可以基于写入数据data生成纠错码(ecc)。写入数据data的比特位的数目和纠错码ecc的比特位的数目可以根据本发明的实施方式而不同。在下文中,写入数据data是128比特并且纠错码ecc是8比特。

在步骤s307中,写入数据data'和纠错码ecc可以通过写入驱动器246和列译码器243传送到感测放大器阵列242,并且可被写入到所选择的存储单元中。这里,所选择的存储单元可以是单元阵列230中的与行译码器241选择的行和列译码器243选择的列对应的存储单元。

图4是描述在图1的存储器系统100中执行的读取操作的实施方式的流程图。

参照图4,为了执行读取操作,在步骤s401中首先必须执行激活化操作。在读取操作之前执行的激活化操作可以按照与在写入操作之前执行的激活化操作相同的方式执行。

在激活化操作之后,可以在步骤s403中从存储器控制器110向存储器120传送读取命令cmd和列地址add。命令译码器210可以对命令cmd译码,以识别所传送的命令cmd是读取命令并且控制相关的构成元件。列地址add可以通过地址接收电路203和复用器223被传送到列译码器243。

在步骤s405中,在由感测放大器阵列242感测和放大的数据和纠错码当中,由列译码器243选择的列的数据data'和纠错码ecc可以通过io感测放大器245传送到纠错电路251。

在步骤s407中,纠错电路251可以基于纠错码ecc纠正数据data'中的错误。具体地,纠错电路251可以基于纠错码ecc检测数据data'中的错误并且纠正数据data'中的检测到的错误。当数据data'是128比特并且纠错码ecc是8比特时,纠错电路251可以纠正数据data'中出现的1比特的错误。

结果,在步骤s409中,错误被纠错电路251纠正的数据data可以通过数据传送/接收电路205传送到存储器控制器110。

图5是描述在图1的存储器系统100中执行的纠错操作的实施方式的流程图。

纠错操作可以指读取存储单元的数据、纠正所述数据的错误并且随后将经纠错的数据写回到存储单元中的操作。纠错操作可以减少存储器120中积累的错误。该纠错操作还被称为清理操作。

参照图5,首先,在步骤s501中,存储器120可以确定执行纠错操作(即ecc操作)。纠错操作可以通过存储器控制器110向存储器120传送纠错命令cmd来执行。命令cmd可以通过命令接收电路201被传送到命令译码器210。命令译码器210可以对命令cmd译码,以识别命令cmd是纠错命令并且控制相关的构成元件。存储器自身可以确定执行纠错操作而与命令cmd无关,即与存储器控制器110无关。例如,存储器120可以定期执行纠错操作或者在闲置状态下执行纠错操作。

当确定执行纠错操作时,在步骤s503中,地址生成电路220可以生成内部地址ecc_add_row和ecc_add_col。内部地址可以包括内部行地址ecc_add_row和内部列地址ecc_add_col。当纠错操作被执行时,内部地址ecc_add_row和ecc_add_col可以改变。内部行地址ecc_add_row可以通过复用器221传送到比较电路277。比较电路277可以根据内部行地址ecc_add_row和缺陷地址repair_add的比较结果将正常行地址norm_row_add或冗余行地址redun_row_add传送到行译码器241。再者,内部列地址ecc_add_col可以通过复用器223被传送到列译码器243。

在步骤s505中可以执行基于内部行地址ecc_add_row的激活化操作。可以选择要被行译码器241访问的行。感测放大器阵列242可以感测和放大由行译码器241选择的行的数据和纠错码。

现在可以在步骤s507中执行基于内部列地址ecc_add_col的读取操作。在感测放大器阵列242感测和放大的数据和纠错码中,由列译码器243选择的列的数据data'和纠错码ecc可以通过io感测放大器245传送到纠错电路251。

在步骤s509中,纠错电路251可以基于纠错码ecc纠正数据data'中的错误。错误被纠错电路251纠正的数据data可以不是传送到存储器控制器110,而是可以传送到纠错码生成电路253。

在步骤s511中,纠错码生成电路253可以基于错误被纠错电路251纠正的数据data而生成纠错码ecc。

随后,在步骤s513中可以执行写入从纠错码生成电路253输出的数据data'和纠错码ecc的操作。数据data和纠错码ecc可以通过写入驱动器246和列译码器243传送到感测放大器阵列242,并且可被写入到存储单元中。换言之,可以读取存储单元的数据和纠错码,并且在纠正错误之后,数据和纠错码可被写回到相同的存储单元中。

纠错电路251的错误信息err可被传送到历史储存电路260。在步骤s515中历史储存电路260可以更新错误历史。

通过执行若干次纠错操作可以减少存储器120中积累的错误,并且历史储存电路260可以更新关于具有许多错误的行、即需要修复行的信息。

图6是描述在图1的存储器系统100中执行的修复操作的第一实施方式的流程图。这里,修复操作可以指修复历史储存电路260中存储的需要修复区域的操作。

参照图6,首先,在步骤s601中,存储器控制器110可以向存储器120传送修复命令cmd。命令cmd可以通过命令接收电路201传送到命令译码器210。命令译码器210可以对命令cmd译码,以识别命令cmd是修复命令并且控制相关的构成元件。

所有以下操作可以在没有存储器控制器110的控制的情况下由存储器120自身执行。在下文中,历史储存电路260中存储的需要修复区域是正常单元阵列231的第三正常行,并且要替换第三正常行的冗余区域是冗余单元阵列232的第一冗余行。

在步骤s603中,修复电路270和行译码器241可以激活需要修复正常行、即第三正常行。因此,感测放大器阵列242可以感测和放大第三正常行的数据和纠错码。

在步骤s603的激活化操作之后可以在步骤s605中执行读取操作。列译码器243选择的列的数据data'和纠错码ecc可以通过io感测放大电路245传送到纠错电路251。纠错电路251可以纠正数据data'的错误。这里,列译码器243可以使用地址生成电路220生成的内部列地址ecc_add_col。

在步骤s607中,激活化目标可以从需要修复正常行改变为冗余行、即第一冗余行。也就是说,修复电路270和行译码器241可以激活第一冗余行。因此,感测放大器阵列242可以感测和放大第一冗余行的数据和纠错码。

在步骤s607的激活化操作之后可以在步骤s609中执行写入操作。纠错码生成电路253可以接收在步骤s605中错误被纠错电路251纠正的数据data并且生成纠错码ecc。数据data'和纠错码ecc可以通过写入驱动器246和列译码器243传送到感测放大器阵列242,以被写入在与行译码器241选择的第一冗余行和列译码器243选择的列对应的存储单元中。

在步骤s611和s613中可以在改变列地址时重复操作步骤s603、s605、s607和s609直到正常行的所有列的数据被备份到冗余行中为止。通过在改变内部列地址ecc_add_col时重复地执行步骤s603、s605、s607和s609的操作可以将第三正常行的数据备份到第一冗余行。

在备份操作完成之后,在步骤s615中,修复电路270可以利用冗余行(即第一冗余行)修复需要修复正常行(即第三正常行)。这里,修复可以是软修复或硬修复。

在修复操作完成之后,存储器可以向存储器控制器通知修复操作完成(未示出)。

根据修复操作的第一实施方式,当存储器控制器110向存储器120施加修复命令时,存储器120可以将需要修复正常行的数据备份到冗余行中,并且随后利用冗余行替换(或修复)需要修复正常行。

图7是描述在图1的存储器系统100中执行的修复操作的第二实施方式的流程图。

参照图7,首先,在步骤s701中,存储器控制器110可以向存储器120传送请求在历史储存电路260中所存储的信息fail_information的命令cmd。命令cmd可以通过命令接收电路201传送到命令译码器210。命令译码器210可以对命令cmd译码,以确定请求历史储存电路260中存储的信息。

在步骤s703中,存储器120可以响应于步骤s701的请求通过数据传送/接收电路205向存储器控制器110传送历史储存电路260中存储的信息fail_information。因此,存储器控制器110能够确定存储器120中的需要修复的区域是第三正常行。

在步骤s705中,根据存储器控制器110的控制,作为第三正常行的需要修复区域中的数据可以被移动到存储器的另一区域(例如,第10正常行)。该操作可以通过由存储器控制器110重复地执行第三正常行的数据读取、将数据存储在存储器控制器110的临时存储器119中、以及将临时存储器119中存储的数据写入到第10正常行中来执行。换言之,步骤s705的操作可以通过重复地执行通常的读取操作和通常的写入操作来执行。

在步骤s707中,存储器控制器110可以将修复命令cmd施加到存储器120。可以看到,命令cmd通过命令接收电路201传送到命令译码器210并且命令译码器210对命令cmd译码,以确认请求修复。

在步骤s709中,响应于修复命令,存储器120可以利用冗余区域(例如,第一冗余行)修复需要修复正常区域(例如,第三正常行)。在修复操作之后,可以访问第一冗余行而非第三正常行。

在步骤s711中,可以在存储器控制器110的控制下将移动到另一区域(例如,第10正常行)的数据移动到冗余区域。该操作可以通过存储器控制器110重复地执行第10正常行的数据读取、将数据存储在存储器控制器110的临时存储器119中、以及将临时存储器119中存储的数据写入到第一冗余行中来执行。换言之,步骤s711的操作可以通过重复地执行通常的读取操作和通常的写入操作来执行。

根据本发明的第二实施方式,首先,可以在存储器控制器110的控制下将需要修复正常区域(例如,第三正常行)的数据移动到另一正常区域(例如,第10正常行)。再者,可以在存储器控制器110的控制下利用冗余区域(例如,第一冗余行)来修复需要修复正常区域(例如,第三正常行)。因此,可以在存储器控制器110的控制下将移动到另一正常区域(例如,第10正常行)的数据移动到冗余区域(例如,第一冗余行)。从而,可以利用冗余区域(例如,第一冗余行)来修复正常区域(例如,第三正常行),并且正常区域(例如,第三正常行)的数据可以备份到冗余区域(例如,第一冗余行)中。

图8是描述在图1的存储器系统100中执行的修复操作的第三实施方式的流程图。在本发明的第三实施方式中,步骤s801、s803和s805的操作可被添加到如图7中所示的本发明的第二实施方式的操作。

参照图8,在步骤s801中,存储器控制器110的控制块113可以基于在步骤s703中传送的信息确定是否有必要备份在需要修复区域(例如,第三正常行)中所存储的数据。也就是说,可以确定在第三正常行中所存储的数据是否是未来操作所需的数据。

当确定需要备份在需要修复区域中所存储的数据(步骤s801中的判定为“是”)时,可以执行步骤s705、s707、s709和s711的操作。

当确定不需要备份在需要修复区域中所存储的数据(步骤s801中的判定为“否”)时,在步骤s803中,存储器控制器110可以向存储器120施加修复命令cmd。命令cmd可以通过命令接收电路201传送到命令译码器210,并且命令译码器210可以对命令cmd译码,以确认请求修复。

步骤s805中,响应于修复命令,存储器120可以利用冗余区域(例如,第一冗余行)修复需要修复正常区域(例如,第三正常行)。

根据本发明的第三实施方式,当不需要在需要修复区域中所存储的数据时,可以省略备份操作并且可以仅执行修复操作。

图9是描述在图1的存储器系统100中执行的修复操作的第四实施方式的流程图。

参照图9,首先,在步骤s901中,存储器控制器110可以向存储器120传送请求历史储存电路260中存储的信息fail_information的命令cmd。命令cmd可以通过命令接收电路201传送到命令译码器210。命令译码器210可以对命令cmd译码,以确认请求历史储存电路260中存储的信息。

在步骤s903中,存储器120可以响应于步骤s901的请求通过数据传送/接收电路205向存储器控制器110传送历史储存电路260中存储的信息fail_information。因此,存储器控制器110可以确认存储器120中的需要修复区域是第三正常行。

存储器控制器110可以向存储器120传送激活化命令和读取命令以读取需要修复区域中的数据。响应于激活化命令和读取命令,在步骤s905中可以在存储器120中执行激活化操作和读取操作。因此,需要修复区域(即第三正常行)中的数据可以从存储器120传送到存储器控制器110。从存储器120传送到存储器控制器110的数据可以存储在存储器控制器110的临时存储器119中。

存储器控制器110可以向存储器120传送用于修复需要修复区域的修复命令。在步骤s907中,响应于修复命令,可以修复存储器120。也就是说,可以利用第一冗余行替换存储器120的第三正常行。该操作可以允许访问第一冗余行并且不允许访问第三正常行。

为了存储器控制器110将在步骤s905中读取的数据写入到冗余区域中,在步骤s909中,可以向存储器120传送激活化命令和写入命令,并且可以在存储器120中执行激活化操作和写入操作。因此,在步骤s905中读取的数据可被写入到冗余区域(即第一冗余行)中。

存储器控制器110可以向存储器120传送修复取消命令。在步骤s911中,响应于修复取消命令,可以取消存储器120的修复。这里,修复取消命令可以是用于在当前修复操作之前就取消修复操作的命令。修复取消命令可以取消存储器120中的先前修复操作。因此,可以取消利用第一冗余行替换第三正常行,由此可以再次访问第三正常行并且不可以访问第一冗余行。

为了存储器控制器110读取需要修复区域中的数据,可以向存储器120传送激活化命令和读取命令。响应于激活化命令和读取命令,在步骤s913中可以在存储器120中执行激活化操作和读取操作。因此,需要修复区域(即第三正常行)中的数据可以从存储器120传送到存储器控制器110。从存储器120传送到存储器控制器110的数据可以存储在存储器控制器110的临时存储器119中。在步骤s913中读取的数据可以是不同于在步骤s905中读取的数据的其他列中的数据。

在步骤s915中,存储器控制器110可以向存储器120传送重新修复命令,并且存储器120可以被重新修复。这里,重新修复命令可以是用于再次执行先前修复操作的命令。可以响应于修复命令再次执行存储器120的先前修复操作。也就是说,第三正常行可被再次替换为第一冗余行。该操作可以允许访问第一冗余行、并且不允许访问第三正常行。

为了存储器控制器110将在步骤s913中读取的数据写入到冗余区域中,在步骤s917中,可以向存储器120传送激活化命令和写入命令,并且可以在存储器120中执行激活化操作和写入操作。因此,在步骤s913中读取的数据可被写入到冗余区域(即第一冗余行)中。

在步骤s919和s921中可以通过改变列地址来重复执行步骤s911、s913、s915和s917的操作直到正常行的所有列的数据被备份到冗余行中为止。通过在改变列地址时重复地执行步骤s911、s913、s915和s917的操作可以将第三正常行的数据备份到第一冗余行中。

当所有列的写入操作完成(步骤s919中的判定为“是”)时,修复操作可以结束。结果,需要修复区域(例如,第三正常行)的所有数据备份到冗余区域(例如,第一冗余行)中,并且可以利用冗余区域(例如,第一冗余行)替换需要修复区域(例如,第三正常行)。

根据修复操作的第四实施方式,在存储器控制器110的控制下可以修复存储器120并且随后可以取消存储器120的修复,并且需要修复区域(例如,第三正常行)的所有数据可以通过存储器控制器110备份到冗余区域(例如,第一冗余行)中,并且可以利用冗余区域(例如,第一冗余行)替换需要修复区域(例如,第三正常行)。

根据本发明的实施方式,提供了一种用于减少存储器和存储器系统中的错误的技术。

尽管针对具体实施方式描述了本发明,但是本领域技术人员将认识到,在不偏离如所附权利要求中限定的本发明的精神和范围的情况下可以进行各种修改和变更。

再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜