Inside CompactFlash - Controller and Flash Memory IC's
We investigate the internal components of a typical CompactFlash memory card by opening a Kodak 192MB CompactFlash. Kodak, Hewlett-Packard, Fujitsu, Motorola, Panasonic and many other brands are actually rebranded SanDisk CF cards. Other brand CompactFlash cards use controllers and semiconductor chips that are manufactured by SanDisk, Toshiba or Samsung.
Kodak CompactFlash / Picture Card
Upon first inspection, the first thing you notice inside a Kodak 192MB CompactFlash card three flash memory IC's and a single controller IC marked simply as "690 192". The three flash memory semiconductors, each 64MB in capacity, are surface mount SanDisk NAND flash memory IC's.
The controller is a single-chip that manages the data storage, retrieval and interface protocols between the digital appliance flash memory NAND modules. It also handles such things as defect handling and diagnostics, power management and signal synchronisation.
CompactFlash Controllers function to permit the host computer to write 'blocks' of data to flash memory, each block consisting of 16KB of data. This is performed using a comprehensive error correction code, or ECC, to ensure verified data read / write.

Advanced CompactFlash Controller Functions
Functionality of CF controllers goes far beyond the provision of independent instruction sets and read / write handling. ECC enables memory to recover data - if necessary, CompactFlash memory cards will reunite data from a defective sector to a good sector. This is completely transparent to the host and does not consume any user data space.

The CompactFlash Memory Card soft error rate specification is much better than the magnetic disk drive specification. In the extremely rare case a read error does occur, CompactFlash Memory Cards have innovative algorithms to recover the data (that's right - no need to run extensive data recovery software, it is all done without you even knowing). These amazing defect and error management systems, coupled with the solid state construction, give CompactFlash cards unparalleled reliability.
The SanDisk controller command set, accessible via C / C++ programming makes it feasible for an experienced developer to perform low-level interfacing and programming of the CompactFlash card. For example the sleep mode can be set or the read block verified. Here is an example subset of commands that you could call to operate a SanDisk CF card:
static struct { unsigned char cmdCode; unsigned char * cmdName; } cmdNames[] = { 0xE5 , "CHECK POWER MODE" , 0x98 , "CHECK POWER MODE" , 0x08 , "DEVICE RESET" , 0x90 , "EXECUTE DEVICE DIAGNOSTIC" , 0x50 , "FORMAT TRACK" , 0xEC , "IDENTIFY DEVICE" , 0xA1 , "IDENTIFY PACKET DEVICE" , 0xE3 , "IDLE" , 0x97 , "IDLE" , 0xE1 , "IDLE IMMEDIATE" , 0x95 , "IDLE IMMEDIATE" , 0x91 , "INITIALIZE DEVICE PARAMETERS" , 0x00 , "NOP" , 0xA0 , "PACKET" , 0xE4 , "READ BUFFER" , 0xC4 , "READ MULTIPLE" , 0x20 , "READ SECTORS" , 0x40 , "READ VERIFY SECTORS" , 0x10 , "RECALIBRATE" , 0x70 , "SEEK" , 0xEF , "SET FEATURES" , 0xC6 , "SET MULTIPLE MODE" , 0xE6 , "SLEEP" , 0x99 , "SLEEP" , 0xE2 , "STANDBY" , 0x96 , "STANDBY" , 0xE0 , "STANDBY IMMEDIATE" , 0x94 , "STANDBY IMMEDIATE" , 0xE8 , "WRITE BUFFER" , 0xC5 , "WRITE MULTIPLE" , 0x30 , "WRITE SECTORS" , 0x3C , "WRITE VERIFY" , 0x00 , "" /* end of table */ };
Down-Graded or Defective CompactFlash Cards
A sure way of determining the quality of CompactFlash cards is to examine the flash memory used inside (we don't suggest you destroy your cards to find out though!). Basically if the memory IC does not carry SanDisk, Toshiba or Samsung identification - you know you have been duped and the CF NAND memory is downgraded or faulty. A flash memory chip MUST have once of these company names on it, otherwise is has been rejected during factory testing.
The reason why defective / unbranded IC's are used inside some CompactFlash cards is simple - rejected IC = very cheap IC and thus some assemblers market bulk cards at very low prices, whilst still claiming high reliability or super fast / super enhanced performance.
|