Parallele Schnittstelle - extrem langsam

Hi!

Ich mache von einem Programm aus Zugriffe auf die parallele Schnittstelle. Dazu greife ich direkt auf die IO-Ports 378h-37Ah mit den x86-Befehlen „IN“ und „OUT“ zu.

Jeder dieser Zugriffe dauert bei mir ca. 1.5µs! Und zwar auf einem Laptop mit Pentium M mit 1.86GHz. Auf einem Pentium 4 Rechner mit 2.8GHz ist es nur ein kleines bisschen schneller.

Woher kommt diese extrem lange Verzögerung?

Danke
Hansi

PS:
* Betriebssystem: GNU/Linux mit Kernel 2.6.26
* vor den direkten IO-Zugriff hab ich die Ports natürlich mit
ioperm() die Ports freigegeben
* Programmiersprache FreePascal
* die IO-Zugriffe mache ich mit den Funktionen ReadPortB und
WritePortB, die aber beide sehr effizient implementiert sind.
* Ich hab mir den Kernel-Code angeschaut und festgestellt, dass
außer beim ersten IO-Zugriff keine Exceptions im Spiel sind. Die
Zeit dauert also wirklich der IO-Zugriff alleine.

Hallo

Ich mache von einem Programm aus Zugriffe auf die parallele
Schnittstelle. Dazu greife ich direkt auf die IO-Ports
378h-37Ah mit den x86-Befehlen „IN“ und „OUT“ zu.

Jeder dieser Zugriffe dauert bei mir ca. 1.5µs! Und zwar auf
einem Laptop mit Pentium M mit 1.86GHz. Auf einem Pentium 4
Rechner mit 2.8GHz ist es nur ein kleines bisschen schneller.

Woher kommt diese extrem lange Verzögerung?

Vermutlich betreibst Du den parallelen Port in
‚centronics mode‘, also „spielt“ der Rechner
„ISA-Bus“ und hält sich an die Protokoll-Timings.
Da sollten netto etwa 150 KB/sec rauskommen.
v.: http://hw-server.com/parallel-port-lpt-ieee-1284#spp

Grüße

CMБ

Hallo!

Vermutlich betreibst Du den parallelen Port in
‚centronics mode‘, also „spielt“ der Rechner
„ISA-Bus“ und hält sich an die Protokoll-Timings.
Da sollten netto etwa 150 KB/sec rauskommen.
v.: http://hw-server.com/parallel-port-lpt-ieee-1284#spp

Danke für den Hinweis. Ich werd mir die Seite genauer durchschauen und mal probieren auf andere Modi umstellen.

Bye
Hansi