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

與非型閃存控制器及其數(shù)據(jù)傳輸方法

文檔序號(hào):6578228閱讀:108來(lái)源:國(guó)知局
專利名稱:與非型閃存控制器及其數(shù)據(jù)傳輸方法
技術(shù)領(lǐng)域
本發(fā)明涉及存儲(chǔ)器控制技術(shù),特別涉及一種與非型閃存控制器及其數(shù)據(jù)傳輸方法。
背景技術(shù)
片上系統(tǒng)(SoC,System on Chip)是一種系統(tǒng)級(jí)芯片,一般包括中央處理器(CPU, Central Process Unit)、總線、各種存儲(chǔ)器控制器和應(yīng)用裝置,其中存儲(chǔ)器控制器負(fù)責(zé)與 SoC的外部存儲(chǔ)器進(jìn)行數(shù)據(jù)傳輸。與非型閃存(Nandflash)控制器是一種常用的存儲(chǔ)器控制器,與芯片外部的 Nandflash進(jìn)行數(shù)據(jù)傳輸。上述NandfIash內(nèi)部包括緩存區(qū)和存儲(chǔ)區(qū),其中緩存區(qū)的大小 為一頁(yè)(page),包括用于存儲(chǔ)數(shù)據(jù)的主區(qū)和用于存儲(chǔ)校驗(yàn)數(shù)據(jù)的剩余空間(spare area) 0 舉例說(shuō)明,緩存區(qū)中的主區(qū)包括2048字節(jié)(即4個(gè)扇區(qū)),緩存區(qū)中的剩余空間包括64字 節(jié),并被分為四個(gè)小區(qū)域,每個(gè)小區(qū)域用于存儲(chǔ)主區(qū)中一個(gè)扇區(qū)對(duì)應(yīng)的校驗(yàn)數(shù)據(jù),主區(qū)中每 個(gè)扇區(qū)的起始存儲(chǔ)位置和剩余空間中每個(gè)小區(qū)域的起始存儲(chǔ)位置使用頁(yè)內(nèi)地址標(biāo)識(shí)。上述 存儲(chǔ)區(qū)的大小根據(jù)實(shí)際需要設(shè)置為緩存區(qū)的整數(shù)倍,以一頁(yè)為基本存儲(chǔ)單位,每一頁(yè)的起 始存儲(chǔ)位置使用頁(yè)地址標(biāo)識(shí)。Nandflash控制器與Nandflash之間的數(shù)據(jù)傳輸流程如下所述1)寫操作中的數(shù)據(jù)傳輸;步驟1 =Nandflash控制器接收CPU發(fā)送的寫操作命令,該寫操作命令指示當(dāng)前傳 輸類型為寫操作、及CPU配置的命令參數(shù),包括主區(qū)地址和剩余空間地址;本步驟中,主區(qū)地址包括主區(qū)頁(yè)內(nèi)地址和頁(yè)地址兩部分,其中主區(qū)頁(yè)內(nèi)地址指示 了數(shù)據(jù)在Nandflash緩存區(qū)中的起始存儲(chǔ)位置,頁(yè)地址指示了數(shù)據(jù)在Nandflash存儲(chǔ)區(qū)中 的起始存儲(chǔ)位置。剩余空間地址包括剩余空間頁(yè)內(nèi)地址,指示了數(shù)據(jù)對(duì)應(yīng)的校驗(yàn)數(shù)據(jù)在Nandflash 緩存區(qū)中的起始存儲(chǔ)位置。步驟2 =Nandflash控制器向Nandflash發(fā)送預(yù)定命令、及所述主區(qū)地址和剩余空 間地址,并按照所述主區(qū)地址向Nandflash的主區(qū)寫入一個(gè)扇區(qū)的數(shù)據(jù),同時(shí)Nandflash控 制器內(nèi)部的錯(cuò)誤檢查糾正(ECC,Error Checking and Correcting)裝置開(kāi)始進(jìn)行編碼以生 成校驗(yàn)數(shù)據(jù);步驟3:當(dāng)一個(gè)扇區(qū)的數(shù)據(jù)向主區(qū)傳輸完畢后,ECC裝置的編碼也同時(shí)完成, Nandflash控制器按照所述剩余空間地址將生成的校驗(yàn)數(shù)據(jù)寫入Nandflash的剩余空間。上述步驟2和3的具體執(zhí)行時(shí)序在現(xiàn)有技術(shù)的規(guī)范中已有明確規(guī)定。在步驟3的校驗(yàn)數(shù)據(jù)寫入完畢后向CPU返回傳輸完成標(biāo)志位,CPU進(jìn)行下一次寫 操作命令的配置,然后返回執(zhí)行步驟1,直至傳輸完待寫入數(shù)據(jù)。假如Nandflash控制器經(jīng)過(guò)重復(fù)執(zhí)行上述步驟1 3幾次后將Nandflash緩存區(qū) 寫滿,但待寫入數(shù)據(jù)還沒(méi)有傳輸完畢,則在下一次執(zhí)行步驟1 3時(shí),在上述步驟2和步驟3之間首先向Nandflash發(fā)送實(shí)際寫操作命令,NandfIash根據(jù)所述頁(yè)地址將緩存區(qū)的數(shù)據(jù) 讀到存儲(chǔ)區(qū)中存儲(chǔ),然后Nandflash控制器再開(kāi)始執(zhí)行步驟3中的內(nèi)容。假如Nandflash 控制器經(jīng)過(guò)重復(fù)執(zhí)行上述步驟1 3后未將Nandflash緩存區(qū)寫滿,但待寫入的數(shù)據(jù)已經(jīng) 傳輸完畢,則還是向Nandflash發(fā)送實(shí)際寫操作命令,Nandflash仍然根據(jù)所述頁(yè)地址將 整個(gè)緩存區(qū)中的數(shù)據(jù)讀入存儲(chǔ)區(qū),只是此時(shí)未寫滿的緩存區(qū)中的數(shù)據(jù)均默認(rèn)為FFh??梢?jiàn) Nandflash的內(nèi)部操作是基于一頁(yè)大小的,即內(nèi)部操作是基于其自身緩存區(qū)大小的。2)讀操作中的數(shù)據(jù)傳輸;步驟1 =Nandflash控制器接收CPU發(fā)送的讀操作命令,該讀操作命令指示當(dāng)前傳 輸類型為讀操作、及CPU配置的命令參數(shù),包括主區(qū)地址和剩余空間地址;本步驟中的主區(qū)地址和剩余空間地址與前文介紹的相同。步驟2 =Nandflash控制器向Nandflash發(fā)送預(yù)定命令、及所述主區(qū)地址和剩余空 間地址;此后,Nandflash控制器等待Nandflash按照頁(yè)地址將一整頁(yè)數(shù)據(jù)讀到緩存區(qū)中, 在NandfIash執(zhí)行該讀操作的過(guò)程中,先將自身RB引腳拉低,完成讀出后在將該引腳拉高。 后續(xù)Nandflash控制器無(wú)需再經(jīng)歷該等待過(guò)程,直至將Nandflash讀到緩存區(qū)中的所有數(shù) 據(jù)都讀出;步驟3 =Nandflash控制器按照主區(qū)頁(yè)內(nèi)地址從Nandflash緩存區(qū)中讀取一個(gè)扇區(qū) 的數(shù)據(jù),同時(shí)Nandflash控制器內(nèi)部的ECC裝置開(kāi)始編碼以生成校驗(yàn)數(shù)據(jù),當(dāng)讀取數(shù)據(jù)完成 時(shí)編碼也同時(shí)完成;步驟4 =Nandflash控制器按照所述剩余空間頁(yè)內(nèi)地址從Nandf Iash緩存區(qū)中讀取 校驗(yàn)數(shù)據(jù)。上述步驟3和4的具體執(zhí)行時(shí)序在現(xiàn)有技術(shù)的規(guī)范中已有明確規(guī)定。在執(zhí)行完步驟4后,Nandflash控制器將讀取的校驗(yàn)數(shù)據(jù)與ECC裝置生成的校驗(yàn) 數(shù)據(jù)一起解碼,如檢查到錯(cuò)誤則計(jì)算出錯(cuò)誤地址和錯(cuò)誤位置報(bào)告給CPU,CPU進(jìn)行糾錯(cuò)處理 后配置下一次讀操作命令,再返回執(zhí)行步驟1,直至將待讀取數(shù)據(jù)全部讀出。上述Nandflash控制器的數(shù)據(jù)傳輸過(guò)程如果從邏輯層面來(lái)描述,就要用到邏輯設(shè) 計(jì)中常用的狀態(tài)機(jī)概念,圖1為現(xiàn)有技術(shù)中Nandflash控制器狀態(tài)機(jī)流程圖,該流程中同時(shí) 包括了上述讀操作和寫操作中的數(shù)據(jù)傳輸,每一個(gè)方框都代表一個(gè)狀態(tài)?,F(xiàn)有技術(shù)中這種Nandflash控制器數(shù)據(jù)傳輸中的讀寫操作雖然簡(jiǎn)單而思路清晰, 但是每完成一個(gè)扇區(qū)就需要從Nandflash控制器切換回CPU進(jìn)行下一個(gè)扇區(qū)操作的命令配 置,從狀態(tài)機(jī)的角度來(lái)說(shuō)就是每完成一個(gè)扇區(qū)就需要執(zhí)行狀態(tài)機(jī)參數(shù)配置以及下一次狀態(tài) 機(jī)的啟動(dòng),這樣要完成一頁(yè)的數(shù)據(jù)傳輸就需要重復(fù)多次狀態(tài)機(jī)的啟動(dòng),耗費(fèi)大量時(shí)間、占用 額外的時(shí)鐘資源,從而降低了數(shù)據(jù)傳輸效率。

發(fā)明內(nèi)容
本發(fā)明提供一種Nandflash控制器,能夠提高數(shù)據(jù)傳輸?shù)男?。本發(fā)明提供一種Nandflash控制器的數(shù)據(jù)傳輸方法,使用該方法能夠提高數(shù)據(jù)傳 輸?shù)男?。本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的—種與非型閃存控制器,用于和與非型閃存Nandflash執(zhí)行數(shù)據(jù)傳輸;關(guān)鍵在于,所述Nandflash控制器包括傳輸控制裝置和參數(shù)配置裝置;所述參數(shù)配置裝置,用于接收外部輸入的操作命令,該操作命令指示當(dāng)前傳輸類 型、傳輸所述與非型閃存內(nèi)部的緩存區(qū)大小的數(shù)據(jù)所需的執(zhí)行次數(shù)及每一次執(zhí)行的命令參 數(shù);所述傳輸控制裝置,用于在每一次執(zhí)行數(shù)據(jù)傳輸時(shí),按照當(dāng)前傳輸類型及本次執(zhí) 行的命令參數(shù)、與Nandflash傳輸預(yù)定大小的數(shù)據(jù),直至完成所述執(zhí)行次數(shù),然后觸發(fā)操作 命令的操作,直至傳輸完待傳輸數(shù)據(jù)。一種與非型閃存控制器的數(shù)據(jù)傳輸方法,與非型閃存Nandflash控制器和與非型 閃存Nandflash每執(zhí)行一次數(shù)據(jù)傳輸,傳輸預(yù)定大小的數(shù)據(jù);關(guān)鍵在于,該方法包括A、NandflaSh控制器接收外部輸入的操作命令,該操作命令指示當(dāng)前傳輸類型、傳 輸所述與非型閃存內(nèi)部的緩存區(qū)大小的數(shù)據(jù)所需的執(zhí)行次數(shù)及每一次執(zhí)行的命令參數(shù);B、NandflaSh控制器按照當(dāng)前傳輸類型及命令參數(shù)在每一次執(zhí)行中傳輸所述預(yù)定 大小的數(shù)據(jù),直至完成所述執(zhí)行次數(shù);然后返回執(zhí)行步驟A,直至傳輸完待傳輸數(shù)據(jù)。可見(jiàn),在本發(fā)明Nandflash控制器的數(shù)據(jù)傳輸方法中,操作命令中包括完成緩存 區(qū)大小的數(shù)據(jù)傳輸所需的執(zhí)行次數(shù)、命令參數(shù)以及當(dāng)前傳輸類型,這樣Nandflash控制器 可以每次與Nandflash傳輸預(yù)定大小的數(shù)據(jù),重復(fù)循環(huán)執(zhí)行多次直到完成緩存區(qū)大小的數(shù) 據(jù)傳輸,避免了每完成預(yù)定大小的數(shù)據(jù)就要切換配置下一次操作的命令,從而節(jié)省時(shí)間和 時(shí)鐘資源,大大提高數(shù)據(jù)傳輸效率。在本發(fā)明Nandflash控制器,參數(shù)配置裝置可以存儲(chǔ)配置的操作命令,該操作 命令中包括完成緩存區(qū)大小的數(shù)據(jù)傳輸所需的執(zhí)行次數(shù)、命令參數(shù)以及當(dāng)前傳輸類型, 傳輸控制裝置可以控制傳輸執(zhí)行裝置按照上述操作命令中的內(nèi)容執(zhí)行數(shù)據(jù)傳輸。這樣 Nandflash控制器可以每次與Nandflash傳輸預(yù)定大小的數(shù)據(jù),重復(fù)循環(huán)執(zhí)行多次直到完 成緩存區(qū)大小數(shù)據(jù)的傳輸,避免了每完成預(yù)定大小的數(shù)據(jù)就要切換配置下一次操作的命 令,從而節(jié)省時(shí)間和時(shí)鐘資源,大大提高數(shù)據(jù)傳輸效率。


圖1為現(xiàn)有技術(shù)中Nandflash控制器狀態(tài)機(jī)流程圖;圖2為本發(fā)明Nandflash控制器的數(shù)據(jù)傳輸流程圖;圖3為本發(fā)明實(shí)施例中寫操作的數(shù)據(jù)傳輸流程圖;圖4為本發(fā)明實(shí)施例中讀操作的數(shù)據(jù)傳輸流程圖;圖5為本發(fā)明Nandflash控制器的結(jié)構(gòu)示意圖;圖6為本發(fā)明實(shí)施例中Nandflash控制器與USB控制器交互的示意圖。
具體實(shí)施例方式為使本發(fā)明的目的和優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步的 詳細(xì)說(shuō)明。圖2為本發(fā)明Nandflash控制器的數(shù)據(jù)傳輸方法流程圖。與現(xiàn)有技術(shù)相同,在本 發(fā)明的Nandflash控制器的數(shù)據(jù)傳輸方法中,Nandflash控制器與Nandflash每執(zhí)行一次 數(shù)據(jù)傳輸,都傳輸一個(gè)扇區(qū)的數(shù)據(jù),且Nandflash內(nèi)部操作基于一頁(yè)大小。圖2所示流程包
7括步驟201 =Nandflash控制器接收外部輸入的操作命令,該操作命令指示當(dāng)前傳輸 類型、傳輸一頁(yè)數(shù)據(jù)所需的執(zhí)行次數(shù)及每一次執(zhí)行時(shí)使用的命令參數(shù)。步驟202 =Nandflash控制器在每一次執(zhí)行數(shù)據(jù)傳輸時(shí),按照當(dāng)前傳輸類型及本次 執(zhí)行的命令參數(shù)傳輸一個(gè)扇區(qū)的數(shù)據(jù),直至完成所述執(zhí)行次數(shù),然后返回執(zhí)行步驟201,直 至傳輸完待傳輸數(shù)據(jù)。可見(jiàn),在本發(fā)明Nandflash控制器的數(shù)據(jù)傳輸方法中,配置的操作命令中包括完 成一頁(yè)數(shù)據(jù)傳輸所需的執(zhí)行次數(shù)、命令參數(shù)以及當(dāng)前傳輸類型,這樣Nandflash控制器可 以每次與Nandflash傳輸一個(gè)扇區(qū)數(shù)據(jù),重復(fù)循環(huán)執(zhí)行多次直到完成一頁(yè)數(shù)據(jù)的傳輸,避 免了每完成一個(gè)扇區(qū)數(shù)據(jù)就要切換配置下一次操作的命令,從而節(jié)省時(shí)間和時(shí)鐘資源,大 大提高數(shù)據(jù)傳輸效率。當(dāng)然,圖2所示流程僅是以常用的現(xiàn)有標(biāo)準(zhǔn)為例,在實(shí)際應(yīng)用中,Nandflash控制 器與Nandflash每執(zhí)行一次數(shù)據(jù)傳輸,可以完成預(yù)定大小的數(shù)據(jù),并不局限于每次只完成 一個(gè)扇區(qū),Nandflash的內(nèi)部操作只要基于其自身緩存區(qū)大小即可,并不局限于一頁(yè)大小。下面分別詳細(xì)描述本發(fā)明實(shí)施例中寫操作和讀操作的數(shù)據(jù)傳輸流程。圖3為本發(fā)明實(shí)施例中寫操作的數(shù)據(jù)傳輸流程圖,在該流程開(kāi)始之前,Nandflash 控制器接收CPU配置的寫操作命令,該寫操作命令指示當(dāng)前傳輸類型為寫操作、傳輸一頁(yè) 數(shù)據(jù)所需的執(zhí)行次數(shù)、每一次執(zhí)行的命令參數(shù),命令參數(shù)中包括主區(qū)地址。該寫操作命令還 進(jìn)一步指示了頁(yè)大小。圖3所示流程包括以下步驟步驟301 =Nandflash控制器向Nandflash發(fā)送預(yù)定命令CMDO。本步驟中,該命令CMDO為現(xiàn)有規(guī)范中規(guī)定的標(biāo)準(zhǔn)命令,在寫操作時(shí),該命令指示 寫主區(qū)數(shù)據(jù)。步驟302 =Nandflash控制器向Nandflash發(fā)送主區(qū)地址ADDRO。在本發(fā)明實(shí)施例中,如果本次執(zhí)行為第一頁(yè)數(shù)據(jù)的第一次執(zhí)行,則主區(qū)地址包括 頁(yè)地址和主區(qū)頁(yè)內(nèi)地址,Nandflash控制器需根據(jù)頁(yè)大小計(jì)算剩余空間的起始頁(yè)內(nèi)地址; 如果本次執(zhí)行為除第一頁(yè)數(shù)據(jù)外的其他頁(yè)數(shù)據(jù)的第一次執(zhí)行,則主區(qū)地址僅包括主區(qū)頁(yè)內(nèi) 地址,Nandflash控制器需根據(jù)所述頁(yè)大小及上一次執(zhí)行中使用的頁(yè)地址計(jì)算本次執(zhí)行中 的頁(yè)地址,并根據(jù)頁(yè)大小計(jì)算剩余空間的起始頁(yè)內(nèi)地址;如果本次執(zhí)行為除第一頁(yè)數(shù)據(jù)外 的其他頁(yè)數(shù)據(jù)的第二次以上執(zhí)行,則主區(qū)地址中僅包括主區(qū)頁(yè)內(nèi)地址,Nandflash控制器使 用上一次執(zhí)行中剩余空間頁(yè)內(nèi)地址計(jì)算本次執(zhí)行中剩余空間頁(yè)內(nèi)地址??梢?jiàn),CPU只需對(duì) 第一頁(yè)數(shù)據(jù)的第一次執(zhí)行配置頁(yè)地址,且針對(duì)任何一頁(yè)數(shù)據(jù)都無(wú)需配置剩余空間地址,簡(jiǎn) 化了 CPU的配置操作,而且上述所有計(jì)算依據(jù)現(xiàn)有技術(shù)就可以實(shí)現(xiàn)。步驟303 =Nandflash控制器按照主區(qū)頁(yè)內(nèi)地址,向Nandflash的主區(qū)中寫入一個(gè) 扇區(qū)的數(shù)據(jù)。在本發(fā)明實(shí)施例中,在Nandflash控制器中設(shè)置DMA控制器,使得Nandflash控制 器與Nandflash之間建立DMA通道。同時(shí),Nandflash控制器中的ECC裝置針對(duì)該扇區(qū)數(shù)據(jù)編碼以生成校驗(yàn)數(shù)據(jù)。步驟304 =Nandflash控制器向Nandflash發(fā)送預(yù)定命令CMD2。本步驟中,該命令CMD2為現(xiàn)有規(guī)范中規(guī)定的標(biāo)準(zhǔn)命令,在寫操作時(shí),該命令指示寫剩余空間數(shù)據(jù)。步驟305 =Nandflash控制器向Nandflash發(fā)送剩余空間地址ADDRl。本步驟中的ADDRl,由Nandflash控制器在步驟302中計(jì)算得出。步驟306 =Nandflash控制器按照剩余空間地址,將生成的校驗(yàn)數(shù)據(jù)寫入 Nandflash的剩余空間。與現(xiàn)有技術(shù)中的相同,本發(fā)明實(shí)施例中也涉及Nandf Iash控制器向Nandf Iash發(fā) 送實(shí)際寫操作命令的步驟,這里不再贅述。圖4為本發(fā)明實(shí)施例中讀操作的數(shù)據(jù)傳輸流程圖,在該流程開(kāi)始之前,Nandflash 控制器接收CPU發(fā)送的讀操作命令,該讀操作命令指示當(dāng)前傳輸類型為讀操作、傳輸一頁(yè) 數(shù)據(jù)所需的執(zhí)行次數(shù)、每一次執(zhí)行的命令參數(shù),命令參數(shù)中包括主區(qū)地址。該讀操作命令還 指示頁(yè)大小。圖4所示流程包括以下步驟步驟401 =Nandflash控制器向Nandflash發(fā)送預(yù)定命令CMDO。本步驟中,該命令CMDO為現(xiàn)有規(guī)范中規(guī)定的標(biāo)準(zhǔn)命令,在讀操作時(shí),該命令中指 示讀主區(qū)數(shù)據(jù)。步驟402 =Nandflash控制器向Nandflash發(fā)送主區(qū)地址ADDR0,該主區(qū)地址與步 驟402中的解釋相同。步驟403 =Nandflash控制器向Nandflash發(fā)送預(yù)定命令CMDl。本步驟中,該命令CMDl為現(xiàn)有規(guī)范中規(guī)定的標(biāo)準(zhǔn)命令,用于在讀操作時(shí)與預(yù)定命 令CMDO配合指示讀操作。如果本次執(zhí)行為某一頁(yè)數(shù)據(jù)第一次執(zhí)行,則Nandflash控制器需等待Nandflash 根據(jù)頁(yè)地址將一整頁(yè)數(shù)據(jù)從存儲(chǔ)區(qū)先讀到緩存區(qū);如果本次執(zhí)行為某一頁(yè)數(shù)據(jù)的第二次以 上執(zhí)行,則無(wú)需經(jīng)歷該等待過(guò)程,Nandflash控制器直接從緩存區(qū)中讀取數(shù)據(jù)即可。步驟404 =Nandflash控制器按照主區(qū)頁(yè)內(nèi)地址從Nandflash緩存區(qū)中讀取一個(gè)扇 區(qū)的數(shù)據(jù),讀取的同時(shí)Nandflash控制器中的ECC裝置針對(duì)該讀取的數(shù)據(jù)生成校驗(yàn)數(shù)據(jù)。在本發(fā)明實(shí)施例中,在Nandflash控制器中設(shè)置DMA控制器,使得Nandflash控制 器與Nandflash之間建立DMA通道。 步驟405 =Nandflash控制器向Nandflash發(fā)送預(yù)定命令CMD2。本步驟中,該命令CMD2為現(xiàn)有規(guī)范中規(guī)定的標(biāo)準(zhǔn)命令,在讀操作時(shí),該命令中指 示讀剩余空間數(shù)據(jù)。步驟406 =Nandflash控制器向Nandflash發(fā)送剩余空間地址ADDRl。本步驟與步驟305的解釋相同。步驟407 =Nandflash控制器向Nandflash發(fā)送預(yù)定命令CMD3。本步驟中,該命令CMD3為現(xiàn)有規(guī)范中規(guī)定的標(biāo)準(zhǔn)命令,用于在讀操作時(shí)與預(yù)定命 令CMDl配合指示讀操作。步驟408 =Nandflash控制器按照剩余空間地址從Nanflash中讀取校驗(yàn)數(shù)據(jù)。為保證讀操作在循環(huán)過(guò)程中不被打斷,在上述步驟408之后,本發(fā)明實(shí)施例中 Nandflash控制器將讀取的校驗(yàn)數(shù)據(jù)傳輸?shù)絻?nèi)部的ECC裝置中,由ECC裝置根據(jù)讀取的校驗(yàn) 數(shù)據(jù)和自身生成的校驗(yàn)數(shù)據(jù)進(jìn)行解碼,如發(fā)現(xiàn)錯(cuò)誤則直接糾錯(cuò),這樣就不必切換回CPU進(jìn) 行糾錯(cuò),進(jìn)一步提高了數(shù)據(jù)傳輸?shù)男?。本?shí)施例中的步驟編號(hào)僅用于指代該技術(shù)特征,并不用于限定其執(zhí)行順序?;诒景l(fā)明Nandflash控制器的數(shù)據(jù)傳輸方法,本發(fā)明還提供了一種Nandflash 控制器結(jié)構(gòu)。圖5為本發(fā)明Nandflash控制器的結(jié)構(gòu)示意圖,該Nandflash控制器用于與 Nandflash執(zhí)行數(shù)據(jù)傳輸,所述Nandflash的內(nèi)部操作基于一頁(yè)大小。圖5所示Nandf Iash 控制器包括傳輸控制裝置和參數(shù)配置裝置。上述參數(shù)配置裝置,用于接收外部輸入的操作命令,該操作命令指示當(dāng)前傳輸類 型、傳輸一頁(yè)數(shù)據(jù)所需的執(zhí)行次數(shù)及每一次執(zhí)行時(shí)使用的命令參數(shù)。上述傳輸控制裝置,用于在每一次執(zhí)行數(shù)據(jù)傳輸時(shí),按照當(dāng)前傳輸類型及本次執(zhí) 行的命令參數(shù)、與Nandflash傳輸一個(gè)扇區(qū)的數(shù)據(jù),直至完成所述執(zhí)行次數(shù),然后觸發(fā)CPU 配置操作命令,直至傳輸完待傳輸數(shù)據(jù)??梢?jiàn),在本發(fā)明Nandflash控制器,參數(shù)配置裝置可以存儲(chǔ)配置的操作命令,該操 作命令中包括完成一頁(yè)數(shù)據(jù)傳輸所需的執(zhí)行次數(shù)、命令參數(shù)以及當(dāng)前傳輸類型,傳輸控制 裝置可以按照上述操作命令中的內(nèi)容執(zhí)行數(shù)據(jù)傳輸。這樣Nandflash控制器可以每次與 Nandflash傳輸一個(gè)扇區(qū)數(shù)據(jù),但重復(fù)循環(huán)執(zhí)行多次直到完成一頁(yè)數(shù)據(jù)的傳輸,避免了每完 成一個(gè)扇區(qū)數(shù)據(jù)就要切換配置下一次操作的命令,從而節(jié)省時(shí)間和時(shí)鐘資源,大大提高數(shù) 據(jù)傳輸效率。當(dāng)然,上述基于圖5所介紹的內(nèi)容僅是以常用的現(xiàn)有標(biāo)準(zhǔn)為例,在實(shí)際應(yīng)用中, Nandflash控制器與Nandflash每執(zhí)行一次數(shù)據(jù)傳輸,可以完成預(yù)定大小的數(shù)據(jù),并不局限 于每次只完成一個(gè)扇區(qū),Nandflash的內(nèi)部操作只要基于其自身緩存區(qū)大小即可,并不局限 于一頁(yè)大小。配置的操作命令中進(jìn)一步指示頁(yè)大小,上述Nandflash控制器中進(jìn)一步包括地址 控制裝置。當(dāng)本次執(zhí)行為第一頁(yè)數(shù)據(jù)的第一次執(zhí)行時(shí),上述地址控制裝置從所述參數(shù)配置裝 置接收的主區(qū)地址中解析出頁(yè)地址和主區(qū)頁(yè)內(nèi)地址,并在本次執(zhí)行之前根據(jù)頁(yè)大小計(jì)算剩 余空間的起始頁(yè)內(nèi)地址提供給傳輸控制裝置。當(dāng)本次執(zhí)行為除第一頁(yè)數(shù)據(jù)外的其他頁(yè)數(shù)據(jù)的第一次執(zhí)行時(shí),上述地址控制裝置 從所述參數(shù)配置裝置接收的主區(qū)地址中解析出主區(qū)頁(yè)內(nèi)地址,且在本次執(zhí)行之前先根據(jù)上 一頁(yè)數(shù)據(jù)的頁(yè)地址得出本次執(zhí)行中的頁(yè)地址,并根據(jù)所述頁(yè)大小計(jì)算剩余空間的起始頁(yè)內(nèi) 地址提供給傳輸控制裝置。當(dāng)本次執(zhí)行為除第一頁(yè)數(shù)據(jù)外的其他頁(yè)數(shù)據(jù)的第二次以上執(zhí)行時(shí),上述地址控制 裝置從所述參數(shù)配置裝置接收的主區(qū)地址中解析出主區(qū)頁(yè)內(nèi)地址、并在本次執(zhí)行之前先使 用上一次執(zhí)行中剩余空間頁(yè)內(nèi)地址計(jì)算本次執(zhí)行中的剩余空間頁(yè)內(nèi)地址提供給傳輸控制
直ο因此在設(shè)置了該地址控制裝置之后,CPU只需對(duì)第一頁(yè)數(shù)據(jù)的第一次執(zhí)行配置頁(yè) 地址,且針對(duì)任何一頁(yè)數(shù)據(jù)都無(wú)需配置剩余空間地址,簡(jiǎn)化了 CPU的操作,且上述所有計(jì)算 方法依據(jù)現(xiàn)有技術(shù)就可以實(shí)現(xiàn)。該Nandflash控制器中還包括ECC裝置。基于這種情況,上述傳輸控制裝置包括 寫操作單元、讀操作單元、Nandflash接口單元和內(nèi)部接口單元。
10
上述寫操作控制單元,用于通過(guò)所述內(nèi)部接口單元獲取一個(gè)扇區(qū)的待寫入數(shù)據(jù); 通過(guò)所述Nandflash接口單元向Nanflash發(fā)送預(yù)定命令CMDO和所述主區(qū)地址,根據(jù)所 述主區(qū)地址中的主區(qū)頁(yè)內(nèi)地址通過(guò)所述Nandflash接口單元將一個(gè)扇區(qū)數(shù)據(jù)寫入所述主 區(qū),并同時(shí)觸發(fā)所述ECC裝置生成該扇區(qū)數(shù)據(jù)的校驗(yàn)數(shù)據(jù);通過(guò)Nandflash接口單元向 Nandflash發(fā)送預(yù)定命令CMD2和所述剩余空間頁(yè)內(nèi)地址,根據(jù)所述剩余空間頁(yè)內(nèi)地址將 ECC裝置生成的校驗(yàn)數(shù)據(jù)通過(guò)所述Nandflash接口單元寫入所述剩余空間。上述讀操作控制單元,用于通過(guò)所述Nandflash接口單元依次向Nandflash發(fā)送 預(yù)定命令CMD0、所述主區(qū)地址和預(yù)定命令CMD1,根據(jù)所述主區(qū)地址中的主區(qū)頁(yè)內(nèi)地址,通 過(guò)所述Nandflash接口單元從所述主區(qū)讀取一個(gè)扇區(qū)的數(shù)據(jù),同時(shí)觸發(fā)所述ECC裝置生成 該扇區(qū)數(shù)據(jù)的校驗(yàn)數(shù)據(jù);通過(guò)Nandflash接口單元依次向Nandflash發(fā)送預(yù)定命令CMD2、 所述剩余空間頁(yè)內(nèi)地址和預(yù)定命令CMD3,根據(jù)所述剩余空間頁(yè)內(nèi)地址通過(guò)所述Nandflash 接口單元從剩余空間中讀取校驗(yàn)數(shù)據(jù)。由于芯片上可能存在多個(gè)不同用途的緩存空間,例如針對(duì)USB傳輸會(huì)設(shè)置緩存空 間,針對(duì)其他接口的傳輸會(huì)設(shè)置其他類型的緩存空間,下文中將舉出針對(duì)USB傳輸設(shè)置緩 存空間的情況,上述讀操作單元讀取的數(shù)據(jù)將根據(jù)需要通過(guò)所述內(nèi)部接口單元傳輸?shù)叫酒?上的某一個(gè)緩存空間?;趥鬏斂刂蒲b置的內(nèi)部結(jié)構(gòu),ECC裝置中包括編碼單元、解碼單元和自動(dòng)糾錯(cuò) 單元。上述編碼單元,由所述寫操作單元或讀操作單元觸發(fā),用于生成校驗(yàn)數(shù)據(jù)。上述解碼單元,用于使用編碼單元生成的校驗(yàn)數(shù)據(jù)和所述讀操作單元讀取的校驗(yàn) 數(shù)據(jù),對(duì)所述讀操作單元讀取的數(shù)據(jù)解碼,并檢查解碼后的數(shù)據(jù)。上述自動(dòng)糾錯(cuò)單元,用于在解碼單元檢查到數(shù)據(jù)出錯(cuò)時(shí),對(duì)所述讀操作讀取的數(shù) 據(jù)執(zhí)行糾錯(cuò)。該自動(dòng)糾錯(cuò)單元在解碼單元檢查到數(shù)據(jù)出錯(cuò)時(shí),需要將已寫入芯片中某一緩 存空間的數(shù)據(jù)再次讀出執(zhí)行糾錯(cuò),糾錯(cuò)完成后再將該數(shù)據(jù)寫回對(duì)應(yīng)的緩存空間。設(shè)置該自 動(dòng)糾錯(cuò)單元的目的在于,由于Nandflash控制器的特點(diǎn)是每讀完一個(gè)扇區(qū)的數(shù)據(jù)就切換到 CPU進(jìn)行糾錯(cuò),為了避免一頁(yè)數(shù)據(jù)未全部讀完時(shí)由糾錯(cuò)導(dǎo)致讀取操作中斷,使用該自動(dòng)糾錯(cuò) 單元直接糾錯(cuò),就避免了出錯(cuò)時(shí)需切換回CPU進(jìn)行糾錯(cuò),進(jìn)一步提高了數(shù)據(jù)傳輸速率。通常情況下,Nandflash控制器集成在芯片中,為了進(jìn)一步提高數(shù)據(jù)傳輸速度,本 發(fā)明在該芯片上設(shè)置大小相同、相互獨(dú)立的第一緩存裝置和第二緩存裝置。以下通過(guò)一 個(gè)實(shí)例說(shuō)明,上述芯片可以位于多媒體播放器內(nèi)部,芯片上還設(shè)置有通用串行總線(USB, Universal Serial Bus)控制器和緩存控制器,Nandflash控制器負(fù)責(zé)與位于多媒體播放器 內(nèi)部、且該芯片之外的Nandflash進(jìn)行數(shù)據(jù)傳輸,同時(shí)上述USB控制器通過(guò)多媒體播放器上 的USB接口與PC連通,從而Nandflash控制器可以通過(guò)該USB控制器將從Nandflash讀取 的數(shù)據(jù)傳輸給PC,或者將PC傳輸?shù)臄?shù)據(jù)寫入Nandf lash。圖6為本發(fā)明實(shí)施例中Nandflash控制器與USB控制器交互的示意圖,在 Nandflash控制器和Nandflash執(zhí)行數(shù)據(jù)傳輸之前,Nandflash控制器和USB控制器通過(guò)上 述緩存控制器執(zhí)行握手,具體為發(fā)起方發(fā)送drq信號(hào),接受方接收到drq信號(hào)后向發(fā)起方反 饋ack信號(hào)。上述握手成功后,如果Nandflash控制器執(zhí)行寫操作,則USB控制器交替將一個(gè)扇區(qū)的待寫入數(shù)據(jù)寫入第一緩存裝置和第二緩存裝置,寫操作單元通過(guò)內(nèi)部接口單元、按照 與USB控制器裝置寫入相反的順序從第一緩存裝置和第二緩存裝置獲取數(shù)據(jù)。上述握手成功后,如果Nandflash控制器執(zhí)行讀操作,則讀操作單元交替將讀取 的一個(gè)扇區(qū)數(shù)據(jù)寫入所述第一緩存裝置和第二緩存裝置,所述USB控制器按照與所述讀操 作單元寫入相反的順序、交替從所述第一緩存裝置和第二緩存裝置獲取數(shù)據(jù)。上述具體執(zhí)行過(guò)程中,無(wú)論是USB控制器從第一緩存裝置和第二緩存裝置中讀寫 數(shù)據(jù),還是Nandflash控制器從第一緩存裝置和第二緩存裝置中讀寫數(shù)據(jù),都由緩存控制 器輪流選通第一緩存裝置和第二緩存裝置,實(shí)現(xiàn)上述交替操作,即緩存控制器完成調(diào)度功 能??梢?jiàn),在Nandflash控制器所在芯片上設(shè)置了第一緩存裝置和第二緩存裝置后, 可以使得Nandflash控制器和USB控制器進(jìn)行乒乓操作,提高數(shù)據(jù)傳輸效率。綜上所述,以上僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。 凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的 保護(hù)范圍之內(nèi)。
1權(quán)利要求
一種與非型閃存控制器,用于和與非型閃存執(zhí)行數(shù)據(jù)傳輸;其特征在于,所述與非型閃存控制器包括參數(shù)配置裝置,用于接收外部輸入的操作命令,該操作命令指示當(dāng)前傳輸類型、傳輸所述與非型閃存內(nèi)部的緩存區(qū)大小的數(shù)據(jù)所需的執(zhí)行次數(shù)及每一次執(zhí)行的命令參數(shù);傳輸控制裝置,用于在每一次執(zhí)行數(shù)據(jù)傳輸時(shí),按照當(dāng)前傳輸類型及本次執(zhí)行的命令參數(shù)、和與非型閃存?zhèn)鬏旑A(yù)定大小的數(shù)據(jù),直至完成所述執(zhí)行次數(shù),然后觸發(fā)操作命令的操作,直至傳輸完待傳輸數(shù)據(jù)。
2.如權(quán)利要求1所述的控制器,其特征在于,所述預(yù)定大小的數(shù)據(jù)包括一個(gè)扇區(qū)的實(shí) 際數(shù)據(jù)及其對(duì)應(yīng)的校驗(yàn)數(shù)據(jù);所述緩存區(qū)的大小為一頁(yè),包括存儲(chǔ)所述實(shí)際數(shù)據(jù)的主區(qū)和 存儲(chǔ)所述校驗(yàn)數(shù)據(jù)的剩余空間,其中主區(qū)包括兩個(gè)以上扇區(qū),剩余空間包括與主區(qū)中扇區(qū) 個(gè)數(shù)相等的存儲(chǔ)區(qū)域;所述外部輸入的操作命令進(jìn)一步指示頁(yè)大小,所述每一次執(zhí)行的命令參數(shù)包括主區(qū)地 址;所述與非型閃存控制器進(jìn)一步包括地址控制裝置,用于在本次執(zhí)行為第一頁(yè)數(shù)據(jù)的第一次執(zhí)行時(shí),從所述參數(shù)配置裝置 接收的主區(qū)地址中解析出頁(yè)地址和主區(qū)頁(yè)內(nèi)地址,并在傳輸控制裝置執(zhí)行之前,根據(jù)所述 頁(yè)大小計(jì)算起始剩余空間頁(yè)內(nèi)地址提供給傳輸控制裝置;在本次執(zhí)行為除第一頁(yè)數(shù)據(jù)外 的其他頁(yè)數(shù)據(jù)的第一次執(zhí)行時(shí),從所述參數(shù)配置裝置接收的主區(qū)地址中解析出主區(qū)頁(yè)內(nèi)地 址,且在傳輸控制裝置執(zhí)行之前,先根據(jù)上一頁(yè)數(shù)據(jù)的頁(yè)地址得出本次執(zhí)行中的頁(yè)地址、并 根據(jù)所述頁(yè)大小計(jì)算起始剩余空間頁(yè)內(nèi)地址提供給傳輸控制裝置;在本次執(zhí)行為除第一頁(yè) 數(shù)據(jù)外的其他頁(yè)數(shù)據(jù)的第二次以上執(zhí)行時(shí),從所述參數(shù)配置裝置接收的主區(qū)地址中解析出 主區(qū)頁(yè)內(nèi)地址,并在傳輸控制裝置執(zhí)行之前,先使用上一次執(zhí)行中剩余空間頁(yè)內(nèi)地址計(jì)算 本次執(zhí)行中的剩余空間頁(yè)內(nèi)地址提供給傳輸控制裝置。
3.如權(quán)利要求2所述的控制器,其特征在于,所述與非型閃存控制器中進(jìn)一步包括ECC 裝置;所述傳輸控制裝置包括寫操作控制單元、讀操作控制單元、與非型閃存接口單元和內(nèi) 部接口單元;所述寫操作控制單元,用于通過(guò)所述內(nèi)部接口單元獲取一個(gè)扇區(qū)的待寫入數(shù)據(jù);通過(guò) 所述與非型閃存接口單元向與非型閃存發(fā)送預(yù)定命令CMDO和所述主區(qū)地址,根據(jù)所述主 區(qū)地址中的主區(qū)頁(yè)內(nèi)地址通過(guò)所述與非型閃存接口單元將一個(gè)扇區(qū)數(shù)據(jù)寫入所述主區(qū),并 同時(shí)觸發(fā)所述ECC裝置生成該扇區(qū)數(shù)據(jù)的校驗(yàn)數(shù)據(jù);通過(guò)與非型閃存接口單元向與非型閃 存發(fā)送預(yù)定命令CMD2和所述剩余空間頁(yè)內(nèi)地址,根據(jù)所述剩余空間頁(yè)內(nèi)地址將ECC裝置生 成的校驗(yàn)數(shù)據(jù)通過(guò)所述與非型閃存接口單元寫入所述剩余空間;所述讀操作控制單元,用于通過(guò)所述與非型閃存接口單元依次向與非型閃存發(fā)送預(yù)定 命令CMD0、所述主區(qū)地址和預(yù)定命令CMD1,根據(jù)所述主區(qū)地址中的主區(qū)頁(yè)內(nèi)地址,通過(guò)所 述與非型閃存接口單元從所述主區(qū)讀取一個(gè)扇區(qū)的數(shù)據(jù),同時(shí)觸發(fā)所述ECC裝置生成該扇 區(qū)數(shù)據(jù)的校驗(yàn)數(shù)據(jù);通過(guò)與非型閃存接口單元依次向與非型閃存發(fā)送預(yù)定命令CMD2、所述 剩余空間頁(yè)內(nèi)地址和預(yù)定命令CMD3,根據(jù)所述剩余空間頁(yè)內(nèi)地址通過(guò)所述與非型閃存接口 單元從剩余空間中讀取校驗(yàn)數(shù)據(jù)。
4.如權(quán)利要求3所述的控制器,其特征在于,所述ECC裝置中包括編碼單元、解碼單元和自動(dòng)糾錯(cuò)單元;所述編碼單元,由所述寫操作單元或讀操作單元觸發(fā),用于生成校驗(yàn)數(shù)據(jù);所述解碼單元,用于使用編碼單元生成的校驗(yàn)數(shù)據(jù)和所述讀操作單元讀取的校驗(yàn)數(shù) 據(jù),對(duì)所述讀操作單元讀取的數(shù)據(jù)解碼,并檢查解碼后的數(shù)據(jù);自動(dòng)糾錯(cuò)單元,用于在所述解碼單元檢查到數(shù)據(jù)出錯(cuò)時(shí),對(duì)所述讀操作讀取的數(shù)據(jù)執(zhí) 行糾錯(cuò)。
5.如權(quán)利要求3所述的控制器,其特征在于,該與非型閃存控制器集成于芯片上,該芯 片上還設(shè)置有USB控制器、及大小相同且相互獨(dú)立的第一緩存裝置和第二緩存裝置;所述USB控制器交替將一個(gè)扇區(qū)的待寫入數(shù)據(jù)寫入所述第一緩存裝置和第二緩存裝 置,所述寫操作單元通過(guò)所述內(nèi)部接口單元、按照與所述USB控制器寫入相反的順序從所 述第一緩存裝置和第二緩存裝置獲取待寫入數(shù)據(jù);所述讀操作單元交替將讀取的一個(gè)扇區(qū)數(shù)據(jù)寫入所述第一緩存裝置和第二緩存裝置, 所述USB控制器按照與所述讀操作單元寫入相反的順序、交替從所述第一緩存裝置和第二 緩存裝置獲取數(shù)據(jù)。
6.如權(quán)利要求5所述的控制器,其特征在于,所述芯片上還設(shè)置有緩存控制器,所述讀 操作單元或?qū)懖僮鲉卧M(jìn)一步用于在執(zhí)行操作之前、通過(guò)該緩存控制器執(zhí)行握手。
7.—種與非型閃存控制器的數(shù)據(jù)傳輸方法,與非型閃存控制器和與非型閃存每執(zhí)行一 次數(shù)據(jù)傳輸,傳輸預(yù)定大小的數(shù)據(jù);其特征在于,該方法包括A、與非型閃存控制器接收外部輸入的操作命令,該操作命令指示當(dāng)前傳輸類型、傳輸 所述與非型閃存內(nèi)部的緩存區(qū)大小的數(shù)據(jù)所需的執(zhí)行次數(shù)及每一次執(zhí)行的命令參數(shù);B、與非型閃存控制器按照當(dāng)前傳輸類型及命令參數(shù)在每一次執(zhí)行中傳輸所述預(yù)定大 小的數(shù)據(jù),直至完成所述執(zhí)行次數(shù);然后返回執(zhí)行步驟A,直至傳輸完待傳輸數(shù)據(jù)。
8.如權(quán)利要求7所述的方法,其特征在于,所述預(yù)定大小的數(shù)據(jù)包括一個(gè)扇區(qū)的實(shí)際 數(shù)據(jù)及其對(duì)應(yīng)的校驗(yàn)數(shù)據(jù);所述緩存區(qū)的大小為一頁(yè),包括存儲(chǔ)所述實(shí)際數(shù)據(jù)的主區(qū)和存儲(chǔ)所述校驗(yàn)數(shù)據(jù)的剩余 空間,其中主區(qū)包括兩個(gè)以上扇區(qū),剩余空間包括與主區(qū)中扇區(qū)個(gè)數(shù)相等的存儲(chǔ)區(qū)域。
9.如權(quán)利要求8所述的方法,其特征在于,所述步驟A中的操作命令進(jìn)一步指示頁(yè)大 小,所述每一次執(zhí)行的命令參數(shù)包括主區(qū)地址;當(dāng)本次執(zhí)行為第一頁(yè)數(shù)據(jù)的第一次執(zhí)行時(shí),所述主區(qū)地址中包括頁(yè)地址和主區(qū)頁(yè)內(nèi)地 址,且在本次執(zhí)行之前先根據(jù)所述頁(yè)大小計(jì)算起始剩余空間頁(yè)內(nèi)地址;當(dāng)本次執(zhí)行為除第一頁(yè)數(shù)據(jù)外的其他頁(yè)數(shù)據(jù)的第一次執(zhí)行時(shí),所述主區(qū)地址中包括主 區(qū)頁(yè)內(nèi)地址,且在本次執(zhí)行之前先根據(jù)上一頁(yè)數(shù)據(jù)的頁(yè)地址得出本次執(zhí)行中的頁(yè)地址,并 根據(jù)所述頁(yè)大小計(jì)算起始剩余空間頁(yè)內(nèi)地址;當(dāng)本次執(zhí)行為除第一頁(yè)數(shù)據(jù)外的其他頁(yè)數(shù)據(jù)的第二次以上執(zhí)行時(shí),所述主區(qū)地址中包 括主區(qū)頁(yè)內(nèi)地址,且在本次執(zhí)行之前先使用上一次執(zhí)行中剩余空間頁(yè)內(nèi)地址計(jì)算本次執(zhí)行 中的剩余空間頁(yè)內(nèi)地址。
10.如權(quán)利要求9所述的方法,其特征在于,所述步驟A中的傳輸類型為寫操作;所述 步驟B中的按照當(dāng)前傳輸類型及命令參數(shù)在每一次執(zhí)行中傳輸所述預(yù)定大小的數(shù)據(jù)包括Bi、與非型閃存控制器向與非型閃存發(fā)送預(yù)定命令CMDO和所述主區(qū)地址,根據(jù)所述主區(qū)地址中的主區(qū)頁(yè)內(nèi)地址將一個(gè)扇區(qū)數(shù)據(jù)寫入所述主區(qū),并同時(shí)編碼生成該扇區(qū)數(shù)據(jù)的校 驗(yàn)數(shù)據(jù);B2、與非型閃存控制器向與非型閃存發(fā)送預(yù)定命令CMD2和所述剩余空間頁(yè)內(nèi)地址,根 據(jù)所述剩余空間頁(yè)內(nèi)地址將生成的校驗(yàn)數(shù)據(jù)寫入所述剩余空間。
11.如權(quán)利要求9所述的方法,其特征在于,所述步驟A中的傳輸類型為讀操作;所述 步驟B中的按照當(dāng)前傳輸類型及命令參數(shù)在每一次執(zhí)行中傳輸所述預(yù)定大小的數(shù)據(jù)包括ΒΓ、與非型閃存控制器依次向與非型閃存發(fā)送預(yù)定命令CMD0、所述主區(qū)地址和預(yù)定命 令CMD1,如果本次執(zhí)行為當(dāng)前頁(yè)數(shù)據(jù)的第一次執(zhí)行,與非型閃存控制器進(jìn)一步等待與非型 閃存根據(jù)所述主區(qū)地址中的頁(yè)地址將整頁(yè)數(shù)據(jù)讀到緩存區(qū)中;否則,與非型閃存控制器直 接根據(jù)所述主區(qū)地址中的主區(qū)頁(yè)內(nèi)地址,從所述主區(qū)讀取一個(gè)扇區(qū)的數(shù)據(jù),同時(shí)生成該扇 區(qū)數(shù)據(jù)的校驗(yàn)數(shù)據(jù);B2’、與非型閃存控制器依次向與非型閃存發(fā)送預(yù)定命令CMD2、所述剩余空間頁(yè)內(nèi)地址 和預(yù)定命令CMD3,根據(jù)所述剩余空間頁(yè)內(nèi)地址從剩余空間中讀取校驗(yàn)數(shù)據(jù)。
12.如權(quán)利要求11所述的方法,其特征在于,所述步驟B2’中的讀取校驗(yàn)數(shù)據(jù)之后,進(jìn) 一步包括B3’、與非型閃存控制器使用生成的校驗(yàn)數(shù)據(jù)和讀取的校驗(yàn)數(shù)據(jù)對(duì)讀取的一個(gè)扇區(qū)數(shù) 據(jù)解碼校驗(yàn),當(dāng)發(fā)現(xiàn)錯(cuò)誤時(shí)直接糾錯(cuò)。
13.如權(quán)利要求8所述的方法,其特征在于,所述與非型閃存控制器集成于芯片上,所 述步驟A之前進(jìn)一步包括預(yù)先設(shè)置通用串行總線USB控制器;在所述芯片上預(yù)先設(shè)置大 小相同、且相互獨(dú)立的第一緩存空間和第二緩存空間;當(dāng)步驟A中的所述傳輸類型為寫操作時(shí),步驟B中所述在每一次執(zhí)行中傳輸所述預(yù)定 大小的數(shù)據(jù)之前,進(jìn)一步包括USB控制器將預(yù)定大小的數(shù)據(jù)交替寫入所述第一緩存空間 和第二緩存空間;步驟B中所述在每一次執(zhí)行中傳輸所述預(yù)定大小的數(shù)據(jù)為與非型閃存控制器在每一 次執(zhí)行中,按照與USB控制器寫入相反的順序交替從所述第一緩存空間和第二緩存空間中 讀出數(shù)據(jù)、執(zhí)行傳輸;當(dāng)步驟A中的所述傳輸類型為讀操作時(shí),步驟B中所述在每一次執(zhí)行中傳輸所述預(yù)定 大小的數(shù)據(jù)之后,進(jìn)一步包括與非型閃存控制器將每一次讀出的數(shù)據(jù)交替寫入所述第一 緩存空間和第二緩存空間,USB控制器按照與與非型閃存控制器寫入相反的順序交替從所 述第一緩存空間和第二緩存空間讀出數(shù)據(jù)。
14.如權(quán)利要求13所述的方法,其特征在于,在所述芯片上預(yù)先設(shè)置緩存控制器;在寫操作中USB控制器將預(yù)定大小的數(shù)據(jù)交替寫入所述第一緩存空間和第二緩存空間之前、或者在讀操作中與非型閃存控制器將每一次讀出的數(shù)據(jù)交替寫入所述第一緩存空 間和第二緩存空間之前,進(jìn)一步包括所述與非型閃存控制器和所述USB控制器通過(guò)所述緩存控制器執(zhí)行握手。
全文摘要
本發(fā)明公開(kāi)了一種與非型閃存控制器及其數(shù)據(jù)傳輸方法,每次配置的操作命令包括完成與非型閃存中緩存區(qū)大小的數(shù)據(jù)所需的執(zhí)行次數(shù)、每次執(zhí)行的命令參數(shù)以及當(dāng)前傳輸類型,這樣與非型閃存控制器可以每次與與非型閃存?zhèn)鬏旑A(yù)定大小的數(shù)據(jù),重復(fù)循環(huán)執(zhí)行多次直到完成緩存區(qū)大小的數(shù)據(jù)傳輸,避免了每完成預(yù)定大小的數(shù)據(jù)就要切換配置下一次操作的命令,從而節(jié)省時(shí)間和時(shí)鐘資源,大大提高數(shù)據(jù)傳輸效率。
文檔編號(hào)G06F12/08GK101882119SQ200910140439
公開(kāi)日2010年11月10日 申請(qǐng)日期2009年5月8日 優(yōu)先權(quán)日2009年5月8日
發(fā)明者張勇, 湯江遜 申請(qǐng)人:炬力集成電路設(shè)計(jì)有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
栾城县| 大渡口区| 车致| 乌兰县| 彰化县| 定日县| 遂溪县| 通州市| 乐业县| 新巴尔虎左旗| 河池市| 长白| 凌海市| 临沭县| 阳信县| 方山县| 土默特左旗| 宣威市| 咸宁市| 永仁县| 彭泽县| 娱乐| 房产| 周宁县| 仁寿县| 阿克| 泉州市| 比如县| 疏勒县| 抚远县| 昔阳县| 阜康市| 隆化县| 天柱县| 新巴尔虎右旗| 北碚区| 合川市| 阿城市| 东城区| 济南市| 酒泉市|