What purpose do wrapping BURST transfers serve?

I've understood how it works and what happens in it, but  what is the use of having a wrapping bursts? What are some scenarios where it provides an edge?

  • Cache accesses !

    If you have a cache in your system and your master tries to read data not in the cache, the cache will fetch in a complete line of data around the location you want (the length of that line depending on the arrangement of the cache, but typically 4, 8 or 16 words).

    If your master actually wanted the 16th word in a 16-word cache line, and the cache contrtoller used INCR bursts to fetch that data, your master would have to wait for 15 reads into the cache before your master could then see the data it wanted when the 16th read occurs.

    So a wrapping burst would be used by the cache controller, so that the critical word (the data your master wants) is fetched in first, and is therefore immediately available to your master, and then the other entries in the cache line are fetched in subsequent access cycles so that they are then available should the master request further information from adjacent addresses.