La cantidad de buses que hay depende del sistema.
Actualmente (2017) muchas placas base con un solo procesador utilizan el único controlador SMBus en el puente sur. Este bus se puede conectar a AMBOS pines SMBus en las ranuras PCIe y se usa para cosas como leer la información de configuración DRAM de eeprom. Los procesadores que usan sockets con más pines, como los procesadores Intel Xeon E5, tienen varios buses I2C adicionales para hablar con los eeproms de memoria, así que no compartan un solo bus I2C entre las ranuras y los dispositivos de la placa base.
Si una tarjeta en una ranura tiene una dirección conflictiva o coloca señales falsas en el bus, es posible que el sistema no se inicie (no puede leer los parámetros DIMM para inicializar los controladores DRAM) o puede tener problemas operacionales Con dispositivos I2C de placa base como los monitores de temperatura / voltaje.
Desafortunadamente, el estándar SMBus actualmente no requiere que los dispositivos eviten la dirección I2C muy común, como 0x50-0x57 (eeproms SPD DIMM), por lo que las tarjetas han funcionado bien en servidores de gama alta con varios buses pero no trabajar en servidores de gama baja con un bus compartido. Las direcciones que se utilizan en un diseño de bus compartido dependerán del diseño de la placa base y de las ranuras de memoria que se llenan. Puede tener un sistema con 4 ranuras de memoria, 2 de las que están pobladas, y una tarjeta controladora PCIe que usa SMBus y todo funciona bien. Cuando va a agregar 2 DIMM más, el sistema no se inicia, y el motivo es que la dirección SMBus de la tarjeta controladora entra en conflicto con la dirección I2C de los nuevos DIMM. El problema es la tarjeta controladora, no la memoria.
Las soluciones alternativas incluyen: colocar la cinta en los pines SMBus de la tarjeta controladora (consulte el artículo de Wikipedia en PCIe para obtener los pines correctos), o algunas placas base tienen un puente para controlar si el SMBus se enruta a las ranuras.
Una solución a largo plazo sería cambiar la especificación de SMBus para reflejar esta realidad de las computadoras compartidas SMBus / I2C, y hacer las direcciones 0x50-0x57 y cualquier otra dirección comúnmente utilizada para sensores térmicos y demás, prohibida para tarjetas adicionales. La especificación de Detección de presencia en serie (DIMM, por sus siglas en inglés) DIMM también podría aclararse para explicar cómo los dispositivos en los buses I2C compartidos pueden entrar en conflicto, y quizás argumentar que tomar medidas para evitar conflictos de direcciones es una buena idea. La especificación de SPD de Micron que he visto habla sobre patrones de bits y usted tiene que leer detenidamente para darse cuenta de qué direcciones I2C se consumirán.