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

用于使用主机中的为读取数据分配的存储器作为主机存储器缓冲器的存储系统和方法与流程

2022-07-10 13:29:28 来源:中国专利 TAG:

用于使用主机中的为读取数据分配的存储器作为主机存储器缓冲器的存储系统和方法


背景技术:

1.主机可向存储系统发送读取请求和写入请求以读取存储系统的存储器中的数据以及将数据存储到存储系统的存储器中。一些存储系统可请求使用主机中的存储器。
附图说明
2.图1a是一个实施方案的非易失性存储系统的框图。
3.图1b是示出一个实施方案的存储模块的框图。
4.图1c是示出一个实施方案的分级存储系统的框图。
5.图2a是示出根据一个实施方案的图1a所示的非易失性存储系统的控制器的部件的框图。
6.图2b是示出根据一个实施方案的图1a所示的非易失性存储器存储系统的部件的框图。
7.图3是一个实施方案的主机和存储系统的框图。
8.图4是示出用于分配主机存储器缓冲器的实施方案的过程的图。
9.图5是示出用于使用主机中的为读取数据分配的存储器作为主机存储器缓冲器的实施方案的过程的图。
具体实施方式
10.概述
11.通过引入的方式,以下实施方案涉及一种用于使用主机中的为读取数据分配的存储器作为主机存储器缓冲器的存储系统和方法。在一个实施方案中,提供了一种存储系统,包括存储器和控制器。该控制器被配置为:从主机接收针对存储在存储器中的数据的读取请求,其中,该读取请求识别在主机中的由主机分配的存储位置,以在从存储系统接收所请求的数据之后对其进行存储;以及在将所请求的数据发送到主机之前,将其他数据存储在主机中的存储位置中。
12.在一些实施方案中,主机中的存储位置可供存储系统使用,而无需存储系统向主机请求此类使用。
13.在一些实施方案中,读取请求识别主机中的存储位置的位置和大小。
14.在一些实施方案中,控制器被配置为在处理读取请求的同时将其他数据存储在主机中的存储位置中。
15.在一些实施方案中,其他数据包括待写入存储器中的数据。
16.在一些实施方案中,其他数据包括用于读取错误处理操作的数据。
17.在一些实施方案中,其他数据包括映射表。
18.在一些实施方案中,其他数据包括在错误校正机制中使用的数据。
19.在一些实施方案中,在所请求的数据由主机接收并存储在存储位置中之前,将其
他数据从主机中的存储位置移动到另一存储位置。
20.在一些实施方案中,当所请求的数据由主机接收并存储在存储位置中时,其他数据被覆盖。
21.在一些实施方案中,存储器包括三维存储器。
22.在另一个实施方案中,提供了一种在存储系统中执行的方法,该存储系统包括存储器。该方法包括从主机接收请求存储在存储器中的数据的读取命令;处理该读取命令;当处理读取命令时,但在将数据传输到主机之前,使用主机中的为数据分配的缓冲器作为主机存储器缓冲器以存储其他数据;以及将数据传输到主机。
23.在一些实施方案中,其他数据包括待写入存储器中的数据。
24.在一些实施方案中,其他数据包括用于读取错误处理操作的数据。
25.在一些实施方案中,其他数据包括映射表。
26.在一些实施方案中,其他数据包括在错误校正机制中使用的数据。
27.在一些实施方案中,在所请求的数据由主机接收并存储在存储位置中之前,将其他数据从主机中的存储位置移动到另一存储位置。
28.在一些实施方案中,当所请求的数据由主机接收并存储在存储位置中时,其他数据被覆盖。
29.在另一个实施方案中,提供了一种存储系统,该存储系统包括:存储器;用于从主机接收请求存储在存储器中的数据的读取命令的装置;以及用于在将所请求的数据发送到主机之前,将其他数据存储在主机中的为所请求的数据分配的存储位置中的装置。
30.其他实施方案是可行的,并且实施方案中的每个可单独使用或组合在一起使用。因此,现在将参考附图对各种实施方案进行描述。
31.实施方案
32.在图1a-图1c中示出适用于实现这些实施方案的各方面的存储系统。图1a是示出根据本文所述的主题的一个实施方案的非易失性存储系统100的框图。参考图1a,非易失性存储系统100包括控制器102和可由一个或多个非易失性存储器管芯104组成的非易失性存储器。如本文所述,术语管芯是指在单个半导体基板上形成的非易失性存储器单元的集合,以及用于管理那些非易失性存储器单元的物理操作的相关联的电路。控制器102与主机系统进行交互,并且将用于读取操作、编程操作和擦除操作的命令序列传输到非易失性存储器管芯104。
33.控制器102(其可以是非易失性存储器控制器(例如闪存、电阻随机存取存储器(reram)、相变存储器(pcm)或磁阻随机存取存储器(mram)控制器))可采用以下形式:例如,处理电路、微处理器或处理器、以及存储可由(微)处理器执行的计算机可读程序代码(例如固件)的计算机可读介质、逻辑门、开关、专用集成电路(asic)、可编程逻辑控制器和嵌入式微控制器。控制器102可以配置有硬件和/或固件,以执行下文描述并且在流程图中示出的各种功能。另外,示出为在控制器内部的一些部件可也存储在控制器外部,并且可以使用其他部件。此外,短语“操作地与
……
通信”可能意味着直接或间接地(有线或无线)与一个或多个部件通信、通过一个或多个部件通信,其可在本文中示出或未示出。
34.如本文所用,非易失性存储器控制器是管理存储在非易失性存储器上的数据并且与主机诸如计算机或电子设备通信的设备。除了本文描述的特定功能外,非易失性存储器
控制器可以具有各种功能。例如,非易失性存储器控制器可以对非易失性存储器进行格式化以确保存储器正在正确操作,标出坏的非易失性存储器单元,并且分配备用单元以替代将来的故障单元。备用单元中的一些部分可以用来容纳固件以操作非易失性存储器控制器并且实现其他特征。在操作中,当主机需要从非易失性存储器读取数据或向非易失性存储器写入数据时,它可与非易失性存储器控制器通信。如果主机提供要读取/写入数据的逻辑地址,那么非易失性存储器控制器可以将从主机接收的逻辑地址转换为非易失性存储器中的物理地址。(或者,主机可提供物理地址。)非易失性存储器控制器还可执行各种存储器管理功能,诸如但不限于损耗均衡(分配写入以避免损耗否则将被重复写入的特定存储器块)和垃圾收集(在块已满之后,仅将有效的数据页面移动到新块,因此可以擦除并且重用完整块)。
35.非易失性存储器管芯104可包括任何合适的非易失性存储介质,包括电阻随机存取存储器(reram)、磁阻随机存取存储器(mram)、相变存储器(pcm)、nand闪存单元和/或nor闪存单元。存储器单元可以采用固态(例如,闪存)存储器单元的形式,并且可以是可一次编程、可数次编程或可多次编程的。存储器单元还可以是单级单元(slc)、多级单元(mlc)、三级单元(tlc),或者使用现在已知或之后开发的其他存储器单元级技术。另外,存储器单元可以二维方式或三维方式制造。
36.位于控制器102和非易失性存储器管芯104之间的接口可为任何合适的闪存接口,诸如切换模式200、400或800。在一个实施方案中,存储系统100可为基于卡的系统,诸如安全数字卡(sd)或微型安全数字(微型sd)卡。在另选的实施方案中,存储系统100可为嵌入式存储系统的部分。
37.虽然在图1a所示的示例中,非易失性存储系统100(本文有时称为存储模块)包括控制器102和非易失性存储器管芯104之间的单个信道,但是本文描述的主题不限于具有单个存储器信道。例如,在一些存储系统架构中(诸如图1b和图1c中所示的架构),控制器和存储器设备之间根据控制器的能力可以存在2个、4个、8个或更多个存储器信道。在本文描述的任何实施方案中,即使在附图中示出单个信道,控制器和存储器管芯之间也可以存在超过一个单个信道。
38.图1b示出了包括多个非易失性存储系统100的存储模块200。同样地,存储模块200可包括存储控制器202,该存储控制器与主机以及包括多个非易失性存储系统100的存储系统204进行交互。存储控制器202和非易失性存储系统100之间的接口可以是总线接口,诸如串行高级技术附件(sata)、外围部件快速互连(pcie)接口或双倍数据率(ddr)接口。在一个实施方案中,存储模块200可以是诸如在服务器pc或便携式计算设备诸如膝上型计算机和平板电脑中存在的固态驱动器(ssd)或非易失性双列直插式存储器模块(nvdimm)。
39.图1c是示出分级存储系统的框图。分级存储系统250包括多个存储控制器202,该多个存储控制器中的每个存储控制器控制相应的存储系统204。主机系统252可经由总线接口存取存储系统内的存储器。在一个实施方案中,总线接口可以是非易失性存储器快速(nvme)或以太网光纤信道(fcoe)接口。在一个实施方案中,图1c所示的系统可以是机架可安装的大容量存储系统,该机架可安装的大容量存储系统能够由多个主机计算机存取,诸如在数据中心中或在需要大容量存储的其他位置中可以找到。
40.图2a是更详细地示出控制器102的示例性部件的框图。控制器102包括与主机进行
交互的前端模块108、与一个或多个非易失性存储器管芯104进行交互的后端模块110、以及执行现在将详细描述的功能的各种其他模块。模块可以采用以下形式:例如,设计用于搭配其他部件使用的封装功能硬件单元、能够由通常执行相关功能中的特定功能的(微)处理器或处理电路执行的程序代码的一部分(例如,软件或固件),或者与更大系统进行交互的独立硬件或软件部件。
41.再次参考控制器102的模块,缓冲区管理/总线控制器114管理随机存取存储器(ram)116中的缓冲区,并且控制控制器102的内部总线仲裁。只读存储器(rom)118存储系统引导代码。虽然图2a所示为与控制器102分开定位,但在其他实施方案中,ram 116和rom 118中的一者或两者可以定位在控制器内。在又其他实施方案中,ram和rom的部分可位于控制器102内和控制器外部。
42.前端模块108包括主机接口120和提供与主机或下一级存储控制器的电接口的物理层接口(phy)122。可根据所使用的存储器的类型来选择主机接口120的类型。主机接口120的示例包括但不限于sata、sata express、串行附接小型计算机系统接口(sas)、光纤信道、通用串行总线(usb)、pcie和nvme。主机接口120通常有利于传送数据、控制信号和定时信号。
43.后端模块110包括错误校正代码(ecc)引擎124,该ecc引擎对从主机接收的数据字节进行编码,并且对从非易失性存储器读取的数据字节进行解码和错误校正。命令定序器126生成命令序列(诸如编程命令序列和擦除命令序列),以传输到非易失性存储器管芯104。raid(独立驱动器冗余阵列)模块128管理raid奇偶校验的生成和失败数据的恢复。raid奇偶校验可用作写入存储器设备104中的数据的附加级的完整性保护。在一些情况下,raid模块128可以是ecc引擎124的一部分。存储器接口130向非易失性存储器管芯104提供命令序列并从非易失性存储器管芯104接收状态信息。在一个实施方案中,存储器接口130可以是双倍数据速率(ddr)接口,诸如切换模式200、400或800接口。闪存控制层132控制后端模块110的整体操作。
44.存储系统100还包括其他分立部件140,诸如外部电气接口、外部ram、电阻器、电容器或可与控制器102进行交互的其他部件。在另选的实施方案中,物理层接口122、raid模块128、媒体管理层138和缓冲区管理/总线控制器114中的一者或多者是控制器102中不需要的任选的部件。
45.图2b是更详细地示出非易失性存储器管芯104的部件的框图。非易失性存储器管芯104包括外围电路141和非易失性存储器阵列142。非易失性存储器阵列142包括用于存储数据的非易失性存储器单元。非易失性存储器单元可以是任何合适的非易失性存储器单元,包括采用二维配置和/或三维配置的reram、mram、pcm、nand闪存存储器单元和/或nor闪存存储器单元。非易失性存储器管芯104还包括高速缓存数据的数据高速缓存156。外围电路141包括提供状态信息到控制器102的状态机152。
46.再次返回图2a,闪存控制层132(其在本文中将被称为闪存转换层(ftl),或者更一般地被称为“媒体管理层”,因为存储器可以不是闪存)处理闪存错误并与主机进行交互。具体地讲,ftl(其可以是固件中的算法)负责存储器管理的内部并将来自主机的写入转换为到存储器104的写入。ftl可能是需要的,因为存储器104可能具有有限的耐久性,可能仅写入多个页面,和/或可能不写入(除非其作为块被擦除)。ftl理解存储器104的这些潜在限
制,这些限制可能对主机不可见。因此,ftl尝试将来自主机的写入转换为到存储器104中的写入。
47.ftl可包括逻辑到物理地址(l2p)映射以及分配的高速缓存存储器。这样,ftl将来自主机的逻辑块地址(“lba”)转换为存储器104中的物理地址。ftl可包括其他特征,诸如但不限于断电恢复(使得ftl的数据结构可在突然电力损失的情况下恢复)和损耗均衡(使得跨存储器块的损耗均匀,以防止某些块过度损耗,该过度损耗将导致更大机会出现故障)。
48.再次返回到附图,图3是一个实施方案的主机300和存储系统100的框图。主机300可采用任何合适的形式,包括但不限于计算机、移动电话、平板电脑、可穿戴设备、数字视频记录器、监视系统等。在该实施方案中,主机300(例如,计算设备)包括处理器330和存储器340。
49.在一些情况下,存储系统100中的易失性存储器(例如,ram 116)可用作以其他方式存储在非易失性存储器104(例如,逻辑到物理地址映射表)中的数据和/或临时数据(例如,在错误处理或错误校正过程中使用的数据、待存储在非易失性存储器104中的写入数据等)的高速缓存。然而,由于易失性存储器116中的存储量是有限的,因此易失性存储器116中的空间可能会耗尽,这会对存储系统100的性能产生不利影响。在一个实施方案中,存储系统100使用主机300中的存储器340作为存储系统100中的易失性存储器116的扩展。当主机300中的存储器340用于此类目的时,它可被称为“主机存储器缓冲器(hmb)”。
50.图4示出如何在一个实施方案中建立主机存储器缓冲器。如图4所示,存储系统100向主机300发送针对hmb的请求(动作410)。响应于该请求,主机300在其存储器340中为hmb分配存储位置(动作420)以及利用缓冲器信息(例如,所分配的存储位置的位置和大小)对存储系统的请求进行回复(动作430)。所分配的存储器可用于存储系统100(动作440),并且hmb可由存储系统100使用(动作450)。然而,主机可随时将hmb从存储系统100中取出(动作460)。
51.在另一个实施方案中,不请求使用hmb或者除了请求使用hmb之外,存储系统100利用所分配的未使用的主机存储器,并在hmb处使用该主机存储器,而无需向主机300请求。该实施方案在图5的图500中示出。如图5所示,在主机300向存储系统100发送读取请求以读取存储在存储系统的存储器104中的数据之前,主机300分配其存储器340的一部分,以在从存储系统100接收到所请求的数据之后将其进行存储(动作510)。然后,主机300将读取请求发送到存储系统100(动作530)。该请求可识别分配给存储系统100的存储位置。例如,该请求可包括所分配的存储位置的位置(例如,地址、偏移)和存储位置的大小。通过该信息,存储系统100知道分配了多少空间以及该空间所在的位置。
52.通常,主机存储器340中的所分配的空间将会保持空闲,直到存储系统100用主机300请求读取并返回到主机的数据填充该空间。然而,该实施方案认识到,在所请求的数据被发送到主机300之前,所分配的存储器是空的并且可供使用(动作530)。在存储系统100接收到读取请求(动作540)之后,存储系统了解所分配的存储器在主机300中的位置。因此,在处理读取命令(例如,在从存储器104读取数据的过程和/或处理(例如,错误校正)数据的过程中)(动作550)的同时,存储系统100可使用所分配的存储器作为主机存储器缓冲器,在其中存储其他数据,直到主机300需要使用所分配的存储位置存储所请求的数据。不同于图4中所示的实施方案,在该实施方案中,存储系统100使用主机存储器340中的分配空间,而无
需首先请求或要求使用此类空间的权限。在将所请求的数据发送到主机300(动作560)之后,存储系统100可向主机300发送确认(动作570)。响应于接收到确认(动作580),主机300将所分配的存储位置用于另一目的或将其保持为空闲存储器(动作590)。
53.存储系统100可在“未请求的hmb”中存储任何期望的数据。例如,其他数据可包括待写入存储器中以改善写入确认时间的数据。通常,存储系统100在接收到写入命令并且在将写入数据调配到非易失性存储器104之前将其缓冲在存储系统的易失性存储器116中之后,向主机200发送确认。当易失性存储器116中没有足够的立即可用的空间以实现这一点时,写入命令的确认被延迟。未请求的hmb可用于存储此类数据,从而避免写入命令确认的延迟。随后,当存储系统的易失性存储器116中的空间可用时,可将数据从未请求的hmb中读出,并且将其读入存储系统的易失性存储器中。作为另一示例,其他数据可包括用于读取错误处理操作的数据(例如,临时数据,诸如软比特位或异或(xor)比特)或在错误校正机制中使用的临时数据(例如,在低密度奇偶检查码(ldpc)机制中生成的临时数据)。作为又一示例,其他数据可以是将以其他方式存储在存储系统的易失性存储器116中的逻辑到物理地址映射表中的一部分或全部。即,在一些情况下,在读取操作期间,闪存转换层(ftl)将映射表读入稍后不会使用的临时缓冲器中。可将这些表置于主机存储器340中,并且用所请求的数据将其覆盖。
54.应注意,当主机存储器340中的所分配的存储位置需要用来存储所请求的读取数据时,可将存储在未请求的hmb中的其他数据移动到另一位置(例如,在主机300中或存储系统100中)。另选地,如果其他数据是临时数据,则可用所请求的读取数据覆盖该数据即可。另外,当主机300向存储系统100发送附加读取请求时,存储系统100可使用由这些滚动的一系列请求创建的附加的未请求的hmb。
55.从以上示例可看出,存在与这些实施方案相关的许多优点。其中,这些实施方案可用于减小存储系统100中所需的易失性存储器的大小,并且可提高一些工作负载的性能。使用这些实施方案可实现其他优点以利用主机中的已分配但未使用的存储位置(如通过总线与存储系统100进行通信)。
56.最后,如上所述,可以使用任何合适类型的存储器。半导体存储器设备包括易失性存储器设备,诸如动态随机存取存储器(“dram”)或静态随机存取存储器(“sram”)设备,非易失性存储器设备,诸如电阻式随机存取存储器(“reram”)、电可擦除可编程只读存储器(“eeprom”)、闪存存储器(也可以被认为是eeprom的子集)、铁电随机存取存储器(“fram”)和磁阻随机存取存储器(“mram”),以及能够存储信息的其他半导体元件。每种类型的存储器设备可具有不同的配置。例如,闪存存储器设备可以nand配置或nor配置进行配置。
57.该存储器设备可由无源元件和/或有源元件以任何组合形成。以非限制性示例的方式,无源半导体存储器元件包括reram设备元件,该无源半导体存储器元件在一些实施方案中包括电阻率切换存储元件诸如反熔丝、相变材料等,以及任选地包括导引元件诸如二极管等。进一步以非限制性示例的方式,有源半导体存储器元件包括eeprom和闪存存储器设备元件,该有源半导体存储器元件在一些实施方案中包括具有电荷存储区域的元件,诸如浮栅、导电纳米粒子或电荷存储介电材料。
58.多个存储器元件可被配置为使得它们串联连接或者使得每个元件可被单独访问。以非限制性示例的方式,nand配置中的闪存存储器设备(nand存储器)通常包含串联连接的
存储器元件。nand存储器阵列可被配置为使得该阵列由存储器的多个串构成,其中串由共享单个位线并作为组被访问的多个存储器元件构成。另选地,可配置存储器元件,使得每个元件可被单独访问,例如nor存储器阵列。nand存储器配置和nor存储器配置为示例,并且可以其他方式配置存储器元件。
59.位于基板内和/或上方的半导体存储器元件可被布置成两个或三个维度,诸如二维存储器结构或三维存储器结构。
60.在二维存储器结构中,半导体存储器元件被布置在单个平面或单个存储器设备级中。通常,在二维存储器结构中,存储器元件被布置在平面中(例如,在x-z方向平面中),该平面基本上平行于支撑存储器元件的基板的主表面延伸。基板可以是存储器元件的层在其之上或之中形成的晶圆,或者其可以是在存储器元件形成后附接到其的承载基板。作为非限制性示例,基板可包括半导体,诸如硅。
61.存储器元件可被布置在处于有序阵列中(诸如在多个行和/或列中)的单个存储器设备级中。然而,存储器元件可以非常规配置或非正交配置排列。存储器元件可各自具有两个或更多个电极或接触线,诸如位线和字线。
62.三维存储器阵列被布置成使得存储器元件占据多个平面或多个存储器设备级,从而形成三个维度(即,在x方向、y方向和z方向上,其中y方向基本上垂直于基板的主表面,并且x方向和z方向基本上平行于基板的主表面)的结构。
63.作为非限制性示例,三维存储器结构可被垂直地布置为多个二维存储器设备级的堆叠。作为另一个非限制性示例,三维存储器阵列可被布置为多个垂直列(例如,基本上垂直于基板的主表面延伸的列,即,在y方向上),其中在每一列中每一列均具有多个存储器元件。列可以二维配置例如在x-z平面中布置,从而得到存储器元件的三维布置,其中元件位于多个垂直堆叠的存储器平面上。三维存储器元件的其他配置也可构成三维存储器阵列。
64.以非限制性示例的方式,在三维nand存储器阵列中,存储器元件可耦接在一起以在单个水平(例如,x-z)存储器设备级内形成nand串。另选地,存储器元件可耦接在一起以形成横贯多个水平存储器设备级的垂直nand串。可设想到其他三维配置,其中一些nand串包含在单个存储器级中的存储器元件,而其他串则包含跨越多个存储器级的存储器元件。三维存储器阵列也可以nor配置以及reram配置来设计。
65.通常,在单片三维存储器阵列中,一个或多个存储器设备级在单个基板上方形成。任选地,单片三维存储器阵列还可具有至少部分地在单个基板内的一个或多个存储器层。作为非限制性示例,基板可包括半导体,诸如硅。在单片三维阵列中,构成阵列的每个存储器设备级的层通常形成在阵列的底层存储器设备级的层上。然而,单片三维存储器阵列的相邻存储器设备级的层可被共享或具有在存储器设备级之间的居间层。
66.然后,可单独形成二维阵列,并且然后封装在一起以形成具有多个存储器层的非单片存储器设备。例如,非单片的堆叠存储器可通过在单独的基板上形成存储器级并且然后将存储器级堆叠在彼此之上而构造。可在堆叠前将基板减薄或从存储器设备级移除,但由于存储器设备级在单独的基板上初始形成,因此所得的存储器阵列不是单片的三维存储器阵列。此外,多个二维存储器阵列或三维存储器阵列(单片或非单片)可在单独的芯片上形成,并且然后封装在一起以形成堆叠的芯片存储器设备。
67.通常需要相关联的电路来操作存储器元件并与存储器元件通信。作为非限制性示
例,存储器设备可具有用于控制并驱动存储器元件以实现诸如编程和读取的功能的电路。该相关联的电路可与存储器元件位于同一基板上和/或位于单独的基板上。例如,用于存储器读取-写入操作的控制器可定位在单独的控制器芯片上和/或定位在与存储器元件相同的基板上。
68.本领域的技术人员将认识到,本发明不限于所述的二维结构和三维结构,但涵盖如本文所述的并且如本领域的技术人员所理解的本发明的实质和范围内的所有相关存储器结构。
69.预期将前面的详细描述理解为本发明可以采用的选定形式的说明,而不是作为本发明的定义。预期只有以下权利要求(包括所有等同物)限定要求保护的本发明的范围。最后,应注意,本文所述的任何实施方案的任何方面均可单独使用或彼此组合使用。
再多了解一些

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

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

相关文献