Диски SSD на основі NAND-пам’яті: технології, принцип роботи, різновиди
28-06-2010
В основу зародження NAND-пам'яті лягла флеш-пам'ять, що з'явилася набагато раніше та використовується у твердотільних накопичувачах з явно меншою швидкістю роботи, довговічністю і більшою площею чіпа, ніж у NAND-пам'яті. Флеш-пам'ять винайшов Fujio Masuoka в 1984 році, працюючи в компанії Toshiba. Після представлення розробки Fujio Masuoka на IEEE 1984 (International Electron Devices Meeting) у Сан-Франциско (Каліфорнія) компанія Intel в 1988 році випустила перший комерційний флеш-чіп типу NOR. Поява NAND-типу флеш-пам'яті було анонсовано Toshiba в 1989 році на Міжнародній конференції, присвяченій твердотільним дискам (International Solid-State Circuits Conference).
Flash-пам'ять, типи NAND-пам'яті
Принциповою відмінністю флеш-пам'яті є зберігання нею одного біта інформації в масиві транзисторів з плаваючим затвором, що мають назву клітинок. Існує два типи NAND-пам'яті, використовуваної у SSD дисках – SLC і MLC. Чим же відрізняються SLC і MLC типи пам'яті? SLC-пристрої мають однорівневі комірки, які зберігають у кожному транзисторі тільки один біт, а багаторівневі MLC можуть зберігати в кожній клітинці декілька біт інформації. Це наслідок використання різних рівнів електричного заряду на плаваючому затворі транзистора. Принцип кодування (логічного 0 або 1) інформації у всіх випадках однаковий, він буде описаний нами нижче. Різниться лише у будові комірок. Глибина рівнів MLC може доходити до 4-х, тобто зберігати до 4-х біт інформації, у той час як SLC є більш простою одиницею і зберігає 1 біт.
Технологія MLC дозволяє за рахунок нарощування рівнів суттєво збільшити об'єм диска, залишивши його фізичні розміри незмінними, що зменшує собівартість кожного гігабайта. На цьому позитивні якості даної технології закінчуються. З кожним додатковим рівнем ускладнюється завдання розпізнавання рівня сигналу, не кажучи вже про зменшення ресурсу роботи SSD-диска, збільшується час пошуку адреси комірок, підвищується імовірність помилок. Контроль над помилками здійснюється апаратно, що у випадку технології MLC веде до подорожчання керуючої електроніки і відповідно збільшує кінцеву вартість SSD. Диски, котрі зараз масово зустрічаються на ринку, використовують технологію MLC з чотирирівневим методом запису. При цьому дані кодуються як (11), (10), (01), (00). Для SLC однорівнева комірка може приймати лише значення 0 або 1.
Різниця між комірками SLC і MLC у SSD дисків.
Рішення з комірками SLC при тих же розмірах і вартості явно програють MLC в об'ємі збереженої на них інформації, але при цьому є більш швидкими і довговічними. Тому виробникам доводиться використовувати більшу кількість мікросхем при меншому сумарному об'ємі диска, що в кінцевому підсумку підвищує вартість диска SLC більш ніж вдвічі у порівнянні з таким же по обсягу диском MLC.
Механізми запису і читання елементарної комірки NAND-пам'ять
Постараємося більш докладно описати роботу транзистора для NAND-пам'яті, яким є польовий транзистор з ізольованим затвором або MOSFET.
Польовий транзистор з ізольованим затвором або MOSFET
Головною особливість польового транзистора, яка дозволила його використання для зберігання інформації, стала можливість утримувати електричний заряд на «плаваючому» затворі до 10 років. Сам «плаваючий» затвор виконаний з полікристалічного кремнію і повністю оточений шаром діелектрика, що забезпечує йому повну відсутність електричного контакту з елементами транзистора. Він розташований між керуючим затвором і основою з p-n переходів. Керуючий електрод польового транзистора називається затвором. У цьому випадку провідність p-n переходу, що обумовлена електричним опором, залежить від різниці потенціалів, яка створює електричне поле, впливаючи на стан p-n переходів.
Не менш важливими елементами транзистора є також стік і джерело. Для зміни біта записуваної інформації в комірку, напругою на керуючому затворі створюється електричне поле і виникає тунельний ефект. Це дозволяє деяким електронам перейти через шар діелектрика на плаваючий затвор, забезпечивши його зарядом, а значить і наповнення елементарної комірки бітом інформації.
Програмування польового транзистора – запис даних.
Накопичений заряд на плаваючому затворі впливає на провідність каналу стік-джерело, що використовується при читанні.
Механізм читання даних і стан зберігання інформації.
Така різниця механізму запису і читання явно позначається на різному енергоспоживанні цих режимів. NAND-пам'ять споживає досить великий струм при записі, а при читанні витрати енергії навпаки малі. Для стирання інформації на керуючий затвор подається висока негативна напруга, і електрони з плаваючого затвора переходять на джерело. Сучасний твердотільний накопичувач складається саме з таких елементарних клітинок, об'єднаних у сторінки, блоки та масиви.
Термін життя NAND-пам'яті
Головною особливістю NAND-пам'яті, що дозволяє її використання в SSD-дисках, стало її вміння зберігати дані без зовнішнього джерела енергії. Однак така технологія накладає обмеження на кількість змін логічного стану комірка, що приводить до кінцевої кількості циклів перезапису цієї комірки. Це пов’язано з поступовим руйнуванням діелектричного шару. Даний ефект наступає набагато швидше у клітинок MLC через їх малий резерв зміни заряду плаваючого затвору, отже через конструктивні особливості. Читання комірки теж впливає на термін її життя, але цей вплив набагато менш суттєвий, ніж при записі/стиранні, що дозволяє вважати цикли читання не обмеженими, а термін життя SSD-диска виміряється кількістю можливих циклів перезапису.
На всіх SSD- дисках є недосяжна для стандартних операцій запису/читання частина. Вона необхідна як резерв у випадку зношування клітинок, за аналогією з магнітними накопичувачами HDD, де є резерв для заміни bad-блоків. Додатковий резерв клітинок використовується динамічно, і в міру фізичного зношування основних клітинок надається резервна комірка на заміну.
Наведемо приблизну порівняльну таблицю основних характеристик, що відрізняють роботу SSD-дисків з технологією SLC і дисків з комірками MLC.
|
SLC |
MLC |
Читання сторінки, мкс |
25 |
50 |
Стирання блоку, мс |
2 |
2 |
Запис сторінки, мкс |
250 |
900 |
Кількість циклів, разів |
1 000 000 |
100 000 |
З таблиці бачимо всі переваги і недоліки цих технологій. У ній бачимо перевагу SLC рішень над MLC, але не зазначений головний критерій популярності SSD-дисків – їх ціна. Вказувати її немає сенсу через швидке здешевлення таких рішень. Скажемо лише, що MLC диски хоч і поступаються у всьому SLC, але вони більш ніж вдвічі виграють у вартості та можуть бути компактніші при тих же об'ємах збереження даних.
Структура SSD-диска: розмір комірки, сторінки, блоку NAND-пам'яті
Для більш ефективного використання елементарних клітинок пам'яті, вони були об'єднані в масиви з декілька рівневою структурою. Одна комірка, що зберігає один (для SLC) чи, як правило, два (для нинішнього покоління MLC) біта даних, об'єднана в групу названу сторінкою, що і вміщає 4 КБ даних.
Далі 128 сторінок об'єднані в блок об'ємом 512 КБ, а 1024 блоки дають масив, що представляє 512 МБ. Керування даними в одному масиві зазвичай здійснюється одним контролером.
Спеціальні алгоритми для роботи з SSD-дисками
Через обмеженість циклів запису/стирання клітинок флеш-пам'яті розробникам довелося скласти правильний алгоритм роботи SSD-диска, що дозволяє рівномірно «зношувати» весь його запам'ятовувальний простір. Як вже було нами відзначено, весь об'єм диску ділиться на блоки розміром 512 КБ, а вони у свою чергу на сторінки ємністю 4 КБ, на які здійснюються операції читання та запису. Але як тільки ви записали інформацію на сторінку, вона не може бути перезаписана доти, доки не буде очищена. Проблема полягає в тому, що мінімальний розмір записуваної інформації не може бути менше 4 КБ, а стерти дані можна мінімум блоками по 512 КБ. Для цього контролер групує і переносить дані (цей алгоритм ми опишемо нижче) для звільнення цілого блоку. Ця операція приводить до збільшення часу відгуку і скороченню ресурс SSD, але чимось доводиться жертвувати.
Поговоримо про алгоритм запису/видалення.
Після запиту на запис від операційної системи, контролер носія визначає розмір і структуру інформації. При наявності достатньої кількості порожніх блоків виділяється новий блок, на який і копіюються дані, передані ОС для запису. Однак по мірі заповнення диска і зменшенню достатньої кількості порожніх блоків дана операція суттєво ускладнюється. Контролер все частіше шукає максимально підходящий (по кількості вільних сторінок), частково зайнятий блок і переписує його в порожній блок, сполучаючи його з даними, що прийшли від ОС для запису та повністю заповнює його. Старий блок потім очищається. При такому алгоритмі ми одержуємо один повністю заповнений блок і один порожній, який зараховується в групу порожніх блоків, доступних для запису. При запиті на запис, контролер використовує тільки блоки з цієї групи.
У своєму оснащенні контролер зазвичай має 10 каналів, зокрема такою кількістю каналів володіють контролери SSD-дисків від Intel. Весь пул мікросхем рівномірно закріплений за кожним каналом обміну даних. На даному етапі розвитку технологій роботи SSD-дисків, мікросхеми пам'яті, взаємодіючі з першим каналом, не можуть перетинатися на операціях з другим, третім і наступними каналами, але дана проблема цілком може розв'язатися у найближчому майбутньому. Цілком логічно б було використовувати «плаваючі» зв'язки для всієї пам'яті, розміщеної на диску. Часто виникає необхідність запису черги з дрібних даних, тоді контролер автоматично розподіляє весь блок по всім каналам, але зв'язок між комірками зберігається, тому що цей шматок даних є однієї логічною одиницею.
Операція видалення даних теж напряму залежить від їх об'єму і розміщення. Якщо вся інформація, записана в одному блоці або в групі блоків, повністю займаючи їх, то блок/блоки просто очищаються і позначаються як порожні та готові для наступного запису з максимально можливою швидкістю. Але даний ідеальний випадок зустрічається не завжди.
Якщо необхідно видалити не весь блок, а кілька сторінок, що знаходяться у ньому, то контролер видаляє дані логічно, не стираючи їх, а просто позначаючи дані сторінки як видалені. Надалі інформація, що залишилася, буде скомпонована з новою, яка надійшла для запису, і записана в порожній блок, а вихідний блок, згідно вищевикладеному в алгоритмі запису, буде повністю видалений і позначений як порожній.
Навіщо потрібен Тріммінг?
Це ще одна не менш важлива технологія, що забезпечує більш рівномірне зношування SSD-диска і швидшу роботу з даними за рахунок команди TRIM. Вона дозволяє вибудувати ланцюжок і визначити пріоритет блоків, що звільняються. Раніше дана операція була покладена на ОС, але сучасні SSD-контролери вже підтримують дану функцію апаратно у прошиваннях накопичувачів. Час виконання операції по «зачищенню» блоків пов'язаний по експоненті з вільним об'ємом на диску. Чим менше інформації і більше вільного місця, тим швидше відбувається «тріммінг» на SSD. По мірі заповнення диску до 75% функція очищення все ще не сильно виражена відносно простою. Але, як тільки залишається менше 15% вільного місця, «тріммірування» стає тяжким. Звісно, частина залежності повністю обумовлюється типом інформації (статична, тобто рідко переміщувана і в основному тільки читається, чи динамічна). Згідно дослідженням IBM ідеальні умови роботи SSD, коли він заповнений менше, ніж на 75% і співвідношення статичної та динамічної частини інформації 3 до 1.
TRIM є невід'ємною частиною сучасних твердотільних накопичувачів. Він забезпечує приріст продуктивності при заповненні даними дисків більше ніж на 2/3, за рахунок правильного сортування блоків і підготовці їх до запису. Це дозволяє скоротити різницю у швидкості роботи нового і вже заповнене на 75% диска до 2-3%.
Не варто забувати, що за замовчуванням операційна система настроєна на роботу зі звичайним HDD диском, а значить користувачу обов'язково необхідно, відключити «старі» механізми збільшення швидкості роботи магнітного диска, а також алгоритми дефрагментації. Крім того, важливо потурбуватися про неповне використання всього простору свого SSD-диска.
Для чого використовується кеш-буфер на SSD-дисках?
Кеш-буфер на SSD-дисках не застосовується для прискорення процедури запису/читання як це прийнято для HDD-накопичувачів. Його об'єм навіть не вказується у технічних специфікаціях SSD основною масою виробників. Він і не може вважатися звичайною кеш-пам'яттю, як ми це звикли розуміти. Кеш-пам'ять на SSD дисках використовується динамічно, для зберігання таблиць розміщення і зайнятості комірок диска. Паралельно в ній може зберігатися тимчасова інформація з комірок, що стираються, при недостатності порожнього місця на диску. Таблиці являють собою тривимірну матрицю, і є основним помічником для контролера SSD. Маючи за основу ці дані, диск приймає рішення щодо стирання додаткових комірок. У ньому також зберігається інформація про частоту та інтенсивність використання кожного доступного блоку на диску. Крім того, тут записані адреси «місць», де неможливо здійснити запис, через фізичне зношування.
Контролер SSD-диска
Дуже важливим елементом SSD-накопичувача є його контролер, що постійно покращується. Головним завданням контролера є забезпечення операцій читання і запису, але через велику кількість фізичних особливостей SSD-накопичувача, контролер також відповідає за керування структурою розміщення даних. Маючи за основу матрицю розміщення блоків, у які комірки вже проводився запис, а в які ще ні, контролер оптимізує швидкість запису і забезпечує максимально тривалий термін служби вашого SSD-диска. Внаслідок особливостей побудови NAND-пам'яті, працювати з її кожною коміркою окремо не можна. Як ми вже казали вище, вони об'єднані в сторінки об'ємом по 4 Кбайта, і записати інформацію можна тільки повністю зайнявши сторінку. Стирати дані можна по блоках, які рівні 512 Кбайт. Всі ці обмеження накладають певні обов'язки на правильний інтелектуальний алгоритм роботи контролера. Тому правильно настроєний і оптимізований контролер може суттєво змінити як швидкісні показники, так і довговічність роботи SSD-диска.
Підсумки
На даний момент поки ще рано казати про повну перемогу SSD-накопичувачів над магнітними дисками. Якщо враховувати об'єм і швидкість роботи SSD-накопичувача, порівнюючи їх з аналогічними параметрами для традиційних HDD, то головним стримуючим фактором переходу на твердотільні диски все ще залишиться їх вартість. Аналіз декількох останніх років показав небажання виробників знижувати ціну на NAND-пам'ять. Тільки останні півроку можна спостерігати невелику тенденцію по зниженню ціни на SSD, і то це, швидше за все, обумовлене спадом споживчого попиту, що викликане світовою кризою. Твердотільні накопичувачі вже декілька років представлені в різноманітному асортименті на світовому ринку, але навіть такий значний для цифрових технологій термін не зміг вплинути на їх конкурентоспроможність за критерієм «ціна за ГБ збереженої інформації» стосовно магнітних дисків. Щільність запису на один магнітний диск постійно збільшується, що сприяє випуску все більш ємних моделей (на даний момент широко доступні HDD ємністю 2 ТБ). Такий розподіл ринку може змусити споживача віддати перевагу SSD накопичувачу тільки в разі нагальної потреби у швидкості читання або стійкості до вібрації/удару, але основний обсяг інформації однаково буде зберігатися на класичних жорстких дисках.
Переваги і недоліки SSD у порівнянні з магнітними дисками HDD:
Переваги:
- набагато більша швидкість читання;
- повна відсутність шуму;
- надійність через відсутність частин, що рухаються;
- мале енергоспоживання;
- висока стійкість до вібраційних навантажень.
Недоліки:
- висока вартість за кожний ГБ інформації, що зберігається;
- обмежена кількість циклів запису і видалення даних.
Автор: Валерій Паровишник
Переклад: Анна Смірнова
Опубліковано : 28-06-2010
Підписатися на наші канали | |||||