专利名称:数据交互方法及装置的制作方法
技术领域:
本发明涉及通信领域,具体而言,涉及一种数据交互方法及装置。
背景技术:
在数字电路设计中,源端和目的端存在三种对应关系,即一个源端对应一个目的 端的一对一的对应关系、一个源端对应多个目的端的一对多的对应关系,以及多个源端对 应一个目的端的多对一的对应关系,其中,多个源端对应一个目的端的多对一的关系的处 理最为复杂。 图1是根据相关技术的仲裁机制典型应用场景的示意图,如图1所示,多个源端 (即,多个源数据,图1中仅以源0数据、源1数据和源2数据三个源数据为例)通过多路选 择器(Multiplexers,简称为MUX)连接至一个目的端(S卩,目的数据)。该多路选择器需要 一套仲裁机制辅助工作,而该仲裁机制用于记录并仲裁请求进行数据交互的多个源端的请 求信号(即,源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具有
最高优先级。 其次,使用本次运行时最高优先级对应的源序号,对本次运行时除最高优先级对 应的源序号之外的其它源序号进行优先级的重新编址(即,基于上述序号重新编址仲裁优 先级),以便对其它优先级对应的源序号实现循环优先级的变换,并解决固定优先级的公平 性和扩展性不好的问题。需要说明的是,上述编址方法为以符号的形式重记优先级。例如 记变量AO为最高优先级,则使AO等于上述序号值;A1为次高优先级,则使Al等于上述序 号值加l,如果和等于第一步所得源端个数,则使Al等于O。 其中,上述优先级重新编址的实现方式包括但不限于以下之一 设置计数器,以累 加方式确定本次运行时该优先级对应的源序号;设置计数器,以递减方式确定本次运行时 该优先级对应的源序号;设置固定列表,以列表对应方式确定本次运行时该优先级对应的 源序号。需要说明的是,上述优先级重新编址的方式仅为优选方法,可以根据实际情况采取 其它方式。 步骤S404,按照重新编址的源序号的优先级,对用于接收源端的请求信号的寄存 器进行寻址。
7
具体地,在对用于接收源端的请求信号的寄存器进行寻址之前,需要预先对该寄 存器进行设置,下面对该设置过程进行详细描述。 (1)根据目的端的读写并发能力预先确定多个源端的数量,例如如果目的端读 写数据可同时操作,则将源端的读数据请求和写数据请求分别仲裁,当仲裁读数据请求时, 只统计读请求操作的源端数据量;当仲裁写数据请求时,只统计写请求操作的源端数量。
(2)预先设置位宽与该多个源端的数量相同的寄存器并预先设置该寄存器中的每 一个位(即,比特位)对应于该多个源端中的每一个源端。需要说明的是,上述寄存器的预 先设置方法仅为优选方法,实际应用中可以根据情况对寄存器的位宽以及利用该寄存器几 个比特位对应每个源端进行其它设置。 在寄存器的设置过程之后,则使用寄存器接收该多个源端的请求信号。其中,需要 判断每一个源端是否存在请求信号,并对存在请求信号的每一个源端对应的每一个位进行 位操作,以实现使用固定优先级判断源端是否存在请求信号。 下面对上述位操作进行详细描述。同步并行判断每一个源端是否被允许发送请求 信号,其中,每一个源端只有在被允许发送请求信号时,才能与目的端进行数据交互。上述 判断结果取决于如下两种情况如果该源端已经发送请求信号并且该请求信号并未得到响 应,则该源端不被允许再次发送请求信号;如果该源端请求信号已响应结束,则该源端被允 许再次发送请求信号。具体地,当源端被允许发送请求信号时,如果仲裁机制接收到请求信 号,则使用寄存器接收该源端的请求信号,其接收方式为根据此源端的序号在寄存器中找 到相应的比特位,并对该比特位进行位操作(例如假设l为有效,如果仲裁机制接收到序号 为0的源端的请求信号,则将寄存器0比特位置1)。然后,当该源端的请求信号响应结束时, 则根据此源端的序号在寄存器中找到相应的比特位,并对该比特位再次进行位操作(例如 0为无效,如果序号为0的源端的请求信号响应结束时,则将寄存器0比特位清0)。
需要说明的是,如果某个源端被允许发送请求信号,则使用寄存器接收该源端请 求信号并保持至此请求信号响应结束,并且,从该寄存器接收该源端请求信号到该请求信 号响应结束的过程中,该源端不被允许再次发送请求信号。另外,上述位操作的设置仅为优 选方法,可以根据实际情况对寄存器进行其它设置。 在使用寄存器接收多个源端的请求信号之后,则按照重新编址的源序号的优先 级,对用于接收源端的请求信号的寄存器进行寻址。具体地,按照从高到低的优先级以及优 先级与源序号的对应关系,在寄存器中查找位操作成功的位;如果查找成功(即,根据优先 级顺序,遇到第一个位操作成功的比特位置),则确定该位对应的源端为寄存器中第一个寻 址结果对应的源端,即第一个请求获得响应的源端。 步骤S406,实现寻址得到的寄存器中第一个寻址结果对应的源端与目的端的数据 交互。 具体地,上述实现该源端与目的端的数据交互,即该源端占用总线直至本次请求 响应结束。例如每次执行仲裁时都以固定顺序使用上述优先级(即先使用A0,再使用A1), 并依次寻址上述寄存器的AO位、A1位,遇到的第一个请求所在的比特位置就是本次仲裁结 果,序号与之相同的源将占用总线直至本次请求响应结束。该响应过程实现了利用数字逻 辑结构实现循环优先级并进行数据交互,解决了相关技术中的固定优先级仲裁原则公平性 和扩展性不好,并且循环优先级仲裁原则效率不高的问题。并且,在该响应结束后该仲裁机制进入空闲状态。只有在空闲状态,仲裁机制才再次执行仲裁。 通过该实施例,使用多个源端上一次运行时最高优先级对应的源序号,对本次运
行时多个源端的所有源序号进行优先级的重新编址,并按照重新编址的源序号的优先级,
对用于接收源端的请求信号的寄存器进行寻址,并实现寻址得到的寄存器中第一个寻址结
果对应的源端与目的端的数据交互,解决了相关技术中的固定优先级仲裁原则公平性和扩
展性不好,并且循环优先级仲裁原则效率不高的问题,实现了固定优先级的快速特点和循
环优先级的公平性的兼顾,并实现了在固定延迟时间内完成循环优先级的仲裁且该时间不
随源端数量的增加而增加。 装置实施例 根据本发明的实施例,提供了一种数据交互装置,该装置可以用于实现上述数据 交互方法。图5是根据本发明实施例的数据交互装置的结构框图,如图5所示,该装置包括 重新编址模块502、寻址模块504、数据交互模块506。下面对上述结构进行详细描述。
重新编址模块502,用于使用多个源端上一次运行时最高优先级对应的源序号,对 本次运行时多个源端的所有源序号进行优先级的重新编址。 其中,上述重新编址模块502重新编址的方式包括但不限于以下之一设置计数 器,以累加方式确定本次运行时最高优先级对应的源序号;设置计数器,以递减方式确定本 次运行时最高优先级对应的源序号;设置固定列表,以列表对应方式确定本次运行时最高 优先级对应的源序号。需要说明的是,上述优先级重新编址的方式仅为优选方法,可以根据 实际情况采取其它方式。 寻址模块504,用于按照重新编址模块502重新编址的源序号的优先级,对用于接 收源端的请求信号的寄存器进行寻址。 具体地,寻址模块504按照从高到低的优先级以及优先级与源序号的对应关系, 在寄存器中查找位操作成功的位;如果查找成功(即,根据优先级顺序,成功查找到第一个 位操作成功的比特位置),则确定该位对应的源端为寄存器中第一个寻址结果对应的源端, 并实现该源端与目的端的数据交互(即,该源端占用总线直至本次请求响应结束)。例如 每次执行仲裁时都以固定顺序使用上述优先级(即先使用AO,再使用Al),并依次寻址上述 寄存器的A0位、A1位,遇到的第一个请求所在的比特位置就是本次仲裁结果。
数据交互模块506,连接至寻址模块504,用于实现寻址模块504寻址得到的寄存 器中第一个寻址结果对应的源端与目的端的数据交互。 具体地,序号与之相同的源端通过数据交互模块506与目的端进行数据交互,并 占用总线直至本次请求响应结束。而且,在该响应结束后该仲裁机制进入空闲状态。只有 在空闲状态,仲裁机制才再次执行仲裁。 图6是根据本发明实施例的数据交互装置的优选结构框图,如图6所示,重新编址 模块502包括第一重新编址子模块602、第二重新编址子模块604。下面对上述结构进行 详细描述。 第一重新编址子模块602,用于使用多个源端上一次运行时最高优先级对应的源
序号,对本次运行时最高优先级对应的源序号进行优先级的重新编址。 具体地,第一重新编址子模块602用于确定当前最高优先级所在的源序号,并在
每次源端的请求信号响应结束之后,最高优先级对应的源序号改变一次,其改变范围不超过上述多个源端的数量。其改变方式可以是累加方式,即设置计数器,其上限为上述多个源 端的数量,并且,其累加条件为计数器值与当前响应的源序号相等,且此响应已结束,该计 数器值的含义为如果计数器值为1则说明源1具有最高优先级。 第二重新编址子模块604,连接至第一重新编址子模块602,用于使用本次运行时 第一重新编址子模块602重新编址的最高优先级对应的源序号,对本次运行时除最高优先 级对应的源序号之外的其它源序号进行优先级的重新编址。 具体地,第二重新编址子模块604基于上述序号重新编址仲裁优先级,并以符号 的形式重记优先级。例如记变量AO为最高优先级,则使AO等于上述序号值;A1为次高优 先级,则使A1等于上述序号值加l,如果和等于第一步所得源端个数,则使Al等于O。
需要说明的是,装置实施例中描述的数据交互装置对应于上述的方法实施例,其 具体的实现过程在方法实施例中已经进行过详细说明,在此不再赘述。
下面将结合实例对本发明实施例的实现过程进行详细描述。 本发明实施例假定共有三个源端读取目的端数据,要实现让这三个源以循环优先 级的顺序获取目的数据。根据本发明实施例的步骤,先确定待仲裁的源端数量等于3,且分 别分配序号为源0、源1和源2。此序号的顺序与仲裁机制第一次运行时的初始优先级相同。
图7是根据本发明实施例的逻辑结构示意图,如图7所示,依照本发明实施例的 方法构造的逻辑结构,主要包括允许单元、请求保持寄存器(即,上述寄存器)、最高优先级 循环单元、优先级编址单元(即,重新编址模块502)和仲裁判断单元(S卩,上述寻址模块 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请求已响应结束时,将 比特O清O。比特1和比特2的情况与比特0类似。需要说明的是,当上述请求保持寄存器 存在非O比特位时,会触发仲裁判断。每次仲裁时,仲裁判断单元都依据相同优先级变量进 行,此操作与固定优先级仲裁机制相似,一个时钟周期便可得出仲裁结果。
图IO是根据本发明实施例的仲裁判断的逻辑的流程图,如图IO所示,本发明实施 例中假定AO代表最高优先级、A1代表次高优先级、A2代表最低优先级。先判断请求保持寄 存器的AO比特位置是否为l,如果判断结果为是,则响应AO所代表的源请求,如果判断结果 为否,则判断请求保持寄存器的A1比特位置是否为l,判断Al之后的处理流程与AO类似。 其中,变量AO、 Al、 A2所代表的值来自于优先级编址单元。 图ll是根据本发明实施例的优先级编址单元的工作逻辑的流程图,如图ll所示, 该优先级编址单元负责为变量A0、A1和A2赋值,其赋值原理为AO等于最高级优先级的序号值(即,设置最高优先级AO等于优先级循环单元计数器输出值);A1等于A0加1(设置优先级Al等于优先级循环单元计数器输出值+1),如果上述结果大于3,则设置Al等于0 ;A2等于AO加2 (即,设置优先级A2等于优先级循环单元计数器输出值+2),如果上述结果大于3,则设置A2等于0。其中,最高优先级的序号值来自于最高优先级循环单元的输出。此单元的功能是指示当前最高优先级对应哪个源。如输出结果为l,说明此时源1的请求拥有最高优先级,于是上述AO = 1、A1 = 2、A2 = O,仲裁时先判断源1请求,再判断源2请求,最后判断源O请求。 图12是根据本发明实施例的最高优先级循环单元的工作逻辑的流程图,如图12所示,首先设置计数器的有效范围是
,计数器的值就是最高优先级循环单元的输出。如果当前计数器值与当前响应的源序号相等,并且当计数器的值所代表的源请求已响应结束时,计数器值加1,如果加1后的计数器值为源数量最大值3,则计数器清0 ( S卩,要求累加的结果不超过计数器的设置范围)。 另外,图7中,MUX单元的作用是将响应结束信号依照仲裁结果分发给对应源的允
许单元和请求保持寄存器的比特位。其中,响应结束信号的获得方式因应用场景而异。 综上所述,根据本发明的上述实施例,提供了 一种数据交互方法及装置。通过使用
多个源端上一次运行时最高优先级对应的源序号,对本次运行时多个源端的所有源序号进
行优先级的重新编址,并按照重新编址的源序号的优先级,对用于接收源端的请求信号的
寄存器进行寻址,并实现寻址得到的寄存器中第一个寻址结果对应的源端与目的端的数据
交互,解决了相关技术中的固定优先级仲裁原则公平性和扩展性不好,并且循环优先级仲
裁原则效率不高的问题。具体地,当多个(大于等于2)源端向一个目的端请求数据时,上
述方法通过使用依据最高优先级重新编址和套用固定优先级,实现了固定优先级的快速特
点和循环优先级的公平性扩展性的集合,并实现了在固定延迟时间内完成循环优先级的仲
裁且该时间不随源端数量的增加而增加。 显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用数字逻辑器件(例如CPLD,FPGA,ASIC等)来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。 以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
一种数据交互方法,其特征在于,包括使用多个源端上一次运行时最高优先级对应的源序号,对本次运行时所述多个源端的所有源序号进行优先级的重新编址;按照重新编址的源序号的优先级,对用于接收源端的请求信号的寄存器进行寻址;实现寻址得到的所述寄存器中第一个寻址结果对应的源端与目的端的数据交互。
2. 根据权利要求1所述的方法,其特征在于,使用所述多个源端上一次运行时最高优 先级对应的所述源序号,对本次运行时所述多个源端的所述所有源序号进行所述优先级的 重新编址包括使用所述多个源端上一次运行时最高优先级对应的所述源序号,对本次运行时所述最 高优先级对应的源序号进行所述优先级的重新编址;使用本次运行时所述最高优先级对应的所述源序号,对本次运行时除所述最高优先级 对应的所述源序号之外的其它源序号进行所述优先级的重新编址。
3. 根据权利要求1所述的方法,其特征在于,使用所述多个源端上一次运行时最高优 先级对应的所述源序号,对本次运行时所述多个源端的所述所有源序号进行所述优先级的 重新编址包括以下之一设置计数器,以累加方式确定本次运行时所述优先级对应的所述源序号; 设置计数器,以递减方式确定本次运行时所述优先级对应的所述源序号; 设置固定列表,以列表对应方式确定本次运行时所述优先级对应的所述源序号。
4. 根据权利要求1所述的方法,其特征在于,在对所述用于接收源端的所述请求信号 的所述寄存器进行寻址之前,所述方法还包括使用所述寄存器接收所述多个源端的所述请求信号。
5. 根据权利要求4所述的方法,其特征在于,在使用所述寄存器接收所述多个源端的 所述请求信号之前,所述方法还包括设置位宽与所述多个源端的数量相同的寄存器;设置所述寄存器中的每一个位对应于所述多个源端中的每一个源端。
6. 根据权利要求5所述的方法,其特征在于,使用所述寄存器接收所述多个源端的所 述请求信号包括判断所述每一个源端是否存在所述请求信号,并对存在所述请求信号的每一个源端对 应的每一个位进行位操作。
7. 根据权利要求6所述的方法,其特征在于,按照所述重新编址的所述源序号的所述 优先级,对所述用于接收源端的所述请求信号的所述寄存器进行寻址包括按照从高到低的所述优先级以及所述优先级与所述源序号的对应关系,在所述寄存器 中查找位操作成功的位;如果查找成功,则确定所述位对应的源端为所述寄存器中第一个寻址结果对应的源丄山顺。
8. 根据权利要求1所述的方法,其特征在于,在使用所述多个源端上一次运行时最高 优先级对应的所述源序号,对本次运行时所述源序号进行所述优先级的重新编址之前,所述方法还包括对所述多个源端进行排序,并为排序后的所述源端分配对应的源序号;使用所述对应的源序号标识所述源端的初始优先级,其中,所述初始优先级为所述多 个源端首次运行时的优先级。
9. 一种数据交互装置,其特征在于,包括重新编址模块,用于使用多个源端上一次运行时最高优先级对应的源序号,对本次运 行时所述多个源端的所有源序号进行优先级的重新编址;寻址模块,用于按照重新编址的源序号的优先级,对用于接收源端的请求信号的寄存 器进行寻址;数据交互模块,用于实现寻址得到的所述寄存器中第一个寻址结果对应的源端与目的 端的数据交互。
10. 根据权利要求9所述的装置,其特征在于,所述重新编址模块包括 第一重新编址子模块,用于使用所述多个源端上一次运行时最高优先级对应的所述源序号,对本次运行时所述最高优先级对应的源序号进行所述优先级的重新编址;第二重新编址子模块,用于使用本次运行时所述最高优先级对应的所述源序号,对本次运行时除所述最高优先级对应的所述源序号之外的其它源序号进行所述优先级的重新 编址。
全文摘要
本发明公开了一种数据交互方法及装置,该方法包括使用多个源端上一次运行时最高优先级对应的源序号,对本次运行时多个源端的所有源序号进行优先级的重新编址;按照重新编址的源序号的优先级,对用于接收源端的请求信号的寄存器进行寻址;实现寻址得到的寄存器中第一个寻址结果对应的源端与目的端的数据交互。本发明实现了固定优先级的快速特点和循环优先级的公平性的兼顾,并实现了在固定延迟时间内完成循环优先级的仲裁且该时间不随源端数量的增加而增加。
文档编号H04L12/56GK101741722SQ20091021198
公开日2010年6月16日 申请日期2009年12月10日 优先权日2009年12月10日
发明者刘伟达, 范丽珍, 邱致刚 申请人:中兴通讯股份有限公司