All computers, including microcontrollers, are driven by a clock signal. For NAND flash media, perhaps one of the most important aspects to this control clock is driving media access - and overclocking is not recommended!
The datasheets for NAND media usually have timing diagrams, like this one for a SLC NAND memory:
In this example, write enable (WE) triggers the I/O of data, which is ideally performed after setup (tDS) is complete and before the hold (tDH) has expired. The controller must trigger each of these in the proper order and with the proper frequency. It utilizes a master strobe signal to do so. All delays are determined by a combination of both the NAND media and the controller (or processor) used.
These clock parameters are not something set by the ordinary embedded developer. Usually they are provided as part of the BSP for the embedded hardware board. If your embedded project uses the reference platform directly, then there is no need to change these parameters.
On the other hand, if your project makes changes to the NAND media, the processor, or even the length of the traces between those two components, these NAND parameters may be something you have to update to achieve full functionality. Incorrect timing means reading or writing when the NAND is not ready, which can lead directly to loss of data. When the clock frequency is increased (overclocking), the size of the hexagon pictured above for data validity shrinks - meaning the exact timing of data I/O is even more crucial.
The NAND data sheet is probably the first place to start when making these sorts of changes, and the specific vendor for the NAND runs a close second. After setting the parameters, the next step is a testing program that can access the entire media, using a combination of reads, writes, and erases. Datalight's FlashFX Tera provides these types of utilities as a key part of our source code delivery, and in debug mode, all sorts of warnings and errors will be displayed to the console.
For savvy developers, this additional information is quite helpful. Another option would be to utilize the expertise of NAND developers, and this sort of customer service is right up our alley. Drop us a line if you are interested, and don't forget to subscribe to this blog to get more useful information every month!