home *** CD-ROM | disk | FTP | other *** search
/ Beijing Paradise BBS Backup / PARADISE.ISO / software / BBSDOORW / CYRIX100.ZIP / CX486DLC / DRAM / README.RAM < prev   
Encoding:
Text File  |  1994-04-06  |  4.5 KB  |  102 lines

  1. This document describes the technique of changing the period of the
  2. DRAM refresh timer for a minor performance gain. It is meant to be
  3. part of the package to manipulate the internal control registers
  4. of the Cyrix Cx486DLC chip, but can be used on any computer. This
  5. is specifically aimed at the Cyrix Cx486DLC users who have to enable
  6. the BARB input on their CPU -- see the readme one directory up for
  7. a description of the BARB input.
  8.  
  9. See the "readme" one directory up for details on copying, warranty,
  10. standard disclaimer, etc.
  11.  
  12. Paul Gortmaker.
  13.  
  14. ---------------
  15.  
  16. In the beginning there was the XT. And it had crummy memory. The little
  17. storage cells of the memory would quickly forget what they were trying
  18. to remember. Your memory forgets what it is remembering unless you give 
  19. it a jab (refresh) every so often. Because of the poor memory in those
  20. days, the engineers chose a conservative value of one refresh every 15us
  21. (microseconds) by default.
  22.  
  23. Now each megabyte of memory has almost 9.5 *million* of these cells.
  24. You can imagine that it will eat up some of our computer's power
  25. to read and re-write *all* these cells every 0.000015 seconds.
  26. (A refresh cycle involves reading a value from memory, and then writing
  27. it back to the memory cell again.)
  28.  
  29. Well, the basic design is the same in todays modern SIMM (Single
  30. Inline Memory Module) but they can do much better than being able
  31. to remember for a mere 15us. Todays DRAM (Dynamic Random Acess
  32. Memory) chips on the common SIMM you have are capable of having
  33. a refresh only once every 500 --> 1000 us or more. 
  34.  
  35. Some motherboards have a BIOS option "Slow Refresh", which
  36. changes the refresh from 15us to a more reasonable value, like 120us.
  37. This is *still* conservative, but better. And good motherboards
  38. will have a "Hidden Refresh" option (or will silently implement
  39. one) so that it hardly holds up the computer at all when it is
  40. doing a refresh.
  41.  
  42. Even if your BIOS does *not* have this option, you can change the 
  43. time period of the refresh timer with this simple DOS program.
  44.  
  45. You will know when you have exceeded a reasonable refresh time
  46. for your memory, as you will get NMI's (Non Maskable Interrupts) which
  47. will report "parity errors" meaning that your memory is starting to 
  48. forget stuff. Parity is a 9th bit that is always set so that the sum of
  49. the 8 bits of the data byte plus the ninth parity bit will *always*
  50. be an even number. If the computer sees some memory in which the
  51. sum is *not* an even number, then it knows the memory has changed
  52. by itself, and reports a parity error. I would say that any time
  53. used that is less than 1000us is "reasonably" safe.
  54.  
  55. In the non BARB case, there is no point in pushing the timer to the
  56. brink of the parity error limit, because most of the gain is achieved
  57. long before that. Consider the following data I took on an old
  58. 12MHz AT (286) computer.
  59.  
  60. DRAM refresh period(us)        Landmark v2.00 rating        % increase
  61. -----------------------        ---------------------       ----------
  62.     15                15.48            0
  63.     120                16.14            4.26
  64.     250                16.19            4.59
  65.     500                16.21            4.72
  66.     1000                16.22            4.78
  67.     2000                16.22            4.78
  68.     5000                16.23            4.84
  69.     10000                16.23            4.84
  70.     20000                16.23            4.84
  71.  
  72. (Note that at 10000 and 20000, the machine would eventually have a 
  73. parity error as described above.) As can be seen from the above data,
  74. we get about a 5% increase in speed with the *longest* refresh period,
  75. and we had already obtained over 97% of the maximum possible increase
  76. with a nice "safe" value of 500us.
  77.  
  78. Mind you, if you are one of the Cyrix DLC users, who *has* to enable
  79. the BARB input, your speed increase *may* be more dramatic, and it
  80. may *not* trail off so quicky either. You will have to experiment, and
  81. find the best tradeoff between system stability and overall performance.
  82.  
  83. On the other hand, if your motherboard is already (silently?) doing
  84. a 120us, or hidden refresh, you may not even see a difference. Given
  85. the above data, the difference between a 120us refresh, and the
  86. longest refresh tested was only a mere 0.5%
  87.  
  88. Summary:
  89. --------
  90. Changing the period of the refresh timer is an old trick used by the 
  91. speed hungry since "way back" in the XT days, to get up to a 5% speed 
  92. increase for free. If you are one of the Cyrix 486DLC users who *has*
  93. to use the BARB input, you may stand to gain much more. 
  94.  
  95. Using the program:
  96. ------------------
  97. Nothing complicated here. Just pick a number based on what you read
  98. above, and type "dram 750" or whatever you decided on.
  99.  
  100. Have fun,
  101. Paul.
  102.