Введення у SSD. Частина 2. Інтерфейсна

Введення у SSD. Частина 2. Інтерфейсна

В минулої частини циклу "Вступ до SSD" ми розповіли про історію появи дисків. Друга частина розповість про інтерфейси взаємодії з накопичувачами.

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

Інтерфейс - сукупність засобів, методів та правил взаємодії між елементами системи.

Фізична реалізація інтерфейсу впливає такі параметри:

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

Дискові інтерфейси побудовані на портах введення-виведення, Що є протилежністю введення-виведення через пам'ять і не займає місце в адресному просторі процесора.

Паралельні та послідовні порти

За способом обміну даними порти введення-виводу поділяються на два типи:

  • паралельні;
  • послідовні.

Як випливає з назви, паралельний порт відправляє за раз машинне слово, що складається з кількох біт. Паралельний порт — найпростіший спосіб обміну даними, оскільки не вимагає складних схемотехнічних рішень. У найпростішому випадку кожен біт машинного слова відправляється своєю сигнальною лінією, а зворотний зв'язок використовуються дві службові сигнальні лінії: Дані готові и Дані прийняті.

Введення у SSD. Частина 2. Інтерфейсна
Паралельні порти, на перший погляд, відмінно масштабуються: більше сигнальних ліній - більше біт передається за раз і, отже, вища пропускна спроможність. Тим не менш, через збільшення кількості сигнальних ліній між ними виникає інтерференційна взаємодія, що призводить до спотворення повідомлень, що передаються.

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

Введення у SSD. Частина 2. Інтерфейсна
Мінімальна кількість сигнальних ліній дозволяє без перешкод збільшувати частоту передачі повідомлення.

SCSI

Введення у SSD. Частина 2. Інтерфейсна
Small Computer Systems Interface (SCSI) з'явився далекого 1978 року і був спочатку розроблений, щоб об'єднувати пристрої різного профілю в єдину систему. Специфікація SCSI-1 передбачала підключення до 8 пристроїв (разом із контролером), таких як:

  • сканери;
  • стрічкові накопичувачі (стримери);
  • оптичні приводи;
  • дискові накопичувачі та інші пристрої.

Спочатку SCSI мала назву Shugart Associates System Interface (SASI), але стандартизуючий комітет не схвалив би назву на честь компанії і після дня мозкового штурму з'явилася назва Small Computer Systems Interface (SCSI). "Батько" SCSI, Ларрі Баучер (Larry Boucher) передбачав, що абревіатура буде вимовлятися як "sexy", але Дал Аллан (Dal Allan) прочитав "sсuzzy" ("скази"). Згодом вимова «сказу» міцно закріпилася за цим стандартом.

У термінології SCSI пристрої, що підключаються, діляться на два типи:

  • ініціатори;
  • цільові пристрої.

Ініціатор відправляє команду цільового пристрою, який потім надсилає відповідь ініціатору. Ініціатори та цільові пристрої підключені до загальної шини SCSI, пропускна здатність якої у стандарті SCSI-1 складає 5 МБ/с.

Використовувана топологія "загальна шина" накладає ряд обмежень:

  • на кінцях шини необхідні спеціальні пристрої – термінатори;
  • пропускна спроможність шини ділиться між усіма пристроями;
  • максимальна кількість одночасно підключених пристроїв обмежена.

Введення у SSD. Частина 2. Інтерфейсна

Пристрої на шині ідентифікуються за унікальним номером SCSI Target ID. Кожен SCSI-юніт у системі представлений мінімум одним логічним пристроєм, адресація якого відбувається за унікальним у межах фізичного пристрою номера Номер логічної одиниці (LUN).

Введення у SSD. Частина 2. Інтерфейсна
Команди до SCSI відправляються у вигляді блоків опису команди (Command Descriptor Block, CDB), що складаються з коду операції та параметрів команди. У стандарті описано понад 200 команд, розділених на чотири категорії:

  • обов'язкове - повинні підтримуватись пристроєм;
  • опціональний - можуть бути реалізовані;
  • Vendor-specific - використовуються конкретним виробником;
  • Застарілий - Застарілі команди.

Серед багатьох команд лише три з них є обов'язковими для пристроїв:

  • ТЕСТ ГОТОВИЙ - Перевірка готовності пристрою;
  • ЗАПИТ СЕНСУ - Запитує код помилки попередньої команди;
  • ЗАПИТ - Запит основних характеристик пристрою.

Після отримання та відпрацювання команди цільовий пристрій надсилає ініціатору статус-код, яким описується результат виконання.

Подальше вдосконалення SCSI (специфікації SCSI-2 і Ultra SCSI) розширило список використовуваних команд і збільшило кількість пристроїв, що підключаються до 16-ти, а швидкість обміну даними по шині до 640 МБ/c. Оскільки SCSI — паралельний інтерфейс, підвищення частоти обміну даними було з зменшенням максимальної довжини кабелю і призводило до незручності у використанні.

Починаючи зі стандарту Ultra-3 SCSI з'явилася підтримка гарячого підключення - підключення пристроїв при включеному живленні.

Першим відомим диском SSD з інтерфейсом SCSI можна вважати M-Systems FFD-350, випущений в 1995 році. Диск мав високу вартість і не мав широкого поширення.

В даний час паралельний SCSI не є популярним інтерфейсом підключення дисків, але набір команд активно використовується в інтерфейсах USB і SAS.

ATA/PATA

Введення у SSD. Частина 2. Інтерфейсна
Інтерфейс ATA (Advanced Technology Attachment), так само відомий як PATA (Parallel ATA) був розроблений компанією Western Digital у 1986 році. Маркетингова назва стандарту IDE (англ. Integrated Drive Electronics - "електроніка, вбудована в привід") підкреслювало важливе нововведення: контролер приводу був вбудований у привід, а не на окремій платі розширення.

Рішення розмістити контролер усередині приводу вирішило одразу кілька проблем. По-перше, зменшилася відстань від накопичувача до контролера, що вплинуло на характеристики накопичувача. По-друге, вбудований контролер був «заточений» лише під певний тип приводу і, відповідно, був дешевшим.

Введення у SSD. Частина 2. Інтерфейсна
ATA, як і SCSI, використовує паралельний спосіб введення-виводу, що відбивається на кабелях, що використовуються. Для підключення дисків з використанням інтерфейсу IDE потрібні 40-жильні кабелі, також звані шлейфами. У пізніших специфікаціях використовуються 80-жильні шлейфи: більш як половина з яких — заземлення для зменшення інтерференції на високих частотах.

На шлейфі ATA присутній від двох до чотирьох роз'ємів, один з яких підключається до материнської плати, а решта — до накопичувачів. При підключенні двох пристроїв одним шлейфом, один з них має бути налаштований як Майстер, а друге - як Раб. Третій пристрій може бути підключений лише у режимі «лише читання».

Введення у SSD. Частина 2. Інтерфейсна
Положення перемички визначає роль конкретного пристрою. Терміни Master і Slave по відношенню до пристроїв не зовсім коректні, оскільки щодо контролера всі підключені пристрої Slaves.

Особливим нововведенням у ATA-3 вважається поява Самоконтроль, Analysis and Reporting Technology (SMART). П'ять компаній (IBM, Seagate, Quantum, Conner та Western Digital) об'єднали зусилля та стандартизували технологію оцінки стану накопичувачів.

Підтримка твердотільних накопичувачів виникла з четвертої версії стандарту, випущеної 1998 року. Ця версія стандарту забезпечувала швидкість обміну даними до 33.3 МБ/с.

Стандарт висуває жорсткі вимоги до шлейфів ATA:

  • шлейф обов'язково має бути плоским;
  • максимальна довжина шлейфу 18 дюймів (45.7 сантиметрів).

Короткий і широкий шлейф був незручний і заважав охолодженню. Підвищувати частоту передачі з кожною версією стандарту ставало все складніше, і ATA-7 вирішив проблему радикально: паралельний інтерфейс був замінений послідовним. Після цього ATA придбав слово Parallel і став називатися PATA, а сьома версія стандарту отримала іншу назву Serial ATA. Нумерація версій SATA розпочалася з одиниці.

SATA

Введення у SSD. Частина 2. Інтерфейсна
Стандарт Serial ATA (SATA) був представлений 7 січня 2003 і вирішував проблеми свого попередника наступними змінами:

  • паралельний порт замінено послідовним;
  • широкий 80-жильний шлейф замінений на 7-жильний;
  • топологія «загальна шина» замінена підключення «точка-точка».

Незважаючи на те, що стандарт SATA 1.0 (SATA/150, 150 МБ/с) був трохи швидше, ніж ATA-6 (UltraDMA/130, 130 МБ/с), перехід до послідовного способу обміну даними був «підготовкою ґрунту» до підвищення швидкостей.

Шістнадцять сигнальних ліній передачі даних в ATA було замінено на дві виті пари: одна передачі, друга прийому. Конектори SATA спроектовані для більшої стійкості до множинних перепідключення, а специфікація SATA 1.0 уможливила «гаряче підключення» (Hot Plug).

Деякі піни на дисках коротші, ніж решта. Це зроблено для підтримки гарячої заміни (Hot Swap). У процесі заміни пристрій "втрачає" і "знаходить" лінії в заздалегідь визначеному порядку.

Трохи більше, ніж за рік, у квітні 2004-го вийшла друга версія специфікації SATA. Крім прискорення до 3 Гбіт/с, у SATA 2.0 ввели технологію Власна черга команд (NCQ). Пристрої з підтримкою NCQ здатні самостійно організовувати порядок виконання команд для досягнення максимальної продуктивності.

Введення у SSD. Частина 2. Інтерфейсна
Наступні три роки SATA Working Group працювала над покращенням існуючої специфікації та у версії 2.6 з'явилися компактні конектори Slimline та micro SATA (uSATA). Ці конектори є зменшеною копією оригінального конектора SATA та розроблені для оптичних приводів та маленьких дисків у ноутбуках.

Незважаючи на те, що пропускну здатність другого покоління SATA вистачало для жорстких дисків, твердотільні накопичувачі вимагали більшого. У травні 2009 року вийшла третя версія специфікації SATA із збільшеною до 6 Гбіт/с пропускною спроможністю.

Введення у SSD. Частина 2. Інтерфейсна
Особливу увагу приділили твердотільних накопичувачів у редакції SATA 3.1. З'явився конектор Mini-SATA (mSATA), призначений для підключення твердотільних накопичувачів ноутбуків. На відміну від Slimline і uSATA, новий конектор був схожий на PCIe Mini, хоча і не був електрично сумісний з PCIe. Крім нового конектора SATA 3.1 міг похвалитися можливістю ставити команди TRIM у чергу з командами читання та запису.

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

Специфікація SATA не встигала за бурхливим зростанням швидкості доступу до твердотільних накопичувачів, що призвело до появи в 2013 компромісу під назвою SATA Express у стандарті SATA 3.2. Замість того, щоб знову подвоїти пропускну здатність SATA, розробники задіяли широко поширену шину PCIe, швидкість якої перевищує 6 Гбіт/с. Диски із підтримкою SATA Express придбали власний форм-фактор під назвою M.2.

ПАР

Введення у SSD. Частина 2. Інтерфейсна
"Конкуруючий" з ATA стандарт SCSI теж не стояв на місці і всього через рік після появи Serial ATA, в 2004, переродився в послідовний інтерфейс. Ім'я нового інтерфейсу Серійний приєднаний SCSI (ОСОКА).

Незважаючи на те, що SAS успадкував набір команд SCSI, зміни були значні:

  • послідовний інтерфейс;
  • 29-ти житловий кабель із харчуванням;
  • підключення «крапка-крапка»

Термінологія SCSI також була успадкована. Контролер як і раніше називається ініціатором, а пристрої, що підключаються, — цільовими. Усі цільові пристрої та ініціатор утворюють SAS-домен. У SAS пропускна здатність підключення не залежить від кількості пристроїв у домені, оскільки кожен пристрій використовує свій виділений канал.

Максимальна кількість одночасно підключених пристроїв у SAS-домені за специфікацією перевищує 16 тисяч, а замість SCSI ID для адресації використовується ідентифікатор World-Wide Name (WWN).

WWN – унікальний ідентифікатор довжиною 16 байт, аналог MAC-адреси для SAS-пристроїв.

Введення у SSD. Частина 2. Інтерфейсна
Незважаючи на схожість роз'ємів SAS та SATA, ці стандарти не є повністю сумісними. Тим не менш, SATA-диск може бути підключений до SAS-конектора, але не навпаки. Сумісність між SATA-дисками та SAS-доменом забезпечується за допомогою протоколу SATA Tunneling Protocol (STP).

Перша версія стандарту SAS-1 має пропускну здатність 3 Гбіт/с, а найсучасніша, SAS-4, покращила цей показник у 7 разів: 22,5 Гбіт/с.

PCIe

Введення у SSD. Частина 2. Інтерфейсна
Peripheral Component Interconnect Express (PCI Express, PCIe) - послідовний інтерфейс передачі даних, що з'явився в 2002 році. Розробку було розпочато компанією Intel, а згодом передано спеціальною організацією — PCI Special Interest Group.

Послідовний інтерфейс PCIe був винятком і став логічним продовженням паралельного PCI, призначений підключення карт розширення.

PCI Express значно відрізняється від SATA та SAS. Інтерфейс PCIe має змінну кількість ліній. Кількість ліній дорівнює ступеням двійки і коливається в діапазоні від 1 до 16.

Термін «лінія» в PCIe означає не конкретну сигнальну лінію, а окремий повнодуплексний канал зв'язку, що складається з наступних сигнальних ліній:

  • прийом+ та прийом-;
  • передача+ та передача-;
  • чотири жили заземлення.

Кількість PCIe ліній прямо впливає на максимальну пропускну здатність з'єднання. Сучасний стандарт PCI Express 4.0 дозволяє досягти 1.9 Гбайт/с по одній лінії і 31.5 Гбайт/с при використанні 16 ліній.

Введення у SSD. Частина 2. Інтерфейсна
"Апетити" твердотільних накопичувачів ростуть дуже швидко. І SATA, і SAS не встигають збільшувати свою пропускну здатність, щоб «наздогнати» SSD, що призвело до появи SSD-дисків з підключенням по PCIe.

Хоча PCIe Add-In карти прикручуються гвинтом, PCIe підтримує гарячу заміну. Короткі піни PRSNT (англ. present — присутні) дозволяють переконатися, що карта повністю встановлена ​​в слот.

Твердотільні накопичувачі, що підключаються до PCIe, регламентуються окремим стандартом. Non-Volatile Memory Host Controller Interface Specification і втілені в багатьох форм-факторах, але про них ми розповімо в наступній частині.

Віддалені накопичувачі

Під час створення великих сховищ даних виникла потреба у протоколах, дозволяють підключити накопичувачі, розташовані поза сервером. Першим рішенням у цій галузі був Інтернет SCSI (iSCSI), розроблений компаніями IBM та Cisco у 1998 році.

Ідея протоколу iSCSI проста: команди SCSI "обертаються" в пакети TCP/IP і передаються в мережу. Незважаючи на віддалене підключення, для клієнтів створюється ілюзія, що накопичувач підключено локально. Мережа зберігання даних (Storage Area Network, SAN), що базується на iSCSI, може бути побудована на існуючій мережній інфраструктурі. Використання iSCSI значно знижує витрати на організацію SAN.

У iSCSI існує «преміальний» варіант. Fibre Channel Protocol (FCP). SAN з використанням FCP будується на виділених волоконно-оптичних лініях зв'язку. Такий підхід вимагає додаткового оптичного мережного обладнання, але відрізняється стабільністю та високою пропускною здатністю.

Існує безліч протоколів для надсилання команд SCSI комп'ютерними мережами. Проте є лише один стандарт, який вирішує протилежне завдання і дозволяє відправляти IP-пакети по шині SCSI. IP-over-SCSI.

Більшість протоколів для організації SAN використовують набір команд SCSI для управління накопичувачами, але є й винятки, наприклад, простий ATA over Ethernet (AoE). Протокол AoE відправляє команди ATA в Ethernet-пакетах, але в системі накопичувачі відображаються як SCSI.

З появою накопичувачів NVM Express протоколи iSCSI і FCP перестали задовольняти вимоги твердотільних накопичувачів, що швидко зростають. З'явилося два рішення:

  • винесення шини PCI Express за межі сервера;
  • створення протоколу NVMe over Fabrics.

Винос шини PCIe пов'язаний зі створенням складного комутувального обладнання, але не вносить зміни до протоколу.

Протокол NVMe over Fabrics став гарною альтернативою iSCSI та FCP. У NVMe-oF використовуються волоконно-оптична лінії зв'язку та набір команд NVM Express.

DDR-T

Введення у SSD. Частина 2. Інтерфейсна
Стандарти iSCSI та NVMe-oF вирішують завдання підключення віддалених дисків як локальні, а компанія Intel пішла іншою дорогою та максимально наблизила локальний диск до процесора. Вибір упав на DIMM-слоти, до яких підключається оперативна пам'ять. Максимальна пропускна здатність каналу DDR4 становить 25 ГБ/с, що значно перевищує швидкість PCIe шини. Так з'явився твердотільний накопичувач Intel Optane DC Persistent Memory.

Для підключення накопичувача у DIMM слоти був винайдений протокол DDR-T, фізично та електрично сумісний з DDR4, але вимагає спеціального контролера, який бачить різницю між планкою пам'яті та накопичувачем. Швидкість доступу до накопичувача менша, ніж до оперативної пам'яті, але більше, ніж до NVMe.

Протокол DDR-T доступний лише з процесорами Intel® покоління Cascade Lake чи новіше.

Висновок

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

У нашій лабораторії Selectel Lab ви можете самостійно протестувати SSD та NVMe диски.

Тільки зареєстровані користувачі можуть брати участь в опитуванні. Увійдіть, будь ласка.

Чи витіснять NVMe-диски класичні SSD найближчим часом?

  • 55.5%Так100

  • 44.4%Ні80

Проголосували 180 користувачів. Утрималися 28 користувачів.

Джерело: habr.com

Додати коментар або відгук