面向众核处理器访存和片内通信的数据传输方法与装置与流程

文档序号:19737708发布日期:2020-01-18 04:44阅读:346来源:国知局
面向众核处理器访存和片内通信的数据传输方法与装置与流程

本发明属于计算机体系结构与处理器微结构设计领域,涉及面向众核处理器访存和片内通信的数据传输方法与装置。



背景技术:

随着半导体技术的发展,芯片的集成度越来越高。众核处理器通常集成有成百上千个核心,与传统处理器采用主存+多级cache结构相比,相当多的众核处理器采用了主存+片内局部存储器的存储层次结构,对于此类众核处理器,需要程序员显示的控制主存和局部存储器间的数据传输,在数据传输的同时进行计算操作,因此需要利用dma技术进行主存和片内局存间的数据传输。与众核处理器的计算能力相比,其可以获得的访存带宽相比有限,面临着更为严重的“存储墙”问题,一方面可以采用高带宽访存等新技术提升其基础访存能力,另一面可以利用片上网络在核心间共享数据,实现更大规模的数据复用,减少访存请求。

如何更加有效的实现片内数据复用减少访存需求,是众核处理器设计面临的一项难题。常规的做法,核心通常可以利用ld/st指令从不同核心内逐个获取新的数据,实现更多的数据复用,但是由于众核核心数量较多,不同核心间访问延迟差异较大,通常为几十或者上百节拍,在获得新的数据前,核心只能等待,严重制约了众核处理器计算能力的发挥。



技术实现要素:

本发明针对现有的技术存在的上述问题,提供面向众核处理器访存和片内通信的数据传输方法与装置,本发明所要解决的技术问题是:如何提供可以使众核核心与内存间的批量数据传输(dma)、众核核心间的批量数据传输(rma)并行实现以减少了硬件逻辑开销的面向众核处理器访存和片内通信的数据传输方法与装置。

本发明的目的可通过下列技术方案来实现:

面向众核处理器访存和片内通信的数据传输方法,包括如下步骤:

s1:通道指令缓冲单元获取1或多个源核心处理器发出的通道指令;

s2:从通道指令缓冲单元内抽取dma通道指令或者rma通道指令;

s3:从dma通道指令中解析dma微访问,并将dma微访问发送至内存,从rma通道指令中解析rma微访问发送至目标核心处理器中;

s4:获取内存返回的应答或者目标核心处理器返回的应答后发起回答字操作。

优选的,步骤s2中具体包括在获取从通道指令缓冲单元内抽取dma通道指令或者rma通道指令的抽取请求时通道状态寄存器组进行统一分配以分别获取dma通道指令或者rma通道指令,然后分别将dma通道指令派发至dma拆分站、将rma通道指令派发至rma拆分站,步骤s3中dma拆分站对dma通道指令进行拆分处理以解析dma微访问,rma拆分站对rma通道指令进行拆分处理以解析rma微访问。

优选的,步骤s4中具体包括获取内存返回的应答或者目标核心处理器返回的应答后实时更新内部状态的通道状态寄存器组,当通道状态寄存器收齐全部应答后发起回答字操作,回答字操作为在源核心处理器或者目标核心处理器的局部存储器内设置标志。

优选的,dma拆分站拆分dma通道指令和rma拆分站拆分通道指令并发进行。

优选的,在获取dma通道指令或者rma通道指令后根据通道指令的操作类型和指令先后顺序进行仲裁以分别将dma通道指令派发至dma拆分站、将rma通道指令派发至rma拆分站,在解析dma微访问或者rma微访问后根据微访问的操作类型和先后顺序进行仲裁以分别将dma微访问发送至内存、将rma微访问发送至目标核心处理器中。

优选的,还包括用以改变通道指令流方向的通道栏栅指令集,所述通道栏栅指令集包括dma栏栅指令、rma栏栅指令、全栏栅指令,在收到dma栏栅指令后确定之前dma通道指令发起的传输完成后继续执行后续dma通道指令、在收到rma栏栅指令后确定之前收到的rma通道指令发起的传输完成后继续执行后续rma通道指令、在收到全栏栅指令确定之前收到的dma指令或者rma指令发起的传输完成后继续执行后续的dma指令或者rma指令。

优选的,拆分出的dma微访问或者rma微访问轮转或者按权重通过片上网络进行并行转发以将dma微访问发送至内存、将rma微访问发送至目标核心处理器。

面向众核处理器访存和片内通信的数据传输装置,用以分别在源核心处理器、内存和源核心处理器、目标核心处理器之间进行数据传输,包括用以接收并存储源核心处理器发出的dma通道指令或者rma通道指令的通道指令缓冲单元、用以从通道指令缓冲单元内抽取dma通道指令或者rma通道指令的通道指令抽取单元、用以从dma通道指令中拆分出dma微访问并将dma微访问发送至内存、从rma通道指令中拆分出rma微访问并将rma微访问发送至目标核心处理器的通道指令拆分单元和用以接收通道指令抽取单元抽取的dma通道指令或者rma通道指令并将dma通道指令、rma通道指令发送至通道指令拆分单元的通道指令分配单元,所述内存接收dma微访问后给通道指令分配单元发出应答,所述目标核心处理器接收rma微访问后给通道指令分配单元发出应答,所述通道指令分配单元在获取内存返回的应答或者目标核心处理器返回的应答后在源核心处理器或者目标核心处理器的局部存储器内设置标志。

优选的,所述通道指令拆分单元包括用以从dma通道指令中拆分出dma微访问并将dma微访问发送至内存的dma拆分站、从rma通道指令中拆分出rma微访问并将rma微访问发送至内存的rma拆分站。

优选的,还包括用以给通道指令缓冲单元发出改变通道指令流方向的通道栏栅指令集的栏栅指令集管理单元,所述通道栏栅指令集包括dma栏栅指令、rma栏栅指令、全栏栅指令,所述通道指令缓冲单元在收到栏栅指令集管理单元发出的dma栏栅指令后确定之前dma通道指令发起的传输完成后继续执行后续dma通道指令、在收到栏栅指令集管理单元发出的rma栏栅指令后确定之前收到的rma通道指令发起的传输完成后继续执行后续rma通道指令、在收到栏栅指令集管理单元发出的全栏栅指令确定之前收到的dma指令或者rma指令发起的传输完成后继续执行后续的dma指令或者rma指令。

本发明中通道指令缓冲单元获取1或多个源核心处理器发出的通道指令,通道缓冲单元可以缓存多个通道指令,然后从通道指令缓冲单元内抽取dma通道指令或者rma通道指令,接着从dma通道指令中解析dma微访问,并将dma微访问发送至内存,从rma通道指令中解析rma微访问发送至目标核心处理器中,最后在获取内存返回的应答或者目标核心处理器返回的应答后发起回答字操作,既可以实现了源核心处理器、内存件的批量数据传输(dma),又可以实现核心处理器之间的批量数据传输(rma),减少了硬件逻辑开销,实现高效的实现片内数据复用,提升众核处理器的计算能力。

附图说明

图1是本发明的流程示意图;

图2是应用本发明中的装置时的两种数据传输过程的结构示意图;

图3是本发明中的装置的结构示意图。

具体实施方式

以下是本发明的具体实施例并结合附图,对本发明的技术方案作进一步的描述,但本发明并不限于这些实施例。

请参阅图1,本实施例中的面向众核处理器访存和片内通信的数据传输方法,包括如下步骤:

s1:通道指令缓冲单元获取1或多个源核心处理器发出的通道指令;

s2:从通道指令缓冲单元内抽取dma通道指令或者rma通道指令;

s3:从dma通道指令中解析dma微访问,并将dma微访问发送至内存,从rma通道指令中解析rma微访问发送至目标核心处理器中;

s4:获取内存返回的应答或者目标核心处理器返回的应答后发起回答字操作。

此处,通道指令缓冲单元获取1或多个源核心处理器发出的通道指令,通道缓冲单元可以缓存多个通道指令,然后从通道指令缓冲单元内抽取dma通道指令或者rma通道指令,接着从dma通道指令中解析dma微访问,并将dma微访问发送至内存,从rma通道指令中解析rma微访问发送至目标核心处理器中,最后在获取内存返回的应答或者目标核心处理器返回的应答后发起回答字操作,既可以实现了源核心处理器、内存件的批量数据传输(dma),又可以实现核心处理器之间的批量数据传输(rma),减少了硬件逻辑开销,实现高效的实现片内数据复用,提升众核处理器的计算能力。通道指令定义了本次批量传输操作的类型、传输长度、源目标方地址、访问模式、回答字地址等诸多参数。源核心处理器发送完通道指令后,便可以执行计算任务。

步骤s2中可以具体包括在获取从通道指令缓冲单元内抽取dma通道指令或者rma通道指令的抽取请求时通道状态寄存器组进行统一分配以分别获取dma通道指令或者rma通道指令,然后分别将dma通道指令派发至dma拆分站、将rma通道指令派发至rma拆分站,步骤s3中dma拆分站对dma通道指令进行拆分处理以解析dma微访问,rma拆分站对rma通道指令进行拆分处理以解析rma微访问。在获取从通道指令缓冲单元内抽取dma通道指令或者rma通道指令的抽取请求时通道状态寄存器组交替进行传输通道号的统一分配,获得传输通道号的指令,根据其操作类型派发通道指令到专用的dma拆分站台或rma拆分站台进行并行拆分处理。

步骤s4中可以具体包括获取内存返回的应答或者目标核心处理器返回的应答后实时更新内部状态的通道状态寄存器组,当通道状态寄存器收齐全部应答后发起回答字操作,回答字操作为在源核心处理器或者目标核心处理器的局部存储器内设置标志。通过查询局部存储器的回答字地址(该地址可在通道指令中进行指定),判断该次或以往多次数据传输是否完成。

dma拆分站拆分dma通道指令和rma拆分站拆分通道指令并发进行,实现两种数据传输的并发执行,提高了传输效率。

在获取dma通道指令或者rma通道指令后根据通道指令的操作类型和指令先后顺序进行仲裁以分别将dma通道指令派发至dma拆分站、将rma通道指令派发至rma拆分站,在解析dma微访问或者rma微访问后根据微访问的操作类型和先后顺序进行仲裁以分别将dma微访问发送至内存、将rma微访问发送至目标核心处理器中。

作为本实施例中的面向众核处理器访存和片内通信的数据传输方法还可以包括用以改变通道指令流方向的通道栏栅指令集,通道栏栅指令集包括dma栏栅指令、rma栏栅指令、全栏栅指令,在收到dma栏栅指令后确定之前dma通道指令发起的传输完成后继续执行后续dma通道指令、在收到rma栏栅指令后确定之前收到的rma通道指令发起的传输完成后继续执行后续rma通道指令、在收到全栏栅指令确定之前收到的dma指令或者rma指令发起的传输完成后继续执行后续的dma指令或者rma指令,在这三种栏栅指令的控制下,装置可以控制两种数据数据流间以及每种数据流的传输顺序,为众核处理器实现不同的通信模型提供底层支持。实现上述两种数据传输的并发执行,在配套的通道指令控制下,可以控制两种传输的传输顺序、实现两者的嵌套混合运行。最终实现源核心处理器与目标核心处理器间数据传输、源核心处理器与内存之间数据传输两者间的完全并行,实现高效的实现片内数据复用,提升众核处理器的计算能力。

拆分出的dma微访问或者rma微访问轮转或者按权重通过片上网络进行并行转发以将dma微访问发送至内存、将rma微访问发送至目标核心处理器。通过按照先后顺序轮转或者优先级的顺序,权重从大至小进行并行转发。

请参阅图2和图3,面向众核处理器访存和片内通信的数据传输装置,用以分别在源核心处理器、内存和源核心处理器、目标核心处理器之间进行数据传输,包括用以接收并存储源核心处理器发出的dma通道指令或者rma通道指令的通道指令缓冲单元、用以从通道指令缓冲单元内抽取dma通道指令或者rma通道指令的通道指令抽取单元、用以从dma通道指令中拆分出dma微访问并将dma微访问发送至内存、从rma通道指令中拆分出rma微访问并将rma微访问发送至目标核心处理器的通道指令拆分单元和用以接收通道指令抽取单元抽取的dma通道指令或者rma通道指令并将dma通道指令、rma通道指令发送至通道指令拆分单元的通道指令分配单元,内存接收dma微访问后给通道指令分配单元发出应答,目标核心处理器接收rma微访问后给通道指令分配单元发出应答,通道指令分配单元在获取内存返回的应答或者目标核心处理器返回的应答后在源核心处理器或者目标核心处理器的局部存储器内设置标志,能够兼容众核核心ldm与内存(dma)及众核核心ldm之间的批量数据传输,支持这两种传输模式的混合运行,通过采用统一架构,两者间可以实现部分资源的共享,最大限度的减少实现开销,同时该装置通过配置进行核心间批量数据传输时,可以支持点对点和行、列组播等多种传输模式,提升了数据可重用性,减少了对通讯带宽的需求,每类传输可以多批次数据并行传输,节省了开销,实现资源的动态调节使用,使得众核核心能够彻底分离计算与数据传输,便于用户构造大规模复杂的科学计算程序。

装置为每类通道指令进行少量资源预留(如消息通道号),其它资源在两种通道指令进行动态分配,设置专用的dma和rma拆分站台支持两类数据传输并发拆分与处理。能够对dma和rma传输顺序的进行灵活调度和控制;实现了一种灵活可配置的回答字完成通知机制。dma传输为从源核心处理器至内存之间的传输。ram传输为源核心处理器至目标核心处理器之间的传输。

通道指令分配单元可以动态分配、循环使用通道状态寄存器组。

通道指令抽取单元可以包括用以从通道指令缓冲单元内抽取dma通道指令的dma抽取模块和从通道指令缓冲单元内抽取rma通道指令的rma抽取模块。

作为本实施例中的面向众核处理器访存和片内通信的数据传输装置还可以包括在获取dma通道指令或者rma通道指令后根据通道指令的操作类型和指令先后顺序进行仲裁以分别将dma通道指令派发至dma拆分站、将rma通道指令派发至rma拆分站,在解析dma微访问或者rma微访问后根据微访问的操作类型和先后顺序进行仲裁以分别将dma微访问发送至内存、将rma微访问发送至目标核心处理器中的仲裁单元。

通道指令拆分单元包括用以从dma通道指令中拆分出dma微访问并将dma微访问发送至内存的dma拆分站、从rma通道指令中拆分出rma微访问并将rma微访问发送至内存的rma拆分站,分别进行拆分,提高传输效率。dma拆分站通过片上网络将dma微访问发送至内存。

作为本实施例中的面向众核处理器访存和片内通信的数据传输装置还可以包括用以给通道指令缓冲单元发出改变通道指令流方向的通道栏栅指令集的栏栅指令集管理单元,通道栏栅指令集包括dma栏栅指令、rma栏栅指令、全栏栅指令,通道指令缓冲单元在收到栏栅指令集管理单元发出的dma栏栅指令后确定之前dma通道指令发起的传输完成后继续执行后续dma通道指令、在收到栏栅指令集管理单元发出的rma栏栅指令后确定之前收到的rma通道指令发起的传输完成后继续执行后续rma通道指令、在收到栏栅指令集管理单元发出的全栏栅指令确定之前收到的dma指令或者rma指令发起的传输完成后继续执行后续的dma指令或者rma指令。通道指令缓冲单元收到dma栏栅指令后,必须等待之前dma通道指令发起的传输全部完成后,才允许后续dma通道指令开始执行。通道指令缓冲单元收到rma栏栅指令后,必须等待之前收到的rma通道指令发起的传输完成后,才允许后续rma通道指令开始执行。通道指令缓冲单元收到全栏栅指令必须等待之前收到的所有通道传输指令发起的传输完成后,才允许后续通道指令开始执行。定义了统一的通道传输和栏栅指令集,在这三种栏栅指令的控制下,通道指令缓冲单元可以控制两种数据数据流间以及每种数据流的传输顺序,为众核处理器实现不同的通信模型提供底层支持。

本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1