快闪存储器的废料收集方法以及使用该方法的装置与流程

文档序号:12612079阅读:201来源:国知局
快闪存储器的废料收集方法以及使用该方法的装置与流程

本发明有关于一种快闪存储器装置,特别是一种快闪存储器的废料收集方法以及使用该方法的装置。



背景技术:

快闪存储器装置通常分为NOR快闪装置与NAND快闪装置。NOR快闪装置为随机存取装置,而可于地址脚位上提供任何的地址,用以存取NOR快闪装置的主装置(host),并及时地由NOR快闪装置的数据脚位上获得储存于该地址上的数据。相反地,NAND快闪装置并非随机存取,而是序列存取。NAND快闪装置无法像NOR快闪装置一样,可以存取任何随机地址,主装置反而需要写入序列的位元组(bytes)的值到NAND快闪装置中,用以定义请求命令(command)的类型(如,读取、写入、抹除等),以及用在此命令上的地址。地址可指向一个页面(在快闪存储器中的一个写入作业的最小数据块)或一个区块(在快闪存储器中的一个抹除作业的最小数据块)。实际上,NAND快闪装置通常从存储器单元(memory cells)上读取或写入完整的数页数据。当一整页的数据从阵列读取到装置中的缓存器(buffer)后,藉由使用提取信号(strobe signal)顺序地敲出(clock out)内容,让主单元可逐位元组或字元组(words)存取数据。

若区块中的部分页面的数据已经不需要(亦称为过期页面),则读取这些区块中储存有效数据的页面并重新写入至另一个先前经过抹除的空区块。接着,这些释放的区块在经过抹除作业后就可被用以写入新数据。以上处理称为废料收集(GC,Garbage Collection)。废料收集处理牵涉到读取及重新写入数据至快闪存储器,也就是一次新的写入前需要读取完整个区块的数据。然而,废料收集耗费大量的时间。因此,需要一种快闪存储器的废料收集方法以及使用该方法的装置,用以减少存取时间。



技术实现要素:

本发明的实施例提出一种快闪存储器的废料收集方法,由处理单元执行,包含下列步骤。从多个储存子单元读取n*m个页面的有效数据。反复执行一个回圈,用以逐一驱动储存子单元以写入m个页面的有效数据,直到储存子单元皆处于忙碌状态为止。

本发明的实施例另提出一种快闪存储器的废料收集方法,由处理单元执行,包含下列步骤。将n*m个页面的有效数据的多个读取命令进行排程。除了接收相应于最后的读取命令及实体地址的有效数据外,于接收相应于每一已传送的数据读取命令及实体地址的有效数据前,传送下一数据读取命令及实体地址给储存子单元中的指定下一者。驱动储存子单元以写入n*m个页面的有效数据。

本发明的实施例提出一种快闪存储器的废料收集装置,至少包含通道以及处理单元。通道耦接于多个储存子单元,而处理单元耦接于通道。处理单元从储存子单元读取n*m个页面的有效数据;以及反复执行一个回圈,用以逐一驱动上述储存子单元以写入m个页面的有效数据,直到储存子单元皆处于忙碌状态为止。

本发明的实施例另提出一种快闪存储器的废料收集装置,至少包含通道以及处理单元。通道耦接于多个储存子单元,而处理单元耦接于通道。处理单元将n*m个页面的有效数据的多个读取命令进行排程;除了接收相应于最后一读取命令及实体地址的有效数据外,于接收相应于每一已传送的数据读取命令及实体地址的有效数据前,传送下一数据读取命令及实体地址给储存子单元中的指定下一者;以及驱动储存子单元以写入n*m个页面的有效数据。

其中,n代表共享一个通道的储存子单元的数量,m代表每一储存子单元的最小写入页面的数量。

附图说明

图1是依据本发明实施例的快闪存储器的系统架构示意图。

图2是依据本发明实施例的快闪存储器中的储存单元示意图。

图3是依据本发明实施例的存取介面与储存单元的方块图。

图4是依据本发明实施例的一个存取子介面与多个储存子单元的连接示意图。

图5是依据本发明实施例的执行于处理单元中的快闪存储器的废料收集方法流程图。

图6是依据本发明实施例的废料收集处理示意图。

图7是依据本发明实施例的执行于处理单元中的快闪存储器的废料收集方法流程图。

图8是依据本发明实施例的废料收集处理示意图。

图9A及9B是依据本发明实施例的执行于处理单元中的快闪存储器的废料收集方法流程图。

符号说明

10 系统;

110 处理单元;

130 动态随机存取存储器;

150 存取介面;

160 主装置;

170 存取介面;

170_0~170_j 存取子介面;

180 储存单元;

180_0_0~180_j_i 储存子单元;

210 存储器单元阵列;

220 行解码单元;

230 列编码单元;

240 地址单元;

250 数据缓存器;

410_0 数据线;

420_0_0~420_0_i 芯片致能控制信号;

CE0~CE4 储存子单元;

R0从CE0接收数据的时间;

R1从CE1接收数据的时间;

R2从CE2接收数据的时间;

R3从CE3接收数据的时间;

S511~S557 方法步骤;

S711~S791 方法步骤;

S911~S977 方法步骤;

T61 读取数据的时间区间;

T63 写入数据的时间区间;

T81 读取数据的时间区间;

T83 写入数据的时间区间;

tR 储存子单元准备数据的时间;

tProg 储存子单元实际写入数据的时间;

W0传送数据至CE0的时间;

W1传送数据至CE1的时间;

W2传送数据至CE2的时间;

W3传送数据至CE3的时间。

具体实施方式

以下说明是为完成发明的较佳实现方式,其目的在于描述本发明的基本精神,但并不用以限定本发明。实际的发明内容必须参考之后的权利要求范围。

必须了解的是,使用于本说明书中的“包含”、“包括”等词,是用以表示存在特定的技术特征、数值、方法步骤、作业处理、元件以及/或组件,但并不排除可加上更多的技术特征、数值、方法步骤、作业处理、元件、组件,或以上的任意组合。

于权利要求中使用如“第一”、“第二”、“第三”等词是用来修饰权利要求中的元件,并非用来表示之间具有优先权顺序,先行关系,或者是一个元件先于另一个元件,或者是执行方法步骤时的时间先后顺序,仅用来区别具有相同名字的元件。

图1是依据本发明实施例的快闪存储器的系统架构示意图。快闪存储器的系统架构10中包含处理单元110,用以写入数据到储存单元180中的指定地址,以及从储存单元180中的指定地址读取数据。详细来说,处理单元110透过存取介面170写入数据到储存单元180中的指定地址,以及从储存单元180中的指定地址读取数据。系统架构10使用数个电子信号来协调处理单元110与储存单元180间的数据与命令传递,包含数据线(data line)、时脉信号(clock signal)与控制信号(control signal)。数据线可用以传递命令、地址、读出及写入的数据;控制信号线可用以传递芯片致能(chip enable,CE)、地址提取致能(address latch enable,ALE)、命令提取致能(command latch enable,CLE)、写入致能(write enable,WE)等控制信号。存取介 面170可采用双倍数据率(double data rate,DDR)通讯协定与储存单元180沟通,例如,开放NAND快闪(open NAND flash interface,ONFI)、双倍数据率开关(DDR toggle)或其他介面。处理单元110另可使用存取介面150透过指定通讯协定与主装置160进行沟通,例如,通用串行总线(universal serial bus,USB)、先进技术附着(advanced technology attachment,ATA)、串行先进技术附着(serial advanced technology attachment,SATA)、快速周边元件互联(peripheral component interconnect express,PCI-E)或其他介面。

图2是依据本发明实施例的快闪存储器中的储存单元示意图。储存单元180可包含由MxN个存储器单元(memory cells)组成的阵列(array)210,而每一个存储器单元储存至少一个位元(bit)的资讯。快闪存储器可以是NAND型快闪存储器,或其他种类的快闪存储器。为了正确存取资讯,行解码单元220用以选择存储器单元阵列210中指定的行,而列编码单元230用以选择指定行中一定数量的位元组的数据作为输出。地址单元240提供行资讯给行解码器220,其中定义了选择存储器单元阵列210中的那些行。相似地,列解码器230则根据地址单元240提供的列资讯,选择存储器单元阵列210的指定行中一定数量的列进行读取或写入操作。行可称为为字元线(wordline),列可称为位元线(bitline)。数据缓存器(data buffer)250可储存从存储器单元阵列210读取出的数据,或欲写入存储器单元阵列210中的数据。存储器单元可为单层式单元(single-level cells,SLCs)、多层式单元(multi-level cells,MLCs)或三层式单元(triple-level cells,TLCs)。

储存单元180可包含多个储存子单元,每一个储存子单元实施于一个晶粒(die)上,各自使用关联的存取子介面与处理单元110进行沟通。图3是依据本发明实施例的存取介面与储存单元的方块图。快闪存储器10可包含j+1个存取子介面170_0至170_j,存取子介面又可称为通道(channel),每一个存取子介面连接i+1个储存子单元。换句话说,i+1个储存子单元共享一个存取子介面。例如,当快闪存储器10包含4个通道(j=3)且每一个通道连接4个储存单元(i=3)时,快闪存储器10一共拥有16个储存单元180_0_0至180_j_i。处理单元110可驱动存取子介面170_0至170_j中之一者,从指定的储存子单元读取数据。每个储存子单元拥有独立的芯片致能(CE,Chip Enable)控制信号。换句话说,当欲对指定的储存子单元进行数据读取或写入时,需要驱动关联的存取子介面致能此储存子单元的芯片致能控制信号。图4是依据本发明实施例的一个存取子介面与多个储存子单元的连接示意图。处理 单元110可透过存取子介面170_0使用独立的芯片致能控制信号420_0_0至420_0_i来从连接的储存子单元180_0_0至180_0_i中选择出其中一者,接着,透过共享的数据线410_0传送命令或数据给选择出的储存子单元,或者从选择出的储存子单元接收指定位置上的数据。

主装置160可透过存取介面150提供逻辑区块地址(LBA,Logical Block Address)给处理单元110,用以指示写入或读取特定区域的数据。存取介面170为最佳化数据写入的效率,可将一段具有连续逻辑区块地址的数据分散地摆放在不同储存子单元中的不同区域。因此,需要一个对照表(又称为H2F表),用以指出每个逻辑区块地址的数据实际上存放在哪个储存子单元中的哪个位置。于一种实施方式中,可于动态随机存取存储器130中配置足够大的空间来储存此对照表。

假设n个储存子单元共享一个通道,一个储存子单元的最小写入单位为m个页面。为了让废料收集处理的数据写入更有效率,本发明实施例从数个区块中读取n*m个页面的有效数据,接着,逐一驱动储存子单元写入m个页面的有效数据,直到所有储存子单元皆处于忙碌状态(busy state)为止。于此须注意的是,当m个页面的有效数据传送至一个储存子单元完毕后,不需要等待储存子单元执行完实体写入作业即可传送另外m个页面的有效数据给下一个储存子单元。透过以上的设计,可让处理单元110于一个储存子单元执行实体写入作业的期间传送数据给下一个储存子单元,并且在所有储存子单元执行实体写入作业的期间,转而执行其他的运算作业。图5是依据本发明实施例的执行于处理单元中的快闪存储器的废料收集方法流程图。处理单元110经由存取介面170读取n*m个页面的有效数据并储存于动态随机存取存储器130后(步骤S511),初始化变数k(k=k0)(步骤S513)。其中,除了有效数据外,读取区块另包含过期数据。k0为一个常数,介于0至n-1之间,用以指示第一个写入数据的储存子单元的编号。于此须注意的是,动态随机存取存储器130拥有足够大的空间来储存n*m个页面的有效数据。于步骤S511,处理单元可依据动态随机存取存储器130中的H2F表取得n*m个页面的有效数据的实体地址并且驱动储存单元180从这些实体地址读取数据。接着,处理单元110反复执行一个回圈(步骤S531至S557),直到n*m个页面的有效数据都写入储存单元180为止。

于每一回合中,处理单元110从动态随机存取存储器130读取m个页面的有效数据,以及经由存取介面170传送数据写入命令及实体地址给第k个储存子单元 (步骤S531)。参考图4。举例来说,于步骤S531,处理单元110可透过存取子介面170_0致能独立的芯片致能控制信号420_0_0至420_0_i中的指定一者,用以从储存子单元180_0_0至180_0_i中选择出第k个储存子单元,接着,透过共享的数据线410_0传送数据写入命令及实体地址给选择出的第k个储存子单元。于此须注意的是,实体地址指示同一个区块的m个页面。接着,处理单元110传送m个页面的有效数据给第k个储存子单元(步骤S533),以及传送开始写入信号给第k个储存子单元,用以指示开始执行实体写入作业(步骤S535)。参考第4图。举例来说,于步骤S533,处理单元110可透过共享的数据线410_0传送m个页面的有效数据给选择出的第k个储存子单元。举例来说,于步骤S535,处理单元110可转态(toggle)相应于第k个储存子单元的写入致能(WE,Write Enable)信号,用以指示开始执行实体写入作业。当第k个储存子单元接收到处理单元110的指示后,进入忙碌状态并执行实体写入作业,用以将m个页面的有效数据写入指定的实体地址。接着,当尚未完成整个写入作业时(步骤S551中”否”的路径),处理单元110将变数k加1(步骤S553),以及判断变数k是否大于或等于n(步骤S555)。若是,处理单元110将变数k设为0(步骤S557),并接着驱动第0个储存子单元写入m个页面的有效数据(步骤S531至S553)。否则,处理单元110接着驱动第k个储存子单元写入m个页面的有效数据(步骤S531至S553)。当完成整个写入作业时(步骤S551中”是”的路径),处理单元110结束n*m个页面的废料收集处理。

图6是依据本发明实施例的废料收集处理示意图。假设4个储存子单元共享一个通道,一个储存子单元的最小写入单位为2个页面,每个页面可包含4K、8K或16K或其他长度的位元组数据。参考图4及图5。于步骤S511,处理单元110可于时间区间T61透过存取介面170从4个储存子单元(表示为CE0至CE3)读取8(4x2)个页面的有效数据,以及储存于动态随机存取存储器130。详细来说,处理单元110透过共享的数据线410_0发送数据读取命令以及实体地址给指定的储存子单元后,等待一段时间tR(例如,30、40或70微秒(μs)),用以让储存子单元准备实体地址上的数据。接着,处理单元110于一段时间Rx(例如,45或50微秒(μs))透过共享的数据线410_0接收指定页面的数据,x可为0至3中之任一者。为了缩短废料收集处理中的数据写入时间T63,于步骤S531至S535,处理单元110可于一段时间Wx(例如,90或100微秒(μs))透过存取介面170传送数据写入命令、实体地址及开始写入信号给指定的储存子单元后,不需等待此储存子单元执行完实体写入作业, 随即透过存取介面170传送数据写入命令、实体地址及开始写入信号给下一个的储存子单元,x可为0至3中的任一者。储存子单元于时间区间tProg(例如,1200、1250或1300微秒(μs))执行实体写入作业,并且可于结束时通知处理单元110实体写入作业是否成功。当实体写入作业成功时,处理单元110可更新动态随机存取存储器130中的H2F表,用以反应实体写入作业的结果。

为了让废料收集处理的数据读取更有效率,本发明实施例先将n*m个页面的有效数据的多个读取命令及实体地址进行排程,并在除了接收相应于最后一个读取命令及实体地址的有效数据外,于接收相应于一个已传送的数据读取命令及实体地址的有效数据前,传送下一个数据读取命令及实体地址给下一个指定的储存子单元。透过以上的设计,使得从储存子单元读取有效数据的时间可紧密地安排在一起,缩短如图6所示读取二个页面间的空闲时间(idle time)。图7是依据本发明实施例的执行于处理单元中的快闪存储器的废料收集方法流程图。首先,处理单元110排程读取n*m个页面的有效数据的命令,以及初始化变数l(l=0),其中变数l用以指示读取命令的编号(步骤S711)。于步骤S711,处理单元可依据动态随机存取存储器130中的H2F表取得n*m个页面的有效数据的实体地址,并据以排程数据读取命令。接着,处理单元110经由存取介面170传送第l个(亦即是第0个)数据读取命令及实体地址给相应的储存子单元(步骤S713)。接着,处理单元110反复执行一个回圈(步骤S731至S751),直到n*m个页面的有效数据的数据读取命令都传送给储存单元180为止。

于每一回合中,处理单元110经由存取介面170传送第l+1个数据读取命令及实体地址给相应的储存子单元后(步骤S731),从相应的储存子单元接收相应于第l个数据读取命令及实体地址的有效数据(步骤S733),储存读取的有效数据至动态随机存取存储器130(步骤S735),以及将变数l加一(步骤S737)。接着,处理单元110判断变数l是否大于或等于n*m(步骤S751)。若否,则处理单元110继续经由存取介面170传送第l+1个数据读取命令及实体地址给相应的储存子单元,用以进行下一回合的有效数据读取(步骤S731)。若是,处理单元从相应的储存子单元接收相应于第l个数据读取命令及实体地址的有效数据(步骤S771),以及储存读取的有效数据至动态随机存取存储器130(步骤S773)。

处理单元110读取完n*m个页面的有效数据并储存至动态随机存与存储器130后,经由存取介面170将n*m个页面的有效数据写入储存单元180(步骤S791)。

图8是依据本发明实施例的废料收集处理示意图。假设4个储存子单元共享一个通道,一个储存子单元的最小写入单位为2个页面,每个页面可包含4K、8K或16K或其他长度的位元组数据。参考图4及图7。时间区间T81为读取n*m个页面的有效数据的时间。于步骤S713,处理单元110透过共享的数据线410_0发送数据读取命令以及实体地址给指定的储存子单元。接着,反复执行如步骤S731至S751的回圈,使得处理单元110透过共享的数据线410_0发送下一个数据读取命令以及实体地址给指定的储存子单元后,接着接收相应于此数据读取命令及实体地址的有效数据。例如,处理单元110透过共享的数据线410_0传送数据读取命令及实体地址给储存子单元CE1,从储存子单元CE0接收有效数据,传送数据读取命令及实体地址给储存子单元CE3,从储存子单元CE1接收有效数据,依此类推。于执行完回圈后,处理单元110透过共享的数据线410_0从储存子单元CE0接收最后的有效数据。比较图6,使用图7所示的方法,可缩短读取二个页面间的空闲时间。

图9A及9B是依据本发明实施例的执行于处理单元中的快闪存储器的废料收集方法流程图。此方法兼备了图7所示的数据读取效率及图5所示的数据写入效率。步骤S911至S943的详细实施细节可参考图7中步骤S711至S773的说明。步骤S951至步骤S971的详细实施细节可参考图5中步骤S513至S557的说明。

虽然图1至4中包含了以上描述的元件,但不排除在不违反发明的精神下,使用更多其他的附加元件,已达成更佳的技术效果。此外,虽然图5、7、9A及9B的流程图采用指定的顺序来执行,但是在不违反发明精神的情况下,熟习此技艺人士可以在达到相同效果的前提下,修改这些步骤间的顺序,所以,本发明并不局限于仅使用如上所述的顺序。此外,熟悉本技术领域者亦可以将若干步骤整合为一个步骤,或者是除了这些步骤外,循序或平行地执行更多步骤,本发明亦不因此而局限。

虽然本发明使用以上实施例进行说明,但需要注意的是,这些描述并非用以限缩本发明。相反地,此发明涵盖了熟悉本技术领域者显而易见的修改与相似设置。所以,申请权利要求范围须以最宽广的方式解释来包含所有显而易见的修改与相似设置。

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