Реферат: Intel Pentium III
Так что введение номера - скорее все-таки положительный, чем отрицательный, шаг.
SSE
Теперь о самом главном. О том, что раньше называлось MMX2, потом - KNI, а сейчас называется SSE (Streaming SIMD Extensions). В Pentium III реализовано 70 новых SIMD-инструкций, оперирующих со специальными 128-битными регистрами XMM0-XMM7. Каждый из этих регистров хранит четыре вещественных числа одинарной точности. Таким образом, выполняя операцию над двумя регистрами, SSE фактически оперирует четырьмя парами чисел. То есть благодаря этому процессор может выполнять до 4-х операций одновременно. Собственно, SIMD и расшифровывается как Single Instruction Multiply Data (одна инструкция - много данных).
Однако для выполнения четырех операций "одним махом" разработчик программы должен использовать специальные команды, а также позаботиться о помещении и извлечении данных из четырехместных регистров, поэтому для использования всех вычислительных мощностей Pentium III необходима целенаправленная оптимизация.
То есть вместе с Pentium III, мы получили еще один блок, подобный MMX, только оперирующий с вещественными числами. Это нововведение может оказаться очень полезным в широком ряде приложений:
трехмерная графика и моделирование, расчет освещенности c использованием вычислений с плавающей запятой;
обработка сигналов и моделирование процессов с широким диапазоном изменения параметров (вычисления с плавающей запятой);
генерация трехмерных изображений в программах реального времени, не использующих целочисленный код;
алгоритмы кодирования и декодирования видеосигнала, обрабатывающие данные блоками;
численные алгоритмы фильтрации, работающие с потоками данных.
Однако почему же Intel назвал процессор новым именем, отказавшись от Pentium II SSE (по аналогии с Pentium MMX)? Неужели производитель видит в SSE качественный шаг? Думается, нет. Дело тут в маркетинге. Приписав к названию аббревиатуру, Intel открыто показал бы, что SSE - главное нововведение в их процессоре. И тогда, вслед за ними, все конкуренты также смогли бы объявить о поддержке SSE - основное маркетинговое преимущество было бы утеряно. Так именно и произошло с ММХ. Потому Pentium II SSE называется Pentium III - теперь конкурентам придется говорить о "совместимости", что, по сути, для них более унизительно. Помните, как подозрительно изменилась цифра 3 на III в названии AMD K6-III? ;)
Теперь посмотрим, что же дают новые SIMD-инструкции приложениям, оптимизированным под них. Учтя печальный опыт MMX, когда новые команды появились без соответствующей поддержки со стороны софтверных девелоперов (что привело, в конце концов, к своеобразному бойкоту новых инструкций), Intel на этот раз, задолго до официального выхода нового процессора, разослал программистам опытные экземпляры процессора для оптимизации. В итоге, мы уже сейчас имеем некоторое количество приложений, оптимизированных под SSE.
В этом тесте выполняется стандартная процедура компрессии в MPEG-1, воспроизведение файла этого формата, обработка изображения - поворот, слияние двух изображений и цветоделение, а также обработка звука. Выполнение всех этих задач может быть оптимизировано для SSE, результат этой оптимизации мы видим на диаграмме - прирост относительно Pentium II составляет порядка 40-50%.
Теперь - о 3D-графике и играх. Здесь разговор об оптимизации должен быть отдельный. Дело в том, что оптимизировать 3D-игру под SIMD-инструкции можно тремя путями:
оптимизацией на уровне видеодрайверов;
оптимизацией на уровне DirectX. При этом предполагается, что приложение должно использовать оптимизированные функции DirectX;
оптимизацией самого приложения.
Что касается оптимизации драйверов, то уже практически все производители видеокарт объявили о своем намерении выпустить такие драйвера. Некоторые, например Nvidia, уже имеют драйвера с поддержкой SSE. Собственно, мы на них и проводили наши тесты. Однако, как видно сейчас по тесту Quake2, и как мы помним по опыту 3DNow!, толка от такой оптимизации нет. Никакого прироста в скорости не видно.
Что касается DirectX, то в версии 6.1 (а значит, и во всех последующих) оптимизация под SSE имеется. Изменение претерпел Lighting and Transformation Engine, то есть набор функций для преобразования 3D-сцены и расчета освещений. Результат от такой оптимизации может быть ощутим, если приложение пользуется этими функциями, а не считает все само. Для оценки прироста производительности от оптимизации DirectX достаточно посмотреть на результаты теста 3D Winbench 99 Lighting and Transformation.
Здесь имеется прирост от использования SSE порядка 80-90%. Это как раз тот максимум, который можно получить при использовании оптимизированного DirectX. Однако эта возможность так и остается теоретической - DirectX Lighting and Transformation Engine, также как как и Retained Mode, практически никакие программы не используют. Причины, как уже отмечалось выше, в низком быстродействии и скудных возможностях. Правда, в DirectX 7.0 ситуация обещает исправится - Microsoft сообщил, что работает над усовершенствованием собственного движка. Таким образом, нигде, кроме как в 3D Winbench, результатов оптимизации DirectX не видно.
Обратимся теперь к оптимизированным программам. Самой известной на данный момент является игра Rage Dispatched, намеченная к выходу во втором квартале 99-го года. Сцены этой игры имеют до 55000 треугольников и несколько источников света. На данный момент такая детализация нигде не используется из-за нехватки вычислительных мощностей современных процессоров. Во время тестирования с процессором Intel Pentium II 450 число fps в разрешении 800х600х16 падало ниже отметки 10fps, и была заметна неравномерность движения. С процессором же Pentium III fps в этом режиме не падает ниже 25. Более подробные результаты приведены ниже:
Как видно, прирост от использования новых SIMD-инструкций составляет почти 50%. То есть при условии грамотной оптимизации под Pentium III игроманы могут получить неплохой прирост. Дело - за разработчиками игр.
Еще одним тестом, в котором используется оптимизация под новый процессор, является новая версия 3Dmark99 MAX.