Иерархия памяти
памяти компьютера и хранения данных компьютера Типы |
---|
Неустойчивый |
Энергонезависимый |
В компьютерной организации иерархия памяти разделяет компьютерную память на иерархию, основанную на времени отклика . Поскольку время отклика, сложность и емкость взаимосвязаны, уровни также можно различать по производительности и технологиям управления. [1] Иерархия памяти влияет на производительность при проектировании компьютерной архитектуры, прогнозировании алгоритмов и программирования конструкциях нижнего уровня, включающих локальность ссылок .
Проектирование для обеспечения высокой производительности требует учета ограничений иерархии памяти, т. е. размера и возможностей каждого компонента. Каждый из различных компонентов можно рассматривать как часть иерархии памяти ( m 1 , m 2 , ..., m n ) , в которой каждый член m i обычно меньше и быстрее, чем следующий по величине член m i +1 из иерархия. Чтобы ограничить ожидание более высокими уровнями, более низкий уровень в ответ заполнит буфер и затем подаст сигнал об активации передачи.
Существует четыре основных уровня хранения. [1]
- Внутренний — процессора регистры и кэш .
- системы Основное – оперативная память и карты контроллера.
- Оперативное запоминающее устройство – вторичное хранилище.
- Автономное массовое хранение – третичное и автономное хранение.
Это общая иерархическая структура памяти. Многие другие структуры полезны. Например, алгоритм подкачки можно рассматривать как уровень виртуальной памяти при проектировании компьютерной архитектуры , и можно включить уровень ближайшего хранилища между онлайновым и автономным хранилищем.
Свойства технологий в иерархии памяти
[ редактировать ]- Увеличение сложности замедляет иерархию памяти . [2]
- Технология памяти CMOx расширяет пространство флэш-памяти в иерархии памяти. [3]
- Один из основных способов повышения производительности системы — свести к минимуму глубину иерархии памяти, которую необходимо заходить для манипулирования данными. [4]
- Задержка и пропускная способность — это две метрики, связанные с кешами. Ни один из них не является однородным, а специфичен для определенного компонента иерархии памяти. [5]
- Предсказать, где в иерархии памяти будут находиться данные, сложно. [5]
- ... местоположение в иерархии памяти определяет время, необходимое для выполнения предварительной выборки. [5]
Примеры
[ редактировать ]Количество уровней в иерархии памяти и производительность на каждом уровне со временем увеличились. Тип памяти или компонентов хранения также исторически меняется. [6] Например, иерархия памяти Intel Haswell Mobile [7] процессор примерно 2013 года:
- Регистры процессора – максимально быстрый доступ (обычно 1 цикл процессора). Размер несколько тысяч байт
- Кэш
- уровня 0 (L0) Кэш микроопераций — 6144 байта (6 КиБ). [ нужна ссылка ] [ оригинальное исследование ] ) [8] по размеру
- уровня 1 (L1) Кэш инструкций – 128 КиБ [ нужна ссылка ] [ оригинальное исследование ] по размеру
- Кэш данных уровня 1 (L1) – 128 КиБ [ нужна ссылка ] [ оригинальное исследование ] по размеру. Лучшая скорость доступа — около 700 ГБ /с. [9]
- Уровень 2 (L2) Инструкция и данные (совместно используемые) – 1 МБ [ нужна ссылка ] [ оригинальное исследование ] по размеру. Лучшая скорость доступа — около 200 ГБ/с. [9]
- Общий кэш уровня 3 (L3) – 6 МБ [ нужна ссылка ] [ оригинальное исследование ] по размеру. Лучшая скорость доступа — около 100 ГБ/с. [9]
- Общий кэш уровня 4 (L4) — 128 МБ. [ нужна ссылка ] [ оригинальное исследование ] по размеру. Лучшая скорость доступа — около 40 ГБ/с. [9]
- Основная память ( Основное хранилище ) – ГиБ [ нужна ссылка ] [ оригинальное исследование ] по размеру. Лучшая скорость доступа составляет около 10 ГБ/с. [9] В случае машины NUMA время доступа может быть неодинаковым.
- Дисковое хранилище ( Вторичное хранилище ) — размер в терабайтах . По состоянию на 2017 год лучшая скорость доступа с потребительского твердотельного накопителя составляет около 2000 МБ/с. [10]
- Рядом с хранилищем ( третичное хранилище до эксабайт ) — размер . По состоянию на 2013 год лучшая скорость доступа составляет около 160 МБ/с. [11]
- Автономное хранилище
Нижние уровни иерархии — от дисков вниз — также известны как многоуровневое хранилище . Формальное различие между онлайновым, ближним и автономным хранилищем заключается в следующем: [12]
- Онлайн-хранилище сразу же доступно для ввода-вывода.
- Оперативное хранилище недоступно сразу, но его можно быстро организовать в режиме онлайн без вмешательства человека.
- Автономное хранилище недоступно сразу, и для его подключения к сети требуется некоторое вмешательство человека.
Например, постоянно включенные вращающиеся диски находятся в сети, а вращающиеся диски с замедленным вращением, такие как массивный массив простаивающих дисков ( MAID ), находятся в непосредственной близости. Съемные носители, такие как ленточные картриджи, которые можно загружать автоматически, например, в ленточной библиотеке , находятся в режиме «близко к сети», а картриджи, которые необходимо загружать вручную, — в автономном режиме.
Большинство современных процессоров настолько быстры, что для большинства программных рабочих нагрузок узким местом является локальность обращений к памяти и эффективность кэширования и передачи памяти между различными уровнями иерархии. [ нужна ссылка ] . В результате процессор большую часть времени простаивает, ожидая завершения ввода-вывода в память. Иногда это называют затратами пространства , поскольку более крупный объект памяти с большей вероятностью переполнит маленький/быстрый уровень и потребует использования большего/более медленного уровня. Результирующая нагрузка на использование памяти известна как давление (соответственно давление на регистры , давление на кэш и давление (основной) памяти ). Термины, обозначающие отсутствие данных на более высоком уровне и необходимость их извлечения с более низкого уровня, соответственно: утечка регистра (из-за давления на регистр : регистр в кэш), промах в кэше (кэш в основную память) и (жесткая) ошибка страницы. (основная память на диск).
Современные языки программирования в основном предполагают два уровня памяти: основную память и дисковое хранилище, хотя в языке ассемблера и встроенных ассемблерах таких языков, как C , к регистрам можно получить прямой доступ. Для получения оптимальных преимуществ иерархии памяти требуется сотрудничество программистов, оборудования и компиляторов (а также базовая поддержка со стороны операционной системы):
- Программисты отвечают за перемещение данных между диском и памятью посредством файлового ввода-вывода.
- Аппаратное обеспечение отвечает за перемещение данных между памятью и кэшами.
- Оптимизирующие компиляторы отвечают за генерацию кода, который при выполнении заставит оборудование эффективно использовать кеши и регистры.
Многие программисты предполагают один уровень памяти. Это работает нормально, пока приложение не достигнет предела производительности. Затем иерархия памяти будет оцениваться во время рефакторинга кода .
См. также
[ редактировать ]- Иерархия кэша
- Использование пространственной и временной локальности: иерархическая память
- Буфер против кеша
- Иерархия кэша в современном процессоре
- Стена памяти
- Память компьютера
- Иерархическое управление хранилищем
- Облачное хранилище
- Шаблон доступа к памяти
- Алгоритм избегания общения
Ссылки
[ редактировать ]- ^ Перейти обратно: а б Игрушка, Крыло; Зи, Бенджамин (1986). Архитектура компьютерного аппаратного/программного обеспечения . Прентис Холл. п. 30 . ISBN 0-13-163502-6 .
- ^ Объединение записи
- ^ «Иерархия памяти» . Корпорация Unity Semiconductor. Архивировано из оригинала 5 августа 2009 года . Проверено 16 сентября 2009 г.
- ^ Падрейг Брэйди. «Многоядерный» . Проверено 16 сентября 2009 г.
- ^ Перейти обратно: а б с ван дер Пас, Рууд (2002). «Иерархия памяти в системах на основе кэша» (PDF) . Санта-Клара, Калифорния: Sun Microsystems : 26. 817-0742-10.
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - ^ «Память и хранилище — Хронология истории компьютеров — Музей истории компьютеров» . www.computerhistory.org .
- ^ Кротерс, Брук. «Анализ лучшей графики Intel в 15-дюймовом MacBook Pro от Apple — CNET» . News.cnet.com . Проверено 31 июля 2014 г.
- ^ «Анализ архитектуры Intel Haswell: создание нового ПК и нового Intel» . АнандТех . Проверено 31 июля 2014 г.
- ^ Перейти обратно: а б с д и «Зона SiSoftware» . Sisoftware.co.uk. Архивировано из оригинала 13 сентября 2014 г. Проверено 31 июля 2014 г.
- ^ «Обзор твердотельного накопителя Samsung 960 Pro M.2 NVMe» . Storagereview.com. 20 октября 2016 г. Проверено 13 апреля 2017 г.
- ^ «Ультриум — Технология LTO — Ultrium GenerationsLTO» . Lto.org. Архивировано из оригинала 27 июля 2011 г. Проверено 31 июля 2014 г.
- ^ Пирсон, Тони (2010). «Правильное использование термина Nearline» . IBM Developerworks, Внутреннее хранилище системы . Архивировано из оригинала 27 ноября 2018 г. Проверено 16 августа 2015 г.