[发明专利]在嵌入式系统的闪存中读写数据的方法无效
申请号: | 200610145414.9 | 申请日: | 2006-11-15 |
公开(公告)号: | CN101187900A | 公开(公告)日: | 2008-05-28 |
发明(设计)人: | 林俊甫 | 申请(专利权)人: | 明基电通股份有限公司 |
主分类号: | G06F12/08 | 分类号: | G06F12/08;G06F9/445 |
代理公司: | 北京康信知识产权代理有限责任公司 | 代理人: | 章社杲 |
地址: | 台湾省*** | 国省代码: | 中国台湾;71 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 嵌入式 系统 闪存 读写 数据 方法 | ||
技术领域
本发明涉及一种在闪存中读写数据的方法,尤其指一种在嵌入式系统的闪存中的同一分区同时读写数据的方法。
背景技术
反或型闪存(NOR Flash)是英特尔(Intel)公司研发出来的架构,其可以在单位数据块(Block)上进行读写。近年来NOR Flash一直被广泛运用在嵌入式系统领域中,尤其是如移动电话之类的移动装置上。由于NOR Flash具有随机存取的特性,因此除可作为一般的数据储存外,也可供系统用来在其上执行程序代码。
另一方面,为了满足移动装置多媒体需求的应用,目前NORFlash都提供了同时读写(read while write/erase,RWW/E)的功能,通过针对内部数据进行数据分区(partition)及分组(bank)的管理,当系统对NOR Flash的一个数据分区(partition)进行读取(read)动作时,可同时对其他数据分区进行写入(write)或抹除(erase)的动作。请参考图1,图1为现有技术中NOR Flash内存10的内存数据管理示意图。内存10以逻辑层20的方式分为多个数据分区22,其中每个数据分区22的大小可为512KB、1MB或2MB。每一数据分区22中则包含多个数据块32。事实上,多个数据块32定义于实体层30中。如前所述,这种RWW/E的双操作(dual operation)模式,对于功能越来越强的移动装置效能有相当显著的改善。
然而RWW/E功能有一个硬件限制,亦即“在对一个数据分区进行读取动作时,不能同时间对同一数据分区进行写入或抹除的动作”。原因在于闪存在处理上层命令如读取、写入、抹除时,以总线周期(bus cycle)为单位来执行,而非以指令本身为单位来执行。举例而言,完成一个抹除指令需要二个bus cycle,而完成一个读取指令则仅需要一个bus cycle,若同时对同一数据分区的地址进行读取及抹除的动作时,则该读取指令的bus cycle极有可能会落在抹除指令二个bus cycle间,此举将造成存取该数据分区的地址混乱,而造成闪存发生装置错误。
发明内容
因此,本发明的主要目的在提供一种于嵌入式系统的闪存中读写数据的方法以解决上述问题。
本发明提供一种于嵌入式系统的闪存中读写数据的方法,该嵌入式系统包含闪存以及高速缓冲存储器,其中该闪存包含多个数据分区,每个数据分区中包含多个数据块,该方法包括侦测该闪存中欲变更内容的数据块、根据特定条件将该闪存中用来变更该数据块的变更程序代码复制至该高速缓冲存储器中、以及依据储存于该高速缓冲存储器中的该变更程序代码用以变更该数据块。
由于处理器中的高速缓冲存储器与闪存相比而言具备极快的数据存取速度,因此数据块#(N-1)的抹除程序代码被加载至高速缓冲存储器相对于闪存的数据存取而言仅需极短的时间,且当抹除程序代码被加载至高速缓冲存储器后,本发明即采取直接在高速缓冲存储器执行该抹除程序代码,以抹除数据分区中的数据块#N的数据,如此可避免在数据块#(N-1)上执行抹除程序代码所造成的总线周期冲突,且相对于读取数据块#(N-1)的抹除程序代码以及抹除数据块N的数据来说,可视为同时进行,如此则实现了在闪存中可同时进行读取与变更数据(RWW/E)的硬件特性,解决现有技术中对一个数据分区进行读取动作时,不能同时间对同一数据分区进行写入或抹除的动作的RWW/E硬件限制。
附图说明
图1为先前技术中NOR Flash内存的内存数据管理示意图。
图2为本发明于闪存中读写数据的方法的流程图。
图3为本发明一实施例的示意图。
图4为本发明产生无命中高速缓存的程序代码一实施例的示意图。
具体实施方式
一般嵌入式系统内建的处理器中多具有指令高速缓存(instruction cache),而指令高速缓存的大小因不同的产品而异,本发明即利用具有高速运算特性的指令高速缓存以达成针对同一数据分区同时进行读取以及抹除(或写入)的动作。
请参考图2,图2为本发明于闪存中读写数据的方法的流程图。流程图包含下列步骤:
步骤102:于嵌入式系统中激活数据变更程序;
步骤104:侦测该嵌入式系统的闪存中欲变更的数据块;
步骤106:侦测该闪存中用来变更该数据块的变更程序代码是否与欲变更的该数据块位于相同数据分区中;若否,则执行步骤114;
步骤108:于处理器的高速缓冲存储器中产生一无命中高速缓存(instruction cache miss);
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于明基电通股份有限公司,未经明基电通股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200610145414.9/2.html,转载请声明来源钻瓜专利网。