по п.2 это ты преувеличиваешь. Разве, что питающие напруги проверяет и то вопрос чипсетозависимый.
по п.1
Эт ты куда то не туда и слишком далеко и сразу.
Там все просто на самом деле было и без всяких новомодных ухищрений и технологий HPET, LAPIC...
Оно там и не надо в принципе исходя из цели.
Прога была под дос, простая как бревно.
Маской задавлены все прерывания кроме irq0.
Собственно "весь временной ресурс CPU" или как раньше говаривали машинное время проца должно приходиться на паузы между irq0 обработкой.
Т.к. irq0 оно самое, самое приоритерное и на нем стоит типа в ОСях переключатель задач + замеры, кванты и т.д. - ему мешать никто не должен.
Но это не так по факту, получается!
Если нужно по полочкам то план типа такой был:
1. разобраться, как влияет SMI на работу IRQ0 в плане равноценности квантов irq0.
Создать среду измерений, маскимально чистую и без существенной погрешности.
Обработчик максимально короткий по тактам, чтобы "чувствительность" к дрожанию интервалов тактов была высокой.
2. какие кванты выбирать, что более подвержено искажению
3. есть ли синхронность тактов или псевдотактов этих механизмов, возможно ли синхронизировать, дабы SMI попадал всегда вовнутрь IRQ0.
4. реально увидеть отложенность аппаратных прерываний по сути
5. научиться выключать SMI и произвести замеры без него в принципе
6. подмена SMI обработчика на свой и включение в работу
(интел для этого, особенно старый самая клёвая вешь.На wasmЕ про это терли очень хорошо ник:_BC_)
Где то так.
Картинку выше поправил, т.к. это у меня завалялась от чипсета 815 интел.
Там
не про точность суть, а то сколько тактов пожирает SMI варварским кодом по отношению к аппаратным событиям чипсета, при замерах кулеров, напруг, температуры.
И конкретно, как это оттягивает следующий программный квант таймера...
Как это выглядит и на каких чипсетах и т.д.....
Ведь наглядно видно, что есть нечто среднее в тиках, как большинство.
И их некоторый разброс можно принять (для сомоуспокоения, типа что не все так плохо) за погрешность умножителя, например, чет -нечет..., кварца таймера... и то с натяжкой,
а вот серьезные выпады вверх и вниз - это и есть раковая опухоль!
Причем это броуновское движение
, а не периодичность, млин!
Сплошной набег фаз на лицо + уродские wait при работе с шиной SMBus внутри SMI обработчика, когда он вытаскивает эти самые показания приборов температуры, оборотов.... или еще что нить рулит им. Чем больше этим
проц ТАМ озадачен, например рост температуры,
тем больше сожрал тактов на waitах, тем
позднее ФАКТИЧЕСКИ пройдет IRQ0 на проц!
Витиеватости папуаскода + вендоробезобразия в совокупности определяют то, что есть
машина более менее, есть так себе, а есть вообще никуда не годящиеся хромоножки-склеротики от рожденья!
А потом несведующий народ до одури спорит, что у него дескать прога так замерила, а у него так и кто прав и как потанцевать с бубном, чтобы было хоть ка то прилично в плане замеров... или работало стабильно некое управляющее чудо или скоростное стробоскопическое что нить типа программный оссцилл, это уже не важно.
Главное то, что ничего может не выйти из этого, как ни программируй.
А сколько хаос показаний-замеров крови может попить некоторым это ваще.
Вот еще красота полюбоваться и помедитировать для пытливых.
Даю ребусы загадки-отгадки на все вышесказанное, найти стописят отличий, типа.
Картиночки двух разных машин двух разных поколений, правда опять гигабайтовские интелы оба.
GA-I915 (лет 7 ей с роду) 3ГГц, пень 4.