Автопортал || Авто - статьи

Сельскохозяйственная техника
Чтение RSS

Як працює SSD-диск?

Ми дуже часто обговорюємо різницю між різними типами NAND- структур - вертикальних NAND і площинних, багаторівневих осередків (MLC) і триповерхових осередків (TLC). Але ми ще жодного разу не сіли і не поговорили про більш простому і фундаментально уместном питанні: як, в першу чергу, працює SSD?

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

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

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

Чим відрізняється SSD

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

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

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

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

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

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

Напруга TLC NAND

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

Читання, запис, cтіраніе

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

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

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

Зверніть увагу, що на цьому прикладі привід користується тим, що він може писати дуже швидко, спустошуючи сторінки і записуючи нові значення для перших чотирьох блоків (AD). Він також записав два нові блоки - Е і Н. Блоки AD тепер відзначені як застарілі, а це означає, що вони зберігають інформацію, яка значиться в пам'яті диска як "застаріла". Під час неактивного періоду, SSD буде рухати нові сторінки в новий блок, витираючи старий блок, і позначаючи його як пусте місце. Це означає, що наступного разу, коли SSD знадобиться зробити запис, він може записати прямо на вже порожній блок Х, замість того, щоб провести цикл "витри-запиши".

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

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

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

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

контролер SSD

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

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

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

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

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

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

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

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

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

Зараз NAND-пам'ять є царем гори, і залишатиметься такою ще років 5, як мінімум.

Але ми ще жодного разу не сіли і не поговорили про більш простому і фундаментально уместном питанні: як, в першу чергу, працює SSD?