@ Карта сайта News Автора!

Bog BOS: hardware:  Флэш накопители и флэш карты

Последнее изменение файла: 2011.07.21
Скопировано с www.bog.pp.ru: 2024.04.20

Bog BOS: hardware: Флэш накопители и флэш карты

В статье описываются основные особенности флэш памяти различных типов, интерфейсы подключения флэш памяти (карты памяти и накопители), примеры использования устройств чтения и записи в Linux (Apacer Mega Steno AM230, EURODATA 19-in-1 и переходник CF - PC Card).

Особенности флэш-памяти

Для хранения информации во флэш-памяти не нужно электропитания. При стирании (только блоками или целиком, 2 ms на блок) во все ячейки прописывается значение 1 ("наливается заряд"). При нагреве скорость стирания увеличивается на порядок. Современные микросхемы позволяют стирать отдельными (небольшими) блоками. Типичный размер блока стирания - 512KB для MLC (ранее 128KB). При произвольной записи можно только обнулять биты ("сливать заряд"), причём постранично, но нельзя записывать 1. Типичный размер страницы (сектора), который рассматривается как неделимая единица при чтении и записи - 4KB для MLC (ранее 2KB). При параллельной адресации нескольких микросхем эффективный размер страницы надо умножить на количество микросхем. Архитектура NOR (ИЛИ-НЕ, параллельное соединение ячеек) обеспечивает быстрое произвольное чтение. Архитектура NAND (И-НЕ, последовательное соединение ячеек) обеспечивает быстрое последовательное чтение и большую плотность ячеек. Микросхемы флэш памяти типа SLC (один бит в одной ячейке) записывают медленнее (250 мкс), чем читают (25 мкс). Технология MLC позволяет хранить 2 (3) бита в одной ячейке, очень медленная запись (900 мкс), скорость чтения почти не отличается от SLC (50 мкс). Время сохранения информации - до 10 лет (до 1 года на "потёртом" устройстве). Число циклов стирания - до 10 тысяч (MLC) или 100 тысяч (SLC). При уменьшении нормы изготовления время хранения и число циклов стирания уменьшается. Модели с поддержкой ECC позволяют увеличить число допустимых циклов на порядок. Контроллер может использовать специальный алгоритм выравнивания нагрузки, который соотносит часто перезаписываемыому логическому блоку разные физические блоки.

Интерфейсы подключения флэш-памяти

Стандарт PCMCIA (Personal Computer Memory Card International Association, 1990) предназначался именно для карт памяти. Питание - 5 Вольт. Ширина шины - 8 бит (10 MB/сек при использовании интерфейса памяти) и 16 бит (20 МБ/сек). Длина - 85.6 мм, ширина - 54.0 мм, высота - 3.3 мм (Type I) или 5.0 мм (Type II). 68 штырьков. Версия 2.0 (1991) позволила подключать устройства ввода-вывода, PC CardATA, карты увеличенной высоты (10.5 мм, Type III).

В 1995 новая версия стандарта переименована в PC Card: дополнительный тип питания - 3.3 Вольта, поддержка DMA и CardBus (упрощённый вариант PCI - 32 бита, 33 МГ, 132 МБ/сек, прямое управление шиной). Основная файловая система - FAT, дополнительно описан формат CIS (Card Information Structure). Предусматривается "горячее" подключение (контакты шин питания длинее остальных, контакты шины наличия карты короче остальных), PnP, APM. Подключаются через мост PCI - PC Card (у меня это выглядит как "CardBus bridge: Texas Instruments PCI7420 CardBus Controller", 2 штуки).

CompactFlash. Длина - 36.4 мм, ширина - 42.8 мм, высота - 3.3 мм (Type I) или 5.0 мм (Type II). В отдельный подтип можно выделить диски Microdrive, которые формально относятся к Type II, но требуют питания 5 вольт. 50 штырьков на слоте (гнутся легко). Распространитель - CFA (Compact Flash Association), Canon, Kodak, HP. Напряжение питания - 3.3V или 5V. Через пассивный переходник (50 на 68) вставляются в разъём PC Card или подключаются к обычному порту ATA. Может работать в режимах карт памяти, карт ввода-вывода (ethernet, модем, GPS) или ATA (режим PIO2 до 8 МБ/сек). Предусматривается "горячее" подключение (контакты шины наличия карты короче остальных). Самые ёмкие, дешёвые и быстрые, но 50-штырьковый разъём его погубит (лучше бы сделали штырьки на карточках). CF II (CF 2.0, CF+) предусматривает переход от FAT16 (до 2 ГБ) к FAT32 (до 137 ГБ) и режим PIO4 до 16.7 MB/s и DMA 33. CF 3 - режим ATA UltraDMA до 66 МБ/сек. CF 4 - режим UDMA 133. CF 5 - до 128 ПБ (адресация LBA48). CF 6 - скорость до 166 МБ/сек, команда TRIM. CFast - переход на интерфейс SATA 2, физически несовместим ни с CF, ни с SATA (при этом число пинов шины питания увеличено!). Например, при вставке CF в считыватель на моём ноутбуке он выглядит как PC Card (PCMCIA) в режиме ATA:

kernel: pccard: PCMCIA card inserted into slot 0
kernel: cs: memory probe 0xe0200000-0xe02fffff: excluding 0xe0200000-0xe020ffff
kernel: pcmcia: registering new device pcmcia0.0
kernel: hde: TRANSCEND, CFA DISK drive
kernel: ide2 at 0x3100-0x3107,0x310e on irq 3
kernel: hde: max request size: 128KiB
kernel: hde: 2030112 sectors (1039 MB) w/1KiB Cache, CHS=2014/16/63
kernel:  hde: hde1
kernel: ide-cs: hde: Vcc = 3.3, Vpp = 0.0

SmartMedia Card (SMC). Длина - 45 мм, ширина - 37 мм, высота - 0.76 мм. 22 плоских контакта. Не имеют встроенного контроллера. Питание - 3.3V или 5V (несовместимы между собой). Шина - 8 бит. Умер, а о покойниках либо хорошо, либо ничего.

MultiMedia Card (MMC). Длина - 32 мм, ширина - 24 мм, высота - 1.4 мм. 7 плоских контактов. Шина данных - 2 бита. Первоначальный разработчик - SanDisk, Siemens и Infineon, затем крупные изготовители электроники "ответвили" от неё Secure Digital и теперь продвижением занимается MMCA (MMC Association) или всё же Samsung?. Во всяком случае, платить за лицензии некому. MMC 3.0 (скорость передачи данных - до 20 Мб/сек, объём - до 128 МБ, с нарушением совместимости - до 1 ГБ). Форм-фактор RS-MMC (Reduced Size: длина - 18 мм, ширина - 24 мм, высота - 1.4 мм; для установки требуется даже не пассивный, а просто механический адаптер). MMCplus 4 (7 плоских контактов как у MMC, 2 дополнительных контакта как у SD, 5 контактов во втором ряду между передними; частота шины - 20 MHz, 26 MHz, 52 MHz; от 1 до 8 линий данных; скорость передачи данных - до 52 МБ/сек; опциональная поддержка напряжения питания 1.65-1.95V). MMCmobile 4 (форм-фактор RS-MMC; длина - 24 мм, ширина - 18 мм, высота - 1.4 мм, напряжение питания - 2.7-3.6V или 1.65-1.95V, совместима с MMC при использовании пассивного адаптера). MMCmicro (длина - 12 мм, ширина - 14 мм, высота - 1.1 мм, напряжение питания - 2.7-3.6V или 1.65-1.95V, совместима с MMC при использовании пассивного адаптера; только 4 линии данных).

Secure Digital (SD). Длина - 32 мм, ширина - 24 мм, высота - 2.1 мм. 9 плоских контактов (7 как у MMC и 2 дополнительных по бокам). Шина данных - 4 бита, частота - до 25 МГц, скорость передачи - до 100 Мбит/сек (реально до 10 МБ/сек). Карту MMC можно вставить в слот SD и использовать (обычно в режиме MMC 3.0). Кроме удвоения ширины шины данных и увеличения толщины карты относительно стандартной MMC спецификация описывает (точнее скрывает ;) средства контроля за распространением данных CPRM и SDMI (изготовители устройств почему-то эту часть стандарта не используют, даже авторы ;). Распространитель - SDA (Secure Digital Association). В частности, в неё входят Panasonic и Toshiba, так что изготавливаемые ими устройства поддерживают именно этот тип карт. Предусматривается переключатель защиты записи, "горячее" подключение (до 10 тысяч раз). Занимает 3/4 рынка (2008). Лицензия стоит дорого, поэтому карточки значительно дороже, чем MMC (после появления MMCplus 4 цены на SD подозрительно снизились - SDA открыло спецификации). На область шифрования тратится значительная часть ёмкости карты, поэтому маркированная как 2GB карта выглядит "на" 1963 доступных MB (хотя рапортует о 2058 MB, правда десятичных) или 1910 MB (рапортует о 2002 десятичных МБ). Файловая система - ISO 9293 (FAT?), дополненная прикладным уровнем (SD-Picture, SD-Video и др.). Компьютером SD-карта воспринимается как блочное устройство, которое можно разбитить на разделы и отформатировать их под любую файловую систему. Интерфейс между картой и контроллером - SPI (Serial Peripheral Interface Bus, 3.3 В, 7.2 Mb/s) или однобитный SD (отдельные каналы команд и данных, до 25 МГц) или 4-битный SD. SD 1.1 (High Speed - до 50 МГц, скорость передачи данных - до 20 МБ/сек). Адресуется каждый байт, ширина адреса - 32 бит, т.е. максимальный физический объём - 4 ГБ, FAT16 (или sign int) ограничивает нас двумя гигбайтами. SDHC (SD 2.0) - увеличение ёмкости; адресация секторами (по 512 байт - 2 ТБ); переход от FAT16 к FAT32 (до 32 ГБ официально, размер искусственно урезается до 2^26 секторов и взводится флажок в поле, где раньше обязан быть нуль). Протокол UHS-I (Ultra High Speed, SD 3.0) - до 104 МБ/сек (карты и устройства совместимы с 4-битным SD), UHS-II (SD 4.0) - до 312 МБ/сек. SDXC (SD 3.0) - объём официально увеличен до 2 ТБ с переходом на файловую систему exFAT. По слухам, карты SDXC работают в SDHC картоводах. Введены официальные рейтинги минимальной установившейся скорости записи на фрагментированной (?) файловой системе (заявляются изготовителем и не требуют подтверждения): Class 2 (2МБ/сек), Class 4 (4МБ/сек), Class 6 (6МБ/сек) и Class 10. Неофициально также маркируются максимальной скоростью чтения в единицах 150 KB/s (тяжёлое наследие CD-ROM), Transcend и Kingston обещали маркировать скоростью записи. UHS Speed class 1 (?, на официальном сайте SDA нет никаких цифр, кроме булшита маркетологов про "выше, дальше и юыстрее"). miniSD (длина - 21.5 мм, ширина - 20 мм, высота (возвращаемся к истокам (MMC) ;) - 1.4 мм, совместима с SD при использовании пассивного адаптера). microSD (ранее назывался TransFlash или T-FLash (T-Mobile подала в суд), длина - 15 мм, ширина - 11 мм, высота - 1 мм, совместима с SD при использовании пассивного адаптера). Карты SD предназначены для использования в ЦФА, соответственно их характеристики оптимизируются по цене и минимально необходимой производительности потоковой записи; их производительность при случайной записи блоками по 4KB ничтожна (2 IOPS). Например, KINGMAX SDHC Class 10 32GB через встроенный считыватель в мониторе Dell 3008WFP:

kernel: scsi 14:0:0:1: Direct-Access     Generic  Flash HS-COMBO   5.39 PQ: 0 ANSI: 0
kernel: sd 14:0:0:1: [sdi] Attached SCSI removable disk
kernel: sd 14:0:0:1: [sdi] 62683136 512-byte logical blocks: (32.0 GB/29.8 GiB)
kernel: sd 14:0:0:1: [sdi] Assuming drive cache: write through
kernel:   sdi: sdi1

lsusb -v

Bus 002 Device 007: ID 0424:2228 Standard Microsystems Corp. 9-in-2 Card Reader
  idVendor           0x0424 Standard Microsystems Corp.
  idProduct          0x2228 9-in-2 Card Reader
  bcdDevice            5.39
  iManufacturer           1 Generic
  iProduct                2 Flash
  iSerial                 3 100602200123
  Configuration Descriptor:
    MaxPower              100mA
    Interface Descriptor:
      bInterfaceClass         8 Mass Storage
      bInterfaceSubClass      6 SCSI
      bInterfaceProtocol     80 Bulk (Zip)

fdisk -lu /dev/sdi

Disk /dev/sdi: 32.1 GB, 32093765632 bytes
216 heads, 26 sectors/track, 11161 cylinders, total 62683136 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sdi1            8192    62683135    31337472    c  W95 FAT32 (LBA)

/sbin/dosfsck -vn /dev/sdi1

dosfsck 3.0.9 (31 Jan 2010)
dosfsck 3.0.9, 31 Jan 2010, FAT32, LFN
Checking we can access the last sector of the filesystem
Boot sector contents:
System ID "        "
Media byte 0xf8 (hard disk)
       512 bytes per logical sector
     32768 bytes per cluster
      1086 reserved sectors
First FAT starts at byte 556032 (sector 1086)
         2 FATs, 32 bit entries
   3916288 bytes per FAT (= 7649 sectors)
Root directory start at cluster 2 (arbitrary size)
Data area starts at byte 8388608 (sector 16384)
    979040 data clusters (32081182720 bytes)
63 sectors/track, 255 heads
      8192 hidden sectors
  62674944 sectors total

palimpsest
   чтение - 10 MB/s
   среднее время доступа - 2 ms

bonnie++
Version  1.03       ------Sequential Output------ --Sequential Input- --Random-
                    -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
homebase.hom 20000M            7071   1  3682   1            8936   1  17.4   0

Тот же KINGMAX SDHC Class 10 32GB через встроенный считыватель Acer Iconia Tab W500: palimpsest чтение - 17.5 MB/s среднее время доступа - 2.2 ms bonnie++ Version 1.96 ------Sequential Output------ --Sequential Input- --Random- Concurrency 1 -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks-- Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP iconia.homene 4000M 10359 6 5807 6 15786 6 25.0 2 Latency 1239ms 859ms 386ms 110ms

MemoryStick. Длина - 50 мм, ширина - 21.5 мм, высота - 2.8 мм. Напряжение питания - 2.7-3.6 вольт. Максимальная скорость записи - 1.8 МБ/сек, чтения - 2.45 МБ/сек. Максимальный объём - 128 МБ (двухсторонние карты для удвоения этого предела ;). Распространитель - Sony. Изготавливаемые ею устройства поддерживают именно этот тип карт (остальные типы карт поддерживаются, если вообще поддерживаются, только "для галочки"). Никакому другому производителю он не нужен. В общем, внутрифирменный стандарт - Sony очень не любит общепризнанные стандарты, предпочитая навязывать плохие, но свои. Со временем компания SanDisk также стала производить Memory Stick и сейчас эти карты занимают около 20% рынка. Magic Gate - вариант MS с защитой от несанкционированного копирования. Memory Stick Duo - уменьшенный вариант (длина - 31 мм, ширина - 20 мм, высота - 1.6 мм, совместима с MS при использовании пассивного адаптера). Memory Stick Pro - увеличение максимального объёма (до 32 ГБ) и скорости (до 10 МБ/сек). Возможны сочетания - Memory Stick Pro Duo Magic Gate. Memory Stick Micro (M2) - ещё меньший физический формат (15 х 12.5 х 1.2) и возможность работы от источника с напряжением 1.7-1.9 вольт.

xD-Picture Card. Распространитель - Olypmus, Fujufilm. Некоторые изготовители устройств скромно именуют их как "X Card", дабы не платить за лицензию. Не имеют встроенного контроллера (через пассивный переходник совместими с SMC), странно, что на цену это не повлияло. Малый объём (до 2GB), малая скорость, проблемы совместимости, большая стоимость лицензии. Глядя на нынешние проблемы владельцев фотокамер, использующих исчезнувшие SMC (предшественник xD), поневоле задумываешься о будущих проблемах владельцев Olypmus и Fujufilm. Type M - уменьшенный размер.

SuperSD (SanDisk) - гибрид MMCplus 4.0 и SD 1.1 (размер - 32x24x1.4 мм).

C-Flash (Pretec) - совместимость с MMCplus 4.0, SD, MemoryStick и USB 2.0 (размер - 12x17x1 мм).

SSD.

Флэш-накопители. Интерфейс USB 2.0 (High Speed) или USB 3.0 (Super Speed). Протокол - UMS (USB Mass Storage device class), драйвер которого входит в состав ОС, или USB Attached SCSI (UAS). Например, Transcend JetFlash 2A 1GB:

Fedora Core 3, Pentium 4, 2400MHz, 2048MB, i845(i865)

kernel: usb 1-2: new high speed USB device using ehci_hcd and address 7
kernel: scsi2 : SCSI emulation for USB Mass Storage devices
kernel: usb-storage: device found at 7
kernel: usb-storage: waiting for device to settle before scanning
kernel:   Vendor: JetFlash  Model: TS1GJF2A          Rev: 1.00
kernel:   Type:   Direct-Access                      ANSI SCSI revision: 02
kernel: SCSI device sda: 2007000 512-byte hdwr sectors (1028 MB)
kernel: sda: Write Protect is off
kernel: sda: assuming drive cache: write through
kernel:  sda: sda1
kernel: Attached scsi removable disk sda at scsi2, channel 0, id 0, lun 0
kernel: sda: Mode Sense: 0b 00 00 08
kernel: usb-storage: device scan complete
scsi.agent[17428]: disk at /devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2:1.0/host2/target2:0:0/2:0:0:0
fstab-sync[17479]: added mount point /media/usbdisk for /dev/sda1
kernel: FAT: utf8 is not a recommended IO charset for FAT filesystems, filesystem will be case sensitive!
kernel: SELinux: initialized (dev sda1, type vfat), uses genfs_contexts

hdparm /dev/sda

/dev/sda:
 HDIO_GET_MULTCOUNT failed: Invalid argument
 readonly     =  0 (off)
 readahead    = 256 (on)
 geometry     = 1011/32/62, sectors = 1027584000, start = 0

fdisk -l /dev/sda

Disk /dev/sda: 1027 MB, 1027584000 bytes
64 heads, 32 sectors/track, 979 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1         980     1002992    6  FAT16
Partition 1 has different physical/logical endings:
     phys=(845, 63, 32) logical=(979, 31, 32)

bonnie:
              -------Sequential Output-------- ---Sequential Input-- --Random--
              -Per Char- --Block--- -Rewrite-- -Per Char- --Block--- --Seeks---
Machine    MB K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU  /sec %CPU
CeleronM  900  3637 20.2  2928  2.0  2175  2.4  8784 42.0  8828  4.2 135.1  5.2

Fedora Core 5, Celeron 1.4, 256MB, i855M

kernel: usb 4-5: new high speed USB device using ehci_hcd and address 4
kernel: usb 4-5: configuration #1 chosen from 1 choice
kernel: scsi1 : SCSI emulation for USB Mass Storage devices
kernel:   Vendor: JetFlash  Model: TS1GJF2A          Rev: 1.00
kernel:   Type:   Direct-Access                      ANSI SCSI revision: 02
kernel: SCSI device sda: 2007000 512-byte hdwr sectors (1028 MB)
kernel: sda: Write Protect is off
kernel: sda: assuming drive cache: write through
kernel:  sda: sda1
kernel: sd 1:0:0:0: Attached scsi removable disk sda
kernel: sd 1:0:0:0: Attached scsi generic sg0 type 0
kernel: SELinux: initialized (dev sda1, type vfat), uses genfs_contexts

lsusb -v

Bus 004 Device 004: ID 0c76:0005 JMTek, LLC. USBdisk
  idVendor           0x0c76 JMTek, LLC.
  idProduct          0x0005 USBdisk
  bcdDevice            1.00
  iManufacturer           1 JetFlash
  iProduct                2 TS1GJF2A
  Configuration Descriptor:
    MaxPower              100mA
    Interface Descriptor:
      bInterfaceClass         8 Mass Storage
      bInterfaceSubClass      6 SCSI
      bInterfaceProtocol     80 Bulk (Zip)

bonnie++:
Version  1.03       ------Sequential Output------ --Sequential Input- --Random-
                    -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
notebook       925M  7145  26  8318   3  3097   1  7934  27  8906   2 229.7   0

Однако! При замене ОС с FC3 на FC5 скорость записи увеличилась более чем вдвое на том же самом компьютере!

Patriot xporter xt:

Fedora Core 6, Pentium 4, 2600MHz, 1536MB, i865

kernel: usb 5-7: new high speed USB device using ehci_hcd and address 16
kernel: usb 5-7: configuration #1 chosen from 1 choice
kernel: scsi10 : SCSI emulation for USB Mass Storage devices
kernel: scsi 10:0:0:0: Direct-Access              USB DISK 2.0     PMAP PQ: 0 ANSI: 0 CCS
kernel: SCSI device sdd: 8060928 512-byte hdwr sectors (4127 MB)
kernel: sdd: Write Protect is off
kernel: sdd: assuming drive cache: write through
kernel:  sdd: sdd1
kernel: sd 10:0:0:0: Attached scsi removable disk sdd
kernel: sd 10:0:0:0: Attached scsi generic sg3 type 0
kernel: SELinux: initialized (dev sdd1, type vfat), uses genfs_contexts

lsusb -v

Bus 005 Device 016: ID 13fe:1d00
  bcdUSB               2.00
  idVendor           0x13fe 
  idProduct          0x1d00
  bcdDevice            1.00
  iManufacturer           1         
  iProduct                2 USB DISK 2.0    
  iSerial                 3 07740CA82719
  Configuration Descriptor:
    MaxPower              200mA
    Interface Descriptor:
      bInterfaceClass         8 Mass Storage
      bInterfaceSubClass      6 SCSI
      bInterfaceProtocol     80 Bulk (Zip)

bonnie++:
Version  1.03       ------Sequential Output------ --Sequential Input- --Random-
                    -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
patriot       3900M 12311  35 10783   5  8871   5 23832  60 26855   5 557.5   3

Corsair Survivor GTR 32GB (Fedora 14, Intel Q6600, Intel P35, 8GB DDR2):

kernel: usb 1-1: new high speed USB device using ehci_hcd and address 4
kernel: usb 1-1: New USB device found, idVendor=1b1c, idProduct=1a95
kernel: usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
kernel: usb 1-1: Product: Survivor GTR
kernel: usb 1-1: Manufacturer: Corsair
kernel: usb 1-1: SerialNumber: 1101041000000000
kernel: scsi16 : usb-storage 1-1:1.0
mtp-probe: checking bus 1, device 4: "/sys/devices/pci0000:00/0000:00:1a.7/usb1/1-1"
mtp-probe: bus: 1, device: 4 was not an MTP device
kernel: scsi 16:0:0:0: Direct-Access     Corsair  Survivor GTR     0.00 PQ: 0 ANSI: 2
kernel: sd 16:0:0:0: Attached scsi generic sg12 type 0
kernel: sd 16:0:0:0: [sdl] 63438848 512-byte logical blocks: (32.4 GB/30.2 GiB)
kernel: sd 16:0:0:0: [sdl] Write Protect is off
kernel: sd 16:0:0:0: [sdl] Assuming drive cache: write through
kernel:  sdl: sdl1
kernel: sd 16:0:0:0: [sdl] Attached SCSI removable disk

lsusb -v

Bus 001 Device 004: ID 1b1c:1a95  
  bcdUSB               2.00
  idVendor           0x1b1c 
  idProduct          0x1a95 
  bcdDevice            1.00
  iManufacturer           1 Corsair
  iProduct                2 Survivor GTR
  iSerial                 3 1101041000000000
  Configuration Descriptor:
    MaxPower              480mA
    Interface Descriptor:
      bInterfaceClass         8 Mass Storage
      bInterfaceSubClass      6 SCSI
      bInterfaceProtocol     80 Bulk (Zip)

fdisk -lu /dev/sdl

Disk /dev/sdl: 32.5 GB, 32480690176 bytes
255 heads, 63 sectors/track, 3948 cylinders, total 63438848 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x04dd5721

   Device Boot      Start         End      Blocks   Id  System
/dev/sdl1            2048    63438847    31718400    c  W95 FAT32 (LBA)

/sbin/dosfsck -vn /dev/sdl1

dosfsck 3.0.9, 31 Jan 2010, FAT32, LFN
Checking we can access the last sector of the filesystem
Boot sector contents:
System ID "MSWIN4.1"
Media byte 0xf8 (hard disk)
       512 bytes per logical sector
     65536 bytes per cluster
       448 reserved sectors
First FAT starts at byte 229376 (sector 448)
         2 FATs, 32 bit entries
   1982464 bytes per FAT (= 3872 sectors)
Root directory start at cluster 2 (arbitrary size)
Data area starts at byte 4194304 (sector 8192)
    495536 data clusters (32475447296 bytes)
63 sectors/track, 255 heads
      2048 hidden sectors
  63436800 sectors total

palimpsest
  средняя скорость чтения - 34.3 MB/s
  среднее время доступа - 1 ms

bonnie++ -s 20000
Version  1.03       ------Sequential Output------ --Sequential Input- --Random-
                    -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
homebase.hom 20000M           21709   4 10448   3           33779   3  18.0   0

bonnie++ -s 4000 -r 2000
Version  1.96       ------Sequential Output------ --Sequential Input- --Random-
Concurrency   1     -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
homebase.home 4000M           16208   3 10834   3           46258   3  38.2   1
Latency                       14326ms     770ms             11878us    2680ms

И для сравнения жёсткий диск Maxtor OneTouch II, ATA 300 GB, USB 2.0 (High Speed):

Fedora Core 3, Pentium 4, 2400MHz, 512MB, i845

T:  Bus=01 Lev=01 Prnt=01 Port=05 Cnt=01 Dev#=  6 Spd=480 MxCh= 0
D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=0d49 ProdID=7110 Rev= 2.03
S:  Manufacturer=Maxtor
S:  Product=OneTouch II
S:  SerialNumber=L60RT6HH
C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr=  0mA
I:  If#= 0 Alt= 0 #EPs= 3 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=88(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=81(I) Atr=03(Int.) MxPS=   2 Ivl=32ms

ext3fs mounted with data=ordered

              -------Sequential Output-------- ---Sequential Input-- --Random--
              -Per Char- --Block--- -Rewrite-- -Per Char- --Block--- --Seeks---
Machine    MB K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU  /sec %CPU
MaxtorOn 2000 20795 92.0 26729  8.5 12598  3.9 19660 78.5 33161  4.3 102.0  0.3

И жёсткий диск Seagate Barracuda 7200.9 ST3300822AS, SATA 300 GB, через AgeStar CFB3A1, интерфейс USB 2.0 (PL3507, Jmicron JM20330)

Fedora Core 3, Pentium 4, 2520MHz, 2048MB, i865

T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 13 Spd=480 MxCh= 0
D:  Ver= 2.00 Cls=00(&g;ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=067b ProdID=3507 Rev= 1.00
S:  Manufacturer=Prolific Technology Inc.
S:  Product=Mass Storage Device
S:  SerialNumber=0
C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr=100mA
I:  If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms

ext3fs, bonnie++

Version  1.03       ------Sequential Output------ --Sequential Input- --Random-
                    -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
homebase.home 5000M 22471  63 25983   8 10742   3 26868  72 32421   4 117.3   0

И жёсткий диск Seagate Barracuda 7200.9 ST3300822AS, SATA 300 GB, через AgeStar CFB3A1, интерфейс IEEE-1394 (PL3507, Jmicron JM20330)

Fedora Core 3, Pentium 4, 2520MHz, 2048MB, i865, Tekram TR-1394

kernel: ieee1394: Error parsing configrom for node 0-00:1023
kernel: ieee1394: Node changed: 0-00:1023 -> 0-01:1023
kernel: ieee1394: Node added: ID:BUS[0-00:1023]  GUID[0050770e00071002]
kernel: sbp2: $Rev: 1219 $ Ben Collins 
kernel: scsi7 : SCSI emulation for IEEE-1394 SBP-2 Devices
kernel: ieee1394: sbp2: Logged into SBP-2 device
kernel: ieee1394: Node 0-00:1023: Max speed [S400] - Max payload [2048]
kernel:   Vendor: ST330082  Model: 2AS               Rev:
kernel:   Type:   Direct-Access                      ANSI SCSI revision: 06
kernel: SCSI device sdb: 586072368 512-byte hdwr sectors (300069 MB)
kernel: SCSI device sdb: drive cache: write through
kernel:  sdb: sdb1
kernel: Attached scsi disk sdb at scsi7, channel 0, id 0, lun 0
scsi.agent[17266]: disk at /devices/pci0000:00/0000:00:1e.0/0000:02:0c.0/fw-host0/0050770e00071002/0050770e00071002-0/host7/target7:0:0/7:0:0:0

ext3fs, bonnie++

медленно и зациклился в тесте позиционирования

Внешний (USB 2.0) читатель карт Apacer Mega Steno AM230 (23-in-1)

Заявлена поддержка устройств: CF I/II (включая Microdrive), MMC 3, MMCplus 4, RS-MMC, MMCmobile 4, SD 1.0/1.1, miniSD 1.0/1.1 (вставлять контактами вверх), microSD (с переходником), TransFlash (с переходником), SmartMedia, MemoryStick [PRO [Duo]]. В комплект входит диск с драйверами и документацией (имя каталога: anual ;). Один светодиод (загорается при вставке карты, мигает при передаче). Можно копировать с одной карточки на другую. Начиная с некоторого времени поддерживает SDHC (подозреваю, что под "Rev: 9321" понимается Genesis Logic GL819 с прошивкой 9321, т.е. без поддержки SDHC).

При подключении пустого устройства сразу появляются 4 SCSI диска:

в FC3 (в данном случае: sdb - CF, sdd - SD, sde - MemoryStick)

kernel: usb 1-6: new high speed USB device using ehci_hcd and address 12
kernel: scsi8 : SCSI emulation for USB Mass Storage devices
kernel: usb-storage: device found at 12
kernel: usb-storage: waiting for device to settle before scanning
kernel:   Vendor: Generic   Model: STORAGE DEVICE    Rev: 9321
kernel:   Type:   Direct-Access                      ANSI SCSI revision: 00
kernel: Attached scsi removable disk sdb at scsi8, channel 0, id 0, lun 0
kernel:   Vendor: Generic   Model: STORAGE DEVICE    Rev: 9321
kernel:   Type:   Direct-Access                      ANSI SCSI revision: 00
kernel: Attached scsi removable disk sdc at scsi8, channel 0, id 0, lun 1
kernel:   Vendor: Generic   Model: STORAGE DEVICE    Rev: 9321
kernel:   Type:   Direct-Access                      ANSI SCSI revision: 00
kernel: Attached scsi removable disk sdd at scsi8, channel 0, id 0, lun 2
kernel:   Vendor: Generic   Model: STORAGE DEVICE    Rev: 9321
kernel:   Type:   Direct-Access                      ANSI SCSI revision: 00
kernel: Attached scsi removable disk sde at scsi8, channel 0, id 0, lun 3
kernel: usb-storage: device scan complete

scsi.agent[1693]: disk at /devices/pci0000:00/0000:00:1d.7/usb1/1-6/1-6:1.0/host8/target8:0:0/8:0:0:0
scsi.agent[1772]: disk at /devices/pci0000:00/0000:00:1d.7/usb1/1-6/1-6:1.0/host8/target8:0:0/8:0:0:3
scsi.agent[1736]: disk at /devices/pci0000:00/0000:00:1d.7/usb1/1-6/1-6:1.0/host8/target8:0:0/8:0:0:2
scsi.agent[1707]: disk at /devices/pci0000:00/0000:00:1d.7/usb1/1-6/1-6:1.0/host8/target8:0:0/8:0:0:1

в FC5 (в данном случае: sda - CF, sdb - SMC, sdc - SD, sdd - MemoryStick)

kernel: usb 4-5: new high speed USB device using ehci_hcd and address 3
kernel: usb 4-5: configuration #1 chosen from 1 choice
kernel: SCSI subsystem initialized
kernel: Initializing USB Mass Storage driver...
kernel: scsi0 : SCSI emulation for USB Mass Storage devices
kernel: usbcore: registered new driver usb-storage
kernel: USB Mass Storage support registered.
kernel:   Vendor: Generic   Model: STORAGE DEVICE    Rev: 9321
kernel:   Type:   Direct-Access                      ANSI SCSI revision: 00
kernel:   Vendor: Generic   Model: STORAGE DEVICE    Rev: 9321
kernel:   Type:   Direct-Access                      ANSI SCSI revision: 00
kernel:   Vendor: Generic   Model: STORAGE DEVICE    Rev: 9321
kernel:   Type:   Direct-Access                      ANSI SCSI revision: 00
kernel:   Vendor: Generic   Model: STORAGE DEVICE    Rev: 9321
kernel:   Type:   Direct-Access                      ANSI SCSI revision: 00

kernel:  0:0:0:0: Attached scsi generic sg0 type 0
kernel:  0:0:0:1: Attached scsi generic sg1 type 0
kernel:  0:0:0:2: Attached scsi generic sg2 type 0
kernel:  0:0:0:3: Attached scsi generic sg3 type 0

kernel: sd 0:0:0:0: Attached scsi removable disk sda
kernel: sd 0:0:0:1: Attached scsi removable disk sdb
kernel: sd 0:0:0:2: Attached scsi removable disk sdc
kernel: sd 0:0:0:3: Attached scsi removable disk sdd

lsusb -l:

Bus 007 Device 027: ID 05e3:070e Genesys Logic, Inc.

При этом в FC5 файловая система не монтируется при вставленной карте, пока пользователь не залогинится в Gnome. Аплет монтирования дисков сразу добавляет иконки 4 отключаемых дисков на панель (каждый из них называется "Generic STORAGE DEVICE" и выглядит одинаково, так что отличить их можно только по порядку букв дисков - см. выше). Наутилус добавляет иконки только смонтированных диска (вставленных карт) на рабочий стол. Здесь их можно отличить по объёму, но нельзя по порядку или имени.

При тестировании на основном компьютере (i845, FC3) обнаружился неприятный глюк: при записи больших файлов (больше 100 МБ) скорость записи падает до 1 МБ/секунду, при этом компьютер тормозит при любых обращениях к любым дискам (для SD 150x начинает проявляться позже и средняя скорость остаётся выше - 3 МБ/секунду). Поэтому тестирование скорости bonnie++ делал на ноутбуке (i855, FC5).

При вставке карточки (CF) она обнаруживается и монтирует раздел на первом из эмулируемых SCSI дисков (/dev/sdb1) на описанный у меня в /etc/fstab каталог (FC3):

kernel: SCSI device sdb: 2030112 512-byte hdwr sectors (1039 MB)
kernel: sdb: Write Protect is off
kernel: sdb: assuming drive cache: write through
kernel:  sdb: sdb1
kernel: SELinux: initialized (dev sdb1, type vfat), uses genfs_contexts

Вставленная карточка CF Transcend 80x (в отличие от остальных карт монтируется в каталог с выделенным именем /media/TRANSCEND) читается со скоростью 14.5 МБ/секунду, записывается (монтировать обязательно с async) со скоростью 10 МБ/секунду.

Fedora Core 5, Celeron 1.4, 256MB, i855M

kernel: SCSI device sda: 2030112 512-byte hdwr sectors (1039 MB)
kernel: sda: Write Protect is off
kernel: sda: assuming drive cache: write through
kernel:  sda: sda1
kernel: SELinux: initialized (dev sda1, type vfat), uses genfs_contexts

Version  1.03       ------Sequential Output------ --Sequential Input- --Random-
                    -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
notebook       910M  7256  27 12490   5  3050   1  8815  30 14765   3 762.0   2

Вставленная карточка SD/2GB Kingston читается со скоростью 12.6 МБ/секунду, записывается (монтировать обязательно с async) со скоростью 1.8 МБ/секунду. bonnie++:

Fedora Core 5, Celeron 1.4, 256MB, i855M

kernel: sdc: assuming drive cache: write through
kernel: SCSI device sdc: 3910656 512-byte hdwr sectors (2002 MB)
kernel: sdc: Write Protect is off
kernel: sdc: assuming drive cache: write through
kernel:  sdc: sdc1
kernel: SELinux: initialized (dev sdc1, type vfat), uses genfs_contexts

Version  1.03       ------Sequential Output------ --Sequential Input- --Random-
                    -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
notebook      1850M  1518   5  1590   0   501   0  5084  18 12615   4 787.3   2

Вставленная карточка SD/2GB Transcend 150x (2.058 миллиарда байт вместо ожидавшихся 2.147) читается со скоростью 15 МБ/секунду, записывается (монтировать обязательно с async) со скоростью 12.5 МБ/секунду. Результаты bonnie:

bonnie        -------Sequential Output-------- ---Sequential Input-- --Random--
              -Per Char- --Block--- -Rewrite-- -Per Char- --Block--- --Seeks---
Machine    MB K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU  /sec %CPU
         1000 10363 45.6  9206  3.1  5598  3.3  6483 28.0 14545  5.8 1474.8  4.1

Fedora Core 5, Celeron 1.4, 256MB, i855M

kernel: SCSI device sdc: 4019200 512-byte hdwr sectors (2058 MB)
kernel: sdc: Write Protect is off
kernel: sdc: assuming drive cache: write through
kernel:  sdc: sdc1
kernel: SELinux: initialized (dev sdc1, type vfat), uses genfs_contexts

Version  1.03       ------Sequential Output------ --Sequential Input- --Random-
                    -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
notebook      1960M  9488  36 13335   6  4339   2 12873  53 15633   3 699.4   2

Вставленная карточка SanDisk Memory Stick PRO Duo 64 MB читается со скоростью 6 МБ/секунду, записывается (монтировать обязательно с async) со скоростью 1.6 МБ/секунду, bonnie++ (-s 50 -n 0 -r 0) показывает странное (карточка маловата и помещается в кеш, но при попытке загрузиться с mem=96m система впадает в трешинг):

Fedora Core 5, Celeron 1.4, 128MB, i855M

kernel: SCSI device sdd: 124416 512-byte hdwr sectors (64 MB)
kernel: sdd: Write Protect is off
kernel: sdd: assuming drive cache: write through
kernel:  sdd: sdd1
kernel: SELinux: initialized (dev sdd1, type vfat), uses genfs_contexts

Version  1.03       ------Sequential Output------ --Sequential Input- --Random-
                    -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
notebook        52M  2207   8 11824   4  2108   0  3303  13  2319   0  1911   3

Внешний (USB 2.0) читатель карт EURODATA (19-in-1, www.eurodata.ru)

Заявлена поддержка устройств (где они такие названия берут?): CF I/II (включая Microdrive, вставлять вверх ногами), xD, MMC, MMC II, HS-MMC, SD, SDC, SD Ultra, SmartMedia, MemoryStick [PRO [Duo]]. В комплект входит минидиск (имя тома на китайском, странно для eurodata.ru, хотя в обзоре на IXBT это устройство проходимо под маркой "no name" ;) с одним файлом (Driver.exe) - лаконичные люди. Зелёный светодиод загорается при подключении к компьютеру, красный при вставке карты (мигает при передаче). Можно копировать с одной карточки на другую.

При подключении устройства опять появляются 4 SCSI диска (но теперь видно кто есть кто, в т.ч. в аплете появляются картинки: sda - SD, sdb - CF, sdc - SM, sdd - MS):

kernel: usb 4-5: new high speed USB device using ehci_hcd and address 5
kernel: usb 4-5: configuration #1 chosen from 1 choice
kernel: scsi2 : SCSI emulation for USB Mass Storage devices
kernel:   Vendor: Generic   Model: USB SD Reader     Rev: 1.00
kernel:   Type:   Direct-Access                      ANSI SCSI revision: 00
kernel: sd 2:0:0:0: Attached scsi removable disk sda
kernel: sd 2:0:0:0: Attached scsi generic sg0 type 0
kernel:   Vendor: Generic   Model: USB CF Reader     Rev: 1.01
kernel:   Type:   Direct-Access                      ANSI SCSI revision: 00
kernel: SCSI device sdb: 2030112 512-byte hdwr sectors (1039 MB)
kernel: sdb: Write Protect is off
kernel: sdb: assuming drive cache: write through
kernel: SCSI device sdb: 2030112 512-byte hdwr sectors (1039 MB)
kernel: sdb: Write Protect is off
kernel: sdb: assuming drive cache: write through
kernel:  sdb: sdb1
kernel: sd 2:0:0:1: Attached scsi removable disk sdb
kernel: sd 2:0:0:1: Attached scsi generic sg1 type 0
kernel:   Vendor: Generic   Model: USB SM Reader     Rev: 1.02
kernel:   Type:   Direct-Access                      ANSI SCSI revision: 00
kernel: sd 2:0:0:2: Attached scsi removable disk sdc
kernel: sd 2:0:0:2: Attached scsi generic sg2 type 0
kernel:   Type:   Direct-Access                      ANSI SCSI revision: 00
kernel: sd 2:0:0:3: Attached scsi removable disk sdd
kernel: sd 2:0:0:3: Attached scsi generic sg3 type 0

Тестирую те же самые карточки (bonnie++, FC5, notebook, i855):

CF Transcend 80x:

Version  1.03       ------Sequential Output------ --Sequential Input- --Random-
                    -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
notebook       910M  3676  13  3722   1  1314   0  2594   9  2769   0 363.7   1

SD/2GB Kingston:

Version  1.03       ------Sequential Output------ --Sequential Input- --Random-
                    -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
notebook      1850M  1759   6  1477   0   998   0  3812  13  4484   1 274.2   0

Переходник CF - PC Card

02:04.1 CardBus bridge: Texas Instruments PCI7420 CardBus Controller
        Subsystem: Wistron Corp. Unknown device 3005

kernel: pccard: PCMCIA card inserted into slot 0
kernel: cs: memory probe 0xe0200000-0xe02fffff: excluding 0xe0200000-0xe020ffff
kernel: pcmcia: registering new device pcmcia0.0
kernel: hde: TRANSCEND, CFA DISK drive
kernel: ide2 at 0x3100-0x3107,0x310e on irq 3
kernel: hde: max request size: 128KiB
kernel: hde: 2030112 sectors (1039 MB) w/1KiB Cache, CHS=2014/16/63
kernel:  hde: hde1
kernel: ide-cs: hde: Vcc = 3.3, Vpp = 0.0

hdparm -i /dev/hde

/dev/hde:

 Model=TRANSCEND, FwRev=20050811, SerialNo=
 Config={ HardSect NotMFM Removeable DTR>10Mbs nonMagnetic }
 RawCHS=2014/16/63, TrkSize=0, SectSize=576, ECCbytes=4
 BuffType=DualPort, BuffSize=1kB, MaxMultSect=1, MultSect=off
 CurCHS=2014/16/63, CurSects=2030112, LBA=yes, LBAsects=2030112
 IORDY=no, tPIO={min:120,w/IORDY:120}
 PIO modes:  pio0 pio1 pio2 pio3 pio4
 AdvancedPM=no

Version  1.03       ------Sequential Output------ --Sequential Input- --Random-
                    -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
notebook       910M  1435   5  1518   0   728   0  1341  11  1481   1 256.4   1

Ссылки

@ Карта сайта News Автора!

Bog BOS: hardware:  Флэш накопители и флэш карты



Copyright © 1996-2024 Sergey E. Bogomolov; www.bog.pp.ru