Наверное, нет смысла долго расписывать преимущества SSD (==
Solid
State
Drive) в применении к домашним интернет-серверам, файл-серверам, технологическим компьютерам и т.п. Собственно, в промышленности SSD и DOC (==
Disk-
on-
Chip) применяются уже давно. Так что пора переносить эту технологию и "в дом"!
Сразу рассмотрю возможные альтернативы:
- USB-Flash. Сами по себе они всем хороши: нынче дешевы, объемны, быстры, и с каждым годом все объемистее и быстрее . Однако, далеко не все мат. платы старше примерно 2000 года умеют загружаться с USB, также многие ОС не способны загрузиться с него, даже несмотря на поддержку BIOS.
- CompactFlash-карта через переходник CF->IDE. Вариант замечателен тем, что не требует никакой особой драйверной поддержки, должен работать со всем, что умеет использовать обычные IDE-диски. Однако сами CF-карты довольно дороги, и развиваются медленно: ведь сейчас, фактически, почти единственная область их применения - профессиональные фотокамеры, да и там они уже заменяются форматом SD. Плюс, самостоятельная сборка платы CF->IDE чревата пайкой 50-пинового разъема с шагом 1мм (с учетом двухрядности), что не всем под силу.
- Есть еще экзотические варианты адаптеров карт памяти типа SmartMedia или Memory Stick в форме 3.5" дискеты...
Так что очень перспективным вариантом самодельного SSD мне лично видится следующий:
- Эмулятор IDE-диска на карте (картах) памяти SD Card через микроконтроллер семейства AVR.
- С одного "конца" эмулирует IDE-накопитель. Достаточно реализовать режим PIO-0 (max. 3.3 МБ/с) хотя и такую скорость вряд ли можно будет из ATMegи выжать. Я надеюсь на хотя бы несколько сотен кБ/с. Зато время доступа будет приятным . Вспомним, что в середине 90-х винчестеры имели как раз примерно такую реальную скорость обмена, плюс времена доступа в десятки миллисекунд. Для домашнего Инет-сервера с загружаемым раз в полгода Линуксом - вполне хватит.
- Если правильно реализовать весь протокол опознания устройства и обмен по шине, то оно будет абсолютно эквивалентно IDE HDD для любого BIOS и ОС. Не потребуется спец. драйверов или каких-то изощрений.
- С другого конца - одна или несколько SD-карт. Они сейчас стремительно растут в объемах и дешевеют. Слоты под них "малоножечные", и в крайнем случае могут быть выкушены из дешевых ($6) кардридеров. Есть даже вариант использовать mini/micro-SD, а в качестве слота для них припаять переходник mSD->SD.
- Уже накопилось много "Б/У" карт небольших, по современным меркам, объемов, которые после замены на новые просто "отдыхают" на полках. Так что, думаю, есть смысл закладывать в устройство возможность использования нескольких (2...8) "чипселектов", и, соответственно, в софте предусматривать возможность "склеивания" карт в один логический том.
- Как вариант: сделать даже не IDE-устройство, а ISA-плату, эмулирующую диск вместе с IDE-контроллером. Однако, такое не подключишь к современным PC...
- Для ускорения обмена можно рассмотреть применение CPLD/FPGA, внешней (по отношению к микроконтроллеру) ОЗУ и т.п.
Конечно, идея IDE->SD не мне первому пришла:
http://www.sdcard.ru/memory/121#more-121http://cgi.ebay.com.sg/ws/eBayISAPI.dll?Vi...exURL=#MRLOCATEОднако, в наших краях это все экзотика. Плюс, в большинстве подобных устройств не предусмотрено более одной карты.
Итак.
Может, кто-то уже делал что-то подобное? Навскидку я ничего не нашел...
Или же заняться самому? Готовые библиотеки работы с SD/MMC имеются. Аппаратных никаких особых изысков не предвидится (если не пытаться выжимать UDMA-133
). Единственная неизученная толком область - собственно, эмуляция IDE. Но тут хотя бы документации много.
Что скажете?