Авторизация
Зарегистрироваться

Настройка режимов slc-кеша у ssd на базе sm2258+b17a на примере adata su800 512GB

Попался мне почивший adata su800 в конфигурации sm2258+b17a, на его примере было решено проверить, можно ли его переключить в p-slc режим на весь обьем. Т.е. когда современный флеш с многобитными ячейками используется для хранения всего одного бита на ячейку.

То, что с экземплярами на 2258+l06b (32L mlc от intel/micron) такое провернуть можно — давно известно, а вот с tlc'шными проверить как-то не доводилось.
Заодно посмотрим на настройки slc-кеша в обычном, tlc, режиме.

В дни своей бурной молодости этот экземпляр представлял собой немного странную конфигурацию — флеш у него подключен используя лишь 2 канала.

v0.563a
Drive: 0(ATA)
OS: 10.0 build 18363 
Model: ADATA SU800                             
Fw   : R0427ANR
Size : 488386 MB [512.1 GB]
From smart : [SM2258B16A] [R0427ANR]
Controller : SM2258AB
Bank00: 0x89,0xc4,0x8,0x32,0xa6,0x0,0x0,0x0 - Intel 64L(B17A) TLC 512Gb/CE 512Gb/die
Bank01: 0x89,0xc4,0x8,0x32,0xa6,0x0,0x0,0x0 - Intel 64L(B17A) TLC 512Gb/CE 512Gb/die
Bank08: 0x89,0xc4,0x8,0x32,0xa6,0x0,0x0,0x0 - Intel 64L(B17A) TLC 512Gb/CE 512Gb/die
Bank09: 0x89,0xc4,0x8,0x32,0xa6,0x0,0x0,0x0 - Intel 64L(B17A) TLC 512Gb/CE 512Gb/die
Bank16: 0x89,0xc4,0x8,0x32,0xa6,0x0,0x0,0x0 - Intel 64L(B17A) TLC 512Gb/CE 512Gb/die
Bank17: 0x89,0xc4,0x8,0x32,0xa6,0x0,0x0,0x0 - Intel 64L(B17A) TLC 512Gb/CE 512Gb/die
Bank24: 0x89,0xc4,0x8,0x32,0xa6,0x0,0x0,0x0 - Intel 64L(B17A) TLC 512Gb/CE 512Gb/die
Bank25: 0x89,0xc4,0x8,0x32,0xa6,0x0,0x0,0x0 - Intel 64L(B17A) TLC 512Gb/CE 512Gb/die
Pure Spare Blocks   : 41
Running Spare Blocks: 467
FlashID: 0x89,0xc4,0x8,0x32,0xa6,0x0,0x0,0x0 - Intel 64L(B17A) TLC 512Gb/CE 512Gb/die
Channel               : 2
Ch map                : 0x03
CE map                : 0x55
First Fblock          : 3
Total Fblock          : 504
Bad Block From Pretest: 17
Start TLC/MLC Fblock  : 19
DRAM Size,MB          : 512
DRAM Vendor           : Hynix

Вскрытие (накопитель не определялся, так что пришлось) показало причины — корпус флеша всего один, bga132, он двухканальный, так что большему взяться неоткуда.

Касательно разборки корпуса su800 — в центре верхней этикетки есть винт, он сжимает половинки корпуса вокруг платы, кроме того половинки держаться на защелках по периметру. Углубление под нижней половиной трогать незачем, там ничего нет.
На usbdev.ru был скачан мптул с поддержкой интересующего флеша — SM2258_B16A_B17A_FWR0427A_MPR0419A.rar

Первый актуальный вопрос — как подключать. Тут есть несколько вариантов, все они касаются сравнительно свежих mptool'ов для smi/sata.

1. можно через usb-sata адаптеры. не факт что любые, но обычно через usb3 jm*/asm* работает.
2. можно через sata/ahci со стандартным драйвером от ms.
для этого открываем конфигурационный файл текстовым редактором
SM2258_B16A_B17A_FWR0427A_MPR0419A\UFD_MP\Setting.set
в нем в секции
[OPTION]
надо вписать строчку
ENABLEPATAPASSTHROUGHUDMA=1
кстати, для первого варианта нужно указывать =0 (или совсем строчку убрать). в распространяемых комплектах не исключены разные варианты.
3. можно через sata со стандартным драйвером в ide режиме. вариант на сегодня не очень актуальный.
Во всех вариантах могут быть свои тараканы, в зависимости от версии мптула и контроллеров-драйверов-переходников.

Вернемся к рассматриваемой теме. Ожидаемо в исходном состоянии показ интересующих нас настроек в интерфейсе отключен,
лезем в тот же самый файл и в нем в секции
[OPTION]
дописываем несколько параметров:

ShowWholeDriveStrongPage=1
ShowDynamicSLCSize=1
ShowNandPECycle=1

Получаем доступ к новым настройкам (пароль на изменение — настроек два пробела):

ShowWholeDriveStrongPage — это как раз перевод всего накопителя в p-slc режим
ShowDynamicSLCSize — настройка размера slc-кеша в обычном режиме
ShowNandPECycle — ресурс в циклах стирания, по нему в смарте вычисляются проценты расхода ресурса, так же он показан в атрибуте #A8. но у данной прошивки есть особенность — максимальное значение 1500, все что выше игнорируется, хотя уменьшить можно. так что смысла в этой настройке в данном случае нет.

Задаем обьем, настраиваем, прошиваем.
Максимальный обьем для данного экземпляра (с учетом заводских дефектов флеша, так что может быть и слегка больше, и меньше) оказался равен 178GB.

Для начала напомню, как выглядит запись при стандартных настройках, типичных для такого флеша, slc-кеш на весь обьем флеша, т.е. порядка трети доступного пользователю. При этом запись в кеш происходит со скоростью в 480MB/s, после начинается одновременно с записью новых данных уплотнение старых из slc в tlc и скорость падает до 170MB/s. Для sata ssd это весьма неплохой результат, но все равно падение скорости почти втрое.
повторная запись демонстрирует с 16% прямую запись во флеш со скоростью порядка 380MB/s.
Здесь интересно поведение прошивки в такой ситуации. Некоторые накопители переходят к прямой записи в tlc, некоторые продолжают писать в slc-кеш, и одновременно сбрасывать его в tlc что приводит к сильному падению скорости.

Теперь переключим весь флеш в p-slc режим, получился накопитель в ~1/3 от номинального обьема. Максимальный обьем у этого экземпляра с учетом его количества заводских дефектов составил 178GB.
Прогоняем запись — скорость около 460MB/s
второй проход — результат тот же.

Второй вариант — отключаем slc-кеш совсем, прошивка это тоже позволяет. Скорость неплохая, но до потолка не дотягивается, возможно, будь накопитель 4хканальным — было бы немного выше. Скорость 385MB/s, время записи всего обьема накопителя упало почти вдвое, с 40 до 21 минуты. Максимальный обьем получился 514GB (чуть выше стандартной величены, что интересно, судя по ошибке при превышении не хватает прошивке не флеша, а установленной dram).
второй проход по записанному накопителю выглядит аналогично

И на закуску — включаем кеш, но задаем минимальный обьем в 4GB. После кеша прямая запись в tlc с той же скоростью, что в варианте без кеша.
прогонять до конца не стал, скорость там без изменений.

Заодно сравним, что показывает CDM7 и pcmark10/full system drive benchmark в вариантах slc и tlc (при включенном slc-кеше любого обьема результат будет аналогичен p-slc, ибо тестовый обьем в него умещается).
slc:
tlc:
по результатам CDM видно что скорость произвольного чтения в p-slc режиме тоже заметно подрастает, и особенно многопоточного. Хотя если бы флеш был подключен по всем 4 каналам, разница была бы несколько меньше.

Итог — у накопителей с указанным флешем slc-кеширование можно настраивать достаточно гибко в зависимости от потребностей.

У прошивок для другого флеша часть режимов могут не поддерживаться. Например у прошивок для L06B (intel/micron 32L mlc) доступны только 3 варианта — или кеш на весь обьем, или полный перевод в p-slc и только прямая запись в mlc без кеша. Варианта небольшой кеш+прямая запись не предусмотрено.

Причин для использования p-slc режима представляется три — ускорение записи у малообьемных накопителей, повышение ресурса записи, использование флеша с израсходованным ресурсом, который уже не способен работать в многобитном режиме.
Для внешних накопителей большого обьема интереснее полностью отключить slc кеширование.
Добавить в избранное +79 +103
свернуть развернуть
Комментарии (42)
RSS
+
avatar
+8
Очуметь! Спасибо за инфу!!!
+
avatar
0
А если с прошивкой ничего не делать, но создать раздел на диске в 1/3 его объёма, то насколько сильно будет отличаться получившийся результат?
+
avatar
  • vlo
  • 26 сентября 2024, 16:00
-1
вот от чего такое не будет отличатся — это от раздела полного обьема, но заполненного меньше чем на треть. сброса кеша это никак не отменит, так что часть будет читаться из tlc с соответствующим ростом задержек, дополнительный износ тоже будет (а вот ресурс будет прежним, ибо чтение из tlc никто не отменял), а если в какой-то момент не повезет с количеством мусора — то и запись проседать.
+
avatar
  • rubak
  • 27 сентября 2024, 00:37
0
Насколько помню деградация двух и тем более трёх битной ячейки это главная их проблема от слова совсем.Куда более большой проблемой является сход разряда с такоц ячейки, и теперь нужно постараться чтобы хотя бы данные в некуда не входили, и пофиг на ресурс мы лучше если нужно ещё и двеое его сократим, но будем уверены что в диске находящимся каждый день круглосуточно под напряжением, месяц назад записаные данные к которые никак не были нужны за это время
Ме написанное это вовсе не придуманннач чисто теоретическая ситуация, а с чем уже в реальности столкнулось обладатели определенной молели ссд от Самсунга Самсунг
+
avatar
  • vlo
  • 27 сентября 2024, 02:11
0
ситуация, когда в родном многобитном режиме флеш уже не в состоянии хранить данные минимально осмысленное время (вплоть до того, что сразу после записи флеш уже не читается без повторов), а в однобитном — может, вполне реальна.
об этом в заключении упомянуто.

а ресурс записи — он как раз и оценивается именно по возможности успешно прочитать данные спустя некоторое время.
+
avatar
  • Latte
  • 26 сентября 2024, 15:51
0
Если вырубить slc кэш полностью, то WAF как я понимаю будет стремиться к единице. Аналогично ли поведение накопителя при pslc на весь объем?
+
avatar
  • vlo
  • 26 сентября 2024, 16:04
+1
единица бывает только для строго последовательной записи. при более реальных нагрузках в любом случае будет выше.
без кеша (tlc/pslc — не важно) — не станет лишней записи от его сброса.
при небольшом фиксированном кеше будет протираться его месторасположение (оно фиксированное).
+
avatar
0
Есть мертвый Kingspec на 256гб. не определяется виндой. Что это? Плохие сектора? Какой утилитой и как его чекрыжить, чтобы завести хотябы на 128гб?
+
avatar
  • vlo
  • 26 сентября 2024, 16:20
+3
обычно прошивка не может что-то критичное вычитать, от чего не запускается в полном обьеме и накопитель не выходит в готовность.
хотя бывают и внешние аппаратные проблемы, с преобразователями питания там, или интерфейсные линии статикой убиты. бывает и отвал кристаллов у флеша.

смена режимов флеша поддерживается прошивками достаточно редко.

чем… ну для начала выяснить какой там контроллер, потом можно пытаться запустить в rom (с перемычкой) и определить флеш. а дальше как повезет с наличием инструментов и состоянием.
+
avatar
  • noob
  • 26 сентября 2024, 16:37
+1
А на современных NVMe c PCIе 4 такое проделать возможно?
+
avatar
  • vlo
  • 26 сентября 2024, 16:47
+2
из доступного — у ig5236+ymtc x2-9060 можно отключить slc-кеш.
+
avatar
  • Kjerom
  • 26 сентября 2024, 16:48
+1
есть ssd на rts5735dl0 — начал сыпаться, можно его тоже перевести в p-slc режим? мптул скачал но он его не видит
+
avatar
  • vlo
  • 26 сентября 2024, 16:54
+1
рилтек — никак.
+
avatar
  • Zolg
  • 26 сентября 2024, 16:58
+1
получился накопитель в ~1/3 от номинального обьема
Внезапный вопрос. А есть ли контроллеры, на которых можно запрограммировать еще меньший доступный объем (больше флеша выделить под spare или даже просто игнорировать лишнее)? Нужно изобразить 16GB SSD из 256GB чего-то доступного в рознице.
+
avatar
  • vlo
  • 26 сентября 2024, 17:04
+2
меньше можно выделить в любом режиме и у всех.
есть вариант и через hpa/dco, но какие ssd это поддерживают фиг знает.

p.s. насчет hpa — можно полистать тут: smarthdd.com/rus/database/
навскидку рилтеки фисоны сандфорцы обычно поддерживают, максио — не, сми — когда как.
+
avatar
  • tak
  • 26 сентября 2024, 22:32
0
сандфорцы точно могут
+
avatar
  • Zolg
  • 26 сентября 2024, 23:00
0
меньше можно выделить в любом режиме и у всех.
а какие кнопки жать в том же мптуле?
+
avatar
  • vlo
  • 27 сентября 2024, 01:57
0
в этом — capacity/disk size
+
avatar
  • noob
  • 26 сентября 2024, 17:07
+1
Optane не подойдет? Попадаются даже по $3 за 16Gb.
+
avatar
  • Latte
  • 26 сентября 2024, 17:16
0
Они разве в сата варианте существуют?
+
avatar
  • noob
  • 26 сентября 2024, 18:31
+1
Не подумал что вопрошающему требуется именно SATA.
Нет. Да и конвертеров, похоже, таких не существует, а то бы всунул Optane в осциллограф загрузочным диском.
+
avatar
  • Zolg
  • 26 сентября 2024, 17:17
+1
Нет, нужны mSATA
+
avatar
+1
Я правильно понимаю, что перепрошивка, прежде всего, «вернула» накопитель к жизни, и он стал определяться? То есть, можно было перепрошить и оставить, например, старый объем SLC-кеша, и накопитель просто продолжил бы работать?

P.S. На самом деле, не понимаю, зачем тут вообще SLC-кэш. Если максимум 460 МБ/с, а в режиме прямой записи в TLC 385 МБ/с, можно было так и оставить, и ресурс был бы раза в два больше.
+
avatar
  • vlo
  • 26 сентября 2024, 19:03
+3
да, конечно. причем вылеживание записанного с месяц не продемонстрировало заметных проблем с чтением (у сильно изношенного флеша скорость начинает падать из-за многократного перечитывания с подбором уровней). так что причины его сдыхания не очевидны.

а вот фиг знает зачем. наверное так лучше выглядит в тестах. сейчас большинство sata безбуферников (smi/realtek/yeestor — поголовно, phison/maxio раз на раз) имеют такую же организацию кеширования. причем отключить его стандартные и доступные прошивки у первой тройки не позволяют. и ладно бы у мелких обьемов, но начиная от 500G/1T флеш позволяет писать со скоростью выше sata в tlc режиме.
+
avatar
  • tak
  • 26 сентября 2024, 22:36
0
проблема не в линейной скорости, а в рандоме блоками 4к и там скорость возрастает чуть ли не в 1.5 раза, что для раздела с ОС очень важно
+
avatar
  • vlo
  • 27 сентября 2024, 02:00
0
полтора раза на том уровне, который тут есть в обоих случаях, не важны ни для чего.
и не стоит думать что ос занимается постоянным чтением с 4к рандомом.
+
avatar
  • Alex7667
  • 26 сентября 2024, 19:18
-5
+
avatar
  • vlo
  • 26 сентября 2024, 21:34
+7
их владелец usbdev проверяет.
вообще же антивирусы нынче как бы не большее зло, чем вирусы. ибо от чего их авторы решили оградить пользователя только им и известно. и это не говоря о ошибочных срабатываниях.
ну и пользователи не лучше, которые на вирустотале увидев одну красную метку, из полусотни, от безвестного поделия, не пытаясь даже разобраться что это значит, начинают разводить панику.
+
avatar
+1
Может ложная тревога, а может и нет.

а как понять ложная тревога или нет?
+
avatar
  • Alex7667
  • 26 сентября 2024, 23:31
-1
В том и вопрос. Некоторые вирусы годами могут «спать».
+
avatar
+1
да возможно, но как понять реальная ли угроза или параноя эвричтического алгоритма?
+
avatar
  • Alex7667
  • 26 сентября 2024, 23:32
-2
Снова минусаторы. Да что за ресурс хейтерский?
+
avatar
  • VJet
  • 26 сентября 2024, 19:18
0
«HW Write Protect» — т.е. с помощью этой проги можно сделать SSD доступным только на чтение?
+
avatar
  • Igor_Hi
  • 26 сентября 2024, 19:55
0
Скорее это про переключатель на какой-нибудь ноге контроллера, который делает вкл/выкл на запись. Иначе как записать инфу на SSD, у которого изначальна заблокированна запись.
+
avatar
  • VJet
  • 26 сентября 2024, 21:03
0
записать всё что нужно и заблокировать запись. такое позволяет софт для прошивки некоторых флешек. даже не задумывался, что и на ssd такое возможно…
+
avatar
  • vlo
  • 26 сентября 2024, 21:27
+1
видимо можно какую-то gpio ногу дергать на этот предмет (схемы для 2258 в инете есть). если она разведена на плате.
и тут есть пара замечаний, во1ых оболочка мптула универсальная, и то что у нее вынесено в интерфейс может не поддерживаться прошивками, ну и более интересно — через ata нельзя проинформировать хост, что накопитель r/o. т.е. работать это будет в любом случае кривовато (или рапортовать ошибки при записи, или тихо игнорировать).

из той же серии еще бывает быстрое стирание накопителя по сигналу.
+
avatar
  • feel737
  • 26 сентября 2024, 20:03
0
Эх, для Crucial-ов бы такое!
+
avatar
  • vlo
  • 26 сентября 2024, 21:30
+1
у mx500 кеширование и так настроено разумно. вероятно первую ревизию, на B16A, прошить можно этим же самым.
у bx500… вроде бы некоторые прошивки умеют pslc. отключить кеш — нет.
+
avatar
  • Ariva
  • 26 сентября 2024, 21:45
+4
Ни хрена не понял, но очень интересно ©

прочитал все, но правда как на иврите)
+
avatar
0
Комментарий ожидает проверки администрацией сайта. Подробнее...
+
avatar
  • 579089
  • 26 сентября 2024, 21:52
0
Круть! подобные фокусы некоторые прошивки допускали и раньше, но так глубоко раскопать это здорово!
завтра найду мусорные 2258 и попробую напихать побольше памяти ( если конечно будут подходящие типы ).
да впрочем вроде пара плат на 512г и так валялись…

правда обычно эти диски работают под виндой, а ей эта огромная скорость по всему полю и не сильно нужна.
+
avatar
0
Комментарий ожидает проверки администрацией сайта. Подробнее...

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.