专利名称:包括用于处理多命令描述符块以便利用并发性的主机接口的闪存装置的制作方法
技术领域:
背景技术:
闪存装置可被用作计算机系统(例如,台式机、笔记本计算机、便携式计算机等)或消费装置(例如,音乐播放器、手机、相机等)或其他合适应用的海量存储器。闪存装置可包括一个或更多个闪存(例如,NAND,N0R等)和存取每个闪存的闪存控制器。每个闪存耦合到1/0(输入/输出)总线以及大量的接ロ控制线。当发出程序命令或擦除命令到存储器装置吋,闪存控制器通过I/O总线传递地址和命令数据(以及用于程序操作的写数据)。当发出读命令吋,闪存控制器经I/O总线传输地址和命令数据并经/0总线接收读数据。图IA示出根据合适的通信协议和主机4通信的现有技术闪存装置2。闪存控制器
6包括为读/写命令缓存数据的缓存器8,以及为各种算法执行控制程序的微处理器10,算法比如是逻辑块地址(LBA)到物理块地址(PBA)的映射,损耗均衡(wear leveling),错误纠正码(ECC)等。闪存控制器6还包括和一个或更多个闪存14接ロ的接ロ电路12。接ロ电路12结合执行由微处理器10发起的读/写命令,生成合适的控制信号16并接收来自闪存14的状态信息18。接ロ电路12还经I/O总线20传输和接收数据,包括存储在缓存器8中的读/写数据或微处理器10生成并传输给和闪存14集成在一起的控制器22的命令数据。闪存14包括存储器单元阵列24,其可在被称为页的存储器段中存取。在写操作过程中,经I/O总线20从缓存器8接收的写数据首先存储在数据寄存器26中。然后控制器22将写数据从数据寄存器26传输到存储器阵列24中的目标页。在读操作中,存储器阵列24中的页被读入到数据寄存器26中,然后经I/O总线20传输到其在缓存器8中存储的位置。存在存取时间,其与写操作过程中将存储在数据寄存器26中的写数据编程到存储器阵列24中目标页以及读操作过程中,将来自存储器阵列24中目标页的数据读取到数据寄存器26中有夫。通常返回忙状态到闪存控制器6,直到闪存14完成对存储器阵列24的存取。正如下面更详细的描述,闪存装置2可包括被并发编程(例如,并发的写或读操作)的多个闪存,因而重叠闪存的存取时间并增加闪存装置的呑吐量。图IB示出现有技术闪存装置28,其包含用于实施标准通信协议(例如,多媒体卡(MMC),通用串行总线(USB),通用闪存器(UFS)等)和主机4通信的主机接ロ 30。闪存装置28还包括多个闪存H1-H3,其中每个闪存Hi包含Dl和D2两个装置,并且每个装置都包括存储器阵列24和相应的数据寄存器26。闪存控制器6包含独立的通道32r323 (每个通道都包括控制16、状态18以及I/O总线20,如图IA所示),用于和相应的闪存H1-H3通信。该配置通过采用多个装置和多个通道使得闪存控制器6能执行并发操作来增加吞吐量。例如,闪存控制器6可通过写数据到第一闪存H1的装置Dl和D2中的数据寄存器执行写操作,然后命令第一闪存H1将数据寄存器编程为每个装置的目标页。在第一闪存H1的存取时间期间,闪存控制器6可将更多数据写到第二闪存142的装置Dl和D2中的数据寄存器,然后命令第二闪存142将数据寄存器编程为每个装置的目标页。通过写数据到第三闪存143,还有更多的数据可被处理,以便所有三个闪存的存取时间由于其并发处理其各自的数据而交叠。通过命令多个闪存从其各自的装置并发读取数据,可为读操作实现类似的性能增强
发明内容
图IA示出包含用于存取闪存的闪存控制器的现有技术闪存装置。图IB示出包含用于实施常规通信协议(例如,多媒体卡(MMC),通用串行总线(USB),通用闪存器(UFS)等)的主机接ロ的现有技术闪存装置。
图2A示出根据本发明实施例的闪存装置,其包含可操作用于接收多命令描述符块的主机接ロ,该多命令描述符块包含识别主机正在准备请求的多个存取命令的标识符。图2B是根据本发明实施例的流程图,其中存取命令被分组且然后通过并发存取至少第一和第二闪存而被并发执行。图2C示出根据本发明实施例的多命令描述符块的例子。图2D示出并发存取第一和第二闪存的实施例,其中至少部分存取时间重叠。图3是根据本发明实施例的流程图,其中多命令描述符块识别多个写命令。图4是根据本发明实施例的流程图,其中多命令描述符块识别多个读命令。
具体实施例方式图2A示出包括多个闪存36^363的闪存装置34,所述多个闪存36^303包括第一闪存36i和第二闪存362。闪存控制器38经第一通道40i存取第一闪存36i并经第二通道402存取第二闪存362。主机接ロ 42执行图2B的流程图中所示的操作,其中多命令描述符块是从主机4接收的(步骤46)。多命令描述符块包含识别主机正在准备请求的多个存取命令的标识符(图2C)。选择第一组存取命令用于并发执行,且选择第二组存取命令用于并发执行(步骤48)。通过并发存取至少第一和第二闪存,第一组存取命令被从主机接收并且并发执行(步骤50)。通过并发存取至少第一和第二闪存,第二组存取命令被从主机接收,并且并发执行(步骤52)。本发明的实施例中可采用任何合适的闪存36,比如任何合适的非易失性电可擦除和可编程半导体存储器。市场上找到的典型闪存包括NAND型和NOR型存储器;然而本发明的各方面也适用于现在及未来可用的任何类型的存储器。图2C中总体示出多命令描述符块,但在实践中其可能包括任何合适的格式,该格式包括支持任何合适通信协议的附加字段。在一个实施例,多命令描述符块可作为通信协议的新命令实施或合并在通信协议的现有命令中(即成为现有命令的有效载荷)。在ー个实施例中,存取命令可包括写命令、读命令或擦除命令。闪存装置的用户可以发出擦除命令,从而物理擦除存储在一个或更多个闪存中的数据。在一个实施例中,多命令描述符块可包括不同命令的混合,这些命令包括写和读命令。但是,在允许写和读命令在同一描述符块内的实施例中,存取命令必须以正确的顺序执行,从而确保数据的一致性(即,在存取同一地址时确保在读命令之前执行写命令)。在另ー实施例中,多命令描述符块可以包括写和擦除命令,或读和擦除命令,但不同时包括写和读命令,以便通过避免数据一致性问题而简化实施。在一个实施例中,与闪存36i-363通信的通道4(^-403可分开实施,其具有由闪存控制器38并发编程的能力。该实施例在图2D中图解说明,其中闪存控制器38可对两个或两个以上的通道并发(或同吋)发出存取命令,以便命令时间重叠。在可替换实施例中,通道
可被复用,以便闪存控制器38串行发出存取命令到每个目标闪存。在该实施例中,命令时间不重叠,如图2D中图解说明的。然而,在这两个实施例中,闪存的存取时间(将数据写入到存储器阵列或从存储器阵列读取数据或擦除存储器阵列所需的时间)至少部分重叠,因此闪存至少在部分存取时间被并发存取。
图2C中实施例的多命令描述符块通过延迟执行从主机接收的存取命令有助于提高性能。也就是说,主机接ロ 42评估多命令描述符块中的存取命令,从而确定如何以利用闪存的并发存取的顺序执行命令。例如,当多命令描述符块识别多个读命令时,读命令可被分组,然后被执行,以便可以从闪存36i-363中的两个或更多并发读取数据。对于写命令,为几个写命令缓存写数据,直到接收到足够的数据来允许并发写入闪存36i-363中的两个或更多个。擦除命令也可和读或写命令交错,以便擦除存储在第一闪存中的数据和从第二闪存读数据/写数据到其中。图3是根据本发明实施例的流程图,其中包含多个写命令的多命令描述符块是从主机接收的(步骤54)。写命令被评估并分组,以便通过以能实现并发写入到至少两个闪存的顺序执行写命令而提高呑吐量(步骤56)。在将上述写命令分组后,通知主机发送下一个命令(第一写命令(步骤58)),其可被实施为传输给主机的闪存装置完成处理多命令描述符块的确认。接收针对写命令的写数据,并将其缓冲存在存储器中(步骤60)。然后以下面的方式重复这个过程,即通知主机发送下ー个命令(步骤58),写数据被缓冲存入存储器(步骤60),直到缓冲存入足够的数据足以能够并发写数据(步骤62)。在图3的实施例中,写操作被延迟,直到接收到对应于步骤56中识别的组的足够写命令。在其他实施例中,写操作可以在接收到ー组的所有写命令前开始执行。一旦缓存足够的写数据,闪存中的至少两个被编程从而写入数据到对应存储器阵列(步骤64),如图2D中图解说明的。在图3的实施例中,与存取(写入)闪存中的存储器阵列并发发生的是,针对后续写命令的写数据被从主机转移。也就是说,步骤58和步骤60与步骤64并发执行(直到在步骤66写缓存器满)。如果在步骤66中写缓存器满,则暂停从主机接收写数据的过程,直到在步骤64中,缓存的写数据被写入到闪存中(因而释放写缓存器中的空间)。这个实施例通过重叠从主机接收写数据和将数据并发写到闪存而提升性能(增加吞吐量)。当完成对闪存的当前写操作时(步骤68),这个过程从步骤64开始重复执行,直到写缓存器是空的(步骤70),并且这个过程从步骤58开始重复执行,直到所有写命令被处理(步骤71)。在完成针对最后的写命令的写操作后,闪存装置通知主机关于在多命令描述符块中接收的所有写命令的状态(以及可能已经包含在多命令描述符块中的任何擦除命令的状态)(步骤72)。图4是根据本发明实施例的流程图,其中包含多个读命令的多命令描述符块是从主机接收的(步骤74)。这些读命令被评估并分组,以便通过以能实现从至少两个闪存并发读取的顺序执行读命令而提高呑吐量(步骤76)。然后,至少两个闪存被编程从而从其存储器阵列并发读取数据(步骤78),其中读取的数据缓存在读缓存器中。当完成当前的读操作时(步骤80),这个过程从步骤78开始重复执行,直到所有读命令都已被执行(步骤82)。如果在步骤88读缓存器变满,则从闪存读取数据的过程可被暂停。一旦足够读数据已经缓存在读缓存器中,则通知主机传输下一个存取命令(第一读命令(步骤84)),其可作为传输给主机的闪存装置完成处理多命令描述符块的确认。当从主机接收到读命令时,相应的读取数据被从读缓存器传输给主机(步骤86)。在图4的实施例中,从闪存读取数据和将读数据传输给主机的步骤并发执行。也就是说,步骤84和步骤86与步骤78并发执行(直到在步骤88读缓存器已满)。如果在步骤88读缓存器是满的,则从闪存读取数据的过程暂停,直到在步骤86缓存的读数据被传输给主机(从而释放读缓存器中的空间)。该实施例通过重叠传输读数据给主机以及并发读取来自闪存的数据,提升了性能(増加了呑吐量)。重复步骤84和步骤86,直到在步骤90读缓存器是空的,其中流程图从步骤80开始重复,直到在步骤92最后的读命令已经被处理。闪存装置中的控制电路(例如,图2A的主机接ロ 42和/或闪存控制器38)可包括用于实施本文的流程图的任何合适电路,比如ー个或更多个集成电路。在一个实施例中, 控制电路可包括ー个或更多个微处理器,以便执行控制程序的代码段。在其他实施例中,控制电路可包括专用集成电路(ASIC)中的状态机电路。
权利要求
1.一种闪存装置,其包括 多个闪存,所述多个闪存包括第一闪存和第二闪存; 闪存控制器,用于通过第一通道存取所述第一闪存以及通过第二通道存取所述第二闪存;以及 主机接ロ,其可操作用干 从主机接收多命令描述符块,其中所述多命令描述符块包括识别所述主机正在准备请求的多个存取命令的标识符; 选择第一组存取命令以并发执行,及选择第二组存取命令以并发执行; 从所述主机接收所述第一组存取命令; 通过并发存取至少所述第一和第二闪存,并发执行所述第一组存取命令;· 从所述主机接收所述第二组存取命令;以及 通过并发存取至少所述第一和第二闪存,并发执行所述第二组存取命令。
2.如权利要求I所述的闪存装置,其中 所述第一组存取命令包括第一组写命令;以及 所述第二组存取命令包括第二组写命令。
3.如权利要求2所述的闪存装置,其中所述主机接ロ进ー步可操作用于 从所述主机接收所述第一组写命令,其包括第一写数据;以及 在接收所述第一组写命令和所述第一写数据后,并发地将所述第一写数据写入到至少所述第一和第二闪存中。
4.如权利要求3所述的闪存装置,其中所述主机接ロ进ー步可操作用于从所述主机接收包括第二写数据的所述第二组写命令,并且并发地将所述第一写数据写入到至少所述第一和第二闪存中。
5.如权利要求4所述的闪存装置,其中在将所述第一写数据并发写入到至少所述第一和第二闪存后,所述主机接ロ进ー步可操作用于将所述第二写数据并发写入到至少所述第一和第二闪存中。
6.如权利要求5所述的闪存装置,其中在将所述第二写数据并发写入到至少所述第一和第二闪存后,所述主机接ロ进ー步可操作用于通知所述主机被所述多命令描述符块识别的存取命令的执行状态。
7.如权利要求I所述的闪存装置,其中 所述第一组存取命令包含第一组读命令;以及 所述第二组存取命令包含第二组读命令。
8.如权利要求7所述的闪存装置,其中所述主机接ロ进ー步可操作用于 从至少所述第一和第二闪存并发读取第一数据,其中所述第一数据对应所述第一组读命令; 从所述主机接收所述第一组读命令;以及 将所述第一数据传输到所述主机。
9.如权利要求8所述的闪存装置,其中所述主机接ロ进ー步可操作用于从所述主机接收所述第一组读命令,并且并发地从至少所述第一和第二闪存读取所述第一数据。
10.如权利要求9所述的闪存装置,其中在从至少所述第一和第二闪存并发读取所述第一数据后,所述主机接ロ进ー步可操作用于从至少所述第一和第二闪存并发读取第二数据;以及所述第二数据对应于所述第二组读命令。
11.如权利要求I所述的闪存装置,其中 所述第一组存取命令包括至少ー个写命令;以及 所述第二组存取命令包括至少ー个擦除命令。
12.如权利要求I所述的闪存装置,其中 所述第一组存取命令包括至少ー个读命令;以及 所述第二组存取命令包括至少ー个擦除命令。
13.ー种操作闪存装置的方法,所述闪存装置包括多个闪存以及闪存控制器,所述多个 闪存包括第一和第二闪存,所述闪存控制器用于通过第一个通道存取所述第一闪存和通过第二通道存取所述第二闪存,该方法包括 从主机接收多命令描述符块,其中所述多命令描述符块包括识别所述主机正在准备请求的多个存取命令的标识符; 选择第一组存取命令以并发执行,以及选择第二组存取命令以并发执行; 从所述主机接收所述第一组存取命令; 通过并发存取至少所述第一和第二闪存,并发执行所述第一组存取命令; 从所述主机接收所述第二组存取命令;以及 通过并发存取至少所述第一和第二闪存,并发执行所述第二组存取命令。
14.如权利要求13所述的方法,其中 所述第一组存取命令包括第一组写命令;以及 所述第二组存取命令包括第二组写命令。
15.如权利要求14所述的方法,进ー步包括 从所述主机接收包括第一写数据的所述第一组写命令;以及 在接收所述第一组写命令和第一写数据后,将所述第一写数据并发写入到至少所述第一和第二闪存。
16.如权利要求15所述的方法,进ー步包括从所述主机接收包括第二写数据的所述第ニ组写命令,和并发地将所述第一写数据写入到至少所述第一和第二闪存中。
17.如权利要求16所述的方法,其中在将所述第一写数据并发写入到至少所述第一和第二闪存后,还包括将所述第二写数据并发写入到至少所述第一和第二闪存。
18.如权利要求17所述的方法,在将所述第二写数据并发写入到至少所述第一和第二闪存后,进ー步包括通知所述主机由所述多命令描述符块识别的存取命令的执行状态。
19.如权利要求13所述的方法,其中 所述第一组存取命令包含第一组读命令;以及 所述第二组存取命令包含第二组读命令。
20.如权利要求19所述的方法,进ー步包括 从所述至少第一次和第二闪存并发读取第一数据,其中所述第一数据对应所述第一组读命令; 从所述主机接收所述第一组读命令;以及将所述第一数据传输到主机。
21.如权利要求20所述的方法,进ー步包括从所述主机接收所述第一组读命令,并发地从所述至少第一和第二闪存读取所述第一数据。
22.如权利要求21所述的方法,其中 在从至少所述第一和第二闪存并发读取所述第一数据后,还包括从至少所述第一和第ニ闪存并发读取所述第二数据;以及 所述第二数据对应于所述第二组读命令。
23.如权利要求13所述的方法,其中 所述第一组存取命令包含至少ー个写命令;以及 所述第二组存取命令包含至少ー个擦除命令。
24.如权利要求13所述的方法,其中 所述第一组存取命令包含至少ー个读命令;以及所述第二组存取命令包含至少ー个擦除命令。
全文摘要
本发明涉及包括用于处理多命令描述符块以便利用并发性的主机接口的闪存装置。公开一种闪存装置,其包括经第一通道存取第一闪存和经第二通道存取第二闪存的闪存控制器。多命令描述符块被从主机接收,其中多命令描述符块包括识别主机正在准备请求的多个存取命令的标识符。第一组存取命令被选择用于并发执行以及第二组存取命令被选择用于并发执行。通过并发存取至少第一和第二闪存,第一组存取命令被从主机接收并且并发执行。通过并发存取至少第一和第二闪存,第二组存取命令被从主机接收并且并发执行。
文档编号G11C7/10GK102723099SQ20121008852
公开日2012年10月10日 申请日期2012年3月28日 优先权日2011年3月28日
发明者D·S·苏里亚布迪, M-M·L·许, R·L·霍恩, V·V·威尔金斯 申请人:西部数据技术公司