Rechnerbussysteme

Wie Software die PCI-Leistung von Intel-Chipsätzen beeinflusst

12. Mai 2009, 13:11 Uhr | Von Matthias Söhnlein
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 3

Datenübertragung per Direct Memory Access (DMA)

Direct Memory Access (DMA) ist eine Methode, um Datenblöcke zwischen dem Hauptspeicher und PCI-Targets zu übertragen, die über einen integrierten DMA-Controller und über PCI-Bus-Master-Fähigkeiten verfügen.

Um DMA zu verwenden, muss der Controller auf dem PCI-Target zunächst mit den Transfer-Parametern konfiguriert werden (Quelladresse, Zieladresse, Anzahl der zu übertragenden Bytes usw.). Anschließend fordert der DMA-Controller die Kontrolle über den PCI-Bus an und leitet die Übertragung ein, sobald der Zugriff gewährt wird. Um Daten vom Hauptspeicher zum PCI-Target zu übertragen, startet der Controller dazu einen PCI-Lesezugriff, der vom ICH an den MCH und weiter an das Direct Media Interface geleitet wird. Der MCH liest direkt vom Hauptspeicher und liefert die Daten über den ICH zurück an das PCI-Target.

Da der DMA-Controller mehr Daten gleichzeitig verarbeiten kann als die CPU, wird der Transfer nicht nach 4 byte abgebrochen. Die Dauer von PCI-Übertragungen wird nun von PCI-Konfigurationsparametern wie etwa der Latenzzeit begrenzt.

Die Übertragung von Daten vom PCI-Target zum Hauptspeicher verläuft ähnlich. Auch hier fordert der DMA-Controller nach dem Konfigurieren einen Bus-Master-Zugriff am PCI-Bus an. Sobald der Zugriff freigegeben ist, leitet der Controller einen Schreibvorgang ein. Wieder wird die Dauer des Transfers nicht durch die CPU-Registergröße begrenzt, sondern durch die PCI-Konfigurationsparameter.

passend zum Thema

Übertragung mit Direct Memory Access
Bild 4. Übertragung mit Direct Memory Access (DMA). Die Dauer des Transfers ist nicht durch die Größe der CPU-Register begrenzt, sondern durch die PCI-Konfigurationsparameter.
© MEN Mikro Elektronik

In heutigen Rechnerarchitekturen spielt DMA eine große Rolle. Viele Schnittstellen, die mit hohen Geschwindigkeiten arbeiten (wie Netzwerkadapter, Laufwerk- und Multimedia-Controller) realisieren ihre Datenübertragung mit DMA. DMA-Zugriffe sind schneller, da weniger Busse beteiligt sind und mehr Daten pro Transaktion übertragen werden (Bild 4).

Weniger Busse und weniger Transaktionen bedeuten auch wesentlich weniger Zeit, die für Buszuteilung und aufwendige Protokolle benötigt wird. Und wie bereits zu Beginn gezeigt wurde, sind Buszuteilung und Protokollaufwand die Hauptgründe für eine Verringerung der PCI-Leistung.

Fazit: DMA – der direkte Weg

Die Verwendung der PIO-Technik zum Übertragen von Daten zwischen Hauptspeicher und PCI-Targets führt bei heutigen Chip-Architekturen durch die Beteiligung mehrerer Busse wegen Busauslastung, Buszuteilung und fehlender Zusammenfassungsmöglichkeiten zu einem niedrigen PCI-Datendurchsatz. Die Aktivierung von Cache-Strategien für den Speicher auf PCI-Targets durch die Anwendung von MTRR-Einträgen ist nur in Einzelfällen eine Lösung.

Aktuelle Chipsätze sind für die Verwendung von direkt angebundenen CPU-Caches und für DMA-Übertragung optimiert. Wann immer möglich, sollten DMA-Controller verwendet werden, um Daten zwischen dem Hauptspeicher und PCI-Targets auszutauschen.

 

Literatur:

[1] Techniques for Increasing PCI Performance. Application Note AP-666, Intel, Februar 1999, http://developer.intel.com/design/chipsets/applnots/29222401.pdf

[2] Intel 64 and IA-32 Architectures Software Developer’s Manual, Volume 3A: System Programming Guide, Part 1. Intel, November 2007, Bestellnummer 253668-025US, http://download.intel.com/design/processor/manuals/253668.pdf

[3] Intel 64 and IA-32 Architectures Optimization Reference Manual. Intel, November 2007, Bestellnummer 248966-016, http://www.intel.com/design/processor/manuals/248966.pdf

[4] Bähring, H.: Mikrorechner-Technik; Band I: Mikroprozessoren und Digitale Signalprozessoren. Springer, Heidelberg 2002.

 

Der Autor:

Matthias Söhnlein
ist Software-Designer für Board Management Controller bei der MEN Mikro Elektronik GmbH in Nürnberg. Bereits in jungen Jahren verantwortete er bei der AOK Mittelfranken den Aufbau der IT-Infrastruktur, bevor er als technischer Consultant im Bereich „Database Publishing“ Software zur automatisierten Printmedien-Generierung entwickelte. Seit 2005 studiert er nebenberuflich Informatik an der Fern-Universität in Hagen.

matthias.soehnlein@men.de



  1. Wie Software die PCI-Leistung von Intel-Chipsätzen beeinflusst
  2. Datenübertragung zum PCI-Target mittels programmierter Ein-/Ausgabe
  3. Leistung erhöhen durch Änderung der Cache-Strategie
  4. Datenübertragung per Direct Memory Access (DMA)

Jetzt kostenfreie Newsletter bestellen!