FlexBus
20-34
Freescale Semiconductor
20.4.8
Misaligned Operands
Because operands, unlike opcodes, can reside at any byte boundary, they are allowed to be misaligned.
•
Byte operand is properly aligned at any address
•
Word operand is misaligned at an odd address
•
Longword is misaligned at any address not a multiple of four
Although the processor enforces no alignment restrictions for data operands (including program counter
(PC) relative data addressing), misaligned operands require additional bus cycles.
Instruction words and extension words (opcodes) must reside on word boundaries. Attempting to prefetch
a misaligned instruction word causes an address-error exception.
The processor core converts misaligned, cache-inhibited operand accesses to multiple aligned accesses.
shows the transfer of a longword operand from a byte address to a 32-bit port. First, a byte
transfers at an offset of 0x1. The slave device supplies the byte and acknowledges the data transfer. When
the processor starts the second cycle, a word transfers with a byte offset of 0x2. The next two bytes are
transferred in this cycle. In the third cycle, byte 3 transfers. The byte offset is now 0x0, the port supplies
the final byte, and the operation completes.
Example 20-1. A Misaligned Longword Transfer (32-Bit Port)
If an operand is cacheable and is misaligned across a cache-line boundary, both lines are loaded into the
cache. The example in
because the operand is
word-sized and the transfer takes only two bus cycles.
Example 20-2. A Misaligned Word Transfer (32-Bit Port)
20.4.9
Bus Errors
If the auto-acknowledge is not enabled for the address that generates the error, the bus cycle can be
terminated by asserting FB_TA. If the processor must manage a bus error differently, asserting an interrupt
to the core along with FB_TA when the bus error occurs can invoke an interrupt handler.
The device also includes a bus monitor that generates a bus error for unterminated cycles.
––
Byte 0
––
––
Transfer 1
––
––
Byte 1
Byte 2
Byte 3
––
––
––
Transfer 2
Transfer 3
001
010
100
16 15
31
0
24 23
7
8
FB_A[2:0]
––
––
––
Byte 0
Transfer 1
Byte 0
––
––
—
Transfer 2
001
100
16 15
31
0
24 23
7
8
FB_A[2:0]
Summary of Contents for MCF54455
Page 33: ...xxviii Freescale Semiconductor ...
Page 67: ...Freescale Semiconductor 1 ...
Page 125: ...Freescale Semiconductor 1 ...
Page 145: ...Enhanced Multiply Accumulate Unit EMAC 5 21 Freescale Semiconductor ...
Page 173: ...Cache 6 28 Freescale Semiconductor ...
Page 179: ...Static RAM SRAM 7 6 Freescale Semiconductor ...
Page 207: ...Power Management 9 16 Freescale Semiconductor ...
Page 323: ...Reset Controller Module 13 8 Freescale Semiconductor ...
Page 389: ...Pin Multiplexing and Control 16 44 Freescale Semiconductor ...
Page 575: ...PCI Bus Controller 22 58 Freescale Semiconductor ...
Page 600: ...Advanced Technology Attachment ATA Freescale Semiconductor 23 25 ...
Page 601: ...Freescale Semiconductor 1 ...
Page 842: ...I2 C Interface Freescale Semiconductor 33 16 ...
Page 843: ...Freescale Semiconductor 1 ...
Page 921: ...Revision History A 6 Freescale Semiconductor ...