垃圾回收方法以及使用该方法的装置与流程

文档序号:15614900发布日期:2018-10-09 21:07阅读:124来源:国知局
本发明关连于一种快闪存储器装置,特别是一种垃圾回收方法以及使用该方法的装置。
背景技术
::快闪存储器装置通常分为nor快闪装置与nand快闪装置。nor快闪装置为随机存取装置,主装置(host)可于地址脚位上提供存取nor快闪装置的任意地址,并即时地由nor快闪装置的数据脚位上获得储存于该地址上的数据。相反地,nand快闪装置并非随机存取,而是序列存取。nand快闪装置无法像nor快闪装置一样,可以存取任何随机地址,主装置反而需要写入序列的位元组(bytes)值到nand快闪装置中,用以定义请求命令(command)的类型(如,读取、写入、抹除等),以及此命令上的地址。地址可指向一个页面(在快闪存储器中的一个写入作业的最小数据块)或一个区块(在快闪存储器中的一个抹除作业的最小数据块)。实际上,nand快闪装置通常从存储器单元(memorycells)上读取或写入完整的数页数据。当一整页的数据从阵列读取到装置中的缓存器(buffer)后,藉由使用提取信号(strobesignal)顺序地敲出(clockout)内容,让主单元可逐位元组或字元组(words)存取数据。如果区块中的部分页面的数据已经无效(又称为过期页面),读取这些区块中具有效数据的页面并重新写入其他之前被抹除的空区块。接着,这些被释放的页面加上过期数据的页面,可收集起来以写入新的数据。如上所述的程序称为垃圾回收(garbagecollection)。垃圾回收程序牵涉到从快闪存储器读取数据以及重新写入数据至快闪存储器。这代表快闪控制器首先需要读出整个区块,接着将区块中拥有有效数据的部分页面写入。然而,这可能会影响原本主装置的存取作业。于最差的情况下,可能造成主装置发出的存取命令逾时。因此,本发明提出一种垃圾回收方法以及使用该方法的装置,用以降低对主装置存取作业的影响。技术实现要素:本发明的实施例提出一种垃圾回收方法,由处理单元执行,包含下列步骤:执行垃圾回收程序的指令以驱动第一存取介面从储存单元读取数据,收集读取数据中的有效数据,及驱动第一存取介面将有效数据写入储存单元中的空区块。于垃圾回收程序中,每当计时器计数至一段时间时,驱动第二存取介面将主装置请求数据中的至少一部分敲出给主装置,以及重设计时器,使得主装置不会因为过了最大容许时间还没有收到回复的数据而发生读取错误。本发明的实施例提出一种垃圾回收装置,包含第一存取介面、第二存取介面及处理单元。第一存取介面耦接于储存单元,第二存取介面耦接于主装置,以及处理单元耦接于第一存取介面及第二存取介面。处理单元执行垃圾回收程序的指令以驱动第一存取介面从储存单元读取数据,收集读取数据中的有效数据,及驱动第一存取介面将有效数据写入储存单元中的空区块。于垃圾回收程序中,每当计时器计数至一段时间时,驱动第二存取介面将主装置请求数据中的至少一部分敲出给主装置,以及重设计时器,使得主装置不会因为过了最大容许时间还没有收到回复的数据而发生读取错误。附图说明图1是依据本发明实施例的快闪存储器的系统架构示意图。图2是依据本发明实施例的存取介面与储存单元的方块图。图3是依据本发明实施例的一个存取子介面与多个储存子单元的连接示意图。图4是依据本发明实施例的垃圾回收方法的流程图。图5是依据本发明实施例的垃圾回收示意图。图6是依据本发明实施例的整合主装置读取及垃圾回收程序的讯息交换图。符号说明10系统;110处理单元;120数据缓存器;130动态随机存取存储器;150存取介面;160主装置;170存取介面;170_0~170_j存取子介面;180储存单元;180_0_0~180_j_i储存子单元;320_0_0~320_0_i芯片致能控制信号;s410~s473方法步骤;510、530、550、570区块;511、533、555、557区段;p1、p2、p3、p4页面;cmdread读取命令;reqr数据读取请求;datar主装置请求数据;datap主装置请求数据;datagc垃圾回收数据;reqgc_r垃圾回收程序中的数据读取请求;reqgc_w垃圾回收程序中的数据写入请求;tc时间区间。具体实施方式以下说明是为完成发明的较佳实现方式,其目的在于描述本发明的基本精神,但并不用以限定本发明。实际的
发明内容必须参考之后的权利要求范围。必须了解的是,使用于本说明书中的“包含”、“包括”等词,用以表示存在特定的技术特征、数值、方法步骤、作业处理、元件以及/或组件,但并不排除可加上更多的技术特征、数值、方法步骤、作业处理、元件、组件,或以上的任意组合。于权利要求中使用如“第一”、“第二”、“第三”等词用来修饰权利要求中的元件,并非用来表示之间具有优先权顺序,先行关系,或者是一个元件先于另一个元件,或者是执行方法步骤时的时间先后顺序,仅用来区别具有相同名字的元件。图1是依据本发明实施例的快闪存储器的系统架构示意图。快闪存储器的系统架构10中包含处理单元110,用以写入数据到储存单元180中的指定地址,以及从储存单元180中的指定地址读取数据。详细来说,处理单元110透过存取介面170写入数据到储存单元180中的指定地址,以及从储存单元180中的指定地址读取数据。系统架构10使用数个电子信号来协调处理单元110与储存单元180间的数据与命令传递,包含数据线(dataline)、时脉信号(clocksignal)与控制信号(controlsignal)。数据线可用以传递命令、地址、读出及写入的数据;控制信号线可用以传递芯片致能(chipenable,ce)、地址提取致能(addresslatchenable,ale)、命令提取致能(commandlatchenable,cle)、写入致能(writeenable,we)等控制信号。存取介面170可采用双倍数据率(doubledatarate,ddr)通讯协定与储存单元180沟通,例如,开放nand快闪(opennandflashinterface,onfi)、双倍数据率开关(ddrtoggle)或其他介面。处理单元110另可使用存取介面150透过指定通讯协定与主装置160进行沟通,例如,通用串行总线(universalserialbus,usb)、先进技术附着(advancedtechnologyattachment,ata)、序列先进技术附着(serialadvancedtechnologyattachment,sata)、快速周边元件互联(peripheralcomponentinterconnectexpress,pci-e)或其他介面。储存单元180可包含多个储存子单元,每一个储存子单元实施于一个晶粒(die)上,各自使用关联的存取子介面与处理单元110进行沟通。图2是依据本发明实施例的存取介面与储存单元的方块图。快闪存储器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)控制信号。换句话说,当欲对指定的储存子单元进行数据读取时,需要驱动关联的存取子介面致能此储存子单元的芯片致能控制信号。图3是依据本发明实施例的一个存取子介面与多个储存子单元的连接示意图。处理单元110可透过存取子介面170_0使用独立的芯片致能控制信号320_0_0至320_0_i来从连接的储存子单元180_0_0至180_0_i中选择出其中一者,接着,透过共享的数据线310_0从选择出的储存子单元的指定位置读取数据。经过多次的存取后,一个页面可能包含有效及无效的数据。为解决如上所述的缺陷,本发明实施例提出一种垃圾回收方法,以交错的方式读取及回复主装置160请求的数据以及垃圾回收程序中的数据读取及写入作业。例如,执行垃圾回收程序的指令以驱动存取介面170从储存单元180读取数据,收集读取数据中的有效数据,及驱动存取介面170将有效数据写入储存单元180中的空区块(spareblock)。于垃圾回收程序中,每当计时器计数至一段时间时,驱动存取介面150将主装置160请求数据中的至少一部分敲出给主装置160,以及重设计时器,使得主装置160不会因为过了最大容许时间还没有收到回复的数据而发生读取错误。图4是依据本发明实施例的垃圾回收方法的流程图。此方法由处理单元110于载入并执行特定微码或软件指令时实施。每次透过存取介面150从主装置160接收读取命令后(步骤s410),判断是否需要执行垃圾回收程序(步骤s430)。于步骤s410,读取命令包含逻辑位置或逻辑位置区间的资讯,用以请求读取逻辑位置或逻辑位置区间的数据。逻辑位置或逻辑位置区间可以逻辑区块地址(lba,logicalblockaddress)表示。于步骤s430,可判断储存单元180的空区块数目是否小于阀值。若是则需要执行垃圾回收程序;否则不需要执行垃圾回收程序。当判定不需要执行垃圾回收程序时(步骤s430中“否”的路径),驱动存取介面170将读取命令请求的数据从储存单元180读出并储存至数据缓存器120(步骤s471),以及驱动存取介面150将数据缓存器120的数据敲出给主装置160(步骤s473)。为最佳化数据写入的效率,一段具有连续逻辑区块地址的数据会分散地摆放在储存单元180中的不同实体区域。因此,动态随机存取存储器130储存一个实体储存对照表(storagemappingtable,又称为h2fhost-to-flash表),用以指出每个逻辑区块地址的数据实际储存于储存单元280中的哪个位置。于步骤s471,处理单元110从实体储存对照表读取逻辑位置或逻辑位置区间的相应实体位置或实体位置区间,接着,驱动存取介面170从储存单元180读取实体位置或实体位置区间的数据。例如,储存单元180可包含2个通道,每个通道包含4个储存子单元。储存单元180可驱动2个存取子介面从8个储存子单元一次读取128k位元组的数据,并储存数据至数据缓存器120。于步骤s473,处理单元110可设定存取介面150中的寄存器,用以将逐页敲出给主装置160。例如,一个页面包含16k位元组的数据,处理单元110可以8个批次,每次敲出一个页面的数据给主装置160。于一些实施例中,数据缓存器120可实施于动态随机存取存储器130之中。当判定需要执行垃圾回收程序时(步骤s430中“是”的路径),设定计时器计数一段时间,此段时间短于主装置160等待数据的最大容许时间,例如50毫秒(50milliseconds)(步骤s451),驱动存取介面170将读取命令请求的数据从储存单元180读出并储存至数据缓存器120(步骤s453),执行垃圾回收程序的指令以读取或写入一个页面的数据(步骤s455),并且判断是否完成垃圾回收程序(步骤s457)。于一些实施例中,最大容许时间可于出厂时设定,并储存于非挥发性储存装置,并且于步骤s451从非挥发性储存装置读取。于一些实施例中,最大容许时间可乘载于主装置160发送的读取命令。图5是依据本发明实施例的垃圾回收示意图。假设一个页面可储存四个区段的数据:经过多次存取后,区块510中的页面p1的第0个区段511为有效数据,其余为无效数据。区块530中的页面p2的第1个区段533为有效数据,其余为无效数据。区块550中的页面p3的第2个及第3个区段555及557为有效数据,其余为无效数据。为了将页面p1至p3中的有效数据回收成一个页面以储存至区块570中的新页面p4,可执行垃圾回收程序。详细来说,数据缓存器120可配置空间以储存一个页面的数据。处理单元110可透过存取子介面170读取区块510中的页面p1的数据,保留页面p1的第0个区段511的数据,并储存至数据缓存器120中配置空间的第0个区段(步骤s455)。接着,处理单元110可透过存取子介面170读取区块530中的页面p2的数据,保留页面p2的第1个区段533的数据,并储存至数据缓存器120中配置空间的第1个区段(步骤s455)。接着,处理单元110可透过存取子介面170读取区块550中的页面p3的数据,保留页面p3的第2个及第3个区段555及557的数据,并储存至数据缓存器120中配置空间的第2个及第3个区段(步骤s455)。最后,处理单元110可透过存取子介面170将数据缓存器120中配置空间的数据写入区块570中的页面p4(步骤s455)。于一些实施例中,当计数器计数至上述时间时,会发出中断给处理单元110,使得处理单元110中断目前执行的任务,例如,垃圾回收程序的指令执行,并且执行中断服务程序(isr,interruptserviceroutine)。当中断服务程序执行时,设定存取介面150中的寄存器,用以将一页的数据敲出给主装置160,接着,重新设定计时器以计数上述时间。当中断服务程序执行完毕,处理单元110继续中断的任务,例如,垃圾回收程序的指令执行。于一些实施例中,于步骤s455,处理单元可于读取或写入一个页面的数据后,读取计数器的值,并且判断计数器是否已经计数至上述时间。当计数至上述时间时,处理单元110可设定存取介面150中的寄存器,用以将一页的数据敲出给主装置160,接着,重新设定计时器以计数上述时间。以下更举出实例来说明如上所述的垃圾回收方法。图6是依据本发明实施例的整合主装置读取及垃圾回收程序的讯息交换图。处理单元110透过存取介面150从主装置160接收读取命令cmdread以读取128k位元组的数据,并储存数据至数据缓存器120(步骤s410)。接着,当需要执行垃圾回收程序时(步骤s430中”是”的路径),设定计时器以计数一段时间tc(步骤s451),及透过存取介面170发送数据读取请求reqr给储存单元180,并且从储存单元180接收128k位元组的数据datar并储存至数据缓存器120(步骤s453)。接着,周期性地执行垃圾回收程序的指令,例如,数据读取请求reqgc_r以读取一个页面的数据,或数据写入请求reqgc_w以写入一个页面的数据(步骤s455)。每当计时器计数一段时间tc,处理单元110设定存取介面150中的寄存器,用以将数据缓存器120中一个页面(16k位元组)的数据datap敲出给主装置160。虽然图1至3中包含了以上描述的元件,但不排除在不违反发明的精神下,使用更多其他的附加元件,已达成更佳的技术效果。此外,虽然图4的流程图采用指定的顺序来执行,但是在不违反发明精神的情况下,熟悉本
技术领域
:者可以在达到相同效果的前提下,修改这些步骤间的顺序,所以,本发明并不局限于仅使用如上所述的顺序。此外,熟悉本
技术领域
:者亦可以将若干步骤整合为一个步骤,或者是除了这些步骤外,循序或平行地执行更多步骤,本发明亦不因此而局限。虽然本发明使用以上实施例进行说明,但需要注意的是,这些描述并非用以限缩本发明。相反地,此发明涵盖了熟悉本
技术领域
:者显而易见的修改与相似设置。所以,申请权利要求范围须以最宽广的方式解释来包含所有显而易见的修改与相似设置。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1