Рабочая схема модуля вычислений с плавающей точкой
Рис. 4.17.
Integer, MMX- и 3DNow! - инструкции передаются по двум независимым шинам — Register X Issue Bus и Register Y Issue Bus. При этом блоки Integer X ALU и MMX ALU (X) подключены только к шине Register X Issue Bus, a Integer Y ALU и MMX ALU (У) — только к шине Register Y Issue Bus. А вот блоки MMX/3DNow! Multiplier и 3DNow! ALU подключены сразу к обеим шинам, как и блок MMX Shifter, функция которого заключается в том, чтобы переключать блоки MMX/3DNow! Multiplier и 3DNow! ALU между шинами.
Модуль предсказания переходов (Branch Logic). Назначение этого модуля, как следует из его названия, состоит в предсказании возможных переходов.
Во всех "старых процессорах AMD, Модуль вычислений с плавающей точкой был неконвейерным, что не позволяло начать выполнять новую команду пока не закончиться выполнение предыдущей. Это приводит к сильному падению производительности всей системы. До сих пор разработчики AMD не вносили никаких изменений в FPU, рассчитывая на свой блок 3Dnow!
в Athlone AMD (рис. 4.17) впервые представляет новый, полностью конвейерный FPU модуль, позволяюший выполнять до трех операций за такт.
Обратите внимание на три вычислительных блока и на то, как модули Stack Map, Registry Rename, Scheduler с 36 входами и FPU Register File с 88 входами позволяют разделить вычисления между ними (рис. 4.18).
FPU в процессорах Pentium III и Celeron разделен на два модуля FADD и FMUL; первый, полностью конвейерный, выполняет простые вычисления, в то время как второй выполняет более сложные вычисления и не полностью конвейерный. Естественно, что наличие трех, полностью конвейерных модулей, вместо двух, из которых только один
полностью конвейерный, позволяет получить лучшую производительность в приложениях, активно использующих вычисления вещественных чисел.
По сравнению с FPU, целочисленные модули AMD всегда были достаточно производительными, но, несмотря на это, в Athlon произошли некоторые изменения.
В новом блоке целочисленных вычислений используется три конвейерных модуля, способных выполнять три операции одновременно. Глубина этих конвейерных модулей составляет 10 шагов, что, по словам AMD, является самым оптимальным.
Блок 3DNow! также претерпел ряд изменений. 19 новых SIMD инструкций были добавлены к оригинальному 3Dnow!, чтобы увеличить производительность целочисленных и вещественных операций. Также добавлены пять новых DSP инструкций предназначенных для использования в мультимедиа приложениях (МРЗ, АСЗ, Mpeg2 encoding и decoding). Используя расширенный набор 3Dnow! Инструкций, можно получить до 20% прироста производительности по сравнению с стандартным набором и около 50% по сравнению с приложениями, не использующими 3Dnow!
Одной из интересных особенностей нового процессора является применение новой архитектуры системной шины — EV6. Такая же архитектура применяется в системах на процессорах Alpha. Применение EV6 связано с желанием AMD использовать Athlon в производительных многопроцессорных системах.
Сравнение EV6 и GTL+ (Pentium III и Celeron) показывает, что первая архитектура использует технологию Point to Point, в которой каждый процессор имеет свою отдельную часть шины, в то время, как в GTL+ процессоры должны делить одну "широкую" шину. Это объясняет, почему многопроцессорные системы на GTL+ шине очень трудно найти. EV6 поддерживает до 14 процессоров, но пока самые оптимальные теоретические расчеты предлагают использовать не более восьми процессоров.