Как происходит ввод / вывод данных на флэш-памяти USB?

282
user35704

Я хочу знать, как происходит ввод / вывод данных на флэш-накопителях, которые обычно являются EEPROM. Я так и думал, когда писал программу на C, которая включает обработку файлов. Для обычного жесткого диска это потребовало бы возврата указателя файла и чтения или записи данных на диск, что было бы сделано для чтения / записи HEAD. Хотя в EEPROM нет головки для чтения / записи, так как она работает с мнемоническими командами, так почему же программа обработки файлов C работает, когда я применяю ее к файлу на флэш-накопителе?

0

1 ответ на вопрос

2
Brian

Если вы не говорите о написании драйвера устройства, обработка файлов для флэш-накопителя и жесткого диска одинакова, поскольку операционная система и файловая система абстрагировали все детали низкого уровня. Все, что вам нужно беспокоиться, это открыть файл и читать или писать из него.

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

По сути, я хочу получить доступ к коду ECC каждого блока, в котором хранится файл, и включить в него случайный бит. Поэтому я хотел получить к нему доступ на этом уровне. В случае с жестким диском я обнаружил, что некоторые утилиты для ускорения загрузки, такие как Ureadahead, используют FIEMAP ioctl, но, поскольку флэш-накопитель является электронным, как это будет полезно в этом случае? user35704 13 лет назад 0

Похожие вопросы