stringtranslate.com

Перемежающаяся память

В вычислительной технике чередующаяся память — это конструкция, которая компенсирует относительно низкую скорость динамической памяти с произвольным доступом (DRAM) или основной памяти , равномерно распределяя адреса памяти по банкам памяти . Таким образом, непрерывные операции чтения и записи памяти используют каждый банк памяти по очереди, что приводит к более высокой пропускной способности памяти из-за сокращения ожидания готовности банков памяти к операциям.

Он отличается от многоканальных архитектур памяти , в первую очередь тем, что чередующаяся память не добавляет больше каналов между основной памятью и контроллером памяти . Однако чередование каналов также возможно, например, в процессорах freescale i.MX 6, которые позволяют чередование между двумя каналами. [ необходима цитата ]

Обзор

В чередующейся памяти адреса памяти выделяются каждому банку памяти по очереди. Например, в чередующейся системе с двумя банками памяти (предполагая память с адресацией по словам ), если логический адрес 32 принадлежит банку 0, то логический адрес 33 будет принадлежать банку 1, логический адрес 34 будет принадлежать банку 0 и т. д. Говорят, что чередующаяся память является n-way чередующейся , когда есть n банков и ячейка памяти i находится в банке i mod n .

Пример чередования памяти с 4 банками. Красные банки обновляются и не могут быть использованы.

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

Перемежающаяся DRAM-память

Основная память ( оперативная память , ОЗУ) обычно состоит из набора микросхем памяти DRAM , где несколько микросхем могут быть сгруппированы вместе, чтобы сформировать банк памяти. Затем, с помощью контроллера памяти, который поддерживает чередование, можно расположить эти банки памяти так, чтобы банки памяти были чередованы.

Данные в DRAM хранятся в единицах страниц. Каждый банк DRAM имеет буфер строк, который служит кэшем для доступа к любой странице в банке. Перед тем, как страница в банке DRAM будет прочитана, она сначала загружается в буфер строк . Если страница немедленно считывается из буфера строк (или происходит попадание в буфер строк), она имеет самую короткую задержку доступа к памяти за один цикл памяти. Если это промах буфера строк, который также называется конфликтом буфера строк, он медленнее, поскольку новая страница должна быть загружена в буфер строк до ее чтения. Промахи буфера строк происходят, когда обслуживаются запросы на доступ к разным страницам памяти в одном банке. Конфликт буфера строк вызывает существенную задержку для доступа к памяти. Напротив, доступ к памяти к разным банкам может осуществляться параллельно с высокой пропускной способностью.

Проблема конфликтов буфера строк хорошо изучена и имеет эффективное решение. [1] Размер буфера строк обычно равен размеру страницы памяти, управляемой операционной системой. Конфликты или промахи буфера строк возникают из-за последовательности обращений к разным страницам в одном и том же банке памяти. Исследование [1] показывает, что обычный метод чередования памяти распространяет конфликты отображения адресов на уровне кэша в адресное пространство памяти, вызывая промахи буфера строк в банке памяти. Метод чередования памяти на основе перестановки решил проблему с незначительной стоимостью микроархитектуры. [1] Sun Microsystems быстро внедрила этот метод чередования перестановки в свои продукты. [2] Этот не имеющий патентов метод можно найти во многих коммерческих микропроцессорах, таких как AMD, Intel и NVIDIA , для встраиваемых систем, ноутбуков, настольных компьютеров и корпоративных серверов. [3]

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

Способ адресации памяти не влияет на время доступа к ячейкам памяти, которые уже кэшированы , а влияет только на ячейки памяти, которые необходимо извлечь из DRAM.

История

Ранние исследования в области чередующейся памяти проводились в IBM в 60-х и 70-х годах применительно к компьютеру IBM 7030 Stretch [4] , но разработка продолжалась десятилетиями, улучшая конструкцию, гибкость и производительность для создания современных реализаций.

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

Ссылки

  1. ^ abc Чжао Чжан, Чжичунь Чжу и Сяодун Чжан (2000). Схема чередования страниц на основе перестановок для уменьшения конфликтов строк-буферов и использования локальности данных. MICRO' 33.{{cite conference}}: CS1 maint: несколько имен: список авторов ( ссылка )
  2. ^ «Письмо Sun директору Управления передачи технологий Колледжа Уильяма и Мэри» (PDF) . 15 июля 2005 г.
  3. ^ "Профессор Сяодун Чжан получил награду ACM Microarchitecture Test of Time Award 2020". Кафедра компьютерных наук и инженерии, Инженерный колледж, Университет штата Огайо . 19 января 2021 г.
  4. Марк Смотерман (июль 2010 г.). «IBM Stretch (7030) — агрессивный однопроцессорный параллелизм». clemson.edu . Получено 07.12.2013 .

Внешние ссылки