Цитата WSonic:
чем i5 3570 отличается от i7 3770? В основном только отсутствием Hyper-threading, которую игры не поддерживает. »
|
Хочу извиниться перед уважаемым
yonis78, но не могу не поддержать точку зрения
WSonic. Хотя и с привычной оговоркой, что формулировка "игры не поддерживают технологию hyperthreading" не вполне верна. Ведь при использовании 2-хядерных процессоров с этой технологией (а такие процессоры есть у всех линий семейства core i - i3, i5 и i7, хотя в последних двух случаях это относится только к мобильным CPU), её применение позволяет существенно поднять FPS в играх. Сравните, для примера быстродействие core i3 и Pentium из которого такая поддержка исключена.
Так что причина не в самой технологии, которая абсолютно прозрачна для прикладного процессора и не требует каких-либо действий от программиста для обеспечения её поддержки, а всего лишь в избыточности 8 логических ядер для подавляющего большинства современных игр.
Что касается вопроса о том, чем различаются
i5-3570 и
i7-3770, боюсь, что могу только повторить всем известные вещи. Различие есть только в трех общеизвестных аспектах: наличии 4-х дополнительных логических ядер, 2 дополнительных мегабайта LLC и жалких, явно добавленных исключительно по маркетинговым соображениям, 100МГц частоты в турборежиме.
Не так много, но казалось бы эти архитектурные улучшения должны гарантировать i7-3770 уверенную, пусть и небольшую, победу в любых тестах.
Давайте посмотрим на данные нашего привычного сайта. Что мы видим? Не дайте себя обмануть результатами многопоточных тестов - в них i7 лидирует, как справедливо заметил уважаемый WSonic именно благодаря большему числу логических ядер. Но никакого реального преимущества в играх мы не видим. Иногда не видим даже того, что должно было бы быть гарантировано за счет дополнительной кэш-памяти. В чем дело? Всё в той же гипернитевости, которая по-прежнему может не только улучшать, но иногда и снижать производительность (именно по этой причине в BIOS до сих пор предусмотрена опция её отключения). Почему ухудшать?
Потому что в процессорах поддерживающих hyperthreading, все ресурсы можно условно разделить на три группы. Первая группа это ресурсы продублированные дважды для каждого ядра (replicated). Необходимость такого дублирования очевидна - понятно, что, к примеру, все архитектурные регистры приходится иметь в двух копиях для разных логических ядер. Мы ведь должны иметь возможность изменять значения регистров одного из ядер без того чтобы это повлияло на значения регистров второго ядра, верно? Кстати говоря, даже не все архитектурные регистры продублированы. К примеру, оба ядра имеют единый набор MTRR. И его достаточно - в конце концов, оба логических ядра обращаются к одной и той же шине памяти.
Второй тип ресурсов - разделяемые (shared). К примеру, оба ядра используют один и тот же набор исполнительных устройств (8 для Haswell, 6 для всех остальных core i и core 2 процессоров). После того как инструкции выбраны в очередь ожидания исполнения, уже нет никаких различий между инструкциями предназначенными к исполнению на том или другом логическом ядре.
Но есть и третий тип ресурсов - ресурсы разделенные между двумя логическими ядрами (partitioned). К примеру, haswell делит буфер очереди декодированных микроопераций на две половины. И в результате каждому логическому ядру достается только половина физических ресурсов.
Конечно, разделение ресурсов на эти три типа не является жестко фиксированным. Ресурсы продублированные в одном поколении core i могут стать, к примеру, разделяемыми в другом. Так, Sandy Bridge имел два встроенных детектора циклов (по одному для каждого ядра) размером 28 микроопераций. В Haswell эти детекторы были заменены одним (размером 56 микрооопераций) разделяемым между двумя ядрами.
К чему это рассказывалось? К тому, что включение hyperthreading "уполовинивает" некоторые доступные ядру ресурсы. Что в какой-то степени сказывается на его производительности. В первом варианте hyperthreading это влияние было достаточно заметным, сейчас оно очень сильно снизилось, но неизвестно будет ли оно когда-нибудь сведено к нулю.
Поэтому, хотя i7 (при включенном hyperthreading) и несколько превосходит i5 по указанным причинам, одна из тех же причин может действовать и в обратном направлении, снижая производительность процессора. В результате имеем (именно в современных играх) между этими процессорами примерный паритет.
Так что если один из них «раскроет», как любят говорить уважаемые участники форума, какую-то видеокарту, то же самое следует ожидать и от второго процессора.