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

自动字线状态旁路管理的制作方法

2022-07-30 20:41:08 来源:中国专利 TAG:


1.本公开的实施例大体上涉及存储器子系统,且更具体地,涉及自动字线状态旁路功能性的管理。


背景技术:

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


技术实现要素:

3.根据本公开的一方面,提供了一种系统。该系统包括:存储器装置;以及处理装置,其以操作方式与所述存储器装置耦合,用以执行包括以下各项的操作:存取用以将数据编程到所述存储器装置的块中的页的命令;确定所述页是否为所述块中的最后剩余开放页;存取包括一或多个条目的列表,所述一或多个条目中的每一个指示用以对所述存储器装置中的开放块施加读取电平偏移的功能的启用;确定所述列表包含匹配于所述块的条目,所述条目指示用以对所述块施加读取电平偏移的所述功能的启用;基于确定所述页是所述块中的所述最后剩余开放页而停用用以对所述块施加所述读取电平偏移的所述功能;以及将所述命令添加到命令的优先化队列,所述存储器装置以基于指派于每一命令的优先级的次序执行来自所述优先化队列的命令。
4.根据本公开的另一方面,提供了一种方法。该方法包括:由处理装置存取用以将数据编程到存储器装置的块中的页的命令;由所述处理装置确定所述页是否为所述块中的最后剩余开放页;由所述处理装置存取包括一或多个条目的列表,所述一或多个条目中的每一个指示用以对所述存储器装置中的开放块施加读取电平偏移的功能的启用;由所述处理装置确定所述列表包含匹配于所述块的条目,所述条目指示用以对所述块施加读取电平偏移的所述功能的启用;由所述处理装置基于确定所述页是所述块中的所述最后剩余开放页而停用用以对所述块施加所述读取电平偏移的所述功能;以及由所述处理装置将所述命令添加到命令的优先化队列,所述存储器装置以基于指派于每一命令的优先级的次序执行来自所述优先化队列的命令。
5.根据本公开的又一方面,提供了一种计算机可读存储媒体。该计算机可读存储媒体包括指令,所述指令在由处理装置执行时将所述处理装置配置成执行包括以下各项的操作:存取用以将数据编程到存储器装置的块中的页的命令;确定所述页是否为所述块中的最后剩余开放页;存取包括一或多个条目的列表,所述一或多个条目中的每一个指示用以对所述存储器装置中的开放块施加读取电平偏移的功能的启用;确定所述列表包含匹配于所述块的条目,所述条目指示用以对所述块施加读取电平偏移的所述功能的启用;基于确定所述页是所述块中的所述最后剩余开放页而停用用以对所述块施加所述读取电平偏移的所述功能;以及将所述命令添加到命令的优先化队列,所述存储器装置以基于指派于每
一命令的优先级的次序执行来自所述优先化队列的命令。
6.根据本公开的又一方面,提供了一种系统。该系统包括:存储器装置;以及处理装置,其以操作方式与所述存储器装置耦合,用以执行包括以下各项的操作:存取用以从所述存储器装置的块中的页读取数据的命令;确定所述块部分地经编程;确定所述块中的最后写入页不是所述块中的最后剩余开放页;存取包括一或多个条目的列表,所述一或多个条目中的每一个指示用以对所述存储器装置中的开放块施加读取电平偏移的功能的启用;确定所述块是否匹配于所述列表中的条目;基于确定所述块不匹配于所述列表上的任何条目,基于确定所述页是所述块中的所述最后剩余开放页而启用用以对所述块施加所述读取电平偏移的所述功能;以及将所述命令添加到命令的优先化队列,所述存储器装置以基于指派于每一命令的优先级的次序执行来自所述优先化队列的命令。
7.根据本公开的又一方面,提供了一种方法。该方法包括:由处理装置存取用以从存储器装置的块中的页读取数据的命令;由所述处理装置确定所述块部分地经编程;由所述处理装置确定所述块中的最后写入页不是所述块中的最后剩余开放页;由所述处理装置存取包括一或多个条目的列表,所述一或多个条目中的每一个指示用以对所述存储器装置中的开放块施加读取电平偏移的功能的启用;由所述处理装置确定所述块是否匹配于所述列表中的条目;基于确定所述块不匹配于所述列表上的任何条目,由所述处理装置基于确定所述页是所述块中的所述最后剩余开放页而启用用以对所述块施加所述读取电平偏移的所述功能;以及由所述处理装置将所述命令添加到命令的优先化队列,所述存储器装置以基于指派于每一命令的优先级的次序执行来自所述优先化队列的命令。
8.根据本公开的又一方面,提供了一种计算机可读存储媒体。该计算机可读存储媒体包括指令,所述指令在由处理装置执行时将所述处理装置配置成执行包括以下各项的操作:存取用以从存储器装置的块中的页读取数据的命令;确定所述块部分地经编程;确定所述块中的最后写入页不是所述块中的最后剩余开放页;存取包括一或多个条目的列表,所述一或多个条目中的每一个指示用以对所述存储器装置中的开放块施加读取电平偏移的功能的启用;确定所述块是否匹配于所述列表中的条目;基于确定所述块不匹配于所述列表上的任何条目,基于确定所述页是所述块中的最后剩余开放页而启用用以对所述块施加所述读取电平偏移的所述功能;以及将所述命令添加到命令的优先化队列,所述存储器装置以基于指派于每一命令的优先级的次序执行来自所述优先化队列的命令。
附图说明
9.根据下文给出的详细描述和本公开的各个实施例的附图,将更充分地理解本公开。
10.图1说明根据本公开的一些实施例的包含存储器子系统的实例计算系统。
11.图2说明根据本公开的一些实施例的在管理自动字线状态旁路(awlsb)功能中存储器子系统的组件之间的交互。
12.图3和4是说明根据本公开的一些实施例的在存储器子系统中处置编程命令中的awlsb管理的实例方法的流程图。
13.图5是说明根据本公开的一些实施例在存储器子系统中处置读取命令中的awlsb管理的实例方法的流程图。
14.图6是本公开的实施例可在其中操作的实例计算机系统的框图。
具体实施方式
15.本公开的方面是针对包含存储器子系统中的自动字线状态旁路功能性管理的读取干扰管理技术。存储器子系统可以是存储装置、存储器模块,或存储装置和存储器模块的混合。下文结合图1描述存储装置和存储器模块的实例。大体来说,主机系统可利用包含一或多个组件(例如,存储数据的存储器装置)的存储器子系统。主机系统可提供数据以存储于存储器子系统处,且可请求从存储器子系统检索数据。
16.存储器装置可以为非易失性存储器装置。非易失性存储器装置的一个实例是与非(nand)存储器装置。下文结合图1描述非易失性存储器装置的其它实例。例如nand存储器装置等一些存储器装置包含用以存储数据的存储器单元阵列(例如,快闪单元)。每一单元包含晶体管,且在每一单元内,基于单元的逻辑值(例如,0或1)将数据存储为晶体管的阈值电压。这些装置中的存储器单元可以分组为可指代用于存储数据的存储器装置的逻辑单元的页。例如,nand存储器装置中的存储器单元在其控制栅极处水平地连接到字线以形成页。对于一些类型的存储器装置(例如,nand),页经分组以形成块(在本文中也称为“存储器块”)。
17.数据操作可以由存储器子系统执行。数据操作可为主机发起的操作。例如,主机系统可以在存储器子系统上发起数据操作(例如,写入、读取、擦除等)。主机系统可将存取请求(例如,写入命令、读取命令)发送到存储器子系统,以便将数据存储在存储器子系统处的存储器装置上,且从存储器子系统上的存储器装置读取数据。
18.当已在存储器装置内的块的仅一部分上编程数据时,所述块可称为“部分经编程块”或简称为“部分块”或“开放块”。类似地,部分块内的未完全经编程的页可称为“开放页”。这与已完全以数据编程的块或页形成对比,已完全以数据编程的块或页分别称为“完全经编程块”和“完全经编程页”或简称为“关闭块”或“关闭页”。
19.在nand装置中的读取操作期间,读取参考电压施加于单元(例如,施加于晶体管的控制栅极),且用以确定单元是经编程还是擦除,且如果单元经编程,那么基于单元的阈值电压确定所存储值。所施加读取参考电压的电压位置称为“读取电平”。在其中单个单元能够存储多于单个位的多电平单元(mlc)nand装置中,使用不同读取电平来读取每一单元能够存储的不同值。在对部分块的读取操作期间,字线可变为去耦,这可导致从字线中的单元读取降低的电压电平,进而减少下层数据可读取的可靠性。为了解决此问题,存储器子系统经常施加读取电平偏移以改善部分块上的读取感测时间。存储器子系统可使用awlsb功能来施加读取电平偏移以改善部分块上的读取感测时间,进而允许可靠地读取所存储的数据。一旦块完全经编程,则必须停用awlsb功能以移除读取电平偏移;否则无法可靠地检索由块存储的数据,因为读取经编程到块中的数据的尝试返回不可校正错误校正码(uecc)或空页。
20.存储器子系统经常包含多个硬件队列以促进可从主机系统接收的潜在许多数据操作请求的处理。每一队列可具有用以确定执行操作的次序的一或多个优先级。与给定请求相关联的优先级通常是基于请求类型(例如,读取、编程、擦除)。举例来说,第一优先级可指派于读取操作,第二优先级可指派于编程操作,且第三优先级可指派于擦除操作。在此实例中,第一优先级是比第二优先级高的优先级,且第二优先级是比第三优先级高的优先级。
根据此实例,读取操作优先于编程和擦除操作,且编程操作优先于擦除操作。
21.一旦存储器子系统对这些队列添加数据操作命令,存储器装置就负责基于优先级调度排队的请求。然而,由于请求之间不同的优先级,因此存储器装置执行排队操作的次序可不同于存储器子系统预期的次序,这可导致许多竞态条件和回收所存储数据的其它问题。举例来说,针对部分块的读取命令可连同用以启用和稍后停用与部分块相关联的awlsb功能的命令一起添加到队列。然而,针对部分块的一或多个编程命令也可排队,且由于指派于命令的不同优先级,存储器装置可在块已完全经编程之后但在停用awlsb功能之前执行读取操作,进而导致返回空页作为对读取命令的响应。
22.本公开的方面通过确保包含用以从部分块读取数据/对部分块编程数据的命令的命令序列的合适命令执行次序,而解决存储器子系统中的优先化队列中的常规处置的问题。即,本公开的方面呈现用于管理awlsb功能以确保用以从部分块读取数据的命令(包含用以启用或停用awlsb功能的命令)在命令执行序列中跟随在编程命令之后的系统和方法。为了确保此执行次序,当块的最后页完全经编程时移除现有awlsb条目。通过确保命令序列的合适执行次序,在具有优先化排队的存储器系统中的部分经编程块上执行读取操作时可产生的竞态条件被消除,同时仍提供通过经由awlsb功能施加读取电平偏移实现的提高的性能和读取感测时间的益处。
23.图1说明根据本公开的一些实施例的包含存储器子系统110的实例计算系统100。存储器子系统110可包含媒体,例如一或多个易失性存储器装置(例如,存储装置140)、一或多个非易失性存储器装置(例如,存储器装置130)或此类的组合。
24.存储器子系统110可为存储装置、存储器模块,或存储装置和存储器模块的混合。存储装置的实例包含固态驱动器(ssd)、快闪驱动器、通用串行总线(usb)快闪驱动器、嵌入式多媒体控制器(emmc)驱动器、通用快闪存储(ufs)驱动器、安全数字(sd)卡和硬盘驱动器(hdd)。存储器模块的实例包含双列直插式存储器模块(dimm)、小外形dimm(so-dimm),及各种类型的非易失性双列直插式存储器模块(nvdimm)。
25.计算系统100可以是计算装置,例如台式计算机、膝上型计算机、网络服务器、移动装置、运载工具(例如,飞机、无人机、火车、汽车或其它运输工具)、支持物联网(iot)的装置、嵌入式计算机(例如,包含在运载工具、工业设备或联网市售装置中的计算机),或这类包含存储器和处理装置的计算装置。
26.计算系统100可包含耦合到一或多个存储器子系统110的主机系统120。在一些实施例中,主机系统120耦合到不同类型的存储器子系统110。图1说明耦合到一个存储器子系统110的主机系统120的一个实例。如本文中所使用,“耦合到”或“与
……
耦合”通常是指组件之间的连接,其可为间接通信连接或直接通信连接(例如,无介入组件),无论有线或无线,包含例如电、光学、磁性等的连接。
27.主机系统120可包含处理器芯片组和由处理器芯片组执行的软件堆栈。处理器芯片组可包含一或多个核心、一或多个高速缓冲存储器、存储器控制器(例如,nvdimm控制器),和存储协议控制器(例如,外围组件互连高速(pcie)控制器、串行高级技术附件(sata)控制器)。主机系统120使用存储器子系统110,例如,将数据写入到存储器子系统110以及从存储器子系统110读取数据。
28.主机系统120可经由主机接口耦合到存储器子系统110。主机接口的实例包含但不
限于sata接口、pcie接口、usb接口、光纤通道、串行连接的scsi(sas)、小型计算机系统接口(scsi)、双数据速率(ddr)存储器总线、dimm接口(例如,支持双数据速率(ddr)的dimm套接接口)、开放nand快闪接口(onfi)、双数据速率(ddr)、低功率双数据速率(lpddr)或任何其它接口。主机接口可用于在主机系统120与存储器子系统110之间发射数据。当存储器子系统110通过pcie接口与主机系统120耦合时,主机系统120可进一步利用nvm高速(nvme)接口来存取组件(例如,存储器装置130)。主机接口可提供用于在存储器子系统110与主机系统120之间传递控制、地址、数据和其它信号的接口。图1说明存储器子系统110作为实例。一般来说,主机系统120可经由同一通信连接、多个单独通信连接和/或通信连接的组合存取多个存储器子系统。
29.存储器装置130、140可包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可以是但不限于随机存取存储器(ram),例如动态随机存取存储器(dram)和同步动态随机存取存储器(sdram)。
30.非易失性存储器装置(例如,存储器装置130)的一些实例包含nand型快闪存储器和就地写入存储器,例如三维(3d)交叉点存储器装置,其是非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可结合可堆叠交叉网格化数据存取阵列而基于体电阻的改变来进行位存储。另外,与许多基于快闪的存储器对比,交叉点非易失性存储器可执行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。nand型快闪存储器包含(例如)二维nand(2d nand)和3dnand。
31.存储器装置130中的每一个可包含一或多个存储器单元阵列。一个类型的存储器单元,例如单电平单元(slc),可每单元存储一个位。其它类型的存储器单元,例如多电平单元(mlc)、三电平单元(tlc)、四电平单元(qlc)和五电平单元(plc)可每单元存储多个位。在一些实施例中,存储器装置130中的每一个可包含一或多个存储器单元阵列,例如slc、mlc、tlc、qlc或此类存储器单元阵列的任何组合。在一些实施例中,特定存储器装置可包含存储器单元的slc部分,以及mlc部分、tlc部分、qlc部分或plc部分。存储器装置130的存储器单元可分组为页,所述页可指用于存储数据的存储器装置的逻辑单元。例如,nand存储器装置中的存储器单元在其控制栅极处水平地连接到字线以形成页。对于一些类型的存储器(例如,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可包含处理器(处理装置)117,其经配置以执行存储在本地存储器119中的指令。在所示的实例中,存储器子系统控制器115的本地存储器119包含嵌入式存储器,其经配置以存储用于执行控制存储器子系统110的操作(包含处置存储器子系统110与主机系统120之间的通信)的各种过程、操作、逻辑流和例程的指令。
35.在一些实施例中,本地存储器119可包含存储存储器指针、提取的数据等的存储器寄存器。本地存储器119还可包含用于存储微码的rom。虽然在图1中的实例存储器子系统110已说明为包含存储器子系统控制器115,但在本公开的另一个实施例中,存储器子系统110不包含存储器子系统控制器115,而是可依靠外部控制(例如,由外部主机或由与存储器子系统分开的处理器或控制器提供)。
36.通常,存储器子系统控制器115可从主机系统120接收命令或操作,且可将命令或操作转换成指令或适当命令以实现对存储器装置130及/或存储器装置140的所要存取。存储器子系统控制器115可负责其它操作,例如耗损均衡操作、垃圾收集操作、错误检测和ecc操作、加密操作、高速缓存操作以及与存储器装置130相关联的逻辑地址(例如,逻辑块地址(lba)、名称空间)与物理地址(例如,物理块地址)之间的地址转换。存储器子系统控制器115可进一步包含主机接口电路系统以通过物理主机接口与主机系统120通信。主机接口电路系统可将从主机系统120接收到的命令转换成命令指令以存取存储器装置130和/或存储器装置140,且将与存储器装置130和/或存储器装置140相关联的响应转换成用于主机系统120的信息。
37.在一些实施例中,存储器装置130包含本地媒体控制器135,所述本地媒体控制器结合存储器子系统控制器115操作以对存储器装置130的一或多个存储器单元执行操作。
38.存储器子系统110还包含负责管理存储器子系统110内的awlsb功能性的awlsb管理组件113。因此,awlsb管理组件113负责相对于存储器装置130和140启用和停用awlsb功能以对部分块施加或移除读取电平偏移,以确保可以可靠地读取数据。更具体地,awlsb管理组件113确保当在存储器装置130或140中的一个中的部分块处执行读取操作时施加读取电平偏移。另外,awlsb管理组件113确保一旦块变成完全编程则移除读取电平偏移。
39.如将在下文进一步详细论述,存储器子系统控制器115可利用优先化队列执行数据操作命令,这可由于指派于队列命令的不同优先级而引入竞态条件。awlsb管理组件113监视数据操作命令以消除当读取电平偏移施加于稍后变成完全经编程的部分块时可发生的竞态条件。下文参看图2到5论述关于存储器子系统110内的awlsb管理组件113对awlsb功能性的管理的另外细节。
40.在一些实施例中,存储器子系统控制器115包含awlsb管理组件113的至少一部分。举例来说,存储器子系统控制器115可包含处理器117(处理装置),所述处理器经配置以执行存储在本地存储器119中的指令以用于执行本文所描述的操作。在一些实施例中,awlsb管理组件113是主机系统120、应用程序或操作系统的部分。在一些实施例中,本地媒体控制器135包含awlsb管理组件113的至少一部分。
41.图2说明根据本公开的一些实施例的在管理awlsb功能中存储器子系统的组件之间的交互。在图2中说明的实例中,存储器装置130是包含多个存储器块的nand存储器装置。
42.如图所示,nand块200包含页(行)和串(列)的阵列(2d或3d)。每一nand单元包含晶体管,且在每一单元内,基于单元的逻辑值(例如,0或1),将数据存储为晶体管的阈值电压。串在nand块200内连接以允许数据从所选择单元的存储和检索。同一列中的nand单元串联连接以形成位线(bl)。位线中的所有单元在一个末端上连接到共同接地,且在另一末端上连接到共同感测放大器以用于当解码数据时读取单元中的一个的阈值电压。nand单元在其控制栅极处水平地连接到字线(wl)以形成页。页是共享同一字线的连接单元的集合且是编程的最小单位。
43.如上所述,存储器子系统控制器115可从主机系统120接收命令或操作,且可将命令或操作转换为适当命令以实现对存储器装置130的所需存取。存储器子系统控制器115使用多个硬件队列以促进存储器装置130处的命令的执行。举例来说,在图2中说明的实例中,存储器子系统控制器115使用正常优先级队列202和高优先级队列204。高优先级队列204包含用以确定排队操作在存储器装置130处执行的次序的多个优先级。与给定请求相关联的优先级是基于请求类型(例如,读取、编程、擦除)。举例来说,第一优先级可指派于读取操作,第二优先级可指派于编程操作,且第三优先级可指派于擦除操作。在此实例中,第一优先级是比第二优先级高的优先级,且第二优先级是比第三优先级高的优先级。
44.存储器子系统控制器115还维持最后写入页(lwp)列表206以跟踪存储器装置130的每一部分块中的lwp。lwp指代给定块中最近被编程有数据的页,且因此lwp列表206包含用于存储器装置130中的每一部分块的识别对应块中的最近经编程页的条目。可使用逻辑单元号(lun)或可唯一地识别存储器装置130中的页的其它此类识别符来识别lwp。
45.在对部分块的读取操作期间,字线可变为去耦,这会阻碍下层数据被可靠地读取。为了解决此问题,awlsb管理组件113致使将读取电平偏移施加于部分块中的页以改善读取感测时间。如上文参考,存储器子系统控制器115使用awlsb功能以实现读取电平偏移的施加。为了相对于特定lun启用awlsb功能,awlsb管理组件113对awlsb列表208添加条目。因此,awlsb列表208中的每一条目指示启用awlsb功能以向对应lun施加读取电平偏移。
46.一旦块完全经编程,如果awlsb功能仍启用,那么无法可靠地检索由块存储的数据。为了相对于特定lun停用awlsb功能,awlsb管理组件113移除或替换awlsb列表208上的条目。
47.存储器装置130负责基于队列优先级和队列内的优先级而调度排队的命令。由于施加于排队命令的不同优先级,存储器装置执行命令的次序可不同于存储器子系统控制器115预期的次序,从而导致许多竞态条件。在一实例中,块200作为部分块开始。针对块200的最后页的第一读取命令可连同用以启用对块200的最后页施加读取电平偏移的命令(例如,用以启用与部分块相关联的awlsb功能的命令)一起添加到高优先级队列204。用以完全编程块200的编程命令也可连同用以停用对块200的最后页施加读取电平偏移的命令一起排队,因为块将完全经编程。针对块200的第二读取命令可随后添加到高优先级队列204。因为第二读取命令被指派比用以停用对块200的最后页施加读取电平偏移的命令更高的优先级,所以存储器装置130在块200已完全经编程之后但在停用读取电平偏移之前执行第二读取操作,进而导致返回空页作为对第二读取命令的响应。
48.为了避免这些竞态条件,awlsb管理组件113监视从主机系统接收的数据操作请求以确保对启用读取电平偏移的存储器装置130的页不执行读取命令。在这样做时,awlsb管
理组件113按需要更新awlsb列表208以移除用于完全经编程块的现有条目。awlsb管理组件113还用以同步lwp列表206和awlsb列表208。下文参看图3到6论述关于针对具有优先化队列的存储器子系统管理awlsb功能性中的竞态条件的消除的另外细节。
49.图3和4是说明根据本公开的一些实施例的在存储器子系统中处置编程命令中的awlsb管理的实例方法300的流程图。方法300可由可包含硬件(例如,处理装置、电路、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合的处理逻辑执行。在一些实施例中,方法300由图1的awlsb管理组件113执行。尽管以特定顺序或次序来展示过程,但除非另有指定,否则可修改所述过程的次序。因此,应理解,所说明实施例仅为实例,且所说明过程可以不同次序进行,且一些过程可并行地进行。另外,在各个实施例中可以省略一或多个过程。因此,在每个实施例中并不需要所有过程。其它过程流程也是可能的。
50.在操作305处,处理装置存取用以将数据编程到存储器装置(例如,存储器装置130)的块中的页的命令。所述命令可对应于或基于从主机系统接收的将数据编程到存储器装置的请求。数据将经编程到的页可基于由写入指针指定的位置。即,数据将写入到写入指针的当前块的当前页。
51.在操作310处,处理装置确定页(例如,对应于写入指针的当前页)是块中的最后页。即,处理装置确定页是块中的最后剩余开放页且块中的所有其它页完全经编程。
52.处理装置存取用以跟踪存储器装置中的哪些开放页已启用awlsb功能的awlsb列表(例如,awlsb列表208)。即,awlsb列表中的条目识别已启用awlsb功能以向对应开放块施加读取电平偏移的开放页。在操作315处,处理装置确定awlsb列表是否为空。如果处理装置确定awlsb列表为空,那么方法300前进到操作330。
53.如果处理装置确定awlsb列表包含至少一个条目,那么方法前进到操作320,其中处理装置确定awlsb列表上的条目是否匹配于块。即,处理装置确定awlsb是否包含匹配于块的条目。举例来说,处理装置可将块的识别符(例如,lun)与包含于awlsb列表中的识别符(例如,lun)进行比较以识别匹配。
54.在操作325处,处理装置停用与页相关联的awlsb功能。为了停用与页相关联的awlsb功能,处理装置从awlsb列表移除匹配条目且向存储器装置提供相对于当前页停用awlsb功能的命令。存储器装置可维持awlsb列表的本地版本或可以其它方式利用一或多个寄存器以跟踪和指示awlsb功能是否用于特定页。
55.在操作330处,处理装置将编程命令添加到优先化队列(例如,高优先级队列204)。在将编程命令添加到优先化队列时,处理装置将编程命令的优先级设定为第一优先级。第一优先级通常指派于编程命令,且第一优先级是比指派于读取命令的第二优先级低的优先级。
56.一旦命令添加到优先化队列,存储器装置就负责以基于优先级和命令添加到队列的次序的组合确定的次序连同队列中的任何其它命令一起执行命令。
57.如图4所示,在一些实施例中,方法300可包含操作340和345。在操作340处,处理装置检测存储器装置处的数据编程操作的完成。如上文所论述,在存储器子系统的上下文内,维持最后写入页列表(例如,lwp列表206)以跟踪每一开放块中的最近经编程页。响应于检测到编程操作的完成,在操作345处,处理装置从最后写入页列表移除块。
58.图5是说明根据本公开的一些实施例在存储器子系统中处置读取命令中的awlsb管理的实例方法500的流程图。方法500可由可包含硬件(例如,处理装置、电路、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合的处理逻辑执行。在一些实施例中,方法500由图1的awlsb管理组件113执行。尽管以特定顺序或次序来展示过程,但除非另有指定,否则可修改所述过程的次序。因此,应理解,所说明实施例仅为实例,且所说明过程可以不同次序进行,且一些过程可并行地进行。另外,在各个实施例中可以省略一或多个过程。因此,在每个实施例中并不需要所有过程。其它过程流程也是可能的。
59.在操作505处,处理装置存取用以从存储器装置(例如,存储器装置130)的块中的页读取数据的命令。所述命令可对应于或基于从主机系统(例如,主机系统120)接收的将数据编程到存储器装置的请求。在操作510处,处理装置确定块是部分块。即,处理装置确定块仅部分地经编程且未完全经编程。
60.处理识别块中的lwp,且处理装置在操作515处确定块中的lwp是否为块中的最后页。即,处理装置确定lwp是否为块中尚未完全经编程的仅有剩余开放页。处理装置维持lwp列表(例如,lwp列表206)以跟踪存储器装置的每一部分块中的最近经编程页。因此,处理装置通过存取lwp列表且识别列表中对应于块的条目而识别用于块的lwp。
61.如果处理装置确定lwp是块中的最后页,那么方法500前进到操作540,其中处理装置将读取命令添加到高优先级队列而无需进一步处理。如果处理装置确定lwp不是块中的最后页,那么在操作520处,处理装置存取awlsb列表且确定awlsb列表是否为空。
62.如果处理装置确定awlsb列表为空,那么方法前进到操作555,其中处理装置相对于当前页启用awlsb功能。如果处理装置确定awlsb列表包含至少一个条目,那么方法500前进到操作525,其中处理装置确定lwb是否匹配于awlsb列表中的条目。即,处理装置确定awlsb列表是否包含匹配于lwb的条目。举例来说,处理装置可将lwb的识别符(例如,lun)与包含于awlsb列表中的识别符(例如,lun)进行比较以确定是否有任何条目匹配于块。
63.如果处理装置确定awlsb列表不包含匹配于最后写入块的条目,那么方法500前进到操作545,其中处理装置确定awlsb列表是否已满。如果处理装置确定awlsb列表已满,那么处理装置在操作555处启用与页相关联的awlsb功能之前在操作550处识别awlsb列表中的用于替换的条目。如果列表未满,那么处理装置直接前进到操作555。为了启用与块相关联的awlsb功能,那么处理装置在awlsb列表中添加或更新条目且向存储器装置发送相对于当前页启用awlsb功能的命令。在其中列表未满的实例中,处理装置对列表添加条目以启用用于页的awlsb功能。条目包含页的识别符,例如lun。在其中列表已满的实例中,处理装置用识别当前页的经更新条目替换所选条目。
64.如果处理装置确定awlsb列表包含匹配于lwb的条目,那么方法前进到操作530,其中处理装置确定awlsb列表中的条目是否匹配于lwp。如果处理装置识别出awlsb列表中匹配于lwp的条目,那么处理装置前进到在操作540处将读取命令添加到高优先级队列。
65.如果处理装置确定awlsb列表不包含匹配于lwp的条目,那么处理装置在操作535处更新awlsb列表。举例来说,处理装置可基于当前lwp更新匹配于lwb的条目以指示更新lwp。
66.在操作540处,处理装置将读取命令添加到优先化队列(例如,高优先级队列204)。
在将读取命令添加到优先化队列时,处理装置将编程命令的优先级设定为第一优先级。第一优先级通常指派于编程命令,且第一优先级是比通常指派于读取命令的第二优先级低的优先级。
67.一旦命令添加到优先化队列,存储器装置就负责以基于优先级和命令添加到队列的次序的组合确定的次序连同队列中的任何其它命令一起执行命令。
68.主题的所描述的实施方案可包含呈单独或组合形式的一或多个特征。
69.实例1是一种存储器子系统,其包括:存储器装置;以及处理装置,其以操作方式与存储器装置耦合,用以执行包括以下各项的操作:存取用以将数据编程到存储器装置的块中的页的命令;确定页是否为块中的最后剩余开放页;存取包括一或多个条目的列表,所述一或多个条目中的每一个指示用以对存储器装置中的开放块施加读取电平偏移的功能的启用;确定列表包含匹配于块的条目,所述条目指示对块施加读取电平偏移的功能的启用;基于确定页是块中的最后剩余开放页而停用对块施加读取电平偏移的功能;以及将所述命令添加到命令的优先化队列,存储器装置以基于指派于每一命令的优先级的次序执行来自所述优先化队列的命令。
70.实例2包含根据实例1所述的系统,其中所述操作进一步包括:基于响应于命令而执行的编程操作的完成从最后写入页列表移除块,所述最后写入页列表识别存储器装置的每一开放块中的最近经编程页。
71.实例3包含根据实例1或2中的任何一或多个所述的系统,其中将命令添加到优先化队列包括对命令指派优先级。
72.实例4包含根据实例1到3中的任何一或多个所述的系统,其中对命令指派优先级包括对命令指派第一优先级,所述第一优先级与包含于优先化队列中的一或多个编程命令相关联。
73.实例5包含根据实例1到4中任何一或多个所述的系统,其中停用所述功能包括:从列表移除匹配的条目;以及向存储器装置提供相对于块停用功能的命令。
74.实例6是一种方法,其包括:由处理装置存取用以将数据编程到存储器装置的块中的页的命令;由处理装置确定所述页是否为块中的最后剩余开放页;由处理装置存取包括一或多个条目的列表,所述一或多个条目中的每一个指示用以对存储器装置中的开放块施加读取电平偏移的功能的启用;由处理装置确定列表包含匹配于块的条目,所述条目指示用以对块施加读取电平偏移的功能的启用;由处理装置基于确定页是块中的最后剩余开放页而停用用以对块施加读取电平偏移的功能;以及由处理装置将命令添加到命令的优先化队列,存储器装置以基于指派于每一命令的优先级的次序执行来自优先化队列的命令。
75.实例7包含根据实例6所述的方法,其进一步包括:基于响应于命令而执行的编程操作的完成从最后写入页列表移除块,所述最后写入页列表识别存储器装置的每一开放块中的最近经编程页。
76.实例8包含根据实例6或7中任何一或多个所述的方法,其中将命令添加到优先化队列包括对命令指派优先级。
77.实例9包含根据实例6到8中任何一或多个所述的方法,其中对命令指派优先级包括对命令指派第一优先级,所述第一优先级与包含于优先化队列中的一或多个编程命令相关联。
78.实例10包含根据实例6到10中任何一或多个所述的方法,其中停用所述功能包括:从列表移除匹配的条目;以及向存储器装置提供相对于块停用功能的命令。
79.实例11是一种包括指令的计算机可读存储媒体,所述指令当由处理装置执行时配置处理装置以执行包括以下各项的操作:存取用以将数据编程到存储器装置的块中的页的命令;确定页是否为块中的最后剩余开放页;存取包括一或多个条目的列表,所述一或多个条目中的每一个指示用以对存储器装置中的开放块施加读取电平偏移的功能的启用;确定列表包含匹配于块的条目,所述条目指示用以对块施加读取电平偏移的功能的启用;基于确定页是块中的最后剩余开放页而停用用以对块施加读取电平偏移的功能;以及将命令添加到命令的优先化队列,存储器装置以基于指派于每一命令的优先级的次序执行来自优先化队列的命令。
80.实例12包含根据实例11所述的计算机可读存储媒体,其进一步包括:基于响应于命令而执行的编程操作的完成从最后写入页列表移除块,所述最后写入页列表识别存储器装置的每一开放块中的最近经编程页。
81.实例13包含根据实例11和12中的任一个所述的计算机可读存储媒体,其中将命令添加到优先化队列包括对命令指派优先级。
82.实例14包含根据实例11到13中的任一个所述的计算机可读存储媒体,其中对命令指派优先级包括对命令指派第一优先级,所述第一优先级与包含于优先化队列中的一或多个编程命令相关联。
83.实例15包含根据实例11到14中的任一个所述的计算机可读存储媒体,其中停用所述功能包括:从列表移除匹配的条目;以及向存储器装置提供相对于块停用功能的命令。
84.实例16是一种系统,其包括:存储器装置;以及处理装置,其以操作方式与存储器装置耦合,用以执行包括以下各项的操作:存取用以从存储器装置的块中的页读取数据的命令;确定块部分地经编程;确定块中的最后写入页不是块中的最后剩余开放页;存取包括一或多个条目的列表,所述一或多个条目中的每一个指示用以对存储器装置中的开放块施加读取电平偏移的功能的启用;确定块是否匹配于列表中的条目;基于确定块不匹配于列表上的任何条目,基于确定页是块中的最后剩余开放页而启用用以对块施加读取电平偏移的功能;以及将命令添加到命令的优先化队列,存储器装置以基于指派于每一命令的优先级的次序执行来自优先化队列的命令。
85.实例17包含根据实例16所述的系统,其中启用所述功能包括:对列表添加包含与块相关联的识别符的条目;以及向存储器装置提供相对于块启用功能的命令。
86.实例18包含根据实例16或17中的任一个所述的系统,其中所述操作进一步包括:选择列表中用于替换的第一条目;其中启用功能包括以对应于块的第二条目替换第一条目。
87.实例19包含根据实例16到18中的任一个所述的系统,其中所述操作进一步包括:基于确定块匹配于列表上的条目,更新列表上的条目。
88.实例20包含根据实例16到19中的任一个所述的系统,其中将命令添加到优先化队列包括对命令指派优先级。
89.实例21包含根据实例16到20中的任一个所述的系统,其中对命令指派优先级包括对命令指派第一优先级,所述第一优先级与包含于优先化队列中的一或多个编程命令相关
联。
90.实例22是一种方法,其包括:由处理装置存取用以从存储器装置的块中的页读取数据的命令;由处理装置确定块部分地经编程;由处理装置确定块中的最后写入页不是块中的最后剩余开放页;由处理装置存取包括一或多个条目的列表,所述一或多个条目中的每一个指示用以对存储器装置中的开放块施加读取电平偏移的功能的启用;由处理装置确定块是否匹配于列表中的条目;基于确定块不匹配于列表上的任何条目,由处理装置基于确定页是块中的最后剩余开放页而启用用以对块施加读取电平偏移的功能;以及由处理装置将命令添加到命令的优先化队列,存储器装置以基于指派于每一命令的优先级的次序执行来自优先化队列的命令。
91.实例23包含根据实例22所述的方法,其中启用功能包括:向列表添加包含与块相关联的识别符的条目;以及向存储器装置提供用以相对于块启用功能的命令。
92.实例24包含根据实例22或23所述的方法,其进一步包括选择列表中用于替换的第一条目;其中启用功能包括以对应于块的第二条目替换第一条目。
93.实例25包含根据实例22到24所述的方法,其中所述操作进一步包括:基于确定块匹配于列表上的条目,更新列表上的条目。
94.实例26包含根据实例22到25所述的方法,其中将命令添加到优先化队列包括对命令指派优先级。
95.实例27包含根据实例22到26所述的方法,其中对命令指派优先级包括对命令指派第一优先级,所述第一优先级与包含于优先化队列中的一或多个编程命令相关联。
96.实例28是一种包括指令的计算机可读存储媒体,所述指令当由处理装置执行时配置处理装置以执行包括以下各项的操作:存取用以从存储器装置的块中的页读取数据的命令;确定块部分地经编程;确定块中的最后写入页不是块中的最后剩余开放页;存取包括一或多个条目的列表,所述一或多个条目中的每一个指示用以对存储器装置中的开放块施加读取电平偏移的功能的启用;确定块是否匹配于列表中的条目;基于确定块不匹配于列表上的任何条目,基于确定页是块中的最后剩余开放页而启用用以对块施加读取电平偏移的功能;以及将命令添加到命令的优先化队列,存储器装置以基于指派于每一命令的优先级的次序执行来自优先化队列的命令。
97.实例29包含根据实例28所述的计算机可读存储媒体,其中启用功能包括:对列表添加包含与块相关联的识别符的条目;以及向存储器装置提供用以相对于块启用功能的命令。
98.实例30包含根据实例28和29中的任何一或多个所述的计算机可读存储媒体,其中所述操作进一步包括:选择列表中用于替换的第一条目;其中启用功能包括以对应于块的第二条目替换第一条目。
99.图6说明呈计算机系统600形式的实例机器,在其内可执行指令集以致使所述机器执行本文中论述的方法中的任何一或多个。在一些实施例中,计算机系统600可对应于主机系统(例如,图1的主机系统120),其包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110)或可用以执行控制器的操作(例如,执行操作系统以执行对应于图1的awlsb管理组件113的操作)。在替代实施例中,所述机器可以连接(例如,联网)到局域网(lan)、内联网、外联网和/或因特网中的其它机器。机器可作为对等(或分布式)网络环境中的对等机器
或作为云计算基础设施或环境中的服务器或客户端机器而以客户端-服务器网络环境中的服务器或客户端机器的容量进行操作。
100.所述机器可为个人计算机(pc)、平板pc、机顶盒(stb)、个人数字助理(pda)、蜂窝电话、网络器具、服务器、网络路由器、交换机或桥接器,或能够执行(循序或以其它方式)指定待由所述机器采取的动作的指令集的任何机器。另外,尽管说明单个机器,但还应认为术语“机器”包含机器的任何集合,所述集合单独地或共同地执行一(或多)个指令集以进行本文中所论述的方法中的任何一或多种。
101.实例计算机系统600包含经由总线630彼此通信的处理装置602、主存储器604(例如,rom、快闪存储器、例如sdram或rdram的dram,等)、静态存储器606(例如,快闪存储器、静态随机存取存储器(sram)等)以及数据存储系统618。
102.处理装置602表示一或多个通用处理装置,例如微处理器、中央处理单元等等。更具体地,处理装置602可以是复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器、或实施其它指令集的处理器或实施指令集的组合的处理器。处理装置602也可以是一或多个专用处理装置,例如asic、fpga、数字信号处理器(dsp)、网络处理器等。处理装置602经配置以执行用于执行本文中所论述的操作和步骤的指令626。计算机系统600可进一步包含网络接口装置608以通过网络620进行通信。
103.数据存储系统618可包含机器可读存储媒体624(也称为计算机可读媒体),其上存储有一或多个指令集626或体现本文中所描述的方法或功能中的任一或多种的软件。指令626还可在由计算机系统600执行期间完全或至少部分地驻留在主存储器604内和/或处理装置602内,主存储器604和处理装置602也构成机器可读存储媒体。机器可读存储媒体624、数据存储系统618和/或主存储器604可对应于图1的存储器子系统110。
104.在一个实施例中,指令626包含用以实施对应于数据销毁组件(例如,图1的awlsb管理组件113)的功能性的指令。尽管在实例实施例中机器可读存储媒体624展示为单个媒体,但是应认为术语“机器可读存储媒体”包含存储一或多组指令的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或编码供机器执行的指令集合且致使机器执行本公开的方法中的任何一种或多种的任何媒体。因此,应认为术语“机器可读存储媒体”包含但不限于固态存储器、光学媒体和磁性媒体。
105.已在针对计算机存储器内的数据位的操作的算法和符号表示方面呈现了先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用以将其工作的主旨最有效地传达给所属领域的其他技术人员的方式。在本文中,且一般将算法构想为产生所要结果的操作的自洽序列。操作是要求对物理量进行物理操纵的操作。通常(但未必),这些量采用能够存储、组合、比较以及以其它方式操纵的电或磁信号的形式。已经证实,主要出于常用的原因,将这些信号称为位、值、元素、符号、字符、项、编号等等有时是便利的。
106.然而,应牢记,所有这些和类似术语将与适当物理量相关联,且仅仅为应用于这些量的便利标记。本公开可以指将计算机系统的寄存器和存储器内的表示为物理(电子)数量的数据操控和变换为计算机系统存储器或寄存器或其它这类信息存储系统内的类似地表示为物理数量的其它数据的计算机系统或类似电子计算装置的动作和过程。
107.本公开还涉及用于执行本文中的操作的设备。此设备可以出于既定目的而专门构造,或其可包含由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。
此类计算机程序可存储在计算机可读存储媒体中,例如但不限于任何类型的盘(包含软盘、光盘、cd-rom和磁性光盘)、rom、ram、eprom、eeprom、磁卡或光卡,或适合于存储电子指令的任何类型的媒体,其各自耦合到计算机系统总线。
108.本文中呈现的算法和显示器在本质上并不与任何特定计算机或其它设备相关。各种通用系统可以与根据本文中的教示的程序一起使用,或所述通用系统可以证明为便于构造以用以执行所述方法更加专用的设备。将如下文描述中所阐述的那样来呈现各种这些系统的结构。另外,未参考任何特定编程语言来描述本公开。应了解,可使用各种编程语言来实施如本文中所描述的本公开的教示内容。
109.本公开可提供为计算机程序产品或软件,其可包含在其上存储有可用于编程计算机系统(或其它电子装置)以进行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机制。在一些实施例中,机器可读(例如,计算机可读)媒体包含例如rom、ram、磁盘存储媒体、光学存储媒体、快闪存储器部件等机器(例如,计算机)可读存储媒体。
110.在前述说明书中,本公开的实施例已经参照其特定实例实施例进行描述。应显而易见的是,可在不脱离如所附权利要求书中阐述的本公开的实施例的更广范围的情况下对本公开进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书及图式。
再多了解一些

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

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

相关文献