Data Transfer Method:
Data is transferred on only one edge of the clock signal (RE), usually on the rising edge.
Data Transfer Speed:
The data transfer speed in SDR mode is limited because data is transferred only once per clock cycle.
Data Transfer Method:
Data is transferred on both edges of the clock signal (RE) – both the rising and falling edges. This means twice as much data is transferred in each clock cycle.
Data Transfer Speed:
The data transfer speed in DDR mode is twice as fast compared to SDR mode at the same clock frequency, leading to higher read and write performance.
It is possible for two devices to have the same NAND ID but use different read modes (SDR or DDR). This situation can occur due to several reasons:
Memory Controller Capabilities:
The memory controllers in the devices may have different capabilities. One controller may support only SDR mode, while another, more advanced controller supports both SDR and DDR modes. This allows the same NAND chip to be used in different devices with varying performance requirements.
Design Requirements:
The design requirements and intended use cases of the devices might differ. For instance, a high-performance SSD might use DDR mode to achieve faster data transfer rates, while a simpler, cost-effective device might use SDR mode to save on complexity and cost.
Example Scenario
Consider two different devices:
Both devices could use the same NAND flash chip with the same NAND ID, but their overall performance and use cases would differ significantly due to the different read modes enabled by their respective controllers and firmware.
The answer lies in the bitmap. If the memory was using SDR mode, but the configuration in VNR is for DDR, then after opening the bitmap, we can see some characteristic patterns. In HEX mode, we can check if every byte is repeating twice. In that case, it is necessary to switch the protocol from DDR to SDR, for example, from Async DDR to Async SDR, WL DDR to WL SDR, and so on.
Let's check the reverse case: the NAND was using DDR mode, but the configuration in VNR is for SDR mode. The answer is also in the bitmap. The first thing we need to check is the first byte. If we are reading the memory in SDR mode, but the memory was used in DDR mode, then the first byte is almost always empty. However, this is not a rule for all cases. The second thing to check, and it always proves the reading mode is correct, is the middle of the page. If the memory was used in DDR mode, and we are reading it in SDR mode, we are reading only half of the bytes, and the data ends in the middle of the page, not near the end. In that case, we need to check how it looks when we change from SDR to DDR mode, and it is important to change from Async SDR to Async DDR or WL SDR to WL DDR. The rest of the protocol, except the reading mode (SDR/DDR), must remain the same.
Sometimes it is possible to find the NAND configuration, but it is not possible to find ECC or XOR, or the solution from the database doesn't work. If the dump doesn't have bad columns, it is important to check the protocol mode used to read the memory as shown above.