專利名稱::帶有閃存控制器的電子數(shù)據(jù)閃存卡的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及一種電子數(shù)據(jù)閃存卡(electronicdataflashcard),尤其是指一種在電子數(shù)據(jù)閃存卡內(nèi)控制閃存的系統(tǒng)和方法。
背景技術(shù):
:存儲于軟盤或通過網(wǎng)絡(luò)進(jìn)行傳輸?shù)膫€人數(shù)據(jù)文件通常需要通過密碼或加密編碼來保證文件的安全,個人文檔通過安全封裝或壓縮打包后進(jìn)行發(fā)送。然而,在傳輸過程中,個人數(shù)據(jù)文件和文檔很可能因為密碼、加密碼、全封裝或安全壓縮包遭到破壞而被泄露,從而導(dǎo)致個人信息遭到未授4又的訪問。隨著閃存技術(shù)的發(fā)展,閃存將逐漸取代傳統(tǒng)的磁盤作為移動系統(tǒng)的存儲介質(zhì),閃存較軟盤或磁硬盤有顯著的優(yōu)點,如高G阻抗和低耗電。由于物理尺寸較小,閃存也更有利于移動系統(tǒng)。一般,閃存由于它的高容量和低消耗的特點已成為發(fā)展趨勢。因此為了各種性能、成本、容量的需求,很多種類的閃存設(shè)備應(yīng)運而生,因此,當(dāng)一個僅適配一種閃存卡的移動系統(tǒng)使用另一種不兼容的閃存時問題就出現(xiàn)了。新一代個人計算機(jī)卡技術(shù)已經(jīng)發(fā)展到將閃存和兼容USB標(biāo)準(zhǔn)的架構(gòu)結(jié)合起來了,得益于USB標(biāo)準(zhǔn)對于PC使用者來說更易實現(xiàn)和普遍,這進(jìn)一步促進(jìn)了閃存的發(fā)展趨勢。除了代替硬盤,還將取代軟盤,這是因為閃存較軟盤能提供更高的存儲能力和更快的訪問速度。然而,USB標(biāo)準(zhǔn)的幾個特性如封幀時間、處理凄t據(jù)包和列舉處理等要求另外的處理器資源。為更好的優(yōu)化,這些部件已經(jīng)應(yīng)用于各種專用集成電路。USB大容量設(shè)備的缺點是存取速度慢,USB接口的存取速度比電子集成驅(qū)動器(IDE)接口慢得多,這是因為上述的USB標(biāo)準(zhǔn)包含了例如USB管理命令以及握手包需要的附加資源。USB標(biāo)準(zhǔn)引入的Bulk-only事務(wù)協(xié)議解除了一些資源,但僅限于USB傳輸空閑的時候。除了USB標(biāo)準(zhǔn)引入的限制因素外,閃存也有固有的限制因素。首先,已被編程寫入的閃存扇區(qū)在被重新編程寫入之前應(yīng)進(jìn)行擦除,其次,閃存扇區(qū)的使用壽命有限,例如,它們在報廢之前只能被擦除有限次數(shù)。相應(yīng)地,根據(jù)寫前擦除特性存取閃存不會太快,而且隨著時間推移,擦除將破壞閃存扇區(qū)。為解決USB標(biāo)準(zhǔn)閃存的速度問題,硬件和固件利用存在的小電腦系統(tǒng)接口(SCSI)協(xié)議以便閃存能如近似于磁硬盤的大容量設(shè)備一樣運行。在閃存設(shè)備被廣泛應(yīng)用為存儲媒介之前,SCSI協(xié)議早已被應(yīng)用于USB標(biāo)準(zhǔn)大容量設(shè)備。相應(yīng)地,USB標(biāo)準(zhǔn)結(jié)合傳統(tǒng)SCSI協(xié)議用于管理閃存。SCSI協(xié)議的缺點是它們沒有擦除命令來解決閃存的寫前擦除特性。因此,擦除管理是通過主機(jī)系統(tǒng)進(jìn)行處理的,這將占用主機(jī)資源。一種解決辦法是引入了新的USB包定義,如寫閃存、讀閃存和擦除閃存定義。然而,這些定義并非是一個有效的處理閃存的途徑,這是因為它們引入了額外的協(xié)議,這些協(xié)議要求額外的主機(jī)處理資源。同時,它們同樣無法解決扇區(qū)損耗問題。另一種解決辦法是為閃存寫處理提供一個驅(qū)動程序,這些程序擁有三個不同的子程序。一般,首先讀取被請求閃存地址的數(shù)據(jù),如果該地址中已有數(shù)據(jù)寫入,固件會執(zhí)行一個擦除命令。此時,如果擦除命令執(zhí)行正確,固件會執(zhí)行一個寫入請求。然而,該驅(qū)動程序利用需要額外的主機(jī)處理資源的協(xié)議。再一種解決辦法是提供一個擁有兩個區(qū)域即數(shù)據(jù)區(qū)域和冗余區(qū)域的閃存扇區(qū)格式,冗余區(qū)域包含有有助于管理扇區(qū)標(biāo)記的控制數(shù)據(jù)。然而當(dāng)主機(jī)系統(tǒng)寫入扇區(qū)時,標(biāo)記增加了ASIC復(fù)雜性。上述方法和其他已知設(shè)備的缺點是包含了額外的用于處理專用協(xié)議的占用主機(jī)系統(tǒng)資源的和由此增加的用于管理閃存的處理時間。因此,必須研制一種帶有智能處理單元的可支持多種閃存種類的電子數(shù)據(jù)閃存卡。同時還必須開發(fā)一個改進(jìn)的用于控制閃存的系統(tǒng)和方法。該系統(tǒng)和方法能適用于USB標(biāo)準(zhǔn),能適配ASIC硬件執(zhí)行,能簡單、經(jīng)濟(jì)、方便適配現(xiàn)有技術(shù)。
發(fā)明內(nèi)容本發(fā)明提供了一種包含閃存設(shè)備、指紋感應(yīng)器(fingerprintsensor)、輸入/輸出接口電路和處理單元(processingunit)的電子數(shù)據(jù)閃存卡。該電子數(shù)據(jù)閃存卡可被主機(jī)如個人電腦、筆記本電腦或其他電子主機(jī)設(shè)備訪問。由于電子數(shù)據(jù)閃存卡易于攜帶和耐用性好,個人數(shù)據(jù)可以加密形式存儲于閃存設(shè)備中,從而使得其僅能被訪問,例如,通過在卡體上設(shè)置指紋傳感器來確保未授權(quán)用戶無法誤用該卡。一種適配可建立通訊連接的主機(jī)訪問的電子數(shù)據(jù)閃存卡,其中,電子數(shù)據(jù)閃存卡包括卡體;設(shè)于卡體上的閃存設(shè)備,閃存設(shè)備包含有大量用于存儲數(shù)據(jù)文件的非易失性存儲單元;一設(shè)于卡體上用于和主機(jī)建立通訊的輸入輸出接口電路;和一設(shè)于卡體上,并電性連接所述閃存設(shè)備和所述輸入輸出接口電路的閃存控制器,其中,閃存控制器包括(a)檢測裝置,用于根據(jù)閃存檢測算法代碼(flashdetectionalgorithmcode),檢測閃存設(shè)備是否為閃存控制器的處理單元所支持;(b)—索引(index),存儲大量邏輯塊地址(logicalblockaddress)和物理塊地址(physicalblockaddress),用于將各所述物理塊地址指派給對應(yīng)的所述邏輯塊地址,各物理塊地址對應(yīng)閃存設(shè)備的相關(guān)大量存儲單元;(c)可選操作方式之一編程模式(programmingmode),在該模式下,閃存控制器激活所述的輸入輸出接口電路,接收來自主機(jī)的數(shù)據(jù)文件,并通過一個主機(jī)發(fā)送給閃存控制器的寫命令將該數(shù)據(jù)文件存入所述閃存設(shè)備關(guān)聯(lián)到第一邏輯塊地址的第一物理塊地址中;數(shù)據(jù)恢復(fù)沖莫式(dataretrievingmode),在該才莫式下,所述閃存控制器接收來自主機(jī)的包含第一邏輯塊地址的讀命令,并激活所述輸入輸出接口電路來傳輸從第一物理塊地址讀取到主機(jī)的數(shù)據(jù)文件;和數(shù)據(jù)復(fù)位模式(dataresettingmode),在該模式下,數(shù)據(jù)文件從閃存設(shè)備中擦除。其中,索引包括至少一個用于存儲邏輯塊地址和對應(yīng)物理塊地址的查詢表(look-up-table,簡稱LUT);其中,閃存控制器還包括一個判斷邏輯(arbitrationlogic),包含有將各所述物理塊地址指派給對應(yīng)所述邏輯塊地址的裝置。其中,索引包括一寫查詢表(writeLUT)和一讀查詢表(readLUT),其中,閃存控制器還包括一個在對應(yīng)編程模式后,更新讀查詢表的裝置。其中,索引還包括一物理使用表(physicalusagetable,簡稱PUT),用于執(zhí)行物理扇區(qū)映射(physicalsectormapping),和提供一指示閃存設(shè)備已編程扇區(qū)的位圖(bitmap)。其中,寫查詢表、讀查詢表和物理使用表包括有高性能易失性閃存,如SRAM。其中,閃存控制器還包括一先進(jìn)先出單元(first-in-first-out,簡稱FIFO),用于將數(shù)據(jù)文件寫入閃存設(shè)備之前,暫存至少一部分?jǐn)?shù)據(jù)文件。其中,閃存控制器還包括一第二先進(jìn)先出單元,用于回收閃存設(shè)備的廢舊扇區(qū)。其中,閃存控制器還包括一通過SCSI協(xié)議接入閃存設(shè)備的裝置。其中,輸入輸出接口電路包含一串行總線接口電路,其中,串行總線接口電路包括有利用BOT協(xié)議傳輸所述數(shù)據(jù)的裝置。其中,輸入輸出接口電路包含SD接口電路、MMC接口電路、CF接口電路、MS接口電路、PCI高速接口電路、IDE接口電路、SATA接口電路中的一種。其中,閃存設(shè)備包括第一閃存設(shè)備和第二閃存設(shè)備,和其中,閃存控制器包括支持雙通道平行訪問(dual-channelparallelaccess)和交替訪問(interleaveaccess)方式中至少一種方式來訪問第一閃存設(shè)備和第二閃存設(shè)備的裝置。其中,閃存控制器包括8051、8052、80286、RISC、ARM、MIPS的一種和一數(shù)字信號處理器。根據(jù)本發(fā)明的一種實施方式,閃存控制器(flashmemorycontroller)是處理單元的組成部分,用于控制閃存設(shè)備運行。處理單元連接于閃存設(shè)備和輸入/輸出接口電路。閃存控制器邏輯(flashmemorycontrollerlogic)包括用于檢測閃存設(shè)備是否為閃存控制器邏輯所支持的閃存類型的閃存類型算法(flashtypealgorithm)。通過存儲閃存檢測算法代碼的動態(tài)部分和個人數(shù)據(jù)于至少一個閃存設(shè)備中,不僅能使電子數(shù)據(jù)閃存卡的ROM尺寸減小,還能使新的閃存類型能在僅改變存儲于閃存中閃存檢測算法動態(tài)部分而無需改變硬件的情況下就能被支持。這樣節(jié)省了總花費和也節(jié)約了不必要的開發(fā)時間。根據(jù)本發(fā)明另一種實施方式,電子數(shù)據(jù)閃存卡的處理單元有三種可選模式可編程模式(programmingmode)、數(shù)據(jù)恢復(fù)模式(dataretrievingmode)和復(fù)位模式(resettingmode)。在可編程模式下,處理單元激活輸入/輸出接口電路從主機(jī)獲取個人數(shù)據(jù)文件,將其存儲于閃存設(shè)備中。在數(shù)據(jù)恢復(fù)模式下,處理單元激活輸入/輸出接口電路以傳輸數(shù)據(jù)文件至主機(jī)。在數(shù)據(jù)復(fù)位模式下,數(shù)據(jù)文件(和相關(guān)的指紋數(shù)據(jù))從閃存設(shè)備中擦除。在本發(fā)明的一種實施方式中,處理單元為8051、8052、80286、RISC、ARM、MIPS或數(shù)字信號處理器中的任一種微處理器。根據(jù)本發(fā)明的一種實施方式,輸入/輸出接口電路是USB接口電路。根據(jù)本發(fā)明的另一種實施方式,USB閃存設(shè)備使用單批量傳輸(Bulk-OnlyTransfer,簡稱BOT)協(xié)議在主機(jī)間傳輸高速數(shù)據(jù),BOT是比CBI協(xié)議更為有效和高速的傳輸協(xié)議,因為BOT傳輸命令、數(shù)據(jù)、狀態(tài)是依靠除了缺省控制端點(endpoint)的批量端點。根據(jù)本發(fā)明的另一種實施方式,閃存控制器包括一個用于從主機(jī)系統(tǒng)接收至少一個請求的處理器。閃存控制器還包括一個包含關(guān)于閃存扇區(qū)(sector)信息的索引(index)。處理器利用索引來決定可用于編程、再編程或讀操作的閃存扇區(qū)。本發(fā)明的另一方面,閃存控制器還包括一個用于回收廢舊扇區(qū)(obsoletesector)以再編程的先進(jìn)先出單元(first-in-first-outunit,簡稱FIFO)。根據(jù)前述的系統(tǒng)和方法,主機(jī)系統(tǒng)無需閃存配置信息,卻可以和閃存控制器相互影響。因此,當(dāng)閃存兼容USB標(biāo)準(zhǔn)和ASIC構(gòu)造時,從閃存中寫和讀數(shù)據(jù)的速度得以顯著提高。本發(fā)明的其它特征和優(yōu)點將結(jié)合附圖進(jìn)一步進(jìn)行說明。具體如下圖1為本發(fā)明一種實施方式的帶有指紋驗證功能的電子數(shù)據(jù)閃存卡的結(jié)構(gòu)示意框圖2為本發(fā)明另一種實施方式中電子數(shù)據(jù)閃存卡的電路結(jié)構(gòu)示意框圖3為本發(fā)明另一種實施方式的用于電子數(shù)據(jù)閃存卡的處理單元的結(jié)構(gòu)示意框圖4A為本發(fā)明一種實施方式中檢測閃存類型的處理流程圖4B為本發(fā)明另一種實施方式中電子數(shù)據(jù)閃存卡局部的結(jié)構(gòu)示意框圖5A為8位處理器訪問8位數(shù)據(jù)閃存的結(jié)構(gòu)示意框圖;圖5B為16位處理器訪問16位數(shù)據(jù)閃存的結(jié)構(gòu)示意框圖;圖5C為16位雙通道處理器通過單控制器訪問兩個8位數(shù)據(jù)閃存的結(jié)構(gòu)示意框圖5D為根據(jù)本發(fā)明一種實施方式,采用16位交叉通道處理器通過單獨控制器訪問兩個8位數(shù)據(jù)閃存的結(jié)構(gòu)示意框圖6為本發(fā)明另一種實施方式中電子數(shù)據(jù)閃存卡的電鴻4莫塊結(jié)構(gòu)示意框圖7為本發(fā)明含有閃存控制器和閃存的閃存系統(tǒng)的結(jié)構(gòu)示意框圖8為本發(fā)明圖7中寫查詢表、讀查詢表、物理使用表和回收FIFO的具體結(jié)構(gòu)示意框圖9為本發(fā)明圖7中閃存的具體結(jié)構(gòu)示意框圖IO為本發(fā)明用于管理閃存的方法的高位流程圖11為本發(fā)明用于傳輸U(kuò)SB大容量級服務(wù)請求的方法的流程圖12A、12B、12C分別為本發(fā)明命令塊包、命令讀格式化簡化塊、命令狀態(tài)包的結(jié)構(gòu)示意框圖13為本發(fā)明用于讀、寫、擦除方法的流程圖14為本發(fā)明包含寫處理的第一階段、寫處理的第二階段、讀處理和回收管理方法的高位流程圖15A、15B、15C、15D分別為根據(jù)本發(fā)明從寫處理第一、第二階段得出的代表性結(jié)果的示意框圖16為實現(xiàn)圖14寫處理第一階段方法的流程圖17為實現(xiàn)圖14寫處理第二階^度方法的流程圖18為實現(xiàn)圖14讀處理方法的流程圖19為實現(xiàn)圖14回收管理的方法的流程圖。具體實施例方式圖1所示為本發(fā)明一種實施方式的結(jié)構(gòu)示意圖,如圖l所示,一種電子數(shù)據(jù)閃存卡IO,可通過接口總線13、讀卡器12或其它接口設(shè)備(圖中未示)被主機(jī)9訪問,包括卡體l、處理單元2、一個或多個閃存設(shè)備3、指紋傳感器4、輸入/輸出接口電路、一可選的顯示單元6、電源(如電池)7和功能鍵設(shè)置(flmctionkeyset)8。閃存設(shè)備3設(shè)于卡體1上,以已知方式存儲一個或多個數(shù)據(jù)文件、相關(guān)密碼信息、相關(guān)通過掃描一個或多個電子數(shù)據(jù)閃存卡IO授權(quán)用戶的指紋獲得的指紋信息。僅授權(quán)用戶可訪問這些存儲的數(shù)據(jù)文件,數(shù)據(jù)文件可以是圖形文件或文本文件。指故傳感器4設(shè)于卡體1上,用于掃描電子數(shù)據(jù)閃存卡10用戶的指紋以生成指紋掃描數(shù)據(jù)。本發(fā)明可采用的指紋傳感器4的一個示例在專利號為6547130、名稱為"帶有指紋驗證功能的集成電路卡"的共有美國專利中已公開,其技術(shù)內(nèi)容在此不再詳細(xì)說明。上述專利公開的指紋傳感器包括用于定義指紋掃描空間的掃描單元陣列。指紋掃描數(shù)據(jù)包括大量通過掃描相應(yīng)掃描單元陣列行獲得的掃描行數(shù)據(jù)。掃描單元陣列行通過所述陣列的行方向和列方向進(jìn)行掃描。當(dāng)檢測到卡體上指紋高電平時,各掃描單元產(chǎn)生一個第一邏輯信號,反之則產(chǎn)生一個第二邏輯信號。輸入/輸出接口電路5設(shè)于卡體1上,能被激活,通過接口總線13或讀卡器12經(jīng)相應(yīng)接口和主機(jī)9建立通訊。本發(fā)明的一種實施方式中,輸入/輸出接口電路5包含可通過接口總線13或讀卡器12接入主機(jī)9的SD接口電路、MMC卡4妄口電3各、CF接口電路、MS接口電3各、PCI-Express接口電路、IDE接口電路、SATA接口電路的一種。處理單元2設(shè)于卡體1上,通過卡體1上的傳輸線與閃存設(shè)備3、指紋傳感器4和輸入/輸出接口電路5連接。本發(fā)明的一種實施方式,處理單元2采用8051、8052、80286微處理器中的一種,比如,Intel公司生產(chǎn)的。本發(fā)明的另一種實施方式,處理單元包含RISC、ARM、MIPS或其他數(shù)字信號處理器。才艮據(jù)本發(fā)明的一方面,處理單元2通過至少部分存儲于閃存設(shè)備3中的程序進(jìn)行控制,使得處理單元2可為下列可選模式(l)可編程模式,該模式下,處理單元2激活輸入/輸出接口電路5以接收來自主機(jī)9的數(shù)據(jù)文件和相關(guān)指紋信息,并將其存儲于閃存設(shè)備3中;(2)數(shù)據(jù)恢復(fù)模式,在該模式下,處理單元2激活輸入/輸出接口電路5以傳輸存儲于閃存設(shè)備3中的數(shù)據(jù)文件至主機(jī)9;(3)數(shù)據(jù)復(fù)位模式,在該模式下,數(shù)據(jù)文件和相關(guān)指紋數(shù)據(jù)從閃存設(shè)備3中擦除。在運行中,主機(jī)9通過接口總線13或讀卡器12和接入處理單元2的輸入/輸出接口電路5向電子數(shù)據(jù)閃存卡IO發(fā)送寫和讀請求,依次利用閃存控制器(圖中未示)向一個或多個閃存設(shè)備3讀或?qū)懖僮?。本發(fā)明的一種實施方式,為了更好的安全保護(hù),當(dāng)檢測到自上次授權(quán)訪問存儲于閃存設(shè)備3中的數(shù)據(jù)文件的預(yù)訂時間消耗掉時,處理單元2自動開始運行數(shù)據(jù)復(fù)位^t式??蛇x電源7設(shè)于卡體1上,與處理單元2和卡體1上用于提供電源的其他單元連接??蛇x功能鍵設(shè)置8,設(shè)于卡體1上,連接處理單元2,具可操作性以啟動處理單元2運行于可選的可編程模式、數(shù)據(jù)恢復(fù)模式或數(shù)據(jù)復(fù)位模式下。可選功能鍵設(shè)置8可被操作用于向處理單元2提供一個輸入密碼。處理單元2比較輸入密碼和閃存設(shè)備3中存儲的相關(guān)密碼信息,經(jīng)驗證輸入密碼和相關(guān)密碼一致,則啟動電子數(shù)據(jù)閃存卡IO的授權(quán)操作??蛇x的顯示單元6設(shè)于卡體1上,連接處理單元2并由處理單元2控制,用于顯示和主機(jī)9交換數(shù)據(jù)文件和電子數(shù)據(jù)閃存卡10的運行狀態(tài)。本發(fā)明的優(yōu)點如下第一,電子數(shù)據(jù)閃存卡體積小、容量大、數(shù)據(jù)傳輸方便;第二,由于每個人的指紋是唯一的,電子數(shù)據(jù)閃存卡僅允許授權(quán)用戶訪問其內(nèi)的數(shù)據(jù)文件,增強(qiáng)了安全性能。本發(fā)明的其它特4i和優(yōu)點將在下面闡述。圖2是本發(fā)明另一種實施方式不帶指紋傳感器和用戶驗證過程的電子數(shù)據(jù)閃存卡IOA的結(jié)構(gòu)示意框圖。一種電子數(shù)據(jù)閃存卡IOA,包括由一輸入/輸出接口電路5A和一閃存控制器21為減少花費高集成組成的處理單元2A。輸入/輸出接口電路5A包括一收發(fā)模塊(transceiverblock)、一串行接口引擎模塊(serialinterfaceengineblock),若干數(shù)據(jù)緩沖器(databuffer)、若干寄存器(register)和中斷邏輯(interruptlogic)。輸入/輸出接口電路5A耦合一內(nèi)部總線以容許輸入/輸出接口電路5A的多個部件能和閃存控制器21的部件之間進(jìn)行通訊。閃存控制器21包括一微處理單元,一ROM,—RAM,閃存控制器邏輯,糾錯碼邏輯(errorcorrectioncodelogic)和通用輸入輸出邏輯(GPIO)。本發(fā)明的一種實施方式中,通用輸入輸出邏輯耦合若干個LED用于狀態(tài)顯示,比如電源好(PG),讀/寫閃存活動等等,和其它的I/0設(shè)備。閃存控制器21耦合一個或多個閃存設(shè)備3。在此實施方式中,主機(jī)9A包括一個功能鍵設(shè)置8A,當(dāng)電子數(shù)據(jù)閃存卡10A運行時,通過接口總線或讀卡器與處理單元2A連接。功能鍵設(shè)置8A用于設(shè)置電子數(shù)據(jù)閃存卡IOA的可選工作模式可編程模式、數(shù)據(jù)恢復(fù)模式或數(shù)據(jù)復(fù)位模式。功能鍵設(shè)置8A也可操作用于向主機(jī)9A提供一個輸入密碼。處理單元2A比較輸入密碼和閃存設(shè)備3內(nèi)已存的相關(guān)密碼信息,當(dāng)驗證到輸入密碼和相關(guān)密碼信息一致時,啟動電子數(shù)據(jù)閃存卡IOA的授權(quán)操作。在該實施方式中,主機(jī)9A包括顯示單元6A,當(dāng)電子數(shù)據(jù)閃存卡10A運行時,通過接口總線或讀卡器與處理單元2A連接。顯示單元6A用于顯示和主機(jī)9A之間的數(shù)據(jù)文件交換,和電子數(shù)據(jù)閃存卡10A的運行狀態(tài)。圖3為處理單元2A的內(nèi)部結(jié)構(gòu)示意框圖,電子lt據(jù)閃存卡10A包括一個用于向處理單元2A提供一個或多個電源供應(yīng)(powersupply)的電源調(diào)節(jié)器(powerregulator)22,電源供應(yīng)可根據(jù)電子數(shù)據(jù)閃存卡IOA相關(guān)單元的電源要求提供不同的電壓,帶有用于穩(wěn)壓的電容器(Capacitor)(圖中未示)。電子數(shù)據(jù)閃存卡10A包括一個用于向處理單元2A提供復(fù)位信號的復(fù)位電路(resetcircuit)23,啟動電源后,復(fù)位電路23向所有單元發(fā)送復(fù)位信號。當(dāng)內(nèi)部電壓達(dá)到穩(wěn)定,復(fù)位信號停止發(fā)送,電阻和電容(圖中未示)用于適當(dāng)?shù)膹?fù)位定時調(diào)整。電子數(shù)據(jù)閃存卡IOA也包含一石英晶體振蕩器(quartzcrystaloscillator)(圖中未示),用于向處理單元2A內(nèi)的PLL提供基頻。根據(jù)本發(fā)明的一種實施方式,輸入輸出接口電路5A,復(fù)位電路23和電源調(diào)節(jié)器22集成或部分集成于處理單元2A上,這種高集成大大減少了所需空間、復(fù)雜度和制造成本。體積小和花費是移動設(shè)備如本文所述電子數(shù)據(jù)閃存卡的關(guān)鍵因素。目前的IC封裝技術(shù)能將不同技術(shù)和材料的離散IC部件集成于一個IC封裝。比如,輸入輸出接口電路是模擬和數(shù)字混合電路,可和處理單元集成于MCP(Multi-ChipPackage)封裝上。復(fù)位電路和電源調(diào)節(jié)器是模擬電路,同樣也可和處理單元集成于MCP封裝上?;旌闲盘柤呻娐芳夹g(shù)的特點允許模擬電路和數(shù)字電路的混合集成。因此,高集成可合并到包含輸入輸出接口電路5A、閃存控制器21、復(fù)位電路23和電源調(diào)節(jié)器22的同一處理單元2A的棵芯片(die)上。本發(fā)明的另一種實施方式中,處理單元2、輸入輸出接口電路5、電源調(diào)節(jié)器22和復(fù)位電路23通過MCP技術(shù)或混合信號集成電路技術(shù)集成或部分集成。閃存技術(shù)的優(yōu)點已創(chuàng)造了大量的適應(yīng)不同性能、花費和容量的閃存設(shè)備種類。比如,MBC(MultiBitCell)閃存設(shè)備較SBC(SingleBitCell)閃存設(shè)備,形狀要素相同,但容量更大,圍繞NAND閃存相關(guān)知識產(chǎn)權(quán)問題,AND或Super-AND閃存得以創(chuàng)造。同樣,大頁尺寸(2k字節(jié))閃存較小頁尺寸(512字節(jié))閃存擁有更好的寫性能。閃存的飛速發(fā)展,使得設(shè)備擁有大容量。為了支持如此多種類的閃存類型,閃存控制器相應(yīng)地必須能才企測和訪問它們?;谏鲜龅臐撛谌秉c以及費用原因,尋找閃存的靈活性事實上唯一的方法就是要存取每一個不同的閃存類型。因此扭j行一個帶有智能算法的處理單元來檢測和存取不同閃存類型是非常重要的。典型的閃存設(shè)備包含一個可用于識別閃存類型、制造商以及閃存的特性如頁面大小、塊結(jié)構(gòu)大小、容量等的ID代碼(IDcode)。根據(jù)本發(fā)明的當(dāng)前實施方式,電子數(shù)據(jù)閃存卡的處理單元在系統(tǒng)電源啟動時執(zhí)行閃存檢測操作來判斷閃存控制器是否支持一個或更多電子數(shù)據(jù)閃存卡的閃存設(shè)備。圖4A表示了本發(fā)明的閃存檢測算法。首先,處理單元被復(fù)位(框410),接著,閃存的ID被讀取用于識別閃存類型(框420)。讀取的ID用于和閃存控制器的支持閃存類型表進(jìn)行比較(框430),如果不支持該閃存類型(框435),閃存控制器將無法訪問閃存,不兼容性將會通過一個控制器輸出口的LED顯示出來。如果支持該閃存類型,閃存控制器將被配置到對應(yīng)的閃存類型的訪問模式(框440),然后閃存控制器開始訪問閃存(框450)。電子數(shù)據(jù)閃存卡是使用閃存作為數(shù)據(jù)存儲的閃存系統(tǒng)。如圖4B所示,電子數(shù)據(jù)閃存卡10A包含處理單元2A、閃存3A、隨機(jī)訪問存儲器(RAM)24,帶有駐留于只讀存儲器(ROM)25的啟動代碼(BootCode,簡稱BC)和操作系統(tǒng)(OS)代碼。一旦電源開啟,處理單元2A取出ROM25中的啟動代碼并執(zhí)行,從而初始化系統(tǒng)的組件并將ROM25中的OS代碼載入RAM24中。一旦OS代碼被載入RAM24中,它將獲取系統(tǒng)的控制權(quán)。OS包含用于執(zhí)行基本任務(wù)如控制和分配內(nèi)存、優(yōu)先處理指令以及控制輸入輸出端口等的驅(qū)動程序。OS代碼中也包括閃存檢測算法代碼和閃存參數(shù)數(shù)據(jù)(flashparametricdata)。由于存儲于ROM中數(shù)據(jù)的永久性,在常規(guī)電子數(shù)據(jù)閃存卡的閃存控制器被設(shè)計好并投入生產(chǎn)后,ROM中的軟件就被凍結(jié),不能再支持市場上更晚出來的閃存類型。在這樣的情況下,時常開發(fā)支持新閃存類型的閃存控制器是昂貴而且費時的。再次關(guān)于圖4B,根據(jù)本發(fā)明的另一種實施方式,電子數(shù)據(jù)閃存卡10A包含一個被分離成靜態(tài)區(qū)域(staticportion)26和動態(tài)區(qū)域(dynamicportion)27的閃存檢測算法代碼,靜態(tài)區(qū)域26處理當(dāng)前閃存類型,而動態(tài)區(qū)域27用于在靜態(tài)區(qū)域26無法識別電子數(shù)據(jù)閃存卡的特殊閃存類型時控制檢測過程。也就是說,當(dāng)電子數(shù)據(jù)閃存卡IOA是采用舊閃存類型的閃存設(shè)備制造時,閃存檢測算法代碼是在電源啟動過程中識別該閃存設(shè)備ID,利用靜態(tài)區(qū)域26執(zhí)行對舊型閃存的讀寫;相反,當(dāng)擁有新型配置的特殊電子數(shù)據(jù)閃存卡是采用新型閃存設(shè)備(如圖4B所示的3A)制作時,則閃存檢測算法代碼在電源啟動過程中識別閃存設(shè)備ID,并利用動態(tài)區(qū)域27執(zhí)行對新型閃存設(shè)備3A的讀寫操作。在這種配置中,閃存檢測算法代碼的靜態(tài)區(qū)域26存儲于ROM25,而閃存^r測算法代碼的動態(tài)區(qū)域27存儲于電子數(shù)據(jù)閃存卡10A的至少一個閃存設(shè)備3A中。通過存儲動態(tài)區(qū)域27和數(shù)據(jù)(圖中未示)于至少一個閃存設(shè)備3A中,不僅ROM25的大小可以減少,而且無需更換硬件新型閃存就可以獲得支持。也就是說,當(dāng)出于某些出發(fā)點制造了新型閃存(不被靜態(tài)區(qū)域支持)時,只需簡單地在一個或多個閃存設(shè)備中存儲恰當(dāng)?shù)乃惴ùa動態(tài)區(qū)域,而無需重置整個ROM。由于默認(rèn)的存取和對動態(tài)區(qū)域讀取已經(jīng)合并到閃存才全測算法代碼的執(zhí)行中來,因此動態(tài)區(qū)域的類型可被改動而不會影響到閃存檢測算法代碼的操作。因此,整個制造的費用被降低,不必要的開發(fā)也被縮減了。由于閃存設(shè)備中存儲和讀取的數(shù)據(jù)是用于被訪問和驗證的,其速度也是設(shè)備性能的一個重要參數(shù)。根據(jù)上下文當(dāng)前實施方式的另一方面,除了使用一些現(xiàn)有常規(guī)方法外,還可在電子數(shù)據(jù)閃存卡中執(zhí)行一個雙通道并行(dual-channelparallel)和隔行(interleave)存耳又閃存的方法來加速性能。典型的電子數(shù)據(jù)閃存卡采用帶單通道(8位)數(shù)據(jù)總線的閃存,如圖5A所示。通過多通道(multiple-channel)數(shù)據(jù)總線,更多的數(shù)據(jù)位可同時在閃存中進(jìn)行讀、寫,因此存取速度得以提高。例如雙通道總線(16位)可將閃存存取速度翻一番,四通道(quad-channel)(32位)可以將閃存存取速度提高四倍,依此類推。帶有雙通道數(shù)據(jù)帶寬的電子數(shù)據(jù)閃存卡可以通過一個如圖5B所示的16位帶寬的閃存、或通過單一控制的兩個8位帶寬的閃存(圖5C)、或通過分別單獨控制的兩個8位帶寬的閃存(如圖5D)實現(xiàn)。如圖5D所示,電子數(shù)據(jù)閃存卡10B包括分別對應(yīng)閃存設(shè)備3B1和閃存設(shè)備3B2的單獨控制和輸出輸出連接。因此,使用交錯編程(interleavedprogramming)來提高系統(tǒng)速度和降低耗電。比起其他模式(例如讀取閃存單元、寫入內(nèi)存到外部設(shè)備的頁寄存器(pageregister)中)來說,閃存設(shè)備在編程(寫)模式下,數(shù)據(jù)從頁寄存器傳輸?shù)介W存陣列的閃存單元中,需要消耗更多的電。根據(jù)本發(fā)明,閃存設(shè)備3B1和3B2的交錯編程包括"交錯寫入(writestaggering)",其中閃存控制器21B使一個閃存設(shè)備(如閃存設(shè)備3B1)將數(shù)據(jù)從其頁寄存器編程(寫)到其閃存陣列(flashmemoryarray)中;同時另一個閃存設(shè)備(如閃存設(shè)備3B2)被限制為只能進(jìn)行非編程操作(如從控制器21B接收數(shù)據(jù)到頁寄存器中,當(dāng)閃存設(shè)備3B1進(jìn)行寫操作時,閃存設(shè)備3B2不能進(jìn)行寫操作)。這樣避免了在可編程模式下同時操作多閃存,存取每一個閃存設(shè)備3B1和3B2時提高了閃存的存取速度和吞吐量來匹配主機(jī)接口標(biāo)準(zhǔn)速度。除此之外,該交錯存取方法(interleaveaccessapproach)也避免了由于同時對多閃存進(jìn)行寫操作帶來的電力消耗。上述各種新穎性在保持其實質(zhì)和范圍時可以被共同或單獨地執(zhí)行。例如,按照本發(fā)明的又一實施方式,圖6顯示了一個電子數(shù)據(jù)閃存卡IOC(或電子數(shù)據(jù)存儲介質(zhì),或集成電路卡)。電子數(shù)據(jù)閃存卡10C通過一個接口總線或讀卡器(也就是連接通信)適配主機(jī)9A訪問,包括卡體1C、一個包含前述實施方式中所述閃存控制器21C、輸入輸出電路5C以及一個或更多內(nèi)存設(shè)備3C的處理單元2C,電子數(shù)據(jù)閃存卡10C可以是上述電子數(shù)據(jù)閃存卡10A的功能子系統(tǒng)(functionalsubsystem),也可以作為其他應(yīng)用的功能子系統(tǒng)。閃存控制器21C通過它產(chǎn)生的命令來控制閃存設(shè)備3C,在閃存設(shè)備中存儲數(shù)據(jù)文件。上述輸入輸出接口電路處理單元2C連接到閃存設(shè)備,處理單元2C的閃存控制器21C通過一個或更多上述方法控制閃存^殳備3C。在一種實施方式中,閃存控制器21C執(zhí)行一個閃存類型算法來測定存儲于ROM的閃存控制器邏輯的靜態(tài)區(qū)域是否支持閃存設(shè)備3C,如果該類型為新型,則讀取存儲于閃存設(shè)備3C中的閃存控制器邏輯的動態(tài)區(qū)域。另一方面,輸入輸出接口電路5C被激活,以通過接口連接和主機(jī)9A建立USB單批量傳輸(BOT)通信。主機(jī)和閃存設(shè)備USB接口電路(之后也成為USB設(shè)備)之間存在四種通信數(shù)據(jù)流控制(control)、中斷(interrupt),批量(bulk)和同步(isochronous)??刂苽鬏斒菑闹鳈C(jī)到USB設(shè)備之間的控制管道中的數(shù)據(jù)流,它負(fù)責(zé)配置和控制USB設(shè)備信息;中斷傳輸是小量數(shù)據(jù)、非周期性、保證響應(yīng)周期,通常是設(shè)備發(fā)起通信來通知主機(jī)USB設(shè)備需要服務(wù);在無時間鑒定響應(yīng)時大塊數(shù)據(jù)穿過USB接口電路移動依賴于批量傳輸;同步傳輸為主機(jī)和USB設(shè)備提供周期的、持續(xù)的通信。USB接口電路通常支持兩種數(shù)據(jù)傳輸協(xié)議控制沐t量沖斷(Control/Bulk/Interrupt,簡稱CBI)協(xié)議和單批量傳輸(Bulk-OnlyTransfer,簡稱BOT)協(xié)議。大容量級CBI傳輸規(guī)范經(jīng)核準(zhǔn)使用于全速軟盤驅(qū)動器,但未使用于高速功能設(shè)備,或其它除軟盤以外的設(shè)備(根據(jù)USB協(xié)議)。根據(jù)本發(fā)明的一種實施方式,USB設(shè)備要和主機(jī)傳輸高速數(shù)據(jù)只有采用BOT協(xié)議。由于BOT命令、數(shù)據(jù)和狀態(tài)傳輸依靠除默認(rèn)控制端點外的批量端點,BOT協(xié)議比CBI協(xié)議更為高效和快速。如前述實施方式,處理單元2C在可編程模式下是可選操作的,處理單元2C促使輸入輸出接口電路5C接收來自主機(jī)9A的數(shù)據(jù),并通過主機(jī)9A向閃存控制器21C發(fā)出寫命令,將數(shù)據(jù)存儲于閃存設(shè)備3C中;數(shù)據(jù)恢復(fù)模式下,處理單元2C通過主機(jī)9A向閃存控制器21C發(fā)出的讀命令來接收閃存設(shè)備3C中的數(shù)據(jù)并存取存儲于閃存設(shè)備3C中的數(shù)據(jù)文件,并激活輸入輸出接口電路5C,將數(shù)據(jù)文件傳輸?shù)街鳈C(jī)9A;數(shù)據(jù)復(fù)位模式下,數(shù)據(jù)文件將從閃存設(shè)備3C中被擦除。本發(fā)明智能處理單元2C的優(yōu)點包括(1)提供高度集成、充分降低了整個空間占用,同時降低了復(fù)雜性和制造成本;(2)利用一個智能算法來檢測和存取不同類型的閃存,拓寬了閃存的來源和供應(yīng);(3)將軟件編程(softwareprogram)部分和閃存的數(shù)據(jù)放在一起,降低了控制器的成本;(4)利用更先進(jìn)的閃存控制邏輯,可以實現(xiàn)提高閃存存取的吞吐量;根據(jù)本發(fā)明另一種實施方式,在電子數(shù)據(jù)閃存卡中提供一種系統(tǒng)和方法來控制閃存。該閃存控制器使用的系統(tǒng)和方法包括一個用于接收至少一個來自主機(jī)系統(tǒng)的請求的處理器、一個包含若干查詢表(Look-UpTables,簡稱LUTs)和一個物理使用表(PhysicalUsageTable,簡稱PUT)的索引。該索引將主機(jī)使用的邏輯塊地址(LogicalBlockAddresses,簡稱LBAs)轉(zhuǎn)換為閃存的物理塊地址(PhysicalBlockAddresses,簡稱PBAs),該索引還包括閃存配置信息。處理器可選地利用該索引來決定可用于編程、再編程或讀的閃存扇區(qū)。閃存控制器還包括一個回收FIFO,用于回收舊塊使得它們可用于再編程?;厥詹僮靼◤?fù)制和擦除,它是在后臺執(zhí)行,所以對主機(jī)是不可見的。相應(yīng)地,閃存管理以及閃存控制器中相關(guān)智能代替了主機(jī)。結(jié)果,主機(jī)系統(tǒng)不需要閃存的物理配置就可以和閃存控制器交互作用。從而在保持兼容USB標(biāo)準(zhǔn)和ASIC架構(gòu)的基礎(chǔ)上極大地提高了讀取或?qū)懭腴W存的速度。下面對本發(fā)明出現(xiàn)的專有名詞進(jìn)行定義。塊(block):—個基本存儲擦除單元,每一個塊包含了一定數(shù)量的扇區(qū),例如16、32、64等等。如果任何扇區(qū)遇到寫入錯誤,整個塊將被定義為壞塊,該塊所有的有效扇區(qū)都被重新定位到其它的塊。扇區(qū)(sector):塊的子單位,每個扇區(qū)通常擁有兩個區(qū)域,數(shù)據(jù)區(qū)域和備用區(qū)域。廢舊扇區(qū)(obsoletesector):已被編程寫入數(shù)據(jù)但數(shù)據(jù)接著要被更新的扇區(qū)。當(dāng)數(shù)據(jù)更新后,舊的數(shù)據(jù)被保留在廢舊扇區(qū),新的數(shù)據(jù)被寫入立刻變?yōu)橛行葏^(qū)的新扇區(qū)。無效塊(non-validblock):帶有廢舊扇區(qū)的塊。有效扇區(qū)(validblock):—個被編程寫入數(shù)據(jù)的扇區(qū),且數(shù)據(jù)未過期,例如為當(dāng)前數(shù)據(jù)。平均讀寫(wearleveling):—個用于平均分配閃存中塊的擦除次數(shù),來延長閃存壽命的方法。閃存中塊的擦數(shù)次數(shù)是有限的,如NAND閃存的典型擦除最大次數(shù)是一百萬。備用塊(Spareblock):閃存保留區(qū),備用塊使得閃存系統(tǒng)可以被壞塊使用。簇(Cluster):是由操作系統(tǒng)用作文件存取指針以改善內(nèi)存性能的多數(shù)據(jù)扇區(qū)。在小容量存儲器操作中,一個簇通常就是兩個數(shù)據(jù)扇區(qū)的結(jié)合體,這也是文件大小單位的最小值。一個典型的小塊存儲器(例如每扇區(qū)512字節(jié))的簇大小是1K字節(jié),更大的塊的存儲器(例如每扇區(qū)2112字節(jié))的簇大小為4K字節(jié)。文件分配表(FileAllocationTable,簡稱FAT):擁有鏈接地址指針的文件分配表。簇就是FAT的最小單位,例如FAT16就是一個簇地址為16位。目錄和子目錄(DirectoryandSubdirectory):操作系統(tǒng)定義的文件指針。主啟動記錄(Masterbootrecord,簡稱MBR):—個存儲根目錄指針和可啟動的相關(guān)啟動文件的固定位置。這個固定位置可以是第一個塊的最后一個扇區(qū),在第一個塊壞掉的情況下也可以是第二塊的最后一個扇區(qū)。包(Packet):USB基本處理單元的一個可變長度格式。典型USB規(guī)范中一般的處理包含三種包令牌包(tokenpacket)、數(shù)據(jù)包(datapacket)和握手包(handshakepacket)。令牌包有輸入、輸出以及配置的形式;一個數(shù)據(jù)包大小可變,例如USBl.l版本中為64字節(jié),USB2.0中為512字節(jié);握手包有ACK和NAK形式來告知主機(jī)處理完成。幀(Frame):在USB通信不忙時,會用到使用高優(yōu)先權(quán)的幀的批量處理。批量處理也可以在USB通信繁忙時等待下一個幀。端點(Endpoint):三種端點包括控制、批量輸入和批量輸出??刂贫它c用于系統(tǒng)初始列舉,批量輸入端點用于主機(jī)系統(tǒng)讀通道,批量輸出端點用于主機(jī)系統(tǒng)寫通道。命令塊包(Commandblockwrapper,筒稱CBW):—個包包含命令狀態(tài)和相關(guān)信息,如數(shù)據(jù)傳輸長度(512字節(jié)如從8-11字節(jié)),一個CBW通常始于一個包邊界,并以傳輸一個精確為31字節(jié)的短包終止,所有的CBW傳輸都應(yīng)當(dāng)以LSB(0字節(jié))優(yōu)先排序。命令狀態(tài)包(CommandStatusWrapper,簡稱CSW):CSW是包的范圍開始。降低塊命令(Reducedblockcommand,簡稱RBC)SCSI協(xié)議10字節(jié)的命令描述器。圖7為包括本發(fā)明相應(yīng)閃存控制器110和閃存設(shè)備112的電子數(shù)據(jù)存儲卡(存儲器系統(tǒng))100的結(jié)構(gòu)示意框圖。主機(jī)系統(tǒng)52提供讀寫處理資源,擦除操作由閃存控制器110實現(xiàn)。閃存控制器110通過主機(jī)系統(tǒng)接口116連接到主機(jī)系統(tǒng)52。主機(jī)系統(tǒng)52可以是PC或其它類型的計算機(jī)系統(tǒng)。主機(jī)系統(tǒng)52的操作系統(tǒng)可以是windows、MACOS,但不限于這些操作系統(tǒng)。在該具體實施方式中,閃存系統(tǒng)100遵從USB大容量級標(biāo)準(zhǔn)并且主機(jī)接口116為一個USB連接。USB規(guī)范可以是l.l、2.0或以上版本。閃存控制器110和閃存112都可以是總線供電或自身供電,或被用作大容量存儲設(shè)備。作為大容量存儲設(shè)備的優(yōu)點是低耗電、易攜帶且容量遠(yuǎn)遠(yuǎn)大于傳統(tǒng)的軟盤。閃存控制器110包含一個設(shè)備收發(fā)器120,可將模擬信號轉(zhuǎn)變?yōu)閿?shù)字流,并提供一個鎖相回路(phaselockloop,簡稱PLL)電路來為內(nèi)部數(shù)據(jù)鎖存產(chǎn)生精確時鐘。對于USB2.0來說,由于其是在480MHZ下進(jìn)行操作,PLL功能精確且有用的。閃存控制器110還包括了一個串行接口引擎(serialinterfaceengine,簡稱S正)122,它可以提供串行和并行數(shù)據(jù)轉(zhuǎn)換、包解碼/生成、循環(huán)冗余碼(cyclicredundancycode,簡稱CRC)生成/校檢、不歸零(non-return-to-zero,簡稱NRZI)編解碼以及根據(jù)USB標(biāo)準(zhǔn)的位填充。端點124和125接收來自主機(jī)系統(tǒng)52的類型信息(如大容量存儲設(shè)備級)、閃存配置信息和默認(rèn)的控制信息;端點126接收來自主機(jī)系統(tǒng)52的讀處理信息;端點128接收來自主機(jī)系統(tǒng)52的寫處理信息。BOT單元130包含一個數(shù)據(jù)傳輸長度寄存器132和一個邏輯塊地址寄存器134接收命令塊包(CBW)。本發(fā)明的一方面,從物理塊地址分配到邏輯塊地址整個過程都是閃存控制器110完成的,因此允許主機(jī)系統(tǒng)52在不需閃存設(shè)備112中存儲數(shù)據(jù)的實際物理位置(配置)就能連接到閃存設(shè)備110(如執(zhí)行讀、寫和擦除操作)。也就是說,閃存控制器110利用存儲于電子數(shù)據(jù)閃存卡110(即并非從主機(jī)系統(tǒng)52接收到)的全部檢驗邏輯和數(shù)據(jù)來識別閃存設(shè)備112中的壞塊,將閃存單元中好塊的物理地址分配給邏輯塊地址,回收不可用塊并執(zhí)行平均讀寫。因為這些命令中的每一個命令都是獨立于主機(jī)系統(tǒng)52,因此主機(jī)系統(tǒng)52的操作得到增強(qiáng)。共有發(fā)明和另案待審的美國專利申請?zhí)朜o.xx/xxx,xxx名為《電子數(shù)據(jù)閃存卡的閃存壞塊管理》中公開了閃存控制器110C利用的附加信息(即檢驗邏輯),在此包含參照它的完整性。扇區(qū)FIFO140在主機(jī)系統(tǒng)52嘗試寫數(shù)據(jù)到閃存112時提供一個緩存特性。FIFO非空中斷信號142在處理器150的中斷處理器148中觸發(fā)一個中斷程序,中斷程序回應(yīng)主機(jī)系統(tǒng)52來確定數(shù)據(jù)要被寫入閃存112。同時,處理器150執(zhí)行一個寫處理。寫查詢表170、讀查詢表172和一個物理使用表180提供的索引展示了閃存112的構(gòu)造。閃存控制器使用上述檢驗邏輯來控制讀查詢表172和寫查詢表170以及物理使用表180。讀查詢表172和寫查詢表170各自方便主機(jī)系統(tǒng)52和閃存112之間讀寫處理,讀查詢表172和寫查詢表170將主機(jī)提供的邏輯塊地址轉(zhuǎn)換為閃存設(shè)備112的物理塊地址。物理使用表180執(zhí)行物理扇區(qū)映射(mapping)并提供一個已編程扇區(qū)位圖(bitmap),如已被寫入數(shù)據(jù)的扇區(qū)。帶有閃存112的閃存接口控制器186執(zhí)行來自處理器150的命令,閃存接口控制器186接收來自讀查詢表172和寫查詢表170讀、寫請求服務(wù)的邏輯物理塊地址?;厥誇IFO(recyclingFIFO)190回收所有帶過期扇區(qū)的塊,從而使得它們可以被編程,例如寫入新數(shù)據(jù)?;厥詹僮魇窃趯懱幚砗罅⒖酞毩?zhí)行的,因此不會影響到閃存控制器110的寫處理。最佳的專用集成電路中,讀查詢172和寫查詢表170、物理使用表180以及回收FIFO都是使用易失性隨機(jī)存取存儲器(RAM),如同步隨機(jī)存取存儲器(SRAM)。閃存112能被執(zhí)行使用一個或多個設(shè)備,并且每一個擁有一個或多個閃存陣列。圖8更具體地展示了本發(fā)明圖7中寫查詢表170、讀查詢表172、物理使用表180和回收FIFO190的結(jié)構(gòu)示意框圖。寫查詢表170在寫處理過程中為閃存提供索引,將主機(jī)系統(tǒng)提供的邏輯塊地址轉(zhuǎn)換為閃存的物理塊地址。寫查詢表170包含物理塊地址302a、302b、302c和302d。為簡化圖例說明,每個查詢表僅顯示4個邏輯塊地址。每一個邏輯塊地址302a302d包含一個可選的塊偏移位(block-offsetbit)(位5~位0)。塊偏移位對應(yīng)塊中特殊扇區(qū)。邏輯塊地址302a302d分別關(guān)聯(lián)對應(yīng)的物理塊地址304a304d。相應(yīng)地,每個邏輯塊地址ad分別指向一個關(guān)聯(lián)的物理塊地址ad。在此特例中,物理塊地址長度為32位。扇區(qū)區(qū)域(sectorfield)306包含一串位,顯示了一個塊中的已編程扇區(qū)。寫查詢表170僅記錄一個特殊寫處理中的起始邏輯塊地址。例如,如果一個特殊的寫處理需要兩個或更多連續(xù)塊,則寫查詢表170記錄起始邏輯塊地址。讀查詢表172在進(jìn)行讀處理中為閃存提供索引,并將主機(jī)提供的邏輯塊地址轉(zhuǎn)換為閃存的物理塊地址。讀查詢表172包含邏輯塊地址302,a、302,b、302,c和302,d。讀查詢表172擁有和寫查詢表170相同的區(qū)域。在每個寫操作完成后,讀查詢表172被更新來反映寫查詢表170的改變,以便區(qū)分讀查詢表172和寫查詢表170。一旦讀查詢表被更新,它可以用作為讀操作的索引。物理使用表180完成物理扇區(qū)映射,并提供一個可顯示已編程扇區(qū)(即扇區(qū)已經(jīng)被寫入數(shù)據(jù))的位圖。無論何時發(fā)生寫操作,物理使用表180記錄可顯示已編程扇區(qū)的使用信息。這樣有助于閃存控制器處理器的寫操作能根據(jù)物理使用表180來判斷哪些扇區(qū)可用于編程和再編程。回收FIFO190回收無效塊,且在每個寫操作成功后進(jìn)行回收處理。無論何時遇到一個帶有舊扇區(qū)的塊,作為塊的物理地址信息被置于回收FIFO190中,顯示其為無效塊。在完成有效位復(fù)制重定位操作后,回收FIFO190提供用于執(zhí)行無效塊擦除操作的地址信息?;厥誇IFO190使用一個寫指針(writepointer)192作為更新無效塊的FIFO地址,讀指針(readpointer)194、196作為兩個讀地址參數(shù)指針。讀指針二196用于后臺回收讀取參數(shù),讀指針一194作為擦除回收成功時的有效塊參數(shù)。讀指針一194永遠(yuǎn)不會超過讀指針二196,兩個讀指針192和196都不會超過寫指針192。根據(jù)當(dāng)前實施方式的一方面,復(fù)制重置(copy-relocate)(無效塊仍然留有可用扇區(qū))和4察除回收才喿作(erase-recyclingoperation)都是在后臺執(zhí)行的,即獨立于寫處理,則不會影響到寫處理。圖9為本發(fā)明圖7中閃存112更為具體的結(jié)構(gòu)示意框圖。對應(yīng)每一個物理塊地址,閃存112擁有一個包含一個數(shù)據(jù)區(qū)域402和備用區(qū)域404的數(shù)據(jù)結(jié)構(gòu)。每一個區(qū)域可容納一定數(shù)量的字節(jié),該數(shù)量取決于實際應(yīng)用,例如,一個數(shù)據(jù)區(qū)域可能有512字節(jié)、2112字節(jié)或更多字節(jié),一個備用區(qū)域可以有16、64或更多字節(jié)。數(shù)據(jù)區(qū)域402存儲原始數(shù)據(jù),備用區(qū)域404存儲存儲器管理相關(guān)信息。備用區(qū)域404包括一個壞塊指示區(qū)域(badblockindicatorfield)406、一個錯誤糾正代碼(errorcorrectioncode,簡稱ECC)區(qū)域408、一個擦除計數(shù)器區(qū)域(erasecountfield)410以及一個邏輯塊地址區(qū)域(LBAfield)412。因為查詢表170、172和物理使用表180存儲于易失性存儲器中,因此,不保存有效扇區(qū)信息。邏輯塊地址區(qū)域412用于在斷電后初始化過程中重構(gòu)讀、寫查詢表172、170和物理^吏用表180。壞塊指示區(qū)域406指出壞塊。當(dāng)嘗試寫入或擦除一個特殊扇區(qū)失敗時,就會產(chǎn)生壞塊。特殊壞塊指示區(qū)域414被定位于最后一個塊,這個位置便于固件讀取,當(dāng)每個扇區(qū)存在一個位時尤其如此。在此特殊實施方式中,物理塊使用了64位來記錄扇區(qū)寫入失敗(64位x4096塊=32&字節(jié)=16扇區(qū)=四分之一塊)。任何帶ls的塊意味著該特殊塊是壞塊。為維持可靠性,四個副壞塊指示器被保存于閃存的最后塊中,當(dāng)然也可以使用更少或更多的復(fù)制。本發(fā)明中幾乎不需要標(biāo)記。查詢表中的有效扇區(qū)標(biāo)記使用唯一的標(biāo)記用于幫助固件做出判斷。這樣也減少了讀和寫處理的復(fù)雜性。圖10是本發(fā)明閃存管理方法的一個高位(high-level)流程圖。首先,閃存控制器利用處理器獲取來自主機(jī)系統(tǒng)至少一個請求,步驟502,這個請求可以是寫或讀請求。因此,通過閃存控制器內(nèi)部的索引表和處理器判斷可用于編程、再編程或讀的閃存的扇區(qū),步驟504。主機(jī)系統(tǒng)不需要閃存配置信息就可以作用于閃存。在特定的實施方式中,閃存控制器接收到一個來自主機(jī)系統(tǒng)的兼容USB大容量存儲器類的請求,接下來的圖例描述該特定的實施方式。圖11為本發(fā)明USB大容量存儲設(shè)備級服務(wù)請求傳輸方法的流程圖。首先,閃存控制器接收來自主機(jī)系統(tǒng)的請求,步驟602,該步驟即為所述的命令傳輸步驟602。該命令可以是寫或讀請求。若為寫請求,則完成一個寫處理,步驟604,該步驟即為所述的數(shù)據(jù)輸出步驟604;若為讀請求,則完成一個讀處理,步驟606,該步驟即為所述的數(shù)據(jù)輸入步驟606。一旦完成一個寫或讀處理,閃存控制器發(fā)送一個確認(rèn)包到主機(jī)系統(tǒng)來確認(rèn)處理完成,步驟608,該步驟即為所述的狀態(tài)傳輸步驟608。由于數(shù)據(jù)包是從主機(jī)系統(tǒng)發(fā)出的,所以命令傳輸步驟602和數(shù)據(jù)輸出步驟604通常是批量輸出傳輸。而由于數(shù)據(jù)包是發(fā)送給主機(jī)系統(tǒng)的,所以數(shù)據(jù)輸入步驟606狀態(tài)傳輸步驟608通常是批量輸入傳輸。圖12A-C展示了本發(fā)明命令塊包(CBW)702、精簡的塊命令讀取格式(RBC)704和命令狀態(tài)包(CSW)706的結(jié)構(gòu)示意框圖。USB標(biāo)準(zhǔn)中每個請求包括三種包CBW702、RBC704和CSW706。CBW702、RBC704和CSW706也通常分別被稱為令牌、數(shù)據(jù)和確認(rèn)握手包,并分別用于命令傳輸、數(shù)據(jù)輸入輸出和狀態(tài)傳輸,如圖11中步驟602608。仍關(guān)于圖12A-C,CBW702包含了主機(jī)系統(tǒng)數(shù)據(jù)要遵循的的信息,CBW702為31字節(jié)長度,并包含了命令解碼和方向以及一個獨特的邏輯塊地址。CBW702中的邏輯塊地址包含了文件分配表(FAT)和目錄指針。CBW702也包含了作為RBC命令中的一部分的15字節(jié)的讀/寫范圍。RBC704包含了寫入閃存的數(shù)據(jù)信息,它是一個小型計算機(jī)系統(tǒng)接口精簡的塊命令讀取格式(SCSIRBC)。數(shù)據(jù)長度可以根據(jù)不同版本的USB標(biāo)準(zhǔn)定義。例如USBl.l為64字節(jié),USB2.0定義為512字節(jié)。CSW706包含了確認(rèn)過程和處理結(jié)束信息,狀態(tài)字節(jié)使用12字節(jié)。圖13所示為本發(fā)明讀、寫或擦除方法的流程圖。結(jié)合圖12A-C和圖8所示,首先接收來自主機(jī)系統(tǒng)的請求,步驟802,為遵循USB標(biāo)準(zhǔn),該請求包含CBW702、RBC704和CSW706;接下來,命令類型為讀或?qū)懻埱蟊粰z測,步驟804;接著CBW和CSW的寄存器被初始化,步驟806。若請求為一個寫處理的寫請求,閃存控制器中扇區(qū)數(shù)據(jù)FIFO被填充。當(dāng)512字節(jié)已就緒,扇區(qū)數(shù)據(jù)FIFO的寫指針增加,并發(fā)送一個中斷到閃存控制器的處理器,步驟810。然后,寫處理被執(zhí)4于,步驟812。最后,一個確認(rèn)包凈皮發(fā)送到主才幾系統(tǒng)來確認(rèn)寫處理成功完成,步-紫814。成功完成寫處理后,閃存控制器的固件檢查回收FIFO狀態(tài),步驟820。若回收FIFO非空,回收FIFO就會回收舊的扇區(qū),步驟822。若請求為一個讀處理的讀請求,CBW中的邏輯塊地址和FIFO扇區(qū)的所有入口進(jìn)行比較,步驟828。若匹配,被請求數(shù)據(jù)被寫回主機(jī)系統(tǒng),步驟830。然后,一個確認(rèn)包被發(fā)送到主機(jī)系統(tǒng)以確認(rèn)讀處理已成功完成,步驟832;若不匹配,被請求數(shù)據(jù)是從閃存中讀取出來的,步驟834。最終,狀態(tài)/確認(rèn)包被發(fā)送到主機(jī)系統(tǒng)以確認(rèn)讀處理已成功完成,步驟836。圖14所示流程圖展示了本發(fā)明包括寫處理第一階段(phase)、寫處理的第二階段、讀處理和回收操作的方法。首先,接收到CBW,步驟902,然后,判斷是否為寫請求,步驟904。若是,F(xiàn)IFO扇區(qū)被才企查,步驟906中,若FIFO扇區(qū)非空,則發(fā)起寫請求。為維持塊地址的連續(xù)性和提高寫效率,寫處理有兩個階段。在第一個階段,數(shù)據(jù)被寫入到一個特殊數(shù)量的扇區(qū)并發(fā)送一個確認(rèn)包給閃存控制器的處理器和主機(jī)系統(tǒng)來通知寫處理已完成,步驟910。如果沒有后續(xù)的讀請求待處理,寫處理的第二階段就被執(zhí)行。相應(yīng)地,有效扇區(qū)從無效塊中復(fù)制到另一個塊的新地址,步驟920。為保持?jǐn)?shù)據(jù)一致性,步驟920在后臺被執(zhí)行。如果判斷為讀請求,并且在寫處理的第一個階^敬完成后立刻有一個讀請求,閃存使用讀查詢表的物理塊地址取出被請求數(shù)據(jù),步驟930。讀請求被執(zhí)行后,若存在一個待處理的寫請求的第二階段,該第二階段被執(zhí)行,步驟940。步驟940中,當(dāng)沒有請求需要處理時,回收FIFO回收舊扇區(qū)。在一個特定實施方式中,當(dāng)回收FIFO完成塊擦除任務(wù)時,閃存控制器的固件可以返回來服務(wù)來自主才幾系統(tǒng)的其他請求。圖15A-D展示了本發(fā)明寫處理第一、第二階段的典型結(jié)果的結(jié)構(gòu)示意框圖。為進(jìn)一步闡明本發(fā)明的上述特性,特提供了下面的例子。圖15A-D顯示了四個包含長度可變數(shù)據(jù)串的寫處理,圖15D顯示了一個數(shù)據(jù)被更新的寫處理。為便于說明,每個塊僅顯示4個扇區(qū)。閃存112兩個塊(PBA0andPBA1)均有四個扇區(qū)。在第一個寫處理中,寫查詢表170寫入閃存112的6個物理扇區(qū),起始于第一物理塊(PBA0)。在本例中,假定閃存112起始為空。為實現(xiàn)本例的目的,標(biāo)簽A0-A5在第一個寫處理時再次進(jìn)行數(shù)據(jù)寫入。物理使用表180中對應(yīng)閃存112扇區(qū)的位顯示為1,表示哪些扇區(qū)已被編程,即已被占用。閃存控制器的固件利用物理使用表180來判斷可用扇區(qū)。相應(yīng)地,那些扇區(qū)存有數(shù)據(jù),不能被再編程,直到被第一次擦除,但這些扇區(qū)可隨后被讀取。已寫入扇區(qū)的寫查詢表170通過ls顯示有效扇區(qū),讀查詢表172信息從寫查詢表170中復(fù)制來反映最近的改變。然而,一旦寫階段完成,讀查詢表172從寫查詢表170被復(fù)制,完成和寫查詢表170的最終同步。相應(yīng)地,直到讀查詢表172被更新,將通過Os顯示寫查詢表170的預(yù)更新信息,來指示空白扇區(qū)。對于圖15B,寫查詢表170寫新數(shù)據(jù)B到PBA1中下一個可用扇區(qū)。這是第二個寫處理。寫查詢表170、物理使用表180和閃存塊反映了本次更新。讀查詢表172已被更新了上次的改變,但未被更新反映當(dāng)前改變。關(guān)于圖15C,寫查詢表170被寫入新數(shù)據(jù)CO和C1到下一個可用扇區(qū),這是第三個寫處理。注意凄t據(jù)CO和Cl和數(shù)據(jù)A0-A5—樣交叉了塊范圍。寫查詢表170和物理使用表180和閃存塊再次反映了本次更新。讀查詢表172已被更新了上次的改變,但未被更新反映當(dāng)前改變。關(guān)于圖15D,寫查詢表170已寫數(shù)據(jù),用已更新數(shù)據(jù)a0-a4來更新現(xiàn)有數(shù)據(jù)A0-A4。這是第四個處理。在寫處理的第一個階^a中,因為塊PBAO和PBA1需先擦除才能被再編程,已更新數(shù)據(jù)a0-a4被寫入到同一個扇區(qū)數(shù)而不是下一個可用塊中,即PBA3-4。一旦第一個寫階段完成,確認(rèn)包被發(fā)送到閃存控制器的處理器來確認(rèn)寫處理第一個階段的完成。寫查詢表170、物理使用表180和閃存塊反映這個更新,讀查詢表172已被更新了上次的改變,^f旦未一皮更新反映當(dāng)前改變。塊PBA0和PBA1因為它們的某些扇區(qū)中的數(shù)據(jù)過期而變?yōu)闊o效。相應(yīng)地,那些塊可被回收FIF0190回收?;厥誇IF0190改變相應(yīng)位為0來顯示此回收。回收FIF0190的寫指針192增加以指向下一個可用位置來存儲于下一無效塊地址。在該寫處理的第二階段,數(shù)據(jù)A5、B和CO被復(fù)制到新塊,即塊PBA3-4,來保持寫查詢表170的連續(xù)性。寫查詢表170、物理使用表180和閃存塊將反映本次更新。讀查詢表172此時將被更新,來反映當(dāng)前改變。寫處理的兩個階段都完成后,寫查詢表170和讀查詢表172將保持一致。圖16是顯示本發(fā)明圖14中執(zhí)行物理塊地址和扇區(qū)計數(shù)更新過程的第一個階段的流程圖,主要是做一個邏輯塊地址和物理塊地址之間的索引映射(indexmapping)以便讀和寫地址可以保持追蹤。表l(下面所述)是一個查詢表入口和FIFO假定閃存中每塊8個扇區(qū)的簡化例子。1的入口意味著扇區(qū)數(shù)據(jù)有效,0表示扇區(qū)可用。請注意查詢表(映射表)是用LBAx來做指針的,但是FIFO是使用Wr_ptr和Rd_ptrs來做指針的。表1<table>tableseeoriginaldocumentpage26</column></row><table>最初,來自主機(jī)的邏輯塊地址和扇區(qū)計數(shù)(sectorcount,簡稱SC)被估算,步驟1102。然后,邏輯塊地址偏移位被編碼到一個扇區(qū)計數(shù)中,步驟1104。邏輯塊地址指向閃存的一個物理塊地址。如邏輯塊地址為0010,0101并且扇區(qū)數(shù)量為16,那么0010就是兩個查詢表入口指針的初始LBAx塊地址。如果物理使用表的扇區(qū)區(qū)域為0(即扇區(qū)可用),那么扇區(qū)計數(shù)寄存器(sectorcountregister)就等于CBW扇區(qū)計數(shù),同時寫查詢表的物理塊地址將被載入,步驟1106。如果寫查詢表的扇區(qū)區(qū)域為1,這意味著閃存扇區(qū)被之前的編程使用了,寫指針指向的塊要被擦除,步驟1108。然后,通過寫指針指向的回收FIFO的入口被當(dāng)前PBAx填充,步驟lllO。在回收操作期間,寫指針指向的塊將被擦除。然后,物理使用的扇區(qū)區(qū)域被置為1,步驟1112,其中物理塊地址顯示這個扇區(qū)正在被使用中。然后扇區(qū)數(shù)量增加,步驟1114。接下來,將扇區(qū)數(shù)量和塊范圍(blockboundary)進(jìn)行比較,步驟1116。如果扇區(qū)數(shù)量和塊范圍匹配,則寫指針增加,步驟1118。當(dāng)閃存塊范圍到達(dá)后,寫查詢表中的邏輯塊地址增加,步驟1120。然后更新正確扇區(qū)數(shù)位置的寫查詢表,步驟1122。如果扇區(qū)數(shù)量不匹配塊范圍,步驟1118和1120被避開,然后更新正確扇區(qū)數(shù)量位置的寫查詢表,步驟1122?;氐讲襟E1106,如果寫查詢表的扇區(qū)區(qū)域為0,則意味著閃存扇區(qū)沒有#1之前的編程所用,也即寫處理尚未完成。然后,扇區(qū)計lt和CBW的扇區(qū)計數(shù)進(jìn)行比較,步驟1124。如果它們相同,由查詢表的LBAx指向的PBAx將在步驟1126中被更新,然后處理到步驟1128。如果扇區(qū)計寄存器不等于步驟1124中CBW的扇區(qū)計數(shù),兩個查詢表和將被寫入閃存的數(shù)據(jù)的扇區(qū)區(qū)域?qū)⒈恢脼閘。接下來,扇區(qū)數(shù)量增加,步驟1128。在成功寫入閃存后,CBW扇區(qū)計凝:-故減去,步驟1130。接下來,扇區(qū)計數(shù)被檢查,步驟1132。如果扇區(qū)計數(shù)等于0,寫處理的第一階段終止,若不等于O,則意味著主機(jī)發(fā)送了一個不正確數(shù)量的數(shù)據(jù)。相應(yīng)地,扇區(qū)FIFO被;險查用于判斷是否還有更多的有效數(shù)據(jù),步驟1134。如果沒有,一個超時序列(time-outsequence)被執(zhí)行來標(biāo)志一個異常流程終止,扇區(qū)FIFO也會持續(xù)檢查直到足夠的數(shù)據(jù)可用,步驟1136。如果扇區(qū)FIFO還有更多的可用數(shù)據(jù),扇區(qū)數(shù)量將和塊范圍進(jìn)行比較,如圖1116所示。圖17為顯示本發(fā)明圖14中寫處理第二階段的執(zhí)行方法的流程圖。首先,寫和讀指針的指針值進(jìn)行比較,步驟1202?;厥誇IFO的讀指針指向的入口扇區(qū)區(qū)域指示了一個需要被復(fù)制到新的物理塊地址來維持寫查詢表中連續(xù)性的有效扇區(qū)。當(dāng)復(fù)制完成,讀查詢表被更新以區(qū)別于寫查詢表,步驟1204。接下來,讀指針指向的扇區(qū)數(shù)量被;險查,步驟1206。如果扇區(qū)數(shù)量為1,扇區(qū)中的數(shù)據(jù)被復(fù)制到新塊,步驟1208。然后,查詢表中的扇區(qū)數(shù)量被置為l,步驟1210。接下來,寫查詢表扇區(qū)區(qū)域被更新,步驟1212。然后,讀查詢表扇區(qū)區(qū)域被更新,步驟1214。接下來,扇區(qū)數(shù)量增加。返回步驟1206,如果扇區(qū)數(shù)量不為l,則扇區(qū)數(shù)量增加,步驟1216。扇區(qū)數(shù)量一達(dá)到塊范圍,扇區(qū)復(fù)制處理就會完成。扇區(qū)數(shù)量和塊范圍進(jìn)行比較,步驟1218。如果扇區(qū)數(shù)量匹配塊的范圍,讀指針增加,步驟1220。接下來,讀指針和寫指針進(jìn)行比較,步驟1202。如果在步驟1218中扇區(qū)數(shù)量不匹配塊范圍,則讀指針指向的扇區(qū)數(shù)量被檢查,步驟1206。圖18為顯示本發(fā)明圖14中讀處理執(zhí)行方法的流程圖。首先,CBW被接收并被識別為讀請求,并且CBW的邏輯塊地址和扇區(qū)計數(shù)被載入,步驟1302。接下來,寫查詢表的邏輯塊地址被轉(zhuǎn)換到一個對應(yīng)的物理塊地址和扇區(qū)數(shù)量,步驟1304。然后,扇區(qū)區(qū)域位被檢查,步驟1306。如果扇區(qū)區(qū)域位等于l,數(shù)據(jù)被讀取,扇區(qū)計數(shù)減少,扇區(qū)數(shù)量增加,為下一個讀處理做準(zhǔn)備,步驟130S。如果扇區(qū)區(qū)域位不等于l,例如等于O,讀查詢表的邏輯塊地址被轉(zhuǎn)換為相應(yīng)的物理塊地址,步驟1309。然后數(shù)據(jù)被讀取,扇區(qū)計數(shù)減少,扇區(qū)數(shù)量增加,步驟1308。接下來完成一個ECC計算,步驟1310。然后ECC結(jié)果用于和閃存?zhèn)溆脜^(qū)域讀出值進(jìn)行比較,步驟1312。如果這些值相同,扇區(qū)計數(shù)被檢查,步驟1314。若值不同,將進(jìn)行一個ECC糾正,步驟1316,然后和步驟1314一樣,扇區(qū)計數(shù)被斥企查。如果扇區(qū)計數(shù)接近O,如等于0,讀處理結(jié)束。如果扇區(qū)計數(shù)不接近O,塊范圍也會被檢查,步驟1317。如果扇區(qū)數(shù)量不匹配塊的范圍,讀查詢表中的邏輯塊地址增加,步驟1320。然后讀查詢表更新為正確的扇區(qū)數(shù)量位置,步驟1318。寫處理第一階段之后立即執(zhí)行一個讀處理。讀處理比之前的寫處理的第二階段擁有更高的優(yōu)先權(quán),這樣可以保證閃存系統(tǒng)的最佳反映。讀處理比寫處理要快得多,并且讀處理也不會導(dǎo)致壞塊情況(僅在寫處理和擦除操作時才可能發(fā)生)。無論何時扇區(qū)FIFO中內(nèi)容是可用的,讀處理區(qū)別于磁盤緩存功能,這種情況僅在當(dāng)讀查詢表中邏輯塊地址和前一個寫查詢表的邏輯塊地址匹配時才可能發(fā)生。磁盤緩存概念是從硬磁盤概念中借用并應(yīng)用到d、容量閃存存儲器中。這種特性通常被禁用來節(jié)省緩存費用。圖19為顯示本發(fā)明圖14中執(zhí)行回收操作方法的流程圖。首先,回收FIFO被檢查,步驟1402。若回收FIFO為空,則回收操作結(jié)束。若回收FIFO非空,讀指針2被檢查,步驟1404,這樣的情況下就會發(fā)生后臺擦除操作。一旦擦除成功,為另一個有效塊再編程檢查操作的讀指針1增力口,這兩個讀指針都不會超過寫指針。盡管如此,如果兩個讀指針被執(zhí)行后寫指針可能回到它的原起始位置。如果讀指針2超過寫指針位置,回收操作被終結(jié)。如果讀指針2沒有超過寫指針,物理使用表中對應(yīng)的位被清空(即0),步驟1406,顯示了物理塊現(xiàn)在可用于再編程。然后,讀指針2定位到指向要被擦除的塊,步驟1408。接下來,讀指針2在成功擦除后增加為下次寫地址檢查操作,步驟1410。為回收FIFO進(jìn)行指針比較,可通過向?qū)懞妥x指針?biāo)饕僭黾右粋€或多個位來完成。例如,如果回收FIFO含有8個PBA入口,4個位而不是三個位將用于指針。寫指針將從0增加到7并回到0。寫指針值應(yīng)該總是等于或大于讀指針。當(dāng)它們相等時,意味著回收FIFO為空?;厥誇IFO的深度,即入口數(shù)量會影響行復(fù)制速度和擦除速度之間的平衡,因此太少的入口會使得回收FIFO更加不理想。本發(fā)明閃存控制器可以完成多塊數(shù)據(jù)存取。傳統(tǒng)的閃存設(shè)備擁有一個內(nèi)建的512字節(jié)的寄存器,寫入閃存的數(shù)據(jù)必須行寫入到寄存器中然后寫入到閃存單元中。傳統(tǒng)的閃存控制器和他內(nèi)建的固件一起控制閃存的存取周期。傳統(tǒng)的閃存控制器每次傳輸一個單獨塊(512字節(jié))數(shù)據(jù)到閃存的一個頁寄存器中,一旦512的頁寄存器被填滿則不能進(jìn)行其他對閃存的存取。因此,傳統(tǒng)的使用單塊數(shù)據(jù)存取法的閃存控制器,限制了閃存的性能。根據(jù)本發(fā)明,閃存控制器使用2K或更大的頁寄存器。本發(fā)明的閃存控制器是可以同時發(fā)送多塊數(shù)據(jù)到閃存中填滿頁寄存器的多塊存取控制器。這樣極大地提高了數(shù)據(jù)傳輸?shù)男阅?。比起傳統(tǒng)的一次只能傳輸一個塊的單芯片數(shù)據(jù)傳輸控制器,使用本發(fā)明的閃存控制器的數(shù)據(jù)傳輸性能得到了極大的改善。本發(fā)明閃存控制器也提供了多通道處理來改善閃存系統(tǒng)的性能。雙通道提供一個第二通道,或所謂的"高速公路",來執(zhí)行閃存設(shè)備和閃存控制器之間的處理。傳統(tǒng)的閃存控制器使用一個單獨的存儲器總線可以連接到一個或更多的閃存設(shè)備。盡管如此,傳統(tǒng)的架構(gòu)限制了傳統(tǒng)閃存控制器的性能。根據(jù)本發(fā)明,系統(tǒng)使用了至少2個存儲器總線集。每個存儲器總線連接到各自的閃存設(shè)備。閃存控制器可以一起或單獨存取這些閃存設(shè)備。結(jié)果就是,雙通道處理;故執(zhí)行的速度可以翻一倍。此外,每個存儲器總線還可以擴(kuò)展存儲器總線集。本發(fā)明閃存控制器也可以進(jìn)行交替操作。傳統(tǒng)閃存控制器使用一個帶有一個或多個閃存設(shè)備的單獨閃存總線組。盡管如此,傳統(tǒng)閃存控制器每次僅可以訪問一個閃存設(shè)備。盡管如此,傳統(tǒng)的架構(gòu)限制了傳統(tǒng)閃存控制器的性能。根據(jù)本發(fā)明,至少需要用到一組或兩組額外的閃存控制器信號(例如單獨的芯片使能和繁忙信號)。此外,一個共享存儲器總線,至少有2個閃存設(shè)備連接到該共享存儲器總線。當(dāng)另外一個單元正忙于讀或?qū)憰r本發(fā)明閃存控制器可以存取一個閃存設(shè)備。相應(yīng)地,本發(fā)明閃存控制器可以完全利用共享存儲器總線,因此極大地提高了性能。此外,閃存控制器的引腳數(shù)量也通過共享存儲器輸入輸出和控制信號而得到減少,這樣也減少了制造閃存設(shè)備的成本。根據(jù)本發(fā)明,可以把集成多塊訪問、多單元交替訪問以及多通道操作集成到一個存儲器存期周期單芯片來達(dá)到性能最優(yōu)化。根據(jù)本發(fā)明,閃存控制器可以使用USB,也可以使用PCIE插入和插座系統(tǒng)。當(dāng)然,閃存控制器可以在其他包括SD、MMC、MS、CF、IDE和SATA等插入和插座系統(tǒng)的實施方式中。根據(jù)本文揭示的系統(tǒng)和方法,本發(fā)明提供了許多的優(yōu)點。如把閃存管理和主機(jī)其他智能從主機(jī)轉(zhuǎn)移到閃存控制器,以便主機(jī)系統(tǒng)不需要閃存的配置信息就可以和閃存控制器互相影響;例如閃存控制器提供LBA-TO-PBA轉(zhuǎn)換,舊的扇區(qū)回收和平均讀寫等,此外,回收操作還是在后臺被執(zhí)行的;此外還排除了閃存專用定義包和標(biāo)志;此外閃存控制器提供了多塊數(shù)據(jù)存取、多通道處理和多單元交替訪問等。因此,在保持對USB和ASIC架構(gòu)兼容性的同時,閃存的寫入和讀取數(shù)據(jù)得到了極大的增長。本發(fā)明揭示了一個用于控制閃存卡的系統(tǒng)和方法。該系統(tǒng)和方法由一個接收至少一個來自主機(jī)的請求的處理器、一個由查詢表和物理使用表組成的索引。該索引將來自主機(jī)的邏輯塊地址轉(zhuǎn)換為閃存的物理塊地址,該索引還包含了作為閃存配置的信息。處理器可以利用該索引來判斷閃存中可用于編程、再編程和讀取的扇區(qū)。閃存控制器此外還包括一個回收FIFO,用于回收舊扇區(qū)使得它們可用于再編程。回收才喿作包含了復(fù)制和擦除操作,這都是在后臺完成的,因此對主機(jī)系統(tǒng)來說都是不可見的。相應(yīng)地,管理閃存和相關(guān)智能由閃存控制器而不是主機(jī)系統(tǒng)完成,結(jié)果,主機(jī)系統(tǒng)不需要閃存的配置信息就可以和閃存控制器互相影響。因此在保持對USB和ASIC架構(gòu)兼容性的同時,閃存的寫入和讀取數(shù)據(jù)得到了極大的增長。盡管本文上下文描述的本發(fā)明所述為一個帶或不帶指紋驗證功能的電子數(shù)據(jù)閃存卡,但是本發(fā)明可能在仍然保留它的精神和范圍內(nèi)應(yīng)用于其他類型的存儲器系統(tǒng)。此外,盡管本文上下文描述的本發(fā)明所述為USB標(biāo)準(zhǔn),但是本發(fā)明可能在仍然保留它的精神和范圍內(nèi)應(yīng)用于其他類型標(biāo)準(zhǔn)。因此,本發(fā)明的實施方式可以通過硬件、軟件、包含程序指令的計算機(jī)可讀々某體或者它們的復(fù)合體。因此,還可以從本文的精神和附加的權(quán)利要求出發(fā)通過對文中的一個普通的技能的進(jìn)行多種多樣的修改。權(quán)利要求1.一種適配可建立通訊連接的主機(jī)訪問的電子數(shù)據(jù)閃存卡,其中,電子數(shù)據(jù)閃存卡包括卡體;設(shè)于卡體上的閃存設(shè)備,閃存設(shè)備包含有大量用于存儲數(shù)據(jù)文件的非易失性存儲單元;一設(shè)于卡體上用于和主機(jī)建立通訊的輸入輸出接口電路;和一設(shè)于卡體上,并電性連接所述閃存設(shè)備和所述輸入輸出接口電路的閃存控制器,其中,閃存控制器包括(a)檢測裝置,用于根據(jù)閃存檢測算法代碼,檢測閃存設(shè)備是否為閃存控制器的處理單元所支持;(b)索引,存儲大量邏輯塊地址和物理塊地址,用于將各所述物理塊地址指派給對應(yīng)的所述邏輯塊地址,各物理塊地址對應(yīng)閃存設(shè)備的相關(guān)大量存儲單元;(c)可選操作方式之一編程模式,在該模式下,閃存控制器激活所述的輸入輸出接口電路,接收來自主機(jī)的數(shù)據(jù)文件,并通過一個主機(jī)發(fā)送給閃存控制器的寫命令將該數(shù)據(jù)文件存入所述閃存設(shè)備關(guān)聯(lián)到第一邏輯塊地址的第一物理塊地址中;數(shù)據(jù)恢復(fù)模式,在該模式下,所述閃存控制器接收來自主機(jī)的包含第一邏輯塊地址的讀命令,并激活所述輸入輸出接口電路來傳輸從第一物理塊地址讀取到主機(jī)的數(shù)據(jù)文件;和數(shù)據(jù)復(fù)位模式,在該模式下,數(shù)據(jù)文件從閃存設(shè)備中擦除。2.如權(quán)利要求1所述的電子數(shù)據(jù)閃存卡,其中,索引包括至少一個用于存儲邏輯塊地址和對應(yīng)物理塊地址的查詢表;其中,閃存控制器還包括一個判斷邏輯,包含有將各所述物理塊地址指派給對應(yīng)所述邏輯塊地址的裝置。3.如權(quán)利要求2所述的電子數(shù)據(jù)閃存卡,其中,索引包括一寫查詢表和一讀查詢表,其中,閃存控制器還包括一個在對應(yīng)編程模式后,更新讀查詢表的裝置。4.如權(quán)利要求3所述的電子數(shù)據(jù)閃存卡,其中,索引還包括一物理使用表,用于執(zhí)行物理扇區(qū)映射,和提供一指示閃存設(shè)備已編程扇區(qū)的位圖。5.如權(quán)利要求4所述的電子數(shù)據(jù)閃存卡,其中,寫查詢表、讀查詢表和物理使用表包括有高性能易失性閃存,如SRAM。6.如權(quán)利要求1所述的電子數(shù)據(jù)閃存卡,其中,閃存控制器還包括一先進(jìn)先出單元,用于將數(shù)據(jù)文件寫入閃存設(shè)備之前,暫存至少一部分?jǐn)?shù)據(jù)文件。7.如權(quán)利要求1所述的電子數(shù)據(jù)閃存卡,其中,閃存控制器還包括一第二先進(jìn)先出單元,用于回收閃存設(shè)備的廢舊扇區(qū)。8.如權(quán)利要求1所述的電子數(shù)據(jù)閃存卡,其中,閃存控制器還包括一通過SCSI協(xié)議接入閃存設(shè)備的裝置。9.如權(quán)利要求1所述的電子數(shù)據(jù)閃存卡,其中,輸入輸出接口電路包含一串行總線接口電路,其中,串行總線接口電路包括有利用BOT協(xié)議傳輸所述數(shù)據(jù)的裝置。10.如權(quán)利要求1所述的電子數(shù)據(jù)閃存卡,其中,輸入輸出接口電路包含SD接口電路、MMC接口電路、CF接口電路、MS接口電路、PCI高速接口電路、IDE接口電路、SATA接口電路中的一種。11.如權(quán)利要求1所述的電子數(shù)據(jù)閃存卡,其中,閃存設(shè)備包括第一閃存設(shè)備和第二閃存設(shè)備,和其中,閃存控制器包括支持雙通道平行訪問和交替訪問方式中至少一種方式來訪問第一閃存設(shè)備和第二閃存設(shè)備的裝置。12.如權(quán)利要求1所述的電子數(shù)據(jù)閃存卡,其中,閃存控制器包括8051、8052、80286、RISC、ARM、MIPS的一種和一數(shù)字信號處理器。全文摘要本發(fā)明公開了一種計算機(jī)可讀電子數(shù)據(jù)閃存卡,包含一連接到用于存儲數(shù)據(jù)文件的閃存設(shè)備的處理單元,一可激活以和主機(jī)建立通訊的輸入輸出接口電路,在一實施方式中,電子數(shù)據(jù)閃存卡采用一USB輸入輸出接口電路和主機(jī)通訊。閃存控制器包括一索引,用于將主機(jī)發(fā)送的邏輯地址轉(zhuǎn)換為閃存設(shè)備對應(yīng)扇區(qū)的物理地址。索引通過涉及存儲于閃存設(shè)備的各種查詢表值和有效數(shù)據(jù)的判斷邏輯控制。閃存控制器還包括一先進(jìn)先出(FIFO)單元,用于在后臺處理中,回收閃存設(shè)備的廢舊扇區(qū)使它們可重新編寫。文檔編號G06F3/06GK101097551SQ20071013721公開日2008年1月2日申請日期2007年7月11日優(yōu)先權(quán)日2006年8月23日發(fā)明者俞一康,李中和,李威若,沈明祥,馬治剛申請人:晶天電子(深圳)有限公司