Why Do RAM Amounts Usually Run in Multiples of 2?

Page 2 - Seeking answers? Join the AnandTech community: where nearly half-a-million members share solutions and discuss the latest tech.

BrownTown

Diamond Member
Dec 1, 2005
5,314
1
0
do you even read what I write? wild speculation? square wheels? It really isnt that hard to get. We both know that DRAM is made of a bunch of cells containing a transistor and a capacior which are addressed in a maxtrix like implimintation wth a row and colums adress. The cells are activated by bug ass decoders which take the adress bits and activate the correct adresses. Now these decoders have n inputs and 2^n outputs which can be activated, but there is nothing saying that all 2^n lines have to actually be used. If the OS knows that there are only 700MBs of RAM then it will only send adresses which exist in the RAM and wont try to adress the non existant 700-1024MB adresses. I can see no reason why it would not work on CURRENT imlimintations.
 

kpb

Senior member
Oct 18, 2001
252
0
0
Originally posted by: BrownTown
do you even read what I write? wild speculation? square wheels? It really isnt that hard to get. We both know that DRAM is made of a bunch of cells containing a transistor and a capacior which are addressed in a maxtrix like implimintation wth a row and colums adress. The cells are activated by bug ass decoders which take the adress bits and activate the correct adresses. Now these decoders have n inputs and 2^n outputs which can be activated, but there is nothing saying that all 2^n lines have to actually be used. If the OS knows that there are only 700MBs of RAM then it will only send adresses which exist in the RAM and wont try to adress the non existant 700-1024MB adresses. I can see no reason why it would not work on CURRENT imlimintations.

Have to agree with peter on this.

Your argument is the os can handle 1500 mbs with multiple sticks (several possible configurations 1 1gb 1 512, 3 512 etc) so there for you can make a single 1.5gb stick which is a false assumption.

By your logic you could look at your garage and say you can fit 2 cars in the garage with 6 people in each so I should be able to make 1 car that fits 12 people that fits in only one spot in the garage. I hope it's fairly obvious why that won't work. Yeah you can get a big van or a small bus that fits 12 people but it sure aint gonna fit into your normal garage.


Now these decoders have n inputs and 2^n outputs which can be activated, but there is nothing saying that all 2^n lines have to actually be used.

Yes there is. It's assume as part of the design that all combinations of banks, rows and colums are addressable and there's no mechinisam built in to be able to specify otherwise. Besides that there are actually quite a few things that happen long before the operating system takes control and those all currently work in ways to be backwords compatable all the way back to the original ibm pc. It's not exactly a simple thing to go back and change the way things work with out breaking that especially for soemthing as basic as memory addressing.
 

smack Down

Diamond Member
Sep 10, 2005
4,507
0
0
Originally posted by: kpb
Originally posted by: BrownTown
do you even read what I write? wild speculation? square wheels? It really isnt that hard to get. We both know that DRAM is made of a bunch of cells containing a transistor and a capacior which are addressed in a maxtrix like implimintation wth a row and colums adress. The cells are activated by bug ass decoders which take the adress bits and activate the correct adresses. Now these decoders have n inputs and 2^n outputs which can be activated, but there is nothing saying that all 2^n lines have to actually be used. If the OS knows that there are only 700MBs of RAM then it will only send adresses which exist in the RAM and wont try to adress the non existant 700-1024MB adresses. I can see no reason why it would not work on CURRENT imlimintations.

Have to agree with peter on this.

Your argument is the os can handle 1500 mbs with multiple sticks (several possible configurations 1 1gb 1 512, 3 512 etc) so there for you can make a single 1.5gb stick which is a false assumption.

By your logic you could look at your garage and say you can fit 2 cars in the garage with 6 people in each so I should be able to make 1 car that fits 12 people that fits in only one spot in the garage. I hope it's fairly obvious why that won't work. Yeah you can get a big van or a small bus that fits 12 people but it sure aint gonna fit into your normal garage.

The OS has no problems keeping firefox from writing to the same memory as explorer. Why would it have any touble keeping firefox from writing to memory that does exestece.

 

kpb

Senior member
Oct 18, 2001
252
0
0
Originally posted by: smack Down
Originally posted by: kpb
Originally posted by: BrownTown
do you even read what I write? wild speculation? square wheels? It really isnt that hard to get. We both know that DRAM is made of a bunch of cells containing a transistor and a capacior which are addressed in a maxtrix like implimintation wth a row and colums adress. The cells are activated by bug ass decoders which take the adress bits and activate the correct adresses. Now these decoders have n inputs and 2^n outputs which can be activated, but there is nothing saying that all 2^n lines have to actually be used. If the OS knows that there are only 700MBs of RAM then it will only send adresses which exist in the RAM and wont try to adress the non existant 700-1024MB adresses. I can see no reason why it would not work on CURRENT imlimintations.

Have to agree with peter on this.

Your argument is the os can handle 1500 mbs with multiple sticks (several possible configurations 1 1gb 1 512, 3 512 etc) so there for you can make a single 1.5gb stick which is a false assumption.

By your logic you could look at your garage and say you can fit 2 cars in the garage with 6 people in each so I should be able to make 1 car that fits 12 people that fits in only one spot in the garage. I hope it's fairly obvious why that won't work. Yeah you can get a big van or a small bus that fits 12 people but it sure aint gonna fit into your normal garage.

The OS has no problems keeping firefox from writing to the same memory as explorer. Why would it have any touble keeping firefox from writing to memory that does exestece.

High level VM and memory management by the os is very different than the direct addressing of the memory. As I said before the memory has to be delt with by the bios before the os even gets loaded so forget about what windows can and can't do. It fails before windows even gets loaded.
 

smack Down

Diamond Member
Sep 10, 2005
4,507
0
0
Originally posted by: kpb
Originally posted by: smack Down
Originally posted by: kpb
Originally posted by: BrownTown
do you even read what I write? wild speculation? square wheels? It really isnt that hard to get. We both know that DRAM is made of a bunch of cells containing a transistor and a capacior which are addressed in a maxtrix like implimintation wth a row and colums adress. The cells are activated by bug ass decoders which take the adress bits and activate the correct adresses. Now these decoders have n inputs and 2^n outputs which can be activated, but there is nothing saying that all 2^n lines have to actually be used. If the OS knows that there are only 700MBs of RAM then it will only send adresses which exist in the RAM and wont try to adress the non existant 700-1024MB adresses. I can see no reason why it would not work on CURRENT imlimintations.

Have to agree with peter on this.

Your argument is the os can handle 1500 mbs with multiple sticks (several possible configurations 1 1gb 1 512, 3 512 etc) so there for you can make a single 1.5gb stick which is a false assumption.

By your logic you could look at your garage and say you can fit 2 cars in the garage with 6 people in each so I should be able to make 1 car that fits 12 people that fits in only one spot in the garage. I hope it's fairly obvious why that won't work. Yeah you can get a big van or a small bus that fits 12 people but it sure aint gonna fit into your normal garage.

The OS has no problems keeping firefox from writing to the same memory as explorer. Why would it have any touble keeping firefox from writing to memory that does exestece.

High level VM and memory management by the os is very different than the direct addressing of the memory. As I said before the memory has to be delt with by the bios before the os even gets loaded so forget about what windows can and can't do. It fails before windows even gets loaded.

Just make the unused address be in a range unused by the bios. Which doesn't use much RAM, turn off the RAM test and lie to the BIOS and tell it that it has a full DIMM. It should be trivial to make any program including the windows VM and bios to skip over memory locations.
 

smack Down

Diamond Member
Sep 10, 2005
4,507
0
0
Originally posted by: OCedHrt
This might be easier to understand

Furthermore, removing one chip in this case does not introduce one gap, it introduces 32 gaps.

It is compelety worthless and would costs more to do but that doesn't mean you couldn't do it. You would just need the software to support gaps in memory which isn't really a big deal at all.
 

videogames101

Diamond Member
Aug 24, 2005
6,777
19
81
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.

If you don't have the square wheels all at the same angle you can have square wheels on a flat road, corners of the squares alternate. Though off subject it is kinda interesting.
 

Peter

Elite Member
Oct 15, 1999
9,640
1
0
Originally posted by: videogames101
If you don't have the square wheels all at the same angle you can have square wheels on a flat road, corners of the squares alternate. Though off subject it is kinda interesting.

Four square wheels with phases shifted just gives you up to 16 bumps per revolution - if they're in sync, you get just four. Actually, you'd need an infinite number of square wheels to make the ride as smooth as with circular wheels. As it happens, a polygon with an infinite number of corners is a circle. Ma-duh-matics gone full circle (pun intended)

Point to the topic being, yes of course you could push a stupid idea through if you reengineer the entire world around it to make it fit. The reasonable outcome would be to just ditch it and stick with what's working in a simple and straightforward way. The KISS principle, if you so please.
 

IEC

Elite Member
Super Moderator
Jun 10, 2004
14,362
5,032
136
Originally posted by: Peter
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.

Bingo.
 

Calin

Diamond Member
Apr 9, 2001
3,112
0
0
The reasons could be (I think):
a memory stick uses enough address lines to access all its internal bytes (words, double words or whatever they are called). This means that when using a 1024 bytes stick, you use 10 lines for addressing every byte. What if you want to have a 1025 bytes stick? You suddenly have to use 11 lines to address every byte. The problems would be:
1. how can the memory announce the memory controller that the memory address doesn't exist?
2. if a memory controller uses 12 lines to address memory, it will access happily four 1024 bytes sticks, or two 1025 bytes sticks
3. this will increase complexity not only in the memory chips/sticks, but in the memory controllers too.
4. if you use a separate line to signal for "non existent memory address", you would could have 4 full 1024 bytes sticks, or just a single 1025 bytes stick (if the 1024 bytes sticks don't use "missing" blocks of memory
5. all that extra logic would decrease the speed of the memory
6. all that extra logic that increase the complexity would increase both the possibility of failure and the cost (in size, price, heat).

Also, if someone doesn't have enough memory on their system, the desire of the memory manufacturers is to sell them as much memory as possible, at as high a price possible, for the lowest possible cost to the manufacturer
 

Calin

Diamond Member
Apr 9, 2001
3,112
0
0
Originally posted by: smack Down
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.

I heard of some efforts (in Linux I think) to make it work using deffective memory chips - to use just the good part of a memory bank. How successfull they were, I don't know.
(this could help the creation of a low cost computer that could use memory with errors on it).
I assume they weren't so successful
 

Calin

Diamond Member
Apr 9, 2001
3,112
0
0
Originally posted by: smack Down
Originally posted by: OCedHrt
This might be easier to understand

Furthermore, removing one chip in this case does not introduce one gap, it introduces 32 gaps.

It is compelety worthless and would costs more to do but that doesn't mean you couldn't do it. You would just need the software to support gaps in memory which isn't really a big deal at all.

Then you would be in trouble when trying to allocate a big block of memory.
I understood the original poster wanted to know about a hardware solution. This is possible, but it will be more expensive in memory chips, sticks, controllers. It will also be slower in speed due to added complexity
 

smack Down

Diamond Member
Sep 10, 2005
4,507
0
0
Originally posted by: Calin
Originally posted by: smack Down
Originally posted by: OCedHrt
This might be easier to understand

Furthermore, removing one chip in this case does not introduce one gap, it introduces 32 gaps.

It is compelety worthless and would costs more to do but that doesn't mean you couldn't do it. You would just need the software to support gaps in memory which isn't really a big deal at all.

Then you would be in trouble when trying to allocate a big block of memory.
I understood the original poster wanted to know about a hardware solution. This is possible, but it will be more expensive in memory chips, sticks, controllers. It will also be slower in speed due to added complexity

You have no clue how virtual memory works do you. Big blocks of memory are allocated in pages. The pages doen't need to be continuous or even in memory.
 

smack Down

Diamond Member
Sep 10, 2005
4,507
0
0
Originally posted by: Calin
The reasons could be (I think):
a memory stick uses enough address lines to access all its internal bytes (words, double words or whatever they are called). This means that when using a 1024 bytes stick, you use 10 lines for addressing every byte. What if you want to have a 1025 bytes stick? You suddenly have to use 11 lines to address every byte. The problems would be:
1. how can the memory announce the memory controller that the memory address doesn't exist?
2. if a memory controller uses 12 lines to address memory, it will access happily four 1024 bytes sticks, or two 1025 bytes sticks
3. this will increase complexity not only in the memory chips/sticks, but in the memory controllers too.
4. if you use a separate line to signal for "non existent memory address", you would could have 4 full 1024 bytes sticks, or just a single 1025 bytes stick (if the 1024 bytes sticks don't use "missing" blocks of memory
5. all that extra logic would decrease the speed of the memory
6. all that extra logic that increase the complexity would increase both the possibility of failure and the cost (in size, price, heat).

Also, if someone doesn't have enough memory on their system, the desire of the memory manufacturers is to sell them as much memory as possible, at as high a price possible, for the lowest possible cost to the manufacturer

Nope all that would need to be done is one start up try and write to a bit in each physical page of memory and then read that bit back. The OS then know which pages are bad and doesn't try and assign those pages to the any program.
 
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/    |