專利名稱:一種nand閃存自適應(yīng)啟動(dòng)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)碼產(chǎn)品中使用閃存的系統(tǒng),特別是一種NAND閃存自適應(yīng)啟動(dòng)方法。
背景技術(shù):
嵌入式系統(tǒng)的使用在電子行業(yè)越來越普遍,系統(tǒng)軟件代碼的容量也越來越大, 需要的存儲(chǔ)空間也增大。傳統(tǒng)的系統(tǒng)代碼都是用NOR閃存存儲(chǔ)的,NOR有很多優(yōu)點(diǎn) 地址訪問方便,讀數(shù)據(jù)速度快,幾乎沒有壞道等等,使用也相當(dāng)廣泛。但是NOR 也有很大的缺點(diǎn),容量與NAND相比普遍偏小,價(jià)格也高出很多,在系統(tǒng)代碼容量 逐漸增大需求下,NAND閃存在很多應(yīng)用上逐漸取代N0R。目前在使用NAND閃存啟 動(dòng)的設(shè)計(jì)上,都是同時(shí)最多支持一種NAND閃存,小頁面或者大頁面,這就限制了 NAND的使用。
NAND閃存,其存儲(chǔ)單元結(jié)構(gòu)和與非門有關(guān),英文翻譯為NAND,優(yōu)點(diǎn)在于容量 大,最大單片16G字節(jié),讀寫速度快,價(jià)格低廉。當(dāng)然它也有缺點(diǎn),就是種類繁 多,地址訪問不如NOR方便,會(huì)有壞道。這也是NAND大量應(yīng)用的幾個(gè)技術(shù)難點(diǎn)。
NAND閃存的種類有很多,按照頁的大小分有小頁面、大頁面、4K頁、8K頁, 按照存儲(chǔ)單元結(jié)構(gòu)來分有SLC (每個(gè)存儲(chǔ)單元存儲(chǔ)2個(gè)信息)和MLC (每個(gè)存儲(chǔ)單 元存儲(chǔ)3個(gè)信息)及QLC (每個(gè)存儲(chǔ)單元存儲(chǔ)4個(gè)信息)等。NAND的地址訪問方 式和N0R不同,NAND使用串行方式,將地址分成行地址和列地址兩種,對(duì)于不同 種類和容量的NAND閃存行列地址是不同。傳統(tǒng)的NAND啟動(dòng)設(shè)計(jì)只能在其中一種 結(jié)構(gòu)上實(shí)現(xiàn),要兼容所有的NAND閃存就要有自動(dòng)識(shí)別NAND種類的方法。
NAND閃存存儲(chǔ)包括字節(jié)、頁、塊3種組成部分, 一個(gè)塊內(nèi)有若干個(gè)頁, 一個(gè) 頁內(nèi)有若干個(gè)字節(jié)。按照頁的大小又分為小頁面和大頁面。NAND的地址是串行的, 分為行和列地址2種,大小頁面的地址是不同的。列地址是指閃存一個(gè)頁內(nèi)的地 址,小頁面一個(gè)頁是512字節(jié),因此列地址只有一個(gè)8位(即一個(gè)周期),行地址 則是指閃存包含多少塊和多少頁,根據(jù)容量的不同,會(huì)有2個(gè)周期地址或者3個(gè) 周期地址,如表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 細(xì) ^______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對(duì)Cycte細(xì)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個(gè)周期列地址2個(gè)周期行地址
列地址l 行地址l
行地址2 行地址3
表2 l個(gè)周期列地址3個(gè)周期行地址 大頁面一個(gè)頁有2048字節(jié)或者4096字節(jié)或者8192字節(jié),因此需要2個(gè)周期 的列地址來表示,而行地址則根據(jù)閃存容量的大小有2個(gè)周期或者3個(gè)周期,如 表3-4所示
'列地址i
'列地址2 '行地址, 行地址2
表3 2個(gè)周期列地址2個(gè)周期行地址
列地址i
列地址2
表4 2個(gè)周期列地址3個(gè)周期行地址 NAND閃存的操作時(shí)序, 一般是先發(fā)命令碼和行列地址,然后看RB的信號(hào)的 狀態(tài),來判斷該命令執(zhí)行是否正確。RB信號(hào)是閃存的控制信號(hào)之一,R表示 "Ready" , B表示"Busy"。
在正確收到一個(gè)命令以后,RB信號(hào)會(huì)由Ready狀態(tài)變?yōu)锽usy狀態(tài),表示閃 存在準(zhǔn)備執(zhí)行該命令,然后再變回Ready狀態(tài),表示閃存己經(jīng)準(zhǔn)備好執(zhí)行該命令, 如圖l所示。
圖1是對(duì)2個(gè)列地址3個(gè)行地址類型的閃存的讀操作,如果對(duì)同樣的閃存發(fā)送 給它的地址是1個(gè)列地址2個(gè)行地址,RB的反應(yīng)如圖2所示。
可以看出,RB信號(hào)始終為高,即閃存對(duì)和自身不匹配的行列地址操作的反應(yīng)
5
址,s s
地地地
行行是RB始終為高,不進(jìn)行命令準(zhǔn)備階段。
發(fā)明內(nèi)容
本發(fā)明為解決上述問題提供了一種NAND閃存自適應(yīng)啟動(dòng)方法,用N緒D閃存 控制線RB的不同響應(yīng)自動(dòng)識(shí)別NAND閃存的行列地址周期的方法,并利用NAND讀 操作的通用性來讀取系統(tǒng)配置數(shù)據(jù),從而達(dá)到正確讀取系統(tǒng)代碼,啟動(dòng)系統(tǒng)。
一種NAND閃存自適應(yīng)啟動(dòng)方法,其特征在于將不同的行列地址組合依次發(fā) 送給NAND閃存,然后檢測RB的反應(yīng),當(dāng)RB反應(yīng)為正常的行列地址,則是NAND 閃存的行列地址信息,得到所述行列地址信息后,再從NAND中讀取包含全部信息 的系統(tǒng)配置信息,啟動(dòng)系統(tǒng)。
所述發(fā)送是通過函數(shù)Read—NandFlash()向NAND閃存發(fā)送地址和命令。 ReadJJandFlash()函數(shù)主要是按照閃存的地址要求,將行列地址及命令按順序發(fā) 送到閃存,命令主要是讀命令,該函數(shù)一般是用來從閃存里面讀數(shù)據(jù),這里借用 來幫助檢測閃存對(duì)讀命令的反應(yīng)。
所述檢測RB的反應(yīng)是檢測RB信號(hào)是否為高,即閃存和行列地址是否匹配; 當(dāng)RB信號(hào)始終為Ready狀態(tài)時(shí),閃存和行列地址不匹配;當(dāng)RB信號(hào)由Ready狀 態(tài)變?yōu)锽usy狀態(tài),表示閃存在準(zhǔn)備執(zhí)行該命令,然后再變回Ready狀態(tài),表示閃 存已經(jīng)準(zhǔn)備好執(zhí)行該命令,則說明閃存和行列地址匹配。
所述正常的行列地址則是指與閃存匹配的行列地址。
所述檢測RB的反應(yīng)是通過函數(shù)Check( RB )得到的。
所述方法對(duì)閃存的小頁面和大頁面枚舉
ttdefine COLMIN1 列地址最小為1個(gè)周期
#def ine COLMAX2 列地址最大為2個(gè)周期
Mef ine RO麗IN2 行地址最小為2個(gè)周期
Mefine ROWMAX3 行地址最大為3個(gè)周期。 for(coladd=COLMIN; coladd < COLMAX; coladd++)
f or (rowadd=ROWMIN; rowadd〈麗MAX; rowadd+十)
Read_NandFlash (); 〃對(duì)NAND閃存發(fā)送地址和命令
breturn = Check ( RB ); 〃檢測RB的反應(yīng)所述讀取是通過相同頁面(大頁面或者小頁面)閃存的讀操作命令相同,然 后在測得匹配的行列地址時(shí),確定讀取閃存的命令,從閃存中指定地址讀出數(shù)據(jù)。 從閃存的0地址開始搜索配置信息字(配置信息的頭標(biāo)記文字),如
0x5aa55aa5,如果搜索到該標(biāo)記,則說明系統(tǒng)的配置信息就找到了,用配置信息 配置系統(tǒng)參數(shù),就可以完全操作該閃存,包括讀、寫和擦除等,系統(tǒng)也就可以正 常的啟動(dòng)了。
本發(fā)明的有益效果如下
用NAND閃存控制線RB的不同響應(yīng)自動(dòng)識(shí)別NAND閃存的行列地址的方法,然 后搜索配置信息,從而正確的啟動(dòng)系統(tǒng),解決了系統(tǒng)只能從某一種NAND啟動(dòng)的問 題。
圖1為本發(fā)明RB在正確命令和地址下的反應(yīng)時(shí)序示意圖 圖2為本發(fā)明RB在非正確命令和地址下的反應(yīng)時(shí)序示意圖
具體實(shí)施例方式
如圖l-2所示, 一種NAND閃存自適應(yīng)啟動(dòng)方法,將不同的行列地址組合依次 發(fā)送給NAND閃存,然后檢測RB的反應(yīng),當(dāng)RB反應(yīng)為正常的行列地址,則是NAND 閃存的行列地址信息,得到所述行列地址信息后,再從NAND中讀取包含全部信息 的系統(tǒng)配置信息,啟動(dòng)系統(tǒng)。
所述發(fā)送是通過函數(shù)Read—NandFlash()向NAND閃存發(fā)送地址和命令。 ReacLNandFlash()函數(shù)主要是按照閃存的地址要求,將行列地址及命令按順序發(fā) 送到閃存,命令主要是讀命令,該函數(shù)一般是用來從閃存里面讀數(shù)據(jù),這里借用 來幫助檢測閃存對(duì)讀命令的反應(yīng)。
所述檢測RB的反應(yīng)是檢測RB信號(hào)是否為高,即閃存和行列地址是否匹配; 當(dāng)RB信號(hào)始終為Ready狀態(tài)時(shí),閃存和行列地址不匹配;當(dāng)RB信號(hào)由Ready狀 態(tài)變?yōu)锽usy狀態(tài),表示閃存在準(zhǔn)備執(zhí)行該命令,然后再變回Ready狀態(tài),表示閃 存己經(jīng)準(zhǔn)備好執(zhí)行該命令,則說明閃存和行列地址匹配。
所述正常的行列地址則是指與閃存匹配的行列地址。
所述檢測RB的反應(yīng)是通過函數(shù)Check( RB )得到的。所述方法對(duì)閃存的小頁面和大頁面枚舉 #define C0LMIN 1 列地址最小為1個(gè)周期 ttdef ine C0L區(qū)X2 列地址最大為2個(gè)周期 #def ine R0WMIN2 行地址最小為2個(gè)周期 ttdefine RO麗AX3 行地址最大為3個(gè)周期。 for(coladd=COLMIN; coladd < COLMAX; coladd++)
for(rowadd=ROWMIN; rowadd〈R0麗AX; rowadd++)
Read_NandFlash (); 〃對(duì)NAND閃存發(fā)送地址和命令
breturn = Check ( RB ); 〃檢測RB的反應(yīng)
所述讀取是通過相同頁面(大頁面或者小頁面)閃存的讀操作命令相同,然 后在測得匹配的行列地址時(shí),確定讀取閃存的命令,從閃存中指定地址讀出數(shù)據(jù)。 小頁面類型NAND閃存的讀命令都可以是OxOO,大頁面類型的讀命令都可以是0x00 和0x30。
從閃存的0地址開始搜索配置信息字(配置信息的頭標(biāo)記文字),如 0x5aa55aa5,如果搜索到該標(biāo)記,則說明系統(tǒng)的配置信息就找到了,用配置信息 配置系統(tǒng)參數(shù),就可以完全操作該閃存,包括讀、寫和擦除等,系統(tǒng)也就可以正 常的啟動(dòng)了。
8
權(quán)利要求
1、一種NAND閃存自適應(yīng)啟動(dòng)方法,其特征在于將不同的行列地址組合依次發(fā)送給NAND閃存,然后檢測RB的反應(yīng),當(dāng)RB反應(yīng)為正常的行列地址,則是NAND閃存的行列地址信息,得到所述行列地址信息后,再從NAND中讀取包含全部信息的系統(tǒng)配置信息,啟動(dòng)系統(tǒng)。
2、 根據(jù)權(quán)利要求1所述一種NAND閃存自適應(yīng)啟動(dòng)方法,其特征在于所述 發(fā)送是通過函數(shù)ReacLNandFlash()向NAND閃存發(fā)送地址和命令。
3、 根據(jù)權(quán)利要求1所述一種NAND閃存自適應(yīng)啟動(dòng)方法,其特征在于所述 檢測RB的反應(yīng)是檢測RB信號(hào)是否為高,即閃存和行列地址是否匹配;當(dāng)RB信號(hào) 始終為Ready狀態(tài)時(shí),閃存和行列地址不匹配;當(dāng)RB信號(hào)由Ready狀態(tài)變?yōu)锽usy 狀態(tài),表示閃存在準(zhǔn)備執(zhí)行該命令,然后再變回Ready狀態(tài),表示閃存已經(jīng)準(zhǔn)備 好執(zhí)行該命令,則說明閃存和行列地址匹配。
4、 根據(jù)權(quán)利要求1所述一種NAND閃存自適應(yīng)啟動(dòng)方法,某特征在于所述 正常的行列地址則是指與閃存匹配的行列地址。
5、 根據(jù)權(quán)利要求1所述一種NAND閃存自適應(yīng)啟動(dòng)方法,其特征在于所述 檢測RB的反應(yīng)是通過函數(shù)Check( RB )得到的。
6、 根據(jù)權(quán)利要求1所述一種NAND閃存自適應(yīng)啟動(dòng)方法,其特征在于所述 方法對(duì)閃存的小頁面和大頁面枚舉#define COLMIN1 列地址最小為1個(gè)周期 ^define COLMAX2 列地址最大為2個(gè)周期 井define ROWMIN2 行地址最小為2個(gè)周期 ttdefine ROWMAX3 行地址最大為3個(gè)周期。 for(coladd=COLMIN; coladd < COLMAX; coIadd++)for(rowadd=ROWMIN; rowadd〈ROWMAX; rowadd++)Read—NandFlashO ; breturn = Check( RB );〃對(duì)NAND閃存發(fā)送地址和命令 〃檢測RB的反應(yīng)
7、根據(jù)權(quán)利要求1所述一種NAND閃存自適應(yīng)啟動(dòng)方法,其特征在于所述 讀取是通過相同頁面閃存的讀操作命令相同,然后在測得匹配的行列地址時(shí),確 定讀取閃存的命令,從閃存中指定地址讀出數(shù)據(jù)。
全文摘要
本發(fā)明公開了一種NAND閃存自適應(yīng)啟動(dòng)方法,將不同的行列地址組合依次發(fā)送給NAND閃存,然后檢測RB的反應(yīng),當(dāng)RB反應(yīng)為正常的行列地址,則是NAND閃存的行列地址信息,得到所述行列地址信息后,再從NAND中讀取包含全部信息的系統(tǒng)配置信息,啟動(dòng)系統(tǒng);本發(fā)明用NAND閃存控制線RB的不同響應(yīng)自動(dòng)識(shí)別NAND閃存的行列地址的方法,然后搜索配置信息,從而正確的啟動(dòng)系統(tǒng),解決了系統(tǒng)只能從某一種NAND啟動(dòng)的問題。
文檔編號(hào)G06F9/445GK101498990SQ20081014800
公開日2009年8月5日 申請日期2008年12月25日 優(yōu)先權(quán)日2008年12月25日
發(fā)明者孫銀明 申請人:四川登巔微電子有限公司