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