maxtherabbit wrote on 2020-09-13, 21:58:
It can matter. The 3-chip modules have different refresh requirements. Older boards (80s-1991) will often actually require 9-chip modules. Otherwise the board doesn't properly refresh the memory.
To add background to this correct answer, let's look at a typical 256KB SIMM. It may consist of 9 chips of 256 kiloaddresses (kibiaddresses?) of one bit each. A typical model number of such a chip is 41256 (4 = DRAM, 1 = 1 bit per address, 256 = 256 kiloaddresses), e.g. the HYB41256 by Siemens. The datasheet says about refreshing:
HYB41256 wrote:
A refresh operation must be performed at least every four milliseconds to retain data. [...] Strobing each of the 256 row addresses (A0 through A7) with /RAS, causes all bits in each row to be refreshed.
So although the chip has address bits A0 to A8, you just need to count A0..A7 from 0 to 255 to refresh all bits of the chip. The eigth bit does not matter for refreshing at all. The four milliseconds is the time in which all rows need to be refreshed, so if you single rows one at a time (as the IBM PC/XT does), you need to refresh a row at least every 15.6 microseconds.
On the other hand, a three-chip module of 256KB contains all data bits in just two 44256-kind chips, e.g. the Samsung KM44C256B. Let's check the refresh requirement in the datasheet again. The bold-face highlighting has been added by me to make the differences more obvious.
KM44C256B wrote:
To maintain data integrity, it is necessary to refresh each of the rows every 8 ms. [...] the most common method for performing refresh [ is ] performed by strobing a row address with /RAS [...]. This cycle must be repeated each of the 512 row addresses (A0 - A8).
For this chip (and most other 256K x 4 chips), you need to count from 0 to 511 using A0 to A8. If you use 256K x 4 chips, an 8-bit counter will no longer do for refreshing. The rate of single row refreshes is still the same, though, at 8ms / 512 = 15.6 microseconds again.
The IBM PC is a nice example for why this difference matters: The ISA bus provides refresh signalling that can be used for memory expansion cards. It asserts the REFRESH line on the ISA bus while asserting an 8-bit count value on A0-A7. If a memory expansion card uses 256K x 4 chips, it needs to provide a valid A8 on its own (and most memory cards did).
Later memory chips (like the KM44C256B, but not the older HYB41256) have an internal counter, and can be told to "refresh the next row" without needing the row number on the address bits. This scheme is called "CAS-before-RAS" refresh and needs special support by the mainboard. If a mainboard uses CAS-before-RAS refresh, the number of rows in the RAM chip no longer matters for refreshing. All typical RAM chips (that support CAS-before-RAS) do just fine with one CAS-before-RAS refresh every 15.6microseconds, no matter how many rows they have internally.