【技术实现步骤摘要】
本专利技术涉及多核微处理器领域,具体涉及一种面向多核微处理器的内存拷贝加速 方法及装置。
技术介绍
随着计算技术的高速发展,应用程序对微处理器的处理能力的要求越来越高。人 们通过提高处理器主频、采用超标量与多线程等技术来提高处理器内核的性能。然而,上述 技术已经逐渐不能满足处理器飞速发展的需要。时钟频率的不断提高意味着处理器功耗激 增和时钟同步越来越困难,主流处理器已经不再一味追求高主频。鉴于应用程序本身的并 行性往往存在一定的局限性,超标量与多线程等技术也将无法进一步提高处理器的性能。 处理器研究的重点逐渐转向在开发指令级与线程级并行的基础上进一步开发任务级并行, 先进的制造工艺也使得单片上能够集成更多的晶体管资源,多核微处理器应运而生。在多 核微处理器上,一个衬底上可以制造多个处理器内核。过去20多年来,处理器的性能以平均每年超过40%的速度增长,而存储器性能的 增速却低得多,平均每年增长只有约7%。多核处理器的每个核都可同时执行多个不同的进 程或线程,这些进程或线程都可能需要访问存储器,因此存储墙问题在多核时代更加严重。 如果存储器无法为处理器内核提供充足的数据,多核处理器资源将无法得到充分利用。提 高访存操作的性能成为多核处理器设计者日益关心的问题。一方面,可以通过研究多核处 理器的高速缓存等硬件结构以提高内核访存性能;另一方面,可以对一些广泛使用的访存 操作进行特殊优化。内存拷贝操作已经成为现代计算机系统中最为常见的一种操作。而许多应用程序 的性能直接或间接地依赖于内存拷贝操作的性能。TCP/IP协议及文件拷贝等应用程序一 般都包含大量的内存拷 ...
【技术保护点】
一种面向多核微处理器的内存拷贝加速方法,其特征在于实施步骤如下:1)在微处理器指令集中增加内存拷贝指令,所述内存拷贝指令包括普通内存拷贝指令、MPI点对点发送指令、MPI点对点接收指令、MPI群组发送指令和MPI群组接收指令;在微处理器中的指令执行流水线外部建立用于执行基于MPI通信的内存拷贝请求的MPI通信加速模块;2)将译码得到的内存拷贝指令转换成对应的内存拷贝请求,如果当前内存拷贝请求为普通内存拷贝请求时,分发给指令执行流水线中的内存拷贝单元并跳转执行步骤3);否则将内存拷贝请求分发给MPI通信加速模块并跳转执行步骤4);3)内存拷贝单元将内存拷贝请求缓存到请求队列中,并执行请求队列中的当前内存拷贝请求,以页为单位取回源数据并写入目的地址;4)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点对点...
【专利技术属性】
技术研发人员:郭御风,石伟,张明,窦强,龚锐,邓宇,任巨,马爱永,罗莉,王永文,
申请(专利权)人:中国人民解放军国防科学技术大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。