Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Задания к практическим работам / _пример_оформления.doc
Скачиваний:
25
Добавлен:
20.06.2014
Размер:
291.33 Кб
Скачать

Усовершенствованное процессорное ядро

Несмотря на то, что процессоры семейства Nehalem преподносятся Intel как носители новой микроархитектуры, основная их часть – вычислительное ядро – по сравнению с Core изменилась не столь значительно, наибольшие улучшения кроются в инфраструктуре.

Рис. 4. Структура ядра

Однако не надо воспринимать это как обман со стороны производителя, Intel просто сосредоточился на ликвидации слабых сторон прошлой микроархитектуры, а само ядро к ним явно не относится. Действительно, вряд ли кто-то будет спорить с тем, что процессоры Core 2 – это прекрасный продукт, обладающий отличной удельной производительностью. Впрочем, определённые улучшения в глубине процессорного ядра всё же сделаны были. Но инженеры при их разработке исходили не из простого желания увеличить быстродействие любой ценой, они хотели добиться лучшей эффективности Nehalem, позволяющей этому процессору более рационально задействовать все ресурсы. При этом, как и в случае с Atom, все изменения делались с оглядкой на тепловыделение – поэтому процессоры нового поколения должны стать и более привлекательными с точки зрения соотношения «производительность на ватт». В соответствии с этой философией в первую очередь модификация затронула декодеры. Напомним, процессоры с микроархитектурой Core имели в своём распоряжении четыре декодера: три для простых инструкций и один – для сложных. При этом максимальное число x86-инструкций, которые декодируют эти процессоры за один такт, может доходить до пяти, так как благодаря технологии «Macrofusion» они способны обрабатывать некоторые пары команд (например, сравнение со следующим за ним условным переходом), как единую инструкцию. В Nehalem количественный и качественный состав декодеров не изменился – но «Macrofusion» претерпела существенные изменения. Во-первых, увеличилось число пар x86 команд, декодируемых в рамках этой технологии «одним махом». Во-вторых, в Nehalem технология «Macrofusion» стала работать и в 64-битном режиме, в то время как в процессорах семейства Core 2 она могла активироваться лишь при работе процессора с 32-битным кодом. Таким образом, декодирование пяти, а не четырёх инструкций за такт, процессорам с новой микроархитектурой будет удаваться в большем числе случаев, чем их предшественникам. Следующее усовершенствование, связанное с повышением продуктивности начальной части исполнительного конвейера, коснулось блока Loop Stream Detector. Этот блок появился впервые в процессорах с микроархитектурой Core и предназначался для ускорения обработки циклов. Определяя в программе циклы небольшой длины, Loop Stream Detector сохранял их в специальном буфере, что давало возможность процессору обходиться без их многократной выборки из кэша и предсказания переходов внутри этих циклов. В процессорах Nehalem блок Loop Stream Detector стал ещё более эффективен благодаря его переносу за стадию декодирования инструкций. Иными словами, теперь в буфере Loop Stream Detector сохраняются циклы в декодированном виде, из-за чего этот блок стал несколько похож на Trace Cache процессоров Pentium 4. Однако, Loop Stream Detector в Nehalem – это особенный кэш. Во-первых, он имеет очень небольшой размер, всего 28 микроопераций, во-вторых, в нём сохраняются исключительно циклы.

Рис. 5. Исполнительный конвейер

Работая над усовершенствованием микроархитектуры Core, инженеры Intel нашли пути и к улучшению и без того одного из лучших в индустрии механизма предсказания переходов. Однако ничего хитроумного здесь нет: в дополнение к уже имеющемуся блоку предсказания переходов был добавлен ещё один «предсказатель» второго уровня. Он работает медленнее, чем первый, но зато благодаря более вместительному буферу, накапливающему статистику переходов, обладает лучшей глубиной анализа. Надо заметить, что данное усовершенствование вряд ли даст сильный выигрыш в типичных приложениях, исполняемых на настольных компьютерах. Зато при серверной нагрузке двухуровневый блок предсказания переходов может оказаться очень эффективным. Это является прекрасной иллюстрацией универсальности микроархитектуры Nehalem: в ней можно встретить инженерные решения, ориентированные на нужды различных категорий пользователей. Другое улучшение результативности механизма предсказания переходов было сделано переделкой блока Return Stack Buffer. Напомним, на этот блок возлагается задача правильного предсказания адресов возврата из функций. Однако процессоры прошлого поколения могли неверно предсказывать адреса возвратов из функций, например, при работе рекурсивных алгоритмов и переполнении соответствующего буфера. Новый же Return Stack Buffer, реализованный в Nehalem, эту проблему успешно устранил. Существенно поработав над предварительными стадиями конвейера Nehalem, инженеры Intel оставили исполнительные устройства нового процессора без заметных изменений.

Рис. 6. Исполнительные устройства

Также как Core 2, процессоры с микроархитектурой Nehalem способны отправлять на выполнение до шести микроопераций одновременно. Но в то же время разработчики увеличили размеры внутренних буферов стадии исполнения команд. В результате, процессоры Nehalem способны держать в ожидании выполнения в Reorder Buffer до 128 микроопераций – а это на 33 % больше, чем Core 2. Соответственно, Reservation Station, отправляющая микрооперации непосредственно на исполнительные устройства, расширена с 32 до 36 инструкций, а кроме того, увеличена и вместимость буферов и для работы с данными. Все эти, казалось бы, небольшие изменения вызваны в первую очередь тем, что ядра новых процессоров поддерживают технологию SMT и способны исполнять одновременно по два вычислительных потока, нуждающихся в разделении ресурсов друг с другом. В итоге, Intel несколькими простыми микроархитектурными решениями увеличил КПД исполнительных устройств процессора, то есть нарастил производительность без существенных энергетических затрат.

Рис. 7. Иллюстрация технологии SMT

Надо сказать, что возвращение в Nehalem технологии SMT – одно из самых существенных нововведений, способных положительно повлиять на производительность. В процессорах Pentium 4, где эта же технология преподносилась под маркетинговым именем Hyper-Threading, её включение давало средний прирост производительности на уровне 10 %. Новые же процессоры с микроархитектурой Nehalem должны получить от SMT больший выигрыш. Во-первых, они имеют в своём распоряжении подсистему памяти с гораздо более высокой пропускной способностью, которая способна эффективнее обеспечивать два вычислительных процесса потоками данных. Во-вторых, Nehalem может похвастать более «широкой» микроархитектурой, позволяющей обрабатывать большее число инструкций одновременно.

Рис. 8. Прирост производительности

При этом необходимо заметить, что внедрение SMT в Nehalem, как, кстати, и в Pentium 4, не потребовало от инженеров существенного увеличения сложности процессора. Продублированы в ядре, фактически, лишь процессорные регистры и Return Stack Buffer. Все остальные ресурсы при включении SMT разделяются в процессоре между потоками динамически (например, Reservation Station или кэш-память) либо жёстко пополам (например, Reorder Buffer). Как и в процессорах Pentium 4, активация SMT в Nehalem приводит к тому, что каждое физическое ядро видится операционной системой как пара логических ядер. Например, четырёхъядерный Nehalem будет распознаваться программным обеспечением как процессор с восемью ядрами. Но памятуя о том, что активация SMT иногда может приводить и к снижению производительности, инженеры Intel сделали физические и логические ядра различимыми и неполноправными, позволяя программистам при необходимости самостоятельно решать вопрос о более правильном задействовании их ресурсов. Для иллюстрации практическиго влияния описанных изменений на производительность мы решили сравнить скорость Nehalem с предшественником Penryn в нескольких простых синтетических тестах из пакета SiSoftware Sandra 2009. Ценность этих тестов заключается в том, что они совершенно не критичны к параметрам подсистемы памяти, что позволяет, основываясь на их показаниях, делать выводы о собственно процессорной микроархитектуре. Действительно, преимущество новой микроархитектуры хорошо видно при включении SMT. Тесты Sandra 2009 качественно оптимизированы под многопоточность, поэтому совершенно не удивительно, что активация SMT улучшает показатели Nehalem на величину от 15 до 60 процентов. Однако если сравнивать результаты семейств Nehalem и Penryn, не беря в расчёт SMT, то получается, что процессор нового поколения способен показать лучшие результаты далеко не всегда. Всё зависит от характера нагрузки, что указывает на отсутствие революционных и универсальных улучшений в недрах нового ядра.

Рис. 9. Преимущества ядра

Соседние файлы в папке Задания к практическим работам