Open as PDF
User Manual November 21
Chapter 7: Device Configuration 61
Once the simulation is started, the DIMM Device allocates memory arrays to hold the
DRAM data. One array is allocated for each bank or virtual bank. In the case of 64-bit
memory interfaces, memory arrays are allocated to match the size of the physical banks
on each DIMM. If the memory interface is 128 bits, then the memory arrays are sized to
the sum of the physical bank pairs that make up the virtual banks. For example:
Virtual bank0 is the combination of physical bank0 on DIMM0 and physical bank0 on
DIMM1. If physical bank0 on each DIMM is 32MB in size, then the array allocated for
virtual bank0 is sized at 64MB.
Each virtual bank is handled like it is one large bank, rather than two combined smaller
banks. The model does not distinguish between addresses that hit in the upper physical
bank and addresses that hit in the lower physical bank.
Memory read- and write-messages sent to the DIMM Device use the same structure for
both 128-bit and 64-bit interfaces. Each message includes a bank select field, an address
field, and a data size field. The bank select field implements the CS7:0 lines while the
address field specifies the beginning offset within the bank/virtual bank, and the data size
field specifies the size of the datum.
The DIMM device is implemented as a single-interface device. However, the device
accepts two distinct classes of messages: RAM read/write messages, and SMBUS reads
of SPD data. In most system configurations, the DIMM device is connected to a
Northbridge device's DIMM interface as well as a Southbridge device's SMBUS
On creation of the DIMM device, all RAM arrays are set to all ones, and SPD ROM
arrays are cleared. Reset initializes the RAM arrays to all ones, but does not alter the SPD
ROM arrays. Configuration options are not affected by reset.
Contents of a BSD
The RAM arrays, SPD ROM arrays, and all configuration option settings are saved in the