Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску
Схема иерархии памяти компьютера

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

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

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

  • Внутренний - регистры процессора и кэш .
  • Основное - системная оперативная память и платы контроллера.
  • Онлайн-хранилище - Вторичное хранилище.
  • Автономное массовое хранение - третичное и автономное хранение.

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

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

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

Примеры [ править ]

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

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

  • Регистры процессора - максимально быстрый доступ (обычно 1 цикл ЦП). Несколько тысяч байтов размером
  • Кеш
    • Уровень 0 (L0) Micro операции кэш - 6 KiB [8] в размере
    • Кэш инструкций уровня 1 (L1) - размером 128 КБ
    • Кэш данных уровня 1 (L1) - размером 128 КБайт. Наилучшая скорость доступа составляет около 700 ГиБ / с [9].
    • Уровень 2 (L2) Инструкция и данные (общие) - размером 1 МиБ . Наилучшая скорость доступа составляет около 200 ГиБ / с [9].
    • Уровень 3 (L3) Общий кеш - размер 6 МБ. Наилучшая скорость доступа составляет около 100 ГиБ / с [9].
    • Уровень 4 (L4) Общий кеш - размер 128 Мбайт. Наилучшая скорость доступа составляет около 40 ГиБ / с [9].
  • Основная память ( Primary storage ) - размер в гигабайтах . Наилучшая скорость доступа составляет около 10 ГиБ / с. [9] В случае машины NUMA время доступа может быть неодинаковым.
  • Дисковое хранилище ( вторичное хранилище ) - размером в терабайты . По состоянию на 2017 год наилучшая скорость доступа с потребительского твердотельного накопителя составляет около 2000 МБ / с [10].
  • Непосредственное хранилище ( третичное хранилище ) - размером до эксабайт . По состоянию на 2013 год лучшая скорость доступа составляет около 160 МБ / с [11].
  • Автономное хранилище

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

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

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

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

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

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

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

См. Также [ править ]

  • Иерархия кеша
  • Использование пространственной и временной локальности: иерархическая память
  • Буфер против кеша
  • Иерархия кеша в современном процессоре
  • Стена памяти
  • Память компьютера
  • Иерархическое управление хранилищем
  • Облачное хранилище
  • Шаблон доступа к памяти
  • Алгоритм избегания общения

Ссылки [ править ]

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