总线竞争

总线竞争Bus contention)也称总线争用,是计算机设计中总线的不良状态——总线上的多个设备同时尝试在总线上放置值。大多数总线架构要求其设备遵循精心设计的仲裁协议,以使竞争的可能性可以忽略不计。[1]但是,当总线上的设备有逻辑错误、制造缺陷或超出其设计速度运行时,仲裁可能会故障,从而导致竞争。在具有可编程内存映射的系统上控制映射的寄存器被写入非法值后,也可能发生竞争。

竞争可能导致错误的操作,并且在异常情况下会损坏硬件——例如总线接线的熔断。[來源請求]

有时会通过缓冲内存映射设备的输出应对总线竞争。但是,已经观察到[誰說的?]一个设备的高阻抗仍会干扰其他设备的总线值。目前来说,没有标准的解决方案来应对内存设备(如EEPROMSRAM)之间的数据总线争用。

大多数小型计算机系统经过精心设计避免系统总线上的总线争用。它们使用一个称为总线仲裁器英语Bus arbiter的设备控制哪个设备在目前可以驱动总线,因此总线竞争在正常运作中永远不会发生。

例如令牌环等部分网络也被设计为避免总线竞争,因此总线竞争在正常运作中永远不会发生。

大多数网络被设计为容忍网络上偶尔的总线争用。CAN总线ALOHAnet以太网等在正常运作中偶尔会遇到总线争用,但会使用一些协议(例如避免碰撞的多路访问英语Multiple Access with Collision Avoidance具有碰撞检测的载波侦听多路访问自动重发请求)最小化争用时间,并重新发送在数据包冲突英语Packet collision中被破坏的数据。

参考资料

  1. ^ Tanenbaum, Andrew, Structured Computer Organization 3rd, Prentice Hall: 121–124, 1990, ISBN 0-13-852872-1