具有存储设备的温度传感器的使用的制作方法

文档序号:6739126阅读:250来源:国知局
专利名称:具有存储设备的温度传感器的使用的制作方法
具有存储设备的温度传感器的使用
背景技术
本文涉及使用温度信息完成存储器操作。诸如闪存(例如NAND闪存,NOR闪存)的各种类型的非易失性存储器(NVM)可以用于大容量存储设备。例如,消费类电子产品(例如,便携式媒体播放器)使用闪存来存储数据,这些数据包括音乐、视频、图像以及其它媒体或信息类型。已经与各种系统(例如,膝上型计算机系统)一起使用温度传感器,以识别存在于这种系统中可能对系统组件(如处理器)产生损害的温度条件。例如,温度传感器已经被置于处理器中或处理器周围,用于识别可能对处理器造成损害的温度条件和/或控制冷却系统(例如,风扇)或系统操作(例如,处理器速度或活动水平)。

发明内容
本文总体上描述涉及使用与NVM有关的温度信息完成存储器操作的技术。与NVM有关的温度信息包括来自位于NVM中和NVM周围(例如,嵌入到NVM管芯上)的温度传感器的温度测量结果和/或来自与存储设备(例如,存储器控制器,环境温度传感器)的其它组件有关的其它温度传感器的温度测量结果。温度信息可用于存储设备完成存储器操作的各种方式。例如,在将数据编程到NVM中的时候,可保存表示NVM温度的信息并随后将其用于选择供读取已编程数据的合适的技术。例如,温度信息可用于调节用于从NVM读取数据的一个或多个电压阈值。在另一示例中,温度信息可用于对如何存储数据进行调节,诸如冗余地向多个存储器单元写入数据,而不是向单个存储器单元冗余地写入数据。下面公开了涉及使用具有存储器操作的温度信息的各种其它特征。在一种实现方式中,完成存储器操作的方法包括在存储设备中接收从一个或多个非易失性存储器单元读取数据的请求;以及获取与非易失性存储器单元有关的所存储的温度信息,其中温度信息与将数据写入非易失性存储器单元的近似时刻的温度相关联。该方法可以进一步包括由存储设备从非易失性存储器单元读取数据。该方法还可以包括至少基于已获取的温度信息处理已读取的数据;以及提供已处理的数据。在另一实现方式中,完成存储器操作的方法包括在存储设备中接收将数据写入一个或多个非易失性存储器单元的请求;以及由存储设备从一个或多个温度传感器获取温度信息,该温度信息表示与非易失性存储器单元有关的当前温度。该方法还可以包括基于温度信息确定对写操作进行的调节。该方法还可以包括使用已确定的基于温度信息对写操作的调节而将数据写入非易失性存储器单元。在另一实现方式中,一种存储设备包括一个或多个非易失性存储器单元和一个或多个温度传感器,该温度传感器被配置为提供与非易失性存储器单元有关的温度测量结果。该设备还可以包括控制器,该控制器被配置为在非易失性存储器单元上完成存储器操作,其中基于温度传感器提供的温度测量结果来调节存储器操作。在另一实现方式中,一种系统包括一个或多个非易失性存储器单元和一个或多个温度传感器,该温度传感器被配置为提供与非易失性存储器单元有关的温度测量结果。该系统还可以包括控制器,该控制器被配置为在非易失性存储器单元上完成存储器操作,其中基于温度传感器提供的温度测量结果来调节存储器操作。可以实现在本说明书中所描述主题的特殊实施例,从而获取一个或多个下面的有益效果。尽管NVM的温度是变化的,在NVM中所保存数据的完整性能够得到保持。在另一示例中,可以通过使用位于NVM中和NVM周围的温度传感器更准确地确定NVM的温度。在另一个例子中,基于NVM内的当前温度条件可以修改存储器操作(例如,切换到冗余地对数据进行编程),从而增加在NVM中所保存的数据的完整性。在下面的附图和说明书中示出了一个或多个实施例的细节。根据说明书、附图以及权利要求书,本发明的其它特征、目的以及优势将更加明显。


图I是描述包括主机控制器和NVM组的示例性系统的框图,该NVM组被配置为使用温度信息来完成存储器操作。图2是描述包括存储设备的示例性系统的框图,该存储设备被配置为使用温度信息来完成存储器操作。图3A-B分别描述了在单级单元模式和多级单元模式中用于存储器单元的单元电压和数字数据值之间的示例性映射。图4是描述示例性存储器温度特性的曲线图。图5是描述示例性处理的流程图,该示例性处理基于温度信息从存储设备读取数据。图6是描述示例性处理的流程图,该示例性处理基于温度信息向存储设备写入数据。在各种附图中同样的参考符号表不同样的兀件。
具体实施例方式可以使用与NVM有关的温度信息完成存储器操作。温度信息可以表示NVM的温度。NVM的温度信息可用于调节在NVM上进行的存储器操作。可以从位于存储设备周围的温度传感器获得温度信息,该温度传感器包括位于NVM中或NVM周围(例如,位于NAND闪存管芯上)的温度传感器。在NVM中所保存数据的完整性受到NVM温度的影响。例如,随着NVM温度的增加从NVM中所读取数据的准确度可能会降低。例如,当NVM的温度改变时,在存储器单元中已存储的电压可能向上漂移或向下漂移。在将NVM已存储的电压变换为(对应于已存储电压的不同范围的)多个数字数据值时可能会成为一个问题。例如,“单级单元(single-levelcell)” (SLC)存储数据的单个位,其中第一电压范围对应于数据值‘1’,第二电压范围对应于数据值‘O’。如果由于NVM的温度变化,已存储的电压从第一范围漂移到第二范围,那么来自存储器单元的数据值可能会被错读为‘0’,而不是‘I’。为了解决这些问题和其他问题,NVM的温度信息可以被获取、存储并用于调节存储器操作。NVM的温度信息可以利用位于整个存储设备的各种温度传感器获得,这些温度传感器包括位于NVM自身中和NVM自身周围(例如,位于NVM管芯上)的温度传感器。对于位于NVM外部的温度传感器(例如,位于存储器控制器中的温度传感器),温度特性可被用来根据来自NVM外部的这种温度传感器的测量结果推断NVM的温度。温度特性映射来自在存储设备中和/或存储设备外部的一个或多个温度传感器(例如在存储器控制器中的温度传感器)的温度测量结果与存储设备的其它部件(例如NVM)的近似温度之间的关系。可以在对NVM编程时获取NVM的温度信息并将其用于调节编程操作。例如,在编程时或编程时间附近的存储器单元的温度信息可被用于调节编程操作的电压阈值,可以冗余地将数据写入多个存储器单元,和/或可以将存储器单元从SLC模式变化为“多级单元”(MLC)模式(在存储器单元中存储的数据的多个位),或者反之亦然。在编程时或编程时间附近,NVM的温度信息可以被存储并随后用于进行对NVM单元的读取操作。例如,响应于接收从NVM读取数据的命令,在对所请求的数据被编程期间可以获取NVM的温度并与NVM的当前温度进行比较。这种比较可用于为NVM估计电压漂移,如果适当,这种比较可用于调节用于读取并解析保存在NVM中的数据值的电压阈值。这些 技术和其他技术可用于为NVM提供各种改进,例如改进NVM的数据完整性。图I是描述包括主机控制器102和NVM组104的示例性系统100的框图,NVM组104被配置为使用温度信息来执行存储器操作。例如,以适应于影响数据完整性的温度变化的方式,NVM组104可以使用表示NVM温度的温度信息将数据编程到NVM并从NVM读取数据。主机控制器102和/或NVM组104可以被包括在各种主机设备和/或系统(“主机”)的任何一种中,例如便携式媒体播放器、移动电话、便携式个人计算机、个人数字助理(PDA)、台式计算机、膝上型计算机和/或平板电脑设备,仅举几个可能的例子。主机控制器102可以包括一个或多个处理器和/或微处理器,处理器和/或微处理器被配置为根据软件和/或固件指令的执行来执行操作。另外和/或作为选择,主机控制器102可以包括被配置为执行各种操作的基于硬件的组件,例如ASIC。由主机控制器102执行的操作可以包括从NVM组104的某一 NVM获取数据和/或向NVM组104的某一 NVM写入数据。例如,主机控制器102可以提供对媒体文件(例如音频文件)的请求给NVM组104。这种由主机控制器102提供的请求可以包括一个或多个对应于媒体文件的逻辑地址。主机控制器102可以包括一个或多个温度传感器106,温度传感器106位于主机控制器102中或在主机控制器102周围并为主机控制器102提供温度测量结果。例如,温度传感器106可以提供温度测量结果,这些温度测量结果可(被主机控制器102和/或主机系统的另一组件)用于确定主机控制器102是否正在主机控制器102的容许温度范围(例如,主机控制器102的预定温度规格)之内操作。主机控制器102还可以为主机系统从一个或多个环境温度传感器108获取温度测量结果,环境温度传感器108位于主机系统内和主机系统周围。例如,环境温度传感器108可以位于主机系统的不同位置处,例如在板上和/或附着于主机系统的壳体,环境温度传感器108可以被主机控制器102 (或者主机系统的其它组件)用来确定主机设备外部的温度和/或系统是否正在容许温度范围(例如,主机系统的预定温度规格)之内操作。主机控制器102可以经由主机通信信道110与NVM组104通信。主机控制器102和NVM组104之间的主机通信信道110可以是固定的(例如,固定的通信信道)和/或可拆卸的(例如,通用串行总线(USB)端口)。与NVM组104的交互可以包括提供存储相关的请求给NVM组104,例如获取存储在NVM组104上的数据和/或在NVM组104中存储的数据的请求。主机控制器102还可以提供从温度传感器106-108获得的温度测量结果和/或来自未被描述的其它温度传感器的测量结果给NVM组104,以供NVM组104执行存储器操作之用。NVM组104可以利用主机接口 112和存储器控制器114经由主机通信信道110与主机控制器102交互。类似主机控制器102,存储器控制器114可以包括一个或多个处理器和/或微处理器116,处理器和/或微处理器116被配置为根据软件和/或固件指令的执 行而执行操作。另外和/或作为选择,存储器控制器114可以包括被配置为执行各种操作的基于硬件的组件,例如ASIC。存储器控制器114可以执行各种操作,包括主机控制器102请求的存储器操作。例如,响应于接收指定将获取的媒体文件的逻辑地址的请求,存储器控制器114可以识别一个或多个对应的物理地址(例如,识别管芯、块和/或页的信息),利用已识别的物理地址获取所请求的数据,和利用主机接口 112经由主机通信信道110将所请求的数据传输给主机控制器102。各种存储管理功能(例如损耗水平)可以由主机控制器102和存储器控制器114独自或者联合执行。在其中存储器控制器114被配置为执行至少某些存储管理功能的实现方式中,NVM组104可以称作“被管理的NVM” (或者用于NAND闪存的“被管理的NAND”)。这可以和“未加工的NVM”形成对照(或者用于NAND闪存的“未加工的NAND”),其中NVM组104外部的主机控制器102为NVM组104执行存储管理功能。主机控制器102和NVM组104可以是同一存储设备的一部分。虽然可能存在某些重叠,但是主机控制器102和NVM组104可以在存储设备上发挥不同的作用。例如,主机控制器102可以为存储设备执行和提供面向用户的功能,例如执行提供用户接口(例如,图形用户界面,基于文本的用户界面,音频用户界面)的操作和响应用户输入(例如,播放特定媒体文件的请求)。NVM组104可以为存储设备运行和提供基于存储器的功能,例如实现来自主机控制器102的存储器访问请求(例如,从逻辑地址转换为物理地址),执行存储管理操作,和/或执行纠错操作。这些作用中的一些可以被共享,例如主机控制器102执行一些存储器操作(例如存储管理操作)。在示例性系统100中,存储器控制器114被描述为包括一个或多个温度传感器118、易失性存储器120和非易失性存储器122。温度传感器118可以位于存储器控制器114中或者存储器控制器114周围,能够为存储器控制器114提供温度测量结果。这些温度测量结果可以由存储器控制器114和/或NVM组104的另一组件使用,用于确定存储器控制器114(或者一个或多个其它组件)是否在容许温度范围之内(例如,在存储器控制器114的温度规格之内)操作。如下面更详细描述的那样,存储器控制器114可以使用来自温度传感器118温度测量结果为NVM组104执行和调节存储器操作。易失性存储器120可以是各种易失性存储器的任何一种,例如高速缓冲存储器和随机存取存储器(RAM)。易失性存储器120可以被存储器控制器114用于执行存储器操作(包括基于温度对存储器操作的调节),存储从NVM中读取和/或写入到NVM的数据和存储与NVM有关的温度信息。如下面进一步详细描述的那样,NVM 122可以是各种类型NVM中的任何一种,并可以保存存储器控制器114用来执行各种操作的指令124,这些操作包括基于温度对存储器操作的调节。NVM 112还可以存储与NVM有关的元数据126。元数据包括以多种方式描述存储在NVM组104的NVM中数据的信息。例如,元数据126可以包括温度信息128,温度信息128表示在对存储器单元编程期间一个或多个存储器单元(例如存储器单元块)的温度。温度信息128和/或元数据126的其它部分可以包括各种附加信息,附加信息涉及NVM组104的NVM,例如时间戳信息(例如,先前对存储器单元编程的时间)和/或损耗信息(例如,表示已经对NVM各部分进行编程多次的信息)。可以使用各种温标中的任何一种存储温度信息128,例如华氏温标、摄氏温标、开尔文温标和原始数字/模拟温度传感器输出。存储器控制器114的NVM 122还可以包括温度算法130和/或存储器温度特性132。温度算法130是将NVM的温度(或者温度变化)(可能是其他输入数据)映射到保存在NVM中电荷变化水平的算法。例如,温度算法130可以将在NVM存储器单元中电压漂移的量和方向映射到NVM存储器单元中的温度变化。温度算法130可以作为输入温度信息(例如,编程时的NVM温度,当前NVM温度,从编程起的经过时间)以及其它已检测的条件和/或元数据,还可以作为输出提供信息,其中有表示对存储器操作进行的各种调节(例如,调节读取和/或写电压阈值,从MLC模式变为SLC模式,冗余地编程数据)的信息。 存储器控制器114的NVM 122还可以包括存储器温度特性132,其可结合温度算法130使用。存储器温度特性132可用来基于来自各种温度传感器(例如温度传感器106、108、118及其他温度传感器)的温度测量结果推断NVM—部分的温度(例如,NVM管芯,NVM页,NVM块,一个或多个NVM单元)。存储器温度特性可以将来自一个或多个温度传感器的温度测量结果映射到NVM —部分的温度。NVM—部分的推断温度可以被存储为元数据(例如,温度信息128)和/或可以用作温度算法130的输入。正如以下将更详细描述的那样,在一些实现方式中,温度传感器可能位于NVM中或者NVM周围,温度特性可能不需要被用来推断NVM的温度,相反,来自这种温度传感器的测量结果可能提供了这种NVM的温度的足够精确的表不。存储器控制器114使用共享内部总线134存取多存储器管芯136a_n,其可以是集成电路(IC)管芯。虽然只有单一的共享总线134被描述为与NVM组104相关,NVM组可以包括一条以上共享内部总线。按照说明每条内部总线可以由多存储器管芯136a-n与多个(例如,2,3,4,8,32,等)存储器管芯相连。可以以各种配置(例如,堆叠的)物理地设置存储器管芯136a-n。存储器管芯136a_n被描述为包括NVM 138a_n。NVM 138a_n可以是各种不同类型NVM中的任何一种,例如基于浮动栅或者电荷捕获技术的NAND闪存、NOR闪存、可擦可编程只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM)、铁电随机存储器(FRAM)、磁阻RAM(MRAM)、相变存储器(PCM)或者是它们的任意组合。在一些实现方式中,NVM 122可以在一个或多个存储器管芯136a-n中被实现。NVM 138a-n可以被组织(物理地和/或虚拟地)到一个或多个NVM子单元中,例如块140和页142。按照在示例性系统100中描述的那样,每个块140包括多个页142。块140和/或页142可以对应于被一起编程、读取和/或擦除的NVM 138a-n的各部分。例如,对于NAND闪存(NVM 138a-n的例子),页142可以对应于一组一起(同时)被读取和/或编程的存储器单元,块140可以对应于一组一起被擦除的页。块140和页142的大小和配置可以改变。例如,每一个块140可以包括任意数目的页(例如,32页,64页,数千页),每个页可以具有相关的从几个字节(例如512字节)到更多的存储容量。还可能有NVM138a-n到子单元的其它划分。存储器管芯136a_n还可以每个包括一个或多个温度传感器144a_n,温度传感器144a-n位于NVM 138a_n中或NVM 138a_n周围。例如,存储器管芯136a可以包括一个或多个温度传感器,这些温度传感器被包括在管芯136a中、在管芯136a上或间隔地遍及管芯136a并提供对应于NVM 138a_n的温度测量结果。来自温度传感器144a_n的温度测量结果可以被经由存储器管芯136a-n与存储器控制器114之间的内部总线134和/或一个或多个其它内部通路(未描述)提供给存储器控制器114。来自温度传感器144a-n的温度测量结果可用于确定一部分NVM的温度,其可以采用各种方式使用,例如,存储温度信息128和/或调节存储器操作(例如,编程,读取,擦除)的各种参数(例如阈值电压电平)。温度信息128可以包括表示存储器管芯136a_n各部分温度的数据,存储器管芯136a-n各部分是诸如NVM 138a_n、块140、页142和/或单独的存储器单元。例如,如果NVM138a的页之一被编程,而该页的温度是90° F (如温度传感器144a显示的那样),存储器控制器114将这种温度信息记录为对应于已编程页的元数据128。例如,已编程页的温度信息128可以包括温度(90° F)、已编程页的标识符(该页的物理地址,对应于该页的逻辑地址范围)和/或对应于该页被编程时间的时间戳。NVM组104还可以包括一个或多个温度传感器146,温度传感器146是组104的与存储器控制器114和/或存储器管芯136a-n没有特定关联的部分。温度传感器146可以与NVM组104的其他组件相关联和/或可以为NVM组104充当环境温度传感器。类似来自另一个温度传感器的温度测量结果与NVM 138a-n(例如环境温度传感器108、温度传感器106、温度传感器118)不是特殊关联的,来自温度传感器146的温度测量结果可用于确定一部分NVM的温度,其可以采用各种方式使用,例如,存储温度信息128和/或调节存储器操作(例如,编程,读取,擦除)的各种参数(例如阈值电压电平)。NVM组104还可以包括纠错引擎148 (例如纠错码引擎),纠错引擎148校正从NVM138a-n中读取的数据错误。纠错引擎148可以在硬件和/或软件中被实现,可以是存储器控制器114的一部分或者独立于存储器控制器114。纠错引擎148可用于确定温度算法130是否提供对电压阈值的准确的基于温度的调节,电压阈值用于解释NVM 138a-n中检测到的电压电平。存储器控制器114可以基于纠错引擎148是否检测到错误来调节温度算法130。在一些实现方式中,纠错引擎148(或者独立的纠错引擎)可用于执行其它类型的纠错操作。例如,如果NVM 138a的页在第一温度被编程,然后在第二温度被读取,基于一个或多个温度算法130以及第一和第二温度,存储器控制器114可以调节一个或多个电压阈值,这些电压阈值用于将存储在页中的电压电平解释为数字数据值(例如,0,1)。纠错引擎148可以利用对电压阈值的调节确定是否存在任何数字数据值中的由存储在页中的电压的解释而生成的错误。如果存在至少一阈值数目的错误(例如,原始数目,百分比)和/或如果存在无法校正的错误(例如,由于其纠错引擎148不能确定正确数据值的错误),存储器控制器114可以调节用于读取页的一个或多个温度算法130 (例如,基于将数据编程到存储 器中的时间和从存储器读取数据的时间之间的温度变化而改变对检测值的调节量),然后可以再次执行读取和错误校验操作来确定遇到的错误是否被解决。可以迭代地进行温度算法130的动态调节,直到解决了至少阈值数量的已检测到的错误和/或直到到达迭状的阈值次数。虽然没有描述,所描述的与存储器控制器114相关联的各种技术和/或组件可以由主机控制器102执行和/或包括在主机控制器102中。例如,可以将一些或者所有元数据126和/或温度信息128存储在与主机控制器102有关的NVM(未描述)中。在这种实现方式中,主机控制器102可以提供给NVM组104和/或从NVM组104接收与存储器操作(例如,编程,读取,擦除)关联的相关温度信息。图2是描述包括存储器设备202的示例性系统200的框图,存储器设备202被配置为使用温度信息执行存储器操作。存储器设备202可以是各种存储器设备中的任何一种,比如便携式媒体播放器、移动电话、袖珍个人计算机、个人数字助理、台式计算机、膝上型计算机、平板电脑设备和/或可移动/便携存储设备(例如,闪存卡,USB闪存驱动)。示例性存储器设备202被描述为包括主机控制器204和NVM206。主机控制器204可以类似于上述图I示出的主机控制器102。主机控制器204包括一个或多个处理器208、 易失性存储器210和一个或多个温度传感器211。处理器208可以是各种处理器中的任何 一种,比如微处理器、中央处理单元(CPU)、图形处理单元(GPU)或者是它们的任意组合。易失性存储器210可以类似于上述图I示出的易失性存储器120。易失性存储器210可以由处理器208用来执行各种操作,比如获取和处理保存在NVM206中的数据。温度传感器可以类似于上述图I示出的温度传感器106。NVM206可以包括一个或多个NVM组212a_b。NVM组212a_b的每一个可以类似于上述图I示出的NVM组104。例如,NVM组212a-b的每一个可以包括多个具有NVM的存储器管芯(例如,存储器管芯138a-n和NVM140a-n)和一个或多个存储器控制器(例如,存储器控制器114),存储器控制器被配置为使用与NVM组212a-b有关的温度信息执行存储器操作。每一个NVM组212a-b(单独的,或者彼此联合和/或与主机控制器204相关联)可以收集、维护和使用温度信息去执行与每一相应的组有关的存储器操作。NVM206可以包括任意数目的NVM组(例如,2,3,4,8,16,等)。如上面图I所示,NVM的管理可以由主机控制器204和/或NVM组212a_b的控制器执行。例如,主机控制器204可以被配置为基于所提供给和/或由主机控制器204存储的温度信息来调节NVM组212a-b的操作(例如,从MLC模式转换为SLC模式)。在其中NVM组212a-b的控制器控制至少一部分存储器管理操作(例如,纠错,平均损耗,等)的实现方式中,NVM组212a-b被认为是“被管理的” NVM。存储器设备202还可以包括一个或多个环境温度传感器213。环境温度传感器213可以类似于上述图I示出的环境温度传感器108。系统200被描述成还包括外部设备214,外部设备214可通信地连接(直接地和/或间接地)到存储器设备202。外部设备214和存储器设备202之间的通信可以包括两个设备之间的数据传输和/或指令传输。外部设备214可以是各种电子设备中的任何一种,比如台式计算机、膝上型计算机和媒体计算设备(例如,媒体服务器,电视,立体声系统)。存储器设备202可以利用外部设备接口 216 (例如,无线管芯,USB接口,等)通过物理和/或无线连接与外部设备214通信。例如,在一种示例性实现方式中,存储器设备202可以是便携式媒体播放器,外部设备214可以是台式计算机,其能够经由物理连接(例如USB电缆)互相传送媒体文件(例如,音频文件,视频文件,等)。图3A-B分别描述在SLC模式和MLC模式下存储器单元的单元电压和数字数据值之间的示例性映射。如上面图I所示,温度信息可用于确定在SLC模式和MLC模式之间是否切换存储器单元。图3A描述运行SLC模式(每一存存储器单元保存数据的一位)的存储器单元的示例性数字数据值分布300。在此例子中,电压分布曲线302表示数字值0,电压分布曲线304表示数字值I。例如,从落入电压分布曲线302限制范围的存储器单元的读取电压将解释为数字数据值O。电压阈值可用于确定分布曲线302和304的边界。例如,分布曲线302可以由一个更低的电压阈值(定义分布曲线302的最小电压)和一个较高的电压阈值(定义分布曲线302的最大电压)限定。
分布曲线302和304之间的区域被描述成灰色空间306。落入灰色空间306的电压被解释为具有不确定的数据值,对此,可用各种技术来确定正确的数据值,比如利用纠错码(ECC)。图3A所示保存在示例性存储器单元中的电压可以响应于存储器单元的温度波动而漂移(变化)。电压分布曲线308和310分别描述对应于电压分布曲线302和304的示例性电压漂移。例如,基于存储器单元的温度变化(例如,温度上升,温度下降),最初落入分布曲线304的电压值已经向上漂移,如此使得那些电压值目前落入分布曲线310。在此例子中的电压漂移被描述为ΛVtl(312)和ΛV1 (314)。跨越保存在存储器单元中的电压范围,电压漂移可以是均匀的和/或不均匀的。在此例子中,电压漂移被描述成不均匀——AV1(SH)被表示为大于八%(312)。除电压分布曲线变换之外,在此例子中,灰色空间306漂移成为灰色空间,316。根据基于温度的电压漂移,如果对应分布曲线302和304的电压阈值没有被分别调节为对应(在阈值裕度之内)分布曲线308和310,在示例性存储器单元内所存储的电压电平可能被误解。例如,所存储的电压318可能漂移到电压320,利用定义分布曲线302和304的电压阈值,电压320将被解释为不确定的数据值。这种不确定性可能会触发各种操作,如纠错,其可以消耗来自相关处理器/微处理器(例如,处理器/微处理器316)的周期。然而,利用本文描述的技术,在编程期间对温度的认识、在读取期间对温度的认识和/或对在对电压318编程时的温度和在读取电压320时的温度的比较可以允许电压阈值从对应于分布曲线302和304分别调节为对应于分布曲线308和310。图3Β描述运行MLC模式(每一存储器单元保存数据的一个以上的位)的存储器单元的示例性数字数据值分布350。在此例子中,如电压分布曲线352-362所示,存储器单兀被配置为存储4位的数据。处于MLC模式的电压分布曲线352-362可以小于处于SLC模式的电压分布曲线302-304,如图3Α描述的那样——与SLC模式相比,少量的电压漂移可能更容易引起MLC模式中的数据值的读取错误。温度信息可用于确定何时在MLC模式和SLC模式之间切换。例如,如果对处于MLC模式和相应温度算法(例如,温度算法130)的存储器单元检测到大的温度变化,考虑输入测量温度变化,提供表明存储在存储器单元中的电压很可能漂移至少阈值量的输出,然后会将存储器单元从MLC模式切换到SLC模式。图4是描述示例性存储器温度特性402-406的曲线图400。如上述图I和存储器温度特性132所示,基于来自位于一部分NVM中、在一部分NVM周围和/或一部分NVM外部的温度传感器的温度测量结果,存储器温度特性402-406可用于推断该部分NVM的温度(例如,NVM管芯,NVM块,NVM页)。例如,温度特性402可以对应于NVM组104 —部分的温度传感器146,并可用于基于来自温度传感器146的温度测量结果,推断NVM138a-n的温度、在NVM138a_n之间的不同温度或者NVM138a-n中各种子单元(比如块140和页142)的不同温度。温度特性402-406可以通过各种技术( 例如涉及NVM温度的各种温度传感器测量结果的分析经验证据)开发。NVM138a-n的每一个的行为会根据实测温度或者估算温度改变,以可建模或者由温度算法表示的方式,温度算法用于基于编程期间的温度、读取期间的温度和/或编程期间和读取期间两者的温差解释数据。图5是描述基于温度信息从存储器设备读取数据的示例性处理500的流程图。处理500可以由各种存储器设备执行,这些存储器设备例如是如上述图I所示的NVM组104和/或主机控制器102、和/或如上述图2所示的存储器设备202。在502接收从NVM读取数据的请求。例如,主机控制器102可以经由通信信道110传送从NVM138a-n读取数据的命令到NVM组104。这种命令可以包括将从NVM138a_n中读取的一个或多个逻辑地址,其中NVM组104可以将其转化为NVMl38a-n中的对应物理地址。响应于接收该请求,在504,获取所存储的与所请求的数据和NVM有关的温度信息。如上述图I所示,所存储的温度信息可以是处于最近将数据写入NVM的各部分时或附近描述NVM的一个或多个部分(例如,管芯,块,页,存储器单元)温度的元数据。例如,存储器控制器114可以获取与正在根据温度信息128存储所请求的数据的那部分NVM有关的温度信息。在506,可以从一个或多个温度传感器接收用于NVM的当前温度信息,例如,如果所请求的数据被保存在NVM138a中,可以从位于NVM138a中或者NVM138a周围的一个或多个温度传感器144a获得温度测量结果。在另一例子中,可以从其它温度传感器中获得温度测量结果,例如作为NVM组104 —部分的一个或多个温度传感器148和/或一个或多个环境温度传感器108。温度测量结果可与存储器温度特性(例如存储器温度特性132)相关联地使用,其中将各种温度传感器的温度测量结果映射到NVM各个部分的温度值,以从所接收的温度测量结果确定NVM的当前温度。在508,可以基于所存储的温度信息和当前温度信息调节用于解释保存在NVM中的电压电平的电压阈值。可以利用将温度变化映射到NVM的电压漂移的一个或多个温度算法(例如温度算法130)执行这种调节。例如,参照图3A,存储器单元被充电至电压电平318,其对应于存储器单元处于第一温度时的数据值O (按照利用电压分布302和304解释的)。随着存储器单元改变温度,所存储的电压电平318可能会向上漂移或者向下漂移。按照图3A中例子所描述的,温度方面的变化可能引起电压318漂移到电压320,其处于(在使用电压分布302和304时的)灰色空间306。使存储器单元的温度变化和存储器单元内的电压漂移之间具有相关关系的一个或多个温度算法可用于确定如何为电压分布302和304调节电压阈值,以便存储在存储器单元内的数据值可以被正确地解释。基于应用这种算法到存储器单元的状态(例如,编程时的先前温度,读取时的当前温度),电压阈值可以被调节和可以形成电压分布308和310。这种温度算法可以采用多种信息作为输入,例如编程时存储器单元的温度、读取时存储器单元的温度、两个温度之间的差值、存储器单元的损耗(例如,编程、擦除和读取的次数)、存储器单元的类型(例如,NOR闪存单元,NAND闪存单元)和/或与该单元有关的在前错误。在510,使用所调节的电压阈值读取所请求的数据。例如,参照图3A,所调节的电压阈值(其可以定义电压分布308和310的边界)可用于读取和解释所存储的电压320。在512,对所读取的数据执行一个或多个错误校验操作。例如,NVM组104可以使用纠错引擎148确定所读取的数据中是否存在任何错误。如果确定已经正确地读取了数据(514),则在516,所读取的数据可以由请求实体使用或提供给请求实体。例如,如果主机控制器102从NVM组104请求数据,则被正确读取的数据可以被提供给主机控制器102。如果没有正确地读取数据(514),则在520,可以改变正在用于调节电压阈值的温度算法(例如,由不同算法替代,调节定义温度和电压漂移之间关系的系数)。利用已改变的算法,可以执行获取NVM当前温度的另一迭代(506)、调节电压阈值(508)、使用所调节的 阈值读取数据(510)和/或执行错误校验操作(512)。可以继续这种迭代处理直到在514正确地读取了所请求的数据(例如,在校正的阈值裕度之内)和/或在518到达迭代次数的阈值。这种对温度算法的迭代调节可以允许温度算法动态地适应NVM的变化,例如随时间的退化。如果在没有正确标识所存储数据值的情况下就已经达到迭代次数的阈值,则在522报告和/或记录该错误。例如,存储器控制器114可以记录诸如错误作为与NVM138a-n的一个或多个部分相关联的元数据126的一部分。在另一例子中,响应于来自主机控制器102对数据的请求,所读取的错误可以被提供给主机控制器102。图6是描述基于温度信息向存储器设备写入数据的示例性处理600的流程图。处理600可以由各种存储器设备执行,这些存储器设备例如是如上述图I所示的NVM组104和/或主机控制器102、和/或如上述图2所示的存储器设备202。在602,接收将数据写入NVM的请求。例如,主机控制器102可以经由主机通信信道110传送写指令到NVM组104。在604,获取与所请求的数据将被写入到的NVM有关的温度信息。例如,如果存储器控制器114确定NVM138a中存在足够的可用存储容量,可以获取与NVM138a有关的温度信息。例如,可以从温度传感器144a和/或其他温度传感器(如NVM组104的温度传感器146)接收温度测量结果。在606,可以做出判断是否基于所获取的温度信息调节所请求的写操作。可以进行对写操作的各种调节。例如,可以基于所获取的温度信息调节用于定义对应数据值的电压分布的电压阈值。一个或多个温度算法可用于确定对电压阈值的调节,类似于上述图5和步骤508所示的调节。在另一例子中,如果所获取的温度信息超过阈值水产(或者小于阈值水平),则可以将数据冗余地写入NVM中的多个位置。例如,如果NVM具有可能会引起NVM不准确编程的高温,则可以将数据冗余地写入NVM的多个位置,从而增加准确编程一个或多个位置的可能性。在另一个例子中,可以基于所获取的温度以SLC模式或者MLC模式写数据。例如,如果NVM的温度超过阈值水平一高于该阈值水平MLC模式的可靠性下降,则可以以SLC模式写入数据。相反,如果NVM的温度低于阈值水平——在该阈值水平MLC编程足够地可靠,则可以以MLC模式写入数据。在另一例子中,可以延迟所请求数据的编程直到数据将被写入其中的NVM的温度降低低于和/或升高高于阈值水平。例如,如果NVM的温度如此热以至于不可能准确地编程数据,则延迟写操作直到温度降低到低于阈值对水平,在该阈值水平编程准确性增加到可接受的水平。在另一个例子中,所请求数据的编程可以通过调节各种编程参数(例如电流和/或时序)来改变。
在608,使用所调节的写操作可以将所请求的数据写入NVM。在610,可以存储编程时的NVM的温度信息。这种存储的温度信息可以在随后被获取和用于从已编程存储器单元读取数据,如上述图5所示。在数字电子电路、计算机软件、固件或者硬件(包括在本说明书中公开的结构和它们的结构上的等价物)或者一个或多个它们的组合,可以实现在本说明书中描述的主题和操作的实施例。在本说明书中描述的主题的实施例可以被实现为一个或多个计算机程序,即,一个或多个计算机程序指令模块,其被代码化在计算机存储介质上并由数据处理设备执行或者控制数据处理设备的操作。作为选择或者此外,程序指令可以被代码化在人为生成的被传送的信号上,例如机器生成的电气、光学或者电磁信号,其被生成用来编码信息,该信息用于传输给适当的接收器设备并由数据处理设备执行。计算机存储介质可以是或包含于计算机可读存储设备,计算机可读存储基质,随机或者串行存取存储器阵列或装置,或者一个或多个它们的组合。另外,虽然计算机存储介质不是被传送的信号,计算机存储介质可以是代码化在人为生成的被传送信号上的计算机程序指令的来源或者目的地。计算机存储介质还可以是或者包含于一个或多个分离的物理组件或者介质(例如,多个CD,磁盘或者其他存储设备)。在本说明书描述的操作中,可以被实现为由数据处理设备对存储在一个或多个计算机可读存储设备上或者从其它来源接收的数据执行的操作。术语“数据处理设备”包含处理数据的大量的设备、装置和机器,举例来说,包括可编程处理器、计算机、管芯上系统或者上述的多个之一或者组合。设备可以包括专用逻辑电路,例如FPGA(现场可编程门阵列)或者ASIC(专用集成电路)。除硬件之外,设备还可以包括创建所述计算机程序执行环境的代码,例如构造处理器固件、协议组、数据库管理系统、操作系统、跨平台运行时环境、虚拟机或者一个或多个它们的组合的代码。该设备和执行环境可以实现各种不同计算模型的基础结构,例如网络服务、分布式计算和栅格计算基础结构。计算机程序(亦称程序、软件、软件应用程序、脚本或者代码)可以被写为任何形式的程序设计语言(包括编译或者解释语言、说明或者过程语言),并且该计算机程序可以任何形式被使用,这些形式包括作为独立程序或者作为模块、组件、子程序、对象或者适用于计算环境的其他单元。计算机程序可以但不必对应于文件系统中的文件。可以将程序存储在保存其他程序或者数据(例如保存在标记语言文档中的一个或多个脚本)的文件的一部分中,在专用于所述程序的单个文件中或者在多个同等文件中(例如,保存一个或多个模块、子程序或者部分代码的文件)。计算机程序可以被使用在一个计算机或者多个计算机上执行,这些计算机位于一个站点或者跨越多个站点分布并由通信网络互连。
在本说明书描述的处理和逻辑流程可以由一个或多个可编程处理器执行,这些可编程处理器执行一个或多个计算机程序来执行对输入数据进行操作并生成输出的动作。该处理与逻辑流程还可以由专用逻辑电路执行,设备还可以被实现为专用逻辑电路,例如FPGA 或者 ASIC。适用于执行计算机程序的处理器例如可以包括通用和专用微处理器以及任何类型的数字计算机的任意一个或多个处理器。通常,处理器将接收来自只读存储器或者随机存取存储器或者它们两者的指令和数据。计算机的基本元件是用于按照指令执行动作的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括、或者将被可操作地耦合以便从用于存储数据的一个或多个大容量存储设备接收或向其转送数据或者进行这两种操作,所述大容量存储设备例如是磁盘、磁光盘或者光盘。然而,计算机不必具有这种设备。另外,计算机可以被嵌入另一设备,例如移动电话、个人数字助理(PDA)、移动音频或者视频播放器、游戏控制台、全球定位系统(GPS)接收器或者便携式存储设备(例如通用串行总线(USB)闪存驱动),仅举数例。适用于存储计算机程序指令和数据的 设备包括所有形式的非易失性存储器、介质和存储设备,举例来说包括半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或者移动盘;磁光盘;以及CD-ROM和DVD-ROM磁盘。处理器和存储器可以由专用逻辑电路来补充或者并入专用逻辑电路中。同样地,虽然操作在附图中被描述为特定的顺序,这不应该被被理解为要求这些操作要以示出的特定顺序或相继顺序被执行,或者所有示出的操作被执行以实现合乎需要的结果。在某些环境下,多重任务和并行处理可能是有帮助的。另外,如上所述的实施例中各种系统组件的分离不应该被理解为在所有实施例中需要这种分离,应该理解的是,所描述的编程组降和系统通常可以被同时集成在单个软件产品中或者封装到多个软件产品中。因此,已经描述了主题的特殊实施例。其他实施例都在以下权利要求书的范围内。另外,可以使用利用温度信息执行存储器操作的其他结构。在某些情况下,在权利要求书中列举的动作可以不同顺序被执行并仍然实现合乎需要的结果。此外,在附图中描述的处理未必需要为了实现合乎需要的结果示出的关键顺序或者相继次序。在某些实现方式中,多重任务和并行处理可能是有帮助的。
权利要求
1.一种用于执行存储器操作的方法,包括 在存储设备处接收从一个或多个非易失性存储器单元读取数据的请求; 获取与所述非易失性存储器单元相关的存储的温度信息,其中所述温度信息与将数据写入所述非易失性存储器单元的时间附近的温度相关联; 由存储设备从所述非易失性存储器单元读取数据; 至少基于所获取的温度信息处理所读取的数据;以及 提供已处理的数据。
2.如权利要求I所述的方法,其中至少基于所获取的温度信息处理所读取的数据包括基于所获取的温度信息,调节用于解释存储在所述非易失性存储器单元中的数据的一个或多个电压阈值。
3.如权利要求2所述的方法,其中利用基于温度来映射所述非易失性存储器单元中的电压漂移的算法来调节所述电压阈值。
4.如权利要求3所述的方法,还包括 对从所述非易失性存储器单元中读取的数据进行错误校验操作; 基于所述错误校验操作,确定对所述电压阈值的调节是否产生可接受的数据解释;以及 基于确定所述调节是否导致数据被正确地解释而更新所述算法。
5.如权利要求I所述的方法,还包括从一个或多个温度传感器接收当前温度信息,所述温度传感器表示与所述非易失性存储器单元相关的当前温度,其中还基于所述当前温度信息从非易失性存储器单元中读取数据。
6.如权利要求5所述的方法,还包括确定当前温度和数据被写入所述非易失性存储器单元时的温度之间的差值,其中基于所确定的当前温度和数据被写入所述非易失性存储器单元时的温度之间的差值,处理从所述非易失性存储器单元中读取的数据。
7.一种用于执行存储器操作的方法,该方法包括 在存储设备处接收将数据写入一个或多个非易失性存储器单元的请求; 由存储设备从一个或多个温度传感器获取温度信息,所述温度信息表示与所述非易失性存储器单元相关的当前温度; 基于所述温度信息确定对写操作进行的调节;以及 使用所确定的基于所述温度信息对写操作的调节而将数据写入所述非易失性存储器单元。
8.如权利要求7所述的方法,其中对写操作的调节包括对一个或多个电压阈值的调节,所述电压阈值定义了存储在所述非易失性存储器单元中的数据值的表示。
9.如权利要求8所述的方法,其中使用根据与所述非易失性存储器单元相关的当前温度映射所述非易失性存储器单元中电压漂移的算法,确定对电压阈值的调节。
10.如权利要求7所述的方法,其中对写操作的调节包括,在所述温度信息指示出当前温度超出阈值水平时冗余地写入数据。
11.如权利要求7所述的方法,其中对写操作的调节包括等待执行写操作,直到当前温度在某一时间段内至少改变了一阈值量。
12.一种用于将温度传感器和存储设备一起使用的设备,包括接收对一个或多个非易失性存储器单元的存储器操作请求的装置; 从一个或多个温度传感器获取温度信息的装置,所述温度信息表示与一个或多个非易失性存储器单元相关的当前温度; 基于所获取的温度信息确定对存储器操作请求进行的调节的装置;以及 使用所确定的调节执行所述存储器操作的装置。
13.如权利要求12所述的设备,其中 所述存储器操作是读取操作; 所述温度信息包括数据被编程时与一个或多个存储器单元相关的温度;以及所确定的调节包括基于所述温度信息调节一个或多个电压阈值,所述电压阈值被用于解释从所述非易失性存储器单元的一部分中读取的数据。
14.如权利要求12所述的设备,其中 所述存储器操作是写操作; 所述温度信息包括与一个或多个非易失性存储器单元相关的当前温度测量结果;以及所确定的调节包括基于所述当前温度测量结果调节用于向一个或多个所述非易失性存储器单元写入数据的一个或多个电压阈值。
15.如权利要求14所述的设备,还包括以下至少其中之一 在所述当前温度测量结果超出一阈值水平时冗余地写入数据的装置; 将写操作从每一存储器单元写入多于一位的数据改变为每一存储器单元写入一位数据的装置; 将写操作从每一存储器单元写入一位数据改变为每一存储器单元写入多于一位数据的装置;以及 等待执行写操作直到所述当前温度测量结果在某一时间段内至少改变了一阈值量的装置。
16.—种系统,包括 一个或多个非易失性存储器单元; 一个或多个温度传感器,所述温度传感器被配置为提供与所述非易失性存储器单元相关的温度测量结果;以及 控制器,该控制器被配置为在所述非易失性存储器单元上执行存储器操作,其中基于温度传感器提供的温度测量结果来调节所述存储器操作。
17.如权利要求16所述的系统,其中 对于从存储器单元的至少一部分中读取数据的存储器操作,所述控制器被配置为获取温度信息,所述温度信息表示在数据被编程到所述非易失性存储器单元的所述部分时的与所述非易失性存储器单元的所述部分相关的温度,并且 基于所获取的温度信息调节由所述控制器使用的一个或多个电压阈值,所述电压阈值用于解释从所述非易失性存储器单元的所述部分读取的数据。
18.如权利要求17所述的系统,还包括非易失性存储器,所述非易失性存储器存储与所述非易失性存储器单元的所述部分相关的温度信息。
19.如权利要求16所述的系统,其中,对于将数据写入所述非易失性存储器单元的至少一部分的操作,所述控制器被配置为获取与所述非易失性存储器单元的所述部分相关的当前温度测量结果,并基于所述当前温度测量结果来调节写操作。
20.如权利要求19所述的系统,其中调节写操作包括如下的一个或多个 调节一个或多个电压阈值,所述电压阈值定义了存储在所述非易失性存储器单元中的数据值的表示; 在所述当前温度测量结果超出阈值水平时冗余地写入数据; 将写操作从每一存储器单元写入多于一个位的数据改变为每一存储器单元写入一位数据; 将写操作从每一存储器单元写入一位数据改变为每一存储器单元写入多于一个位的数据;或者 等待执行写操作直到所述当前温度测量结果在某一时间段内至少改变了一阈值量。
全文摘要
在一种实现方式中,一种用于完成存储器操作的方法包括在存储设备中接收从一个或多个非易失性存储器单元读取数据的请求;以及获取与非易失性存储器单元有关的所存储的温度信息,其中温度信息与将数据写入非易失性存储器单元的近似时刻的温度相关联。该方法可以进一步包括由存储设备从非易失性存储器单元读取数据。该方法还可以包括至少基于所获取的温度信息处理所读取的数据;以及提供已处理的数据。
文档编号G11C16/02GK102682841SQ20121011273
公开日2012年9月19日 申请日期2012年3月2日 优先权日2011年3月2日
发明者A·费, N·C·塞罗夫, N·J·瓦卡拉特 申请人:苹果公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1