一般及垃圾回收的数据存取方法以及使用该方法的装置与流程

文档序号:15615307发布日期:2018-10-09 21:13阅读:279来源:国知局

本发明关连于一种快闪存储器装置,特别是一种一般及垃圾回收的数据存取方法以及使用该方法的装置。



背景技术:

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

如果区块中的部分页面的数据已经无效(又称为过期页面),读取这些区块中具有效数据的页面并重新写入其他之前被抹除的空区块。接着,这些被释放的页面加上过期数据的页面,可收集起来以写入新的数据。如上所述的程序称为垃圾回收(garbagecollection)。垃圾回收程序牵涉到从快闪存储器读取数据以及重新写入数据至快闪存储器。这代表快闪控制器首先需要读出整个区块,接着将区块中拥有有效数据的部分页面写入。然而,数据缓存器需要保留空间给一般及垃圾回收存取。因此,本发明提出一种一般及垃圾回收的数据存取方法以及使用该方法的装置,用以有效利用数据缓存器的空间。



技术实现要素:

本发明的实施例提出一种一般及垃圾回收的数据存取方法,由处理单元执行,包含下列步骤:于执行一般数据存取模式的数据存取作业时,将数据缓存器配置为第一类型;以及于执行垃圾回收数据存取模式的数据存取作业时,将数据缓存器配置为第二类型。

本发明的实施例提出一种垃圾回收装置,包含数据缓存器及处理单元。处理单元耦接于数据缓存器,于执行一般数据存取模式的数据存取作业时,将数据缓存器配置为第一类型;以及于执行垃圾回收数据存取模式的数据存取作业时,将数据缓存器配置为第二类型。

附图说明

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

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

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

图4a是依据本发明实施例的于一般数据存取模式下的缓存器配置示意图。

图4b是依据本发明实施例的于垃圾回收数据存取模式下的缓存器配置示意图。

图5是依据本发明实施例的垃圾回收示意图。

图6是依据本发明实施例的一般及垃圾回收的数据存取方法的流程图。

符号说明

10系统;

110处理单元;

120数据缓存器;

120a读取缓存器;

120b写入缓存器;

120c垃圾回收缓存器;

130动态随机存取存储器;

150存取介面;

160主装置;

170存取介面;

170_0~170_j存取子介面;

180储存单元;

180_0_0~180_j_i储存子单元;

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

rstart最低地址;

wstart最高地址;

gcstart垃圾回收缓存器的最低地址;

gcend垃圾回收缓存器的最高地址;

510、530、550、570区块;

511、533、555、557区段;

p1、p2、p3、p4页面;

s610~s690方法步骤。

具体实施方式

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

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

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

图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从选择出的储存子单元的指定位置读取数据。

本发明实施例提出一种一般及垃圾回收的数据存取方法,于数据缓存器120中动态地配置空间给一般及垃圾回收的数据读取及写入。于一些实施例中,数据缓存器120可实施于动态随机存取存储器130之中。本发明实施例以二种模式来配置数据缓存器120中的空间:一般数据存取;及垃圾回收数据存取。图4a是依据本发明实施例的于一般数据存取模式下的缓存器配置示意图。于一般数据存取模式,数据缓存器120的空间被配置来储存一般数据存取所需的数据,包含相应于主装置160传送的数据读取及写入命令所需的数据。数据缓存器120的最低地址为rstart,数据缓存器120的最高地址为wstart,并且数据缓存器120为双向环形缓存器(bi-directionalringbuffer),包含可变长度的读取缓存器及写入缓存器。初始时,读取缓存器的地址范围从最低地址rstart开始,写入缓存器的地址范围从最高地址wstart开始。读取缓存器及写入缓存器的边界地址可依据数据读取及写入命令所需储存的数据长度动态决定。例如,当处理单元110检测到读取命令所需储存的数据长度大于写入命令所需储存的数据长度时,边界地址设为较靠近最高地址wstart的地址;反之,边界地址设为较靠近最低地址rstart的地址。当处理单元110透过存取介面150从主装置160接收读取命令后,将读取命令中的逻辑位置转换成实体位置,驱动存取介面170的实体位置从储存单元180读取数据,并且储存数据至读取缓存器。读取的数据(亦即是待敲出给主装置160的数据)从读取缓存器的低地址向高地址储存。当处理单元110透过存取介面150从主装置160接收写入命令后,将写入命令中的待写入数据储存于储存数据至写入缓存器。待写入的数据从写入缓存器的高地址向低地址储存。熟悉本技术领域者可使用已知技术来存取可变长度的读取缓存器及写入缓存器中的数据,不再赘述以求简洁。图4b是依据本发明实施例的于垃圾回收数据存取模式下的缓存器配置示意图。数据缓存器120分为三个部分:读取缓存器120a(地址范围为rstart至gcstart-1);垃圾回收缓存器120c(地址范围为gcstart至gcend);及写入缓存器120b(地址范围为wstart至gcend+1)。于垃圾回收数据存取模式,数据缓存器120的空间被配置来储存一般数据存取所需的数据,包含相应于主装置160传送的数据读取及写入命令所需的数据,以及垃圾回收程序所需的数据。于垃圾回收数据存取模式,相应于主装置160的第一个读取命令的读取数据从数据缓存器120的地址rstart向高地址储存,相应于主装置160的第一个写入命令的待写入的数据从数据缓存器120的地址wstart向低地址储存。此外,于垃圾回收数据存取模式,执行垃圾回收程序的指令以驱动存取介面170从储存单元180读取多页的数据,收集读取数据中的有效数据,及驱动存取介面170将收集的数据写入储存单元180中的空区块。于垃圾回收数据存取模式,数据缓存器120配置一段从地址gcstart至地址gcend的空间,用以储存收集的有效数据。

图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个区段。接着,处理单元110可透过存取子介面170读取区块530中的页面p2的数据,保留页面p2的第1个区段533的数据,并储存至数据缓存器120中配置空间的第1个区段。接着,处理单元110可透过存取子介面170读取区块550中的页面p3的数据,保留页面p3的第2个及第3个区段555及557的数据,并储存至数据缓存器120中配置空间的第2个及第3个区段。最后,处理单元110可透过存取子介面170将数据缓存器120中配置空间的数据写入区块570中的页面p4。

动态随机存取存储器130中储存一个旗标,用以指出快闪存储器目前处于一般数据存取及垃圾回收数据存取模式中之何者。例如,当旗标为“0”时,代表快闪存储器目前处于一般数据存取模式。当旗标为“1”时,代表快闪存储器目前处于垃圾回收数据存取模式。图6是依据本发明实施例的模式选择方法的流程图。此方法由处理单元110于载入并执行特定微码或软体指令时实施。周期性地执行一般数据存取模式的数据存取作业后(步骤s610),取得储存单元180的空区块数目(步骤s630)及判断储存单元180的空区块数目是否小于阀值(步骤s650)。于步骤s610,处理单元110可设定动态随机存取存储器130中的旗标,用以指出快闪存储器目前处于一般数据存取模式。数据缓存器120可配置为如图4a所示的类型。此外,处理单元110可执行一段预设时间、预设数据量或预设交易笔数的一般数据存取模式的数据存取作业。当储存单元180的空区块数目是否小于阀值时(步骤s650中“是”的路径),执行垃圾回收数据存取模式的数据存取作业(步骤s670)。此外,周期性地执行垃圾回收数据存取模式的数据存取作业后(步骤s670),判断垃圾回收数据存取模式是否结束(步骤s690)。当垃圾回收数据存取模式结束时(步骤s690中“是”的路径),执行一般数据存取模式的数据存取作业(步骤s610)。于步骤s670,处理单元110可设定动态随机存取存储器130中的旗标,用以指出快闪存储器目前处于垃圾回收数据存取模式。数据缓存器120可配置为如第4b图所示的类型。此外,处理单元110可执行一段预设时间、预设数据量或预设交易笔数的垃圾回收数据存取模式的数据存取作业。

于一般数据存取模式中(步骤s610),处理单元110使用读指针(readpointer)及写指针(writepointer)来存取相应于主装置160发出的读取命令的数据,又可称为相应于读取命令的读指针及写指针。此外,处理单元110使用读指针及写指针来存取相应于主装置160发出的写入命令的数据,又可称为相应于写入命令的读指针及写指针。

于垃圾回收数据存取模式中(步骤s670),读取缓存器120a、垃圾回收缓存器120c及写入缓存器120b设置为环形缓存器(ringbuffers)。处理单元110使用读指针及写指针来进行读取缓存器120a中的数据存取。读指针指向读取缓存器120a中尚未被敲出给主装置160的第一页数据的开始地址。写指针指向读取缓存器120a中可用空间的开始地址。因应主装置160发送的读取命令,处理单元110从储存单元180读取数页的数据并储存至读取缓存器120a,以及逐页从读取缓存器120a读取数据并敲出给主装置160。详细来说,处理单元110从储存单元180读取主装置160请求的一页数据并储存至读取缓存器120a中写指针指向的地址后,移动写指针至储存数据的下一地址并判断写指针是否指向垃圾回收缓存器120c的地址范围。如果是,则移动写指针以指向读取缓存器120a的起始地址rstart。处理器110可从读指针指向的读取缓存器120a的地址读取至少一页的数据,将读取的数据敲出给主装置160,移动读指针以指向读取缓存器120a中读取数据的下一个地址,接着,判断读指针是否指向垃圾回收缓存器120c的地址范围。如果是,则移动读指针以指向读取缓存器120a的起始地址rstart。

于垃圾回收数据存取模式中(步骤s670),处理单元110使用读指针及写指针来进行读取缓存器120b中的数据存取。读指针指向写入缓存器120b中尚未被写入储存单元180的第一页数据的开始地址。写指针指向写入缓存器120b中可用空间的开始地址。因应主装置160发送的写入命令,处理单元110将主装置160传送的待写入数据储存至写入缓存器120b,以及从写入缓存器120b读取数据并逐页写入储存单元180。详细来说,处理单元110从主装置160取得一页数据并储存至写入缓存器120b中写指针指向的地址后,移动写指针至写入数据的前一地址并判断写指针是否指向垃圾回收缓存器120c的地址范围。如果是,则移动写指针以指向写入缓存器120b的起始地址wstart。处理器110可从读指针指向的写入缓存器120b的地址读取至少一页的数据,将读取的数据写入储存单元180,移动读指针以指向写入缓存器120b中读取数据的前一个地址,接着,判断读指针是否指向垃圾回收缓存器120c的地址范围。如果是,则移动读指针以指向写入缓存器120b的起始地址wstart。

于垃圾回收数据存取模式中(步骤s670),处理单元110使用读指针及写指针来进行垃圾回收缓存器120c中的数据存取。读指针指向垃圾回收缓存器120c中尚未被写入储存单元180的第一页数据的开始地址。写指针指向垃圾回收缓存器120c中可用空间的开始地址。处理单元110将待写入的有效数据储存至垃圾回收缓存器120c,以及从垃圾回收缓存器120c读取数据并逐页写入储存单元180。详细来说,处理单元110从储存单元180收集一页的有效数据并储存至垃圾回收缓存器120c中写指针指向的地址后,移动写指针至储存数据的下一地址并判断写指针是否指向写入缓存器120b的地址范围。如果是,则移动写指针以指向垃圾回收缓存器120c的起始地址gcstart。处理器110可从读指针指向的垃圾回收缓存器120c的地址读取至少一页的有效数据,将读取的数据写入储存单元180,移动读指针以指向垃圾回收缓存器120c中读取数据的下一个地址,接着,判断读指针是否指向写入缓存器120b的地址范围。如果是,则移动读指针以指向垃圾回收缓存器120c的起始地址gcstart。

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

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

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