本发明属于数据处理,更具体地,涉及一种写传输事务完成的判断方法。
背景技术:
1、在片上系统(system on chip,soc)芯片内部,存在多个主机之间传递数据的普遍场景。现今的soc芯片性能越来越高,主机普遍具有outstanding的传输能力,即,主机不需要等到响应,就能持续发送写命令。因此,如何保证多主机之间数据传输的一致性,成为了一个亟待解决的问题。
2、例如一个典型的场景为:主机a发送大量数据到系统内部存储器c,主机a通知主机b读取这些数据,主机b从系统内部存储器c将这些数据读走。但是当主机b去存储器c读取数据的时候,主机a发送的数据可能还并未真正写入到存储器c,因此主机b有可能会读取到存储器c中的旧数据,进而导致读取错误。
技术实现思路
1、针对现有技术的以上缺陷或改进需求,本发明提供了一种写传输事务完成的判断方法,能够有效判断主机外发的写传输事务是否真正完成,保证soc芯片内部主机间传输数据的一致性,避免出错,且方案灵活,不仅适用于从机按序返回写数据响应的场景,还能适用于从机乱序返回写数据响应的场景。
2、为实现上述目的,按照本发明的一个方面,提供了一种写传输事务完成的判断方法,包括:
3、主机批量发出n个写数据请求;
4、记录主机发出的n个写数据请求;
5、从机收到n个独立的写数据请求,回复写数据响应;
6、记录从机发回的n个写数据响应;
7、根据记录的信息,向主机报告n个写数据请求全部完成。
8、在一些实施方式中,记录主机发出的n个写数据请求包括:使计数模块的计数值从0递增到n;记录从机发回的n个写数据响应包括:使计数模块的计数值从n递减到0;根据记录的信息,向主机报告n个写数据请求全部完成包括:在计数模块的计数值为0时,向主机报告n个写数据请求全部完成。
9、在一些实施方式中,该方法还包括:在计数模块的计数值为n时,关闭计数模块的计数功能,使得计数模块在监测到主机后续发出的写数据请求时,其计数值不再增加。
10、在一些实施方式中,该方法还包括:在计数模块的计数值为n时,开启缓存功能;将缓存功能开启后主机发出的写数据请求拦截并缓存。
11、在一些实施方式中,在获知n个写数据请求全部完成时,关闭缓存功能,将缓存的写数据请求发往从机。
12、在一些实施方式中,该方法还包括:在计数模块的计数值为n时,开启阻塞功能;将阻塞功能开启后主机发出的写数据请求拦截。
13、在一些实施方式中,在获知n个写数据请求全部完成时,关闭阻塞功能,将主机后续发出的写数据请求发往从机。
14、在一些实施方式中,记录主机发出的n个写数据请求包括:记录n个写数据请求对应的id号;记录从机发回的n个写数据响应包括:根据写数据响应对应的id号,将已记录的对应id号擦除;根据记录的信息,向主机报告n个写数据请求全部完成包括:在记录的id号被全部擦除时,向主机报告n个写数据请求全部完成。
15、在一些实施方式中,在记录的写数据请求达到n个时,不再记录主机发出的写数据请求对应的id号。
16、在一些实施方式中,写数据请求与其写数据响应对应相同的id号;或者,写数据请求与其写数据响应对应不同的id号,但写数据请求对应的id号与其写数据响应对应的id号满足预设的对应关系。
17、根据本发明的另一方面,提供了一种片上系统,包括:主机、判断装置、互联总线和从机;主机用于通过互联总线向从机发送写数据请求,从机用于在收到写数据请求并处理完成后,通过互联总线向主机发回写数据响应;判断装置用于:监测主机侧的写请求通道和写响应通道,记录主机发出的预设数量的写数据请求以及从机发回的预设数量的写数据响应,并根据记录的信息向主机报告预设数量的写数据请求全部完成。
18、在一些实施方式中,判断装置包括计数模块;计数模块用于:在监测到主机发出的一个写数据请求时,其计数值加1;以及在监测到从机发回的一个写数据响应时,其计数值减1;判断装置用于在所述计数模块的计数值为0时,向主机报告预设数量的写数据请求全部完成。
19、在一些实施方式中,主机还用于在计数模块的计数值达到预设数量时,关闭计数模块的计数功能;在计数模块的计数功能被关闭后,计数模块在监测到主机后续发出的写数据请求时,其计数值不再增加。
20、在一些实施方式中,判断装置还包括缓存模块;主机还用于在计数模块的计数值达到预设数量时,使能缓存模块的缓存功能;在缓存模块的缓存功能开启后,缓存模块用于将主机发出的写数据请求拦截并缓存。
21、在一些实施方式中,主机还用于在获知预设数量的写数据请求全部完成时,关闭缓存模块的缓存功能;在缓存模块的缓存功能关闭后,缓存模块用于将缓存的写数据请求经互联总线发往从机。
22、在一些实施方式中,判断装置还包括阻塞模块;主机还用于在计数模块的计数值达到预设数量时,使能阻塞模块的阻塞功能;在阻塞模块的阻塞功能开启后,阻塞模块用于将主机发出的写数据请求拦截。
23、在一些实施方式中,主机还用于在获知预设数量的写数据请求全部完成时,关闭阻塞模块的阻塞功能;在阻塞模块的阻塞功能关闭后,阻塞模块用于将主机发出的写数据请求经互联总线发往从机。
24、在一些实施方式中,判断装置包括记录模块;记录模块用于:在监测到主机发出的写数据请求时,记录写数据请求对应的id号;在监测到从机发回的写数据响应时,根据写数据响应对应的id号,将其记录的对应id号擦除;判断装置用于在记录模块中没有id号时,向主机报告预设数量的写数据请求全部完成。
25、在一些实施方式中,主机还用于在记录模块记录的写数据请求达到预设数量时,关闭记录模块的记录功能;在记录模块的记录功能被关闭后,记录模块不再记录主机发出的写数据请求对应的id号。
26、在一些实施方式中,写数据请求与其写数据响应对应相同的id号;或者,写数据请求与其写数据响应对应不同的id号,但写数据请求对应的id号与其写数据响应对应的id号满足预设的对应关系。
27、总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下有益效果:在主机和互联总线之间增加判断装置,利用判断装置监测主机侧的写请求通道和写响应通道,进而判断主机外发的写传输事务是否真正完成,能有效保证soc芯片内部主机间传输数据的一致性,避免出错;此外,通过调整判断装置的具体设计,不仅能适用于从机按序返回写数据响应的场景,还能适用于从机乱序返回写数据响应的场景。
1.一种写传输事务完成的判断方法,其特征在于,包括:
2.如权利要求1所述的写传输事务完成的判断方法,其特征在于,记录主机发出的n个写数据请求包括:使计数模块的计数值从0递增到n;记录从机发回的n个写数据响应包括:使计数模块的计数值从n递减到0;根据记录的信息,向主机报告n个写数据请求全部完成包括:在计数模块的计数值为0时,向主机报告n个写数据请求全部完成。
3.如权利要求2所述的写传输事务完成的判断方法,其特征在于,还包括:在计数模块的计数值为n时,关闭计数模块的计数功能,使得计数模块在监测到主机后续发出的写数据请求时,其计数值不再增加。
4.如权利要求2或3所述的写传输事务完成的判断方法,其特征在于,还包括:在计数模块的计数值为n时,开启缓存功能;将缓存功能开启后主机发出的写数据请求拦截并缓存。
5.如权利要求4所述的写传输事务完成的判断方法,其特征在于,在获知n个写数据请求全部完成时,关闭缓存功能,将缓存的写数据请求发往从机。
6.如权利要求2或3所述的写传输事务完成的判断方法,其特征在于,还包括:在计数模块的计数值为n时,开启阻塞功能;将阻塞功能开启后主机发出的写数据请求拦截。
7.如权利要求6所述的写传输事务完成的判断方法,其特征在于,在获知n个写数据请求全部完成时,关闭阻塞功能,将主机后续发出的写数据请求发往从机。
8.如权利要求1所述的写传输事务完成的判断方法,其特征在于,记录主机发出的n个写数据请求包括:记录n个写数据请求对应的id号;记录从机发回的n个写数据响应包括:根据写数据响应对应的id号,将已记录的对应id号擦除;根据记录的信息,向主机报告n个写数据请求全部完成包括:在记录的id号被全部擦除时,向主机报告n个写数据请求全部完成。
9.如权利要求8所述的写传输事务完成的判断方法,其特征在于,在记录的写数据请求达到n个时,不再记录主机发出的写数据请求对应的id号。
10.如权利要求8所述的写传输事务完成的判断方法,其特征在于,写数据请求与其写数据响应对应相同的id号;或者,写数据请求与其写数据响应对应不同的id号,但写数据请求对应的id号与其写数据响应对应的id号满足预设的对应关系。