CN101741722A - 数据交互方法及装置 - Google Patents
数据交互方法及装置 Download PDFInfo
- Publication number
- CN101741722A CN101741722A CN200910211984A CN200910211984A CN101741722A CN 101741722 A CN101741722 A CN 101741722A CN 200910211984 A CN200910211984 A CN 200910211984A CN 200910211984 A CN200910211984 A CN 200910211984A CN 101741722 A CN101741722 A CN 101741722A
- Authority
- CN
- China
- Prior art keywords
- priority
- source
- sequence number
- source end
- correspondence
- 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
本发明公开了一种数据交互方法及装置,该方法包括:使用多个源端上一次运行时最高优先级对应的源序号,对本次运行时多个源端的所有源序号进行优先级的重新编址;按照重新编址的源序号的优先级,对用于接收源端的请求信号的寄存器进行寻址;实现寻址得到的寄存器中第一个寻址结果对应的源端与目的端的数据交互。本发明实现了固定优先级的快速特点和循环优先级的公平性的兼顾,并实现了在固定延迟时间内完成循环优先级的仲裁且该时间不随源端数量的增加而增加。
Description
技术领域
本发明涉及通信领域,具体而言,涉及一种数据交互方法及装置。
背景技术
在数字电路设计中,源端和目的端存在三种对应关系,即一个源端对应一个目的端的一对一的对应关系、一个源端对应多个目的端的一对多的对应关系,以及多个源端对应一个目的端的多对一的对应关系,其中,多个源端对应一个目的端的多对一的关系的处理最为复杂。
图1是根据相关技术的仲裁机制典型应用场景的示意图,如图1所示,多个源端(即,多个源数据,图1中仅以源0数据、源1数据和源2数据三个源数据为例)通过多路选择器(MultipleXers,简称为MUX)连接至一个目的端(即,目的数据)。该多路选择器需要一套仲裁机制辅助工作,而该仲裁机制用于记录并仲裁请求进行数据交互的多个源端的请求信号(即,源0请求、源1请求和源2请求),以保证该多个源端能分时与该目的端进行数据交互。
上述仲裁机制的基本原理是根据各个源端的请求信号,按照某种仲裁原则,产生选通信号,使得对应的源端能分时与目的端进行数据交互。其中,上述仲裁原则通常分为两种:一种是固定优先级,另一种是循环优先级。
图2是根据相关技术的固定优先级的仲裁原理的示意图,如图2所示,分别规定了每个源端的优先级。假设源0拥有的优先级0代表最高优先级、源1拥有的优先级1代表次高优先级、源2拥有的优先级2代表最低优先级,每次仲裁时都依照从高到低的优先级响应源端请求信号。例如:当源0和源2同时请求数据交互时,依照优先级规则,源0的优先级比源2的优先级高,因此先响应源0的请求信号,实现源0与目的端的数据交互,待源0响应结束后,并在确定源0和源1都无请求信号的情况下,才响应源2的请求信号,实现源2与目的端的数据交互。
固定优先级仲裁原则适用于源端数量不多,且彼此之间数据请求信号频率存在明显差距的情况。因为逻辑编程语句if...else...本身就具有一定的优先级,这就使得固定优先级仲裁原则易于使用数字逻辑实现,并且固定优先级的仲裁可以在一个时钟周期内完成。但是,当一个高优先级源端的请求信号频率较高时,一个低优先级源端可能需要等待很多个时钟周期才能与一个目的端进行数据交互,从而造成各个优先级源端与该目的端进行数据交互不具有良好的公平性;同时,当源端数量很多而且该很多源端彼此之间数据请求信号频率接近时,固定优先级仲裁原则难以规划合理的优先级实现该很多源端与该目的端的数据交互,因此不具有良好的扩展性。
图3是根据相关技术的循环优先级的仲裁原理的示意图,如图3所示,每当优先级最高的源端被响应时,先将此源端由最高优先级调整为最低优先级,然后将其余源端对应的优先级依次提高,从而每个源端在循环中都能获得平等优先级。图3中,假设优先级0代表优先级最高、优先级1代表次高优先级、优先级2代表最低优先级,每次仲裁时都依照从高到低的优先级响应源端请求信号。例如:先设置源0为优先级0、源1为优先级1、源2为优先级2,当源0和源2同时请求数据交互时,因为源0的优先级高于源2,则先响应源0的请求信号,实现源0与目的端的数据交互。在源0响应结束后,重新设定源0为优先级2,源1的优先级为0、源2的优先级为1。然后,如果确定源1无请求信号,则响应源2的请求信号并实现源2与目的端的数据交互,而不再确定源0是否存在请求信号。
循环优先级仲裁原则适用于源端数量多,总线资源竞争严重的情况,它可以为每个源端提供近乎平等的机会,同时还具有良好的扩展性,不需要为源端数量的增加进行优先级重新排序。相关技术中,对主要以软件方式,利用for循环语句实现。但是,循环优先级仲裁原则需要足够的时钟周期才能获得仲裁结果,从而实现每一个源端与目的端的数据交互,并且,随着源端数目的增加,该时钟周期也会相应的增加。
发明内容
针对相关技术中的固定优先级仲裁原则公平性和扩展性不好,并且循环优先级仲裁原则效率不高的问题而提出本发明,为此,本发明的主要目的在于提供一种数据交互方法及装置,以解决上述问题。
为了实现上述目的,根据本发明的一个方面,提供了一种数据交互方法。
根据本发明的一种数据交互方法包括:使用多个源端上一次运行时最高优先级对应的源序号,对本次运行时多个源端的所有源序号进行优先级的重新编址;按照重新编址的源序号的优先级,对用于接收源端的请求信号的寄存器进行寻址;实现寻址得到的寄存器中第一个寻址结果对应的源端与目的端的数据交互。
优选地,使用多个源端上一次运行时最高优先级对应的源序号,对本次运行时多个源端的所有源序号进行优先级的重新编址包括:使用多个源端上一次运行时最高优先级对应的源序号,对本次运行时最高优先级对应的源序号进行优先级的重新编址;使用本次运行时最高优先级对应的源序号,对本次运行时除最高优先级对应的源序号之外的其它源序号进行优先级的重新编址。
优选地,使用多个源端上一次运行时最高优先级对应的源序号,对本次运行时多个源端的所有源序号进行优先级的重新编址包括以下之一:设置计数器,以累加方式确定本次运行时优先级对应的源序号;设置计数器,以递减方式确定本次运行时优先级对应的源序号;设置固定列表,以列表对应方式确定本次运行时优先级对应的源序号。
优选地,在对用于接收源端的请求信号的寄存器进行寻址之前,上述方法还包括:使用寄存器接收多个源端的请求信号。
优选地,在使用寄存器接收多个源端的请求信号之前,上述方法还包括:设置位宽与多个源端的数量相同的寄存器;设置寄存器中的每一个位对应于多个源端中的每一个源端。
优选地,使用寄存器接收多个源端的请求信号包括:判断每一个源端是否存在请求信号,并对存在请求信号的每一个源端对应的寄存器中的每一个位进行位操作。
优选地,按照重新编址的源序号的优先级,对用于接收源端的请求信号的寄存器进行寻址包括:按照从高到低的优先级以及优先级与源序号的对应关系,在寄存器中查找位操作成功的位;如果查找成功,则确定此位对应的源端为寄存器中第一个寻址结果对应的源端,即第一个请求获得响应的源端。
优选地,在使用多个源端上一次运行时最高优先级对应的源序号,对本次运行时源序号进行优先级的重新编址之前,上述方法还包括:对多个源端进行排序,并为排序后的源端分配对应的源序号;使用对应的源序号标识源端的初始优先级,其中,初始优先级为多个源端首次运行时的优先级。
为了实现上述目的,根据本发明的另一方面,提供了一种数据交互装置。
根据本发明的一种数据交互装置包括:重新编址模块,用于使用多个源端上一次运行时最高优先级对应的源序号,对本次运行时多个源端的所有源序号进行优先级的重新编址;寻址模块,用于按照重新编址的源序号的优先级,对用于接收源端的请求信号的寄存器进行寻址;数据交互模块,用于实现寻址得到的寄存器中第一个寻址结果对应的源端与目的端的数据交互。
优选地,该重新编址模块包括:第一重新编址子模块,用于使用多个源端上一次运行时最高优先级对应的源序号,对本次运行时最高优先级对应的源序号进行优先级的重新编址;第二重新编址子模块,用于使用本次运行时最高优先级对应的源序号,对本次运行时除最高优先级对应的源序号之外的其它源序号进行优先级的重新编址。
通过本发明,使用多个源端上一次运行时最高优先级对应的源序号,对本次运行时多个源端的所有源序号进行优先级的重新编址,并按照重新编址的源序号的优先级,对用于接收源端的请求信号的寄存器进行寻址,并实现寻址得到的寄存器中第一个寻址结果对应的源端与目的端的数据交互,解决了相关技术中的固定优先级仲裁原则公平性和扩展性不好,并且循环优先级仲裁原则效率不高的问题,实现了固定优先级的快速特点和循环优先级的公平性的兼顾,并实现了在固定延迟时间内完成循环优先级的仲裁且该时间不随源端数量的增加而增加。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据相关技术的仲裁机制典型应用场景的示意图;
图2是根据相关技术的固定优先级仲裁的原理的示意图;
图3是根据相关技术的循环优先级仲裁的原理的示意图;
图4是根据本发明实施例的数据交互方法的流程图;
图5是根据本发明实施例的数据交互装置的结构框图;
图6是根据本发明实施例的数据交互装置的优选结构框图;
图7是根据本发明实施例的图5的具体实现的示意图;
图8是根据本发明实施例的允许单元的工作逻辑的流程图;
图9是根据本发明实施例的请求保持寄存器的置位逻辑的流程图;
图10是根据本发明实施例的仲裁判断的逻辑的流程图;
图11是根据本发明实施例的优先级编址单元的工作逻辑的流程图;
图12是根据本发明实施例的最高优先级循环单元的工作逻辑的流程图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
方法实施例
根据本发明的实施例,提供了一种数据交互方法,该方法利用数字逻辑结构实现循环优先级仲裁机制并进行数据交互。该方法利用循环优先级仲裁原则中良好扩展性并克服其软件实现方式中的效率不高,而且该方法集合了固定优先级的快速特点和循环优先级的公平性扩展性,使得循环优先级所用时间不随源端数量的增加而增加。
图4是根据本发明实施例的数据交互方法的流程图,如图4所示,该方法包括如下的步骤S402至步骤S406:
步骤S402,使用多个源端上一次运行时最高优先级对应的源序号,对本次运行时多个源端的所有源序号进行优先级的重新编址。
在步骤S402之前,先对上述多个源端进行排序,并为排序后的源端分配对应的源序号,以便每个源端都能获得唯一的序号,例如图1中的源0、源1和源2。然后使用上述对应的源序号标识源端的初始优先级,该初始优先级为上述多个源端首次运行时的优先级。再然后当使用该初始优先级进行首次运行之后,使用该初始优先级中最高优先级对应的源序号对后续运行时的所有源序号进行优先级的重新编址,以实现后续过程中利用数字逻辑结构实现循环优先级并进行数据交互。下面对上述情况进行详细描述。
首先,使用多个源端上一次运行时最高优先级对应的源序号,对本次运行时最高优先级对应的源序号进行优先级的重新编址(即,确定当前最高优先级所在的源序号),以便对最高优先级对应的源序号实现循环优先级的变换,并解决固定优先级的公平性和扩展性不好的问题。需要说明的是,在每次源端的请求信号响应结束之后,最高优先级对应的源序号改变一次,其改变范围不超过上述多个源端的数量。例如,其改变方式可以是累加方式,即设置计数器,其上限为上述多个源端的数量,并且,其累加条件为:计数器值与当前响应的源序号相等,且此响应已结束,该计数器值的含义为如果计数器值为1则说明源1具有最高优先级。
其次,使用本次运行时最高优先级对应的源序号,对本次运行时除最高优先级对应的源序号之外的其它源序号进行优先级的重新编址(即,基于上述序号重新编址仲裁优先级),以便对其它优先级对应的源序号实现循环优先级的变换,并解决固定优先级的公平性和扩展性不好的问题。需要说明的是,上述编址方法为以符号的形式重记优先级。例如:记变量A0为最高优先级,则使A0等于上述序号值;A1为次高优先级,则使A1等于上述序号值加1,如果和等于第一步所得源端个数,则使A1等于0。
其中,上述优先级重新编址的实现方式包括但不限于以下之一:设置计数器,以累加方式确定本次运行时该优先级对应的源序号;设置计数器,以递减方式确定本次运行时该优先级对应的源序号;设置固定列表,以列表对应方式确定本次运行时该优先级对应的源序号。需要说明的是,上述优先级重新编址的方式仅为优选方法,可以根据实际情况采取其它方式。
步骤S404,按照重新编址的源序号的优先级,对用于接收源端的请求信号的寄存器进行寻址。
具体地,在对用于接收源端的请求信号的寄存器进行寻址之前,需要预先对该寄存器进行设置,下面对该设置过程进行详细描述。
(1)根据目的端的读写并发能力预先确定多个源端的数量,例如:如果目的端读写数据可同时操作,则将源端的读数据请求和写数据请求分别仲裁,当仲裁读数据请求时,只统计读请求操作的源端数据量;当仲裁写数据请求时,只统计写请求操作的源端数量。
(2)预先设置位宽与该多个源端的数量相同的寄存器并预先设置该寄存器中的每一个位(即,比特位)对应于该多个源端中的每一个源端。需要说明的是,上述寄存器的预先设置方法仅为优选方法,实际应用中可以根据情况对寄存器的位宽以及利用该寄存器几个比特位对应每个源端进行其它设置。
在寄存器的设置过程之后,则使用寄存器接收该多个源端的请求信号。其中,需要判断每一个源端是否存在请求信号,并对存在请求信号的每一个源端对应的每一个位进行位操作,以实现使用固定优先级判断源端是否存在请求信号。
下面对上述位操作进行详细描述。同步并行判断每一个源端是否被允许发送请求信号,其中,每一个源端只有在被允许发送请求信号时,才能与目的端进行数据交互。上述判断结果取决于如下两种情况:如果该源端已经发送请求信号并且该请求信号并未得到响应,则该源端不被允许再次发送请求信号;如果该源端请求信号已响应结束,则该源端被允许再次发送请求信号。具体地,当源端被允许发送请求信号时,如果仲裁机制接收到请求信号,则使用寄存器接收该源端的请求信号,其接收方式为根据此源端的序号在寄存器中找到相应的比特位,并对该比特位进行位操作(例如假设1为有效,如果仲裁机制接收到序号为0的源端的请求信号,则将寄存器0比特位置1)。然后,当该源端的请求信号响应结束时,则根据此源端的序号在寄存器中找到相应的比特位,并对该比特位再次进行位操作(例如0为无效,如果序号为0的源端的请求信号响应结束时,则将寄存器0比特位清0)。
需要说明的是,如果某个源端被允许发送请求信号,则使用寄存器接收该源端请求信号并保持至此请求信号响应结束,并且,从该寄存器接收该源端请求信号到该请求信号响应结束的过程中,该源端不被允许再次发送请求信号。另外,上述位操作的设置仅为优选方法,可以根据实际情况对寄存器进行其它设置。
在使用寄存器接收多个源端的请求信号之后,则按照重新编址的源序号的优先级,对用于接收源端的请求信号的寄存器进行寻址。具体地,按照从高到低的优先级以及优先级与源序号的对应关系,在寄存器中查找位操作成功的位;如果查找成功(即,根据优先级顺序,遇到第一个位操作成功的比特位置),则确定该位对应的源端为寄存器中第一个寻址结果对应的源端,即第一个请求获得响应的源端。
步骤S406,实现寻址得到的寄存器中第一个寻址结果对应的源端与目的端的数据交互。
具体地,上述实现该源端与目的端的数据交互,即该源端占用总线直至本次请求响应结束。例如:每次执行仲裁时都以固定顺序使用上述优先级(即先使用A0,再使用A1),并依次寻址上述寄存器的A0位、A1位,遇到的第一个请求所在的比特位置就是本次仲裁结果,序号与之相同的源将占用总线直至本次请求响应结束。该响应过程实现了利用数字逻辑结构实现循环优先级并进行数据交互,解决了相关技术中的固定优先级仲裁原则公平性和扩展性不好,并且循环优先级仲裁原则效率不高的问题。并且,在该响应结束后该仲裁机制进入空闲状态。只有在空闲状态,仲裁机制才再次执行仲裁。
通过该实施例,使用多个源端上一次运行时最高优先级对应的源序号,对本次运行时多个源端的所有源序号进行优先级的重新编址,并按照重新编址的源序号的优先级,对用于接收源端的请求信号的寄存器进行寻址,并实现寻址得到的寄存器中第一个寻址结果对应的源端与目的端的数据交互,解决了相关技术中的固定优先级仲裁原则公平性和扩展性不好,并且循环优先级仲裁原则效率不高的问题,实现了固定优先级的快速特点和循环优先级的公平性的兼顾,并实现了在固定延迟时间内完成循环优先级的仲裁且该时间不随源端数量的增加而增加。
装置实施例
根据本发明的实施例,提供了一种数据交互装置,该装置可以用于实现上述数据交互方法。图5是根据本发明实施例的数据交互装置的结构框图,如图5所示,该装置包括:重新编址模块502、寻址模块504、数据交互模块506。下面对上述结构进行详细描述。
重新编址模块502,用于使用多个源端上一次运行时最高优先级对应的源序号,对本次运行时多个源端的所有源序号进行优先级的重新编址。
其中,上述重新编址模块502重新编址的方式包括但不限于以下之一:设置计数器,以累加方式确定本次运行时最高优先级对应的源序号;设置计数器,以递减方式确定本次运行时最高优先级对应的源序号;设置固定列表,以列表对应方式确定本次运行时最高优先级对应的源序号。需要说明的是,上述优先级重新编址的方式仅为优选方法,可以根据实际情况采取其它方式。
寻址模块504,用于按照重新编址模块502重新编址的源序号的优先级,对用于接收源端的请求信号的寄存器进行寻址。
具体地,寻址模块504按照从高到低的优先级以及优先级与源序号的对应关系,在寄存器中查找位操作成功的位;如果查找成功(即,根据优先级顺序,成功查找到第一个位操作成功的比特位置),则确定该位对应的源端为寄存器中第一个寻址结果对应的源端,并实现该源端与目的端的数据交互(即,该源端占用总线直至本次请求响应结束)。例如:每次执行仲裁时都以固定顺序使用上述优先级(即先使用A0,再使用A1),并依次寻址上述寄存器的A0位、A1位,遇到的第一个请求所在的比特位置就是本次仲裁结果。
数据交互模块506,连接至寻址模块504,用于实现寻址模块504寻址得到的寄存器中第一个寻址结果对应的源端与目的端的数据交互。
具体地,序号与之相同的源端通过数据交互模块506与目的端进行数据交互,并占用总线直至本次请求响应结束。而且,在该响应结束后该仲裁机制进入空闲状态。只有在空闲状态,仲裁机制才再次执行仲裁。
图6是根据本发明实施例的数据交互装置的优选结构框图,如图6所示,重新编址模块502包括:第一重新编址子模块602、第二重新编址子模块604。下面对上述结构进行详细描述。
第一重新编址子模块602,用于使用多个源端上一次运行时最高优先级对应的源序号,对本次运行时最高优先级对应的源序号进行优先级的重新编址。
具体地,第一重新编址子模块602用于确定当前最高优先级所在的源序号,并在每次源端的请求信号响应结束之后,最高优先级对应的源序号改变一次,其改变范围不超过上述多个源端的数量。其改变方式可以是累加方式,即设置计数器,其上限为上述多个源端的数量,并且,其累加条件为:计数器值与当前响应的源序号相等,且此响应已结束,该计数器值的含义为如果计数器值为1则说明源1具有最高优先级。
第二重新编址子模块604,连接至第一重新编址子模块602,用于使用本次运行时第一重新编址子模块602重新编址的最高优先级对应的源序号,对本次运行时除最高优先级对应的源序号之外的其它源序号进行优先级的重新编址。
具体地,第二重新编址子模块604基于上述序号重新编址仲裁优先级,并以符号的形式重记优先级。例如:记变量A0为最高优先级,则使A0等于上述序号值;A1为次高优先级,则使A1等于上述序号值加1,如果和等于第一步所得源端个数,则使A1等于0。
需要说明的是,装置实施例中描述的数据交互装置对应于上述的方法实施例,其具体的实现过程在方法实施例中已经进行过详细说明,在此不再赘述。
下面将结合实例对本发明实施例的实现过程进行详细描述。
本发明实施例假定共有三个源端读取目的端数据,要实现让这三个源以循环优先级的顺序获取目的数据。根据本发明实施例的步骤,先确定待仲裁的源端数量等于3,且分别分配序号为源0、源1和源2。此序号的顺序与仲裁机制第一次运行时的初始优先级相同。
图7是根据本发明实施例的逻辑结构示意图,如图7所示,依照本发明实施例的方法构造的逻辑结构,主要包括允许单元、请求保持寄存器(即,上述寄存器)、最高优先级循环单元、优先级编址单元(即,重新编址模块502)和仲裁判断单元(即,上述寻址模块504)。下面详细描述上述各个单元的功能及其工作逻辑。
图8是根据本发明实施例的允许单元的工作逻辑的流程图,如图8所示,以源0为例描述了允许单元的工作逻辑。系统上电未收到源0请求时,输出允许信号0为有效,即允许源0提出请求;如果收到源0请求,则将允许信号设置为无效,即不允许源0再次提出请求;当已收到的源0请求响应结束,则将允许信号至有效,即允许源0再次提出请求。需要说明的是,图7中三个允许单元分别与源0、源1和源2相对应,每个允许单元并行独立工作,以便判断各个源是否被允许提出请求。
图9是根据本发明实施例的请求保持寄存器的置位逻辑的流程图,如图9所示,请求保持寄存器用于每收到一个源端请求时记录这个请求。设置本实施例中请求保持寄存器的位宽为3比特,并假定1表示已请求、0表示未请求,其中比特0与源0对应,比特1与源1对应,比特2与源2对应。当收到源0请求时,将比特0置1;源0请求已响应结束时,将比特0清0。比特1和比特2的情况与比特0类似。需要说明的是,当上述请求保持寄存器存在非0比特位时,会触发仲裁判断。每次仲裁时,仲裁判断单元都依据相同优先级变量进行,此操作与固定优先级仲裁机制相似,一个时钟周期便可得出仲裁结果。
图10是根据本发明实施例的仲裁判断的逻辑的流程图,如图10所示,本发明实施例中假定A0代表最高优先级、A1代表次高优先级、A2代表最低优先级。先判断请求保持寄存器的A0比特位置是否为1,如果判断结果为是,则响应A0所代表的源请求,如果判断结果为否,则判断请求保持寄存器的A1比特位置是否为1,判断A1之后的处理流程与A0类似。其中,变量A0、A1、A2所代表的值来自于优先级编址单元。
图11是根据本发明实施例的优先级编址单元的工作逻辑的流程图,如图11所示,该优先级编址单元负责为变量A0、A1和A2赋值,其赋值原理为:A0等于最高级优先级的序号值(即,设置最高优先级A0等于优先级循环单元计数器输出值);A1等于A0加1(设置优先级A1等于优先级循环单元计数器输出值+1),如果上述结果大于3,则设置A1等于0;A2等于A0加2(即,设置优先级A2等于优先级循环单元计数器输出值+2),如果上述结果大于3,则设置A2等于0。其中,最高优先级的序号值来自于最高优先级循环单元的输出。此单元的功能是指示当前最高优先级对应哪个源。如输出结果为1,说明此时源1的请求拥有最高优先级,于是上述A0=1、A1=2、A2=0,仲裁时先判断源1请求,再判断源2请求,最后判断源0请求。
图12是根据本发明实施例的最高优先级循环单元的工作逻辑的流程图,如图12所示,首先设置计数器的有效范围是[0,1,2],计数器的值就是最高优先级循环单元的输出。如果当前计数器值与当前响应的源序号相等,并且当计数器的值所代表的源请求已响应结束时,计数器值加1,如果加1后的计数器值为源数量最大值3,则计数器清0(即,要求累加的结果不超过计数器的设置范围)。
另外,图7中,MUX单元的作用是将响应结束信号依照仲裁结果分发给对应源的允许单元和请求保持寄存器的比特位。其中,响应结束信号的获得方式因应用场景而异。
综上所述,根据本发明的上述实施例,提供了一种数据交互方法及装置。通过使用多个源端上一次运行时最高优先级对应的源序号,对本次运行时多个源端的所有源序号进行优先级的重新编址,并按照重新编址的源序号的优先级,对用于接收源端的请求信号的寄存器进行寻址,并实现寻址得到的寄存器中第一个寻址结果对应的源端与目的端的数据交互,解决了相关技术中的固定优先级仲裁原则公平性和扩展性不好,并且循环优先级仲裁原则效率不高的问题。具体地,当多个(大于等于2)源端向一个目的端请求数据时,上述方法通过使用依据最高优先级重新编址和套用固定优先级,实现了固定优先级的快速特点和循环优先级的公平性扩展性的集合,并实现了在固定延迟时间内完成循环优先级的仲裁且该时间不随源端数量的增加而增加。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用数字逻辑器件(例如:CPLD,FPGA,ASIC等)来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种数据交互方法,其特征在于,包括:
使用多个源端上一次运行时最高优先级对应的源序号,对本次运行时所述多个源端的所有源序号进行优先级的重新编址;
按照重新编址的源序号的优先级,对用于接收源端的请求信号的寄存器进行寻址;
实现寻址得到的所述寄存器中第一个寻址结果对应的源端与目的端的数据交互。
2.根据权利要求1所述的方法,其特征在于,使用所述多个源端上一次运行时最高优先级对应的所述源序号,对本次运行时所述多个源端的所述所有源序号进行所述优先级的重新编址包括:
使用所述多个源端上一次运行时最高优先级对应的所述源序号,对本次运行时所述最高优先级对应的源序号进行所述优先级的重新编址;
使用本次运行时所述最高优先级对应的所述源序号,对本次运行时除所述最高优先级对应的所述源序号之外的其它源序号进行所述优先级的重新编址。
3.根据权利要求1所述的方法,其特征在于,使用所述多个源端上一次运行时最高优先级对应的所述源序号,对本次运行时所述多个源端的所述所有源序号进行所述优先级的重新编址包括以下之一:
设置计数器,以累加方式确定本次运行时所述优先级对应的所述源序号;
设置计数器,以递减方式确定本次运行时所述优先级对应的所述源序号;
设置固定列表,以列表对应方式确定本次运行时所述优先级对应的所述源序号。
4.根据权利要求1所述的方法,其特征在于,在对所述用于接收源端的所述请求信号的所述寄存器进行寻址之前,所述方法还包括:
使用所述寄存器接收所述多个源端的所述请求信号。
5.根据权利要求4所述的方法,其特征在于,在使用所述寄存器接收所述多个源端的所述请求信号之前,所述方法还包括:
设置位宽与所述多个源端的数量相同的寄存器;
设置所述寄存器中的每一个位对应于所述多个源端中的每一个源端。
6.根据权利要求5所述的方法,其特征在于,使用所述寄存器接收所述多个源端的所述请求信号包括:
判断所述每一个源端是否存在所述请求信号,并对存在所述请求信号的每一个源端对应的每一个位进行位操作。
7.根据权利要求6所述的方法,其特征在于,按照所述重新编址的所述源序号的所述优先级,对所述用于接收源端的所述请求信号的所述寄存器进行寻址包括:
按照从高到低的所述优先级以及所述优先级与所述源序号的对应关系,在所述寄存器中查找位操作成功的位;
如果查找成功,则确定所述位对应的源端为所述寄存器中第一个寻址结果对应的源端。
8.根据权利要求1所述的方法,其特征在于,在使用所述多个源端上一次运行时最高优先级对应的所述源序号,对本次运行时所述源序号进行所述优先级的重新编址之前,所述方法还包括:
对所述多个源端进行排序,并为排序后的所述源端分配对应的源序号;
使用所述对应的源序号标识所述源端的初始优先级,其中,所述初始优先级为所述多个源端首次运行时的优先级。
9.一种数据交互装置,其特征在于,包括:
重新编址模块,用于使用多个源端上一次运行时最高优先级对应的源序号,对本次运行时所述多个源端的所有源序号进行优先级的重新编址;
寻址模块,用于按照重新编址的源序号的优先级,对用于接收源端的请求信号的寄存器进行寻址;
数据交互模块,用于实现寻址得到的所述寄存器中第一个寻址结果对应的源端与目的端的数据交互。
10.根据权利要求9所述的装置,其特征在于,所述重新编址模块包括:
第一重新编址子模块,用于使用所述多个源端上一次运行时最高优先级对应的所述源序号,对本次运行时所述最高优先级对应的源序号进行所述优先级的重新编址;
第二重新编址子模块,用于使用本次运行时所述最高优先级对应的所述源序号,对本次运行时除所述最高优先级对应的所述源序号之外的其它源序号进行所述优先级的重新编址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910211984A CN101741722A (zh) | 2009-12-10 | 2009-12-10 | 数据交互方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910211984A CN101741722A (zh) | 2009-12-10 | 2009-12-10 | 数据交互方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101741722A true CN101741722A (zh) | 2010-06-16 |
Family
ID=42464632
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910211984A Pending CN101741722A (zh) | 2009-12-10 | 2009-12-10 | 数据交互方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101741722A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102799549A (zh) * | 2011-05-23 | 2012-11-28 | 中兴通讯股份有限公司 | 一种多源端口的数据处理方法及装置 |
CN104717087A (zh) * | 2013-12-15 | 2015-06-17 | 中国航空工业集团公司第六三一研究所 | 一种支持小业务的流量处理电路及方法 |
CN106330756A (zh) * | 2015-07-03 | 2017-01-11 | 华为技术有限公司 | 一种数据传输方法和设备 |
CN109597777A (zh) * | 2018-12-11 | 2019-04-09 | 济南浪潮高新科技投资发展有限公司 | 一种基于fpga的mcbsp接口互联装置及方法 |
CN114844839A (zh) * | 2022-04-14 | 2022-08-02 | 重庆长安汽车股份有限公司 | 一种车载soa系统的服务调用请求仲裁方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1218566A (zh) * | 1996-03-13 | 1999-06-02 | 钻石多媒体系统公司 | 支持要求驱动的多重并行数字数据流传输的方法和装置 |
CN101132336A (zh) * | 2007-10-17 | 2008-02-27 | 中国人民解放军国防科学技术大学 | 异构多核处理器高速异步互连通信网络 |
CN101324869A (zh) * | 2008-07-03 | 2008-12-17 | 北京中星微电子有限公司 | 一种基于axi总线的多路复用器 |
-
2009
- 2009-12-10 CN CN200910211984A patent/CN101741722A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1218566A (zh) * | 1996-03-13 | 1999-06-02 | 钻石多媒体系统公司 | 支持要求驱动的多重并行数字数据流传输的方法和装置 |
CN101132336A (zh) * | 2007-10-17 | 2008-02-27 | 中国人民解放军国防科学技术大学 | 异构多核处理器高速异步互连通信网络 |
CN101324869A (zh) * | 2008-07-03 | 2008-12-17 | 北京中星微电子有限公司 | 一种基于axi总线的多路复用器 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102799549A (zh) * | 2011-05-23 | 2012-11-28 | 中兴通讯股份有限公司 | 一种多源端口的数据处理方法及装置 |
WO2012159405A1 (zh) * | 2011-05-23 | 2012-11-29 | 中兴通讯股份有限公司 | 一种多源端口的数据处理方法及装置 |
CN104717087A (zh) * | 2013-12-15 | 2015-06-17 | 中国航空工业集团公司第六三一研究所 | 一种支持小业务的流量处理电路及方法 |
CN104717087B (zh) * | 2013-12-15 | 2018-02-06 | 中国航空工业集团公司第六三一研究所 | 一种支持小业务的流量处理电路及方法 |
CN106330756A (zh) * | 2015-07-03 | 2017-01-11 | 华为技术有限公司 | 一种数据传输方法和设备 |
CN106330756B (zh) * | 2015-07-03 | 2020-01-03 | 华为技术有限公司 | 一种数据传输方法和设备 |
CN109597777A (zh) * | 2018-12-11 | 2019-04-09 | 济南浪潮高新科技投资发展有限公司 | 一种基于fpga的mcbsp接口互联装置及方法 |
CN114844839A (zh) * | 2022-04-14 | 2022-08-02 | 重庆长安汽车股份有限公司 | 一种车载soa系统的服务调用请求仲裁方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2515232B1 (en) | Priority level arbitration method and device | |
GB2366883A (en) | Data processing apparatus with a bus system | |
KR100252752B1 (ko) | 다단계 제어 버스 중재장치 | |
CN103019838B (zh) | 一种基于多dsp处理器平台的分布式实时多任务操作系统 | |
US20060155904A1 (en) | Resource management device | |
CN101741722A (zh) | 数据交互方法及装置 | |
CN102722402B (zh) | 一种非抢占式实时调度多任务的处理系统及方法 | |
CN112035388B (zh) | 一种基于PCI-e通道的高性能加解密方法 | |
CN105700941A (zh) | 三维调度器模型及其调度算法 | |
CN102934102A (zh) | 多处理器系统、执行控制方法和执行控制程序 | |
US9274831B2 (en) | Information processing apparatus, information processing method, and storage medium | |
CN103488531A (zh) | 基于多核处理器和fpga的软硬件混合实时任务调度方法 | |
CN104765701A (zh) | 数据访问方法及设备 | |
CN101145140A (zh) | 基于片上多处理器系统的动态自适应总线仲裁器 | |
CN115061803A (zh) | 一种多核处理系统及其任务调度方法、芯片、存储介质 | |
CN112181887A (zh) | 数据传输方法及装置 | |
US20050066093A1 (en) | Real-time processor system and control method | |
CN1366248A (zh) | 异步时钟域设备对共享存储装置访问的控制方法 | |
CN111722829B (zh) | 一种双并发预读的高性能归并排序方法及应用 | |
CN202748784U (zh) | 一种3取2或2取2控制系统中的16位多总线电路 | |
CN1318941C (zh) | 一种端口轮询选择方法 | |
CN106933663B (zh) | 一种面向众核系统的多线程调度方法及系统 | |
Doifode et al. | Dynamic lottery bus arbiter for shared bus system on chip: a design approach with VHDL | |
CN108259382A (zh) | 3×256优先级调度电路 | |
CN103181132B (zh) | 请求报文处理方法以及发送方法、节点和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20100616 |