在嵌入式系统的闪存中读写数据的方法

文档序号:6562826阅读:304来源:国知局
专利名称:在嵌入式系统的闪存中读写数据的方法
技术领域
本发明涉及一种在闪存中读写数据的方法,尤其指一种在嵌入 式系统的闪存中的同 一 分区同时读写数据的方法。
背景技术
反或型闪存(NOR Flash)是英特尔(Intel)公司研发出来的 架构,其可以在单位数据块(Block )上进行读写。近年来NOR Flash 一直被广泛运用在嵌入式系统领域中,尤其是如移动电话之类的移 动装置上。由于NORFlash具有随机存取的特性,因此除可作为一 般的数据储存外,也可供系统用来在其上执行程序代码。
另一方面,为了满足移动装置多媒体需求的应用,目前NOR Flash都提供了同时读写(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)为单位来4丸行,而非以指令本身为单位来冲丸行。 举例而言,完成一个4未除指令需要二个bus cycle,而完成一个读取 指令则4又需要一个bus cycle,若同时对同 一凄t据分区的;也址进4亍读 取及抹除的动作时,则该读取指令的bus cycle极有可能会落在抹除 指令二个bus cycle间,此举将造成存取该数据分区的地址混乱,而 造成闪存发生装置错误。

发明内容
因此,本发明的主要目的在提供一种于嵌入式系统的闪存中读
写彩::悟的方法以解决上述问题。
本发明提供一种于嵌入式系统的闪存中读写数据的方法,该嵌 入式系统包含闪存以及高速緩沖存储器,其中该闪存包含多个数据 分区,每个数据分区中包含多个数据块,该方法包括侦测该闪存中 欲变更内容的数据块、根据特定条件将该闪存中用来变更该数据块 的变更程序代码复制至该高速緩冲存储器中、以及依据储存于该高 速緩冲存4诸器中的该变更程序代码用以变更该凄t据块。
由于处理器中的高速緩冲存储器与闪存相比而言具备极快的
数据存取速度,因此数据块# (N-l)的抹除程序代码被加载至高速
緩沖存储器相对于闪存的数据存取而言仅需极短的时间,且当抹除 程序代码;故加载至高速緩沖存储器后,本发明即采取直接在高速緩
沖存储器执行该抹除程序代码,以抹除数据分区中的数据块弁N的 数据,如此可避免在数据块# (N-l)上执行抹除程序代码所造成的 总线周期冲突,且相对于读取凄"居块# (N-l )的纟末除程序代码以及 」抹除数据块N的数据来说,可^L为同时进行,如此则实现了在闪存中可同时进行读取与变更凝:据(RWW/E)的石更件特性,解决现有技 术中对一个凄t据分区进4亍读取动作时,不能同时间对同 一凄t据分区 进行写入或^末除的动作的RWW/E硬件限制。


图1为先前4支术中NOR Flash内存的内存数据管理示意图。 图2为本发明于闪存中读写数据的方法的流程图。 图3为本发明一实施例的示意图。
图4为本发明产生无命中高速緩存的程序代码一实施例的示意图。
具体实施例方式
一般嵌入式系统内建的处理器中多具有指令高速緩存 (instruction cache ),而指令高速緩存的大小因不同的产品而异,本 发明即利用具有高速运算特性的指令高速緩存以达成针对同 一数 据分区同时进行读取以及抹除(或写入)的动作。
请参考图2,图2为本发明于闪存中读写数据的方法的流程图。 流程图包含下列步骤
步骤102:于嵌入式系统中激活^t据变更程序;
步骤104:侦测该嵌入式系统的闪存中欲变更的数据块;
步骤106:侦测该闪存中用来变更该凄t据块的变更程序代码是 否与欲变更的该数据块位于相同数据分区中;若否,则执行步骤 114;步骤108:于处理器的高速緩冲存储器中产生一无命中高速緩 存(instruction cache miss );
步骤110:当嵌入式系统的处理器侦测到该无命中高速緩存时, 将该变更程序代码加载至该高速緩沖存储器;
步骤112:执行储存于该高速緩沖存储器中的该变更程序代码, 以变更该数据块的数据内容;执行步骤116;
步骤114:执行储存于该闪存中位于另一数据分区的该变更程 序代码,以变更该数据块的数据内容;
步-骤116:结束。
据块中或抹除该数据块的内容。
请参考图3,图3为本发明于嵌入式系统100的闪存40中可于 同 一 分区同时进行读取与变更数据的方法的 一 实施例的示意图。于 嵌入式系统100中具有闪存40,其包含多个彩:据块42 (在图3中 为其中同一数据分区弁A的多个数据块42),嵌入式系统100还包含 处理器50,处理器50内具有高速緩沖存储器52。闪存40用来储 存嵌入式系统100中操作系统程序代码及周边驱动程序代码。当处 理器50接收到命令欲抹除数据块弁N的数据时,若用来执行抹除这 段区块数据的抹除程序代码恰好位于同一数据分区弁A内的数据块# (N-l ),如此则发生了已知的RWW/E的硬件限制。
在这种情况下,本发明的方法利用软件程序将数据块# (N-l) 的抹除程序代码放进高速緩冲存储器52中,并在高速緩冲存储器 52中执行该抹除程序代码。由于处理器50中的高速緩冲存储器属 于硬件内存,无法直接通过软件程序中将特定数据写入,因此如图
2的流程图中步骤108所述,先产生无命中高速緩存(cache miss), 接着如步骤60让处理器50自动将数据块# (N-l )的抹除程序代码 加栽到高速緩沖存储器52中,关于其程序代码一实施例如图4所述。
由于处理器50中的高速緩冲存储器52与闪存40相比而言具 备极快的数据存取速度,因此数据块# (N-l )的抹除程序代码被加 栽至高速緩沖存储器52相对于闪存40的数据存取而言仅需极短的 时间,且当抹除程序代码被加载至高速緩冲存储器52后,本发明 即采取直接在高速緩冲存储器52执行该抹除程序代码,以抹除数 据分区弁A中数据块弁N的数据,如此可避免在数据块# (N-l )上执 行抹除程序代码所造成的总线周期冲突,且相对于读取数据块#
(N-l)的抹除程序代码以及抹除数据块N的数据来说,可视为同 时进行,如此则实现了在闪存40中可同时进行读取与变更数据
(RWW/E)的硬件特性,解决现有技术中对一个数据分区进行读取 动作时,不能同时间对同 一数据分区进行写入或抹除的动作的 RWW/E;更件限制。
以上所述^叉为本发明的优选实施例,凡4艮据本发明权利要求书 所做的均等变化与修饰,都应属本发明的涵盖范围。
主要组件符号说明
10,40 NOR Flash内存
22凄t据分区
32,42 数据块
52 高速緩冲存储器
20 逻辑层 30 实体层 50 处理器 60,70, 102~116 步骤
100 嵌入式系统^
权利要求
1.一种于嵌入式系统的闪存中读写数据的方法,所述嵌入式系统包含闪存以及高速缓冲存储器,其中所述闪存包含多个数据分区,每个数据分区中包含多个数据块,所述方法包括侦测所述闪存中欲变更的数据块;根据特定条件,将所述闪存中用来变更所述数据块的变更程序代码复制至所述高速缓冲存储器中;以及根据储存于所述高速缓冲存储器中的所述变更程序代码来变更所述数据块。
2. 4艮据权利要求1所述的方法,其中所述特定条件包含侦测所述 变更程序代码是否与欲变更的所述数据块位于相同的数据分区中。
3. 根据权利要求2所述的方法,其中将所述闪存中用来变更所述 数据块的所述变更程序代码复制至所述高速緩冲存储器中,当 所述变更程序代码与欲变更的所述数据块位于所述相同数据 分区时,将所述变更程序代码复制至所述处理器的高速緩冲存 储器中。
4. 根据权利要求1所述的方法,所述高速緩沖存储器被包含于所 述嵌入式系统中的处理器中,其中将所述闪存中用来变更所述 数据块的所述变更程序代码复制至所述高速緩冲存储器中的 步驶《包4舌在所述高速緩冲存储器中产生无命中高速緩存;以及 所述处理器于侦测到所述无命中高速緩存时,将所述变更程序代码加载至所述高速緩沖存储器。
5. 根据权利要求1所述的方法,其中变更所述数据块是将数据写 入所述数据块中。
6. 根据权利要求1所述的方法,其中变更所述数据块是4未除所述 数据块的内容。
全文摘要
利用嵌入式系统中处理器的高速缓冲存储器的高速存取数据特性,于闪存的同一数据分区发生读取数据与写入(抹除)数据的情况发生时,以于高速缓冲存储器中产生一无命中高速缓存的方式,使处理器将欲读取的数据加载高速缓冲存储器中,并于高速缓冲存储器中读取欲读取的数据以实现同时于同一数据分区中写入(抹除)数据的特性。
文档编号G06F12/08GK101187900SQ20061014541
公开日2008年5月28日 申请日期2006年11月15日 优先权日2006年11月15日
发明者林俊甫 申请人:明基电通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1