Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсова робота(Мерзляков).doc
Скачиваний:
17
Добавлен:
23.03.2015
Размер:
1.16 Mб
Скачать

1.2 Вбудований контролер пам'яті

Intel включає цілих три контролера пам'яті DDR3. Якщо встановити пам'ять DDR3-1333, яку Nehalem теж буде підтримувати, це дасть пропускну спроможність до 32 Гбайт / с в деяких конфігураціях. Але перевага вбудованого контролера пам'яті криється не тільки в пропускній спроможності. Він істотно знижує затримки доступу до пам'яті, що не менш важливо, враховуючи, що кожен доступ коштує кілька сотень тактів. У контексті настільного використання зниження затримок вбудованого контролера пам'яті можна вітати, однак повну перевагу від більш масштабованої архітектури буде помітно в многосокетних серверних конфігураціях. Раніше при додаванні CPU доступна пропускна спроможність залишалася колишньою, проте тепер кожен новий додатковий процесор збільшує пропускну спроможність, оскільки кожен CPU володіє власною пам'яттю.

Рисунок 1.2.1 Вбудований контролер памяті

Звичайно, чудес чекати не слід. Перед нами конфігурація Non Uniform Memory Access (NUMA), тобто доступ до пам'яті буде обходитися з тих чи інших накладним розцінками, залежно від того, де дані розташовуються в пам'яті. Зрозуміло, що доступ до локальної пам'яті буде проводитися з самими низькими затримками і самої високою пропускною здатністю, оскільки доступ до віддаленої пам'яті відбувається через проміжний інтерфейс QPI, що знижує продуктивність.

Вплив на продуктивність передбачити складно, оскільки все залежить від програми та операційної системи. Intel стверджує, що падіння продуктивності при віддаленому доступі по затримкам становить близько 70%, а пропускна здатність знижується в два рази в порівнянні з локальним доступом. За інформацією Intel, навіть при віддаленому доступі через інтерфейс QPI, затримки будуть нижче, ніж на попередніх поколіннях процесорів, де контролер знаходився на північному мосту. Однак це стосується тільки серверних додатків, які вже досить тривалий час розробляються з урахуванням конфігурацій NUMA.

1.3Трирівнева ієрархія кеша

Intel сконцентрувалася на продуктивності загального кеша L2, який став кращим рішенням для архітектури, яка націлювалася, головним чином, на двоядерні конфігурації. Але у випадку з Nehalem інженери почали з нуля і прийшли до такого ж висновку, що і конкуренти: загальний кеш L2 не дуже добре підходить для "рідної" чотирьохядерний архітектури. Різні ядра можуть занадто часто "вимивати" дані, необхідні іншим ядрам, що призведе до занадто багатьом проблемам з внутрішніми шинами і арбітражем, намагаючись забезпечити всі чотири ядра достатньою пропускною спроможністю із збереженням затримок на досить низькому рівні. Щоб вирішити ці проблеми, інженери оснастили кожне ядро власним кешем L2. Оскільки він виділений на кожне ядро і відносно малий (256 кбайт), вийшло забезпечити кеш дуже високою продуктивністю; зокрема, затримки істотно покращилися в порівнянні з Penryn - з 15 тактів до, приблизно, 10 тактів.

Рисунок 1.3.1 Трирівнева ієрархія кеша

Потім є величезна кеш-пам'ять третього рівня (8 Мбайт), що відповідає за зв'язок між ядрами. На перший погляд архітектура кеша Nehalem нагадує Barcelona, але робота кеша третього рівня дуже відрізняється від AMD - вона інклюзивна для всіх нижніх рівнів ієрархії кеша. Це означає, що якщо ядро спробує отримати доступ до даних, і вони відсутні в кеші L3, то немає необхідності шукати дані у власних кешах інших ядер - там їх немає. Навпаки, якщо дані присутні, чотири біта, пов'язані з кожним рядком кеш-пам'яті (один біт на ядро) показують, чи можуть дані потенційно присутнім (потенційно, але без гарантії) в нижньому кеші іншого ядра, і якщо так, то в якому.

Ця техніка дуже ефективна для забезпечення когерентності персональних кешей кожного ядра, оскільки вона зменшує потребу в обміні інформацією між ядрами. Є, звичайно, недолік у вигляді втрати частини кеш-пам'яті на дані, присутні в кешах інших рівнів. Втім, не все так страшно, оскільки кеші L1 і L2 відносно маленькі в порівнянні з кешем L3 - всі дані кешей L1 і L2 займають, максимум, 1,25 Мбайт в кеші L3 з доступних 8 Мбайт. Як і у випадку Barcelona, ​​кеш третього рівня працює на інших частотах у порівнянні з самим чіпом. Отже, затримка доступу на даному рівні може мінятися, але вона повинна складати близько 40 тактів.

Єдині розчарування в новій ієрархії кеша Nehalem пов'язані з кешем L1. Пропускна здатність кешу інструкцій не була збільшена - як і раніше 16 байт на такт у порівнянні з 32 у Barcelona. Це може створити "вузьке місце" в серверно-орієнтованій архітектурі, оскільки 64-бітові інструкції крупніше, ніж 32-бітові, тим більше що у Nehalem на один декодер більше, ніж у Barcelona, ​​що сильніше навантажує кеш. Що стосується кеша даних, його затримка була збільшена до чотирьох тактів в порівнянні з трьома в Conroe, полегшуючи роботу на високих тактових частотах.