CN104298610A - 资料储存系统及其管理方法 - Google Patents
资料储存系统及其管理方法 Download PDFInfo
- Publication number
- CN104298610A CN104298610A CN201410411424.7A CN201410411424A CN104298610A CN 104298610 A CN104298610 A CN 104298610A CN 201410411424 A CN201410411424 A CN 201410411424A CN 104298610 A CN104298610 A CN 104298610A
- Authority
- CN
- China
- Prior art keywords
- block
- erasing
- page
- cache
- sum
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
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)
- Read Only Memory (AREA)
Abstract
本发明有关于一种资料储存系统及其管理方法,尤指以页面为基础管理非挥发性随机存取记忆体阵列装置的快闪储存系统、方法及电路,记忆体管理系统包括有一管理处理器、一页面缓冲器及一逻辑实体转译表,其中,管理处理器与快闪储存系统中一非挥发性记忆体阵列装置进行通信,管理处理器提供控制信号,非挥发性记忆体阵列装置根据控制信号以对于所选择的页面进行程序化、抹除及读取动作。
Description
技术领域
本发明有关于一种资料储存系统及其管理方法,尤指一种用以管理非挥发性记忆体装置的记忆体管理电路及方法、以及以页面为基础进行记忆管理的非挥发性记忆体装置(例如:快闪随机存取记忆体)。
背景技术
固态硬碟(SSD)为一种资料储存装置,其使用半导体元件来储存长驻资料。固态硬碟主要用以仿效一磁性硬碟或一光电硬碟,且普遍采用一SATA标准作为传输界面,以在大多数的应用领域中可轻易取代一般硬碟机。再者,固态硬碟也能采用其他界面规格,例如:PATA、USB、PCI express或光纤通道的实体及信号界面(ANSI X3.230-1994),而固态硬碟系统可使用于一挥发性记忆体,例如:SRAM、DRAM,或一非挥发性记忆体,例如:快闪记忆体。
请参阅图1a,为现有电脑系统的区块示意图,该电脑系统系采用一固态硬碟来取代一般硬碟进行长驻资料的储存。如图所示,一中央处理器105执行一连串的储存程序指令,这些指令保存在暂存记忆体(RAM)110或长驻记忆体(SSD)100中。中央处理器105可执行四个基本功能:(1).从暂存记忆体110或长驻记忆体100中提取一指令或一资料、(2).解码指令资料、(3).执行指令、(4).执行结果写回暂存记忆体110或长驻记忆体100中。提取或写回的结果资料可同时与一输入/输出装置105进行通信,例如:印表机、一显示器或一网路装置。
中央处理器105、暂存记忆体110、长驻记忆体100及输入/输出装置115连接一系统汇流排120。系统汇流排120用以提供在中央处理器105、暂存记忆体110、长驻记忆体100及输入/输出装置115间所通信的必要资料,且进行资料规格化及资料变换。在长驻记忆体100的例子中,系统汇流排120所提供的通信规格可为SATA规格或其他上述所列出的其他规格。长驻记忆体100配置有数个逻辑位址及设置有SATA规格界面, SATA规格界面进行提取及储存的资料信息及控制信息也可通过中央处理器105处理资料及程序指令而获得。
由固态硬碟所构建的长驻记忆体100其具有一控制器125,该控制器是将该逻辑位址解码成一实体位址及一控制信息,以判断是否从反及闸快闪阵列130中提取资料,或者,将资料储存于反及闸快闪阵列130中。反及闸快闪阵列130包括数个非挥发性快闪随机存取记忆体芯片,该记忆体芯片切分成数个区块,例如:16G bit记忆体芯片切分成8192区块。再者,每一区块进一步细分为数个页面,例如:单阶层记忆核心芯片中每个区块包括有64个页面或多阶层记忆核心芯片中包括有128个页面。一反及闸快闪记忆体芯片结构不允许以位元组为基础进行一位元组的读写,只能读写一页面 (通常为4KB)。此外,一个已经写入的页面是不能覆写,其只能对于已抹除的页面进行写入的动作,并且每次抹除的最小单位为1个区块、64个页面或128个页面。再者,不同单位尺寸的读取(例如:1个页面)及抹除(例如:64/128个页面)会使得快闪随机存取记忆体芯片不易管理,而且在写入资料的前必须将旧区块的资料进行复制及抹除,这意味着随意写入小量区块资料其写入速度将相当缓慢。一逻辑实体转译表位在快闪记忆体中,每当资料写入时,逻辑实体转译表将进行转变。
请参阅图1b,为现有快闪储存系统中长驻记忆体(SSD)100的逻辑位址的结构示意图。如图所示,一非挥发性快闪随机存取记忆体装置150,其切分成8192个区块(Block)155,各区块155切分成64个页面(Page)160,各页面160切分成8个区段(Sector)165,各区段165切分成512个位元组(bytes)。区段165通常定义为最小的单位,且在区段165上额外增加一ECC错误更正位元167。每一页面160将相等于4K Bytes(512 Bytes×8区段)。
以消费者为导向的快闪储存卡对于价格非常敏感,因此,快闪储存卡的控制器中通常只有一个最小数量的外部单芯片元件,并不会额外增设外部随机存取记忆体,且快闪储存卡的控制器内部所预设的随机存取记忆体其容量非常有限。为了节省随机存取记忆体的储存空间,现今的控制器技术是采用区块为导向进行记忆体管理,这意味着逻辑实体转译表的每一项目为一区块号码。一区块位址包括有大量资料,例如:256kb或512kb,当资料连续地写入于随机存取记忆体时,其逻辑实体转译表会改变缓慢的。
请参阅图1c,为现有快闪储存系统中长驻记忆体(SSD)100读取及写入的操作示意图。如图所示,一位址信号200输入于一实体位址解码电路205,以解码出一实体位址250。实体位址使用23个位元来表示,较低位阶的3个位元(0..2)用以指向页面中的区段201,较高阶级的6个位元(3..8)用以指向区块中的页面202,下一较高阶级的13个位元(9..21)用以指向区块203,而最高阶级的位元(22)用以指向芯片位置204。
在这例子中,非挥发性快闪随机存取记忆体阵列装置235包括有至少两个非挥发性快闪随机存取记忆体芯片240/245。实体位址解码电路205产生一实体位址250,该实体位址250用以辨别在记忆体芯片240/245中的区块242/247是进行读取资料220或写入资料220。
一控制信号210 用以提供编码的控制指示,其传送至控制逻辑器215以产生一阵列控制信号270,非挥发性快闪随机存取记忆体阵列装置235在根据阵列控制信号270读取资料或写入资料至记忆体芯片240/245。资料220用以提供最新区段资料222,其从非挥发性快闪随机存取记忆体阵列装置235读取或写入至非挥发性快闪随机存取记忆体阵列装置235。资料220保存在一页面缓冲器225中,直到资料220被一外部主机电路所读取或写入至非挥发性快闪随机存取记忆体阵列装置235为止。资料220通过一资料汇流排260传输于页面缓冲器225与非挥发性快闪随机存取记忆体阵列装置235间。
就先前技术而言,SATA界面可对于一磁性硬碟或一光电硬碟进行区段读取或写入,为了相容于磁性硬碟或光电硬碟,固态硬碟操作于区段层级时也必须能够与SATA界面进行通信。承上图1c所示,一更新的的信号区段具有一逻辑区块位址(LBA)51200。区段201及页面202所对应的较低阶级位元(0..8)其相同于逻辑及实体位址,并代表一区块203内部的区段位置。高阶级位元(9..22)的逻辑位址203/204为进入逻辑实体转译表230的索引值。逻辑实体转译表230中有许多的项目232为区块。在每一项目232中,最高阶级位元用以指示记忆体芯片240/245进行资料读取、写入或抹除,而项目232的低阶级位元用以指示其中一个记忆体芯片240/245的实体区块号码。
记忆体芯片240中区块(100) 242用以取代记忆体芯片245中该抹除资料的区块(200) 247,并且区块(200) 247从外部电路接收新的区段资料222。再者,区块(100) 242中全部其他的区段也可复制旧的区块(100)242资料,该复制操作的动作也可称为区块的重组。
为了达成资料更新的目的,位址信号200被实体位址解码电路205所解码,其最高阶级位元(9..22)用以指向索引位址,以根据索引位址进入逻辑实体转译表230。区块(100) 242的实体位址传送至非挥发性快闪随机存取记忆体阵列装置235,此时,控制逻辑器215接收及解码控制信号210,以及命令实体位址解码器205传送所解码出的实体位址250,同时,控制逻辑器215传送阵列控制信号270至非挥发性快闪随机存取记忆体阵列装置235。记忆体芯片240读取区块(100)242中的资料并通过资料汇流排260传送至页面缓冲器225。控制逻辑器215指示页面缓冲器225是将区块(100)242资料以及区块(200)247的区段位置4296704资料合并成新资料220。然后,控制逻辑器215决定区块(100) 242资料写回区块(200)247中,且指示实体位址解码电路205更新逻辑实体转译表230的索引内容,以将实体区块100更新为实体区块8392(8192+200)。再者,区块缓冲器224指示更新区块及区段51200内的新资料写入至区块(200)237中,然后,控制逻辑器215指示记忆体芯片(0)240抹除掉区块100中的资料。
如上述,以区块为基础的管理,当整个区块以新资料覆写时,其连续的操作非常快速。但随机的写入作业将会依再结合区块的数量而变慢。目前,高容量固态硬碟(SSD)必须与便宜很多的机械式硬碟(HDD)做比较。为了提高竞争力,固态硬碟必须具有比机械式硬碟高出许多的读写速率,尤其是在随机写入方面。因此,相对于控制器的价格,高速读写为更重要的问题。此类型的控制器通常具有一较大的外部随机存取记忆体,借以有效提高速率。对于新硬体架构的快闪随机存取记忆体阵列装置235,较佳的内部管理方法与电路才有利于效能的提升。
IEEE Transactions on Consumer Electronics期刊2002年5月号Vol.: 48第366-375页《Compact Flash系统具空间效率的快闪转译层》描述一称为快闪转译层(Flash Translation Layer, FTL)的中间软体层,用以于快闪记忆体中将主机系统的逻辑位址重新指向至实体位址。快闪转译层结合页面写入与区块抹除位址转换的粒度。较大粒度的位址转换可降低维持转换资讯的资源,较细粒度的位址转换可提高小量写入的管理效率。
美国专利US 5,404,485提供一具有虚拟映射系统的快闪记忆体,可允许资料被连续写入未写入的实体位址。该虚拟记忆体地图将快闪记忆体的实体位址关联起来,以便于追踪资料在记忆体中的位置。
美国专利US 5,963,983提供一具有工作记忆的记忆体装置,用以储存逻辑实体位址转换资讯。该半导体记忆装置被定位为预设区段单元。该记忆装置具有可抹写的非挥发性记忆体资料储存器。一连接至主机系统的界面可接收一存取要求。该挥发性工作记忆体储存非挥发性记忆体的页面位址表,用以转换需求的逻辑区段位址至该非挥发性实体记忆体空间的一实体区段位址。该挥发性记忆体尚储存一第二表格,记录各区块的页面的位址,用以转换存取要求中的一逻辑页面位址至该非挥发性记忆体的实体页面位址。一第二存取控制装置参考该第二表格以取得一逻辑区段位址所对应的实体页面位址。
美国专利US 6,591,328提供一非挥发性记忆体,具有一储存位址控制表,该表格包含有逻辑位址与实体位址。该逻辑实体位址控制表控制资料在非挥发性记忆体中离散储存的位址。该逻辑实体位址控制表由数个区块所组成,各区块分别做为一资料删除单元,另包含有具有固定长度的相邻页面,分别做为一读写单元。一运算域资料区块包含有运算域识别资料,用以指示储存于运算域资料区块中的资料。该逻辑实体控制表区块位于非挥发性记忆体中,包含有控制表识别资料,用以指示经排序的控制表资料。
美国专利US 6,598,115提供一半导体储存装置,包含有数个非挥发性快闪记忆体,并使用逻辑实体区段转换。一控制器将区块资料的逻辑区段数转换为非挥发性半导体记忆体区域的实体区段数,其中该区块资料为写入资料。
美国专利US 7,386,655提供一非挥发性记忆体的高速暂存区(scratch pad)与更新区块的索引方法。更新资料是可依一预设条件选择记录于一更新区块或一高速暂存区块中。高速暂存区块用以缓冲最终要储存于更新区块的更新资料。
美国专利US 7,386,655提供一可存取主机资料的快闪记忆体管理系统。该系统包含有记忆体的实体单元与虚拟单元及各虚拟单元至一或多个实体单元的映射机制。
美国专利申请案US 2006/0069852提供一储存于快闪记忆体装置的资料的可用区段管理器。一快闪驱动器利用逻辑实体区段映射追踪储存于一快闪记忆体的资料。该映射是以一资料结构储存,并允许资料写入快闪记忆媒体的下一个可用实体区段。由于无需先进行抹除程序,故写入程序可快速完成。以资料结构储存的逻辑实体区段映射被复制于该快闪记忆媒体中。若发生电源中断的悲剧,该逻辑实体区段映射可借助扫描快闪记忆媒体中的复制映射而快速重建。
发明内容
本发明提供一种以页面为基础进行一非挥发性随机存取记忆体阵列装置的管理方法及其电路。
本发明尚提供一种非挥发性随机存取记忆体阵列装置的耗损平衡方法及其装置。
为了达到上述目的,本发明提供一种以页面为基础对于一快闪储存系统进行读取、写入及区块抹除的记忆体管理电路,记忆体管理电路包括有一管理处理器及一页面缓冲器,页面缓冲器用以管理一快取及一逻辑实体转译表;管理处理器与在快闪储存系统中一非挥发性记忆体阵列装置进行通信,用以提供一控制信号,以在非挥发性记忆体阵列装置中对于所选择的页面进行程序化、抹除及读取动作,另,页面缓冲器与非挥发性记忆体阵列装置及管理处理器进行通信,页面缓冲器切分成数个页面区段,各页面区段与快闪储存系统的各页面具有相等的尺寸,各页面区段暂存页面资料,并根据控制信号以决定从非挥发性记忆体阵列装置读取页面资料或传送页面资料至非挥发性记忆体阵列装置。逻辑实体转译表,接收一需求的逻辑页面位址,转换逻辑页面位址为一实体页面位址,与管理处理器进行通信并将实体页面位址传送至管理处理器,以确认非挥发性记忆体阵列装置中一需求页面的一实体位置,再者,逻辑实体转译表包括有一快取旗标表,其用以确认目前页面缓冲器是否有需求的逻辑页面位址。
又,记忆体管理电路尚包括有一输入/输出转接器,其连接在一外部端口、次区块缓冲器及管理处理器间,用以接收一逻辑位址、控制信号及一被通信规格所编码的区段资料,转换逻辑位址、控制信号及被通信规格所编码的区段资料成非挥发性记忆体阵列装置可接受的规格。
又,记忆体管理电路尚包括有一实体位址解码器,与输入/输出转接器及逻辑实体转译表进行通信,从输入/输出转接器接收逻辑位址,转送逻辑位址至逻辑实体转译表,从逻辑实体转译表接收实体位址,与管理处理器进行沟通,以确认一需求的逻辑次区块资料存在于页面缓冲器或非挥发性记忆体阵列装置中。
又,记忆体管理电路尚包括有一页面缓冲器快取表,与管理处理器进行通信,页面缓冲器快取表包括有一实体次区块号码,其用以确认在非挥发性记忆体阵列装置中的一实体位置,实体位置与在页面缓冲器中的一页面位置相关联,一快取类型项目用以标示一快取类型且被实体位置所占用,一状态项目根据一有效状态分类页面的区段资料,快取形式包括有一读取快取、一串流快取、一写入快取及一空闲列表,空闲列表用以表示一页面缓冲器为抹除及可使用状态的列表。
又,记忆体管理电路尚包括有一最近最少使用表,最近最少使用表包括有数个连接指标,连接指标用以决定一最近最少使用的页面资料存于页面缓冲器中。各快取形式(读取快取、串流快取、写入快取及空闲列表)同样包括有数个连接指标,其连接指标用以决定最近最少使用表的资料分配到哪个快取。页面缓冲器通过管理处理器执行一收回程序,最近最少使用表的页面资料从页面缓冲器中收回且写入所指定的非挥发性记忆体阵列装置的页面中,在页面缓冲器中的页面位置附加至页面缓冲器快取表的空闲列表内。
又,记忆体管理电路尚包括有一无效次区块表及一实体逻辑表,无效次区块表用以指示非挥发性记忆体阵列装置中所选择的页面为有效的,而实体逻辑表用以映射非挥发性记忆体阵列装置的实体位置至逻辑位置,实体逻辑表中的一不合法的页面号码用以指示实体位置在实体逻辑表中为已抹除或无效的。
又,记忆体管理电路尚包括有一抹除总数表及一实体区块连接表,抹除总数表对于非挥发性记忆体阵列装置中的各区块记录一抹除总数,而实体区块连接表包括有一包含数个指标的连接列表,各指标指向非挥发性记忆体阵列装置中的各区块,再者,连接列表包括有一锚定指标,其对于在非挥发性记忆体阵列装置中的各区块定义出无效页面号码。当管理处理器对于非挥发性记忆体阵列装置执行一垃圾收集程序,锚定指标用以指出非挥发性记忆体阵列装置的该区块中具有该最大无效号码页面的区块,进而允许具有最大无效号码页面的区块选择进行抹除的动作。
又,记忆体管理电路尚可执行一损耗平衡程序,在一损耗平衡程序中,一抹除区块的抹除总数比较于一滑动视窗的抹除总数,若抹除区块的抹除总数超过滑动视窗的抹除总数,选择另一具有最低抹除总数的区块,且具有最低抹除总数的区块中全部有效的页面复制至抹除区块的低阶级页面中,然后,具有最低抹除总数的区块将进行抹除动作,而具有最低抹除总数的区块成为一新的可写入区块,且其抹除总数将会增加。
附图说明
图1a:为现有电脑系统的区块示意图。
图1b:为现有快闪储存系统中长驻记忆体(SSD)100的逻辑位址的结构示意图。
图1c:为现有快闪储存系统中长驻记忆体(SSD)100读取及写入的操作示意图。
图2:为本发明以页面为基础对于记忆体进行管理的一固态硬碟的资料储存系统一较佳实施例的区块示意图。
图3:为本发明以页面为基础对于记忆体进行管理的一固态硬碟的资料储存系统又一实施例的区块示意图。
图4:为本发明固态硬碟读取及写入一实施例的操作示意图。
图5:为本发明以页面为基础的记忆体管理的表格式意图。
图6:本发明以页面为基础对于记忆体进行管理的垃圾收集中各表格的示意图。
图7:为本发明以页面为基础对于记忆体进行管理的耗损平衡中各表格的示意图。
图8:为本发明以页面为基础管理非挥发性随机存取记忆体阵列装置进行读取资料的步骤流程图。
图9:为本发明以页面为基础管理非挥发性快闪记忆体写入资料的步骤流程图。
图10a、10b:为本发明以页面为基础管理页面缓冲器的页面收回的流程图。
图11:为本发明以页面为基础管理的非挥发性快闪随机存取记忆体阵列装置的垃圾回收机制的流程图。
图12a、12b、12c:为本发明以页面为基础管理非挥发性快闪随机存取记忆体阵列装置的一耗损平衡程序的步骤流程图。
具体实施方式
本发明的以页面为基础的管理架构,用以对位址进行解码,并索引至逻辑实体转换表及区块内的页码。若页面位于页面或必须从非挥发性快闪随机存取记忆体阵列装置收回,逻辑实体转换表包括一快取设置位元。
若页面不在页面缓冲器内,则由非挥发性快闪随机存取记忆体阵列装置取出。区段被指定为低顺序的位址,区段会被读取或写入页面缓冲器。若页面缓冲器内不具有足够的空闲页面时,将会进行收回程序,并由页面缓冲器收回至少一最近被使用的页面。若页面为有效且与储存在非挥发性快闪随机存取记忆体阵列装置的页面一致,则页面缓冲器的页面空间会被得知,且页面将会被从非挥发性快闪随机存取记忆体阵列装置中取出。区段可被适当的被读取或写入。当页面内的区块为无效时,页面缓冲器的无效区段将会是新的,并与非挥发性快闪随机存取记忆体阵列装置的旧的区段相配。页面可被重新写入非挥发性快闪随机存取记忆体阵列装置,且位于页面缓冲器内的位置将会成为空闲页面。
页面缓冲器内最新的空闲页面会被指派至位址页面,且页面由非挥发性快闪随机存取记忆体阵列装置中被读取,并由页面缓冲器读取区段,或将区段写入页面缓冲器。
抹除区块列表会被维持,且当不具有足够的抹除区块可允许非挥发性快闪随机存取记忆体阵列装置进行操作时,则会进行一垃圾收回的动作以抹除无效的区块。当区快被抹除之后,将会进行抹除数量及门槛的比对。若超过门槛,则具有最低抹除次数的区块会被复制至较新的抹除区快,而具有最低抹除次数的区块会被抹除并成为一新的备用区块。
首先,请参阅图2,为本发明以页面为基础对于记忆体进行管理的一固态硬碟的资料储存系统一较佳实施例的区块示意图。如图所示,本发明固态硬碟的资料储存系统300以页面为基础进行记忆体管理。非挥发性随机存取记忆体阵列装置375包括有数个非挥发性随机存取记忆体装置376a...376n。各非挥发性随机存取记忆体装置376a...376n切分成数个区块377a...377n,各区块377a...377n切分成数个页面378a...378n,而各页面378a...378n切分成数个区段379a...379n。本发明实施例中,每一芯片具有8192个区块,每一区块具有64个页面,每一页面具有8个区段。在一128G位元的固态硬碟中,系采用8个16G非挥发性随机存取记忆体阵列装置375,并具有64个非挥发性随机存取记忆体装置376a...376n。
一输入/输出转接器305接收一位址信号310、接收及传送一资料信号315及接收一控制信号320,虽然,这些信号显示为个别信号,然,在SATA界面中实际上可以连续发送及接收这些信号。输入/输出转接器305调节及格式化这些信号,以产生一逻辑位址信号325并传送至实体位址解码器345及管理处理器340。资料信号330在调节及格式化后,将传送于实体位址解码器345及管理处理器340间。输入/输出转接器305同时可调节及格式化控制码335,后续,以将控制码335传送至管理处理器340。
实体位址解码器345解码一逻辑位址信号325,以产生一进入于逻辑实体位址转译表355的索引值。逻辑位址信号325索引指向一实际实体位置,该实际实体位置使用于非挥发性随机存取记忆体阵列装置375的读取或写入程序。管理处理器340解码一控制码335,以产生必要的控制信号控制实体位址解码器345及页面缓冲器350,以及产生一阵列控制时序信号370并传送至非挥发性随机存取记忆体阵列装置375
管理处理器340使用一实体逻辑位址表380、一页面缓冲器快取表382、一无效页面表384、一抹除总数表386、一耗损平均表387、一缺陷区块表388及一实体区块连接表390,借以管理非挥发性随机存取记忆体阵列装置375及页面缓冲器350间资料的一致性。
实体逻辑位址表380通过一实体页面号码进行索引,实体逻辑位址表380对于逻辑实体位址转译表355执行一反函数,且管理处理器340执行一垃圾收回程序及一耗损平衡程序时将会使用到该实体逻辑位址表380,其细节容后讨论。本发明中,将保留两个较高位址数字(0xffffffff、0xfffffffe),以鉴别该实体页面是不是与一逻辑页面号码相关联,再者,数字(0xffffffff) 意味着该实体页面进行抹除,而数字(0xfffffffe)意味着该实体页面为无效的,再者,实体页面号码并不会写入逻辑页面中。非挥发性随机存取记忆体阵列装置375低阶格式化之后,将产生初始化的逻辑实体位址转译表355。若读取一页面,管理处理器340在页面缓冲器350中产生0xffffffff数字,0xffffffff数字为在非挥发性随机存取记忆体阵列装置375中一抹除页面378a, 378b, …, 378n的资料内容。
有了这些特殊数字(如0xffffffff、0xfffffffe),除了恢复区块内容之外,并不需要一无效的页面表。当一区块进行抹除时,在该实体逻辑位址表380中的区块的全部页面将具有一0xffffffff数字。为了在一区块中判定出无效页面的号码,在该实体逻辑位址表380中,是将具有0xfffffffe数字的号码页面进行计数。实体逻辑位址表380对于所有抹除区块的全部页面进行初始化,作动的写入区块及缺陷区块具有0xffffffff数字,而其余页面具有0xfffffffe数字。然后,逻辑实体位址转译表355在扫描之后,也可摆放于实体逻辑位址表380中实体页面的逻辑位置。
如图5所示,页面缓冲器快取表382与页面缓冲器350具有相同的项目号码。页面缓冲器快取表382进一步切分成一快取页面表及一最近最少使用连接表。每个页面缓冲器快取表382项目将对应至一页面缓冲器350并且描述各页面缓冲器350的快取状态。全部页面缓冲器快取表382的项目是连接四个快取:一读取快取、一写入快取、一串流快取及一最近最少使用次序的空闲列表,且各页面缓冲器350分别指定于一对应的快取。再者,快取页面项目鉴别所对应的页面缓冲器350为脏掉的(dirty)、不脏或未使用过。假如一快取现存位元被设定于快取页面表425中,即可利用逻辑页面号码索引该快取页面缓冲器快取表382,反之,快取现存位元未设定于快取页面表425中,将无法通过逻辑页面号码得到页面缓冲器350的位置。
页面缓冲器快取表382具有一可用以指向页面快闪位置的项目。从页面缓冲器350收回页面以及将收回页面写至页面缓冲器350的另一位置之后,无效的页面资讯也必须进行相对的设定。接着,从非挥发性随机存取记忆体阵列装置375的页面位置进行资料读取,以避免页面缓冲器350中并非全部区段皆为有效的情况下,而造成页面资料回收不全。
经由页面缓冲器350的实体页面号码429a, …, 429m索引该快取页面表425,快取页面表425包括有数个页面378a, 378b, …, 378n的实体位址及索引位址,页面378a, 378b, …, 378n的实体位址资料是储存在页面缓冲器350中。一快取模式是指定页面是否在四种快取形式(如一空闲列表、一读取快取、一串流快取及一写入快取)中采用其中一者。快取页面表425尚包括一有效区段位元映像428,其用以提供一页面的区段无效性指示。
承上,读取快取包括数个不脏(或称为干净)的页面。当储存在页面缓冲器350及非挥发性随机存取记忆体阵列装置375中的资料是相同的,则快取内容可视为不脏,则存放于页面缓冲器350的资料必须写回非挥发性随机存取记忆体阵列装置375中,并且从该读取快取中收回页面缓冲器350内所存放的资料,从非挥发性随机存取记忆体阵列装置375中所读取的页面378a, 378b, …, 378n资料都必须通过读取快取。
串流快取包括有数个脏掉(dirty)页面,由于页面缓冲器350相较于非挥发性随机存取记忆体阵列装置375的页面378a, 378b, …, 378n是具有较新的资讯,脏掉页面必须写回非挥发性随机存取记忆体阵列装置375进行收回。再者,从外部主机电路所接收的全部资料都必须通过串流快取。假如一页面位置已经在读取快取中,则原本存放于读取快取中的页面资料将进行删除并移动至写入快取中,或者,在串流快取中的一页面若被触动两次读取或写入指令,则该页面将会提升至写入快取。
又,写入快取包括数个脏掉(dirty)页面,那些脏掉页面最少被触动两次,写入快取有效地切分成两个部分,再者,在本发明中,串流快取及写入快取将可提供一更有效的收回策略。串流快取只有对于页面写入一次,而写入快取对于页面最少写入一次以上(例如:档案分配表是经常更新的)。为了避免因为只写入一次资料而令全部写入快取无效,在串流快取中的每一页面将得到一个机会提升至写入快取,并且,原本存放于串流快取中的资料假若仍继续保留于串流快取中,则这些资料将可容易被收回的。
又,空闲列表提供一空闲的页面缓冲器350池。每当一读取/写入指令从外部主机电路传送至非挥发性随机存取记忆体阵列装置375的一页面位置,然,在页面缓冲快取中找不到该读取/写入指令,此时将需要一新的快取项目。为了快速反应,管理处理器340试图保持该空闲的页面缓冲器350池的大小。假如空闲的页面缓冲器350号码太低,收回程序将开始运行并产生新的空闲的页面缓冲器350。
读取快取、写入快取、串流快取及空闲列表间的记忆区间大小也可不断地改变,例如:根据实际工作量、读写指令的比例,写入快取的记忆区间也可因此增加,而消耗或占用原本读取快取的记忆区间。
最近最少使用页面连接表430提供一连接项目机制,该连接项目机制允许一表格的搜索,以在页面缓冲器350中找到一个不是最近存取的页面。一页面收回程序使用于页面缓冲器350上,以在页面缓冲器350中产生空闲空间。该页面收回程序,一垃圾收集程序及一损耗平衡程序用以写入页面资料至非挥发性随机存取记忆体阵列装置375中,以及对于非挥发性随机存取记忆体阵列装置375进行区块的抹除。随着收回程序的进行,以致页面资料可写入至非挥发性随机存取记忆体阵列装置375中,再者,若消耗太多抹除页面或及已抹除区块的数量太低,该垃圾收集程序将会因此而进行触发,垃圾收集程序将可产生新的抹除区块。次外,该垃圾收集程序包括有两个步骤程序:通过复制所有有效的页面并准备一欲抹除区块,以及是将该欲抹除区块进行抹除。在区块抹除之后,一区块抹除总数将会增加,假如区块抹除总数太高,该区块将与另一具有较低抹除总数的区块进行资料置换,在此,该具有较低抹除总数的区块其资料是较少被进行抹除的动作。
无效页面表384对于一个区块的每一页面提供一个状态位元(如每一区块具有64个页面,因此每一区块将会有64个位元)。当无效页面表384对于其中一区块的一页面给予逻辑(1)的状态位元,则代表这页面是无效的。再者,无效页面会被淘汰的,但也不会因此消失而不在使用,它将会被一新页面所取代。无效页面表384对于一恢复演算法是必须要的,在此,假如实体逻辑位址表380(最后电源断电时写入)无法在电源开启状态下进行读取,它可通过再次读取全部的页面而重建出来。逻辑页面号码储存在每一页面的增加区域中,该逻辑页面号码为一反向指标,若淘汰的页面并未抹除仍处在可使用的状态,反向指标将产生不是唯一性的问题。无效页面表384容易储存于快闪记忆体中,其用以定义页面的有效性,再者,无效页面表384主要作用只是便利于记忆体内部的其他目的可采用的表格,因此,在一恢复演算法的进行程序中,无效页面表384并不需要的,其可以省略。
抹除总数表386使用在一耗损平衡程序中,用以监控全部区块的抹除总数。一滑动视窗的抹除总数为一最小抹除总数加上一区块抹除总数的门槛值,而最小抹除总数为全部区块中实际最低的抹除总数。
在非挥发性随机存取记忆体阵列装置375中对于其中一区块进行抹除动作之后,该损耗平衡程序将接着进行,以在抹除总数表380中对于该抹除区块增加抹除总数。假如区块进行抹除而成为最新的抹除区块,其抹除总数仍足够大的,是可将具有较小抹除总数的区块中全部有效的页面复制到此最新抹除区块中,然后,在将较小抹除总数的区块进行抹除。再者,较小抹除总数的区块中无效的页面将不会复制到该最新抹除区块中,该较小抹除总数的区块内的资料将复制至该最新抹除区块的已抹除的对应页面,而该最新抹除区块并不会指定为写入区块且会记录到耗损平衡表387中,以表明已抹除的页面是存在于该最新抹除区块中。
缺陷区块表388对于非挥发性随机存取记忆体阵列装置375中的各区块分别使用一个位元进行缺陷表示,以定义区块为制造中产生缺陷或者运用时成为缺陷而无法使用。
实体区块连接表390为一具有项目的双连接列表,其用以表示非挥发性随机存取记忆体阵列装置375中每一区块的锚点项目号码是相等于一区块中的页面号码(例如:每一区块具有64个页面,因此,锚点项目号码可为64)。再者,实体区块连接表390进一步增加两锚点项目,其中一锚点项目用以表示已抹除的区块,另一锚点项目用以指示区块将候补进行损耗平衡的程序。区块项目指向锚点项目借以指出区块中无效页面的总数。锚点项目具有一可指回区块的列表,且锚点项目可根据每一区块中无效页面的号码数量而相对地具有多数个项目。再者,每次区块额外得到一无效页面,将可在实体逻辑位址表380中相对设定一个位元。本发明中,区块也可解开对于一特定锚点的连接,并进一步连接进入下一个更高锚点的连接。实体区块连接表390提供该垃圾收集程序可以快速找到一具有最高无效页面数量的区块。本发明实际操作时,在区块进行抹除而产生一空闲区块以提供非挥发性随机存取记忆体阵列装置375进行页面写入之前,会尽量减少复制页面的数量,以避免空闲区块不足产生页面复制失败的情况发生。
请参阅图3,为本发明以页面为基础对于记忆体进行管理的一固态硬碟的资料储存系统又一实施例的区块示意图。如图所示,除了图2中的实体位址解码器345合并于管理处理器340当中之外,图3实施例的功能构造是与图2完全相同。逻辑位址325、资料信号330及控制码335应用于管理处理器340。管理处理器340包括一管理处理控制器342及一韧体记忆体344。管理处理控制器342为一电脑处理器,其执行一电脑程序程序,以进行非挥发性随机存取记忆体阵列装置375的管理。韧体记忆体344为一电脑可读取储存媒体,其可用以保存一电脑程序码,当该电脑程序码运行时,将可执行上述的电脑程序程序以对于非挥发性随机存取记忆体阵列装置375进行记忆管理。动态随机存取记忆体阵列装置395提供储存空间于页面缓冲器350、逻辑实体转译表355、页面缓冲器快取表382、无效页面表384、抹除总数表386、损耗平衡表(wearlevel table)387及缺陷区块表388。
管理处理控制器342产生所需的位址信号396及控制时序信号397,以储存必要资料至动态随机存取记忆体阵列装置395,或从动态随机存取记忆体阵列装置395提取必要资料。该必要资料实际上可为读取或写入到页面缓冲器350的资料信号、非挥发性随机存取记忆体阵列装置375的实体位址、或者是由实体逻辑转译表380、缺陷区块表388、损耗平衡表387、以及390所得的转译表资讯(table information)。
请参阅图4,为本发明固态硬碟读取及写入一实施例的操作示意图,该固态硬碟以页面为基础进行记忆体管理。如图所示,逻辑位址信号325输入于一实体位址解码器345。该实体位址使用23个位元来表示,较低位阶的3个位元(0…2)用以指向页面内的区段326,接下来的较高阶级的6个位元(3..8)用以指向区块内的页面327,下一较高阶级13个位元(9…21)用以指向区块328,最高阶级位元(22)用以指向芯片位置329。
管理处理器340接收控制码335,以要求资料由非挥发性随机存取记忆体阵列装置375读取或写入。实体位址解码器345将逻辑位址325的最高有效位元(3,…,22)传送至逻辑实体转译表355,以用于逻辑实体转译表355内的索引值357。位置356储存页面的实体位址(100)。假如逻辑实体转译表355的位置356指示资料储存至快取记忆体(cached),该位置即包含页面缓冲器350内的页面位置。管理处理器340检查该储存至快取记忆体的快取页面转译表425以核对页面位置的所有区段(sector)为有效的。如果区段无效的,由非挥发性随机存取记忆体阵列装置375读取至页面位置的无效区段的资料以及储存至快取相关页面缓冲快取转译表420的有效位元都会设定为有效。如果逻辑实体转译表355的位置356指示显示资料未储存至快取记忆体,该位置即包括非挥发性随机存取记忆体阵列装置375内的实际页面位置。
假如逻辑实体转译表355的位置356指示资料已储存至快取记忆体,管理处理器340即指示页面缓冲器350将资料信号330传送至图2中的输入/输出转接器305或由图2中的输入/输出转接器305传送出。假如逻辑实体转译表355的位置356指示资料未储存至快取记忆体,管理处理器340会指示实体位址解码器345从逻辑实体转译表355传送位置356的内容,以作为传送至非挥发性随机存取记忆体阵列装置375的实体位址信号360。管理处理器340也传送阵列控制信号370到非挥发性随机存取记忆体阵列装置375。位置(页面100)的页面378i传送到页面缓冲器350。管理处理器340指示实体位址解码器345将页面位置写入页面缓冲器350内的逻辑实体转译表355的位置356。再者,管理处理器340另外会设定相关页面缓冲快取转译表420的有效位元。
管理处理器340从实体位址解码器345撷取区段位址326并将区段位址326传送至页面缓冲器350。假如资料从非挥发性随机存取记忆体阵列装置375读取,页面缓冲器350即撷取区段位址326所指向的区段并且将其区段资料作为资料信号330进行传送。假如资料要写入,管理处理器340即指示页面缓冲器350将新资料332写入页面位置。
接着在收回(eviction)程序中,页面会从页面缓冲器350中移除。管理处理器340在另一芯片376b内分派页面位置378j的新页面位址,作为资料的页面的新位置。管理处理器340指示实体位址解码器345将新实体位址376j(页面100变为页面524488)写入位置356的逻辑实体转译表355,位置356由逻辑位址325的页面位址部分(页面327、区块328、以及芯片位置329)指向。资料页面从页面缓冲器350写入到378j(324488或376b的页面200)。接着旧位置378i(第一芯片的位置100)进行标记,以在垃圾收集(garbage collection)程序中进行消除(容后详细解释)。
请参阅图5,为本发明以页面为基础的记忆体管理的表格式意图。在当前的科技中,非挥发性随机存取记忆体阵列装置475可具有16G记忆单元(memory cell)或位元(bits)的密度,相当于2G位元组(bytes)或524,288个页面(page)或8,192个区块(block)。在本发明的一实施例中,每个非挥发性随机存取记忆体阵列装置475具有4k位元组以及1、2、或4个储存板(plane)的结构。每个储存板的每个页面合并于页面缓冲器415的位置。例如,在具有4k位元组以及2储存板构造的非挥发性随机存取记忆体阵列装置475中,每个页面缓冲器415内的位置416有8K位元组。本发明中的固态硬碟系统的结构的模拟显示页面缓冲器415加上所有其他表格的大小应该大致为非挥发性随机存取记忆体阵列装置375阵列的总共大小的0.1%。实际上,逻辑实体位址转译表400和实体逻辑位址转译表445是所有动态随机存取记忆体最大的部分。因此,非挥发性随机存取记忆体阵列装置375的128G位元组阵列应该具有128G位元的DRAM。对每个非挥发性随机存取记忆体阵列装置475来说将会有约512个页面。对非挥发性随机存取记忆体阵列装置475的整个阵列来说,这会转换为具有约16M位元组大小的页面缓冲器415。
逻辑实体位址转译表400具有和固态硬碟的逻辑记忆空间一样多的项目页面(entry page)位置405a, …,405i, …, 405n。如图4所示,逻辑实体位址转译表400通过页面位址357进行索引。逻辑实体位址转译表400的每个项目位置405a, …,405i, …, 405n包括非挥发性随机存取记忆体阵列装置475内的实体页面位置478或页面缓冲器415的快取位置。快取旗标(flag)410附加在每个项目位置405a, …,405i, …, 405n中。快取旗标410标示出项目位置405a, …,405i, …, 405n是否位于页面缓冲器415的实体位置或在非挥发性随机存取记忆体阵列装置475中。
页面缓冲器415对资料页面提供暂时的快速存取,该资料页面储存在非挥发性随机存取记忆体阵列装置475中。资料由外部主机电路读取或写入页面缓冲器415。非挥发性随机存取记忆体阵列装置475并非由外部主机电路直接存取。非挥发性随机存取记忆体阵列装置475具有一关联性的页面缓冲快取转译表420。页面缓冲快取转译表420包括一具有项目位置429a, …,429i, …, 429n的快取页面转译表425,其对应至页面缓冲器415内的每个项目位置416a, …,416i, …, 416n。快取页面转译表425内的每个项目位置429a, …,429i, …, 429n具有实体页面位置426、一快取模式旗标427、以及一区段有效旗标428。实体页面位置426提供储存于页面缓冲器415内的页面的非挥发性随机存取记忆体阵列装置475内的实体位置。
快取模式旗标427指示页面资料是否存放于页面缓冲器415中,并且快取模式旗标427为读取快取、串流快取、写入快取、或空闲列表的其中之一号码。如前述,读取快取中的资料为从非挥发性随机存取记忆体阵列装置475所撷取的资料,其保持与非挥发性随机存取记忆体阵列装置475的页面位置相同。写入快取中的资料是写入页面位置416a, …,416i, …, 416n的外部资料,因此,在收回程序中直到资料写回非挥发性随机存取记忆体阵列装置475前,不再和非挥发性随机存取记忆体阵列装置475的页面位置相同。串流快取记忆体包括在收回程序中必须写回快闪记忆体(flash)的脏掉的页面(dirty page),因为快取记忆体内的页面缓冲器相较于快取记忆体页面具有较新的资讯。空闲列表并非真的快取,而是页面缓冲器415内未占据位置的列表,该空闲列表可以握有从页面缓冲器415内所撷取的新页面,或是新资料页面从外部主机电路写入至非挥发性随机存取记忆体阵列装置475。
区段有效旗号428利用一资料位元来指示每个页面的每个区段是否为有效或无效。区段只在非挥发性随机存取记忆体阵列装置475内有效,并且如果需要,必须由非挥发性随机存取记忆体阵列装置475内撷取。区段有效旗号428内的位元数量取决于每个页面内存在的区段数量。如同前述在本实施例中,系统定义为每页具有8个区段,或是每个区段有效旗号428有8个位元。在某些实施例中,页面可以定义为具有8K位元组(512位元组x16区段)或是每个区段有效旗号428具有16位元。在其他实施例中,区段和页面也可以相等,区段有效旗号428可以不需要的。
另外,页面缓冲快取转译表420包括有一最近最少使用连接表(least recently used chain table)430。最近最少使用连接表430具有数个项目,各项目对应快取页面转译表425的每个项目位置429a, …,429i, …, 429n。最近最少使用连接表430具有连接伫列433/434。向前连接伫列433是由最年轻的项目到最旧的项目排序,相反的,向后连接伫列434由最旧的项目到最年轻的项目排序。另外,对每个连接伫列433/434来说最近最少使用连接表430具有4个锚点项目(anchor entry)431a, 431b, 431c, 431d, 432a, 432b, 432c, 432d。这允许最近最少使用连接表430有4个伫列(queue),读取快取、串流快取、写入快取、以及空闲清单分别在连接伫列433/434中。每个连接伫列433和434的锚点项目431a, 431b, 431c, 431d, 432a, 432b, 432c, 432d是每个连接伫列433/434的这4个伫列的起始点。最近最少使用连接表430根据老化顺序(age)连接读取快取、串流快取、以及写入快取、伫列的所有项目。因为接续点(successors)和前置点(predecessors)可立即获得,这个双重连接清单有效率地便利于连入/连出(chain in /chain out)程序。
最近最少使用连接表430的时间顺序机制使得每次当碰到页面缓冲器415内的位置时,最近最少使用连接表430内的项目移动到下一个向前清单(如果它还不在那里)的起始处。所以每个越靠近向前清单的起始处的项目将掉回一个项目。同样地,向前清单的最后项目位置和向后清单的起始相同,并且标记最旧的最近最少使用项目。
假如一输入位址有一逻辑位址,该逻辑位址指向逻辑实体位址转译表400的位置405i,且其内容会指向页面位置5。位置405i的快取旗标410从页面缓冲器415的位置405i而指示指向页面位置5。位置5的页面缓冲快取转译表420内的实体页面位置426指向非挥发性随机存取记忆体阵列装置475内的实体页面1000。在位置项目429i的页面5的区段有效旗号428包括一数值(7),数值(7)表示在位置416i中,除3个最低阶级区段外,其余其他全部区段都是无效的。这3个最低阶级区段储存于非挥发性随机存取记忆体阵列装置475中的实体页面1000。
在固态硬碟的读取和写入资料中,不在页面缓冲器415的页面必须由快取模式旗标427从空闲列表中分配到一个页面。如果页面缓冲器415内的可用页面数量低于门槛值,就会执行收回程序以移除最近最少使用页面。最近最少使用页面连接表430提供一种由页面缓冲器415收回页面的机制。如同前述,页面缓冲位置416a, …, 416i, …, 416n的占据者可以分为读取快取、串流快取、写入快取、以及空闲列表的其中之一。
串流快取以及写入快取内所有的页面缓冲位置416a, …, 416i, …, 416n都是脏掉的(dirty)并且在某个时间之后必须写回非挥发性随机存取记忆体阵列装置475。因为写入页面缓冲器415所以页面缓冲器415内的位置称为脏掉。页面缓冲器415的位置是写入快取或是串流快取的成员。因为只是非挥发性随机存取记忆体阵列装置475的页面位置的复制,所以读取快取页面不被当做是脏掉的。非脏掉的页面会立即列于空闲列表。在插回可直接使用的空闲列表之前,脏掉的页面必须写回非挥发性随机存取记忆体阵列装置475的页面位置。
在执行另一指令(读取或写入)时,从串流快取所找到的页面缓冲位置416a, …, 416i, …, 416n会晋升到写入快取。如果页面缓冲位置416a, …, 416i, …, 416n需要被写入并且已经在读取快取中发现,它也会晋升到写入快取。
每个快取都有一个已经定义的门槛值或是标准填满率,其可以根据工作量而动态改变。当空闲清单小于门槛值之下时,收回程序会启动以在页面缓冲器415内提供可用页面。在执行两个步骤的收回时,收回程序选择页面缓冲位置416a, …, 416i, …, 416n,该两个步骤包括利用计算到门槛值的实际填满率的距离以选择快取。由具有许多页面缓冲位置416a, …, 416i, …, 416n的快取中找出其中最超过门槛值的快取,并且放开该页面缓冲位置416a, …, 416i, …, 416n。由页面缓冲器415要回收的页面缓冲位置416a, …, 416i, …, 416n由最近最少使用连接表430选择以找到快取内最旧的页面缓冲位置416a, …, 416i, …, 416n。
最近最少使用连接表430与页面缓冲快取转译表420及页面缓冲器415平行操作。老化的页面缓冲位置416a, …, 416i, …, 416n项目经由重新连接最近最少使用连接表430内的项目而完成。例如,如果选择读取快取作为具有从其填满率门槛值算起有最大距离的快取,向前连接伫列433(位置12)的向前锚点项目431a指向向前方向以到达页面缓冲器415的最年轻项目(位置0)。向后连接伫列434(位置12)向后锚点项目433a指向向后方向到页面缓冲器415的最老项目(位置4)。对读取快取来说连接伫列433/434是相反顺序:0, 2, 4以及4, 2, 0。每次参考每个老化的页面缓冲位置416a, …, 416i, …, 416n时,它将变为最年轻的一个(将它解除连接(unchained)并且重新插入在最新的之前)。即,在参考页面缓冲位置416h(位置4)时,向前以及向后连接伫列433/434会重新排序,使得每个伫列具有指向位置4的431a,位置4依次指向位置0,位置0指向位置2。432a指向依次指向位置0的位置2,位置0指向位置4。最近最少使用连接表430的每个项目皆由在连接伫列433/434中移动其参考点在伫列中的一个位置而产生老化。
如前述,要收回并且称为脏掉的页面缓冲位置416a, …, 416i, …, 416n必须具有区段,该区段已经复制有页面缓冲器415内的抹除页面。非有效区段由非挥发性随机存取记忆体阵列装置475到页面缓冲位置416a, …, 416i, …, 416n。接着复制完整页面至非挥发性随机存取记忆体阵列装置475中已抹除的页面。逻辑实体位址转译表400调整反应非挥发性随机存取记忆体阵列装置475内的新实体位置。非挥发性随机存取记忆体阵列装置475内的先前页面现在标记为无效,如同之后所述,该先前页面包括页面缓冲位置416a, …, 416i, …, 416n内曾经为无效的区段。如果非挥发性随机存取记忆体阵列装置475的抹除页面号码低于一抹除页面门槛值,便会触发垃圾收集程序。
请参阅图6,是本发明以页面为基础对于记忆体进行管理的垃圾收集中各表格的示意图。为提高效能,非挥发性快闪随机存取记忆体阵列装置475在执行任何垃圾收集程序时,会同时选取一区块进行抹除,以便于使用一快闪记忆体装置的复制页面命令。垃圾收集使用的区块是由扫描实体区块连接表450中的无效页面锚点连接(invalid page anchor chain) 455而得。实体区块连接表450分为一向前连接伫列451及一向后连接伫列452。双向连接表(实体区块连接表450中的向前连接伫列451与向后连接伫列452)可提供较佳的效能。因为前者与后者可立刻得知,故资料的撷取或插入很快。反之,使用简单连接表则需从头扫描以计算其前者。除了抹除总数表480需由抹除总数最低者开始之外,区块连接并无方向性。垃圾收集使用的区块,在搜寻无效页面表435时会选用抹除总数最低的区块。在垃圾收集的最后,该区块将会被抹除。选取抹除总数最低的区块可避免过度耗损。
具有实体区块连接表450的快闪随机存取记忆体阵列装置475,其向前连接伫列451与向后连接伫列452中的第一个项目(entry)分别对应于各快闪随机存取记忆体阵列装置475。实体区块连接表450中,向前连接伫列451与向后连接伫列452超出个别区块项目(individual block entry,例如453a,…,453i,…,453m,及454a,…,454i,…,454m)部分的项目即为无效页面的锚点连接455。
快闪随机存取记忆体阵列装置475的所有区块皆包含于65个无效页面锚点连接455(0至64)的其中之一。扫描无效页面锚点连接455是由无效页面锚点连接64 456n与457n开始,至无效页面锚连接0 456a与457n结束。无效页面锚连接0 456a与457a指向个别区块项目453a,…,453i,…453m及454a,…,454i,…,454m中具有零(0)无效页面者,各无效页面锚点连接455分别表列具有一区块列表,该区块列表具有数个无效页面号码,各无效页面锚点连接455的个别位置用以表示各无效页面号码。例如,区块100在个别区块项目453i与454i中指向无效页面锚点连接455的位置N+61 456i与457i,表示区块100具有61个无效页面及3个有效页面。
每当快闪随机存取记忆体阵列装置475的一区块增加1个无效页面时,无效页面表435中代表该区块位置438的无效位元项目会被设定指示该页面为无效。在区块100的范例中,区块100对应的项目438中具有3个有效页面,其余61个页面为无效。当增加1无效页面时,实体区块连接表450中代表该区块的位置并未改变,而在无效页面锚点连接455中的位置则改变至较高1级的位置。
例如:区块100 453i与454i从锚点连接61 456i与457i中移除或解除连接,并插入或连接至锚点连接62 456j与457j中(假设锚点连接62 456j与457j原本为空)。空的连接是以向前连接与向后连接指向自己表示。
管理处理器440执行垃圾收集程序时,搜寻无效页面锚点连接455并选取具有最高数量无效页面的区块,借以将重复复制最小化。在本范例中,垃圾收集程序将复制区块100中的有效页面478a、478b及478c至快闪随机存取记忆体阵列装置475中的另一区块。有效页面478a、478b及478c被写入区块200 477b中已抹除的页面478e、478f及478g中。被选定写入的区块200 477b依序允许被写入的资料。先前被写入的页面478d将优先于有效页面478a、478b及478c被复制到已抹除的页面478e、478f及478g中。若区块200 447b在复制有效页面478a、478b及478c的过程中被填满,则将由已抹除页面锚连接(锚连接64) 456m与457m中选取另一已抹除的区块。当需要写入新的区块时,该已抹除页面锚连接(锚连接64) 456m与457m是经由搜寻最低抹除总数而得。
当选定一区块477a后,其所有有效页面478a、478b及478c将被复制到一第二区块477b已抹除的页面478e、478f及478g。在复制区块477a的有效页面478a、478b及478c前,有效页面中为“脏”的页面缓冲器,其所有区段需先复制。快闪随机存取记忆体阵列装置475中所有无效区段将最先被读取。
管理处理器440执行垃圾收集程序时,于复制后将所有有效页面478a、478b及478c在无效页面表435中设定为无效。在逻辑实体位址转换表400中,逻辑页面位置2的快取旗标410项目表示该页面位于实体页面位置6400 478a的资料已被复制到索引位置为0的页面缓冲器415中。类似地,逻辑页面位置5 405f的快取旗标410项目表示该页面位于实体页面位置6404 478b的资料未保留于页面缓冲器415中。实体位置(6404)405f被改变到新的实体位置(12811)。类似地,具有索引位置0 426的页面缓冲快取表420由实体位置(6400)改变到新的实体位置(12810)。
在实体逻辑位址表445中,实体页面位置6400 446a由逻辑页面位置2改变到一个不合法的页面指标。不合法的页面指标有两个,即两个最高位址数字(0xffffffff, 0xfffffffe)。两者皆表示无相关联的逻辑页面数字。位址数字0xffffffff表示该页面已被抹除,位址数字0xfffffffe表示该页面为无效。其中,逻辑位置2被改变到不合法的页面指标0xfffffffe表示该页面为无效。类似地,页面位置6404 446e由逻辑位置5改变到不合法的页面指标0xfffffffe。项目6401 446b、6402 446c及6403 446d先前被设定为无效,故具有不合法的页面指标0xfffffffe。页面位置12810 446f及12811 446g分别由不合法的页面指标0xffffffff (已抹除页面)改变为逻辑页面数字2及5。当区块100中所有的页面皆在无效页面表435中显示为无效,则区块100 477a抹除完毕。
当快闪随机存取记忆体阵列装置475的区块100 438被抹除,可易于达到耗损平衡。耗损平衡程序的模式,在于令图4所示的快闪随机存取记忆体阵列装置375均匀地损耗。
请参阅图7,为本发明以页面为基础对于记忆体进行管理的耗损平衡中各表格的示意图。在本实施例中,假设每区块包含有64个页面,则区块100 477a的起始位置与页面6400 478a的起始位置相同,而区块200 447b的起始位置与页面12800 478b的起始位置相同。
在本发明的耗损平衡程序中,最新抹除的区块200 477b在抹除总表480中的对应位置482b将会增加。将位置482b的抹除总数值与一滑动视窗的抹除总数 (sliding window)进行比较,若大于滑动视窗的抹除总数,则最新抹除的区块接收来自具有最低抹除总数的区块的资料。该滑动视窗的抹除总数由搜寻抹除总数表480所得最低抹除总数加上一区块抹除总数的门槛值而得到。若有数个区块具有相同的抹除总数,则有效页面最少的区块将被指定为新的空闲区块。若最新抹除的区块200 482b的抹除总数大于滑动视窗的抹除总数,则具有最低抹除总数的区块100 482a将被转移至最近抹除的区块200 482b。其转移是依序复制所有有效页面478a、478b与487c至最近抹除区块200 482b的页面478j、478k与487k,并忽略所有无效页面478h与478i。区块100 482b的无效页面478h与478i变成区块末端的已抹除页面478m,做为后续写入之用。如前述,无效页面的数目由无效页面表435取得。无效页面表435以一64位元字元标示每一区块的无效页面,其中各位元分别显示对应的页面为有效437a、437b及437c或无效437d。
页面从区块100 477a复制至区块200 477b时,逻辑实体位址表400必须更新。欲得知快闪随机存取记忆体阵列装置475中逻辑页面与有效实体页面478a、478b及478c的关联,则需存取实体逻辑位址表445。页面6400的索引446a显示其关联页面为逻辑页面2。页面6400的索引446e显示其关联页面为逻辑页面5。逻辑页面2的索引405c及其快取旗标410显示该页面已被复制到图4所示的页面缓冲器415。页面缓冲快取表420的项目426中实体页面位址由6400改变为12800。实体逻辑位址表445的项目446a由逻辑页面2更新为不合法页面指标0xfffffffe而表示为无效页面。索引405f显示该页面未保留于页面缓冲器415中,并由实体页面位址6404改变为新的实体页面位址12801。实体逻辑位址表445中逻辑页面5的项目446e改变为不合法指标0xfffffffe表示为无效。并将新页面478j与478k由已抹除页面的不合法指标0xffffffff分别更新为逻辑页面2实体位址12800 446f及逻辑页面5实体位址12801 446g。有效页面478c也适当地更新其实体页面位址。复制之后,区块100 477a为已抹除,并成为新的空闲区块,可写入新页面。具有空闲页面的区块200 482b被登记到耗损平衡表485中。若区块100 477a中具有无效页面,已抹除的区块200 477b在耗损平衡的复制程序中将不会被完全覆盖,而会剩余部分已抹除的页面。耗损平衡表485用于暂时保留未被覆写的页面的位址。当一区块被写满时,会在取用新的已抹除区块之前检查耗损平衡表485中是否记录具有空闲已抹除页面的区块。而这些区块中的空闲已抹除页面将会优先被写入利用。
在抹除总数表480中,各区块的抹除总数皆位于一最小抹除总数值与最小抹除总数值加上一门槛值的滑动视窗之中。该最小抹除总数值为快闪随机存取记忆体阵列装置475中所有区块实际上的最低抹除总数。该抹除总数门槛值,通常单阶储存单元(single level cell)为4096,多阶储存单元(multiple level cell)为512。快闪随机存取记忆体阵列装置475的抹除区块连接是以各区块的抹除总数排序。当区块的抹除总数超过该滑动视窗抹除总数,耗损平衡程序将扫描抹除总数表以取得一具有最低抹除总数的区块为取代区块,并将两区块交换。若同时有多个区块具有最低抹除总数,则选取具有最多无效页面者。该最低抹除总数值于扫描抹除总数表480后,依据扫描结果更新。最低抹除总数值更新后,若仍有交换区块的需求,则耗损平衡程序将再次被执行。滑动视窗的值也需根据最低抹除总数的更新而重新计算。
前述基于页面管理快闪记忆体的读取、写入、区块抹除等等作业模式可由一独立设计的记忆体管理电路实施。此外,本发明的基于页面的快闪记忆体管理也可由微控制器执行一管理程序实施。其中,该微控制器连接一储存有管理程序或韧体的电脑可读媒体,当微控制器执行该管理程序或韧体时,即可实施前述的快闪随机存取记忆体阵列装置的管理。
管理快闪随机存取记忆体阵列装置的韧体为一多执行线程程序,可分为复数层或执行线程,分别执行收回程序、垃圾收集及耗损平衡等。各执行线程为平行执行,并分别由对应的门槛值触发。当可用页面缓冲器减少时,由一读/写命令触发快取收回程序。”脏”页面收回程序需进行页面抹除,当已抹除区块的数量太少时,页面抹除动作将触发垃圾收集程序。垃圾收集结束后,区块为已抹除。而当区块的抹除总数太高时,区块的抹除动作将触发耗损平衡程序。
在本实施例中,该多线程程序用以管理快闪随机存取记忆体阵列装置,该多线程程序是由管理处理器(340于图4或440于图6与图7)执行。该多线程程序包含有一闲置执行线程(idle thread),当收回执行线程、垃圾收集执行线程或耗损平衡执行线程的门槛值未达到时,则闲置执行线程将会被执行。该程序通常执行一回圈,如下所示:
While (TRUE)
{
WaitEvent (SomeEvent);
Handle SomeEvent;
}
其中,WaitEvent函式在对应的事件(event)未发生时(即各执行线程的门槛值未达到),会令管理处理器340、440执行的作业系统排程器(scheduler)切换(switch)至其他的工作(task)。该闲置执行线程中包含有一睡眠命令,当所有执行线程都在等待状态时,可命令处理器进入睡眠状态。
请参阅图8,为本发明以页面为基础管理非挥发性随机存取记忆体阵列装置进行读取资料的步骤流程图。最顶层只会看到页面缓冲器快取,一读取指令要求逻辑页面位址的页面缓冲器快取包含有页面资料。开始进行读取动作,如步骤500所示,主要对非挥发性快闪记忆体中一连串区段的被需求区段进行读取,并对该需求区段的逻辑区段位址进行解码的动作,如步骤505所示。ATA标准的读取及写入的指令包括有一位址,且该位址指向一需求的逻辑区段号码(SN)及一区段总数(SC)。读取及写入的指令起始于区段号码,并处理区段数所指出的连续区段号码。如图4所示,该逻辑位址可定义及界定出非挥发性随机存取记忆体阵列装置内的区段、页码、区块及芯片的位置。逻辑页面位址(如图4所示的327、328及329)指向需求的页面,并对非挥发性随机存取记忆体阵列装置内的页面进行读取,如步骤510所示。逻辑页面位址为逻辑实体位址转译表515的索引,逻辑实体位址转译表515包括有被读取的需求资料页面的实体位址516。
快取旗标517标示出资料页面是位于非挥发性随机存取记忆体阵列装置或位于页面缓冲器内。若资料页面不在页面缓冲器内,则在非挥发性随机存取记忆体阵列装置内的页面资料的实际实体位址将会在实体位址项目516。若资料页面为页面缓冲器,进入资料页面的页面缓冲器的索引值将会在实体位址项目516中。借助检查快取旗标将可得知需求的资料页面是否位于页面缓冲器快取,如步骤520所示。
若页面资料位于页面缓冲器快取位置中,则会从页面缓冲器快取555读取页面,如步骤550所示。从页面资料中细分成的区段资料将以符合传输协定的格式陆续分页传输至送至外部主机电路,如步骤565所示。若逻辑页面位址的快取旗标517所指向的页面资料尚未被从非挥发性随机存取记忆体阵列装置中复制,则可由空闲列表快取检查出空闲列表是否未被占用或是已有充分足够的空闲页面缓冲器位置可用以由非挥发性随机存取记忆体阵列装置接收页面资料,如步骤570所示。若空闲列表未被占用且没有页面缓冲快取区为空闲状态,则一收回步骤将会被执行,以空出至少一最近最少使用缓冲器快取位置,如步骤575所示。若有足够的空闲页面缓冲器的快取位置或收回程序已完成,便可指派页面缓冲器位置接收页面资料,如步骤580所示。可由逻辑实体位址转译表515中取出实体页面位址516并进行解码,如步骤585所示,且页面资料由非挥发性随机存取记忆体阵列装置读取至页面缓冲器快取555,如步骤590所示。页面缓冲器位置由页面缓冲器快取表535的空闲列表中移除,并插入可为读取快取项目的页面缓冲器快取表535。逻辑实体位址转译表515可借助设定快取旗标517的动作来进行调整,而在页面缓冲快取表535中最近最少使用连接表的页面缓冲器位置的索引则会被设定并指派为页面缓冲器位置,如步骤545。从页面缓冲器快取555中读取页面,如步骤550。从页面资料中细分成的区段资料将以符合传输协定的格式陆续分页传输至送至外部主机电路,如步骤565所示。
请参阅图9,本发明以页面为基础管理非挥发性快闪记忆体写入资料的步骤流程图。写入的指令需要页面缓冲的快取位置来接收资料页面及相对的逻辑页面位址。进行写入的动作,如步骤600所示,主要对非挥发性快闪记忆体中一串区段的被需求区段进行写入,并该需求区段的逻辑区段位址进行解码的动作,如步骤605所示。如图4所示,该逻辑位址可用以定义并界定出非挥发性随机存取记忆体阵列装置内的区段、页码、区块及芯片的位置。逻辑页面位址(如图4所示的327、328及329)指向需求的页面,并对非挥发性随机存取记忆体阵列装置内的页面进行读取,如步骤610所示。逻辑页面位址为逻辑实体位址转译表515的索引,逻辑实体位址转译表515包括有被读取的需求资料页面的实体位址516。
快取旗标517标示出资料页面是位于非挥发性随机存取记忆体阵列装置或位于页面缓冲器内。若资料页面不在页面缓冲器内,则在非挥发性随机存取记忆体阵列装置内的资料页面的实际实体位址将位于实体位址项目516。若资料页面为页面缓冲器,进入资料页面的页面缓冲器的索引值将会在实体位址项目516中。借助检查快取旗标将可得知需求的资料页面是否位于页面缓冲器快取,如步骤615所示。
若页面资料位于页面缓冲器快取位置中,则页面缓冲器快取表535的快取模式项目537内的页面缓冲器位置会被晋升为的写入快取,如步骤645所示,以使得页面资料被写入页面缓冲器快取555,如步骤650所示。
若逻辑页面位址的快取旗标517指向的页面资料尚未被从非挥发性随机存取记忆体阵列装置中复制,则可由空闲列表快取检查出空闲列表是否未被占用或是已有充分足够的空闲页面缓冲器位置可用以由非挥发性随机存取记忆体阵列装置接收页面资料,如步骤620所示。若空闲列表未被占用且没有页面缓冲的快取位置为空闲状态,则一收回步骤将会被执行,以空出至少一最近最少使用缓冲器快取位置,如步骤625所示。若有足够的空闲页面缓冲器的快取位置或收回步骤已完成,便可指派页面缓冲器位置来接收页面资料,如步骤630所示。可由逻辑实体位址转译表515中取出实体页面位址516并进行解码,如步骤635所示。页面缓冲快取表535的快取模式项目537内的页面缓冲器位置将会被晋升为串流快取,如步骤640所示。使得页面被写入页面缓冲器快取555,如步骤650所示。
韧体的第二层为快取收回线程,如图8的步骤575及图9的步骤625所示。例如,当固态硬碟系统具有8个通道,每个通道有8个预备好的busy lines,并具有64个非挥发性随机存取记忆体装置。此外还包括有64个回收线程,用以将页面立即由快取写入快闪记忆体。在最佳的状况下每一个快闪记忆体都具有一回收线程,但如此一来将会占用太多的资源(每一线程的堆迭式SRAM)。为了节省资源也可使得数个快闪芯片共用一个回收线程,例如2个、4个或8个快闪芯片共用一个线程。
当达到最大页面使用门槛值时,收回线程便会开始作用。最大页面使用门槛值为页面缓冲器内的页面资料的页面位置的最大数量。当收回线程完成之后,页面缓冲器快取内的可用的空闲页面缓冲器的数量将会大于最大页面缓冲器门槛值。最大页面使用门槛值及最小空闲页面缓冲值必须是适当选择的门槛及可能需要随着各个时间的工作量来进行调整的门槛。主要的目标是随时都有可用的空闲页面缓冲器的快取位置,以避免需要页面缓冲器接收页面资料时,韧体的顶层有延迟的情形。
请参阅图10a及图10b,为本发明以页面为基础管理页面缓冲器的页面收回的流程图。页面收回的线程如上所述,并可于快取页面缓冲器的空闲页面缓冲器的快取位置的数量过低时进行。如上所述,当有足够的页面缓冲器位置被指派至空闲列表快取,便不会进行页面回收线程。回收的动作可释放页面缓冲器位置,若快闪记忆体脏的(串流快取或写入快取)时,则可借助将页面资料内容写回其中。管理处理器340或440(如图6或图7所示) 的操作系统的时程表可控制回收线程的起始,并可在空闲列表快取构件的数量大于最小空闲页面缓冲器门槛值时起动,如步骤700所示。空闲列表快取构件的数量可与最小空闲页面缓冲器门槛值进行比对。若空闲列表快取构件的数量大于最小空闲页面缓冲器门槛值,则回到步骤700直到空闲列表快取构件的数量小于最小空闲页面缓冲器门槛值为止。每一个读取快取、写入快取及串流快取的填充率都会被计算出,如步骤710、715及720。如上所述,在最近最少使用连接表(如图5的430)中包括有每一个读取快取、写入快取及串流快取的最近被使用的顺序。此外,页面缓冲快取被区分成数个快取,且每一种型式的快取都可以即时进行调整。快取的回收是以基于偏离门槛值的差异为基准,且门槛值被建立于划分页面缓冲器快取,例如写入快取占页面缓冲快取的50%;读取快取占页面缓冲快取的35%;而串流快取则占页面缓冲快取的15%。实际使用时划分的比例可能不同,因为缓冲器可能从一个快取移到另一个,例如由读取快取移往串流快取,或是由串流快取移往写入快取等等。
快取(如读取快取、写入快取及串流快取)具有最大填充率或与最小空闲页面缓冲器门槛值的最小差距,或者是可预先由页面缓冲快取表535的快取模式数字来定义或选择快取的大小,如步骤725所示。被回收的最新被使用的页面快取缓冲位置则由最新使用的连接表730所决定,如步骤730所示。
如上所述,串流快取或写入快取的缓冲器页面快取为脏的。在选择页面缓冲器快取的最大填充率时,如步骤725所示,主要是由被选取的页面缓冲快取位置是否脏的而决定,如步骤740所示。若页面缓冲器位置为脏的,则会由页面缓冲快取表535中读取区段有效旗标536,以判断是否将所有包括有效资料的区段被写入非挥发性随机存取记忆体阵列装置。所有的区段有效旗标皆会被测试,如步骤740所示,以判断页面缓冲器位置内的页面资料是否皆为有效,如步骤750所示。若所有页面资料的区段都不是有效,则可由页面缓冲快取表535中重新取得实体位址538并进行解码,如步骤755所示。由非挥发性随机存取记忆体阵列装置读取有效页面资料,如步骤760所示,并以页面缓冲器快取内的有效资料与有效页面资料重新组合,如步骤765所示。
页面资料从页面缓冲器位置被写入非挥发性随机存取记忆体阵列装置,如步骤770所示。收回页面缓冲器位置则由其最近被指派及使用的快取中移出, 如步骤775所示。回收快取项目则由被选取的快取中最近被使用的连接中取出,以进行回收的动作,如步骤725所示。并将回收快取项目插入最近最少使用连接表的空闲列表连接中,如步骤780所示。
开始进行回收的程序,如步骤700所示,并将更多的页面缓冲器位置进行回收,直到空闲页面缓冲器位置的数量大于最大空闲页面缓冲门槛值。在将有效页面写入非挥发性随机存取记忆体阵列装置的过程中,如步骤770所示,非挥发性随机存取记忆体阵列装置中的一抹除页面位置是需要从页面缓冲器快取的串流快取或写入快取收回各有效资料。且页面不会由读取快取写回非挥发性随机存取记忆体阵列装置。所有的页面都是有效的,除了位于读取快取的页面内的无效区段。借此所有被抹除的空闲抹除页面都可以被使用。
在韧体的第三层中,垃圾回收程序被唤起并用以管里区块的抹除程序。以固态硬碟为例,包括有8个通道,且每个通道包括8个预备好的busy lines,并具有64个非挥发性随机存取记忆体装置。有多达64个垃圾回收线程,并可同时抹除各个区块。
垃圾回收程序会纪录那些页面为无效或废弃。主要包括有四种页面的分级:有缺陷的页面、被写入的页面、无效的页面及被抹除的页面。借助判断区块所具有的无效页面的最高数量,可使得每一个垃圾回收程序线程选择一区块。若有数个区块具有相同号码的无效页面,则具有最小抹除次数的区块将会被选取。
请参阅图11,为本发明以页面为基础管理的非挥发性快闪随机存取记忆体阵列装置的垃圾回收机制的流程图。垃圾回收程序如以上所述,并于非挥发性随机存取记忆体阵列装置内被抹除的页面位置的数量过低时起动。当非挥发性随机存取记忆体阵列装置内有足够的被抹除页面,则垃圾回收机制是一种无止境的空转。管理处理器340或440(如图6或图7所示) 的操作系统的时程表可控制垃圾回收程序的起始,并可在非挥发性随机存取记忆体阵列装置的被抹除页面位置的数量小于被抹除页面门槛值时起动,如步骤800所示。将非挥发性随机存取记忆体阵列装置的被抹除页面位置的数量与一抹除页面门槛值进行比对,如步骤805所示,当非挥发性随机存取记忆体阵列装置的被抹除页面区的数量小于抹除页面门槛值,其他线程开始且不断地循环过程(如步骤800),直到可使用的抹除页面区的数量大于抹除页面门槛值为止。若否,则垃圾回收动作则不会开始进行。
当被抹除页面位置的数量低于抹除页面门槛值时,便可搜寻实体区块连接表450,并找出具有最大无效页面的区块,如步骤810所示。区块的选择是位了借助检视实体区快连接表450的无效页面锚点连接456a、…、456n及457a、…、457n找出垃圾收回。实体区快连接表450被区分成向前连接伫列451及向后连接伫列452。向前连接伫列451及向后连接伫列452的第一项目与非挥发性随机存取记忆体阵列装置的非挥发性随机存取记忆体装置的各个区块相对应。向前连接伫列451及向后连接伫列452的项目是无效页面的锚点连接455,且向前连接伫列451及向后连接伫列452横跨特定的区块项目453a,…,453m及454a,…,454m。非挥发性快闪记忆体的所有区块为65个非挥发性随机存取记忆体装置(0…64)的无效页面锚点连接阵列的其中一个。非挥发性随机存取记忆体装置的无效页面锚点连接阵列将会被扫描,并由无效页面的锚点连接64 456m及457m开始,并至无效页面锚点连接 0 456a及457a为止。无效页面锚点连接 0 456a及457a指向各个具有零(0)无效页面的区块项目453a,…,456m及…,454a,…454m,并可借助无效页面的区块项目453a,…,456m及…,454a,…454m来呈现无效页面的锚点连接455,再者,各个无效页面的锚点连接455具有一无效页面数量的区块列表。
当被具有最大无效页面的区块被选定时,将会进一步判断区块内所有的页面是否皆为无效,如步骤815所示。若不是所有页面都是无效,则在当下写入区块内的被抹除页面的实体位址将会由被抹除区块被指派至有效页面的逻辑位址,如步骤820所示。有效页面资料则会由将被抹除的区块复制至非挥发快闪记忆体的现行写入区块的页面位置。要注意的是垃圾回收门槛可同时被多个非挥发性随机存取记忆体装置所执行。
在无效页面表435中设定抹除区块的复制页面为无效,并设定目前写入区块的新的复制为有效页面资料,如步骤830所示。逻辑实体位址转译表400被更新并映射逻辑页面号码指向非挥发性随机存取记忆体装置内新的实体区的逻辑页面。若逻辑页面号码位于快取页面缓冲器,则快取页面表420将会更新。当所有页面在测试后皆为无效,如步骤815所示,则该区块将会被抹除,如步骤835所示。所有被抹除区块的页面具有所有的逻辑页面号码,设置于实体逻辑转译表445内并设定为具有不合法位址码(0xffffffff)的抹除页面,如步骤840所示。抹除总数表480会记录增加的区块抹除总数,如步骤845。在抹除一个区块时,耗损平衡程序将会执行,以确保所有的区块具有大约相同的抹除总数,以使得各非挥发性随机存取记忆体装置的耗损相同。则抹除页面的总数再次与抹除页面门槛值比对,如步骤805所示,且垃圾回收步骤将会重新开始或停止,如步骤840所示。
耗损平衡程序的执行是为了使得非挥发性随机存取记忆体阵列装置的使用较为平均,并使得非挥发性随机存取记忆体阵列装置各个部分的损坏时间较为相近。在垃圾回收程序中各个区块的抹除后,抹除记数表的所有区块的抹除总数将会被监看。非挥发性随机存取记忆体阵列装置的各个区块的抹除总数位于滑动视窗内,滑动视窗的抹除总数是以最小区块抹除总数加上抹除总数门槛值为基础。当区块的抹除总数大于滑动视窗的抹除总数,则一具有最小区块抹除总数的区块将复制到此超过滑动视窗的抹除总数的区块中,然后,该具有最低抹除总数的区块成为一新的可写入区块。
耗损平衡程序具有两种模式:动态耗损平衡程序及静态耗损平衡程序。在动态耗损平衡程序下,当有大于一个可用的抹除区块时,则会选择最小抹除次数的区块。在静态耗损平衡程序下,一部分的非挥发性随机存取记忆体阵列装置会被视为读取资料(静态资料),且该读取资料往往是很少被读取的。例如读取资料可为节目、歌曲、电影等等。具有高抹除资料次数的区块则会与低抹除次数的区块交换。这种交换可为高写入区块与低写入区块(静态资料)的交换。本发明实施例的方法及装置可同时使用动态平均模损程序及静态平均模损程序。
请参阅图12a、12b及12c,是用以说明本发明以页面为基础管理非挥发性快闪随机存取记忆体阵列装置的一耗损平衡程序的步骤流程图。在垃圾收集程序期间的一区块被抹除之后,借助收回(方块902)最新抹除区块的抹除总数,以启动损耗平衡程序(方块900)。最新抹除区块的抹除总数将存在于前述滑动视窗内,该滑动视窗的抹除总数的范围也可为其中一区块的最低区块抹除总数加上一抹除总数的门槛值。例如,对非挥发性多层次快闪随机存取记忆体芯片而言,该抹除总数门槛值大约为512,但对非挥发性单层次快闪随机存取记忆体芯片而言,该抹除总数门槛值大约为4096。
相较于最新抹除区块,存在于非挥发性快闪随机存取记忆体阵列装置内所有区块中具有最大抹除总数的一区块,将借助检索抹除总数表480而被发现。该抹除总数表480也将被检索以发现具有最小抹除总数的区块,如步骤904所示。滑动视窗的一抹除总数将被确定数量,如步骤906所示,其为具有最小抹除总数的区块的抹除总数再加上抹除总数门槛值(最低抹除总数+N,其中N是为抹除总数门槛值)。为了更好的损耗平衡,抹除总数表480将被扫描,以取得所有非挥发性快闪随机存取记忆体装置的所有区块的抹除总数。如果完整的扫描将花费过多的时间,一种好的大概方法是可随意的启动及检索该抹除总数表480的一固定部分(例如一半),或者是随意经过该抹除总数表480的一部分。如果一种不充分的扫描将被使用于来决定具有最小抹除总数的区块时,一种随机函数(random function)将被援用而检索出具有最小抹除总数的区块。如果扫描至抹除总数表480尾端,将从起端继续开始扫描。
最新抹除区块的抹除总数将与滑动视窗的抹除总数进行比较,如步骤908所示。假如两者抹除总数的差距不大于抹除总数门槛值时,该损耗平衡程序将被终止,如步骤930所示。假如两者抹除总数的差距是大于抹除总数门槛值时,具有最小抹除总数的区块将被指定为最新可写入区块(new spare block)。具有最小抹除总数的区块的所有页面将被测试以决定是否所有的页面都是无效的,如步骤910所示。假如并不是所有页面无效的,则该具有最小抹除总数的区块的有效页面将被复制至最新抹除区块,如步骤912所示,具有最小抹除总数的区块的被复制页面将被设定成无效的,如步骤914所示,而存在于新抹除区块的新的复制页面则被设定成有效的,如步骤914所示,逻辑实体转译表516也将被更新。如果快取旗标517指示逻辑页面是被快取的,则页面缓冲器快取表535将被更新,以致使包含有最新抹除区块的实体位置及快取位置的页面缓冲器位置538将被导入写入快取(write cache),而写入快取则是储存于页面缓冲器快取表535的快取模式记录(cache mode entry)537内。该复制程序将一直被执行,直到所有页面变成无效为止,而在这段时间内,具有最小抹除总数的区块中的页面的有效性也将一直被测试,如步骤910所示。
无效页面将不会被复制,且具有最小抹除总数的区块的无效页面将成为存在于该最新抹除区块内的抹除页面。值得注意的是,有效页面将被持续的复制至最新替换区块(new replacement block)中。例如,如果该替换区块具有三个无法被复制的无效页面,则这最新抹除区块的最后三个页面也将不会被改变及保持抹除。当具有最小抹除总数的区块的所有页面都是无效后,它就会被抹除,如步骤916所示。
具有最小抹除总数的区块的页面将被设定成不合法位址码(illegal address code),如步骤918所示,以成为一储存于实体逻辑位址表445的抹除页面(0xffffffff)。抹除总数表480将增量,如步骤920所示,以成为一具有最小抹除总数的区块。如果具有最新复制页面的替换区块具有抹除页面,将登入于损耗平衡表485,如步骤922所示,被作为一当现行写入区块已满时可被使用的可写入抹除页面,而损耗平衡程序也将在此时被终止,如步骤930所示。然而,在另一方面,如果替换区块是持续被需要时,这个程序也会被重复确定。
以页面为基础管理的一种非挥发性快闪随机存取记忆体阵列装置的一些实施例中,这三个层级(收回、垃圾收集、及损耗平衡)当有需要时将可同时执行。该收回及垃圾收集程序将跑在读取及写入操作之前被执行,以提供在页面缓冲器快取内的顶层具有页面缓冲器位置。本发明以页面为基础管理的一种非挥发性快闪随机存取记忆体阵列装置的操作模式不仅可适用于前述几个少数实施例而已,也可期待适用于不限制页面缓冲器位置。
先前所描述实施例中,主要是揭露一种具有页面读取、写入及区块层级抹除功能,并以页面为基础管理的非挥发性快闪随机存取记忆体阵列装置,它可提供一种很高执行力的任意写入功能。而在其他实施例中,主要是揭露一种以次区块的使用来替代页面,一个次区块将具有许多页面,而一个区块又包含有数个次区块。大量次区块将意指所有内部表列的大小将被缩减,次区块将重组总增加、及垃圾收集总减少。具有大量次区块将可提供持续性写入及恶劣的任意写入。又,在其他实施例中,于同一时间内将可使用不同的次区块尺寸大小,借此以达到可依据工作量而致使随意及持续性的写入有更完美的执行。
实务上,在一次区块内的页面数量最好是2的次方数(例如1、2、4、8、16、32),而每一个区块所能保证的页面数量也是可被N整除,不带有任何余数。次区块的被建构基本上有两种方式:其中一种是一个次区块(或是替代、一特别页面)是一实体区块的部分,由于一个实体区块将被分割成多个次区块,以致使具有2倍数的页面。例如,如果一区块包含有64个页面,且具有16个次区块,则一个次区块将包括有4个实体页面。区块表将保持原有的数量,但页面表(逻辑实体位址转译表400及实体逻辑位址表455)则会只有四分之一大小。在这个实施例中,写入一个次区块就是持续性写入连续的4个页面。
另外一个方式是取组成超级区块(super-block)来当作是非挥发性快闪随机存取记忆体阵列装置所分割的区块。例如,可从四个不同的非挥发性快闪随机存取记忆体阵列装置中各取一个区块来组成一超级区块。一个四页面次区块将具有四个实体页面,而每一个实体页面都是从不同的非挥发性快闪随机存取记忆体阵列装置中而来。如此将具有比较小的页面表及比较小的区块表,而快取管理也将依据超级区块的数量而定,超级区块的数量将是实体区块数量的一小部分。在这个由四个不同的非挥发性快闪随机存取记忆体阵列装置来组成四个区块的实施例中,超级区块的数量将是实体区块数量的四分之一。另外,每一个次区块将可以被平行态样写入,因为一个次区块的所有实体页面将位于不同的芯片中,因此可提供以交错的平行方式来进入非挥发性快闪随机存取记忆体阵列装置。
以上所述者,仅为本发明的一较佳实施例而已,并非用来限定本发明实施的范围,即凡依本发明申请专利范围所述的形状、构造、特征及精神所为的均等变化与修饰,均应包括于本发明的申请专利范围内。
Claims (34)
1.一种资料储存系统的管理方法,用于快闪储存系统,该快闪储存系统为一非挥发性记忆体阵列装置所组成,其特征在于,该方法的步骤包括有:
对于该快闪储存系统中一非挥发性记忆体阵列装置进行一次区块的读取或写入,其步骤包括:
(a)解码该次区块的一逻辑位址;
(b)从一逻辑实体转译表中存取该逻辑位址,以判定该次区块是否存在于一次区块缓冲器快取中;
(c)若该次区块存在于该次区块缓冲器快取中,对于该次区块缓冲器快取进行该次区块的读取或写入;
(d)若该次区块不存在于该次区块缓冲器快取中,判定该次区块缓冲器快取是否具有一空闲次区块;
(e)若该次区块缓冲器快取具有该空闲次区块,分配该逻辑位址,以对于该次区块缓冲器快取的该空闲次区块进行读取或写入,该次区块从该非挥发性记忆体阵列装置读取至分配的该空闲次区块并且读取分配的该空闲次区块,或者该次区块写入至分配的该空闲次区块中;
(f)若该次区块缓冲器快取没有该空闲次区块,从该次区块缓冲器快取中收回一最近最少使用次区块,以制作出一空闲次区块;及
(g)执行步骤(e),对于分配的该空闲次区块进行该次区块的读取或写入。
2.如权利要求1所述的管理方法,其特征在于,该次区块为一页面、一在非挥发性记忆体阵列装置中单一区块所组成的超级页面或一经由多个页面与一区块所组成的超级页面。
3.如权利要求1所述的管理方法,其特征在于,尚包括下列步骤:
接收该逻辑位址,一控制信号及一被通信规格所编码的区段资料;及
转换该逻辑位址、该控制信号及该被通信规格所编码的区段资料成该非挥发性记忆体阵列装置可接受的规格。
4.如权利要求3所述的管理方法,其特征在于,尚包括有记录一次区块缓冲器快取表的步骤,该次区块缓冲器快取表包括有一实体次区块号码,其用以确认在该非挥发性记忆体阵列装置中的一实体位置,该实体位置与在该次区块缓冲器中的一次区块位置相关联,一快取类型项目用以标示一快取类型,而一状态项目根据一有效状态分类该次区块的区段资料,且该快取类型项目及该状态项目占用于该实体位置中。
5.如权利要求4所述的管理方法,其特征在于,该快取类型包括有一读取快取、一串流快取、一写入快取及一空闲列表。
6.如权利要求4所述的管理方法,其特征在于,从该次区块缓冲器快取中收回该最近最少使用次区块,以制作出一空闲次区块,尚包括下列步骤:
查询一最近最少使用表,该最近最少使用表包括有数个连接指标;及
根据该连接指标以判定在该次区块缓冲器中一最近最少使用的次区块。
7.如权利要求6所述的管理方法,其特征在于,从该次区块缓冲器快取中收回该最近最少使用次区块,以制作出一空闲次区块,尚包括下列步骤:
该最近最少使用次区块资料写入于所指定的该非挥发性记忆体阵列装置的该次区块中,而该次区块缓冲器中的该次区块位置并附加至该次区块缓冲器快取表的该空闲列表内。
8.如权利要求7所述的管理方法,其特征在于,该次区块写入至该次区块缓冲器快取的分配的该空闲次区块,尚包括有下列步骤:
设定一次区块位元,该次区块位元写入于一无效的次区块表中,其用以指示该非挥发性记忆体阵列装置中所选择的该次区块及其区块为有效的或无效的。
9.如权利要求6所述的管理方法,其特征在于,从该次区块缓冲器快取中收回该最近最少使用的次区块之后,尚包括下列步骤:
执行一垃圾收集程序,以产生至少一空闲次区块。
10.如权利要求6所述的管理方法,执行一垃圾收集程序,以产生至少一空闲次区块之后,其特征在于,尚包括下列步骤:
决定该非挥发性记忆体阵列装置中一可抹除次区块号码是否低于一抹除次区块门槛;
搜索一包括有一连接列表的实体区块连接表,该连接列表包括有数个指标,其中一指标为一锚定指标,其用以在该区块中定义出该无效次区块的号码,借以找到一具有最大无效号码次区块;
判断具有该最大无效号码次区块的该区块中是否全部的该次区块皆为无效;
若非全部该次区块均为无效的,将该有效的次区块复制至该非挥发性记忆体阵列装置中其他区块,以及在该无效次区块表中设定无效的该次区块;及
当全部该次区块都为无效,具有最大无效号码次区块的该区块将进行抹除。
11.如权利要求10所述的管理方法,其特征在于,该垃圾收回程序制作出该空闲次区块后,尚包括下列步骤:
设定一不合法的次区块号码以指示该抹除区块的该实体位置在该实体逻辑表中已被抹除,并且该实体逻辑表用以映射该非挥发性记忆体阵列装置的该实体位置至该逻辑位置。
12.如权利要求6所述的管理方法,其特征在于,其特征在于,从该次区块缓冲器快取中收回该最近最少使用的次区块之后,尚包括下列步骤:
对于该抹除区块进行一损耗平衡程序。
13.如权利要求12所述的管理方法,其特征在于,对于该抹除区块进行一损耗平衡程序之后,尚包括下列步骤:
决定一抹除视窗的抹除总数,该抹除视窗的抹除总数为一区块最低抹除总数的函数;
判断该抹除区块的一区块抹除总数是否超过该抹除视窗的抹除总数;
若该抹除区块的该区块抹除总数超过该抹除视窗的抹除总数,搜寻一抹除总数表,以在各抹除区块中判断出一具有最低区块抹除总数的区块;
选择该具有最低区块抹除总数的区块;
复制该具有最低区块抹除总数的区块中全部有效次区块至该抹除区块的低阶级次区块中;
抹除该具有最低抹除总数的区块,以成为一最新的抹除区块;
在该抹除总数表中对于该最新的抹除区块增加其该抹除总数;及
分配该最新的抹除区块为一新的可写入区块。
14.如权利要求13所述的管理方法,其特征在于,决定该抹除视窗的抹除总数的步骤后,尚包括下列步骤:
加入一抹除计数门槛值至该最低区块抹除总数。
15.一种资料储存系统,指一种用以保留电脑程序码的电脑可读取媒体,其包括有一控制处理器,当该控制处理器进行运作时,执行一电脑程序以对于一快闪储存系统进行管理,其特征在于,该电脑程序包括下列步骤:
对于该快闪储存系统中一非挥发性记忆体阵列装置进行一次区块的读取或写入,其步骤包括:
(a)解码该次区块的一逻辑位址;
(b)从一逻辑实体转译表中存取该逻辑位址,以判定该次区块是否存在于一次区块缓冲器快取中;
(c)若该次区块存在于该次区块缓冲器快取中,对于该次区块缓冲器快取进行该次区块的读取或写入;
(d)若该次区块不存在于该次区块缓冲器快取中,判定该次区块缓冲器快取是否具有一空闲次区块;
(e)若该次区块缓冲器快取具有该空闲次区块,分配该逻辑位址,以对于该次区块缓冲器快取的该空闲次区块进行读取或写入,该次区块从该非挥发性记忆体阵列装置读取至分配的该空闲次区块并且读取分配的该空闲次区块,或者该次区块写入至分配的该空闲次区块中;
(f)若该次区块缓冲器快取没有该空闲次区块,从该次区块缓冲器快取中收回一最近最少使用次区块,以制作出一空闲次区块;及
(g)执行步骤(e),对于分配的该空闲次区块进行该次区块的读取或写入。
16.如权利要求15所述的资料储存系统,其特征在于,该次区块为一页面、一在非挥发性记忆体阵列装置中单一区块所组成的超级页面或一经由多个页面与一区块所组成的超级页面。
17.如权利要求15所述的资料储存系统,其特征在于,该电脑程序尚包括下列步骤:
接收该逻辑位址,一控制信号及一被通信规格所编码的区段资料;及
转换该逻辑位址、该控制信号及该被通信规格所编码的区段资料成该非挥发性记忆体阵列装置可接受的规格。
18.如权利要求17所述的资料储存系统,其特征在于,该电脑程序尚包括下列步骤:
记录一次区块缓冲器快取表,该次区块缓冲器快取表与该管理处理器进行通信,该次区块缓冲器快取表包括有一实体次区块号码,其用以确认在该非挥发性记忆体阵列装置中的一实体位置,该实体位置与在该次区块缓冲器中的一次区块位置相关联,一快取类型项目用以标示一快取类型,而一状态项目根据一有效状态分类该次区块的区段资料,且该快取类型项目及该状态项目占用于该实体位置中。
19.如权利要求18所述的资料储存系统,其特征在于,该快取类型包括有一读取快取、一串流快取、一写入快取及一空闲列表。
20.如权利要求18所述的资料储存系统,其特征在于,从该次区块缓冲器快取中收回该最近最少使用次区块,以制作出一空闲次区块,尚包括下列步骤:
查询一最近最少使用表,该最近最少使用表包括有数个连接指标;及
根据该连接指标以判定在该次区块缓冲器中一最近最少使用的次区块。
21.如权利要求16所述的资料储存系统,其特征在于,从该次区块缓冲器快取中收回该最近最少使用次区块,以制作出一空闲次区块,尚包括下列步骤:
该最近最少使用次区块资料写入于所指定的该非挥发性记忆体阵列装置的该次区块中,而该次区块缓冲器中的该次区块位置并附加至该次区块缓冲器快取表的该空闲列表内。
22.如权利要求20所述的资料储存系统,其特征在于,该次区块写入至该次区块缓冲器快取的分配的该空闲次区块,尚包括有下列步骤:
设定一次区块位元,该次区块位元写入于一无效的次区块表中,其用以指示该非挥发性记忆体阵列装置中所选择的该次区块及其区块为有效的或无效的。
23.如权利要求22所述的资料储存系统,其特征在于,从该次区块缓冲器快取中收回该最近最少使用的次区块之后,尚包括下列步骤:
执行一垃圾收集程序,以产生至少一空闲次区块。
24.如权利要求23所述的资料储存系统,执行一垃圾收集程序,以产生至少一空闲次区块之后,尚包括下列步骤:
决定该非挥发性记忆体阵列装置中一可抹除次区块号码是否低于一抹除次区块门槛;
搜索一包括有一连接列表的实体区块连接表,该连接列表包括有数个指标,其中一指标为一锚定指标,其用以在该区块中定义出该无效次区块的号码,借以找到一具有最大无效号码次区块;
判断具有该最大无效号码次区块的该区块中是否全部的该次区块皆为无效;
若非全部该次区块均为无效的,将该有效的次区块复制至该非挥发性记忆体阵列装置中其他区块,以及在该无效次区块表中设定无效的该次区块;及
当全部该次区块都为无效,具有最大无效号码次区块的该区块将进行抹除。
25.如权利要求24所述的资料储存系统,其特征在于,该垃圾收回程序制作出该空闲次区块后,尚包括下列步骤:
设定一不合法的次区块号码以指示该抹除区块的该实体位置在该实体逻辑表中已被抹除,并且该实体逻辑表用以映射该非挥发性记忆体阵列装置的该实体位置至该逻辑位置。
26.如权利要求24所述的资料储存系统,其特征在于,从该次区块缓冲器快取中收回该最近最少使用的次区块之后,尚包括下列步骤:
对于该抹除区块进行一损耗平衡程序。
27.如权利要求26所述的资料储存系统,其特征在于,对于该抹除区块进行一损耗平衡程序之后,尚包括下列步骤:
决定一抹除视窗的抹除总数,该抹除视窗的抹除总数为一区块最低抹除总数的函数;
判断该抹除区块的一区块抹除总数是否超过该抹除视窗的抹除总数;
若该抹除区块的该区块抹除总数超过该抹除视窗的抹除总数,搜寻一抹除总数表,以在各抹除区块中判断出一具有最低区块抹除总数的区块;
选择该具有最低区块抹除总数的区块;
复制该具有最低区块抹除总数的区块中全部有效次区块至该抹除区块的低阶级次区块中;
抹除该具有最低抹除总数的区块,以成为一最新的抹除区块;
在该抹除总数表中对于该最新的抹除区块增加其该抹除总数;及
分配该最新的抹除区块为一新的可写入区块。
28.如权利要求27所述的资料储存系统,其特征在于,决定一抹除视窗的抹除总数的步骤后,尚包括下列步骤:
加入一抹除计数门槛值至该最低区块抹除总数。
29.一种资料储存系统的管理方法,指一种用以快闪储存系统的抹除区块的损耗平衡方法,其中,该快闪储存系统包括一非挥发性记忆体阵列装置,该非挥发性记忆体阵列装置包括有数个次阵列,各次阵列包括有数个区块,其特征在于,该损耗平衡方法包括有:
决定一抹除视窗的抹除总数,该抹除视窗的抹除总数为一区块最低抹除总数的函数;
判断该抹除区块的一区块抹除总数是否超过该抹除视窗的抹除总数;
若该抹除区块的该区块抹除总数超过该抹除视窗的抹除总数,搜寻一抹除总数表,以在各抹除区块中判断出一具有最低区块抹除总数的区块;
选择该具有最低区块抹除总数的区块;
复制该具有最低区块抹除总数的区块中全部有效次区块至该抹除区块的低阶级次区块中;
抹除该具有最低抹除总数的区块,以成为一最新的抹除区块;
在该抹除总数表中对于该最新的抹除区块增加其该抹除总数;及
分配该最新的抹除区块为一新的可写入区块。
30.如权利要求29所述的管理方法,其特征在于,决定该抹除视窗的抹除总数的步骤后,尚包括下列步骤:
加入一抹除计数门槛值至该最低区块抹除总数。
31.如权利要求29所述的管理方法,其特征在于,该次区块为一页面、一在非挥发性记忆体阵列装置中单一区块所组成的超级页面或一经由多个页面与一区块所组成的超级页面。
32.一种资料储存系统,指一种用以快闪储存系统的抹除区块的损耗平衡设备,其特征在于,该快闪储存系统包括一非挥发性记忆体阵列装置,该非挥发性记忆体阵列装置包括有数个次阵列,各次阵列包括有数个区块,其中该损耗平衡设备用以执行一损耗平衡方法,该损耗平衡方法包括有:
用以决定一抹除视窗的抹除总数,该抹除视窗的抹除总数为一区块最低抹除总数的函数;
用以判断该抹除区块的一区块抹除总数是否超过该抹除视窗的抹除总数;
用以若该抹除区块的该区块抹除总数超过该抹除视窗的抹除总数,搜寻一抹除总数表,以在各抹除区块中判断出一具有最低区块抹除总数的区块;
用以选择该具有最低区块抹除总数的区块;
用以复制该具有最低区块抹除总数的区块中全部有效次区块至该抹除区块的低阶级次区块中;
用以抹除该具有最低抹除总数的区块,以成为一最新的抹除区块;
用以在该抹除总数表中对于该最新的抹除区块增加其该抹除总数;及
用以分配该最新的抹除区块为一新的可写入区块。
33.如权利要求32所述的资料储存系统,其特征在于,用以决定该抹除视窗的抹除总数的步骤后,尚包括下列步骤:
用以加入一抹除计数门槛值至该最低区块抹除总数。
34.如权利要求32所述的资料储存系统,其特征在于,该次区块为一页面、一在非挥发性记忆体阵列装置中单一区块所组成的超级页面或一经由多个页面与一区块所组成的超级页面。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/584,299 | 2009-09-03 | ||
US12/584,299 US8688894B2 (en) | 2009-09-03 | 2009-09-03 | Page based management of flash storage |
CN201010271678.5A CN102012867B (zh) | 2009-09-03 | 2010-09-03 | 资料储存系统 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010271678.5A Division CN102012867B (zh) | 2009-09-03 | 2010-09-03 | 资料储存系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104298610A true CN104298610A (zh) | 2015-01-21 |
CN104298610B CN104298610B (zh) | 2017-07-11 |
Family
ID=43626523
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010271678.5A Expired - Fee Related CN102012867B (zh) | 2009-09-03 | 2010-09-03 | 资料储存系统 |
CN201410411424.7A Expired - Fee Related CN104298610B (zh) | 2009-09-03 | 2010-09-03 | 资料储存系统及其管理方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010271678.5A Expired - Fee Related CN102012867B (zh) | 2009-09-03 | 2010-09-03 | 资料储存系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8688894B2 (zh) |
CN (2) | CN102012867B (zh) |
TW (3) | TWI474167B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106951193A (zh) * | 2017-03-27 | 2017-07-14 | 深圳佰维存储科技股份有限公司 | 改善Nand Flash存储性能的方法及其系统 |
TWI615710B (zh) * | 2016-12-14 | 2018-02-21 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 |
CN108228088A (zh) * | 2016-12-21 | 2018-06-29 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法和设备 |
CN108415850A (zh) * | 2017-02-09 | 2018-08-17 | 爱思开海力士有限公司 | 数据存储装置及其操作方法 |
US10431289B2 (en) | 2017-07-28 | 2019-10-01 | Micron Technology, Inc. | Memory devices with selective page-based refresh |
CN110825659A (zh) * | 2018-08-14 | 2020-02-21 | 爱思开海力士有限公司 | 用于检查存储器系统中的块中的有效数据的设备和方法 |
CN111459850A (zh) * | 2020-05-18 | 2020-07-28 | 江苏时代全芯存储科技股份有限公司 | 记忆体装置以及运作方法 |
CN111984462A (zh) * | 2019-05-22 | 2020-11-24 | 慧荣科技股份有限公司 | 无预警断电复原管理方法、记忆装置、控制器及电子装置 |
TWI731904B (zh) * | 2015-12-30 | 2021-07-01 | 美商英特爾股份有限公司 | 用於巷道為主的跨類收集的系統、設備與方法 |
Families Citing this family (280)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8719501B2 (en) * | 2009-09-08 | 2014-05-06 | Fusion-Io | Apparatus, system, and method for caching data on a solid-state storage device |
US8489817B2 (en) | 2007-12-06 | 2013-07-16 | Fusion-Io, Inc. | Apparatus, system, and method for caching data |
CN101715575A (zh) | 2006-12-06 | 2010-05-26 | 弗森多系统公司(dba弗森-艾奥) | 采用数据管道管理数据的装置、系统和方法 |
JP5064820B2 (ja) * | 2007-02-01 | 2012-10-31 | マーベル ワールド トレード リミテッド | 磁気ディスクコントローラおよび方法 |
US7836226B2 (en) | 2007-12-06 | 2010-11-16 | Fusion-Io, Inc. | Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment |
US9519540B2 (en) | 2007-12-06 | 2016-12-13 | Sandisk Technologies Llc | Apparatus, system, and method for destaging cached data |
US8843691B2 (en) * | 2008-06-25 | 2014-09-23 | Stec, Inc. | Prioritized erasure of data blocks in a flash storage device |
US8245112B2 (en) * | 2009-06-04 | 2012-08-14 | Lsi Corporation | Flash memory organization |
US8555141B2 (en) * | 2009-06-04 | 2013-10-08 | Lsi Corporation | Flash memory organization |
US8321639B2 (en) * | 2009-12-30 | 2012-11-27 | Lsi Corporation | Command tracking for direct access block storage devices |
US8219776B2 (en) * | 2009-09-23 | 2012-07-10 | Lsi Corporation | Logical-to-physical address translation for solid state disks |
US8868809B2 (en) * | 2009-11-30 | 2014-10-21 | Lsi Corporation | Interrupt queuing in a media controller architecture |
US8286004B2 (en) * | 2009-10-09 | 2012-10-09 | Lsi Corporation | Saving encryption keys in one-time programmable memory |
US20100306451A1 (en) * | 2009-06-01 | 2010-12-02 | Joshua Johnson | Architecture for nand flash constraint enforcement |
US8166258B2 (en) * | 2009-07-24 | 2012-04-24 | Lsi Corporation | Skip operations for solid state disks |
US8195917B2 (en) * | 2009-07-01 | 2012-06-05 | Advanced Micro Devices, Inc. | Extended page size using aggregated small pages |
KR20110018157A (ko) * | 2009-08-17 | 2011-02-23 | 삼성전자주식회사 | 플래시 메모리 장치의 액세스 방법 |
US8176220B2 (en) | 2009-10-01 | 2012-05-08 | Oracle America, Inc. | Processor-bus-connected flash storage nodes with caching to support concurrent DMA accesses from multiple processors |
US8219746B2 (en) * | 2009-10-08 | 2012-07-10 | International Business Machines Corporation | Memory package utilizing at least two types of memories |
US8407449B1 (en) | 2010-02-26 | 2013-03-26 | Western Digital Technologies, Inc. | Non-volatile semiconductor memory storing an inverse map for rebuilding a translation table |
US8725931B1 (en) | 2010-03-26 | 2014-05-13 | Western Digital Technologies, Inc. | System and method for managing the execution of memory commands in a solid-state memory |
US8782327B1 (en) | 2010-05-11 | 2014-07-15 | Western Digital Technologies, Inc. | System and method for managing execution of internal commands and host commands in a solid-state memory |
US9026716B2 (en) | 2010-05-12 | 2015-05-05 | Western Digital Technologies, Inc. | System and method for managing garbage collection in solid-state memory |
US9104546B2 (en) * | 2010-05-24 | 2015-08-11 | Silicon Motion Inc. | Method for performing block management using dynamic threshold, and associated memory device and controller thereof |
GB2496798B (en) * | 2010-07-27 | 2016-10-12 | Ibm | Logical to physical address mapping in storage systems comprising solid state memory devices |
US9530436B1 (en) * | 2010-08-12 | 2016-12-27 | Western Digital Technologies, Inc. | Methods and systems for providing data security in data storage devices |
KR20120028581A (ko) * | 2010-09-15 | 2012-03-23 | 삼성전자주식회사 | 비휘발성 메모리 장치, 이의 동작 방법, 및 이를 포함하는 장치들 |
US9164886B1 (en) | 2010-09-21 | 2015-10-20 | Western Digital Technologies, Inc. | System and method for multistage processing in a memory storage subsystem |
US9021192B1 (en) | 2010-09-21 | 2015-04-28 | Western Digital Technologies, Inc. | System and method for enhancing processing of memory access requests |
WO2012051600A2 (en) * | 2010-10-15 | 2012-04-19 | Kyquang Son | File system-aware solid-state storage management system |
US8713242B2 (en) * | 2010-12-30 | 2014-04-29 | Solid State System Co., Ltd. | Control method and allocation structure for flash memory device |
WO2012104974A1 (ja) * | 2011-01-31 | 2012-08-09 | 三菱電機株式会社 | メモリコントローラ |
JP5295286B2 (ja) * | 2011-02-23 | 2013-09-18 | 株式会社日立製作所 | 記憶装置およびそれを搭載した計算機 |
US9141527B2 (en) | 2011-02-25 | 2015-09-22 | Intelligent Intellectual Property Holdings 2 Llc | Managing cache pools |
KR101717081B1 (ko) * | 2011-03-23 | 2017-03-28 | 삼성전자주식회사 | 비휘발성 램과 휘발성 램을 버퍼 메모리로 사용하는 저장 장치 |
JP5708216B2 (ja) * | 2011-05-09 | 2015-04-30 | ソニー株式会社 | フラッシュメモリ装置、メモリ制御装置、メモリ制御方法、ストレージシステム |
US9104327B2 (en) * | 2011-05-17 | 2015-08-11 | Sandisk Technologies Inc. | Fast translation indicator to reduce secondary address table checks in a memory device |
KR20120128978A (ko) * | 2011-05-18 | 2012-11-28 | 삼성전자주식회사 | 데이터 저장 장치 및 그것의 데이터 관리 방법 |
US9436594B2 (en) * | 2011-05-27 | 2016-09-06 | Seagate Technology Llc | Write operation with immediate local destruction of old content in non-volatile memory |
US9405670B2 (en) * | 2011-06-09 | 2016-08-02 | Tsinghua University | Wear leveling method and apparatus |
US8949508B2 (en) * | 2011-07-18 | 2015-02-03 | Apple Inc. | Non-volatile temporary data handling |
CN104536906B (zh) * | 2011-08-02 | 2017-10-10 | 群联电子股份有限公司 | 数据写入方法、存储器控制器与存储器储存装置 |
CN102915273B (zh) * | 2011-08-02 | 2015-06-10 | 群联电子股份有限公司 | 数据写入方法、存储器控制器与存储器储存装置 |
TWI448892B (zh) * | 2011-09-06 | 2014-08-11 | Phison Electronics Corp | 資料搬移方法、記憶體控制器與記憶體儲存裝置 |
US8924632B2 (en) | 2011-09-16 | 2014-12-30 | Apple Inc. | Faster tree flattening for a system having non-volatile memory |
CN102999437B (zh) * | 2011-09-19 | 2015-12-16 | 群联电子股份有限公司 | 数据搬移方法、存储器控制器与存储器储存装置 |
US8539007B2 (en) | 2011-10-17 | 2013-09-17 | International Business Machines Corporation | Efficient garbage collection in a compressed journal file |
US20130103889A1 (en) * | 2011-10-25 | 2013-04-25 | Ocz Technology Group Inc. | Page-buffer management of non-volatile memory-based mass storage devices |
US8972661B2 (en) | 2011-10-31 | 2015-03-03 | International Business Machines Corporation | Dynamically adjusted threshold for population of secondary cache |
US8966172B2 (en) | 2011-11-15 | 2015-02-24 | Pavilion Data Systems, Inc. | Processor agnostic data storage in a PCIE based shared storage enviroment |
US8959416B1 (en) * | 2011-12-16 | 2015-02-17 | Western Digital Technologies, Inc. | Memory defect management using signature identification |
KR20130076429A (ko) * | 2011-12-28 | 2013-07-08 | 삼성전자주식회사 | 메모리 장치의 저장 영역 관리 방법 및 이를 이용한 저장 장치 |
DE112011106078B4 (de) | 2011-12-29 | 2021-01-28 | Intel Corp. | Verfahren, Vorrichtung und System zur Implementierung eines mehrstufigen Arbeitsspeichers mit Direktzugriff |
KR20130079706A (ko) * | 2012-01-03 | 2013-07-11 | 삼성전자주식회사 | 휘발성 메모리를 포함하는 저장 장치의 구동 방법 |
US9251086B2 (en) | 2012-01-24 | 2016-02-02 | SanDisk Technologies, Inc. | Apparatus, system, and method for managing a cache |
US9652182B2 (en) | 2012-01-31 | 2017-05-16 | Pavilion Data Systems, Inc. | Shareable virtual non-volatile storage device for a server |
US8700861B1 (en) * | 2012-03-28 | 2014-04-15 | Emc Corporation | Managing a dynamic list of entries for cache page cleaning |
CN104254841A (zh) * | 2012-04-27 | 2014-12-31 | 惠普发展公司,有限责任合伙企业 | 屏蔽存储器设备 |
US9251056B2 (en) * | 2012-06-01 | 2016-02-02 | Macronix International Co., Ltd. | Bucket-based wear leveling method and apparatus |
US9529724B2 (en) | 2012-07-06 | 2016-12-27 | Seagate Technology Llc | Layered architecture for hybrid controller |
US9477591B2 (en) | 2012-07-06 | 2016-10-25 | Seagate Technology Llc | Memory access requests in hybrid memory system |
US9772948B2 (en) | 2012-07-06 | 2017-09-26 | Seagate Technology Llc | Determining a criterion for movement of data from a primary cache to a secondary cache |
JP5631938B2 (ja) * | 2012-07-19 | 2014-11-26 | 株式会社東芝 | 半導体記憶装置 |
US8799561B2 (en) * | 2012-07-27 | 2014-08-05 | International Business Machines Corporation | Valid page threshold based garbage collection for solid state drive |
US20140052899A1 (en) * | 2012-08-18 | 2014-02-20 | Yen Chih Nan | Memory address translation method for flash storage system |
US9146857B2 (en) * | 2012-08-18 | 2015-09-29 | Storart Technology Co. Ltd. | Method for mapping management |
US9195578B2 (en) * | 2012-08-24 | 2015-11-24 | International Business Machines Corporation | Systems, methods and computer program products memory space management for storage class memory |
US8898548B1 (en) | 2012-08-24 | 2014-11-25 | Western Digital Technologies, Inc. | Methods, data storage devices and systems having variable size ECC page size |
TWI492051B (zh) * | 2012-09-05 | 2015-07-11 | Silicon Motion Inc | 資料儲存裝置與快閃記憶體控制方法 |
US9690695B2 (en) * | 2012-09-20 | 2017-06-27 | Silicon Motion, Inc. | Data storage device and flash memory control method thereof |
US9268682B2 (en) | 2012-10-05 | 2016-02-23 | Skyera, Llc | Methods, devices and systems for physical-to-logical mapping in solid state drives |
US9507523B1 (en) | 2012-10-12 | 2016-11-29 | Western Digital Technologies, Inc. | Methods, devices and systems for variable size logical page management in a solid state drive |
CN102929790A (zh) * | 2012-10-15 | 2013-02-13 | 株洲南车时代电气股份有限公司 | 一种数据存储系统和方法 |
US9489296B1 (en) | 2012-10-17 | 2016-11-08 | Western Digital Technologies, Inc. | Methods, devices and systems for hardware-based garbage collection in solid state drives |
US8954694B2 (en) | 2012-11-15 | 2015-02-10 | Western Digital Technologies, Inc. | Methods, data storage devices and systems for fragmented firmware table rebuild in a solid state drive |
US9405621B2 (en) * | 2012-12-28 | 2016-08-02 | Super Talent Technology, Corp. | Green eMMC device (GeD) controller with DRAM data persistence, data-type splitting, meta-page grouping, and diversion of temp files for enhanced flash endurance |
US9547586B2 (en) * | 2013-01-03 | 2017-01-17 | Macronix International Co., Ltd. | Metadata containers with indirect pointers |
US8898410B1 (en) * | 2013-02-20 | 2014-11-25 | Google Inc. | Efficient garbage collection in a data storage device |
CN104008061B (zh) * | 2013-02-22 | 2018-01-23 | 华为技术有限公司 | 内存回收方法及装置 |
US9323676B2 (en) * | 2013-03-05 | 2016-04-26 | International Business Machines Corporation | Non-data inclusive coherent (NIC) directory for cache |
US9436595B1 (en) * | 2013-03-15 | 2016-09-06 | Google Inc. | Use of application data and garbage-collected data to improve write efficiency of a data storage device |
US9558108B2 (en) * | 2013-04-15 | 2017-01-31 | Macronix International Co., Ltd. | Half block management for flash storage devices |
US9519591B2 (en) * | 2013-06-22 | 2016-12-13 | Microsoft Technology Licensing, Llc | Latch-free, log-structured storage for multiple access methods |
KR102164630B1 (ko) * | 2013-06-28 | 2020-10-12 | 삼성전자주식회사 | 메모리 컨트롤러 및 상기 메모리 컨트롤러의 동작 방법 |
US20160196076A1 (en) * | 2013-07-08 | 2016-07-07 | Wilus Institute Of Standards And Technology Inc. | Memory system and method for controlling same |
US9606803B2 (en) | 2013-07-15 | 2017-03-28 | Texas Instruments Incorporated | Highly integrated scalable, flexible DSP megamodule architecture |
KR20150010150A (ko) * | 2013-07-18 | 2015-01-28 | 삼성전자주식회사 | 메모리 시스템 및 이의 동작 방법 |
US10007428B2 (en) * | 2013-08-16 | 2018-06-26 | Micron Technology, Inc. | Data storage management |
US9785564B2 (en) * | 2013-08-20 | 2017-10-10 | Seagate Technology Llc | Hybrid memory with associative cache |
US9928177B2 (en) * | 2013-08-21 | 2018-03-27 | Lite-On Electronics (Guangzhou) Limited | Managing method for cache memory of solid state drive |
KR101826073B1 (ko) * | 2013-09-27 | 2018-02-06 | 인텔 코포레이션 | 메모리 관리를 위한 캐시 동작들 |
JP6326209B2 (ja) * | 2013-09-30 | 2018-05-16 | ラピスセミコンダクタ株式会社 | 半導体装置及び半導体メモリにおける消去回数の検索方法 |
CN104598386B (zh) * | 2013-10-31 | 2018-03-27 | Lsi公司 | 通过追踪和利用二级映射索引重复利用固态驱动器块 |
TWI489279B (zh) * | 2013-11-27 | 2015-06-21 | Realtek Semiconductor Corp | 虛擬實體位址轉換系統以及虛擬實體位址轉換系統的管理方法 |
US9348748B2 (en) | 2013-12-24 | 2016-05-24 | Macronix International Co., Ltd. | Heal leveling |
US20150186257A1 (en) * | 2013-12-26 | 2015-07-02 | Anand S. Ramalingam | Managing a transfer buffer for a non-volatile memory |
US9684568B2 (en) * | 2013-12-26 | 2017-06-20 | Silicon Motion, Inc. | Data storage device and flash memory control method |
KR102192242B1 (ko) * | 2014-02-24 | 2020-12-17 | 삼성전자주식회사 | 메모리로 커맨드를 이슈하는 커맨드 이슈 방법 및 메모리의 커맨드 처리 방법 |
US9092362B1 (en) * | 2014-03-13 | 2015-07-28 | NXGN Data, Inc. | Programmable data write management system and method for operating the same in a solid state drive |
US9354955B1 (en) | 2014-03-19 | 2016-05-31 | Western Digital Technologies, Inc. | Partial garbage collection for fast error handling and optimized garbage collection for the invisible band |
KR102254392B1 (ko) * | 2014-05-12 | 2021-05-25 | 삼성전자주식회사 | 메모리 컨트롤러의 동작 방법 및 불휘발성 메모리 장치 및 메모리 컨트롤러를 포함하는 불휘발성 메모리 시스템 |
US9959203B2 (en) * | 2014-06-23 | 2018-05-01 | Google Llc | Managing storage devices |
CN105279098B (zh) * | 2014-07-22 | 2019-02-12 | 中兴通讯股份有限公司 | 内存的清理方法及装置 |
JP2016038907A (ja) * | 2014-08-07 | 2016-03-22 | 富士通株式会社 | アクセス制御プログラム、アクセス制御装置及びアクセス制御方法 |
CN105446653B (zh) | 2014-08-27 | 2018-12-14 | 阿里巴巴集团控股有限公司 | 一种数据合并方法和设备 |
US9952981B2 (en) * | 2014-09-29 | 2018-04-24 | Apple Inc. | Read cache management in multi-level cell (MLC) non-volatile memory |
US9336136B2 (en) | 2014-10-08 | 2016-05-10 | HGST Netherlands B.V. | Apparatus, systems, and methods for providing wear leveling in solid state devices |
WO2016064395A1 (en) * | 2014-10-23 | 2016-04-28 | Hewlett Packard Enterprise Development Lp | Determining a chip select from physical rank information |
US9483413B2 (en) | 2014-10-24 | 2016-11-01 | Samsung Electronics Co., Ltd. | Nonvolatile memory devices and methods of controlling the same |
TWI604307B (zh) | 2014-10-31 | 2017-11-01 | 慧榮科技股份有限公司 | 資料儲存裝置以及快閃記憶體控制方法 |
US9565269B2 (en) | 2014-11-04 | 2017-02-07 | Pavilion Data Systems, Inc. | Non-volatile memory express over ethernet |
US9712619B2 (en) | 2014-11-04 | 2017-07-18 | Pavilion Data Systems, Inc. | Virtual non-volatile memory express drive |
US9830087B2 (en) * | 2014-11-13 | 2017-11-28 | Micron Technology, Inc. | Memory wear leveling |
US9529718B2 (en) * | 2014-12-12 | 2016-12-27 | Advanced Micro Devices, Inc. | Batching modified blocks to the same dram page |
US20160179399A1 (en) * | 2014-12-23 | 2016-06-23 | Sandisk Technologies Inc. | System and Method for Selecting Blocks for Garbage Collection Based on Block Health |
US10474569B2 (en) | 2014-12-29 | 2019-11-12 | Toshiba Memory Corporation | Information processing device including nonvolatile cache memory and processor |
TWI545433B (zh) * | 2015-03-04 | 2016-08-11 | 慧榮科技股份有限公司 | 實體儲存對照表維護方法以及使用該方法的裝置 |
US9588901B2 (en) | 2015-03-27 | 2017-03-07 | Intel Corporation | Caching and tiering for cloud storage |
US9891824B2 (en) * | 2015-04-24 | 2018-02-13 | International Business Machines Corporation | Sub-block input/output (I/O) commands for storage device including byte stream buffer |
CN104935657A (zh) * | 2015-06-15 | 2015-09-23 | 清华大学深圳研究生院 | 主动推送信息的方法和嵌入式节点操作系统 |
US9715342B2 (en) * | 2015-07-03 | 2017-07-25 | Xitore, Inc. | Apparatus, system, and method of logical address translation for non-volatile storage memory |
TWI534619B (zh) * | 2015-09-11 | 2016-05-21 | 慧榮科技股份有限公司 | 動態邏輯分段方法以及使用該方法的裝置 |
US10635596B2 (en) | 2015-10-02 | 2020-04-28 | Sony Interactive Entertainment Inc. | Information processing device, access controller, information processing method, and computer program for accessing memory having access units of different sizes |
US9933954B2 (en) * | 2015-10-19 | 2018-04-03 | Nxp Usa, Inc. | Partitioned memory having pipeline writes |
TWI571881B (zh) * | 2015-10-23 | 2017-02-21 | 群聯電子股份有限公司 | 有效資料合併方法、記憶體控制器與記憶體儲存裝置 |
KR20170053278A (ko) * | 2015-11-06 | 2017-05-16 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
TWI604308B (zh) | 2015-11-18 | 2017-11-01 | 慧榮科技股份有限公司 | 資料儲存裝置及其資料維護方法 |
US10152321B2 (en) * | 2015-12-18 | 2018-12-11 | Intel Corporation | Instructions and logic for blend and permute operation sequences |
US20170177360A1 (en) * | 2015-12-21 | 2017-06-22 | Intel Corporation | Instructions and Logic for Load-Indices-and-Scatter Operations |
CN107132989B (zh) * | 2016-02-26 | 2020-05-12 | 群联电子股份有限公司 | 数据程序化方法、存储器控制电路单元及存储器存储装置 |
TWI571740B (zh) * | 2016-03-18 | 2017-02-21 | 華邦電子股份有限公司 | 記憶體裝置及記憶體區塊使用方法 |
US10540274B2 (en) * | 2016-03-29 | 2020-01-21 | Micron Technology, Inc. | Memory devices including dynamic superblocks, and related methods and electronic systems |
US11442760B2 (en) | 2016-07-01 | 2022-09-13 | Intel Corporation | Aperture access processors, methods, systems, and instructions |
US9857988B1 (en) * | 2016-07-10 | 2018-01-02 | Winbond Electronics Corporaiton | Data management in multiply-writeable flash memories |
US9830098B1 (en) | 2016-07-11 | 2017-11-28 | Silicon Motion, Inc. | Method of wear leveling for data storage device |
TWI584292B (zh) * | 2016-09-08 | 2017-05-21 | 群聯電子股份有限公司 | 記憶體抹除方法、記憶體控制電路單元及記憶體儲存裝置 |
US10275156B2 (en) * | 2016-09-29 | 2019-04-30 | Intel Corporation | Managing solid state drive defect redundancies at sub-block granularity |
US10216417B2 (en) | 2016-10-26 | 2019-02-26 | Samsung Electronics Co., Ltd. | Method of consolidate data streams for multi-stream enabled SSDs |
US10847196B2 (en) | 2016-10-31 | 2020-11-24 | Rambus Inc. | Hybrid memory module |
TWI619018B (zh) | 2016-11-10 | 2018-03-21 | 慧榮科技股份有限公司 | 可用於資料儲存裝置之垃圾蒐集方法 |
TWI616807B (zh) * | 2016-11-17 | 2018-03-01 | 英屬維京群島商大心電子(英屬維京群島)股份有限公司 | 資料寫入方法以及儲存控制器 |
US10318423B2 (en) * | 2016-12-14 | 2019-06-11 | Macronix International Co., Ltd. | Methods and systems for managing physical information of memory units in a memory device |
JP6677627B2 (ja) * | 2016-12-20 | 2020-04-08 | 株式会社ソニー・インタラクティブエンタテインメント | 情報処理装置およびメモリアクセス方法 |
US10445199B2 (en) * | 2016-12-22 | 2019-10-15 | Western Digital Technologies, Inc. | Bad page management in storage devices |
WO2018140036A1 (en) * | 2017-01-27 | 2018-08-02 | Hewlett-Packard Development Company, L.P. | Read operation redirect |
US10241925B2 (en) | 2017-02-15 | 2019-03-26 | Ati Technologies Ulc | Selecting a default page size in a variable page size TLB |
KR20180094724A (ko) * | 2017-02-16 | 2018-08-24 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
US10282309B2 (en) | 2017-02-24 | 2019-05-07 | Advanced Micro Devices, Inc. | Per-page control of physical address space distribution among memory modules |
US10120813B2 (en) * | 2017-03-08 | 2018-11-06 | Arm Limited | Address translation |
JP6387134B1 (ja) | 2017-03-09 | 2018-09-05 | ウィンボンド エレクトロニクス コーポレーション | 半導体記憶装置 |
TWI626540B (zh) * | 2017-03-22 | 2018-06-11 | 慧榮科技股份有限公司 | 一般及垃圾回收的資料存取方法以及使用該方法的裝置 |
KR20180108939A (ko) * | 2017-03-23 | 2018-10-05 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
TWI643067B (zh) * | 2017-04-14 | 2018-12-01 | 國立臺灣科技大學 | 三維非及閘快閃記憶體及其記憶體管理方法 |
US10339068B2 (en) | 2017-04-24 | 2019-07-02 | Advanced Micro Devices, Inc. | Fully virtualized TLBs |
US10698808B2 (en) | 2017-04-25 | 2020-06-30 | Samsung Electronics Co., Ltd. | Garbage collection—automatic data placement |
US11048624B2 (en) | 2017-04-25 | 2021-06-29 | Samsung Electronics Co., Ltd. | Methods for multi-stream garbage collection |
US9905294B1 (en) * | 2017-05-03 | 2018-02-27 | Seagate Technology Llc | Writing logically offset pages of data to N-level memory cells coupled to a common word line |
US11175853B2 (en) * | 2017-05-09 | 2021-11-16 | Samsung Electronics Co., Ltd. | Systems and methods for write and flush support in hybrid memory |
US11221956B2 (en) * | 2017-05-31 | 2022-01-11 | Seagate Technology Llc | Hybrid storage device with three-level memory mapping |
US10359954B2 (en) | 2017-05-31 | 2019-07-23 | Alibaba Group Holding Limited | Method and system for implementing byte-alterable write cache |
US10074436B1 (en) | 2017-06-13 | 2018-09-11 | Winbound Electronics Corp. | Memory device and data reading method thereof |
US10884926B2 (en) | 2017-06-16 | 2021-01-05 | Alibaba Group Holding Limited | Method and system for distributed storage using client-side global persistent cache |
US10303241B2 (en) | 2017-06-19 | 2019-05-28 | Alibaba Group Holding Limited | System and method for fine-grained power control management in a high capacity computer cluster |
US10564856B2 (en) | 2017-07-06 | 2020-02-18 | Alibaba Group Holding Limited | Method and system for mitigating write amplification in a phase change memory-based storage device |
US10613985B2 (en) * | 2017-07-06 | 2020-04-07 | Seagate Technology Llc | Buffer management in a data storage device wherein a bit indicating whether data is in cache is reset after updating forward table with physical address of non-volatile memory and jettisoning the data from the cache |
US10678443B2 (en) | 2017-07-06 | 2020-06-09 | Alibaba Group Holding Limited | Method and system for high-density converged storage via memory bus |
TWI633434B (zh) * | 2017-07-12 | 2018-08-21 | 宏碁股份有限公司 | 管理固態硬碟之方法、系統及電腦可讀取媒體 |
US11176047B2 (en) * | 2017-08-07 | 2021-11-16 | International Business Machines Corporation | Data storage system with physical storage and cache memory |
US10423508B2 (en) | 2017-08-11 | 2019-09-24 | Alibaba Group Holding Limited | Method and system for a high-priority read based on an in-place suspend/resume write |
US10303601B2 (en) | 2017-08-11 | 2019-05-28 | Alibaba Group Holding Limited | Method and system for rearranging a write operation in a shingled magnetic recording device |
CN107562844A (zh) * | 2017-08-25 | 2018-01-09 | 苏州市千尺浪信息技术服务有限公司 | 一种大数据的存储系统 |
US10642522B2 (en) | 2017-09-15 | 2020-05-05 | Alibaba Group Holding Limited | Method and system for in-line deduplication in a storage drive based on a non-collision hash |
US10496829B2 (en) | 2017-09-15 | 2019-12-03 | Alibaba Group Holding Limited | Method and system for data destruction in a phase change memory-based storage device |
JP2019057178A (ja) * | 2017-09-21 | 2019-04-11 | 東芝メモリ株式会社 | メモリシステムおよび制御方法 |
JP6785205B2 (ja) | 2017-09-21 | 2020-11-18 | キオクシア株式会社 | メモリシステムおよび制御方法 |
US10789011B2 (en) * | 2017-09-27 | 2020-09-29 | Alibaba Group Holding Limited | Performance enhancement of a storage device using an integrated controller-buffer |
US10503409B2 (en) | 2017-09-27 | 2019-12-10 | Alibaba Group Holding Limited | Low-latency lightweight distributed storage system |
US11301378B2 (en) | 2017-10-12 | 2022-04-12 | Rambus Inc. | Nonvolatile physical memory with DRAM cache and mapping thereof |
US10860334B2 (en) | 2017-10-25 | 2020-12-08 | Alibaba Group Holding Limited | System and method for centralized boot storage in an access switch shared by multiple servers |
JP2019079464A (ja) | 2017-10-27 | 2019-05-23 | 東芝メモリ株式会社 | メモリシステムおよび制御方法 |
JP6982468B2 (ja) | 2017-10-27 | 2021-12-17 | キオクシア株式会社 | メモリシステムおよび制御方法 |
JP7074453B2 (ja) * | 2017-10-30 | 2022-05-24 | キオクシア株式会社 | メモリシステムおよび制御方法 |
JP7074454B2 (ja) | 2017-10-30 | 2022-05-24 | キオクシア株式会社 | 計算機システムおよび制御方法 |
TWI645289B (zh) * | 2017-10-31 | 2018-12-21 | 慧榮科技股份有限公司 | 資料儲存裝置以及非揮發式記憶體操作方法 |
US10996888B2 (en) * | 2017-10-31 | 2021-05-04 | Qualcomm Incorporated | Write credits management for non-volatile memory |
US10445190B2 (en) | 2017-11-08 | 2019-10-15 | Alibaba Group Holding Limited | Method and system for enhancing backup efficiency by bypassing encoding and decoding |
US10877898B2 (en) | 2017-11-16 | 2020-12-29 | Alibaba Group Holding Limited | Method and system for enhancing flash translation layer mapping flexibility for performance and lifespan improvements |
US10387243B2 (en) | 2017-12-08 | 2019-08-20 | Macronix International Co., Ltd. | Managing data arrangement in a super block |
WO2019113729A1 (en) * | 2017-12-11 | 2019-06-20 | Micron Technology, Inc. | Scheme to improve efficiency of garbage collection in cached flash translation layer |
KR20190069806A (ko) * | 2017-12-12 | 2019-06-20 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
TWI644207B (zh) * | 2017-12-29 | 2018-12-11 | 國科美國研究實驗室 | Method for garbage collection of data storage device |
KR20190082513A (ko) * | 2018-01-02 | 2019-07-10 | 에스케이하이닉스 주식회사 | 컨트롤러 및 그것의 동작방법 |
TWI664531B (zh) * | 2018-01-25 | 2019-07-01 | 矽創電子股份有限公司 | 快閃記憶體之控制器及控制方法 |
US10891239B2 (en) | 2018-02-07 | 2021-01-12 | Alibaba Group Holding Limited | Method and system for operating NAND flash physical space to extend memory capacity |
US10496548B2 (en) | 2018-02-07 | 2019-12-03 | Alibaba Group Holding Limited | Method and system for user-space storage I/O stack with user-space flash translation layer |
US10831404B2 (en) | 2018-02-08 | 2020-11-10 | Alibaba Group Holding Limited | Method and system for facilitating high-capacity shared memory using DIMM from retired servers |
US10402112B1 (en) | 2018-02-14 | 2019-09-03 | Alibaba Group Holding Limited | Method and system for chunk-wide data organization and placement with real-time calculation |
KR20190102790A (ko) * | 2018-02-27 | 2019-09-04 | 에스케이하이닉스 주식회사 | 컨트롤러 및 그 동작 방법과, 이를 포함하는 메모리 시스템 |
TWI664527B (zh) * | 2018-03-20 | 2019-07-01 | 慧榮科技股份有限公司 | 用來於一記憶裝置中進行初始化之方法、記憶裝置及其控制器以及電子裝置 |
KR102434343B1 (ko) * | 2018-04-23 | 2022-08-22 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 |
TWI687811B (zh) * | 2018-05-14 | 2020-03-11 | 慧榮科技股份有限公司 | 資料儲存裝置及系統資訊的編程方法 |
WO2019222958A1 (en) | 2018-05-24 | 2019-11-28 | Alibaba Group Holding Limited | System and method for flash storage management using multiple open page stripes |
WO2020000136A1 (en) | 2018-06-25 | 2020-01-02 | Alibaba Group Holding Limited | System and method for managing resources of a storage device and quantifying the cost of i/o requests |
US10921992B2 (en) | 2018-06-25 | 2021-02-16 | Alibaba Group Holding Limited | Method and system for data placement in a hard disk drive based on access frequency for improved IOPS and utilization efficiency |
US10871921B2 (en) | 2018-07-30 | 2020-12-22 | Alibaba Group Holding Limited | Method and system for facilitating atomicity assurance on metadata and data bundled storage |
TWI671631B (zh) | 2018-08-01 | 2019-09-11 | 大陸商深圳大心電子科技有限公司 | 記憶體管理方法以及儲存控制器 |
US10996886B2 (en) | 2018-08-02 | 2021-05-04 | Alibaba Group Holding Limited | Method and system for facilitating atomicity and latency assurance on variable sized I/O |
US10747673B2 (en) | 2018-08-02 | 2020-08-18 | Alibaba Group Holding Limited | System and method for facilitating cluster-level cache and memory space |
TWI676987B (zh) * | 2018-08-06 | 2019-11-11 | 新唐科技股份有限公司 | 資料處理系統與資料處理方法 |
CN110825310B (zh) * | 2018-08-09 | 2023-09-05 | 深圳大心电子科技有限公司 | 存储器管理方法以及存储控制器 |
US10838621B2 (en) * | 2018-08-14 | 2020-11-17 | Silicon Motion, Inc. | Method and flash memory controller capable of avoiding inefficient memory block swap or inefficient garbage collection |
US10628072B2 (en) | 2018-08-21 | 2020-04-21 | Samsung Electronics Co., Ltd. | Scalable architecture enabling large memory system for in-memory computations |
TWI684130B (zh) * | 2018-08-22 | 2020-02-01 | 慧榮科技股份有限公司 | 資料儲存裝置 |
CN110858127B (zh) | 2018-08-22 | 2023-09-12 | 慧荣科技股份有限公司 | 数据存储装置 |
TWI696916B (zh) * | 2018-09-07 | 2020-06-21 | 慧榮科技股份有限公司 | 資料儲存裝置以及非揮發式記憶體控制方法 |
US11327929B2 (en) | 2018-09-17 | 2022-05-10 | Alibaba Group Holding Limited | Method and system for reduced data movement compression using in-storage computing and a customized file system |
CN110968528B (zh) * | 2018-09-30 | 2024-05-28 | 北京忆恒创源科技股份有限公司 | 应用统一缓存架构为非易失存储介质组装数据 |
US10852948B2 (en) | 2018-10-19 | 2020-12-01 | Alibaba Group Holding | System and method for data organization in shingled magnetic recording drive |
KR20200046495A (ko) * | 2018-10-24 | 2020-05-07 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작방법 |
CN111124270B (zh) | 2018-10-31 | 2023-10-27 | 伊姆西Ip控股有限责任公司 | 缓存管理的方法、设备和计算机程序产品 |
US10795586B2 (en) | 2018-11-19 | 2020-10-06 | Alibaba Group Holding Limited | System and method for optimization of global data placement to mitigate wear-out of write cache and NAND flash |
JP2020086748A (ja) * | 2018-11-21 | 2020-06-04 | Tdk株式会社 | メモリコントローラ、及びメモリシステム |
US10769018B2 (en) | 2018-12-04 | 2020-09-08 | Alibaba Group Holding Limited | System and method for handling uncorrectable data errors in high-capacity storage |
US10884654B2 (en) | 2018-12-31 | 2021-01-05 | Alibaba Group Holding Limited | System and method for quality of service assurance of multi-stream scenarios in a hard disk drive |
US10977122B2 (en) | 2018-12-31 | 2021-04-13 | Alibaba Group Holding Limited | System and method for facilitating differentiated error correction in high-density flash devices |
US11061735B2 (en) | 2019-01-02 | 2021-07-13 | Alibaba Group Holding Limited | System and method for offloading computation to storage nodes in distributed system |
US11132291B2 (en) | 2019-01-04 | 2021-09-28 | Alibaba Group Holding Limited | System and method of FPGA-executed flash translation layer in multiple solid state drives |
US11455402B2 (en) | 2019-01-30 | 2022-09-27 | Seagate Technology Llc | Non-volatile memory with precise write-once protection |
US11200337B2 (en) | 2019-02-11 | 2021-12-14 | Alibaba Group Holding Limited | System and method for user data isolation |
TWI718635B (zh) * | 2019-03-04 | 2021-02-11 | 慧榮科技股份有限公司 | 非對稱型平面管理方法以及資料儲存裝置及其控制器 |
CN111651371B (zh) | 2019-03-04 | 2023-06-16 | 慧荣科技股份有限公司 | 非对称型平面管理方法以及数据存储装置及其控制器 |
TWI732192B (zh) * | 2019-03-20 | 2021-07-01 | 點序科技股份有限公司 | 記憶體管理方法及記憶體儲存裝置 |
US10944697B2 (en) | 2019-03-26 | 2021-03-09 | Microsoft Technology Licensing, Llc | Sliding window buffer for minimum local resource requirements |
US10922234B2 (en) | 2019-04-11 | 2021-02-16 | Alibaba Group Holding Limited | Method and system for online recovery of logical-to-physical mapping table affected by noise sources in a solid state drive |
US10908960B2 (en) | 2019-04-16 | 2021-02-02 | Alibaba Group Holding Limited | Resource allocation based on comprehensive I/O monitoring in a distributed storage system |
US11288007B2 (en) * | 2019-05-16 | 2022-03-29 | Western Digital Technologies, Inc. | Virtual physical erase of a memory of a data storage device |
US11169873B2 (en) | 2019-05-21 | 2021-11-09 | Alibaba Group Holding Limited | Method and system for extending lifespan and enhancing throughput in a high-density solid state drive |
US11036411B2 (en) * | 2019-06-24 | 2021-06-15 | Western Digital Technologies, Inc. | Yield improvement through block budget optimization by using a transient pool of multi-level blocks |
CN112130749B (zh) * | 2019-06-25 | 2023-12-22 | 慧荣科技股份有限公司 | 数据储存装置以及非挥发式存储器控制方法 |
US11481119B2 (en) * | 2019-07-15 | 2022-10-25 | Micron Technology, Inc. | Limiting hot-cold swap wear leveling |
US10860223B1 (en) | 2019-07-18 | 2020-12-08 | Alibaba Group Holding Limited | Method and system for enhancing a distributed storage system by decoupling computation and network tasks |
US11126561B2 (en) | 2019-10-01 | 2021-09-21 | Alibaba Group Holding Limited | Method and system for organizing NAND blocks and placing data to facilitate high-throughput for random writes in a solid state drive |
US11188261B2 (en) * | 2019-11-18 | 2021-11-30 | International Business Machines Corporation | Memory controllers for solid-state storage devices |
KR20210083914A (ko) * | 2019-12-27 | 2021-07-07 | 에스케이하이닉스 주식회사 | 메모리 시스템에서의 쓰기 레이턴시 관리 방법 및 장치 |
US11042307B1 (en) | 2020-01-13 | 2021-06-22 | Alibaba Group Holding Limited | System and method for facilitating improved utilization of NAND flash based on page-wise operation |
US11449455B2 (en) | 2020-01-15 | 2022-09-20 | Alibaba Group Holding Limited | Method and system for facilitating a high-capacity object storage system with configuration agility and mixed deployment flexibility |
TWI744049B (zh) * | 2020-02-06 | 2021-10-21 | 瑞昱半導體股份有限公司 | 記憶體控制器與資料處理方法 |
US10872622B1 (en) | 2020-02-19 | 2020-12-22 | Alibaba Group Holding Limited | Method and system for deploying mixed storage products on a uniform storage infrastructure |
US10923156B1 (en) | 2020-02-19 | 2021-02-16 | Alibaba Group Holding Limited | Method and system for facilitating low-cost high-throughput storage for accessing large-size I/O blocks in a hard disk drive |
US11150986B2 (en) | 2020-02-26 | 2021-10-19 | Alibaba Group Holding Limited | Efficient compaction on log-structured distributed file system using erasure coding for resource consumption reduction |
US11144250B2 (en) | 2020-03-13 | 2021-10-12 | Alibaba Group Holding Limited | Method and system for facilitating a persistent memory-centric system |
US11200114B2 (en) | 2020-03-17 | 2021-12-14 | Alibaba Group Holding Limited | System and method for facilitating elastic error correction code in memory |
US11385833B2 (en) | 2020-04-20 | 2022-07-12 | Alibaba Group Holding Limited | Method and system for facilitating a light-weight garbage collection with a reduced utilization of resources |
US11281575B2 (en) | 2020-05-11 | 2022-03-22 | Alibaba Group Holding Limited | Method and system for facilitating data placement and control of physical addresses with multi-queue I/O blocks |
US11461262B2 (en) | 2020-05-13 | 2022-10-04 | Alibaba Group Holding Limited | Method and system for facilitating a converged computation and storage node in a distributed storage system |
US11494115B2 (en) | 2020-05-13 | 2022-11-08 | Alibaba Group Holding Limited | System method for facilitating memory media as file storage device based on real-time hashing by performing integrity check with a cyclical redundancy check (CRC) |
US11218165B2 (en) | 2020-05-15 | 2022-01-04 | Alibaba Group Holding Limited | Memory-mapped two-dimensional error correction code for multi-bit error tolerance in DRAM |
US11556277B2 (en) | 2020-05-19 | 2023-01-17 | Alibaba Group Holding Limited | System and method for facilitating improved performance in ordering key-value storage with input/output stack simplification |
US11507499B2 (en) | 2020-05-19 | 2022-11-22 | Alibaba Group Holding Limited | System and method for facilitating mitigation of read/write amplification in data compression |
US11263132B2 (en) | 2020-06-11 | 2022-03-01 | Alibaba Group Holding Limited | Method and system for facilitating log-structure data organization |
US11354200B2 (en) | 2020-06-17 | 2022-06-07 | Alibaba Group Holding Limited | Method and system for facilitating data recovery and version rollback in a storage device |
US11422931B2 (en) | 2020-06-17 | 2022-08-23 | Alibaba Group Holding Limited | Method and system for facilitating a physically isolated storage unit for multi-tenancy virtualization |
US11354233B2 (en) | 2020-07-27 | 2022-06-07 | Alibaba Group Holding Limited | Method and system for facilitating fast crash recovery in a storage device |
KR20220021772A (ko) * | 2020-08-14 | 2022-02-22 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 이에 포함된 메모리 장치의 동작 방법 |
US11372774B2 (en) | 2020-08-24 | 2022-06-28 | Alibaba Group Holding Limited | Method and system for a solid state drive with on-chip memory integration |
TWI741779B (zh) * | 2020-09-04 | 2021-10-01 | 群聯電子股份有限公司 | 資料整併方法、記憶體儲存裝置及記憶體控制電路單元 |
US11487465B2 (en) | 2020-12-11 | 2022-11-01 | Alibaba Group Holding Limited | Method and system for a local storage engine collaborating with a solid state drive controller |
RU2752782C1 (ru) * | 2020-12-18 | 2021-08-03 | Акционерное Общество "Крафтвэй Корпорэйшн Плс" | Способ записи секторных данных в кэш-память |
US11734115B2 (en) | 2020-12-28 | 2023-08-22 | Alibaba Group Holding Limited | Method and system for facilitating write latency reduction in a queue depth of one scenario |
US11416365B2 (en) | 2020-12-30 | 2022-08-16 | Alibaba Group Holding Limited | Method and system for open NAND block detection and correction in an open-channel SSD |
JP7472324B2 (ja) * | 2021-02-08 | 2024-04-22 | 長江存儲科技有限責任公司 | 論理-物理(l2p)テーブルにキャッシュするためのオンダイスタティックランダムアクセスメモリ(sram) |
TWI811633B (zh) * | 2021-02-09 | 2023-08-11 | 新唐科技股份有限公司 | 電子裝置與其操作方法 |
TWI821152B (zh) * | 2021-02-23 | 2023-11-01 | 慧榮科技股份有限公司 | 儲存裝置、快閃記憶體控制器及其控制方法 |
TWI808384B (zh) * | 2021-02-23 | 2023-07-11 | 慧榮科技股份有限公司 | 儲存裝置、快閃記憶體控制器及其控制方法 |
US11726699B2 (en) | 2021-03-30 | 2023-08-15 | Alibaba Singapore Holding Private Limited | Method and system for facilitating multi-stream sequential read performance improvement with reduced read amplification |
US11567935B2 (en) * | 2021-03-30 | 2023-01-31 | Google Llc | Conditional response fulfillment cache for locally responding to automated assistant inputs |
US11461173B1 (en) | 2021-04-21 | 2022-10-04 | Alibaba Singapore Holding Private Limited | Method and system for facilitating efficient data compression based on error correction code and reorganization of data placement |
US11476874B1 (en) | 2021-05-14 | 2022-10-18 | Alibaba Singapore Holding Private Limited | Method and system for facilitating a storage server with hybrid memory for journaling and data storage |
US11899977B2 (en) | 2022-03-10 | 2024-02-13 | Silicon Motion, Inc. | Method and apparatus for performing access management of memory device with aid of serial number assignment timing control |
CN117348909B (zh) * | 2023-12-04 | 2024-02-27 | 成都佰维存储科技有限公司 | 一种eMMC升级方法、芯片、设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1930635A (zh) * | 2003-12-30 | 2007-03-14 | 桑迪士克股份有限公司 | 对多个区块进行适应性确定群组以成为多个多区块单元 |
US20080195801A1 (en) * | 2007-02-13 | 2008-08-14 | Cheon Won-Moon | Method for operating buffer cache of storage device including flash memory |
CN101256535A (zh) * | 2007-03-01 | 2008-09-03 | 创惟科技股份有限公司 | 硬盘资料读写快取装置及方法 |
US20090172259A1 (en) * | 2007-12-27 | 2009-07-02 | Pliant Technology, Inc. | Mass storage controller volatile memory containing metadata related to flash memory storage |
CN101477492A (zh) * | 2009-01-21 | 2009-07-08 | 华中科技大学 | 一种用于固态硬盘的循环重写闪存均衡方法 |
US20090216936A1 (en) * | 2008-02-21 | 2009-08-27 | Phison Electronics Corp. | Data reading method for flash memory and controller and storage system using the same |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3328321B2 (ja) | 1992-06-22 | 2002-09-24 | 株式会社日立製作所 | 半導体記憶装置 |
US5404485A (en) | 1993-03-08 | 1995-04-04 | M-Systems Flash Disk Pioneers Ltd. | Flash file system |
JP3197815B2 (ja) | 1996-04-15 | 2001-08-13 | インターナショナル・ビジネス・マシーンズ・コーポレ−ション | 半導体メモリ装置及びその制御方法 |
JP4085478B2 (ja) | 1998-07-28 | 2008-05-14 | ソニー株式会社 | 記憶媒体及び電子機器システム |
US6901499B2 (en) | 2002-02-27 | 2005-05-31 | Microsoft Corp. | System and method for tracking data stored in a flash memory device |
US7386700B2 (en) | 2004-07-30 | 2008-06-10 | Sandisk Il Ltd | Virtual-to-physical address translation in a flash file system |
US7386655B2 (en) | 2004-12-16 | 2008-06-10 | Sandisk Corporation | Non-volatile memory and method with improved indexing for scratch pad and update blocks |
TWI312112B (en) * | 2005-12-30 | 2009-07-11 | Ind Tech Res Inst | Data managing method, method and apparatus to snapshot data for multiple volumes to a single snapshot volume in a data processing system |
JP4700562B2 (ja) * | 2006-05-18 | 2011-06-15 | 株式会社バッファロー | データ記憶装置およびデータ記憶方法 |
WO2008033952A2 (en) * | 2006-09-15 | 2008-03-20 | Sandisk Corporation | Non-volatile memory and method for class-based update block replacement rules |
-
2009
- 2009-09-03 US US12/584,299 patent/US8688894B2/en not_active Expired - Fee Related
-
2010
- 2010-09-01 TW TW99129426A patent/TWI474167B/zh not_active IP Right Cessation
- 2010-09-01 TW TW103131114A patent/TWI551989B/zh not_active IP Right Cessation
- 2010-09-01 TW TW103131115A patent/TWI553475B/zh not_active IP Right Cessation
- 2010-09-03 CN CN201010271678.5A patent/CN102012867B/zh not_active Expired - Fee Related
- 2010-09-03 CN CN201410411424.7A patent/CN104298610B/zh not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1930635A (zh) * | 2003-12-30 | 2007-03-14 | 桑迪士克股份有限公司 | 对多个区块进行适应性确定群组以成为多个多区块单元 |
US20080195801A1 (en) * | 2007-02-13 | 2008-08-14 | Cheon Won-Moon | Method for operating buffer cache of storage device including flash memory |
CN101256535A (zh) * | 2007-03-01 | 2008-09-03 | 创惟科技股份有限公司 | 硬盘资料读写快取装置及方法 |
US20090172259A1 (en) * | 2007-12-27 | 2009-07-02 | Pliant Technology, Inc. | Mass storage controller volatile memory containing metadata related to flash memory storage |
US20090216936A1 (en) * | 2008-02-21 | 2009-08-27 | Phison Electronics Corp. | Data reading method for flash memory and controller and storage system using the same |
CN101477492A (zh) * | 2009-01-21 | 2009-07-08 | 华中科技大学 | 一种用于固态硬盘的循环重写闪存均衡方法 |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI731904B (zh) * | 2015-12-30 | 2021-07-01 | 美商英特爾股份有限公司 | 用於巷道為主的跨類收集的系統、設備與方法 |
TWI615710B (zh) * | 2016-12-14 | 2018-02-21 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 |
CN108228088B (zh) * | 2016-12-21 | 2020-10-23 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法和设备 |
CN108228088A (zh) * | 2016-12-21 | 2018-06-29 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法和设备 |
CN108415850A (zh) * | 2017-02-09 | 2018-08-17 | 爱思开海力士有限公司 | 数据存储装置及其操作方法 |
CN106951193A (zh) * | 2017-03-27 | 2017-07-14 | 深圳佰维存储科技股份有限公司 | 改善Nand Flash存储性能的方法及其系统 |
CN106951193B (zh) * | 2017-03-27 | 2019-11-12 | 深圳佰维存储科技股份有限公司 | 改善Nand Flash存储性能的方法及其系统 |
US10431289B2 (en) | 2017-07-28 | 2019-10-01 | Micron Technology, Inc. | Memory devices with selective page-based refresh |
US10748598B2 (en) | 2017-07-28 | 2020-08-18 | Micron Technology, Inc. | Memory devices with selective page-based refresh |
TWI684867B (zh) * | 2017-07-28 | 2020-02-11 | 美商美光科技公司 | 具有選擇性基於頁面更新的記憶體裝置 |
US11200938B2 (en) | 2017-07-28 | 2021-12-14 | Micron Technology, Inc. | Memory devices with selective page-based refresh |
US11621029B2 (en) | 2017-07-28 | 2023-04-04 | Micron Technology, Inc. | Memory devices with selective page-based refresh |
CN110825659A (zh) * | 2018-08-14 | 2020-02-21 | 爱思开海力士有限公司 | 用于检查存储器系统中的块中的有效数据的设备和方法 |
CN110825659B (zh) * | 2018-08-14 | 2023-04-07 | 爱思开海力士有限公司 | 用于检查存储器系统中的块中的有效数据的设备和方法 |
CN111984462A (zh) * | 2019-05-22 | 2020-11-24 | 慧荣科技股份有限公司 | 无预警断电复原管理方法、记忆装置、控制器及电子装置 |
CN111984462B (zh) * | 2019-05-22 | 2024-06-11 | 慧荣科技股份有限公司 | 无预警断电复原管理方法、记忆装置、控制器及电子装置 |
CN111459850A (zh) * | 2020-05-18 | 2020-07-28 | 江苏时代全芯存储科技股份有限公司 | 记忆体装置以及运作方法 |
Also Published As
Publication number | Publication date |
---|---|
US8688894B2 (en) | 2014-04-01 |
TWI551989B (zh) | 2016-10-01 |
CN104298610B (zh) | 2017-07-11 |
CN102012867A (zh) | 2011-04-13 |
CN102012867B (zh) | 2014-12-24 |
US20110055458A1 (en) | 2011-03-03 |
TW201510723A (zh) | 2015-03-16 |
TW201122812A (en) | 2011-07-01 |
TW201510722A (zh) | 2015-03-16 |
TWI553475B (zh) | 2016-10-11 |
TWI474167B (zh) | 2015-02-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102012867B (zh) | 资料储存系统 | |
US10430084B2 (en) | Multi-tiered memory with different metadata levels | |
CN106547703B (zh) | 一种基于块组结构的ftl优化方法 | |
CN102576293B (zh) | 固态存储设备和分层存储系统中的数据管理 | |
CN102646069B (zh) | 一种延长固态盘使用寿命的方法 | |
CN102508788B (zh) | Ssd及ssd垃圾回收方法和装置 | |
CN106776376B (zh) | 缓冲存储器管理方法、存储器控制电路单元及存储装置 | |
TWI399644B (zh) | 非揮發記憶體區塊管理方法 | |
CN106502587B (zh) | 硬盘数据管理方法和硬盘控制装置 | |
CN105930282B (zh) | 一种用于nand flash的数据缓存方法 | |
CN109710541B (zh) | 针对NAND Flash主控芯片Greedy垃圾回收的优化方法 | |
US20110225347A1 (en) | Logical block storage in a storage device | |
CN101241472B (zh) | 映射管理方法及系统 | |
CN103631536B (zh) | 一种利用ssd的无效数据优化raid5/6写性能的方法 | |
CN106557432B (zh) | 缓冲存储器管理方法、存储器控制电路单元及存储装置 | |
CN104598386B (zh) | 通过追踪和利用二级映射索引重复利用固态驱动器块 | |
CN109240939B (zh) | 一种快速处理固态硬盘trim的方法 | |
CN109582593A (zh) | 一种基于计算的ftl地址映射方法及数据读、写方法 | |
CN105260325A (zh) | 固态硬盘搜集垃圾区块的方法 | |
CN107797772A (zh) | 一种基于闪存介质的垃圾回收系统及方法 | |
CN103136111B (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN109144885A (zh) | 固态存储设备的垃圾回收方法与固态存储设备 | |
CN113253926A (zh) | 提升新型存储器的查询和存储性能的存储内索引构建方法 | |
CN113010091B (zh) | 数据写入固态硬盘的方法、垃圾回收的方法、装置 | |
KR101191650B1 (ko) | 낸드 플래시 메모리에서 데이터의 주소를 사상시키는 장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: ZTE in the two street Hsinchu County Taiwan Richwood China jhubei City, a 5 floor No. 158 Applicant after: PIONEER CHIP TECHNOLOGY, LTD. Address before: ZTE in the two street Hsinchu County Taiwan Richwood China jhubei City, a 5 floor No. 158 Applicant before: Pioneer Chip Technology Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170711 Termination date: 20210903 |
|
CF01 | Termination of patent right due to non-payment of annual fee |