1.本公开涉及利用非易失性半导体存储器装置内的特定缓冲器来控制数据传送进出存储器阵列的存储器存储系统及方法。
背景技术:2.常规磁盘驱动相比,例如固态硬盘(ssd)的存储器存储系统通常具有更快性能、更紧凑且对振动或物理冲击更不敏感。鉴于这些优点,ssd作为磁盘驱动的替代或补充用于越来越多计算装置及其它消费性产品中,即使是ssd的每千兆字节存储容量成本显著高于磁盘驱动的成本。ssd利用包括非易失性半导体存储装置(例如nand快闪存储器装置)的物理存储器单元来存储数据。控制器在ssd中用于管理主机与ssd的存储器单元之间的数据传送。将数据写入到ssd的物理存储器单元及从ssd的物理存储器单元读取数据通常涉及在ssd外部的主机与非易失性半导体存储装置之间传送数据。
3.ssd在其从主机接收多个读取及写入请求时经受大量数据流量。此类主机请求呈包含逻辑地址信息(例如逻辑块地址(lba)及命名空间标识符(nsid))的命令的形式,ssd将逻辑地址信息转换成非易失性半导体存储装置中的物理地址(例如nand存储器页面地址)。ssd使用物理nand地址履行请求(例如,从非易失性半导体存储装置读取数据)。然而,大量数据来回移动于nand存储器通常需要存储器控制器在nand存储器装置完成其当前活动时临时存储数据,尤其在涉及尚未存储的数据的传送的写入命令的情况中。
4.在此类情况中,存储器控制器使用其内部易失性存储器来临时存储此数据。如果内部易失性存储器的大小不足以保持所传送的数据量,那么视情况采用外部易失性存储器。有效用作缓冲器或高速缓存存储器来管理数据传送进出nand存储器装置的ssd的这些资源的使用降低控制器用此类资源执行其它任务的能力。数据可保持于缓冲器中直到nand存储器装置确认数据的传送及/或编程已成功完成,从而导致大量缓冲器空间被分配且长时间占用。另外,此类内部易失性存储器无法随nand存储器装置的大小而按比例调整。因此,例如,针对高数据速率及大数据传送,需要大量易失性存储器,此增加ssd的成本且给控制器及nand总线带来额外负载。这给如何高效管理涉及存储器存储系统内的大数据传送的读取或编程/写入命令带来挑战。
技术实现要素:5.根据本公开的实施例,提供一种存储器存储系统,其包括非易失性半导体存储器装置,所述非易失性半导体存储器装置包括存储器阵列及多个缓冲器。所述存储器存储系统还包括与所述多个缓冲器通信的控制器。所述控制器经配置以向所述非易失性半导体存储器装置发出一命令以指定其中将传送与所述命令相关的数据有效负载的所述多个缓冲器中的n个缓冲器的子集。在一些实施方案中,当所述命令包括数据移入命令时,所述控制器经配置以将所述数据有效负载从所述控制器传送到n个缓冲器的所述子集。在某些实施方案中,所述控制器进一步经配置以发出媒体写入命令以致使所述非易失性存储器装置将
含于n个缓冲器的所述子集中的数据存储于所述存储器阵列中。在其它实施方案中,当所述命令包括媒体读取命令时,所述控制器经配置以致使所述非易失性存储器装置将所述数据有效负载从所述存储器阵列传送到n个缓冲器的所述子集。在某些实施方案中,所述控制器进一步经配置以发出数据移出命令以将含有n个缓冲器的所述子集中的所述数据有效负载传送到所述控制器。
6.根据本公开的另一实施例,提供一种由存储器存储系统的控制器执行的方法,所述存储器存储系统包括具有存储器阵列及多个缓冲器的非易失性半导体存储器装置、与所述多个缓冲器通信的所述控制器。所述方法包括向所述非易失性半导体存储器装置发出一命令以指定其中将传送与所述命令相关的数据有效负载的所述多个缓冲器中的n个缓冲器的子集。在某些实施方案中,所述方法包括当所述命令包括数据移入命令时,将所述数据有效负载从所述控制器传送到n个缓冲器的所述子集。在另外实施方案中,所述方法进一步包括发出媒体写入命令以致使所述非易失性存储器装置将含于n个缓冲器的所述子集中的数据存储于所述存储器阵列中。在一些实施方案中,所述方法包括当所述命令包括媒体读取命令时,致使所述非易失性存储器装置将所述数据有效负载从所述存储器阵列传送到n个缓冲器的所述子集。在另外实施方案中,所述方法进一步包括发出数据移出命令以将含于n个缓冲器的所述子集中的所述数据有效负载传送到所述控制器。
7.在其它实施方案中,所述控制器经配置以在指定所述多个缓冲器中的n个缓冲器的所述子集时针对n个缓冲器的所述子集中的至少一个缓冲器使用唯一缓冲器标识符。在一些实施方案中,所述控制器经配置以在任一时间发出至少一个命令以致使所述数据有效负载在n个缓冲器的所述子集与所述存储器阵列之间传送。在某些实施方案中,所述非易失性半导体存储器装置进一步包括内部缓冲器的子集及m个缓冲器的子集,两者来自所述多个缓冲器且与所述n个缓冲器分离,且所述控制器经配置以在快完成与在第二命令之前发出的第一命令相关的n个缓冲器的所述子集与所述存储器阵列之间的数据有效负载的传送时将与所述第二命令相关的含于m个缓冲器的所述子集中的数据有效负载传送到所述内部缓冲器。在另外实施方案中,所述非易失性半导体存储器装置进一步包括内部缓冲器的子集及m个缓冲器的子集,两者来自所述多个缓冲器且与所述n个缓冲器分离,且所述控制器经配置以使与第一命令相关的n个缓冲器的所述子集与所述存储器阵列之间的所述数据有效负载的所述传送在完成之前暂停、完成与第二命令相关的m个缓冲器的所述子集与所述存储器阵列之间的数据有效负载的传送及恢复与所述第一命令相关的所述数据有效负载的所述传送。
8.在某些实施方案中,所述第一命令与第一优先级值相关联且所述第二命令与不同于所述第一优先级值的第二优先级值相关联,所述第二优先级值大于所述第一优先级值。在另外实施方案中,所述控制器经配置以使所述控制器与所述多个缓冲器之间的数据有效负载的任何数目个传送与n个缓冲器的所述子集与所述存储器阵列之间的数据有效负载的所述传送并行执行。在某些实施方案中,所述存储器存储系统包括每单元各自存储至少一个位的存储器单元。在其它实施方案中,所述存储器存储系统包括例如单层存储器单元(slc)、伪单层存储器单元(pslc)、多层存储器单元(mlc)、三层存储器单元(tlc)、四层存储器单元(qlc)及可变层存储器单元(vlc)。在一些实施方案中,所述非易失性半导体存储器装置是阵列下cmos(cua)nand半导体存储器。在另外实施方案中,所述控制器包括单芯片系
统(soc)控制器。
9.此外,应注意,虽然本公开已使用cua技术针对具有slc、pslc、mlc、tlc、qlc或vlc存储器阵列的nand存储器存储装置描述,但应理解,本文中公开的系统及方法可适用于任何存储器技术,其中运用用于使数据传送进出存储器阵列的接口缓冲器,例如(但不限于)cua nand存储器、非cua nand存储器、相变存储器(pcm)、磁阻随机存取存储器(mram)及铁电随机存取存储器(feram)。
附图说明
10.将鉴于结合附图的以下详细描述来明白前述及其它目标及优点,在附图中,相同参考符号指代相同部件,且其中:
11.图1展示根据本公开的一或多个实施例配置的例如ssd的存储器存储系统的示意图;
12.图2说明根据本公开的一或多个实施例的图1中的存储器存储系统的控制器与具有存储器阵列及多个缓冲器的非易失性半导体存储器装置之间的交互;
13.图3a到3e说明根据本公开的实施例的由图1中的存储器存储系统的控制器向图2中的非易失性半导体存储器装置发出的示范性缓冲器控制命令序列;及
14.图4是根据本公开的一或多个实施例的用于使用显式缓冲器控制使数据传送进出具有多个页面缓冲器的非易失性半导体存储器装置的方法的流程图。
具体实施方式
15.为了提供本文中描述的系统及方法的全面理解,将描述某些说明性实施例。尽管本文中描述的实施例及特征具体描述为结合具有控制器及具有页面缓冲器的存储器装置的例如ssd的存储器存储系统使用,但应理解,下文概述的所有组件及其它特征可以任何合适方式彼此组合且可适合及应用于具有存储器的其它类型的存储器存储系统架构,其具有高效管理涉及大数据传送进出存储器存储系统的命令的类似需要。
16.三维(3d)nand阵列最近因其提供增加数据处置能力(由于nand平面的垂直堆叠导致紧凑占用面积)而备受关注。与常规nand存储器阵列相比,并入3d nand存储器阵列的存储器装置很快、更高效且消耗更少能量。最新世代的3d nand存储器阵列在nand芯片的接口、命令及控制逻辑电路系统的顶部上构建nand存储器阵列层的垂直堆叠,而非将所述电路系统放置于nand存储器阵列的外围上,此需要比仅nand存储器阵列占据的区域更大的裸片区域。在一些例子中,此接口、命令及控制电路系统利用互补金属氧化物半导体(cmos)技术来导致阵列下cmos(cua)nand存储器装置。此增强型存储器架构向cua nand阵列提供每晶片相对于64层3d nand阵列更多约25%的裸片。cmos逻辑电路系统还通过可比由放置于外围处的电路系统提供的有限大小的缓冲器空间添加cua nand存储器装置的cmos区域中的大量nand页面缓冲器来促进nand架构优化。限制大小以便约束总裸片大小,因此使放置于外围上的电路系统量保持最小,其限制例如存储器装置可提供的缓冲器数或缓冲器空间量。如果缓冲器以cua方式实施,那么nand页面缓冲器数可随nand存储器的大小按比例调整,其中nand页面缓冲器可经配置用于均质使用,视情况改用以满足存储器存储系统的要求。在其中未使用cua技术的一些实施方案中,当多个nand页面缓冲器可用时,仍可运用本
公开中描述的系统及方法。cua nand存储器装置内的nand页面缓冲器的可用性将在处理涉及大数据传送的命令时减轻施加于存储器控制器的易失性存储器上的负担。然而,此大量nand页面缓冲器的管理及控制给如何高效管理存储器存储系统内的数据传送带来挑战。
17.本公开描述用于解决上述挑战且提高ssd编程/写入及读取命令致使数据有效负载来回传送于存储器装置(例如(举例来说)包含cua nand存储器装置的nand存储器装置)的效率的系统及方法。本公开描述用于控制nand存储器装置内的数据传送的控制器实施方案,其中控制器向存储器装置发出一命令,所述命令明确识别其中将传送与命令相关的数据有效负载的nand存储器装置内的多个nand页面缓冲器中的n个nand页面缓冲器的子集。当命令包括数据移入命令时,控制器经配置以将数据有效负载传送到n个nand页面缓冲器的子集。一旦数据移入操作完成,则控制器可进一步经配置以发出媒体写入或编程命令以致使非易失性存储器装置将含于n个nand页面缓冲器的子集中的数据存储于nand存储器阵列中。当命令包括媒体读取命令时,控制器经配置以致使非易失性存储器装置将数据有效负载从nand存储器阵列传送到n个nand页面缓冲器的子集。一旦媒体读取操作完成,则控制器可进一步经配置以发出数据移出命令以将含于n个nand页面缓冲器的子集中的数据有效负载传送到控制器。借此,控制器通过使控制器与页面缓冲器之间的数据移位操作与页面缓冲器与存储器阵列之间的媒体操作分开处置来有效控制往来于nand存储器阵列的数据传送。
18.通过以此方式利用nand存储器装置的nand页面缓冲器,由控制器施加于其内部易失性存储器上的负担(或采用额外外部易失性存储器)在处理涉及大数据有效负载的命令时减小。这是因为cua nand存储器装置具有其中将存储多个命令的数据有效负载的数目增多的缓冲器,使得即使媒体写入/编程命令可仍待决且由命令使用的缓冲器仍在使用,但后续移入/移出命令可将数据放置到其中的其它缓冲器仍可用。此外,如果媒体命令失败,那么命令可被重发,且重用仍含有移入数据的缓冲器,同时仍允许其它命令使用其它缓冲器继续。将移入数据留存于主机缓冲器中及重发移入数据命令的需要得以消除。这允许ssd将增加数据量缓冲于cua nand存储器装置本身内,借此提高nand总线及裸片利用率。另外,由于nand页面缓冲器含于位于存储器阵列下方的接口、命令及控制电路系统内,因此nand页面缓冲器数随nand裸片数按比例调整。此外,数据移位操作与媒体操作的分离简化了本公开的基于控制器的方案的实施。
19.如先前提及,nand页面缓冲器是可用于例如数据移入写入命令、数据移出读取命令、媒体编程/写入命令及媒体读取命令的各种过程的均质缓冲器。在其中运用异质缓冲器的一些实施方案中,可能需要控制器遵守个别缓冲器的限制及特殊要求,但在所有其它方面中,仍可运用本公开中描述的系统及方法。由nand页面缓冲器提供的灵活性因此使其管理更简单,因为几乎没有要考虑的个别特性及限制。ssd控制器及相关联固件具有一队列的若干读取/写入请求且可因此以更大准确度管理及优化多个nand页面缓冲器及cua存储器阵列的使用。例如,此通过经由nand页面缓冲器标识符及nand页面缓冲器状态表将命令分配给特定nand页面缓冲器来实现。这允许控制器控制使用哪些nand页面缓冲器,且准许灵活管理较大集区的缓冲器,尤其当cua nand装置的大小按比例增大时。
20.图1是根据本公开的实施例的包括与固态装置(ssd)120通信的至少一个主机110的计算系统100的框图。主机110是包括处理器或核心、控制器、存储器及所属领域中通常已
知且为简洁起见在图1中未展示的其它组件的计算系统。ssd 120提供非易失性存储功能性供主机110使用。ssd 120可包含包括控制器的集成电路。此集成电路还可称为单芯片系统(soc)控制器130。soc在ssd中是有利的,因为其提供含有ssd运作所需的电子系统的所有所需电路系统及组件的单个集成电路。soc因此无需由多个总线及缓冲器连接的模块化离散组件架构。
21.soc控制器130通信地耦合到作为存储媒体的基于非易失性半导体的存储装置140(虽然为简洁起见展示单个装置,但可存在与控制器130通信地耦合的整个装置阵列,例如基于nand的快闪存储器装置)。存储媒体可包括多个nand装置,例如(举例来说)32、64、128、256个单独nand装置,且每一nand装置可在装置内的个别裸片(未展示)的平面上运行单独命令。作为实例,包括各自具有y个裸片的x个nand装置的存储装置140的阵列可在任一时间服务来自soc控制器130的高达(x
×
y)个命令,其中x及y是大于零的整数。根据本公开的实施例,基于非易失性半导体的存储装置140可包括三维(3d)nand装置,例如阵列下互补金属氧化物半导体(cmos)(cua)存储器装置,如下文将更详细描述。一般来说,cua存储器装置包括垂直构建于存储装置140的接口、命令及控制电路系统144之上的nand平面143的存储器阵列142。在一些实施方案中,接口、命令及控制电路系统144可包括可用于与nand阵列142相关联的多种目的的多个同质nand页面缓冲器145。
22.应注意,本公开应用到具有任何结构的存储器单元,例如(举例来说)单层存储器单元(slc)、伪单层存储器单元(pslc)、多层存储器单元(mlc)、三层存储器单元(tlc)、四层存储器单元(qlc)或可变层存储器单元(vlc)。此外,虽然本公开已使用cua技术针对具有slc、pslc、mlc、tlc、qlc或vlc存储器阵列的nand存储器存储装置描述,但应理解,本文中公开的系统及方法可适用于其中运用用于使数据传送进出存储器阵列的接口缓冲器的任何存储器技术,例如(但不限于)cua nand存储器、非cua nand存储器、相变存储器(pcm)、磁阻随机存取存储器(mram)及铁电随机存取存储器(feram)。
23.ssd 120还包含在soc控制器130外部的易失性存储器,例如动态随机存取存储器(“dram”)150。dram 150包括通常用于在从主机110接收命令之后在主机110与存储装置140之间的读取及写入操作期间缓冲数据的数个缓冲器(未展示)。应注意,不同于存储装置140中的nand页面缓冲器145,dram 150存储器可为了控制器130需要的任何缓冲或临时存储目的而灵活分配及解除分配。
24.易失性存储器结合控制器一起使用,因为其较快且反应迅速。然而,存储于易失性存储器中的内容在断电时丢失。易失性存储器还很贵且因此增加ssd的总成本。在一些实施方案中,整个或部分外部存储器dram 150可位于soc控制器130内。当位于soc控制器130内时,外部存储器的至少一部分可使用快速存储器技术实施,例如静态随机存取存储器(sram)。在一些实施方案中,位于soc 130内的dram的部分可实施为高速缓存。在某些实施方案中,整个或部分外部存储器可使用快速非易失性存储器技术实施,包含(但不限于)磁性随机存取存储器(mram)、电阻随机存取存储器(reram)或相变存储器(pcm)。
25.soc控制器130包括能够与主机110通信以接收例如(举例来说)读取及写入请求的命令的主机接口122。soc控制器130还包含用于经由nand总线与存储装置140通信的nand接口124,nand总线耦合到包括nand阵列142的页面缓冲器145的接口、命令及控制cua电路系统144。此外,soc控制器130包括用于与在soc外部的存储器150通信的(dram)存储器接口
126。例如,soc 130上的主机接口122可包括与(“外围组件接口高速”,下文称为pcie)总线一起操作的串行高级技术附接(sata)连接器或nvme
tm
连接器(nvme
tm
是“nvm高速”的缩略词,其中“nvm”代表非易失性存储器,下文称为nvme)。例如,nand接口124可包括开放nand快闪接口(onfi)、切换nand接口或制造商的专用接口。存储器接口126可包括例如根据(但不限于)以下的接口:双倍数据速率(ddr)存储器总线标准,例如ddr3、ddr4或ddr5;低功率双倍数据速率(lpddr)存储器总线标准,例如lpddr3、lpddr4或lpddr5;混合存储器立方体(hmc)存储器总线标准。
26.soc控制器130可包括各种内部子控制器,例如耦合到主机接口122的nvme控制器132、耦合到存储器接口126的存储器控制器136及耦合到nand接口124的nand控制器138。nvme控制器132可经配置以根据2019年6月10日发布的nvm express
tm
基本规范(版本1.4)(下文称为“nvme 1.4”)运作。nvme控制器132及nand控制器138还可经由数据总线耦合到存储器控制器136。其中可存储或编程ssd 120的各种操作参数的固件134可用于控制nvme控制器132、nand控制器138及存储器控制器136的操作及其间的数据传送。固件134可包括可编程的专用集成电路(asic)逻辑、在一或多个处理器上运行的可编程固件或两者的组合。固件134可包括快闪转译层,其使soc控制器130能够执行促进从主机110接收的读取及写入命令处理的各种活动。一个此活动可包含编排nvme控制器132与nand控制器138之间的命令的数据流。关于图1,固件配置电路134配置及控制这些控制器132、136、138之间的数据的操作及传递。nvme控制器132、存储器控制器136及nand控制器138由共同总线互连且由固件配置功能电路134控制。存储器控制器136经由存储器接口126连接到dram 150。nand控制器138连接到nand接口124以与存储装置140通信,如图1中展示。soc 130与nand阵列142之间的任何交互经由nand控制器138、nand接口124及nand页面缓冲器145发生。
27.一旦nvme控制器132从主机110接收例如(举例来说)读取命令或写入命令的命令,则其利用固件134中的设置将含于主机命令中的逻辑块地址映射到物理nand地址。固件134可利用查找表获得所需nand地址。接着,这些nand地址基于由固件接收或内部产生的主机命令用于nand命令中,其发送到nand控制器138。在cua nand存储器的情况中,nand控制器138确定来自可用于存储器装置140的接口、命令及控制cmos电路144中的多个nand页面缓冲器145的n个缓冲器的特定子集用于在处理命令时使用,其中n是大于零的整数。在一些实施方案中,nand页面缓冲器145中的每一者具有soc 130在处理命令时明确指定的唯一缓冲器标识符。接着,nand控制器138使用nand地址对存储器装置140执行动作或功能,如由主机或内部产生命令(例如废弃项目收集命令)定义。
28.图2展示根据本公开的实施例的用于说明在处理命令时soc控制器130与存储器装置140之间的交互的设置200。当处理命令时,soc控制器130向存储器装置140发出致使在soc控制器130与nand页面缓冲器145之间进行数据移位操作的命令,且向存储器装置140发出致使在存储器阵列142与nand页面缓冲器145之间进行媒体操作的命令。媒体操作可与数据移位操作并行执行。在一些实施方案中,在任一时间执行仅一个媒体操作,同时可发生任何数目个数据移位操作,只要存储器装置140中存在足够页面缓冲器145可用。这是因为完成媒体操作所花费的时间通常比完成数据移位操作所花费的时间更长。举例来说,写入或编程媒体操作通常花费约2毫秒,而数据移位操作通常花费几微秒。
29.在从soc控制器130接收命令之后在存储器装置140内执行的操作的顺序取决于所
处理的命令的性质。举例来说,在从主机110接收读取命令的情况中,nand控制器138发出一或多个读取命令以致使从对应于指定于读取命令中的一或多个逻辑地址的一或多个nand物理地址进行一或多个媒体读取操作。在此,nand控制器138指定含于nand阵列142中的指定nand物理地址处的数据有效负载将传送到其中的n个nand页面缓冲器145。当在存储器阵列142与n个nand页面缓冲器145之间执行媒体读取操作时,存储器装置140还可并行执行与从soc控制器130接收的其它命令相关的soc控制器130与nand页面缓冲器145之间的数据移位操作。一旦一或多个媒体读取操作完成,则nand控制器138发出从含有与来自soc控制器130的一或多个读取命令相关的数据有效负载的n个nand页面缓冲器的数据移出命令用于递送到soc控制器130。如同媒体读取操作,当在n个nand页面缓冲器145与soc控制器130之间执行数据移出操作时,存储器装置140还可并行执行与从soc控制器130接收的其它命令相关的nand页面缓冲器145与nand阵列142之间的媒体操作。
30.作为另一实例,在写入命令的情况中,nand控制器138发出数据移入命令以将数据有效负载从soc控制器130传送到存储器装置40。在此,nand控制器138指定来自soc控制器130的数据有效负载将传送到其中的n个nand页面缓冲器145。当在n个nand页面缓冲器145与soc控制器130之间执行数据移入操作时,存储器装置140还可并行执行与从soc控制器130接收的其它命令相关的nand页面缓冲器145与nand阵列142之间的媒体操作。一旦数据移入操作完成,则nand控制器138发出一命令以致使从含有数据有效负载的n个nand页面缓冲器145到指定于写入命令中的nand物理地址进行媒体写入/编程操作。如同数据移入操作,当在n个nand页面缓冲器145与nand阵列142之间执行媒体写入操作时,存储器装置140可并行执行与从soc控制器130接收的其它命令相关的soc控制器130与nand页面缓冲器145之间的数据移位操作。
31.图3a到3e说明根据本公开的各个实施例的由nand控制器138发出以对具有图1到2中描绘的配置的cua nand存储器装置140执行各种动作的示范性缓冲器控制命令序列300、310、320、330、340。图3a到3e以具有三层存储器单元(tlc)结构的cua nand存储器装置140为例,然而,本公开不限于tlc存储器单元结构。确切来说,本公开可应用到具有多个nand页面缓冲器且具有任何存储器单元结构的nand存储器装置(例如cua nand装置),例如(举例来说)单层存储器单元(slc)、伪单层存储器单元(pslc)、多层存储器单元(mlc)、三层存储器单元(tlc)、四层存储器单元(qlc)或可变层存储器单元(vlc)。在图3a到3e中的每一者中,soc控制器命令合并成按字母排列的群组,其中每一按字母排列的群组内的命令可一起执行。
32.图3a提供根据本公开的实施例的用于编程/写入或高速缓存编程/写入操作的示范性命令序列300。在此,soc控制器130在命令行1到3中发出数据移入写入操作,其中将数据有效负载传送到nand页面缓冲器4、5、6。nand控制器138可从页面缓冲器标识符选择特定nand页面缓冲器。在一些实施方案中,nand控制器138可维持具有状态指示的nand页面缓冲器的有效表以确定任一nand页面缓冲器是否可用于从soc控制器130或从nand存储器阵列142中的物理位置接收数据。应注意,图3a到3e中的示范性命令序列关于tlc存储器单元结构,且因此写入操作将必须在命令行1到3中含有用于tlc单元的三个nand页面(上页面、中间页面及下页面)的数据有效负载,因此含有向三个nand页面缓冲器的传送。一旦用于所有tlc页面的数据有效负载传送到nand页面缓冲器4、5、6,则nand控制器138在命令行4中发出
媒体编程/写入命令,其中将含于nand页面缓冲器4、5、6中的数据有效负载存储于nand阵列142中指定于写入命令中的物理地址处。与命令行4中的媒体编程/写入命令并行,soc控制器130还可在命令行4中的媒体编程/写入命令执行时开始在命令行5到7中发出数据移入命令。命令行5到7中的数据移入命令与其中将有效负载传送到可用nand页面缓冲器(例如nand页面缓冲器0、3、7)的后续写入命令相关。实际上,当命令行4中的当前媒体写入程序执行时,命令行5到7用作高速缓存写入。
33.如先前提及,媒体编程命令通常花费约2毫秒来完成,而数据移位命令通常花费几十微秒来完成。因此,即使在命令行5到7中的数据移入命令完成之后,控制器130在根据命令行8继续后续媒体编程操作之前可能仍必须等待命令行4中的媒体写入命令完成。在此等待时间期间,soc控制器130可通过在soc控制器130与任何可用nand页面缓冲器145之间执行其它数据移位操作来高速缓存更多数据有效负载。
34.在一些实施方案中,soc控制器130可将多个nand页面缓冲器145指定为与图2中展示的nand页面缓冲器0到8分离的内部或专用缓冲器,其可用于将数据有效负载存储于nand页面缓冲器0、7、3中。以此方式,nand页面缓冲器0、7、3可在命令行4中的媒体写入命令完成时清空以用于另外的数据移位操作。如果没有内部缓冲器可用,那么soc控制器130维持nand页面缓冲器0、7、3中的数据而不清空,直到nand阵列142可用于媒体编程/写入。
35.当命令行4中的媒体写入命令完成时,nand控制器138在命令行9中发出媒体编程/写入命令,其中将含于nand页面缓冲器0、3、7中的数据有效负载存储于nand阵列142中指定于写入命令中的物理地址处。根据上文公开内容,与命令行9中的媒体编程命令并行,soc控制器130还可在命令行9中的媒体编程命令执行时在soc控制器130与任何可用nand页面缓冲器145之间执行其它数据移位操作。
36.图3b提供根据本公开的实施例的用于读取或高速缓存读取操作的示范性命令序列320。在此,soc控制器130在命令行1中发出媒体读取命令,其中将存储于指定于来自主机110的读取命令中的nand阵列142中的物理地址处的数据有效负载传送到nand页面缓冲器145。在媒体读取命令中,nand控制器138指定数据有效负载将传送到nand控制器138已将其确定为可用的nand页面缓冲器1。媒体读取命令通常花费约几十微秒来完成,且因此soc控制器130在命令行2中等待与命令行1中的媒体读取操作相关的数据有效负载完全传送到nand页面缓冲器1。尽管命令序列310中未指定,但在此等待时间期间,soc控制器130可通过在soc控制器130与任何可用nand页面缓冲器145之间执行数据移位操作来高速缓存与其它命令相关的数据有效负载。
37.一旦到nand页面缓冲器1的媒体读取完成,则soc控制器130根据命令行3发出用于下一媒体操作的命令,例如到nand页面缓冲器3的媒体读取。再次,媒体读取是针对存储于对应于指定于来自主机110的读取命令中的逻辑地址的nand阵列142中的物理地址处的数据有效负载,且nand控制器138指定数据有效负载将传送到nand控制器138已将其确定为可用的nand页面缓冲器3。与指定于命令行3中的媒体操作并行,soc控制器130还在命令行4中发出从nand页面缓冲器1的数据移位读取命令以将含于其中的数据有效负载传送到soc控制器130用于递送到主机110以便完成致使命令行1中的媒体读取操作的主机读取命令。实际上,命令行3在与含于nand页面缓冲器1中的数据有效负载相关的读取命令执行时用作高速缓存读取。接着,soc控制器130在命令行5中等待与命令行3中的媒体读取操作相关的数
据有效负载完全传送到nand页面缓冲器3。一旦到nand页面缓冲器3的媒体读取完成,则soc控制器130在命令行6中发出从nand页面缓冲器3的数据移出读取命令以将含于其中的数据有效负载传送到soc控制器130用于递送到主机110以便完成致使命令行3中的媒体读取操作的主机读取命令。
38.图3c提供根据本公开的实施例的用于混合编程/写入及读取媒体操作的示范性命令序列330。soc控制器130在命令行1中发出媒体读取命令,其中将存储于对应于指定于来自主机110的读取命令中的逻辑地址的nand阵列142中的物理地址处的数据有效负载传送到nand页面缓冲器145。在媒体读取命令中,nand控制器138指定数据有效负载将传送到nand控制器138已将其确定为可用的nand页面缓冲器1。soc控制器130还在命令行2到3中发出数据移入写入操作,其中将数据有效负载传送到nand页面缓冲器2、3。nand控制器138可从页面缓冲器标识符选择特定nand页面缓冲器。命令行2及3可与命令行1并行执行。接着,soc控制器130在命令行4中等待与命令行1中的媒体读取操作相关的数据有效负载完全传送到nand页面缓冲器1。
39.接着,soc控制器130在命令行5中发出媒体读取命令,其中将存储于指定于读取命令中的nand阵列142中的物理地址处的数据有效负载传送到nand控制器138已将其确定为可用的nand页面缓冲器5。soc控制器130还在命令行6中发出数据移出读取操作,其中来自由命令行1致使的媒体读取操作的含于nand页面缓冲器1中的数据有效负载传送到soc控制器130用于递送到主机110。soc控制器130在命令行7中发出数据移入写入操作,其中将数据有效负载传送到nand页面缓冲器4。命令行6及7可与命令行5并行执行。接着,soc控制器130在命令行8中等待与命令行5中的媒体读取操作相关的数据有效负载完全传送到nand页面缓冲器1。一旦与命令行5中的媒体读取命令相关的数据有效负载传送到nand页面缓冲器5,则soc控制器130在命令行9中发出另一媒体读取命令,其中将存储于指定于读取命令中的nand阵列142中的物理地址处的数据有效负载传送到nand控制器138已将其确定为可用的nand页面缓冲器6,此后,soc控制器130等待从nand阵列142接收于nand页面缓冲器6中的数据有效负载完成(命令行10)。
40.既然用于写入命令的有效负载已在命令行2、3、7中根据数据移入写入命令传送到nand缓冲器页面2、3、4(尽管受其它操作中断),那么nand控制器138在命令行11中发出媒体编程/写入命令,其中将含于nand页面缓冲器2、3、4中的数据有效负载存储于nand阵列142中指定于写入命令中的物理地址处。与媒体编程/写入命令并行,soc控制器130还在命令行11中的媒体编程/写入命令执行时在命令行12、13中发出数据移出读取命令。命令行12、13中的数据移出命令将含于nand页面缓冲器5及6中(两者由命令行5及9中的先前媒体读取操作致使)的数据有效负载传送到soc控制器130。命令行12及13可与命令行10并行执行。图3c示范cua nand存储器装置140如何处置混合编程/写入及读取媒体操作。
41.图3d提供根据本公开的实施例的用于编程暂停操作的示范性命令序列330,其中数据有效负载始终可用于读回。在命令行1到3中,soc控制器130发出数据移入写入操作,其中将数据有效负载传送到nand控制器138已将其确定为可用的nand页面缓冲器2、3、4。一旦所有tlc页面的数据有效负载传送到nand页面缓冲器2、3、4,则nand控制器138在命令行4中发出媒体编程/写入命令,其中将含于nand页面缓冲器2、3、4中的数据有效负载存储于nand阵列142中指定于写入命令中的物理地址处。
42.然而,当处理媒体编程/写入命令时,soc控制器130在命令行5中发出暂停命令来代替媒体读取命令。如先前提及,可在任一时间对nand阵列142仅执行一个媒体操作。此外,来自主机110的读取命令通常被认为比写入命令更重要,因为如果没有来自nand阵列142的请求数据有效负载,主机110将无法继续其操作。这是暂停命令行4中的更不重要媒体写入命令来让位于命令行5中的媒体读取命令的原因。
43.soc控制器130在命令行5中发出媒体读取命令,其中将存储于对应于指定于来自主机110的读取命令中的逻辑地址的nand阵列142中的物理地址处的数据有效负载传送到nand控制器138已将其确定为可用的nand页面缓冲器1。接着,soc控制器130根据命令行6等待到nand页面缓冲器1的媒体读取完成。一旦数据有效负载传送到nand页面缓冲器1,则soc控制器130在命令行7中恢复媒体编程/写入命令,其中恢复将nand页面缓冲器2、3、4中的数据有效负载存储于指定于写入命令中的物理地址处。与命令行7中的媒体编程/写入命令并行,soc控制器130在命令行7中的媒体编程/写入命令执行时在命令行8中发出数据移出读取命令。命令行8中的数据移出命令将含于nand页面缓冲器1中(由命令行6中的先前媒体读取操作致使)的数据有效负载传送到soc控制器130。图3d示范cua nand存储器装置140可如何用于暂停操作且使读取命令的处理优先于写入命令。
44.在一些实施方案中,soc控制器130可将多个nand页面缓冲器145指定为与图2中展示的nand页面缓冲器0到8分离的内部或专用缓冲器,其可用于将数据有效负载存储于nand页面缓冲器2、3、4中,如命令行4中使用。以此方式,nand页面缓冲器2、3、4可在命令行5中的媒体读取命令完成时清空以用于其它数据移位操作中。如果没有内部缓冲器可用,那么soc控制器130维持nand页面缓冲器2、3、4中的数据而不清空其,直到nand阵列142可用于在命令行7中恢复媒体编程/写入。
45.图3e提供根据本公开的实施例的用于在无需暂停操作的情况下使程序的页面的数据移入之间的读取操作优先的示范性命令序列340。soc控制器130在命令行1处发出数据移入写入操作,其中将数据有效负载传送到nand控制器138已将其确定为可用的nand页面缓冲器2。读取操作可开始而不等待编程操作的所有页面的数据移入。在此实例中,在第一页面数据输入之后,soc控制器130在命令行2中发出媒体读取命令,其中将存储于指定于来自主机110的读取命令中的nand阵列142中的物理地址处的数据有效负载传送到nand控制器138已将其确定为也可用的nand页面缓冲器1。
46.soc控制器130还在命令行3中发出数据移入写入命令以将数据有效负载传送到nand缓冲器3,其可与命令行2的读取媒体操作并行进行。接着,在命令行4中,soc控制器检查命令行2中的媒体读取完成且接着发出用于从缓冲器1到控制器130的数据移出读取的命令。在命令行5中,soc控制器发出用于数据移入写入的命令以将数据有效负载传送到nand缓冲器4。应注意,命令行4中从nand缓冲器1的数据移出读取操作插入于命令行3及5中的数据移入读取操作之间。
47.一旦所有tlc页面的数据有效负载经由命令行1、3、5传送到nand页面缓冲器2、3、4,则nand控制器138在命令行6中发出媒体编程/写入命令,其中将含于nand页面缓冲器2、3、4中的数据有效负载存储于nand阵列142中指定于写入命令中的物理地址处。图3e通过改变媒体操作的顺序来消除暂停操作,其中媒体读取操作发生于媒体编程/写入操作之前。
48.图4说明根据本公开的实施例的用于使用显式缓冲器控制将数据传送进出阵列下
cmos(cua)非易失性半导体存储器装置140的方法400的示范性流程图。方法可由ssd120的soc控制器130实施,如前文中关于图1描述。soc控制器130基于从主机110接收的命令或由固件内部产生的命令(例如废弃项目收集)来产生nand命令,其发送到nand控制器138。方法开始于步骤410,其中soc控制器130向非易失性半导体存储器装置140发出与使数据有效负载来回传送于存储器装置140相关的命令。在一些实施方案中,soc控制器130中的nand控制器138明确识别其中将传送与命令相关的数据有效负载的存储器装置140中的n个nand页面缓冲器145。在一些实施方案中,nand页面缓冲器145由nand控制器138已知的唯一缓冲器标识符识别。
49.接着在步骤420中,方法确定来自soc控制器130的命令是包括编程/写入命令还是读取命令。如果命令包括编程/写入命令(即,步骤420中的
‘
否(n)’),那么soc控制器130根据步骤430经由移入写入操作将数据有效负载从soc控制器130传送到n个nand页面缓冲器145的子集。接着在步骤440中,soc控制器130发出媒体编程/写入命令以致使nand存储器装置142将含于n个nand页面缓冲器的子集中的数据有效负载存储于存储器阵列142中指定于原始写入命令中的nand物理地址处。在一些实施方案中,步骤440可省略或在某稍后时间执行,例如,如果需要先执行例如读取命令的较高优先级命令。如果命令包括读取命令(即,步骤420中的
‘
是(y)’),那么soc控制器130根据步骤450致使存储于nand阵列142中指定于来自主机110的原始读取命令中的nand物理地址处的数据有效负载传送到n个nand页面缓冲器145的子集。接着在步骤460中,soc控制器130经由数据移出读取操作将数据有效负载从n个nand页面缓冲器145的子集传送到soc控制器130用于递送到主机110。在一些实施方案中,步骤460可省略或在某稍后时间执行。
50.在前文中,“层”及“引擎”的所有叙述应被视为意味着促进所描述的功能的控制器内的多个电路。此类电路可包括形成于半导体芯片上的电子组件,例如(举例来说)晶体管及电阻器。应注意,前文中的术语“约”或“大约”指示所述值的
±
20%范围。另外,在前文中,“命令”、“动作”或“功能”的所有叙述应被视为基于存储于非暂时性计算机可读媒体上的算法及指令,其在由处理器执行时致使固态硬盘(ssd)的集成电路的控制器执行命令、动作或功能。此外,在前文中,术语“写入”及“编程”可关于命令互换使用且两者涉及将数据有效负载传送到存储器装置中的特定物理地址的功能。关于上文公开内容,存储器阵列包括每单元各自存储n个位的存储器单元,其中n是任何整数。举例来说,针对单层存储器单元(slc),n=1,针对多层存储器单元(mlc),n=2,针对三层存储器单元(tlc),n=3,针对四层存储器单元(qlc),n=4,且针对可变层存储器单元(vlc),n=5。
51.本发明领域的技术人员将明白本发明的各个方面的其它目标、优点及实施例,且其在描述及附图的范围内。举例来说但不限于,可根据本发明重新布置结构或功能元件。类似地,根据本发明的原理可应用到其它实例,其即使未在本文中详细明确描述,但仍在本发明的范围内。