машины на обычных процессорах Pentium, провести модернизацию и впоследствии оснастить их ММХ? Будет ли большая разница в производительности?
Ответ: Тем, кто умудрился пропустить интенсивную рекламную кампанию Intel в средствах массовой информации, напоминаем, что ММХ - это не название секретного оружия или видеоигры для взрослых, а набор новых инструкций микропроцессора архитектуры Intel х86. Intel предназначает свое изобретение для рынка мультимедиа; отсюда и сокращение, которое изначально расшифровывалось как "Multimedia Extensions". (Официальное утверждение Intel на этот счет сегодня звучит так: "MMX не расшифровывается никак", поскольку это укрепляет торговую марку.)
Ни одна из операций набора ММХ не является уникальной для ММХ-процессоров или чем-то совершенно новым: каждая из-них давно уже реализована либо в системах цифровой обработки звука, либо в микропроцессорах других производителей. Однако ММХ "вооружает" этими операциями микропроцессоры Intel таким образом, что проблем обратной совместимости (даже с многозадачными ОС вроде Unix и OS/2) практически не возникает. Новые инструкции работают с целыми числами, но реализованы в процессоре в составе модуля операций с плавающей точкой, что представляется разумным, поскольку этот модуль зачастую остается незадействованным при работе с мультимедиа-приложениями.
ММХ предоставляет следующие возможности. Во-первых, это инструкция умножения с накоплением, чрезвычайно важная функция для обработки сигналов, сложного анализа, трехмерной текстурной прорисовки, согласованного отображения (алгоритма "искривления"), а также для векторных и матричных вычислений. Во-вторых, ММХ позволяет выполнять арифметические операции одновременно над группой целых чисел (метод под названием "одна инструкция, несколько данных", или SIMD). Таким образом можно увеличить скорость выполнения некоторых вычислений в восемь раз. Кроме того, с помощью SIMD компенсируется серьезный недостаток множества процессоров семейства Intel: когда программа пытается выполнить параллельные операции, используя старшую и младшую часть одного и того же регистра для хранения двух операндов, почти всегда будет происходить задержка, условно называемая "установкой конвейера". Инструкции ММХ таким задержкам не подвержены.
ММХ позволяет выполнять арифметические операции, обладающие свойством так называемого "насыщения". Если в результате выполнения какой-либо инструкции, скажем сложения, получилось число, слишком большое или слишком малое для размещения в отведенном для него диапазоне разрядов, то оно "фиксируется" на максимальном или минимальном значении, которое может поместиться в данном количестве бит (аналог штырька, предотвращающего "зашкаливание" стрелки измерительных приборов). Насыщение полезно при обработке графики и звука, проведении числового анализа изменения состояния жидкостей и газов, а также при анализе вычислений, требуемых для системной оптимизации (таких, как симплекс-метод).
Ну и наконец, в составе ММХ есть инструкция параллельного выбора данных, которая позволяет программисту смешивать данные из двух разных источников под управлением третьего. Эта инструкция пригодится при работе с многослойной графикой (например, рабочей поверхностью экрана с накладывающимися окнами и пиктограммами), а также для удаления скрытых линий с изображений.
Надо ли ждать, пока системы с ММХ станут общедоступными? Пожалуй, нет. Возможна (и будет реализована) программная эмуляция любой из инструкций ММХ на существующих машинах. А если у вас есть периферийные устройства, оснащенные собственными процессорами (например, графический ускоритель или аудиоплата с системой цифровой обработки звука), то специализированное аппаратное обеспечение будет функционировать с более высокой производительностью, чем микропроцессор с ММХ. Что касается модернизации, я уверен, все крупнейшие производители микропроцессоров предоставят пользователям такую возможность.