当前位置:网站首页>Commande de transaction pcie

Commande de transaction pcie

2021-10-14 05:50:24 Mangopapa


1. PCIe Concept de tri des transactions

1.1 PCIe Exigences relatives au tri des transactions

   Même type de transmission (Traffic Class, TC) Lorsque plusieurs transactions de , Plusieurs transactions doivent être triées .PCI/PCIe La collation doit satisfaire aux caractéristiques suivantes: :

  • Satisfaction fondée sur le producteur - Un critère de tri fort pour le modèle de programmation des consommateurs ;
  • Si le demandeur sait que la transaction en cours se produit indépendamment de la transaction précédente , Les règles peuvent être assouplies sur une base de tri forte , Ordre lâche ;
  • Lorsque les transactions de plusieurs appareils atteignent le même commutateur en même temps , L'équipement de commutation doit permettre PCIe Réorganisation des transactions , C'est - à - dire qu'il est basé sur IDMéthode de tri pour;
  • PCIe Existe dans le lien système PCI/PCI-X Heure du pont ,PCIe La collation du Protocole devrait éviter les blocages .

1.2 PCIe Règles de base de tri des transactions

  Producteurs-Modèle consommateur Il s'agit d'un modèle de coopération multi - Threading simultané classique dans les systèmes distribués. , Il suit des règles de tri strictes .PCIe Transactions aux producteurs - Modèle de consommation , A la compilation de base suivante :

  1. Même chose.TC Les transactions pour suivent des règles de tri strictes ;
  2. C'est différent.TC La transaction pour n'a pas de relation de tri ; Parce que c'est pareil. TC Impossible de cartographier différemment VC,Donc C'est différentVC Il n'y a pas non plus de relation de tri pour les transactions ;
  3. Tous les services (Mem/IO/Cfg/Msg) Suivre la même collation ;
  4. Les transactions qui ont un ordre lâche activé dans un cas particulier peuvent être classées de la même façon TC Envoyer avant la transaction .

  SiPICeProducteurs- Questions relatives aux consommateurs TC Les valeurs sont les mêmes et le tri lâche n'est pas activé ,EtPCIe La collation de base soutient les producteurs -Modèle consommateur.

1.3 PCIe Avantages du tri des transactions

  PCIe Le tri des transactions présente les avantages suivants: :

  • La tradition. PCI、PCI-X、AGP Compatibilité du Protocole ;
  • Évitez les blocages ;
  • PromotionPCIe Efficacité de transmission du bus ;
  • S'assurer que l'ordre d'achèvement des transactions est conforme à l'intention du développeur .

2. FréquentPCIe Méthode de tri des transactions

  FréquentPCIe Les méthodes de tri des transactions sont les suivantes: Ordre fort (Strong Ordering)、Ordre faible(Weak Ordering) Et un ordre lâche (Relaxed Ordering) Trois. En outre, il existe une base ID Tri des transactions pour (ID Based Ordering, IDO)Les règles.

2.1 Ordre fort

   Un tri fort signifie que toutes les transactions doivent être envoyées par ordre d'arrivée , Ne pas prioriser les transactions ,Sur un pied d'égalité, Exceptions non autorisées . Lorsque les transactions de plusieurs appareils sont groupées dans un commutateur de commutation , L'échec d'une transaction affecte l'envoi de toutes les transactions subséquentes , Cause transaction Block .

  Par exemple:PCIe Exemple de bloc de transaction causé par un tri fort :Comme le montre la figure1,PCIe Numéro uniforme de toutes les transactions , Selon l'arrivée Tx VC buffer Numéro de séquence: #1~8.Voilà.8 Les transactions sont divisées en transactions de transfert 、 Non - forward transaction and Completion transaction .En ce moment,Rx VC BufferCorrespondant àNP bufferPlein., Il ne reste plus rien. credit, Sender non - forward transaction #1 Pause envoyer . Sous forte collation ,Services#2 Doit attendre la transaction #1 Envoyer après l'envoi ,Causer un blocage.

PCIe Résistance due à un tri fort

Fig.1 PCIe Blocage dû à un tri fort

2.2 Ordre faible

  En fait,, Non transmis -> La transaction de transfert n'est pas présente au producteur - Dans le modèle de consommation , Aucune règle de tri forte n'est requise , Ce blocage inutile a entraîné un gaspillage de bus . Pour ces producteurs - Séquence des transactions en dehors du modèle de consommation , Le tri faible peut être activé en ligne pour améliorer l'utilisation du bus .PCIe Les règles de tri faibles sont illustrées dans la figure 2Comme indiqué. Première ligne (Colonnes#2~#5) Les transactions arrivent en premier ,Première colonne(D'accord#A ~#E) Les affaires sont arrivées plus tard. . Zones ombragées et producteurs dans le graphique - Modèle de consommation indépendant .No Indique une transaction ultérieure Je ne peux pas Envoyer la transaction avant l'arrivée , C'est - à - dire qu'il n'y a pas de réorganisation entre les deux ;Y/N Indique qu'il n'y a pas de violation du producteur - Sur le modèle du consommateur , Faible tri possible , Questions ultérieures Allow Envoyer avant la transaction arrivée en premier , Mais pas nécessairement. .

PCIe Collation faible

Fig.2 Suit un ordre faible PCIeCollation(Partie ombragée)

  ChacunVC Sur la base de buffer L'état vide et complet contrôle indépendamment l'état de tri des transactions ,Ne pas interférer les uns avec les autres.Même chose.VC En suivant la transmission reçue 、 Non transmis 、 Compléter le réassemblage du type de transaction à différents bufferIntérieur,Quand l'un d'euxbufferPleine heure,Sans préjudice des autresbuffer Services de réception et de réception , Mise en œuvre plus facile de la méthode de tri faible .

  Il est important de noter que: Adoption Une collation faible ne garantit pas que le programme fonctionne comme prévu . Par exemple, en lisant une demande -> Écrire dans la séquence de demande , La demande de lecture a la même adresse d'opération que la demande d'écriture , Si la demande d'écriture est redirigée avant la demande de lecture , Les données nouvellement écrites écrasent les données originales , Les données retournées à la fin de la lecture ne correspondent pas au comportement attendu . Si vous ne voulez pas que cela se produise , Vous devez vous assurer que la demande de lecture est terminée avant d'écrire la demande. , Désactiver le tri faible .

2.3 Ordre lâche

  Comme indiqué précédemment,PCIe Seuls les producteurs sont impliqués dans la transaction - Les questions relatives aux consommateurs doivent être classées par ordre de priorité. , Autres et producteurs - Les transactions non liées au consommateur n'ont pas besoin de suivre des règles de tri strictes .SiPCIe Le tri suit une règle de tri forte , Avec les producteurs - Les transactions non liées au consommateur sont bloquées ,Qui affectePCIe Efficacité du bus . Si une collation faible est utilisée , Cela ne garantit pas que la procédure fonctionne comme prévu. .Pour l'AscensionPCIe Efficacité du bus , Et s'assurer que l'ordre est exécuté comme prévu ,PCIe Soutenir un mécanisme de tri lâche (PCI-X Oui. ).C'est permis.PCIe Le commutateur commute les transactions confirmées par le logiciel (RO=1, Tri lâche activé ) Rediriger envoyer avant d'autres transactions .

   Les règles de tri souples s'appliquent aux mêmes TC Et se déplace dans la même direction . Satisfaire simultanément les producteurs -Modèle consommateur、 Supporte également le tri lâche PCIe Les règles de tri sont présentées dans la figure 2 Non ombragé .No Indique une transaction ultérieure Je ne peux pas Envoyer la transaction avant l'arrivée , C'est - à - dire qu'il n'y a pas de réorganisation entre les deux ;Y/N Indique que le tri lâche est activé après confirmation du logiciel (RO=1)Prémisse, Questions ultérieures Allow Envoyer avant la transaction arrivée en premier , Mais pas nécessairement. .

  RO=1Heure, Les transactions qui peuvent être réorganisées par le commutateur de commutation sont les suivantes: :

  1. RO=1DeMWr Peut dépasser RO=0DeMwr;
  2. RO=1DeMsg Peut dépasser RO=0DeMwr;
  3. RO=1DeMWr Peut dépasser RO=0DeMsg;
  4. RO=1DeMsg Peut dépasser RO=0DeMsg;
  5. RO=1 La lecture peut être terminée plus de RO=0DeMwr;
  6. RO=1 La lecture peut être terminée plus de RO=0DeMsg;

   Pendant l'utilisation spécifique , Le pilote logiciel contrôle le Registre en configurant le périphérique bit4 Pour activer la capacité de tri lâche de l'appareil . Dans la transaction envoyée ,TLP Bits de propriété attr bit[1] Une représentation de la transaction supporte un tri lâche . Demande de configuration 、IODemande、 Message request and Storage request transaction for committing an interruption message , L'attribut de tri lâche doit être effacé .

device_ctrl_reg

Fig.3 PCIe Device Control Reg

  Il est important de noter que, Si une demande de lecture renvoie plus d'une lecture terminée , Ces mêmes transactions ID Doit être retourné au besoin ,Graphique2MoyenneD5bComme indiquéNO.Considérant quePCI Le pont a la propriété de reporter les transactions , Ordre fort + Une collation lâche peut être PCIe Supprimer l'impasse dans le système , Mais ne s'applique pas aux produits contenant PCI Pont PCIeSystème.

2.4 Basé surIDTrier

   Un interrupteur de commutation de temps reçoit plusieurs PCIe Transaction demandée pour l'appareil , Ces transactions présentent les caractéristiques suivantes: :① D'origine différente PCIe La probabilité maximale de transaction demandée pour l'appareil n'a pas de dépendance ; ② Parce que le chemin de la transaction est différent , Il est difficile pour un appareil de connaître l'état d'achèvement d'une autre transaction demandée après l'émission de la transaction demandée. .Sur cette base,PCIe 2.1Introduction d'une base deID Pour optimiser le tri 、 Améliorer les performances de transmission .

   Pendant l'utilisation spécifique , Le pilote logiciel contrôle le Registre en configurant le périphérique 2Debit[8,9] Pour allumer l'appareil IDOCapacité. Dans la transaction envoyée ,TLP Bits de propriété attr bit[2] Définir une représentation du support de transaction basée sur IDTrier.

device_ctrl2_reg

Fig.4 PCIe Device Control 2 Reg

2.5 Sans blocage PCIe Tri des transactions

  Fig.2 Ordre fort + Ordre lâche + Les collations faibles peuvent augmenter PCIe Efficacité de l'utilisation des autobus ,Mais il y aPCI L'impasse n'est toujours pas évitée dans le système du pont . Pour résoudre le problème de blocage ,Dans la figure2 Amélioration continue sur la base des règles , Voilà la photo. 5 Trier comme indiqué .Yes Indique quand le blocage se produit , Affaires ultérieures Il faut Replay before First arrivé transaction .A5b/A6bUniquement pourPCIe-PCIPont etPCIe-PCI-xPont.

 Sans blocage PCIe Tri des transactions

Fig.5 Sans blocage PCIe Tri des transactions


3. PCIe Résumé de la compilation des transactions

  PCIe Les règles de tri des transactions sont présentées dans la figure ci - dessous. 6Comme indiqué. Première ligne Col #2~#5 Les transactions arrivent en premier ,Première colonneRow #A~#D Les affaires sont arrivées plus tard. .No Indique une transaction ultérieure Je ne peux pas Envoyer la transaction avant l'arrivée , C'est - à - dire qu'il n'y a pas de réorganisation entre les deux ;Yes Indique une transaction ultérieure Il faut Envoyer avant la transaction arrivée en premier ;Y/N Indique une transaction ultérieure Allow Envoyer avant la transaction arrivée en premier , Mais pas nécessairement. .

PCIeCollation

Fig.6 PCIeCollation

   Le tableau est interprété comme suit: :

  • A2a: Sans réglage spécial , Les demandes de renvoi subséquentes ne doivent pas dépasser les demandes de renvoi antérieures. .
  • A2b:① RO=1、②IDO=1 Et les deux IDOuTLPPréfixePASIDEn même temps, Les demandes de renvoi subséquentes peuvent dépasser les demandes de renvoi antérieures .
  • A3, A4: Les demandes de renvoi subséquentes doivent dépasser les demandes de non - renvoi antérieures en cas de blocage. , Pour éviter une impasse .
  • A5a: Les demandes de renvoi subséquentes peuvent dépasser la transaction terminée , Mais pas par la force. .
  • A5b:Pour lesPCIeAllez.PCI/PCI-X Questions relatives à la direction du pont , Les demandes de renvoi subséquentes doivent dépasser la transaction d'achèvement préalable en cas de blocage. , Pour éviter une impasse .
  • B2a: Sans réglage spécial , Les demandes de lecture subséquentes ne doivent pas dépasser les demandes de renvoi antérieures. .
  • B2b:IDO=1 Et les deux IDOuTLPPréfixePASIDEn même temps, Les demandes de lecture subséquentes peuvent dépasser les demandes de renvoi antérieures .
  • C2a: Sans réglage spécial , Les demandes subséquentes non transmises avec des données ne doivent pas dépasser les demandes antérieures transmises. .
  • C2b:① RO=1、②IDO=1 Et les deux IDOuTLPPréfixePASIDEn même temps, Les demandes subséquentes non transmises avec des données peuvent dépasser les demandes antérieures transmises .
  • B3,B4,C3,C4: Les demandes subséquentes non transmises peuvent dépasser les demandes antérieures non transmises .
  • B5,C5: Les demandes subséquentes non transmises peuvent dépasser la transaction d'achèvement précédente .
  • D2a: Dans des circonstances non exceptionnelles , Aucune transaction ultérieure ne peut dépasser la demande de renvoi précédente .
  • D2b:Plus tardIO/Cfg La transaction d'achèvement permet de dépasser la demande de renvoi précédente ;① RO=1、②IDO=1 Et les deux IDEn même temps, Les transactions subséquentes peuvent dépasser les demandes de renvoi antérieures .
  • D3,D4: Les opérations d'achèvement subséquentes doivent dépasser les demandes de non - transmission antérieures en cas de blocage. , Pour éviter une impasse .
  • D5a:Transaction ID Différentes transactions peuvent être effectuées au - delà l'une de l'autre .
  • D5b:Transaction ID La même transaction d'achèvement doit être envoyée dans l'ordre dans lequel elle a été reçue. , On ne peut pas se surpasser. . Utilisation d'une seule lecture de mémoire pour demander plusieurs données complètes , Éviter les données complètes Transaction ID La même solution correspond à une adresse différente , Pas de désordre. .

RÉFÉRENCES

  1. PCI Express Base Specification Revision 5.0 Version 1.0 (22 May 2019)
  2. PCI Express Technology - Comprehensive Guide to Generation 1.x, 2.x and 3.0. Mike Jacson, Ravi Budruk, MindShare, Inc.
  3. PCI、PCI-XEtPCI Express Principe et architecture , Ma Jinming , Zhu jianbing Attends.
  4. PCIe Thème de la série II :2.8 Mécanisme de tri des transactions

版权声明
本文为[Mangopapa]所创,转载请带上原文链接,感谢
https://chowdera.com/2021/10/20211013211639766d.html

随机推荐