There are many different types of NAND Flash controllers. They essentially do the same thing - controlling the flow of information back and forth, but within these categories, there are many types of controllers. This tech talk will focus on NAND Flash controllers.
What are memory controllers?
The short answer is that they are the brains of the storage device. A NAND Flash controller is sometimes called a memory chip controller (MCC) or a memory controller unit (MCU) and manages data stored on the flash memory (usually NAND flash) and communicates with a computer or electronic device. Controllers can be a separate component or integrated into another chip, such as eMMC. The image below shows NAND Flash and controllers on various types of SSD.
NAND Flash Controllers
After a flash storage device is initially manufactured, the NAND Flash controller is first used to format the flash memory. This ensures the device is operating properly, it maps out bad flash memory cells, and it allocates spare cells to be substituted for future failed cells. Some part of the spare cells is also used to hold the firmware which operates the controller and other special features for a particular storage device. A directory structure is created to allow the controller to convert requests for logical sectors into the physical locations on the actual flash memory chip. This all sounds really complicated but in fact, it’s fairly straightforward and logical; a well-organised library that is regularly spring cleaned to ensure everything runs as best it can.
Who makes NAND Flash controllers?
There are many companies, large and small that manufacture NAND Flash controllers. Some are mainstream for consumer items, some for servers and datacentres and some for industrial and embedded computing. Some do a mix of everything. Arguably, the largest manufacturers are (in no order) Realtek, Phison, Marvell, Silicon Motion, Hyperstone, Sage, Maxio and JMicron. Some manufacturers are independent and supply to other companies, and some only manufacture for their own storage devices, such as Micron, Western Digital and Seagate, to name a few.
Types of NAND Flash controllers
Like NAND Flash, there are many different types of controllers, but all essentially do the same thing. It is important for controllers to be paired with the right NAND flash to ensure the best ROI and performance. Controller manufacturers offer a portfolio of options to support the vast majority of flash components including; 3D TLC and QLC, as well as SLC and MLC. Some legacy controllers may only be suitable when paired with SLC and MLC NAND as this is older technology, yet still has high demand despite the lower numbers than commercial storage devices.
Some controllers are only suitable for certain types of NAND Flash such as MLC and SLC, and may require extensive customisation for industrial and embedded applications. Some newer controllers are manufactured to support the latest 3D TLC NAND and can support power loss protection and encryption capabilities.
A high-quality controller is essential to achieve the performance, reliability and lifetime required for data storage in consumer-level and enterprise, but especially in industrial or embedded systems.
Features and Customisation
NAND Flash controllers are highly customisable and have a whole host of features depending on what you are using the storage device for. Some of the key ones are listed below:
Flash memory can withstand a limited number of program-erase cycles. If a particular flash memory block were programmed and erased repeatedly without writing to any other blocks, the one block would wear out before all the other blocks, prematurely ending the life of the storage device. For this reason, flash controllers use a technique called ‘wear-leveling’ to distribute writes as evenly as possible across all the flash blocks in the SSD. This extends the life of the storage device and ensures good block management.
Despite its name, SSD garbage collection has nothing to do with discarding files that are no longer needed. Rather, garbage collection is aimed at optimizing space and improving efficiency. The purpose of garbage collection is to increase efficiency by keeping as many empty blocks as possible so that when the SSD has to write data, it doesn't have to wait for a block to be erased.
Like any storage system, NAND Flash has a limited life span. The controller can monitor and record data such as the total number of erase and program cycles, the number of bad and spare blocks, and the error rates detected by the ECC.
This can be used to provide information to the host system and the user about the health status of the NAND Flash memory. This enables early warning of potential failures so devices can be replaced before there is any risk of data loss. For SSD devices connected via the standard ATA interface, this information can be reported through the self-monitoring, analysis and reporting technology (SMART) protocol. The image below shows a typical Kingston dashboard for SSD SMART monitoring.
Controllers play a vital part in transferring data from the NAND to the device, and as NAND Flash technology develops, so will the controllers. Manufacturers are continuously bringing out new controllers with more and more features to keep one step ahead. Contollers are paired with NAND Flash to ensure the best possible performance (for industrial) or the best return on investment for consumer and workplace storage devices. To understand more about NAND Flash click here.