掌桥专利:专业的专利平台
掌桥专利
首页

一种写传输事务完成的判断方法

文献发布时间:2024-04-18 19:58:21


一种写传输事务完成的判断方法

技术领域

本发明属于数据处理技术领域,更具体地,涉及一种写传输事务完成的判断方法。

背景技术

在片上系统(System on Chip,SoC)芯片内部,存在多个主机之间传递数据的普遍场景。现今的SoC芯片性能越来越高,主机普遍具有Outstanding的传输能力,即,主机不需要等到响应,就能持续发送写命令。因此,如何保证多主机之间数据传输的一致性,成为了一个亟待解决的问题。

例如一个典型的场景为:主机A发送大量数据到系统内部存储器C,主机A通知主机B读取这些数据,主机B从系统内部存储器C将这些数据读走。但是当主机B去存储器C读取数据的时候,主机A发送的数据可能还并未真正写入到存储器C,因此主机B有可能会读取到存储器C中的旧数据,进而导致读取错误。

发明内容

针对现有技术的以上缺陷或改进需求,本发明提供了一种写传输事务完成的判断方法,能够有效判断主机外发的写传输事务是否真正完成,保证SoC芯片内部主机间传输数据的一致性,避免出错,且方案灵活,不仅适用于从机按序返回写数据响应的场景,还能适用于从机乱序返回写数据响应的场景。

为实现上述目的,按照本发明的一个方面,提供了一种写传输事务完成的判断方法,包括:

主机批量发出n个写数据请求;

记录主机发出的n个写数据请求;

从机收到n个独立的写数据请求,回复写数据响应;

记录从机发回的n个写数据响应;

根据记录的信息,向主机报告n个写数据请求全部完成。

在一些实施方式中,记录主机发出的n个写数据请求包括:使计数模块的计数值从0递增到n;记录从机发回的n个写数据响应包括:使计数模块的计数值从n递减到0;根据记录的信息,向主机报告n个写数据请求全部完成包括:在计数模块的计数值为0时,向主机报告n个写数据请求全部完成。

在一些实施方式中,该方法还包括:在计数模块的计数值为n时,关闭计数模块的计数功能,使得计数模块在监测到主机后续发出的写数据请求时,其计数值不再增加。

在一些实施方式中,该方法还包括:在计数模块的计数值为n时,开启缓存功能;将缓存功能开启后主机发出的写数据请求拦截并缓存。

在一些实施方式中,在获知n个写数据请求全部完成时,关闭缓存功能,将缓存的写数据请求发往从机。

在一些实施方式中,该方法还包括:在计数模块的计数值为n时,开启阻塞功能;将阻塞功能开启后主机发出的写数据请求拦截。

在一些实施方式中,在获知n个写数据请求全部完成时,关闭阻塞功能,将主机后续发出的写数据请求发往从机。

在一些实施方式中,记录主机发出的n个写数据请求包括:记录n个写数据请求对应的ID号;记录从机发回的n个写数据响应包括:根据写数据响应对应的ID号,将已记录的对应ID号擦除;根据记录的信息,向主机报告n个写数据请求全部完成包括:在记录的ID号被全部擦除时,向主机报告n个写数据请求全部完成。

在一些实施方式中,在记录的写数据请求达到n个时,不再记录主机发出的写数据请求对应的ID号。

在一些实施方式中,写数据请求与其写数据响应对应相同的ID号;或者,写数据请求与其写数据响应对应不同的ID号,但写数据请求对应的ID号与其写数据响应对应的ID号满足预设的对应关系。

根据本发明的另一方面,提供了一种片上系统,包括:主机、判断装置、互联总线和从机;主机用于通过互联总线向从机发送写数据请求,从机用于在收到写数据请求并处理完成后,通过互联总线向主机发回写数据响应;判断装置用于:监测主机侧的写请求通道和写响应通道,记录主机发出的预设数量的写数据请求以及从机发回的预设数量的写数据响应,并根据记录的信息向主机报告预设数量的写数据请求全部完成。

在一些实施方式中,判断装置包括计数模块;计数模块用于:在监测到主机发出的一个写数据请求时,其计数值加1;以及在监测到从机发回的一个写数据响应时,其计数值减1;判断装置用于在所述计数模块的计数值为0时,向主机报告预设数量的写数据请求全部完成。

在一些实施方式中,主机还用于在计数模块的计数值达到预设数量时,关闭计数模块的计数功能;在计数模块的计数功能被关闭后,计数模块在监测到主机后续发出的写数据请求时,其计数值不再增加。

在一些实施方式中,判断装置还包括缓存模块;主机还用于在计数模块的计数值达到预设数量时,使能缓存模块的缓存功能;在缓存模块的缓存功能开启后,缓存模块用于将主机发出的写数据请求拦截并缓存。

在一些实施方式中,主机还用于在获知预设数量的写数据请求全部完成时,关闭缓存模块的缓存功能;在缓存模块的缓存功能关闭后,缓存模块用于将缓存的写数据请求经互联总线发往从机。

在一些实施方式中,判断装置还包括阻塞模块;主机还用于在计数模块的计数值达到预设数量时,使能阻塞模块的阻塞功能;在阻塞模块的阻塞功能开启后,阻塞模块用于将主机发出的写数据请求拦截。

在一些实施方式中,主机还用于在获知预设数量的写数据请求全部完成时,关闭阻塞模块的阻塞功能;在阻塞模块的阻塞功能关闭后,阻塞模块用于将主机发出的写数据请求经互联总线发往从机。

在一些实施方式中,判断装置包括记录模块;记录模块用于:在监测到主机发出的写数据请求时,记录写数据请求对应的ID号;在监测到从机发回的写数据响应时,根据写数据响应对应的ID号,将其记录的对应ID号擦除;判断装置用于在记录模块中没有ID号时,向主机报告预设数量的写数据请求全部完成。

在一些实施方式中,主机还用于在记录模块记录的写数据请求达到预设数量时,关闭记录模块的记录功能;在记录模块的记录功能被关闭后,记录模块不再记录主机发出的写数据请求对应的ID号。

在一些实施方式中,写数据请求与其写数据响应对应相同的ID号;或者,写数据请求与其写数据响应对应不同的ID号,但写数据请求对应的ID号与其写数据响应对应的ID号满足预设的对应关系。

总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下有益效果:在主机和互联总线之间增加判断装置,利用判断装置监测主机侧的写请求通道和写响应通道,进而判断主机外发的写传输事务是否真正完成,能有效保证SoC芯片内部主机间传输数据的一致性,避免出错;此外,通过调整判断装置的具体设计,不仅能适用于从机按序返回写数据响应的场景,还能适用于从机乱序返回写数据响应的场景。

附图说明

图1是本发明一个实施例的片上系统的结构示意图;

图2是图1所示的片上系统中,写传输事务完成的判断方法流程图;

图3是本发明另一个实施例的片上系统的结构示意图;

图4是图3所示的片上系统中,写传输事务完成的判断方法流程图;

图5是本发明又一个实施例的片上系统的结构示意图;

图6是图5所示的片上系统中,写传输事务完成的判断方法流程图;

图7是本发明再一个实施例的片上系统的结构示意图;

图8是图7所示的片上系统中,写传输事务完成的判断方法流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。正如本领域技术人员可以认识到的那样,在不脱离本申请的精神或范围的情况下,可通过各种不同方式修改所描述的实施例。因此,附图和描述被认为本质上是示例性的而非限制性的。

片上系统可以在任意计算设备中集成,包括但不限于个人计算机、移动设备、便携式计算机、服务器、显卡、人工智能计算设备等。本发明实施例的片上系统包括:主机、判断装置、互联总线和从机;主机用于通过所述互联总线向从机发送写数据请求,从机用于在收到写数据请求并处理完成后,通过互联总线向主机发回写数据响应;判断装置设置在主机和互联总线之间,用于:监测主机侧的写请求通道和写响应通道,记录主机发出的预设数量的写数据请求以及从机发回的预设数量的写数据响应,并根据记录的信息向主机报告预设数量的写数据请求全部完成。

如图1所示,在本发明一个实施例中,片上系统包括主机、判断装置、互联总线和从机。主机通过互联总线向从机发送写数据请求,从机收到写数据请求并处理完成后,通过互联总线向主机发回写数据响应。主机具备outstanding能力,即,主机能连续发送多个写数据请求,而不需要等待前一个传输完成才开始下一个传输。

判断装置进一步包括缓存模块和计数模块。计数模块用于监测主机侧的写请求通道和写响应通道,具体地,当计数模块监测到一个有效的写数据请求时,其计数值加1;当计数模块监测到一个有效的写数据响应时,其计数值减1;当计数模块的计数值为0时,表示当前没有未完成的写数据请求。缓存模块用于在主机发出的写数据请求未超过预设的数量n时,将写数据请求经互联总线发往从机;在主机发出的写数据请求超过预设的数量n时,将超出n的写数据请求拦截并缓存;以及在前面n个写数据请求均已完成时,将缓存的写数据请求经互联总线发往从机。

主机能通过配置通道来配置缓存模块和计数模块的具体功能,包括使能或者关闭缓存模块的缓存功能,以及使能或者关闭计数模块的计数功能。

如图2所示,图1所示的片上系统中,写传输事务完成的判断方法包括:

步骤S201:主机通过写请求通道向从机批量发出n个独立的写数据请求,分别标记为写请求0、写请求1、…、写请求n-2、写请求n-1;

步骤S203:一方面,计数模块监测到写请求通道上发出的n个独立的写数据请求,其计数值从0递增到n;另一方面,缓存模块将这n个独立的写数据请求经互联总线发往从机;

步骤S205:在计数模块的计数值为n时,主机通过配置通道使能缓存模块的缓存功能以及关闭计数模块的计数功能;

具体地,缓存功能开启后,主机发出的写数据请求会被缓存模块拦截,缓存在缓存模块中,不再发往互联总线;计数功能关闭后,计数模块监测到写请求通道上发出的写数据请求,其计数值不再增加。

步骤S207:从机收到n个独立的写数据请求,向主机回复写数据响应。例如图1中,从机乱序返回写数据响应,分别标记为写响应n-1、写响应1、写响应n-2和写响应0;

步骤S209:计数模块监测到写响应通道上发回的n个独立的写数据响应,其计数值从n递减到0,表明使能缓存功能前的所有写传输事务均已完成;

步骤S211:在计数模块的计数值为0时,缓存模块通过监测通道,向主机报告缓存功能开启前发往从机的写数据请求均已完成;

步骤S213:主机通过配置通道关闭缓存模块的缓存功能,缓存模块将缓存的写数据请求经互联总线发往从机。

本实施例中,互联总线不具备对写数据响应重排序的能力,从机具备对写数据响应重排序的能力,从机可以乱序返回写数据响应,为了保证SoC芯片内部主机间传输数据的一致性,在主机和互联总线之间增加判断装置,利用判断装置中的计数模块来判断主机外发的写传输事务是否真正完成;此外,利用判断装置中的缓存模块拦截和缓存前一写传输事务完成之前主机再次发出的写数据请求,在前一写传输事务完成之后,再将缓存的写数据请求发往从机,避免出错。

如图3所示,本发明另一个实施例中,片上系统包括主机、判断装置、互联总线和从机。主机通过互联总线向从机发送写数据请求,从机收到写数据请求并处理完成后,通过互联总线向主机发回写数据响应。主机具备outstanding能力,即,主机能连续发送多个写数据请求,而不需要等待前一个传输完成才开始下一个传输。

判断装置进一步包括阻塞模块和计数模块。计数模块用于监测主机侧的写请求通道和写响应通道,具体地,当计数模块监测到一个有效的写数据请求时,其计数值加1;当计数模块监测到一个有效的写数据响应时,其计数值减1;当计数模块的计数值为0时,表示当前没有未完成的写数据请求。阻塞模块用于在主机发出的写数据请求未超过预设的数量n时,将写数据请求经互联总线发往从机;以及在主机发出的写数据请求超过预设的数量n时,将超出n的写数据请求拦截,不再发往互联总线。

主机能通过配置通道来配置阻塞模块和计数模块的具体功能,包括使能或者关闭阻塞模块的阻塞功能,以及使能或者关闭计数模块的计数功能。

如图4所示,图3所示的片上系统中,写传输事务完成的判断方法包括:

步骤S401:主机通过写请求通道向从机批量发出n个独立的写数据请求,分别标记为写请求0、写请求1、…、写请求n-2、写请求n-1;

步骤S403:一方面,计数模块监测到写请求通道上发出的n个独立的写数据请求,其计数值从0递增到n;另一方面,阻塞模块将这n个独立的写数据请求经互联总线发往从机;

步骤S405:在计数模块的计数值为n时,主机通过配置通道使能阻塞模块的阻塞功能以及关闭计数模块的计数功能;

具体地,阻塞功能开启后,主机发出的写数据请求会被阻塞模块拦截,不再发往互联总线;计数功能关闭后,计数模块监测到写请求通道上发出的写数据请求,其计数值不再增加。

步骤S407:从机收到n个独立的写数据请求,向主机回复写数据响应。例如图3中,从机乱序返回写数据响应,分别标记为写响应n-1、写响应1、写响应n-2和写响应0;

步骤S409:计数模块监测到写响应通道上发回的n个独立的写数据响应,其计数值从n递减到0,表明使能阻塞功能前的所有写传输事务均已完成;

步骤S411:在计数模块的计数值为0时,阻塞模块通过监测通道,向主机报告阻塞功能开启前发往从机的写数据请求均已完成;

步骤S413:主机通过配置通道关闭阻塞模块的阻塞功能,此后主机再次发出的写数据请求能够经阻塞模块发往互联总线。

本实施例中,互联总线不具备对写数据响应重排序的能力,从机具备对写数据响应重排序的能力,从机可以乱序返回写数据响应,为了保证SoC芯片内部主机间传输数据的一致性,在主机和互联总线之间增加判断装置,利用判断装置中的计数模块来判断主机外发的写传输事务是否真正完成;此外,利用判断装置中的阻塞模块拦截前一写传输事务完成之前主机再次发出的写数据请求,在前一写传输事务完成之后,再正常传输来自主机的写数据请求,避免出错。

如图5所示,本发明另一个实施例中,片上系统包括主机、判断装置、互联总线和从机。主机通过互联总线向从机发送写数据请求,从机收到写数据请求并处理完成后,通过互联总线向主机发回写数据响应。主机具备outstanding能力,即,主机能连续发送多个写数据请求,而不需要等待前一个传输完成才开始下一个传输。

判断装置包括记录模块。记录模块用于监测主机侧的写请求通道和写响应通道。具体地,当记录模块监测到有效的写数据请求时,将写数据请求对应的ID号记录在其内部的计分板逻辑中;当记录模块监测到有效的写数据响应时,根据写数据响应对应的ID号,将其内部的计分板逻辑中记录的对应ID号擦除;当记录模块内部的计分板逻辑中没有ID号时,表示当前没有未完成的写数据请求。主机能通过配置通道来配置记录模块的具体功能。

如图6所示,图5所示的片上系统中,写传输事务完成的判断方法包括:

步骤S601:主机通过写请求通道向从机批量发出n个独立的写数据请求,分别标记为写请求0、写请求1、…、写请求n-2、写请求n-1;

步骤S603:一方面,记录模块监测到写请求通道上发出的n个独立的写数据请求,将这n个独立的写数据请求对应的ID号记录在其内部的计分板逻辑中,例如,n个独立的写数据请求对应的ID号分别为0、1、…、n-1,记录模块将ID号0、1、…、n-1记录在其内部的计分板逻辑中;另一方面,这n个独立的写数据请求经互联总线被发往从机;

步骤S605:在n个独立的写数据请求对应的ID号均被记录在记录模块内部的计分板逻辑后,主机通过配置通道关闭记录模块的记录功能;

具体地,记录功能关闭后,主机发出的写数据请求会继续发往互联总线,但是这些写数据请求对应的ID号不会被记录在记录模块内部的计分板逻辑中;

步骤S607:从机收到n个独立的写数据请求,向主机回复写数据响应。例如图5中,从机乱序返回写数据响应,分别标记为写响应n-1、写响应1、写响应n-2和写响应0,其对应的ID号分别为n-1、1、n-2和0。

在一些实施方式中,写数据请求与其写数据响应对应相同的ID号。在一些实施方式中,写数据请求与其写数据响应对应不同的ID号,但写数据请求对应的ID号与其写数据响应对应的ID号满足预设的对应关系,本发明对此不做限制。

步骤S609:记录模块监测到写响应通道上发回的n个独立的写数据响应,根据写数据响应对应的ID号,将其内部的计分板逻辑中记录的对应的ID号擦除;当记录模块内部的计分板逻辑中记录的ID号被全部擦除时,表明记录模块的记录功能关闭前的所有写传输事务均已完成;

步骤S611:在记录模块内部的计分板逻辑中记录的ID号被全部擦除时,判断装置通过监测通道,向主机报告记录模块的记录功能关闭前发往从机的写数据请求均已完成;

步骤S613:主机通过配置通道使能记录模块的记录功能,此后主机再次发出的写数据请求对应的ID号能够被记录在记录模块内部的计分板逻辑中。

本实施例中,互联总线不具备对写数据响应重排序的能力,从机具备对写数据响应重排序的能力,从机可以乱序返回写数据响应,为了保证SoC芯片内部主机间传输数据的一致性,在主机和互联总线之间增加判断装置,利用判断装置内部的记录模块记录和擦除主机发出的写数据请求对应的ID号,判断主机外发的写传输事务是否真正完成,避免出错。

如图7所示,本发明另一个实施例中,片上系统包括主机、判断装置、互联总线和从机。主机通过互联总线向从机发送写数据请求,从机收到写数据请求并处理完成后,通过互联总线向主机发回写数据响应。主机具备outstanding能力,即,主机能连续发送多个写数据请求,而不需要等待前一个传输完成才开始下一个传输。

判断装置包括计数模块。计数模块用于监测主机侧的写请求通道和写响应通道。具体地,当计数模块监测到一个有效的写数据请求时,其计数值加1;当计数模块监测到一个有效的写数据响应时,其计数值减1;当计数模块的计数值为0时,表示当前没有未完成的写数据请求。主机能通过配置通道来配置计数模块的具体功能。

如图8所示,图7所示的片上系统中,写传输事务完成的判断方法包括:

步骤S801:主机通过写请求通道向从机批量发出n个独立的写数据请求,分别标记为写请求0、写请求1、…、写请求n-2、写请求n-1;

步骤S803:一方面,计数模块监测到写请求通道上发出的n个独立的写数据请求,其计数值从0递增到n;另一方面,这n个独立的写数据请求经互联总线被发往从机;

步骤S805:在计数模块的计数值为n时,主机通过配置通道关闭计数模块的计数功能;

具体地,计数功能关闭后,主机发出的写数据请求会继续发往互联总线,但计数模块的计数值不再增加。

步骤S807:从机收到n个独立的写数据请求,按序向主机回复写数据响应。例如图7中,从机按序返回写数据响应,分别标记为写响应0、写响应1、写响应n-2和写响应n-1。

步骤S809:计数模块监测到写响应通道上发回的n个独立的写数据响应,其计数值从n递减到0,表明关闭计数功能前的所有写传输事务均已完成;

步骤S811:在计数模块的计数值为0时,判断装置通过监测通道,向主机报告计数功能关闭前发往从机的写数据请求均已完成;

步骤S813:主机通过配置通道使能计数模块的计数功能,此后计数模块监测到写请求通道上发出的写数据请求,其计数值递增。

本实施例中,互联总线和从机均不具备对写数据响应重排序的能力,从机应按序返回写数据响应,为了保证SoC芯片内部主机间传输数据的一致性,在主机和互联总线之间增加判断装置,利用判断装置内部的计数模块判断主机外发的写传输事务是否真正完成,避免出错。

应当了解,上述所有实施例中,可以根据主机的实际读写需要,合理设置n的值,故本发明对此不做限制。

本发明通过在主机和互联总线之间增加判断装置,利用判断装置监测主机侧的写请求通道和写响应通道,进而判断主机外发的写传输事务是否真正完成,能有效保证SoC芯片内部主机间传输数据的一致性,避免出错;此外,通过调整判断装置的具体设计,不仅能适用于从机按序返回写数据响应的场景,还能适用于从机乱序返回写数据响应的场景。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包括于本申请的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或多个(两个或两个以上)用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分。并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能。

在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。

应理解的是,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。上述实施例方法的全部或部分步骤是可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。上述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读存储介质中。该存储介质可以是只读存储器,磁盘或光盘等。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到其各种变化或替换,这些都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

相关技术
  • 一种事务信息的传输方法、系统、装置、计算设备和介质
  • 一种工单事务处理方法及工单事务处理系统
  • 一种基于程序轴法律事务管理系统的事务提醒方法
  • 一种事务处理方法、管理服务器、事务处理系统和存储介质
  • 电机的预充电完成判断电路及电机的预充电完成判断方法
  • 促进事务重复中止之后的事务完成的方法和计算机系统
技术分类

06120116483565