论文部分内容阅读
随着大数据应用日益普及,数据规模高速增长,对处理器性能提出巨大挑战。高通量众核处理器在运行速度、单位面积能耗以及扩展性方面的改进成为计算机体系结构领域的研究热点。由于芯片制造工艺复杂、成本高昂,软件模拟器作为体系结构研究的重要工具在研究的许多阶段中都发挥着非常重要的辅助作用。软件模拟器最重要的评价指标是模拟速度,尤其是在大规模众核结构模拟中,提高模拟速度至关重要。本文详细地分析了现有的模拟器加速技术,并将其归类为提高单条指令或指令块模拟速度的技术、减少被模拟指令数量的技术以及利用硬件平台的并行性和提高模拟算法的并发度的技术。在此基础上,本文提出以下两个方案进行对高通量众核处理器的模拟进行改进与优化。(1)基于优化单条指令或指令块的思路,本文提出使用查找表方法对指令译码进行加速。由于宿主机上拥有相对充足的内存资源,故可以将模拟器运行过程中需要反复进行的一些计算预先完成并将结果以表的形式保留在内存中,以后遇到同样的计算时,只进行一次查表操作即可。本文对译码过程中遇到的PopCount问题、条件域检查以及踪迹缓存等方面使用查找表技术进行加速。查找表技术的引入既提升了指令译码的模拟速度,又使得编码实现更加简洁灵活。(2)基于利用硬件模拟平台并行性和提高模拟算法并发度的思路,设计实现了从多个角度优化的并行离散事件模拟框架。首先,模拟框架采用随机映射的事件调度算法,显著提高了模拟过程中的负载均衡性;其次,框架采用cycle-by-cycle的时间推进算法消除了CMB同步算法中高额的同步开销,这得益于以红黑树结构对事件队列的管理;同时,框架基于单写者单读者模型实现未来事件队列的无锁化,避免了事件调度过程中的大量锁开销。最后,在模拟过程中,大数据负载中海量的离散数据访问请求表现为组件频繁的内存操作,本文选择内存池方案对其进行管理。内存池方案以少数几次大规模内存分配代替频繁的小规模内存申请和释放,回避了动态内存管理方案固有的操作延迟,内存操作效率提升显著。代表性的大数据应用包括单词计数(WordCount)、T级数据排序(TeraSort)以及模式匹配(KMP)被用于本文加速方案的性能评估。实验结果表明查找表方案将PopCount问题解决速度提高26.14倍,并行离散事件模拟框架的优化将总体性能提升3.94倍。