Як працюють SSD-файли?

Як працюють SSD-файли?

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

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

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

Як SSDs відрізняються

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

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

Як працюють SSD-файли?

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

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

Зображення CodeCapsule
Зображення CodeCapsule

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

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

Як працюють SSD-файли?

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

Читає, пише та видаляє

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

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

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

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

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

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

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

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

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

Контролер SSD

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

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

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

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

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

Інтерфейси

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

Як працюють SSD-файли?

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

Флеш NAND надає величезне поліпшення в порівнянні з жорсткими дисками, але це не без власних недоліків і проблем. Можливості драйверів і ціна за гігабайт, як очікується, продовжуватимуть збільшуватися і знижуватися відповідно, але є невеликі шанси SSDs зловити жорсткі диски в ціні за гігабайт. Зменшення вузлів процесу є суттєвою проблемою для NAND flash - хоча більшість апаратних засобів покращується, оскільки вузол стискається, NAND стає більш крихким. Час утримання даних і продуктивність запису є суттєво нижчими для 20nm NAND, ніж 40nm NAND, навіть якщо щільність даних і загальна потужність значно покращилися. До цих пір ми бачили диски з до 96 шарів на ринку, а 128 шарів здаються правдоподібними. В цілому, перехід до 3D NAND допоміг поліпшити щільність без скорочення вузлів процесу або покластися на планарне масштабування.

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

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

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

Цілі продуктивності Intel Optane
Цілі продуктивності Intel Optane

Ознайомтеся з нашими серіями wfoojjaec Пояснення для більш глибокого висвітлення найактуальніших тематик сьогоднішнього дня.