CN105765540A - 管理用于非易失性存储器的传输缓冲器 - Google Patents

管理用于非易失性存储器的传输缓冲器 Download PDF

Info

Publication number
CN105765540A
CN105765540A CN201480064579.6A CN201480064579A CN105765540A CN 105765540 A CN105765540 A CN 105765540A CN 201480064579 A CN201480064579 A CN 201480064579A CN 105765540 A CN105765540 A CN 105765540A
Authority
CN
China
Prior art keywords
sector
page
nonvolatile memory
transmission buffer
read
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201480064579.6A
Other languages
English (en)
Inventor
A.S.拉马林加姆
K.S.格里姆斯鲁德
J.B.罕
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN105765540A publication Critical patent/CN105765540A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0638Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

实施例包括用于管理与非易失性存储器相关联的传输缓冲器的装置、方法、和系统。在一个实施例中,控制器逻辑可以被耦合到非易失性存储器和传输缓冲器。控制器逻辑可以从非易失性存储器读取多个数据扇区并将所读取的扇区存储在传输缓冲器中。控制器逻辑还可以根据读取多个扇区的各个扇区的完成时间将各个扇区分派到页,各个页包括多个扇区。控制器逻辑还可以响应于确定已经读取了页的所有扇区将扇区的页写入到非易失性存储器。

Description

管理用于非易失性存储器的传输缓冲器
对相关申请的交叉引用
本申请主张对美国申请号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中的任何一个的系统,其中所读取的扇区根据它们分别的完成时间被顺序地分派到页。
虽然在本文中出于描述的目的图解并描述了某些实施例,但是本申请意图覆盖本文中讨论的实施例的任何改编或变体。因此,显然地意图为仅由权利要求限制本文中描述的实施例。
在本公开陈述“一个”或“第一”元件或其等价的情况中,这样的公开包括一个或多个这样的元件,既不要求也不排除两个或更多的这样的元件。另外,针对所识别的元件的顺序指示词(例如,第一、第二或第三)被用于区分元件,而不指示或暗示这样的元件的所要求的或限制的数目,它们也不指示这样的元件的特定的位置或顺序,除非另外明确地陈述。

Claims (24)

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中的任何一个所述的系统,其中所读取的扇区根据它们分别的完成时间顺序地被分派到页。
CN201480064579.6A 2013-12-26 2014-11-21 管理用于非易失性存储器的传输缓冲器 Pending CN105765540A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/140919 2013-12-26
US14/140,919 US20150186257A1 (en) 2013-12-26 2013-12-26 Managing a transfer buffer for a non-volatile memory
PCT/US2014/066960 WO2015099922A1 (en) 2013-12-26 2014-11-21 Managing a transfer buffer for a non-volatile memory

Publications (1)

Publication Number Publication Date
CN105765540A true CN105765540A (zh) 2016-07-13

Family

ID=53479500

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480064579.6A Pending CN105765540A (zh) 2013-12-26 2014-11-21 管理用于非易失性存储器的传输缓冲器

Country Status (5)

Country Link
US (1) US20150186257A1 (zh)
JP (1) JP2017502376A (zh)
KR (1) KR20160075703A (zh)
CN (1) CN105765540A (zh)
WO (1) WO2015099922A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160016421A (ko) * 2014-08-05 2016-02-15 삼성전자주식회사 비휘발성 메모리 기반의 스토리지 장치의 최적화 방법
US9870169B2 (en) 2015-09-04 2018-01-16 Intel Corporation Interleaved all-level programming of non-volatile memory
US10126958B2 (en) 2015-10-05 2018-11-13 Intel Corporation Write suppression in non-volatile memory
JP2019046238A (ja) 2017-09-04 2019-03-22 東芝メモリ株式会社 メモリシステム
CN111045961B (zh) * 2018-10-12 2023-10-20 深圳大心电子科技有限公司 数据处理方法及使用所述方法的存储控制器

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060155920A1 (en) * 2004-12-16 2006-07-13 Smith Peter J Non-volatile memory and method with multi-stream updating
US20070159885A1 (en) * 2004-12-30 2007-07-12 Gorobets Sergey A On-Chip Data Grouping and Alignment
US20070186032A1 (en) * 2005-08-03 2007-08-09 Sinclair Alan W Flash Memory Systems With Direct Data File Storage Utilizing Data Consolidation and Garbage Collection
JP2007317224A (ja) * 1995-09-27 2007-12-06 Lexar Media Inc メモリシステム
US20080034175A1 (en) * 2006-08-04 2008-02-07 Shai Traister Methods for phased garbage collection
US20100030999A1 (en) * 2008-08-01 2010-02-04 Torsten Hinz Process and Method for Logical-to-Physical Address Mapping in Solid Sate Disks
CN102819468A (zh) * 2011-11-30 2012-12-12 凯迈(洛阳)环测有限公司 一种基于flash的小型数据备份及查询方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5088036A (en) * 1989-01-17 1992-02-11 Digital Equipment Corporation Real time, concurrent garbage collection system and method
US6098124A (en) * 1998-04-09 2000-08-01 National Instruments Corporation Arbiter for transferring largest accumulated data block output from data buffers over serial bus
US8108590B2 (en) * 2000-01-06 2012-01-31 Super Talent Electronics, Inc. Multi-operation write aggregator using a page buffer and a scratch flash block in each of multiple channels of a large array of flash memory to reduce block wear
US7139864B2 (en) * 2003-12-30 2006-11-21 Sandisk Corporation Non-volatile memory and method with block management system
US20080005520A1 (en) * 2006-06-09 2008-01-03 Siegwart David K Locality with parallel hierarchical copying garbage collection
US8271700B1 (en) * 2007-11-23 2012-09-18 Pmc-Sierra Us, Inc. Logical address direct memory access with multiple concurrent physical ports and internal switching
US8762620B2 (en) * 2007-12-27 2014-06-24 Sandisk Enterprise Ip Llc Multiprocessor storage controller
KR101581679B1 (ko) * 2009-03-18 2015-12-31 삼성전자주식회사 저장 장치 및 저장 장치의 버퍼 메모리 관리 방법
KR20100115583A (ko) * 2009-04-20 2010-10-28 삼성전자주식회사 데이터 저장 시스템
US8688894B2 (en) * 2009-09-03 2014-04-01 Pioneer Chip Technology Ltd. Page based management of flash storage
CN102598019B (zh) * 2009-09-09 2015-08-19 才智知识产权控股公司(2) 用于分配存储的设备、系统和方法
KR101650130B1 (ko) * 2010-05-14 2016-08-24 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 카피-백 방법
US8930614B2 (en) * 2011-07-29 2015-01-06 Kabushiki Kaisha Toshiba Data storage apparatus and method for compaction processing
JP2013196646A (ja) * 2012-03-22 2013-09-30 Toshiba Corp メモリ制御装置、データ記憶装置及びメモリ制御方法
KR20140040998A (ko) * 2012-09-27 2014-04-04 삼성전자주식회사 로그기반 데이터 저장 시스템의 관리방법
US9189389B2 (en) * 2013-03-11 2015-11-17 Kabushiki Kaisha Toshiba Memory controller and memory system

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007317224A (ja) * 1995-09-27 2007-12-06 Lexar Media Inc メモリシステム
US20060155920A1 (en) * 2004-12-16 2006-07-13 Smith Peter J Non-volatile memory and method with multi-stream updating
US20070159885A1 (en) * 2004-12-30 2007-07-12 Gorobets Sergey A On-Chip Data Grouping and Alignment
JP2008527586A (ja) * 2004-12-30 2008-07-24 サンディスク コーポレイション オンチップデータのグループ化および整列
US20070186032A1 (en) * 2005-08-03 2007-08-09 Sinclair Alan W Flash Memory Systems With Direct Data File Storage Utilizing Data Consolidation and Garbage Collection
US20080034175A1 (en) * 2006-08-04 2008-02-07 Shai Traister Methods for phased garbage collection
US20100030999A1 (en) * 2008-08-01 2010-02-04 Torsten Hinz Process and Method for Logical-to-Physical Address Mapping in Solid Sate Disks
CN102819468A (zh) * 2011-11-30 2012-12-12 凯迈(洛阳)环测有限公司 一种基于flash的小型数据备份及查询方法

Also Published As

Publication number Publication date
KR20160075703A (ko) 2016-06-29
WO2015099922A1 (en) 2015-07-02
US20150186257A1 (en) 2015-07-02
JP2017502376A (ja) 2017-01-19

Similar Documents

Publication Publication Date Title
US10853238B2 (en) Unaligned data coalescing
KR101940963B1 (ko) 비휘발성 메모리 디바이스의 휘발성 메모리 구조 및 관련 컨트롤러
KR102147993B1 (ko) 불휘발성 메모리 시스템 및 그것의 동작 방법
US9582416B2 (en) Data erasing method, memory control circuit unit and memory storage apparatus
US9195579B2 (en) Page replacement method and memory system using the same
US11086568B2 (en) Memory system for writing fractional data into nonvolatile memory
US20150253992A1 (en) Memory system and control method
US20150058534A1 (en) Managing method for cache memory of solid state drive
WO2015021022A1 (en) Data storage system with stale data mechanism and method of operation thereof
CN105765540A (zh) 管理用于非易失性存储器的传输缓冲器
US8812772B2 (en) Data merging method for non-volatile memory and controller and storage apparatus using the same
US10168951B2 (en) Methods for accessing data in a circular block mode and apparatuses using the same
US20140208006A1 (en) Apparatus and method for extending memory in terminal
US11762590B2 (en) Memory system and data processing system including multi-core controller for classified commands
CN114371812B (zh) 控制器及其操作方法
US10067829B2 (en) Managing redundancy information in a non-volatile memory
US9424206B2 (en) Command executing method, connector and memory storage device
US10466938B2 (en) Non-volatile memory system using a plurality of mapping units and operating method thereof
US9733832B2 (en) Buffer memory accessing method, memory controller and memory storage device
US10289334B2 (en) Valid data merging method, memory controller and memory storage apparatus
US10146553B2 (en) Electronic apparatus and booting method thereof
CN112825025A (zh) 控制器及其操作方法
US20140149646A1 (en) Memory systems including flash memories, first buffer memories, second buffer memories and memory controllers and methods for operating the same
CN112732171B (zh) 控制器及其操作方法
CN105320610A (zh) 数据储存装置及操作数据储存装置的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20160713