Cteni portu ISA

Jirka Netopil JNetopil
Středa Březen 17 11:49:12 CET 2004


Nevite nekdo, proc nedokazu cist z portu na ISA smernici rychleji nez 500kHz
?
Stejne je to z Windows i z DOSu (nabootovano do DOSu), na dvou ruznych
pocitacich (Pentium 100MHz a Duron 700MHz).
Podle nize uvedeneho by to melo jit rychlosti 2,7MHz (v 16-bit. rezimu - ten
moje karta pouziva).
Nameril jsem v 16-ti bitovem rezimu asi 500kHz a v 8-mi bitovem asi 330kHz.
Pouzivam nasledujici rutinu a merim cas, za jaky se to provede:
        mov dx,PortNaISA
        mov bx,1000
        cli
sm1: mov cx,10000
sm2: in ax,dx
        loop sm2
        dec bx
        jnz sm1
        sti
Netusite nekdo, co delam spatne ? Jak to zrychlit ?
Jirka Netopil

Speed:
Q: How can Parallel Port ISA card support quoted rates of data transfer in
excess of 1MB/sec ? As far a I know every in/out command for an ISA bus
address takes at least 1 microsecond to perform REGARDLESS of processor
speed ?
A: A simple parallel-port read or write does take one ISA-bus cycle, and on
most systems, the bus speed is around 1.3 Mhz, so one cycle is a little
under 1 microsecond. A complete data transfer on the original parallel port
usually takes at least 4 cycles, however: check the Busy status, write the
data, bring Strobe low, then high. On ports that support EPP and ECP modes,
in these modes the port hardware does the handshake, and a complete transfer
can take place in 1 bus cycle.
There are at least two ways of getting faster data transfers: Some ports
support a "fast mode" that uses the ISA bus's NOWS (no wait state) signal to
cause the CPU to skip 3 wait states. This mode is twice as fast, or around
2.7 Mhz. ECPs also include hardware support for data decompressing (&
sometimes compressing, though that's often left for software), so the
effective rate of data transmission can be much faster than the number of
bytes written or read per second. Also, ECPs may be able to transfer data
between the host's and peripheral's ECP buffers at rates greater than 1 Mhz,
though the buffers are typically just 8 bytes.







Další informace o konferenci Hw-list