Иерархия памяти - Memory hierarchy

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

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

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

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

  • ВнутреннийРегистры процессора и тайник.
  • Главное - система ОЗУ и карты контроллера.
  • Онлайн-хранилище - Вторичное хранилище.
  • Автономное массовое хранение - третичное и автономное хранение.

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

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

  • Добавление сложности замедляет иерархия памяти.[2]
  • Технология памяти CMOx расширяет пространство Flash в иерархии памяти.[3]
  • Одним из основных способов повышения производительности системы является минимизация того, насколько далеко вниз по иерархии памяти нужно идти, чтобы управлять данными.[4]
  • Задержка и пропускная способность - две метрики, связанные с кешами. Ни один из них не является единообразным, но специфичным для определенного компонента иерархии памяти.[5]
  • Предсказать, где в иерархии памяти находятся данные, сложно.[5]
  • ... расположение в иерархии памяти определяет время, необходимое для выполнения предварительной выборки.[5]

Примеры

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

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

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

  • Онлайн-хранилище сразу же доступно для ввода-вывода.
  • Хранилище Nearline доступно не сразу, но может быть быстро выполнено онлайн без вмешательства человека.
  • Автономное хранилище доступно не сразу, и для его подключения к сети требуется вмешательство человека.

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

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

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

  • Программисты отвечают за перемещение данных между диском и памятью посредством файлового ввода-вывода.
  • Оборудование отвечает за перемещение данных между памятью и кешами.
  • Оптимизация компиляторов несут ответственность за создание кода, который при выполнении заставляет оборудование эффективно использовать кеши и регистры.

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

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

использованная литература

  1. ^ а б Игрушка, Крыло; Зи, Бенджамин (1986). Компьютерное аппаратное обеспечение / Архитектура программного обеспечения. Прентис Холл. п.30. ISBN  0-13-163502-6.
  2. ^ Комбинирование записи
  3. ^ «Иерархия памяти». Unitity Semiconductor Corporation. Архивировано из оригинал 5 августа 2009 г.. Получено 16 сентября 2009.
  4. ^ Падрайг Брэди. «Многоядерный». Получено 16 сентября 2009.
  5. ^ а б c ван дер Пас, Рууд (2002). «Иерархия памяти в системах на основе кэша» (PDF). Санта-Клара, Калифорния: Sun Microsystems: 26. 817-0742-10. Цитировать журнал требует | журнал = (Помогите)
  6. ^ "Память и хранение - Хронология истории компьютеров - Музей истории компьютеров". www.computerhistory.org.
  7. ^ Кротерс, Брук. «Анализ лучшей графики Intel в 15-дюймовом MacBook Pro от Apple - CNET». News.cnet.com. Получено 2014-07-31.
  8. ^ «Анализ архитектуры Intel Haswell: создание нового ПК и нового Intel». АнандТех. Получено 2014-07-31.
  9. ^ а б c d е «Зона SiSoftware». Sisoftware.co.uk. Получено 2014-07-31.
  10. ^ «Обзор твердотельного накопителя Samsung 960 Pro M.2 NVMe». storagereview.com. Получено 2017-04-13.
  11. ^ «Ultrium - LTO Technology - Ultrium GenerationsLTO». Lto.org. Архивировано из оригинал на 2011-07-27. Получено 2014-07-31.
  12. ^ Пирсон, Тони (2010). «Правильное использование термина« Ближайшая линия »». IBM Developerworks, Внутреннее хранилище системы. Архивировано из оригинал на 2018-11-27. Получено 2015-08-16.