数据处理系统、存储器系统和用于操作存储器系统的方法

文档序号:856857 发布日期:2021-04-02 浏览:3次 >En<

阅读说明:本技术 数据处理系统、存储器系统和用于操作存储器系统的方法 (Data processing system, memory system and method for operating a memory system ) 是由 赵骏 金真洙 辛崇善 于 2020-05-25 设计创作,主要内容包括:数据处理系统包括被配置为以带内通信方式向主机传送数据段或从主机接收数据段的存储器系统。存储器系统被配置为以带外通信方式将分组传送到主机。该分组包括:第一类型项,包括与存储器系统中的空闲状态、数据输入/输出处理状态以及示出顺序写入操作或随机写入操作的状态有关的参数;以及包括与上述参数相对应的变量第二类型项。(The data processing system includes a memory system configured to transmit data segments to or receive data segments from a host in an in-band communication manner. The memory system is configured to communicate the packet to the host in an out-of-band communication. The grouping includes: a first type item including parameters related to an idle state, a data input/output processing state, and a state showing a sequential write operation or a random write operation in the memory system; and a second type item including a variable corresponding to the parameter.)

数据处理系统、存储器系统和用于操作存储器系统的方法

相关申请的交叉引用

本专利申请要求于2019年10月1日提交的韩国专利申请号10-2019-0121675的权益,其全部公开内容通过引用并入本文。

技术领域

本公开的实施例涉及存储器系统以及包括主机和存储器系统的数据处理系统,并且更具体地涉及用于在存储器系统和主机之间发射或接收操作信息的方法和装置。

背景技术

近来,用于计算环境的范例已转移到无处不在的计算,这使得可以虚拟地随时随地访问计算机系统。结果,诸如移动电话、数码相机、笔记本计算机等的便携式电子设备的使用正在迅速增加。这样的便携式电子设备通常使用或包括存储器系统,存储器系统使用或嵌入至少一个存储器设备(即,数据存储设备)。数据存储设备可以用作便携式电子设备的主存储设备或辅助存储设备。

与硬盘不同,使用非易失性半导体存储器设备的数据存储设备的优点在于,由于其不具有机械驱动部件(例如,机械臂),因此其具有优异的稳定性和耐久性,并且具有高的数据访问速率和低功耗。在具有这样的优点的存储器系统的上下文中,示例性数据存储设备包括USB(通用串行总线)存储器设备、具有各种接口的存储卡、固态硬盘(SSD)等。

发明内容

本公开的一个实施例提供了数据处理系统和用于操作数据处理系统的方法,该数据处理系统包括诸如存储器系统和主机的组件和资源,并且能够基于组件和资源的使用情况,在组件之间动态分配用于数据通信的多个数据路径。

本公开的一个实施例可以提供一种装置或一种方法,该装置或方法用于在不影响数据输入/输出(I/O)速度(例如,I/O吞吐量)的情况下,以带外通信方式,将存储器系统的操作状态传送到外部设备(例如,主机),使得外部设备可以识别存储器的操作状态并充分利用存储器系统中包括的资源。

本公开的一个实施例可以提供适用于包括主机和存储器系统的数据处理系统的装置或方法。该装置或方法可以被实现用于使用功率检测或外围组件(例如,LED等)控制以带外通信方式(而不是以带内通信方式,该带内通信方式使用用于传递请求和数据段的数据传输线),在主机和存储器系统之间传送或接收关于数据输入或数据输出的操作状态。因此,该装置或方法可以减少由在数据输入/输出操作期间操作状态的传输而引起的开销。

本公开的一个实施例可以提供一种方法或一种装置,该方法用于建立关于存储器系统如何与主机进行通信来传送存储器系统的操作状态的协议或标准,该装置用于传送存储器系统的、根据协议或标准进行编码的操作状态。该协议或标准可以建议如何对存储器系统的操作状态进行编码,以及在无需添加附加收发器、附加端口/引脚或附加通信线路的情况下,如何使用存储器系统与主机之间的外围非活动线路,以带外通信方式传送编码数据。

在一个实施例中,一种数据处理系统可以包括存储器系统,存储器系统被配置为以带内通信方式向主机传送数据段或从主机接收数据段。存储器系统可以被配置为以带外通信方式将分组传送到主机,并且分组包括:第一类型项,其包括与存储器系统中的空闲状态、数据输入/输出处理状态以及示出顺序写入操作或随机写入操作的状态有关的参数;以及包括与上述参数相对应的变量的第二类型项。

数据输入/输出处理状态可以基于存储器系统中处理的任务来指示存储器系统的输入/输出吞吐量是否比第一参考值慢。

任务可以包括针对读取操作、后台操作、数据迁移操作或数据复制操作执行的过程。

响应于从主机输入的顺序写入请求,可以根据将第二参考值与待存储在存储器系统中的剩余数据量进行比较的结果来确定示出顺序写入操作的状态。

响应于从主机输入的随机写入请求,可以根据将第三参考值与待存储在存储器系统中的剩余数据量进行比较的结果来确定示出随机写入操作的状态。

存储器系统可以被配置为不论主机的请求如何,都将分组传送到主机。

第一类型项还可以包括与存储器系统的内部温度有关的另一参数,并且第二类型项还可以包括与另一参数相对应的变量。

第一类型项可以进一步包括存储器系统的标识信息和与通过带外通信方式传送的多个参数和多个变量有关的日志信息中的一个信息。

分组还可以包括指示分组的开始的第一变量和用于检查分组中包括的数据错误的第二变量。

分组可以包括脉冲,该脉冲具有预设数量的周期,每个周期包括活动状态和非活动状态,活动状态和非活动状态具有相等时间。可以基于每个活动状态的长度来确定每个周期的长度。

第一类型项、第二类型项、第一变量和第二变量可以独立地包括至少一个半字节,半字节示出了脉冲的单个周期中的4比特数据。

分组可包括利用脉冲的单个周期独立地实现的第一变量和第一类型项、利用脉冲的四个周期实现的第二类型项以及利用脉冲的三个周期实现的第二变量。

存储器系统可以进一步被配置为在完成分组的传输之后,将用于带外通信方式的通信线路维持在非活动状态的时间是最短周期的两倍以上。

在另一实施例中,一种存储器系统可以包括:具有多个非易失性存储单元的存储器设备;以及控制器,被配置为响应于从主机以带内通信方式输入的请求,执行用于将数据段存储在存储器设备中或输出存储器设备中存储的数据的操作。控制器可以被配置为基于操作的状态,通过带外通信方式将分组传送到主机。分组可以包括:第一类型项,包括与存储器系统中的空闲状态、数据输入/输出处理状态、示出顺序写入操作或随机写入操作的状态和内部温度有关的参数;以及包括与上述参数相对应的变量的第二类型项。

数据输入/输出处理状态可以基于存储器系统中处理的任务来指示存储器系统的输入/输出吞吐量是否比第一参考值慢。

响应于从主机输入的顺序写入请求,可以根据将第二参考值与待存储在存储器系统中的剩余数据量进行比较的结果来确定示出顺序写入操作的状态。响应于从主机输入的随机写入请求,可以根据将第三参考值与待存储在存储器系统中的剩余数据量进行比较的结果来确定示出随机写入操作的状态。

分组还可以包括指示分组的开始的第一变量和用于检查分组中包括的数据错误的第二变量。

分组可以包括利用脉冲的单个周期独立地实现的第一变量和第一类型项、利用脉冲的四个周期实现的第二类型项以及利用脉冲的三个周期实现的第二变量。

存储器系统可以被配置为在完成分组的传输之后,将用于带外通信方式的通信线路维持在非活动状态的时间多于分组的周期的两倍,该分组包括具有预设数量的周期的脉冲。

在另一实施例中,一种用于操作存储器系统的方法可以包括:监视针对前台操作或后台操作执行的任务的状态;通过带内通信方式,将前台操作的结果或响应传送到外部设备;以及通过带外通信方式,将基于任务的状态而确定的分组传送到外部设备。分组可以包括:第一类型项,包括与存储器系统中的空闲状态、数据输入/输出处理状态以及示出顺序写入操作或随机写入操作的状态有关的参数;以及包括与上述参数相对应的变量的第二类型项。

包括主机和存储器系统的数据处理系统的操作方法可以包括:由主机和存储器系统根据带内通信方案,彼此通信存储器系统的存储器操作;以及由主机和存储器系统根据带外通信方案,彼此通信存储器系统的空闲/繁忙状态、输入/输出状态、顺序写入操作的状态和随机写入操作的状态。

附图说明

本文的描述参考了附图,其中贯穿附图,相同的附图标记指代相同的部分。

图1图示了根据本公开的一个实施例的数据处理系统。

图2示出了根据本公开的一个实施例的包括存储器系统的数据处理系统。

图3图示了根据本公开的一个实施例的存储器系统。

图4示出了根据本公开的一个实施例的数据处理系统中的带外(OOB)通信的第一示例。

图5A和图5B描述了根据本公开的一个实施例的用于生成或传送用于OOB通信的脉冲的第一示例。

图6图示了根据本公开的一个实施例的用于生成或传送用于OOB通信的脉冲的第二示例。

图7描述了根据本公开的一个实施例的OOB通信的代码配置。

图8图示了根据本公开的一个实施例的数据处理系统的第一操作。

图9图示了根据本公开的一个实施例的数据处理系统的第二操作。

图10示出了根据本公开的一个实施例的数据处理系统的第三操作。

图11描述了根据本公开的一个实施例的以OOB通信方式用于分组的脉冲。

图12A至图12I图示了根据本公开的一个实施例的以OOB通信方式使用的分组配置。

图13示出了根据本公开的一个实施例的以OOB通信方式使用的规范的第一示例。

图14示出了根据本公开的一个实施例的以OOB通信方式使用的规范的第二示例。

图15图示了根据本公开的一个实施例的以OOB通信方式使用的规范的第三示例。

图16描述了根据本公开的一个实施例的以OOB通信方式使用的规范的第四示例。

图17示出了根据本公开的一个实施例的用于操作存储器系统的方法。

本公开包括对“一个实施例”或“实施例”的引用。出现短语“在一个实施例中”或“在实施例中”不一定指代相同的实施例。可以以与本公开一致的任何合适方式来对特定特征、结构或特性进行组合。

具体实施方式

下面参考附图来描述本公开的各种实施例。然而,本公开的元素和特征可以不同地配置或布置来形成可以是所公开的实施例中的任一个的变型的其他实施例。

在本公开中,术语“包括(comprise、comprising、include、including)”是开放式的。如在所附权利要求书中所使用的,这些术语指定所陈述的元素的存在,并且不排除存在或添加一个或多个其他元素。权利要求中的术语不排除装置包括附加组件(例如,接口单元、电路等)。

在本公开中,各种单元、电路或其他组件可以被描述或要求为“被配置为”执行一个或多个任务。在这样的上下文中,通过指示单元/电路/组件包括在操作期间执行那些任务或多个任务的结构(例如,电路),“被配置为”用于暗指该结构。这样,即使所指定的单元/电路/组件当前未操作(例如,未导通),也可以说单元/电路/组件被配置为执行任务。与“被配置为”语言一起使用的单元/电路/组件包括硬件(例如,电路、存储可执行来实现操作的程序指令的存储器等)。关于单元/电路/组件“被配置为”执行一个或多个任务的记载明确旨在针对单元/电路/组件,调用35U.S.C.§112,第六段。附加地,“被配置为”可以包括通用结构(例如,通用电路),该通用结构由软件和/或固件(例如,执行软件的FPGA或通用处理器)操纵,以能够执行待解决的(多个)任务的方式进行操作。“被配置为”还可包括将制造过程(例如,半导体制造设施)适配用于制造适于实现或执行一个或多个任务的器件(例如,集成电路)。

如本文所使用的,这些术语被用作术语之前的名词的标签,并且不暗示任何类型的排序(例如,空间、时间、逻辑等)。术语“第一”和“第二”并不一定意味着必须在第二值之前写入第一值。此外,尽管在本文中可以使用术语“第一”、“第二”、“第三”等来标识各种元素,但是这些元素不受这些术语的限制。这些术语用于将一个元素与具有相同或相似名称的另一元素区分开。例如,可以将第一电路与第二电路区分开。

此外,该术语“基于”用于描述影响确定的一个或多个因素。该术语不排除可能影响确定的附加因素。即,确定可以仅基于那些因素或者至少部分地基于那些因素。考虑短语“基于B来确定A”。尽管在这种情况下,B是影响确定A的因素,但这样的短语不排除确定A也基于C。在其他情况下,可以仅基于B来确定A。

现在将参考附图来描述本公开的实施例,其中相同的附图标记指代相同的元素。

图1示出了根据本公开的一个实施例的数据处理系统。

参考图1,数据处理系统可以包括主机102和存储器系统110。主机102和存储器系统110可以以两种不同的方式彼此通信。

主机102和存储器系统110可以通过数据总线来发射和接收请求以及响应于请求而执行操作的结果。在本文中,数据总线可以包括用于数据传输(例如,数据输入/输出(I/O))的多个通信线路。当数据处理系统中的主机102和存储器系统110所需的性能较低时,可以是通过一个通信线路,在主机102和存储器系统110之间传送请求和数据段。然而,当存储器系统110的数据存储容量增加并且大量数据存储在存储器系统110中或从存储器系统110输出时,数据总线可以包括多个通信线路。每个通信线路可以将主机102和存储器系统110的两个引脚或两个端口连接。通信(即,通过诸如主机102和存储器系统110之间的数据总线的通信线路来发送或接收请求、命令、数据等)可以被称为带内通信。

带内通信通常可以包括通过为两个不同设备之间的数据通信而建立的频带、信道、端口和连接来发射或接收数据段。但是,除用于两个不同设备之间的带内通信建立的频带或信道、端口或连接之外,与带内通信不同的带外(OOB)通信还可以通过另一频带或信道、端口或连接来支持数据传输。以OOB通信方式,可以通过通常不用于多个数据段的另一部件来传送数据段。例如,OOB通信可以经由两个不同设备之间的通信路径,在用于带内通信的预设频带(例如,频率、速率等)以外的其他频带(例如,频率、速率等)中发射或接收数据段。根据一个实施例,以OOB通信方式,未使用用于带内通信的能够双向地发射和接收地址、命令、地址等的数据通信线路或信道(例如,数据输入/输出(I/O)线路)。但是,用于不同设备或组件之间的其他目的或用途的路径、线路或导线用于以OOB通信方式传送数据段或信息。例如,用于其他目的或用途的路径、线路或导线可以包括用于测试设备的线路、用于提供时钟、电源等的预留线路以及为在制造商和供应商之间使用而创建的附加线路。参考图1,主机102和存储器系统110可以支持用于OOB通信的连接。尽管未示出,但是在一个实施例中,主机102和存储器系统110可以通过被设计用于执行带内通信的接口来执行OOB通信。在另一实施例中,主机102或存储器系统110可以包括用于执行OOB通信的附加接口。

就数据传送速率或数据传送宽度而言,用于OOB通信的连接通常可以具有比用于带内通信的连接(例如,主机102与存储器系统110之间的数据总线)更低的性能。因此,用于主机102与存储器系统110之间的OOB通信的连接可能不适用于将数据段从主机102传送到存储器系统110,反之亦然。在数据处理系统的一个实施例中,OOB通信已用于发射和接收简单的并且可能不受处理速度的影响的数据段或信号(例如,电源相关信息或关于设备识别的信息)。

根据本公开的一个实施例,可能需要数据处理系统中包括的存储器系统110的高数据输入/输出速度(例如,I/O吞吐量)。可以根据存储器系统110的数据I/O速度来提高在存储器系统110和主机102之间通过数据总线传送或接收请求或数据段的速率。当存储器系统110的内部配置变得复杂,或者存储器系统110需要许多功能(或更好的性能)时,可以在存储器系统110和主机102之间传送或交换大量信号或各种类型的信号。例如,除了读取请求、写入请求以及与读取请求或写入请求相对应的数据段之外,在主机102和存储器系统110之间传送的信号还可以包括关于存储器系统110的操作状态的信息。

当关于存储器系统110的操作状态的信息被发射到主机102时,主机102可以确定用于使用存储器系统110的更有效的方式、顺序等。例如,在主机102将写入命令和数据段发射到存储器系统110之前,主机102可以基于该信息而识别出因为存储器系统110对已传送的另一请求进行处理,存储器系统110可能不立即响应于写入请求而执行操作。在这种情况下,在主机102中的另一操作发布或生成另一数据段之后,主机102可以收集多个数据段并且将所收集的具有写入请求的数据传送到存储器系统110。因此,当主机102可以获得关于存储器系统110的操作状态的信息时,主机102可以选择或确定关于如何对多个数据段进行更快地处理(process/handle)的各种方式之一。

通过带内通信方式的数据总线,主机102可以发射请求或命令来识别存储器系统110的操作状态,并且存储器系统110可以将包括操作状态的响应发送到主机102。然而,与存储器系统110的操作状态有关的请求和响应可能导致主机102和存储器系统110之间的数据传输(例如,数据输入/输出)的延迟。即,发射和接收存储器系统110的操作状态的过程可能将数据处理系统的性能恶化或降低。因此,在本公开的一个实施例中,可以以OOB通信方式,在主机102与存储器系统110之间传送存储器系统110的操作状态,以减少或避免数据输入/输出(I/O)操作的开销。

在下文中,参考图2和图3,详细描述了由存储器系统110执行的一些操作。

参考图2,描述了根据本公开的一个实施例的数据处理系统100。参考图2,数据处理系统100可以包括与存储器系统110接合或互锁的主机102。

主机102可以包括例如便携式电子设备(例如,移动电话、MP3播放器和膝上型计算机)或者非便携式电子设备(例如,台式计算机、游戏机、电视(TV)、投影仪等)。

主机102还包括通常可以管理和控制在主机102中执行的功能和操作的至少一个操作系统(OS)。OS可以在与存储器系统110接合的主机102与需要并使用存储器系统110的用户之间提供互操作性。OS可以支持与用户请求相对应的功能和操作。作为示例而非限制,可以根据主机102的移动性,将OS分类为通用操作系统和移动操作系统。通用操作系统可以根据系统要求或用户环境而划分为个人操作系统和企业操作系统。但是企业操作系统可以专用于保护和支持高性能。移动操作系统可以服从针对移动性的支持服务或功能(例如,省电功能)。主机102可以包括多个操作系统。主机102可以执行与用户的请求相对应的、与存储器系统110互锁的多个操作系统。主机102可以将与用户的请求相对应的多个命令传输到存储器系统110中,从而执行与存储器系统110内的命令相对应的操作。

存储器系统110中的控制器130可以响应于从主机102输入的请求或命令来控制存储器设备150。例如,控制器130可以执行读取操作,以为主机102提供从存储器设备150中读取的数据段,并执行写入操作(或编程操作),以将从主机102输入的数据段存储在存储器设备150中。为了执行数据输入/输出(I/O)操作,控制器130可以控制和管理针对数据读取、数据编程、数据擦除等的内部操作。

根据一个实施例,控制器130可以包括主机接口132、处理器134、纠错码电路138、功率管理单元(PMU)140、存储器接口142和存储器144。图2中描述的控制器130中包括的组件可以根据关于存储器系统110的实现形式、操作性能等而变化。例如,存储器系统110可以根据主机接口的协议,利用可以与主机120电耦合的各种类型的存储设备中的任一个存储设备来实现。合适的存储设备的非限制性示例包括固态硬盘(SSD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、小尺寸MMC(RS-MMC)、微型MMC、安全数字(SD)卡、小型SD卡、微型SD卡、通用串行总线(USB)存储设备、通用闪存(UFS)设备、紧凑型闪存(CF)卡、智能媒体(SM)卡、记忆棒等。可以基于存储器系统110的实现方式来添加或省略控制器130中的组件。

如本公开中所使用的,术语“电路”指代以下所有:(a)纯硬件电路实现方式(例如,仅在模拟和/或数字电路中的实现方式),和(b)电路和软件(和/或固件)的组合,例如(如果适用):协同工作以使得装置(例如,移动电话或服务器)执行各种功能的(i)(多个)处理器的组合或(ii)(多个)处理器/软件(包括(多个)数字信号处理器)、软件和(多个)存储器的各部分;以及(c)电路(例如,(多个)微处理器或(多个)微处理器的一部分),其中即使软件或固件物理上不存在,该电路也需要软件或固件来进行操作。“电路”的该定义适用于本申请(包括任何权利要求)中该术语的所有使用。作为另一示例,如在本申请中使用的,术语“电路”还涵盖仅处理器(或多个处理器)或处理器的一部分及该处理器的(或这些处理器的)随附软件和/或固件的实现方式。术语“电路”还涵盖(例如,如果适用于特定的权利要求元素)用于存储设备的集成电路。

主机102和存储器系统110可以包括控制器或接口,以在预定协议下发射和接收信号、数据段等。例如,存储器系统110中的主机接口132可以包括能够将信号、数据段等发射到主机102或者接收从主机102输入的信号、数据段等的装置。

控制器130中包括的主机接口132可以接收从主机102输入的信号、命令(或请求)或数据段。即,主机102和存储器系统110可以使用预定协议而在彼此之间发射和接收数据。由主机102和存储器系统110支持的、用于发射和接收数据段的协议或接口的一个示例可以包括通用串行总线(USB)、多媒体卡(MMC)、并行高级技术附件(PATA)、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、集成驱动电子设备(IDE)、高速外围组件互连(Peripheral Component Interconnect Express,PCIE)、串行连接的SCSI(SAS)、串行高级技术附件(SATA)、移动行业处理器接口(MIPI)等。根据一个实施例,主机接口132是用于与主机102交换数据段的一个类型的层,并且由被称为主机接口层(HIL)的固件来实现或驱动。

用作用于发射和接收数据的接口之一的集成驱动电子器件(IDE)或高级技术附件(ATA)可以使用包括40个并行连接的导线的电缆来支持主机102和存储器系统110之间的数据发射和接收。当多个存储器系统110连接到单个主机102时,可以通过使用多个存储器系统110所连接的位置开关或dip开关而将多个存储器系统110划分为主设备或从属设备。设置为主设备的存储器系统110可以用作主存储器设备。IDE(ATA)已发展为Fast-ATA、ATAPI和增强型IDE(EIDE)。

串行高级技术附件(SATA)是与集成驱动电子(IDE)设备所使用的各种并行数据通信接口的ATA标准兼容的串行数据通信接口类型。IDE接口中的40个导线可以减少为SATA接口中的6个导线。例如,用于IDE的40个并行信号可以转换为用于SATA的6个串行信号,以在彼此之间传输。SATA由于其更快的数据发射和接收速率而被广泛使用,并且在用于数据发射和接收的主机102中利用较少的资源消耗。SATA可以支持将多达30个外部设备连接到包括在主机102中的单个收发器。附加地,SATA可以支持热插拔,即使在主机102与另一设备之间正执行数据通信时,该热插拔也允许将外部设备附接到主机102或从主机102拆卸。因此,即使主机102导通,也可以将存储器系统110作为附加设备(例如,由通用串行总线(USB)支持的设备)来连接或断开连接。例如,在具有eSATA端口的主机102中,可以像外部硬盘一样自由地拆卸存储器系统110。

小型计算机系统接口(SCSI)是用于在计算机、服务器和/或另一外围设备之间进行连接的串行数据通信接口类型。与诸如IDE和SATA的其他接口相比,SCSI可以提供较高的传输速度。在SCSI中,主机102和至少一个外围设备(例如,存储器系统110)串联连接,但是可以通过并行数据通信来执行主机102和每个外围设备之间的数据发射和接收。在SCSI中,很容易将诸如存储器系统110的设备连接到主机102或从主机102断开连接。SCSI可以支持将15个其他设备连接到包括在主机102中的单个收发器。

串行附接的SCSI(SAS)可以理解为SCSI的串行数据通信版本。在SAS中,不仅主机102和多个外围设备被串联连接,而且主机102和每个外围设备之间的数据发射和接收可以以串行数据通信方案来执行。SAS可以通过串行电缆而不是并行电缆支持在主机102和外围设备之间的连接,以使用SAS容易地管理设备并增强或改进操作可靠性和通信性能。SAS可以支持将八个外部设备连接到包括在主机102中的单个收发器。

高速非易失性存储器(NVMe)是至少基于高速外围组件互连(PCIe)的接口类型,高速外围组件互连(PCIe)被设计为增强配备有非易失性存储器系统110的主机102、服务器、计算设备等的性能和设计灵活性。此处,PCIe可以使用插槽或专用电缆来将主机102(例如,计算设备)和存储器系统110(例如,外围设备)连接。例如,PCIe可以使用多个引脚(例如,18个引脚、32个引脚、49个引脚、82个引脚等)和至少一个导线(例如,x1、x4、x8、x16等)来实现每秒几百MB(例如,250MB/s、500MB/s、984.6250MB/s、1969MB/s等)的高速数据通信。根据一个实施例,PCIe方案可以实现每秒数十到数百G比特的带宽。使用NVMe的系统可以充分利用以高于硬盘的速度进行操作的非易失性存储器系统110(例如,SSD)的操作速度。

根据一个实施例,主机102和存储器系统110可以通过通用串行总线(USB)连接。通用串行总线(USB)是可以在主机102和外围设备(例如,键盘、鼠标、操纵杆、打印机、扫描仪、存储设备、调制解调器、摄像机等)之间提供成本有效的标准连接的可扩展的、可热插拔的即插即用串行接口。诸如存储器系统110的多个外围设备可以耦合到包括在主机102中的单个收发器。

参考图2,纠错码电路(ECC)138可以纠正待在存储器设备150中处理(例如,从其输出)的数据的错误比特,纠错码电路(ECC)138可以包括ECC编码器和ECC解码器。这里,ECC编码器可以对待在存储器设备150中编程的数据执行纠错编码,以生成添加有校验比特的编码数据,并将编码数据存储在存储器设备150中。当控制器130读取存储器设备150中存储的数据时,ECC解码器可以检测并纠正包含在从存储器设备150读取的数据中的错误。换言之,在对从存储器设备150读取的数据执行纠错解码之后,ECC电路138可以确定纠错解码是否成功并且输出指令信号(例如,纠正成功信号或纠正失败信号)。ECC电路138可以使用在ECC编码过程期间生成的校验比特来纠正所读取的数据的错误比特。当错误比特的数量大于或等于可纠正错误比特的阈值数量时,ECC电路138可以不纠正错误比特,而是可以输出指示纠正错误比特失败的纠错失败信号。

根据一个实施例,ECC电路138可以基于编码调制(例如,低密度校验(LDPC)码、Bose-Chaudhuri-Hocquenghem(BCH)码、turbo码、Reed-Solomon(RS)码、卷积码、递归系统码(RSC)、网格编码调制(TCM)、块编码调制(BCM)等)来执行纠错操作。ECC电路138可以包括用于基于上述代码中的至少一个来执行纠错操作的电路、模块、系统或设备。

功率管理单元(PMU)140可以控制在控制器130中提供的电力。PMU 140可以监视提供给存储器系统110的电力(例如,提供给控制器130的电压)并将电力提供给控制器130中包括的组件。PMU 140不仅可以检测导通或关断,而且还可以生成触发信号,以使得在向存储器系统110提供的电力不稳定时,存储器系统110能够将当前状态紧急备份。根据一个实施例,PMU 140可以包括能够累积可以在紧急情况下使用的电力的设备或组件。

存储器接口142可以用作用于对控制器130和存储器设备150之间传送的命令和数据进行处理的接口,以允许控制器130响应于从主机102输入的命令或请求来控制存储器设备150。在存储器设备150是闪存的情况下,存储器接口142可以生成用于存储器设备150的控制信号,并且可以在处理器134的控制下处理输入到存储器设备150或从存储器设备150输出的数据。例如,当存储器设备150包括NAND闪存时,存储器接口142包括NAND闪存控制器(NFC)。存储器接口142可以提供用于对控制器130和存储器设备150之间的命令和数据进行处理的接口。根据一个实施例,可以通过被称为闪存接口层(FIL)的固件(作为与存储器设备150交换数据的组件)来实现或驱动存储器接口142。

根据一个实施例,存储器接口142可以支持开放式NAND闪存接口(ONFi)、用于与存储器设备150进行数据输入/输出的切换模式等。例如,ONFi可以使用如下的数据路径(例如,信道、通路等):该数据路径包括能够以8比特或16比特数据为单位支持双向发射和接收的至少一个信号线路。控制器130与存储器设备150之间的数据通信可以通过关于异步单数据速率(SDR)、同步双倍数据速率(DDR)和切换双倍数据速率(DDR)的至少一个接口来实现。

存储器144可以是存储器系统110或控制器130中的工作存储器类型,同时将针对操作而发生或传递的临时或事务数据存储在存储器系统110和控制器130中。例如,存储器144可以在将读取数据段输出到主机102之前,临时存储响应于主机102的请求而从存储器设备150输出的读取数据段。附加地,控制器130可以在对存储器设备150中的写入数据段进行编程之前,临时存储从主机102输入到存储器144中的写入数据段。当控制器130控制存储器设备150的操作(例如,数据读取、数据写入、数据编程、数据擦除等)时,在控制器130和存储器系统110的存储器设备150之间传输或生成的数据段可以存储在存储器144中。除了读取数据段或写入数据段之外,存储器144还可以存储用于执行在主机102和存储器设备150之间输入或输出数据段的操作所必需的信息(例如,映射数据、读取请求、编程请求等)。根据一个实施例,存储器144可以包括命令队列、程序存储器、数据存储器、写入缓冲器/高速缓存、读取缓冲器/高速缓存、数据缓冲器/高速缓存、映射缓冲器/高速缓存等。

在一个实施例中,存储器144可以利用易失性存储器来实现。例如,存储器144可以利用静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)或两者来实现。尽管图2图示了例如设置在控制器130内的存储器144,但是实施例不限于此。存储器144可以位于控制器130内部或外部。例如,存储器144可以由具有在存储器144和控制器130之间传送数据和/或信号的存储器接口的外部易失性存储器来实现。

处理器134可以控制存储器系统110的整体操作。例如,处理器134可以响应于从主体102输入的写入请求或读取请求来控制存储器设备150的编程操作或读取操作。根据一个实施例,处理器134可以执行固件来控制存储器系统110中的编程操作或读取操作。在本文中,固件可以被称为闪存转译层(FTL)。稍后参考图3来详细描述FTL的一个示例。根据一个实施例,处理器134可以利用微处理器或中央处理单元(CPU)来实现。

根据一个实施例,存储器系统110可以利用至少一个多核处理器来实现。多核处理器是其中集成了被视为不同处理区域的两个或更多个核心的电路或芯片类型。例如,当多核处理器中的多个核心独立地驱动或执行多个闪存转译层(FTL)时,可以改进存储器系统110的数据输入/输出速度(或性能)。根据一个实施例,可以通过多核处理器中的不同核心来独立地执行存储器系统110中的数据输入/输出(I/O)操作。

控制器130中的处理器134可以执行与从主机102输入的请求或命令相对应的操作。此外,存储器系统110可以独立于从外部设备(例如,主机102)输入的命令或请求。通常,由控制器130响应于从主机102输入的请求或命令而执行的操作可以被认为是前台操作,而由控制器130独立(例如,无论请求或命令如何)地执行的操作可以被认为是后台操作。控制器130可以针对存储器设备150中关于数据段的读取、写入或编程、擦除等而执行前台或后台操作。附加地,与设置参数命令或设置特征命令(如从主机102发射的设置命令)相对应的参数设置操作被认为是前台操作。此外,作为不具有从主机102发射的命令的后台操作,控制器130可以执行与存储器设备150中包括的多个存储块152、154、156相关的垃圾收集(GC)、损耗均衡(WL)、用于标识和处理坏块的坏块管理等。

根据一个实施例,可以执行基本相似的操作作为前台操作和后台操作。例如,如果存储器系统110响应于从主机102输入的请求或命令(例如,手动GC)而执行垃圾收集,则垃圾收集可以被认为是前台操作。然而,当存储器系统110独立于主机102执行垃圾收集(例如,自动GC)时,垃圾收集可以被认为是后台操作。

当存储器设备150包括具有非易失性存储单元的多个管芯(或多个芯片)时,控制器130可以被配置为执行关于从主机102输入的多个请求或命令的并行处理,以改进存储器系统110的性能。例如,所发射的请求或命令可以被同时划分和处理到存储器设备150中的多个管芯或多个芯片中。控制器130中的存储器接口142可以通过至少一个信道和至少一个通路而连接至存储器设备150中的多个管芯或芯片。当控制器130响应于与包括非易失性存储单元的多个页面相关联的请求或命令而通过每个信道或每个通路在多个管芯中分配和存储数据段时,与该请求或命令相对应的多个操作可以同时或并行执行。这样的处理方法或方案可以被认为是交织方法。因为以交织的方法操作的存储器系统110的数据输入/输出速度可以比没有交织方法的存储器系统110的数据输入/输出速度快,所以可以改进存储器系统110的数据I/O性能。

作为示例而非限制,控制器130可以识别与多个信道(或通路)有关的状态,该多个信道(或通路)与存储器设备150中包括的多个存储管芯相关联。控制器130可以将每个信道或每个通路的状态确定为繁忙状态、就绪状态、活动状态、空闲状态、正常状态和/或异常状态之一。控制器对指令(和/或数据)通过哪个信道或哪个通路进行传递的确定可以与物理块地址(例如,指令(和/或数据)传递到哪个(哪些)管芯)相关联。控制器130可以参考从存储器设备150传递的描述符(descriptor)。描述符可以包括描述关于存储器设备150的某些事项的参数块或参数页面,某些事项是具有预定格式或结构的数据。例如,描述符可以包括设备描述符、配置描述符、单元描述符等。控制器130可以参考或使用描述符来确定经由哪个(哪些)信道或通路来交换指令或数据。

参考图2,存储器系统110中的存储器设备150可以包括多个存储块152、154、156。多个存储块152、154、156中的每一个包括多个非易失性存储单元。根据一个实施例,存储块152、154、156可以是一起擦除的非易失性存储单元组。存储块152、154、156可以包括多个页面,多个页面是一起读取或编程的非易失性存储单元组。尽管未在图2中示出,但是每个存储块152、154、156可以具有用于高集成度的三维堆叠结构。此外,存储器设备150可以包括多个管芯,每个管芯包括多个平面,每个平面包括多个存储块152、154、156。存储器设备150的配置可以针对存储器系统110的性能而不同。

在图2所示的存储器设备150中,包括多个存储块152、154、156。根据可以在一个存储单元中存储或表示的比特数量,多个存储块152、154、156可以是不同类型的存储块(例如,单级单元(SLC)存储块、多级单元(MLC)存储块等)中的任一类型的存储块。这里,SLC存储块包括由各自存储一比特数据的多个存储单元实现的多个页面。SLC存储块可以具有较高的数据I/O操作性能和较高的耐用性。MLC存储块包括由各自存储多比特数据(例如,两比特或更多比特)的多个存储单元实现的多个页面。与SLC存储块相比,MLC存储块在相同的空间内可以具有更大的存储容量。考虑到存储容量,MLC存储块可以高度集成。在一个实施例中,存储器设备150可以利用MLC存储块(例如,双级单元(DLC)存储块、三级单元(TLC)存储块、四级单元(QLC)存储块及其组合)来实现。双级单元(DLC)存储块可以包括由各自能够存储2比特数据的多个存储单元实现的多个页面。三级单元(TLC)存储块可以包括由各自能够存储3比特数据的多个存储单元实现的多个页面。四级单元(QLC)存储块可以包括由各自能够存储4比特数据的多个存储单元实现的多个页面。在另一实施例中,可以利用块来实现存储器设备150,该块包括由各自能够存储5比特或更多比特数据的多个存储单元实现的多个页面。

根据一个实施例,控制器130可以使用存储器系统150中包括的多级单元(MLC)存储块作为在一个存储单元中存储一比特数据的SLC存储块。多级单元(MLC)存储块的数据输入/输出速度可能比SLC存储块的数据输入/输出速度慢。即,当将MLC存储块用作SLC存储块时,可以减少用于读取或编程操作的余量。当使用多级单元(MLC)存储块作为SLC存储块时,控制器130可以利用多级单元(MLC)存储块的更快的数据输入/输出速度。例如,因为缓冲器可能需要高的数据输入/输出速度来改进存储器系统110的性能,因此控制器130可以使用MLC存储块作为临时存储数据段的缓冲器。

此外,根据一个实施例,控制器130可以在无需对存储器系统150中包括的特定MLC存储块执行擦除操作的情况下,在多级单元(MLC)中对数据段进行多次编程。通常,非易失性存储单元具有不支持数据覆写的特征。然而,控制器130可以使用其中多级单元(MLC)可以存储多比特数据的特征,以在MLC中对多个1比特数据段进行多次编程。对于MLC覆写操作,当在非易失性存储单元中对1比特数据进行编程时,控制器130可以将编程次数存储为单独的操作信息。根据一个实施例,可以在同一非易失性存储单元中覆写另一数据段之前,执行用于均匀地均衡非易失性存储单元的阈值电压的操作。

在本公开的一个实施例中,存储器设备150被实现为非易失性存储器(例如,诸如NAND闪存、NOR闪存等的闪存)。备选地,存储器设备150可以由相变随机存取存储器(PCRAM)、铁电随机存取存储器(FRAM)、旋注入磁存储器(STT-RAM)和旋转移力矩磁随机存取存储器(STT-MRAM)等中的至少一个来实现。

参考图3,描述了根据本公开的一个实施例的存储器系统中的控制器。控制器130与主机102和存储器设备150协作。如图所示,控制器130包括主机接口132、闪存转译层(FTL)240以及如图2中所示的主机接口132、存储器接口142和存储器144。

尽管未在图3中示出,但是根据一个实施例,图2中描述的ECC电路138可以包括在闪存转译层(FTL)240中。在另一实施例中,ECC电路138可以实现为控制器130所包括的或与控制器130相关联的单独的模块、电路、固件等。

主机接口132可以对从主机102发射的命令、数据等进行处理。作为示例而非限制,主机接口132可以包括命令队列56、缓冲管理器52和事件队列54。命令队列56可以顺序地存储从主机102接收的命令、数据等,并且按照它们被存储的顺序将它们输出到缓冲管理器52。缓冲管理器52可以对从命令队列56接收的命令、数据等进行分类、管理或调整。事件队列54可以顺序发射用于对从缓冲管理器52接收的命令、数据等进行处理的事件。

可以从主机102发射具有相同特性的多个命令或数据(例如,读取或写入命令),或者具有不同特性的命令和数据可以在被主机102混合或混杂之后发射到存储器系统110。例如,用于读取数据的多个命令(读取命令)可以传递到存储器系统110,或者用于读取数据的命令(读取命令)和用于对数据进行编程/写入的命令(写入命令)可以交替地发射到存储器系统110。主机接口132可以将从主机102发射的命令、数据等顺序地存储到命令队列56。此后,主机接口132可以根据已从主机102输入的命令、数据等的特性来估计或预测控制器130将执行什么类型的内部操作。主机接口132可以至少基于命令、数据等的特性来确定命令、数据等的处理顺序和优先级。根据从主机102发射的命令、数据等的特性,主机接口132中的缓冲管理器52被配置为确定缓冲管理器是否应将命令、数据等存储在存储器144中,或者缓冲管理器是否应将命令、数据等传递到闪存转译层(FTL)240中。事件队列54接收从缓冲管理器52输入的事件,这些事件将由存储器系统110或控制器130响应于从主机102发射的命令、数据等而在内部被执行或被处理,从而以接收的顺序将事件传递到闪存转译层(FTL)240中。

根据一个实施例,图3中描述的闪存转译层(FTL)240可以用作执行数据输入/输出(I/O)操作的多线程方案。可以使用控制器130中包括的多线程,通过多核处理器来实现多线程FTL。

根据一个实施例,闪存转译层(FTL)240可以包括主机请求管理器(HRM)46、映射管理器(MM)44、状态管理器(GC/WL)42和块管理器(BM/BBM)48。主机请求管理器(HRM)46可以管理从事件队列54输入的事件。映射管理器(MM)44可以处理或控制映射数据。状态管理器42可以执行垃圾收集(GC)或损耗均衡(WL)。块管理器48可以在存储器设备150中的块上执行命令或指令。

作为示例而非限制,主机请求管理器(HRM)46可以使用映射管理器(MM)44和块管理器48,以根据从主机接口132传递的读取和编程命令以及事件来处理请求。主机请求管理器(HRM)46可以向映射数据管理器(MM)44发送查询请求,以确定与输入有事件的逻辑地址相对应的物理地址。主机请求管理器(HRM)46可以将具有物理地址的读取请求发送到存储器接口142,以处理读取请求(处理事件)。另一方面,主机请求管理器(HRM)46可以向块管理器48发送编程请求(写入请求),以将数据编程到存储器设备150中的特定空页面(无数据),然后可以向映射管理器(MM)44发送与编程请求相对应的映射更新请求,以在将逻辑地址-物理地址相互映射的信息中更新与编程数据有关的项。

此处,块管理器48可以将从主机请求管理器(HRM)46、映射数据管理器(MM)44和/或状态管理器42传递的编程请求转换为用于存储器设备150的闪存编程请求,以管理存储器设备150中的闪存块。为了将存储器系统110(参见图2)的编程或写入性能最大化或增强,块管理器48可以收集编程请求并将用于多平面和单次编程操作的闪存编程请求发送到存储器接口142。在一个实施例中,块管理器48向存储器接口142发送若干闪存编程请求,以将多信道和多向闪存控制器的并行处理增强或最大化。

另一方面,块管理器48可以被配置为根据有效页面的数量来管理存储器设备150中的块、在需要空闲块时选择并擦除不具有有效页面的块,以及在确定需要进行垃圾收集时,选择包括最少数量的有效页面的块。状态管理器42可以执行垃圾收集,以将有效数据移动到空块并擦除包含所移动的有效数据的块,使得块管理器48可以具有足够的空闲块(没有数据的空块)。如果块管理器48向状态管理器42提供关于待擦除的块的信息,则状态管理器42检查待擦除的块的所有闪存页面来确定每个页面是否有效。例如,为了确定每个页面的有效性,状态管理器42可以标识在每个页面的带外(OOB)区域中记录的逻辑地址。为了确定每个页面是否有效,状态管理器42可以将页面的物理地址与映射到从查询请求获得的逻辑地址的物理地址进行比较。状态管理器42针对每个有效页面,向块管理器48发送编程请求。当编程操作完成时,可以通过映射管理器44的更新来更新映射表。

映射管理器44可以管理逻辑-物理映射表。映射管理器44可以处理由主机请求管理器(HRM)46或状态管理器42生成的请求(例如,查询、更新等)。映射管理器44可以将整个映射表存储在存储器设备150(例如,闪存/非易失性存储器)中,并且根据存储器144的存储容量而将映射条目高速缓存。当在处理查询或更新请求的同时发生映射高速缓存丢失(miss)时,映射管理器44可以将读取请求发送到存储器接口142,以加载存储器设备150中存储的相关映射表。当映射管理器44中的脏高速缓存块的数量超过特定阈值时,可以将编程请求发送到块管理器48,从而创建清洁的高速缓存块,并且脏映射表可以被存储在存储器设备150中。

另一方面,当执行垃圾收集时,状态管理器42将(多个)有效页面复制到空闲块中,并且主机请求管理器(HRM)46可以对用于页面的同一逻辑地址的最新版本的数据进行编程,并当前发出更新请求。当状态管理器42在未正常完成(多个)有效页面的复制的状态下请求映射更新时,映射管理器44可以不执行映射表更新。这是因为,如果状态管理器42请求映射更新并且稍后完成有效页面复制的话,则发布具有旧物理信息的映射请求。映射管理器44可以执行映射更新操作,以仅在最新映射表仍指向旧物理地址的情况下确保准确性。

参考图1至图3,存储器系统110可以执行前台操作(即,响应于从主机102输入的请求的操作)或后台操作(即,与从主机102输入的任何请求无关的操作)。根据一个实施例,存储器系统110可以以带内通信方式来传送对前台操作的响应,并且可以以OOB通信方式将操作状态通知给主机102。

图4示出了根据本公开的一个实施例的数据处理系统中的带外(OOB)通信的第一示例。尽管在图1至图3中未示出,但是主机102和存储器系统110可以独立地包括用于执行OOB通信的发射器TX和接收器RX。从主机的发射器(Host TX)输出的信号可以被存储器系统的接收器(Memory System RX)接收,而从存储器系统的发射器(Memory System TX)输出的信号可以被主机的接收器(Host RX)接收。具体地,图4图示了用于在主机102和存储器系统110之间建立OOB通信的过程的一个示例。

参考图4,可以向处于关断状态(Host Power Off)的主机提供电力(Host PowerOn)。主机的发射器(Host TX)可以升高通过OOB通信方式而发射的信号的电平,以通知存储器系统已向主机施加电力。主机的发射器(Host TX)可以输出重置信号COMRESET。在此,重置信号COMRESET可以从主机传送到存储器系统。重置信号可以用作用于将OOB通信初始化的信号。

电力被施加到主机以及存储器系统。当向处于关断状态的存储器系统(Memorysystem Power Off)提供电力时,存储器系统可以导通(Memory System Power On)。接收从主机的发射器(Host TX)输出的重置信号COMRESET的存储器系统可以输出初始化信号COMINIT。初始化信号COMINIT可以从存储器系统的发射器发射到主机的接收器。初始化信号COMINIT可以用作对重置信号COMRESET的响应,该重置信号COMRESET用于对OOB通信进行初始化。

通过重置信号COMRESET和初始化信号COMINIT,可以检查主机和存储器系统是否可以执行OOB通信。当主机识别出OOB通信可用时,主机的发射器(Host TX)将不再发射重置信号COMRESET(Host Releases COMRESET)。当主机的发射器(Host TX)不发送重置信号COMRESET(Host Releases COMRESET)时,存储器系统的发射器(Memory System TX)不再输出初始化信号COMINIT(Memory System Releases COMINIT)。

当主机和存储器系统均处于能够执行OOB通信的状态时,主机可以执行针对OOB通信的校准(Host Calibrate)。在主机执行校准之后,主机可以将通信唤醒信号COMWAKE输出到存储器系统(Host COMWAKE)。接收从主机的发射器(Host TX)输出的唤醒信号COMWAKE的存储器系统可以执行校准(Memory System Calibrate)。主机可以停止发射唤醒信号(HostReleases COMWAKE)。在执行校准之后,存储器系统可以将唤醒信号COMWAKE输出到主机作为响应(Memory System COMWAKE)。虽然重置信号COMRESET和初始化信号COMINIT是可以由特定设备(例如,主机或存储器系统)传送的信号类型,但是唤醒信号COMWAKE可以是可以从主机到存储器系统(反之亦然)双向发射和接收的信号类型。当主机和存储器系统交换唤醒信号COMWAKE时,用于布置主机和存储器系统之间的OOB通信的过程可以完成。

当主机和存储器系统之间的OOB通信被初始化和布置时,主机和存储器系统可以确定或协商以OOB通信方式传送和接收数据段或信息的速度(称为Speed Negotiation或Speed Determination)。例如,在主机和存储器系统向彼此发送和从彼此接收唤醒信号COMWAKE之后,存储器系统的发射器(Memory System TX)可以开始以存储器系统的发射器支持或可用的最高速度来发送连续的对准信号流。响应于连续流,主机的发射器(Host TX)可以以主机发射器支持或可用的预设速度开始发射速度检查信号(例如,D10.2字符)。当主机支持存储器系统的发射器(Memory System TX)发射对准信号的速度时,主机的接收器(Host RX)可以根据所接收对准信号来确定通信速度(速率)。主机的发射器(Host TX)可以以确定的速度(该确定的速度与从存储器系统的发射器传送对准信号的速度相同)将速度检查信号(例如,D10.2字符)发射到存储器系统的接收器(Memory System RX)。当主机接收器(Host RX)以低于预设速度的速度接收对准信号时,主机可以执行速度确定(即,调整/降低传输速度),以使得用于OOB通信的传输速度与存储器系统可以支持的速度相匹配(HostSteps Down to Lower Speed)。另一方面,当主机的接收器(Host RX)以高于预设速度的速度接收对准信号时,主机的发射器(Host TX)可以响应于存储器系统所支持的速度来调整/增加传输速度。在速度确定期间,主机的发射器(Host TX)可以发射重置信号COMRESET,并且主机和存储器系统可以重新启动OOB通信(Start Over with COMRESET,Memory SystemResets Start Over)。当通过上述过程确定了用于OOB通信的传输速率时,主机和存储器系统可以以所确定的速率以OOB通信方式发射和接收数据段。

在图4中,主机和存储器系统可以将彼此之间的OOB通信初始化,并确定用于OOB通信的数据传送速率。根据一个实施例,可以在不确定数据传送速率的情况下,执行主机和存储器系统之间的OOB通信。

图5A和图5B描述了根据本公开的一个实施例的关于如何生成或传送用于OOB通信的脉冲的第一示例。例如,存储器系统的发射器可以生成如图5A和图5B所示的两个不同的信号。

支持OOB通信方式的存储器系统可以生成具有预设周期数的脉冲,脉冲用于发射和接收数据段。参考图5A和图5B,由存储器系统的发射器生成的脉冲的周期可以基于待发射到主机的数据段、代码等而不同。脉冲可以包括用于单个周期的活动状态WSA、WSB和非活动状态WSA'、WSB'。活动状态WSA或WSB和非活动状态WSA'或WSB'可以具有相同的时间长度。例如,当在图5A中描述的脉冲的活动状态WSA具有1秒的长度时,与活动状态WSA相对应的非活动状态WSA'的长度也为1秒,使得脉冲的一个周期具有2秒的长度。图5B中描述的脉冲可以具有比图5A中描述的脉冲更长的时段。例如,当活动状态WSB具有1.5秒的长度时,与活动状态WSB相对应的非活动状态WSB'也具有1.5秒的长度,使得脉冲的一个周期具有3秒的长度。

可以预先布置存储器系统和主机通过OOB通信方式发射或接收的数据的格式(或结构)。例如,存储器系统通过OOB通信方式发射的数据段可以以具有预设格式/结构的分组的形式输出。分组的预设格式可以包括两个变量(即,一个变量指示分组的开始而一个变量指示分组的结束),以及布置在指示分组的开始和结束的两个变量之间的预设数量的比特。当确定了分组的长度并且分组的长度不可改变时,可以省略指示分组的结束的变量。例如,分组可以包括10比特,其中分组的1比特数据对应于脉冲的单个周期。可以利用总共10个周期的脉冲来实现分组。当分组的开始被布置为具有1秒长度的脉冲时,10个周期的脉冲的第一周期可以具有1秒的长度。在这种情况下,第一周期的活动状态可以具有0.5秒的长度,而非活动状态可以具有0.5秒的长度。

根据一个实施例,在图5A和图5B中描述的脉冲可以适用于图4中描述的重置信号COMRESET、开始信号COMINIT或唤醒信号COMWAKE。

图6图示了根据本公开的一个实施例的生成或传送用于OOB通信的脉冲的第二示例。

参考图6,由收发器针对OOB通信生成的脉冲的每个周期可以具有相同时间长度的活动状态和具有不同时间长度的非活动状态。例如,图4中所示的重置信号COMRESET和开始信号COMINIT可以利用相同的脉冲来实现,该脉冲具有活动状态T1和比活动状态T1更长的非活动状态。唤醒信号COMWAKE可以具有活动状态T1,活动状态T1的时间长度可以与重置信号COMRESET和开始信号COMINIT的活动状态的时间长度相同,但是唤醒信号COMWAKE的非活动状态的时间长度可以与重置信号COMRESET和开始信号COMINIT的非活动状态的时间长度不同。

参考图5A、图5B和图6,通过OOB通信方式发射和接收的脉冲的周期可以不同。在图5A至图5B所示的脉冲中,可以调整活动状态和非活动状态的时间长度。但是,在图6所示的脉冲中,可以调整非活动状态的时间长度,但是可以固定活动状态的时间长度。当通过OOB通信方式来发射和接收更多各种类型的信息和数据时,参考图5A和图5B描述的脉冲可能比图6所示的脉冲更有效。

图7描述了根据本公开的一个实施例的OOB通信的代码配置。根据一个实施例,通过OOB通信方式发射和接收的数据段可以以具有预设格式的分组来实现。为了通过OOB通信方式在存储器系统和主机之间传递包括存储器系统的操作状态的各种类型的信息或数据,可能需要建立可以通过OOB通信方式发射的分组的配置。

参考图7,可以在分组中包括多个数据段或信息作为存储器系统的操作状态,该分组可以通过OOB通信方式来发射。分组中包括的代码可以被配置为将关于存储器系统的操作状态的多个数据段有效地发射到主机。根据一个实施例,代码可以利用表示4比特数据或信息的半字节(nibble)来实现。

在一个实施例中,分组可以包括第一类型项和第二类型项。第一类型项可以包括与存储器系统中的空闲状态、数据输入/输出处理状态、以及示出顺序写入操作或随机写入操作的状态有关的多个参数或代码中的一个。第二类型项可以包括与第一类型项相对应的变量。

例如,第一代码0H可用于通知主机,存储器系统是否处于空闲状态。当存储器系统未向主机发射关于其空闲状态(Idle)的任何信息时,主机可以确定存储器系统处于空闲状态,在空闲状态下,主机不向存储器系统发射用于数据输入/输出的命令或请求(例如,读取或写入)。然而,即使没有命令或请求从主机发射到存储器系统,存储器系统也可能正在执行后台操作或在从主机发射的命令或请求之后的后续操作。即,当主机确定的定时与存储器系统的空闲状态的实际定时之间存在差异时,数据处理系统的性能可能不会得到增强。因此,存储器系统可以向主机发射指示存储器系统是否处于空闲状态(Idle)的操作状态。

作为另一示例,第二代码1H可以用于存储器系统,以请求中止主机处的用于数据输入/输出的请求或命令。当存储器系统无法执行从主机输入的数据I/O请求或命令时(维持状态),存储器系统可以要求主机将数据I/O请求或数据I/O命令保留一个时间段,例如直到存储器系统准备好响应于数据I/O请求或数据I/O命令来执行另一数据I/O操作(非维持状态)。响应于与第二代码1H相对应的变量,主机可以在将数据输入/输出请求或命令发射到存储器系统之前对其进行缓冲(例如,暂时保留),并在主机识别出存储器系统已准备好执行另一数据I/O操作时,向存储器系统发射缓冲器中存储的数据输入/输出请求或命令。

作为另一示例,第三代码2H可以用于向主机传送关于顺序写入操作的存储器系统的操作状态,且第四代码3H可以用于向主机传送关于随机写入操作的存储器系统的操作状态。可以基于在存储器系统中如何对多个数据段进行访问来区分顺序写入操作和随机写入操作。当从紧接先前数据I/O操作的最后一个物理或逻辑地址之后的物理或逻辑地址执行当前数据I/O操作时,这些数据I/O操作可以被描述为顺序操作。否则,这些数据I/O操作可以被描述为随机操作。参考图2至图3,可以由存储器系统110的控制器130确定存储器设备150中存储的数据的位置(即,物理地址),该位置可以与主机所使用的逻辑地址不同。与逻辑地址相关联的物理地址由控制器130动态确定。用于访问数据的物理地址可以不是连续的,而用于数据的逻辑地址则是连续的。可以基于与多个数据段相关联的物理地址或逻辑地址来确定顺序操作或随机操作。通常,当将顺序写入操作与随机写入操作进行比较时,顺序写入操作可以比随机写入操作更快地完成。此外,当写入数据的大小较小时,顺序写入操作可以比随机写入操作更快。然而,如果写入数据的大小大于预设量,则可以在存储器系统中类似地执行写入数据的并行处理,使得顺序写入操作的操作时间与随机写入操作的操作时间之间没有大的差异。

具体地,当存储器系统可以经由第三代码2H,将与顺序写入操作繁忙有关的操作状态传送到主机时,主机可以在传送顺序写入请求之前,将与顺序写入请求相关联的数据的大小从小组块(small chunk)改变为大组块(big chunk)。相反,当存储器系统中与顺序写入操作有关的操作状态不繁忙(not busy)时,主机在传送顺序写入请求之前,将与顺序写入请求相关联的数据的大小从大组块设置为小组块。响应于关于存储器系统的顺序写入操作的状态,主机可以改变与顺序写入请求一起发射的数据的大小,从而改进包括主机和存储器系统的数据处理系统的数据输入/输出性能。

附加地,当存储器系统可以经由与第四代码3H相关联的变量,向主机发射与存储器系统中的随机写入操作繁忙有关的操作状态时,主机可以将通常导致在存储器系统中的随机写入操作的写入请求收集在缓冲器中,而不是立即将写入请求发射到存储器系统,使得与所收集的写入请求相关联的多个数据段可以被更改为用于顺序写入操作的小组块数据,并且具有小组块数据的顺序写入请求被发射到存储器系统。然而,当关于存储器系统中的随机写入操作的操作状态不繁忙时,主机可以在无需在缓冲器中收集或采集多个数据段(每个数据段与随机写入请求相关联)的情况下,将具有数据段的随机写入请求发射到存储器系统。响应于与存储器系统中的随机写入操作有关的状态,主机可以将随机写入请求改变为顺序写入请求,或者可以维持随机写入请求,从而改进包括主机和存储器系统的数据处理系统的数据输入/输出性能。

作为另一示例,当存储器系统可以将关于协议修订(protocol revision)的信息传递到主机中时,可以使用协议代码EH。协议修订可以示出关于通过OOB通信方式发射的分组的配置。主机和存储器系统可以使用如下的协议,该协议用于建立可以通过OOB通信方式来交换哪种数据或信息。例如,如果主机和存储器系统可以将先前定义的内容识别为协议,并且内容没有变化,则主机和存储器系统可以检查协议版本。然而,当主机和存储器系统具有用于OOB通信方式的不同协议或不同版本的协议时,存储器系统可以向主机发射关于协议改变的信息。通过OOB通信方式发射的信息可以与存储器系统的操作状态有关。信息可以包括可以由存储器系统发射而不是由主机请求的数据段。重要的是,向主机通知存储器系统可以通过OOB通信方式传送的信息,这是因为主机可以识别存储器系统的性能。通过协议代码EH,可以允许存储器系统将有关协议版本或协议更改的信息传送到主机。

作为另一示例,当存储器系统不能通过OOB通信方式向主机发射任何信息时,可以使用停止代码FH。当存储器系统无法通过OOB通信方式提供有关操作状态的任何信息时,存储器系统可能有必要向主机通知这种情况来改进数据处理系统的性能。例如,当存储器系统进入睡眠模式时,存储器系统可能不通过OOB通信方式来发射关于操作状态的信息。在这种情况下,当存储器系统向主机发射指示存储器系统不通过OOB通信方式提供任何信息的分组时,主机可以不通过OOB通信方式接收或收集关于操作状态的信息。根据一个实施例,在通过OOB通信方式发射所有准备的信息之后,在进入睡眠模式之前,存储器系统可以通知主机停止发射的状态。当OOB通信不可用于存储器系统时,主机可以尝试请求存储器系统的操作状态并通过以带内通信方式使用的数据总线来接收与操作状态相关联的响应。

图7图示了可以从存储器系统发射的与存储器系统的操作状态相关联的代码的示例。根据一个实施例,关于存储器系统的操作状态的信息可以不同。此外,根据一个实施例,可以根据存储器系统中的操作状态的类型或特性来提供可以用于改进数据处理系统的性能的另一代码。

图8图示了根据本公开的一个实施例的数据处理系统的第一操作。

参考图8,数据处理系统中包括的存储器系统110和主机102可以通过OOB通信方式和带内通信方式准备并执行多个数据输入/输出(I/O)操作。

当向存储器系统110供电时,可以启动存储器系统110。存储器系统110可以通过OOB通信,向主机102发射关于协议改变(协议修订)的信息。在识别出从存储器系统110发射的协议建立信息的改变之后,主机102可以响应于协议的改变而对从存储器系统110发射的分组进行解码。例如,主机102可以基于协议的改变来设置数据代码。

当没有从主机102输入关于数据输入/输出操作的请求时,存储器系统110可以通过OOB通信方式向主机102通知存储器系统110处于空闲状态。主机102可以识别出存储器系统110处于空闲状态,并且可以继续执行先前调度或最新请求的操作。

在执行操作之后,主机102可以向存储器系统110发送诸如write same、后台介质扫描(BGMS)、驱动自检(DST)等的请求。在本文中,write same是用于优化存储器系统110中的写入操作的请求类型。例如,write same基本上是告知存储装置写入某个模式(例如,零)的SCSI操作。后台介质扫描BGMS可以是自启动介质扫描,以在存储器系统处于空闲状态时,跨存储器设备150的整个块执行顺序读取。当主机102将后台介质扫描发送到存储器系统110时,可能迫使存储器系统110执行后台介质扫描。后台介质扫描(BGMS)可以用作改进存储器系统110中的数据保留的请求。驱动自检(DST)可以设计为识别指示存储块(或芯片、平面等)是故障单元的驱动故障条件。例如,DST可以对存储器设备的与每个逻辑地址(LBA)相关联的驱动和扫描位置执行各种测试。主机102可以使用驱动自检作为用于检查存储器设备150的物理完整性的请求。

由于从主机102输入的write same、后台介质扫描(BGMS)或驱动自检(DST),存储器系统110难以执行与主机102发送的另一请求相对应的数据输入/输出操作。因此,存储器系统110可以通过OOB通信方式,向主机102通知其中由主机102发射的数据输入/输出命令可能不被立即执行的操作状态(维持状态)。

因为主机102可以基于通过OOB通信方式传递的操作状态(维持状态)识别出存储器系统110可能不立即执行数据输入/输出操作,所以主机102可以不向存储器系统110发送具有写入数据的写入请求,但是将写入请求和写入数据临时保留在缓冲器中。

参考图8,如果没有更多的请求或数据可以存储在主机102的缓冲器中,或者如果缓冲器中存储的请求或数据的量大于参考值,则主机102可以将所缓冲的请求传送到存储器系统110中。在这种情况下,即使在存储器系统110不能执行与写入请求相对应的操作的操作状态(维持状态)下,也可以将具有数据段的写入请求发射到存储器系统110。

附加地,在主机102继续将请求或数据存储在缓冲器中时,存储器系统110可以处于能够执行与从主机102输入的另一数据输入/输出请求相对应的操作的操作状态(非维持状态),并且可以通过OOB通信方式向主机通知该操作状态(非维持状态)。响应于通过OOB通信方式通知的存储器系统110的操作状态,主机102可以通过带内通信方式(例如,经由数据总线),将所缓冲的请求和数据传送到存储器系统110中。

图9图示了根据本公开的一个实施例的数据处理系统的第二操作。

参考图9,主机102可以将具有小组块数据的顺序写入请求发射到存储器系统110。存储器系统110可以存储与来自主机102的顺序写入请求一起输入的小组块数据。存储器系统110可以执行与主机102发送的顺序写入请求相对应的操作,并接收另一顺序写入请求。然而,由于各种原因(例如,存储器系统110的有限的输入/输出性能、来自主机102的许多顺序写入命令等),在存储器系统110执行与先前从主机102输入的顺序写入请求相对应的操作的同时,存储器系统110可能处于繁忙状态(SEQ_WRITE_BUSY的状态条目)。

通过OOB通信方式,存储器系统110可以向主机102通知存储器系统110的该操作状态(即,存储器系统110不能立即执行与从主机102新输入的顺序写入请求相对应的操作的繁忙状态)。

在主机102中,可能发生关于小组块数据的顺序写入请求。在主机102接收到存储器系统110的操作状态并且识别出存储器系统110处于用于顺序写入请求的繁忙状态之后,主机102不发射具有小组块数据的顺序写入请求,而是将顺序写入请求保留在缓冲器中。主机102可以将所缓冲的顺序写入请求和缓冲器中收集的小组块数据改变为具有大组块数据的另一顺序写入请求。具有大组块数据的经改变的顺序写入请求可以用于改进数据处理系统的数据输入/输出性能。因此,主机102可以将具有大组块数据的顺序写入请求发射到存储器系统110。

在本文中,小组块和大组块的大小可以根据实施例而变化。作为示例而非限制,如果大小大于512字节的数据被称为大组块数据,则大小小于512字节的其他数据可以被称为小组块数据。

存储器系统110可以根据从主机102输入的顺序写入请求的顺序,利用小组块或大组块数据来执行顺序写入请求。当存储器系统110确定与从主机102输入的数据输入/输出请求相对应的另一操作可以立即执行时,存储器系统110可以通过OOB通信方式,将操作状态(SEG_WRITE_NOT_BUSY)发射到主机102。

在主机102识别出存储器系统110不忙于执行与顺序写入请求相对应的操作之后,主机102不需要将具有小组块数据的顺序写入请求保留在缓冲器中,也不需要将具有小组块数据的顺序写入请求转换为具有大组块数据的另一顺序写入请求。因为存储器系统110不忙于执行与顺序写入请求(SEG_WRITE_NOT_BUSY)相对应的操作,所以主机102可以将具有小组块数据的顺序写入请求发射到存储器系统110。数据处理系统的性能不会因顺序写入请求而下降或恶化。

因为可能不期望数据处理系统的性能下降,所以主机102可以将具有小组块数据的顺序写入请求发射到存储器系统110。

通过上述过程,当存储器系统110向主机102发射关于与顺序写入请求相对应的操作的操作状态时,主机102可以基于存储器系统110的操作状态来调整数据I/O请求。例如,主机102可以改变待利用顺序写入请求而发射的数据的大小,从而避免数据处理系统中的数据输入/输出性能的劣化。

图10示出了根据本公开的一个实施例的数据处理系统的第三操作。图9描述了存储器系统110和主机102之间用于执行与顺序写入请求相对应的操作的过程,与图9不同,图10图示了存储器系统110和主机102关于随机写入请求的操作。

参考图10,主机102可以向存储器系统110发射随机写入请求。存储器系统110可以存储与来自主机102的随机写入请求一起传送的数据段。存储器系统110可以正常地执行与从主机102输入的随机写入请求相对应的操作,并且可以在执行该操作的同时接收另一随机写入请求。然而,由于各种原因(例如,存储器系统110的有限的输入/输出性能、来自主机102的许多顺序写入命令等),在存储器系统110执行与先前从主机102输入的随机写入请求相对应的操作的同时,存储器系统110可能处于繁忙状态(RAN_WRITE_BUSY的状态条目)。

通过OOB通信方式,存储器系统110可以向主机102通知存储器系统110的该操作状态(即,存储器系统110不能立即执行与从主机102新输入的随机写入请求相对应的操作的繁忙状态)。

在主机102中,可能发生关于另一数据段的随机写入请求。在主机102接收到存储器系统110的操作状态并且识别出存储器系统110处于繁忙状态(其中存储器系统110可能不会立即执行与随机写入请求相对应的操作)之后,主机102可以不发射具有其他数据段的随机写入请求,而是可以在缓冲器中收集或采集随机写入请求。主机102可以在将其他数据段传送到存储器系统110之前,将在缓冲器中收集或采集的随机写入请求改变为具有小组块数据的顺序写入请求。该过程可以改进数据处理系统的数据输入/输出性能。此后,主机102可以将具有预设大小的组块数据的经改变的顺序写入请求传送到存储器系统110。

存储器系统110可以执行与关于从主机102发射的预设大小的组块数据的顺序写入请求相对应的操作,使得可以修复由多个随机写入请求引起的性能下降(例如,数据处理系统的被随机写入请求降低的数据I/O性能可以通过顺序写入请求得到改进)。当确定可以立即执行与从主机102输入的后续数据输入/输出请求相对应的操作时,存储器系统110可以通过OOB通信,向主机102发射关于随机写入请求的非繁忙状态(RAN_WRITE_NOT_BUSY)。

在主机102识别出存储器系统110不忙于执行与随机写入请求相对应的操作之后,主机102不必将随机写入请求保留在用于将随机写入请求改变为顺序写入请求的缓冲器中。因为存储器系统110不忙于执行与随机写入命令(RAN_WRITE_NOT_BUSY)相对应的操作,所以确定即使主机102将具有数据段的随机写入请求发射到存储器系统110,也可能不会在数据处理系统中出现存储器系统110和主机102之间的数据输入/输出的性能下降或恶化。

此后,主机102可以将具有数据段的随机写入请求传送到存储器系统110。在本文中,与随机写入请求一起传送的数据的大小可以小于利用顺序写入请求发射的小组块数据块的大小。

通过上述过程,当存储器系统110向主机102发射关于随机写入请求的操作状态时,主机102可以临时保留多个随机写入请求,并将多个随机写入请求改变为顺序写入请求,从而改进数据处理系统的数据输入/输出性能。

此外,当确定或估计存储器系统110无法通过OOB通信方式向主机102发射操作状态时(例如,待机状态、睡眠模式等),存储器系统110可以通过OOB通信方式,将状态信息(STOP_TRANSMISSION)传送到主机102。当识别出存储器系统110不再以OOB通信方式向主机102发射操作状态时,主机可以不检查或监视通过OOB通信方式接收或传递的分组。

图11描述了根据本公开的一个实施例的以OOB通信方式用于分组的脉冲。

参考图11,存储器系统可以通过OOB通信方式,通过使用具有预设或协议限定的结构/格式的分组形式,将其操作状态发射到主机。在供电之后,用于OOB通信方式的线路(路径或信道)可以保持在指示非活动状态的第一电平(例如,逻辑高电平)处。存储器系统可以响应于待发送到主机的信息而将线路的第一电平改变为指示活动状态的第二电平(例如,逻辑低电平)。可以利用包括活动状态和非活动状态的周期脉冲来实现待传送的操作状态。参考图5,可以基于诸如待发射到主机的操作状态的信息来改变脉冲的周期。

根据一个实施例,以OOB通信方式发射的分组可以包括开始变量(分组的开始,SOP)、代码类型(Code)、状态变量(N0至N3)和错误检查变量(C0至C2)。在本文中,开始变量SOP可以指示分组的开始,分组可以具有由存储器系统和主机预定的周期。例如,开始变量SOP可以被实现为具有100毫秒长度的脉冲的单个周期(50毫秒的活动状态和50毫秒的非活动状态)。根据一个实施例,可以利用脉冲的多个周期来实现开始变量SOP。此外,开始变量(SOP)可以具有与分组的其他部分不同的唯一或独特的长度周期。例如,当以100毫秒的周期实现分组的开始变量SOP时,分组的另一部分(例如,代码或另一变量)不能具有100毫秒的周期。

尽管未示出,但是存储器系统中用于OOB通信的发射器可以使用用于延迟信号的电路来调整脉冲的周期或脉冲中的活动状态或非活动状态的时间长度。附加地,每当脉冲的逻辑电平改变时,存储器系统中的发射器可以将信号索引增加或对信号索引进行计数,以检查分组的长度。例如,当分组由九个周期的脉冲组成时,信号索引可以从1增加到18。对于另一示例,当存储器系统对脉冲的周期进行计数时,周期索引可以从1增加到9。

分组可以在开始变量SOP之后包括代码。如以上参考图7所描述的,可以通过对与存储器系统执行的操作有关的数据或信息进行分类来定义代码。参考图8至图10,存储器系统可以通过使用预设代码,将与内部执行的各种操作相对应的操作状态发射到主机,使得主机可以基于存储器系统的操作状态来执行或调整关于数据输入/输出的操作。

分组可以在代码之后包括状态变量(N0至N3)。在图11中,状态变量可以利用数据N0至N3的四个半字节(即,脉冲中的四个周期)来实现,但是根据实施例可以改变。例如,第四半字节N3和第三半字节N2可以具有84毫秒的周期(各自具有42毫秒的活动状态),并且第二半字节N1可以具有86毫秒的周期(43毫秒的活动状态)。第一半字节N0可以具有104毫秒的周期(52毫秒的活动状态)。根据一个实施例,与每个周期相对应的值可以变化,并且每个周期可以与可以示出4比特数据或信息的半字节相对应。在这种情况下,一个周期的脉冲可以表示四比特信息,并且每个周期可以具有至少16个不同的时间长度。例如,当每个周期的活动状态被调整1毫秒时,一个周期可以被调整2毫秒。

分组可以在状态变量N0至N3之后包括错误检查变量C0至C2。根据一个实施例,错误检查变量C0至C2可以包括校验或循环冗余检查(CRC)。在图11中,可以将用于循环冗余检查(CRC)的三个半字节数据(即,脉冲的三个周期)分配给错误检查变量C0至C2。参考图11,第三半字节C2可具有84毫秒的周期(活动状态为42毫秒),第二半字节C1可具有108毫秒的周期(活动状态为54毫秒),并且第一半字节C0可具有106毫秒的周期(活动状态为53毫秒)。

参考图11,在传递包括脉冲的九个周期的单个分组之后,可以存在用于另一分组的1秒的等待时间。在1秒的等待时间期间,存储器系统的发射器可以将信号索引(或周期索引)初始化来为另一分组做准备。当不存在以OOB通信方式传送的分组时,用于OOB通信的线路(路径或信道)可以保持非活动状态。用于阐明分组之间的区别的分组间等待时间(两个相邻分组之间的等待时间)可以基于实施例而不同。在一个实施例中,等待时间可以长于单个分组的最大长度(例如,九个周期的最大长度)。根据一个实施例,当等待时间长于分组中最大时间的至少两个周期时,可以使用等待时间来将两个相邻分组彼此区分开。

在图11中,具有9个半字节(9个4比特数据段)的分组利用脉冲的9个周期来实现。然而,根据一个实施例,分组中包括的半字节的数量和分组中包括的数据或信息可以改变。

图12A至图12I图示了根据本公开的一个实施例的以OOB通信方式使用的分组配置。作为示例而非限制,图12A至图12I图示了以OOB通信方式发射的分组的各种配置。分组可以包括指示存储器系统的操作状态的信息。根据一个实施例,可以利用各种组合来实现待传递的分组。例如,通过OOB通信方式发射的分组包括开始变量、代码、状态变量和错误检查变量。

参考图12A,将描述存储器系统向主机传递空闲状态的情况。例如,脉冲可以包括开始变量SOP(例如,40毫秒的周期(活动状态为20毫秒))。脉冲进一步包括与六位代码“0H”相对应的周期(例如,24毫秒的周期(活动状态为12毫秒))。脉冲可以在代码“0H”之后包括状态变量(六位代码“0H”的NIB)(例如,24毫秒的周期(活动状态为12毫秒))。脉冲还可以在状态变量之后包括错误检查变量(六位代码“4H”的CRC)(例如,32毫秒的周期(活动状态为16毫秒))。

参考图12B,存储器系统可以将其操作状态(维持状态)传送到主机。在维持状态下,存储器系统可以不立即执行与从主机输入的数据输入/输出请求相对应的操作。例如,脉冲可以包括类似于图12A中所示的、与开始变量SOP相对应的40毫秒的第一周期(活动状态为20毫秒)。在第一周期之后可以是与六位代码“1H”相对应的周期(例如,26毫秒的周期(活动状态为13毫秒))。脉冲还包括状态变量(六位代码“0H”的NIB)(例如,24毫秒的周期(活动状态为12毫秒))。脉冲可以包括与六位代码“5H”的CRC相对应的错误检查变量(例如,34毫秒的周期(活动状态为17毫秒))。

参考图12C,存储器系统可以将其操作状态(非维持状态)传送到主机。在非维持状态下,存储器系统可以立即执行与从主机输入的数据输入/输出请求相对应的操作。例如,用于传送非维持状态的脉冲可以包括类似于如图12A和图12B所示的开始变量SOP(例如,40毫秒的周期(活动状态为20毫秒))。脉冲还包括与六位代码“1H”相对应的周期(具有26毫秒的时间长度(活动状态为13毫秒))。脉冲可以包括与六位代码“1H”的NIB相对应的状态变量(以26毫秒的周期(活动状态为13毫秒)实现)。脉冲可以包括与六位代码“6H”的CRC相对应的错误检查变量(通过36毫秒的周期(活动状态为18毫秒)来表示)。

参考图12D,存储器系统可以将与顺序写入操作繁忙(Sequential Write Busy)有关的操作状态发射到主机。在该操作状态(Sequential Write Busy)中,存储器系统可以不立即执行与从主机新输入的顺序写入请求相对应的操作。例如,脉冲可以包括类似于参考图12A至图12C所描述的、与分组的开始变量SOP相对应的第一周期(该第一周期具有40毫秒的时间长度(活动状态为20毫秒))。脉冲可以包括由28毫秒的周期(活动状态为14毫秒)表示的六位代码“2H”。脉冲可以包括与六位代码“0H”的NIB相对应的状态变量(其与24毫秒的周期(活动状态为12毫秒)相对应)。脉冲可以进一步包括与六位代码“7H”的CRC相对应的错误检查变量(其与38毫秒的周期(活动状态为19毫秒)相对应)。

参考图12E,表格可以描述当存储器系统将与顺序写入操作不繁忙(SequentialWrite Not Busy)有关的操作状态发射到主机时的分组配置。在该操作状态(SequentialWrite Not Busy)下,存储器系统可以准备好立即执行与从主机新输入的顺序写入请求相对应的操作。例如,脉冲可以包括类似于参考图12A至图12D描述的、以40毫秒的周期(活动状态为20毫秒)实现的开始变量SOP。脉冲可以在开始变量之后包括由28毫秒(活动状态为14毫秒)周期表示的六位代码“2H”。脉冲可以进一步包括与六位代码“1H”的NIB相对应的状态变量(其具有26毫秒的周期(活动状态为13毫秒))。脉冲可以包括与六位代码“8H”的CRC相对应的错误检查变量(可以利用42毫秒的周期(活动状态为21毫秒)来实现)。

参考图12F,当存储器系统将与随机写入操作繁忙(Random Write Busy)有关的操作状态发射到主机时,可以使用示出分组配置的表格。在该操作状态(Random Write Busy)中,存储器系统可以不立即执行与从主机新输入的随机写入请求相对应的操作。例如,与分组相对应的脉冲可以包括与类似于图12A至图12E所示的开始变量SOP相对应的40毫秒的周期(活动状态为20毫秒)。脉冲还可以在开始变量SOP之后包括利用30毫秒的周期(活动状态为15毫秒)实现的六位代码“3H”。脉冲可以包括与六位代码“0H”的NIB相对应的状态变量(由24毫秒的周期(活动状态为12毫秒)表示)。脉冲可以进一步包括与六位代码“9H”的CRC相对应的错误检查变量(可以具有44毫秒的时间长度(活动状态为22毫秒))。

参考图12G,存储器系统可以将分组发射到主机。分组示出与随机写入操作不繁忙(Random Write Not Busy)有关的操作状态。在该操作状态(Random Write Not Busy)下,存储器系统可以准备执行与从主机新输入的随机写入请求相对应的操作。例如,与分组相对应的脉冲可以包括类似于图12A至图12F中所描述的、利用40毫秒的周期(活动状态为20毫秒)实现的开始变量SOP。脉冲可以在开始变量之后进一步包括由30毫秒的周期(活动状态为15毫秒)表示的六位代码“3H”。脉冲可以包括与六位代码“1H”的NIB相对应的状态变量(其可以具有26毫秒的时间长度(活动状态为13毫秒))。脉冲可以包括与六位代码“AH”的CRC相对应的错误检查变量(可以利用46毫秒的周期(活动状态为23毫秒)来实现)。

参考图12H,当存储器系统将协议修订传递到主机时,可以使用示出分组配置的表格。通过该分组,存储器系统可以向主机通知存储器系统可以生成并传送多少种类型的有关操作(例如,操作状态)的数据和信息。例如,与分组相对应的脉冲可以包括类似于图12A至图12G所示的、利用40毫秒的周期(活动状态为20毫秒)实现的开始变量SOP。脉冲可以在开始变量之后进一步包括由32毫秒的周期(活动状态为16毫秒)表示的六位代码“EH”。脉冲可以包括与六位代码“3H”的NIB相对应的状态变量(其可以具有30毫秒的时间长度(活动状态为15毫秒))。脉冲可以包括与六位代码“BH”的CRC相对应的错误检查变量(利用48毫秒的周期(活动状态为24毫秒)来实现)。

参考图12I,当存储器系统向主机传递停止传输时,可以使用示出分组配置的表格。使用该分组,存储器系统可以向主机通知存储器系统不再以OOB通信方式传送数据或信息的操作状态。例如,与分组相对应的脉冲可以包括类似于参考图12A至图12H所描述的、由40毫秒的周期(活动状态为20毫秒)表示的开始变量SOP。脉冲在开始变量SOP之后可以进一步包括由34毫秒的周期(活动状态为17毫秒)表示的六位代码“FH”。脉冲可以包括与六位代码“0H”的NIB相对应的状态变量(其具有24毫秒的时间长度(活动状态为12毫秒))。脉冲可以包括与六位代码“CH”的CRC相对应的错误检查变量(可以利用50毫秒的周期(活动状态为25毫秒)来实现)。

参考图12A至图12I,可以根据从存储器系统发射到主机的操作状态的类型(例如,代码)、状态变量等来配置通过OOB通信方式发射和接收的分组。根据一个实施例,可以基于传递什么类型的操作状态或一次传递多少个操作状态来不同地配置通过OOB通信方式发射和接收的分组。

图13示出了根据本公开的一个实施例的以OOB通信方式使用的规范的第一示例。

参考图13,存储器系统可以通过OOB通信方式,将温度信息发射到主机。例如,携带温度信息的分组可以具有多达32个字节的长度。构成分组的11个字节中的每个字节可以与参考图13描述的预定义信息匹配。

参考图11至图12I,存储器系统可以通过OOB通信方式,将包括九个半字节的分组发射到主机。九个半字节(每个半字节对应于4比特数据)可以包含由36比特表示的数据。根据一个实施例,如果以字节(每个字节与8比特匹配)为单位来重构九个半字节(36比特),则一个分组可以包括4字节的数据。例如,第一字节(0字节)、第五字节(4字节)、第六字节(5字节)、第七字节(6字节)、第八字节(7字节)、第九个字节(8字节)和第十一字节(10字节)中包含的一些信息和数据可以被选择、重构并插入到以OOB通信方式使用的、包括4个字节数据的分组中。

当主机或外部设备检查或监视存储器系统的温度信息时,可以增强存储器系统的操作可靠性或安全性。温度信息可以用于测试。例如,以OOB通信方式使用的分组可以包括与图13中所示的第九字节(8字节)和第十字节(10字节)中包括的测试模式字段和测试模式温度字段有关的信息或数据。

根据一个实施例,可以更详细地设置第九字节(8字节)中的两比特(1:0比特)测试模式。例如,由两比特(1:0比特)确定的四个模式中的第一模式(0,0)可以指示测试模式的结束。四个模式中的第二模式(0,1)可以测试是否可以通过将温度升高预设值(例如,1度)来输出温度值。四个模式中的第三模式(1,0)可以测试是否可以通过将温度降低预设值(例如,1度)来输出温度值。温度值可以通过测试模式温度字段来输出。例如,测试模式温度字段(TEST MODE TEMPERATURE FIELD)可以包括1个字节(8比特),使得温度范围可以示出256个不同的水平。根据一个实施例,使用1个字节的字段可以表示从零以下的负128度到零以上的128度。四个模式中的第四模式(1,1)可以测试是否可以输出预设的固定值。

当测试模式结束时,通过OOB通信方式,通过第一模式(0,0)中的测试模式温度字段,可以将存储器系统的内部温度发射到主机。主机可以基于存储器系统的内部温度来改变、调整或重新配置数据输入/输出操作。附加地,当主机确定存储器系统难以正常执行操作时,主机可以对数据输入/输出操作进行调度,使得可以将存储器系统的内部温度维持在可以保证正常执行操作的预设范围内。主机的调度可以降低或提高存储器系统的内部温度。

图14示出了根据本公开的一个实施例的以OOB通信方式使用的规范的第二示例。

参考图14,描述了当存储器系统和主机通过OOB通信方式发射/接收存储器系统的操作状态时,如何设置日志。例如,在第五字节(4字节)的第七比特(6比特)处定义的易失性比特可以指示即使存储器系统被重置,用于管理和控制OOB通信的日志页面的内容是否可以持久。如果易失性比特被设置为“1”,则日志页面的内容可以如图14中所描述的进行定义。日志页面中第一控制描述符(字节8到30)的内容可以用作协议,该协议用于交换与存储器系统内部温度(如图13所示)有关的信息或数据。

图15图示了根据本公开的一个实施例的以OOB通信方式使用的规范的第三示例。具体地,图15图示了在串行ATA(SATA)中使用的设备标识,该串行ATA(SATA)是连接主机和存储器系统的计算机总线接口。

参考图15,用于SATA的设备标识可以包括用于检查是否支持OOB通信的区域。具体地,参考第78字(word)(每个字是16比特数据)信息(77Word),在记录了有关串行ATA的附加功能的区域中的第10比特(Bit 9)处,设置是否支持OOB通信(支持带外管理接口(SupportsOut Of Band Management Interface))。存储器系统和主机可以在串行ATA(SATA)的设备标识中使用是否支持OOB通信的指示符,其中设备标识可以通过带内通信方式(例如,数据总线)进行交换。

图16描述了根据本公开的一个实施例的以OOB通信方式使用的规范的第四示例。具体地,图16图示了在串行ATA(SATA)中使用的日志页面,该串行ATA(SATA)是连接主机和存储器系统的计算机总线接口。

参考图16,SATA的日志页面可以包括用于检查是否支持OOB通信的区域。具体地,在包括SATA性能的SATA功能的64-比特数据(Qword)中,在第33比特(Bit 32)处设置是否支持OOB通信(支持带外接口的比特(Out Of Band Interface Supported Bit))。存储器系统和主机可以使用日志页面,该日志页面在串行ATA(SATA)的设备标识中包括是否支持OOB通信的指示符,该设备标识可以通过带内通信方式(例如,数据总线)进行交换。

图17示出了根据本公开的一个实施例的用于操作存储器系统的方法。

参考图17,方法可以包括:监视针对前台操作或后台操作执行的任务的状态(81);以带内通信方式将前台操作的结果或响应传送到外部设备(83);以及将基于任务的状态所确定的分组以带外通信方式传送到外部设备(85)。此处,外部设备可以包括参考图1至图10描述的主机。

前台操作可以包括响应于从外部设备输入的请求而由存储器系统内部执行的任务或过程。后台操作可以包括不论从外部设备输入的请求如何,在存储器系统中独立执行的任务或过程。例如,前台操作可以包括基于写入请求、读取请求等的数据输入/输出操作。后台操作可以包括诸如垃圾收集和损耗均衡等的操作。根据一个实施例,仅当外部设备允许存储器系统执行后台操作时,存储器系统才可以执行后台操作。附加地,当确定有必要进行后台操作时,存储器系统可以将关于后台操作的请求或查询发射到外部设备。

存储器系统可以根据前台操作或后台操作来监视任务执行状态,并确定存储器系统是否能够立即执行另一操作。在监视任务执行状态之后,存储器系统可以根据监视结果来配置通过OOB通信方式而发射的分组。在一个实施例中,分组可以包括:第一类型项,第一类型项包括与存储器系统中的空闲状态、数据输入/输出处理状态和示出顺序写入操作或随机写入操作的状态有关的参数;以及包括与上述参数相对应的变量的第二类型项。根据一个实施例,分组可以包括一个或多个代码以及与一个或多个代码相对应的一个或多个变量。

根据一个实施例,用于配置分组结构或分组格式的方法可以不同。参考图7至图13,通过OOB通信方式发射的分组可以包括与存储器系统的空闲状态、输入/输出处理状态、顺序写入状态和随机写入状态以及存储器内部温度有关的数据或信息。而且,当对存储器系统进行测试时,通过OOB通信方式发射的分组可以用于输出测试结果。

在本公开的一个实施例中,数据处理系统、用于操作数据处理系统的方法以及控制数据处理系统中的操作的方法可以提供能够以带外(OOB)通信方式将操作状态传送到主机的存储器系统。实施例可以扩展由存储器系统传送到主机的数据或信息的类型或范围,使得可以改进数据处理系统或存储器系统的操作效率。

在本公开的一个实施例中,在将多个数据段输入到存储器系统或从存储器系统输出时,可以避免或减少由存储器系统的操作状态的传输引起的开销。存储器系统的数据输入/输出性能(例如,I/O带宽或I/O吞吐量)可以不受影响或被劣化,使得可以改进包括存储器系统的数据处理系统的性能。

尽管已针对特定实施例图示和描述了本教导,但是根据本公开,对于本领域技术人员而言显而易见的是,在不脱离如以下权利要求所限定的本公开的精神和范围的情况下,可以进行各种改变和修改。

46页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:卷积神经网络加速器的数据回写系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!