home *** CD-ROM | disk | FTP | other *** search
- This document describes the technique of changing the period of the
- DRAM refresh timer for a minor performance gain. It is meant to be
- part of the package to manipulate the internal control registers
- of the Cyrix Cx486DLC chip, but can be used on any computer. This
- is specifically aimed at the Cyrix Cx486DLC users who have to enable
- the BARB input on their CPU -- see the readme one directory up for
- a description of the BARB input.
-
- See the "readme" one directory up for details on copying, warranty,
- standard disclaimer, etc.
-
- Paul Gortmaker.
-
- ---------------
-
- In the beginning there was the XT. And it had crummy memory. The little
- storage cells of the memory would quickly forget what they were trying
- to remember. Your memory forgets what it is remembering unless you give
- it a jab (refresh) every so often. Because of the poor memory in those
- days, the engineers chose a conservative value of one refresh every 15us
- (microseconds) by default.
-
- Now each megabyte of memory has almost 9.5 *million* of these cells.
- You can imagine that it will eat up some of our computer's power
- to read and re-write *all* these cells every 0.000015 seconds.
- (A refresh cycle involves reading a value from memory, and then writing
- it back to the memory cell again.)
-
- Well, the basic design is the same in todays modern SIMM (Single
- Inline Memory Module) but they can do much better than being able
- to remember for a mere 15us. Todays DRAM (Dynamic Random Acess
- Memory) chips on the common SIMM you have are capable of having
- a refresh only once every 500 --> 1000 us or more.
-
- Some motherboards have a BIOS option "Slow Refresh", which
- changes the refresh from 15us to a more reasonable value, like 120us.
- This is *still* conservative, but better. And good motherboards
- will have a "Hidden Refresh" option (or will silently implement
- one) so that it hardly holds up the computer at all when it is
- doing a refresh.
-
- Even if your BIOS does *not* have this option, you can change the
- time period of the refresh timer with this simple DOS program.
-
- You will know when you have exceeded a reasonable refresh time
- for your memory, as you will get NMI's (Non Maskable Interrupts) which
- will report "parity errors" meaning that your memory is starting to
- forget stuff. Parity is a 9th bit that is always set so that the sum of
- the 8 bits of the data byte plus the ninth parity bit will *always*
- be an even number. If the computer sees some memory in which the
- sum is *not* an even number, then it knows the memory has changed
- by itself, and reports a parity error. I would say that any time
- used that is less than 1000us is "reasonably" safe.
-
- In the non BARB case, there is no point in pushing the timer to the
- brink of the parity error limit, because most of the gain is achieved
- long before that. Consider the following data I took on an old
- 12MHz AT (286) computer.
-
- DRAM refresh period(us) Landmark v2.00 rating % increase
- ----------------------- --------------------- ----------
- 15 15.48 0
- 120 16.14 4.26
- 250 16.19 4.59
- 500 16.21 4.72
- 1000 16.22 4.78
- 2000 16.22 4.78
- 5000 16.23 4.84
- 10000 16.23 4.84
- 20000 16.23 4.84
-
- (Note that at 10000 and 20000, the machine would eventually have a
- parity error as described above.) As can be seen from the above data,
- we get about a 5% increase in speed with the *longest* refresh period,
- and we had already obtained over 97% of the maximum possible increase
- with a nice "safe" value of 500us.
-
- Mind you, if you are one of the Cyrix DLC users, who *has* to enable
- the BARB input, your speed increase *may* be more dramatic, and it
- may *not* trail off so quicky either. You will have to experiment, and
- find the best tradeoff between system stability and overall performance.
-
- On the other hand, if your motherboard is already (silently?) doing
- a 120us, or hidden refresh, you may not even see a difference. Given
- the above data, the difference between a 120us refresh, and the
- longest refresh tested was only a mere 0.5%
-
- Summary:
- --------
- Changing the period of the refresh timer is an old trick used by the
- speed hungry since "way back" in the XT days, to get up to a 5% speed
- increase for free. If you are one of the Cyrix 486DLC users who *has*
- to use the BARB input, you may stand to gain much more.
-
- Using the program:
- ------------------
- Nothing complicated here. Just pick a number based on what you read
- above, and type "dram 750" or whatever you decided on.
-
- Have fun,
- Paul.
-