更新闪存存储器内容的装置及方法 【技术领域】
本发明是关于一种更新闪存存储器内容的装置及方法,特别是关于提供一种软件技术,用来改善、更新闪存存储器内容的装置及方法。
背景技术
随着科技的发展,各种新型电子装置及零部件不断开发成功,设计者对产品进行再规划、再整合,力求使产品达到最佳化;除了硬件方面朝向轻、薄、短、小方向发展外,软件方面也尽可能提供多任务化与极具人性化操作的程序,同时为解决电子装置程序中存在的漏洞,需要不断更新原有的旧程序以提高程序运行的效率、功能及可靠性。
现以内存为例,做一个说明。随着需求的增加及技术的发展,电子装置对于内存的要求也日趋严格,要求低耗电、低成本、不同内存介质等具有特色的内存产品,因此有愈来愈多为满足市场更多需求地新内存产品陆续推出,包括铁电体随机存储器、MRAM(Magnetoresistive Random Access Memory)与OUM(Ovonics Unified Memory)等。
一般数字产品常需要不同规格的内存产品,其中以DRAM、SRAM与Flash应用的最为普遍。至于一个产品需要哪些规格的内存、需要多大的容量,设计者会依据实际需要而定。以PC为例,Flash是用于储存BIOS,SRAM与DRAM也因为x86架构的缘故而需求大增。不过,随着现今产品渐渐走向信息化、多媒体化、通讯化、网络化与移动化,对于内存资料的更新也产生了不同的变化;现有可擦除可编程只读存储器(erasable EPROM),可分为紫外线擦除存储器(UV-EPROM)与电可擦除存储器(EEROM)及闪存存储器(Flash ROM)等方式。
然而,现有闪存存储器的资料更新技术,是采用以区块(BLOCK)为单位,在资料更新写入时,一次将整个区块(BLOCK)的资料擦除,再进行资料的写入动作,速度虽比一次一个字节(BYTE)的EPROM快,但由于一次擦除一个区块的资料,再重新写入资料,动作时间拉长,若在资料更新时发生不可预期的事情(如意外停电等),造成资料更新突然中断,会使存储器本身的内容受到严重破坏,既无法达到更新资料的目的,也有可能丧失该电子装置原先的资料。
再有,通过现有闪存存储器资料更新技术,对于BIOS程序更新处理而言,若仅更新BIOS程序其中一小部份资料,也需要将整个BIOS程序(含更新的部分)写入闪存存储器中,故增加了资料的更新时间。
【发明内容】
为克服上述现有技术的缺点,本发明的主要目的在于提供一种更新闪存存储器内容的装置及方法,能够快速更新电子装置(例如PDA或PC)储存在闪存存储器内的资料。
本发明的又一目的在于提供一种更新闪存存储器内容的装置及方法,能够减少更新中断造成的资料损失,提高更新动作的安全性。
本发明的更新闪存存储器内容的方法是应用在一电子装置上,该电子装置可以是数字照相机、电子辞典、个人数字助理、个人计算机以及笔记本型计算机中的任一种。该更新闪存存储器内容的方法,提供使用者快速更新电子装置内部的存储单元资料,该存储单元具有多组存储区块,该存储区块内预存有原始核心资料,该更新闪存存储器内容的方法包括以下步骤:(1)使用者对储存原始核心资料区块进行汇总对比,产生该存储区块的检查码;(2)使用者输入更新档案资料;(3)判断输入档案资料是否具有更新指令,若判断结果为否,则进至步骤(8),若判断结果为是,则进至步骤(4);(4)针对输入更新的档案资料,进行资料区块化以建立多个更新区块,对各个更新区块进行汇总对比处理,产生该更新区块的检查码;(5)判断原始核心资料的存储区块与更新区块的检查码关系,若判断结果为「相同」,则进至步骤(8),若判断结果为「不同」,则进至步骤(6);(6)储存判断检查码相异的资料地址;(7)针对步骤(6)所储存的资料地址,进行资料擦除及资料更新;
本发明更新闪存存储器内容的装置包括,一资料缓存单元、一原始数据单元以及一更新装置;该更新装置还包括有一控制单元模块、一逻辑对比模块、一数据储存模块、一数据寻址模块、一数据更新模块以及一汇总运算模块;该原始数据单元具有多组存储区块,该存储区块内预存有原始资料(如BIOS等),且根据该存储区块所储存的原始核心资料以汇总运算法计算出该检查码,并将检查码附于该组存储区块后,储存至该原始数据单元中,当输入一更新资料至电子装置的数据缓存模块中,该控制单元模块对输入资料进行判断、译码为「更新」动作时,该汇总运算模块针对更新资料依原存储单元区块大小切割而成一更新区块,并计算所对应的检查码,以利于原始存储区块与更新存储区块的检查码相互进行对比,将检查码对比相异的地址,传送至该数据寻址模块中储存,该资料更新模块可根据资料寻址模块内部资料的地址,对原始存储区块进行资料擦除及更新的动作。
本发明的更新闪存存储器内容的装置及方法能够快速更新电子装置(例如PDA或PC)储存在闪存存储器内的资料,由于使用了存储区块的方法,能够有效减少更新中断造成的资料损失,提高更新动作的安全性。
【附图说明】
图1是一方块示意图,显示该更新闪存存储器内容装置的基本架构示意图;
图2是一资料更新流程示意图,表示该更新闪存存储器内容的方法的动作流程及步骤;以及
图3(A)及图3(B),表示外部一资料缓存单元及一原始数据单元的程序区块序列,经该汇总对比模块整合计算的简单示意图。
【具体实施方式】
实施例
本发明的更新闪存存储器内容的方法是应用在一电子装置上,该电子装置可以是数字照相机、电子辞典、个人数字助理、个人计算机以及笔记本型计算机中的任一种。图1说明本发明的更新闪存存储器内容的装置的系统架构方块图,如图所示,它包括一更新装置1、一资料缓存单元2以及一原始数据单元3,该更新装置1可接收外部资料经该资料缓存单元2,更新原始数据单元3储存的数据。
该资料缓存单元2,是一组随机内存,用以提供外部及内部资料,暂时存放资料及地址的内存空间,在本实施例中该资料缓存单元2是RAM(Read Access Memory;随机存取内存)。
该原始数据单元3,是该电子装置的主要存储单元,具有多个存储区块,该存储区块内预存有装置的核心资料(如BIOS程序或Embedded软件);在本实施例中是闪存存储器(Flash ROM)。
其中该更新装置1,还包括一控制单元模块4、一数据储存模块5、一汇总运算模块6、一逻辑对比模块7、一数据寻址模块8以及一数据更新模块9。其中控制单元模块4和逻辑对比模块7是中央处理器的两大处理模块。
该汇总运算模块6,是利用汇总运算法,针对输入该资料缓存单元2中的更新资料进行区块化及汇总处理,将更新数据切割成同原始数据单元3的存储区块大小一样的区块,将更新区块内部的档案、名称、大小、时间、日期以及内容汇总成一个检查码(BINARY CODE),再将检查码附于程序区块之后,储存至该资料缓存单元2中,以在后续逻辑对比动作中使用。
该逻辑对比模块7,负责执行逻辑运算与对比指令,针对存放在该原始数据单元3与数据缓存单元2中,各带有多个检查码的存储区块,进行实际逻辑运算比较,并判断更新存储区块检查码(check-sum1序列)与原始存储区块检查码(check-sumA序列)关系。
该控制单元模块4,是该逻辑对比模块7和其它模块之间运作核心,它可从该资料缓存单元2中,提取输入程序的指令,并对指令功能进行译码,识别其功能(在本实施例中为更新功能),再激活汇总运算模块6及逻辑对比模块7,对数据缓存单元2存放的更新数据进行区块化、汇总处理、编码计算以及逻辑对比。
该资料寻址模块8用以储存该逻辑比较中相异检查码区块的资料地址,定义为所需「更新资料」的地址,它是一种储存地址的缓存器,可分基地地址缓存器(base address register)与指令地址缓存器(instruction address register)二种。
该资料更新模块9,具有一种写入器(ROM burner)软件功能,针对前资料寻址模块,锁定多个相异检查码地址,先对原始存储区块相对于数据寻址模块锁定地址中的资料,进行资料擦除动作;当擦除完成后,再读取该数据缓存单元2中,相对于数据寻址模块选定地址中的资料,进行资料写入动作。
该资料储存模块5,它是一大容量存储储存空间,可提供存放电子装置的主程序、个人资料以及相关应用软件。
图2是一资料更新流程示意图,说明更新闪存存储器内容的方法所需执行的步骤流程。
当使用者操作一更新装置时,如步骤S1所示,根据原始数据单元(Flash ROM)内部多组存储区块储存的核心资料(如BIOS、Embedded等),用汇总运算法计算出多组检查码,将检查码附于各存储区块后面,随即进行步骤S2。
在步骤S2中,由外部输入更新资料文件至该资料缓存单元2中,随即进行步骤S3。
在步骤S3中,由该控制单元模块4,对输入程序资料文件进行功能判断,判断是否具有更新的指令,若判断结果为「否」,则直接结束更新动作,若判断结果为「是」,随即进行步骤S4。
在步骤S4中,该汇总运算模块6针对该资料缓存单元2中内部更新程序进行区块化,将更新程序依原始存储区块大小切割而成一更新存储区块,并进行汇总运算以及编码成检查码后,将检查码附于更新存储区块后面,随即进行步骤S5。
在步骤S5中,由该逻辑对比模块7,根据原始数据单元3与该资料缓存单元2中所附的多组检查码存储区块,作逻辑对比,判断更新区块检查码(check-sum1)与原始存储区块检查码(check-sumA)是否相同,若判断结果为「是」,则直接结束更新动作,若判断结果为「否」,随即进行步骤S6。
在步骤S6中,该资料寻址模块8将储存逻辑对比时,判断更新存储区块与原始存储区块检查码相异时的资料地址,随即进行步骤S7。
在步骤S7中,该数据更新模块9取得该数据寻址模块8所定义要更新数据地址,先对原始存储区块内相对应地址的资料,进行资料擦除动作,随即进行步骤S8。
在步骤S8中,从数据寻址模块8,取得所定义要更新数据地址时,随即从该资料缓存单元2中,读取要更新存储区块,再由该数据更新模块9对原始存储区块内相对应地址的资料空间,进行资料写入更新动作,随即结束。
图3(A)和图3(B)是一应用示意图,用以表示该汇总运算模块6处理该原始存储单元3与该资料缓存单元2的存储区块简单示意图。
图3(A)是外部输入更新资料文件至该数据缓存单元2中,经该汇总运算模块6区块化、汇总计算以及编码,产生该检查码check-sum1、check-sum2等序列。
图3(B)是电子装置内部原始数据单元3的核心资料,通过该汇总运算模块6汇总计算及编码,也产生检查码check-sumA、check-sumB等序列。
原始数据单元3与该资料缓存单元2的存储区块,通过该汇总运算模块6及该逻辑对比模块7的汇总计算、编码以及对比,可判断出以下两种结果:
(1)check-sum1等于check-sumA,故代表不需对check-sumA的存储区块作更新动作。
(2)check-sum2不等于check-sumB,故代表原本存储区块可能被更正过或需作更新功能。