总线竞争
此条目需要补充更多来源。 (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