论文部分内容阅读
在工程应用中主要通过雷达信号测量系统来判断雷达信号是否达到要求。在传统的雷达信号测量系统中仅使用FPGA进行AD采样模块和PCIe接口模块的设计,采样后的数据通过PCIe接口发送到PC端来进行分析处理和存储。然而传统处理器在对大量实时信号进行处理时存在不足,FPGA由其并行处理数据的特点更加适合在实时性要求高的系统中应用,此时基于FPGA对雷达测量系统中各模块进行设计是一个合适的选择。不同于传统系统中的存储模块设计方案,应设计一种嵌入式的存储系统来对雷达数据进行存储。基于Xilinx Zynq平台的嵌入式存储系统大多都将系统设计分为两个部分,在Zynq的PL(Programmable Logic,可编程逻辑)部分设计存储器接口,在PS(Processing System,处理器系统)部分使用裸板的形式进行存储器驱动模块的设计。然而现有的嵌入式存储系统在PS端采用裸板开发的方式缺乏文件系统的支持无法对存储器中的数据直接进行管理,且在系统结构上也没有对针对雷达系统的数据接口。固态盘作为一种新型的存储器主要使用闪存作为存储介质,通过提升固态盘的性能来优化嵌入式存储系统的性能是一个合理的选择。减少闪存的读写次数以及提高访问的命中率是提升固态盘性能的重要的方法,一种常见的做法是对于缓冲区管理算法进行研究。LLRU算法选择驱逐页的原理将导致算法在运行一段时间后冷干净页链表为空,此时新读入缓冲区中的冷页立刻会被选为驱逐页,这将使得算法的命中率显著下降。此外LLRU算法并没有区别对待来自热区和冷区中的驱逐页,这也会导致算法命中率下降以及对闪存不必要的读写。基于以上分析,本文基于Zynq 7035芯片进行嵌入式固态存储系统的设计。首先在PL部分进行PCIe接口和数据接口的设计,雷达数据由数据接口进入系统并通过PCIe接口存储至固态盘中。其次在PS部分通过开发和移植Linux下驱动程序的方式来完成数据的存储并通过移植Linux文件系统的方式直接对存储器中数据进行管理。通过验证本文设计的存储系统可将外部数据流存储至固态盘中。随后提出了一种多链表的缓冲区管理算法AM-LRU,它将缓冲区的页分别放入四个链表中,每一个链表中存放的都是同一类型的页,在缓冲区发生替换时引入代价函数选择具有最小替换代价的页。AM-LRU通过限制冷干净页链表最小长度来避免冷页难以变成热页的问题,并且通过对来自热区的驱逐页使用二次机会替换策略的方式尽可能的提高算法命中率。最后通过在Flash-DBsim平台对几种LRU类算法进行仿真,验证了AM-LRU算法性能要优于LLRU算法。