A simplified comparison: Warehouses & NAND Flashes

A simplified comparison: Warehouses & NAND Flashes

A simplified comparison: Warehouses & NAND Flashes

If you’re reading this, you know the problem all too well. You’re trying to explain your job to a friend or family member and the moment it starts to get technical, you start to notice their facial expression becomes absent, their eyes distracted and before long, both parties give up. But why not start somewhere easier?

A flash memory is nothing more than a warehouse with empty shelves.

Managing the logistics of how, when and where palettes with units fill the shelves of the warehouse is done with the help of sophisticated logistics management. Similarly, flash controllers act as the logistics that manages when and where bits of information are stored on a flash memory.

In warehouses, palettes and units may have different storage demands.

In warehouses, different palettes may have different needs. For example, they may have to be stored closer to the walls, or in cool rooms, while others are positioned closer to air vents and heating units. It could even be the case that certain palettes are not to be positioned next to neighbouring palettes because of high usage patterns.

The same goes for storing data on the flash memory. If one page of data is accessed repeatedly, this affects neighbouring pages and can compromise the entire flash memory. Balance, usage and wear of blocks and pages must be considered by the flash controller, the same as logistics must consider and manage the location of palettes and units in warehouses.

A warehouse must be well maintained to ensure efficient storage.

In warehouses, if a palette has been stored on a shelf for an elongated period of time, it may have accumulated dust and rust. The natural process of degradation is unavoidable and if the palette has also been accessed often, its wear and tear may be significant compared to its neighbouring palettes. The shelves supporting it, could similarly be suffering under the usage patterns and become potentially hazardous. To ensure the safe and efficient storage in an ever growing warehouse, these palettes and units can be moved to allow the shelf to be repaired and prevent further wear.

The flash controller does this to data on the flash memory with features called Wear Leveling (WL) and Garbage Collection (GC), Dynamic Data Refresh (DDR) and Read Disturb Management (RDM). These features work together to maintain the flash and ensure data is stored efficiently. The controller keeps a close eye on all the usage patterns and consequent wear and tear and moves data accordingly to ensure the flash wears out evenly over time.

Old warehouses have different logistical demands to new warehouses.

Some warehouses are simple, they are small, their demands and usage patterns basic. The same understanding goes for older flash memories which had error correction requirements of 1-bit. Older flash memories didn’t require complex management. Modern NAND flashes memories; in particular 3D-NAND are different. These flash memories are much more complex in their structure and in turn require a high-end flash controller. These complex architectures also require mechanisms for self-testing, tweaking and calibration.

To top it all off, the granularity of which we now access the goods has become finer and finer. A few years ago in warehouses, the palettes were loaded and unloaded. Nowadays, we want to access small units on palettes without compromising or disturbing the entire palette. The same goes for flash memory and the flash controller managing the data transfers in storage systems. The controller needs to know where each individual bit is stored, and it does that by tracking its location and identifying the block and page it is stored on. Furthermore, the speed and efficiency of these operations must increase with each new generation of flash memory and the operations should be fine-tuned dependant on the architecture, storage demands and physical environment.

The flash controller is the brains of a NAND flash based storage system.

A flash controller is the management system controlling how and where data is stored on a flash memory. It must cover multiple scenarios and requirements and be efficient at all times. Any downtime could impact an entire supply chain and have adverse consequences on critical processes.

It is the brain of a NAND flash based storage system, and like all brains, they are unique and some have higher IQs than others. This is why Hyperstone targets the most stringent applications with its flash controllers. The dependability of their controllers is essential and they need to ensure that their ‘logistics system’ efficiently manages the growing complex architectures of NAND flash memories.