Оптимизация для pentium процессора префиксы

Оптимизация для PENTIUM процессора

ОПТИМИЗАЦИЯ ДЛЯ PENTIUM ПРОЦЕССОРА
**********************************
Права на распространение Ангера Фога, (c) 1996
Перевод Дмитрия Померанцева, (c) 1997 FTS Labs.

0. примечание переводчика
1. введение
2. литература
3. отладка и проверка
4. модель памяти
5. выравнивание
6. кеш
7. блокировка генерации адреса (AGI)
8. спаривание инструкций
9. исполнение кода в цикле
10. неполное спаривание
11. замена сложных инструкций на более простые
12. переходы и ветви
13. префиксы
14. уменьшение длины кода
15. планирование операций с плавающей точкой
16. оптимизация цикла
17. обзор специальных инструкций

18. целые числа вместо чисел с плавающей точкой
19. числа с плавающей точкой вместо целых чисел
20. список целочисленных инструкций
21. список инструкций с плавающей точкой
22. скоростные испытания
23. соображения о других микропроцессорах

0. ПРИМЕЧАНИЕ ПЕРЕВОДЧИКА
=========================
Прежде всего я хочу сказать, что я не являюсь профессиональным переводчиком
и ранее не занимался переводами технической документации. Возможно, где то
в тексте будут встречаться литературные огрехи, но в любом случае —
документация на английском языке из любопытной вещи превратилась во вполне
понятное руководство, пригодное к повседневной работе.

И так, прежде всего несколько неточностей — что бы не загромождать текст
фразами типа: «инструкции, оперирующие с числами с плавающей точкой», я
просто называю их «инструкции с плавающей точкой», справедливо пологая, что
от технического руководства не будут требовать литературных изысков. Подобная
ситуация наблюдается и с целыми числами. Надеюсь, что теперь вы правильно меня
поймете и подобные выражения в тексте не будут вызывать праведный гнев.

В остальном же я старался при переводе сохранить первоначальный смысл текста,
передать его вам без искажений. Пользуйтесь на здоровье.

Оптимизация процессора Intel

13.08.2015, 13:40

Температура процессора Intel i3 4170
Здравствуйте, не подскажите температура 45C для процессора нормальная. Просто при запуске данная.

Разгон процессора intel celeon
Здравствуйте! Я хотел бы разогнать свой проц! Есть ли возможность это сделать не открывая корпус.

Заявленная температура процессора от Intel
Вопрос такой у меня возник спонтанно, в связи с жалобами многих владельцев процессоров Intel 7й.

Топовые Intel процессора подешевели?
Ух. Смотрите парни, что сейчас творится на computeruniverse :) i7-8700k — 25.5 рубля. i9-9900k.

Температуры Процессора Intel P4 3.00 ггц
У меня Intel P4 3.00 ггц,presscot,s 478.Без нагрузки температура 47-50 градусов,а под нагрузкой(в.

Оптимизация работы процессора: утилита CPU Control

В данной публикации пойдет речь еще об одном стороннем инструменте оптимизации работы многоядерных процессоров – бесплатной программе CPU Control. «Еще» – потому, что автор уже касался этой темы, смотрите заметку об ICEAffinity . Детище немецкого разработчика Маттиаса Коча (Matthias Koch), русифицированная утилита CPU Control будет особенно интересна начинающим компьютерным пользователям из-за наличия многопрофильного авторежима оптимизации, но обо всем – по порядку.

/ опубликовано в IT-издании » Компьютерные Вести » № 6 2013 в рубрике «Software» /

» Зачем это надо & что я буду с этого иметь? «

Данный вопрос был затронут в озвученной статье, поэтому дефрагментирую сказанное до пары абзацев:

  • Некоторые приложения не поддерживают многоядерный режим, поэтому для корректной работы необходимо вручную выделить им отдельное процессорное ядро. Другой «проблемный» вариант – материнская плата асинхронно инициализирует ядра. В обоих случаях требуется оперативное вмешательство пользователя.
  • По умолчанию, Windows присваивает всем запускаемым процессам равный приоритет в пользовании процессорных мощностей. Что не совсем правильно в случае запуска ресурсоемких приложений, например, когда вашему любимому Call of Duty «мешает» антивирус вкупе с дюжиной другого «второстепенного» ПО. CPU Control поможет пропорционально разнести процессы по ядрам, что напрямую скажется на общей производительности системы.

Important!

Утилита поддерживает двух- и четырехъядерные процессоры, но, по отзывам, корректно работает и на 6–8 ядрах.

Оптимизируем

1. Для начала необходимо скачать утилиту например отсюда, из моего Каталога лучшего софта . Никаких «хитростей» в установке нет, поэтому последовательно жмем «Next» («Далее«) до полной инсталляции. Кстати, программа не «сорит» в реестре, т.е. портативна и носима на съемных накопителях.

2. После запуска первым делом кликаем на » Options » («Опции«) и русифицируем CPU Control через «Languages» («Языки«) → «Russion«. Далее, в соответствии со следующим скриншотом, ставим галочки напротив » Автозапуск с Windows «, » Минимизировать » и » 4 ядра » (для четырех и более ядер). Понятно, что если ЦП двухъядерный, активировать «4 ядра» без надобности.

3. Закрыв «Опции», в главном окне приложения видим 5 режимов контроля работы ЦП: » Авто «, » Ручной «, » CPU1 » (все процессы выполняются на 1-ом ядре), » CPU2 » (все процессы выполняются на 2-ом ядре) и » Отключено » (без оптимизации). Последние три режима нам не интересны, поэтому сосредоточимся на первых двух.

Для начинающих пользователей автор рекомендует просто выбрать режим « Авто » и, закрыв окно, проверить для будущих загрузок Windows, чтобы CPU Control был в списке автозагружаемых приложений ( ! ). Это легко сделать, например, через Revo Uninstaller любой версии, смотрите в панели меню «Инструменты» → «Менеджер автозапуска» (при необходимости добавить приложение кликаем апплет «Добавить«).

4. Для любителей «покопаться» эта простенькая утилита дает шанс «развернуться»: в авторежиме имеется 9 базовых профилей-вариаций распределения процессов по ядрам (скриншот ниже). При наличии времени и открытом на вкладке «Быстродействие» Диспетчере задач («Ctrl + Alt + Del» ), для мониторинга результатов, можно выбрать оптимальный профиль под свою систему.

5. Самые «продвинутые» пользователи , желающие добиться максимальных результатов в деле повышения производительности системы данным способом, наверняка заинтересуются режимом « Ручной «. В этом режиме вы самостоятельно распределяете процессы по ядрам или группам ядер. Все просто: выделяете процесс(-ы) и через правую клавишу мыши «вешаете» на нужное ядро или комбинацию ядер. Например, при выборе «CPU1» процесс будет «висеть» на первом ядре, при выборе «CPU3+4» – на третьем и четвертом ядрах и т.д.

Вот хороший вариант ранжирования для 4-ядерного ПК: системные процессы оставьте 1-ому ядру, самые ресурсоемкие приложения (типа Photoshop) «распылите» между всеми ядрами (вариант как на последнем скриншоте), а «середнячков» типа антивирусного сканера отдайте в руки комбинации на 2 ядра, скажем, «CPU3+4«. Диспетчер задач Windows поможет сделать правильный выбор. Для удобства мониторинга, при открытой в Диспетчере вкладке «Быстродействие«, проверьте, чтобы была активирована функция » По графику на каждый ЦП » (см. «Вид» → «Загрузка ЦП» → искомое «По графику на каждый ЦП«).

В общем, экспериментируйте и ваши усилия обязательно окупятся сторицей!

Как увеличить производительность процессора за счет настроек электропитания (парковка ядер, как включить все ядра ЦП ✔)

Долго думал, стоит ли публиковать сегодняшнюю статью, т.к. вопрос довольно спорный (и результат после настройки у всех может быть разным, в зависимости от оборудования и ПО). И всё же, попрошу к статье отнестись критически и как к «экспериментальной».

И так, ближе к теме. Windows не всегда «идеально» работает с многоядерными процессорами. В целях снижения энергопотребления, ряд процессов может выполняться на том ядре, на котором они были запущены изначально (такой подход позволяет: с одной стороны (позитивной) — не использовать постоянно все ядра (и за счет этого снизить энергопотребление) , а с другой (негативной) — не позволяет процессору работать на полную «катушку»).

К тому же функция парковки ядер позволяет процессору (при определенной нагрузке) переносить все задачи на одно ядро, а остальные переводить в режим ожидания (т.е. работать будет фактически только одно ядро). Естественно, это снижает общую производительность (правда, делает систему более отзывчивой, но незначительно). Отмечу, что Windows к тому же не совсем корректно работает с парковой ядер на процессорах Intel (по крайней мере Windows 7).

Так вот, задав определенные настройки электропитания, можно ограничить работу функции парковки ядер и повысить общую производительность (в некоторых случаях до 20%!). На мой взгляд есть смысл попробовать потратить 3-5 мин. на «эксперимент»!

Примечание : в первую очередь эта тема касается многоядерных процессоров от Intel (на AMD, честно говоря, адекватной статистики не имею. Но попробовать можно. ).

Как настроить тонко электропитание процессора

Чтобы не быть голословным о повышении производительности, приведу один небольшой тест быстродействия в WinRAR (офиц. сайт архиватора). На скриншоте ниже: в левой части приведена общая скорость до оптимизации настроек; справа — после. Даже невооруженным глазом видно, что в тестах ЦП начинает работать быстрее (что положительно сказывается и в реальных задачах, тех же играх, например) .

Разница в производительности

Примечание : рекомендую вам запустить тест в WinRAR сначала до оптимизации настроек (и запомнить общую скорость), и затем провести тест после оптимизации. Далее просто сравнить эти числа, в ряде случаев удается выжать из ЦП еще 10-20%!

Важный момент!

Как уже сказал выше, в первую очередь этот вопрос касается многоядерных процессоров (4 ядра и выше). Чтобы узнать количество ядер своего ЦП — просто запустите утилиту CPU-Z, и посмотрите в нижнюю часть окна: в графе Cores увидите кол-во ядер (пример ниже).

CPU-Z — 4 Cores (4 ядра, 8 потоков)

1) И так, начать нужно с настройки реестра.

Тут дело в том, что Windows по умолчанию скрывает часть настроек электропитания. Чтобы их открыть для редактирования, необходимо внести определенные изменения в реестр. Проще всего это сделать с помощью уже готового файла настроек, который нужно просто запустить и согласиться с добавлением параметров в системный реестр. Вот подготовленный файл: core_parking (нужно извлечь его из архива и запустить. Архив запакован с помощью WinRAR, актуален для Windows 7-10) .

Редактор реестра — настройки успешно внесены в реестр

На всякий случай приведу текст этого файла чуть ниже (в целях безопасности, вдруг кто-то усомниться в файле, и пожелает вносить изменения в реестр вручную).

2) Настройка схемы электропитания

Теперь необходимо открыть панель управления Windows раздел «Оборудование и звук/Электропитание» . После перейти в настройки текущей схемы электропитания (т.е. ту, которая сейчас у вас используется). В моем случае это сбалансированная (см. скриншот ниже).

Настройка текущей схемы электропитания

Далее нужно открыть дополнительные настройки питания.

Изменить дополнительные параметры питания

Теперь самое главное (см. скриншот ниже):

  1. минимальное число ядер в состоянии простоя: рекомендуется выставить значение в 99% (почему-то если выставить 100% — Windows часто отправляет одно ядро «отдыхать»);
  2. разрешить состояние снижения питания: переведите в режим выкл. (не дает процессору экономить энергию);
  3. отключение простоя процессора: переведите режим в откл.;
  4. минимальное состояние процессора: 100% (незначительно ускоряет работу ЦП (кстати, в некоторых случаях позволяет уменьшить писк от дросселей )) .
  5. политика охлаждения системы: активная (более эффективно охлаждает ЦП);
  6. максимальное состояние процессора: 100% (очень сильно влияет на производительность! Обязательно выставите на 100%);
  7. максимальное число ядер в состоянии простоя: 100% (противоречивая опция. Если выставить что-то отличное от 100% — то грузятся почему-то не все ядра, несмотря на то что активны все. ).

Дополнительные параметры электропитания

Сохраните настройки и перезагрузите компьютер!

3) Еще раз о режиме питания (касается в первую очередь ноутбуков)

После перезагрузки компьютера (ноутбука) — обратите внимание на режим питания (кликните по батарейке в трее). Выставите производительность на 100%!

Кроме этого, обратите внимание на центры управления ноутбуком, которые могут идти в комплекте к вашим драйверам (например, такие есть у устройств от Lenovo, Sony и пр.). В них также устройство нужно перевести в режим высокой производительности.

Питание ноутбука // менеджер ноутбука

4) Тестирование быстродействия

После чего можно запустить WinRAR и провести тест быстродействия. Как правило, после точечной настройки электропитания наблюдается рост цифр (т.к. система перестает ограничивать ЦП, и он может начать работать на весь свой потенциал).

Илон Маск рекомендует:  Замена стандартного input type=file

Тестирование — WinRAR / Кликабельно

Дополнение!

Чтобы посмотреть, как идет нагрузка на ядра ЦП — откройте «Диспетчер задач» (Ctrl+Shift+Esc) и перейдите во вкладку «Производительность» . Далее щелкните правой кнопкой мышки по графику загрузки ЦП и в меню выберите «Изменить график/Логические процессы» . См. скрин ниже.

Диспетчер задач — производительность

В результате у вас будет не один график, а несколько, в зависимости от количества ядер (потоков).

Все ядра загружены

Обратите внимание, при нагрузке (например, тестировании) — в идеале все ядра должны быть загружены (как на скриншоте ниже).

Для более показательного теста работы ЦП рекомендую воспользоваться утилитой AIDA64 (ссылку на инструкцию привожу ниже).

Как выполнить стресс-тест процессора и системы в целом, держит ли он частоты, нет ли перегрева (AIDA 64) — https://ocomp.info/kak-vyipolnit-stress-test-videokartyi-noutbuka-v-aida-64.html

PS

В рамках этой статьи не могу не порекомендовать еще одну статью на похожую тему. Она касается в первую очередь ноутбуков (т.к. в ряде случаев у них в настройках по умолчанию отключен Turbo Boost, в следствии чего устройство работает медленнее, чем потенциально могло бы. ).

Оптимизация под Pentium 4 HT своими руками?

Jimbo Jones
Pentium 4 HT very high

Настройки графики не как не влияют в данном случае, если можно было снизить разрушаемость объектов как-нибудь?

на торрентах с пятницы уже, ты видимо проспал )))

2 Gameslove: где ты откопал материнку с pci-e 16x для видюхи и с сокетом под 4 пень? оО я в живую ни разу таких не видел.
и вообще, с таким процем, твоя видюха показывает свои способности не больше, чем на 50-60%.

оптимизация заключается в модифицировании geomod 2.0 «под тебя», так сказать. ничего у тебя не выйдет без распаковщика файлов и знаний с++, с, ассемблера.

2 Gameslove: где ты откопал материнку с pci-e 16x для видюхи и с сокетом под 4 пень? оО я в живую ни разу таких не видел.
и вообще, с таким процем, твоя видюха показывает свои способности не больше, чем на 50-60%.

Из новых игр всё идёт нормально на максимальных настройках, 1280×1024, пока эта игра и GTA 4 клинарит. Лучше бы физику они загрузили бы на GPU.

2 Jimbo Jones: ууу, ясно все.
я говорил про «в живую».

2 Gameslove: да ладно? 10 фпс это нормально? крайсис идет на макс? не врите пожалуйста, уж если не как модеру, то хотя бы как человеку разбирающемся в железе, программировании и всех производных, ок? ни за что не поверю, что все последнее идет нормально на максимуме при таком. грм, проце. пальцы не хотят такое писать.

Разбираемся в процессорах от Intel.

Intel производит огромное количество процессоров, поэтому, чтобы никто не потерялся в их разнообразии, представляю всем вот такую шпаргалку:

Семейства (серии) процессора:

i7 — топовые процессоры, поддерживают все технологии Intel, имеют четыре ядра, четыре виртуальных ядер и оснащаются большей кэш-памятью L3, чем у других серий. Некоторые топовые процессоры этой серии имеют шесть, а то и восемь ядер.

i5 — средний ценовой сегмент; процессоры могут быть двухъядерными и четырехъядерными, как правило, лишены поддержки Hyper-Threading, Virtualization Technology и Trusted Execution

i3 — младшая серия, выпускается только в двухъядерном варианте, более старшие поколения и минимальным L3-кэшем относительно других серий процессоров. Более старшие поколения имеют 2 виртуальных ядра.

Pentium — на мой взгляд минимальное решение при выборе процессора для игр. Имеют только 2 ядра и очень маленькое количество кэша L3.

Поколение серии процессоров, каждое поколение имеет также текстовое кодовое название.

У вас Windows 7? У Вас фризит в играх? Такое решение как UnparkCPU, Вам особо не поможет. Настройки нужно делать вручную, индивидуально, под вашу систему!

Мой профиль компьютера.

Некоторые уже наверное слышали, что одним из источников фризов в Battlefield 4 (и не только в этой игре) является технология от Интел «Парковка ядер». Из за того что в Windows 7 эта технология работает, скажем так — не лучшим образом. Она снижает производительность процессора.

Есть на просторах интернета, такая программа как UnparkCPU, и решить проблему падения производительности многие пытаются именно с помощью её. И в результате её использования многие, возможно видели положительный результат, в производительности вашего ПК. Но знаете ли Вы, что UnparkCPU не совсем корректно реализует отключение технологии «Парковка ядер»?

Хотите, что бы производительность вашего компьютера, процессора, стала ещё выше?

Как проверить быстро, простым способом производительность Вашего ЦП в любом из двух режимов его работы? Первый режим работы ЦП этот будет режим «по умолчанию», то есть режим, в котором Вы вообще ничего не меняли в разделе «Управление питания процессора». А второй режим работы — это когда Вы применяли программу UnparkCPU.
Делаем так. Качаем программу WinRAR отсюда. И проверяем Тестом на производительность, Ваш ЦП. Какая цифра получилась? :)

Далее, собственно повышаем производительность ЦП.

Качаем файлик сохранённых настроек реестра «*.reg» отсюда. Распаковываем, и запускаем его. Соглашаемся с изменением настроек реестра. Теперь у вас в настройках электропитания процессора появились дополнительные опции.
Теперь запускаем и идём в: Панель управления>Электропитание>(галочка)Высокая производительность>Настройка плана электропитания>Изменить дополнительные параметры питания>(выпадающее меню)Управление питанием процессора. Зашли?

Теперь делаем такие настройки:

  1. Минимальное число ядер в состоянии простоя: 99%.
  2. Разрешить состояния снижения питания: Вкл.
  3. Отключение простоя процессора: Включить состояние простоя.
  4. Минимальное состояние процессора: 0%.
  5. Политика охлаждение системы: Активный.
  6. Переопределение ядра приостановки ядра производительности процессора: Включено.
  7. Максимальное состояние процессора: 100%.
  8. Максимальное число ядер в состоянии простоя: 100%.

Теперь объясняю по каждому пункту, почему именно так.

  1. Если сделать 100%, или сделать ниже 94% опцию, то одно из ядер у Вас будет приостановлено системой. Чем меньше % поставите тем больше ядер будут в простое. Зависит от количества ядер в вашей системе. У меня 8 виртуальных.
  2. Что бы процессор был холоднее. На производительность не влияет.
  3. Что бы процессор был холоднее. Негативно влияет на производительность процессора, если выключить.
  4. У меня ни на что не влияет. Но у некоторых пользователей отключает энергосберегающие технологии (понижение частоты ЦП и снижение напряжения). По этому в ноль значение.
  5. Что бы процессор был холоднее. Что интересно, латентность в работе с оперативной памятью системы повышается, если эту опцию деактивировать. Проверял в AIDA64.
  6. Немного снижает производительность ЦП.
  7. Хотите что бы ядра работали на все 100%? Тогда и ставьте 100% в этой опции. Это ограничение максимальной нагрузки процессора.
  8. Очень интересная опция. Если сделать например 0%, то не все ядра будут грузиться системой. А например только лишь 4 из 8, тем же WinRAR 5.00 или в Battlefield 4. И это при том, что активны будут все(!) ядра, не одно не будет приостановлено.

Теперь о программе UnparkCPU. Если в этой программе вырубить в системе «Парковку ядер» нажав на кнопку «Unpark all», то она делает в «Управлении питанием процессора» одну бяку, а именно полностью блокирует управление опцией «Минимальное число ядер в состоянии простоя». Это первое. А второе. Программа UnparkCPU, хуже повышает производительность процессора, чем то, что предлагаю я. А я предлагаю именно ручную настройку политики питания Вашего процессора и лучший результат. Даже если Вы будете пытаться изменить остальные другие опции в управлении питанием процессора, после применения UnparkCPU, то в любом случае производительность будет хуже. Я это проверил с закономерным результатом. Ведь опция «Минимальное число ядер в состоянии простоя» очень нужна — она чуть ли не самая основная. «Парковка» без неё будет работать дальше. Либо «Состояние простоя», будет нужно выключать. А это температуры при моём то охлаждении на ЦП, в простое(!) 54-56 градусов, при комнатной 21. Нафиг надо. :) Да и производительность опять же ниже, чем производительность после ручной настройки питания процессора.
Поверьте. Я эту парковку ядер исползал вдоль и поперёк, с самого первого дня установки Windows 7×64. А я эту ОС себе установил ещё с версии «релиз кандидата». Всё опции я там исследовал не по одному десятку, а то и сотне раз. Аж вспотел весь. Ну сами себе представьте. В некоторых пунктах настроек, сотня значений. и каждую сотню нужно протестировать! :)

Ну а теперь, запускайте тест в WinRAR. Ну как? Циферки поднялись?

У меня было раньше 4700-5700 примерно. Максимум примерно до 6000 прыгал результат.

Теперь смотрите скрины из игры Battlefield 4 (все опции ультра, сглаживание убрано):

Самый минимальный ФПС который я видел, это 45. И то, это было кратковременное снижение производительности, на карте 64/64 игроков, в тесном помещении при взрывах и грохотах. Средний ФПС 50-55. И это на видеокарте 580GTX, и процессором i7860. Не самая топовая «конфа» в наше время. Да?

Все ядра в диспетчере задач во время игры (или любое другое многопточное задание), практически загружаются равномерно, не одно ядро в простое не наблюдал, парковка вырублена напрочь! Выключена только парковка ядер, другие энергосберегающие технологии остались на месте! Температуры по ядрам во время игры максимум 65-67 градусов. UnparkCPU это плохо. Так что. Советую сделать все опции, как я описал выше, что бы получить результат максимальный — как у меня.

Не забывайте. Все результаты были исследованы на моей конфигурации компьютера. У меня процессор Интел — i7860 с включённым HT и в разгоне до 3800 герц. У меня не АМД. У тех, у кого АМД я Вам точно не гарантирую, что повысится производительность. У может Вас, может будет другой результат? Хотя не должно быть по другому, если на и на АМД реализована технологи парковки ядер. Старался учесть любое количество ядер в ЦП, этими настройками. Там не просто так стоят те циферки, которые я указал. Они не «от балды» все. :)

Спасибо за внимание. С наилучшими пожеланиями к Вам — помочь. Приятной игры! ;)

ЗЫ: За темой слежу. Я не оставлю её.

Мне в личку поступают сообщения. В ЛС потому что нет регистрации у пользователей, тут.
Люди отчитываются о результатах. Результаты разные. И меня радует, что у многих исчезают фризы в БФ4. Так же повышается производительность в Винрар. Есть результаты ошеломляющие, положительные. А у кого то результат незначительный, или его совсем нет. Но тут роль играет сам тип модели ЦП.
Спасибо Вам за то что Вы сообщаете мне о результатах, так как для меня это Важно — собрать статистику и сделать выводы. :)

Благодаря важной информации от Ligas и KROOM (спасибо Вам!) 4-ый пункт в настройках питания «Минимальное состояние процессора» выставлен в 0%. Так как на некоторые типы процессоров этот параметр влияет, и не даёт работать функции энергосбережения по частоте и вольтажу процессора, повышая частоту процессора и напряжение на нём до максимума, который выставлен в настройках БИОС. Тем более как я ранее выяснил у себя, этот параметр не влияет на производительность процессора. :)

«Оптимизация для PENTIUM процессора» — читать интересную книгу автора

ОПТИМИЗАЦИЯ ДЛЯ PENTIUM ПРОЦЕССОРА
**********************************
Права на распространение Ангера Фога, (c) 1996
Перевод Дмитрия Померанцева, (c) 1997 FTS Labs.

0. примечание переводчика
1. введение
2. литература
3. отладка и проверка
4. модель памяти
5. выравнивание
6. кеш
7. блокировка генерации адреса (AGI)
8. спаривание инструкций
9. исполнение кода в цикле
10. неполное спаривание
11. замена сложных инструкций на более простые
12. переходы и ветви
13. префиксы
14. уменьшение длины кода
15. планирование операций с плавающей точкой
16. оптимизация цикла
17. обзор специальных инструкций

18. целые числа вместо чисел с плавающей точкой
19. числа с плавающей точкой вместо целых чисел
20. список целочисленных инструкций
21. список инструкций с плавающей точкой
22. скоростные испытания
23. соображения о других микропроцессорах

0. ПРИМЕЧАНИЕ ПЕРЕВОДЧИКА
=========================
Прежде всего я хочу сказать, что я не являюсь профессиональным переводчиком
и ранее не занимался переводами технической документации. Возможно, где то
в тексте будут встречаться литературные огрехи, но в любом случае —
документация на английском языке из любопытной вещи превратилась во вполне
понятное руководство, пригодное к повседневной работе.

И так, прежде всего несколько неточностей — что бы не загромождать текст
фразами типа: «инструкции, оперирующие с числами с плавающей точкой», я
просто называю их «инструкции с плавающей точкой», справедливо пологая, что
от технического руководства не будут требовать литературных изысков. Подобная
ситуация наблюдается и с целыми числами. Надеюсь, что теперь вы правильно меня
поймете и подобные выражения в тексте не будут вызывать праведный гнев.

Илон Маск рекомендует:  Перемещение image'a по форме во время работы программы

В остальном же я старался при переводе сохранить первоначальный смысл текста,
передать его вам без искажений. Пользуйтесь на здоровье.

СТРУКТУРА КОМАНД INTEL 80×86

Победа в борьбе, как правило, достается тому, кто лучше знает противника. Успешно защититься от хакера сможет лишь тот, кто знает не меньше хакера. Каждый уважающий себя хакер должен понимать, как строятся команды, чтобы с легкостью манипулировать им, занимаясь дизассемблированием. Следовательно и тот, кто хочет защитить свою программу от дизассемблирования, не обойдется без понимания того, как процессор интерпретирует команды.

Формат инструкции архитектуры Intel приведен на рис.1. Это схематичное представление. Пока без размерностей и пояснений.

префикс код
операции
modR/M SIB смещение непосредственный
операнд
mod reg Scale Index Base

Рис.1. Формат команд процессора х86 фирмы Intel

Кроме поля кода операции все остальные поля являются необязательными, т.е. в одних командах могут присутствовать, а в других нет.

Префикс

Префиксы делятся на четыре группы:

    блокировки и повторения:

    На этом же основан один очень любопытный прием противодействия отладчикам, в том числе и знаменитому отладчику-эмулятору Cup386. Рассмотрим, как работает конструкция 0x66:RETN. Казалось бы, раз команда RETN не имеет операндов, то префикс 0x66 можно просто игнорировать. Но, на самом деле, все не так просто. RETN работает с неявным операндом-регистром ip/eip. Именно его и изменяет префикс. Разумеется, в реальном и 16-разрядном режиме указатель команд всегда обрезается до 16 бит, и поэтому, на первый взгляд, возврат сработает корректно. Но стек-то окажется несбалансированным! Из него вместе одного слова взяли целых два! Так нетрудно получить и исключение 0Ch - исчерпание стека.

    Любопытно, какой простой, но какой надежный прием. Впрочем, следует признать, что перехват INT 0Ch под операционной системой Windows бесполезен, и, не смотря на все ухищрения, приложение, породившие такое исключение, будет безжалостно закрыто. Однако, в реальном режиме это работает превосходно.

    Еще интереснее получится, если попытаться исполнить в 16-разрядном сегменте команду CALL. Если адрес перехода лежит в пределах сегмента, то ничего необычно ожидать не приходится. Инструкция работает нормально. Все чудеса начинаются, когда адрес выходит за эти границы. В защищенном 16-разрядном режиме при уровне привилегий CL0 с большой вероятностью регистр EIP "обрежется" до шестнадцати бит, и инструкция сработает (но, похоже, что не на всех процессорах). Если уровень не CL0, то генерируется исключение защиты 0Dh. В реальном же режиме эта инструкция может вести себя непредсказуемо. Хотя в общем случае должно генерироваться прерывание INT 0Dh. В реальном режиме его нетрудно перехватить и совершить дальний 'far'-переход в требуемый сегмент. Так поступает, например, операционная система Касперского OS\7R, дающая в реальном режиме плоскую (flat) модель памяти. Разумеется, такой поворот событий не может пережить ни один отладчик. Ни трассировщики реального режима, ни v86, ни protect-mode debugger, ни даже эмуляторы с этим справиться не в состоянии.

    Одно плохо - все эти приемы не работают под Windows и другими операционными системами. Это вызвано тем, что обработка исключения типа "Общее нарушение защиты" всецело лежит на ядре операционной системы, что не позволяет приложениям распоряжаться им по своему усмотрению. Забавно, но в режиме эмуляции MS-DOS некоторые EMS-драйверы ведут себя в этом случае совершенно непредсказуемо. Часто при этом они не генерируют ни исключения 0Сh, ни 0Dh. Это следует учитывать при разработке защит, основанных на приведенных выше приемах.

    Обратим внимание так же и на последовательности типа 0x66 0x66 [ххх]. Хотя фирма Intel не гарантирует корректную работу своих процессоров в такой ситуации, но фактически все они правильно интерпретируют такую ситуацию. Иное дело некоторые отладчики и дизассемблеры, которые спотыкаются и начинают некорректно вести себя.

    Есть еще один интересный момент связанный с работой декодера микропроцессора.

    Декодер за один раз считывает только 16 байт и, если команда "не уместится", то он просто не сможет считать "продолжение" и сгенерирует исключение "Общее нарушение защиты". Однако, иначе ведут себя эмуляторы, которые корректно обрабатывают "длинные" инструкции.

    Впрочем, все это очень процессорно-зависимо. Никак не гарантируется сохранение и поддержание этой особенности в будущих моделях, и поэтому злоупотреблять этим не стоит, иначе ваша защита откажется работать.

    Префиксы переопределения сегмента могут встречаться перед любой командой, в том числе и не обращающейся к памяти, например, CS:NOP вполне успешно выполнится. А вот некоторые дизассемблеры сбиться могут. К счастью, IDA Pro к ним не относится. Самое интересное, что комбинация
    DS: FS: FG: CS: MOV AХ,[100]
    работает вполне нормально (хотя это и не гарантируется фирмой Intel). При этом последний префикс в цепочке перекрывает все остальные. Некоторые отладчики, наоборот, ориентируются на первый префикс в цепочке, что дает неверный результат. Этот пример хорош тем, что великолепно выполняется под Windows и другими операционными системами. К сожалению, на декодирование каждого префикса тратится один такт, и все это может медленно работать.

    Код операции

    Само поле кода операции занимает восемь бит и чаще всего имеет следующий формат (рис. 2):

    код операции направ-
    ление
    размер
    регистр
    условие инверсия
    7 6 5 4 3 2 1 0

    Рис. 2. Формат поля "Код операции"

    Поле размера указывает на размер операндов. Это поле равно 0, если операнды имеют размер в один байт. Это поле равно 1, если операнды имеют размер в слово (двойное слово в 32-битном режиме или в 16-битном режиме с префиксом 0x66).

    Поле направления обозначает, какой из операндов будет приемником. Если направление равно 0, то приемник - правый операнд, если же направление равно 1, то приемник - левый операнд. На примере инструкции mov bx,dx видно, как можно поменять местами операнды, изменив всего один бит:

    Однако, давайте задумаемся, как поле направления будет вести себя, когда один из операндов непосредственное значение? Разумеется, что оно не может быть приемником и независимо от содержимого этого бита будет только источником. Инженеры Intel учли такую ситуацию и нашли оригинальное применение, часто экономящее в лучшем случае целых три байта. Рассмотрим ситуацию, когда операнду размером слово или двойное слово присваивается непосредственное значение по модулю меньшее 0100h. Ясно, что значащим является только младший байт, а стоящие слева нули по правилам математики можно отбросить. Но попробуйте объяснить это процессору! Потребуется пожертвовать хотя бы одним битом, чтобы указать ему на такую ситуацию. Вот для этого и используется бит направления. Рассмотрим следующую команду:

    Если теперь флаг направления установить в единицу, то произойдет следующие:

    Таким образом, мы экономим один байт в 16-разрядном режиме и целых три - в 32-разрядом. Этот факт следует учитывать при написании самомодифицирующегося кода. Большинство ассемблеров генерируют второй (оптимизированный) вариант, и длина команды оказывается меньше ожидаемой. На этом, кстати, основан очень любопытный прием против отладчиков. Посмотрите на следующий пример:

    После выполнения инструкция в строке 0100h приобретет следующий вид:

    То есть, текущая команда станет на байт короче! И "отрезанный" ноль теперь стал частью другой команды! Но при выполнении на "живом" процессоре такое не произойдет, т.к. следующие значение ip вычисляется еще до выполнения команды на стадии ее декодирования.

    Совсем другое дело отладчики, и особенно отладчики-эмуляторы, которые часто вычисляют значение ip после выполнения команды (это легче запрограммировать). В результате чего наступает крах. Маленькая тонкость - до или после оказалась роковой, и вот вам в подтверждение дамп экрана:

    Он изменит 6-ю строку на XOR SP,SP. Это "завесит" многие отладчики, и, кроме того, не позволит дизассемблерам отслеживать локальные переменные адресуемые через SP. Хотя IDA Pro и позволяет скорректировать стек вручную, для этого надо сначала понять, что SP обнулился. В приведенном примере это очевидно (но в глаза, кстати, не бросается), а если это произойдет в многопоточной системе? Тогда изменение кода очень трудно будет отследить, особенно в листинге дизассемблера. Однако, нужно помнить, что самомодифицирующийся код все же уходит в историю. Сегодня он встречается все реже и реже.

    Кстати, IDA Pro вообще отказывается анализировать весь последующий код. Как это можно использовать? Да очень просто - если эмулировать еще два сегментных регистра в обработчике INT 06h, то очень трудно это будет как отлаживать, так и дизассемблировать программу. Однако, это опять-таки не работает под Win32!

    Управляющие/отладочные регистры кодируются нижеследующим образом:

    2-битная кодировка 3-битная кодировка
    Управляющие регистры Отладочные регистры
    000 CR0 DR0
    001 Зарезервировано DR1
    010 CR2 DR2
    011 CR3 DR3
    100 CR4 Зарезервировано
    101 Зарезервировано Зарезервировано
    110 Зарезервировано DR6
    111 Зарезервировано DR7

    Заметим, что коды операций mov, манипулирующих этими регистрами, различны, поэтому-то и возникает кажущееся совпадение имен. С управляющими регистрами связана одна любопытная мелочь. Регистр CR1, как известно большинству, в настоящее время зарезервирован и не используется. Во всяком случае, так написано в русскоязычной документации. На самом деле регистр CR1 просто не существует! И любая попытка обращения к нему вызывает генерацию исключение INT 06h. Например, сир386 в режиме эмуляции процессора этого не учитывает и неверно исполняет программу. А все дизассемблеры, за исключением IDA Pro, неправильно дизассемблируют этот несуществующий регистр:

    Все эти команды на самом деле не существуют и приводят к вызову прерывания INT 06h. He так очевидно, правда? И еще менее очевидно обращение к регистрам DR4-DR5. При обращении к ним исключения не генерируется.

    Между прочим, IDA Pro 3.84 дезассемблирует не все регистры. Зато великолепно их ассемблирует (кстати, ассемблер этот был добавлен другим разработчиком).

    Пользуясь случаем, акцентируем внимание на сложностях, которые подстерегают при написании собственного ассемблера (дизассемблера). Документация Intel местами все же недостаточно ясна (как в приведенном примере), и неаккуратность в обращении с ней приводит к ошибкам, которыми может воспользоваться разработчик защиты против хакеров.

    Теперь перейдем к описанию режимов адресации микропроцессоров Intel. Тема очень интересная и познавательная не только для оптимизации кода, но и для борьбы с отладчиками.

    Первым ключевым элементом является байт modR/M.

    mod reg R/M
    7 6 5 4 3 2 1 0

    Рис. 3. Формат байта modR/M

    Если mod содержит 11b, то два следующих поля будут представлять собой регистры. (Это так называемая регистровая адресация). Например:

    Как отмечалось выше, по байту modR/M нельзя точно установить регистры. В зависимости от кода операции и префиксов размера операндов, результат может коренным образом меняться.

    Биты 3-5 могут вместо определения регистра уточнять код операции (в случаи, если один из операндов представлен непосредственным значением). Младшие три бита всегда либо регистр, либо способ адресации, что зависит от значения mod. A вот биты 3-5 никак не зависят от выбранного режима адресации и задают всегда либо регистр, либо непосредственный операнд.

    Формат поля R/M, строго говоря, не документирован, однако достаточно очевиден, что позволяет избежать утомительного запоминания совершенно нелогичной на первый взгляд таблицы адресаций (таблица 3).

    X X X
    0 - нет базирования
    1 - есть базирование
    если 2-й бит=0, то X: '0' - SI, '1' - DI
    если 2-й бит=1, то X: '0' - BP, '1' - BX
    если 3-й бит=0, то X: '0' - база BX, '1' - BP
    если 3-й бит=1, то X: '0' - индексный регистр, '1' - базовый

    Рис. 4. Формат поля R/M.

    Возможно, кому-то эта схема покажется витиеватой и трудной для запоминания, но зубрить все режимы без малейшего понятия механизма их взаимодействия еще труднее, кроме того, нет никакого способа себя проверить и проконтролировать ошибки.

    Действительно, в поле R/M все три бита тесно взаимосвязаны, в отличии от поля mod, которое задает длину следующего элемента в байтах.

    [Reg+Reg]
    Код
    операции
    00 reg Mem
    7 0 7 0
    [Reg+Reg+Offset8]
    Код
    операции
    01 reg Mem Offset8
    7 0 7 0
    [Reg+Reg+Offset16]
    Код
    операции
    10 reg Mem Offset16
    7 0 7 0

    Рис. 5. Формат команды в зависимости от поля mod.

    Разумеется, не может быть смещения Offset 12, (т.к. процессор не оперирует с полуторными словами), а комбинация 11 указывает на регистровую адресацию.

    Может возникнуть вопрос, как складывать с 16-битным регистром 8-битное смещение? Конечно, непосредственному сложению мешает несовместимость типов, поэтому процессор сначала расширяет 8 бит до слова с учетом знака. Поэтому, диапазон возможных значений составляет от -127 до 127 (или от -0x7F до 0x7FF).

    Все вышесказанное проиллюстрировано в приведенной ниже таблице 3. Обратим внимание на любопытный момент - адресация типа [ВР] отсутствует. Ее ближайшим эквивалентом является [ВР+0]. Отсюда следует, что для экономии следует избегать непосредственного использования ВР в качестве индексного регистра. ВР может быть только базой. И mov ax,[bр] хотя и воспринимается любым ассемблером, но ассемблируется в mov ах,[bр+0], что на байт длиннее.

    Исследовав приведенную ниже таблицу 3, можно прийти к выводу, что адресация в процессоре 8086 была достаточно неудобной. Сильнее всего сказывалось то ограничение, что в качестве индекса могли выступать только три регистра (ВХ, SI, DI), когда гораздо чаще требовалось использовать для этого СХ (например, в цикле) или (как возвращаемое функцией значение).

    Поэтому, начиная с процессора 80386 (для 32-разрядного режима), концепция адресаций была пересмотрена. Поле R/M стало всегда выражать регистр независимо от способа его использования, чем стало управлять поле mod, задающие, кроме регистровой, три вида адресации:

    mod адрес

    Видно, что поле mod по-прежнему выражает длину следующего поля - смещения, разве что с учетом 32-битного режима, где все слова расширяются до 32 бит.

    Напомним, что с помощью префикса 0x67 можно и в 16-битном режиме использовать 32-битный режимы адресации, и наоборот. Однако, при этом мы сталкиваемся с интересным моментом - разрядность индексных регистров остается 32-битной и в 16-битном режиме!

    В реальном режиме, где нет понятия границ сегментов, это действительно будет работать так, как выглядит, и мы сможем адресовать первые 4 мегабайта памяти (32 бита), что позволит преодолеть печально известное ограничение размера сегмента 8086 процессоров в 64К. Но такие приложения окажутся нежизнеспособными в защищенном или V86 режиме. Попытка вылезти за границу 64К сегмента вызовет исключение 0Dh, что приведет к автоматическому закрытию приложения, скажем, под управлением Windows. Аналогично поступают и отладчики (в том числе и многие эмуляторы, включая Cup386).

    Сегодня актуальность этого приема, конечно, значительно снизилась, поскольку "голый DOS" практически уже не встречается, а режим его эмуляции Windows крайне неудобен для пользователей.

    Таблица 3

    Итак, для начала поищем, кто выводит текст 'Crack me. Type password:'. В самом файле начало текста расположено со смещением 77h. Следовательно, учитывая, что com-файлы загружаются, начиная со смещения 100h, эффективное смещение равняется 100h+77h=177h. Учитывая обратное расположение старших и младших байт, ищем в файле последовательность 77h 01h.

    Вот она! Но что представляет собой код 0BAh? Попробуем определить это по трем младшим битам. Они принадлежат регистру DL(DX). А 0B4h 09h - это * AH,9. Теперь нетрудно догадаться, что оригинальный код выглядел как:

    И это при том, что не требуется помнить код команды MOV! (Хотя это очень распространенная команда и запомнить ее код все же не помешает).

    Вызов 21-го прерывания 0CDh 21h легко отыскать, если запомнить его символьное представление '=!' в правом окне дампа. Как нетрудно видеть, следующий вызов INT 21h лежит чуть правее по адресу 0Ch. При этом DX указывает на 0156h. Это соответствует смещению 056h в файле. Наверняка эта функция читает пароль. Что ж, уже теплее. Остается выяснить, кто и как к нему обращается. Ждать придется недолго.

    При разборе байта 0Eh не забудьте, что адресации [ВР] не существует в природе. Вместо этого мы получим [offset16]. На размер регистра и приемник результата указывают два младших бита байта 08Ah. Они равны 10b. Следовательно, мы имеем дело с регистром CL, в который записывается содержимое ячейки [0156h].

    Все, знакомые с ассемблером, усмотрят в этом действии загрузку длины пароля (первый байт строки) в счетчик. Неплохо для начала? Мы уже дизассемблировали часть файла и при этом нам не потребовалось знание ни одного кода операции, за исключением, быть может, 0CDh, соответствующего команде INT.

    Вряд ли мы скажем, о чем говорит код 087h. (Впрочем, обращая внимание на его близость к операции NOP, являющейся псевдонимом XCHG AХ,AХ, можно догадаться, что 087h - это код операции XCHG). Обратим внимание на связанный с ним байт 0F2h:

    Эта команда заносит в SI смещение пароля, содержащееся в DX. Такой вывод следует исключительно из смыслового значения регистров (код команды игнорируется). К сожалению, этого нельзя сказать о следующем байте - 0ACh. Это код операции LODSB, и его надо просто запомнить.

    0x02 - код операции ADD, а следующий за ним байт - код AH,AL.

    0хЕ2 - код операции LOOP, а следующий за ним байт - знаковое относительное смещение перехода.

    Чтобы превратить его в знаковое целое, необходимо дополнить его до нуля, (операция NEG, которую большинство калькуляторов не поддерживают). Тот же самый результат мы получим, если отнимем от 0100h указанное значение (в том случае, если разговор идет о байте). В нашем примере это равно пяти. Отсчитаем пять байт влево от начала следующей команды. Если все сделать правильно, то вычисленный переход должен указывать на байт 0ACh (команда LODSB), впрочем, последнее было ясно и без вычислений, ибо других вариантов, по-видимому, не существует.

    Почему? Да просто данная процедура подсчета контрольной суммы (или точнее хеш-суммы) очень типична. Впрочем, не стоит всегда полагаться на свою интуицию и "угадывать" код, хотя это все же сильно ускоряет анализ.

    С другой стороны, хакер без интуиции - это не хакер. Давайте применим нашу интуицию, чтобы "вычислить", что представляет собой код следующей команды. Вспомним, что 0B4h (10110100b) - это MOV AН,imm8.

    0BEh очень близко к этому значению, следовательно, это операция MOV. Осталось определить регистр-приемник. Рассмотрим обе команды в двоичном виде:

    Как уже говорилось выше, младшие три бита - это код регистра. Однако, его невозможно однозначно определить без утончения размера операнда. Обратим внимание на третий (считая от нуля) бит. Он равен нулю для и единице в нашем случае. Рискнем предположить, что это и есть бит размера операнда, хотя этого явно и не уточняет Intel, но вытекает из самой архитектуры команд и устройства декодера микропроцессора.

    Обратим внимание, что это, строго говоря, частный случай, и все могло оказаться иначе. Так, например, четвертый справа бит по аналогии должен быть флагом направления или знакового расширения, но увы - таковым в данном случае не является. Четыре левые бита - это код операции mov reg, imm. Запомнить его легко - это "13" в восьмеричном представлении.

    Итак, 0BEh 0ЗВh 001h - это MOV SI, 013Bh. Скорее всего, 01ЗВh - это смещение, и за этой командой последует расшифровщик очередного фрагмента кода. А может быть и нет - это действительно смелое предположение. Однако, байты 0З0h 024h это подтверждают. Хакеры обычно так часто сталкиваются с функций хоr, что чисто механически запоминают значение ее кода.

    Не трудно будет установить, что эта последовательность дизассемблируется как XOR [SI],AН. Следующий байт 046h уже нетрудно "угадать" - INC SI. Кстати, посмотрим, что же интересного в этом коде:

    Третий бит равен нулю! Выходит команда должна выглядеть как INC AН! (Что кстати, выглядит непротиворечиво смысле дешифровщика). Однако, все же это INC SI. Почему мы решили, что третий бит - флаг размера? Ведь Intel этого никак не гарантировала! А команда 'INC byte' вообще выражается через дополнительный код, что на байт длиннее.

    Выходит, что как ни полезно знать архитектуру инструкций, все же таблицу кодов команд хотя бы местами надо просто выучить. Иначе можно впасть в глубокое заблуждение и совершить грубые ошибки. Хотя с другой стороны, знание архитектуры порой очень и очень помогает.

    3 лучшие программы для разгона процессора Intel

    Разгоном называется принудительное увеличение тактовой частоты процессора сверх номинальной. Сразу поясним, что означают эти понятия.

    Такт — это условный, очень короткий временной промежуток, за который процессор выполняет определенное количество инструкций программного кода.

    А тактовая частота — это количество тактов за 1 секунду.

    Повышение тактовой частоты прямо пропорционально скорости выполнения программ, то есть разогнанный процессор работает быстрее, чем не разогнанный.

    Содержание:

    Словом, разгон позволяет продлить «активную жизнь» процессора, когда его стандартная производительность перестает отвечать требованиям пользователя.

    Он позволяет увеличить быстродействие компьютера без трат на покупку нового оборудования.

    Что нужно сделать перед разгоном?

    Каждый процессор имеет свой разгонный потенциал — предел тактовой частоты, превышение которого приводит к неработоспособности устройства.

    Большинство процессоров, таких как intel core i3, i5, i7, можно безопасно разогнать лишь на 5–15% от исходного уровня, а некоторые еще меньше.

    Лучше всего из семейства Intel гонится специально ориентированная на это К-серия с разблокированным множителем.

    Стремление выжать максимум тактовой частоты из возможной не всегда оправдывает себя, поскольку при достижении определенного порога нагрева процессор начинает пропускать такты, чтобы снизить температуру.

    Из этого следует, что для стабильной работы разогнанной системы необходимо хорошее охлаждение.

    Кроме того, учитывая возросшее энергопотребление, может понадобиться замена блока питания на более мощный.

    Непосредственно перед разгоном необходимо сделать три вещи:

    • Обновить BIOS компьютера до последней версии.
    • Убедиться в исправности и надежности установки процессорного кулера.
    • Узнать исходную тактовую частоту своего процессора (посмотреть в BIOS или через специальные утилиты, например, CPU-Z).

    Также перед разгоном полезно протестировать работу процессора на стабильность при максимальной нагрузке. Например, с помощью утилиты S&M.

    После этого пора приступать к «таинству».

    Читайте также:

    Обзор программ для разгона процессоров Intel

    SetFSB

    SetFSB — простая в использовании утилита, позволяющая разгонять процессор «на лету» простым перемещением ползунка.

    После внесения изменений не требует перезагрузки компьютера.

    Программа подходит для разгона как старых моделей процессоров вроде Intel Core 2 duo, так и современных.

    Однако она поддерживает не все материнские платы, а это безусловная необходимость, поскольку разгон осуществляется путем повышения опорной частоты системной шины.

    То есть воздействует она на тактовый генератор (чип PLL или как его называют, клокер), находящийся на материнской плате.

    Узнать, входит ли ваша плата в список поддерживаемых, можно на сайте программы.

    Итак, чтобы разогнать процессор с помощью SetFSB, нужно:

    • Выбрать из списка «Clock Generator» модель клокера, установленного на вашей материнской плате.
    • Кликнуть кнопку «Get FSB». После этого в окне SetFSB отобразится текущая частота системной шины (FSB) и процессора.
    • Осторожно, небольшими шагами передвигать ползунок в центре окна. После каждого перемещения ползунка необходимо контролировать температуру процессора. Например, с помощью программы Core Temp.
    • Выбрав оптимальное положение ползунка, нужно нажать кнопку Set FSB.

    Плюс (а для кого-то минус) утилиты SetFSB в том, что выполненные в ней настройки будут действовать только до перезагрузки компьютера. После повторного старта их придется устанавливать заново.

    Если нет желания делать это каждый раз, утилиту можно поместить в автозагрузку.

    Полезная информация:

    Для разгона также можно использовать программу MSI Afterburner. Это фирменная утилита, для разгона видеокарт от AMD и Nvidia, созданная на ядре Rive Tuner.

    CPUFSB

    CPUFSB — следующая в нашем обзоре программа для разгона процессоров Intel core i5, i7 и других, скачать которую можно с сайта разработчика.

    Если вы знакомы с утилитой CPUCool — комплексным инструментами мониторинга и разгона процессора, то знайте, что CPUFSB — это выделенный из нее модуль разгона.

    Поддерживает множество материнских плат на чипсетах Intel, VIA, AMD, ALI и SIS.

    В отличие от SetFSB, CPUFSB имеет русский перевод, поэтому понять, как с ней обращаться, гораздо легче.

    Принцип работы у этих двух программ одинаков: повышение опорной частоты системной шины.

    Порядок работы:

    • Выберите из списка изготовителя и тип вашей материнской платы.
    • Выберите марку и модель чипа PLL (тактового генератора).
    • Нажмите «Взять частоту» для отображения в программе текущей частоты системной шины и процессора.
    • Повышать частоту также необходимо маленькими шагами, контролируя при этом температуру процессора. После выбора оптимальной настройки нажмите «Установить частоту».

    CPUFSB позволяет задавать частоту шины FSB при последующем запуске программы и при выходе. Текущие настройки также сохраняются до перезагрузки компьютера.

    Вам это может быть интересно:

    SoftFSB

    Завершает наш обзор утилита SoftFSB — еще один инструмент для разгона процессора «на лету». Она не более сложна в обращении, чем предыдущие программы.

    Так же как и они, поддерживает множество моделей материнских плат, различные модели тактовых генераторов и любые процессоры.

    В отличие от платных SetFSB и CPUFSB, пользоваться SoftFSB можно безвозмездно.

    Однако нет гарантии, что она запустится на вашем компьютере, поскольку больше не поддерживается автором.

    Для разгона процессора с помощью SoftFSB вам также нужно знать модель материнской платы, чипа PLL и быть достаточно опытным пользователем.

    Порядок действий:

    • В разделе «FSB select» укажите модель платы и тактового генератора.
    • Нажмите кнопку «GET FSB» для захвата частоты процессора и шины.
    • Контролируя температуру процессора, найдите оптимальную частоту, передвигая ползунок в середине окна.
    • Выбрав подходящее значение, нажмите кнопку «SET FSB».

    Как видите, здесь всё то же самое. По схожему алгоритму работает и масса других программ для разгона процессоров под Windows.

    Кроме универсальных, существуют утилиты с функцией разгона, которые выпускают сами производители материнских плат.

    Ими пользоваться несколько проще и безопаснее, поскольку они рассчитаны на простого пользователя и заведомо не могут нанести системе вред.

    Илон Маск рекомендует:  Объект textrange
    Понравилась статья? Поделиться с друзьями:
    Кодинг, CSS и SQL
    16-разрядный режим 32-разрядный режим
    адрес mod R/M адрес mod R/M