|
Вячеслав
МАНГЕР
|
|
Технология
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
|