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 speed, 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
★ Level 3 (L3) cache – (optional) higher latency than L2, often several MiB
★ 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.
★ Flash Memory – faster than disk storage, with up to 4GB or more of data, transferring (usually) over universal serial bus (USB)
★ Disk storage – hundreds of thousands of cycles latency, but very large
★ Tertiary storage – tape, optical disk (WORM)
| Contents |
| Management |
| See also |
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
★ Virtual memory
This article provided by Wikipedia. To edit the contents of this article, click here for original source.
psst.. try this: add to faves

العربية
中国
Français
Deutsch
Ελληνική
हिन्दी
Italiano
日本語
Português
Русский
Español