» » Что такое fpu в компьютере. Что такое FPU. Тестирование качества работы GPGPU

Что такое fpu в компьютере. Что такое FPU. Тестирование качества работы GPGPU

Быстрый процессор - это великолепно! Однако факторов, влияющих на быстродействие процессора, достаточно много. Попадаются люди, которые меряют скорость исключительно в гигагерцах - чем больше, тем лучше. Те, кто поопытнее, обычно оценивают производительность процессора либо по специальным тестам, либо по тому, как он справляется с обработкой информации в реальных приложениях, требующих больших объемов вычислений (3D-графика, сжатие видеофильмов и т.п.). С учетом того, что большинство современных приложений и игр требуют огромного количества вычислений именно над вещественными числами (числа с плавающей точкой), то общая производительность процессора зависит от того, насколько быстро он их обрабатывает. Для этих целей в процессоре существует специальный модуль, получивший название Floating-Point Unit (FPU) - модуль вычислений с плавающей точкой. В то же время производительность этого модуля зависит не только от рабочей частоты процессора, но и от его конструктивных особенностей.

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

Отметим, что при работе с вещественными числами существует тот же нюанс, что и в целочисленных операциях - команда не может быть выполнена за один такт ядра процессора (смотрите статью "Зачем процессору конвейер", "КВ" № /2003). И если в 486-х процессорах для обработки целочисленных команд уже начал использоваться пятиступенчатый конвейер, то FPU был по-прежнему не конвейерного типа, т.е. следующая команда с плавающей точкой всегда должна была дожидаться выполнения предыдущей. Это существенно тормозило работу процессора с мультимедийными приложениями. А последние в то время уже начали стремительно набирать обороты в своих "запросах". Поэтому вполне естественно, что Intel, начиная с процессоров Pentium, стала применять конвейер не только в целочисленных, но и в вещественных операциях. Корпорация AMD, в свою очередь, пошла по несколько иному пути - вместо конвейеризации FPU она начала внедрять в свою продукцию технологию 3DNow!, которая также была направлена на повышение производительности в операциях с вещественными числами. Эта технология столкнулась с множеством проблем в своей реализации. Думаю, многие помнят, как AMD K6-2, призванный конкурировать с Pentium II в целочисленных операциях, на процентов тридцать отставал от него в обработке вещественных чисел.

Но, как говорится, на ошибках учатся, поэтому в Athlon"ах и последующих процессорах корпорация AMD перешла на конвейерный тип FPU. Более того, в новых процессорах AMD применила в модуле вычислений с плавающей точкой не только суперконвейеризацию, но и суперскалярность - в одном процессоре стало располагаться, грубо говоря, три модуля FPU, каждый из которых принимает участие в вычислениях с плавающей точкой. Другими словами, с выходом процессоров Athlon/

AIDA64 – это многофункциональная программа для определения характеристик компьютера, проведения различных тестов, которые могут показать, насколько система работает стабильно, можно ли разогнать процессор и т.д. Является отличным решением для проведения теста на стабильность работы малопроизводительных систем.

Тест на стабильность системы подразумевает нагрузки на каждый её элемент (ЦП, ОЗУ, диски и т.д.). С его помощью можно обнаружить неисправность того или иного компонента и вовремя применить меры.

Если у вас слабый компьютер, то перед проведением теста нужно посмотреть, не перегревается ли процессор при обычной нагрузке. Нормальная температура для ядер процессора в обычной нагрузке составляет 40-45 градусов. Если температура выше, то рекомендуется либо отказаться от тестирования, либо проводить его с осторожностью.

Данные ограничения обусловлены тем, что во время теста, процессор испытывает повышенные нагрузки, из-за чего (при условии, что ЦП перегревается даже в режиме обычной работы) температуры могут достигать критических значений в 90 и более градусов, что уже опасно для целостности самого процессора, материнской платы и компонентов, расположенных рядом.

Тестирование системы

Для того, чтобы начать тест на стабильность в AIDA64, в верхнем меню найдите пункт «Сервис» (находится в левой части). Нажмите по нему и в выпавшем меню найдите «Тест на стабильность системы» .

Откроется отдельное окно, где будут находиться два графика, несколько пунктов на выбор и определённые кнопки в нижней панели. Обратите внимание на пункты, которые расположены сверху. Рассмотрим каждый из них подробнее:


Вы можете отметить их все, но в этом случае есть риск перегрузки системы, если та очень слабая. Перегрузка может повлечь за собой аварийную перезагрузку ПК, и это только в лучшем случае. При отметке сразу нескольких пунктов на графиках будет выводиться сразу несколько параметров, что делает работу с ними достаточно затруднительной, так как график будет засорён информацией.

Желательно изначально выбрать первые три пункта и провести тест по ним, а затем по последним двум. В этом случае будет меньше нагрузки на систему и графики будут более понятными. Однако если требуется полноценный тест системы, то придётся отметить все пункты.

Внизу расположены два графика. В первом показывается температура процессора. При помощи специальных пунктов можно просмотреть среднюю температуру по всему процессору или по отдельному ядру, также можно вывести все данные на один график. Второй график показывает процент нагрузки на процессор – CPU Usage . Ещё там есть такой пункт, как CPU Throttling . При нормальной работе системы показатели данного пункта не должны превышать 0%. Если идёт превышение, значит, нужно прекращать тестирование и искать проблему в процессоре. Если значение дойдёт до 100%, то программа сама завершит работу, но, скорее всего, компьютер к этому времени уже сам перезагрузится.

Над графиками имеется специальное меню, при помощи которого можно просмотреть другие графики, например, напряжение и частоту процессора. В разделе Statistics можно увидеть краткую сводку по каждому из компонентов.

Для начала теста отметьте элементы, которые нужно протестировать в верхней части экрана. После чего нажмите на «Start» в нижней левой части окна. На тестирование желательно выделять около 30 минут.

Во время теста в окне, расположенном напротив пунктов для выбора вариантов, можно видеть обнаруженные ошибки и время их обнаружения. Пока будет идти тест, посматривайте на графики. При повышении температуры и/или при возрастающем проценте CPU Throttling немедленно прекращайте тестирование.

Для завершения нажмите на кнопку «Stop» . Можете сохранить результаты при помощи «Save» . Если обнаружено более 5 ошибок, то значит с компьютером не всё в порядке и их нужно немедленно исправить. К каждой обнаруженной ошибке присваивается имя того теста, в ходе которого та была обнаружена, например, Stress CPU .

    AIDA64EXTREME

    Тип лицензии :

    Крякнутая

    Языки :

    Windows 8, 8 64-bit, 7, 7 64-bit, Vista, Vista 64-bit, XP, XP 64-bit

    Скачано :

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

AIDA64 предполагает наличие несколько тестов, используемых для определения производительности отдельных агрегатов оборудования или полной системы в целом. Такие тесты относят к разряду синтетических, способных оценить теоретическую наивысшую производительность системы. Тестирование пропускных возможностей памяти, самого центрального процессора или же FPU-блоков происходит на базе системы тестирования AIDA64, способной поддерживать до 640 потоков обработки одновременно, а также десяток групп процессора. Осуществляется поддержка гиперпотоковых и мнгоядерных технологий, также мультипроцессоров - SMP.

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

Тестирование качества работы GPGPU

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

AIDA64 проводит не только комплексные тесты, но и микротесты, которые есть в разделах "Тесты"/ "Страница". За счёт полной базы данных показатели можно сравнивать с аналогичными по другим конфигурациям.

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

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

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

Целочисленный тест CPU Queen

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

CPU PhotoWorxx

Представленный целочисленный тест даёт возможность установить производительность процессора на основе алгоритмов обработки двухмерных фото. С довольно крупными изображение RGB происходит следующее:

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

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

CPU ZLib

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

CPU AES

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

CPU Hash

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

FPU VP8

Данный тест проводит анализ сжатия видео кодеком Google VP8 (WebM) по версии 1.1.0. Осуществляется кодировка за 1 проход видеопотока, имеющего расширение 1280x720 и идущего со скоростью 8192 кбит/с (с учётом максимально настроенного качества). Составляющие кадров генерируются при помощи модуля фракталов Жюлиа FPU. Здесь применяется следующие расширения и наборы команд: MMX, SSE2, SSSE3 или SSE4.1. Тут также поддерживается мультипроцессоры (SMP), многоядерность (CMP) и гиперпотоковость.

FPU Julia

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

FPU Mandel

Операции двойной точности с плавающей запятой для 64-битной точности тестируют при помощи FPUMandel. Осуществляется моделирование частей фрактала Мандельброта. Язык тот же, процессоры такие же, поддержка, как и в предыдущих тестах. Набор команд: FMA и FMA4, x87, SSE2, AVX, AVX2,

FPU SinJulia

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

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

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

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

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

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

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)
  • Арифметические команды
    • Вещественные данные: сложение, вычитание, умножение, деление
    • Целочисленные данные: сложение, вычитание, умножение, деление
    • Вспомогательные арифметические команды (квадратный корень, модуль, изменение знака, выделение порядка и мантиссы)
  • Трансцендентные команды
    • Тригонометрия: синус, косинус, тангенс, арктангенс
    • Вычисление логарифмов и степеней
  • Команды управления
    • Инициализация сопроцессора
    • Работа со средой
    • Работа со стеком
    • Переключение режимов