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