欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

執(zhí)行nand閃存的固化代碼的方法

文檔序號(hào):6738673閱讀:180來(lái)源:國(guó)知局
專利名稱:執(zhí)行nand閃存的固化代碼的方法
技術(shù)領(lǐng)域
本發(fā)明涉及SoC從NAND閃存啟動(dòng)技術(shù),尤其涉及一種NAND閃存的固化代碼的執(zhí)行方法。
背景技術(shù)
隨著嵌入式系統(tǒng)的日趨復(fù)雜,實(shí)際項(xiàng)目對(duì)大容量數(shù)據(jù)存儲(chǔ)的需求越來(lái)越緊迫。當(dāng)前嵌入式設(shè)備低功耗、小體積以及低成本的要求也致使硬盤無(wú)法得到廣泛的應(yīng)用,而大容量閃存設(shè)備恰是為了滿足當(dāng)前這一需求而迅速發(fā)展起來(lái)。從閃存設(shè)備裝載代碼來(lái)啟動(dòng)嵌入式系統(tǒng)是一項(xiàng)基本且必要的Soc技術(shù),如何解決Soc從閃存啟動(dòng)技術(shù)中的一些特定問(wèn)題是目前業(yè)內(nèi)的研究重點(diǎn)。目前國(guó)際上成熟的Soc從閃存啟動(dòng)技術(shù)通常需要完成四個(gè)部分功能和過(guò)程
第一步,首先Soc內(nèi)部硬件固化的過(guò)程代碼被執(zhí)行,這段硬件固化的過(guò)程代碼將對(duì)閃存進(jìn)行基本的初始化,然后把閃存中的裝載程序代碼調(diào)入SoC內(nèi)部的高速緩存中(如圖I所示);
第二步,片內(nèi)高速緩存中的裝載代碼被執(zhí)行,初始化內(nèi)存并將啟動(dòng)代碼從閃存拷貝到內(nèi)存中(如圖2所示);
第三步,內(nèi)存中的啟動(dòng)代碼被執(zhí)行,初始化外部系統(tǒng)及其相關(guān)設(shè)備,并將操作系統(tǒng)核心代碼從NAND閃存拷貝到內(nèi)存中(如圖3所示);
第四步,內(nèi)存中的操作系統(tǒng)核心被執(zhí)行,執(zhí)行操作系統(tǒng)的控制任務(wù)(如圖4所示)。然而,NAND閃存不同于其它存儲(chǔ)設(shè)備,NAND閃存數(shù)據(jù)因其特有的不可靠性特征, 不同廠商的不同型號(hào)NAND閃存對(duì)訪問(wèn)它的設(shè)備都有數(shù)據(jù)糾錯(cuò)的要求,隨著生產(chǎn)工藝日益發(fā)達(dá),NAND閃存的容量增加,這種糾錯(cuò)的功能要求也越來(lái)越多,所以數(shù)據(jù)讀取過(guò)程中的糾錯(cuò)是必不可少的。

發(fā)明內(nèi)容
為解決上述技術(shù)問(wèn)題,本發(fā)明的目的在于提供一種NAND閃存的固化代碼的執(zhí)行方法。其通過(guò)采用數(shù)據(jù)讀取過(guò)程中采用數(shù)據(jù)錯(cuò)誤檢測(cè)及數(shù)據(jù)糾錯(cuò)流程(ECC),這些糾錯(cuò)過(guò)程需要的糾錯(cuò)代碼按照特定的格式存儲(chǔ)在NAND閃存中,進(jìn)而確保了裝載代碼數(shù)據(jù)讀取的正確性。為實(shí)現(xiàn)上述發(fā)明目的,本發(fā)明提供的一種執(zhí)行NAND閃存的固化代碼的方法,包括如下步驟
啟動(dòng)固化代碼以初始化NAND閃存,并為讀取NAND閃存中的裝載代碼做準(zhǔn)備。讀取并解析所述NAND閃存中的裝載代碼,并采用數(shù)據(jù)錯(cuò)誤檢測(cè)及數(shù)據(jù)糾錯(cuò)過(guò)程 (ECC)對(duì)數(shù)據(jù)進(jìn)行處理,所需ECC碼按照訪問(wèn)區(qū)的不同分別存儲(chǔ)在數(shù)據(jù)頁(yè)的不同位置。作為本發(fā)明的進(jìn)一步改進(jìn),所述對(duì)裝載代碼的讀取過(guò)程按照從后向前的順序逐一訪問(wèn),所述每一個(gè)數(shù)據(jù)區(qū)包括一物理數(shù)據(jù)區(qū)號(hào)和一邏輯數(shù)據(jù)區(qū)號(hào),出現(xiàn)壞塊的數(shù)據(jù)區(qū)的邏輯數(shù)據(jù)區(qū)號(hào)為空。作為本發(fā)明的進(jìn)一步改進(jìn),所述裝載代碼在NAND閃存中可設(shè)置具備相同文件格式的一個(gè)或者多個(gè),且所述裝載代碼不保存在有壞塊的數(shù)據(jù)區(qū)中。作為本發(fā)明的進(jìn)一步改進(jìn),所述裝載代碼的文件格式包括文件標(biāo)識(shí)、文件標(biāo)識(shí)起始標(biāo)志、若干數(shù)據(jù)段、文件數(shù)據(jù)結(jié)束標(biāo)志以及文件數(shù)據(jù)校驗(yàn)碼。作為本發(fā)明的進(jìn)一步改進(jìn),所述數(shù)據(jù)段包括數(shù)據(jù)長(zhǎng)度信息、數(shù)據(jù)類型信息、數(shù)據(jù)段地址信息以及數(shù)據(jù)內(nèi)容或數(shù)據(jù)表單內(nèi)容。作為本發(fā)明的進(jìn)一步改進(jìn),所述固化代碼支持NAND閃存行業(yè)標(biāo)準(zhǔn)ONFI 2. OCOpen NAND Flash Interface 2· O)。作為本發(fā)明的進(jìn)一步改進(jìn),所述固化代碼參數(shù)保存于一系統(tǒng)參數(shù)表中,所述系統(tǒng)參數(shù)表的參數(shù)獲取方式包括搜索固化代碼內(nèi)部NAND閃存設(shè)備參數(shù)表、或者從支持ONFI
2.O標(biāo)準(zhǔn)的NAND閃存獲取、或者讀取NAND閃存首頁(yè)保存的參數(shù)表。作為本發(fā)明的進(jìn)一步改進(jìn),所述固化代碼中包括一保存多種型號(hào)NAND閃存參數(shù)的設(shè)備參數(shù)表,且固化代碼支持設(shè)備參數(shù)表中保存的各型號(hào)NAND閃存。與現(xiàn)有技術(shù)相比,本發(fā)明通過(guò)采用數(shù)據(jù)讀取過(guò)程中采用數(shù)據(jù)錯(cuò)誤檢測(cè)及數(shù)據(jù)糾錯(cuò)流程(ECC),這些糾錯(cuò)過(guò)程需要的糾錯(cuò)代碼按照特定的格式存儲(chǔ)在NAND閃存中,進(jìn)而確保了裝載代碼數(shù)據(jù)讀取的正確性,且實(shí)現(xiàn)方法簡(jiǎn)單。


圖I是現(xiàn)有技術(shù)中Soc從閃存啟動(dòng)的步驟一的工作原理示意圖2是現(xiàn)有技術(shù)中Soc從閃存啟動(dòng)的步驟二的工作原理示意圖3是現(xiàn)有技術(shù)中Soc從閃存啟動(dòng)的步驟三的工作原理示意圖4是現(xiàn)有技術(shù)中Soc從閃存啟動(dòng)的步驟四的工作原理示意圖5是本發(fā)明一實(shí)施方式中硬件固化代碼的啟動(dòng)和運(yùn)行的工作流程圖6是本發(fā)明一實(shí)施方式中NAND閃存設(shè)備初始化過(guò)程的工作流程圖7是本發(fā)明一實(shí)施方式中系統(tǒng)參數(shù)表的三種參數(shù)獲取方式的工作流程圖8是本發(fā)明一實(shí)施方式中固化代碼使用的系統(tǒng)參數(shù)表以多副本的方式存儲(chǔ)的示意
圖9是本發(fā)明一實(shí)施方式中讀取NAND閃存中的參數(shù)表的工作流程圖10是本發(fā)明一實(shí)施方式中對(duì)NAND閃存硬件訪問(wèn)地址寬度參數(shù)的處理步驟的流程
圖11是本發(fā)明一實(shí)施方式中讀取并解析閃存中的裝載代碼的具體步驟的流程圖12表示的是本發(fā)明一實(shí)施方式中裝載代碼的特定文件格式以及數(shù)據(jù)段格式;
圖13表示的是本發(fā)明一實(shí)施方式中邏輯數(shù)據(jù)區(qū)裝載代碼的訪問(wèn)原理;
圖14是本發(fā)明一實(shí)施方式中固化代碼讀取裝載代碼的具體過(guò)程的流程圖15表示的是本發(fā)明一實(shí)施方式中固化代碼對(duì)數(shù)據(jù)頁(yè)的訪問(wèn)原理。
具體實(shí)施例方式以下將結(jié)合附圖所示的具體實(shí)施方式
對(duì)本發(fā)明進(jìn)行詳細(xì)描述。但這些實(shí)施方式并不限制本發(fā)明,本領(lǐng)域的普通技術(shù)人員根據(jù)這些實(shí)施方式所做出的結(jié)構(gòu)、方法、或功能上的變換均包括在本發(fā)明的保護(hù)范圍內(nèi)。為了解決由NAND閃存特性引出的問(wèn)題,制定并研發(fā)設(shè)計(jì)了一系列特定的過(guò)程和方法,用以保證初始化過(guò)程正確進(jìn)行和正確讀取NAND閃存中的數(shù)據(jù)參數(shù),這些過(guò)程和方法是在固化代碼中被執(zhí)行的。請(qǐng)參照?qǐng)D5所示,在本發(fā)明一實(shí)施方式中,硬件固化代碼的啟動(dòng)和運(yùn)行包括如下步驟
51、啟動(dòng)固化代碼以初始化NAND閃存,并為讀取NAND閃存中的裝載代碼做準(zhǔn)備,其中, 所述固化代碼中包括一保存多種型號(hào)NAND閃存參數(shù)的設(shè)備參數(shù)表,且固化代碼支持設(shè)備參數(shù)表中保存的各型號(hào)NAND閃存;
52、讀取并解析所述NAND閃存中的裝載代碼,并采用數(shù)據(jù)錯(cuò)誤檢測(cè)及數(shù)據(jù)糾錯(cuò)過(guò)程 (ECC)對(duì)數(shù)據(jù)進(jìn)行處理,所需ECC碼按照訪問(wèn)區(qū)的不同分別存儲(chǔ)在數(shù)據(jù)頁(yè)的不同位置。值得一提的是,所述固化代碼支持NAND閃存行業(yè)標(biāo)準(zhǔn)ONFI 2. 0(0pen NAND Flash Interface 2.0)。Open NAND Flash Interface (ONFI)工作組已經(jīng)于 2008-2009 年公布了其ONFI 2. O標(biāo)準(zhǔn)。該公司成立于2006年5月,擁有100多個(gè)涉及制造、設(shè)計(jì)以及使用閃存產(chǎn)品的成員,包括海力士、英特爾、鎂光、SanDisk以及索尼。ONFI 2. O標(biāo)準(zhǔn)要求NAND閃存能夠通過(guò)處理特殊指令OxEC提供硬件設(shè)備的具體參數(shù)。在固化代碼的參數(shù)獲取流程中,能夠通過(guò)這個(gè)命令將支持ONFI 2. O標(biāo)準(zhǔn)的NAND閃存中的參數(shù)讀取并更新到系統(tǒng)參數(shù)表中。其中,如圖6所示,步驟SI具體包括
511、初始化用于與NAND閃存通信以控制NAND閃存的NAND閃存硬件控制器;
512、檢測(cè)當(dāng)前NAND閃存參數(shù)并讀取與當(dāng)前NAND閃存對(duì)應(yīng)的固化代碼參數(shù)。NAND閃存參數(shù)檢測(cè),固化代碼參數(shù)讀取過(guò)程依據(jù)不同類型的閃存包含不同的內(nèi)容,目前在成熟的方案中可以同時(shí)支持SPI閃存以及NAND閃存,這兩種閃存中NAND閃存由于固有的硬件特征使得控制更為復(fù)雜。具體地,在本實(shí)施方式中的步驟SI中,首先需要進(jìn)行硬件的啟動(dòng)(系統(tǒng)加電),接下來(lái)需要通過(guò)硬件啟動(dòng)控制器初始化片內(nèi)存儲(chǔ)器(步驟SlOl),硬件啟動(dòng)控制器分析并解析存儲(chǔ)在片內(nèi)存儲(chǔ)器上的特定格式的固化代碼(步驟S102),緊接著判斷解析是否成功(步驟 S103),若不成功,則硬件啟動(dòng)停止;若成功,則進(jìn)行固化代碼的啟動(dòng)(步驟S104),通過(guò)啟動(dòng)固化代碼來(lái)初始化閃存并為讀取裝載代碼做必要準(zhǔn)備,并判斷是否成功(步驟S106),若成功,便進(jìn)入讀取并解析閃存中的裝載代碼的步驟,若不成功,則判斷是否需要啟動(dòng)下一個(gè)閃存(步驟S110),若是,則返回步驟SI、若否,跳轉(zhuǎn)步驟Slll :停止固化代碼。在讀取并解析閃存的裝載代碼之后,還需判斷該過(guò)程是否成功(步驟S108),若是, 則啟動(dòng)控制權(quán)交給特定的軟件來(lái)裝載代碼(步驟S109);若否,同樣需要判斷是否需要啟動(dòng)下一個(gè)閃存(步驟SI 10)。在本實(shí)施方式中,固化代碼最終使用的參數(shù)(比如閃存設(shè)備參數(shù)、設(shè)備ID、尺寸信息等等)保存于一系統(tǒng)參數(shù)表中,所述系統(tǒng)參數(shù)表的參數(shù)獲取方式包括搜索固化代碼內(nèi)部 NAND閃存設(shè)備參數(shù)表、或者從支持ONFI 2. O標(biāo)準(zhǔn)的NAND閃存獲取、或者讀取NAND閃存首頁(yè)保存的參數(shù)表。具體地,請(qǐng)參圖7所示,“搜索固化代碼內(nèi)部NAND閃存設(shè)備參數(shù)表”的參數(shù)獲取方式具體為
內(nèi)部設(shè)備表參數(shù)獲取開始;
讀取NAND閃存設(shè)備的ID,其中,設(shè)備參數(shù)表中為每一個(gè)型號(hào)的NAND閃存都分別配置了唯一的ID ;
判斷讀取ID是否成功,若是,則讀取內(nèi)部設(shè)備參數(shù)表;若否,則內(nèi)部設(shè)備表參數(shù)獲取結(jié)
束;
讀取內(nèi)部設(shè)備參數(shù)表結(jié)束后,還需判斷是否找到閃存信息,若是,則對(duì)系統(tǒng)參數(shù)表進(jìn)行更新;若否,則內(nèi)部設(shè)備表參數(shù)獲取結(jié)束;
“從支持ONFI 2. O標(biāo)準(zhǔn)的NAND閃存獲取”的參數(shù)獲取方式具體為
ONFI信息表讀取開始;
與NAND閃存通信并獲取ONFI讀取信息表;
判斷是否成功獲取,若是,則對(duì)系統(tǒng)參數(shù)表進(jìn)行更新;若否,則ONFI信息表讀取結(jié)束; “讀取NAND閃存首頁(yè)保存的參數(shù)表”的參數(shù)獲取方式具體為
NAND閃存中的參數(shù)表獲取開始;
讀取NAND閃存中的參數(shù)表;
判斷是否成功獲取,若是,則對(duì)系統(tǒng)參數(shù)表進(jìn)行更新;若否,則NAND閃存中的參數(shù)表獲取結(jié)束;
表[I]中列舉了其中的部分參數(shù)
權(quán)利要求
1.一種執(zhí)行NAND閃存的固化代碼的方法,其特征在于,該方法包括如下步驟啟動(dòng)固化代碼以初始化NAND閃存,并為讀取NAND閃存中的裝載代碼做準(zhǔn)備;讀取并解析所述NAND閃存中的裝載代碼,并采用數(shù)據(jù)錯(cuò)誤檢測(cè)及數(shù)據(jù)糾錯(cuò)過(guò)程(ECC) 對(duì)數(shù)據(jù)進(jìn)行處理,所需ECC碼按照訪問(wèn)區(qū)的不同分別存儲(chǔ)在數(shù)據(jù)頁(yè)的不同位置。
2.如權(quán)利要求I所述的方法,其特征在于,所述對(duì)裝載代碼的讀取過(guò)程按照從后向前的順序逐一訪問(wèn),所述每一個(gè)數(shù)據(jù)區(qū)包括一物理數(shù)據(jù)區(qū)號(hào)和一邏輯數(shù)據(jù)區(qū)號(hào),出現(xiàn)壞塊的數(shù)據(jù)區(qū)的邏輯數(shù)據(jù)區(qū)號(hào)為空。
3.如權(quán)利要求2所述的方法,其特征在于,所述裝載代碼在NAND閃存中可設(shè)置具備相同文件格式的一個(gè)或者多個(gè),且所述裝載代碼不保存在有壞塊的數(shù)據(jù)區(qū)中。
4.如權(quán)利要求I所述的方法,其特征在于,所述裝載代碼的文件格式包括文件標(biāo)識(shí)、 文件標(biāo)識(shí)起始標(biāo)志、若干數(shù)據(jù)段、文件數(shù)據(jù)結(jié)束標(biāo)志以及文件數(shù)據(jù)校驗(yàn)碼。
5.如權(quán)利要求4所述的方法,其特征在于,所述數(shù)據(jù)段包括數(shù)據(jù)長(zhǎng)度信息、數(shù)據(jù)類型信息、數(shù)據(jù)段地址信息以及數(shù)據(jù)內(nèi)容或數(shù)據(jù)表單內(nèi)容。
6.如權(quán)利要求5所述的方法,其特征在于,所述固化代碼參數(shù)保存于一系統(tǒng)參數(shù)表中,所述系統(tǒng)參數(shù)表的參數(shù)獲取方式包括搜索固化代碼內(nèi)部NAND閃存設(shè)備參數(shù)表、或者從支持ONFI 2. O標(biāo)準(zhǔn)的NAND閃存獲取、或者讀取NAND閃存首頁(yè)保存的參數(shù)表。
7.如權(quán)利要求I所述的方法,其特征在于,所述固化代碼中包括一保存多種型號(hào)NAND 閃存參數(shù)的設(shè)備參數(shù)表,且固化代碼支持設(shè)備參數(shù)表中保存的各型號(hào)NAND閃存。
全文摘要
本發(fā)明提供一種執(zhí)行NAND閃存的固化代碼的方法,包括如下步驟啟動(dòng)固化代碼以初始化NAND閃存,并為讀取NAND閃存中的裝載代碼做準(zhǔn)備;讀取并解析所述NAND閃存中的裝載代碼,并采用數(shù)據(jù)錯(cuò)誤檢測(cè)及數(shù)據(jù)糾錯(cuò)過(guò)程(ECC)對(duì)數(shù)據(jù)進(jìn)行處理,所需ECC碼按照訪問(wèn)區(qū)的不同分別存儲(chǔ)在數(shù)據(jù)頁(yè)的不同位置。與現(xiàn)有技術(shù)相比,本發(fā)明通過(guò)采用數(shù)據(jù)讀取過(guò)程中采用數(shù)據(jù)錯(cuò)誤檢測(cè)及數(shù)據(jù)糾錯(cuò)流程(ECC),這些糾錯(cuò)過(guò)程需要的糾錯(cuò)代碼按照特定的格式存儲(chǔ)在NAND閃存中,進(jìn)而確保了裝載代碼數(shù)據(jù)讀取的正確性,且實(shí)現(xiàn)方法簡(jiǎn)單。
文檔編號(hào)G11C29/42GK102610279SQ20121001725
公開日2012年7月25日 申請(qǐng)日期2012年1月19日 優(yōu)先權(quán)日2012年1月19日
發(fā)明者孫紀(jì)坤, 李相斌, 袁宏駿 申請(qǐng)人:蘇州希圖視鼎微電子有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
响水县| 白银市| 凤阳县| 海门市| 马山县| 会理县| 泰和县| 柳州市| 筠连县| 江永县| 逊克县| 富源县| 安多县| 吉木萨尔县| 丰原市| 万源市| 股票| 金阳县| 白山市| 蓝田县| 门头沟区| 井研县| 福清市| 平武县| 英德市| 上杭县| 西畴县| 自贡市| 舒兰市| 托克逊县| 翼城县| 天长市| 宿州市| 弥渡县| 突泉县| 繁昌县| 宝清县| 安阳县| 尼勒克县| 金山区| 从化市|