Контроллеры

We use cookies. Read the Privacy and Cookie Policy

Контроллеры

Для управления чтением и записью служит контроллер памяти. В настоящее время контроллер всегда выполняется в виде отдельного элемента (это либо микросхема одного из стандартных форм-факторов, либо бескорпусный чип, встраиваемый в карту памяти), хотя ведутся работы по интеграции контроллера непосредственно в кристалл flash-памяти.

Контроллеры разрабатываются и выпускаются под совершенно определенные микросхемы flash-памяти. Способ адресации ячеек конструктивно заложен в контроллере. Данные при записи в микросхему flash-памяти располагаются определенным способом, меняющимся от модели к модели. Производители эти тонкости не раскрывают и, по всей видимости, раскрывать не планируют. Очевидно, микропрограмм контроллеров создается значительно больше, чем самих моделей контроллеров. Микропрограмма контроллера (прошивка) и таблица трансляции адресов (транслятор) записываются в служебную область flash-памяти. Именно эту область контроллер начинает считывать сразу после подачи на него питания. Кроме собственно адресации ячеек, контроллер выполняет ряд других функций: функции контроля bad-секторов, коррекции ошибок (ECC – error check and correct) и равномерности износа ячеек (wear leveling).

Технологической нормой при изготовлении микросхем памяти считается наличие в них в среднем до 2 % нерабочих ячеек. Со временем их количество может еще увеличиваться, поэтому, как и в винчестерах, во flash-памяти предусмотрен резервный объем. Если появляется дефектный сектор, контроллер в процессе форматирования или записи подменяет его адрес в таблице размещения файлов адресом сектора из резервной области. Коррекция осуществляется контроллером, но реализуется на уровне файловой системы конкретного носителя.

Из-за ограниченного ресурса ячеек (порядка нескольких миллионов циклов чтения/записи для каждой) в контроллер заложена функция учета равномерности износа. Чтобы запись информации осуществлялась равномерно, свободное пространство условно разбивается на участки, и для каждого из них учитывается количество операций записи. Статистика циклов заносится в скрытую служебную область памяти, и за этими сведениями контроллер периодически обращается к ней. На адресацию это не влияет.

Данный текст является ознакомительным фрагментом.