Твердотельные устройства хранения используются в миниатюрных компьютерах, а также компьютеризированных цифровых устройствах бытовой электроники — фотокамерах, плейерах, приемниках глобальной системы позиционирования (GPS), музыкальных инструментах и прочих. В большинстве своем эти устройства основаны на микросхемах флэш-памяти, в наиболее современных используется память со структурой NAND (см. п. 7.3.2). Этому типу флэш-памяти присуще быстрое чтение, запись и стирание небольших блоков (256 или 512 байт), что удобно для записи файлов. Правда, для этой памяти характерны довольно медленное чтение произвольного байта и отсутствие возможности побайтной записи, но приложениям этих карт такая возможность и не требуется, поскольку они ориентированы на блочный обмен. Устройства на флэш-памяти являются энергонезависимыми (в режиме хранения не требуют питания), экономичными в плане потребления, особенно при чтении, достаточно производительными, но, увы, недешевыми. Запись на эти носители специфична: быстрее всего она выполняется в чистый (стертый) блок (сектор диска), а перезапись требует относительно длительного стирания. Кроме того, флэш-память имеет хоть и большое (порядка 105), но ограниченное число циклов стирания-записи — как ни странно, у носителей с подвижным носителем с этим ограничением не сталкиваются. Устройства хранения обычно представляют комбинацию собственно микросхем памяти и микроконтроллера, обеспечивающего внешние интерфейсные функции. Этим они отличаются от карт памяти с линейным доступом, например Miniature Card, на которых располагаются только микросхемы памяти (встроенный контроллер не требуется).
Есть и другие твердотельные хранители — например, ферроэлектрическая память (FRAM), но пока что массового применения они не имеют. Менее чем за десятилетие устройства хранения на флэш-памяти прошли большой путь от электронных «дисков» («винчестеров») размером в 3" до современных, размером с почтовую марку. Интерфейсы твердотельных устройств хранения — карт внешней памяти — тесно связаны с их конструктивами; основные характеристики наиболее распространенных карт приведены в табл. 9.12.
Таблица 9.12. Основные характеристики карт внешней памяти
CompactFlash | SmartMedia Card | MultiMedia Card | Sequre Digital | Miniature Card | |
Длина | 36,0 | 45,0 | 32,0 | 32,0 | 33,0 |
Ширина | 43,0 | 37,0 | 24,0 | 24,0 | 38,0 |
Высота | 3,3/5,0 | 0,76 | 1,4 | 2,1 | 3,5 |
Коннектор | Штырьковый | Печатный | Печатный | Печатный | Эластомер |
Число контактов | 50 | 22 | 7 | 9 | 60 |
Вышеперечисленные карты можно подключать и к обычным компьютерам. Для этого существуют различные адаптеры: для слотов PC Card (к блокнотным ПК), для шины USB (для самых разных ПК) и для других внешних интерфейсов. С помощью этих адаптеров компьютер «видит» подключенную карту как обычный сменный носитель информации (диск). Конечно, компьютеры общего назначения в такой внешней памяти не нуждаются — своя и больше, и дешевле. Главная цель подключения карты к ПК — быстрая передача прикладных данных бытового устройства (фотографий, музыки и т. п.) или перенос (хранения) информации (вместо дискет).
В качестве интерфейса твердотельных устройств хранения может использоваться и самый обычный вариант ATА. Существуют устройства DOM (Disk On Module) — небольшие модули, которые вставляются в обычный 40-контактный разъем ATA, имеющийся на любой современной системной плате. Правда, этот «винчестер» не блещет выдающимися параметрами: объем — 4-256 Мбайт, средняя скорость передачи данных — 1,6 Мбайт/с, удельная стоимость хранения — около $1,5 за мегабайт. Внутри модуля находится флэш-память структуры NAND с контроллером, эмулирующим систему команд ATA. Основное применение этих модулей — хранение ПО встраиваемых компьютеров, но можно ими пользоваться и как сменными устройствами хранения.
CompactFlash
Карты CompactFlash (рис. 9.7), поддерживаемые ассоциацией CFA (Compact Flash association), широко используются в различных электронных приборах: цифровых фотокамерах, фотопринтерах, MP3-плейерах, цифровых диктофонах, персональных коммуникаторах и, конечно же, компьютерах — настольных, карманных, автомобильных. Карты имеют размер 42,8×36,4×3,3 мм (4 мм с учетом выступа) и 50-контактный разъем (розетка на карте, двухрядный штырьковый разъем с шагом 1,27 мм на слоте). Назначение контактов приведено в табл. 9.13. Через переходник с 50 на 68-контактный разъем карты могут устанавливаться в слот PC Card Type II или III, имеющийся практически во всех блокнотных ПК. Объем памяти выпускаемых в настоящее время карт — от 4 Мбайт до 1 Гбайт, напряжение питания — 5 или 3,3 В. Карты могут работать в одном из трех режимов: карт памяти (Mem), карт ввода-вывода PC Card (I/O), «чистого» режима IDE (ATA). В первых двух режимах карты работают с теми же интерфейсными сигналами, что и PC Card. В режиме IDE электрический интерфейс и система команд полностью совместимы со спецификацией ATA (см. п. 9.2.1), правда, обмен данными возможен только в режиме PIO. Режим IDE выбирается заземлением на стороне хоста сигнала ATA_SEL#. При этом из шины адреса используются только А[2:0] (остальные заземлены хостом); шина данных при обращениях к регистрам ATA имеет разрядность 8 бит, а при передаче данных — 16. Сигналы CS0# и CS1# используются для выбора блока командных и управляющих регистров соответственно. Сигналы PDIAG#, DASP#, CSEL#, RESET# и IORDY соответствуют спецификации ATA. Сигналом CSEL# выбирается роль карты: при заземленном контакте — устройство 0 (master), при разомкнутом — устройство 1 (slave); можно воспользоваться и «кабельной выборкой». Сигналы REG# и WE# должны подключаться к шине питания (Vcc). Сигналы CD1# и CD2# являются индикаторами установки карты (их контакты замыкаются последними, на карте они заземлены). В табл. 9.14 описан чисто пассивный переходник, позволяющий подключить карту Compact Flash к обычному порту ATA (IDE), имеющемуся на любой современной системной плате.
Рис. 9.7. Карты CompactFlash
Таблица 9.13. Назначение контактов карт CompactFlash
№ | Mem | I/O | IDE | № | Mem | I/O | IDE |
1 | GND | GND | GND | 26 | CD1# | CD1# | CD1# |
2 | D03 | D03 | D03 | 27 | D11 | D11 | D11 |
3 | D04 | D04 | D04 | 28 | D12 | D12 | D12 |
4 | DOS | DOS | DOS | 29 | D13 | D13 | D13 |
5 | D06 | D06 | D06 | 30 | D14 | D14 | D14 |
6 | D07 | D07 | D07 | 31 | D15 | D15 | D15 |
7 | CE1# | CE1# | CS0# | 32 | CE2# | CE2# | CS1# |
8 | A10 | A10 | A10 | 33 | VS1# | VS1# | VS1# |
9 | OE# | OE# | ATA_SEL# | 34 | IORD# | IORD# | IORD# |
10 | A09 | A09 | A09 | 35 | IOWR# | IOWR# | IOWR# |
11 | A08 | A08 | A08 | 36 | WE# | WE# | WE# |
12 | A07 | A07 | A07 | 37 | RDY/BSY | IREQ | INTRQ |
13. | VCC | VCC | VCC | 38 | VCC | VCC | VCC |
14 | A06 | A06 | A06 | 39 | CSEL# | CSEL# | CSEL# |
15 | A05 | A05 | A05 | 40 | VS2# | VS2# | VS2# |
16 | A04 | A04 | A04 | 41 | RESET | RESET | RESET# |
17 | A03 | A03 | A03 | 42 | WAIT# | WAIT# | IORDY |
18 | A02 | A02 | A02 | 43 | INPACK# | INPACK# | INPACK# |
19 | A01 | A01 | A01 | 44 | REG# | REG# | REG# |
20 | A00 | A00 | A00 | 45 | BVD2 | SPKR# | DASP# |
21 | D00 | D00 | D00 | 46 | BVD1 | STSCHG# | PDIAG# |
22 | D01 | D01 | D01 | 47 | D08 | DOS | DOS |
23 | D02 | D02 | D02 | 48 | D09 | D09 | D09 |
24 | WP | IOIS16# | IOCS16# | 49 | D10 | D10 | D10 |
25 | CD2# | CD2# | CD2# | 50 | GND | GND | GND |
Таблица 9.14. Переходник CompactFlash Card — ATA
ATA, конт. № | Цепь | CFC, конт. № | CFC, конт. № | Цепь | ATA, конт. № |
2 | GND | 1 | 26 | CD1# | - |
11 | D03 | 2 | 27 | D11 | 10 |
9 | D04 | 3 | 28 | D12 | 12 |
7 | D05 | 4 | 29 | D13 | 14 |
5 | D06 | 5 | 30 | D14 | 16 |
3 | D07 | 6 | 31 | D15 | 18 |
37 | CS0# | 7 | 32 | CS1# | 38 |
GND¹ | A10 | 8 | 33 | VS1# | - |
GND¹ | ATA_SEL# | 9 | 34 | IORD# | 25 |
GND¹ | A09 | 10 | 35 | IOWR# | 23 |
GND¹ | A08 | 11 | 36 | WE# | +5V² |
GND¹ | A07 | 12 | 37 | INTRQ | 31 |
+5V² | VCC | 13 | 38 | VCC | +5V² |
GND¹ | A06 | 14 | 39 | CSEL# | 28³ |
GND¹ | А05 | 15 | 40 | VS2# | - |
GND¹ | А04 | 16 | 41 | RESET# | 1 |
GND¹ | A03 | 17 | 42 | IORDY | 27 |
36 | А02 | 18 | 43 | INPACK# | - |
33 | А01 | 19 | 44 | REG# | +5V² |
35 | A00 | 20 | 45 | DASP# | 39 |
17 | D00 | 21 | 46 | PDIAG# | 34 |
15 | D01 | 22 | 47 | D08 | 4 |
13 | D02 | 23 | 48 | D09 | 6 |
32 | IOCS16# | 24 | 49 | D10 | 8 |
- | CD2# | 25 | 50 | GND | GND¹ |
¹ С шиной GND должны быть соединены контакты 2, 19, 22, 24, 26, 30 и 40 разъема ATA, а также контакт разъема питания.
² Питание +5V на переходник подается от дополнительного разъема.
³ Возможно подключение не к разъему ATA, а к шине GND через джампер: замкнут — ведущее устройство, разомкнут — ведомое.
SmartMedia Card
Карты SmartMedia Card, поддерживаемые ассоциацией PCMCIA, предназначены примерно для того же круга приложений, что и CompactFlash. Они совсем тонкие, имеют менее «нежный» печатный разъем с малым числом контактов (всего 22) и не боятся не только повышенной влажности, но и воды. Карты основаны на микросхемах флэш-памяти с организацией запоминающих ячеек NAND. Средняя скорость передачи данных — 2 Мбайт/с, пиковая — до 10. Вид карт приведен на рис. 9.8, назначение контактов — в табл. 9.15. Карты на 5 В выпускаются объемом 16 и 32 Мбит (2 и 4 Мбайт). Карты на 3,3 В выпускаются объемом 16, 32 или 64 Мбит (2, 4, 8 Мбайт); у них контакт 17 соединен с Vcc. Для карт SmartMedia выпускают простые переходные адаптеры на слот PC Card Type II. Появились даже устройства FlashPath™ для считывания этих карт в обычном дисководе(!) 1,44 Мбайт.
Рис. 9.8. Карты SmartMedia: а — питание 5 В, б — питание 3,3 В
Таблица 9.15. Назначение контактов SmartMedia Card
№ | Цепь | № | Цепь |
22 | VCC (5 B) | 1 | VSS |
21 | СЕ# | 2 | CLE |
20 | RE# | 3 | ALE |
19 | R/B | 4 | WE# |
18 | GND | 5 | WP# |
17 | Power Detect | 6 | I/O1 |
16 | I/O8 | 7 | I/O2 |
15 | I/O7 | 8 | I/O3 |
14 | I/O6 | 9 | I/O4 |
13 | I/O5 | 10 | VSS |
12 | VCC | 11 | VSS |