fbpx
Wikipedia

Memory hierarchy

In computer organisation, the memory hierarchy separates computer storage into a hierarchy based on response time. Since response time, complexity, and capacity are related, the levels may also be distinguished by their performance and controlling technologies.[1] Memory hierarchy affects performance in computer architectural design, algorithm predictions, and lower level programming constructs involving locality of reference.

Diagram of the computer memory hierarchy

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. To limit waiting by higher levels, a lower level will respond by filling a buffer and then signaling for activating the transfer.

There are four major storage levels.[1]

  • InternalProcessor 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.

This is a general memory hierarchy structuring. Many other structures are useful. For example, a paging algorithm may be considered as a level for virtual memory when designing a computer architecture, and one can include a level of nearline storage between online and offline storage.

Properties of the technologies in the memory hierarchy edit

  • Adding complexity slows down the memory hierarchy.[2]
  • CMOx memory technology stretches the Flash space in the memory hierarchy[3]
  • One of the main ways to increase system performance is minimising how far down the memory hierarchy one has to go to manipulate data.[4]
  • Latency and bandwidth are two metrics associated with caches. Neither of them is uniform, but is specific to a particular component of the memory hierarchy.[5]
  • Predicting where in the memory hierarchy the data resides is difficult.[5]
  • ...the location in the memory hierarchy dictates the time required for the prefetch to occur.[5]

Examples edit

 
Memory hierarchy of an AMD Bulldozer server.

The number of levels in the memory hierarchy and the performance at each level has increased over time. The type of memory or storage components also change historically.[6] For example, the memory hierarchy of an Intel Haswell Mobile[7] processor circa 2013 is:

The lower levels of the hierarchy – from disks downwards – are also known as tiered storage. The formal distinction between online, nearline, and offline storage is:[12]

  • Online storage is immediately available for I/O.
  • Nearline storage is not immediately available, but can be made online quickly without human intervention.
  • Offline storage is not immediately available, and requires some human intervention to bring online.

For example, always-on spinning disks are online, while spinning disks that spin-down, such as massive array of idle disk (MAID), are nearline. Removable media such as tape cartridges that can be automatically loaded, as in a tape library, are nearline, while cartridges that must be manually loaded are offline.

Most modern CPUs are so fast that for most program workloads, the bottleneck is the locality of reference of memory accesses and the efficiency of the caching and memory transfer between different levels of the hierarchy[citation needed]. As a result, the CPU spends much of its time idling, waiting for memory I/O to complete. This is sometimes called the space cost, as a larger memory object is more likely to overflow a small/fast level and require use of a larger/slower level. The resulting load on memory use is known as pressure (respectively register pressure, cache pressure, and (main) memory pressure). Terms for data being missing from a higher level and needing to be fetched from a lower level are, respectively: register spilling (due to register pressure: register to cache), cache miss (cache to main memory), and (hard) page fault (main memory to disk).

Modern programming languages mainly assume two levels of memory, main memory and disk storage, though in assembly language and inline assemblers 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.

Many programmers assume one level of memory. This works fine until the application hits a performance wall. Then the memory hierarchy will be assessed during code refactoring.

See also edit

References edit

  1. ^ a b Toy, Wing; Zee, Benjamin (1986). Computer Hardware/Software Architecture. Prentice Hall. p. 30. ISBN 0-13-163502-6.
  2. ^ Write-combining
  3. ^ . Unitity Semiconductor Corporation. Archived from the original on 5 August 2009. Retrieved 16 September 2009.
  4. ^ Pádraig Brady. "Multi-Core". Retrieved 16 September 2009.
  5. ^ a b c van der Pas, Ruud (2002). "Memory Hierarchy in Cache-Based Systems" (PDF). Santa Clara, California: Sun Microsystems: 26. 817-0742-10. {{cite journal}}: Cite journal requires |journal= (help)
  6. ^ "Memory & Storage - Timeline of Computer History - Computer History Museum". www.computerhistory.org.
  7. ^ Crothers, Brooke. "Dissecting Intel's top graphics in Apple's 15-inch MacBook Pro - CNET". News.cnet.com. Retrieved 2014-07-31.
  8. ^ "Intel's Haswell Architecture Analyzed: Building a New PC and a New Intel". AnandTech. Retrieved 2014-07-31.
  9. ^ a b c d e . Sisoftware.co.uk. Archived from the original on 2014-09-13. Retrieved 2014-07-31.
  10. ^ "Samsung 960 Pro M.2 NVMe SSD Review". storagereview.com. Retrieved 2017-04-13.
  11. ^ . Lto.org. Archived from the original on 2011-07-27. Retrieved 2014-07-31.
  12. ^ Pearson, Tony (2010). . IBM Developerworks, Inside System Storage. Archived from the original on 2018-11-27. Retrieved 2015-08-16.

memory, hierarchy, computer, organisation, memory, hierarchy, separates, computer, storage, into, hierarchy, based, response, time, since, response, time, complexity, capacity, related, levels, also, distinguished, their, performance, controlling, technologies. In computer organisation the memory hierarchy separates computer storage into a hierarchy based on response time Since response time complexity and capacity are related the levels may also be distinguished by their performance and controlling technologies 1 Memory hierarchy affects performance in computer architectural design algorithm predictions and lower level programming constructs involving locality of reference Diagram of the computer memory hierarchyDesigning 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 To limit waiting by higher levels a lower level will respond by filling a buffer and then signaling for activating the transfer There are four major storage levels 1 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 This is a general memory hierarchy structuring Many other structures are useful For example a paging algorithm may be considered as a level for virtual memory when designing a computer architecture and one can include a level of nearline storage between online and offline storage Contents 1 Properties of the technologies in the memory hierarchy 2 Examples 3 See also 4 ReferencesProperties of the technologies in the memory hierarchy editAdding complexity slows down the memory hierarchy 2 CMOx memory technology stretches the Flash space in the memory hierarchy 3 One of the main ways to increase system performance is minimising how far down the memory hierarchy one has to go to manipulate data 4 Latency and bandwidth are two metrics associated with caches Neither of them is uniform but is specific to a particular component of the memory hierarchy 5 Predicting where in the memory hierarchy the data resides is difficult 5 the location in the memory hierarchy dictates the time required for the prefetch to occur 5 Examples edit nbsp Memory hierarchy of an AMD Bulldozer server The number of levels in the memory hierarchy and the performance at each level has increased over time The type of memory or storage components also change historically 6 For example the memory hierarchy of an Intel Haswell Mobile 7 processor circa 2013 is Processor registers the fastest possible access usually 1 CPU cycle A few thousand bytes in size Cache Level 0 L0 Micro operations cache 6 144 bytes 6 KiB citation needed original research 8 in size Level 1 L1 Instruction cache 128 KiB citation needed original research in size Level 1 L1 Data cache 128 KiB citation needed original research in size Best access speed is around 700 GB s 9 Level 2 L2 Instruction and data shared 1 MiB citation needed original research in size Best access speed is around 200 GB s 9 Level 3 L3 Shared cache 6 MiB citation needed original research in size Best access speed is around 100 GB s 9 Level 4 L4 Shared cache 128 MiB citation needed original research in size Best access speed is around 40 GB s 9 Main memory Primary storage GiB citation needed original research in size Best access speed is around 10 GB s 9 In the case of a NUMA machine access times may not be uniform Disk storage Secondary storage Terabytes in size As of 2017 best access speed is from a consumer solid state drive is about 2000 MB s 10 Nearline storage Tertiary storage Up to exabytes in size As of 2013 best access speed is about 160 MB s 11 Offline storageThe lower levels of the hierarchy from disks downwards are also known as tiered storage The formal distinction between online nearline and offline storage is 12 Online storage is immediately available for I O Nearline storage is not immediately available but can be made online quickly without human intervention Offline storage is not immediately available and requires some human intervention to bring online For example always on spinning disks are online while spinning disks that spin down such as massive array of idle disk MAID are nearline Removable media such as tape cartridges that can be automatically loaded as in a tape library are nearline while cartridges that must be manually loaded are offline Most modern CPUs are so fast that for most program workloads the bottleneck is the locality of reference of memory accesses and the efficiency of the caching and memory transfer between different levels of the hierarchy citation needed As a result the CPU spends much of its time idling waiting for memory I O to complete This is sometimes called the space cost as a larger memory object is more likely to overflow a small fast level and require use of a larger slower level The resulting load on memory use is known as pressure respectively register pressure cache pressure and main memory pressure Terms for data being missing from a higher level and needing to be fetched from a lower level are respectively register spilling due to register pressure register to cache cache miss cache to main memory and hard page fault main memory to disk Modern programming languages mainly assume two levels of memory main memory and disk storage though in assembly language and inline assemblers 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 Many programmers assume one level of memory This works fine until the application hits a performance wall Then the memory hierarchy will be assessed during code refactoring See also editCache hierarchy Use of spatial and temporal locality hierarchical memory Buffer vs cache Cache hierarchy in a modern processor Memory wall Computer memory Hierarchical storage management Cloud storage Memory access pattern Communication avoiding algorithmReferences edit a b Toy Wing Zee Benjamin 1986 Computer Hardware Software Architecture Prentice Hall p 30 ISBN 0 13 163502 6 Write combining Memory Hierarchy Unitity Semiconductor Corporation Archived from the original on 5 August 2009 Retrieved 16 September 2009 Padraig Brady Multi Core Retrieved 16 September 2009 a b c van der Pas Ruud 2002 Memory Hierarchy in Cache Based Systems PDF Santa Clara California Sun Microsystems 26 817 0742 10 a href Template Cite journal html title Template Cite journal cite journal a Cite journal requires journal help Memory amp Storage Timeline of Computer History Computer History Museum www computerhistory org Crothers Brooke Dissecting Intel s top graphics in Apple s 15 inch MacBook Pro CNET News cnet com Retrieved 2014 07 31 Intel s Haswell Architecture Analyzed Building a New PC and a New Intel AnandTech Retrieved 2014 07 31 a b c d e SiSoftware Zone Sisoftware co uk Archived from the original on 2014 09 13 Retrieved 2014 07 31 Samsung 960 Pro M 2 NVMe SSD Review storagereview com Retrieved 2017 04 13 Ultrium LTO Technology Ultrium GenerationsLTO Lto org Archived from the original on 2011 07 27 Retrieved 2014 07 31 Pearson Tony 2010 Correct use of the term Nearline IBM Developerworks Inside System Storage Archived from the original on 2018 11 27 Retrieved 2015 08 16 Retrieved from https en wikipedia org w index php title Memory hierarchy amp oldid 1167616258, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.