вторник, 4 января 2011 г.

Многоядерные процессоры: проблемы в играх и приложениях.

Большое количество пользователей двух ядерных процессоров, таких как AMD X2, Pentium D и даже Pentium 4 с HyperThreading - жаловались на странные проблемы с играми, приводящие к их полной или частичной неработоспособности. Это происходит потому,
что производители материнских плат некорректно инициализируют процессоры. Если любая программа использует tick counter у процессора, эта программа может стать неработоспособной на любом двух ядерном процессоре. Windows постоянно балансирует нагрузку, постоянно переключаясь с одного процессора на другой. Если оба процессора были инициализированы синхронно, то проблема не возникает. Но большинство материнских плат не могут инициализировать процессоры синхронно. Если процессоры инициализированы не синхронно, то переключение с одного процессора на другой будет приводить к временным броскам, как прямым, так и обратным. Время начинает течь рывками, что делает работу большинства игр не стабильной.

Вы можете подумать, что эта ошибка проявляется только в играх. К сожалению, эта ошибка проявляется так в различных драйверах для USB HDD, flash плееров и т.д. Легко проверить, имеется эта ошибка в Вашем компьютере или нет. Просто запустите этот тест: ICEAffinityTest.exe. Если Ваш компьютер не идеален, этот тест покажет время сдвига между процессорами.

Для материнских плат без данного дефекта переменная TimeShift равна нулю. Если переменная TimeShift не равна нулю, то значит Вы можете требовать от производителя Вашей материнской платы исправить этот дефект.

Пока же производители уговаривают Вас подождать, Вы можете использовать ICE Affinity для решения это проблемы в играх. Необходимо запретить для игр использовать больше одного процессора. Это можно сделать из Task Manager, но это не удобно, так как нужно это делать каждый раз вручную после запуска игры. ICE Affinity - небольшая утилита, которая решает эту проблему. ICE Affinity запускает любое приложение из командной строки и указывает какие процессоры в системе можно использовать для запуска этого приложения.

ICEAffinity.exe [Application command line parameters]

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

Пример:
ICEAffinity.exe 1 Game.exe - Используется только первый процессор
ICEAffinity.exe 2 "C:\Program Files\Game\Game.exe" - Используется только второй процессор
ICEAffinity.exe 3 "C:\Program Files\Game\Game.exe" -CONNECT -LAN - Используются оба процессора

Для использования ICE Affinity скопируйте файл ICEAffinity.exe в каталог, где расположена игра и сделайте ярлык для ICEAffinity.exe, только вместо полного пути на ICEAffinity.exe вида: "C:\Program Files\Game\ICEAffinity.exe"
добавьте следующее:
"C:\Program Files\Game\ICEAffinity.exe" 1 Game.exe
где Game.exe - это исполняемый файл игры. Теперь клик на ярлык будет запускать Вашу игру.

Скачать ICE Affinity

Источник


P.S. от меня лично: Помимо использования данной программы есть шанс, что могут помочь следующие рекомендации для владельцев процессоров AMD:
  1. AMD Dual-Core Optimizer Version 1.1.4
  2. AMD Processor Driver Version 1.3.2.0053 for Windows XP and Windows Server 2003 (x86 and x64)
а также может помочь наложение заплатки KB896256 для Windows XP.

Комментариев нет: