Як працюють SSD?

Як працюють SSD?

Тут, у wtoojjaec, ми часто обговорювали різницю між різними типами NAND-структур - вертикальними NAND і планарними, або багаторівневими клітинками (MLC) і трьохрядними ячейками (TLC). Тепер давайте поговоримо про основне актуальне запитання: як перш за все працюють SSD, і як вони порівнюються з новими технологіями, такими як Intel Optane?

Як працюють SSD?

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

З самого початку було зрозуміло, що жорсткі диски не можуть відповідати швидкості, на якій можуть працювати процесори. Затримка в жорстких дисках вимірюється в мілісекундах у порівнянні з наносекундами для вашого типового процесора. Одне мілісекунда становить 1 000 000 наносекунд, і зазвичай він використовує жорсткий диск 10-15 мілісекунд, щоб знайти дані на диску та почати його читання. Промисловість жорстких дисків представила менші бляшки, кеш-пам'ять на диску та швидкість шпинделя швидше, щоб протидіяти цій тенденції, але можна обертати тільки такі швидкі диски. Сімейство VelociRaptor із швидкістю 10000 RPM на Western Digital є найшвидшим набором дисків, які коли-небудь були побудовані для споживчого ринку, а деякі корпоративні накопичувачі складають до 15 000 обертів на хвилину. Проблема полягає в тому, що навіть найшвидший спінінг за допомогою найбільших кеш-пам'яті та найменших платівків все ще сильно сповільнює роботу вашого процесора.

Як SSD різні

"Якби я запитав людей про те, що вони хотіли, вони б сказали швидкіші коні." - Генрі Форд

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

Як працюють SSD?

Наведена вище діаграма показує простий дизайн флеш-комірки. Електрони зберігаються в плаваючому затворі, який потім читається як заряджений "0" або не заряджений "1." Так, у NAND-спалах, 0 означає, що дані зберігаються в комірці - це навпаки, як ми зазвичай думаємо про нуль або один. NAND-спалах організовано в сітці. Вся макета сітки називається блоком, а окремі рядки, що складають сітку, називаються сторінкою. Загальні розміри сторінок 2K, 4K, 8K або 16K, з 128 до 256 сторінок на блок. Зазвичай розмір блоків становить від 256 КБ до 4 МБ.

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

Зображення за допомогою CodeCapsule
Зображення за допомогою CodeCapsule

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

Є дві речі, які слід помітити на наведеній вище схемі. По-перше, зверніть увагу, як додавання додаткових бітів на клітинку NAND суттєво впливає на продуктивність пам'яті. Це гірше для написання, на відміну від читання: типова затримка TLC у 4 рази гірша в порівнянні з однорівневим елементом (SLC) NAND для читання, але 6 разів гірше для запитів. Також суттєво впливає латентність на стирання. Вплив не пропорційний, або - TLC NAND майже вдвічі повільніше, ніж MLC NAND, незважаючи на те, що зберігає на 50% більше даних (три біти на клітинку, а не два).

Напруга TLC NAND
Напруга TLC NAND

Причина TLC NAND повільніше, ніж MLC або SLC, пов'язана з тим, як дані переміщуються в клітинку NAND. За допомогою SLC NAND контролер повинен лише знати, чи біт має значення 0 або 1. З MLC NAND, комірка може мати чотири значення - 00, 01, 10 або 11. За допомогою TLC NAND, комірка може мати вісім значень . Читання відповідного значення поза коміркою вимагає від контролера пам'яті точної напруги, щоб з'ясувати, чи заряджена якась окрема осередок.

Читає, пише і вилучає

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

Єдиний спосіб для SSD для оновлення існуючої сторінки полягає в тому, щоб скопіювати вміст всього блоку в пам'ять, стерти блок, а потім записати вміст старого блоку + оновлену сторінку. Якщо диск є повним, і немає вільних сторінок, SSD спочатку повинен сканувати блоки, позначені для видалення, але які ще не видалені, стерти їх, а потім записати дані на стертій сторінці. Ось чому SSD може стати повільніше, оскільки вони старіють - в основному порожній накопичувач насичений блоками, які можна записати негайно, а більшість повних дисків, імовірно, будуть змушені пройти через всю програму / стирати послідовність.

Якщо ви використовували накопичувачі SSD, ви, напевно, чули про щось називається "сміття збирання". Збір сміття - це фоновий процес, який дозволяє зменшити вплив програми / стирання на ефективність, виконуючи певні завдання у фоновому режимі. Наступні кроки зображення здійснюються через процес збирання сміття.

Зображення люб'язно надано Вікіпедією
Зображення люб'язно надано Вікіпедією

Примітка. У цьому прикладі, диск скористався тим, що він може дуже швидко писати порожні сторінки, написавши нові значення для перших чотирьох блоків (A'-D '). Також написано два нових блоки E і H. Блоки A-D тепер позначені як застарілі, тобто вони містять інформацію, яку диск позначив як застарілий. Під час простою SSD буде переносити нові сторінки на новий блок, видалити старий блок і позначити його як вільне місце. Це означає, що наступний раз, коли SSD потрібно виконати запис, він може писати безпосередньо на вже заблокований блок X, а не виконувати цикл програми / стирання.

Наступна концепція, яку я хочу обговорити, - TRIM. Коли ви видаляєте файл із Windows на звичайному жорсткому диску, файл не видаляється негайно. Замість цього операційна система повідомляє жорсткому диску, що він може перезаписати фізичну область диску, де ці дані були збережені в наступний раз, коли він повинен виконати запис. Ось чому можна відновити файли (і чому видалення файлів у Windows, як правило, не очищає багато фізичного місця на диску, доки ви не очистите кошик для переробки). За допомогою традиційного жорсткого диска в ОС не потрібно звертати увагу на те, де записуються дані, або на те, який відносний стан блоків або сторінок. З SSD це важливо.

Команда TRIM дозволяє операційній системі повідомити SSD, що вона може пропустити перезапис певних даних наступного разу, коли він виконує блокування стирання. Це знижує загальну кількість даних, які пише дисковод, і збільшує довговічність SSD. Обидва читає і записує пошкодження NAND-спалаху, але пише робити набагато більший збиток, ніж читає. На щастя, тривалий термін служби блочного рівня не виявився проблемою в сучасному спалаху NAND. Більше даних про довговічність SSD, люб'язно надані технічним звітом, можна знайти тут.

Два останні концепції, про які ми хочемо поговорити, - це зносостійкість і підсилення запису. Оскільки тверді накопичувачі записують дані на сторінки, але стирають дані в блоках, обсяг даних, що записуються на диск, завжди більший, ніж фактичне оновлення. Якщо ви внесете зміни до файлу 4 Кб, наприклад, весь блок, в який файл 4K знаходиться, повинен бути оновлений та переписаний. Залежно від кількості сторінок на блок і розміру сторінок, ви можете скласти 4 мільйона даних для оновлення 4KB файлу. Збирання сміття зменшує вплив посилення запису, як і команда TRIM. Зберігання значної частини вільного дисковода та / або перевиконання виробником також може зменшити вплив посилення запису.

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

Контролер SSD

Слід зазначити, що SSD вимагають набагато складніших механізмів управління, ніж жорсткі диски. Це не для розсіювання магнітних носіїв - насправді я думаю, жорсткі диски заслуговують більшої поваги, ніж вони даються. Механічні проблеми, пов'язані з балансуванням декількох нагнітачів головки читання-запису над наборами пластин, що обертаються з 5400 до 10000 оборотів в хвилину, - це чітке чхання. Той факт, що жорсткі диски виконують цю проблему, будучи новаторами нових методів запису на магнітні носії та, зрештою, припиняють продажі дисків на 3-5 копійок за гігабайт, просто неймовірні.

Типовий контролер SSD
Типовий контролер SSD

Контролери SSD, однак, знаходяться в класі самостійно. Вони часто мають пул пам'яті DDR3, щоб допомогти в управлінні самим NAND. Багато дисків також включають в себе однорівневі клітинні кеші, які працюють як буфери, що підвищує продуктивність приводу завдяки швидкій передачі NAND для читання / запису циклів. Оскільки NAND-спалах у SSD, як правило, підключається до контролера через ряд паралельних каналів пам'яті, ви можете думати про контролер дисків, виконуючи те ж самі роботи з балансуванням навантаження, як високопродуктивний масив пам'яті - SSD не розгортаються RAID всередині, але носити вирівнювання, збирання сміття та керування кешами SLC - все це має паралелі у великому залісному світі.

Деякі диски також використовують алгоритми стиснення даних, щоб зменшити загальну кількість записів та поліпшити термін служби диска. Контролер SSD обробляє корекцію помилок, і алгоритми, що керують однобічними помилками, ускладнюються, коли минув час.

На жаль, ми не можемо надто детально розповісти про контролери SSD, оскільки компанії блокують різні секретні соуси. Значна частина продуктивності NAND-флеш-пам'яті визначається основним контролером, і компанії не хочуть підняти кришку занадто далеко від того, як вони роблять те, що вони роблять, щоб вони не передавали конкурентові перевагу.

Дорога вперед

NAND flash забезпечує неймовірне покращення у порівнянні з жорсткими дисками, але це не має власних недоліків і проблем. Очікується, що динамічні потужності та ціна за гігабайт будуть продовжувати зростати і падати, відповідно, але, мабуть, SSD зможе зачепити жорсткі диски за ціною за гігабайт. Зниження процесів вузлів є серйозною проблемою для NAND-спалаху - тоді як більшість апаратних засобів покращується, коли вузол стискається, NAND стає більш тендітним. Тривалість зберігання даних та продуктивність запису практично нижча для 20-N NAND, ніж 40-N NAND, навіть якщо щільність даних та загальна місткість значно покращуються.

На сьогоднішній день виробники SSD забезпечили кращу продуктивність, пропонуючи більш швидкі стандарти даних, більше пропускної здатності та більше каналів для кожного контролера, а також використання кеш-пам'яті SLC, про які ми згадували раніше. Тим не менш, у довгостроковій перспективі передбачається, що NAND буде замінено на щось інше.

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

3D XPoint Intel (продана як Intel Optane) виникла як один з потенційних претендентів на флеш-пам'ять NAND, і є єдиною сучасною альтернативною технологією в основному виробництві. Optin SSD забезпечують аналогічну послідовну продуктивність для поточних NAND-флеш-накопичувачів, але з значно кращою продуктивністю при малих чергах приводу. Затримка дисків також становить приблизно половину NAND-спалаху (10 мікросекунд, проти 20) і значно більшу витривалість (30 повних дисків - на день, у порівнянні з 10 повними накопичувачами на день для високотехнологічного SSD для Intel).

Цілі продуктивності Intel Optane
Цілі продуктивності Intel Optane
Як працюють SSD?

Перевірте наш wfoojjaec пояснює серію для більш поглибленого висвітлення сьогоднішніх гарячих технологічних тем.