SD NAND闪存芯片是一种非易失性存储器,主要用于嵌入式系统中,其基本工作原理如下:
1.物理块和逻辑块:SD NAND将数据存储在物理块中。每个物理块都由几个扇区组成,而每个扇区则包含了一定数量的页面。为了简化通讯和传输协议,SD NAND通过系统构建上提供逻辑块,以方便使用者。
2.数据读取:当操作系统或应用程序需要读取数据时,主控制器会从寻址线路获取LBA,在Flash Translation Layer(FTL) 和MCU固件层面生成物理块地址以及启动读写操作。其中,FTL层为目录循环使用多层映射和高效率查询算法,使用好的存储压缩方法将链式数据操作转换到块/行/列层次表示。
3.数据写入:当操作系统或其他软件程序试图写入数据时,主控制器会将相应的命令发送给SD NAND芯片。写操作一部分信息会优先存在分类索引页(C-Index)中,用于数据特定属性的读写操作,另一部分的更新则实时跟踪完成写入,中间数据管理、读写锁定机制也起码触发,确保关键信息能成功地更新到储出方案中。
4.SD NAND组织与管理:SD NAND闪存组织以多个页面为基准,由矩阵内连通的固态管及NAND FLASH存储芯片构成。主控制器通过命令执行和数据收集来记录和监测每个物理块的使用率,并且在需要时启动各种操作(如ECC、GC、Scrubbing等)(异地复制跑马灯式)。这样可以确保每个物理块的使用寿命尽可能接近,从而最大限度地提高SD NAND的整体性能和稳定性。
5.串行通信:SDNAND通过串行通信协议与MCU或SOC进行通信。通常使用SPI或SD协议进行数据传输,使得SDNAND可以直接嵌入其他数字设备中。
6.块操作:SDNAND将数据存储在块里,每个块由多个页组成,每页有512字节的空间。SDNAND读取或写入一个块时,对整个块进行操作。
7.垃圾回收:当一个块里的所有页面都已用完后,SDNAND需要执行垃圾回收程序以擦除这个块,从而为下一批数据提供空间。
8.ECC校验:SDNAND通过ECC校验方法保证数据可靠性。在写入平均7-8个块后,SDNAND会自动检测坏块并标记它们,在读取时处理所有ECC错误且自动重新划分数据到可用块。
9.大小调整:SDNAND大小可以在应用程序中调整,这使得SDNAND能够适应各种不同的需求。
总之,上述是SD NAND闪存的一般工作原理和流程,在实现中,还有其他具体细节要考虑,例如位线数量、 ECC机制、间隔检查量、何时检查关键信息点、 free space threshold 控制、裸读/写/会话存储等等。了解这些细节并按照要求处理将有助于提高SD NAND的效率和可靠性。