Search: in
Memory hierarchy
Memory hierarchy Encyclopedia
  Tutorials     Encyclopedia     Dictionary     Directory  
Memory_hierarchy Email this to a friend      Memory_hierarchy

Memory hierarchy

Diagram of the computer memory hierarchy
Diagram of the computer memory hierarchy
The hierarchical arrangement of storage in current computer architectures is called the memory hierarchy. It is designed to take advantage of memory locality in computer programs. Each level of the hierarchy has the properties of higher bandwidth, smaller size, and lower latency than lower levels.

Most modern CPUs are so fast that for most program workloads, the locality of reference of memory accesses and the efficiency of the caching and memory transfer between different levels of the hierarchy are the practical limitation on processing speed. As a result, the CPU spends much of its time idling, waiting for memory I/O to complete.

The memory hierarchy in most computers is:

  • Processor registers – fastest possible access (usually 1 CPU cycle), only hundreds of bytes in size
  • Level 1 (L1) cache – often accessed in just a few cycles, usually tens of kilobytes
  • Level 2 (L2) cache – higher latency than L1 by 2× to 10×, often 512 KiB or more
  • Main memory (DRAM) – may take hundreds of cycles, but can be multiple gigabytes. Access times may not be uniform, in the case of a NUMA machine.
  • Disk storage – millions of cycles latency, but very large
  • Tertiary storage – several seconds latency, can be huge

The various major units in a typical memory system can be viewed as forming a hierarchy of memories (m1,m2,...,mn) in which each member mi is in a sense subordinate to the next highest member mi-1 of the hierarchy.

Management

Modern programming languages mainly assume two levels of memory, main memory and disk storage, though in assembly language, and in inline assembler in languages such as C, registers can be directly accessed. Taking optimal advantage of the memory hierarchy requires the cooperation of programmers, hardware, and compilers (as well as underlying support from the operating system):

  • Programmers are responsible for moving data between disk and memory through file I/O.
  • Hardware is responsible for moving data between memory and caches.
  • Optimizing compilers are responsible for generating code that, when executed, will cause the hardware to use caches and registers efficiently.

See also

de:Hierarchisches Speichermanagement el:???????? ?????? es:Jerarquía de memoria fr:Hiérarchie mémoire id:Hirarki memori he:???? ?????? nl:Geheugenhiërarchie zh:?????





Source: Wikipedia | The above article is available under the GNU FDL. | Edit this article



Related Links in Memory hierarchy

Search for Memory hierarchy in Tutorials
Search for Memory hierarchy in Encyclopedia
Search for Memory hierarchy in Dictionary
Search for Memory hierarchy in Open Directory
Search for Memory hierarchy in Store
Search for Memory hierarchy in PriceGig



Help build the largest human-edited directory on the web.
Submit a Site - Open Directory Project - Become an Editor

Advertisement

Advertisement



Memory hierarchy
Memory_hierarchy top Memory_hierarchy

Home - Add TutorGig to Your Site - Disclaimer

©2008-2009 TutorGig.com. All Rights Reserved. Privacy Statement