![](http://datasheet.mmic.net.cn/230000/79RC32438-200BB_datasheet_15568909/79RC32438-200BB_202.png)
IDT Device Controller
Decoupled CPU Device Transactions
79RC32438 User Reference Manual
6 - 18
November 4, 2002
Notes
that point until WAITACKN is negated. In the clock cycle after the RC32438 samples WAITACKN
negated, if this is not the last write operation in the transaction, it drives the next data to be written
on the data bus (MDATA[15:0]) and modifies the address on the address bus (MADDR[25:0]).
6. If there are more writes operations in the burst device write transaction, go to step five.
7.
CSH
clock cycles after step five, the RC32438 negates chip select.
8.
WDH
clock cycles after step five, the RC32438 negates BOEN.
9.
PWD
clock cycles after step five, the RC32438 tri-states the data bus (MDATA[15:0]), may modify
the address on the address bus (MADDR[25:0]), and may begin a new transaction.
Decoupled CPU Device Transactions
CPU accesses to a device on the memory and peripheral bus may take a significantly longer time to
complete than normal PMBus transactions. One reason for this is the fact that the memory and peripheral
bus can run at one eighth the frequency of the PMBus. Other reasons are wait states, post read delays, and
post write delays.
Locking up the PMBus may have adverse affects on the real-time performance of the system. For
example, it may lead to Ethernet FIFO overflows and underflows. Since the PMBus does not support split
transactions there is no way to avoid this issue with traditional CPU read and write operations. To avoid
locking up the PMBus, the device controller supports decoupled CPU accesses. Decoupled CPU accesses
allow CPU device read and write operations to complete without locking up the PMBus. The CPU encodes
the type of operation (read or write) in the OP field and the size of the operation (byte, halfword, triple-byte,
word) in the SIZE field.
All multi-byte decoupled read and write operations must be contained in a single word (e.g., it is invalid
to initiate a decoupled read from a byte address of 0x3 or a word read from a non-word aligned address).
Initiating a multi-byte decoupled read or write operation that crosses a word boundary results in undefined
data and the Error (ERR) bit being set in the DEVDACS register.
To initiate a read operation, the CPU writes a local address that maps to a device to the DEVDAA
register. The CPU write completes on the PMBus without delay. A read of the size specified in the SIZE field
is then performed from the device address written. When the read completes, the data read from the device
updates the DATA field of the DEVDAD register and the F bit is set.
To initiate a write operation, the CPU writes the data to be written to the DATA field of the DEVDAD
register and then writes the address to be written to the DEVDAA register. Both writes complete without
delay. A write of the size specified in the SIZE field is then performed to the device using data from the
DEVDAD register. When the write completes, the F bit is set. The F bit is presented to the interrupt handler
as an interrupt source.
If an error occurs during the device operation or if the address written to the DEVDAA register does not
map to a device on the memory and peripheral bus, then the error (ERR) bit is set in the DEVDACS register
when the F bit is set.
Note:
It is recommended that direct CPU device accesses be used only to execute code from
device space and that CPU device accesses to slow external devices use decoupled CPU device
transactions.