Контроллер памяти

Контроллер оперативной памяти — цифровая схема, управляющая потоками данных между вычислительной системой и оперативной памятью. Может представлять собой отдельную микросхему или быть интегрирована в более сложную микросхему, например, в состав северного моста, микропроцессор или систему на кристалле.

Примеры и использование

[править | править код]

Компьютеры, использующие микропроцессоры Intel до 2009 года[1][2] традиционно имели контроллер памяти, встроенный в чипсет (северный мост, MCH), но многие процессоры, такие как DEC/Compaq Alpha 21364, AMD Athlon 64 и Opteron, IBM POWER5, Sun Microsystems UltraSPARC T1 и процессоры Intel Core i7[2] имеют интегрированный контроллер памяти, расположенный на том же кристалле, для уменьшения задержки доступа в память. Хотя интеграция увеличивает производительность системы, происходит привязка микропроцессора к какому-то одному типу памяти, не позволяющая сочетать процессоры и память разных поколений. Для использования новых типов памяти требуется выпуск новых процессоров и изменение их разъёма. Например, после появления DDR2 SDRAM, AMD выпустила процессоры Athlon 64, использовавшие новый сокет Socket AM2.

Интеграция контроллера памяти с процессором не является новой технологией, так, ещё в 1990-х DEC Alpha 21066 и HP PA-7300LC[англ.] использовали встроенные контроллеры для снижения стоимости системы.

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

Также контроллер памяти выполняет периодическое обновление хранимых в DRAM данных[англ.]. Без периодических обновлений чипы памяти DRAM постепенно теряли бы информацию, так как разряжаются токами утечки конденсаторы, хранящие биты. Типичное время надежного хранения информации составляет доли секунды, но не менее 64 миллисекунд (согласно стандартам JEDEC для DDR2 SDRAM и более новым). На более длительных периодах времени информация сохраняется лишь частично. При повышенной температуре (более 85 °C) может потребоваться более частое обновление памяти[4][3].

Кроме этого контроллер памяти может управлять режимами питания чипов памяти[3].

Многоканальная память

[править | править код]

Полностью буферизованная память FB-DIMM

[править | править код]

Примечания

[править | править код]
  1. Чипсет Intel X58 под процессоры микроархитектуры Nehalem Архивная копия от 5 августа 2017 на Wayback Machine, IXBT, 1 декабря 2008 (рус.)
  2. 1 2 Особенности контроллера памяти в процессорах для LGA1366. Дата обращения: 5 августа 2017. Архивировано 6 августа 2017 года.
  3. 1 2 3 Onur Mutlu. Scalable Many-Core Memory Systems Lecture 2, Topic 1: DRAM Basics and DRAM Scaling (англ.). HiPEAC ACACES Summer School (16 июля 2013). Дата обращения: 5 августа 2017. Архивировано 25 марта 2015 года.
  4. Onur Mutlu. Scalable Many-Core Memory Systems Lecture 1, Topic 1: DRAM Basics and DRAM Scaling (англ.). HiPEAC ACACES Summer School (16 июля 2013). Дата обращения: 5 августа 2017. Архивировано 25 марта 2015 года.