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

30 Апр 2018

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

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

Модуль оперативной памяти SODIMM, используемый в ноутбуках
Рис 1. Модуль оперативной памяти SODIMM, используемый в ноутбуках

Итак, 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.

Теги: