返回首页
当前位置: 主页>Flash存储开发>

NAND Flash嵌入式存储系统结构分析

时间:2017-07-17 02:52来源:网络整理 作者:USB开发频道 点击:

  

目前市场上闪存芯片主要有两类,即NAND Flash(Not And Flash ROM)和NOR Flash(Not Or Flash ROM)。前者具有容量大、读写速度快、芯片面积小、单元密度高、擦除速度快、成本低等特点,更适合于大批量数据存储的嵌入式系统。如今Windows仍是桌面系统的主流,对FAT文件系统提供了天然的支持。然而就技术而言,FAT文件系统并不适合Flash,因为Flash设备并不是块设备[1],为了不破坏兼容性,并在NAND型闪存中应用FAT文件系统,国际上提出了闪存转译层FTL(Flash Translation Layer)的解决方案。

  1 NAND Flash嵌入式存储系统结构 本文来自织梦

  基于NAND Flash的存储系统的设计首先要解决坏块问题。由于NAND Flash自身存在固有坏块并在擦除和编程中又随机产生坏块,因此为了提高设备的可靠性应该将这两种操作分散在闪存不同的块中,以避免对某块的过度操作。

织梦内容管理系统

  一般的基于NAND Flash嵌入式存储系统驱动结构分为三个层次:最底层是硬件操作接口,负责将主控芯片与Flash的控制管脚相连,这方面的固件主要实现对NAND Flash的物理操作;中间层是闪存转译层NFTL(NAND FTL),是封装在Flash驱动中的软件模块,其作用是将Flash模拟成与磁盘相类似的块设备,使对上层操作系统而言,NAND Flash就像普通磁盘一样被访问。这一层主要是封装一些特殊的复杂管理控制功能;最上面的层就是文件管理层,功能类似于普通磁盘上的通用文件系统,向上层提供标准的文件操作接口。基于NAND Flash的嵌入式系统存储结构原理图如图1所示。 内容来自dedecms

   织梦好,好织梦

NAND Flash嵌入式存储系统结构分析

织梦内容管理系统

织梦好,好织梦

  根据以上两个方面,既要在驱动中实现坏块管理,又要进行块模拟,所以可用的方法有两种[2]:一是在上层文件系统中解决坏块问题,驱动层只实现本身的功能,文件系统为驱动层提供不变的接口,为上层应用程序提供可靠透明的服务。这种方法较简单,开发周期比较短,但只对特定应用的嵌入式系统有很强的适应性;第二种方法是在驱动层的NFTL中解决坏块问题,将不可靠的NAND Flash虚拟成可靠的存储设备,为上层文件系统提供可靠透明服务,这种方法较第一种更复杂,但是此法具有较强的可移植性并能彻底断绝与文件系统的联系,其他文件系统也同样适用。 织梦好,好织梦

  本文是以Samsung的NAND Flash K9F2808U0C作为存储芯片,设计了一种在NFTL上实现坏块管理并且实现连续数据读取的方法。

织梦内容管理系统

  2 设计思想

织梦好,好织梦

  2.1 闪存空间划分

织梦好,好织梦

  K9F2808U0C是16 MB×8 bit的NAND Flash,共有1 024个Block,1 Block=16 KB,32 Page/Block,1 Page=528 B=(512 B+16 B),其中16 B为备用区,主要存放NAND Flash出厂坏块标记、ECC校验码以及用户自定义区。K9F2808U0C地址空间是24 bit,分三个周期依次送入NAND Flash的地址锁存器。本文使用的地址均为字节地址,数据类型为DWORD(4 B)。 copyright dedecms

  将K9F2808U0C的存储空间划分为四个区:坏块映射表存放区、交换块区、坏块映射区和实际数据存放区。文件系统管理的空间就是实际的数据存放空间,如图2所示。 织梦内容管理系统

  

copyright dedecms

NAND Flash嵌入式存储系统结构分析 copyright dedecms

copyright dedecms

  2.2 各分区宏定义

dedecms.com

  #define FLASH_BLOCK_SIZE 0x40000 //16 KB/Block

织梦内容管理系统

  #define FLASH_PAGE_SIZE 0x200 //512 B/Page 内容来自dedecms

  #define FLASH_SECTOR_SIZE 0x200 本文来自织梦

  //1Page=1Sector(only K9F2808U0C) 织梦内容管理系统

  #define FLASH_BLOCKS_TABLE 3//坏块映射表存放块数 织梦好,好织梦

  #define FLASH_SWAP_BLOCKS 5 //交换区的块数 copyright dedecms

  #define FLASH_BAD_BLOCKS_REMAP 50 本文来自织梦

  //坏簇重映区的块数

织梦内容管理系统

  #define FLASH_MAX_ADDR 0xFFFFFF

本文来自织梦

  //Flash最大字节地址

织梦内容管理系统

  各分区首地址计算公式: dedecms.com

  FLASH_BLOCK_TABLE_ADDR=FLASH_MAX_ADDR+ dedecms.com

  1-3*FLASH_BLOCK_SIZE); dedecms.com

  FLASH_SWAP_BLOCK_ADDR=(FLASH_BLOCK_ copyright dedecms

  TABLE_ADDR-5*FLASH_BLOCK_SIZE); 织梦好,好织梦

  FLASH_BAD_BLOCK_REMAP_ADDR=(FLASH_SWAP_ 织梦内容管理系统

  BLOCK_ADDR-50*FLASH_BLOCK_SIZE); 织梦内容管理系统

  FLASH_MAX_SECTOR_ADDR=(FLASH_MAX_ADDR-

织梦好,好织梦

  3*FLASH_BLOCK_TABLE_ADDR-5*FLASH_SWAP_

copyright dedecms

  BLOCK_ADDR-50*FLASH_BAD_BLOCK_REMAP_ADDR); 织梦好,好织梦

  文件系统管理的最大字节地址。 本文来自织梦

 任意地址Addr: 织梦好,好织梦

  所在块地址:Addr&(~(FLASH_BLOCK_SIZE-1)); 织梦好,好织梦

  块内偏移地址:Addr&(FLASH_BLOCK_SIZE-1); 内容来自dedecms

  块中的页:(Addr&(FLASH_BLOCK_SIZE-1))/FLASH_ 织梦内容管理系统

  PAGE_SIZE; copyright dedecms

  2.3 分区功能设计 本文来自织梦

  坏块映射区存放复制3份的坏块信息BBI(Bad Block Information)表。复制3份是预防系统突然断电,造成BBI表数据丢失。选择最后3个块,主要是出于固件设计。当Flash首次上电,固件程序通过读取Flash ID,获得设备的容量等信息,然后从Flash的最后一块中寻找BBI表,如果最后一块没有发现BBI表,则认为此块为坏块,继续前移寻找,依此类推,直到在预留的3个块中找到,并将其数据读入到在主控芯片为其开设的RAM中。如果还找不到,则固件认为该片Flash没有BBI表。 本文来自织梦

  交换块区是对NAND Flash进行擦除或写操作时用来临时存放数据,共分配5个块。选取5块是出于可靠性设计。用一个数组FlashSwapBlockStatus[FLASH_SWAP_BLOCKS]记录交换块状态:有效还是已经损坏。初始化时,固件认为所有的交换块都是有效块,在随后对其进行擦除或写操作时,通过读Flash状态寄存器判断该交换块的真实状态,并记录在数组中。交换块的管理围绕固件请求返回当前可用交换块地址或当前正在使用的交换块地址,并判断标记当前使用的交换块状态为坏。 织梦好,好织梦






秦华 『上海买保险』上海地区人寿保险资深寿险顾问 上海外籍人士买保险-高端人士医疗办理
服务项目:儿童医疗/子女教育金/养老保险/重大疾病/意外伤害/员工团险/公众责任
免费热线『上海』:13761630213, QQ:107242375, Email:victor.qin@qq.com
选择保险事业 为了爱,为了一份坚定的承诺!MSN:
上海地区请直接拨打本人电话,应约免费上门提供免费保险方案。
Baoxian.ws>>           旅行签证保险、上门办理>>        重大疾病网>>     上海重大疾病一览    
友情链接: 走在上海人寿保险的前端    和讯保险博客    上海投保在线    Shanghai Insurance    秦华的个人简历


顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
图文并茂 我的链接
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
上海高端医疗/住院医疗保险信息
上海保险规划师信息
上海子女教育理财保险信息
上海保险规划师信息
上海女性高端生育保险方案-等待期
上海保险规划师信息
上海三口之家家庭保障方案
上海保险规划师信息
上海女性特色重大疾病保险方案
上海保险规划师信息
上海女性白领理财保险方案
上海保险规划师信息
上海养老理财规划保险方案
上海保险规划师信息
通过网络取得初步咨询
  •    
上海办理-免费咨询送计划书
上海买保险
上海办理-申根签证 出国旅行保险
上海买保险
上海买保险,海外基金,买保险,友邦保险,中国人民健康保险,养老保险,儿童保险,儿童医疗,子女教育金,太平洋保险,医疗保险,工伤保险条例,中国人寿保险,保险公司,中国平安保险,医疗险,进口药,自费药,外籍人士医疗,泰康人寿,英国保诚集团,上海综合保险,国际医疗保险,上海医疗保险,上海社会保险,上海养老保险,上海市综合保险,上海平安保险,上海太平洋保险,和睦家医院,上海综合保险卡,买保险,高端医疗,重大疾病,意外伤害,定期寿险,家庭理财,友邦保险,金茂大厦,少儿互助基金,上海社保,太平洋集团,港安医院