from 

2015-EDCAV-Problems encountered in various arbitration techniques used in NOC router-A survey

2001-Engineering Issues, Arbiters and Allocators

book_Principles and Practices of Interconnection Networks

basic terminology

Congestion:- Many input ports are requesting for the same output port.

Starvation: - A type of unfairness in which all the input ports don’t have an equal chance of accessing the output port.

Deadlock: - Output port can’t be accessed by an input port because it is waiting on other input port to release the resources.

Livelock: - Packets from the input port are moving but they can’t reach the desired output port.

Head of Line Blocking:- It occurs in the case that two input ports request for the same output port but it is already being occupied by one of the input port, so another input port and the coming input port requests can’t advance to the desired output port thus, degrading the network performance.

Arbitration Timing

The duration of the grant depends on the application. In some applications, the requester may need uninterrupted access to the resource for a number of cycles.

In other applications, it may be safe to rearbitrate every cycle.

To suit these different applications, we may build arbiters that issue a grant for a single cycle, for a fixed number of cycles, or until the resource is released.

Design goal

The arbitration should guarantee the fairness in scheduling, avoid starvation, and provide high throughput

Fixed Priority Arbiter(固定优先级)

The simplest form of arbiters which has a predetermined priority order grants access to a shared resource based on which it grants access to a shared resource.

Its implementation involves a linear array of basic bit cells resulting in the generation of the grant Gi if both the input request Ri and incoming priority signal Ci are asserted.

The carry input Ci indicates that the resource has not been granted to a higher priority request and, hence, is available for this bit cell.

disadvantages:

  • Critical path delay grant is linearly proportional to the number of inputs.
  • The problem of starvation is very severe as only one input port is provided with a highest priority while all other with a low priority to access the output port i.e. an unfair arbitration technique.

Round-robin Arbiter(轮转法)

Round robin arbiter provides a high degree of fairness among the agents by treating each input port fairly and guaranteeing fairness in scheduling.

Thus, each input port is provided with an equal chance to access the output port and the starvation problem can be solved

A round-robin arbiter operates on the principle that a request that was just served should have the lowest priority on the next round of arbitration.

The round robin arbitration, in its basic form, is a simple time slice scheduling, allowing each requestor an equal share of the time in accessing a memory or a limited processing resource in a circular order.

An extension to RRA is the weighted version of RRA. Here if we want to process Inputs 1’s packets twice as often as Input 2’s packets we do it in one of two ways.

  • We place two request of Input 1 in the Request Stack.
  • Another way is to have a counter for each input. The counter represents the number of requests the input should be granted over a given period of time.

The problems we have found are -
1) The high degree of fairness of the round robin arbiter may degrade the efficiency for some input ports.
2) Round Robin Arbiter is a little bit time-consuming operation and is mostly contributed by the Input Selector to grant the requests, which also determines critical path delay.

Matrix Arbiter(最久未被使用优先)

A matrix arbiter implements a least recently served priority scheme by maintaining a triangular array of state bits wij for all i < j.

The bit W_ij in row i and column j indicates that request i takes priority over request j .

A 1 at the ath row and the bth column means requestor a beats requestor b in acquiring the resource.

This information is maintained in a matrix form where each row corresponds to an input and each column corresponds to an output.

after Input 1 gets processed=>

For the maintenance of priority registers, when a matrix arbiter grants a requester,

the arbiter resets the row that has the same row index as the winner to 0 and sets the column that has the same column index as the winner to 1,

to give itself the lowest priority since it was the most recently served.

Queuing Arbiter(先到先服务)

a queueing arbiter provides FIFO priority.

It accomplishes this by assigning a time stamp to each request when it is asserted.

During each time step, the earliest time stamp is selected by a tree of comparators.

Arbiter的更多相关文章

  1. [MONGODB]: WHEN ARBITER REQUIRED FOR REPLICA SET

    October 27, 2015 · by Srinivas · in MongoDB   MongoDB replica sets provide a number of features that ...

  2. hdu----(3118)Arbiter(构造二分图)

    Arbiter Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total S ...

  3. NOI 评价体系 arbiter 安装方法 常见的问题 移植

    #!/bin/bash AppPath="$PWD"   读取当前文件夹 echo "Arbiter is installing..." sudo apt-ge ...

  4. gunicorn Arbiter 源码解析

    如前文所述,Arbiter是gunicorn master进程的核心.Arbiter主要负责管理worker进程,包括启动.监控.杀掉Worker进程:同时,Arbiter在某些信号发生的时候还可以热 ...

  5. Arbiter 系统使用说明

    Arbiter 系统使用说明 Overview Arbiter是NOI系列赛事的官方评测软件, 由北航的相关人员开发. 在OIer会经历的几场大型比赛中, 除了省选和PKUSC/THUSC不使用Arb ...

  6. [转]NOI_Linux Arbiter使用手册

    讲述清楚,简单易懂的Arbiter使用手册 转载自 https://www.cnblogs.com/gengchen/p/7761565.html Arbiter 系统使用说明 Overview Ar ...

  7. 学习MongoDB(三) Add an Arbiter to Replica Set 集群中加入仲裁节点

    Add an Arbiter to Replica Set 在集群中加入仲裁节点,当集群中主节点挂掉后负责选出新的主节点,仲裁节点也是一个mongo实力,但是它不存储数据. 1.仲裁节点消耗很小的资源 ...

  8. HDU 3118 Arbiter 判定奇圈

    题目来源:pid=3118">HDU 3118 Arbiter 题意:翻译过来就是不能有奇圈 每走一步状态会变化 当他回到起点时假设和原来的状态不一样 可能会死 求至少去掉多少条边能够 ...

  9. poj——3118 Arbiter

      Arbiter 题目描述:      “仲裁者”是<星际争霸>科幻系列中的一种太空船.仲裁者级太空船是神族的战船,专门提供精神力支援.不像其他战船的人员主要是战士阶级,仲裁者所承载的都 ...

随机推荐

  1. PAT L3-010 是否完全二叉搜索树(二叉搜索树)

    将一系列给定数字顺序插入一个初始为空的二叉搜索树(定义为左子树键值大,右子树键值小),你需要判断最后的树是否一棵完全二叉树,并且给出其层序遍历的结果. 输入格式: 输入第一行给出一个不超过20的正整数 ...

  2. f5电源模块损坏

    现象: ssh登录f5后有日志显示 现场确认f5 2槽电源指示灯不亮,且电源线正常.重新开关电源模块,拔插电源线后仍不亮.故确认是电源模块损坏. 处理:直接采购新的电源模块更换即可.f5电源支持热插拔 ...

  3. java 编解码

    decoder:解码--> 将文件内容转换为字符对象: encoder:编码-->将字符对象转换为字节或者字节数组: ASCII  (American Standard for Infor ...

  4. 支付宝H5 与网页端支付开发

    在日常生活中,我们基本上都是进行微信与支付宝的支付方式尽心支付,这种方式确实大大便利了我们的生活,那么如何在我们的产品中进行微信与支付宝支付的植入开发呢? 我们先进行支付宝的H5与网页端支付开发,这里 ...

  5. day 09 函数的进阶

    01 动态参数 *args **kwargs 在函数的定义时,* ** 代表聚合. def func(**kwargs): print(kwargs) func(**{"name" ...

  6. transaction注解分析

    1. Spring事务的基本原理 事务管理是应用系统开发中必不可少的一部分.Spring 为事务管理提供了丰富的功能支持.Spring 事务管理分为编码式和声明式的两种方式.编程式事务指的是通过编码方 ...

  7. 我的开发小tip

    开发原则:1.谁开发,谁负责到底.自己的开发的模块自己维护,不要让别人替你维护,否则很麻烦:2.合理分配时间3.谨慎的处理遇到的bug和问题,不是自己开发的不要轻举妄动,提交到待办中即可4.万勿过度设 ...

  8. 递归函数 day17

    一 递归函数 n = 1 金老板 38+2 =40n = 2 alex n+2= 金老板 36+2 = 38n = 3 wusir n+2 = alex wusir 36 def age(n): #n ...

  9. Bonding

    一.简介 双网卡配置设置虚拟为一个网卡实现网卡的冗余,其中一个网卡坏掉后网络通信仍可正常使用,实现网卡层面的负载均衡和高可用性   二.原理 网卡工作在混杂(promisc)模式,接收到达网卡的所有数 ...

  10. Oracle_PL/SQL(1) 匿名块

    1. PL/SQL 简介PL/SQL是一种比较复杂的程序设计语言, 用于从各种环境中访问Oracle数据库.为什么使用PL/SQL?Orade是一种关系型数据库, 用来访问关系型数据库的语言是 “结构 ...