專利名稱:一種系統(tǒng)級(jí)芯片利用nand閃存啟動(dòng)的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種系統(tǒng)級(jí)芯片利用NAND閃存啟動(dòng)的方法。
背景技術(shù):
NAND閃存是flash內(nèi)存的一種,其內(nèi)部采用非線性宏單元模式,為固態(tài)大容量?jī)?nèi)存的實(shí)現(xiàn)提供了廉價(jià)有效的解決方案。NAND-flash存儲(chǔ)器具有容量較大,改寫速度快等優(yōu)點(diǎn),適用于大量數(shù)據(jù)的存儲(chǔ),因而在業(yè)界得到了越來(lái)越廣泛的應(yīng)用,如嵌入式產(chǎn)品中包括數(shù)碼相機(jī)、MP3隨身聽記憶卡、體積小巧的U盤等。然而,當(dāng)前的系統(tǒng)級(jí)芯片-SoC(System on Chip) 一般支持直接從NAND閃存啟動(dòng), 并支持盡可能多的NAND閃存。但由于NAND閃存技術(shù)發(fā)展較快,NAND閃存器件提供商也越來(lái)越多,NAND閃存的標(biāo)識(shí)沒有統(tǒng)一的標(biāo)準(zhǔn),導(dǎo)致當(dāng)初已固化的SoC并不一定都支持最新的 NAND閃存。SoC從NAND閃存啟動(dòng)需事先讀取NAND閃存的一些規(guī)格信息,包括數(shù)據(jù)總線寬度、 地址寬度、頁(yè)大小、空閑區(qū)大小、ECC(錯(cuò)誤檢查和糾正)強(qiáng)度信息和擦除塊大小。如圖1所示NAND-Flash ±夬結(jié)構(gòu)圖。圖1中,頁(yè)大小(Page Size)可以是小頁(yè)512B和大頁(yè)2048B、 4096B、8192B(字節(jié));空閑區(qū)大小可以是16B、64B、128B、218B、216B、224B或未來(lái)其它字節(jié)數(shù),空閑區(qū)用以存儲(chǔ)包括ECC強(qiáng)度信息和壞塊標(biāo)記;NAND閃存以頁(yè)為單位讀寫數(shù)據(jù),而以塊為單位擦除數(shù)據(jù),為了跳過不可靠塊或壞塊,擦除塊大小需要被標(biāo)識(shí),擦除塊大小包括一個(gè)塊64頁(yè)或者一個(gè)塊1 頁(yè)或更多。目前常用的NAND閃存規(guī)格信息標(biāo)識(shí)方法有以下幾種1、增加啟動(dòng)模式管腳(Boot Mode Pins),例如三星公司的S3C6410芯片的啟動(dòng)模式支持NAND閃存512B-3、512B-4、2KB-5、5KB-5,分別是頁(yè)大小512字節(jié)3個(gè)地址,512字節(jié) 4個(gè)地址,2048字節(jié)5個(gè)地址,4096字節(jié)5個(gè)地址。它的缺點(diǎn)是只支持8位數(shù)據(jù)總線寬度的 NAND且不支持16位寬度的NAND閃存。又如中飛思卡爾i. MX31的兩個(gè)啟動(dòng)管腳分別表示頁(yè)大小512或2048字節(jié),數(shù)據(jù)總線寬度8或16位。但該方法靈活性較差,將給SoC增加了額外的管腳,且所支持的NAND閃存種類有限。2、通過讀取NAND閃存的IDs,包括廠商碼,設(shè)備碼,擴(kuò)展碼,來(lái)識(shí)別NAND閃存的規(guī)格。如Read ID(90H)命令(不需要任何參數(shù))被所有的NAND閃存閃存所支持。TI的 0MAP3430采用此方法,但硅片(die)在4GB及其以上的NAND閃存開始不遵循以往的編碼規(guī)定。ONFI (Open Nand flash Interface)標(biāo)準(zhǔn)的NAND閃存雖然有統(tǒng)一的編碼,但幾乎沒得到應(yīng)用,尤其是ONFI 1.X。3、君正JZ4760Aburst650使用了一種復(fù)雜的方法標(biāo)識(shí)NAND閃存,基本做到了能從任意一種的NAND閃存啟動(dòng),但該方法的缺點(diǎn)是(1)、標(biāo)識(shí)信息雖然有響應(yīng)的ECC保護(hù),但在實(shí)際啟動(dòng)讀取這些標(biāo)識(shí)信息時(shí),沒用且無(wú)法用ECC進(jìn)行錯(cuò)誤檢查和糾正。只能利用本身的冗余字節(jié)來(lái)規(guī)避NAND閃存的讀取錯(cuò)誤;
O)、啟動(dòng)速度慢,要試錯(cuò)讀多次才可能獲取標(biāo)識(shí)信息,由于小頁(yè)(512字節(jié))和大頁(yè)NAND閃存的讀序列不同;地址寬度需要進(jìn)行多次嘗試獲??;所采用的固定M-bit ECC進(jìn)行錯(cuò)誤檢查和糾正影響啟動(dòng)速度。(3)、缺少擦除塊大小信息,不具備跳過不可靠塊或壞塊的功能特點(diǎn)。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種低成本、可靠性高且易于使用的NAND閃存的標(biāo)識(shí)方法, 以便快速啟動(dòng)系統(tǒng)級(jí)芯片。為實(shí)現(xiàn)上述目的,本發(fā)明提供了一種系統(tǒng)級(jí)芯片利用NAND閃存啟動(dòng)的方法,其特征在于從NAND閃存讀取啟動(dòng)標(biāo)頭(Boot Header)信息,根據(jù)啟動(dòng)標(biāo)頭信息讀取NAND閃存中的啟動(dòng)代碼,執(zhí)行啟動(dòng)代碼。根據(jù)本發(fā)明的方法可以用較小的代價(jià)來(lái)標(biāo)識(shí)NAND的規(guī)格信息,使得系統(tǒng)級(jí)芯片能從任意新型的NAND啟動(dòng),同時(shí)仍保持使用足夠的ECC強(qiáng)度保護(hù)用戶標(biāo)識(shí)的信息,可靠性高。系統(tǒng)級(jí)芯片總是能夠按照大頁(yè)的方式序列讀出啟動(dòng)標(biāo)頭及其ECC碼,根據(jù)啟動(dòng)標(biāo)頭所標(biāo)識(shí)的信息,系統(tǒng)級(jí)芯片可以正常讀出主區(qū)域中的啟動(dòng)代碼,并執(zhí)行啟動(dòng)代碼。
通過以下結(jié)合附圖以舉例方式對(duì)本發(fā)明的具體實(shí)施方案進(jìn)行詳細(xì)描述后,本發(fā)明的其他特征、特點(diǎn)和優(yōu)點(diǎn)將會(huì)更加明顯。附圖中圖1為NAND閃存塊結(jié)構(gòu)圖;圖2為本發(fā)明一實(shí)施例的NAND閃存結(jié)構(gòu)圖;圖3為本發(fā)明一實(shí)施例的NAND閃存的啟動(dòng)頭標(biāo)結(jié)構(gòu)圖;圖4為本發(fā)明另一實(shí)施例的NAND閃存的啟動(dòng)頭標(biāo)結(jié)構(gòu)圖;圖5為本發(fā)明另一實(shí)施例的NAND閃存的啟動(dòng)頭標(biāo)結(jié)構(gòu)圖。
具體實(shí)施例方式圖2為本發(fā)明一實(shí)施例的NAND閃存結(jié)構(gòu)圖。在圖2中,NAND的第一塊的第一頁(yè)中的前半部分用于存放啟動(dòng)標(biāo)頭(Boot Header)信息、錯(cuò)誤檢查和糾正(ECC)碼,啟動(dòng)標(biāo)頭和它的ECC碼具有固定的長(zhǎng)度,例如啟動(dòng)標(biāo)頭采用512byte,ECC碼采用16-byte。優(yōu)選地, ECC碼采用8-bit糾錯(cuò)的BCH算法,NAND的第一塊的第二頁(yè)用于存放啟動(dòng)代碼(Boot loader code),相應(yīng)的空閑區(qū)部分用于存放啟動(dòng)代碼相應(yīng)的ECC碼。啟動(dòng)標(biāo)頭用于標(biāo)識(shí)NAND閃存的頁(yè)大小信息、空閑區(qū)大小信息、擦除塊大小信息、 地址寬度信息、ECC模式信息、預(yù)留信息以及ECC強(qiáng)度信息。NAND閃存規(guī)格信息中的數(shù)據(jù)總線寬度不需要標(biāo)識(shí),由于數(shù)據(jù)總線寬度廣泛運(yùn)用8-bit NAND閃存,若要支持16-bit NAND 閃存可以通過Read ID的方法來(lái)獲取NAND閃存的設(shè)備碼或廠商碼,因?yàn)閺S商碼、設(shè)備碼的編碼已經(jīng)得到很好的遵循。啟動(dòng)時(shí),系統(tǒng)級(jí)芯片從NAND-Flash閃存讀取啟動(dòng)標(biāo)頭信息,根據(jù)啟動(dòng)標(biāo)頭信息讀取NAND-Flash閃存中的啟動(dòng)代碼,執(zhí)行啟動(dòng)代碼。
在NAND-Flash閃存存儲(chǔ)有所述啟動(dòng)標(biāo)頭信息的ECC碼的情況下,從NAND-Flash 閃存讀取ECC碼,并且根據(jù)ECC碼對(duì)啟動(dòng)標(biāo)頭信息糾錯(cuò)。在NAND-Flash閃存存儲(chǔ)有啟動(dòng)代碼的ECC碼的情況下,從NAND-Flash閃存中讀取ECC碼并且根據(jù)ECC碼對(duì)啟動(dòng)代碼糾錯(cuò)。根據(jù)本發(fā)明,可以采用不同的NAND閃存的啟動(dòng)頭標(biāo),以適用不同類型的NAND閃存。圖3為本發(fā)明一實(shí)施例的NAND閃存的啟動(dòng)頭標(biāo)結(jié)構(gòu)圖。圖3示意了長(zhǎng)度為 512-byte的啟動(dòng)標(biāo)頭和長(zhǎng)度為16-byte的ECC碼。啟動(dòng)標(biāo)頭中的頁(yè)大小采用4_byte長(zhǎng)度來(lái)標(biāo)識(shí)信息,如NAND閃存的每頁(yè)為2048-byte的定義為大頁(yè),需要在啟動(dòng)標(biāo)頭中被標(biāo)識(shí),小頁(yè)(512-byte)NAND閃存無(wú)需標(biāo)識(shí),通過Read ID的方法來(lái)區(qū)分;空閑區(qū)大小采用4_byte長(zhǎng)度來(lái)標(biāo)識(shí)信息,當(dāng)需要自動(dòng)計(jì)算ECC強(qiáng)度時(shí)需要標(biāo)識(shí)(不同的ECC強(qiáng)度需要占用不同大小的空閑區(qū))。擦除塊大小采用4-byte長(zhǎng)度來(lái)標(biāo)識(shí)信息,NAND閃存是以頁(yè)為單位讀寫數(shù)據(jù),而以塊為單位擦除數(shù)據(jù),以便跳過不可靠塊或壞塊;地址寬度采用Ι-byte長(zhǎng)度來(lái)標(biāo)識(shí)信息, 早期NAND閃存只接受固定的地址寬度,3個(gè)或4個(gè)字節(jié)地址,但同時(shí)那個(gè)時(shí)期的NAND閃存有著規(guī)范的編碼方式,通過Read ID的方式可以區(qū)分地址寬度。最新的NAND閃存總是能夠接受5個(gè)字節(jié)的地址寬度,即使多余,也能夠被忽略掉最后一行,所以地址寬度可以標(biāo)識(shí)出來(lái),以加快啟動(dòng)速度。ECC模式采用Ι-byte長(zhǎng)度來(lái)標(biāo)識(shí)信息,選擇將讀出的啟動(dòng)代碼所采用的ECC算法,例如ECC的值為OxFF,則根據(jù)頁(yè)大小和空閑區(qū)大小的值來(lái)選擇最強(qiáng)度的ECC 算法。啟動(dòng)標(biāo)頭中的498-byte做為預(yù)留備用。啟動(dòng)標(biāo)頭相應(yīng)的ECC采用3_byte做為預(yù)留備用,采用13-byte長(zhǎng)度來(lái)標(biāo)識(shí)ECC強(qiáng)度信息,為了加快啟動(dòng)速度而使用用戶指定的ECC算法,如指定8-bit的BCH算法,需要進(jìn)行標(biāo)識(shí)。圖4為本發(fā)明另一實(shí)施例的NAND閃存的啟動(dòng)頭標(biāo)結(jié)構(gòu)圖。圖4示意了長(zhǎng)度為 512-byte的啟動(dòng)標(biāo)頭和長(zhǎng)度為256_byte的ECC。啟動(dòng)標(biāo)頭中的頁(yè)大小采用4_byte長(zhǎng)度來(lái)標(biāo)識(shí)信息;空閑區(qū)大小采用4-byte長(zhǎng)度來(lái)標(biāo)識(shí)信息;擦除塊大小采用4-byte長(zhǎng)度來(lái)標(biāo)識(shí)信息;地址寬度采用Ι-byte長(zhǎng)度來(lái)標(biāo)識(shí)信息;ECC模式采用l_byte長(zhǎng)度來(lái)標(biāo)識(shí)信息,選擇將讀出的啟動(dòng)代碼所采用的ECC算法;啟動(dòng)標(biāo)頭中的498-byte做為預(yù)留備用。啟動(dòng)標(biāo)頭相應(yīng)的ECC采用217-byte做為預(yù)留備用,采用39-byte長(zhǎng)度來(lái)標(biāo)識(shí)ECC強(qiáng)度信息,為了加快啟動(dòng)速度而使用用戶指定的ECC算法,如指定M-bit的BCH算法,需要進(jìn)行標(biāo)識(shí)。圖5為本發(fā)明另一實(shí)施例的NAND閃存的啟動(dòng)頭標(biāo)結(jié)構(gòu)圖。圖5示意了長(zhǎng)度為 256-byte的啟動(dòng)標(biāo)頭和長(zhǎng)度為256_byte的ECC。啟動(dòng)標(biāo)頭中的頁(yè)大小采用4_byte長(zhǎng)度來(lái)標(biāo)識(shí)信息;空閑區(qū)大小采用4-byte長(zhǎng)度來(lái)標(biāo)識(shí)信息;擦除塊大小采用4-byte長(zhǎng)度來(lái)標(biāo)識(shí)信息;地址寬度采用Ι-byte長(zhǎng)度來(lái)標(biāo)識(shí)信息;ECC模式采用l_byte長(zhǎng)度來(lái)標(biāo)識(shí)信息,選擇將讀出的啟動(dòng)代碼所采用的ECC算法;啟動(dòng)標(biāo)頭中做為預(yù)留備用。啟動(dòng)標(biāo)頭相應(yīng)的ECC采用220-byte做為預(yù)留備用,采用36-byte長(zhǎng)度來(lái)標(biāo)識(shí)ECC強(qiáng)度信息,為了加快啟動(dòng)速度而使用用戶指定的ECC算法,如指定M-bit的BCH算法,需要進(jìn)行標(biāo)識(shí)。顯而易見,在不偏離本發(fā)明專利的真實(shí)精神和范圍的前提下,在此描述的本發(fā)明專利可以有許多變化。因此,所有對(duì)于本領(lǐng)域技術(shù)人員來(lái)說(shuō)顯而易見的改變,都應(yīng)包括在本權(quán)利要求書所涵蓋的范圍之內(nèi)。本發(fā)明專利所要求保護(hù)的范圍僅由所述的權(quán)利要求書進(jìn)行限定。
權(quán)利要求
1.一種系統(tǒng)級(jí)芯片利用NAND閃存啟動(dòng)的方法,其特征在于從NAND閃存讀取啟動(dòng)標(biāo)頭信息,根據(jù)啟動(dòng)標(biāo)頭信息讀取NAND閃存中的啟動(dòng)代碼,執(zhí)行啟動(dòng)代碼。
2.根據(jù)權(quán)利要求1所述的啟動(dòng)方法,其特征在于NAND閃存存儲(chǔ)有所述啟動(dòng)標(biāo)頭信息的 ECC碼,所述從NAND閃存讀取啟動(dòng)標(biāo)頭信息的步驟包括讀取ECC碼并且根據(jù)ECC碼對(duì)啟動(dòng)標(biāo)頭信息糾錯(cuò)。
3.根據(jù)權(quán)利要求2所述的啟動(dòng)方法,其特征在于ECC碼的空間大小因算法而不同。
4.根據(jù)權(quán)利要求1所述的啟動(dòng)方法,其特征在于NAND閃存存儲(chǔ)有所述啟動(dòng)代碼的ECC 碼,所述讀取NAND閃存中的啟動(dòng)代碼的步驟包括讀取ECC碼并且根據(jù)ECC碼對(duì)啟動(dòng)代碼糾講T曰ο
5.根據(jù)權(quán)利要求2-4之一所述的方法,其特征在于所述ECC碼包括BCH算法。
6.根據(jù)權(quán)利要求1所述的啟動(dòng)方法,其特征在于所述啟動(dòng)標(biāo)頭信息和/或所述啟動(dòng)標(biāo)頭信息的ECC碼設(shè)置在NAND閃存第一塊的第一頁(yè)中的前半部。
7.根據(jù)權(quán)利要求1所述的啟動(dòng)方法,其特征在于所述啟動(dòng)標(biāo)頭信息包括頁(yè)大小、空閑區(qū)大小、擦除塊大小、地址寬度以及ECC模式中的一個(gè)或數(shù)個(gè)。
8.根據(jù)權(quán)利要求1所述的方法,其特征在于包括通過讀取ID的方式來(lái)獲取數(shù)據(jù)總線寬度、地址寬度和小頁(yè)信息中的一個(gè)或多個(gè)。
全文摘要
本發(fā)明公開了一種系統(tǒng)級(jí)芯片利用NAND閃存啟動(dòng)的方法,其特征在于從NAND閃存讀取啟動(dòng)標(biāo)頭信息,根據(jù)啟動(dòng)標(biāo)頭信息讀取NAND閃存中的啟動(dòng)代碼,執(zhí)行啟動(dòng)代碼。根據(jù)本發(fā)明的方法可以用較小的代價(jià)來(lái)標(biāo)識(shí)NAND閃存的規(guī)格信息,使得系統(tǒng)級(jí)芯片能從任意新型的NAND閃存啟動(dòng),同時(shí)仍保持使用足夠的ECC強(qiáng)度保護(hù)用戶標(biāo)識(shí)的信息,可靠性高。
文檔編號(hào)G06F9/445GK102163158SQ20111011117
公開日2011年8月24日 申請(qǐng)日期2011年4月29日 優(yōu)先權(quán)日2011年4月29日
發(fā)明者陸偉 申請(qǐng)人:北京凡達(dá)訊科技有限公司