亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種在nand中處理數(shù)據(jù)的方法及裝置制造方法

文檔序號:6623755閱讀:292來源:國知局
一種在nand中處理數(shù)據(jù)的方法及裝置制造方法
【專利摘要】本發(fā)明涉及通信電子【技術(shù)領(lǐng)域】,尤其涉及一種在NAND中處理數(shù)據(jù)的方法及裝置。用于解決現(xiàn)有技術(shù)中由于在對NAND進(jìn)行讀寫的操作過程中需要產(chǎn)生大量中斷或者喚醒等操作,使得CPU處理數(shù)據(jù)的效率低下的問題。該方法包括:在接收到文件系統(tǒng)的讀寫請求后;將扇區(qū)鏈中的數(shù)據(jù)按照預(yù)先設(shè)置的方式對應(yīng)到虛擬的頁鏈表中;虛擬頁鏈表按照一定的動態(tài)對應(yīng),確定出每一個(gè)虛擬頁所對應(yīng)的NAND中真正的物理頁;將所述頁鏈表中的數(shù)據(jù)依次寫入NAND的塊中,待一個(gè)頁鏈表完成之后喚醒阻塞的請求線程??梢娫摲椒梢蕴岣逤PU處理數(shù)據(jù)的效率。
【專利說明】—種在NAND中處理數(shù)據(jù)的方法及裝置

【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信電子【技術(shù)領(lǐng)域】,尤其涉及一種在NAND中處理數(shù)據(jù)的方法及裝置。

【背景技術(shù)】
[0002]隨著科技的發(fā)展,以及日常生活的需要,智能手機(jī)、筆記本電腦、相機(jī)等電子設(shè)備已經(jīng)深入人們的家庭中。而隨著這些電子設(shè)備的頻繁使用,人們對于其的存儲能力也有著越來越高的需求,目前為了滿足用戶對存儲能力的需求,大多數(shù)電子設(shè)備中都在使用非易失存儲介質(zhì)(NAND)進(jìn)行數(shù)據(jù)的存儲。因此,對NAND進(jìn)行讀寫操作則成為存儲數(shù)據(jù)時(shí)需要頻繁進(jìn)行的操作。在現(xiàn)有技術(shù)中對NAND的讀寫操作如下:
[0003]首先,用戶在軟件應(yīng)用層發(fā)出對NAND的讀寫操作命令,接收到該命令后系統(tǒng)中斷當(dāng)前正在進(jìn)行的線程,并向MTD發(fā)出以一頁為數(shù)據(jù)處理單位對NAND進(jìn)行讀寫處理的請求,當(dāng)完成一頁的讀寫處理后中斷喚醒處于等待狀態(tài)的線程,此時(shí)完成一頁數(shù)據(jù)的讀寫操作;當(dāng)需要進(jìn)行下一頁數(shù)據(jù)的讀寫操作時(shí),還需要中斷當(dāng)前正在進(jìn)行的線程,然后完成一頁的讀寫操作,最后中斷喚醒處于等待狀態(tài)的線程。
[0004]由此可見,目前這種以頁為單位的數(shù)據(jù)處理方式,在完成對NAND的讀寫操作時(shí)要進(jìn)行很多次的中斷、喚醒等操作,如果遇到大數(shù)據(jù)量需要處理時(shí)將會造成大量的中斷,因此而增加了 CPU的壓力,降低數(shù)據(jù)處理的速度以及效率。


【發(fā)明內(nèi)容】

[0005]本發(fā)明涉及通信電子【技術(shù)領(lǐng)域】,尤其涉及一種在NAND中處理數(shù)據(jù)的方法及裝置。用于解決現(xiàn)有技術(shù)中由于在對NAND進(jìn)行讀寫的操作過程中需要產(chǎn)生大量中斷或者喚醒等操作,使得CPU處理數(shù)據(jù)的效率低下的問題。
[0006]一種在NAND中處理數(shù)據(jù)的方法,所述方法包括:
[0007]在接收到文件系統(tǒng)的讀寫請求后喚醒請求處理線程;
[0008]將扇區(qū)鏈中的數(shù)據(jù)按照預(yù)先設(shè)置的方式映射到頁鏈表的頁中;
[0009]按照一定的動態(tài)對應(yīng)方式,確定出每一頁所對應(yīng)的NAND的塊;
[0010]將所述頁鏈表中的數(shù)據(jù)依次寫入NAND的塊中后,喚醒處于中斷狀態(tài)的線程。
[0011]一種在NAND中處理數(shù)據(jù)的裝置,所述裝置包括:
[0012]喚醒模塊,用于在接收到文件系統(tǒng)的讀寫請求后喚醒等待的請求線程;
[0013]映射模塊,用于將扇區(qū)鏈中的數(shù)據(jù)按照預(yù)先設(shè)置的方式映射到頁鏈表的頁中;
[0014]確定模塊,用于按照一定的動態(tài)對應(yīng)方式,確定出每一頁所對應(yīng)的NAND的塊;
[0015]寫入模塊,用于將所述頁鏈表中的數(shù)據(jù)依次寫入NAND的塊中后,中斷喚醒處于阻塞狀態(tài)的請求線程。
[0016]可見,使用本發(fā)明實(shí)施例提供的方法需要首先將扇區(qū)鏈的讀寫請求對應(yīng)轉(zhuǎn)化成頁鏈表的請求,當(dāng)需要對NAND進(jìn)行讀寫操作時(shí)將頁鏈表中的數(shù)據(jù)依次全部寫入到NAND的對應(yīng)塊中,該方法只需在將頁鏈表中的數(shù)據(jù)寫入NAND的對應(yīng)塊中之后產(chǎn)生一次讀寫完成中斷,然后在所有數(shù)據(jù)都寫完之后再喚醒處于阻塞狀態(tài)的請求處理線程,可見該方法不需要產(chǎn)生多次中斷因此可大大降低CPU的功耗,提高數(shù)據(jù)存儲的效率。

【專利附圖】

【附圖說明】
[0017]為了更清楚地說明本發(fā)明或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹。
[0018]圖1為本發(fā)明實(shí)施例提供的一種在NAND中處理數(shù)據(jù)的方法流程圖;
[0019]圖2為本發(fā)明實(shí)施例提供的具體的一種在NAND中處理數(shù)據(jù)的方法流程圖;
[0020]圖3為本發(fā)明實(shí)施例提供的扇區(qū)鏈表、頁鏈表以及塊之間的關(guān)聯(lián)圖;
[0021]圖4為本發(fā)明實(shí)施例提供的一種在NAND中處理數(shù)據(jù)的裝置結(jié)構(gòu)圖。

【具體實(shí)施方式】
[0022]為了使本【技術(shù)領(lǐng)域】的人員更好地理解本發(fā)明實(shí)施例中的技術(shù)方案,并使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖對本發(fā)明中技術(shù)方案作進(jìn)一步詳細(xì)的說明。
[0023]使用本發(fā)明實(shí)施例提供的方法需要首先將扇區(qū)鏈中的所有對扇區(qū)的操作都對應(yīng)轉(zhuǎn)化為頁鏈表中頁的操作,當(dāng)需要對NAND進(jìn)行讀寫操作時(shí)將頁鏈表中的數(shù)據(jù)依次全部寫入到NAND的對應(yīng)塊中,該方法只需在將頁鏈表中的數(shù)據(jù)寫入NAND的對應(yīng)塊中之后產(chǎn)生一次讀寫完成中斷,然后靠完成中斷喚醒處于阻塞狀態(tài)的請求處理線程,可見該方法不需要產(chǎn)生多次中斷因此可大大降低CPU的功耗,提高數(shù)據(jù)存儲的效率。如圖1所示,具體過程如下:
[0024]步驟11,在接收到文件系統(tǒng)的讀寫請求后喚醒請求處理線程;
[0025]步驟12,將扇區(qū)鏈中的數(shù)據(jù)按照預(yù)先設(shè)置的方式映射到頁鏈表的頁中;
[0026]步驟13,按照一定的動態(tài)對應(yīng)方式,確定出每一頁所對應(yīng)的NAND的塊;
[0027]步驟14,將所述頁鏈表中的數(shù)據(jù)依次寫入NAND的塊中后,喚醒處于中斷狀態(tài)的線程。
[0028]其中,所述將扇區(qū)鏈中的數(shù)據(jù)按照預(yù)先設(shè)置的方式對應(yīng)到虛擬頁鏈表的相應(yīng)的頁中包括:
[0029]將所述扇區(qū)鏈中的各個(gè)扇區(qū)所保存的數(shù)據(jù)按照預(yù)先設(shè)置的對應(yīng)關(guān)系,存放到與扇區(qū)對應(yīng)的頁中。
[0030]具體的,所述預(yù)先設(shè)置的地址查找方式包括:
[0031]根據(jù)分區(qū)的物理偏移,大小,以及物理頁所對應(yīng)的塊是否為壞塊等一些參考來確定每個(gè)虛擬頁所對應(yīng)的物理頁。
[0032]具體的,所述按照一定的動態(tài)對應(yīng)方式,確定出每一頁所對應(yīng)的NAND的塊包括:
[0033]根據(jù)分區(qū)物理地址偏移及大小確定出頁所對應(yīng)的待寫入數(shù)據(jù)的塊地址;判斷該待讀寫入數(shù)據(jù)的塊是否為壞塊,如果是則在計(jì)算出的頁地址的基礎(chǔ)之上加一個(gè)塊的頁數(shù)量,從而重新計(jì)算出每個(gè)虛擬頁所對應(yīng)的物理頁地址,并根據(jù)該物理頁地址確定出新的待寫入數(shù)據(jù)的NAND的塊。
[0034]以下以具體實(shí)施例介紹:
[0035]本發(fā)明實(shí)施例提供一種在NAND中處理數(shù)據(jù)的方法,如圖2所示,具體過程如下:
[0036]步驟21,接收到文件系統(tǒng)發(fā)來的讀寫請求后,喚醒處于等待狀態(tài)的請求處理線程;
[0037]步驟22,將扇區(qū)鏈中的數(shù)據(jù)按照預(yù)先設(shè)置的方式映射到頁鏈表的相應(yīng)的頁中;
[0038]具體的,本步驟中將所述扇區(qū)鏈中的各個(gè)扇區(qū)所保存的數(shù)據(jù)按照預(yù)先設(shè)置的對應(yīng)關(guān)系,存放到與扇區(qū)對應(yīng)的頁中。
[0039]扇區(qū)鏈中包含一個(gè)或多個(gè)地址連續(xù)大小相等的扇區(qū),每個(gè)扇區(qū)都有唯一對應(yīng)的扇區(qū)標(biāo)識;頁表鏈中包括一個(gè)或多個(gè)地址連續(xù)或者不連續(xù)、且大小相等的頁,每個(gè)頁都有唯一對應(yīng)的頁標(biāo)識;
[0040]將扇區(qū)鏈中的連續(xù)地址的一個(gè)或多個(gè)扇區(qū)中的內(nèi)容放到與該扇區(qū)對應(yīng)的頁中,例如圖3所示,每個(gè)扇區(qū)的扇區(qū)標(biāo)識分別為SectorO、Sectorl、Sector2......Sectorn ;每個(gè)頁的頁標(biāo)識分別為PageO、Page 1、Page2......;
[0041]根據(jù)扇區(qū)與頁的大小關(guān)系,確定將哪幾個(gè)扇區(qū)放入到一個(gè)頁中,例如,一個(gè)SectorO、Sectorl、Sector2> Sector3 的大小都為 512byte,—頁 PageO 的大小為 4Kb,則將SectorO、SectorU Sector2、Sector3中的數(shù)據(jù)放入到PageO所指示的頁中,按照這種方式依次將扇區(qū)鏈表中所有的內(nèi)容放入到頁鏈表中。
[0042]步驟23,按照一定的動態(tài)對應(yīng)方式,確定出每一頁所對應(yīng)的NAND中的物理頁;
[0043]其中每一頁所對應(yīng)的NAND中的物理頁是指,頁鏈表中的頁為虛擬頁,例如虛擬頁P(yáng)ageO對應(yīng)的NAND中的物理頁P(yáng)ageO,對應(yīng)的塊為BlockO ;
[0044]步驟24,判斷待寫入數(shù)據(jù)的塊是否為壞塊,如果是執(zhí)行步驟25,否則執(zhí)行步驟26 ;例如當(dāng)需要將Page256中的數(shù)據(jù)寫入其對應(yīng)的Block中之前(假如一個(gè)塊中有256個(gè)頁,以下解釋均按此假設(shè)),先判斷該對應(yīng)的Block是否為壞塊,如果是執(zhí)行步驟25,否則執(zhí)行步驟26 ;
[0045]步驟25,則在計(jì)算出的頁地址的基礎(chǔ)之上加一個(gè)塊中頁的數(shù)量,將待寫入的數(shù)據(jù)寫入下一塊中;
[0046]具體的根據(jù)分區(qū)物理地址偏移及大小,還有待讀寫數(shù)據(jù)的塊是否為壞塊,如果待讀寫數(shù)據(jù)的塊是壞塊則在計(jì)算出的頁地址的基礎(chǔ)之上加一個(gè)塊的頁數(shù)量,從而計(jì)算出每個(gè)虛擬頁所對應(yīng)的物理頁地址,例如正常情況下Page256所對應(yīng)的塊應(yīng)為Blockn,如果Blockn是壞塊則應(yīng)將Page256的數(shù)據(jù)存入Blockn+Ι中,如圖3所示;具體的過程為:
[0047]本步驟中在需要在page256的地址基礎(chǔ)之上再加一個(gè)塊長的大小,此時(shí)獲得虛擬頁P(yáng)age256所對應(yīng)的真實(shí)物理頁的地址為Page512 (加了一個(gè)塊的大小),如果page512所在的塊不是壞塊,則將Page中的數(shù)據(jù)存入該Blockn+1中;
[0048]步驟26,將待寫入的數(shù)據(jù)寫入塊中。即將Pagen中的數(shù)據(jù)寫入其所對應(yīng)的塊中。
[0049]如果在完成步驟26后PageList中還存在待寫入NAND塊中的數(shù)據(jù)時(shí),重復(fù)步驟23至步驟26,直到將所有數(shù)據(jù)都寫入塊中以后,中斷喚醒處于阻塞狀態(tài)的請求處理線程。此時(shí)對于NAND的一次讀寫操作完成。
[0050]如圖4所示,本發(fā)明實(shí)施例提供一種在NAND中處理數(shù)據(jù)的裝置,所述裝置包括:
[0051]喚醒模塊41,用于在接收到文件系統(tǒng)的讀寫請求后,喚醒等待的請求處理線程
[0052]映射模塊42,用于將扇區(qū)鏈中的數(shù)據(jù)按照預(yù)先設(shè)置的方式映射到頁鏈表的頁中;
[0053]確定模塊43,用于按照一定的動態(tài)對應(yīng)方式,確定出每一頁所對應(yīng)的NAND的塊;
[0054]寫入模塊44,用于將所述頁鏈表中的數(shù)據(jù)依次寫入NAND的塊中后,中斷喚醒處于阻塞狀態(tài)的請求線程。
[0055]所述映射模塊42具體用于:
[0056]將所述扇區(qū)鏈中的各個(gè)扇區(qū)所保存的數(shù)據(jù)按照預(yù)先設(shè)置的對應(yīng)關(guān)系,存放到與扇區(qū)對應(yīng)的頁中。
[0057]所述確定模塊43具體用于:
[0058]根據(jù)分區(qū)物理地址偏移及大小確定出頁所對應(yīng)的待寫入數(shù)據(jù)的塊地址;
[0059]判斷該待讀寫入數(shù)據(jù)的塊是否為壞塊,如果是則在計(jì)算出的頁地址的基礎(chǔ)之上加一個(gè)塊的頁數(shù)量,從而重新計(jì)算出每個(gè)虛擬頁所對應(yīng)的物理頁地址,并根據(jù)該物理頁地址確定出新的待寫入數(shù)據(jù)的NAND的塊。
[0060]綜上所述,有£fL效果:
[0061]本發(fā)明的設(shè)計(jì)思想就是設(shè)計(jì)一種一次處理連續(xù)多個(gè)頁,即PageList中的數(shù)據(jù)量的設(shè)計(jì)方法,使數(shù)據(jù)處理不受頁結(jié)構(gòu)的限制,即不是每存儲一頁數(shù)據(jù)時(shí)就必須進(jìn)行一次中斷處理,使用本發(fā)明實(shí)施例提供的方法能成倍的增加數(shù)據(jù)的吞吐量,減少數(shù)據(jù)處理的阻塞時(shí)間,減少完成中斷的產(chǎn)生,提高CPU的性能,同時(shí)也提高了 NAND驅(qū)動的效率。
[0062]本發(fā)明提供的方法從文件系統(tǒng)接口為基點(diǎn),將其拿到的以NAND邏輯扇區(qū)為數(shù)據(jù)請求單位的文件讀寫請求,,通過具體算法處理轉(zhuǎn)化成以PageList為數(shù)據(jù)單位的數(shù)據(jù)請求,驅(qū)動層對PageList進(jìn)行分析、處理。增加數(shù)據(jù)的吞吐量,減少數(shù)據(jù)處理的阻塞時(shí)間,減少NAND讀寫完成的中斷產(chǎn)生,提高CPU的性能,同時(shí)也提高了 NAND驅(qū)動的效率。
[0063]使用本發(fā)明實(shí)施例提供的方法需要首先將扇區(qū)鏈中的所有數(shù)據(jù)都存入頁鏈表中,當(dāng)需要對NAND進(jìn)行讀寫操作時(shí)將頁鏈表中的數(shù)據(jù)依次全部寫入到NAND的對應(yīng)塊中,該方法只需在將頁鏈表中的數(shù)據(jù)寫入NAND的對應(yīng)塊中之后產(chǎn)生一次讀寫完成中斷,然后再喚醒處于阻塞狀態(tài)的請求處理線程,進(jìn)行下一次的讀寫請求,可見該方法不需要產(chǎn)生多次中斷因此可大大降低CPU的功耗,提高數(shù)據(jù)存儲的效率。
[0064]以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種在NAND中處理數(shù)據(jù)的方法,其特征在于,所述方法包括: 在接收到文件系統(tǒng)的讀寫請求后喚醒請求處理線程; 將扇區(qū)鏈中的數(shù)據(jù)按照預(yù)先設(shè)置的方式映射到頁鏈表的頁中; 按照一定的動態(tài)對應(yīng)方式,確定出每一頁所對應(yīng)的NAND的塊; 將所述頁鏈表中的數(shù)據(jù)依次寫入NAND的塊中后,喚醒處于中斷狀態(tài)的線程。
2.如權(quán)利要求1所述的方法,其特征在于,所述將扇區(qū)鏈中的數(shù)據(jù)按照預(yù)先設(shè)置的方式映射到頁鏈表的頁中包括: 將所述扇區(qū)鏈中的各個(gè)扇區(qū)所保存的數(shù)據(jù)按照預(yù)先設(shè)置的對應(yīng)關(guān)系,存放到與扇區(qū)對應(yīng)的虛擬頁中。
3.如權(quán)利要求1所述的方法,其特征在于,所述按照一定的動態(tài)對應(yīng)方式,確定出每一頁所對應(yīng)的NAND的塊包括: 根據(jù)分區(qū)物理地址偏移及大小確定出頁所對應(yīng)的待寫入數(shù)據(jù)的塊地址; 判斷該待讀寫入數(shù)據(jù)的塊是否為壞塊,如果是則在計(jì)算出的頁地址的基礎(chǔ)之上加一個(gè)塊的頁數(shù)量,從而重新計(jì)算出每個(gè)虛擬頁所對應(yīng)的物理頁地址,并根據(jù)該物理頁地址確定出新的待寫入數(shù)據(jù)的NAND的塊。
4.一種在NAND中處理數(shù)據(jù)的裝置,其特征在于,所述裝置包括: 喚醒模塊,用于在接收到文件系統(tǒng)的讀寫請求后喚醒等待的請求線程; 映射模塊,用于將扇區(qū)鏈中的數(shù)據(jù)按照預(yù)先設(shè)置的方式映射到頁鏈表的頁中; 確定模塊,用于按照一定的動態(tài)對應(yīng)方式,確定出每一頁所對應(yīng)的NAND的塊; 寫入模塊,用于將所述頁鏈表中的數(shù)據(jù)依次寫入NAND的塊中后,中斷喚醒處于阻塞狀態(tài)的請求線程。
5.如權(quán)利要求4所述的裝置,其特征在于,所述映射模塊具體用于: 將所述扇區(qū)鏈中的各個(gè)扇區(qū)所保存的數(shù)據(jù)按照預(yù)先設(shè)置的對應(yīng)關(guān)系,存放到與扇區(qū)對應(yīng)的頁中。
6.如權(quán)利要求4所述的裝置,其特征在于,所述確定模塊具體用于: 根據(jù)分區(qū)物理地址偏移及大小確定出頁所對應(yīng)的待寫入數(shù)據(jù)的塊地址; 判斷該待讀寫入數(shù)據(jù)的塊是否為壞塊,如果是則在計(jì)算出的頁地址的基礎(chǔ)之上加一個(gè)塊的頁數(shù)量,從而重新計(jì)算出每個(gè)虛擬頁所對應(yīng)的物理頁地址,并根據(jù)該物理頁地址確定出新的待寫入數(shù)據(jù)的NAND的塊。
【文檔編號】G06F3/06GK104199619SQ201410406166
【公開日】2014年12月10日 申請日期:2014年8月18日 優(yōu)先權(quán)日:2014年8月18日
【發(fā)明者】邱東升 申請人:北京君正集成電路股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1