Як працюють твердотільні накопичувачі?

Як працюють твердотільні накопичувачі?

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

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

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

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

Чим відрізняються твердотільні накопичувачі

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

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

Як працюють твердотільні накопичувачі?

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

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

Як працюють твердотільні накопичувачі?

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

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

Як працюють твердотільні накопичувачі?

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

Читає, пише та стирає

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

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

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

Як працюють твердотільні накопичувачі?

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

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

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

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

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

Контролер SSD

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

Як працюють твердотільні накопичувачі?

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

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

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

Інтерфейси

На початку твердотільні накопичувачі використовували порти SATA, як і жорсткі диски. В останні роки ми спостерігали перехід на накопичувачі M.2 - дуже тонкі накопичувачі довжиною в кілька дюймів, які прорізуються безпосередньо в материнську плату (або, в деяких випадках, в кріпильний кронштейн на платі PCIe. Привід 970 EVO Plus показаний нижче.

Як працюють твердотільні накопичувачі?

Диски NVMe пропонують більш високу продуктивність, ніж традиційні драйвери SATA, оскільки вони підтримують швидший інтерфейс. Звичайні твердотільні накопичувачі, приєднані через SATA, мають максимальну швидкість ~ 550 МБ / с з точки зору практичної швидкості читання / запису. Диски M.2 здатні значно швидше працювати в діапазоні 3,2 ГБ / с.

Попереду дорога

Флеш NAND пропонує значне покращення порівняно з жорсткими дисками, але він не позбавлений власних недоліків і проблем. Очікується, що об’єм накопичувачів та ціна за гігабайт продовжуватимуть зростати і падати відповідно, але мало шансів, що твердотільні накопичувачі вловлять жорсткі диски ціною за гігабайт. Зменшення вузлів процесу є значним викликом для флеш-пам'яті NAND - в той час як більшість апаратних засобів вдосконалюються в міру зменшення вузла, NAND стає більш крихким. Час збереження даних і продуктивність запису є суттєво меншими для 20 нм NAND, ніж 40 нм NAND, навіть якщо щільність даних і загальна ємність значно покращуються. На даний момент ми бачили накопичувачі з до 96 шарами на ринку, і на даний момент 128 шарів здається правдоподібним. Загалом, перехід на 3D NAND допоміг покращити щільність, не скорочуючи вузли процесу або не покладаючись на площинне масштабування.

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

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

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

Як працюють твердотільні накопичувачі?

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

Ознайомтесь із нашою серією wfoojjaec Explains, щоб детальніше висвітлити найгарячіші сучасні теми.

Читати далі

Як працюють кеші процесорів L1 та L2 та чому вони є важливою частиною сучасних чіпів
Як працюють кеші процесорів L1 та L2 та чому вони є важливою частиною сучасних чіпів

Вам коли-небудь цікаво було, як працюють кеші L1 та L2? Ми раді, що ви запитали. Тут ми глибоко зануримось у структуру та природу одного з найважливіших обчислювальних проектів та інновацій.

Fusion Reactor встановлює запис, працюючи протягом 20 секунд
Fusion Reactor встановлює запис, працюючи протягом 20 секунд

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

Cyberpunk 2077: CDPR «вибачається» за випуск непрацюючої гри, пропонує відшкодування
Cyberpunk 2077: CDPR «вибачається» за випуск непрацюючої гри, пропонує відшкодування

Версія для PS4 та Xbox One S для Cyberpunk 2077 настільки погана, що компанія зараз пропонує відшкодування. Ми рекомендуємо гравцям консолі останнього покоління взяти їх на себе, а не чекати.

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

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