用NiosII搭建的固态盘设备系统
3.3 缓存管理模块
本文引用地址:http://www.amcfsurvey.com/article/85542.htm缓存管理模块主要负责缓存的管理,所有与缓存相关的操作均须通过缓存管理模块提供的接口函数来完成。缓存管理模块管理的基本单元是缓存片(buffer clip),对每次传输请求,缓存管理将根据给定信息在缓存空间中开辟一个缓存片,用于该传输的数据交换。根据缓存片可能的繁忙程度,可以给予其不同的驻留时间,一种可行的方法是将物理缓存空间分成若干段,每段对应不同的驻留时间,开辟缓存片之前可以首先定位到某个段再进行操作。这样可以有效地提高缓存片碎片整理和维护的工作效率。
缓存管理模块对外接口非常简单,这样可以有效地隐藏缓存策略,使用段/片两级管理策略的缓存管理模块对外接口如表2所列。
表2 缓存管理模块对外接口函数
其中申请缓存片的操作是唯一一个必须对外开放的接口,其他3个对缓存段的操作接口属于可选式开放,即如果外部不需要的话,可以由缓存管理模块自行进行缓存段的整理工作。
申请缓存片是缓存操作中最常用的操作。在具体过程中,需要判断数据段是否已经被缓存,以及当前缓存空间是否有足够的空间开辟新的缓存片,并在必要时对缓存空间进行一些整理以获取相关资源等。一种可行的操作流程如图6所示。
图6 缓存片申请操作流程
在上述操作中,需要用到很多与缓存相关的操作,例如,查询状态、创建片、调整片、删除片等。这些操作都封装成通用的处理函数集成在缓存管理模块内部,供上层策略调用,但对外并不开放。
结语
基于NiosII搭建的固态盘设备系统完整地实现了固态盘应有的功能。通过使用灵活的SOPC系统,配合弱耦合的软件结构,使得核心算法的开发与系统的相关程度降到了最低,极大地方便了核心算法的独立开发。这就使系统能够在保证基本功能的同时,拥有了足够的灵活性来面对各种可能的需求。
固态盘是近几年最有希望替代硬盘成为主流存储设备的新型存储设备,各种系统结构设计和相关算法等技术都在不断的更新。面对各种实际问题,研究固态盘的系统结构和各种关键算法不仅具有重要的学术意义,同时还有广阔的应用前景。
参考文献
[1] 顾宝发,徐公权,黄德利,等. 固态盘设计[J]. 电子计算机外部设备,1994,18(3):14-20.
[2] 周琼: 闪速固态盘数据存储中的擦除算法研究[D]. 北京信息控制研究所,1998.
[3] 邸海霞. 固态盘缓存设计技术研究[D]. 航天工业总公司第二研究所,1998.
[4] 王晓东,郝志航. 大容量固态记录器技术[J]. 光学精密工程,2001,9(4):396-400.
[5] 李刚,韩松. 大容量高速固态盘设计[J]. 电子测量技术,2006,29(2): 129-130.
[6] Cernea R,Lee D J, Mofidi M,et al. A 34 Mb 3.3 V serial flash EEPROM for solidstate disk applications. SolidState Circuits Conference,1995. Digest of Technical Papers. 42nd ISSCC,1995 IEEE International[C]. 1995: 126-127,350.
[7] Chanik Park,Talawar P, Daeski Won,et al. A High PeRFormance Controller for NAND Flashbased Solid State Disk (NSSD). NonVolatile Semiconductor Memory Workshop,2006.IEEE NVSMW[C],2006: 17-20.
评论