Лекція 5 Напрями розвитку мікропроцесорів
Ivy Bridge NEW Process
Цей цикл зазвичай повторюється кожні 2 роки. Новаторська мікроархітектура обкатується на поточному виробничому процесі, потім переноситься на нову виробничу технологію. Ця модель розвитку дозволяє здійснювати впровадження єдиної процесорної мікроархітектури у всіх сегментах ринку. Стратегія розвитку архітектури та напівпровідникової технології, що реалізується корпорацією Intel, не лише дозволяє випускати нові рішення відповідно до запланованих темпів, а й сприяє впровадженню інноваційних рішень у галузі на рівні платформ, розширюючи використання переваг високої продуктивності та енергоекономічності.
Після сімейства процесорів Ivy Bridge з'явиться абсолютно нова (як стверджують Intel) процесорна мікроархітектура Haswell.
5.2. Особливості мікроархітектури Sandy Bridge
Ключовими особливостями процесорів архітектури Sandy Bridge є:
Удосконалене порівняно з Nehalem обчислювальне ядро.
Монолітна конструкція – процесор складається з одного напівпровідникового кристала, виготовленого за 32 нм технологією техпроцесу.
Новий набір інструкцій Intel Advanced Vector Extensions (AVX) для прискорення обробки дійсних чисел.
Оптимізована розробка Intel Turbo Boost.
Помітно збільшена енергоефективність.
Продуктивність інтегрованого у процесор графічного ядра значно збільшена.
Нова кільцева шина Ring Interconnect.
Наявність нового функціонального вузла процесора – системного агента.
Вдосконалений інтегрований контролер пам'яті.
Удосконалення обчислювального ядра
Найважливіші зміни у обчислювальному ядріпроцесора з архітектурою Sandy Bridge (рис. 5.1):

Мал. 5.1. Структура ядра
Повернення до виділення кеш-пам'яті для приблизно 1,5 тисячі декодованих мікрооперацій L0 (використовувався в Pentium 4), що є відокремленою частиною L1, що дозволяє одночасно забезпечити більш рівномірне завантаження конвеєрів і знизити енергоспоживання внаслідок збільшення пауз у роботі досить складних схем декодерів операцій;
Збільшення ємності буфера переупорядкованих команд (ROB - ReOrder Buffer) та підвищення ефективності цієї частини процесора завдяки впровадженню фізичного регістрового файлу (PRF – Physical Register File, теж характерної риси Pentium 4) для зберігання даних, а також розширення інших буферів;
Подвоєння ємності регістрів для роботи з потоковими речовими даними, що в ряді випадків може забезпечити вдвічі більшу швидкість виконання операцій, що їх використовують;
Збільшення ефективності виконання інструкцій шифрування для алгоритмів AES, RSA та SHA;
Оптимізація роботи кеш-пам'яті першого L1 та другого L2 рівнів.
Оптимізація для більш ефективної віртуалізації та виконання серверних програм.
Одним з найважливіших нововведень мікроархітектури Sandy Bridge є кеш декодованих мікрооперацій, або кеш інструкцій L0. По суті, кеш декодованих мікрооперацій нагадує трасувальний кеш мікроархітектури NetBurst (Pentium 4), проте принцип роботи у них зовсім різний, подібність закінчується на тому, що вони працюють з мікроопераціями.
Завдяки структурній організації формату 32х8 з можливістю зберігання шести мікрооперацій в лінії, кеш декодованих мікрооперацій вміщує трохи більше півтори тисячі мікрооперацій. Без особливих витівок він кешує на виходідекодерів всі попередньо декодовані мікрооперації. Як тільки надходить на обробку нова інструкція, блок випереджальної вибірки насамперед робить звірку з кешем L0, і у разі виявлення збігів, завантаження конвеєра по чотири мікрооперації за такт в обхід декодерів здійснюється вже з кешу L0. Незадіяні і простоюючі ланцюги декодерів, до речі, дуже складні, і тому досить «ненажерливі», в цей момент просто відключаються від харчування. В іншому випадку, коли кеш декодованих операцій виявляється незатребуваним, продовжується звичайна робота з вибірки та декодування команд, а кеш декодованих операцій переводиться в режим економії енергії.
Кеш L0 певною мірою можна вважати частиною кеша L1, в який він, до речі, інтегрований, але окремою і дуже швидкою його частиною. За словами представників Intel, при роботі з більшістю додатків ймовірність вдалого «попадання» в кеш декодованих мікрооперацій дуже велика і може досягати 80%.
Процеси розподілу, перейменування, планування та виведення даних у процесі конвеєрного виконання макрооперацій у мікроархітектурі Sandy Bridge зазнали найбільшої переробки.
Реалізація алгоритму виконання інструкцій зі зміною послідовності в попередніх поколіннях процесорів Intel Core, аж до Westmere, базувалася на використанні буфера переупорядкування - ROB (reorder buffer), який також служить для відновлення послідовності інструкцій. За структурою цей буфер є матрицею із записами всіх виконуваних в даний момент інструкцій, а також гігантський масив віртуальних даних зі значеннями регістрів та інформацією про переміщення між регістрами.
Тепер, у мікроархітектурі Sandy Bridge, результативідстеження та перейменування мікрооперацій фіксуються за допомогою фізичного реєстрового файлу, PRF (physical register file), властивого архітектурі NetBurst (Pentium 4) і також характерного для багатьох Out-of-Order архітектур на кшталт AMD Bulldozer/Bobcat, IBM POWER, але відсутнього . Фактично, на буфер переупорядкування в ядрі Sandy Bridge покладено лише функцію «трасування» інструкцій, що обробляються в даний момент часу, тоді як функції зберігання даних покладені на незалежний реєстровий файл. Іншими словами, факт виконання операції в Out-of-Order структурі Sandy Bridge призводить тільки до того, що регістр вказує на інше значення в PRF, а не до перенесення 32-, 64-, 128 або 256-бітних даних, як у випадку , коли використовується лише буфер перевпорядкування.
Розподіл процесів між двома структурами замість однієї може здатися архітектурним ретроградством, що веде до ускладнення конструкції та додаткового збільшення кількості транзисторів, тобто зростання енергоспоживання чіпа. Проте зрештою такий поділ функцій значно розвантажує буфер переупорядкування, постійно перевантажений у чіпах Nehalem і тому постійно «гарячий».
Окрім появи в архітектурі Sandy Bridge фізичного реєстрового файлу, змінилися і характеристики традиційних модулів кластера Out-of-Order процесів. Так, буфер переупорядкування здатний обробляти до 168 мікрооперацій одночасно. Цілочисельний фізичний регістровий файл Sandy Bridge зберігає 160 окремих 64-бітних записів; фізичний регістровий файл для векторно-речових даних з плаваючою комою зберігає 144 256-бітних записів, тобто регістри YMM з новими векторними x86-64 командами AVX повністю.
У мікроархітектурі SandyBridge вводять нові векторні інструкції AVX.
Самі по собі інструкції AVX – це розвиток SSE, що розширює розрядність типових векторних SIMD операцій на 256-бітові операнди. Розмір векторних регістрів SIMD збільшується зі 128 (XMM) до 256 біт (реєстри YMM0 – YMM15). Крім того, новий набір дозволяє проводити операції у недеструктивній формі, тобто без втрати вихідних даних у регістрах. Завдяки цим властивостям набір інструкцій AVX нарівні з мікроархітектурними поліпшеннями також можна віднести до нововведень, спрямованих на підвищення продуктивності та на економію енергії, тому що їх впровадження дозволить спростити багато алгоритмів та виконувати більшу кількість роботи з використанням меншої кількості команд. Інструкції AVX добре підходять для інтенсивних обчислень з плаваючою точкою в мультимедіа, наукових та фінансових завданнях.
Для ефективного виконання 256-бітових інструкцій виконавчі пристрої процесора були піддані спеціальному редизайну. Суть змін зводиться до того що, що з роботи з 256-битными даними 128-битные виконавчі устрою об'єднуються попарно. А враховуючи те, що кожен із трьох виконавчих портів Sandy Bridge (як і Nehalem) має пристрої для роботи одночасно з трьома видами даних – 64-бітними, 128-бітовими цілими або 128-бітовими речовими – попарне об'єднання SIMD пристроїв у рамках одного порту виглядає цілком природним та розумним рішенням. І, що важливо, такий перерозподіл ресурсів не завдає шкоди загальної пропускної спроможності виконавчого блоку процесора.
Як і раніше, у чіпах Nehalem, завантаження мікрооперацій усіх типів: SIMD, цілісних і з плаваючою комою, відбувається за однаковим сценарієм, єдиним уніфікованим планувальником, динамічнорозподіленим між усіма потоками. Різниця в тому, що в архітектурі Sandy Bridge планувальник більш ємний і завантажується відразу 54 перейменованими та готовими до виконання мікрокомандами.
Завдяки суттєвому доопрацюванню, націленому на подвоєння продуктивності при роботі з 256-бітними векторними інструкціями AVX та можливості виконання більшості з них як єдиної мікрооперації, виконавчі блоки мікроархітектури Sandy Bridge стали вдвічі потужнішими, ніж у чіпів Nehalem. Тепер вони здатні обробляти вісім операцій подвійної точності з плаваючою комою (FP) або 16 FP-операцій одинарної точності за такт. Таким чином, ядро Sandy Bridge здатне виконувати за кожен такт 256-бітове FP-множення, 256-бітове FP-складання та 256-бітове зміщення.
Незважаючи на збільшення розрядності виконавчих блоків ядра до 256 біт, збільшення ширини шини даних до 256 біт не відбулося. Для виконання 256-бітних мікрооперацій в ядрі Sandy Bridge об'єднуються можливості наявних 128-бітних трактів для роботи з даними SIMD INT і SIMD FP.
Також варто згадати, що у ядрі Sandy Bridge підвищено продуктивність при обробці інструкцій стандарту шифрування AES та RSA, а також продуктивність при обчисленні хешів SHA-1.
Необхідність роботи з удвічі збільшеними (до 256 біт) операндами SSE FP не могла не позначитися на навантаженні підсистеми пам'яті ядра Sandy Bridge, яка повинна обслуговувати щонайменше два запити за такт, гарантовано забезпечуючи можливість 16-байт запису та 16-байт читання.
Ось чому в структурі 8-банкового кешу даних L1 ядра Sandy Bridge був доданий другий 16-бітний порт читання, завдяки якому сумарна пропускна спроможність кеша зросла до 48 байт за такт: два 16-байт запиту читання та 16-байт запис. Розмірибуферів запису та читання, розділених між виконавчими блоками ядра Sandy Bridge, були також збільшені: буфер запису - до 64 осередків, буфер читання - до 36 осередків.
8-банковий асоціативний кеш L2 мікроархітектури Sandy Bridge, розподілений по 256 Кбайт на кожне ядро, досить схожий на те, що застосовувалося в попередніх поколіннях процесорів Intel. Тут зміни мінімальні.