Pull to refresh

Comments 19

100%. Аж переденуло когда в 100500й раз увидел эту картинку. Лучше просто бы фотку SSD вставили.
А за статью спасибо.
Контроллеры с этой возможностью требовали чтоб диск был обязательно размечен в NTFS и содержал MBR
discard в linux и забудьте эту ересь
Когда у нас на руках девственно-чистый новый SSD, никаких проблем нет. Все его ячейки заполнены нулями и готовы к приему наших данных.

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

А почему именно единицами?
>>Поэтому, кстати, если мы меняем биты с единицы на ноль — ничего можно и не стирать. Просто записать поверх.
Тоже самое если изначально одни нули, просто в нужных местах пишете 1 и все.
Зачем брать флэш-память и загонять в нее нули?
Абсолютное большинство микросхем флеш-памяти именно так и работают. Поскольку из структуры базируются на N-канальных полевых транзисторах один из затворов которого является ячейкой удерживающей заряд. Да и собственно, так повелось еще с ПЗУ с пережигаемыми перемычками — есть перемычка держим лог.1 на выходе, нет перемычки — лог.0
Почему бы не проинвертировать? Дополнительный инвертор в микросхеме памяти снижает её быстродействие.
>>Поскольку из структуры базируются на N-канальных полевых транзисторах один из затворов которого является ячейкой удерживающей заряд.
Ну и что что они N? При изготовлении памяти она электрически нейтральна, поэтому для того чтобы загнать туда 1 вам нужно каждый чип «заряжать», что несколько бессмысленно и нелогично.

>>Почему бы не проинвертировать? Дополнительный инвертор в микросхеме памяти снижает её быстродействие.
1 инвертор с точки зрения быстродействия такая мелочь, что даже не стоит про это говорить.

Весьма сомнительно что она заполнена «1».
Не факт, далеко не факт. Данные ведь могут быть дополнительно проинвертированы перед записью во флеш-память, тогда стирание наоборот приведет к обнулению содержимого.
И рассчитывать на сей факт не стоит, однажды попадется такой диск с которым подобное обращение приведет к ошибке. Да скорей сейчас все с точностью до наоборот.
Это логика работы физической ячейки — есть заряд, читается как лог.0(наличие заряда открывает полевой транзистор и тот замыкает выход на землю давая тем самым лог.0) нет заряда — лог.1. Процесс очистки заключается в разряде всех ячеек, а при программировании ячейки в них заносится заряд.
Но на логическом уровне, устройство работая как диск может с успехом инвертировать эти значения прямо на лету и тогда очищенная ячейка будет лог.0
Это может быть верно для SLC памяти (и то с оговорками), но не для MLC.
для достижения повышенного быстродействия, в них необходимо читать, писать и стирать данные большими блоками

Значит ли это, что выгоднее при форматировании указывать размер блока, скажем 512 кб?
А что скажете на счёт смещения в 4 кб: habrahabr.ru/company/paragon/blog/97436/
Для SSD уже не актуально, как я понимаю…

И ещё, вы упомянули SLC. Они вообще бывают для домашнего использования?

Вообще тема интересна, спасибо. Хотелось бы продолжения.
Значит ли это, что выгоднее при форматировании указывать размер блока, скажем 512 кб?

Нет, наоборот.

Для SSD уже не актуально, как я понимаю…

Нет, вы ошибаетесь.
Ну, скажем, у вас есть 10 файлов по 1кб. Если вы укажете размер блока в ФС 512кб, то ваши 10 файлов будут занимать не 10кб реального места на ssd, а аж 5 мегабайт.
А выравнивание по размеру ячейки всегда актуально, что для ssd, что для hdd.
И? Это говорит о занимаемом месте и вовсе не значит, что SSD будет тратить время на заполнение чем-то неиспользуемого пространства. Т.е. логически да, будет занято 10 метров, но физически будут задействованы только 10 кб. А вот в статье сказано что де чтение\запись большими блоками увеличит скорость. От того и спрашиваю.

А выравнивание было актуально при разметке диска во время установки старых версий Windows, которые смещали начало раздела на 63 кб, что не кратно физическому размеру сектора у современных HDD в 4 кб. Каков размер физического «сектора» у новых SSD я не знаю. Но, теоретически, все новые Windows уже не должны этим страдать.
почему это SSD не будет тратить время на запись? Ведь операционка ему дает блок в 512кб на запись из которых реально только 1кб под файл, а диск обязан выполнить запись всего блока. Он же не знает что там актуальны только 1кб в начале блока… можно конечно проверить этот факт чтением перед записью, но это сильно замедлит процесс записи.

выравнивание было актуально при разметке диска во время установки старых версий Windows, которые смещали начало раздела на 63 кб
Увы, не так давно ставил Win7 на нетбук, выбор разделов на автомате — в итоге потом посмотрел первый системный раздел смещен на 63 сектора… какая такая современная виндовс… ничего не знаю!
Ну, я не знаток того, как там на нижнем уровне всё устроено, поэтому лишь предполагал.

А с виндой это печаль…
Для интересующихся, есть очень интересные доклады на тему SandForce и другие Storage-темы. AIS — это ежегодный слет LSI и партнеров в США. Очень рекомендую, информация из первых уст, итд. www.lsi.com/AIS/2013/Pages/agenda.aspx#AIS2013Track
У SLC дисков он выше, у MLC ниже, но он есть.
Если я правильно понимаю, то тут кажется надо поменять местами SLC и MLC как-то так:
У MLC дисков он ниже, у SLC выше, но он есть.

Ведь вроде бы в этом случае выше = лучше. Поэтому «но» вроде бы уместно после описание лучшего варианта.
Поправьте меня если я в этом моменте что-то не правильно понял.
Sign up to leave a comment.

Articles