闪存控制器以及闪存间数据传输方法

文档序号:6436645阅读:159来源:国知局
专利名称:闪存控制器以及闪存间数据传输方法
技术领域
本发明涉及数据存储技术,具体涉及对以闪存器件为存储介质的存储设备进行控制的闪存控制器,以及闪存器件间数据传输方法。
背景技术
现有在固态硬盘或便携终端中,多个闪存芯片通过以阵列的方式组织起来,与闪存控制器进行数据交换,以提高数据传输的效率。闪存阵列的组织方式如图1所示。闪存阵列被划分为了多个通道,并且各个通道与闪存控制器之间有独立的总线进行连接。这种阵列结构可以保证数据在单独通道与闪存控制器之间进行传输的同时,不会影响其他通道与闪存控制器之间的数据通讯。尽管多通道的闪存阵列可以提高闪存器件与闪存控制器之间的吞吐率,但是由于闪存器件中存在着编程扰动、读扰动、浮栅耦合效应等多种寄生物理效应的干扰。随着闪存器件编程次数的增加以及器件物理特性的衰退,这些寄生效应的影响会显著增加,导致闪存中错误的增加。因此闪存芯片在保存以及传输数据的过程中会不可避免地存在着数据错误的情况,这些错误会降低多通道闪存阵列的传输性能。当闪存控制器需要在不同的闪存器件中进行数据传输时,数据错误的累积甚至会导致闪存控制器无法从错误中将数据进行恢复。因此,闪存控制器在接收数据后,需要对数据进行纠错操作。若数据中存在错误,数据必须在经过纠错处理后才能由闪存控制器重新存储。在这一过程中,闪存控制器不仅需要对每一个数据进行缓存,而且还要占用额外的带宽资源对数据进行重新传输。在闪存阵列的数据传输过程中,由数据错误所引发的相关操作不仅增加了系统的资源开销,而且降低了整个闪存阵列与控制器之间的数据传输效率。因此,减少闪存阵列中纠错处理的开销已成为闪存器件在高速数据传输应用中所必须要解决的关键问题之一。通过检索现有的专利,没有发现解决该技术问题的专利申请。

发明内容
本发明要解决的主要技术问题是,提供一种闪存控制器以及一种闪存间数据传输方法,实现在直接的数据交换的过程中,隐藏数据错误检测处理操作;进一步通过在检测错误后在闪存控制器进行的纠错处理以降低因纠错处理对系统资源的开销。为解决上述技术问题,本发明提供一种闪存控制器,包括传输控制模块,其中的传输控制模块进一步包括控制单元、错误检测单元和接口单元;控制单元分别与所述错误检测单元和接口单元相连,用于生成针对闪存间传输数据的读写控制指令,读写控制指令包括数据直接传输控制指令和数据错误检测控制指令;接口单元,还通过数据总线与闪存阵列相连,用于提供数据传输接口,完成闪存控制器与闪存阵列之间的数据传输;错误检测单元,用于接收闪存间传输数据,并检测该数据是否发生错误。进一步的,数据直接传输控制指令用于控制闪存间数据从闪存阵列的源闪存向目的闪存进行传输;数据错误检测控制指令用于控制闪存间数据从闪存阵列的源闪存通过所述接口单元传输到错误检测单元。进一步的,错误检测单元还用于对检测发生错误的数据进行纠错处理;控制单元生成的读写控制指令还包括纠错数据控制指令。其中的纠错数据控制指令用于控制从所述错误检测单元将纠错处理后的数据通过接口单元传输到闪存阵列的目的闪存。进一步的,将纠错后的数据写入目的闪存的存储单元包括以下处理过程将纠错后的数据通过接口单元写入目的闪存的缓存单元进行数据更新,然后再将缓存的数据写入目的闪存的存储单元中。本发明还提供了一种闪存间数据传输方法,其特征在于,包括以下处理过程从闪存阵列源闪存中读出,通过数据总线,一路直接传输到闪存阵列的目的闪存, 另一路通过接口单元传输到错误检测单元;错误检测单元对接收到的数据进行错误检测;并且目的闪存将接收到的数据存入该闪存的缓存中;当所述错误检测的结果为数据没有错误,则将所述缓存的数据写入目的闪存的存储单元中。进一步的,当所述错误检测的结果为数据发生错误,对数据进行纠错处理后写入目的闪存的存储单元中。进一步的,所述纠错处理具体为所述错误检测单元对数据进行纠错处理,并将纠错后的数据通过接口单元写入目的闪存的存储单元中。本发明的有益效果是1.采用数据直接传输和错误检测处理相分离并行处理的机制,可以在数据从闪存阵列的源闪存到目的闪存的直接传输的过程中,通过错误检测单元进行快速检测,并对数据的正确性进行延后确认。本发明充分发掘了闪存控制器与闪存阵列之间的带宽,提高了数据的传输利用率。2.此外在错误检测单元中直接对发生错误的数据进行纠错处理,可以将纠错处理后的数据通过接口单元传输到闪存阵列的目的闪存覆盖错误数据。这种处理机制进一步将纠错处理也隐藏在数据传输的过程中,进一步提高闪存控制器在闪存阵列之间的数据传输性能。


图1为现有闪存存储结构的示意图;图2为基于本发明闪存控制器实施一的数据传输流向图;图3为基于本发明闪存控制器实施一的数据传输时序图;图4为基于本发明闪存控制器实施二的纠错数据流向图;图5为基于本发明闪存控制器实施二的纠错数据时序图;图6为本发明闪存间数据传输方法流程图。
具体实施例方式下面通过具体实施方式
结合附图对本发明作进一步详细说明。本发明的主要发明思路是对现有的闪存控制器进行改进。由于在闪存控制器中的传输控制模块的主要功能是负责完成闪存控制器和闪存阵列的之间的数据通讯。因此本发明在传输控制模块中设置控制单元、错误检测单元和接口单元。其中控制模块分别与错误检测单元以及接口单元相连,负责数据传输过程的指令控制和调度;具体为通过针对闪存间的传输数据生成读写控制指令,该读写控制指令包括控制数据在不同的闪存之间传输的控制指令和控制错误检测单元对数据进行错误检测指令。接口单元一端通过数据总线与闪存阵列相连,负责完成闪存控制器与闪存阵列之间的数据传输。错误检测单元负责对接收到的数据进行错误检测。实施例一为当没有发生数据错误时的数据传输过程。当数据需要从闪存阵列中的一个闪存即源闪存搬移到另外闪存阵列中的另一个闪存即目的闪存时,其数据传输流向如图2所示。在控制单元的操作下,数据从源闪存读出,通过数据总线,分别传输给目的闪存和闪存控制器。一方面,闪存控制器将接收的数据从接口单元传输到错误检测单元,进行错误检测;另一方面,传输给目的闪存的数据被写入目的闪存的缓存中。当错误检测单元确认传输的数据没有错误出现时,向控制单元发出确认信息,传输数据将由缓存写入到目的闪存的存储单元中,从而完成整个数据传输操作。本实施例中数据传输过程的闪存时序如图3所示。在控制单元的控制下,闪存控制器分别向源闪存和目的闪存发送读写命令,并传输读写地址。在源闪存和目的闪存准备就绪后,将源闪存中读取的数据直接发送到目的闪存,这样削减了闪存控制器在读取数据过程中重新进行存储转发所需要的额外时间开销。当数据完成交换以后,由于闪存控制器需要对传输的数据进行错误检测以避免数据交换的过程中产生错误累积,因此闪存控制器在数据传输结束后还采取了延迟确认的方式来保证传输数据的正确性。在数据总线上的数据传输完成以后,闪存控制器将启动错误检测单元,对数据进行错误检测。当传输的数据没有错误发生时,发送确认命令,将数据由目的闪存的缓存写入到其存储单元中,从而完成一次数据传输过程。实施例二为当发生数据错误时的纠错处理过程。当传输的数据出现错误时,闪存控制器需要进行相应的纠错处理,其数据的传输方式如图4所示。在错误检测单元发现错误以后,可以在错误检测单元中直接对数据进行纠错操作,并通过纠错操作恢复正确的数据。然后将正确的数据发送到接口单元中,并通过接口单元重新发送到目的闪存的缓存中,覆盖前次传输所保存的数据。进行纠错操作时的时序图如图5所示。在并行数据传输后,将进行纠错操作。在得到正确的数据后,将该正确数据直接发送到目的闪存的缓存中,从而对并行数据传输时发送的原始数据进行更新。在更新操作完成以后,将发送确认命令,从而将更新后的数据写入到目的闪存的存储单元中,完成数据传输操作。在实施例二中为错误检测单元进行纠错处理,本发明的错误纠错还可以有多种实现方式,例如通过其他功能单元或者设置新的功能单元进行纠错处理,只需要确保当发生数据错误时,及时进行纠错处理,并将纠错后的数据发送到目的闪存进行数据更新,并更新完成后,将缓存中的更新数据进一步写入目的闪存的存储单元中。如图6所示为本发明闪存间数据传输方法流程。在数据传输开始后,直接进行两路并行数据传输,并在数据传输完成以后对数据进行错误检测处理。之后将根据错误检测处理的结果选择是否进行数据更新操作。若错误处理没有发现错误,将确认数据传输;若发现错误,将对错误数据进行纠错处理后将正确的数据进行更新,并在更新完成以后,确认数据传输,使更新后的数据写入目的闪存的存储单元中,完成数据传输操作。综上所述,本发明所提出的闪存控制器可以在闪存间数据传输过程中,在保证数据传输正确性的同时,提高了总线的利用率。以上内容是结合具体的实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明;因此,对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
权利要求
1.一种闪存控制器,包括传输控制模块,其特征在于,所述传输控制模块包括控制单元、错误检测单元和接口单元;所述控制单元,分别与所述错误检测单元和接口单元相连,用于生成针对闪存间传输数据的读写控制指令,所述读写控制指令包括数据直接传输控制指令和数据错误检测控制指令;所述接口单元,还通过数据总线与闪存阵列相连,用于提供数据传输接口,完成所述闪存控制器与闪存阵列之间的数据传输;所述错误检测单元,用于接收闪存间传输数据,并检测该数据是否发生错误。
2.根据权利要求1所述的闪存控制器,其特征在于,所述数据直接传输控制指令用于控制闪存间数据从闪存阵列的源闪存向目的闪存进行传输;所述数据错误检测控制指令用于控制闪存间数据从闪存阵列的源闪存通过所述接口单元传输到所述错误检测单元。
3.根据权利要求1或2所述的闪存控制器,其特征在于,所述错误检测单元还用于对检测发生错误的数据进行纠错处理;所述控制单元生成的读写控制指令还包括纠错数据控制指令。
4.根据权利要求3所述的闪存控制器,其特征在于,所述纠错数据控制指令用于控制从所述错误检测单元将纠错处理后的数据通过所述接口单元传输到闪存阵列的目的闪存。
5.一种闪存间数据传输方法,其特征在于,包括以下处理过程从闪存阵列源闪存中读出,通过数据总线,一路直接传输到闪存阵列的目的闪存,另一路通过接口单元传输到错误检测单元;错误检测单元对接收到的数据进行错误检测;并且目的闪存将接收到的数据存入该闪存的缓存中;当所述错误检测的结果为数据没有错误,则将所述缓存的数据写入目的闪存的存储单元中。
6.根据权利要求5所述的数据传输方法,其特征在于,当所述错误检测的结果为数据发生错误,对数据进行纠错处理后写入目的闪存的存储单元中。
7.根据权利要求6所述的数据传输方法,其特征在于,所述纠错处理具体为所述错误检测单元对数据进行纠错处理,并将纠错后的数据通过接口单元写入目的闪存的存储单元中。
8.根据权利要求7所述的数据传输方法,其特征在于,所述将纠错后的数据写入目的闪存的存储单元包括以下处理过程将纠错后的数据通过所述接口单元写入目的闪存的缓存单元进行数据更新,然后再将所述缓存的数据写入目的闪存的存储单元中。
全文摘要
本发明公开了一种闪存控制器以及闪存间数据传输方法,通过将数据传输和错误检测处理相分离的方式实现并行处理,并采取了对传输到目的闪存的数据的正确性进行延后确认的机制。采用本发明,可以充分发掘闪存控制器与闪存阵列之间的带宽,提高了数据的传输效率。此外错误检测单元对发生错误的数据进行纠错处理,并将纠错后的正确数据更新覆盖闪存缓存中的错误数据。这种处理机制进一步将纠错处理也隐藏在数据传输的过程中,进一步提高闪存控制器在闪存阵列之间的数据传输性能。本发明适用于以闪存器件为存储介质各种存储设备的控制器中。
文档编号G06F11/07GK102411548SQ20111033202
公开日2012年4月11日 申请日期2011年10月27日 优先权日2011年10月27日
发明者邢冀鹏, 霍文捷 申请人:忆正存储技术(武汉)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1