Производительность оперативной памяти

Производительность оперативной памяти

Ключевой характеристикой оперативной памяти является ее про­из­во­ди­тель­ность. Цен­т­раль­ный про­цес­сор (CPU) не мо­жет по­лу­чить дан­ные в лю­бой на­пе­ред ука­зан­ный мо­мент вре­ме­ни. Это­му ме­ша­ет при­ро­да DRAM — за­по­ми­на­ющих эле­мен­тов, ис­поль­зу­е­мых в ар­хи­тек­ту­ре пер­со­наль­ных плат­форм. Ячей­ка ди­на­ми­че­ской па­мя­ти со­сто­ит из ключа (тран­зис­то­ра) и сфор­ми­ро­ван­ной в нем самом ем­кос­ти. Если ем­кость за­ря­же­на — ячей­ка хра­нит ло­ги­че­скую «еди­ни­цу», ес­ли раз­ря­же­на — «ноль». Для ана­ли­за ее со­сто­я­ния тре­бу­ет­ся не­ко­то­рое вре­мя. Вспом­ним, что ячей­ки ор­га­ни­зо­ва­ны в мат­ри­цы (бан­ки), на­бор бан­ков упа­ко­ван в один кор­пус за­по­ми­на­ю­щей ми­кро­схе­мы. Не­сколь­ко ми­кро­схем на пе­чат­ной плате с по­зо­ло­ченными кон­так­та­ми со­став­ля­ют мо­дуль па­мя­ти. В на­сто­я­щее вре­мя ис­поль­зу­ют­ся DIMM-мо­ду­ли с раз­ряд­но­стью ши­ны дан­ных, рав­ной 64 би­там.

На печатной плате DIMM-модуля может быть вдвое или вчетверо больше микросхем памяти, чем этого требует ши­на дан­ных. Тогда говорят, что DIMM содержит два или четыре ранка (ранга) памяти. При этом не имеет зна­че­ния, как раз­ме­ща­ют­ся ми­кро­схе­мы за­по­ми­на­ю­щих устройств: установлены они на одной стороне модуля па­мя­ти или на обеих.

Модуль оперативной памяти DIMM в руках у сборщика компьютера


Рис 1. Модуль оперативной памяти DIMM в руках у сборщика компьютера

Итак, CPU общается с RAM благодаря наличию посредника — контроллера оперативной памяти. Вкратце, тех­но­ло­гия доступа к произвольной ячейке динамической памяти (т.е. Random Access) выглядит так (рассмотрим пока толь­ко опе­ра­цию чте­ния, которая заметно проще, чем запись):

  • Сначала нужно вычислить и выставить адрес той строки (Row), которая содержит требуемую ячейку (для простоты будем считать, что у нас весь модуль памяти – это одна запоминающая матрица).
  • Сформировать дополнительный сигнал управления – RAS (Row Address Strobe).
  • Вычислить и выставить адрес той колонки (Column), в которой находится требуемая ячейка.
  • Выдержать паузу, которая в документации называется tRCD (Row Address to Column Address Delay) – она нужна для того, чтобы микросхема памяти имела достаточный запас времени на активацию строки запоминающей матрицы, выбранной в соответствии с поступившим адресом.
  • Сформировать дополнительный сигнал управления – CAS (Column Address Strobe).
  • До начала чтения данных выдержать строго определенное время, которое задается параметром CL (CAS Latency) – одной из самых значимых характеристик производительности памяти.
  • С этого момента доступен первый бит, хранящийся по запрошенному адресу.
  • Изменяя адрес столбца, считываем несколько ячеек одной ранее активированной строки без повторной передачи ее адреса строки, что позволяет несколько увеличить производительность.

Оценка производительности ОЗУ

Если внимательно проанализировать процесс общения CPU с ячейками оперативной памяти, организованными в банки и модули, можно прийти к заключению, что комплексная оценка производительности DRAM определяется двумя параметрами:

  1. пропускной способностью шины данных, к котрой подключен DIMM-модуль;
  2. задержками при доступе к конденсаторным ячейкам памяти, организованным в ряды и столбцы.

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

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

Пропускная способность шины данных — это свойство конкретной компьютерной платформы, на которое мы по­вли­ять не можем, если не принимать во внимание оверклокинг. Единственный шаг в данном направлении — наш выбор той или иной архитектуры. Для уп­рав­ле­ния задержками при работе с ОЗУ пользователю предоставляются бо́льшие возможности, хотя и здесь мно­гое оп­ре­деляется желанием производителя платформы.

Пример управления паузой перед активизацией строки DRAM и временем приведения ее в готовность

Рис 2. Пример управления паузой перед активизацией строки DRAM и временем приведения ее в готовность

Как правило, доступ к установкам производительности DRAM предоставляется пользователям на этапе старта компьютера. В процессе выполнения POST в программе CMOS Setup можно либо доверить BIOS самостоятельно сконфигурировать параметры обмена (Auto Configuration), либо попытаться «выжать максимум» из аппаратных ре­сур­сов. В частности, на представленном выше снимке экрана допускается манипулировать значением па­ра­мет­ра tRCD (здесь он называется Fast RAS# To CAS# Delay).

Пример ручной установки параметра производительности памяти CAS Latency

Рис 3. Пример ручной установки параметра производительности памяти CAS Latency

Этот снимок экрана BIOS показывает нам, как можно выбирать параметр CAS Latency для конкретной материнской платы. Такие возможности сегодня востребованы лишь энтузиастами-экспериментаторами: характеристики мо­ду­ля памяти хранятся в спе­ци­аль­ной микросхеме SPD, распаянной на самом DIMM-модуле. Кроме того, в рас­смат­ри­ва­е­мом примере за­дейст­во­ва­на синхронная память SDRAM, которая к сегодняшнему дню прошла не­про­стой путь эво­лю­ции.

Примечание. Оценка производительности оперативной памяти будет неполной, если мы выпустим из виду та­кой важный момент, как переход с одной запоминающей строки на другую. Известно, что для поддержания сохранности данных выполняется обход ячеек с целью подзарядки конденсаторов, хранящих информацию. Это достигается холостыми циклами перезаписи, на которые тоже нужно время. При смене строки для при­ве­де­ния ее в готовность выполняется процедура RAS Precharge. Время выполнения tRP оценивается несколькими так­тами, что мы и видим на Рис 2. в установках параметра DRAM RAS# Precharge Time.