背景技术
随着计算机、通信和消费类电子产品3C融合需求的增长以及半导体工艺集成度的提高,***芯片中集成了越来越多的功能部件,例如显示控制器、媒体加速器和多种主流的输入输出控制器等。在知识产权复用方法学的指导下,这些***芯片普遍采用工业级标准的总线通信协议设计片上通信结构。在这类***芯片中,显示控制器、媒体加速器和输入输出控制器都需要与内存进行大量的数据交互,使得内存访问成为***的性能瓶颈。同时,由于各个设备的访存交易都通过总线发送至内存控制器,因此总线仲裁对访存性能具有重要影响。
***芯片普遍采用SDRAM(Synchronous Dynamic Random Access Memory,同步动态随机存储器)或其升级类型的存储器作为内存。访存操作的执行顺序决定了内存切换行地址和读写类型的次数,从而决定了访存性能。行地址切换也是内存的主要能耗。为了优化访存顺序,许多内存控制器都采用访存调度技术在缓冲队列中对访存交易进行乱序调度。然而,由于缓冲队列深度的限制,访存调度的范围通常比较有限。通过对***芯片中设备通信行为的分析发现:同一个设备发出的多个未决交易往往地址连续且读写类型相同。然而,传统的总线仲裁方法主要关注如何同时满足各个设备对通信服务质量的要求,并未考虑这一特性,导致这些设备发出的未决交易序列经过总线仲裁后往往互相交错,无法连续地发送至内存控制器。同时,由于内存控制器难以在有限的调度范围内观察到同一个设备发出的所有未决交易,因此很难将交错的交易完全恢复成原始的未决交易序列,最终导致同一个设备发出的、地址连续且读写类型相同的未决交易序列通常无法连续地发送至内存。随着***芯片中设备数量的增加以及性能需求的提高,传统的总线仲裁方法的问题将导致访存调度的优化效果更加不明显。
***芯片中集成了许多具有高带宽、低延迟或实时需求的通信设备。例如,媒体加速类设备的带宽需求量大,处理器的延迟应尽可能低,显示控制器需要实时传输高带宽的数据。传统的总线仲裁方法主要关注如何同时满足这些设备对带宽和延迟的要求。目前比较流行的总线仲裁方法包括:静态优先级仲裁、TDMA(Time Division Multiple Access,时分多址)、Lottery(彩票)、RB_Lottery,RT_Lottery,QoS(Quality of Service,服务质量)仲裁,基于Slack的QoS仲裁。以下将分别对每一种方法及其问题进行简略的介绍。
静态优先级仲裁:给每个一个主设备分配一个固定的优先级,仲裁器选择所有申请者中优先级最高的授予总线使用权。当多个高带宽或低延迟的设备同时申请时,静态优先级在保证个别设备绝对优先权的同时可能导致其它设备的需求无法满足。
TDMA:一般扩展成一个两层协议。第一层采用时间轮,并将总线的使用时间分割成时间轮上的时间片,每一片均分给一个单独的主设备。如果当前时间片的占有者申请总线,则仲裁器将该时间片的使用权授予该占有者,否则第二层协议会将时间片按轮转的方式授予给其他主设备。该方法能够在一定程度上合理的分配带宽,但是由于其时间片已经提前固定分配好,若一个主设备在属于它的时间片轮转过后才申请总线,则其通信延迟可能会很大。
Lottery:针对静态优先级仲裁和TDMA的问题,Lottery仲裁使用一个统一控制的“彩票管理者”按照一定概率仲裁总线使用权。每个主设备都会根据其带宽需求量分配一定数量的彩票,带宽需求量高的彩票数目多。“彩票管理者”会在所有申请者的彩票中随机的抽取一张,被抽中的主设备获得总线使用权。其主要问题包括三个方面:1)无法保证实时设备的传输,2)无法准确的控制带宽分配,3)难以保证带宽需求量小的设备低延迟的传输需求。
RT_Lottery:针对Lottery无法保证实时传输的问题提出的一个两层的仲裁协议。第一层主要用来处理有实时要求且比较紧急的请求,若当前无上述类型的请求则第二层仲裁协议将发挥作用。第二层与Lottery比较类似,但是第二层在硬件实现前需要通过模拟来调整各个主设备分配的票数。调整的方法是迭代的将拥有最多多余票数的主设备的彩票分给最缺彩票的主设备。
RB_Lottery:针对Lottery和RT_Lottery无法准确的控制带宽分配的问题提出的一个两层的仲裁协议。第一层主要用来处理有实时要求且比较紧急的请求,若当前无上述类型的请求则第二层仲裁协议将发挥作用。第二层与RT_lottery的第二层比较类似,但是第二层在硬件实现上增加了带宽调节器。带宽调节器根据用户设置的时间窗口的大小和主设备在一个时间窗口内的带宽需求,检查各个主设备在当前时间窗口内分配到的总线带宽是否达到了它的需求。如果已经达到,则带宽调节器将拦截该主设备在当前窗口的剩余时间内向总线仲裁器发出的请求。RB_Lottery能够保证实时传输的要求,并准确的控制带宽分配,但是它无法保证带宽需求量小的设备低延迟的传输需求。
QoS仲裁:针对Lottery系列仲裁方法无法保证带宽需求量小的设备低延迟的传输需求的问题提出的一种仲裁方法。该方法将设备对于服务质量的需求分成从高到低三个QoS等级:优先级、带宽和尽力,分别对应于低延迟、高带宽以及对延迟和带宽无严格要求的通信设备,通过带宽分配部件和仲裁部件两个部分协同进行仲裁。带宽分配部件计算前两个等级的设备的带宽使用情况,带宽使用量过高的设备降级为尽力级别的设备。仲裁部件根据调整后各个设备的等级进行仲裁,相同等级的设备遵循LRS(Least Recently Serviced,最近最少服务)原则。QoS仲裁的一个主要问题是:QoS仲裁方法通过高优先级保证实时设备的传输,可能导致其它设备的通信延迟上升。
基于Slack的QoS仲裁:由于QoS仲裁通过高优先级保证实时设备的传输,可能导致其它设备的通信延迟上升。针对此问题,基于Slack的QoS仲裁在QoS仲裁的基础上增加一个独立的实时调度部件。该部件负责计算每一个实时交易剩余的处理时间,并将需立刻处理的设备升级为优先级设备。
虽然基于Slack的QoS仲裁能够保证各个设备对于通信服务质量的要求。但是,在LRS原则的作用下,各设备发出的未决交易序列往往交错地发送至内存控制器。而内存控制器难以在有限的调度范围内观察到同一个设备发出的所有未决交易,因此很难将交错的交易恢复成原始的交易序列,最终导致同一个设备发出的、地址连续且读写类型相同的未决交易序列通常无法连续地访问内存。
发明内容
本发明要解决的技术问题是如何进行片上总线仲裁,以在保证通信服务质量的同时优化访存性能。
为了解决上述问题,本发明提供了一种片上总线仲裁方法,包括:
将设备分为从高到低的第一级、第二级、第三级;
在每个仲裁周期中,执行下列步骤:
计算每一个实时交易剩余的处理时间,并将发出需要立刻处理的申请的设备在本仲裁周期中升级为第一级;
监视第一级和第二级的设备的带宽使用量,将带宽使用量超过预设带宽阈值的设备在本仲裁周期中降级为第三级;
对总线使用权发出申请的设备中,当等级最高的设备为第一级设备时,授权给第一级设备;当等级最高的设备不是第一级设备时,授权给发出连续的申请的设备;
所述连续的申请是指与最近授权交易读写类型相同,且地址与最近授权交易的地址命中相同行或不同存储体的申请。
进一步地,所述授权给发出连续的申请的设备的步骤包括:
如果没有授权期设备,则授权给等级最高的设备中,发出连续的申请的设备;
如果有比授权期设备等级更高的设备发出申请,则授权给等级更高的设备中,发出连续的申请的设备;
当没有等级更高的设备发出申请时,判断授权期设备是否发出连续的申请,如果是则授权给该授权期设备;如果该授权期设备发出的申请不是连续的申请,则授权给等级最高的设备中,发出连续的申请的设备;
其中,所述授权期设备是指:
当不存在授权期设备,且有第二、第三级设备获得授权时,该获得授权的设备为授权期设备;
当存在授权期设备时,在比该授权期设备更高等级的设备没有发出申请的情况下,如果该授权期设备发出了连续的申请、或如果该授权期设备未发出申请且当前时间和该授权期设备上次发出申请的时刻之间的时间间隔未超出该授权期设备的交易间隔,则该授权期设备仍为授权期设备;
当存在授权期设备且不属于上述授权期设备仍为授权期设备的情况时,如果有第二、第三级设备获得授权,该获得授权的设备为授权期设备;
所述交易间隔为同一设备发出的未决交易之间存在的间隔。
进一步地,所述授权给发出连续的申请的设备的步骤还包括:
当存在授权期设备且比所述授权期设备更高等级的设备没有发出申请时,如果该授权期设备没有发出申请,且当前时间和该授权期设备上次发出申请的时刻之间的时间间隔未超出该授权期设备的交易间隔,则判断是否有设备发出连续的申请,如果有则授权给该发出连续的申请的设备,如果没有则不授权。
进一步地,所述授权给发出连续的申请的设备的步骤还包括:
当没有等级更高的设备发出申请、所述授权期设备没有发出申请且当前时间和该授权期设备上次发出申请的时刻之间的时间间隔超出该授权期设备的交易间隔时,判断是否存在其它申请;如果不存在则不进行授权;如果存在并且等级最高的设备发出了连续的申请,则授权给发出连续的申请的设备;如果其它申请中, 没有等级最高的设备发出的连续的申请,则按照最少最近服务LRS原则授权。
进一步地,所述授权给发出连续的申请的设备的步骤还包括:
如果没有授权期设备且等级最高的设备没有发出连续的申请,则按照最少最近服务LRS原则授权;
如果比授权期设备等级更高的设备没有发出连续的申请,则按照最少最近服务LRS原则授权;
当没有等级更高的设备发出申请,且该授权期设备发出的申请不是连续的申请时,如果等级最高的设备没有发出连续的申请,则按照最少最近服务LRS原则授权。
本发明还提供了一种片上总线仲裁装置,包括:
设置模块,用于将设备分为从高到低的第一级、第二级、第三级;
实时调度模块,用于在每个仲裁周期中计算每一个实时交易剩余的处理时间,并将发出需要立刻处理的申请的设备在本仲裁周期中升级为第一级;
带宽分配模块,用于在每个仲裁周期中,监视第一级和第二级的设备的带宽使用量,将带宽使用量超过预设带宽阈值的设备在本仲裁周期中降级为第三级;
受限保持授权仲裁模块,用于在每个仲裁周期中,当所述实时调度模块和带宽分配模块调整等级后,对总线使用权发出申请的设备中,当等级最高的设备为第一级设备时,授权给第一级设备;当等级最高的设备不是第一级设备时,授权给发出连续的申请的设备;所述连续的申请是指与最近授权交易读写类型相同,且地址与最近授权交易的地址命中相同行或不同存储体的申请。
进一步地,所述受限保持授权仲裁模块授权给发出连续的申请的设备是指:
如果没有授权期设备,则所述受限保持授权仲裁模块授权给等级最高的设备中,发出连续的申请的设备;
如果有比授权期设备等级更高的设备发出申请,则所述受限保持授权仲裁模块授权给等级更高的设备中,发出连续的申请的设备;
当没有等级更高的设备发出申请时,所述受限保持授权仲裁模块判断授权期设备是否发出连续的申请,如果是则授权给该授权期设备;如果该授权期设备发出的申请不是连续的申请,则授权给等级最高的设备中,发出连续的申请的设备;
其中,所述授权期设备是指:
当不存在授权期设备,且有第二、第三级设备获得授权时,该获得授权的设备为授权期设备;
当存在授权期设备时,在比该授权期设备更高等级的设备没有发出申请的情况下,如果该授权期设备发出了连续的申请、或如果该授权期设备未发出申请且当前时间和该授权期设备上次发出申请的时刻之间的时间间隔未超出该授权期设备的交易间隔,则该授权期设备仍为授权期设备;
当存在授权期设备且不属于上述授权期设备仍为授权期设备的情况时,如果有第二、第三级设备获得授权,该获得授权的设备为授权期设备;
所述交易间隔为同一设备发出的未决交易之间存在的间隔。
进一步地,所述受限保持授权仲裁模块授权还用于当存在授权期设备且比所述授权期设备更高等级的设备没有发出申请时,如果该授权期设备没有发出申请,且当前时间和该授权期设备上次发出申请的时刻之间的时间间隔未超出该授权期设备的交易间隔,则判断是否有设备发出连续的申请,如果有则授权给该发出连续的申请的设备,如果没有则不授权。
进一步地,所述受限保持授权仲裁模块授权还用于当没有等级更高的设备发出申请、所述授权期设备没有发出申请且当前时间和该授权期设备上次发出申请的时刻之间的时间间隔超出该授权期设备的交易间隔时,判断是否存在其它申请;如果不存在则不进行授权;如果存在并且等级最高的设备发出了连续的申请,则授权给发出连续的申请的设备;如果其它申请中,没有等级最高的设备发出的连续的申请,则按照最少最近服务LRS原则授权。
进一步地,所述受限保持授权仲裁模块包括:
连续性计算单元、连续性筛选单元、超时判断单元、优先级仲裁单元、多选器、设备号更新单元和状态机;
所述连续性计算单元用于从所述状态机获得上一个仲裁周期授权的交易序列的行地址及读写类型,计算每一个申请与最近授权交易的行地址是否相同或者是否访问不同的存储体,以及读写类型是否相同,最后得到对应于每一个设备的连续性计算结果,连续为1,不连续为0;再由该结果组成连续性向量;第一级的设备的申请默认为不连续;
所述连续性筛选单元用于从所述状态机获得当前发出申请的设备的等级,并从所述连续性向量中筛选出当前最高等级的申请的连续性状态向量,并发送给所述状态机;
所述优先级仲裁单元包括第一、第二、第三优先级仲裁单元;第一优先级仲裁单元输入各个设备的申请情况及所述连续性筛选单元筛选出的连续性状态向量按位与的结果,用于计算第一授权结果;第二优先级仲裁单元输入各个设备的申请情况与最高等级的设备的申请的连续性向量按位与的结果,用于计算第二授权结果;第三优先级仲裁单元直接输入各个设备的申请情况,用于计算第三授权结果;所述申请情况为:发出申请为1,没申请为0;
所述多选器用于根据所述状态机的指示在第一、第二、第三授权结果和0中选择一个作为当前的授权结果输出,并将该当前的授权结果输入给所述超时判断单元及设备号更新单元;
所述设备号更新单元用于在所述多选器选择出当前的授权结果时,根据当前的授权结果、从所述状态机获得的各个等级的设备数量以及当前时刻同一等级中设备之间LRS顺序更新设备之间的优先顺序,用于下一次仲裁;
所述超时判断单元用于计算当前时刻距离处于授权期的设备发出上一个申请的时刻已经过了多少个周期,并且判断是否该周期数是否超过该设备的交易间隔,将判断结果输入给所述状态机;
所述状态机用于根据其状态信息、连续性向量、连续性状态向量、等级和申请情况判断仲裁器当前应采用的授权情况,指示所述多选器进行选择。
本发明的技术方案对基于Slack的QoS仲裁进行了改进,通过在除了第一级之外的设备中,连续授权同一个设备发出的、行地址和读写类型相同的未决交易序列,保证此类交易序列不被打断地发送至内存控制器,从而减少内存切换行地址和读写类型的次数,优化访存效率。
具体实施方式
下面将结合附图及实施例对本发明的技术方案进行更详细的说明。
需要说明的是,如果不冲突,本发明实施例以及实施例中的各个特征可以相互结合,均在本发明的保护范围之内。另外,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
实施例一、一种片上总线仲裁方法,包括:
将设备分为从高到低的第一级、第二级、第三级;
在每个仲裁周期中,如图1所示,执行下列步骤:
计算每一个实时交易剩余的处理时间,并将发出需要立刻处理的申请的设备在本仲裁周期中升级为第一级;
监视第一级和第二级的设备的带宽使用量,将带宽使用量超过预设带宽阈值的设备在本仲裁周期中降级为第三级;
上述两步前后顺序可以不限;
对总线使用权发出申请的设备中,当等级最高的设备为第一级设备时,授权给第一级设备;当等级最高的设备不是第一级设备时,授权给发出连续的申请的设备;
连续的申请,如果某个申请与最近授权的交易读写类型相同,而且申请的地址与最近授权的交易的地址命中相同行或者不同的存储体,则称这个申请是连续的申请。
本实施例主要但不限于用于采用SDRAM或其升级类型的存储器作为共享内存、片上总线作为***通信结构的***芯片设计中。
本实施例中,所述第一级、第二级、第三级可以但不限于称为优先级等级、带宽级等级和尽力级等级;可以但不限于按照设备对服务质量的需求将设备分为优先级等级、带宽级等级和尽力级等级;设备对服务质量的需求主要包括两个方面:带宽和延迟;优先级等级对应于具有低延迟要求的设备,例如处理器;带宽等级对应于具有高带宽要求的设备,例如各类媒体加速器和高速IO控制器;尽力等级对应于对带宽和延迟均无严格要求的设备,例如慢速的IO控制器。
本实施例中,所述实时交易剩余处理时间可以为在不违背发出某个实时交易的设备对通信延迟要求的情况下,可用于处理该实时交易的最大周期数。所述设备的带宽使用量可以为某个设备在过去一个时间窗口内(即一段固定长度的时间内)占用总线进行传输的周期数;所述预设带宽阈值可以为设计人员分配给该设备的总线周期数。
本实施例中引入授权期的概念,在仲裁过程中,如果不处于任一设备的授权期(不存在授权期设备),当有第二、第三级设备获得授权时,进入该获得授权的设备的授权期,该获得授权的设备为授权期设备,如果是第一级设备获得授权,或没有设备获得授权,则为无授权期(不存在授权期设备)情况。
如果处于一个设备的授权期(存在授权期设备),则分以下几种情况:
(1)比该授权期设备更高等级的设备没有发出申请,且该授权期设备发出了连续的申请,则该授权期设备能够优先获得总线授权,仲裁过程仍处于该授权期设备的授权期,该授权期设备仍为授权期设备;
(2)比该授权期设备更高等级的设备没有发出申请,该授权期设备没发出申请且当前时间和该授权期设备上次发出申请的时刻之间的时间间隔未超出该授权期设备的交易间隔,则仲裁过程仍处于该授权期设备的授权期,该授权期设备仍为授权期设备;
(3)其它情况下,当有第二、第三级设备获得授权时,进入该获得授权的设备的授权期,该获得授权的设备为授权期设备;如果是第一级设备获得授权或没有设备获得授权,则为无授权期情况。
上述(3)中的其它情况包括:
比该授权期设备更高等级的设备发出申请;
比该授权期设备更高等级的设备没有发出申请,且授权期设备发出的申请不是连续的申请;
比该授权期设备更高等级的设备没有发出申请,该授权期设备没有发出申请且当前时间和该授权期设备上次发出申请的时刻之间的时间间隔已超出其交易间隔。
在(2)的情况中,如果其它设备发出的申请中,存在连续的申请,则授权给发出该连续的申请的设备,不存在则不进行授权。
在(3)的情况中,优先授权给发出申请的第一级设备;如果没有第一级设备发出申请,则优先授权给等级最高的设备中发出连续的申请的设备;如果等级最高的设备没有发出连续的申请,则按照LRS原则授权。
所述交易间隔定义为由于时钟频率、通信接口设计等原因导致同一设备发出的未决交易之间存在的间隔,可以为一个经验值。
本实施例中,所述授权给发出连续的申请的设备的步骤具体可以包括:
如果没有授权期设备,则授权给等级最高的设备中,发出连续的申请的设备;
如果有比授权期设备等级更高的设备发出申请,则授权给等级更高的设备中,发出连续的申请的设备;
当没有等级更高的设备发出申请时,判断授权期设备是否发出连续的申请,如果是则授权给该授权期设备;如果该授权期设备发出的申请不是连续的申请,则授权给等级最高的设备中,发出连续的申请的设备。
本实施例中,所述授权给发出连续的申请的设备的步骤还可以包括:
当没有等级更高的设备发出申请、所述授权期设备没有发出申请且当前时间和该授权期设备上次发出申请的时刻之间的时间间隔超出该授权期设备的交易间隔时,判断是否存在其它申请;如果不存在则不进行授权;如果存在并且等级最高的设备发出了连续的申请,则授权给发出连续的申请的设备;如果其它申请中, 没有等级最高的设备发出的连续的申请,则按照最少最近服务LRS原则授权。
本实施例中,所述授权给发出连续的申请的设备的步骤还可以包括:
如果没有授权期设备且等级最高的设备没有发出连续的申请,则按照最少最近服务LRS原则授权;
如果比授权期设备等级更高的设备没有发出连续的申请,则按照最少最近服务LRS原则授权;
当没有等级更高的设备发出申请,且该授权期设备发出的申请不是连续的申请时,如果等级最高的设备没有发出连续的申请,则按照最少最近服务LRS原则授权。
本实施例中,凡是当可以授权的设备有多个时,都可以按照LRS原则进行授权;比如:
当等级最高的设备为第一级设备并且为多个时,按照LRS原则授权;
当发出连续的申请的设备有多个时,按照LRS原则对发出这些申请的多个设备进行授权。
也就是说,本实施例中,在一个仲裁周期里,当没有更高级设备发出申请时,对第二级或第三级设备的申请进行仲裁时的策略包括:
策略1,如果授权期设备在当前周期再次发出总线申请,而且该申请的地址与上一个授权的交易的地址命中同一行或者不同的存储体,读写类型也相同,则该设备继续获得总线授权;
策略2,如果授权期设备没有发出申请,而且当前时刻与该设备上次申请的时刻(即该设备使能其申请信号的时刻)之间的时间间隔没有超过该设备的交易间隔,则仲裁可授权其它发出连续的申请的设备,但是该授权期设备仍然被当作处于授权期的设备;
策略3,如授权期设备在当前周期再次发出总线申请,但是该申请与上一个授权的交易的地址命中不同行或者读写类型不同,或者授权期设备没有发出申请,而且当前时刻与该设备上次申请的时刻(即该设备使能其申请信号的时刻)之间的时间间隔超过了该设备的交易间隔,则仲裁优先授权行地址和读写类型与最近授权交易相同的申请。如果仍然存在多个申请,则根据LRS顺序仲裁。
实施例二、一种片上总线仲裁装置,包括:
设置模块,用于将设备分为从高到低的第一级、第二级、第三级;
实时调度模块,用于在每个仲裁周期中计算每一个实时交易剩余的处理时间,并将发出需要立刻处理的申请的设备在本仲裁周期中升级为第一级;
带宽分配模块,用于在每个仲裁周期中,监视第一级和第二级的设备的带宽使用量,将带宽使用量超过预设带宽阈值的设备在本仲裁周期中降级为第三级;
受限保持授权仲裁模块,用于在每个仲裁周期中,当所述实时调度模块和带宽分配模块调整等级后,对总线使用权发出申请的设备中,当等级最高的设备为第一级设备时,授权给第一级设备;当等级最高的设备不是第一级设备时,授权给发出连续的申请的设备;所述连续的申请是指与最近授权交易读写类型相同,且地址与最近授权交易的地址命中相同行或不同存储体的申请。
本实施例中,所述第一级、第二级、第三级可以但不限于称为优先级等级、带宽级等级和尽力级等级;可以但不限于按照设备对服务质量的需求将设备分为优先级等级、带宽级等级和尽力级等级。
本实施例中,所述受限保持授权仲裁模块授权给发出连续的申请的设备具体可以是指:
如果没有授权期设备,则所述受限保持授权仲裁模块授权给等级最高的设备中,发出连续的申请的设备;
如果有比授权期设备等级更高的设备发出申请,则所述受限保持授权仲裁模块授权给等级更高的设备中,发出连续的申请的设备;
当没有等级更高的设备发出申请时,所述受限保持授权仲裁模块判断授权期设备是否发出连续的申请,如果是则授权给该授权期设备;如果该授权期设备发出的申请不是连续的申请,则授权给等级最高的设备中,发出连续的申请的设备;
授权期设备的定义同实施例一。
本实施例中,所述受限保持授权仲裁模块授权还可以用于当存在授权期设备且比所述授权期设备更高等级的设备没有发出申请时,如果该授权期设备没有发出申请,且当前时间和该授权期设备上次发出申请的时刻之间的时间间隔未超出该授权期设备的交易间隔,则判断是否有设备发出连续的申请,如果有则授权给该发出连续的申请的设备,如果没有则不授权。
本实施例中,所述受限保持授权仲裁模块授权还可以用于当没有等级更高的设备发出申请、所述授权期设备没有发出申请且当前时间和该授权期设备上次发出申请的时刻之间的时间间隔超出该授权期设备的交易间隔时,判断是否存在其它申请;如果不存在则不进行授权;如果存在并且等级最高的设备发出了连续的申请,则授权给发出连续的申请的设备;如果其它申请中,没有等级最高的设备发出的连续的申请,则按照最少最近服务LRS原则授权。
本实施例中,所述受限保持授权仲裁模块授权还可以用于当没有授权期设备且等级最高的设备没有发出连续的申请时,按照最少最近服务LRS原则授权;当比授权期设备等级更高的设备没有发出连续的申请时,按照最少最近服务LRS原则授权;当没有等级更高的设备发出申请,且该授权期设备发出的申请不是连续的申请时,如果等级最高的设备没有发出连续的申请,则按照最少最近服务LRS原则授权。
本实施例中,凡是当可以授权的设备有多个时,所述受限保持授权仲裁模块都可以按照LRS原则进行授权;比如:
当等级最高的设备为第一级设备并且为多个时,按照LRS原则授权;
当发出连续的申请的设备有多个时,按照LRS原则对发出这些申请的多个设备进行授权。
下面用一个具体的例子进行说明,该例子中所述等级称为QoS等级,第一级、第二级、第三级称为优先级等级、带宽级等级和尽力级等级。
该例子中,仲裁过程处于某设备(假设为A)的授权期,受限保持授权仲裁模块的工作流程如图2所示,包括四种授权情况:
情况一,如果当前QoS等级比A更高的设备没有发出申请,而且A发出了连续的申请,则A获得授权(图2中的步骤①);
情况二,如果当前QoS等级比A更高的设备没有发出申请,而且A没有发出申请,而且A的申请间隔(当前时刻和A上次发出申请的时刻之间的时间间隔)小于它的交易间隔,而且存在某个设备发出了连续的申请,则发出连续申请的设备获得授权(图2中的步骤②);如果存在多个可能授权的申请,则根据LRS顺序进行选择;如果不存在连续的申请,则不授权任何设备;
情况三,若A发出了申请但是不连续,或者A没有发出申请且其申请间隔已经超过了其交易间隔,或者当前QoS等级比A更高的非优先级设备发出了申请,且存在最高QoS等级的连续的申请,则最高QoS等级的连续的申请获得授权(图2中的步骤③);如果存在多个可能授权的申请,则根据LRS顺序进行选择;如果A没有发出申请且其申请间隔已经超过了其交易间隔,且不存在其它申请,则进行无授权期流程;
情况四,若前三种情况下的判断条件均不成立,则根据QoS等级和LRS顺序进行仲裁(图2中的步骤④),当存在优先级设备的申请时,完成步骤④后进行无授权期流程;其它情况下完成步骤④后进行其它授权期流程;
步骤①和②后授权完毕;步骤③后进行其它授权期流程。
为了方便硬件实现,本实施例统一采用逻辑设计比较简单的固定优先级仲裁分别计算后三种授权情况的结果。其基本思想是,首先根据各个设备的QoS等级和当前同一级设备之间的LRS顺序计算出所有设备之间的优先顺序,然后根据当前采用的授权情况的种类屏蔽不符合条件的申请,最后根据设备优先顺序和屏蔽后的申请采用固定优先级仲裁方法计算当前采用的授权情况的结果。例如,通过屏蔽不连续的申请可计算出上述情况二的结果。基于这一思想,受限保持授权仲裁模块的硬件结构可以如图3所示,包括:
连续性计算单元、连续性筛选单元、超时判断单元、优先级仲裁单元、多选器、设备号更新单元和状态机;以下分别对这些组成单元进行详细说明:
连续性计算单元,用于从所述状态机获得上一个仲裁周期授权的交易序列的行地址last_addr及读写类型last_rw,计算每一个申请与最近获得授权的交易的行地址是否相同或者是否访问不同的存储体,以及读写类型是否相同,最后得到对应于每一个设备的连续性计算结果,连续为1,不连续为0;再由该结果组成连续性向量;第一级的设备的申请默认为不连续;
连续性筛选单元,用于从所述状态机获得当前发出申请的设备的等级h_req_lev,并从所述连续性向量中筛选出当前最高等级的申请的连续性状态向量continuityP,即在所述连续性向量中将其它等级的申请的连续性分量全部置为0,并发送给所述状态机;当前发出申请的设备的等级由状态机根据所有设备之间的优先顺序以及申请情况计算得到;
优先级仲裁单元,用于采用固定优先级方法进行仲裁,包括第一、第二、第三优先级仲裁单元;图3中实例化了3个优先级仲裁单元,其输入的设备之间的优先顺序相同,但申请情况不同,因此分别用于计算不同授权情况的仲裁结果;第一优先级仲裁单元1输入各个设备的申请情况及所述连续性筛选单元筛选出的连续性状态向量按位与的结果,用于计算第一授权结果;第二优先级仲裁单元2输入各个设备的申请情况与最高等级的设备的申请的连续性向量按位与的结果,用于计算第二授权结果;第三优先级仲裁单元3直接输入各个设备的申请情况,用于计算第三授权结果;所述申请情况为:发出申请为1,没申请为0;
多选器,用于根据所述状态机的指示在第一、第二、第三授权结果和0中选择一个作为当前的授权结果输出,并将该当前的授权结果输入给所述超时判断单元及设备号更新单元;
设备号更新单元,用于在所述多选器选择出当前的授权结果时,根据当前的授权结果、从所述状态机获得的各个等级的设备数量level_cal以及当前时刻同一等级中设备之间LRS顺序更新设备之间的优先顺序,用于下一次仲裁;
超时判断单元,用于计算当前时刻距离当前处于授权期的设备(上一个仲裁周期获得授权的设备)发出上一个申请的时刻已经过了多少个周期,并且判断是否该周期数是否超过该设备的交易间隔,将判断结果inv_exp输入给所述状态机;该设备的交易间隔需要在工作之前通过处理器配置到超时判断单元中;
状态机,其状态信息与授权期一一对应,包括某个设备的授权期和无授权期两类状态,无授权期表示当前不处于任何一个设备的授权期,用于根据其状态信息、连续性向量、连续性状态向量、等级和申请情况判断仲裁器当前应采用的授权情况,然后指示所述多选器进行选择;当前应采用的授权情况的判断依据可参照上文的策略或如图2所示,在此不作重复。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明的权利要求的保护范围。