
8-4
PowerPC Microprocessor Family: The Bus Interface for 32-Bit microprocessors
8.3 AACK Generation
Systems can use the signals provided by 60x processors to implement a simple, single-
envelope bus in which data and address tenures are always together. It can also implement
a bus that provides limited pipelining, in which subsequent addresses are sent out before
the completion of the current data transfer. It even allows creation of a bus that provides
split address and data transfers. The degree to which each processor may support such
operations depends on processor design, namely the depth and logic associated with the
read and write buffers in the processor’s bus interface unit (BIU).
The system designer must determine how AACK signals the completion of an address
transfer and allows other address transfers to occur. Following are some possibilities:
The system arbiter may assert AACK the cycle after it sees an asserted TS. This
allows requests to be placed onto the bus at the maximum rate of one every three
cycles. System design must ensure that these requests do not exceed the rate at which
slave devices can process them. One alternative is for the arbiter to limit the number
of outstanding requests, using the bus grant mechanism.
Another possibility would be to collect busy status from individual bus devices, and
use this to pace the arbitration mechanism or to delay the AACK response.
Individual devices might generate AACK, based on their decode of the address. This
approach is somewhat limited in performance, however. If the bus clock is slow, it
might be permissible to latch the address, decode it, and then drive AACK on the
next cycle. Note that it would be necessary to prevent false transitions of AACK. For
a system with a fast clock rate, devices would need to latch the address, take a cycle
to decode it, and then issue AACK on the second cycle following TS, or later.
The 60x processors do not provide a graceful way to recover from an operation that receives
no AACK; however, they perform all address checking that they are to perform before
placing addresses on the bus. In general, a processor considers all requests complete when
they are placed on the bus, and there is no recoverable error reporting on the bus.
8.4 SYNC vs. TLBSYNC and System Design
The 601 and 604 handle TLBIE, SYNC, and TLBSYNC bus operations differently. In a 601
system, TLBIE operations are followed by a SYNC operation. In a 604 system, TLBIE
operations are followed by TLBSYNC operations, which may affect devices that maintain
TLBs.
If processors perform the TLBIE operation immediately, or if no pending operations are
queued, they may require no extra steps to ensure compatibility. However, if they maintain
queues of pending operations, and these queues contain translated addresses, they may
need to participate in the synchronization operation, and they may need to implement
different modes for 601 and 604.