[prev in list] [next in list] [prev in thread] [next in thread] 

List:       comedi
Subject:    timing inb & outb instructions on parallel port
From:       "Raul Herrera" <raul.oscar.herrera () gmail ! com>
Date:       2006-10-30 12:00:39
Message-ID: 59ed5820610300400n49bf1095mdb3e3dffa69ad87a () mail ! gmail ! com
[Download RAW message or body]

I think that you, as a drivers developers, maybe can help me with this:

How do the inb & outb instructions delay works on the parallel port?
I've read in many places that they almost always take about 1 microsecond to
execute.
Is this delay valid for any following instruction, or just for another
consecutive inb or outb on parallel?

The strange thing is that if I measure just 1 instruction, I get about 200
ns.
If I measure 2 consecutive instruccions, I get 1300 ns
If I measure 3 consecutive instruccions, I get 2400 ns
If I measure 4 consecutive instruccions, I get 3500 ns
And so on...

So, to me, the 1.1 us delay seems to be valid , but just for consecutive
calls, not for just one!
Then I would be able to execute some other instruction during that 1 us of
each hardware delay!
Can anyone confirm this behaviour?

the (real time) code draft would be:

ini_time = get_time();
inb(0,0x378);
inb(0,0x378);
inb(0,0x378);
end_time = get_time();
delay = end_time - ini_time;

Thanks a lot in advance.
Raul Herrera

[Attachment #3 (text/html)]

I think that you, as a drivers developers, maybe can help me with this:<br><br>How do \
the inb &amp; outb instructions delay works on the parallel port?<br>I've read in \
many places that they almost always take about 1 microsecond to execute. <br>Is this \
delay valid for any following instruction, or just for another consecutive inb or \
outb on parallel?<br><br>The strange thing is that if I measure just 1 instruction, I \
get about 200 ns.<br>If I measure 2 consecutive instruccions, I get 1300 ns <br>If I \
measure 3 consecutive instruccions, I get 2400 ns<br>If I measure 4 consecutive \
instruccions, I get 3500 ns<br>And so on...<br><br>So, to me, the 1.1 us delay seems \
to be valid , but just for consecutive calls, not for just one! <br>Then I would be \
able to execute some other instruction during that 1 us of each hardware \
delay!<br>Can anyone confirm this behaviour?<br><br>the (real time) code draft would \
be:<br><br>ini_time = get_time();<br>inb(0,0x378); \
<br>inb(0,0x378);<br>inb(0,0x378);<br>end_time = get_time();<br>delay = end_time - \
ini_time;<br><br>Thanks a lot in advance.<br>Raul Herrera<br><br>


_______________________________________________
comedi mailing list
comedi@comedi.org
https://cvs.comedi.org/cgi-bin/mailman/listinfo/comedi

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic