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

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

08.08.2012

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

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

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


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

Это кое-что, несомненно, чистая производительность двух важнейших блоков современных 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.

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

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


Учитывая, что эффективность блоков 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.

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

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

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

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. А это уже не просто длинный, а очень длинный конвейер. Да, конечно, благодаря данному изменению, порог максимальной тактовой частоты у новых ядер был выше, но выше было и тепловыделение.

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

Ядро 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, которым в большинстве приложений не помогала ни высочайшая по тем временам частота, ни огромный объем кэша второго уровня.

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

Весьма успешное решение от 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, но гораздо более эффективной.

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

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.

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

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


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

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

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

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 оказались более эффективны, чем предшественники и конкуренты.

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

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.

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

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


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

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

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


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


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

Дмитрий Петров (TestLabs)

Теги: процессоры, AMD, Intel

Похожие материалы:
  • Тест Core i3-4340 и Pentium G3430. Доступный Haswell
  • Intel официально представила процессоры Pentium и Core i3 на ядре Haswell
  • Нужен ли Hyper-Threading в играх? Чем Core i7 лучше Core i5?
  • Intel выводит на рынок четыре новых процессора Pentium на ядре Ivy Bridge
  • В январе Intel представит настольные Pentium и Celeron на ядре Ivy Bridge
  • Сайт BIOSTAR проговорился о новых процессорах Pentium и Celeron
  • Поделиться

    Комментировать

    «    Декабрь 2016    »
    ПнВтСрЧтПтСбВс
     1234
    567891011
    12131415161718
    19202122232425
    262728293031 
    Яндекс.Метрика