论文部分内容阅读
随着处理器进入“多核”时代,程序性能的提升已不能依赖单核性能增长,而转向程序并行性的开发。传统基于“锁”的并行编程机制因其编程困难、易死锁、扩展性差等缺点,成为并行程序性能提高的瓶颈。正是在这一背景下,事务内存作为一种新型的并行编程模型开始受到学术界和工业界的普遍关注,成为计算机系统结构领域研究的热点和前沿课题。 在对事务内存系统硬件实现的研究中,存在很多需要解决的问题。受限于片上资源,如何有效的进行数据维护一直是硬件事务内存研究的难点和热点。针对该问题,本文系统性地分析了相关的研究成果,在此基础上提出完整的解决方案。并结合国产高性能多核通用处理器的研发实践,对方案性能进行了评估。硬件事务内存系统中另一个研究热点是如何降低事务执行间的冲突,以提高系统性能。本文以此为出发点,对事务规模与数字签名中“误判”之间的关系、检测事务冲突的标准等一系列关键技术展开了研究,提出了相应的改进技术并评估了其性能。本文的主要贡献和创新点包括: 提出一种cache和tlb联合的硬件事务内存方案。该方案可有效支持大事务的执行和系统调用。对于无系统调用下的小事务执行,可以获得和传统cache方案一致的性能,对于大事务和系统调用下的执行,能够保证硬件执行性能的最大化。并结合国产高性能多核通用处理器平台龙芯3A8,分析了该方案的实施细节和对其性能进行了评估。实验结果表明,和传统的基于“锁”机制的并行编程模型相比,该方法最大可以提升系统性能达到4.77倍。 提出一种可以根据事务访存规模自适应调整冲突检测结构的方法。在该方法的提出过程中,首先针对基于数字签名的冲突检测中存在的“误报”问题,分析了事务规模对误报率的影响,进而阐述了根据事务规模调整数字签名硬件的可行性和具体实现方案。实验证明该方法能够显著减少冲突检测中误报的发生,和固定结构的冲突检测方法相比,该方法最多可以降低48.5%的误报率。 提出一种利用事务访存顺序信息检测冲突的方法。该方法从事务顺序一致性的角度出发,重新审视了事务冲突的定义,提出仅静态地从事务的读写集合关系中定义事务冲突会造成概念上的扩大化,应该结合事务读写集合元素的时间序对冲突进行判断。并以此为出发点,提出了具体的检测方法。实验证明新方法能够显著减小事务中冲突,将事务程序性能最大提升36.8%。