推荐星级:
- 1
- 2
- 3
- 4
- 5
NAND Flash控制器硬件设计与仿真验证
资料介绍
NAND Flash存储芯片的整体性能,在很大程度上会受到NAND Flash控制器的影响.为此在对NAND Flash的存储结构和接口进行仔细分析的基础上,设计了控制器的硬件功能,确定了各个命令执行时的设备状态转换关系,并在仿真环境下,利用NAND Flash控制器进行存储介质的读写及擦除等操作,全面验证了控制器的功能.结果表明,控制器工作正常,符合设计目标.
部分文件列表
文件名 | 大小 |
NAND_Flash控制器硬件设计与仿真验证.pdf | 2M |
部分页面预览
(完整内容请下载后查看)2017 年 4 月
西 北 工 业 大 学 学 报
Apr. 2017
Vol.35 No.2
第 35 卷第 2 期
Journal of Northwestern Polytechnical University
NAND Flash 控制器硬件设计与仿真验证
冉计全1,3, 郭林2, 张三刚3, 马捷中3, 翟正军3, 郭阳明3
1.中国人民解放军 31008 部队, 北京ꢀ 100850; 2.中国航天空气动力技术研究院, 北京ꢀ 100074
3.西北工业大学 计算机学院, 陕西 西安ꢀ 710072
æ
è
ö
ø
ç
÷
摘ꢀ 要:NAND Flash 存储芯片的整体性能,在很大程度上会受到 NAND Flash 控制器的影响。 为此在
对 NAND Flash 的存储结构和接口进行仔细分析的基础上,设计了控制器的硬件功能,确定了各个命
令执行时的设备状态转换关系,并在仿真环境下,利用 NAND Flash 控制器进行存储介质的读写及擦
除等操作,全面验证了控制器的功能。 结果表明,控制器工作正常,符合设计目标。
关ꢀ 键ꢀ 词:NAND Flash;控制器;存储结构;接口
中图分类号:TP391.9ꢀ ꢀ ꢀ 文献标志码:Aꢀ ꢀ ꢀ 文章编号:1000⁃2758(2017)02⁃0304⁃06
ꢀ ꢀ 随着固态存储技术的发展,以 NAND Flash 等构
建的存储设备越来越广泛地得到应用。 但是,由于
NAND Flash 存储芯片存储结构和对外接口的特点,
如读写控制时序复杂、存在位交换(0、1 反转)等问
题,使得其整体性能不仅取决于 NAND Flash 存储介
质的性能,而且在很大程度上还受到 NAND Flash 控
点,在各种片上系统芯片中(SOC)集成 NAND Flash
控制器已逐渐成为一种趋势。 NAND Flash 利用穿
隧注入(tunnel injection)技术写入数据,以穿隧释放
(tunnel release)技术抹除数据[5]
。
NAND Flash 内部由存储阵列、控制逻辑、I/ O
逻辑、寄存器等部分组成,并以页作为基本存储单
制器的影响[1]
。
+
+
元,页的容量范围一般从(512 16)至(4 096 128)
个字节。 页是块的组成单位,根据闪存芯片的容量
大小与技术规格的不同,其内部组成结构的块、页容
量也不尽相同。[6]
NAND Flash 具有下列 4 个特点:①以页为单位
进行读、写操作,以块为单位进行擦除操作,写入和
擦除操作速度快;②没有单独的地址和数据总线,只
能采用串行读取,不能按字节进行随机读写且速度
慢;③体积小,引脚数目少;④使用时需要将 NAND
芯片中不影响其他有效块性能的失效块,在地址映
射表中屏蔽以保证数据存储正确性[2⁃4] 。 本文将根
据上述 NAND Flash 特点,探讨在实用环境下,对其
实施控制的方法,以提升固态存储设备的整体性能,
这无疑具有重要的意义。 本文还针对上述需求,基
于 FPGA 的固态盘开发平台,进行了 NAND Flash 控
制器设计。
对 NAND Flash 进行的基本操作有复位(reset)
操作、读 ID(read ID) 操作、读状态( read status) 操
作、写页(program page) 操作、块擦除( block erase)
操作、 随 机 写 ( random data input) 操 作、 随 机 读
(random data output)操作、读页(read page)操作等。
以上对 NAND Flash 存储芯片的操作,都是通过控制
信号进行的。 NAND Flash 的控制信号包括 ALE,
CLE,/ CE,RE,/ WE,R/ B#等。
NAND Flash 的 I/ O 端口采用复用的数据线和
地址线,对片上存储介质的存储单元操作必须先通
过寄存器串行地进行数据存取。 NAND Flash 的寻
址方式分为行地址和列地址。 这样可减少芯片的管
脚数目,有助于提高芯片设备的模块化程度,不过对
1ꢀ NAND Flash 的存储结构和接口
NAND Flash 具有速度快、密度大、成本低等特
收稿日期:2916⁃10⁃08ꢀ 基金项目:国家自然科学基金(61371024、61601371)、航空科学基金(2016ZD53035)、中航产学研项目
(cxy2013XGD14)与电子元器件可靠性物理及其应用技术重点实验室开放基金资助
作者简介:冉计全(1980—),解放军 31008 部队工程师、西北工业大学硕士研究生,主要从事计算机测控技术研究。
万方数据
第 2 期
冉计全,等:NAND Flash 控制器硬件设计与仿真验证
·305·
芯片的读写数据等操作却变得更加复杂。
制器接口说明如图 2 所示。 具体信号的引脚定义以
及功能描述如表 1 所示。
2ꢀ 控制器的设计目标
NAND Flash 控制器设计一般有 2 方面的内容:
①硬件功能设计与实现,包括对 NAND Flash 芯片基
本操作功能的设计;②固件程序实现。 本文在基于
嵌入式处理器软核 NiosⅡ的固态盘开发平台上(见
图 1)完成了 NAND Flash 控制的硬件设计。
图 2ꢀ 控制器接口说明
表 1ꢀ 控制器接口信号描述
引脚
ADDR[12 ∶ 0]
CLK
方向
输入
输入
输入
输入
输入
输入
功能
地址输入
系统时钟
RSTN
复位信号,有效值为低
片选信号,有效值为低
输出使能,有效值为低
写入使能,有效值为低
数据总线
CEN
OEN
WEN
图 1ꢀ 固态盘开发平台
DATA[7 ∶ 0] 输入/ 输出
INT
输出
输出
提供给处理器中断信号
NAND Flash 工作状态信号
本文所确定的控制器设计目标是,NAND Flash
存储器芯片能够通过 Avalon 总线和嵌入式系统处
理器 NiosⅡ连接,使得 FPGA 系统中的其他设备通
过 Avalon 总线访问本控制器,最终使控制器能够实
现对存储器的各种数据进行存取操作。 同时,针对
NAND Flash 存储器在频繁使用的过程中,有可能出
现的位翻转现象[7⁃8] ,在此控制器的硬件设计中建
立数据存取操作时的错误检测和纠正机制。
RBN
3.2ꢀ 寄存器配置
NAND Flash 控制器被设计成一个基于 Avalon
总线的从设备模块。 它描述了主从构件间的端口连
接关系,以及构件间通信的时序关系[10⁃12] 。 系统中
NiosⅡ处理器通过 Avalon 总线对 NAND Flash 控制
器接口进行的基本操作只有读取和写入 2 种,而
NAND Flash 控制器的硬件模块对存储芯片的基本
操作则复杂得多,包括页编程、页读取、块擦除、读状
态、读取 ID 以及设备复位等。 为了在不改变系统接
口及操作模式的情况下,实现 NiosⅡ处理器对控制
器的直接寻址访问,本文采用与 NAND Flash 类似的
写控制字的方式。
3ꢀ NAND Flash 控制器硬件设计
3.1ꢀ 接口定义
本文选用 SAMSUNG 公司容量为 2GB 的 NAND
Flash 芯片 K9F2G08U0A [9] 进行 NAND Flash 控制
器的硬件设计。
本文采用 16 个寄存器组,并以存储器映射的方
式进行编址寻址。 地址偏移从 0x1FF0 到 0x1FFF
为寄存器区,0x0000 ~ 0x0210 为数据缓存区。 寄存
器地址分配、命名及其功能描述如表 2 所示。
NAND Flash 控制器硬件模块一端连接 NAND
Flash 芯片,另一端通过片上总线与系统中处理器总
线连接。 与 Flash 芯片端连接的各个信号的名称及
定义均与 NAND Flash 芯片相同。 而控制器与处理
万方数据
器端的连接则采用类似于 SRAM 接口的方式。 控
全部评论(0)