总线竞争
此条目需要补充更多来源。 (2017年5月4日) |
总线竞争(Bus contention)也称总线争用,是计算机设计中总线的不良状态——总线上的多个设备同时尝试在总线上放置值。大多数总线架构要求其设备遵循精心设计的仲裁协议,以使竞争的可能性可以忽略不计。[1]但是,当总线上的设备有逻辑错误、制造缺陷或超出其设计速度运行时,仲裁可能会故障,从而导致竞争。在具有可编程内存映射的系统上控制映射的寄存器被写入非法值后,也可能发生竞争。
竞争可能导致错误的操作,并且在异常情况下会损坏硬件——例如总线接线的熔断。[来源请求]
有时会通过缓冲内存映射设备的输出应对总线竞争。但是,已经观察到[谁说的?]一个设备的高阻抗仍会干扰其他设备的总线值。目前来说,没有标准的解决方案来应对内存设备(如EEPROM和SRAM)之间的数据总线争用。
大多数小型计算机系统经过精心设计避免系统总线上的总线争用。它们使用一个称为总线仲裁器的设备控制哪个设备在目前可以驱动总线,因此总线竞争在正常运作中永远不会发生。
例如令牌环等部分网络也被设计为避免总线竞争,因此总线竞争在正常运作中永远不会发生。
大多数网络被设计为容忍网络上偶尔的总线争用。CAN总线、ALOHAnet、以太网等在正常运作中偶尔会遇到总线争用,但会使用一些协议(例如避免碰撞的多路访问、具有碰撞检测的载波侦听多路访问、自动重发请求)最小化争用时间,并重新发送在数据包冲突中被破坏的数据。
参考资料
- ^ Tanenbaum, Andrew, Structured Computer Organization 3rd, Prentice Hall: 121–124, 1990, ISBN 0-13-852872-1