Parallele Schnittstelle - extrem langsam

Von: , Frage gestellt am So, 1. Mär 2009

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.

2 Antworten zu dieser Frage

  1. Antwort von nach 22 Minuten 0 hilfreich
    Re: Parallele Schnittstelle - extrem langsam

    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Б

    • Antwort von nach 4 Tagen 0 hilfreich
      Re^2: Parallele Schnittstelle - extrem langsam

      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

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!