Intel вбудуватиме контролери пам'яті в процесори? Процесори Контролер оперативної пам'яті у процесорі

Головна / Оптимізація роботи

Контролер пам'яті

Контролер пам'яті- Цифрова схема, що управляє потоком даних до і від оперативної пам'яті. Може являти собою окрему мікросхему або бути інтегрована в більш складну мікросхему, наприклад, північний міст , мікропроцесор або систему на кристалі .

Комп'ютери, які використовують мікро процесори Intelтрадиційно мали контролер пам'яті, вбудований в чіпсет (північний міст), але багато сучасних процесорів, таких як DEC / Compaq Alpha 21364, AMD Athlon 64 і Opteron, IBM POWER5, Sun Microsystems UltraSPARC T1 і процесори Intel Core i7 мають інтегрований контролер пам'яті на тому ж кристалі для зменшення затримки доступу в пам'ять. Хоча інтеграція збільшує продуктивність системи, відбувається прив'язка мікропроцесора до якогось типу пам'яті, яка дозволяє поєднувати процесори і пам'ять різних поколінь. Для використання нових типів пам'яті потрібен випуск нових процесорів та зміна їхнього роз'єму (наприклад, після появи DDR2 SDRAM, AMD випустила процесори Athlon 64, що використовували новий сокет Socket AM2).

Інтеграція контролера пам'яті з процесором не є новою технологієюТак, ще в 1990-х DEC Alpha 21066 і HP PA-7300LC використовували вбудовані контролери для зниження вартості системи.

Завдання

Контролер пам'яті містить логічні ланцюги, необхідних проведення операцій читання і записи в DRAM , і навіть оновлення збережених у DRAM даних. Без періодичних оновлень чіпи пам'яті DRAM втрачають інформацію, оскільки розряджаються струмами витоку конденсатори, що зберігають біти. Типовий час надійного зберігання інформації становить частки секунди, але не менше 64 мілісекунди відповідно до стандартів JEDEC. На триваліших періодах часу інформація зберігається лише частково.

Багатоканальна пам'ять

Повністю буферизована пам'ять FB-DIMM

Примітки


Wikimedia Foundation. 2010 .

  • Контрнаступ Східного фронту
  • Контроль (значення)

Дивитись що таке "Контролер пам'яті" в інших словниках:

    Контролер переривань- (англ. Programmable Interrupt Controller, PIC) мікросхема або вбудований блок процесора, що відповідає за можливість послідовної обробки запитів на переривання від різних пристроїв. Зміст 1 PIC 2 APIC … Вікіпедія

    контролер доступу до пам'яті- - [Е.С.Алексєєв, А.А.Мячов. Англо-російський тлумачний словник з системотехніки ЕОМ. Москва 1993] Тематики інформаційні технологіїв цілому EN memory access controllerMAC …

    Осередок пам'яті ЕОМ- Запит «ОЗУ» перенаправляється сюди. Див. також інші значення. Найпростіша схемавзаємодії оперативної пам'ятіз ЦП Оперативна пам'ять (також оперативний пристрій, ОЗУ) в інформатиці пам'ять, частина системи пам'яті ЕОМ, в яку … Вікіпедія

    Програмований контролер переривань- Контролер переривань мікросхеми або вбудований блок процесора, що відповідає за можливість послідовної обробки запитів на переривання від різних пристроїв. Англійська назва Programmable Interrupt Controller (PIC). Як правило… … Вікіпедія

    Прямий доступ до пам'яті- (англ. Direct Memory Access, DMA) режим обміну даними між пристроями або між пристроєм і основною пам'яттю (RAM) без участі Центрального Процесора (ЦП). В результаті швидкість передачі збільшується, тому що дані не ... Вікіпедія

    програмований логічний контролер- ПЛК [Інтент] контролер Керуючий пристрій, що здійснює автоматичне керуванняза допомогою програмної реалізації алгоритмів керування. [Збірник термінів, що рекомендуються. Випуск 107. Теорія управління. Академія наук СРСР. Комітет науково… Довідник технічного перекладача

    Функціональний контролер- схемне розташування південного мосту на системній платі Південний міст (від англ. Southbridge) (функціональний контролер), також відомий як контролер концентратор введення виведення від англ. I/O Controller Hub (ICH). Це мікросхема, яка … Вікіпедія

    USB-контролер- у складі платформи персонального комп'ютеразабезпечує комунікацію з периферійними пристроями, підключеними до універсальної послідовної шини USB контролер є інтелектуальним пристроєм, здатним взаємодіяти з ... Вікіпедія

    Програмований логічний контролер- Масово застосовуваний програмований логічний контролер сімейства SIMATIC S7 300 Програмований логічний контролер (ПЛК) (англ. Programmable Logic Controller, PLC) або програмований контролер еле ... Вікіпедія

    професійний графічний контролер- Контролер має 320 Кбайт пам'яті. Роздільна здатність - 640х480 елементів зображення. Можливість відображати 256 кольорів із палітри, що містить понад 16 млн. відтінків. Тематики інформаційні технології загалом EN… … Довідник технічного перекладача

Пам'яттю називається пристрій, призначений для записи (зберігання)і зчитуванняінформації.

У пам'яті контролера зберігаються:

  1. обслуговуючі програми виробника,
  2. програми користувача,
  3. конфігурація контролера,
  4. блоки даних (значення змінних, таймерів, лічильників, меркерів та ін.).

Властивості пам'яті. Пам'ять характеризується:

  1. Об'єм пам'яті (KВ, MВ або GВ).
  2. Швидкість чи час звернення до пам'яті.
  3. Енергозалежність. Поведінка після вимкнення живлення.

Рис. 3.4 Види пам'яті(Малюнок автора).

Оперативнапам'ять(RAM - random access memory).

Перевага.

Є самою швидкіснийнапівпровідникової електронної пам'яті, що призначена для короткочасного зберігання інформації.

Нестача.

Основною властивістю цієї пам'яті є енергозалежність, тобто втрата даних після відключення електричного живлення.

Для буферизації оперативної пам'яті в деяких контролерах використовують акумулятори або електричні конденсатори великої ємності, здатні зберігати електричний заряддо кількох днів.

Елементом оперативної пам'яті є електронний тригер (статична пам'ять) або електричний конденсатор(Динамічна пам'ять).

Рис. 3.5 Тригер – основний елемент RAM пам'яті(Малюнок автора).

Динамічна пам'ять вимагає циклічної підзарядки конденсаторів, проте вона дешевша порівняно зі статичною пам'яттю.

Матриця пам'ятіявляє собою сукупністьокремих осередків пам'яті – тригерів.

1 ряд матриці містить 8 осередків пам'яті (8 Bit відповідає 1 Byte).

Кожен осередок пам'яті має свою унікальну адресу (№ ряду «точка» № біта).

Ряди (біти) нумеруються праворуч наліво від «0» до «7».

Рядки (байти) нумеруються зверху вниз, починаючи з «0».

Рис. 3.6 Матриця пам'яті(Малюнок автора).

Постійна пам'ять (ROM - read only memory) призначена для тривалого зберігання інформації. Основною відмінністю від оперативної пам'яті є те, що вона здатна зберігати інформацію без джерела живлення, тобто. є енергонезалежною.

Ця пам'ять, у свою чергу, поділяється на два типи: одноразово(ROM) - і багаторазово перепрограмована(PROM).

Перепрограмована пам'ять записує юзер за допомогою програматорів. Для цього необхідно попередньо стерти вміст пам'яті .

До старого типу пам'яті, що перепрограмується, відноситься ЕPROM- пам'ять, що стирається ультрафіолетовими променями (EPROM - erasable programmable read only memory).

Рис. 3.7 Пам'ять ЕPROM стирається ультрафіолетовими променями (джерело http://ua.wikipedia.org/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Eprom.jpg) .

EEPROM (Electrically Erasable Programmable Read-Only Memory) - електрично стирається перепрограмований постійний запам'ятовуючий пристрій (ЕСППЗУ), один з видів енергонезалежної пам'яті (таких як PROM та EPROM ). Пам'ять такого типу може стиратися та заповнюватися даними до мільйона разів.

На сьогоднішній день класична двох - транзисторна технологія EEPROM практично повністю витіснена флеш-пам'яттю NOR. Однак, назва EEPROM міцно закріпилася за цим сегментом пам'яті незалежно від технології.

Рис. 3.8 Програмування флеш-пам'яті.

(джерелоhttp://ua.wikipedia.org/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Flash_programming_ua.svg).

Флеш пам `ять (flash memory) - різновид твердотільної напівпровідникової енергонезалежної пам'яті, що перезаписується.

Вона може бути прочитана скільки завгодно разів (у межах терміну зберігання даних, типово - 10-100 років), але писати в таку пам'ять можна лише обмежену кількість разів (максимально - близько мільйона циклів). Не містить рухомих частин, так що, на відміну від жорстких дисків, більш надійна та компактна.

Завдяки своїй компактності, дешевизні та низькому енергоспоживання флеш-пам'ять широко використовується у цифрових портативних пристроях.

Умовний поділ областей пам'яті контролера

Контролер надає наступні області пам'яті для зберігання програми користувача, даних та конфігурації.

Завантажувальна пам'ять – це незалежна пам'ять для програми користувача,

даних та конфігурації. Під час завантаження проекту в контролер він спочатку зберігається у завантажувальній пам'яті. Ця пам'ять знаходиться або на картці пам'яті (якщо вона є) або безпосередньо вбудована. Інформація енергонезалежної пам'яті зберігається також і при вимкненні живлення. Картка пам'яті підтримує більший обсяг пам'яті, ніж пам'ять, вбудована у контролер.

Робоча пам'ять– це енергозалежна пам'ять. Контролер копіює деякі елементи проекту із завантажувальної пам'яті до робочої пам'яті. Ця область пам'яті втрачається при відключенні живлення, а при поверненні живлення контролер її відновлює.

Пам'ять, що зберігається – це незалежна пам'ять для обмеженої кількості значень робочої пам'яті. Ця пам'ять служить для вибіркового збереження важливої ​​інформаціїкористувача при втраті харчування. При зникненні живлення контролер має достатньо часу для збереження значень обмеженої кількості адрес пам'яті. При включенні живлення ці значення, що зберігаються, відновлюються.


Відновлення інформації

Рис. 3.9 Фази відновлення інформації (малюнок автора).

1. Інформація про стан процесу управління, збережена в оперативну пам'ять, називається чином процесу управління POU. Тобто. всі фізичні клеми блоку входу-виходумають віртуальних двійників (тригери) у пам'яті контролера. Зазвичай, для збільшення швидкості обміну інформацією, процесор звертається за інформацією в оперативну пам'ять (а не до фізичних клем входу/виходу). Запис результатів обробки програми з образу процесу клеми виходу проводиться циклічно.

2. Після відключення напруги живлення (напруга падає нижче критичного рівня) найважливіша інформація зберігаєтьсяназад з RAM в EEPROM. Області даних, що підлягають збереженню, визначає користувач.

  • Що називається матрицею пам'яті?
  • Скільки клітинок пам'яті в одному рядку матриці пам'яті?
  • Як нумеруються стовпці матриці пам'яті (напрямок та діапазон)?
  • На які основні типи підрозділяється пам'ять контролера (назвіть лише два типи)?
  • Які переваги має один тип пам'яті перед іншим (дві відповіді)?
  • Які типи підрозділяється оперативна пам'ять контролера (2)?
  • На які типи підрозділяється стала пам'ять за кратністю програмування (2)?
  • На які типи поділяється перепрограмована постійна пам'ятьза способом стирання (2)?
  • Звідки з'являється інформація в RAM при включенні живлення контролера?
  • Чи зникає вся інформація з RAM при вимкненні живлення(якщо не пропадає, то куди та яка інформація зберігається)?
  • Як називається інформація про стан клем входу/виходу до оперативної пам'яті?
  • З яким блоком пам'яті в основному працює процесор?

  • З моменту появи процесорів на ядрі Nehalem однією з їх переваг все вважали інтегрований триканальний контролер пам'яті. Не просто інтегрований контролер пам'яті (ІКП скорочено), а саме триканальний. Зрозуміло, чим це «круто» - все-таки одноканальні та двоканальні контролери пам'яті у AMD були ще за п'ять років до цього, так що додатковий канал, та ще й найбільш швидкісний на даний момент пам'яті типу DDR3, мав дуже серйозну перевагу. На думку багатьох користувачів, також є одним з основних факторів, яким процесори лінійки Core i7 зобов'язані своєю високою продуктивністю. Варто зауважити, що сама компанія Intel цю думку ніяк не спростовувала, за що й трохи поплатилася - по-справжньому масові процесори архітектури Nehalem, які будуть випущені на початку осені, розраховані на конструктив LGA1156, який передбачає використання лише двох каналів пам'яті. Здавалося б, серйозний недолік нових моделей, який нездатний дозволити їм конкурувати зі старшими братами. Але чи це так?

    В оглядах материнських плат ми вже намагалися оцінити корисність багатоканального режиму пам'яті в процесорах під LGA1366, і результати виявилися невтішними. Для режимів, зрозуміло, а чи не для користувачів. Однак перевірки проводилися на дуже обмеженій кількості додатків, тому остаточної відповіді на питання, чи потрібен триканальний режим на практиці, вони не давали. Зараз ми вирішили заповнити цю прогалину. Точніше, спочатку просто виникло бажання випробувати не три-, а двоканальний режим, для подальшого коректнішого порівняння продуктивності Core i7 900-ї та 800-ї серій: щоб потім не будувати гіпотез про те, що найсильніше вплинуло на результати (якщо вони, дійсно, виявляться суттєво різними). Однак просто «прогнати» тести з останньої версії нашої методики в ще одній конфігурації – надто нудно, та й з такого протистояння лише двох варіантів гарної статті вийти не може, тому ми трохи ускладнили завдання.

    Конфігурація тестових стендів

    Усі тестування проводилося з використанням процесора Core i7 920, материнської плати Intel DX58SO («Smackover») і референс-відеокарти на базі NVIDIA GeForce GTX 275 - словом, як все належить, згідно з версією 4.0 нашої методики тестування. Розрізнялася лише пам'ять. Крім звичайно використовуваного нами комплекту Kingston, ми взяли ще й кит від Apacer, що має вдвічі менший обсяг. Всі модулі підтримують роботу на вищих частотах, ніж офіційні для Core i7 920 1066 МГц, але ми тестували їх саме на цій частоті за схемою 8-8-8-19.

    Вийшло чотирьох конфігурацій, представлених у таблиці:

    Чому саме вони? Дві триканальні нам потрібні, щоб чітко зрозуміти - що важливо в якомусь додатку: триканальність чи сумарний обсяг? Це буде добре видно за результатами: якщо і 3×2, і 3×1 у переможцях, значить, користь від трьох каналів є, якщо тільки перший, отже, додатку просто потрібно багато пам'яті (точніше, воно здатне її використовувати). Без 3×1 до однозначної відповіді було б складно. Корисність участі в тестах 2×2 очевидна - саме таким чином комплектуються сучасні системи на Core 2 та процесорах AMD, і саме він на деякий час стане дуже масовим для систем на LGA1156 (звісно, ​​можна було б протестувати пам'ять і в конфігурації 2×1, але це вже з погляду систем, які не належать до бюджетного сектору, зовсім не цікаво). 1×4 виглядає вкрай синтетичним, оскільки навряд чи хтось, маючи два модулі пам'яті по 2 ГБ, їх встановлюватиме в один канал, «знехтуючи» інші, проте… Він нам потрібен для підвищення загальної освіченості. Та й модулі DDR3, ємністю 4 ГБ, вже з'явилися. На жаль, поки що це екзотика, яка навіть до наших рук не дісталася (інакше б у списку тестованих обов'язково був би і варіант 2×4), проте масове поширення на ринку як таких модулів, так і китів на їх основі лише питання часу.

    Детальні результати всіх підтестів, як завжди, представлені в таблиці , форматі Excel. Зауважимо, що в сьогоднішньому тестуванні вони будуть іноді навіть більш цікавими, ніж загальні середні показники по групах, тому тим, кому цікава детальна інформація, не варто відмовляти собі в задоволенні з ними познайомитися.

    Пристрілка

    Але для початку ми вирішили перевірити продуктивність кожного з варіантів у синтетичній програмі, в ролі якої сьогодні виступав Everest 4.6 (так, це далеко не остання версіяпопулярного тестового пакету, однак і «реальний» софт оновлюється далеко не миттєво, так що ці результати нам дуже цікаві навіть якщо припустити слабку оптимізацію 4.6 під Nehalem).

    І перші ж результати дещо бентежать - як ми бачимо, жодного видимого приросту від залучення третього каналу ІКП немає. Більше того - три модулі від Apacer справляються з цим завданням повільніше, ніж два від Kingston. Водночас одноканальний режим – явний аутсайдер. Теоретична ПСП DDR3 1066 складає 8528 МБ/с, у що ми вперлися - це зрозуміло. Але додавання ще одного каналу збільшує швидкість читання далеко не в два, а менш ніж у півтора рази, а третій взагалі нічого не дає.

    Зі швидкістю запису все ще веселіше – одноканальний режим чесно вперся у теоретичну ПСП, а збільшення кількості каналів дало лише менше 20% у всіх випадках.

    І, зрештою, затримки доступу. Очевидний лідер тут - двоканальний режим (нагадаємо, що на цій діаграмі що менше цифри, то краще), хоча й одноканальний доступ справа не сильно погіршує, але в триканальному режимі затримки порівняно сильно зростають: на чверть.

    Вже можна робити певні висновки. Як ми пам'ятаємо з поведінки інших архітектур з ІКП (AMD K8/K10), вони найбільш сприйнятливі саме до затримок доступу до пам'яті, що дуже помітно в реальних додатках. Навряд чи Nehalem поводитиметься суворо навпаки. Причому все це на тлі однакових швидкостей читання та запису, тобто двоканальний режим має стати лідером. Одноканальний - вже не факт, що буде надто швидким: затримки менші, але й ПСП набагато нижчі, а це не може не позначитися. Наскільки сильно – ми й перевіримо. І принагідно подивимося, як різні додатки ставляться до різного повного обсягу пам'яті: синтетичні бенчмарки жодної інформації з цього приводу не можуть дати.

    3D-візуалізація

    В аутсайдерах опинилися обидві триканальні конфігурації, з чого можна зробити висновок, що головне для цієї групи додатків - затримки доступу. Але ці два варіанти поводяться по-різному, а вивчення докладних результатів тестів показує досить строкату картину, з чого можна дійти невтішного висновку, що деяким додаткам вже недостатньо як трьох, а й чотирьох гігабайт пам'яті.

    Рендеринг тривимірних сцен

    Рендеринг взагалі мало сприйнятливий до характеристик системи пам'яті, що можна було припускати і від початку - тут головне саме «подрібнені» здібності обчислювальних ядер та їх кількість (та й «віртуальні» потоки обчислення теж сприймаються позитивно). Причому і до обсягу пам'яті вимог особливих немає - аби її вистачало для сцени, що прораховується, і накладних витрат. Для наших тестів цілком достатньо 3 ГБ, що демонструє нам діаграма вище.

    Наукові та інженерні розрахунки

    А в цій групі з'являється ще один клас додатків, на додаток до тих, кому потрібно якнайбільше пам'яті і кому обсяг не важливий – ті, хто починає залежно від збільшення ОЗУ працювати повільніше. На перший погляд, ситуація незрозуміла - якщо швидкість падає від нестачі пам'яті, це легко зрозуміти, але надлишок просто ніхто не повинен «помітити». З іншого боку - а чому не винен? Ефективність кешування цілком може залежати від об'єму ОЗП і повинна від нього залежати. Якщо конкретний додаток використовує лише невеликий обсяг пам'яті, причому постійний, йому «діставатиметься» різний обсяг кеш-пам'яті процесора. Наприклад, при шести встановлених гігабайтах лише половина з 8 МБ кешу L3 буде відведена для даних програми «переднього плану» (не забуваємо, що в пам'яті, що залишилася, теж може хтось «жити», хай і не дуже активно, але на кеш при цьому претендувати), а за трьох їх обслуговуванням займатимуться вже 2/3 від 8 МБ. Цікавий ефект, звичайно, шкода лише трохи осторонь основної теми нашого дослідження лежить. З нею все, як завжди - в середньому, найшвидшим виявляється двоканальний режим, а з двох варіантів триканального, незважаючи на наявність згаданих вище додатків-ренегатів, продуктивніше той, де сумарний обсяг пам'яті вищий.

    Растрова графіка

    В основному все зрозуміло, оскільки серед растрових редакторівнам зустрічаються всі три вже певні «групи» додатків. Хоча і з деякими варіаціями - так, наприклад, обом продуктам Corel все одно, скільки пам'яті і який - 3 або 4 ГБ неважливо, але аби не 6. Але виявився просто дуже «пам'ятний» додаток - Adobe Photoshop. Причому тут дуже цікавим є не загальний результат підтестів, а деякі з них окремо. Точніше, один – Convert. І настільки цікавий, що продублюємо у статті відповідний шматок таблиці із «сирими» даними.

    Core 2 Quad Q9300 2×2Core i7 920 3×2Core i7 920 2×2Core i7 920 1×4Core i7 920 3×1
    0:09:07 0:04:45 0:08:05 0:08:12 0:17:42

    Висновок? Незважаючи на те, що більшість оглядів в мережі, де порівнюються процесори різних архітектур у цьому додатку (у меншості оглядів тесту Photoshop просто немає, так що можна навіть сказати, що у всіх статтях такого роду), стверджується, що Core i7 просто ідеальний процесор для Photoshop, як бачимо, нічого особливо видатного у ньому немає. Ідеальним тут не архітектура ядра, а кількість пам'яті. При 6 ГБ Core i7 920 вдвічі обганяє Core 2 Quad Q9300, забезпечений лише 4 ГБ. Саме такі порівняння у більшості статей і зустрічаються (у тому числі і на нашому сайті, але й інші ресурси поводяться аналогічно): 3х2 для процесорів під LGA1366 та 2х2 для Core2, AMD Phenom тощо. Але якщо ми обмежимо перший із процесорів тими ж 4 ГБ (причому неважливо, яким чином набраними), то з'ясовується… що відмінність від Core 2 Quad цілком укладається в допустиме, з погляду різниці тактовою частотою. А якщо ми відберемо у Core i7 ще всього один гігабайт пам'яті (здавалося б - 3 або 4: невелика різниця), то результат погіршиться ще вдвічі! Це найбільш показовий приклад, проте й інші підтести поводяться подібним чином, хоч мікроскопічну, але знаходять різницю завжди. І нічого не поробиш - Photoshop дійсно пам'ять «любить», причому чим більше «важать» файли, що обробляються в ньому, тим більше «любить», а всі утиліти тестування продуктивності в даному додатку(а не тільки наші самописні тести), звичайно, оперують саме великими файлами.

    Втім, не можна сказати, що у високих результатах немає заслуги самого Core i7, лише преференції від великої кількості пам'яті. Триканальний ІКП таки дозволяє встановити більше пам'яті за інших рівних умов. Але про це докладно ми поговоримо трохи згодом.

    Стиснення даних

    Програми-архіватори не вміють використовувати занадто великий обсяг пам'яті, тому він просто шкодить - до доступної ємності кеш-пам'яті вони дуже сприйнятливі. До затримок основного ОЗУ ще сприйнятливіші, тому й маємо таку картину - найповільнішою конфігурацією є 3х2, а вийти на перше місце 3х1 заважає латентність.

    Компіляція (VC++)

    Компільований нами проект великої кількості пам'яті не вимагає, тому важливі затримки, а також трохи швидкості читання та запису. Тому двоканальний режим доступу до пам'яті тут виявився найкращим, але одноканальний лише трохи виграв у триканальних – латентність нижча, але й інші параметри теж.

    Java

    Тест Java-машини виявився дуже сприйнятливим до швидкості читання з пам'яті, але її загальний обсяг йому досить важливий. Саме таку картину можна було б очікувати скрізь, якби вірними були наївні припущення, що триканальний доступ до пам'яті є запорукою високої продуктивності, але пам'яті при цьому багато не буває. Жаль тільки, що серед протестованих додатків ці мрії підтверджені буквально пару-трійку разів. Але якраз приклад, коли підтверджені.

    Кодування аудіо

    Прекрасне завдання – вимоги до системи пам'яті, можна сказати, відсутні. При рендерингу вони теж майже були відсутні, а тут зовсім відсутні. Ідеальний бенчмарк процесорів, щоправда, огидний для тестування системи загалом.

    Кодування відео

    А ось тут усе майже так, як має бути у «наївній теорії». Псує картинку лише недостатньо помітний програш двоканального режиму. Точніше, буде сказати, майже непомітний. Та й тому, що він взагалі є, ми завдячуємо одному додатку - DivX. Приклад оптимальної оптимізації під всі особливості сьогоднішні Core i7. Як він поведеться на «завтрашніх» перевірятимемо вже менш ніж через місяць.

    Ігрове 3D

    Дуже спокійна трохи незрозуміла загальна картина. Однак під зовнішнім спокоєм у детальних результатах таїться справжня буря. Пристрасті ігор сильно розділилися, а в яких як - залишимо завдання для самостійного вивчення. Головний висновок - для ігор (саме як безлічі, а чи не однієї конкретної гри) питання зміни пам'яті перестав бути якимось важливим. Загалом, вирішувати його навіть менш необхідно, ніж питання вибору центрального процесора (зрозуміло, якщо не йдеться про зовсім бюджетний сектор, типу Core 2 Duo або взагалі Pentium / Celeron). Головним же питанням, яке стоїть перед «хардкорним» геймером сьогодні, буде: «Потягну на multi-GPU чи доведеться свої бажання якось обмежувати?»

    А навіщо взагалі потрібний триканальний ІКП?

    Як бачимо, великої користі від залучення третього каналу контролера пам'яті в Core i7 LGA1366 немає. Канал – є, використовувати – можна, але результати далеко не завжди покращуються. Найчастіше навіть, навпаки, погіршуються. То навіщо компанія Intel робила ІКП саме триканальним? З бажання пограти м'язами (у конкурента два, а ми всі три зробимо)? Можливо, така спокуса теж була, але навряд чи - таки три канали даються досить високою ціною. Причому в прямому розумінні: розведення плат стає дуже складним, а складно – означає дорого. Процесори можна робити і недорогими (і використаний нами сьогодні Core i7 920 тому яскравий приклад - його роздрібна ціна як Core 2 Quad Q9650), але сама платформа виявляється дорогою. Причому без особливої ​​користі - для більшості «типово-користувальних» додатків зараз легко можна обмежитися двома модулями по 2 ГБ і не хвилюватися (особливо якщо врахувати відсоток тих, хто досі використовують 32-розрядні операційні системи, де більший обсяг ОЗУ просто не буде використовуватися). Як було сказано в хорошому анекдоті про верблюденя та його маму: «А навіщо нам ці навороти, якщо ми все одно живемо у зоопарку?»

    У тому й річ, що нинішні Core i7, власне, в зоопарку і живуть. Найкращим чином під нього будуть пристосовані «справжні» настільні моделі, розраховані під виконання LGA1156, головною (та й взагалі – єдиною) відмінністю якого від LGA1366 є підтримка «всього лише» двоканального режиму пам'яті. А LGA1366 – платформа спочатку серверна. У серверах потрібно багато пам'яті. Ні 4, ні 8 і навіть ні 12 ГБ, а справді багато. Там і півсотні гігабайт легко можуть виявитись затребуваними, а то й недостатніми. Як можна встановити більше пам'яті в одну систему? Загальний обсяг дорівнює добутку кількості модулів з їхньої обсяг. Отже, необхідно збільшувати чи кількість, чи ємність кожного модуля. Друге – складно і від виробників процесорів/чіпсетів, взагалі кажучи, не залежить. Більше того - освоєння індустрією більш "щільних" мікросхем пам'яті благотворно позначається на всіх виробниках серверних платформ одночасно, тому не може стати конкурентною перевагою.

    Отже, треба збільшувати кількість модулів, що підтримуються. А воно дорівнює (загалом) кількості контролерів пам'яті, помножених на кількість підтримуваних кожним модулів. Останнє - добуток числа каналів, що підтримуються, на число одночасно працюючих на кожному каналі модулів. Збільшувати останнє – дуже складне завдання, оскільки одночасно потрібно і швидкісні характеристики не погіршувати, як мінімум. Ця проблема навіть у настільних системах проявляється, де більше двох-трьох модулів на канал не використовується. Наприклад, може бути так: один модуль - DDR3 1333, два - DDR3 1066, три - DDR3 800. Дуже багато повільної пам'яті, звичайно, іноді краще ніж мало швидкої, але йти на такі витрати все одно небажано. А іноді й неможливо.

    Над проблемою збільшення кількості модулів пам'яті, що підтримуються одним каналом контролера, в Intel працювали довго і небезуспішно. Однак виявилося, що кінцевий результат (FB-DIMM) спочатку задовольняє поставленим вимогам, але його використання викликає масу небажаних побічних ефектів.

    Залишається тільки один шлях - по-перше, перенести контролер пам'яті в процесор, що в багатопроцесорній системі автоматично забезпечує нам підтримку кількох контролерів пам'яті. По-друге, збільшувати кількість каналів пам'яті. І те, й інше було зроблено. Результат? У системі на двох Xeon, так само як і в системі на двох Opteron, є два контролери пам'яті. Тільки в першій обидва триканальні, а в другій - двоканальні, що дає нам шість і чотири канали пам'яті відповідно. При встановленні двох модулів пам'яті на канал (дуже навіть щадний режим) у першій системі їх виявиться 12, а в другій - 8. Припустимо, кожен модуль має ємність 4 ГБ, тоді в першій системі виявиться 48 ГБ, а в другій - 32 ГБ. У ряді завдань це одразу забезпечить першій системі вагому перевагу. А як у сервері на Оптеронах тими самими модулями «добити» пам'ять до 48 ГБ? Легко – встановлюємо три модулі на канал і… вся система пам'яті починає працювати повільніше, оскільки, наприклад, затримки доведеться сильно збільшити. І виходить: при однаковій швидкості роботи пам'яті система «і» має у півтора рази більший її об'єм, ніж система «а», а за рівного об'єму система «і» працює з пам'яттю швидше, ніж система «а».

    Саме тому Xeon триканальний контролер пам'яті потрібен. Він і в Opteron потрібний, але не вдалося свого часу зробити. Так само, як зараз Intel не вдалося чотири канали реалізувати. Все одно цим шляхом йти обом виробникам, оскільки альтернативним (а саме FB-DIMM і кількість модулів на каналі збільшувати) один з них вже йти пробував і залишився не дуже задоволеним.

    А навіщо все це у зоопарку, на робочому столі звичайного користувача? Правильно – нема чого. Кому потрібно – ті багатопроцесорну робочу станцію куплять і зведуть завдання до попередньої. Основна маса якось бажанням не горіла і по 8 ГБ в комп'ютери встановлювати (хоча це давно доступно), так що їй немає різниці - можна поставити 12 або як. Тим більше що зараз вже при двох модулях на канал двоканального контролера пам'яті можна отримати і 16 ГБ, а питання - наскільки це гірше/краще, ніж 24 ГБ, для нормального користувача комп'ютера схоже на питання, скільки ангелів помістяться на кінчику голки.

    Разом

    При погляді на підсумкову діаграму виникає закономірне питання - а навіщо ми всім цим займалися? Адже видно, що до фінішу практично всі дійшли одночасно. Гіпотетичний одноканальний режим свою відносну безглуздість показав, що двоканальний - як і можна було припустити з тестів у синтетиці, виявився найшвидшим. Розкид у 2% між кращим і найгіршим випадками на такій представницькій кількості додатків - дуже гарний результат. Показує, що, як би там не було, але переважно наша поточна методика тестування продовжує залишатися методикою тестування процесорів, і на загальний підсумковий бал інші характеристики системи впливають дуже слабо.

    Але! Заспокоюватися на цьому рано - як ми бачимо, у загальному заліку вийшла ідилія саме через те, що різні додатки один одного врівноважують, проте поводяться вони зовсім по-різному. Комусь потрібно багато пам'яті, комусь її збільшення навпаки – заважає, комусь не важливий обсяг, але життєво важливі низькі затримки, але DivX, по суті, «знехтував» всі об'єктивно існуючі параметри пам'яті і віддав перевагу триканальному режиму в будь-якому вигляді. Тому, при порівнянні систем з різними конфігураціями пам'яті в рамках однієї статті (або самостійно), у конкретних тестах не варто забувати поцікавитись – як саме отримано той чи інший результат. Втім, не так довго залишилося нам возитися саме з різними конфігураціями - LGA1156, нагадаємо, підтримує лише два канали пам'яті, так що з цими процесорами все буде просто і логічно. Пристрої в конструктиві LGA1366 ми продовжимо тестувати в конфігурації 3х2, проте іноді будемо вилучати із запасників і 2х2 (коли небажано робитиме поправки в думці на особливості системи пам'яті). Можна було б навіть повністю перейти на останні, але немає сенсу – в середньому, вони, звичайно, дещо швидше, але підтримка трьох каналів пам'яті ексклюзивна особливість LGA1366, тож нехай за неї віддувається. Нам просто достатньо пам'ятати, що триканальний доступ до пам'яті на цій платформі продуктивність зовсім не збільшує, а навпаки.

    Цього сезону ми вже могли переконатися в тому, що Intel більше не гидує переймати у AMD деякі прогресивні ідеї. Зокрема, сумісність наборів команд AMD64 та IA-32e багатьма трактується саме так. AMD ж ніколи не гидувала використовувати просуваються Intel технології- навіть у сучасний період відносної незалежності вона бореться за якнайшвидше запровадження підтримки SSE3 у своїх процесорах.

    реклама

    Виявляється, що і вбудований контролер пам'яті може з'явитися у процесорах Intel. Принаймні в цьому впевнені співробітники сайту The Inquirer. Один із великих партнерів Intel зізнався їм у довірчій розмові, що майбутні процесори Intel обзаведуться вбудованими контролерами пам'яті. Втім, оскільки ця тенденція прив'язувалася до підтримки 64-бітових розширень, ми можемо припустити, що це станеться не дуже скоро, адже легалізація 64-бітних розширень у молодших сегментах процесорів Intel намічена на середину 2006 року.

    Цікаво, що вбудованим контролером пам'яті будуть оснащуватися всі процесори, починаючи з серверних і закінчуючи мобільними. Зважаючи на все, Intel не тільки переслідує вигоди від підвищення ефективності підсистеми пам'яті. Вбудований в процесор контролер пам'яті дозволяє знизити затримки при зверненні до пам'яті, а вони зростатимуть у міру появи модулів DDR-II з дедалі більше високими частотами. Вимушуючи виробників чіпсетів щільніше співпрацювати з представниками Intel (стороннім розробникам доведеться підлаштовуватись під можливості інтегрованого в процесори Intel контролера пам'яті), компанія отримає більше контролю над виробництвом материнських плат та чіпсетів.

    реклама

    Перші ознаки подібної тенденції вже згадувалися нами при описі архітектури серверного чіпсету TwinCastle. Контролер пам'яті виділено у цьому чіпсеті в окрему мікросхему. Це дозволяє гнучкіше проектувати Материнські плати, функціональність яких у серверному сегменті оновлюється досить повільно. Очевидно, що наступним кроком буде інтеграція контролера пам'яті в центральний процесор. На північний міст у такому разі лягають переважно функції "посередництва" між центральним процесором та графічною платою.

    Залишається лише почекати кілька років, щоб переконатися у достовірності цієї інформації чи її хибності:).

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

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


    Натисніть на зображення для збільшення.

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

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

    Потім є величезна кеш-пам'ять третього рівня (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, полегшуючи роботу на високих тактові частоти. Але ми закінчимо на позитивній новині: інженери Intel збільшили кількість промахів кешу даних L1, які архітектура може обробляти паралельно.

    TLB

    Вже багато років процесори працюють не з фізичними адресами пам'яті, а з віртуальними. Серед інших переваг такий підхід дозволяє виділяти програмі більше пам'яті, ніж є в комп'ютері, зберігаючи лише необхідні на даний момент дані у фізичній пам'яті, а все інше – на жорсткому диску. Це означає, кожен доступ до пам'яті віртуальний адресу потрібно переводити у фізичну адресу, й у збереження відповідності доводиться використовувати величезну таблицю. Проблема в тому, що ця таблиця виходить настільки великою, що на чіпі її зберігати вже не виходить - вона розміщується в основній пам'яті, причому її можна навіть скидати на жорсткий диск (частина таблиці може бути відсутня в пам'яті, скинута на HDD).

    Якщо для кожної операції роботи з пам'яттю був би потрібний такий етап перекладу адрес, то все працювало б занадто повільно. Тому інженери повернулися до принципу фізичної адресації, додавши невелику кеш-пам'ять безпосередньо на процесор, що зберігає відповідність кількох нещодавно запитаних адрес. Кеш-пам'ять називається Translation Lookaside Buffer (TLB). Intel повністю переробила TLB у новій архітектурі. До цих пір Core 2 використовував TLB першого рівня дуже маленького розміру (16 записів), але дуже швидкий і лише для завантажень, а також більший кеш TLB другого рівня (256 записів), який відповідав за завантаження, відсутні в TLB L1, а також запис.

    Nehalem тепер оснастився повноцінним дворівневим TLB: кеш TLB першого рівня поділений для даних та інструкцій. Кеш TLB L1 для даних може зберігати 64 записи для маленьких сторінок (4K) або 32 записи для великих сторінок (2M/4M), а кеш TLB L1 для інструкцій може зберігати 128 записів для маленьких сторінок (як і Core2), а також сім для великих. Другий рівень складається з уніфікованого кешу, який може зберігати до 512 записів та працює лише з маленькими сторінками. Мета такого покращення полягає у збільшенні продуктивності додатків, які використовують великі масиви даних. Як і у разі дворівневої системи передбачення розгалужень, маємо ще одне свідчення серверної орієнтації архітектури.

    Давайте на якийсь час повернемося до SMT, оскільки ця технологія теж впливає на TLB. Кеш L1 TLB для даних та TLB L2 динамічно розподіляються між двома потоками. Навпаки, кеш L1 TLB для інструкцій статично розподіляється для малих сторінок, а виділений великих сторінок повністю копіюється - це цілком зрозуміло, враховуючи його малий розмір (сім записів на потік).

    Доступ до пам'яті та попередня вибірка

    Оптимізований невирівняний доступ до пам'яті (Unaligned Memory Access)

    В архітектурі Core доступ до пам'яті призводив до ряду обмежень щодо продуктивності. Процесор був оптимізований для доступу до адрес пам'яті, вирівняних по 64-байтних кордонах, тобто за розміром одного рядка кешу. Для невирівняних даних доступ був не тільки повільний, але й виконання невирівняних інструкцій зчитування або запису було більш накладним, ніж у разі вирівняних інструкцій незалежно від реального вирівнювання даних пам'яті. Причина в тому, що ці інструкції призводили до генерації кількох мікрооперацій на декодерах, що знижувало пропускну здатність з цими типами інструкцій. У результаті компілятори уникали генерувати інструкції такого типу, підставляючи замість них послідовність інструкцій, менш накладні.

    Так, читання з пам'яті, при якому відбувалося перехльостування двох рядків кешу, сповільнювалося приблизно на 12 тактів, в порівнянні з 10 тактами для запису. Інженери Intel оптимізували подібний тип звернень, щоб він виконувався швидше. Почнемо з того, що тепер немає падіння продуктивності під час використання невирівняних інструкцій читання/запису у випадках, коли дані вирівняні в пам'яті. В інших випадках Intel також оптимізувала доступ, знизивши падіння продуктивності порівняно з архітектурою Core.

    Більше блоків попередньої вибірки з ефективнішою роботою

    В архітектурі Conroe Intel особливо пишалася апаратними блоками передбачення. Як ви знаєте, блок передбачення – це механізм, який стежить за характером доступу до пам'яті та намагається передбачити, які дані будуть потрібні через кілька тактів. Мета полягає в тому, щоб запобіжним чином завантажити дані в кеш, де вони будуть розташовуватися ближче до процесора, і одночасно максимально використовувати доступну пропускну здатність тоді, коли процесору вона не потрібна.

    Ця технологія дає чудові результати з більшістю настільних додатківАле в серверному середовищі вона часто призводила до втрати продуктивності. Є кілька причин такої неефективності. По-перше, доступи до пам'яті часто складніше передбачити у серверних додатках. Доступ до бази даних, наприклад, зовсім на лінійний - якщо пам'яті запитується якийсь елемент даних, це значить, що наступним буде сусідній елемент. Це обмежує ефективність блоку попередньої вибірки. Але основною проблемою була пропускна спроможність пам'яті в багатосокетних конфігураціях. Як ми вже говорили раніше, вона вже була "вузьким місцем" для кількох процесорів, але, крім цього, блоки попередньої вибірки призводили до додаткового навантаження на цьому рівні. Якщо мікропроцесор не виконує доступу до пам'яті, то включалися блоки попередньої вибірки, намагаючись використовувати пропускну здатність, за їх припущенням, вільну. Однак блоки не могли знати, чи ця пропускна здатність потрібна іншому процесору. Це означало, що блоки попередньої вибірки могли "відбирати" у процесора пропускну здатність, яка і так була "вузьким місцем" у таких конфігураціях. Щоб вирішити цю проблему, Intel не знайшла нічого кращого, як відключити блоки попередньої вибірки в таких ситуаціях - навряд чи оптимальне рішення.

    Як стверджує Intel, ця проблема вже вирішена, проте компанія не дає жодних деталей щодо роботи нових механізмів попередньої вибірки. Все, що компанія каже: тепер не потрібно вимикати блоки для серверних конфігурацій. Втім, навіть Intel нічого не змінила, переваги від нової організації пам'яті і, внаслідок цього, велика пропускна спроможність має нівелювати негативний вплив блоків попередньої вибірки.

    Висновок

    Conroe став серйозним фундаментом для нових процесорів, і Nehalem побудований саме на ньому. Тут використовується така ж ефективна архітектура, але тепер вона набагато модульніша і масштабованіша, що має гарантувати успіх у різних ринкових сегментах. Ми не говоримо про те, що Nehalem революціонізував архітектуру Core, але новий процесорреволюціонізував платформу Intel, яка тепер стала гідною відповідністю для AMD з дизайну, а з реалізації Intel успішно оминула конкурента.


    Натисніть на зображення для збільшення.

    З усіма поліпшеннями, зробленими цьому етапі (інтегрований контролер пам'яті, QPI), не дивно бачити, що зміни виконавчого ядра не такі значні. Але повернення Hyper-Threading можна вважати серйозною новиною, та й низка невеликих оптимізацій теж має забезпечити помітний приріст продуктивності порівняно з Penryn на рівних частотах.

    Цілком очевидно, що найсерйозніший приріст буде у тих ситуаціях, де основним "вузьким місцем" була оперативна пам'ять. Якщо ви прочитали статтю цілком, то, напевно, помітили, що саме на цю область інженери Intel приділили максимум уваги. Крім додавання вбудованого контролера пам'яті, який, без сумніву, дасть найбільший приріст щодо операцій доступу до даних, є і безліч інших покращень, як великих, так і дрібних – нова архітектура кешу та TLB, невирівняний доступ до пам'яті та блоки попередньої вибірки.

    Враховуючи всю теоретичну інформацію, ми з нетерпінням чекаємо, як покращення відіб'ються на реальних додатках після виходу нової архітектури. Ми присвятимо цьому кілька статей, тому залишайтеся з нами!

    © 2022 androidas.ru - Все про Android