
В отличие от жестких магнитных дисков, которые в состоянии после обесточивания обеспечить кратковременное питание своих чипов за счет генерации, утилизирующей инерцию вращения блинов, проблема устойчивости к сбоям энергоснабжения твердотельных накопителей должна решаться иначе. Один из таких подходов детально анализируется на китайском сайте AcFun. Рассмотрим основные идеи статьи в контексте функциональных особенностей полупроводниковых компонентов SSD-накопителей.
В чем проблема?
Интеллектуализация подсистем хранения данных делает возможным асинхронное выполнение дисковых операций в фоновом режиме с минимальной утилизацией центрального процессора. Технологии, связанные с буферизацией ввода-вывода, в частности отложенная запись играют важную роль в обеспечении производительности mass storage устройств.
- Любая буферизация подразумевает, что в течение некоторого интервала времени, информация, подлежащая отправке на диск, хранится в оперативной памяти. Очевидно, в случае внезапного отключения электропитания, эта информация будет утеряна.
- Отложенная запись, по сравнению с обычной буферизацией повышает вероятность такого сбоя, поскольку интервал времени, в течение которого данные ожидают отправки на диск, существенно увеличивается.
В этом контексте, под термином оперативная память может подразумеваться каждое из следующих транзитных звеньев передачи информации.
- Оперативная память компьютера, доступная центральному процессору, а также хост-контроллеру дисков в режиме bus-master.
- Оперативная память, находящаяся на платах высокоуровневых контроллеров SCSI и RAID, снабженных собственными процессорами ввода-вывода.
- Оперативная память, установленная на плате электроники HDD или SSD диска.
Для современных накопителей, снабженных автономными процессорами и функционирующими под управлением собственных встроенных ОС, информацией, подлежащей сохранению перед отключением питания, являются не только пользовательские данные, но и собственная управляющая информация накопителя, например таблицы, определяющие соответствие между логически адресуемыми секторами (LBA) и физическими адресами запоминающей Flash матрицы SSD.
Анализ трех перечисленных аспектов выходит за рамки статьи, поэтому сосредоточимся на частном случае третьего пункта, а именно процессах, происходящих внутри твердотельного накопителя.
Теория
Познание умножает печали, а для проектирования надежного устройства разработчик должен быть пессимистом. Поэтому моделировать стоит ситуацию, когда источник бесперебойного питания не справился со своими обязанностями, и питание SSD-диска внезапно отключилось, несмотря на странность такого сценария для серверов. Допустим, в момент аварии в микросхемах DRAM на плате электроники жесткого диска имеются данные, которые требуется переписать в энергонезависимую Flash-память, иначе произойдет потеря пользовательской информации или разрушение контекста устройства.
Каких-либо предупреждающих сигналов SATA-интерфейс не предусматривает, поэтому накопитель самостоятельно детектирует снижение напряжения питания на линии +5 вольт до некоторого порогового значения. Вопрос оптимального выбора порога достоин отдельной статьи, ведь при низком пороге, реакция на аварию может произойти слишком поздно, а при высоком пороге возможны ложные срабатывания механизма защиты.
Рис 1. Компонентная сторона и сторона пайки твердотельного накопителя,
выполненного на контроллере PC29AS21CA0 совместной разработки Intel и HGST
Очевидно, накопитель необходимо снабдить датчиком, который зафиксировав понижение напряжения питания до критического уровня, сгенерирует сигнал аварии для автономного микроконтроллера. Это приводит к остановке текущих выполняемых операций и запуску процедуры переноса данных из DRAM в Flash.
Рис 2. Чипы DDR3 SDRAM производства Micron могут устанавливаться вместо элементов памяти Samsung K4B4G0846B
Напомним, процесс идет во внезапно отключенной системе, питаемой остаточным зарядом сглаживающих конденсаторов, поэтому вероятность успешного сохранения информации определяется величиной накопленной энергии и рациональностью ее применения.
Практика
Необычное решение, позволяющее оптимизировать использование ёмкостного заряда, применено в анонсированных SSD-накопителях Intel. Напомним, разъем питания SATA располагает линией +12 вольт, применение которой типично для жестких дисков формата 3.5 дюйма. В то время как большинство HDD и SSD формата 2.5 дюйма, используют только напряжение +5 вольт.
Можно ли применить «забытую» линию +12 вольт как дополнительный источник остаточной энергии? Чтобы ответить на этот вопрос, промоделируем процессы в отключаемой системе. Для упрощения рассуждений, условно примем, что падение напряжения на линиях +5V и +12V происходит равномерно.
Итак, после двукратного снижения напряжения, на линии +5V получим +2.5V, что уже непригодно для питания накопителя. В тот же момент времени, согласно принятой модели, на линии +12V должно присутствовать напряжение около 6V. Так как в нашем случае каждая миллисекунда на учете, этим фактом разумно воспользоваться.
Рис. 3 Цепь +12V используется для резервного питания накопителя
Согласно блок-схеме (Рис.3) цепь питания SSD-диска, дополненная накопительными конденсаторами, снабжена электронными ключами, позволяющими принимать энергию как от линии +5V, так и от линии +12V. Детектор напряжения, запускающий аварийное сохранение данных, использует линию +5V, которая является основной.
Рис. 4 Фотография печатной платы устройства подтверждает использование линии +12V
Оптимальным исполнительным механизмом для осуществления коммутации, являются ключи на основе MOSFET-транзисторов. Управление коммутацией осуществляет Power Rail Controller. В данном примере такой контроллер реализован на микросхемах TPS2412 разработки Texas Instruments.
Задачей контроллера является эмуляция диодной развязки с целью динамического выбора линии питания, на которой присутствует более высокое напряжение (концепция Redundant Power Supplies).
Рис. 5 Реализация дублированного питания с применением микросхем TPS2412:
концепция диодной развязки реализуется с помощью электронного коммутатора
По сравнению с простейшей цепью развязки на двух полупроводниковых диодах, рассмотренное решение обеспечивает существенно меньшее прямое падение напряжения, а это означает продление интервала, в течение которого можно использовать остаточный заряд сглаживающих емкостей. В конечном счете, вероятность успешного завершения переноса данных DRAM-Flash, повышается.
Резюме
Рассмотренное решение является компромиссом между надежностью и стоимостью. Правильное позиционирование такой технологии подразумевает ее использование как одного из дополнительных факторов многоуровневой аварийной защиты, вероятность применения которой сравнительно низка.
В типичной ситуации, даже в случае разряда батареи UPS, в компьютер будет заблаговременно передано сообщение о предстоящем отключении электропитания. В этом случае система располагает достаточным запасом времени для корректного завершения сеанса под управлением ОС, в том числе программного инициирования переноса содержимого DRAM-Flash до отключения электропитания.