Чет упустил момент про APIC. Н/з, как четкую частоту задать. Можно, как на osdev.org, т.е.:
1. Задаем начальное значение таймеру LAPIC'а, равное -1(минус один)
2. Задаем таймеру обычному(IRQ0) такое значение, чтобы прерывание было сгенерировано через 1/100 секунды
3. Запускаем таймер LAPIC'а
4. Запускаем обычный таймер
5. Как только IRQ0 было получено, берем текущее значение счетчика таймера LAPIC'а
6. Вычитаем текущее значение LAPIC Timer'а из начального, чтобы узнать, каким должно быть начальное значение для таймера, чтобы он срабатывал каждую 1/100 секунды.
ссыль на статью:
APIC timer