Jusqu'à présent, je comprends, les processeurs Intel utilisent des instructions CPU spécialisées (IN / OUT) pour communiquer avec les périphériques.
Euh, cela aurait pu être vrai dans les années 1970 et 1980, mais ne serait même pas vraiment très utile pour un périphérique I²C, et incroyablement intrusif pour la programmation du CPU.
Donc, à la place, il y a des périphériques attachés à un bus beaucoup, beaucoup plus rapide (par exemple PCIe) qui parle I²C, lors de la réception des commandes pour le faire du CPU; cette communication se produit généralement en écrivant des données dans un emplacement mémoire spécifique, au lieu d'utiliser des instructions IO spéciales.
De plus, je pense qu'un Intel n'a pas de contrôleur I2C sur puce.
Oh, je ne pense pas que ce soit vrai; il devrait y avoir plusieurs contrôleurs, mais ils sont spécifiques, par exemple, pour lire les EEPROM sur les modules de RAM.
Nous avons donc besoin d'un contrôleur I2C, n'est-ce pas?
oui.
Si tel est le cas, le processeur traite-t-il le contrôleur comme un périphérique
oui
et utiliser les instructions du processeur IN / OUT pour lui parler?
Non, ces instructions, comme dit, sont utilisées pour un très petit ensemble de types de périphériques qui existent depuis quelques décennies (pensez: claviers PS / 2, configuration d'espace d'adressage PCI, réel -horloge, disquette, port d'imprimante parallèle,…) seulement avec lequel un CPU a besoin de parler directement, principalement pour des raisons de démarrage et d'héritage.
En gros, dès que vous avez configuré votre espace d'adressage PCI, la plupart des communications périphériques ne sont que des accès mémoire normaux.
Souvent, même, votre programme préparait les commandes pour le contrôleur I²C dans une région mémoire, puis demandait à un contrôleur DMA de transférer cette mémoire vers le contrôleur. Ainsi, votre CPU ne parle même pas nécessairement directement au contrôleur - il dit à un contrôleur DMA de dire à un contrôleur PCIe, par exemple, de transférer des octets d'une mémoire vers un périphérique.
Le contrôleur est-il monté sur la carte mère?Quel bus relie le CPU et le contrôleur?
Dépend;il peut être intégré dans le même package IC, ou être sur la carte mère.
Si elle est directement intégrée au Southbridge (qui dans les chipsets Intel CPU s'appelle l'ICH), alors l'interface serait l ' Interface Direct Media;il peut également se trouver dans un périphérique PCIe connecté au Southbridge, ou dans un périphérique USB connecté à un contrôleur USB, qui à nouveau peut faire partie du southbridge, ou faire partie d'un contrôleur USB PCIe.