Link training retry bios что
Load-Line Calibration или LLC - это настройка BIOS, установленная на большинстве материнских плат производителями, и добавляет дополнительное напряжение к вашему процессору под нагрузкой, чтобы обеспечить большую стабильность при разгоне и компенсировать колебания высокого и низкого напряжения, чтобы поддерживать линию напряжения на CPU больше стабильной.
Ничто не разрушает деталь ПК быстрее, чем нестабильность. Когда ваша система работает на холостом ходу, она отлично выдерживает напряжение, установленное в BIOS. Однако при тяжелой нагрузке мощность вашего процессора падает. Напряжение будет быстро расти. Это происходит в мгновение ока, и всегда, когда ваш процессор переходит из состояния бездействия в состояние нагрузки.
После того, как начальная деформация процессора будет применена, скажем, когда вы играете в игру, напряжение на вашем процессоре может фактически подняться выше значения, которое вы фактически установили Vcore в свой BIOS. Вы можете решить для Vdroop, установив Vcore выше, чем нужно. Это, конечно же, приносит больше тепла, энергопотребления и более быстрого снижения производительности.
Калибровка линии нагрузки оборачивается вокруг этой проблемы, обеспечивая дополнительное напряжение при увеличении нагрузки и только при необходимости, сохраняя при этом максимальное значение Vcore, которое вы установили. Это гарантирует, что вы только компенсируете потерянное напряжение и не вызовите перегрузку, по крайней мере, не непреднамеренно.
Какие настройки я использую?
К сожалению, нет никакой стандартной реализации для производителей материнских плат. Некоторые упрощают работу только с одним режимом работы, в то время как другие предоставляют полдюжины опций или более. Наиболее распространенный, предлагает диапазон процентов на выбор. Это позволяет вам выбрать, насколько агрессивно вы хотите компенсировать потерю напряжения. 0 процентов применяет наименьшее количество напряжения, в то время как 100% имеет тенденцию слегка подталкивать напряжение под нагрузкой и сильно на холостом ходу; в то время как это может быть полезно для экстремальных оверклокеров, вы захотите начать где-то посередине для использования 24/7.
Если вы начинаете с 50 процентов, вам нужно будет контролировать напряжение холостого хода и настраивать вверх или вниз его на 25 процентов. Также важно контролировать напряжение нагрузки и запускать приложение для тестирования напряжения, такое как XTU от Intel. В конце концов, конечной целью является достижение стабильного разгона.
Самый безопасный способ? Начните с наименьших значений.
При разгоне есть множество трюков для настройки; настройка калибровки нагрузки является одной из тех настроек, которые могут помочь поддерживать успешный разгон. Это также долгий путь в обеспечении долгосрочной стабильности, поэтому вы можете продолжать свою работу или играть и оставаться в стороне от BIOS.
В данной статье я собрал информацию о некоторых настройках BIOS материнской платы M3A32-MVP Deluxe. А точнее о тех из них, которые интересны при разгоне. Все, что сказано ниже не является абсолютной истиной и было собрано из различных источников, в большинстве своем англоязычных. Поэтому выношу этот материал на обсуждение. Тем более, что сам хотел бы узнать побольше о некоторых опциях. Личное мнение от использования тех или иных настроек я записывал под знаком *. Вот подходящая ветка на оверах, где можно и нужно обсудить данный материал. Осталось добавить, что на данной МП я разгонял Athlon 64 x2 4400+ Brisbane, поэтому, возможно список оп.
В данной статье я собрал информацию о некоторых настройках BIOS материнской платы M3A32-MVP Deluxe. А точнее о тех из них, которые интересны при разгоне. Все, что сказано ниже не является абсолютной истиной и было собрано из различных источников, в большинстве своем англоязычных. Поэтому выношу этот материал на обсуждение. Тем более, что сам хотел бы узнать побольше о некоторых опциях. Личное мнение от использования тех или иных настроек я записывал под знаком *. Вот подходящая ветка на оверах, где можно и нужно обсудить данный материал. Осталось добавить, что на данной МП я разгонял Athlon 64 x2 4400+ Brisbane, поэтому, возможно список опций неполный по сравнению с использованием Phenom-ов.
Jumper Free Configuration
AI Overclocking [Manual]
Установка значения Manual открывает Вашему взору следующие опции:
FSB Frequency [200-600 MHz]
Значение, которое наряду с множителем задает устанавливает частоту процессора. Например, 200 FSB x 11 = 2.2 Ггц.
PCIE Frequency [100-150 MHz]
Рекомендуется устанавливать не более 115-118 МГц, при этом можно добиться небольшого увеличения производительности в 3D-приложениях. Установка значений превышающие данные может вызвать проблемы в работе южного и северного мостов и, как следствие, проблемы в работе периферии и жестких дисков, но кого этим испугаешь ;)
Processor Frequency Multiplier [x4 — x11,5]
В режиме AI Overclocking Auto BIOS устанавливает заданную по умолчанию частоту CPU. В режиме Manual можно задать множитель из приведенного интервала.
CPU-NB HT Link Speed [200-1000MHz]
Частота HT для Phenom-ов от 200 до 2200МНz
CPU VDDA Voltage [2,5-2,8v]
* Толкового объяснения в русскоязычном интернете не нашел. По поиску нашел на одном из англоязычных форумов объяснение, что этот параметр устанавливает схему регулирования центрального процессора и манипуляциями с ним можно добиться стабильности при разгоне. Проверил, действительно, на комп на пределе разгона (проц Athlon 64 x2 Brisbane 4400+ @ 3300Гц 1,6v) при значении данной опции 2,5v грузился через раз, а при установке ее в 2,8v он у меня прошел SuperPi32M, правда, ОССТ не выдержал. При этом, помогло именно значение 2,8v, с 2,6 и 2,7 была та же картина, что и с 2,5.
NorthBridge Voltage [Manual]
Данная установка открывает следующие опции:
Hyper Transport Voltage [1,2-1,5v]
Выставляет напряжение на шине Hyper Transport.
* При разгоне ставил 1,3v.
Southbridge Voltage [1,2-1,4v]
* При разгоне выставил 1,3v.
Auto Xpress [Auto, Enabled, Disabled]
Про эту опцию можно сказать следующее:
Уже в случае с AMD 790X, впрочем, перечень характеристик пополняется за счет Auto Xpress (автоматическое увеличение рабочей частоты шины PCI Express при установке видеокарт AMD на платы с чипсетом AMD; использование специальных режимов работы с DDR2 памятью), GPU-Plex, Quad PCIE Blocks и CrossFireX. Последняя технология особо интересна тем, что отныне в режиме CrossFire могут быть объединены три или даже четыре графических адаптера AMD. Перечень CrossFireX-совместимых видеокарт на данный момент состоит из решений AMD поколения Radeon HD 3800. При производстве новых чипсетов компании был использован 65 нм техпроцесс. Энергопотребление данных наборов системной логики составляет 10-12 Вт (TDP).
Будучи объединенными вместе, все вышеперечисленные компоненты (процессоры Phenom, чипсеты AMD 7, адаптеры Radeon HD 3800 и технология CrossFireX) составляют новую платформу для "энтузиастов" под названием AMD "Spider".
CPU Tweak [Enabled, Disabled]
В BIOS от Asus так называется TLB-патч для процессоров Phenom.
Memory Configuration
Bank Interleaving [Auto, Disabled]
Включение этого режима позволяет работать с банками по очереди, то есть получать данные из одного в то время, когда другие заняты. Причем выбор значения 2-Way позволяет чередовать пару банков, а 4-Way – четыре банка (они есть у большинства микросхем DIMM-модулей), а это, конечно, выгоднее.
* В тесте памяти Everest с данной опцией Disabled результат снижается на ~2,5% по сравнению с Auto.
Channel Interleaving
* У меня эта опция была в BIOS версии 0801, с которой она и продавалась. После прошивки до последней версии 1102 я ее не обнаружил.
DCT Unganged Mode [Enabled, Disabled]
При установке Disabled чипсет должен работать с памятью частотой до 800МГц. Enabled позволяет включить делитель для памяти 1066МГц. Это можно сделать при установке процессоров Phenom.
Read Delay [0,5-4 memory CLKs]
Это поле определяет задержку от включения DQS ресивера до начала чтения первых данных с клавиатуры, получаемых FIFO.
000b = 0.5 Memory Clocks
001b = 1 Memory Clock
010b = 1.5 Memory Clocks
011b = 2 Memory Clocks
100b = 2.5 Memory Clocks
101b = 3 Memory Clock
110b = 3.5 Memory Clocks
111b = 4 Memory Clocks
Прямая корреляция w/memory's время ожидания. Чем ниже установка, тем ниже время ожидания.
* Со значением 0,5 комп не стартовал, сброс CMOS. С 1 стартует, но пишет что-то вроде ошибки при проверке DRAM. Нормальный запуск при 1,5. В бенчмарке памяти и кэша Everest прирост по сравнению с настройками по умолчанию: по Read — 1,9%; по Copy — 0,5%; по Latency — уменьшение времени доступа на 2,8 ns. По Write изменений нет.
Memory Clock Tristate C3/ALTVID [Enabled, Disabled]
Позволяет частоте памяти DDR быть в трех состояниях (tristated), когда включен дополнительный режим VID. Этот бит не имеет никакого эффекта если установлен бит DisNbClkRamp (Function 3, Offset 88h).
Power Down Enable [Enabled, Disabled]
Если данный режим активирован, то после ввода включения режима Sleep Mode, главному внутреннему тактовому генератору запрещено передавать сигнал на чип устройства. При этом большая часть связанной схемы может отключена от питания для сохранения энергии.
DCQ Bypass Maximu [0x-14x]
Управляющий контроллер обычно позволяет производить за проход другие операции по порядку, чтобы оптимизировать пропускную способность DRAM. Это поле определяет максимальное количество раз, которое самый старый запрос доступа к памяти в очереди контроллера DRAM может быть отложен перед выполнением, и самый старый запрос доступа к памяти будет выполнен вместо другого.
0000b = Никогда не откладывается; самый старый запрос никогда не откладывается.
0001b = самый старый запрос может быть отложен не больше, чем 1 раз.
1111b = самый старый запрос может быть отложен не больше, чем 15 раз.
* оптимальное значение для быстродействия 4. При этом в тесте памяти Everest наибольшая скорость копирования. На чтение, запись и латентность это значение почти не влияет.
DRAM Timing Configuration
Memory Clock Mode [Auto, Limit, Manual]
Установка в Manual открывает следующую опцию:
Memory Clock Value [400, 533, 667, 800]
Позволяет установить делитель для памяти.
2T Mode (Slow Access Mode) [Auto, Enabled, Disabled]
Медленный доступ к памяти. Этот бит управляет использованием режима таймингов 2Т. 2T режим может быть необходим, чтобы выполнить электрические требования некоторых скоростных DIMM и загрузочных конфигураций.
0 (2Т отключен) - DRAM адрес и контрольные сигналы передаются за один цикла MEMCLK.
1 (2Т включен) - один дополнительный MEMCLK обеспечивается для всех адресов DRAM и контрольных сигналов кроме CS, CKE и ODT; то есть, эти сигналы передаются за два цикла MEMCLK, а не за один.
* 1Т — преимущество в скорости работы памяти (чтение, копирование, уменьшение latency). Включить 1Т можно установкой данной опции в Disabled или через Memset из виндовс.
DRAM Timing Mode [Auto, DCT0]
При установке DCT0 позволяет вручную задавать тайминги. Некоторые пункты:
TCWL [5 CLK] опция добавлена с версии BIOS 1002 (время ожидания записи - чем ниже значение, тем быстрее запись).
TRAS [18 CLK] для этой установки начиная с версии BIOS 1002 удалена следующая зависимость: Если tRTP установлен в Auto, тогда значение 2 и зависит от того, каково значение. Любая другая установка tRTP, то TRAS - 18 независимо от того, каково значение.
TRC [26 CLK] с версии BIOS 1002 отменена эта установка, если tRTP не находится в Auto. Если tRTP не находится на Auto, то TRC - 26.
tWTR [3 CLK] с BIOS версии 1002 эта установка отменена, если tRTP не находится в Auto; иначе окончательное значение будет уменьшено на 1.
tRTP [2-4 CLK] В в BIOS версии 0801 при установке чего-нибудь все равно Auto; для TRC и TRAS отменены в версии 0902 значения 2-4 CLK и функционирование TRAS, как установлена.
tRWTTO [4 CLK] Для моей памяти это Auto или то же самое, что и tWR или не будет загружаться.
tWRRD [0 CLK] эти последние три параметра нужны для таймингов от модуля к модулю (Для бенчмарков рекомендуется устанавливать их соответственно на 0,1 и 2)
PLL1 Spread Spectrum [Enabled, Disabled]
PLL2 Spread Spectrum [Enabled, Disabled]
Опция Spread Spectrum позволяет сгладить пики и уменьшить интерференцию, а также уменьшить взаимное электромагнитное влияние различных компонентов системной платы друг на друга за счет изменения их частоты в некоторых пределах. Рекомендуется отключить для стабильности системы.
PCI Express Configuration
GFX Dual Slot Configuration [Enabled]
GFX2 Dual Slot Configuration [Disabled]
Peer-to-Peer among GFX/GFX2 [Disabled]
Данные опции определяют сколько и в каком режиме будет работать видеоадаптеров, размещенных в слотах. С такими значениями — будут задействованы платы, подсоединенные к верхним синему и черному слотам в равном состоянии для получения запросов и команд.
GPP Slots Power Limit, W [25]
Ограничение мощности слотов GPP
Link ASPM [L0s & L1]
ASPM обозначает Active State Power Mangement. Кроме соответствия традиционным требованиям энергосбережения, стандарт PCI Express обладает и эксклюзивными механизмами управления питания — это ASPM, Active State Power Management. ASPM обладает завидной автономностью и способен переводить устройство в оптимальный режим работы без инструкций свыше (со стороны ПО). Это не означает, что устройство, давно не подававшее признаков активности, будет полностью отключено, но переведено в режим пониженного потребления L0s - наверняка. Стандарт PCI Express считает устройство неактивным, если за время, равное 7 мкс, с ним не было никакого обмена данными. Как только возникает потребность в обмене, устройство возвращается в рабочее состояние. У различных устройств может быть абсолютно разное время «засыпания» и «пробуждения», поэтому эти параметры сообщаются Active State Power Management на этапе конфигурирования.
Link Width [Auto, x1Mode, x2, x4, x8, x16]
режим работы слота.
Slot Power Limit, W [175]
максимальная потребляемая мощность, которая может быть подана через слот (0-250).
NB-SB Port Features
NB-SB Link ASPM [Disabled, L1]
NP NB-SB VC1 Traffic Support [Disabled, Enabled]
виртуальный канал 1) помогает с асинхронным режимом управлять потоком данных и голоса по IP.
Hyper Transport Configuration
Isochronous Flow-Control Mode [Disabled, Enabled]
Часть спецификации HTT со времен AGP 8X.В случае если разработчик решает обеспечивать поддержку управления изохронного потока данных, в дополнение к стандартным трем виртуальным каналам, каждый интерфейс ресивера, который поддерживает изохронный поток, получит еще шесть ресиверов управления потоком, буферы и счетчики, и дополнительно установленный трансмиттер управления потоком счетчиков. Попутно ресивер определяет, какой буфер управления потоком данных (изохронный или стандартный) пакет должен использовать, это определяется посредством бита в пакете запроса (Isoc бит). Если Isoc бит задан в запросе, то он будет также определен в ответе, когда он возвратится - снова идентификация буфера, установленного для использования.
Принимающие устройства, которые видят пакеты запроса с установленным Isoc бит, но которые не находятся в изохронном режиме управления потока, не используют выделенные изохронные буферы управления потоком данных для их обработки. В этом случае, используются стандартные шесть буферов управления потоком данных и NOP буфер возвращает модифицированные пакеты на передатчик, все применяются к стандартным счетчикам потока передатчика. Такие устройства сохраняют Isoc бит и в пакете запроса и в его ответе, поскольку они отправляют его следующему устройству; По пути, если есть устройство, которое действительно поддерживает изохронный трафик, оно может использовано.
* Сказал много, а толку нет Проще говоря, лучше эту опцию держать Enabled.
HT Link Tristate [Disabled, CAD/CTL, CAD/CTL/CLK]
Включите вариант с тремя состояниями, чтобы уменьшить потребляемую мощность. По умолчанию нет линий в трех состояниях. Также CAD/CTL или CAD/CTL/CLK линии могут быть в трех состояниях.
UnitID Clumping [Disabled, UnitID 2/3, UnitID B/C, UnitID 2/3&B/C]
Включите для поддержки UnitID clumping, чтобы увеличить число отдельных запросов, поддерживаемых одиночным устройством. Это возможно включит для PCI-Express GFX линии в некоторых конфигурациях. Clumping можно включить, только когда используется более низкий мост номера в пределах каждого ядра PCI-Express GFX.
* Точных указаний нет. Вроде как работает вместе с Isochronous Flow-Control Mode и нужно ставить значение UnitID 2/3&B/C.
2X LCLK Mode
Ничего (опция будет удалена в следующей версии).
Топология шины PCI Express декларирует соединение двух ее агентов между собой по схеме «точка-точка». Параметры каждого линка — предмет особого внимания процедур BIOS. На этапе выполнения POST его задача состоит в том, чтобы определить функциональность таблично заданных агентов и подготовить их для операционной системы с помощью специальной процедуры, которая называется Link Training.
Инициализационные процедуры должны определить разрядность шины PCIe и проверить ее готовность к работе в заданной полосе пропускания. Кроме того, выполняется еще ряд манипуляций в конфигурационном PCI-пространстве, на которых мы останавливаться не будем, ограничив эксперименты стартовой процедурой, направленной, как следует из ее названия, на запуск и «тренировку» шинных соединений. Операционная система принимает в эксплуатацию PCIe-подсистему как данность, и обычно не переопределяет ее параметры. Из этого правила есть одно маленькое, но очень существенное исключение: функциональность PCIe-шины предполагает «горячую» замену плат расширения (только при наличии поддержки со стороны платформы). А это значит, что процедура Link Training не запрещается после ее выполнения в BIOS и может в любое время потребоваться для нужд операционки.
Постановка задачи
Реализация задуманного потребует повторного инициирования процедуры Link Training для заданного PCIe-порта уже после старта платформы.
В структуре PCI Express Capability Structure есть регистр Link Control Register. Его бит Retrain Link можно установить в «единицу» для запуска процедуры Link Retrain. Статус ее завершения можно проконтролировать по состоянию бита Link Training в регистре Link Status Register.
Если эксперимент будет успешным, мы можем рассчитывать на следующие бонусы тестирования:
- PCIe-контроллер будет аппаратно генерировать импульсные последовательности, заданные его разработчиком, оптимизированные для проверки соединительных цепей и пригодные для наблюдения внешними приборами.
- PCIe-контроллер при выполнении процедуры Link Training диагностирует функциональность линий заданного порта, и аппаратное отключение неисправных, выполняется только по результатам проверки. Мы ожидаем, что импульсы должны наблюдаться по всем линиям, что должно решить известную проблему с недоступностью неисправных линий Rx(i), Tx(i) из-за аппаратного их отключения на этапе POST.
- Процедура Link Training допускает цикличное выполнение. Результаты каждой итерации можно выводить в диагностический порт и мониторить их с помощью POST-карты. Например, порт 80h будет отображать разрядность шины, а в порт 81h — частоту. Предполагается, что для удобства данные визуализируются в двоично-десятичной системе: код 2516h будет означать полосу пропускания в 2.5GT/s на 16-ти битной шине.
- В качестве самопроверки можно намеренно вносить искажения путем замыкания керамических конденсаторов либо изоляцией ламелей PCIe-устройства, контролируя при этом статус процедуры Link Training на индикаторе POST-карты.
К недостаткам эксперимента (или чтобы сохранить лицо, скажем, — к особенностям :) можно отнести требование того порядка, что в список тестируемых линков будут включены только те из них, к которым подключены заведомо исправные бортовые контроллеры либо контроллеры, установленные в неповрежденный PCIe-слот. Связи, обеспечивающие «пустые» слоты, отслеживаться не могут по определению. Из точки А шагнуть в неизвестность не представляется возможным. Процедура BIOS POST обычно отключает PCI Express мосты, если не найдено подключенных к ним устройств. Поэтому, регистры, требуемые для выполнения эксперимента, будут недоступны в конфигурационном пространстве.
Описание эксперимента
Программный макет планируется отладить в среде MS-DOS, после чего возможна его реализация в виде UEFI-приложения или интеграция в Legacy BIOS. В качестве среды программирования используется язык ассемблера в версии Borland: TASM, TLINK и Turbo Debugger. Листинг программы приведен в Приложении.
Для последующей интеграции в BIOS намеренно не используются сервисные функции PCIBIOS (INT 1Ah) в силу того, что этот сервис может быть недоступен на момент выполнения макета в составе POST-процедуры. Доступ к PCI-пространству выполняется через порты Config_Address и Config_Data (0CF8h, 0CFCh).
Для простоты реализации макет не сканирует все конфигурационное пространство для поиска всех доступных PCIe линков. Адрес, задающий тестируемый порт, передается в виде константы BusDevFncReg, которую нужно установить вручную перед ассемблированием. Обращения к INT 16h и INT 21h, необходимые в DOS версии, потребуется убрать при интеграции в BIOS.
С целью адаптации эксперимента для ряда платформ NVidia, некорректно отрабатывающих 16-битный вывод в порт 80h, помимо коррекции константы BusDevFncReg, также потребуется изменить адрес порта на значение 1080h, инструкцию out 80h,ax заменить на последовательность:
mov dx,1080h
out dx,ax
Кроме того, переключить POST-контроллер IC80v5 на использование порта 1080h.
Программа циклически выполняет Link Training и выводит в диагностические порты его результаты: порт 80h — Width (разрядность), порт 81h — Speed (скорость). При ошибке программа завершается шестнадцатибитным выводом в порт 80h значения 0FFFFh. Штатно работу эскизного макета можно прекратить, нажав любую клавишу. В этом случае в порт 80h выводится значение 0000h.
Программа была проверена на плате с чипсетом i915 (ASUS P5GPL-X). Тестировался 16-битный PCI Express порт между северным мостом и видеокартой ATI Radeon X800. При отсутствии ошибок: Speed=2.5 Gb/S, Width=16 bit, как и должно быть. В 16-битный порт 80h выводится код 2516h.
Если во время выполнения нашего теста имитировать короткое замыкание между линиями PCI Express, программа детектирует ошибку. Детально увидеть процессы по линиям Rx, Tx осциллограф с полосой пропускания 100 МГц не позволяет, но вносимые замыкания влияют на статус контроллера, а значит, Link Training выполняется. На испытуемой платформе, искусственное внесение ошибок препятствует завершению процедуры Link Training, в результате происходит выход по таймауту и программа завершается с выводом на индикаторы пост карты кода FFFFh.
Информация о разрядности и частоте шины PCIe доступна в статусном регистре и без повторного выполнения Link Training в сеансе ОС. В этом случае данные параметры являются результатом выполнения Link Training при старте платформы. Именно поэтому были необходимы самопроверка с искусственным внесением ошибок непосредственно во время выполнения нашей программы, а также анализ времени выполнения процедуры, о котором будет идти речь ниже. Так мы убедились в том, что на испытуемой платформе Link Training в сеансе ОС действительно выполняется.
Для наборов системной логики и видео адаптеров NVidia, характерна поддержка переключения на меньшую разрядность шины PCI Express, если часть линий неработоспособна. На плате ASUS A8N-E (AMD Socket 939, Nvidia nF4) в сочетании с видеокартой ASUS EN9800GT мы изолировали контакты старших восьми линий шины PCI Express бумажной вставкой. В результате, при старте платформы, шина инициализировалась в режиме 8 бит и работоспособность видео адаптера сохранилась. При запуске нашей программы в сеансе ОС, на POST-карте получаем код 2508h. В режиме нормальной эксплуатации поддерживается разрядность в 16 бит, что подтверждается показаниями POST-карты:
Настройка на топологию платформы
Выбор адреса тестируемого PCIe-порта устанавливается вручную до ассемблирования программы. Для этого следует отредактировать константу BusDevFncReg.
Константа содержит битовые поля Bus, Device, Function, Register, задающие адрес в конфигурационном пространстве PCI. Эти параметры должны соответствовать адресу контроллера PCI Express, соответствующего тестируемому порту и представленному в конфигурационном пространстве как мост PCI-PCI. Параметр Register должен соответствовать адресу регистра Link Control внутри структуры PCI Express Capability. Смещение этого регистра относительно базового адреса структуры PCI Express Capability равно 10h. Заметим, что второй используемый нами регистр — Link Status имеет смещение 12h и находится в пределах того же 32-битного слова, что упрощает программное взаимодействие с ними. Базовый адрес структуры PCI Express Capability можно узнать из документации на чипсет, либо, если она недоступна, проследив цепочку Capability-структур в блоке конфигурационных регистров моста PCI-PCI, найти искомую структуру можно по Capability >
В соответствии со спецификацией PCI, битовые поля 32-битного регистра Configuration_Address, а значит и константа BusDevFncReg, формируются следующим образом:
В экспериментах использовался диагностический контроллер IC80 V5.0 производства компании IC Book Labs. Устройство обеспечивает 16-битный вывод и возможность переназначения адреса диагностического порта, что существенно для обеспечения совместимости с некоторыми платформами. POST-карта также обеспечивает пошаговый режим с ожиданием нажатия кнопки после вывода каждого диагностического кода. Эта функция будет полезной при интеграции предлагаемого ассемблерного фрагмента в BIOS, так как делает возможным наблюдение быстропротекающих процессов при инициализации платформы.
Несколько слов об оценке времени выполнения процедуры Link Training. После ее завершения, в момент перехода на метку Train_Stop, регистр CX, используемый как декрементируемый счетчик цикла при ожидании выполнения Link Training, будет содержать 0, если имеет место одна из двух ошибок:
- Процедура не была запущена, контроллер сообщил о готовности на первой итерации цикла ожидания, то есть неожиданно быстро.
- Выход по таймауту, выполнено 65536 итераций, контроллер не сообщил о готовности.
Ненулевое значение CX может использоваться для оценки времени ожидания. Количество выполненных итераций равно разности 65536-CX. Например, CX=FFFFh означает выход после первой итерации, CX=FFFEh после второй, и так далее. Время выполнения одной итерации зависит от времени чтения регистра Configuration_Data и может быть различным у различных платформ. При необходимости точно измерить время выполнения, в программу следует добавить операции с системным таймером или TSC. А для определения причины ошибки, вызвавшей нулевое значение CX, может потребоваться дополнительный анализ статуса.
Даём советы по конфигурированию подсистемы памяти процессоров Ryzen и обосновываем их актуальность и эффективность на практике. Этим материалом мы научим вас делать так, чтобы Ryzen работал на полную катушку и не спотыкался о небрежно настроенную DDR4 SDRAM.
Чтобы понять, что не так с режимом DDR4-4000 (и более скоростными) в Ryzen 5000, нужно немного углубиться в их внутреннее устройство. Процессоры этого семейства собраны из чиплетов двух типов – 7-нм восьмиядерных CCD-чиплетов, которые содержат внутри себя вычислительные ядра, и 12-нм чиплета IOD, в котором находятся контроллеры памяти, PCIe 4.0 и некоторых других внешних интерфейсов. Соединяются чиплеты между собой специальной 32-битной шиной Infinity Fabric, которая работает на своей независимой частоте.
Поскольку контроллер памяти в Ryzen физически оторван от процессорных ядер, он также имеет свою рабочую частоту. И в сумме всё это приводит к тому, что скорость работы подсистемы памяти определяется сразу тремя частотами: частотой модулей памяти, частотой контроллера памяти и частотой шины Infinity Fabric, связывающей контроллер с процессорными ядрами и L3-кешем.
Естественно, максимальная производительность всего этого комплекса достигается в том случае, когда Infinity Fabric, контроллер памяти и сама память работают синхронно, то есть на одинаковой частоте, однако добиться этого для любых вариантов модулей DDR4 SDRAM невозможно. Но AMD хотя бы постаралась, чтобы правило синхронного тактования соблюдалось в максимально возможном количестве случаев. И если в системе используется DDR4-3600 или менее скоростная память, то синхронность достигается автоматически. Но для более быстрых модулей памяти всё получается уже иначе.
Частота памяти (mclk) | Частота контроллера (uclk) | Частота Infinity Fabric (fclk) | |
---|---|---|---|
До DDR4-3600 | mclk до 1800 МГц | uclk = mclk | fclk = mclk |
DDR4-3600 | mclk = 1800 МГц | uclk = 1800 МГц | fclk = 1800 МГц |
После DDR4-3600 | mclk выше 1800 МГц | uclk = mclk/2 | fclk = 1800 МГц |
В таблице выше показано, как ведут себя частоты контроллера памяти и шины Infinity Fabric при переходе через режим DDR4-3600. В более скоростных режимах частота Infinity Fabric перестаёт расти вслед за частотой памяти и остаётся на отметке 1800 МГц, активируя асинхронность.
Что касается контроллера памяти, то его частота связана с частотой памяти, но он может работать как на частоте памяти, так и на половине её частоты. При этом есть и ещё одно условие: его частота не может быть выше частоты Infinity Fabric. В результате если частота Infinity Fabric перестаёт соответствовать частоте памяти, контроллер памяти вынужден переходить в более медленный режим половинной частоты. В итоге получается два принципиально различных варианта: либо всё работает синхронно и всё хорошо, либо все частоты, связанные с подсистемой памяти, выходят из связки, и это порождает дополнительные и довольно весомые задержки. Именно из-за них мы и наблюдаем снижение производительности Ryzen 7 5800X при установке в систему DDR4-4000.
Однако есть и ещё один важный нюанс. Описанная выше связь частот – это механизм, который реализован в системах на базе процессоров Ryzen 5000 по умолчанию. В действительности же у пользователя есть доступ как к изменению частоты Infinity Fabric вручную, так и к смене режимов тактования контроллера памяти – синхронно с модулями DDR4 SDRAM или на половинной частоте.
В результате пользователь сам может попытаться включить производительный синхронный режим для более быстрых, нежели DDR4-3600, вариантов памяти. И в ряде случаев это действительно работает. Так, благодаря ручной настройке частот с Ryzen 5000 может синхронно работать не только DDR4-3600, но и более быстрая DDR4-3800 (чем мы и воспользовались для тестов в предыдущем разделе). В этом случае достаточно вручную зафиксировать частоту Infinity Fabric на значении 1900 МГц, и это чаще всего будет работать без каких-либо проблем. Однако для более быстрых вариантов памяти, таких как DDR4-4000, добиться стабильности в синхронном режиме уже почти невозможно.
Когда AMD анонсировала процессоры семейства Ryzen 5000, она обещала, что с ними при удачном стечении обстоятельств сможет работать синхронно и DDR4-4000, то есть утверждалось, что частота 2000 МГц для шины Infinity Fabric вполне реальна.
Однако это утверждение не прошло проверку жизнью. Установить частоту Infinity Fabric и контроллера памяти в 2000 МГц возможно, но при таких настройках в операционной системе начинают фиксироваться множественные ошибки WHEA (Windows Hardware Error), которые связаны с искажением данных, передаваемых по Infinity Fabric. В большинстве своём эти ошибки исправляются механизмами Windows 10, однако некоторые из них могут привести к краху системы и появлению «синих экранов». Иными словами, система, работающая в таком состоянии, не может считаться стопроцентно стабильной, и максимально доступным синхронным режимом памяти для процессоров Ryzen 5000 следует считать DDR4-3800, а не DDR4-4000.
Чтобы оценить штраф, который налагается при отключении синхронного режима памяти, мы протестировали, как Ryzen 7 5800X работает с DDR4-3800 при трёх схемах тактования: 1900:1900:1900 – когда частоты памяти, Infinity Fabric и контроллера памяти совпадают; 1900:1900:950 – когда память и Infinity Fabric работают синхронно, но контроллер переведён в режим половинной частоты; 1900:1800:950 – когда Infinity Fabric работает на асинхронной частоте 1800 МГц.
Кроме того, попутно мы попытались ответить на вопрос о целесообразности разгона Infinity Fabric в системах, где память работает на более низкой частоте. На тех же графиках присутствуют результаты, полученные при использовании в системе DDR4-3200 в трёх режимах: 1600:1600:1600 – полностью синхронном; 1600:1900:1600 – асинхронном при разгоне Infinity Fabric до 1900 МГц; 1600:1900:800 – асинхронном, где Infinity Fabric разогнана, а контроллер памяти заторможен до половинной частоты. Все тесты проведены с двумя модулями по 16 Гбайт.
Из результатов синтетических тестов видно, что нарушение синхронности в трёх частотах приводит не столько к падению практической пропускной способности подсистемы памяти, сколько к увеличению задержки. В конечном итоге латентность возрастает почти на 20 %, причём основная часть этого штрафа возникает при включении в контроллере памяти режима половинной частоты, а вовсе не тогда, когда частота Infinity Fabric перестаёт совпадать с частотой памяти.
В приложениях использование асинхронных режимов не кажется опасным для производительности. Существенное падение быстродействия заметно только при архивации. Однако в целом видно, что отсутствие согласованности между частотами ни к чему хорошему не приводит. Даже разгон частоты Infinity Fabric выше частоты памяти оказывает на итоговую производительность негативное влияние.
Игры реагируют на асинхронность довольно болезненно. Разница в игровой производительности системы с равными частотами на магистрали «процессор—память» и этой же системы, где все три частоты (память, Infinity Fabric, контроллер) разные, составляет в среднем 5 %. Причём удар по FPS наносит как снижение частоты контроллера памяти, так и отсутствие согласованности между частотой памяти и Infinity Fabric.
В итоге получается, что использовать с Ryzen 7 5800X память в режимах быстрее DDR4-3800 действительно не имеет смысла. При этом нужно обязательно следить, чтобы соблюдалось равенство частоты памяти, частоты Infinity Fabric и частоты контроллера памяти. Проверить правильность их тактования можно диагностическими утилитами, например в HWINFO64.
Заодно там же стоит проконтролировать отсутствие ошибок WHEA, которые появляются в системах на базе Ryzen 5000 при переразгоне Infinity Fabric.
Раз мы сегодня говорим обо всех факторах, которые влияют на производительность памяти и в конечном итоге всей системы, обойти стороной тайминги просто невозможно. В процессорах Ryzen 5000, основанных на микроархитектуре Zen 3, произошли значительные изменения, самым заметным из которых стало объединение восьми ядер в одном CCX-комплексе. Это привело к удвоению размера L3-кеша, адресуемого каждым вычислительным ядром, что, в свою очередь, повлекло за собой снижение усреднённых задержек, которые возникают при обращениях процессора к данным. В теории это могло бы означать и снижение влияния на производительность таймингов памяти, которое в процессорах прошлого поколения было определённо заметным.
Но простой тест позволяет убедиться, что схема таймингов, с которой работает тот или иной комплект памяти, продолжает влиять на быстродействие всей системы. Чтобы убедиться в этом, мы протестировали 32-Гбайт комплект DDR4-3600, состоящий из двух модулей, с четырьмя различными схемами таймингов, начиная с 14-14-14-28 и заканчивая 20-20-20-40. Результаты получились вполне показательными.
Не слишком выигрывают от снижения таймингов и приложения. Даже если сравнивать между собой результаты, полученные с худшей и лучшей схемой задержек, то получится, что максимальный разрыв в производительности достигает лишь 5 %. Причём такая разница наблюдается всего единожды – при измерении скорости архивации данных.
Но для игр тайминги всё-таки кажутся довольно важной характеристикой. Кадровая частота может различаться на величину до 6 % в относительном выражении. Таким образом, выбор памяти с агрессивными настройками может быть вполне оправдан. Однако нельзя не сделать важную оговорку о том, что те самые 6 % разницы, которые мы увидели при переходе от максимально вялой схемы 20-20-20-40 к очень бодрым 14-14-14-28, можно было бы получить за счёт увеличения частоты работы памяти на 400-500 МГц. Это создаёт впечатление, что частота памяти – более важная характеристика, нежели её задержки.
Большинство пользователей не занимается тонкой настройкой таймингов памяти, полагаясь на XMP-профили. И это вполне закономерно: профили XMP как раз и были введены в употребление для того, чтобы снять с пользователей груз по подбору идеальных параметров памяти, которые позволят выжать из имеющихся модулей максимум возможного. Однако из-за того, что профили XMP делаются универсальными и способными подойти для совершенно различных систем, предлагаемые ими установки всегда можно улучшить, и нередко – весьма существенно. Это касается как первичных таймингов, которые указываются в спецификациях модулей, так и вторичных параметров, которые в действительности тоже могут сильно повлиять на производительность, – в конечном итоге после тщательной настройки рассчитывать можно как минимум на 5 % дополнительного прироста FPS в играх.
Другое дело, что заниматься подгонкой многочисленных параметров подсистемы памяти, число которых превышает три десятка, захотеть могут лишь только самые отчаянные энтузиасты, которые готовы тратить на идеальную подгонку настроек своей сборки даже не часы, а дни и недели. К счастью, существует довольно простой путь, как можно срезать этот угол, – в этом может помочь полезная утилита DRAM calculator for Ryzen, созданная хорошо известным (в узких кругах) разработчиком Юрием Бублием (1usmus).
Утилита DRAM calculator for Ryzen предлагает заранее подобранные оптимизированные профили настроек для многих распространённых комплектов памяти. Достаточно указать базовые характеристики комплекта – тип чипов, лежащих в его основе, версию печатной платы DIMM, объём модулей и их ранговость, – как программа предложит свою схему рекомендуемых таймингов, которую останется лишь перенести в BIOS Setup. Естественно, стабильность работы при этом не гарантируется, но в большинстве случаев DRAM calculator for Ryzen предлагает дельные варианты, которые, с одной стороны, нормально работают, а с другой – позволяют нарастить производительность на несколько процентов благодаря тщательно подобранным настройкам.
Узнать необходимые характеристики установленного в системе комплекта памяти можно с помощью другой утилиты — Thaiphoon Burner. Она поможет определить лежащие в основе модулей памяти аппаратные компоненты, указывать которые нужно в DRAM calculator for Ryzen.
Утилита DRAM calculator for Ryzen может предложить профили настроек не только для номинальной частоты памяти, но и для повышенной частоты, которые можно применить при разгоне модулей DDR4 SDRAM. Важно лишь предварительно убедиться, что имеющаяся память способна функционировать на такой частоте в принципе.
Как всё это работает и какой вклад вносит в производительность, мы проверили в следующем тесте, в рамках которого протестировали систему на Ryzen 7 5800X с имеющимися модулями DDR4-3600 компании Crucial несколько раз. При этом мы сравнили разные варианты их настройки: базовый – в режиме DDR4-3600 с таймингами, установленными по XMP; тайминги из профиля DRAM calculator for Ryzen и тайминги, подобранные вручную. Причём два последних варианта были использованы дважды: как в номинальном для памяти режиме DDR4-3600, так и при её разгоне до максимальной осмысленной частоты DDR4-3800.
Конкретные значения таймингов, которые получились в каждом таком случае, можно посмотреть при помощи ещё одной полезной утилиты — ZenTimings.
Если ты собрал или собираешь систему на Райзен, ты должен понимать от чего зависит работа такой системы.
AMD нам бесплатно предлагает поднять производительность ПК примерно на 15-20%, но надо кое куда "ткнуть", причём всего, пару раз.
Собственно, те, кто выбрал для себя платформу АМ4, уже готовы к погружению в Bios 😊.
Все на ваш страх и риск, ответственность за выход из строя того или иного компонента будет лежать только на вас! Перед сохранением обязательно проверяйте то, что было изменено!
На примере своего железа, распишу основные моменты.
Статья для новичков, опытные могут добавить информацию (желательно с фото) в комментариях.
Конфиг >
Материнка MSI B450 GAMING PLUS (GAMING значит больше FPS) 🤣.
ЦПУ AMD RYZEN 5 2600.
ОЗУ Самый дешевый Kingston 2133-2400 мгц 2х8 gb.
Тут я гнал уже на материнской плате Asus Strix F gaming.
Итак, если ваша оперативная память поддерживает E xtrim M emory P rofile
(XMP) вы можете выбрать тот профиль, который вам нужен. В матерях от АСУС этот пункт называется D.O.C.P.
Нажимаем A-xmp, кнопка в верхнем левом углу, далее на кнопку Game Boost.
Готово! Проц разгонится до 3.85 Ггц по всем ядрам, а память примет значение выбранного профиля. Больше ничего крутить не надо, сохраняем и загружаемся в систему.
Проходим стресс тесты (аида, осст, мемтест, линпак и другие), обязательно тестируем в играх (например у меня память завелась на 3400, стабильно работала в винде и программах, а в играх вылетала спустя час).
Далее информация для тех, кому мало такого разгона проца и оперы,
и у кого ОЗУ не завелась на XMP (либо отсутствует вовсе).
мой хмп профиль - слёзы, 2133 и 2400 :D а что вы хотели от самых дешёвых кингстонов? Тем не менее +1000 мгц на память стабильно.
мой хмп профиль - слёзы, 2133 и 2400 :D а что вы хотели от самых дешёвых кингстонов? Тем не менее +1000 мгц на память стабильно.
Разгонять память можно на любом чипсете, проц на всех кроме A320.
Прежде всего, убедитесь в хорошем охлаждении компонентов и продуваемости вашего корпуса. Убедитесь в надёжности питальника вашей материнской платы!
> Итак, как указано на картинке, поставьте Expert mode, добавится строчка Memory Retry Count - количество попыток старта. Для экономии времени, я оставил значение "1" (по умолчанию 5).
В данном пункте мы можем выбрать частоту и тайминги оперативной памяти, всё остальное материнка сделает за нас.
3200 cl 16 18 18 18 36-38 это средние значения, на которых память заведётся практически всегда, на данном чипсете, с процами второго поколения.
3200 cl 16 18 18 18 36-38 это средние значения, на которых память заведётся практически всегда, на данном чипсете, с процами второго поколения.
Если у вас материнские платы от других компаний, там данная функция может отсутствовать или называться по-другому.
В любом случае, всё можно сделать ручками, сложного ничего нет.
Выбираем нужную частоту, допустим 3200, заходим в расширенные конфигурации памяти, выставляем тайминги как указано на картинке.
Обязательно поднимаем вольтаж на память "DRAM Voltage" или Dram voltage control - в платах от Gigabyte, до 1.4В. Далее мы его обязательно понизим.
Если всё запустилось, всё работает, возвращаемся в биос, сбавляем напругу и тестируем. У меня работает - 1.344В (первое фото)
на частоте 3333 Мгц. Можно и меньше, я, если честно, пока не тестировал.
Если вас всё устраивает, всё протестировано и отлично работает, можете оставлять как есть.
Если у вас чешутся ручонки 😊 и вам МАЛО, то пишите в комментариях , я выпущу другую статью, где телодвижений потребуется больше!
Сами понимаете, описывать весь процесс в статье под названием "Минимум телодвижений" - противоречить.
Разгон процессора, а так же видеокарты мы рассмотрим позже, всё сравним и сделаем выводы. Подписывайся на канал, оставляй свои комментарии.
Ну можешь еще и лайк поставить, я буду рад!
Читайте также: