基于sram的嵌入式文件系统的实现方法

文档序号:6556482阅读:177来源:国知局
专利名称:基于sram的嵌入式文件系统的实现方法
技术领域
本发明涉及嵌入式文件系统领域,特别是涉及一种基于SRAM的嵌入式文件系统的实现方法。
背景技术
目前嵌入式环境中,出现了各式各样的,不同容量的,不同存取速度,不同价格的外存介质,特别是出现了大容量Flash存储器并被应用于移动嵌入式领域,集成在CPU内的Cache容量也有明显提高。这些硬件制造技术上的进步,为紧密结合其优点,以提高嵌入式系统的性能提供了可能。
内存,或内存储器,又称为主存储器,是关系到计算机运行性能高低的关键部件之一,无疑是非常重要的。为了加快系统的速度,提高系统的整体性能,我们看到,计算机中配置的内存数量越来越大,而内存的种类也越来越多。
计算机指令的存取时间主要取决于内存。对于现今的大多数计算机系统,内存的存取时间都是一个主要的制约系统性能提高的因素。因此在判断某一系统的性能时,就不能单凭内存数量的大小,还要看其所用内存的种类,工作速度。
DRAM动态随机存储器主要用作主存储器。长期以来,我们所用的动态随机存储器都是PM RAM,稍晚些的为FPM RAM。为了跟上CPU越来越快的速度,一些新类型的主存储器被研制出来。它们是EDO RAM、BEDO RAM、SDRAM等。
DRAM芯片设计得象一个二进制位的矩阵,每一个位有一个行地址一个列地址。内存控制器要给出芯片地址才能从芯片中读出指定位的数据。一个标明为70ns的芯片要用70ns的时间读出一个位的数据。并且还要用额外的时间从CPU得到地址信息设置下一条指令。芯片制作技术的不断进步使这种处理效率越来越高。
FPM RAM快速页模式随机存储器,这里的所谓“页”,指的是DRAM芯片中存储阵列上的2048位片断。FPM RAM是最早的随机存储器,60ns的FPMRAM可用于总线速度为66MHz(兆赫兹)的奔腾系统(CPU主频为100,133,166和200MHz)。
快速页模式的内存常用于视频卡,通常称为“DRAM”。其中一种经过特殊设计的内存的存取时间仅为48ns,即VRAM。这种经过特殊设计的内存具有“双口”,其中一个端口可直接被CCPU存取,而另一个端口可独立地被RAM“直接存取通道”存取,这样存储器的“直接存取通道”不必等待CPU完成存取就可同时工作,从而比一般的DRAM要快些。
EDO RAM扩充数据输出随机存储器。在DRAM芯片之中,除存储单元之外,还有一些附加逻辑电路,现在,人们已注意到RAM芯片的附加逻辑电路,通过增加少量的额外逻辑电路,可以提高在单位时间内的数据流量,即所谓的增加带宽。EDO正是在这个方面作出的尝试。EDO的工作方式颇类似于FPMDRAM,EDO还具有比FPM DRAM更快的理想化突发式读周期时钟安排。这使得在66MHz总线上从DRAM中读取一组由四个元素组成的数据块时能节省3个时钟周期。
BEDO RAM突发扩充数据输出随机存储器,是在一个“突发动作”中读取数据,这就是说在提供了内存地址后,CPU假定其后的数据地址,并自动把它们预取出来。这样,在读下三个数据中的每一个数据时,只用仅仅一个时钟周期,CPU能够以突发模式读数据(采用52ns BEDO和66MHz总线),这种方式下指令的传送速度就大大提高,处理器的指令队列就能有效地填满。现今这种RAM只被VIA芯片组580VP,590VP,860VP支持。这种真正快速的BEDO RAM也是有缺陷,这就是它无法与频率高于66MHz的总线相匹配。
SDRAM同步动态随机存储器SDRAM与系统时钟同步,采用管管道处理方式,当指定一个特定的地址,SDRAM就可读出多个数据,即实现突发传送。具体来说,第一步,指定地址;第二步,把数据从存储地址传到输出电路;第三步,输出数据到外部。关键是以上三个步骤是各自独立进行的,且与CPU同步,而以往的内存只有从头到尾执行完这三个步骤才能输出数据。这就是SDRAM高速的秘诀。SDRAM的读写周期为10至15ns。SDRAM基于双存储体结构,内含两个交错的存储阵列,当CPU从一个存储体或阵列访问数据的同时,另一个已准备好读写数据。通过两个存储阵列的紧密切换,读取效率得到成倍提高。
SDRAM不仅可用作主存,在显示卡专用内存方面也有广泛应用。对显示卡来说,数据带宽越宽,同时处理的数据就越多,显示的信息就越多,显示质量也就越高。
SDRAM也将应用于共享内存结构(UMA),一种集成主存和显示内存的结构。这种结构在很大程度上降低了系统成本,因为许多高性能显示卡价格高昂,就是因为其专用显示内存成本极高,而UMA技术将利用主存作显示内存,不再需要增加专门显示内存,因而降低了成本。
SRAM静态随机存储器,按产生时间和工作方式来分,静态随机存储器也分为异步和同步。静态随机存储器多用于高速缓存(Cache)。
现今解决CPU与主内存之间的速度匹配的主要方法是在CPU与内存间加上基于SRAM的二级高速缓存,这种内存系统可以承担85%的内存请求,而不需CPU增加额外的等待周期。同时设置较大的缓存更能提高系统的性能。
目前的文件系统多数建立在外存上,文件访问速度较慢,成为数据流的一个瓶颈,通过将文件系统建立在SRAM上,就能够解决这一问题,同时也能够充分利用现在日益增大的SRAM容量。

发明内容
本发明的目的在于提供一种基于SRAM的嵌入式文件系统的实现方法。
本发明解决其技术问题采用的技术方案如下1)SRAM文件系统对数据高速缓存的扫描静态随机存储器SRAM,Static Random Access Memory,SRAM文件系统的在装载前,启动数据高速缓存的扫描,获取当前数据高速缓存可用容量;2)SRAM文件系统的装载装载由SRAM文件系统控制块SRAMFSCB的引导开始,从SRAMFSCB数据区间找到最新SRAMFSCB,根据前一步骤的当前数据高速缓存可用容量,进行文件系统的装载,初始化文件系统数据,从而完成初始化工作;3)SRAM文件系统块分配SRAM文件系统将关联的数据,即在使用顺序或者是所处空间上具有连续性的数据内容,组合成为一个块,分配到一段连续的区域中;4)SRAM文件系统数据替换在出现系统需要的数据暂时不在SRAM文件系统中时,采用最近最少使用的替换策略LRU,Least Recently Used,将SRAM文件系统中的数据替换出数据高速缓存,并将需要的数据装入。
本发明与背景技术相比,具有的有益的效果是本发明是一种基于SRAM的嵌入式文件系统的实现方法,这种方法充分利用嵌入式系统中用做数据高速缓存的SRAM,通过哈希方法在SRAM上建立一个小型文件系统,建立对常用数据文件在数据高速缓存中的索引,直接对数据高速缓存进行操作。
(1)高效性。本方法加快嵌入式系统中对文件输入输出操作的速度,提高输入输出操作的吞吐率。
(2)实用性。SRAM的容量在嵌入式系统中得到了提升,本方法充分利用了这一特点,使得系统在CPU速度与文件系统的输入输出速度匹配上有了明显的改善,经过使用具有很好的实用性。


附图是本发明过程的示意图。
具体实施例方式
下面结合附图和实施例对本发明作进一步的说明。
一种基于SRAM的嵌入式文件系统的实现方法,其具体实施方法如下1)SRAM文件系统对数据高速缓存的扫描在SRAM的数据高速缓存中,为了能够很好的进行数据的存取,由嵌入式操作系统提供了标识位,以支持对数据高速缓存使用状态的扫描,如下表所示

在SRAM文件系统启动时,对数据高速缓存进行扫描。通过检查存在于上表标识中的Tag位,SRAM文件系统能够获得数据高速缓存使用情况的有效数据,从而获取当前数据高速缓存可用容量。
如果当前数据高速缓存有足够的容量可以提供给SRAM文件系统使用,则该数据被保存起来;否则,表示系统正处于繁忙阶段,停止SRAM文件系统的装载过程。
2)SRAM文件系统的装载装载由SRAM文件系统控制块SRAMFSCB的引导开始。SRAMFSCB驻留在片内存储器上,SRAM文件系统启动时,从SRAMFSCB数据区间找到最新SRAMFSCB,根据前一步骤的当前数据高速缓存可用容量,进行文件系统的装载,初始化文件系统数据,从而完成初始化工作。
SRAM文件系统目录结构比较简单、文件数目有限,将文件和目录作为一种对象统一管理。访问文件时,通过对文件路径的直接哈稀,计算出文件的索引号,再访问索引节点。这样明显加快了路径查找。
同时,在加载的过程中,利用索引进行初始化,由此,SRAM文件系统不需要通过扫描所有的文件来进行加载,从而简化了建立文件结构的过程,缩短了装载的时间。
3)SRAM文件系统块分配计算机指令的局部性原理表明,在一个较短的时间间隔内,由程序产生的地址往往集中在存储器逻辑地址空间的很小范围内。指令地址的分布本来就是连续的,再加上循环程序段和子程序段要重复执行多次。因此,对这些地址的访问就自然地具有时间上集中分布的倾向。
数据分布的这种集中倾向不如指令明显,但对数组的存储和访问以及工作单元的选择都可以使存储器地址相对集中。这种对局部范围的存储器地址频繁访问,而对此范围以外的地址则访问甚少的现象,就称为程序访问的局部性。
根据程序的局部性原理,SRAM文件系统将关联的数据,即在使用顺序或者是所处空间上具有连续性的数据内容,组合成为一个块,分配到一段连续的区域中;把正在执行的指令地址附近的一部分数据文件从主存调入SRAM高速缓存,供CPU在一段时间内使用。这对提高程序的运行速度有很大的作用。从而使得系统的文件访问速度大大加快,提高了输入输出操作的吞吐率。
4)SRAM文件系统数据替换在出现系统需要的数据暂时不在SRAM文件系统中时,采用最近最少使用的替换策略LRU,从SRAM数据高速缓存中找出最近使用最少的数据文件,将SRAM文件系统中的数据替换出数据高速缓存,同时从存储器中将将需要的数据读取出来,并装入到数据高速缓存。
最近最少用调度算法是一种通用的有效算法,被操作系统、数据库管理系统和专用文件系统广泛采用。该算法淘汰的页面是在最近一段时间里较久未被访问的那一页。它是根据程序执行时所具有的局部属性来考虑的,即那些刚被使用过的页面,可能马上还要被使用,而那些在较长时间里未被使用的页面,一般说可能不会马上使用到。
为了能比较准确地淘汰最近最少使用的页,必须维护一个特殊的队列(本书中称它为页面淘汰序列)。该队列中存放当前在主存中的页号,每当访问一页时就调整一次,使队列尾总指向最近访问的页,队列头就是最近最少用的页。显然,发生缺页中断时总淘汰队列头所指示的页;而执行一次页面访问后,需要从队列中把该页调整到队列尾。
例给某进程分配了三块主存,该作业依次访问的页号为4,3,0,4,1,1,2,3,2。于是当访问这些页时,页面淘汰序列的变化情况如下

从实现角度来看,LRU算法的操作复杂,代价极高,因此在实现时往往采用模拟的方法。
第一种模拟方法可以通过设置标志位来实现。给每一页设置一个引用标志位R,每次访问某一页时,由硬件将该页的标志R置1,隔一定的时间t将所有页的标志R均清0。在发生缺页中断时,从标志位R为0的那些页中挑选一页淘汰。在挑选到要淘汰的页后,也将所有页的标志R清0。这种实现方法开销小,但t的大小不易确定而使精确性差。t大了,缺页中断时所有页的标志R值均为1;t小了,缺页中断时,可能所有页的R值均为“0”,同样很难挑选出应该淘汰的页面。
第二种模拟方法则是为每个页设置一个多位的寄存器r。当页面被访问时,对应的寄存器的最左边位置1;每隔时间t,将r寄存器右移一位;在发生缺页中断时,找最小数值的r寄存器对应的页面淘汰。
该算法是一种公开算法,可以用一般的程序设计语言实现,例如C,C++,Java等。
权利要求
1.一种基于SRAM的嵌入式文件系统的实现方法,其特征在于1)SRAM文件系统对数据高速缓存的扫描静态随机存储器SRAM,Static Random Access Memory,SRAM文件系统的在装载前,启动数据高速缓存的扫描,获取当前数据高速缓存可用容量;2)SRAM文件系统的装载装载由SRAM文件系统控制块SRAMFSCB的引导开始,从SRAMFSCB数据区间找到最新SRAMFSCB,根据前一步骤的当前数据高速缓存可用容量,进行文件系统的装载,初始化文件系统数据,从而完成初始化工作;3)SRAM文件系统块分配SRAM文件系统将关联的数据,即在使用顺序或者是所处空间上具有连续性的数据内容,组合成为一个块,分配到一段连续的区域中;4)SRAM文件系统数据替换在出现系统需要的数据暂时不在SRAM文件系统中时,采用最近最少使用的替换策略LRU,Least Recently Used,将SRAM文件系统中的数据替换出数据高速缓存,并将需要的数据装入。
全文摘要
本发明公开了一种基于SRAM的嵌入式文件系统的实现方法。本发明的方法在充分利用嵌入式系统中用做数据高速缓存的SRAM,通过哈希方法在SRAM上建立一个小型文件系统,建立对常用数据文件在数据高速缓存中的索引,直接对数据高速缓存进行操作。本发明的方法能够加快嵌入式系统中对文件输入输出操作的速度,提高输入输出操作的吞吐率,提高对大容量数据高速缓存的利用率。
文档编号G06F17/30GK1818887SQ20061004987
公开日2006年8月16日 申请日期2006年3月16日 优先权日2006年3月16日
发明者陈天洲, 胡威, 王祥生 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1