7.8.2. Minimum hold time

The Funnel Control Register enables slave inputs of the funnel to be held for a number of cycles before the arbiter logic changes to a higher priority source. This value is the minimum number of cycles of data that are output from a source before a change to a higher priority is performed, plus 1, that is, a value of 0x0 indicates a minimum hold time of 1 and a value of 0x5, indicates a minimum hold time of six cycles. Large values enable the formatter in an ETB or TPIU to be less wasteful by having to indicate source changes in the protocol. These source changes reduce the amount of bandwidth available for trace data.

Figure 7.8 shows an example of how a minimum hold time of two cycles stops the change of the arbiter from Slave1, ATVALIDS1 and ATREADYS1, even though a higher priority source indicates valid data, ATVALIDS0, after t0.

Figure 7.8. Funnel minimum hold time, two cycles


At point t1, Slave port 1 has performed the minimum of two cycles and the arbitration logic then switches to port 0, even though port 1 has more data valid. Finally at t2 there is no more data available from the higher priority Slave 0 and so the arbitration logic switches back to port 1.

Note

Figure 7.8 shows the internal Master port signals that have a one cycle difference to the final output Master port. These are indicated as iATVALIDM and iATREADYM, and they are the signals that are presented before the output register stage.

Figure 7.9 is similar to Figure 7.8 but the trace sink, attached to the Trace Funnel master port, holds off fetching the second packet from Slave port 1 by de-asserting ATREADYM after t0. The minimum hold time is finally achieved by t1 where the arbiter selects Slave port 0.

Figure 7.9. Minimum hold time, two cycles with wait


Copyright © 2004-2009 ARM. All rights reserved.ARM DDI 0314H
Non-Confidential