Настройка подсистемы памяти в BIOS SETUP


Пожалуй, наиглавнейшим моментом в вопросе четкого функционирования компьютера является настройка параметров различных подсистем из BIOS Setup, мимо которой пройти просто невозможно. Основная система ввода/вывода (BIOS — Basic Input Output System) является своего рода "прослойкой" между аппаратной (комплектующие) и программной (операционная система) частями ПК. В ней содержится информация относительно установленных компонент и общих настроек всей системы. Однако большинство установок имеют свою специфику, определяя некоторые особенности и тонкости функционирования управляемых ими подсистем. Систему можно настроить на максимальную эффективность, установив соответствующие параметры на максимально возможные значения с точки зрения производительности, но при этом нет никакой гарантии, что компьютер будет работать надежно и без сбоев. С другой стороны, систему можно настроить на максимальную отказоустойчивость, "загрубив" при этом производительность. Каждая из этих крайностей имеет свои плюсы и минусы, поэтому обычно стремятся достичь "золотой середины", варьируя значения соответствующих пунктов настройки BIOS Setup. Таким образом, можно получить оптимально сбалансированные параметры и добиться максимально возможной производительности при обеспечении стабильного функционирования ПК.

Основными моментами в данном вопросе являются установки параметров, предназначенных для конфигурирования системного ОЗУ (оперативной памяти): всевозможные задержки, специфические режимы работы, общие схемы функционирования и т.д. — все, что касается этого вопроса можно найти в разделе "Advanced Chipset Setup" (или "Chipset Features Setup") в BIOS Setup.

Auto Configuration

Этот пункт в настройке является, пожалуй, основным, однако встречается не в каждой системе — точнее сказать, на всех материнских платах для 486-совместимых процессоров и на большей части Pentium-совместимых материнских плат. Он определяет возможность изменений в настройках подсистемы памяти типа FPM DRAM и EDO DRAM, указывая длительность цикла обращения (минимальный промежуток времени в течение которого можно выполнить циклическое обращение по произвольный адресам) к данным: 60ns (оптимизировано для микросхем памяти с временем доступа 60ns), 70ns (оптимизировано для микросхем памяти с циклом доступа 70ns) и Disable (в данном случае разрешить "ручную" настройку имеющихся параметров подсистемы памяти). При асинхронной передаче данных гарантируется, что определенная операция будет полностью осуществлена за фиксированный промежуток времени, поскольку в данном случае функционирование памяти не привязывается к частоте системной шины. Поэтому, если данные появляются сразу за фронтом системного синхросигнала, то они будут считаны лишь по приходу следующего фронта тактового импульса. Значения 60/70 ns данного пункта указывают системе, что надо использовать предустановки, занесенные производителем материнской платы заранее, которые обеспечивают стабильную работу памяти, исходя из установленной длительности цикла доступа. Понятно, что при этом наверняка теряется некоторая часть максимально возможной производительности. Поэтому, чтобы дать возможность проведения гибкой конфигурации, этот параметр необходимо установить в положение Disable, открыв доступ к другим установкам настройки подсистемы памяти.

DRAM Read Timing

Параметр, характеризующий скорость чтения данных из массива памяти. Сам массив представляет собой некое подобие координатной сетки, где есть положение по горизонтали (адрес строки) и по вертикали (адрес столбца). Упрощенно, на пересечении каждого конкретного адреса строки и столбца находится единичный "строительный элемент" массива — ячейка памяти, которая представляет собой ключ (транзистор) и запоминающий элемент (конденсатор). Логическое состояние ячейки (физически — заряд в конденсаторе) представляется довольно просто: есть заряд — "1", нет заряда — "0".

Для чтения содержимого из одной ячейки памяти в самом простом случае необходимо пять тактов. Сначала на шину выставляется адрес строки (первая половина полного адреса ячейки памяти). Затем подается строб RAS# (Row Address Srobe), который является своего рода контрольным сигналом (защелка адреса строки), подтверждающим полученный адрес строки для записи в специально отведенное место — регистр микросхемы памяти. После этого передается адрес столбца (вторая половина полного адреса ячейки памяти), следующим тактом за которым идет сигнал подтверждения принимаемого адреса (защелка адреса столбца) — CAS# (Column Address Strobe). И, наконец, следует операция чтения из ячейки памяти, контролируемая сигналом разрешения записи — WE# (Write Enable). Однако если считываются соседние ячейки, то нет надобности передавать каждый раз адрес строки или столбца, и процессор "считает", что необходимые данные расположены по соседству. Поэтому на считывание каждой последующей ячейки понадобится уже три такта системной шины. Отсюда и берет свое начало существование определенных схем функционирования (тайминги, в широком смысле этого понятия, обычно означающего временной параметр) конкретного фундаментального типа ОЗУ: xyyy-yyyy-…, где x — количество тактов шины, необходимое для чтение первого бита, а у — для всех последующих.

Так, цикл доступа процессора к памяти состоит из двух фаз: запроса (Request) и ответа (Response). Фаза запроса состоит из трех действий: подача адреса, подача запроса на чтение и подтверждение (необязательно). В фазу ответа входит выдача запрашиваемых данных и подтверждение приема. Довольно часто происходит чтение четырех смежных (соседних) ячеек, поэтому многие типы памяти специально оптимизированы для данного режима работы, и в сравнительных характеристиках быстродействия обычно приводится только количество циклов, необходимое для чтения первых четырех ячеек. В данном случае речь идет о пакетной передаче, которая подразумевает подачу одного начального адреса и дальнейшую выборку по ячейкам в установленном порядке — такого рода трансфер улучшает скорость доступа к участкам памяти с заранее определенными последовательными адресами. Понятно, что в случае необходимости чтения данных с непоследовательного адреса в "цепочке" пакетной передачи возникает разрыв и первый бит следующего произвольного обращения (адреса) считается со стандартным пятитактным доступом, описаваемым выше. Обычно процессор формирует адресные пакеты на четыре передачи данных вперед, поскольку предполагается, что система автоматически возвратит данные из указанной ячейки и трех следующих за ней. Преимущество такой схемы очевидно: на передачу четырех порций данных требуется всего одна фаза запроса.

Например, для памяти типа FPM DRAM применяется схема 5333-3333-…, в отличие от первой разновидности динамического ОЗУ, где применялась самая простая — 5555-5555-… Для памяти EDO DRAM после первого считывания блока данных увеличивается время доступности данных того ряда, к которому происходит доступ в настоящий момент, при этом уменьшается время получения пакета данных, т.к. схема доступа уже 5222-2222-… Синхронное ДОЗУ типа SDRAM, в отличие от асинхронного (FPM и EDO), "свободно" от передачи в процессор сигнала подтверждения и выдает/принимает данные в строго определенные моменты времени (только совместно с сигналом синхронизации системной шины), что исключает несогласованность между отдельными компонентами, упрощает систему управления и дает возможность перейти на более "короткую" схему работы: 5111-1111-… Аналогичную временную диаграмму имеет и пакетное ДОЗУ на основе схемы расширенного доступа к данным (BEDO DRAM) — последняя разновидность асинхронного типа динамической памяти.

Поэтому в рассматриваемом пункте меню настройки можно встретить варианты допустимых значений для циклов обращения к памяти: x333 или x444 оптимально подходит для FPM DRAM, x222 или x333 — для EDO DRAM, и x111 или x222 — для BEDO DRAM (и SDRAM). Варьируя эти параметры и стараясь использовать более короткую диаграмму для конкретного типа памяти, можно добиться некоторого повышения производительности.

DRAM Write Timing

Параметр, аналогичный по принципу предыдущему, с той разницей, что происходит настройка произведения операций записи. Для фундаментальных типов памяти FPM DRAM и EDO DRAM значение рассматриваемого параметра одинаково, поскольку выигрыш от принципа EDO можно получить только на операциях чтения. Соответственно, устанавливаемые значения аналогичны "DRAM Read Timing", принимая во внимание особенности архитектуры используемой памяти.

Fast RAS-to-CAS Delay

Установка, характеризующая задержку в циклах тактового сигнала между стробами RAS# и CAS# (как уже говорилось, по сигналам RAS# и CAS# внутрикристальные триггеры фиксируют части полного адреса — строки и столбца), за которую данные из накопителя ДОЗУ передаются на выходные усилители (SenseAmp, играющие роль временного буфера и усилителя уровня, поскольку сигнал, выходящий из микросхемы, достаточно слабый), и обычно составляющую 2ns. Эта задержка вводится умышленно и необходима для того, чтобы было достаточно времени для однозначного определения адреса строки (сигнал RAS#) и столбца (сигнал CAS#) ячейки. Иными словами, данный параметр характеризует интервал между выставлением на шину контроллером памяти сигналов RAS# и CAS#. Понятно, что чем меньше данное значение, тем лучше, однако не стоит забывать, что за ним стоит возможность самих микросхем памяти реализовать установленную задержку, поэтому выбор здесь неоднозначен.

DRAM RAS Precharge Time

Параметр, определяющий время повторной выдачи (период накопления заряда, подзаряд) сигнала RAS#, т.е. через какое время контроллер памяти будет способен снова выдать сигнал инициализации адреса строки. Это связано с необходимостью проведения фаз обновления содержимого ячеек памяти. Данная установка может принимать значения 3 или 4 (в циклах шины), и во временном отношении аналогична предыдущей — чем меньше, тем лучше. Иногда возможен вариант, когда можно выставить конкретную схему циклов регенерации или прямо указать время обновления содержимого строки памяти, выражаемое в микросекундах (ms).

Для поддержания целостности информации заряд конденсаторов следует периодически обновлять (регенерировать), читая содержимое всего ряда целиком и заново перезаписывая. Устройствам памяти с динамической "природой" присущ один довольно серьезный недостаток — высокая вероятность образования ошибки, когда данные, записанные в определенную ячейку, при считывании могут оказаться иными, что связано с циклами регенерации заряда в ячейке памяти. Для контролирования и исправления этого недостатка существует два способа проверки целостности данных: контроль бита четности и код коррекции ошибок. Как уже упоминалось, элементарная ячейка динамической памяти состоит из одного конденсатора и запирающего транзистора, что дает возможность достичь большей плотности размещения элементов (большее количество ячеек на единицу площади) по сравнению со статической. С другой стороны, данная технология имеет ряд недостатков, главным из которых является то, что заряд, накапливаемый на конденсаторе, теряется со временем. Несмотря на то, что при топологии конденсаторов ячеек динамической памяти используется хороший диэлектрик с электрическим сопротивлением в несколько тераом (х1012 Оhm), заряд теряется достаточно быстро, так как размеры одного конденсатора микроскопические, а емкость мизерна — порядка 10-15 F. При такой емкости на одном конденсаторе накапливается всего порядка 40000 электронов.

Среднее время утечки заряда в массиве ДОЗУ составляет порядка сотни или даже десятков миллисекунд, поэтому его необходимо перезаряжать с 64ms интервалом, согласно требованиям JEDEC Std 21-C. Данные из ядра считываются и передаются на усилители уровня, после чего, не поступая на выход, записываются обратно в массив. Стандартно, банк микросхемы памяти (массив ячеек, имеющий определенную организацию структуры, состоящей из строк и столбцов) содержит или 2k, или 4k, или 8k строк (точнее, или 2048, или 4096, или 8192), доступ к которым позволяет производить одновременную регенерацию всего массива, относящегося к этой строке. Как бы то ни было, наилучшая схема регенерации заключается не в одновременном обновлении содержимого ячеек всех строк, а в поочередном обновлении индивидуально каждой строки. В результате, взяв за основу 4k-массив (средняя плотность), можно вычислить стандартную нормальную схему регенерации одной строки, поделив полный цикл обновления на количество строк: 64000ms/4096=15.625ms. В случае, если банк содержит более 4k строк, любые две строки могут обрабатываться одной командой, или все решается простым кратным увеличением частоты регенерации — с точностью до наоборот, если банк содержит менее 4096 строк. Если рассматривать возможные варианты решения проблемы обновления содержимого массива ДОЗУ, на данный момент известны три различных метода регенерации данных.

Регенерация одним RAS (ROR — RAS Only Refresh). В данном случае адрес регенерируемой строки передается на шину адреса, в ответ на что выдается сигнал RAS# (точно так же, как при чтении или записи). При этом выбирается строка ячеек, и данные из них временно поступают на внутренние цепи (точнее, на выходные усилители уровня) микросхемы, после чего записываются обратно. Так как сигнала CAS# не следует, цикл чтения/записи не начинается. В следующий раз передается адрес следующей строки и так далее, пока не восстановятся все ячейки, после чего цикл регенерации повторяется. Недостатком этого метода, безусловно, является то, что занимается шина адреса, и в момент регенерации блокируется доступ к другим подсистемам компьютера. Это сильно снижает общую производительность, поскольку подобного рода регенерацию в микросхемах памяти необходимо осуществлять довольно часто.

CAS перед RAS (CBR — CAS Before RAS). При нормальном цикле чтения/записи сигнал RAS# всегда приходит первым, а за ним следует CAS#. Если же CAS# приходит раньше RAS#, то начинается специальный цикл регенерации (CBR), при котором адрес строки не передается, а микросхема использует свой собственный внутренний счетчик, содержимое которого увеличивается на 1 (дискретное инкрементирование) при каждом цикле CBR. Этот режим позволяет регенерировать память не занимая шину адреса, что, безусловно, более экономично в плане использования системных ресурсов.

Механизм автоматической регенерации (AutoPrecharge) или саморегенерации (SEREf — SElf REfresh) обычно используется в режиме энергосбережения, когда система переходит в состояние "сна" и формирователь синхросигналов деактивируется. Режим расширенной регенерации (EREf — Extended REfresh) не является отдельным методом, характеризующим саму способность микросхемы, а, как и сокращенная (REREf — REduce REfresh), определяет только режим периодичности обновления содержимого массива относительно нормального цикла (Normal, 15.625ms), и состоит в "подмножестве" цикла саморегенерации. При EREf энергия экономится потому, что теперь регенерацию страницы (строки) можно производить значительно реже: скажем, через 125.2ms, а не через 15.625ms, как это происходит при стандартной регенерации. Сокращенная регенерация рекомендуется к использованию в микросхемах памяти большой емкости (64Mbit устройства и более емкие) и в модулях памяти с большим количеством микросхем (16 и более). Саморегенерация используется в периоды микропотребления (общее состояние системы — Suspend), когда содержимое микросхемы памяти регенерируется самостоятельно путем инкрементирования своего внутреннего счетчика — это значит, что все функции управления можно выключить. В таком состоянии обновление данных в ячейках по вышеописанным методам невозможно, потому как некому посылать сигналы на регенерацию, и микросхема памяти делает это сама — в ней запускается свой собственный генератор, который тактирует ее внутренние цепи.

Так, метод ROR использовался еще в первых микросхемах DRAM и на данный момент практически не применяется. Метод CBR активно используется в микросхемах EDO DRAM. Саморегенерация рекомендована для систем на основе SDRAM и поддерживает значения: 3.906ms (0.25х-сокращенная), 7.812ms (0.5х-сокращенная), 15.625ms (нормальная), 31.25ms (2х-расширенная), 62.5ms (4х-расширенная) и 125.2ms (8х-расширенная). Понятно, что сама способность конкретной микросхемы памяти (контролируемая со стороны "закрытых" установок в BIOS или саморегенерация) определяется архитектурно и зависит от типа используемой памяти. Однако выставив наибольший временной цикл, можно "не вписаться" в общую временную диаграмму, поэтому производитель модуля памяти такого рода информацию просто заносит в специально отведенное место — микросхему SPD, которой оснащено большинство современных модулей DIMM. В случае, если таковой микросхемы на используемом модуле нет, то можно, при условии, что это позволяет гибкая настройка BIOS Setup, самостоятельно выставить периодичность проведения регенерации, исходя из стандартных 15.625ms для 4k массива банка, кратно уменьшая (сокращенная) цикл при увеличении количества строк, или увеличивая (расширенная) цикл при уменьшении количества строк — все зависит от логической организации (количество банков и структура банка) микросхемы и их количества в конкретном модуле памяти.

MA Wait State

Период ожидания до переключения адреса, который позволяет установить или снять дополнительный такт задержки до начала обращения к конкретной микросхеме памяти (подача сигнала выбора кристалла, CS#). Своего рода "контрольной точкой" срабатывания является переключение сигнала MA# (Memory Address) с одно- или двухтактным опережением CS#. Более подробно этот пункт будет рассмотрен ниже применительно к синхронным системам.

DRAM R/W Leadoff Timing

Данный пункт характеризует число тактов, затрачиваемое подсистемой памяти при подготовке выполнения операции чтения/записи данных, определяя их количество на шине до выполнения операции в самой микросхеме. При этом возможны следующие значения: 8/7 и 7/5 — количество тактов для чтения/записи соответственно. Как и любой параметр, характеризующий задержку, его необходимо стараться установить с меньшим значением.

Speculative Leadoff

Параметр, включающий (Enable) и выключающий (Disable) режим опережающей выдачи сигнала чтения (READ), разрешение которого позволяет выдавать его немного ранее, чем адрес будет декодирован (однозначно определен при помощи стробов RAS# и CAS#). Поскольку на определение адреса необходимой ячейки требуется определенное время, система теряет такты, которые могут использоваться с пользой. Поэтому включение этого параметра дает возможность считать следующий адрес ячейки, пока идет процесс определения координаты ячейки, адрес которой считался ранее. Данный прием также позволит в некоторой степени сэкономить время и уменьшить количество "холостых" тактов системной шины.

DRAM ECC/Parity Select

Параметр, управляющий режимами контроля целостности данных: кода коррекции ошибки (ECC — Error Correction Code) и проверки четности (Parity). Нередко встречается также пункт "DRAM Data Integrity Mode".

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

В случае использования схемы Parity один бит четности сохраняется в специально выделенной области памяти вместе с каждыми восемью битами информации. Бит четности формируется так: подсчитывается количество "единиц" в двоичном представлении байта: если оно четное, то данный бит принимает значение "1", если нет — "0". После этого данные записываются в оперативную память. При считывании этого байта данных из ячейки к нему "приписывается" бит четности и затем анализируется 9bit значение. Если в этом числе нечетное количество единиц, то бит четности "обрезается" и байт информации передается на обработку — в противном случае генерируется ошибка четности и работа компьютера приостанавливается с выдачей сообщения. Если изменено четное количество бит информации, проверка бита четности не сработает. Однако, несмотря на то, что схема контроля четности может выявлять максимум двухбитные ошибки, исправлять их она не способна.

Механизм ECC может не только выявлять, но и исправлять ошибки, а также генерировать ошибку четности. Обычно данная схема работы основывается на использовании кодов Хемминга (помехоустойчивые коды), позволяющих выявлять и исправлять один неверный бит или же найти две и исправить одну ошибку (корректирующие свойства кода определяются его избыточностью). Коррекция ошибок намного сложнее контроля четности и используется в системах, где необходима передача большого количества информации с минимальной вероятностью ошибки. В любом случае, будь то схема Parity или ECC, использование данных типов памяти может снизить производительность: если контроль четности может "затормозить" систему на 2—3 %, то у ECC этот показатель иногда доходит до 10% в зависимости от сложности используемого алгоритма. Кроме этого, 72bit модуль ECC дороже своего обычного 64bit "аналога" при условии одинаковой емкости, поэтому выбор использования данных типов памяти на ПК является исключительно делом каждого.

Наличие в ПК модуля, поддерживающего схему ECC, определяется самой системой, и если таковые не обнаружены, пункт меню "DRAM Data Integrity Mode" изменить невозможно — "серое" поле с индикацией "Non-ECC". Разрешение (Enable) же пункта "DRAM ECC/Parity Select" при условии, что в системе используются соответствующие модули памяти, приводит к активации контроля коррекции ошибки или к включению механизма контроля четности.

SDRAM Configuration

Параметр, определяющий способ настройки подсистемы памяти на основе SDRAM и принимающий значения: by SPD (необходимые параметры считываются из специальной микросхемы последовательного детектирования, устанавливаемой на модуле памяти, и полностью оптимально согласованы с типом и индивидуальными характеристиками установленных на нем микросхем) или Manual (разрешено варьировать определенные параметры "вручную", причем соответствующие пункты меню этих параметров становятся доступными для изменения). Суть данной установки сводится к тому, что в случае использования схемы Manual разрешается доступ к изменению параметров "SDRAM CAS Latency Time", "SDRAM RAS-to-CAS Delay" и "SDRAM RAS Precharge Time", которые образуют основную тайминговую схему работы памяти (CL-tRCD-tRP соответственно) и позволяют осуществлять более гибкую настройку подсистемы на основе синхронного ДОЗУ — все аналогично рассматриваемому ранее параметру "Auto Configuration". В случае использования схемы SPD требуемые значения автоматически загружаются из микросхемы EEPROM, в которой производитель конкретного модуля памяти заранее "прошивает" необходимые значения временных параметров (таймингов), гарантируя стабильную работу.

При синхронной работе с памятью операции выполняются строго с тактами системного генератора. При этом само управление синхронного ДОЗУ несколько усложняется относительно асинхронного, поскольку приходится вводить дополнительные защелки, хранящие адреса, данные и состояния сигналов управления. В результате этого вместо продолжительности цикла доступа, применяющегося для характеристики в асинхронных системах, для описания быстродействия SDRAM прибегают к указанию длительности периода синхросигнала (tCLK — Clock time — величина, обратно пропорциональная частоте следования синхроимпульсов). Поэтому в некоторых разновидностях BIOS возможно указание непосредственно длительности периода синхросигнала: 7ns (максимальная частота функционирования данного модуля — 143MHz, следовательно, используемые временные схемы будут оптимизированы для устройств памяти с параметром -7, указываемом непосредственно на самой микросхеме), 8ns (максимальная частота функционирования данного модуля — 125MHz, поэтому временные установки будут оптимизированы для приборов памяти с параметром -8) и 10ns (максимальная частота функционирования данного модуля — 100MHz, поэтому временные установки будут оптимизированы для микросхем памяти с параметром -10), которые работают аналогично описываемым ранее в пункте "Auto Configuration", но встречаются сравнительно редко.

Стандартно, массив микросхемы содержит логические банки (Bank), количество и организация которых определяется индивидуальностью (фундаментальностью) самой архитектуры и конечной емкостью микросхемы. Банки содержат логические строки (Row), называемые также страницами (Page, во избежание путаницы с физическими строками), которые, в свою очередь, содержат столбцы (Column) — матрица, образуемая такой иерархией, и является ядром микросхемы памяти. Строка — это объем считываемых или записываемых данных в один из нескольких банков ядра. Столбцы — подмножества строк, которые считываются или записываются в индивидуальных фазах операций чтения/записи.

Рассмотрим последовательно продвижение данных по микросхеме. Обычно цикл начинается по приходу команды активизации банка, которая выбирает и активирует необходимый банк и строку в его массиве. В течение следующего цикла информация передается на внутреннюю шину данных и направляется на усилитель уровня (как говорилось ранее, своего рода "накопитель", играющий роль как усилителя сигнала, так и временного буфера). Когда усиленный уровень сигнала достигает необходимого значения, данные запираются (Latch) внутренним синхросигналом - этот процесс, именуемый задержкой между определением адреса строки и столбца (tRCD — RAS#-to-CAS# Delay), занимает 2—3 цикла системной шины (количество периодов синхросигнала). После этой задержки команда чтения может подаваться совместно с адресом столбца, чтобы выбрать адрес первого слова (в данном случае, объем данных, передаваемых за один цикл, равный ширине шины данных микросхемы памяти), которое надо считать с усилителя уровня. После выставления команды чтения выполняется двух- или трехтактная задержка строба выбора столбца (задержка сигнала CAS# — CAS# Latency или просто CL), в течение которой данные, выбранные из усилителя уровня, синхронизируются и передаются на внешние выводы микросхемы (линии DQ). За первым словом следуют остальные в течение каждого последующего синхросигнала, отрабатывая полную установленную длительность пакета (Burst Length) — количество непрерывно передаваемых слов за одну фазу передачи данных. Лишь после того, как вся информация передалась, данные можно возвратить обратно из усилителя в строку пустых ячеек массива для восстановления его содержимого, что занимает 2—3 тактовых цикла. Справедливости ради необходимо заметить, что вопреки правильной записи последовательности tRCD-CL-tRP обычно основная тайминговая схема имеет вид CL-tRCD-tRP, таким образом указывая степень важности составляющих ее параметров. Динамический, а значит обладающий свойством ослабевания сигнала и утечки, по своей природе массив ячеек должен регенерировать их содержимое. Периоды восстановления заряда устанавливаются регенерирующим контроллером программы мониторинга, выполняемой счетчиком регенерации (Refresh Counter) — подобное восстановление требует 7—10 циклов, в течение которых поток данных прерывается.

Процедура записи в рассмотрении временной схемы доступа аналогична фазе чтения с разницей в дополнительном интервале tWR, характеризующем период восстановления интерфейса после проведения операции. Иными словами, период восстановления в фазе записи — это обычно двухтактная задержка между окончанием выдачи данных на шину (последний импульс по Data Bus) и инициированием нового цикла. Этот временной интервал обеспечивает восстановление интерфейса после проведения операции записи и гарантирует корректность ее выполнения. В результате, по окончанию передачи последнего слова в фазе записи, строка банка, к которой происходит обращение, входит в стадию регенерации не сразу, а по истечении дополнительной задержки, минимальное значение которой обуславливается наименьшим интервалом, в течение которого ожидается корректное завершение текущей операции записи. Поэтому время активности страницы в фазе записи становиться больше значения tRAS фазы чтения на длительность периода восстановления, tWR.

SDRAM CAS Latency Time

Задержка выдачи сигнала CAS# для микросхемы синхронного ДОЗУ является одной из важнейших характеристик и обозначает минимальное количество циклов шины (Clock Period) от момента "фиксации" запроса данных стробом CAS# до момента их устойчивого определения и считывания. Предполагается, что на момент прихода фронта сигнала CAS# на адресных входах имеются правильные данные. Однако, поскольку везде существуют временные задержки (в том числе и внутри самой микросхемы), то специально отводится некоторое время на их преодоление, причем в силу разброса параметров задержки для разных адресных линий могут быть разными — это и есть в данном случае CAS Latency (CL), а CL2 и CL3 — время вводимой задержки в тактах (2 и 3 соответственно). Чем меньше задержка — тем больше скорость работы с памятью, но и тем больше риск, что данные попадут "не по адресу", что непременно вызовет сбой. Устойчивость к подобным сбоям — есть устойчивость по CL.

Иными словами, CL — это задержка между формированием логикой управления кристалла микросхемы команды чтения и доступностью к чтению первого слова. Если регистрация (опознавание приемником сигнала конкретного логического уровня) команды чтения происходит по фронту такта N, а CL составляет M тактов, то соответствующие данные будут доступны через N+M тактов. Однако, для обеспечения гарантированной выдачи данных, транзисторы выходных цепей линий данных включаются на один такт раньше (N+M-1), т.е. на них выводятся данные с неопределенными (на тот момент) уровнями, в результате чего контроллер памяти ожидает еще один такт, и только после этого принимает поступающие данные. При использовании CL2 для модулей, рассчитанных для данной частоты на CL3, выходные цепи могут не успеть выставить нужный уровень (и обеспечить номинальный ток) для точного представления данных на шине и может возникнуть ошибка.

SDRAM RAS-to-CAS Delay

Аналогичного рода параметр (Fast RAS-to-CAS Delay), определяемый как tRCD, описывался ранее, и в данном случае может принимать значения 2 или 3, устанавливая двух- и трехтактную задержку от начала передачи команды активизации конкретного логического банка до момента приема команды чтения/записи по приходу фронта CAS# (переход в активный низкий уровень). Другими словами, после подачи команды активизации банка, строку, к которой происходит обращение, необходимо предварительно зарядить (выполнить цикл накопления заряда, Precharge) до момента поступления команды чтения (определяемой адресом столбца). Это означает, что данные передаются из массива памяти на внутрикристальный выходной усилитель уровня с задержкой 2 или 3 цикла. Необходимо понимать, что рассматриваемая задержка сама по себе играет довольно незначительную роль в общей задержке при условии попадания в страницу и/или чтения данных из открытой страницы. Тем не менее, далеко не в каждом BIOS можно варьировать значение данной задержки по причине отсутствия соответствующего параметра, однако в действительности tRCD учитывается также в значении "Bank X/Y Timing".

SDRAM RAS Precharge Time

Длительность подзаряда строки — tRP. В данном случае микросхема DRAM с двумя/четырьмя банками (логическая организация) позволяет "скрыть" это время, чтобы обеспечить непрерывный ввод/вывод данных: в то время, когда происходит какая-либо операция с одним банком памяти, другой успевает регенерировать (обновить данные). Проще говоря, данный параметр позволяет определять быстрое (Fast) или медленное (Slow) накопление заряда по линии RAS# до начала цикла регенерации. Установка значения Fast увеличивает быстродействие, однако может привести к нестабильности работы. Slow же действует наоборот — повышает стабильность работы компьютера, однако увеличивает время, затрачиваемое на цикл регенерации данных. Поэтому рекомендуемое значение Fast следует устанавливать в случае уверенности в качестве микросхем памяти. Обычно встречаемые значения 2 и 3 данного пункта определяют количество тактов системной шины, необходимых для восстановления данных в странице, к которой происходило обращение.

Вообще, задержка, обуславливаемая накоплением заряда в строке, необходима для перемещения данных обратно в массив (закрытие банка/страницы) до момента прихода команды активизации следующего банка. Так, 30—60 % от общего количества передаваемых запросов на чтение теряется в пределах одной страницы (Page), стандартно называемая строкой логического банка), что получило название попадания в страницу (Page Hit). Поэтому в данном случае нет необходимости активизировать банк, так как данные уже находятся в странице, и все, что требуется — это изменить адрес столбца посредством выдачи сигнала CAS#. Если запрашиваемые данные не найдены в пределах данной страницы, их необходимо вернуть обратно в массив и закрыть банк.

Если запрашиваемые данные существуют в одном и том же банке, но в разных строках, необходимо подать команду перезаряда, чтобы банк закрылся (промежуток, составляющий длительность подзаряда), а новая команда активизации банка откроет правильную строку (задержка tRCD), где размещаются необходимые данные. Позднее, через промежуток CL, команда чтения придет по правильно выбранному адресу. В результате количество циклов общей задержки (схема tRCD-CL-tRP), описываемое как 2-2-2, составляет 6 тактов, а схема 3-3-3 увеличивает ее до 9.

Если запрашиваемые данные расположены в разных строках, нет необходимости тратить время на ожидание закрытия первого банка, поэтому задержка tRP в данном случае не учитывается. Следовательно, остается только задержка выдачи сигнала CAS# и интервал RAS#-CAS#. Вообще, данная схема немного упрощена, поскольку если данные находятся в одном банке, но в разных строках, то банк необходимо не просто закрыть, а еще и реактивировать. Поэтому каждый банк имеет очень малое время, в течение которого он остается открытым, и длительность цикла tRC становится довольно критическим фактором.

Для микросхемы памяти, которая вошла в фазу саморегенерации (SEREf), необходим определенный интервал времени для ее возвращения обратно в активное состояние. Как уже говорилось ранее, в случае ввода устройства в фазу Self-Refresh все входные интерфейсы переводятся в состояние DtC (Don’t Care), а тактовый вход CKE деактивируется, после чего моментально включается внутрикристальный счетчик регенерации. В этот период микросхема памяти является пассивным относительно системы устройством и не отвечает на команды, поскольку интерфейс синхронизации деактивирован. После проведения фазы внутренней регенерации механизм внешней синхронизации активизируется и устройство возвращается в активное состояние по команде Refresh Exit. Тем не менее, полная фаза активизации с момента начала подачи сигнала CKE до готовности принять первую команду от контроллера занимает 4—7 тактов и называется Refresh RAS Assertion.

SDRAM Cycle Time Tras/Trc

Параметр, характеризующий быстродействие микросхемы SDRAM (динамику массива) и определяющий отношение интервала, в течение которого строка открыта для переноса данных (tRAS — RAS# Active time), к периоду, в течение которого завершается полный цикл открытия и обновления ряда (tRC — Row Cycle time), также называемого циклом банка (Bank Cycle Time).

По умолчанию устанавливается значение 6/8 — более медленное, но более стабильное, чем 5/6. Однако, 5/6 быстрее сменяет циклы в SDRAM, но может не оставлять строки (ряды) открытыми на период времени, достаточный для полного завершения транзакции, что особенно справедливо для SDRAM с частотой синхронизации более 100MHz. Следовательно, для начала рекомендуется попробовать установить 5/6 в целях увеличения производительности SDRAM, но, если система становится нестабильной, следует изменить на 6/8. Также данный параметр можно встретить в виде [tRAS, tRC]. Например, для некоторых базовых логик данные установки могут иметь следующие значения: для серии i82815xx — [5T, 7T] или [7T, 9T], для серий наборов VIA — [5T, 7—8 T] или [6T, 8—9 T], и для ALi MAGiK1 — [3—10 T, 4—15 T].

Цикл банка определяет количество тактов, необходимых после выставления команды активизации банка до начала фазы перезаряда. Другими словами, после открытия страницы ее необходимо поддерживать в открытом состоянии некоторый промежуток времени до того как она снова закроется. Параметр tRC определяет минимальное количество тактов от момента начала обращения к строке до тех пор, пока банк реактивируется. Поскольку фаза перезарядки имеет задержку 2—3 такта, то полный цикл банка является суммой времени активности сигнала RAS# и интервала обновления данных в странице: t=tRAS+tRP, где tRAS=tRCD+CL определяется как задержка отклика (Latency), характеризующая промежуток времени между регистрацией полученной команды и моментом начала передачи ассоциируемых с командой данных. Таким образом, t характеризует общее количество циклов, входящих в основную тайминговую схему tRCD-CL-tRP. Так, серия i82815xx поддерживает схемы [5T, 7T] или [7T, 9T], откуда видно, что период подзаряда фиксирован и составляет два цикла шины (2T). Серия базовых логик от VIA определяет интервал tRAS по значениям 5T и 6T, что говорит о плавающем значении tRP в 2 или 3 такта соответственно, однако они не прямо доступны, а являются частью "микса" установок.

Текущие микросхемы SDRAM имеют продолжительность цикла ядра 50—60 ns. С другой стороны, это означает, что теоретически микросхема, синхронизирующаяся на частоте 133MHz (7.5ns период), имеет значение tRC=7T, откуда можно определить текущий цикл ядра: 7х7.5ns=52ns. Если частоту синхронизации увеличить, количество циклов, соответственно, тоже увеличится, чтобы укладываться в 50ns окно. Проведя расчет, можно отметить теоретический предел частоты синхронизации SRDAM в 183MHz при текущих параметрах (9T), что означает 49.2ns цикл ядра. Интересной особенностью является то, что в ранних ревизиях i82815 серии схема выглядела как [5T, 7T] или [6T, 8T], что определяет предел частоты синхронизации в районе 166MHz. Для 100MHz синхросигнала, с целью получения максимально возможной производительности, цикл банка необходимо установить как 5/7, а для 133MHz шины, как 5/8 или 6/8 — в зависимости от того, насколько сильно требуется "разогнать" интерфейс.

В связи с этим, наиглавнейшим вопросом считается определение минимально возможного интервала активности страницы (сигнала RAS#) и что повлечет за собой выход за пределы его допустимых значений (tRAS Violation). После того, как сигнал RAS# активизировал банк, данные запираются в усилителе уровня. Например, имеется две линии, идущие параллельно, из которых одна сигнальная, а другая — связанная. Эта схема работает по принципу чередования, где каждая линия может быть и сигнальной, и опорной. Усилитель уровня дифференцирует напряжение между заряженной линией данных и опорной, и усиливает относительно слабый сигнал — это необходимо делать, чтобы восстанавливать информацию в ячейках. Сигнальные линии имеют четко определенную емкость, которая уменьшается с увеличением заряда. Если фаза перезаряда (стирание всей информации со строки данных для активизации следующего банка — строчный доступ) начинает выполняться до момента, пока уровень сигнала не стабилизировался достаточно для возможности восстановления первоначального содержимого страницы, четко определенная длительность активности страницы (сигнала RAS#) нарушается (tRAS Violation), результатом чего является полная потеря данных или в лучшем случае неверное их восстановление. Другими словами, tRAS — это время, необходимое для накопления полного заряда в строке и восстановления данных до начала цикла следующего передзаряда. В свою очередь, перезаряд является командой, закрывающей страницу или банк, поэтому tRAS также характеризуется как минимальное время активности страницы. Если к этому добавить еще и длительность цикла перезаряда, то в результате получится общее количество тактов, необходимое для открытия и закрытия банка, именуемое циклом банка (tRC) — то, о чем велась речь ранее.

SDRAM MA Wait State

Для систем на основе синхронного ДОЗУ контроллеру памяти необходимо послать несколько сигналов доступа, чтобы выполнить полную фазу обращения к конкретной микросхеме памяти: CS# (выбор кристалла), MA (адрес памяти), WE# (разрешение записи) RAS# (строб подтверждения адреса строки) и CAS# (строб подтверждения адреса столбца). Любой доступ к памяти включает в себя эти сигналы в разных вариациях в зависимости от типа выполняемой операции. Например, без сигнала выбора кристалла все последующие команды не будут восприняты микросхемой.

Так, все адресные линии, идущие от контроллера памяти к подсистеме, соединяются со всеми микросхемами памяти на всех модулях, что обуславливает значительную (в зависимости от общего количества микросхем) логическую нагрузку для контролера, который должен посылать правильный конечный адрес всем микросхемам в составе модуля(ей). Поэтому рекомендуется соблюдение 1—2-тактного опережения адресной и другой специфической информации до подачи сигнала CS#. В результате дается возможность подавать адрес и другие специфические командные сигналы с 0- (Fast, не включает никакого состояния ожидания перед подачей сигнала CS#), 1- (Normal, один такт опережения команды выбора кристалла) или 2- (Slow, опережение команды выбора кристалла в 2Т) тактным опережением сигнала выбора кристалла.

Таким образом, если модуль памяти содержит, например, всего 4 или 8 микросхем, то в этом случае рекомендовано значение Fast. Если модуль памяти имеет 16 или 18 устройств, то для него подойдет однотактное опережение. Если более 18 микросхем памяти (Registered DIMM) — 2T. В сложных конфигурациях подсистемы с использованием нескольких модулей с разной логической и физической организацией необходим более глубокий практический анализ.

SDRAM Bank Interleaving

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

Так, чипы памяти ДОЗУ с емкостью массива 16Mbit и менее используют одноблочную матрицу (один логический банк). Некоторые 16Mbit и все 32Mbit микросхемы имеют уже двухбанковую внутреннюю архитектуру. Устройства с емкостью ядра 64Mbit и выше организованы четырехбанковой логической структурой, разделенной внутренними магистралями и трассами ввода/вывода.

Разделение логического массива ядра на четыре части позволяет использовать интерфейс выбора кристалла для управления всеми логическими банками одновременно и дает возможность держать сразу по одной открытой странице в каждом банке (если, конечно, используется независимая структура построения). Это дает возможность производить доступ без необходимости смены действительного адреса месторасположения необходимых данных — адреса строк и столбцов используются совместно между всеми логическими банками в пределах одной микросхемы. Вследствие этого контроллер может перенаправлять обращения от одного внутреннего банка к другому, производя необходимые операции. Данные перемежения и получили названия чередующихся обращений, которые дают преимущество, когда при закрытии одного логического банка данные продолжают поступать в/из другого, создавая непрерывный поток. Таким образом, в случае промаха в страницу, фаза перезаряда строки является системно-прозрачной операцией. Тем не менее, одновременное открытие сразу всех логических банков (обращение к конкретной странице в каждом) невозможно, поскольку команды активизации в данном случае могут подаваться с минимальной задержкой в один такт.

Иными словами, базисная идея чередующихся обращений заключается в доступе от одного банка к другому, когда соответствующие страницы открыты в каждом банке — этот момент требует высокой степени концентрированности данных в системном ОЗУ. Обычно команда активизации может открыть один банк в определенный момент времени (предвыборка), а затем считать данные после задержки tRCD+CL. Однако, практически сразу же, после посылки команды активизации одного банка, контроллер памяти может послать команду активизации другого в этом же цикле, таким образом открыв следующий банк. Если контроллер точно знает какие данные следует передать в другой банк, он может послать команду чтения без трешинга (Trashing, режим интенсивной передачи данных при нехватке системной памяти) пакета данных первого банка. В этом случае делается возможным переход от одного банка к другому с задержкой лишь в один цикл (Bank-to-Bank Latency, задержка перехода "банк-банк") между пакетами из четырех слов (BL=4). В дополнение, фазы накопления заряда и закрытия банка могут выполняться в "фоновом режиме" в процессе считывания данных из перемежающихся банков.

Известны три режима чередования: обычный (No Interleave), двухбанковое чередование (2-Way Interleave, данные коммутируются между двумя логическими банками) и четырехбанковое чередование (4-Way Interleave, данные коммутируются между четырьмя логическими банками). Режим чередования логических банков работает только в том случае, если последовательно запрашиваемые адреса находятся в разных банках — иначе транзакции данных происходят по обычной схеме No Interleave. В этом случае системе придется простаивать время прохождения обращения и цикл регенерации, после чего запрос повторится. Тем не менее, поддержка конкретного режима должна быть реализована еще и на уровне конкретного приложения. Вообще, любая программа, сильно зависящая от процессорного кэша (объема, типа и иерархии), не способна оптимально использовать режимы чередования по простой причине ограниченности размера страницы, и данные из кэша могут потеряться. В результате, чередование банков может отрицательно сказаться на производительности, поскольку неправильный открытый банк необходимо закрыть до выполнения следующего цикла доступа к данным.

Bank X/Y DRAM Timing

Параметр, включающий в себя сумму tRCD+tRP+Bank Interleaving и разделяющийся на схемы: SDRAM 8—10 ns, Normal, Medium, Fast и Turbo — оптимизированные под "одноименную" производительность настройки, которые производитель материнской платы прописывает в BIOS сам (схема, подобная описываемому ранее "Auto Configuration" и "SDRAM Configuration"). Так, значения соответствующих настроек BIOS, которые устанавливают управляющие регистры контроллера памяти в определенное состояние, обычно выглядят следующим образом:

Тайминги некоторых оптимальных настроек подсистемы памяти SDRAM

УстановкаtRAStRPCASDDR-WEtRCDInterleave
SDRAM 8—10 ns6T3TN/ADisable3TNo
Normal5T2TN/ADisableT4-way
Medium6T3TN/ADisable3TNo
Fast6T3TN/ADisable3TNo
Turbo6T3TN/ADisable2TNo

Важно заметить, что нет никакой разницы между установками SDRAM 8—10, Medium и Fast, поскольку все они имеют одинаковые значения основных временных параметров. Исключение составляет лишь Turbo, которая уменьшает tRCD до 2T (количество тактов шины), что может стать причиной нестабильной работы модулей на микросхемах EMS HSDRAM 150MHz. Еще более важно, что четырехбанковое чередование (4-Way Bank Interleaving) сокращает время активности сигнала RAS# до 5 тактов, определяя общую длительность цикла банка 8T. С позиции производительности Normal ничем не отличается от SDRAM 8—10, Medium и Fast, но демонстрирует интересные результаты: установкой tRCD в 2T при включенном четырехбанковом чередовании можно получить нестабильно функционирующую систему.

DRAM Command Rate

Параметр, устанавливающий задержку поступления команд в память (CMD Rate). Собственно, это понятие является синонимом задержки декодирования контроллером командно-адресной информации. За этим параметром скрывается выбор необходимого физического банка общего адресуемого пространства установленной системной памяти. Физический банк (физическая строка) — это интерфейс, определяющийся шириной шины данных управляющего устройства (контроллера памяти). Микросхемы традиционного синхронного ДОЗУ (SDRAM) соединяются параллельно с интерфейсом данных контроллера, вместе образуя строки, количество которых характеризует, в частности, нагрузочную способность подсистемы памяти. Только один физический банк может быть доступен в определенный момент времени, а выбор необходимого определяется декодированием адреса. В случае, если система укомплектована однострочным модулем памяти (одна физическая строка — конфигурация, при которой суммарная ширина шины данных всех микросхем памяти в составе модуля равна ширине интерфейса данных контроллера памяти), вариантов выбора кроме единственного не существует. Если система основана на двухстрочных модулях, то управляющее устройство должно осуществить интеллектуальный выбор (при помощи команды CS#, выбор кристалла) правильного банка, где содержится необходимая информация. Например, два модуля с двухстрочной физической организацией (полный физический банк — максимальная нагрузка, при которой суммарная ширина шины данных всех микросхем памяти в составе модуля в два раза больше ширины интерфейса данных контроллера памяти) дают уже четыре возможных варианта, один из которых будет правильным.

Декодирование адресного пространства занимает относительно много времени (пропорционально общему объему установленной памяти и организации подсистемы), поэтому контроллеры памяти DDR-интерфейса различных базовых логик (например, VIA Apollo Pro266 и KT266), как правило, имеют две разные программируемые задержки команд для адаптации режима работы с разным типом используемой памяти и конфигурации — 1T или 2T. В стандартном режиме работы задержка с—оставляет 2 цикла, означающие, что команда запирается в микросхеме по второму фронту строба после отработки команды выбора кристалла (CS#). После этого отрабатываются команды активизации банка, чтения и перезаряда в отведенный им фиксированный интервал времени. Рассматриваемая дополнительная задержка применяется исключительно в случае выполнения первоначального доступа (Initial Access, также именуемый произвольным доступом), принимая во внимание то, что все подпоследовательные команды выставлены в очередь в соответствии с установленными в BIOS задержками. Поэтому задержка поступления команды дает эффект только при произвольных доступах.

Как было указано выше, при произвольном доступе команда активизации банка запирается по второму фронту синхросигнала — именно такой механизм применяется в модулях памяти с применением микросхем-регистров — Registered DIMM, — которые уменьшают нагрузку на систему синхронизации и играют роль транзитных буферов, где происходит перераспределение адресов. Также регистры применяются для трансляции команд и их последующей передачи в микросхему памяти с задержкой в 1 такт. В этом случае CMD Rate является критическим фактором. Например, в подсистеме с четырьмя двухстрочными Registered DIMM контроллер памяти управляет только четырьмя микросхемами-регистрами, а не конкретно каждой микросхемой памяти отдельно, что положительно сказывается на общей нагрузке, создаваемой модулями на подсистему памяти. Неудобство состоит в том, что сами регистры, как и положено в синхронных системах, работают согласовано с задающим сигналом, при чем командно-адресная информация транслируется с задержкой в 1Т, передаваясь уже по следующему фронту синхросигнала. Поэтому контроллеры, оптимизированные для работы CMD Rate в 2T при использовании в системе модулей памяти, содержащих микросхемы-регистры, ожидают появления данных на выходе на один такт раньше, чем Registered DIMM могут выдать — отсюда и возникают ошибки в работе. Таким образом, нормально спроектированные системы должны содержать контроллер памяти, учитывающий ранее упоминавшуюся задержку 2T, включающую этот дополнительный цикл ожидания.

Для небуферизированных модулей памяти (Unbuffered DIMM) контроллер снимет дополнительный такт задержки, уменьшив общую до 1 цикла, что говорит о запирании команды по следом идущему фронту тактового сигнала и экономии одного такта при каждом следующем произвольном доступе к памяти. В свою очередь, это увеличивает реальную пропускную способность в зависимости от того, насколько загружена шина памяти и сколько случайных доступов выполнено.

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

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

SDRAM Banks Close Policy

Контроль над операциями закрытия логических банков микросхемы синхронного ДОЗУ введен специально из-за того, что устройства с определенной логической организацией работают не совсем корректно в системах, основанных на некоторых базовых наборах. Например, контроллер памяти, находящийся в составе хаба FW82815 базового логического набора i82815, позволяет держать одновременно открытыми до четырех страниц в раздельных логических банках (для микросхемы памяти с четырехбанковой логической организацией это значит — по одной странице на каждый банк) — грубо говоря, этот механизм эквивалентен чередованию банков (Bank Interleaving). Поэтому, если произошло попадание в страницу, логика попытается выбрать альтернативную политику (проще говоря, принять определенное решение): выполнить фазу закрытия банка и всех открытых страниц или закрыть только страницу (Close Page), в которую произошел промах. Если принято решение о закрытии одной страницы, другие могут оставаться открытыми, в результате чего доступ "банк-банк" возможен лишь с дополнительной задержкой в 1 такт. В случае, если запрашиваемые данные найдены в открытой странице, доступ к ним может быть произведен немедленно (Seamlessly). Однако данные установки параметра связаны с определенным риском, поскольку в случае промаха в страницу (Page Miss), соответствующая строка будет закрыта для проведения цикла перезаряда и откроется уже по проcшествии полного установленного цикла задержек. В случае применения политики закрытия всех банков (Close All Banks) последующий доступ будет считаться холостым (бесполезным), поскольку банки нельзя закрыть до момента прихода команды начала следующего цикла. Плюс, после закрытия банка необходимо произвести его реактивизацию, на что потребуется определенное количество дополнительных тактов.

SDRAM Speculative Read

Параметр, разрешающий (Enable) или запрещающий (Disable) производить опережающее чтение в SDRAM-базируемой подсистеме памяти. Это значит, что его включение позволяет выдавать сигнал разрешения записи (WE#) немного ранее, чем адрес будет декодирован (однозначно определен). Этот режим подобен "Speculative Leadoff" и снижает общие временные задержки на проведение операции чтения. Другими словами, инициализация (установка) сигнала разрешения записи происходит практически одновременно с генерацией того адреса, где находятся необходимые данные. Поэтому, если рассматриваемый параметр включен, контроллер выдаст сигнал WE# до завершения декодирования адреса считываемой ранее ячейки, несколько повышая общую производительность системы.

Read Around Write

Шина данных является двунаправленным интерфейсом, однако в определенный момент времени информация по ней может перемещаться только в одном направлении. Это означает, что команда записи может прерваться командой чтения. В среднем, операции записи занимают лишь небольшую часть общего трафика (около 5-10 %), тем не менее, даже теоретический один записанный бит может стать причиной довольно ощутимой задержки выполняемой в этот момент операции чтения. Для обхода данной проблемы контроллер памяти содержит специальный накопительный RAW-буфер (Read Around Write), куда при его активизации (Enable) скапливаются данные для записи, и когда шина освобождается, информация из буфера перемещается в массив ДОЗУ, не прерывая выполнения текущей операции. В дополнение к этому, RAW-буфер может применяться как дополнительный мини-кэш, который процессор может использовать для непосредственного получения информации без доступа в системное ОЗУ. Накопительный буфер также является довольно важным составляющим в SMP-системах, поскольку его можно использовать в целях упрощения механизма слежения (обеспечение когерентности) и распределения и данных между агентами (процессорами) без необходимости доступа в основную память.

SDRAM PH Limit

Ограничение на количество попаданий в страницу логического банка микросхемы SDRAM. Влияние фаз регенерации на производительность увеличивается с увеличением объема микросхемы памяти (или с увеличением объема модуля памяти). Как говорилось ранее, регенерация просто необходима в силу динамической природы ядра ДОЗУ, поскольку конденсатор теряет заряд (читай, данные) через четко установленный промежуток времени. С момента открытия страницы усилитель уровня может удерживать данные только ограниченное время. Для гарантированного поддержания целостности данных, поскольку они через определенный интервал возвращаются обратно в строку, необходимо ввести ограничение на время активности страницы. Поэтому в BIOS некоторых чипсетов (например, AMD-750) обычно присутствует соответствующий пункт меню для того, чтобы иметь возможность выбрать между 8 и 64 попаданиями в страницу до момента закрытия строки. В зависимости от количества модулей в системе и от их организации (объема используемого модуля и логической организации микросхем в составе этого модуля) экспериментально можно подобрать оптимальное значение количества попаданий в страницу. Поскольку при условии нормального функционирования существует весьма ограниченная вероятность, что следующая команда чтения попадет в ту же страницу, что и предыдущая, вероятность возникновения промаха в страницу увеличивается по экспоненциальной зависимости после каждого последовательного идущего друг за другом попадания. Если строка остается открытой, ее необходимо закрыть до прихода сигнала RAS# (до подачи очередной команды выбора строки), что является наилучшим вариантом по прошествии четко установленного количества попаданий в страницу (принудительное закрытие страницы). Кроме этого, данное обстоятельство снимает определенное количество циклов задержки, необходимых для выполнения перезаряда, от общего числа задержек, которые могут возникнуть при промахе. Поэтому для получения наилучшей производительности в ресурсоемких приложениях рекомендуется устанавливать данный параметр максимально в значение 16.

Иногда своего рода схожий параметр можно встретить с названием PLT (Page Life-Time, Enhance Page Mode Time). Так, существует одно достаточно фундаментальное различие между этими подходами: в отличие от PH Limit, который ограничивает количество последовательных попаданий в страницу и принудительно ее закрывает, PLT не имеет счетчика статистики "хитов" (попаданий), однако основан на механизме определения момента закрытия строки. Тем не менее, таймер активизируется только после выхода интерфейса из состояния ожидания после того, как полностью законченная процедура чтения/записи сбросит счетчик. Как следствие, от продолжительности последовательности команд чтения/записи зависит время пребывания страницы в активном состоянии, пока не произойдет промаха.

SDRAM Idle Cycle Limit

Интерфейс некоторых BIOS предоставляет возможность выбора ограничения на количество холостых циклов микросхемы SDRAM (иногда встречается как SDRAM Idle Timer), определяющееся отношением длительности цикла активности банка к времени его простоя (холостому ходу). Иными словами, это интервал времени, в течение которого страница может оставаться открытой даже в случае, если текущая команда активизации адресована не ей. Данный параметр напрямую связан с PH Limit и обычно составляет от 0 до до 64 тактов, следом за чем идет непрерывный цикл (Infinity), при котором теоретически строка может оставаться постоянно открытой. Это означает не только задание возможного количества последовательных попаданий в одну и ту же страницу, но также и возможность запрограммировать контроллер для закрытия конкретной страницы, если в нее не намечается запросов на чтение в определенный интервал времени. Очевидно, ключевым моментом в этом механизме является скорость выполнения кристаллом ДОЗУ команды регенерации (Precharge, PRE) — чем быстрее она выполняется, тем скорее можно получить данные, если в этот момент контроллером получена команда чтения/записи в строку памяти, проходящую цикл перезаряда.

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

DRAM Drive Strength

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

Небуферизированные (Unbuffered) модули памяти SDRAM DIMM имеют конечную частоту функционирования, при которой сохраняется стабильность работы. Однако с увеличением количества микросхем в составе модуля увеличивается емкостная нагрузка на шину памяти. Это обстоятельство требует большей силы тока, чтобы поддерживать определенный уровень сигнала, поскольку типичная сигнальная линия представляется (довольно упрощенно) как RC-цепь, где при фиксированном значении сопротивления емкость является сдерживающим фактором. Таким образом, получается, что лучшей производительности и стабильности можно достигнуть меньшим количеством установленных модулей памяти — иными словами, меньшей емкостной нагрузкой на шину. С другой же стороны, это означает использование модулей с микросхемами памяти большой информационной емкости и логической организации (для уменьшения нагрузки на сигнальную линию), что поддерживается далеко не всеми базовыми логиками — большинство чипсетов имеют ограничение в 16 микросхем на полную физическую строку (два физических банка). Например, модули памяти с применением микросхем-регистров (Register) и микросхем фазовой автоподстройки частоты (ФАПЧ, PLL) — Registered DIMM — с позиции рассматриваемого вопроса позволяют использовать до 36 микросхем памяти на полную строку, при этом значительно уменьшая нагрузку на командно-адресный интерфейс подсистемы.

Если данный параметр рассматривать с позиции физических терминов, то все базируется на емкостной нагрузке, фронтах импульсов и согласовании по полному сопротивлению (Zo). В результате небольших преобразований получаем зависимость полного сопротивления на заданной частоте от емкости нагрузки: Zo=U/I=1/(C*f). Поскольку полное сопротивление зависит от напряжения и тока сигнала в цепи, данной установкой BIOS можно регулировать Zo, изменяя значения U и I, оптимизируя емкостную нагрузку на сигнальную линию шины. Если увеличивать одновременно напряжение и ток, поддерживая постоянное значение сопротивления, то, понятно, увеличится и мощность, рассеиваемая в цепи. С другой стороны, если сохранять постоянным уровень напряжения, увеличивая ток в цепи, можно увеличивать полное сопротивление. Основной целью же является согласование внутреннего сопротивления источника с собственным сопротивлением сигнальной линии и сопротивлением нагрузки (согласование сопротивлений). Это позволяет минимизировать отражения сигнала и перекос (идеализировать форму и длительность фронта) между активными уровнями — по-другому, улучшить целостность сигнала. Понижением уровня сигнала (для SDRAM стандартно 3.3V), уменьшается запас помехоустойчивости (Noise Margin) для высокого и низкого логических уровней. Тем не менее, наиважнейшим контролирующим фактором импеданса (полного сопротивления, Zo) является именно ток. Изменяя значение силы тока при постоянном уровне напряжения сигнала, можно контролировать полное сопротивление, а значит — управлять нагрузкой на конкретную сигнальную линию.

Впервые управление токовой нагрузкой встречается в логических наборах серии Triton от Intel — i82430HX и i82430TX. Управляющий регистр DRAMEC (DRAM Extended Control Register), содержащийся в северном мосту этих наборов, отвечает за уровень сигнала на адресных линиях (MAD — Memory Address Drive Strength). Иными словами, этот 2bit регистр DDECR[2:1] программирует токовую нагрузку на выходные буферы линий адресации MAA[1:0]/MAB[1:0] и MA[11:2]/MWE# по значениям 8/12 mA для моста FW82439HX (базовый набор i82430HX) и 10/16 mA — для FW82439ТX (логика i82430TX). В некоторых базовых наборах от VIA (например, КТ133) ввели персональный расширенный 8bit регистр, который позволяет программировать выходные буферы не только адресных линий, но и других по значениям 12/24 mA. Изменяя значения силы тока по линиям данных (Memory Data Drive), команд (SDRAM Command Drive), адреса (Memory Address Drive) и стробов (CAS# Drive и RAS# Drive) можно добиться повышения скорости или стабильности функционирования подсистемы памяти.

Своего рода частным случаем рассматриваемого параметра является ограничение физической нагрузки на строку по частоте. Например, серия i82815xx отличается от базовых наборов VIA невозможностью работы подсистемы памяти в опережающем асинхронном по сравнению с основной шиной режиме (исключение составляет лишь случай 66/100 MHz по основной шине/интерфейсу подсистемы памяти соответственно). Для предотвращения возможных аппаратных сбоев памяти на высокочастотной шине и увеличении нагрузки на физическую строку разработчик ввел интегрированные в контроллер датчики строки (Bank Sensor), определяющие суммарную физическую нагрузку. При помощи механизма обратной связи организовано управление нагрузочно-частотной характеристикой подсистемы памяти: при частоте основной шины (FSB) в 133MHz и нагрузке по подсистеме памяти до четырех физических строк включительно баланс по частоте сохраняется. Если же суммарная нагрузка более четырех физических строк, то подсистема памяти автоматически переводится в 100MHz режим функционирования.

System BIOS Cacheable

Параметр, разрешающий (Enable) или запрещающий (Disable) кэширование BIOS. После загрузки системы нет необходимости производить обращение к ПЗУ, поскольку все системные установки и параметры загружаются в ОЗУ, поэтому кэшировать эти данные нецелесообразно. Тем не менее, включение этого параметра приводит к появлению возможности кэширования (очень быстрого доступа к необходимым данным) области памяти по адресам системного BIOS в ОЗУ. Поскольку память, используемая в BIOS, очень медленная, то есть возможность копирования установок BIOS в специально отведенный участок (F0000h—FFFFFh) системной памяти, но это применимо лишь только в случае, если системный BIOS затенен (Shadow). Но если какая-либо программа попытается выполнить операцию записи в данные адреса, то это может привести к глобальной ошибке системы.

Video BIOS Cacheable

Параметр, управляющий кэшированием BIOS видеокарты, но работающий лишь в случае, если видео BIOS затенен (пункт Video BIOS Shadow в положении Enable). Разрешение этого параметра приводит к появлению возможности кэширования области памяти по адресам BIOS видеоадаптера C0000h—C7FFFh в ОЗУ аналогично "System BIOS Cacheable", только в этот раз копируются установки подсистемы видео. Если какая-либо программа попытается выполнить операцию записи в эти адреса, то система выдаст сообщение об ошибке. В данном случае рекомендации по установке рассматриваемого параметра аналогичны предыдущему пункту.

Video RAM Cacheable

Аналогично двум предыдущим параметрам, разрешение (Enable) которого позволят кэшировать содержимое видеопамяти в системном ОЗУ (A0000h—AFFFFh), увеличивая при этом скорость доступа к видеопамяти и несколько улучшает системную производительность.

8 bit I/O Recovery Time

Пункт настройки, характеризующий время восстановления после проведения операции чтения/записи для 8bit устройств ISA-интерфейса — так называемый механизм восстановления шины ввода/вывода (I/O Bus Recovery Mechanism). Данный параметр измеряется в тактах шины и определяет, какую задержку система будет устанавливать после выдачи запроса на чтение/запись устройства ввода/вывода. Эта задержка необходима, так как цикл чтения/записи для устройств интерфейса ISA существенно больше, чем для периферийных компонент PCI. Рекомендуемое значение этого параметра по умолчанию 1, и его следует увеличивать только в случае установки в компьютер какого-либо достаточно медленного ISA-устройства. Может принимать значения от 1 до 8 тактов и NA (по умолчанию соответствует 3.5 такта).

16 bit I/O Recovery Time

Параметр, характеризующий время восстановления после проведения операции чтения/записи для 16bit устройств ISA-интерфейса. По аналогии с предыдущим параметром, рекомендуемое устанавливаемое значение — 1. Может принимать значения от 1 до 4 тактов и NA (по умолчанию соответствует 3.5 такта).

Memory Hole at 15M-16M

"Дырка" в промежутке между 15-м и 16-м мегабайтами системного ОЗУ (в некоторых конфигурациях бывает 14—15). Ее разрешение (Enable или указание используемого пространства напрямую) позволяет обращаться к устройствам ввода/вывода, использующим интерфейс Legacy ISA, как к памяти, за счет чего увеличивая скорость доступа к ним, однако запрещает системе использовать отведенную область ОЗУ, резервируя ее для нужд установленной карты расширения. Поэтому включать этот параметр следует в том случае, если это требуется в документации на установленную в компьютере периферийную плату. Выключение (Disable или None) позволяет исключить для всех обычных программ возможность использования указываемой области памяти и дать системе прямой доступ к полному объему установленного системного ОЗУ.

VGA Shared Memory Size

В отличие от предыдущего параметра, данная настройка характеризует резервируемую память для нужд подсистемы видео, интегрированной в сам чипсет. Унифицированная архитектура памяти (UMA — Unified Memory Architecture) является аналогом еще одного похожего стандарта — SMBA (Shared Memory Buffer Architecture). Базисная идея UMA — предоставить раздельный доступ к основной памяти в системе, исключив за счет этого необходимость в специально выделенных графических буферах, где базовая логика уступает контроль над системным ОЗУ, когда интегрированный графический контроллер требует к ней доступ. Все это довольно негативно сказывается на общей производительности системы, поскольку унифицированный кадровый буфер ее "тормозит" (иногда падение может доходить до 15%) относительно non-UMA версии. Теоретически, рассматриваемый механизм допускает динамическую смену размера кадрового буфера в зависимости от требований текущего запущенного приложения, однако практически невозможно выйти за рамки отведенного в BIOS Setup объема. Поэтому для определения необходимого объема с учетом требуемой разрешающей способности экрана, глубины цвета и максимально возможной гранулярности (наименьший шаг изменения) памяти (0.5MB) будет полезна следующая таблица:

Устанавливаемый объем кадрового буфера

Разрешение экранаКоличество цветов (глубина цвета)
16 (4bit)256 (8bit)65536 (16bit)16.7 млн. (24bit)
640x4800.5 MB0.5 MB1.0 MB1.0 MB
800x6000.5 MB0.5 MB1.0 MB1.5 MB
1024x7680.5 MB1.0 MB1.5 MB2.5 MB
1280x10241.0 MB1.5MB2.5 MB4.0 MB
1600x12001.0 MB2.0MB4.0 MB6.0 MB

Однако стоит заметить, что изменение объема резервируемой под кадровый буфер памяти может иметь разную дискретность с шагом от 0.5MB до арифметической прогрессии (2N) и собственный "потолок", определяемые конкретной версией BIOS. Поэтому цифры в таблице являются "опорными" и возможно, что требуемый объем не удастся установить точно, в результате чего потребуется определить близкое (в ту или иную сторону) значение от необходимого.

PCI 2.1 Support

Параметр, определяющий поддержку спецификации шины PCI 2.1, параллельную работу которой, кроме "Passive Release" и "Delayed Transaction", характеризуют еще два механизма: Multi-Transaction Timer (MTT — таймер для нескольких транзакций, который позволяет устройствам, управляющим шиной PCI, сохранять за собой управление шиной и выполнять передачи коротких пакетов данных без повторной процедуры контроля шины, что дает возможность повысить производительность при обработке, например, видеоданных) и Enchanced Execute Recording (EER — улучшенная производительность при записи, которая достигается благодаря использованию буферов большей глубины, слиянию операций и более быстрому обновлению DRAM, в результате чего циклы записи оказывают меньшее воздействие на системную производительность, а при слиянии операций записи циклы байта, слова и двойного слова объединяются в единую операцию записи в память). Однако эти два режима в рассматриваемой спецификации включены по умолчанию и в управлении не нуждаются. Данная ревизия спецификации 2.1 расширяет поддерживаемые возможности версии 2.0: реализована возможность работы 64bit устройств PCI, кроме чего введен мостовой механизм PCI-to-PCI, позволяющий увеличивать максимальное число устанавливаемых периферийных устройств PCI-интерфейса — теперь их может быть более 4. Однако самое важное отличие — это специфический механизм Concurrent PCI: теперь шина опирается на мультитранзакционный таймер, оптимизирующий производительность для коротких, но мощных потоков, что облегчает работу в режиме реального времени, и обмен данными по интерфейсу выполняется более эффективно. Задержки, вносимые задатчиками шины, снижаются, что облегчает эффективную одновременную работу процессора и PCI/ISA-устройств, потому как теперь каждый отдельный слот PCI носит качество управляющего (функционирует в режиме Bus Master).

Интересными являются также два уникальных механизма, позволяющих улучшить эффективность обмена данными между PCI и другими подсистемами. Так, буфер записи процессор-PCI-интерфейс (CPU-to-PCI Write Buffer) предоставляет возможность записи до четырех слов, поставленных в очередь интерфейсу PCI, после передачи команды готовности устройством принимать данные. Обычно же процессор может выполнять исключительно прямую запись в PCI и будет простаивать в ожидании, пока устройство не возвратит ответ о подтверждении готовности приема. Иными словами, использование данного буфера позволяет значительно уменьшить количество холостых тактов (Idle Cycles) в режиме ожидания процессора.

Режим предвыборки из памяти (PCI-to-DRAM Prefetch) используется во избежание повторяющихся фаз доступа в системное ОЗУ для извлечения и доставки небольших порций, которые можно предварительно выбрать из массива когерентных данных. Это значит, что данные постоянно находятся в буфере до того, как понадобятся, и могут быть доступны с минимальной задержкой.

Выключать же параметр "PCI 2.1 Support" следует, если установленная плата не соответствует версии 2.1 и при работе дает сбои. Если все периферийные устройства используют интерфейс PCI 2.1, то данный параметр рекомендуется включить.

Passive Release

Пассивное освобождение. Данный режим работы является своего рода "коньком" функционирования шины PCI, начиная с версии 2.0 — это реализация ее параллельной работы, которая позволяет более эффективно выполнять передачи данных между процессором, PCI и ISA интерфейсами для повышения скорости. Допуская чередующиеся обращения к шине от процессора и других устройств управления PCI, система может продолжать обработку запросов даже тогда, когда обращение от устройства интерфейса ISA полностью захватило шину. Иными словами, рассматриваемый механизм определяет согласованность циклов EISA/ISA и обращений CPU-to-PCI (процессор-устройство PCI), что дает возможность переопределить PCI-шину и позволяет процессору получить к ней прямой доступ и захватить управление. Поэтому включение (Enable) данного режима позволит периферийным компонентам, подключенным к шинам PCI и ISA, использовать меньше системных ресурсов.

Delayed Transaction

Задержанная (отложенная) транзакция. Интерфейс ISA функционирует на 1/4 от частоты синхронизации шины PCI, имея поэтому гораздо большие задержки. Если устройство PCI пытается получить доступ к системной шине в момент, когда ее заняло устройство ISA-интерфейса, в этом случае устройство PCI может произвести временную запись передаваемых данных в специальный буфер, из которого позднее данные в фазе пассивного освобождения выставятся на запись в системную шину. При этом устройства управления интерфейсов могут свободно воспользоваться шиной PCI, а передача данных на шину ISA может быть завершена позднее. Данный механизм чрезвычайно актуален, поскольку, например, цикл такого обращения устройства 8bit интерфейса ISA занимает около 50—60 тактов шины PCI. Поэтому задержанная транзакция позволяет более эффективно использовать шины PCI и ISA, что должно привести к более гладкой работе периферийных компонентов ISA-интерфейса и дать возможность одновременного доступа к устройствам на шинах ISA и PCI. Включение (Enable) этого параметра заметно облегчает согласованность данных интерфейсов, применяя 32bit буфер для поддержки увеличения временного цикла обмена на шине PCI. Однако, если в системе периферийная карта ISA-интерфейса не установлена, данный параметр рекомендуется выключить (Disable).

PCI Latency Timer

Таймер задержки на шине PCI. Инициатор (Master) и целевое устройство на шине PCI должны иметь определенные ограничения на количество циклов ожидания, которые они могут добавлять к текущей транзакции. Кроме того, иницииатор запроса должен иметь программируемый таймер, ограничивающий его присутствие на шине, как задающего агента в периоды максимальной загрузки интерфейса. Аналогичное требование предъявляется и к мостам, осуществляющим обращение к устройствам с большим временем доступа (ISA, EISA, MC интерфейсов), причем данные мосты должны разрабатываться исходя из жестких требований отсутствия значительного влияния низкоскоростных устройств на общую производительность шины PCI.

В случае отсутствия у хозяина шины достаточного объема буфера для хранения считанных данных, он должен отложить свой запрос на шину до полной готовности буфера. В цикле записи все данные, предназначенные для передачи, должны быть готовы к записи перед процедурой выполнения фазы доступа к шине. Для обеспечения максимальной производительности PCI-интерфейса данные должны передаваться по схеме «регистр-регистр». В системах, построенных на шине PCI, всегда необходимо соблюдать компромисс между низким значением задержки (присутствием агента на шине в активном режиме) и достижением наивысшей производительности всех участников транзакций. Как правило, наивысшая производительность достигается при длительном непрерывном (пакетном) доступе устройства к шине.

Каждый слот расширения компонент интерфейса PCI имеет четко определенное количество тактов для получения непрерывного доступа к системной шине. С момента его получения каждый доступ сопрягается с начальной задержкой (пенальти), а соотношение между количеством холостых циклов и активных улучшается с увеличением циклов задержки шины (PCI Latency). В общем случае, допустимый диапазон значений задержек лежит в пределах от 0 до 255 тактов шины PCI с шагом, кратным 8. Регистр, управляющий данной задержкой, должен быть доступен для записи в случае, если устройство может осуществлять пакетный доступ к шине более чем за две фазы, и должен оставаться в режиме только для чтения (Read-Only) для устройств, обеспечивающих свой доступ за две и менее фазы в пакетном режиме (аппаратное значение таймера в этом случае не должно превышать 16 тактов PCI). Увеличение задержки, например, с 64 до 128 циклов шины должно улучшать системную производительность на 15% (производительность также увеличивается, если значение задержки изменить с 32 до 64 тактов). Если в системе используется чипсет с хабовой архитектурой (например, все Intel 8xx), то значение PCI Latency, присутствующее в настройках BIOS, относится только к мосту PCI-to-PCI/AGP, а не к Host-to-PCI, поскольку MCH (хабы основных интерфейсов, входящие в состав набора логики) не поддерживают PCI Latency.

AGP 2X Mode

Спецификация ускоренного графического порта (Accelerated Graphics Port) в своей основе содержит общие команды управления PCI с разницей в возможности проведения прямых операций в памяти (DiME или DME — Direct (in) Memory Execute), наличии порта адресации (SBA — SideBand Addressing) и использовании режима сквозной записи в системное ОЗУ (Fast Write).

Используя механизм DiME, видеоадаптеры на основе шины AGP могут функционировать в двух режимах. В режиме DMA контролер ведет себя как обычное видеоустройство PCI, используя только собственную локальную память для хранения текстур и выполнения операций — механизм функционирования DiME отключен. В случае использования режима Execute контроллер "унифицирует" часть системной памяти (именно этот объем указывается в параметре "AGP Aperture Memory Size") для хранения текстур, используя специфическую схему переадресации (GART — Graphic Address Remapping Table), динамически переназначая 4KB-страницы. Некоторые производители видеоконтроллеров не вводят поддержку DiME (AGP-текстурирование), используя интерфейс AGP только для совместимости, а реализуя лишь режим DMA. По сути дела, такой акселератор работает как обычный PCI-видеоадаптер лишь с "механической" разницей — частота функционирования увеличена в два раза: 66MHz у AGP против 33MHz у PCI.

Специфический порт адресации SBA дает возможность, используя фронт и срез синхросигнала, увеличивать результирующую (ее еще называют "эффективной") частоту шины AGP, не увеличивая при этом задающей (опорной) — 66MHz. AGP транзакции (пакет, в пределах которого несколько операций выполняются, как единое целое) используются только в режиме управления шиной (Bus Mastering) — в то время как обычная PCI транзакция в лучшем случае может передавать четыре 32bit слова за 5 тактов (так как передается адрес по шинам адреса/данных для каждого пакета из четырех слов), транзакция AGP может использовать Sideband для передачи адреса небольшими частями одновременно с данными. Во время передачи пакета из четырех слов передаются четыре части адреса для следующего пакетного цикла. По завершении цикла адрес и информация запроса для формируемого пакета уже переданы, поэтому следующий пакет из четырех слов может стартовать немедленно. Таким образом, по AGP можно передать четыре слова за 4 цикла шины, а не за пять, необходимых для PCI, что, с учетом 66MHz частоты синхронизации, в идеале дает пиковую пропускную способность 264MBps.

Для более быстрой передачи информации процессор сначала записывает данные в системную память, а графический контроллер делает их выборку. Однако в случае передачи большого объема данных, пропускной способности системной памяти может не хватить, для чего внесен сквозной режим передачи — Fast Writes. Он позволяет процессору напрямую, не обращаясь к системной памяти, передавать данные графическому контроллеру, что, безусловно, достаточно ощутимо может поднять производительность графической подсистемы и снять часть нагрузки с основной подсистемы памяти ПК. Тем не менее, данный режим поддерживается не всеми системными логиками — состояния статусных регистров отдельных чипсетов запрещают на самом низком уровне его использование. Так, режим сквозной записи на данный момент реализован в некоторых чипсетах от Intel (серия i820, i840, i850 и i845x) и VIA (Apollo 133A, KX133, KT133 и все последующие). Системные логики i440хX, i810, i815, AMD-750, AMD-760 и AMD-760MPx этих производителей данный режим не поддерживают.

Режим AGP 2X позволяет включать/выключать (Enable/Disable) удвоенный протокол передачи данных по интерфейсу AGP. Как уже говорилось, передача данных в спецификации AGP 1X осуществляется по фронту синхросигнала, используя 66MHz строб, обеспечивая в пике пропускную способность в 264MBps. Включение режима AGP 2X Mode удваивает пропускную способность при помощи передачи данных по фронту и срезу синхросигнала до теоретического "потолка" в 528MBps. При этом, понятно, обязательна поддержка спецификации AGP2X как базовой логикой, так и графическим контроллером. Выключение данного режима рекомендуется, если наблюдается нестабильная работа системы или планируется разгон (не учитывается для базовых логик с асинхронным интерфейсом AGP — например, серии i850 и i845x).

AGP Aperture Memory Size

Гипотетическое преимущество интерфейса AGP относительно PCI, если не учитывать схему синхронизации, состоит в том, что он позволяет использовать системное ОЗУ как часть унифицированной архитектуры (UMA — Unified Memory Architecture) для хранения данных, применяя ранее упоминавшийся режим DiME. Графический адаптер может получать доступ к данным и работать с ними прямо в системной памяти, минуя собственную локальную память. Эта особенность требует отведения четко заданного объема системного ОЗУ для использования под операции с графическими данными. По мере увеличения объема локальной видеопамяти графического контроллера, данная особенность резервирования части системной памяти, понятно, теряет собственную релевантность, в результате чего существует несколько рекомендаций по использованию объема отводимого участка основной памяти.

Вообще, апертура является частью диапазона адресного пространства системного ОЗУ, отведенного под графическую память. Ведущие циклы, подпадающие под этот диапазон апертуры, пересылаются к интерфейсу AGP без необходимости трансляции. Размер апертуры AGP определяется, как максимально используемая AGP память, умноженная на два (х2), плюс 12MB — это значит, что размер используемой памяти AGP составляет менее половины размера апертуры AGP. Данное обстоятельство объясняется тем, что система требует не кэшированную память AGP, плюс аналогичную по объему область памяти для комбинированной записи и дополнительные 12MB для виртуальной адресации. Физическая память освобождается по необходимости только когда API (программный слой) делает соответствующий запрос создания нелокальной поверхности (Create Non-local Surface). Операционные системы Windows 9х, например, используют эффект "водопада" (Waterfall Effect), когда поверхности сначала создаются в локальной памяти, а в случае ее заполнения, процесс создания поверхности передается в AGP память, а затем — в системную. Таким образом, использование ОЗУ автоматически оптимизируется для каждого приложения, где AGP- и системная память не используются без абсолютно крайней необходимости.

Однозначно дать схему определения оптимального размера апертуры очень сложно. Тем не менее, оптимум резервирования истемного ОЗУ может определяться следующей формулой: общий объем системного ОЗУ/(объем видео ОЗУ/2). Например, для видеоадаптера с 16MB видеопамяти в ПК со 128MB системного ОЗУ апертура AGP составит 128/(16/2)=16MB, а для видеоадаптера с 64MB видеопамяти в ПК с 256MB системного ОЗУ — 256/(64/2)=8MB. Данное решение является своего рода аппроксимацией — реально в любом случае рекомендуется отводить под апертуру не менее 16MB. Необходимо также помнить, что размер апертуры (по схеме 2N, или выбор между 32/64 MB) прямо не соответствует получаемой в результате производительности, поэтому увеличивая его до огромных пропорций, производительность не улучшиться. В настоящее время, при среднем объеме системного ОЗУ 128—256 MB, практическим правилом считается иметь размер апертуры AGP от 64MB до 128MB. Превышая 128MB "барьер", производительность не ухудшается, но все равно лучше придерживаться "стандартных" 64—128 MB, чтобы размер таблицы GART не был слишком большой.

Другой "лобовой" рекомендацией, являющейся скорее результатом множественных практических экспериментов, может быть отведение под AGP Aperture Memory Size половины объема системного ОЗУ с учетом возможности BIOS: 8/16/32/64/128/256 MB (схема с шагом 2N) или выбор между 32/64 MB. Однако в системах с небольшим (до 64MB) и с большим (от 256 и более) объемом ОЗУ данное правило не всегда работает (сказывается эффективность), кроме чего, как говорилось ранее, надо еще и учитывать объем локального ОЗУ самой видеокарты. Поэтому рекомендации в данном контексте можно представить в виде следующей таблицы с учетом возможности BIOS:

Зависимость размера апертуры от объема системного ОЗУ

Объем системного ОЗУAGP Aperture SizeОбъем системного ОЗУAGP Aperture Size
16MB8/16 MB128MB64MB
32MB16/32 MB256MB64/128 MB
64MB32MB512MB128MB

Spread Spectrum Modulated

Генератор синхросигналов (Clock Synthesizer/Driver) является источником пульсаций, предельные величины которых образуют электромагнитную интерференцию (EMI — ElectroMagnetic Interference) — высокочастотное электромагнитное излучение (помехи), проникающее за пределы среды распространения (передачи), главным образом за счет использования высоких частот для несущей и модуляции. В основе эффекта EMI лежит сложение двух или более частот, в результате чего спектр сигнала приобретает сложный характер. Спектральная модуляция тактового импульса (SSM, по-другому SSC — Spread Spectrum Clock) позволяет равномерно распределить ничтожно малые значения общего фона электромагнитного излучения, исходящего от любого функционирующего компонента системы, по всему частотному спектру синхроимпульса. Иными словами, SSM позволяет "скрыть" высокочастотные помехи на фоне полезного сигнала путем внесения в его спектр еще одного дополнительного сигнала, функционирующего в частотном диапазоне нескольких десятков килогерц (такого рода процесс и называется модуляцией).

Механизм SSM предназначается для уменьшения интерференции гармоник высших типов частоты функционирования шины. Теория сигналов говорит о том, что на определенной частоте в сигнальной линии любая форма волны порождает высшие типы гармонических колебаний, которые аккумулируясь впоследствии могут стать помехой для основного сигнала. Одним из путей обхода данной проблемы является воздействие на основной сигнал определенной частоты модулирующих колебаний гораздо более низкой, что является результатом вариаций ±1% от номинального значения задающей. Обычно реализация SSM сводится к использованию двух разных значений, номинальная частота для которых является опорной, или установка основной частоты как максимума (низкопрофильная модуляция) — чаще к опорной. В действительности же существует масса причин и методов.

В основе стоит факт, что с увеличением частоты функционирования электронные компоненты излучают электромагнитные помехи, которые, в свою очередь, могут стать причиной интерференции сигналов других устройств. Поскольку любое устройство, которое превышает предел допустимых значений влияний сторонних сигналов, не проходит сертификацию федеральной комиссии по связи (FCC — Federal Communication Committee), важно понять методы определения уровня EMI. Для начала тестируемое устройство вводят в режим радиоприемника и определяют диапазон частоты приема в широком спектре с измерением интерференция с видео и аудио сигналами. Чувствительность полосы пропускания тестируемого устройства определяется в порядке 1MHz. Если основная рабочая частота модулируется, расширяя полосу пропускания на более чем типичные 4—5 MHz, спектр электромагнитной интерференции изменяется: вместо острых резких пиков (обычная форма проявления немодулированного EMI) появляются так называемые "гауссовы колокола" (форма сигнала, сверху ограниченная кривой, описываемой гауссовым распределением), в результате чего результирующая амплитуда сигнала становится значительно меньше (1/3—1/4 от амплитуды немодулированной несущей частоты, несущего сигнала). Однако, несмотря на это, энергетика остается постоянной. Поскольку ширина импульса становится больше, а закон сохранения энергии должен выполняться, амплитуда этого сигнала будет меньше.

Разрешение (Enable) модуляции спектра может уменьшить уровень ЭМИ, вызванный скоплением близкорасположенных компонентов, функционирующих на высоких частотах, и улучшить стабильность работы. В случаях использования внештатных условий ("разгон"), включение SSM может привести к нестабильной работе системы из-за того, что с большим значением коэффициента умножения, применяющегося в настоящее время, ±0.5% модуляции могут стать причиной разницы настолько, насколько, скажем, 10MHz для одного цикла модуляции. Иными словами, если процессор функционирует на предельной частоте, ее увеличение еще на 10MHz может стать фатальным, поэтому при работе системы во внештатных условиях функционирования (Overclocking) SSM настоятельно не рекомендуется использовать (Disable).

Autodetect DIMM/PCI Clk

В течение нормального функционирования системы синхросигналы от формирователя передаются через все слоты расширения интерфейсов памяти и PCI. Каждый отдельный слот и его выводы имеют собственные индуктивность, полное сопротивление и емкость, приводящие к ослаблению и затуханию синхросигнала. В добавление к этому сторонние сигналы являются источником EMF (Electric Motion Force, ЭДС) и EMI. Рассматриваемый параметр помогает автоматически определять и настраивать частоту функционирования модулей памяти и адаптеров интерфейса PCI. Его включение (Enable) позволяет уменьшить влияние электромагнитной интерференции на устанавливаемые в систему компоненты, что, в свою очередь, повышает общую стабильность работы всей системы в целом.

Резюме

Итак, ясно одно: однозначно высокоскоростную и чрезвычайно надежную систему можно получить, используя только достаточно качественную память. Это значит, что на данный момент современная память, если она, например, SDRAM, должна жестко удовлетворять все техническим требованиям, выдвигаемым, как минимум, в рамках спецификации РС100. Приобретая память, отвечающую требованиям РС133, Вы получаете дополнительную гарантию, что те параметры, которые описывались ранее, можно смело установить в рекомендуемый минимум (максимум) и получить максимально быструю и одновременно надежную систему. Саму степень "способности к разгону" и отказоустойчивости каждый модуль памяти, равно как и системная (материнская) плата, определяет по-своему. Именно поэтому четкой рекомендации относительно устанавливаемых параметров дать практически нереально. Но, с другой стороны, есть уже готовая схема настройки, придерживаясь которой можно, затратив некоторое время, создать собственную систему, обеспечивающую максимальные показатели производительности и гарантированного функционирования. На вопрос, как поведет себя модуль памяти, да и система в целом, с установленными в BIOS настройками, однозначно может ответить только конкретная ОС и специализированные тестовые пакеты, которые в состоянии достаточно сильно нагрузить подсистему памяти, тщательно ее проверить и указать на возможные сбои или ошибки. Иными словами, только знание и понимание всех описанных ранее параметров, а также терпение и время позволят добиться желаемого результата в достижении заветной цели любого пользователя ПК: собрать максимально быструю и отказоустойчивую систему — идеал соотношения "качество/производительность".

Список используемых и рекомендуемых источников

  1. JEDEC Standard No. 21-C, Configuration of Solid-State Memories, DDR SDRAM Explained, www.ieee.org
  2. JEDEC Standard No. 21-C, Page 2, Terms and Definitions, www.jedec.org
  3. JEDEC Standard No. 21-C, Page 3.9.5, DRAM Optional Features, www.jedec.org
  4. JEDEC Standard No. 21-C Page 3.11.5, SDRAM & SGRAM Architectural and Operational Features, www.jedec.org
  5. JEDEC Standard No. 21-C, Page 3.11.6, SDRAM Parametric Specifications, www.jedec.org
  6. JEDEC Standard No. 21-C, Page 4.4.2, 72 Pin SIMM DRAM Module Family, www.jedec.org
  7. JEDEC Standard No. 21-C, Page 4.5.4, 168 Pin Unbuffered SDRAM DIMM Family, www.jedec.org
  8. JEDEC Standard No. 21-C, Page 4.5.7, 168 Pin SDRAM Registered DIMM, www.jedec.org
  9. JEDEC Standard No. 21-C, Page 4.5.10, 184 Pin Unbuffered DDR SDRAM DIMM Family
  10. JEDEC JC-42.3-98-227A, 184 Pin DDR SDRAM Registered DIMM, www.jedec.org
  11. JESD79, Double Data Rate (DDR) SDRAM Specification, www.jedec.org
  12. JESD100-B, Terms, Definitions, and Letter Symbols for Microcomputers, Microprocessors, and Memory Integrated Circuits, www.jedec.org
  13. 4 MEG x16 FPM DRAM, www.micron.com
  14. 4 MEG x16 EDO DRAM, www.micron.com
  15. 1MEG x8 DRAM Module, 1 Megabyte, 5V, Fast Page Mode, www.micron.com
  16. 4, 8 MEG x32 DRAM SIMMs, www.micron.com
  17. 4, 8 MEG x36, Parity DRAM SIMMs, www.micron.com
  18. 4, 8 MEG x36, ECC-Optimized DRAM SIMMs, www.micron.com
  19. 16M x 72 Chipkill Correct DRAM Module, www.ibm.com
  20. PC SDRAM Specification, www.intel.com
  21. PC SDRAM Specification, Revision 1.7, www.intel.com
  22. DDR SDRAM/SGRAM An Interpretation of the JEDEC Standard, www.mosaid.com
  23. How to Use SDRAM, User's Manual, www.elpida-memory.com
  24. Synchronous DRAM, User's Manual, www.elpida-memory.com
  25. 128Mb: x32 SDRAM, www.micron.com
  26. 256Mb: x4, x8, x16 SDRAM, www.micron.com
  27. PC SDRAM Unbuffered DIMM Specification, Revision 1.0, www.intel.com
  28. PC SDRAM Registered DIMM Design Support Document, www.intel.com
  29. Double Data Rate (DDR) SDRAM Preliminary Datasheet, www.micron.com
  30. 128Mb: x4, x8, x16 DDR SDRAM, www.micron.com
  31. DDR SDRAM Registered DIMM Design Specification, www.ibm.com
  32. Accelerated Graphics Port Interface Specification, Revision 1.0, www.intel.com
  33. Accelerated Graphics Port Interface Specification, Revision 2.0, www.intel.com
  34. A.G.P. Design Guide Covering 1X, 2X, and 4X Modes and 1.5 Volt and 3.3 Volt Signaling, Revision 1.0, www.intel.com
  35. Design and Validation of Computer Protocols, Gerard J. Holzmann, Bell Laboratories, Murray Hill, New Jersey
  36. System Management Bus BIOS Interface Specification, Revision 1.0, www.sbs-forum.org
  37. System Management Bus (SMBus) Specification, Version 2.0, www.sbs-forum.org
  38. Advanced Configuration and Power Interface Specification, Revision 2.0, www.teleport.com/~acpi
  39. 82371AB PCI-TO-ISA/IDE Xcelerator (PIIX4) Specification, www.intel.com
  40. Intel 430HX PCIset: 82439HX System Controller (TXC), www.intel.com
  41. Intel 430TX PCIset: 82439TX System Controller (MTXC), www.intel.com
  42. Intel 440BX AGPset: 82443BX Host Bridge/Controller Datasheet, www.intel.com
  43. Intel 815 Chipset Family: 82815 Graphics and Memory Controller Hub (GMCH) Datasheet, www.intel.com
  44. Intel 450KX/GX PCIset, www.intel.com
  45. Intel 450NX PCIset, Revision 1.3, www.intel.com
  46. AMD-751 System Controller Data Sheet, www.amd.com
  47. AMD-761 System Controller Data Sheet, www.amd.com
  48. AMD-762 System Controller Data Sheet, www.amd.com
  49. AMD-766 Peripheral Bus Controller Data Sheet, www.amd.com
  50. AMD-768 Peripheral Bus Controller Data Sheet, www.amd.com
  51. AP-589, Design For EMI, www.intel.com
  52. Advice BIOS Setup, www.lostcircuits.com
  53. Hardware Reviews, www.bxboards.com




Дополнительно

iXBT BRAND 2016

«iXBT Brand 2016» — Выбор читателей в номинации «Процессоры (CPU)»:
Подробнее с условиями участия в розыгрыше можно ознакомиться здесь. Текущие результаты опроса доступны тут.

Нашли ошибку на сайте? Выделите текст и нажмите Shift+Enter

Код для блога бета

Выделите HTML-код в поле, скопируйте его в буфер и вставьте в свой блог.