存取非易失性存储器的方法

文档序号:6380644阅读:142来源:国知局

专利名称::存取非易失性存储器的方法
技术领域
:本发明涉及一种存取非易失性存储器的方法,特别涉及一种依据预先建立的区域的对照表存取非易失性存储器的方法。
背景技术
:闪存具有低耗电量以及非易失性的优点,被广泛地应用于各种电子产品中。因为闪存特有的抹除方式,所以需通过一对照表(lookuptable)来存取闪存,通常闪存会被分成多个区域(zone)进行存取,每个区域需要各自的对照表,因此容量愈大的闪存就需要建立愈多份的对照表。相对于读写闪存的时间,建立一份对照表所需的时间是很长的。闪存的每个区域由1024个区块(block)所组成,一般仅使用1000个区块来储存数据,其余的24个区块则作为备用区块,因为闪存的特性只能由1写成0,不能由0写成1,所以需利用备用区块来储存新数据,再变更对照表使得读取旧数据的逻辑地址对应到储存新数据的备用区块。公知技术中,建立闪存的对照表的方式有二种,第一种方式是当一主机要存取闪存的不同区域时,才建立存取该区域的对照表;第二种方式是在每次存取闪存前,预先建立所有区域的对照表储存于一存储器中。请参考图1,图1为主机10连接闪存30的示意图。主机10包含一中央处理器12以及一随机存取存储器14。闪存30设置在一电子装置20中,电子装置20包含一控制器22以及一存储器24。主机10存取闪存30时,可通过USB接口与电子装置20连接,主机10的中央处理器12传送一逻辑地址给电子装置20的控制器22,控制器22算出该逻辑地址对应于闪存30的区域,并建立该区域的对照表储存于存储器24中,如此控制器22便可通过对照表存取闪存30,并将数据经USB接口传递至主机的随机存取存储器14。请参考图2,图2为公知存取闪存30的流程图。主机10存取电子装置20的闪存30的步骤如下步骤110电子装置20接收主机10存取闪存30的逻辑地址,并算出该逻辑地址对应于闪存30的区域;步骤120判断该逻辑地址所对应的区域是否与储存于存储器24中的对照表所对应的区域相同,若否,则进行步骤130,若是,则进行步骤140;步骤130建立该逻辑地址所对应的区域的对照表,并将该对照表储存在存储器24中;步骤140控制器22依据储存于存储器24的对照表存取闪存30,将数据传递给主机10。在存取闪存30的过程中,如果中央处理器12存取闪存30的逻辑地址所对应的区域改变时,控制器22就需要重新建立该区域的对照表,也就是建立对照表的第一种方式。请参考图3,图3为图2建立对照表的流程图。图2中步骤130建立对照表包含的步骤步骤210取得该逻辑地址所对应的区域;步骤220读取该区域中每一区块的相对地址并储存于存储器24中;步骤230判断该区域中每一区块的地址是否都已被读取,若是,则完成对照表的建立,若否,则重复步骤220。若是使用第二种方式建立对照表,则在每次存取闪存30前,就依据步骤210至步骤230建立闪存30所有区域的对照表,并储存在存储器24中。由上述可知,公知建立对照表的方式有二种,第一种方式是当主机10要存取闪存30的某区域时,才建立该区域的对照表,所以电子装置20的存储器24中只需储存一份对照表,较省存储器空间,也因此第一种方式较常被采用,但由于每次在变换存取区域时就需重新建立对照表,会影响主机10存取闪存30的速度。第二种方式是在每次存取闪存30前,预先建立闪存30中所有区域的对照表并储存于电子装置20的存储器24中,虽然可节省变换存取区域时建立对照表的时间,但却需要占用很多存储器24的存储器空间,增加制造电子装置20的成本。
发明内容因此本发明的主要目的在于提供一种存取非易失性存储器的方法,预先建立所有区域的对照表储存于该非易失性存储器,以解决上述问题。一种存取非易失性存储器的方法,该非易失性存储器设置在一电子装置中,该非易失性存储器包含多个区域(zone),每一区域包含多个备用区块(spareblock),该方法包含下列步骤(a)将每一区域的对照表(lookuptable)储存在至少一备用区块中;(b)该电子装置取得一主机存取该非易失性存储器的逻辑地址所对应该非易失性存储器的区域;(c)该电子装置由该至少一备用区块读出步骤(b)取得的区域的对照表,并将该对照表储存于该电子装置的存储器;以及(d)该主机依据储存在该电子装置的存储器的对照表存取该非易失性存储器。附图简述图1为主机连接闪存的示意图。图2为公知存取闪存的流程图。图3为图1建立对照表的流程图。图4为本发明存取闪存的流程图。图5为主机存取闪存的示意图。附图符号说明10主机12中央处理器14随机存取内存20电子装置22控制器24内存30闪存34第一区块36第二区块具体实施方式有鉴于主机10每次在变更存取闪存30的区域时,就必须费时地建立新的对照表,影响主机10存取闪存30的速度,但若将闪存30所有区域的对照表一次建立储存于电子装置20的存储器24中,又会占用存储器24太多的存储器空间,增加电子装置20的制造成本,因此,本发明存取闪存的方法提供在主机10第一次读取闪存30时,将闪存30所有区域的对照表一次建立储存于闪存30的备用区块中,由于闪存30的非易失性,即使断电后,对照表仍会保存在备用区块中,所以当主机10下次再存取闪存30或变更存取闪存30的区域时,电子装置20的控制器22只要直接由闪存30的备用区块中读取对照表至存储器24即可,节省建立对照表的时间。闪存30的每一个区域都有备用区块,而每一区域的对照表可分别储存于该区域的备用区块中,亦可以将所有区域的对照表都储存在其中一区域的备用区块中,当主机10存取闪存30导致控制器22必须同步更新储存在备用区块的对照表,如此,对于闪存30而言,控制器22只要建立一次对照表,之后在主机10变换存取位置时,即使因为逻辑位置所对应使用的对照表不同亦可直接由闪存30的备用区块中读取,增加主机10存取闪存30的速度。请参考图4,图4为本发明存取闪存30的流程图。当主机10存取闪存30时,利用闪存30的备用区块来储存主机10存取闪存30的对照表,因为由闪存30读取对照表的速度远比建立对照表的速度快,可提升主机10存取闪存30的速度。此外,由于闪存30的非易失性,主机10只需在第一次存取闪存30时建立所有的对照表。本发明存取闪存30的方法如下列步骤步骤310判断闪存30中是否已储存所有区域的对照表,若否,通常表示主机10第一次存取闪存30,则进行步骤320,若是,表示主机10曾存取闪存30,并已建立闪存30所有区域的对照表储存于备用区块中,则进行步骤330;步骤320建立闪存30所有区域的对照表并储存于备用区块中,电子装置20的控制器22分别对闪存30的每一区域读取该区域的每一区块的地址,并且在存储器24中建立该区域的对照表,再写入该区域的备用区块或是其中一区域的备用区块,直到闪存30所有区域的对照表都已建立完毕并储存在备用区块中;步骤330控制器22依据主机10传来的逻辑地址算出该逻辑地址对应于闪存30的区域;步骤340判断步骤330中该逻辑地址对应的区域与存储器24中储存的对照表对应的区域是否相同,若否,表示控制器22必须更新存储器24中对照表,如此主机10才可存取闪存30,进行步骤350,若是,则进行步骤360;步骤350由闪存30读出该逻辑地址对应的区域的对照表,更新存储器24中的对照表;步骤360控制器22依据存储器24中的对照表存取闪存30。请参考图5,图5为主机10存取闪存30的示意图。以64MB的闪存30为例,可被分为4个区域(zone),每个区域的大小为16MB,一个区域中有1024个区块(block),其中有1000个区块作为数据区块,剩余的24个区块作为备用区块,每个区块的大小为16KB,区域的对照表储存于备用区块中,通常一区域的对照表的大小约为2KB,各区域的对照表可分别储存在该区域的备用区块,或储存在其中某一区域的备用区块中。假设一旧数据储存在闪存30的区域1的一第一区块34(数据区块),因此主机10依据该旧数据的逻辑地址读取区域1的对照表,再依据区域1的对照表将旧数据由第一区块34读出进行改修,修改后的新数据本来应将旧数据覆写,但由于闪存30只能由1写成0,不能由0写成1,,所以必须利用一第二区块36(备用区块)来储存新数据,再将储存于第一区块34的旧数据抹除作为新的备用区块,并且更新区域1的对照表,将该旧数据的逻辑地址指向第二区块36。闪存30经过主机10存取后,对照表的地址数据也会随着变更,因此每一区域都要有各自的对照表,通常建立一区域的对照表需要数百个毫秒(ms)的时间,然而若是由备用区块读取预先建的对照表,则只要数十个微秒(us)的时间。由上述可知,存取闪存的不同区域时,都需要该区域的对照表,若要重新建立相当地费时,因此在第一次存取闪存时,就预先建立所有区域的对照表,储存于闪存的备用区块中,如此当变换存取区域时,就只要由备用区块中将该区域的对照表读出,而且由于闪存的非易失性,即使断电后数据仍保存,因此对于每一闪存而言,都只需建立一次对照表,虽然对照表会占用闪存的一些空间,但对于闪存的存取速度却有明显的提升。相较于公知技术,本发明存取闪存的方法在变换存取区域时,不需重新建立对照表,只需由闪存的备用区块中读出对照表即可,因此所需时间由公知方法的数百个毫秒提升至数十个微秒。再者,公知的方法每次断电后再启动,也需要重新建立对照表,而本发明的方法只要在第一次启动时建立对照表,即使是断电后再启动,也只需由备用区块中读出对照表。建立闪存的对照表需要很长的时间,一再的重复建立会降低存取速度,而将所有的对照表储存于随机存取存储器中又会影响系统效能。因此,本发明的方法利用闪存来储存对照表,除了节省建立对照表的时间,同时也节省随机存取存储器的空间,提升存取效率。以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明专利的涵盖范围。权利要求1.一种存取非易失性存储器的方法,该非易失性存储器设置在一电子装置中,该非易失性存储器包含多个区域,每一区域包含多个备用区块,该方法包含下列步骤(a)将每一区域的对照表储存在至少一备用区块中;(b)该电子装置取得一主机存取该非易失性存储器的逻辑地址所对应该非易失性存储器的区域;(c)该电子装置由该至少一备用区块读出步骤(b)取得的区域的对照表,并将该对照表储存在该电子装置的存储器;以及(d)该主机依据储存在该电子装置的存储器的对照表存取该非易失性存储器。2.如权利要求1所述的方法,其另包含判断该非易失性存储器中是否已储存每一区域的对照表。3.如权利要求1所述的方法,其另包含判断步骤(b)取得的区域是否与储存在该电子装置的存储器的对照表的区域相同。4.如权利要求1所述的方法,其中,步骤(a)是将每一区域的对照表储存在该区域的至少一备用区块中。5.如权利要求1所述的方法,其中,步骤(a)是将每一区域的对照表储存在该多个区域中的一区域的至少一备用区块中。6.如权利要求1所述的方法,其中,该非易失性存储器是闪存。7.一种装置,用来实施如权利要求1所述的方法。全文摘要一种存取非易失性存储器的方法,该非易失性存储器设置在一电子装置中,该非易失性存储器包含多个区域,每一区域包含多个备用区块,该方法包含下列步骤(a)将每一区域的对照表储存在至少一备用区块中;(b)该电子装置取得一主机存取该非易失性存储器的逻辑地址所对应该非易失性存储器的区域;(c)该电子装置由该至少一备用区块读出步骤(b)取得的区域的对照表,并将该对照表储存在该电子装置的存储器;以及(d)该主机依据储存在该电子装置的存储器的对照表存取该非易失性存储器。文档编号G06F12/00GK1648875SQ200410003238公开日2005年8月3日申请日期2004年1月30日优先权日2004年1月30日发明者陈平申请人:扬智科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1