Компьютеры

Haswell: заглянем под крышечку

Давно отшумели страсти по поводу выхода нового процессорного ядра Intel Haswell. Результаты тестов, в сравнении с предыдущим поколением Ivy Bridge, многих обескуражили. Но не рано ли наступило разочарование? Попробуем разобраться, над чем же так усердно трудились инженеры Intel, и чего стоит ожидать от новичка в ближайшем будущем.

Проапгрейдив до упора Sandy Bridge и переведя его на новый техпроцесс в прошлом году, Intel вплотную подошла к очередному шагу «tock», предписанному самой себе несколькими годами ранее.

«Тик-так» Intel — это не всегда бомба, но, определенно, символ технологического прогресса

На шагах «tock», как явствует из иллюстрации, необходимо вводить новую архитектуру. Что и было сделано — мир увидел микроархитектуру под кодовым именем Haswell и базирующиеся на ней 14 моделей процессоров Core i5 и i7 под разъем LGA 1150 (также известного как Socket H3), из них восемь «обычных» и шесть low power. Вообще, тема энергопотребления (или, если быть точным, «энергопотребления, адекватного для текущей вычислительной мощности») проходит красной нитью через микроархитектуру Haswell, потому как Intel видит большое будущее для своего творения в мобильном сегменте, а без процессора или SoC с умеренными аппетитами делать там нечего. Основным своим конкурентом, судя по сравнениям в открытых источниках, Intel считает поделки на ARM-процессорах, так как они уже хорошо прижились в мобильном сегменте и показали там свою жизнеспособность.

На ниве питания процессоров Intel уже немало сделала. Уходя от изначального регулирования TDP только с помощью напряжения питания процессора, подаваемого на него с преобразователя материнской платы и тактовой частоты ядер, Intel перенесла часть преобразователей в CPU, тем самым открыв для себя возможность более точно (а значит, эффективно) дозировать напряжение на каждом из других блоков, расположенных на кристалле. К тому времени процессор уже перестал быть только процессором в изначальном понимании этого слова и включал в себя контроллер памяти и другие части северного моста (NB), что в свое время позволило существенно упростить разводку материнских плат и снизить энергопотребление связки CPU+NB.

Работа с питанием также велась и в сторону рационального использования, когда тот или иной блок функционировал (читай — потреблял электричество) только в нужные моменты, а в периоды простоя отключался и не тратят попусту энергию. Одним из плодов работ в этом направлении стало появление в системах Intel наряду с состоянием S0 состояний S0ix, который значительно сокращал энергопотребление процессора в моменты простоя до состояния «спящей системы» (состояние S3, в него переходит ноутбук после захлопывания экрана в рабочем состоянии). Фактически, система могла «спать» абсолютно прозрачно для пользователя, так как переход в S0iх составляет 450 микросекунд, а пробуждение — 3,2 миллисекунды (0,00045 с и 0,0032 с соответственно). Для сохранения экрана в активном состоянии разработана технология PSR (Panel Self-Refresh), подразумевающая наличие буфера, хранящего несколько последних кадров. Это позволяет снижать нагрузку на графический процессор, особенно при нечастом обновлении информации на экране (например, при чтении текста), что, в свою очередь, дает возможность снизить энергопотребление графического процессора.

Новый процессор Intel умеет экономить энергию значительно лучше предшественников

Правда, для этого необходима аппаратная поддержка со стороны монитора, так что широкое применение этот способ энергосбережения может найти в мобильном сегменте, где «монитор» и «вычислительная часть» являются одним устройством. Но для демонстрации наработок Intel пример очень подходит, тем более что они нашли реализацию в процессорах на архитектуре Haswell. Так, блок PCU (Power Control Unit) в Haswell умеет очень эффективно использовать энергию за счет множества «режимов работы», в каждом из которых активны только необходимые сейчас блоки. Это, по заверениям Intel, позволило снизить энергопотребление в простое почти в пять раз по сравнению с прошлым (третьим) поколением процессоров, Переключение между «режимами» ускорено на четверть, что позволяет более активно управлять энергопотреблением ядер и «засыпать их» даже в тех случаях,которые в прошлом поколении были нецелесообразны из-за долгой процедуры включения/выключения. Тут ядро пару миллисекунд «поспало», сэкономим доли милливатта, там «вздремнуло»... Так и набираются сэкономленные ватты.

Внутренняя архитектура процессора также была серьезно доработана, хотя глобально ничего не изменилось. Intel продолжает шлифовать и дорабатывать кусками архитектуру, применявшуюся ещё в Conroe. Правда, различий между Ivy Bridge и Haswell куда больше, чем между Sandy Bridge и Ivy Bridge. Последний, по моему скромному мнению, вообще был рестайлингом для «Санди»; из существенных изменений можно отметить лишь переход с 32 нм на 22 нм техпроцесс.

Архитектура Intel Haswell в виде схемы

В процессорном блоке Haswell сохранился 14-19 ступенчатый конвейер, без изменений перешел и кэш на полторы тысячи микроинструкций, а вот блок декодирования инструкций теперь единый и не делится между двумя потоками. Размер блока Out-of-Order Window (OoO) увеличен со 168 до 192 записей, а в Reservation Station добавились два порта, увеличив общее число до восьми. В Sandy Bridge было шесть портов для параллельного выполнения шести микроопераций. Три из них используются для операций с памятью (чтение/запись), три — математическими операциями. Один добавленный порт используется для выполнения целочисленных математических операций и ветвления, а второй — для вычисления адреса.

В Reservation Station добавилось два порта для микроопераций

Были переработаны блоки FMA (Fused Multiply-Add) в портах 0-1, а также добавлена поддержка набора инструкций AVX2 (Advanced Vector Extensions 2). Это позволяет значительно повысить производительность как при однотипной, так и при смешанной нагрузке, но все-таки более всего выросла скорость выполнения операций с плавающей точкой — Intel заявляет о двукратном повышении производительности.

Новые наборы инструкций — залог будущей эффективности

На практике можно ожидать прирост при работе с мультимедийным контентом и в 3D.

Новый блок FMA способен дать серьёзный выигрыш FLOPS за такт

Не остался без внимания и КЭШ. Скорость работы L1 и шины между L1 и L2 были увеличены вдвое, с 32 до 64 байт за цикл в обоих случаях; латентность осталась без изменений. Доработан универсальный TLB (Translation Lookaside Buffer): с 4К до расширенного 4К+2M, ширина шины увеличена вдвое. Доступ к КЭШу L3 теперь шире благодаря возможности обрабатывать запросы data и non data одновременно.

Блок TSX поможет распределить нагрузку между ядрами процессора

В Haswell был добавлен набор инструкций TSX (Transactional Synchronization eXtensions), позволяющий повысить скорость работы за счет «умного» оперирования теми данными, к которым одновременно обращаются несколько ядер. Это должно повысить эффективность работы процессора с теми задачами, которые трудно распараллелить, а также дает программистам возможность переложить часть работы по распределению нагрузки между ядрами на процессор. TSX, как и AVX2 — удобный инструмент для разработчиков, которые, умело оперируя им, могут добиться значительного роста быстродействия для своих приложений. По этой же причине мгновенного результата «здесь и сейчас» от этих новых наборов инструкций ждать не стоит.

Новшества в Haswell направлены, в конечном счете, на практические задачи

Видеоядро также серьезно доработано. Intel последовала по стопам AMD и NVIDIA в определении с мощностью: старшие модели от младших отличаются количеством вычислительных мощностей. Менее мощные носят название GT1 и GT2, полноскоростные и более мощные — GT3.

Блок-схема новых видеоядер Intel

Разница между GT2 (HD Graphics 4600) и GT3 (HD Graphics 5000) в количестве EU (Extention Units): 20 и 40 соответственно, максимальная тактовая частота 1300 МГц, возможна установка до 128 Мбайт памяти (подозреваю, это относится к мобильным версиям). Добавлена поддержка DirectX 11.1, OpenCL 1.2 и OpenGL 4.0, максимальное разрешение повышено до 3840x2160 (через DisplayPort), добавлен MFX (Multi-Format Video CODEC), аппаратная поддержка SVC (Scalable Video Coding), аппаратный кодер MPEG2, аппаратный MJPEG декодер. В целом производительность HD 5000 по сравнению с HD 4000 должна вырасти в два раза.

Как видно, Haswell серьезно раскачан относительно предшественников, и не просто «для галочки» — многие нововведения способны повысить быстродействие уже сейчас (по большей части это относится к видеоядру), другие сделаны с прицелом на будущее использование. И все это при снижении энергопотребления без ущерба производительности: когда пользователь захочет получить от процессора на архитектуре Haswell всю его мощь, он её получит. Лично мне такой путь эволюции нравится куда больше, чем пресловутое ограничение производительности во избежание недоразумений (практикуется одним производителем видеопроцессоров).