Main memory is also known as:
often referred to simply as memory, is the only one directly accessible to the CPU.
It's the first layer of the storage hierarchy.
The CPU continuously reads instructions stored there through the system bus (wiring) and executes them as required.
As shown in the below diagram, there are a few sub-layers of primary storage:
Memory can be think as one large array containing bytes (generally one) indexed by address.
Address | Value (In Hexadecimal) |
---|---|
1000 | 92 |
1001 | AB |
1002 | 15 |
1003 | CD |
Memory is organized in a computer by something called memory addresses.
When storing and retrieving data, an offset is used to determine the location in which the data is stored. For example a data request would be “retrieve 8 bytes of data starting at offset 8100”. This is similar to saying “give me the fifth binder from the second row” in the real world.
Main memory is directly or indirectly connected to the central processing unit via a memory bus. It is actually two buses (not on the diagram):
The CPU firstly sends a number through an address bus, a number called memory address, that indicates the desired location of data. Then it reads or writes the data itself using the data bus.
Additionally, a memory management unit (MMU) is a small device between CPU and RAM recalculating the actual memory address, for example to provide an abstraction of virtual memory or other tasks.