Кошик
8202 відгуків
Ми відправляємо посилки Новою Поштою та Укрпоштою!

Зараз у компанії неробочий час. Замовлення та повідомлення будуть оброблені з 09:00 найближчого робочого дня (20.05).

Комп'ютерні комплектуючі та аксесуари для мобільних пристроїв
+380 (95) 786-21-91
+380 (68) 831-42-55
+380 (93) 197-28-66

Контролери SSD - огляд, порівняння, виробники

Контролери SSD - огляд, порівняння, виробники

Контролери SSD дисків – що це

Контролер SSD — це мікросхема з попередньо встановленою програмою (прошивкою), «мозок» твердотільного накопичувача. У процесі читання або запису на флеш-пам'ять він забезпечує обмін даними з шиною, керує операціями запису або читання інформації з комірок, управляє структурою розміщення даних та контролює стан осередків. Крім цього, контролер займається обслуговуванням осередків, очищенням пам'яті від сміття, запобіганням зносу пристрою, коригуванням помилок. Таким чином, якість і функціональність контролера впливають не тільки на швидкість читання і запису SSD, але також на довговічність і вартість цього пристрою.

 

контролер на ссд диску

З чого складається контролер – функції контролера

  • Мікропроцесор контролера. Має від 1 до 4 ядер. Як у будь-якому процесорі, кількість і швидкодію ядер визначають продуктивність SSD. Чим більше ядер — тим краще справляється накопичувач при одночасному навантаженні від декількох додатків.

  • Інтерфейс між процесором і флеш-пам'яттю NAND. Ця частина контролера ССД займається обміном даними з чіпами пам'яті та може мати до 10 каналів. Кожен канал може обслуговувати один або кілька чіпів NAND. Чим більше каналів, тим вище продуктивність SSD, але при цьому складніше стає і контролер — збільшується кількість контактів і енергоспоживання. Тому, в залежності від передбачуваної сфери використання накопичувача, виробникам доводиться підбирати баланс між швидкодією і енергоефективністю.

  • Блок управління хост-інтерфейсом. Раніше ми вже розповідали про фізичних (SATA, PCI-Express, SAS і ін) і логічних (AHCI, NVMe) інтерфейси підключення SSD-накопичувачів. Багато з них спочатку створювалися для механічних HDD з їхніми обертовими пластинами і зчитує магнітною головкою. Для тих твердотільних накопичувачів, які використовують інтерфейси жорстких магнітних дисків, одне із завдань контролера — імітувати роботу звичайного HDD, передавального блоки, сектори та інші стандартні порції даних. Але, крім цього, блок управління хост-інтерфейсом може оптимізувати порядок виконання серії команд на читання та запис (найчастіше читання виявляється краще запису), щоб зменшити затримки і збільшити пропускну здатність. І якщо у стандартного підключення SATA є всього одна черга необроблених команд, що вміщає в себе до 32 запитів, то диски з підтримкою NVMe мають до 65 536 черг, що містять до 65 536 команд в кожній черзі, що є величезним ресурсом для оптимізації.

  • SMART (Self-Monitoring, Analysis and Reporting Technology) — технологія самоконтролю, аналізу та звітності. Це система моніторингу SSD, відстежує і записує (набір параметрів може відрізнятися в залежності від виробника) відомості про стан накопичувача. Найбільш цікаві такі показники, як:

  • температура SSD-диска;

  • число помилок зчитування;

  • кількість записаної інформації;

  • прогноз тривалості функціонування накопичувача виходячи з періоду експлуатації;

  • кількість потенційних ділянок накопичувача, що підлягають заміні;

  • кількість несправних секторів, що не підлягають відновленню.

рівномірний вирівнювання зносу осередків

  • Блок вирівнювання зносу. Для того, щоб записати дані в комірку пам'яті ССД, попередньо її слід очистити. У HDD для цього достатньо просто позначити відповідний блок пам'яті, як невикористаний, але для твердотільних накопичувачів необхідно провести фізичну операцію стирання даних. А оскільки флеш-пам'ять може витримувати обмежене число циклів запису/стирання інформації (в залежності від типу осередків — SLC, MLC, TLC або QLC, воно буде дорівнювати від сотні тисяч до тисячі), то якщо в якусь конкретну комірку будуть постійно проводитися операції запису і стирання, а інші — ні, ця клітинка швидко вийде з ладу, тим самим зменшуючи об'єм накопичувача. Для запобігання такого результату контролери SSD реалізують ті чи інші алгоритми з вирівнювання зносу, щоб максимально рівномірно розподілити операції запису по блоках флеш-пам'яті.

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

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

  • Блок контролю та корекції помилок (ECC). Займається виявленням і виправленням помилок зв'язку; забезпечує контроль цілісності даних при записі або читанні.

  • Блок шифрування. У більшості сучасних SSD можливість апаратного шифрування і механізм дешифрування вбудовані безпосередньо в мікросхему контролера, що вивільняє ресурси процесора і операційної системи. Шифрування необхідно в тому випадку, якщо потрібно захистити пристрій і його вміст від заволоділи ним зловмисників, сусідів по кімнаті, членів сім'ї, колег, посадовців та ін. На ряді накопичувачів підтримується механізм самошифрування — невидимий для користувача, не впливає на продуктивність диска і забезпечує високий рівень безпеки даних.

  • Буфер/кеш. Частина контролера, що відповідає за роботу з зовнішнім DRAM-буфером, про який ми вже говорили в статті «Типи і види SSD дисків». При відсутності зовнішньої мікросхеми DRAM невеликий буфер, заснований на енергозалежною пам'яті, може бути вбудований всередину самого контролера. Іноді присутні обидва ці рішення.

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

Крім вищеперелічених функцій (вирівнювання зносу, контролю за несправними блоками, кешування, корекції помилок і ін) варто згадати ще три важливих завдання серед «службових обов'язків» контролера SSD.

схема складання сміття в диску

  • Збірка сміття. Ми вже говорили про те, що флеш-пам'ять NAND не може перезаписувати дані на зайняте місце без його попереднього очищення. Комірки пам'яті згруповані в сторінки (зазвичай розміром від 4 до 16 КБ), сторінки групуються в блоки розміром від 128 до 512 сторінок. Сторінка — це мінімальна одиниця читання і запису SSD, тобто при операції запису дані можуть дозаписываться в частково вже зайнятий блок — на ті сторінки, що залишалися чистими. На противагу цьому, апаратні обмеження такі, що стирання може проводитися тільки блоками цілком.
    Що ж відбувається в тому випадку, коли нам потрібно змінити кілька записаних сторінок? Інформація зчитується з диска, змінюється і записується на вільні (попередньо очищені) сторінки; а ті сторінки, що містять неактуальні дані, позначаються як «брудні». Таким чином, частина пам'яті починає займати сміття — застаріла інформація, яка вже нікому не потрібна. Записати на це місце іншого вміст неможливо без попереднього очищення, очистити — можна тільки з іншою частиною блоку (яка, навпаки, містить потрібну для нас інформацію). У результаті, щоб повернути ці сторінки до використання, актуальна інформація перезаписується в інший, повністю очищений, блок, після чого блок з «брудними» сторінками очищається. До речі, саме під час операції складання сміття часто відбувається вирівнювання зносу. Для продуктивності збірка сміття працює у фоновому режимі, коли до SSD-диска немає звернень.
    Функцією збирання сміття оснащені абсолютно все твердотільні накопичувачі, засновані на флеш-пам'яті NAND, а ось швидкість її роботи буде сильно залежати від встановленого контролера.

  • Команда TRIM. У той час як контролер нічого не знає про файлову структуру і оперує поняттями сторінок і блоків — зайнятих, очищених, «брудних» — операційна система комп'ютера працює з файлами, їх структурою і логічним розміщенням, нічого не знаючи про фізичному пристрої накопичувача SSD. При видаленні файлу система просто зазначає у своїй таблиці логічних даних, що простір, де той зберігався, вільно і може бути повторно використана. В результаті контролер SSD «усвідомлює», що дані видалені або дійсні тільки у випадку, коли ОС знову спробує виконати запис на те ж місце. З цього моменту, звичайно, неактуальні сторінки будуть відзначені, як «сміття», запис проведуть в інше місце, а в процесі збирання сміття «брудне» простір очистять і підготують для нового запису. Але до тих пір контролер твердотільного накопичувача помилково вважає ці сторінки містять цінну інформацію, яку необхідно зберегти, і при збірці сміття справно переміщує її в вільні блоки. Така надмірна перезапис призводить до зношування комірок пам'яті, уповільнює роботу по збірці сміття і займає вільний простір на диску.
    Команда TRIM дає можливість операційній системі повідомити накопичувачу про те, що відповідні сторінки можуть бути позначені, як «брудні», і не потребують перезапису, в момент, коли ОС остаточно видаляє файл. Щоб TRIM працювала, вона повинна підтримуватися як самої ОС, так і SSD-диском. В ОС реалізована підтримка TRIM, починаючи з Windows 7, Linux 2.6.33, Mac OS X Lion.

  • Надмірне виділення ресурсів. Це простір на SSD-накопичувачі, недоступне операційної системи, що використовується контролером для своїх службових операцій: збирання сміття, виділення комірок пам'яті NAND натомість прийшли в непридатність, вирівнювання зносу. Розмір цього простору зазвичай встановлюється на заводі під час остаточного низькорівневого форматування накопичувача. У процентному співвідношенні від обсягу SSD зазвичай фігурують цифри 0%, 7% (для більшості дисків сегменту) і 28% (для корпоративного сегменту). Наприклад, диск з одним і тим же обсягом чіпів може бути представлений на ринку як 128 Гб (з 0% надлишкового виділення), 120 Гб (з 7%) і 100 Гб (при 28%) — різниця буде в кількості доступного для користувача простору.

Прошивка контролера

Хоча частина функцій контролера ССД (наприклад, ECC) жорстко запрограмована в самій мікросхемі, більшість з них контролюється прошивкою. Пз можна легко модифікувати, щоб додати, поліпшити або видалити якісь функції. Частина виробників (наприклад, Marvell) може випускати свої контролери без прошивки або з базовою прошивкою, вимагає серйозних доопрацювань, надаючи виробникам дисків самим вирішувати задачу створення мікропрограми для контролера. Інші (Phison) — пропонують готові рішення з контролера з прошивкою (а іноді — і чіпів пам'яті, так що виробнику SSD залишається, по суті, тільки придумати назву бренду і красиву етикетку). Втім, в цьому випадку виробники дисків теж можуть самі переписати прошивку, поліпшивши її в порівнянні з вихідним варіантом. Імениті вендори зазвичай також випускають оновлення свого ПО, виправляючи помилки та покращуючи прошивки для своїх дисків.

Виробники контролерів – порівняння контролерів SSD

контролери різних виробників

Незважаючи на достаток торгових марок і конкретних моделей SSD-дисків, число виробників контролерів для них не так велике. Крім цього, в останні роки багато відомі фірми або зовсім не представляли актуальних рішень для сучасних чіпів (3D TLC і QLC) і інтерфейсу PCI-E, або були викуплені великими вендорами. Так, Toshiba придбала Indilinx (OCZ), Micron – Tidal Systems, WD – Sandisk, а Seagate – SandForce (LSI). Поширеною практикою для великих виробників дисків — навіть тих, хто збудував або викупив власні інженерно-виробничі потужності — також є використання контролерів Marvell, Silicon Motion і Phison, як в оригінальному вигляді, так і під маркою свого бренду. Наприклад, в контролері Seagate STXZA01F5578 багато хто небезпідставно припускають кастомизованный чіп PS3112-S12 від Phison, а продукцію від Silicon Motion SM2258XT можна зустріти в дисках Transcend, ADATA, Crucial, Apacer, AMD Radeon, Kingston, HP, Patriot, WD і пр. Про те, як перевірити модель контролера, встановлену в ССД-диску, ви можете прочитати в статті «Як визначити контролер SSD-накопичувача».

На поточний момент серед виробників окремим рядком можна виділити Samsung (першовідкривача технології 3D-Nand), використовує свої контролери виключно у виготовленні власних накопичувачів (так само як і навпаки — використовують для своїх SSD тільки власні контролери). Величезну частку ринку займає продукція від Silicon Motion, Phison і Marvell. Після тривалої перерви відновила виробництво контролерів компанія JMicron — під новим брендом Maxiotek (Maxio Technology), а також з недавніх пір зайнялася виготовленням контролерів і компанія Realtek, більш відома своїм виробництвом комп'ютерного аудіо. Набагато рідше можна зустріти розробки компанії Kioxia (раніше — Toshiba); як і у випадку з Seagate, серед них з великою ймовірністю може виявитися модифікована продукція на базі Phison. C 2017 року на ринок вийшов виробник Yeestor, що утворився шляхом злиття компаній SiliconGo (заснована в 2007) і Auspitek (2015). Перший контролер власного виробництва недавно випустила компанія Micron.

Нижче представлені порівняльні таблиці контролерів різних виробників для інтерфейсів SATA і PCI-Express. На жаль, на відміну від компаній Silicon Motion, Marvell або Phison, що надають докладні огляди своїх контролерів у відкритому доступі у себе на сайтах, більшість іменитих брендів воліє тримати в таємниці технічні характеристики своєї продукції. Так, компанія Realtek, наприклад, на питання про ядрах своїх контролерів обмежилася відповіддю «ми використовуємо ядра власної розробки». Не уточнила кількість ядер свого нового контролера Elpis і компанія Samsung. Про мотивації виробників ми можемо тільки здогадуватися: можливо, це бажання уникнути порівняння з конкурентами. На щастя, інформацію про тип підтримуваної NAND-пам'яті DRAM кеш можна, принаймні, отримати з характеристик дисків, побудованих на базі цих контролерів.

 

Порівняння контролерів SSD для інтерфейсу SATA

Silicon Motion
Модель контролера Ядер CPU Каналів Підтримка чіпів Підтримка DRAM кеш
SM2246EN 1 4 2D SLC/MLC/TLC і 3D MLC DDR2/DDR3/DDR3L
SM2246XT 1 4 2D SLC/MLC -
SM2256 1 4 MLC/TLC, можливість розширення для підтримки 3D NAND DDR3/DDR3L
SM2258 1 4 2D TLC і 3D MLC/TLC DDR3/DDR3L
SM2258XT 1 4 2D TLC і 3D MLC/TLC -
SM2259 1 4 3D TLC/QLC DDR3/DDR3L/DDR4 і LPDDR3
SM2259XT 1 4 3D TLC/QLC -
Phison
Модель контролера Ядер CPU Каналів Підтримка чіпів Підтримка DRAM кеш
PS3110-S10 4 8 2D SLC/MLC DDR3
PS3111-S11 1 2 2D SLC/MLC і 3D TLC/QLC -
PS3112-S12 2 8 3D TLC/QLC DDR3L/DDR4
PS3113-S13T немає даних немає даних 3D TLC/QLC -
Samsung
Модель контролера Ядер CPU Каналів Підтримка чіпів Підтримка DRAM кеш
MJX 2 8 3D MLC/TLC/QLC LPDDR4
Marvell
Модель контролера Ядер CPU Каналів Підтримка чіпів Підтримка DRAM кеш
88SS1074 2 4 SLC/MLC/TLC і 3D MLC/TLC DDR3/LPDDR2/LPDDR3
88NV1120 2 4 MLC/TLC -
Maxiotek
Модель контролера Ядер CPU Каналів Підтримка чіпів Підтримка DRAM кеш
MK8113 немає даних немає даних 2D SLC/MLC і 3D MLC +
MK8115 1 4 2D SLC/MLC і 3D MLC/TLC -
MK8215 немає даних немає даних 2D SLC/MLC/TLC і 3D MLC/TLC -
MAS0902 2 немає даних 2D MLC/TLC і 3D MLC/TLC/QLC -
Sandisk
Модель контролера Ядер CPU Каналів Підтримка чіпів Підтримка DRAM кеш
20-82-00469-2 немає даних немає даних 3D TLC -
Yeestor (Shenzhen Deyi Microelectronics)
Модель контролера Ядер CPU Каналів Підтримка чіпів Підтримка DRAM кеш
YS9081XT 2 4 2D SLC/MLC/TLC і 3D MLC/TLC -
YS9082HC немає даних 4 3D MLC/TLC/QLC немає даних
YS9083XT немає даних 2 3D MLC/TLC/QLC -
 

Порівняння контролерів SSD для інтерфейсу PCI-Express

Silicon Motion
Модель контролера Інтерфейс Протокол Ядер CPU Каналів Підтримка чіпів Підтримка DRAM кеш
SM2260 PCIe 3.0 x4 NVMe 1.2 2 4 3D MLC/TLC DDR3/DDR3L і LPDDR2
SM2262 PCIe 3.0 x4 NVMe 1.3 2 8 3D MLC/TLC DDR3/DDR3L/DDR4 і LPDDR3
SM2262EN PCIe 3.0 x4 NVMe 1.3 2 8 3D MLC/TLC DDR3/DDR3L/DDR4 і LPDDR3
SM2263EN PCIe 3.0 x4 NVMe 1.3 2 4 3D MLC/TLC DDR3/DDR3L/DDR4 і LPDDR3
SM2263XT PCIe 3.0 x4 NVMe 1.3 2 4 3D MLC/TLC -
SM2264 PCIe 4.0 x4 NVMe 1.4 4 8 3D TLC/QLC DDR4, LPDDR4 і LPDDR4X
SM2267 PCIe 4.0 x4 NVMe 1.4 2 4 3D TLC/QLC DDR3/DDR3L/DDR4 і LPDDR3/LPDDR4
SM2267XT PCIe 4.0 x4 NVMe 1.4 2 4 3D TLC/QLC -
Phison
Модель контролера Інтерфейс Протокол Ядер CPU Каналів Підтримка чіпів Підтримка DRAM кеш
PS5007-E7 PCIe 3.0 x4 NVMe 1.2 4 8 2D SLC/MLC/TLC DDR3 /DDR3L
PS5008-E8 PCIe 3.0 x2 NVMe 1.2 2 4 2D і 3D MLC/TLC DDR3 /DDR3L
PS5008-E8T PCIe 3.0 x2 NVMe 1.2 2 4 2D і 3D MLC/TLC -
PS5012-E12S PCIe 3.0 x4 NVMe 1.3 2 8 3D TLC/QLC DDR3L/DDR4
PS5012-E12C PCIe 3.0 x4 NVMe 1.3 2 4 3D TLC/QLC DDR3L/DDR4
PS5013-E13T PCIe 3.0 x4 NVMe 1.3 1 4 3D TLC/QLC -
PS5016-E16 PCIe 4.0 x4 NVMe 1.3 2 8 3D TLC/QLC DDR4
PS5018-E18 PCIe 4.0 x4 NVMe 1.4 3 8 3D TLC/QLC DDR4
PS5019-E19T PCIe 4.0 x4 NVMe 1.4 1 4 3D TLC -
Samsung
Модель контролера Інтерфейс Протокол Ядер CPU Каналів Підтримка чіпів Підтримка DRAM кеш
Polaris PCIe 3.0 x4 NVMe 1.2 5 8 3D MLC/TLC LPDDR3
Phoenix PCIe 3.0 x4 NVMe 1.3 5 8 3D MLC/TLC LPDDR4
Elpis PCIe 4.0 x4 NVMe 1.3 немає даних 8 3D TLC LPDDR4
Marvell
Модель контролера Інтерфейс Протокол Ядер CPU Каналів Підтримка чіпів Підтримка DRAM кеш
88NV1140 PCIe 3.0 x1 AHCI, NVMe 1.1 b 2 4 MLC/TLC -
88NV1160 PCIe 3.0 x2 AHCI, NVMe 1.3 2 4 2D MLC/TLC і 3D MLC/TLC/QLC -
88SS1092 /88SS1093 PCIe 3.0 x4 AHCI, NVMe 1.1 b 3 8 MLC/TLC і 3D MLC/TLC DDR3/DDR4/LPDDR2/LPDDR3
88SS1084 PCIe 3.0 x4 AHCI, NVMe 1.3 4 4 3D TLC/QLC DDR3/DDR4/LPDDR3/LPDDR4
88SS1100 PCIe 3.0 x4 AHCI, NVMe 1.3 4 8 3D TLC/QLC DDR3/DDR4/LPDDR3/LPDDR4
88SS1098 PCIe 3.0 x4 AHCI, NVMe 1.3 4 8 3D MLC/TLC/QLC DDR3/DDR4/LPDDR3/LPDDR4
88SS1088 PCIe 3.0 x4 AHCI, NVMe 1.3 4 16 3D MLC/TLC/QLC DDR3/DDR4/LPDDR3/LPDDR4
88SS1321 PCIe 3.0 x4, PCIe 4.0 x4, PCIe 3.0 x2, PCIe 4.0 x2 AHCI, NVMe 1.3 3 4 3D TLC/QLC DDR4/LPDDR3/LPDDR4
88SS1322 PCIe 3.0 x4, PCIe 4.0 x4, PCIe 3.0 x2, PCIe 4.0 x2 AHCI, NVMe 1.3 3 4 3D TLC/QLC -
88SS1323 PCIe 3.0 x2, PCIe 4.0 x2 AHCI, NVMe 1.3 3 4 3D TLC/QLC -
Realtek
Модель контролера Інтерфейс Протокол Ядер CPU Каналів Підтримка чіпів Підтримка DRAM кеш
RTS5760 PCIe 2.0 x4, PCIe 3.0 x2 NVMe 1.2 немає даних 4 2D і 3D MLC/TLC LPDDR3
RTS5762 PCIe 3.0 x4 NVMe 1.3 немає даних 8 3D TLC/QLC LPDDR3
RTS5763DL PCIe 3.0 x4 NVMe 1.3 немає даних 4 3D TLC/QLC -
Sandisk
Модель контролера Інтерфейс Протокол Ядер CPU Каналів Підтримка чіпів Підтримка DRAM кеш
20-82-07010 PCIe 3.0 x2 NVMe 1.3 2 4 3D TLC -
20-82-07011 PCIe 3.0 x4 NVMe 1.3 3 8 3D TLC DDR4
20-82-01008-A1 PCIe 3.0 x4 NVMe 1.4 немає даних 4 3D TLC -
Micron
Модель контролера Інтерфейс Протокол Ядер CPU Каналів Підтримка чіпів Підтримка DRAM кеш
DM01B2 PCIe 3.0 x4 NVMe 1.3 2 8 3D TLC LPDDR4
Yeestor (Shenzhen Deyi Microelectronics)
Модель контролера Інтерфейс Протокол Ядер CPU Каналів Підтримка чіпів Підтримка DRAM кеш
YS9201 PCIe 3.0 x2 NVMe 1.3 немає даних 4 3D MLC/TLC/QLC +
YS9203 PCIe 3.0 x4 NVMe 1.3 немає даних 8 3D MLC/TLC/QLC LPDDR4

Автор: Catman Bast

Інші статті

Наскільки вам зручно на сайті?

Розповісти Feedback form banner