Тестирование производительности. Голая производительность - Исследуем эффективность ALU и FPU Что такое тест fpu

AIDA64 содержит несколько тестов, которые можно использовать для оценки производительности отдельных частей оборудования или системы в целом. Это синтетические тесты, то есть они могут оценить теоретическую максимальную производительность системы. Тесты пропускной способности памяти, центрального процессора или FPU-блоков основаны на многопотоковом механизме тестирования AIDA64, который поддерживает до 640 одновременных потоков обработки и 10 групп процессоров (начиная с версии AIDA64 Business 4.00). Данный механизм обеспечивает полную поддержку для мультипроцессоров (SMP), многоядерных и гиперпотоковых технологий.

Тестирование производительности кэша и дисков

AIDA64 предлагает также отдельные тесты для оценки пропускной способности считывания, записывания и копирования, а также задержки кэша процессора и системной памяти. Также существует отдельный тестовый модуль для оценки производительности накопительных устройств, в том числе жестких дисков (S)ATA или SCSI, RAID-массивов, оптических дисков, SSD-накопителей, USB-накопителей и карт памяти.

Тестирование производительности GPGPU

Данная тестовая панель, доступ к которой можно получить в разделе меню Сервис | Тест GPGPU, предлагает набор тестов производительности OpenCL GPGPU. Они разработаны для оценки вычислительной производительности GPGPU при помощи различных нагрузок OpenCL. Каждый отдельный тест можно выполнить максимум на 16 графических процессорах, включая процессоры AMD, Intel и NVIDIA, или их комбинации. Конечно же, полностью поддерживаются конфигурации CrossFire и SLI, а также dGPU и APU. В общем, данная функция позволяет протестировать производительность практически любого вычислительного устройства, которое представлено как графический процессор среди устройств OpenCL.

Кроме комплексных тестов производительности, AIDA64 предлагает специальные микротесты - их можно найти в разделе «Тесты» в меню «Страница». Благодаря исчерпывающей справочной базе данных результатов, результаты тестирования производительности можно сравнить с аналогичными показателями по другим конфигурациям. На данный момент доступны следующие микротесты:

Тестирование производительности памяти

Тесты производительности памяти оценивают максимально возможную пропускную способность при выполнении определенных операций (чтение, запись, копирование). Они написаны на языке ассемблера и максимально оптимизированы для всех популярных вариантов ядер процессоров AMD, Intel и VIA путем применения соответствующих расширений набора команд x86/x64, x87, MMX, MMX+, 3DNow!, SSE, SSE2, SSE4.1, AVX и AVX2.

Тест задержки памяти оценивает типичную задержку при считывании центральным процессором данных из системной памяти. Задержка памяти - это время для предоставления данных в регистре целочисленной арифметики центрального процессора после выдачи команды считывания.

CPU Queen

Этот простой целочисленный тест оценивает возможности предсказания ветвлений центрального процессора и ошибочного прогнозирования ветви. Он вычисляет решения для классической головоломки с восемью ферзями, размещенными на шахматной доске 10х10. Теоретически, при одинаковой тактовой частоте, процессор с более коротким конвейером и меньшими накладными расходами в случае ошибочного предположения о ветвлении может показать более высокие результаты теста. Например, если отключить гиперпотоковость, процессоры Pentium 4 на базе Intel Northwood получат более высокие баллы, чем центральные процессоры Intel Prescott, поскольку в первых присутствует 20-ступенчатый конвейер, а в последних - 31-ступенчатый. CPU Queen использует целочисленные оптимизации MMX, SSE2 и SSSE3.

CPU PhotoWorxx

Данный целочисленный тест оценивает производительность центрального процессора при помощи нескольких алгоритмов обработки двухмерных фотографий. Он выполняет следующие задачи c довольно крупных RGB-изображениях:

  • заполнение изображения пикселями случайно выбранного цвета;
  • поворот изображения на 90 градусов против часовой стрелки;
  • поворот изображения на 180 градусов;
  • дифференцирование изображения;
  • преобразование пространства цветов (используется, например, при преобразовании JPEG).

Тест, в основном, предназначен для блоков выполнения операций целочисленной арифметики SIMD-архитектуры центрального процессора и подсистем памяти. Тест CPU PhotoWorxx использует соответствующие расширения наборов команд x87, MMX, MMX+, 3DNow!, 3DNow!+, SSE, SSE2, SSSE3, SSE4.1, SSE4A, AVX, AVX2, и поддерживает NUMA, гиперпотоковость, мультипроцессоры (SMP) и многоядерность (CMP).

CPU ZLib

Данный целочисленный тест оценивает комбинированную производительность центрального процессора и подсистемы памяти при помощи свободной библиотеки для сжатия данных ZLib. ЦП ZLib использует только основные инструкции x86, но поддерживает гиперпотоковость, мультипроцессоры (SMP) и многоядерность (CMP).

CPU AES

Этот целочисленный тест оценивает производительность центрального процессора при выполнении шифрования по криптоалгоритму AES. В шифровании AES - это симметричный алгоритм блочного шифрования. Сегодня AES используется в нескольких инструментах сжатия, таких как 7z, RAR, WinZip, а также в программах шифрования BitLocker, FileVault (Mac OS X), TrueCrypt. CPU AES использует соответствующие инструкции x86, MMX и SSE4.1, он является аппаратно ускоренным на процессорах VIA C3, VIA C7, VIA Nano и VIA QuadCore, поддерживающих технологию VIA PadLock Security Engine, а также на процессорах, поддерживающих расширение наборов команд Intel AES-NI. Данный тест поддерживает гиперпотоковость, мультипроцессоры (SMP) и многоядерность (CMP).

CPU Hash

Этот целочисленный тест оценивает производительность центрального процессора при выполнении алгоритма кэширования SHA1 согласно Федеральному стандарту обработки информации 180-4. Код для этого теста написан на языке ассемблера, он оптимизирован для большинства популярных вариантов ядер процессоров AMD, Intel и VIA путем применения соответствующих расширений набора команд MMX, MMX+/SSE, SSE2, SSSE3, AVX, AVX2, XOP, BMI и BMI2. Тест CPU Hash является аппаратно ускоренным на процессорах VIA C7, VIA Nano и VIA QuadCore, поддерживающих технологию VIA PadLock Security Engine.

FPU VP8

Этот тест измеряет производительность сжатия видео кодеком Google VP8 (WebM) версии 1.1.0. Происходит кодирование за 1 проход видеопотока с разрешением 1280x720 («HD ready ») и скоростью 8192 кбит/с при максимальных настройках качества. Содержимое кадров генерируется модулем фракталов Жюлиа FPU. Программный код теста использует расширения и наборы команд MMX, SSE2, SSSE3 или SSE4.1, а также поддерживает гиперпотоковость, мультипроцессоры (SMP) и многоядерность (CMP).

FPU Julia

Этот тест оценивает производительность в операциях одинарной точности с плавающей запятой (32-битная точность) посредством вычислений нескольких фрагментов фрактала Жюлиа. Код для этого теста написан на языке ассемблера, он оптимизирован для большинства популярных вариантов ядер процессоров AMD, Intel и VIA путем применения соответствующих расширений набора команд x87, 3DNow!, 3DNow!+, SSE, AVX, AVX2, FMA и FMA4. FPU Julia поддерживает гиперпотоковость, мультипроцессоры (SMP) и многоядерность (CMP).

FPU Mandel

Этот тест оценивает производительность в операциях двойной точности с плавающей запятой (64-битная точность) путем моделирования нескольких фрагментов фрактала Мандельброта. Код для этого теста написан на языке ассемблера, он оптимизирован для большинства популярных вариантов ядер процессоров AMD, Intel и VIA путем применения соответствующих расширений набора команд x87, SSE2, AVX, AVX2, FMA и FMA4. FPU Mandel поддерживает гиперпотоковость, мультипроцессоры (SMP) и многоядерность (CMP).

FPU SinJulia

Тест оценивает производительность в операциях повышенной точности с плавающей запятой (80-битная точность) посредством вычислений по каждому отдельному кадру с использованием модифицированного фрактала Жюлиа. Код для этого теста написан на языке ассемблера, он оптимизирован для большинства популярных вариантов ядер процессоров AMD, Intel и VIA, позволяет использовать тригонометрические и экспоненциальные инструкции архитектуры x87. FPU SinJulia поддерживает гиперпотоковость, мультипроцессоры (SMP) и многоядерность (CMP).

floating point unit (FPU) ) - часть процессора для выполнения широкого спектра математических операций над вещественными числами .

Сопроцессоры Intel семейства x86

Для процессоров семейства x86 с / по модуль операций с плавающей запятой был выделен в отдельную микросхему, называемую математическим сопроцессором . Для установки сопроцессора на плате компьютера предусматривался отдельный разъём.

Сопроцессор не является полноценным процессором, так как не умеет делать многих необходимых для этого операций (например, не умеет работать с программой и вычислять адреса памяти), являясь всего лишь придатком центрального процессора.

Одна из схем взаимодействия центрального процессора и сопроцессора, применяемая, в частности, в x86-сопроцессорах, реализуется следующим образом:

Другие платформы

Аналогично, материнские платы ПК , построенных на процессорах Motorola , до разработки этой фирмой процессора MC68040 (в который сопроцессор был встроен) содержали математический сопроцессор. Как правило, в качестве FPU использовался сопроцессор 68881 16 МГц или 68882 25 МГц. Практически любой современный процессор имеет встроенный сопроцессор.

Компания Weitek также выпускала математические сопроцессоры для платформ и MIPS .

Устройство FPU

Регистры FPU организованы не в виде массива, как в некоторых других архитектурах, а как регистровый стек . Таким образом, FPU представляет собой стековый калькулятор , работающий по принципу обратной польской записи . Это означает, что команды всегда используют верхнее значение в стеке для проведения операций, а доступ к другим хранящимся значениям обычно обеспечивается в результате манипуляций со стеком. Однако при работе с вершиной стека одновременно могут использоваться и другие элементы стека, для доступа к которым применяется прямая адресация относительно вершины стека. Также в операциях могут использоваться значения, хранящиеся в оперативной памяти. Обычная последовательность действий выглядит следующим образом. Перед операцией аргументы помещаются в LIFO -стек ; при выполнении операции необходимое количество аргументов снимается со стека. Результат операции помещается в стек, где может быть использован в дальнейших вычислениях или снят со стека для записи в память. Хотя стековая организация регистров FPU получается и удобной для программистов, она усложняет задачу построения эффективного кода компиляторами.

Особенности использования

После появления расширения 3DNow! от AMD и затем SSE , начиная с процессоров Pentium III компании Intel , вычисления с одинарной точностью стало возможным проводить без помощи инструкций FPU, причём с возросшей производительностью. Расширение SSE2 и более поздние расширения системы команд обеспечили также быстрое выполнение расчётов с двойной точностью (см. стандарт IEEE-754). В связи с этим в современных компьютерах потребность в командах классического математического сопроцессора значительно уменьшилась. Тем не менее, во всех выпускаемых x86-процессорах они по-прежнему поддерживаются для совместимости со старыми приложениями, а также для нужд тех приложений, где требуются двоично-десятичные преобразования или вычисления с расширенной точностью (когда двойной точности недостаточно). В настоящее время использование команд x87 остаётся наиболее эффективным способом ведения таких расчётов.

Форматы данных

Внутри FPU числа хранятся в 80-битном формате с плавающей запятой (расширенная точность), для записи же или чтения из памяти могут использоваться:

  • Вещественные числа в трёх форматах: коротком (32 бита), длинном (64 бита) и расширенном (80 бит).
  • Двоичные целые числа в трёх форматах: 16, 32 и 64 бита.
  • Упакованные целые десятичные числа (BCD) числа - длина максимального числа составляет 18 упакованных десятичных цифр (72 бита).

FPU также поддерживает специальные численные значения:

  • Денормализованные вещественные числа - числа, которые по абсолютной величине меньше минимального нормализованного числа. При формировании такого значения в некотором регистре стека в соответствующем этому регистру теге регистра TWR формируется специальное значение 10. Признаком денормализованного числа в его двоичном представлении служит нулевое поле порядка.
  • Бесконечность (положительная и отрицательная), возникает при делении на нуль ненулевого значения, а также при переполнениях. При формировании такого значения в некотором регистре стека в соответствующем этому регистру теге регистра TWR формируется специальное значение 10.
  • нечисло (англ. not-a-number (NaN) ). Различают два вида нечисел:
    • SNaN (Signaling Non a Number) - сигнальные нечисла. Сопроцессор реагирует на появление этого числа в регистре стека возбуждением исключения недействительной операции. Сопроцессор не формирует сигнальных чисел. Программисты формируют такие числа преднамеренно, чтобы возбудить в нужной ситуации исключение.
    • QNaN (Quiet Non a Number) - спокойные (тихие) нечисла. Сопроцессор может формировать спокойные нечисла в качестве реакции на определённые исключения, например, число вещественной неопределённости.
  • Нуль (положительный и отрицательный). Хотя с точки зрения формата с плавающей запятой нуль может считаться специальным значением, он в то же время является частным случаем денормализованного числа .
  • Неопределённости и неподдерживаемые форматы. Существует много битовых наборов, которые можно представить в расширенном формате вещественного числа. Для большинства их значений формируется исключение недействительной операции.

Регистры

В FPU можно выделить три группы регистров:

  • Стек процессора: регистры R0..R7. Размерность каждого регистра: 80 бит.
  • Служебные регистры
    • Регистр состояния процессора SWR (Status Word Register) - информация о текущем состоянии сопроцессора. Размерность: 16 бит.
    • Управляющий регистр сопроцессора CWR (Control Word Register) - управление режимами работы сопроцессора. Размерность: 16 бит.
    • Регистр слова тегов TWR (Tags Word Register) - контроль над регистрами R0..R7 (например, для определения возможности записи). Размерность: 16 бит.
  • Регистры указателей
    • Указатель данных DPR (Data Point Register). Размерность: 48 бит.
    • Указатель команд IPR (Instruction Point Register). Размерность: 48 бит.

Система команд сопроцессора

Система включает около 80 команд. Их классификация:

  • Команды передачи данных
    • Вещественные данные
    • Целочисленные данные
    • Десятичные данные
    • Загрузка констант (0, 1, число Пи, log 2 (10), log 2 (e), lg(2), ln(2))
    • Обмен
    • Условная пересылка (Pentium II/III)
  • Команды сравнения данных
    • Вещественные данные
    • Целочисленные данные
    • Анализ
    • С нулём
    • Условное сравнение (Pentium II/III)
  • Арифметические команды
    • Вещественные данные: сложение, вычитание, умножение, деление
    • Целочисленные данные: сложение, вычитание, умножение, деление
    • Вспомогательные арифметические команды (квадратный корень, модуль, изменение знака, выделение порядка и мантиссы)
  • Трансцендентные команды
    • Тригонометрия: синус, косинус, тангенс, арктангенс
    • Вычисление логарифмов и степеней
  • Команды управления
    • Инициализация сопроцессора
    • Работа со средой
    • Работа со стеком
    • Переключение режимов

Всем привет Сегодня моя задача состоит в том чтобы написать вам значение такого слова как FPU, ну вернее это даже не слово, а аббревиатура. И расшифровывается она как Floating Point Unit и знаете что это такое? Это блок, производящий операции с плавающей точкой, ну типа с запятой. Также можно сказать что это математический сопроцессор.

FPU помогает процессору (CPU) выполнять математические операции. Раньше, ну очень и очень давно FPU был отдельно, а уже потом в 1989-ом году он стал частью процессора. Хотя все равно все это древность.

Вот нашел картинку в тему, что тут показано, то это конечно я не особо понимаю:

Однако меня удивляет то, что я раньше не слышал про FPU, учитывая тот факт, что такие слова как Northwood и Prescott (они на картинке выше написано), то эти слова мне хорошо знакомы: это ядра процессоров Pentium 4. Я просто в прошлом был большой фанат Pentium 4..

Ладно, вот что еще интересного я узнал. Знаете есть программа под названием AIDA64? Ну это программа для того чтобы узнать температуру процессора, видеокарты, да в общем всего что только можно. Ну так вот, в этой программе также есть стресс-тест, можно протестировать компьютер на выносливость так бы сказать. Ну так вот, если этот тест запустить, ну то есть открыть окно теста, то вот там будет перечень того, что будет протестировано, ну и вот среди этих галочек тут есть также такое как Stress FPU:


Ну я так понимаю, что FPU это и есть математический сопроцессор, верно? Хотя не знаю, бред это или нет, но вот на другом сайте написано что FPU в AIDA64 это тест вентиляторов для охлаждения, ну которые стоят в компьютере… Но вроде это неверная информация, думаю что FPU это все таки сопроцессор

Вот нашел плату, смотрите:


Честно скажу, что я не знаю где именно, но тут вроде как есть сопроцессор FPU Intel 287-10, то есть он идет вроде как отдельно. Но где именно находится, то точно не могу сказать, увы. В любом случае все это сильная древность. Сейчас FPU уже сидит в самом проце и вообще о нем мало кто знает, ибо не особо интересно Однако я вот о чем подумал, а на производительность он влияет как-то?

Но лучше еще до появления первых проблем сразу проверить стабильность компьютера и выяснить, а не умирает ли у него что-то из железок?

Запускаем и выбираем в окне программы "Сервис" - "Тест стабильности системы ".

Перед собой, собственно, видим следующее:

На верхнем графике показаны температуры компонентов компьютера. Поставив, или убрав, галочку можно включать и отключать отображение на графике температуры любого составляющего. Соответственно, если Вы наверняка знаете, что у Вас в ходе работы не перегревается , то просто снимите галочку с него дабы не захламлять график лишней информацией. Там же, над первым графиком, можно переключаться по вкладкам, которые выводят прочую информацию (скорость вращения кулеров, вольтаж и пр.). Наиболее ценная вкладка там последняя ибо на ней, в наглядной таблице (где записаны минимум и максимум любого параметра), указана вся (температуры, вольтажи и пр.) статистика, собираемая в ходе тестирования.

Если есть какие-то вопросы, то я, как обычно, буду рад ответить на них в комментариях или с помощью .