Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

17 Lectures / Memory / Важные выводы

.doc
Скачиваний:
22
Добавлен:
23.03.2015
Размер:
34.3 Кб
Скачать

Важные выводы

Что такое тайминги? Тайминги – это задержки между отдельными операциями, производимыми контроллером при обращении к памяти. Логически всё пространство памяти представлено как множество ячеек, выстроенных "прямоугольниками", состоящими из определённого количества строк и столбцов. Один такой "прямоугольник" называется страницей, а совокупность страниц называется банком. Для того, чтобы обратиться к ячейке, контроллер должен задать номер банка, номер страницы в нём, номер строки и номер столбца. Кроме того, время тратится на "открытие/закрытие" банка и на саму операцию чтения/записи. На каждое такое действие требуется время, которое и называется таймингом. Некоторые тайминги нам недоступны для настройки, например – время выставления CS# (Crystal Select; по этому сигналу выбирается кристалл (чип) на модуле, с которым будет производиться операция), некоторые – можно менять. Вот те, что обычно доступны: RAS-to-CAS Delay (RCD) – задержка между сигналами RAS# и CAS#. Необходима для того, чтобы было достаточно времени для однозначного определения строки и столбца адреса ячейки. Иными словами, данный параметр характеризует интервал между выставлением на шину контроллером памяти сигналов RAS# и CAS#. RAS# (Row Address Srobe) и CAS# (Column Address Strobe) – сигналы, подтверждающие выставление на шину двух составляющих адреса ячейки – строки и столбца соответственно. CAS Latency (CL) – задержка между командой чтения и доступностью к чтению первого слова. Введена для набора адресными регистрами гарантированно устойчивого уровня сигнала. RAS Precharge (RP) – время повторной выдачи (период накопления заряда, подзаряд) сигнала RAS#, то есть – через какое время контроллер памяти будет способен снова выдать сигнал инициализации адреса строки. Примечание: порядок операций именно таков (RCD-CL-RP), но зачастую тайминги записывают не по порядку, а по "важности" –CL-RCD-RP (или даже CL-RP-RCD). Precharge Delay (или Active Precharge Delay; чаще обозначается как Tras) – время активности строки. То есть – период, в течение которого "закрывается" строка, если следующая требуемая ячейка находится в другой строке. Подробная временнАя диаграмма доступна по адресу: http://www.toms-hardware.ru/howto/20030703...uning-08.html#_ SDRAM Idle Timer (или SDRAM Idle Cycle Limit) – количество тактов, в течение которого страница может оставаться открытой, после чего следует её принудительное закрытие (для доступа к другой странице или операции обновления содержимого). Для произвольных обращений в память бОльшую пользу приносит использование частого закрытия страниц (чем быстрее закроется одна страница, тем быстрее возможен доступ в другую), тогда как для операций "сплошных" чтения-записи выгоднее дольше держать страницу открытой. Burst Length - параметр, который позволяет установить размер предвыборки памяти относительно начального адреса обращения. Чем больше размер предвыборки, тем выше производительность памяти. (Источник информации - Carlsson)

Как разогнать оперативную память? Существуют два способа – увеличить частоту и уменьшить тайминги. Зачастую улучшение одного параметра даётся ценой ухудшения другого, а значит – приходится искать "золотую середину".

Насколько объём памяти влияет на разгон? Сам по себе объём влияет лишь на быстродействие компьютера в целом – чем больше памяти, тем меньше вероятность свопирования (swaping), а значит – задержек. Но при достижении некоторого порога система практически перестаёт пользоваться свопом, то есть увеличение объёма памяти уже не приносит выигрыша в производительности. На разгон больше влияет не общий объём, а количество модулей памяти, количество чипов на них и количество банков. При определённых значениях данных величин контроллер перегружается и начинает работать медленнее или с ошибками. Для решения проблемы ненадёжности контроллера при больших объёмах памяти применяется так называемая Registered память.

Что такое двухканальная память? Не бывает двухканальной памяти!!! Бывают двухканальные материнские платы – точно так же, как бывают двухпроцессорные. Наличие двух каналов памяти на материнской плате позволяет обращаться одновременно к двум модулям. Для реализации этого режима нужно два или четыре модуля памяти, желательно – идентичных.

Как включить двухканальный режим? Вручную - никак. Точнее - он включается сам, если обнаруживает модули памяти в слотах, относящихся к разным каналам. Слоты, в которые рекомендуется ставить модули из одной "пары", обозначаются одним цветом, слоты для другой "пары" - другим; то есть - первую пару модулей нужно ставить в слоты одного цвета, чтобы включился двухканальный режим. Если не включился - попробуйте переставить модули в другие слоты.

Я задействовал двухканальный режим, но что-то не заметил ощутимого прироста производительности. Почему? В теории два канала дают в два раза больше производительности подсистемы памяти; на практике результаты скромнее – от 1% до 20% (в зависимости от приложения). При использовании интегрированного видеоадаптера его эффективность может возрасти на 70-100%. Помимо этого большую роль играет ЦП – для AMD прирост от двухканальности практически незаметен на FSB<200 МГц, тогда как на Intel'е прирост ощутим на любых частотах.

Я добавил к своему модулю 512 МБ ещё один – 256 МБ, но двухканальный режим не включился. Почему? (Вариант: Как правильно ставить модули для двухканального режима?) Сумма мегабайт в одном канале должна быть равна сумме мегабайт в другом канале. Лучше всего, если будут использованы идентичные модули – одна или две пары, но в принципе можно использовать и разные... Главное – чтобы модуль, имеющий наибольший объём, находился в нулевом банке памяти, а оставшиеся два слота от другого канала были заполнены таким же количеством мегабайт. То есть варианты 512+512+0 и 512+256+256 имеют право на существование, а 512+512+256 или 512+128+128 – нет. Для четырёх слотов могут быть комбинации типа 512+0+512+0, 512+0+256+256, 512+256+512+256.

У меня 3 планки по 256 МБ стоят и работают в режиме Dual channel! Почему? На http://www.8rdafaq.com разобрали ситуацию: при таком положении модулей Dual-mode 128 bit будет работать на одном модуле. Второй и третий модуль будут работать в режиме 64 bit. Так что всё-таки оптимальный режим – когда в обоих банках одинаковое количество памяти.

Что такое Parity и ECC? Memory with Parity – память с проверкой чётности; позволяет детектировать некоторые типы ошибок. Ныне почти не применяется. Memory with ECC – память с коррекцией ошибок; позволяет найти и исправить ошибку одного бита в байте (или найти две и исправить одну – в зависимости от алоритма). Применяется там, где важна целостность данных – в серверах и маршрутизаторах. СтОит дорого, работает относительно медленно; для оверклокера – малопривлекательна. Что такое "регистровая" память? Registered Memory – память с регистрами, служащими буфером между контроллером памяти и непосредственно чипами модуля. Регистры уменьшают нагрузку на систему синхронизации и позволяют набирать очень большое количество памяти (например – 16-24 ГБ), не перегружая цепи контроллера (то есть контроллер управляет лишь регистрами – считанными единицами чипов). Но данная схема имеет недостаток – регистры вносят задержку в 1 такт на каждую операцию, а значит – регистровая память медленнее обычной при прочих равных условиях. То есть – оверклокеру неинтересна. (Да и стОит она очень дорого.) Более полная информация о Registered Memory – http://ixbt.com/mainboard/registered-dimm.shtml

Соседние файлы в папке Memory