Все прерывания делятся по следующим приоритетам: 1 место - работает на уровне кольцо -2 прерывания SMI (system management interrupt — прерывание системного управления), которое возникает: -по сигналу от чипсета или периферии на материнской плате -программный SMI, посланный системным ПО через порт ввода-вывода -запись по адресу ввода-вывода, для которого микропрограммно установлена необходимость активации SMM. 2 место - гипервизор, который работает в кольце -1 3 место - ядро операционной системы - работает в кольце 0 4 место - пользовательский уровень - работает в кольце 3
Позднее дополню каждый раздел. Все проблемы у нас связаны с тем, что windows относится к операционным системам с вытесняющей многозадачностью. Вытесняющая многозадачность требует обработки системного прерывания от аппаратного таймера. По истечении кванта времени, отведённого процессу, происходит прерывание и вызывается планировщик процессов. Частота вызова планировщика критична: слишком частый его вызов будет расходовать процессорное время впустую. Единственное, что мы можем изменить - это увеличить время кванта и поменять соотношение квантов времени на активную задачу и задачи в фоне, за это отвечает параметр в реестре Win32PrioritySeparation По умолчанию 0х26 кванты 18:6 = Оптимальный вариант. https://github.com/keoy7am/Win32PrioritySeparationTool При этом само время кванта зависит от системного таймера. При системном таймера 15.625 мс оно будет больше, чем при 1.0 мс. Высчитывается время системного таймера * тики. 1 тик= 3 кванта Для системного таймера 0.5 мс фону тогда буде даваться 0.5мс*6/3 = 1мс из каждых 4 мс. При 1 мс - 2мс из каждых 8мс. При 2 мс - 4мс из каждых 16мс. Для борьбы с фризами оптимально выставить системный таймер 0.5мс.
SMI-прерывания зависят от BIOS/UEFI и оборудования. Отключаем все лишнее, отключаем энергосохранение, скорость вентиляторов фиксируем, это все, что мы можем сделать. В нашем плане энергосохранения выбрать оценка для поднятия частоты вместо 15 мс максимум 5000 мс. Есть программа Intel SMI Latency Checker Для гипервизора - отключаем поддержку виртуальных машин в биосе.
Про прерывания на уровне ядра и пользователя в windows.
В Windows применяется: - для x86 - 32 уровня IRQL от 0 до 31 (в скобках указано числовое значение): High (31) Power fail (30) IPI (29) Clock (28) Profile (27) Диапазон аппаратных прерываний, называемых Devices IRQL, или DIRQL (от 26 до 3) или ISR DPC/DISPATCH (2) APC (1) PASSIVE (0) Это означает, например, что планировщик (работающий на уровне DPC/DISPATCH) может быть прерван аппаратными прерываниями, межпроцессорными прерываниями (IPI) и т. д., но не может быть прерван асинхронными процедурами (APC) и обычными потоками, работающими на уровне PASSIVE. Межпроцессорные прерывания IPI могут быть прерваны сбоем электропитания (прерывание на уровне Power fail), но не могут быть прерваны обычными аппаратными прерываниями от устройств и т. д. - для х64 16 уровней IRQL (от 0 до 15) High/Profile (15) Interprocessor interrupt/Power (14) Clock (13) Synch (12) Device n (11) ......... Device 1 (3) Dispatch/DPC (2) APC (1) Passive/Low (0)
При этом: hardware interrupts 3-15 (3-31) software interrupts 1-2 (1-2) normal thread execution 0 (0)
Наш пользовательский процесс может иметь следующие приоритеты: Idle - 4 Below Normal - 6 Normal -8 Above Normal -10 High -13 Real-Time -24 Внутри процесса мы можем задать приоритет для его потоков: Idle дает итоговый приоритет процесса с потоком 1, кроме real-time, там он его просто снизит до фиксированной 16 Lowest -2 Below Normal -1 Normal 0 Above Normal +1 Highest +2 Time Critical +7
Итоговый приоритет потока - это сумма приоритетов процесса и потока. 31 - максимум Real-Time - от 16 до 31. При этом даже максимальный 31 приоритет не лает нам возможности подняться выше уровня Passive/Low(0), поэтому любое прерывание на нашем ядре прервет нашу программу.
Борьба с прерываниями. Бороться надо двумя путями. Первый путь - уменьшить само количество прерываний=их частоту. Частота прерываний за 1 секунду до 10000 считается еще неплохой. Второй путь - уменьшить длительность прерываний. Есть еще третий путь - освободить от прерываний нужные нам ядра.
Первое и самое главное. Установка максимально облегченной и очищенной системы. Если хватит windows 10, то лучше ставить ее. 23H2 лучше, чем 24Н2. Отключить динамический таймер. Поднять, а не снизить время для системного таймера до 15,625 мс! Если снизим до 0.5 мс, то увеличим количество прерываний. Но тут вступает в действие многозадачность винды. 1/4 времени отдается фоновым процессам. Минимум - это 6 тиков=2 кванта Полностью вырубить все фоновые процессы на винде мы не сможем. Для 120 кадров нам нужно иметь перерыв не больше 1/120=8.(3) мс. Поэтому подходит время для системного таймера только 0.5 мс /1 мс и условно 2 мс , так как 2 мс*2=4 мс. Внести в реестр для глобальной настройки системного таймера (работает только для win 11) [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\kernel] "GlobalTimerResolutionRequests"=dword:00000001"
Отключить VSYNC. Включить тройную буферизацию если процессор успевает рендерить, то компенсирует воемя двух кадров: 2*1000 мс / частоту кадров в Гц Краткий список исследований по психофизиологии: Watson (1986): Задержки <5 мс незаметны. Kelly (1979): Порог фликера <2 мс. Burr & Ross (1982): 10% кадра = 100мс/частоту кадров (при движении). Clayton (2018): 1–2% кадров= 1000мс*процент пропуска кадров (10–20 мс/с) незаметно. Carrasco (2011): <5–10 мс при внимании. Hoffman et al. (2017): <3 мс с размытием. Swafford et al. (2016): <4 мс, 2% (20 мс) при редких фризах (реже 1 раза в секунду). Digital Foundry (2025): 0.125 фриза/с=0.125*1000мс/частоту кадров Гц) заметно при частых повторениях.
Для 120 Гц: 1982-0.833мс 2025-1.042мс
Снизить частоту опроса мыши до 125Гц.
Главные правила для таймеров: Таймеры используются для времени (QPC) и для системных прерываний=тиков.
useplatformclock disables TSC and uses the platform source clock instead (HPET or PMT). PMT is used when HPET is disabled in BIOS. useplatformtick disables TSC tick and uses the platform source tick instead (RTC). Does disabledynamictick work when useplatformtick is used? No, it does not do anything since RTC is not a dynamic tick counter.
При этом возможны разные комбинации таймеров.
TSC + TSC without desync: bcdedit /deletevalue useplatformclock - bcdedit /deletevalue useplatformtick (make sure HPET is enabled in BIOS) TSC + RTC: bcdedit /deletevalue useplatformclock - bcdedit /set useplatformtick Yes HPET + RTC: bcdedit /set useplatformclock Yes - bcdedit /set useplatformtick Yes (make sure HPET is enabled in BIOS) PMT + RTC: bcdedit /set useplatformclock Yes - bcdedit /set useplatformtick Yes (make sure HPET is disabled in BIOS) Частота HPET 14.318180 MHz, в 4 раза выше частоты ACPI PM Timer. RTC устаревший тайминг с частотой от 2-х до 8192 Гц. Использует кварц 32.768 KHz HPET требует больше времени на вызов, чем TSC или PM Timer, но это важно только для системных прерываний. HPET и PM timer находятся в южном мосте. TSC в процессоре. Поэтому вполне допустима комбинация HPET (для времени QPC)+TSC (для тиков).
bcdedit /set useplatformtick no (отключаем RTC и включаем TSC для тиков) bcdedit /set useplatformclock no (отключаем HPET и включаем TSC для времени QPC) bcdedit /set disabledynamictick yes (отключаем динамическое изменение частоты системного таймера - влияет только на тики) bcdedit /set tscsyncpolicy Enhanced (включаем улучшенную синхронизацию TSC-таймера) HPET не следует отключать в биосе и в диспетчере устройств. Посмотреть текущую конфигурацию можно с помощью команды bcdedit /enum
Обсуждение проблем ОС и оборудования: задержка реакции системы (latency), микроcтаттер, инпутлаг, фризы.
Перед тем как задавать вопросы, просьба прочитать FAQ
Осуществлять мониторинг программойLatency Monitorнужно в течение 1 минуты, в состоянии простоя системы т.е. без дисковой, сетевой активности, и любой другой, с выключенным ав и приложениями в трее и автозагрузке, не раньше чем через 2 минуты после загрузки системы. Не двигаем мышку и не используем клавиатуру в момент измерений. Потом остановка и скриншот.
Member
Статус: Не в сети Регистрация: 10.04.2014 Фото: 0
SubL0ck, корпус и БП те же самые остались? Память с GDM off работает на 1T или 2T?
You-piter писал(а):
Поставил стабилизатор — реально стало лучше. Мышь более лёгкая и резкая стала, также по ощущениям всё-таки инпут лаг реально уменьшился. Это чувствуется даже в Windows. Пришлось снижать чувствительность немного.
Стабилизатор однозначно помогает, даже если и не решает проблему полностью (у меня мышка стала лучше, но инпут-лаг полностью не ушёл).
Member
Статус: Не в сети Регистрация: 29.07.2019 Откуда: 192.168.0.2
eightylvl писал(а):
Память с GDM off работает на 1T или 2T?
Как это влияет на фризы и инпут лаг, и как лучше? Подозреваю, что лучший вариант GDM Off + 1T. Но при таких настройках память не едет на высокой частоте.
eightylvl писал(а):
Стабилизатор однозначно помогает, даже если и не решает проблему полностью (у меня мышка стала лучше, но инпут-лаг полностью не ушёл).
Да, всё так и есть. Что насчёт других, софтверных настроек UEFI, или к примеру галки масштабирования Windows, версии Windows (1607 vs 2009)?
Member
Статус: Не в сети Регистрация: 14.06.2009 Откуда: Омск
SubL0ck писал(а):
В общем, сменил я ПК (мат. плату и ЦП) и теперь все работает идеально.
То сообщение было в прошлом году. Т.е у тебя там проблема появилась из ниоткуда и ты её больше года не мог решить? Теперь поменял железки и у тебя ок, какое-то время. Ну это классический случай этой "заразы"
Member
Статус: Не в сети Регистрация: 10.04.2014 Фото: 0
You-piter писал(а):
Как это влияет на фризы и инпут лаг, и как лучше? Подозреваю, что лучший вариант GDM Off + 1T.
Верно.
You-piter писал(а):
Но при таких настройках память не едет на высокой частоте.
Для GDM off + 1T в идеале нужна память с хорошим разгонным потенциалом и качественная мать, желательно заточенная под оптимальный разгон памяти, т.е. с хорошим сигналом.
В принципе, качество сигнала можно улучшить настройками CAD_BUS.
Цитата:
CAD_BUS — САПР командной и адресной шины. Для тех, кто может тренировать память на высоких частотах (>=3466 МГц), но не может стабилизировать ее из-за проблем с сигнализацией. Я предлагаю вам попробовать уменьшить токи привода, связанные с «Командой и адресом» (увеличив сопротивление).
CAD_BUS Timings — задержка трансивера. Значения являются битовой маской (грубой / точной задержки). Аналог RTL/IOL в исполнении AMD. Имеют огромное влияние на тренировку памяти.
Например, у меня без настройки CAD_BUS комп с GDM off + 1T либо вообще не запускается (чёрный экран), либо выдаёт BSOD в начале загрузки винды. С настроенным CAD_BUS система загружается и даже проходит 6-7 циклов TM5, но при дальнейшем тестировании стабильности всё равно вылезают единичные ошибки, пока так и не удалось полностью стабилизировать, так что приходится ставить GDM on + 1T (aka "1.5T").
Комбинация "GDM off + 1T" нехило нагружает КП, и требовательна к качеству сигнала, вольтажу... Так что вполне может вызывать фризы, даже если память проходит все тесты без ошибок.
Member
Статус: Не в сети Регистрация: 16.11.2004 Откуда: Санкт-Петербург
eightylvl корпус, бп, да и вообще все, кроме мат. платы и цп осталось без изменений. Память работает в режиме 1T, GDM ON. OLD Hunter Не из ниоткуда, а сразу же после сборки. Я как сменил 6700к на 9900к, начались проблемы. Нет у меня проблем с электричеством. На данный момент игра работает так же хорошо, если не лучше, чем на 6700к. На мой взгляд, лучше.
_________________ Аудиофил, оверклокер и лучший друг твоей мамы.
Member
Статус: Не в сети Регистрация: 10.04.2014 Фото: 0
You-piter писал(а):
Да, всё так и есть. Что насчёт других, софтверных настроек UEFI, или к примеру галки масштабирования Windows, версии Windows (1607 vs 2009)?
Настроек куча, как в BIOS/UEFI, так и в Windows. Если говорить конкретно о Ryzen, то: память и IF всегда должны работать в синхронном режиме (1:1); выключить: SMT, SVM, C6, IOMMU, PSS support, C-States: XHCI Hand-off; в меню Trusted Computing (если оно доступно): Security Device -- disabled; в настройках VRM: CPU/SoC Phase Control -- Extreme (задействовать все фазы питания), LLC -- на минимум, хоть так и больше проседает напряжение, но мышка в игре лучше, Switching Frequency -- можно попробовать на максимум (у меня 600). В настройках AMD CBS для Zen+ была ещё опция, с которой отклик улучшался, точное название не помню, что-то связанное с Test Mode.
SubL0ck писал(а):
корпус, бп, да и вообще все, кроме мат. платы и цп осталось без изменений.
Понял, спасибо.
SubL0ck писал(а):
Память работает в режиме 1T, GDM ON.
Хм, у вас в профиле "15-15-15-15-30", а на Ryzen для использования нечётных значений tCL должен быть выключен GDM (с включённым GDM КП сам выставит CL 16). Можете скинуть скриншот ZenTimings?
Member
Статус: Не в сети Регистрация: 14.06.2009 Откуда: Омск
SubL0ck писал(а):
OLD Hunter Не из ниоткуда, а сразу же после сборки. Я как сменил 6700к на 9900к, начались проблемы. Нет у меня проблем с электричеством.
А эта проблема, она всегда была стабильна весь год, или менялась по времени и было рандомно почти нормально или идеально? В какие-то часы/дни или может ночью? В любом случае держи в курсе, если что-то вдруг не так будет. з.ы. что за мп была на интеле еще уточни пж
Последний раз редактировалось OLD Hunter 04.12.2020 14:29, всего редактировалось 1 раз.
Member
Статус: Не в сети Регистрация: 10.04.2014 Фото: 0
SubL0ck писал(а):
Есть советы, что покрутить, чтобы завести на CL15?
Варианта два: 1. GDM off + 2T 2. GDM off + 1T
Я бы для начала удостоверился в стабильности 3800 с CL15, но если уверены, что память точно поедет с этими настройками, то можно сразу переходить ко второму варианту и крутить CAD_BUS, для начала 60-20-20-24, если будут ошибки, то дальше уже только перебором: 60-20-20-30, 60-20-24-24 и т.д.
У немцев есть немного инфы об этом, но, по большому счёту, всё сводится к перебору значений и выявлению закономерности, с какими именно значениями тест выдаёт либо меньшее количество ошибок, либо выдаёт ошибки на более поздней стадии тестирования, либо (в идеале) проходит всё без ошибок: https://www.hardwareluxx.de/community/t ... 16557/#3.0 (под спойлером "IMC Limitation").
Member
Статус: Не в сети Регистрация: 16.11.2004 Откуда: Санкт-Петербург
eightylvl писал(а):
Я бы для начала удостоверился в стабильности 3800 с CL15
Все стабильно. Память и КП способны и на 3800@14, но планки хотят 1.5v+. Не хочу так много оставлять на постоянку, хотя для B-Die - это нормально, на самом деле. Но все равно не охота как-то
eightylvl писал(а):
крутить CAD_BUS, для начала 60-20-20-24, если будут ошибки, то дальше уже только перебором: 60-20-20-30, 60-20-24-24 и т.д.
У немцев есть немного инфы об этом, но, по большому счёту, всё сводится к перебору значений и выявлению закономерности, с какими именно значениями тест выдаёт либо меньшее количество ошибок, либо выдаёт ошибки на более поздней стадии тестирования, либо (в идеале) проходит всё без ошибок: https://www.hardwareluxx.de/community/t ... 16557/#3.0 (под спойлером "IMC Limitation").
Спасибо!
OLD Hunter писал(а):
А эта проблема, она всегда была стабильна весь год, или менялась по времени и было рандомно почти нормально или идеально? В какие-то часы/дни или может ночью?
Проблема проявляла себя все это время, а писать в тему я перестал, потому как не видел смысла отчитываться об успехе после какой-то настройки, раз через время все приходило в первоначальное состояние. Когда-то работало приемлемо, когда-то совсем ужасно. Идеально НИКОГДА! Единственное, что помогло в какой-то степени минимизировать этот эффект - это полная, ручная настройка BIOS: 1) VRM Phase Control - Extreme. 2) Пульсации VRM (CPU/DRAM) на 500Кгц вручную. 3) VCore - Fixed. 4) C-States - Off. 5) Core Ratio - Fixed, AVX Offset - Off. 6) Speedshift/SpeedStep - Off. 7) Полностью ручная установка всех таймингов + настроенный вручную RTL + Fast Boot - Off. 8) Максимальная производительность в ОС + Максимальная производительность видеокарты. Таким образом я смог довести задержку в ОС до минимума, но кисель как был, так и остался. Я и играть-то перестал, толком, так как постоянно проигрывал типам, которых должен, ОБЯЗАН разносить с закрытыми глазами. А они танцевали вокруг меня как клоуны, в то время как я просто не мог по ним ничего попасть. И тут ко мне обратились, собери ПК и настрой (часто занимаюсь этим удаленно, а тут выпала возможность сделать все физически самому). ПК простенький: Ryzen 3600 ASUS TUF B450 PRO GAMING 16Gb B-DIE Собрал, все в стоке, дай-ка думаю, проверю как на этом ПК будет работать игра, с моими мониторами, мышкой, интернетом и прочим... Запускаю... Мама дорогая, ИДЕАЛЬНО! Хотя, у человека весь ПК стоит как одна моя видеокарта. Ну... Я сгорел и выставил intel на продажу. Нужно было придумывать на что менять. На 10900K? А вдруг, если залипуха на уровне микроархитектуры? Я сменю, а проблемы останутся? Думал-думал и пока думал, подоспели новые Ryzen'ы. Купил, идеально. Причем, разница не такая, что ты сидишь и думаешь "Ну да, вроде как получше", а просто фантастическая!!! Будто с 60Гц на 240Гц пересел!!! Единственное но! Когда вытаскивал мат. плату из системы на продажу (ASUS MAXIMUS XI APEX), обнаружил на ней два скола. Если конкретнее, сколы были на дорожках, ведущих от память к ЦП. Сколы эти сделал 1000% не я. Видимо, не заметил их при получении. Не силен в микроэлектронике, поэтому не берусь утверждать, что дело было в них, но как вариант. Вот такая история!
_________________ Аудиофил, оверклокер и лучший друг твоей мамы.
Member
Статус: Не в сети Регистрация: 29.07.2019 Откуда: 192.168.0.2
eightylvl писал(а):
Например, у меня без настройки CAD_BUS комп с GDM off + 1T либо вообще не запускается (чёрный экран), либо выдаёт BSOD в начале загрузки винды. С настроенным CAD_BUS система загружается и даже проходит 6-7 циклов TM5
Попробую потом. Я когда только сел настраивать, у меня так разболелась голова, что я забил. И вообще есть ли смысл этим заниматься, я не знаю. Но попробовать стоит, поскольку надоело каждый раз одно и тоже. При высадке в начале игры очень фризит и лут не поднимается, особенно, когда вместе со мной высаживается много людей (PUBG).
eightylvl писал(а):
Настроек куча, как в BIOS/UEFI, так и в Windows. Если говорить конкретно о Ryzen, то: память и IF всегда должны работать в синхронном режиме (1:1); выключить: SMT, SVM, C6, IOMMU, PSS support, C-States: XHCI Hand-off; в меню Trusted Computing (если оно доступно):
Спасибо. У меня большинство пунктов и так выключены. Но SMT выключать пробовал, как будто фризов добавляется.. Если не все пункты доступны, стоит ли пытаться разблокировать их в BIOS и прошить? Например про Phase Control я ничего подобного не видел, материнская плата B450M-DS3H. И что за отклик при Test Mode? У меня как раз Zen+. И ещё. При отключении C-States вроде как отключится понижение напряжения на процессор в простое. Если так, то я этого делать не могу в целях энергосбережения. Я был бы рад отключить всё это, но чтобы компьютер не молотил постоянно на 100%.
Member
Статус: Не в сети Регистрация: 10.04.2014 Фото: 0
You-piter писал(а):
Но SMT выключать пробовал, как будто фризов добавляется..
У меня нет такого, но я только в CS:GO играю, он вообще 3 потока всего использует.
You-piter писал(а):
Если не все пункты доступны, стоит ли пытаться разблокировать их в BIOS и прошить?
Надо в редакторе посмотреть потенциально полезные пункты, если они есть, то вай нот. Главное не накосячить при редактировании и не превратить плату в кирпич.
You-piter писал(а):
Например про Phase Control я ничего подобного не видел
Их может и не быть, это уже от платы зависит.
You-piter писал(а):
И что за отклик при Test Mode?
На Zen+ в AMD_CBS меню есть пункт, включение которого по ощущениям давало лучший отклик, я не помню название, т.к. сейчас у меня 3600x, на Zen 2 этой опции нет. По-моему, что-то связанное с test mode.
You-piter писал(а):
При отключении C-States вроде как отключится понижение напряжения на процессор в простое. Если так, то я этого делать не могу в целях энергосбережения. Я был бы рад отключить всё это, но чтобы компьютер не молотил постоянно на 100%.
Люди! Кто может подсказать,всё как в древнем мире, до этого был комп посильнее 3 года назад,ничего такого не наблюдалась,суть заключатеся в том что случаются фризы в игре ,но БЕЗ падения фпс, на какие то милисекунды , пару раз в минут 10 . Собрал очень бюджетный комп Теперь о конфиге и Аиде : 1.1660 ti 2.Материнка b365m H gigabyte 3.Дешевый! Бп couygar stx 700 4.Не знаю можно ли в этой реальности грешить на ссд, но имя ссд вот Kingston 240 GB (SA400S37/240G) 5.i3 9100f 6.И вот на что грешу так как оперативка встала не по своим таймингам и частотам из-за того что чипсет не Z и из-за того что у моего процессора макс частота 2400 и оперативка выбрала частоту 2400 и левые тайминги какие то завышенные - название Оперативная память A-Data XPG Gammix D10 [AX4U266638G16-DBG] 16 ГБ
В общем относил к другу процессор , видеокарту и на z чипсете фризов не было
Я тупой надо было всё захватить , но тут уже остается тогда материнка ,ссд ,бп ,оперативка
Скрин Аида ,кто может чем помочь,я не разбираюсь вообще ноль полный,я даже не знаю в ту тему ли я пишу ,тут с видеокартами как вроде , но если знаете и разбираетесь ,я не знаю что такое вольтаж и так далее
Добавлено спустя 1 минуту 45 секунд: Скриншот аиды,что еще если надо проверить скажите ,всё сделаю,у меня такого было в периоды детства ,когда там компы были 9800 gt ,какие то плашки рандомные,диск hhd ногами пинался ,когда лагало че то ногой по компу двинешь и не работает хДД
Добавлено спустя 11 минут 51 секунду: еще проверку посоветовали
Member
Статус: Не в сети Регистрация: 14.06.2009 Откуда: Омск
Rm76 Если ты чего не знаешь, не видел или не сталкивался, то это не значит что такого нет, или другие у кого проблема какие-то не такие или психи. Ну теперь вот будешь знать что с ПК бывают и такие проблемы.
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения