一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

在循序地编程的存储器子系统中的顺序读取优化的制作方法

2022-12-03 01:32:15 来源:中国专利 TAG:


1.本公开的实施例大体上涉及存储器子系统,且更具体来说,涉及在循序地编程的存储器子系统中的顺序读取优化。


背景技术:

2.存储器子系统可包含存储数据的一或多个存储器装置。存储器装置可为例如非易失性存储器装置和易失性存储器装置。一般来说,主机系统可利用存储器子系统以在存储器装置处存储数据且从存储器装置检索数据。
附图说明
3.根据下文提供的具体实施方式和本公开的各种实施例的附图将更加充分地理解本公开。
4.图1a说明根据实施例的包含存储器子系统的实例计算系统。
5.图1b说明根据实施例的图1a的存储器子系统的额外细节。
6.图2是根据各种实施例的说明经配置以支持基于区的映射的数据结构的实例的框图。
7.图3是根据实施例的图1a-1b的存储器子系统控制器的命令生成处理器、转译处理器和命令执行处理器的相互关系的框图。
8.图4是根据实施例的用于顺序读取优化的方法的流程图。
9.图5是根据相关实施例的用于顺序读取优化的方法的流程图。
10.图6是其中本公开的实施例可操作的实例计算机系统的框图。
具体实施方式
11.本公开的方面是针对在循序地编程的存储器子系统中的顺序读取优化。存储器子系统可以是存储装置、存储器模块,或存储装置和存储器模块的混合。下文结合图1a描述存储装置和存储器模块的实例。大体来说,主机系统可利用包含例如存储数据的存储器装置等一或多个组件的存储器子系统。主机系统可提供数据以存储于存储器子系统处,且可请求从存储器子系统检索数据。
12.存储器装置可为非易失性存储器装置。非易失性存储器装置的一个实例为与非(nand)存储器装置。下文结合图1a描述非易失性存储器装置的其它实例。非易失性存储器装置为一或多个裸片的封装。封装中的裸片可经指派给一或多个通道以用于与存储器子系统控制器通信。每一裸片可由一或多个平面组成。平面可分组成逻辑单元(lun)。对于一些类型的非易失性存储器装置(例如,nand装置),每一平面由物理块集合组成。每一块由页集合组成。每一页由存储器单元(“单元”)的集合组成。单元是存储信息的电子电路。在下文中,块是指用于存储数据的存储器装置的单元,且可包含存储器单元群组、字线群组、字线或单独存储器单元。
13.可由存储器子系统执行数据操作。数据操作可为主机发起的操作。举例来说,主机系统可起始存储器子系统上的数据操作(例如,写入、读取、擦除等等)。主机系统可将存取请求(例如,写入命令、读取命令)发送到存储器子系统,以便在存储器子系统处的存储器装置中存储数据且从存储器子系统的存储器装置读取数据。
14.如由主机请求指定的待读取或写入的数据在下文中被称作“主机数据”。主机请求可包含用于主机数据的逻辑地址信息(例如,逻辑块地址(lba)、名称空间),其是主机系统与主机数据相关联的位置。逻辑地址信息(例如,lba、名称空间)可为主机数据的元数据的部分。元数据还可包含错误处置数据(例如,ecc码字、奇偶检验码)、数据版本(例如,用以区分所写入数据的年龄)、有效位图(其lba或逻辑传送单元含有有效数据),及类似物。为简单起见,在下文提及“数据”的情况下,此类数据可理解为至少指代主机数据,但也可指代例如媒体管理数据和/或系统数据等其它数据。
15.存储器装置的单元(或简称为“媒体”)可从裸片(上部层级)到平面、到块、到页(下部层级)以阶层式方式组织。块集合(也被称作块条带)可为跨越不同裸片的平面排列以使得块分组在一起以用于数据存储的块集合。写入到块条带允许可跨多个裸片同时并行写入和读取的更多数据。一或多个块集合的多个块可经识别为数据群组。
16.在各种实施例中,主机文件系统可通过局部性将主机数据分组且将主机数据循序地写入到存储器子系统。文件系统可接着将不同局部性的数据作为并行循序流写入到存储器子系统,每一流具有其自身的局部性,例如其中不同主机应用可各自写入到其自身的流。“局部性”可以指时间局部性或空间局部性。以时间局部性分组的数据是处理器趋于在短时间段内反复在同一存储器装置位置处存取的主机数据,例如,大约同时被写入、覆写和修整的数据。经修整涉及使用修整命令的操作系统向存储器装置告知不再处于使用中且可例如经由垃圾收集在内部擦除的数据块。以空间局部性分组的数据含有在特定时间参考特定存储位置时的数据检索模式,随后则可能在近期将参考附近存储器位置(存储器装置上)。在此情况下,处理器可尝试确定当前参考的存储器位置周围的值得针对随后参考的位置准备较快存取的区域的大小和形状。对顺序局部性的参考是当数据元素被线性地布置和存取时(例如,在遍历一维阵列中的元素时)发生的空间局部性的特殊情况。
17.存储器子系统控制器(例如,包含处理装置)通常在主机数据的部分(例如,4kb)中随机地对媒体写入,且接着使用元数据将lba空间映射到媒体的物理地址空间。然而,当以数据局部性分组写入较大群组的主机数据(例如,100mb或更大)时,可跨越多个裸片将“数据群组”作为较大组块循序地写入到一个或多个块集合。为了简化此类数据群组的映射,可在lba空间内循序排序区域的lba(例如,与数据群组相关联的逻辑地址空间)且映射到物理地址空间内的循序排序的物理地址。换句话说,数据群组可与具有循序地映射到多个顺序物理地址的多个顺序lba相关联的lba空间区。可一次性写入(例如,编程)数据区且相应地映射所述区的存储器子系统在区名称空间(zns)中操作,例如其中逻辑地址区被命名/经识别为群组。有利的是,使用zns用于逻辑到物理(ltp)地址映射极大地减少用以跟踪ltp映射的元数据的量。
18.在存储器子系统中,读取请求(或读取操作)通常以一次一个命令标签的方式发出到存储器子系统控制器的转译处理器(例如,将逻辑地址转译为物理地址),从而导致以由命令标签指定的粒度进行的随机读取。命令标签,也被称作系统标签(例如,systag),包含
逻辑传送单元(ltu)数目和识别其中对应于传送单元的内容如同在高速缓存中那样存储的缓冲器(例如,易失性存储器中的槽或条目)的缓冲器地址。在一个实施例中对应于4kb数据部分的ltu是可经由映射数据结构集合映射到物理地址的多个顺序lba的子集。因此,为了创建ltu,存储器子系统控制器的命令生成处理器可组合读取请求的lba与循序排在所述lba之后的额外lba(也可在读取请求中接收)。每一ltu可经转译为逻辑块或逻辑页,这取决于ltu类型。
19.因为以一次一个命令标签的方式常规地执行读取请求,所以每一读取请求生成进入存储器子系统控制器的命令生成处理器(不管读取是否为顺序的)的命令消息(例如,在一个实例中为信箱消息),生成多个(例如,四个)数据结构查找以用于将读取请求的lba映射到存储器装置中的物理位置,如将详细解释。可在非易失性存储器命令的获取后使用命令消息,其中命令生成处理器向转译处理器通知接收到命令。这些数据结构(例如,表)可存储于紧密耦合存储器(tcm)或静态只读存储器(sram)或其它易失性存储器中。处置读取请求的此方式因增加时延而增加了开销且降低了总体性能,特别是在一些读取请求循序地发出到(例如,zns的)循序地写入的物理地址空间的情况下。因此,不利用来自顺序写入的顺序数据布局来限制存储器子系统控制器(例如,存储器子系统控制器的转译处理器)为了确定将从其中检索数据以满足读取请求的物理地址而必须执行的查找的数目。
20.本公开的方面通过采用共享易失性存储器(例如,至少一个易失性存储器装置)解决以上和其它缺陷,通过共享易失性存储器,处理装置的转译处理器可向处理装置的命令执行处理器传送第一物理地址(由第一命令标签指定的第一ltu映射到所述第一物理地址),且设定指示第一物理地址是循序地写入的数据的部分的旗标(例如,位旗标)。处理装置的命令生成处理器可随后在易失性存储器中存取所述物理地址和旗标以确定如何生成将作为群组发出的将包含第一命令标签的命令标签集合。命令生成处理器可进一步将包含命令标签的命令集合直接发送到处理装置的命令执行处理器,同时绕过转译处理器在映射数据结构中的任何进一步查找。命令执行处理器可将数据从由命令标签指定的物理地址读取到为此目的分配的缓冲器(例如,易失性存储器内的槽)集合中。
21.在各种实施例中,更具体地,此命令标签集合可不仅包含与物理地址相关联的第一命令标签,而且包含与在第一物理地址处开始的读取窗口大小(例如,偏移值)内循序编号的后续物理地址相关联的额外命令标签。以此方式,顺序数据是以预看方式读取,且存储在经分配以处置在第一物理地址和后续物理地址处存储的数据容量的缓冲器集合中,例如,偏移值的读取预看。从物理地址读取的由主机系统请求的数据返回到主机系统。在主机系统从物理地址的偏移值内的第二或后续物理地址请求数据的情况下,命令生成处理器可从缓冲器集合快速检索数据且将数据发送到主机系统而无需任何进一步查找或转译。
22.本公开的优点包含但不限于改进的读取性能和避免中断写入操作以便服务于太多读取请求(比写入操作更频繁地发生)的重大成本,例如,通过用读取预看操作允许许多读取请求命中于缓冲器中。此外,本公开阐释了执行顺序读取性能优化以便降低来自主机系统的顺序读取请求的时延(即使那些读取请求与对其它区的写入操作和/或读取请求散置)的方法。这些优点协同利用了由具有zns功能的存储器装置执行的顺序写入。所属领域的技术人员将了解下文中论述的存储器子系统内的存储器分配和错误优化的其它优点。
23.图1a说明根据本公开的一些实施例的包含存储器子系统110的实例计算系统100。
存储器子系统110可包含媒体,例如易失性存储器(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130),或这些的组合。每个存储器装置130或140可以是一或多个存储器组件。
24.存储器子系统110可为存储装置、存储器模块,或存储装置和存储器模块的混合。存储装置的实例包含固态驱动器(ssd)、快闪驱动器、通用串行总线(usb)快闪驱动器、嵌入式多媒体控制器(emmc)驱动器、通用快闪存储(ufs)驱动器、安全数字(sd)卡和硬盘驱动器(hdd)。存储器模块的实例包含双列直插式存储器模块(dimm)、小外形dimm(so-dimm),及各种类型的非易失性双列直插式存储器模块(nvdimm)。
25.计算系统100可以是计算装置,例如台式计算机、膝上型计算机、网络服务器、移动装置、运载工具(例如,飞机、无人机、火车、汽车或其它运输工具)、支持物联网(iot)的装置、嵌入式计算机(例如,包含在运载工具、工业设备或联网市售装置中的计算机),或这类包含存储器和处理装置的计算装置。
26.计算系统100可包含耦合到一或多个存储器子系统110的主机系统120。在一些实施例中,主机系统120耦合到不同类型的存储器子系统110。图1a说明耦合到一个存储器子系统110的主机系统120的一个实例。如本文中所使用,“耦合到”或“与
……
耦合”通常是指组件或装置之间的连接,其可为间接通信连接或直接通信连接(例如,不具有中间组件或装置),无论有线或无线,包含例如电连接、光学连接、磁性连接和其类似物的连接。
27.主机系统120可包含处理器芯片组和由处理器芯片组执行的软件堆栈。处理器芯片组可包含一或多个核心、一或多个高速缓存、存储器控制器(例如,nvdimm控制器),和存储协议控制器(例如,pcie控制器、sata控制器)。主机系统120使用例如存储器子系统110以将数据写入到存储器子系统110和从存储器子系统110读取数据。
28.主机系统120可经由可在系统总线上通信的物理主机接口耦合到存储器子系统110。物理主机接口的实例包含但不限于串行高级技术附件(sata)接口、外围组件互连高速(pcie)接口、通用串行总线(usb)接口、光纤通道、串行附接scsi(sas)、双数据速率(ddr)存储器总线、小型计算机系统接口(scsi)、双列直插式存储器模块(dimm)接口(例如,支持双数据速率(ddr)的dimm套接接口)、开放nand快闪接口(onfi)、双数据速率(ddr)、低功率双数据速率(lpddr)或任何其它接口。物理主机接口可用于在主机系统120与存储器子系统110之间发射数据。当存储器子系统110通过pcie接口与主机系统120耦合时,主机系统120可进一步利用nvm高速(nvme)接口来存取组件(例如,存储器装置130)。物理主机接口可提供用于在存储器子系统110与主机系统120之间传送控制、地址、数据和其它信号的接口。图1a说明存储器子系统110作为实例。一般来说,主机系统120可经由同一通信连接、多个单独通信连接和/或通信连接的组合存取多个存储器子系统。
29.存储器装置130、140可包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可以是但不限于随机存取存储器(ram),例如动态随机存取存储器(dram)和同步动态随机存取存储器(sdram)。
30.非易失性存储器装置(例如,存储器装置130)的一些实例包含“与非”(nand)类型快闪存储器和就地写入存储器,例如三维交叉点(“3d交叉点”)存储器。非易失性存储器的交叉点阵列可结合可堆叠交叉网格化数据存取阵列而基于体电阻的改变来进行位存储。另外,与许多基于快闪的存储器对比,交叉点非易失性存储器可执行就地写入操作,其中可在
不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。nand型快闪存储器包含(例如)二维nand(2d nand)和三维nand(3d nand)。
31.存储器装置130中的每一个可包含一或多个存储器单元阵列。一种类型的存储器单元,例如,单电平单元(slc)可每单元存储一个位。其它类型的存储器单元,例如多电平单元(mlc)、三电平单元(tlc)和四电平单元(qlc)可每单元存储多个位。在一些实施例中,存储器装置130中的每一个可包含一或多个存储器单元阵列,例如slc、mlc、tlc、qlc或此类存储器单元阵列的任何组合。在一些实施例中,特定存储器装置可包含存储器单元的slc部分、和mlc部分、tlc部分、或qlc部分。存储器装置130的存储器单元可分组为页,所述页可指用于存储数据的存储器装置的逻辑单元。对于一些类型的存储器(例如,nand),页可进行分组以形成块。
32.虽然描述例如nand型快闪存储器(例如,2d nand、3d nand)和3d交叉点非易失性存储器单元阵列等非易失性存储器组件,但存储器装置130可基于任何其它类型的非易失性存储器,例如只读存储器(rom)、相变存储器(pcm)、自选存储器、其它基于硫族化物的存储器、铁电晶体管随机存取存储器(fetram)、铁电随机存取存储器(feram)、磁随机存取存储器(mram)、自旋转移力矩(stt)-mram、导电桥接ram(cbram)、电阻性随机存取存储器(rram)、基于氧化物的rram(oxram)、或非(nor)快闪存储器,和电可擦除可编程只读存储器(eeprom)。
33.存储器子系统控制器115(为简单起见,控制器115)可与存储器装置130通信以进行操作,例如在存储器装置130处读取数据、写入数据或擦除数据和其它此类操作。存储器子系统控制器115可以包含硬件,例如一或多个集成电路和/或离散组件、缓冲存储器或其组合。硬件可包含具有专用(即,硬译码)逻辑的数字电路系统以执行本文所描述的操作。存储器子系统控制器115可为微控制器、专用逻辑电路系统(例如,现场可编程门阵列(fpga)、专用集成电路(asic)等),或其它合适的处理器。
34.存储器子系统控制器115可包含经配置以执行存储于本地存储器119中的指令的处理器117(例如,处理装置)。在所说明实例中,存储器子系统控制器115的本地存储器119包含经配置以存储指令的嵌入式存储器,所述指令用于执行控制存储器子系统110的操作(包含处置存储器子系统110与主机系统120之间的通信)的各种过程、操作、逻辑流和例程。
35.在一些实施例中,本地存储器119可包含存储存储器指针、所提取数据等的存储器寄存器。本地存储器119还可包含用于存储微码的只读存储器(rom)。虽然在图1a中的实例存储器子系统110已说明为包含存储器子系统控制器115,但在本公开的另一实施例中,存储器子系统110不包含存储器子系统控制器115,而是可依靠外部控制(例如,由外部主机或由与存储器子系统分开的处理器或控制器提供)。
36.通常,存储器子系统控制器115可从主机系统120接收命令或操作,且可将所述命令或操作转换为指令或适当命令来实现对存储器装置130的所要存取。存储器子系统控制器115可负责其它操作,例如耗损均衡操作、垃圾收集操作、错误检测及错误校正码(ecc)操作、加密操作、高速缓存操作,及与存储器装置130相关联的逻辑地址(如,逻辑块地址(lba)、名称空间)与物理地址(例如,物理块地址)之间的地址转译。存储器子系统控制器115可进一步包含主机接口电路系统以经由物理主机接口与主机系统120通信。主机接口电路系统可将从主机系统接收到的命令转换成存取存储器装置130的命令指令,以及将与存
储器装置130相关联的响应转换成用于主机系统120的信息。
37.存储器子系统110还可包含未说明的额外电路或组件。在一些实施例中,存储器子系统110可以包含高速缓存或缓冲器(例如,dram)和地址电路系统(例如,行解码器和列解码器),其可从存储器子系统控制器115接收地址且对地址进行解码以存取存储器装置130。
38.在一些实施例中,存储器装置130包含本地媒体控制器135,其结合存储器子系统控制器115操作以对存储器装置130的一或多个存储器单元执行操作。外部控制器(例如,存储器子系统控制器115)可在外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器装置130是受管理存储器装置,其是与本地控制器(例如,本地媒体控制器135)组合以用于同一存储器装置封装或存储器裸片内的存储器管理的原始存储器装置。受管理存储器装置的实例是受管理nand(mnand)装置。
39.在一些实施例中,控制器115包含错误校正码(ecc)编码器/解码器111。ecc编码器/解码器111可对写入存储器装置130的数据执行ecc编码,且对从存储器装置130读取的数据执行ecc解码。可执行ecc解码以对ecc码字进行解码以校正原始读取数据中的错误,且在许多情况下还报告原始读取数据中的位错误的数目。
40.图1b说明根据实施例的图1a的存储器子系统110的额外细节。在实施例中,存储器子系统控制器115(例如,处理装置,为简单起见称为控制器115)包含一或多个寄存器112、包含缓冲器管理器113的命令生成处理器122、转译处理器123、命令执行处理器124,和本地存储器119。举例来说,处理器117(图1a)可包含命令生成处理器123、转译处理器123和命令执行处理器124。本地存储器119可除其它zns映射数据结构外还存储区映射数据结构101和块集合映射数据结构107,例如如图2中所图示。在一个实施例中,区映射数据结构101包含多个条目,使得每一条目具有链接到块集合映射数据结构107内的条目的块集合条目识别符,所述条目又可链接到定位存储器中的页的页映射数据结构的条目,如将参考图2详细解释。
41.此外,如先前参考一或多个存储器装置130、140论述,多个裸片(例如,裸片a和裸片b)的物理地址空间可通过平面、块和页按阶层式组织。如此,举例来说,裸片a和裸片b中的每一个可包含平面a和平面b,且平面a和平面b中的每一个可包含块a和块b。块集合(或块条带)可限定为跨越存储器装置的多个裸片的平面排列的块的群组。如所说明,块集合144经排列为包含裸片a的平面a的块a、裸片b的平面b的块a等等,例如还有裸片c的平面c且在另外的裸片上的块(如果存在且在线)。
42.在各种实施例中,转译处理器123(和/或耦合到转译处理器123的控制器115的动态数据放置器)动态地确定媒体布局以在存储器装置130、140的媒体单元或存储器组件(也被称作“ic裸片”或“媒体”)中放置与逻辑地址相关联的数据。媒体布局指定在存储器子系统110中(例如,从主机系统120)接收的命令中使用的逻辑地址与存储器子系统110的媒体中的物理存储器位置之间的映射。
43.转译处理器123可例如基于在存储器子系统110中的输入/输出调度时媒体进行写入、编程、存储、提交数据的可用性而确定用于lba空间的逻辑地址的一部分的媒体布局以用于在与存储器装置130或140的媒体的物理地址相关联的逻辑地址处放置数据。当ic裸片(包含ic裸片内的媒体单元)可用于提交/编程数据时,调度写入命令用于在存储器子系统110中执行;且转译处理器123生成用于写入命令的媒体布局的一部分且映射在写入命令中
使用的逻辑地址以映射到ic裸片内的存储器位置。写入命令的执行致使存储器子系统110将与写入命令相关联的数据提交/编程到ic裸片中。
44.取决于跨循序映射方案的媒体和/或应用的ic裸片的可用性,控制器115可循序地写入数据群组(例如,提供于循序数据流局部性中)以一次填充一个ic裸片,或可一次并行地循序写入到多个ic裸片,例如以同时填充媒体的ic裸片。写入在lba空间的区内的映射也可循序地进行以简化用于执行映射的计算,如将参考zns映射数据结构更详细地论述。当存在多个ic裸片可用时,在来自多个写入流的命令中使用的逻辑地址(例如,lba)可通过媒体布局的动态地生成的部分分别映射到所述多个ic裸片,使得在来自多个写入流的命令的执行中不存在媒体存取冲突。
45.在各种实施例中,转译处理器123存取某些zns映射数据结构(例如,区映射数据结构101和块集合映射数据结构107)以便将lba转译为物理地址空间的物理块地址(pba)。在快闪媒体(例如,nor或nand快闪存储器)的上下文中的转译处理器123可被称为快闪转译层(ftl)。由转译处理器123采用的映射可通常被认为涉及一种类型的块映射,例如块层级映射或逻辑块映射。在数据局部性被检测到或在zns存储器装置中的情况下,转译处理器123可例如在zns数据结构内映射形成区的块的群组,其可涉及将循序编号的lba映射到循序编号的pa,如先前论述。参考图2更详细论述使用zns数据结构和其相互关系以用于将区的lba空间映射到媒体的物理地址空间。
46.在一些实施例中,存储器子系统110还包含易失性存储器装置140a(例如,共享易失性存储器,例如tcm、sram、dram或其组合),其中分配用以存储(例如,高速缓存)数据以满足读取请求的缓冲器。举例来说,每一缓冲器可为易失性存储器装置140a的经寻址槽或条目。缓冲器可包含第一缓冲器142a、第二缓冲器142b、第三缓冲器142c等等,直到第n缓冲器142n。每一缓冲器可存储页大小的数据。在替代实施例中,虽然单独地示出,但易失性存储器装置140a实际上是控制器115的本地存储器119的部分。
47.在各种实施例中,命令生成处理器122基于分别从主机系统120或另一请求代理接收的读取和写入请求而执行命令处理,例如生成读取命令和写入命令。作为执行读取请求的部分,命令生成处理器122的缓冲器管理器113可分配某一数目(例如,“集合”)的缓冲器,其具有匹配于在第一物理地址(通过经创建为包含读取请求的lba的ltu映射)和在第一物理地址后循序编号的后续物理地址处存储的数据量的容量,例如,在限定存储器装置的读取窗口大小的偏移值内。在一个实施例中,偏移值是128kb,从而允许超出第一读取请求的额外124kb的数据的读取预看。设想各种其它偏移值或读取窗口大小。举例来说,可将每一后续物理地址递增跨越由偏移值限定的顺序物理地址空间的读取窗口的页数目,以确定后续物理地址。缓冲器管理器113对缓冲器的分配和跟踪促进了读取预看操作。
48.在这些实施例中,命令生成处理器122可进一步生成命令标签集合,其用以引导处理装置的命令执行处理器124从存储器装置130或140的第一地址和后续地址检索数据,且在缓冲器集合中存储数据。命令生成处理器122可进一步向命令执行处理器124传输包含命令标签集合的命令群组。以此方式,命令标签集合的每一命令标签包含ltu编号,其识别映射到相应顺序物理地址中的一个的物理地址的ltu。
49.在相关实施例中,缓冲器管理器113可跟踪缓冲器的使用,且负责当主机命令命中于这些缓冲器上时使用任何数目的缓冲器管理算法锁定或释放缓冲器以跟踪若干可能的
应用程序在各种缓冲器中高速缓存的数据。缓冲器管理算法可包含例如二-三树算法(也被称作2-3树算法),其中通过ltu编号(或lba编号)、链表算法或采用散列算法的n路高速缓存来分选缓冲器。举例来说,缓冲器管理器113可采用缓冲器索引表,其中高速缓存于缓冲器中的循序读取的数据针对不连续缓冲器数目编索引,如表1中所示。
50.数据索引(例如,用于64字节数据)缓冲器索引001324
…………
63230
51.表1
52.可由此类缓冲器管理算法使用(例如,用于跟踪缓冲器分配和使用)的元数据包含ltu/lba(数据在其上分选)、指示数据驻留于哪个缓冲器槽的缓冲器地址(或用于编索引的其它缓冲器识别符),以及允许联合地跟踪在单独读取或写入路径中的多个用户(例如,主机应用程序)的缓冲器使用计数。以此方式,缓冲器管理器113可管理对多个区写入和从多个区读取的多个应用程序,其中任何命令集合可为对循序存储的数据的写入或从循序存储的数据的读取,但所分配缓冲器可能未循序地编号,如表1中所示。如果跟踪缓冲器中的数据,那么可使用硬件加速来促进对缓冲器中的数据的跟踪和管理。
53.缓冲器管理器113可进一步使用旗标(例如,位旗标)或计数器以跟踪任何给定缓冲器是否正用于读取或写入路径中。这可允许缓冲器的快速搜索时间以满足进行中的命令(例如,已经在处理)和短搜索时间以找到特定lba,且因此缓冲器是否可用于高速缓存命中和直接传送到主机系统120,而不必回到转译处理器123用于映射。由于从表现类似于高速缓存的缓冲器检索数据带来的相干性不会是问题,只要首先检查区映射数据结构101即可,这是命令生成处理器122在所公开的顺序读取优化内将继续进行的操作。在一些实施例中,控制器115包含缓冲器管理器113的至少一部分。在其它实施例中,或以组合方式,主机系统120的控制器和/或处理装置包含缓冲器管理器113的至少一部分。举例来说,控制器115或主机系统120的处理装置可经配置以执行存储于存储器中的指令以用于执行本文所描述的缓冲器管理器113的操作。在一些实施例中,在安置于存储器子系统110中的集成电路芯片中实施缓冲器管理器113。在其它实施例中,缓冲器管理器113是主机系统120的操作系统、装置驱动器或应用程序的部分。
54.在这些实施例中,命令执行处理器124将数据总线的通道内的写入和读取命令序列化到存储器装置130、140。命令执行处理器124可进一步响应于接收到读取命令而从命令标签集合指向的存储器装置130、140的第一物理地址和后续物理地址检索数据。回顾每一命令标签包含映射到物理地址的ltu,且识别高速缓存于易失性存储器装置140a中的缓冲器内的缓冲器地址。命令执行处理器124可进一步根据命令标签集合的相应缓冲器地址将满足读取命令的数据存储(例如,高速缓存)到所分配缓冲器中,所述相应缓冲器地址由命令生成处理器122产生且包含于发送到命令执行处理器124的命令群组内。命令执行处理器124可进一步在例如对应于物理地址空间的物理层中执行错误处置。
55.转译处理器123将ltu转译为物理地址空间的物理地址以促进命令生成处理器122向命令执行处理器124生成命令。因此,转译处理器123可充当命令生成处理器124(接收关于lba的存储器请求且创建包含lba的ltu)与需要知道物理层的物理地址以满足命令的命令执行处理器124之间的中介。在本公开中,在顺序读取优化的读取预看操作中可避免用于编索引到各种zns映射数据结构中的转译处理器123的常规使用。
56.图2是根据各种实施例的说明经配置以支持基于区的映射的数据结构的实例的框图。控制器115可在本地存储器119中,例如在sram中,或者在存储器装置140的存储器组件中,例如在dram中存储图2所示的数据结构。控制器115也可使用图2的数据结构配置或实施媒体布局(例如,其中区的数据群组将位于物理地址空间内的布局)。在图2中,区映射数据结构201经配置以提供名称空间中的区的媒体布局信息,所述名称空间例如用于zns操作的lba空间。区映射数据结构201可相同或相似于图1b的区映射数据结构101。区映射数据结构201可具有多个条目。区映射数据结构201中的每个区映射条目识别关于区的信息,例如区的起始lba地址211、区的块集合识别符213、区的区游标值215、区的状态217等。
57.主机系统120在区起始lba识别符211的lba处开始在区中写入数据。主机系统120在lba空间中循序地在区中写入数据。在一定量的数据已写入到区中之后,由区游标值215识别用于写入后续数据的当前起始lba地址。针对区的每一写入命令将区游标值215移动到用于区的下一写入命令的新起始lba地址。状态217可具有指示区为空、满、隐式地开放、显式地开放、关闭等的值,以跟踪写入所述区的进程。
58.在图2中,逻辑到物理块映射数据结构203经配置以促进lba地址到媒体中的物理地址的转译。逻辑到物理块映射203可具有多个条目。lba可用作或转换为用于逻辑到物理块映射203中的条目的索引(例如,ltu编号)。索引可用于查找用于lba的条目。逻辑到物理块映射203中的每一条目针对lba识别媒体中的存储器块的物理地址。举例来说,媒体中的存储器块的物理地址可包含裸片识别符233、块识别符235、页映射条目识别符237及类似物。裸片识别符233识别存储器子系统110的存储器装置130、140的特定ic裸片(例如,裸片a或裸片b)。块识别符235识别使用裸片识别符233识别的ic裸片内的特定存储器块(例如,nand快闪存储器)。页映射条目识别符237识别页映射数据结构205中的条目。
59.页映射数据结构205可具有多个条目。页映射205中的每一条目可包含识别存储器单元块(例如,nand存储器单元)内的存储器单元页的页识别符251。举例来说,页识别符251可包含页的字线编号和nand存储器单元块中的页的子块编号。此外,页的条目可包含页的编程模式253。举例来说,页可在slc模式、mlc模式、tlc模式或qlc模式下编程。当在slc模式下配置时,页中的每个存储器单元将存储一个数据位。当在mlc模式下配置时,页中的每个存储器单元将存储两个数据位。当在tlc模式下配置时,页中的每个存储器单元将存储三个数据位。当在qlc模式下配置时,页中的每个存储器单元将存储四个数据位。集成电路裸片中的不同页可具有用于数据编程的不同模式。
60.在图2中,块集合数据结构207存储区的动态媒体布局的数据控制方面。块集合数据结构207可相同或相似于图1b的块集合映射数据结构107。在一个实施例中可为表的块集合数据结构207可具有多个条目。块集合数据结构207中的每一块集合条目识别区的数据存储于其中的集成电路裸片(例如,裸片a和裸片b)的数目/计数271。对于用于区的集成电路裸片中的每一个,块集合数据结构207的块集合条目具有裸片识别符273、块识别符275、页
映射条目识别符277、页映射偏移值及类似物。
61.裸片识别符273识别存储器子系统110的媒体中的特定ic裸片(例如,裸片a或裸片b),区的ic裸片后续数据可存储于其上。块识别符275识别使用裸片识别符273识别的ic裸片内的特定存储器块(例如,nand快闪存储器或其它媒体),区的后续数据可存储于所述块中。页映射条目识别符237识别页映射数据结构205中的页映射条目,其识别可用于存储区的后续数据的页。
62.例如,存储器子系统110接收多个写入命令流。在一实施例中,所述多个流中的每一相应流经配置以在一个实施例中循序地在逻辑地址空间中写入数据;且在另一实施例中,所述多个流中的流经配置以在一个实施例中伪循序地或随机地在逻辑地址空间中写入数据。每个写入流包含经标记以将数据集合一起作为群组进行写入、修整、重写的命令集合。在所述群组中,数据可循序、随机或伪循序地在逻辑空间中写入。优选地,群组中的数据写入到擦除块集合中,其中擦除块集合中的存储器单元存储用于流的数据,但不存储来自其它流的数据。擦除块集合可被擦除以移除所述流的数据,而不擦除其它流的数据。
63.例如,准许写入流中的每一个在存储器子系统110的存储器装置130、140的媒体中分配的名称空间中的区中的lba处循序地写入,但禁止其在lba(或逻辑地址)空间中无序地写入数据。存储器子系统110的转译处理器123识别存储器子系统110中可用于同时写入数据的多个媒体单元。
64.转译处理器123可从多个流选择第一命令以用于在可用于写入数据的多个媒体单元中同时执行。转译处理器123可动态地响应于第一命令经选择用于在多个媒体单元中同时执行而生成且存储媒体布局的一部分,其从逻辑地址空间中由第一命令识别的逻辑地址映射到多个存储器单元中的存储器单元的物理地址。
65.命令执行处理器124可通过根据物理地址将数据存储到存储器单元中来同时执行第一命令。举例来说,在调度用于执行的第一命令时,在存储器子系统110的媒体的存储器单元的子集中第二命令的执行可在进行中。因此,用于执行第二命令的存储器单元的子集不可用于第一命令。在调度第一命令并且确定第一命令中使用的逻辑地址的媒体布局的所述部分之后,第一命令可以在多个媒体单元中同时执行和/或与存储器子系统110的其余媒体单元中的第二命令的执行进程同时执行。
66.举例来说,在可用于执行接下来的命令的多个存储器单元(例如,ic裸片)的识别之后,转译处理器123可从块集合数据结构207识别可用以存储接下来的命令的数据的物理地址。物理地址可用以更新针对接下来的命令中使用的lba地址的逻辑到物理块映射数据结构203中的对应条目。
67.举例来说,当ic裸片可用于写入数据时,转译处理器123可确定可写入/编程到ic裸片中的存储器单元中的区的命令。从块集合数据结构207,转译处理器123定位区的条目,定位与集成电路裸片的识别符273相关联的块识别符275和页映射条目识别符277,且使用裸片识别符273、块识别符275和页映射条目识别符277来更新逻辑到物理块映射数据结构203中的针对区的命令中使用的lba的条目的对应字段。
68.图3是根据实施例的图1a-1b的子系统存储器控制器115的命令生成处理器122、转译处理器123和命令执行处理器124的相互关系的框图。在各种实施例中,控制器115包含共享易失性存储器140b和共享易失性存储器140b中的命令缓冲器140c。在一个实施例中,共
享易失性存储器140b是参考图1b论述和本地存储器119或易失性存储器装置140a的部分。在各种实施例中,命令生成处理器122可从主机系统120(或其它请求代理)接收第一读取请求。第一读取请求可包含第一lba,其对应于读取操作针对的存储器装置130或140的第一物理地址。在服务于第一读取请求时,命令生成处理器122可创建第一逻辑传送单元(ltu)以包含第一lba,所述第一ltu将映射到存储器装置的第一物理地址。
69.在一些实施例中,转译处理器123可经配置以在ltu到物理地址(pa)映射301的数据经编程到存储器装置130、140中时将所述映射自动存储(或缓冲)到共享易失性存储器140b中。举例来说,ltu到pa映射301可为逻辑到物理块映射数据结构203和页映射数据结构205的一部分,当相应物理地址经编程到存储器装置130或140时所述部分被写入。这可提供快速可存取的数据结构,其在命令标签层级处提供仅ltu到pa映射。在一些实施例中,共享易失性存储器140b中的ltu到pa映射301可经处理为高速缓存以保持此数据结构的大小有限。
70.继续参考图3,转译处理器123可进一步在共享易失性存储器140b中选择性地设定旗标303(例如,位旗标或类似物)。ltu到pa映射301中的每一条目可因此包含映射到ltu编号和旗标的物理地址。在替代实施例中,可设定存储于寄存器112(图1b)中的位图的位值。位图的位值中的一个可对应于特定ltu且因此充当共享易失性存储器140b的旗标303。位图可相关到已知例如每zns操作循序地写入的物理地址空间。旗标303(或位图内的位值)可指示ltu到pa映射条目是否与lba地址空间的区相关联,其中所述区映射到在存储器装置130或140中循序地写入的数据。转译处理器123可进一步选择性地设定裸片可用旗标305以指示其中定位物理地址的裸片可用于服务于命令。
71.在各种实施例中,如果设定旗标303且也设定裸片可用旗标305,那么命令生成处理器122执行本文公开的读取预看优化。所述读取优化可包含例如自动递增从用于第一读取请求的ltu到pa映射301检索的第一物理地址,以确定第一物理地址的偏移值(例如,读取窗口大小)内的后续物理地址。在一个实施例中,执行自动递增以将第一物理地址递增页数目,直到达到从第一物理地址起的读取窗口大小的结束为止。
72.命令生成处理器122可随后在命令缓冲器140c内生成(或更新)命令标签集合,其用以引导命令执行处理器124从存储器装置130或140检索数据且在参考图1b论述的缓冲器集合中存储数据。命令生成处理器122可随后进一步向处理装置的命令执行处理器124传输分别包含命令标签集合中的一个的命令群组。可在例如cmd[0]、cmd[1]、cmd[2]等等直到cmd[n]的命令缓冲器140c内缓冲命令集合。在一个实施例中,命令生成处理器122可将命令标签集合互连到命令链(例如,相应命令的链)中且在单个命令消息中将命令链传输到命令执行处理器124。
[0073]
在命令执行处理器124已将数据存储到为第一(或原始)读取命令的读取预看分配的相应缓冲器中之后,命令生成处理器122可将存储于第一物理地址处的数据传回到主机系统120或其它请求代理。然而,命令生成处理器122也可进一步服务于针对直接在缓冲器之外的后续物理地址的后续读取命令。举例来说,响应于第二读取请求,命令生成处理器122可确定第二读取请求的第二lba对应于后续物理地址中的第二物理地址。命令生成处理器122可随后从缓冲器集合中具有与命令标签集合中的第二命令标签相关联的缓冲器地址的第二缓冲器检索第二数据子集,且响应于后续读取命令中的第一个而将第二数据子集传
输到主机系统120。
[0074]
作为包含读取预看操作的上述顺序读取优化的实例,假定每一区是100mb,且主机系统120尝试读取存取顺序读取位置。主机系统120可发出落在映射到表2中说明的区的实例lba内的多个读取请求。
[0075]
以下范围内的lba值:区id(zid)300-3993200-2992100-19910-990
[0076]
表2
[0077]
假定每一块集合(例如,块条带)具有200页,那么这些区id可经由区映射数据结构201转译为如表3中所示的以下块集合识别符和写入指针。每一块集合识别符识别其中写入数据的块集合(或块条带),且写入指针跟踪接下来在给定区中应当写入新写入数据的位置。针对每一区可从表2中描述的起始位置读取直到写入指针的数据。
[0078]
区id(zid)块集合识别符;写入指针30xa,9920xf,20010x7,17800x2,0
[0079]
表3
[0080]
因此,假定第一读取请求是针对lba 200,则命令生成处理器122确定区id是2。作为响应,命令生成处理器122可以多个命令执行本文公开的读取预看操作,所述多个命令引导命令执行处理器124在所分配缓冲器集合中存储与lba值200-208相关联的数据,例如,基础lba值加上例如八的偏移。偏移值可经确定为一次性循序地写入的预定数据量或经确定为缓冲器可高速缓存的数据量的某一其它预定页数目。假定主机系统120可接下来发出具有201的lba值的第二读取请求,所述lba值是在lba 200之后的下一顺序lba。用于201的lba值的此第二数据子集现在存储于缓冲器中,且命令生成处理器122可响应于第二读取请求而将第二数据子集传回到主机系统120。
[0081]
图4是根据实施例的用于顺序读取优化的方法400的流程图。方法400可由可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合的处理逻辑执行。在一些实施例中,方法400由图1a-1b的控制器115(例如,命令生成处理器122)执行。虽然以特定顺序或次序来展示,但是除非另有指定,否则可修改过程的次序。因此,应理解,所说明实施例仅为实例,且所说明过程可以不同次序进行,且一些过程可并行地进行。另外,在各个实施例中可以省略一或多个过程。因此,在每个实施例中并不需要所有过程。其它过程流程也是可能的。
[0082]
参考图4,在操作410处,处理逻辑接收包含用于存储器装置的逻辑块地址(lba)地址空间的第一lba的读取请求。在操作415处,处理逻辑创建第一逻辑传送单元(ltu)以包含第一lba,所述第一ltu待映射到存储器装置的第一物理地址。第一ltu无需发送到转译处理
器123,只要转译处理器123已经在共享易失性存储器140b(图3)的ltu到pa映射301中创建ltu到pa条目。处理逻辑可随后存取针对共享存储器140b(图3)内的第一ltu编索引的第一物理地址。
[0083]
继续参考图4,在操作420处,处理逻辑确定快速查找旗标是否经设定。此快速查找旗标可为在共享易失性存储器140b中设定的与第一物理地址相关联的旗标303;或快速查找旗标可为存储与存储器装置130或140的zns相关物理地址空间相关联的位图的寄存器112中的一个中的位值。在任一情况下,快速查找旗标可指示第一ltu与循序地映射到多个顺序物理地址的多个顺序lba的区相关联。在操作440处,处理逻辑确定参考图3论述的裸片可用旗标305是否经设定。
[0084]
在操作430处,如果快速查找旗标或裸片可用旗标未经设定,那么处理逻辑经由正常读取路径提交读取请求,这包含向转译处理器123发送第一ltu以使转译处理器123在zns数据结构内执行查找以将第一ltu映射到第一物理地址。
[0085]
在操作450处,假定快速查找旗标和裸片可用旗标关于第一ltu经设定,则处理逻辑从易失性存储器(例如,图3中的共享易失性存储器140b)检索由转译处理器123存储(或缓冲)于该处的第一物理地址。第一物理地址可在共享易失性存储器140b的ltu到pa映射301的条目内编索引。
[0086]
在操作460处,处理逻辑在易失性存储器中分配缓冲器集合,其中所述缓冲器集合的容量匹配于在第一物理地址和在开始于第一物理地址的读取窗口大小内循序编号的后续物理地址处存储的数据量。存储缓冲器的易失性存储器可为本地存储器119、易失性存储器装置140a和/或共享易失性存储器140b。在各种实施例中,处理逻辑通过将第一物理地址递增页数目直到达到读取窗口大小的结束(例如,偏移值)而确定每一后续物理地址。
[0087]
在操作470处,处理逻辑生成命令标签集合,所述命令标签集合将引导处理装置的命令执行处理器124从存储器装置检索数据且在缓冲器集合中存储数据。命令标签集合可包含与第一物理地址相关联的第一命令标签和与后续物理地址相关联的额外命令标签。
[0088]
在操作480处,处理逻辑向命令执行处理器124传送分别包含命令标签集合的命令群组。在一个实施例中,命令生成处理器122可将命令标签集合互连到命令链(例如,相应命令的链)中且在单个命令消息中将命令链传输到命令执行处理器124。
[0089]
图5是根据相关实施例的用于顺序读取优化的方法500的流程图。方法500可由可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合的处理逻辑执行。在一些实施例中,方法500由图1a-1b的控制器115(例如,命令生成处理器122)执行。虽然以特定顺序或次序来展示,但是除非另有指定,否则可修改过程的次序。因此,应理解,所说明实施例仅为实例,且所说明过程可以不同次序进行,且一些过程可并行地进行。另外,在各个实施例中可以省略一或多个过程。因此,在每个实施例中并不需要所有过程。其它过程流程也是可能的。
[0090]
参考图5,在操作510处,处理逻辑接收包含用于存储器装置的逻辑块地址(lba)地址空间的第一lba的读取请求。在操作520处,处理逻辑创建包含第一lba且将映射到存储器装置的第一物理地址的第一逻辑传送单元(ltu)。
[0091]
在操作530处,处理逻辑读取旗标以确定第一ltu与lba地址空间的区相关联,其中
所述区包含循序地映射到多个顺序物理地址的多个顺序lba。如所论述,旗标可为存储于共享易失性存储器140b中的旗标303或存储于寄存器112中的位图的位值。在任一情况下,旗标或位值可指示ltu与映射到在存储器装置中循序地写入的数据的区相关联。
[0092]
在操作540处,处理逻辑在易失性存储器中分配缓冲器集合,其中所述缓冲器集合的容量匹配于在第一物理地址和在开始于第一物理地址的读取窗口大小内循序编号的后续物理地址处存储的数据量。存储缓冲器的易失性存储器可为本地存储器119、易失性存储器装置140a,或其它共享易失性存储器140b。在各种实施例中,处理逻辑通过将第一物理地址递增页数目直到达到读取窗口大小的结束而确定每一后续物理地址。
[0093]
在操作550处,处理逻辑生成命令标签集合,所述命令标签集合将引导处理装置的命令执行处理器从存储器装置检索数据且在缓冲器集合中存储数据。在此实施例中,命令标签集合至少包含与第一物理地址相关联的第一命令标签和与后续物理地址中循序地跟随第一物理地址的第二物理地址相关联的第二命令标签。
[0094]
图7说明计算机系统700的实例机器,在所述计算机系统内可执行用于使机器执行本文中所论述的方法中的任何一或多个的指令集。在一些实施例中,计算机系统700可对应于主机系统(例如,图1a的主机系统120),其包含、耦合到或利用存储器子系统(例如,图1a的存储器子系统110)。在替代实施例中,机器可连接(例如联网)到lan、内联网、外联网和/或因特网中的其它机器。机器可作为对等(或分布式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而以客户端-服务器网络环境中的服务器或客户端机器的容量进行操作。
[0095]
所述机器可以是个人计算机(pc)、平板pc、机顶盒(stb)、个人数字助理(pda)、蜂窝式电话、网络设备、服务器、网络路由器、交换机或桥接器,或能够(依序或以其它方式)执行指定待由所述机器采取的动作的指令集的任何机器。另外,尽管说明单个机器,但还应认为术语“机器”包含机器的任何集合,所述集合单独地或共同地执行一(或多)个指令集以进行本文中所论述的方法中的任何一或多种。
[0096]
实例计算机系统700包含处理装置702、主存储器704(例如,只读存储器(rom)、快闪存储器、动态随机存取存储器(dram),例如同步dram(sdram)或rambus dram(rdram)等)、静态存储器706(例如快闪存储器、静态随机存取存储器(sram)等),以及数据存储系统718,其经由总线730彼此通信。
[0097]
处理装置702表示一或多个通用处理装置,例如微处理器、中央处理单元等等。更特定来说,处理装置可以是复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置702也可以是一或多个专用处理装置,例如专用集成电路(asic)、现场可编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器或类似物。处理装置702经配置以执行指令726以用于执行本文中所论述的操作和步骤。计算机系统700可进一步包含网络接口装置708以经由网络720进行通信。
[0098]
数据存储系统718可包含机器可读存储媒体724(也称为计算机可读媒体),其上存储有一或多个指令集726或体现本文中所描述的方法或功能中的任一或多种的软件。指令726还可在由计算机系统700执行期间完全或至少部分地驻留在主存储器704内和/或处理装置702内,主存储器704和处理装置702也构成机器可读存储媒体。机器可读存储媒体724、
数据存储系统718和/或主存储器704可对应于图1a-1b的存储器子系统110。
[0099]
在一个实施例中,指令726包含用以实施对应于图1b的缓冲器管理器113的功能性的指令。虽然在实例实施例中机器可读存储媒体724展示为单个媒体,但应认为术语“非暂时性机器可读存储媒体”包含存储一或多个指令集的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或编码供机器执行的指令集合且致使机器执行本公开的方法中的任何一种或多种的任何媒体。因此,应认为术语“机器可读存储媒体”包含但不限于固态存储器、光学媒体和磁性媒体。
[0100]
已在针对计算机存储器内的数据位的操作的算法和符号表示方面呈现了先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用以将其工作的主旨最有效地传达给所属领域的其他技术人员的方式。在本文中,且一般将算法构想为产生所要结果的操作的自洽序列。操作是要求对物理量进行物理操纵的操作。通常(但未必),这些量采用能够存储、组合、比较以及以其它方式操纵的电或磁信号的形式。已经证实,主要出于常用的原因,将这些信号称为位、值、元素、符号、字符、项、编号等等有时是便利的。
[0101]
然而,应牢记,所有这些和类似术语将与适当物理量相关联,且仅仅为应用于这些量的便利标记。本公开可指将计算机系统的寄存器和存储器内的表示为物理(电子)量的数据操控和变换为计算机系统存储器或寄存器或其它这类信息存储系统内的类似地表示为物理量的其它数据的计算机系统或类似电子计算装置的动作和过程。
[0102]
本公开还涉及用于执行本文中的操作的设备。这一设备可以出于所需目的而专门构造,或其可包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此计算机程序可存储在计算机可读存储媒体中,例如但不限于任何类型的盘,包含软盘、光盘、cd-rom及磁光盘、只读存储器(rom)、随机存取存储器(ram)、eprom、eeprom、磁卡或光卡或适合于存储电子指令并且各自耦合到计算机系统总线的任何类型的媒体。
[0103]
本文中呈现的算法和显示器在本质上并不与任何特定计算机或其它设备相关。各种通用系统可以与根据本文中的教示的程序一起使用,或可以证明构造用以执行所述方法更加专用的设备是方便的。将如下文描述中所阐述的那样来呈现各种这些系统的结构。另外,未参考任何特定编程语言来描述本公开。应了解,可使用各种编程语言来实施如本文中所描述的本公开的教示内容。
[0104]
本公开可以提供为计算机程序产品或软件,其可以包含在其上存储有可以用于编程计算机系统(或其它电子装置)以执行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机制。在一些实施例中,机器可读(例如计算机可读)媒体包含机器(例如计算机)可读存储媒体,例如只读存储器(“rom”)、随机存取存储器(“ram”)、磁盘存储媒体、光学存储媒体、快闪存储器组件等。
[0105]
在前述说明书中,本公开的实施例已经参照其特定实例实施例进行描述。将显而易见的是,可在不脱离如所附权利要求书中阐述的本公开的实施例的更广精神和范围的情况下对本公开进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书及图式。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献