[总线仲裁]


总线仲裁是为了解决多个设备争用总线这个问题
\quad

一. 集中仲裁方式

\quad

在这里插入图片描述
集中仲裁方式: 就像是霸道总裁来决定谁先获得总线控制权
分布仲裁方式: 商量着谁先获得总线控制权

工作流程:
1.主设备发出请求信号;
2.若多个主设备同时要使用总线,则由总线控制器(一般集成在CPU)的判优、仲裁逻辑按一定的优先等级顺序确定哪个主设备能使用总线;
3.获得总线使用权的主设备开始传送数据。

\quad

1.1 链式查询方式

\quad

在这里插入图片描述
在这里插入图片描述
首先一个或多个设备接口通过BR向总线控制部件请求使用总线, 这时BG就会传输一个高电平, 设备接口0并不使用总线,接下来就传到设备接口1, 它想要使用总线, 那么设备接口1就会通过BS传递信号表示总线现在被我占用了

在这里插入图片描述
而后总线控制部件就撤回BG的高电平
\quad

在这里插入图片描述
优点:链式查询方式优先级固定。(可以把重要的设备排在前面)
只需很少几根控制线就能按一定优先次序实现总线控制,结构简单,扩充容易。

\quad

缺点:对硬件电路的故障敏感,并且优先级不能改变。(比如设备0坏了, 设备1之后的就不能获得总线控制权了)
当优先级高的部件频繁请求使用总线时,会使优先级较低的部件长期不能使用总线。

\quad

1.2 计数器查询方式

\quad

在这里插入图片描述
设备地址线是多根的, 比如有8个接口就需要3根设备地址线

首先一个或多个设备接口通过BR向总线控制部件请求使用总线, 这时计数器开始计数, 计数器为0的时候,设备地址就去询问接口0要不要使用总线, 接口0不使用总线, 这时计数器变为1, 设备地址询问到接口1, 接口1是要使用总线的

在这里插入图片描述

这时接口1就会通过BS向总线控制部件传递总线忙, 而计数器就会中止计数

优点:
1.计数初始值可以改变优先次序
-计数每次从“0”开始,设备的优先级就按顺序排列,固定不变;
-计数从上一次的终点开始,此时设备使用总线的优先级相等;(形成闭环, 就是从0-n, 在从n-0, 所以优先级相等)
-计数器的初值还可以由程序设置
2.对电路的故障没有链式敏感(因为是通过设备地址来访问的)

缺点:
1。增加了控制线数
-若设备有N个,则需 l o g 2 N log_2N log2N+2条控制线(这里的2就是BS和BR)
2。控制相对比链式查询相对复杂

\quad

1.3 独立请求方式

\quad

在这里插入图片描述
每个设备接口都有独立的总线请求BR和总线允许BG, 比如设备接口1和设备接口n同时向总线控制部件发送总线请求, 这时总线控制里的排队器就会给这两个设备排队, 比如设备接口n排在前面, 那么总线控制部件就会向设备接口n发送总线允许, 接口n也会通过BS发送设备忙

优点:
1.响应速度快,总线允许信号BG直接从控制器发送到有关设备,不必在设备间传递或者查询。
2.对优先次序的控制相当灵活。

缺点:
1.控制线数量多
-若设备有n个,则需要2n+1条控制线。
其中+1为BS线,用于设备向总线控制部件反馈已经是否正在使用总线。
2.总线的控制逻辑更加复杂

\quad
\quad
在这里插入图片描述

\quad

二. 分布式仲裁方式

\quad
在这里插入图片描述
\quad

王道考研计算机组成原理

  • 28
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Logisim 实现总线仲裁,你可以使用一种常见的方法,即基于优先级的总线仲裁。下面是一个简单的示例,展示了如何使用 Logisim 实现一个基于优先级的总线仲裁器: 1. 首先,创建一个新的 Logisim 项目,并添加所需的组件。在这个例子,我们使用一个 8 位的总线和三个设备作为示例。你可以根据自己的需要调整总线宽度和设备数量。 2. 将总线分别连接到三个设备的输入端口。确保连接到每个设备的输入端口是唯一的。 3. 在每个设备上添加一个 "请求" 输入,用于向仲裁器发送请求信号。 4. 添加一个 "仲裁器" 组件。该组件将对来自多个设备的请求进行优先级排序,并选择其一个设备作为赢家。 5. 将每个设备的请求连接到仲裁器的输入端口。确保连接到仲裁器的输入端口是唯一的。 6. 在仲裁器上添加一个 "选择" 输出,用于指示赢家设备的编号。 7. 根据优先级,在仲裁设置选择逻辑。例如,可以使用多个优先级编码器或其他逻辑门组合来实现。 8. 将选择输出连接到总线上。这将允许仲裁器选择的设备将其数据发送到总线。 完成上述步骤后,你可以测试总线仲裁器是否按照预期工作。将请求信号发送到仲裁器,并观察选择输出是否正确反映了赢家设备的编号。 这只是一个简单的示例,你可以根据自己的需求和复杂度扩展和改进总线仲裁器的实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值