Dossiê Storage devices – Parte II (Compact Flash)

Continuando a série, Dossiê Storage Devices, vamos falar sobre um outro dispositivo de armazenamento muito utilizado em câmeras, PC’s antigos (MSX, Amiga, etc, …) dispositivos embarcados e em NetBooks de baixo custo, que é o Compact Flash.

História

O Compact Flash é um dispositivo que, inicialmente, foi especificado e desenvolvido pela SanDisk em 1994, porém em 1995 o mesmo passou a ser padronizado por uma associação de empresas internacionais, incluindo a SanDisk, conhecida como The Compact Flash Association.

Detalhes técnicos

Atualmente existem dois tipos de Compact Flash disponíveis no mercado, conforme descrito abaixo.

CF Type I

Esse é o mais comum encontrado no mercado e seu nicho era basicamente restrito a câmeras digitais, porém nos últimos anos sua utilização em outros nichos da área de tecnologia tem se tornado relevante e apesar de existirem alternativas mais cômodas, menores e mais baratas, o CF Type I tem conseguido uma sobrevida devido ao fato de ser uma alternativa confiável aos dispositivos mecânicos como os Hard Disks convencionais (HDD) e ao mesmo tempo barata em relação aos dispositivos de alta capacidade como os Hard Disks baseados em memória flash, ou SSD.

Compact Flash Type I
CF Type I

CF Type II

A principal diferença entre um dispositivo CF I e CF II é que basicamente as CF II suportam mais corrente na interface, segundo o Wikipedia, e talvez esse seja o motivo de se ter discos rigidos mecânicos que consomem mais energia, rodando sob essa interface, como os micro HDD‘s conhecidos por MicroDrives e amplamente utilizados em PDA‘s, como os Palm LifeDrive e dispositivos tocadores de música, como os IPod‘s.

Quando lançados, os MicroDrives tinham em média 4Gb de capacidade de armazenamento,  algo inédito nos dispositivos baseados em memória Flash da época, porém com o aumento da capacidade das memórias Flash nos ultimos anos, o MicroDrive foi facilmente suplantado por outros baseados em memória como os SD Cards (Mini, Micro), Memory Sticks e até mesmo pelo seu irmão mais velho,  o Compact Flash Type I, que hoje já possui capacidade acima de 16Gb, sem contar que todos os dispositivos baseados em Flash são mais baratos, menos frágeis e portanto mais confiáveis do que os  MicroDrives.

Outra diferença é a espessura entre um CF Type I (3.3 mm) e um CF Type II (5 mm).

Compact Flash Type II
CF Type II

Compatibilidade PCMCIA e ATA.

Os cartões Compact Flash são compatíveis eletrica e mecanicamente com o padrão de interface PCMCIA e uma outra vantagem é que todo cartão CF tem embutida uma interface ATA e com um adaptador CF->IDE, desses encontrados no Mercado Livre ou Santa Efigênia, um cartão Compact Flash pode ser utilizado como um Hard Disk.

Adaptador CF/IDE
Adaptador CF/IDE

True-IDE

True-IDE é o modo de operação que os Compact Flash utilizam para se comunicar com a interface IDE, onde alguns dispositivos não suportam esse modo via hardware, existindo a possibilidade de emulação do modo True-IDE via software, que significa menos performance.

O chaveamento entre modo True-IDE e mídia removível é feito através do socket em que o CF está conectado, ou seja, se o Compact Flash está conectado por uma interface IDE, então ele é reconhecido pelo host como um Hard Disk, caso contrário é reconhecido como um mídia removível.

File System

Os Compact Flash podem ser formatados utilizando qualquer tipo de FileSystem, sendo a capacidade do CF o único limitador para a escolha do melhor FileSystem a ser utilizado pelo dispositivo, uma vez que dependendo do FileSystem escolhido a performance de acesso aos dados pode ser comprometida.

Diz a lenda que inicialmente os dispositivos CF trabalhavam com sistemas de arquivos específicos,  tais como Flash File System e JFFS e com isso softwares necessitavam de pilhas de protocolos adicionais para ter acesso a dispositivos Compact Flash.

Ultra DMA (UDMA)

A maioria dos Compact Flash mais modernos são compatíveis com UDMA (pelo menos 33Mb/s) e nesses casos a escolha do adaptador CF/IDE pode interferir no funcionamento do Compact Flash quando ligados a esses dispositivos, uma vez que existem adaptadores sem suporte a DMA, o que termina causando problemas, a maioria deles relacionados a performance.

TIP (REVIEW HOTFIX 01_01_2011):
No princípio os Compact Flash não suportavam operação em modo DMA, porém revisões posteriores adicionaram esse suporte ao padrão.

Lembre-se que ainda existem no mercado, adaptadores que não disponibilizam suporte a DMA, uma vez que nesses adaptadores alguns pinos para suporte a DMA não estão disponíveis. Nesse endereço (http://www.fccps.cz/download/adv/frr/cf.html) , existem informações de como adaptar o seu adaptador para que o mesmo passe a suportar o modo DMA.
Mesmo após essas adaptações, não é garantido que esses adaptadores funcionarão com Compact Flash UDMA.

TIP (REVIEW HOTFIX 01_01_2011):
Geralmente os adaptadores CF/IDE sem suporte a DMA não são construídos com a preocupação de manter uma blindagem entre as trilhas, similar à técnica utilizada nos cabos IDE de 80 vias (http://www.pcguide.com/ref/hdd/if/ide/confCable80-c.html), o que os torna incompatíveis com Compact Flash UDMA.

BENCHMARK (REVIEW HOTFIX 01_01_2011):
Em testes realizados com um Compact Flash Transcend 4Gb 133x UDMA juntamente com adaptadores CF/IDE antigos, sem suporte a UDMA, experimentei instabilidade no I/O e impossibilidade de boot do sistema operacional.

MSX TIP (REVIEW HOTFIX 01_01_2011):
Ao utilizar um adaptador de Compact Flash com caracteríticas como as apresentadas na dica anterior, experimentei instabilidade no uso de uma interface IDE com um Compact Flash UDMA (Transcend 4Gb 133x UDMA) e apesar do mesmo ser reconhecido, particionado e formatado corretamente, o boot do sistema operacional falha e o I/O ao dispositivo fica instável e não confiável (aka perda de dados).
Usuários de outras plataformas considerem essa experiência, caso estejam experimentando instabilidade no uso de Compact Flash com IDE.

CF/IDE - Front (sem suporte a DMA)
CF/IDE - Front (sem suporte a DMA)
CF/IDE - Back (sem suporte a DMA)
CF/IDE - Back (sem suporte a DMA)

Então, na hora de escolher usar um Compact Flash na IDE, tome precauções na escolha tanto do Compact Flash quanto do adaptador CF/IDE, prefira adaptadores com suporte a DMA pela velocidade quando utilizados com Compact Flash UDMA.

TIP (REVIEW HOTFIX 01_01_2011):
Lembre-se da seguinte regra, adaptadores com suporte a DMA funcionam bem com dispositivos Compact Flash que tem ou  não suporte a UDMA, já os adaptadores sem suporte a DMA não funcionam bem com dispositivos Compact Flash com suporte a UDMA. Tudo isso, se os adaptadores respeitarem as regras de blindagem necessárias a dispositivos UDMA.

CF/IDE - Front (com suporte a DMA)
CF/IDE - Front (com suporte a DMA)
CF/IDE - Back (com suporte a DMA)
CF/IDE - Back (com suporte a DMA)

Velocidade

A medida de velocidade dos Compact Flash é a mesma da utilizada nos CDROM’s no famoso modelo ‘n’ X, por exemplo, 8x, 16x, 48x,…,133x, 266x e por aí vai, tudo isso multiplicado pela taxa de transferência máxima baseada nos floppy drives (150Kbps).

SOURCE CODE:
O cálculo da capacidade de transferência é simples e pode ser descrito segundo a fórmula abaixo.

C/C++ Code

/* Floppy drive transfer rate multiplier */
#define __FLOPPY_DRIVE_MULTIPLIER    150
/**
  * Return the Compact Flash device Transfer Rate in Kb/s.
  * @param nCompactFlashSpeed The CF device Speed (eg. 133x,
  * 266x, ...);
  */
int getCompactFlashTransferRate( int nCompactFlashSpeed )  {
  int  nTransferRate = nCompactFlashSpeed * __FLOPPY_DRIVE_MULTIPLIER;
  return nTransferRate;
}

Human code

TransferRate = CompactFlashSpeed * 150

Ex: Para Compact Flash de 266x temos CompactFlashSpeed = 266

TransferRate = 266 * 150
TransferRate = 39900 Kbps ou ~ 40 Mbps

Conclusão

Compact Flash é mais um dos dispositivos de armazenamento dos muitos existentes no mercado e se pensarmos em utiliza-lo como um dispositivo removível através de conectores USB, como os Pendrives, com certeza os Compact Flash estarão em desvantagem devido a seu tamanho físico ser grande demais para os padrões atuais, considerando que estamos na era dos dispositivo Micro (Micro SD, Memory Stick Micro, ….).

Entretanto se consideramos os Compact Flash como hard disks, aí a situação se inverte pois ele se torna um dispositivo extremamente pequeno, fisicamente, em relação a maioria dos HD‘s existentes no mercado atual, além de outras vantagens como custo/benefício e confiabilidade.

Acredito na sobrevida dos CF’s por mais alguns anos, principalmente nesse momento em que vivemos um visível aquecimento do mercado de desenvolvimento de software e hardware embarcado cá em terras tupiniquins.

Por enquanto é só pessoal
Por enquanto é só pessoal

PopolonY2k


Referências

http://www.compactflash.org/

http://www.sandisk.com/

http://www.popolony2k.com.br/?p=49

http://www.fccps.cz/download/adv/frr/cf.html

Print Friendly, PDF & Email

9 thoughts on “Dossiê Storage devices – Parte II (Compact Flash)”

  1. Olha,…. vou falar uma coisa,,, o cara perder um bocado de tempo escrevendo um review desses ‘e uma coisa memor’avel hein!!! PARABÉNS e nao pare viu!!! grande abraço e até o proximo review!

  2. Excelente review!
    Estou ainda aguardando chegar aqui o adaptador SD > CF que te falei para tentar usar os meus vários SD card.

  3. Artigo bem esclarecedor. Parabéns. Também tenho vontade de fazer alguns desses artigos tendo em vista minha experiência com meus hobbies. Sabe como diferenciar um adaptador com suporte a UDMA de outro sem essa função?

    1. Então Jader, se vc der um clique nas fotos do review dos adaptadores com suporte a DMA, vai ver que tanto na frente quanto no verso existe uma inscrição na placa informando as capacidades do adaptador, incluindo o suporte a DMA.
      []’s
      PopolonY2k

  4. Bom, fica uma ideia pra editar o post,
    tive curiosidade, e nao encontrei em lugar nenhum essa informação.

    Quantos Megabytes ou Kilobytes, cabem em uma fita k7 em média???

    Abraço.

    1. Bom considerando que a taxa de transferência das fitas cassetes eram de 1200bps e de 2400bps.

      Calculando para 2400bps temos:

      18Kb por minuto. Considerando uma fita de 60 minutos:

      18Kb/m * 60m = 1.03Mb em 1 hora de fita.

      Para 1200bps teremos a metade disso.

      []’s
      PopolonY2k

Leave a Reply to OlicheskiCancel reply