国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      錯(cuò)誤校正控制器及其閃存芯片系統(tǒng)與錯(cuò)誤校正方法

      文檔序號(hào):6739678閱讀:332來(lái)源:國(guó)知局

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