Memory Hierarchy

Home > Computer Science > Computer Architecture > Memory Hierarchy

The organization of memory in a computer system, from registers to cache memory to main memory to secondary memory.

Cache Memory: A small and fast memory component that stores frequently accessed data, eliminating the need to retrieve it from slower memory locations.
Memory Access Time: The time taken to access data from a particular memory location.
Cache Organization: The structure of the cache and its methods of mapping, replacement, and write policies.
Cache Performance: The effectiveness of cache design in reducing memory access time, avoiding cache misses, and improving the overall performance of the system.
Memory Management: The process of allocating and deallocating memory resources, including stack and heap memory.
Virtual Memory: The technique of using hard disk storage as an extension of the main memory to provide large addressable memory to the system.
Page Replacement Algorithms: The methods used for selecting which pages of memory to swap in and out of the main memory.
Memory Coherence: The synchronization of memory access across multiple processors in a shared memory system to ensure consistency and integrity of data.
Memory Interleaving: The technique of distributing memory across multiple banks in a way that enhances memory access time.
Memory Compression: The technique of compressing memory data to reduce its footprint and improve memory usage efficiency.
Cache memory: It is a small and fast memory that stores frequently accessed data from the main memory for quick access by the CPU.
Main memory: It is the primary memory of a computer, also known as RAM (Random Access Memory). It stores data and code for the currently running programs and serves as the intermediary between the CPU and storage devices.
Virtual memory: It is an extension of the main memory that uses some part of the hard disk as temporary storage for data and code that the CPU is currently accessing. It allows larger programs to run by swapping parts of code and data in and out of the main memory as needed.
Secondary storage: It is a slower but larger storage device that holds data and code needed for the long-term storage. Examples include Hard Disk Drives (HDD), Solid State Drives (SSD), and magnetic tapes.
External storage: It is a type of storage that is not directly connected to the CPU or the computer. Examples include USB flash drives, external hard drives, CD/DVD drives, and cloud storage.
Registers: Registers are the smallest and fastest memory storage units in a CPU. They hold the data that the CPU is currently processing, such as instructions, addresses, and operands.
Caches: There are different caches in a computer's memory hierarchy, including L1, L2, and L3 caches. These caches store data that is accessed frequently, making it readily available for the CPU.
On-chip memory: Memory that is embedded on the chip of the CPU or other components, used for storing frequently accessed data or code.
Network storage: Network storage is an architecture that involves remote storage devices connected to a central server, allowing multiple clients to access the stored data.
Flash memory: Flash memory is a type of non-volatile memory that is used for long-term storage in devices such as USB flash drives, SD cards, and digital cameras.
Optical storages: Optical storages like CD, DVD, and Blu-ray disks store data on a surface by using a beam of laser light.
Magnetic storages: Magnetic storage devices use magnetism to store data, such as hard disk drives (HDD) and magnetic tapes.
Tape drives: Tape drives use magnetic tapes to store large volumes of data at a low cost with low access times.
Cloud storage: Cloud storage is a type of network-based storage that allows users to store data on remote servers accessible via the internet.
3D XPoint: D XPoint is a new type of non-volatile memory that is faster and more durable than NAND flash memory, but has lower density and thus higher cost.
"the memory hierarchy separates computer storage into a hierarchy based on response time"
"Memory hierarchy affects performance in computer architectural design, algorithm predictions, and lower level programming constructs involving locality of reference."
"the levels may also be distinguished by their performance and controlling technologies"
"Designing for high performance requires considering the restrictions of the memory hierarchy, i.e. the size and capabilities of each component."
"Each of the various components can be viewed as part of a hierarchy of memories (m1, m2, ..., mn) in which each member mi is typically smaller and faster than the next highest member mi+1 of the hierarchy."
"a lower level will respond by filling a buffer and then signaling for activating the transfer"
"Internal – Processor registers and cache. Main – the system RAM and controller cards. On-line mass storage – Secondary storage. Off-line bulk storage – Tertiary and Off-line storage."
"Processor registers and cache."
"the system RAM and controller cards."
"Secondary storage."
"Tertiary and Off-line storage."
"For example, a paging algorithm may be considered as a level for virtual memory when designing a computer architecture."
"one can include a level of nearline storage between online and offline storage."
"Designing for high performance requires considering the restrictions of the memory hierarchy."
"lower level programming constructs involving locality of reference."
"the size and capabilities of each component" in the memory hierarchy.
"by their performance and controlling technologies"
"a lower level will respond by filling a buffer and then signaling for activating the transfer."
"On-line mass storage – Secondary storage."
"Tertiary and Off-line storage."