
- •П остановка завдання
- •Архітектура Nehalem
- •Вбудований контролер пам'яті
- •Трирівнева ієрархія кеша
- •Оптимізований доступ до пам'яті (Unaligned Memory Access)
- •Технічні характеристики процесорів Intel (Nehalem)
- •Основные технические параметры Core i3
- •Модельный ряд
- •Основные технические параметры Core i5
- •Модельный ряд
- •Основные технические параметры Core i7
- •Модельный ряд
- •Організація віртуальної пам’яті
- •Організація віртуальної пам’яті
- •Важливість віртуалізації системи введення / виводу
- •Опис технології Intel ® Virtualization
- •Зміна адрес та ізоляція
- •Використання зміни адрес для прямого призначення
- •Список літератури
Оптимізований доступ до пам'яті (Unaligned Memory Access)
В архітектурі Core доступ до пам'яті приводив до ряду обмежень по продуктивності. Процесор був оптимізований для доступу до адрес пам'яті, вирівняним по 64-байтним кордонів, тобто за розміром однієї строчки кеша. Для невирівняні даних доступ був не тільки повільний, але і виконання невирівняні інструкцій зчитування або запису було більш накладними, ніж у випадку вирівняних інструкцій, незалежно від реального вирівнювання даних пам'яті. Причина полягала в тому, що ці інструкції приводили до генерації декількох мікрооперацій на декодерах, що знижувало пропускну спроможність з даними типами інструкцій. У підсумку компілятори уникали генерувати інструкції подібного типу, підставляючи замість них послідовність інструкцій, які менш накладні.
Так, читання з пам'яті, при якому відбувався перехлест двох рядків кеша, сповільнювався приблизно на 12 тактів, в порівнянні з 10 тактами для запису. Інженери Intel оптимізували подібний тип звернень, щоб він виконувався швидше. Почнемо з того, що тепер немає падіння продуктивності при використанні невирівняні інструкцій читання / запису у випадках, коли дані вирівняні в пам'яті. В інших випадках Intel теж оптимізувала доступ, знизивши падіння продуктивності в порівнянні з архітектурою Core.
Більше блоків попередньої вибірки з більш ефективною роботою
В архітектурі Conroe Intel особливо пишалася апаратними блоками передбачення. Як ви знаєте, блок пророкування - це механізм, який стежить за характером доступу до пам'яті і намагається передбачити, які дані будуть потрібні через кілька тактів. Мета полягає в тому, щоб випереджувальним чином завантажити дані в кеш, де вони будуть розташовуватися ближче до процесора, і разом з тим максимально використовувати доступну пропускну спроможність тоді, коли процесору вона не потрібна.
Дана технологія дає чудові результати з більшістю настільних додатків, але в серверній середовищі вона часто приводила до втрати продуктивності. Є кілька причин подібної неефективності. По-перше, доступи до пам'яті часто складніше передбачити в серверних застосуваннях. Доступ до бази даних, наприклад, аж ніяк не лінійний - якщо в пам'яті запитується небудь елемент даних, то це не означає, що наступним буде сусідній елемент. Це обмежує ефективність блоку попередньої вибірки. Але основною проблемою була пропускна здатність пам'яті в многосокетних конфігураціях. Як ми вже говорили раніше, вона вже була "вузьким місцем" для декількох процесорів, але, крім цього, блоки попередньої вибірки приводили до додаткового навантаження на цьому рівні. Якщо мікропроцесор не виконує доступ до пам'яті, то включалися блоки попередньої вибірки, намагаючись використовувати пропускну здатність, по їх припущенню, вільну. Однак блоки не могли знати, чи потрібна ця пропускна спроможність другому процесора. Це означало, що блоки попередньої вибірки могли "відбирати" у процесора пропускну здатність, яка і так була "вузьким місцем" в таких конфігураціях. Щоб вирішити цю проблему, Intel не знайшла нічого кращого, як відключити блоки попередньої вибірки в таких ситуаціях - навряд чи найоптимальніше рішення.
Як стверджує Intel, ця проблема вже вирішена, проте компанія не дає ніяких деталей з приводу роботи нових механізмів попередньої вибірки. Все, що компанія говорить: тепер не потрібно відключати блоки для серверних конфігурацій. Втім, навіть Intel нічого не змінила, переваги від нової організації пам'яті і, внаслідок цього, більша пропускна здатність повинні нівелювати негативний вплив блоків попередньої вибірки.
Conroe
став
серйозним фундаментом для нових
процесорів, і Nehalem побудований якраз на
ньому. Тут використовується така ж
ефективна архітектура, але тепер вона
набагато більш модульна і масштабована,
що повинно гарантувати успіх в різних
ринкових сегментах. Ми не говоримо про
те, що Nehalem революціонізував архітектуру
Core, але новий процесор революціонізував
платформу Intel.
З усіма поліпшенням, зробленими на даному етапі (інтегрований контролер пам'яті, QPI), не дивно бачити, що зміни виконавчого ядра не такі значні. Але повернення Hyper-Threading можна вважати серйозною новиною, та й ряд невеликих оптимізацій теж повинні забезпечити помітний приріст продуктивності.