Quanti bus ci sono dipende dal sistema.
Attualmente (2017) molte schede madri con socket a processore singolo utilizzano il controller SMBus singolo nel ponte sud. Questo bus può essere collegato a ENTRAMBE i pin SMBus sugli slot PCIe e viene utilizzato per cose come leggere le informazioni di configurazione DRAM da eeprom. I processori che utilizzano socket con più pin, come i processori Intel Xeon E5, hanno più bus I2C extra per comunicare con le eeprom di memoria, quindi non condividere un singolo bus I2C tra slot e dispositivi della scheda madre.
Se una scheda in uno slot ha un indirizzo in conflitto o inserisce segnali fasulli sul bus, il risultato è che il sistema potrebbe non avviarsi (non è in grado di leggere i parametri DIMM per inizializzare i controller DRAM) o potrebbe avere problemi operativi con la scheda madre I2C dispositivi come i monitor temp / voltaggio.
Sfortunatamente, lo standard SMBus attualmente non richiede dispositivi per evitare indirizzi I2C molto comuni, come 0x50-0x57 (eeprom DID SPD), quindi sono state realizzate schede che funzionano bene su server di fascia più alta con più bus ma non funzionano su server finali con un bus condiviso. Quali indirizzi vengono utilizzati in un progetto di bus condiviso dipenderà dal design della scheda madre e dagli slot di memoria popolati. Potresti avere un sistema con 4 slot di memoria, 2 di quelli popolati e una scheda controller PCIe che utilizza SMBus e tutto funziona bene. Quando si va ad aggiungere altri 2 DIMM, il sistema non si avvia e il motivo è perché l'indirizzo SMBus della scheda controller è in conflitto con l'indirizzo I2C dei nuovi DIMM. Il problema è la scheda controller, non la memoria.
Le soluzioni alternative includono: l'inserimento di nastro sui pin SMBus della scheda controller (vedere l'articolo di Wikipedia su PCIe per i pin corretti) o alcune schede madri hanno un ponticello per controllare se SMBus viene instradato agli slot.
Una soluzione a lungo termine sarebbe quella di cambiare le specifiche SMBus per riflettere questa realtà dei computer SMBus / I2C condivisi e rendere gli indirizzi 0x50-0x57 e qualsiasi altro indirizzo comunemente usato per i sensori termici e simili, vietati per l'aggiunta di schede. Le specifiche DIMM Serial Presence Detect (SPD) potrebbero anche essere chiarite per chiarire come i dispositivi sui bus I2C condivisi possono essere in conflitto e forse ipotizzare che adottare misure per evitare conflitti di indirizzo sia una buona idea. Le specifiche SPD di Micron che ho visto parlano di bit pattern e devi leggere attentamente per capire quali indirizzi I2C verranno consumati.