stringtranslate.com

Иерархия памяти

Схема иерархии памяти компьютера

В архитектуре компьютера иерархия памяти разделяет компьютерное хранилище на иерархию, основанную на времени отклика . Поскольку время отклика, сложность и емкость связаны, уровни также могут различаться по их производительности и технологиям управления. [1] Иерархия памяти влияет на производительность в проектировании архитектуры компьютера, предсказаниях алгоритмов и конструкциях программирования более низкого уровня, включающих локальность ссылок .

Проектирование для высокой производительности требует учета ограничений иерархии памяти, т. е. размера и возможностей каждого компонента. Каждый из различных компонентов можно рассматривать как часть иерархии памяти ( m 1 , m 2 , ..., m n ) , в которой каждый член m i обычно меньше и быстрее, чем следующий по величине член m i +1 иерархии. Чтобы ограничить ожидание более высокими уровнями, более низкий уровень будет отвечать заполнением буфера, а затем сигнализировать об активации передачи.

Существует четыре основных уровня хранения. [1]

Это общая иерархия структурирования памяти. Многие другие структуры полезны. Например, алгоритм подкачки может рассматриваться как уровень виртуальной памяти при проектировании архитектуры компьютера , и можно включить уровень хранения nearline между онлайн и офлайн хранением.

Свойства технологий в иерархии памяти

Примеры

Иерархия памяти сервера AMD Bulldozer.

Количество уровней в иерархии памяти и производительность на каждом уровне со временем увеличились. Тип памяти или компонентов хранения также исторически изменились. [6] Например, иерархия памяти процессора Intel Haswell Mobile [7] около 2013 года выглядит следующим образом:

Нижние уровни иерархии – от дисков вниз – также известны как многоуровневое хранилище . Формальное различие между онлайн, околосетевым и офлайн хранением следующее: [12]

Например, постоянно включенные вращающиеся диски находятся в режиме онлайн, в то время как вращающиеся диски, которые вращаются вниз, такие как массив неактивных дисков ( MAID ), находятся в режиме ближнего действия. Съемные носители, такие как картриджи с лентой, которые могут быть автоматически загружены, как в ленточной библиотеке , находятся в режиме ближнего действия, в то время как картриджи, которые должны быть загружены вручную, находятся в режиме оффлайн.

Большинство современных ЦП настолько быстры, что для большинства программных рабочих нагрузок узким местом является локальность ссылок на доступ к памяти и эффективность кэширования и передачи памяти между различными уровнями иерархии [ требуется ссылка ] . В результате ЦП проводит большую часть своего времени в режиме ожидания, ожидая завершения ввода-вывода памяти. Иногда это называют стоимостью пространства , поскольку более крупный объект памяти с большей вероятностью переполнит небольшой/быстрый уровень и потребует использования большего/более медленного уровня. Результирующая нагрузка на использование памяти известна как давление (соответственно давление регистра , давление кэша и давление (основной) памяти ). Термины для данных, отсутствующих на более высоком уровне и требующих извлечения с более низкого уровня, соответственно: пролив регистра (из-за давления регистра : регистр в кэш), промах кэша (кэш в основную память) и (жесткая) ошибка страницы (основная память на диск).

Современные языки программирования в основном предполагают два уровня памяти, основную память и дисковое хранилище, хотя в языке ассемблера и встроенных ассемблерах в таких языках, как C , к регистрам можно обращаться напрямую. Для оптимального использования иерархии памяти требуется сотрудничество программистов, оборудования и компиляторов (а также базовая поддержка со стороны операционной системы):

Многие программисты предполагают один уровень памяти. Это работает нормально, пока приложение не упрется в стену производительности. Затем иерархия памяти будет оценена во время рефакторинга кода .

Смотрите также

Ссылки

  1. ^ ab Toy, Wing; Zee, Benjamin (1986). Архитектура компьютерного оборудования/программного обеспечения. Prentice Hall. стр. 30. ISBN 0-13-163502-6.
  2. ^ Написание-объединение
  3. ^ "Иерархия памяти". Unitity Semiconductor Corporation. Архивировано из оригинала 5 августа 2009 года . Получено 16 сентября 2009 года .
  4. ^ Падрейг Брэди. «Многоядерный» . Проверено 16 сентября 2009 г.
  5. ^ abc van der Pas, Ruud (2002). "Иерархия памяти в системах на основе кэша" (PDF) . Санта-Клара, Калифорния: Sun Microsystems : 26. 817-0742-10. {{cite journal}}: Цитировать журнал требует |journal=( помощь )
  6. ^ «Память и хранение — Хронология компьютерной истории — Музей компьютерной истории». www.computerhistory.org .
  7. ^ Крозерс, Брук. «Анализ топовой графики Intel в 15-дюймовом MacBook Pro от Apple — CNET». News.cnet.com . Получено 31 июля 2014 г.
  8. ^ "Анализ архитектуры Intel Haswell: создание нового ПК и нового Intel". AnandTech . Получено 31 июля 2014 г.
  9. ^ abcde "SiSoftware Zone". Sisoftware.co.uk. Архивировано из оригинала 2014-09-13 . Получено 2014-07-31 .
  10. ^ "Обзор SSD-накопителя Samsung 960 Pro M.2 NVMe". storagereview.com. 20 октября 2016 г. Получено 13 апреля 2017 г.
  11. ^ "Ultrium - LTO Technology - Ultrium GenerationsLTO". Lto.org. Архивировано из оригинала 2011-07-27 . Получено 2014-07-31 .
  12. ^ Пирсон, Тони (2010). «Правильное использование термина Nearline». IBM Developerworks, Inside System Storage . Архивировано из оригинала 2018-11-27 . Получено 2015-08-16 .