错误校正控制器及其闪存芯片系统与错误校正方法

文档序号:6739678阅读:292来源:国知局

专利名称::错误校正控制器及其闪存芯片系统与错误校正方法
技术领域
:本发明是有关于一种闪存芯片系统,且特别是有关于一种具错误校正(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