微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 一种基于最小空闲时间优先的片上总线仲裁算法实现

一种基于最小空闲时间优先的片上总线仲裁算法实现

时间:09-07 来源:互联网 点击:

各个主设备实时性相关的参数(主设备请求总线服务时间、最大截止时间、请求访问从设备的地址及从设备传输响应时间等),然后进行简单的处理后,传入算法控制模块,经过算法控制模块的运算,最终得到各个主设备调整后的优先级。优先级调节器根据该结果通过信号授权模块动态调整各个主设备的优先级。

  进程是有优先级的。如果即将被运行的进程的优先级比正在运行的进程的优先级高,则系统可以强行剥夺正在运行的进程的CPU,让优先级高的进程先运行。

  HSRP参数,用于支持某个LAN网段中某个HSRP组中的活动HSRP路由器选择。缺省优先级是100。每组内优先级最高的路由器会被选为该组的活动转发路由器。

  但是由于具有降低优先级的任务长时间占用共享资源,造成申请该资源的优先级最高的进程始终处于等待状态,此时其他比占用资源优先级高但比等待资源进程优先级低的进程将获得处理器的使用权,并先于优先级最高的处于等待状态的进程先结束,称这种现象为优先级反转。

  (2)带宽调节器

  该模块的主要作用是监视总线上主设备实际传输带宽和由算法控制的应该配置带宽之间的变化,实时反馈信息给算法控制模块来保证带宽精确分配。该模块从信号提取模块中获得各个主设备带宽要求相关的参数(主设备每次数据传输的长度、主设备带宽需求以及总线带宽利用情况等),然后进行简单的处理,传入算法控制模块,经过算法控制模块的运算,最终得到各个主设备调整后的带宽要求,带宽调节器根据该结果通过信号授权模块动态调整各个主设备的带宽配置。

  (3)总线传输控制器

  该模块的主要作用是监视总线带宽的状态,准确预测出各设备请求的响应时间,并将该结果传入算法控制模块,经过算法控制模块的运算,得到新的总线带宽分配方案。总线传输控制器通过信号授权模块来协调各个主设备使用总线。

  (4)算法控制模块

  算法控制模块的硬件逻辑包括:时间片定时器、判据寄存器组、比较逻辑和算法控制状态机。其中,判据寄存器组的初始值通过离线计算获得,在总线服务过程时,通过主设备特性参数提取模块获得实时参数值,作为新的判据寄存器数据提供给算法控制状态机。比较逻辑负责对算法运行产生的新结果与判据寄存器组进行比较,并对判据寄存器组内的数据进行更新。

  算法控制状态机采用Mealy有限状态机来实现总线仲裁算法流程,完成对各主设备的优先级、带宽分配等属性的动态调节。另外对各主设备请求使用总线服务进行仲裁,实现各主设备协调使用总线所提供的服务。

  2 实验及结果分析

  为验证基于阈值的最小空闲时间优先服务总线仲裁器的性能,本文对基于动态优先级的仲裁器、基于时间轮转的仲裁器和本文提出的仲裁器进行了实验,并进行了比较。

  2.1 实验平台

  实验硬件平台为Core 2 Duo CPU(主频为2 GHz),内存4 GB,操作系统是Windows XP,仿真软件使用ModelSim6.4。在实验平台上,共实现了6个主设备、1个从设备和1个总线仲裁器。6个主设备的类型和相关参数如表1所示(在表1中,R表示有实时性要求,NR表示没有实时性要求;B表示有带宽要求,NB表示没有带宽要求)。

  2.2 实验结果

  首先,定义两种性能指标:

  (1)服务请求截止期错失率MDP(Missed Deadline Percentage)=“所有截止期错失的总线服务请求/所有主设备总线服务请求之和”。

  (2)服务切换次数SSN(Service Switch Num)=“从未完成的总线服务请求到抢占的总线服务请求切换次数”+“从完成总线服务请求到另一总线服务请求的切换次数”。

  在此基础上,对表1中所示的6个主设备分别采用4种总线仲裁算法进行仿真实验,得到如下结果。

  (1)对于不同总线负载ρ

  取公式(2)中的α=5,图2和图3分别表示对于不同总线负载ρ(0.5≤ρ≤2.0)情况下,4种总线仲裁算法的MDP比较。其中图2是在每个主设备请求100个总线服务下的MDP,图3是每个主设备请求200个总线服务下的MDP。从图2和图3中可以看出,最小空闲时间优先总线仲裁器得到的MDP要明显小于其他两种总线仲裁器。当ρ≤1时,最小空闲时间总线仲裁器可以保证每个主设备都满足其总线服务截止期要求;当ρ>1时,会出现主设备部分总线服务请求不能满足其服务截止期要求的情况,但其MDP要明显小于其他两种总线仲裁器。

  (2)对于不同比例系数α

  取ρ=1.3,图4和图5分别给出了在不同比例系数α时的MDP和SSN变化情况。

从图4中可以看出,对于MDP的影响,并不是抢占次数越多(比例系数α越小)调度效果就越好,而是当α=12时,MDP最小;而当α=1时,MDP达到最大。从图5中可以看出,SSN的值随着ρ的变大而逐渐变小,但是,当α的值

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top