嵌入式系统的高速缓存管理
2008/12/1 来源:电脑知识与技术·学术交流 作者:钟 锐 方文楷


  摘要:本文针对嵌入式文件系统提出了一套基于最久未使用页面替换算法的高速缓存管理方案。该高速缓存管理模块的使用,较好地提高文件系统的读写性能。以NorFlash操作为例,使用高速缓存以后,可以使多数量、小文件的写入速度提升20%左右,读出速度提升30%-40%。对于大容量数据传输,适当地调整缓存的容量,也可使得写入速度提升2%,读出速度提升10%左右。
  关键词:高速缓存管理方案;回写;最久未使用页面替换算法;块设备
  中图分类号:TP311文献标识码:A 文章编号:1009-3044(2008)14-20000-00
  
  Embedded System Cache Management
  ZHONG Rui1,FANG Wen-kai2
  (1.School of Electronics Science and Engeering, Southeast University, Nanjing 210096,China;2.School of Integrated Circuit, Southeast University,Nanjing 210096,China)
  Abstract: A new file cache management based on Least Recently Used (LRU) was bring forward and realized in this paper. The impact of this cache management on embedded system files is proved to be positive. NorFlash as an example, after the use of this cache management, the write speed of mass and little files upgrade 20%, and read speed upgrade from 30% to 40%. To large-capacity data transmission, proper adjustment of cache capacity, we can also makes writing speed upgrade 2% and read rate increase of around 10%.
  Key words: Cache Management; Write-back; Least Recently Used; Block device
  
  1 论文研究背景
  
  嵌入式系统的运行环境远不同于PC机;嵌入式系统的存储介质多为块设备,其存储原理与磁盘设备差异很大;桌面文件系统为提高读写性能尽可能使用较大的文件缓存,嵌入式系统必须针对资源限制设计特定的缓存管理单元,并尽量适应于块设备的操作特点。
  目前,嵌入式领域有多种文件系统可供选择:RomFS是只读文件系统,可以放在ROM空间,也可以放在系统RAM中,通常用作嵌入式Linux的根文件系统;JFFS/JFFS2是专为Flash设计的日志文件系统,它们提供了很好的掉电保护措施,并能平衡读写Flash设备,但是它们需要占用大量RAM空间,在文件系统接近满时,它们速度会变得很慢,同时启动的时候需要扫描日志节点,不太适合大容量存储应用;Yaffs是专为NandFlash设计的日志文件系统,其针对NandFlash访问的特点进行优化(如块的读写、坏块管理等),但欠缺通用性;Ext2是Linux下使用的文件系统,具有支持存储容量大,访问速度快等优点,但是对Flash存储设备支持不好;FAT文件系统是目前桌面系统中使用最广泛的文件系统,其文件管理方便、通用性好,但是同样不能直接用于嵌入式应用,它的缓存管理单元主要针对pc机的磁盘管理,运用于块存储设备并不能有效提升文件的读写速度。我们由此进行了专项开发。东南大学国家专用集成电路工程技术中心针对这一需求进行了将FAT文件系统运用到嵌入式系统的研究工作。
  
  2 高速缓存管理原理
  
  高速缓冲存储器(Cache),是一种加速内存或磁盘存取的技术,主要用来提升系统响应的速度。其作用的原理在于使用较快速的存储装置保留一份从慢速存储装置中所读取的数据,当需要再从较慢的存储体中读写数据时,Cache能够使读写的动作先在快速的装置上完成。这样可以使得系统的响应较为快速。
  这种技术如果仅仅使用在读数据这一方面,则没有任何问题。如果还要用在写上,即写入Cache中的数据不立即回写真正的存储体,则一旦电源中断或出现其它意外会导致数据的流失。而每次都将数据写入真正的存储体,会使Cache只能发挥加速读取的功能,而不能加速写入。这样的情况使Cache的写入方式分为两类:
  (1)直写式(Write-through):每次遇到写入Cache的同时,也把数据写入真正的存储设备,以保证Cache和真正的存储设备中的单元数据的一致性。直写式系统简单可靠,但每次更新Cache时都要对真正的存储设备写入,因此速度受到了影响。
  (2)回写式(Write-back):数据一般只写到Cache,这样可能出现Cache中的数据得到更新而存储体中的数据不变......点击查阅全文......↓