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

有限RAM系统中的逻辑到物理转译技术的制作方法

2022-07-16 19:49:54 来源:中国专利 TAG:

有限ram系统中的逻辑到物理转译技术
1.优先权申请
2.本技术案主张2019年9月27日申请的序列号为16/586,519的美国申请案的权益,所述申请案的全文以引用的方式并入文本中。
技术领域
3.本公开的实例大体上涉及存储器系统,且更特定来说,涉及用于实施用于随机存储器存取事件的转译高速缓存的技术。


背景技术:

4.存储器装置通常提供为计算机或其它电子装置中的内部半导体集成电路。存在许多不同类型的存储器,其包含易失性及非易失性存储器。存储器装置通常可被构造为随机存取存储器(ram)。
5.易失性存储器可需要电力来维持数据且包含随机存取存储器(ram)、动态随机存取存储器(dram)及同步动态随机存取存储器(sdram)等等。非易失性存储器可通过在未被供电时保存所存储数据而提供永久性数据,且可包含nand快闪存储器、nor快闪存储器、只读存储器(rom)、电可擦除可编程rom(eeprom)、可擦除可编程rom(eprom)及电阻可变存储器,例如相变随机存取存储器(pcram)、电阻式随机存取存储器(rram)及磁阻式随机存取存储器(mram)、3d xpoint
tm
存储器等等。
6.存储器被用作广泛范围的电子应用的易失性及非易失性数据存储器,所述电子应用包含例如个人计算机、便携式记忆棒、数码相机、蜂窝电话、便携式音乐播放器(例如mp3播放器、电影播放器)及其它电子装置。可将存储器单元布置成阵列,其中所述阵列用在存储器装置中。
7.许多电子装置包含数个主组件:主机处理器(例如,中央处理单元(cpu)或其它主处理器);主存储器(例如,一或多个易失性或非易失性存储器装置,例如动态ram(dram)、移动或低电力双倍数据速率同步dram(ddr sdram)等);及存储器装置(例如,非易失性存储器(nvm)装置,例如快闪存储器、只读存储器(rom)、ssd、mmc或其它存储卡结构或组合件,或易失性与非易失性存储器的组合等)。在某些实例中,电子装置可包含用户接口(例如,显示器、触摸屏、键盘、一或多个按钮等)、图形处理单元(gpu)、功率管理电路、基带处理器或一或多个收发器电路等。
8.电子装置的存储器或存储系统可影响数个性能指标,其可影响用户选择一个电子装置而不是竞争对手的电子装置。数据存储及检索延迟是两个此类指标。例如用于移动系统的常规快闪存储器系统具有有限ram并且仅可将l2p表的一部分保留在ram中。如果l2p表的不正确部分不在ram中,那么会遇到性能延迟以允许从快闪存储器存取l2p表的正确部分。对于随机写入类型事件,所写入的数据的每一系统单位(例如,通常为4k)可能需要存取快闪存储器以定位快闪系统的正确物理地址。
附图说明
9.在不一定按比例绘制的图式中,相似数字可描述不同视图中的类似组件。具有不同字母下标的相似数字可表示类似组件的不同例子。图式大体上通过实例而非限制方式说明本文件中论述的各种实施例。
10.图1说明根据本标的物的包含经配置以通过通信接口进行通信的主机及存储器装置的环境的实例。
11.图2大体上说明根据本标的物操作存储装置或存储器装置的实例方法的流程图。
12.图3大体上说明如上文关于图2的流程图或图1的系统所论述那样处理随机高速缓存的实例方法的流程图。
13.图4大体上说明根据本标的物并与图2的流程图或图1的系统相关的用于处理读取请求的实例方法的流程图。
14.图5说明本文论述的技术(例如,方法)中的任一或多者可在其上执行的实例机器的框图。
具体实施方式
15.存储系统(例如但不限于nand存储器装置及系统)通常包含快闪转换层(ftl),以将由主机装置用于管理数据的逻辑地址(通常称为逻辑块地址(lba))转译为对应存储器物理地址(pa),通常称为存储系统的物理块地址(pba)。举例来说,ftl可使用将lba与pba关联起来的逻辑到物理(l2p)映射表(l2p表)来执行转译。移动存储装置通常具有大小受限的高速缓存,且因此通常缺乏用以存储整个映射表的存储器。因此,可根据需要从快闪存储器检索映射表的部分,此可导致随机读取性能降级。
16.转译表通常加载到控制器的内部存储器中。如果表大小大于内部存储器(例如,在随机存取存储器(ram)中,例如控制器的动态ram(dram)或静态ram(sram),那么表的一部分加载到内部存储器中且表的其余部分存储在其它存储装置(例如nand快闪阵列元件中)。如果转译请求(例如,逻辑到物理(l2p)映射)不在内部存储器中,那么控制器用来自其它存储装置的适当部分替换表的内部存储器部分。在执行例如读取或写入存储装置的操作时,此过程可增加延时。虽然增加的内部存储器可减少这些情况,但这样做的制造及电力成本对于给定应用程序来说是不可接受的。
17.为解决将转译表的部分换入内部存储器及从内部存储器换出的问题,可将转译表递送到主机(可能具有比存储装置更大的存储器资源),从而允许主机指示给定操作适用的物理地址。这在本文中称为主机高速缓存的l2p映射,但在一些上下文中也可称为主机性能提升器(hpb)、统一存储器扩展(ume)或主机存储器缓冲器(hmb)。在这些布置中,控制器最终负责维护转译表,并通过对转译表的改变来更新主机,但主机可向控制器提供待在其上操作的物理地址以及传统命令及逻辑地址。因为物理地址由主机提供,所以控制器可在执行操作时避免参考转换表,从而在执行操作时提高效率或减少延时。物理地址可囊封到有效负载(例如,物理地址有效负载)中。
18.在存储器装置的某些实施方案中,例如但不限于快闪存储器装置,随机写入工作负载性能的改进可显著地有助于整体系统性能。举例来说,在采用l2p表高速缓存的此类存储器装置中,可能需要针对每一随机写入存取快闪存储器,以便不仅用写入数据编程快闪
存储器,而且还使l2p表的正确部分位于l2p表高速缓存中以用写入操作的pa来进行更新。本发明者已经认识到可针对相当一部分随机写入操作限制或缓冲更新l2p表高速缓存的技术。在大量存储器存取操作的时期期间限制或缓冲l2p表更新可极大地改进所述时期的系统效率。所述技术并不排除更新快闪存储器装置中的完整l2p表,但此类操作可被延迟。此延迟可允许更新操作在对存储器存取操作的需求较轻的时期期间发生,且因此改进包含存储器装置的系统的用户体验。
19.存储器装置包含个别存储器裸片,其可例如包含包括一或多个存储器单元阵列的存储区域,其实施一种(或多种)选定存储技术。此存储器裸片通常将包含用于操作存储器阵列的支持电路系统。有时通常被称为“被管理存储器装置”的其它实例包含与控制器功能性相关联的一或多个存储器裸片的组合件,所述控制器功能性经配置以控制一或多个存储器裸片的操作。此控制器功能性可简化与外部装置(例如“主机”)的互操作性,如本文稍后所论述。在此类被管理存储器装置中,控制器功能性可在也并入存储器阵列的一或多个裸片上或在单独裸片上实施。在其它实例中,一或多个存储器装置可与控制器功能性组合以形成固态驱动器(ssd)存储卷。术语“存储器系统”在本文中被用作包含一或多个存储器裸片,以及用于此存储器裸片的任何控制器功能性(当存在时);且因此包含个别存储器装置、被管理存储器装置及ssd。
20.在实施nand快闪存储器单元的被管理存储器装置(被称为“被管理nand”装置)的实例中描述本公开的实施例。然而,这些实例不限制本公开的范围,本公开可以其它形式的存储器装置及/或用其它形式的存储技术来实施。
21.nor及nand快闪体系结构半导体存储器阵列两者都通过解码器存取,所述解码器通过选择耦合到特定存储器单元的栅极的字线来激活所述存储器单元。在nor体系结构半导体存储器阵列中,选定存储器单元一旦经激活便将其数据值放置于位线上,从而引起不同电流流动,这取决于特定单元被编程的状态。在nand体系结构半导体存储器阵列中,将高偏置电压施加到漏极侧选择栅极(sgd)线。以指定通过电压(例如,vpass)驱动耦合到每一群组的未选定存储器单元的栅极的字线,以将每一群组的未选定存储器单元作为通过晶体管来操作(例如,以不受其存储数据值约束的方式使电流通过)。接着,电流通过每一串联耦合的群组从源极线流动到位线,其仅受每一群组的选定存储器单元限制,从而将选定存储器单元的当前编码数据值放置于位线上。
22.nor或nand体系结构半导体存储器阵列中的每一快闪存储器单元可个别或共同编程到一个或数个编程状态。举例来说,单电平单元(slc)可表示两个编程状态(例如,1或0)中的一者,其表示一个数据位。快闪存储器单元还可表示两个以上编程状态,从而允许在不增加存储器单元的数目的情况下制造更高密度存储器,这是因为每一单元可表示一个以上二进制数字(例如,一个以上位)。此类单元可被称为多状态存储器单元、多数字单元或多电平单元(mlc)。在某些实例中,mlc可指代每单元可存储两个数据位(例如,四个编程状态中的一者)的存储器单元,三电平单元(tlc)可指代每单元可存储三个数据位(例如,八个编程状态中的一者)的存储器单元,且四电平单元(qlc)可每单元存储四个数据位。mlc在本文中在其更广泛的上下文中用于指代每单元可存储一个以上数据位的任何存储器单元(即,其可表示两个以上编程状态)。
23.可根据公认的行业标准来配置及操作被管理存储器装置。举例来说,被管理nand
装置可为(作为非限制性实例)、通用快闪存储(ufs
tm
)装置、或嵌入式mmc装置(emmc
tm
)等。举例来说,在以上实例的情况,可根据联合电子装置工程委员会(jedec)标准(例如,标题为“jedec ufs快闪存储装置3.0(jedec ufs flash storage 3.0)”的jedec标准jesd223d)及/或对此标准的更新或其后续版本来配置ufs装置。类似地,同样可根据标题为“jedec emmc标准5.1(jedec emmc standard 5.1)”的jedec标准jesd84-a51及/或此标准的更新或对后续版本来配置经识别emmc装置。被管理nand装置可用作各种形式的电子装置中的主存储器或辅助存储器,并且通常用在移动装置中。
24.ssd尤其可用作计算机的主存储装置,其在例如性能、大小、重量、坚固耐用性、操作温度范围及功耗方面优于具有移动部件的传统硬盘驱动器。举例来说,ssd可具有减少的搜寻时间、延时或与磁盘驱动器相关联的其它延迟(例如,机电延迟等)。ssd使用例如快闪存储器单元的非易失性存储器单元来免除内部电池供应需求,因这允许驱动器更通用且更紧凑。
25.ssd及被管理存储器装置可包含数个存储器装置(包含数个裸片或逻辑单元(例如,逻辑单位号或lun)),且其可包含执行操作存储器装置或与外部系统介接所需的逻辑功能的一或多个处理器或其它控制器。此类ssd及被管理存储器装置可包含一或多个快闪存储器裸片,其上包含数个存储器阵列及外围电路系统。快闪存储器阵列可包含组织成数个物理页面的存储器单元的数个块。在一些实例中,ssd还可包含dram或sram(或其它形式的存储器裸片或其它存储器结构)。类似地,被管理nand装置可包含与nand存储器阵列分离并且在控制器内或与控制器分离的易失性及/或非易失性存储器的一或多个阵列。ssd及被管理nand装置可从主机接收与存储器操作(例如用以在存储器装置与主机之间传送数据(例如,用户数据及相关联完整性数据,例如错误数据及地址数据等)的读取或写入操作,或用以从存储器装置擦除数据的擦除操作)相关联的命令。
26.图1说明包含经配置以通过通信接口进行通信的主机105及存储器装置110的环境100的实例。主机105或存储器装置110可包含在各种产品150中,例如iot装置(例如,冰箱或其它器具、传感器、电动机或致动器、移动通信装置、汽车、移动电话、无人驾驶飞机等)以支持产品150的处理、通信或控制。
27.存储器装置110包含存储器控制器115及存储器阵列120,存储器阵列120包含例如一或多个个别存储器裸片(例如,三维(3d)nand裸片的堆叠)。在3d体系结构半导体存储器技术中,垂直结构堆叠在多个层级中,并且经耦合以形成物理页面,以增加给定占据面积(即,形状因子)中的存储器装置(例如,存储装置)的存储密度。在实例中,存储器装置110可为离散存储器装置。在某些实例中,存储器阵列120的一或多个存储器裸片可包含用于映射主机的逻辑块地址(lba)与快闪存储器的物理地址(pa)的第一完整l2p表161。在某些实例中,所述表可存储物理地址,并且可由逻辑块地址索引以节省存储空间。
28.一或多个通信接口111可用于在存储器装置110与主机105的一或多个其它组件之间传送数据,所述接口例如串行高级技术附件(sata)接口、外围组件互连快速(pcie)接口、通用串行总线(usb)接口、ufs接口、emmc
tm
接口、或一或多个其它连接器或接口。主机105可包含主机系统、电子装置、处理器、存储卡读取器或存储器装置110外部的一或多个其它电子装置。在一些实例中,主机105可为具有参考图5的机器500论述的组件的某个部分或全部。数据可通过输入/输出(i/o)总线在存储器装置110与其它组件之间传送,所述输入/输
出(i/o)总线可包含一或多个锁存器以用于在数据在被传送时(例如,在从存储器阵列读取或写入到存储器阵列之前)临时存储所述数据。
29.存储器控制器115可从主机105接收指令并且可与存储器阵列通信,例如以将数据传送到(例如,写入或擦除)存储器阵列的存储器单元、平面、子块、块或页面中的一或多者或从其传送(例如,读取)。存储器控制器115尤其可包含电路系统或固件,其包含一或多个组件或集成电路。举例来说,存储器控制器115可包含一或多个存储器控制单元、电路、控制电路系统或组件,其经配置以控制跨存储器阵列120的存取并提供主机与存储器装置110之间的转译层。存储器控制器115可包含一或多个i/o电路(及对应锁存器)、高速缓存、线或接口以向存储器阵列120传送数据或从存储器阵列120传送数据。存储器控制器115可包含存储器管理器125及阵列控制器135。
30.阵列控制器135尤其可包含电路系统或组件,其经配置以控制与以下相关联的存储器操作:将数据写入耦合到存储器控制器115的存储器装置110的一或多个存储器单元,从其读取数据或对其进行擦除。存储器操作可基于例如从主机105接收的或由存储器管理器125内部产生的主机命令(例如,与磨损均衡、错误检测或校正等相关联)。
31.阵列控制器135可包含错误校正码(ecc)组件140,其可尤其包含ecc引擎或其它电路系统,其经配置以检测或校正与将数据写入耦合到存储器控制器115的存储器装置110的一或多个存储器单元或从其读取数据相关联的错误。举例来说,ecc组件140可检测或计算与执行数个存储器操作相关联的位错误率(ber)。ber可对应于发生在i/o总线的锁存器中的位错误、存储器控制器115的内部错误、发生在nand阵列中的一或多者、或存储器装置110的多电平单元(mlc)中的任一或多者中的错误。存储器控制器115可经配置以主动检测与数据的各种操作或存储相关联的错误发生(例如,位错误、操作错误、崩溃条件、暂停、挂起等)并从其恢复,同时维持在主机105与存储器装置110之间转移的数据的完整性,或维持所存储数据的完整性(例如,使用冗余raid存储装置等),并且可移除(例如,引退)失效存储器资源(例如,存储器单元、存储器阵列、页面、块等)以防止未来错误。阵列控制器135可将检测到的ber信息传输到存储器管理器125用于存储及追踪。存储器控制器115可包含追踪从主机接收的存储器命令的命令队列(未展示)。队列中的命令可由存储器控制器115以先进先出(fifo)方式、堆栈方式、无序、根据优先级或以任何其它合适顺序执行。
32.所描述存储器装置110可任选地包含与存储器阵列120相关联的加密电路系统160。在某些实例中,加密电路系统160可包含加密电路、解密电路或其组合。在一些实施方案中,存储器装置110的存储器控制器115可包含经配置以实施加密电路160的功能的控制电路系统。在其它实施方案中,加密电路160可包含用于实施所描述功能性的独立控制电路系统。在又一实施方案中,控制电路系统可在加密电路160与存储器控制器115之间划分,以实施加密电路160的所描述功能。在所描绘实例中,阵列控制器135形成存储器控制器115的一部分,且加密电路160形成阵列控制器的一部分。在其它实施方案中,加密电路160可为外部的及/或在阵列控制器135的外部。举例来说,加密电路160(或其任何个别组件)可为耦合到环境100中的一或多个组件的独立组件。无论物理上如何定位,提供加密电路160的额外功能性的结构用于验证由主机105提供的物理地址,以防止对存储器装置的错误或恶意存取,并在环境100的主机驻留ftl操作期间为主机提供刷新主机驻留映射表信息以将映射信息与存储器装置的映射信息对准的机会。
33.存储器管理器125尤其可包含电路系统或固件,例如与各种存储器管理功能相关联的数个组件或集成电路。出于本描述的目的,将在nand存储器的背景下描述实例存储器操作及管理功能。所属领域的技术人员将认识到,其它形式的非易失性存储器可具有类似存储器操作或管理功能。此类nand管理功能包含损耗均衡(例如,垃圾收集或回收)、错误检测(例如,ber监测)或校正、块引退或一或多种其它存储器管理功能。存储器管理器125可将主机命令(例如,从主机接收的命令)解析或格式化为装置命令(例如,与存储器阵列的操作相关联的命令等),或产生用于阵列控制器135或存储器装置110的一或多个其它组件的装置命令(例如,用以实现各种存储器管理功能)。
34.存储器管理器125可包含一组管理表,其经配置以维持与存储器装置110的一或多个组件相关联的各种信息(例如,与耦合到存储器控制器115的存储器阵列或一或多个存储器单元相关联的各种信息)。举例来说,管理表可包含有关块年限、块擦除计数、错误历史、错误参数信息、主机复位超时值、存储器操作命令延时或一或多个错误计数(例如,写入操作错误计数、读取位错误计数、读取操作错误计数、擦除错误计数等)的信息以用于耦合到存储器控制器115的存储器单元的一或多个块。在某些实例中,如果针对错误计数(例如,错误参数)中的一或多者的所检测到的错误的数目高于阈值(例如,可允许的错误阈值),那么位错误可称为不可校正的位错误。管理表可维持可校正或不可校正位错误的计数等等。
35.在某些实例中,存储器控制器115可包含用于存储存储在存储器阵列的裸片上的ftl表161的一部分的表高速缓存130。在某些实例中,表高速缓存130的存储器比存储器阵列120的存储器更快,并且可辅助更快地响应主机的存储器存取请求。在某些实例中,存储器控制器115可包含随机高速缓存131。下面将论述随机高速缓存的操作,然而,在某些实例中,尤其是在服务于写入请求时,随机高速缓存可存储具有相对少量的非循序写入数据的写入请求的映射信息。高速缓存允许不同的高效操作,尤其是在其中主机维护ftl表的系统中。在此类系统中,随机高速缓存消除用与每一非循序写入操作的每一lba相关联的映射信息替换ftl表高速缓存的需要。举例来说,在没有随机高速缓存的情况下,与具有少量写入数据的每一写入请求相关联的每一写入操作通常要求用存储在存储器阵列120中的ftl表161的不同部分来更新ftl表高速缓存130。对于许多随机写入请求,针对每一请求存取ftl表161可显著促使降低存储器装置性能。
36.存储器阵列120可包含布置在例如数个装置、平面、子块、块或页面中的多个存储器单元。作为一个实例,48gb tlc nand存储器装置可包含每页面18,592个字节的数据(16,384 2208个字节)、每块1536个页面、每平面548个块及每装置4个或更多个平面。作为另一个实例,32gb mlc存储器装置(每单元存储两位数据(即,4个可编程状态))可包含每页面18,592个字节(b)的数据(16,384 2208个字节)、每块1024个页面、每平面548个块及每装置4个平面,但所需写入时间为对应tlc存储器装置的一半且编程/擦除(p/e)周期是对应tlc存储器装置的两倍。其它实例可包含其它数目或布置。在一些实例中,存储器装置或其一部分可选择性地在slc模式或期望的mlc模式(例如tlc、qlc等)中操作。
37.在操作中,数据通常以页面的形式被写入存储器装置110或从其读取并且以块的形式被擦除。然而,根据需要,可在更大或更小群组的存储器单元上执行一或多个存储器操作(例如,读取、写入、擦除等)。存储器装置110的数据转移大小通常被称为页面,而主机的数据转移大小通常被称为扇区或块。
38.不同类型的存储器单元或存储器阵列120可提供不同的页面大小,或可需要与之相关联的不同量的元数据。举例来说,不同存储器装置类型可具有不同位错误率,其可导致确保数据页面的完整性所需的不同量的元数据量(例如,具有较高位错误率的存储器装置与具有较低位错误率的存储器装置相比可能需要更多类型的错误校正码数据)。作为实例,mlc nand快闪装置与对应单电平单元(slc)nand快闪装置相比可具有更高的位错误率。因而,mlc装置与对应slc装置相比可能需要更多的针对错误数据的元数据字节。
39.图2大体上说明根据本标的物的如在例如图1的实例系统的系统中实施的操作存储装置或存储器装置的实例方法的流程图。在201处,可任选地将存储装置的映射信息提供到主机。在一些实例中,映射信息可允许主机至少首先确定数据存储在存储装置的存储器上的位置。在某些实例中,映射信息的部分(例如存储装置的存储器的物理地址)可经加密以防止恶意信息存储在存储装置上。在203处,可在存储器装置处接收存储器存取请求。在某些实例中,存储器请求可包含主机的lba、存储装置的pa、写入数据或其组合。在205处,存储装置的存储器控制器可确定存储器存取请求可为读取存取请求还是写入存取请求。在某些实例中,可通过检视请求的操作代码来进行此确定。当请求被确定为读取请求时,在207处,存储器控制器可处理读取存取请求。在某些实例中,可根据图4的流程图处理读取存取请求。当请求被确定为写入存取请求时,在211处,存储器控制器可将写入数据写入到存储装置的存储器阵列。在某些实例中,将写入数据写入到存储器阵列可包含确定在其处对写入数据进行编程的存储器阵列的位置的物理地址。
40.在213处,可将请求的lba及与在存储器阵列中编程写入数据相关联的pa存储在随机高速缓存中。在某些实例中,当与写入存取命令相关联的写入数据量大于预定阈值时,可根据常规方法处理与写入存取请求及后续编程操作相关联的映射信息,并将其保存在表高速缓存或存储器阵列的完整l2p表中。因而,存储器控制器可将写入数据量与预定阈值进行比较,并当写入数据量小于预定阈值时在213处将lba及pa高速缓存在随机高速缓存中。
41.由于用于表高速缓存及用于随机高速缓存的高速缓存的量都是有限的,因此在215处,可例如通过存储器控制器来评估随机高速缓存是否已满的确定。当随机高速缓存未满时,可将用于额外写入存取请求的映射信息存储在随机高速缓存中,并且流可继续在203处等待及处理来自主机的下一个存储器存取请求。当随机高速缓存已满时,在217刷新随机高速缓存。刷新随机高速缓存可导致随机高速缓存中没有映射信息,并准备好接受与来自主机的后续写入存取请求相关联的映射信息。此外,刷新随机高速缓存可包含将随机高速缓存的映射信息保存在表高速缓存中,保存在存储器阵列中的l2p表中,或者保存在表高速缓存与l2p表的组合中。在某些实例中,可根据图3的流程图执行刷新或处理随机高速缓存。
42.图3大体上说明如上文关于图2的流程图或图1的系统所论述那样处理随机高速缓存的实例方法307的流程图。在321处,可存取随机高速缓存的最早记录。在某些实例中,随机高速缓存可为固定长度,并且可像列表一样被填满,每一新记录可附加到高速缓存/列表的末尾。因而,最早记录可为列表/高速缓存的第一记录并且可具有预定位置。应理解,创建高速缓存及存储记录的其它方法是可能的,使得可识别及存取最早记录,并且此类方法不偏离本标的物的范围。在323处,可评估最早记录lba或将其与表高速缓存的lba进行比较。当最早记录的lba与表高速缓存的lba不匹配时,在325处,可通过首先将表高速缓存保存到存储器阵列的l2p表且接着用存储器阵列的l2p表的不同部分替换表高速缓存的记录来替
换表高速缓存中的l2p表的部分。方法流可返回到323,以验证最早记录的lba与表高速缓存的lba匹配。
43.当随机高速缓存的最早记录的lba与表高速缓存的lba匹配时,在327处,可用随机高速缓存的最早记录的pa更新表高速缓存的对应lba的pa。在某些实例中,在更新表高速缓存的对应记录之后,可将随机高速缓存的最早记录记录、标记或以其它方式指示为无效。
44.在329处,对随机高速缓存进行评估以确定任何记录保留在随机高速缓存中。如果在321处从随机高速缓存检索的随机高速缓存的最早记录是随机高速缓存中的最后一个记录,那么在331处评估随机高速缓存以确定任何有效记录是否保留在随机高速缓存中。如果没有有效记录保留在随机高速缓存中,那么在333处,将表高速缓存保存到存储器阵列中的完整l2p表中。如果在331处,额外有效记录保留在随机高速缓存中,那么所述方法返回到在321处检索最早记录。
45.返回参考在329处的评估,如果最后从随机高速缓存检索的记录不是随机高速缓存中的最后一个记录,那么在335处,检索随机高速缓存中的下一个记录。接着,在337处对所检索记录id进行评估以确定所检索记录的lba是否与表高速缓存的lba匹配。如果所检索记录的lba与表高速缓存的lba匹配,那么在327处用所检索记录的pa更新表高速缓存。如果所检索记录的lba与表高速缓存的lba不匹配,那么暂时忽略所检索记录,并在329处检索下一个记录。
46.一般来说,处理随机高速缓存的方法317操作以识别随机高速缓存中具有表高速缓存中的对应lba的lba,相应地更新表高速缓存的pa,并将表高速缓存保存到存储器阵列中的完整l2p表。如果记录保留在随机高速缓存中,那么检索记录,用对应于所检索记录的lba的完整l2p表的一部分替换表高速缓存,并重复方法317。在处理随机高速缓存的方法316之后,随机高速缓存没有有效记录,并且准备好促进将相对少量的随机写入数据高速写入到存储器阵列。
47.图4大体上说明根据本标的物并与图2的流程图或图1的系统相关的用于处理读取请求的实例方法407的流程图。在441,评估读取请求的读取信息以确定读取请求的lba是否对应于随机高速缓存的lba。如果是,那么在443处,使用随机高速缓存的对应记录的pa从存储器阵列感测读取数据,并将其传输到主机。如果在441处,读取请求的lba与随机高速缓存的lba不匹配,那么在445处,评估读取请求的读取信息以确定读取请求的lba是否对应于表高速缓存的lba。如果读取请求的lba与表高速缓存的lba匹配,那么在447处,使用表高速缓存的对应记录的pa从存储器阵列感测读取数据,并将其传输到主机。
48.如果在445处,读取请求的lba与表高速缓存的lba不匹配,那么在449处,将表高速缓存保存到存储器阵列中的完整l2p表中,并且用对应于读取请求的lba的l2p的新部分替换。方法控制接着返回到评估读取请求信息以在445处确定读取请求的lba是否对应于的表高速缓存的lba。
49.图5说明本文论述的技术(例如,方法)中的一或多者可在其上执行的实例机器500的框图。在替代实施例中,机器500可作为独立装置操作,或者可连接(例如,联网)到其它机器。在联网部署中,机器500可在服务器-客户端网络环境中以服务器机器、客户端机器或两者的身份进行操作。在实例中,机器500可在对等(p2p)(或其它分布式)网络环境中充当对等机器。机器500可为个人计算机(pc)、平板pc、机顶盒(stb)、个人数字助理(pda)、移动电
话、网络器具、iot装置、汽车系统或能够执行指定待由所述机器采取的动作的指令(循序或以其它方式)的任何机器。此外,虽然仅说明单个机器,但是术语“机器”也应被认为包含机器的任何集合,其个别地或共同地执行一组(或多组)指令以执行本文论述的方法中的一或多者,例如云计算、软件即服务(saas)、其它计算机集群配置。
50.如本文所描述,实例可包含逻辑、组件、装置、封装或机构,或者可通过其操作。电路系统是在包含硬件(例如,简单电路、门、逻辑等)的有形实体中实施的电路的集合(例如,组)。电路系统成员资格可能随时间推移以及底层硬件可变性而具有灵活性。电路系统包含可在操作时单独或组合执行特定任务的成员。在实例中,电路系统的硬件可经不变地设计以实行特定操作(例如,硬连线)。在实例中,电路系统的硬件可包含可变地连接的物理组件(例如,执行单元、晶体管、简单电路等),其包含物理地修改(例如,磁性地、电性地、可移动地放置不变质量的粒子等)的计算机可读媒体以对特定操作的指令进行编码。举例来说,在连接物理组件时,硬件组成的底层电性质从绝缘体改变为导体,反之亦然。指令使参与硬件(例如,执行单元或加载机构)能够经由可变连接在硬件中创建电路系统的成员以在操作时实行特定任务的部分。因此,当装置正在操作时,计算机可读媒体通信地耦合到电路系统的其它组件。在实例中,物理组件中的任一者可在一个以上电路系统的一个以上成员中使用。举例来说,在操作式,执行单元可在一个时间点在第一电路系统的第一电路中使用,并且可在不同时间由第一电路系统中的第二电路或第二电路系统中的第三电路重新使用。
51.机器(例如,计算机系统)500(例如,主机105、存储器装置110等)可包含处理装置502(例如,硬件处理器、中央处理单元(cpu)、图形处理单元(gpu)、硬件处理器核心或其任何组合,例如存储器装置110的存储器控制器等)、主存储器504(例如,只读存储器(rom)、快闪驱动器、动态随机存取存储器(dram)(例如同步dram(sdram)或rambus dram(rdram)等)、静态存储器506(例如,快闪驱动器、静态随机存取存储器(sram)等)以及数据存储系统518,其中一些或全部可经由互连链路(例如,总线)530彼此通信。
52.处理装置502表示一或多个通用处理装置,例如微处理器、中央处理单元或类似者。更特定来说,处理装置可为复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器,或者是实施其它指令集的处理器,或者是实施指令集的组合的处理器。处理装置502也可为一或多个专用处理装置,例如专用集成电路(asic)、现场可编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器或类似者。处理装置502可经配置以执行用于执行本文所论述的操作及步骤的指令526。计算机系统500可进一步包含网络接口装置508以通过网络520进行通信。
53.数据存储系统518可包含机器可读存储媒体524(也称为计算机可读媒体),在其上存储体现本文所描述的方法或功能中的任一者或多者的一或多组指令526或软件。在由计算机系统500执行指令526期间,指令526也可全部或至少部分地驻留在主存储器504内或处理装置502内,主存储器504及处理装置502也构成机器可读存储媒体。机器可读存储媒体524、数据存储系统518或主存储器504可对应于图1的存储器装置110。
54.在一个实施方案中,指令526包含用于实施对应于提供上文关于图2、图3和图4论述的高效随机写入操作的功能性的指令。尽管在实例实施方案中将机器可读存储媒体524说明为单个媒体,但是术语“机器可读存储媒体”应被认为包含存储一或多组指令的单个媒体或多个媒体。术语“机器可读存储媒体”也应被认为包含能够存储或编码供机器执行并且
致使机器执行本公开的方法中的任一者或多者的一组指令的任何媒体。因此,术语“机器可读存储媒体”应被认为包含但不限于固态存储器、光学媒体及磁性媒体。在实例中,大容量机器可读媒体包括带有具有不变(例如,静止)质量的多个粒子的机器可读媒体。因此,大容量机器可读媒体不是暂时传播信号。大容量机器可读媒体的特定实例可包含:非易失性存储器,例如半导体存储器装置(例如,电可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom))及快闪驱动器装置;磁盘,例如内部硬盘及可卸除磁盘;磁光盘;以及cd-rom及dvd-rom盘。
55.机器500可进一步包含显示单元、字母数字输入装置(例如,键盘)及用户接口(ui)导航装置(例如,鼠标)。在实例中,显示单元、输入装置或ui导航装置中的一或多者可为触摸屏显示器。机器为信号产生装置(例如扬声器)或一或多个传感器,例如,全球定位系统(gps)传感器、罗盘、加速度计,或一或多个其它传感器。机器500可包含输出控制器,例如串行(例如,通用串行总线(usb)、并行或其它有线或无线(例如,红外(ir)、近场通信(nfc)等)连接以与一或多个外围装置(例如,打印机、读卡器等)通信或控制一或多个外围装置。
56.存储在数据存储装置518上的指令526(例如,软件、程序、操作系统(os)等)或其它数据可由主存储器504存取以供处理装置502使用。主存储器504(例如,dram)通常是快速但易失性的,且因此与数据存储装置518(例如,ssd)的存储类型不同,数据存储装置518适合于长期存储,包含在“关闭”条件中存储。由用户或机器500使用的指令526或数据通常被加载在主存储器504中以供处理装置502使用。当主存储器504已满时,可分配来自数据存储装置518的虚拟空间以补充主存储器504;然而,由于数据存储装置518装置通常比主存储器504慢,并且写入速度通常比读取速度慢至少两倍,因此使用虚拟存储器可由于存储器装置延时而极大地降低用户体验(与主存储器504,例如dram相比)。此外,将数据存储装置518用于虚拟存储器可极大地减少数据存储装置518的可用寿命。
57.与虚拟存储器相比,虚拟存储器压缩(例如,linux
tm
内核特征“zram”)使用存储器的部分作为压缩块存储装置,以避免对数据存储装置518进行页面调度。在压缩块中进行页面调度直到需要将此数据写入数据存储装置518为止。虚拟存储器压缩增加了主存储器504的可用大小,同时减少对数据存储装置518的损耗。
58.针对移动电子装置或移动存储装置优化的存储器装置传统上包含mmc固态存储装置(例如,微型安全数字(microsd
tm
)卡等)。mmc装置包含与主机(例如,主机装置)的数个并行接口(例如,8位并行接口),并且通常是可卸除的且与主机分离的组件。相比之下,emmc
tm
装置附接到电路板并被视为是主机的组件,其读取速度可与基于串行ata
tm
(串行at(高级技术)附件或sata)的ssd装置相媲美。然而,对移动装置性能的需求不断增长,例如以完全启用虚拟装置或增强现实装置,利用不断提高的网络速度等。响应于此需求,存储装置已从并行通信接口转变为串行通信接口。通用快闪存储器存储(ufs)装置(包含控制器及固件)使用具有专用读取/写入路径的低压差分信号(lvds)串行接口与主机通信,从而进一步提高读取/写入速度。
59.指令524可进一步利用数种传送协议(例如,帧中继、因特网协议(ip)、传输控制协议(tcp)、用户数据报协议(udp)、超文本传送协议(http)等)中的任一者经由网络接口装置508使用传输媒体通过通信网络520传输或接收。实例通信网络可包含局域网(lan)、广域网(wan)、分组数据网络(例如,因特网)、移动电话网络(例如,蜂窝网络)、普通老式电话
(pots)网络以及无线数据网络(例如,称为的电气及电子工程师协会(ieee)802.11系列标准、称为的ieee 802.16系列标准)、ieee 802.15.4系列标准、对等(p2p)网络等。在实例中,网络接口装置508可包含一或多个物理插孔(例如,以太网、同轴或电话插孔)或一或多个天线以连接到网络520。在实例中,网络接口装置508可包含多个天线以使用单输入多输出(simo)、多输入多输出(mimo)或多输入单输出(miso)技术中的至少一者进行无线通信。术语“传输媒体”应被认为包含能够存储、编码或携载由机器500执行的指令的任何无形媒体,并且包含数字或模拟通信信号或其它无形媒体以促进此软件的通信。
60.额外注释及实例
61.实例1是一种存储器系统,其包括:存储阵列,其经配置以将经索引映射信息存储在由主机的逻辑块地址索引的多条记录中,其中所述多条记录中的个别记录经配置以保持所述存储阵列的物理地址;第一高速缓存,其经配置以存储所述经索引映射信息的第一连续部分;及第二高速缓存,其经配置以存储所述存储阵列的非经索引映射信息的多条记录,其中非经索引映射信息的所述多条记录中的个别记录经配置以包含所述存储阵列的主机地址及对应物理地址。
62.在实例2中,实例1的标的物包含控制器,其经配置以:将写入数据量与阈值进行比较,所述写入数据与所述主机的相应写入请求相关联;当所述写入数据量超过阈值时,在第一模式中操作所述存储器系统以执行写入操作;及当所述写入数据量不超过所述阈值时,在第二模式中操作所述存储器系统以执行所述写入操作。
63.在实例3中,实例2的标的物包含,其中在所述第二模式期间,所述控制器经配置以:在第一物理地址处将所述写入数据写入到所述存储阵列;将所述第一物理地址存储在所述第二高速缓存的所述非经索引映射信息的第一记录中;及将所述主机的第一逻辑块地址存储在所述第一记录中以提供第一有效记录,所述第一逻辑块地址与所述相应写入请求一起从所述主机接收。
64.在实例4中,实例3的标的物包含,其中,在所述第二模式期间,所述控制器经配置以确定所述第二高速缓存是否充满有效记录;及响应于所述控制器确定所述第二高速缓存已满而清空所述第二高速缓存的有效记录。
65.在实例5中,实例4的标的物包含,其中响应于确定所述第二高速缓存已满,所述控制器经配置以:检索所述第二高速缓存的第二有效记录;及确定所述第二有效记录的逻辑块地址是否与所述第一高速缓存的记录相关联。
66.在实例6中,实例5的标的物包含,其中,当所述第二有效记录的所述逻辑块地址与所述第一高速缓存的所述记录相关联时,所述控制器经配置以:将所述第二有效记录的所述物理地址存储在所述第一高速缓存的所述记录中;及指示所述第二高速缓存的所述第二有效记录是无效记录以提供第二记录。
67.在实例7中,实例5到6的标的物包含,其中,当所述第二有效记录的所述逻辑块地址与所述第一高速缓存的任何记录不相关联时,所述控制器经配置以:用来自所述存储阵列的所述经索引映射信息的第二连续部分替换所述第一高速缓存的所述经索引映射信息的所述第一连续部分,其中所述经索引映射信息的所述第二连续部分包含与所述第二高速缓存的所述第二有效记录的所述逻辑块地址相关联的记录。
68.在实例8中,实例5到7的标的物包含,其中所述第二高速缓存的所述第二有效记录
是所述第二高速缓存的最早有效记录。
69.在实例9中,实例2到8的标的物包含,其中在所述第一模式期间,所述控制器经配置以:在第一物理地址处将所述写入数据写入到所述存储阵列;当所述第一记录与第一逻辑块地址相关联时,更新所述第一高速缓存的所述经索引映射信息的所述第一连续部分的第一记录,所述第一逻辑块地址与所述相应写入请求一起从所述主机接收;及当所述第一高速缓存的所述经索引映射信息的所述第一连续部分不包含关联所述第一逻辑块地址的记录时,用来自所述存储阵列的所述经索引映射信息的第二连续部分替换所述第一高速缓存的所述经索引映射信息的所述第一连续部分,其中所述经索引映射信息的所述第二连续部分包含与所述相应写入请求的所述逻辑块地址相关联的第一记录;及用所述第一物理地址更新所述第一高速缓存的所述经索引映射信息的所述第二连续部分的所述第一记录。
70.实例10是一种方法,其包括:在存储器装置处从主机接收多个写入请求,所述写入请求包含相应逻辑块地址及写入数据;通过相应写入请求将所述写入数据保存到具有相应物理地址的所述存储器装置的位置;当与第一写入请求相关联的写入数据量高于阈值时,在第一模式中操作所述存储器装置;当与第二写入请求相关联的写入数据量低于所述阈值时,在第二模式中操作所述存储器装置;及将所述写入数据量与所述阈值进行比较。
71.在实例11中,实例10的标的物包含用从存储在所述存储器装置内的经索引映射信息的映射表接收的经索引映射信息的第一连续部分填充第一高速缓存,其中所述映射表包含由所述主机的多个逻辑块地址中的一者索引的所述存储器装置的物理地址的记录。
72.在实例12中,实例11的标的物包含,其中在第二模式中操作所述存储器装置包含将所述相应逻辑块地址及所述相应物理地址存储在第二高速缓存的未经索引映射信息的多条记录中的第一记录中以提供所述第二高速缓存的未经索引映射信息的所述多条记录中的第一有效记录。
73.在实例13中,实例12的标的物包含,其中在第二模式中操作所述存储器装置包含确定所述第二高速缓存的所述未经索引映射信息的所述多条记录何时充满有效记录。
74.在实例14中,实例13的标的物包含响应于确定所述第二高速缓存的所述未经索引映射信息的所述多条记录充满有效记录而刷新所述第二高速缓存的所述未经索引映射信息的所述多条记录中的有效记录。
75.在实例15中,实例13到14的标的物包含,其中刷新所述第二高速缓存的未经索引映射信息的所述多条记录包含从所述第二高速缓存的未经索引映射信息的所述多条记录重复检索及处理第二有效记录直到没有有效记录保留在所述第二高速缓存的未经索引映射信息的所述多条记录中。
76.在实例16中,实例15的标的物包含,其中所述处理所述第二有效记录包含:确定所述第二有效记录的逻辑地址是否对应于所述第一连续部分的逻辑地址。
77.实例17是一种机器可读媒体包含,在由机器执行时致使所述机器执行包括以下的操作:在快闪存储器装置处从主机接收写入请求,所述写入请求包含第一逻辑块地址及写入数据;将所述写入数据保存到具有第一物理地址的所述快闪存储器装置的位置;当与所述写入请求相关联的写入数据量高于阈值时,在第一模式中操作所述快闪存储器装置;当写入数据量低于所述阈值时,在第二模式中操作所述快闪存储器装置;及将所述写入数据量与所述阈值进行比较。
78.在实例18中,实例17的标的物包含,其中所述操作包含用从存储在所述快闪存储器装置内的经索引映射信息的映射表接收的经索引映射信息的第一连续部分填充第一高速缓存,其中所述映射表包含由所述主机的多个逻辑块地址中的一者索引的所述快闪存储器装置的物理地址的记录。
79.在实例19中,实例18的标的物包含,其中在第二模式中操作所述快闪存储器装置包含将所述第一逻辑块地址及所述第一物理地址存储在第二高速缓存的未经索引映射信息的多条记录中的第一记录中以提供所述第二高速缓存的未经索引映射信息的所述多条记录中的第一有效记录。
80.在实例20中,实例19的标的物包含,其中在第二模式中操作所述快闪存储器装置包含确定所述第二高速缓存的所述未经索引映射信息的所述多条记录何时充满有效记录。
81.在实例21中,实例20的标的物包含,其中所述操作包含响应于确定所述第二高速缓存的所述未经索引映射信息的所述多条记录充满有效记录而刷新所述第二高速缓存的所述未经索引映射信息的所述多条记录中的有效记录。
82.在实例22中,实例21的标的物包含,其中所述刷新所述第二高速缓存的未经索引映射信息的所述多条记录包含从所述第二高速缓存的未经索引映射信息的所述多条记录重复检索及处理第二有效记录直到没有有效记录保留在所述第二高速缓存的未经索引映射信息的所述多条记录中。
83.在实例23中,实例22的标的物包含,其中所述处理所述第二有效记录包含确定所述第二有效记录的逻辑地址是否对应于所述第一连续部分的逻辑地址。
84.上文具体实施方式包含对形成具体实施方式的一部分的附图的参考。图式通过说明展示其中可实践本发明的特定实施例。这些实施例在本文中也称为“实例”。此类实例可包含除所展示或描述的元件以外的元件。然而,本发明者还考虑其中仅提供所展示或描述的所述元件的实例。此外,本发明者还考虑使用关于特定实例(或其一或多个方面)或关于本文中展示或描述的其它实例(或其一或多个方面)展示或描述的所述元件(或其一或多个方面)的任何组合或排列的实例。
85.在本文件中,如专利文件中常见的术语“一(a/an)”独立于“至少一个”或“一或多个”的任何其它例子或使用,用以包含一个或多于一个。在本文件中,使用术语“或”来指代非排他性或,使得“a或b”可包含“a但非b”、“b但非a”及“a及b”,除非另有指示。在所附权利要求书中,使用术语“包含”及“其中(in which)”作为相应术语“包括”及“其中(wherein)”的简明英语等效物。此外,在所附权利要求书中,术语“包含”及“包括”是开放式的。包含除在权利要求书中在此术语之后列出的元件之外的元件的系统、装置、物品或过程仍被认为落入所述权利要求书的范围内。此外,在所附权利要求书中,术语“第一”、“第二”及“第三”等仅用作标签,且并不希望对其对象强加数字要求。
86.在各种实例中,本文中描述的组件、控制器、处理器、单元、引擎或表可尤其包含存储于物理装置上的物理电路系统或固件。如本文中使用,“处理器”表示任何类型的运算电路,例如但不限于微处理器、微控制器、图形处理器、数字信号处理器(dsp)或任何其它类型的处理器或处理电路,包含处理器群组或多核装置。
87.如本文中使用,操作存储器单元包含从存储器单元读取、写入到存储器单元或擦除存储器单元。将存储器单元置于预期状态的操作在本文中称为“编程”,且可包含写入到
存储器单元或从存储器单元擦除两者(例如,存储器单元可编程到擦除状态)。
88.根据本公开的一或多个实施例,定位于存储器装置内部或外部的存储器控制器(例如,处理器、控制器、固件等)能够确定(例如,选择、设置、调整、运算、改变、清除、传达、调适、导出、定义、利用、修改、应用等)一定数量的损耗周期或损耗状态(例如,记录损耗周期、在存储器装置的操作发生时对其进行计数、追踪其起始的存储器装置的操作、评估对应于损耗状态的存储器装置特性等)。
89.根据本公开的一或多个实施例,存储器存取装置可经配置以针对每一存储器操作向存储器装置提供损耗周期信息。存储器装置控制电路系统(例如,控制逻辑)可经编程以补偿对应于损耗周期信息的存储器装置性能变化。存储器装置可接收损耗周期信息且响应于损耗周期信息而确定一或多个操作参数(例如,值、特性)。
90.本文中描述的方法实例可至少部分为机器、装置或计算机实施的。一些实例可包含编码有指令的计算机可读媒体、装置可读媒体或机器可读媒体,所述指令可操作以配置电子装置以执行如上文实例中所描述的方法。此类方法的实施方案可包含程序代码,例如微程序代码、汇编语言码、较高级语言码或类似者。此代码可包含用于执行各种方法的计算机可读指令。代码可形成计算机程序产品的部分。此外,代码可例如在执行期间或在其它时间有形地存储于一或多个易失性或非易失性有形计算机可读媒体上。这些有形计算机可读媒体的实例可包含但不限于硬盘、可抽换式磁盘、可抽换式光盘(例如,光盘及数字视频光盘)、卡式磁带、存储卡或棒、随机存取存储器(ram)、只读存储器(rom)、固态驱动器(ssd)、通用快闪存储(ufs)装置、嵌入式mmc(emmc)装置及类似者。
91.上文描述希望具说明性而非限制性。举例来说,上述所述的实例(或其一或多个方面)可彼此组合使用。在审阅上文描述后,例如所属领域的一般技术人员可使用其它实施例。在了解上述描述将不用于解释或限制权利要求书的范围或含义的情况下提交所述描述。此外,在上文具体实施方式中,各种特征可集合在一起以简化本公开。此不应被解释为期望未主张的公开特征对任何权利要求来说是必不可少的。而是,本发明标的物可能在于少于特定公开实施例的全部特征。因此,所附权利要求书特此并入具体实施方式中,其中每一权利要求自身作为单独实施例,且考虑此类实施例可以各种组合或排列彼此组合。应参考所附权利要求书连同此类权利要求书被授权的等效物的全范围来确定本发明的范围。
再多了解一些

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

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

相关文献