Пожалуй, наиглавнейшим моментом в вопросе четкого функционирования компьютера является настройка параметров различных подсистем из 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 строк, любые две строки могут обрабатываться одной командой, или все решается простым кратным увеличением частоты регенерации - с точностью до наоборот, если банк содержит менее 4k строк. Если рассматривать возможные варианты решения проблемы обновления содержимого массива ДОЗУ, на данный момент известны три различных метода регенерации данных. Регенерация одним 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.906 ms(0.25х-сокращенная), 7.812 ms (0.5х-сокращенная), 15.625ms (нормальная), 31.25ms (2х-расширенная), 62.5ms (4х-расширенная) и 125.2ms (8х-расширенная). Понятно, что сама способность конкретной микросхемы памяти (контролируемая со стороны "закрытых" установок в BIOS или саморегенерация) определяется архитектурно и зависит от типа используемой памяти. Однако выставив наибольший временной цикл, можно "не вписаться" в общую временную диаграмму, поэтому производитель модуля памяти такого рода информацию просто заносит в специально отведенное место - микросхему SPD, которой оснащено большинство современных модулей DIMM. В случае, если таковой микросхемы на используемом модуле нет, то можно, при условии, что это позволяет гибкая настройка BIOS Setup, самостоятельно выставить периодичность проведения регенерации, исходя из стандартных 15.625ms для 4k массива банка, кратно уменьшая (сокращенная) цикл при увеличении количества строк или увеличивая (расширенная) цикл при уменьшении количества строк - все зависит от логической организации (количество банков и структура банка) микросхемы конкретного модуля памяти.
MA Wait State
Период ожидания до переключения адреса, который позволяет установить или снять дополнительный такт задержки до начала чтения данных из памяти. Своего рода "контрольной точкой" срабатывания этого режима является переключение сигнала MA# (Multiplex Address). Например, для памяти типа EDO DRAM однотактная задержка введена по умолчанию, поэтому установка значения Slow добавляет еще один такт ожидания. У SDRAM же данного такта ожидания нет, и установка Slow только добавит его. Установка же параметра в режим Fast позволит снять дополнительный такт ожидания, а значит - увеличить производительность.
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), которые, в свою очередь, содержат столбцы (Column) - матрица, образуемая такой иерархией, и является ядром микросхемы памяти. Строка - это объем считываемых или записываемых данных в один из нескольких банков ядра. Столбцы - подмножества строк, которые считываются или записываются в индивидуальных фазах операций чтения/записи. Рассмотрим последовательно продвижение данных по микросхеме. Обычно цикл начинается по приходу команды активизации банка, которая выбирает и активирует банк и строку массива. В течение следующего цикла информация передается на внутреннюю шину данных и направляется на усилители уровня (как говорилось ранее, своего рода "накопитель", играющий роль как усилителя сигнала, так и временного буфера). Когда усиленный уровень сигнала достигает необходимого значения, данные запираются (Latch) внутренним синхросигналом - этот процесс, именуемый задержкой между определением адреса строки и столбца (tRCD - RAS#-to-CAS# Delay), занимает 2-3 цикла системной шины (количество периодов синхросигнала). После этой задержки команда чтения может подаваться совместно с адресом столбца, чтобы выбрать адрес первого слова (в данном случае, объем данных, передаваемых за один цикл, равный ширине шины данных микросхемы памяти), которое надо считать с усилителей уровня. После выставления команды чтения выполняется двух- или трехтактная задержка строба выбора столбца (задержка сигнала CAS# - CAS# Latency или просто CL), в течение которой данные, выбранные из усилителей уровня, синхронизируются и передаются на внешние выводы микросхемы (линии DQ). За первым словом следуют остальные в течение каждого последующего синхросигнала, отрабатывая полную установленную длительность пакета (Burst Length) - количество непрерывно передаваемых слов за одну фазу передачи данных. Лишь после того, как вся информация передалась, данные можно возвратить обратно из усилителей уровня в строку пустых ячеек массива для восстановления его содержимого, что занимает 2-3 тактовых цикла. Динамический, а значит обладающий свойством ослабевания сигнала и утечки, по своей природе массив ячеек должен регенерировать их содержимое. Периоды восстановления заряда устанавливаются регенерирующим контроллером программы мониторинга, выполняемой счетчиком регенерации (Refresh Counter) - подобное восстановление требует 7-10 циклов, в течение которых поток данных прерывается.
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# (переход в активный низкий уровень). Другими словами, после подачи команды активизации банка линию RAS# необходимо предварительно зарядить (выполнить цикл накопления заряда, Precharge) до момента поступления команды чтения (определяемой адресом столбца). Это означает, что данные передаются из массива памяти на внутрикристальные выходные усилители уровня с задержкой 2 или 3 цикла. Необходимо понимать, что рассматриваемая задержка сама по себе играет довольно незначительную роль в общей задержке при условии попадания в страницу и/или чтения данных из открытой страницы. Тем не менее, далеко не в каждом BIOS можно варьировать значение данной задержки по причине отсутствия соответствующего параметра, однако в действительности tRCD учитывается также в значении "Bank X/Y Timing".
SDRAM RAS Precharge Time
Длительность подзаряда линии RAS# - tRP. В данном случае микросхема DRAM с двумя/четырьмя банками (логическая организация) позволяет "скрыть" это время, чтобы обеспечить непрерывный ввод/вывод данных: в то время, когда происходит какая-либо операция с одним банком памяти, другой успевает регенерировать (обновить данные). Проще говоря, данный параметр позволяет определять быстрое (Fast) или медленное (Slow) накопление заряда по линии RAS# до начала цикла регенерации. Установка значения Fast увеличивает быстродействие, однако может привести к нестабильности работы. Slow же действует наоборот - повышает стабильность работы компьютера, однако увеличивает время, затрачиваемое на цикл регенерации данных. Поэтому рекомендуемое значение Fast следует устанавливать в случае уверенности в качестве микросхем памяти. Обычно встречаемые значения 2 и 3 данного пункта определяют количество тактов системной шины, необходимых для накопления заряда по линии RAS#. Вообще, задержка, обуславливаемая выполнением предзаряда линии RAS#, необходима для перемещения данных обратно в массив (закрытие банка/страницы) до момента прихода команды активизации следующего банка. Так, 30-60 % от общего количества передаваемых запросов на чтение теряется в пределах одной страницы (Page), стандартно называемая строкой логического банка), что получило название попадания в страницу (Page Hit). Поэтому в данном случае нет необходимости активизировать банк, так как данные уже находятся в странице, и все, что требуется - это изменить адрес столбца посредством выдачи сигнала CAS#. Если запрашиваемые данные не найдены в пределах данной страницы, их необходимо вернуть обратно в массив и закрыть банк. Если запрашиваемые данные существуют в одном и том же банке, но в разных строках, необходимо подать команду перезаряда, чтобы банк закрылся (промежуток, составляющий длительность подзаряда), а новая команда активизации банка откроет правильную строку (задержка tRCD), где размещаются необходимые данные. Позднее, через промежуток CL, команда чтения придет по правильно выбранному адресу. В результате количество циклов общей задержки (схема CL-tRCD-tRP), описываемое как 2-2-2, составляет 6 тактов, а схема 3-3-3 увеличивает ее до 9. Если запрашиваемые данные расположены в разных строках, нет необходимости тратить время на ожидание закрытия первого банка, поэтому задержка tRP в данном случае не учитывается. Следовательно, остается только задержка выдачи сигнала CAS# и интервал RAS#-CAS#. Вообще, данная схема немного упрощена, поскольку если данные находятся в одном банке, но в разных строках, то банк необходимо не просто закрыть, а еще и реактивировать. Поэтому каждый банк имеет очень малое время, в течение которого он остается открытым, и длительность цикла tRC становится довольно критическим фактором.
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-8T] или [6T, 8-9T], и для ALi MAGiK1 - [3-10T, 4-15T]. Цикл банка определяет количество тактов, необходимых после выставления команды активизации банка до начала фазы перезаряда. Другими словами, после открытия страницы ее необходимо поддерживать в открытом состоянии некоторый промежуток времени до того как она снова закроется. Параметр tRC определяет минимальное количество тактов до тех пор, пока банк реактивируется. Поскольку фаза перезарядки имеет задержку 2-3 такта, то полный цикл банка является суммой времени активности сигнала RAS# и интервала подзаряда линии RAS#: tRС=tRAS+tRP, где tRAS=CL+tRCD определяется как задержка отклика (Latency), характеризующая промежуток времени между регистрацией полученной команды и моментом начала передачи ассоциируемых с командой данных. Таким образом, tRС характеризует общее количество циклов, входящих в основную тайминговую схему CL-tRCD-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 также характеризуется как минимальное время открытия страницы. Если к этому добавить еще и длительность цикла перезаряда, то в результате получится общее количество тактов, необходимое для открытия и закрытия банка, именуемое циклом банка - то, о чем велась речь ранее.
SDRAM Bank Interleaving
Механизм чередования логических банков микросхемы памяти (не путать с режимом чередования физических банков - переключение строк, поделенных на сегменты с собственной логикой управления для каждого, - реализация которого требует присутствия сложной аппаратной адаптивной логики и специальной разводки сигнальных трасс подсистемы памяти) позволяет "коммутировать" циклы регенерации и доступа (конвейеризация): в то время, как один банк проходит цикл обновления содержимого, другой находится в активном состоянии и отрабатывает цикл обращения. Это улучшает эффективность функционирования подсистемы памяти (реальную пропускную способность приближает к теоретической пиковой) относительно неоптимизированного механизма (предвыборка) и "скрывает" время обновления содержимого каждого отдельного банка. Базисная идея чередующихся обращений заключается в доступе от одного банка к другому, когда соответствующие страницы открыты в каждом банке - этот момент требует высокой степени концентрированности данных в системном ОЗУ. Обычно команда активизации банка может открыть один банк в определенный момент времени (предвыборка), а затем считать данные после задержки CL+tRCD. Однако, практически сразу же, после посылки команды активизации одного банка, контроллер памяти может послать команду активизации другого в этом же цикле, таким образом открыв следующий банк. Если контроллер точно знает какие данные следует передать в другой банк, он может послать команду чтения без трешинга (Trashing, режим интенсивной передачи данных при нехватке системной памяти) пакета данных первого банка. В этом случае делается возможным переход от одного банка к другому с задержкой лишь в один цикл (Bank-to-Bank Latency, задержка перехода "банк-банк") между пакетами из четырех слов (BL=4). В дополнение, фазы накопления заряда и закрытия банка могут выполняться в "фоновом режиме" в процессе считывания данных из перемежающихся банков. Известны три режима чередования: обычный (No Interleave), двухбанковое чередование (2-Way Interleave, данные коммутируются между двумя банками) и четырехбанковое чередование (4-Way Interleave, данные коммутируются между четырьмя банками). Режим чередования логических банков работает только в том случае, если последовательно запрашиваемые адреса находятся в разных банках - иначе транзакции данных происходят по обычной схеме No Interleave. В этом случае системе придется простаивать время прохождения обращения и цикл регенерации, после чего запрос повторится. Тем не менее, поддержка конкретного режима должна быть реализована еще и на уровне конкретного приложения. Вообще, любое приложение, сильно зависящее от процессорного кэша (объема, типа и иерархии), не способно оптимально использовать режимы чередования по простой причине ограниченности размера страницы, и данные из кэша могут потеряться. В результате, чередование банков может отрицательно сказаться на производительности, поскольку неправильный открытый банк необходимо закрыть до выполнения следующего цикла доступа к данным.
DRAM Command Rate
Параметр, устанавливающий задержку поступления команд в память (CMD Rate). Контроллеры памяти DDR-интерфейса различных базовых логик (например, VIA Apollo Pro266 и KT266), как правило, имеют две разные программируемые задержки команд для адаптации режима работы с разным типом используемой памяти - 1T или 2T. В стандартном режиме работы задержка составляет 2 цикла, что означает, что команда запирается в микросхеме по второму приходящему фронту строба после отработки команды выбора кристалла (CS#). После этого отрабатываются команды активизации банка, чтения и перезаряда в отведенный им фиксированный интервал времени. Рассматриваемая дополнительная задержка применяется исключительно в случае выполнения первоначального доступа (Initial Access, также именуемый произвольным доступом), принимая во внимание то, что все подпоследовательные команды выставлены в очередь в соответствии с установленными в BIOS задержками. Поэтому задержка поступления команды дает эффект только при произвольных доступах. Как было указано выше, при произвольном доступе команда активизации банка запирается по второму фронту синхросигнала - именно такой механизм применяется в модулях памяти с применением микросхем-регистров - Registered DIMM, - которые уменьшают нагрузку на систему синхронизации и играют роль транзитных буферов, где происходит перераспределение адресов. Также регистры применяются для трансляции команд и их последующей передачи в микросхему памяти с задержкой в 1 такт. Тем не менее, ранее упоминавшаяся задержка 2T уже включает этот дополнительный цикл ожидания и контроллер памяти, обслуживающий Registered DIMM, не выполняет никаких фаз дополнительно вводимой задержки. Для небуферизированных модулей памяти (Unbuffered DIMM) контроллер снимет дополнительный такт задержки, уменьшив общую до 1 цикла, что говорит о запирании команды по следом идущему фронту тактового сигнала и экономии одного такта при каждом начальном доступе к памяти. В свою очередь, это увеличивает реальную пропускную способность в зависимости от того, насколько загружена шина памяти и сколько случайных доступов выполнено. Сама способность обработки команд с задержкой 1T зависит от таких факторов, как частота синхронизации шины памяти, количество микросхем на модуле памяти (чем больше микросхем, тем больше времени понадобится контроллеру, чтобы выбрать необходимую), качество используемого модуля, общее количество используемых модулей памяти в системе (прямо связано с количеством микросхем в составе одного модуля) и удаленность модуля от контроллера (протяженность сигнальных трасс от выводов контроллера до выводов микросхемы памяти с учетом количества переходов).
SDRAM Banks Close Policy
Контроль над операциями закрытия банков SDRAM введен специально из-за того, что микросхемы памяти с определенной логической организацией работают не совсем корректно в системах, основанных на некоторых базовых наборах. Например, контроллер памяти, находящийся в составе хаба FW82815 базового логического набора i82815, позволяет держать одновременно открытыми до четырех страниц в раздельных логических банках (для микросхемы памяти с четырехбанковой логической организацией это значит - по одной странице на каждый банк) - грубо говоря, этот механизм эквивалентен чередованию банков (Bank Interleaving). Поэтому, если произошло попадание в страницу, логика попытается выбрать альтернативную политику (проще говоря, принять определенное решение): выполнить фазу закрытия банка и всех открытых страниц или закрыть только страницу (Close Page), в которую произошел промах. Если принято решение о закрытии одной страницы, другие могут оставаться открытыми, в результате чего доступ "банк-банк" возможен лишь с дополнительной задержкой в 1 такт. В случае, если запрашиваемые данные найдены в открытой странице, доступ к ним может быть произведен немедленно (Seamlessly). Однако данные установки параметра связаны с определенным риском, поскольку в случае промаха в страницу (Page Miss), соответствующая строка будет закрыта для проведения цикла перезаряда и откроется уже по проcшествии полного установленного цикла задержек. В случае применения политики закрытия всех банков (Close All Banks) последующий доступ будет считаться холостым (бесполезным), поскольку банки нельзя закрыть до момента прихода команды начала следующего цикла. Плюс, после закрытия банка необходимо произвести его реактивизацию, на что потребуется определенное количество дополнительных тактов.
SDRAM Speculative Read
Параметр, разрешающий (Enable) или запрещающий (Disable) производить опережающее чтение. Это значит, что его включение позволяет выдавать сигнал разрешения записи (WE#) немного ранее, чем адрес будет декодирован (однозначно определен). Этот режим подобен "Speculative Leadoff" и снижает общие временные задержки на проведение операции чтения. Другими словами, инициализация (установка) сигнала разрешения записи происходит практически одновременно с генерацией того адреса, где находятся необходимые данные. Поэтому, если рассматриваемый параметр включен, контроллер выдаст сигнал WE# до завершения декодирования адреса считываемой ранее ячейки, несколько повышая общую производительность системы.
SDRAM PH Limit
Ограничение на количество попаданий в страницу банка микросхемы SDRAM. Влияние фаз регенерации на производительность увеличивается с увеличением объема микросхемы памяти (или с увеличением объема модуля памяти). Как говорилось ранее, регенерация просто необходима в силу динамической природы ядра ДОЗУ, поскольку конденсатор теряет заряд (читай, данные) через четко установленный промежуток времени. С момента открытия страницы усилители уровня могут удерживать данные только ограниченное время. Для гарантирования поддержания целостности данных, поскольку они через определенный интервал возвращаются обратно в строку, необходимо ввести ограничение на время открытия страницы. Поэтому в BIOS некоторых чипсетов (например, AMD-750) обычно присутствует соответствующий пункт меню для того, чтобы иметь возможность выбрать между 8 и 64 попаданиями в страницу до момента закрытия строки. В зависимости от количества модулей в системе и от их организации (объема используемого модуля и логической организации микросхем в составе этого модуля) экспериментально можно подобрать оптимальное значение количества попаданий в страницу. Поскольку при условии нормального функционирования существует весьма ограниченная вероятность, что следующая команда чтения попадет в ту же страницу, что и предыдущая, вероятность возникновения промаха в страницу увеличивается по экспоненциальной зависимости после каждого последовательного идущего друг за другом попадания. Если страница остается открытой, ее необходимо закрыть до прихода сигнала RAS# (до подачи очередной команды выбора строки), что является наилучшим вариантом по прошествии четко установленного количества попаданий в страницу (принудительное закрытие страницы). Кроме этого, данное обстоятельство снимает определенное количество циклов задержки, необходимых для выполнения перезаряда, от общего числа задержек, которые могут возникнуть при промахе. Поэтому для получения наилучшей производительности в ресурсоемких приложениях рекомендуется устанавливать данный параметр максимально в значение 16.
SDRAM Idle Cycle Limit
Интерфейс некоторых BIOS предоставляет возможность выбора ограничения на количество холостых циклов микросхемы SDRAM, определяющееся отношением длительности цикла активности банка к времени его простоя (холостому ходу). Данный параметр напрямую связан с PH Limit и обычно составляет от 0 до 8 (рекомендуется) тактов. Это означает не только задание возможного количества последовательных попаданий в одну и ту же страницу, но также и возможность запрограммировать контроллер для закрытия конкретной страницы, если в нее не намечается запросов на чтение в определенный интервал времени, измеряемый в количестве тактов системной шины.
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) можно добиться повышения скорости или стабильности функционирования подсистемы памяти.
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) позволяет исключить для всех обычных программ возможность использования указываемой области памяти и дать системе прямой доступ к полному объему установленного системного ОЗУ.
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-256MB, практическим правилом считается иметь размер апертуры 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:
Spread Spectrum Modulated
Генератор синхросигналов (Clock Synthesizer/Driver) является источником пульсаций, предельные величины которых образуют электромагнитную интерференцию - электромагнитное излучение (помехи), проникающее за пределы среды передачи, главным образом за счет использования высоких частот для несущей и модуляции. В основе эффекта EMI лежит сложение двух или более частот, в результате чего спектр сигнала приобретает сложный характер. Спектральная модуляция тактового импульса (SSM, по-другому SSC - Spread Spectrum Clock) позволяет равномерно распределить ничтожно малые значения общего фона электромагнитного излучения, исходящего от любого функционирующего компонента системы, по всему частотному спектру синхроимпульса. Иными словами, SSM позволяет "скрыть" высокочастотные помехи на фоне полезного сигнала путем внесения в его спектр еще одного дополнительного сигнала, функционирующего в частотном диапазоне нескольких десятков килогерц (такого рода процесс и называется модуляцией). Механизм SSM предназначается для уменьшения интерференции гармоник высших типов частоты функционирования шины. Теория сигналов говорит о том, что любая форма волны порождает высшие типы гармонических колебаний, которые аккумулируясь впоследствии могут стать помехой для основного сигнала. Одним из путей обхода данной проблемы является воздействие на основной сигнал определенной частоты модулирующих колебаний гораздо более низкой, что является результатом вариаций ±1% от номинального значения задающей. Обычно реализация SSM сводится к использованию двух разных значений, номинальная частота для которых является опорной, или установка основной частоты как максимума (низкопрофильная модуляция) - чаще к опорной. В действительности же существует масса причин и методов.В основе стоит факт, что с увеличением частоты функционирования электронные компоненты излучают электромагнитные помехи, которые, в свою очередь, могут стать причиной интерференции сигналов других устройств. Поскольку любое устройство, которое превышает предел допустимых значений влияний сторонних сигналов, не проходит сертификацию федеральной комиссии по связи (FCC - Federal Communication Committee), важно понять методы определения уровня EMI. Для начала тестируемое устройство вводят в режим радиоприемника и определяют диапазон частоты приема в широком спектре с измерением интерференция с видео и аудио сигналами. Чувствительность полосы пропускания тестируемого устройства определяется в порядке 1MHz. Если основная рабочая частота модулируется, расширяя полосу пропускания на более чем типичные 4-5 MHz, спектр электромагнитной интерференции изменяется: вместо острых резких пиков (обычная форма проявления EMI) появляются так называемые "гауссовы колокола" (форма сигнала, сверху ограниченная кривой, описываемой гауссовым распределением), в результате чего результирующая амплитуда сигнала становится значительно меньше (1/3-1/4 от размера оригинального пика EMI). Однако, несмотря на это, энергетика остается постоянной. Поскольку ширина импульса становится больше, а закон сохранения энергии должен выполняться, амплитуда этого сигнала будет меньше. Разрешение (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 настройками, однозначно может ответить только конкретная ОС и специализированные тестовые пакеты, которые в состоянии достаточно сильно нагрузить подсистему памяти, тщательно ее проверить и указать на возможные сбои или ошибки. Иными словами, только знание и понимание всех описанных ранее параметров, а также терпение и время позволят добиться желаемого результата в достижении заветной цели любого пользователя ПК: собрать максимально быструю и отказоустойчивую систему - идеал соотношения "качество/производительность"..
Разделы:
Дополнительные разделы: