Le nombre de bus dépend du système.
Actuellement (2017), de nombreuses cartes mères de socket à processeur unique utilisent le contrôleur SMBus unique dans le pont sud. Ce bus peut être connecté aux DEUX broches SMBus sur les emplacements PCIe et est utilisé pour des choses comme la lecture des informations de configuration de la DRAM depuis eeprom. Les processeurs qui utilisent des sockets avec plus de broches, comme les processeurs Intel Xeon E5, ont plusieurs bus I2C supplémentaires pour parler aux eeproms de la mémoire, donc ne partagez pas un seul bus I2C entre les emplacements et les périphériques de la carte mère.
Si une carte dans un emplacement a une adresse en conflit ou place des signaux bidons sur le bus, le résultat est que le système peut ne pas démarrer (il ne peut pas lire les paramètres DIMM pour initialiser les contrôleurs DRAM) ou peut avoir des problèmes de fonctionnement avec la carte mère I2C des appareils comme les moniteurs de température / tension.
Malheureusement, la norme SMBus n'exige pas actuellement de périphériques pour éviter l'adresse I2C très courante, comme 0x50-0x57 (eeproms DIMM SPD), donc des cartes ont été créées qui fonctionnent bien sur les serveurs haut de gamme avec plusieurs bus mais ne fonctionnent pas sur les bus inférieurs serveurs d'extrémité avec un bus partagé. Les adresses utilisées sur une conception de bus partagée dépendront de la conception de la carte mère et des emplacements de mémoire remplis. Vous pouvez avoir un système avec 4 emplacements de mémoire, 2 de ceux qui sont remplis et une carte contrôleur PCIe qui utilise SMBus et tout fonctionne bien. Lorsque vous allez ajouter 2 modules DIMM supplémentaires, le système ne démarre pas, et la raison en est que l'adresse SMBus de la carte contrôleur est en conflit avec l'adresse I2C des nouveaux modules DIMM. Le problème est la carte contrôleur, pas la mémoire.
Les solutions de contournement incluent: mettre du ruban adhésif sur les broches SMBus de la carte contrôleur (voir l'article Wikipedia sur PCIe pour les broches correctes), ou certaines cartes mères ont un cavalier pour contrôler si le SMBus est routé vers les emplacements.
Une solution à long terme serait de changer la spécification SMBus pour refléter cette réalité des ordinateurs SMBus / I2C partagés et de rendre les adresses 0x50-0x57 et toute autre adresse couramment utilisée pour les capteurs thermiques et autres, interdites pour l'ajout de cartes. La spécification DIMD Serial Presence Detect (SPD) pourrait également être clarifiée pour expliquer comment les périphériques sur les bus I2C partagés peuvent entrer en conflit, et peut-être faire valoir que la prise de mesures pour éviter les conflits d'adresse est une bonne idée. La spécification Micron SPD que j'ai vue parle de modèles de bits et vous devez lire attentivement pour savoir quelles adresses I2C seront consommées.