1 / 48

LE BUS PCI 3 ième partie: Les échanges de données Sommaire - Repère

LE BUS PCI 3 ième partie: Les échanges de données Sommaire - Repère. Troisième partie: Les échanges de données Espace adressable Les commandes Les transactions Décodage d ’adresses Transactions en Écriture - Burst Transactions en Écriture - Single Cycle Transactions en Lecture - Burst

page
Download Presentation

LE BUS PCI 3 ième partie: Les échanges de données Sommaire - Repère

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. LE BUS PCI3ième partie: Les échanges de donnéesSommaire - Repère • Troisième partie:Les échanges de données • Espace adressable • Les commandes • Les transactions • Décodage d ’adresses • Transactions en Écriture - Burst • Transactions en Écriture - Single Cycle • Transactions en Lecture - Burst • Transactions en Lecture - Single Cycle • Fin de transaction • Synthèse Cours_bus_PCI_2_02

  2. LE BUS PCI3ième partie: Les échanges de donnéesLes espaces adressables • Le bus PCI supporte 3 espaces adressables: • I/O • Essentiellement utilisé pour assurer la compatibilité • Ressource limitée, attention aux conflits • Mémoire • Meilleures performances que celles de l ’espace I/O • Peu de conflits • Configuration • Pour "plug and play" • Requis pour tous les agents PCI

  3. LE BUS PCI3ième partie: Les échanges de donnéesLes espaces adressables • L ’espace I/O • Granularité: Octet • Espace de 4 Gigaoctets

  4. LE BUS PCI3ième partie: Les échanges de donnéesLes espaces adressables • L ’espace Mémoire • Granularité: Mots de 32 bits

  5. LE BUS PCI3ième partie: Les échanges de donnéesLes espaces adressables • L ’espace de configuration • Granularité: Octet • Chaque agent a un espace de configuration réservé de 256 octets • Décrit les possibilités PCI d ’un composant • Permet la configuration par logiciel des interfaces PCI (plug & play) • Adressage par: • Numéro de bus • Numéro d ’agent • Numéro de fonction • Numéro de registre

  6. LE BUS PCI3ième partie: Les échanges de donnéesLes commandes • Les différentes opérations sur le bus: • Les accès burst ou transferts par paquet de données • C ’est le mécanisme de base des échanges sur le bus • Avantages: • Évite de charger le processeur par des accès fractionnés et multiples • Les processeurs de génération actuelle disposent généralement de ce mode d ’accès • Meilleure exploitation de la bande passante des (S)DRAM • Inconvénients: • Le bus est bloqué pendant tout le transfert • Attention aux interruptions • Phase d ’adressage suivie de une ou plusieurs phases de données • Nécessite, pour les agents émettant et recevant le paquet de disposer d ’une mémoire de taille suffisante

  7. LE BUS PCI3ième partie: Les échanges de donnéesLes commandes • Les commandes de base: • Configuration Read, Configuration Write • I/O Read, I/O Write • Memory Read, Memory Write • Les commandes optimisées • Memory Read Line, Memory Read Multiple • Memory Write and Invalidate • Autres: • Interrupt Acknowledge • Special Cycle • Dual Address Cycle • Reserved

  8. LE BUS PCI3ième partie: Les échanges de donnéesLes commandes • Liste des commandes PCI

  9. LE BUS PCI3ième partie: Les échanges de donnéesLes transactions • Transaction en Écriture • Burst • Single Cycle • Transaction en Lecture • Burst • Single Cycle • État du bus:

  10. LE BUS PCI3ième partie: Les échanges de donnéesLes transactions • Règles de base • Le signal Ready du composant drivant les données doit être valide quand les données sont transférées sur le bus • L ’agent PCI recevant les données doit laisser son signal Ready invalide tant qu ’il n ’est pas prêt à recevoir des données • Quand un signal Ready d ’un agent est validé, il doit le rester jusqu ’à la fin de la phase de données en cours • Un agent ne peut pas changer l ’état de ses signaux de contrôle après avoir signalé qu ’il était prêt à achever la phase de données en cours • Un initiateur, après avoir validé IRDY#, ne peut changer l ’état de IRDY# ou de FRAME# sans prendre en compte TRDY# • Une cible, après avoir validé TRDY# ou STOP#, ne peut changer TRDY#, STOP# ou DEVSEL# avant la fin de la phase de données en cours

  11. LE BUS PCI3ième partie: Les échanges de donnéesDécodage d ’adresses (1/4)

  12. LE BUS PCI3ième partie: Les échanges de donnéesDécodage d ’adresses (2/4)

  13. LE BUS PCI3ième partie: Les échanges de donnéesDécodage d ’adresses (3/4)

  14. LE BUS PCI3ième partie: Les échanges de donnéesDécodage d ’adresses (4/4) Une méthode de décodage d ’adresses pour lequel un agent accepte toutes les transactions non spécifiquement décodées par un autre agent.

  15. LE BUS PCI3ième partie: Les échanges de donnéesTransactions en Écriture - Burst (1/7)

  16. LE BUS PCI3ième partie: Les échanges de donnéesTransactions en Écriture - Burst (2/7)

  17. LE BUS PCI3ième partie: Les échanges de donnéesTransactions en Écriture - Burst (3/7)

  18. LE BUS PCI3ième partie: Les échanges de donnéesTransactions en Écriture - Burst (4/7)

  19. LE BUS PCI3ième partie: Les échanges de donnéesTransactions en Écriture - Burst (5/7)

  20. LE BUS PCI3ième partie: Les échanges de donnéesTransactions en Écriture - Burst (6/7)

  21. LE BUS PCI3ième partie: Les échanges de donnéesTransactions en Écriture - Burst (7/7)

  22. LE BUS PCI3ième partie: Les échanges de donnéesTransactions en Écriture - Single Cycle (1/3)

  23. LE BUS PCI3ième partie: Les échanges de donnéesTransactions en Écriture - Single Cycle (2/3)

  24. LE BUS PCI3ième partie: Les échanges de donnéesTransactions en Écriture - Single Cycle (3/3)

  25. LE BUS PCI3ième partie: Les échanges de donnéesTransactions en Lecture - Burst (1/7)

  26. LE BUS PCI3ième partie: Les échanges de donnéesTransactions en Lecture - Burst (2/7)

  27. LE BUS PCI3ième partie: Les échanges de donnéesTransactions en Lecture - Burst (3/7)

  28. LE BUS PCI3ième partie: Les échanges de donnéesTransactions en Lecture - Burst (4/7)

  29. LE BUS PCI3ième partie: Les échanges de donnéesTransactions en Lecture - Burst (5/7)

  30. LE BUS PCI3ième partie: Les échanges de donnéesTransactions en Lecture - Burst (6/7)

  31. LE BUS PCI3ième partie: Les échanges de donnéesTransactions en Lecture - Burst (7/7)

  32. LE BUS PCI3ième partie: Les échanges de donnéesTransactions en Lecture - Single Cycle (1/3)

  33. LE BUS PCI3ième partie: Les échanges de donnéesTransactions en Lecture - Single Cycle (2/3)

  34. LE BUS PCI3ième partie: Les échanges de donnéesTransactions en Lecture - Single Cycle (3/3)

  35. LE BUS PCI3ième partie: Les échanges de donnéesFin de transaction • Initialisée par le Maître • Fin normale • Le Maître a transféré toutes les données correctement • Timeout • Le Maître a encore des données à transférer, mais le laps de temps accordé est terminé: Son « Latency Timer » est à « 0 » et un autre Maître demande le bus. • Master Abort • Aucune cible (target) n ’a décodé le bus: DEVSEL# reste inactif (6 cycles d ’horloge après le passage à l ’état actif de FRAME#) • Correspond à une situation anormale • Dans tous les cas, le Maître désactive FRAME#

  36. LE BUS PCI3ième partie: Les échanges de donnéesFin de transaction • Initialisée par la Cible • Target Retry: La Cible n’est pas prête à accepter des données au moment voulu par le Maître

  37. 4 LE BUS PCI3ième partie: Les échanges de donnéesFin de transaction • Initialisée par la Cible • Disconnect with data: La Cible est prête à accepter des données, mais pas toutes

  38. LE BUS PCI3ième partie: Les échanges de donnéesFin de transaction • Initialisée par la Cible • Disconnect without data: La Cible est prête à transférer des données, mais pas toutes

  39. LE BUS PCI3ième partie: Les échanges de donnéesFin de transaction • Initialisée par la Cible • Target Abort: La Cible n’est jamais capable de finir la transaction en cours Correspond à une situation anormale

  40. LE BUS PCI3ième partie: Les échanges de donnéesSynthèse: Phase d ’adressage

  41. LE BUS PCI3ième partie: Les échanges de donnéesSynthèse: Écriture PCI • On considère que le maître a déjà obtenu la main sur le bus et que la phase d ’arbitrage est terminée. • Le maître doit maintenant attendre que le bus soit inoccupé (« idle state ») en échantillonnant les signaux FRAME# et IRDY#. Quand ces 2 derniers sont inactifs (front  de CLK), le bus est inoccupé et la transaction peut commencer. • Au début de la transaction, l ’initiateur active FRAME#, indiquant ainsi que la transaction a commencé et qu ’une adresse de départ ainsi qu ’une commande sont disponibles pendant la 1ière période de CLK. Le signal FRAME# doit rester valide jusqu ’à ce que l ’initiateur soit prêt à compléter la dernière phase de données. • Un cycle « mort » (turn around cycle) est nécessaire durant la 1ière période de CLK pour permettre d ’éviter des contentions sur les signaux IRDY#, TRDY#, DEVSEL#. • Au début de la 2ième période de CLK, l ’initiateur peut placer des données sur le bus AD sans insertion d ’un cycle « mort ». Il indique aussi, par C/BE#,quels sont les octets à transférer et leur destination. Il valide IRDY# pour indiquer que des données valides sont présentes sur le bus. Il peut retarder cette dernière validation pour des raisons internes à son fonctionnement (buffers vides par exemple). Ce retard ne doit pas durer plus de 8 cycles. Pendant cette même période d ’horloge, la cible valide TRDY# et DEVSEL# après avoir décodé l ’adresse et les commandes C/BE#. • Quand la cible et l ’initiateur échantillonnent, au 3ième front de CLK, l ’état valide de TRDY# et de IRDY#, la 1ière donnée est prise en compte par la cible et la 1ière phase de données est considérée comme terminée. Écriture PCI avec temps d ’attente

  42. LE BUS PCI3ième partie: Les échanges de donnéesSynthèse: Écriture PCI • A ce moment, l ’initiateur présente la 2ième donnée sur le bus AD et indique par C/BE# quels sont les octets à transférer et leur destination pour la prochaine phase de données. Dans les transactions de données multiples, c ’est à la cible que revient la gestion de l ’incrémentation d ’adresses à partir de l ’adresse de départ fournie par l ’initiateur. La cible peut implémenter des mécanisme de conversion little endian / big endian. Il est conseillé de rendre cette conversion programmable par l ’utilisation de l ’espace de configuration. • Quand la cible et l ’initiateur échantillonne, au 4ième front de CLK, l ’état valide de TRDY# et de IRDY#, la 2ième donnée est prise en compte par la cible et la 2ière phase de données est considérée comme terminée. • Dans l ’exemple de la figure, l ’initiateur va devoir faire attendre la cible avant de présenter la prochaine donnée. Ce temps d ’attente est généré en dévalidant IRDY# pendant la 4ième période de CLK. Pendant cette période, l ’initiateur doit éviter de laisser flotter le bus AD, mais il doit cependant indiquer par C/BE# quels sont les octets à transférés et leur destination pour la prochaine phase de données. La cible, nécessitant elle aussi plus de temps avant d ’être prête à accepter la 3ième donnée, dévalide TRDY#. • Au début de la 5ième période de CLK, l ’initiateur place des données sur le bus AD et indique, en validant IRDY#, que les données valides sont présentes sur le bus. En dévalidant FRAME#, il indique que la phase en cours est la dernière phase de données. Cependant, TRDY# est toujours non valide (cible non prête) de la 5ième à la 7ième période de CLK. • Quand la cible et l ’initiateur échantillonne, au 8ième front de CLK, l ’état valide de TRDY# et de IRDY#, la 3ième donnée est prise en compte par la cible et la 3ième phase de données est considérée comme terminée. • La cible dévalide TRDY# et DEVSEL# et l ’initiateur dévalide IRDY#, ce qui provoque un retour du bus en « idle state ». Écriture PCI avec temps d ’attente (suite)

  43. LE BUS PCI3ième partie: Les échanges de donnéesSynthèse: Écriture PCI Écriture PCI avec temps d ’attente

  44. LE BUS PCI3ième partie: Les échanges de donnéesSynthèse: Écriture PCI Écriture PCI optimisée

  45. LE BUS PCI3ième partie: Les échanges de donnéesSynthèse: Lecture PCI • On considère que le maître a déjà obtenu la main sur le bus et que la phase d ’arbitrage est terminée. • Le maître doit maintenant attendre que le bus soit inoccupé (« idle state ») en échantillonnant les signaux FRAME# et IRDY#. Quand ces 2 derniers sont inactifs (front  de CLK), le bus est inoccupé et la transaction peut commencer. • Au début de la transaction, l ’initiateur active FRAME#, indiquant ainsi que la transaction a commencé et qu ’une adresse de départ ainsi qu ’une commande sont disponibles pendant la 1ière période de CLK. Le signal FRAME# doit rester valide jusqu ’à ce que l ’initiateur soit prêt à compléter la dernière phase de données. • Un cycle « mort » (turn around cycle) est nécessaire durant la 1ière période de CLK pour permettre d ’éviter des contentions sur les signaux IRDY#, TRDY#, DEVSEL#. • Au début de la 2ième période de CLK, l ’initiateur cesse de driver le bus AD, pour que la cible puisse placer des données sur le bus. Pour permettre l ’insertion d ’un cycle « mort » sur ce bus, la cible doit laisser TRDY# invalide pendant cette période. L ’initiateur indique aussi par C/BE# quels sont les octets à transférer et leur destination. Il valide IRDY# pour indiquer qu ’il est prêt à recevoir des données. Il peut retarder cette dernière validation pour des raisons internes à son fonctionnement (buffers pleins par exemple). Ce retard ne doit pas durer plus de 8 cycles. • Pendant la 3ième période de CLK, la cible: • valide DEVSEL# pour indiquer qu ’il a reconnu son adresse et qu ’il va participer à la transaction • commence à driver les données sur le bus AD et valide TRDY# pour indiquer à l ’initiateur la présence de données valides. Lecture PCI avec temps d ’attente

  46. LE BUS PCI3ième partie: Les échanges de donnéesSynthèse: Lecture PCI • Quand le cible et l ’initiateur échantillonnent, au 4ième front de CLK, l ’état valide de IRDY# et de TRDY#, la 1ière donnée est lue par l ’initiateur et la 1ière phase de données est considérée comme terminée. • L ’initiateur indique par C/BE# quels sont les octets à transférer et leur destination pour la prochaine phase de données. • Dans les transactions de données multiples, c ’est à la cible que revient la gestion de l ’incrémentation d ’adresses à partir de l ’adresse de départ fournie par l ’initiateur. La cible peut implémenter des mécanismes de conversion little endian / big endian. Il est conseillé de rendre cette conversion programmable par l ’utilisation de l ’espace de configuration. • Dans l ’exemple de la figure, la cible va devoir faire attendre l ’initiateur avant de charger la prochaine donnée. Ce temps d ’attente est généré en dévalidant TRDY# pendant la 5ième période de CLK. Pendant cette période, la cible doit éviter de laisser flotter le bus AD. Pendant ce temps d ’attente, la cible présente la 2ième donnée sur le bus AD. Elle est prise en compte lorsque la cible valide TRDY# sur le 6ième front de CLK. La 2ième phase de données est considérée comme terminée. • Au début de la 3ième phase de données, l ’initiateur indique par C/BE# quels sont les octets à transférer et leur destination pour la prochaine phase de données. Dans l ’exemple, il dévalide IRDY# pour introduire un temps d ’attente durant la 6ième période de CLK. Pendant ce temps, la cible doit continuer à présenter, sur le bus AD, la donnée demandée. • Pendant la 7ième période de CLK, l ’initiateur valide IRDY# pour accepter, sur le prochain front de CLK, la donnée et dévalide FRAME# pour avertir la cible que cette phase de données est la dernière. La 3ième phase de données est alors considérée comme terminée. • La cible dévalide TRDY# et DEVSEL# et l ’initiateur dévalide IRDY#, ce qui provoque le retour à l ’état « iddle » du bus. Lecture PCI avec temps d ’attente (suite)

  47. LE BUS PCI3ième partie: Les échanges de donnéesSynthèse: Lecture PCI Lecture PCI avec temps d ’attente

  48. LE BUS PCI3ième partie: Les échanges de donnéesSynthèse: Lecture PCI Lecture PCI optimisée

More Related