Журнал Компьютерра -27-28 от 26 июля 2005 года   ::   Компьютерра Журнал 599

Страница: 91 из 158

'Упрощенный' не-OoO-процессор, встретив любую инструкцию перехода, загрузки или сохранения данных (а это частые гости в любом программном коде), вынужден приостанавливать выполнение текущей задачи до тех пор, пока не будет выполнена инструкция. Приплюсуйте сюда традиционные проблемы гиперконвейерной архитектуры (длиннющий конвейер, необходимый для того, чтобы достичь высоких тактовых частот), в которой любая подобного рода приостановка означает снижение скорости на данном участке кода в разы (!), - и вы поймете, что отсутствие OoO (которое, по некоторым наблюдениям, упрощает процессор в два-четыре раза) резко осложняет жизнь разработчикам, старающимся получить более или менее быстро работающий код. Фактически на Cell и Xenon быстро будут 'считаться' только всевозможные 'тяжелые' вычислительные спецэффекты, математические формулы (скажем, рэйтрейсинг сцены в реальном времени) да некоторые физические расчеты - и ничего больше! Все мы хорошо знаем, какие трудности испытывают в играх процессоры Pentium 4 (причем чем сложнее AI в игре, тем хуже ситуация), однако 'суперскалярные процессоры с упорядоченным выполнением команд' будут натыкаться на те же проблемы в удесятеренном масштабе (Pentium 4 зачастую верно 'угадывает' поведение программы в 'неприятных' для него местах; не-OoO-процессор спотыкается в таких местах всегда).

Так что же, все настолько печально и никакого толку от этих много-много-многогигагерцовых десятипоточных процессоров в играх не будет? Отнюдь.

|< Пред. 89 90 91 92 93 След. >|

Java книги

Контакты: [email protected]