Bus mastering

Un article de Wikipédia, l'encyclopédie libre.

Le Bus mastering est une caractéristique de certains bus, qui permet à un contrôleur connecté au bus de communiquer directement avec les périphériques présents sur le bus sans passer par le CPU. La plupart des bus actuels, dont le PCI, permettent le bus mastering, car cela permet d'augmenter significativement les performances sur un OS classique mais peut poser de gros problèmes sur un OS temps réel car le kernel ne voit plus passer les It et ne peut donc pas gérer les priorités.

Le bus master est le périphérique qui contrôle les signaux des bus d'adresse et de contrôle. Dans une architecture simple, seul le CPU peut remplir ce rôle: toutes les communications entre les périphériques impliquent une communication avec le CPU. Dans une architecture plus évoluée, certains périphériques peuvent à tour de rôle prendre le contrôle du bus. Ainsi par exemple une carte réseau peut accéder directement à un disque dur pendant que le CPU réalise des tâches ne demandant pas l'usage du bus, comme prendre du code dans son cache.

Le DMA (Direct Memory Access, accès direct à la mémoire) est une forme simple de bus mastering, où le CPU délègue l'usage de la lecture ou de l'écriture d'une partie de la mémoire à un périphérique, qui lui dira ensuite quand il aura fini de l'utiliser.