论文部分内容阅读
近年来,集成电路工艺得到了巨大发展,使得在单芯片上集成多个处理器核来完成更复杂、更大型的计算任务成为可能。多核处理器分为同构多核处理器和异构多核处理器,异构多核处理器中集成了多个架构不同的处理器核,不同架构的处理器核处理工作任务中不同类型的操作。相比同构多核处理器,异构多核处理器在特定应用领域能发挥出更高的效能。异构多核处理器的出现为高性能计算带来契机,但其底层的异构以及多级的存储层次给编程者带来困难,异构系统中的编程问题成为制约异构系统发展的重要瓶颈。本文首先分析了异构编程困难的几方面因素,然后介绍了近年来学术界和业界在研究异构编程方面所取得的研究成果,但异构多核系统中的不同处理器核通常有着不同的体系结构和性能优化模型,很难设计一种通用的异构编程策略适用于各种异构平台。围绕着异构编程问题,本文研究内容和工作包括:(1)概述了异构多核处理器中的抽象模型、互连通信、存储结构以及程序执行模型。(2)分析了主从式单边异构结构的处理器特性,引入功能卸载编程模型,采用一种基于编程语言扩展关键字的方式描述异构特性,以实现异构多核代码的统一编程,同时提出了统一编程方式下异构多核代码的分开编译方法,并设计实现了分开编译系统。(3)研究了异构多核间的通信设计。基于片上共享内存的特性,设计了内存管理机制实现异构多核间数据的传递;利用核间中断机制来实现多核之间的同步,自旋锁机制实现共享内存数据的互斥访问;最后在分析目标文件的基础上,设计了一个从核可执行程序的加载器。(4)设计了两个测试方案验证分开编译系统的设计,包括编译处理测试和功能测试。通过了测试验证,符合预期设计。面向异构多核处理器的统一编程,通过分开编译系统分离异构多核代码,并分别编译,同时提供隐式的数据传递和同步机制,屏蔽处理器异构带来的差异,有效提升了异构系统的可用性,提高了程序员开发效率。