亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

針對(duì)具有可擦除/可重寫存儲(chǔ)器使用帶有主機(jī)裝置的一次或數(shù)次可編程存儲(chǔ)器的方法及裝置的制作方法

文檔序號(hào):6656644閱讀:204來源:國(guó)知局

專利名稱::針對(duì)具有可擦除/可重寫存儲(chǔ)器使用帶有主機(jī)裝置的一次或數(shù)次可編程存儲(chǔ)器的方法及裝置的制作方法
技術(shù)領(lǐng)域
:本發(fā)明涉及使用一次或數(shù)次可編程存儲(chǔ)器的方法和裝置,其中一次或數(shù)次可編程存儲(chǔ)器能與現(xiàn)有消費(fèi)者電子裝置一起工作而不需要一固件升級(jí),從而提供逆向兼容性且同時(shí)將用戶沖擊減到最小。技術(shù)背景可以得到模塊化、便攜式、非易失性存儲(chǔ)器裝置,所述存儲(chǔ)器裝置可易于連接到主機(jī)裝置且與主機(jī)裝置斷開,所述主機(jī)裝置例如數(shù)碼相機(jī)、數(shù)碼錄音機(jī)和個(gè)人電腦。這些裝置中使用的傳統(tǒng)存儲(chǔ)器(例如閃存卡)是可重寫的,從而使得可出于系統(tǒng)或用戶目的而擦除和重寫存儲(chǔ)器地址。低成本存儲(chǔ)器技術(shù)(一次可編程的(OTP)或數(shù)次可編程的(FTP))的創(chuàng)造使得主機(jī)裝置具有新的使用模式,其類似于模擬相機(jī)中的膠巻(可簡(jiǎn)單地照相并印出相片)并同時(shí)節(jié)約作為"底片"的低成本卡。理想地,能將此低成本卡用在標(biāo)準(zhǔn)閃光相機(jī)中,但技術(shù)并不一定兼容,因?yàn)楸銛y式裝置通常使用需要可擦除的系統(tǒng)結(jié)構(gòu)的DOSFAT12/16文件系統(tǒng)。使用針對(duì)OTP或FTP存儲(chǔ)器技術(shù)定制的文件系統(tǒng)來更新裝置中的固件可以解決這個(gè)問題,但這會(huì)限制具有軟件升級(jí)的新型相機(jī)的整個(gè)可達(dá)市場(chǎng),不然就會(huì)要求用戶使用所屬領(lǐng)域中的軟件來升級(jí)其現(xiàn)有相機(jī)。因此,需要建立一種硬件控制器解決方案,其允許終端用戶相對(duì)無縫地將OTP或FTP存儲(chǔ)卡用在現(xiàn)有相機(jī)中一一逆向兼容控制器(BCC)?,F(xiàn)將參考附圖來描述優(yōu)選實(shí)施例。
發(fā)明內(nèi)容無圖1是優(yōu)選實(shí)施例的主機(jī)裝置和存儲(chǔ)器裝置的方塊圖。圖2是優(yōu)選實(shí)施例的控制器的方塊圖。圖3是優(yōu)選實(shí)施例的存儲(chǔ)器圖。圖4是說明優(yōu)選實(shí)施例的智能過濾邏輯操作的流程圖。圖5是優(yōu)選實(shí)施例的32字節(jié)文件列表結(jié)構(gòu)的圖。圖6是一實(shí)施例的FAT表的圖。圖7是與圖6的FAT表相關(guān)聯(lián)的文件列表的實(shí)例。圖8和9說明優(yōu)選實(shí)施例的智能過濾操作。圖IO是一實(shí)施例的用于在邊帶區(qū)域存儲(chǔ)重映射信息時(shí)讀取數(shù)據(jù)的方法的流程圖。圖11是優(yōu)選實(shí)施例的動(dòng)態(tài)重映射分配方法的流程圖。圖12是優(yōu)選實(shí)施例的用于重映射實(shí)例中的存儲(chǔ)器圖。圖13是優(yōu)選實(shí)施例的奇偶檢驗(yàn)位布局的說明。具體實(shí)施方式系統(tǒng)概述本文描述的實(shí)施例可用于使得一次或數(shù)次可編程的存儲(chǔ)器能與現(xiàn)有消費(fèi)者電子裝置(例如與快閃---種可擦除、非易失性存儲(chǔ)器一起工作的那些裝置)一起工作而不需要固件升級(jí),從而提供逆向兼容性且同時(shí)將用戶沖擊減到最小。因此,這些實(shí)施例是一種將一次或數(shù)次可編程存儲(chǔ)器與具有閃存卡插槽的現(xiàn)有消費(fèi)者電子裝置橋接的可行方式。這些實(shí)施例還允許設(shè)計(jì)出未來消費(fèi)者電子裝置而不必為了包括針對(duì)一次或數(shù)次可編程存儲(chǔ)器定制的文件系統(tǒng)來更新固件。現(xiàn)在轉(zhuǎn)向附圖,圖1是優(yōu)選實(shí)施例的主機(jī)裝置5和存儲(chǔ)器裝置10的方塊圖。主機(jī)裝置5和存儲(chǔ)器裝罝10兩者均包含電連接件,所述電連接件彼此配對(duì)以將主機(jī)裝置5與存儲(chǔ)器裝置10電耦合。如本文中使用,術(shù)語"耦合"意味著通過一個(gè)或一個(gè)以上介入組件而直接耦合或間接耦合。所述主機(jī)裝置5可采取消費(fèi)者電子裝置的形式,例如(但不限于)數(shù)字靜態(tài)或移動(dòng)相機(jī)、個(gè)人數(shù)字助理、蜂窩式電話、數(shù)字音頻播放器或個(gè)人計(jì)算機(jī)(例如具有USB讀取器/寫入器或PCMCIA卡適配器的那些計(jì)算機(jī))。在此實(shí)施例中,主機(jī)裝置5含有多次寫入文件系統(tǒng)7,例如DOS-FAT文件系統(tǒng)。存儲(chǔ)器裝置10可采用模塊化小型手持單元的形式,例如存儲(chǔ)卡或棒。存儲(chǔ)器裝置10包含控制器20和一次寫入記憶體陣列30。圖2是控制器20的方框圖。如圖2所示,控制器20包含分別與前端總線協(xié)議邏輯36和后端總線協(xié)議邏輯38耦合的前端總線32和后端總線34。所述前端總線協(xié)議邏輯36可經(jīng)配置為多媒體、安全數(shù)碼卡、存儲(chǔ)棒、壓縮快閃、智能媒體、xD、USB、HS-MMC或多種可用的便攜式存儲(chǔ)媒體中的任一種。所述后端總線協(xié)議邏輯38可經(jīng)配置為NAND快閃、NOR快閃或任何其它專有或公共存儲(chǔ)器接口。控制器20還包含兩個(gè)頁面寄存器40、42(頁面寄存器O和頁面寄存器1)、智能過濾邏輯44、重映射邏輯46和智能ECC邏輯48。雖然出于簡(jiǎn)單起見圖2中未展示,但存儲(chǔ)器裝置10還可包含計(jì)時(shí)網(wǎng)絡(luò)和其它"膠合"邏輯。如下文詳細(xì)描述,控制器20允許存儲(chǔ)器裝置IO與使用多次寫入文件系統(tǒng)的主機(jī)裝置逆向兼容。因此,本文中有時(shí)將控制器20稱為"逆向兼容控制器"或"BBC"??刂破?0的優(yōu)選實(shí)施方案是使用與標(biāo)準(zhǔn)組合邏輯組合的有限狀態(tài)機(jī)(Mealy和/或Moore)的ASIC。然而,控制器20可以各種其它形式來實(shí)施,例如(但不限于)具有固件的微控制器或微處理器。此外,盡管在此實(shí)施例中控制器20通過后端總線34而與存儲(chǔ)器陣列30分離,但可將所述設(shè)計(jì)集成為單個(gè)晶粒以節(jié)省成本。在極大程度上,本實(shí)施例中的控制器20的設(shè)計(jì)非常類似于用于可重寫存儲(chǔ)器技術(shù)的控制器。差異的例子在于此控制器20優(yōu)選地不需要任何損耗均衡或其它與擦除非易失性存儲(chǔ)器相關(guān)聯(lián)的邏輯。盡管此處展現(xiàn)的設(shè)計(jì)可包括這些額外塊和功能,但其可能不是成本最佳的。因此,我們可能希望將它們排除在外。類似地,經(jīng)設(shè)計(jì)以與OTP或FTP存儲(chǔ)器一起工作的極低成本控制器可能不需要一個(gè)以上頁面寄存器、重映射邏輯或智能過濾邏輯,所述OTP或FTP存儲(chǔ)器使用新的軟件文件系統(tǒng)以避免兼容性問題。一次寫入存儲(chǔ)器陣列30包含復(fù)數(shù)個(gè)現(xiàn)場(chǎng)可編程一次寫入存儲(chǔ)器單元?,F(xiàn)場(chǎng)可編程一次寫入存儲(chǔ)器單元是制作為初始未編程數(shù)字狀態(tài)且可在制作后某時(shí)切換到替代性已編程數(shù)字狀態(tài)的存儲(chǔ)器單元。舉例來說,最初未編程數(shù)字狀態(tài)可被識(shí)別為邏輯1(或邏輯O)狀態(tài),且已編程數(shù)字狀態(tài)可被識(shí)別為邏輯O(或邏輯l)狀態(tài)。因?yàn)榇鎯?chǔ)器單元是一次寫入的,所以存儲(chǔ)位置的最初末編程數(shù)字狀態(tài)(例如,邏輯1狀態(tài))一旦切換到已編程數(shù)字狀態(tài)(例如,邏輯O狀態(tài))就不能恢復(fù)了。代替作為一次可編程(即,一次寫入)存儲(chǔ)器陣列,存儲(chǔ)器陣列30可采取數(shù)次可編程(FTP)存儲(chǔ)器陣列的形式,所述FTP存儲(chǔ)器陣列是可以一次以上但沒有多次寫入存儲(chǔ)器陣列那么多次被寫入的存儲(chǔ)器陣列。同樣,所述存儲(chǔ)器裝置IO可含有額外的存儲(chǔ)器陣列(一次寫入、數(shù)次可編程或多次寫入)。一次寫入存儲(chǔ)器陣列30可采用任何適合的形式,例如固態(tài)存儲(chǔ)器裝置(即,響應(yīng)于電子讀取和寫入信號(hào)的記憶體裝置)、磁存儲(chǔ)裝置(例如硬盤驅(qū)動(dòng)器)或光存儲(chǔ)裝置(例如CD或DVD)。當(dāng)具有固態(tài)存儲(chǔ)器單元的形式時(shí),可將存儲(chǔ)器陣列30中的存儲(chǔ)器單元組織成二維或三維形式。在一個(gè)優(yōu)選實(shí)施例中,存儲(chǔ)器陣列30是三維陣列,例如Johnson等人的第6,034,882號(hào)美國(guó)專利、Zhang等人的第5,835,396號(hào)美國(guó)專利和第09/560,626號(hào)美國(guó)專利申請(qǐng)案中所述的陣列,所有這些專利或?qū)@暾?qǐng)案以引用的方式并入本文中。為了說明這些實(shí)施例,DOSFAT文件系統(tǒng)(例如Windows操作系統(tǒng))將用作多次寫入文件系統(tǒng)7的實(shí)例。應(yīng)注意,這些實(shí)施例可與其它類型的多次寫入文件系統(tǒng)一起使用。再次轉(zhuǎn)向附圖,圖3是典型的基于FAT12/16的存儲(chǔ)卡的存儲(chǔ)器圖,其展示多個(gè)文件系統(tǒng)結(jié)構(gòu)。如本文中使用,"文件系統(tǒng)結(jié)構(gòu)"指的是描述存儲(chǔ)器中的分區(qū)、所述分區(qū)內(nèi)的存儲(chǔ)空間和/或文件系統(tǒng)能或不能在所述分區(qū)中使用的命令類型的任何數(shù)據(jù)。文件系統(tǒng)結(jié)構(gòu)的實(shí)例包括(但不限于)主啟動(dòng)記錄、分區(qū)啟動(dòng)記錄、文件分配表("FAT"或"FAT表")、根目錄和子目錄。所述主啟動(dòng)記錄(MBC)用于存儲(chǔ)所述卡(即,存儲(chǔ)器裝置IO)的啟動(dòng)信息以及每個(gè)邏輯分區(qū)的開始位置。大多數(shù)存儲(chǔ)卡(例如此處所示的一者)只含有一個(gè)邏輯分區(qū)。在此實(shí)例中,分區(qū)啟動(dòng)記錄(PBR)含有例如叢集大小、叢集數(shù)目、分區(qū)類型、分區(qū)名稱等信息,在地址Ox4000處丌始。FAT1對(duì)應(yīng)FAT表一,所述FAT表一含有卡IO上每個(gè)文件的叢集數(shù)目鏈接列表、目錄和其它信息。FAT2對(duì)應(yīng)FAT表二。最后,根目錄和文件數(shù)據(jù)區(qū)域在物理地址0xC200處開始。這些區(qū)域被劃分成若干叢集,對(duì)應(yīng)于每個(gè)FAT表中的叢集數(shù)目。出于解釋本實(shí)例目的,假設(shè)每個(gè)叢集正好是4KB大小。注意,這只是FAT文件系統(tǒng)的一實(shí)例且絕不希望限制本發(fā)明。每個(gè)結(jié)構(gòu)的不同位置、不同叢集大小和甚至不同文件系統(tǒng)皆可與同此描述的實(shí)施例相關(guān)聯(lián)?,F(xiàn)描述了系統(tǒng)的一般組件,將論述硬件控制器20的智能過濾邏輯44、重映射邏輯46和智能ECC邏輯48,以說明可如何使用這些邏輯塊來允許針對(duì)可擦除快閃存儲(chǔ)器而設(shè)計(jì)的主機(jī)裝置幾乎無縫地使用OTP存儲(chǔ)器。這些邏輯塊利用這樣的事實(shí),即許多現(xiàn)有主機(jī)裝置不發(fā)送擦除命令而是依靠控制器20來執(zhí)行任何擦管理(例如,損耗均衡和垃圾收集)。主機(jī)裝置僅希望在隨后時(shí)間處讀取一地址時(shí)展現(xiàn)寫入到所述地址的最近數(shù)據(jù)。如上文提及,控制器能使用這些邏輯塊中的一些或全部,且權(quán)利要求書中不需要使用所有三個(gè)邏輯塊,除非那里明確敘述。智能過濾邏輯44智能過濾邏輯44允許控制器20基于所需用戶行為而智能地修改主機(jī)操作。一種形式的智能過濾邏輯44執(zhí)行先讀后寫操作以將請(qǐng)求寫入到一地址處的數(shù)據(jù)與先前寫入到所述地址的數(shù)據(jù)進(jìn)行比較(即,將"新"數(shù)據(jù)與"舊"數(shù)據(jù)進(jìn)行比較)。在最簡(jiǎn)單的情況下,智能過濾邏輯44能在先前寫入的數(shù)據(jù)存在任何修改時(shí)執(zhí)行重映射操作,但這可能導(dǎo)致不良用戶模型。通過添加復(fù)雜性并智能地查看數(shù)據(jù)中的差異,控制器20可推斷主機(jī)裝置5正試圖做什么且可接著選擇執(zhí)行以下操作中的一者將新數(shù)據(jù)寫入到所述地址;"假寫入"數(shù)據(jù)(即,告知主機(jī)裝置5成功地執(zhí)行了寫入操作,而事實(shí)上未寫入任何內(nèi)容);不允許寫入并產(chǎn)生卡錯(cuò)誤;或執(zhí)行重映射操作。這在圖4的流程圖中說明。如此圖中所示,逆向兼容控制器20接收到寫入操作(行為65)。如果數(shù)據(jù)被寫入到空白頁面或如果正在附加數(shù)據(jù)(行為65),那么控制器20根據(jù)主機(jī)裝置5請(qǐng)求而寫入數(shù)據(jù)(行為70)。如果正在更新"最后訪問的"字段或試圖使FAT表"歸零",那么控制器20執(zhí)行"假寫入"(行為80)。如果寫入是針對(duì)PBR的或如果存在重映射帶沖突(行為85),那么控制器20產(chǎn)生卡錯(cuò)誤(行為90)。響應(yīng)于任何其它寫入操作(行為95),控制器20執(zhí)行重映射操作。下文將更詳細(xì)地描述這些分支。重要的是需要注意到,智能過濾邏輯44可執(zhí)行所述流程圖中展示的所有四個(gè)分支、少于所有四個(gè)分支或未展示的額外分支。如圖4說明,智能過濾邏輯44優(yōu)選地依據(jù)正寫入數(shù)據(jù)的地方來不同地執(zhí)行。因此,優(yōu)選的是,智能過濾邏輯44不但監(jiān)視新數(shù)據(jù)也監(jiān)視主機(jī)所請(qǐng)求的地址。舉例來說,適于寫入到FAT表的過濾可不同于適于寫入到用戶數(shù)據(jù)區(qū)域的過濾。因此,控制器20優(yōu)選地得知卡10上FAT表和其它文件系統(tǒng)結(jié)構(gòu)的地址。這可通過將這些地址變成靜態(tài)并硬編碼到邏輯中,通過在啟動(dòng)時(shí)讓控制器20讀取并解譯MBR和PBR,或通過將地址保存在通電時(shí)提供各種配置數(shù)據(jù)的"魔頁"中。為了全面理解智能過濾,首先需要了解用戶能對(duì)存儲(chǔ)器裝置執(zhí)行的操作以及如何將其轉(zhuǎn)譯成操作文件系統(tǒng)結(jié)構(gòu)和數(shù)據(jù)的命令。首先,我們描述在用戶照相、復(fù)制文件、保存新文件或?qū)⑽募苿?dòng)到存儲(chǔ)卡上的情況下發(fā)生了什么。雖然這些操作可隨著不同的裝置而有所不同,但其均符合一般趨勢(shì)。首先,主機(jī)裝置將讀取所述FAT表的一者或兩者以確定所述卡上哪里有可用的空閑空間。此空閑空間可在FAT16文件叢集中表示為0x0000。接著,主機(jī)將把新的32字節(jié)文件列表的最初26字節(jié)寫入到適當(dāng)目錄叢集中。此32字節(jié)結(jié)構(gòu)的存儲(chǔ)器圖可參見圖5。接下來,主機(jī)通過寫入鏈接叢集列表而將用于文件的存儲(chǔ)器分配到FAT表中。在存儲(chǔ)器已被分配之后,主機(jī)將把文件數(shù)據(jù)寫入到適當(dāng)叢集。注意,可按任何次序來進(jìn)行此分配和寫入,且也可將其分開以使得每次分配單個(gè)叢集和數(shù)據(jù)寫入。在寫入了所有數(shù)據(jù)之后,最后六字節(jié)被寫入到文件列表中以陳述起始叢集編號(hào)和文件大小。在圖6和7中可看到這樣的實(shí)例。我們假設(shè)主機(jī)正將File2.jpg寫入到存儲(chǔ)器中的未用空間。首先會(huì)將文件名稱、屬性信息等寫入到恰當(dāng)目錄中。接著,會(huì)針對(duì)所述文件來更新FAT表,此處通過將0x0A寫入到叢集0x09中來開始,發(fā)信號(hào)通知下個(gè)叢集在叢集A中。直到文件末端被發(fā)信號(hào)通知已將OxFF寫入到叢集Oxll中,才寫入鏈接列表。主機(jī)接著將文件數(shù)據(jù)寫入到所述卡的新分配叢集中(再次,可將此操作分成每次分配單個(gè)叢集直到到達(dá)文件末端為止)。最后,將所述最后六字節(jié)寫入到文件列表,其展示File2.jpg在叢集0x09處開始且大小為45KB。以非常類似于創(chuàng)建新文件的方式來創(chuàng)建新目錄。事實(shí)上,除了目錄屬性位之外,目錄和文件在FAT文件系統(tǒng)實(shí)施方案中是完全相同的。因此,主機(jī)通過首先將目錄名和屬性位寫入到適當(dāng)目錄來創(chuàng)建目錄(在FAT2之后的用戶數(shù)據(jù)區(qū)域開始處定義R00T目錄)。接著,通過將0xFF寫入到FAT表中來分配用于新目錄的叢集。任何新建目錄內(nèi)部是分別指向目錄和其根源的文件"."和("."文件叢集編號(hào)與目錄叢集相同)。在寫入這兩個(gè)文件之后,主機(jī)接著通過將最后六字節(jié)寫入到32字節(jié)列表來完成所述目錄列表。用戶操作的另一實(shí)例是刪除先前寫入到卡的文件?;贔AT的操作系統(tǒng)在用戶刪除時(shí)通常不從卡上擦除文件數(shù)據(jù)或文件名稱。相反地,將字符0xE5寫入到文件列表的首字節(jié),且通過將0x00寫入到所述文件的叢集在FAT表中的位置來而將其去分配。讀取到"E5"作為文件列表中的首字符的任何主機(jī)將知道跳過此文件,因?yàn)樗呀?jīng)被刪除了。通過將正確字符重寫到文件中并再分配最初叢集而提供恢復(fù)文件的機(jī)會(huì)。存儲(chǔ)器中的每個(gè)文件含有32字節(jié)文件條目,其含有以下信息,例如文件名稱;文件屬性,例如只讀、隱藏、目錄、存檔;文件創(chuàng)建日期;文件最后訪問日期;文件大小;和第一叢集條目。為了重命名文件或改變其屬性(例如,隱藏、存檔、只讀),主機(jī)5將僅發(fā)送數(shù)據(jù)寫入命令,其關(guān)于將新文件名稱或?qū)傩晕粚懭氲阶畛趿斜怼R话銇碚f,控制器20允許主機(jī)5通過實(shí)施重映射操作來修改任何這些參數(shù)。然而,控制器可選擇通過在更新文件列表中的"最后訪問日期字段"(圖5中字節(jié)18到19)時(shí)執(zhí)行假寫入來節(jié)省存儲(chǔ)器。此異常事件的原因在于某些主機(jī)(例如MicrosoftWindows)每次讀取文件時(shí)將把新數(shù)據(jù)寫入到此字段,這會(huì)導(dǎo)致使用存儲(chǔ)器的512字節(jié)來進(jìn)行重映射。這是系統(tǒng)在用戶不知道的情況下執(zhí)行寫入操作的實(shí)例。為了避免這種情況,智能過濾邏輯144可選擇不實(shí)施此特別更新。將稍后將在本說明書中更詳細(xì)地論述這些隱藏操作的含意和處理。用戶也可選擇格式化存儲(chǔ)卡。這由主機(jī)裝置以各種方式來執(zhí)行。某些裝置將僅把0寫入到FAT和根目錄,從而"釋放"所有存儲(chǔ)空間。其它主機(jī)將試圖通過用新信息重寫MBR和/或PBR且接著將主機(jī)和根目錄歸零來重格式化卡。其它主機(jī)將執(zhí)行上述操作中的一項(xiàng)或所有,并且將0寫入到整個(gè)卡以確保所有存儲(chǔ)空間被清除。最后,某些主機(jī)將執(zhí)行上述操作中的一項(xiàng)或一項(xiàng)以上,且還使用擦除命令來確保所有數(shù)據(jù)被完全擦除并為新數(shù)據(jù)做好準(zhǔn)備。用戶可嘗試的最終操作是非常廣泛的一一修改現(xiàn)有數(shù)據(jù)。用戶可選擇在相機(jī)上旋轉(zhuǎn)相片,在使用工具改進(jìn)相片顏色或另一變量之后將所述相片重保存到卡上,或許多其它操作中的任一者。主機(jī)裝置可以各種不同方式來執(zhí)行這些操作中的任一者,所述方式從寫入新文件并擦除舊文件到簡(jiǎn)單地用新數(shù)據(jù)蓋寫舊文件的恰當(dāng)叢集。既然我們基本了解了主機(jī)是如何執(zhí)行不同用戶操作的,那么我們可以開始了解智能過濾和它們是如何操作的了。BCC控制器將在接收到大多數(shù)寫入命令時(shí)執(zhí)行先讀后寫(RBW)。優(yōu)選地在從主機(jī)接收到所需寫入地址時(shí)立即讀取所述存儲(chǔ)器裝置。這將實(shí)現(xiàn)性能改進(jìn),因?yàn)榭刂破?0能讀取所需數(shù)據(jù)并將其插入到頁面寄存器1(PR1)42中且同時(shí)主機(jī)10正在發(fā)送移動(dòng)到頁面寄存器0(PRO)44中的新數(shù)據(jù)。關(guān)于此RBW操作的更多細(xì)節(jié)在本文檔稍后的重映射描述中?,F(xiàn)將結(jié)合圖5展示的FAT表來給出智能過濾操作的各種實(shí)例。為了創(chuàng)建新文件或目錄,主機(jī)裝置5將在恰當(dāng)子目錄中寫入新32字節(jié)文件條目并更新FAT表以分配正確的存儲(chǔ)空間。如果主機(jī)裝置5正試圖寫入新文件,其將設(shè)法最可能分別用值0x13和0x14來分配此圖中的最后兩個(gè)叢集。査看圖4中的流程圖,這將對(duì)應(yīng)于"附加數(shù)據(jù)",因?yàn)闆]有任何數(shù)據(jù)正被修改。因此,所述智能過濾邏輯44會(huì)簡(jiǎn)單地將數(shù)據(jù)寫入到最初地址而沒有任何改變。在這一般情況下,控制器20允許主機(jī)裝置5簡(jiǎn)單地用新文件蓋寫空閑空間。然而,在某些情況下,由于先前刪除的緣故所述空間可對(duì)于主機(jī)裝置5來說看起來是空閑的,但是實(shí)際上,存儲(chǔ)器重未被擦除。在這種情況下,智能過濾邏輯44可實(shí)施重映射操作以使得新數(shù)據(jù)取代舊數(shù)據(jù),如下文所述。為了刪除文件,主機(jī)裝置5執(zhí)行兩個(gè)功能。首先,其用"00h"蓋寫FAT表中的文件的叢集指針,以向主機(jī)裝置5展示所述數(shù)據(jù)區(qū)域現(xiàn)在是可用的。在OTP或FTP存儲(chǔ)器的情況下,很可能存儲(chǔ)器不能被擦除,且因此控制器20不會(huì)想要"釋放"存儲(chǔ)44優(yōu)選地永遠(yuǎn)不允許主機(jī)將0x00寫入到先前分配的叢集。此行為在圖4中被稱為"假寫入"。具體地說,控制器20告知主機(jī)裝置5已將0寫入到存儲(chǔ)器,但實(shí)際上不會(huì)進(jìn)行任何寫入。重要的是需要了解到,將O寫入到FAT表中會(huì)讓用戶認(rèn)為在卡上有比實(shí)際上更多的空間是可用的,因此造成不良用戶經(jīng)歷,即在看起來似乎卡上具有較多空間時(shí),卻不能再寫入任何新數(shù)據(jù)。其次,主機(jī)裝置5用"E5h"來蓋寫32字節(jié)文件條目的首字符,向FAT文件系統(tǒng)表明去跳過所述文件。當(dāng)主機(jī)5將寫入命令發(fā)送給控制器20時(shí),控制器20執(zhí)行先讀后寫操作,以實(shí)現(xiàn)先前數(shù)據(jù)和新數(shù)據(jù)的比較。這時(shí),智能過濾邏輯44啟用重映射操作,以用"E5h"來蓋寫原始文件的首字符,如下文所述。FAT表中的智能過濾的最后實(shí)例發(fā)生在所述主機(jī)5試圖通過將除0x00以外的一些內(nèi)容寫入到先前已寫入的叢集來改變數(shù)據(jù)時(shí)。舉例來說,如果修改文件且在長(zhǎng)度上擴(kuò)展所述文件(例如,將數(shù)據(jù)添加到th腿bs.db文件以使其從16KB增長(zhǎng)到24KB),那么可能發(fā)生這種情況。此處,會(huì)用指向新加數(shù)據(jù)的叢集編號(hào)來取代文件末尾標(biāo)記OxFF。在此情況下,會(huì)發(fā)生重映射操作,從而允許主機(jī)5根據(jù)需要來修改數(shù)據(jù)。重要的是需要了解到,由于假寫入操作,在主機(jī)所認(rèn)為的在存儲(chǔ)器中寫入的內(nèi)容與實(shí)際上在存儲(chǔ)器中寫入的內(nèi)容之間存在偏差。在將FAT表高速緩沖存儲(chǔ)在易失性RAM中的主機(jī)系統(tǒng)(例如Windows)中,這意味著對(duì)于單個(gè)操作可施加一個(gè)以上智能過濾。舉例來說,假設(shè)用戶在一個(gè)操作中刪除1MB文件,且BCC20假造FAT表中值1MB的叢集的歸零。接下來,假設(shè)用戶試圖將500KB文件寫入到存儲(chǔ)器30。在此情況下,主機(jī)5將試圖把新文件放在由所述刪除操作釋放的叢集中。因此,其會(huì)寫入新叢集分配且留下剩余叢集OxOO。智能過濾因此必須重映射新文件叢集,且同時(shí)不將先前假造的空間歸零。在圖8和9中可以看到這個(gè)實(shí)例。在時(shí)間0處,假寫入保持卡上的值ll-FF,且在時(shí)間1處,通過重映射操作而將新文件叢集ll-FF寫入到卡上,而也保持14-FF以確??雌饋硭坪鯖]有釋放任何空間。在此實(shí)施例中,用于數(shù)據(jù)區(qū)域的智能過濾不同于在FAT表中的那些??纱鎯?chǔ)在用戶區(qū)域中的數(shù)據(jù)限于32字節(jié)文件/目錄列表和實(shí)際文件數(shù)據(jù)叢集。在最簡(jiǎn)單的情況下,再次,智能過濾可選擇重映射任何正寫入在已被使用過的空間上的數(shù)據(jù)。但是,再次,這會(huì)導(dǎo)致不良使用模型,因?yàn)樵缦忍峒暗碾[藏系統(tǒng)操作會(huì)使用額外存儲(chǔ)空間來進(jìn)行用戶并不留心的重映射。為了避免這些多余的重映射操作,BCC控制器20優(yōu)選地比較頁面寄存器0與頁面寄存器1中的數(shù)據(jù),且如果唯一的改變或多個(gè)改變與特定字段相關(guān)聯(lián)(如圖7所示),那么執(zhí)行假寫入。舉例來說,如果頁面寄存器O中的數(shù)據(jù)與頁面寄存器1中的數(shù)據(jù)完全匹配(只是所述兩個(gè)字節(jié)偏移了18),那么控制器20會(huì)確定主機(jī)5曾試圖更新"最后訪問"字段,且因此會(huì)執(zhí)行假寫入操作。因此,主機(jī)5會(huì)認(rèn)為字段己被更新,但事實(shí)上,并未發(fā)生任何寫入??蓪⒁阎募到y(tǒng)結(jié)構(gòu)字段的任何增量或增量組合應(yīng)用于智能過濾。舉例來說,假定設(shè)計(jì)者確定OTP存儲(chǔ)器應(yīng)不能由用戶修改,且因此將不允許任何重命名或刪除操作。在此情況下,過濾操作可檢測(cè)到對(duì)于字節(jié)O到11的改變,且可執(zhí)行假寫入。另外,假定設(shè)計(jì)者決定重命名是可以的,但不允許隱藏文件。如果用戶試圖重命名文件并改變屬性位,那么智能過濾邏輯44可檢測(cè)到這是針對(duì)適當(dāng)字段而發(fā)生的且可用新名稱來重映射所述數(shù)據(jù)而并不改變屬性位來允許隱藏文件??捎芍悄苓^濾邏輯調(diào)用的最后操作是發(fā)信號(hào)通知錯(cuò)誤。在優(yōu)選實(shí)施例中,這將僅在兩種情形下發(fā)生(1)如果用戶試圖格式化卡10或(2)如果卡10已滿且不能再寫入任何數(shù)據(jù)。為了格式化卡IO,主機(jī)5執(zhí)行至少兩個(gè)操作清除FAT表且用所需格式信息來更新PBR。在此情況下,控制器20檢測(cè)到在FAT表(圖3中地址0x0000-0x4000)上正發(fā)生寫入操作,且將在響應(yīng)主機(jī)命令時(shí)設(shè)置某組錯(cuò)誤位。這些可以是CRC錯(cuò)誤、寫入失敗錯(cuò)誤或適合于卡形式因數(shù)的任何其它狀態(tài)錯(cuò)誤信號(hào)。另外,控制器20可以再次"假造"任何試圖將FAT表歸零的寫入。當(dāng)卡10已滿且不能再寫入任何數(shù)據(jù)時(shí),控制器20能從FAT表或?qū)懭氲刂分袡z測(cè)到卡10已滿。在這個(gè)時(shí)間點(diǎn)上,不能寫入任何額外數(shù)據(jù),且發(fā)信號(hào)通知一錯(cuò)誤。此外,可設(shè)置任何寫入保護(hù)位來發(fā)信號(hào)通知用戶關(guān)于OTP卡10現(xiàn)在己滿且實(shí)質(zhì)上就是ROM??刂破?0可以多種方式來檢測(cè)到卡10已滿,所述方式從檢測(cè)FAT表到發(fā)現(xiàn)重映射尋址與主機(jī)寫入尋址重疊。先前實(shí)例都假設(shè)主機(jī)不發(fā)送實(shí)際擦除命令來刪除文件或系統(tǒng)數(shù)據(jù),而是依賴控制器來執(zhí)行此操作。然而,實(shí)際上,某些主機(jī)確實(shí)具有額外復(fù)雜性,需要所述額外復(fù)雜性來由其自身執(zhí)行擦除操作或使物理和邏輯塊失效并在日后執(zhí)行擦除操作。類似這樣的系統(tǒng)實(shí)例是智能媒體接口,其中所述說明書展示如何在存儲(chǔ)器的邊帶區(qū)域中建立邏輯塊,標(biāo)記無效旗標(biāo),且執(zhí)行其它更復(fù)雜的操作。重要的是需要注意到,智能過濾概念也可容易地應(yīng)用到此類系統(tǒng),其中控制器會(huì)基于舊數(shù)據(jù)與新數(shù)據(jù)的比較來智能地執(zhí)行設(shè)置操作,而不管所述操作是寫入、擦除還是其它命令。總之,當(dāng)觀看主機(jī)可執(zhí)行的每個(gè)個(gè)別操作時(shí),智能過濾邏輯可能看起來相對(duì)較復(fù)雜。然而,通過更仔細(xì)觀察,可以看到所述行為的多種模式。如果控制器20在銷售時(shí)已被預(yù)格式化,那么PBR、FAT表、根目錄和數(shù)據(jù)區(qū)域的地址都是己知的。如果主機(jī)5試圖蓋寫PBR,那么控制器20優(yōu)選地強(qiáng)加卡錯(cuò)誤,因?yàn)檫@將改變卡10的格式。由于存儲(chǔ)器陣列30的OTP/FTP本質(zhì)技術(shù)的緣故,控制器20優(yōu)選地通過將OOh寫入到FAT中先前寫入地址來假造任何試圖釋放卡IO上的空間的寫入。類似地,可假造針對(duì)例如最后訪問字段的文件條目的不良更新以獲得改進(jìn)的存儲(chǔ)器利用。如果主機(jī)5寫入到未曾使用過的存儲(chǔ)空間,那么智能過濾邏輯優(yōu)選地允許不中斷地繼續(xù)進(jìn)行寫入。并且,為了謹(jǐn)慎起見,如果主機(jī)5以智能過濾邏輯44并不理解的方式來蓋寫先前數(shù)據(jù),那么可優(yōu)選地重映射所述寫入以允許成功地繼續(xù)進(jìn)行主機(jī)操作。最后,優(yōu)選的是留心可能導(dǎo)致控制器20針對(duì)單個(gè)寫入命令來執(zhí)行多個(gè)功能的過濾組合。舉例來說,如果主機(jī)5己高速緩沖存儲(chǔ)了所述FAT表并試圖擦除大文件且接著在"釋放的空間"中復(fù)制小文件,那么控制器20優(yōu)選地允許在不釋放FAT表中的額外空間的情況下寫入新文件(經(jīng)高速緩沖存儲(chǔ)的FAT與已被過濾的實(shí)際FAT的不匹配造成這些組合問題)。重映射邏輯46重映射邏輯46可用于將數(shù)據(jù)移動(dòng)到一新邏輯地址,所述新邏輯地址允許主機(jī)裝置5認(rèn)為其己擦除了一特定地址。重映射是存儲(chǔ)器控制器20用來描述數(shù)據(jù)和地址間接的術(shù)語。其指的是在不同于主機(jī)5所提供的邏輯地址的物理位置處寫入數(shù)據(jù)的概念。重映射由各種技術(shù)(包括快閃存儲(chǔ)器)出于多種原因使用,所述原因從性能改進(jìn)到通過損耗均衡算法來改進(jìn)數(shù)據(jù)完整性。然而,對(duì)于由BCC啟用的OTP或FTP存儲(chǔ)器來說,重映射的獨(dú)特之處在于其用于模仿可擦除性。舉例來說,如果主機(jī)請(qǐng)求將數(shù)據(jù)集A寫入到地址0,那么控制器20可選擇將數(shù)據(jù)寫入在地址0。隨后,主機(jī)5可能想要將數(shù)據(jù)從A改變到B,例如在寫入字符"E5"來執(zhí)行擦除操作(如早先所述)時(shí)。此時(shí),控制器20會(huì)使用智能過濾來確定主機(jī)5己恰當(dāng)?shù)匦薷臄?shù)據(jù)集A并會(huì)將數(shù)據(jù)集B寫入到不同物理位置(例如地址1)。現(xiàn)在,當(dāng)主機(jī)5讀取地址0時(shí),控制器20必須知道代替地返回位于地址1處的數(shù)據(jù),因而使得對(duì)于主機(jī)5和用戶來說存儲(chǔ)器看來己被修改過了。存在許多用于使來自主機(jī)裝置的數(shù)據(jù)改道的方法。參見(例如)下列專利文獻(xiàn),所述專利文獻(xiàn)轉(zhuǎn)讓給本發(fā)明的受讓人且以引用的方式并入本文中第09/877,719號(hào)、第09/878,138號(hào)、第10/327,680號(hào)和第10/023,468號(hào)美國(guó)專利申請(qǐng)案。一種常用方法是使用物理到邏輯地址表,在啟動(dòng)時(shí)讀取或計(jì)算所述物理到邏輯地址表且接著將其存儲(chǔ)在控制器20的易失性存儲(chǔ)器中,但這個(gè)表可能非常大且會(huì)增加控制器20的晶粒大小和成本。對(duì)于本文所述的實(shí)施方案來說,優(yōu)選的是在不損害性能應(yīng)用要求的情況下保持盡可能低的成本。在優(yōu)選實(shí)施例中,存在兩種重映射方法。第一種也是最簡(jiǎn)單的方案是使用主機(jī)不可見的存儲(chǔ)器頁面的"邊帶區(qū)域"。在目前優(yōu)選實(shí)施例中,將存儲(chǔ)器陣列30組織在528B頁面中,但FAT文件系統(tǒng)使用512B扇區(qū)。這些額外的16B被稱為邊帶,且可由控制器20使用來存儲(chǔ)額外信息,所述信息包括(但不限于)ECC數(shù)據(jù)、數(shù)據(jù)和地址有效性旗標(biāo)以及重映射指針。在此方案中,如果頁面已被重映射,那么控制器20使用此邊帶的一部分來存儲(chǔ)物理地址。如果第一次寫入所述頁面,那么將不需要任何重映射指針,因?yàn)槲锢砗瓦壿嫷刂肥窍嗤?。?dāng)主機(jī)5試圖修改數(shù)據(jù)時(shí),控制器20將把新數(shù)據(jù)寫入到新位置且把此位置的物理地址存儲(chǔ)到舊位置的邊帶中。圖IO含有說明在此重映射方案下如何讀取數(shù)據(jù)的流程圖。首先,將讀取命令和地址發(fā)送到卡IO(行為110)。控制器20知道讀取整個(gè)528B頁面(或包括指針?biāo)璧哪敲炊?(行為120)且確定邊帶是否含有FFh(行為130),此讓控制器20得知所述地址是否已被重映射了。如果指針是未曾被用過的(即,含有FFh),那么控制器20將所述512B頁面返回給主機(jī)5。如果邊帶含有地址,那么控制器20讀取存儲(chǔ)在邊帶中的頁面地址以找出最近寫入的數(shù)據(jù)??芍苯訉⑦@個(gè)地址存儲(chǔ)在邊帶中或可存儲(chǔ)地址的偏移量。這種形式的重映射被稱為靜態(tài)的,因?yàn)榭刂破?0不修改FAT表來分配用于重映射的額外空間。在這個(gè)實(shí)施方案中,卡10已由已經(jīng)分配在FAT表中的一組數(shù)量的重映射數(shù)據(jù)來預(yù)格式化。一旦使用了此數(shù)量的數(shù)據(jù),就不會(huì)再發(fā)生重映射了。FAT表展示重映射分配,以使得主機(jī)5不會(huì)出于其自身目的(例如,存儲(chǔ)圖像數(shù)據(jù))而試圖使用此空間。這第一種重映射方案是非常強(qiáng)有力的且需要非常少的邏輯額外開銷來實(shí)施。然而,其確實(shí)遇到相對(duì)較高的性能額外開銷,因?yàn)橐驯恢赜成銷次的頁面將需要N次讀取來找出當(dāng)前數(shù)據(jù)。另一種簡(jiǎn)單的重映射方案可被代替使用以改進(jìn)此性能。此處,不是存儲(chǔ)針對(duì)經(jīng)重映射的頁面的指針,而是將利用針對(duì)重映射表的指針。此表可使用時(shí)間到空間映射技術(shù)來存儲(chǔ)最近的頁面數(shù)據(jù)。時(shí)間到空間映射在第6,738,883號(hào)美國(guó)專利中描述,所述專利轉(zhuǎn)讓給本發(fā)明的受讓人并以引用的方式并入本文中?,F(xiàn)在,己被重映射N次的頁面可最多被讀入三次,從而顯著改進(jìn)了產(chǎn)品性能且具有非常少的額外成本和復(fù)雜性。應(yīng)注意到,每當(dāng)訪問一地址時(shí),控制器20就優(yōu)選地執(zhí)行這些讀取來找出最新頁面。對(duì)于早先描述的每個(gè)智能過濾操作(其中控制器20執(zhí)行先讀后寫)來說,控制器20也優(yōu)選地沿著重映射鏈來找出最近頁面。還應(yīng)了解,可易于向這些算法添加額外復(fù)雜性。舉例來說,這些算法中的一者或一者以上可與另一者一起使用以在使復(fù)雜性減到最小的同時(shí)改進(jìn)性能。另一復(fù)雜性實(shí)例是使用FAT文件系統(tǒng)中的強(qiáng)大數(shù)據(jù)位置相關(guān)性來執(zhí)行經(jīng)高速緩沖存儲(chǔ)的讀取操作,其中控制器20會(huì)讀取一頁面或其附近的多個(gè)頁面來查找數(shù)據(jù),并行地正由主機(jī)5或控制器20執(zhí)行其它操作。盡管這將向控制器20增加某些成本,但它可顯著減少先讀后寫和重映射行進(jìn)額外開銷。BCC控制器20可實(shí)施的與標(biāo)準(zhǔn)重映射算法的另一個(gè)較大區(qū)別用于解決主機(jī)5的流量控制問題。換句話說,如果控制器5正在主機(jī)不知道的情況下將數(shù)據(jù)移動(dòng)到新位置,且主機(jī)5認(rèn)為此數(shù)據(jù)實(shí)際上正被擦除并重寫入,那么主機(jī)5如何知道實(shí)際上有多少可空閑空間呢?為了解決這個(gè)問題,BCC20實(shí)施兩個(gè)獨(dú)立操作。首先,如早先所述,智能過濾邏輯44不讓主機(jī)5在FAT表中寫入0來釋放空間。這樣將防止用戶控制的操作(例如刪除文件)看起來似乎擦除并打開了存儲(chǔ)器。然而,也必須解決控制器20為重映射而消耗的存儲(chǔ)器。解決這個(gè)問題的一種簡(jiǎn)單方式是在銷售存儲(chǔ)器裝置IO之前為重映射分配存儲(chǔ)器。這個(gè)靜態(tài)量的重映射可由控制器20使用,直到不剩下任何預(yù)分配的空間為止。此時(shí),控制器20可發(fā)信號(hào)通知卡錯(cuò)誤,允許不是重映射的任何寫入或許多其它操作??梢钥吹剑@種方法(被稱為靜態(tài)重映射分配)可能是不合需要的,因?yàn)槠湎拗屏擞脩裟軋?zhí)行的操作的數(shù)目和大小。一種更復(fù)雜形式的重映射(稱為動(dòng)態(tài)重映射分配)解決了這個(gè)問題。在圖11中可以看到這種方法的流程圖。首先,主機(jī)5發(fā)送寫入命令,且將數(shù)據(jù)存儲(chǔ)在頁面寄存器1中(行為160)。接下來,控制器20執(zhí)行先讀后寫(RBW)操作并將所述數(shù)據(jù)存儲(chǔ)在頁面寄存器2中(行為170)。如果頁面寄存器2是空白的(即,含有FFh)(行為180),那么將頁面寄存器1的內(nèi)容寫入到存儲(chǔ)器陣列(行為190)。如果不是,那么控制器20確定頁面寄存器1的內(nèi)容是否等于頁面寄存器2的內(nèi)容加上附加數(shù)據(jù)(行為200)。如果是,那么將頁面寄存器1的內(nèi)容寫入到存儲(chǔ)器陣列(行為190)。如果不是,確定智能過濾邏輯是否被啟用(行為210)。如果是,那么過濾數(shù)據(jù)(行為220)。如果不是,那么需要重映射(行為230)。為了執(zhí)行重映射,找到位于存儲(chǔ)器頂部的第一空閑頁面(行為240),且將頁面寄存器1的內(nèi)容沒有錯(cuò)誤地寫入到最高的空閑頁面(行為250)。接著,更新FAT表來將頁面叢集標(biāo)記為己使用的(行為260)。最后,將新頁面地址寫入到最初頁面的邊帶中(行為270)。盡管此處展示兩個(gè)頁面寄存器來提供性能節(jié)約(例如,在地址可用時(shí)且在完成來自主機(jī)5的數(shù)據(jù)輸入之前發(fā)生先讀后寫),但能夠使用單個(gè)頁面寄存器。如流程圖中所說明,控制器20通過寫入FAT表來通知主機(jī)5空間已被用于重映射。當(dāng)需要額外存儲(chǔ)器時(shí),控制器20可分配新叢集以供其自身使用,就像主機(jī)5會(huì)為文件數(shù)據(jù)分配叢集一樣。也就是說,此方案使用相同的指針跟蹤算法(如上所述),而且也因?yàn)樾枰~外空間來進(jìn)行重映射而動(dòng)態(tài)更新FAT表。此實(shí)施方案的好處在于主機(jī)5和用戶不在其能執(zhí)行的重映射/文件修改數(shù)目上受到限制。控制器20將允許其重映射,直到卡被完全填滿為止。在此優(yōu)選實(shí)施例中,如圖12所示,控制器20從下往上分配存儲(chǔ)器,而大多數(shù)主機(jī)從上往下分配存儲(chǔ)器。這種分配方案將允許控制器20和主機(jī)5獨(dú)立分配存儲(chǔ)器而不太可能會(huì)發(fā)生分配沖突。這還允許控制器20每當(dāng)所述兩個(gè)分配區(qū)沖突時(shí)認(rèn)識(shí)到卡10己滿。當(dāng)卡已滿時(shí),控制器20可選擇設(shè)置其永久和暫時(shí)寫入保護(hù)寄存器,發(fā)信號(hào)通知主機(jī)5關(guān)于不能再對(duì)卡10進(jìn)行任何寫入。非高速緩沖存儲(chǔ)系統(tǒng)將知道還剩多少存儲(chǔ)器,而高速緩沖存儲(chǔ)系統(tǒng)將在啟動(dòng)時(shí)讀取FAT表來看在所述特定會(huì)話之前使用了多少重映射空間。再次,應(yīng)注意到靜態(tài)與動(dòng)態(tài)重映射不是彼此排斥的。事實(shí)上,為了輔助用戶,可選擇在單個(gè)產(chǎn)品中實(shí)施兩者。舉例來說,用戶可能想要?jiǎng)h除或修改文件,即使卡已滿且不能添加任何額外文件。如果一組數(shù)量的存儲(chǔ)器被預(yù)分配且在正常操作中不被使用,那么可需要額外數(shù)據(jù)修改。舉例來說,卡IO可留出500KB靜態(tài)重映射,控制器20直到由于主機(jī)與控制器分配沖突而使卡10呈現(xiàn)滿載時(shí)才使用所述500KB靜態(tài)重映射。此時(shí),控制器20可允許將主機(jī)的額外數(shù)據(jù)寫入到靜態(tài)分配區(qū),直到完成所需操作為止。然后,智能過濾可用于允許某些用戶操作(例如刪除和重命名)在靜態(tài)區(qū)域中發(fā)生,而其它操作會(huì)導(dǎo)致錯(cuò)誤,因?yàn)榭↖O對(duì)于大多數(shù)使用來說基本上己滿。在又一實(shí)例中,此靜態(tài)分配區(qū)域可由已用BCC技術(shù)的軟件更新的主機(jī)訪問。PC或其它電子裝置可由一應(yīng)用程序啟用,所述應(yīng)用程序向卡發(fā)送一信號(hào),所述信號(hào)會(huì)允許應(yīng)用程序顯式訪問卡存儲(chǔ)器的全部,如第6,424,581號(hào)美國(guó)專利中描述,所述專利轉(zhuǎn)讓給本發(fā)明的受讓人并以引用的方式并入本文中。此時(shí),所述應(yīng)用程序會(huì)優(yōu)先于任何智能過濾、重映射等,并可用來通過優(yōu)化重映射鏈或甚至允許額外操作進(jìn)入靜態(tài)區(qū)域中來改進(jìn)性能,而非啟用系統(tǒng)不能做到這些。因此,組合靜態(tài)與動(dòng)態(tài)重映射算法可使用啟用和非啟用系統(tǒng)兩者來提供最佳用戶體驗(yàn)。另外,其它實(shí)施方案能夠取代上述簡(jiǎn)單的指針跟蹤方案。下文列舉一些實(shí)施方案讀取3命令可使用較快讀取命令(稱為READ3),其會(huì)允許控制器20只讀取邊帶數(shù)據(jù)。這會(huì)減少在找到最近數(shù)據(jù)之前讀取許多滿頁面數(shù)據(jù)的額外開銷。指針表為了減少讀取每個(gè)頁面來找到最近寫入的性能損失,可使用指針表,以使得每個(gè)頁面會(huì)具有列舉所有重映射的表。主機(jī)5會(huì)讀取所述表且使用未曾被用過的條目之前的最后一個(gè)指針來確定最近更新。表地址本身會(huì)存儲(chǔ)在頁面的邊帶中。這類似于上文所參考的專利申請(qǐng)案中所述的硬件重映射中使用的表。系統(tǒng)高速緩沖存儲(chǔ)器控制器20可使用SRAM或類似高速緩沖存儲(chǔ)器來存儲(chǔ)來自重映射表的數(shù)據(jù)或存儲(chǔ)在邊帶中的指針。盡管額外SRAM耗費(fèi)區(qū)域且因此使得控制器20更昂貴,但這種結(jié)構(gòu)會(huì)允許重映射特別快速地發(fā)生且使得性能額外開銷減到最小。重映射算法組合控制器20可建立重映射利用旗標(biāo),所述旗標(biāo)會(huì)表示正在使用簡(jiǎn)單的指針跟蹤方案還是表方案。因此,如果控制器20看到頁面已被重映射多次,那么其可選擇建立表以減少未來重映射的影響。但是對(duì)于簡(jiǎn)單情況(其中一頁面只被重映射兩次而己)來說,指針方案就足夠了??刂破?0可動(dòng)態(tài)設(shè)置此旗標(biāo),或其可為靜態(tài)的且基于重映射位置的。舉例來說,F(xiàn)AT表將被重映射多次且因此其適于一直使用表或SRAM方案,而數(shù)據(jù)不經(jīng)常被重映射且因此此處其可優(yōu)選使用指針跟蹤方案。此實(shí)施方案可減小SRAM成本,且同時(shí)仍提供接近最佳的系統(tǒng)性能。智能ECC邏輯48優(yōu)選的是,使用ECC以防止可能會(huì)發(fā)生在字段中的可靠性錯(cuò)誤。在目前優(yōu)選實(shí)施例中,BCC20使用邊帶來存儲(chǔ)ECC數(shù)據(jù)以及上述重映射指針。ECC可以是8字節(jié)、16字節(jié)或適于邊帶可用性的任何大小。在目前優(yōu)選實(shí)施例中,使用128BECC算法,本文中將其稱為"智能大塊ECC"。大塊ECC("LBECC")對(duì)于每個(gè)ECC字使用兩個(gè)關(guān)閉且在附錄1中進(jìn)行論述。根據(jù)正常大塊ECC方案,由于BCC20利用邊帶來用于重映射和ECC信息兩者,因而邊帶可能沒有足夠的空間來對(duì)每個(gè)字存儲(chǔ)兩個(gè)ECC關(guān)閉。相應(yīng)地,通過僅將每個(gè)字關(guān)閉一次一一當(dāng)已寫入字的最后兩個(gè)字節(jié)時(shí),來使得此大塊ECC方案成為"智能"。選擇兩字節(jié)的值是因?yàn)镕AT表中的每個(gè)條目的大小為2字節(jié)。(當(dāng)執(zhí)行動(dòng)態(tài)重映射連同LBECC時(shí),控制器20優(yōu)選考慮ECC關(guān)閉操作來確保字段中產(chǎn)品的最大可靠性。換句話說,分配優(yōu)選不應(yīng)關(guān)閉FAT表中的ECC字并接著在日后更新相同的字。)還可根據(jù)數(shù)據(jù)區(qū)域來進(jìn)行所述關(guān)閉操作。舉例來說,當(dāng)更新FAT表時(shí),可能適于基于兩字節(jié)片段來更新(如上所述),但當(dāng)更新數(shù)據(jù)區(qū)域時(shí)這樣做就可能沒有意義了。當(dāng)更新數(shù)據(jù)區(qū)域時(shí),可基于字中的最后六字節(jié)來執(zhí)行關(guān)閉操作,因?yàn)榇蠖鄶?shù)主機(jī)在完全寫入所有數(shù)據(jù)之后僅更新文件條目的最后六字節(jié)。最后,如果檢測(cè)到正在更新先前關(guān)閉的ECC字,那么BCC20可選擇實(shí)施重映射操作。這會(huì)利用重映射操作結(jié)合ECC來保持字段中的最大可靠性。第6,738,883號(hào)美國(guó)專利展示使用ECC作為改進(jìn)OTP或FTP產(chǎn)品中數(shù)據(jù)可靠性的方法,所述專利轉(zhuǎn)讓給本發(fā)明的受讓人且以引用的方式并入本文中。如此專利中論述,ECC字可被寫入一次且僅一次。蓋寫ECC字中的新數(shù)據(jù)會(huì)導(dǎo)致ECC數(shù)據(jù)值不正確,從而移除了產(chǎn)品所需的可靠性層面。在已被使得能與OTP或FTP存儲(chǔ)器一起工作的系統(tǒng)中,可易于通過為存儲(chǔ)器建立線概念(最小寫入大小)來處理這個(gè)問題,這在上文參考的'883專利中論述。然而,優(yōu)選地用設(shè)計(jì)復(fù)雜性來補(bǔ)償這樣的情形,其中BCC產(chǎn)品用于非啟用系統(tǒng)(即,不具有八字節(jié)對(duì)準(zhǔn)概念的主機(jī))中。BCC制器20可以很多方式來維持ECC完整性。一個(gè)簡(jiǎn)單方法是每當(dāng)ECC字失效時(shí)就調(diào)用重映射操作。此處,控制器20會(huì)檢測(cè)ECC字是否正由智能過濾或其它邏輯方案蓋寫。在使ECC字失效的情況下,重映射操作會(huì)用新ECC數(shù)據(jù)來重寫所述數(shù)據(jù),因而保持非??煽康漠a(chǎn)品。盡管重映射可用于保持存儲(chǔ)器的100MECC覆蓋,但其會(huì)導(dǎo)致許多額外重映射,從而限制了用戶的操作數(shù)目。在此情況下,可設(shè)計(jì)控制器20以改進(jìn)ECC處理。在優(yōu)選實(shí)施例中,將不寫入ECC數(shù)據(jù)且ECC字將在直到寫入數(shù)據(jù)的特定部分時(shí)才被完成。舉例來說,假設(shè)ECC字是32字節(jié)。在先前所述的寫入文件的情況下,主機(jī)5將寫入26字節(jié)的文件列表數(shù)據(jù)且稍后在完成了文件數(shù)據(jù)之后寫入最后六字節(jié)。在此情況下,控制器的ECC智能過濾邏輯48可確定正在寫入文件列表,且直到寫入最后六字節(jié)時(shí)才完成所述ECC字。這會(huì)維持ECC完整性,且同時(shí)將重映射額外開銷減到最小??舍槍?duì)多種ECC字大小、文件系統(tǒng)結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu)來修改此方案??傊悄蹺CC邏輯48在目前優(yōu)選實(shí)施例中使用癥狀位存儲(chǔ)在邊帶中的128BECC字,基于寫入最后兩字節(jié)數(shù)據(jù)來關(guān)閉字,只允許每個(gè)字關(guān)閉一次,針對(duì)FAT表與數(shù)據(jù)區(qū)域使用不同的關(guān)閉方案(2B與6B關(guān)閉),且在所述ECC字失效或破損時(shí)可使用重映射。在此實(shí)施例中使用智能ECC邏輯48,因?yàn)檫厧Э臻g不足以進(jìn)行多個(gè)ECC關(guān)閉。結(jié)論存在多種可與這些優(yōu)選實(shí)施例一起使用的替代方法。舉例來說,代替在存儲(chǔ)器裝置的控制器中實(shí)施,智能過濾邏輯、重映射邏輯和智能ECC邏輯中的任一者或所有都可整體或部分地在另一組件中執(zhí)行,所述另一組件例如存儲(chǔ)器裝置中或主機(jī)裝置中的另一控制器。另外,術(shù)語"電路"指的是可實(shí)施針對(duì)其而描述的功能的任何組件。電路的實(shí)例包括上文給出的實(shí)例以及運(yùn)行計(jì)算機(jī)可執(zhí)行指令的處理器、專用集成電路、現(xiàn)場(chǎng)可編程門陣列、模擬電路或現(xiàn)在已知的或日后開發(fā)的任何其它硬件裝置(運(yùn)行或不運(yùn)行軟件)以及其任何組合。希望將前述詳細(xì)描述理解為本發(fā)明可采取的選定形式的說明而不是本發(fā)明的定義。希望只有所附權(quán)利要求書(包括所有等效物)來界定本發(fā)明范圍。最后,應(yīng)注意到,可單獨(dú)或彼此組合來使用本文描述的優(yōu)選實(shí)施例中任一者的任一方面。附錄I大塊ECC實(shí)施総大塊ECC優(yōu)選地包括以下各項(xiàng)128B的ECC字大小。單錯(cuò)誤校正,但無雙錯(cuò)誤檢測(cè)。智能ECC更新,其允許最多兩個(gè)ECC奇偶性更新。MC五CC實(shí)應(yīng)ECC實(shí)施類似于允許對(duì)每個(gè)字節(jié)計(jì)算ECC奇偶校驗(yàn)位的實(shí)施。由于側(cè)帶中的存儲(chǔ)有限而需要減少奇偶校驗(yàn)位,已僅針對(duì)SEC而不含DED進(jìn)行了下列修改。圖13展示奇偶校驗(yàn)位針對(duì)8位數(shù)據(jù)如何運(yùn)作的實(shí)例P0覆蓋D1、D3、D5、D7。Pl覆蓋D2、D3、D6、D7。P2覆蓋D4、D5、D6、D7。P3覆蓋D0、Dl、D2、D3。P4覆蓋所有數(shù)據(jù)位。下表展示任何一位錯(cuò)誤會(huì)導(dǎo)致的癥狀。癥狀[4:0]是由對(duì)期望和實(shí)際奇偶校驗(yàn)位進(jìn)行異或運(yùn)算造成的。這種算法優(yōu)選需要N+2個(gè)奇偶校驗(yàn)位來覆蓋2W個(gè)位。針對(duì)128字節(jié)(21()位)的ECC字,優(yōu)選需要12個(gè)奇偶校驗(yàn)位。<table>tableseeoriginaldocumentpage22</column></row><table><table>tableseeoriginaldocumentpage23</column></row><table>下列是1024位ECC字優(yōu)選所需的12組奇偶等式(全部為1的ECC字應(yīng)導(dǎo)致全部為1的奇偶校驗(yàn)位)P0=!XOR(Dl,D3,D5,...,D1023)Pl=!XOR(D2-D3,D6-D7,..,D1022-D1023)P2=!XOR(D4-D7,D12-D15,..,D1020-D1023)P3=!XOR(D8-D15,D24-31,...,D1016-D1023)P4=!XOR(D16-D31,D48-D63,..,D1008-D1023)P5=!XOR(D32-D63,D96-127,...,D992-D1023)P6=!XOR(D64-D127,D192-D255,...,D960-D1023)P7=!XOR(D128-D255,D384-D511,..,D896-D1023)P8=!XOR(D256-D511,D768-D1023)P9=!XOR(D512-D1023)P10=!XOR(D0-D511)Pll=!XOR(D0-D1023)智能ECC更新智能ECC更新優(yōu)選地允許針對(duì)每個(gè)ECC字兩次寫入奇偶校驗(yàn)位。此特征允許部分頁面寫入由ECC覆蓋。在針對(duì)ECC字第-次寫入新數(shù)據(jù)期間寫入第一組奇偶校驗(yàn)位。任何隨后新數(shù)據(jù)寫入優(yōu)選地將使第一組奇偶校驗(yàn)位無效。在頁面正被"關(guān)閉"時(shí)寫入第二組奇偶校驗(yàn)位。當(dāng)ECC字的最后八字節(jié)中的任一位均被編程時(shí)認(rèn)為頁面被"關(guān)閉"。這種模型與需要部分頁面寫入的FAT結(jié)構(gòu)合作良好。智能ECC旗標(biāo)和奇偶校驗(yàn)位優(yōu)選地僅在新奇偶校驗(yàn)位與現(xiàn)存有效奇偶校驗(yàn)位不匹配時(shí)被更新。相同數(shù)據(jù)的再寫入(其將導(dǎo)致匹配的奇偶校驗(yàn)位)將不會(huì)改變智能ECC旗標(biāo)的狀態(tài)。未寫入的字讀取時(shí)啟用ECC<table>tableseeoriginaldocumentpage23</column></row><table>上文展示針對(duì)尚未被編程的數(shù)據(jù)字的ecc奇偶性、未使用和有效位。有效和未使用位每一者都被復(fù)制兩次以獲得冗余。在此狀態(tài)下,由于奇偶性0是有效的,因而在讀取時(shí)啟用ecc。注意到,如果有效0是1,那么不管未使用0是什么值。(這對(duì)于奇偶性l位并不正確。)以上奇偶性、未使用和有效位的數(shù)目是32位或4b。每個(gè)^"衝^,^個(gè)72朋£cc字,每^jr^^在/m游ecc'泰錄絲、^免滯,務(wù)赍泣。奇偶性0寫入讀取時(shí)啟用ecc10010110111000111111111111111111奇偶性0[11:0]未使用O[l:O]有效0[1:0]奇偶性l[ll:O]未使用in:o]有效l[l:O]上文展示已被編程一次的數(shù)據(jù)字的ecc奇偶性、未使用和有效位。由于未使用o先前為1,我們知道可編程奇偶性0來反應(yīng)數(shù)據(jù)正被寫入。未使用0也被編程為0以指示奇偶性o己被寫入。在此狀態(tài)下,由于奇偶性o仍然有效,因而在讀取期間啟用ecc。奇偶性o失效讀取時(shí)禁用ecc10010110111000001111111111111111奇偶性0[11:0]未使用O[l:O]有效0[1:0]奇偶性l[ll:O]未使用l[l:O]有效l[l:O]上文展示通過將有效o編程為o而使得其奇偶性o位無效的數(shù)據(jù)字的ecc奇偶性、未使用和有效位。在第一次寫入數(shù)據(jù)字之后,如果使用0已經(jīng)被編程為0,那么隨后寫入將使得奇偶性0位失效。在此狀況下,由于奇偶性0已經(jīng)失效且奇偶性1有待更新,因而在讀取時(shí)禁用ecc。奇偶性1更新讀取時(shí)啟用ecc翻OllOlllO00001001011011100011奇偶性0[11:0]未使用O[l:O]有效0[1:0]奇偶性l[ll:O]未使用l[l:O]有效l[l:O]上文展示使其奇偶性i位被寫入的數(shù)據(jù)字的ecc奇偶性、未使用和有效位。/Zr發(fā)生,尿述字游虔^y(字夢(mèng)^游^一泣凝'編薦f^使歷/龍i力7好。未使用i也被編程為o以指示奇偶性i己被寫入。在大多數(shù)情況下,當(dāng)最后八字節(jié)正被編程時(shí),這是對(duì)所述數(shù)據(jù)字的最后部分頁面寫入。在此狀態(tài)下,由于奇偶性1是有效的且被寫入,因而在讀取時(shí)啟用ECC。(與奇偶性0位不同,未使用1旗標(biāo)必須為0以使得奇偶校驗(yàn)位有效。)奇偶性1失效讀取時(shí)禁用ECC<table>tableseeoriginaldocumentpage25</column></row><table>上文展示通過將有效1編程為0而使其奇偶性1位失效的數(shù)據(jù)字的ECC奇偶性、未使用和有效位。在奇偶性1位被寫入之后,如果存在針對(duì)此數(shù)據(jù)字的隨后寫入,那么奇偶性1位必定會(huì)失效。在此狀態(tài)下,由于奇偶性0和奇偶性1都無效,因而在讀取時(shí)禁用ECC。解碼冗余未使用和有效旗標(biāo)未使用[1:0]和有效[1:0]旗標(biāo)用于編碼奇偶校驗(yàn)位的三個(gè)不同狀態(tài)。下表列舉這些狀態(tài)。<table>tableseeoriginaldocumentpage25</column></row><table>然而,由于我們對(duì)于每個(gè)旗標(biāo)只有兩個(gè)冗余位,因而如果所述冗余位中的一者存在位錯(cuò)誤,那么難以確定哪個(gè)冗余位是錯(cuò)誤的。因此,我們將一直使用未使用[1:0]和有效[l:0]位兩者來確定奇偶狀態(tài)。下表展示通過計(jì)數(shù)那些位中0的總數(shù)目來進(jìn)行此解碼。<table>tableseeoriginaldocumentpage25</column></row><table>每個(gè)旗標(biāo)使用兩個(gè)冗余位而并非四個(gè)冗余位減少了存儲(chǔ)器中所使用的位的數(shù)目,此代價(jià)在于冗余強(qiáng)度降低。特殊情況-頁面o當(dāng)TF—SECC一PAGEO—TB—1'時(shí),將略微不同地處理存儲(chǔ)器頁面0。正常情況下,奇偶性1位可只在所述字的最后八字節(jié)中的任何位被編程時(shí)才被寫入。在此特殊情況下,這個(gè)限制被取消了。因此,一旦奇偶性O(shè)位被使用時(shí),下一次寫入將一直導(dǎo)致奇偶性1位被使用。趣蕃絲位有3種修整熔絲位會(huì)影響ECC邏輯TFECC—DISABLE—TB當(dāng)TF—ECC—DISABLEJTB」1,吋,禁用ECC邏輯且主機(jī)對(duì)每個(gè)頁面的邊帶中的字節(jié)512-527具有完整讀取和寫入訪問。當(dāng)TF—ECC—DISABLE—TB一O'時(shí),啟用ECC邏輯且每個(gè)頁面的邊帶中的字節(jié)512-517用于存儲(chǔ)用于實(shí)施LBECC和智能ECC更新的各種ECC位。將丟棄針對(duì)邊帶區(qū)域的任何主機(jī)寫入。來自邊帶區(qū)域的任何主機(jī)讀取將返回不定數(shù)據(jù)。TF—SMARTECC_DISABLE_TB當(dāng)TF—SMARTECC—DISABLE_TB=,1,時(shí),禁用智能ECC更新邏輯。當(dāng)TF—SMARTECC—DISABLE—TB='0,時(shí),啟用智能ECC更新邏輯。(TF—ECC—DISABLE—TB必須也被設(shè)為'0'。)TF一SECC一PAGEO一TB當(dāng)TF—SECC—PAGEO—TB='0'時(shí),所有頁面使用相同的智能ECC邏輯。當(dāng)TF一SECC一PAGEO—TB-'l'時(shí),相對(duì)于智能ECC更新邏輯以不同于所有其它頁面的方式來處理頁面0。所有ECC奇偶性、未使用和有效位都存在于每個(gè)頁面的邊帶中的512-527字節(jié)中。下文展示所有四個(gè)ECC字的位是如何安排的。527524523520519516515512字3字2字1字0下文展示針對(duì)一個(gè)ECC字是如何安排位的(實(shí)例針對(duì)字0)。字節(jié)51531字節(jié)514字節(jié)513201918171615字節(jié)51243210奇偶1[11:0]未使用1[1:0]有效1[1:0]奇偶0[11:0]未使用O[l:O]有效1[1:0]測(cè)試可使用DAM模式來進(jìn)行ECC邏輯的測(cè)試。當(dāng)啟用DAM模式來進(jìn)行寫入或讀取交易時(shí),將在頁面寄存器與存儲(chǔ)器陣列之間不傳送任何數(shù)據(jù)。必須解除斷言TF一ECCJDISABLE一TB位以讓ECC邏輯被測(cè)試。下文更詳細(xì)地描述此測(cè)試。ECC校正1.啟用DAM模式。啟用ECC。2.發(fā)布DATAIN命令,所述命令具有512字節(jié)寫入數(shù)據(jù)和16字節(jié)ECC數(shù)據(jù)。3.發(fā)布READ命令。(由于在可讀回?cái)?shù)據(jù)之前進(jìn)行ECC擦洗,芯片將會(huì)忙碌)。4.驗(yàn)證512字節(jié)數(shù)據(jù)是如預(yù)期那樣的。(如果將單個(gè)位錯(cuò)誤寫入到PR中,那么驗(yàn)證所述錯(cuò)誤己被校正。)ECC生成1.啟用DAM模式。啟用ECC。2.發(fā)布DATAIN命令,所述命令具有512字節(jié)寫入數(shù)據(jù)。3.發(fā)布PROG命令。(這將16個(gè)生成的ECC字節(jié)寫入到PR中。)4.發(fā)布READ命令。(先前512字節(jié)寫入數(shù)據(jù)將會(huì)與生成的16字節(jié)ECC數(shù)據(jù)一起被讀回。)5.驗(yàn)證16ECC字節(jié)是正確生成的。如上所述,一種使用ECC的方法使用8B(八字節(jié))ECC字,其中ECC癥狀是1B寬。在一個(gè)實(shí)施例中,此造成12.5%的額外開銷且提供總晶粒大小的約9-10%。此方法使用單位校正/雙位檢測(cè)算法,其并行處理72位數(shù)據(jù)。相反地,大塊ECC使用ECC字,所述ECC字較大而足以減小癥狀存儲(chǔ)的額外開銷。如上文加注,目前優(yōu)選使用單位檢測(cè)唯一算法以進(jìn)一步減小額外開銷。此算法依次處理數(shù)據(jù)。ECC癥狀存儲(chǔ)有各種選擇。在一種選擇(選擇l)中,ECC癥狀位被存儲(chǔ)在擴(kuò)展頁面區(qū)域中。一個(gè)目前優(yōu)選的結(jié)構(gòu)將18B(16B數(shù)據(jù)和2BECC癥狀位)分配到擴(kuò)展頁面。由于此選擇,修整熔絲或插針可用于(1)使用內(nèi)部ECC生成(其中癥狀存儲(chǔ)在擴(kuò)展頁面空間中)且用戶不能訪問擴(kuò)展頁面空間;且(2)繞過內(nèi)部ECC生成以允許用戶訪問擴(kuò)展頁面空間并使用他們自己的ECC算法。在另一選擇(選擇2)中,ECC癥狀位被存儲(chǔ)在專用空間中。根據(jù)塊大小,此可使用某些CR空間??稍诓糠猪撁鎸懭肫陂g寫入的最小量等于ECC字大小且當(dāng)前在目前優(yōu)選實(shí)施例中被設(shè)為8B。存在若干種選擇。在選擇1中,存儲(chǔ)器裝置識(shí)別部份頁面寫入且針對(duì)所述頁面禁用ECC。對(duì)于此選擇不存在逆向兼容性問題,然而,將損害部分寫入之后的數(shù)據(jù)完善性。除了增加N次重寫ECC能力之外,選擇2與選擇1相同。存儲(chǔ)器裝置將足夠聰明來識(shí)別部分寫入,使舊ECC癥狀失效,且將新癥狀寫入到新位置。使用128B或更大的大塊大小,此會(huì)能夠?yàn)槊總€(gè)塊2-3次重寫提供足夠的存儲(chǔ)能力。在額外復(fù)雜性方面,這是對(duì)先前解決方案的改進(jìn)。選擇3提供智能ECC癥狀更新。在第一次寫入到ECC字中期間,將寫入所述癥狀。第二次寫入到ECC字中將使所述癥狀失效,且數(shù)據(jù)將失去其ECC保護(hù)。在隨后附加到ECC字之后,一旦其被完全寫入,就會(huì)造成新的(且最終的)癥狀且數(shù)據(jù)從此將永遠(yuǎn)被保護(hù)。此顯著減少了DPM暴露,因?yàn)閮H有的未保護(hù)區(qū)域?qū)⑹悄切┣穭?dòng)態(tài)區(qū)域,所述區(qū)域并未全部由ECC字填充。除了增加冗余行修補(bǔ)能力之外,選擇4與選擇2相同。在選擇2中N次重寫之后,第N+1次重寫觸發(fā)行修補(bǔ),且重寫計(jì)數(shù)復(fù)位。在另一替代性方案中,提供在讀取后數(shù)據(jù)擦洗技術(shù)。使用此技術(shù),如果讀取期間的前向應(yīng)力是擾亂的主要原因,那么可檢查ECC校正邏輯的狀態(tài)且在位變壞時(shí)馬上將所述壞位識(shí)別出來。接著,可使用現(xiàn)有CR方案來修補(bǔ)它。除非兩個(gè)位同時(shí)變壞,否則這種方案是在讀取擾亂之后進(jìn)行的非常有效的方式。權(quán)利要求1.一種存儲(chǔ)器裝置,其包含一存儲(chǔ)器陣列;和一控制器,其與所述存儲(chǔ)器陣列通信,其中所述控制器可操作以(a)從一與所述存儲(chǔ)器裝置通信的主機(jī)裝置處接收一請(qǐng)求以將數(shù)據(jù)寫入到所述存儲(chǔ)器陣列中的一第一地址;(b)將所述請(qǐng)求寫入到所述第一地址的數(shù)據(jù)與所述第一地址中含有的數(shù)據(jù)進(jìn)行比較;和(c)基于(b)中的所述比較,執(zhí)行以下操作中的一者(c1)將所述數(shù)據(jù)寫入到所述第一地址;(c2)在不將所述數(shù)據(jù)寫入到所述第一地址的情況下,通知所述主機(jī)裝置關(guān)于所述數(shù)據(jù)已被寫入到所述第一地址;和(c3)將所述數(shù)據(jù)寫入到一第二地址而并非所述第一地址。2.根據(jù)權(quán)利要求1所述的存儲(chǔ)器裝置,其中所述控制器可操作以響應(yīng)于含有一組未編程的存儲(chǔ)器單元的所述第一地址而執(zhí)行(cl)。3.根據(jù)權(quán)利要求1所述的存儲(chǔ)器裝置,其中所述控制器可操作以在所述請(qǐng)求寫入到所述第一地址的數(shù)據(jù)附加所述第一地址中含有的數(shù)據(jù)時(shí)執(zhí)行(cl)。4.根據(jù)權(quán)利要求1所述的存儲(chǔ)器裝置,其中所述第一地址中含有的所述數(shù)據(jù)包含一文件系統(tǒng)結(jié)構(gòu)。5.根據(jù)權(quán)利要求1所述的存儲(chǔ)器裝置,其中所述控制器可操作以響應(yīng)于所述主機(jī)試圖在一文件分配表中寫入指示一先前分配的地址是空閑的數(shù)據(jù)而執(zhí)行(c2)。6.根據(jù)權(quán)利要求1所述的存儲(chǔ)器裝置,其中所述控制器可操作以響應(yīng)于所述主機(jī)試圖將數(shù)據(jù)僅寫入到一文件列表中的一預(yù)定字段而執(zhí)行(c2)。7.根據(jù)權(quán)利要求1所述的存儲(chǔ)器裝置,其中所述控制器可操作以響應(yīng)于所述主機(jī)試圖將數(shù)據(jù)僅寫入到一最后訪問日期字段而執(zhí)行(c2)。8.根據(jù)權(quán)利要求1所述的存儲(chǔ)器裝置,其中所述控制器可操作以響應(yīng)于所述主機(jī)試圖將數(shù)據(jù)僅寫入到一目錄列表中的一預(yù)定字段而執(zhí)行(c2)。9.根據(jù)權(quán)利要求1所述的存儲(chǔ)器裝置,其中所述控制器可操作以在所述請(qǐng)求寫入到所述第一地址的數(shù)據(jù)不同于所述第一地址中含有的所述數(shù)據(jù)時(shí)執(zhí)行(c3)。10.根據(jù)權(quán)利要求1所述的存儲(chǔ)器裝置,其中所述控制器可操作以在所述請(qǐng)求寫入到所述第一地址的數(shù)據(jù)不同于所述第一地址中含有的所述數(shù)據(jù)且所述差異不是僅位于一文件列表中的一預(yù)定字段中時(shí)執(zhí)行(C3)。11.根據(jù)權(quán)利要求1所述的存儲(chǔ)器裝置,其中所述控制器可操作以在所述請(qǐng)求寫入到所述第一地址的數(shù)據(jù)不同于所述第一地址中含有的所述數(shù)據(jù)且所述差異不是僅位于一目錄列表中的一預(yù)定字段中時(shí)執(zhí)行(C3)。12.根據(jù)權(quán)利要求1所述的存儲(chǔ)器裝置,其中所述控制器可操作以響應(yīng)于一格式化所述存儲(chǔ)器裝置的試圖而產(chǎn)生一錯(cuò)誤。13.根據(jù)權(quán)利要求1所述的存儲(chǔ)器裝置,其中所述控制器可操作以響應(yīng)于一將數(shù)據(jù)寫入到一文件分配表的一地址之前的一地址的試圖而產(chǎn)生一錯(cuò)誤。14.根據(jù)權(quán)利要求1所述的存儲(chǔ)器裝置,其中所述控制器可進(jìn)一步操作以響應(yīng)于一將數(shù)據(jù)寫入到所述存儲(chǔ)器陣列中的一預(yù)定地址的試圖而產(chǎn)生一錯(cuò)誤。15.根據(jù)權(quán)利要求1所述的存儲(chǔ)器裝置,其中所述控制器可操作以響應(yīng)于所述存儲(chǔ)器陣列是滿的而產(chǎn)生一錯(cuò)誤。16.根據(jù)權(quán)利要求1所述的存儲(chǔ)器裝置,其中所述控制器可進(jìn)一步操作以更新所述存儲(chǔ)器陣列中的一文件分配表以指示所述第二地址在執(zhí)行(c3)時(shí)已不再是空閑的。17.根據(jù)權(quán)利要求1所述的存儲(chǔ)器裝置,其中將所述存儲(chǔ)器陣列組織成可被部分寫入的若干邏輯單元,藉此在所述邏輯單元填滿之前可對(duì)每個(gè)邏輯單元執(zhí)行多個(gè)寫入操作,且其中所述控制器可操作以在對(duì)一邏輯單元進(jìn)行一最后寫入操作時(shí)針對(duì)所述邏輯單元寫入ECC數(shù)據(jù)。18.根據(jù)權(quán)利要求1所述的存儲(chǔ)器裝置,其中所述控制器包含一第一頁面寄存器;和一第二頁面寄存器;其中將所述第一地址中含有的所述數(shù)據(jù)寫入到所述第一頁面寄存器中,而將待寫入到所述第一地址的所述數(shù)據(jù)寫入到所述第二頁面寄存器中。19.根據(jù)權(quán)利要求1所述的存儲(chǔ)器裝置,其中所述存儲(chǔ)器陣列包含一一次可編程存儲(chǔ)器陣列。20.根據(jù)權(quán)利要求1所述的存儲(chǔ)器裝置,其中所述存儲(chǔ)器陣列包含一數(shù)次可編程存儲(chǔ)器陣列。21.根據(jù)權(quán)利要求1所述的存儲(chǔ)器裝置,其中所述存儲(chǔ)器陣列包含一三維存儲(chǔ)器陣列。22.根據(jù)權(quán)利要求1所述的存儲(chǔ)器裝置,其中所述存儲(chǔ)器裝置包含一電連接器,所述電連接器經(jīng)配置以與所述主機(jī)裝置上的一相應(yīng)電連接器緊密配合,且其中所述主機(jī)裝置包含一多次寫入文件系統(tǒng)。23.—種存儲(chǔ)器裝置,其包含一存儲(chǔ)器陣列,其存儲(chǔ)一文件系統(tǒng)結(jié)構(gòu);和一控制器,其與所述存儲(chǔ)器陣列通信,其中所述控制器可操作以(a)從一與所述存儲(chǔ)器裝置通信的主機(jī)裝置處接收一請(qǐng)求以在所述文件系統(tǒng)結(jié)構(gòu)中寫入指示一先前分配的地址是空閑的數(shù)據(jù);和(b)在不將所述數(shù)據(jù)寫入在所述文件系統(tǒng)結(jié)構(gòu)中的情況下,通知所述主機(jī)裝置關(guān)于所述數(shù)據(jù)已被寫入在所述文件系統(tǒng)結(jié)構(gòu)中。24.根據(jù)權(quán)利要求23所述的存儲(chǔ)器裝置,其中所述文件系統(tǒng)結(jié)構(gòu)包含一文件分配表。25.根據(jù)權(quán)利要求23所述的存儲(chǔ)器裝置,其中所述數(shù)據(jù)包含0。26.根據(jù)權(quán)利要求23所述的存儲(chǔ)器裝置,其中所述存儲(chǔ)器陣列包含一一次可編程存儲(chǔ)器陣列。27.根據(jù)權(quán)利要求23所述的存儲(chǔ)器裝置,其中所述存儲(chǔ)器陣列包含一數(shù)次可編程存儲(chǔ)器陣列。28.根據(jù)權(quán)利要求23所述的存儲(chǔ)器裝置,其中所述存儲(chǔ)器陣列包含一三維存儲(chǔ)器陣列。29.—種存儲(chǔ)器裝置,其包含一存儲(chǔ)器陣列,其存儲(chǔ)一文件系統(tǒng)結(jié)構(gòu);和一控制器,其與所述存儲(chǔ)器陣列通信,其中所述控制器可操作以響應(yīng)于一將數(shù)據(jù)寫入到所述文件系統(tǒng)結(jié)構(gòu)的一地址之前的一地址的試圖而產(chǎn)生一錯(cuò)誤。30.根據(jù)權(quán)利要求29所述的存儲(chǔ)器裝置,其中所述文件系統(tǒng)結(jié)構(gòu)包含一文件分配表。31.根據(jù)權(quán)利要求29所述的存儲(chǔ)器裝置,其中響應(yīng)于一格式化所述存儲(chǔ)器裝置的命令而作出所述將數(shù)據(jù)寫入到所述文件系統(tǒng)結(jié)構(gòu)的所述地址之前的所述地址的試圖。32.根據(jù)權(quán)利要求29所述的存儲(chǔ)器裝置,其中所述存儲(chǔ)器陣列包含一一次可編程存儲(chǔ)器陣列。33.根據(jù)權(quán)利要求29所述的存儲(chǔ)器裝置,其中所述存儲(chǔ)器陣列包含一數(shù)次可編程存儲(chǔ)器陣列。34.根據(jù)權(quán)利要求29所述的存儲(chǔ)器裝置,其中所述存儲(chǔ)器陣列包含一三維存儲(chǔ)器陣列。35.—種存儲(chǔ)器裝置,其包含一存儲(chǔ)器陣列;和一控制器,其與所述存儲(chǔ)器陣列通信,其中所述控制器可操作以(a)從一與所述存儲(chǔ)器裝置通信的主機(jī)裝置處接收一請(qǐng)求以將數(shù)據(jù)寫入到所述存儲(chǔ)器陣列中的一第一地址;(b)將所述數(shù)據(jù)寫入到一第二地址而并非所述第一地址;和(C)更新所述存儲(chǔ)器陣列中的一文件系統(tǒng)結(jié)構(gòu)以指示所述第二地址已不再是空閑的。36.根據(jù)權(quán)利要求35所述的存儲(chǔ)器裝置,其中所述文件系統(tǒng)結(jié)構(gòu)包含一文件分配表。37.根據(jù)權(quán)利要求35所述的存儲(chǔ)器裝置,其中將所述存儲(chǔ)器陣列以邏輯形式組織成若干具有一第一大小的區(qū)域,且其中所述數(shù)據(jù)包含一小于所述第一大小的第二大小,其中由所述第一大小與所述第二大小之間的差異界定一邊帶區(qū)域,且其中所述控制器可進(jìn)一歩操作以將所述第二地址寫入在所述第一地址的一邊帶區(qū)域中。38.根據(jù)權(quán)利要求37所述的存儲(chǔ)器裝置,其中所述控制器可進(jìn)一步操作以僅讀取所述邊帶區(qū)域。39.根據(jù)權(quán)利要求37所述的存儲(chǔ)器裝置,其中所述控制器包含一高速緩沖存儲(chǔ)器,所述高速緩沖存儲(chǔ)器可操作以存儲(chǔ)來自一邊帶的數(shù)據(jù)。40.根據(jù)權(quán)利要求35所述的存儲(chǔ)器裝置,其中將所述存儲(chǔ)器陣列以邏輯形式組織成若干具有一第一大小的區(qū)域,且其中所述數(shù)據(jù)包含一小于所述第一大小的第二大小,其中由所述第一大小與所述第二大小之間的差異來界定一邊帶區(qū)域,且其中所述控制器可進(jìn)一步操作以將一地址寫入到所述第一地址的一邊帶區(qū)域中的一重映射表。41.根據(jù)權(quán)利要求40所述的存儲(chǔ)器裝置,其中所述控制器包含一高速緩沖存儲(chǔ)器,所述高速緩沖存儲(chǔ)器可操作以存儲(chǔ)來自所述重映射表的數(shù)據(jù)。42.根據(jù)權(quán)利要求35所述的存儲(chǔ)器裝置,其中所述控制器可進(jìn)一步操作以將所述第二地址寫入在一物理到邏輯地址表中。43.根據(jù)權(quán)利要求35所述的存儲(chǔ)器裝置,其中所述控制器可進(jìn)一步操作以將所述第二地址寫入在一指針表中。44.根據(jù)權(quán)利要求35所述的存儲(chǔ)器裝置,其中所述存儲(chǔ)器陣列包含一預(yù)分配的區(qū)域,所述預(yù)分配的區(qū)域經(jīng)指定用于重映射操作,且其中所述控制器可操作以在所述文件系統(tǒng)結(jié)構(gòu)指示在所述存儲(chǔ)器陣列中不再有空閑地址時(shí)寫入到所述預(yù)分配的區(qū)域。45.根據(jù)權(quán)利要求44所述的存儲(chǔ)器裝置,其中所述預(yù)分配的區(qū)域可由所述主機(jī)裝置訪問。46.根據(jù)權(quán)利要求35所述的存儲(chǔ)器裝置,其中所述控制器可操作以存儲(chǔ)一包含兩個(gè)狀態(tài)的旗標(biāo),一第一狀態(tài)指示正在使用一指針跟蹤方案,且一第二狀態(tài)指示正在使用一表方案。47.根據(jù)權(quán)利要求35所述的存儲(chǔ)器裝置,其中所述存儲(chǔ)器陣列包含一一次可編程存儲(chǔ)器陣列。48.根據(jù)權(quán)利要求35所述的存儲(chǔ)器裝置,其中所述存儲(chǔ)器陣列包含一數(shù)次可編程存儲(chǔ)器陣列。49.根據(jù)權(quán)利要求35所述的存儲(chǔ)器裝置,其中所述存儲(chǔ)器陣列包含一三維存儲(chǔ)器陣列。50.根據(jù)權(quán)利要求35所述的存儲(chǔ)器裝置,其中所述存儲(chǔ)器裝置包含一電連接器,所述電連接器經(jīng)配置以與所述主機(jī)裝置上的一相應(yīng)電連接器緊密配合,且其中所述主機(jī)裝置包含一多次寫入文件系統(tǒng)。51.—種存儲(chǔ)器裝置,其包含一存儲(chǔ)器陣列,其中將所述存儲(chǔ)器陣列組織成若干可被部分寫入的邏輯單元,藉此在邏輯單元填滿之前可對(duì)每個(gè)邏輯單元執(zhí)行多個(gè)寫入操作;和一控制器,其與所述存儲(chǔ)器陣列通信,其中所述控制器可操作以在對(duì)一邏輯單元進(jìn)行一最后寫入操作時(shí)針對(duì)所述邏輯單元寫入ECC數(shù)據(jù)。52.根據(jù)權(quán)利要求51所述的存儲(chǔ)器裝置,其中所述控制器可操作以僅在對(duì)一邏輯單元進(jìn)行一最后寫入操作時(shí)針對(duì)所述邏輯單元寫入ECC數(shù)據(jù)。53.根據(jù)權(quán)利要求51所述的存儲(chǔ)器裝置,其中所述控制器可操作以在對(duì)一邏輯單元進(jìn)行一第一寫入操作時(shí)和在對(duì)所述邏輯單元進(jìn)行一最后寫入操作時(shí)都針對(duì)所述邏輯單元寫入ECC數(shù)據(jù)。54.根據(jù)權(quán)利要求51所述的存儲(chǔ)器裝置,其中所述控制器可操作以在將一最后兩字節(jié)寫入到一邏輯單元時(shí)針對(duì)所述邏輯單元寫入ECC數(shù)據(jù)。55.根據(jù)權(quán)利要求51所述的存儲(chǔ)器裝置,其中所述控制器可操作以在將一最后六字節(jié)寫入到一邏輯單元時(shí)針對(duì)所述邏輯單元寫入ECC數(shù)據(jù)。56.根據(jù)權(quán)利要求51所述的存儲(chǔ)器裝置,其中所述控制器可進(jìn)一步操作以響應(yīng)于一ECC字是無效的而執(zhí)行一重映射操作。57.根據(jù)權(quán)利要求51所述的存儲(chǔ)器裝置,其中所述存儲(chǔ)器陣列包含一一次可編程存儲(chǔ)器陣列。58.根據(jù)權(quán)利要求51所述的存儲(chǔ)器裝置,其中所述存儲(chǔ)器陣列包含一數(shù)次可編程存儲(chǔ)器陣列。59.根據(jù)權(quán)利要求51所述的存儲(chǔ)器裝置,其中所述存儲(chǔ)器陣列包含一三維存儲(chǔ)器陣列。全文摘要本文描述的實(shí)施例可用于使得一次或數(shù)次可編程存儲(chǔ)器能與現(xiàn)有消費(fèi)者電子裝置(例如與快閃——可擦除、非易失性存儲(chǔ)器一起工作的那些裝置)一起工作而不需要一固件升級(jí),從而提供逆向兼容性且同時(shí)將用戶沖擊減到最小。因此,這些實(shí)施例是一種將一次或數(shù)次可編程存儲(chǔ)器與具有閃存卡插槽的現(xiàn)有消費(fèi)者電子裝置橋接的可行方式。這些實(shí)施例還允許設(shè)計(jì)出未來消費(fèi)者電子裝置而不必為了包括針對(duì)一次或數(shù)次可編程存儲(chǔ)器定制的文件系統(tǒng)來更新固件。文檔編號(hào)G06F12/00GK101401076SQ200580027871公開日2009年4月1日申請(qǐng)日期2005年7月22日優(yōu)先權(quán)日2004年8月24日發(fā)明者克里斯托弗·S·穆爾,德里克·博施,佳楊,阿德里爾·杰戴,馬特·弗魯因申請(qǐng)人:桑迪士克3D公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1