Newby - [lease be gentle!

  • Thread starter Thread starter John
  • Start date Start date
J

John

My PC has a K7S5A V1.0 motherboard. It has 256M of memory in slot DDR1.

I feel like adding a further 256M. What should I be looking for?

Is a single 512 better then 2 x 256?

--


Regards

John
 
I'd check with the manufacturer or the motherboard book, but in many boards
ram works better in pairs
 
John said:
My PC has a K7S5A V1.0 motherboard. It has 256M of memory in slot DDR1.

I feel like adding a further 256M. What should I be looking for?

Is a single 512 better then 2 x 256?
Although I do not have this version of MB (I have K7S5A pro v.5.0), you
might encounter a problem with a single 512 MB stick. I installed a
Kingston Value Ram PC2700 512MB stick and encountered errors even though
the stick passed on a friends computer (different MB) easily. The
advice to seek a size and brand that has been proven to work is good
advice on this MB. I might add that I have two sticks of PC 2700 256MB
installed and it works flawlessly. One is a Kingston VR and the other a
Nanya. Your results may vary.
 
If you're in the US (I believe they also do business in the UK), visit:

www.crucial.com

(This is the retail operation of Micron.) They guarantee that RAM purchased
by using their memory selector will be compatible with your board. The
highest capacity DIMMs that Crucial sells for your system are 512 MB.

If you prefer to deal with a local merchant, you can probably use generic
184 pin DDR memory, PC2100 or faster (unbuffered, non-ECC). (This is the
commonest sort.) A couple of things:

You mainboard supports both DDR and the older SDRAM. Don't mix them. (DDR
should give better performance, and it's now cheaper than SDRAM, so stay
with it.)

I don't think that the board supports dual-channel operation, so there may
be little performance difference between one DIMM or two. Some mainboards
are fussy about memory when all of the DIMM slots are filled, but I wouldn't
expect that to apply to your system (with two DDR DIMM slots).

Address scrambled. Replace nkbob with bobkn.
 
John said:
My PC has a K7S5A V1.0 motherboard. It has 256M of memory in slot DDR1.

I feel like adding a further 256M. What should I be looking for?

Is a single 512 better then 2 x 256?

Is there some truly logical reason why you don't submit your question to
ECS? That's most like the best place to get an intelligent, well
informed, response to your question!
 
John said:
My PC has a K7S5A V1.0 motherboard. It has 256M of memory in slot DDR1.

I feel like adding a further 256M. What should I be looking for?

If you're running 266 FSB then 256 meg PC2100, or faster.
Is a single 512 better then 2 x 256?

Not for adding another 256 Meg. It just increases the cost.
 
Ken said:
Although I do not have this version of MB (I have K7S5A pro v.5.0),
you might encounter a problem with a single 512 MB stick. I installed a
Kingston Value Ram PC2700 512MB stick and encountered errors even though
the stick passed on a friends computer (different MB) easily.

You don't say what kind of errors but it sounds like the typical "high
density" memory problem.

Each DIMM socket in the K7S5A supports two ranks with up to 256 Meg in each
rank for 2x256=512 Meg max total per slot (and 2 slots makes the 1 gig
maximum). A "standard" 512 Meg stick is made that way: 256 Meg per rank and
2 ranks.

A "high density" DIMM, however, has the whole 512 Meg in one rank and, so,
exceeds the slot's capacity.
 
Dee said:
Is there some truly logical reason why you don't submit your question to
ECS? That's most like the best place to get an intelligent, well
informed, response to your question!


Dee - I was concerned that the builder of the PC would have fitted the
existing memory and that I perhaps needed to match to that rather than to
the motherboard.

--


Regards

John
 
David said:
You don't say what kind of errors but it sounds like the typical "high
density" memory problem.

Each DIMM socket in the K7S5A supports two ranks with up to 256 Meg in
each rank for 2x256=512 Meg max total per slot (and 2 slots makes the 1
gig maximum). A "standard" 512 Meg stick is made that way: 256 Meg per
rank and 2 ranks.

A "high density" DIMM, however, has the whole 512 Meg in one rank and,
so, exceeds the slot's capacity.

You may well be correct about the "Rank" thing. Personally, I don't
fully understand it. I DO understand that the memory circuitry is
sometimes designed to see the memory in different configurations, such
as low density and high density. One would think however if the density
were the problem, that the full size would not be detected during POST.
I have seen many situations were this was the case, and it made sense
when it detected only half of the memory on the installed stick.
Apparently there is a factor in addition to the density that will cause
memory to not be used effectively?

I don't mean this as a critical remark, but only as a fact: You
apparently know much more about the access circuity of memory on MBs
than I do. Although I am curious about the "Rank" thing, I have read an
explanation (perhaps even written by you) and still do not fully
understand it. I am afraid it is going to take a graphic illustration
for this old fart to understand rank.

I do appreciate your comments, and I am sure that others less dense
than myself will understand them fully. My only purpose in posting my
comments were to alert the OP that not all memory will work on a given
MB. Thanks again for your comments.
 
Ken said:
You may well be correct about the "Rank" thing. Personally, I don't
fully understand it. I DO understand that the memory circuitry is
sometimes designed to see the memory in different configurations, such
as low density and high density. One would think however if the density
were the problem, that the full size would not be detected during POST.

That is often what happens, yes.
I have seen many situations were this was the case, and it made sense
when it detected only half of the memory on the installed stick.
Apparently there is a factor in addition to the density that will cause
memory to not be used effectively?

Yes. Another is loading of the memory bus. The 'high density' modules put
more chips on the bus and that can cause problems.

I don't mean this as a critical remark, but only as a fact: You
apparently know much more about the access circuity of memory on MBs
than I do. Although I am curious about the "Rank" thing, I have read an
explanation (perhaps even written by you) and still do not fully
understand it. I am afraid it is going to take a graphic illustration
for this old fart to understand rank.

I understand. It isn't easy to visualize if you're unfamiliar with it.

You have a memory address and how much memory can be addressed is
determined by how many bits are in the address. It's binary, of course, so
it goes as the power of 2. 1 bit has two states (2^1). 2 bits have 4 states
(2^2), 3 have 8 (2^3), 4 have 16 (2^4), 5 have 32 (2^5), 6 have 64 (2^6)
and so on (2^x). Call this how 'deep' the memory can be. (remember 2^5 and
2^6 as we'll use those below)

Now, memory also has data 'width'. For a P4 memory bus that's 64 bits wide
which, a byte being 8 bits, comes to 8 bytes.

So think of it as an XY 'stack' of memory cells. Call Y the memory
addressing and call it the 'depth' of the stack. Call X the memory data bus
and call it 'width'. The address bits are decoded to an address # on the
chip, so, for 5 bits of addressing (32) the stack looks like

address # 31 --> ========
....
address # 3 --> ========
address # 2 --> ========
address # 1 --> ========
address # 0 --> ========
01234567 memory width X (8 bytes, each byte[=] is 8 bits)

^^^^^^^^
||||||||
vvvvvvvv

The memory controller asks for memory location Y and gets, all together in
one stroke, 8 bytes of data on the memory bus (or sends data to it).

Lets use a small address space to make the numbers simpler. Say we have 5
address lines so we can address up to 32 (2^5) memory locations (in binary
we number from 0 to 31) and they're 64 bits wide so that totals 32 x 64 for
2048 bits. Since bytes are 8 bits, in bytes that's 32 memory locations deep
by 8 bytes (64/8) wide so our total memory capacity is 256 bytes. This is
going to be our "rank" (just accept that for the moment)

So, we have a system with a certain addressing capacity, 256 bytes, and now
we're going to put memory chips into it. And you may have guessed that our
capacity of 256 bytes resembles 256 meg if you multiply by a binary meg.

Memory chips are organized the same way, a depth and width, and the
'standard' width is 8 bits so it takes 8 chips, side by side, to fill our
64 bit wide memory data bus (rank). Since we have a maximum of 5 address
bits it's clear that the largest chip we can use is 32 bits deep and 8 of
them makes 256 bytes. The combined width always needs to be 64 bits,
because that's the data bus width, but we can use chips with less memory
depth, like 16 bits deep for 128 bytes, but not deeper ones because we
don't have more than 5 address lines.

Now, to describe the memory chip's organization we'll say it's "32x8" since
that's it's depth (32 bits) and width (8 bits). It's a "256 bit, 32x8,
memory chip" and 8 of them, 'side-by-side', make up a rank that totals 256
bytes and everything matches our system's maximum capacity. (btw, 32x8 is a
standard chip size in real life as the 32 is in megabytes)

Now we'll clarify 'rank' a bit more. We can fit more than 8 chips on a
stick so lets mount 16 on it, 8 chips on each side. We need some way to
select which 'side' of 8 chips is being addressed, because we still only
have 5 address lines, so we design a select signal. It need be just 1 bit
so we can select one or the other side of chips, 0 or 1, which allows us to
use both 'sides' of the memory stick we've made. Note that adding an
address line would not do us any good since the chips are still only 32
bits deep and the added address line would have nothing to address. We need
a 'third dimension', so to speak, to select which side of 8 chips we want
to use. And, in fact, 'side' used to be how it was described. I.E. a
"single sided" or "double sided" stick. But, as we'll see below, using
"side" no longer works so a new name was devised and that name is "rank".
Rank is the chips that fill up one 64 bit wide memory bus with whatever
depth they have. Ours are 32 bits deep and our new memory stick has two
ranks (what we began by calling two sides) for 2 times 256 bytes, 512 bytes
total.

This is our 512 memory stick. 2 ranks with 256 per rank and, as it turns
out, that's 8 chips on one side of the stick and 8 on the other. 2 ranks, 2
sides. It means the same thing here.

SIDE 0 SIDE 1
RANK 0 RANK 1
select select
| |
V V
address # 31 --> ======== ========
....
address # 3 --> ======== ========
address # 2 --> ======== ========
address # 1 --> ======== ========
address # 0 --> ======== ========
01234567 01234567
|||||||| ||||||||
------------------- the rank selected feeds through
^^^^^^^^
||||||||
vvvvvvvv
01234567 memory width 8 bytes (64 bits)

Now comes along 'high density' memory chips, but what makes them 'high
density? Well, they change the internal organization of the chip to be 64x4
(instead of the standard 32x8). I.E. 64 bits deep but only 4 bits wide.
They have the same total number of bits (32x8 = 64x4) but it now takes 16
of them to fill up that 64 bit wide memory bus (64/4= 16). So more of them
can be packed into one rank, exactly twice as many, and since they're the
same total capacity as the "standard" chips that means more memory in the
one rank, which is how they come up with the not-so-clear term 'high
density'. It's still 16 chips, just like our 2 rank stick, with a memory
capacity of 512, just like our two rank stick. Everything sounds pretty
much the same...

**BUT NOTICE*** the depth is now more than the number of address lines we
have. Remember our binary table at the very beginning. 64 bits deep takes
*6* address lines and we only have 5! And that means we can only address
HALF the memory in that 'high density' module even though the total number
of bytes is exactly the same as our two rank stick. They're both a "512
memory stick" but, the problem is, the whole 512 is all 'high density'
packed into ONE rank.

Here's our 512 'high density' memory stick

Both sides used There is no second rank
RANK 0 RANK 1
select select
| |
V ---
address # 63 --> ================
....
address # 35 --> ================
address # 34 --> ================
address # 33 --> ================
address # 31 --> ================ <---The maximum we can address
....
address # 3 --> ================
address # 2 --> ================
address # 1 --> ================
address # 0 --> ================ <---Two 4 bit chips per byte
0 1 2 3 4 5 6 7
| | | | | | | |
---------------------------------------------
^^^^^^^^
||||||||
vvvvvvvv
01234567 memory width 8 bytes (64 bits)

Also note that it still takes 16 chips with 8 on each side. It's "double
sided," physically, but there's only one rank. And this is why "double
sided" no longer works for the purpose. It used to be equivalent to two
ranks but now, which is it? One rank or two? It depends on what chips are
used and it's rank that tells the correct story, or deducing it by the chip
organization. Remember, standard chips are x8 and 'High Density' are x4.

Also look at our rank select line. With standard density chips it only has
to drive 8 chips but with 'high density' it has to drive twice as many, 16,
and electronic signals tend to slow down as the number of driven chips
increases so, if the select line circuitry is marginal (or intended to
drive 8 x8 chips), doubling the memory chips on it can cause erratic
operation if it doesn't quite 'get there' fast enough.
I do appreciate your comments, and I am sure that others less dense
than myself will understand them fully. My only purpose in posting my
comments were to alert the OP that not all memory will work on a given
MB. Thanks again for your comments.

You're quite right. I was just trying to help in determining which kinds of
memory are potentially problematic and why. In general it's safer to stay
away from 'high density' even if it fits within the rank capacity, because
of the drive problem, unless the motherboard specifically states it
supports them (in which case we hope they've increased the drive capability
to accommodate them).

 
David said:
Ken said:
You may well be correct about the "Rank" thing. Personally, I
don't fully understand it. I DO understand that the memory circuitry
is sometimes designed to see the memory in different configurations,
such as low density and high density. One would think however if the
density were the problem, that the full size would not be detected
during POST.


That is often what happens, yes.
I have seen many situations were this was the case, and it made sense
when it detected only half of the memory on the installed stick.
Apparently there is a factor in addition to the density that will
cause memory to not be used effectively?


Yes. Another is loading of the memory bus. The 'high density' modules
put more chips on the bus and that can cause problems.

I don't mean this as a critical remark, but only as a fact: You
apparently know much more about the access circuity of memory on MBs
than I do. Although I am curious about the "Rank" thing, I have read
an explanation (perhaps even written by you) and still do not fully
understand it. I am afraid it is going to take a graphic illustration
for this old fart to understand rank.


I understand. It isn't easy to visualize if you're unfamiliar with it.

You have a memory address and how much memory can be addressed is
determined by how many bits are in the address. It's binary, of course,
so it goes as the power of 2. 1 bit has two states (2^1). 2 bits have 4
states (2^2), 3 have 8 (2^3), 4 have 16 (2^4), 5 have 32 (2^5), 6 have
64 (2^6) and so on (2^x). Call this how 'deep' the memory can be.
(remember 2^5 and 2^6 as we'll use those below)

Now, memory also has data 'width'. For a P4 memory bus that's 64 bits
wide which, a byte being 8 bits, comes to 8 bytes.

So think of it as an XY 'stack' of memory cells. Call Y the memory
addressing and call it the 'depth' of the stack. Call X the memory data
bus and call it 'width'. The address bits are decoded to an address # on
the chip, so, for 5 bits of addressing (32) the stack looks like

address # 31 --> ========
...
address # 3 --> ========
address # 2 --> ========
address # 1 --> ========
address # 0 --> ========
01234567 memory width X (8 bytes, each byte[=] is 8 bits)

^^^^^^^^
||||||||
vvvvvvvv

The memory controller asks for memory location Y and gets, all together
in one stroke, 8 bytes of data on the memory bus (or sends data to it).

Lets use a small address space to make the numbers simpler. Say we have
5 address lines so we can address up to 32 (2^5) memory locations (in
binary we number from 0 to 31) and they're 64 bits wide so that totals
32 x 64 for 2048 bits. Since bytes are 8 bits, in bytes that's 32 memory
locations deep by 8 bytes (64/8) wide so our total memory capacity is
256 bytes. This is going to be our "rank" (just accept that for the moment)

So, we have a system with a certain addressing capacity, 256 bytes, and
now we're going to put memory chips into it. And you may have guessed
that our capacity of 256 bytes resembles 256 meg if you multiply by a
binary meg.

Memory chips are organized the same way, a depth and width, and the
'standard' width is 8 bits so it takes 8 chips, side by side, to fill
our 64 bit wide memory data bus (rank). Since we have a maximum of 5
address bits it's clear that the largest chip we can use is 32 bits deep
and 8 of them makes 256 bytes. The combined width always needs to be 64
bits, because that's the data bus width, but we can use chips with less
memory depth, like 16 bits deep for 128 bytes, but not deeper ones
because we don't have more than 5 address lines.

Now, to describe the memory chip's organization we'll say it's "32x8"
since that's it's depth (32 bits) and width (8 bits). It's a "256 bit,
32x8, memory chip" and 8 of them, 'side-by-side', make up a rank that
totals 256 bytes and everything matches our system's maximum capacity.
(btw, 32x8 is a standard chip size in real life as the 32 is in megabytes)

Now we'll clarify 'rank' a bit more. We can fit more than 8 chips on a
stick so lets mount 16 on it, 8 chips on each side. We need some way to
select which 'side' of 8 chips is being addressed, because we still only
have 5 address lines, so we design a select signal. It need be just 1
bit so we can select one or the other side of chips, 0 or 1, which
allows us to use both 'sides' of the memory stick we've made. Note that
adding an address line would not do us any good since the chips are
still only 32 bits deep and the added address line would have nothing to
address. We need a 'third dimension', so to speak, to select which side
of 8 chips we want to use. And, in fact, 'side' used to be how it was
described. I.E. a "single sided" or "double sided" stick. But, as we'll
see below, using "side" no longer works so a new name was devised and
that name is "rank". Rank is the chips that fill up one 64 bit wide
memory bus with whatever depth they have. Ours are 32 bits deep and our
new memory stick has two ranks (what we began by calling two sides) for
2 times 256 bytes, 512 bytes total.

This is our 512 memory stick. 2 ranks with 256 per rank and, as it turns
out, that's 8 chips on one side of the stick and 8 on the other. 2
ranks, 2 sides. It means the same thing here.

SIDE 0 SIDE 1
RANK 0 RANK 1
select select
| |
V V
address # 31 --> ======== ========
...
address # 3 --> ======== ========
address # 2 --> ======== ========
address # 1 --> ======== ========
address # 0 --> ======== ========
01234567 01234567
|||||||| ||||||||
------------------- the rank selected feeds through
^^^^^^^^
||||||||
vvvvvvvv
01234567 memory width 8 bytes (64 bits)

Now comes along 'high density' memory chips, but what makes them 'high
density? Well, they change the internal organization of the chip to be
64x4 (instead of the standard 32x8). I.E. 64 bits deep but only 4 bits
wide. They have the same total number of bits (32x8 = 64x4) but it now
takes 16 of them to fill up that 64 bit wide memory bus (64/4= 16). So
more of them can be packed into one rank, exactly twice as many, and
since they're the same total capacity as the "standard" chips that means
more memory in the one rank, which is how they come up with the
not-so-clear term 'high density'. It's still 16 chips, just like our 2
rank stick, with a memory capacity of 512, just like our two rank stick.
Everything sounds pretty much the same...

**BUT NOTICE*** the depth is now more than the number of address lines
we have. Remember our binary table at the very beginning. 64 bits deep
takes *6* address lines and we only have 5! And that means we can only
address HALF the memory in that 'high density' module even though the
total number of bytes is exactly the same as our two rank stick. They're
both a "512 memory stick" but, the problem is, the whole 512 is all
'high density' packed into ONE rank.

Here's our 512 'high density' memory stick

Both sides used There is no second rank
RANK 0 RANK 1
select select
| |
V ---
address # 63 --> ================
...
address # 35 --> ================
address # 34 --> ================
address # 33 --> ================
address # 31 --> ================ <---The maximum we can address
...
address # 3 --> ================
address # 2 --> ================
address # 1 --> ================
address # 0 --> ================ <---Two 4 bit chips per byte
0 1 2 3 4 5 6 7
| | | | | | | |
---------------------------------------------
^^^^^^^^
||||||||
vvvvvvvv
01234567 memory width 8 bytes (64 bits)

Also note that it still takes 16 chips with 8 on each side. It's "double
sided," physically, but there's only one rank. And this is why "double
sided" no longer works for the purpose. It used to be equivalent to two
ranks but now, which is it? One rank or two? It depends on what chips
are used and it's rank that tells the correct story, or deducing it by
the chip organization. Remember, standard chips are x8 and 'High
Density' are x4.

Also look at our rank select line. With standard density chips it only
has to drive 8 chips but with 'high density' it has to drive twice as
many, 16, and electronic signals tend to slow down as the number of
driven chips increases so, if the select line circuitry is marginal (or
intended to drive 8 x8 chips), doubling the memory chips on it can cause
erratic operation if it doesn't quite 'get there' fast enough.
I do appreciate your comments, and I am sure that others less
dense than myself will understand them fully. My only purpose in
posting my comments were to alert the OP that not all memory will work
on a given MB. Thanks again for your comments.


You're quite right. I was just trying to help in determining which kinds
of memory are potentially problematic and why. In general it's safer to
stay away from 'high density' even if it fits within the rank capacity,
because of the drive problem, unless the motherboard specifically states
it supports them (in which case we hope they've increased the drive
capability to accommodate them).

First, let me state that you must be an instructor or something
similar, in order to have given such a detailed explanation. I printed
it out and dissected it line by line. I think I finally understand what
I was confused about. I do none the less, have a few questions:

Is the width of the data bus dictated by the processor, or the memory
controller architecture? That is, is it practical to access an address
and read more data than the processor can handle in one operation?

What would the MB characteristics need to state in order to know if
high density RAM could be used on a MB? In other words, what is the
verbiage? Many list double sided, or single sided, but what addresses
high density?

The part that did me the most good was the part about "Line circuitry
is marginal." I knew that the memory was detected, but could not
understand why the memory would be so unreliable. Needing to access the
chips two times, makes sense.

An excellent explanation, you must be an extremely patient man.

Ken
 
Ken said:
David said:
Ken said:
David Maynard wrote:

Ken wrote:

John wrote:

My PC has a K7S5A V1.0 motherboard. It has 256M of memory in slot
DDR1.

I feel like adding a further 256M. What should I be looking for?

Is a single 512 better then 2 x 256?

Although I do not have this version of MB (I have K7S5A pro
v.5.0), you might encounter a problem with a single 512 MB stick.
I installed a Kingston Value Ram PC2700 512MB stick and encountered
errors even though the stick passed on a friends computer
(different MB) easily.





You don't say what kind of errors but it sounds like the typical
"high density" memory problem.

Each DIMM socket in the K7S5A supports two ranks with up to 256 Meg
in each rank for 2x256=512 Meg max total per slot (and 2 slots makes
the 1 gig maximum). A "standard" 512 Meg stick is made that way: 256
Meg per rank and 2 ranks.

A "high density" DIMM, however, has the whole 512 Meg in one rank
and, so, exceeds the slot's capacity.




You may well be correct about the "Rank" thing. Personally, I
don't fully understand it. I DO understand that the memory circuitry
is sometimes designed to see the memory in different configurations,
such as low density and high density. One would think however if the
density were the problem, that the full size would not be detected
during POST.



That is often what happens, yes.
I have seen many situations were this was the case, and it made
sense when it detected only half of the memory on the installed
stick. Apparently there is a factor in addition to the density that
will cause memory to not be used effectively?



Yes. Another is loading of the memory bus. The 'high density' modules
put more chips on the bus and that can cause problems.

I don't mean this as a critical remark, but only as a fact: You
apparently know much more about the access circuity of memory on MBs
than I do. Although I am curious about the "Rank" thing, I have read
an explanation (perhaps even written by you) and still do not fully
understand it. I am afraid it is going to take a graphic
illustration for this old fart to understand rank.



I understand. It isn't easy to visualize if you're unfamiliar with it.

You have a memory address and how much memory can be addressed is
determined by how many bits are in the address. It's binary, of
course, so it goes as the power of 2. 1 bit has two states (2^1). 2
bits have 4 states (2^2), 3 have 8 (2^3), 4 have 16 (2^4), 5 have 32
(2^5), 6 have 64 (2^6) and so on (2^x). Call this how 'deep' the
memory can be. (remember 2^5 and 2^6 as we'll use those below)

Now, memory also has data 'width'. For a P4 memory bus that's 64 bits
wide which, a byte being 8 bits, comes to 8 bytes.

So think of it as an XY 'stack' of memory cells. Call Y the memory
addressing and call it the 'depth' of the stack. Call X the memory
data bus and call it 'width'. The address bits are decoded to an
address # on the chip, so, for 5 bits of addressing (32) the stack
looks like

address # 31 --> ========
...
address # 3 --> ========
address # 2 --> ========
address # 1 --> ========
address # 0 --> ========
01234567 memory width X (8 bytes, each byte[=] is 8
bits)

^^^^^^^^
||||||||
vvvvvvvv

The memory controller asks for memory location Y and gets, all
together in one stroke, 8 bytes of data on the memory bus (or sends
data to it).

Lets use a small address space to make the numbers simpler. Say we
have 5 address lines so we can address up to 32 (2^5) memory locations
(in binary we number from 0 to 31) and they're 64 bits wide so that
totals 32 x 64 for 2048 bits. Since bytes are 8 bits, in bytes that's
32 memory locations deep by 8 bytes (64/8) wide so our total memory
capacity is 256 bytes. This is going to be our "rank" (just accept
that for the moment)

So, we have a system with a certain addressing capacity, 256 bytes,
and now we're going to put memory chips into it. And you may have
guessed that our capacity of 256 bytes resembles 256 meg if you
multiply by a binary meg.

Memory chips are organized the same way, a depth and width, and the
'standard' width is 8 bits so it takes 8 chips, side by side, to fill
our 64 bit wide memory data bus (rank). Since we have a maximum of 5
address bits it's clear that the largest chip we can use is 32 bits
deep and 8 of them makes 256 bytes. The combined width always needs to
be 64 bits, because that's the data bus width, but we can use chips
with less memory depth, like 16 bits deep for 128 bytes, but not
deeper ones because we don't have more than 5 address lines.

Now, to describe the memory chip's organization we'll say it's "32x8"
since that's it's depth (32 bits) and width (8 bits). It's a "256 bit,
32x8, memory chip" and 8 of them, 'side-by-side', make up a rank that
totals 256 bytes and everything matches our system's maximum capacity.
(btw, 32x8 is a standard chip size in real life as the 32 is in
megabytes)

Now we'll clarify 'rank' a bit more. We can fit more than 8 chips on a
stick so lets mount 16 on it, 8 chips on each side. We need some way
to select which 'side' of 8 chips is being addressed, because we still
only have 5 address lines, so we design a select signal. It need be
just 1 bit so we can select one or the other side of chips, 0 or 1,
which allows us to use both 'sides' of the memory stick we've made.
Note that adding an address line would not do us any good since the
chips are still only 32 bits deep and the added address line would
have nothing to address. We need a 'third dimension', so to speak, to
select which side of 8 chips we want to use. And, in fact, 'side' used
to be how it was described. I.E. a "single sided" or "double sided"
stick. But, as we'll see below, using "side" no longer works so a new
name was devised and that name is "rank". Rank is the chips that fill
up one 64 bit wide memory bus with whatever depth they have. Ours are
32 bits deep and our new memory stick has two ranks (what we began by
calling two sides) for 2 times 256 bytes, 512 bytes total.

This is our 512 memory stick. 2 ranks with 256 per rank and, as it
turns out, that's 8 chips on one side of the stick and 8 on the other.
2 ranks, 2 sides. It means the same thing here.

SIDE 0 SIDE 1
RANK 0 RANK 1
select select
| |
V V
address # 31 --> ======== ========
...
address # 3 --> ======== ========
address # 2 --> ======== ========
address # 1 --> ======== ========
address # 0 --> ======== ========
01234567 01234567
|||||||| ||||||||
------------------- the rank selected feeds through
^^^^^^^^
||||||||
vvvvvvvv
01234567 memory width 8 bytes (64 bits)

Now comes along 'high density' memory chips, but what makes them 'high
density? Well, they change the internal organization of the chip to be
64x4 (instead of the standard 32x8). I.E. 64 bits deep but only 4 bits
wide. They have the same total number of bits (32x8 = 64x4) but it now
takes 16 of them to fill up that 64 bit wide memory bus (64/4= 16). So
more of them can be packed into one rank, exactly twice as many, and
since they're the same total capacity as the "standard" chips that
means more memory in the one rank, which is how they come up with the
not-so-clear term 'high density'. It's still 16 chips, just like our 2
rank stick, with a memory capacity of 512, just like our two rank
stick. Everything sounds pretty much the same...

**BUT NOTICE*** the depth is now more than the number of address lines
we have. Remember our binary table at the very beginning. 64 bits deep
takes *6* address lines and we only have 5! And that means we can only
address HALF the memory in that 'high density' module even though the
total number of bytes is exactly the same as our two rank stick.
They're both a "512 memory stick" but, the problem is, the whole 512
is all 'high density' packed into ONE rank.

Here's our 512 'high density' memory stick

Both sides used There is no second rank
RANK 0 RANK 1
select select
| |
V ---
address # 63 --> ================
...
address # 35 --> ================
address # 34 --> ================
address # 33 --> ================
address # 31 --> ================ <---The maximum we can address
...
address # 3 --> ================
address # 2 --> ================
address # 1 --> ================
address # 0 --> ================ <---Two 4 bit chips per byte
0 1 2 3 4 5 6 7
| | | | | | | |
---------------------------------------------
^^^^^^^^
||||||||
vvvvvvvv
01234567 memory width 8 bytes (64 bits)

Also note that it still takes 16 chips with 8 on each side. It's
"double sided," physically, but there's only one rank. And this is why
"double sided" no longer works for the purpose. It used to be
equivalent to two ranks but now, which is it? One rank or two? It
depends on what chips are used and it's rank that tells the correct
story, or deducing it by the chip organization. Remember, standard
chips are x8 and 'High Density' are x4.

Also look at our rank select line. With standard density chips it only
has to drive 8 chips but with 'high density' it has to drive twice as
many, 16, and electronic signals tend to slow down as the number of
driven chips increases so, if the select line circuitry is marginal
(or intended to drive 8 x8 chips), doubling the memory chips on it can
cause erratic operation if it doesn't quite 'get there' fast enough.
I do appreciate your comments, and I am sure that others less
dense than myself will understand them fully. My only purpose in
posting my comments were to alert the OP that not all memory will
work on a given MB. Thanks again for your comments.



You're quite right. I was just trying to help in determining which
kinds of memory are potentially problematic and why. In general it's
safer to stay away from 'high density' even if it fits within the rank
capacity, because of the drive problem, unless the motherboard
specifically states it supports them (in which case we hope they've
increased the drive capability to accommodate them).

The advice to seek a size and brand that has been proven to work
is good advice on this MB. I might add that I have two sticks of
PC 2700 256MB installed and it works flawlessly. One is a Kingston
VR and the other a Nanya. Your results may vary.

First, let me state that you must be an instructor or something
similar, in order to have given such a detailed explanation. I printed
it out and dissected it line by line. I think I finally understand what
I was confused about. I do none the less, have a few questions:

Is the width of the data bus dictated by the processor,

Well, it's based on it since that's where it's eventually going. Things
will generally be a multiple of the processor's basic word width although
'low cost' systems sometimes do multiple reads on a fractional width bus
(smaller width means fewer pins, smaller connectors, etc. for less cost but
much slower operation due to the memory read delays).
or the
memory controller architecture? That is, is it practical to access an
address and read more data than the processor can handle in one operation?

It's not only practical but is what's commonly done these days. E.g. the P3
is a 32 bit processor but the memory bus is 64 bits, as is the FSB. The P4
is also 32 bits but a 'dual channel' controller makes for a 128 bit memory
bus that then goes into a 64 bit FSB.

These are all essentially technical tricks to help compensate for a
fundamental problem, that processor speed is much faster than memory speed.
So, for example, running the FSB twice as wide (64 bit vs 32) reads twice
as much memory per cycle. With the P4 it's done basically twice, once with
the FSB and then again with the "dual channel" controller, since memory
can't keep with with the 800 MHz FSB but two DDR400 sticks in parallel can.

Looking at it in bytes


==== 32 bit Processor, 3200 Mhz
/\
/ \
======== 64 bit FSB, 800 MHz
/ \
/ \ Dual Channel Controller
/ \
======== ======== 64 bit memory modules, 400 MHz

Note that a double width FSB doesn't keep up with the processor, which is
where L2 cache comes in.

It gets rather complicated as the processor doesn't need a memory access on
every clock cycle but, then again, memory can't sustain 400 MHz for more
than a nominal number of bytes, and there's access delay times, so simply
counting up MHz doesn't tell the whole story but that's the basic gist of it.

What would the MB characteristics need to state in order to know if
high density RAM could be used on a MB? In other words, what is the
verbiage? Many list double sided, or single sided, but what addresses
high density?

"Double sided" means two ranks, as mentioned above (after all, the
motherboard couldn't care less where the physical chips are). The only real
way to denote which memory types are supported is to list the chip
organization. e.g. 32x8. Unfortunately, user documentation often, if not
usually, omits that and the safest thing is to use 'standard' memory, one
of the x8 flavors, unless it is explicitly stated that others will work. If
you *really* want to know you need to get the chipset datasheet from the
chip maker. E.g. Intel, SIS, VIA, nVidia, etc. (and even then the
motherboard manufacturer may not have done an entirely standard
implementation).

The part that did me the most good was the part about "Line
circuitry is marginal." I knew that the memory was detected, but could
not understand why the memory would be so unreliable. Needing to access
the chips two times, makes sense.

It isn't that they're accessed two times. It's the physical number of them
connected to the circuit, 16 vs 8, which is twice as much of a *load*. Load
being how much electrical 'oomph' it takes to operate them.

An excellent explanation,

Thank you.
you must be an extremely patient man.

There are those who would take dispute with that statement ;)
 
Back
Top