论文部分内容阅读
随着万物互联的飞速发展,数十亿到数百亿的物联网边缘设备接入网络,产生了规模巨大的数据。面对海量的数据时,采用集中式计算、存储和传输的云计算模式面临着实时性不够、带宽不足、能耗巨大以及安全隐私等问题。通过将云端的计算存储能力下沉到网络边缘,边缘计算应运而生,旨在满足实时业务、数据优化、智能服务、安全隐私等行业需求。边缘计算拥有更小的响应时延、更低的带宽成本及更高的安全性,受到了学术界和企业界的密切关注。多家企业和组织发起成立了边缘计算联盟,通过与多家产业应用联盟深入合作,推动了边缘计算在智慧城市、在线直播、自动驾驶、智能制造等诸多领域的广泛应用。面对日益增加的数据规模以及人工智能等算力需求倍增的处理任务,相比于云计算中心的服务器集群,空间、能源受限以及存算能力有限的边缘侧面临着巨大的挑战。如何构建低功耗、高效率的边缘节点,高效实时地完成数据处理任务、实现多样化数据的存储和快速访问,是一个亟待研究的问题。非易失存储(Non-volatile Memory,NVM),相较于传统的静态随机存储及动态随机存储,拥有存储密度高、数据掉电不丢失、可扩展性好以及静态功耗低等特性。上述优良特性为边缘计算节点的存储容量提升和计算效能改善提供契机。一方面,非易失存储广泛服务于存储系统,构建非易失的缓存、主存、外存以及混合存储,提高存储密度,减少数据存储的漏电功耗及刷新功耗等开销。另一方面,非易失存储技术还应用于存内计算和非易失计算领域,减少数据的迁移,降低运算过程的能耗。然而,非易失存储也存在着读写不对称、写延迟高和寿命有限等问题,直接将非易失存储应用于边缘节点会带来性能降低、使用期限变短等不利影响。本文将探讨合理应用非易失存储技术,围绕改善边缘节点的存储性能以及提高边缘数据处理效能进行研究,推动边缘计算广泛应用和持久发展。首先,本文在基于非易失存储的高效能存储系统方面展开研究。现有的非易失存储器研究多采用仿真器或者基于单片小容量的NVM芯片,无法有效地从系统级研究非易失内外存特性以及混合存储特性。为应对边缘计算应用中多样化的存储需求,设计了基于SoC-FPGA的阵列式非易失存储架构。非易失存储架构由主FPGA系统、从FPGA阵列以及高速互联通道构成。基于FPGA的可重构特性,从FPGA阵列构建各种存储器接口及测试单元,实现多种非易失存储器器件级的性能测试和功耗评估。通过在主SOC-FPGA系统中部署操作系统以及存储管理单元,配合与从FPGA阵列高速连通的数据通道,此架构将满足非易失存储系统的性能测试和功耗评估以及混合存储管理方案验证需求。随后,依据所提出的非易失存储架构,完成了由SoC-FPGA和磁性随机存储器(Magnetic Random Access Memory,MRAM)组成的阵列式硬件原型设计,构建了基于MRAM的软硬协同可扩展性存储系统。在该系统中,本文设计了片上和板级一体化的总线网络互联多级FPGA,不仅实现低时延高带宽数据传输,还支持灵活的存储层次扩展和存储容量扩充。基于类IOZone的Benchmark实验表明,本文提出的多层次存储架构在提供高速读写的同时,具备良好的可扩展性,为构建高速可靠的边缘计算存储系统提供有力支撑。其次,为满足非结构化的数据存储与快速访问,键值存储(Key-Value Store,KVS)适合用作缓存层提升边缘系统的数据访问速度并有效减少系统能耗。Murmurhash,作为Memcached和RedisEdge等主流KVS流式处理框架中的核心运算,其执行速度的提升将加快存储内容的查询速度。为此,提出了基于FPGA的并行化策略与局部动态可重构技术相结合的Murmurhash2加速方法。首先,以降低延迟和提升带宽为目标,评估了 FPGA中各种逻辑与运算单元的特点,设计了Murmurhash2内部数学操作的优化实现。然后,针对Murmurhash2运算流程提出流水线和并行相结合的计算架构,并根据负载的情形设计以性能为目标的计算核心和以资源开销为目标的计算核心。最后,引入局部动态可重构策略依据负载情形动态切换两种计算核心进一步提升能效比。此外,在采用FPGA加速的KVS系统中,FPGA的片上存储(Block RAM,BRAM)单元,不仅用于缓存哈希表的热数据,也作为KVS通信环节包处理单元的缓存。非易失存储为FPGA的片上存储BRAM带来了高存储密度和低功耗的特性,极大的提升FPGA存储系统中缓存的容量和降低额外数据交换能耗开销。与此同时,非易失存储所带来的寿命问题也不可忽视。传统均衡损耗算法以及基于BRAM块的均衡损耗算法都带来了极大的性能开销,本文通过探究片上存储块内字层次的写入分布,提出基于字层次的细粒度性能感知的均衡损耗算法。通过在BRAM地址线和可重构布线资源间插入Crossbar,灵活配置逻辑地址线和BRAM的译码引脚的映射关系,实现了逻辑的热字到物理上的冷字的映射以及逻辑上冷字到物理上的热字的映射,从而在BRAM块内的物理字层次上达到均衡损耗。为实现逻辑字和物理字的灵活映射,本文建立了基于Crossbar的地址线重映射模型,并提出了相应的性能感知的地址线映射算法。与传统的均衡损耗以及基于BRAM块的均衡损耗算法相比,将性能感知的地址线映射算法引入布局阶段后,精细的粒度提升了布局阶段的灵活性,增加找到更短的关键路径的可能性,改善因提升寿命而带来的性能降低。在探究如何应用非易失存储改善边缘侧存储及缓存方面效能的同时,本文还进一步探索基于非易失存储技术构建高效能的计算核心。在异构计算是边缘侧典型的计算架构,包含CPU、GPU和FPGA等计算核心。相比于CPU、GPU等其他核心,FPGA具有并行度高、数据局部性好以及可重构等特性。然而,随着FPGA的容量的提升,主流的基于SRAM的FPGA面临着漏电流功耗高,掉电逻辑丢失以及可扩展性等问题。非易失存储技术引入FPGA中不仅优化了 FPGA的功耗还提升FPGA的逻辑密度。除了漏电功耗低,容量大以及掉电非易失特性,非易失存储还支持每个存储位存储多个数据(Multi-level Cell,MLC)。MLC特性可显著提高存储容量,也会带来更大的读写延迟和动态功耗等问题。本文研究如何在非易失FPGA的逻辑运算单元引入MLC进一步提升计算系统效能。一方面,MLC的引入会提升逻辑容量,减少面积开销以及逻辑互连长度,从而减少布线延迟。另一方面,MLC中的硬位(hard bit)会带来更高的读延迟,从而增加逻辑单元的延迟。综合考虑以上两个方面,本文采用MLC替换可配置逻辑块(Configurable Logic Block,CLB)结构里查找表中的(Single-level Cell,MLC)存储单元作为基准,探究引入MLC后带来的结构与工作特性改变。然后,从输入、输出和工作模式等多个角度进行可配置逻辑块结构的设计空间探索,并从延迟、面积开销以及漏电功耗等方面评估所提出的各种结构的特性,为低延迟、高效能的FPGA设计提供参考。此外,传统的综合流程在将应用电路映射到基于MLC的FPGA时,无法充分考虑MLC的特性,带来关键路径延迟的增加。为此,围绕MLC引入的高逻辑容量以及硬位带来的高延迟,本文提出了 MLC感知的性能驱动的打包算法。一方面,通过基于关键度的适应性检测方法减少关键路径和接近关键路径上硬位的使用,从而提升性能。另一方面,通过动态权值调整方法将非关键路径映射到更少的逻辑簇以提高逻辑使用率,从而减少面积开销。与基于SRAM的FPGA和基于SLC的非易失FPGA相比较,本文设计的基于MLC的逻辑架构配合MLC感知的打包算法在显著降低静态功耗的同时,提高非易失FPGA的性能并减少FPGA的面积开销。