Grundlegendes zu PCI Express BAR-Speicherzuordnung

1212
user3156702

Ich versuche zu verstehen, wie PCI Express funktioniert, so dass ich einen Windows-Treiber schreiben kann, der ein benutzerdefiniertes PCI Express-Gerät ohne integrierten Speicher lesen und beschreiben kann.

Ich verstehe, dass die Base Address Registers (BAR) im PCIE-Konfigurationsbereich die Speicheradresse enthalten, auf die der PCI Express antworten soll / schreiben darf. (Ist das richtig verstanden?)

Meine Fragen lauten wie folgt:

  • Was ist eine "busspezifische Adresse" im Vergleich zu einer physikalischen Adresse, wenn über PCIE gesprochen wird?
  • Wann und wie wird die BAR mit Adressen gefüllt? Ist der Treiber für die Speicherzuweisung und das Schreiben der Adresse in die periphere BAR verantwortlich?
  • Können die Adressen in BAR zur Laufzeit geändert werden?
  • Wird DMA verwendet, wenn Daten vom Peripheriegerät in den Hostspeicher übertragen werden?

Ich schätze deine Zeit.

Freundliche Grüße,

0
Fragen zu den Antriebszuständigkeiten sind für jedes Betriebssystem spezifisch. Wenn Sie den Begriff "Treiber" verwenden, sollten Sie auch klarstellen, welchen Treiber Sie meinen. (Ich gehe davon aus, dass Sie den Treiber für das spezifische Gerät meinen.) David Schwartz vor 10 Jahren 0
Hallo David - Ja, natürlich meine ich den spezifischen Gerätetreiber für dieses bestimmte PCIe-Gerät. user3156702 vor 10 Jahren 0

0 Antworten auf die Frage