Сколько здесь автобусов, зависит от системы.
В настоящее время (2017 г.) многие однопроцессорные материнские платы используют один контроллер SMBus на южном мосту. Эта шина может быть подключена к обоим контактам SMBus на слотах PCIe и используется для таких вещей, как чтение информации конфигурации DRAM из eeprom. Процессоры, использующие разъемы с большим количеством контактов, такие как процессоры Intel Xeon E5, имеют несколько дополнительных шин I2C для связи с EEPROM памяти, поэтому не разделяйте одну шину I2C между слотами и устройствами материнской платы.
Если карта в слоте имеет конфликтующий адрес или выдает ложные сигналы на шину, в результате система может не загружаться (она не может прочитать параметры DIMM для инициализации контроллеров DRAM) или могут возникнуть проблемы с материнской платой I2C устройства, такие как мониторы температуры / напряжения.
К сожалению, стандарт SMBus в настоящее время не требует, чтобы устройства избегали очень распространенного адреса I2C, такого как 0x50-0x57 (EEPROM DIMM SPD), поэтому были созданы карты, которые отлично работают на серверах более высокого уровня с несколькими шинами, но не работают на младших конечные серверы с общей шиной. Какие адреса используются в общей шине, зависит от конструкции материнской платы и от того, какие слоты памяти заполнены. У вас может быть система с 4 слотами памяти, 2 из которых заполнены, и карта контроллера PCIe, которая использует SMBus, и все работает отлично. Когда вы добавляете еще 2 модуля DIMM, система не загружается, и причина в том, что адрес SMBus карты контроллера конфликтует с адресом I2C новых модулей DIMM. Проблема в контроллере, а не в памяти.
Обходные пути включают в себя: размещение ленты на выводах SMBus на плате контроллера (правильные выводы см. В статье Википедии о PCIe) или на некоторых материнских платах есть перемычка для управления, если SMBus направляется в слоты.
Долгосрочным решением было бы изменить спецификацию SMBus, чтобы она отражала эту реальность совместно используемых компьютеров SMBus / I2C, и сделать адреса 0x50-0x57 и любые другие часто используемые адреса для тепловых датчиков и тому подобное, запрещенные для добавления на карты. Спецификацию DIMM Serial Presence Detect (SPD) также можно уточнить, чтобы объяснить, как устройства на совместно используемых шинах I2C могут конфликтовать, и, возможно, обосновать, что принятие мер во избежание конфликтов адресов является хорошей идеей. Спецификация Micron SPD, которую я видел, говорит о битовых шаблонах, и вам нужно внимательно прочитать, чтобы понять, какие адреса I2C будут использованы.