26 февраля 2011
Обновлено 17.05.2023

Буря в песках. Изучаем новую процессорную архитектуру Intel Sandy Bridge

Буря в песках. Изучаем новую процессорную архитектуру Intel Sandy Bridge - изображение обложка

Компания Intel продолжает следовать стратегии развития «Тик-так» (Tick-Tock), принятой в 2006 году. Согласно этой стратегии, цикл разработки делится на два этапа, «тик» и «так»: в один год (на счет «тик») процессоры переводят на новые нормы производства, а еще через год (на «так») выпускают новую архитектуру.

В этом году часики Intel сделали «так»: на CES 2011 компания представила процессоры Sandy Bridge. Производитель подробно рассказал о новой архитектуре, похвалился достижениями и объявил сразу три линейки кристаллов. Сейчас мы будем с ними разбираться и тестировать — но для начала вспомним, в каком ключе Intel развивала процессоры последнюю пару лет.

Вчера

В 2008 году компания представила переработанные Core 2Core i7-9х0 на архитектуре Nehalem. С них Intel начала эксперименты с интеграцией, перенеся контроллер памяти с материнской платы на кристалл.

В 2009 году вышла линейка Lynnfield , бюджетная версия Nehalem. В ней под крышку кристалла переместили северный мост чипсета: к контроллеру памяти подселили чип PCIe 2.0.

В начале 2010-го появилось семейство Clarkfield. С ним Intel перешла с 45— на 32-нм техпроцесс и добавила в процессор самую настоящую видеокарту. Графика делалась по 45-нм нормам, стояла отдельно от процессорных ядер и с грехом пополам запускала игры пятилетней давности, но впечатление производила будь здоров.

Sandy Bridge — логическое развитие идей Intel. Множество улучшений в ядрах, более быстрая графика, гибкое управление энергопотреблением и разгоном. В общем, традиционное обновление архитектуры: вроде то же самое, но работает лучше. Глобальных изменений почти нет. Просто сказать «вот тут стало больше, поэтому работает быстрее» не получится, надо разбираться с каждой мелочью и залезать в основы работы компьютера. Чтобы облегчить восприятие статьи, мы подготовили множество поясняющих врезок, к которым и рекомендуем обращаться во время чтения основного текста.

Новая память

Начнем с процессорных ядер. Первое изменение сделали в блоке Front-End (см. врезку «С немецким педантизмом») — добавили кэш-память L0. Сто и т она сразу после декодеров и записывает все входящие микрооперации с блока Front-End. Приступая к работе над новой задачей, процессор обращается к кэшу L0 и проверяет, нет ли там нужных инструкций. Если есть, то забирает их напрямую из кэш-памяти. Если нет, то дает сигнал блоку Front-End — и работает по старой схеме. Прелесть подхода в том, что, когда нужная микрооперация найдена, Front-End отключается. В итоге экономится и время, и энергопотребление.

Никакого алгоритма работы у L0-кэша нет. Сюда записывается все подряд, но за счет того, что L0-кэш хранит до 1500 микроопераций, шанс попадания, по словам Intel, составляет порядка 80%.

С немецким педантизмом

Блок Front-End также называется блоком предварительной выборки. Он отвечает за общение программы с процессором, своевременно загружает нужные данные и объясняет кристаллу, что надо делать.

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

Ясновидящий

Вслед за блоком Front-End переработали блок предсказания ветвлений (см. врезку «На кофейной гуще»): увеличили объем памяти и придумали новую систему записи удачных предсказаний. Если в Nehalem каждую ветку программы помечали в таблице двумя битами (правильно/неправильно), то теперь на одно «правильно» записывают несколько веток. То есть объем таблицы тот же, а полезной информации больше. Экономнее стали обращаться и с кэш-памятью. Раньше на адрес ветки место в L1-кэше выделяли с запасом — теперь, в Sandy Bridge, каждый адрес занимает ровно столько, сколько ему нужно, ни одного байта не тратится зря.

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

Без очереди

Сильнее всего в Sandy Bridge переделали блок Out-of-Order (см. врезку «Первый пошел»), добавив физический регистр файлов — такой шкаф с ящиками. Перед входом в Out-of-Order инструкции складывают в него свои данные, а на выходе их забирают. Таким образом разгружается шина данных, а инструкции проскакивают Out-of-Order налегке.

Эта схема значительно ускорила работу блока внеочередного исполнения и позволила Intel подключить поддержку инструкций AVX (Advanced Vector Extensions). Новый набор должен заменить устаревшие инструкции SSE (Streaming SIMD Extensions) и расширить возможности SIMD-блоков. В отличие от SSE, инструкции AVX работают не с 128-, а с 256-бит регистрами. Это увеличивает точность вычислений и позволяет одновременно работать с б о льшим количеством данных. Иными словами, программистам будет проще писать программы, а у нас будут быстрее работать графические, звуковые, видео— и тому подобные проигрыватели или редакторы. Сейчас AVX поддерживают лишь несколько программ, но Intel возлагает на технологию большие надежды и всячески поощряет ее использование.

Интересно, что для введения AVX не пришлось менять SIMD-блоки — они все так же работают с 128-битными регистрами, а для расчета AVX просто объединяют усилия. То же самое происходит и с памятью L1, в которой расположены регистры. Как и в Nehalem, в Sandy Bridge память связана с блоком Front-End двумя шинами. В старой архитектуре одна отвечала за передачу, а вторая — за прием данных. Теперь они работают в обе стороны: когда нужно передать сразу 256-бит информации, объединяются и загружают в SIMD нужное количество данных.

На этом изменения в процессорных ядрах заканчиваются. Как видите, никакой революции: тут добавили, там улучшили, и все вместе стало работать быстрее. Давайте теперь посмотрим, что Intel придумала в остальной части процессора.

На кофейной гуще

Блок предсказания ветвлений — одна из важнейших частей современного процессора. Он не дает простаивать блоку Front-End. Предсказатель угадывает, какую ячейку памяти и инструкцию может запросить программа в следующий момент, и заставляет процессор просчитывать ее заранее.

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

Чтобы реже ошибаться, предсказатель переходов ведет две таблицы: в одной хранит информацию о том, откуда берутся кресла, во второй — возможные инструкции. Каждый прогноз предсказатель помечает двумя битами (правильно/неправильно), а затем сверяет таблицы и выводит закономерности — скажем, о том, что подогрев нужен только на каждую третью машину, а кресла — каждый раз. Чем дольше предсказатель наблюдает за программой, тем реже он ошибается.

Графика

Графическое ядро на процессорах Clarkdale вызывало противоречивые чувства. С одной стороны, процессор и видеокарта в одном флаконе — это круто: торжество технологий. С другой — игровому компьютеру с дискретной видеокартой встроенное ядро как собаке пятая нога, а платить за него все равно приходится.

С Sandy Bridge все то же самое: новые процессоры по умолчанию оснащены графическим ядром. Только теперь оно создается по 32-нм технологии и сто и т на одном кристалле с процессорными ядрами.

Intel представила два графических процессора — HD Graphics 2000 и HD Graphics 3000. Различие между ними — в количестве потоковых ядер (Execution Units). У младшей версии их шесть, у старшей — двенадцать. К сожалению, сравнить HD Graphics не с чем, слишком они отличаются от карт NVIDIA и AMD. Тут нет видеопамяти — используется кэш L3. Ядра работают только с жестко заданными функциями — никакого GPGPU. Пожалуй, единственная понятная нам здесь характеристика — это тактовая частота. Новая графика работает на скорости 650 или 850 МГц и может разгоняться до 1100, 1250 и 1350 МГц.

Хотя Intel утверждает, что новое графическое ядро в два раза быстрее встроенного в Clarkdale, будущее HD Graphics нам видится смутно. С дискретными видеокартами ей не соревноваться — проиграет. Поддержки DirectX 11 нет, только DirectX 10.1. До офисных компьютеров Sandy Bridge доберется не скоро. Пожалуй, единственное, где HD Graphic придется к месту, — это ноутбуки. Мобильные процессоры оснащают HD Graphics 3000, топовой версией, а значит, поиграть можно будет даже на слабом ноутбуке.

Первый пошел

Блок Out-of-Order (блок внеочередного исполнения операций) следит за тем, чтобы операции выполнялись только при наличии нужных данных и процессор не простаивал почем зря.

Представьте себе супермаркет. Вы взяли бутылочку воды и хотите ее оплатить. Подх о дите к кассе, а там стоит человек с доверху набитой тележкой. И вы ждете, пока он выложит все продукты, наберет жвачек, конфет… в общем, тратите время. А если бы рядом стоял специальный человек — Out-of-Order, — то он бы вам сказал: «Проходите, оплачивайте свою воду». И касса бы не простаивала, и вы свое время не теряли.

С программами то же самое. Блок Out-of-Order разбирается, что уже можно считать, а что пока следует отложить. При этом он не видит разницы между началом или серединой программы. Главное — не давать простаивать вычислительным ядрам, а уж собрать полученные данные и выстроить их в нужном порядке можно и потом.

Агент Смит

Помимо графического ядра, под крышкой кристалла стоит еще и северный мост. Теперь он называется System Agent, а не un-core, как в Lynnfield и Clarkdale. В него входит двухканальный контроллер памяти, PCIe 2.0, шина FDI для вывода изображения с графического ядра и чип управления питанием (Power Control Unit).

Изменений немного. Контроллер памяти научили работать с планками DDR3 на частоте до 1333 МГц и через множитель разгонять их до 2133 МГц. Шина FDI теперь поддерживает DisplayPort 1.2 и HDMI 1.4 — можно смотреть Blu-ray 3D. Чип PCIe 2.0 оставили прежним: доступно 16 линий, которые можно разделить на два слота PCIe x8. Контроллер PCU умеет гибко регулировать частоту и питание как процессора, так и графического ядра, поддерживать баланс температуры и экономить энергопотребление любыми возможными способами.

Третье транспортное

Чтобы собрать такое количество компонентов в одно целое, Intel пришлось отказаться от перекрестных шин и придумать кое-что новое. Решение подсмотрели в серверных процессорах Nehalem EX , в которых используется кольцевая шина (Ring Bus). Принцип ее работы можно сравнить с транспортным кольцом. Данные непрерывно двигаются по дороге и делают остановки в нужных местах: у процессорного ядра, в системном агенте, кэш-памяти L3, видеокарте и так далее. Прелесть в том, что количество остановок не ограничено, дополнительные пункты можно добавлять до бесконечности.

В Sandy Bridge шина разделена на четыре кольца: данные, запросы, мониторинг состояния и подтверждение. Каждое может переносить по 32 байта за такт и работать на частоте процессора. Пиковая пропускная способность составляет 96 Гбит/с. К сожалению, при простое и снижении частоты ядер скорость шины падает, и из-за этого может пострадать работа графического процессора. То же самое касается и L3-кэша.

Одна на двоих

Заставить процессор считать быстрее сложно. Да, можно вводить всякие предсказатели, внеочередное исполнение и тому подобное, но скорость работы все равно зависит от времени выполнения одной операции.

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

Очередной пример. Вам дали калькулятор и попросили сложить три пары чисел. Вы берете одну пару, складываете и записываете результат, другую — складываете и записываете результат, третью — складываете и записываете результат. Способ верный, но долгий. Чтобы ускорить процесс, можно позвать еще двух человек, вручить каждому по паре чисел и сложить все одновременно. Так за один такт вам удастся выполнить всю задачу. Главное в такой ситуации позаботиться, чтобы команда «складывать» и числа были доступны одновременно всем действующим лицам.

Такой способ увеличения производительности называется SIMD (Single Instruction — Multiple Data, «Одна инструкция — много данных»). В ядра процессора ставят несколько вычислительных блоков и с помощью специальных инструкций (SSE, AVX) заставляют их работать параллельно. Таблицу с числами для них хранят в специальной ячейке памяти — регистре.

Запомни

В Sandy Bridge L3-кэш переименовали в Last Level Cache (LLC) и разделили на части — по количеству процессорных ядер в кристалле. Каждый кусочек L3-кэша управляется независимо и для экономии энергии может быть переведен в спящий режим. Компоненты системы связаны с LLC кольцевой шиной, а процессорные ядра — прямым контактом. За заполнение L3-кэша отвечает системный агент, который следит за распределением свободного места, деля его между основными и графическим ядрами.

Как и кольцевая шина, кэш-память L3 работает на частоте процессора. При максимальной нагрузке пропускная способность взлетает до небес, при простое — падает, и в этом случае опять страдает графическое ядро.

Большая идея

Понятное дело, Sandy Bridge — это не только изменения и улучшения. Intel не была бы собой, если не придумала что-нибудь эдакое. Речь идет о Quick Sync , также известном как Intel Media Engine , встроенном движке для работы с видео.

Все мы знаем, что Full HD-видео — это злейший враг процессора, потому что загружает его на 100% и тормозит всю систему. Этим грамотно пользовались NVIDIA и AMD: потоковые процессоры их видеокарт забирали на себя задачи декодирования и разгружали кристалл. Та же ситуация была и с перекодированием видео в другой формат: процессор тратил на это дело по полтора часа, видеокарты справлялись с задачей за 20-30 минут. В итоге сложилось мнение: хочешь работать с видео — покупай видеокарту.

Газу!

Технология Turbo Boost впервые появилась в процессорах Nehalem — Core i7-9x0. Принцип у нее простой: если часть ядер простаивает, то у активных автоматически поднимается частота. Делается это за счет того, что при простое ядра не потребляют энергию и создается запас по энергопотреблению (TDP). Его-то и используют для увеличения частоты работы.

Intel решила с этим бороться. В графический движок Sandy Bridge встроили специальные ядра с жестко заданными алгоритмами декодирования MPEG-2, H.264 (AVC), VC-1 и других популярных форматов. Обработку движений, деинтерлейсинг, цветокоррекцию взвалили на плечи потоковых ядер (тех самых Execution Units). И — вуаля! — процессор научился проигрывать до пяти Full HD-потоков без нагрузки на основные ядра. Правда, он округляет скорость воспроизведения до 24 кадров в секунду, что на больших телевизорах может приводить к эффекту мыльной оперы, когда актеры двигаются рывками, но это уже мелочи.

За счет огромной скорости декодирования Sandy Bridge отлично справляется и с переводом фильмов в другой формат, делая это практически на лету.

Единственная проблема состоит в том, что Quick Sync работает только при активном графическом ядре. Когда изображение подается с дискретной видеокарты, медиадвижок недоступен. Будем надеяться, Intel это исправит.

Разогнался

Отдельно поговорим о разгоне. Как обычно, есть два варианта — автоматический и через BIOS. Начнем с первого, а именно с технологии Turbo Boost , которую в Sandy Bridge обновили до версии 2.0.

В первом Turbo Boost ядра процессора разгонялись в зависимости от запаса TDP. Скорость удавалось повысить всего лишь на 200-300 МГц, что практически не ощущалось. Turbo Boost 2.0 работает по новому принципу. Она отслеживает текущую температуру процессора и, как только появляется определенный запас, повышает частоту на 400-500 МГц. В таком режиме кристалл работает, пока не нагреется, а затем выходит на стандартную скорость. Дальше все повторяется: разгон, нагрев, понижение частот. По словам Intel, череда кратковременных прибавок скорости дает б о льший прирост производительности, чем постоянная работа с учетом TDP.

Циферки

Intel не стала менять названия процессорных линеек, оставив Sandy Bridge знакомые нам Core i3, i5 и i7. Отличить старые кристаллы от новых не составляет труда: у первого поколения процессоров маркировка трехзначная (например, Intel Core i5- 661 ), а у второго — четырехзначная (Intel Core i5- 2500 ).

Правда, небольшая путаница все равно остается, потому что нумерация у настольных и мобильных моделей сквозная. Скажем, настольный процессор с клеймом «2400» относится к линейке Core i5, а мобильный с индексом «2410M» — уже к Core i3.

В остальном маркировка свеженьких Sandy Bridge очевидная:

1 — Серия:

  • i7 — топовые процессоры, поддерживают все технологии Intel, имеют четыре ядра и оснащаются кэш-памятью L3 объемом 8 Мб;
  • i5 — средний ценовой сегмент. Процессоры могут быть двухъядерными и четырехъядерными, лишены поддержки Hyper-threading, Virtualization Technology и Trusted Execution, оснащаются 3 или 6 Мб кэш-памяти L3;
  • i3 — младшая серия Sandy Bridge, выпускается только в двухъядерном варианте и с L3-кэшем объемом 3 Мб.

2 — Указывает на второе поколение серии Core i-Х , у всех процессоров Sandy Bridge одинаково.

3 — Косвенно свидетельствует о положении процессора в серии. Чем старше цифра, тем быстрее процессор. Не влияет на поддерживаемые технологии.

4 — Версия:

  • K — процессор с разблокированным множителем;
  • M — мобильный процессор;
  • S — процессор со сниженным до 65 Вт энергопотреблением;
  • T — процессор со сниженным до 45/35 Вт энергопотреблением, самый экономичный и медленный в серии.

Оплакивание

С ручным разгоном все не так радужно. Как известно, частота процессора — это произведение скорости шины (BCLK) и множителя ядра. Соответственно, разгонять процессор можно, либо увеличивая значение BCLK, либо изменяя множитель. В прошлых процессорах Intel множитель был разблокирован только в дорогих моделях линейки Extreme Edition. Поэтому все работали с шиной, и результаты всегда были отличными: даже младшие Core i7 легко поднимались с 2,66 до 4 ГГц. С Sandy Bridge про это можно забыть, разгон по шине Intel заблокировала.

Компания завязала все компоненты системы на один генератор частоты (BCLK), и теперь при разгоне процессорных ядер вверх ползут частоты встроенной видеокарты, кольцевой шины, L3-кэша, контроллера памяти, шин PCIe и так далее. В общем, всего того, что для разгона никак не предназначено и при малейшей попытке поднять частоту сбрасывает настройки. Обойти это невозможно.

Теперь единственный вариант — работать с множителем. Intel уже объявила о выпуске соответствующих процессоров под разгон и продает их на 700-900 рублей дороже стандартных моделей.

Intel представляет

На CES 2011 Intel представила 29 процессоров на новой архитектуре. Пятнадцать из них анонсированы для ноутбуков, четырнадцать — для настольных компьютеров. Intel не стала придумывать новые линейки и оставила известные Core i3 , i5 и i7. Изменилась только маркировка: название модели теперь записывается не тремя, а четырьмя цифрами (см. врезку « Циферки »). Самый дешевый настольный процессор Sandy Bridge, Core i3-2100 , продают за 4000 рублей, самый дорогой, Core i7-2600K , за 12 000 рублей. Кристаллов по 1000 евро за штуку нет. В верхнем ценовом диапазоне Intel оставила старые Nehalem под чипсет X58 Express.

Помимо стандартных моделей, Intel представила два процессора с разблокированным множителем — Core i7-2600K и Core i5-2500K. И это почему-то единственные кристаллы с топовой HD Graphics 3000, хотя что с ней делать оверклокерам — непонятно. Как и непонятно, зачем Intel придумала для Sandy Bridge новый сокет. Чем не подошел LGA1156 , толком не объясняют — просто предлагают купить новую материнскую плату с LGA1155.

Продолжим

Сейчас в продаже есть два чипсета — H67 Express и P67 Express. По сравнению с пятой серий изменений немного: портов USB 2.0 теперь не 12, а 14 штук, появились два контакта SATA Rev. 3, исчезла поддержка PCI. Все остальное по-старому: есть LAN и 8 линий PCIe.

Чипсет P67 Express позиционируется для игровых систем. Он не работает со встроенной в процессор графикой, но может разделить 16 линий PCIe 2.0 на два слота PCIe x8. H67 Express этого не умеет, зато оснащен шиной FDI и видеовыходами DisplayPort, HDMI, DVI и VGA.

Разгонять процессоры разрешают только на P67 Express, H67 разблокированного множителя не видит. Почему — неясно, ведь только кристаллы с суффиксом «K» оснащены топовой HD Graphics.

Все эти несуразности Intel должна разрешить в чипсете Z68 Express , информация о котором недавно утекла в интернет. Это будет копия H67, но уже с поддержкой разгона и двух слотов PCIe x8.

* * *

В теории Sandy Bridge выглядит многообещающе. Огромное количество доработок должно обеспечить ощутимый прирост производительности. Встроенное графическое ядро — отличное решение для офисных компьютеров и ноутбуков. Ответ AMD и NVIDIA в работе с видео — вообще выше всяких похвал. Одним словом, в Sandy Bridge нет ничего революционного, но количество и качество переработок впечатляет.

Картину портит только странная политика Intel. Зачем оверклокерским процессорам HD Graphics 3000? Была ли необходимость в смене сокета? Почему H67 Express не видит разблокированного множителя и не может работать с двумя видеокартами? Все эти мелочи немного портят общее впечатление, но не будем делать поспешных выводов, сначала — тесты.

Комментарии
Чтобы оставить комментарий,Войдите или Зарегистрируйтесь