在写入命令中指定媒体类型的制作方法

文档序号:23185326发布日期:2020-12-04 14:14阅读:130来源:国知局
在写入命令中指定媒体类型的制作方法

本发明大体上涉及存储器系统,且更具体来说,涉及在可由存储器系统执行的写入命令中指定媒体类型。



背景技术:

存储器系统可为例如固态驱动器(ssd)的存储装置,且可包含存储数据的一或多个存储器组件。例如,存储器系统可包含例如非易失性存储器装置及易失性存储器装置的存储器装置。一般来说,主机系统可利用存储器系统来将数据存储在存储器系统的存储器装置处且检索存储在存储器系统处的数据。

附图说明

从下文给出的详细描述及从本发明的各种实施方案的附图将更全面地理解本发明。

图1示意性地说明根据本发明的一或多个方面进行操作的实例计算环境;

图2示意性地说明根据本发明的一或多个方面的可由与管理一或多个存储装置的存储装置控制器进行通信的主机系统实施的编程模型;

图3示意性地说明根据本发明的一或多个方面的写入流命令的实例结构;

图4示意性地说明根据本发明的一或多个方面的将数据属性值映射到存储媒体类型及/或存储器装置识别符的实例数据放置结构;

图5是根据本发明的一或多个方面的基于数据流属性识别存储器装置的实例方法的流程图;

图6是根据本发明的一或多个方面的指定识别待用于存储数据项的存储媒体类型的数据流属性的实例方法的流程图;

图7是根据本发明的一或多个方面进行操作的实例存储装置控制器的框图;及

图8示意性地说明可在其中操作本发明的实施方案的实例计算机系统的框图。

具体实施方式

本发明的方面旨在在由主机系统传输到存储器系统的写入命令中指定媒体类型且进一步旨在由所述存储器系统执行此类写入命令。

存储器系统的实例是例如固态驱动器(ssd)的存储系统(后文中称为存储装置)。在一些实施例中,存储器系统是混合存储器/存储系统。在本文档中,存储装置用作存储器系统的实例。存储装置可为具有各种存储媒体类型的多个存储器装置,包含负与(nand)快闪存储器(利用单级单元(slc)、三级单元(tlc)及/或四级单元(qlc)块)、动态随机存取存储器(dram)、静态随机存取存储器(sram)及/或3d交叉点存储器。本文中所描述的系统及方法识别对存储器装置的数据分配,所述数据分配优化存储器装置的性能、耐久性及/或其它操作方面。

可由主机系统将待写入到存储装置的数据项分组成一或多个数据流,使得每一数据流将含有属于同一数据项群组的数据项(例如,与例如文件或数据库的单个数据结构相关联的数据项)。因此,由单个数据流所含有的数据项可共享一或多个属性,包含反映预期媒体使用模式的属性。此类属性的实例包含数据保留时间(也称为“流温度”)及工作负载类型。

因此,响应于接收到指定待写入到存储器装置的一或多个数据项及反映预期媒体使用模式的一或多个属性的写入命令,存储装置控制器可分析数据属性以便识别最适合存储数据项的存储媒体类型,且接着可识别支持经识别存储媒体类型的可用存储器装置。在说明性实例中,由存储装置控制器实施的数据分配策略可例如通过将具有低预期保留时间的数据项放置在dram或sram存储器装置上来优化装置性能,与nand存储器装置相比,所述dram或sram存储器装置展现更高性能及更低延时。在另一说明性实例中,存储装置控制器可确定用于例如通过将具有低预期保留时间的数据项放置在dram或sram存储器装置上来优化装置耐久性的数据分配,与nand存储器装置不同,所述dram或sram存储器装置不易受由多个写入循环引起的损耗影响。

替代地,最适合存储数据项的存储媒体类型可由主机来确定,所述主机可通过传达到存储装置控制器的数据属性直接指定存储媒体类型。与上述由存储装置控制器执行的数据分配的实例类似,主机可确定用于优化存储器装置的装置性能、耐久性及/或其它操作方面的数据分配。响应于接收到指定识别存储媒体类型的数据属性的写入命令,存储装置控制器可识别支持经识别存储媒体类型的可用存储器装置,且可发出引起经识别存储器装置存储指定数据项的指令。

如上文中所述,主机可将待写入到存储装置的数据分组成若干数据流。数据流可通过由主机系统传输到存储装置控制器的每一写入命令的专用数据流识别符字段来识别。在某些实施方案中,写入命令的流识别符字段的一或多个位可用于指定由数据流的数据项共享的一或多个数据属性。因此,由主机系统传输到存储装置控制器的每一写入命令不仅可识别所述流,而且可指示由数据流的数据项共享的数据属性。存储装置控制器可利用由数据属性增强的流识别信息以便确定对可用存储器装置的数据分配,所述数据分配将优化存储器装置的性能、耐用性及/或其它操作方面。

因此,本发明的方面通过增强具有反映预期媒体使用模式或直接指定存储媒体类型的数据流属性的存储写入命令以便优化存储媒体的使用而展现优于存储装置及系统的各种常见实施方案的显著改进。下文中以实例方式而非限制方式详细地描述上文所引用的方法及系统的各个方面。

图1示意性地说明根据本发明的一或多个方面进行操作的实例计算环境100。一般来说,计算环境100可包含使用存储装置110的主机系统120。例如,主机系统120可将数据写入到存储装置110及从存储装置110读取数据。主机系统120可为例如台式计算机、膝上型计算机、网络服务器、移动装置的计算装置,或包含存储器及处理装置的此计算装置。主机系统120可包含或经耦合到存储装置110,使得主机系统120可从存储装置110读取数据或将数据写入到存储装置110。例如,主机系统120可经由物理主机接口耦合到存储装置110。物理主机接口的实例包含但不限于串行高级技术附件(sata)接口、外围组件互连高速(pcie)接口、通用串行总线(usb)接口、nvm高速(nvme)、光纤通道、串行附接scsi(sas)等。物理主机接口可用于在主机系统120与存储装置110之间传输数据。在说明性实例中,主机系统120可由图8的计算机系统800来表示。

如图1中所展示,存储装置110可包含控制器111及存储媒体,例如存储器装置112a到112n。在说明性实例中,存储器装置112a到112n可包含非易失性存储器装置,例如nand快闪存储器。每一nand快闪存储器装置可包含一或多个存储器单元阵列,例如单级单元(slc)、多级单元(mlc)或四级单元(qlc)。所述存储器单元中的每一者可存储由主机系统120使用的数据位(例如,数据块)。存储器装置112a到112n的存储器单元可被分组为存储器页面或数据块,其可指用于存储数据的存储器装置的单元。

在另一说明性实例中,存储器装置112a到112n可包含非易失性存储器单元的一或多个交叉点阵列。交叉点阵列可为3d交叉点阵列。交叉点阵列存储器装置实施将选择器及存储器单元定位在垂直线路的相交点处的交叉点架构。每一单元存储由所述单元的高或低电阻状态编码的单个位。为了改进存储密度,3d交叉点单元可堆叠成三个维度。非易失性存储器的交叉点阵列可基于体电阻变化、结合可堆叠交叉网格数据存取阵列而执行位存储。另外,与许多基于快闪存储器的存储器相比,交叉点非易失性存储器可执行原位写入操作,其中可对非易失性存储器单元进行编程而无需事先擦除非易失性存储器单元。

在又一说明性实例中,存储器装置112a到112n可包含一或多个易失性存储器装置,例如静态随机存取存储器(sram)、动态随机存取存储器(dram)及/或同步动态随机存取存储器(sdram)装置。

控制器111可与存储器装置112a到112n进行通信以执行包含从存储器装置112a到112n读取数据或将数据写入到存储器装置112a到112n的操作。控制器111可包含例如一或多个集成电路的硬件、固件或其组合。在操作中,控制器111可从主机系统120接收命令且可将命令转换成指令以执行关于存储器装置112a到112n的所期望动作。在各种说明性实例中,控制器111可实施与存储器装置112a到112n相关联的其它操作,例如损耗均衡、废弃项目收集、错误检测及错误校正码(ecc)、加密、高速缓存及/或逻辑块地址与物理块地址之间的地址转译。在某些实施方案中,控制器111可负责将存储在易失性存储器装置上的数据移动到非易失性存储器装置(例如,响应于检测到电力故障或其它预定义事件),以便提供写入到存储装置110的所有数据的持久存储。响应于检测到对称的预定义事件(例如,存储装置通电),控制器110可将数据移回到非易失性存储器装置。

为了实施本发明的系统及方法,控制器111可包含可用于将传入数据分配到存储器装置112a到112n的数据分配功能组件115。应注意,组件指定具有纯粹的功能性质,即,数据分配组件的功能可由控制器111的一或多个硬件组件及/或固件模块来实施,如下文中更详细地描述。此外,存储装置110可包含为了清楚及简洁起见而从图1省略的额外电路或组件。

图2示意性地说明根据本发明的一或多个方面的可由与管理一或多个存储器装置112a到112n的存储装置控制器111进行通信的主机系统120实施的编程模型。如由图2示意性地说明,所述主机系统可执行一或多个应用程序210a到210b。在说明性实例中,应用程序210a可与文件系统驱动器220进行通信,所述文件系统驱动器220可在主机系统120的内核空间中运行且可用于处理某些系统调用,例如由在主机系统120的用户空间中运行的一或多个应用程序210(包含应用程序210a)启动的读取及写入调用。文件系统驱动程序220可用于将由应用程序210a发出的读取、写入及其它系统调用转译成对存储驱动器230的低级应用程序编程接口(api)调用,所述存储驱动器230继而可与控制一或多个存储器装置112a到112n的装置控制器111进行通信。存储驱动器230可在主机系统的内核模式中运行且可用于将由文件系统驱动器220发出的api调用及/或由应用程序210b发出的系统调用处理成待由管理一或多个存储器装置112a到112n的存储装置控制器111处理的存储接口命令。

在说明性实例中,存储驱动器230可实施块存储模型,其中数据被分组成一或多个预定义大小的块且可由块编号来寻址。块存储模型可实施用于存储及检索数据块的“读取”及“写入”命令。在另一说明性实例中,存储驱动器230可实施键值存储模型,其中由键值对的“值”分量表示的数据可由键值对的“键”分量来寻址。键值存储模型可实施“放入”及“获取”命令,所述“放入”及“获取”命令在功能上与块存储模型的“写入”及“读取”命令类似。因此,如本文中所使用的术语“数据项”可指数据块或指键值对。

由主机系统120执行的应用程序210a到210b及/或存储驱动器230可将待写入到存储器装置112的数据分组成若干数据流,使得属于同一数据流的数据项将共享一或多个数据属性。在说明性实例中,数据属性可反映数据流的预期保留时间(也称为“流温度”),使得“热”数据流将包括可能在相对短时间段内(例如,低于预定义低阈值的时间段)被重写的短暂活跃数据流,而“冷”数据流包括在相对长时间段(例如,超过预定义高阈值的时间段)内不太可能被重写的静态数据项。在说明性实例中,数据流温度可由产生数据流且因此大概知道其预期保留时间的应用程序210传达到存储驱动器230。数据流温度可例如经由输入/输出控制(ioctl)系统调用传达到存储驱动器230。替代地,数据流温度可由存储驱动器230来确定,所述存储驱动器230可缓冲待写入到存储器装置112a到112n的传入数据,且可基于由应用程序210关于待写入到存储器装置112a到112n的一或多个数据项请求的重写操作的平均频率而估计预期保留时间。接着,存储驱动器230可将待写入到存储装置110的经缓冲数据分组成两个或更多个数据流,且可将指示数据流温度的流写入命令发出到存储装置控制器111,如下文更详细地描述。

在另一说明性实例中,数据属性可反映数据流的工作负载类型,例如,“日志数据”属性指示所述数据表示与一或多个数据库及/或文件系统相关的日志记录数据,或“用户数据”属性指示所述数据表示其它(与数据库或文件系统日志无关)类型的数据。数据流工作负载类型可由产生数据流且因此大概知道其工作负载类型的应用程序210传达到存储驱动器230。数据流工作负载类型可例如经由输入/输出控制(ioctl)系统调用传达到存储驱动器230。存储驱动器230可基于工作负载类型属性将数据分组成一或多个数据流,且可将指示工作负载类型的流写入命令发出到存储装置控制器111,如下文中更详细描述。

在另一说明性实例中,存储驱动器230可基于数据流的工作负载类型及/或预期保留时间确定最适合存储由数据流所包括的数据项的存储媒体类型。在一个实施例中,存储驱动器230可例如通过假设与“日志数据”属性相关联的数据项具有比被标记为“用户数据”的数据项更长的保留时间来将工作负载类型属性解释为指示预期保留时间。存储驱动器230可基于预期保留时间及/或工作负载类型属性将数据分组成一或多个数据流,且可将指示存储媒体类型的流写入命令发出到存储装置控制器111,如下文中更详细地描述。

在某些实施方案中,数据流可由通过主机系统传输到存储装置控制器的每一写入命令中的专用字段来识别。图3示意性地说明根据本发明的一或多个方面的写入流命令的实例结构。除其它字段之外,写入流命令300还可包含指定命令类型(例如,写入流命令)的操作码字段310。写入流命令300可进一步包含指定命令的一或多个参数的旗标字段320。写入流命令300可进一步包含指定存储在存储装置上的数据的lba的逻辑块地址(lba)字段330。写入流命令300可进一步包含由位串表示的流识别符字段340,所述流识别符字段340可被解释为无符号整数值。流识别符字段340的一或多个位(例如一或多个最高有效位的群组或一或多个最低有效位的群组)可用于指定由数据流的数据项共享的一或多个数据流属性350。在说明性实例中,流识别符字段340的一或多个位可用于指定数据流温度(例如,“0”指示冷流且“1”指示热流,或“00”指示未知流温度,“01”指示冷流,“10”指示中等流温度,且“11”指示热流)。在另一说明性实例中,流识别符字段340的一或多个位可用于指定数据流的工作负载类型(例如,“1”指示“日志数据”工作负载类型且“0”指示“用户数据”工作负载类型)。在又一说明性实例中,流识别符字段340的一或多个位可用于指定待用于存储数据流的数据项的存储器装置的存储媒体类型(例如,“000”指示nand/slc,“001”指示nand/tlc,“010”指示nand/qlc,“011”指示dram,“100”指示sram,“101”指示sdram,“110”指示3d交叉点等)。此外,写入流命令300可包含为了清楚及简洁起见而从图3省略的各种其它字段。

存储装置控制器可利用由数据属性增强的流识别信息以便识别最适合存储数据流的数据项的存储媒体类型。在说明性实例中,响应于接收到指定数据流识别符及待写入到存储器装置的一或多个数据项的写入命令,存储装置控制器可解析数据流识别符以确定由数据流的数据项共享的一或多个数据属性。在某些实施方案中,解析数据流的识别符可涉及识别从数据流识别符内的预定义位置开始的预定义大小的位串。

在说明性实例中,经识别数据属性可指定数据项的预期保留时间及/或工作负载类型。在一个实施例中,存储装置控制器可例如通过假设与“日志数据”属性相关联的数据项具有比被标记为“用户数据”的数据项更长的保留时间来将工作负载类型属性解释为指示预期保留时间。存储装置控制器可利用数据属性值来识别最适合存储数据项的存储媒体类型及支持经识别存储媒体类型的存储器装置。

在某些实施方案中,存储装置控制器可利用含有数据属性值到存储媒体类型及/或存储器装置识别符的多个映射的数据结构,如由图4示意性地说明。映射表400包含多个记录410a到410n,使得每一记录410指定数据属性值420及支持最适合存储以属性值420为特征的数据项的存储媒体类型的存储器装置的一或多个识别符430。虽然映射表400被展示为矩形表,但是可采用包含单维或多维阵列的各种其它数据结构来存储映射表400。

在某些实施方案中,存储装置控制器可利用一或多个可配置规则,使得每一规则指定取决于数据流属性的值的条件表达式且响应于成功地评估条件表达式而识别待利用的存储器装置。在说明性实例中,可配置规则可呈以下格式:if<conditionalexpression=true>then<memorydeviceid=deviceidentifier>。条件表达式可指定关于数据流属性值的一或多个条件,例如,“数据流属性值等于(小于或大于)预定义常数值”或“数据流属性值落入指定范围内”。存储装置控制器可采用各种其它格式的可配置规则来识别对应于指定数据流属性值的存储器装置。响应于识别对应于指定数据流属性值的存储器装置,发出引起经识别存储器装置存储指定数据项的装置级指令。

由存储装置控制器利用映射表及/或可配置规则实施的数据分配策略可例如通过将具有低预期保留时间的数据项放置在dram或sram存储器装置上来优化装置性能,与nand存储器装置相比,所述dram或sram存储器装置展现更高性能及更低延时。在另一说明性实例中,存储装置控制器可确定用于例如通过将具有低预期保留时间的数据项放置在dram或sram存储器装置上来优化装置耐久性的数据分配,与nand存储器装置不同,所述dram或sram存储器装置不易受由多个写入循环引起的损耗影响。

在一个实施例中,最适合存储数据项的存储媒体类型可由主机来确定,所述主机可通过传达到存储装置控制器的数据属性直接指定媒体类型。与上述由存储装置控制器执行的数据分配的实例类似,主机可确定用于优化存储器装置的装置性能、耐久性及/或其它操作方面的数据分配。

再次参考图2,产生数据流的应用程序210大概知道其预期保留时间及/或工作负载类型,且因此可将这个信息传达到存储驱动器230(例如,经由输入/输出控制(ioctl)系统调用)。替代地,数据流温度可由存储驱动器230来确定,所述存储驱动器230可缓冲待写入到存储器装置112a到112n的传入数据,且可基于由应用程序210关于待写入到存储器装置112a到112n的一或多个数据项请求的重写操作的平均频率估计预期保留时间。存储驱动器230可使用一或多个映射表及/或可配置规则基于预期保留时间及/或工作负载类型来识别最适合存储由数据流所包括的数据项的存储媒体类型。因此,存储驱动器230可将待写入到存储装置110的经缓冲数据分组成两个或更多个数据流,且可将指示媒体存储类型的流写入命令发出到存储装置控制器111。

响应于接收到指定识别存储媒体类型的数据属性的写入命令,存储装置控制器可识别(例如,使用映射表)支持经识别存储媒体类型的可用存储器装置,且可发出引起经识别存储器装置存储指定数据项的装置级指令。

在某些实施方案中,存储装置控制器可进一步利用由数据属性增强的流识别信息以便确定将优化存储媒体的使用的存储操作参数(例如定义存储媒体上的数据放置的一或多个参数)。存储装置控制器可实施旨在跨所述媒体均匀地分布编程及擦除循环的一或多种损耗均衡方法。由存储装置控制器实施的损耗均衡方法可涉及避免将“热”数据放置到已经历相对严重损耗的物理块上。存储装置控制器可放置“冷”数据及/或将在至少某一时间段(例如,超过某一阈值的时间段)内未修改的数据移出已经历低编程/擦除循环次数的块并移入更严重损耗的块。这种策略为“热”数据释放低损耗块,同时减少严重损耗块的预期损耗。

在说明性实例中,擦除一个数据流的一或多个数据项可需要擦除存储在存储媒体的相同或物理上接近区段内的一或多个数据项。因此,将具有基本上不同的预期保留时间的数据流放置在存储媒体的相同或物理上接近区段内可导致控制器对存储媒体执行的编程及擦除循环的次数过多。相反,将具有类似预期保留时间的数据流放置在存储媒体的相同或物理上接近区段内可导致控制器对存储媒体执行的编程及擦除循环的次数减少。因此,在本发明的一或多个方面中操作的存储装置控制器可实施旨在跨所述媒体均匀地分布编程及擦除循环以便最大化存储媒体的耐久性的数据放置策略。在说明性实例中,“存储媒体的区段”可由一或多个存储器单元的群组来表示,例如nand型快闪存储器的单级单元(slc)、多级单元(mlc)或四级单元(qlc)。在另一说明性实例中,“存储媒体的区段”可由可通过相同信号(例如字线或位线)寻址的存储器单元群组来表示。

图5是根据本发明的一或多个方面的基于数据流属性识别存储器装置的实例方法500的流程图。方法500可由处理逻辑来执行,所述处理逻辑可包含硬件(例如,处理装置、电路、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法500可由图1的存储装置控制器111来执行。

如图5中所展示,在框510处,实施所述方法的处理逻辑可从主机系统接收指定待写入到由存储装置控制器管理的存储器装置的数据项的写入命令。写入命令可进一步指定写入命令所属的数据流的识别符。在说明性实例中,数据流的识别符由无符号整数值来提供。数据流的识别符的一部分可对由数据流的数据项共享的一或多个数据属性进行编码。在说明性实例中,数据属性可包含反映数据流的数据项的预期保留时间的值。在另一说明性实例中,数据属性可包含反映数据流的数据项的工作负载类型的值。在另一说明性实例中,数据属性可包含指定待用于存储数据流的数据项的存储媒体类型的值,如上文中更详细地描述。

在框520处,处理逻辑可解析数据流的识别符以确定由数据流所包括的数据项共享的数据属性。在说明性实例中,解析数据流的识别符可涉及识别从数据流识别符内的预定义位置开始的预定义大小的位串,如上文中更详细地描述。

在框530处,处理逻辑可基于数据属性识别用于存储数据项的存储器装置。在说明性实例中,数据属性可指定数据项的预期保留时间及/或工作负载类型。处理逻辑可使用一或多个映射表及/或可配置规则识别支持最适合存储共享指定数据属性值的数据项的存储媒体类型的存储器装置。在另一说明性实例中,数据属性可指定最适合存储共享指定数据属性值的数据项的存储媒体类型。处理逻辑可使用一或多个映射表及/或可配置规则识别支持指定存储媒体类型的存储器装置,如上文中更详细描述。

在框540处,处理逻辑可将引起经识别存储器装置存储指定数据项的指令传输到经识别存储器装置,且所述方法可终止。

图6是根据本发明的一或多个方面的指定识别待用于存储数据项的存储媒体类型的数据流属性的实例方法600的流程图。方法600可由处理逻辑来执行,所述处理逻辑可包含硬件(例如,处理装置、电路、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法600可由图1的主机系统120(例如,由图2的存储驱动器230)来执行。

如图6中所展示,在框610处,实施所述方法的处理逻辑可接收待写入到存储装置的多个数据项。多个数据项可由在主机系统上运行的应用程序产生,如上文中参考图2更详细地描述。

在框620处,处理逻辑可将经接收数据项分组成一或多个数据流,使得由单个数据流所含有的数据项可共享反映预期媒体使用模式(例如,预期保留时间(也称为“流温度”)及/或工作负载类型)的一或多个属性。在说明性实例中,处理逻辑可在多个数据项当中识别共享一或多个数据属性的两个或更多个数据项。基于数据属性值,处理逻辑可将经识别数据项附加到新创建的或现存的数据流,如上文中更详细地描述。

在框630处,处理逻辑可使用一或多个映射表及/或可配置规则识别用于存储共享指定数据流属性值的数据项的存储媒体类型。在说明性实例中,处理逻辑可利用一或多个可配置规则,使得每一规则指定取决于数据流属性的值的条件表达式且响应于成功地评估条件表达式而识别待利用的存储器装置。在说明性实例中,可配置规则可呈以下格式:if<conditionalexpression=true>then<memorydeviceid=deviceidentifier>。条件表达式可指定关于数据流属性值的一或多个条件,例如,“数据流属性值等于(小于或大于)预定义常数值”或“数据流属性值落入指定范围内”。处理逻辑可采用各种其它格式的可配置规则来识别对应于指定数据流属性值的存储器装置。

在框640处,处理逻辑可生成包含经识别存储媒体类型的经编码形式的数据流识别符。在说明性实例中,数据流识别符可由无符号整数值来提供,所述无符号整数值的一或多个位可用于对由数据流的数据项共享的数据属性进行编码。在说明性实例中,对数据属性进行编码的位串可具有预定义大小且可从数据流识别符内的预定义位置开始,如上文中更详细地描述。

在框650处,处理逻辑可将指定由第一数据项及第二数据项所包括的数据的一或多个写入命令传输到存储装置的控制器。每一写入命令可进一步指定数据流识别符,所述数据流识别符的经留存部分对经识别存储媒体类型进行编码。

图7是可实施图1的控制器111的功能性的实例存储装置控制器700的框图。如图7中所展示,控制器700可包含用于经由物理主机接口706与主机系统对接的主机接口电路714。主机接口电路714可用于将从主机系统接收的命令转换成装置级指令。主机接口电路系统714可与主机存储器转译电路716进行通信,所述主机存储器转译电路716可用于将主机地址转译为存储器装置地址。例如,主机存储器转译电路716可将由主机系统读取或写入操作指定的逻辑块地址(lba)转换为指向由逻辑单元编号(lun)750识别的非易失性存储器单元的命令。主机存储器转译电路716可包含错误检测/校正电路,例如可基于从主机接口电路714接收的信息计算奇偶校验信息的异或(xor)电路。

存储器管理电路718可经耦合到主机存储器转译电路716及开关720。存储器管理电路718可控制各种存储器管理操作,包含但不限于初始化、损耗均衡、废弃项目收集、回收及/或错误检测/校正。存储器管理电路718可包含可用于从易失性存储器717及/或由lun750识别的非易失性存储器检索数据的块管理电路740。例如,块管理电路740可检索例如lun750的有效数据块、擦除计数及/或其它状态信息的识别的信息。存储器管理电路718可进一步包含可用于识别用来存储传入数据及/或将传入数据分配到经识别存储器装置上的特定位置的存储器装置的数据分配组件115。应注意,组件指定具有纯粹的功能性质,即,数据分配组件的功能可由控制器700的一或多个硬件组件及/或固件模块(例如处理器728)来实施,所述一或多个硬件组件及/或固件模块可用于实施至少一些上文所引用的存储器管理操作。

开关720可经耦合到主机存储器转译电路716、存储器管理电路718、非易失性存储器控制电路722及/或易失性存储器控制电路724。开关720可包含及/或经耦合到数个缓冲器。例如,开关720可包含内部静态随机存取存储器(sram)缓冲器(isb)725。所述开关可经耦合到包含在易失性存储器717中的dram缓冲器727。在一些实施例中,开关720可提供控制器700的各种组件之间的接口。

非易失性存储器控制电路722可将对应于经接收读取命令的信息存储在缓冲器中的一者(例如,isb725或缓冲器727)中。此外,非易失性存储器控制电路722可从缓冲器中的一者检索信息且将信息写入到由lun750识别的非易失性存储器的逻辑单元。由lun750识别的逻辑单元可通过数个通道耦合到非易失性存储器控制电路722。在一些实施例中,通道的数目可由非易失性存储器控制电路722共同地控制。在一些实施例中,每一存储器通道可经耦合到离散通道控制电路748。特定通道控制电路748可控制超过一个存储器单元750且可通过单个通道耦合到超过一个存储器单元750。

非易失性存储器控制电路722可包含耦合到通道控制电路748中的每一者的通道请求队列(crq)747。此外,每一通道控制电路748可包含耦合到多个存储器单元命令队列(cq)746的存储器单元请求队列(rq)744。crq747可经配置以存储在通道之间共享的命令(例如,写入请求或读取请求),rq744可经配置以将存储器单元750之间的命令存储在特定通道上,且cq746可经配置以使当前命令及待在当前命令之后执行的下一命令排队。

crq747可经配置以从开关720接收命令且将命令中继到rq744中的一者(例如,与相关联于由命令所针对的lun750识别的特定逻辑单元的通道相关联的rq744)。rq744可经配置以按rq744接收用于特定存储器单元750的第一数目个命令的顺序,将所述第一数目个命令中继到与由lun750识别的特定逻辑单元相关联的cq746。命令流水线可经结构化使得到逻辑单元的命令按特定顺序(例如,按其被rq744接收的顺序)移动。rq744可经配置以响应于与特定逻辑单元相关联的cq746已满而使用于特定逻辑单元的命令排队,且crq747可经配置以响应于特定rq744已满而使用于特定rq744的命令排队。

rq744可根据逻辑单元的状态按顺序将用于由lun750识别的不同逻辑单元的数个命令中继到与所述逻辑单元相关联的cq746。例如,逻辑单元状态可为就绪/忙碌状态。命令流水线经结构化使得不同逻辑单元之间的命令可不按顺序(例如,按与其被rq744根据当时对总体存储器操作而言有效的接收顺序不同的顺序)移动。例如,rq744可经配置以响应于与第二cq746相关联的不同逻辑单元的状态是忙碌,在将来自第二数目个命令的第二命令中继到第二cq746之前将第二数目个命令中的第一者中继到第一cq746,其中第一命令在时间上晚于第二命令被接收。rq744可经配置以响应于与第二cq746相关联的逻辑单元的状态是就绪(例如,在中继第一命令之后)而将第二命令中继到第二cq746。

在一些实施例中,每一通道的控制电路可包含离散错误检测/校正电路737(例如,错误校正码(ecc)电路),所述离散错误检测/校正电路737经耦合到每一通道控制电路748及/或可与超过一个通道一起使用的数个错误检测/校正电路737。错误检测/校正电路737可经配置以应用例如bose-chaudhuri-hocquenghem(bch)错误校正的错误校正来检测及/或校正与存储在由lun750识别的逻辑单元中的信息相关联的错误。错误检测/校正电路737可经配置以为slc、mlc或qlc操作提供不同错误校正方案。

图8说明实例计算机系统800,在计算机系统800内可执行用于引起所述计算机系统执行本文中所论述的方法中的任何一或多者的一组指令。在说明性实例中,计算机系统800可实施图1的主机系统120的功能。在替代实施方案中,计算机系统可经连接(例如,经联网)到lan、内联网、外联网及/或因特网中的其它计算机系统。计算机系统可在客户端-服务器网络环境中以服务器或客户端计算机系统的身份进行操作,作为对等(或分布式)网络环境中的对等计算机系统,或作为云计算基础结构或环境中的服务器或客户端计算机系统。

计算机系统可为个人计算机(pc)、平板pc、机顶盒(stb)、个人数字助理(pda)、蜂窝电话、网络设施、服务器、网络路由器、交换机或网桥或能够执行指定所述计算机系统将采取的动作的的一组指令(顺序指令或其它指令)的任何计算机系统。此外,虽然说明单个计算机系统,但是术语“计算机系统”也应被认为包含单独地或共同地执行一组(或多组)指令以执行本文中所论述的方法中的任何一或多者的的计算机系统的任何集合。

实例计算机系统800包含经由总线830彼此进行通信的处理装置802、主存储器804(例如,只读存储器(rom)、快闪存储器、动态随机存取存储器(dram))、静态存储器806(例如,快闪存储器、静态随机存取存储器(sram)等)及数据存储装置818。在说明性实例中,数据存储装置818可实施图1的存储装置110的功能。

处理装置802表示一或多个通用处理装置,例如微处理器、中央处理单元等。更特定来说,处理装置可为复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器,或实施其它指令集的处理器,或实施指令集组合的处理器。处理装置802还可为一或多个专用处理装置,例如专用集成电路(asic)、现场可编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器等。处理装置802经配置以执行指令826以执行本文中所描述的操作及方法。

计算机系统800可进一步包含网络接口装置808以通过网络820进行通信。计算机系统800还可包含视频显示单元810(例如,液晶显示器(lcd)或阴极射线管(crt))、字母数字输入装置812(例如,键盘)、光标控制装置814(例如,鼠标)、图形处理单元822、信号生成装置816(例如,扬声器)、图形处理单元822、视频处理单元828及音频处理单元832。

数据存储装置818可包含计算机可读存储媒体824,在所述计算机可读存储媒体824上存储有体现本文中所描述的操作及方法中的任何一或多者的一或多组指令或软件826。指令826在由计算机系统800执行期间还可全部或至少部分地驻留在主存储器804及/或处理装置802内,主存储器804及处理装置802还构成计算机可读存储媒体。计算机可读存储媒体824、数据存储装置818及/或主存储器804可对应于图1的存储装置110。

在一个实施方案中,指令826包含用于实施对应于数据分配组件(例如,图1的数据分配组件115)的功能性的指令。虽然计算机可读存储媒体824在实例实施方案中被展示为单个媒体,但是术语“计算机可读存储媒体”应被认为包含存储一或多组指令的单个媒体或多个媒体(例如,集中式或分布式数据库,及/或相关联高速缓存及服务器)。术语“计算机可读存储媒体”也应被认为包含能够存储或编码一组指令以供计算机执行且引起计算机执行本发明的方法中的任何一或多者的任何媒体。因此,术语“计算机可读存储媒体”应被认为包含但不限于固态存储器、光学媒体及磁性媒体。

已依据对计算机存储器内的数据位的操作的算法及符号表示呈现前文详细描述的一些部分。这些算法描述及表示是数据处理领域技术人员用于最有效地向所属领域其它技术人员传达其工作实质的方式。算法在此且通常被视为导致所期望结果的自洽操作序列。所述操作是需要对物理量进行物理操纵的操作。通常,尽管并非必需的,这些量采取能够被存储、组合、比较及以其它方式操纵的电或磁性信号的形式。已证明有时,主要出于通用的原因,将这些信号称为位、值、元素、符号、字符、项、数字等是方便的。

然而,应牢记,所有这些及类似术语均应与适当物理量相关联且仅仅是应用于这些量的方便标签。如从以上论述显而易见的是,除非另有明确指出,否则应明白,贯穿本描述,利用例如“接收”或“确定”或“传输”或“反映”或“指定”或“识别”或“提供”等的术语的讨论是指计算机系统或类似电子计算装置的动作及过程,所述动作及过程操纵表示为计算机系统寄存器及存储器内的物理(电子)量的数据且将其变换成类似地表示为计算机系统存储器或寄存器或其它此类信息存储装置内的物理量的其它数据。

本发明还涉及一种用于执行本文中的操作的设备。这个设备可具体经构造用于预期目的,或其可包括由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此计算机程序可经存储在计算机可读存储媒体中,例如但不限于任何类型的磁盘,包含软盘、光盘、cd-rom及磁光盘、只读存储器(rom)、随机存取存储器(ram)、eprom、eeprom、磁卡或光卡或适合存储电子指令的任何类型的媒体,每一媒体均经耦合到计算机系统总线。

本文中所呈现的算法及显示与任何特定计算机或其它设备并非固有地相关。各种通用系统可与根据本文中的教示的程序一起使用,或可证明构造更专门设备来执行所述方法是方便的。多种这些系统的结构将如在以下描述中所阐述般表现。另外,未参考任何特定编程语言描述本发明。将明白,可使用多种编程语言来实施如本文中所描述的本发明的教示。

本发明可被提供为计算机程序产品或软件,所述计算机程序产品或软件可包含其上存储有指令的计算机可读媒体,所述指令可用于对计算机系统(或其它电子装置)进行编程以执行根据本发明的过程。计算机可读媒体包含用于以机器(例如,计算机系统)可读的形式存储信息的任何机构。例如,计算机可读(例如,计算机可读)媒体包含只读存储器(“rom”)、随机存取存储器(“ram”)、磁盘存储媒体、光学存储媒体、快闪存储器装置等。

在前述说明书中,本发明的实施方案已参考其特定实例实施方案来描述。将显而易见的是,可在不脱离如所附权利要求书中所阐述的本发明的实施方案的更广泛精神及范围的情况下对本发明进行各种修改。因此,说明书及附图应被看作是说明性的而非限制性的。

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