闪存的驱动装置及方法

文档序号:6572015阅读:154来源:国知局

专利名称::闪存的驱动装置及方法
技术领域
:本发明涉及一种内存的存取系统及方法,特别有关于一种闪存的存取系统及方法。
背景技术
:这几年随着闪存技术的成熟,使得闪存的容量与存取速度也快速地提升。因此有厂商利用大容量的非挥发性内存(Non-volatilememory)作为随身数据储存装置。例如,随身碟(FlashJet)或记忆卡(MemoryCard)等。更有厂商将内存与多媒体功能相互结合成可携式多媒体播放器(PortableMediaPlayer,PMP),进而达到随身娱乐的效果。例如,MP3播放器、MP4影音播放器或数字相框等。目前闪存主要分为两种类型分别为与非门(NAND)型与或非门(NOR)型。闪存在物理结构上都是分成若干个区块,用以将资料存放置区块中。虽然与非门型高速缓存采用比较复杂的串行读写架构来进行存取数据的动作,而且与非门型高速缓存的读取速度较或非门型高速缓存慢。不过,因为或非门型高速缓存的数据抹除较为复杂,因此在速度上,与非门型高速缓存还是占较大的优势。再加上与非门型高速缓存型拥有较低的成本、较小的空间,及省电等等优势,适合应用在内存大小为1Gbit以上的数据储存。通常为了能让闪存可以在不同的档案系统下运作,例如在档案系统FAT16/32、Transaction-SafeFAT或EXT2下运作。为了能在不同的档案系统下运作,最常被采用的方法就是一种叫做地址转换査表(AddressTranslationTable)的方法。地址转换查表是藉由把逻辑区块位置(LogicalBlock.Address)对应到闪存中真实的位置,将闪存仿真成是一个连续的内存空间,进而把闪存视为一个磁盘驱动器装置来使用。以与非门型高速缓存为例,与非门型高速缓存是以连续的扇区(sector)方式作排列。在由若干个扇区组成一个区块(block)。与非门型高速缓存的读写动作都是以扇区作为单位,而进行抹除(erase)时则是以区块为单位。为能使程序开发者能够方便存取高速缓存,微软(Microsoft)公司更制订一快取区块驱动器100(FlashBlockDriver),用以规范硬件与软件沟通的操作原则。图1为闪存的架构示意图。快取区块驱动器100包括快闪抽象层110(FlashAbstractionLayer)以及快闪媒体驱动器120(FlashMediaDriver)。快闪抽象层110根据主机端130的操作指令读取闪存140中的数据。快闪媒体驱动器100可依据程序开发者自行定义对闪存140的读写策略。一般而言,快闪媒体驱动器120的读取策略是一次读取一个扇区,并将读取的数据回传至主机端130。这种作法对于主机端130而言,每次读取数据就要向闪存140进行读取扇区的动作。一旦有大量的数据需要被读出时,这样的读取方式就会,导致闪存的读取时间过于冗长。
发明内容本发明的目的是提供一种闪存的驱动装置,用以存取闪存。快闪驱动器包括快闪抽象层以及快闪媒体驱动器。快闪抽象层用以读/写数据至闪存。在快闪媒体驱动器中包括快取暂存区以及查找表。快闪抽象层用以读/写数据至闪存或快取暂存区。快取暂存区耦接至查找表,用以存放从闪存所撷取的数据。查找表分别耦接于快取暂存区与快闪抽象层,用以记录快闪暂存区中存放的数据,其对应在闪存中的实体地址。本发明提供一闪存的驱动装置,其在驱动装置中设置快取暂存区,当主机端存取闪存时,可以一次读取多笔闪存中扇区的数据。并且快闪驱动器会将这些数据放置在快取暂存区中,使得主机端不用每一回合都要从闪存中读取数据。如此一来,可以加速主机端读取高速缓存中的数据的效率。从本发明的另一观点,本发明提出一种存取闪存的驱动方法,其包括下列步骤判断内存中是否有欲读取的数据。若不存在此数据时,则从闪存中读取若干个数据扇区中的数据。接着,将数据扇区的数据分别置入对应大小的快取暂存区中。将读取过的数据扇区地址纪录查找表中。最后,依序将快取暂存区的数据加载至内存中。有关本发明的特征与实作,兹配合图示作最佳实施例详细说明如下。图l为闪存的架构示意图。图2为本发明的快闪驱动器架构图。图3为本发明的运作流程图。具体实施例方式图2为本发明的快闪驱动器架构图。主机端通过闪存的驱动装置闪存的驱动装置200,用以存取闪存240中的数据。闪存240除了可为随身碟(flashmemory)外,亦可为CF接口、SM接口、MMC接口、SD接口、MS接口、MS-PR0接口或XD接口记忆卡之一。闪存的驱动装置200(FlashBlockDriver)包括快闪抽象层210(FlashAbstractionLayer)以及快闪媒体驱动器220(FlashMediaDriver)。快闪抽象层210用以读/写数据至闪存240。快闪媒体驱动器耦接于快闪抽象层210,快闪媒体驱动器220依据程序开发者自行定义对高速缓存的读写策略。例如,读取策略可以利用队列(Queue)或堆栈(Stack)等各种方式来设定快闪媒体驱动器220对于数据读取的读取方式。在快闪媒体驱动器220中还包括快取暂存区221(Cache)以及査找表222。快闪抽象层210用以读/写数据至闪存240或快取暂存区221。快取暂存区221耦接至快闪抽象层210,用以存放从闪存240所撷取的数据。査找表222分别耦接于快取暂存区221与快闪抽象层210,用以储存快取暂存区221中存放的数据的对应在闪存240中的地址。在闪存240中存放数据的最小单元为一个扇区,而且一个扇区的大小为512字节。图3为本发明的快闪驱动器的运作流程图。首先,主机端向内存加载欲执行的数据(步骤S310)。接着,判断内存中有无欲加载的数据(步骤S320)。若内存中有此笔数据存在时,将数据加载至主机端中(步骤S330)。若内存中不存在此笔数据时,则搜寻快取暂存区中有无此笔数据(步骤S340)。接下来,若快取暂存区中存在此笔数据时,则从快取暂存区中将数据加载内存中(步骤S360)。若快取暂存区中不存在此笔数据时,则根据查找表的地址纪录从闪存中撷取此笔数据,再将此笔数据加载至内存。并在此同时,将闪存中接续扇区的数据也一并加载至快取暂存区中,并且纪录所加载数据的实体地址至査找表中(步骤S350)。主机端230可为个人计算机或其它处理单元。闪存240可以为与非门型闪存(N腦D)或或非门型闪存(NOR)之一。此外,快取暂存区221的大小可为1024字节、2048、3072或4096字节之一。为能更加清楚说明本发明的运作方式,在此我们假设快取暂存区221大小为2048字节(等同于四个扇区大小)为例。当主机端230开始撷取闪存240中的数据时,主机端230首先会查找主机端230中的内存231是否存在此笔数据。若内存231中存在此笔数据的话,则直接将此笔数据加载至主机端230的处理器进行处理。若内存231中不存在此笔数据的话,则主机端230会通过快闪抽象层210搜寻查找表222中有无存放此数据。若快取暂存区221中存放着此笔数据的话,则将此笔数据从快取暂存区221加载至主机端230的处理器。若査找表222不存在此一数据时,则快闪媒体驱动器220会从闪存240中查找。当快闪媒体驱动器220查找到所需数据时,快闪媒体驱动器220会将存放数据的扇区依照排列顺序把每四个扇区为一组分别加载至快取暂存区221中。并在此同时,快闪媒体驱动器220会纪录这些被加载的数据其所对应于闪存240中的所在地址,快闪媒体驱动器220会将这些地址纪录在査找表222中,利用指标(point)的定位概念藉以提供快闪媒体驱动器220下次读取的起始点。对于快取暂存区221的存取方法除了上述一次全部存入四个扇区的读取策略外,更可以采用先进先出(FirstInFirstOut,FIFO)或先进后出(FirstInLastOut,FILO)的读取策略。令快闪暂存区221形成一队列型态,将读入的数据依序放入快闪暂存区221。相对于此的读取方式是将放入快闪暂存区221的数据由第一笔循序加载内存。简单来说先存进快取暂存区221中的数据优先读出,如此快闪暂存区221中随时可以存在有最新的数据,确保有快取暂存区221中有新的数据可以加载至内存231中,藉以缩短内存231等待加载的时间。快闪暂存区221除了采用上述的先进先出的读取策略外,程序开发者当然也可以利用不同的方法加以实现读取策略。快闪媒体驱动器220会将第一笔扇区的数据回传至快闪抽象层210。接着,快闪抽象层210会将第一笔扇区数据加载至主机端230的内存231,以供主机端230运算。然后,当快闪抽象层210只要向快闪媒体驱动器220查找第二、第三或第四笔扇区时,快闪媒体驱动器220就只要将存放在快取暂存区221中的数据分别回传给快闪抽象层210。如果以主机端230读取四个扇区的数据为例,己知的作法需要重复的读取闪存240的数据四次,本发明仅需读取一次高速缓存。如此一来,快闪媒体驱动器220就不需要每次从闪存240中读取数据,进而降低存取闪存240所耗费的时间。本发明提供一闪存的驱动装置200。当主机端230存取闪存240时,可以一次读取多笔闪存240中的扇区数据。闪存的驱动装置200会将这些数据放置在快取暂存区221中,使得主机端230不用每一次读取回合都要从闪存240中读取数据。并藉由查找表222作数据地址的纪录,使得主机端230可以避免重复的读取相同的位置。进而可以加速主机端230读取高速缓存240中的数据之效率。虽然本发明以前述的较佳实施例揭露如上,然其并非用以限定本发明,任何熟习相像技术者,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,因此本发明的专利保护范围须视本说明书的权利要求书所界定者为准。权利要求1、一种闪存的驱动装置,用以存取一闪存,该闪存包括多个数据扇区,用以储存数据,该快闪驱动器耦接于该闪存与一主机端之间,该快闪驱动器用以传递数据至该闪存或该主机端,其特征在于,该快闪驱动装置包括一快闪抽象层;以及一快闪媒体驱动器,耦接于该快闪抽象层,该快闪媒体驱动器包括有一快取暂存区,耦接于查找表,该快取暂存区具有多个快取暂存区,该快取暂存区用以暂存从该闪存所撷取的资料;以及一查找表,分别耦接于该快取暂存区与该快闪抽象层,用以记录该高速缓存中所存放的数据对应于该闪存中的实体地址;其中,该快闪抽象层读取该闪存中的该些数据扇区或读取该快取暂存区中的该些快取暂存区,该快闪抽象层读取该些数据区块时,该快闪抽象层用以将连续的该些数据区块逐一读出并分别存放到该快取暂存区,在该查找表中纪录存放在该快取暂存区的该些数据区块在该闪存中的对应地址。2、根据权利要求l所述的闪存的驱动装置,其特征在于所述快闪暂存区大小为1024字节、2048字节、3072字节或4096字节之一。3、根据权利要求l所述的闪存的驱动装置,其特征在于所述査找表用以纪录该闪存中的实体地址。4、一种存取闪存的驱动方法,其包括下列步骤自一闪存中读取多个数据扇区中的数据;将该些数据扇区的数据分别暂存至多个快取暂存区中;以及将读取过的该些数据扇区地址纪录至一査找表中。5、根据权利要求4所述的存取闪存的驱动方法,其特征在于所述该些数据扇区为1024字节、2048字节、3072字节或4096字节之一。6、根据权利要求4所述的存取闪存的驱动方法,其特征在于所述该快取暂存区的大小对应为该些数据扇区,该快取暂存扇区的大小为1024字节、2048字节、3072字节或4096字节-之一。7、根据权利要求4所述的存取闪存的驱动方法,其特征在于,所述驱动方法还包括一主机端向一内存加载欲执行的数据;判断该内存中是否有欲读取的数据;若该内存中有此笔数据存在时,将此数据加载至该主机端中;以及若该内存中不存在此笔数据时,则搜寻该快取暂存区中有无此笔数据。8、根据权利要求4所述的存取闪存的驱动方法,其特征在于,所述驱动方法还包括将该快取暂存区的数据加载至该内存中。全文摘要本发明公开了一种闪存的驱动装置及方法,该装置包括快闪抽象层以及快闪媒体驱动器。快闪抽象层用以读/写数据至闪存或快取暂存区,快闪媒体驱动器还包括快取暂存区以及查找表。快取暂存区用以存放从闪存所撷取的数据。查找表记录高速缓存所存放的数据所对应闪存中的实体地址。当快闪抽象层从高速缓存中读取数据时,快闪抽象层会另行读取其它的数据,存放至快取暂存区并于查找表中纪录存放在快取暂存区的数据区块在闪存中的对应地址。文档编号G06F12/08GK101339490SQ200710028939公开日2009年1月7日申请日期2007年7月2日优先权日2007年7月2日发明者林承毅申请人:佛山市顺德区顺达电脑厂有限公司;神达电脑股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1