Жажда скорости Крис Касперски Хакер, номер #095, стр. 095-130-1 Экстремальный разгон процессора Непрерывный мониторинг внутреннего состояния процессора позволяет значительно повысить его разгонный потенциал, автоматически подстраиваясь под характер запросов конкретных приложений, основываясь на показании счетчиков производительности, которые легко считать крохотной ассемблерной программой. Процессор представляет собой сложное устройство, состоящее из множества разнокалиберных узлов, «гонимые» способности которых сильно различаются. При этом все они запитываются от общего генератора тактовой частоты, и потому менее «гонимые» блоки тормозят все остальные, особенно когда оказываются интенсивно задействованы каким-нибудь тяжеловесным приложением. Материнские платы и процессоры последних поколений поддерживают динамический разгон, основанный на показаниях термодатчика. Как только температура кристалла достигает первой критической отметки, материнская плата увеличивает обороты вентилятора, пытаясь снизить нагрев. Если же вентилятор не справляется и температура по-прежнему продолжает расти, при достижении второй критической отметки процессор начинает либо вставлять холостые циклы, либо снижает тактовую частоту всех своих компонентов, что приводит к неоправданному падению производительности. Большинство систем динамического разгона (как программных, так и аппаратных) основано именно на температурных показаниях и не полностью реализует потенциал процессора, поскольку кристалл обладает большой температурной инерционностью. Кроме того, абсолютное показание температуры еще ни о чем не говорит! Вот и приходится оставлять солидный запас «прочности» по частоте, чтобы обеспечить стабильную работу системы. А что еще можно ожидать от таких грубых методов?! Мыщъх провел широкомасштабное исследование, длившееся несколько лет и в конечном счете совершившее настоящий прорыв в область высоких скоростей и недостижимых ранее тактовых частот. Разбор полетов и крушений Последствия чрезмерного разгона всем хорошо известны — это критические ошибки приложений и «голубые экраны смерти». На первый взгляд, ничего удивительного тут нет. Какой-то из модулей процессора не выдерживает издевательств и едет крышей, возвращая некорректный результат. Какое-то время мыщъх не уделял этому вопросу особого внимания, но потом заинтересовался и решил исследовать, какой же из блоков сбоит чаще всего. Исследования на «голом» железе без операционной системы показали, что АЛУ (арифметическо-логическое устройство) сохраняет работоспособность и всегда возвращает правильный результат, даже на запредельных тактовых частотах, при которых стабильно завешивается MS-DOS, ну а Windows даже и не пытается загружаться! Почему?! Снижаем тактовую частоту до такого уровня, при котором Windows успевает выдать сообщение о критической ошибке, сохранив дамп памяти (если исключение произошло в ядре) или сгенерировав отчет Доктора Ватсона (если исключение произошло на прикладном уровне). Анализ полученных данных долгое время не давал никакой осмысленной информации. Ошибки происходили по разным адресам, охватывая практически весь набор инструкций: от целочисленных до MMX/SSE. Казалось, что эксперименты (загубившие немало процессоров) пора прекращать, поскольку никакого полезного выхлопа они все равно не принесут. |