home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #18 / NN_1992_18.iso / spool / sci / electron / 14638 < prev    next >
Encoding:
Internet Message Format  |  1992-08-20  |  4.2 KB

  1. Path: sparky!uunet!decwrl!world!ksr!jfw
  2. From: jfw@ksr.com (John F. Woods)
  3. Newsgroups: sci.electronics
  4. Subject: Re: Beginners Question: RAS, CAS, and Refresh?
  5. Message-ID: <14976@ksr.com>
  6. Date: 20 Aug 92 11:09:45 EDT
  7. References: <etxansk.714131335@garbod20> <taravade.714150706@elephant.ecn.purdue.edu>
  8. Sender: news@ksr.com
  9. Lines: 71
  10.  
  11. etxansk@garbo.ericsson.se writes:
  12. > I've been looking at chip descriptions for some common
  13. >memory circuits. 
  14. > There are pins on them named RAS, CAS, and Refresh. I know
  15. >it's basic knowledge, but I'm not sure where to find good
  16. >documentation on this.
  17.  
  18. Vendor handbooks (like the Intel Memory Handbook) generally have at least
  19. cursory discussions of how refresh works, and certainly tell how to refresh
  20. a given part.
  21.  
  22. > The RAS and CAS signals are probably input signals to the
  23. >chip used during addressing. I've assumed that they're used
  24. >to tell the chip whether it's the most or least significant
  25. >part of the address vector that's currently on the address
  26. >bus. If I'm right about this, how come there are _two_
  27. >addressing control signals?
  28. > For the Refresh signal: I can't recall if this one really
  29. >is a pin on the chip or if it's some event that's done with
  30. >other signals. I've heard that certain types of chips need
  31. >this signal in order to work properly. What is the CPU (or
  32. >the main clock, or the addressing logic) supposed to do to
  33. >give the memory chips the refresh?
  34.  
  35. Dynamic RAMs have two addressing signals due to their construction.
  36. Internally, they are laid out as a big square array, and "row address select"
  37. latches which row is addressed and precharges the addressing lines on that
  38. row, and "column address select" chooses one column from that row to
  39. be read out or written.  There are two motivations for this:  it requires
  40. fewer gates to do the decode that would be required for individual selection
  41. (a 1Mb array would require millions of transistors for a one level decode
  42. (one million per-bit transistors plus the decode logic to get that far),
  43. whereas selecting in two 10-bit chunks requires merely thousands of
  44. transistors), and second it makes refresh easy -- selecting  a row refreshes 
  45. all the memory cells on that row, even though only one is eventually selected
  46. for read or write.  You refresh an entire ram by selecting every row at least
  47. once every refresh-time (one to a few milliseconds).  There is no separate
  48. refresh pin on most dynamic rams; some dynamic rams have a special "RAS-only"
  49. refresh cycle that can be used to quickly do refreshes in between regular
  50. cycles; some DRAMs have a "CAS-before-RAS refresh" mode where hitting the
  51. strobes in the "wrong" order triggers an internal refresh cycle from an
  52. internal counter.
  53.  
  54. As to how refreshing is done, this varies.  The simplest possible
  55. implementation is for the CPU to periodically generate refresh cycles;  you
  56. can interrupt the CPU every millisecond (or several) and have it read N
  57. consecutive addresses, where N is 2^{number of address lines to each DRAM},
  58. if you have set up the row addresses to be the low-order address lines; if
  59. you wire up the memory array properly, one set of DRAMs gets a regular read
  60. refresh, and all the other DRAMs get a RAS-only refresh.  This is great for
  61. low-parts-count systems where timing constraints permit the CPU to take a
  62. few hundred microseconds out every few milliseconds, and where the CPU is
  63. the sole source of memory cycles.
  64.  
  65. In more complicated systems, it is better to design the memory system as a
  66. whole and have it hide refresh cycles from the outside world.  This is usually
  67. done by having a timer set up with a counter; when the timer goes off, a
  68. refresh cycle is inserted, possibly blocking external access to the RAMs until
  69. it is finished.  A slight improvement is to piggy-back "hidden refresh cycles"
  70. (if supported by the DRAMs) onto externally generated memory cycles (which
  71. would reset the timer) which would reduce the likelyhood of having to hold off
  72. externally generated memory cycles, at the cost of slightly lengthening the
  73. time required for each cycle.
  74.  
  75. In sufficiently complicated systems, of course, you just buy a DRAM Controller
  76. Chip, program it at boot time with the characteristics of your memory array,
  77. and let it worry about all the details :-).
  78.  
  79.  
  80.  
  81.  
  82.