Что такое тест fpu. Тестирование производительности

Быстрый процессор - это великолепно! Однако факторов, влияющих на быстродействие процессора, достаточно много. Попадаются люди, которые меряют скорость исключительно в гигагерцах - чем больше, тем лучше. Те, кто поопытнее, обычно оценивают производительность процессора либо по специальным тестам, либо по тому, как он справляется с обработкой информации в реальных приложениях, требующих больших объемов вычислений (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/

08.08.2012

Вплоть до появления процессоров Intel Core никто не задумывался над понятием "эффективность ядра", а ведь его значение оказалось значительно выше, нежели воспеваемых до этого частот и объема кэшей. Но как представить эффективность ядра в цифрах. Мы предлагаем вам один из вариантов, используя который можно с другого угла оценить производительность.

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

Благодаря чему тот или иной процессор демонстрирует соответствующую производительность? Этот вопрос терзал многих любителей и профессионалов от мира железа. Очень давно главным мерилом производительности являлась тактовая частота. Чуть позже внимание переключилось частоту передней шины, затем на объемы кэшей, а после на количество ядер. Но всегда стороной обходилось кое-что, что действительно напрямую влияло на скорость вычислений.

Это кое-что, несомненно, чистая производительность двух важнейших блоков современных x86 процессоров: блока целочисленных вычислений (ALU – Arithmetic Logic Unit) и блока вычислений с плавающей запятой (FPU – Floating-Point Unit). Именно общность их характеристик и определяет понятие архитектуры – и к кэшу или частоте данное понятие не имеет никакого отношения, в то время как на общую производительность процессора влияет напрямую.

Итак, перед тем как начнем большое исследование, давайте разберемся, что же это за блоки, чем они занимаются и как устроены. Как я уже сказал, в данном материале не идет речь о работе с памятью, кэшами и прочими дополнениями, говорить мы будем только об ALU и FPU, ну и естественно, о двух их важных составляющих – конвейерах и блоке предсказания ветвлений. Ну и немного поговорим о технологии Hyper-Threading от Intel, так она напрямую влияет на производительность ядра при выполнении простейших операций.

Блок целочисленных операций

Первый и основной блок процессора. Хотя, правильнее сказать не блок, а блоки, так как их в процессорах несколько. Грубо говоря, на заре развития, кроме этого блока в процессоре практически ничего и не было. Основная задача ALU, начиная с самых первых моделей и заканчивая современными монстрами, не изменилась. Он все также работает с простыми (целыми) числами, производя операции сложения, вычитания, сравнения, преобразования чисел; выполняет простейшие логические операции, а также битовые сдвиги.

Заметьте, что на ALU не возложены задачи умножения и деления, а все потому, что данные типы вычислений встречаются довольно редко, и как следствие для них выделили собственный блок – “целочисленный умножитель”, благодаря которому удалось поднять производительность ALU, избавив его от нестандартных задач. Операции деления также возложены на умножитель, и выполняются с помощью специальной таблицы констант. Вот такой, весьма простой блок, производительность которого напрямую влияет на производительность процессора во многих задачах, например офисных приложениях, многочисленных специфических программах для расчетов и.т.д.

Блок вычислений с плавающей запятой

Этот блок появился в процессорах гораздо позже, чем ALU, и первое время даже рассматривался как сопроцессор. Однако позже он все же мигрировал в ядро основного процессора и с тех пор является его неотъемлемой и очень важной частью (также как и в случае с ALU, данный блок в процессоре не один). Как ясно из его названия, основной задачей FPU является именно операции над числами с плавающей запятой.

С тех пор как данный блок появился в составе CPU, нагрузка на него все время росла, что в итоге привело к тому, что нагрузка на FPU чаще всего превышает нагрузку на ALU. Кроме того, учитывая высокую универсальность данного блока, на него постепенно “навешивали” дополнительные функции, в частности в данный момент именно он работает со всеми потоковыми разрешениями и занимается обработкой векторных данных, коих в современных процессорах уже очень много. От производительности этого блока зависит производительность процессора в абсолютном большинстве приложений, особенно в мультимедиа, играх, 3D работе с фотографиями и.т.д.

Конвейер

Известно, что каждая операция в процессоре требует определенного времени на обработку, и данных этих, без преувеличения, огромное количество. Чтобы оптимизировать работу с ними и упорядочив их выполнение, увеличить скорость работы, и был придуман конвейер.

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

Однако есть у конвейера и недостатки являющиеся следствием достоинств. Главный – это необходимость обнулять весь конвейер вследствие неожиданного изменения хода программы. Чаще всего, такое случается в случае использования в коде условных операторов, которые в зависимости от условий меняют дальнейшие данные и пути.

Есть и еще один важный момент: конвейеры разных процессоров имеют разное количество стадий. Плюс коротких конвейеров в том, что они позволяют достичь большей производительности при равной частоте, в то время как длинный конвейер способствует достижению большей тактовой частоты. Простой пример из жизни: процессоры AMD Athlon XP и Athlon 64 с архитектурами K7 и K8, соответственно, когда-то конкурировавшие с процессорами Intel Pentium 4 с архитектурой NetBurst. Как вы, наверное, помните, многие процессоры в данных линейках были очень близки между собой по производительности, но при этом категорически отличались по характеристикам. В частности, Athlon 64 3200+ при тактовой частоте 2200 мегагерц, чаще всего превосходил Pentium 4 с частотой 3200 мегагерц. Причина данного факта в разной длине конвейера: если AMD, традиционно, использовала короткий 12-стадийный, то Intel в Pentium 4 использовала гораздо более длинный 20-стадийный, а чуть позже и 31-стадийный! Отсюда и заметная разница в производительности.

Блок предсказания ветвлений (блок предсказания условных переходов)

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

Итак, чем же занимается этот блок? Все просто – он работает штатным ясновидящим процессора, то есть, превосходя события (читай расчеты ошибочной ветви данных), определяет, будет ли выполнен условный переход или нет. Естественно, никакого гадания на кофейной гуще нет. В данный момент основным и приоритетным, является динамический метод предсказания переходов, при котором блок предсказания ветвлений не только анализирует данные и инструкции, которые готовятся к обработке процессором, но еще анализирует историю аналогичных переходов, которую сам же и накапливает. Благодаря тому, что он постоянно отслеживает итоговый результат (угадал или нет), и сравнивает его со своим предсказанием, дополняя собственную статистику, эффективность предсказаний в аналогичных ситуациях в будущем значительно увеличивается. Из-за такой тактики, правильных предсказаний у данного блока гораздо больше, чем неправильных – современные процессоры от Intel и AMD в 95-97 случаях верно определяют направление условного перехода. Естественно, благодаря этому, обнуление конвейера происходит относительно редко.

Ну что же, небольшой ликбез по процессорам вы получили и теперь мы сможем рассмотреть, как же все это работает в реальности, насколько эффективна та или иная архитектура и как эффективны блоки ALU и FPU (и естественно, их вспомогательные блоки). Чтобы иметь возможность охватить как можно больший спектр процессорных ядер и одновременно минимизировать влияние на результаты тестов, таких немаловажных частей современных CPU как кэш, процессорная шина и пропускная способность подсистемы памяти, мы обратились к тестовому пакету AIDA 64. Причем из пакета были выбраны лишь два синтетических теста – CPU Queen и FPU SinJulia. Почему именно они? Ответ скрывается в самом принципе их функционирования и полном соответствии требованиям данного теста. Для того чтобы понять, как отражаются на результатах теста те или иные архитектурные особенности каждого теста, давайте заглянем в официальное описание:

CPU Queen

Простой целочисленный тест. Результат зависит, прежде всего, от производительности Блока Целочисленных Операций, но также очень чувствителен к эффективности Блока Предсказания Ветвлений, так как его код содержит множество условных переходов.

На равных тактовых частотах процессоров преимущество получит модель с более коротким конвейером и меньшим количеством ошибок предсказаний. В частности, при отключенном HyperThreading, процессор Pentium 4 на ядре Northwood получит более высокий результат, нежели модель с ядром Prescott, так как в первом случае используется более короткий 20-стадийный конвейер, против 31-стадийного во втором.

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

Тест CPU Queen использует потоковые расширения MMX и SSE, вплоть до версии SSSE3. Занимает менее 1 мегабайта в оперативной памяти. Поддерживает HyperThreading, многопроцессорные системы (SMP) и многоядерные процессоры.

Выбор данного теста продиктован, прежде всего, возможностью полностью искоренить влияние на результат подсистемы памяти и объема кэшей всех уровней. То есть получить результат работы именно ALU, поддерживаемого блоком предсказания ветвлений. Другие тесты из пакета ALU, хоть и незначительно, но все же ощущают влияние частоты и объема кэшей, а также пропускной способности процессорной шины и шины памяти. А в нашем случае, когда будут сравниваться десятки процессоров разных поколений, разница в производительности этих подсистем может достигать нескольких порядков. Например, в одну таблицу попадают: процессор Pentium III использующий память типа SDR-133 с шириной шины памяти в 64 бита, и Core i7 имеющий 192-битную шину памяти и работающий с памятью DDR3-1333.

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

FPU SinJulia

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

Как видите, FPU тест SinJulia также как и CPU Queen, полностью независима от производительности подсистемы памяти, а также частоты и объема кэшей процессоров. Более того, результат SinJulia будет объективен даже при сравнении древнего K6-III и современного Phenom II, благодаря тому, что тест не использует потоковые расширения типа MMX и SSE. Ну а высокая точность вычислений позволяет сделать вывод адекватный для современных задач возлагаемых на CPU.

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

результат теста/количество ядер/таковая частота

Поделив данные значения для каждого процессора, мы получили результат одного ядра на один такт. Учитывая описание тестов необходимо сделать несколько поправок. Первая: при наличии поддержки HyperThreading, процессор всегда получает больший результат. Вторая: процессоры, не поддерживающие SSE, будут демонстрировать меньший результат в тесте ALU, то есть CPU Queen. Благо в списке таких процессоров не много, фактически это лишь AMD K6-III.

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

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

Теперь давайте поговорим о том, как же мы все это протестировали. Если вы уже посмотрели на сводную таблицу, то, наверное, заметили, что в ней присутствует 61 процессор разных поколений. Конечно, не все из них были протестированы в нашей лаборатории, процессоров протестированных в нашей тестовой лаборатории лишь чуть больше трети. Значительная часть результатов была взята из базы данных самой программы AIDA 64 2.50, которая была единственным тестовым пакетом в данном сравнении. Естественно, слепо полагаться на приведенные результаты мы не стали. И перепроверили результаты их базы, проведя собственные тесты, для нескольких аналогичных процессоров. Результаты, если учитывать погрешность на опорную частоту и соответственно разницу в таковых частотах, порадовали, продемонстрировав практически полную аналогичность. А потому мы без сомнения свели результаты из базы программы с собственными результатами в одну таблицу.

Здесь также стоит отметить, что в разных версиях AIDA, подсчет результатов может быть неодинаковым, а потому они не подлежат сравнению. В нашем случае все результаты получены только в версии 2.50.

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

Учитывая, что эффективность блоков FPU и ALU может сильно разница, вас не должны удивлять моменты, в которых один и тот же процессор имеет прекрасную производительность при работе с целочисленными данными, но при этом значительно хуже работает с данными с плавающей запятой. Хотя, бывает и наоборот. Перед тем как начать повествование, хотелось бы заметить, что очередность в моем описании будет идти по временной линии, в то время как в таблице результаты упорядочены по абсолютному результату теста ALU.

Первыми и самыми старыми процессорами в данном списке будут модели AMD K6-III на ядре Sharptooth и Pentium III на ядре Katmai. Эти процессоры имеют довольно короткий по нынешним временам конвейер – всего 12 ступеней у Intel и минимальные 6 ступеней у AMD. Благодаря этому, последнему практически не нужен блок предсказания ветвлений, так как ошибки связанные с неверным выбором пути не будут столь значительно влиять на результат, как в процессоре Pentium. Собственно такого в данном процессоре и не было, а вот в процессоре Intel был, и хоть по современным меркам его эффективность невысока, но механизмы анализа те же что и в современных процессорах. Как результат, в тесте ALU более высокий результат, за счет короткого конвейера имеет AMD K6-III. Его результат 2.03 ед./такт против 1.93 у конкурента. И это несмотря на то, что процессоры AMD данного поколения не имели поддержки потоковых расширений SSE! В то же время, в тесте FPU впереди, во многом благодаря блоку предсказания ветвлений, уже Pentium III с результатом 0.164 ед./такт против 0.128 у представителя архитектуры K6.


Pentium III отличался отменной эффективностью. Конкурировать с ним по этому параметру с переменным успехом мог только Athlon

Появившиеся позже очень удачные ядра Coppermine и Tualatin процессоров Pentium III сохранили архитектуру Katmai без изменений, а потому результаты двух процессоров: Celeron 700 и Pentium III 1333 аналогичны тем, что мы уже видели. А вот, AMD, ко времени выхода этих процессоров уже успело отказаться от архитектуры K6, так как она из-за очень короткого конвейера не позволяло достичь частот выше 550 мегагерц. В итоге новая архитектура K7 получила более длинный – 10-стадийный конвейер, и много дополнительных функций и изменений, которые принесли заметное улучшение производительности. Главным нововведением, и самым важным в рамках данного материала стало появление блока предсказания ветвлений. Однако превзойти по производительности блоков ALU, процессоры Pentium III, новинкам, получившим собственное имя Athlon, не удалось. Зато эффективность FPU значительно выросла: по этому параметру AMD K7 Athlon заметно превзошли K6 и сравнялись с конкурентами, продемонстрировав результат на уровне 0.163 ед./такт. А вот более длинный конвейер значительно снизил эффективность блока ALU – до 1.58 ед./такт, то есть почти на 25 процентов относительно K6. В прочем, это было оправданно, так как FPU в большинстве приложений на тот момент был важнее, да и более высокая частота, которой в итоге удалось достичь, покрыла данные потери с лихвой.

Переход AMD Athlon на ядро Thunderbird, никак не изменил расстановку сил и эффективность на такт, ведь данное ядро имеет ту же архитектуру. Зато, вскоре после них на рынке появились первые процессоры Pentium 4 построенные на совершенно новой архитектуре NetBurst. Быть может с точки зрения маркетинга и продаж данные процессоры были безусловным успехом, но с точки зрения инженерии и эффективности – худшей архитектуры в истории не было.


Pentium 4 на ядре Willamette. Один из первых процессоров основанный на неудачной, но на удивление живучей, архитектуре Netburst.

Причина такова: погнавшись за большими мегагерцами, которых так хотели покупатели, инженеры Intel пошли на нетривиальный ход, дабы достичь более высоких частот, они значительно удлинили конвейер – до 20 стадий. Конечно, в гонке за мегагерцы, они сразу стали лидерами, однако производительность на такт упала очень ощутимо. Средний результат процессоров Pentium 4 на ядрах Willamette и Northwood в тесте ALU равен 1.02, а в FPU 0.108. Сравните с результатами Pentium III – разница колоссальна! Для того чтобы опередить процессоры предыдущего поколения по производительности, Pentium 4 была нужна значительно большая частота. То есть фактически, для того чтобы получить равную эффективность блоков ALU c самым старшим процессором семейства Pentium III работающего на частоте 1400 мегагерц, ядро Pentium 4 должно работать на частоте 2536 мегагерц! А для достижения того же результата в тесте FPU нужны 2111 мегагерца, что чуть меньше, но тоже совсем не мало. То есть, если усреднить результаты, то по эффективности примерное равенство будут иметь процессоры Pentium III 1400 и Pentium 4 2.4.

В то же самое время AMD не погналась за Intel в частотах, и, сохранив практически неизменной архитектуру K7, выпустила линейку процессоров Athlon XP, процессоры в которой маркировалась уже не частотой, а рейтингами со знаком “плюс”, которые демонстрировали эффективность относительно процессоров Pentium 4. То есть по задумке маркетологов AMD, процессор Athlon XP 1800+ должен конкурировать с Pentium 4 работающим на частоте 1800 мегагерц.

Проверим, насколько адекватным был такой подход, учитывая, что эффективность ядер Athlon XP находится на уровне 1.58 ед./такт в ALU и 0.163 ед./такт в FPU. При реальной частоте модели 1800+ равной 1533 мегагерца, результат в 2422 единицы в CPU Queen и 250 в FPU SinJulia. В то же самое время, результат Pentium 4 с частотой 1.8 гигагерца составит 1908 и 195 единиц, соответственно. Похоже, рейтинг даже занижен. Хотя не стоит забывать, что производительность в реальных приложениях может быть несколько иной, если учитывать другие характеристики процессоров, вроде кэшей, шин и прочего.

Удивительно, но горький опыт, так и не научил инженеров Intel ничему хорошему, и в очередной раз, упершись в невозможность увеличить частоту, они вновь идут на увеличение длины конвейера. Причем, не на пару ступеней, а весьма значительно – если ядро Northwood имело 20 ступеней, то в Prescott их стало 31. А это уже не просто длинный, а очень длинный конвейер. Да, конечно, благодаря данному изменению, порог максимальной тактовой частоты у новых ядер был выше, но выше было и тепловыделение.


Ядро Prescott стало дальнейшим ухудшением архитектуры Netburst в погоне за большими мегагерцами. Самое НЕэффетивное ядро Intel за всю историю.

Однако самым главным изменением, которое смогли оценить далеко не все, стало значительнейшее падение эффективности относительно предшественника, и хотя, появление технологии HyperThreading в некотором смысле спасло ситуацию, то процессоры его не использующие показали просто ужасающий уровень эффективности. Найдите в таблице процессоры Pentium D 820 и 925, а также Celeron D 326 и поймете, о чем я говорю. Результат на такт, продемонстрированный в тесте CPU Queen, составил скромнейшие 0.75 единицы, а FPU SinJulia оценила эффективность обновленной архитектуры NetBurst всего в 0.081 единиц. Падение производительности относительно ядер Willamette/Northwood составило примерно 30 процентов в ALU и до 40 процентов в FPU.

Сравнивать Prescott-256 и Smithfield с процессорами AMD K8 и вовсе бессмысленно. Так как новая архитектура получила лишь на две ступени более длинный конвейер, нежели K7, но при этом обзавелась значительно улучшенным, более эффективным блоком предсказания ветвлений. И как результат, ядра, основанные на новой архитектуре демонстрируют чуть более высокую эффективность работы ALU и FPU. Средний показатель теста CPU Queen вырос до 1.74 единиц, а FPU SinJulia остался на уровне предшественника. Как видите, не зря процессоры Athlon 64 и Sempron в свое время очень ценились геймерами – их эффективность очень высока, более чем в два раза выше, нежели у распиаренных Pentium 4 с ядрами Prescott и Smithfield, которым в большинстве приложений не помогала ни высочайшая по тем временам частота, ни огромный объем кэша второго уровня.


Весьма успешное решение от AMD - Athlon 64. На фоне Pentium 4 эти процессоры выделялись небольшим энергопотреблением и отменной эффективностью.

Впрочем, на данном этапе стоит вспомнить, что именно в ядре Prescott появилась технология HyperThreading. Появилась она конечно не от хорошей жизни, и была небезуспешной попыткой замаскировать недостатки длинного конвейера. Именно благодаря этой, пусть на тот момент и еще несовершенной, технологии, инженерами удалось нивелировать удлинение конвейера. Например, процессор Pentium 4 2800E основанный на ядре Prescott и поддерживающий HT продемонстрировал эффективность аналогичную ядрам с 20-ступенчатым конвейером, но без HT. Впрочем, прироста эффективности от поддержки HyperThreading для ядер Willamette/Northwood добиться не удалось, об этом свидетельствует результат редчайшего процессора Pentium 4 3.46 GHz Extreme Edition, который основан на ядре Gallatin (аналог Northwood, но с 2-мегабайтным кэшем L3) и поддерживает данную технологию.

Чуть позже, уже на закате эру NetBurst, инженерам Intel удалось значительно улучшить HyperThreading и добиться неплохого прироста эффективности работы блока вычислений с плавающей запятой. Обратите внимание на быстрейшие в линейке, одноядерные Pentium 4 3.73 GHz Extreme Edition, и двухядерные Pentium 955 Extreme Edition. Их эффективность работы FPU составляет уже 0.138 единиц, хотя производительность ALU и находится на прежнем уровне. Впрочем, даже благодаря этому, опередить по производительности своих главных конкурентов – AMD Athlon 64 X2 не удалось, несмотря на то, что последние работают на более низкой тактовой частоте и не поддерживают HT.

Посмотрите на таблицу – тягаться с Athlon 64 X2 5200+ не может ни один из процессоров архитектуры NetBurst, что говорить о топовом на тот момент AMD Athlon 64 6400+. Впрочем, то, что погоня за “большими гигагерцами” была ошибкой, Intel поняла давно, а потому готовила новейшую архитектуру, которая предстояло стать не менее успешной в маркетинговом плане, чем Pentium 4, но гораздо более эффективной.


Athlon 64 X2 - пожалуй последний на сегодняшний день процессор, который мог опережать топовые процессоры Intel. Впрочем, побеждать неэффективные и горячие Pentium D было не сложно.

Речь идет, естественно, о Core. Разрабатывая данную архитектуру, инженеры Intel и вернулись к конвейеру, имеющему всего 14 стадий, то есть укоротили его по сравнению с последними представителями NetBurst более чем в два раза. Естественно, в таких условиях, речь о достижении 4 гигагерц уже не шла, но уже первые представители нового семейства, несмотря на небольшую частоту, демонстрировали высочайшую производительность. Оба процессора этого поколения – Pentium M 730 на ядре Dothan и Core Duo T2500 на ядре Yonah показали результат на такт, превосходящий даже Pentium III, и заметно выше, чем у конкурирующих AMD семейства K8.

Обкатанная на мобильных решениях архитектура в немного доработанном виде пришла и на десктопный рынок в виде процессоров Core 2 Duo и Pentium Dual Core. На момент выхода они не могли похвастать высокими частотами, но при этом демонстрировали высочайшую эффективность и как следствие производительность, даже, несмотря на отсутствие поддержки HyperThreading! На это, естественно работал и значительно улучшенный блок предсказания ветвлений. Посмотрите на результаты. В тесте CPU Queen средняя эффективность ядра Conroe и его производных поднялась на уровень более двух единиц за такт и достигла, в среднем, 2.13. В тесте FPU SinJulia результат тоже очень хорош – 0.175. Это, пусть и не намного, но больше чем у процессоров архитектуры Core первого поколения, и гораздо выше, чем у AMD K8 с которой так долго и безуспешно бились Pentium 4.


Пришедшая на замену NetBurst архитектура Core 2 показала, что и Intel может делать быстрые и холодные процессоры, отличающиеся высокой эффективностью.

Высочайшую эффективность ядер в очередной раз доказал и вышедший немного позже одноядерный Celeron, который при скромной частоте, благодаря ядру Conroe-L, показал производительность на уровне предшественников работавших на частоте в два раза выше. И это, заметьте, при том же одном ядре. В общем и целом данная архитектура зарекомендовала себя максимально эффективной, и заставила уже AMD пытаться нагнать соперников.

И вот здесь у AMD начались проблемы. Теперь у них не было преимущества в эффективности ядра, и вместо того, чтобы заняться его полной перестройкой, инженеры, при создании поколения K10 и соответственно процессоров под названиями Phenom и Athlon, занялись наращиванием количества ядер и кэшей. Общая производительность данных решений, конечно, выросла, а вот на эффективность внесенные изменения повлияли незначительно. Производительность ALU немного увеличилась, видимо из-за доработанного, в очередной раз, блока предсказания переходов, а вот эффективность FPU осталась совершенно без изменений – с такими характеристиками тягаться с Core 2 было можно только за счет большего количества ядер или более высокой частотой. С последним у процессоров поколения K10 были, как вы, наверное, помните, очень серьезные проблемы.


Phenom - явно неудачный процессор. Эффективность его не дотягивалась до Core 2, да и с частотами были серьезные проблемы.

Как результат, Phenom так и не стал конкурентом процессорам Core 2 Duo и Core 2 Quad. Впрочем, вскоре проблема с частотами и решилась, и новые процессоры Phenom II и Athlon II архитектуры K10.5 готовы были составить конкуренцию решениям от Intel по данному показателю. А вот эффективность в новом поколении осталась на том же уровне, а потому бороться с конкурентами при равных частотах решения AMD не могли. К тому же при переходе на 45-нанометровый техпроцесс Intel вновь немножко поколдовала над архитектурой и добилась очередного повышения эффективности блока FPU, до уровня 0.185 ед./такт.

Несмотря на комфортное превосходство, в цехах и лабораториях Intel уже ковалось новое совершенное оружие, развивающее архитектуру Core, которое увидело свет в процессорах Core i3, i5 и i7 под общим названием Nehalem. Очередные изменения в блоках и улучшение всех параметров привели к отличному результату. Посмотрите на показатели Core i5-750: эффективность ALU осталась практически на уровне Core 2, но при этом производительность наиважнейшего на сегодняшний момент блока целочисленных операций возросла значительно – до 0.225 единиц на такт!

Но, кроме архитектурных улучшений, Intel готовила и еще одно супероружие – доведенную до ума технологию HyperThreading. Ее использование позволило получить просто фантастическую эффективность. Эта технология при правильной оптимизации дала огромный эффект и почти полуторакратное увеличение эффективности! 3,05 в ALU и 0,36 в FPU – это просто великолепный результат. Впрочем, и без поддержки этой технологии процессоры на архитектуре Nehalem оказались более эффективны, чем предшественники и конкуренты.


Nehalen стал первой архитектурой Intel, в которой максимум внимания было уделено эффективности ядер. Результата оказался отменным. Потомки в лице Sandy Bridge и Ivy Bridge показали, что потенциал еще есть.

Два последующих поколения от Intel – процессоры на ядрах Sandy Bridge и Ivy Bridge также демонстрировали более высокую производительность не только за счет увеличения частоты. Небольшие изменения в ядрах позволили последовательно увеличивать производительность блока целочисленных операций, на 0.25 ед./такт в каждом поколении, причем как с использованием HyperThreading, так и без. А вот изменения эффективности FPU нет. Впрочем, даже без улучшений этот показатель очень хорош. Учитывая тенденцию, мы вправе ожидать очередного увеличения эффективности и при появлении процессоров Intel следующего поколения.

AMD о подобной эффективности остается только мечтать. Впрочем, и они не сидят на месте, стараясь улучшить показатели своих процессоров. В частности, основанные на ядрах архитектуры K10.5 процессоры Llano продемонстрировали чуть более высокую, чем у последних Phenom и Athlon эффективность ALU. В основном благодаря улучшенному блоку предсказания ветвлений, в то время как эффективность FPU осталась на том же уровне что демонстрировали все предыдущие процессоры AMD начиная с самых первых Athlon семейства K7.


Последний представитель семейства AMD взявшего старт еще в поколении K7 - APU Liano. К сожалению тоже не блещет эффективностью на фоне последних процессоров Intel

Впрочем, даже Llano можно считать решением уже устаревшим, так как ближайшее будущее процессоров AMD будет связано с процессорами совершенно новой архитектуры Bulldozer, которая была представлена в процессорах AMD FX, и ее производных. Именно эти процессоры, которые получились отнюдь не бесспорными, поставили нас в тупик при расчете эффективности ядер. И все по причине того, что в них принцип организации ядер уж больно сложный. В частности в процессоре FX-8150 имеется четыре двуядерных модуля, и заявляется он компанией как восьмиядерный. Дабы наказать компанию за такое, вполне можно было посчитать его эффективность из расчета восьми ядер, но это было бы технически неправильно, да и результат оказался бы на уровне процессоров Intel на архитектуре NetBurst. Поэтому решено было считать эффективность не на ядро, а на модуль, что вполне оправданно, учитывая, что каждый модуль обладает лишь одним блоком вычислений с плавающей запятой.


AMD FX на архитектуре Bulldozer показал заметный рост эффективности, но сложная архитектура пока не раскрыла себя. И, быть может, уже не раскроет.

С ALU все сложнее – таких блоков в четырехмодульном процессоре действительно восемь, но работать параллельно с достаточной эффективностью они не могут из-за особенностей диспетчера задач Windows 7 и более ранних ОС от Microsoft. Поэтому, было принято решение и эффективность ALU считать в расчете на количество модулей. Это решение спорное, и я не буду настаивать на объективности данного результата. А результаты, кстати, оказались относительно неплохими. Относительно предшественников, конечно же. В частности, по эффективности спорного результата ALU, процессоры архитектуры Bulldozer показали результат 2,2 ед./такт, что заметно выше, чем у K10.5, Llano и даже чуть больше чем у Core 2, хотя до Sandy Bridge, даже без поддержки Hyper Threading еще далековато. Эффективность FPU (этому результату можно полностью доверять) также заметно превзошла все предыдущие решения AMD, и оказалось аккурат между ранней и поздней архитектурами Core 2.

Исходя из этих результатов можно сделать вывод, что процессоры архитектуры Bulldozer однозначно не конкуренты процессорам Intel начиная с Nehalem, а вот с Core 2 может бороться весьма эффективно, и даже превосходить на равных частотах. Не самый позитивный вывод для "зеленых".

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

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

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

    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).

    Всем привет Сегодня моя задача состоит в том чтобы написать вам значение такого слова как 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 уже сидит в самом проце и вообще о нем мало кто знает, ибо не особо интересно Однако я вот о чем подумал, а на производительность он влияет как-то?