背景技术
固态硬碟(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提供一非挥发性记忆体的高速暂存区(scratchpad)与更新区块的索引方法。更新资料是可依一预设条件选择记录于一更新区块或一高速暂存区块中。高速暂存区块用以缓冲最终要储存于更新区块的更新资料。
美国专利US 7,386,655提供一可存取主机资料的快闪记忆体管理***。该***包含有记忆体的实体单元与虚拟单元及各虚拟单元至一或多 个实体单元的映射机制。
美国专利申请案US 2006/0069852提供一储存于快闪记忆体装置的资料的可用区段管理器。一快闪驱动器利用逻辑实体区段映射追踪储存于一快闪记忆体的资料。该映射是以一资料结构储存,并允许资料写入快闪记忆媒体的下一个可用实体区段。由于无需先进行抹除程序,故写入程序可快速完成。以资料结构储存的逻辑实体区段映射被复制于该快闪记忆媒体中。若发生电源中断的悲剧,该逻辑实体区段映射可借助扫描快闪记忆媒体中的复制映射而快速重建。
具体实施方式
本发明的以页面为基础的管理架构,用以对位址进行解码,并索引至逻辑实体转换表及区块内的页码。若页面位于页面或必须从非挥发性 快闪随机存取记忆体阵列装置收回,逻辑实体转换表包括一快取设置位元。
若页面不在页面缓冲器内,则由非挥发性快闪随机存取记忆体阵列装置取出。区段被指定为低顺序的位址,区段会被读取或写入页面缓冲器。若页面缓冲器内不具有足够的空闲页面时,将会进行收回程序,并由页面缓冲器收回至少一最近被使用的页面。若页面为有效且与储存在非挥发性快闪随机存取记忆体阵列装置的页面一致,则页面缓冲器的页面空间会被得知,且页面将会被从非挥发性快闪随机存取记忆体阵列装置中取出。区段可被适当的被读取或写入。当页面内的区块为无效时,页面缓冲器的无效区段将会是新的,并与非挥发性快闪随机存取记忆体阵列装置的旧的区段相配。页面可被重新写入非挥发性快闪随机存取记忆体阵列装置,且位于页面缓冲器内的位置将会成为空闲页面。
页面缓冲器内最新的空闲页面会被指派至位址页面,且页面由非挥发性快闪随机存取记忆体阵列装置中被读取,并由页面缓冲器读取区段,或将区段写入页面缓冲器。
抹除区块列表会被维持,且当不具有足够的抹除区块可允许非挥发性快闪随机存取记忆体阵列装置进行操作时,则会进行一垃圾收回的动作以抹除无效的区块。当区快被抹除之后,将会进行抹除数量及门槛的比对。若超过门槛,则具有最低抹除次数的区块会被复制至较新的抹除区快,而具有最低抹除次数的区块会被抹除并成为一新的备用区块。
首先,请参阅图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包括有一最近最少使用连接表(leastrecently 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是由无效页面锚点连接64456n与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及12811446g分别由不合法的页面指标0xffffffff(已抹除页面)改变为逻辑页面数字2及5。当区块100中所有的页面皆在无效页面表435中显示为无效,则区块100 477a抹除完毕。
当快闪随机存取记忆体阵列装置475的区块100 438被抹除,可易于达到耗损平衡。耗损平衡程序的模式,在于令图4所示的快闪随机存取记忆体阵列装置375均匀地损耗。
请参阅图7,为本发明以页面为基础对于记忆体进行管理的耗损平衡中各表格的示意图。在本实施例中,假设每区块包含有64个页面,则区块100 477a的起始位置与页面6400 478a的起始位置相同,而区块200447b的起始位置与页面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)的无效页面锚点连接阵列的其中一个。非挥发性随机存取记忆体装置的无效页面锚点连接阵列将会被扫描,并由无效页面的锚点连接64456m及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所示。
具有最小抹除总数的区块的页面将被设定成不合法位址码(illegaladdress 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)来当作是非挥发性快闪随机存取记忆体阵列装置所分割的区块。例如,可从四个不同的非挥发性快闪随机存取记忆体阵列装置中各取一个区块来组成一超级区块。一个四页面次区块将具有四个实体页面,而每一个实体页面都是从不同的非挥发性快闪随机存取记忆体阵列装置中而来。如此将具有比较小的页面表及比较小的区块表,而快取管理也将依据超级区块的数量而定,超级区块的数量将是实体区块数量的一小部分。在这个由四个不同的非挥发性快闪随机存取记忆体阵列装置来组成四个区块的实施例中,超级区 块的数量将是实体区块数量的四分之一。另外,每一个次区块将可以被平行态样写入,因为一个次区块的所有实体页面将位于不同的芯片中,因此可提供以交错的平行方式来进入非挥发性快闪随机存取记忆体阵列装置。
以上所述者,仅为本发明的一较佳实施例而已,并非用来限定本发明实施的范围,即凡依本发明申请专利范围所述的形状、构造、特征及精神所为的均等变化与修饰,均应包括于本发明的申请专利范围内。