总线调度方法及装置的制作方法

文档序号:7755870阅读:187来源:国知局
专利名称:总线调度方法及装置的制作方法
技术领域
本发明涉及通信领域,具体而言,涉及一种总线调度方法及装置。
背景技术
Rapid IO (Rapid InputOutput,快速 IO 架构)是由 Rapid IO TradeAssociation(Rapid IO行业协会)于2001年12月提出的一套用于芯片级和板级互连的高速全双工级联方案,其传输速度可达10(ibpS甚至更高。由于其具有硬件检测和管理差错能力、低协议开销、高吞吐率、高可靠性、低引脚数、低功耗、低延迟的优势,广泛应用于网络和通信设备、高速存储和其它高性能的嵌入式市场。在Rapid IO总线共享的多处理器系统中,所有节点共享同一传输介质。一般而言, 节点间的数据传输方式可分为数据驱动和时序驱动两种。数据驱动通常是指某节点只在处理完一定量的数据之后,方可发起数据传输请求,该传输类型没有严格的发送时序要求,只需保证下一次的数据不会覆盖上次的结果或者确保数据缓存不会产生溢出即可。而时序驱动一般要求在特定时间点必须启动发送数据信息,并且要求在规定时间段内必须传输完毕。通常定时信息、控制数据流和一些高速数据流即采用时序驱动的方式进行传输。目前,Rapid IO共享总线的系统中各节点通常是利用轮询的方式取得总线的使用权。这种方式的弊端是,当各个节点对时延要求不同时,时延要求较高的节点与较低的节点公平占用总线,导致系统总体的传输效率不高,实时性较差。

发明内容
本发明的主要目的在于提供一种总线调度方法及装置,以至少解决上述的系统总体的传输效率不高,实时性较差问题。根据本发明的一个方面,提供了一种总线调度方法,包括同时接收多个节点发送的总线分配请求,所述多个节点共享所述总线;按照多个节点中每个节点的优先级为每个节点分配总线资源。进一步地,每个节点的优先级根据每个节点发送数据的传输时延的大小设定。进一步地,该总线调度方法还包括在得到总线资源的节点使用总线资源发送完数据后,判断该节点是否有实时传输要求;若是,则保持该节点的优先级不变,若否,则将该节点的优先级降为最低。进一步地,该总线调度方法还包括在得到总线资源的节点使用总线资源发送完数据后,判断该节点发送数据的时延是否小于或等于设定时延;若是,则保持该节点的优先级不变,若否,则将该节点的优先级设置为最低优先级。进一步地,该总线调度方法还包括判断共享总线的所有节点中除多个节点外的其它节点中每个节点的优先级;若被判断的节点的优先级低于总线的当前优先级,并且无实时传输要求,则将该节点的优先级提高一级;否则,保持该节点的优先级不变;其中,当前优先级为总线当前发送数据的所属节点的优先级。
进一步地,该总线调度方法还包括如果有节点需要紧急传送数据;在发送完当前数据后,为该节点分配总线资源。进一步地,总线为快速输入输出Rapid IO总线。根据本发明的另一方面,提供了一种总线调度装置,包括接收模块,用于同时接收多个节点发送的总线分配请求,所述多个节点共享所述总线;分配模块,用于按照多个节点中每个节点的优先级为每个节点分配总线资源。进一步地,所述优先级根据所述每个节点发送数据的传输时延的大小设定。进一步地,该总线调度装置还包括第一优先级更新模块,用于在得到总线资源的节点使用总线资源发送完数据后,判断该节点是否有实时传输要求;若是,则保持该节点的优先级不变,若否,则将该节点的优先级降为最低;和/或第二优先级更新模块,用于在得到总线资源的节点使用总线资源发送完数据后,判断该节点发送数据的时延是否小于或等于设定时延;若是,则保持该节点的优先级不变,若否,则将该节点的优先级设置为最低优先级。进一步地,该总线调度装置还包括紧急发送模块,用于如果有节点需要紧急传送数据;则在发送完当前数据后,为该节点分配总线资源。进一步地,总线为快速输入输出Rapid IO总线。通过本发明,采用根据每个节点的优先级,为同时请求总线的多个节点分配总线资源,解决了相关技术中Rapid IO共享总线的系统中各节点利用轮询的方式取得总线的使用权时,导致的系统总体的传输效率不高,实时性较差的问题,进而达到了有效保证时延要求高的节点及时发送数据,从而提高了系统总体的传输效率和数据传输实时性的效果。


此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中图1是根据本发明实施例一的一种总线调度方法的步骤流程图;图2是根据本发明实施例二的一种总线调度方法的步骤流程图;图3是根据本发明实施例三的一种总线调度方法的步骤流程图;图4是根据本发明实施例的一种总线仲裁方法的步骤流程图;图5是根据本发明实施例四的一种总线调度装置的结构框图;图6是根据本发明实施例五的一种总线调度装置的结构示意图。
具体实施例方式下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。实施例一参照图1,示出了根据本发明实施例一的一种总线调度方法的步骤流程图,包括以下步骤步骤S102 同时接收多个节点发送的总线分配请求;其中,上述多个节点共享同一总线。
本步骤中,共享总线的系统同时接收到所有节点中的部分节点(包括多个节点) 发送的要求分配总线资源的总线分配请求。步骤S104 按照多个节点中每个节点的优先级为每个节点分配总线资源。每个节点的优先级可以预先设定,并在总线分配过程中调整,即共享总线的系统在初始时为共享该总线的所有节点设定优先级;也可以在总线分配过程中分配和调整节点的优先级。优先级的设定可以根据每个节点的实时性要求,即传输时延的大小设定,对于实时性要求高(传输时延小)的节点分配较高的优先级,对于实时性要求低(传输时延大) 的节点分配较低的优先级,传输时延越小则优先级越高。在总线资源分配过程中,可以为有紧急数据发送需求的节点设定较高的优先级,以保证紧急数据的及时发送。当然,本领域技术人员也可以根据实际需求,适当选用设定优先级的标准,本发明对此不作限制。本步骤中,共享总线的系统按照多个节点中每个节点的预先设定的优先级为每个节点分配总线资源。如共享总线的系统同时接收到3个总线分配请求,其优先级分别为1、 2、3,则共享总线的系统为这3个请求总线资源的节点分配总线资源,优先发送优先级为1 的节点的数据,再依次发送优先级为2和3的节点的数据。相关技术中,共享总线的系统中各节点利用轮询的方式取得总线的使用权,因此, 当各个节点对时延要求不同时,时延要求较高的节点与较低的节点公平占用总线,导致系统总体的传输效率不高,实时性较差。通过本实施例,为各节点分配优先级,时延要求高的节点优先级也较高,根据优先级为多个节点分配资源,有效保证了时延要求高的节点的数据的及时发送,提高了系统总体的传输效率和数据传输实时性。实施例二参照图2,示出了根据本发明实施例二的一种总线调度方法的步骤流程图。本实施例中,在共享总线的Rapid IO系统中设置总线分配模块,用以分配和管理总线资源;在 Rapid IO系统中的各个节点设置调度请求模块,用以请求总线资源。本实施例的总线调度方法包括以下步骤步骤S202 总线分配模块为Rapid IO系统中的各个节点分配初始优先级;总线分配模块为每一个节点的调度请求模块分配一个初始优先级,该优先级取决于当前节点发送数据的实时性要求(传输时延大小),并在总线资源分配过程中根据该节点有无待发数据以及是否得到总线而实时调整。步骤S204 待发送数据的节点检测系统总线是否空闲,若是,则执行步骤S206 ;若否,表示总线忙,则保持节点当前状态;本实施例中,设定Rapid IO系统的多个节点需要发送数据,请求总线资源。在多个节点准备发送数据前,先检测总线是否空闲,若空闲,则进入步骤S206进行总线申请;若总线忙,则保持当前状态。步骤S206 待发送数据的节点向总线分配模块发送总线分配请求;本步骤中,在确认总线空闲时,需要发送数据的多个节点向总线分配模块发送总线分配请求,请求占用总线。步骤S208 总线分配模块同时接收多个待发送数据的节点的总线分配请求,为多个待发送数据的节点分配总线资源;本步骤中,在出现多个节点同时请求总线时,启动总线分配模块,总线分配模块根据仲裁算法为多个节点分配总线资源,即判定当前总线的优先使用节点,以及其它节点的使用顺序。具体的仲裁算法可以参照图4所示实施例,在此不再赘述。步骤S210 多个待发送数据的节点根据分配的总线资源向总线发送数据;本步骤中,根据步骤S208的总线资源分配结果,优先获取总线使用权的节点优先向总线发送数据。在该结点发送完数据后,其它结点根据优先级依次使用分配的总线资源发送数据。步骤S212 更新节点的优先级。更新准则为,在系统工作时,总线分配模块一旦检测到系统Rapid IO总线正在发送数据,则通知共享总线的所有节点的总线中请模块,保持当前状态。对于实时性要求较高的节点,其总线优先级保持不变,且始终占据优先级最高的前η个优先级(η为实时性要求较高的节点数,可以根据节点发送数据所允许的时延上限和设定的时延进行比较确定,将时延小于设定值的η个节点设为优先级最高的前η个节点;当然设计者也可以通过设置实时传输标志rtf来灵活指定某些节点为实时传输的节点)。为避免优先级高的节点长期占用总线,优先级低的节点在有紧急数据需要传输时,可以通过设置紧急传输标志来获得总线使用权,总线分配模块检测到优先级低的节点设置了紧急传输标志后,在传输完当前数据后,即开始传输该设置了紧急传输标志的节点的数据。对于实时性要求不高的各节点,为了兼顾总线使用的公平性,在系统完成一次数据传送后(或者完成本次总线仲裁后),更新各节点的优先级,将当前已完成数据传送(或者本次仲裁取得总线使用权)的节点优先级降为最低,将低于系统总线当前优先级的节点的优先级提升一级,高于系统总线当前优先级的节点的优先级保持不变,确保各节点的优先级是唯一确定的,不会出现多个节点的优先级相同的问题。其中,系统总线当前优先级是指系统总线当前发送数据的所属节点的优先级。若系统总线当前空闲,则为该空闲状态前最后一次发送的数据所属节点的优先级。在这里需要说明的是,紧急传输标志的设置并不会改变当前节点的优先级。需要说明的是,当各节点无实时性要求或者实时性传输要求相同(相近)时,总线分配模块可以退化成总线公平竞争的模型,进行总线优先级的调整,从而实现公平调度;当需要配置成固定优先级传输模式时,则将实时传输标志(rtf)设置为有效即可,此时各节点的优先级将始终保持不变,总线分配模块演化为固定优先级传输模式,从而大大增强发明的实用性和扩展性,降低实现难度。通过本实施例,能够在保证Rapid IO传输效率的基础上,兼顾Rapid IO链路上各个节点间传输的公平性;能够根据是否存在实时性要求,灵活配置使用总线分配模块。实施例三参照图3,示出了根据本发明实施例三的一种总线调度方法的步骤流程图。本实施例中,设定Rapid IO系统中共有N个节点,首先根据Rapid IO系统的需求,为每个节点的调度请求模块设置初始优先级,初始优先级从W到Nn不等。总线分配模块根据各个节点的总线请求情况,为各个节点分配总线使用权。当某一个节点要发送数据时,首先检测总线, 如果总线空闲则请求总线,如果在单位时间内申请到总线,则开始发送数据;如果没有申请到总线,表示存在多个节点同时请求总线的情况,而总线分配模块将总线使用权分配给了其它节点,此时该节点重新进入总线检测状态,等待其它节点传输完毕之后,根据总线分配模块的指示,进行本节点优先级的更新,重新尝试请求总线,进而发送数据。本实施例的总线调度方法包括以下步骤步骤S302 总线分配模块为各个节点的调度请求模块设置初始优先级,并提供优先级更新信号,用于实现各节点优先级的更新。其中,优先级更新信号可以为总线完成当前数据传输后发送的电信号,各个节点收到该信号后,可以进行各节点的优先级更新。步骤S304 待发送数据节点在发送数据前,先检测总线的状态,若总线空闲,则进入步骤S306 ;否则,保持节点当前状态。步骤S306 待发送数据节点向总线分配模块申请总线。本步骤中,待发送数据节点通过向总线分配模块发送总线分配请求申请总线。步骤S308 总线分配模块根据各个节点的申请情况分配总线,如果只有一个节点申请总线,则将总线分配给该节点使用,进入步骤S310 ;如果有多个节点申请总线,则执行总线仲裁,即确定多个节点的总线使用顺序,之后进入步骤S310。本步骤可以包括步骤S308A 判断总线系统的仲裁逻辑是否分配总线,若是,则执行步骤S310,若否,则执行步骤S308B ;当只有一个节点申请总线时,将总线分配给该节点使用;当有多个节点同时申请时,则需要判断总线系统是否为本节点分配资源。步骤S308B 调整优先级,等待下一轮总线调度;本步骤调整未得到总线资源的节点的优先级。步骤S308C 判断是否需要启动紧急传送,若是,则执行步骤S308D,若否,则返回步骤S306 ;步骤S308D 设置紧急传送标志crf位,返回步骤S306。步骤S310:节点获取总线后,通过总线发送数据,数据发送完毕,则进入步骤 S312。步骤S312 数据发送完毕,各节点更新各自的优先级,返回步骤S304。例如,设定本实施例有多个节点同时向总线申请资源,若该多个节点均为实时性要求较高的节点,则多个节点中的每个节点在使用总线发送完数据后,总线系统判断该节点要求发送数据的时延小于或等于设定的时延,即属于始终占据优先级最高的前N个优先级的节点,则仍保持该节点原来的优先级不改变。若多个节点中部分属于实时性要求较高的节点,而另一部分属于实时性要求不高的节点,则总线系统对每个发送完数据的节点进行判断,若该节点要求发送数据的时延小于或等于设定的时延,则保持该节点原来的优先级不改变;否则,将该节点的优先级降为最低。若多个节点均属于实时性要求不高的节点,则总线分配系统判断每个发送完数据的节点,将当前发完数据的节点的优先级降为最低,并顺次提高其它之前已发送完数据的节点的优先级。对于多个节点中部分属于实时性要求较高的节点,而另一部分属于实时性要求不高的节点,或者,多个节点均属于实时性要求不高的节点的情形,总线分配系统还可以通过判断每个发送完数据的节点是否有实时传输要求,即是否设置了实时传输标志位rtf,来调整节点的优先级。若被判断的节点设置了 rtf位,则保持该节点的优先级不变,若被判断的节点没有设置rtf位,则将该节点的优先级降为最低。在对上述多个发送数据的节点进行优先级更新的同时,总线分配系统判断共享总线的所有节点中除上述多个发送数据的节点外的其它无实时传输需求的节点中每个节点的优先级,若低于总线的当前优先级,即总线当前发送数据的所属节点的优先级,则将被判断的节点的优先级提高一级,若高于总线的当前优先级,则保持被判断的节点的优先级不变;其它有实时传输需求的节点的优先级,则保持不变。若低于总线的当前优先级的节点有紧急数据传输需求,可以通过设置紧急传输标志位,告知系统其有紧急数据传输需求,从而优先获取总线资源,但设置紧急传输标志位不会改变其优先级。通过步骤S304 S312的重复操作,整个系统可以有序、高效、公平的实现数据传输。参照图4,示出了根据本发明实施例的一种总线仲裁方法的步骤流程图,包括以下步骤步骤S402 总线系统判断是否有紧急传送请求,若是,则执行步骤S404 ;若否,则执行步骤S406 ;本步骤中,总线系统通过待发送数据节点设置的紧急传输标志位判断是否有紧急传送请求。步骤S404 总线系统将总线分配给紧急传送请求中优先级最高的请求,进入步骤 S412 ;本步骤中,若只有一个紧急传送请求,则将总线分配给该紧急传送请求。若同时有多个紧急传送请求,则将总线分配给多个紧急传送请求中优先级最高的。步骤S406 总线系统判断是否有实时传送请求,若是,则执行步骤S408 ;若否,则执行步骤S410 ;本步骤中,若同时有多个节点向总线申请资源,向总线发送总线分配请求,则总线系统判断其中是否有实时传送请求(设置了 rtf位),即实时性要求较高的节点发送的请求,若有,则执行步骤S408,将总线分配给实时传送请求中优先级最高的(若仅有一个实时传送请求,则直接将总线分配给该请求);若没有,则执行步骤S410,将总线分配给多个非实时性传送请求中优先级最高的。步骤S408:总线系统将总线分配给实时传送请求中优先级最高的,进入步骤 S412 ;步骤S410 总线系统将总线分配给非实时性传送请求中优先级最高的,进入步骤 S412 ;步骤S412 调整各节点的优先级,等待下一轮总线预调度。实施例四参照图5,示出了根据本发明实施例四的一种总线调度装置的结构框图,包括接收模块502,用于同时接收多个节点发送的总线分配请求,其中,多个节点共享同一总线;分配模块504,用于按照多个节点中每个节点的优先级为每个节点分配总线资源。优选的,每个节点的优先级根据每个节点发送数据的实时性要求,即传输时延的大小设定,实时性要求越高则优先级越高。优选的,本实施例的总线调度装置还包括第一优先级更新模块506,用于在得到总线资源的节点使用总线资源发送完数据后,判断节点是否有实时传输标志,若是,则保持该节点的优先级不变,若否,则将该节点的优先级降为最低;和/或第二优先级更新模块 508,用于在得到总线资源的节点使用总线资源发送完数据后,判断该节点发送数据的时延是否小于或等于设定时延;若是,则保持该节点的优先级不变,若否,则将该节点的优先级设置为最低优先级。优选的,本实施例的总线调度装置还包括紧急发送模块510,用于如果有节点需要紧急传送数据;则在发送完当前数据后,为该节点分配总线资源。优选的,本实施例的总线调度装置还包括第三优先级更新模块512,用于判断共享总线的所有节点中除多个节点外的其它节点中每个节点的优先级;若被判断的节点的优先级低于总线的当前优先级,则将该节点的优先级提高一级;若被判断的节点的优先级高于总线的当前优先级,则保持该节点的优先级不变;其中,总线的当前优先级为总线当前发送数据的所属节点的优先级。实施例五参照图6,示出了根据本发明实施例五的一种总线调度装置的结构示意图。如图6中所示,本实施例中,共享总线的节点0到节点n,每个节点中都设置有总线请求模块,用以向总线发送总线分配请求,申请总线资源。全局总线仲裁模块,用以对节点发送的总线分配请求进行仲裁。当节点0到节点η中的多个节点同时通过总线请求模块,向总线请求资源时,总线调度装置中的接收模块同时接收这些节点的请求,由全局总线仲裁模块对这些请求进行仲裁,若多个节点的请求中有紧急传送请求,则仲裁分配模块优先为紧急传送请求的节点中优先级最高的分配总线资源;若多个节点的请求中有实时传送请求,则仲裁分配模块优先为实时传送请求的节点中优先级最高的分配总线资源;若多个节点的请求中均为一般传送请求,则仲裁分配模块优先为一般传送请求的节点中优先级最高的分配总线资源。图6中,以节点0为例,i_crf_0表示节点0的紧急传输信号,i_rtf_0表示节点0 的实时传输信号,i_bus_req_0表示节点0的总线分配请求信号,i_busy_0表示节点0的忙碌信号,i_prio_0表示节点0的优先级信号。图6中,o_bus_state表示总线状态信号,o_bus_grant表示总线授权信号,o_c_ prio表示当前系统总线优先级信号。需要说明的是,本发明虽然特别适用于Rapid IO链路中,但同样适用于其它各节点数据率不均衡和实时性要求不同的总线系统场景,并且对节点数据突发传输有一定的适应能力。本发明的上述多个实施例针对多处理器系统中出现多个节点抢占同一 Rapid IO 总线的场景,提出了一种基于动态优先级的总线调度机制,在Rapid IO系统数据交互过程中,各个节点都需要占用总线时,系统能够根据优先级动态分配总线,保证各节点实时高效同时兼顾公平地传输数据;当某节点的瞬时传输速率发生改变,缓存压力变大,亟需传输当前数据时,可以通过使能紧急传输标志(crf)优先传输当前节点数据,实现在一定范围内应对突发传输的能力。而当其他节点空闲时,某节点可以独占Rapid IO总线,提高总线传
输效率。显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种总线调度方法,其特征在于,包括同时接收多个节点发送的总线分配请求,所述多个节点共享所述总线; 按照所述多个节点中每个节点的优先级为所述每个节点分配总线资源。
2.根据权利要求1所述的方法,其特征在于,所述优先级根据所述每个节点发送数据的传输时延的大小设定。
3.根据权利要求1所述的方法,其特征在于,还包括在得到总线资源的节点使用所述总线资源发送完数据后,判断该节点是否有实时传输要求;若是,则保持该节点的优先级不变,若否,则将该节点的优先级降为最低。
4.根据权利要求1所述的方法,其特征在于,还包括在得到总线资源的节点使用所述总线资源发送完数据后,判断该节点发送数据的时延是否小于或等于设定时延;若是,则保持该节点的优先级不变,若否,则将该节点的优先级设置为最低优先级。
5.根据权利要求4所述的方法,其特征在于,还包括判断共享所述总线的所有节点中除所述多个节点外的其它节点中每个节点的优先级;若被判断的节点的优先级低于所述总线的当前优先级,并且无实时传输要求,则将该节点的优先级提高一级;否则,保持该节点的优先级不变;其中,所述当前优先级为所述总线当前发送数据的所属节点的优先级。
6.根据权利要求1所述的方法,其特征在于,还包括 如果有节点需要紧急传送数据;在发送完当前数据后,为该节点分配总线资源。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述总线为快速输入输出 Rapid IO 总线。
8.一种总线调度装置,其特征在于,包括接收模块,用于同时接收多个节点发送的总线分配请求,所述多个节点共享所述总线.一入 ,分配模块,用于按照所述多个节点中每个节点的优先级为所述每个节点分配总线资源。
9.根据权利要求8所述的装置,其特征在于,所述优先级根据所述每个节点发送数据的传输时延的大小设定。
10.根据权利要求8所述的装置,其特征在于,还包括第一优先级更新模块,用于在得到总线资源的节点使用所述总线资源发送完数据后, 判断该节点是否有实时传输要求;若是,则保持该节点的优先级不变,若否,则将该节点的优先级降为最低; 和/或第二优先级更新模块,用于在得到总线资源的节点使用所述总线资源发送完数据后, 判断该节点发送数据的时延是否小于或等于设定时延;若是,则保持该节点的优先级不变, 若否,则将该节点的优先级设置为最低优先级。
全文摘要
本发明公开了一种总线调度方法及装置,其中,所述方法包括同时接收多个节点发送的总线分配请求,所述多个节点共享所述总线;按照所述多个节点中每个节点的优先级为所述每个节点分配总线资源。通过本发明,有效保证了时延要求高的节点及时发送数据,提高了系统总体的传输效率和数据传输实时性的效果。
文档编号H04L12/40GK102347877SQ20101024300
公开日2012年2月8日 申请日期2010年7月30日 优先权日2010年7月30日
发明者李峰, 马慧 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1