[comp.sys.ibm.pc.hardware] How long to hold the IOCHRDY

bsteh@alderan.uucp (Herbert Bsteh) (10/02/90)

According to various hardware reference manuals (Compaq, Intel)
we found different informations about how long we may hold the
IOCHRDY signal. Our Intel manual says something like :
"IOCHRDY must not be negated for longer than 15 us" - which does
make sense to me because of the REFRESH signal. Our Compaq manual
says "This signal should not be hold longer than 2.5 us ...".

For our application it is necessary, that the bus agent holds the
IOCHRDY for about 10-12 us.
Is there any good reason for restricting the "hold-time" to not longer
than 2.5 us.  and what problems could arise if we go up to the limit
of 15 us ?

Any help, hints or experiences are welcome.

Thanks in advance Herbert

grege@gold.GVG.TEK.COM (Greg Ebert) (10/03/90)

In article <188@alderan.uucp> bsteh@alderan.uucp (Herbert Bsteh) writes:

>Is there any good reason for restricting the "hold-time" to not longer
>than 2.5 us.  and what problems could arise if we go up to the limit
>of 15 us ?
>

2 problems. First, the floppy drive. If the floppy is running, a DMA xfer
occurs every 16 or so us, and the transfer itself can take up to 2usec if
you include bus acquisition/release times. Secondly, if you have a 386 or
486, a 32 bit write into an 8-bit device (such as a video card) can
require 4 bus cycles. Each cycle can be extended by the video card via
IOCHRDY.

So.... if you have the scenario where:

	1) Your floppy is running
	2) Your application is doing 32-bit writes to an 8-bit video card
	3) Your device is yanking on IOCHRDY
	4) [Possibly] it's a full moon
	5) .....

All of this stuff is supposed to be done within the refresh period. Although
the probability is low, it can STILL happen.

james@bigtex.cactus.org (James Van Artsdalen) (10/03/90)

In <188@alderan.uucp>, bsteh@alderan.uucp (Herbert Bsteh) wrote:

> According to various hardware reference manuals (Compaq, Intel)
> we found different informations about how long we may hold the
> IOCHRDY signal. Our Intel manual says something like :
> "IOCHRDY must not be negated for longer than 15 us" - which does
> make sense to me because of the REFRESH signal. Our Compaq manual
> says "This signal should not be hold longer than 2.5 us ...".

15us is reasonable.  2.5us is way too short: there are lots of cards
that drive IOCHRDY longer than 2.5us.  Network cards often go over
15us.  VGAs in 800x600 256 color mode often drive IOCHRDY for more
than 20us.

The winner has to be one card that I have seen drive IOCHRDY for 30ms
(milliseconds) after reset.

The 15us refresh rate is a hold-over from the original IBM designs.
Modern memory systems usually don't need this much refresh.

> For our application it is necessary, that the bus agent holds the
> IOCHRDY for about 10-12 us. Is there any good reason for restricting
> the "hold-time" to not longer than 2.5 us.

Nope.  Maybe Compaq meant 25us.

> and what problems could arise if we go up to the limit of 15 us ?

None.  You can stretch it out beyond that too, though I wouldn't go
much beyond 20us.  So many cards on the market already have such
delays that all ATs support it.

Incidentally, don't forget the floppy.  All of this assumes that
you're not using the floppy.  If that needs to work at the same time,
then < 15us is the limit.  Under DOS this usually isn't a problem, but
with unix or OS/2...
-- 
James R. Van Artsdalen          james@bigtex.cactus.org   "Live Free or Die"
Dell Computer Co    9505 Arboretum Blvd Austin TX 78759         512-338-8789