專利名稱:閃存介質(zhì)數(shù)據(jù)寫入方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種閃存介質(zhì)數(shù)據(jù)寫入方法,特別是一種用于對兩片或多片閃存芯片進行數(shù)據(jù)寫入的方法。
背景技術(shù):
目前,閃存芯片(Flash)在移動存儲裝置中已經(jīng)獲得廣泛使用。但由于閃存芯片本身特性及其現(xiàn)有的數(shù)據(jù)操作方法所存在的缺陷,使得這類移動存儲裝置的操作速度較低。每片F(xiàn)lash的存儲空間(簡稱閃存芯片)一般劃分為多個存儲塊(Block,即物理塊),每個存儲塊由多個頁(Page)構(gòu)成,根據(jù)閃存芯片特殊的讀寫特性,數(shù)據(jù)的寫入是以頁為單位進行,而擦除則只能以塊為單位進行,所以當操作系統(tǒng)依據(jù)用戶操作,通過某個具體的寫數(shù)據(jù)指令向閃存芯片中寫入新數(shù)據(jù)或?qū)υ瓉硪汛嬖诘臄?shù)據(jù)進行修改時,必須先將寫數(shù)據(jù)指令中的指定地址所指向的存儲塊(下稱為原塊)中要保留的數(shù)據(jù)由原塊“搬遷”到另一個存儲塊(以下稱為新塊)的對應(yīng)頁中,并將寫數(shù)據(jù)指令要求寫入原塊的新數(shù)據(jù)寫入新塊的對應(yīng)頁中,然后將原塊擦除,以新塊的邏輯地址替代原塊的邏輯地址,其中寫編程操作與擦除操作是最占用時間的。
現(xiàn)有的Flash寫操作的流程是寫編程,然后等待寫編程完成,待寫編程完成之后進行擦除操作,再繼續(xù)下一次寫編程。這種方法對于一片F(xiàn)lash是必要的(本文所述的“一片”Flash是指對應(yīng)于一個片選信號,如果有兩個片選信號則視為“兩片”Flash),因為一片F(xiàn)lash上僅具有一個片選信號,無法同時進行兩種不同的操作即無法同時編程,但對于含有多片F(xiàn)lash的存儲設(shè)備而言,如果仍然按照上述寫操作流程進行數(shù)據(jù)寫入就嚴重制約了閃存芯片的寫操作速度,而目前移動存儲設(shè)備的容量越來越大,采用多片F(xiàn)lash是必然的趨勢,所以如何提高閃存芯片的寫入速度成為亟待解決的問題。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種閃存介質(zhì)數(shù)據(jù)寫入的方法,以解決閃存芯片的現(xiàn)有數(shù)據(jù)操作技術(shù)的操作速度和效率低等缺點。
本發(fā)明的閃存介質(zhì)數(shù)據(jù)寫入方法是通過以下技術(shù)方案實現(xiàn)所述方法包括將兩片閃存芯片中的物理塊分別對應(yīng)于奇數(shù)邏輯塊地址和偶數(shù)邏輯塊地址;從數(shù)據(jù)寫入指令中解析出寫操作對應(yīng)的邏輯塊地址;判斷所述邏輯塊地址的奇偶性并根據(jù)所述邏輯塊地址的奇偶性在所述兩片閃存芯片中選擇對應(yīng)的閃存芯片;操作所述對應(yīng)的閃存芯片中與所述邏輯塊地址對應(yīng)的物理塊,對所述物理塊發(fā)出編程或擦除命令后檢測所述兩片閃存芯片中的另一片是否需要進行編程或擦除操作,當所述另一片閃存芯片需要進行編程或擦除操作時,則向所述另一片閃存芯片中需要操作的物理塊發(fā)出編程或操作命令。
使用本發(fā)明的方法可使得對一片閃存芯片進行編程操作或擦除操作的同時對另一片閃存芯片進行編程或擦除操作,從而大大節(jié)省了寫操作的時間,提高了數(shù)據(jù)寫入的速度。
以下參照附圖對本發(fā)明的具體實施方式
的具體而詳細的說明將會使本領(lǐng)域普通技術(shù)人員理解本發(fā)明的思想。
附圖的簡要說明
圖1是本發(fā)明閃存介質(zhì)數(shù)據(jù)寫入方法的實施例中兩片閃存芯片中的物理塊所對應(yīng)的邏輯塊地址分布的示意圖;圖2是本發(fā)明閃存介質(zhì)數(shù)據(jù)寫入方法的總流程示意圖;圖3是本發(fā)明閃存介質(zhì)數(shù)據(jù)寫入方法的流程一的示意圖;圖4是本發(fā)明閃存介質(zhì)數(shù)據(jù)寫入方法的流程二的示意圖。
具體實施例方式
一種閃存介質(zhì)數(shù)據(jù)寫入方法,用于提高對兩片或多片閃存芯片進行數(shù)據(jù)寫入的速度,所述的兩片閃存芯片指對應(yīng)兩個片選信號的閃存芯片,包括物理上為一片但含有兩個片選信號的閃存芯片。
本實施例以含有兩片閃存芯片(Flash)的存儲裝置中的數(shù)據(jù)寫入操作為例進行說明,所述存儲裝置包括控制器和兩片閃存芯片。
請參閱圖1,圖1是本發(fā)明閃存介質(zhì)數(shù)據(jù)寫入方法中兩片閃存芯片的物理塊所對應(yīng)的邏輯塊地址分布的示意圖,如圖1所示,將兩片閃存芯片中的物理塊分別對應(yīng)于奇數(shù)邏輯塊地址和偶數(shù)邏輯塊地址,將只含有奇數(shù)邏輯塊地址的閃存芯片稱為第一片閃存芯片,將只含有偶數(shù)邏輯塊地址的閃存芯片稱為第二片閃存芯片,所述第一片閃存芯片的奇數(shù)邏輯塊地址與所述第二片閃存芯片的偶數(shù)邏輯塊地址可組合成連續(xù)的邏輯塊地址。
請參閱圖2,圖2為本發(fā)明的總流程示意圖,所述控制器從主機接收到數(shù)據(jù)寫操作指令后總流程開始,即步驟300;之后總流程進入步驟302所述控制器根據(jù)所述數(shù)據(jù)寫操作指令得到寫操作指令的起始邏輯地址和需要寫入的扇區(qū)數(shù)目;
之后進入步驟304,在步驟304中解析步驟302中的所述起始邏輯地址得到需要寫入的邏輯塊地址;之后進入步驟306,判斷步驟304中的所述邏輯塊地址的奇偶性如果所述邏輯塊地址為奇數(shù)則進入步驟308,步驟308中將數(shù)據(jù)寫入管理奇數(shù)邏輯塊地址的第一片閃存芯片中與所述邏輯塊地址對應(yīng)的物理塊,然后流程從步驟308進入步驟310,步驟310中將調(diào)用寫流程一;如果所述邏輯塊地址為偶數(shù)則進入步驟312,步驟312中將數(shù)據(jù)寫入管理奇數(shù)邏輯塊地址的第二片閃存芯片中與所述邏輯塊地址對應(yīng)的物理塊,然后流程從步驟312進入步驟314,步驟314中將調(diào)用寫流程二;請結(jié)合參閱圖3,圖3是本發(fā)明閃存介質(zhì)數(shù)據(jù)寫入方法的寫流程一的示意圖,如圖3所示,本發(fā)明的工作流程由總流程的步驟310轉(zhuǎn)入寫流程一的步驟102在步驟102中,所述控制器對步驟308中的所述物理塊進行操作,包括發(fā)送編程與擦除命令,等到所述物理塊要進行編程或擦除操作時,對所述物理塊發(fā)送編程或擦除命令,在發(fā)送編程或擦除命令后判斷第二片閃存芯片是否要進行編程或擦除操作;如果所述第二片閃存芯片需要進行編程或擦除操作,則所述寫流程一由步驟102進入步驟106,在步驟106中,所述控制器對所述第二片閃存芯片中需要操作的物理塊發(fā)送編程或擦除命令,如需要進行編程操作則發(fā)送編程命令,如需要進行擦除操作則發(fā)送擦除命令;如果所述第二片閃存芯片不需要進行擦除操作,則所述流程一由步驟102進入步驟104,在步驟104中,所述控制器判斷所述第一片閃存芯片中的所述物理塊的操作是否結(jié)束;如果所述第一片閃存芯片中的所述物理塊的操作尚未結(jié)束則所述寫流程一由步驟104返回到步驟102;如果所述第一片閃存芯片中的所述物理塊的操作已經(jīng)結(jié)束則所述流程一由步驟104進入步驟108;在步驟108中,所述控制器將需要寫入的扇區(qū)數(shù)目(該扇區(qū)數(shù)目已在步驟302中獲取)減去已寫入的扇區(qū)數(shù)目,以相減后的結(jié)果是否為零來判斷所述數(shù)據(jù)寫操作指令是否完成,若為零則判斷所述數(shù)據(jù)寫操作指令已完成,若不為零則判斷所述數(shù)據(jù)寫操作指令尚未完成;如果所述數(shù)據(jù)寫操作指令已經(jīng)完成,則進入步驟110結(jié)束整個流程;如果所述數(shù)據(jù)寫操作指令未完成,則進入步驟112,在步驟112中寫流程一轉(zhuǎn)入寫流程二。
請結(jié)合參閱圖4,圖4是本發(fā)明提高閃存芯片的數(shù)據(jù)寫入速度的方法的寫流程二的示意圖,如圖4所示本發(fā)明的工作流程由寫流程一的步驟310轉(zhuǎn)入寫流程二的步驟202在步驟202中,所述控制器對步驟312中的所述物理塊進行操作,等到所述物理塊要進行寫編程操作或擦除操作時,對所述物理塊發(fā)送編程命令或擦除命令,發(fā)送編程命令或擦除命令后判斷第一片閃存芯片是否要進行編程或擦除操作如果所述第一片閃存芯片需要進行擦除操作,則所述流程一由步驟202進入步驟206,在步驟206中,所述控制器對所述第一片閃存芯片中需要操作的物理塊發(fā)送編程或擦除命令,如需要進行編程操作則發(fā)送編程命令,如需要進行擦除操作則發(fā)送擦除命令;如果所述第一片閃存芯片不需要進行擦除操作,則所述寫流程二由步驟202進入步驟204,在步驟204中,所述控制器判斷所述第二片閃存芯片中的所述物理塊的操作是否結(jié)束;如果所述第二片閃存芯片中的所述物理塊的操作尚未結(jié)束則所述寫流程二由步驟204返回到步驟202;如果所述第一片閃存芯片中的所述物理塊的操作已經(jīng)結(jié)束則所述寫流程二由步驟204進入步驟208;在步驟208中,所述控制器將需要寫入的扇區(qū)數(shù)目(該扇區(qū)數(shù)目已在步驟302中獲取)減去已寫入的扇區(qū)數(shù)目,以相減后的結(jié)果是否為零來判斷所述數(shù)據(jù)寫操作指令是否完成,若為零則判斷所述數(shù)據(jù)寫操作指令已完成,若不為零則判斷所述數(shù)據(jù)寫操作指令尚未完成;如果所述數(shù)據(jù)寫操作指令已經(jīng)完成,則進入步驟210結(jié)束整個流程;如果所述數(shù)據(jù)寫操作指令未完成,則進入步驟212,在步驟212中調(diào)用所述寫流程一。
當閃存裝置中含有多片閃存芯片時,將每兩片閃存芯片的物理塊分別對應(yīng)于奇數(shù)邏輯塊地址和偶數(shù)邏輯塊地址,數(shù)據(jù)寫入操作以兩片閃存芯片為單位進行,對兩片閃存芯片的數(shù)據(jù)寫入操作方法與上述實施例所述方法相同。
以上所述僅是本發(fā)明的優(yōu)選實施方式,應(yīng)當指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以作出若干改進和潤飾,這些改進和潤飾也應(yīng)視為本發(fā)明的保護范圍。
權(quán)利要求
1.一種閃存介質(zhì)數(shù)據(jù)寫入方法,所述閃存介質(zhì)至少包含兩片閃存芯片,所述方法包括a.將兩片閃存芯片的物理塊分別對應(yīng)于奇數(shù)邏輯塊地址和偶數(shù)邏輯塊地址;b.接收數(shù)據(jù)寫入指令并從所述數(shù)據(jù)寫入指令中解析出寫操作對應(yīng)的起始邏輯地址;c.根據(jù)所述起始邏輯地址得到需要寫入的邏輯塊地址,判斷需要寫入的邏輯塊地址的奇偶性,根據(jù)所述需要寫入的邏輯塊地址的奇偶性在所述兩片閃存芯片之間選擇對應(yīng)的閃存芯片;d.對所述對應(yīng)的閃存芯片中與所述邏輯塊地址對應(yīng)的物理塊發(fā)出編程或擦除命令后,同時檢測另一片閃存芯片是否需要進行編程或擦除操作。
2.如權(quán)利要求1所述的閃存介質(zhì)數(shù)據(jù)寫入方法,其特征在于,還包括步驟e.如果所述另一片閃存芯片需要進行編程或擦除操作,則向所述另一片閃存芯片發(fā)出編程或擦除命令。
3.如權(quán)利要求1所述的閃存介質(zhì)數(shù)據(jù)寫入方法,其特征在于,還包括步驟f.如果所述另一片閃存芯片不需要進行編程或擦除操作,則判斷步驟d中對所述對應(yīng)的物理塊的操作是否完成。
4.如權(quán)利要求3所述的閃存介質(zhì)數(shù)據(jù)寫入方法,其特征在于還包括如果對所述對應(yīng)的物理塊的操作已完成,則判斷所述數(shù)據(jù)寫入指令是否已完成;對所述對應(yīng)的物理塊的操作未完成則返回到步驟d。
5.如權(quán)利要求3所述的閃存介質(zhì)數(shù)據(jù)寫入方法,其特征在于如果所述數(shù)據(jù)寫入指令已完成則返回到步驟b;如果所述數(shù)據(jù)寫入指令尚未完成則返回步驟c。
6.如權(quán)利要求4所述的閃存介質(zhì)數(shù)據(jù)寫入方法,其特征在于所述步驟b中進一步包括從所述數(shù)據(jù)寫操作指令中得到需要寫入的扇區(qū)數(shù)目。
7.如權(quán)利要求6所述的閃存介質(zhì)數(shù)據(jù)寫入方法,其特征在于所述方法進一步包括將需要寫入的扇區(qū)數(shù)目減去已寫入的扇區(qū)數(shù)目來判斷所述數(shù)據(jù)寫操作指令是否已完成。
全文摘要
本發(fā)明提供了一種閃存介質(zhì)數(shù)據(jù)寫入方法,應(yīng)用于對兩片或多片閃存芯片(Flash)的數(shù)據(jù)寫入,該方法包括先將兩片閃存芯片中的物理塊分別對應(yīng)于奇數(shù)邏輯塊地址和偶數(shù)邏輯塊地址;從數(shù)據(jù)寫入指令中解析出寫操作對應(yīng)的邏輯塊地址;判斷所述邏輯塊地址的奇偶性并根據(jù)所述邏輯塊地址的奇偶性選擇對應(yīng)的閃存芯片;操作該閃存芯片,對所操作的閃存芯片發(fā)出編程或擦除命令后檢測另一片閃存芯片是否需要進行編程或擦除操作,當所述另一片閃存芯片需要進行編程或擦除操作時,則向所述另一片閃存芯片發(fā)出編程或擦除命令。使用本發(fā)明的方法可同時兩片閃存芯片進行編程和擦除操作,從而大大提高了數(shù)據(jù)寫入的速度。
文檔編號G06F12/00GK1635580SQ20031011771
公開日2005年7月6日 申請日期2003年12月31日 優(yōu)先權(quán)日2003年12月31日
發(fā)明者熊國平 申請人:深圳市朗科科技有限公司