![](http://datasheet.mmic.net.cn/330000/INTEL82801_datasheet_16416407/INTEL82801_123.png)
82801AA and 82801AB Datasheet
5-73
Functional Description
5.14.3.2
Operation
Initial setup programming consists of enabling and performing the proper configuration of ICH and
the IDE device for Ultra ATA/33 operation. For the ICH, this consists of enabling Synchronous
DMA mode and setting up appropriate Synchronous DMA timings.
When ready to transfer data to or from an IDE device, the Bus Master IDE programming model is
followed. Once programmed, the drive and ICH control the transfer of data via the Ultra ATA/33
protocol. The actual data transfer consists of three phases, a start-up phase, a data transfer phase,
and a burst termination phase.
The IDE device begins the start-up phase by asserting DMARQ signal. When ready to begin the
transfer, the ICH asserts the DMACK# signal. When DMACK# is asserted, the host controller
drives CS0# and CS1# inactive, DA0-DA2 low and the IDE device drives IOCS16# inactive. For
write cycles, the ICH deasserts STOP, waits for the IDE device to assert DMARDY#, and then
drives the first data word and STROBE signal. For read cycles, the ICH tri-states the DD lines,
deasserts STOP, and asserts DMARDY#. The IDE device then sends the first data word and
STROBE.
The data transfer phase continues the burst transfers with the data transmitter (ICH - writes, IDE
device - reads) providing data and toggling STROBE. Data is transferred (latched by receiver) on
each rising and falling edge of STROBE. The transmitter can pause the burst by holding STROBE
high or low, resuming the burst by again toggling STROBE. The receiver can pause the burst by
deasserting DMARDY# and resumes the transfers by asserting DMARDY#. The ICH will pause a
burst transaction to prevent an internal line buffer over or under flow condition; resuming once the
condition has cleared. It may also pause a transaction if the current PRD byte count has expired;
resuming once it has fetched the next PRD.
The current burst can be terminated by either the transmitter or receiver. A burst termination
consists of a Stop Request, Stop Acknowledge and transfer of CRC data. The ICH can stop a burst
by asserting STOP, with the IDE device acknowledging by deasserting DMARQ. The IDE device
stops a burst by deasserting DMARQ and the ICH acknowledges by asserting STOP. The
transmitter then drives the STROBE signal to high. The ICH will then drive the CRC value onto
the DD lines and deassert DMACK#. The IDE device latches the CRC value on the rising edge of
DMACK#. The ICH terminates a burst transfer if it needs to service the opposite IDE channel, if a
Programmed I/O (PIO) cycle is executed to the IDE channel currently running the burst, or upon
transferring the last data from the final PRD.
5.14.3.3
CRC Calculation
Cyclic Redundancy Checking (CRC-16) is used for error checking on Ultra ATA/33 transfers. The
CRC value is calculated for all data by both the ICH and the IDE device over the duration of the
Ultra ATA/33 burst transfer segment. This segment is defined as all data transferred with a valid
STROBE edge from DDACK# assertion to DDACK# deassertion. At the end of the transfer burst
segment, the ICH will drive the CRC value onto the DD[15:0] signals. It is then latched by the IDE
device on deassertion of DDACK#. The IDE device compares the ICH CRC value to its own and
reports an error if there is a mismatch.
5.14.3.4
Synchronous DMA Timings
The timings for Ultra ATA/33 are programmed into the Synchronous DMA Timing Register. The
programmable timings include Cycle Time (CT) and Ready to Pause (RP) time. The Cycle Time
represents the minimum pulse width of active data strobe (STROBE) signal. The Ready to Pause
time represents the number of PCI clocks the ICH will wait from deassertion of DMARDY# to the
assertion of STOP when it desires to stop a burst read transaction.