掌桥专利:专业的专利平台
掌桥专利
首页

管理编程模式转变以适应主机系统和存储器子系统之间的数据传递的恒定大小

文献发布时间:2023-06-19 13:26:15


管理编程模式转变以适应主机系统和存储器子系统之间的数据传递的恒定大小

本申请要求2020年5月26日提交的标题为“管理编程模式转变以适应主机系统和存储器子系统之间的数据传递的恒定大小(Management of Programming ModeTransitions to Accommodate a Constant Size of Data Transfer between a HostSystem and a Memory Sub-System)”的第16/883,826号非临时美国专利申请的优先权,该非临时美国专利申请主张2019年6月28日提交的标题为“管理编程模式转变以适应主机系统和存储器子系统之间的数据传递的恒定大小(Management of Programming ModeTransitions to Accommodate a Constant Size of Data Transfer between a HostSystem and a Memory Sub-System)”的第62/868,060号临时美国专利申请的优先权,这些申请的全部公开内容特此以引用的方式并入本文中。

技术领域

本文中所公开的至少一些实施例大体来说涉及存储器系统,且更明确地说(但不限于)涉及管理编程模式转变以适应主机系统和存储器子系统之间的数据传递的恒定大小。

背景技术

存储器子系统可包含存储数据的一或多个存储器装置。存储器装置可为例如非易失性存储器装置和易失性存储器装置。一般来说,主机系统可以利用存储器子系统在存储器装置处存储数据以及从存储器装置检索数据。

附图说明

在附图的各图中借助于实例而非限制示出实施例,在附图中,相似的参考标号指示类似的元件。

图1示出根据本公开的一些实施例包含存储器子系统的实例计算系统。

图2展示被配置成控制主机系统和存储器子系统之间的数据传递的定时的数据传递管理器。

图3展示具有定时数据传递的存储器子系统的实例。

图4示出被配置成支持主机系统和存储器子系统之间的数据传递的数据结构的实例。

图5展示定时数据传递的方法。

图6示出待响应于编程模式的转变而在原子编程操作中编程的数据的大小。

图7展示用以管理编程模式转变以适应主机系统和存储器子系统之间的数据传递的恒定大小的方法。

图8是本公开的实施例可在其中操作的实例计算机系统的框图。

具体实施方式

本公开的至少一些方面是针对主机系统和存储器子系统之间的数据传递。举例来说,数据传递经定时/调度以减少存储器子系统中的缓冲存储器要求,且因此减少针对存储器子系统中的电源失效保持电路的要求。举例来说,管理原子编程模式之间的转变以适应主机系统和存储器子系统之间的数据传递的恒定大小。存储器子系统可以是存储装置、存储器模块或存储装置与存储器模块的混合。下文结合图1描述存储装置和存储器模块的实例。一般来说,主机系统可利用包含一或多个组件(例如,存储数据的存储器装置)的存储器子系统。主机系统可提供待存储在存储器子系统处的数据,且可请求待从存储器子系统检索的数据。

传统上,基于高速缓存的架构用于存储器子系统中以将主机系统与存储器子系统隔离。当在存储器子系统中从主机系统接收到写入命令时,将数据从主机系统传递到存储器子系统中的高速缓存。当写入工作负载超出存储器子系统的介质的带宽而不能将数据提交、存储或编程到介质中时,主机系统中的输入/输出活动由于在高速缓存缓冲器中缺乏可用空间而发生抑制。虽然此类架构可使用高速缓存的数据提供低时延写入,但其在写入工作负载超出存储器子系统的介质的带宽时具有缺点。举例来说,可发布到存储器子系统的未处理命令的数目受存储器子系统中的高速缓存缓冲存储器的大小限制。高速缓存缓冲存储器的增加的大小会增加对电源失效备份电路系统的能量存储容量的要求。此外,当两个或更多个命令映射到一次仅可执行一个命令的同一介质单元时,发生命令冲突。冲突会引起较高缓冲存储器消耗和存储在缓冲存储器中的数据的较长生存期。就高速缓存缓冲存储器的大小要求增加和电源失效保持电路系统的能量存储容量增加而言,这可使得系统成本增加。此外,第一写入流可通过在高速缓存缓冲存储器中缓冲数据且不为第二写入流保留缓冲空间来阻挡第二写入液流,使得即使当存在可用于对第二写入流执行写入命令的介质单元时,由于在高速缓存缓冲存储器中缺乏缓冲空间而阻挡第二写入流。

本公开的至少一些方面通过主机系统与存储器子系统之间的定时数据传递来解决以上和其它缺陷。排队机制被配置成允许在存储器子系统中接受命令而不需将数据记录于存储器子系统中。可将排队的命令映射到介质单元,且将其保持在每介质单元的待决队列中。当介质单元变得可用于执行写入命令时,为写入命令的数据分配缓冲空间;且根据介质单元接受数据的可用性,推迟将用于写入命令的数据从主机系统传递到存储器子系统的高速缓存缓冲存储器以供记录到介质单元中。介质单元的队列中的命令可不按照从主机系统接收命令的次序执行。数据及时经由高速缓存缓冲存储器传递,以便提交、写入或编程到介质单元中。因此,可执行无阻塞的命令处理。此布置减少高速缓存缓冲存储器的大小要求和高速缓存缓冲存储器中的数据的生存期。举例来说,可将高速缓存缓冲存储器的大小减小到与可用于支持写入命令的并行执行的介质单元的数目成比例的大小。可将缓冲器生存期减少到与用于写入命令的同时执行的主机系统和存储器子系统之间的数据传递的次数成比例的时间周期。高速缓存缓冲存储器要求和缓冲器生存期的显著减少会减少电源失效保持要求。举例来说,存储器子系统的控制器的静态随机存取存储器(SRAM)存储器可用作高速缓存缓冲存储器。可消除动态随机存取存储器(DRAM)高速缓存。此技术可通过将更多的数据保存在由主机控制且使用主机系统中的电路系统实现电源失效防护的存储器中,来消除计算机系统中的易失性存储器的电源失效防护的双倍成本。当使用此技术时,增加的主机写入流和/或冲突的数目并不增加对存储器子系统中的高速缓存缓冲存储器和电源失效保持电路的要求。此外,此技术可具有无阻塞和无次序命令处理的益处。此外,可基于对产生单页数据编程的模式转变进行计数且在偶数数目的单页转变之后允许产生两页数据编程的模式转变,来管理原子编程模式之间的转变,如下文进一步详细描述。

图1示出根据本公开的一些实施例包含存储器子系统110的实例计算系统100。存储器子系统110可包含例如一或多个易失性存储器装置(例如,存储器装置102)、一或多个非易失性存储器装置(例如,存储器装置104)或此些装置的组合等介质。

存储器子系统110可为存储装置、存储器模块,或存储装置与存储器模块的混合。存储装置的实例包含固态驱动器(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器、嵌入式多介质控制器(eMMC)驱动器、通用快闪存储(UFS)驱动器、安全数字(SD)卡,以及硬盘驱动器(HDD)。存储器模块的实例包含双列直插式存储器模块(DIMM)、小型DIMM(SO-DIMM),和各种类型的非易失性双列直插式存储器模块(NVDIMM)。

计算系统100可为计算装置,例如台式计算机、膝上型计算机、网络服务器、移动装置、交通工具(例如,飞机、无人机、火车、汽车或其它运输工具)、具有物联网(IoT)功能的装置、嵌入式计算机(例如,交通工具、工业设备或联网商业装置中包含的嵌入式计算机),或包含存储器和处理装置的此类计算装置。

计算系统100可包括耦合到一或多个存储器子系统110的主机系统120。图1示出耦合到一个存储器子系统110的主机系统120的一个实例。如本文中所使用,“耦合到......”或“与......耦合”通常是指组件之间的连接,其可以是间接通信连接或直接通信连接(例如,不具有中间组件),无论有线或无线,包含例如电连接、光学连接、磁性连接等连接。

主机系统120可包含处理器芯片组(例如处理装置118)和由处理器芯片组执行的软件堆栈。处理器芯片组可包含一或多个核心、一或多个高速缓存、存储器控制器(例如,控制器116)(例如NVDIMM控制器),和存储协议控制器(例如,PCIe控制器、SATA控制器)。主机系统120使用存储器子系统110例如将数据写入到存储器子系统110和从存储器子系统110读取数据。

主机系统120可经由物理主机接口耦合到存储器子系统110。物理主机接口的实例包含(但不限于)串行高级技术附件(SATA)接口、外围组件互连高速(PCIe)接口、通用串行总线(USB)接口、光纤通道、串行附接SCSI(SAS)、双数据速率(DDR)存储器总线、小型计算机系统接口(SCSI)、双列直插式存储器模块(DIMM)接口(例如,支持双数据速率(DDR)的DIMM套接接口)、开放式NAND快闪接口(ONFI)、双数据速率(DDR)、低功率双数据速率(LPDDR),或任何其它接口。物理主机接口可用以在主机系统120与存储器子系统110之间发射数据。当存储器子系统110通过PCIe接口与主机系统120耦合时,主机系统120可以进一步利用NVM高速(NVM Express,NVMe)接口来访问组件(例如,存储器装置104)。物理主机接口可提供用于在存储器子系统110与主机系统120之间传递控制、地址、数据和其它信号的接口。图1示出存储器子系统110作为实例。一般来说,主机系统120可经由相同通信连接、多个单独的通信连接和/或通信连接的组合存取多个存储器子系统。

主机系统120的处理装置118可例如为微处理器、中央处理单元(CPU)、处理器的处理核心、执行单元等。在一些情况下,控制器116可称为存储器控制器、存储器管理单元和/或起始器。在一个实例中,控制器116控制耦合在主机系统120与存储器子系统110之间的总线上的通信。通常,控制器116可向存储器子系统110发送期望存取存储器装置102、104的命令或请求。控制器116可进一步包含用于与存储器子系统110通信的接口电路系统。接口电路系统可将从存储器子系统110接收到的响应转换成用于主机系统120的信息。

主机系统120的控制器116可与存储器子系统110的控制器115通信以执行操作,例如在存储器装置102、104处读取数据、写入数据或擦除数据以及其它此类操作。在一些情况下,控制器116集成在处理装置118的同一封装内。在其它情况下,控制器116与处理装置118的封装分离。控制器116和/或处理装置118可包含硬件,例如一或多个集成电路(IC)和/或离散组件、缓冲存储器、高速缓冲存储器或其组合。控制器116和/或处理装置118可以是微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或另一合适的处理器。

存储器装置102、104可包含不同类型的非易失性存储器组件和/或易失性存储器组件的任何组合。易失性存储器装置(例如,存储器装置102)可以是(但不限于)随机存取存储器(RAM),例如动态随机存取存储器(DRAM)和同步动态随机存取存储器(SDRAM)。

非易失性存储器组件的一些实例包含与非(NAND)型快闪存储器和就地写入存储器,例如三维交叉点(“3D交叉点”)存储器。非易失性存储器的交叉点阵列可结合可堆叠交叉网格化数据存取阵列基于体电阻的改变而执行位存储。另外,与许多基于快闪的存储器对比,交叉点非易失性存储器可执行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。NAND型快闪存储器包含(例如)二维NAND(2D NAND)和三维NAND(3D NAND)。

存储器装置104中的每一个可包含一或多个存储器单元阵列。一种类型的存储器单元,例如单层级单元(SLC),可存储每单元一个位。其它类型的存储器单元,例如多层级单元(MLC)、三层级单元(TLC)、四层级单元(QLC)和五层级单元(PLC)可存储每单元多个位。在一些实施例中,存储器装置104中的每一个可包含一或多个存储器单元阵列,例如SLC、MLC、TLC、QLC或这些的任何组合。在一些实施例中,特定存储器装置可包含存储器单元的SLC部分以及MLC部分、TLC部分或QLC部分。存储器装置104的存储器单元可分组为页,所述页可指用于存储数据的存储器装置的逻辑单元。对于一些类型的存储器(例如,NAND),页可被分组以形成块。

尽管描述了非易失性存储器装置,例如3D交叉点型和NAND型存储器(例如,2DNAND、3D NAND),但存储器装置104可基于任何其它类型的非易失性存储器,例如只读存储器(ROM)、相变存储器(PCM)、自选存储器、其它基于硫属化物的存储器、铁电晶体管随机存取存储器(FeTRAM)、铁电随机存取存储器(FeRAM)、磁随机存取存储器(MRAM)、自旋转移力矩(STT)-MRAM、导电桥接RAM(CBRAM)、电阻性随机存取存储器(RRAM)、基于氧化物的RRAM(OxRAM)、或非(NOR)快闪存储器和电可擦除可编程只读存储器(EEPROM)。

存储器子系统控制器115(或为简单起见,控制器115)可与存储器装置104通信以执行操作,例如在存储器装置104处读取数据、写入数据或擦除数据和其它此类操作(例如,响应于控制器116在命令总线上调度的命令)。控制器115可包含硬件,例如一或多个集成电路(IC)和/或离散组件、缓冲存储器或其组合。硬件可包含具有用以执行本文中所描述的操作的专用(即,硬译码)逻辑的数字电路系统。控制器115可以是微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或另一合适的处理器。

控制器115可包含被配置成执行存储在本地存储器119中的指令的处理装置117(处理器)。在所示出的实例中,控制器115的本地存储器119包含被配置成存储指令的嵌入式存储器,所述指令用于执行控制存储器子系统110的操作(包含处理存储器子系统110与主机系统120之间的通信)的各种过程、操作、逻辑流和例程。

在一些实施例中,本地存储器119可包含存储存储器指针、所提取数据等的存储器寄存器。本地存储器119还可包含用于存储微码的只读存储器(ROM)。虽然图1中的实例存储器子系统110已示出为包含控制器115,但在本公开的另一实施例中,存储器子系统110不包含控制器115,而是可依赖于外部控制(例如,由外部主机或由与存储器子系统分离的处理器或控制器提供)。

通常,控制器115可从主机系统120接收命令或操作,且可将所述命令或操作转换为指令或适当命令以实现对存储器装置104的所要存取。控制器115可负责其它操作,例如耗损均衡操作、垃圾收集操作、错误检测和错误校正码(ECC)操作、加密操作、高速缓存操作,以及与存储器装置104相关联的逻辑地址(例如,逻辑块地址(LBA)、名称空间)和物理地址(例如,物理块地址)之间的地址转译。控制器115可进一步包含主机接口电路系统以经由物理主机接口与主机系统120通信。主机接口电路系统可将从主机系统接收的命令转换成命令指令以存取存储器装置104,以及将与存储器装置104相关联的响应转换成用于主机系统120的信息。

存储器子系统110还可包含未示出的额外电路系统或组件。在一些实施例中,存储器子系统110可包含高速缓存或缓冲器(例如,DRAM)和地址电路系统(例如,行解码器和列解码器),所述地址电路系统可从控制器115接收地址并解码所述地址以存取存储器装置104。

在一些实施例中,存储器装置104包含本地介质控制器105,其结合存储器子系统控制器115操作以对存储器装置104的一或多个存储器单元执行操作。外部控制器(例如,存储器子系统控制器115)可在外部管理存储器装置104(例如,执行存储器装置104上的介质管理操作)。在一些实施例中,存储器装置104是受管理存储器装置,其是与本地控制器(例如,本地控制器105)组合以在同一存储器装置封装内进行介质管理的原始存储器装置。受管理存储器装置的实例是受管理NAND(MNAND)装置。

计算系统100包含存储器子系统110中的数据传递管理器113,其推迟用于写入命令的数据传递直到确定一或多个介质单元/存储器装置可用于提交、存储、写入或编程数据到介质单元/存储器装置中为止。替代地或以组合方式,数据传递管理器113可管理原子编程模式之间的转变以适应主机系统和存储器子系统之间的数据传递的恒定大小。在一些实施例中,存储器子系统110中的控制器115包含数据传递管理器113的至少一部分。在其它实施例中,或以组合方式,主机系统120中的控制器116和/或处理装置118包含数据传递管理器113的至少一部分。举例来说,控制器115、控制器116和/或处理装置118可包含实施数据传递管理器113的逻辑电路系统。举例来说,控制器115或主机系统120的处理装置118(处理器)可被配置成执行存储在存储器中的指令以执行本文中所描述的数据传递管理器113的操作。在一些实施例中,数据传递管理器113实施于安置于存储器子系统110中的集成电路芯片中。在其它实施例中,数据传递管理器113是主机系统120的操作系统的一部分、装置驱动器或应用。

数据传递管理器113可调度从主机系统120到存储器子系统110的数据传递以减少在将数据提交、存储、写入或编程到介质单元/存储器装置102至104中之前在存储器子系统110中缓冲的数据的量和时间。举例来说,当介质单元(例如,102或104)确定为可用于执行写入命令(例如,不忙于其它操作)时,数据传递管理器113起始用于写入命令的数据从主机系统120到存储器子系统110的传递。当介质单元(例如,102或104)确定为忙于另一命令的操作时,数据传递管理器113针对介质单元(例如,102或104)推迟排队的写入命令的数据从主机系统120到的存储器子系统110的传递。一般来说,数据传递管理器113被配置成针对介质单元102到104的子集(所述子集被确定为可用于写入操作)起始数据从主机系统120到存储器子系统110的传递,且针对介质单元102到104的忙于其它操作的剩余子集推迟更多数据的传递。因为及时从主机系统120提取写入命令的数据以便执行写入命令,所以根据用以对数据进行写入、存储、提交或编程以供存储的介质单元/存储器装置102到104的带宽,数据传递管理器113可使正缓冲于存储器子系统110中的数据的量和时间减少和/或最小化。下文描述关于数据传递管理器113的操作的其它细节。

图2展示被配置成控制主机系统120和存储器子系统110之间的数据传递的定时的数据传递管理器113。举例来说,图2的数据传递管理器113可在图1的计算机系统100中实施。

在图2中,主机系统120具有存储待写入到存储器子系统110的介质203中的数据的易失性存储器133。

主机系统120具有电源失效保持电路131,其可为易失性存储器133和/或主机系统120的其它组件(例如,图1中所示出的处理装置118)提供足够电力,使得在电源失效的事件中,可确保易失性存储器133中的数据135安全。举例来说,在电源失效事件期间,电源失效保持电路131可在长到足以允许易失性存储器133中的数据存储到存储器子系统110的非易失性介质203和/或另一存储器装置中的时间周期内为易失性存储器133供电。

可选地,主机系统120可将数据135高速缓存在代替易失性存储器133的非易失性存储器中。因此,存储在非易失性存储器中的数据135是防电源失效的;且可消除用于易失性存储器133的电源失效保持电路131。然而,使用非易失性存储器替代易失性存储器133可能降低数据存取性能和/或增加主机系统120的成本。在一些例子中,易失性存储器133和非易失性存储器的组合可在主机系统120中使用(例如,以在电源失效事件中保护数据和/或改进数据存取性能)。

图2中,存储器子系统110的数据传递管理器113可维持用于从主机系统120的控制器116接收的命令的至少一个命令队列143。队列143中的命令可存储在存储器子系统110的控制器(例如,图1中所示出的115)的本地存储器119中。可将来自主机系统120的写入命令接受到队列143中,而无需将数据写入到介质203中。命令的排队允许在存储器子系统110中无次序地执行命令,以在一些情况下实现性能优化。

图2中,本地存储器119具有电源失效保持电路141,其可用于在电源失效事件期间保护本地存储器119中的内容(例如,146和143)。在电源失效事件期间,电源失效保持电路141可在长到足以允许内容存储到非易失性存储器(例如,介质203)中的时间周期内为本地存储器119供电。

任选地,本地存储器119可使用非易失性存储器实施以消除对电源失效保持电路141的需要,或使用非易失性存储器的组合实施以减少对于电源失效保持电路141的要求。

在图2中,数据传递管理器113被配置成对主机系统120和存储器子系统110之间的数据传递进行定时/调度,且因此降低对于本地存储器119的大小要求和/或对于电源失效保持电路141的容量需求。

举例来说,数据传递管理器113不自动接受和/或传递在命令队列143中排队的所有写入命令的数据。为了减少正缓冲于本地存储器119中的数据量145,数据传递管理器113推迟写入命令的数据的传递,且当介质单元(例如,109A或109N,比如图1中示出的存储器装置102和/或104)中的一个被确定为准备好执行写入命令时起始所述传递。

因此,对于介质单元109A到109N中的每一个,本地存储器119可缓冲一些写入命令的数据,但非其它写入命令的数据。在一些实施方案中,本地存储器119被配置成缓冲不超过预定数目的命令(例如,每介质单元一个命令、或两个命令或另一数目个命令)的数据。然而,命令队列143可为介质单元109A到109N中的每一个缓冲的写入命令比本地存储器119可为相应介质单元(例如,109A或109N)缓冲的写入命令的数据更多(例如,以实现无次序命令执行)。

当命令与其数据之间的大小比率较大时,通过减少对命令的数据的缓冲来缓冲命令的技术可能是特别有利的。

任选地,数据传递管理器113可为介质单元109A到109N中的每一个配置队列(例如,143)。或者,数据传递管理器113可为介质单元109A到109N配置组合的命令队列(例如,143),且在介质单元109A到109N变得可用于执行写入命令时,将写入命令动态地指派到介质单元109A到109N。举例来说,当写入命令准备好在可用介质单元(例如,109A或109N)中执行时,可动态地生成用于映射写入命令中识别的逻辑地址的介质布局的一部分以将逻辑地址映射到当前可用介质单元(例如,109A或109N)中的存储器位置。因此,写入命令可在可用介质单元(例如,109A或109N)中执行。

图3展示具有定时数据传递的存储器子系统的实例。举例来说,图3的存储器子系统可使用图2的数据传递管理器113在图1的存储器子系统110中实施。然而,图1和图2的技术不限于图3中示出的存储器子系统的实施方案。举例来说,所述技术可实施平面块装置、支持名称空间的装置,或支持分区名称空间的装置(例如,图3中示出的存储器子系统)。因此,本文中呈现的公开内容不限于图3的实例。

在图3中,名称空间201被配置在存储器子系统110的介质存储容量上。名称空间201提供逻辑块寻址空间,所述逻辑块寻址空间可以由主机系统120使用以指定用于读取或写入操作的存储器位置。名称空间201可以被分配在存储器子系统110的介质存储容量的一部分或存储器子系统110的整个介质存储容量上。在一些情况下,可以在存储器子系统110的介质存储容量的单独、非重叠部分上分配多个名称空间。

在图3中,名称空间201被配置成具有多个区211、213、…、219。名称空间中的每一区(例如,211)允许对区(例如,211)中的本地块寻址(LBA)地址进行随机读取存取,并且允许对区(例如,211)中的LBA地址进行循序写入存取,但不允许对区(211)中的随机LBA地址进行随机写入存取。因此,在名称空间201的LBA地址空间中以预定的循序次序执行将数据写入到区(例如,211)中。

当配置名称空间201中的区(例如,211)时,(例如,为简单起见)为所述区(例如,211)预先确定介质布局是可能的。区(例如,211)中的LBA地址可预映射到存储器子系统110的介质203。然而,如上文所论述,此预先确定的介质布局可在存在多个并行写入流时引起介质存取冲突。使从区(例如,211)中的LBA地址到介质203中的存储器位置的映射随机化可以减少冲突,但不能消除冲突。

优选地,在存储器子系统110中配置动态数据放置器153,以在调度用于执行的写入命令时创建介质布局130的部分,从而完全消除介质存取冲突。在一些实施方案中,动态数据放置器153可为数据传递管理器113的部分。

举例来说,存储器子系统110的介质203可具有多个集成电路裸片205、...、207。集成电路裸片中的每一个(例如,205)可具有存储器单元(例如,NAND存储器单元)的多个平面221、...、223。平面中的每一个(例如,221)可以具有存储器单元(例如,NAND存储器单元)的多个块231、...、233。块中的每一个(例如,231)可以具有存储器单元(例如,NAND存储器单元)的多个页241、...、243。每一页(例如,241)中的存储器单元被配置成被编程以在原子操作中一起存储/写入/提交数据;且每一块(例如,231)中的存储器单元被配置成在原子操作中一起擦除数据。

当由于两个集成电路裸片(例如,205和207)可用于写入命令(例如,123A和123N)的并行操作,用于将数据存储在一个区(例如,211)中的写入命令(例如,123A)和用于将数据存储在另一区(例如,213)中的另一写入命令(例如,123N)被调度以用于并行执行时,动态数据放置器153将写入命令的LBA地址映射到位于不同裸片(例如,205和207)中的页中。因此,可避免介质存取冲突。

此外,当两个集成电路裸片(例如,205和207)确定为可用于写入命令(例如,123A和123N)的执行时,数据传递管理器113起始写入命令(例如,123A和123N)的数据145从主机系统120的存储器133到存储器子系统110的本地存储器119的传递。因此,队列143中的写入命令的大多数数据135可存储在主机存储器133中,而相应写入命令自身接受于存储器子系统110中的命令队列143中。数据145用于写入命令(例如,123A和123N),所述写入命令准备好执行以用于将数据存储到集成电路裸片(例如,205和207)中的可用于服务于写入命令(例如,123A和123N)的存储器单元中。由于仅数据145针对可用集成电路裸片(例如,205和207)及时传递,因此在本地存储器119中缓冲的数据145的生存期缩短和/或最小化。此外,在本地存储器119中缓冲的数据145的量可减少和/或最小化。写入命令的数据145的生存期和量的减少可降低在电源失效事件中保护本地存储器119的内容的要求。

图4示出被配置成支持主机系统和存储器子系统之间的数据传递的数据结构的实例。举例来说,可使用图4的数据结构来实施图3的介质布局130。

在图4中,区映射301被配置成提供用于名称空间(例如,201)中的区(例如,211)的介质布局信息。区映射301可以具有多个条目。区映射301中的每一条目识别关于区(例如,211)的信息,例如区(例如,211)的起始LBA地址311、区(例如,211)的块集合识别符313、区(例如,211)的光标值315、区(例如,211)的状态317等。

主机系统120在区起始LBA地址311处开始在区(例如,211)中写入数据。主机系统120在LBA空间中循序地在区(例如,211)中写入数据。在一定量的数据已写入到区(例如,211)中之后,由光标值315识别用于写入后续数据的当前起始LBA地址。针对区的每一写入命令将光标值315移动到用于所述区的下一写入命令的新的起始LBA地址。状态317可以具有指示区(例如,211)为空、已满、隐式地打开、显式地打开、关闭等的值。

在图4中,逻辑到物理块映射303被配置成促进LBA地址(例如,331)转译为介质(例如,203)中的物理地址。

逻辑到物理块映射303可具有多个条目。LBA地址(例如,331)可用作或转换成逻辑到物理块映射303中的条目的索引。所述索引可用于查找LBA地址(例如,331)的条目。逻辑到物理块映射303中的每一条目针对LBA地址(例如,331)识别介质(例如,203)中的存储器块的物理地址。举例来说,介质(例如,203)中的存储器块的物理地址可包含裸片识别符333、块识别符335、页映射条目识别符337等。

裸片识别符333识别存储器子系统110的介质203中的特定集成电路裸片(例如,205或207)。

块识别符335识别使用裸片识别符333识别的集成电路裸片(例如,205或207)内的特定存储器块(例如,NAND快闪存储器)。

页映射条目识别符337识别页映射305中的条目。

页映射305可以具有多个条目。页映射305中的每一条目可包含识别存储器单元块(例如,NAND存储器单元)内的存储器单元页的页识别符351。举例来说,页识别符351可包含页的字线编号和NAND存储器单元块中的页的子块编号。此外,页的条目可包含页的编程模式353。举例来说,页可在SLC模式、MLC模式、TLC模式或QLC模式中编程。当配置于SLC模式中时,页中的每一存储器单元将存储一个数据位。当配置于MLC模式中时,页中的每一存储器单元将存储两个数据位。当配置于TLC模式中时,页中的每一存储器单元将存储三个数据位。当配置于QLC模式中时,页中的每一存储器单元将存储四个数据位。集成电路裸片(例如,205或207)中的不同页可具有用于数据编程的不同模式。

在图4中,块集合表307存储控制区(例如,211)的动态介质布局的方面的数据。

块集合表307可以具有多个条目。块集合表307中的每一条目识别其中存储区(例如,211)的数据的集成电路裸片(例如,205和207)的数目/计数371。对于用于区(例如,211)的集成电路裸片(例如,205和207)中的每一个,块集合表307的条目具有裸片识别符373、块识别符375、页映射条目识别符377等。

裸片识别符373识别存储器子系统110的介质203中的特定集成电路裸片(例如,205或207),可在所述裸片(例如,205或207)上存储区(例如,211)的后续数据。

块识别符375识别使用裸片识别符373识别的集成电路裸片(例如,205或207)内的存储器(例如,NAND快闪存储器)的特定块(例如,231或233),可在所述块(例如,231或233)中存储区(例如,211)的后续数据。

页映射条目识别符337识别页映射305中的条目,其识别可用以存储区(例如,211)的后续数据的页(例如,241或241)。

图5展示定时数据传递的方法。图5的方法可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,至少部分地通过图1、2或3的数据传递管理器113执行图5的方法。虽然以特定序列或次序展示,但是除非另有指定,否则可修改过程的次序。因此,应理解,所示出的实施例仅为实例,且所示出的过程可以不同次序执行,且一些过程可并行地执行。另外,可以在各种实施例中省略一或多个过程。因此,并非在每个实施例中需要所有的过程。其它过程流程是可能的。

在框401处,存储器子系统110从主机系统120接收写入命令的多个流。举例来说,所述多个流中的每一相应流被配置成在一个实施例中循序地在逻辑地址空间中写入数据;且在另一实施例中,所述多个流中的流被配置成在一个实施例中伪循序地或随机地在逻辑地址空间中写入数据。每一写入流包含经标注以将数据集一起作为群组进行写入、微调、重写的命令集合。在所述群组中,数据可循序、随机或伪循序地在逻辑空间中写入。优选地,群组中的数据写入到擦除块集合中,其中擦除块集合中的存储器单元存储所述流的数据,但不存储来自其它流的数据。可擦除所述擦除块集合以移除所述流的数据,而不擦除其它流的数据。

举例来说,准许写入流中的每一个在存储器子系统110的介质203上所分配的名称空间(例如,201)中的区(例如,211)中的LBA地址处循序地写入,但禁止在LBA地址空间中无序地写入数据。

在框403处,存储器子系统110的数据传递管理器113识别存储器子系统110中可用于并行写入数据的多个介质单元(例如,109A到109N)。

在框405处,数据传递管理器113从多个流中选择第一命令以供在可用于写入数据的多个介质单元中并行执行。

在框407处,数据传递管理器113响应于第一命令被选择以供在多个介质单元中并行执行而起始第一命令的第一数据从主机系统120到存储器子系统110的本地缓冲存储器119的传送。举例来说,推迟第一数据的传递直至多个介质单元可用于执行写入操作以存储所述第一数据。所述推迟传递缩短第一数据被缓冲的时间。响应于多个介质单元可用于执行写入操作,为第一数据分配本地缓冲存储器119中的缓冲空间以用于缓冲从主机系统120传送到存储器子系统110的第一数据。

在框409处,存储器子系统110通过将数据存储到多个存储器单元中来并行地执行第一命令。举例来说,一旦第一数据已从本地缓冲存储器119传递到多个介质单元,就可将为第一数据分配的缓冲空间从缓冲第一数据中释放出来。在一些例子中,可在多个介质单元完成第一数据的编程/写入之前释放缓冲空间。

举例来说,在调度第一命令以供执行时,可能正在存储器子系统110的介质203的存储器单元的子集中执行第二命令。因此,用于执行第二命令的存储器单元的子集不可用于第一命令。在为存储器子系统110的介质203的存储器单元的子集调度第一命令之后,数据传递管理器113起始待经由第一命令写入的数据从主机系统120到存储器子系统110的传递。第一命令的数据的及时传递减少了数据被缓冲于存储器子系统110的本地存储器119中的时间量,且因此减少本地存储器119的容量要求和被配置用于本地存储器119的电源失效保持电路141的容量要求。第一命令可在多个介质单元中并行地执行,和/或与第二命令在存储器子系统110的剩余介质单元中的执行进程并行地执行。

举例来说,存储器子系统110被配置成在本地缓冲存储器119中缓冲不超过预定数目的数据单元。所述预定数目对应于存储器子系统110中的能够彼此独立地操作以写入数据的介质单元109A到109N的数目。每一数据单元不超过待响应于单个写入命令写入于介质单元(例如,109A或109N)中的最大数据量。因此,本地存储器119的缓冲容量不限制主机系统120可发送到存储器子系统110的写入流的数目。数据被缓冲于本地存储器133中的时间量缩短可减少对于存储器子系统110的相应电源失效保持电路141的要求。

存储器子系统110可接受写入命令且将写入命令在本地存储器119中的一或多个队列143中排队。排队的写入命令的数目可显著超过可缓冲于本地存储器119中的数据单元的预定数目。因为存储器子系统110的性能受用以在执行并行写入命令的过程中并行地对数据进行提交、写入、存储或编程的介质单元109A到109N的带宽限制,所以本地存储器119的用于写入命令的数据的有限缓冲容量不影响存储器子系统110的性能。

当比可并行地执行的命令更多的命令经排队时,存储器子系统110可不按其到达存储器子系统110的次序选择性地执行某些命令。

所述减少的缓冲存储器要求允许本地存储器119被配置为控制器115的静态随机存取存储器(SRAM),且因此在缓冲待写入于存储器子系统110的介质203中的数据的过程中不需要DRAM。举例来说,静态随机存取存储器(SRAM)的用以缓冲写入命令的数据的容量可小于缓冲存储器子系统中排队的所有写入命令所需的容量。

可选地,每一相应介质单元(例如,109A或109N)具有被配置成将数据写入到相应介质单元(例如,109A或109N)中的写入命令的命令队列。命令队列可存储多个写入命令;且本地存储器119可被配置成限制其缓冲存储器用于写入命令的数据。举例来说,缓冲存储器可限于队列中的命令的小部分的容量。举例来说,缓冲存储器可限于响应于单个写入命令(或小于可针对相应介质单元排队的写入命令的总数目的预定数目的写入命令)可编程/写入/存储/提交到相应介质单元(例如,109A或109N)中的数据的大小。

任选地,响应于确定可在可用介质单元中并行地执行第一命令,动态地确定介质布局130的用于第一命令中使用的逻辑地址的部分。

举例来说,在识别可用于执行接下来的命令的多个存储器单元(例如,集成电路裸片)之后,数据传递管理器113可从块集合表307识别可用于存储接下来的命令的数据的物理地址。所述物理地址可用于更新针对接下来的命令中使用的LBA地址的逻辑到物理块映射303中的相应条目。

举例来说,当集成电路裸片(例如,205)可自由写入数据时,数据传递管理器113可确定可写入/编程到集成电路裸片(例如,205)中的存储器单元中的区的命令。根据块集合表307,数据传递管理器113和/或动态数据放置器153可定位区(例如,205)的条目,定位与集成电路裸片(例如,205)的识别符373相关联的块识别符375和页映射条目识别符377,并且使用裸片识别符373、块识别符375和页映射条目识别符377来针对区(例如,211)的命令中使用的LBA地址331更新逻辑到物理块映射303中的条目的相应字段。因此,对于LBA地址331,可以在没有介质存取冲突的情况下执行区(例如,211)的命令。

在介质单元(例如,109A到109N或205到207)中,(例如,NAND型的)存储器单元可组织成块(例如,231到233),其中每一块中的存储器单元将在原子操作中一起擦除。存储器单元块可划分成子块和页。存储器单元页是在原子操作中一起编程的存储器单元的最小单位。子块内和跨子块的给定字线的页通常不依次编程。块内的页编程次序可跨字线、子块和页跳跃,以优化跨字线和子块的信噪比(SNR)。因此,块内的页编程次序可能不规律,且具有复杂的样式。

归因于多遍次编程和不规律的页映射,原子编程粒度不固定且是可变的。当主机系统发布具有固定/恒定输入/输出(I/O)大小的写入命令时,主机I/O大小并不始终与介质的编程粒度匹配。失配可能增加对于控制器存储器及对于电源备份的要求,这可能导致成本增加。

在本文中所公开的至少一些实施例中,页映射可能仍不规律以适应跨子块内的字线和跨块中的子块的不同SNR比率。然而,页映射根据限制调度,使得固定主机I/O大小可与固定原子编程大小匹配。所述限制是基于特定类型的编程模式的转变的计数,如下文进一步论述。

图6示出待响应于编程模式的转变而在原子编程操作中编程的数据的大小。

多遍次编程技术可使用多个原子编程操作实施。原子编程操作中的每一个可从一个存储器单元编程模式转变到另一存储器单元编程模式。

举例来说,当多遍次编程技术应用于存储器单元的页集合以进行TLC编程时,可经由原子编程模式的若干转变实施多遍次TLC编程。举例来说,多遍次TLC编程可在尚未被编程以存储数据(例如,在擦除操作之后)的新鲜页的集合上起始。新的多遍次TLC编程可从新鲜页集合上无编程转变到存储器单元页的原子SLC编程以存储预定大小的一页数据。或者,新的多遍次TLC编程可从无编程转变到两页数据的原子MLC编程,其中每一页具有预定大小。随后,作为所述转变的结果,多遍次TLC编程可任选地从原子SLC编程转变到预定大小的一页数据的原子MLC编程。可选地,作为所述转变的结果,多遍次TLC编程可继续从原子SLC编程转变到两页数据的原子TLC编程,其中每一页具有预定大小。或者,作为所述转变的结果,多遍次TLC编程可从原子MLC编程转变到预定大小的一页数据的原子TLC编程。

类似地,当多遍次编程技术应用于存储器单元的页集合以进行QLC编程时,可经由原子编程模式的若干转变实施多遍次QLC编程。多遍次QLC编程可具有与多遍次TLC编程中一样的转变。此外,多遍次QLC编程可任选地从原子MLC编程转变到两页数据的原子QLC编程,每一页具有预定大小。或者,作为所述转变的结果,多遍次QLC编程可任选地从原子TLC编程转变到预定大小的一页数据的原子QLC编程。

针对图6中示出的转变选项的页计数可用于管理存储器子系统110中的编程模式转变,如下文结合图7进一步论述。举例来说,具有一页的原子编程大小的转变类型可与具有两页的原子编程大小的转变类型交错;且具有一页的原子编程大小的偶数数目个转变类型需要在允许具有两页的原子编程大小的一或多个后续转变之前依次发生。当不规律的页映射不遵循此转变样式时,固定主机输入/输出大小无法始终映射到下一原子编程粒度。

举例来说,“一页、两页等”的原子编程粒度序列不遵循在偶数数目个单页转变之后具有两页转变的样式。因此,使固定主机输入/输出大小(例如,一页或两页)映射到序列可能存在难度。举例来说,主机大小在一页处固定。在一页处的第一编程之后,直至另一主机输入/输出被接收且映射到同一裸片和块以进行两页的原子编程,才可处理一页的下一主机输入/输出。在另一实例中,主机大小在两页处固定。可使用一页的原子编程对两页的主机输入/输出的第一半部进行编程。然而,直至另一主机输入/输出被接收且映射到同一裸片和块以进行两页的原子编程,才可对两页的主机输入/输出的第二半部进行编程。等待下一输入/输出映射到同一裸片和块可能增加缓冲存储器使用和数据被缓冲于存储器中的生存期,尤其是在存在与原子粒度不匹配的多个未处理命令时。缓冲存储器使用及数据被缓冲的生存期增加可能增加对于控制器存储器和电源失效防护备份容量的要求。

然而,当使用“一页、一页、两页等”的原子编程粒度序列以具有两页转变之后偶数数目个单页转变的样式时,固定主机输入/输出大小可与序列中的原子编程粒度匹配。举例来说,当主机大小在两页处固定时。因此,可使用一页的第一原子编程对两页的主机输入/输出的第一半部进行编程;且可使用一页的第二原子编程对第二半部进行编程。可使用两页的后续编程对两页的下一主机输入/输出进行编程。

如果区/流大小为4(多平面)块,则归因于不规律的页映射,必须使用2平面与4平面编程的混合,而非始终使用4平面编程,以便与固定主机IO大小(实例4页)匹配。由于不始终使用4平面编程,而是使用2平面与4平面编程的混合,导致性能损失和功率消耗增加。

因此,有利的是,实施页映射序列,其中1)具有1页的原子编程大小的转变类型与具有2页的原子编程大小的转变类型交错;以及2)具有1页的原子编程大小的偶数数目个转变类型必须在具有2页的原子编程大小的转变序列发生之前依次发生。此样式可在页映射序列中重复任何次数。

图7展示用以管理编程模式转变以适应主机系统和存储器子系统之间的数据传递的恒定大小的方法。图7的方法可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,图5的方法至少部分由图1、2或3的数据传递管理器113和/或动态数据放置器153执行。虽然以特定序列或次序展示,但是除非另有指定,否则可修改过程的次序。因此,应理解,所示出的实施例仅为实例,且所示出的过程可以不同次序执行,且一些过程可并行地执行。另外,可以在各种实施例中省略一或多个过程。因此,并非在每个实施例中需要所有的过程。其它过程流程是可能的。

在框421处,数据传递管理器113和/或动态数据放置器153开始对存储器子系统(例如,110)内执行的原子编程模式的单页转变进行计数。每一单页转变实现预定大小的单页数据的原子编程。

在框423处,数据传递管理器113和/或动态数据放置器153确定已经对奇数还是偶数数目个转变进行计数。

举例来说,一位计数器可用于对原子编程模式的单页转变进行计数。一位计数器可初始设定为具有值零。当发生单页转变时,可将一添加(例如,经由逻辑AND运算)到一位计数器以更新其内容。

如果在框425处确定已经对原子编程模式的奇数数目个单页转变进行计数,则数据传递管理器113和/或动态数据放置器153在框427处阻止原子编程模式的两页转变。每一两页转变实现两页数据的原子编程,其中每一页具有预定大小。

如果在框425处确定已发生原子编程模式的偶数数目个单页转变,则数据传递管理器113和/或动态数据放置器153在框429处允许原子编程模式的一或多个两页转变。每一两页转变实现两页数据的原子编程,其中每一页具有预定大小。

举例来说,一位计数器具有值一,且可在时间上阻断任何两页转变,直至一位计数器具有值零。

在框431处,数据传递管理器113和/或动态数据放置器153根据如框427和429中确定的限制/许可选择编程模式的转变。

在框433处,数据传递管理器113和/或动态数据放置器153更新编程模式的转变的计数。

可针对块中的页的编程重复框423到433中的操作。

举例来说,可执行多遍次编程操作以存储数据。可经由存储器子系统110中的多个原子编程操作对页集合进行每一多遍次编程操作。每一多遍次编程操作可在三层级单元(TLC)模式或四层级单元(QLC)模式中存储至少一个存储器单元页。原子编程操作可从第一模式转变到第二模式,其中第一和第二模式是以下中的不同模式:无编程;编程以在每一存储器单元中存储一个位;编程以在每一存储器单元中存储两个位;编程以在每一存储器单元中存储三个位;以及编程以在每一存储器单元中存储四个位。

单页转变可以是从无编程转变到单层级单元(SLC)模式、从单层级单元(SLC)模式转变到多层级单元(MLC)模式、从多层级单元(MLC)模式转变到三层级单元(TLC)模式,或从三层级单元(TLC)模式转变到四层级单元(QLC)模式。

两页转变可以是从单层级单元(SLC)模式到三层级单元(TLC)模式、从多层级单元(MLC)模式到四层级单元(QLC)模式,或从无编程到多层级单元(MLC)模式。

存储器子系统110可从主机系统120接收写入命令的多个流,且执行多遍次编程数据以将数据存储在一或多个介质单元(例如,裸片205到207)中的多个平面中。存储器子系统110可基于确定是否允许原子编程模式的任何两页转变来选择原子编程模式的下一转变,且使由所述下一转变产生的原子编程模式的大小与来自主机系统的写入命令的大小匹配。

在一些实施方案中,处理装置118与存储器子系统110之间的通信信道包含计算机网络,例如局域网、无线局域网、无线个域网、蜂窝式通信网络、宽带高速始终连接无线通信连接(例如,当前或未来一代的移动网络链路);并且处理装置118和存储器子系统可被配置成使用与NVMe协议中的那些类似的数据存储管理和使用命令来彼此通信。

存储器子系统110通常可具有非易失性存储介质。非易失性存储介质的实例包含形成于集成电路中的存储器单元和涂覆在硬磁盘上的磁性材料。非易失性存储介质可在不消耗电力的情况下维持存储在其中的数据/信息。存储器单元可使用各种存储器/存储装置技术来实施,所述存储器/存储装置技术例如NAND逻辑门、NOR逻辑门、相变存储器(PCM)、磁性随机存取存储器(MRAM)、电阻式随机存取存储器、交叉点存储装置及存储器装置(例如,3D XPoint存储器)。交叉点存储器装置使用无晶体管存储器元件,所述无晶体管存储器元件中的每一个具有一起堆叠成列的存储器单元和选择器。存储器元件列经由两个垂直线材层连接,其中一个层处于存储器元件列上方,且另一层处于存储器元件列下方。可个别地在两个层中的每一个上的一根线材的交叉点处选择每一存储器元件。交叉点存储器装置是快速且非易失性的,且可用作统一存储器池以供处理和存储。

存储器子系统(例如,110)的控制器(例如,115)可运行固件以响应于来自处理装置118的通信而执行操作。一般来说,固件是一种提供工程化计算装置的控制、监测和数据操纵的计算机程序类型。

涉及控制器115的操作的一些实施例可使用由控制器115执行的计算机指令(例如控制器115的固件)来实施。在一些情况下,硬件电路可用于实施功能中的至少一些。固件可初始存储在非易失性存储介质或另一非易失性装置中,并且加载到易失性DRAM和/或处理器内高速缓存存储器中以供由控制器115执行。

非暂时性计算机存储介质可用于存储存储器子系统(例如,110)的固件的指令。当指令由控制器115和/或处理装置117执行时,所述指令致使控制器115和/或处理装置117执行上文所论述的方法。

图8示出计算机系统500的实例机器,所述实例机器内可执行用于致使所述机器执行本文中所论述的方法中的任何一或多种的指令集。在一些实施例中,计算机系统500可对应于主机系统(例如,图1的主机系统120),所述主机系统包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110)或可用以执行数据传递管理器113的操作(例如,执行指令以执行对应于参考图1-7描述的数据传递管理器113的操作)。在替代实施例中,机器可连接(例如,联网)到LAN、内联网、外联网和/或因特网中的其它机器。机器可作为对等(或分布式)网络环境中的对等机器或作为云计算基础架构或环境中的服务器或客户端机器在客户端-服务器网络环境中的服务器或客户端机器的容量中操作。

所述机器可为个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络器具、服务器、网络路由器、交换机或桥接器,或能够执行(循序或以其它方式)指定待由所述机器采取的动作的指令集的任何机器。另外,尽管说明单个机器,但还应认为术语“机器”包含机器的任何集合,所述机器个别地或联合地执行指令的集合(或多个集合)以执行本文中所论述的方法中的任何一或多种。

实例计算机系统500包含处理装置502、主存储器504(例如,只读存储器(ROM)、快闪存储器、例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)等动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)等)以及数据存储系统518,它们经由总线530(其可包含多个总线)彼此通信。

处理装置502表示一或多个通用处理装置,例如微处理器、中央处理单元等。更确切地说,处理装置可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器,或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置502也可为一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理装置502被配置成执行用于执行本文中所论述的操作和步骤的指令526。计算机系统500可进一步包含网络接口装置508以经由网络520通信。

数据存储系统518可以包含机器可读存储介质524(也称为计算机可读介质),其上存储有一或多个指令集526或体现本文中所描述的任何一或多种方法或功能的软件。指令526还可在其由计算机系统500执行期间完全或至少部分地驻留在主存储器504内和/或处理装置502内,主存储器504和处理装置502也构成机器可读存储介质。机器可读存储介质524、数据存储系统518和/或主存储器504可对应于图1的存储器子系统110。

在一个实施例中,指令526包含实施对应于数据传递管理器113(例如,参考图1-8描述的数据传递管理器113)的功能性的指令。虽然机器可读存储介质524在实例实施例中展示为单个介质,但术语“机器可读存储介质”应被认为包含存储所述一或多个指令集的单个介质或多个介质。术语“机器可读存储介质”还应被认为包含能够存储或编码供机器执行的指令集且致使机器执行本公开的方法中的任何一种或多种的任何介质。术语“机器可读存储介质”应相应地被理解为包含(但不限于)固态存储器、光学介质和磁性介质。

已依据计算机存储器内的数据位的操作的算法和符号表示呈现了先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用以将其工作的主旨最有效地传达给所属领域的其他技术人员的方式。算法在这里并且通常被认为是引起所要结果的操作的自洽序列。操作是要求对物理量进行物理操纵的操作。这些量通常但未必呈能够被存储、组合、比较和以其它方式操纵的电或磁信号的形式。主要出于常见使用的原因,有时将此些信号称为位、值、要素、符号、字符、项、数字等已证实是方便的。

然而,应牢记,所有这些和类似术语应与适当物理量相关联,且仅是应用于这些量的方便的标签。本公开可涉及将计算机系统的寄存器和存储器内的表示为物理(电子)量的数据操纵和变换为计算机系统存储器或寄存器或其它这类信息存储系统内的类似地表示为物理量的其它数据的计算机系统或类似电子计算装置的动作和过程。

本发明还涉及用于执行本文中的操作的设备。此设备可以出于既定目的而专门构造,或其可包含由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此计算机程序可存储在计算机可读存储介质中,例如(但不限于)任何类型的盘(包含软盘、光盘、CD-ROM和磁光盘)、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡,或适合于存储电子指令的任何类型的介质,它们各自耦合到计算机系统总线。

本文中呈现的算法和显示并不与任何特定计算机或其它设备在本质上相关。各种通用系统可根据本文中的教示与程序一起使用,或可证明构造更专用的设备来执行所述方法是方便的。将如下文描述中所阐述的那样来呈现多种这些系统的结构。另外,不参考任何特定编程语言来描述本公开。应了解,可使用多种编程语言来实施本文中所描述的本公开的教示。

本公开可以提供为计算机程序产品或软件,其可以包含在其上存储有指令的机器可读介质,所述指令可以用于编程计算机系统(或其它电子装置)以执行根据本公开的过程。机器可读介质包含用于以机器(例如,计算机)可读的形式存储信息的任何机制。在一些实施例中,机器可读(例如,计算机可读)介质包含机器(例如,计算机)可读存储介质,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储介质、光学存储介质、快闪存储器装置等。

在本说明书中,各种功能和操作被描述为由计算机指令执行或由计算机指令引起以简化描述。然而,所属领域的技术人员将认识到,此类表达的意图是所述功能源自由一或多个控制器或处理器(例如,微处理器)执行计算机指令。替代地或组合地,所述功能和操作可使用具有或不具有软件指令的专用电路系统实施,例如使用专用集成电路(ASIC)或现场可编程门阵列(FPGA)来实施。可使用无软件指令的硬连线电路系统或结合软件指令实施实施例。因此,所述技术既不限于硬件电路系统和软件的任何特定组合,也不限于由数据处理系统执行的指令的任何特定来源。

在前述说明书中,已参考本公开的特定实例实施例描述了本公开的实施例。将显而易见的是,可以在不脱离如所附权利要求书中阐述的本公开的实施例的更广精神和范围的情况下对本公开作出各种修改。因此,应在说明性意义上而非限制性意义上看待说明书和图式。

相关技术
  • 管理编程模式转变以适应主机系统和存储器子系统之间的数据传递的恒定大小
  • 主机系统与存储器子系统之间的输入/输出大小控制
技术分类

06120113674321