Загрузи мозги Крис Касперски aka мыщъх Спецвыпуск Xakep, номер #046, стр. 046-038-3 Независимо от выбранной частоты в системах с DDR-памятью команды на запись/чтение передаются только по переднему фронту тактового импульса, а сами обрабатываемые данные – по обоим. Расстояние между двумя соседними фронтами равно 1/2 тика, поэтому в настройках таймингов так много дробных величин. Базовые настройки Для перехода на ручное управление в меню BIOS необходимо найти пункт наподобие "Auto Configuration" или "SPD" и переключить его на "Manual". SPD расшифровывается как "Serial Presence Detect" и конструктивно представляет собой крошечную микросхему, хранящую основные характеристики и тайминги DIMM-модуля, гарантируемые производителем. В автоматическом режиме BIOS конфигурирует контроллер памяти, опираясь на информацию из SPD, которая находится в очень интересных взаимоотношениях с окружающей действительностью. Одни производители (и их большинство) прописывают в SPD заниженные параметры, другие в порыве безудержного оптимизма приписывают своему товару качества, до которых ему как до седьмого пня :). Не доверяй автоматике! Ручная настройка всегда предпочтительнее, поскольку оперирует не с произвольной выборкой нескольких модулей памяти, а с конкретным экземпляром. CL Величина CL (CAS# Latency) задает количество тактов между отправкой DDR-микросхеме команды чтения (не записи!) и сбросом первой порции данных на шину. При этом DRAM-страница должна быть заблаговременно открыта, за что отвечает тайминг tRCD. При последовательном чтении ячеек величина CL не играет никакой роли и может быть сколь угодно большой, в противном случае мы теряем CL тактов на каждый цикл пакетного обмена. Его продолжительность даже при благоприятном стечении обстоятельств составляет по меньшей мере 10 –20 тактов, поэтому сокращения CAS# Latency на один такт в лучшем случае увеличивает производительность приблизительно на 10%. Кстати говоря, CAS# Latency хорошо разгоняется, поскольку управляет не тормозным массивом конденсаторов, а быстрым буфером статической памяти и его логикой. При хаотичном доступе к памяти, когда открытие/закрытие DRAM-страниц происходит на каждом шагу, вклад, вносимый задержкой CL в общую продолжительность цикла обмена, становится настолько мал, что им можно полностью пренебречь. В большинстве случаев CAS# Latency составляет 2.0 или 2.5 тактов. Уменьшать ее до 1.5 не рекомендуется. tRCD Величина tRCD (RAS# to CAS# Delay или Active to CMD) определяет время открытия DRAM-страницы, в процессе которого со строки конденсаторов считывается заряд и заносится в буфер статической памяти, локально обрабатывающий все последующие обращения. Средняя длина страницы составляет 2 Кб, ширина пакетного цикла обмена – 32 или 64 байт. При последовательном чтении ячеек открытия новых страниц происходят на каждом 32, 64 цикле, а при перекрестном чередовании банков (о котором речь еще впереди) и того реже. Некоторые контроллеры памяти автоматически открывают следующую страницу, когда текущая подходит к концу, благодаря чему задержка полностью маскируется. При хаотичном доступе к памяти картина иная. Открытие новых страниц происходит значительно чаще, и латентность подсистемы памяти существенно возрастает. Тем не менее, уменьшать величину tRCD категорически не рекомендуется. Во-первых, реального выигрыша производительности это все равно не даст (полный пакетный цикл занимает порядка 30 тактов, и сокращение RAS# to CAS# Latency на один такт увеличивает быстродействие всего лишь на ~3%). Во-вторых, с разгоном tRCD надежность микросхемы катастрофически падает, и существенно увеличивается ее нагрев. |