Re[31]: диалог с любителями потоков
От: yuriylsh  
Дата: 20.07.09 22:37
Оценка:
Здравствуйте, zlonovich, Вы писали:
Y>> Дальше мы удалили первый файл – так как команды удаления для диска нету, то ОС помечает у себя что первые 32 страницы блока свободны
Z>Собственно это удаление с точки зрения накопителя это тоже есть просто запись.

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

Y>> Вот тут у SSD диска проблема – писать в свободные страницы он не умеет, только в чистые, тобишь, ему С + ЧЧ надо превратить в Ч+ЧЧ, тобишь, стиреть первые 32 страницы.

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

Согласен, вот только SSD это не простая флэшка, ты же сам дальше об этом говоришь.

Z>[остальное поскипнуто]


Z>Думаю тут стоит избавится от парочки мифов которые возникали в этом типике:


Z>1) Контроллеры для флэшек да и SSD имеют достаточно сложные прошивки которые умеют делать много чего: следить за равномерным износом блоков и перемещать данные из более изношенных блоков в менее изношенные, cледить за состоянием уровня заряда в яйчейках флэш-памяти так как он теряется во время чтения и переносить данные когда он становится низким (естественно это все смотрится по косвенным признакам), обрабатывать ошибки и восстанавливать данные в случае если произошел сбой питания(флӕш память не любит если изчезает питание во время записи) или ошибка записи.

Z>2) Учитывая что есть возможность только записать(а точнее только переключать 1-ки в 0-ки) данные каждый раз пишутся в новое место (включая и контрольные структуры) 2 записи по одному и тому же LBA в общем случае физически после записи будут находится в разных местах на флэш памяти.
Z>3) Давно не слышал про просто SLC и просто MLC память. Дорого это иметь отдельную микруху для каждого типа памяти. А про память которая может работать в SLC режиме и MLC режиме причэм для каждого блока можно выбирать в каком режиме он будет работать слышал.
Z>4) Учитывая что данные перезаписать невозможно без стирания всего блока то последовательные длинные записи гораздо проще реализуются чем короткие рандомные. Cобственно в SSD буферная память и используется для того чтобы уменьшить влияние случайных записей и собственно попытаться уменьшить само кол-во записей. Возьмем предидущий пример: после прихода первого файла контроллер может решить вообще оставить его в памяти и ничего не писать, а когда придет второй кусок записать сразу весь второй файл в 96 страниц.
Z>5) В принципе основные команды это чтение нескольких сектров и запись нескольких секторов. Про стирание слышал только в контексте SD карточек.

Да это все оптимизации для продления жизни (с этим уже сейчас у SSD все не так уж плохо) и попытки избавиться от проблем с записью на несвежий диск — вот тут без TRIM тяжко, проблема не решается, а откладывается. В зависимости от паттерна использования диска (ну и объема, конечно же) ты очень долго можешь не видеть деградации, но рано или поздно ты к ней придешь.
Luck in life always exists in the form of an abstract class that cannot be instantiated directly and needs to be inherited by hard work and dedication.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.