论文摘要
移动电话的功能日益丰富,其对系统中数据存储容量的需求正在快速增长。NAND Flash具有速度快、密度大、成本低等特点,在各种数码产品中得到了广泛应用,在各种片上系统芯片中(SOC)集成NAND Flash控制器正成为一种趋势。本文讨论了Flash Memory的两种主流实现技术即NAND Flash和NOR Flash的特点和区别,分析了市场上存在的NAND Flash的典型规格及其存储结构特点,阐述了不同NAND Flash器件一些通用的存取操作方式,近一步分析了进行这些存取操作所必须满足的时序规范,在此基础上,结合某公司手机SOC芯片的设计需求,提出了一种基于AMBA总线的NAND Flash控制器实现方案,对该实现方案进行了充分的验证工作。本文所提出的控制器的实现方式,可以支持市场上存在的两种典型规格的NAND Flash器件,可同时外接1至4个Flash芯片,通过可配置的控制方式可灵活的对不同存取速度的器件予以支持,具备良好的可扩展性。在控制器的主控逻辑设计中,采取了“块读”和“块写”方式实现对大页器件的读页和写页操作,这种方式有效减小了控制器中用做数据缓存的buffer大小,降低了芯片面积。针对NAND Flash在使用过程中可能出现的位反转现象,在控制器的设计中加入了错误检测和纠错功能。论文深入分析了ECC(Error Checking and Correcting)算法,讨论了ECC算法的硬件实现和优化方法。在不影响对存储器读写效率的前提下,实现对数据的存取进行实时的高速检错和纠错,为提高NAND Flash的可靠性提供了硬件上的支持。对控制器的验证采用了模拟验证和FPGA验证两种方式。在模拟验证阶段对控制器的所有功能点进行全面验证,结果正确后,在Xilinx公司的Vertex4开发板上对控制器进行了FPGA验证。结果表明控制器能正确控制对于NAND Flash的各种存取操作,工作完全正常。本文设计验证的NAND Flash控制器即将应用于某公司的SOC手机芯片,提出的控制器实现方案对NAND Flash控制系统的设计优化具有普遍适用性,论文研究的工程实用价值大。