总线仲裁的方式

总线仲裁的基本概念

在这里插入图片描述
同一时刻只能有一个设备控制总线传输操作,可以有一个或多个设备从总线接收数据。
将总线上所连接的各类设备按其对总线有无控制功能分为:
主设备:获得总线控制权的设备。
从设备:被主设备访问的设备,只能响应从主设备发来的各种总线命令。
为什么要仲裁?
总线作为一种共享设备,不可避免地会出现同一时刻有多个主设备竞争总线控制权的问题。
总线仲裁的定义:
多个主设备同时竞争主线控制权时,以某种方式选择一个主设备优先获得总线控制权称为总线仲裁。
总线仲裁分类:
集中仲裁方式 链式查询方式、计数器定时查询方式、独立请求方式
分布仲裁方式

集中仲裁方式

工作流程:
1.主设备发出请求信号;
2.若多个主设备同时要使用总线,则由总线控制器的判优、仲裁逻辑按一定的优先等级顺序确定哪个
主设备能使用总线;
3.获得总线使用权的主设备开始传送数据。
链式查询方式:
在这里插入图片描述
计数器查询方式:

独立请求方式:
在这里插入图片描述
三种方式的对比:
在这里插入图片描述

分布仲裁方式

特点:不需要中央仲裁器,每个潜在的主模块都有自己的仲裁器和仲裁号,多个仲裁器竞争使用总线。
当设备有总线请求时,它们就把各自唯一的仲裁号发送到共享的仲裁总线上;每个仲裁器将从仲裁总线上得到的仲裁号与自己的仲裁号进行比较;
如果仲裁总线上的号优先级高,则它的总线请求不予响应,并撤销它的仲裁号;最后,获胜者的仲裁号保留在仲裁总线上。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

每天一道题

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值