系统总线检错纠错方法和nandflash控制器的制作方法

文档序号:6737113阅读:211来源:国知局
专利名称:系统总线检错纠错方法和nand flash控制器的制作方法
技术领域
本发明涉及一种系统总线检错纠错方法和NAND FLASH控制器。
背景技术
NAND FLASH结构是FLASH内存的一种,强调降低每比特的成本和更高的性能。NAND FLASH存储器具有容量较大、改写速度快等优点,适用于大量数据的存储,因而在嵌入式产品中得到了广泛的应用,如数码相机、MP3随身听记忆卡、体积小巧的U盘等。信息技术的飞速发展,人们对信息的需求量也越来越大。因此,大量数据在系统内部以及网络之间存储和传递时,对数据进行检测并更正可能出现的错误尤为重要。同时由于NAND FLASH所采用的工艺导致位翻转的现象比较多,但是它的出错一般不会造成整块或者整页不能读取或者全部出错,而是整个页中的一位或者几位出错。目前,有技术将ECC模块嵌入了 NAND FLASH控制中。在实现本发明过程中,发明人发现该现有技术虽然能够完成NAND FLASH控制器的检错纠错的功能,但是不能用于无线通信方面的检错纠错。还有一种基于固态硬盘的ECC多模块复用系统,每个通道分别设有一控制器和 ECC模块,当所述一通道进行数据操作,而同组的其他通道空闲或部分空闲时,所述多路选择器将同组的所述数据操作通道的ECC模块和所述空闲或部分空闲通道的ECC模块动态分配给所述数据操作通道的控制器使用。发明人发现该现有技术是对ECC模块独立整体的复用,也不能用于无线通信方面的检错纠错。

发明内容
为了克服上述的缺陷,本发明提供一种可用于无线通信方面的系统总线检错纠错方法。为达到上述目的,一方面,本发明提供一种系统总线检错纠错方法,所述方法为系统总线与ECC模块连接,ECC模块在系统总线控制下对系统总线中信号数据进行数据处理;所述方法包括下述步骤信号源数据进入系统总线;ECC模块得到系统总线上的信号源数据并对所述信号源数据进行编码和/或解码;ECC模块将编码和/或解码后得到的数据放到系统总线上。另一方面,本发明提供一种NAND FLASH控制器,所述控制器包括相连接的控制单元和ECC模块,控制单元将系统总线的操作请求转换成NAND FLASH的时序要求,所述ECC 模块还设有能与系统总线物理连接的接口 ;其中,ECC模块,接受控制单元和/或系统总线的控制对数据进行检错纠错。本发明系统总线检错纠错方法使用ECC模块直接为系统总线检错纠错,填补了现有技术的空白。ECC模块技术成熟,使用ECC模块实现的本方法性能稳定,使用方便。应用
4本发明系统总线检错纠错方法后,系统总线上的信号源数据可通过无线通信后由ECC模块进行检错纠错,弥补了现有技术的不足。本发明NAND FLASH控制器中ECC模块连接系统总线,可以直接对系统总线中的全部信号数据进行检错纠错,使用方便,性能稳定。信号数据通过系统总线传输后,ECC模块实现对无线通信的检错纠错,弥补了现有技术的空白。


图1为本发明系统总线检错纠错方法步骤框图。图2为本发明系统总线检错纠错方法原理示意图。图3为本发明NAND FLASH控制器优选实施例结构示意图。图4为本发明优选实施例NAND FLASH状态转化示意图。图5为本发明NAND FLASH控制器中ECC模块优选实施例结构示意图。
具体实施例方式下面结合说明书附图和实施例对本发明做详细描述。本发明提供一种系统总线检错纠错方法,该方法为系统总线与ECC(错误检查和纠正技术)模块连接,ECC模块在系统总线控制下对系统总线中信号数据进行数据处理。其中,系统总线与ECC模块之间的连接为物理连接。解决了现有技术中只有进入NAND FLASH 控制器的部分信号数据才得以检错纠错的缺陷。如图1所示,本方法中ECC模块采用编码和/或解码的方式为信号数据进行检错纠错的。实现该方法主要包括下述步骤信号源数据进入系统总线;ECC模块得到系统总线上的信号源数据并对所述信号源数据进行编码和/或解码;ECC模块将编码和/或解码后得到的数据放到系统总线上。经过上述步骤,ECC模块对系统总线中信号数据进行了检错纠错,效果良好,操作简单,填补了现有技术的空白。如图2所示,也可以使用ECC模块同时为系统总线和NAND FLASH控制器检错纠错, 主要包括下述步骤信号源数据进入系统总线,系统总线中的操作请求数据进入NAND FLASH控制器;ECC模块得到系统总线上的信号源数据并对其进行编码和/或解码,将编码和/或解码后所得数据放到系统总线上;ECC模块得到NAND FLASH控制器中的操作请求数据并对其进行编码和/或解码, 将编码和/或解码后数据传输回NAND FLASH控制器。为了避免信号的互相干扰,ECC模块应用不同的通道分别对系统总线和NAND FLASH控制器进行编码和/或解码。使用这种方法,ECC模块同时为系统总线和NAND FLASH控制器检错纠错,既保证了系统总线中信号数据的准确性,又保留了现有ECC模块为NAND FLASH控制器检错纠错的功能。整体的功能更加强大,适用范围更广,性能更加良好。
使用ECC模块检错纠错时因其内部的算法不同,所对应的时序亦不同。现阶段有很多成熟的算法,这些算法均可以应用到本发明中,因此本发明中ECC模块检错纠错的时序有多种。为了实现上述方法,本发明提供一种NAND FLASH控制器,该控制器包括相连接的控制单元和ECC模块,控制单元和ECC模块的连接可以与现有技术中的连接方式相同,也可以在两者之间加设接口,还可以有其它的连接方式,可以实现两者之间的数据传输即可。控制单元将系统总线的操作请求转换成NAND FLASH的时序要求,实现对NAND FLASH的控制作用。ECC模块还设有能与系统总线物理连接的接口 ;ECC模块接受控制单元和/或系统总线的控制对数据进行检错纠错。该NAND FLASH控制器中的ECC模块同时连接控制单元和系统总线,为两者提供检错纠错的功能,整体的功能更加强大,适用范围更广,性能更加良好。如图3所示,控制单元主要包括寄存器控制文件模块、访问周期选择模块、控制器的控制模块、数据缓存模块、ECC控制模块和FLASH多路选择器。寄存器控制文件模块连接系统总线,面向系统总线接口设计的。通过系统总线配置所有被系统总线访问的控制寄存器。访问周期选择模块主要作用是为NandFlash读写产生一个适当的访问时钟周期, 本模块主要实现了一个可编程的分频器。也就是说可以通过寄存器控制文件模块配置寄存器实现分频,从而产生适合Flash访问的时钟周期。控制器的控制模块是整个NAND FLASH控制单元非常重要的部分。它把系统总线的请求转换成NandFlash设备的访问时序,如命令锁存周期、地址锁存周期、数据读/写周期、数据擦除周期等,根据具体应用的不同,还可以有其它的访问时序内容,从而实现控制 NandFlash设备的目的。由于NandFlash的控制指令比较多,为了能够灵活控制各款NandFlash芯片,控制器的控制模块采用状态机的设计,该状态机分为七个状态空闲状态、写命令状态、写地址状态、写数据状态、等待状态、Flash忙状态和读Flash状态。状态之间的转换如图4所示。数据缓存模块主要的作用是为NAND FLASH读/写操作一页的数据缓存。由于数据缓存被系统总线和NAND FLASH控制器访问,所以设计了数据缓存控制模块控制所有的系统总线接口和NAND FLASH控制器,以便于接受系统总线和NAND FLASH控制器的访问。ECC控制模块在其内部提供了一种ECC (错误检查和纠错技术)的算法,还为ECC 模块提供接口,为其发起一些控制信号,所以NAND FLASH根据FLASH的要求选择不同的错误检查和纠错的算法。FLASH多路选择器将寄存器控制文件模块、数据缓存模块和ECC控制模块连接至 NAND FLASH。上述结构实现了控制单元将系统总线的操作请求转换成NAND FLASH的时序要求的功能,达到了对NAND FLASH控制的目的,结构合理,性能良好。由于NAND FLASH所采用的工艺导致位翻转的现象比较多,但是它的出错一般不会造成整块或者整页不能读取或者全部出错,而是整个页中的一位或者几位出错,因此在 NAND FLASH处理中使用具有纠错检错功能的ECC模块尤为重要。
为了实现ECC模块同时为控制单元和系统总线进行检错纠错的功能,本发明NAND FLASH控制器中的ECC模块内设有两个编解码算法通道,两个通道互不干扰。分别利用两个编解码算法通道来处理控制单元和系统总线中的信号数据,实现了信号数据的互不干扰。其中,ECC模块包括输入接口、输出接口、设置在输入接口和输出接口之间的编解码算法通道、以及控制输入接口和输出接口的控制逻辑。编解码算法通道包括第一通道和第二通道,第一通道和第二通道互不干扰。优选实施例一使用本发明NAND FLASH控制器为系统总线检错纠错。所用NAND FLASH控制器包括相连接的控制单元和ECC模块,控制单元和ECC模块之间通过接口连接。控制单元将系统总线的操作请求转换成NAND FLASH的时序要求,实现对 NANDFLASH的控制作用。ECC模块设有接口,与系统总线物理连接,具有直接对系统总线进行检错纠错的功能。控制单元主要包括寄存器控制文件模块、访问周期选择模块、控制器的控制模块、数据缓存模块、ECC控制模块和FLASH多路选择器。NAND FLASH控制器中的ECC模块内设有两个编解码算法通道,两个通道互不干扰。ECC模块包括输入接口、输出接口、设置在输入接口和输出接口之间的编解码算法通道、以及控制输入接口和输出接口的控制逻辑。编解码算法通道包括第一通道和第二通道, 第一通道和第二通道互不干扰。NAND FLASH控制器为系统总线检错纠错的具体步骤如下信号源数据进入系统总线,为ECC模块的纠错检错做准备工作;ECC模块得到系统总线上的信号源数据,对该信号源数据进行编码和/或解码,通过编码和/或解码的方法来实现纠错检错的目的;ECC模块将编码和/或解码后得到的数据放到系统总线上,完成了对系统总线纠错检错的工作。通过上述步骤,ECC模块对系统总线中信号数据进行了检错纠错,效果良好,操作简单,填补了现有技术的空白。优选实施例二 使用本发明NAND FLASH控制器为无线通信检错纠错。这里的检错纠错主要是对信道的编解码,主要目的是能提高无线传输的抗干扰性。在信源传输之前,配置好寄存器,让ECC模块能够正常工作。所用NAND FLASH控制器包括相连接的控制单元和ECC模块,控制单元和ECC模块之间通过接口连接。控制单元将系统总线的操作请求转换成NAND FLASH的时序要求,实现对NAND FLASH的控制作用。ECC模块设有接口,与系统总线物理连接,具有直接对系统总线进行检错纠错的功能。控制单元主要包括寄存器控制文件模块、访问周期选择模块、控制器的控制模块、数据缓存模块、ECC控制模块和FLASH多路选择器。NAND FLASH控制器中的ECC模块内设有两个编解码算法通道,两个通道互不干扰。ECC模块包括输入接口、输出接口、设置在输入接口和输出接口之间的编解码算法通道、以及控制输入接口和输出接口的控制逻辑。编解码算法通道包括第一通道和第二通道, 第一通道和第二通道互不干扰。NAND FLASH控制器为无线通信提供检错纠错的具体步骤如下信号源数据进入第一系统总线,为第一 ECC模块的纠错检错做准备工作;
第一 ECC模块得到第一系统总线上的信号源数据,对该信号源数据进行编码;第一 ECC模块将编码后得到的数据放到第一系统总线上;发射设备将第一系统总线上编码的数据发射到无线空间中;接收设备将无线空间中的数据接收后放入第二系统总线上;第二 ECC模块得到第二系统总线上的信号源数据,对该信号源数据进行解码;第二 ECC模块将解码后得到的数据放到第二系统总线上,至此完成无线通信的检错纠错。在本优选实施例中,NAND FLASH控制器为无线通信检错纠错,提高了无线传输的抗干扰性。优选实施三使用本发明NAND FLASH控制器同时为系统总线和NAND FLASH控制单元检错纠错。所用NAND FLASH控制器包括相连接的控制单元和ECC模块,控制单元和 ECC模块之间通过接口连接。控制单元将系统总线的操作请求转换成NAND FLASH的时序要求,实现对 NANDFLASH的控制作用。控制单元主要包括寄存器控制文件模块、访问周期选择模块、控制器的控制模块、数据缓存模块、ECC控制模块和FLASH多路选择器。ECC模块设有接口,与系统总线物理连接,具有直接对系统总线进行检错纠错的功能。同时,ECC模块具有对控制单元数据进行检错纠错的功能。ECC模块内设有两个编解码算法通道,两个通道互不干扰。ECC模块包括输入接口、输出接口、设置在输入接口和输出接口之间的编解码算法通道、以及控制输入接口和输出接口的控制逻辑。编解码算法通道包括第一通道RS (511,503)和第二通道RS (511,495),第一通道RS (511,503)和第二通道 RS (511,495)互不干扰。如图5所示,ECC模块上有两个接口,通过控制逻辑单元选择这两个接口。根据 NNAD FLASH和总线接口的控制选择不同的RS编解码硬件模块实现,最后通过控制逻辑的选择输出。ECC模块是一个硬件结构。输入接口可以做选择,是从NAND FLASH控制器来的控制信号,还是从总线来的数据和配置寄存器的具体的数据。本实施例中使用的RS编解码器基本原理就是每当往NAND FLASH的page中写入数据的时候,每503/495字节我们生成一个ECC校验和,称之为原ECC校验和,保存到PAGE 的OOB (out-of-band)数据区中。当从NAND FLASH中读取数据的时候,每503/495字节我们生成一个ECC校验和,称之为新ECC校验和。校验的时候,根据上述ECC模块生成原理不难推断将从OOB区中读出的原ECC校验和新ECC校验和按位异或,若结果为0,则表示不存在错(或是出现了 ECC无法检测的错误),即为逻辑输出结果。通过NAND FLASH控制器的选择和总线配置ECC模块的选择,选择它选用哪种编解码方式(RS(511,50;3),RS(511,4%))。以上是输入接口的作用,将进来的数据,送入不同的编解码,再经过编解码之后的数据输入到输出控制模块控制分别输出到NAND FLASH控制器和系统总线上。NAND FLASH控制器同时为系统总线和NAND FLASH控制单元检错纠错的具体步骤如下信号源数据进入系统总线,系统总线中的操作请求数据进入NAND FLASH控制器, 为ECC模块的纠错检错做准备工作;
8
ECC模块得到系统总线上的信号源数据并对其进行编码和/或解码,将编码和/或解码后所得数据放到系统总线上;ECC模块得到NAND FLASH控制器中的操作请求数据并对其进行编码和/或解码, 将编码和/或解码后数据传输回NAND FLASH控制器。使用本实施例的方法,ECC模块同时为系统总线和NAND FLASH控制器检错纠错, 既保证了系统总线中信号数据的准确性,又保留了现有ECC模块为NAND FLASH控制器检错纠错的功能。整体的功能更加强大,适用范围更广,性能更加良好。优选实施四使用本发明NAND FLASH控制器同时为无线通信和NAND FLASH控制单元检错纠错。所用NAND FLASH控制器包括相连接的控制单元和ECC模块,控制单元和 ECC模块之间通过接口连接。控制单元将系统总线的操作请求转换成NAND FLASH的时序要求,实现对NAND FLASH的控制作用。控制单元主要包括寄存器控制文件模块、访问周期选择模块、控制器的控制模块、数据缓存模块、ECC控制模块和FLASH多路选择器。ECC模块设有接口,与系统总线物理连接,具有直接对系统总线进行检错纠错的功能。同时,ECC模块具有对控制单元数据进行检错纠错的功能。ECC模块内设有两个编解码算法通道,两个通道互不干扰。ECC模块包括输入接口、输出接口、设置在输入接口和输出接口之间的编解码算法通道、以及控制输入接口和输出接口的控制逻辑。编解码算法通道包括第一通道RS (511,503)和第二通道RS (511,495),第一通道RS (511,503)和第二通道 RS (511,495)互不干扰。如图5所示,ECC模块上有两个接口,通过控制逻辑单元选择这两个接口。根据 NNAD FLASH和总线接口的控制选择不同的RS编解码硬件模块实现,最后通过控制逻辑的选择输出。ECC模块是一个硬件结构。输入接口可以做选择,是从NAND FLASH控制器来的控制信号,还是从总线来的数据和配置寄存器的具体的数据。本实施例中使用的RS编解码器基本原理就是每当往NAND FLASH的page中写入数据的时候,每503/495字节我们生成一个ECC校验和,称之为原ECC校验和,保存到PAGE 的OOB (out-of-band)数据区中。当从NAND FLASH中读取数据的时候,每503/495字节我们生成一个ECC校验和,称之为新ECC校验和。校验的时候,根据上述ECC模块生成原理不难推断将从OOB区中读出的原ECC校验和新ECC校验和按位异或,若结果为0,则表示不存在错(或是出现了 ECC无法检测的错误),即为逻辑输出结果。通过NAND FLASH控制器的选择和总线配置ECC模块的选择,选择它选用哪种编解码方式(RS(511,50;3),RS(511,4%))。以上是输入接口的作用,将进来的数据,送入不同的编解码,再经过编解码之后的数据输入到输出控制模块控制分别输出到NAND FLASH控制器和系统总线上。NAND FLASH控制器同时为系统总线和NAND FLASH控制单元检错纠错的具体步骤如下信号源数据进入第一系统总线,第一系统总线中的操作请求数据进入第一 NAND FLASH控制器,为第一 ECC模块的纠错检错做准备工作;第一 ECC模块得到第一系统总线上的信号源数据,对该信号源数据进行编码,第一 ECC模块将编码后得到的数据放到第一系统总线上;
第一 ECC模块得到第一 NAND FLASH控制器中的操作请求数据并对其进行编码,将编码后数据传输回NAND FLASH控制器;发射设备将第一系统总线上编码的数据发射到无线空间中;接收设备将无线空间中的数据接收后放入第二系统总线上,第二系统总线中的操作请求数据进入第二 NAND FLASH控制器;第二 ECC模块得到第二系统总线上的信号源数据,对该信号源数据进行解码,第二 ECC模块将解码后得到的数据放到第二系统总线上;第二 ECC模块得到第二 NAND FLASH控制器中的操作请求数据并对其进行解码,将解码后数据传输回NAND FLASH控制器;至此完成无线通信的检错纠错。使用本实施例的方法,ECC模块同时为无线通信和NAND FLASH控制器检错纠错, 既提高了无线传输的抗干扰性,又保留了现有ECC模块为NAND FLASH控制器检错纠错的功能。整体的功能更加强大,适用范围更广,性能更加良好。以上,仅为本发明的较佳实施例,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求所界定的保护范围为准。
权利要求
1.一种系统总线检错纠错方法,其特征在于,所述方法为系统总线与ECC模块连接, ECC模块在系统总线控制下对系统总线中信号数据进行数据处理;所述方法包括下述步骤信号源数据进入系统总线;ECC模块得到系统总线上的信号源数据并对所述信号源数据进行编码和/或解码;ECC模块将编码和/或解码后得到的数据放到系统总线上。
2.根据权利要求1所述的系统总线检错纠错方法,其特征在于,所述ECC模块还连接 NAND FLASH控制器,所述NAND FLASH控制器还连接系统总线;ECC模块在系统总线控制下对系统总线中信号数据进行数据处理,还对NAND FLASH控制器中信号数据进行数据处理; 所述方法包括下述步骤信号源数据进入系统总线,系统总线中的操作请求数据进入NAND FLASH控制器;ECC 模块得到系统总线上的信号源数据并对其进行编码和/或解码,将编码和/或解码后所得数据放到系统总线上;以及,ECC模块得到NAND FLASH控制器中的操作请求数据并对其进行编码和/或解码, 将编码和/或解码后数据传输回NAND FLASH控制器。
3.根据权利要求2所述的系统总线检错纠错方法,其特征在于所述ECC模块应用不同的通道分别对系统总线和NAND FLASH控制器进行编码和/或解码。
4.一种NAND FLASH控制器,所述控制器包括相连接的控制单元和ECC模块,控制单元将系统总线的操作请求转换成NAND FLASH的时序要求,其特征在于所述ECC模块还设有能与系统总线物理连接的接口 ;其中,ECC模块,接受控制单元和/或系统总线的控制对数据进行检错纠错。
5.根据权利要求4所述的NANDFLASH控制器,其特征在于,所述控制单元包括寄存器控制文件模块、访问周期选择模块、控制器的控制模块、数据缓存模块、ECC控制模块、以及FLASH多路选择器;寄存器控制文件模块,连接系统总线,通过系统总线配置所有被系统总线访问的控制寄存器;访问周期选择模块,作为可编程的分频器为NAND FLASH读写产生一个访问时钟周期;控制器的控制模块,将系统总线的请求转换成NAND FLASH设备的访问时序;数据缓存模块,为NAND FLASH读/写操作数据缓存;ECC控制模块,在其内部提供ECC算法,为ECC模块提供接口并为所述ECC模块发起控制信号;FLASH多路选择器,将寄存器控制文件模块、数据缓存模块和ECC控制模块连接至NAND FLASH。
6.根据权利要求5所述的NANDFLASH控制器,其特征在于,所述控制器的控制模块采用状态机的设计,所述状态机分为七个状态空闲状态、写命令状态、写地址状态、写数据状态、等待状态、Flash忙状态和读Flash状态。
7.根据权利要求5所述的NANDFLASH控制器,其特征在于,所述NANDFLASH设备的访问时序包括命令锁存周期、地址锁存周期、数据读/写周期、以及数据擦除周期中的至少一种。
8.根据权利要求5所述的NANDFLASH控制器,其特征在于,所述数据缓存模块上设有系统总线接口,接受系统总线的访问;所述数据缓存模块上还设有NAND FLASH控制器接口,接受NAND FLASH控制器的访问。
9.根据权利要求4所述的NANDFLASH控制器,其特征在于所述ECC模块内设有两个编解码算法通道,所述两个通道互不干扰。
10.根据权利要求4所述的NANDFLASH控制器,其特征在于所述ECC模块包括输入接口、输出接口、设置在所述输入接口和输出接口之间的编解码算法通道、以及控制所述输入接口和输出接口的控制逻辑;所述编解码算法通道包括第一通道和第二通道,第一通道和第二通道互不干扰。
全文摘要
本发明公开一种系统总线检错纠错方法,该方法为系统总线与ECC模块连接,ECC模块在系统总线控制下对系统总线中信号数据进行数据处理。包括下述步骤信号源数据进入系统总线;ECC模块得到系统总线上的信号源数据并对其进行编码和/或解码,将所得数据放到系统总线上。本发明公开一种NANDFLASH控制器,包括将系统总线操作请求转换成NAND FLASH时序要求的控制单元和对数据进行检错纠错的ECC模块,ECC模块还设有能与系统总线物理连接的接口。ECC模块包括输入接口、输出接口、设置在输入接口和输出接口之间的两个互不干扰的编解码算法通道、以及控制输入接口和输出接口的控制逻辑。
文档编号G11C29/42GK102568605SQ201110438659
公开日2012年7月11日 申请日期2011年12月23日 优先权日2011年12月23日
发明者王洋 申请人:青岛海信信芯科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1