一种nand闪存自适应启动方法

文档序号:6466557阅读:249来源:国知局
专利名称:一种nand闪存自适应启动方法
技术领域
本发明涉及数码产品中使用闪存的系统,特别是一种NAND闪存自适应启动方法。
背景技术
嵌入式系统的使用在电子行业越来越普遍,系统软件代码的容量也越来越大, 需要的存储空间也增大。传统的系统代码都是用NOR闪存存储的,NOR有很多优点 地址访问方便,读数据速度快,几乎没有坏道等等,使用也相当广泛。但是NOR 也有很大的缺点,容量与NAND相比普遍偏小,价格也高出很多,在系统代码容量 逐渐增大需求下,NAND闪存在很多应用上逐渐取代N0R。目前在使用NAND闪存启 动的设计上,都是同时最多支持一种NAND闪存,小页面或者大页面,这就限制了 NAND的使用。
NAND闪存,其存储单元结构和与非门有关,英文翻译为NAND,优点在于容量 大,最大单片16G字节,读写速度快,价格低廉。当然它也有缺点,就是种类繁 多,地址访问不如NOR方便,会有坏道。这也是NAND大量应用的几个技术难点。
NAND闪存的种类有很多,按照页的大小分有小页面、大页面、4K页、8K页, 按照存储单元结构来分有SLC (每个存储单元存储2个信息)和MLC (每个存储单 元存储3个信息)及QLC (每个存储单元存储4个信息)等。NAND的地址访问方 式和N0R不同,NAND使用串行方式,将地址分成行地址和列地址两种,对于不同 种类和容量的NAND闪存行列地址是不同。传统的NAND启动设计只能在其中一种 结构上实现,要兼容所有的NAND闪存就要有自动识别NAND种类的方法。
NAND闪存存储包括字节、页、块3种组成部分, 一个块内有若干个页, 一个 页内有若干个字节。按照页的大小又分为小页面和大页面。NAND的地址是串行的, 分为行和列地址2种,大小页面的地址是不同的。列地址是指闪存一个页内的地 址,小页面一个页是512字节,因此列地址只有一个8位(即一个周期),行地址 则是指闪存包含多少块和多少页,根据容量的不同,会有2个周期地址或者3个 周期地址,如表l-2所示__,j0 0 ,1 TO 2 歸、3 歐4 TO 5f l/O'S ' W 7
1stGyde Afl At As Aa As As ,
2滅Cy由 As — At, A12 to , A银 ,A帖
:kdCyd径 紐 Aw A'm to to *X ' L
1s《Gyde 细 ^______A
2n<3 Cycte As As A加 An *L 1 *L *L 3rdCy* An Ais a14 Ats Aia At Aib Ala 4th Gyels A加 to te to Am A25
爾 ,0 4"麵两
1对Cycte细A1Ax 、A*A5A7人
2hcS CycfeA3A9A犯.A竹*L
麵AWA化A银船A .A,a
toA2呵toA24to
5伤Cycle飾Aze、1*L*1i
'、、 ' —尊'聰,.:.m藝 m贿,t纖
ASA1A3A
2od CycleA犯A《1A""A巧A15
A,7to'A24
她CycleAssL*L*I*L*
列地址 行地址l
行地址2
表1 1个周期列地址2个周期行地址
列地址l 行地址l
行地址2 行地址3
表2 l个周期列地址3个周期行地址 大页面一个页有2048字节或者4096字节或者8192字节,因此需要2个周期 的列地址来表示,而行地址则根据闪存容量的大小有2个周期或者3个周期,如 表3-4所示
'列地址i
'列地址2 '行地址, 行地址2
表3 2个周期列地址2个周期行地址
列地址i
列地址2
表4 2个周期列地址3个周期行地址 NAND闪存的操作时序, 一般是先发命令码和行列地址,然后看RB的信号的 状态,来判断该命令执行是否正确。RB信号是闪存的控制信号之一,R表示 "Ready" , B表示"Busy"。
在正确收到一个命令以后,RB信号会由Ready状态变为Busy状态,表示闪 存在准备执行该命令,然后再变回Ready状态,表示闪存己经准备好执行该命令, 如图l所示。
图1是对2个列地址3个行地址类型的闪存的读操作,如果对同样的闪存发送 给它的地址是1个列地址2个行地址,RB的反应如图2所示。
可以看出,RB信号始终为高,即闪存对和自身不匹配的行列地址操作的反应
5
址,s s
地地地
行行是RB始终为高,不进行命令准备阶段。

发明内容
本发明为解决上述问题提供了一种NAND闪存自适应启动方法,用N緒D闪存 控制线RB的不同响应自动识别NAND闪存的行列地址周期的方法,并利用NAND读 操作的通用性来读取系统配置数据,从而达到正确读取系统代码,启动系统。
一种NAND闪存自适应启动方法,其特征在于将不同的行列地址组合依次发 送给NAND闪存,然后检测RB的反应,当RB反应为正常的行列地址,则是NAND 闪存的行列地址信息,得到所述行列地址信息后,再从NAND中读取包含全部信息 的系统配置信息,启动系统。
所述发送是通过函数Read—NandFlash()向NAND闪存发送地址和命令。 ReadJJandFlash()函数主要是按照闪存的地址要求,将行列地址及命令按顺序发 送到闪存,命令主要是读命令,该函数一般是用来从闪存里面读数据,这里借用 来帮助检测闪存对读命令的反应。
所述检测RB的反应是检测RB信号是否为高,即闪存和行列地址是否匹配; 当RB信号始终为Ready状态时,闪存和行列地址不匹配;当RB信号由Ready状 态变为Busy状态,表示闪存在准备执行该命令,然后再变回Ready状态,表示闪 存已经准备好执行该命令,则说明闪存和行列地址匹配。
所述正常的行列地址则是指与闪存匹配的行列地址。
所述检测RB的反应是通过函数Check( RB )得到的。
所述方法对闪存的小页面和大页面枚举
ttdefine COLMIN1 列地址最小为1个周期
#def ine COLMAX2 列地址最大为2个周期
Mef ine RO丽IN2 行地址最小为2个周期
Mefine ROWMAX3 行地址最大为3个周期。 for(coladd=COLMIN; coladd < COLMAX; coladd++)
f or (rowadd=ROWMIN; rowadd〈丽MAX; rowadd+十)
Read_NandFlash (); 〃对NAND闪存发送地址和命令
breturn = Check ( RB ); 〃检测RB的反应所述读取是通过相同页面(大页面或者小页面)闪存的读操作命令相同,然 后在测得匹配的行列地址时,确定读取闪存的命令,从闪存中指定地址读出数据。 从闪存的0地址开始搜索配置信息字(配置信息的头标记文字),如
0x5aa55aa5,如果搜索到该标记,则说明系统的配置信息就找到了,用配置信息 配置系统参数,就可以完全操作该闪存,包括读、写和擦除等,系统也就可以正 常的启动了。
本发明的有益效果如下
用NAND闪存控制线RB的不同响应自动识别NAND闪存的行列地址的方法,然 后搜索配置信息,从而正确的启动系统,解决了系统只能从某一种NAND启动的问 题。


图1为本发明RB在正确命令和地址下的反应时序示意图 图2为本发明RB在非正确命令和地址下的反应时序示意图
具体实施例方式
如图l-2所示, 一种NAND闪存自适应启动方法,将不同的行列地址组合依次 发送给NAND闪存,然后检测RB的反应,当RB反应为正常的行列地址,则是NAND 闪存的行列地址信息,得到所述行列地址信息后,再从NAND中读取包含全部信息 的系统配置信息,启动系统。
所述发送是通过函数Read—NandFlash()向NAND闪存发送地址和命令。 ReacLNandFlash()函数主要是按照闪存的地址要求,将行列地址及命令按顺序发 送到闪存,命令主要是读命令,该函数一般是用来从闪存里面读数据,这里借用 来帮助检测闪存对读命令的反应。
所述检测RB的反应是检测RB信号是否为高,即闪存和行列地址是否匹配; 当RB信号始终为Ready状态时,闪存和行列地址不匹配;当RB信号由Ready状 态变为Busy状态,表示闪存在准备执行该命令,然后再变回Ready状态,表示闪 存己经准备好执行该命令,则说明闪存和行列地址匹配。
所述正常的行列地址则是指与闪存匹配的行列地址。
所述检测RB的反应是通过函数Check( RB )得到的。所述方法对闪存的小页面和大页面枚举 #define C0LMIN 1 列地址最小为1个周期 ttdef ine C0L區X2 列地址最大为2个周期 #def ine R0WMIN2 行地址最小为2个周期 ttdefine RO丽AX3 行地址最大为3个周期。 for(coladd=COLMIN; coladd < COLMAX; coladd++)
for(rowadd=ROWMIN; rowadd〈R0丽AX; rowadd++)
Read_NandFlash (); 〃对NAND闪存发送地址和命令
breturn = Check ( RB ); 〃检测RB的反应
所述读取是通过相同页面(大页面或者小页面)闪存的读操作命令相同,然 后在测得匹配的行列地址时,确定读取闪存的命令,从闪存中指定地址读出数据。 小页面类型NAND闪存的读命令都可以是OxOO,大页面类型的读命令都可以是0x00 和0x30。
从闪存的0地址开始搜索配置信息字(配置信息的头标记文字),如 0x5aa55aa5,如果搜索到该标记,则说明系统的配置信息就找到了,用配置信息 配置系统参数,就可以完全操作该闪存,包括读、写和擦除等,系统也就可以正 常的启动了。
8
权利要求
1、一种NAND闪存自适应启动方法,其特征在于将不同的行列地址组合依次发送给NAND闪存,然后检测RB的反应,当RB反应为正常的行列地址,则是NAND闪存的行列地址信息,得到所述行列地址信息后,再从NAND中读取包含全部信息的系统配置信息,启动系统。
2、 根据权利要求1所述一种NAND闪存自适应启动方法,其特征在于所述 发送是通过函数ReacLNandFlash()向NAND闪存发送地址和命令。
3、 根据权利要求1所述一种NAND闪存自适应启动方法,其特征在于所述 检测RB的反应是检测RB信号是否为高,即闪存和行列地址是否匹配;当RB信号 始终为Ready状态时,闪存和行列地址不匹配;当RB信号由Ready状态变为Busy 状态,表示闪存在准备执行该命令,然后再变回Ready状态,表示闪存已经准备 好执行该命令,则说明闪存和行列地址匹配。
4、 根据权利要求1所述一种NAND闪存自适应启动方法,某特征在于所述 正常的行列地址则是指与闪存匹配的行列地址。
5、 根据权利要求1所述一种NAND闪存自适应启动方法,其特征在于所述 检测RB的反应是通过函数Check( RB )得到的。
6、 根据权利要求1所述一种NAND闪存自适应启动方法,其特征在于所述 方法对闪存的小页面和大页面枚举#define COLMIN1 列地址最小为1个周期 ^define COLMAX2 列地址最大为2个周期 井define ROWMIN2 行地址最小为2个周期 ttdefine ROWMAX3 行地址最大为3个周期。 for(coladd=COLMIN; coladd < COLMAX; coIadd++)for(rowadd=ROWMIN; rowadd〈ROWMAX; rowadd++)Read—NandFlashO ; breturn = Check( RB );〃对NAND闪存发送地址和命令 〃检测RB的反应
7、根据权利要求1所述一种NAND闪存自适应启动方法,其特征在于所述 读取是通过相同页面闪存的读操作命令相同,然后在测得匹配的行列地址时,确 定读取闪存的命令,从闪存中指定地址读出数据。
全文摘要
本发明公开了一种NAND闪存自适应启动方法,将不同的行列地址组合依次发送给NAND闪存,然后检测RB的反应,当RB反应为正常的行列地址,则是NAND闪存的行列地址信息,得到所述行列地址信息后,再从NAND中读取包含全部信息的系统配置信息,启动系统;本发明用NAND闪存控制线RB的不同响应自动识别NAND闪存的行列地址的方法,然后搜索配置信息,从而正确的启动系统,解决了系统只能从某一种NAND启动的问题。
文档编号G06F9/445GK101498990SQ20081014800
公开日2009年8月5日 申请日期2008年12月25日 优先权日2008年12月25日
发明者孙银明 申请人:四川登巅微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1