Why Do RAM Amounts Usually Run in Multiples of 2?

thecoroner

Banned
Feb 2, 2006
153
0
0
Just wondering but why do RAM amounts always double as you add more (for the most part).

For example, why not have a 384 MB stick of RAM instead of going from a 256 MB stick of RAM to a 512 MB RAM?

Now, I know there are exceptions here. For example. you can have some unusal RAM amounts depending on what size sticks you put together (like putting a 128 MB stick and a 32 MB together to get 150 MB, if you could find sticks those sizes of the same type).
 

Bassyhead

Diamond Member
Nov 19, 2001
4,545
0
0
RAM (in general, not just sticks for computers which contain RAM chips themselves) is addressed using a certain range of memory. The range is defined as a function of the number of bits. Since there are two states ('0' and '1', binary), the range is 2^X, where X is an integer that is the number of bits that can be addressed. Therefore, the amount of RAM will always be a base-2 number.
 

BassBomb

Diamond Member
Nov 25, 2005
8,396
1
81
just what that guy said... in the end most electronics are consisted of pure binary when it comes to the small pieces ... thats why you see such things as 8bit processors, 16 bit ... 64 bit

a 384 stick would nto be impossible for companies to produce, just improbable, not a good investment
 

byosys

Senior member
Jun 23, 2004
209
0
76
Actually, to dive in a little more...

Since RAM sticks are based off of memory chips, why couldn't a maker put say 10x32MB chips on a stick of RAM for 320MB? or 12x32 for 384? A computer will run fine with 384MB of RAM made up of mutiple sticks, but I have yet to see a non-2^x based RAM stick.
 

thecoroner

Banned
Feb 2, 2006
153
0
0
Thanks for the advice everyone.

I think it could be beneficial with budget PCs if you could have an amount such as 320 MB in one stick. Why? Well, 256 MB might be a too little for a system but 512 MB too much. In a case like that, you could have a stick of 320 MB (or a stick of 128 MB and a stick of 256 MB for 384 MB) and save some money (as long as the RAM stick could be produced in a cost-effect way of course).
 

wseyller

Senior member
May 16, 2004
824
0
71
Even if it were possible maybe it is just that it is cheaper to make a 512mb module than a 384mb module.
 

Bassyhead

Diamond Member
Nov 19, 2001
4,545
0
0
Originally posted by: byosys
Actually, to dive in a little more...

Since RAM sticks are based off of memory chips, why couldn't a maker put say 10x32MB chips on a stick of RAM for 320MB? or 12x32 for 384? A computer will run fine with 384MB of RAM made up of mutiple sticks, but I have yet to see a non-2^x based RAM stick.


Such a stick will require chips of different sizes/densities/types which would be a nightmare.
 

ahurtt

Diamond Member
Feb 1, 2001
4,283
0
0
Originally posted by: byosys
Actually, to dive in a little more...

Since RAM sticks are based off of memory chips, why couldn't a maker put say 10x32MB chips on a stick of RAM for 320MB? or 12x32 for 384? A computer will run fine with 384MB of RAM made up of mutiple sticks, but I have yet to see a non-2^x based RAM stick.

I imagine it has something to do with making the most efficient use of stuff. Lets say in your example that for each 8 memory chips on the board, you need something like 1 bank controller chip (1 bank controller chip can control 8 memory chips). Now to put only 2 more memory chips (for 10 total) you need to add another bank controller chip, but that chip would only be 1/4 utilized. It could potentially control 6 more chips. . .I don't know if there is even any such thing as a bank controller chip or whatever. I'm just using a hypothetical made up situation to illustrate my point. So logic would dictate that to get the most efficient use out of the bank controller chip, you install memory chips in increments of 8:1.
 

Peter

Elite Member
Oct 15, 1999
9,640
1
0
Nice guesses folks, all missing the bleeding obvious. Facts:

RAM chip addressing happens in rows and columns. If you want to make it bigger, you add a column or row address line, thus going from 2^n to 2^(n+1) cols/rows - twice as big.

DIMM modules are 64 bits wide, and may have one or two ranks of the same (!) size.

No other numbers ever appear in the big picture (total size of one DIMM) than powers of two. Thus, you can't have any other results than powers of two.
 

BrownTown

Diamond Member
Dec 1, 2005
5,314
1
0
I'm sure everyone here understands that the adressing is done in binary, the fact that everything is addresssed in power of 2 doesn't change the fact that a for example 300MB RAM is completely possible to create, you will need bigger multiplexors etc, but it will still be alot smaller than 512MB of RAM in terms of die sizes, and therefore would be cheaper than 512. The point is jsut that there is no complelling reason to NOT use powers of 2. Everything in computers go up in powers of 2, and it does make the most efficient use of resources to do it that way. But there is absolutley no technical limitation to stop you from having a different number, its just that if your gonna upgrade it makes way mroe sense to double your RAM than to just go from 512 to 700 or something like that. Hard drives don't go up in double the size eeven though they are addressed in binary too, in fact when dealing with HD size they use powers of 10, not 2. IE MB = 10^6, not 2^20.
 

Peter

Elite Member
Oct 15, 1999
9,640
1
0
Powers of two are being used because row and column addressing is done with a set of address pins, which can be 0 or 1.

You got bank select pins B (2 to 3), row address pins R (10 to 14) and column address pins C (9 to 12). Address range then is 2^(B+R+C). For example, with two bank-select pins, 13 row address pins and 10 column address pins, you can address 2^(2+13+10) = 2^25 = memory cells, or 32 megabits. Device width is 4, 8 or 16 bits (powers of two again), so in a x8 configuration, that'd be your typical 256-Mbit RAM chip. DIMM width is 64-bit (yet another power of two), so you need eight (see?) of those.

Your call: How would you work that math so that it turns out a non-power-of-two result?
 

Peter

Elite Member
Oct 15, 1999
9,640
1
0
Hard drives are of course exactly NOT addressed in binary at all. Disc and head count, track density and bit density within a track are completely arbitrary.

This is totally unlike the DRAM situation. Not a valid example to prove your theory.
 

BrownTown

Diamond Member
Dec 1, 2005
5,314
1
0
umm, all you have to do is leave some of the addresses unused. So you have the 2^29 addresses, but only use the first 300 million of them. And, yeah hard drives are adressed using binary, I don't really see what else you could expect them to be adressed via seeing as binary is all computers understand.
 

Peter

Elite Member
Oct 15, 1999
9,640
1
0
Hard drives are addressed using a linear sector number, which ranges from zero to whatever the last sector number on the drive is.

RAM uses a 3D matrix addressing - and no, you cannot "just not use all of them" exactly because addressing isn't linear.

Debating on whether one could make RAM use an entirely different addressing scheme is pointless. You'd break interoperability with any chipset known to man.

Sure you can have square wheels - if you change all the tracks from flat to quarter-circle bumps, and agree on one single wheel size for everything.
 

smack Down

Diamond Member
Sep 10, 2005
4,507
0
0
Originally posted by: Peter
Hard drives are addressed using a linear sector number, which ranges from zero to whatever the last sector number on the drive is.

RAM uses a 3D matrix addressing - and no, you cannot "just not use all of them" exactly because addressing isn't linear.

Debating on whether one could make RAM use an entirely different addressing scheme is pointless. You'd break interoperability with any chipset known to man.

Sure you can have square wheels - if you change all the tracks from flat to quarter-circle bumps, and agree on one single wheel size for everything.

Couldn't the OS be design not to use a range of addresses. When ever a page fault occurs just make sure the OS skips the unused address space and it should work fine. I don't see why that wouldn't work.

Of course it would be really pointless and a big pain in the ass to implement.
 

Peter

Elite Member
Oct 15, 1999
9,640
1
0
Page faults don't occur because the RAM controller reports a "miss", they serve an entirely different - and CPU internal - purpose. By the rules of our beloved x86 architecture (and any other computer platform really), the main system RAM has to be contiguous.

Like I said - you can have square wheels if you build really odd roads to go with them.
 

Loki726

Senior member
Dec 27, 2003
228
0
0
Originally posted by: Peter
Page faults don't occur because the RAM controller reports a "miss", they serve an entirely different - and CPU internal - purpose. By the rules of our beloved x86 architecture (and any other computer platform really), the main system RAM has to be contiguous.

Like I said - you can have square wheels if you build really odd roads to go with them.

Could you explain that in a little more detail? I was under the impression that a cpu can't see the physical memory addresses. It can only see vitual addresses which are then mapped to physical addresses by a TLB or page table.

Since the TLB and page table entries are created dynamically, you should be able to have non contiguous memory simply by skipping over a certain address range when the TLB or page table is created? And since its all done in software it should be easy to do as long as the OS supports it.

I realize that it would probably be a bitch to implement a memory controller that supports gaps in its address space, but it seems like it could be done...
 

Peter

Elite Member
Oct 15, 1999
9,640
1
0
Oh, memory controllers that would technically let you program gaps are plenty, and the BIOS-OS interface (ACPI, PnP) would even allow declaring those gaps. Remember the 15-16 MByte ISA gap? It's all been done ...

But that's not even the question here. The original question was not what you can do with multiple modules, but how come memory modules always have sizes that are a power of two. I explained that above.

Even those advanced memory controllers insist that memory ranks are sized in powers of two. Keeping the rank address decoding simple is one reason - if you have power-of-two sizes, one AND can do the job of two compares. The other is the orthogonal architecture of DRAM - chipset and DRAM technologies are made to match. Wheels and roads.
 

BrownTown

Diamond Member
Dec 1, 2005
5,314
1
0
no, it does not take any crazy hacks to get it to work either, the OS just sees 700MB of RAM and only uses that much. If it had to be pwoers of two then you couldn't use 3 512 meg stick to get 1.5G because thats nto a power of 2. There is absolutely no requirement that the amount of RAM be a power of 2, or that the sticks of RAM be a power of 2,
 

thecoroner

Banned
Feb 2, 2006
153
0
0
Originally posted by: BrownTown
no, it does not take any crazy hacks to get it to work either, the OS just sees 700MB of RAM and only uses that much. If it had to be pwoers of two then you couldn't use 3 512 meg stick to get 1.5G because thats nto a power of 2. There is absolutely no requirement that the amount of RAM be a power of 2, or that the sticks of RAM be a power of 2,

We're talking about one individual memory stick though. I pretty much said in my OP you can get amounts that size if you use more than one stick, but why not have amounts that size on one stick.

This also makes me think of another reason why RAM amounts on a single stick move in bases of 2. Even if it were possible to create a 1.5 GB stick, it would have a shorter retail cycle because it would become outdated more quickly. Memory companies can have a longer-lasting product retail wise by doubling the amount of RAM on a a chip because:
a. the product can first be sold to high end and users who must have the best of the best
b. it can then be sold to midrange buyers
c. it can be sold to budget buyers

If a RAM company were to create a 1.5 GB stick instead of a 2 GB stick, the 1.5 GB stick would obviously become outdated faster as it is smaller than the 2 GB stick, thus reducing the number produced, increasing production costs, and reducing the amount of time consumers are willing to buy it.

(To avoild confusion, I am not talking about single RAM sticks below but using multiple RAM sticks in a super computing situation)
I guess one situation where you wouldn't want to double RAM amounts would be if you were running a super computer with vast amounts of RAM. Once you get into amounts where a lot of RAM is used, simply doubling RAM each time you want to upgrade is probably very expensive. It would make more sense in my opinion and in theory to increase the RAM by 50% (for example 1 TB to 1.5 TB) instead of doubling the RAM.

 

BrownTown

Diamond Member
Dec 1, 2005
5,314
1
0
the point is that there is no physical limitation to stop you from doing it, only economic implications. What I was saying is that the OS has no limitation which is clearly pointed out by having 3 sticks. The additional cost/MB would not be very high, the real reason is jsut that doubling each time allows for noticible performance increases whereas smaller denomination would not.
 

Peter

Elite Member
Oct 15, 1999
9,640
1
0
Please acknowledge that the OP specifically asked about memory stick sizes, not system total memory size, thankyou.
 

BrownTown

Diamond Member
Dec 1, 2005
5,314
1
0
I don't know about you, but i've been talking about individual stick size the whole time, and reference to multiple sticks is to explain that there is no adressing limitation in the OS or chipset to having sizes other than a power of 2. I have stated this already in the previous post, but apparently you did not read it.

ok, i didn't want to go here, but you made me..

me = right
you = wrong
discussion = over
 

Peter

Elite Member
Oct 15, 1999
9,640
1
0
Show me where I've said anything wrong. Your posts so far have been wild speculation far off anything to do with the ACTUAL implementation of the RAM devices we HAVE. The OP asked a real question about real life. I've answered it, with technical substance presented alongside for explanation, while you've been droning on and on and on about how wheels could be square.

There has never been a discussion. Just facts and noise.
 
sale-70-410-exam    | Exam-200-125-pdf    | we-sale-70-410-exam    | hot-sale-70-410-exam    | Latest-exam-700-603-Dumps    | Dumps-98-363-exams-date    | Certs-200-125-date    | Dumps-300-075-exams-date    | hot-sale-book-C8010-726-book    | Hot-Sale-200-310-Exam    | Exam-Description-200-310-dumps?    | hot-sale-book-200-125-book    | Latest-Updated-300-209-Exam    | Dumps-210-260-exams-date    | Download-200-125-Exam-PDF    | Exam-Description-300-101-dumps    | Certs-300-101-date    | Hot-Sale-300-075-Exam    | Latest-exam-200-125-Dumps    | Exam-Description-200-125-dumps    | Latest-Updated-300-075-Exam    | hot-sale-book-210-260-book    | Dumps-200-901-exams-date    | Certs-200-901-date    | Latest-exam-1Z0-062-Dumps    | Hot-Sale-1Z0-062-Exam    | Certs-CSSLP-date    | 100%-Pass-70-383-Exams    | Latest-JN0-360-real-exam-questions    | 100%-Pass-4A0-100-Real-Exam-Questions    | Dumps-300-135-exams-date    | Passed-200-105-Tech-Exams    | Latest-Updated-200-310-Exam    | Download-300-070-Exam-PDF    | Hot-Sale-JN0-360-Exam    | 100%-Pass-JN0-360-Exams    | 100%-Pass-JN0-360-Real-Exam-Questions    | Dumps-JN0-360-exams-date    | Exam-Description-1Z0-876-dumps    | Latest-exam-1Z0-876-Dumps    | Dumps-HPE0-Y53-exams-date    | 2017-Latest-HPE0-Y53-Exam    | 100%-Pass-HPE0-Y53-Real-Exam-Questions    | Pass-4A0-100-Exam    | Latest-4A0-100-Questions    | Dumps-98-365-exams-date    | 2017-Latest-98-365-Exam    | 100%-Pass-VCS-254-Exams    | 2017-Latest-VCS-273-Exam    | Dumps-200-355-exams-date    | 2017-Latest-300-320-Exam    | Pass-300-101-Exam    | 100%-Pass-300-115-Exams    |
http://www.portvapes.co.uk/    | http://www.portvapes.co.uk/    |