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

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

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

Модули памяти организованы в виде матрицы, состоящей из отдельных ячеек памяти. С внешним миром модуль «общается» посредством трех шин — адресной (используется для передачи адреса ячейки, к которой производится обращение), данных (позволяет считать/записать выбранные данные) и командной («объясняет» модулю, что именно находится на первых двух шинах в данный момент). Обращение к конкретной ячейке памяти можно условно разбить на несколько этапов:

1.  Вначале на адресную шину подается номер строки и активизируется сигнал RAS (Row Access Strobe — сигнал доступа к строкам памяти) командной шины.

2. Получив сигнал RAS модуль памяти считывает с адресной шины номер строки и сохраняет его во внутреннем регистре.

3. Указанная строка полностью считывается в буферный усилитель.

4. По истечении некоторого времени (определяемого характеристиками модуля памяти) на адресной шине выставляется номер ячейки в выбранной строке (фактически, адрес столбца), после чего активизируется сигнал CAS (Column Access Strobe — сигнал доступа к столбцам памяти). Задержка между сигналами RAS и CAS обозначается как RAS to CAS Delay или tRCD.

5. Получив сигнал CAS, а с ним и номер ячейки, модуль памяти передает содержимое указанной ячейки из буферного усилителя на шину данных. На это, естественно, требуется время, называемое CAS Latency или tCL.

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

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

6. Снятие сигнала CAS говорит о том, все операции чтения/записи закончены.

7. Снятие сигнала RAS указывает, что прекращена работа со строкой данных, находящейся в буферном усилителе. Эта строка записывается обратно в соответствующие ячейки памяти. Время выполнения данной операции, называемое временем предварительного заряда по сигналу RAS, обозначается как RAS Precharge Time или tRP.

8. По окончанию всех предыдущих операций модуль памяти готов к следующему циклу чтения/записи.

Минимальное время, в течение которого активен сигнал RAS, т.е. минимальное время активности строки данных обозначается как Row Active Time или tRAS.

Чтобы «понять», какая команда поступила в данный момент, модулю требуется некоторый временной интервал. Минимальное время декодирования команды обозначается как Command Rate или tCR.

Есть еще одна тонкость. По своей сути ячейки в модуле оперативной памяти представляют собой обычные конденсаторы, а значит, с течением времени им свойственно разряжаться. Чтобы избежать потери данных, содержимое ячеек памяти необходимо через определенный период регенерировать, т.е. считывать находящиеся там значения в буферный усилитель, а затем записывать их обратно. При обращении к ячейке модуля памяти регенерация выбранной строки происходит по ходу дела, сама собой (действительно, на третьем этапе строка полностью считывается в буферный усилитель, а на седьмом — также полностью записывается обратно). Если же обращения к модулю памяти нет, то регенерация выполняется установкой сигнала CAS, а затем RAS (для памяти типа FPM или EDO) или в автоматическом режиме — по внутреннему счетчику (для памяти SDRAM и более поздних типов). Естественно, считывание и запись ячеек при регенерации происходят целыми строками (так быстрее).

Чтобы обеспечить возможность одновременной работы с разными участками модуля памяти, повысив таким образом быстродействие, используется архитектура с несколькими логическими банками (массивами памяти), способными работать независимо. Например, данные можно считывать из первого банка и одновременно записывать во второй. В зависимости от типа модулей количество банков колеблется от одного (старая память типов FPM или EDO) до восьми (современные модули DDR3 SDRAM).

Модули SDRAM объемом, не превышающим 32 Мбайта, в большинстве случаев являются двухбанковыми, свыше этого объема — четырехбанковыми. Четыре логических банка характерны и для большинства модулей DDR SDRAM и DDR2 SDRAM. Для современных модулей DDR3 SDRAM, как уже говорилось, типичным является наличие восьми логических банков.

Помимо перечисленных выше пяти основных задержек при обращении к ячейке памяти иногда можно встретить упоминание и более «экзотических» характеристик. Перечислим их. Время полного доступа к строке данных обозначается как Row Cycle Time или tRC, оно равно сумме Row Active Time и RAS Precharge Time. Минимальное время между двумя циклами регенерации (либо между началом цикла регенерации и следующем чтением строки в буферный усилитель) обозначается как Row Refresh Cycle Time или tRFC. Минимальное время между окончанием передачи данных в буферный усилитель и снятием сигнала RAS (т.е. началом записи содержимого буферного усилителя в ячейки памяти) при выполнении операции записи называется Write Recovery Time или tWR. Минимальное время между окончанием операции чтения и подачей команды на запись именуется как Read To Write Delay или tRWT (иногда встречается обозначение tRTW). Схожий параметр, отвечающий за минимальное время между окончанием операции записи и подачей команды на чтение, именуется как Write To Read Delay или tWRT (иногда встречается обозначение tWTR). Помимо общей задержки CAS Latency иногда отдельно указывается задержка при операции записи в память — Write Latency или tWCL. Минимальное время между двумя сигналами RAS для разных банков памяти называется Row to Row Delay (иногда пишут RAS to RAS Delay) или tRRD.

Теперь несколько слов о параметрах модулей памяти. Устаревшая память типа FPM или EDO, работающая асинхронно, характеризуется временем доступа. Возможные значения — 80, 70 или 60 нс. Чем меньше, тем лучше.

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

Основное преимущество DDR SDRAM — удвоенная, по сравнению с SDRAM скорость обмена данными. Теперь за один такт шины передаются две порции данных, иначе говоря, эффективная частота обмена данными в два раза выше частоты шины памяти.

Аналогичным образом работает и память типа DDR2 SDRAM. Только здесь сделано все, чтобы достичь гораздо более высоких частот, нежели это возможно для обычной DDR SDRAM. Плюс, уменьшено энергопотребление.

Дальнейшее развитие эти идеи получили в памяти типа DDR3 SDRAM, при этом принцип работы остался прежним.

Побочным следствием перехода от SDRAM к DDR SDRAM стал тот факт, что теперь за один цикл чтения или записи передаются данные как минимум двух ячеек, идущих подряд. Для DDR2 SDRAM минимум составляет уже четыре ячейки, а для DDR3 SDRAM — восемь идущих подряд ячеек.

Основной параметр SDRAM, DDR SDRAM, DDR2 SDRAM и DDR3 SDRAM — стандарт памяти (иногда говорят, тип модуля), фактически определяющий частоту, на которой работает данный модуль.

Стандарт памяти (тип модуля)Тактовая частота шины памятиЭффективная частота обмена данными
SDRAM
PC6666 МГц66 МГц
PC100100 МГц100 МГц
PC133133 МГц133 МГц
DDR SDRAM
PC1600 или DDR200100 МГц200 МГц
PC2100 или DDR266133 МГц266 МГц
PC2700 или DDR333166 МГц333 МГц
PC3200 или DDR400200 МГц400 МГц
DDR2 SDRAM
PC2-3200 или DDR2-400200 МГц400 МГц
PC2-4300 или DDR2-533266 МГц533 МГц
PC2-5300 или DDR2-667333 МГц667 МГц
PC2-6400 или DDR2-800400 МГц800 МГц
PC2-8500 или DDR2-1066533 МГц1066 МГц
DDR3 SDRAM
PC3-6400 или DDR3-800400 МГц800 МГц
PC3-8500 или DDR3-1066533 МГц1066 МГц
PC3-10667 или DDR3-1333667 МГц1333 МГц
PC3-12800 или DDR3-1600800 МГц1600 МГц

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

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

Поскольку память RDRAM так и не получила широкого распространения, речь здесь идет только о SDRAM во всех ее разновидностях (SDRAM, DDR SDRAM, DDR2 SDRAM, DDR3 SDRAM).

Первое значение в этом списке — CAS Latency (или, сокращенно, tCL). Это, наверное, самый важный параметр модуля памяти, после его стандарта (иначе говоря, частоты, на которой работает модуль). CAS Latency оказывает весьма большое влияние на общее быстродействие компьютера. О важности этого параметра говорит тот факт, что зачастую в параметрах модуля указываются только его стандарт и величина CAS Latency (например, PC3200, CL2.5).

Второе значение в этой формуле — RAS to CAS Delay (сокращенно tRCD). Этот параметр, конечно, тоже важен, но он оказывает несколько меньшее влияние на общую производительность подсистемы памяти.

И третье значение — RAS Precharge Time (сокращенно tRP).

Во временных характеристиках модуля иногда указываются не три, а четыре или даже пять параметров. В случае четырех значений, первые три традиционно соответствуют CAS Latency, RAS to CAS Delay и RAS Precharge Time, а четвертое — Row Active Time (сокращенно tRAS). Например, это может выглядеть так: 2.5-3-3-7. При пяти значениях к ним добавляется параметр Command Rate (сокращенно tCR). Итого, полная диаграмма модуля памяти может быть представлена как: 2.5-3-3-7-1.

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

BIOS Setup позволяет указать задержки между выдачей тех или иных сигналов при обращении к памяти и ее регенерации, часто можно указать и частоту шины памяти, другие параметры. Так как все более или менее современные модули памяти (SDRAM, RDRAM, DDR SDRAM, DDR2 SDRAM, DDR3 SDRAM) имеют в своем составе микросхему SPD (Serial Presence Detect — интерфейс последовательного детектирования), содержащую информацию о типе модуля и возможных режимах его работы, то эта задача во многом упрощается. Но если вы хотите добиться от компьютера максимальной производительности, многие опции лучше устанавливать самостоятельно, не полагаясь на «автоматику».

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

Раньше, во времена памяти FPM и EDO, при установке задержек ориентировались на время доступа и тип памяти.

Опубликовано 30.11.2008.

Служебная информация:

время выполнения: 0.0067 с;

количество запросов: 3.