BIOS Setup

         

Кэширование памяти


Как правило, кэш-память (Cache Memory) ассоциируется всегда с центральным процессором. Кэш-память представляет собой статическое ОЗУ, обладающее значительно более высоким быстродействием, нежели динамическое. Фактически, кэш-память предназначена для согласования (компенсации) скорости работы сравнительно медленных уст­ройств с относительно быстрым центральным процессором, т.е. она играет роль быстродействующего буфера между процессором и относительно медленной динамической памятью. Для кэш-памяти характерно значительно меньшее время доступа (Access time). Время доступа - это характеристика, показывающая, сколько времени необходимо для того, чтобы получить доступ к той или иной ячейке памяти.
Кэш-память изготавливается на микросхемах статической памяти, не требующей регенерации. Кэш-память значительно дороже динамической, поэтому ее объем, как правило, не превышает 512 КБ. Объем и быстродействие кэш-памяти являются определяющими параметрами быстродействия всей системы для подавляющего большинства задач, решаемых на компьютере. Цифры впечатляющей разницы в быстродействии между различными видами DRAM уменьшаются во много раз при оценке производительности компьютера в целом из-за кэш-памяти. Для большего увеличения быстродействия кэш-памяти она встраивается в собственно кристалл процессора и работает при этом на той же тактовой частоте, что и сам процессор.
При попытке доступа к данным процессор сначала обращается к внутренней кэш-­памяти, если их там нет, то ко внешней, лишь затем к основной динамической памяти.
Когда процессор первый раз обращается к ячейке памяти, ее содержимое параллельно копируется в кэш, и в случае повторного обращения может быть с гораздо большей скоростью выбрано из кэша. При записи в память значение попадает в кэш, и либо одновременно копируется в память (схема Write Through - прямая или сквозная запись), либо копируется через некоторое время (схема Write Back - отложенная или обратная запись). При обратной за­писи, называемой также буферизованной сквозной записью, значение копи­руется в память в первом же свободном такте, а при отложенной (Delayed Write) - когда для помещения в кэш нового значения в кэш-памяти не оказывается сво­бодной области. При этом в память вытесняется наименее используемая область кэша. Вторая схема более эффективна, но и более сложна за счет необходимости поддержания соответствия содержимого кэша и основной па­мяти. Очевидно, что контроллер кэш-памяти должен быть достаточно интеллектуальным, чтобы решать столь сложные задачи, в том числе, опре­делять, какие данные могут понадобиться процессору в следующий момент.
Сейчас под термином "Write Back" в основном понимается отложенная за­пись, однако это может означать и буферизованную сквозную.

Память для кэша состоит из собственно области данных, разбитой на бло­ки (строки), которые являются элементарными единицами информации при работе кэша, и области признаков (tag), описывающей состояние строк (свободна, занята, помечена для дозаписи и т.п.). В основном использу­ются две схемы организации кэша: с прямым отображением (direct mapped), когда каждый адрес памяти может кэшироваться только одной строкой (в этом случае номер строки определяется младшими разрядами адреса динамической памяти), и n-связный ассоциативный (n-way associative), когда каждый адрес может кэшироваться несколькими строками. Ассоциативный кэш более сложен, однако позволяет более гибко кэшировать данные.
 
Основные типы кэш-памяти:
Asynchronous SRAM,
Synchronous Burst SRAM,
Pipelined Burst SRAM.
Эти три типа памяти построены по статической схеме и выпускаются для организации кэш-памяти 2-го уровня. Два последних типа обеспечивают пакетный режим доступа к данным.
1. Asynchronous SRAM (асинхронная статическая память) используется еще со времен 386-х процессоров. Принцип работы простейший! Процессор посылает адрес необходимой ячейки памяти, контроллер ищет данные и в случае успеха передает их процессору. При этом в оптимальном варианте работает схема 3-2-2-2 (3 такта на считывание первого сегмента данных и по два такта на считывание 3-х последующих).
2. Synchronous Burst SRAM (синхронная пакетная статическая память) позволяет получить наиболее быстрый доступ в системах с тактовой частотой шины до 66 МГц. Являясь пакетной, эта кэш-память позволяет реализовать схему 2-1-1-1. В системах с частотой системной шины более 66 МГц эта схема ухудшается до 3-2-2-2.
3. Pipelined Burst SRAM (статическая память с блочным конвейерным доступом) приобрела к 1997 году наибольшее распространение, обеспечивая схему доступа 3-1-1-1, которая не ухудшается с ростом тактовой частоты. "Конвейерность" заключается в том, что при считывании нескольких последовательных ячеек памяти они буферизируются, и это позволяет уменьшить время, которое затрачивает процессор на такую процедуру.
Пакетные типы кэш-памяти получают синхронизирующий сигнал от процессора. Кэш содержит счетчик, который, когда бы процессор ни начал цикл, позволяет модулю кэша автоматически быстро выполнить последовательность из четырех циклов. Первый и самый длинный цикл инициализируется процессором. Следующие три вырабатываются модулем кэша синхронно с синхронизирующими импульсами процессора.

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





KB to 1MB Cacheability


- опция через установку в "Enabled" позволяет кэшировать последние 384 КБ из первого мегабайта ОЗУ.
 

Async L2 Cache Leadoff


- данной опцией устанавливается (в системных тактах) время подготовительной фазы до начала непосредственной операции чтения данных из асинхронного кэша 2-го уровня (или записи).
Опция может называться "Async SRAM Leadoff Time", "L2 Async SRAM Leadoff". Значения же опции могут иметь следующий вид: "3T", "4T". В некоторых случаях есть возможность поварьировать временной характеристикой раздельно для операций чтения и записи: "4T/4T", "3T/3T", "3T/4T". Опция "L2 Async SRAM Burst" со значениями "2T" и "3T" аналогична приведенным, разве что указывает на наличие блочных операций.
Речь может идти об аналогичных характеристиках и для синхронной кэш-памяти, и тогда опции будут выглядеть совершенно идентично: "Sync SRAM Leadoff Time", "L2 Sync SRAM Leadoff". Значения последней опции уже знакомы: "3T", "4T".
Попробуем расширить приведенный перечень опций, поскольку речь идет о той же длительности первого обращения к памяти или о возможных задержках (тактах ожидания) при обращении к кэш-памяти:
"L2 Leadoff Timing", "Cache Read Hit 1st Cycle WS", "CPU-to-L2 Checkpoint", "L2 Cache Check Point", "CPU-to-L2 Read Wait States", "CPU-to-L2 Write Wait States", "SRAM Burst R/W Cycle", "L2 Cache Burst Read". К уже имеющимся значениям добавилось еще одно - "1T". Понятно, что меньшее значение дает более высокую скорость, а значит и повышает производительность системы, но при возникновении сбойных ситуаций значение необходимо увеличить.









Block 1 Size


Для данных опций приведем один из возможных вариантов значений (соответственно): "Disabled", "0500000H", "64KB".









Cache Burst Read Cycle


- опция, определяющая режим обращения процессора к кэш-памяти. В данном случае речь идет не о методах доступа к кэш-памяти, а о временных параметрах, характеризующих этот доступ. Суть сказанного заключается в том времени, которое необходимо затратить, начиная от момента выдачи адресной информации до момента появления данных на выходных линиях микросхем памяти. Мы описали кратко общий алгоритм обращения к памяти, независимо от того, о какой памяти идет речь. Подытожив изложенное, можно говорить о некотором количестве системных тактов, затрачиваемых на процедуру чтения.
Начиная с 486-х, процессоры могут обращаться к кэш-памяти в режиме "Burst Mode". Во время "блочного" цикла чтения процессор берет из вторичной кэш-памяти (читает) последователь­но друг за другом 16 байт данных (четыре двойных слова). Первое обращение занимает больше тактов, чем каждое из трех последующих. Так, например, соотношение (а точнее, временная диаграмма) 3-1-1-1 означает, что первое обращение требует три такта, а второе, третье и четвертое - по одному. Указанные три такта включают в себя подготовительную фазу (leadoff) и собственно считывание первого 32-битного пакета. Число тактов, требующихся для первого обращения, может быть указано также в некоторых версиях BIOS в отдельных самостоятельных опциях. Именно об этом опция "Async L2 Cache Leadoff" и ей подобные (см. выше).
Установка правильного значения зависит и от скоростных характеристик системных компонент (что и определяет время доступа), и от требований к стабильности системы. "Хорошие" временные характеристики возможно было сочетать только с быстрой динамической памятью. Более "древняя" динамическая память, совместимая со страничной адресацией (FPM), позволяла получать очень "хорошие" временные диаграммы, но при этом не будем забывать о системных частотах того времени.
Нетрудно заметить, что возможности влиять на временные характеристики связаны с параметрами первого обращения. Какое значение "выдерживает" система при обращении процессора к кэш-памяти, можно установить экспериментально, уменьшив значение числа тактов в последовательности обра­щений на 1, например, до 2-1-1-1. При зависании компьютера необходимо будет вернуть прежнее значение.
Опция может называться "Cache Read Burst", "Cache Read Hit Burst", "Async SRAM Burst Time", "Cache Read Burst Mode", "Cache Burst Read Cycle Time".
Как правило, конкретная опция может предложить пару некоторых значений. Ну, а если просуммировать представленные и достаточно многочисленные опции, то можно получить такой ряд параметров: "2-1-1-1", "3-1-1-1", "2-2-2-2", "3-2-2-2", "4-1-1-1". Опция "Async L2 Cache Burst" предложила значения "x-2-2-2" и "x-3-3-3". Как устанавливать "x" уже известно. Такое разнообразие не должно удивлять. Ведь системы могли иметь всего 128 КБ вторичного кэша, а значит диаграмма 3-2-2-2 могла быть не столько оптимальной, сколько единственно возможной (например, для систем с тактовой частотой в 33 МГц). С другой стороны, необходимо представлять себе, что диаграмма 3-1-1-1 для 486-х систем в сравнении с 4-1-1-1 для систем с процессором Pentium вовсе не является выигрышной.
Дополнительная информация по временным характеристикам изложена далее.
 








Cache C800-CBFF


Значения опций: "Write Back", "Write Through", "Write Protect", "Disabled", а также
"USWC Caching" (Uncacheable Speculative Write Combining) - режим некэшируемой объединенной записи. Применяется для отображаемых в памяти устройств ввода-вывода и отображаемого кадра видеопамяти.

"Cache Memory" - так называется внушительное меню "Phoenix BIOS" со следующими опциями:








Cache DRAM Memory Area


- в данных опциях выбираются либо разрешение/запрет кэширования, либо метод кэширования (см. выше). Следующая опция-меню "Cache Memory Regions" может быть использована, если в опции (см. ниже) "Cache" выбрано любое из двух значений: "Intern only" или "Intern and Extern". Вот эти опции, надеюсь, уже понятные пользователю:








Cache Extended Memory Area


- для использования этих опций, предложенных "Phoenix BIOS", предварительно должно быть включено кэширование в системе, для чего может быть предназначена интегрированная опция "Cache". Понятно, что механизм кэширования может быть включен для двух областей: основной памяти и расширенной (типа XMS). А данные опции дают возможность выбрать метод кэширования для каждой из областей. Итак:
"Write Back" - данные сначала записываются в кэш, в основную же память по необходимости либо "при удобном случае". Наиболее быстрый метод. Более подробно см. ниже,
"Write Through" - данные записываются в кэш и в основную память одновременно,
"Write Protect" - выбранная область кэшируется, но при этом защищена от записи,
"Uncached" (или "Disabled") - запрещено кэширование для выбранной области.

Следующая "пачка" опций "Phoenix BIOS" выглядит уже привычно, хотя присутствуют важные особенности.








Cache Rd+CPU Wt Pipeline


- разрешение опции ("Enabled") позволяет включить конвейеризацию для циклов чтения из кэш-памяти и циклов записи, что естественно значительно повышает производительность системы. По сути эта опция - аналог других опций по конвейеризации кэш-памяти (см. далее).
Опция может называться "Cache Rd+CPU W/T Pipeline".









Cache Timing


- если в системе установлен только один модуль асинхронной кэш-памяти, то необходимо выбрать значение "Fast". Значение "Fastest" устанавливается при наличии в системе двух банков вторичного кэша. В некоторых случаях вместо "Fast" может быть и значение "Faster". Тогда надо внимательнее ознакомиться с имеющимся в системе кэшем, дабы действовать наверняка (см. ниже опцию "Pipeline Cache Timing").
Пользователь должен быть готов и к встрече с опцией "Cache Performance", благодаря которой также устанавливаются скоростные характеристики. Но при этом необходимо учитывать и характеристики основной памяти. Если система использует EDO-память, то значение "Standard" окажется оптимальным, для SDRAM-модулей подойдет "Default" (!), значение "Fast" также окажется оптимальным для SDRAM-памяти, но и позволит эффективнее эксплуатировать кэш.
 








CPU External Cache


- (внешний кэш процессора). Этой опцией разрешается/запрещается использование внешнего кэша процессора (кэша второго уровня, или "L2"). Запрещать какой-либо вид кэш-памяти следует только в случае необходимости искусственного замедления работы системы, например, при установке какой либо старой платы расширения, или первичного тестирования компьютера. Запрет возможен и для старого программного обеспечения, а также для самых первых версий "OS/2". Во всех случаях возможно потребуется отключить как все виды кэширования, так и "затенения". Может принимать значения:
"Enabled" - разрешено,
"Disabled" - запрещено.
Если вспомнить былое, да и не такое уж далекое, то необходимо отметить, что при отсутствии кэша второго уровня или его неисправности разрешение использования внешнего кэша могло привести к сбоям системы.
Поскольку речь идет лишь о включении или отключении кэш-памяти, то в данном случае, казалось бы, нет смысла рассматривать специфику отдельных процессоров или чипсетов. Однако! Вспомним первые процессоры Celeron с отсутствующим кэшем L2, и тогда сказанное чуть выше оказывается вполне актуальным. Определенные сложности могут возникнуть и при разгоне процессоров. Стоит напомнить, что у архитектуры P5 (Pentium, Pentium MMX) кэш работает на частоте шины, а для архитектуры P6 частота кэш-памяти "привязана" к частоте ядра. При этом она может быть половинной (Pentium II) либо равной ей (Pentium Pro).
Опция может называться "External Cache Memory", "External Cache", "CPU Level 2 Cache", "L2 Cache Enable", "L2 Cache" или "L2 Cacheing".









CPU Internal Cache


- (внутренний кэш процессора). Этой опцией разрешается/запрещается использование внутреннего кэша процессора (кэша первого уровня, или "L1"). Стоит напомнить, что внутренний кэш стал принадлежностью процессоров, начиная лишь с 486-х. Может принимать значения:
"Enabled" - разрешено,
"Disabled" - запрещено.
В некоторых случаях опции по управлению внутренним и внешним кэшем могут быть объединены в одну опцию - "Cache Memory", со значениями "Disabled", "Internal" и "Both". В других же, как это предложил "Phoenix BIOS", может быть предложено небольшое меню "Cache" с дальнейшим выбором параметров:
"Enabled" - включено кэширование, но требуется дальнейшее уточнение,
"Intern Only" - используется только внутренний кэш,
"Intern and Extern" - внутренний и внешний кэш включены,
"Disabled".
Опция может называться "Internal Cache Memory", "CPU Level 1 Cache" или "L1 Cache".
А вот опции "System Cache", "Memory Cache" разрешали (или нет) использование кэш-памяти в системе. Хотя возможно встретить и небольшое подменю, аналогичное вышеприведенному.









DC00,16K Shadow


В некоторых случаях опции могут быть представлены в виде "C000 Shadow Cacheable" и "F000 Shadow Cacheable" со значениями "Enabled" и "Disabled".









DC00 - DFFF


Значения этих опций стандартны: "Enabled" и "Disabled". Включение какой-либо опции приводит к кэшированию выбранной адресной области. Если в системе используется ISA-карта с двухпортовой памятью, отображаемой в системной памяти в ROM-области, то для такой адресной области кэширование должно быть запрещено.









Ext BIOS EC00-EFFF


Довольно внушительно. А вот и значения этих опций:
"PCI Device" - выбранный диапазон отдается под потребности PCI-устройства,
"Shadowed" - выбранный диапазон "затеняется",
"Write Prot." - выбранный диапазон защищен от записи. При загрузке системы в этот адресный диапазон копируется некое ПЗУ и в процессе работы эти адреса доступны только для чтения,
"Uncached DRAM" - некэшируемый регион памяти,
"PCI/Cached" - выбранный диапазон принадлежит PCI-устройству и кэшируется,
"Shadowed/Cached" - выбранный диапазон "затеняется" и кэшируется,
"Write/Cached" - по адресам выбранного фрагмента может производиться запись и этот фрагмент кешируется,
"Cached DRAM" - кэшируемая область памяти.
В некоторых версиях BIOS к указанным диапазонам может быть добавлена область системного BIOS:








External Cache Write Policy


- опция по выбору метода работы внешней кэш-памяти. Значения уже известны: "Write Back" (или "Write-back") и "Write Through" (или "Write-through"). Иногда может быть и третье - "Disabled", как отказ от использования внешней кэш-памяти. Опция может называться "External Cache", "L2 Cache Mode", "L2 Cache Update Mode", "L2 Cache Policy", "L2 Cache Write Policy".
Кроме стандартных режимов "Write-Back" и "Write-Through", для кэша второго уровня могут быть также применены режимы "Adaptive WB1" и "Adaptive WB2". С помощью обоих адаптивных "write-back" методов есть возможность сократить влияние недостатков, свойственных стандартным методам. Системный контроллер должен определять оптимальную "политику" записи в кэш, в соответствии со спецификациями SRAM-памяти.
Немного истории! Адаптивное кэширование (Adaptive Caching) - это первоначально метод работы с кэш-памятью (буфером) жестких дисков, позволяющий изменять во время работы как размер сегмента кэш-памяти, так и количество сегментов для повышения производительности работы диска. Применение адаптивного кэширования всегда подчеркивалось и подчеркивается производителями жестких дисков как очевидное достоинство их продукции. Как видим, данный метод нашел применение и в системной памяти.
 








Необходимо различать две принципиально разные



Необходимо различать две принципиально разные стратегии работы с кэш-памятью. Одна из них предполагает наличие кэша только для чтения, другая - кэша с последующей записью. В одном случае буферизируются только те данные, которые считываются, а в другом кратковременно запоминается информация, которая позже должна быть записана в память. Отсюда и основные методы организации кэш-памяти:
Write Through - метод сквозной записи. Предполагает наличие двух копий данных - в основной и кэш-памяти, т.к. то, что процессор записал в кэш-память, немедленно копируется в основную память, т.е. без промежуточного хранения в кэше. Этот способ работы с кэш-памятью более медленный, но более надежный,
Buffered Write Through - метод буферизованной сквозной памяти. Процесс записи выполняется в буферы, организованные по принципу "FIFO" ("First Input - First Output" - "первым пришел - первым ушел"),
Write Back - метод обратной записи, при котором содержимое основной памяти обновляется только тогда, когда из кэш-памяти в нее записывается полный блок данных, то есть какое-то время процессор не обращается к основной памяти. Это означает, что в процессе работы данные записываются в быстродействующий кэш, а уж затем, когда система будет менее загружена, записываются в оперативную память. В другой ситуации процессор переносит данные в оперативную память из ячейки кэш-памяти только перед считыванием в эту же ячейку данных из другого адресного пространства оперативной памяти.
Очень быстрый способ, но могут возникнуть проблемы с устройствами, которые сами обращаются к памяти, минуя процессор, например, контроллер DMA. Последнее требует спе­циальной поддержки со стороны системной платы, чтобы при обмене по DMA можно было поддерживать согласованность данных в памяти и внутреннем кэше. Метод "Write Back" приблизительно процентов на 10 повышает производительность системы в сравнении с "Write Through".

Memory Type Range Registers осуществляют




Memory Type Range Registers осуществляют операции записи/чтения в то же самое время, что и обычные MSR (Machine Specific Registers) стандартного Pentium-процессора используют собственные инструкции чтения и записи. MTRR являются 64-битными регистрами и разделяются на фиксированные и переменные MTRR. Фиксированные MTRR имеют дело с памятью в пределах 1 МБ, управляемой через "BIOS Setup". Переменные MTRR позволяют кэшировать память за пределами 1 мегабайта.
Использование режима WC опциально предназначено только для видеопамяти. В некоторых случаях перепрограммирование CMOS-памяти позволяет конфигурировать диапазон 0-640 КБ основной памяти для применения к нему WC-режима для эффективной отладки "железа". WP-режим применяется для "затенения" различных областей памяти и использования их как ROM-памяти.

Internal Cache WB or WT


- очень давняя опция из "AMI BIOS". Ну и значения ее видны из названия: "WB" (Write Back) и "WT" (Write Through). Иногда также может присутствовать третье значение - "Disabled". Иногда значения могут иметь следующий вид: "Write-Back", "Write-Thru". При выборе значения надо помнить о том, что некоторые 486-е процессоры не поддерживают режим "Write Back".
Опция может называться "L1 Cache Mode", "L1 Cache Update Mode", "L1 Cache Write Policy", "L1 Update Mode", "L1 Cache Policy" или "Internal Cache". Многие современные системы вообще не содержат подобной опции, т.к. они оптимизированы для эффективного использования PBSRAM.
Ну и в конце интегрированная опция, охватывающая оба кэша, - "Cache Strategy".









L2 Cache Allocation


- сначала немного теории. "K5/K6 Write Allocation" - это нововведение компании "AMD", которое сводится к следующему. У процессоров Intel поводом для кэширования ячейки является только ее чтение. После того, как ячейка с определенным адресом кэширована, это используется и при записи (режим "Write Back"), однако само кэширование выполняется только при чтении. Поэтому, если в выполняемом коде попадается серия из последовательных записей по одинаковым (или расположенным рядом) адресам, кэш используется неэффективно при отсутствии обращений к этим адресам. "AMD Write Allocation" - режим, при котором поводом для кэширования является не только чтение данных, но и их запись. Это чревато коллизиями, как любое отступление от стандарта "Intel", поэтому "AMD" предусмотрела возможность программного управления этим режимом, вплоть до отключения его. Речь идет, конечно, об управлении через BIOS. Настройка регистров процессоров AMD K5/K6, управляющих этим режимом, является одним из этапов POST-теста.
Сразу становятся понятны проблемы поддержки процессоров AMD K6 через BIOS, и не только связанные с правильным распознаванием процессора и его скорости. Необходимо, чтобы BIOS корректно поддерживал функцию "Write Allocate", не говоря уже о физическом наличии данной опции в "BIOS Setup". Так что вопросы обновления BIOS могут оказаться весьма насущными.
Теперь о значениях:
"Always" - абсолютно и однозначно осуществляется поддержка указанного выше режима кэширования через BIOS,
"CPU Controlled" - поддержка функции "Write Allocate" осуществляется программным путем, а именно со стороны операционной системы, т.е. при первоначальной загрузке драйверов поддержки процессоров AMD.
В системе на чипсете Ite8330g (от "Integrated Technology Express") эффект от применения опции "AMD K6 Write Allocation" достигался через "Enabled". Значение "Disabled" могло пригодиться для других процессоров. Нетрудно увидеть, для поддержки каких процессоров предназначена эта опция.
"Silicon Integrated Systems" давно славилась поддержкой процессоров от разных производителей. Неудивительно, что для наборов, например, 530, 540 или 5581 была предусмотрена опция "L2 Single Read Allocation". Опция могла называться и "Single Read L2 Cache Alloc.". Значения опций те же самые ("Enabled", "Disabled"), а вот их содержание чуть другое. Скорее всего, речь идет о поддержке одиночных операций записи/чтения, хотя эта опция требует дополнительного изучения.
Ну и напоследок опция "Write-Through Allocate". Включение опции ("Enabled") позволяет снизить частоту "промахов" при работе с кэш-памятью как первого, так и второго уровня.
 








L2 Cache Banks


- опция, позволявшая указать, из какого количества банков состоит кэш второго уровня. Значения могли быть такие: "1 Bank", "2 Banks".
Опция может называться "L2 Cache Config". При этом значения опции следующие: "1 Bank (1-1-1-1)", "2 Banks". Несложно заметить, что при конфигурации кэш-памяти с одним банком скоростные характеристики (временная диаграмма) указываются явным образом, а при указании двухбанковой организации становится доступной опция








L2 Cache Burst Addressing


- данная опция позволяет устанавливать режим адресации для кэша второго уровня. Возможные значения:
"Toggle Mode" - такое значение опции позволяет контроллеру кэша менять режимы адресации,
"Linear Mode" - используется режим последовательной адресации.
Опция может называться "Cache Bursting". Значения параметров она имеет те же самые, хотя по названию трудно определить функциональную направленность этой опции.
Мы уже знаем о некоторых особенностях процессоров семейства Cyrix. Так вот для них конкретно предназначена опция "Linear Mode SRAM Support". Если в системе установлен процессор Cyrix, например, Cyrix M1/M2, то необходимо выбрать "Enabled".
Опция "L2 Cache Burst Addressing" в свое время была "замечена" в системе с набором логики SiS5581. И хотя этот чипсет предназначался для системных плат формфактора LPX/NLX, он был эквивалентен набору i430TX. А вот более "старенький" набор SiS496 предлагал опцию "L2 Cache CPU Burst Type" со значениями "Normal (Intel)" и "Lin. Burst (AMD)".
Дополнительно см. выше (раздел "CPU").
 








L2 Cache Cacheable Size


- данной опцией устанавливается размер (объем) кэшируемой памяти, поддерживаемой в системе. Значения могут быть следующие: "64 MB", "128 MB", "192 MB", "256 MB", "512 MB" (могут быть естественно и другие значения). А выбор значения зависит, с одной стороны, от объема инсталлированной памяти (установку "512 MB" можно рекомендовать при наличии в системе более 64 МБ ОЗУ), а с другой, от характеристик чипсета. Последнее являлось и является одним из важнейших параметров чипсетов. Достаточно вспомнить "интеловские" чипсеты 430NX и 430TX, и окажется, что первый из них поддерживал 512 МБ, а второй - 64 МБ кэшируемой памяти.
Более давние опции назывались "Cacheable RAM" или "Cacheable RAM Address Range". Речь в них шла об установке значения в 4, 8, 16 или 32 МБ. Такие значения были вызваны огpаничением, накладываемым количеством pазpядов адресной шины системной памяти. Ведь в кэш-памяти необходимо было хранить как содержимое ячейки памяти, так и ее адрес. Выбор оптимального значения был также ограничен величиной инсталлированной в системе памяти. При наличии в системе 4 МБ ОЗУ выбор 16 МБ был малооправдан.









L2 Cache Size


- данная опция позволяет указать объем установленной на системной плате кэш-памяти 2-го уровня. В подобном виде такие опции уже не встречаются. Встречались такие вариации значений:
"0 K", "256 K", "512 K",
"0 KB", "64 KB", "128 KB", "256 KB", "512 KB", "1 MB", "2 MB".
 








L2 Cache Timing


- опция установки временных интервалов обращения к кэш-памяти второго уровня. Это одновременно и разъяснение наименования опции, и большая тема, рассматривающая временные характеристики при обращении процессора к кэш-памяти. Чуть выше уже были изложены основы для понимания временных диаграмм. Но речь в основном шла о процедурах "блочного" чтения. Попробуем расширить изложенный материал, дополнительно рассмотреть циклы записи в кэш-память, а также характеристики последовательных обращений.
Начнем со значений: "3-1-1-1", "2-1-1-1". Не должно быть вопросов. Но опция "L2 Cache Timing" в другом случае предложила такой ряд значений: "3-1-1-1-1-1-1-1", "3-1-1-1-3-1-1-1", "3-2-2-2-3-2-2-2", "3-1-1-1-2-1-1-1". Данная вариация - есть не что иное, как временная характеристика двух циклов записи, следующих друг за другом. При улучшенной оптимизации доступа выигрыш несомнен. Явным образом на последовательность двух циклов указывает опция "L2 Cache Back-to-Back Read".
"L2 Cache Write Timing" предложила значения "3T/2T" и "2T/1T". Первый и второй параметры в значении опции - это и есть количества тактов в первых фазах двух "слипшихся" циклов ("back-to-back"). Такие возможности были уже реализованы в стареньком SiS496-чипсете. Для чипсетов следующего поколения (530, 540) было сохранено наименование опции, а вот значения "упростились": "2-2-2-2", "3-3-3-3".
Опции "L2 Async Cache Write Wait States", "L2 Async Cache Read Wait States" представили уже знакомые нам "x-3-3-3" и "x-2-2-2".
Нет уже смысла перечислять возможные значения опции "L2 Cache Speed", они весьма близки к вышеприведенным. Более интересны опции вида "n-Bank L2 Cache Speed", позволяющие устанавливать характеристики для разных банков раздельно. Хотя к экспериментам с подобными опциями надо подходить осторожно. Вот один из примеров подобных опций - "2 Bank PBSRAM". Ее значения: "3-1-1-1", "2-1-1-1". Первая диаграмма является оптимальной как для циклов чтения, так и для циклов записи, как на частоте 66 МГц, так и для более высокой частоты.
Мы уже столкнулись с тем, что опции могут иметь интегрированный характер, но могут быть быть представлены раздельно для циклов чтения и записи. Вот еще один пример такой пары: "Asysc. SRAM Read WS", "Asysc. SRAM Write WS".
Еще некоторые опции, не требующие отдельного рассмотрения: "Cache Read Cycle", "Cache Read Option", "SRAM Read Timing", "SRAM Read wait state".
Напоследок стоит упомянуть, что в "устаревших" системах можно встретить возможности оптимизации с конкретным указанием на внутренний кэш - "L1 Cache Update Scheme".









L2 Cacheing Control


- наличие в "BIOS Setup" данной опции предполагает присутствие других опций, предназначенных для регулировки рабочих характеристик внешнего кэша (эта опция несколько устарела, сейчас правильнее было бы говорить - кэша второго уровня). Приведенная же опция могла блокировать такие регулировки ("Disabled") либо разрешить дальнейшую работу ("Enabled") по управлению вторичным кэшем.
 








Memory above 16MB Cacheable


- опция поддержки кэширования оперативной памяти, расположенной за пределами первых 16 мегабайт ОЗУ. Для решения такой задачи опция должна быть включена ("Enabled"). Понятно, что для реализации этих возможностей должны были быть выполнены определенные условия (см. в частности опцию "L2 Cache Cacheable Size"). С другой стороны, а данная опция "пахнет стариной", могли стоять конкретные задачи функционирования системного и прикладного программного обеспечения, не требующего (или требующего) кэширования большего объема динамической памяти.









Non-Cacheable Block-1 Base


- опция для установки базового адреса некэшируемого адресного диапазона.
Как правило, такая пара опций сопровождается еще одной "дружной" парой, поскольку речь может идти и о другом регионе памяти, что расширяет возможности конфигурирования:








Non-Cacheable Block-1 Size


- (pазмеp пеpвого некэшиpуемого блока памяти). Hекэшиpуемая область памяти пpедназначается для отобpажаемой памяти устpойств ввода/вывода, котоpую либо не пpедполагается кэшиpовать, либо делать это нецелесообразно. Если некэшиpуемая область перекpывает диапазон фактически используемых адpесов ОЗУ, то можно ожидать значительного уменьшения эффективности системы пpи обpащении к этим адpесам. Если же некэшиpуемая область пеpекpывает лишь несуществующие адpеса ОЗУ, то нет повода для беспокойства.
Если нет смысла кэшиpовать некотоpую область памяти, то можно исключить 2 области памяти. Существуют весьма уважительные пpичины для исключения кэшиpования некотоpых областей. Hапpимеp, если область памяти соответствует некоей буфеpной памяти каpты расширения и каpта может изменять содеpжимое этого буфеpа без уведомления кэша о необходимости отключения соответствующей стpоки кэш-памяти. Hекотоpые веpсии BIOS пpедоставляют больше возможностей для выбора параметров данной опции, чем пpосто "Enabled"/"Disabled", в частности возможен такой вариант: "Nonlocal", "Noncache" и "Disabled". По умолчанию опция устанавливается в "Disabled".








Non-Cacheable Block-2 Base


Другие версии BIOS могут предложить несколько иной вариант аналогичных опций и, пожалуй, более понятный пользователю:








PCI Cycle Cache Hit WS


- при установке значения "Normal" (стандартный режим) обновление кэша второго уровня происходит во время стандартных PCI-циклов и стандартным методом. Речь идет о стандартном режиме поиска информации в кэш-памяти. При установке же значения "Fast" (режим ускорения) кэш-память обновляется безусловно, то есть без тактов ожидания, затрачиваемых на время поиска информации в кэше. Такое обновление не требует каких-либо строб-импульсов. Можно говорить о 100%-ном "попадании" (hit).
Аналогичная опция может называться "PCI cycle cache hit sam point".
 








PCI Master Read Caching


- данная опция, подобно "Video RAM Cacheable", может служить помехой производительности системы, хотя и предназначена для ее повышения. Если опция включена ("Enabled"), L2-кэш будет использоваться для кэширования циклов чтения "master"-устройств на PCI-шине, что должно повысить их производительность. Естественно, в системе кэширование должно быть включено.
Какие же проблемы могут возникнуть по применению этой опции? А причина кроется в объеме вторичного кэша. Поэтому в системах с процессорами Duron такая опция должна быть отключена, иначе возрастет количество "промахов", а количество "попаданий" в кэш заметно понизится. Серьезность проблемы налицо. Даже с процессорами Athlon могут возникнуть конфликты, ведь кэшировать необходимо огромные массивы информации. Поэтому рекомендованный выбор - запретить опцию ("Disabled").









Pipeline


- опция устанавливается в "Enabled" для включения механизма конвейеризации при наличии в системе конвейерной синхронной кэш-памяти. Опция носит интегрированный характер, точно также как и опция "L2 Cache Pipelining". Правда, последняя более конкретна.
Опции "Read Pipeline" и "Write Pipeline" (или "Write Pipelining") позволяют разделить включение режима конвейеризации для циклов чтения и записи в PBSRAM.
Но на этом возможности "варьирования" с наименованиями опций не заканчиваются. Производители системных плат (Acer, Tyan и другие), применявшие наборы микросхем от VIA Technologies (Apollo VP3 и Apollo MVP3), предложили максимально конкретизированный набор опций: "Cache Pipelined Reads" и "Cache Pipelined Writes". Для систем на чипсете AMD 640 различия от приведенных опций уже почти незаметны глазу: "Cache Read Pipeline", "Cache Write Pipeline". Выбор значений для всех опций при этом не меняется - "Disabled" и "Enabled".
 








Pipeline Cache Timing


- если в системе установлен только один модуль PBSRAM, то необходимо выбрать значение "Faster". Значение "Fastest" устанавливается при наличии в системе двух банков вторичной конвейерной блочной SRAM-памяти.
Опция "SRAM Speed Option" предлагает те же самые значения, хотя из ее названия не совсем ясно на первый взгляд, о каком типе кэш-памяти идет речь и о каких скоростных характеристиках. Речь же идет о возможности влиять на работу вторичной кэш-памяти.









Shadow Memory Cacheable


- (кэшиpование "теневой" памяти). Опция, позволяющая включить режим кэширования для тех участков памяти, для которых уже включен режим "затенения". Опция носит интегрированный (обобщенный) характер. Любое обращение к "затененным" адресным пространствам будет вызывать копирование востребованной информации в кэш процессора. Целесообразность включения режима ("Enabled") зависит от множества факторов: что собственно было затенено (видео BIOS, системный BIOS, ПЗУ адаптеров или область, выделенная под работу специализированного контроллера), какая ОС инсталлирована и от некоторых других. Многие из этих факторов рассмотрены отдельно. Что касается операционных систем, то рекомендовать включение такого кэширования можно для "MS-DOS" и "OS/2" (да и то не всегда), "Linux" и другие "Unix"-подобные ОС вообще не используют кэшируемую ROM-память. Что же касается "Windows", речь не идет о "Windows3x", то такое включение может быть рекомендовано не всегда. В любом случае, любая рекомендация требует опытной проверки на конкретной системе. Это касается и оборудования, и операционной системы.
Больший эффект может быть достигнут, если BIOS предлагает вместо обобщенной опции несколько таких опций и с возможностью установки кэширования для отдельно взятого адресного фрагмента. Эти опции могут иметь два значения: "Cached" и "Disabled". А представлены они могут быть в следующем виде:








SRAM Back-to-Back


- установка опции в "Enabled" позволит сократить задержки между 32-битными циклами передачи, так как следующие "друг за другом" циклы будут объединяться в единый, с одним адресом, 64-битный пакет.
 








SRAM Type


- в зависимости от типа установленной кэш-памяти надо выбрать один из вариантов, синхронная либо асинхронная память интегрирована в системе: "Synchronous", "Asynchronous".









Sustained 3T Write


- если конвейерная потоковая кэш-память инсталлирована в системе, то включение опции ("Enabled") позволит осуществлять непрерывный трехтактовый цикл записи при доступе к PBSRAM на системных частотах 66 или 75 МГц.
 








SYNC SRAM Support


- если в системе установлена синхронная кэш-память, то есть возможность "уточнить", какая же именно. Значения следующие:
"Standard" - обычная синхронная SRAM,
"Pipelined" - конвейерная кэш-память.









System BIOS Cacheable


- (кэширование области системного BIOS). Разрешение этого параметра приводит к возможности кэширования области памяти по адресам системного BIOS (F0000H-FFFFFH) во вторичную кэш-память. Включение параметра будет иметь смысл только в случае разрешения функций системного кэширования в разделе "BIOS Features Setup" (как правило), а также, если системный BIOS уже "затенен". Если какая-либо программа попытается выполнить операцию записи в эти адреса, то система выдаст сообщение об ошибке. Это в лучшем случае! Может принимать значения:
"Enabled" - разрешено,
"Disabled" - запрещено.
Опция может называться и "System ROM Cacheable".
Но есть и свое "но"! При включении опции кэшированию подлежит часть системной BIOS, содержащей код для запуска системы и основные функции ввода/вывода. Тем не менее возможности ускорения, речь идет о системном BIOS, через использование кэша процессора редко используются, т.к. часть кэш-памяти, которой всегда недостаточно, резервируется под BIOS, обращение к которому не происходит постоянно. Поэтому рекомендованное значение - "Disabled".
 
Контроллер кэш-памяти оперирует строками (cache line) фиксированной длины. Строка может хранить копию блока основной памяти. С каждой строкой кэша связана информация об адресе скопированного в нее блока основной памяти и признаки ее состояния. Информация о том, какой именно блок занимает данную строку и ее состояние, называется тегом (tag) и хранится в связанной с данной строкой ячейке специальной памяти тегов (tag RAM).
Для хранения тегов используется отдельная микросхема асинхронной SRAM (Tag SRAM), а для более чем 8-битного тега - пара микросхем. Синхронизировать работу Tag SRAM не имеет смысла, поэтому асинхронная память тегов используется как для асинхронного кэша, так и для синхронного кэша 2-го уровня.
Необходимый объем памяти тегов, т.е. количество ячеек, можно вычислить, разделив объем установленной кэш-памяти на длину строки кэша, определяемой чипсетом. Кстати, функции кэш-контроллера для внешнего кэша выполняет чипсет. Длина строки обычно равна количеству байт, передаваемых за один стандартный пакетный цикл (16 байт для 486-го процессора, 32 байта для Pentium и выше).
Для кэша с обратной записью (WB) необходима еще и память для хранения признака "чистоты" строки. Признак может храниться в отдельной микросхеме (Dirty SRAM) или занимать (для строки) один бит в Tag SRAM.

Изложенный материал поможет разобраться и понять содержание представленных опций.



Tag Compare Wait States


- данная опция позволяет регулировать скоростные характеристики кэш-памяти, а точнее, доступ к ячейкам Tag SRAM. Выбор значений не очень большой (0 или 1 такт ожидания), что напрямую связано с процедурой входа в Tag SRAM. На первом или втором такте шинного цикла. Тег-операции с нулевым ожиданием требуют использования 12-нс SRAM или лучше.
Опция может называться "L2 TAG Output Delay". Но наличие задержки уже определяется значением "Enabled". "Disabled", понятно, снимает всякую задержку.









Tag/Dirty Implement


- данная опция по сути ничем не отличается от вышеприведенной, хотя имеет непривычные значения и ..."дочернюю" опцию. Значение "Separate" означает отказ от использовании "dirty"-бита, а "Combine" объединяет последний с тегом, доводя общую разрядность до 8 или 9 бит, что устанавливается опциями, изложенными выше.








Tag Option


- опция предлагает для выбора два значения. Одно из них, равное 8 битам, не предполагает использования т.н. "dirty"-бита. Второе же выделяет собственно под тег 7 бит и еще один бит под признак "dirty".
Опция может называться "Alt Bit in Tag SRAM" или "Alt Bit Tag RAM". Слово "аlt" не должно "смущать" пользователя. Это обычное сокращение. В данном случае от alternative, что можно перевести и как "дополнительный". Значения опции: "7+1 Bits" и "8+1 Bits". Правда, в некоторых случаях возможны значения "Enabled" и "Disabled", как способ управления дополнительным битом.
Идентична последним опция "L2 (WB) Tag Bit Length". Опцией устанавливается размер основного тега (7 или 8 бит), дополнительный бит используется автоматически и пользователю "недоступен". Точно также функционируют опции "L2 Cache Tag Bits", "L2 Cache Tag Length" ("7 bits", "8 bits").
Опция может называться "Tag RAM Size". Но в ней уже не идет речь об использовании дополнительного "dirty"-бита. В соответствии со спецификацией инсталлированного "tag RAM"-чипа необходимо и выбрать размер тега (7 или 8 бит).
 








Tag Ram Includes Dirty


- значение "Enabled" не вызывает возражений, т.к. использование дополнительного "dirty"-бита направлено на повышение функциональных возможностей системы. Ну а что же "Disabled"? Снова немного теории!
Если опции "BIOS Setup" позволяют сделать это, то иногда имеет смысл уменьшить объем кэшируемой памяти до объема реально установленной памяти. При этом возможно более эффективное кэширование имеющейся памяти за счет реструктуризации общения чипсета и кэша. С другой стороны, увеличение объема кэшируемой вторичным кэшем памяти обычно требует установки дополнительной микросхемы Tag SRAM, т.к. возрастает разрядность тега. А как поступить, если объем инсталлированной памяти все же превышает объем кэшируемой и установка дополнительной микросхемы вызывает проблемы. В этом случае установка "Disabled" может спасти ситуацию. Отказ от использования "dirty"-бита автоматически ведет к его добавлению в адресную часть тега и к увеличению объема кэшируемой памяти в 2 раза.
Стоит напомнить, что для современного Pentium IV объем кэшируемой вторичным кэшем памяти составляет 4 ГБ.
Опция может называться "L2 Cache Dirty Tag" или "L2 Dirty Bit" и с теми же значениями ("Enabled" и "Disabled").









USWC Write Posting


- USWC (или "Uncacheable, speculative write combining" - режим объединенной некэшируемой записи) - режим работы с видеопамятью, повышающий производительность системы, построенной на процессоре Pentium Pro (и всех последующих процессорах семейства P6 и более современных). Для реализации режима необходимо наличие у графической карты линейного буфера кадра (linear frame buffer), а также включение функции кэширования видеопамяти (например, опция "Video RAM Cacheable") и выбора соответствующего типа ее кэширования (см. ниже). Должен быть также установлен основной режим кэширования как "write-back". При этом данные небольшого объема комбинируются (объединяются) в 64-битные циклы записи, что позволяет снизить количество транзакций, необходимых для переноса некоторого объема данных в линейный буфер кадра видеокарты. Наличие кадрового буфера у видеокарты стандартно, но не все графические карты могут поддерживать такой режим записи. Это в большей степени связано не с самими графическими картами или установками "BIOS Setup", а с функционированием немодифицированных 32-разрядных драйверов графических адаптеров, которые должны использовать т.н. "протокол разделенной записи" (Partial Write protocol). Неоправданное включение режима может привести к нарушениям работы видеоканала, сбоям и даже проблемам с загрузкой системы.
Ну а с буферизацией отложенной записи мы уже знакомы. Если система позволяет применять "USWC"-режим, то включение опции ("Enabled") может еще несколько повысить производительность системы. Опция может называться "USWC Write Post".
 








Video BIOS Cacheable


- (кэширование области BIOS видеокарты). Разрешение этого параметра приводит к возможности кэширования области памяти по адресам BIOS видеокарты (C0000H-C7FFFH) во вторичной кэш-памяти процессора. Параметр будет использован только при включении кэш-памяти в разделе "BIOS Features Setup" (или аналогичном). Но предварительно должна быть также включена функция "затенения" Video BIOS.
Если какая-либо программа попытается выполнить запись в эти адреса, то система выдаст сообщение об ошибке либо, что более вероятно, зависнет. Пpи наличии видеокаpты с "ускоpителем" (а таковыми являются все современные видеокарты) необходимо отключить кэширование видеопамяти и видео-BIOS, дабы центральный процессор мог "отслеживать" любые изменения, пpоизводимые устpойством ввода в буфеp кадpа изобpажения. Опция должна быть отключена и при установке на компьютер современной операционной системы, что является ныне стандартной ситуацией. Такая ОС просто игнорирует видео-BIOS, обращаясь к видеокарте через графический драйвер. Об оправданности включения этой опции можно дополнительно сказать то же самое, что и по системному BIOS. Может принимать значения:
"Enabled" - разрешено,
"Disabled" - запрещено.
Опция может называться "Video BIOS Area Cacheable".

BIOS VGA - это фактически программа, предназначенная для управления схемами VGA. Также через BIOS пользовательские программы могут инициировать некоторые процедуры и функции VGA, не обращаясь при этом непосредственно к адаптеру.
Область адресов видео-BIOS (C0000H-C7FFFH) давно уже как бы стандартизована. Но так было, естественно, не всегда. В зависимости от типа графический адаптер занимал следующие адреса:
MDA (видеобуфер) - B0000h-B0FFFh (4 КБ),
CGA (-::-) - B8000h-BBFFFh (16 КБ),
EGA (видео-БИОС) - C0000h-C3FFFh (C7FFFh) (16 {32} КБ),
VGA (-::-) - C0000h-C7FFFh (32 КБ).
 








Video Memory Cache Mode


- (установка режима кэширования для видеопамяти). Параметр действителен только для процессоров архитектуры Pentium Pro (Pentium II, Celeron и выше), для которых кэш второго уровня (L2) стал внутренним, т.е. интегрированным в процессорный модуль (ранее L2-кэш представлял собой отдельный чип на системной плате). Такое требование может показаться несколько специфичным и непонятным! Но речь, с одной стороны, идет о кэшировании центральным процессором данных из видеопамяти, а отсюда и повышенные требования к пропускной способности кэша.
С другой стороны, а это и причина, и следствие, к обычным режимам работы с кэш-памятью ("Write Through" и "Write Back") были также добавлены режимы "Write Combine" (WC - объединенная запись) и "Write Protected" (WP - защищено от записи). Уже в первом процессоре семейства (Pentium Pro) была предусмотрена возможность изменять режим кэширования в зависимости от конкретной области памяти через специальные внутренние регистры, называемые MTRR (Memory Type Range Registers). С помощью этих регистров для конкретной области памяти стало возможным устанавливать режимы UC (uncacheable combining - не кэшируемая объединенная запись), WC (write combine - объединенная запись), WP (write protected - защищено от записи), WT (write through - сквозная запись) и WB (write back - обратная запись). Установка интегрированного режима USWC (uncacheable, speculative write combine - не кэшировать, режим объединенной записи) позволяет значительно ускорить доступ к буферу видеопамяти и вывод данных через шину PCI на видеокарту (естественно, что и в AGP-порт также, и даже в большей степени). Добавим, что под термином "combine" подразумевается по сути пакетный режим, который может оказаться весьма эффективным и в ДОС-приложениях, т.к. позволяет передавать за один такт объединенные 8- или 16-битные циклы.
Следует учесть, что видеокарта должна поддерживать доступ к своей памяти в диапазоне A0000 - BFFFF (128 КБ) и иметь линейный буфер кадра. Правда, трудно представить, что этого может не быть. Поэтому лучше установить режим USWC, но в случае возникновения каких-либо проблем (система может даже не загрузиться, если карта не поддерживает этот механизм) необходимо установить значение по умолчанию - "UC". К таким возможным проблемам можно добавить работу с "noname"-картами, с картами, для которых задекларировано "всё и вся", а также возможные конфликты при совместной работе со звуковой картой. Поэтому установка оптимального значения требует проведения дополнительных экспериментов с системой. Может принимать значения:
"UC",
"USWC".









Video RAM Cacheable


- (кэширование области видеопамяти графического адаптера). Разрешение опции ("Enabled") позволяет увеличить производительность системы путем кэширования видеопамяти по адресам A0000h-AFFFFh. Речь идет и об использовании кэша второго уровня для видеопамяти, и об ускорении доступа к видеопамяти. Но могут возникнуть сбои, если "нехорошие" программы попытаются произвести запись по указанным адресам. Поэтому неудивительно, что по умолчанию устанавливается "Disabled".
Но есть и другие причины отказа от кэширования видеопамяти. Уже не самые современные видеокарты имеют полосу пропускания в 2,47 ГБ/сек. (128 бит x 166 МГц). Между тем, полоса пропускания SDRAM-памяти может составлять около 0,99 ГБ/с (64 бит x 133 МГц), если память работает на частоте 133 МГц. Для Pentium III-650 полоса пропускания кэша второго уровня составляет 19,4 ГБ/с (256 бит x 650 МГц). Целесообразно ли кэшировать видеопамять графической карты, имея "на борту" более медленную системную память? Однозначно, это не имеет смысла, имея даже такую пропускную способность вторичного кэша. Необходимо учесть и то, что локальная видеопамять и L2-кэш соединяются между собой через AGP-шину с максимальной полосой пропускания в 0,99 ГБ/с при использовании AGP4X-протокола.
Ну и опять таки надо помнить об ограниченном объеме кэш-памяти (смотри внимательно возможности процессоров) при "массированных" PCI-циклах чтения, что неминуемо приведет к возрастанию доли промахов при обращении к кэш-памяти .
Опция может называться "Video Buffer Cacheable".
 








Weak Write Ordering


- (нестрогое упорядочение записи). При включении опции ("Enabled") процессор направляет циклы записи в свой внутренний кэш в порядке, отличном от последовательного (потокового) кода. Циклы записи во внешний кэш всегда происходят в строгом порядке.









X 2-Bank L2 Cache Speed,


которая предлагает хотя и два варианта для выбора, но все же более "медленные": "2-1-1-1", "3-1-1-1".









X Dirty pin selection


- если предыдущая опция установлена в "Combine", данная опция становится активной и предлагает два значения:
"I/O" - сигнал "Dirty" носит двунаправленный характер,
"IN" - является только входным сигналом.
Данная опция требует дополнительного изучения.

Несколько в стороне от приведенных опций по использованию "памяти тегов" мы расположим две опции:
"L2 Cache Tag" и "Use Internal TAG RAM". Обе они имеют значения "Enabled" и "Disabled". Назначение этих опций не совсем понятно, и поэтому требует дополнительного "расследования".
 








Регенерация памяти


Динамическая память любого типа, в отличие от статической, даже при подаче питающих напряжений не обладает способностью хранить свою информацию сколь угодно долго. Состояние элементарной ячейки динамической памяти определяется наличием или отсутствием заряда на конденсаторе, и этот заряд подвержен утечке. Поэтому для сохранения данных в динамической памяти ее ячейки необходимо периодически подзаряжать, что и составляет суть процесса регенерации. Как это происходит, чуть ниже.
При выполнении операции чтения регенерация выполняется автоматически. Полученные на усилителе сигнала данные тут же записываются обратно. Считается, что такой алгоритм позволяет уменьшить число требуемых регенераций и увеличить быстродействие. Но это совершенно не так! Считывается ли информация из памяти или нет, "частота" регенерации при этом не меняется. Она либо вообще не регулируется (нет соответствующих опций в "BIOS Setup"), либо является строго фиксированной после соответствующиих установок.
Возможны три различных метода регенерации данных.
Регенерация одним RAS (RAS Only Refresh - ROR). Этот метод использовался еще в первых микросхемах DRAM. Адрес регенерируемой строки передается на шину адреса и выдается сигнал RAS (точно так же, как при чтении или записи). При этом выбирается строка ячеек, и данные из них поступают на внутренние цепи микросхемы, после чего записываются обратно. Так как далее сигнал CAS не следует, цикл чтения/записи не начинается. Затем передается адрес следующей строки и так далее, пока не будет пройдена вся матрица памяти, после чего цикл регенерации повторяется. К недостаткам этого метода можно отнести то, что занимается шина адреса, и в момент регенерации блокируется доступ к другим подсистемам компьютера.
CAS перед RAS (CAS Before RAS - CBR) - стандартный метод регенерации. При нормальном цикле чтения/записи сигнал RAS всегда приходит первым, за ним следует CAS. Если же CAS приходит раньше RAS, то начинается специальный цикл регенерации - CBR. При этом адрес строки не передается, а микросхема использует свой внутренний счетчик, содержимое которого увеличивается на 1 при каждом CBR-цикле (т.н. инкрементирование адреса строки). Этот режим позволяет регенерировать память, не занимая шину адреса, что, безусловно, более экономично.
Автоматическая регенерация памяти (Self Refresh - SR, или саморегенерация). Этот метод обычно используется в режиме энергосбережения, когда система переходит в состояние "сна" ("suspend"), и тактовый генератор перестает работать. В таком состоянии обновление памяти по вышеописанным методам невозможно (попросту отсутствуют источники сигналов), и микросхема памяти выполняет регенерацию самостоятельно. В ней запускается свой собственный генератор, который тактирует внутренние цепи регенерации. Такая технология работы памяти была внедрена с появлением EDO DRAM. Необходимо отметить, что в режиме "сна" память потребляет очень малый ток.
В классической реализации PC AT запросы на регенерацию DRAM генерировал канал 1 системного таймера 8254. К его выходу подключен триггер, работающий в счетном режиме и меняющий свое состояние на противоположное при каждом запросе. Состояние этого триггера можно программно считывать через бит 4 порта 61h. Проверка Refresh Toggle заключалась в проверке того факта, что этот триггер переключается с заданной частотой. Но со временем стали применяться другие алгоритмы регенерации памяти (что и изложено выше), и несмотря на то, что Refresh Toggle сохраняется для совместимости, по нему уже нельзя проверить формирование запросов на регенерацию. Циклы регенерации выполняет входящий в состав чипсета контроллер регенерации, который для выполнения своей задачи должен получать управление магистралью каждые 15,6 мкс. Во время цикла регенерации производится чтение одной из N ячеек памяти.

Burst Refresh


- (пакетная регенерация). Как правило, трактовка этой опции в литературе носит ошибочный характер. При разрешении опции ("Enabled") в единый пакет собираются запросы на регенерацию, причем такое пакетирование может в некоторых случаях обеспечивать аккумулирование запросов по всему объему строк в памяти. Такой метод ведет к значительному повышению производительности, но есть и обратная сторона. На достаточно длительные промежутки времени и постоянно происходит захват шины памяти, что приводит к блокировке доступа к ней процессора или других устройств.
Опция может называться "DRAM Burst Refresh".









CAS Before RAS Refresh


- метод регенерации памяти, когда сигнал CAS устанавливается раньше сигнала RAS. В отличие от стандартного способа регенерации, этот метод не требует перебора адресов строк извне микросхем памяти - используется внутренний счетчик адресов. Однако, этот способ регенерации должен поддерживаться микросхемами памяти. Если раньше можно было встретить фразы, что большинство модулей памяти поддерживает такой метод регенерации, то сейчас это уже стандартное аппаратное решение. Использование этого метода позволяет заметно снизить потребляемую модулями памяти энергию. Может принимать значения:
"Enabled" - разрешено,
"Disabled" - запрещено.
Опция может называться "CAS Before RAS".
 








CAS-to-RAS Refresh Delay


- действие этой опции возможно при включенном состоянии предыдущей (или аналогичной), так как в данном случае устанавливается время задержки между стробирующими сигналами (в тактах системной шины). Естественно, что установка меньшего значения приводит к снижению времени, затрачиваемого на регенерацию. Большее же значение повышает надежность, т.е. достоверность данных, находящихся в памяти. Оптимальный вариант для данной системы выбирается опытным путем. Может принимать значения: "1T", "2T" (по умолчанию).









Concurrent Refresh


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








Decoupled Refresh


- (раздельная регенерация). Поскольку ISA-шина имеет невысокую скорость работы, то включение этой опции ("Enabled") позволит чипсету разделить регенерацию для основной памяти и ISA-шины. При этом процесс регенерации для ISA-шины может быть завершен во время выполнения процессором других инструкций. Использование этой опции заметно увеличивает производительность всей системы. Опция эта играла заметную роль во времена 486-х машин.
Но могла возникнуть и проблема, которая заключалась в том, что некоторые карты расширения (обычно, видеокарты) требовали к себе внимания процессора во время начального цикла регенерации шины. Естественно, что это могло привести к нежелательным сбойным ситуациям. Отключение опции могло потребоваться также, если при работе с графическими режимами высокого разрешения на экране монитора появлялись какие-то символы или "снег". При этом необходимо было отключать и такой метод работы с памятью, как "Memory Relocation" (см. выше). Сказанное выше было характерно, например, для видеокарт на чипе S3 801 (таких, как SPEA V7 Mirage), работающих совместно с некоторыми картами-контроллерами производства "Adaptec" с расширенной ROM-памятью, необходимой для обслуживания жестких дисков объемом свыше 1 ГБ.
Опция может называться "Decoupled Refresh Option".









Distributed Refresh


- (распределенная регенерация). Не совсем ясно, что "прячется" под этой опцией, хотя есть предположение, что это аналог "раздельной регенерации". В свое время данную опцию можно было встретить в системах на чипсетах от "VIA Technologies". Значения опции: "Disabled" и "Enabled".
 








DRAM Ahead Refresh


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








DRAM Burst at 4 Refresh


- эта опция также связана с пакетной регенерацией, но суть ее иная. Разрешение опции ("Enabled") включает регенерацию по 4 строки в пакете. Такой метод заметно повышает производительность. При этом шина освобождается намного быстрее, чем в случае с опцией "Burst Refresh".
 








DRAM CAS# Precharge


- (время предварительного заряда CAS). Эта функция применяется при наличии в системе синхронной динамической памяти, и с ее помощью устанавливается (в тактах системной шины) время для формирования сигнала CAS (накопления заряда по CAS) до начала цикла регенерации памяти (см. ниже дополнительно "DRAM RAS# Precharge Time"). Уменьшение этого значения увеличивает быстродействие, но возможны проблемы со стабильностью системы, если в то же время установлены "пограничные" значения для RAS-строба. Если установлено слишком малое значение (время), также и регенерация может оказаться незавершенной, что в итоге приведет к потере данных, находящихся в памяти.
Опция может иметь наименования: "CAS# Precharge", "CAS# Precharge Time", "FPM CAS# Precharge", "FPM DRAM CAS Precharge", "EDO/FPM CAS Precharge Time", "EDO CAS# Precharge", "EDO DRAM CAS Precharge".
Большим разнообразием значений все перечисленные опции не отличаются. "1T", "2T" или такой ряд: "1T", "1T/2T", "2T". Некоторое разнообразие внесла опция "CAS Precharge Period": "1T", "2T", "3T", "4T".









DRAM RAS Only Refresh


- включение/отключение метода обновления DRAM, альтернативного методу "CAS-before-RAS". Если BIOS содержит другие возможности по регенерации памяти, то эту опцию необходимо отключить. В противном случае придется использовать этот устаревший метод обновления памяти.
 








DRAM RAS# Precharge Time


- (время предварительного заряда RAS). Эта функция применяется при наличии в системе синхронной динамической памяти и она позволяет устанавливать время (в тактах системной шины) для формирования сигнала RAS (иногда говорят о накоплении заряда по RAS) до начала цикла регенерации памяти. Фактически, тем самым устанавливается минимальный интервал между двумя последовательными циклами чтения или записи. Уменьшение этого значения увеличивает быстродействие. Но если установлено недостаточное время, регенерация может быть некомплектной, что в итоге приведет к потере данных, находящихся в памяти. Естественно, что за повышением частоты, на которой работает память, следует и выбор большего значения, что важно при разгоне памяти. Возможные значения могут быть представлены в различном виде: в виде цифровых значений - "3", "4" и т.д.; с указанием системных тактов - "3 Clocks" или "1T". А обобщенный ряд значений имеет следующий вид: 0T, 1T, 2T, 3T, 4T, 5T, 6T, хотя в каждом конкретном варианте может быть представлено 2-4 значения.
Опция может иметь множество названий: "DRAM RAS# Precharge Period", "RAS# Precharge Time", "RAS Precharge Timing", "RAS# Precharge Period", "FPM DRAM RAS# Precharge", "FPM RAS Precharge", "RAS# Precharge", "DRAM RAS Precharge", "EDO RAS Precharge", "EDO RAS# Precharge Time", "EDO RAS Precharge Timing", "FPM/EDO RAS# Precharge Time", "EDO/FPM RAS Precharge Time".
Как видим, опция не потеряла своей актуальности с появлением EDO-памяти и, что интересно, затем также BEDO- и SDRAM- модулей, поскольку данный параметр является одной из важнейших характеристик чипов памяти: "BEDO RAS Precharge", "SDRAM RAS Precharge Time".
Правда, кроме привычных параметров типа "3T" или "2 Clks" (эти значения и характерны для SDRAM-модулей) в различных версиях BIOS стали "встречаться" новые виды значений, таких как: "Same as FPM" и "FPM-1T", "Fast" и "Normal", "Fast" и "Slow". Для последней пары параметров "Slow" (медленно) равносильно увеличению количества тактов, что повышает стабильность работы системы, поэтому значение "Fast" следует устанавливать в случае уверенности в качестве модулей памяти. Что же касательно первой пары, то для опций вида "FPM DRAM RAS# Precharge" ряд значений мог иметь вид: 2T, 3T, 4T, 5T, 6T, а отсюда и возможный результат для SDRAM-памяти, хотя совершенно не очевидный.
Вполне возможна и ситуация, когда версия BIOS предоставляет возможность установки каких-либо параметров для каждого банка памяти в отдельности. Поскольку речь идет о "предзаряде" для RAS#-строба, то опция (опции!) может называться "Bank 0&1 (2&3)(4&5): EDO/SDRAM Precharge" со значениями: "3T/2T", "4T/3T".
"AMI BIOS" для "своей" опции "SDRAM RAS# Precharge" предложил дополнительное значение "Auto". Правда, один из вариантов опции "SDRAM RAS Precharge" представил и значения "Disabled"/"Enabled". Запрещать опцию можно только в случае абсолютной уверенности в модулях памяти, иначе неприятностей не избежать. Раз коснулись возможности запрещать/разрешать механизм предзаряда, то нужно отметить и возможность включать ("Enabled") оптимизацию предзаряда - "SDRAM: Optimal RAS# Prech.".
Для данной опции (опций!) необходимо отметить пару важных моментов. Нельзя путать данную опцию с опциями типа "Refresh RAS Active Time", которые отвечают за длительность сигнала RAS#. В нашем случае речь идет как бы о подготовительном процессе. И второе! Данную опцию совершенно правильно было бы разместить и в разделе, посвященном стандартной оптимизации памяти (см. ниже). Процедуры выставления сигнала RAS# и при регенерации, и при операциях чтения/записи идентичны.
В завершение вышесказанного опция "RAS# Precharge/Refresh" со значениями "3T/4T" и "4T/5T". Данной опцией устанавливаются одновременно и время подготовительной фазы, и общее время активности сигнала RAS# для цикла регенерации.









DRAM Refresh Method


- опция установки метода регенерации. Опция может называться также "Refresh Type", "DRAM Refresh Type", "DRAM Refresh Mode" или "Refresh Type Select". При любых вариациях опция, как правило, среди возможных параметров содержит только два параметра. Приводим весь возможный ряд: "CAS before RAS" (или "CAS-RAS"), "RAS only", "RAS# Before CAS#", "Normal", "Hidden".
 








DRAM Refresh Period


- установка периода (частоты повтора), требуемого для регенерации памяти, в соответствии со спецификацией модулей памяти. В новейших версиях BIOS такая опция может и не присутствовать, хотя ее наличие в современной системе по прежнему позволяет оптимизировать процесс регенерации. Ранее такая опция предлагала пользователю широкий простор для творчества: в зависимости от версии BIOS и его производителя, чипсета, модулей памяти. Опция могла также носить название "Refresh Cycle Time (us)", "DRAM Refresh Cycle Time", "Memory Refresh Rate", "DRAM Refresh Rate Select", "DRAM Refresh Rate","SDRAM Refresh Rate" или просто - "DRAM Refresh". Вот неполный перечень значений, с которыми мог встретиться пользователь:
"For 50 MHz Bus", "For 60 MHz Bus", "For 66 MHz Bus", "Disabled" (такой необычный вариант встретился в системе на i430FX),
"50/66 MHz", "60/60 MHz", "66/66 MHz",
"15 us", "30 us", "60 us", "120 us",
"Disabled" (или "No Refresh"), "15.6 us", "31.2 us", "62.4 us", "124.8 us", "249.6 us",
"15.6 us", "31.2 us", "62.4 us", "125 us", "250 us",
"15.6 us", "62.4 us", "124.8 us", "187.2 us",
"1040 Clocks", "1300 Clocks",
"15.6 us", "7.9 us", "FR 128 CLKs" (понятно, что речь идет о частоте - "frequency"),
"Disabled", "Normal",
"Fast", "Slow",
"Faster", "Slower",
"Disabled" (устанавливаются стандартные 15,6 мкс), "Enabled" (соответствует удвоению частоты).
Остается отметить, что чем реже производится регенерация памяти, тем эффективнее работает система. Но если явно наблюдаются нарушения в работе системы, то частоту обновления необходимо повысить. Значение "Disabled", появляющееся в некоторых версиях, не должно использоваться. В противном случае следует ожидать потери информации в памяти. И наконец, если пользователь видит на экране перед собой целый ряд значений для выбора, то это может означать, что в состав чипсета входит специальный конфигурационный регистр, в котором три разряда (или менее) "отданы" под возможные комбинации устанавливаемой частоты.
Как дополнение к изложенному рассмотрим еще некоторые опции и чипсеты, для которых они были реализованы:
"DRAM Refresh Ratery Time" (SIS530) - "15.6 us", "7.8 us", "3.9 us",
"Refresh Rate" (AMD751) - "20.4 us", "15.3 us", "10.2 us", "5.1 us".
Опция "Refresh Mode Select", несмотря на некоторое несоответствие в названии, предложила значения "7.8 ?sec", "15.6 ?sec", "64 ?sec", а опция "Refresh Interval" - "7.8 ?sec", "15.6 ?sec", "31.2 ?sec", "64 ?sec", "128 ?sec".
Вот тут и может возникнуть, с одной стороны, мнимое несоответствие, а с другой, некоторое непонимание сути представленных опций. Ведь в названиях опций упоминаются и "частота", и "период", и "интервал", и "время цикла". Поэтому требуется дополнительное разъяснение.
Понятно, что одновременно регенерировать всю динамическую память невозможно. Допустимо также говорить о построчной регенерации матрицы памяти (об этом см. выше). Тогда можно ввести сразу два понятия. Первое - временной интервал между регенерацией, например, соседних строк. Второе - время полного цикла регенерации, т.е. время, через которое необходимо будет снова регенерировать условную начальную строку. "Обычный" чип памяти содержит 4096 строк. Можно утверждать, что общее время цикла регенерации составляет 64 мсек (один из стандартов JEDEC). И тогда упомянутый интервал (период) регенерации составляет:
64000 : 4096 = 15.6 ?sec.
Это означает, что каждые 15,6 мкс контроллер памяти инициирует цикл регенерации отдельной строки памяти. И это значение характерно для тех же модулей DIMM емкостью 128 Mbit или меньше. Если же речь идет о модулях емкостью 256 Mbit и более, то количество строк составит 8192 и интервал регенерации 7.8 ?sec, обусловленный сохранением времени общего цикла в 64 мсек. Если же в системе используются модули различной емкости, то временная характеристика регенерации устанавливается по модулю большей емкости, т.е. с более высокой частотой.
Необходимо отметить, что применявшиеся ранее модули памяти во многих случаях позволяли удлинить цикл регенерации, т.е. увеличить ее интервал, тем самым несколько повышая производительность системы.
И, конечно же, картина была бы неполной, если бы мы не вспомнили о RAMBUS DRAM. Мы не будем детально останавливаться на архитектуре этого типа памяти, напомним только, что структура и организация банков памяти носит многоканальный характер. Причем каждый канал данных представляет собой шину шириной всего в один (!) байт. Но за счет высокопроизводительного конвейера, высокоскоростной внутренней магистрали, синхронизируемой собственным тактовым генератором, пропускная способность шины памяти уже доведена до 3,2 ГБ/сек. Ну а теперь опция - "RDRAM Refresh Rate, Channel N", и ее значения: "No refresh", "1.95 us", "3.9 us", "7.8 us".









DRAM Refresh Queue


- этот параметр во включенном состоянии допускает использование более эффективного метода обновления памяти. Дело в том, что чипсет способен формировать последовательность нескольких запросов обновления памяти, пока шина процессора не будет готова к выполнению следующей операции. Речь здесь идет об использовании режима конвейеризации запросов на регенерацию памяти. "Enabled" разрешает постановку в очередь, как правило, 4 запросов регенерации памяти. Установка в "Disabled" означает отключение конвейеризации, что естественно снижает эффективность и приводит к проведению всех циклов регенерации либо по приоритету запросов, либо в соответствии с методами, изложенными в других опциях.
Данный режим должен быть всегда включен. "Enabled" устанавливается и по умолчанию. Одно условие! Установленные модули памяти должны поддерживать это свойство, большинство современных типов памяти поддерживают этот метод. Более того! Использование столь эффективного метода регенерации зависит и от реализации чипсетом таких функций, и от версии BIOS. В таком явном, "пользовательском", виде такая опция повстречалась в "AMI BIOS".
Опция может называться также "DRAM Refresh Queing".
 








DRAM Refresh Queue Depth


- данная опция позволяет установить степень ("глубину") конвейеризации, т.е. количество возможных ступенек конвейера. Чем выше это число, тем большее количество запросов на регенерацию в данное время находится в обработке. Возможные значения, что естественно зависит от указанных выше реализаций и возможностей, имеют вид:
"0" (равносильно "Disabled"), "4", "8", "12" (по умолчанию).
Опция может называться также "Refresh Queue Depth".









Extended Refresh


- (расширенная регенерация). Введение (в свое время) этой опции в BIOS предполагало использование специальных EDO-чипов. Регенерация содержимого ячеек EDO DRAM при этом стала производиться через 125 мкс, а не через каждые 15,6 мкс, как при стандартной регенерации. Это несколько повысило общее быстродействие памяти.
 








Fast DRAM Refresh


- (быстрая регенерация DRAM). Контроллер памяти предоставляет два режима регенерации памяти: стандартный (Normal) и скрытый (Hidden). В каждом из режимов CAS-строб выставляется перед RAS-сигналом, однако в режиме "Normal" для каждого строб-импульса выделяется дополнительный такт процессора. Это старый метод обновления памяти, и поэтому имеет смысл установить значение данного параметра в "Hidden", который обеспечивает и повышенное быстродействие, и большую эффективность (см. ниже), также и по причине того, что CAS-строб может и не выставляться - быть "скрытым".









Hi-Speed Refresh


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









Hidden Refresh


- (скpытая pегенеpация). Когда установлено значение "Disabled", память регенерируется по IBM AT методологии, используя циклы процессора для каждой регенерации. Когда опция "Hidden Refresh" установлена в "Enabled", контроллер памяти "ищет" наиболее удобный момент для регенерации, независимо от циклов CPU. При этом регенерация происходит одновременно с обычным обращением к памяти. Алгоритм регенерации памяти при этом многовариантен: разpешаются циклы pегенеpации в банках памяти, не используемых центральным процессором в данный момент, взамен или вместе с ноpмальными циклами регенерации, выполняемыми всякий pаз (каждые 15 мс) пpи опpеделенном пpеpывании (DRQ0), вызванном таймеpом и инициируемом схемой регенерации.
Для регенерации каждый pаз тpебуется до 4 мс. В течение этих 4 мс один цикл pегенеpации пpимеpно каждые 16 мкс pегенеpиpует по 256 стpок памяти (здесь и выше приведены характеристики для модулей памяти малой емкости). Каждый цикл pегенеpации занимает столько же или чуть меньше вpемени, чем один цикл чтения памяти, т.к. сигнал CAS для pегенеpации при этом не тpебуется.
"Hidden refresh" отличается максимальной скоростью и эффективностью, наименьшими нарушениями активности системы и наименьшими потерями производительности, также позволяя поддерживать состояние памяти во время нахождения системы в режиме "suspend". Этот режим более быстрый, чем "Burst Refresh". Но наличие в BIOS этой функции еще не означает ее реализации. После установки опции в "Enabled" стоит тщательно проверить работоспособность компьютера. Некотоpые модули памяти позволяют использовать "Hidden Refresh", некотоpые - нет. В большинстве случаев pекомендуется установить в "Enabled".
 








ISA Refresh


- опция разрешения/запрещения проведения регенерации памяти для ISA-шины. В таком виде эта опция уже не встречалась даже в последние годы существования ISA-шины.
 








ISA Refresh Period


- установка периодичности для регенерации ISA-шины. Возможный ряд значений: "15 us", "30 us", "60 us", "120 us".









ISA Refresh Type


- опция с установкой метода регенерации памяти для ISA-шины. Возможные значения параметра: "Normal" и "Hidden". Аналогичная опция с названием "ISA Bus Refresh Mode" могла предложить другие значения: "Slow" и "Fast".
 








PCI-to-DRAM RAS# Precharge


- тема "предзаряда" уже достаточно нами освоена, поэтому стоит лишь сказать кратко о назначении данной опции - установка времени "предзаряда" строба RAS# при циклах записи PCI-шины в основную динамическую память. Значения опции: "2T", "3T".









RAS Precharge @Access End


- когда выбрано "Enabled", RAS#-строб остается в активном состоянии в конце процесса "предзаряда". Если же установлено "Disabled", RAS# переводится в пассивное состояние (высокий уровень).
 








RAS Timeout


- когда установлено значение "Disabled", цикл регенерации динамической памяти производится в стандартном режиме, т.е. каждые 15,6 мкс. Дополнительный цикл регенерации памяти вставляется при выборе значения "Enabled".









Ref/Act Command Delay


- (установка задержки для цикла чтения/записи). Параметром выбирается время задержки между окончанием цикла регенерации и началом цикла чтения или записи. Опция может принимать значения: "5T", "6T" (по умолчанию), "7T", "8T".
Система на наборе SIS530 предложила опцию под названием "DRAM Refresh/Active Delay" с чуть более консервативными значениями: "9T", "8T", "7T", "6T". Более развитый чипсет (SIS540) представил уже две опции: "DRAM REF/ACT Delay" ("10T", "9T") и "DRAM ACT/REF Delay" ("10T", "9T", "8T"). Понятно, что последняя опция предназначена для выбора задержки для режима регенерации после окончания цикла чтения/записи. Меньшие значения, конечно, более предпочтительны. Данная опция уже не встречается в современных системах.
 








Refresh During PCI Cycles


- опция, разрешающая/запрещающая проведение регенерации памяти во время циклов чтения/записи на шине PCI. Может принимать значения:
"Enabled" - разрешено,
"Disabled" - запрещено.









Refresh RAS# Assertion


- (установка периода активности сигнала RAS). Этим параметром устанавливается длительность сигнала RAS (в тактах системной шины) для цикла регенерации. Меньшее значение увеличивает производительность системы. Но поскольку принимаемые значения определяются качеством памяти и чипсетом, то к их установке необходимо подходить осмотрительно. Может принимать значения: "4T" (или "4 Clks"), "5T" (или "5 Clks"). Могут быть и другие значения.
Опция может называться также "Refresh Assertion", "Refresh RAS Active Time" или "RAS Pulse Width Refresh".
 








Refresh Value


- данной опцией устанавливался множитель частоты регенерации. Меньшее значение увеличивало производительность системы за счет снижения частоты регенерации. Но при этом также оптимальный вариант мог быть достигнут только опытной проверкой. Значения опции могли быть выбраны из ряда: 1, 2, 4, 8, 16. Иногда можно было встретить и значение 0,5. Опция эта давно уже не встречается.
Опция может называться "Refresh Divider".









Refresh When CPU Hold


- довольно устаревшая опция, предлагавшая производить регенерацию ("Enabled") или не делать этого ("Disabled") во время пауз процессора.
 








SDRAM Idle Limit


- данная опция устанавливает количество "пустых" тактов ожидания перед перезарядкой SDRAM-модулей. Оптимальная установка позволяет улучшить производительность циклов чтения/записи путем настройки интервала времени, в течение которого банк памяти может оставаться "пустым" перед перезарядкой (recharging), т.е. перед перезаписью содержимого памяти обратно в ячейки. При этом данная установка не может функционировать как задержка цикла регенерации.
Уменьшение количества тактов с 8 (по умолчанию) до 0 означает, что банк SDRAM-памяти будет немедленно регенерироваться как только контроллер памяти выставит достоверный запрос. При увеличении "SDRAM Idle Limit" от 8 тактов и более перезарядка банка будет задержана на большее время, тем самым возрастет время "хранения" информации из памяти во внутренних цепях. Пришедшая в это время команда чтения/записи будет исполнена мгновенно. Тогда приходится признать, что эффективность памяти возрастет, когда банк более длительное время будет оставаться "пустым". Но всегда есть свое НО! Во внутренних цепях перезарядки не хранятся все строки банка памяти, а только регенерируемой строки. Поэтому пришедший запрос, например, на чтение некоторой строки наверняка не "попадет в точку", и системе придется ожидать завершения регенерации, особенно в случае завышенного значения параметра.
В основном приходится выбирать между значениями в пределах между 0 и 8-ю тактами, правда, насколько позволит это версия BIOS. Конечно, подобная настройка требует серьезной опытной проверки. Поэтому, если есть возможность управлять частотой регенерации, то данную опцию лучше заблокировать. Опытным специалистам можно порекомендовать "поиграть" с двумя характеристиками.
Опция может называться "DRAM Idle Timer". Указанные опции предложили два ряда значений:
"Disabled", "0 Cycle", "8 Cycles", "12 Cycles", "16 Cycles", "24 Cycles", "32 Cycles", "48 Cycles",
"0 clocks", "2 clocks", "4 clocks", "8 clocks", "10 clocks", "12 clocks", "16 clocks", "32 clocks".
Подобные опции достаточно редки. Но вот система на достаточно современном чипсете AMD751 предложила сразу две:
"Idle Precharge Limit" с рядом "0 cycles", "8 cycles", "12 cycles", "16 cycles", "24 cycles", "32 cycles", "48 cycles" и "No idle precharge" и "Extra High Idle Limit" со значениями "Disabled"/"Enabled". Последняя опция разрешает или запрещает вставку дополнительного такта ожидания.









SDRAM Precharge Control


- (управление предварительным зарядом SDRAM). Данная опция определяет, чем управляется "предзаряд" SDRAM - центральным процессором или самой SDRAM-памятью. В некоторых версиях BIOS такая опция может называться (трактоваться) как "SDRAM Page Closing Policy" ("метод закрытия страниц SDRAM" - см. дополнительно в следующем разделе). Если эта опция отключена ("Disabled"), то все циклы процессора к SDRAM завершаются командой "All Banks Precharge Command" в интерфейсе SDRAM-памяти, что улучшает стабильность, но понижает производительность памяти. Если же эта опция включена ("Enabled"), то предварительный заряд контролируется самими чипами памяти. Это уменьшает количество предзарядов SDRAM, значительно возрастает число циклов CPU-to-SDRAM до того момента, когда требуется регенерация памяти. Это однозначно ведет к повышению общей производительности системы, но может влиять на ее стабильность.
 








SDRAM Refresh


- опция выбора метода регенерации для SDRAM-памяти. Возможные варианты: "Serial" (последовательный перебор строк при регенерации) и "Simultaneous" (одновременная регенерация). При рассмотрении опции "Burst Refresh" уже отмечались недостатки пакетной регенерации, при которой в единый пакет собираются запросы на регенерацию. "Перезарядка" строк происходит мгновенно, но пока не завершится полная регенерация, доступ к шине памяти будет невозможен. Поэтому об оптимальной установке для конкретной системы можно будет говорить после экспериментальных тестов.
Данная опция была замечена в системах, построенных на чипсетах SIS620, SIS600 и некоторых других.









Self-Refresh


- опция включения режима "саморегенерации" основной памяти (если установлено "Enabled"). Этот режим подробно описан выше, в вводной статье.
Опция может называться также "EDO/FPM DRAM Self-Refresh".
 








Slow Refresh (1:4)


- (медленная pегенеpация). При включении этой опции ("Enabled") схема регенерации будет в 4 раза реже регенерировать память (64 мкс против 16), чем в обычном pежиме. При такой установке пpоизводительность системы повышается благодаpя уменьшению конкуpенции между CPU и схемой pегенеpации, однако не все типы динамических ОЗУ могут поддеpживать такие циклы (в этом случае будет получено сообщение об ошибке четности или о сбое системы). Тогда необходимо установить значение "Disabled". Опция в свое время получила распространение с развитием такого типа ПК, как "laptop" (дорожный ПК), в качестве энергосберегающей функции. В современных системах эта опция встречается все реже.
В свое время считалось также, что применение "медленной регенерации" будет достаточно эффективным при использовании 16-битных ISA-карт расширения, работающих в режиме "bus master". Поскольку сама ISA-карта может быть инициатором запроса на регенерацию, то понятно, что "медленная регенерация" в меньшей степени бы нарушала передачу данных по DMA-каналам.
Опция может называться также "DRAM Slow Refresh", "Slow Refresh" или "Slow Refresh Enable".
Опция может называться и "Slow Memory Refresh Divider". Но этой опцией устанавливался делитель для медленной регенерации: 1, 4, 16 или даже 64. Устанавливать самые большие значения, т.е. в максимальной степени снижать частоту регенерации, позволяла только специальная память.









Staggered Refresh


- трудно переводимый тип регенерации, что-то наподобие "регенерации с перекатыванием". Но этим непонятным термином обозначают "шахматную" регенерацию. Как известно, регенерация выполняется на банках памяти последовательно, с последовательным перебором строк. Но при наличии нескольких банков памяти и включении данной опции банки памяти регенерируются одновременно, но со сдвигом по перебору строк.
Данный тип регенерации позволяет сгладить броски потребления модулями памяти, выравнивая токи в процессе различных переключений. Так как уменьшаются броски тока, то такая регенерация эффективна с точки зрения снижения помех.
С помощью этой несколько устаревшей опции есть возможность установки временного интервала между регенерируемыми строками, измеряемого в системных тактах (0T, 1T, 2T, 3T, 4T, 5T, 6T, 7T). Установка в "0" позволяет регенерировать все строки в банках одновременно. Но опция может предложить и обычный набор значений: "разрешить применение"/"отказать" ("Enabled" и "Disabled").
Опция может называться также "Refresh Stagger" или "DRAM Refresh Stagger By".









X DRAM Ahead Refresh Timing


- данная же опция по сути позволяет "отодвинуть" начало цикла регенации на 10 или 40 системных тактов. Небольшое, но все же повышение производительности. Столь уникальные опции были реализованы в системах на наборе SIS540 и более пока нигде не встречались.