本发明涉及存储领域,具体是一种用于生成nand校验数据的xore模块配置系统及方法。
背景技术:
1、由于nand存储器技术原理的限制,数据写入后会有一定概率出现错误,需要一种数据纠错机制保证出现少量错误时仍可恢复原有信息,而xore模块即实现了这样一种功能,它通过将多组写入nand的数据进行异或的方式生成校验信息,并也将其写入nand,当某一组数据出现错误时,可通过将校验信息与其他数据进行异或的方式将错误内容恢复。
2、为实现上述流程,需要负责数据写入的nand控制器模块和负责校验信息生成的xore模块配合工作,而由于一个芯片中可能集成多个nand控制器和xore,同时受生产成本限制并综合考虑实际需求,xore模块的数量需求往往少于nand控制器,因此需要一种灵活高效的方式实现两者配对,完成校验信息的生成,并将其与被保护数据一起写入nand存储器。
技术实现思路
1、本发明要解决的技术问题是提供一种用于生成nand校验数据的xore模块配置系统及方法,将xore模块与nand控制器灵活连接及配置,在xore数量有限的前提下,尽可能高效的实现校验信息的生成以及nand数据的写入。
2、为了解决所述技术问题,本发明采用的技术方案是:一种用于生成nand校验数据的xore模块配置系统,包括n个nand控制器、m个xore模块以及连接于括n个nand控制器与m个xore模块之间的仲裁模块,n、m均为正整数,并且n≥2m;每个nand控制器和xore模块均分配一组id号码,并且所有nand控制器和xore模块都连接至仲裁模块,系统工作时,通过id号码绑定nand控制器和xore模块,使得nand控制器的数据通过仲裁模块发送至对应id号码的xore模块来生成校验数据;每个xore模块设置了两组相同的配置接口来接收nand控制器发送的配置信息,当xore通过接口1被启动时,接口2接收并缓存下一轮操作所需配置信息,本轮计算结束后,则立即开启下一轮工作。
3、进一步的,本系统只实现指定id号码的nand控制器与xore模块之间的数据传输;即:nand控制器确定当前与其配合的xore模块及该模块的配置接口后,nand控制器向仲裁模块发送数据时,将xore模块的id号及接口号写入数据流的指定位置,使数据发送至指定id号码的xore模块的指定接口;xore模块确定与其配合的nand控制器id号码后,来自其他nand控制器的数据均不予处理;xore模块确定空闲接口状态,当此接口被配置后,确定与其配合的nand控制器id号码并停止接收新的配置信息,通过此接口进行下一轮操作时,来自其他nand控制器的数据均不予处理。
4、进一步的,本系统实现不同长度校验数据的生成功能,即:nand控制器确定校验数据的长度以及需要生成校验数据的数据流总长度后,nand控制器检查数据流,当发现足够多的数据发送至xore模块后,停止发送数据,之后从xore模块取出生成好的校验数据并写入nand存储器;xore模块确定校验数据的长度以及需要生成校验数据的数据流总长度后,以校验数据的长度为一组,与下一组数据进行异或,直至接收的数据长度达到需要生成校验数据的数据流总长度,停止接收数据,并将生成好的校验数据存放在指定位置,待nand控制器取走后再进行下一轮数据生成。
5、进一步的,本系统通过两组相同的配置接口实现无缝开启下一轮工作,即:当前数据发送完成后,nand控制器确定是否与新的xore模块空闲接口提前完成配对,如已配对,则当前一轮操作结束后立即开启新一轮操作,并将新xore模块的id号及接口号写入数据流的指定位置;处理完一轮数据后,xore模块检查是否有新的配置信息被提前加载在空闲接口,如有则立刻开始进行新一轮操作。
6、本发明还公开了一种用于生成nand校验数据的xore模块配置方法,包括以下步骤:
7、s01)、某一nand控制器通过总线从ddr存储器中获取需要写入的数据,并通过phy接口将数据发送至nand存储器;
8、s02)、nand控制器查询自身的软件配置信息,确认与其配合的xore模块id号及接口号,之后将上述数据附上id号和接口号后发送至仲裁模块;
9、s03)、仲裁模块根据id号和接口号将数据转发至对应xore模块的对应接口;
10、s04)、xore模块确认数据来自指定的nand控制器后,开始按照指定长度进行异或操作;
11、s05)、当nand控制器发送的数据流长度达到软件配置的总长度后,到xore id对应的指定位置取出校验数据,并将其写入nand控制器;
12、s06)、至此一组校验数据的生成流程结束,如果此时nand控制器发现有提前被配置好的新xore模块id号及接口号,立刻按照步骤s01)启动下一轮操作。
13、进一步的,步骤s01)至步骤s06)执行过程中,实时监控nand控制器及xore模块状态,实时更新nand控制器及xore模块的配置信息,确保nand控制器发送数据时,对应的xore模块已提前完成配置并且计算单元处于空闲状态,否则暂停nand控制器启动新一轮数据发送流程,直至xore模块的计算单元回到空闲状态。
14、进一步的,nand控制器与xore模块接口的匹配方式为:假设m个xor模块分别编号为1至m,且每个xore模块有2个接口分别编号为1和2,则xore模块接口被使用的顺序为1-1、2-1、…、m-1、1-2、2-2、…、m-2。
15、本发明的有益效果:本发明提供了一种在成本限制下改善性能的方法,由于其最大程度的提升了xore计算单元的利用率,使其能够以较少的xore模块数量达到与以往相同的性能,明显减少了芯片面积,降低了流片成本,并由于软件的实时监控,模块间的配对具有了相当的灵活性,可应付多类不同场景。相较传统方法中每个nand控制器固定配置一个xore的设计方案具有明显优势。
1.一种用于生成nand校验数据的xore模块配置系统,其特征在于:包括n个nand控制器、m个xore模块以及连接于括n个nand控制器与m个xore模块之间的仲裁模块,n、m均为正整数,并且n≥2m;每个nand控制器和xore模块均分配一组id号码,并且所有nand控制器和xore模块都连接至仲裁模块,系统工作时,通过id号码绑定nand控制器和xore模块,使得nand控制器的数据通过仲裁模块发送至对应id号码的xore模块来生成校验数据;每个xore模块设置了两组相同的配置接口来接收nand控制器发送的配置信息,当xore通过接口1被启动时,接口2接收并缓存下一轮操作所需配置信息,本轮计算结束后,则立即开启下一轮工作。
2.根据权利要求1所述的用于生成nand校验数据的xore模块配置系统,其特征在于:本系统只实现指定id号码的nand控制器与xore模块之间的数据传输;即:nand控制器确定当前与其配合的xore模块及该模块的配置接口后,nand控制器向仲裁模块发送数据时,将xore模块的id号及接口号写入数据流的指定位置,使数据发送至指定id号码的xore模块的指定接口;xore模块确定与其配合的nand控制器id号码后,来自其他nand控制器的数据均不予处理;xore模块确定空闲接口状态,当此接口被配置后,确定与其配合的nand控制器id号码并停止接收新的配置信息,通过此接口进行下一轮操作时,来自其他nand控制器的数据均不予处理。
3.根据权利要求1所述的用于生成nand校验数据的xore模块配置系统,其特征在于:本系统具备实现不同长度校验数据的生成功能,即:nand控制器确定校验数据的长度以及需要生成校验数据的数据流总长度后,nand控制器检查数据流,当发现足够多的数据发送至xore模块后,停止发送数据,之后从xore模块取出生成好的校验数据并写入nand存储器;xore模块确定校验数据的长度以及需要生成校验数据的数据流总长度后,以校验数据的长度为一组,与下一组数据进行异或,直至接收的数据长度达到需要生成校验数据的数据流总长度,停止接收数据,并将生成好的校验数据存放在指定位置,待nand控制器取走后再进行下一轮数据生成。
4.根据权利要求1所述的用于生成nand校验数据的xore模块配置系统,其特征在于:本系统通过两组相同的配置接口实现无缝开启下一轮工作,即:当前数据发送完成后,nand控制器确定是否与新的xore模块空闲接口提前完成配对,如已配对,则当前一轮操作结束后立即开启新一轮操作,并将新xore模块的id号及接口号写入数据流的指定位置;处理完一轮数据后,xore模块检查是否有新的配置信息被提前加载在空闲接口,如有则立刻开始进行新一轮操作。
5.一种用于生成nand校验数据的xore模块配置方法,其特征在于:包括以下步骤:
6.根据权利要求5所述的用于生成nand校验数据的xore模块配置方法,其特征在于:步骤s01)至步骤s06)执行过程中,实时监控nand控制器及xore模块状态,实时更新nand控制器及xore模块的配置信息,确保nand控制器发送数据时,对应的xore模块已提前完成配置并且计算单元处于空闲状态,否则暂停nand控制器启动新一轮数据发送流程,直至xore模块的计算单元回到空闲状态。
7.根据权利要求5所述的用于生成nand校验数据的xore模块配置方法,其特征在于:nand控制器与xore模块接口的匹配方式为:假设m个xor模块分别编号为1至m,且每个xore模块有2个接口分别编号为1和2,则xore模块接口被使用的顺序为1-1、2-1、…、m-1、1-2、2-2、…、m-2。