20
1.1.6 Модуль плавающей точкой
Вплоть до поколения 386 отдельно от процессора на материнскую плату мог устанавливаться математический сопроцессор (floating-point unit — FPU) — специальная микросхема для работы с числами с плавающей точкой, где числа представлены мантиссой и ординатой. Сам процессор содержал лишь целочисленную математику, и без сопроцессора работа с дробными числами (например, в электронных таблицах или научных расчетах) была очень медленна, а иногда вовсе невозможна.
Начиная с 486 (кроме 486 SX) модуль плавающей точки включен в состав процессора. Он присутствует во всех современных процессорах. Но его производительность неодинакова в процессорах разных типов и не зависит от целочисленной производительности.
Не в пример центральному процессору, математический сопроцессор не держит под управлением основную массу цепей компьютера. Наоборот, вся деятельность математического сопроцессора определяется центральным процессором, который может посылать математическому сопроцессору команды на выполнение программ и формирование результатов.
Согласно данным компании Intel, математический сопроцессор может уменьшить время выполнения математических операций, таких, как умножение, деление и возведение в степень, на 80% и более. Скорость выполнения простых математических операций, таких, как сложение и вычитание, не изменяется.
1.1.7 Технологии SIMD
Сокращение SIMD (Single Instruction Multiple Data) обо-
значает инструкции, оперирующие большим количеством аргументов сразу. Основным направлением их использования являются мультимедийные приложения, которым необходимо выполнять однотипные операции над большими потоками цифровой информации.
Технология MMX (Intel). Технология MMX от Intel (MultiMedia eXtension) — это набор дополнительных возможностей процессора для работы multimedia-программ. Он существен-
21
но ускоряет программы, работающие со сложной графикой и анимационными эффектами, обрабатывающие звук, при условии, что в них встроена поддержка MMX-процессора. Мультимедийные команды использовалась в старших моделях процессоров Pentium пятого поколения в качестве расширения, которое ускоряет сжатие/ декомпрессию видеопотока, манипулирование изображением, шифрование и выполнение операций ввода-вывода. Однако процессоры, имеющие MMX, не всегда могут быть установлены в многопроцессорный компьютер.
Первое применение SIMD инструкции нашли именно в различных программах обработки цифровой мультимедийной информации. Это объяснялось тем, что приложения было довольно легко оптимизировать — достаточно было переписать наиболее трудоемкий участок кода — библиотеки кодирования-декодиро- вания — и сразу был виден значительный прирост скорости. Конечно, данные наборы инструкций можно применять и в программах научных расчетов, однако это сопряжено с большими сложностями по оптимизации кода. Да и первые наборы SIMDинструкций умели работать только с целочисленными данными, поэтому их применение было ограничено.
В архитектуре процессоров, использующих технологию ММХ, есть два основных усовершенствования. Первое, фундаментальное, состоит в том, что все микросхемы ММХ имеют больший внутренний встроенный кэш, чем их собратья, не имеющие ММХ. Это повышает эффективность выполнения каждой программы и всего программного обеспечения независимо от того, использует ли оно фактически команды ММХ. Другое усовершенствование ММХ состоит в расширении набора команд процессора 57 новыми командами, позволяющими обрабатывать множественный поток данных. Спецификация MMX определяла так же новые, 64-битные типы данных:
•Packed byte, 8 bytes packed into 64 bits.
•Packed word, 4 words packed into 64 bits.
•Packed doubleword, 2 doublewords packed into 64 bits.
•Packed quadword, 64 bits
и57 новых инструкций, выполняемых над ними в новых, 64битных регистрах процессора.
22
Всовременных мультимедийных и сетевых приложениях часто используются циклы; хотя они занимают около 10 % (или даже меньше) объема полного кода приложения, на их выполнение может уйти до 90 % общего времени выполнения. SIMD позволяет одной командой описать операцию над большим объемом данных. Технология SIMD позволяет ускорить выполнение циклов при обработке аудио-, видео-, графических и анимационных файлов; в противном случае эти циклы отнимали бы время у процессора.
Вкомпьютерах пятого поколения MMХ-процессоры выпускались только фирмой Intel (Pentium MMX), сейчас чипы фирмы IDT (WinChip) также имеет поддержку технологии MMX. Шестое поколение выглядит по-другому. Процессор Pentium Pro, с которого оно началось, MMX не имеет. И впервые в истории фирма AMD, а не Intel, первая выпустила процессор этого поколения с MMX — процессор K6. Через некоторое время после этого был представлен и Pentium II фирмы Intel, также имеющий MMX. После чего Pentium Pro был снят с производства, а все ныне производимые процессоры этого поколения имеют MMX. Микропроцессоры фирмы Cyrix — 6x86MX и M-II также содержат поддержку MMX.
Технология 3DNow! (AMD). Технология MMX была разработана преимущественно для того, чтобы улучшить выполнение мультимедийных приложений, основывающихся на целочисленных операциях, что делает эту технологию недостаточной для эффективной работы с трехмерной графикой, интенсивно использующей операции с плавающей точкой. Широкое распространение приложений с 3D-графикой потребовало и более мощных процессоров для ускорения обработки трехмерных элементов.
Впроцессор AMD K6-2 впервые вошел блок под названием 3DNow! — следующий шаг после MMX, который позволяет в Multimedia, 3D и некоторых других задачах опередить Pentium II той же частоты в 3—4 раза, при условии, что программное обеспечение поддерживает это расширение. Кроме поддержки всех расширений MMX она включала 21 новую команду для работы с вещественными числами одинарной точности (single precision). При этом использовались те же дополнительные восемь 64-битных регистров, что и у Pentium MMX.
23
Преимущества технологии 3DNow! заключаются в повышении производительности при обработке трехмерных графических объектов, более реалистичном и жизненном их отображении. Кроме того, к преимуществам технологии 3DNow! следует отнести полноэкранное видео, звук и, конечно, превосходные возможности для работы в Internet.
Intel выпустил версии Pentium II и Celeron с таким же расширением, которое он называет MMX2.
Потоковое расширение SSE (Intel). Позже, в 1999 г., с про-
цессорами Intel Pentium III был объявлен набор SSE, добавляющий к MMX еще 70 новых инструкций и возможность работать с вещественными данными одинарной точности (single precision). В основном новые инструкции были направлены на работу с потоковыми данными, отсюда и произошло название SSE — Streaming SIMD Extensions. Кроме того, было добавлено еще восемь 128-битных регистров.
Enhanced 3DNow! (AMD). В процессоре AMD Athlon ком-
пания реализовала еще 24 новые инструкции; получившийся набор был назван Enhanced 3DNow! Новые инструкции включали 19 команд для улучшения целочисленной арифметики MMX и дополнительных возможностей перемещения потоковых данных,
а также 5 инструкций класса digital signal processing (DSP) для приложений типа программных модемов, Dolby Digital и обработки MP3.
В свой процессор Athlon MP специалисты компании AMD добавили и поддержку технологии SSE, а получившаяся комбинация из Enhanced 3DNow! и SSE была названа 3DNow!
Professional.
Потоковое расширение SSE2 (Intel). С созданием нового процессора Pentium 4 в 2000 г. Intel объявил о дальнейшем расширении набора SIMD в своих процессорах — Pentium 4 поддерживает набор инструкций SSE2, позволяющий теперь выполнять блочные операции над данными двойной точности (double precision). Ну и, конечно, увеличилось количество команд — еще на 144.
Для современных процессоров картина с поддержкой SIMDинструкций выглядит следующим образом, как показано в табл. 1.3.
24
Таблица 1.3
Processor |
MMX |
SSE |
SSE2 |
3DNow! |
Intel Pentioum III |
√ |
√ |
|
|
Intel Pentioum 4 |
√ |
√ |
√ |
|
AMD Athlon |
√ |
|
|
√ |
AMD Athlon MP |
√ |
√ |
|
√ |
1.1.8Шестидесятичетырехразрядные приложения
AMD64 и EM64T
Шестидесятичетырехразрядные технологии AMD64 и EM64T позволяют работать с 64-битными приложениями и 64-битными процессорами с возможностью линейной адресации более 4 Гбайт памяти и более высокой производительности, обеспечиваемой увеличением количества регистров общего назначения и их разрядности.
|
|
63 |
|
31 |
15 |
7 |
|
0 |
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
RAX |
|
EAX |
|
|
AH |
|
AL |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
127 |
0 |
|
|
|
79 |
|
|
|
0 |
|||||||
|
|
|
|
|
|
|
X |
|
|
|
|
|
|
|
|
|
S |
|
XMM0 |
|
G |
|
EAX |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8 |
|
|
|
|
|
|
|
|
|
||
S |
|
|
|
P |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7 |
|
|
|
|
|
|
|
|
|
||
E |
|
|
|
R |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
& |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
S |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
S |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
E |
|
XMM7 |
|
|
|
EDI |
|
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
XMM8 |
|
|
|
R8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
Program |
|||||||
|
|
|
|
|
|
|
|
|
Counter |
|||||||
|
|
|
|
|
|
|
63 |
31 |
0 |
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
XMM15 |
|
|
|
R15 |
|
|
|
|
|
|
EIP |
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Рис. 1.1 — Шестидесятичетырехразрядное расширение EM64T