The ISA bus is not well defined and this is one of the biggest problems 
with it. But here is what I found on the hardware level based on 286 and 
386 stuff.

A write cycle consists of 6 oscillator periods (for a write with 1 wait 
state) or 12 with 4 wait states.

Assuming that the ISA bus is operating at 10 MHz (different for each 
motherboard) this translates to .6 to 1.2 us for the write cycle on the 
bus. A 16 bit to 8 bit will take 24 clocks (10 wait states) where as a 16 
to 16 bit takes 6 clocks (1 wait state). 8 to 8 is 12 clocks (4 wait 
states). (I hope that I converted the numbers correctly).

New designs could potentially use a faster clock to the isa bus but it is 
usually 10 MHz (older systems were 4.77 MHz). The device on the bus 
generates the wait states. The timer may generate a wait state or two I do 
not know. I suspect that it does not. This would imply (8 to 8) a best case 
delay ~1.2 us per access to the timer. We are seeing 2 to 4 us ??? How many 
outb calls are made? Is there other activity that can slow this down? The 
8254 is newer that the older systems and can operate at a higher clock rate 
so I am just guessing that the designers chose to have it able to operate 
at 10 MHz ISA bus with 1 wait state. If anyone knows this for sure please 
reply.

Please let me know if you agree with my theoretical numbers and why we are 
at 2-4 us. 

application/ms-tnef

Reply via email to