Архивы: по дате | по разделам | по авторам

Застывшая в кремнии музыка: особенности микроархитектуры Intel Core

АрхивПлатформа
автор : Дмитрий Криканов   04.12.2007

При разработке нового процессора инженерам Intel пришлось пойти на существенный пересмотр концепции "дутых мегагерц". Как известно, результат превзошёл все ожидания.

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

Одно ядро хорошо, а два - лучше

С момента создания первого процессора и по сей день производительность определяется тактовой частотой ядра, помноженной на количество инструкций, выполняемых за такт (IPC). До последнего времени компании-разработчики лихо наращивали одну из составляющих этой нехитрой формулы и, по большому счёту, не знали проблем. Так, Intel предпочитала взвинчивать тактовую частоту, AMD сделала выбор в пользу повышения IPC. Однако со временем каждый из подходов столкнулся с весьма серьёзными ограничениями, делавшими дальнейшее повышение производительности затруднительным.

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

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

Многоядерная микроархитектура Intel Core

Intel смогла убедиться на собственном опыте, что простое объединение ядер на одной пластине не обеспечивает существенного прироста производительности, а в некоторых случаях такой процессор даже уступает своим собратьям-"одиночкам". Таким образом, для того, чтобы всё-таки добиться повышения производительности, инженерам Intel пришлось пойти на определённые ухищрения (о них мы расскажем ниже). Помимо этой задачи, необходимо было решить проблему уменьшения энергопотребления.

Все прелести пониженной рассеиваемой мощности пользователи ноутбуков на основе процессоров Intel Core смогли почувствовать, что называется, на собственной шкуре: ноутбук больше не обжигал колени своего владельца даже при длительной работе! Достигается это главным образом за счёт технологии с длинным названием Intelligent Power Capability, во многом похожей на AMD Cool'n'Quiet и Intel SpeedStep. Суть технологии состоит в том, что энергопотребление процессора зависит от ресурсоёмкости исполняемых задач: чем проще задача, тем меньше загружаются ядра и остальные подсистемы; соответственно, рассеивается и меньшее количество тепловой энергии. На этом "гуманистические" достоинства микроархитектуры заканчиваются, зато остаётся масса достоинств технических.

Расширить всё, что расширяется

При создании микроархитектуры Core Intel решила пойти по пути "всеобщего расширения". В первую очередь расширению была подвергнута сама архитектура исполнительного ядра, разрядность которой возросла с 32 до 64 бит. Новая архитектура была полностью идентична архитектуре AMD64 и без лишних изысков была наречена Intel64. Переход на 64-разрядную архитектуру позволил значительно увеличить объём адресуемой памяти, а также расширить количество и, соответственно, разрядность регистров общего назначения.

По сравнению с микроархитектурой NetBurst новый процессор получил более "коренастый" исполнительный конвейер: число этапов сократилось до 14, а количество одновременно исполняемых инструкций возросло до 4 для каждого ядра. Таким образом, двуядерный процессор мог одновременно выполнять 8 операций, а четырёхъядерный, соответственно, 16. Были также доработаны блоки предсказания ветвлений и увеличены буферы инструкций.

Кроме того, Intel реализовала собственный аналог mOP-line AMD, получивший название Macro-Fusion. Суть этой технологии заключается в объединении или, дословно, "смешивании" распространённых пар инструкций процессора в одну внутреннюю команду, которая с точки зрения процессорного конвейера ничем не отличается от обычной инструкции. В результате выполнить какую-либо распространённую последовательность команд - например, пресловутое сравнение с условным переходом - стало возможным всего за одну операцию.

В новой микроархитектуре Intel уделила особое внимание усовершенствованию блоков исполнения инструкций SSE. Эти инструкции активно используются приложениями при выполнении ресурсоёмких задач, поэтому повышение скорости исполнении команд SSE означает "автоматическое" повышение производительности. Если раньше 128-битные команды SSE выполнялись за два такта (за первый такт - старшие 64 бита, за второй - младшие 64 бита), то теперь, благодаря технологии Advanced Digital Media Boost, исполнение занимает всего один такт. Кроме того, привычный набор SSE3 был дополнен восемью новыми инструкциями.

Технология Smart Memory Access

Несмотря на название этой технологии, доступ к памяти, реализованный в микроархитектуре Intel, вряд ли можно назвать действительно "умным". Дело в том, что благодаря поддержке 64-битного адресного пространства новые процессоры должны были оперировать весьма внушительными объёмами памяти. При этом, в отличие от технологии AMD Hyper-Transport, обеспечивающей ядрам независимый доступ к памяти, все процессорные ядра микроархитектуры Core делят между собой одну-единственную шину памяти.

Очевидно, что разделение ресурсов шины неизбежно ведёт к снижению общей пропускной способности памяти. Кроме того, сам контроллер памяти размещается по старинке на материнской плате, что увеличивает задержки доступа по сравнению со встроенным в кристалл контроллером у процессоров AMD. Безусловно, Intel прекрасно понимала все недостатки общей шины и внешнего контроллера. Поэтому технология Smart Memory Access была призвана оптимизировать использование полосы пропускания шины памяти и тем самым повысить производительность системы.

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

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

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

А ты такой холодный…

Как мы уже говорили, при разработке микроархитектуры Core корпорация Intel задавалась целью не только обеспечить прирост производительности процессоров, но и снизить тепловыделение. Можно сказать, что поставленная задача была решена на "отлично". Если процессоры предыдущих поколений могли рассеивать более 100 Вт тепла, то микроархитектура Core позволила уменьшить это значение почти в два с половиной раза. Так, процессоры для мобильных систем рассеивали в среднем до 35 Вт, а выделяемая мощность процессоров для настольных систем находилась в пределах 55 – 70 Вт. При этом снижение тактовой частоты составило всего лишь 15%.

Необходимо отметить, что микроархитектуре Core удалось превзойти по производительности аналоги AMD в среднем на 15%. И это при том, что на стороне AMD были преимущества в виде независимой шины Hyper-Transport и встроенного в кристалл контроллера памяти. Правда, сравнение проводилось только для двуядерных процессоров. Можно предполагать, что при возрастании числа ядер, скажем, до 8-10, независимый доступ к памяти, реализованный AMD, всё-таки даст о себе знать и микроархитектура Core останется далеко позади. Однако на сегодняшний день число ядер не превышает четырёх, и процессоры Intel пока чувствуют себя вполне уверенно.


Предыдущие статьи цикла:
© ООО "Компьютерра-Онлайн", 1997-2024
При цитировании и использовании любых материалов ссылка на "Компьютерру" обязательна.