一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于AXI总线的数据预处理方法与流程

2021-10-20 00:22:00 来源:中国专利 TAG:预处理 总线 方法 数据 集成电路设计

一种基于axi总线的数据预处理方法
技术领域
1.本发明涉及大规模数字集成电路设计技术领域,尤其涉及一种基于axi总线的数据预处理方法。


背景技术:

2.随着现代soc芯片的规模增加,系统总线互联规模也随之增加,与此同时为了获得更高的总线带宽,总线工作的时钟频率也大幅随之提升。目前,业界比较普遍应用的高速互联总线,是基于armambaaxi总线协议实现的总线系统。axi(advancede xtensible interface)总线协议是一种面向高性能、高带宽、低延迟的片内总线,它的一个重要优点是地址/控制和数据的分离设计,使其可以在时序关键的路径处,使用类似fifo的结构对总线信号进行寄存,更加容易获得时序收敛。这种类似fifo的寄存结构,在本发明中称为axi slice。在一个大型的soc芯片的物理实现过程中,大量的逻辑门和存储模块所占用的物理面积,以及布局布线资源的紧张,经常会导致两个模块之间的物理距离很远,如果直接使用axi总线进行连接,会导致时序收敛困难。此时就需要使用axi slice,按照实际物理实现情况进行1次或多次的寄存,以实现时序收敛。根据实际soc的规模大小,在某个axi路径上存在多级axi slice的情况十分普遍。
3.同时,现代soc芯片所承担的应用更为复杂,运算密集型应用出现的场景越来越多,运算指令越来越复杂,单周期完成单条复杂运算指令(如浮点运算、哈希运算等)的难度增加,处理器或者硬件加速器需要花费额外的时钟周期用于复杂运算的预处理(如浮点加法的浮点对齐操作、哈希运算的消息块预处理等)。其次,处理器或者硬件加速器在承担复杂性运算的过程中,对于数据的访问更加频繁,结合上述总线多级axi slice现象,会造成消耗在总线传输过程中的时间占比显著增加。
4.综上所述,伴随现代soc芯片规模越来越大,工作频率越来越高,系统总线(尤其是常用的axi总线)需要包含更多的axi slice以完成时序收敛。同时,伴随现代soc芯片承担的应用越来越复杂,处理器或者硬件加速器完成复杂指令需要花费周期用于预计算处理,同时更频繁的访存需求也使得axi slice所引入的总线传输时间显著增加。


技术实现要素:

5.为解决背景技术中存在的技术问题,本发明提出一种基于axi总线的数据预处理方法,使请求模块在总线数据读写过程中能够完成部分计算预处理,在不影响原本总线通信带宽的前提下,减少请求模块的计算负担,获得更高处理性能。
6.本发明提出一种基于axi总线的数据预处理方法,应用于包括请求模块、axi总线、目的模块的传输系统,包括:
7.获取请求模块需要预处理的运算逻辑指令;
8.在读地址通道上设置信号ar_inst的传输通道,在读数据通道上设置信号r_inst的传输通道;所述信号ar_inst用于传递所述运算逻辑指令;所述信号ar_inst随读请求通
过读地址通道到达目的模块后被转发给信号r_inst;
9.在axi总线的读数据通道上设置若干个预处理模块;所述信号r_inst随读数据通过读数据通道传递到预处理模块,预处理模块依次基于信号r_inst对读数据进行运算处理,将处理后的读数据返回到请求模块。
10.优选地,所述运算逻辑指令为流水级运算指令;所述信号ar_inst与信号r_inst由高半部分和低半部分两部分组成;所述高半部分表示预处理的运算指令;所述低半部分表示预处理的运算指令的流水级数。
11.优选地,所述预处理模块包括译码逻辑、运算逻辑、重组逻辑。
12.优选地,所述预处理模块基于信号r_inst对读数据进行运算处理,具体包括:
13.通过译码逻辑对信号r_inst译码,识别出运算指令和流水级数;
14.通过运算逻辑根据运算指令和流水级数对上游读数据进行运算处理;
15.通过重组逻辑将运算处理结果传递到下游读数据。
16.优选地,所述预处理模块还包括寄存结构,所述寄存结构在时序的关键路径处对总线信号进行寄存,以获得时序收敛。
17.优选地,所述在读地址通道上设置信号ar_inst的传输通道,具体包括:修改请求模块的读请求接口,增加产生信号ar_inst的逻辑电路,从而在读地址通道上设置信号ar_inst的传输通道。
18.优选地,所述产生信号ar_inst的逻辑电路与请求模块实现深度定制的紧耦合。
19.优选地,所述产生信号ar_inst的逻辑电路与请求模块实现软件控制的松耦合。
20.优选地,所述信号ar_inst随读地址通道到达目的模块后被转发给信号r_inst具体包括:修改目的模块读数据返回接口,增加信号ar_inst的转发逻辑电路,信号ar_inst随读地址通道到达目的模块后被转发至信号r_inst。
21.本发明还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机指令,所述计算机指令被执行时,实现上述基于axi总线的数据预处理方法。
22.本发明中,通过在axi总线上设置预处理模块,设置信号ar_inst与r_inst的传输通道,信号ar_inst随读请求通过读地址通道到达目的模块后被转发给r_inst,信号r_inst随读数据通过读数据通道传递到预处理模块,预处理模块基于信号r_inst实现对读数据的预处理后将处理后的读数据返回到请求模块。通过预处理模块对读数据的预处理,减少了请求模块的计算负担,提高了请求模块的处理性能。
23.本发明中,通过在axi总线通路上定义一种集成运算功能的数据预处理模块,所述预处理模块包括译码逻辑、运算逻辑、重组逻辑以及寄存结构;在完成基本的时序寄存基础上,使处理器或者硬件加速器在总线数据读写过程中能够完成部分计算预处理,在不影响原本总线通信带宽的前提下,减少处理器或者硬件加速器的计算负担,获得更高处理性能。
附图说明
24.图1为本发明第一实施例基于axi总线的数据预处理方法的流程示意图;
25.图2为本发明第一实施例预处理模块的结构示意图;
26.图3为本发明第一实施例预处理模块对读数据进行运算处理的流程示意图图;
27.图4为本发明第一实施例基于axi总线的数据预处理方法所应用的系统结构图。
具体实施方式
28.如图1所示,图1为本发明第一实施例提出的基于axi总线的数据预处理方法的流程示意图。
29.本发明第一实施例提出一种基于axi总线的数据预处理方法,应用在请求模块与目的模块基于axi总线的数据传输过程中,在实际应用中,请求模块包括处理器、硬件加速器等;目的模块包括片上外设、ddr、片上sram等;现有技术中,处理器或者硬件加速器需要花费额外的时钟周期用于复杂运算的预处理,对数据的访问更加频繁,因此本发明提出一种基于axi总线的数据预处理方法,使处理器或者硬件加速器在总线数据读写过程中能够完成部分计算预处理,在不影响原本总线通信带宽的前提下,减少处理器或者硬件加速器的计算负担,获得更高处理性能。
30.参照图1,本发明第一实施例提出的一种基于axi总线的数据预处理方法,应用于包括请求模块、axi总线、目的模块的传输系统,包括:
31.s1:获取请求模块需要预处理的运算逻辑指令;
32.本发明实施例中,所述运算逻辑指令为流水级运算指令。根据请求模块的需要预处理的运算func,根据当前axi总线上的预处理模块的数量,将func拆分为流水级运算指令。本发明实施例中,当前axi总线上预处理模块数量为3个,则func=func2(func1(func0(d))),其中d表示待预处理的数据,数据d从目的模块读取后,需要完成func定义的预处理运算后,返回给请求模块。而func包含3级运算,依次是func0、func1、func2。本发明实施例中,根据这些即可确定ar_inst和r_inst格式,以及各级预处理模块的运算逻辑的设计。
33.s2:在读地址通道上设置信号ar_inst的传输通道,在读数据通道上设置信号r_inst的传输通道;所述信号ar_inst用于传递所述运算逻辑指令;所述信号ar_inst随读请求通过读地址通道到达目的模块后被转发给信号r_inst;
34.本发明实施例中,ar_inst和r_inst的格式,由两个部分组成。高半部表示需要预处理模块进行的预处理运算指令,低半部分表示预处理运算指令的流水级数。那么在本发明实施例中,func表示运算功能,对应ar_inst和r_inst的高半部分比特,而0、1、2表示运算流水级,对应ar_inst和r_inst的低半部分比特。
35.本发明实施例中,修改请求模块(如处理器或者硬件加速器)的总线读请求接口,增加产生信号ar_inst的逻辑电路,从而增加信号ar_inst的传输通道。
36.本发明实施例中,根据实现难度,产生信号ar_inst的逻辑电路可以与请求模块进行深度定制的紧耦合,如该逻辑电路集成到处理器的读指令中或者硬件加速器内部的运算逻辑中;产生信号ar_inst的逻辑电路也可以与请求模块进行软件控制的松耦合,如在需要预处理开启时,通过软件配置信号ar_inst。
37.本发明实施例中,修改目的模块的总线读返回接口,增加信号ar_inst的转发逻辑电路,实现将读地址通道收到的信号ar_inst转发给信号r_inst,随读数据通过读数据通道经过预处理模块进行读数据预处理后返回给请求模块。
38.s3:在axi总线的读数据通道上设置若干个预处理模块;所述信号r_inst随读数据通过读数据通道传递到预处理模块,预处理模块依次基于信号r_inst对读数据进行运算处理,将处理后的读数据返回到请求模块。
39.如图2所示,本发明实施例中,预处理模块包括了对信号ar_inst和信号r_inst的
译码逻辑、对来自上游读数据的运算逻辑、对传递到下游读数据的重组逻辑。
40.如图2所示,本发明实施例中,预处理模块还包括寄存结构,寄存结构可以在时序关键的路径处,对总线信号进行寄存,实现时序收敛。本发明实施例中预处理模块在完成基本的时序寄存基础上还能完成数据的预处理过程。
41.如图3所示,本发明实施例中,预处理模块对读数据进行运算处理具体包括:
42.s301:通过译码逻辑对信号r_inst译码,识别出运算指令和流水级数;
43.s302:通过运算逻辑根据运算指令和流水级数对上游读数据进行运算处理;
44.s303:通过重组逻辑将运算处理结果传递到下游读数据。
45.如图4所示,本发明实施例中,读数据和r_inst依次经过axi pp0、axi pp1、axi pp2三个预处理模块。axi pp0对经过对r_inst的译码,识别出预处理运算需求,根据运算指令对读数据d完成当前级func即func0的运算结果,并将结果通过重组逻辑,传递到下游读数据上,到达后面axi pp1,axi pp1对上游读数据再进行func1的运算处理,处理结果传递到下游读数据,直至最后一个预处理模块完成预处理计算后,读数据返回到请求模块。
46.本发明提出的基于axi总线的数据预处理的方法,还可以应用在已经具有寄存结构的axi总线上,只需要将axi总线读数据返回路径上的寄存模块替换为预处理模块即可实现。
47.本发明中,在axi总线上增加ar_inst和r_inst的通道,由于axi协议本身就支持通道的扩展性,因此修改简单,工作量低。由于ar_inst和r_inst包含足够的可用比特,根据应用和实现的需要,可以定义多种预处理func,预处理模块也可以支持多种预处理功能。
48.需要说明的是,本发明实施例中,设置信号ar_inst与信号r_inst是通过修改请求模块与目的模块的接口实现的;具体的,通过修改请求模块的读请求接口,增加产生信号ar_inst的逻辑电路,从而在读地址通道上设置信号ar_inst;通过修改目的模块读数据返回接口,增加ar_inst的转发逻辑电路,信号ar_inst随读地址通道到达目的模块后被转发至信号r_inst。
49.本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机指令,所述计算机指令被执行时,实现上述实施例所提出的基于axi总线的数据预处理方法。
50.本发明中,通过在axi总线通路上定义一种集成运算功能的数据预处理模块,所述预处理模块包括译码逻辑、运算逻辑、重组逻辑以及寄存结构;在完成基本的时序寄存基础上,使处理器或者硬件加速器在总线数据读写过程中能够完成部分计算预处理,在不影响原本总线通信带宽的前提下,减少处理器或者硬件加速器的计算负担,获得更高处理性能。
51.以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜