一种数据传输的调度方法及装置
技术领域
本发明涉及通信领域,特别涉及一种数据传输的调度方法及装置。
背景技术
目前片上多核系统已经成为主流的架构,在这一架构中,通常采用片上网络来连接芯片中的功能单元,因此数据在核间的移动已经成为性能的主要瓶颈。在ARM CoreLinkCCN-508中,NoC(Network on Chip,片上网络)与片上功能单元之间采用AMBA(AdvancedMicrocontroller Bus Architecture,数据突发传输)总线协议,即AXI接口进行连接。因此,AXI是事实上的SoC(System on Chip,系统级芯片)片上通信协议标准。
在片上多核心系统中,事务通过AXI中的传输通道在功能单元与NoC之间进行传输。现有的AXI芯片上通过在AXI前增加多个缓存器Buffer和选择器,当多类事务通过AXI接口进行传输时,将不同的事务先通过选择器进行分类,将分类后的事务放置在buffer中的不同队列中。以此使AXI接口具有交叉传输的特性,提高了AXI在传输不同事务时的效率。
但是,上述事务的传输机制仅考虑到不同事务之间的交叉传输,当不同的事务在对应的传输通道中传输时,由于事务传输的频率不同,因此对传输通道的占用率也不同。当某一传输通道的占用率较高时,数据在该传输通道中的传输效率会降低,且其他占用率较低的传输通道并没有得到合理利用。
发明内容
本发明提供了一种数据传输的调度方法及装置,用于提高传输通道的利用率。
一方面,本发明提供了一种数据传输的调度方法,包括:
第一发送端对总线协议AXI中传输通道的占用率进行监测,所述传输通道包括如下任意一个:读地址通道、读数据通道、写地址通道、写数据通道、写响应通道;
通过在芯片上的AXI总线两端设置不同粒度的缓冲器buffer,在AXI的五条传输通道中,根据传输事务的不同,配置不同宽度的buffer,用于监测传输通道的占用率。
所述第一发送端通过所述传输通道向第一接收端发送与所述传输通道对应的事务处理请求;所述事务处理请求包括:读请求、读数据、写请求、写数据、写响应、无效请求、无效请求响应;
当所述传输通道的占用率大于预设阈值时,所述第一发送端对目标通道中的保留位进行编码并置位,所述编码后的保留位用于标识所述事务处理请求需要调度至所述目标通道,所述目标通道为所述传输通道中的一个;
所述第一发送端根据所述编码后的保留位将所述事务处理请求通过所述目标通道发送至第二接收端,所述编码后的保留位还用于所述第二接收端将所述事务处理请求写入所述第一接收端中。
可选的,所述传输通道为读地址通道,所述事务处理请求为读请求,所述目标通道为写地址通道或写数据通道。
可选的,所述传输通道为读数据通道,所述事务处理请求为读数据,所述目标通道为写响应通道。
通过对上述读请求和读数据的调度,能够缩短数据的传输访问延迟,提高了MCC(Multiple Combinational Channel,多组合通道)系统的性能。
另一方面,本发明提供了一种数据传输的调度装置,应用于AXI芯片,包括:发射器,接收器,缓冲器,处理器;
所述缓冲器用于对AXI总线中的传输通道的占用率进行监测,所述传输通道包括如下任意一个:读地址通道、读数据通道、写地址通道、写数据通道、写响应通道;
所述发射器用于通过所述传输通道向第一接收端发送与所述传输通道对应的事务处理请求;所述事务处理请求包括:读请求、读数据、写请求、写数据、写响应、无效请求、无效请求响应;
所述处理器用于在所述传输通道的占用率大于预设阈值时,对目标通道中的保留位进行编码并置位,所述编码后的保留位用于标识所述事务处理请求需要调度至所述目标通道,所述目标通道为所述传输通道中的一个;
所述处理器还用于根据所述编码后的保留位将所述事务处理请求通过所述目标通道发送至第二接收端,所述编码后的保留位还用于所述第二接收端将所述事务处理请求写入所述第一接收端中。
可选的,所述传输通道为读地址通道,所述事务处理请求为读请求,所述目标通道为写地址通道或写数据通道。
可选的,所述传输通道为读数据通道,所述事务处理请求为读响应,所述目标通道为写响应通道。
从以上技术方案可以看出,本发明具有以下优点:第一发送端对总线协议AXI中传输通道的占用率进行监测,所述传输通道包括如下任意一个:读地址通道、读数据通道、写地址通道、写数据通道、写响应通道;第一发送端通过所述传输通道向第一接收端发送与所述传输通道对应的事务处理请求;所述事务处理请求包括:读请求、读响应、写请求、写数据、写响应、无效请求、无效请求响应;当所述传输通道的占用率大于预设阈值时,所述第一发送端对目标通道中的保留位进行编码并置位,所述编码后的保留位用于标识所述事务处理请求需要调度至所述目标通道,所述目标通道为所述传输通道中的一个;所述第一发送端根据所述编码后的保留位将所述事务处理请求通过所述目标通道发送至第二接收端,所述编码后的保留位还用于所述第二接收端将所述事务处理请求写入所述第一接收端中。因此,通过上述对事务处理请求在传输通道中的调度,让各类事务在传输通道中达到负载平衡,从而提高了传输通道的利用率。
附图说明
图1为本发明所提供的数据传输的调度方法的一个实施例流程示意图;
图2为本发明所提供的数据传输的调度装置的一个实施例结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,尽管在本发明实施例中可能采用术语第一、第二等来描述各个发送端或接收端,但发送端或接收端不应限于这些术语。这些术语仅用来将发送端或接收端彼此区分开。例如,在不脱离本发明实施例范围的情况下,第一发送端也可以被称为第二发送端,类似地,第二发送端也可以被称为第一发送端;同样的,第二发送端也可以被称为第三发送端等等,本发明实施例对此不做限制。
本发明可能涉及以下术语:
AXI:Advanced eXtensible Interface,是一种总线协议,该协议是ARM公司提出的AMBA(Advanced Microcontroller Bus Architecture)3.0协议中最重要的部分,是一种面向高性能、高带宽、低延迟的片内总线。
ARM:Acorn RISC Machine,Acorn计算机有限公司面向低预算市场设计的第一款RISC微处理器。
RR:Read Request,读请求。
RD:Read Data,读数据。
WR:Write Request,写请求。
WD:Write Data,写数据。
WB:Write Back,写响应。
IB:Invalid Back,无效请求响应。
IR:Invalid Request无效请求。
在片上多核系统中,可以将每个核中的事务分为7类,其中每一类事务分别与AXI的传输通道对应如下:
读请求(RR):通过AXI中的读地址(AR)通道传输。
读数据(RD):通过AXI中的读数据(R)通道传输。
写请求(WR):通过AXI中的写地址(AW)通道传输。
写数据(WD):通过AXI中的写数据通道(W)传输。
写响应(WB):通过AXI中的写响应通道(B)传输。
无效请求(IR):通过AXI中的写数据通道(W)传输。
无效请求响应(IB):通过AXI中的写响应通道(B)传输。
本方法主要由数据传输的调度装置执行,请参阅图1,本发明所提供的数据传输的调度方法的一个实施例包括:
101、第一发送端对总线协议AXI中传输通道的占用率进行监测,所述传输通道包括如下任意一个:读地址通道、读数据通道、写地址通道、写数据通道、写响应通道。
需要说明的是,该第一发送端也可以作为第一接收端,与数据的传输方向对应,作为接收端时用于接收对端传输的数据。该过程中,通过在芯片上的AXI总线两端设置不同粒度的缓冲器buffer,在AXI的五条传输通道中,根据传输事务的不同,配置不同宽度的buffer,用于监测传输通道的占用率。
102、所述第一发送端通过所述传输通道向第一接收端发送与所述传输通道对应的事务处理请求;所述事务处理请求包括:读请求、读数据、写请求、写数据、写响应、无效请求、无效请求响应。
需要说明的是,如果该事务处理请求为读请求,那么该第一发送端通过读地址通道向第一接收端发送该读请求;对于事务处理请求在AXI的传输通道中传输的对应关系在上面已经进行了相关说明,此处不再赘述。
103、当所述传输通道的占用率大于预设阈值时,所述第一发送端对目标通道中的保留位进行编码并置位,所述编码后的保留位用于标识所述事务处理请求需要调度至所述目标通道,所述目标通道为所述传输通道中的一个。
需要说明的是,在总线事务传输的过程中,通过监控器Monitor来统计不同传输通道上的缓冲器buffer的占用率。例如,当读地址通道的占用率大于设定的阈值时,对该读地址通道中传输的读请求进行调度,具体的,对写地址通道或写数据通道中的保留位进行编码并置位,该编码后的保留位用于标识该读请求需要调度至的目标通道为写地址通道或写数据通道。当读数据通道的占用率大于设定的阈值时,对该读数据通道中传输的读数据进行调度,具体的,对写响应通道中的保留位进行编码并置位,该编码后的保留位用于标识该读数据需要调度至的目标通道为写响应通道。
对保留位的编码,可参考下表1:
保留位编码 |
调度事务 |
0100 |
非调度事务 |
0101 |
读请求调度 |
1000 |
读数据调度 |
表1
104、所述第一发送端根据所述编码后的保留位将所述事务处理请求通过所述目标通道发送至第二接收端,所述编码后的保留位还用于所述第二接收端将所述事务处理请求写入所述第一接收端中。
需要说明的是,在第二接收端,通过所述编码后的保留位判断所接收的事务处理请求是否为调度数据,该调度数据的定义为将步骤103中对事务处理请求调度至目标通道。该第二接收端的Monitor对接收到的事务处理请求进行监控,当发现该目标通道中的事务处理请求为调度数据时,将接收到的该事务处理请求写入第一接收端中,具体的,写入与该第一发送端建立传输通道的对端的缓冲器buffer中。
本发明实施例中,第一发送端对总线协议AXI中传输通道的占用率进行监测,所述传输通道包括如下任意一个:读地址通道、读数据通道、写地址通道、写数据通道、写响应通道;第一发送端通过所述传输通道向第一接收端发送与所述传输通道对应的事务处理请求;所述事务处理请求包括:读请求、读响应、写请求、写数据、写响应、无效请求、无效请求响应;当所述传输通道的占用率大于预设阈值时,所述第一发送端对目标通道中的保留位进行编码并置位,所述编码后的保留位用于标识所述事务处理请求需要调度至所述目标通道,所述目标通道为所述传输通道中的一个;所述第一发送端根据所述编码后的保留位将所述事务处理请求通过所述目标通道发送至第二接收端,所述编码后的保留位还用于所述第二接收端将所述事务处理请求写入所述第一接收端中。因此,通过上述对事务处理请求在传输通道中的调度,让各类事务在传输通道中达到负载平衡,从而提高了传输通道的利用率。
根据对芯片上事务处理请求的粒度和频率的统计,本发明方法主要对读请求和读数据的传输进行调度。因此,基于上述数据传输的调度方法,
可选的,所述传输通道为读地址通道,所述事务处理请求为读请求,所述目标通道为写地址通道或写数据通道。
可选的,所述传输通道为读数据通道,所述事务处理请求为读响应,所述目标通道为写响应通道。
通过对上述读请求RR和读数据RD的调度,能够缩短数据的传输访问延迟,提高了MCC(Multiple Combinational Channel,多组合通道)系统的性能。
为便于理解,下面以一具体应用场景对本发明实施例中数据传输的调度方法进行具体描述:
本场景以事务的读请求为例进行说明,对于事务的其他处理请求可对应参考本说明。
在AXI的五条通道中,根据事务的不同,配置不同宽度的buffer,在总线事务传输的过程中,通过一个Monitor来统计不同通道上的buffer占用率。例如,在读地址通道中,通过第一发送端上设置的buffer对总线协议AXI中读地址通道的占用率进行监测。
读地址通道的发送端通过所述读地址通道向读地址通道的接收端发送读请求;当Monitor统计到该读地址通道中buffer的占用率大于预设阈值时,所述读地址通道的发送端对写地址通道中的保留位进行编码并置位,所述编码后的保留位用于标识所述读请求需要调度至所述写地址通道。
所述读地址通道的发送端根据所述编码后的保留位将所述读请求通过所述写地址通道发送至写地址通道的接收端,所述编码后的保留位还用于所述写地址通道的接收端将所述事务处理请求写入所述读地址通道的接收端中。从而完成对该读请求的调度。
以上对本发明所提供的数据传输的调度方法进行了说明,下面将从装置的角度对数据传输的调度装置的结构进行说明,请参阅图2,本发明所提供的数据传输的调度装置应用于AXI芯片,包括:发射器201,接收器202,缓冲器203,处理器204:
所述缓冲器203用于对AXI总线中的传输通道的占用率进行监测,所述传输通道包括如下任意一个:读地址通道、读数据通道、写地址通道、写数据通道、写响应通道;
所述发射器201用于通过所述传输通道向第一接收端发送与所述传输通道对应的事务处理请求;所述事务处理请求包括:读请求、读数据、写请求、写数据、写响应、无效请求、无效请求响应;
所述处理器204用于在所述传输通道的占用率大于预设阈值时,对目标通道中的保留位进行编码并置位,所述编码后的保留位用于标识所述事务处理请求需要调度至所述目标通道,所述目标通道为所述传输通道中的一个;
所述处理器204还用于根据所述编码后的保留位将所述事务处理请求通过所述目标通道发送至第二接收端,所述编码后的保留位还用于所述第二接收端将所述事务处理请求写入所述第一接收端中。
本发明实施例中,所述缓冲器203用于对总线协议AXI中传输通道的占用率进行监测,所述传输通道包括如下任意一个:读地址通道、读数据通道、写地址通道、写数据通道、写响应通道;所述发射器201用于通过所述传输通道向第一接收端发送与所述传输通道对应的事务处理请求;所述事务处理请求包括:读请求、读响应、写请求、写数据、写响应、无效请求、无效请求响应;所述处理器204用于在所述传输通道的占用率大于预设阈值时,对目标通道中的保留位进行编码并置位,所述编码后的保留位用于标识所述事务处理请求需要调度至所述目标通道,所述目标通道为所述传输通道中的一个;以及根据所述编码后的保留位将所述事务处理请求通过所述目标通道发送至第二接收端,所述编码后的保留位还用于所述第二接收端将所述事务处理请求写入所述第一接收端中。因此,通过上述对事务处理请求在传输通道中的调度,让各类事务在传输通道中达到负载平衡,从而提高了传输通道的利用率。
可选的,所述传输通道为读地址通道,所述事务处理请求为读请求,所述目标通道为写地址通道或写数据通道。
可选的,所述传输通道为读数据通道,所述事务处理请求为读响应,所述目标通道为写响应通道。
上述装置的相关描述可以对应参阅方法实施例部分的相关描述和效果进行理解,本处不做过多赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:Read-OnlyMemory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。