本发明专利技术揭示了一种对Flash进行数据读取的流水线控制方式,包括:读取Flash数据;当发生数据错误时,标识数据错误位置。本发明专利技术还提出了相应的装置。本发明专利技术提出的一种对Flash进行数据读取的流水线控制方式和装置,通过将Flash数据读取与纠错过程分离,实现不间断Flash数据读取的同时进行纠错,提高了Flash数据读取速度。
【技术实现步骤摘要】
本专利技术涉及到,特别涉及到一种对Flash进行数据读取的流水线控制方式和装置。
技术介绍
在Flash数据读取过程中,由于信号串扰和Flash本身工艺的缺陷的影响,会产生一些数据错误,在实际应用中需要运用错误检查和纠正工具(Error Correcting Code, ECC)进行数据还原。传统的做法是,每次直接存储器访问(Direct Memory Access, DMA 传输)的同时进行ECC,目前业内普遍采用BCH算法实现ECC,该算法在读取Flash数据时的实现过程主要分成三步解码(Decode)、计算错误位置多项式(ELP)和找出错误位置 (Chien)。Decode过程是和DMA传输同时进行的,ELP和Chien过程则是在DMA传输完成之后进行。因此一旦本次DMA传输发生数据错误,就会暂停下次DMA传输,等待ELP和Chien 这两个过程将错误数据纠正完毕后,才可进行下次DMA传输,这种做法不能实现数据读取的连贯性,影响读取速度。
技术实现思路
本专利技术的主要目的为提供一种对Flash进行数据读取的流水线控制方式和装置, 通过将Flash数据读取与纠错过程分离,提高了 Flash数据读取速度。本专利技术提出一种对Flash进行数据读取的流水线控制方式,包括读取Flash数据,同时并行标识数据错误位置。优选地,在执行所述标识数据错误位置之后,包括根据数据错误位置对数据进行纠错。优选地,在执行所述读取Flash数据之后,包括对所述Flash数据进行解码。优选地,所述标识数据错误位置包括保存数据错误时的解码结果和当前的直接存储器访问DMA序号。优选地,所述根据数据错误位置对数据进行纠错包括读取所述解码结果和DMA序号;根据所述解码结果和DMA序号找到数据错误位置,并进行纠错。本专利技术还提出一种对Flash进行数据读取的流水线控制装置,包括读取模块,用于读取Flash数据,同时并行标识数据错误位置。优选地,所述对Flash进行数据读取的流水线控制装置还包括纠错模块,用于根据数据错误位置对数据进行纠错。优选地,所述读取模块具体用于对所述Flash数据进行解码。优选地,所述读取模块具体用于保存数据错误时的解码结果和当前的直接存储器访问DMA序号。优选地,所述纠错模块包括读取单元,用于读取所述解码结果和DMA序号;定位单元,用于根据所述解码结果和DMA序号找到数据错误位置,并进行纠错。本专利技术提出的一种对Flash进行数据读取的流水线控制方式和装置,通过将 Flash数据读取与纠错过程分离,实现不间断Flash数据读取的同时进行纠错,提高了 Flash数据读取速度。附图说明图1为本专利技术一种对Flash进行数据读取的流水线控制方式一实施例的流程示意图;图2为本专利技术一种对Flash进行数据读取的流水线控制方式一实施例中读取过程的流程示意图;图3为本专利技术一种对Flash进行数据读取的流水线控制方式又一实施例的流程示意图;图4为本专利技术一种对Flash进行数据读取的流水线控制方式又一实施例中纠错的流程示意图;图5为本专利技术一种对Flash进行数据读取的流水线控制装置一实施例的结构示意图;图6为本专利技术一种对Flash进行数据读取的流水线控制装置又一实施例的结构示意图;图7为本专利技术一种对Flash进行数据读取的流水线控制装置又一实施例中纠错模块的结构示意图。本专利技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。 具体实施例方式本专利技术提出的一种对Flash进行数据读取的流水线控制方式和装置,通过将 Flash数据读取与纠错过程分离,实现不间断Flash数据读取的同时进行纠错。参照图1,本专利技术一种对Flash进行数据读取的流水线控制方式一实施例,包括步骤S101,读取Flash数据,同时并行标识数据错误位置。本专利技术中读取Flash数据和标识数据错误位置相分离,即Flash数据读取不必考虑数据是否有错,直接把数据从Flash读取出来,并存储到Memory。由于Flash数据读取和标识数据错误位置是分离的,所以这一过程不会被打断,Flash IO总线上的数据是连续的。以DMA传输为例,标识数据错误位置的方式可以如下DMA传输的同时进行ECC的解码。本次DMA传输完毕之后,若发生数据错误则自动保存发生数据错误时的解码结果,并记录当前DMA序号。需要注意的是,标识数据错误位置的方式不仅仅限于上述方法,本领域技术人员可以考虑到的其它方法也适用于本专利技术。本专利技术提出的一种对Flash进行数据读取的流水线控制方式,通过将Flash数据读取与纠错过程分离,实现不间断Flash数据读取的同时进行纠错,提高了 Flash数据读取速度。参照图2,本专利技术一种对Flash进行数据读取的流水线控制方式一实施例中,步骤 SlOl可包括步骤S1011,对Flash数据进行解码。步骤S1012,保存数据错误时的解码结果和当前的直接存储器访问DMA序号。仍以DMA传输为例,当本次DMA传输发生数据错误时,自动保存发生数据错误时的解码结果,该解码结果为整个解码过程中的一中间结果,并将对应于当前DMA序号的一个标志寄存器置“1”以做标记。参照图3,提出本专利技术一种对Flash进行数据读取的流水线控制方式又一实施例, 在执行步骤SlOl之后,包括步骤S102,根据数据错误位置对数据进行纠错。参照图4,步骤S102可包括步骤S1021,读取解码结果和DMA序号;步骤S1022,根据解码结果和DMA序号找到数据错误位置,并进行纠错。ECC纠错从读取DMA序号的标志寄存器和对应的解码结果开始,顺序启动ELP和 Chien过程,找到数据错误位置并纠错。然后读取下一次发生数据错误的DMA的解码结果, 再次顺序启动ELP和Chien过程,找到数据错误位置并纠错。以上ECC纠错并不中断DMA传输,ECC纠错和DMA传输在时间轴上是有重叠区间的,实现了 DMA和ECC的流水线控制,DMA传输和ECC纠错相分离,使得二者在时间轴上有重叠的区间,提高了对时间利用效率,提升了 Flash读取操作的速度。本实施例在上一实施例基础上,提出了数据纠错方法,在上一实施例基础上,实现了 Flash数据读取与数据纠错的并行处理。参照图5,提出本专利技术一种对Flash进行数据读取的流水线控制装置一实施例,包括读取模块10,用于读取Flash数据,同时并行标识数据错误位置。本专利技术中Flash数据读取和标识数据错误位置相分离,即Flash数据读取不必考虑数据是否有错,读取模块10直接把数据从Flash读取出来,并存储到Memory。由于Flash 数据读取和标识数据错误位置是分离的,所以这一过程不会被打断,Flash IO总线上的数据是连续的。以DMA传输为例,读取模块10标识数据错误位置的方式可以如下DMA传输的同时进行ECC的解码。本次DMA传输完毕之后,若发生数据错误则自动保存发生数据错误时的解码结果,并记录当前DMA序号。需要注意的是,读取模块10标识数据错误位置的方式不仅仅限于上述方法,本领域技术人员可以考虑到的其它方法也适用于本专利技术。本专利技术提出的一种对Flash进行数据读取的流水线控制装置,通过将Flash数据读取与纠错过程分离,实现不间断Flash数据读取的同时进行纠错,提高了 F本文档来自技高网...
【技术保护点】
【技术特征摘要】
【专利技术属性】
技术研发人员:许智鑫,
申请(专利权)人:深圳市硅格半导体有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。