Экстремальный разгон процессора

         

Разбор полетов и крушений


Последствия чрезмерного разгона всем хорошо известны— это критические ошибки приложений и "голубые экраны смерти". С первого взгляда ничего удивительно тут нет. Какой-то из модулей процессора не выдержал издевательств и поехал крышей, возвратив некорректный результат. Какое-то время мыщъх не уделял этому вопросу особого внимания, но потом заинтересовался и решил исследовать: какой же из блоков сбоит чаще всего?

Исследования на "голом" железе без операционной системы, показали, что АЛУ (арифимитическо-логическое устройство) сохраняет работоспособность и всегда возвращает правильный результат даже на запредельных тактовых частотах, при которых стабильно завешивается MS-DOS, ну а Windows даже и не пытается загружаться! Почему?!

Снижаем тактовую частоту до такого уровня, при котором Windows успевает выдать сообщение о критической ошибке, сохранив дамп памяти (если исключение произошло в ядре) или сгенерировав отчет Доктора Ватсона (если исключение произошло на прикладном уровне). Анализ полученных данных долгое временя не давал никакой осмысленной информации. Ошибки происходили по разным адресам, охватывая практически весь набор инструкций: от целочисленных до MMX/SSE, и, казалось, что эксперименты (загубившие немало процессоров) пора прекращать, поскольку, никакого полезного выхлопа они все равно не принесут.

К тому же, некоторые дампы с точки зрения здравого смысла выглядели абсолютно бессмысленными и даже мистическими. Как-то раз Доктор Ватсон заявил, что машинная команда XOR ECX, ECX возбудила исключение типа Access Violation по адресу C23BD2BAh, тогда как сам ECX равнялся 87h. Но ведь этого не может быть!!! Это же полная и абсолютная ерунда!!! Инструкция XOR ECX, ECX _вообще_ не обращается к памяти!!! Но… протокол Доктора Ватсона есть протокол (читай — документ) и одним движением хвоста в корзину его не выбросишь…

Озарение, как обычно, пришло после хорошей травы, тьфу, то есть во сне, точнее не совсем во сне, а на границе сумеречной зоны, отделяющий один мир от другого, когда после 30 часов непрерывного траханья с Доктором Ватсоном, ты спишь наяву, уткнувшись в очередной фрагмент кода, вызвавший сбой:

00000000: 33C9             XOR    ECX, ECX      ; (начальное значение ECX == 87h)

00000002: 33D2             XOR    EDX, EDX

00000004: 3BC2             CMP    EAX, EDX



Содержание раздела