Samara Portal Technology, Computers

Самарский портал "Технологии, компьютеры"

19 января 2011 года заседание Клуба экспертов Intel было посвящено выпуску процессоров Intel® Core™ 2-го поколения под кодовым названием Sandy Bridge. Разговор шёл в основном о микроархитектуре: что изменили, что добавили, от чего избавились, чего ожидать. Заседание традиционно вёл руководитель пресс-службы Intel Михаил Рыбаков, с докладом выступал ведущий специалист по внедрению продукции Intel в странах СНГ Алексей Рогачков. Мероприятие проходило в ресторане «Театръ Корша», за что огромное спасибо Intel. Место историческое, очень интересное.

Михаил Рыбаков, руководитель пресс-службы Intel в России. Заседание Клуба экспертов Intel посвящёное выпуску процессоров Intel® Core™ 2-го поколения под кодовым названием Sandy Bridge. 19 января 2011 г. Фото: Владислав Бояров.

Алексей Рогачков, ведущий специалист по внедрению продукции Intel в странах СНГ. Заседание Клуба экспертов Intel посвящёное выпуску процессоров Intel® Core™ 2-го поколения под кодовым названием Sandy Bridge. 19 января 2011 г. Фото: Владислав Бояров.

Сейчас уже почти и никто не знает про ваучеры. Я бы тоже про них не вспомнил – пустая бумажка с бешеным по тем временам номиналом. Но наши ваучеры мы вложили очень удачно: на них в 1992 купили несколько книжек из серии «Что внутри?». Старшему сыну тогда было два года и очень хотелось, чтобы он читал правильные книжки. Только сегодня увидел одну из них – «Что внутри у растений?» – у него на кровати. Взял, чтобы мышку по ней возить, но всё равно здорово – не выбросил ведь и не засунул в дальний угол.

Должен сказать, что кодовое название Sandy Bridge актуально только внутри самой Intel и в среде технических специалистов. Маркетологи Intel предлагают покупателям никакой ни Sandy Bridge, а процессор Intel® Core™ 2-го поколения (2nd Generation Intel® Core™ Processors). Так уж исторически сложилось, и это просто надо запомнить. Запомнить следует и обозначения новых процессоров: теперь они содержат не три, а четыре цифры, первая из которых – «2».

Архитектурные особенности Sandy Bridge были обнародованы ещё на IDF 2010, то есть полгода назад. Но тогда на форуме показывали сразу много всего интересного, и вгрызаться в столь узкую тему не было никакой возможности. Кроме того, я считаю Алексея Рогачкова великим популяризатором, после его доклада и обсуждения любая сложная вещь становится понятной и логичной. Как в тех детских книжках про «что внутри». Алексей и сам сказал, что рад был собраться в такой камерной обстановке, чтобы иметь возможность разобрать архитектуру процессора по косточкам. Алексей напомнил: Пол Отеллини, выступая на IDF 2010, заявил о том, что эти процессоры сгенерируют для мирового рынка компьютеров порядка 125 миллиардов долларов оборота.

Начать придётся с картинки, знакомой всем ещё по материалам IDF 2010, тем более что г-н Рогачков за основу своего доклада взял презентацию на технической сессии Форума по микроархитектуре под названием «Intel® Next Generation Microarchitecture Codename Sandy Bridge: New Processor Innovations».

Прежде всего, на схеме видно, что нет никакой отдельной внутренней шины, которая связывала бы пару ядер. Впервые прямо на процессоре находится дисплейный порт (Embedded Display Port). Также на схеме появилась новая аббревиатура LLC. В остальном всё похоже на предыдущие поколения, например, поддержка дискретной графики (Discrete Graphics Support: 1x16 or 2x8). Однако и эти похожие вещи подверглись серьёзной модернизации. Это новые инструкции Intel® Advanced Vector Extension (Intel® AVX), новое поколение Intel® Turbo Boost, кэш-память с высокой пропускной способностью (High Bandwidth Last Level Cache), графическое ядро, интегрированное в кристалл процессора (ранее оно просто жило с процессором под одной крышкой).

Все эти новшества можно разделить на 4 направления: процессорное ядро, доставка данных к процессорному ядру, управление питанием и графика.

Перед создателями процессора Intel® Core™ 2-го поколения стояла очень сложная задача: архитектура Nehalem оказалась весьма удачной, планка, которую надо было преодолеть, установлена очень высоко – и это не красивые слова, пользователи процессоров Nehalem наверняка их подтвердят. Что может сделать разработчик изделия в такой ситуации? Есть три варианта:

  • Рост характеристик. Этот подход, к сожалению, знаком мне по конструкторской работе. Советские стандарты обязывали брать для сравнения зарубежные аналоги и наделять разрабатываемое изделие более «крутыми» параметрами. Однако, если в СССР ставилась задача догнать и перегнать Америку, то настоящей Кремниевой Долине никого догонять не надо. Тем более, что добиться роста производительности можно было, просто разогнав процессоры Nehalem и повысив энергопотребление, а значит, и тепловыделение. Стоит ли говорить, что разработчики Sandy Bridge не пошли по этому пути.
  • Иногда случается так, что разработчику удаётся внедрить новый функционал, не расплачиваясь за это ухудшением других характеристик. На слайдах с IDF 2010 добавление такой функции представлено как «Add “Cool” microarchitecture enhancements – Features that are better than linear performance/power». Я бы перевёл это как «улучшающая энергоэффективность», а г-н Рогачков предложил для краткости именовать такие решения «кульными».
  • Наконец, третий вариант на слайдах представлен как «Add “Really Cool” microarchitecture enhancements – Features which gain performance while saving power», то есть когда удаётся резко поднять производительность, и при этом снизить подводимую мощность. По терминологии Рогачкова – «очень кульно».

Для дальнейшего объяснения нам понадобится схема работы процессора. Не конкретно Sandy Bridge, а процессора вообще. Процессор содержит головную часть (Front End – непереводимая на русский игра слов), среднюю часть, область исполнения и связующие с внешним миром элементы. При работе процессор своей головной частью выбирает инструкцию и «пережёвывает» её, то есть дробит на маленькие, «съедобные» для него кусочки – микрооперации (IA instructions -> Uops). Эти микрооперации отправляются на подготовку к исполнению, при этом процессор запоминает порядок следования инструкций. Однако, поскольку данные для исполнения инструкций не всегда доступны «здесь и сейчас», процессор может не соблюдать очерёдность выполнения инструкций, и здесь, пожалуй, самая большая сложность. После выполнения всех микроопераций, они собираются в том порядке, в котором пришли, и этот результат отправляется наружу.

Первое отличие от предшественника Sandy Bridge демонстрирует уже в своей головной части – здесь появляется очередь из декодированных микроопераций – такой вот своеобразный кэш. Если кто знаком с гидравликой, то этот кэш аналогичен пневмогидроаккумулятору, выравнивающему давление в системе и позволяющему в критические моменты выбрасывать из себя накопленный запас. Сам по себе этот кэш не ускоряет работу других компонентов, однако позволяет декодеру полнее использовать свои четыре потока, не заботясь о том, что результаты некуда будет отдать. Наверное, можно сказать, что у процессора появился кэш памяти нулевого уровня (L0).

Так же был полностью переработан блок предсказания ветвлений. Как я уже говорил, это наиболее хитрая вещь во всём процессоре, потому что предсказания – это вообще дело неблагодарное. У процессора Nehalem средний процент «угадывания» составляет около 96%. Это хороший результат, но вот эти 4% неугаданных ветвлений заставляли откатываться назад, полностью очищать конвейер и повторять множество операции ещё раз. Совершенствование предсказания без изменения алгоритма возможно, но сделать это придётся за счёт глубины анализа, что неизбежно приведёт к росту энергопотребления. Было применено несколько новых приёмов, снизивших количество ошибочных предсказаний вдвое без роста энергопотребления этими операциями. Например, немедленно после правильного угадывания очищалась вся цепочка, которая реализовывала этот процесс и принимала на себя новую работу. Получилось «очень кульно».

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

Переходим к исполнительной части процессора и рассмотрим буфер переупорядочения. Здесь похожая задача: как увеличить объём буфера и не увеличить при этом энергопотребление. Для её решения появилось новшество под названием Physical Reg File (PRF) вместо используемого ранее centralized Retirement Register File. Суть новшества в том, что если в архитектуре Nehalem при переупорядочивании реально перезаписывались данные, то Sandy Bridge орудует только указателями. Это можно сравнить с ярлыками на рабочем столе, или, что ближе по смыслу, но не всем знакомо – с переиндексированием базы данных вместо её пересортировки (команды Sort и Index). Опять не могу удержаться и не обратить внимание, что здесь мы имеем дело с самым настоящим программированием, этакой мини-СУБД внутри процессора. И вот это сокращение объёма перезаписываемой информации позволило увеличить буфер, что изображено на таблице.

Сопутствующий эффект этого подхода проявляется при обнулении регистров. Раньше обнуление делалось через XOR, что приводило к отдельной микрооперации, теперь же оно производится добавлением регистра в список свободных регистров в появившейся «индексной» таблице, что означает нулевую латентность. Тоже «очень кульно» получилось.

Переходим непосредственно к кластеру исполнения и в первую очередь к добавленной в него функции Intel® Advanced Vector Extensions (Intel® AVX). Это 256 бит, что вдвое увеличивает пропускную способность процессора, как на векторных операциях, так и на операциях с плавающей точкой. Сделано это было с помощью сложения «колонок» каждого из портов, то есть опять эффект был получен без какого-либо увеличения энергопотребления.

Но важно не только иметь эти исполнители, их ещё надо чем-то кормить. В результате получилась вот такая сбалансированная структура.

Теперь, обобщая сказанное, можно вернуться к общей компоновке, но уже с пониманием работы её частей:

Другие архитектурные особенности включают повышение скорости обработки инструкций шифрования. Это принципиально для безопасности работы систем, поскольку отсутствие замедления работы при шифровании (а на некоторых операциях ускорение достигло 25%) может расширить применение безопасных способов работы с данными. Здесь надо отметить две современные тенденции.

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

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

Следующее важное новшество: интеграция графического ядра в процессор. Нет никаких сомнений, что графическим адаптером, интегрированным в процессор, легче управлять. В архитектуре Nehalem управление графическим ядром было реализовано только в мобильных процессорах и только через внешний драйвер. То есть графическое ядро и процессор сообщало операционной системе (точнее, специальному драйверу в ОС) об уровне своей загрузки, а драйвер уже пытался это сбалансировать. Теперь этот процесс реализован управляющей программой, зашитой в тот же общий кристалл, что, с одной стороны, повышает производительность системы, с другой стороны, снижает энергопотребление. Надо заметить, что процессор имеет три раздельных сети питания: фиксированной для системного агента (System Agent), одного регулируемого для ядер с кольцевой шиной (Cores+Ring), второго регулируемого для графического адаптера. Абсолютно новая организация кеш-памяти третьего уровня (из маркетинговых соображений её чаще называют – последнего уровня, Last Level Cache). Различие организации кэш-памяти Nehalem и Sandy Bridge сильно напоминает различие между HDD и SSD.

Большие изменения произошли в системе питания или энергопотребления процессора. Тенденция к оптимизации, разумеется, сохранилась, но это ведь только общие слова. А конкретно происходит гибкое регулирование энергопотребления фрагментами процессора, причём количество этих отдельных фрагментов и качество регулирования подачи энергии на каждый из них резко выросло.

Процессор получил четыре отдельных шины или интерфейсных блока:

  • кольцевая шина между ядрами/графикой/медиа;
  • кольцевая шина контроллера кэша-памяти;
  • оснастка кольца логики, разрешения конфликтов и контроллера кэш-памяти;
  • связи с системным агентом для ошибок кэша последнего уровня, анализатор трафика, некэшируемый доступ к памяти.

Поддерживается наиболее короткий путь по кольцу. Образно говоря, система в зависимости от ситуации принимает решение: двигаться против или по часовой стрелке. Чего она, естественно, не может – так это срезать путь по «хорде».

Обращает на себя внимание новое решение проблем арбитража. Можно даже сказать, что как таковой арбитраж исчез: при появлении возможности микрооперация «грузит себя» на конвейер. То есть, если раньше была система, аналогичная диспетчированию на железной дороге, где ни один локомотив не мог двинуться без команды диспетчера, теперь ситуация напоминает автомобильную дорогу – каждый сам себе хозяин и только соблюдает правила. Если кому-то понятнее – это переход от плановой к рыночной экономике. Особенно эффективно это решение будет работать при увеличении количества ядер. Я не на что не намекаю, просто констатирую факт.

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

Само описание работы нового поколения технологии Intel® Turbo Boost, равно как и эта картинка, показалась мне компромиссом наглядности и корректности изложения, при котором корректность и «физичность» изложения сильно пострадали. Пересказывать «каноническое описание» не поворачивается язык, а фантазировать, естественно, не хочется. Замечу только, что зигзагом по американским стандартам обозначается сопротивление, а не индуктивность, так что на электрической схеме, иллюстрирующей тепловые процессы, изображён не колебательный контур, а RC-цепь. Общий же смысл совершенствований в том, что теперь Intel® Turbo Boost стал адекватно учитывать динамику процесса, которая, кстати, сильно зависит от параметров установленного на процессор радиатора – почему и нужен настраиваемый блок. В первом приближении вся эта затея выглядит следующим образом: на кристалле процессора существует некое динамическое поле тепловыделения, зависящее от выполняемых задач. На этом поле есть некоторое количество температурных датчиков. Процессор обладает некоторой теплоёмкостью и теплопроводностью, также имеется радиатор, который вносит свои коррективы в динамику тепловой картины. И вот, при некоторых начальных тепловых параметрах системы возникает потребность быстро выполнить тяжёлую задачу, то есть напрячься по максимуму.

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

Таким образом, пройден большой и славный путь: сначала в Intel научились динамически изменять частоту процессора, потом – отдельных ядер, интегрировали в процессор видеоадаптер и научились наряду с ядрами процессора менять и его частоту. И вот теперь построена интеллектуальная система, позволяющая с одной стороны выжимать всё из имеющихся процессорных ресурсов, а с другой стороны – обеспечить минимальное энергопотребление на холостом ходу.

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

Графический процессор Sandy Bridge – это первый в мировой практике опыт интеграции графики и вычислений на одном кристалле. Первое очевидное преимущество такого решения: использование графическим ядром общего кэша последнего уровня. Это преимущество не с точки зрения производительности – здесь как раз лучше отдельная видеокарта. Но вспомним, что является сегодня главным трендом в вычислительной инфраструктуре – это консолидация и виртуализация ресурсов. То есть сначала мы их объединяем, а потом даём каждому по нужному им кусочку. Так вот, объединение графики с вычислителем на одном кристалле и есть такая же виртуализация ресурсов, и с теми же преимуществами, только на микроуровне. Сама микроархитектура графического ядра также претерпела изменения, позволяющие резко поднять производительность и осуществить поддержку DirectX 10.1 и Shader Model 4.1.

В своё время «бортовой звук» HD Audio, предложенный корпорацией Intel в 2004 году вместо AC'97, напрочь убил массовый рынок отдельных звуковых карт. Intel HD Graphics, реализованный в процессорах Sandy Bridge пока не замахивается на полное истребление внешних видеокарт, но, совершенно определённо, граница использования «бортовой» и внешней графики будет сдвинута. На сколько – покажет рынок.

При выборе процессора обратите внимание на его графическое ядро: оно теперь может быть в двух вариантах: Intel HD Graphics 2000 и Intel HD Graphics 3000. Как и следует ожидать, ядро под номером 3000 обладает всеми возможностями по максимуму, 2000 – урезанное.

Intel: архитектурные неизлишества… с хвостиком

Intel: архитектурные неизлишества… с хвостиком. Статья Владислава Боярова

16-я ежегодная конференция «КОСС Плюс» – возраст зрелости

16-я ежегодная конференция «КОСС Плюс» – возраст зрелости. Статья Владислава Боярова