在物理接口总线上检查数据完整性时最大化频率的方法与流程

文档序号:16996203发布日期:2019-03-02 01:23阅读:183来源:国知局
在物理接口总线上检查数据完整性时最大化频率的方法与流程

本公开总体涉及数据存储设备,并且更具体地涉及数据存储设备的组件之间的接口总线。



背景技术:

在数据存储设备的运行期间,数据可以经由耦合控制器和存储器的数据总线在数据存储设备的控制器和存储器之间通信。例如,可以基于时钟信号的频率的传输速率向数据总线提供一个或多个数据值或者从数据总线接收一个或多个数据值。作为示例,响应于时钟信号的上升沿,可以从控制器向数据总线提供第一数据值。作为另一个例子,响应于时钟信号的下降沿,从数据总线接收第二数据值并将其存储在控制器中。

数据存储设备可以被设计为具有固定时钟频率,该固定时钟频率允许足够的建立和保持时间以实现集成电路(例如,控制器和非易失性存储器)之间的跨总线接口的数据的可靠传输和采样。典型地,相对于时钟频率提供大间隔以考虑在数据存储设备运行期间可能发生的最坏情况(例如,最坏情况硅处理速度、系统电压和系统温度(pvt)状况)。将时钟频率(例如,数据传输速率)设置为固定值可以避免如果在这样的最坏情况下数据传输速率太高可能发生的错误。然而,通过基于最坏情况以时钟频率运行数据存储设备(例如,总线),数据传输速率(例如,总线速度)可能显著低于总线的理论上的最大数据传输速率。

因此,本领域需要一种具有可调节时钟频率的数据存储设备。



技术实现要素:

本公开总体上涉及一种包括控制器和存储器的数据存储设备。该控制器包括主机接口和存储器接口。控制器以与主机接口相关联的第一频率通过存储器接口在存储器上执行第一操作以确定第一数据模式。控制器以第二频率通过存储器接口在存储器上执行读取操作以确定第二数据模式。控制器将第一频率改变预定量,直到第一频率等于具有低于预定概率的建立/保持违反的相关风险的最大操作频率。

响应于第一模式等于第二模式,控制器将第一频率增加预定量。响应于第一模式不等于第二模式,控制器将第一频率减少预定量。预定量可以基于读取操作所需的建立和保持时间。预定量可以基于主机接口的工作电压、工作温度或负载的变化中的至少一个。

在一个实施例中,当第一频率等于最大操作频率时,控制器终止改变第一频率。改变第一频率可能发生在主机接口的空闲时间期间。改变第一频率可能发生在控制器完成服务中断之后的预定时间量。第二频率是一个低于最大操作频率的松弛频率。

在一个实施例中,第一操作是写入操作或读取操作。

附图说明

为了能够详细理解本公开的上述特征的方式,可以通过参考实施例来具有上面简要总结的本公开的更具体描述,其中一些在附图中示出。然而,需要注意的是,附图仅示出了本公开的典型实施例,并且因此不被认为是对其范围的限制,因为本公开可以允许其他等效实施例。

图1是包括控制器的数据存储系统的说明性示例的框图,该控制器包括接口定时调整引擎。

图2是包括多个数据存储系统的存储模块的说明性示例的框图,每个数据存储系统可以包括具有接口定时调整引擎的控制器。

图3是包括多个控制器的分级数据存储系统的说明性示例的框图,每个控制器可以包括接口定时调整引擎。

图4是示出包括控制器的数据存储系统的示例的框图,该控制器可以包括接口定时调整引擎。

图5是示出可耦合到控制器的非易失性存储器芯片的示例组件的框图,该控制器包括接口定时调整引擎。

图6是包括数据存储设备的数据存储系统的具体说明性示例的框图,该数据存储设备包括接口定时调整引擎。

图7是调整接口总线的频率参数的方法的说明性示例的流程图。

为了便于理解,在可能的情况下已经使用相同的附图标记来指示图中共有的相同元件。考虑在一个实施例中公开的元件可以有利地用于其他实施例而无需特定的叙述。

具体实施方式

下面参考附图描述本公开的具体方面。在描述中,共同的特征用相同的附图标记表示。尽管本文参照数据存储设备描述了某些示例,但应该理解,本文描述的技术可应用于其他实现。此外,应该认识到,为了便于参考,可以提供某些序数术语(例如,“第一”或“第二”),并且不一定意味着物理特性或排序。因此,如本文所使用的,用于修饰元素(诸如结构、组件、操作等)的序数术语(例如,“第一”、“第二”、“第三”等)不一定指示元素相对于另一个元素的优先级或顺序,而是将该元素与具有相同名称的其他元素区分开来(只是用于序数项)。另外,如本文所使用的,不定冠词(“一”和“一个”)可以指示“一个或多个”而不是“一个”。此外,“基于”条件或事件执行的操作也可以基于未明确列举的一个或多个其他条件或事件来执行。如本文所使用的,“示例性”可以指示示例、实施方式和/或方面,并且不应被解释为限制或指示优选或优选示例、实施方式和/或方面。

本公开描述了识别与数据总线接口相关联的建立/保持违反的风险以及基于所识别的风险调整时钟信号的频率的系统和方法。数据存储设备包括控制器和存储器。该控制器包括主机接口和存储器接口。控制器以与主机接口相关联的第一频率通过存储器接口在存储器上执行第一操作以确定第一数据模式。控制器以第二频率通过存储器接口在存储器上执行读取操作以确定第二数据模式。响应于第一模式等于第二模式,控制器将第一频率增加预定量。响应于第一模式不等于第二模式,控制器将第一频率减少预定量。重复执行第一操作,执行读取操作以及增加或减少第一频率直到第一频率等于最大操作频率,该最大操作频率具有低于预定概率的相关建立/保持违反(setup/holdviolation)相关联的风险。

通过将操作频率改变一个或多个预定量,提供了建立和保持时间违反的风险的实时(即,“即时”)测量。实时测量可以使数据总线接口(例如,总线)能够以“最大”可靠的时钟频率操作。例如,总线运行的“实时”监控可以提供接近建立时间违反或保持时间违反的情况的实时警报。响应于识别建立/保持时间违反的风险,可以调整操作频率以避免建立/保持时间违反。通过调整时钟信号的频率,数据总线接口可以在由于改变pvt条件而导致的不同操作条件期间以“最大”频率可靠地操作(没有建立/保持违反)。因此,数据总线接口可以高于适合于最坏情况的速率的速率运行,从而改善数据总线接口的整体性能。

图1-图3中示出了适用于实现本公开的各方面的存储器系统。图1是示出了根据本文描述的主题的示例的数据存储系统100的框图。参考图1,数据存储系统100包括控制器102和非易失性存储器,该非易失性存储器可以由一个或多个非易失性存储器芯片104组成。如本文所使用的,术语“存储器芯片”是指非易失性存储器单元的集合,以及用于管理形成在单个半导体衬底上的那些非易失性存储器单元的物理操作的关联电路系统。控制器102与主机系统接口连接(interfacewith),并且将用于读取、编程和擦除操作的命令序列传输到非易失性存储器芯片104。控制器102可以包括接口定时调整引擎134。

控制器102(其可以是闪存控制器)可以采用处理电路系统、微处理器或处理器、以及存储计算机可读程序代码的计算机可读介质(例如,固件)的形式,该计算机可读程序代码可由例如(微处理器)处理器、逻辑门、开关、专用集成电路(asic)、可编程逻辑控制器和嵌入式微控制器执行。控制器102可以配置有硬件和/或固件以执行下面描述并在流程图中示出的各种功能。此外,显示为控制器内部的一些组件可以被存储在控制器外部,并且可以使用其他组件。另外,短语“可操作地与...通信”可以意指直接通信或通过一个或多个组件间接(有线的或无线的)通信,其可以在本文中示出或描述,或者可以不在本文中示出或描述。

如本文所使用的,闪存控制器是管理存储在闪存上的数据并且与诸如计算机或电子设备的主机通信的设备。除了本文描述的特定功能之外,闪存控制器还可以具有各种功能。例如,闪存控制器可以格式化闪存,映射坏的闪速存储器单元,并分配备用单元以替换将来出现故障的单元。部分备用单元可用于保存固件以操作闪存控制器并实现其他功能。在操作中,当主机要从闪存读取数据或向闪存写入数据时,主机与闪存控制器通信。如果主机提供了要读/写数据的逻辑地址,则闪存控制器可以将从主机接收到的逻辑地址转换为闪存中的物理地址。(或者,主机可以提供物理地址。)闪存控制器还可以执行各种存储器管理功能,例如但不限于损耗均衡(分配写入以避免耗尽可能以其他方式会重复写入的特定存储器块)和垃圾回收(在块满后,只将有效数据页移动到新块中,以便完整块可以被擦除并重新使用)。

非易失性存储器芯片104可以包括任何合适的非易失性存储介质,包括nand闪存单元和/或nor闪存单元。存储器单元可以采取固态(例如闪存)存储器单元的形式,并且可以是一次可编程的、少数时间可编程的、或者多次可编程的。存储器单元也可以是单级单元(slc)、多级单元(mlc)、三级单元(tlc)、或使用现在已知或以后开发的其他存储器单元级技术。而且,存储器单元可以以二维或三维方式制造。

控制器102和非易失性存储器芯片104之间的接口可以是任何合适的闪存接口,诸如切换模式200、400或800。在一个实施例中,数据存储系统100可以是基于卡片的系统,诸如安全数字(sd)或微型安全数字(micro-sd)卡。在替代实施例中,数据存储系统100可以是嵌入式存储器系统的一部分。

虽然在图1所示的示例中,数据存储系统100包括控制器102和非易失性存储器芯片104之间的单个通道,但是本文描述的主题不限于具有单个存储器通道。例如,在一些nand存储器系统体系结构(诸如图2和图3中所示的那些)中,取决于控制器能力,在控制器与nand存储器设备之间可存在2个、4个、8个或更多个nand通道。在本文描述的任何实施例中,即使在附图中示出了单个通道,在控制器102和非易失性存储器芯片104之间也可以存在不止一个通道。

图2示出了包括多个数据存储系统100的存储模块200。因此,存储模块200可以包括与主机和存储器系统204接口连接的控制器202,存储系统204包括多个数据存储系统100。控制器202和数据存储系统100之间的接口可以是总线接口,诸如串行高级技术附件(sata)或外围组件接口表示(pcie)接口。在一个实施例中,存储模块200可以是固态驱动器(ssd),诸如在诸如膝上型计算机和平板电脑之类的便携式计算设备中存在的固态驱动器(ssd)。图2的每个控制器102可以包括对应于接口定时调整引擎134的接口定时调整引擎。可选地或另外地,控制器202可以包括对应于接口定时调整引擎134的接口定时调整引擎。

图3是示出分级存储系统300的框图。分级存储系统300包括多个控制器304,其中每一个控制器控制相应的存储系统306。控制器304可以通过总线接口访问分级存储系统300中的存储器。在一个实施例中,总线接口可以是nvme接口或以太网光纤通道(fcoe)接口。在一个实施例中,图3中所示的分级存储系统300可以是可由多个主计算机302访问的可机架安装的大容量存储系统,诸如将在需要大容量存储的数据中心或其他位置中存在的大容量存储系统。图2的每个控制器202可以包括对应于接口定时调整引擎134的接口定时调整引擎。

图4是更详细地示出控制器102的示例性组件的框图。控制器102包括与主机接口连接的前端模块408、与一个或多个非易失性存储器芯片104接口连接的后端模块410以及执行其他功能的各种其他模块。模块可以采取以下形式:例如,设计用于与其他组件一起使用的封装功能硬件单元、可由通常执行相关功能的特定功能的(微)处理器或处理电路系统执行的程序代码(例如,软件或固件)的一部分,或者与较大系统接口连接的自备硬件或软件组件。

再次参考控制器102的模块,缓冲区管理器/总线控制器414管理随机存取存储器(ram)416中的缓冲区并控制控制器102的内部总线仲裁。只读存储器(rom)418存储系统启动代码。尽管在图4中示出为位于控制器102内,但是在其他实施例中,ram416和rom418中的一个或两个可以位于控制器102的外部。在其他实施例中,ram和rom的部分可以位于控制器102内部和控制器102的外部。

前端模块408包括提供与主机或下一级控制器的电接口的主机接口420和物理层接口(phy)422。主机接口420的类型的选择可以取决于正在使用的存储器的类型。主机接口420的示例包括但不限于sata、sataexpress、sas、光纤通道、usb、pcie和nvme。主机接口120通常便于传输数据、控制信号和定时信号。

后端模块410包括纠错码(ecc)引擎424,该ecc引擎424对从主机接收到的数据进行编码,并且对从非易失性存储器读取的数据进行解码和错误纠正。命令序列器426产生命令序列(诸如编程和擦除命令序列)以传送到非易失性存储器芯片104。raid(独立驱动器的冗余阵列)模块428管理raid奇偶校验的生成和失败数据的恢复。raid奇偶校验可以用作对写入到非易失性存储器芯片104中的数据的额外的完整性保护。在一些情况下,raid模块428可以是ecc引擎424的一部分。存储器接口430提供命令序列到非易失性存储器芯片104,并且从非易失性存储器芯片104接收状态信息。例如,存储器接口430可以是双倍数据速率(ddr)接口,诸如切换模式200、400或800接口。闪存控制层432控制后端模块410的整体操作。后端模块410还可以包括接口定时调整引擎434。

图4中所示的数据存储系统100的附加组件包括功率管理模块412和媒体管理层438,该媒体管理层438执行非易失性存储器芯片104的存储器单元的损耗均衡。数据存储系统100还包括其他分立组件440,诸如外部电接口、外部ram、电阻器、电容器或可以与控制器102接口连接的其它组件。在替代实施例中,物理层接口422、raid模块128、媒体管理层138和缓冲区管理/总线控制器114中的一个或多个是从控制器102中省略的可选组件。

图5是更详细地示出非易失性存储器芯片104的示例性组件的框图。非易失性存储器芯片104包括外围电路系统541和非易失性存储器阵列542。非易失性存储器阵列542包括用于存储数据的非易失性存储器单元。非易失性存储器单元可以是任何合适的非易失性存储器单元,包括二维和/或三维配置中的nand闪存单元和/或nor闪存单元。外围电路系统541包括向控制器102提供状态信息的状态机552,控制器102可以包括接口定时调整引擎134。外围电路系统541还可以包括功率管理或数据锁存器控制模块554。非易失性存储器芯片104进一步包括分立组件540、地址解码器548、地址解码器550和缓存数据的数据缓存556。

图6描绘了数据存储系统600的说明性示例。数据存储系统600包括数据存储设备602(例如,数据存储系统100)和主机设备670(例如,主机302)。

数据存储设备602可以包括存储器设备,诸如存储器设备603。存储器设备603可以包括一个或多个存储器芯片(例如,一个存储器芯片,两个存储器芯片,八个存储器芯片或另一数目的存储器芯片)。为了进一步说明,存储器设备603可以包括非易失性存储器芯片104。存储器设备603包括存储器604,诸如包含在存储器设备603的存储器芯片中的存储元件的非易失性存储器。例如作为说明性示例,存储器604可以包括诸如nand闪存的闪存或诸如电阻性随机存取存储器(reram)的电阻性存储器。存储器604可以具有三维(3d)存储器配置。作为示例,存储器604可以具有3d垂直位线(vbl)配置。在特定实施方式中,存储器604是具有3d存储器配置的非易失性存储器,该3d存储器配置单片地(monolithically)形成在存储器单元阵列的一个或多个物理层中,该存储器单元阵列具有设置在硅衬底上方的有源区。可选地,存储器604可具有另一配置,诸如二维(2d)存储器配置或非单片3d存储器配置(例如,堆叠芯片3d存储器配置)。

存储器604可以包括一个或多个存储元件的区域(在本文中也称为存储器单元),诸如存储器区域608。存储器区域的一个示例是块,诸如存储器元件的nand闪存擦除组。存储器区域608的另一个示例是存储器元件的字线。字线可以用作单层单元(slc)字线或多层单元(mlc)字线(作为说明性示例,诸如每单元三位字线或每单元两位字线)。存储器604的每个存储器元件可以是可编程为指示一个或多个位值的状态(例如,闪存配置中的阈值电压或电阻性存储器配置中的电阻状态)。

存储器设备603进一步包括读/写电路系统610。读/写电路系统610配置为将值编程到存储器604的存储元件中,并且感测来自存储器604的存储器元件的值。存储器设备603可以进一步包括电路系统616(例如,一个或多个数据锁存器,一个或多个控制锁存器或其组合)。

数据存储设备602还可以包括控制器630。控制器630可以包括第一接口638(例如,主机接口)、纠错码(ecc)引擎634、定时设备636、第二接口632(例如,存储器接口)以及一个或多个电压调节器642。例如,ecc引擎634可以对应于ecc引擎424,第一接口638可以对应于主机接口420,并且第二接口632可以对应于存储器接口430。为了进一步说明,第一接口638可以包括一个或多个锁存器以从主机设备670接收数据和命令,并且第二接口632可以包括一个或多个总线驱动器以将数据和命令发送到存储器设备603的电路系统616。控制器630可以存储(或访问)诸如文件分配表(fat)的文件表640。控制器630还包括接口定时调整引擎134。

主机设备670可以包括电路系统672。例如,电路系统672可以包括一个或多个总线驱动器。电路系统672可以被集成在诸如在主机处理设备674(例如,应用处理器)内的主机设备670的处理器或控制器内,或者被耦合到诸如在主机处理设备674(例如,应用处理器)内的主机设备670的处理器或控制器。

数据存储设备602和主机处理设备674经由连接650(例如,总线)耦合。例如,图6示出了连接650可以包括一条或多条数据线651,一条或多条控制线652以及一条或多条定时信号线653。连接650被耦合到第一接口638和电路系统672。在一些实施方式中,连接650可以包括或可以耦合到图4的物理层接口422。

存储器设备603和控制器630经由连接620(例如,总线)耦合。例如,图6示出了连接620可以包括一条或多条数据线621,一条或多条控制线622以及一条或多条定时信号线623。连接620被耦合到电路系统616并且被耦合到第二接口632。

在说明性实施方式中,数据存储系统600还包括电源连接673(例如,用于提供电源电压的“轨”,诸如vdd、vcc或两者)。电源连接673可以耦合到存储器设备603、控制器630和主机处理设备674。取决于具体实施方式,电源连接673可以由电池(例如,移动装置电池)供应,或通过耦合到主电源的电源装置(例如,变压器)提供。在其他实施方式中,存储器设备603、控制器630和/或主机处理设备674被连接到分离的电源连接。

在运行期间,控制器630被配置为使用第一接口638从主机设备670接收数据和指令。例如,控制器630可以经由第一接口638从主机设备670接收数据660。为了进一步举例说明,可以经由一条或多条数据线651结合经由一条或多条控制线652发送的写入访问请求接收数据660。数据660和请求可以通过控制器630基于经由一条或多条定时信号线653接收的定时信号664(例如,一个或多个时钟信号,一个或多个选通信号或者一个或多个读取启用信号)被接收。例如,第一接口638可以包括一个或多个锁存器以基于定时信号664来接收数据360。尽管图6示出了单个定时信号664,但应该理解的是,可以使用多于一个的定时信号664(例如,差分定时信号)。

ecc引擎634可以被配置为接收数据660,并且被配置为基于数据660生成一个或多个ecc码字。ecc引擎634可以包括汉明编码器、里德-所罗门(rs)编码器、博斯-乔赫里-霍克文黑姆码(bch)编码器、低密度奇偶校验(ldpc)编码器、turbo编码器、被配置为根据一个或多个其他ecc方案对数据进行编码的编码器或其组合。

控制器630被配置为使用第二接口632将数据和命令发送到存储器设备603,并且被配置为使用第二接口632从存储器设备603接收数据。例如,控制器630被配置为发送数据(例如,由ecc引擎634生成的一个或多个ecc码字)和写入命令(例如,命令624),用于使存储器设备603将数据存储到存储器604的指定地址。写入命令可以指定要存储数据的存储器604的一部分的物理地址。为了进一步说明,控制器630可以经由一条或多条数据线621结合经由一条或多条控制线622发送的写入命令将数据发送到存储器设备603。存储器装置603可基于由控制器630经由一条或多条定时信号线623提供的定时信号626(例如,一个或多个时钟信号或者一个或多个选通信号)来接收数据和写入命令。例如,电路系统616可以包括被配置为基于定时信号664接收数据660的一个或多个锁存器。存储器设备603可以使读/写电路系统基于定时信号626将数据写入到存储器604。尽管图6示出了单个定时信号626,但应该理解的是,可以使用不止一个的定时信号626(例如,定时信号的差分对)。此外,在一些情况下,定时信号626可以包括由存储器设备603生成的信号,诸如读取使能信号。

控制器630被配置为向存储器设备603发送读取命令(例如,命令624)以从存储器604的指定地址访问数据。例如,控制器630响应于从主机设备670接收到对读取访问的请求可以将读取命令发送到存储器设备603。读取命令可以指定存储器604的一部分的物理地址。例如,读取命令可以指定存储数据的存储器604的一部分的物理地址。响应于读取命令,存储器设备603可以使读/写电路系统610感测存储数据的存储器604的部分,以生成感测数据(例如,由于一个或多个位错误而可能与数据不同的数据表示)。

控制器630被配置为经由第二接口632从存储器装置603接收感测数据。控制器630可以将感测数据输入到ecc引擎634以启动解码过程来校正感测数据(如果有的话)中的一个或多个位错误达到特定ecc技术的特定纠错能力。ecc引擎634可以包括汉明解码器、rs解码器、bch解码器、ldpc解码器、turbo解码器、被配置为根据一个或多个其他ecc方案解码数据的解码器或其组合。

响应于对感测数据进行解码,ecc引擎634可以输出数据660。控制器630可以使用第一接口638将数据660提供给主机设备670。

主机设备670可以周期性地或不定期地启动与第一接口638相关联的调整过程(例如,频率校准或“调谐”过程)。例如,调整过程可以包括调整定时信号664(例如,通过调整定时信号664的频率)。在调整过程期间,主机设备670可以(例如,使用电路系统672)向控制器630发送数据(例如,数据660)。控制器630可以使用第一接口638(诸如使用第一接口638的一个或多个锁存器)接收数据。替代地或附加地,调整过程可以包括通过主机设备670从控制器630接收数据(例如,数据660)。

在一些实施方式中,主机设备670响应于数据存储系统600处的开机事件来启动调整过程。可选地或附加地,响应于一个或多个其他事件,诸如与读取访问请求或写入访问请求有关的错误(例如,由于数据存储系统600处的温度变化或电压变化)和/或在与数据存储设备602相关联的空闲时间期间(例如,如果主机设备670没有请求读取访问或写入访问),主机设备670可以启动调整过程。

在主机设备670启动调整过程之前,控制器630可以接收指定主机设备670要执行调整过程的消息662。例如,图6示出了控制器630可以经由一条或多条控制线652接收消息662。在其他实施方式中,控制器630可以经由另一种技术(作为说明性示例,例如,经由一条或多条数据线651或者通过专用总线或连接)接收消息662。

在一些实施方式中,消息662符合接口协议,诸如根据工业标准的接口协议。例如,第一接口638可以符合多媒体卡(mmc)标准,诸如嵌入式多媒体卡(emmc)标准。在这种情况下,消息662可以包括符合mmc或emmc标准的命令。作为另一个示例,第一接口638可以符合串行高级技术附件(sata)标准,并且消息662可以包括符合sata标准的命令。作为另外的示例,第一接口638可以符合通用串行总线(usb)标准,并且消息662可以包括符合usb标准的命令。

控制器630配置为响应于消息662启动与第二接口632相关联的调整过程(例如,操作频率校准或“调谐”过程)。例如,接口定时调整引擎134可以被配置为调整定时信号626(例如,通过调整定时信号626的频率)。在说明性实施方式中,接口定时调整引擎134响应于接收到消息662来启动调整过程,以使数据存储设备602能够执行调整过程。

为了进一步说明,下面描述可以在调整过程期间执行的操作的某些示例。应该理解的是,这些示例是说明性的,并且本公开的范围不限于所描述的示例。为了说明,在不偏离本公开的范围的情况下,下面的示例之一的一个或多个操作可以与另一个示例的一个或多个操作相组合。本领域技术人员将认识到,所描述的示例的其他修改在本公开的范围内。

调整过程可以包括将数据写入存储器604或从存储器604读取数据中的一个或多个。为了说明,响应于接收到消息662,接口定时调整引擎134可以使第二接口632使用连接620将数据606和写入命令(例如,命令624)发送到电路系统616。写入命令可以指定存储器604的一个或多个物理地址,诸如存储器区域608的物理地址。在电路系统616处接收数据606时,存储器设备603可以使读/写电路系统610将数据606编程到存储器604。响应于将数据606编程到存储器604,存储器设备603可以向控制器630发送指示写入操作的状态(例如,通过状态(passstatus)或失败状态)的状态指示。

在一些实施方式中,数据606可以包括“虚拟”数据(例如,预定的一组比特或伪随机生成的一组比特)。在这种情况下,控制器630可以被配置为更新文件表640以指示数据606无效(例如,在从存储器设备603接收到指示写入操作的通过状态的状态指示之后)。在其他情况下,数据606可以包括用户数据。在这种情况下,控制器630可以被配置为更新文件表640以指示数据606有效(例如,在从存储器设备603接收到指示写入操作的通过状态的状态指示之后)。

替代地,或者除了向存储器604写入数据之外,调整过程可以包括从存储器604读取数据,并且使用第二接口632在控制器630处接收数据。例如,控制器630可以使用连接620向存储器设备603发送读取命令(例如,命令624)。读取命令可以指定存储器区域608的物理地址。存储器设备603可以致使读/写电路系统610感测存储器区域608以生成感测数据628。存储器设备603可以使用连接620将感测数据628提供给控制器630,并且控制器630可以使用第二接口632接收感测数据628。

替代地,或者除了向存储器604写入数据和/或从存储器604读取数据之外,调整过程可以包括在存储器604处擦除数据。例如,控制器630可以使用连接620向存储器设备603发送擦除命令(例如,命令624)。擦除命令可以指定存储区域的物理地址。为了说明,如果擦除命令指定存储器区域608的物理地址,则存储器设备603可以致使读/写电路系统610从存储器区域608擦除数据606。在擦除数据606之后,控制器630可以被配置为更新文件表640以指示存储器区域608可用于写入操作。在一些情况下,控制器630被配置为在调整过程期间重写数据606(诸如如果数据606包括有效的用户数据)。在其他情况下,控制器630在调整过程期间不重写数据606(例如,如果数据606是“虚拟”数据)。

在一些实施方式中,控制器630被配置为随机地或伪随机地选择存储器区域608。例如,控制器630可以被配置为通过访问文件表640来伪随机地选择存储有效数据的一个或多个物理地址。在该示例中,控制器630可以被配置为响应于接收到消息662而从文件表640中伪随机地选择存储器区域608的物理地址,并且基于所选物理地址写入或读取数据。取决于具体实施方式,控制器630可以在存储有效数据的存储器604的物理地址、存储无效数据的存储器604的物理地址或两者之间进行选择。

在另一个示例中,存储器区域608可以包括“专用”存储区域,该“专用”存储区域保留用于在第二调整过程期间执行的操作。例如,存储器区域608可以包括已经被关闭以进行写入操作(例如,由于故障、缺陷或大量编程/擦除周期)的存储器区域。在这种情况下,数据606可以包括虚拟数据(而不是用户数据)。

在一些实施方式中,ecc引擎634可以在第二调整过程期间执行一个或多个ecc操作(例如,编码操作和/或解码操作)。为了说明,在一些实施方式中,ecc引擎634可以编码数据以在第二调整过程期间生成数据606。可选地或另外地,ecc引擎634可以解码感测数据628以在第二调整过程期间生成解码数据。在说明性实施方式中,响应于控制器630在调整过程期间在连接620处发送或接收数据,ecc引擎634执行ecc操作。

在一些实施方式中,控制器630可以向电路系统616的一个或多个锁存器发送数据并从其接收数据,而不使存储器设备603将数据编程到存储器604中并从存储器604感测数据。例如,控制器630可以被配置为使用连接620将数据606和命令(例如,命令624)发送到电路系统616。在一些实施方式中,命令624指示存储器设备603将数据606“保持”在电路系统616的一个或多个锁存器中(例如,不将数据606编程到存储器604)。控制器630可以在调整过程期间经由连接620从电路系统616的一个或多个锁存器检索数据606。因此,在一些实施方式中,调整过程包括基于锁存的操作(例如,不包括将数据写入存储器604中或从存储器604读取数据),并且在一些实施方式中,调整过程包括基于存储器的操作(例如,通过在调整过程期间将数据写入存储器604和/或从存储器604读取数据)。

取决于具体应用,与基于存储器的调整过程相比,基于锁存器的调整过程可以在连接620处生成更多噪声。例如,如果在调整过程期间数据未被写入存储器604和/或从存储器604读取,则连接620可以在第二过程期间保持充电(例如,由于与存储在电路系统616的一个或多个锁存器中的值相关联的电容效应)。基于锁存器的调整过程在连接650对连接620处产生的噪声敏感的应用中(例如,如果连接650位于连接620附近)可能是有利的。在一些情况下,与基于锁存器的调整过程相比,基于存储器的调整过程可以在电源连接673处生成更多的噪声。例如,在编程和/或读取操作期间使用编程电压和/或读取电压可能在电源连接673处产生噪声。基于存储器的调整过程在连接620中的一个或两个是对电源噪声敏感的应用中(例如,如果连接620中的一个或两个对由电源连接673提供的电源电压中的“毛刺”敏感,诸如由于可能与电源连接673相关联的电容和/或电感产生的毛刺)可能是有利的。

替代地或者除了基于锁存器的操作和基于存储器的操作之外,调整过程可以包括基于ecc的操作(例如,通过在调整过程期间,在ecc引擎634处执行一个或多个编码操作和/或一个或多个解码操作)。在一些应用中,在调整过程期间ecc引擎634的操作可以影响连接650的操作,诸如通过在影响连接650的电源连接673处生成噪声。在说明性实施方式中,调整过程可以根据“全功率”模式被执行,在此期间数据被编码、发送到电路系统616、写入到存储器604、从存储器604感测、提供到第二接口632,并由ecc引擎634解码。如果调整过程提供“最坏情况”的噪声量和/或功耗量,则“全功率”模式可能是有利的。例如,某些操作(诸如“全功率”模式)可能导致暂时降低由电源连接673提供的电源电压的水平的“峰值”用电量。在这种情况下,一个或多个接口驱动器的性能可能会暂时减少,导致“最坏情况”的运行状况。

在一些情况下,数据存储设备602可以“延长”调整过程(例如,通过重复调整过程一次或多次,或者通过执行一个或多个其他操作)。为了说明,主机设备670可以直接地(例如,使用特定命令)或间接地(例如,通过停止使用连接650或通过向数据存储设备602发送读取命令或写入命令)指示调整过程的终止。在一些实施方式中,数据存储设备602被配置为“延长”调整过程,直到主机设备670指示调整过程的终止。

在一些情况下,调整过程可以包括执行由主机设备670指定的一个或多个操作。例如,消息662可以指示要在调整过程期间执行的一种或多种类型的操作(例如,一个或多个写入操作、一个或多个读取操作、一个或多个编码操作、一个或多个解码操作、一个或多个其他操作或其组合),要在调整过程期间、调整过程的持续时间期间或其组合中执行的数个操作。为了进一步说明,在一些情况下,消息662可以包括字段(例如,比特),该字段指示数据存储设备602是否要根据“全功率”模式执行调整过程。例如,如果数据存储系统600被实现为电池供电设备(例如,作为说明性示例的移动设备或膝上型设备),则该字段可以基于以下条件来指示使用“全功率”模式:电池充电量满足阈值和/或如果数据存储系统600当前被连接到用于电池充电的主电源。应该注意的是,本公开不限于这些示例,并且系统数据存储系统600可以被实现为另一个设备(作为说明性示例,例如,服务器、云存储设备或台式计算机)。

调整过程可以进一步包括调整定时信号626的频率。例如,接口定时调整引擎134可以被配置为在一个或多个上述操作期间调整与调整过程有关的定时信号626的频率。在说明性实施方式中,接口定时调整引擎134被配置为以与第二接口632相关联的定时信号626的第一频率通过第二接口632在存储器604上执行第一操作,以确定存储在电路系统616中(例如,在数据锁存器中)的第一数据模式。接口定时调整引擎134以定时信号626的第二频率通过第二接口632在存储器604上执行读取操作,以确定存储在电路系统616中(例如,在数据锁存器中)的第二数据模式。在一个实施例中,调整定时信号626的频率的调整过程可以在第二接口632的空闲时间期间发生,或者在完成控制器630服务中断之后的预定时间量期间发生。

在一个实施例中,第二频率是低于最大操作频率的松弛频率。在一个实施例中,第一操作是写入操作。在一个实施例中,第一操作是读取操作。

响应于接口定时调整引擎134确定第一模式等于第二模式,接口定时调整引擎134将定时信号626的第一频率增加预定量。响应于接口定时调整引擎134确定第一模式不等于第二模式,接口定时调整引擎134将第一频率减少预定量。重复执行第一操作,读取操作以及增加或减少第一频率,直到第一频率等于具有低于预定概率的建立/保持违反的相关风险的最大操作频率。

在一个实施例中,预定量基于读取操作所需的建立和保持时间。预定量基于第二接口632的操作电压、操作温度或负载的变化中的至少一个。在一个实施例中,第一模式不等于第二模式,并且建立和保持时间确定第二接口632的最大操作频率。

在说明性实施方式中,控制器630包括异或(xor)设备,该异或(xor)设备被配置为使用第一数据模式和第二数据模式的第一感测数据以及第一数据模式和第二数据模式的数据606的副本执行一组xor操作,以确定在第一数据模式和第二数据模式中的错误的数量。

在一些实施方式中,调整过程可以包括调整一个或多个信号的电压电平(例如,“驱动强度”)。例如,在调整过程期间,诸如通过调整一个或多个电压调节器642的操作(例如,通过选择性地激活或停用包括在一个或多个电压调节器642中的一个或多个分压器设备),接口定时调整引擎134可以调整在连接620处使用的电压的电压电平。调整驱动强度可以修改与信号相关的上升时间或下降时间。此外,尽管图6示出了一个或多个电压调节器642被包括在控制器630中,但是应该理解的是,替代地或除了控制器630之外,一个或多个电压调节器可以被包括在存储器设备603中。

在执行调整过程之后,数据存储设备602可以继续操作(例如,通过响应来自主机设备670的读取访问或写入访问的请求)。例如,控制器630可以使用调整过程期间所确定的定时信号626的调整频率,将数据发送到存储器设备603以及从存储器装置603接收数据。诸如响应于第二接口632处的错误或者响应于从主机设备670接收到指定要执行另一个调整过程的另一消息,控制器630随后可以启动一个或多个附加调整过程。

参考图6描述的示例可以使主机设备670执行的调整过程能够补偿由于连接620处的操作导致的对连接650的影响(反之亦然),导致定时信号664的更准确的频率调整(以及定时信号626的更准确的频率调整)。与使用分开的(或“非重叠的”)调整过程(例如,由于较少的错误和/或由于在调整过程完成之后数据存储系统600处的较不频繁的调整过程)的常规设备相比,数据存储系统600的操作因此得到改进。

如参考图6所述,总线操作的“联机”监测可以提供接近保持时间违反(violation)的情况的实时警报。实时测量可以使得能够以“最大”可靠时钟频率操作第二接口632(和相应的总线)。响应于保持违反的风险的识别,控制器630可以调整时钟信号clk的频率以避免保持时间违反。通过调整频率,第二接口632可以在由改变pvt条件导致的不同操作条件期间以“最大”频率可靠地运行。因此,第二接口632可以以高于最坏情况速率的速率运行,从而改善第二接口632的整体性能。

下文描述基于写入操作来调整时钟信号的频率的方法的特定说明性示例。该方法可以由图6的控制器630的接口定时调整引擎134执行。接口定时调整引擎134设置与第二接口632相关联的定时信号626的默认写入时钟频率。接口定时调整引擎134根据中断定时器等待中断的中断服务例程的完成。如果中断定时器已经到期,并且接口定时调整引擎134确定数据存储系统600已经进入空闲模式,则接口定时调整引擎134写入存储在电路系统616(例如,数据锁存器)中的写数据模式。接口定时调整引擎134以低于默认写入时钟频率的松弛安全频率读取存储在电路系统616中的读取数据模式。接口定时调整引擎134将第一数据模式与第二数据模式进行比较。如果写数据模式等于读取数据模式,则接口定时调整引擎134将时钟频率增加预定量,否则,接口定时调整引擎134将时钟频率减少预定量。在任一情况下,处理过程都返回到在进入空闲模式之后写入存储在电路系统616中的数据模式。

下文描述基于读取操作来调整时钟信号的频率的方法的特定说明性示例。该方法800可以由图6的控制器630的接口定时调整引擎134执行。接口定时调整引擎134设置与第二接口632相关联的定时信号626的默认读取时钟频率。接口定时调整引擎134根据中断定时器等待中断的中断服务例程的完成。如果中断定时器已经到期,并且控制电路系统确定数据存储系统600已经进入空闲模式,则接口定时调整引擎134以低于默认读取时钟频率的松弛安全频率读取读取数据模式。接口定时调整引擎134以时钟频率读取存储在电路系统616中的第二读取数据模式。接口定时调整引擎134将第一读取数据模式与第二读取数据模式进行比较。如果第一读取数据模式等于第二读取数据模式,则接口定时调整引擎134将时钟频率增加预定量,否则,接口定时调整引擎134将时钟频率减少预定量。在任一情况下,处理过程都返回到在进入空闲模式之后写入存储在电路系统616中的数据模式。

参考图7,描绘了调整与总线速度相关联的频率参数的方法的特定说明性示例,并且大致表示为700。该方法700可以由图6的控制器630的接口定时调整引擎134执行。在说明性实施方式中,在框705处,接口定时调整引擎134以与第二接口632相关联的定时信号626的第一频率通过第二接口632在存储器604上执行第一操作,以确定存储在电路系统616中(例如,在数据锁存器中)的第一数据模式。在框710处,接口定时调整引擎134以定时信号626的第二频率通过第二接口632在存储器604上执行读取操作,以确定存储在电路系统616中(例如,在数据锁存器中)的第二数据模式。在一个实施例中,调整定时信号626的频率的调整过程可以在第二接口632的空闲时间期间发生,或者在完成控制器630服务中断之后的预定时间量期间发生。

在一个实施例中,第二频率是低于最大操作频率的松弛频率。在一个实施例中,第一操作是写入操作。在一个实施例中,第一操作是读取操作。

在框715处,如果接口定时调整引擎134确定第一模式等于第二模式,则在框720处,接口定时调整引擎134将定时信号626的第一频率增加预定量。在框715处,如果接口定时调整引擎134确定第一模式不等于第二模式,则在框725处,接口定时调整引擎134将第一频率减少预定量。在框730处,如果接口定时调整引擎134确定第一频率等于最大操作频率,该最大操作频率具有与低于预定概率的第二接口632相关联的建立/保持违反的相关风险,则在框735处,终止对第一频率的改变;否则,该方法回到框705处。

在一个实施例中,预定量基于读取操作所需的建立和保持时间。预定量基于第二接口632的操作电压、操作温度或负载的变化中的至少一个。在一个实施例中,第一模式不等于第二模式,并且建立和保持时间确定第二接口632的最大操作频率。

通过基于第一输出和第二输出调整操作参数,可以进行“即时”(例如,实时)调整以避免在接口的操作期间的建立/保持违反。此外,通过调整一个或多个参数(诸如时钟信号clk的频率),接口可以在由于改变pvt条件而导致的不同操作条件期间以最大频率可靠地运行。

以上公开的主题将被认为是说明性的而非限制性的,并且所附权利要求旨在覆盖落入本公开的范围内的所有这些修改、增强和其他实施方式。因此,在法律允许的最大范围内,本公开的范围将由以下权利要求及其等同物的最宽可允许的解释来确定,并且不应被前述详细描述约束或限制。

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