CN115640245A - 一种基于axi总线协议的dsp片上可扩展ebiu的方法和装置 - Google Patents
一种基于axi总线协议的dsp片上可扩展ebiu的方法和装置 Download PDFInfo
- Publication number
- CN115640245A CN115640245A CN202211258481.7A CN202211258481A CN115640245A CN 115640245 A CN115640245 A CN 115640245A CN 202211258481 A CN202211258481 A CN 202211258481A CN 115640245 A CN115640245 A CN 115640245A
- Authority
- CN
- China
- Prior art keywords
- processor
- signal
- arbitration
- ebiu
- priority
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Bus Control (AREA)
Abstract
本发明公开了一种基于AXI总线协议的DSP片上可扩展EBIU的方法和装置。方法包括EBIU通过AXI总线与多核DSP内对应的处理器连接,EBIU通过外部总线与外部设备连接,所述多核DSP具有多个处理器,每个处理器包含一个EBIU模块;创建EBIU的仲裁器,当需要增加预设数量的处理器时,将新增的处理器连接到外部总线上,并在所述仲裁器中设置新增的处理器的仲裁信号;根据仲裁信号优先级和处理器优先级决定外部总线的归属。本发明采用轮询仲裁的方式,当EBIU需要增加处理器的数量时,通过将新增的处理器连接到外部总线上,并将新增的处理器的仲裁信号传入仲裁器,以实现对EBIU系统扩展处理器数量的目的,并通过设定仲裁信号的优先级,确定外部总线的具体归属。
Description
技术领域
本发明涉及DSP片上子IP技术领域,特别是涉及一种基于AXI总线协议的DSP片上可扩展EBIU的方法和装置。
背景技术
DSP(DigitalSignalProcessor,数字信号处理器)自诞生以来,就成为数字信号处理应用中不可缺少的重要器件。目前传统EBIU(ExternalBusInterfaceUnit,外部总线接口单元)对多核DSP的处理器数量设定最高为8核,并且每个多核DSP所包含的处理器的数量在设计初就已被规定好,在后期的板级设计中无法灵活地扩展多核DSP中的处理器的数量,这样也就导致了在设计后期无法随着DSP应用场合的变更,去选择匹配处理器数量的多核DSP。在设备厂商对DSP进行板级设计时,在处理器数量上拥有一定的可扩展性显得十分重要,而传统EBIU对处理器数量的扩展性局限较大。在传统多核DSP实现对外部总线仲裁的时候,每个内核处理器都会做相同的仲裁运算,这样也增大了芯片的功耗,不利于芯片的低功耗设计。
EBIU是由ADI公司推出的多核DSP中连接每个处理器内部SoC(System-on-Chip)与外部总线的系统模块,在处理器对外部总线的仲裁上都是采用分布式轮询仲裁的方式,并且多核DSP内最多有8个处理器。在多核DSP中,每个内核处理器都会通过EBIU连接在外部总线(Clusetr-bus)上,以此实现DSP对外部总线的共享以及对外部设备的数据与指令交互。这种方式实现了DSP的多核运算,每个处理器可以协同工作。在解决外部总线的归属问题时,每个处理器可以在内部进行仲裁运算,得到仲裁结果。
EBIU的设计是实现DSP“多核”化的一种重要的方法。但是传统EBIU大多使用分布式仲裁的方式,这种方式使得外部总线的仲裁信号过多,外围电路较为复杂,同时也增加了芯片的面积资源,加大了芯片的动态功耗。并且分布式仲裁是无法对处理器数量进行扩展的,处理器的数量在芯片设计之初就已经规定好了,这样造成多核DSP的扩展性较差。
鉴于此,克服该现有技术所存在的缺陷是本技术领域亟待解决的问题。
发明内容
本发明要解决的技术问题是如何解决现有EBIU系统分布式仲裁方式中,存在无法对多核DSP进行扩展的问题。
本发明采用如下技术方案:
第一方面,本发明还提供了一种基于AXI总线协议的DSP片上可扩展EBIU的方法,包括:
EBIU通过AXI总线与DSP内对应的处理器连接,EBIU通过外部总线与外部设备连接,其中,所述多核DSP具有多个处理器,每个处理器对应一个EBIU;
创建EBIU的仲裁器,当需要增加预设数量的处理器时,将新增的处理器连接到外部总线上,并在所述仲裁器中设置新增的处理器的仲裁信号;
根据申请者的仲裁信号优先级决定外部总线的归属。
优选的,所述仲裁信号包括:HBR信号,所述HBR信号由所述外部设备发起,所述根据仲裁信号优先级和处理器优先级决定外部总线的归属包括:
所述仲裁器检测外部设备的HBR信号是否申请占据外部总线;
如果所述HBR信号申请占据外部总线,则向所述外部设备反馈HBG信号,以通知所述外部设备占据所述外部总线,并停止进行对DSP的申请信号的仲裁运算;
如果所述HBR信号没有申请占据外部总线,则根据DSP处理器优先级和剩余仲裁信号的优先级决定外部总线的归属。
优选的,仲裁信号还包括CPA信号、DPA信号和BR信号,所述CPA信号、DPA信号和BR信号由处理器发起;
所述如果所述HBR信号没有申请占据外部总线,则根据处理器优先级和剩余仲裁信号的优先级决定外部总线的归属,具体包括:
如果所述HBR信号没有申请占据外部总线,则所述仲裁器检测是否存在CPA信号;
如果存在CPA信号,则采用轮询的方式进行CPA信号的仲裁,将外部总线分配给优先级最高的目标处理器,在所述目标处理器退出外部总线的占据后,更新所述处理器优先级;
如果不存在CPA信号,则所述仲裁器检测是否存在DPA信号;
如果存在DPA信号,则采用轮询的方式进行DPA信号的仲裁,将外部总线分配给优先级最高的目标处理器,在所述目标处理器退出外部总线的占据后,更新所述处理器优先级;
如果不存在DPA信号,则所述仲裁器检测是否存在BR信号;
如果存在BR信号,则采用轮询的方式进行BR信号的仲裁,将外部总线分配给优先级最高的目标处理器,在所述目标处理器退出外部总线的占据后,更新所述处理器优先级。
优选的,所述在所述目标处理器退出外部总线的占据后,更新所述处理器优先级包括
基于历史的处理器优先级,将所述目标处理器调整为最低优先级,得到更新后的处理器优先级。
优选的,所述基于历史的处理器优先级,将所述目标处理器调整为最低优先级,得到更新后的处理器优先级包括:
基于历史的处理器优先级,以所述目标处理器为分界参照,将所述目标处理器之前的所有处理器作为第一处理器队列,所述目标处理器之后的所有处理器作为第二处理器队列,其中,所述目标处理器位于第一处理器队列的最后;
将第一处理器队列追加到第二处理器队列之后,以将所述目标处理器的下一个处理器调整为最高优先级,将所述目标处理器调整为最低优先级,得到更新后的处理器优先级。
优选的,各个处理器所发起的所述CPA信号、所述DPA信号和所述BR信号的占据权重相同,以确保完全遵循轮询的规则。
优选的,所述CPA仲裁信号的产生具体包括:当有数据缓存到OFIFO存储器内时,EBIU激活当前处理器,产生CPA的仲裁申请信号。
优选的,所述DPA仲裁信号的产生具体包括:当DMA需要给外部设备或者其它DSP处理器传输数据时,则拉低DPA,EBIU激活当前DSP处理器,产生DPA的仲裁申请信号。
优选的,所述BR仲裁信号的产生具体包括:根据DSP内部寄存器的状态提示来决定是否申请仲裁,产生BR仲裁申请信号,BR仲裁申请信号为低时代表申请总线仲裁。
第二方面,本发明还提供了一种基于AXI总线协议的DSP片上可扩展EBIU的装置,用于实现第一方面所述的基于AXI总线协议的DSP片上可扩展EBIU的方法,所述装置包括:包括:EBIU、多核DSP和仲裁器,其中,所述多核DSP具有多个处理器,每个处理器内设置有一个对应的EBIU,EBIU通过AXI总线协议与对应的处理器连接,EBIU通过外部总线与外部设备连接,所述仲裁器与所述多核DSP和所述外部设备连接;
所述EBIU用于与对应的处理器连接,以便于当需要新增处理器时,以将新增的处理器连接到外部总线上;
所述仲裁器用于与新增的处理器连接,以接收新增的处理器的仲裁信号;
所述仲裁器还用于根据仲裁信号优先级和处理器优先级决定外部总线的归属。
传统分布式仲裁在每个DSP内部都有一个仲裁器,DSP与DSP之间的仲裁信号出厂之后已经固化好了,这样重复的仲裁逻辑既浪费了芯片面积资源、增加了功耗、增加成本,又不利于后期的扩展性。区别于现有技术,本发明的有益效果在于:本发明采用轮询的方式,通过一种外部集中式仲裁,当增加DSP所包含的处理器的数量时,通过将新增的处理器连接到外部总线上,并将新增的处理器的仲裁信号传入仲裁器,以实现对EBIU系统扩展处理器数量的目的,并通过设定仲裁信号的优先级,确定外部总线的具体归属。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍。显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种基于AXI总线协议的DSP片上可扩展EBIU的方法流程图;
图2是本发明实施例提供的一种基于AXI总线协议的DSP片上可扩展EBIU的装置结构示意图;
图3是本发明实施例提供的一种基于AXI总线协议的DSP片上可扩展的EBIU缓存器示意图;
图4是本发明实施例提供的一种基于AXI总线协议的DSP片上可扩展EBIU的方法流程图;
图5是本发明实施例提供的一种基于AXI总线协议的DSP片上可扩展EBIU的仲裁器的仲裁状态转换图;
图6是本发明实施例提供的一种基于AXI总线协议的DSP片上可扩展EBIU的仲裁器的基本轮询仲裁图;
图7是本发明实施例提供的现有技术的EBIU架构图;
图8是本发明实施例提供的一种基于AXI总线协议的DSP片上可扩展EBIU的方法带有DPA和CPA信号的轮询仲裁示意图;
图9是本发明实施例提供的一种基于AXI总线协议的DSP片上可扩展EBIU的方法带有DPA仲裁信号的仲裁时序图;
图10是本发明实施例提供的一种基于AXI总线协议的DSP片上可扩展EBIU的方法带有CPA和HBR的仲裁时序图;
图11是本发明实施例提供的一种基于AXI总线协议的DSP片上可扩展EBIU的方法带有BR、DPA的仿真波形图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本发明的描述中,术语“内”、“外”、“纵向”、“横向”、“上”、“下”、“顶”、“底”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明而不是要求本发明必须以特定的方位构造和操作,因此不应当理解为对本发明的限制。
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本发明的描述中,为便于理解,对出现的英文缩写进行如下解释:
1)AXI,AdvancedextensibleInterface,总线协议;
2)EBIU,ExternalBusInterfaceUnit,外部总线接口单元;
3)DSP,DigitalSingnal Processor,数字信号处理器;
4)IP,Intellectual Property,代指内部功能模块;
5)FIFO,FirstInputFirstOutput,先进先出;
5)SoC,System-on-Chip,系统级芯片;
6)SDRAM,SynchronousDynamicRandomAccessMemory,同步动态随机存储器。
此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。下面就参考附图和实施例结合来详细说明本发明。
本发明实施例提供了一种基于AXI总线协议的DSP片上可扩展EBIU的方法,包括:
EBIU通过AXI总线与多核DSP内对应的处理器连接,EBIU通过外部总线与外部设备连接,其中,所述多核DSP具有多个处理器,每个处理器对应一个EBIU;
创建EBIU的仲裁器,当需要增加预设数量的处理器时,将新增的处理器连接到外部总线上,并在所述仲裁器中设置新增的处理器的仲裁信号;
根据仲裁信号优先级和处理器优先级决定外部总线的归属。
进一步的,所述仲裁信号包括:HBR信号,所述HBR信号由所述外部设备发起,所述根据仲裁信号优先级和处理器优先级决定外部总线的归属包括:
所述仲裁器检测外部设备的HBR信号是否申请占据外部总线;
如果所述HBR信号申请占据外部总线,则向所述外部设备反馈HBG信号,以通知所述外部设备占据所述外部总线,并停止进行对DSP的申请信号的仲裁运算;
如果所述HBR信号没有申请占据外部总线,则根据处理器优先级和剩余仲裁信号的优先级决定外部总线的归属。
进一步的,仲裁信号还包括CPA信号、DPA信号和BR信号,所述CPA信号、DPA信号和BR信号由处理器发起;
所述如果所述HBR信号没有申请占据外部总线,则根据处理器优先级和剩余仲裁信号的优先级决定外部总线的归属,具体包括:
如果所述HBR信号没有申请占据外部总线,则所述仲裁器检测是否存在CPA信号;
如果存在CPA信号,则采用轮询的方式进行CPA信号的仲裁,将外部总线分配给优先级最高的目标处理器,在所述目标处理器退出外部总线的占据后,更新所述处理器优先级;
如果不存在CPA信号,则所述仲裁器检测是否存在DPA信号;
如果存在DPA信号,则采用轮询的方式进行DPA信号的仲裁,将外部总线分配给优先级最高的目标处理器,在所述目标处理器退出外部总线的占据后,更新所述处理器优先级;
如果不存在DPA信号,则所述仲裁器检测是否存在BR信号;
如果存在BR信号,则采用轮询的方式进行BR信号的仲裁,将外部总线分配给优先级最高的目标处理器,在所述目标处理器退出外部总线的占据后,更新所述处理器优先级。
进一步的,所述在所述目标处理器退出外部总线的占据后,更新所述处理器优先级包括
基于历史的处理器优先级,将所述目标处理器调整为最低优先级,得到更新后的处理器优先级。
进一步的,所述基于历史的处理器优先级,将所述目标处理器调整为最低优先级,得到更新后的处理器优先级包括:
基于历史的处理器优先级,以所述目标处理器为分界参照,将所述目标处理器之前的所有处理器作为第一处理器队列,所述目标处理器之后的所有处理器作为第二处理器队列,其中,所述目标处理器位于第一处理器队列的最后;
将第一处理器队列追加到第二处理器队列之后,以将所述目标处理器的下一个处理器调整为最高优先级,将所述目标处理器调整为最低优先级,得到更新后的处理器优先级。
为了更直观的说明前述方案,下面进行举例说明,假设有六个处理器:A、B、C、D、E、F,某个时刻这6个请求的优先级为A>B>C>D>E>F,这个时刻将总线控制权交给C,则下一轮仲裁时,C的优先级变为最低,则这个优先级修改为D>E>F>A>B>C。在此更新过程中,A>B>C可以理解为第一处理器队列,D>E>F可以理解为第二处理器队列。本发明实施例通过仲裁信号的优先级获取过总线控制权的处理器,其仲裁申请信号下一轮将变为最低,这样设计使得硬件开销小,响应时间短,设计实现简单,完全公平地分配总线带宽占用比。
进一步的,各个处理器所发起的所述CPA信号、所述DPA信号和所述BR信号的占据权重相同,以确保完全遵循轮询的规则。
进一步的,所述CPA仲裁信号的产生具体包括:当有数据缓存到OFIFO存储器内时,EBIU激活当前处理器,产生CPA的仲裁申请信号。
进一步的,所述DPA仲裁信号的产生具体包括:当DMA需要给外部设备或者其它DSP处理器传输数据时,则拉低DPA,EBIU激活当前DSP处理器,产生DPA的仲裁申请信号。
进一步的,所述BR仲裁信号的产生具体包括:根据DSP内部寄存器的状态提示来决定是否申请仲裁,产生BR仲裁申请信号,BR仲裁申请信号为低时代表申请总线仲裁。
本发明采用轮询的方式,当EBIU需要增加处理器的数量时,通过将新增的处理器连接到外部总线上,并将新增的处理器的仲裁信号传入仲裁器,以实现对EBIU系统扩展处理器数量的目的,并通过设定仲裁信号的优先级,确定外部总线的具体归属。
在一些本实施例中,具体阐述一种基于AXI总线协议的DSP片上可扩展EBIU的方法,如图1和图2所示,包括:
步骤201:EBIU通过AXI总线与多核DSP内部对应的处理器进行数据交互,EBIU通过外部总线与外部设备连接,具体地,EBIU通过“点对点”的方式与外部设备连接,并采用流水线协议进行数据之间的交互,形成数据互联关系,其中,EBIU可作为AXI总线的主机端,也可作为AXI总线的从机端;当EBIU作为主机端时,可以访问多核DSP中的其他处理器。
其中,一个多核DSP包含多个处理器,一个处理器相当于是多核DSP的一个内核。
在实际应用场景下,多核DSP内的处理器通过EBIU与其他处理器进行数据交互,处理器还通过EBIU与外部设备进行数据交互。
本发明实施例的EBIU的仲裁器是基于AXI总线对DSP进行扩展,其中,对DSP进行扩展的意思是增加处理器的数量,以扩展DSP的内核数量,在对EBIU进行扩展之前,首先要建立EBIU与处理器,以及EBIU与外部设备之间的数据互联关系,其中,本发明实施例EBIU通过“点对点”的方式与外部设备连接,并采用流水线协议进行数据之间的交互。值得注意的是,每个处理器内包含有对应的EBIU,处理器(内核)的数量与EBIU的数量一一对应。
步骤202:创建EBIU的仲裁器,当需要增加预设数量的处理器时,将新增的处理器连接到对应的EBIU上,以将处理器连接到外部总线上,并将新增的处理器的仲裁信号传入仲裁器。
在EBIU与处理器,以及EBIU与外部设备之间的数据建立互联关系后,创建EBIU的仲裁器。本发明的仲裁器设置在EBIU的外部,通过将每一个处理器的仲裁信号统一传输到仲裁器内,利用仲裁器提前设置好的仲裁机制,通过轮询的方式判定外部总线的归属。
当需要增加预设数量的处理器时,需要根据实际需求,获取需要增加处理器的具体数量,并将新增的处理器连接到AXI总线上,形成数据互联关系,并将新增的处理器的仲裁信号传输到仲裁器内,通过仲裁器进行仲裁,获取当前外部总线的归属权。
在本实施例中,当需要增加预设数量的处理器时,将新增的处理器接入到系统内,形成数据互联关系,通过新增的处理器的仲裁信号加入到仲裁器中,以扩展多核DSP的处理器的数量。值得注意的是,本发明实施例新增处理器的数量根据实际需求,以及系统的配置进行具体确定,本发明对此不做限制。
步骤203:确定仲裁信号优先级和处理器优先级,以根据仲裁信号优先级和处理器优先级决定外部总线的归属。
在本发明实施例中,从处理器的角度出发,所述仲裁信号包括BR、DPA和CPA,并且仲裁优先级依次升高,这三个信号也都是EBIU根据不同的传输情况而产生的。在确定仲裁信号的优先级之后,还包括仲裁信号的产生,当有数据缓存到OFIFO存储器内时,EBIU激活当前DSP处理器,产生CPA的仲裁申请信号;当DMA需要给外部设备或者其它DSP处理器传输数据时,则拉低DPA,EBIU激活当前DSP处理器,产生DPA的仲裁申请信号;根据DSP内部寄存器的状态提示来决定是否申请仲裁,产生BR仲裁申请信号,BR仲裁申请信号为低时代表申请总线仲裁。本发明多核DSP内的处理器采取轮询的方式,通过设定仲裁信号,以及处理器的优先级,最终决定外部总线的归属。本发明的轮询方式只在各处理器之间,外部设备并不采用轮询的方式。值得注意的是,外部总线主要跟一些外部设备连接,合理分配外部总线的使用权以便于提高多核DSP内部单核(处理器)的利用率。
通过仲裁器判定系统内各个处理器仲裁信号的优先级,最终通过优先级确定当前外部总线的归属。值得注意的是,本发明实施例的仲裁信号实际上可以理解为外部总线申请信号,用来申请该仲裁信号对应的处理器接入外部总线内。在实际应用场景下,BR信号的产生是根据处理器内部寄存器BMAC的状态提示来决定是否申请仲裁,BR信号为低时代表申请总线仲裁。而在EBIU访问DSP内部寄存器时,会采集到BMAC寄存器的数值,以此来判断当前是否要退出外部总线的占据。EBIU退出外部总线的占据依靠拉高其BR信号来提示外部总线仲裁器。在这样的情况下,仲裁器只需判断BR的信号是否拉高,即可知道当前作为Master的处理器是否需要退出外部总线的占据,这样也能解决DSP外部总线的“撑死”现象。本发明实施例当前正在占据外部总线的处理器即为Master。值得注意的是,本发明实施例的内部寄存器有很多,BMAC只是其中一个。当作为主机的DSP处理器的数据传输完后,想要放弃外部总线控制权,就会修改BMAC寄存器值为0,而EBIU通过AXI总线读取到BMAC寄存器为0后,放弃总线控制权;之后,外部仲裁器模块就会根据仲裁信号再次分配外部总线控制权。
在本实施例中,CPA、DPA和BR三种仲裁信号的机制相同,都是信号拉低时申请外部总线的仲裁。在处理器向仲裁器发送仲裁信号的时候,如果有CPA或者DPA的仲裁申请,则一定会有BR的仲裁信号随着CPA或者DPA仲裁信号变化而变化,变化的优先级是CPA>DPA,这是根据EBIU内部仲裁信号所控制的。
当目标处理器通过AXI总线给外部设备或其它处理器传输数据的时候,此时,目标处理器的内部总线会通过AXI总线直接将数据传输给对应的EBIU,这个时候的数据将会缓存在OFIFO存储器内,此时EBIU就会激活目标处理器的CPA申请信号,表示当前需要占据外部总线的情况很紧急,通过仲裁申请的优先级。当EBIU与目标处理器的内部总线传输完毕后,则撤销CPA的申请信号。
当目标处理器的DMA需要给外部设备或者其它处理器传输数据时,目标处理器的DMA跟EBIU有单独的通信信号,DMA会通过这个通信信号直接告诉EBIU需要占据外部总线,而此时EBIU则会激活目标处理器的DPA申请信号。当DMA数据传输完毕之后,会根据通信信号直接通知EBIU撤销申请信号。
本发明采用轮询的方式,当EBIU需要增加处理器的数量时,通过将新增的处理器连接到外部总线上,并将新增的处理器的仲裁信号传入仲裁器,以实现对EBIU系统扩展处理器数量的目的,并通过设定仲裁信号的优先级,确定外部总线的具体归属。
接下来对本发明的具体细节做详细的解释,进一步的,还包括若当前EBIU上同时设置主机端和从机端时,通过当前EBIU的仲裁器的仲裁结果,判定EBIU的数据交互,具体包括:若仲裁器的仲裁结果为主机端时,EBIU占据外部总线,此时EBIU作为AXI总线协议从机端与多核DSP的处理器进行数据交互;若仲裁器的仲裁结果为从机端时,EBIU退出外部总线的占据,此时,EBIU作为AXI总线协议主机端与多核DSP的处理器的进行数据交互。
其中,本发明实施例的EBIU上可以设置主机(host或Master),也可以设置从机(slave),也可以同时设置主机和从机。当EBIU上同时设置有主机和从机时,通过当前EBIU仲裁器的仲裁结果(仲裁器判定仲裁结果为主机或从机),判定EBIU的数据交互情况。通过EBIU的仲裁结果,判定EBIU占据/退出外部总线,并在基于AXI总线协议的EBIU上设置的从机或主机与对应处理器进行数据交互。
进一步的,EBIU通过“点对点”的方式与外部设备连接,具体包括:通过EBIU的仲裁器仲裁外部总线,仲裁器仲裁每个处理器发出的仲裁信号,并且返回仲裁结果给各个处理器。
此外,本发明还包括设置FIFO存储器,当前处理器要给外部写数据时,数据存储具体包括:
SoC总线通过AXI总线协议将数据、地址,以及写握手信号传给EBIU,EBIU通过AXI总线将这些数据和地址缓存在FIFO存储器;
解析处理器,确定各个处理器对应的slave通信,并配置对应的控制信号与对应的slave进行握手通信,当握手操作完成后,EBIU从OFIFO中将数据和地址信息传送给对应的Slave。
其中,本发明实施例采用三个异步FIFO存储器来实现数据缓存的功能,它们分别是OFIFO、IFIFO和OBUFF存储器。每个FIFO存储器都可以分别写入数据和地址。如图3所示,表示当前处理器想要给外部写数据的情况,此时SoC总线会通过AXI总线协议把数据和地址还有写握手信号传给EBIU,EBIU通过完成与AXI的写握手协议将这些数据和地址缓存在OFIFO存储器内,并同时解析内核是与哪一个Slave通信,然后再配置相应的控制信号与具体的Slave进行握手通信。当握手操作完成后,EBIU从OFIFO存储器中将数据和地址信息传送给对应的Slave。其中,slave表示从设备,被访问的一方。
本发明实施例通过设定处理器的优先级,通过仲裁器对仲裁信号的判定,最终确定外部总线的归属。本发明所述根据当前处理器的仲裁信号优先级,使用轮询仲裁的方式决定外部总线的归属之前,还包括设定当前处理器的优先级,如图4所示,具体包括:
步骤301:获取当前处理器的数量,并对当前处理器进行编号;
为了避免两个或两个以上的处理器同时存在相同,并且最高的仲裁信号,导致无法判定外部总线的归属。本发明实施例除了确定仲裁信号优先级以后,还需要确定处理器的优先级,通过获取当前处理器的数量,并对当前处理器进行编号,确定优先级,通过处理器的优先级确定外部总线的最终归属。
步骤302:若当前处理器都处于相同类型的仲裁信号时,编号低的处理器优先级高于编号高的处理器的优先级;
在实际实施的过程中,首先判定仲裁信号的优先级,通过仲裁信号的优先级初步判定外部总线的归属,再通过处理器的优先级判定外部总线的最终归属。
步骤303:若当前处理器都处于不同类型的信号时,信号类型的优先级高于处理器编号的优先级。
其中,本发明实施例的仲裁信号的优先级高于处理器的优先级,当优先级最高的仲裁信号仅对应一个处理器,此时外部总线归属于该优先级最高的仲裁信号对应的处理器。
进一步的,所述根据当前处理器的仲裁信号优先级,使用轮询仲裁的方式决定外部总线的归属,如图5所示,具体包括:
当只有BR信号时,处理器将自身的仲裁信号传输给仲裁器,仲裁器通过传输而来的仲裁信号识别不同编号的处理器,并以编号从小到大的顺序排列处理器的优先级,此时,外部总线归属于编号最小的处理器;
当有CPA和/或DPA信号时,处理器将自身的仲裁信号传输给仲裁器,仲裁器识别传输而来的仲裁信号,并以仲裁信号的优先级排列处理器,此时,外部总线的归属于仲裁信号优先级最高的处理器;其中,若有两个或两个以上的处理器处于最高优先级,此时,外部总线归属于编号最小的处理器。
除此之外,所述根据当前处理器的仲裁信号优先级,使用轮询仲裁的方式决定外部总线的归属,还包括当检测外部设备存在HBG信号时,外部总线归属于外部设备。
其中,如图5所示,在仲裁状态开始时,首先是检测外部设备的HBR信号是否申请占据外部总线,如果HBR信号申请占据外部总线,则直接反馈给外部设备HBG信号,并停止对其他处理器发出的申请信号的仲裁运算。即,HBR信号由外部设备(具体由外部处理器HOST)发起,HBR信号具有最高的优先级,并且不参与轮询仲裁。
处理器发起的申请信号包括CPA信号、DPA信号、BR信号,在CPA信号、DPA信号、BR信号中,它们的优先级顺序为CPA>DPA>BR,如果没有HBR信号,首先开始检测是否有CPA信号的到来,如果有CPA信号,则开始CPA信号之间的轮询仲裁,没有的话就开始检测DPA信号,依次类推,最终得到的仲裁直接反馈给每个处理器。
本发明实施例对应的仲裁器在仲裁机制上使用轮询仲裁算法,可扩展EBIU采用无加权的三层仲裁结构(BR层、DPA层和CPA层),来实现对外部总线归属权的仲裁,在每一层的仲裁中,每个处理器的EBIU发出的仲裁信号占据的权重是一样的,完全遵循轮询的特点。
如图6所示,为可扩展式仲裁器的基本轮询仲裁图。由于处理器的内部特性,当CPA信号或者DPA信号拉低的时候,处理器的BR信号也必是拉低的。图6中给出的仲裁器的第一层是用BR信号来申请仲裁的,图6中展示的是第一级的仲裁判断,也就是在没有CPA信号和DPA信号的情况下,仲裁器做出仲裁运算。假设初始状态下,处理器优先级由高到低为[处理器0、处理器1、处理器2、处理器3、处理器4、处理器5、处理器6、处理器7],根据轮询仲裁的基本特征,在本次仲裁中,假设处理器0、处理器1的信号为高,处理器2、处理器3、处理器4、处理器5、处理器6、处理器7的BR信号均为低,则处理器2发出的信号的优先级更高,先让处理器2占据外部总线,然后更新处理器优先级,更新后的处理器优先级由高到低为[处理器3、处理器4、处理器5、处理器6、处理器7、处理器0、处理器1、处理器2],在下一次仲裁到来的时候,处理器2传出的BR信号的优先级由最高变为最低,这样依次以“发牌”式的将仲裁优先信号传给下一个处理器的BR申请信号。在仲裁结束时,仲裁器会将仲裁结果返回给每个处理器。而图中仲裁器与分布式仲裁机制不同的是,传统分布式内的仲裁模块设置多核DSP内,一旦仲裁器设定完成后,无法对处理器的数量进行扩展。图中仲裁器可以灵活增加处理器的数量,并不局限于某个具体的数值。如图7所述,图7中描述的多个处理器中,以8个处理器为主要的处理器的数量参数。所以在现有分布式仲裁中,每个处理器的EBIU传出的BR仲裁信号都要再分成7份分别传输给另外7个处理器,以便于分别与各处理器之间进行交互,获取外部总线归属的仲裁结果。这样的设计相对死板,灵活度不高。在可扩展式EBIU仲裁器的架构中,仲裁器设置在多核DSP外部,将原本每个DSP内的仲裁模块取消,进行集中式仲裁。每个处理器的仲裁信号只需传输给仲裁器即可。这样也就少了对处理器数量的束缚。在最后一个处理器仲裁申请信号后,添加要扩展的处理器的仲裁申请信号,并且优先级是与先前的处理器一样,依次降低(新增的处理器的编号比以前存在的处理器的编号的数字大,所有优先级排在后面)。
如图8所示,表示的是有DPA和CPA仲裁信号的轮询仲裁示意图,而当有CPA/DPA信号到来时,仲裁状态将会跳到内部的CPA/DPA优先仲裁器的状态。当有DPA仲裁信号且没有CPA仲裁信号时,仲裁会只在DPA层进行仲裁;当有CPA仲裁信号到来时,仲裁会直接跳到CPA层进行仲裁。不管是CPA还是DPA的仲裁,都是遵循轮询仲裁的方法。在仲裁结束后,仲裁器会返回arb仲裁信号。
当仲裁结束的时候,优先级状态保留在当前处理器所处的状态上。假设当前处理器3处理器通过发送CPA3仲裁信号占据了总线,等到下一次仲裁申请的时候,每个处理器发送的仲裁信号不论是BR仲裁信号、DPA仲裁信号还是CPA仲裁信号,以优先级仅次于上一次占据外部总线对应的处理器3的申请信号作为最高优先级。这样保证了每个处理器占据总线后,它的仲裁优先级就会从最高变成最低的轮询规则。
在本发明中,处理器的数量可以根据实际需求进行设置,例如将本发明处理器的数量设置为16个,相较于传统EBIU最多只有8个处理器而言,得到了很大的扩展。而在仲裁器中,只需接收到CPA、DPA、BR仲裁申请信号既可以参与总线的仲裁,并且会返回仲裁结果arb给各个处理器,在返回的arb信号中,只有一个arb信号为1,即为外部总线占据成功。这样也就是说,当前有8个处理器(与图8对应)协同工作,但是根据实际工程要求,需要增加处理器时,可以增加到16个以内任何数量的处理器,极大的加强了多核处理器增加内核的灵活性。值得注意的是,arb信号表示仲裁器反馈给处理器的信号。
如图9所示,表示带DPA的仲裁时序图,在没有DPA仲裁信号到来时,仲裁器根据BR仲裁信号来做仲裁运算;而有DPA仲裁信号的时候,仲裁器不考虑BR仲裁信号的影响,直接对DPA仲裁信号做仲裁运算。依次类推,有CPA仲裁信号线到来的时候,仲裁器会直接跳到CPA仲裁层去作仲裁判断,结果会反馈给每个处理器。值得注意的是,图9中的“Master”相对于“slave”而言,例如处理器0需要从处理器1中获取数据时,“Master”表示处理器0,“slave”则表示处理器1,“Master”与“slave”仅表示获取数据之间的主从关系。
如图10所示,表示带CPA和HBR的仲裁时序图,假设初始的处理器优先级顺序为[处理器0、处理器1、处理器2]。
由图可知,在第一阶段,CPA和HBR并没有申请信号,仲裁在BR层中进行,根据轮询仲裁结果,处理器0获得总线拥有权。
其中,处理器0退出总线的占据后,更新处理器优先级顺序为[处理器1、处理器2、处理器0]。
在第二阶段,CPA1和CPA2申请仲裁占据总线,但是此时外部设备也拉低了HBR信号申请占据总线,则仲裁反馈HBG信号,并且停止仲裁层的仲裁,外部设备获得总线。
在第三阶段,外部总线退出对外部总线的占据,则根据CPA层对信号的仲裁,CPA1和CPA2均为低电平,根据处理器1获得外部总线的拥有权。
在第四阶段和第五阶段,都是在CPA层做出的仲裁判断,根据轮询仲裁的规则,处理器2和处理器0依次获得外部总线的拥有权。值得注意的是,以“CPA1”为例,对本发明实施例类似的行文方式进行统一解释,“CPA1”表示当前编号为1的处理器所传输给仲裁器的仲裁信号为CAP。值得注意的是,图10中的“HOST”表示外部处理器。
如图11所示,表示的是带有BR、DPA的仿真波形图。由图可以看出在系统上电复位之后,处理器0默认为当前外部总线的Master,所以在图中信号开始变化时,arb0信号拉高,总线“获得权”交到处理器0手上。在之后有BR信号变化时,系统在时钟的上升沿到来时作仲裁判断,过两个时钟周期后,arb信号会采取相应的变化,这说明了轮询仲裁的算法的实现需要两个时钟周期。由图中arb信号的变化可以看出,他们占据总线的结果是符合轮询仲裁的规律的。而在DPA仲裁信号有变化时,arb信号变化随着DPA仲裁信号的变化而变化,而arb信号也遵循DPA仲裁信号的轮询仲裁规律。其中,值得注意的是,以“arb0”为例,对本发明实施例类似的行文方式进行统一解释,“arb0”表示当前仲裁器传输给编号为0的处理器的仲裁信号。
本发明采用轮询的方式,当EBIU需要增加处理器的数量时,通过将新增的处理器连接到外部总线上,并将新增的处理器的仲裁信号传入仲裁器,以实现对EBIU系统扩展处理器数量的目的,并通过设定仲裁信号的优先级,确定外部总线的具体归属。本发明可以根据实际需求,以及EBIU系统的配置,实现灵活扩展处理器数量的目的。
本发明实施例还提出了一种基于AXI总线协议的DSP片上可扩展EBIU的装置,用于实现本发明基于AXI总线协议的DSP片上可扩展EBIU的方法,装置包括:EBIU、多核DSP和仲裁器,其中,所述多核DSP具有多个处理器,每个处理器内设置有一个对应的EBIU,EBIU通过AXI总线协议与对应的处理器连接,EBIU通过外部总线与外部设备连接,所述仲裁器与所述多核DSP和所述外部设备连接;
所述EBIU用于与对应的处理器连接,以便于当需要新增处理器时,以将新增的处理器连接到外部总线上;
所述仲裁器用于与新增的处理器连接,以接收新增的处理器的仲裁信号;
所述仲裁器还用于根据仲裁信号优先级和处理器优先级决定外部总线的归属。
关于基于AXI总线协议的DSP片上可扩展EBIU的装置的工作机制,请参照前述实施例,在此不再赘述。
值得说明的是,上述装置和系统内的模块、单元之间的信息交互、执行过程等内容,由于与本发明的处理方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本领域普通技术人员可以理解实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,Random AccessMemory)、磁盘或光盘等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于AXI总线协议的DSP片上可扩展EBIU的方法,其特征在于,包括:
EBIU通过AXI总线与多核DSP内对应的处理器连接,EBIU通过外部总线与外部设备连接,其中,所述多核DSP具有多个处理器,每个处理器包含一个EBIU模块;
创建EBIU的仲裁器,当需要增加预设数量的处理器时,将新增的处理器连接到外部总线上,并在所述仲裁器中设置新增的处理器的仲裁信号;
根据仲裁信号优先级和处理器优先级决定外部总线的归属。
2.根据权利要求1所述的基于AXI总线协议的DSP片上可扩展EBIU的方法,其特征在于,所述仲裁信号包括:HBR信号,所述HBR信号由所述外部设备发起,所述根据仲裁信号优先级和处理器优先级决定外部总线的归属包括:
所述仲裁器检测外部设备的HBR信号是否申请占据外部总线;
如果所述HBR信号申请占据外部总线,则向所述外部设备反馈HBG信号,以通知所述外部设备占据所述外部总线,并停止进行对DSP的申请信号的仲裁运算;
如果所述HBR信号没有申请占据外部总线,则根据处理器优先级和剩余仲裁信号的优先级决定外部总线的归属。
3.根据权利要求2所述的基于AXI总线协议的DSP片上可扩展EBIU的方法,其特征在于,仲裁信号还包括CPA信号、DPA信号和BR信号,所述CPA信号、所述DPA信号和所述BR信号由处理器发起;
所述如果所述HBR信号没有申请占据外部总线,则根据处理器优先级和剩余仲裁信号的优先级决定外部总线的归属,包括:
如果所述HBR信号没有申请占据外部总线,则所述仲裁器检测是否存在所述CPA信号;
如果存在所述CPA信号,则采用轮询的方式进行所述CPA信号的仲裁,将外部总线分配给优先级最高的目标处理器,在所述目标处理器退出外部总线的占据后,更新所述处理器优先级;
如果不存在所述CPA信号,则所述仲裁器检测是否存在所述DPA信号;
如果存在所述DPA信号,则采用轮询的方式进行所述DPA信号的仲裁,将外部总线分配给优先级最高的目标处理器,在所述目标处理器退出外部总线的占据后,更新所述处理器优先级;
如果不存在所述DPA信号,则所述仲裁器检测是否存在所述BR信号;
如果存在所述BR信号,则采用轮询的方式进行所述BR信号的仲裁,将外部总线分配给优先级最高的目标处理器,在所述目标处理器退出外部总线的占据后,更新所述处理器优先级。
4.根据权利要求3所述的基于AXI总线协议的DSP片上可扩展EBIU的方法,其特征在于,所述在所述目标处理器退出外部总线的占据后,更新所述处理器优先级包括:
基于历史的处理器优先级,将所述目标处理器调整为最低优先级,得到更新后的处理器优先级。
5.根据权利要求4所述的基于AXI总线协议的DSP片上可扩展EBIU的方法,其特征在于,所述基于历史的处理器优先级,将所述目标处理器调整为最低优先级,得到更新后的处理器优先级包括:
基于历史的处理器优先级,以所述目标处理器为分界参照,将所述目标处理器之前的所有处理器作为第一处理器队列,所述目标处理器之后的所有处理器作为第二处理器队列,其中,所述目标处理器位于第一处理器队列的最后;
将第一处理器队列追加到第二处理器队列之后,以将所述目标处理器的下一个处理器调整为最高优先级,将所述目标处理器调整为最低优先级,得到更新后的处理器优先级。
6.根据权利要求3所述的基于AXI总线协议的DSP片上可扩展EBIU的方法,其特征在于,各个处理器所发起的所述CPA信号、所述DPA信号和所述BR信号的占据权重相同。
7.根据权利要求3所述的基于AXI总线协议的DSP片上可扩展EBIU的方法,其特征在于,所述CPA仲裁信号的产生包括:当有数据缓存到OFIFO存储器内时,EBIU激活当前处理器,产生CPA的仲裁申请信号。
8.根据权利要求7所述的基于AXI总线协议的DSP片上可扩展EBIU的方法,其特征在于,所述DPA仲裁信号的产生包括:当DMA需要给外部设备或者其它DSP处理器传输数据时,则拉低DPA,EBIU激活当前DSP处理器,产生所述DPA的仲裁申请信号。
9.根据权利要求3所述的基于AXI总线协议的DSP片上可扩展EBIU的方法,其特征在于,所述BR仲裁信号的产生包括:根据DSP内部寄存器的状态提示来决定是否申请仲裁,产生BR仲裁申请信号,BR仲裁申请信号为低时代表申请总线仲裁。
10.一种基于AXI总线协议的DSP片上可扩展EBIU的系统,其特征在于,包括:EBIU、多核DSP和仲裁器,其中,所述多核DSP具有多个处理器,每个处理器内设置有一个对应的EBIU,EBIU通过AXI总线协议与对应的处理器连接,EBIU通过外部总线与外部设备连接,所述仲裁器与所述多核DSP和所述外部设备连接;
所述EBIU用于与对应的处理器连接,当需要新增处理器时,将新增的处理器连接到外部总线上;
所述仲裁器用于与新增的处理器连接,以接收新增的处理器的仲裁信号;
所述仲裁器还用于根据仲裁信号优先级和处理器优先级决定外部总线的归属。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211258481.7A CN115640245A (zh) | 2022-10-14 | 2022-10-14 | 一种基于axi总线协议的dsp片上可扩展ebiu的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211258481.7A CN115640245A (zh) | 2022-10-14 | 2022-10-14 | 一种基于axi总线协议的dsp片上可扩展ebiu的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115640245A true CN115640245A (zh) | 2023-01-24 |
Family
ID=84945468
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211258481.7A Pending CN115640245A (zh) | 2022-10-14 | 2022-10-14 | 一种基于axi总线协议的dsp片上可扩展ebiu的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115640245A (zh) |
-
2022
- 2022-10-14 CN CN202211258481.7A patent/CN115640245A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100499556C (zh) | 异构多核处理器高速异步互连通信网络 | |
CN110109847B (zh) | Apb总线多个主设备的仲裁方法、系统及存储介质 | |
JP2002530744A (ja) | 多重レベル接続識別を備えた通信のシステムおよび方法 | |
US9798686B2 (en) | Slave side bus arbitration | |
CN111290986B (zh) | 一种基于神经网络的总线互联系统 | |
US9122802B2 (en) | Interconnect, bus system with interconnect and bus system operating method | |
JP4902640B2 (ja) | 集積回路、及び集積回路システム | |
CN115640245A (zh) | 一种基于axi总线协议的dsp片上可扩展ebiu的方法和装置 | |
CN106776390A (zh) | 多设备访问存储器的实现方法 | |
US7865645B2 (en) | Bus arbiter, bus device and system for granting successive requests by a master without rearbitration | |
JP2013196245A (ja) | シミュレーション方法、シミュレーション装置及びシミュレーションプログラム | |
JP2002149591A (ja) | プロセッサ・ローカル・バス・システムでのバス最適化の方法および装置 | |
CN112134814B (zh) | 一种板级互联网络结构及通信方法 | |
US9672168B2 (en) | System interconnection of system-on-chip | |
CN102591820B (zh) | 一种idma总线桥装置 | |
CN106326172A (zh) | 一种APB总线slave接口扩展电路及其使用方法 | |
KR100487218B1 (ko) | 칩 내장형 버스를 인터페이스하기 위한 장치 및 방법 | |
CN115269467B (zh) | 一种总线仲裁的方法、装置、存储介质及电子设备 | |
JP4684577B2 (ja) | 高速の帯域幅のシステムバスを仲裁するためのバスシステム及びその方法 | |
CN117176674B (zh) | 片上网络及数据传输方法、芯片、设备 | |
CN117951061A (zh) | 一种多通道数据总线的仲裁方法 | |
CN111210011B (zh) | 数据处理装置及相关产品 | |
JP5028817B2 (ja) | バスシステム | |
KR100243868B1 (ko) | 주 전산기에서의 중재로직 방법 | |
JPH0844661A (ja) | 情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |