La contención de bus es un estado indeseable en el diseño de computadoras donde más de un dispositivo en un bus intenta colocar valores en él al mismo tiempo.
La contención de bus es el tipo de contención de telecomunicaciones que ocurre cuando todos los dispositivos que se comunican se comunican directamente entre sí a través de un único canal compartido, y en contraste con la "contención de red" que ocurre cuando los dispositivos que se comunican se comunican indirectamente entre sí, a través de conexiones punto a punto mediante enrutadores o puentes. [1] [ verificación fallida ]
La contención del bus puede provocar un funcionamiento erróneo, un consumo excesivo de energía y, en casos inusuales, daños permanentes al hardware, como la quema de un MOSFET . [2]
La mayoría de las arquitecturas de bus requieren que los dispositivos que comparten un bus sigan un protocolo de arbitraje cuidadosamente diseñado para que la probabilidad de contención sea insignificante. [3] Sin embargo, cuando los dispositivos en el bus tienen errores lógicos, defectos de fabricación o se manejan más allá de sus velocidades de diseño, el arbitraje puede fallar y puede resultar en contención. La contención también puede surgir en sistemas que tienen un mapeo de memoria programable cuando se escriben valores ilegales en los registros que controlan el mapeo. La mayoría de los sistemas informáticos de pequeña escala están cuidadosamente diseñados para evitar la contención de bus en el bus del sistema . Usan un solo dispositivo, llamado árbitro de bus , que controla qué dispositivo puede manejar el bus en cada instante, por lo que la contención de bus nunca ocurre en el funcionamiento normal. La solución estándar para la contención de bus entre dispositivos de memoria, como EEPROM y SRAM , es el bus de tres estados [2] con un árbitro de bus.
Algunas redes, como Token Ring , también están diseñadas para evitar la contención de bus, por lo que la contención de bus nunca ocurre durante el funcionamiento normal.
La mayoría de las redes están diseñadas con hardware lo suficientemente robusto como para tolerar conflictos ocasionales en el bus de la red. Los buses CAN , ALOHAnet , Ethernet , etc., experimentan conflictos ocasionales en el bus durante su funcionamiento normal, pero utilizan algún protocolo (como el acceso múltiple con prevención de colisiones , el acceso múltiple con detección de colisiones por detección de portadora o la solicitud de repetición automática ) para minimizar las veces que se produce un conflicto y para volver a enviar los datos que se dañaron en una colisión de paquetes .