Next: Conclusion Up: Bus et Interface Previous: Interface système

Les bus

Les bus systèmes des trois microprocesseurs supportent des transactions imbriquées. C'est-à-dire que l'on n'attend pas qu'une transaction soit achevée, pour relâcher le bus. On peut ainsi occuper au maximum la bande passante du bus. Un exemple d'un tel découplage est illustré figure pour le PentiumPro.

Bus à transaction imbriquées

La figure montre un exemple de fonctionnement d'un bus à transactions imbriquées (celui du PentiumPro). Un premier groupe de signaux représente l'arbitrage sur le bus. L'arbitrage du premier transfert intervient au premier cycle (t1). Au cycle suivant, tous les clients recoivent le résultat de l'arbitrage, un nouvel arbitrage aura lieu au cycle t4. Au cycle t3, le maître place l'adresse sur le bus, suivi au cycle suivant par des informations supplémentaires. Pendant ce temps, l'arbitrage du prochain transfert (B) est placé sur le bus d'arbitrage. Au cycle t6, une erreur de parité peut être signalée sur l'adresse A. Au cycle t7 (au plus tôt), une réponse peut être renvoyée par le signal snoop (pour informer de la présence ou non de la donnée). Le bus de données est alors utilisé par le microprocesseur pour transférer les résultats de son cache secondaire.

Les différents groupes de signaux (arbitrage, adresse, erreur et données) ne sont utilisés que pendant un temps minimal, et peuvent tous être pipelinés permettant ainsi un débit maximal.

L'exemple illustré est relativement simple. Les bus systèmes des trois microprocesseurs étudiés permettent des situations bien plus complexes : l'ordre de prise du bus de données peut être différent de l'ordre de prise du bus d'adresses.

Bus du MIPS R10000

Le bus système du MIPS R10000 a complètement été repensé à partir de celui des R4x00. Ce nouveau bus, dit <<à avalanche>>, a une largeur de 64 bits et multiplexe les données et les adresses. Il supporte le protocole split-transaction (ou <<protocole à transactions imbriquées>>) (jusqu'à huit transferts en même temps), et permet de connecter plusieurs microprocesseurs MIPS R10000 directement sur le bus système en maintenant la cohérence des caches.

L'horloge du bus système est programmable indépendamment de la vitesse du microprocesseur et du cache secondaire. La fréquence d'horloge du bus système est limitée à 100 MHz pour un système monoprocesseur, et 80 MHz pour un système multiprocesseur.

Étant donné que le bus est multiplexé entre données et adresses, 3 cycles sont nécessaires pour chaque adresse : un pour prendre le bus, un pour envoyer l'adresse et un pour rendre le bus. Un transfert de données peut renvoyer jusqu'à 32 mots en 16 cycles, ce qui donne la bande passante maximale de 539 Moctets/s (19 cycles pour 128 octets) à 80 MHz.

Bus de l'UltraSPARC

Contrairement au MIPS R10000, l'UltraSPARC utilise un seul bus de données externe. Ce bus est connecté directement au cache secondaire et au reste du système par l'intermédiaire des UDBs qui communiquent avec le bus système. Le bus système a une largeur de 128 bits et permet une bande passante crête de 1,3 Goctets/s avec la mémoire principale. Il est à noter que l'UltraSPARC implémente un bus d'adresses système. L'ensemble formé par les deux bus système (adresse et données) supporte un protocole à transactions imbriquées.

Bus du PentiumPro

Le PentiumPro possède deux bus de données. Un bus de 64 bits dédié à l'interconnexion du cache secondaire avec le microprocesseur, et un bus système de 64 bits utilisé pour l'interconnexion avec le système mémoire, les entrées/sorties et les autres microprocesseurs. Ces deux bus sont protégés par des codes correcteurs d'erreur. Le PentiumPro a de plus, deux bus d'adresses associés à chacun des bus de données. Ces deux bus d'adresses ainsi que les bus de contrôle sont protégés par parité. En cas d'erreur de parité, la requête est relancée.

Le bus dédié au second niveau de cache est placé à l'intérieur du boîtier. Ce bus très court fonctionne à la fréquence du microprocesseur. La bande passante entre les deux circuits est de 8 octets par cycle. Elle est utilisée par l'UC pour traiter les défauts de cache du premier niveau.

Le bus système [16] du PentiumPro a été complètement repensé à partir de celui du Pentium. Les deux bus système utilisent un chemin de données de 64 bits qui opère avec une fréquence d'horloge maximale de 66 MHz, soit 528 Moctets/s. Le bus du PentiumPro peut soutenir une bande passante effective plus grande que celle du Pentium grâce à l'utilisation du protocole à transactions imbriquées ainsi qu'à l'utilisation d'un bus dédié pour le cache secondaire.



Next: Conclusion Up: Bus et Interface Previous: Interface système


flloansi@IRISA.irisa.fr
Tue Jun 4 09:57:56 MET DST 1996