管理用于非易失性存储器的传输缓冲器的制作方法

文档序号:14718676发布日期:2018-06-16 23:26阅读:215来源:国知局

本申请主张对美国申请号14/140,919的优先权,其提交于2013年12月26日且题为“MANAGINGATRANSFERBUFFERFORANON-VOLATILEMEMORY(管理用于非易失性存储器的传输缓冲器)”,据此在本文中以其整体通过引用将其并入。

技术领域

本发明的实施例一般地涉及存储器的技术领域。特殊的实施例涉及管理与非易失性存储器相关联的传输缓冲器。



背景技术:

本文中提供的背景描述是为了一般地呈现本公开上下文的目的。目前所指名的发明者的工作(在目前所指名的发明者的工作在该背景部分中被描述方面来说)以及可能在提交时不另外看作现有技术的描述的方面既不明确地也不暗示性地被承认为对照本公开的现有技术。除非在本文中另外指示,否则在本部分中描述的方法对在本公开中的权利要求来说不是现有技术,并且不因包括在本部分中而被承认为现有技术。

许多固态驱动器(SSD)使用诸如NAND闪存存储器的非易失性存储器,其中必须在向一块存储器资源写入新数据之前擦除该块存储器资源。因此,必须周期性地执行垃圾收集以清除非易失性存储器的碎片并释放多块存储器资源用于新数据的储存。在垃圾收集期间,将仍为有效数据的在非易失性存储器的一块存储器资源中存储的数据分组成页,这些页被从存储器读取、存储在传输缓冲器中、并然后被重新写入到存储器。然后擦除该块存储器资源。然而,可能延迟针对所述页的一些数据的读取操作。

附图说明

通过连同附图的以下详细描述将容易地理解实施例。为了促进本描述,相似的参考数字指定相似结构的元素。在附图的图中以示例的方式而不是以限制的方式图解实施例。

图1根据各种实施例图解包括存储器控制器和非易失性存储器的示例存储器系统。

图2根据各种实施例图解用于在非易失性存储器上执行垃圾收集的示例方法。

图3根据各种实施例图解被配置成使用本文中描述的装置和方法的示例系统。

具体实施方式

在以下详细描述中,参考形成其一部分的附图,其中通篇相似的数字指定相似的部分,并且其中以可以被实践的例证实施例的方式示出。要理解的是,可以利用其它实施例并且可以进行结构上或逻辑上的改变而不脱离本公开的范围。因此,以下详细描述不是在限制性意义上被获得,并且由随附的权利要求和它们等价来限定实施例的范围。

可以以最有助于理解所主张的主题的方式将各种操作描述为依次的多个分立的动作或操作。然而,不应将描述的顺序解释为暗示这些操作必然地为依赖于顺序的。特别地,可以不以呈现的顺序执行这些操作。可以以不同于所描述的实施例的顺序执行所描述的操作。可以执行各种另外的操作和/或可以在另外的实施例中省略所描述的操作。

为了本公开的目的,短语“A和/或B”和“A或B”的意思是(A)、(B)、或(A和B)。为了本公开的目的,短语“A、B、和/或C”的意思是(A)、(B)、(C)、(A和B)、(A和C)、(B和C)、或(A、B和C)。

描述可以使用短语“在一个实施例中”、或“在多个实施例中”,其可以每一个都指的是相同或不同的实施例中的一个或多个。另外,如关于本公开的实施例使用的术语“包含”、“包括”、“具有”等是同义的。

如在本文中使用的那样,术语“模块”可以指的是为执行一个或多个软件或固件程序的专用集成电路(ASIC)、电子电路、处理器(共享、专用、或组)和/或存储器(共享、专用、或组)、组合逻辑电路、和/或提供所描述的功能性的其它适当的硬件组件的一部分、或包括执行一个或多个软件或固件程序的专用集成电路(ASIC)、电子电路、处理器(共享、专用、或组)和/或存储器(共享、专用、或组)、组合逻辑电路、和/或提供所描述的功能性的其它适当的硬件组件。如在本文中使用的那样,“计算机实现的方法”可以指的是由一个或多个处理器、具有一个或多个处理器的计算机系统、诸如智能电话的移动设备(其可以包括一个或多个处理器)、平板、膝上型计算机、机顶盒、游戏控制台等执行的任何方法。

图1根据各种实施例图解存储器系统100。在一些实施例中,存储器系统100可以实现固态驱动器(SSD)。存储器系统100可以包括存储器控制器102、非易失性存储器104、和主机接口106。

非易失性存储器104可以实现任何适当形式的非易失性存储器。例如在一些实施例中,非易失性存储器104可以包括NAND闪存存储器。在其它实施例中,存储器设备104可以包括另一类型的存储器,诸如相变存储器(PCM)、三维交叉点存储器阵列、电阻存储器、纳米线存储器、铁电晶体管随机存取存储器(FeTRAM)、并入忆阻器技术的磁阻随机存取存储器(MRAM)、自旋传输矩(spintransfertorque,STT)-MRAM等。在一些实施例中,非易失性存储器104可以包括多个存储器方块。

存储器控制器102可以控制将数据写入非易失性存储器104和/或从非易失性存储器104读取数据。主机接口106可以与主机设备(例如,处理器,未示出)对接以允许该主机设备经由存储器控制器102将数据写入到非易失性存储器104和/或从非易失性存储器104读取数据。主机接口106可以使用一个或多个通信接口协议与主机设备通信,所述一个或多个通信接口协议诸如串行高级技术附件(SATA)、外围组件互连快速(PCIe)、串行附着SCSI(SAS)、和/或通用串行总线(USB)接口。

在一些实施例中,可以在相同的封装中包括存储器控制器102、非易失性存储器104、和主机接口106。例如,可以将存储器控制器102、存储器设备104、和主机接口106部署在相同的印刷电路板上。

在各种实施例中,存储器控制器102可以包括至少如所示出的那样被耦合到彼此的控制器逻辑108、传输缓冲器110、和间接表112。间接表112可以指示数据在非易失性存储器104中的位置。间接表112可以包括多个数据指针,其中每个指针包括数据的识别符和其中所识别的数据被存储在非易失性存储器104中的位置。

在各种实施例中,可以将存储在非易失性存储器104中的数据组织成页,其中每页包括多个数据扇区。页可以对应于控制器逻辑104能够写入到非易失性存储器104的数据粒度,并且扇区可以对应于由间接表112使用的用于指示数据在非易失性存储器104中的位置的数据粒度。扇区和/或页可以是任何适当的尺寸的。在一个非限制性实施例中,一页可以包括四个扇区。例如,一页可以是16千字节(KiB)并且一扇区可以是4KiB。

在各种实施例中,传输缓冲器110可以包括任何适当类型的存储器,诸如静态随机存取存储器(SRAM)。如下面进一步讨论的那样,传输缓冲器可以在传输缓冲器110的分别的槽中存储数据扇区作为垃圾收集过程的部分。

在各种实施例中,必须在向非易失性存储器104的存储器资源写入新数据之前擦除所述存储器资源。然而,可以仅在包括多个页的非易失性存储器104的存储器资源块中擦除非易失性存储器104的存储器资源。

因此,非易失性存储器104可以包括无效数据(例如,间接表112不再包括到其的有效数据指针的数据)。例如如果将更新的数据写入到非易失性存储器、和/或如果数据是由不再运行的主机设备的过程生成的临时数据,那么数据可以变成无效。在一些实施例中,间接表112可以指示除了有效扇区外无效扇区在非易失性存储器104中的位置。间接表112可以附加地或替换地包括指示不包括数据(并且因此可用于新数据的储存)的非易失性存储器的块的空闲列表。

在各种实施例中,控制器逻辑108可以执行垃圾收集过程以擦除无效数据并释放非易失性存储器104的存储器资源。作为垃圾收集过程的部分,控制器逻辑108可以识别包括在非易失性存储器104中存储的多个扇区的数据块的被保持为有效扇区的数据扇区。例如,有效扇区可以包括间接表112的有效数据指针涉及其的数据。在一些实施例中,控制器逻辑108可以基于多个存储在块中的有效扇区来选择该块用于垃圾收集。例如,控制器逻辑108可以选择具有最少数目的存储于其中的有效扇区的块。

在各种实施例中,控制器逻辑108可以从非易失性存储器读取数据的有效扇区并将扇区存储在传输缓冲器110中。控制器逻辑108可以根据读取多个扇区的各个扇区的完成时间将各个扇区分派到页。例如,可以根据扇区的分别的完成时间顺序地将扇区分派到页。即,在其中一页包括四个扇区的实施例中,针对其读取完成在多个扇区中的第一个、第二个、第三个和第四个的扇区可以被分配到第一页,针对其读取完成第五个、第六个、第七个和第八个的扇区可以被分配到第二页,等等。

在各种实施例中,控制器逻辑108可以将各个扇区页写入到非易失性存储器104。例如,控制器逻辑108可以响应于确定所述页中的所有扇区已经被读取和/或被存储在传输缓冲器110中而将所述各个页写入到非易失性存储器。控制器逻辑108可以更新间接表112以指示被写入到非易失性存储器的扇区的位置。另外,控制器逻辑108可以在将页写入到非易失性存储器104之后从传输缓冲器110擦除页,从而在传输缓冲器110中释放更多空间。

因此,与在从非易失性存储器读取扇区之前将扇区分配到页相比较,根据读取各个扇区的完成时间将各个扇区分配到页可以减少扇区在传输缓冲器108中的驻留时间(例如,扇区在被重新写入到非易失性存储器104之前被存储在传输缓冲器108中的时间量)。较短的驻留时间可以继而允许使用更小的传输缓冲器110用于给定尺寸的非易失性存储器104。

在各种实施例中,控制器逻辑108可以在将多页有效扇区写入到非易失性存储器104之后从非易失性存储器104的块中擦除数据,从而释放所述块的存储器资源用于存储新数据。

在一些实施例中,可以将要被写入到非易失性存储器104的各个页的扇区存储在传输缓冲器110中的连续的槽中。例如,传输缓冲器110的槽可以具有对应于该槽在传输缓冲器110中的物理位置的相关联的索引。传输缓冲器110的一组槽可以被分派用于垃圾收集过程。控制器逻辑108可以在读取扇区完成时将各个扇区分配到传输缓冲器110的分别的槽。例如,可以将扇区分配到具有最低索引的所分派的组的槽中的可用的槽。因此,可以从存储在传输缓冲器110的连续的槽(例如,具有有序索引的槽)中的扇区形成槽的页。

在其它实施例中,可以将要被写入到非易失性存储器104的各个页的扇区存储在传输缓冲器110的非连续的槽中。例如,控制器逻辑108可以在发起扇区的读取过程时将各个数据扇区分配到传输缓冲器110的分别的槽。然后控制器逻辑108可以根据对各个扇区的读取过程的完成时间将各个扇区分配到页、并将页写入到非易失性存储器104。

图2根据各种实施例图解用于非易失性存储器(例如,非易失性存储器104)的垃圾收集的方法200。在一些实施例中,可以由被耦合到非易失性存储器的存储器控制器(例如,存储器控制器102)执行方法200。

在块202处,方法200可以包括从非易失性存储器读取多个数据扇区。所述扇区可以是例如要被从存储在包括多个扇区的非易失性存储器中的数据块保持的有效扇区。

在块204处,方法200还可以包括将所读取的扇区存储在传输缓冲器(例如,传输缓冲器210)中。

在块206处,方法200还可以包括根据读取多个扇区的各个扇区的完成时间将各个所读取的扇区分派到页。所述页可以包括多个扇区。

在块208处,方法200还可以包括将扇区页写入到非易失性存储器。可以响应于确定页的所有扇区已经被读取和/或存储在传输缓冲器中而将各个页写入到非易失性存储器。可以将扇区页写入到与在块202处从其处读取扇区的位置相比的非易失性存储器的不同的位置(例如,不同的块)。可以更新间接表以指示其中在块208处写入扇区页的非易失性存储器中的位置。

在各种实施例中,可以在将所有的有效扇区(例如,在相关联的页中)从块写入到非易失性存储器之后擦除从其处读取扇区的非易失性存储器的块。然后可以使用所擦除的块用于存储新数据。

图3根据各种实施例图解可以使用本文中描述的装置和/或方法(例如,存储器系统100、方法200)的示例计算设备300。如示出的那样,计算设备300可以包括多个组件,诸如一个或多个处理器304(示出一个)和至少一个通信芯片306。在各种实施例中,一个或多个处理器304每一个都可以包括一个或多个处理器内核。在各种实施例中,所述至少一个通信芯片306可以被物理地且电地耦合到一个或多个处理器304。在进一步的实现中,通信芯片306可以为一个或多个处理器304的部分。在各种实施例中,计算设备300可以包括印刷电路板(PCB)302。针对这些实施例,可以将一个或多个处理器304和通信芯片306部署于其上。在替换实施例中,可以在不使用PCB302的情况下耦合各种组件。

依赖于其应用,计算设备300可以包括可以或可以不被物理地且电地耦合到PCB302的其它组件。这些其它组件包括但不被限于存储器控制器集线器305、易失性存储器(例如,DRAM308)、非易失性存储器(诸如只读存储器310(ROM))、闪存存储器312和储存设备311(例如,SSD或硬盘驱动器(HDD))、I/O控制器314、数字信号处理器(未示出)、密码处理器(未示出)、图形处理器316、一个或多个天线318、显示器(未示出)、触摸屏显示器320、触摸屏控制器322、电池324、音频编码解码器(未示出)、视频编码解码器(未示出)、全球定位系统(GPS)设备328、指南针330、加速计(未示出)、陀螺仪(未示出)、扬声器332、相机334、和大容量储存设备(诸如硬盘驱动器、固态驱动器、紧凑盘(CD)、数字多用盘(DVD))(未示出)等。在各种实施例中,可以将处理器304与其它组件一起集成在相同的管芯上以形成片上系统(SoC)。

在各种实施例中,闪存存储器312和/或储存设备311可以实现本文中描述的存储器系统100。计算设备300可以除了闪存存储器312之外或代替其包括储存设备311。在诸如其中储存设备311实现SSD的实施例的一些实施例中,储存设备311可以除了闪存存储器312之外或代替其实现本文中描述的存储器系统100。

在一些实施例中,一个或多个处理器、闪存存储器312、和/或储存设备311可以包括存储编程指令的相关联的固件(未示出),其被配置成使计算设备300能够响应于由一个或多个处理器304执行所述编程指令实践本文中描述的方法(例如,方法200)的所有或所选择的方面。在各种实施例中,可以附加地或替换地使用从一个或多个处理器304、闪存存储器312、或储存设备311分离的硬件实现这些方面。

通信芯片306可以使实现用于到计算设备300和从计算设备300的数据传输的有线和/或无线通信。术语“无线”和其派生词可以被用于描述可以通过使用经调制的电磁辐射通过非固体媒体传达数据的电路、设备、系统、方法、技术、通信信道等。所述术语不暗示相关联的设备不包含任何电线,但是在一些实施例中它们可能不。

通信芯片306可以实现多个无线标准或协议中的任何,包括但不被限于IEEE702.20、通用分组无线电服务(GPRS)、演进数据优化(Ev-DO)、演进的高速分组访问(HSPA+)、演进的高速下行链路分组访问(HSDPA+)、演进的高速上行链路分组访问(HSUPA+)、全球移动通信系统(GSM)、增强数据速率GSM演进(EDGE)、码分多址(CDMA)、时分多址(TDMA)、数字增强无绳电信(DECT)、蓝牙、其派生、以及被指定为3G、4G、5G及以上的任何其它无线协议。计算设备300可以包括多个通信芯片306。

例如,第一通信芯片306可以专用于诸如Wi-Fi和蓝牙的较短程无线通信,并且第二通信芯片306可以专用于诸如GPS、EDGE、GPRS、CDMA、WiMAX、LTE、Ev-DO以及其它的较长程无线通信。

在各种实现中,计算设备300可以是膝上型计算机、上网本、笔记本、超级本、智能电话、计算平板、个人数字助理(PDA)、超级移动PC、移动电话、台式计算机、服务器、打印机、扫描仪、监控器、机顶盒、娱乐控制单元(例如,游戏控制台或自动娱乐单元)、数字相机、电器、便携式音乐播放器、或数字视频记录器。在进一步的实现中,计算设备300可以是处理数据的任何其它电子设备。

下面提供一些非限制性示例。

示例1是一种用于管理非易失性存储器的方法,包括:从非易失性存储器读取多个数据扇区;根据读取所述多个扇区的各个扇区的完成时间将各个扇区分派到页,各个页包括多个所述扇区;以及将包括所述多个扇区的所述各个页写入到所述非易失性存储器。

示例2是示例1的方法,还包括更新间接表以指示所述扇区在所述非易失性存储器中的位置。

示例3是示例1的方法,还包括:将所读取的扇区存储在传输缓冲器中,其中将所述扇区的页从所述传输缓冲器写入到所述非易失性存储器。

示例4是示例3的方法,其中所述各个页的所述扇区根据它们分别的完成时间存储在所述传输缓冲器的连续的槽中。

示例5是示例3的方法,其中将所述各个页的所述扇区存储在所述传输缓冲器的非连续的槽中。

示例6是示例3的方法,其中所述传输缓冲器是静态随机存取存储器(SRAM)。

示例7是示例1到6中的任何一个的方法,其中所读取的扇区根据它们分别的完成时间顺序地被分派到页。

示例8是示例1到6中的任何一个的方法,其中作为针对所述非易失性存储器的垃圾收集过程的部分执行所述读取、分派、和写入。

示例9是示例1到6中的任何一个的方法,其中所述非易失性存储器是闪存存储器。

示例10是一种用于操作存储器的装置,包括:非易失性存储器;传输缓冲器;以及被耦合到所述非易失性存储器和所述传输缓冲器的控制器逻辑。所述控制器逻辑是用于:从所述非易失性存储器读取多个数据扇区;将所读取的扇区存储在所述传输缓冲器中;根据读取所述多个扇区的各个扇区的完成时间将各个扇区分派到页,各个页包括多个所述扇区;以及响应于确定已经读取了所述页的所有扇区将包括所述多个扇区的所述各个页写入到所述非易失性存储器。

示例11是示例10的装置,还包括被耦合到所述控制器逻辑的间接表,其指示扇区在所述非易失性存储器中的位置,其中所述垃圾收集逻辑还用于更新所述间接表以指示被写入到所述非易失性存储器的扇区的位置。

示例12是示例10的装置,其中将所述各个页的所述扇区存储在所述传输缓冲器的连续的槽中。

示例13是示例10的装置,其中将所述各个页的所述扇区存储在所述传输缓冲器的非连续的槽中。示例14是示例10的装置,其中所读取的扇区根据它们分别的完成时间被顺序地分派到页。

示例15是示例10的装置,其中所述传输缓冲器是静态随机存取存储器(SRAM)。

示例16是示例10的装置,其中所述非易失性存储器是闪存存储器。

示例17是示例10到16中的任何一个的装置,其中所述控制器逻辑是用于执行所述读取、存储、分派、和写入操作作为针对所述非易失性存储器的垃圾收集过程的部分。

示例18是一种用于操作存储器的系统,包括:处理器;天线;被耦合到所述处理器和所述天线的非易失性存储器;传输缓冲器;以及被耦合到闪存存储器和所述传输缓冲器的控制器逻辑。所述控制器逻辑是用于完成以下作为垃圾收集过程的部分:识别包括存储在所述非易失性存储器中的多个扇区的数据块的数据扇区,所述数据扇区为要被保持的有效扇区;从所述非易失性存储器读取所述有效扇区;将所读取的扇区存储在所述传输缓冲器中;根据读取所述多个扇区中的各个扇区的完成时间将所读取的扇区分派到页,各个页包括多个所述扇区;以及响应于确定已经读取了所述页的所有扇区将包括所述多个扇区的所述各个页写入到所述非易失性存储器。

示例19是示例18的系统,其中所述控制器逻辑还用于在读取所述有效扇区之后擦除所述数据块。

示例20是示例18的系统,其中所述控制器逻辑还用于在将所述页写入到所述非易失性存储器之后从所述传输缓冲器擦除所述页。

示例21是示例18的系统,还包括被耦合到所述控制器逻辑的间接表,其指示扇区在所述非易失性存储器中的位置,其中所述控制器逻辑还用于更新所述间接表以指示被写入到所述非易失性存储器的扇区的位置。

示例22是示例18的系统,其中根据读取所述各个扇区的完成时间将所述各个页的扇区存储在所述传输缓冲器的连续的槽中。

示例23是示例18的系统,其中将所述各个页的所述扇区存储在所述传输缓冲器的非连续的槽中。

示例24是示例18到23中的任何一个的系统,其中所读取的扇区根据它们分别的完成时间被顺序地分派到页。

虽然在本文中出于描述的目的图解并描述了某些实施例,但是本申请意图覆盖本文中讨论的实施例的任何改编或变体。因此,显然地意图为仅由权利要求限制本文中描述的实施例。

在本公开陈述“一个”或“第一”元件或其等价的情况中,这样的公开包括一个或多个这样的元件,既不要求也不排除两个或更多的这样的元件。另外,针对所识别的元件的顺序指示词(例如,第一、第二或第三)被用于区分元件,而不指示或暗示这样的元件的所要求的或限制的数目,它们也不指示这样的元件的特定的位置或顺序,除非另外明确地陈述。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1