Оперативная память

Оперативная память

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

Оперативная память, что это?

Оперативной памятью называют элемент компьютерной системы, отвечающий за временное хранение программного кода при работе с операционной системой и установленными приложениями. Быстродействие всей системы зависит от объёма оперативной памяти. Чем её больше, тем быстрее функционирует программная часть вашего устройства. Тем больше тяжёлых (и не очень) приложений вы можете запускать единовременно.

Оперативная память — из глубин времен до наших дней:

Оперативная память персональных компьютеров сегодня, как и десять лет тому назад, строится на базе относительно недорогой динамической памяти — DRAM (Dynamic Random Access Memory). Множество поколений интерфейсной логики, соединяющей ядро памяти с «внешним миром», сменилось за это время. Эволюция носила ярко выраженный преемственный характер — каждое новое поколение памяти практически полностью наследовало архитектуру предыдущего, включая, в том числе, и свойственные ему ограничения. Ядро же памяти (за исключением совершенствования проектных норм таких, например, как степень интеграции) и вовсе не претерпевало никаких принципиальных изменений! Даже «революционный» Rambus Direct RDRAM ничего подлинного революционного в себе не содержит и хорошо вписывается в общее «генеалогическое» древо развития памяти.

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

Эволюция динамической памяти.

В микросхемах памяти, выпускаемых вплоть до середины девяностых, все три задержки (RAS to CAS Delay, CAS Delay и RAS precharge) в сумме составляли порядка 200 нс., что соответствовало двум тактам в 10 мегагерцовой системе и, соответственно, двенадцати — в 60 мегагерцовой. С появлением Intel Pentium 60 (1993 год) и Intel 486DX4 100 (1994 год) возникла потребность в совершенствовании динамической памяти — прежнее быстродействие уже никого не устраивало.

FPM DRAM (Fast Page Mode DRAM) быстрая страничная память

Первой ласточкой стала FPM-DRAM — Fast-Page Mode DRAM (Память быстрого страничного режима), разработанная в 1995 году. Основным отличием от памяти предыдущего поколения стала поддержка сокращенных адресов. Если очередная запрашиваемая ячейка находится в той же самой строке, что и предыдущая, ее адрес однозначно определяется одним лишь номером столбца и передача номера строки уже не требуется. За счет чего это достигается? Обратимся к диаграмме, изображенной на рис.4. Смотрите, в то время как при работе с обычной DRAM (верхняя диаграмма) после считывания данных сигнал RAS дезактивируется, подготавливая микросхему к новому циклу обмена, контроллер FPM-DRAM удерживает RAS в низком состоянии, избавляясь от повторной пересылки номера строки.

При последовательном чтении ячеек памяти, (равно как и обработке компактных одно-двух килобайтовых структур данных), время доступа сокращается на 40%, а то и больше, ведь обрабатываемая строка находится во внутреннем буфере микросхемы, и обращаться к матрице памяти нет никакой необходимости!

Правда, хаотичное обращение к памяти, равно как и перекрестные запросы ячеек из различных страниц, со всей очевидностью не могут воспользоваться преимуществами передачи сокращенных адресов и работают с FPM-DRAM в режиме обычной DRAM. Если очередная запрашиваемая ячейка лежит вне текущей (так называемой, открытой) строки, контроллер вынужден дезактивировать RAS, выдержать паузу RAS precharge на перезарядку микросхемы, передать номер строки, выдержать паузу RAS to CAS delay и лишь затем он сможет приступить к передаче номера столбца.

Ситуация, когда запрашиваемая ячейка находится в открытой строке, называется «попаданием на страницу» (Page Hit), в противном случае говорят, что произошел промах (Page Miss). Поскольку, промах облагается штрафными задержками, критические к быстродействию модули должны разрабатываться с учетом особенностей архитектуры FPM-DRAM, так что абстрагироваться от ее устройства уже не получается.

Возникла и другая проблема: непостоянство времени доступа затрудняет измерение производительности микросхем памяти и сравнение их скоростных показателей друг с другом. В худшем случае обращение к ячейке составляет RAS to CAS Delay + CAS Delay + RAS precharge нс., а в лучшем: CAS Delay нс. Хаотичное, но не слишком интенсивное обращение к памяти (так, чтобы она успевала перезарядиться) требует не более RAS to CAS Delay + CAS Delay нс.

Поскольку, величины RAS to CAS Delay, CAS Delay и RAS precharge непосредственно не связаны друг с другом и в принципе могут принимать любые значения, достоверная оценка производительность микросхемы требует для своего выражения как минимум трех чисел. Однако производители микросхем в стремлении приукрасить реальные показатели, проводят только два: RAS to CAS Delay + CAS Delay и CAS Delay. Первое (называемое так же «временем [полного] доступа») характеризует время доступа к произвольной ячейке, а второе (называемое так же «временем рабочего цикла») — время доступа к последующим ячейкам уже открытой строки. Время, необходимое для регенерации микросхемы (т.е. RAS precharge) из полного времени доступа исключено. (Вообще-то, в технической документации, кстати, свободно доступной по Интернету, приводятся все значения и тайминги, так что никакого произвола в конечном счете нет).

Формула памяти

К середине девяностых среднее значение RAS to CAS Delay составляло порядка 30 нс., CAS Delay — 40 нс., а RAS precharge — менее 30 нс. (наносекунд). Таким образом, при частоте системной шины в 60 МГц (т.е. ~17 нс.) на открытие и доступ к первой ячейки страницы уходило около 6 тактов, а на доступ к остальным ячейкам открытой страницы — около 3 тактов. Схематически это записывается как 6-3-x-x и называется формулой памяти.

Формула памяти упрощает сравнение различных микросхем друг с другом, однако для сравнения необходимо знать преобладающий тип обращений к памяти: последовательный или хаотичный. Например, как узнать, что лучше: 5-4-x-x или 6-3-x-x? В данной постановке вопрос вообще лишен смысла. Лучше для чего? Для потоковых алгоритмов с последовательной обработкой данных, бесспорно, предпочтительнее последний тип памяти, в противном случае сравнение бессмысленно, т.к. чтение двух несмежных ячеек займет не 5-5-х-х и, соответственно, 6-6-х-х тактов, а 5+RAS precharge-5+RAS precharge-x-x и 6+RAS prechange-6+RAS prechange-x-x. Поскольку время регенерации обоих микросхем не обязательно должно совпадать, вполне может сложиться так, что микросхема 6-3-x-x окажется быстрее и для последовательного, и для хаотичного доступа. Поэтому, практическое значение имеет сравнение лишь вторых цифр — времени рабочего цикла. Совершенствуя ядро памяти, производители сократили его сначала до 35, а затем и до 30 нс., достигнув практически семикратного превосходства над микросхемами прошлого поколения.

EDO-DRAM (Extended Data Out) память с усовершенствованным выходом

Между тем тактовые частоты микропроцессоров не стояли на месте, а стремительно росли, вплотную приближаясь к рубежу в 200 МГц. Рынок требовал качественного нового решения, а не изнуряющей борьбы за каждую наносекунду. Инженеров вновь отправили к чертежным доскам, где (году эдак в 1996) их осенила очередная идея. Если оснастить микросхему специальным триггером-защелкой, удерживающим линии данных после исчезновения сигнала CAS, станет возможным дезактивировать CAS до окончания чтения данных, подготавливая в это время микросхему к приему номера следующего столбца.

Взгляните на диаграмму рис. 4: видите, у FPM низкое состояние CAS удерживается до окончания считывания данных, затем CAS дезактивируется, выдерживается небольшая пауза на перезарядку внутренних цепей, и только после этого на адресную шину подается номер колонки следующей ячейки. В новом типе памяти, получившем название EDO-DRAM (Extend Data Output), напротив, CAS дезактивируется в процессе чтения данных параллельно с перезарядкой внутренних цепей, благодаря чему номер следующего столбца может подаваться до завершения считывания линий данных. Продолжительность рабочего цикла EDO-DRAM (в зависимости от качества микросхемы) составляла 30, 25 и 20 нс., что соответствовало всего двум тактам в 66 МГц системе. Совершенствование производственных технологий сократило и полное время доступа. На частоте 66 МГц формула лучших EDO-микросхем выглядела так: 5-2-x-x. Простой расчет позволяет установить, что пиковый прирост производительности (в сравнении с FPM-DRAM) составляет около 30%, однако, во многих компьютерных журналах тех лет фигурировала совершенно немыслимая цифра 50%, — якобы настолько увеличивалась скорость компьютера при переходе с FPM на EDO. Это могло быть лишь при сравнении худшей FMP-DRAM с самой «крутой» EDO-памятью, т.е. фактически сравнивались не технологии, а старые и новые микросхемы.

BEDO (Burst EDO) — пакетная EDO RAM

Двукратное увеличение производительности было достигнуто лишь в BEDO-DRAM (Burst EDO). Добавив в микросхему генератор номера столбца, конструкторы ликвидировали задержку CAS Delay, сократив время цикла до 15 нс. После обращения к произвольной ячейке микросхема BEDO автоматически, без указаний со стороны контроллера, увеличивает номер столбца на единицу, не требуя его явной передачи. По причине ограниченной разрядности адресного счетчика (конструкторы отвели под него всего лишь два бита) максимальная длина пакета не могла превышать четырех ячеек (22=4).

Забегая вперед, отметим, что процессоры Intel 80486 и Pentium в силу пакетного режима обмена с памятью никогда не обрабатывают менее четырех смежных ячеек за раз. Поэтому, независимо от порядка обращения к данным, BEDO всегда работает на максимально возможной скорости и для частоты 66 Мгц ее формула выглядит так: 5-1-1-1, что на ~40% быстрее EDO-DRAM!

Все же, несмотря на свои скоростные показатели, BEDO оказалась не конкурентоспособной и не получила практически никакого распространения. Просчет состоял в том, что BEDO, как и все ее предшественники, оставалась асинхронной памятью. Это накладывало жесткие ограничения на максимально достижимую тактовую частоту, ограниченную 60 — 66 (75) мегагерцами. Действительно, пусть время рабочего цикла составляет 15 нс. (1 такт в 66 MHz системе). Однако, поскольку «часы» контроллера памяти и самой микросхемы памяти не синхронизованы, нет никаких гарантий, что начало рабочего цикла микросхемы памяти совпадет с началом такового импульса контроллера, вследствие чего минимальное время ожидания составляет два такта. Вернее, если быть совсем точным, рабочий цикл микросхемы памяти никогда не совпадает с началом тактового импульса. Несколько наносекунд уходит на формирование контроллером управляющего сигнала RAS или CAS, за счет чего он уже не совпадет с началом тактирующего импульса. Еще несколько наносекунд требуется для стабилизации сигнала и «осмысления» его микросхемой, причем, сколько именно времени потребуется заранее определить невозможно, т.к. на результат влияет и температура, и длина проводников, и помехи на линии, и: еще миллион факторов!

SDRAM (Synchronous DRAM) — синхронная DRAM

Появление микропроцессоров с шинами на 100 MHz привело к радикальному пересмотру механизма управления памятью, и подтолкнуло конструкторов к созданию синхронной динамической памяти — SDRAM (Synchronous-DRAM). Как и следует из ее названия, микросхемы SDRAM памяти работают синхронно с контроллером, что гарантирует завершение цикла в строго заданный срок. (Помните, «как хочешь, крутись, теща, но что бы к трем часам как штык была готова»). Кроме того, номера строк и столбцов подаются одновременно, с таким расчетом, чтобы к приходу следующего тактового импульса сигналы уже успели стабилизироваться и были готовы к считыванию.

Так же, в SDRAM реализован усовершенствованный пакетный режим обмена. Контроллер может запросить как одну, так и несколько последовательных ячеек памяти, а при желании — всю строку целиком! Это стало возможным благодаря использованию полноразрядного адресного счетчика уже не ограниченного, как в BEDO, двумя битами.

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

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

Наконец, разрядность линий данных увеличилась с 32 до 64 бит, что еще вдвое увеличило ее производительность!

Формула чтения произвольной ячейки из закрытой строки для SDRAM обычно выглядит так: 5-1-x-x, а открытой так: 3-1-х-х.

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

DDR SDRAM, SDRAM II (Double Data Rate SDRAM)

SDRAM с удвоенной скоростью передачи данных

Дальнее развитие синхронной памяти привело к появлению DDR-SDRAM — Double Data Rate SDRAM (SDRAM удвоенной скорости передачи данных). Удвоение скорости достигается за счет передачи данных и по фронту, и по спаду тактового импульса (в SDRAM передача данных осуществляется только по фронту). Благодаря этому эффективная частота увеличивается в два раза — 100 MHz DDR-SDRAM по своей производительности эквивалента 200 MHz SDRAM. Правда, по маркетинговым соображениям, производители DDR-микросхем стали маркировать их не тактовой /* рабочей */ частой, а максимально достижимой пропускной способностью, измеряемой в мегабайтах в секунду. Т.е. DDR-1600 работает вовсе не 1.6 GHz (что пока является недостижимым идеалом), а всего лишь на 100 MHz. Соответственно, DDR 2100 работает на частоте 133 MHz.

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

RDRAM (Rambus DRAM) — Rambus-память

С DDR-SDRAM жесточайше конкурирует Direct RDRAM, разработанная компанией Rambus. Вопреки распространенному мнению, ее архитектура довольно прозаична и не блещет новизной. Основных отличий от памяти предыдущих поколений всего три:

  • увеличение тактовой частоты за счет сокращения разрядности шины,
  • одновременная передача номеров строки и столба ячейки,
  • увеличение количества банков для усиления параллелизма.

А теперь обо всем этом подробнее. Повышение тактовой частоты вызывает резкое усиление всевозможных помех и в первую очередь электромагнитной интерференции, интенсивность которой в общем случае пропорциональна квадрату частоты, а на частотах свыше 350 мегагерц вообще приближается к кубической. Это обстоятельство налагает чрезвычайно жесткие ограничения на топологию и качество изготовления печатных плат модулей микросхемы, что значительно усложняет технологию производства и себестоимость памяти. С другой стороны, уровень помех можно значительно понизить, если сократить количество проводников, т.е. уменьшить разрядность микросхемы. Именно по такому пути компания Rambus и пошла, компенсировав увеличение частоты до 400 MHz (с учетом технологии DDR эффективная частота составляет 800 MHz) уменьшением разрядности шины данных до 16 бит (плюс два бита на ECC). Таким образом, Direct RDRAM в четыре раза обгоняет DDR-1600 по частоте, но во столько же раз отстает от нее в разрядности! А от DDR 2100, Direct RDRAM даже отстает, притом, что себестоимость DDR заметно дешевле!

Второе (по списку) преимущество RDRAM — одновременная передача номеров строки и столбца ячейки — при ближайшем рассмотрении оказывается вовсе не преимуществом, а фичей — т.е. конструктивной особенностью. Это не уменьшает латентности доступа к произвольной ячейке (т.е. интервалом времени между подачей адреса и получения данных), т.к. она, латентность, в большей степени определяется скоростью ядра, а RDRAM функционирует на старом ядре. Из спецификации RDRAM следует, что время доступа составляет 38,75 нс. (для сравнения время доступа 100 MHz SDRAM составляет 40 нс.). Ну, и стоило бы огород городить?

Стоило! Большое количество банков позволяет (теоретически) достичь идеальной конвейеризации запросов к памяти, — несмотря на то, что данные поступают на шину лишь спустя 40 нс. после подачи запроса (что соответствует 320 тактам в 800 MHz системе), сам поток данных непрерывен.

Стоило?! Для потоковых алгоритмов последовательной обработки памяти это, допустим, хорошо, но во всех остальных случаях RDRAM не покажет никаких преимуществ перед DDR-SDRAM, а то и обычной SDRAM, работающей на скромной частоте в 100 MHz. К тому же (как будет показано ниже), «солидный» объем кэш-памяти современных процессоров позволяет обрабатывать подавляющее большинство запросов локально, вообще не обращаясь к основной памяти или на худой конец, отложить это обращение до «лучших времен». Производительность памяти реально ощущается лишь при обработке гигантских объемов данных, например редактировании изображений полиграфического качества в PhotoShop.

Таким образом, использование RDRAM в домашних и офисных компьютеров, ничем, кроме желания показать свою «крутость», не оправдано. Для высокопроизводительных рабочих станций лучший выбор — DDR-SDRAM, не уступающей RDRAM в производительности, но значительно выигрывающей у последней в себестоимости.

В этом свете становится не очень понятно стремление компании Intel к продвижению Rambus’а на рынке. Еще раз обращу внимание читателя: ничего революционного Rambus в себе не несет. Чрезвычайно сложная и требовательна к качеству производства интерфейсная обвязка, обеспечивает высокую тактовую частоту, но не производительность! Соотношение 400×2 MHz на 16 бит оптимальным соотношением категорически не является, уже хотя бы потому, что DDR-SDRAM без особых ухищрений тянет 133×2 MHz на 64 бит. Причем ее производители в ближайшем будущем планируют взять барьер в 200×4 MHz на 128 бит, что увеличит пропускную способность до 12,8 Гбайт/с., что в восемь раз превосходит пропускную способность Direct RDRAM при меньшей себестоимости и аппаратной сложности.

Не стоит, однако, бросаться и в другую крайность — считать Rambus «кривой», «идиотской» памятью. Отнюдь! Инженерный опыт, приобретенный в процессе создания этой, не побоюсь сказать, чрезвычайно высокотехнологичной памяти, несомненно, найдет себе применение в дальнейших разработках. Взять хотя бы машину Бэббиджа. Согласитесь, несмотря на передовые идеи, ее реальное воплощение проигрывало по всем позициям даже конторским счетам. Аналогично и с Direct RDRAM. Достичь пропускной способности в 1,6 Гбайт/с. можно и более прозаическими путями…

Топ ОЗУ на сегодняшний день:

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

Для стримеров и пользователей, нацеленных на многозадачность, ОЗУ играет одну из наиболее важных ролей в ПК. В этой статье я покажу лучшие модули оперативной памяти, которые дадут вам максимальную производительность. Ниже представлены оперативная память от крупных производителей, таких как Corsair, G.Skill и Ballistix.

Corsair Dominator Platinum RGB 32GB DDR4-3200MHz

Лучшая в своем классе по производительности с инновационной технологией подсветки RGB

Скорость: DDR4-3200MHz | Тайминги: 16-18-18-36 | Латентность: 16 | Напряжение:: 1.35V | Модули:: 2x16GB

Плюсы:
— Ультра-яркие светодиоды Capellix RGB
— Усовершенствованная программа iCUE
— Теплораспределители Dominator DHX

Минусы:
— Высота модуля памяти может вызвать проблемы с компактностью

G.Skill Trident Z RGB 32GB DDR4-3600MHz

Лучшая оперативная память для игр с материнской платой AMD

Скорость: DDR4-3600MHz | Тайминги: 18-22-22-42 | Латентность: 18 | Напряжение:: 1.35V | Модули:: 2x16GB

Плюсы:
— Высокоскоростной и объемный набор с RGB-подсветкой
— Оптимизирована для сборок с процессором AMD

— Присутствует программное обеспечение для управления RGB

Минусы:
— Толстоватый радиатор

Ballistix Tactical Tracer RGB 32GB DDR4-2666 MHz

Настраиваемая RGB

Скорость: DDR4-2666MHz | Тайминги: 16-18-18-36 | Латентность: 16 | Напряжение:: 1.2V | Модули:: 4x8GB

Плюсы:
— Съемная световая панель с возможностью 3D печати
— Надежное программное обеспечение RGB

Минусы:
— Программное обеспечение RGB не работает на платформе X99

Добавить комментарий