У цьому контексті (бюджетне споживаче споживачі) Optane досить чітко посилається лише на невеликий / швидкий NVMe-підключений SSD за допомогою пам'яті 3D XPoint (замість NAND flash), що дає йому дуже високу витривалість при записі. (Таким чином, він не зношується, якщо використовувати його як місце для заміни).
Це все ще буде смоктати для багатьох завантажень, тому що для доступу до DRAM ( помилка кешу) досі потрібна помилка сторінки та багато мікросекунд ; це не безпосередньо відображення пам'яті на шині пам'яті процесора. Крім того, виконання поза замовлення / попередній вибір HW / інша паралельність пам'яті може зберігати ~ 10 пропусків кеша в польоті на фізичне ядро, але помилка сторінки серіалізується . Жодна корисна робота не може відбуватися (у цій темі), коли ОС обслуговує помилку сторінки, тому немає можливості для OoO exec приховати будь-яку з цих затримок на жорсткій сторінці. (Але навіть 70с - це занадто довго, щоб все-таки повністю приховатись. Але все ж, маючи кілька помилок при польоті на різні лінії, йде довгий шлях до пом’якшення його для деяких навантажень.)
Використання вражаюче невеликої кількості оперативної пам’яті та залежно від швидкого SSD для swap space / pagefile - не єдиний випадок використання для цього типу Optane. (І, мабуть, не дуже вдалий випадок використання). Як описує https://www.tweaktown.com/articles/8119/intel-optane-memory-matters/index.html , головним випадком використання є прозорий кеш для магнітного жорсткого диска. Я думаю, що Intel надає драйвери Windows для цього. Ви можете придбати жорсткі диски SATA, які мають обертовий магнітний накопичувач із вбудованим спалахом як буфер / кеш для частин диска, що часто отримують доступ. Драйвери Optane HW + можуть робити це на будь-якому диску.
Оптане NVMe, мабуть, має дуже хороші показники випадкового читання на низькій глибині черги (зачекайте, коли одне читання закінчиться, перш ніж запустити інше, що, на жаль, трапляється, коли програмі належить прочитати один блок, перш ніж вона зможе зрозуміти, що робити далі, і попереднє завантаження програмного забезпечення ISN не допомагаю). Тож це повинно чудово прискорити час запуску програми та завантаження.
Не особливо дивовижно для великих суміжних записів великих файлів; сподіваємось, програмне забезпечення драйвера знає обійти кеш Optane і перейти прямо до основного магнітного диска для цього. Основна сторінка Intel Optane посилається на https://www.intel.ca/content/www/ca/en/products/memory-storage/optane-memory/optane-16gb-m-2-80mm.html, що показує їх 16 Гб .2 У Optane послідовне читання 900MB / s, але лише 145MB / s послідовне записування. Версія на 32 ГБ швидша, з читанням 1350 Мб / с, записом 290 Мб / с. Але знову ж таки, це не те, в чому найкраще Optane. Це послідовний і випадковий IOPS зчитування - це 240 к IOPS, із затримкою читання 7 мкс.
Intel має щось, що називається IMDT (Intel Memory Drive Technology)що є гіпервізором, який створює ілюзію більшого основного адресного простору пам'яті для операційної системи. Деякі сторінки будуть зіставлені у фактичну основну пам'ять DRAM, а інші на SSD. Під час доступу до сторінки, відображеної на SSD, виникає помилка сторінки, схоплена IMDT, що призведе до того, що сторінка буде перенесена з SSD в основну пам'ять (можливо, вилучення сторінки з пам'яті на SSD). IMDT намагатиметься попередньо вибирати сторінки в DRAM, щоб полегшити нижчу пропускну здатність та затримку SSD. Він також намагатиметься зберігати найгарячіші сторінки в основній пам’яті, щоб до них можна було отримати мінімальний розмір штрафу (єдине покарання може надходити з додаткових шарів підкачки через віртуалізацію.) ОС переважно не звертає уваги на це відображення та працює нормально. Така система пам'яті називається програмно визначеною пам'яттю (SDM). ПриємнеУ статті під назвою "Оцінка продуктивності технології пам'яті накопичувача Intel для наукових застосувань" дається оцінка продуктивності IMDT та порівнюється її з системою, яка має стільки ж основної пам'яті DRAM. Я ретельно не читав документ, але, здається, IMDT може переміщувати сторінки між NUMA-вузлами, щоб наблизити їх до вузла, де вони в основному потрібні.
При цьому IMDT підтримується лише на серверних процесорах Intel. Він призначений для створення економічно ефективних, енергоефективних серверів з потенційно невеликим впливом на продуктивність.
http://www.lmdb.tech/bench/optanessd/imdt.html має деякі орієнтири з Optane DC P4800X SSD. (Версія високого класу даних центру, а не речі для споживачів. Набагато вища стійкість можливості запису.)
Я не переглядав це, тому не впевнений, чи це взагалі актуально для того, як Windows могла б скористатися споживчим Optane SSD.
Назва Optane (дещо заплутано) також використовується для набагато цікавішої екзотики:
3D XPoint енергонезалежні DIMM , також "Optane постійної пам'яті постійного струму". https://www.anandtech.com/show/12828/intel-launches-optane-dimms-up-to-512gb-apache-pass-is-тут . Apache Pass - ім'я першої генерації Optane DC PM. Для цього зверніться до інформації про майбутні покоління.
Intel має свою власну основному передпродажну сторінку для цього тут , з деякими посиланнями на деталь технологій. Очевидно, що "DC" означає Data-Centric.
Це енергонезалежне сховище, яке підключається до слота DDR4 DIMM і відображається як фактична фізична пам'ять. Мабуть, це повністю підтримується лише Xeons наступного покоління (не поточна серія Skylake-X aka Skylake Scalable Processor).
Існують і інші види NVDIMM, наприклад, звичайна DRAM, що підтримується батареєю (необов'язково зі спалахом, щоб скинути дані на довгострокове вимкнення, тому їм потрібен лише суперконденсатор замість хімічної батареї). https://en.wikipedia.org/wiki/NVDIMM має деякі деталі.
https://www.electronicdesign.com/industrial-automation/why-are-nvdimms-suddenly-hot має додаткову загальну інформацію про NVDIMM (та стандартизацію JEDEC про них, і про те, як додатки OS + можуть співпрацювати, щоб додатки могли говорити безпосередньо область пам'яті, нанесена на зберігання NV, забезпечує замовлення фіксування тощо). Основний момент полягає в тому, що вони фактично розмивають межу між оперативною пам’яттю та пам’яттю (у сенсі комп’ютерної архітектури, а не в суворо маркетинговому сенсі оманливого оголошення для ноутбуків, на яке ви бачили, що заявлено 4 + 16 Гб.)
ОС може дозволити процесові відображати цю енергонезалежну фізичну пам’ять у власний віртуальний адресний простір, щоб вони могли отримати доступ до пам’яті безпосередньо з завантаженнями в просторі користувача та зберігати адреси пам’яті без жодних системних викликів, не дозволяючи апаратним процесорам продовжувати працювати поза виконання замовлення, поки є непогашені читання / записи . (Існують бібліотеки програмного забезпечення, які дозволяють розробникам скористатися цим, включаючи можливість flush()
переконатися, що дані фактично записуються в постійне зберігання.
Таке відображення може бути навіть кешованим записом, тому використання даних повністю виграє з кешу L3 / L2 / L1d, поки не настав час його повернути (якщо буде змінено). Що стосується даних, здебільшого для читання, цей тип Optane дійсно можна було б назвати 4 + 16 Гб оперативної пам’яті. (Звичайно, поточний випадок використання центру обробки даних для Optane NVDIMM використовує набагато більші DIMM, наприклад 512 Гб.)
(Це не так, як mmap
ed-файл на звичайному диску, де ви просто картографуєте кеш-сторінок ОС для цього файлу, а ОС дбає про введення / вивід у фоновому режимі для синхронізації брудних сторінок оперативної пам’яті із пристроєм зберігання даних.)
Переконайтесь, що деякі дані дійсно дісталися до пам’яті NV раніше, ніж інші (щоб дозволити відновлення після збоїв, як-от файлова система чи журнал бази даних) є важливим. З системними дзвінками тут ви б використовували POSIX fsync
або fdatasync
. Але оскільки додаток має пам’ять справді відображеною на пам'ять, саме тут надходять дзвінки з функцій бібліотеки.
У x86 asm ми отримуємо доступ до сховища із звичайними навантаженнями / сховищами, але ми дбаємо про те, коли дані насправді записуються в NVDIMM (де це безпечно від втрати електроенергії), а не тоді, коли це видно іншим ядрам або кеш-когерентним DMA (як тільки це відбувається з буфера магазину в кеш-пам'ять L1d), тому звичайні правила впорядкування пам'яті x86 не повністю забезпечують все. Нам потрібні спеціальні інструкції для видалення вибраних кеш-ліній з кешу процесора. (Для використання бібліотеками зберігання NV.)
clflush
Інструкція ASM існує деякий час, але зберігання NV є однією з основних причин , чому Intel додала clflushopt
в Skylake (хоча є і інші приклади використання, теж), і додавання clwb
в Ice Lake (зворотний запис без виселення).
Нещодавно Ден Луу написав цікаву статтю про переваги відмови ОС для доступу до сховища, детально розробивши плани Intel на той момент щодо clflush
/ clwb
та їх семантики впорядкування пам’яті. Це було написано, поки Intel все ще планував вимагати інструкцію, яка називається pcommit
(постійний фіксатор), як частина цього процесу, але Intel згодом вирішив видалити цю інструкцію: Депресія Інструкції PCOMMIT містить цікаву інформацію про те, чому і як все працює під капотом. .
(Це відірвало тему від деталей низького рівня пам’яті x86 NV. Мені слід знайти десь ще, щоб розмістити більшу частину цього розділу, але я думаю, що це)
Існують також SSD-диски Optane DC , як карта PCIe x4 або 2,5 " . Версія 750 ГБ робить до 2500 МБ / с послідовним читанням, 2200 МБ / с послідовним записом і 550000 IOPS з випадковим читанням або записом. Затримка читання трохи гірша, ніж M.2 NVMe, на 10 мкс.
Це те, що ви хочете, якщо ви використовуєте сервер бази даних або щось подібне (якщо ви не можете використовувати NVDIMM), але це не зробить ваш 4 Гб ноутбук набагато швидшим (для більшості типових випадків використання), ніж 16 Гб Optane, з яким вони продають його. Обмінність простору заміни часто створює багато залежних читань, оскільки до сторінки потрібно підключити сторінку та отримати доступ до неї, перш ніж код, який може призвести до помилок сторінки, продовжуватиметься до того, що буде робити далі. Якщо пам’ять дійсно об'ємна, в ОС немає запасних сторінок для агресивного попереднього вибору, тому ви можете очікувати низьких глибин черги, для яких оптимізований споживач Optane. (Низька затримка.)
SSD Intel Optane пропонує приємне зменшення продуктивності та витрат. SSD-накопичувачі в основному не споживають енергію, коли до них не звертаються. Навпаки, статичне споживання електроенергії (в основному за рахунок оновлення) в мікросхемах DRAM є суттєвим. Тому кількість DRAM в системі в ідеалі повинна відповідати робочому набору типового навантаження. Придбана вами система була розроблена для типового робочого навантаження, що вимагає приблизно 4 Гб основної пам'яті або менше. У цьому випадку, якщо система мала 8 Гб основної пам’яті, вона зайве споживає більше енергії, що скоротить час автономної роботи. Однак, Optane SSD дозволяє час від часу виконувати робочі навантаження, які потребують трохи більшої основної пам'яті з мінімальним зниженням продуктивності (порівняно з SSD-накопичувачами або жорсткими дисками на основі NAND).
Наразі пам'ять DRAM коштує близько 4,5 долара за 1 ГБ, в той час як Intel Optane SSD коштує близько 2 доларів за 1 ГБ. Таким чином, 16 Гб Optane SSD коштує дорожче, ніж 4 ГБ DRAM-модуля, але дешевше, ніж 8 ГБ DRAM-модуля. Тож якщо ви виймете Optane SSD і додасте на 4 Гб більше пам’яті, ви отримаєте більш дешеву систему, яка також в середньому швидша для типових навантажень з більшими робочими наборами, ніж 4 Гб. Але обробка несправностей з жорсткими сторінками, попереднє завантаження сторінки та заміна сторінок будуть більш повільними від жорсткого диска. Ось чому система 8 Гб, ймовірно, буде повільнішою, ніж 4 ГБ оперативної пам'яті + 16 Гб Optane SSD, якщо типовий робочий набір вимагає менше (або приблизно) 4 ГБ пам'яті.
Ваш ноутбук чудовий, якщо ви просто збираєтесь використовувати його для перегляду Інтернет чи редагування тексту. Optane SSD допомагає в часі завантаження, забезпечує швидкий доступ до файлів, які найчастіше отримують доступ, і може використовуватися як додаткове вторинне сховище. Тож хоча ви платите більше 16 Гб Optane SSD, ніж 4 Гб DRAM, ви отримуєте певні унікальні переваги для цього. Але для деяких інших згаданих вами програм, таких як RStudio, потрібно мінімум 4 Гб пам'яті. Якщо ви зазвичай використовуєте браузер і RStudio одночасно (а можливо й інші додатки), тоді вам слід отримати систему з принаймні 8 Гб пам'яті. Optane SSD поки добре мати.