
|
Вячеслав
МАНГЕР
|
|
Технология
3DNow! является новшеством в архитектуре x86
- основе большинства современных ПК. Она
представляет собой группу новых команд,
"расширяющую узкие места" при
работе как мультимедийных, так и просто
занятых интенсивными вычислениями
приложений.
Компания AMD разработала ряд
команд, при помощи которых можно достичь
нового уровня производительности, а
также и реалистичности графики.
Технология 3DNow! позволяет быстро
изменять фреймы в сценах с высоким
разрешением, усовершенствовать
физическое моделирование реальных сред,
детализировать 3D-изображения, добиться
лучшего воспроизведения видео и
превосходного качества звука.
Мир 3DNow!
Среди
производителей ПО, поддержавших новый
стандарт, следует выделить самую
влиятельную компанию - Microsoft. В новом
поколении ее мультимедийных API (таблица
1) появилась очередная версия DirectX 6.0. Она
содержит ряд новых мультимедийных
расширений, оптимизированных для
технологии 3DNow!.

Рис. 1.
Ресурсы модулей регистров X и Y
API, поддерживающие
команды технологии 3DNow!
|
Версия
API |
Компания-разработчик |
Web-сайт
разработчика |
DirectX
6.0 |
Microsoft |
www.microsoft.com/directx |
Glide
3.0 |
3Dfx |
www.3dfx.com |
OpenGL
1.2 |
SGI |
www.opengl.org |
Нельзя не заметить, что в
альтернативную API - OpenGL 1.2 SDK - также
включена поддержка технологии 3DNow!.
Количество разработчиков программного
обеспечения, использующих преимущества
технологии 3DNow! на уровне программных
кодов, продолжает стремительно расти, о
чем свидетельствует состояние рынка игр,
поддерживающих технологию 3DNow! (таблица
2).
Список игр, в которых
используются (или будут
использованы) команды 3DNow!
|
Название
игры |
Компания-разработчик |
Дата
выпуска |
Web-сайт
разработчика |
Ares Rising |
Imagine Studios |
анонс ожидается |
www.idmp.com |
Baseball 3D |
Microsoft |
уже доступна |
www.microsoft.com |
Black&White |
Lionhead Studios |
анонс ожидается |
www.lionhead.co.uk |
Blood2 |
Monolith Productions |
ноябрь 1998 г. |
www.lith.com |
Carnivores |
Action Forms |
уже доступна |
www.actionforms.kiev.ua |
Conquest |
Digital Anvil |
1999 г. |
www.microsoft.com |
Dark Vengeance |
Reality Bytes |
анонс ожидается |
www.realbytes.com |
Deus Ex |
Ion Storm |
анонс ожидается |
www.ionstorm.com |
Diakatana 2 |
Ion Storm |
анонс ожидается |
www.ionstorm.com |
Drakan |
Surreal Software, Psygnosis |
1999 г. |
www.surreal.com |
Duke Nukem Forever |
3DRealms |
анонс ожидается |
www.3drealms.com |
DVD Express |
Mediamatics |
уже доступна |
www.mediamatics.com |
Earth2150 |
Topware Interactive |
весна 1999 г. |
www.earth2150.com |
Eliminator |
Psygnosis |
анонс ожидается |
www.psygnosis.com |
Genesis3D SDK with GTest Demo |
Eclipse Entertainment |
уже доступна |
www.eclipsegames.com |
Golgotha |
CrackdotCom |
осень 1998 г. |
www.crack.com |
Hired Guns |
Psygnosis |
весна 1999 г. |
www.psygnosis.com |
Homeworld |
Relic Entertainment |
осень 1998 г. |
www.relic.com |
Incoming |
Rage |
уже доступна |
www.rage.co.uk |
Klingon Honor Guard |
Microprose |
анонс ожидается |
www.microprose.com |
Lander |
Psygnosis |
анонс ожидается |
www.psygnosis.com |
Loose Cannon |
Digital Anvil |
1999 г. |
www.microsoft.com |
LiveArt98 |
Viewpoint |
уже доступна |
www.viewpoint.com |
Madden NFL 99 |
EA Sports |
уже доступна |
www.easports.com |
Max Payne |
Remedy Entertainment |
первый квартал 1999
г. |
www.remedy.fi |
Messiah |
Shiny Entertainment |
осень 1998 г. |
www.shiny.com |
MIA |
Simis |
уже доступна |
www.simis.co.uk |
Navy Seals |
SierraFX/Yosemite Entertainment |
анонс ожидается |
www.sierrafx.com |
Nitrane |
Nullsoft |
уже доступна |
www.nullsoft.com |
NFL Blitz |
Midway Games |
уже доступна |
www.midway.com |
Plane Crazy |
Inner Workings |
анонс ожидается |
www.innerworkings.co.uk |
PicVideo |
Regasus |
уже доступна |
www.pegasusimaging.com |
Powerslide |
RatBag Games |
анонс ожидается |
www.ratbaggames.com |
Pro 18: World Tour Golf |
Psygnosis |
анонс ожидается |
www.psygnosis.com |
Pro Border |
Radical Games |
анонс ожидается |
www.radical.ca |
Quake2 |
Id Software |
уже доступен patch |
www.idsoftware.com |
Quake Arena |
Id Software |
анонс ожидается |
www.idsoftware.com |
Roll Cage |
Psygnosis |
анонс ожидается |
www.psygnosis.com |
SiN |
Ritual Entertainment |
ноябрь 1998 г. |
www.ritual.com |
Shattered Reality |
KO Interactive |
декабрь 1998 г. |
www.ko-interactive.com |
Shogo: MAD |
Monolith Productions |
осень 1998 г. |
www.lith.com |
Slave Zero |
Accolade |
весна 1999 г. |
www.accolade.com |
Speed Boat Attack |
Criterion |
уже доступен patch |
www.csl.com |
StarLancer |
Digital Anvil |
1999 г. |
www.microsoft.com |
Sub Culture |
Criterion |
уже доступен patch |
www.csl.com |
Team Apache |
Simis |
уже доступна |
www.simis.co.uk |
Trespasser: Jurassic Park |
Dreamworks Interactive |
уже доступна |
www.dreamwork
sgames.com |
TNN Pro Hunter |
ASC Games |
анонс ожидается |
www.tnnprohunter.com |
Uprising2 |
3DO |
анонс ожидается |
www.3do.com |
Unreal |
Epic Megagames |
уже доступна |
www.epicgames.com |
ViaVoice 98 |
IBM |
уже доступна |
www.software.ibm.com |
Viper Racing |
Sierra Online |
осень 1998 г. |
www.sierra.com |
Werewolf: The Apocalypse |
ASC Games |
анонс ожидается |
www.ascgames.com |
Wheel of Time |
Legend Entertainment |
анонс ожидается |
www.legendent.com |
X-Com: Alliance |
Microprose |
анонс ожидается |
www.microprose.com |
Xenocracy |
Simis |
уже доступна |
www.simis.co.uk |
Ключевые
разработчики аппаратных акселераторов
тоже не стоят на месте - они
модернизируют свои драйверы (таблица 3),
чтобы воспользоваться преимуществами
3DNow!.
Список
разработчиков аппаратных
акселераторов, оптимизировавших
свои драйверы под технологию 3DNow!
|
Компания |
Чипсет |
Web-сайт |
разработчик |
|
разработчика |
3Dfx |
Banshee |
www.3dfx.com |
3Dfx |
Voodoo2 |
www.3dfx.com |
3Dfx |
Voodoo3/Avenger |
www.3dfx.com |
ATI |
Rage Pro |
www.atitech.com |
Aureal |
A3D |
www.aureal.com |
Matrox |
G100 |
www.matrox.com |
Matrox |
G200 |
www.matrox.com |
nVidia |
Riva128 |
www.nvidia.com |
nVidia |
Riva128zx |
www.nvidia.com |
nVidia |
RivaTNT |
www.nvidia.com |
Rendition |
V2200 |
www.rendition.com |
S3 |
Savage3D |
www.s3.com |
Trident |
будет анонсирован |
www.tridentmicro.com |
AMD не
стоит на месте
Компания AMD
представила новое семейство
процессоров K6-2 3DNow! с тактовыми
частотами 366, 380 и 400 МГц. Процессор
K6-2/400, разработанный для Super7 (321
контакт) и системной шины 100 МГц,
содержит 9,3 миллиона транзисторов
и изготовлен по технологии 0,25
микрон. В партиях от 1000 штук AMD K6-2/400,
AMD K6-2/380 и AMD K6-2/366 предлагаются по
цене $283, $213 и $187 соответственно.
|
Уже известно, что пять типов
процессоров производятся (или будут
производиться) по технологии 3Dnow!: AMD K6-2,
AMD K6-3, AMD K7, Cyrix Cayenne и IDT Winchip 2 3D. Кроме того,
вклад новой технологии будет также
ощутим в таких областях: • аркадные 3D-игры
и 3D-аудио; • программное обеспечение с 3Dграфикой;
• VRML и инструментальные средства
создания Web-узлов; • программы
компьютерного делопроизводства; •
пакеты CAD/CAE; • программное обеспечение,
предназначенное для распознавания речи;
• программные модемы и DVD; • драйверы
для графических контроллеров 3D; •
воспроизведение видео формата MPEG2 и
алгоритм Dolby AC-3 (цифровое окружение
звуком).
Функциональные
возможности
Команды
технологии 3DNow! предназначены для
увеличения производительности систем
при обработке 3D-приложений, в которых
присутствуют операции с плавающей
запятой. Команды 3DNow! работают по
принципу "одна команда - много данных"
(SIMD, Single Instruction / Multiple Data). Каждая
инструкция работает с двумя операндами
с плавающей запятой одинарной точности.
Микроархитектура процессора AMD K6-2 может
выполнять до двух таких команд за один
такт процессора посредством двух
регистров с конвейерным выполнением,
что, в итоге, позволяет производить до
четырех операций с плавающей запятой за
один такт. Следует заметить, что
инструкции 3DNow! используют при работе те
же самые регистры, что и MMX (рис. 1).
Система команд 3DNow! содержит 21
инструкцию (все они поддерживают
операции SIMD; таблица 4), включает
предварительный просчет данных и
быстрое преобразование MMX-to-floating-point.
Форматы
данных технологии 3DNow!
Рис. 2.
Формат 3DNow! данных с плавающей
запятой
(32 бита x 2) Два
упакованных двойных слова (doublewords)
с плавающей запятой одинарной
точности
Рис.
3. Формат 32-разрядных IEEE-данных
с плавающей запятой одинарной
точности
32-разрядное
двойное слово (doublewords) с плавающей
запятой одинарной точности
Рис. 4. Формат
данных целочисленного типа
(8 бит x 8)
Упакованные байты
(16 бит x 4) Упакованные
слова

(32 бита x 2) Упакованные
двойные слова

(64 бита x 1) Учетверенное
слово

|
Перечень
команд технологии 3DNow!
|
Операция |
Функция |
Суффикс
кода операции |
Команды для операций с
вещественными числами (в
упакованном формате)
|
PFADD |
сложение |
9Eh |
PFSUB |
вычитание |
9Ah |
PFSUBR |
обратное
вычитание |
AAh |
PFACC |
аккумуляция |
AEh |
PFCMPGE |
сравнение "больше
или равно" |
90h |
PFCMPGT |
сравнение "больше" |
A0h |
PFCMPEQ |
сравнение "равно" |
B0h |
PFMIN |
определение
минимального |
94h |
PFMAX |
определение
максимального |
A4h |
PFRCP |
обратная
аппроксимация |
96h |
PFRSQRT |
обратная
аппроксимация квадратного корня |
97h |
PFMUL |
умножение |
B4h |
PFRCPIT1 |
обратная первая
итерация |
A6h |
PFRSQIT1 |
обратная первая
итерация квадратного корня |
A7h |
PFRCPIT2 |
обратная вторая
итерация квадратного корня |
B6h |
PF2ID |
преобразование
вещественного числа упакованного
формата в 32-разрядное целое число |
1Dh |
Команды для операций с
целыми числами
|
PAVGUSB |
усреднение
беззнакового 8-разрядного целого
числа в упакованном формате |
BFh |
PI2FD |
преобразование 32-разрядного
целого числа в вещественное число
упакованного формата |
0Dh |
PMULHRW |
умножение с
округлением 16-разрядных целых
чисел упакованного формата |
B7h |
Команды для увеличения
производительности вычислений
|
FEMMS |
ускорение входа /
выхода в MMX или вещественную форму |
0Eh |
PREFETCH |
опережающая
загрузка по крайней мере 32-байтовой
строки в кэш данных L1 (Dcache) |
0Dh |
Для
улучшения декодирования MPEG в 3DNow! также
включена целочисленная команда SIMD.
Поскольку мультимедийные программы
обычно работают с большими наборами
данных, очень часто процессор
вынужденно простаивает, ожидая, пока
последние будут переданы ему из
оперативной памяти. Дополнительных
затрат времени на поиск этих данных
можно избежать, используя новую команду
3DNow! - PREFETCH. Эта команда может
гарантировать наличие требуемых данных
в кэше L1 (первого уровня), когда это будет
необходимо. Чтобы уменьшить время
переключения в режим MMX и обратно, в
систему команд 3DNow! была включена
инструкция FEMMS (быстрый вход / выход из
состояния мультимедиа).
В
гонке наметился лидер
AMD-K7
является первым процессором,
совместимым с x86, который может
опередить процессоры компании Intel.
Массовое производство К7 начнется
в первой половине 1999 года, причем
начальная частота CPU составит как
минимум 500 МГц. В нем будет более 20
миллионов транзисторов.
Производиться процессор будет по
технологии 0,25 микрон. С ведущими
производителями уже достигнута
договоренность о выпуске
материнских плат под К7 в
стандартных форм-факторах ATX и NLX.
Чипсеты для К7 будет выпускать как
AMD, так и лидирующие производители
чипсетов BIOS от AMI, Award и Phoenix.
Заметьте также, что ЦПУ от AMD
впервые будет поддерживать
мультипроцессорность. Конструктив
CPU, называемый Slot A, не совместим со
Slot 1 электрически. К7 использует
шину процессоров Alpha EV6, обладающую
более высокой пропускной
способностью и частотой выше 100 MГц.
AMD также достигла соглашения с
компанией Motorola об использовании
"медных технологий", что
позволит достичь тактовой частоты
процессора в 1 ГГц.
В общем, K7
может декодировать и исполнять на
50% больше команд, чем представители
семейства К6, а значит, он будет как
минимум вдвое быстрее, чем
аналогичный по частоте (скажем, 500
МГц) К6. Сравнительные
характеристики AMD-K7 и других
процессоров приведены в таблице.
Сравнительные
характеристики AMD-K7, AMD-K6-2,
AMD-K6-3 и Intel Katmai
|
Процессор |
K6-2-500 |
K6-3-500 |
K7-500 |
Katmai-500 |
Разъем |
Super7 |
Super7 |
Slot A |
Slot 1 |
L1-cache |
64 кб |
64 кб |
128 кб |
64 кб |
L2-cache |
512 кб |
256 кб |
512 кб |
512 кб |
Скорость
L2-cache, МГц |
100 |
500 |
250 |
250 |
L3-cache |
0 |
512 кб |
0 |
0 |
Пропускная
способность шины памяти |
64 бит x 100 МГц |
64 бит x 100 МГц |
64 бит x 100 МГц x
2 |
64 бит x 100 МГц |
Баланс
попаданий L1/L2, % |
95 |
90 |
99 |
95 |
Шина Backside |
нет |
есть |
есть |
есть |
Пропускная
способность ядра, Мб/c |
800 |
4800 |
3600 |
2800 |
Архитектура AMD-K7™
Блок-схема
архитектуры микропроцессора AMD-K7 ,
представленного на рисунке,
включает:
- три
параллельных декодера x86;
- 9-входовую
суперскалярную
микроархитектуру,
оптимизированную для работы на
высоких частотах;
- динамическое
спекулятивное распределение;
внеочередное исполнение;
- 2048-входовую
таблицу переходов и 12-входовый
возвратный стек;
- 3 суперскалярных
внеочередных конвейера,
состоящих из:
- блока
целочисленных вычислений;
- блока
адресной генерации;
- 3 суперскалярных
внеочередных
мультимедиаконвейера с 1 циклом
выхода:
- FADD (максимальная
задержка 4 такта), MMX ALU (максимальная
задержка 2 такта), 3DNow!;
- FMUL (максимальная
задержка 4 такта), MMX ALU (включая
Mul & MAC), 3DNow!;
- FSTORE.
- кэш первого
уровня - 64 кб для инструкций и 64
кб для данных;
- мультиуровневый
TLB (24/256 входов для команд, 32/256
входов для данных);
- два 64-разрядных
порта общего назначения
загрузки/хранения в кэше данных:
- 3 цикла
загрузки;
- мультибанк
для одновременного доступа;
- высокоскоростной
64-битный контроллер кэша второго
уровня:
- поддерживает
объем от 512 кб до 8 Мб;
- программируемый
интерфейс;
- системную шину
64-bit (первая промышленная шина на
200 МГц; возможно повышение
частоты);
- внутренний
буфер для поддержки конвейеров и
внешних интерфейсов:
- до 72 x86-команд
в реальном времени;
- 32 outstanding load misses;
- 15-входовый
планировщик для целых чисел;
- 36-входовый
планировщик для чисел с
плавающей точкой.
|
Набор
регистров
Мультимедийные
модули в процессоре AMD K6-2 комбинируют
существующие команды MMX с новыми
командами 3DNow!. Кроме того, объединив 3DNow!
с MMX, можно писать программы x86,
содержащие одновременно целочисленные
команды и команды с плавающей запятой, и
при этом избежать потери эффективности
при переключении между мультимедиа (целочисленные)
и модулями 3DNow! (с плавающей запятой).
Например, процессор AMD K6-2 работает с
восемью 64-разрядными регистрами 3DNow! / MMX.
Ресурсы
выполнения
Операции всех
команд 3DNow! выполняются либо в модульном
регистре X, либо в модульном регистре Y.
Одна операция может быть передана
каждому модулю за один такт процессора.
В целях оптимизации кода операции 3DNow!
сгруппированы в две категории. Эти
категории основаны на ресурсах
выполнения; они чрезвычайно важны при
создании требуемого кода. Первая
категория инструкций содержит такие
операции: PFADD, PFSUB, PFSUBR, PFACC, PFCMPx, PFMIN, PFMAX,
PI2FD, PF2ID, PFRCP и PFRSQRT. Вторая содержит
команды PFMUL, PFRCPIT1, PFRSQIT1 и PFRCPIT2. Следует
принять во внимание, что операции
сложения и умножения (среди других
комбинаций) могут выполняться
одновременно.
Подробнее о
системе команд 3DNow!
можно прочитать на Web-сайтах:
http://www.3d-now.com/
http://www.3dnow.net/
http://www.amd.com/3dsdk/
Вячеслав
Мангер,
"Компьютеры + Программы"
Использованы
материалы: http://www.cp.comizdat.com
|