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

NoWind – Interface USB MSX/PC

Estava eu passeando pela internet em busca de informações sobre como converter e/ou tocar musicas MIDI no MSX, quando me deparei com um novo dispositivo para MSX  bem interessante.

É a NoWind USB interface, que pelo que li no site, é um dispositivo capaz de ligar o MSX ao PC utilizando um slot no MSX que possibilita a conexão com o PC via porta USB.

Pelo que li no site do fabricante, com a interface o MSX passa a ser visto pelo PC como um dispositivo USB comum e a partir daí o PC pode se tornar um HD (caro por sinal) para o MSX, dentre outras coisas.

Algumas características interessantes do produto:

1) Taxa de leitura de dados em aproximadamente 320kB/s utilizando um MSX rodando a 7Mhz.

2) Suporte ao dispositivo pelo MSX-BASIC, através de um novo device denominado NOW:

Exemplos:

save “now:autoexec.bas”

load “now1:test.bas”

open “now3:hello.txt” for ouput as #1)

Infelizmente o device NOW:, até o momento, só suporta operações de I/O sequenciais, ou seja, operações de I/O aleatórias, ainda, não são suportadas.

3) Possui MSXDOS 1 & 2 embutidos na interface.

4) Suporte a FAT 16.

5) Suporte a atualização de firmware.

6) Suporte a Linux, MacOSX e Windows, sendo que no Linux e MacOSX não é necessário instalar nada para ter acesso ao dispositivo, basta plugar, porém no Windows necessita do driver (quem diria!?) que vem com o produto (ufa!).

7) ROM drive. A FlashROM (512Kb) do dispositivo pode ser utilizada para armazenar imagens de disco (.DSK) e no MSX é acessada como um drive comum. Infelizmente até o momento só é suportada imagem de 360Kb 🙁 até mesmo porque a FlashROM só tem 512Kb.

8 ) Suporte a MSX, MSX2, MSX2+ e MSX TurboR

9) Dispositivo AUX: redirecionado para a interface.

Interface USB MSX-PC
Interface USB MSX-PC

Esse último item (9) é tão fantástico, fenomenal, maravilhoso, que chego até a me emocionar. Pelo que li no site a comunicação via AUX: é bi-direcional e com isso podemos utilizar a NoWind como placa de comunicação com o PC e assim podemos utilizar o PC como um Gateway para o mundo externo.

O site do fabricante até dá umas dicas para mapeamento do dispositivo AUX: no Linux (UNIX em geral) e para quem tem traquejo em criar softwares de comunicação utilizando Unix Pipes, isso será uma mão na roda para comunicar o MSX com a internet, por exemplo.

Hummm…….estou pensando seriamente em adquirir uma dessas.

Referência:

http://www.nowind.nl/

PopolonY2k

Dossiê Storage devices – Parte I (Hard disk)

De tempos em tempos, no mundo dos computadores, somos obrigados a comprar as mesmas coisas sempre, algumas vezes porque algo se desgastou e quebrou, outras vezes porque chegou ao limite, outras pelo fato de serem tão obsoletas que não existem mais peças de reposição para elas e outras vezes pelo simples fato de que queremos seguir a modinha.

E é por isso que, ao final dessa série de artigos sobre Storage Devices, espero que você tenha o mínimo de informação para não precisar  ter que seguir a modinha, trocando muitas coisas boas que você tem em casa por alguma outra coisa que você nem sabe o que é, [ECOLOGIC_MODE] contribuindo assim para o consumismo desenfreado que causa destruição de nossos recursos e consequentemente a destruição de nosso planeta. [/ECOLOGIC_MODE]

O objetivo dessa serie é esclarecer sobre alguns dos diversos meios de armazenamento, não removíveis, existentes no mercado e como podemos usufruir até de algumas alternativas removíveis aproveitando ao máximo a relação custo/benefício que alguns desses dispositivos nos proporciona ao utilizarmos os mesmos como um dispositivo não removível.

Hard Disk SATA vs IDE

Houve um tempo que  HD era sinônimo de IDE, depois tivemos a onda dos SATA, SATA II, etc, etc, etc, até o dia que chegaremos no SATA XIXI e por aí vai.

Pois bem, trocamos o IDE pelo SATA por motivos de melhoria na taxa de transferência de dados do padrão SATA, que é extremamente superior ao antigo IDE.

Ou seja, uma melhoria feita na arquitetura eletrônica dos HD’s e que realmente surtiu efeito quase que imediato dada a tamanha superioridade do SATA frente ao IDE. Lembrando que surtiu um efeito quase que imediato pelo fato do SATA 1 ter 150Mb/s contra 133MB/s de uma IDE (Ultra DMA ATA 133), ou seja, pouca diferença para um padrão mais moderno e supostamente muito superior. Posteriormente o SATA II conseguiu chegar a 300Mb/s, consolidando assim o padrão SATA como o padrão dominante nos PC’s.

Segue abaixo um link da Wikipedia com a listagem de largura de banda utilizadas por todos, ou a maioria, dos padrões conhecidos que vão desde  computer buses, placas de rede, storages a periféricos e etc.

http://en.wikipedia.org/wiki/List_of_device_bandwidths

Se você conhece sobre os padrões que estamos falando e sabe como analisar esses números do link acima, vai perceber que em se tratando de arquitetura eletrônica, os SATA’s dão um banho nos IDE’s e até em vários SCSI, esse ultimo também um padrão de conexão de periféricos assim como IDE e SATA, porém o SCSI é mais amplo, podendo conectar outros dispositivos que vão de Impressoras a Scanners, além de HD’s.

Antes dos HD’s…..

Desde os primórdios da micro-informática (década de 70 e 80), o armazenamento de dados é algo crítico e principalmente caro. Crítico devido a falta de confiabilidade dos meios existentes na época e caro….porque ….sim !!!

Um exemplo é o da comunidade de MSX do Brasil que está constantemente em conversa, via listas de discussão, em busca de meios de recuperação de softwares da época, algumas vezes gravados em disquetes de 5/14” e/ou 3/12” e outras vezes gravados em fitas Cassette (K7).

Cassette Tape
Esse era o MP3 e o PenDrive da década de 80.

Muitos desses softwares estão em meios magnéticos cuja vida util é bastante limitada, principalmente em se tratando de coisas antigas como fitas K7. A grande maioria desses meios (K7, disk drives e Hard Disks) dependia de motores, ou seja, peças mecânicas para que a informação chegasse no universo digital de destino, ou simplesmente, computador.

Dispositivos de armazenamento com dependência mecânica tem a característica de ser pouco confiáveis e também mais lentos, principalmente pelo fato ser fortemente dependente de uma peça mecânica (motor) e que limita o aumento da velocidade do dispositivo, independente da parte eletrônica suportar altas taxas de transferência.

Sem contar que se essa peça pifar ou parar de girar na rotação minima aceitável para o dispositivo funcionar, seus dados já eram.

Isso tudo desconsiderando o desgaste do meio magnético envolvido no processo, bem como cabeças de leitura/escrita, ou seja, nossos dados sobreviveram até hoje por milagre.

SSD (Solid State Drive)

Após conviver vários anos com a perda de dados em HD’s magneto-mecânicos, devido a seus defeitos e seu curto tempo de vida útil, eis que surge uma luz no fim do tunel (???) sob o nome de SSD (Solid State Drive), que é basicamente a mesma coisa que tínhamos antes, porém mais confiável e bem mais caro também.

Muito bons....mas ainda vamos descobrir seus defeitos um dia.
SSD ou Solid State Drive

Os HD’s SSD’s são baseados em tecnologia de memória Flash, que não necessita de energia para manter os dados gravados, algo parecido com as memórias Compact Flash.

Apesar de começar a ficar em evidência apenas nos ultimos 6 anos, os HD’s SSD são bem velhinhos, tendo seu desenvolvimento iniciado nos anos 1950, nos EUA, evoluindo nos anos 70 e 80, porém os preços extremamente altos tornaram os SSD’s inacessíveis no mercado de micro computadores na época.

Hoje o preço de um HD SSD ainda é muito alto, porém o número de empresas já investindo no desenvolvimento e fabricação de drives de HD SSD começa a fazer com que esses dispositivos em breve se tornem acessíveis a usuários comuns e quem sabe, aposentem de vez os HDD’s tradicionais.

Para se ter uma idéia, hoje consultando os preços em uma loja da Santa Efigênia (SP) cheguei aos seguintes valores:

  1. HDD 2.5” notebook externo de 1TB (1 TeraByte)  – R$450,00
  2. SSD 64Gb (64 Gigabytes)  – R$550,0

Ou seja, apesar de mais acessíveis, é visível que o custo benefício de um HDD comum é, ainda, infinitamente superior ao dos SSD’s, apesar desse último já estar em um patamar acessível ao usuário comum.

Vantagens do SSD

A principal vantagem de um drive SSD é a velocidade de leitura, que chega a ser muito superior a de um HDD comum, uma vez que se trata de um disco feito apenas de componentes eletrônicos, ou seja, com dependência zero de componentes mecânicos.

Para se ter uma idéia, um drive de SSD, em uma operação de leitura, pode chegar a taxa de 700MB/s.

Realizei o seguinte teste no meu desktop com MotherBoard Intel Atom N270, 1.6Ghz HT e com HDD SATA Samsung 7200 RPM 2.5” (notebook) e sistema operacional Linux Ubuntu 10.04 – Lucid Lynx (64bit) e obtive os seguintes resultados (hdparm via console):

popolony2k@Metallion:~$ sudo hdparm -t /dev/sda

/dev/sda:

Timing buffered disk reads:  198 MB in  3.00 seconds =  65.92 MB/sec

popolony2k@Metallion:~$

Na verdade repeti esse teste diversas vezes e obtive uma pequena oscilação de 65.92~66.68MB/s o suficiente para verificar que a diferença de leitura entre um HD SSD e um HDD mecânico comum é gritante.

A velocidade de escrita de um SSD é de 250MB/s, ou seja, bem maior do que a de leitura de um HDD.

Consumo reduzido de energia. Sem peças mecânicas, sem consumo excessivo de energia.

Pode trabalhar em temperaturas de aprox. 70° C, o que não é possível em um HDD convencional.

São mais resistentes devido a não ter partes mecânicas, que geralmente é a parte mais sensível de um dispositivo desse tipo, isso inclui vibrações que podem fazer com que o HDD comum falhe em sua operação de E/S ou até mesmo ocasionar um dano permanente no dispositivo, o que não ocorre com um SSD.

Resumindo, a parte mecânica é o maior problema de um HDD, tirando ela é só alegria…….pero no mucho.

Desvantagens

Capacidade de armazenamento infinitamente inferior a dos HDD’s comuns. Até hoje, só consegui encontrar SSD’s de 256Gb, enquanto as HDD’s estão chegando a casa dos Terabytes.

Diz a lenda que a leitura de grandes blocos de dados em HD’s SSD, tendem a ser mais lentas mas acredito que isso só aconteça em produtos que prezam pela economia de energia, pois quanto menos energia, menos performance.

E o ultimo item da lista é que um SSD é caro demais para os padrões atuais.

Considerações finais

Para finalizar esse primeiro artigo da série “Dossie Storage devices“, deixo o vídeo abaixo com um demonstrativo da Samsung entre um HDD e um SSD.

As imagens dizem mais do que tudo o que eu escrevi acima….por isso deixei para o final que é para você ler tudinho e não ignorar o que eu escrevi já no inicio.

:.P

Inté.

PopolonY2k

SSD vs HDD (Video da Samsung no Youtube)

Referências

http://en.wikipedia.org/wiki/Integrated_Drive_Electronics

http://pt.wikipedia.org/wiki/SSD

http://www.youtube.com/watch?v=rjCmLJtITK4