При механическом хранении работа диска низкого уровня seek()
заставляет головки жесткого диска перемещаться в такое место, чтобы они были готовы к чтению из заданной области диска.
С твердотельным хранилищем, таким как SD-карты, флэш-накопители и твердотельные накопители, нет движущихся частей оборудования, только электрические сигналы.
Предполагая, что технология энергонезависимого ОЗУ NAND является основой аппаратного обеспечения, какую функцию он seek()
фактически выполняет на аппаратном уровне для такого устройства?
Просто чтобы прояснить, я уже знаю, что происходит следующее:
Пользовательская программа вызывает
seek()
системный вызов или специфичный для ОС эквивалентЯдро интерпретирует системный вызов и отправляет сообщение на контроллер SATA для поиска
Контроллер SATA интерпретирует команду и сообщает подключенному дисковому устройству, которое находится в твердотельном состоянии, искать (или, может быть, оно достаточно умное, чтобы распознать, что оно твердотельное и даже не сообщает об этом ??)
То, что я не знаю, твердотельное устройство делает ??? с командой «искать».
Если есть детали, которые будут зависеть от операционной системы, предположим, что относительно стандартная настольная версия GNU / Linux с версией ядра 3.2.