存储系统及其操作方法与流程

文档序号:15938324发布日期:2018-11-14 02:45阅读:134来源:国知局

本申请要求2017年5月2日提交的申请号为10-2017-0056084的韩国专利申请的优先权,其公开内容通过引用整体合并于此。

本公开的示例性实施例涉及一种包括存储器件和用于控制存储器件的存储器控制器的存储系统。

背景技术

最近,研究人员和业界正集中开发用于替代动态随机存取存储器(dram)和快闪存储器的下一代存储器件。下一代存储器件之一是使用可变电阻材料的电阻式存储器件,该可变电阻材料即为由于电阻根据施加于其上的偏压而急剧变化,因此能够在至少两种不同的电阻状态之间切换的材料。电阻式存储器件的非限制性示例包括相变随机存取存储(pcram)器件、电阻式随机存取存储(rram)器件、磁性随机存取存储(mram)器件和铁电式随机存取存储(fram)器件。

典型的电阻式存储器件可以具有利用交叉点阵列结构的存储单元阵列,该交叉点阵列结构具有彼此交叉的多个下电极(例如,多个行线(或字线))和多个上电极(例如,多个列线(或位线))以及设置在交叉点处的存储单元。每个存储单元可以包括串联耦接的可变电阻器件和选择器件。

尽管电阻式存储器件被开发为非易失性存储器件,但是在数据被写入到存储单元之后,可能会发生电阻值随着时间推移而变化的漂移现象,从而导致数据的丢失。因此,期望开发一种解决限制性存储器件中数据丢失的解决方案。



技术实现要素:

本发明的实施例涉及一种包括至少一个存储器件的存储系统,该存储系统可以有效地防止存储器件的存储单元的数据丢失。存储器件可以是电阻式存储器件。

根据本发明的一个实施例,一种用于操作存储系统的方法包括:从存储器件中读取数据;检测和校正数据的错误;当数据的错误等于或大于阈值时,将与存储器件中从其读取数据的存储单元相对应的地址确定为需要重写的地址;以及重写与需要重写的地址相对应的存储单元的数据。

可以根据来自主机的请求来执行数据的读取、数据的错误的检测和校正以及与存储单元相对应的地址的确定。

重写存储单元的数据的步骤可以包括:读取与需要重写的地址相对应的存储单元的数据;检测和校正读取的数据的错误以便产生已纠错数据;以及将已纠错数据写入到与需要重写的地址相对应的存储单元中。

重写存储单元的数据的步骤可以包括:当不可能校正读取数据的错误时,重复改变存储器件中使用的读取电压的电压电平,并且执行读取与需要重写的地址相对应的存储单元的数据的操作。

当数据的错误等于或大于阈值时,可以在改变从其读取数据的存储单元的同时周期性地执行数据的读取、数据的错误的检测和校正以及与存储单元相对应的地址的确定。

存储器件可以包括多个存储单元,并且多个存储单元中的每个存储单元可以包括电阻式存储元件和选择元件。

电阻式存储元件可以是相变存储器件。

根据本发明的另一实施例,一种存储系统包括:存储器件,其包括多个存储单元;以及存储器控制器,其适用于从存储器件中读取数据,并且当数据的错误等于或大于阈值时,将与从其读取数据的存储单元相对应的地址确定为需要重写的地址。

存储器控制器可以重写与需要重写的地址相对应的存储单元的数据。

存储器控制器可以响应于来自主机的读取操作请求而从存储器件中读取数据,以及当数据的错误等于或大于阈值时,存储器控制器可以执行将与从其读取数据的存储单元相对应的地址确定为需要重写的地址的操作。

存储器控制器可以从存储器件中读取数据,以及当数据的错误等于或大于阈值时,存储器控制器可以在改变从其读取数据的存储单元的同时周期性地执行将与从其读取数据的存储单元相对应的地址确定为需要重写的地址的操作。

在重写操作期间,存储器控制器可以从存储器件的与需要重写的地址相对应的存储单元中读取数据,检测和校正数据的错误以便产生已纠错数据,并且将已纠错数据写入到存储器件的与需要重写的地址相对应的存储单元中。

在重写操作期间,当不可能校正读取数据的错误时,存储器控制器可以在改变存储器件中使用的读取电压的电压电平的同时周期性地执行从与需要重写的地址相对应的存储单元中读取数据的操作,直到读取数据的错误变得可校正为止。

存储器控制器可以包括:纠错电路,其适用于检测和校正从存储器件中读取的数据的错误,以便产生已纠错数据;需要重写的地址储存电路,其适用于储存需要重写的地址;以及重写电路,其适用于重写与需要重写的地址相对应的存储单元的数据。

存储器控制器可以包括:主机接口,其适用于与主机通信;调度器,其适用于确定主机的请求的处理顺序;命令发生器,其适用于产生要施加到存储器件的命令;存储器接口,其适用于与存储器件通信;以及读取重试电路,其适用于控制存储器件的读取重试操作。

多个存储单元中的每个存储单元可以包括:电阻式存储元件;以及选择元件。

电阻式存储元件可以是相变存储器件。

附图说明

图1示出了电阻式存储器件的示例性电阻式存储单元。

图2是示出电阻式存储单元的示例性i-v曲线的曲线图。

图3a和图3b是示出电阻式存储器件的存储单元的阈值电压分布的曲线图。

图4是示出根据本公开的一个实施例的存储系统的框图。

图5是示出根据本公开的一个实施例的在存储系统中需要重写操作的存储单元上的信息收集操作的流程图。

图6是示出根据本公开的另一个实施例的在存储系统中需要重写操作的存储单元上的信息收集操作的流程图。

图7是示出根据本公开的一个实施例的存储系统中的重写操作的流程图。

具体实施方式

下面将参照附图来更详细地描述本发明的示例性实施例。然而,本发明可以采用不同的形式来实施,并且不应被解释为限于本文所阐述的实施例。相反,提供这些实施例使得本公开将是彻底和完整的,并且将向本领域技术人员充分地传达本发明的范围。贯穿本公开,在本发明的各个附图和实施例中,相同的附图标记表示相同的部件。

图1示出了电阻式存储器件的电阻式存储单元100。图2是示出电阻式存储单元(例如,图1的电阻式存储单元100)的i-v曲线的曲线图。

参考图1,电阻式存储单元100可以包括电阻式存储元件m和选择元件s。

电阻式存储元件m可以基于储存在其中的数据而处于低电阻状态(其是设置状态set)或高电阻状态(其是复位状态reset)。例如,电阻式存储元件m可以是相变存储器件,其中当电阻式存储元件m处于晶态时,电阻式存储元件m的电阻值可以为低,而当电阻式存储元件m处于非晶态时,电阻式存储元件m的电阻值可以为高。

当选择元件s关断时,少量电流流过,以及然后当流经存储单元的电流量超过阈值ith时,选择元件s导通,从而与选择元件s导通之前流过的电流量相比,使更多的电流流过。选择元件s可以经历在选择元件s导通之后电阻式存储单元100的两端处的电压电平急剧下降的转折现象。选择元件s可以是双向阈值开关(ots)。

图2示出了流经电阻式存储单元的电流,例如基于施加到电阻式存储单元100的两端的电压而流经图1的电阻式存储单元100的电流。无论电阻式存储单元100处于高电阻状态reset还是电阻式存储单元100处于低电阻状态set,随着施加到两端的电压的电压电平变得更高,流经电阻式存储单元100的电流量增大。在相同的电压电平下,与在具有高电阻状态reset的电阻式存储单元100中相比,更多的电流可以在具有低电阻状态set的电阻式存储单元100中流过。

当处于低电阻状态set的电阻式存储单元100的两端的电压达到低电阻状态的阈值set_vth时,换言之,当流经处于低电阻状态set的电阻式存储单元100的电流量达到阈值ith时,处于低电阻状态set的电阻式存储单元100的选择元件s可以导通,并且可以发生电阻式存储单元100的两端处的电压电平急剧下降而流经电阻式存储单元100的电流量急剧增大的转折现象。

当处于高电阻状态reset的电阻式存储单元100的两端处的电压达到高电阻状态的阈值reset_vth时,换言之,当流经处于高电阻状态reset的电阻式存储单元100的电流量达到阈值ith时,处于高电阻状态reset的电阻式存储单元100的选择元件s可以导通,并且可以发生电阻式存储单元100的两端处的电压电平急剧下降而流经电阻式存储单元100的电流量急剧增大的转折现象。

可以通过使用转折现象来读取储存在电阻式存储单元100中的数据。当比低电阻状态的阈值set_vth大且比高电阻状态的阈值reset_vth小的读取电压v_read被施加到电阻式存储单元100的两端时并且当电阻式存储单元100处于低电阻时,电阻式存储单元100中发生转折现象,并且大量的电流流经电阻式存储单元100。当比低电阻状态的阈值set_vth大且比高电阻状态的阈值reset_vth小的读取电压v_read被施加到电阻式存储单元100的两端时并且电阻式存储单元100处于高电阻时,电阻式存储单元100中不会发生转折现象,并且因此少量的电流可以流经电阻式存储单元100。因此,可以通过将上述的读取电压v_read施加到电阻式存储单元100的两端并且感测流经电阻式存储单元100的电流量来判断电阻式存储单元100是处于低电阻状态还是处于高电阻状态。

可以通过将写入电流施加到电阻式存储单元100并且使电阻式存储单元100的电阻式存储元件m进入到熔化状态来写入(或编程)电阻式存储单元100的数据。当写入电流在电阻式存储单元100的电阻式存储元件m进入到熔化状态之后逐渐减小时,电阻式存储元件m的状态变成晶态,并且因此电阻式存储元件m的状态可以变成低电阻状态。当写入电流在电阻式存储单元100的电阻式存储元件m进入到熔化状态之后迅速减小时,电阻式存储器件m的状态变为非晶态,并且因此电阻式存储元件m的状态可以变成高电阻状态。

电阻式存储单元100的电阻式存储元件m的电阻值可以随着时间推移而由于漂移现象来改变。此外,已经观察到,选择元件s的电阻值可以随着时间推移而由于漂移现象来改变。简言之,储存在电阻式存储单元100中的数据可能会由于漂移现象而丢失。

图3a和图3b是示出电阻式存储器件的存储单元的阈值电压分布的曲线图。图3a示出了在写入数据之后的存储单元的阈值电压vth分布。x轴表示阈值电压vth,而y轴表示存储单元的数量#。当存储单元的阈值电压vth分布如图3a中所示时,处于设置状态set的存储单元和处于复位状态reset的存储单元可以基于读取电压v_read来彼此区分。

图3b示出了图3a中的阈值电压分布由于在存储单元中发生的漂移现象而在经过预定时间时发生的变化。在图3b中可以看出,处于设置状态set的存储单元和处于复位状态reset的存储单元的所有阈值电压值都增大并向右漂移。当发生漂移现象时,处于设置状态set的存储单元和处于复位状态reset的存储单元必须基于更大的读取电压v_read'来彼此区分。尽管漂移值具有随着时间推移而增大的趋势,但漂移值并不一致。因此,难以适当地控制读取电压v_read'的值,并且当漂移发生得太多时,储存在存储单元中的数据可能丢失。

图4是示出根据本公开的一个实施例的存储系统400的框图。

参考图4,存储系统400可以包括存储器控制器410和存储器件420。

存储器控制器410可以根据从主机接收请求来控制存储器件420的操作。主机可以是中央处理单元(cpu)、图形处理单元(gpu)或应用处理器(ap)。存储器控制器410可以包括主机接口411、调度器412、命令发生器413、纠错电路414、需要重写的地址储存电路415、重写电路416、读取重试电路417和存储器接口418。

主机接口411可以是存储器控制器410与主机之间的接口。可以通过主机接口411接收主机的请求,并且可以通过主机接口411将请求的处理结果传送给主机。

调度器412可以确定从主机接收到的请求之中涉及存储器件420的请求的顺序。调度器412可以不同于从主机接收到的请求的顺序来确定涉及存储器件420的请求的顺序,以增强存储器件420的性能。例如,虽然主机首先请求存储器件420的读取操作以及然后请求存储器件420的写入操作,但是调度器412可以控制请求的顺序以在读取操作之前执行写入操作。

命令发生器413可以根据由调度器412确定的操作的顺序来产生要施加到存储器件420的命令。

在写入操作期间,纠错电路414可以基于写入数据来产生纠错码(ecc)。在纠错电路414中产生的纠错码可以与写入数据一起被储存在存储器件420中。纠错电路414可以基于纠错码而在读取操作期间检测和校正读取数据的错误。由纠错电路414检测的错误比特位的数量可以比可校正的错误比特位的数量大。例如,纠错电路414可以能够校正一次读取的读取数据(例如,一页的读取数据)之中的m个比特位的错误(其中m是等于或大于1的整数),而检测m+1个比特位的错误。简言之,纠错电路414可以能够校正m个比特位的错误,而检测m+1个比特位的错误。

需要重写的地址储存电路415可以将与存储器件420中需要重写操作的存储单元相对应的地址储存为需要重写的地址。在读取操作期间,与由纠错电路414从其检测到阈值的错误或更大的错误的存储单元相对应的地址可以被储存在需要重写的地址储存电路415中作为需要重写的地址。

重写电路416可以对与储存在需要重写的地址储存电路415中的需要重写的地址相对应的存储单元执行重写操作。可以保护被执行重写操作的存储单元以防丢失数据。将在后面参考图5至图7详细描述重写操作和重写电路416。

读取重试电路417可以是用于控制当从存储器件420读取的数据的错误未被纠错电路414校正时执行的读取重试操作的电路。读取重试操作是再次重复读取操作的操作,并且读取重试操作可以包括改变用于存储器件420的读取操作的读取电压的电压电平。

存储器接口418提供存储器控制器410与存储器件420之间的接口。可以通过存储器接口418将命令cmd和地址add从存储器控制器410传送到存储器件420,并且可以通过存储器接口418而在存储器控制器410与存储器件420之间传送和接收数据。存储器接口418也可以被称为物理phy接口。

存储器件420可以在存储器控制器410的控制下执行读取操作和/或写入操作。在存储器件420中使用的读取电压vread的电压电平可以由存储器控制器410设置。存储器件420可以包括单元阵列421、读取/写入电路422、读取电压发生电路423和控制电路424。存储器件420可以是上面参考图1至图3描述的电阻式存储器件,但本发明的概念和精神不限于此,并且存储器件420可以是另一种类型的存储器件。

单元阵列421可以包括多个存储单元。读取/写入电路422可以将数据写入到单元阵列421的存储单元之中基于地址add选中的存储单元中,或者从单元阵列421的存储单元之中基于地址add选中的存储单元中读取数据。读取/写入电路422可以在写入操作期间从存储器控制器410接收要写入的数据,并且在读取操作期间将读取数据传送到存储器控制器410。读取电压发生电路423可以产生要用于读取操作的读取电压vread。由读取电压发生电路423产生的读取电压vread的电压电平可以由存储器控制器410来设置。控制电路424可以控制单元阵列421、读取/写入电路422和读取电压发生电路423以执行由从存储器控制器410接收到的命令cmd指示的读取操作、写入操作和/或设置操作。

图5是示出根据本公开的一个实施例的在存储系统(例如,图4的存储系统400)中需要重写操作的存储单元上的信息收集操作的流程图。

参考图5,首先,在步骤s501中,针对读取操作的读取请求可以从主机被传送到存储器控制器410。读取请求可以包括指定或指示存储器件420中要被执行读取操作的存储单元的地址信息。地址信息可以是根据公知的方案能够被控制器410转换为存储器件420的物理地址的逻辑地址。

在步骤s502中,存储器控制器410可以响应于步骤s501中的读取请求来将针对读取操作的命令cmd和指定要被执行读取操作的存储单元的地址add施加到存储器件420,并且从存储器件420读取的数据可以被传送到存储器控制器410。该数据可以包括正常数据和纠错码(ecc)。

在步骤s503中,存储器控制器410的纠错电路414可以检测和校正在步骤s502中读取的数据的错误。在步骤s504中,存储器控制器410可以将其错误在步骤s503中得到校正的数据传送到主机。

在步骤s505中,存储器控制器410可以将在步骤s503中检测到的错误与阈值进行比较。当在步骤s503中检测到的错误等于或大于阈值时(步骤s505中为“是”),可以确定数据很可能会丢失,以及与在步骤s502中从其读取数据的存储单元相对应的地址可以被确定为需要重写的地址并且在步骤s506中被储存在需要重写的地址储存电路415中。本文中,阈值可以被设置为小于m,m是可以由纠错电路414纠错的比特位数。例如,当可以由纠错电路414纠错的比特位的数量是8比特位时,阈值可以被设置为6比特位。这意味着发生了6比特位错误,并且纠错电路414可以能够校正高达8比特位的错误。这表示未来可能发生的错误与未由纠错电路414纠错的错误一样多。换言之,数据丢失的可能性很高。

每当根据主机的请求执行读取操作时都可以执行上面参考图5描述的收集需要重写的地址的操作。因此,图5的需要重写的地址收集操作可以是有利的,因为可以在不劣化存储系统400的性能的同时最小化用于收集需要重写的地址的额外操作。然而,由于仅被执行读取操作的存储单元经历了需要重写的地址收集操作,因此可以排除长时间未被执行读取操作的存储单元。

图6是示出根据本公开的另一个实施例的在存储系统(例如,图4的存储系统400)中需要重写操作的存储单元上的信息收集操作的流程图。

参考图6,首先,在步骤s601中,可以由重写电路416请求读取操作。在图5中,根据主机的请求开始读取操作。然而,在图6中,根据重写电路416的请求开始读取操作。可以周期性地执行步骤s601中的重写电路416的读取操作请求,并且每当请求读取操作时都可以改变指定或指示要被执行读取操作的存储单元的地址。在一些实施例中,每当经过预定时间时,或者每当以预定次数执行写入操作时,都可以确定重写电路416的读取操作请求的周期。

在步骤s602中,存储器控制器410可以响应于步骤s601中的读取操作请求来将针对读取操作的命令cmd和指定要被执行读取操作的存储单元的地址add施加到存储器件420,并且从存储器件420读取的数据可以被传送到存储器控制器410。该数据可以包括正常数据和纠错码(ecc)。

在步骤s603中,存储器控制器410的纠错电路414可以检测和校正在步骤s602中读取的数据的错误。执行图6的读取操作以收集关于需要重写操作的存储单元的信息,并且根据主机的请求不执行图6的读取操作。因此,在图6中,没有读取数据像在图5中那样被传送到主机。

在步骤s604中,存储器控制器410可以将在步骤s603中检测到的错误与阈值进行比较。当在步骤s603中检测到的错误等于或大于阈值时(在步骤s604中为“是”),可以确定数据很可能会丢失,并且与在步骤s602中从其读取数据的存储单元相对应的地址可以被确定为需要重写的地址并且在步骤s605中被储存在需要重写的地址储存电路415中。

可以根据重写电路416的请求周期性地执行上面参考图6描述的收集需要重写的地址的操作。因此,可能需要执行额外操作(可能需要额外时间)来收集需要重写的地址。然而,由于在改变地址的同时周期性地执行需要重写的地址收集操作,因此需要重写的地址收集操作可能受到存储器件420的所有存储单元的影响。

为了收集存储系统400中的需要重写的地址,可以使用图5或图6的方法。而且,可以使用图5的方法和图6的方法两者。

图7是示出根据本公开的一个实施例的存储系统(例如,图4的存储系统400)中的重写操作的流程图。

参考图7,首先,在步骤s701中,重写电路416可以请求针对与储存在需要重写的地址储存电路415中的需要重写的地址相对应的存储单元的读取操作。可以以预定的周期执行步骤s701中的重写电路416的读取操作请求。在一些实施例中,可以在每当经过预定时间时或者每当以预定次数执行写入操作时确定该周期。当不存在储存在需要重写的地址储存电路415中的需要重写的地址时,可以不执行步骤s701的操作。

响应于步骤s701中的请求,存储器控制器410可以响应于步骤s701中的读取操作请求而将针对读取操作的命令cmd和地址add施加到存储器件420,并且在步骤s702中从存储器件420读取的数据可以被传送到存储器控制器410。在一些实施例中,从存储器控制器410施加到存储器件420的地址add可以是需要重写的地址。数据可以包括正常数据和纠错码(ecc)。

在步骤s703中,存储器控制器410的纠错电路414可以检测和校正在步骤s702中读取的数据的错误。

在步骤s704中,存储器控制器410可以确定步骤s703中的错误是否是可校正的。当在步骤s703中不能校正错误时(在步骤s704中为“否”),例如,当读取数据的错误包括比可纠错比特位m大的m+1个比特位时,可以在步骤s705中执行读取重试操作。可以在读取重试电路417的控制下执行读取重试操作。读取重试电路417可以改变在存储器件420的读取电压发生电路423中产生的读取电压vread的电压电平,然后控制存储器件420再次执行读取操作。重复步骤s705、步骤s703和步骤s704的操作,直到错误是可校正的。

当在步骤s703中能够校正错误时(即,在步骤s704中为“是”),例如,当读取数据的错误比特位数等于或小于可纠错比特位m时,在步骤s706中,重写电路416可以请求存储器件420执行将在步骤s703中获得的已纠错数据写入到与需要重写的地址相对应的存储单元的写入操作。

响应于步骤s706中的请求,纠错电路414可以基于在步骤s703中获得的已纠错数据而在步骤s707中产生新的纠错码(ecc)。

然后,存储器控制器410可以将针对写入操作的命令cmd、与步骤s702中的地址相同的地址add、在步骤s703中获得的已纠错数据以及在步骤s706中产生的纠错码(ecc)施加到存储器件420。以这种方式,在步骤s708中,可以将数据重写到与存储器件420的需要重写的地址相对应的存储单元中。

在步骤s708之后,可以从需要重写的地址储存电路415中擦除用于步骤s708中的重写操作的需要重写的地址。

通过图7中描述的方法,可以执行针对与需要重写的地址(由图5的方法和/或图6的方法收集)相对应的存储单元的重写操作,并且可以防止数据的丢失。

根据本公开的实施例,可以有效地防止存储单元的数据丢失。

虽然已经关于具体实施例描述了本发明,但是对于本领域技术人员来说明显的是,在不脱离如所附权利要求限定的本发明的精神和范围的情况下,可以进行各种改变和修改。

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