專利名稱:一種掃描閃存盤的閃存芯片的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及閃存盤的數(shù)據(jù)存儲(chǔ)技術(shù),特別涉及一種掃描閃存盤的閃存芯片的方法。
背景技術(shù):
在目前的市場上,閃存盤產(chǎn)品絕大部分都是由控制芯片、閃存芯片(flash)及其外圍元器件組成。用戶購買到的產(chǎn)品都是經(jīng)過生產(chǎn)廠家做過低級(jí)格式化以及高級(jí)格式化這些步驟后出廠的。所謂的低級(jí)格式化包括對(duì)閃存芯片物理塊好壞的判斷、以及寫入相關(guān)廠商信息等。其具體的處理流程可參見中國專利申請(qǐng)02116150.X。所謂的高級(jí)格式化,就是把文件系統(tǒng)寫入到閃存芯片里。
隨著閃存盤越來越普及,消費(fèi)者需要存儲(chǔ)的數(shù)據(jù)越來越多,因此消費(fèi)者對(duì)閃存盤的容量需求越來越大。閃存芯片的價(jià)格也是隨市場變化而波動(dòng)的。很多消費(fèi)者想更換閃存芯片來改變閃存盤的容量??筛鼡Q閃存芯片的技術(shù)可參見例如本申請(qǐng)人的第03159669.X號(hào)中國專利申請(qǐng)“存儲(chǔ)介質(zhì)固定裝置及使用該固定裝置的移動(dòng)存儲(chǔ)器”,以及第200310115102.X號(hào)中國專利申請(qǐng)“移動(dòng)存儲(chǔ)裝置的數(shù)據(jù)管理方法”等。本說明書引入以上列舉文獻(xiàn)的內(nèi)容作為參考。
但是,由于生產(chǎn)廠家一般只向用戶提供高級(jí)格式化工具,并不提供低級(jí)格式化工具給用戶。因此,即使消費(fèi)者更改了閃存芯片,由于沒有對(duì)閃存芯片物理塊進(jìn)行好、壞(即物理塊的所有存儲(chǔ)數(shù)據(jù)的頁中是否存在有缺陷的不可讀寫部分)的判斷及標(biāo)記,用戶制作自己的產(chǎn)品往往無法正常使用,甚至根本不能使用。因此當(dāng)消費(fèi)者需要其他容量的閃存盤時(shí),就必須重新購買整個(gè)閃存盤。造成了用戶的重復(fù)購置。
另一方面,即使廠商把低級(jí)格式化工具提供給用戶,由于不同廠商提供的低級(jí)格式化工具都有一定的使用前提,例如需要先識(shí)別到一些特殊的字符如PID、VID或其他自定義命令等,否則廠商提供的工具無法識(shí)別閃存盤。因此,用戶更換閃存芯片后,廠商提供的低級(jí)格式化工具可能無法在該盤上使用,從而使閃存芯片無法通用,而當(dāng)前閃存盤品牌種類繁多,用戶使用的閃存盤如果不只一個(gè),就很容易弄錯(cuò)。這也給用戶造成了很大的麻煩。
發(fā)明內(nèi)容
因此,本發(fā)明的目的是提供一種利用固化在控制芯片里的軟件(也可稱為“固件”)實(shí)現(xiàn)閃存芯片低級(jí)格式化(在本說明書中也稱為“掃描”,二者同義)的方法,以克服現(xiàn)有技術(shù)的上述缺陷。
為實(shí)現(xiàn)上述目的,本發(fā)明提供了一種采用閃存盤的控制芯片中的固件方式對(duì)閃存盤的閃存芯片進(jìn)行掃描的方法,所述閃存盤包括控制芯片和閃存芯片,所述掃描閃存芯片的方法包括1)所述控制芯片判斷所述閃存芯片是否已經(jīng)低級(jí)格式化;2)如果判斷所述閃存芯片未進(jìn)行過低級(jí)格式化,則所述控制芯片判斷所述閃存芯片的所有物理塊是否可用,并對(duì)不可用的物理塊進(jìn)行標(biāo)記;3)所述控制芯片對(duì)所述閃存芯片設(shè)置已進(jìn)行了低級(jí)格式化的標(biāo)記。
優(yōu)選地,判斷所述物理塊是否可用的方法包括向物理塊內(nèi)所有的物理頁寫入測試數(shù)據(jù),再從該物理塊內(nèi)讀出所有物理頁內(nèi)所有的數(shù)據(jù),并將讀取的數(shù)據(jù)與寫入的數(shù)據(jù)進(jìn)行比較;如果讀出的數(shù)據(jù)與寫入的數(shù)據(jù)完全一致,則確定該物理塊可用;如果讀出的數(shù)據(jù)與寫入的數(shù)據(jù)不一致,則確定該物理塊為壞塊。
根據(jù)本發(fā)明的另一種優(yōu)選方案,判斷所述物理塊是否可用的方法可包括向物理塊內(nèi)所有的物理頁寫入測試數(shù)據(jù),再從該物理塊內(nèi)讀出所有物理頁內(nèi)寫入的數(shù)據(jù),并將讀取的數(shù)據(jù)與寫入的數(shù)據(jù)進(jìn)行比較;重復(fù)上述過程預(yù)定的次數(shù),如果每次讀出的數(shù)據(jù)與寫入的數(shù)據(jù)都完全一致,那么認(rèn)為該物理塊可用;如果某次讀出的數(shù)據(jù)與寫入的數(shù)據(jù)不一致,則將該物理塊確定為壞塊。
采用本發(fā)明的方法,用戶更換閃存芯片后,將新的閃存盤與電腦或其他符合USB協(xié)議規(guī)定的直流電源相連,固件程序進(jìn)行相應(yīng)的判斷,如果檢查到新更換的閃存芯片需要進(jìn)行低級(jí)格式化和高級(jí)格式化,固件程序?qū)⒆詣?dòng)進(jìn)行操作。操作完成后,用戶可以直接使用新的閃存盤,整個(gè)過程不需要用戶使用任何其他軟件,極大地方便了用戶。
圖1是本發(fā)明的掃描閃存芯片的方法的一個(gè)實(shí)施例的流程圖;圖2是對(duì)圖1所示的當(dāng)前芯片進(jìn)行掃描的一個(gè)實(shí)施例的流程圖。
具體實(shí)施例方式
下面結(jié)合附圖詳細(xì)介紹本發(fā)明,附圖僅用于說明,不是對(duì)本發(fā)明專利保護(hù)范圍的限制。
本發(fā)明是針對(duì)可以隨意更換閃存芯片的閃存盤而提供的一種掃描閃存芯片的方法,可采用內(nèi)嵌式軟件(即固件)實(shí)現(xiàn)。為此,適用于本發(fā)明的閃存盤至少應(yīng)具備控制芯片和閃存芯片。
由于本發(fā)明適用的對(duì)象是可更換閃存芯片的閃存盤,因此對(duì)閃存芯片的低級(jí)格式化采用了全面掃描方式。全面掃描方式是針對(duì)閃存芯片已經(jīng)進(jìn)行過寫操作、閃存芯片廠商的特殊標(biāo)記可能已經(jīng)被破壞的情況,需要判斷整個(gè)閃存盤內(nèi)的所有閃存芯片里的每一個(gè)物理塊(Block)。在判斷每一個(gè)物理塊時(shí),都需要先擦除該物理塊,然后向該物理塊的每一個(gè)扇區(qū)(Sector)都寫入測試數(shù)據(jù),再讀出該數(shù)據(jù),如果寫入的數(shù)據(jù)和讀出的數(shù)據(jù)不一致,則認(rèn)為該物理塊是壞塊,要將其標(biāo)記成壞塊;如果這個(gè)物理塊不是壞塊,則將寫入的測試數(shù)據(jù)擦除即可。整個(gè)閃存盤內(nèi)的閃存芯片里的物理塊都掃描完成后,需要在閃存芯片里取出一個(gè)或若干個(gè)不是壞塊的物理塊,用來記錄掃描狀態(tài)已經(jīng)完成,同時(shí)寫入廠商特定的信息。這樣閃存盤再次接入電源的時(shí)候,控制芯片會(huì)檢查到該閃存芯片已經(jīng)過掃描,就不會(huì)再次重復(fù)全面掃描操作了。進(jìn)行完低級(jí)格式化后,控制芯片將文件系統(tǒng)的相關(guān)數(shù)據(jù)寫入到閃存芯片內(nèi),實(shí)現(xiàn)閃存盤的高級(jí)格式化。在這些操作完成后,用戶就可以直接使用該更換閃存芯片后的閃存盤了。
圖1是本發(fā)明的掃描閃存芯片的方法的一個(gè)實(shí)施例的流程圖,如圖1所示,閃存盤更換閃存芯片后,根據(jù)本發(fā)明的方法,按照如下流程對(duì)其進(jìn)行低級(jí)格式化在步驟101,在閃存盤上電后,判斷是否需要全面掃描。上電可通過使閃存盤與電腦相連或與符合USB協(xié)議的直流電源相連而實(shí)現(xiàn)。判斷是否需要掃描可通過判斷閃存盤的每一個(gè)閃存芯片特定區(qū)域內(nèi)是否有已經(jīng)低級(jí)格式化的標(biāo)記來實(shí)現(xiàn)。低級(jí)格式化的標(biāo)記方式以及標(biāo)記的位置可以不一樣。但是該標(biāo)記方式以及標(biāo)記的位置應(yīng)符合一定的協(xié)議。這里說的“一定的協(xié)議”是閃存盤開發(fā)廠商自己定義的程序開發(fā)規(guī)則。各廠商的協(xié)議可以是不一樣的,是為了保證每個(gè)廠商可以實(shí)現(xiàn)不同的特色功能。按照協(xié)議的規(guī)定,每一個(gè)標(biāo)記在閃存芯片的某個(gè)區(qū)域內(nèi)都有特別的表現(xiàn)形式(如特殊的字符串)可以被固件識(shí)別到。在上電的時(shí)候,固件程序會(huì)按照協(xié)議中定義的形式在協(xié)議中定義的區(qū)域進(jìn)行搜索。例如某一個(gè)物理塊符合協(xié)議中的表現(xiàn)形式一一符合字符串“Netac Floppy DiskFirmware”,但是這些字符串不是在協(xié)議中規(guī)定的第一個(gè)閃存芯片的第100至第120個(gè)物理塊內(nèi)。對(duì)于這種情況,固件程序一樣認(rèn)為這個(gè)閃存芯片沒有標(biāo)記,需要全面掃描。閃存盤中的每一片閃存芯片都需要有這個(gè)標(biāo)記,只要有一片閃存芯片沒有該標(biāo)記,就需要對(duì)沒有標(biāo)記的閃存芯片進(jìn)行全面掃描,如果有已經(jīng)低級(jí)格式化的標(biāo)記,則不再進(jìn)行掃描處理。
如果通過判斷確定閃存芯片沒有低級(jí)格式化的標(biāo)記,則執(zhí)行步驟102,確定閃存盤內(nèi)未低級(jí)格式化的閃存芯片的數(shù)量和各芯片的容量,擦除該閃存盤里所有未低級(jí)格式化的閃存芯片的物理塊。
然后取第一個(gè)閃存芯片(步驟103),對(duì)該芯片進(jìn)行低級(jí)格式化(步驟104),在完成該閃存芯片的低級(jí)格式化之后,將閃存數(shù)目加1,取下一閃存芯片(步驟105),對(duì)該芯片進(jìn)行低級(jí)格式化,直到所有的需低級(jí)格式化的閃存芯片格式化完畢(步驟106)。隨后,在特定的區(qū)域?qū)懭霃S商自定義信息(步驟107)。廠商自定義信息應(yīng)該包括每一個(gè)閃存芯片是否被低級(jí)格式化過。因?yàn)橛脩敉耆锌赡芨鼡Q該閃存盤里的任何一個(gè)閃存芯片?!皬S商自定義信息”還可以包括PID、VID等廠商信息,以方便Win98驅(qū)動(dòng)程序或其他應(yīng)用軟件識(shí)別。閃存盤廠商可以通過修改該區(qū)域內(nèi)的信息來形成不同類型的產(chǎn)品。最后,再將FAT(文件分配表)文件系統(tǒng)寫入閃存,按照常規(guī)的方法進(jìn)行高級(jí)格式化(步驟108)。
圖2示出了進(jìn)行當(dāng)前芯片低級(jí)格式化(掃描)的一個(gè)具體的流程。如圖2所示,首先,在步驟201中,取第0個(gè)物理塊。隨后對(duì)其進(jìn)行是否可用判斷,具體地在步驟202,向物理塊內(nèi)所有的物理頁寫入測試數(shù)據(jù),寫操作完成后,再讀出該物理塊的所有物理頁內(nèi)所有的數(shù)據(jù)(步驟203),并與寫入的數(shù)據(jù)進(jìn)行比較(步驟204)。如果讀出的數(shù)據(jù)與寫入的數(shù)據(jù)完全一致,那么認(rèn)為該物理塊可用。此時(shí)將該物理塊全部擦除,使其為空(步驟205)。
如果讀出的數(shù)據(jù)與寫入的數(shù)據(jù)不一致,那么認(rèn)為該物理塊為壞塊,是不可用的。在該物理塊的特定頁(例如第0個(gè)物理頁)的冗余區(qū)將該物理塊標(biāo)記成壞塊格式(步驟206)。
隨后,將物理塊數(shù)目加1,即取下一物理塊進(jìn)行判斷(步驟207),直到步驟207所得到的物理塊數(shù)目不小于總的物理塊數(shù)目為止(步驟208)。
最后,在步驟209中,在閃存芯片的特定區(qū)域內(nèi)寫入表示該閃存芯片已完成低級(jí)格式化的信息。
在本發(fā)明的上述實(shí)施方式中,在對(duì)一個(gè)物理塊進(jìn)行是否可用的判斷時(shí),寫入測試數(shù)據(jù)可以是寫入一次或者寫入多次數(shù)據(jù)。顯然,在多次寫入數(shù)據(jù)的情況,對(duì)應(yīng)的讀操作和比較操作也需要執(zhí)行相應(yīng)次數(shù)。
在一個(gè)實(shí)施例中,在多次寫入測試數(shù)據(jù)的情況下,則執(zhí)行如下步驟先按照上述步驟202-204執(zhí)行物理塊的寫數(shù)據(jù)、讀數(shù)據(jù)和數(shù)據(jù)比較操作。其中,如果讀出的數(shù)據(jù)與寫入的數(shù)據(jù)一致,那么先擦除該物理塊,再進(jìn)行下一次的其他測試數(shù)據(jù)的寫操作、讀操作以及判斷。如果在執(zhí)行預(yù)定次數(shù)的上述操作后,比較讀出的數(shù)據(jù)與寫入的數(shù)據(jù)都是一致的,則判斷該物理塊是好塊(步驟205)。優(yōu)選將該物理塊擦除。相反,在這多次寫入測試數(shù)據(jù)的過程中,只要有一次讀出的數(shù)據(jù)與寫入的數(shù)據(jù)不一致,即可認(rèn)為該物理塊是壞塊,需要將該物理塊標(biāo)記成壞塊(步驟206)。此后,再執(zhí)行后序的步驟207。
另外,對(duì)當(dāng)前閃存芯片的掃描,在本發(fā)明的另一實(shí)施例中,不是逐個(gè)物理塊地寫入讀出進(jìn)行判斷,而是先把所有的物理塊全部都寫入測試數(shù)據(jù),然后再逐個(gè)去判斷每一個(gè)物理塊是否可用。在多次寫入數(shù)據(jù)的情況下,第二次(含)以后的寫入需要判斷哪一個(gè)是壞塊,不需要對(duì)壞塊再寫測試數(shù)據(jù)了。類似的方式還有多種,例如可以一次幾頁地或一次幾塊地進(jìn)行判斷等,對(duì)本領(lǐng)域的技術(shù)人員來說,這些判斷方法對(duì)于本領(lǐng)域技術(shù)人員都是顯而易見的,本文不予贅述。
另外,在步驟206中,將物理塊標(biāo)記為壞塊的操作可以是先將該物理塊擦除,然后再將其標(biāo)記成壞塊;也可以不擦除,直接將該冗余區(qū)的數(shù)據(jù)標(biāo)記成程序可以將該物理塊識(shí)別成壞塊的格式。
利用本發(fā)明,用戶可以根據(jù)實(shí)際需要通過更換閃存芯片來獲得新的容量的閃存盤,避免重復(fù)購置閃存盤;在更換閃存芯片過程中,固件程序自動(dòng)檢測閃存芯片的可用性并對(duì)閃存芯片內(nèi)的物理塊進(jìn)行標(biāo)記,大大節(jié)省了用戶時(shí)間,方便了用戶。
以上所述僅為本發(fā)明的優(yōu)選實(shí)施方式,本領(lǐng)域技術(shù)人員可以理解,這些實(shí)施方案不應(yīng)構(gòu)成對(duì)本發(fā)明專利保護(hù)范圍的限制,凡在本發(fā)明的說明書及附圖所公開內(nèi)容的基礎(chǔ)上進(jìn)行的等效結(jié)構(gòu)變換,都包括在本發(fā)明的權(quán)利要求書所限定的本發(fā)明的專利保護(hù)范圍內(nèi)。
權(quán)利要求
1.一種掃描閃存盤的閃存芯片的方法,所述閃存盤包括控制芯片和閃存芯片,所述方法包括1)所述控制芯片判斷所述閃存芯片是否已經(jīng)低級(jí)格式化;2)如果所述控制芯片判斷所述閃存芯片未進(jìn)行過低級(jí)格式化,則判斷所述閃存芯片的所有物理塊是否可用,并對(duì)不可用的物理塊進(jìn)行標(biāo)記;然后3)所述控制芯片對(duì)所述閃存芯片設(shè)置已進(jìn)行了低級(jí)格式化的標(biāo)記。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,判斷所述物理塊是否可用的步驟包括2-1)向物理塊內(nèi)所有的物理頁寫入測試數(shù)據(jù);2-2)從所述物理塊內(nèi)的所有物理頁內(nèi)讀出所述寫入的測試數(shù)據(jù),并與寫入的數(shù)據(jù)進(jìn)行比較;2-3)將讀出的數(shù)據(jù)與寫入的數(shù)據(jù)完全一致的物理塊判斷為可用的物理塊。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,判斷所述物理塊是否可用的步驟包括2-1’)向物理塊內(nèi)所有的物理頁寫入測試數(shù)據(jù);2-2’)從所述物理塊內(nèi)的所有物理頁內(nèi)讀出寫入的數(shù)據(jù),并與寫入的數(shù)據(jù)進(jìn)行比較;2-3’)如果讀出的數(shù)據(jù)與寫入的數(shù)據(jù)完全一致,則重復(fù)步驟2-1’)和2-2’)預(yù)定次數(shù);2-4’)如果在2-3’)中每次讀出的數(shù)據(jù)與寫入的數(shù)據(jù)都完全一致,則判斷被讀寫的物理塊可用。
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,對(duì)壞物理塊的標(biāo)記設(shè)置在該物理塊的特定物理頁的冗余區(qū)中。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,在步驟2-1)之前,先判斷所述閃存芯片的容量。
6.根據(jù)權(quán)利要求3所述的方法,其特征在于,對(duì)壞物理塊的標(biāo)記設(shè)置在該物理塊的特定物理頁的冗余區(qū)中。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,在步驟2-1’)之前,先判斷所述閃存芯片的容量。
8.根據(jù)權(quán)利要求1至7任一項(xiàng)所述的方法,其特征在于,進(jìn)一步包括擦除寫入可用物理塊中的測試數(shù)據(jù)的步驟。
9.根據(jù)權(quán)利要求8所述的方法,其特征在于,在判斷所述閃存芯片的所有物理塊是否可用之前,擦除所述閃存芯片的所有物理塊中的數(shù)據(jù)。
10.根據(jù)權(quán)利要求1至7任一項(xiàng)所述的方法,其特征在于,在判斷所述閃存芯片的所有物理塊是否可用之前,擦除所述閃存芯片的所有物理塊中的數(shù)據(jù)。
全文摘要
本發(fā)明公開了一種掃描閃存盤的閃存芯片的方法,用以克服現(xiàn)有技術(shù)中用戶對(duì)閃存芯片進(jìn)行低級(jí)格式化非常不方便的問題,所述閃存盤包括控制芯片、閃存芯片,所述掃描閃存芯片的方法包括1)所述控制芯片判斷所述閃存芯片是否已經(jīng)低級(jí)格式化;2)如果判斷所述閃存芯片未進(jìn)行過低級(jí)格式化,則所述控制芯片判斷所述閃存芯片的所有物理塊是否可用,并對(duì)不可用的物理塊進(jìn)行標(biāo)記;3)所述控制芯片對(duì)所述閃存芯片設(shè)置已進(jìn)行了低級(jí)格式化的標(biāo)記。采用本發(fā)明的方法,用戶更換閃存芯片后,由閃存盤中的控制芯片中的固件自動(dòng)進(jìn)行格式化操作。此后用戶可以直接使用新的閃存盤,整個(gè)過程不需要用戶使用任何其他軟件,極大地方便了用戶。
文檔編號(hào)G06F11/00GK1728284SQ20041007100
公開日2006年2月1日 申請(qǐng)日期2004年7月26日 優(yōu)先權(quán)日2004年7月26日
發(fā)明者熊國平 申請(qǐng)人:深圳市朗科科技有限公司