Микроархитектура Intel Core — следствие «революционного поворота»
Чем хороша Intel — так это предсказуемостью. На весеннем форуме IDF корпорацией были представлены многие ключевые усовершенствования новой микроархитектуры Core. Cоответственно, уже сейчас потенциальный потребитель (квалифицированный, конечно) может понять, в каком направлении будут развиваться микропроцессоры архитектуры х86 и что он сможет ожидать от них в самом ближайшем будущем (конец 2006-го — первая половина 2007 года).
Нужно сказать, что появление микроархитектуры Core — следствие революционного поворота от гонки тактовых частот к построению многоядерных процессоров; Core с самого начала ориентирована именно на многоядерные микропроцессоры.
Тепловыделение микропроцессора пропорционально кубу тактовой частоты. И когда разработчики столкнулись с проблемой токов утечки, эффективно решить которую им не удалось, тепловыделение на больших тактовых частотах оказалось неприемлемо большим. Всем фирмам пришлось отказаться от планов быстрого роста тактовых частот; вместо этого столбовая дорога повышения производительности процессоров свернула в сторону создания многоядерных микропроцесоров. Теперь возможный рост производительности определяется распараллеливанием между процессорными ядрами.
На весеннем форуме IDF Пат Гелсингер представил ключевые усовершенствования новой микроархитектуры Core. Cоответственно, уже сейчас потенциальный потребитель может понять, в каком направлении будут развиваться микропроцессоры архитектуры х86 |
Когда тактовые частоты перестали расти экспоненциально, некоторые важнейшие характеристики микроархитектуры NetBurst, используемой Intel в Pentium 4 и Xeon, стали неактуальными. И в первую очередь длинный конвейер, рассчитанный на борьбу за высокую тактовую частоту.
Между тем Intel уже имела в своем багаже альтернативную микроархитектуру, реализованную в мобильных процессорах (линия Pentium M — Core Duo). И разговоры о том, что будущее — за микроархитектурой Pentium M, которая эффективнее, чем NetBurst, ходили в Сети уже давно. Как это часто бывает, истина оказалась не соответствующей (или по крайней мере не вполне соответствующей) «горячим слухам». В Core Intel устроила скорее некоторую комбинацию наиболее востребованных сегодня особенностей обоих микроархитектур, одновременно осуществив серьезные усовершенствования, направленные на рост производительности и понижение тепловыделения.
Cложно о сложном
Когда речь идет не о рекламной шумихе, то в такой сугубо профессиональной области, как микроархитектура, далеко не всегда можно объяснить суть совсем уж на пальцах. Intel, со своей стороны, предоставила профессиональной аудитории профессиональную информацию, и теперь известно достаточно много технических деталей Core.
Основные нововведения в Core разработчики объединили в пять групп, каждая из которых выступает под флагом своей интегральной цели. Для достижения этой цели задействуются, вообще говоря, различные логические блоки микропроцессоров, и при этом вовлекаются различные стадии конвейера. Поэтому на рис. 1 мы представили «фронтальные блоки» микроархитектуры Core, а на рис. 2 изобразили, наоборот, блоки, участвующие в финальных стадиях исполнительного конвейера. Учитывая, что Core разрабатывалась в расчете на многоядерные миропроцессоры, эти рисунки отвечают процессорным ядрам, а не всей процессорной микросхеме. Последняя, в двухъядерном случае, кроме собственно ядер включает общие для них блоки — кэш второго уровня и контроллер системной шины.
Прежде чем вкратце проанализировать нововведения Core, отметим, что эта микроархитектура сохраняет большинство базовых черт, известных по NetBurst, и отвечает суперскалярному микропроцессору с внеочередным спекулятивным выполнением внутренних RISC-подобных микроопераций, в которые перекодируются исходные CISC-команды архитекутры х86.
1. Wide Dynamic Execution. Эта группа усовершенствований направлена в основном на увеличение IPC (числа одновременно выполняемых за такт команд) и, следовательно, на дальнейший рост производительности. В первую очередь здесь следует отметить существенное увеличение количества декодируемых за такт команд — до 4 против 3 в NetBurst. Это означает, что на более поздние стадии конвейера, на которых за такт выполняется одновременно несколько команд, в единицу времени придется больше микроопераций и планировщикам будет из чего выбирать, чтобы загружать на выполнение в исполнительные функциональные устройства (рис. 2). Кстати, из буфера, хранящего микрооперации (ROB, ReOrder Buffer) за один такт может изыматься также до четырех завершившихся микроопераций, так что теперь устанавливается баланс, а максимальная величина IPC равна 4.
Кроме того, емкость ROB увеличена до 32 микроопераций (для сравнения, в Сore Duo она равна 24), так что у планировщиков будет более богатый выбор того, чем загрузить исполнительные устройства.
Второе важное усовершенствование из данной группы — ESP (Extended Stack Pointer) Tracker. Раньше этот блок задействовал АЛУ, а теперь во фронтальной части Core появились собственные сумматоры. Соответственно не только разгружается АЛУ, но и элиминируется потребность прохождения по конвейеру соответствующих микроопераций.
Имеется еще два усовершенствования, которые также способствуют уменьшению числа требуемых микроопераций (кстати, при этом уменьшается и потребляемая электроэнергия). Это — слияние микроопераций (впервые появившееся в Pentium M) и объединение в макрооперацию. Последнее является уникальной особенностью Сore, в составе микроопераций которой появились «макрооперации», объединяющие в одной команде сравнение и условный переход. Благодаря этому общее число микроопераций в программном коде может быть уменьшено на величину порядка 10%. Соответственно в числе четырех выполняемых за такт операций может появиться «свободное» место еще для одной микрооперации, то есть растет общая производительность.
2. Advanced Digital Media Boost. В последние годы число новых мультимедийно-ориентированных команд в системе команд Intel x86 все пополняется и пополняется. Так, SSE добралось уже до SSE3, а новые расширения в Core получат, вероятно, наименование SSE4. Причем эти расширения крайне важны для производительности. Дело в том, что благодаря им пиковая производительность с плавающей точкой при данной тактовой частоте возрастает вдвое.
Это стало возможно, поскольу на каждом такте могут быть выполнены сразу две векторные операции типа «умножить и сложить» над 64-разрядными числами (при длине вектора, равной 2).
3. Memory disambiguation. Разрешение неопределенностей при спекулятивном выполнении команд чтения и записи из/в оперативную память — важнейшая часть общего фронта борьбы за производительность. Эта неопределенность может возникать из-за возможной взаимозависимости таких команд при их внеочередном спекулятивном выполнении. При разрешении этой ситуации приходится использовать предсказания вероятности того, что соответствующие команды не вступят в конфликт. Подобный блок имелся уже в микроархитектуре NetBurst; там соответствующая технология называлась store-to-load.
Другим компонентом Core, относящимся к данной группе усовершенствований, является аппаратная предварительная выборка в кэш-память, которая была существенно доработана, в частности, с учетом многоядерности.
4. Advanced Smart Cache. Под этим умным «продвинутым» кэшем Intel имеет в виду прежде всего общий (разделяемый ядрами) кэш второго уровня. Преимуществом такого подхода по сравнению с использованием собственного выделенного кэша второго уровня для каждого ядра является возможность динамического перераспределения емкости кэш-памяти между выполняемыми процессами (нитями). Одна из выполняемых ядрами нитей может получить большую емкость кэш-памяти второго уровня, чем другая, и в процессе выполнения нитей это соотношение может динамически изменяться.
При такой организации кэша также не требуется поддержание когерентности кэш-памяти между ядрами. Вероятно, общий кэш приводит к некоторому увеличению задержки по сравнению с собственным кэшем для каждого ядра. Судя по всему, применение общей для ядер кэш-памяти будет характерно для многоядерных микропроцессоров следующего поколения.
Кроме этого, в Core возрастает и емкость кэша второго уровня (до 2 или 4 Мбайт), и его пропускная способность. Кстати, существенно увеличена и пропускная способность системной шины — до 10,4 Гбайт/с.
5. Intelligent Power Capacity. Поскольку тепловыделение стало головной болью для всех разработчиков современных высокопроизводительных микропроцессоров, много усовершенствований в Core направлено на уменьшение энергопотребления и более «тонкое» управление электропитанием.
Особенностью Сore является возможность тонкого снятия напряжения с отдельных логических блоков, например с блока с плавающей точкой, если он не используется в течение нескольких тактов. Ширина шины в Core увеличена с 64 до 128, в то время как команды х86 имеют переменную длину, в среднем 4 байт. Поэтому незадействованная часть шины в Core также может отключаться! Это достигнуто за счет расщепления одной шины на несколько.
Применение в Соre индикатора состояния электропитания (Power Status Indicator) особенно важно для мобильных компьютеров. Процессор при этом сообщает внешним компонентам о потребляемом им электропитании, благодаря чему те могут динамически принимать решения, способствующие уменьшению энергозатрат.
Термальный диод (DTS, Digital Termal Sensor) — аппаратура, меряющая температуру в двух точках в каждом ядре. Показания DTS можно считывать программным путем. Кстати, если раньше «микросхемы здоровья» использовали для подобных целей шину I2С, то в Core применяется новый интерфейс PECI (Platform Environment Control Interface).
Что день грядущий нам готовит
В кремнии будут представлены сразу три микропроцессора, построенные на базе Core: Conroe — для настольных систем, Woodcrest — для серверов и Merom — для мобильных компьютеров (он сменит сегодняшний Core Duo). Применение во всех микропроцессорах одного общего ядра дает Intel очевидное экономическое преимущество.
Кроме двух основных технических целей — рост производительности и снижение энергопотребления — все пять групп нововведений Core являются ударами по основному рыночному противнику Intel, корпорации AMD. Самый «грубый» по силе шаг — удвоение пиковой производительности с плавающей точкой в расчете на единицу тактовой частоты — AMD также собирается сделать в будущем поколении микропроцессоров, K8L. А вот чуть более точные сопоставления провести уже невозможно: AMD, в отличие от Intel, предсказуемостью, увы, не отличается; детали разработок AMD остаются в тайне.
Несомненно, что микропроцессоры с архитектурой Core будут иметь повышенную конкурентоспособность по сравнению с Pentium 4/Xeon с микроархитектурой NetBurst. Вопрос же о том, что Core — это стратегическая долговременная платформа, или, скорее, промежуточное решение, под прикрытием которого специалисты Intel смогут спокойно готовить более принципиальную смену микроархитектуры, возможно, следует считать открытым.
Однако посмотрим на приводимые Intel оценки ожидаемого увеличения производительности и производительности в расчете на 1 Вт. Для Conroe — свыше 40% роста производительности на SPECint_rate_base2000 по сравнению с Pentium D/950 (бывший Presler) при более чем 40% уменьшения электропитания (параметр TDP). Для Woodcrest — свыше 80% роста SPECint_rate_base2000 по сравнению с двухъядерным Xeon/2.8 ГГц (бывший Paxville DP) при свыше 35% уменьшения TDP. Вероятно, очень большой вклад в рост этой производительности вносит увеличение пропускной способности системной шины. Поэтому, возможно, еще интереснее были бы оценки SPECint2000, но уж что есть, то есть.
Наконец, Merom, который будет уже вторым поколением мобильных процессоров с микроархитектурой Core, по сравнению с первым поколением — Core Duo (бывший Yonah) также получит солидную прибавку производительности в 20% на SPECint_rate_base2000.
Учитывая рассмотренные выше технические детали Core, ее усовершенствования, по мнению автора, выглядят столь серьезно, что вопрос о том, стоит ли массовому потребителю переходить на применение Core сразу после появления на рынке соответствующих новых микропроцессоров (или подождать — что там придет на смену Core?), на сегодня имеет однозначный ответ — «да, стоит».