«Компьютер на флешке. Работающие Windows, Linux, Офис и 150 самых полезных программ у вас в кармане»

- 6 -
Виртуальное флеш-пространство

Файловая система флеш-памяти (Flash File System, FFS) состоит из модулей управления пространством, «сборкой мусора», износом и интерфейсом, а также блока инициализации. Общение ОС с флеш-накопителем начинается с вызова дискового прерывания (IRQ14), которое активизирует накопитель. Если запрашивается чтение сектора данных, то происходит преобразование его координат в адрес физического блока памяти. Затем происходит выборка соответствующего кристалла, собственно считывание данных и их передача в буфер ОС [1].

При записи координаты сектора преобразуются в собственную систему флеш-накопителя. Происходит проверка на наличие свободных блоков чтения/записи. При наличии таковых для соответствующего кристалла устанавливается режим записи и происходит запоминание данных в его ячейках.

Если же блоков недостаточно или размер свободного пространства меньше требуемого, активизируется «сборка мусора», которая совместно с механизмом управления износом подбирает область стирания и проверяет, не содержит ли она действительных блоков чтения/записи. При обнаружении последних происходит их перемещение в резервное пространство. Выбранная область стирания очищается, затем из ее состава выбирается свободный блок записи.

Управление пространством осуществляется с помощью трансляции логических секторов дисковой модели ОС в физические блоки флеш-памяти (Flash Translation Layer, FTL). При этом происходит учет дефектных и недействительных блоков. Доступный объем виртуального накопителя описывается в управляющих таблицах, выполняющих роль таблиц размещения файлов (FAT) дисковой ОС.

Процесс удаления записанных, но более не используемых (недействительных) блоков памяти носит название «сборки мусора» (Garbage Collection).

На заре развития флеш-памяти для этого использовался простой механизм. Блоки, содержащие полезные данные, перемещались в свободную область, после чего запускался механизм очистки недействительных. Так как «сборка мусора» запускается нечасто, этот процесс потребляет ничтожно мало энергии и не снижает производительность памяти. Однако его нельзя признать достаточно оптимальным. Поэтому сегодня эта процедура запускается в те моменты, когда нет обращений системы к виртуальному диску [1].

- 6 -