Memory Subsystem

5.5.3Hardware Initialization

In order to decrease boot time of systems with large amounts of DRAM installed, hardware initialization of memory will be supported. Since multiple rows will be initialized simultaneously, the memory system will be able to initialize to 0 about 8 times faster than having the processor looping through memory with writes. The MDC will force all zeroes on the data lines, with good ECC, and the MAC will cycle through the memory addresses generating writes. The main limiter to the number of rows being simultaneously initialized is current draw on the DRAM. One row from each of the 4 stacks across the 2 cards will be initialized concurrently.

5.5.4Memory Scrubbing

Scrubbing is the operation of walking through all installed DRAM and looking for errors. Each line is read and then written back, whether there is an error or not. Within the SAC there is an engine to generate addresses to be placed in the memory queue. These addresses are placed directly into the SAC memory queue and are not snooped on the system bus, nor are they checked for address conflicts, since the read-modify-write is treated as an atomic operation.

A scrub address is generated every 65K (65536) clocks. For a system with 32 GB of memory, this would walk through all memory every 3.2 days. The following table shows the approximate time to scrub memory based on memory size. Scrubbing may be disabled through a configuration bit.

Table 5-4. Scrubbing Time

Memory Size

Time to Scrub

 

 

64 MB

10 minutes

 

 

128 MB

20 minutes

 

 

256 MB

40 minutes

 

 

512 MB

1.2 hours

 

 

1 GB

3 hours

 

 

2 GB

5 hours

 

 

4 GB

10 hours

 

 

8 GB

20 hours

 

 

16 GB

1.6 days

 

 

32 GB

3.2 days

 

 

64 GB

6.4 days

 

 

Intel® 460GX Chipset Software Developer’s Manual

5-7