BCM1250/BCM1125/BCM1125H
User Manual
10/21/02
B r o a d c o m C o r p o r a t i o n
Page
118
Section 6: DRAM
Document
1250_1125-UM100CB-R
Section: “Larger Memory Systems” on page 124
describes a mode of the memory controller that allows
external generation of eight chip selects rather than four. This mode does not increase the theoretical
maximum size of the memory, but it does double the maximum achievable size for the 256 Mb and 512 Mb
parts. However, the address loading may require the use of registered DIMMs, the data loading will limit the
maximum clock speed and there are limits on the supported memory configurations because the controller acts
as if only two chip selects are in use.
The controller is programmed per chip select to determine the address bits used to generate the bank, row and
column address bits sent to the SDRAM. The row and column address size depends on the devices used. The
controller is programmed with bit masks that are applied to the memory address to extract the bank, row and
column address. Bits are set in the mask to indicate the corresponding address bit should be used. The bank
address is normally two bits corresponding to the BA[1:0] pins on the controller. If three bits are set in the bank
address mask the controller will use the topmost address bit (A[12] for regular SDRAM, A[14]/CS[3] for
FCRAM) as an extra bank bit and will work with 8 bank parts. With two exceptions described below, the set
bits in the masks must be contiguous, so the right-most bit sets the lowest bit used and the number of set bits
should match the number of address bits needed by the device.
. The bank is selected from the lowest bits, the column next and the row
from the upper bits. Note that the column masks need not have bits [4:3] set, these address bits are always
used as the low column bits.
One problem with this example is that the internal bank is switched every cache line, so streaming data that
transfers in 64 byte blocks (for example HyperTransport reads or DMAs to the MACs) will not make good use
of open pages in the SDRAM. The interleaving for banks (or chip selects or channels) is likely to work better
with a larger block. The two exceptions to the rule that the masks must be contiguous allow for this.
The column mask may be split so that bit 5 or bits [6:5] may be set in addition to the contiguous bits. This allows
for the interleave to be on 64 or 128 byte chunks. Changing the example to use 64 byte blocks gives the masks
shown in
, and using 128 byte blocks gives the masks in
. This example only shows
interleaving the internal banks of a single device, if there were chip select or channel interleaving there would
be more than two zeros separating the set bits in the column mask.
Table 62: Example for 128 MByte CS Region with 4K Rows, 1K Columns
Row Address Bits [26:15], Column Address Bits [14:7,4:3], Bank Address Bits [6:5]
Row
00000000_00000111_11111111_10000000_00000000
Column
00000000_00000000_00000000_01111111_10000000
Bank
00000000_00000000_00000000_00000000_01100000
Table 63: Example for 128 MByte CS Region with 4K Rows, 1K Columns, 64 Byte Interleave
Row Address Bits [26:15], Column Address Bits [14:8,5,4:3], Bank Address Bits [7:6]
Row
00000000_00000111_11111111_10000000_00000000
Column
00000000_00000000_00000000_01111111_00100000
Bank
00000000_00000000_00000000_00000000_11000000