麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

錯誤校正控制器及其閃存芯片系統與錯誤校正方法

文檔序號:6739678閱讀:372來源:國知局

專利名稱::錯誤校正控制器及其閃存芯片系統與錯誤校正方法
技術領域
:本發明是有關于一種閃存芯片系統,且特別是有關于一種具錯誤校正(errorcorrecting)功能的閃存芯片系統及其錯誤校正控制器與錯誤校正方法。
背景技術
:數字相機、手機與MP3播放器在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由于閃存(FlashMemory)具有數據非易失性、省電、體積小與無機械結構等的特性,適合可攜式應用,最適合使用于這類可攜式由電池供電的產品上。例如,存儲卡就是一種以NAND閃存作為儲存媒體的儲存裝置,并且目前已被廣泛使用作為數字相機、手機與MP3播放器的儲存媒體。由于NAND閃存具有以頁為單位寫入數據、以區塊為單位抹除數據、每一存儲單元需先抹除后方可寫入數據、區塊會因多次的寫入而損毀等特性,因此使用NAND閃存作為儲存媒體的主機(例如,數字相機、手機與MP3播放器)的主機控制器必須具有可管理閃存的區塊管理功能。然而,隨著閃存技術快速地發展,容量更大的閃存不斷推陳出新,舊主機的使用者會有更新更大儲存容量的儲存媒體的需求。一般來說,新閃存需更強的區塊管理功能方可運作,然而舊主機控制器往往無法支持新的功能。例如,在閃存的區塊管理功能中會使用錯誤校正程序來錯誤校正所讀取的數據,并且依據錯誤校正的結果來獲知閃存區塊的狀態(例如,區塊是否已損壞)。在舊主機控制器所具備的錯誤校正能力往往無法支持新一代閃存所需的錯誤校正能力(例如,當舊主機控制器生產時僅配置具可檢測2個錯誤位/錯誤校正I個錯誤位能力的錯誤校正電路,然而當新閃存需具能夠錯誤校正4個錯誤位的控制器方可正常運作)時,此舊主機控制器將無法支持新一代閃存。基此,有需要發展一套能夠使舊主機控制器在不更動原硬件設計架構下以符合新一代閃存所需的錯誤校正能力來存取新一代的閃存的機制。
發明內容本發明提供一種錯誤校正控制器,其能夠使舊主機系統的主機控制器存取新一代的閃存。本發明提供一種閃存芯片系統,其能夠使舊主機系統的主機控制器存取新一代的閃存。本發明提供一種錯誤校正方法,其能夠使舊主機系統的主機控制器存取新一代的閃存。本發明提出一種錯誤校正控制器,其包括第一閃存接口、第二閃存接口、微處理器單元、造錯單元與第一錯誤校正單元。第一閃存接口是用以連接主機控制器。第二閃存接口是用以連接閃存。微處理器單元是電性連接至第一閃存接口與第二閃存接口。造錯單元是電性連接至微處理器單元。第一錯誤校正單元是電性連接至微處理器單元,其中第一錯誤校正單元會在主機控制器欲寫入數據至上述閃存時產生第一錯誤校正編碼(errorcorrectingcode,ECC)并且將欲寫入的·數據與所產生的第一錯誤校正編碼儲存在閃存中。在本發明中,當主機控制器欲從閃存中讀取數據時,微處理器單元會從閃存中讀取此數據與對應此數據的第一錯誤校正編碼并且第一錯誤校正單元會依據所讀取的第一錯誤校正編碼來判斷所讀取的數據是否存有錯誤位且此錯誤位是否可被錯誤校正,其中當第一錯誤校正單元判斷所讀取的數據存有錯誤位且此錯誤位可被錯誤校正時,則造錯單元會產生可被錯誤校正的錯誤數據并且微處理器單元會傳送此可被校正的錯誤數據給上述主機控制器,其中此可被錯誤校正的錯誤數據是依據所述第一錯誤校正編碼完成錯誤校正后的數據來產生并且是可被主機控制器來錯誤校正。在本發明的一實施例中,當第一錯誤校正單元判斷所讀取的數據存有錯誤位且此錯誤位無法被錯誤校正時,則微處理器單元會傳送預設錯誤數據給上述主機控制器,其中上述主機控制器會判斷此預設錯誤數據具有錯誤位且此錯誤位無法被錯誤校正。在本發明的一實施例中,上述的主機控制器還包括有第三錯誤校正單元。在本發明的一實施例中,上述的第三錯誤校正單元的最大錯誤校正位數小于上述第一錯誤校正單元的最大錯誤校正位數。在本發明的一實施例中,上述的數據還包括第二錯誤校正編碼。在本發明的一實施例中,上述的錯誤校正控制器還包括電性連接至上述微處理單元的第二錯誤校正單元,其中此第二錯誤校正單元的最大錯誤校正位數是相同于上述第三錯誤校正單元的最大錯誤校正位數。在本發明的一實施例中,當上述主機控制器欲從上述閃存中讀取此數據,第二錯誤校正單元會根據此數據重新產生對應此數據的第二錯誤校正編碼。在本發明的一實施例中,上述的當主機控制器欲寫入數據至上述閃存時,則上述第二錯誤校正單元會依據此第二錯誤校正編碼來錯誤校正欲寫入的數據。在本發明的一實施例中,上述的微處理器單元將關于上述第一錯誤校正單元的參數信息儲存在上述閃存的一物理區塊中,并且將儲存此參數信息的物理區塊標記為已損毀區塊。此外,本發明亦提出一種配置上述閃存與上述錯誤校正控制器的閃存芯片系統以及其錯誤校正方法。本發明還提出一種閃存芯片系統,包括閃存;以及錯誤校正控制器,電性連接至所述閃存,其中該錯誤校正控制器會在所述主機控制器欲寫入數據至所述閃存時產生第一錯誤校正編碼并且將所述數據與所述第一錯誤校正編碼儲存在所述閃存中,其中當所述主機控制器欲從所述閃存中讀取所述數據時,所述錯誤校正控制器會從所述閃存中讀取所述數據與所述第一錯誤校正編碼,并且依據所述第一錯誤校正編碼來判斷所讀取的所述數據是否存有至少一錯誤位且所述至少一錯誤位是否可被錯誤校正,其中當所述錯誤校正控制器判斷所讀取的所述數據存有所述至少一錯誤位且所述至少一錯誤位可被錯誤校正時,則所述錯誤校正控制器會傳送可被錯誤校正的錯誤數據給所述主機控制器,其中所述可被錯誤校正的錯誤數據是依據所述第一錯誤校正編碼完成錯誤校正后的所述數據來產生并且可被所述主機控制器來錯誤校正。本發明還提出一種錯誤校正方法,適用于錯誤校正主機控制器對閃存所存取的數據,所述錯誤校正方法包括當所述主機控制器欲寫入數據至所述閃存時產生第一錯誤校正編碼并且將所述數據與所述第一錯誤校正編碼儲存在所述閃存中;以及當所述主機控制器欲從所述閃存中讀取所述數據時,從所述閃存中讀取所述數據與所述第一錯誤校正編碼并且依據所述第一錯誤校正編碼來判斷所讀取的所述數據是否存有至少一錯誤位且所述至少一錯誤位是否可被錯誤校正,其中當判斷所讀取的所述數據存有所述至少一錯誤位且所述至少一錯誤位可被錯誤校正時,則傳送可被錯誤校正的錯誤數據給所述主機控制器,其中所述可被錯誤校正的錯誤數據是依據所述第一錯誤校正編碼完成錯誤校正后的所述數據來產生并且可被所述主機控制器來錯誤校正。本發明亦提出一種錯誤校正控制器,其包括第一閃存接口、第二閃存接口、微處理器單元與第一錯誤校正單元。第一閃存接口是用以連接主機控制器。第二閃存接口是用以連接閃存。微處理器單元是電性連接至第一閃存接口與第二閃存接口。第一錯誤校正單元是電性連接至微處理器單元,其中第一錯誤校正單元會在主機控制器欲寫入數據至上述閃存時產生第一錯誤校正編碼并且將欲寫入的數據與所產生的第一錯誤校正編碼儲存在閃存中。緩沖器是電性連接至微處理器單元并且用以暫存數據。在本發明中,當主機控制器欲從閃存中讀取數據時,微處理器單元會從閃存中讀取此數據與其對應的第一錯誤校正編碼,并且第一錯誤校正單元會依據第一錯誤校正編碼來對所讀取的數據進行錯誤校正程序,并且微處理器單元會將已錯誤校正的數據傳送給主機控制器,并且其中微處理器單元會將此錯誤校正程序中所判斷的錯誤位數依據制造商指令(vendorcommand)響應給主機控制器。此外,本發明亦提出一種配置上述閃存與上述錯誤校正控制器的閃存芯片系統以及其錯誤校正方法。本發明還提出一種閃存芯片系統,包括閃存;以及錯誤校正控制器,電性連接至所述閃存,其中所述錯誤校正控制器會在所述主機控制器欲寫入數據至所述閃存時產生第一錯誤校正編碼并且將所述數據與所述第一錯誤校正編碼儲存在所述閃存中,其中當所述主機控制器欲從所述閃存中讀取所述數據時,所述錯誤校正控制器會從所述閃存中讀取所述數據與所述第一錯誤校正編碼,依據所述第一錯誤校正編碼來對所讀取的所述數據進行錯誤校正程序,并且將已錯誤校正的所述數據傳送給所述主機控制器,以及其中所述錯誤校正控制器會將在所述錯誤校正程序所判斷的至少一錯誤位數依據制造商指令響應給所述主機控制器。本發明還提出一種錯誤校正方法,適用于錯誤校正主機控制器對閃存所存取的數據,所述錯誤校正方法包括當所述主機控制器欲寫入數據至所述閃存時產生第一錯誤校正編碼并且將所述數據與所述第一錯誤校正編碼儲存在所述閃存中;當所述主機控制器欲從所述閃存中讀取所述數據時,從所述閃存中讀取所述數據與所述第一錯誤校正編碼,依據所述第一錯誤校正編碼來對所讀取的所述數據進行錯誤校正程序;將已錯誤校正的所述數據傳送給所述主機控制器;以及將所述錯誤校正程序中所判斷的至少一錯誤位數依據制造商指令響應給所述主機控制器。基于上述,本發明通過在舊系統的主機控制器與新閃存之間配置能支持新閃存的錯誤校正控制器,并且由此錯誤校正控制器執行符合新閃存的錯誤校正編碼與錯誤校正程序,基此可使舊系統的主機控制器存取新一代的閃存。為讓本發明的上述特征和優點能更明顯易懂,下文特舉實施例,并配合所附圖式作詳細說明如下。圖I是根據本發明第一實施例繪示閃存芯片系統的概要方塊圖。圖2是根據本發明第一實施例繪示主機控制器存取閃存芯片系統的數據流示意圖。圖3是根據本發明第一實施例繪示錯誤校正步驟的流程圖。圖4是根據本發明第二實施例繪示閃存芯片系統的概要方塊圖。圖5是根據本發明第二實施例繪示主機控制器存取閃存芯片系統的數據流示意圖。圖6是根據本發明第二實施例繪示錯誤校正步驟的流程圖。[主要元件標號說明]100:閃存芯片系統102:閃存102-1102-N:物理區塊104:錯誤校正控制器104a:微處理器單元104b:第一錯誤校正單元104c:緩沖器104d:第一閃存接口104e:第二閃存接口104f:造錯單元200:主機控制器202:舊錯誤校正單元DATAl、DATA2:數據ECC1、ECC2、ECC2’錯誤校正編碼S301、S303、S307、S309、S311、S313、S315、S317、S319、S321:錯誤校正的步驟400:閃存芯片系統402:閃存402-1402-N:物理區塊404:錯誤校正控制器404a:微處理器單元404b:第一錯誤校正單元404c:緩沖器404d:第一閃存接口404e:第二閃存接口404f:第二錯誤校正單元S601、S603、S607、S609、S611、S613、S615、S617、S619、S621、S623、S625、S627:錯誤校正的步驟具體實施例方式本發明在舊主機系統的主機控制器與新閃存之間配置能夠支持新閃存的錯誤校正控制器來對所存取的數據執行錯誤校正編碼與錯誤校正程序。基此,可在不更動原舊主機系統的架構下,使舊主機系統的主機控制器能夠存取新一代的閃存。以下將以數個范例實施例詳細說明本發明。[第一實施例]圖I是根據本發明第一實施例繪示閃存芯片系統的概要方塊圖。請參照圖1,閃存芯片系統100包括閃存102與錯誤校正控制器104。閃存芯片系統100會與主機控制器200連接,由主機控制器200對其執行各種存取運作。特別是,主機控制器200具有舊錯誤校正單元202,其中舊錯誤校正單元202可對數據提供錯誤校正I個錯誤位與檢測2個錯誤位的能力。值得一提的是,在本實施例中閃存102與錯誤校正控制器104是封裝為單一系統芯片,然而在本發明另一實施例中閃存102與錯誤校正控制器104可分別為獨立的芯片。閃存102是用以儲存數據的儲存媒體。閃存102會劃分為多個物理區塊102_1102-N,此些物理區塊單元會被界定為數據區(dataarea)與備用區(sparearea)。歸類為數據區的物理區塊中會儲存由寫入指令所寫入的有效數據,而備用區中的物理區塊是用以在執行寫入指令時替換數據區中的物理區塊。具體來說,主機控制器200欲對數據區的物理區塊進行寫入時,主機控制器200會從備用區中提取物理區塊并且將在數據區中欲更新的物理區塊中的有效舊數據與欲寫入的新數據寫入至從備用區中提取的物理區塊并且將已寫入新數據的物理區塊關聯為數據區,并且將原本數據區的物理區塊進行抹除并關聯為備用區。為了能夠讓主機控制器200所屬的主機系統能夠順利地存取以輪替方式儲存數據的物理區塊,主機控制器200會配置邏輯區塊以供主機系統進行存取,其中邏輯區塊是根據物理區塊的大小來配置。也就是說主機控制器200會建立邏輯-物理地址映射表(logical-physicaladdressmappingtable),并且在此表中記錄與更新邏輯區塊與數據區的物理區塊之間的映射關系來反映物理區塊的輪替,所以主機系統僅需要針對所提供邏輯區塊對主機控制器200下達存取指令,而主機控制器200會依據邏輯-物理地址映射表來對所映射的物理區塊進行實際地讀取或寫入數據。此外,閃存102中會保留部分的物理區塊作為替代區,其是用以當數據區或備用區中的物理區塊損壞時取代已損壞的物理區塊來繼續運作。錯誤校正控制器104是電性連接至閃存102并且用以執行符合閃存102所需錯誤校正能力的錯誤校正編碼與錯誤校正程序。例如,在對閃存102的執行存取時需提供能夠錯誤校正4個錯誤位的錯誤校正編碼與錯誤校正程序。一般來說,錯誤校正程序包括依據預先儲存的錯誤校正編碼來判斷數據是否存有錯誤位,并且當數據存有錯誤位時依據此錯誤校正編碼來校正錯誤的位。特別是,在本發明實施例中錯誤校正控制器104會在對主機控制器200欲讀取的數據執行錯誤校正程序后傳送錯誤校正單元202可處理的數據給主機控制器200。錯誤校正控制器104包括微處理器單元104a、第一錯誤校正單元104b、緩沖器104c、第一閃存接口104d、第二閃存接口104e與造錯單元104f。微處理器單元104a是用以控制與協調錯誤校正控制器104中所有元件的運作。具體來說,微處理器單元104a會依據本發明實施例所提出的錯誤校正方法(如圖3所示)處理與響應主機控制器200對閃存芯片系統100所下達的存取指令(例如,寫入指令或讀取指令)。第一錯誤校正單元104b是電性連接至微處理器單元104a。第一錯誤校正單元104b會在主機控制器200欲寫入數據至閃存芯片系統100時產生符合閃存102規格的新錯誤校正編碼。在本發明實施例中,第一錯誤校正單元104b的最大錯誤校正位數是設計為4個位且可檢測8個錯誤位,以提供符合閃存102所需的錯誤校正能力。然而,必須了解的是本發明的第一錯誤校正單元104b不限于最大錯誤校正位數是設計為4個位的錯誤校正電路。換言之,可支持閃存102所需的錯誤校正能力的錯誤校正電路都可應用于本發明。例如,若閃存102必需使用能夠錯誤校正4個錯誤位的錯誤校正編碼與錯誤校正程序來進行存取時,第一錯誤校正單元104b可以是能夠錯誤校正4個錯誤位、8個錯誤位、12個錯誤位、24個錯誤位或48個錯誤位的錯誤校正電路。緩沖器104c是電性連接至微處理器單元104a并且用以暫存在主機控制器200與閃存102之間所傳送的數據。第一閃存接口104d是用以連接主機控制器200,并且第二閃存接口104e是用以連接閃存102。造錯單元104f是電性連接至微處理器單元104a并且用以依據微處理器單元104a的指令在數據中產生錯誤位。值得一提的是,在本實施例中是以硬件架構來實作造錯單元104f,然而本發明不限于此,造錯單元104f亦可以固件形式來實作,在另一實施例中,該造錯單元104f亦可實作在微處理器單元104a中。圖2是根據本發明第一實施例繪示主機控制器200存取閃存芯片系統100的數據流示意圖。請參照圖2,當主機控制器200由其主機系統(未繪示)接收欲寫入的數據DATAl時,主機控制器200的舊錯誤校正單元202會依據數據DATAl產生舊錯誤校正編碼ECC1,并且主機控制器200會對閃存芯片系統100下達寫入指令并且將數據DATAl與舊錯誤校正編碼ECCl傳送至閃存芯片系統100。當錯誤校正控制器104的微處理器單元104a經由第一閃存接口104d接收到主機控制器200所傳送的寫入指令WC、數據DATAl與舊錯誤校正編碼ECCl時,微處理器單元104a會得知此存取指令為寫入指令,并且將數據DATAl與舊錯誤校正編碼ECCl暫存于緩沖器104c中。然后,第一錯誤校正單元104b會使用包含數據DATAl與舊錯誤校正編碼ECCl的數據DATA2來產生新錯誤校正編碼ECC2。最后,將數據DATA2與新錯誤校正編碼ECC2傳送至閃存102的物理區塊中。另外,當錯誤校正控制器104的微處理器單元104a經由第一閃存接口104d從主機控制器200中接收到讀取數據DATAl與舊錯誤校正編碼ECCl的讀取指令RC時,微處理器單元104a會從閃存102中讀取包含數據DATAl與舊錯誤校正編碼ECCI的數據DATA2以及新錯誤校正編碼ECC2并且將數據DATA2與新錯誤校正編碼ECC2暫存于緩沖器104c中。之后,第一錯誤校正單元104b會依據新錯誤校正編碼ECC2來對所讀取的數據DATA2執行錯誤校正程序。之后,微處理器單元104a會依據錯誤校正的結果傳送對應的數據給主機控制器200。具體來說,第一錯誤校正單元104b會執行錯誤校正程序來判斷數據DATA2中是否存有錯誤位以及若數據DATA2存有錯誤位時嘗試將錯誤位進行錯誤校正。值得一提的是,由于如上所述主機控制器200的舊錯誤校正單元202亦會執行錯誤校正程序并且主機控制器200會依據舊錯誤校正單元202的執行結果對閃存的區塊執行相關的管理運作(例如,執行平均區塊磨損(wear-leveling)程序),因此根據本發明實施例微處理器單元104a會在第一錯誤校正單元104b對數據DATA2執行完錯誤校正程序后依據舊錯誤校正單元202的錯誤校正能力來提供數據DATAl與舊錯誤校正編碼ECCl給主機控制器200。例如,當第一錯誤校正單元104b判斷所讀取的數據DATA2無存有錯誤位時,則微處理器單元104a會傳送所讀取的數據DATAl與舊錯誤校正編碼ECCl給主機控制器200。另外,當第一錯誤校正單元104b判斷所讀取的數據存DATA2存有錯誤位且此錯誤位可被錯誤校正時,則造錯單元104f會在從第一錯誤校正單元104b接收到已錯誤校正的數據DATAl中隨機產生錯誤位,并且微處理器單元104a會將具有錯誤位的數據DATAl與舊錯誤校正編碼ECCl傳送給主機控制器200。特別是,造錯單元104f所產生具有錯誤位的數據DATAl是能夠由舊錯誤校正單元202依據舊錯誤校正編碼ECCl來錯誤校正,因此造錯單元104f會依據舊錯誤校正單元202的錯誤校正能力來產生具有錯誤位的數據DATAl。在本實施例中,舊錯誤校正單元202能錯誤校正I個錯誤位,因此造錯單元104f會在數據DATAl中隨機產生I個錯誤位,并且微處理器單元104a會將具有I個錯誤位的數據DATAl與舊錯誤校正編碼ECCl傳送給主機控制器200。基此,根據本發明實施例,閃存芯片系統100的錯誤校正控制器104雖已將錯誤位進行錯誤校正,但亦可提供已發生錯誤位的信息給主機控制器,由此主機控制器200可獲知所存取的物理區塊已出現儲存狀態不穩定的狀況。值得一提的是,在本發明另一實施例中,倘若舊錯誤校正單元202能錯誤校正4個錯誤位,而第一錯誤校正單元104b能錯誤校正8個錯誤位時,造錯單元104f亦可根據映射規則產生上述具錯誤位的數據DATAl。例如,當數據DATA2中存有I或2個錯誤位時,造錯單元104f會在已由第一錯誤校正單元104b錯誤校正的數據DATAl中制造I個錯誤位;當數據DATA2中存有3或4個錯誤位時,造錯單元104f會在已由第一錯誤校正單元104b錯誤校正的數據DATAl中制造2個錯誤位;當數據DATA2中存有5或6個錯誤位時,造錯單元104f會在已由第一錯誤校正單元104b錯誤校正的數據DATAl中制造3個錯誤位;以及當數據DATA2中存有7或8個錯誤位時,造錯單元104f會在已由第一錯誤校正單元104b錯誤校正的數據DATAl中制造4個錯誤位。再者,當第一錯誤校正單元104b判斷所讀取的數據DATA2存有錯誤位且錯誤位無法被錯誤校正時,則微處理器單元104a會傳送事先儲存的預設錯誤數據與預設錯誤校正編碼給主機控制器200。例如,此預設錯誤數據可由舊錯誤校正單元202依據此預設錯誤校正編碼判定為發生無法錯誤校正的錯誤位。具體來說,由于第一錯誤校正單元104b判斷數據DATA2已無法被錯誤校正(即,數據DATA2具有58個錯誤位),也就是說在閃存102中數據DATAl已經遺失,因此微處理器單元104a必須告知舊錯誤校正單元202數據DATAl已遺失,由此主機控制器200才可依據舊錯誤校正單元202的錯誤校正結果判定儲存數據DATAl的物理區塊已損毀。在本實施例中,由于舊錯誤校正單元202可對數據進行檢測2個錯誤位與錯誤校正I個錯誤位的錯誤校正編碼與錯誤校正程序,因此微處理器單元104所事先儲存的預設錯誤數據是具有2個錯誤位。值得一提的是,以上所提映射規則僅是例示,本發明不限于此映射規則。在另一實施例中,除映射規則外,主機控制器200可于讀取數據的期間下達制造商指令(vendorcommand),主機控制器200可通過此制造商指令從閃存芯片系統100中讀出的數據DATAl實際的錯誤位數,而讓主機控制器200針對閃存102的實際損毀狀況進行對應的管理機制。也就是說,錯誤校正控制器104會將已錯誤校正的數據DATAl傳送給主機控制器200,另外通過響應制造商指令將實際的錯誤位數傳送給主機控制器200。此外,值得一提的是在本實施例中閃存102的物理區塊會儲存錯誤校正控制器104所使用的相關參數信息(例如,關于存取閃存102的物理區塊所需的錯誤校正能力的信息、關于主機控制器200的錯誤校正能力的信息、錯誤校正控制器104的固件程序等)。然而,為避免主機控制器200可能在無法辨識儲存此些重要信息的物理區塊下誤刪除儲存在此物理區塊內的信息,因此在本實施例中,微處理器單元104a會將儲存此些信息的物理區塊標記為已損毀物理區塊。因此,當主機控制器110存取此些物理區塊時主機控制器110會根據此標記辨識此些物理區塊為已損毀物理區塊而改使用上述替代區中的物理區塊來進行存取。基于上述,本發明實施例所提出的閃存芯片系統100可提供給舊主機系統的主機控制器所存取,由此解決舊主機系統的主機控制器無法支持新閃存的問題。以下將配合圖3說明根據本發明實施例的錯誤校正方法。圖3是根據本發明第一實施例繪示錯誤校正步驟的流程圖。請參照圖3,在步驟S301中從主機控制器200接收存取指令并且判斷此存取指令為寫入指令或讀取指令。倘若此存取指令為寫入指令時,在步驟S303中會根據所寫入的數據與其舊錯誤校正編碼(例如,數據DATAl與舊錯誤校正編碼ECC1)來產生新錯誤校正編碼(例如,新錯誤校正編碼ECC2),并且在步驟S305中將欲寫入的數據、其舊錯誤校正編碼與所產生的新錯誤校正編碼儲存在閃存102的物理區塊中。倘若此存取指令為讀取數據指令時,在步驟S307中會依據指令從閃存102的物理區塊中讀取數據與其舊錯誤校正編碼(例如,數據DATAl與舊錯誤校正編碼ECC1)以及對應的新錯誤校正編碼。然后,在步驟S309中會依據新錯誤校正編碼判斷所讀取的數據與其舊錯誤校正編碼是否發生錯誤位,倘若在步驟S309中判斷所讀取的數據與其舊錯誤校正編碼無發生錯誤位時,則在步驟S311中將所讀取的數據與其舊錯誤校正編碼傳送給主機控制器200。倘若在步驟S309中判斷所讀取的數據與其舊錯誤校正編碼發生錯誤位時,則在步驟S313中會對錯誤位進行校正的程序,并且在步驟S315中判斷此錯誤位是否已被錯誤校正。倘若在步驟S315中錯誤校正程序的結果顯示此錯誤位已被錯誤校正時,則在步驟S317中在已錯誤校正的數據中產生可由主機控制器200錯誤校正的錯誤位,并且在步驟S319中將具錯誤位的數據及其舊錯誤校正編碼傳送給主機控制器200。倘若在步驟S315中判斷此錯誤位無法被錯誤校正時,則在步驟S321中會將預設錯誤數據與預設錯誤校正編碼傳送給主機控制器200。此外,如上所述為了避免主機控制器200誤刪除錯誤校正控制器104的設定信息,在本發明另一實施例中,上述錯誤校正步驟還包括將關于第一錯誤校正單元的參數信息儲存在閃存的一物理區塊中并且將此物理區塊標記為已損毀區塊。值得一提的是,為了在編程閃存時避免發生錯誤位,在本發明另一實施例中錯誤校正控制器104還包括數據轉換器(未繪示)。數據轉換器可在當錯誤校正控制器104從主機控制器200接收到欲寫入至閃存102的數據DATAl時,將數據DATAl中的每一位進行適當的轉換,以將數據DATAl中連續且記錄相同值的位(例如,連續為“O”的多個位或連續為“I”的多個位)分散,以使得在編程閃存102時更為穩定。特別是,數據轉換器會判斷數據DATAl中是否存有連續且記錄相同值的位,倘若數據DATAl存有連續且記錄相同值的位時數據轉換器才對數據DATAl進行上述的轉換。[第二實施例]圖4是根據本發明第二實施例繪示閃存芯片系統的概要方塊圖。請參照圖4,閃存芯片系統400包括閃存402與錯誤校正控制器404。閃存芯片系統400會與主機控制器200連接以由主機控制器200對其執行各種存取運作。如上所述,主機控制器200具有舊錯誤校正單元202,其中舊錯誤校正單元202可對數據提供錯誤校正I個錯誤位與檢測2個錯誤位的能力。閃存402是相同于第一實施例的閃存102,在此不再重復說明。錯誤校正控制器404是電性連接至閃存402并且用以執行符合閃存402所需錯誤校正能力的錯誤校正編碼與錯誤校正程序。錯誤校正控制器404包括微處理器單元404a、第一錯誤校正單元404b、緩沖器404c、第一閃存接口404d、第二閃存接口404e與第二錯誤校正單元404f。第二錯誤校正單元404f是電性連接至微處理器單元404a并且具有與舊錯誤校正單元202同樣錯誤校正能力的錯誤校正電路。例如,第二錯誤校正單元404f能夠對數據進行錯誤校正I個錯誤位/檢測2個錯誤位。此外,微處理器單元404a、第一錯誤校正單元404b、緩沖器404c、第一閃存接口404d與第二閃存接口404e的功能與結構是本質上是相同于第一實施例的微處理器單元104a、第一錯誤校正單元104b、緩沖器104c、第一閃存接口104d與第二閃存接口104e的功能與結構,以下將僅針對不同之處進行說明。圖5是根據本發明第二實施例繪示主機控制器200存取閃存芯片系統400的數據流示意圖。請參照圖5,當主機控制器200由其主機系統接收欲寫入的數據DATAl時,主機控制器200的舊錯誤校正單元202會依據數據DATAl產生舊錯誤校正編碼ECC1,并且主機控制器200會對閃存芯片系統400下達寫入指令并且將數據DATAl與舊錯誤校正編碼ECCl傳送至閃存芯片系統400。當錯誤校正控制器404的微處理器單元404a經由第一閃存接口404d從主機控制器200中接收到寫入指令、數據DATAl與舊錯誤校正編碼ECCl時,微處理器單元404a會得知此存取指令為寫入指令,并且將數據DATAl與舊錯誤校正編碼ECCl暫存于緩沖器404c中。在本發明實施例中,第二錯誤校正單元404f會根據舊錯誤校正編碼ECCl對數據DATAl進行錯誤校正程序,在進行編程(programming)之后主機控制器200會下達制造商指令,此時若數據DATAl無法被第二錯誤校正單元校正而完成寫入時,微處理器單元404a會響應主機控制器200數據DATAl無法被寫入,而后主機控制器200才會重新再編程一次。由此,可對寫入數據也做到正確寫入及校正的操作。然后,第一錯誤校正單元404b會依據數據DATAl來產生新錯誤校正編碼ECC2’。最后,將數據DATAl與新錯誤校正編碼ECC2’傳送至閃存402的物理區塊中。另外,當主機控制器200欲從閃存芯片系統400中讀取數據DATAl與舊錯誤校正編碼ECCl時,微處理器單元404a會依據來自于主機控制器200的讀取指令從閃存402中讀取數據DATAl與新錯誤校正編碼ECC2’并且將數據DATAl與新錯誤校正編碼ECC2’暫存于緩沖器404c中。然后,第一錯誤校正單元404b會依據新錯誤校正編碼ECC2’來對所讀取的數據DATAl執行錯誤校正程序。之后,微處理器單元404a會依據錯誤校正的結果傳送對應的數據給主機控制器200。具體來說,第一錯誤校正單元404b會執行錯誤校正程序來判斷數據DATAl中是否存有錯誤位以及若數據DATAl存有錯誤位時嘗試將錯誤位進行錯誤校正。當第一錯誤校正單元404b判斷所讀取的數據DATAl無存有錯誤位時,則第二錯誤校正單元404f會依據數據DATAl來重新產生舊錯誤校正編碼ECC1,并且微處理器單元404a會傳送所讀取的數據DATAl與所重新產生的舊錯誤校正編碼ECCl給主機控制器200。在此,由于根據本實施例的錯誤校正控制器400未儲存舊錯誤校正編碼ECCl,因此錯誤校正控制器400會通過第二錯誤校正單元404f來重新產生。另外,當第一錯誤校正單元404b判斷所讀取的數據存DATAl存有錯誤位且此錯誤位可被錯誤校正時,則微處理器單元404a會在從第一錯誤校正單元404b接收到已錯誤校正的數據DATAl之后在數據DATAl中隨機產生錯誤位,并且將具有錯誤位的數據DATAl與舊錯誤校正編碼ECCl傳送給主機控制器200。相同于第一實施例,微處理器單元404a所產生具有錯誤位的數據DATAl必須能夠由舊錯誤校正單元202依據舊錯誤校正編碼ECCl來錯誤校正,因此微處理器單元404a會依據舊錯誤校正單元202的錯誤校正能力來產生具有錯誤位的數據DATAl。同樣地,在此例子中,錯誤校正控制器400會通過第二錯誤校正單元404f依據已錯誤校正的數據DATAl來重新產生舊錯誤校正編碼ECCl。再者,當第一錯誤校正單元404b判斷所讀取的數據DATAl存有錯誤位且錯誤位無法被錯誤校正時,則微處理器單元404a會傳送事先儲存的預設錯誤數據與預設錯誤校正編碼給主機控制器200。相同于第一實施例,此預設錯誤數據可由舊錯誤校正單元202依據此預設錯誤編碼判定為發生無法錯誤校正的錯誤位。在第一實施例中,如圖2所示,錯誤校正控制器是將含有原數據與舊錯誤校正編碼的數據進行錯誤校正編碼并將原數據與舊錯誤校正編碼以及新錯誤校正編碼儲存在閃存中,因此需要更多的儲存空間來同時儲存舊錯誤校正編碼與新錯誤校正編碼。然而,第二實施例所提出的閃存芯片系統400除了可達成第一實施例的功能外,同時可節省閃存儲存數據所需的空間。以下將配合圖6說明根據本發明實施例的錯誤校正方法。圖6是根據本發明第二實施例繪示錯誤校正步驟的流程圖。請參照圖6,在步驟S601中從主機控制器200接收存取指令并且判斷此存取指令為寫入指令或讀取指令。倘若此存取指令為寫入指令時,在步驟S603中會依據舊錯誤校正編碼(例如,舊錯誤校正編碼ECC1)對所寫入的數據(例如,數據DATA1)進行錯誤校正程序,并且在步驟S605中依據已錯誤校正的數據來產生新錯誤校正編碼(例如,新錯誤校正編碼ECC2’)。之后,在步驟S607中將欲寫入的數據與所產生的新錯誤校正編碼儲存在閃存402的物理區塊中。倘若此存取指令為讀取資指令時,在步驟S609中會依據指令從閃存102的物理區塊中讀取數據(例如,數據DATA1)以及對應的新錯誤校正編碼(例如,新錯誤校正編碼ECC2,)。然后,在步驟S611中依據新錯誤校正編碼判斷所讀取的數據是否發生錯誤位,倘若在步驟S611中判斷所讀取的數據無發生錯誤位時,則在步驟S613中依據所讀取的數據重新產生對應的舊錯誤校正編碼,并且在步驟S615中將所讀取的數據與所重新產生的舊錯誤校正編碼傳送給主機控制器200。倘若在步驟S611中判斷所讀取的數據發生錯誤位時,則在步驟S617中對錯誤位進行校正并且在步驟S619中判斷此錯誤位是否已被錯誤校正。倘若在步驟S619中判斷此錯誤位已被錯誤校正時,則在步驟S621中依據已錯誤校正的數據重新產生對應的舊錯誤校正編碼,并且在步驟S623中在已錯誤校正的數據中產生可由主機控制器200錯誤校正的錯誤位。然后,在步驟S625中將具錯誤位的數據及所重新產生的舊錯誤校正編碼傳送給主機控制器200。倘若在步驟S619中判斷此錯誤位無法被錯誤校正時,則在步驟S627中會將預設錯誤數據與預設錯誤校正編碼傳送給主機控制器200。綜上所述,本發明在舊系統的主機控制器與新閃存之間配置直夠支持新閃存的錯誤校正控制器,由此使舊系統的主機控制器可存取新一代的閃存。雖然本發明已以實施例揭露如上,然其并非用以限定本發明,任何所屬
技術領域
中具有通常知識者,在不脫離本發明的精神和范圍內,當可作些許的更動與潤飾,故本發明的保護范圍當視所附的權利要求范圍所界定者為準。權利要求1.一種錯誤校正控制器,包括第一閃存接口,用以連接主機控制器;第二閃存接口,用以連接閃存,微處理器單元,電性連接至所述第一閃存接口與所述第二閃存接口;以及第一錯誤校正單元,電性連接至所述微處理器單元,其中所述第一錯誤校正單元會在所述主機控制器欲寫入數據至所述閃存時產生第一錯誤校正編碼并且將所述數據與所述第一錯誤校正編碼儲存在所述閃存中,其中當所述主機控制器欲從所述閃存中讀取所述數據時,所述微處理器單元會從所述閃存中讀取所述數據與所述第一錯誤校正編碼,并且所述第一錯誤校正單元會依據所述第一錯誤校正編碼來對所讀取的所述數據進行錯誤校正程序,并且所述微處理器單元會將已錯誤校正的所述數據傳送給所述主機控制器,并且其中所述微處理器單元會將在所述錯誤校正程序所判斷的至少一錯誤位數依據制造商指令響應給所述主機控制器。2.—種閃存芯片系統,包括閃存;以及錯誤校正控制器,電性連接至所述閃存,其中所述錯誤校正控制器會在所述主機控制器欲寫入數據至所述閃存時產生第一錯誤校正編碼并且將所述數據與所述第一錯誤校正編碼儲存在所述閃存中,其中當所述主機控制器欲從所述閃存中讀取所述數據時,所述錯誤校正控制器會從所述閃存中讀取所述數據與所述第一錯誤校正編碼,依據所述第一錯誤校正編碼來對所讀取的所述數據進行錯誤校正程序,并且將已錯誤校正的所述數據傳送給所述主機控制器,以及其中所述錯誤校正控制器會將在所述錯誤校正程序所判斷的至少一錯誤位數依據制造商指令響應給所述主機控制器。3.一種錯誤校正方法,適用于錯誤校正主機控制器對閃存所存取的數據,所述錯誤校正方法包括當所述主機控制器欲寫入數據至所述閃存時產生第一錯誤校正編碼并且將所述數據與所述第一錯誤校正編碼儲存在所述閃存中;當所述主機控制器欲從所述閃存中讀取所述數據時,從所述閃存中讀取所述數據與所述第一錯誤校正編碼,依據所述第一錯誤校正編碼來對所讀取的所述數據進行錯誤校正程序;將已錯誤校正的所述數據傳送給所述主機控制器;以及將所述錯誤校正程序中所判斷的至少一錯誤位數依據制造商指令響應給所述主機控制器。全文摘要一種錯誤校正控制器,其用以連接在具有低階錯誤校正功能的舊主機控制器與需高階錯誤校正功能的新閃存之間,其中當舊主機控制器欲寫入數據與其舊錯誤校正編碼至新閃存時錯誤校正控制器會以高階錯誤校正功能產生新錯誤校正編碼。之后,當主機控制器欲從新閃存中讀取數據與其舊錯誤校正編碼時,錯誤校正控制器會依據新錯誤校正編碼來進行錯誤校正程序,并且依據錯誤校正結果以及舊主機控制器的錯誤校正能力傳送對應的數據。基此,可在不更動舊主機控制器的架構下使舊主機控制器存取新閃存。文檔編號G11C29/44GK102855943SQ20121034932公開日2013年1月2日申請日期2008年11月28日優先權日2008年11月28日發明者鄭國義,梁立群,朱健華申請人:群聯電子股份有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 靖宇县| 金平| 万全县| 介休市| 灵山县| 德兴市| 桑植县| 唐河县| 吴堡县| 海安县| 通江县| 伊川县| 根河市| 疏勒县| 临湘市| 友谊县| 玉门市| 郸城县| 家居| 彝良县| 滁州市| 马尔康县| 信丰县| 射洪县| 静乐县| 万盛区| 岫岩| 宿松县| 西峡县| 大冶市| 隆尧县| 昌乐县| 陆丰市| 湟中县| 南宫市| 诏安县| 湘阴县| 湖口县| 奉化市| 高邮市| 招远市|