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

基于存储器子系统中的媒体单元的可用性的预测性数据传输的制作方法

2022-02-20 05:12:09 来源:中国专利 TAG:

基于存储器子系统中的媒体单元的可用性的预测性数据传输
1.相关申请案
2.本技术案要求2019年5月31日提交的且名称为“基于存储器子系统中的媒体单元的可用性的预测性数据传输(predictive data transfer based on availability of media units in memory sub-systems)”的美国临时专利申请案序列号62/855,391以及2020年5月4日提交的且名称为“基于存储器子系统中的媒体单元的可用性的预测性数据传输(predictive data transfer based on availability of media units in memory sub-systems)”的美国专利申请案序列号16/866,243的优先权,所述申请案的整个公开内容特此以引用的方式并入本文中。
技术领域
3.本文中所公开的至少一些实施例大体上涉及存储器系统,且更确切地说,但不限于主机系统与存储器子系统之间的预测性定时数据传输。


背景技术:

4.存储器子系统可包含存储数据的一或多个存储器装置。存储器装置可为例如非易失性存储器装置和易失性存储器装置。一般来说,主机系统可利用存储器子系统以在存储器装置处存储数据且从存储器装置检索数据。
附图说明
5.在附图的图中借助于实例而非限制说明实施例,在附图中,相似的参考标号指示类似的元件。
6.图1说明根据本公开的一些实施例的包含存储器子系统的实例计算系统。
7.图2展示具有可用性预测器的数据传输管理器,所述可用性预测器配置成控制主机系统与存储器子系统之间的数据传输的定时。
8.图3展示具有预测性定时数据传输的存储器子系统的实例。
9.图4说明配置成支持主机系统与存储器子系统之间的数据传输的数据结构的实例。
10.图5展示预测性定时数据传输的方法。
11.图6是本公开的实施例可在其中进行操作的实例计算机系统的框图。
具体实施方式
12.本公开的至少一些方面涉及主机系统与存储器子系统之间的数据传输,其中基于媒体单元的可用性预测性地对数据传输进行定时/调度,以减少或消除存储器子系统中的闲置时间,减少存储器子系统中的缓冲存储器需求,并减少存储器子系统中对电源失效保持电路的需求。存储器子系统可为存储装置、存储器模块或存储装置与存储器模块的混合。下文结合图1描述存储装置和存储器模块的实例。一般来说,主机系统可利用包含一或多个
组件(例如,存储数据的存储器装置)的存储器子系统。主机系统可提供将存储在存储器子系统处的数据,且可请求将从存储器子系统检索的数据。
13.传统上,基于高速缓存的架构用于存储器子系统中以将主机系统与存储器子系统隔离。当在存储器子系统中从主机系统接收写入命令时,将数据从主机系统传输到存储器子系统中的高速缓存器。当写入工作负载超出存储器子系统的媒体的带宽以将数据提交、存储或编程到媒体中时,主机系统中的输入/输出活动由于在高速缓存缓冲器中缺乏可用空间而发生节流。虽然此类架构可使用高速缓存数据提供低延时写入,但其在写入工作负荷超出存储器子系统的媒体的带宽时具有缺点。举例来说,可发出到存储器子系统的未完成命令的数目受存储器子系统中的高速缓存缓冲存储器的大小限制。高速缓存缓冲存储器的增加的大小会增加对电源失效备份电路系统的能量存储容量的要求。此外,当两个或更多个命令映射到一次仅可执行一个命令的同一媒体单元时,发生命令冲突。冲突会引起较高缓冲存储器消耗和存储在缓冲存储器中的数据的较长生存期。就高速缓存缓冲存储器的大小要求增加和电源失效保持电路的能量存储容量增加而言,这可使得系统成本增加。此外,第一写入流可通过在高速缓存缓冲存储器中缓冲数据且不为第二写入流保留缓冲空间来阻挡第二写入液流,使得即使当存在可用于对第二写入流执行写入命令的媒体单元时,由于在高速缓存缓冲存储器中缺乏缓冲空间而阻挡第二写入流。
14.本公开的至少一些方面通过主机系统与存储器子系统之间的定时数据传输来解决以上和其它缺陷。排队机构经配置成允许在存储器子系统中接受命令而不需将数据记录于存储器子系统中。可将排队命令映射到媒体单元,且将其保持在每个媒体单元的待决排队中。当媒体单元变得可用于执行写入命令时,为写入命令的数据分配缓冲空间;且根据媒体单元接受数据的可用性,推迟将用于写入命令的数据从主机系统传输到存储器子系统的高速缓存缓冲存储器以用于记录到媒体单元中。用于媒体单元的队列中的命令可不按照从主机系统接收命令的次序执行。数据及时经由高速缓存缓冲存储器传输,以便提交、写入或编程到媒体单元中。因此,可进行非阻挡命令处理。此布置减少高速缓存缓冲存储器的大小要求和高速缓存缓冲存储器中的数据的生存期。举例来说,可将高速缓存缓冲存储器的大小减少到与可用于并行地支持写入命令的执行的媒体单元的数目成比例的大小。可将缓冲器生存期减少到与主机系统与存储器子系统之间的数据传输的数目成比例的时间段,以用于并发执行写入命令。高速缓存缓冲存储器要求和缓冲器生存期的显著减少会减少电源失效保持要求。举例来说,存储器子系统的控制器的静态随机存取存储器(sram)存储器可用作高速缓存缓冲存储器。可消除动态随机存取存储器(dram)高速缓存。此技术可通过将更多的数据保存在由主机控制且使用主机系统中的电路为防电源失效的存储器中,来消除计算机系统中的易失性存储器的防电源失效的双倍成本。当使用此技术时,增加的主机写入流和/或冲突的数目并不增加对存储器子系统中的高速缓存缓冲存储器和电源失效保持电路的要求。此外,此技术可具有非阻挡和乱序命令处理的益处。
15.此外,可用性预测模块可配置成预测媒体单元的可用性的定时以执行写入命令。基于媒体单元可用性的所预测的定时,存储器子系统可提前且在媒体单元传信其对执行下一写入命令的可用性或准备就绪之前发起来自主机系统的数据传输。因此,当媒体单元准备好执行下一命令时,来自主机系统的数据在存储器子系统的高速缓存缓冲存储器中准备好用于编程到媒体单元中。相反,如果响应于媒体单元传信其对执行写入命令的可用性/准
备就绪而发起将数据从主机系统传输到存储器子系统以用于写入到媒体单元中,那么媒体单元可具有闲置时间段(例如,几微秒),等待将数据从主机系统传输到存储器子系统中的高速缓存缓冲存储器中。闲置时间在媒体单元的利用中是低效的。媒体单元可用性的所预测的定时可在媒体单元指示其执行命令的准备就绪之前用于发起数据传输,使得存储器子系统可减少、最小化或消除当媒体单元准备好执行下一写入命令时与当来自主机系统的数据在高速缓存缓冲存储器中准备好用于媒体单元以执行下一写入命令时之间的定时差。当媒体单元准备好时,可在媒体单元上发起编程操作而媒体单元的无任何延迟或闲置时间。可使用对媒体单元的编程时间、擦除时间以及编程和擦除暂停时间进行建模的定时器来预测媒体单元的可用性的定时。定时模型可使用输入参数(例如管芯的编程时间参数、编程序列步骤的定时和由于介入读取而引起的潜在编程/擦除暂停步骤)来预测当媒体单元可用于执行下一命令时引起实例的预期时间。
16.图1说明根据本公开的一些实施例的包含存储器子系统110的实例计算系统100。存储器子系统110可包含媒体,例如一或多个易失性存储器装置(例如,存储器装置102)、一或多个非易失性存储器装置(例如,存储器装置104)或此类的组合。
17.存储器子系统110可为存储装置、存储器模块,或存储装置与存储器模块的混合。存储装置的实例包含固态驱动器(ssd)、快闪驱动器、通用串行总线(usb)快闪驱动器、嵌入式多媒体控制器(emmc)驱动器、通用快闪存储(ufs)驱动器、安全数字(sd)卡以及硬盘驱动器(hdd)。存储器模块的实例包含双列直插式存储器模块(dimm)、小型dimm(so-dimm)和各种类型的非易失性双列直插式存储器模块(nvdimm)。
18.计算系统100可以是计算装置,例如台式计算机、膝上型计算机、网络服务器、移动装置、运载工具(例如,飞机、无人机、火车、汽车或其它运输工具)、支持物联网(iot)的装置、嵌入式计算机(例如,运载工具、工业设备或联网商业装置中包含的嵌入式计算机)或包含存储器和处理装置的此类计算装置。
19.计算系统100可包含耦合到一或多个存储器子系统110的主机系统120。图1说明耦合到一个存储器子系统110的主机系统120的一个实例。如本文中所使用,“耦合到”或“与
……
耦合”通常是指组件之间的连接,其可以是间接通信连接或直接通信连接(例如,没有中间组件),无论是有线还是无线的,包含例如电连接、光学连接、磁连接等的连接。
20.主机系统120可包含处理器芯片组(例如处理装置118)和由处理器芯片组执行的软件堆叠。处理器芯片组可包含一或多个核心、一或多个高速缓存器、存储器控制器(例如,控制器116)(例如,nvdimm控制器)和存储协议控制器(例如,pcie控制器、sata控制器)。主机系统120使用存储器子系统110,例如以将数据写入存储器子系统110和从存储器子系统110读取数据。
21.主机系统120可经由物理主机接口耦合到存储器子系统110。物理主机接口的实例包含但不限于串行高级技术附件(sata)接口、外围组件互连高速(pcie)接口、通用串行总线(usb)接口、光纤通道、串行附接scsi(sas)、双数据速率(ddr)存储器总线、小型计算机系统接口(scsi)、双列直插式存储器模块(dimm)接口(例如,支持双数据速率(ddr)的dimm套接接口)、开放nand快闪接口(onfi)、双数据速率(ddr)、低功率双数据速率(lpddr)或任何其它接口。物理主机接口可用于在主机系统120与存储器子系统110之间传输数据。当存储器子系统110通过pcie接口与主机系统120耦合时,主机系统120可进一步使用nvm高速
(nvme)接口来存取组件(例如,存储器装置104)。物理主机接口可提供用于在存储器子系统110与主机系统120之间传递控制、地址、数据和其它信号的接口。图1说明存储器子系统110作为实例。一般来说,主机系统120可经由同一通信连接、多个单独通信连接和/或通信连接的组合存取多个存储器子系统。
22.主机系统120的处理装置118可为例如微处理器、中央处理单元(cpu)、处理器的处理核心、执行单元等。在一些情况下,控制器116可称为存储器控制器、存储器管理单元和/或起始器。在一个实例中,控制器116控制通过耦合在主机系统120与存储器子系统110之间的总线进行的通信。一般来说,控制器116可将对存储器装置102、104的所需存取的命令或请求发送到存储器子系统110。控制器116可进一步包含用于与存储器子系统110通信的接口电路系统。接口电路系统可将从存储器子系统110接收到的响应转换成用于主机系统120的信息。
23.主机系统120的控制器116可与存储器子系统110的控制器115进行通信以进行操作,所述操作例如在存储器装置102、104处读取数据、写入数据或擦除数据以及其它此类操作。在一些情况下,控制器116集成在处理装置118的同一封装内。在其它情况下,控制器116与处理装置118的封装分离。控制器116和/或处理装置118可包含硬件,例如一或多个集成电路(ic)和/或离散组件、缓冲存储器、高速缓存存储器或其组合。控制器116和/或处理装置118可为微控制器、专用逻辑电路系统(例如,现场可编程门阵列(fpga)、专用集成电路(asic)等)或另一合适的处理器。
24.存储器装置102、104可包含不同类型的非易失性存储器组件和/或易失性存储器组件的任何组合。易失性存储器装置(例如,存储器装置102)可为但不限于随机存取存储器(ram),例如动态随机存取存储器(dram)和同步动态随机存取存储器(sdram)。
25.非易失性存储器组件的一些实例包含与非(nand)类型快闪存储器和就地写入存储器,例如三维交叉点(“3d交叉点”)存储器。非易失性存储器的交叉点阵列可结合可堆叠交叉网格化数据存取阵列基于体电阻的改变来进行位存储。另外,与许多基于快闪的存储器相比,交叉点非易失性存储器可执行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。nand型快闪存储器包含例如二维nand(2d nand)和三维nand(3d nand)。
26.存储器装置104中的每一个可包含一或多个存储器单元阵列。一种类型的存储器单元,例如单层级单元(slc)可每单元存储一个位。其它类型的存储器单元,例如多层级单元(mlc)、三层级单元(tlc)、四层级单元(qlc)和五层级单元(plc)可每单元存储多个位。在一些实施例中,存储器装置104中的每一个可包含一或多个存储器单元阵列,例如slc、mlc、tlc、qlc或此类的任何组合。在一些实施例中,特定存储器装置可包含存储器单元的slc部分以及mlc部分、tlc部分或qlc部分。存储器装置104的存储器单元可分组为页,所述页可指用于存储数据的存储器装置的逻辑单元。对于一些类型的存储器(例如,nand),页可被分组以形成块。
27.虽然描述了非易失性存储器装置,例如3d交叉点型和nand型存储器(例如,2d nand、3d nand),但存储器装置104可基于任何其它类型的非易失性存储器,例如只读存储器(rom)、相变存储器(pcm)、自选存储器、其它基于硫属化物的存储器、铁电晶体管随机存取存储器(fetram)、铁电随机存取存储器(feram)、磁随机存取存储器(mram)、自旋转移力
矩(stt)-mram、导电桥接ram(cbram)、电阻性随机存取存储器(rram)、基于氧化物的rram(oxram)、或非(nor)快闪存储器和电可擦除可编程只读存储器(eeprom)。
28.存储器子系统控制器115(或为简单起见,控制器115)可与存储器装置104通信以进行操作,例如在存储器装置104处读取数据、写入数据或擦除数据和其它此类操作(例如,响应于控制器116在命令总线上调度的命令)。控制器115可包含硬件,例如一或多个集成电路(ic)和/或离散组件、缓冲存储器或其组合。硬件可包含具有专用(即,硬译码)逻辑的数字电路系统以进行本文所描述的操作。控制器115可为微控制器、专用逻辑电路(例如,现场可编程门阵列(fpga)、专用集成电路(asic)等)或另一合适的处理器。
29.控制器115可包含配置成执行存储在本地存储器119中的指令的处理装置117(处理器)。在所说明的实例中,控制器115的本地存储器119包含嵌入式存储器,其配置成存储用于进行控制存储器子系统110的操作的各种过程、操作、逻辑流和例程的指令,包含处置存储器子系统110与主机系统120之间的通信。
30.在一些实施例中,本地存储器119可包含存储存储器指针、所提取的数据等的存储器寄存器。本地存储器119还可包含用于存储微码的只读存储器(rom)。虽然图1中的实例存储器子系统110已说明为包含控制器115,但在本公开的另一实施例中,存储器子系统110不包含控制器115,且可替代地依赖于外部控制(例如,由外部主机或由与存储器子系统分离的处理器或控制器提供)。
31.一般来说,控制器115可从主机系统120接收命令或操作,且可将所述命令或操作转换成指令或适当命令以实现对存储器装置104的所需存取。控制器115可负责其它操作,例如耗损均衡操作、垃圾收集操作、错误检测和错误校正码(ecc)操作、加密操作、高速缓存操作,以及与存储器装置104相关联的逻辑地址(例如,逻辑块地址(lba)、名字空间)与物理地址(例如,物理块地址)之间的地址转换。控制器115可进一步包含主机接口电路系统,以通过物理主机接口与主机系统120通信。主机接口电路系统可将从主机系统接收的命令转换成命令指令以存取存储器装置104,以及将与存储器装置104相关联的响应转换成用于主机系统120的信息。
32.存储器子系统110还可包含未说明的额外电路系统或组件。在一些实施例中,存储器子系统110可以包含高速缓存器或缓冲器(例如,dram)和地址电路系统(例如,行解码器和列解码器),其可从控制器115接收地址且对地址进行解码以存取存储器装置104。
33.在一些实施例中,存储器装置104包含本地媒体控制器105,其结合存储器子系统控制器115操作以对存储器装置104的一或多个存储器单元执行操作。外部控制器(例如,存储器子系统控制器115)可在外部管理存储器装置104(例如,对存储器装置104进行媒体管理操作)。在一些实施例中,存储器装置104是受管理存储器装置,其为与在同一存储器装置封装内进行媒体管理的本地控制器(例如,本地控制器105)组合的原始存储器装置。受管理存储器装置的实例是受管理nand(mnand)装置。
34.计算系统100包含存储器子系统110中的数据传输管理器113,其在对应于将数据从主机系统传输到存储器子系统110的持续时间的时间段中,推迟用于写入命令的数据传输,直到预测一或多个媒体单元/存储器装置可用于将数据提交、存储、写入或编程到媒体单元/存储器装置中为止。在一些实施例中,存储器子系统110中的控制器115包含传输管理器113的至少一部分。在其它实施例中,或以组合方式,主机系统120中的控制器116和/或处
理装置118包含数据传输管理器113的至少一部分。举例来说,控制器115、控制器116和/或处理装置118可包含实施数据传输管理器113的逻辑电路系统。举例来说,控制器115或主机系统120的处理装置118(处理器)可配置成执行存储在存储器中的指令以进行本文中所描述的数据传输管理器113的操作。在一些实施例中,数据传输管理器113实施于设置在存储器子系统110中的集成电路芯片中。在其它实施例中,数据传输管理器113是主机系统120的操作系统的一部分、装置驱动器或应用程序。
35.数据传输管理器113可调度从主机系统120到存储器子系统110的数据传输以减少在将数据定向、存储、写入或编程到媒体单元/存储器装置102至104中之前在存储器子系统110中缓冲的数据的量和时间。此外,数据传输管理器113包含可用性预测器112,其预测媒体单元102到104用于执行下一写入命令的可用性的定时。举例来说,当预测媒体单元(例如,102或104)在大体上等于将写入命令的数据从主机系统120传输到本地存储器119所需时间的时间段中可用于执行写入命令(例如,不忙于其它操作)时,数据传输管理器113发起将写入命令的数据从主机系统120传输到存储器子系统110。当预测媒体单元(例如,102或104)忙于一或多个命令的操作持续比将写入命令的数据从主机系统120传输本地存储器119所需的时间长的时间段时,数据传输管理器113推迟将排队写入命令的数据从主机系统120传输到存储器子系统110以用于媒体单元(例如,102或104)。一般来说,数据传输管理器113配置成发起将数据从主机系统120传输到存储器子系统110以用于媒体单元102到104的子集,预测所述子集在用于传输待在媒体单元102到104的子集中执行的写入命令的数据的时间段中可用于写入操作;且数据传输管理器113配置成将用于媒体单元102到104忙于其它操作的剩余子集的另外数据的传输推迟比用于对应数据的传输时间长的时间段。由于写入命令的数据及时从主机系统120提取以用于执行写入命令并且根据可用性的所预测的定时进行调度,因此数据传输管理器113可减少和/或最小化正在存储器子系统110中缓冲的数据的量和时间,且减少或消除媒体单元102到104的闲置时间。因此,根据媒体单元/存储器装置102到104的带宽以及媒体单元102到104的所预测的可用性对数据传输进行定时和调度以写入、存储、提交或编程用于存储的数据。下文描述关于数据传输管理器113的操作的其它细节。
36.图2展示具有可用性预测器112的数据传输管理器113,所述可用性预测器112配置成控制主机系统120与存储器子系统110之间的数据传输的定时。举例来说,图2的数据传输管理器113可在图1的计算机系统100中实施。
37.在图2中,主机系统120具有存储将写入到存储器子系统110的媒体203中的数据的易失性存储器133。
38.主机系统120具有电源失效保持电路131,其可为易失性存储器133和/或主机系统120的其它组件(例如,图1中所说明的处理装置118)提供足够电力,使得在电源失效的事件中,可确保易失性存储器133中的数据135。举例来说,在电源失效事件期间,电源失效保持电路131可在长到足以允许易失性存储器133中的数据存储到存储器子系统110的非易失性媒体203和/或另一存储器装置中的时间段内为易失性存储器133供电。
39.任选地,主机系统120可在替代易失性存储器133的非易失性存储器中高速缓存数据135。因此,存储在非易失性存储器中的数据135是防电源失效的;且可消除用于易失性存储器133的电源失效保持电路131。然而,使用非易失性存储器替代易失性存储器133可降低
数据存取性能和/或增加主机系统120的成本。在一些情况下,易失性存储器133与非易失性存储器的组合可用于主机系统120中(例如,以确保电源失效事件中的数据和/或改进数据存取性能)。
40.在图2中,存储器子系统110的数据传输管理器113可为从主机系统120的控制器116接收的命令维持至少一个命令队列143。队列143中的命令可存储在存储器子系统110的控制器(例如,图1中所说明的115)的本地存储器119中。可将来自主机系统120的写入命令接受到队列143中,而无需将数据写入到媒体203中。命令的排队允许在存储器子系统110中乱序执行命令,以在一些情况下对性能进行优化。
41.在图2中,本地存储器119具有可用于在电源失效事件期间保护本地存储器119中的内容(例如,146和143)的电源失效保持电路141。在电源失效事件期间,电源失效保持电路141可在长到足以允许内容存储到易失性存储器(例如,媒体203)中的时间段内为本地存储器119供电。
42.任选地,非易失性存储器可使用本地存储器119以消除对电源失效保持电路141的需求,或使用非易失性存储器的组合以降低对电源失效保持电路141的需求来实施。
43.在图2中,数据传输管理器113配置成定时/调度主机系统120与存储器子系统110之间的数据传输,且因此在命令队列143中存在待决命令时减少或消除媒体单元109a到109n(例如,图1中所说明的存储器装置102和/或104)中的闲置时间,且降低对本地存储器119的大小要求和/或对电源失效保持电路141的容量要求。
44.举例来说,数据传输管理器113不自动接受和/或传输在命令队列143中排队的所有写入命令的数据。为了减少在本地存储器119中缓冲的数据145的量,数据传输管理器113推迟传输写入命令的数据且当预测媒体单元(例如,109a或109n)中的一个准备好执行写入命令时,发起所述传输。
45.数据传输管理器113包含可用性预测器112,其判定媒体单元109a到109n完成其当前操作且准备好执行用于命令队列143中的下一命令的操作时的时间实例的持续时间。数据传输管理器113使用所预测的持续时间来用于调度命令队列143中的命令的数据的传输以减少媒体单元109a到109n的闲置时间,且减少在本地存储器119中缓冲的数据145的时间和间隔(among)。
46.可预测媒体单元109a到109n具有可分别用于媒体单元109a到109n中的下一命令的执行的相应持续时间。持续时间可被称为媒体单元109a到109n的到可用时的持续时间。
47.任选地,当最短到可用时的持续时间长于针对经调度以在具有最短到可用时的持续时间的相应媒体单元(例如,109a)中执行的命令,将数据从主机系统120提取到本地存储器119的时间时,数据传输管理器113可推迟对具有最短到可用时的持续时间的相应媒体单元(例如,109a)的数据传输。当最短到可用时的持续时间等于针对经调度以在具有最短到可用时的持续时间的相应媒体单元(例如,109a)中执行的命令,将数据从主机系统120提取到本地存储器119的时间时,数据传输管理器113可开始对具有最短到可用时的持续时间的相应媒体单元(例如,109a)的数据传输。
48.任选地,当第二最短到可用时的持续时间长于针对经调度以在具有两个最短到可用时的持续时间的媒体单元中执行的两个写入命令,将数据从主机系统120提取到本地存储器119的时间时,数据传输管理器113可推迟对具有两个最短到可用时的持续时间的两个
媒体单元的数据传输。当第二最短到可用时的持续时间等于针对经调度以在具有两个最短到可用时的持续时间的媒体单元中执行的两个命令命令,将数据从主机系统120提取到本地存储器119的时间时,数据传输管理器113可开始对具有两个最短到可用时的持续时间的两个媒体单元的数据传输。
49.任选地,当媒体单元(例如,109n)的到可用时的持续时间长于针对经调度以在具有比媒体单元(例如,109n)的到可用时的持续时间短的到可用时的持续时间的媒体单元中执行的写入命令,将数据从主机系统120提取到本地存储器119的时间时,数据传输管理器113可推迟对具有比媒体单元(例如,109n)的到可用时的持续时间短的到可用时的持续时间的两个媒体单元的数据传输。当媒体单元(例如,109n)的到可用时的持续时间变得等于针对经调度以在具有比媒体单元(例如,109n)的到可用时的持续时间短的到可用时的持续时间的媒体单元中执行的写入命令,将数据从主机系统120提取到本地存储器119的时间时,数据传输管理器113可开始对具有比媒体单元(例如,109n)的到可用时的持续时间短的到可用时的持续时间的两个媒体单元的数据传输。
50.任选地,当最长到可用时的持续时间长于针对分别经调度以在媒体单元109a到109n中执行的写入命令,将数据从主机系统120提取到本地存储器119的时间时,数据传输管理器113可推迟分别为媒体单元109a到109n调度的写入命令的数据的传输。当最长到可用时的持续时间等于针对分别经调度以在媒体单元109a到109n中执行的写入命令,将数据从主机系统120提取到本地存储器119的时间时,数据传输管理器113可开始分别为媒体单元109a到109n调度的写入命令的数据的传输。
51.任选地,对于媒体单元109a到109n中的每一个,本地存储器119可缓冲器一些写入命令的数据而非其它写入命令的数据。在一些实施方案中,本地存储器119配置成缓冲不超过预定数目的命令(例如,每媒体单元一个命令、或两个命令或另一数目个命令)的数据。然而,命令队列143可为媒体单元109a到109n中的每一个缓冲的写入命令比本地存储器119可为相应媒体单元(例如,109a或109n)缓冲的写入命令的数据更多(例如,以启用乱序命令执行)。
52.当命令与其数据之间的大小比率较大时,通过减少对命令的数据的缓冲来缓冲命令的技术可为特别有利的。
53.任选地,数据传输管理器113可为媒体单元109a到109n中的每一个配置队列(例如,143)。替代地,数据传输管理器113可为媒体单元109a到109n配置组合的命令队列(例如,143),且在媒体单元109a到109n变得可用于执行写入命令时,将写入命令动态分配到媒体单元109a到109n。举例来说,当预测媒体单元(例如,109a或109n)可用于执行写入命令时,写入命令的数据调度为基于媒体单元(例如,109a或109n)的到可用时的持续时间提取;且可动态产生用于映射写入命令中标识的逻辑地址的媒体布局的一部分以将逻辑地址映射到媒体单元(例如,109a或109n)中的存储器位置。因此,一旦媒体单元(例如,109a或109n)准备好执行下一命令,就可在媒体单元(例如,109a或109n)中执行写入命令。
54.图3展示具有预测性定时数据传输的存储器子系统的实例。举例来说,图3的存储器子系统可使用图2的数据传输管理器113在图1的存储器子系统110中实施。然而,图1和图2的技术不限于图3中所说明的存储器子系统的实施方案。举例来说,所述技术可实施平面块装置、支持名字空间的装置,或支持分区名字空间的装置(例如,图3中所说明的存储器子
系统)。因此,本文中呈现的公开内容不限于图3的实例。
55.在图3中,名字空间201配置在存储器子系统110的媒体存储容量上。名字空间201提供逻辑块寻址空间,所述逻辑块寻址空间可由主机系统120使用以指定用于读取或写入操作的存储器位置。名字空间201可分配在存储器子系统110的媒体存储容量的一部分或存储器子系统110的整个媒体存储容量上。在一些情况下,可在存储器子系统110的媒体存储容量的单独、非重叠部分上分配多个名字空间。
56.在图3中,名字空间201配置有多个区211、213、

、219。名字空间中的每一区(例如,211)允许对区(例如,211)中的本地块寻址(lba)地址进行随机读取存取,并且允许对区(例如,211)中的lba地址进行顺序写入存取,但不允许对区(211)中的随机lba地址进行随机写入存取。因此,将数据写入到区(例如,211)中以预定的顺序次序在名字空间201的lba地址空间中进行。
57.当配置名字空间201中的区(例如,211)时,(例如,为简单起见)可为所述区(例如,211)预定媒体布局。区(例如,211)中的lba地址可预映射到存储器子系统110的媒体203中。然而,如上文所论述,此预定媒体布局可在存在多个并行写入流时引起媒体存取冲突。将从区(例如,211)中的lba地址到媒体203中的存储器位置的映射随机化可以减少冲突,但不能消除冲突。
58.优选地,在存储器子系统110中配置动态数据放置器153,以在调度用于执行的写入命令时创建媒体布局130的部分,从而完全消除媒体存取冲突。在一些实施方案中,动态数据放置器153可为数据传输管理器113的部分。
59.举例来说,存储器子系统110的媒体203可具有多个集成电路管芯205、

、207。集成电路管芯(例如,205)中的每一个可具有存储器单元(例如,nand存储器单元)的多个平面221、

、223。平面(例如,221)中的每一个可具有存储器单元(例如,nand存储器单元)的多个块231、

、233。块(例如,231)中的每一个可具有存储器单元(例如,nand存储器单元)的多个页241、

、243。每一页(例如,241)中的存储器单元配置成经编程以在原子操作中一起存储/写入/提交数据;且每一块(例如,231)中的存储器单元配置成在原子操作中一起擦除数据。
60.当用于将数据存储在一个区(例如,211)中的写入命令(例如,123a)和用于将数据存储在另一区(例如,213)中的另一写入命令(例如,123n)经调度以用于并行执行时,由于两个集成电路管芯(例如,205和207)可用于写入命令(例如,123a和123n)的并发操作,因此动态数据放置器153将写入命令的lba地址映射到位于不同管芯(例如,205和207)中的页中。因此,可避免媒体存取冲突。
61.此外,当预测两个集成电路管芯(例如,205和207)可用于执行写入命令(例如,123a和123n)的到可用时的持续时间且由可用性预测器112预测时间可用期间在来自用于将数据从主机系统120获取到本地存储器119的持续时间的阈值内时,数据传输管理器113发起将写入命令(例如,123a和123n)的数据145从主机系统120的存储器133传输到存储器子系统110的本地存储器119。
62.举例来说,可用性预测器112可监测去往和/或来自媒体203的指示集成电路管芯205到207中的操作过程的预定信号,以用于执行进行中的当前命令的操作。预定定时模块可用于基于信号的定时来计算到可用时的持续时间。
63.队列143中的写入命令的数据135中的大多数可存储在主机存储器133中,而对应写入命令自身在存储器子系统110中的命令队列143中接受。数据145用于写入命令(例如,123a和123n),预测所述写入命令准备好执行且用于将数据储存到集成电路管芯(例如,205和207)中的存储器单元中,所述存储器单元可用于在所预测的到可用时的持续时间内服务于写入命令(例如,123a和123n)。
64.由于仅数据145及时传输以用于可用集成电路管芯(例如,205和207),因此在本地存储器119中缓冲的数据145的生存期减少和/或最小化。此外,在本地存储器119中缓冲的数据145的量可减少和/或最小化。写入命令的数据145的生存期和量的减少可降低在电力失效事件中保护本地存储器119的内容的要求。此外,由于基于集成电路管芯(例如,205和207)的所预测的到可用时的持续时间提前发起数据145的传输,因此可以减少或消除集成电路管芯(例如,205和207)的闲置时间。
65.图4说明配置成支持主机系统与存储器子系统之间的数据传输的数据结构的实例。举例来说,可使用图4的数据结构来实施图3的媒体布局130。
66.在图4中,区映射301配置成提供用于名字空间(例如,201)中的区(例如,211)的媒体布局信息。区映射301可以具有多个条目。区映射301中的每一条目标识关于区(例如,211)的信息,例如区(例如,211)的起始lba地址311、区(例如,211)的块集合标识符313、区(例如,211)的光标值315、区(例如,211)的状态317等。
67.主机系统120在区起始lba地址311处开始在区(例如,211)中写入数据。主机系统120在lba空间中依序在区(例如,211)中写入数据。在一定量的数据已写入到区(例如,211)中之后,由光标值315标识用于写入后续数据的当前起始lba地址。用于区的每一写入命令将光标值315移动到用于区的下一写入命令的新起始lba地址。状态317可以具有指示区(例如,211)为空、满、隐含地打开、明确打开、关闭等的值。
68.在图4中,逻辑到物理块映射303配置成促进lba地址(例如,331)转换为媒体(例如,203)中的物理地址。
69.逻辑到物理块映射303可具有多个条目。lba地址(例如,331)可用作或转换成逻辑到物理块映射303中的条目的索引。所述索引可用于查找lba地址(例如,331)的条目。逻辑到物理块映射303中的每一条目针对lba地址(例如,331)标识媒体(例如,203)中的存储器块的物理地址。举例来说,媒体(例如,203)中的存储器块的物理地址可包含管芯标识符333、块标识符335、页映射条目标识符337等。
70.管芯标识符333标识存储器子系统110的媒体203中的特定集成电路管芯(例如,205或207)。
71.块标识符335标识使用管芯标识符333标识的集成电路管芯(例如,205或207)内的特定存储器(例如,nand快闪存储器)的块。
72.页映射条目标识符337标识页映射305中的条目。
73.页映射305可具有多个条目。页映射305中的每一条目可包含标识存储器单元(例如,nand存储器单元)的块内的存储器单元页的页标识符351。举例来说,页标识符351可包含页的字线编号和nand存储器单元块中的页的子块编号。此外,页的条目可包含页的编程模式353。举例来说,页可在slc模式、mlc模式、tlc模式或qlc模式下编程。当在slc模式下配置时,页中的每一存储器单元将存储一个数据位。当在mlc模式下配置时,页中的每一存储
器单元将存储两个数据位。当在tlc模式下配置时,页中的每一存储器单元将存储三个数据位。当在qlc模式下配置时,页中的每一存储器单元将存储四个数据位。集成电路管芯(例如,205或207)中的不同页可具有用于数据编程的不同模式。
74.在图4中,块集合表307存储控制区(例如,211)的动态媒体布局的方面的数据。
75.块集合表307可具有多个条目。块集合表307中的每一条目标识集成电路管芯(例如,205和207)的数目/计数371,在所述集成电路管芯中存储区(例如,211)的数据。对于用于区(例如,211)的集成电路管芯(例如,205和207)中的每一个,块集合表307的条目具有管芯标识符373、块标识符375、页映射条目标识符377等。
76.管芯识别符373标识存储器子系统110的媒体203中的特定集成电路管芯(例如,205或207),在所述管芯(例如,205或207)上可存储区(例如,211)的后续数据。
77.块标识符375标识使用管芯标识符373标识的集成电路管芯(例如,205或207)内的存储器(例如,nand快闪存储器)的特定块(例如,231或233),在所述块(例如,231或233)中可存储区(例如,211)的后续数据。
78.页映射条目标识符337标识页映射305中的条目,其标识可用于存储区(例如,211)的后续数据的页(例如,241或241)。
79.图5展示预测性定时数据传输的方法。图5的方法可由处理逻辑进行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,至少部分地通过图1、2或3的数据传输管理器113进行图5的方法。虽然以特定顺序或次序展示,但是除非另外规定,否则可修改过程的次序。因此,应理解所说明实施例仅为实例,且所说明过程可以不同次序进行,且一些过程可并行地进行。另外,可在各种实施例中省略一或多个过程。因此,并非在每一实施例中都需要所有过程。其它过程流程是可能的。
80.在块401处,具有多个媒体单元109a到109n的存储器子系统110对从主机系统120接收的写入命令进行排队。
81.在块403处,存储器子系统110使用多个媒体单元109a到109n当中的媒体单元(例如,109a)执行第一写入命令。
82.在块405处,存储器子系统110的可用性预测器112预测到媒体单元(例如,109a)完成用于执行第一写入命令的操作且因此变得可用于执行在存储器子系统110中排队的写入命令当中的第二写入命令时的时间实例的持续时间。
83.举例来说,可用性预测器112可基于去往或来自媒体单元的信号来确定时间实例的持续时间。此外,可用性预测器112可基于媒体单元编程数据的时间模型、媒体单元擦除数据的时间模型、媒体单元的数据编程序列步骤的定时和/或针对在媒体单元中介入读取操作而进行的编程或擦除暂停步骤的定时来确定时间实例的持续时间。
84.在块407处,存储器子系统110的数据传输管理器113在完成执行第一写入命令之前,根据所预测的持续时间发起将第二命令的数据从主机系统120传送到存储器子系统110的本地缓冲存储器119。
85.举例来说,数据传输管理器113可响应于确定所预测的持续时间等于用于将第二命令的数据从主机系统传送到本地缓冲存储器的时间段,或响应于确定所预测的持续时间来自用于将第二命令的数据从主机系统传送/提取/接收到本地缓冲存储器的时间段的阈
值内而决定发起传送。
86.举例来说,可在将第一写入命令的数据传输到媒体单元中之后且在媒体单元完成用于执行第一写入命令的操作之前,调度第二命令的数据的传送的发起。
87.在块409处,存储器子系统110在执行第一写入命令之后,通过将数据从本地缓冲存储器119存储到媒体单元(例如,109a)中而执行执行第二写入命令。
88.举例来说,可在本地缓冲存储器119中为第一写入命令的数据分配缓冲空间;一旦完成将第一写入命令的数据传输到媒体单元(例如,109)中,就可从缓冲第一写入命令的数据中释放缓冲空间。随后,响应于发起传送第二写入命令的数据的决策且基于媒体单元变得可用于执行第二写入命令时的时间实例的所预测的持续,可为第二写入命令的数据分配缓冲空间。可在媒体单元正对第一写入命令进行操作时,进行数据到缓冲空间中的提取。一旦完成执行第一写入命令,第二命令的数据就在缓冲空间中准备就绪;且媒体单元可用于执行第二写入命令的执行。类似地,一旦将第二命令的数据传输到用于第二写入命令的媒体单元中,就可从缓冲第二写入命令的数据释放缓冲空间。
89.举例来说,本地缓冲存储器119为静态随机存取存储器(sram);存储器子系统110不具有动态随机存取存储器(dram);且存储器子系统110可包含电源失效保持电路141,其配置成在电源失效事件中为静态随机存取存储器(sram)供电,直到静态随机存取存储器(sram)中的内容存储到多个媒体单元中为止。用于预测性定时数据传输的技术的使用允许减少电源失效保持电路141的功率容量且减少媒体单元的闲置时间。
90.任选地,响应于确定可在可用媒体单元中并行地执行命令,动态地确定媒体布局130的用于写入命令中使用的逻辑地址的部分。
91.举例来说,在识别在用于执行下一命令的时间量内可用的多个存储器单元(例如,集成电路管芯)之后,数据传输管理器113可从块集合表307识别可用于存储下一命令的数据的物理地址。物理地址可用于更新针对下一命令中使用的lba地址的逻辑到物理块映射303中的对应条目。
92.举例来说,当预测集成电路管芯(例如,205)准备好在时间段内时写入数据时,数据传输管理器113可确定可写入/编程到集成电路管芯(例如,205)中的存储器单元中的区的命令。根据块集合表307,数据传输管理器113和/或动态数据放置器153定位区(例如,205)的条目,定位与集成电路管芯(例如,205)的标识符373相关联的块标识符375和页映射条目标识符377,并且使用管芯标识符373、块标识符375和页映射条目标识符377,以用于针对区(例如,211)的命令中使用的lba地址331更新逻辑到物理块映射303中的条目的对应字段。因此,对于lba地址331,可在没有媒体存取冲突的情况下执行区(例如,211)的命令。在命令配置成在集成电路管芯(例如,205)中执行之后,命令的数据可经调度以在集成电路管芯(例如,205)完成其当前操作之前且根据完成其当前操作的预测时间而被提取到本地存储器119中,使得减少在本地存储器119中缓冲数据的时间且降低或消除集成电路管芯(例如,205)等待命令的数据的闲置时间。
93.在一些实施方案中,处理装置118与存储器子系统110之间的通信信道包含计算机网络,例如局域网、无线局域网、无线个域网、蜂窝式通信网络、宽带高速始终连接的无线通信连接(例如,当前或未来一代的移动网络链路);并且处理装置118和存储器子系统可配置成使用与nvme协议中的那些类似的数据存储管理和使用命令来彼此通信。
94.存储器子系统110通常可具有非易失性存储媒体。非易失性存储媒体的实例包含形成于集成电路中的存储器单元和涂布在硬磁盘上的磁性材料。非易失性存储媒体可在不消耗电力的情况下维护存储在其中的数据/信息。存储器单元可使用各种存储器/存储装置技术来实施,所述存储器/存储装置技术例如nand逻辑门、nor逻辑门、相变存储器(pcm)、磁性随机存取存储器(mram)、电阻式随机存取存储器、交叉点存储装置和存储器装置(例如,3d xpoint存储器)。交叉点存储器装置使用无晶体管存储器元件,所述无晶体管存储器元件中的每一个具有一起堆叠成列的存储器单元和选择器。存储器元件列经由两个垂直线材层连接,其中一个层处于存储器元件列上方,且另一层处于存储器元件列下方。可个别地在两个层中的每一层上的一个线路的交叉点处选择每一存储器元件。交叉点存储器装置为快速且非易失性的,且可用作统一存储器池以供处理和存储。
95.存储器子系统(例如,110)的控制器(例如,115)可运行固件以响应于来自处理装置118的通信而执行操作。一般来说,固件是一种提供工程化计算装置的控制、监测和数据操纵的计算机程序类型。
96.涉及控制器115的操作的一些实施例可使用由例如控制器115的固件之类的控制器115执行的计算机指令来实施。在一些情况下,硬件电路可用于实施所述功能中的至少一些。固件可最初存储在非易失性存储媒体或另一非易失性装置中,并且加载到易失性dram和/或处理器内高速缓存存储器中以供控制器115执行。
97.非暂时性计算机存储媒体可用于存储存储器子系统(例如,110)的固件的指令。当指令由控制器115和/或处理装置117执行时,所述指令使得控制器115和/或处理装置117执行上文所论述的方法。
98.图6说明计算机系统500的实例机器,在所述机器内可执行用于使得所述机器执行本文中所论述的方法中的任何一或多个的指令集。在一些实施例中,计算机系统500可对应于包含、耦合到或使用存储器子系统(例如,图1的存储器子系统110)或可用以进行数据传输管理器113的操作(例如,执行指令以进行对应于参考图1至5描述的数据传输管理器113的操作)的主机系统(例如,图1的主机系统120)。在替代性实施例中,机器可连接(例如联网)到lan、内联网、外联网和/或互联网中的其它机器。机器可作为对等(或分散式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而在客户端-服务器网络环境中的服务器或客户端机器的容量中操作。
99.机器可以是个人计算机(pc)、平板pc、机顶盒(stb)、个人数字助理(pda)、蜂窝式电话、网络器具、服务器、网络路由器、交换机或桥接器,或能够(依序或以其它方式)执行指定将由所述机器采取的动作的指令集的任何机器。此外,尽管说明单个机器,但还应认为术语“机器”包含机器的任何集合,所述集合单独地或共同地执行一(或多个)指令集以执行本文中所论述的方法中的任何一或多种。
100.实例计算机系统500包含处理装置502、主存储器504(例如,只读存储器(rom)、快闪存储器、例如同步dram(sdram)或rambus dram(rdram)等的动态随机存取存储器(dram)、静态随机存取存储器(sram)等)和数据存储系统518,其通过总线530彼此通信(其可包含多条总线)。
101.处理装置502表示一或多个通用处理装置,例如微处理器、中央处理单元等。更特定来说,处理装置可为复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、
超长指令字(vliw)微处理器,或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置502也可为一或多个专用处理装置,例如专用集成电路(asic)、现场可编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器等。处理装置502配置成执行指令526,以用于进行本文中所论述的操作和步骤。计算机系统500可进一步包含用以经由网络520通信的网络接口装置508。
102.数据存储系统518可包含机器可读存储媒体524(也被称作计算机可读媒体),在所述机器可读存储媒体上存储有一或多个指令集526或体现本文中所描述的方法或功能中的任何一或多个的软件。指令526还可在由计算机系统500执行期间完全或至少部分地驻留在主存储器504内和/或处理装置502内,主存储器504和处理装置502也构成机器可读存储媒体。机器可读存储媒体524、数据存储系统518和/或主存储器504可对应于图1的存储器子系统110。
103.在一个实施例中,指令526包含实施对应于数据传输管理器113(例如,参考图1至5描述的数据传输管理器113)的功能性的指令。尽管在实例实施例中将机器可读存储媒体524展示为单个媒体,但应认为术语“机器可读存储媒体”包含存储一或多个指令集的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或编码供机器执行的指令集且使机器执行本公开的方法中的任何一或多个的任何媒体。因此,应认为术语“机器可读存储媒体”包含但不限于固态存储器、光学媒体和磁性媒体。
104.已依据计算机存储器内的数据位的操作的算法和符号表示呈现了先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用于将其工作的主旨最有效地传达给本领域的其它技术人员的方式。算法在这里并且通常被认为是引起所需结果的操作的自洽序列。操作是需要对物理量进行物理操纵的操作。这些量通常但未必呈能够被存储、组合、比较和以其它方式操纵的电或磁信号的形式。有时,主要出于通用的原因,已经证明将这些信号称为位、值、元件、符号、字符、术语、数目等是方便的。
105.然而,应牢记,所有这些和类似术语应与适当物理量相关联,且仅是应用于这些量的方便标签。本公开可涉及将计算机系统的寄存器和存储器内的表示为物理(电子)量的数据操纵和变换为计算机系统存储器或寄存器或其它这类信息存储系统内的类似地表示为物理量的其它数据的计算机系统或类似电子计算装置的动作和过程。
106.本公开还涉及用于进行本文中的操作的设备。此设备可出于预期目的而专门构造,或其可包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可以存储在计算机可读存储媒体中,例如但不限于任何类型的磁盘,其包含软盘、光盘、cd-rom和磁性光盘、只读存储器(rom)、随机存取存储器(ram)、eprom、eeprom、磁性卡或光学卡,或适合于存储电子指令的任何类型的媒体,其各自耦合到计算机系统总线。
107.本文中所呈现的算法和显示器在本质上并不与任何特定计算机或其它设备相关。各种通用系统可与根据本文中的教示的程序一起使用,或其可证明构造用以执行所述方法更加专用的设备是方便的。将如下文描述中所阐述的那样来呈现多种这些系统的结构。另外,不参考任何特定编程语言来描述本公开。将了解,可使用多种编程语言来实施如本文中所描述的本公开的教示。
108.本公开可被提供为计算机程序产品或软件,其可包含其上存储有可用于编程计算
机系统(或其它电子装置)以执行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机构。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,例如只读存储器(“rom”)、随机存取存储器(“ram”)、磁盘存储媒体、光学存储媒体、快闪存储器装置等。
109.在本说明书中,各种功能和操作描述为由计算机指令进行或由计算机指令引起以简化描述。然而,本领域的技术人员将认识到,此类表达的意图是所述功能因一或多个控制器或处理器(例如,微处理器)执行计算机指令而产生。替代地或组合地,所述功能和操作可使用具有或不具有软件指令的专用电路系统实施,例如使用专用集成电路(asic)或现场可编程门阵列(fpga)来实施。实施例可使用无软件指令的硬接线电路系统或结合软件指令来实施。因此,技术不限于硬件电路和软件的任何特定组合,也不限于由数据处理系统执行的指令的任何特定来源。
110.在前述说明书中,已参考其具体实例实施例描述了本公开的实施例。将显而易见的是,可在不脱离如所附权利要求书中阐述的本公开的实施例的更广精神和范围的情况下对本公开进行各种修改。因此,说明书和图式应在说明性意义上而非限制性意义上看待。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献