SSD

История

  • Первый накопитель: IBM 350 Model 1, 14 сентября 1956.
  • Накопитель вмещал 3.75 мебибайт данных
  • Размеры: 172 сантиметра в высоту, 152 сантиметра в длину и 74 сантиметра в ширину.
  • Внутри располагались 50 покрытых чистым железом тонких дисков диаметром 610 мм (24 дюйма).
  • Среднее время поиска данных на диске занимало ~600 мс.

История

  • В 1961 году представлен IBM 1301 вместимостью 18.75 мегабайт со считывающими головками на каждой пластине.
  • В IBM 1311 появились съемные дисковые картриджи
  • с 1970 года в IBM 3330 была внедрена система обнаружения и коррекции ошибок.
  • Спустя три года появился IBM 3340 известный под названием «Winchester».

История

  • Винчестер (от англ. Winchester rifle) — общее название для винтовок и ружей, производившихся Winchester Repeating Arms Company в США во второй половине XIX века. Это были одни из первых многозарядных ружей, получивших огромную популярность среди покупателей. Своим названием они были обязаны основателю компании — Оливеру Фишеру Винчестеру (Oliver Fisher Winchester).
  • IBM 3340 состоял из двух шпинделей по 30 МиБ каждый, из-за чего инженеры называли этот диск «30-30». Это название напоминало о винтовке Winchester Model 1894 с патронами .30-30 Winchester, из-за чего Кеннет Хотон (Kenneth Haughton), руководящий разработкой IBM 3340, сказал «Если это 30-30, то это должен быть Винчестер» («If it's a 30-30, then it must be a Winchester.»). С тех пор «винчестером» называют не только винтовки, но и жесткие диски.

История

  • Первый SSD-накопитель создан компанией Dataram в 1976 году.
  • Накопитель Dataram BulkCore состоял из шасси с восьмью планками RAM-памяти объемом 256 КиБ каждая.
  • В сравнении с первым жестким диском, BulkCore был крошечным: 50,8 см в длину, 48,26 см в ширину и 40 см в высоту.
  • При этом время доступа к данным в этой модели составило всего 750 нс, что 30000 раз быстрее, чем у самого современного на тот момент HDD-диска.

История

  • В 1978 году основана компания Shugart Technology, которая спустя год меняет свое название на Seagate Technology во избежание конфликтов с Shugart Associates.
  • Через два года работы Seagate на свет появляется ST-506 — первый жесткий диск для персональных компьютеров в форм-факторе 5.25 дюйма и вместимостью 5 МиБ.
  • 1978 год запомнился выпуском первого Enterprise SSD от компании StorageTek.
  • StorageTek STC 4305 вмещал 45 МиБ данных.
  • Этот SSD разрабатывался как замена IBM 2305, имел схожие размеры и стоил невероятные 400 000$.

История

  • В 1982 году SSD приходит на рынок персональных компьютеров.
  • Компания Axlon специально для Apple II разрабатывает SSD-диск на RAM-чипах под названием RAMDISK 320.
  • Поскольку накопитель создавался на базе энергозависимой памяти, в комплекте поставлялся аккумулятор для поддержания сохранности информации.
  • Емкости аккумулятора хватало на 3 часа автономной работы в случае потери электропитания.

История

  • В 1980 году, инженер Toshiba, профессор Фудзио Масуока, зарегистрировал патент на новый вид памяти, названный Flash-памятью типа NOR.
  • Разработка заняла 4 года.
  • NOR-память представляет собой классическую 2D матрицу проводников, в которой на пересечении строк и столбцов установлено по одной ячейке (аналог памяти на магнитных сердечниках).
  • Intel и Toshiba вели разработки в области Flash-накопителей
  • в 1986 произошло два важных события. Во-первых, официально стандартизирован SCSI — набор соглашений для взаимодействия между компьютерами и периферийными устройствами.
  • Во-вторых, разработан интерфейс AT Attachment (ATA), известный под брендовым названием Integrated Drive Electronics (IDE), благодаря которому контроллер диска переместился внутрь диска.

История

  • Три года Фудзио Маусока трудился над улучшением технологии Flash-памяти и к 1987 году разработал NAND-память.
  • NAND-память — та же самая NOR-память, организованная в трехмерный массив.
  • Основным отличием стало то, что алгоритм доступа к каждой ячейке стал сложнее, площадь ячеек стала меньше, а общая емкость значительно увеличилась.
  • Годом позже компания Intel разработала собственную Flash-память типа NOR, а компания Digipro сделала на ней накопитель под названием Flashdisk.
  • Первая версия Flashdisk в максимальной комплектации вмещала 16 МиБ данных и стоила менее 500$

История

  • В конце 80-х и начале 90-х производители жестких дисков соревновались в уменьшении размеров дисков.
  • В 1989 компания PrairieTek выпускает диск PrairieTek 220 на 20 МиБ в форм-факторе 2.5 дюйма.
  • Спустя два года Integral Peripherals создает диск Integral Peripherals 1820 «Mustang» с тем же объемом, но уже 1.8 дюйма.
  • Годом позже Hewlett-Packard сократила размер диска до 1.3 дюйма.

История

  • Компания Seagate хранила верность дискам в форм-факторе 3.5 дюйма и делала ставку на увеличение скорости вращения
  • В 1992 выпустила свою знаменитую модель Barracuda, первый жесткий диск со скоростью вращения шпинделя 7200 оборотов в минуту.
  • В 1996 диски линейки Seagate Cheetah достигли скорости вращения 10000 оборотов в минуту
  • через четыре года модификация Х15 раскручивалась аж до 15000 оборотов в минуту.
  • В 2000 году интерфейс ATA стал называться PATA.
  • Виной тому стало появление интерфейса Serial ATA (SATA) с более компактными проводами, поддержкой «горячей замены» и повышенной скоростью передачи данных.
  • Seagate и здесь взяла первенство, выпустив первый жесткий диск с таким интерфейсом в 2002.

История

  • Производство Flash-памяти изначально было очень дорогим, но в начале 2000-х стоимость резко снизилась.
  • Этим воспользовалась компания Transcend, в 2003 выпустившая SSD-диски объемом от 16 до 512 МиБ.
  • Через три года к массовому производству подключились компании Samsung и SanDisk.
  • В этом же году IBM продает свое дисковое подразделение компании Hitachi.

История

  • Твердотельные накопители набирали обороты и возникла очевидная проблема: интерфейс SATA был медленнее, чем сами SSD-накопители
  • Для решения этой проблемы рабочая группа NVM Express Workgroup начала разработку NVMe — спецификацию на протоколы доступа к SSD напрямую по шине PCIe, минуя «посредника» в виде SATA-контроллера.
  • Это бы позволило получать доступ к данным со скоростью шины PCIe.
  • Через два года первая версия спецификации была готова, а еще через год появился первый NVMe-накопитель.

Различия между современными SSD и HDD

  • в SSD отсутствуют механические элементы, а информация хранится в ячейках памяти.
  • Отсутствие подвижных элементов приводит к быстрому доступу к данным в любом участке памяти, однако, существует ограничение на количество циклов перезаписи.
  • Из-за ограниченного количества циклов перезаписи каждой ячейки памяти возникает необходимость в механизме балансировки — выравнивании изношенности ячеек путем переноса данных между ячейками.
  • Эту работу выполняет контроллер диска.

Различия между современными SSD и HDD

  • Для проведения балансировки контроллеру SSD необходимо знать, какие ячейки заняты, а какие свободны.
  • Запись данных в ячейку контроллер способен отследить сам, чего нельзя сказать об удалении.
  • Как известно, операционные системы (ОС) не стирают данные с диска, когда пользователь удаляет файл, а помечают соответствующие участки памяти как свободные.
  • Такое решение избавляет от необходимости ожидания дисковой операции при использовании HDD, но совершенно не подходит для работы SSD.
  • Контроллер SSD-диска работает с байтами, а не с файловыми системами, и поэтому требует отдельного сообщения об удалении файла.

Различия между современными SSD и HDD

  • Так появилась команда TRIM (англ. — подрезать), с помощью которой ОС уведомляет контроллер SSD-диска об освобождении определенной области памяти.
  • Команда TRIM необратимо стирает данные с диска.
  • Не все операционные системы знают о необходимости отправлять эту команду твердотельным накопителям, а аппаратные RAID-контроллеры в режиме дисковых массивов никогда не отправляют TRIM дискам.

Интерфейс

  • Общение между процессором и периферийными устройствами происходит в соответствии с заранее определенными соглашениями, называемыми интерфейсами.
  • Эти соглашения регламентируют физический и программный уровень взаимодействия.
  • Интерфейс — совокупность средств, методов и правил взаимодействия между элементами системы.
  • Физическая реализация интерфейса влияет на следующие параметры:
  • пропускная способность канала связи;
  • максимальное количество одновременно подключенных устройств;
  • количество возникающих ошибок.

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

  • Дисковые интерфейсы построены на портах ввода-вывода, что является противоположностью вводу-выводу через память и не занимает место в адресном пространстве процессора.
  • параллельный порт отправляет за раз машинное слово, состоящее из нескольких бит.
  • Параллельный порт — самый простой способ обмена данными, так как не требует сложных схемотехнических решений.
  • В самом простом случае каждый бит машинного слова отправляется по своей сигнальной линии, а для обратной связи используются две служебные сигнальные линии: Данные готовы и Данные приняты.

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

  • Параллельные порты, на первый взгляд, отлично масштабируются: больше сигнальных линий — больше бит передается за раз и, следовательно, выше пропускная способность.
  • Тем не менее, из-за увеличения количества сигнальных линий между ними возникает интерференционное взаимодействие, приводящее к искажению передаваемых сообщений.

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

  • Последовательные порты — противоположность параллельным.
  • Отправка данных происходит по одному биту за раз, что сокращает общее количество сигнальных линий, но усложняет контроллер ввода-вывода.
  • Контроллер передатчика получает машинное слово за раз и должен передавать по одному биту, а контроллер приемника в свою очередь должен получать биты и сохранять в том же порядке.
  • Малое количество сигнальных линий позволяет без помех увеличивать частоту передачи сообщения.

SCSI

  • Small Computer Systems Interface (SCSI) появился в далеком 1978 году и был изначально разработан, чтобы объединять устройства различного профиля в единую систему.
  • Спецификация SCSI-1 предусматривала подключение до 8 устройств (вместе с контроллером), таких как:
  • сканеры;
  • ленточные накопители (стримеры);
  • оптические приводы;
  • дисковые накопители и прочие устройства.

SCSI

SCSI

  • В терминологии SCSI подключаемые устройства делятся на два типа:
  • инициаторы;
  • целевые устройства.
  • Инициатор отправляет команду целевому устройству, которое затем отправляет ответ инициатору.
  • Инициаторы и целевые устройства подключены к общей шине SCSI, пропускная способность которой в стандарте SCSI-1 составляет 5 МБ/с.

SCSI

  • Используемая топология «общая шина» накладывает ряд ограничений:
  • на концах шины необходимы специальные устройства — терминаторы;
  • пропускная способность шины делится между всеми устройствами;
  • максимальное количество одновременно подключенных устройств ограничено.
  • Устройства на шине идентифицируются по уникальному номеру, называемому SCSI Target ID.

SCSI

ATA / PATA

  • Интерфейс ATA (Advanced Technology Attachment), так же известный как PATA (Parallel ATA) был разработан компанией Western Digital в 1986 году.
  • Маркетинговое название стандарта IDE (англ. Integrated Drive Electronics — «электроника, встроенная в привод») подчеркивало важное нововведение:
  • контроллер привода был встроен в привод, а не на отдельной плате расширения.
  • Решение разместить контроллер внутри привода решило сразу несколько проблем.
  • Во-первых, уменьшилось расстояние от накопителя до контроллера, что положительным образом повлияло на характеристики накопителя.
  • Во-вторых, встроенный контроллер был «заточен» только под определенный тип привода и, соответственно, был дешевле.

ATA

ATA

  • ATA, как и SCSI, использует параллельный способ ввода-вывода, что отражается на используемых кабелях.
  • Для подключения дисков с использованием интерфейса IDE необходимы 40-жильные кабели, также именуемые шлейфами.
  • В более поздних спецификациях используются 80-жильные шлейфы: более половины из которых — заземления для уменьшения интерференции на высоких частотах.
  • На шлейфе ATA присутствует от двух до четырех разъемов, один из которых подключается в материнскую плату, а остальные — в накопители.
  • При подключении двух устройств одним шлейфом, одно из них должно быть сконфигурировано как Master, а второе — как Slave.
  • Третье устройство может быть подключено исключительно в режиме «только чтение».

ATA

ATA

  • Положение перемычки задает роль конкретного устройства.
  • Термины Master и Slave по отношению к устройствам не совсем корректны, так как относительно контроллера все подключенные устройства — Slaves.
  • Особенным нововведением в ATA-3 считается появление Self-Monitoring, Analysis and Reporting Technology (S.M.A.R.T.).
  • Пять компаний (IBM, Seagate, Quantum, Conner и Western Digital) объединили усилия и стандартизировали технологию оценки состояния накопителей.
  • Поддержка твердотельных накопителей появилась с четвертой версии стандарта, выпущенной в 1998 году.

ATA

  • Стандарт выдвигает жесткие требования к шлейфам ATA:
  • шлейф обязательно должен быть плоским;
  • максимальная длина шлейфа 18 дюймов (45.7 сантиметров).
  • Короткий и широкий шлейф был неудобен и мешал охлаждению.
  • Повышать частоту передачи с каждой следующей версией стандарта становилось все сложнее, и ATA-7 решил проблему радикально: параллельный интерфейс был заменен последовательным.
  • После этого ATA приобрёл слово Parallel и стал называться PATA, а седьмая версия стандарта получила иное название — Serial ATA.
  • Нумерация версий SATA началась с единицы.

SATA

SATA

  • Стандарт 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).

SATA

  • Некоторые пины на дисках короче, чем все остальные.
  • Это сделано для поддержки «горячей замены» (Hot Swap).
  • В процессе замены устройство «теряет» и «находит» линии в заранее определенном порядке.

DDR-T

  • Стандарты iSCSI и NVMe-oF решают задачу подключения удаленных дисков как локальные
  • компания Intel пошла другой дорогой и максимально приблизила локальный диск к процессору.
  • Выбор пал на DIMM-слоты, в которые подключается оперативная память.
  • Максимальная пропускная способность канала DDR4 составляет 25 ГБ/с, что значительно превышает скорость шины PCIe.
  • Так появился твердотельный накопитель Intel® Optane™ DC Persistent Memory.
  • Для подключения накопителя в DIMM слоты был изобретен протокол DDR-T, физически и электрически совместимый с DDR4, но требующий специального контроллера, который видит разницу между планкой памяти и накопителем.
  • Скорость доступа к накопителю меньше, чем к оперативной памяти, но больше, чем к NVMe.
  • Протокол DDR-T доступен только с процессорами Intel® поколения Cascade Lake или новее.

«Классический» форм-фактор SSD

  • Форм-фактор 2.5″ был предложен в 1988 году компанией PrairieTek и позже был закреплен в стандарте EIA/ECA-720.
  • Такие накопители могут подключаться как по SATA, так и по PATA, хотя последние уже не очень распространены.
  • Диски данного форм-фактора длиной 100 мм, шириной 69.85 мм и высотой от 5 до 19 мм.
  • У 2.5″ есть и младший брат: форм-фактор 1.8 дюймов. Данный форм-фактор использует для подключения mSATA и был распространен в ноутбуках.

Форм фактор U.2

  • U.2, так же известный как SFF-8639, был разработан в декабре 2011 года командой SSD Form Factor Working Group.
  • Стандарт SFF-8639 разрабатывался в первую очередь для корпоративного сегмента с поддержкой PCIe-, SAS- и SATA-дисков.
  • Внешне U.2 диски отличаются от 2.5″ другим коннектором и фиксированной высотой в 15 мм.
  • На дисках в форм-факторе U.2 встречается рельефная нижняя стенка для улучшения теплоотвода.
  • U.2 реализует три вида интерфейсов: SATA, SAS и PCIe.
  • Однако, каждый разъём поддерживает только один из интерфейсов.

Форм фактор U.2

Форм фактор U.3

  • 20 марта 2018 года организация Open Compute Project представила форм-фактор U.3, который решает существующую проблему U.2.
  • Согласно спецификации, интерфейсы SAS, SATA и PCIe поддерживаются на всех пинах, а выбор интерфейса производится в автоматическом режиме в зависимости от предоставляемых диском интерфейсов.
  • Накопители U.3 совместимы с системами, использующими U.2, но не наоборот.

Форм фактор U.2 vs U.3

Форм фактор M.2

  • Этот форм-фактор так же известен как Next Generation Form Factor (NGFF).
  • Первая версия стандарта M.2 была выпущена группой PCI Special Interest Group (PCI-SIG) в декабре 2013 года.
  • Данный форм-фактор не ограничивается твердотельными накопителями: существуют Wi-Fi и Bluetooth-модули в таком исполнении.
  • Несмотря на то, что M.2-устройство часто фиксируется винтом, интерфейсы M.2 поддерживают «горячую замену».
  • Таким образом, замена на «горячую» возможна, если устройство и материнская плата поддерживают такую возможность.

Форм фактор M.2

  • В сравнении с предыдущими форм-факторами M.2 предоставляет максимальную гибкость при проектирования устройства. Следующие характеристики устройства могут варьироваться:
  • ширина
  • длина
  • высота
  • вид ключа и поддерживаемые интерфейсы.

Форм фактор NF1

  • В августе 2018 года Samsung представила форм-фактор NGSFF (Next Generation Small Form Factor), так же известный как M.3 или NF1.
  • Форм-фактор от Samsung отличается от M.2 увеличенной шириной и отсутствием разнообразия в коннекторах.
  • Длина NGSFF-диска составляет 110 миллиметров, а ширина — 30 миллиметров, что эквивалентно самой большой M.2-плате.
  • NF1 использует коннекторы, идентичные коннекторам типа «M» форм-фактора M.2, тем не менее, M.2 и NF1 не совместимы между собой.
  • PCI-SIG не одобряет использование разъема M.2 в данном форм-факторе, так как установка M.2 устройств в NF1 разъем может привести к повреждению устанавливаемого оборудования.
  • Данный форм-фактор разработан для серверного сегмента: увеличенная ширина позволяет вместить до 36 накопителей в 1U сервер.

Форм фактор NF1

Особенности записи

  • Контроллер современного накопителя — маленький компьютер, который принимает стандартизированные команды и выполняет соответствующие действия с подконтрольным ему хранилищем.
  • При этом внутреннее устройство контроллера может быть любым.
  • Хранилище твердотельного накопителя состоит из множества полевых транзисторов, соединенных друг с другом.
  • При таком подходе чтение и запись выполняются страницами данных, размер которых обычно 4 КиБ.
  • Таким образом, изменение одного бита на диске приводит к необходимости перезаписать всю страницу данных.
  • Эта проблема называется усилением записи (Write Amplification).

Особенности записи

  • Кроме того, твердотельные накопители не могут обновить данные в странице.
  • Обновление страницы производится в четыре шага:
  • Чтение данных из страницы в буфер.
  • Изменение данных в странице.
  • Очистка страницы данных.
  • Запись обновленных данных из буфера.

Особенности записи

  • Контроллер умеет записывать страницы данных, а стирать только блоки — последовательность страниц.
  • Обычно блок состоит из 64 страниц данных.
  • В поставленных условиях и при конечном ресурсе перезаписи ячеек накопителя контроллеру нужно проводить операции записи и стирания аккуратно.

Износостойкость

  • Современные накопители построены на базе ячеек TLC, ресурс которых в разы меньше, чем у накопителей с ячейками SLC и MLC.
  • Если какая-то программа в ОС будет постоянно перезаписывать маленький файл, а контроллер будет «наивно» обновлять одну страницу данных, то вскоре блок с этой страницей исчерпает ресурс.
  • Исчерпание ресурса будет отображено в показателях накопителя, что неизбежно приведет к беспокойству системного администратора.
  • Во избежание сильного износа единичных блоков накопителя применяются технологии выравнивания износа (Wear Leveling).

Износостойкость

  • При этом обновление данных выполняется без очистки страницы накопителя и выглядит так:
  • Чтение данных из страницы в буфер.
  • Изменение данных в странице.
  • Запись обновленных данных из буфера в «чистую» страницу.
  • Старая страница помечается как «грязная».
  • Очистка блока происходит после того, как все страницы отмечены «грязными».
  • Возникает закономерный вопрос: как поведет себя накопитель, когда не останется «чистых» страниц и не будет блоков, готовых к очистке?
  • Ответ прост: избыточность (over provisioning) и сборка мусора (garbage collection).

Балансировка износа

  • В каком-то смысле производитель накопителей обманывает нас дважды.
  • Первый раз использует десятичные приставки вместо двоичных: 480 ГБ — это 447 ГиБ.
  • А второй раз, когда фактический объем накопителя больше, чем доступно пользователю.
  • Часть объема зарезервирована производителем для внутренних нужд контроллера.
  • Такой резерв называется запасной областью (spare).
  • Таким образом, у контроллера всегда есть немного свободного пространства, которое может быть использовано для внутренних процессов.
  • для контроллера резервируется от 7 до 28 % объема накопителя.

Балансировка износа

  • Увеличение объема зарезервированной области уменьшает доступный объем, но чаще всего повышает производительность диска.
  • Помимо балансирования износа, в контроллерах в фоновом режиме часто проходит процесс «‎сбора мусора» (garbage collection).
  • В ходе него с нескольких блоков собираются актуальные страницы и помещаются в один блок.
  • Затем исходные блоки очищаются, так как в них не осталось страниц с данным.
  • Важно отметить, что сборщик мусора занимается перекладыванием данных в хранилище, чтобы было как можно больше чистых блоков.
  • При этом он не может понять, что на файловой системе какой-то файл отмечен удаленным, так как контроллер накопителя не умеет работать в терминах файловых систем.
  • Для решения этой проблемы в каждом из протоколов есть команда, позволяющая уведомить контроллер об удалении файла. Для NVMe — это deallocate, для SATA — TRIM, а для SCSI — unmap.
  • Суть каждой их этих команд одинакова: пометить страницы с удаленным файлом как «грязные».