Все прерывания делятся по следующим приоритетам: 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
Статус: Не в сети Регистрация: 07.12.2011 Откуда: Тула Фото: 24
После дотошной подгонки винды и биоса, до кучи, добавлю свои скрины:
W10_1703_все функции удалены из bcdedit, HPET BIOS OFF_служба на 500мкс OFF
#77
W10_1703_все функции удалены из bcdedit, HPET BIOS OFF_служба на 500мкс ON
#77
W10_1703_useplatformclock true_disabledynamictick yes_HPET BIOS OFF_служба на 500мкс ON
#77
W10_1703_useplatformclock true_disabledynamictick yes_HPET BIOS ON_служба на 500мкс ON
#77
W7_все функции удалены из bcdedit, HPET BIOS OFF_служба на 500мкс отсутствует, так как всегда DPC Latency на уровне 30-40мкс
#77
(Не думаю, что заоблачные значения в 15625,0мкс нужно брать во внимание, но это значение меняется на 500мкс, если включить службу на 500мкс, однако, в 7ке это никак не сказывается на самом графике DPC Latency, там всё те же 30-40мкс DPC Latency, так что я Fix на 7ке не юзаю)
Я так полагаю, вывод очевиден, HPET добавляет задержку в любом его проявлении, по крайней мере на моей системе, ну а играть комфортнее всего на 7ке. ИМХО.
Profy13 Hpet добавляет задержку в том случае, если ты используешь его в качестве основного таймера. По дефолту система не делает этого. К чему изобретать велосипед? На твоих же скринах видно, точно такую же задержку создает ACPI PM таймер... Hpet может быть включен в биос, использоваться ОС для определнных задач, ничего такого в этом нет, просто использовать TSC в качестве основного.
Кстати на 1709 Time for qpc call -выше в 3 раза- 18- 22, и это при работающем оборудовании, что то они на хмичили в ядре.
От 1709 я отказался, с фреймтаймом явные проблемы, например в Dishonored 2, мелкие статтеры были (ну может сама игра косячная, я думал), запустил на Win8.1 u3 - просто идеальная полосочка, ну может при сейве слегка подпрыгнет. Все таки мне кажется, проблема DPC latency на 90% лежит на мат.плате, и именно на паскалях она проявляется особенно заметно. Про старые мат.платы и чепсеты тоже мне кажется ерунда, и на X58 гонял (2 платы) и на P55 все отлично. Кто-нибудь пробовал менять мат.плату на другую, проблема оставалась?
_________________ Солдатушки-ребятушки, нашему царю показали фигу. Умрём все до последнего!
Member
Статус: Не в сети Регистрация: 16.05.2010 Откуда: Ленинград Фото: 545
N1ghtwish писал(а):
1709
Сыровата да, но жду апдейтов 12 числа, пока вернул 16299.98 на чистую. Не хочу потом обновляться. А весь софт который мне надо работает хорошо.
N1ghtwish писал(а):
проблема DPC latency на 90% лежит на мат.плате, и именно на паскалях она проявляется особенно заметно. Про старые мат.платы и чипсеты тоже мне кажется ерунда, и на X58 гонял (2 платы) и на P55 все отлично
На 58-55 проблем не встречал вобще, про 67-77 сколько угодно. Там не сколько dpc- просто плохая работа с pci-ex. Почему уже расписывал. Платы биос давно не обновляются-никто их не суппортит.
Dpc зависит от платформы, но не напрямую- там связка такая- "контроллер матплаты-биос мп и frimware оборудования- качество драйвера-ядро ос-настройки энергосбережения".
Так -же на dpc влияет физическое количество оборудования-насколько плата "жирная" по функционалу-чем проще тут тем лучше. Плохо написанный драйвер, горячё-любимая 10-ка и её ядро
Для шустрой рабочей станции или игрового пк, имеет практический смысл брать мп без лишних wifi модулей и других не нужных контролёров. Бренд любой.
Если нет убер разгона и он не планируется- бюджетной или средней платы за глаза. Единственный тут критерий выбора-сложно подобрать "простую" плату с достаточно мощным питальником на цпу,функциональным биосом и интел сетью- выбор тут крайне не велик.
Но как показывает практика-такие на мой взгляд платы самые стабильные и долгоживущие в эксплуатации. Больше всех проблем в эксплуатации, создают самые "копеечные" мп платы и самые топовые на мой взгляд. Первые от дешивизны во всём-там где и не надо, вторые от излишней фаршированности.
Member
Статус: Не в сети Регистрация: 28.02.2008 Откуда: Калининград Фото: 99
kiberman писал(а):
про 67-77 сколько угодно. Там не сколько dpc- просто плохая работа с pci-ex. Почему уже расписывал. Платы биос давно не обновляются-никто их не суппорти
На материнке ASUS P8P67 с далеко не последним биосом - у меня хорошо работала 1070, проблем с DPC не было. Плата простая, ещё и лишние неиспользуемые устройства у меня привычка отключать (звук, второй сата3 контроллер и т.п.). Плата может быть и не простая, просто надо лишние неиспользуемые контроллеры отключать, действительно если они не нужны, то и проблем будет меньше.
Member
Статус: Не в сети Регистрация: 15.07.2017 Фото: 2
Приветствую владельцев Pascal. Насколько велика вероятность столкнуться с проблемой, описанной в данной теме? Конфигурация моей системы в профиле. Решил вот попробовать обновить ВК, и встал перед выбором: Radeon (570-580 8ГБ) с CU или 1060 6 ГБ у нас. Из-за границы заказывать не очень хочется, а от Nvidia отпугивает эта самая проблема. Что скажете?
_________________ Ryzen 5 5600X - Asus Tuf B450-PRO - 32GB DDR4 - 6800XT Nitro+ - Windows 10
Member
Статус: Не в сети Регистрация: 28.11.2015 Фото: 38
Ну коль спрашиваешь личное мнение, то вот моё имхо. Варианта всего-навсего два: 1. Лотерея от невидеа. 2. 100% отсутствие таковой проблемы от амд. Выбор за тобой.
Member
Статус: Не в сети Регистрация: 16.05.2010 Откуда: Ленинград Фото: 545
OLD Hunter писал(а):
амд вообще должно отпугивать любого адекватного пользователя, не важно из-за границы или нет.
Фанатизм и вкусовщина сэр ,
В среднем сегменте как раз 580 вкусно выглядит, учитывая 8 гб набортной и новые драйвера.
Если бы я сейчас покупал карту-однозначно взял бы вегу на 56 вместо 1070 или Ti, но на тот момент когда брал карту просто у красных ничего не было-в этом сегменте производительности. И уверен бы не занимался сексом и не ждал бы пока индусы пофиксят 10-ку или драйверы. Всё и так вроде хорошо работает. Но есть нюансы которых не было раньше на кеплере.
И не надо про "аргумент" плохих драйверов у амд- они закончились с выходом 4850, сейчас красным грех жаловаться.
Второй год в декабре переписывают драйвер- AMD Radeon Adrenalin Edition. И разгон средствами драйвера и курва есть и оверлеи-всё в комплекте,ПОЛНЫЙ ФАРШ -да не без багов но-что-то у Нвидии не вижу ничего похожего. У зелёных стагнация как у лидера рынка-зачем стремится- их и так купят- все адекватные. Скоро качать будем пакеты по 600-700 мб а в распаковке 1.5гб . И ничего нового-раздувание кода впустую + баги.
Member
Статус: Не в сети Регистрация: 16.05.2010 Откуда: Ленинград Фото: 545
k2viper писал(а):
Плата может быть и не простая, просто надо лишние неиспользуемые контроллеры отключать, действительно если они не нужны, то и проблем будет меньше.
не говорил за все 67-77, но да-же в этой ветке и в 1070/1080, не единичные случаи. Всё описывали и находили решения.
Вопрос по мп и не много софистики - зачем покупать "фарш" плату и не использовать её возможности?. Разгон?, Питальник цпу? - более нет аргументов. Текстолит там не качественнее с припоем))) по сравнению со среднебюджеткой. Бывает просто хочется купить конкретный сабж, но это к рационализму и реальной практике- не имеет отношения.
Можно понять если хочется взять 1080ti. Самый топовый камень, ssd или хороший Бп- тут весомые аргументы- чистая производительность в играх и приложениях,скорость дисковых операций, и качество Бп-стабильность и долговечность всего железа. Плюс последние Бп-отлично работают в пассиве и не греются. Тут аргументы ясны.
А мат.плата? Мне лично эти контролёры мёртвым грузом не уперлись на плате да-же если их могу отключить. Зачем за них переплачивать?. Не нужен мне лишний их код в прошивке то-же. Богатый биос - больше багов.
Средняя МП до 150$ -меня устроит. Поиск действительно хорошей платы: быстрой, стабильной, с нормальным питальником на цпу, функциональным биосом без косяков, и минимально-необходимым функционалом за небольшие деньги - ЭТО поиск артефакта)) . Но как правило такие платы из разряда- "поставил-забыл".
Member
Статус: Не в сети Регистрация: 09.05.2017 Фото: 0
Прошел ассассина синдикат, поставил Assassin's Creed IV Black Flag. Думаю игра старее и выкрутил все настройки на макс. ИИии началось, загрузка цпу и гпу около 70проц, а фризы дикие и с 60фпс до 50 просадка. Полез в нет, пробовал крутить настройки драйвера, как один советчик советует-не помогло. Потом наткнулся на этот форум. Смотрю ругаетесь . В общем в самой игре настройки физикс сделал минимум\выкл и все прошло. В драйвере и игре все на качество выкрутил опять и норм. 60 фпс стабильно(моник 60гц, вертикалка вкл). гп на 70 проц загружен, цп на 45 процентов, просадок нет и все плавно. Может поможет кому. Возможно с физикс проблема у нвидии(оно вроде как отдельно от драйвера ставиться, но вместе при установке) и оптимизации в играх. А вы тут уже HPET крутите. Дрова 388.31 fx8300 4.5Ggz gtx 1066 мой конфиг. пс... а когда играл в ассасина синдикат, заметил что при изменении таймингов или частоты оперативки, появляются фризы. Как будто подгружает с диска, но оперативки достаточно, диск ссд. Самый плавный геймплей был, когда просто частоту проца увеличил. cpunb и озу были на стоковых. при всех настройках с которыми эксперементировал система была стабильн.
Последний раз редактировалось AndreyHiTech 20.12.2017 3:25, всего редактировалось 1 раз.
На дату того сообщения посмотри. Это же старая известная история про то, как впервые ещё на 3дмарках обнаружили, что от изменения таймеров и базовой частоты мамы, в винде восьмёрке результаты гуляют - просто мама не горюй. А некоторые неспортивные товарищи решили, что это "фича"...
Member
Статус: Не в сети Регистрация: 28.11.2015 Фото: 38
Да никто не говорит, что это свежачок. Просто-напросто ноги то возможно оттуда растут. ВОт к примеру, эта "фича" только для интеля, на амд такого не было. Собственно вроде и лаги невидеа на интеле..
Приветствую владельцев Pascal. Насколько велика вероятность столкнуться с проблемой, описанной в данной теме? Конфигурация моей системы в профиле. Решил вот попробовать обновить ВК, и встал перед выбором: Radeon (570-580 8ГБ) с CU или 1060 6 ГБ у нас. Из-за границы заказывать не очень хочется, а от Nvidia отпугивает эта самая проблема. Что скажете?
Вероятность очень не большая, ну по своему опыту: GA-X58A-UD3R 2.0, ASUS P6T6 WS revolution, ASUS P7P55D, MSI Z77A-G43, GA-Z170-HD3 DDR3, MSI B150 Mortar, ASrock E3V5 fatal1ty, ASUS P9X79, Supermicro X9SRi-F, Sabertooth X99 c GTX 1070 Palit JS не на одной из плат каких-либо намеков на сабжевую проблему не было. подчеркнутые гонял всего несколько часов.
korino писал(а):
2. 100% отсутствие таковой проблемы от амд.
У нвидии нарваться на проблему с high dpc все же не такая высокая. А вот проблемы АМД, та же высокая процессорозависимость во многих играх, касается абсолютно всех владельцев видеокарт от АМД, и особенно тех, у слабые (по IPC) CPU от той же АМД.
Добавлено спустя 9 минут 20 секунд:
kiberman писал(а):
И не надо про "аргумент" плохих драйверов у амд- они закончились с выходом 4850, сейчас красным грех жаловаться.
Процессорозависимость в DX11 играх, никуда не делась, мало того, она еще и усугубилась, т.к. игры стали более требовательны к IPC CPU. AMD делает ставку на DX12 и Vulkan, вот только оба этих API начинают напоминать DX10 и mantle.
_________________ Солдатушки-ребятушки, нашему царю показали фигу. Умрём все до последнего!
Member
Статус: Не в сети Регистрация: 16.05.2010 Откуда: Ленинград Фото: 545
N1ghtwish писал(а):
Процессорозависимость в DX11 играх, никуда не делась, мало того, она еще и усугубилась, т.к. игры стали более требовательны к IPC CPU. AMD делает ставку на DX12 и Vulkan, вот только оба этих API начинают напоминать DX10 и mantle.
Ни одного вменяемого теста на этот счёт или исследования лично я не видел,если такой знаете-" "ткните носом".
Это разница архитектур чипов-и разный взгляд на будущее индустрии, а не косяк драйверов.
У Нвидии традиционно dx11 ориентированное железо и вылизанные под dx11 драйверы-это не критерий выбора или преимущество-его нет никакого-если брать карту именно сейчас.
Потому-что с тем же успехом можно насчитать 5-7 игр под эгидой амд +вулкан проекты- где их решения так-же будут выглядеть лучше карт конкурента- и что тут такой-же вывод сделать?)) -Карты в dx12 у Нвидия-что более процесорозависимы?-нет конечно))).
Просто на данный момент железо у зеленых как было dx 11 так и осталось. А профита от dx12 -на данный момент мало потому-что 99% игр это dx11 + пару эмулированных функций в якобы "dx12" играх)). Никто сейчас не будет писать с нуля двигло под этот новый апи -во первых парк железа текущего и предыдущего поколения огромен-это огромная аудитория и жирный кусок продаж. А во вторых конкретно железа dx12 по сути нет ещё))-это поколения Ампере или Нави ,а возможно только следующее за ними как минимум.
Не знаю почему вы считаете Вулкан и dx12 мёртворождёнными-их время не пришло. Но обкатка например вулкана в 2-х коммерчески успешных проектах уже была-в Вольфе он прекрасно задачу выполнил,не привязан к ос,быстро и красиво на разообразном железе и свзяках цпу+гпу. Это демонстрация будущего-чего ожидать. И в данном случае амд более дальновидна на перспективу.
Рынок тормозится как ни странно не консолями-а наоборот. Обширным парком Пк устаревшего железа-его аудиторией. Когда dx12 внедрять рано- "вёдра" его не тянут-да и не могут -там софтовая эмуляция функций,а для актуальных топов и игр нет dx12 - да и это узкая ниша-кто для 5-10% будет делать игры-никто в здравом уме)).
Вулкан как вариант-но на нём не все хотят писать игры-он достаточно сложен. Да и сами Майкрософт не заинтерисованы в его распостранении. "Они" как "собака на сене" -будут тормозить процесс до "последней тормозной видеокарты" -в надежде не потерять ни грамма в статусе windows 10 игровая платформа. Ни себе ни людям.
Сейчас этот форум просматривают: leshka_07 и гости: 5
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения