чтобы он был разрешен. Intel предлагает специальную утилиту для блокировки номера. Кроме того, все новые версии BIOS, поддерживающие Pentium III, также позволяют блокировать этот номер через Setup;
чтобы на компьютере пользователя была запущена специальная программа, передающая этот номер. Предполагается, что кто-то, например web-сайт, должен запустить на пользовательском ПК эту программу.
Так что я не склонен расценивать введение серийного номера, как попытку Intel вторгнуться в нашу частную жизнь. Более того, уже почти 10 лет, как все выпускаемые жесткие диски имеют серийные номера. И их также можно узнать. А это почему-то не вызывает ни у кого никаких вопросов.
Так что введение номера - скорее все-таки положительный, чем отрицательный, шаг.
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.
На этом синтетическом тесте, правда, основанном на реальном движке, прирост от использования SSE составляет 20%. Здесь, также как и в Dispatched, разработчики отказались от применения оптимизированных функций DirectX. Более низкий, чем в Dispatchеd, прирост обусловлен как раз тем, что, наряду с расчетом и отображением 3D-сцен, 3DМark тестирует и включает в итоговый индекс и такие характеристики, как пропускная способность памяти видеокарты, совсем не зависящие от CPU.
Специально для оценки эффективности процессора в 3D-играх, 3Dmark99 MAX предлагает индекс CPU 3DМark, просчитывающий 3D-сцены, но не выводящий их не экран. Таким образом, получается результат, зависящий только от возможностей процессора по обработке 3D-графики и от пропускной способности основной памяти. В данном случае мы видим, что SSE дает 60-70% прирост. Что же, неплохо. Это как раз тот теоретический максимум, который можно получить от использования нового Pentium III в играх. Соответствие полученных результатов результатам 3D Winbench 99 Lighting and Transformation подтверждает их правильность.
Кажется, к этому моменту вы должны обладать практически полной информацией о новом процессоре. Недовольными могут остаться только поклонники AMD. Поэтому для полноты изложения попытаемся затронуть вопрос о сравнении технологий 3DNow! и SSE. Чисто теоретически, SSE оперирует с 128-битными регистрами, 3DNow! - с 64-битными. Это значит, что SSE-конвейер процессора Pentium III за один такт может обработать 4 пары значений, в то время как 3DNow!-конвейер - только 2 пары. Однако в Pentium III - всего один SSE-конвейер, в то время как у K6-2 и K6-3 их два. То есть за один такт оба процессора могут обработать 4 пары вещественных чисел одинарной точности. Но в K6-2 и K6-3 конвейеры устроены таким образом, что они не могут выполнять одинаковые операции одновременно. Хотя, на мой взгляд, это ограничение несущественно.
Таким образом, так как KNI использует восемь 128-битных регистров вместо восьми 64-битных в 3DNow!, у Pentium III получается почти в два раза больше регистров для эффективной оптимизации. И это, скорее всего, единственное значимое преимущество KNI. Однако наличие в два раза больших регистров, это не тоже самое, что наличие в два раза лучше соптимизированного кода. Более чем троекратное превосходство SSE в числе инструкций (70 против 21) также малосущественно - все наиболее значимые для 3D-обработки операции 3DNow! выполняет в SIMD-режиме.
Резюме такое: разобраться, что лучше, исходя из теоретических соображений, трудно, так как возможности примерно одинаковы. Тем более, нет информации о времени, затрачиваемом процессорами на различные команды. Так что, перейдем к тестам. Процессор AMD K6-2 тестировался в аналогичной конфигурации на системной плате Chaintech 5AGM2.