1.本申请涉及数据传输技术,具体地,涉及一种处理器、数据传输方法、装置和系统。
背景技术:
2.随着大数据处理和人工智能的快速发展,在数据处理方面,对电子设备的延迟、带宽提出了越来越严苛的要求。
3.中央处理器cpu的突出特点是在于指令的执行以及对大量的指令执行时的串行调度和精确控制,覆盖的运算方面很广。而gpu作为专门的图形处理器,突出特点是硬件加速和大数据处理,具有强悍的单一运算能力和高度的平行数据并行能力。
4.目前的电子设备通常是通过中央处理器cpu和图形处理器gpu共同协作进行大数据处理的,gpu通过pcie(peripheral component interconnect express,串行总线)连接到cpu的系统总线,cpu通过系统总线对gpu进行控制。在运算时,数据会在gpu和cpu中来回传输。
5.由于pcie总线接口中,数据需要串行执行通道仲裁、传输仲裁等多步操作,导致pcie总线的数据传输延迟较高。因此,如何降低处理器的数据传输延迟是目前需要解决的问题。
技术实现要素:
6.本申请实施例中提供了一种处理器、数据传输方法、装置和系统,用于解决目前的处理器数据传输延迟高的问题。
7.根据本申请实施例的第一个方面,提供了一种处理器,所述处理器包括高速总线接口;
8.所述高速总线接口用于连接高速总线,以进行数据传输,所述高速总线接口包括数据处理模块;
9.所述数据处理模块用于对待传输数据的数据类型进行快速仲裁;
10.若所述待传输数据为控制流数据,则所述数据处理模块还用于为所述控制流数据分配快速通道以快速传输所述控制流数据。
11.根据本申请实施例的第二个方面,提供了一种数据传输方法,应用于处理器,所述方法包括:
12.获取待传输数据;
13.对所述待传输数据的数据类型进行快速仲裁;
14.若所述待传输数据为控制流数据,则为所述控制流数据分配快速通道以快速传输所述控制流数据。
15.根据本申请实施例的第三个方面,提供了一种数据传输装置,应用于处理器,所述装置包括:
16.数据获取模块,用于获取待传输数据;
17.快速仲裁模块,用于对所述待传输数据的数据类型进行快速仲裁;
18.通道分配模块,若所述待传输数据为控制流数据,则用于为所述控制流数据分配快速通道以快速传输所述控制流数据。
19.根据本申请实施例的第四个方面,提供了一种数据传输系统,包括cpu和gpu,所述cpu包括高速总线接口,所述gpu包括高速总线接口;
20.所述cpu和所述gpu通过高速总线连接。
21.本申请实施例中提供了一种处理器、数据传输方法、装置和系统,该处理器包括高速总线接口;高速总线接口用于连接高速总线,以进行数据传输,高速总线接口包括数据处理模块;数据处理模块用于对待传输数据的数据类型进行快速仲裁;若待传输数据为控制流数据,则数据处理模块还用于为控制流数据分配快速通道以快速传输控制流数据。本申请实施例中,通过数据处理模块对待传输数据进行快速仲裁,若仲裁结果表示待传输数据为控制流数据,则立即通过快速通道进行控制流数据的传输,大大降低了数据传输延迟,提高了数据传输效率。
附图说明
22.此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
23.图1为本申请实施例提供的cpu与gpu的片上互连结构示意图;
24.图2为本申请实施例提供的处理器的示意图;
25.图3为本申请实施例提供的高速总线接口的示意图;
26.图4为本申请实施例提供的数据处理模块的示意图;
27.图5为本申请实施例提供的数据传输方法的流程图;
28.图6为本申请实施例提供的数据传输装置的功能模块图;
29.图7为本申请实施例提供的数据传输系统的示意图。
具体实施方式
30.在实现本申请的过程中,发明人发现,当前的大数据计算方式通常采用的是异构计算方式。所谓异构计算,是指cpu和gpu或者cpu和其它设备(如fpga等)协同计算的方式。一般的程序都是在cpu上计算的,但是,当大量的数据需要计算时,cpu便会显得力不从心,所以需要采用异构计算。例如可通过融合了cpu(central processing unit)和gpu(graphic processing unit)的计算设备的计算能力以提高系统的速度。
31.目前的异构结构中的gpu通过pcie总线连接到系统总线,cpu则通过系统总线对gpu进行控制。当gpu发起dma(direct memory access,直接存储器访问)写操作把数据写入cpu内存时,数据穿过一次pcie总线的延迟大约有300ns;当gpu发起dma读操作从cpu内存读取数据时,首先需要通过pcie将gpu发起的读请求发送至cpu,然后再将数据通过pcie总线回传至gpu,大约有600ns的延迟,延迟较高。
32.发明人还发现,pcie数据通路的传输延迟,主要是由于在传统的总线接口中,数据需要串行执行通道仲裁、传输仲裁等其他操作,导致延迟时间较长。
33.为了解决传输延迟时间较长的问题,发明人提出了一种将cpu与gpu做成片上互连
soc的形式,如图1所示。由于cpu与gpu是通过片上互连结构noc互连,无需通过pcie总线,因此cpu访问图像处理引擎延迟低,带宽大,是一种理想融合的技术方案。但是这种片上互连的异构架构对片上共享资源管理要求极高,且soc需要融合cpu和gpu两大供应商的技术人员互相沟通实现方案,沟通的有效性极为重要,沟通成本也比较昂贵。
34.因此,针对上述问题,本申请实施例中提供了一种处理器、数据传输方法、装置和系统,该处理器包括高速总线接口;高速总线接口用于连接高速总线,以进行数据传输,高速总线接口包括数据处理模块;数据处理模块用于对待传输数据的数据类型进行快速仲裁;若待传输数据为控制流数据,则数据处理模块还用于为控制流数据分配快速通道以快速传输控制流数据。本申请实施例中,通过数据处理模块对待传输数据进行快速仲裁,若仲裁结果表示待传输数据为控制流数据,则立即通过快速通道进行控制流数据的传输,大大降低了数据传输延迟,提高了数据传输效率。
35.为了使本申请实施例中的技术方案及优点更加清楚明白,以下结合附图对本申请的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本申请的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
36.请参照图2,图2为本申请实施例提供的处理器10的示意图。在本实施例中,处理器10包括高速总线接口11;
37.所述高速总线接口11用于连接高速总线,以进行数据传输,所述高速总线接口11包括数据处理模块111。
38.所述数据处理模块111用于对待传输数据的数据类型进行快速仲裁;若所述待传输数据为控制流数据,则所述数据处理模块111还用于为所述控制流数据分配快速通道以快速传输所述控制流数据。
39.本申请实施例通过数据处理模块111对待传输数据进行快速仲裁,若仲裁结果表示待传输数据为控制流数据,则立即通过快速通道进行控制流数据的传输,大大降低了数据传输延迟,提高了数据传输效率。
40.可选地,在本实施例中,若所述待传输数据为内存数据,则所述数据处理模块111还用于将所述内存数据拆分为多组子数据,并将多组子数据分别通过多个普通通道进行传输。
41.可选地,在本实施例中,处理器10可以为cpu或gpu。
42.可选地,请参照图3,图3为本申请实施例提供的高速总线接口11的示意图。高速总线接口11还包括多个数据传输通道,所述数据处理模块111还包括通道分配单元。
43.所述通道分配单元用于从多个所述数据传输通道中确定一个空闲的数据传输通道作为传输所述控制流数据的快速通道,将其他数据传输通道作为传输内存数据的普通通道。
44.如图3所示,在一种实施方式中,处理器10的高速总线接口11可以包括8个传输通道,分别为pcs0、pcs1、pcs2、pcs3、pcs4、pcs5、pcs6及pcs7。
45.在本实施例中,数据在处理器之间传输时,数据接收端和数据发送端的传输通道相同。例如,若处理器分别为cpu和gpu,当cpu将数据发送至gpu时,若cpu通过高速总线接口11的pcs2传输通道发送数据,则gpu也通过高速总线接口11的pcs2传输通道接收数据。
46.进一步地,请继续参照图3,在本实施例中,每个数据传输通道包括多个子通道。
47.如图3所示,一个高速总线接口包括8个独立的数据传输通道,每个数据传输通道包括4个子通道,最大输出传输为32lane,理论上在pcie同频时钟下,带宽是pcie 16lane的2倍。其中,4个子通道分别为tx、rx、gpio_in、gpio_out。
48.因此,本申请实施例提供的数据传输系统具有高带宽、低延迟、高可靠和高灵活特点。
49.可选地,请参照图4,图4为本申请实施例提供的数据处理模块111的示意图。
50.在本实施例中,数据处理模块111包括通道分配单元及快速仲裁单元。
51.在本实施例中,快速仲裁单元用于根据多个待传输数据的数据类型对多个待传输数据进行快速仲裁。
52.通道分配单元用于从多个所述数据传输通道中确定一个空闲的数据传输通道作为传输所述控制流数据的快速通道,将其他数据传输通道作为传输内存数据的普通通道。其中,快速通道为多个数据传输通道中的任意一个空闲通道,如图4中的pcsi。
53.可选地,请继续参照图4,在本实施例中,数据处理模块111还包括数据拆分单元。
54.可选地,在本实施例中,多个处理器11之间传输的数据可以是控制流数据或非控制流数据,其中,非控制流数据可以为内存数据。
55.例如,以处理器10分别为cpu和gpu为例,数据在cpu和gpu之间传输时,对于控制流数据,cpu可以向gpu发送图像处理命令(即控制流数据)时,以使gpu能够完成相应的图像处理任务,而gpu则可以向cpu发送中断指令(即控制流数据)。
56.对于非控制流数据,gpu可以发起数据读取请求,以从cpu的内存中读取数据(即数据从cpu传输至gpu),gpu也可以直接向cpu的内存中写入数据(即数据从gpu传输至cpu)。
57.当gpu需要读取cpu的内存中的数据时,gpu首先向cpu发送命令读取请求,cpu在接收到命令读取请求后,将gpu请求的数据发送给gpu。
58.可选地,在本实施例中,控制流数据通过快速通道进行传输,其他非控制流数据则通过普通通道进行传输。
59.在图4中,以cpu将内存数据以及控制流数据发送给gpu为例。若待传输的内存数据较大,则待传输的内存数据首先通过数据拆分单元后被拆分多组子数据,并缓存于第一通道分配单元,再将多组子数据的数据头发送至第一快速仲裁单元进行仲裁,将快速仲裁结果返回至第一通道分配单元,第一通道分配单元再根据快速仲裁结果为多组子数据选择合适的数据通道进行数据传输。
60.由于数据处理模块111包括8个独立的数据传输通道,其中一个通道被设置为快速通道,用于传输控制流数据,因此,内存数据最多被拆分为7组子数据,由普通通道进行传输。
61.在数据被拆分之后,通过快速仲裁单元通过待传输数据的类型对待传输数据进行快速仲裁。若待传输数据中包括控制流数据,则直接为该控制流数据分配一个空闲的数据传输通道作为快速通道(例如pcs0),直接通过该快速通道传输该控制流数据,其他非控制流数据则进入普通仲裁阶段,并各自分配一个普通通道(例如pcs1
‑
pcs7)进行数据传输,其中,普通通道则为除快速通道之外的其他7个数据传输通道。
62.可选地,如图4所示,数据处理模块111中还包括有交叉开关,交叉开关用于开启数
据传输通道。例如,若为待传输数据分配的通道为pcs5,则通过交叉开关开启pcs5的通道开关。
63.可选地,在本实施例中,数据处理模块111还包括数据合并单元,用于对接收到的多组子数据进行合并。
64.例如,在处理器10接收到其他处理器10发送的多组子数据后,可以通过数据合并单元将多组子数据合并为一组数据,传输至内存。
65.若数据发送端的处理器10通过pcs0至pcs7的8个独立的数据传输通道均发送了数据,则数据接收端的处理器10的数据处理模块111的8个独立的数据传输通道也都会接收到对应的数据,在接收到数据之后,发送至内存之前,处理器10的数据合并模块还会对多个通道发送的数据进行合并,合并后再发送至内存进行存储。
66.由此可见,在本实施例中,处理器既可以是数据发送端,也可以是数据接收端。当处理器作为数据发送端时,数据处理模块111会对待传输数据进行数据拆分、快速仲裁及通道分配,而作为数据接收端时,则数据处理模块111则用于对待传输数据进行数据合并。
67.也即是说,在本申请实施例中,gpu和cpu相同,既可以为数据发送端,也可以为数据接收端。
68.综上所述,本申请实施例提供的数据传输系统的硬件复杂度较低,实现了cpu和gpu之间的数据传输,且通过快速仲裁的设计,可以减少数据的传输延迟,为数据传输提供了更低的传输延迟及更高的通信带宽。
69.可选地,请参照图5,图5为本申请实施例提供的数据传输方法的流程图,在本实施例中,所述方法应用于处理器10,所述方法包括:
70.步骤s11,获取待传输数据。
71.步骤s12,通过数据处理模块对待传输数据进行快速仲裁。
72.步骤s13,若所述待传输数据为控制流数据,则为所述控制流数据分配快速通道以快速传输所述控制流数据。
73.在上述步骤中,当处理器需要数据进行传输时,首先获取待传输数据,再通过数据处理模块111对待传输数据进行快速仲裁,若所述待传输数据为控制流数据,则为所述控制流数据分配快速通道以快速传输所述控制流数据。
74.若所述待传输数据为内存数据,则所述数据处理模块将所述内存数据拆分为多组子数据,并将所述多组子数据分别通过多个普通通道同时进行传输。
75.在上述步骤中,在对待传输数据进行快速仲裁之后,即可明确每个待传输数据的数据类型是控制流数据还是非控制流数据。如果是控制流数据,则从多个数据传输通道中为该控制流数据分配任意一个空闲的通道作为快速通道,快速通道只用于传输控制流数据。
76.若不是控制流数据,则通过除快速通道外的其他普通通道进行传输。若有6组子数据,则选用6个普通通道进行传输。
77.可选地,请参照图6,图6为本申请实施例提供的数据传输装置110的功能模块图,应用于处理器10,所述装置包括:
78.数据获取模块1101,用于获取待传输数据。
79.快速仲裁模块1102,用于对所述待传输数据的数据类型进行快速仲裁;
80.通道分配模块1103,若所述待传输数据为控制流数据,则用于为所述控制流数据分配快速通道以快速传输所述控制流数据。
81.请参照图7,图7为本申请实施例提供的数据传输系统20的示意图。在本实施例中,数据传输系统包括cpu和gpu。
82.如图7所示,cpu包括前述实施例提供的高速总线接口11;gpu包括前述实施例提供的高速总线接口11,且所述cpu和所述gpu通过高速总线连接。
83.在本实施例中,将cpu和gpu通过高速总线的方式融合,以实现gpu与cpu之间的数据传输,cpu和gpu各包括一个高速总线接口,高速总线的两端分别与cpu的高速总线接口及gpu的高速总线接口连接。
84.值得说明的是,cpu和gpu在进行数据传输时,与前述实施例提供的处理器10的传输方式一致,在此不再赘述。
85.通过高速总线连接cpu和gpu有效地避开了片上互连形式的cpu与gpu融合带来的共享资源管理的技术难题。
86.综上所述,本申请实施例中提供了一种处理器、数据传输方法、装置和系统,该处理器包括高速总线接口;高速总线接口用于连接高速总线,以进行数据传输,高速总线接口包括数据处理模块;数据处理模块用于对待传输数据的数据类型进行快速仲裁;若待传输数据为控制流数据,则数据处理模块还用于为控制流数据分配快速通道以快速传输控制流数据。本申请实施例中,通过数据处理模块对待传输数据进行快速仲裁,若仲裁结果表示待传输数据为控制流数据,则立即通过快速通道进行控制流数据的传输,大大降低了数据传输延迟,提高了数据传输效率。
87.本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd
‑
rom、光学存储器等)上实施的计算机程序产品的形式。
88.本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
89.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
90.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
91.尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
92.显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
技术特征:
1.一种处理器,其特征在于,所述处理器包括高速总线接口;所述高速总线接口用于连接高速总线,以进行数据传输,所述高速总线接口包括数据处理模块;所述数据处理模块用于对待传输数据的数据类型进行快速仲裁;若所述待传输数据为控制流数据,则所述数据处理模块还用于为所述控制流数据分配快速通道以快速传输所述控制流数据。2.根据权利要求1所述的处理器,其特征在于,若所述待传输数据为内存数据,则所述数据处理模块还用于将所述内存数据拆分为多组子数据,并将所述多组子数据分别通过多个普通通道同时进行传输。3.根据权利要求2所述的处理器,其特征在于,所述高速总线接口还包括多个数据传输通道,所述数据处理模块还包括通道分配单元;所述通道分配单元用于从多个所述数据传输通道中确定一个空闲的数据传输通道作为传输所述控制流数据的快速通道,将其他数据传输通道作为传输内存数据的普通通道。4.根据权利要求3所述的处理器,其特征在于,所述数据处理模块包括交叉开关,所述交叉开关用于开启所述数据传输通道。5.根据权利要求2所述的处理器,其特征在于,所述数据处理模块还包括数据拆分单元;所述数据拆分单元用于将待传输的内存数据拆分为多组子数据进行传输。6.根据权利要求5所述的处理器,其特征在于,所述数据处理模块还包括通道开关仲裁单元;所述通道开关仲裁单元用于对所述内存数据的多组子数据进行通道开关仲裁,为所述多组子数据分配对应数量的普通通道进行数据传输。7.根据权利要求1
‑
6任意一项所述的处理器,其特征在于,所述处理器为中央处理器cpu或图形处理器gpu。8.一种数据传输方法,其特征在于,应用于权利要求1
‑
7任意一项所述的处理器,所述方法包括:获取待传输数据;对所述待传输数据的数据类型进行快速仲裁;若所述待传输数据为控制流数据,则为所述控制流数据分配快速通道以快速传输所述控制流数据。9.一种数据传输装置,其特征在于,应用于权利要求1
‑
7任意一项所述的处理器,所述装置包括:数据获取模块,用于获取待传输数据;快速仲裁模块,用于对所述待传输数据的数据类型进行快速仲裁;通道分配模块,若所述待传输数据为控制流数据,则用于为所述控制流数据分配快速通道以快速传输所述控制流数据。10.一种数据传输系统,其特征在于,包括cpu和gpu,所述cpu包括权利要求1
‑
7任意一项所述的处理器的高速总线接口,所述gpu包括权利要求1
‑
7任意一项所述的高速总线接口;
所述cpu和所述gpu通过高速总线连接。
技术总结
本申请实施例中提供了一种处理器、数据传输方法、装置和系统,该处理器包括高速总线接口;高速总线接口用于连接高速总线,以进行数据传输,高速总线接口包括数据处理模块;数据处理模块用于对待传输数据的数据类型进行快速仲裁;若待传输数据为控制流数据,则数据处理模块还用于为控制流数据分配快速通道以快速传输控制流数据。本申请实施例中,通过数据处理模块对待传输数据进行快速仲裁,若仲裁结果表示待传输数据为控制流数据,则立即通过快速通道进行控制流数据的传输,大大降低了数据传输延迟,提高了数据传输效率。提高了数据传输效率。提高了数据传输效率。
技术研发人员:刘利兵
受保护的技术使用者:长沙景美集成电路设计有限公司
技术研发日:2021.03.02
技术公布日:2021/6/29
转载请注明原文地址:https://doc.8miu.com/read-5199.html