Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Warning: yeah, I know that article of Wikipedia. It's just too difficult for me! I hope that there is some person who could explain it more simply...


Background: I designed a 6-bit computer. It has 4kB of RAM and 4kB of ROM (uses double address). Both are accessed and read the same way like the other one:

  1. 12-bit address goes to a decoder.
  2. Decoder decodes which memory cell should be accessed.
  3. Memory cell is accessed and its contents go to register A.

Both are strictly limited. Now we got a modern 32-bit computer. It has:

  • 4 GB of RAM. Limited.
  • 1 TB of HDDM, that can be expanded just by using bigger HDD or more HDDs!

Everything is clear with RAM - it is read and modified the same way like the one on my computer. But how do we access HDDM?

  • Do we have to include a HUGE decoder into the hardware of a modern computer to be able to address a HUGE quantity of separate memory cells? But still, HDD memory should be still limited to a certain amount of memory?
  • Or maybe there are tiny magnetic disks that are turning around very quickly, with each memory cell emmiting its own address, and little scanners waiting for the disks to turn into a right position to scan? But is that speed really possible?

Generally: so how we are able to have unlimited amounts of HDDM? How is HDDM accessed, read and modified?

Extra: is SSDM accessed with a decoder, so that is why it's faster than HDDM?

share|improve this question

closed as unclear what you're asking by Breakthrough, Michael Kjörling, Tog, AthomSfere, gronostaj Aug 25 '13 at 14:12

Please clarify your specific problem or add additional details to highlight exactly what you need. As it's currently written, it’s hard to tell exactly what you're asking. See the How to Ask page for help clarifying this question.If this question can be reworded to fit the rules in the help center, please edit the question.

    
Yes modern computers have 32-bit and 64-bit decoders. No they tiny magnetic disks are not used. Most of your question shows no effort to understand how a modern operating system handles memory. You also already got an answer to this question stackoverflow.com/questions/18033323/… –  Ramhound Aug 20 '13 at 11:43
    
I'm not interested in OS or any other kind of software. I'm interested only in hardware. Yes, I know that modern computers have 32bit and 64-bit decoders, that's why they can address that limited amount of RAM. But I am not talking about RAM! I am talking about HDDM! Your comment doesn't answer me how computers are able to have infinite HDDM. –  Mark Miller Aug 20 '13 at 11:47
3  
@MarkMiler - Sure it does. An operating system handles the memory mangement. You need to clarify what HDDM means exactly. I can only assume HDDM stands for Hard Drive Disk Memory which isn't a technical term that exists in computer engnieering. Modern operating systems use various forms of storage to allow programs near unlimited memory space in the form of a memory cache. The access time for DDR3 is several times faster then SATA3 interface. Solid State Disks are not accessed through a decoder. Hard Drive Disk are not accessed through a decoder. This question shows no research. –  Ramhound Aug 20 '13 at 11:53
1  
In general an operating system will create a memory map within a cache file. It will lie to to any program launched that it has unlimited available memory, it will go through the available memory solutions on the system, to decide where the memory will be located. It will move the memory in the system's memory cache to the fastest memory location possible and move unused addresses to the cache. This is done automatically and the phyiscal location of the address can change. Look up memory mapping..... –  Ramhound Aug 20 '13 at 11:59
    
@Ramhound - Okay, I think I got two things. 1. The memory that is mainly used to store programs, media, etc. (I called it HDDM) is NOT accessed through a decoder like RAM is. 2. I have to look up Wikipedia pages about "Serial ATA", "Parallel ATA" and "Mass Storage Device" for more information. But is there a way to explain it in simple language? –  Mark Miller Aug 20 '13 at 12:03
show 1 more comment

1 Answer

For devices that are not directly addressed you do not have to give them a specific address using a fixed number of lines, many devices allow you to send multiple bytes describing the address you want them to access. Storage devices do not generally have address lines connected to them and so implement a command bus that allows you to send a set of bytes similar to the following:

  1. 1st byte: "I want to read something, the next 6 bytes you receive will be the address to read from"
  2. 2nd byte: Address byte 1
  3. 3rd byte: Address byte 2
  4. 4th byte: Address byte 3
  5. 5th byte: Address byte 4
  6. 6th byte: Address byte 5
  7. 7th byte: Address byte 6

They will then go away and some time later will start the process of sending you bytes of data found at that address.

You can also redefine the base quantity of "one block" of data to be something other than a single byte (as memory uses). So at address 0 is a 512 byte block, at address 1 is the next 512 byte block and so on.

Hard drives and so on use both these methods. What you need to research is called Logical Block Addressing

This still suffers similar problems to the one we had when changing from 32 to 64-bit processors, the old hardware had to be replaced as it could not physically support the new interface and addressing scheme. Previous generations of hard drive interface only supported up to 137GiB of storage with a 28-bit block address and newer interfaces support 48-bit addressing which allows addressing up to 128 PiB.

Both the controller and slave device have to be able to talk using the newer standard in order for them support the larger size, if one of them simply cannot send all the required information then it will need to somehow be replaced.

share|improve this answer
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.