两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種芯片參數(shù)的識(shí)別方法及系統(tǒng)的制作方法

文檔序號(hào):6783519閱讀:231來源:國知局
專利名稱:一種芯片參數(shù)的識(shí)別方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及芯片技術(shù)領(lǐng)域,尤其涉及一種芯片參數(shù)的識(shí)別方法及系統(tǒng)。
背景技術(shù)
現(xiàn)有技術(shù)中,如果要使用某一款閃存(nandflash)芯片,就必須要獲得芯片的數(shù) 據(jù)表(datasheet)技術(shù)文檔,根據(jù)技術(shù)文檔的描述,組織一個(gè)參數(shù)列表,軟件或硬件是通過 參數(shù)列表中的各種參數(shù)進(jìn)行工作。而目前,很多nandflash的生產(chǎn)廠商出于保護(hù)的目的,只向大型客戶公開授權(quán)的 datasheet技術(shù)文檔,不向小型客戶及研發(fā)人員公開nandflash芯片的datasheet技術(shù)文 檔。另外,由于nandflash芯片不斷推出新型產(chǎn)品,為了支持不斷推出的新品,廠家必須不 斷更新nandflash參數(shù)列表(軟件或硬件),不利于產(chǎn)品的生產(chǎn)。

發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供了一種芯片參數(shù)的識(shí)別方法及系統(tǒng),用以識(shí)別nandflash芯片 的物理參數(shù)。本發(fā)明實(shí)施例提供的一種芯片參數(shù)的識(shí)別方法包括分別向閃存nandflash芯片的多個(gè)特定字節(jié)區(qū)域?qū)懭氩煌臄?shù)據(jù),其中,所述特 定字節(jié)區(qū)域是預(yù)先根據(jù)nandflash芯片的各種頁page類型確定的;讀取特定字節(jié)區(qū)域中的數(shù)據(jù),通過將讀取到的數(shù)據(jù)與寫入該特定字節(jié)區(qū)域中的數(shù) 據(jù)進(jìn)行比較,確定nandflash芯片的page類型。本發(fā)明實(shí)施例提供的一種芯片參數(shù)的識(shí)別系統(tǒng)包括page類型識(shí)別單元,該page 類型識(shí)別單元包括特定字節(jié)區(qū)域?qū)懭雴卧?,用于分別向閃存nandflash芯片的多個(gè)特定字節(jié)區(qū)域?qū)?入不同的數(shù)據(jù),其中,所述特定字節(jié)區(qū)域是預(yù)先根據(jù)nandflash芯片的各種頁page類型確 定的;特定字節(jié)區(qū)域讀取單元,用于讀取特定字節(jié)區(qū)域中的數(shù)據(jù);比較單元,用于通過將從特定字節(jié)區(qū)域中讀取到的數(shù)據(jù)與寫入該特定字節(jié)區(qū)域中 的數(shù)據(jù)進(jìn)行比較,確定nandflash芯片的page類型。本發(fā)明實(shí)施例,分別向閃存nandflash芯片的多個(gè)特定字節(jié)區(qū)域?qū)懭氩煌臄?shù) 據(jù),然后讀取特定字節(jié)區(qū)域中的數(shù)據(jù),通過將讀取到的數(shù)據(jù)與寫入該特定字節(jié)區(qū)域中的數(shù) 據(jù)進(jìn)行比較,確定了 nandflash芯片的page類型。


圖1為本發(fā)明實(shí)施例提供的一種識(shí)別nandflash芯片的page類型的總體方法流 程示意圖;圖2為本發(fā)明實(shí)施例提供的一種nandflash芯片參數(shù)識(shí)別的主要流程示意圖3為本發(fā)明實(shí)施例提供的嘗試讀取事先約定好的nandflash區(qū)域的nandflash 物理參數(shù)的具體流程示意圖;圖4為本發(fā)明實(shí)施例提供的page類型判斷的具體流程示意圖;圖5為本發(fā)明實(shí)施例提供的識(shí)別nandflash芯片每個(gè)block包括的page數(shù)目的 具體流程示意圖;圖6為本發(fā)明實(shí)施例提供的確定nandflash芯片的block數(shù)目的流程示意圖;圖7為本發(fā)明實(shí)施例提供的確定最佳時(shí)間參數(shù)(timing)的流程示意圖;圖8為本發(fā)明實(shí)施例提供的一種芯片參數(shù)的識(shí)別系統(tǒng)的結(jié)構(gòu)示意圖;圖9為本發(fā)明實(shí)施例提供的一種page類型識(shí)別單元的結(jié)構(gòu)示意圖;圖10為本發(fā)明實(shí)施例提供的一種block數(shù)目識(shí)別單元的結(jié)構(gòu)示意圖。
具體實(shí)施例方式本發(fā)明實(shí)施例提供了一種芯片參數(shù)的識(shí)別方法及系統(tǒng),用以識(shí)別nandflash芯片 的物理參數(shù)。本發(fā)明實(shí)施例提供的nandflash芯片識(shí)別方案,可以識(shí)別出任何未知nandflash 芯片的物理參數(shù)信息,使得開發(fā)人員在一定程度上擺脫了對(duì)datasheet技術(shù)文檔的依賴; 通過將識(shí)別出的物理參數(shù)信息保存在nandflash芯片上,廠家不用不斷更新nandflash芯 片的參數(shù)表。本發(fā)明實(shí)施例通過遍歷式的嘗試,逐步識(shí)別出未知nandflash芯片的多項(xiàng)物理參 數(shù),包括芯片的塊(block)的數(shù)目,每個(gè)塊包含的頁(page)的數(shù)目,每頁有效數(shù)據(jù)區(qū)(data area)的大小,每頁預(yù)留區(qū)域(spare area)的大小,芯片的物理結(jié)構(gòu),最佳的timing。其中,芯片的物理結(jié)構(gòu)包括單級(jí)單元(SLC,Single-Level cell)和多級(jí)單元 (MLC, Multi-Level cell)兩種物理結(jié)構(gòu)。需要說明的是,本發(fā)明實(shí)施例中,向nandflash芯片寫入的數(shù)據(jù),不能為Oxff,因 為,nandflash芯片格式化后,該nandflash芯片中的數(shù)據(jù)全部是Oxff。下面結(jié)合附圖對(duì)本發(fā)明實(shí)施例提供的技術(shù)方案進(jìn)行詳細(xì)說明。參見圖1,本發(fā)明實(shí)施例提供的一種nandflash芯片的page類型的識(shí)別方法總體 包括步驟S101、分別向nandflash芯片的多個(gè)特定字節(jié)區(qū)域?qū)懭氩煌臄?shù)據(jù),其中,所述特 定字節(jié)區(qū)域是預(yù)先根據(jù)nandflash芯片的各種page類型確定的。S102、讀取特定字節(jié)區(qū)域中的數(shù)據(jù),通過將讀取到的數(shù)據(jù)與寫入該特定字節(jié)區(qū)域 中的數(shù)據(jù)進(jìn)行比較,確定nandflash芯片的page類型。下面給出本發(fā)明實(shí)施例提供的一種用于識(shí)別出nandflash芯片各種物理參數(shù)的 主要流程說明。較佳地,參見圖2,本發(fā)明實(shí)施例提供的nandflash芯片物理參數(shù)的識(shí)別方法主要 包括步驟一設(shè)定最保守(最小)的timing,例如可以是2MHz。timing包括兩個(gè)指標(biāo)mandflash工作頻率和時(shí)鐘(elk)每個(gè)周期的占空比(高電平比低電平)。然后,采用所有nandflash芯片都能支持的最保守的timing(例如mandflash 工作頻率為2MHz,時(shí)鐘(elk)每個(gè)周期的高電平比低電平為1 2),嘗試在事先約定好的 nandflash區(qū)域讀取數(shù)據(jù),即確定nandflash芯片的預(yù)先約定區(qū)域是否存在該nandflash芯 片的物理參數(shù)。例如,事先約定好的nandflash區(qū)域可以為nandflash的前10個(gè)block中每個(gè) block 的第 0 號(hào) page。判斷是否在事先約定好的nandflash區(qū)域讀取到nandflash物理參數(shù),如果是,則 通過循環(huán)冗余碼(CRC)對(duì)讀取到的物理參數(shù)進(jìn)行校驗(yàn),如果能通過CRC校驗(yàn),則認(rèn)為獲得的 nandflash物理參數(shù)是正確的,識(shí)別過程結(jié)束,接下來可以使用nandflash物理參數(shù)進(jìn)行后 續(xù)操作。否則,如果所有事先約定好的nandflash區(qū)域都讀不到正確的nandflash物理參 數(shù)(即CRC校驗(yàn)無法通過),則認(rèn)為這是一塊新的nandflash芯片,需要進(jìn)行nandflash芯 片物理參數(shù)的識(shí)別過程,進(jìn)而執(zhí)行步驟二。步驟二、首先識(shí)別nandflash芯片的page類型,主要識(shí)別兩部分data區(qū)大小和 spare區(qū)大小。data區(qū)大小和spare區(qū)大小的具體組合包括四種512+16 ;2048+64 ;4096+128 ; 4096+218。也就是說,page類型包括四種類型數(shù)據(jù)區(qū)大小為4096字節(jié)、預(yù)留區(qū)大小為218 字節(jié)類型的page ;數(shù)據(jù)區(qū)大小為4096字節(jié)、預(yù)留區(qū)大小為1 字節(jié)類型的page ;數(shù)據(jù)區(qū)大 小為2048字節(jié)、預(yù)留區(qū)大小為64字節(jié)類型的page ;數(shù)據(jù)區(qū)大小為512字節(jié)、預(yù)留區(qū)大小為 16字節(jié)類型的page。步驟三、識(shí)別nandflash芯片的物理結(jié)構(gòu)是SLC結(jié)構(gòu)還是MLC結(jié)構(gòu)。采用的判斷依 據(jù)是是否支持多次編程(program),SLC結(jié)構(gòu)的nandflash芯片支持多次program,而MLC 結(jié)構(gòu)的nandflash芯片則不支持多次program。步驟四、識(shí)別nandflash芯片中每個(gè)block包括多少個(gè)page,總體包括對(duì)nandflash芯片的第一組特定page所在的塊block進(jìn)行格式化;分別向第二組特定page寫入特定數(shù)據(jù),然后格式化第0號(hào)page所在的block ;讀取第二組特定page中的數(shù)據(jù),通過將讀取到的數(shù)據(jù)與所述特定數(shù)據(jù)進(jìn)行比較, 確定nandflash芯片每個(gè)block包括的page數(shù)目。其中,所述第一組特定page和第二組特定page是預(yù)先根據(jù)nandflash芯片每個(gè) block包括的page數(shù)目的種類確定的。步驟五、識(shí)別nandflash芯片中包括多少個(gè)block。具體地,可以采用特定位置格式化的方式來識(shí)別nandflash芯片的block數(shù)目,包 括第一步驟向第0號(hào)page寫入數(shù)據(jù),該數(shù)據(jù)的大小可以設(shè)置為512個(gè)字節(jié),令參數(shù) i = 1。參數(shù)i用來表示nandflash芯片包括的block數(shù)目是512的多少倍,因?yàn)?,目?nandflash芯片包括的block數(shù)目都是512的整數(shù)倍。第二步驟根據(jù)每個(gè)block包括的page數(shù)目,格式化第512*i個(gè)block。第三步驟讀取第0號(hào)page中的數(shù)據(jù),比較讀取到的數(shù)據(jù)與寫入該第0號(hào)page中的數(shù)據(jù)是否相同,如果是,則令i = i+Ι,返回第二步驟,以此類推,直到判定從第0號(hào)page 中讀取的數(shù)據(jù)與寫入該第0號(hào)page中的數(shù)據(jù)不同,當(dāng)然還可以為i設(shè)置一個(gè)最大的閾值, 在i小于該閾值的情況下,可以重復(fù)執(zhí)行第二步驟和第三步驟;否則,確定nandfIash芯片 包括 512*i 個(gè) block。步驟六、確定最佳的timing,使用事先分析出的一些典型timing進(jìn)行嘗試,嘗試 出一個(gè)能夠進(jìn)行各種基本操作的最佳timing參數(shù)。timing參數(shù)包括兩個(gè)具體指標(biāo)mandflash芯片的工作頻率,和時(shí)鐘(elk)的高電 平與低電平的比,即占空比。其中,所述典型timing,例如mandflash芯片的工作頻率為2M,elk的占空比為 1 2 ;或者,nandflash芯片的工作頻率為24M,clk的占空比為1 1 ;或者,nandfIash芯 片的工作頻率為32M,elk的占空比為2 3,等等。本發(fā)明實(shí)施例提供的確定nandflash芯片的最佳timing的總體步驟包括步驟A、從預(yù)先設(shè)置的多個(gè)timing參數(shù)中選擇滿足nandflash芯片讀寫條件的 timing 參數(shù)。其中,timing參數(shù)滿足nandf lash芯片讀寫條件,是指在采用該timing參數(shù)時(shí), 對(duì)該nandflash芯片進(jìn)行的讀、寫操作均成功。步驟B、從滿足nandflash芯片讀寫條件的timing參數(shù)中選擇一個(gè)nandflash芯 片工作頻率最高的timing參數(shù),作為nandflash芯片的最佳timing參數(shù)。較佳地,步驟A包括按照預(yù)先設(shè)置的多個(gè)timing參數(shù)的從低到高的順序,依次選擇timing參數(shù)進(jìn)行 是否滿足nandflash芯片讀寫條件的判斷。其中,所述多個(gè)timing參數(shù)的從低到高的順序,是預(yù)先按照每個(gè)timing參數(shù)中的 nandflash芯片工作頻率設(shè)置的?;蛘撸襟EA包括從預(yù)先設(shè)置的多個(gè)timing參數(shù)中選擇每個(gè)timing參數(shù),分別進(jìn)行是否滿足 nandflash芯片讀寫條件的判斷,記錄滿足nandflash芯片讀寫條件的timing參數(shù)。較佳地,判斷當(dāng)前選擇的timing參數(shù)滿足nandflash芯片讀寫條件的步驟包括采用當(dāng)前選擇的timing參數(shù)初始化閃存nandf lash芯片控制器,并重新啟動(dòng) nandflash Sj=T"。格式化第0號(hào)block,讀取第0號(hào)block中的數(shù)據(jù)。當(dāng)從第0號(hào)block中讀取到的數(shù)據(jù)為Oxff時(shí),向第0號(hào)block寫入特定數(shù)據(jù),并 再次讀取第0號(hào)block中的數(shù)據(jù)。當(dāng)從第0號(hào)block中再次讀取到的數(shù)據(jù),與寫入該第0號(hào)block的特定數(shù)據(jù)相同 時(shí),確定當(dāng)前選擇的timing參數(shù)為滿足nandflash芯片讀寫條件的timing參數(shù)。步驟七、將識(shí)別出來的各種nandflash芯片物理參數(shù),連同計(jì)算出來的CRC信息保 存在事先約定好的區(qū)域。上述步驟四、五不一定要在步驟二、三之后執(zhí)行,步驟六也不一定要在步驟四、五 之后執(zhí)行。步驟二、三的執(zhí)行與步驟四、五的執(zhí)行以及步驟六的執(zhí)行可以是并行的,相互之 間沒有必然的順序關(guān)系。
下面給出上述各個(gè)步驟的較佳的具體實(shí)施方式
。一、關(guān)于步驟一中確定nandflash芯片的預(yù)先約定區(qū)域是否存在該nandflash芯 片的物理參數(shù)的說明。由于要想識(shí)別出nandflash芯片,不可避免的要對(duì)nandflash芯片進(jìn)行格式化,以 及寫處理,只憑讀是不可能實(shí)現(xiàn)的,這樣會(huì)破壞nandflash上原有的數(shù)據(jù),這對(duì)于一個(gè)新的 nandflash來說沒有關(guān)系,但是對(duì)于之前使用過的nandflash芯片,上面的數(shù)據(jù)被破壞,會(huì) 導(dǎo)致文件系統(tǒng)、程序等出現(xiàn)故障。因此,一旦第一次識(shí)別出nandflash的物理參數(shù)信息,并 且基于這些參數(shù)在nandflash上存儲(chǔ)數(shù)據(jù)了,就能不再進(jìn)行nandflash識(shí)別,只能讀取之前 存儲(chǔ)的nandflash芯片物理參數(shù)信息來使用nandflash。當(dāng)前的對(duì)nandflash芯片進(jìn)行基礎(chǔ)的page讀操作,按照兩種情況劃分為兩種 方式,page的數(shù)據(jù)區(qū)域是512bytes的一種512方式的讀操作,和page的數(shù)據(jù)區(qū)域大于 512bytes的另一種非512方式的讀操作(page的數(shù)據(jù)區(qū)域?yàn)?048或4096bytes的均采用 該種讀方式)。這讀操作最主要的區(qū)別是對(duì)于大于512bytes的nandflash的讀操作,比 對(duì)于等于512bytes的nandflash的讀操作,要多發(fā)一個(gè)命令,發(fā)的地址要多一位,因此操作 是不一樣的。nandflash每個(gè)block的最小容量是32個(gè)page,有的nandflash每個(gè)block還可 以包括64pages或者U8pages,而64、1觀分別是32的2倍和4倍。本發(fā)明實(shí)施例中,首先 假設(shè)每個(gè)blcok包括32個(gè)pages。嘗試讀取事先約定好的nandflash區(qū)域的nandflash物 理參數(shù)的具體流程如圖3所示(其中,假設(shè)約定區(qū)域?yàn)榈?到第10個(gè)block的每個(gè)block 的第一個(gè)page),具體包括用I表示當(dāng)前page的頁號(hào),初始時(shí),令I(lǐng) = 0,即從page 0開始,嘗試讀取 nandflash物理參數(shù)。重新啟動(dòng)nandflash芯片(由于之前的錯(cuò)誤嘗試可能會(huì)對(duì)nandflash芯片造成不 利影響,所以需要重新啟動(dòng)nandflash芯片)。采用512方式讀取第I個(gè)page,并判斷是否讀正確,如果讀正確了,說明該 nandflash是512page類型,則進(jìn)一步檢查數(shù)據(jù)是否有效(也許是一個(gè)新的nandflash,沒 有有效數(shù)據(jù));否則,重新啟動(dòng)nandflash芯片,采用非512方式讀取數(shù)據(jù),并判斷是否讀正 確,如果讀正確了,則對(duì)讀到的數(shù)據(jù)進(jìn)行CRC校驗(yàn),否則,設(shè)定新的page號(hào),即令I(lǐng) = 1+32, 然后判斷當(dāng)前需要讀的page是否超過約定范圍(第0到第10個(gè)block的每個(gè)block的第 一個(gè)page),約定范圍可以是320 (即I最大不能超過320),也可以是640 (即I最大不能 超過640),約定范圍越大,開機(jī)啟動(dòng)的時(shí)間會(huì)越慢,如果沒有超過約定范圍則進(jìn)行下一輪嘗 試,即對(duì)新的page I的讀嘗試;否則,結(jié)束。如果數(shù)據(jù)讀取成功,則對(duì)讀到的數(shù)據(jù)進(jìn)行CRC校驗(yàn),在此之前,也就是把數(shù)據(jù) 從nandflash的某個(gè)page讀出來的過程中,同時(shí)會(huì)采用錯(cuò)誤檢查和糾正(ECC,Error Checking and Correcting)的方式做一個(gè)錯(cuò)誤糾正,但是對(duì)于不同ECC算法,有的ECC算法 并不一定能準(zhǔn)確地檢查出錯(cuò)誤的里德-索羅蒙(RS)碼,所以在數(shù)據(jù)讀取成功后,還需要進(jìn) 行CRC校驗(yàn)來檢查錯(cuò)誤。如果CRC校驗(yàn)通過,認(rèn)為已經(jīng)獲得了正確的nandflash物理參數(shù) 信息,退出嘗試讀取nandflash約定區(qū)域數(shù)據(jù)的操作。如果CRC校驗(yàn)結(jié)果顯示錯(cuò)誤,則設(shè)定新的page號(hào),即令I(lǐng) = 1+32,進(jìn)行下一輪嘗試,即對(duì)新的page I的讀嘗試。如果在約定的范圍嘗試均失敗,則退出嘗試,返回嘗試失敗。二、關(guān)于步驟二中識(shí)別nandflash芯片的page類型的說明。目前 nandflash 芯片的 page 類型有四種512+16 ;2048+64 ;4096+128 ;4096+218。采用在不同的字節(jié)范圍寫入不同數(shù)據(jù),然后分別讀出寫入的數(shù)據(jù),比對(duì)在同一字 節(jié)范圍寫入和讀出的數(shù)據(jù)的方式來對(duì)page類型進(jìn)行判斷。對(duì)于page的寫入操作,512page 的nandflash芯片和非512page的nandflash芯片是一致的。page類型判斷的具體流程如圖4所示,包括組織一個(gè)數(shù)據(jù)樣本,即組織一個(gè)page大小的數(shù)據(jù),較佳地,可以按照目前一個(gè) page最大為4096+218字節(jié),組織一個(gè)4096+218字節(jié)(即4314字節(jié))大小的數(shù)據(jù)樣本。用M表示當(dāng)前嘗試判斷page類型的次數(shù),M初始值為1。分別在多個(gè)特定字節(jié)區(qū)域,即第0-527號(hào)字節(jié)區(qū)域、第528-2111號(hào)字節(jié)區(qū)域、第 2112-4313號(hào)字節(jié)區(qū)域,寫入不同的數(shù)據(jù)內(nèi)容,例如分別寫入0X00、0X0f、0Xf0。然后,從第0號(hào)字節(jié)開始,連續(xù)讀取4096+218個(gè)字節(jié)(即4314個(gè)字節(jié))的數(shù)據(jù) (如果nandflash芯片page沒有那么大,將讀到不定的數(shù)據(jù),而不是OxfO),實(shí)際就是從第1 個(gè)字節(jié)開始,連續(xù)讀取4314個(gè)字節(jié)的數(shù)據(jù)。字節(jié)一般都是從0開始編號(hào),所以,從第0號(hào)字 節(jié)開始,連續(xù)讀4314個(gè)字節(jié),實(shí)際上是讀第0號(hào)到第4313號(hào)字節(jié)。然后,進(jìn)行下列判斷判斷從第42M-4313號(hào)字節(jié)區(qū)域讀取到的數(shù)據(jù)是否為OxfO,如果是,則判定page 類型為數(shù)據(jù)區(qū)大小為4096字節(jié)、預(yù)留區(qū)大小為218字節(jié)類型的page,跳出判斷流程;否則,判斷從第2112-4223號(hào)字節(jié)區(qū)域讀取到的數(shù)據(jù)是否為OxfO,如果是,則判定page 類型為數(shù)據(jù)區(qū)大小為4096字節(jié)、預(yù)留區(qū)大小為1 字節(jié)類型的page,跳出判斷流程;否則,判斷從第5觀_2111號(hào)字區(qū)域節(jié)讀取到的數(shù)據(jù)是否為OxOf,如果是,則判定page類 型為數(shù)據(jù)區(qū)大小為2048字節(jié)、預(yù)留區(qū)大小為64字節(jié)類型的page,跳出判斷流程;否則,判斷從第0-527號(hào)字節(jié)區(qū)域讀取到的數(shù)據(jù)是否為0x0,如果是,則判定page類型為 數(shù)據(jù)區(qū)大小為512字節(jié)、預(yù)留區(qū)大小為16字節(jié)類型的page,跳出判斷流程;否則,令嘗試的次數(shù)M = M+1,然后判斷當(dāng)前嘗試的次數(shù)是否太多,即判斷當(dāng)前嘗試的次 數(shù)M是否超過預(yù)設(shè)的閾值(具體值可以根據(jù)實(shí)際需要進(jìn)行設(shè)置),如果是,則結(jié)束操作,返回 物理連接錯(cuò)誤;否則,繼續(xù)下一次嘗試,即返回分別在第0-527號(hào)字節(jié)區(qū)域、第528-2111號(hào) 字節(jié)區(qū)域、第2112-4313號(hào)字節(jié)區(qū)域,寫入不同的數(shù)據(jù)內(nèi)容的步驟,并進(jìn)行后續(xù)操作,以此 類推,直到識(shí)別出page類型,或者嘗試的次數(shù)M超過預(yù)設(shè)的閾值,返回物理連接錯(cuò)誤。其中,判斷當(dāng)前嘗試的次數(shù)M是否超過預(yù)設(shè)的閾值的步驟也可以不執(zhí)行。三、關(guān)于步驟三中識(shí)別nandflash芯片的物理結(jié)構(gòu)的說明。本發(fā)明實(shí)施例識(shí)別nandflash芯片的物理結(jié)構(gòu)是SLC物理結(jié)構(gòu)還是MLC物理結(jié) 構(gòu),主要基于SLC物理結(jié)構(gòu)的nandflash,對(duì)于每個(gè)page可以進(jìn)行多次page的program寫 操作,而MLC物理結(jié)構(gòu)的nandflash,對(duì)于每個(gè)page只能進(jìn)行單次page的program寫操作?;诓襟E二中已經(jīng)識(shí)別出了 nandflash芯片的page類型,即確定了每個(gè)page的 數(shù)據(jù)區(qū)和預(yù)留區(qū)的大小,在步驟三中可以進(jìn)行以下操作 重新啟動(dòng)nandflash芯片; 對(duì)任意一個(gè)page (假設(shè)是page I)的一部分?jǐn)?shù)據(jù)區(qū)域(例如可以是前半個(gè))進(jìn)行一次寫操作,寫入特定數(shù)據(jù);重新啟動(dòng)nandflash芯片;對(duì)該page I的另一部分?jǐn)?shù)據(jù)區(qū)域(例如可以是后半個(gè))進(jìn)行一次寫操作,寫入特 定數(shù)據(jù);重新啟動(dòng)nandflash芯片;將該page I的整個(gè)page的數(shù)據(jù)讀出來;比較該page I的后半個(gè)數(shù)據(jù)區(qū)域的數(shù)據(jù)是否是寫入的特定數(shù)據(jù),如果是,則確定 該nandflash芯片是SLC物理結(jié)構(gòu)的nandflash芯片;否則,確定該nandflash芯片是MLC 物理結(jié)構(gòu)的nandflash芯片。四、關(guān)于步驟四中識(shí)別nandflash芯片每個(gè)block有多少個(gè)page的說明。本發(fā)明實(shí)施例基于nandflash芯片的block格式化特性(即按照輸入的page號(hào) 所在的block來進(jìn)行格式化),識(shí)別每個(gè)block有多少個(gè)page。目前,nandflash芯片每個(gè)block包括的page數(shù)目有五種16,32,64,128,256。本 發(fā)明實(shí)施例提供的識(shí)別nandflash芯片每個(gè)block包括的page數(shù)目的具體流程如圖5所 示,包括格式化第0、64、1沘、256、512號(hào)?386(即第一組特定?&86)所在的block ;向第31、63、127、255、511號(hào)page(即第二組特定page)寫入特定數(shù)據(jù),其中,向第 31、63、127、255、511號(hào)page寫入的特定數(shù)據(jù)可以相同,也可以不相同;格式化第0號(hào)page所在的block,也就是說格式化第0號(hào)block (則第0號(hào)block 中的所有page均被格式化);需要說明的是,第0-15號(hào)page中的任一 page所在的block肯定是第0號(hào)block, 因此可以格式化第0-15號(hào)page中的任一 page所在的block ;讀取第31號(hào)page的數(shù)據(jù)內(nèi)容,比較讀出的數(shù)據(jù)和寫入該第31號(hào)page的數(shù)據(jù),如 果相同,則說明第31號(hào)page不屬于第0號(hào)page所在的block,因此可以確定每個(gè)block只 能有16個(gè)pages,結(jié)束判斷;否則,讀取第63號(hào)page的數(shù)據(jù)內(nèi)容,比較讀出的數(shù)據(jù)和寫入該第63號(hào)page的數(shù)據(jù),如 果相同,則說明第63號(hào)page不屬于第0號(hào)page所在的block,但是第31號(hào)page屬于第0 號(hào)page所在的block,因此可以確定每個(gè)block只能有32個(gè)pages,結(jié)束判斷;否則,讀取第127號(hào)page的數(shù)據(jù)內(nèi)容,比較讀出的數(shù)據(jù)和寫入該第127號(hào)page的數(shù)據(jù), 如果相同,則說明第127號(hào)page不屬于第0號(hào)page所在的block,但是第63號(hào)page屬于 第0號(hào)page所在的block,因此可以確定每個(gè)block只能有64個(gè)pages,結(jié)束判斷;否則,讀取第255號(hào)page的數(shù)據(jù)內(nèi)容,比較讀出的數(shù)據(jù)和寫入該第255號(hào)page的數(shù)據(jù), 如果相同,則說明第255號(hào)page不屬于第0號(hào)page所在的block,但是第127號(hào)page屬于 第0號(hào)page所在的block,因此可以確定每個(gè)block只能有127個(gè)pages,結(jié)束判斷;否則,讀取第511號(hào)page的數(shù)據(jù)內(nèi)容,比較讀出的數(shù)據(jù)和寫入該第511號(hào)page的數(shù)據(jù), 如果相同,則說明第511號(hào)page不屬于第0號(hào)page所在的block,但是第255號(hào)page屬 于第0號(hào)page所在的block,因此可以確定每個(gè)block只能有256個(gè)pages,結(jié)束判斷;否 則,結(jié)束判斷。五、關(guān)于步驟五中識(shí)別nandflash芯片包括多少個(gè)block的說明。
由于在步驟四中已經(jīng)對(duì)第0號(hào)page所在的block進(jìn)行了格式化,因此,步驟五中 可以不再對(duì)第0號(hào)page所在的block進(jìn)行格式化。那么,確定nandflash芯片每個(gè)block包括的page數(shù)目之后,識(shí)別nandflash芯 片包括多少個(gè)block的具體流程參見圖6,包括S601、格式化第0號(hào)page所在的block。S602、向第0號(hào)page寫入數(shù)據(jù),該數(shù)據(jù)的大小可以設(shè)置為512個(gè)字節(jié),令參數(shù)i = 1。S603、根據(jù)每個(gè)block包括的page數(shù)目,格式化第512*i個(gè)block。S604、讀取第0號(hào)page中的數(shù)據(jù)。S605、比較從第0號(hào)page中讀取到的數(shù)據(jù)與寫入該第0號(hào)page中的數(shù)據(jù)是否相 同,如果是,則執(zhí)行步驟S606 ;否則,執(zhí)行步驟S608。S606、令 i = i+l。S607、判斷i是否小于閾值64,如果是,則執(zhí)行步驟S603,否則結(jié)束。由于,目前還沒有512*64 = 32768個(gè)block的nandflash,因此,可以判斷i是否 小于64,如果今后出現(xiàn)了大于32768個(gè)block的nandflash,當(dāng)然閾值也可以擴(kuò)大,而不局 限于64。S608、確定 nandflash 芯片包括 512*i 個(gè) block。六、關(guān)于步驟六中確定最佳timing的說明。本發(fā)明實(shí)施例使用事先設(shè)置的一些典型timing逐個(gè)進(jìn)行嘗試,嘗試出一個(gè)能夠 進(jìn)行各種基本操作的較佳的timing參數(shù)。例如nandflash芯片的工作頻率為2M、4M、8M、12M、16M、24MJ8M、32M、36M、40M 等等;elk的占空比可以是1 1、1 2、1 3、2 3等等。本發(fā)明實(shí)施例可以預(yù)先將nandflash芯片的工作頻率和elk的占空比任意組合成 一個(gè)timing參數(shù),得到多個(gè)timing參數(shù),每個(gè)timing參數(shù)包括一個(gè)nandflash芯片的工 作頻率,以及一個(gè)elk的占空比。預(yù)先按照nandflash芯片的工作頻率的從低到高,對(duì)預(yù)先設(shè)置的多個(gè)timing參數(shù) 按照從低到高的順序進(jìn)行排序,其中,對(duì)于工作頻率相同,占空比不同的timing參數(shù)的排 序,先后順序無特定要求,可以任意排序。那么,確定nandflash芯片最佳timing參數(shù)的具體流程如圖7所示,包括從最低的timing開始依次選擇一個(gè)timing參數(shù)進(jìn)行如下嘗試,直到確定 nandflash芯片最佳timing參數(shù)使用當(dāng)前選定的timing初始化nandflash控制器,并重新啟動(dòng)nandflash芯片;格式化第0號(hào)block,即第一個(gè)block (對(duì)于nandflash,任一 block被格式化以后, 該block里面的數(shù)據(jù)全部是Oxff);讀取第0號(hào)block的數(shù)據(jù);檢測第0號(hào)block的數(shù)據(jù)是否全部是Oxff ;如果第0號(hào)block的數(shù)據(jù)不是Oxff,則說明讀取數(shù)據(jù)失敗,當(dāng)前選定的timing 無效,如果之前記錄有嘗試成功的timing,則使用之前嘗試成功的最高的timing作為 nandflash芯片最佳timing參數(shù),結(jié)束嘗試;
如果第0號(hào)block的數(shù)據(jù)全是Oxff,則說明在當(dāng)前選定的timing下,數(shù)據(jù)讀取的 操作可以成功,需要進(jìn)一步判斷數(shù)據(jù)寫入的操作是否也可以成功,則向第0號(hào)block寫入特 定數(shù)據(jù);將第0號(hào)block的數(shù)據(jù)讀出來,比較讀出的數(shù)據(jù)和寫入的數(shù)據(jù);如果從第0號(hào)block讀出的數(shù)據(jù)和寫入第0號(hào)block的數(shù)據(jù)相等,則說明當(dāng)前選 定的timing可以使用(寫進(jìn)去的數(shù)據(jù)和讀出來的數(shù)據(jù)一致,才能說明在當(dāng)前選定的timing 下讀寫都是成功的,該timing有效),并記錄下來,然后采用下一個(gè)timing參數(shù)作為當(dāng)前選 定的timing繼續(xù)進(jìn)行嘗試;如果從第0號(hào)block讀出的數(shù)據(jù)和寫入第0號(hào)block的數(shù)據(jù)不相等,則說明當(dāng)前 選定的timing無效,如果之前記錄有嘗試成功的timing,則使用之前嘗試成功的最高的 timing作為nandflash芯片最佳timing參數(shù),結(jié)束嘗試。另外,在實(shí)際操作中,也可以不對(duì)預(yù)先設(shè)置的多個(gè)timing參數(shù)進(jìn)行排序,可以將 這些timing參數(shù)逐一進(jìn)行嘗試,并記錄嘗試成功的timing參數(shù),最后從嘗試成功的timing 參數(shù)中,選擇最高的timing參數(shù)(即nandflash芯片的工作頻率最高)作為最為nandflash 芯片的最佳timing參數(shù)。其中,最高的timing參數(shù)可能有多個(gè),也就是說,nandflash芯片 的工作頻率最高的timing參數(shù)(其中每個(gè)timing參數(shù)的時(shí)鐘占空比不同)可能有多個(gè), 可以從中任意選擇一個(gè)timing參數(shù)作為最佳timing參數(shù)。七、關(guān)于步驟七中記錄識(shí)別出的nandflash芯片物理參數(shù)信息的說明。為了避免下一次繼續(xù)采用本發(fā)明實(shí)施例提供的技術(shù)方案識(shí)別nandflash芯片的 物理參數(shù)信息造成的數(shù)據(jù)破壞,需要將已經(jīng)識(shí)別出的nandflash芯片物理參數(shù)信息記錄在 nandflash芯片預(yù)先約定好的區(qū)域。進(jìn)一步,為了提高信息的安全可靠性,可以記錄多份拷貝,比如,在前10個(gè)block 中,每個(gè)block的第0個(gè)page都記錄識(shí)別出的nandflash芯片物理參數(shù)信息(nandflash 芯片一般只會(huì)壞一個(gè)block)。另外,為了進(jìn)一步確保數(shù)據(jù)的正確性,可以采用ECC糾錯(cuò)和CRC檢錯(cuò)的雙重保護(hù)。下面介紹一下本發(fā)明實(shí)施例提供的系統(tǒng)。參見圖8,本發(fā)明實(shí)施例提供的一種芯片參數(shù)的識(shí)別系統(tǒng),包括初始判定單元21,用于在page類型識(shí)別單元22分別向nandflash芯片的多 個(gè)特定字節(jié)區(qū)域?qū)懭氩煌臄?shù)據(jù)之前,確定nandflash芯片的預(yù)先約定區(qū)域是否存在該 nandflash芯片的物理參數(shù)。page類型識(shí)別單元22,用于分別向nandflash芯片的多個(gè)特定字節(jié)區(qū)域?qū)懭氩煌?的數(shù)據(jù),其中,特定字節(jié)區(qū)域是預(yù)先根據(jù)nandflash芯片的各種頁page類型確定的;讀取特 定字節(jié)區(qū)域中的數(shù)據(jù),通過將讀取到的數(shù)據(jù)與寫入該特定字節(jié)區(qū)域中的數(shù)據(jù)進(jìn)行比較,確 定nandflash芯片的page類型。物理結(jié)構(gòu)識(shí)別單元23,用于重新啟動(dòng)nandflash芯片,向一個(gè)page的一部分?jǐn)?shù) 據(jù)區(qū)域?qū)懭胩囟〝?shù)據(jù);重新啟動(dòng)nandflash芯片,向該page的另一部分?jǐn)?shù)據(jù)區(qū)域?qū)懭胩?定數(shù)據(jù);重新啟動(dòng)nandflash芯片,讀取該page的全部數(shù)據(jù);比較從所述另一部分?jǐn)?shù)據(jù) 區(qū)域讀取到的數(shù)據(jù),與向該部分?jǐn)?shù)據(jù)區(qū)域?qū)懭氲奶囟〝?shù)據(jù)是否相同,如果是,則確定所述 nandflash芯片的物理結(jié)構(gòu)為單級(jí)單元SLC物理結(jié)構(gòu);否則,確定所述nandflash芯片的物
14理結(jié)構(gòu)為多級(jí)單元MLC物理結(jié)構(gòu)。page數(shù)目識(shí)別單元對(duì),用于對(duì)nandflash芯片的多個(gè)特定page所在的塊block 進(jìn)行格式化,其中,所述特定page是預(yù)先根據(jù)nandflash芯片每個(gè)block包括的page數(shù)目 的種類確定的;分別向特定page寫入特定數(shù)據(jù),然后格式化第0號(hào)page所在的block ;讀 取特定page中的數(shù)據(jù),通過將讀取到的數(shù)據(jù)與所述特定數(shù)據(jù)進(jìn)行比較,確定nandflash芯 片每個(gè)block包括的page數(shù)目。block數(shù)目識(shí)別單元25,用于識(shí)別nandflash芯片的block數(shù)目。timing參數(shù)識(shí)別單元沈,用于從預(yù)先設(shè)置的多個(gè)timing參數(shù)中選擇滿足閃存 nandflash芯片讀寫條件的timing參數(shù);其中,timing參數(shù)滿足nandflash芯片讀寫 條件,是指在采用該timing參數(shù)時(shí),對(duì)該nandflash芯片進(jìn)行的讀、寫操作均成功;從滿 足nandflash芯片讀寫條件的timing參數(shù)中選擇一個(gè)nandflash芯片工作頻率最高的 timing參數(shù),作為nandflash芯片的最佳timing參數(shù)。其中,初始判定單元21不是必需的。如果初始判定單元21不存在,page類型識(shí) 別單元22和物理結(jié)構(gòu)識(shí)別單元23也可以獨(dú)立工作;page數(shù)目識(shí)別單元M和block數(shù)目 識(shí)別單元25也可以獨(dú)立工作;timing參數(shù)識(shí)別單元沈也可以獨(dú)立工作。較佳地,參見圖9,page類型識(shí)別單元22包括特定字節(jié)區(qū)域?qū)懭雴卧?1,用于分別向nandflash芯片的多個(gè)特定字節(jié)區(qū)域?qū)懭?不同的數(shù)據(jù),其中,特定字節(jié)區(qū)域是預(yù)先根據(jù)nandflash芯片的各種頁page類型確定的。特定字節(jié)區(qū)域讀取單元12,用于讀取特定字節(jié)區(qū)域中的數(shù)據(jù)。比較單元13,用于通過將從特定字節(jié)區(qū)域中讀取到的數(shù)據(jù)與寫入該特定字節(jié)區(qū)域 中的數(shù)據(jù)進(jìn)行比較,確定nandflash芯片的page類型。較佳地,所述特定字節(jié)區(qū)域?qū)懭雴卧?1,分別向nandflash芯片的第0_527號(hào)字節(jié) 區(qū)域、第528-2111號(hào)字節(jié)區(qū)域、第2112-4313號(hào)字節(jié)區(qū)域?qū)懭氩煌臄?shù)據(jù)。較佳地,所述特定字節(jié)區(qū)域讀取單元12,從第0號(hào)字節(jié)開始,連續(xù)讀取4314個(gè)字節(jié) 的數(shù)據(jù);所述比較單元13包括第一判斷單元131,用于判斷從第42M-4313號(hào)字節(jié)區(qū)域讀取到的數(shù)據(jù)是否為寫 入該字節(jié)區(qū)域的數(shù)據(jù),如果是,則確定nandflash芯片的page類型為數(shù)據(jù)區(qū)大小為4096字 節(jié)、預(yù)留區(qū)大小為218字節(jié)類型的page ;否則,觸發(fā)第二判斷單元132 ;第二判斷單元132,用于根據(jù)所述第一判斷單元131的觸發(fā),判斷從第2112-4223 號(hào)字節(jié)區(qū)域讀取到的數(shù)據(jù)是否為寫入該字節(jié)區(qū)域的數(shù)據(jù),如果是,則確定nandflash芯片 的page類型為數(shù)據(jù)區(qū)大小為4096字節(jié)、預(yù)留區(qū)大小為1 字節(jié)類型的page ;否則,觸發(fā)第 三判斷單元133 ;第三判斷單元133,用于根據(jù)所述第二判斷單元132的觸發(fā),判斷從第528-2111號(hào) 字節(jié)區(qū)域讀取到的數(shù)據(jù)是否為寫入該字節(jié)區(qū)域的數(shù)據(jù),如果是,則確定nandflash芯片的 page類型為數(shù)據(jù)區(qū)大小為2048字節(jié)、預(yù)留區(qū)大小為64字節(jié)類型的page ;否則,觸發(fā)第四判 斷單元134 ;第四判斷單元134,用于根據(jù)所述第三判斷單元133的觸發(fā),判斷從第0_527號(hào) 字節(jié)區(qū)域讀取到的數(shù)據(jù)是否為寫入該字節(jié)區(qū)域的數(shù)據(jù),如果是,則確定nandflash芯片的page類型為數(shù)據(jù)區(qū)大小為512字節(jié)、預(yù)留區(qū)大小為16字節(jié)類型的page。較佳地,所述第四判斷單元134,進(jìn)一步用于當(dāng)判定從第0-527號(hào)字節(jié)區(qū)域讀取到 的數(shù)據(jù)與寫入該字節(jié)區(qū)域的數(shù)據(jù)不同時(shí),觸發(fā)所述特定字節(jié)區(qū)域?qū)懭雴卧?1重新分別向 所述多個(gè)特定字節(jié)區(qū)域?qū)懭氩煌臄?shù)據(jù)。較佳地,參見圖10,block數(shù)目識(shí)別單元25包括第一單元251,用于向第0號(hào)page寫入數(shù)據(jù),令參數(shù)i = 1。第二單元252,用于根據(jù)每個(gè)block包括的page數(shù)目,格式化第512*i個(gè)block。第三單元253,用于讀取第0號(hào)page中的數(shù)據(jù),比較讀取到的數(shù)據(jù)與寫入該第 0號(hào)page中的數(shù)據(jù)是否相同,如果是,則令i = i+Ι,然后觸發(fā)第二單元252 ;否則,確定 nandflash 芯片包括 512*i 個(gè) block。綜上所述,本發(fā)明實(shí)施例通過遍歷式的嘗試,逐步識(shí)別出未知nandflash芯片的 各項(xiàng)物理參數(shù),使得開發(fā)人員在一定程度上擺脫了對(duì)datasheet技術(shù)文檔的依賴,通過將 識(shí)別出的物理參數(shù)信息保存在nandflash芯片上,廠家不用不斷更新nandflash芯片的參數(shù)表。顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精 神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍 之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。
權(quán)利要求
1.一種芯片參數(shù)的識(shí)別方法,其特征在于,該方法包括分別向閃存nandflash芯片的多個(gè)特定字節(jié)區(qū)域?qū)懭氩煌臄?shù)據(jù),其中,所述特定字 節(jié)區(qū)域是預(yù)先根據(jù)nandflash芯片的各種頁page類型確定的;讀取特定字節(jié)區(qū)域中的數(shù)據(jù),通過將讀取到的數(shù)據(jù)與寫入該特定字節(jié)區(qū)域中的數(shù)據(jù)進(jìn) 行比較,確定nandflash芯片的page類型。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,分別向nandflash芯片的多個(gè)特定字節(jié)區(qū) 域?qū)懭氩煌臄?shù)據(jù)的步驟包括分別向nandflash芯片的第0-527號(hào)字節(jié)區(qū)域、第528-2111號(hào)字節(jié)區(qū)域、第2112-4313 號(hào)字節(jié)區(qū)域?qū)懭氩煌臄?shù)據(jù);讀取特定字節(jié)區(qū)域中的數(shù)據(jù),通過將讀取到的數(shù)據(jù)與寫入該特定字節(jié)區(qū)域中的數(shù)據(jù)進(jìn) 行比較,確定nandflash芯片的page類型的步驟包括從第0號(hào)字節(jié)開始,連續(xù)讀取4314個(gè)字節(jié)的數(shù)據(jù);判斷從第42M-4313號(hào)字節(jié)區(qū)域讀取到的數(shù)據(jù)是否為寫入該字節(jié)區(qū)域的數(shù)據(jù),如果 是,則確定nandflash芯片的page類型為數(shù)據(jù)區(qū)大小為4096字節(jié)、預(yù)留區(qū)大小為218字節(jié) 類型的page ;否則,判斷從第2112-4223號(hào)字節(jié)區(qū)域讀取到的數(shù)據(jù)是否為寫入該字節(jié)區(qū)域的數(shù)據(jù),如果 是,則確定nandflash芯片的page類型為數(shù)據(jù)區(qū)大小為4096字節(jié)、預(yù)留區(qū)大小為1 字節(jié) 類型的page ;否則,判斷從第528-2111號(hào)字節(jié)區(qū)域讀取到的數(shù)據(jù)是否為寫入該字節(jié)區(qū)域的數(shù)據(jù),如果是, 則確定nandflash芯片的page類型為數(shù)據(jù)區(qū)大小為2048字節(jié)、預(yù)留區(qū)大小為64字節(jié)類型 的page ;否則,判斷從第0-527號(hào)字節(jié)區(qū)域讀取到的數(shù)據(jù)是否為寫入該字節(jié)區(qū)域的數(shù)據(jù),如果是,則 確定nandflash芯片的page類型為數(shù)據(jù)區(qū)大小為512字節(jié)、預(yù)留區(qū)大小為16字節(jié)類型的page。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,當(dāng)從第0-527號(hào)字節(jié)區(qū)域讀取到的數(shù)據(jù)與 寫入該字節(jié)區(qū)域的數(shù)據(jù)不同時(shí),重新分別向所述多個(gè)特定字節(jié)區(qū)域?qū)懭氩煌臄?shù)據(jù),并讀 取特定字節(jié)區(qū)域中的數(shù)據(jù),將讀取到的數(shù)據(jù)與寫入該特定字節(jié)區(qū)域中的數(shù)據(jù)進(jìn)行比較,直 到確定nandflash芯片的page類型。
4.根據(jù)權(quán)利要求1-3任一權(quán)項(xiàng)所述的方法,其特征在于,確定nandflash芯片的page 類型之后,該方法還包括重新啟動(dòng)nandflash芯片,向一個(gè)page的一部分?jǐn)?shù)據(jù)區(qū)域?qū)懭胩囟〝?shù)據(jù);重新啟動(dòng)nandflash芯片,向該page的另一部分?jǐn)?shù)據(jù)區(qū)域?qū)懭胩囟〝?shù)據(jù);重新啟動(dòng)nandflash芯片,讀取該page的全部數(shù)據(jù);比較從所述另一部分?jǐn)?shù)據(jù)區(qū)域讀取到的數(shù)據(jù),與向該部分?jǐn)?shù)據(jù)區(qū)域?qū)懭氲奶囟〝?shù)據(jù)是 否相同,如果是,則確定所述nandflash芯片的物理結(jié)構(gòu)為單級(jí)單元SLC物理結(jié)構(gòu);否則,確 定所述nandflash芯片的物理結(jié)構(gòu)為多級(jí)單元MLC物理結(jié)構(gòu)。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,該方法還包括對(duì)nandflash芯片的第一組特定page所在的塊block進(jìn)行格式化;分別向第二組特定page寫入特定數(shù)據(jù),然后格式化第0號(hào)page所在的block ;讀取所述第二組特定page中的數(shù)據(jù),通過將讀取到的數(shù)據(jù)與所述特定數(shù)據(jù)進(jìn)行比較, 確定nandflash芯片每個(gè)block包括的page數(shù)目;其中,所述第一組特定page和第二組特定page是預(yù)先根據(jù)nandflash芯片每個(gè)block 包括的page數(shù)目的種類確定的。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,確定nandflash芯片每個(gè)block包括的 page數(shù)目之后,該方法還包括步驟一向第0號(hào)page寫入數(shù)據(jù),令參數(shù)i = 1 ;步驟二 根據(jù)每個(gè)block包括的page數(shù)目,格式化第512*i個(gè)block ;步驟三讀取第0號(hào)page中的數(shù)據(jù),比較讀取到的數(shù)據(jù)與寫入該第0號(hào)page中的數(shù) 據(jù)是否相同,如果是,則令i = i+Ι,返回步驟二 ;否則,確定nandflash芯片包括512*i個(gè) block。
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,該方法還包括從預(yù)先設(shè)置的多個(gè)時(shí)間timing參數(shù)中選擇滿足nandflash芯片讀寫條件的timing參數(shù);其中,timing參數(shù)滿足nandflash芯片讀寫條件,是指在采用該timing參數(shù)時(shí),對(duì)該 nandflash芯片進(jìn)行的讀、寫操作均成功;從滿足nandflash芯片讀寫條件的timing參數(shù)中選擇一個(gè)nandflash芯片工作頻率 最高的timing參數(shù),作為nandflash芯片的最佳timing參數(shù)。
8.根據(jù)權(quán)利要求1所述的方法,其特征在于,在分別向nandflash芯片的多個(gè)特定字節(jié) 區(qū)域?qū)懭氩煌臄?shù)據(jù)之前,該方法還包括確定所述nandflash芯片的預(yù)先約定區(qū)域是否存在該nandflash芯片的物理參數(shù)。
9.一種芯片參數(shù)的識(shí)別系統(tǒng),其特征在于,該系統(tǒng)包括page類型識(shí)別單元,該page類 型識(shí)別單元包括特定字節(jié)區(qū)域?qū)懭雴卧?,用于分別向閃存nandflash芯片的多個(gè)特定字節(jié)區(qū)域?qū)懭?不同的數(shù)據(jù),其中,所述特定字節(jié)區(qū)域是預(yù)先根據(jù)nandflash芯片的各種頁page類型確定 的;特定字節(jié)區(qū)域讀取單元,用于讀取特定字節(jié)區(qū)域中的數(shù)據(jù);比較單元,用于通過將從特定字節(jié)區(qū)域中讀取到的數(shù)據(jù)與寫入該特定字節(jié)區(qū)域中的數(shù) 據(jù)進(jìn)行比較,確定nandflash芯片的page類型。
10.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于,所述特定字節(jié)區(qū)域?qū)懭雴卧?,分別向 nandflash芯片的第0-527號(hào)字節(jié)區(qū)域、第528-2111號(hào)字節(jié)區(qū)域、第2112-4313號(hào)字節(jié)區(qū)域 寫入不同的數(shù)據(jù);所述特定字節(jié)區(qū)域讀取單元,從第0號(hào)字節(jié)開始,連續(xù)讀取4314個(gè)字節(jié)的數(shù)據(jù);所述比較單元包括第一判斷單元,用于判斷從第42M-4313號(hào)字節(jié)區(qū)域讀取到的數(shù)據(jù)是否為寫入該字節(jié) 區(qū)域的數(shù)據(jù),如果是,則確定nandflash芯片的page類型為數(shù)據(jù)區(qū)大小為4096字節(jié)、預(yù)留 區(qū)大小為218字節(jié)類型的page ;否則,觸發(fā)第二判斷單元;第二判斷單元,用于根據(jù)所述第一判斷單元的觸發(fā),判斷從第2112-4223號(hào)字節(jié)區(qū)域 讀取到的數(shù)據(jù)是否為寫入該字節(jié)區(qū)域的數(shù)據(jù),如果是,則確定nandflash芯片的page類型為數(shù)據(jù)區(qū)大小為4096字節(jié)、預(yù)留區(qū)大小為1 字節(jié)類型的page ;否則,觸發(fā)第三判斷單元;第三判斷單元,用于根據(jù)所述第二判斷單元的觸發(fā),判斷從第528-2111號(hào)字節(jié)區(qū)域讀 取到的數(shù)據(jù)是否為寫入該字節(jié)區(qū)域的數(shù)據(jù),如果是,則確定nandflash芯片的page類型為 數(shù)據(jù)區(qū)大小為2048字節(jié)、預(yù)留區(qū)大小為64字節(jié)類型的page ;否則,觸發(fā)第四判斷單元;第四判斷單元,用于根據(jù)所述第三判斷單元的觸發(fā),判斷從第0-527號(hào)字節(jié)區(qū)域讀取 到的數(shù)據(jù)是否為寫入該字節(jié)區(qū)域的數(shù)據(jù),如果是,則確定nandflash芯片的page類型為數(shù) 據(jù)區(qū)大小為512字節(jié)、預(yù)留區(qū)大小為16字節(jié)類型的page。
11.根據(jù)權(quán)利要求10所述的系統(tǒng),其特征在于,所述第四判斷單元,進(jìn)一步用于當(dāng)判定 從第0-527號(hào)字節(jié)區(qū)域讀取到的數(shù)據(jù)與寫入該字節(jié)區(qū)域的數(shù)據(jù)不同時(shí),觸發(fā)所述特定字節(jié) 區(qū)域?qū)懭雴卧匦路謩e向所述多個(gè)特定字節(jié)區(qū)域?qū)懭氩煌臄?shù)據(jù)。
12.根據(jù)權(quán)利要求9-11任一權(quán)項(xiàng)所述的系統(tǒng),其特征在于,該系統(tǒng)還包括物理結(jié)構(gòu)識(shí)別單元,用于重新啟動(dòng)nandflash芯片,向一個(gè)page的一部分?jǐn)?shù)據(jù)區(qū)域?qū)?入特定數(shù)據(jù);重新啟動(dòng)nandflash芯片,向該page的另一部分?jǐn)?shù)據(jù)區(qū)域?qū)懭胩囟〝?shù)據(jù);重 新啟動(dòng)nandflash芯片,讀取該page的全部數(shù)據(jù);比較從所述另一部分?jǐn)?shù)據(jù)區(qū)域讀取到的 數(shù)據(jù),與向該部分?jǐn)?shù)據(jù)區(qū)域?qū)懭氲奶囟〝?shù)據(jù)是否相同,如果是,則確定所述nandflash芯片 的物理結(jié)構(gòu)為單級(jí)單元SLC物理結(jié)構(gòu);否則,確定所述nandflash芯片的物理結(jié)構(gòu)為多級(jí)單 元MLC物理結(jié)構(gòu)。
13.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于,該系統(tǒng)還包括page數(shù)目識(shí)別單元,用于對(duì)nandflash芯片的多個(gè)特定page所在的塊block進(jìn)行格 式化,其中,所述特定page是預(yù)先根據(jù)nandflash芯片每個(gè)block包括的page數(shù)目的種類 確定的;分別向特定page寫入特定數(shù)據(jù),然后格式化第0號(hào)page所在的block ;讀取特定 page中的數(shù)據(jù),通過將讀取到的數(shù)據(jù)與所述特定數(shù)據(jù)進(jìn)行比較,確定nandflash芯片每個(gè) block包括的page數(shù)目。
14.根據(jù)權(quán)利要求13所述的系統(tǒng),其特征在于,該系統(tǒng)還包括block數(shù)目識(shí)別單元,該 block數(shù)目識(shí)別單元包括第一單元,用于向第0號(hào)page寫入數(shù)據(jù),令參數(shù)i = 1 ;第二單元,用于根據(jù)每個(gè)block包括的page數(shù)目,格式化第512*i個(gè)block ;第三單元,用于讀取第0號(hào)page中的數(shù)據(jù),比較讀取到的數(shù)據(jù)與寫入該第0號(hào)page中 的數(shù)據(jù)是否相同,如果是,則令i = i+Ι,然后觸發(fā)第二單元;否則,確定nandflash芯片包 括 512*i 個(gè) block。
15.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于,該系統(tǒng)還包括timing參數(shù)識(shí)別單元,用于從預(yù)先設(shè)置的多個(gè)timing參數(shù)中選擇滿足閃存nandflash 芯片讀寫條件的timing參數(shù);其中,timing參數(shù)滿足nandflash芯片讀寫條件,是指在采 用該timing參數(shù)時(shí),對(duì)該nandflash芯片進(jìn)行的讀、寫操作均成功;從滿足nandflash芯 片讀寫條件的timing參數(shù)中選擇一個(gè)nandflash芯片工作頻率最高的timing參數(shù),作為 nandflash芯片的最佳timing參數(shù)。
16.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于,該系統(tǒng)還包括初始判定單元,用于在所述page類型識(shí)別單元分別向nandflash芯片的多個(gè)特定 字節(jié)區(qū)域?qū)懭氩煌臄?shù)據(jù)之前,確定所述nandflash芯片的預(yù)先約定區(qū)域是否存在該nandflash芯片的物理參數(shù)。
全文摘要
本發(fā)明公開了一種芯片參數(shù)的識(shí)別方法及系統(tǒng),用以識(shí)別nandflash芯片的物理參數(shù)。本發(fā)明提供的一種芯片參數(shù)的識(shí)別方法包括分別向閃存nandflash芯片的多個(gè)特定字節(jié)區(qū)域?qū)懭氩煌臄?shù)據(jù),其中,所述特定字節(jié)區(qū)域是預(yù)先根據(jù)nandflash芯片的各種頁page類型確定的;讀取特定字節(jié)區(qū)域中的數(shù)據(jù),通過將讀取到的數(shù)據(jù)與寫入該特定字節(jié)區(qū)域中的數(shù)據(jù)進(jìn)行比較,確定nandflash芯片的page類型。
文檔編號(hào)G11C16/20GK102103891SQ20091024288
公開日2011年6月22日 申請(qǐng)日期2009年12月18日 優(yōu)先權(quán)日2009年12月18日
發(fā)明者凌明 申請(qǐng)人:無錫中星微電子有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
台前县| 渭南市| 饶河县| 祁门县| 同心县| 大连市| 浮梁县| 晴隆县| 嘉祥县| 博白县| 靖西县| 永善县| 海门市| 巫山县| 绵竹市| 岳阳市| 宁远县| 阿坝县| 峨山| 阳西县| 临桂县| 德保县| 睢宁县| 松原市| 安泽县| 龙南县| 普兰县| 博客| 唐海县| 巴彦县| 南投市| 长白| 天气| 枣强县| 博野县| 万荣县| 汉沽区| 凤山市| 保山市| 棋牌| 海晏县|