(Продолжение, начало в МК № 26–38, 40–43, 46, 50–52 (145–157, 159–162, 165, 169–171), 2000; № 1 (172), 4 (175), 6–7 (177–178), 12–13 (183–184), 17–18 (188–189), 23 (194), 27 (198), 30 (201), 33 (204), 35 (206), 40 (211), 42 (213))

4. Memory

(Продолжение)

4.3. Cache

(Продолжение)

Tag/Dirty Implement

Данная опция по сути ничем не отличается от Tag Ram Includes Dirty, хотя имеет непривычные значения и «дочернюю» опцию. Separate означает отказ от использования dirty-бита, а Combine объединяет последний с тегом, доводя общую разрядность до 8 или 9 бит, что устанавливается опциями, описанными в предыдущей части.

x Dirty pin selection

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

Несколько в стороне от уже рассмотренных опций, отвечающих за использование «памяти тегов», стоят две опции: L2 Cache Tag и Use Internal TAG RAM. Обе они могут принимать значения 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-режима может привести к нарушениям работы видеоканала, сбоям и даже проблемам с загрузкой системы.

Ну а с буферизацией отложенной записи мы уже знакомы. Если система позволяет применять USWC-режим, то включение опции (Enabled) может несколько повысить производительность системы. Еще одно название опции — USWC Write Post.

Video BIOS Cacheable

(Кэширование области BIOS видеокарты)

Разрешение этого параметра приводит к возможности кэширования области памяти по адресам BIOS видеокарты (C0000H-C7FFFH) во вторичной кэш-памяти процессора. Параметр будет использован только при включении кэш-памяти в разделе BIOS Features Setup (или аналогичном). Но предварительно должна быть включена функция «затенения» Video BIOS.

Если какая-либо программа попытается выполнить запись в эти адреса, то система выдаст сообщение об ошибке, либо, что более вероятно, зависнет.

При наличии видеокаpты с «ускорителем графики» (а таковыми являются все современные видяшки) необходимо отключить кэширование видеопамяти и VideoBIOS, дабы центральный процессор мог отслеживать любые изменения, производимые устройством ввода в буфер кадра изображения. Опцию необходимо отключить и при установке на компьютер современной операционной системы. Современные ОС просто игнорируют VideoBIOS, обращаясь к видеокарте через графический драйвер.

Параметр может принимать значения: Enabled — разрешено, Disabled — запрещено.

Аналогичная вышеописанной опция называется Video BIOS Area Cacheable.

Ликбез. Video BIOS — это фактически программа, предназначенная для управления схемами видеовывода. Через VideoBIOS пользовательские программы могут инициировать некоторые процедуры и функции, не обращаясь при этом непосредственно к видеоадаптеру. Область адресов VideoBIOS (C0000H-C7FFFH) давно уже стандартизована. В зависимости от типа графический адаптер занимает следующие адреса:

MDA (видеобуфер) — B0000h-B0FFFh (4 Кб),

CGA (видеобуфер) — B8000h-BBFFFh (16 Кб),

EGA (видео BIOS) — C0000h-C3FFFh (C7FFFh) (16 {32} Кб),

VGA (видео BIOS) — 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» подразумевается по сути пакетный режим, который может оказаться весьма эффективным и в DOS-приложениях, т.к. позволяет передавать за один такт объединенные 8- или 16-битные циклы.

Следует учесть, что видеокарта должна поддерживать доступ к своей памяти в диапазоне A0000 — BFFFF (128 Кб) и иметь линейный буфер кадра. Правда, трудно представить, что все это у современной карты может отсутствовать. Поэтому лучше в BIOS выставить режим USWC (о котором рассказано выше), но в случае возникновения каких-либо проблем (система может даже не загрузиться, если карта не поддерживает этот механизм) необходимо установить значение по умолчанию — UC.

Некоторые проблемы может вызвать работа с noname-картами, с видяшками, для которых задекларировано все и вся. Также возможны конфликты при совместной работе со звуковой картой. Поэтому установка оптимального значения требует проведения дополнительных экспериментов с системой. Опция может принимать значения: UC, USWC.

Ликбез. Несколько слов о MTRR-регистрах и режимах их работы.

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

Режим WC предназначен только для видеопамяти. В некоторых случаях перепрограммирование CMOS-памяти позволяет сконфигурировать диапазон 0–640 Кб основной памяти для применения к нему WC-режима для эффективной отладки «железа». WP-режим служит для «затенения» различных областей памяти и использования их как ROM (ПЗУ)-памяти.

(Продолжение следует)