论文部分内容阅读
主动存储将用户数据的应用处理下放到存储设备一级,为信息安全、多媒体信息处理以及数据挖掘等数据密集型应用提供了一种有效的解决途径。目前关于主动存储系统的研究工作都是在由分离式部件构建的存储设备控制器上展开,利用控制器上通用处理器的空闲处理资源进行主动存储服务的处理。这种方案的缺点是硬件成本高、功耗较大。基于片上系统(SoC)硬件实现的存储控制器具有较好的可定制性、性能高且功耗低,已经成为发展主流。SoC 内部集成的嵌入式处理器的频率远低于通用处理器,采用软件方式进行主动服务处理效率很低,不具备实用性。为了加速较为复杂的运算,SoC 设计可以集成专用硬件进行协同处理。但硬件加速方案灵活性很差,且模块扩展数目有限,不适合用于功能需求灵活多样的主动存储系统。提出利用可重构计算来进行主动存储服务处理,基本思路是在片上系统控制器中集成可重构的硬件处理模块,为存储系统实现高性能且灵活的功能扩展。主动存储应用多种多样,需根据应用特点选择合适的硬件加速架构。在XilinX可编程片上系统硬件平台下,研究了协处理器和加速器方案的特点。实验结果表明,协处理器系统可获得较高的处理效率。由于CPU 直接负责数据传输,协处理器方案会消耗一定的处理器资源,因此该方案适合于数据量较小的高性能主动存储应用。基于PLB总线扩展的加速器方案性能一般,受限于总线传输效率以及中断处理开销。基于交换式MPMC 总线扩展的加速器与内存之间具有点对点直连通道,处理过程中数据传输延时小,性能比PLB 加速器高。两种加速器方案都可以利用DMA 进行数据传输,处理过程中CPU 资源占用少,处理效率不是十分依赖处理器,相比协处理器而言更适合于数据密集型主动存储应用。
提出了集成可重构的协处理器和加速器的片上系统设计方法。可重构硬件设计有别于传统的静态电路,需要设计额外的功能模块对动态重构模块进行控制。解决了动态加速器地址空间映射,重构后硬件模块的复位,以及动态模块与静态模块之间信号传输的问题。实验结果表明,可重构系统的处理效率与静态系统相同,并且更加节省硬件资源。可重构硬件具有较好的灵活性,但重构过程往往需要一定的时间(重构延时在10 毫秒量级),在小文件的处理中频繁的功能重构会严重降低系统性能。研究表明,重构延时主要源于配置数据通过片上总线从内存传输到配置控制器的环节,提出一种配置控制器一级的配置数据Cache 方案。配置数据Cache 采用全相联方式进行组织,Cache 命中时配置速度较改进前可提升10倍。提出一种配置数据Cache 置换策略,算法结合了模块的历史使用频度以及模块的面积。当SoC 芯片中同时集成多个动态处理模块时,可以通过配置调度进一步减小重构延时。针对主动存储服务任务的特点设计了任务调度与配置调度方案。任务调度算法在优先保障多任务并行处理性能的前提下,按先来先服务的原则尽可能的提高单个任务的处理速度。配置调度包含了混合的配置预取以及配置Caching 算法。仿真实验结果表明,配置控制器的配置数据Cache以及配置调度算法均可有效减小重构延时,提升系统性能。
利用以上关键技术,在XilinXML509 开发板(配有V5 LX110T FPGA)上实现了一个主动存储控制器的原型系统设计。片上系统控制器中集成了4个可重构的加速器进行主动存储服务处理。控制器采用RAMDisk模拟硬盘,使用iSCSI 协议进行通信。为了支持主动存储功能扩展,针对T10 OSD SCSI 规范提出一种主动存储服务绑定方案。实验采用了数据安全、数据压缩和图像处理应用作为案例,与软件处理方案(基于400MHz PowerPC440 处理器)进行了性能对比。结果表明,基于可重构计算的主动存储服务处理方案灵活、硬件资源占用较少,且可以极大地提升系统性能,并有效减小任务响应时间。