面向多核微处理器的内存拷贝加速方法及装置制造方法及图纸

技术编号:8532486 阅读:219 留言:0更新日期:2013-04-04 15:16
本发明专利技术公开一种面向多核微处理器的内存拷贝加速方法及装置,方法步骤如下:在微处理器指令集中增加内存拷贝指令和MPI通信加速模块,识别译码得到的内存拷贝请求类型,将普通内存拷贝请求分发给内存拷贝单元,将MPI群组通信请求或MPI点对点通信请求分发给MPI通信加速模块,MPI通信加速模块合并执行关联的内存拷贝请求以提高内存拷贝的性能以及执行效率;装置包括译码单元、内存拷贝单元、相关检测部件和用于执行组成MPI群组通信或MPI点对点通信的内存拷贝请求的MPI通信加速模块。本发明专利技术具有内存拷贝效率高、多核优化性能好、硬件设计复杂度低、兼容性好、功耗低、硬件实现简单的优点。

【技术实现步骤摘要】

本专利技术涉及多核微处理器领域,具体涉及一种面向多核微处理器的内存拷贝加速 方法及装置。
技术介绍
随着计算技术的高速发展,应用程序对微处理器的处理能力的要求越来越高。人 们通过提高处理器主频、采用超标量与多线程等技术来提高处理器内核的性能。然而,上述 技术已经逐渐不能满足处理器飞速发展的需要。时钟频率的不断提高意味着处理器功耗激 增和时钟同步越来越困难,主流处理器已经不再一味追求高主频。鉴于应用程序本身的并 行性往往存在一定的局限性,超标量与多线程等技术也将无法进一步提高处理器的性能。 处理器研究的重点逐渐转向在开发指令级与线程级并行的基础上进一步开发任务级并行, 先进的制造工艺也使得单片上能够集成更多的晶体管资源,多核微处理器应运而生。在多 核微处理器上,一个衬底上可以制造多个处理器内核。过去20多年来,处理器的性能以平均每年超过40%的速度增长,而存储器性能的 增速却低得多,平均每年增长只有约7%。多核处理器的每个核都可同时执行多个不同的进 程或线程,这些进程或线程都可能需要访问存储器,因此存储墙问题在多核时代更加严重。 如果存储器无法为处理器内核提供充足的数据,多核处理器资源将无法得到充分利用。提 高访存操作的性能成为多核处理器设计者日益关心的问题。一方面,可以通过研究多核处 理器的高速缓存等硬件结构以提高内核访存性能;另一方面,可以对一些广泛使用的访存 操作进行特殊优化。内存拷贝操作已经成为现代计算机系统中最为常见的一种操作。而许多应用程序 的性能直接或间接地依赖于内存拷贝操作的性能。TCP/IP协议及文件拷贝等应用程序一 般都包含大量的内存拷贝操作,其整体性能也很大程度上由其中内存拷贝操作所花费的时 间所决定。一些操作系统函数也同样需要内存拷贝操作的支持,如虚拟内存管理、页管理、 缓存管理及进程通信等。此外,消息传递通信模型已经逐渐应用于多核微处理器,而消息传 递协议(下文中简称为MPI)往往由两次内存拷贝操作实现。在传统的计算机系统中,内存拷贝操作一般由一系列的访存指令Load/Store组 成。在内存拷贝过程中,Load/Store指令一直占有处理器资源,阻塞后续指令执行。每条 Load/Store指令都需要首先访问快表(TLB)以将指令中的虚地址转换为实地址,然后再访 问私有高速缓存(Cache)。也就是说,一次Load/Store操作都需要访问一次TLB和访问一 次私有高速缓存,功耗及性能开销较大。为了提高内存拷贝的效率,DMA技术被应用于大数 据块拷贝。但是这种基于DMA的内存拷贝技术仍存在一定的缺点,如(1)DMA设备往往需要 较长的启动时间,(2)在拷贝结束以后需要通过中断通知内核,(3)需要操作系统的支持。无论上述哪种内存拷贝实现方法,都存在性能相对较低的问题。此外,这些内存拷 贝实现方法主要针对单核微处理器中的内存拷贝操作,而没有给出多核微处理器中内存拷 贝操作的优化方法。总之,随着体系结构与制造工艺的不断发展,处理器内核与存储器带宽之间的性能差距正在不断加大,需要频繁访存的内存拷贝操作的性能制约了多核处理器整体性能的提高;另一方面,内存拷贝操作广泛存在于各种操作系统程序及用户程序之中。上述这种内存拷贝的重要性及其性能的低效性促使研究面向多核微处理器的内存拷贝加速方法及装置成为一种必然。
技术实现思路
本专利技术要解决的技术问题是提供一种内存拷贝效率高、多核优化性能好、硬件设计复杂度低、兼容性好、功耗低、硬件实现简单的面向多核微处理器的内存拷贝加速方法及>J-U ρ α装直。为了解决上述技术问题,本专利技术采用的技术方案为一种面向多核微处理器的内存拷贝加速方法,实施步骤如下1)在微处理器指令集中增加内存拷贝指令,所述内存拷贝指令包括普通内存拷贝指令、MPI点对点发送指令、MPI点对点接收指令、MPI群组发送指令和MPI群组接收指令;在微处理器中的指令执行流水线外部建立用于执行基于MPI通信的内存拷贝请求的MPI通信加速模块;2)将译码得到的内存拷贝指令转换成对应的内存拷贝请求,如果当前内存拷贝请求为普通内存拷贝请求时,分发给指令执行流水线中的内存拷贝单元并跳转执行步骤3);否则将内存拷贝请求分发给MPI通信加速模块并跳转执行步骤4);3 )内存拷贝单元将内存拷贝请求缓存到请求队列中,并执行请求队列中的当前内存拷贝请求,以页为单位取回源数据并写入目的地址;4) MPI通信加速模块将内存拷贝请求缓存到请求队列中,并执行请求队列中的当前内存拷贝请求;如果当前内存拷贝请求为MPI点对点发送请求,则获取与当前内存拷贝请求组成点对点通信的关联MPI点对点接收请求,执行当前内存拷贝请求以页为单位取回源数据并存储到共享缓存中,同时将共享缓存中的已经就绪的数据页以页为单位写入关联MPI 点对点接收请求的目的地址中,最终完成MPI点对点发送请求和MPI点对点接收请求的执行;如果当前内存拷贝请求为MPI群组发送请求,则获取与当前内存拷贝请求组成群组通信的MPI群组接收请求,然后执行当前内存拷贝请求以页为单位取回源数据并存储到共享缓存中,同时将共享缓存中的已经就绪的数据页以页为单位分别写入各个MPI群组接收请求的目的地址中,最终完成MPI群组发送请求和MPI群组接收请求的执行。作为本专利技术上述面向多核微处理器的内存拷贝加速方法技术方案的进一步改进:所述步骤3)的详细步骤如下3.O内存拷贝单元将内存拷贝请求缓存到请求队列中;3.2)内存拷贝单元执行请求队列中的当前内存拷贝请求,将当前内存拷贝请求中的目的地址、拷贝长度与内存拷贝 单元的请求队列中其它内存拷贝指令的源地址、拷贝长度进行比较,如果所述目的地址和所述源地址相同且拷贝长度相同则判定为两者具有数据相关关系;3.3)判断当前内存拷贝请求是否存在具有数据相关关系的关联内存拷贝请求,如果不存在则执行当前内存拷贝请求以页为单位取回源数据并写入目的地址,否则跳转执行步骤3.4);3.4)首先从请求队列中获取与当前内存拷贝请求具有数据相关关系的关联内存拷贝 指令,然后执行当前内存拷贝指令以页为单位取回源数据并写入目的地址,同时将已读取 的数据页写入关联内存拷贝请求的目的地址中,最终完成当前内存拷贝请求及其关联内存 拷贝请求的执行。所述内存拷贝单元的请求队列和MPI通信加速模块的请求队列中的每一项均由 源地址、目的地址、拷贝长度、拷贝类型、源地址’、目的地址’与拷贝长度’组成,其中源地 址、目的地址、拷贝长度、拷贝类型分别对应内存拷贝指令中的源地址、目的地址、拷贝长 度、拷贝类型;所述源地址’表示此次内存拷贝过程中还未完成的源内存区域的起始地址、 所述目的地址’表示还未完成的源内存区域的目的内存区域的起始地址、所述拷贝长度’表 示还未完成的源内存区域的待拷贝长度,所述源地址’、目的地址’与拷贝长度’的初始值分 别为内存拷贝指令中的源地址、目的地址与拷贝长度;所述将源数据拷贝到共享缓存中时, 一并将当前页拷贝信息存储在页拷贝状态表中,所述页拷贝状态表的每一项由源页起始地 址、目的页起始地址和拷贝长度组成。所述步骤4)的详细步骤包括4.DMPI通信加速模块将内存拷贝请求缓存到请求队列中;4. 2) MPI通信加速模块执行请求队列中的当前内存拷贝请求,当MP本文档来自技高网
...

【技术保护点】
一种面向多核微处理器的内存拷贝加速方法,其特征在于实施步骤如下:1)在微处理器指令集中增加内存拷贝指令,所述内存拷贝指令包括普通内存拷贝指令、MPI点对点发送指令、MPI点对点接收指令、MPI群组发送指令和MPI群组接收指令;在微处理器中的指令执行流水线外部建立用于执行基于MPI通信的内存拷贝请求的MPI通信加速模块;2)将译码得到的内存拷贝指令转换成对应的内存拷贝请求,如果当前内存拷贝请求为普通内存拷贝请求时,分发给指令执行流水线中的内存拷贝单元并跳转执行步骤3);否则将内存拷贝请求分发给MPI通信加速模块并跳转执行步骤4);3)内存拷贝单元将内存拷贝请求缓存到请求队列中,并执行请求队列中的当前内存拷贝请求,以页为单位取回源数据并写入目的地址;4)MPI通信加速模块将内存拷贝请求缓存到请求队列中,并执行请求队列中的当前内存拷贝请求;如果当前内存拷贝请求为MPI点对点发送请求,则获取与当前内存拷贝请求组成点对点通信的关联MPI点对点接收请求,执行当前内存拷贝请求以页为单位取回源数据并存储到共享缓存中,同时将共享缓存中的已经就绪的数据页以页为单位写入关联MPI点对点接收请求的目的地址中,最终完成MPI点对点发送请求和MPI点对点接收请求的执行;如果当前内存拷贝请求为MPI群组发送请求,则获取与当前内存拷贝请求组成群组通信的MPI群组接收请求,然后执行当前内存拷贝请求以页为单位取回源数据并存储到共享缓存中,同时将共享缓存中的已经就绪的数据页以页为单位分别写入各个MPI群组接收请求的目的地址中,最终完成MPI群组发送请求和MPI群组接收请求的执行。...

【技术特征摘要】
1.一种面向多核微处理器的内存拷贝加速方法,其特征在于实施步骤如下1)在微处理器指令集中增加内存拷贝指令,所述内存拷贝指令包括普通内存拷贝指令、MPI点对点发送指令、MPI点对点接收指令、MPI群组发送指令和MPI群组接收指令;在微处理器中的指令执行流水线外部建立用于执行基于MPI通信的内存拷贝请求的MPI通信加速模块;2)将译码得到的内存拷贝指令转换成对应的内存拷贝请求,如果当前内存拷贝请求为普通内存拷贝请求时,分发给指令执行流水线中的内存拷贝单元并跳转执行步骤3);否则将内存拷贝请求分发给MPI通信加速模块并跳转执行步骤4);3 )内存拷贝单元将内存拷贝请求缓存到请求队列中,并执行请求队列中的当前内存拷贝请求,以页为单位取回源数据并写入目的地址;4) MPI通信加速模块将内存拷贝请求缓存到请求队列中,并执行请求队列中的当前内存拷贝请求;如果当前内存拷贝请求为MPI点对点发送请求,则获取与当前内存拷贝请求组成点对点通信的关联MPI点对点接收请求,执行当前内存拷贝请求以页为单位取回源数据并存储到共享缓存中,同时将共享缓存中的已经就绪的数据页以页为单位写入关联MPI 点对点接收请求的目的地址中,最终完成MPI点对点发送请求和MPI点对点接收请求的执行;如果当前内存拷贝请求为MPI群组发送请求,则获取与当前内存拷贝请求组成群组通信的MPI群组接收请求,然后执行当前内存拷贝请求以页为单位取回源数据并存储到共享缓存中,同时将共享缓存中的已经就绪的数据页以页为单位分别写入各个MPI群组接收请求的目的地址中,最终完成MPI群组发送请求和MPI群组接收请求的执行。2.根据权利要求1所述的面向多核微处理器的内存拷贝加速方法,其特征在于,所述步骤3)的详细步骤如下3.O内存拷贝单元将内存拷贝请求缓存到请求队列中;3.2)内存拷贝单元执行请求队列中的当前内存拷贝请求,将当前内存拷贝请求中的目的地址、拷贝长度与内存拷贝单元的请求队列中其它内存拷贝指令的源地址、拷贝长度进行比较,如果所述目的地址和所述源地址相同且拷贝长度相同则判定为两者具有数据相关关系;3. 3)判断当前内存拷贝请求是否存在具有数据相关关系的关联内存拷贝请求,如果不存在则执行当前内存拷贝请求以页为单位取回源数据并写入目的地址,否则跳转执行步骤 3.4);3.4)首先从请求队列中获取与当前内存拷贝请求具有数据相关关系的关联内存拷贝指令,然后执行当前内存拷贝指令以页为单位取回源数据并写入目的地址,同时将已读取的数据页写入关联内存拷贝请求的目的地址中,最终完成当前内存拷贝请求及其关联内存拷贝请求的执行。3.根据权利要求1或2所述的面向多核微处理器的内存拷贝加速方法,其特征在于 所述内存拷贝单元的请求队列和MPI通信加速模块的请求队列中的每一项均由源地址、目的地址、拷贝长度、拷贝类型、源地址’、目的地址’与拷贝长度’组成,其中源地址、目的地址、拷贝长度、拷贝类型分别对应内存拷贝指令中的源地址、目的地址、拷贝长度、拷贝类型;所述源地址’表示此次内存拷贝过程中还未完成的源内存区域的起始地址、所述目的地址’表示还未完成的源内存区域的目的内存区域的起始地址、所述拷贝长度’表示还未完成的源内存区域的待拷贝长度,所述源地址’、目的地址’与拷贝长度’的初始值分别为内存拷贝指令中的源地址、目的地址与拷贝长度;所述将源数据拷贝到共享缓存中时,一并将当前页拷贝信息存储在页拷贝状态表中,所述页拷贝状态表的每一项由源页起始地址、目的页起始地址和拷贝长度组成。4.根据权利要求1所述的面向多核微处理器的内存拷贝加速方法,其特征在于,所述步骤4)的详细步骤包括 4.1) MPI通信加速模块将内存拷贝请求缓存到请求队列中; 4.2) MPI通信加速模块执行请求队列中的当前内存拷贝请求,当MPI点对点发送请求处于MPI通信加速模块中请求队列的队列头部时,得到服务并跳转执行步骤4. 3);当MPI群组发送请求处于MPI通信加速模块中请求队列的队列头部时,得到服务并跳转执行步骤4. 7); 4.3)将MPI点对点发送请求的目的地址、拷贝长度与请求队列中内存拷贝请求的源地址、拷贝长度分别进行比较,如果MPI点对点发送请求的目的地址与请求队列中内存拷贝请求的源地址相同且两者的拷贝长度相同,则判定该内存拷贝请求为与所述MPI点对点发送请求组成点对点通信的MPI点对点接收请求,使MPI点对点接收请求同时得到服务; 4.4)将MPI点对点发送请求分解为页拷贝; 4.5)依次执行页拷贝从MPI点对点发送请求的源地址中取回源数据并缓存到共享缓存中,同时将取回的源数据页写入MPI点对点接收请求的目的地址中,修改MPI点对点接收源数据的拷贝长度’,使MPI点对点...

【专利技术属性】
技术研发人员:郭御风石伟张明窦强龚锐邓宇任巨马爱永罗莉王永文
申请(专利权)人:中国人民解放军国防科学技术大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1