Ivy Bridge – един по-голям „тик“
Преди години Intel бяха изпаднали в рядка ситуация – архитектурата NetBurst се оказа задънена улица и удари в проблемите свързани със смаляването на размерите на транзисторите. В следствие на това за един кратък период от време компанията изоставаше от конкурента си AMD. Това не трая твърде дълго и Intel се завърнаха мощно с прехвърлянето към архитектурата Core. От тогава нататък компанията твърдо се придържа към стратегията „тик-так“. Казано накратко тя се състои в следното: целия цикъл грубо се събира в 2 години. Едната година е „тик“-а или внедряването на нова технология на производство използвайки оптимизиран вариант на предходната архитектура. На втората година идва „так“-ът, или внедряването на нова архитектурата по вече добре познатия и усвоен процес, което сериозно намалява възможните производствени проблеми. За изминалите години компанията се придържаше към този цикъл със завидно упорство представяйки архитектурите Conroe (65 нм, „так“), Penryn (45 нм, „тик“), Nehalem/Lynnfield (45 нм, „так“), Westmere/Arandale(32 нм, „тик“) и “SandyBridge” (32 нм, “так”).
И ето че през тази година дойде време за новия „тик“ цикъл с архитектурата Ivy Bridge. Този път обаче от компанията говорят за “тик”+ или нещо повече от стандартната лека ревизия свързана най-вече със смяната на процеса. И имат основателни причини за това. От една страна Intel е първата компания която внедрява новата технология на производство с „триизмерни“ транзистори, освен самото преминаване към по-малки литографски размери. Но заедно с това на много сериозно развитие подложени и графичното ядро в процесора, което съществено е увеличило размерите и производителността си. В тази статия ще стане дума именно за него и неговата производителност. И макар промените по процесорните ядра да са малки, все пак цялостната архитектура има нужда от подобаващо представяне, за което ще получи и отделна статия. А сега нека видим какво са постигнали от Intel и могат ли да се противопоставят на доста по-опитните в графично отношение AMD.
Архитектура
Официалното название на графичния процесор на Интел е просто Intel HD Graphics, като наследството му може да се проследи назад до древния чипсет Intel 965G, който въведе за първи път програмируемата архитектура на компанията. Малко или повече всички следващи графични модели са базирани на него, като освен екстензивно, с нарастване на броя на функционалните блокове, подобренията са и на ниво възможности. Версията в Ivy Bridge е 7-мо поколение (Gen.7 за по-кратко) на тази архитектура и най-важната й разлика спрямо предишните е, че за първи път се поддържа DirectX 11, както и OpenCL 1.1. Заедно с това Gen.7 архитектурата е силно модулна, както всъщност и целия процесор, за да може лесно да се прекроява според нуждите на конкретната ниша на пазара. В графичната част има 5 отделни дяла – мултимедийна обработка, дисплей, глобален, общ, шейдерен. За първите два смятам че имената им са достатъчно говорещи - очевидно първият се занимава с видеоускорение и прекодиране, а вторият отговаря за извеждането на екрана. Глобалният включва фронтендът на чипа – примитивен сетъп, вертексна обработка, команден процесор и теселатора и свързаните с него блокове за domain и hull шейдери и т.н. Общият включва основно части от бекенда на чипа, като растерните оператори и L3 кеша, но също и някои елементи от фронтенда, които евентуално биха подлежали на мултиплициране. И накрая шейдерния дял, логично включва изчислителните блокове, но за разлика от предходните поколения, също в него се намират и текстуриращите модули. Всъщност чипа може да има няколко такива дяла, на което всъщност се дължи и описаното разделение.
За съжаление за Глобалния дял няма особено много информация, но за сметка на това има доста свързана с шейдерното ядро. А то е подложено на сериозна преработка спрямо предходното, 6-то поколение, намиращо се в процесорите Sandy Bridge. Шейдерния дял състои от 8 изпълнителни блока във варианта GT2 и от 6, както в старата Gen.6 архитектура, във варианта GT1. Аз лично съм склонен да смятам, че всъщност и в двата случая дяловете са идентични, просто в GT1 част от ресурсите са блокирани. Докато при Sandy Bridge, всеки от изчислителните блокове е разполагал с 4 КБ собствен инструкционен кеш, сега те са обединени в един общ 32 КБ кеш за целия дял, което предполага увеличена ефективност. Всеки дял може да поддържа едновременно по 8 нишки в процес на изпълнение спрямо 5 при Gen.6, като те се избират от буфер поддържащ 16 нишки. Друга разлика е, че регистрите с общо предназначение са увеличени до 1024 за дял (32 КБ), спрямо 640 (20 КБ) в предходното поколение, като тези 1024 поемат и работата на допълнителните 120 (3,75КБ) регистъра за съобщения. Увеличението в общи линии е пропорционално на нарасналия брой изпълнителни блокове, така че реално достъпния брой регистри на блок/нишка не е увеличен.
Самите изпълнителни блокове представляват двойка 4-елементни векторни АЛУ. Първият АЛУ, както при Gen.6 архитектурата, поема основната част от простите инструкции (преди всичко вариации на FMA и MADD инструкциите, масово използвани при графичните приложения), както и някои по-сложни, като сума на абсолютните разлики. Естествено инструкциите с разширени с нужните за поддръжка на DX11, като освен това от Intel са добавили и възможност за изчисления с двойна точност и то с доста висока производителност – ½ от производителността с единична точност. Вторият АЛУ при SandyBridge се занимава с различни сложни функции, като например тригонометрични функции, повдигане на степен, деление и т.н. Съществената разлика в Gen.7 е, че втория АЛУ е разширен да поддържа FMA/MADD инструкции с единична точност и някои регистрови операции. Благодарение на това, теоретичните изчислителни възможности нараства практически двойно, а реалното приложение на втория АЛУ нараства от около 10% до 60-70% от случаите. Заедно с увеличения брой на изпълнителните блокове това означава драстично подобрение на изчислителните възможности на един шейдерен дял, като вероятно дори Gen.7 GT1 може да се доближи до производителността на GT2 версията на Sandy Bridge.
Друга важна промяна е, че дяловете на шейдерното ядро вече включват и текстуриращите блокове в себе си, което позволява скалирането и на текстуриращата производителност между различните варианти на графичния адаптер. Това е и логична стъпка, предвид факта, че изпълнителните блокове използват текстурните семплери за достъп до паметта. Във всеки дял има по 4 семплера, всеки от които може да генерира по 8 адреса. Не е ясно точно колко филтриращи блока, но вероятно и те са 4, образувайки фактически един текстурен куад, подобно на архитектурите на AMD, при които 4 текстурираши блока са закачени към един изчислителен блок. Текстурният кеш е разделен на 3 нива, като L1 е с обем 4 КБ и е само за четене, като е подкрепен от 24 КБ с L2 кеш за четене/запис. Поредната разлика с предходното поколение е наличието на ново ниво кеш, L3, който е с обем 256 КБ. Той е споделен между шейдерните дялове, като заедно с това се използва за инструкции и константи. Графичното ядро може да споделя и по-големия L3 кеш на процесорните ядра с размер до 8 МБ, който технически погледнато се явява L4 за него.
Текстуриращите блоковете са разширени с поддръжка на BC6H/BC7 алгоритми за компресия и имат чувствително подобрен алгоритъм за анизотропна филтрация. В Gen.6 графичните процесори анизотропната филтрация беше с изключително лошо качество, силно ъглово зависима, нещо което от години не се използва при дискретните графични адаптери. В Gen.7 разликата е силно намалена, като ъгловата зависимост е практически елиминирана и разликите в качеството спрямо моделите на AMD и Nvidia са минимализирани. Всъщност моделите на NVidia все още използват алгоритъм, който не е изцяло ъглово независим, така че в това отношение може дори да се каже че Gen.7 ги изпреварва.
Накрая, РОП частта е останала като цяло непроменена спрямо предходното поколение – един-единствен дял, който може да генерира по 4 пиксела с 32-битова точност за такт. Поддържат се 2х и 4х мултисемплиране, което така или иначе се изисква за съвместимост със DirectX 10.1 и 11. За съжаление не е ясно колко Z/Stencil отчета на такт могат да се генерират. РОП дяла е подкрепен от 32 KB depth кеш и 8 KB цветови кеш.
Дисплей и мултимедия
Intel са доусъвършенствали частта за ускорение на видеото, като вече се поддържат и така наречените 4K резолюции (до 4096 пиксела на страна). QuickSync блока за прекодиране на видео също е ускорен. Заедно с това дисплейният блок вече може да поддържа до 3 монитора едновременно, нещо, което все още е недостъпно за ползвателите на интегрираните процесори на AMD, макар и графичните им адаптери да поддържат до 6 дисплея едновременно.
Честотите на графичния адаптер могат да варират, като работят съвместно с технологията TurboBoost на процесорните ядра.Официалното название на модела с пълната спецификация на графичния адаптер е Intel HD Graphics 4000. Минималната честота е 350 МXц в нискоенергиен режим, стандартната честота е 650 МХц, а максималната честота, която се активира при голямо графично натоварване варира между 1100 и 1150 за различните модели. При това положение максималната изчислителна производителност на такт е 294,4 MFLOPs с единична точност и 73,6 MFLOPs с двойна точност. Реално използваемите стойности вероятно са доста по-ниски. При все това, чисто теоретично, графичния адаптер може да добави съществена стойност към възможностите на чипа като цяло, която максимално 110-120 MFLOPs за 4-ядрените процесори с двойна точност и приблизително двойно на това с единична точност. Така че напълно логично е решението Intel най-накрая да заложи поддръжката и на OpenCL. Освен шейдерната производителност, чипа дава максимално 9,2 Гтексела/с и 4,6 Г/пиксела в секунда. За сравнение върховият модел вградена графика в чиповете от серията Llano на AMD, Radeon HD 6550D, разполага с 480 МFLOPs изчислителна производителност с единична точност, като изчисленията с дойна точност не се поддържат хардуерно, и с 12 Гтексела/с и 4,8 Гпиксела в секунда съответно текстурираща и растеризираща производителност. Така че поне на пръв поглед нещата съвсем не изглеждат зле при сравнението на HD Graphics 4000 спрямо Radeon HD 6550D. Практически обаче тепърва ще видим как стоят нещата.