專利名稱::錯誤校正控制器及其閃存芯片系統(tǒng)與錯誤校正方法
技術(shù)領(lǐng)域:
:本發(fā)明是有關(guān)于一種閃存芯片系統(tǒng),且特別是有關(guān)于一種具錯誤校正(errorcorrecting)功能的閃存芯片系統(tǒng)及其錯誤校正控制器與錯誤校正方法。
背景技術(shù):
:數(shù)字相機(jī)、手機(jī)與MP3播放器在這幾年來的成長十分迅速,使得消費(fèi)者對儲存媒體的需求也急速增加。由于閃存(FlashMemory)具有數(shù)據(jù)非易失性、省電、體積小與無機(jī)械結(jié)構(gòu)等的特性,適合可攜式應(yīng)用,最適合使用于這類可攜式由電池供電的產(chǎn)品上。例如,存儲卡就是一種以NAND閃存作為儲存媒體的儲存裝置,并且目前已被廣泛使用作為數(shù)字相機(jī)、手機(jī)與MP3播放器的儲存媒體。由于NAND閃存具有以頁為單位寫入數(shù)據(jù)、以區(qū)塊為單位抹除數(shù)據(jù)、每一存儲單元需先抹除后方可寫入數(shù)據(jù)、區(qū)塊會因多次的寫入而損毀等特性,因此使用NAND閃存作為儲存媒體的主機(jī)(例如,數(shù)字相機(jī)、手機(jī)與MP3播放器)的主機(jī)控制器必須具有可管理閃存的區(qū)塊管理功能。然而,隨著閃存技術(shù)快速地發(fā)展,容量更大的閃存不斷推陳出新,舊主機(jī)的使用者會有更新更大儲存容量的儲存媒體的需求。一般來說,新閃存需更強(qiáng)的區(qū)塊管理功能方可運(yùn)作,然而舊主機(jī)控制器往往無法支持新的功能。例如,在閃存的區(qū)塊管理功能中會使用錯誤校正程序來錯誤校正所讀取的數(shù)據(jù),并且依據(jù)錯誤校正的結(jié)果來獲知閃存區(qū)塊的狀態(tài)(例如,區(qū)塊是否已損壞)。在舊主機(jī)控制器所具備的錯誤校正能力往往無法支持新一代閃存所需的錯誤校正能力(例如,當(dāng)舊主機(jī)控制器生產(chǎn)時僅配置具可檢測2個錯誤位/錯誤校正1個錯誤位能力的錯誤校正電路,然而當(dāng)新閃存需具能夠錯誤校正4個錯誤位的控制器方可正常運(yùn)作)時,此舊主機(jī)控制器將無法支持新一代閃存?;?,有需要發(fā)展一套能夠使舊主機(jī)控制器在不更動原硬件設(shè)計(jì)架構(gòu)下以符合新一代閃存所需的錯誤校正能力來存取新一代的閃存的機(jī)制。本發(fā)明提供一種閃存芯片系統(tǒng),其能夠使舊主機(jī)系統(tǒng)的主機(jī)控制器存取新一代的本發(fā)明提供一種錯誤校正方法,其能夠使舊主機(jī)系統(tǒng)的主機(jī)控制器存取新一代的
發(fā)明內(nèi)容本發(fā)明提供一種錯誤校正控制器,其能夠使舊主機(jī)系統(tǒng)的主機(jī)控制器存取新一代的閃存。閃存。閃存。本發(fā)明提出一種錯誤校正控制器,其包括第一閃存接口、第二閃存接口、微處理器單元、造錯單元與第一錯誤校正單元。第一閃存接口是用以連接主機(jī)控制器。第二閃存接口是用以連接閃存。微處理器單元是電性連接至第一閃存接口與第二閃存接口。造錯單元是電性連接至微處理器單元。第一錯誤校正單元是電性連接至微處理器單元,其中第一錯誤校正單元會在主機(jī)控制器欲寫入數(shù)據(jù)至上述閃存時產(chǎn)生第一錯誤校正編碼(errorcorrectingcode,ECC)并且將欲寫入的數(shù)據(jù)與所產(chǎn)生的第一錯誤校正編碼儲存在閃存中。在本發(fā)明中,當(dāng)主機(jī)控制器欲從閃存中讀取數(shù)據(jù)時,微處理器單元會從閃存中讀取此數(shù)據(jù)與對應(yīng)此數(shù)據(jù)的第一錯誤校正編碼并且第一錯誤校正單元會依據(jù)所讀取的第一錯誤校正編碼來判斷所讀取的數(shù)據(jù)是否存有錯誤位且此錯誤位是否可被錯誤校正,其中當(dāng)?shù)谝诲e誤校正單元判斷所讀取的數(shù)據(jù)存有錯誤位且此錯誤位可被錯誤校正時,則造錯單元會產(chǎn)生可被錯誤校正的錯誤數(shù)據(jù)并且微處理器單元會傳送此可被校正的錯誤數(shù)據(jù)給上述主機(jī)控制器,其中此可被錯誤校正的錯誤數(shù)據(jù)是依據(jù)所述第一錯誤校正編碼完成錯誤校正后的數(shù)據(jù)來產(chǎn)生并且是可被主機(jī)控制器來錯誤校正。在本發(fā)明的一實(shí)施例中,當(dāng)?shù)谝诲e誤校正單元判斷所讀取的數(shù)據(jù)存有錯誤位且此錯誤位無法被錯誤校正時,則微處理器單元會傳送預(yù)設(shè)錯誤數(shù)據(jù)給上述主機(jī)控制器,其中上述主機(jī)控制器會判斷此預(yù)設(shè)錯誤數(shù)據(jù)具有錯誤位且此錯誤位無法被錯誤校正。在本發(fā)明的一實(shí)施例中,上述的主機(jī)控制器還包括有第三錯誤校正單元。在本發(fā)明的一實(shí)施例中,上述的第三錯誤校正單元的最大錯誤校正位數(shù)小于上述第一錯誤校正單元的最大錯誤校正位數(shù)。在本發(fā)明的一實(shí)施例中,上述的數(shù)據(jù)還包括第二錯誤校正編碼。在本發(fā)明的一實(shí)施例中,上述的錯誤校正控制器還包括電性連接至上述微處理單元的第二錯誤校正單元,其中此第二錯誤校正單元的最大錯誤校正位數(shù)是相同于上述第三錯誤校正單元的最大錯誤校正位數(shù)。在本發(fā)明的一實(shí)施例中,當(dāng)上述主機(jī)控制器欲從上述閃存中讀取此數(shù)據(jù),第二錯誤校正單元會根據(jù)此數(shù)據(jù)重新產(chǎn)生對應(yīng)此數(shù)據(jù)的第二錯誤校正編碼。在本發(fā)明的一實(shí)施例中,上述的當(dāng)主機(jī)控制器欲寫入數(shù)據(jù)至上述閃存時,則上述第二錯誤校正單元會依據(jù)此第二錯誤校正編碼來錯誤校正欲寫入的數(shù)據(jù)。在本發(fā)明的一實(shí)施例中,上述的微處理器單元將關(guān)于上述第一錯誤校正單元的參數(shù)信息儲存在上述閃存的一物理區(qū)塊中,并且將儲存此參數(shù)信息的物理區(qū)塊標(biāo)記為已損毀區(qū)塊。此外,本發(fā)明亦提出一種配置上述閃存與上述錯誤校正控制器的閃存芯片系統(tǒng)以及其錯誤校正方法。本發(fā)明還提出一種閃存芯片系統(tǒng),包括閃存;以及錯誤校正控制器,電性連接至所述閃存,其中該錯誤校正控制器會在所述主機(jī)控制器欲寫入數(shù)據(jù)至所述閃存時產(chǎn)生第一錯誤校正編碼并且將所述數(shù)據(jù)與所述第一錯誤校正編碼儲存在所述閃存中,其中當(dāng)所述主機(jī)控制器欲從所述閃存中讀取所述數(shù)據(jù)時,所述錯誤校正控制器會從所述閃存中讀取所述數(shù)據(jù)與所述第一錯誤校正編碼,并且依據(jù)所述第一錯誤校正編碼來判斷所讀取的所述數(shù)據(jù)是否存有至少一錯誤位且所述至少一錯誤位是否可被錯誤校正,其中當(dāng)所述錯誤校正控制器判斷所讀取的所述數(shù)據(jù)存有所述至少一錯誤位且所述至少一錯誤位可被錯誤校正時,則所述錯誤校正控制器會傳送可被錯誤校正的錯誤數(shù)據(jù)給所述主機(jī)控制器,其中所述可被錯誤校正的錯誤數(shù)據(jù)是依據(jù)所述第一錯誤校正編碼完成錯誤校正后的所述數(shù)據(jù)來產(chǎn)生并且可被所述主機(jī)控制器來錯誤校正。本發(fā)明還提出一種錯誤校正方法,適用于錯誤校正主機(jī)控制器對閃存所存取的數(shù)據(jù),所述錯誤校正方法包括當(dāng)所述主機(jī)控制器欲寫入數(shù)據(jù)至所述閃存時產(chǎn)生第一錯誤校7正編碼并且將所述數(shù)據(jù)與所述第一錯誤校正編碼儲存在所述閃存中;以及當(dāng)所述主機(jī)控制器欲從所述閃存中讀取所述數(shù)據(jù)時,從所述閃存中讀取所述數(shù)據(jù)與所述第一錯誤校正編碼并且依據(jù)所述第一錯誤校正編碼來判斷所讀取的所述數(shù)據(jù)是否存有至少一錯誤位且所述至少一錯誤位是否可被錯誤校正,其中當(dāng)判斷所讀取的所述數(shù)據(jù)存有所述至少一錯誤位且所述至少一錯誤位可被錯誤校正時,則傳送可被錯誤校正的錯誤數(shù)據(jù)給所述主機(jī)控制器,其中所述可被錯誤校正的錯誤數(shù)據(jù)是依據(jù)所述第一錯誤校正編碼完成錯誤校正后的所述數(shù)據(jù)來產(chǎn)生并且可被所述主機(jī)控制器來錯誤校正。本發(fā)明亦提出一種錯誤校正控制器,其包括第一閃存接口、第二閃存接口、微處理器單元與第一錯誤校正單元。第一閃存接口是用以連接主機(jī)控制器。第二閃存接口是用以連接閃存。微處理器單元是電性連接至第一閃存接口與第二閃存接口。第一錯誤校正單元是電性連接至微處理器單元,其中第一錯誤校正單元會在主機(jī)控制器欲寫入數(shù)據(jù)至上述閃存時產(chǎn)生第一錯誤校正編碼并且將欲寫入的數(shù)據(jù)與所產(chǎn)生的第一錯誤校正編碼儲存在閃存中。緩沖器是電性連接至微處理器單元并且用以暫存數(shù)據(jù)。在本發(fā)明中,當(dāng)主機(jī)控制器欲從閃存中讀取數(shù)據(jù)時,微處理器單元會從閃存中讀取此數(shù)據(jù)與其對應(yīng)的第一錯誤校正編碼,并且第一錯誤校正單元會依據(jù)第一錯誤校正編碼來對所讀取的數(shù)據(jù)進(jìn)行錯誤校正程序,并且微處理器單元會將已錯誤校正的數(shù)據(jù)傳送給主機(jī)控制器,并且其中微處理器單元會將此錯誤校正程序中所判斷的錯誤位數(shù)依據(jù)制造商指令(vendorcommand)響應(yīng)給主機(jī)控制器。此外,本發(fā)明亦提出一種配置上述閃存與上述錯誤校正控制器的閃存芯片系統(tǒng)以及其錯誤校正方法。本發(fā)明還提出一種閃存芯片系統(tǒng),包括閃存;以及錯誤校正控制器,電性連接至所述閃存,其中所述錯誤校正控制器會在所述主機(jī)控制器欲寫入數(shù)據(jù)至所述閃存時產(chǎn)生第一錯誤校正編碼并且將所述數(shù)據(jù)與所述第一錯誤校正編碼儲存在所述閃存中,其中當(dāng)所述主機(jī)控制器欲從所述閃存中讀取所述數(shù)據(jù)時,所述錯誤校正控制器會從所述閃存中讀取所述數(shù)據(jù)與所述第一錯誤校正編碼,依據(jù)所述第一錯誤校正編碼來對所讀取的所述數(shù)據(jù)進(jìn)行錯誤校正程序,并且將已錯誤校正的所述數(shù)據(jù)傳送給所述主機(jī)控制器,以及其中所述錯誤校正控制器會將在所述錯誤校正程序所判斷的至少一錯誤位數(shù)依據(jù)制造商指令響應(yīng)給所述主機(jī)控制器。本發(fā)明還提出一種錯誤校正方法,適用于錯誤校正主機(jī)控制器對閃存所存取的數(shù)據(jù),所述錯誤校正方法包括當(dāng)所述主機(jī)控制器欲寫入數(shù)據(jù)至所述閃存時產(chǎn)生第一錯誤校正編碼并且將所述數(shù)據(jù)與所述第一錯誤校正編碼儲存在所述閃存中;當(dāng)所述主機(jī)控制器欲從所述閃存中讀取所述數(shù)據(jù)時,從所述閃存中讀取所述數(shù)據(jù)與所述第一錯誤校正編碼,依據(jù)所述第一錯誤校正編碼來對所讀取的所述數(shù)據(jù)進(jìn)行錯誤校正程序;將已錯誤校正的所述數(shù)據(jù)傳送給所述主機(jī)控制器;以及將所述錯誤校正程序中所判斷的至少一錯誤位數(shù)依據(jù)制造商指令響應(yīng)給所述主機(jī)控制器?;谏鲜?,本發(fā)明通過在舊系統(tǒng)的主機(jī)控制器與新閃存之間配置能支持新閃存的錯誤校正控制器,并且由此錯誤校正控制器執(zhí)行符合新閃存的錯誤校正編碼與錯誤校正程序,基此可使舊系統(tǒng)的主機(jī)控制器存取新一代的閃存。為讓本發(fā)明的上述特征和優(yōu)點(diǎn)能更明顯易懂,下文特舉實(shí)施例,并配合所附圖式作詳細(xì)說明如下。圖1是根據(jù)本發(fā)明第一實(shí)施例繪示閃存芯片系統(tǒng)的概要方塊圖。圖2是根據(jù)本發(fā)明第一實(shí)施例繪示主機(jī)控制器存取閃存芯片系統(tǒng)的數(shù)據(jù)流示意圖。圖3是根據(jù)本發(fā)明第一實(shí)施例繪示錯誤校正步驟的流程圖。圖4是根據(jù)本發(fā)明第二實(shí)施例繪示閃存芯片系統(tǒng)的概要方塊圖。圖5是根據(jù)本發(fā)明第二實(shí)施例繪示主機(jī)控制器存取閃存芯片系統(tǒng)的數(shù)據(jù)流示意圖。圖6是根據(jù)本發(fā)明第二實(shí)施例繪示錯誤校正步驟的流程圖。[主要元件標(biāo)號說明]100:閃存芯片系統(tǒng)102:閃存102-1102-N:物理區(qū)土央104:錯誤校正控制器104a:微處理器單元104b:第一錯誤校正單元104c:緩沖器104d:第一閃存接口104e:第二閃存接口104f:造錯單元200:主機(jī)控制器202:舊錯誤校正單元DATA1、DATA2:數(shù)據(jù)ECC1、ECC2、ECC2,錯誤校正編碼S301、S303、S307、S309、S311、S313、S315、S317、S319、S321:錯誤校正的步驟400:閃存芯片系統(tǒng)402:閃存402-1402-N:物理區(qū)土央404:錯誤校正控制器404a:微處理器單元404b:第一錯誤校正單元404c:緩沖器404d:第一閃存接口404e:第二閃存接口404f:第二錯誤校正單元S601、S603、S607、S609、S611、S613、S615、S617、S619、S621、S623、S625、S627:錯誤校正的步驟具體實(shí)施例方式本發(fā)明在舊主機(jī)系統(tǒng)的主機(jī)控制器與新閃存之間配置能夠支持新閃存的錯誤校正控制器來對所存取的數(shù)據(jù)執(zhí)行錯誤校正編碼與錯誤校正程序?;?,可在不更動原舊主機(jī)系統(tǒng)的架構(gòu)下,使舊主機(jī)系統(tǒng)的主機(jī)控制器能夠存取新一代的閃存。以下將以數(shù)個范例實(shí)施例詳細(xì)說明本發(fā)明。[第一實(shí)施例]圖1是根據(jù)本發(fā)明第一實(shí)施例繪示閃存芯片系統(tǒng)的概要方塊圖。請參照圖1,閃存芯片系統(tǒng)100包括閃存102與錯誤校正控制器104。閃存芯片系統(tǒng)100會與主機(jī)控制器200連接,由主機(jī)控制器200對其執(zhí)行各種存取運(yùn)作。特別是,主機(jī)控制器200具有舊錯誤校正單元202,其中舊錯誤校正單元202可對數(shù)據(jù)提供錯誤校正1個錯誤位與檢測2個錯誤位的能力。值得一提的是,在本實(shí)施例中閃存102與錯誤校正控制器104是封裝為單一系統(tǒng)芯片,然而在本發(fā)明另一實(shí)施例中閃存102與錯誤校正控制器104可分別為獨(dú)立的芯片。閃存102是用以儲存數(shù)據(jù)的儲存媒體。閃存102會劃分為多個物理區(qū)塊102-1102-N,此些物理區(qū)塊單元會被界定為數(shù)據(jù)區(qū)(dataarea)與備用區(qū)(sparearea)。歸類為數(shù)據(jù)區(qū)的物理區(qū)塊中會儲存由寫入指令所寫入的有效數(shù)據(jù),而備用區(qū)中的物理區(qū)塊是用以在執(zhí)行寫入指令時替換數(shù)據(jù)區(qū)中的物理區(qū)塊。具體來說,主機(jī)控制器200欲對數(shù)據(jù)區(qū)的物理區(qū)塊進(jìn)行寫入時,主機(jī)控制器200會從備用區(qū)中提取物理區(qū)塊并且將在數(shù)據(jù)區(qū)中欲更新的物理區(qū)塊中的有效舊數(shù)據(jù)與欲寫入的新數(shù)據(jù)寫入至從備用區(qū)中提取的物理區(qū)塊并且將已寫入新數(shù)據(jù)的物理區(qū)塊關(guān)聯(lián)為數(shù)據(jù)區(qū),并且將原本數(shù)據(jù)區(qū)的物理區(qū)塊進(jìn)行抹除并關(guān)聯(lián)為備用區(qū)。為了能夠讓主機(jī)控制器200所屬的主機(jī)系統(tǒng)能夠順利地存取以輪替方式儲存數(shù)據(jù)的物理區(qū)塊,主機(jī)控制器200會配置邏輯區(qū)塊以供主機(jī)系統(tǒng)進(jìn)行存取,其中邏輯區(qū)塊是根據(jù)物理區(qū)塊的大小來配置。也就是說主機(jī)控制器200會建立邏輯-物理地址映射表(logical-physicaladdressm即pingtable),并且在此表中記錄與更新邏輯區(qū)塊與數(shù)據(jù)區(qū)的物理區(qū)塊之間的映射關(guān)系來反映物理區(qū)塊的輪替,所以主機(jī)系統(tǒng)僅需要針對所提供邏輯區(qū)塊對主機(jī)控制器200下達(dá)存取指令,而主機(jī)控制器200會依據(jù)邏輯-物理地址映射表來對所映射的物理區(qū)塊進(jìn)行實(shí)際地讀取或?qū)懭霐?shù)據(jù)。此外,閃存102中會保留部分的物理區(qū)塊作為替代區(qū),其是用以當(dāng)數(shù)據(jù)區(qū)或備用區(qū)中的物理區(qū)塊損壞時取代已損壞的物理區(qū)塊來繼續(xù)運(yùn)作。錯誤校正控制器104是電性連接至閃存102并且用以執(zhí)行符合閃存102所需錯誤校正能力的錯誤校正編碼與錯誤校正程序。例如,在對閃存102的執(zhí)行存取時需提供能夠錯誤校正4個錯誤位的錯誤校正編碼與錯誤校正程序。一般來說,錯誤校正程序包括依據(jù)預(yù)先儲存的錯誤校正編碼來判斷數(shù)據(jù)是否存有錯誤位,并且當(dāng)數(shù)據(jù)存有錯誤位時依據(jù)此錯誤校正編碼來校正錯誤的位。特別是,在本發(fā)明實(shí)施例中錯誤校正控制器104會在對主機(jī)控制器200欲讀取的數(shù)據(jù)執(zhí)行錯誤校正程序后傳送錯誤校正單元202可處理的數(shù)據(jù)給主機(jī)控制器200。錯誤校正控制器104包括微處理器單元104a、第一錯誤校正單元104b、緩沖器104c、第一閃存接口104d、第二閃存接口104e與造錯單元104f。微處理器單元104a是用以控制與協(xié)調(diào)錯誤校正控制器104中所有元件的運(yùn)作。具體來說,微處理器單元104a會依據(jù)本發(fā)明實(shí)施例所提出的錯誤校正方法(如圖3所示)處理與響應(yīng)主機(jī)控制器200對閃存芯片系統(tǒng)100所下達(dá)的存取指令(例如,寫入指令或讀取指令)。第一錯誤校正單元104b是電性連接至微處理器單元104a。第一錯誤校正單元104b會在主機(jī)控制器200欲寫入數(shù)據(jù)至閃存芯片系統(tǒng)100時產(chǎn)生符合閃存102規(guī)格的新錯誤校正編碼。在本發(fā)明實(shí)施例中,第一錯誤校正單元104b的最大錯誤校正位數(shù)是設(shè)計(jì)為4個位且可檢測8個錯誤位,以提供符合閃存102所需的錯誤校正能力。然而,必須了解的是本發(fā)明的第一錯誤校正單元104b不限于最大錯誤校正位數(shù)是設(shè)計(jì)為4個位的錯誤校正電路。換言之,可支持閃存102所需的錯誤校正能力的錯誤校正電路都可應(yīng)用于本發(fā)明。例如,若閃存102必需使用能夠錯誤校正4個錯誤位的錯誤校正編碼與錯誤校正程序來進(jìn)行存取時,第一錯誤校正單元104b可以是能夠錯誤校正4個錯誤位、8個錯誤位、12個錯誤位、24個錯誤位或48個錯誤位的錯誤校正電路。緩沖器104c是電性連接至微處理器單元104a并且用以暫存在主機(jī)控制器200與閃存102之間所傳送的數(shù)據(jù)。第一閃存接口104d是用以連接主機(jī)控制器200,并且第二閃存接口104e是用以連接閃存102。造錯單元104f是電性連接至微處理器單元104a并且用以依據(jù)微處理器單元104a的指令在數(shù)據(jù)中產(chǎn)生錯誤位。值得一提的是,在本實(shí)施例中是以硬件架構(gòu)來實(shí)作造錯單元104f,然而本發(fā)明不限于此,造錯單元104f亦可以固件形式來實(shí)作,在另一實(shí)施例中,該造錯單元104f亦可實(shí)作在微處理器單元104a中。圖2是根據(jù)本發(fā)明第一實(shí)施例繪示主機(jī)控制器200存取閃存芯片系統(tǒng)100的數(shù)據(jù)流示意圖。請參照圖2,當(dāng)主機(jī)控制器200由其主機(jī)系統(tǒng)(未繪示)接收欲寫入的數(shù)據(jù)DATA1時,主機(jī)控制器200的舊錯誤校正單元202會依據(jù)數(shù)據(jù)DATA1產(chǎn)生舊錯誤校正編碼ECC1,并且主機(jī)控制器200會對閃存芯片系統(tǒng)100下達(dá)寫入指令并且將數(shù)據(jù)DATA1與舊錯誤校正編碼ECC1傳送至閃存芯片系統(tǒng)100。當(dāng)錯誤校正控制器104的微處理器單元104a經(jīng)由第一閃存接口104d接收到主機(jī)控制器200所傳送的寫入指令WC、數(shù)據(jù)DATA1與舊錯誤校正編碼ECC1時,微處理器單元104a會得知此存取指令為寫入指令,并且將數(shù)據(jù)DATA1與舊錯誤校正編碼ECC1暫存于緩沖器104c中。然后,第一錯誤校正單元104b會使用包含數(shù)據(jù)DATA1與舊錯誤校正編碼ECC1的數(shù)據(jù)DATA2來產(chǎn)生新錯誤校正編碼ECC2。最后,將數(shù)據(jù)DATA2與新錯誤校正編碼ECC2傳送至閃存102的物理區(qū)塊中。另外,當(dāng)錯誤校正控制器104的微處理器單元104a經(jīng)由第一閃存接口104d從主機(jī)控制器200中接收到讀取數(shù)據(jù)DATA1與舊錯誤校正編碼ECC1的讀取指令RC時,微處理器單元104a會從閃存102中讀取包含數(shù)據(jù)DATA1與舊錯誤校正編碼ECC1的數(shù)據(jù)DATA2以及新錯誤校正編碼ECC2并且將數(shù)據(jù)DATA2與新錯誤校正編碼ECC2暫存于緩沖器104c中。之后,第一錯誤校正單元104b會依據(jù)新錯誤校正編碼ECC2來對所讀取的數(shù)據(jù)DATA2執(zhí)行錯誤校正程序。之后,微處理器單元104a會依據(jù)錯誤校正的結(jié)果傳送對應(yīng)的數(shù)據(jù)給主機(jī)控制器200。具體來說,第一錯誤校正單元104b會執(zhí)行錯誤校正程序來判斷數(shù)據(jù)DATA2中是否存有錯誤位以及若數(shù)據(jù)DATA2存有錯誤位時嘗試將錯誤位進(jìn)行錯誤校正。值得一提的是,由于如上所述主機(jī)控制器200的舊錯誤校正單元202亦會執(zhí)行錯誤校正程序并且主機(jī)控制器200會依據(jù)舊錯誤校正單元202的執(zhí)行結(jié)果對閃存的區(qū)塊執(zhí)行相關(guān)的管理運(yùn)作(例如,執(zhí)行平均區(qū)塊磨損(wear-leveling)程序),因此根據(jù)本發(fā)明實(shí)施例微處理器單元104a會在第一錯誤校正單元104b對數(shù)據(jù)DATA2執(zhí)行完錯誤校正程序后依據(jù)舊錯誤校正單元202的錯誤校正能力來提供數(shù)據(jù)DATA1與舊錯誤校正編碼ECC1給主機(jī)控制器200。例如,當(dāng)?shù)谝诲e誤校正單元104b判斷所讀取的數(shù)據(jù)DATA2無存有錯誤位時,則微處理器單元104a會傳送所讀取的數(shù)據(jù)DATA1與舊錯誤校正編碼ECC1給主機(jī)控制器200。另外,當(dāng)?shù)谝诲e誤校正單元104b判斷所讀取的數(shù)據(jù)存DATA2存有錯誤位且此錯誤位可被錯誤校正時,則造錯單元104f會在從第一錯誤校正單元104b接收到已錯誤校正的數(shù)據(jù)DATA1中隨機(jī)產(chǎn)生錯誤位,并且微處理器單元104a會將具有錯誤位的數(shù)據(jù)DATA1與舊錯誤校正編碼ECC1傳送給主機(jī)控制器200。特別是,造錯單元104f所產(chǎn)生具有錯誤位的數(shù)據(jù)DATA1是能夠由舊錯誤校正單元202依據(jù)舊錯誤校正編碼ECC1來錯誤校正,因此造錯單元104f會依據(jù)舊錯誤校正單元202的錯誤校正能力來產(chǎn)生具有錯誤位的數(shù)據(jù)DATA1。在本實(shí)施例中,舊錯誤校正單元202能錯誤校正1個錯誤位,因此造錯單元104f會在數(shù)據(jù)DATA1中隨機(jī)產(chǎn)生1個錯誤位,并且微處理器單元104a會將具有1個錯誤位的數(shù)據(jù)DATA1與舊錯誤校正編碼ECC1傳送給主機(jī)控制器200。基此,根據(jù)本發(fā)明實(shí)施例,閃存芯片系統(tǒng)100的錯誤校正控制器104雖已將錯誤位進(jìn)行錯誤校正,但亦可提供已發(fā)生錯誤位的信息給主機(jī)控制器,由此主機(jī)控制器200可獲知所存取的物理區(qū)塊已出現(xiàn)儲存狀態(tài)不穩(wěn)定的狀況。值得一提的是,在本發(fā)明另一實(shí)施例中,倘若舊錯誤校正單元202能錯誤校正4個錯誤位,而第一錯誤校正單元104b能錯誤校正8個錯誤位時,造錯單元104f亦可根據(jù)映射規(guī)則產(chǎn)生上述具錯誤位的數(shù)據(jù)DATA1。例如,當(dāng)數(shù)據(jù)DATA2中存有1或2個錯誤位時,造錯單元104f會在已由第一錯誤校正單元104b錯誤校正的數(shù)據(jù)DATA1中制造1個錯誤位;當(dāng)數(shù)據(jù)DATA2中存有3或4個錯誤位時,造錯單元104f會在已由第一錯誤校正單元104b錯誤校正的數(shù)據(jù)DATA1中制造2個錯誤位;當(dāng)數(shù)據(jù)DATA2中存有5或6個錯誤位時,造錯單元104f會在已由第一錯誤校正單元104b錯誤校正的數(shù)據(jù)DATA1中制造3個錯誤位;以及當(dāng)數(shù)據(jù)DATA2中存有7或8個錯誤位時,造錯單元104f會在已由第一錯誤校正單元104b錯誤校正的數(shù)據(jù)DATA1中制造4個錯誤位。再者,當(dāng)?shù)谝诲e誤校正單元104b判斷所讀取的數(shù)據(jù)DATA2存有錯誤位且錯誤位無法被錯誤校正時,則微處理器單元104a會傳送事先儲存的預(yù)設(shè)錯誤數(shù)據(jù)與預(yù)設(shè)錯誤校正編碼給主機(jī)控制器200。例如,此預(yù)設(shè)錯誤數(shù)據(jù)可由舊錯誤校正單元202依據(jù)此預(yù)設(shè)錯誤校正編碼判定為發(fā)生無法錯誤校正的錯誤位。具體來說,由于第一錯誤校正單元104b判斷數(shù)據(jù)DATA2已無法被錯誤校正(即,數(shù)據(jù)DATA2具有58個錯誤位),也就是說在閃存102中數(shù)據(jù)DATA1已經(jīng)遺失,因此微處理器單元104a必須告知舊錯誤校正單元202數(shù)據(jù)DATA1已遺失,由此主機(jī)控制器200才可依據(jù)舊錯誤校正單元202的錯誤校正結(jié)果判定儲存數(shù)據(jù)DATA1的物理區(qū)塊已損毀。在本實(shí)施例中,由于舊錯誤校正單元202可對數(shù)據(jù)進(jìn)行檢測2個錯誤位與錯誤校正1個錯誤位的錯誤校正編碼與錯誤校正程序,因此微處理器單元104所事先儲存的預(yù)設(shè)錯誤數(shù)據(jù)是具有2個錯誤位。值得一提的是,以上所提映射規(guī)則僅是例示,本發(fā)明不限于此映射規(guī)則。在另一實(shí)施例中,除映射規(guī)則外,主機(jī)控制器200可于讀取數(shù)據(jù)的期間下達(dá)制造商指令(vendorcommand),主機(jī)控制器200可通過此制造商指令從閃存芯片系統(tǒng)100中讀出的數(shù)據(jù)DATA1實(shí)際的錯誤位數(shù),而讓主機(jī)控制器200針對閃存102的實(shí)際損毀狀況進(jìn)行對應(yīng)的管理機(jī)制。也就是說,錯誤校正控制器104會將已錯誤校正的數(shù)據(jù)DATA1傳送給主機(jī)控制器200,另外通過響應(yīng)制造商指令將實(shí)際的錯誤位數(shù)傳送給主機(jī)控制器200。此外,值得一提的是在本實(shí)施例中閃存102的物理區(qū)塊會儲存錯誤校正控制器104所使用的相關(guān)參數(shù)信息(例如,關(guān)于存取閃存102的物理區(qū)塊所需的錯誤校正能力的信息、關(guān)于主機(jī)控制器200的錯誤校正能力的信息、錯誤校正控制器104的固件程序等)。然而,為避免主機(jī)控制器200可能在無法辨識儲存此些重要信息的物理區(qū)塊下誤刪除儲存在此物理區(qū)塊內(nèi)的信息,因此在本實(shí)施例中,微處理器單元104a會將儲存此些信息的物理區(qū)塊標(biāo)記為已損毀物理區(qū)塊。因此,當(dāng)主機(jī)控制器110存取此些物理區(qū)塊時主機(jī)控制器110會根據(jù)此標(biāo)記辨識此些物理區(qū)塊為已損毀物理區(qū)塊而改使用上述替代區(qū)中的物理區(qū)塊來進(jìn)行存取?;谏鲜?,本發(fā)明實(shí)施例所提出的閃存芯片系統(tǒng)100可提供給舊主機(jī)系統(tǒng)的主機(jī)控制器所存取,由此解決舊主機(jī)系統(tǒng)的主機(jī)控制器無法支持新閃存的問題。以下將配合圖3說明根據(jù)本發(fā)明實(shí)施例的錯誤校正方法。圖3是根據(jù)本發(fā)明第一實(shí)施例繪示錯誤校正步驟的流程圖。請參照圖3,在步驟S301中從主機(jī)控制器200接收存取指令并且判斷此存取指令為寫入指令或讀取指令。倘若此存取指令為寫入指令時,在步驟S303中會根據(jù)所寫入的數(shù)據(jù)與其舊錯誤校正編碼(例如,數(shù)據(jù)DATA1與舊錯誤校正編碼ECC1)來產(chǎn)生新錯誤校正編碼(例如,新錯誤校正編碼ECC2),并且在步驟S305中將欲寫入的數(shù)據(jù)、其舊錯誤校正編碼與所產(chǎn)生的新錯誤校正編碼儲存在閃存102的物理區(qū)塊中。倘若此存取指令為讀取數(shù)據(jù)指令時,在步驟S307中會依據(jù)指令從閃存102的物理區(qū)塊中讀取數(shù)據(jù)與其舊錯誤校正編碼(例如,數(shù)據(jù)DATA1與舊錯誤校正編碼ECC1)以及對應(yīng)的新錯誤校正編碼。然后,在步驟S309中會依據(jù)新錯誤校正編碼判斷所讀取的數(shù)據(jù)與其舊錯誤校正編碼是否發(fā)生錯誤位,倘若在步驟S309中判斷所讀取的數(shù)據(jù)與其舊錯誤校正編碼無發(fā)生錯誤位時,則在步驟S311中將所讀取的數(shù)據(jù)與其舊錯誤校正編碼傳送給主機(jī)控制器200。倘若在步驟S309中判斷所讀取的數(shù)據(jù)與其舊錯誤校正編碼發(fā)生錯誤位時,則在步驟S313中會對錯誤位進(jìn)行校正的程序,并且在步驟S315中判斷此錯誤位是否已被錯誤校正。倘若在步驟S315中錯誤校正程序的結(jié)果顯示此錯誤位已被錯誤校正時,則在步驟S317中在已錯誤校正的數(shù)據(jù)中產(chǎn)生可由主機(jī)控制器200錯誤校正的錯誤位,并且在步驟S319中將具錯誤位的數(shù)據(jù)及其舊錯誤校正編碼傳送給主機(jī)控制器200。倘若在步驟S315中判斷此錯誤位無法被錯誤校正時,則在步驟S321中會將預(yù)設(shè)錯誤數(shù)據(jù)與預(yù)設(shè)錯誤校正編碼傳送給主機(jī)控制器200。13此外,如上所述為了避免主機(jī)控制器200誤刪除錯誤校正控制器104的設(shè)定信息,在本發(fā)明另一實(shí)施例中,上述錯誤校正步驟還包括將關(guān)于第一錯誤校正單元的參數(shù)信息儲存在閃存的一物理區(qū)塊中并且將此物理區(qū)塊標(biāo)記為已損毀區(qū)塊。值得一提的是,為了在編程閃存時避免發(fā)生錯誤位,在本發(fā)明另一實(shí)施例中錯誤校正控制器104還包括數(shù)據(jù)轉(zhuǎn)換器(未繪示)。數(shù)據(jù)轉(zhuǎn)換器可在當(dāng)錯誤校正控制器104從主機(jī)控制器200接收到欲寫入至閃存102的數(shù)據(jù)DATA1時,將數(shù)據(jù)DATA1中的每一位進(jìn)行適當(dāng)?shù)霓D(zhuǎn)換,以將數(shù)據(jù)DATA1中連續(xù)且記錄相同值的位(例如,連續(xù)為"O"的多個位或連續(xù)為"l"的多個位)分散,以使得在編程閃存102時更為穩(wěn)定。特別是,數(shù)據(jù)轉(zhuǎn)換器會判斷數(shù)據(jù)DATA1中是否存有連續(xù)且記錄相同值的位,倘若數(shù)據(jù)DATA1存有連續(xù)且記錄相同值的位時數(shù)據(jù)轉(zhuǎn)換器才對數(shù)據(jù)DATA1進(jìn)行上述的轉(zhuǎn)換。[第二實(shí)施例]圖4是根據(jù)本發(fā)明第二實(shí)施例繪示閃存芯片系統(tǒng)的概要方塊圖。請參照圖4,閃存芯片系統(tǒng)400包括閃存402與錯誤校正控制器404。閃存芯片系統(tǒng)400會與主機(jī)控制器200連接以由主機(jī)控制器200對其執(zhí)行各種存取運(yùn)作。如上所述,主機(jī)控制器200具有舊錯誤校正單元202,其中舊錯誤校正單元202可對數(shù)據(jù)提供錯誤校正1個錯誤位與檢測2個錯誤位的能力。閃存402是相同于第一實(shí)施例的閃存102,在此不再重復(fù)說明。錯誤校正控制器404是電性連接至閃存402并且用以執(zhí)行符合閃存402所需錯誤校正能力的錯誤校正編碼與錯誤校正程序。錯誤校正控制器404包括微處理器單元404a、第一錯誤校正單元404b、緩沖器404c、第一閃存接口404d、第二閃存接口404e與第二錯誤校正單元404f。第二錯誤校正單元404f是電性連接至微處理器單元404a并且具有與舊錯誤校正單元202同樣錯誤校正能力的錯誤校正電路。例如,第二錯誤校正單元404f能夠?qū)?shù)據(jù)進(jìn)行錯誤校正1個錯誤位/檢測2個錯誤位。此外,微處理器單元404a、第一錯誤校正單元404b、緩沖器404c、第一閃存接口404d與第二閃存接口404e的功能與結(jié)構(gòu)是本質(zhì)上是相同于第一實(shí)施例的微處理器單元104a、第一錯誤校正單元104b、緩沖器104c、第一閃存接口104d與第二閃存接口104e的功能與結(jié)構(gòu),以下將僅針對不同之處進(jìn)行說明。圖5是根據(jù)本發(fā)明第二實(shí)施例繪示主機(jī)控制器200存取閃存芯片系統(tǒng)400的數(shù)據(jù)流示意圖。請參照圖5,當(dāng)主機(jī)控制器200由其主機(jī)系統(tǒng)接收欲寫入的數(shù)據(jù)DATA1時,主機(jī)控制器200的舊錯誤校正單元202會依據(jù)數(shù)據(jù)DATA1產(chǎn)生舊錯誤校正編碼ECC1,并且主機(jī)控制器200會對閃存芯片系統(tǒng)400下達(dá)寫入指令并且將數(shù)據(jù)DATA1與舊錯誤校正編碼ECC1傳送至閃存芯片系統(tǒng)400。當(dāng)錯誤校正控制器404的微處理器單元404a經(jīng)由第一閃存接口404d從主機(jī)控制器200中接收到寫入指令、數(shù)據(jù)DATA1與舊錯誤校正編碼ECC1時,微處理器單元404a會得知此存取指令為寫入指令,并且將數(shù)據(jù)DATA1與舊錯誤校正編碼ECC1暫存于緩沖器404c中。在本發(fā)明實(shí)施例中,第二錯誤校正單元404f會根據(jù)舊錯誤校正編碼ECC1對數(shù)據(jù)DATA1進(jìn)行錯誤校正程序,在進(jìn)行編程(programming)之后主機(jī)控制器200會下達(dá)制造商指令,此時若數(shù)據(jù)DATAl無法被第二錯誤校正單元校正而完成寫入時,微處理器單元404a會響應(yīng)主機(jī)控制器200數(shù)據(jù)DATAl無法被寫入,而后主機(jī)控制器200才會重新再編程一次。由此,可對寫入數(shù)據(jù)也做到正確寫入及校正的操作。然后,第一錯誤校正單元404b會依據(jù)數(shù)據(jù)DATAl來產(chǎn)生新錯誤校正編碼ECC2'。最后,將數(shù)據(jù)DATAl與新錯誤校正編碼ECC2'傳送至閃存402的物理區(qū)塊中。另外,當(dāng)主機(jī)控制器200欲從閃存芯片系統(tǒng)400中讀取數(shù)據(jù)DATAl與舊錯誤校正編碼ECC1時,微處理器單元404a會依據(jù)來自于主機(jī)控制器200的讀取指令從閃存402中讀取數(shù)據(jù)DATAl與新錯誤校正編碼ECC2'并且將數(shù)據(jù)DATAl與新錯誤校正編碼ECC2'暫存于緩沖器404c中。然后,第一錯誤校正單元404b會依據(jù)新錯誤校正編碼ECC2'來對所讀取的數(shù)據(jù)DATAl執(zhí)行錯誤校正程序。之后,微處理器單元404a會依據(jù)錯誤校正的結(jié)果傳送對應(yīng)的數(shù)據(jù)給主機(jī)控制器200。具體來說,第一錯誤校正單元404b會執(zhí)行錯誤校正程序來判斷數(shù)據(jù)DATAl中是否存有錯誤位以及若數(shù)據(jù)DATAl存有錯誤位時嘗試將錯誤位進(jìn)行錯誤校正。當(dāng)?shù)谝诲e誤校正單元404b判斷所讀取的數(shù)據(jù)DATAl無存有錯誤位時,則第二錯誤校正單元404f會依據(jù)數(shù)據(jù)DATAl來重新產(chǎn)生舊錯誤校正編碼ECC1,并且微處理器單元404a會傳送所讀取的數(shù)據(jù)DATAl與所重新產(chǎn)生的舊錯誤校正編碼ECC1給主機(jī)控制器200。在此,由于根據(jù)本實(shí)施例的錯誤校正控制器400未儲存舊錯誤校正編碼ECC1,因此錯誤校正控制器400會通過第二錯誤校正單元404f來重新產(chǎn)生。另外,當(dāng)?shù)谝诲e誤校正單元404b判斷所讀取的數(shù)據(jù)存DATAl存有錯誤位且此錯誤位可被錯誤校正時,則微處理器單元404a會在從第一錯誤校正單元404b接收到已錯誤校正的數(shù)據(jù)DATAl之后在數(shù)據(jù)DATAl中隨機(jī)產(chǎn)生錯誤位,并且將具有錯誤位的數(shù)據(jù)DATAl與舊錯誤校正編碼ECG1傳送給主機(jī)控制器200。相同于第一實(shí)施例,微處理器單元404a所產(chǎn)生具有錯誤位的數(shù)據(jù)DATAl必須能夠由舊錯誤校正單元202依據(jù)舊錯誤校正編碼ECC1來錯誤校正,因此微處理器單元404a會依據(jù)舊錯誤校正單元202的錯誤校正能力來產(chǎn)生具有錯誤位的數(shù)據(jù)DATAl。同樣地,在此例子中,錯誤校正控制器400會通過第二錯誤校正單元404f依據(jù)已錯誤校正的數(shù)據(jù)DATAl來重新產(chǎn)生舊錯誤校正編碼ECCl。再者,當(dāng)?shù)谝诲e誤校正單元404b判斷所讀取的數(shù)據(jù)DATAl存有錯誤位且錯誤位無法被錯誤校正時,則微處理器單元404a會傳送事先儲存的預(yù)設(shè)錯誤數(shù)據(jù)與預(yù)設(shè)錯誤校正編碼給主機(jī)控制器200。相同于第一實(shí)施例,此預(yù)設(shè)錯誤數(shù)據(jù)可由舊錯誤校正單元202依據(jù)此預(yù)設(shè)錯誤編碼判定為發(fā)生無法錯誤校正的錯誤位。在第一實(shí)施例中,如圖2所示,錯誤校正控制器是將含有原數(shù)據(jù)與舊錯誤校正編碼的數(shù)據(jù)進(jìn)行錯誤校正編碼并將原數(shù)據(jù)與舊錯誤校正編碼以及新錯誤校正編碼儲存在閃存中,因此需要更多的儲存空間來同時儲存舊錯誤校正編碼與新錯誤校正編碼。然而,第二實(shí)施例所提出的閃存芯片系統(tǒng)400除了可達(dá)成第一實(shí)施例的功能外,同時可節(jié)省閃存儲存數(shù)據(jù)所需的空間。以下將配合圖6說明根據(jù)本發(fā)明實(shí)施例的錯誤校正方法。圖6是根據(jù)本發(fā)明第二實(shí)施例繪示錯誤校正步驟的流程圖。請參照圖6,在步驟S601中從主機(jī)控制器200接收存取指令并且判斷此存取指令為寫入指令或讀取指令。倘若此存取指令為寫入指令時,在步驟S603中會依據(jù)舊錯誤校正編碼(例如,舊錯誤校正編碼ECC1)對所寫入的數(shù)據(jù)(例如,數(shù)據(jù)DATA1)進(jìn)行錯誤校正程序,并且在步驟S605中依據(jù)已錯誤校正的數(shù)據(jù)來產(chǎn)生新錯誤校正編碼(例如,新錯誤校正編碼ECC2')。之后,在步驟S607中將欲寫入的數(shù)據(jù)與所產(chǎn)生的新錯誤校正編碼儲存在閃存402的物理區(qū)塊中。倘若此存取指令為讀取資指令時,在步驟S609中會依據(jù)指令從閃存102的物理區(qū)塊中讀取數(shù)據(jù)(例如,數(shù)據(jù)DATA1)以及對應(yīng)的新錯誤校正編碼(例如,新錯誤校正編碼ECC2,)。然后,在步驟S611中依據(jù)新錯誤校正編碼判斷所讀取的數(shù)據(jù)是否發(fā)生錯誤位,倘若在步驟S611中判斷所讀取的數(shù)據(jù)無發(fā)生錯誤位時,則在步驟S613中依據(jù)所讀取的數(shù)據(jù)重新產(chǎn)生對應(yīng)的舊錯誤校正編碼,并且在步驟S615中將所讀取的數(shù)據(jù)與所重新產(chǎn)生的舊錯誤校正編碼傳送給主機(jī)控制器200。倘若在步驟S611中判斷所讀取的數(shù)據(jù)發(fā)生錯誤位時,則在步驟S617中對錯誤位進(jìn)行校正并且在步驟S619中判斷此錯誤位是否已被錯誤校正。倘若在步驟S619中判斷此錯誤位已被錯誤校正時,則在步驟S621中依據(jù)已錯誤校正的數(shù)據(jù)重新產(chǎn)生對應(yīng)的舊錯誤校正編碼,并且在步驟S623中在已錯誤校正的數(shù)據(jù)中產(chǎn)生可由主機(jī)控制器200錯誤校正的錯誤位。然后,在步驟S625中將具錯誤位的數(shù)據(jù)及所重新產(chǎn)生的舊錯誤校正編碼傳送給主機(jī)控制器200。倘若在步驟S619中判斷此錯誤位無法被錯誤校正時,則在步驟S627中會將預(yù)設(shè)錯誤數(shù)據(jù)與預(yù)設(shè)錯誤校正編碼傳送給主機(jī)控制器200。綜上所述,本發(fā)明在舊系統(tǒng)的主機(jī)控制器與新閃存之間配置直夠支持新閃存的錯誤校正控制器,由此使舊系統(tǒng)的主機(jī)控制器可存取新一代的閃存。雖然本發(fā)明已以實(shí)施例揭露如上,然其并非用以限定本發(fā)明,任何所屬
技術(shù)領(lǐng)域:
中具有通常知識者,在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可作些許的更動與潤飾,故本發(fā)明的保護(hù)范圍當(dāng)視所附的權(quán)利要求范圍所界定者為準(zhǔn)。1權(quán)利要求一種錯誤校正控制器,包括第一閃存接口,用以連接主機(jī)控制器;第二閃存接口,用以連接閃存,微處理器單元,電性連接至所述第一閃存接口與所述第二閃存接口;造錯單元,電性連接至該微處理器單元;以及第一錯誤校正單元,電性連接至所述微處理器單元,其中所述第一錯誤校正單元會在所述主機(jī)控制器欲寫入數(shù)據(jù)至所述閃存時產(chǎn)生第一錯誤校正編碼并且將所述數(shù)據(jù)與所述第一錯誤校正編碼儲存在所述閃存中,其中當(dāng)所述主機(jī)控制器欲從所述閃存中讀取所述數(shù)據(jù)時,所述微處理器單元會從所述閃存中讀取所述數(shù)據(jù)與所述第一錯誤校正編碼,并且所述第一錯誤校正單元會依據(jù)所述第一錯誤校正編碼來判斷所讀取的所述數(shù)據(jù)是否存有至少一錯誤位且所述至少一錯誤位是否可被錯誤校正,其中當(dāng)所述第一錯誤校正單元判斷所讀取的所述數(shù)據(jù)存有所述至少一錯誤位且所述至少一錯誤位可被錯誤校正時,則所述造錯單元會產(chǎn)生可被錯誤校正的錯誤數(shù)據(jù)并且所述微處理器單元會傳送所述可被錯誤校正的錯誤數(shù)據(jù)給所述主機(jī)控制器,其中所述可被錯誤校正的錯誤數(shù)據(jù)是依據(jù)所述第一錯誤校正編碼完成錯誤校正后的所述數(shù)據(jù)來產(chǎn)生并且可被所述主機(jī)控制器來錯誤校正。2.根據(jù)權(quán)利要求1所述的錯誤校正控制器,其中當(dāng)所述第一錯誤校正單元判斷所讀取的所述數(shù)據(jù)存有所述至少一錯誤位且所述至少一錯誤位無法被錯誤校正時,則所述微處理器單元會傳送預(yù)設(shè)錯誤數(shù)據(jù)給所述主機(jī)控制器,并且其中所述主機(jī)控制器會判斷所述預(yù)設(shè)錯誤數(shù)據(jù)具有多個預(yù)設(shè)錯誤位且所述預(yù)設(shè)錯誤位無法被錯誤校正。3.根據(jù)權(quán)利要求1所述的錯誤校正控制器,其中所述主機(jī)控制器還包括有第三錯誤校正單元。4.根據(jù)權(quán)利要求3所述的錯誤校正控制器,其中所述第三錯誤校正單元的最大錯誤校正位數(shù)小于所述第一錯誤校正單元的最大錯誤校正位數(shù)。5.根據(jù)權(quán)利要求3所述的錯誤校正控制器,其中所述數(shù)據(jù)還包括第二錯誤校正編碼。6.根據(jù)權(quán)利要求5所述的錯誤校正控制器,還包括電性連接至該微處理單元的第二錯誤校正單元,其中所述第二錯誤校正單元的最大錯誤校正位數(shù)是相同于所述第三錯誤校正單元的最大錯誤校正位數(shù)。7.根據(jù)權(quán)利要求6所述的錯誤校正控制器,其中當(dāng)所述主機(jī)控制器欲從所述閃存中讀取所述數(shù)據(jù)時所述第二錯誤校正單元會根據(jù)所述已被錯誤校正的數(shù)據(jù)產(chǎn)生所述第二錯誤校正編碼。8.根據(jù)權(quán)利要求6所述的錯誤校正控制器,其中當(dāng)所述主機(jī)控制器欲寫入所述數(shù)據(jù)至所述閃存時,則所述第二錯誤校正單元會依據(jù)所述第二錯誤校正編碼來錯誤校正所述數(shù)據(jù)。9.根據(jù)權(quán)利要求1所述的錯誤校正控制器,其中所述微處理器單元將關(guān)于所述第一錯誤校正單元的參數(shù)信息儲存在所述閃存的一物理區(qū)塊中,并且將所述物理區(qū)塊標(biāo)記為已損毀區(qū)塊。10.根據(jù)權(quán)利要求1所述的錯誤校正控制器,還包括數(shù)據(jù)轉(zhuǎn)換器,其中在所述主機(jī)控制器欲寫入所述數(shù)據(jù)至所述閃存時,所述數(shù)據(jù)轉(zhuǎn)換器會轉(zhuǎn)換所述數(shù)據(jù)。11.一種閃存芯片系統(tǒng),包括閃存;以及錯誤校正控制器,電性連接至所述閃存,其中該錯誤校正控制器會在所述主機(jī)控制器欲寫入數(shù)據(jù)至所述閃存時產(chǎn)生第一錯誤校正編碼并且將所述數(shù)據(jù)與所述第一錯誤校正編碼儲存在所述閃存中,其中當(dāng)所述主機(jī)控制器欲從所述閃存中讀取所述數(shù)據(jù)時,所述錯誤校正控制器會從所述閃存中讀取所述數(shù)據(jù)與所述第一錯誤校正編碼,并且依據(jù)所述第一錯誤校正編碼來判斷所讀取的所述數(shù)據(jù)是否存有至少一錯誤位且所述至少一錯誤位是否可被錯誤校正,其中當(dāng)所述錯誤校正控制器判斷所讀取的所述數(shù)據(jù)存有所述至少一錯誤位且所述至少一錯誤位可被錯誤校正時,則所述錯誤校正控制器會傳送可被錯誤校正的錯誤數(shù)據(jù)給所述主機(jī)控制器,其中所述可被錯誤校正的錯誤數(shù)據(jù)是依據(jù)所述第一錯誤校正編碼完成錯誤校正后的所述數(shù)據(jù)來產(chǎn)生并且可被所述主機(jī)控制器來錯誤校正。12.根據(jù)權(quán)利要求11所述的閃存芯片系統(tǒng),其中當(dāng)所述錯誤校正控制器判斷所讀取的所述數(shù)據(jù)存有所述至少一錯誤位且所述至少一錯誤位無法被錯誤校正時,則所述錯誤校正控制器會傳送預(yù)設(shè)錯誤數(shù)據(jù)給所述主機(jī)控制器,并且其中所述主機(jī)控制器會判斷所述預(yù)設(shè)錯誤數(shù)據(jù)具有多個預(yù)設(shè)錯誤位且所述預(yù)設(shè)錯誤位無法被錯誤校正。13.根據(jù)權(quán)利要求11所述的閃存芯片系統(tǒng),其中所述數(shù)據(jù)還包括第二錯誤校正編碼。14.根據(jù)權(quán)利要求13所述的閃存芯片系統(tǒng),其中當(dāng)所述主機(jī)控制器欲從所述閃存中讀取所述數(shù)據(jù)時所述錯誤校正控制器會根據(jù)所述數(shù)據(jù)重新產(chǎn)生所述第二錯誤校正編碼。15.根據(jù)權(quán)利要求13所述的閃存芯片系統(tǒng),其中當(dāng)所述主機(jī)控制器欲寫入所述數(shù)據(jù)至所述閃存時,則所述錯誤校正控制器會依據(jù)所述第二錯誤校正編碼來錯誤校正所述數(shù)據(jù)。16.根據(jù)權(quán)利要求11所述的閃存芯片系統(tǒng),其中所述錯誤校正控制器將關(guān)于相關(guān)參數(shù)信息儲存在所述閃存的一物理區(qū)塊中,并且將所述物理區(qū)塊標(biāo)記為已損毀區(qū)塊。17.根據(jù)權(quán)利要求11所述的閃存芯片系統(tǒng),其中該錯誤校正控制器用以當(dāng)所述主機(jī)控制器欲寫入所述數(shù)據(jù)至所述閃存時轉(zhuǎn)換所述數(shù)據(jù)。18.—種錯誤校正方法,適用于錯誤校正主機(jī)控制器對閃存所存取的數(shù)據(jù),所述錯誤校正方法包括當(dāng)所述主機(jī)控制器欲寫入數(shù)據(jù)至所述閃存時產(chǎn)生第一錯誤校正編碼并且將所述數(shù)據(jù)與所述第一錯誤校正編碼儲存在所述閃存中;以及當(dāng)所述主機(jī)控制器欲從所述閃存中讀取所述數(shù)據(jù)時,從所述閃存中讀取所述數(shù)據(jù)與所述第一錯誤校正編碼并且依據(jù)所述第一錯誤校正編碼來判斷所讀取的所述數(shù)據(jù)是否存有至少一錯誤位且所述至少一錯誤位是否可被錯誤校正,其中當(dāng)判斷所讀取的所述數(shù)據(jù)存有所述至少一錯誤位且所述至少一錯誤位可被錯誤校正時,則傳送可被錯誤校正的錯誤數(shù)據(jù)給所述主機(jī)控制器,其中所述可被錯誤校正的錯誤數(shù)據(jù)是依據(jù)所述第一錯誤校正編碼完成錯誤校正后的所述數(shù)據(jù)來產(chǎn)生并且可被所述主機(jī)控制器來錯誤校正。19.根據(jù)權(quán)利要求18所述的錯誤校正方法,其中當(dāng)判斷所讀取的所述數(shù)據(jù)存有所述至少一錯誤位且所述至少一錯誤位無法被錯誤校正時,則傳送預(yù)設(shè)錯誤數(shù)據(jù)給所述主機(jī)控制器,并且其中所述主機(jī)控制器會判斷所述預(yù)設(shè)錯誤數(shù)據(jù)具有多個預(yù)設(shè)錯誤位且所述預(yù)設(shè)錯誤位無法被錯誤校正。20.根據(jù)權(quán)利要求18所述的錯誤校正方法,其中所述數(shù)據(jù)還包括第二錯誤校正編碼。21.根據(jù)權(quán)利要求20所述的錯誤校正方法,還包括當(dāng)所述主機(jī)控制器欲從所述閃存中讀取所述數(shù)據(jù)時,主機(jī)控制器依據(jù)所述第二錯誤校正編碼來錯誤校正所述數(shù)據(jù)。22.根據(jù)權(quán)利要求20所述的錯誤校正方法,其中當(dāng)所述主機(jī)控制器欲寫入所述數(shù)據(jù)至所述閃存中時,依據(jù)所述第二錯誤校正編碼來錯誤校正所述數(shù)據(jù),并且其中當(dāng)無法使用所述第二錯誤校正編碼錯誤校正所述數(shù)據(jù)時,依據(jù)制造商指令響應(yīng)給所述主機(jī)控制器一錯誤消息。23.根據(jù)權(quán)利要求18所述的錯誤校正方法,還包括將參數(shù)信息儲存在所述閃存的一物理區(qū)塊中,并且將所述物理區(qū)塊標(biāo)記為已損毀區(qū)塊。24.根據(jù)權(quán)利要求18所述的錯誤校正方法,還包括當(dāng)所述主機(jī)控制器欲寫入所述數(shù)據(jù)至所述閃存時,則對所述數(shù)據(jù)進(jìn)行轉(zhuǎn)換。25.—種錯誤校正控制器,包括第一閃存接口,用以連接主機(jī)控制器;第二閃存接口,用以連接閃存,微處理器單元,電性連接至所述第一閃存接口與所述第二閃存接口;以及第一錯誤校正單元,電性連接至所述微處理器單元,其中所述第一錯誤校正單元會在所述主機(jī)控制器欲寫入數(shù)據(jù)至所述閃存時產(chǎn)生第一錯誤校正編碼并且將所述數(shù)據(jù)與所述第一錯誤校正編碼儲存在所述閃存中,其中當(dāng)所述主機(jī)控制器欲從所述閃存中讀取所述數(shù)據(jù)時,所述微處理器單元會從所述閃存中讀取所述數(shù)據(jù)與所述第一錯誤校正編碼,并且所述第一錯誤校正單元會依據(jù)所述第一錯誤校正編碼來對所讀取的所述數(shù)據(jù)進(jìn)行錯誤校正程序,并且所述微處理器單元會將已錯誤校正的所述數(shù)據(jù)傳送給所述主機(jī)控制器,并且其中所述微處理器單元會將在所述錯誤校正程序所判斷的至少一錯誤位數(shù)依據(jù)制造商指令響應(yīng)給所述主機(jī)控制器。26.—種閃存芯片系統(tǒng),包括閃存;以及錯誤校正控制器,電性連接至所述閃存,其中所述錯誤校正控制器會在所述主機(jī)控制器欲寫入數(shù)據(jù)至所述閃存時產(chǎn)生第一錯誤校正編碼并且將所述數(shù)據(jù)與所述第一錯誤校正編碼儲存在所述閃存中,其中當(dāng)所述主機(jī)控制器欲從所述閃存中讀取所述數(shù)據(jù)時,所述錯誤校正控制器會從所述閃存中讀取所述數(shù)據(jù)與所述第一錯誤校正編碼,依據(jù)所述第一錯誤校正編碼來對所讀取的所述數(shù)據(jù)進(jìn)行錯誤校正程序,并且將已錯誤校正的所述數(shù)據(jù)傳送給所述主機(jī)控制器,以及其中所述錯誤校正控制器會將在所述錯誤校正程序所判斷的至少一錯誤位數(shù)依據(jù)制造商指令響應(yīng)給所述主機(jī)控制器。27.—種錯誤校正方法,適用于錯誤校正主機(jī)控制器對閃存所存取的數(shù)據(jù),所述錯誤校正方法包括當(dāng)所述主機(jī)控制器欲寫入數(shù)據(jù)至所述閃存時產(chǎn)生第一錯誤校正編碼并且將所述數(shù)據(jù)與所述第一錯誤校正編碼儲存在所述閃存中;當(dāng)所述主機(jī)控制器欲從所述閃存中讀取所述數(shù)據(jù)時,從所述閃存中讀取所述數(shù)據(jù)與所述第一錯誤校正編碼,依據(jù)所述第一錯誤校正編碼來對所讀取的所述數(shù)據(jù)進(jìn)行錯誤校正程序;將已錯誤校正的所述數(shù)據(jù)傳送給所述主機(jī)控制器;以及將所述錯誤校正程序中所判斷的至少一錯誤位數(shù)依據(jù)制造商指令響應(yīng)給所述主機(jī)控制器。全文摘要一種錯誤校正控制器,其用以連接在具有低階錯誤校正功能的舊主機(jī)控制器與需高階錯誤校正功能的新閃存之間,其中當(dāng)舊主機(jī)控制器欲寫入數(shù)據(jù)與其舊錯誤校正編碼至新閃存時錯誤校正控制器會以高階錯誤校正功能產(chǎn)生新錯誤校正編碼。之后,當(dāng)主機(jī)控制器欲從新閃存中讀取數(shù)據(jù)與其舊錯誤校正編碼時,錯誤校正控制器會依據(jù)新錯誤校正編碼來進(jìn)行錯誤校正程序,并且依據(jù)錯誤校正結(jié)果以及舊主機(jī)控制器的錯誤校正能力傳送對應(yīng)的數(shù)據(jù)?;?,可在不更動舊主機(jī)控制器的架構(gòu)下使舊主機(jī)控制器存取新閃存。文檔編號G11C29/04GK101752012SQ200810182398公開日2010年6月23日申請日期2008年11月28日優(yōu)先權(quán)日2008年11月28日發(fā)明者朱健華,梁立群,鄭國義申請人:群聯(lián)電子股份有限公司