11.07.2015 Views

section 7 - Index of

section 7 - Index of

section 7 - Index of

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

4.4.2.2 Modulo ModifierWhen the value in the modifier register falls into one <strong>of</strong> two ranges (Mn=$0001 to $7FFFor Mn= $8001 to $BFFF with the reserved gaps noted in the table), address modificationis performed using modulo arithmetic (see Table 4-2).Modulo arithmetic normally causes the address register value to remain within an addressrange <strong>of</strong> size M, whose lower boundary is determined by Rn. The upper boundary is determinedby the modulus, or M. The modulus value, in turn, is determined by Mn, the valuein the modifier register (see Figure 4-11).There are certain cases where modulo arithmetic addressing conditions may cause theaddress register to jump linearly to the same relative address in a different buffer. Othercases firmly restrict the address register to the same buffer, causing the address registerto wrap around within the buffer. The range in which the value contained in the modifierregister falls determines how the processor will handle modulo addressing.4.4.2.2.1 Mn=$0001 to $7FFFIn this range, the modulus (M) equals the value in the modifier register (Mn) plus 1. Thememory buffer's lower boundary (base address) value, determined by Rn, must have zerosin the k LSBs, where 2k ~ M, and therefore must be a multiple <strong>of</strong> 2k. The upperboundary is the lower boundary plus the modulo size minus one (base address plus M-1). Since M~2k, once M is chosen, a sequential series <strong>of</strong> memory blocks (each <strong>of</strong> length2k) is created where these circular buffers can be located. If M

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!