Re: 1 or 2 MHz interrupt on PC

From: Spiro Trikaliotis (Trik-news_at_gmx.de)
Date: 2001-05-08 09:48:57

Hello,

> Sure enough, a number of instructions are down at the 1 cycle level.  But
> others are in the 10s of cycles (still a vast improvement over the 8088
> timings I vaguely remembered).

> The INT opcode seems to take a lot more cycles in protected mode, and IRET
> takes 8-27 cycles.  So perhaps 50-100 cycles for interrupt overhead?

> So it looks to me like there's time for anywhere between 10 to maybe 250
> instructions per interrupt, on a 500MHz machine (500 cycles/interrupt).
> Dunno what your interrupt routine will do, but if there are N cycles
> left over at the end, that leaves N MHz for the "non-interrupt" code to
> run at; having a 50MHz or 100MHz machine for the other stuff doesn't seem
> too bad to me (certainly if windows isn't running).

Hm, I made a "digital oscilloskope" for my diploma thesis about 1,5 year
ago. It worked under plain DOS, disabled all INTs, and waited in a busy loop
for any activity on the parallel port. Upon recognizing something there, it
time-stamped that event (with RDTSC, the command to read to time stamp
counter from the Pentium), store the value of the port and the time-stamp in
memory, and waited for more.

Oh, I did not disable all interrupts: A keyboard interrupt stopped the
process of waiting, immediately when it occured. So I'm sure no interrupt
disturbed me. Anyway, after stopping the acquisition of data, I showed the
results on the screen.

I did measurements and saw that I had a resolution of about 4 µs, that is,
my maximum frequency was about 250 kHz. That's because taking the time-stamp
and storing the data took so much time. Another observation was that I
modified this for a "ping-pong" test, giving me a round-trip delay of
approx. 11 µs, so any one side only needed 5.5 µs, approx. the same value as
the other.

Ah yes, I forgot: I used a Pentium-150 for this purpose. I'm not sure if it
was MMX or not.

So, possibly, with a faster CPU, you could achieve 1 MHz. Anyway, I'm not
sure if the I/O area will be that fast (the IN commands and the RDTSC took
most time if I remember correctly).

Spiro.

-
This message was sent through the cbm-hackers mailing list.
To unsubscribe: echo unsubscribe | mail cbm-hackers-request@dot.tml.hut.fi.

Archive generated by hypermail 2.1.1.