一种多事件同步电路、方法以及计算芯片与流程

文档序号:25733177发布日期:2021-07-06 18:41阅读:68来源:国知局
一种多事件同步电路、方法以及计算芯片与流程

本发明实施例涉及电子电路技术领域,尤其涉及一种多事件同步电路、方法以及计算芯片。



背景技术:

随着人工智能计算能力的增强,不同数据处理模块之间的数据交互越来越频繁。经常存在多个相关事件混合进行的情况,各事件可能具有依赖关系,需要进行事件之间的同步。

现有技术中的事件同步通常采用软件同步方式,在每次事件同步中需要通过软件方式参与配置和控制。软件同步方式具有较高的复杂度,并且需要软件检测事件状态并进行参数配置,因此软件资源一直处于工作状态而无法释放软件资源以供其他任务使用。此外,软件同步效率低,且难以统一到通用接口被上层软件调用,难以并行处理高频率的多事件同步。



技术实现要素:

本发明提供一种多事件同步电路、方法以及计算芯片,以实现通过硬件方式进行事件同步,避免软件同步方式的弊端。

第一方面,本发明实施例提供了一种多事件同步电路,包括:信息发射模块和至少一个信息处理模块组,每个信息处理模块组与设定的同步方向关联;

信息处理模块组,用于在被当前同步任务触发执行时,在关联的同步方向下,收集与每个同步回合分别匹配的至少一个源同步对象的各事件同步信息,并将各事件同步信息发送至信息发射模块;

其中,所述当前同步任务包括至少一个同步方向,每个同步方向包括至少一个同步回合;

信息发射模块,用于将接收的各事件同步信息发送至与各同步方向下的每个同步回合分别匹配的至少一个目标同步对象。

第二方面,本发明实施例还提供了一种多事件同步方法,如本发明实施例提供的任一多事件同步电路执行,该方法包括:

获取当前同步任务包括的至少一个同步方向,以及与每个同步方向分别对应的至少一个同步回合;

在每个同步方向下,收集与每个同步回合分别匹配的至少一个源同步对象的各事件同步信息,并将各事件同步信息发送至与各同步方向下的各同步回合分别匹配的至少一个目标同步对象。

第三方面,本发明实施例还提供了一种计算芯片,多个数据处理模块,总控制模块以及如本发明实施例提供的任一多事件同步电路;

各所述数据处理模块、所述总控制模块以及所述多事件同步电路分别挂载在所述计算芯片的总线上,且各多个数据处理模块分别与多事件同步电路中的各同步信息接收计数模块一一对应关联;

所述总控制模块,用于向所述多事件同步电路发送当前同步任务,并接收所述多事件同步电路在完成当前同步任务后输出的同步结束标识;

所述多事件同步电路,用于根据当前同步任务,实现各所述数据处理模块中的源同步对象与各所述数据处理模块中的目标同步对象之间的多事件同步。

本发明通过配置具有信息发射模块和至少一个信息处理模块组的多事件同步电路,其中,每个信息处理模块组与设定的同步方向关联;通过信息处理模块组,在被当前同步任务触发执行时,在关联的同步方向下,收集与每个同步回合分别匹配的至少一个源同步对象的各事件同步信息,并将各事件同步信息发送至信息发射模块;其中,当前同步任务包括至少一个同步方向,每个同步方向包括至少一个同步回合;通过信息发射模块,将接收的各事件同步信息发送至与各同步方向下的每个同步回合分别匹配的至少一个目标同步对象,解决了多事件的同步问题,实现通过硬件方式进行事件同步,比软件同步方式更加灵活以及高效的效果。

附图说明

图1为本发明实施例一提供的一种多事件同步电路的结构示意图;

图2a为本发明实施例二提供的一种多事件同步电路的结构示意图;

图2b是本发明实施例二提供的一种多事件同步电路使用流程图;

图2c是本发明实施例二提供的一种多事件同步电路使用中的硬件连接示意图;

图2d是本发明实施例二提供的一种示例性多对多同步任务中第一个同步回合的硬件连接示意图;

图2e是本发明实施例二提供的一种示例性多对多同步任务中第二个同步回合的硬件连接示意图;

图2f是本发明实施例二提供的一种示例性1对多同步任务中一个同步回合的硬件连接示意图;

图2g是本发明实施例二提供的一种示例性多对1同步任务中一个同步回合的硬件连接示意图;

图3a是本发明实施例三提供的一种多事件同步方法的流程图;

图3b是本发明实施例三提供的又一种多事件同步方法的流程图;

图4是本发明实施例四提供的一种计算芯片的结构示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

实施例一

图1为本发明实施例一提供的一种多事件同步电路的结构示意图,本实施例可适用于芯片中存在多个芯片核,各芯片核之间需要进行数据同步的情况。如图1所示,该多事件同步电路100具体包括:信息发射模块110和至少一个信息处理模块组120。

其中,每个信息处理模块组与设定的同步方向关联。具体的,同步方向可以是源同步对象向目标同步对象进行同步信息的同步。源同步对象可以是生产者或者消费者。目标同步对象也可以是生产者或者消费者。生产者可以是生产数据的芯片核,例如,系统级芯片(systemonchip,soc)内部集成的ip核。消费者可以是使用数据的芯片核。为了实现数据在生产者和消费者之间的有效传递并消费使用,需要在生产者和消费者之间交互各自生成得到的同步信息,并进行使用。典型的,一个生产者在完成一项数据的生产后,可以生成并发送相应的同步信息到消费该数据的消费者处;一个消费者在完成一项数据的消费后,可以生成并发送相应的同步信息到生产该数据的生产者处。

示例性的,生产者可以是多事件同步电路的上游模块,可以向多事件同步电路发送同步信息,以使消费者进行同步信息的同步;此时,生产者为源同步对象,消费者为目标同步对象。消费者可以是多事件同步电路的下游模块,可以接收多事件同步电路发送的同步信息,并进行任务处理,待任务完成后可以向多事件同步电路反馈同步信息。生产者也可以通过多事件同步电路接收消费者反馈的同步信息,此时,消费者为源同步对象,生产者为目标同步对象。

具体的,同步方向可以是生产者向消费者进行同步信息的同步;或者,同步方向也可以是消费者向生产者进行同步信息的同步。信息处理模块组可以用于实现生产者向消费者进行同步信息的同步,或者,信息处理模块组可以用于实现消费者向生产者进行同步信息的同步。为了能够同时满足生产者向消费者进行同步信息的同步,以及消费者向生产者进行同步信息的同步,在多事件同步电路中,信息处理模块组可以至少设置两组。

在本发明实施例中,信息处理模块组,用于在被当前同步任务触发执行时,在关联的同步方向下,收集与每个同步回合分别匹配的至少一个源同步对象的各事件同步信息,并将各事件同步信息发送至信息发射模块。

可选的,当多事件同步器的相关参数都已配置完成,且接收到了源同步对象发出的第一笔同步信息,即代表当前同步任务被触发。

在本发明实施例中,当前同步任务包括至少一个同步方向。例如,当前同步任务可以包括生产者向消费者进行同步信息的同步,以及消费者向生产者进行同步信息的反馈;或者,当前任务可以仅包括生产者向消费者进行同步信息的同步;或者,当前任务可以仅包括消费者向生产者进行同步信息的反馈。

在本发明实施例中,每个同步方向包括至少一个同步回合。在一个同步回合中,可以包括至少一个源同步对象向至少一个目标同步对象进行同步信息的同步。在不同同步回合中,涉及的源同步对象可以不同,目标同步对象也可以不同。

示例性的,在生产者向消费者进行同步信息同步的同步方向中,可以包括两个同步回合。其中,第一同步回合可以是以生产者1和生产者2为源同步对象,以消费者2、消费者3以及消费者4为目标同步对象,进行同步消息的同步。第二同步回合可以是以生产者3、生产者4以及生产者5为源同步对象,以消费者1、消费者4、消费者5以及消费者6为目标同步对象,进行同步消息的同步。

具体的,收集与每个同步回合分别匹配的至少一个源同步对象的各事件同步信息,可以是集总当前同步回合中涉及的源同步对象的各事件同步信息。

在本发明实施例中,信息发射模块,用于将接收的各事件同步信息发送至与各同步方向下的每个同步回合分别匹配的至少一个目标同步对象。

其中,各事件同步信息可以预先配置需要发送的目标同步对象。例如,可以预先指定生产者1的同步信息需要发送至消费者1。信息发射模块可以按照预先配置的对应关系,将源同步对象的同步信息发送至对应的目标同步对象。

在本发明实施例的一个可选实施方式中,多事件同步电路还可以包括同步结束标识产生模块;同步结束标识产生模块,用于在检测到全部信息处理模块组均完成针对当前同步任务的同步处理操作时,生成同步结束标识,并发送至信息发射模块;信息发射模块,用于输出同步结束标识,以指示当前同步任务的结束处理。

具体的,信息处理模块组完成当前同步任务中各同步方向的同步处理操作时,可以向同步结束标识产生模块发送独立的同步结束标识。同步结束标识产生模块可以在接收到各同步方向的同步结束标识时,生成总的同步结束标识。

示例性的,当前同步任务存在两个同步方向,即与生产者向消费者进行同步信息同步的第一同步方向;以及与消费者向生产者进行同步信息同步的第二同步方向。与第一同步方向对应的信息处理模块组,在第一同步方向的同步处理操作完成时,可以产生第一同步结束标识;与第二同步方向对应的信息处理模块组,在第二同步方向的同步处理操作完成时,可以产生第二同步结束标识。同步结束标识产生模块可以根据第一同步结束标识和第二同步结束标识生成总的同步结束标识,发送至信息发射模块。信息发射模块可以将总的同步结束标识输出,以指示当前同步任务的结束处理。例如,信息发射模块可以将总的同步结束标识输出至总控制模块,可以使多事件的监控方及时知晓当前同步任务的执行状态。

本实施例的技术方案,通过配置具有信息发射模块和至少一个信息处理模块组的多事件同步电路,其中,每个信息处理模块组与设定的同步方向关联;通过信息处理模块组,在被当前同步任务触发执行时,在关联的同步方向下,收集与每个同步回合分别匹配的至少一个源同步对象的各事件同步信息,并将各事件同步信息发送至信息发射模块;其中,当前同步任务包括至少一个同步方向,每个同步方向包括至少一个同步回合;通过信息发射模块,将接收的各事件同步信息发送至与各同步方向下的每个同步回合分别匹配的至少一个目标同步对象,解决了多事件的同步问题,实现通过硬件方式进行事件同步,比软件同步方式更加灵活以及高效的效果。

实施例二

图2a为本发明实施例二提供的一种多事件同步电路的结构示意图,本实施例是对上述技术方案的进一步细化,本实施例中的技术方案可以与上述一个或者多个实施例中的各个可选方案结合。

如图2a所示,该多事件同步电路100包括:信息发射模块110和至少一个信息处理模块组120,每个信息处理模块组120与设定的同步方向关联;信息处理模块组120,用于在被当前同步任务触发执行时,在关联的同步方向下,收集与每个同步回合分别匹配的至少一个源同步对象的各事件同步信息,并将各事件同步信息发送至信息发射模块;其中,当前同步任务包括至少一个同步方向,每个同步方向包括至少一个同步回合;信息发射模块110,用于将接收的各事件同步信息发送至与各同步方向下的每个同步回合分别匹配的至少一个目标同步对象。

如图2a所示,在本发明实施例的一个可选实施方式中,多事件同步电路100,还包括:读写寄存器210;读写寄存器210,用于写入与当前同步任务匹配的同步配置信息,同步配置信息用于供信息处理模块组120进行读取,并触发执行匹配的同步处理操作。

其中,同步配置信息可以是预先设定好的。具体的,同步配置信息中可以包括:至少一个同步方向、与每个同步方向分别对应的同步回合数、与每个同步方向上的每个同步回合分别对应的源同步对象和目标同步对象,以及在每个同步回合下所需收集的每个源同步对象的事件同步信息的总数量值。

其中,在每个同步回合下,对于各源同步对象,需要发送至对应目标同步对象的同步信息数量可以是一个或者多个。通过在同步配置信息中设置每个同步回合下所需收集的各源同步对象的事件同步信息的总数量值,可以用于标识在各源同步对象是否在每个回合下完成对所需收集的同步信息的完整收集。

如图2a所示,在本发明实施例的一个可选实施方式中,多事件同步电路100,还包括:多个同步信息接收计数模块220;各同步信息接收计数模块220分别与各数据处理模块200一一对应关联,数据处理模块200用于在每个同步任务中作为源同步对象或者目标同步对象;即数据处理模块200可以是生产者或者消费者。

在本发明实施例中,同步信息接收计数模块220,用于在被当前同步任务触发执行时,从读写寄存器210中读取匹配的总数量值作为触发阈值;实时统计所关联的数据处理模块200向匹配的信息处理模块组120所发送的事件同步信息的信息数量,并在每个同步回合内检测到当前统计的信息数量大于等于触发阈值时,置起自身模块的触发信号。

其中,触发阈值可以是当前同步任务中与当前同步方向下的当前同步回合匹配的同步信息接收计数模块220需要接收的同步信息的总数量值。

示例性的,当前同步任务的同步方向为生产者向消费者进行同步信息的同步。当前同步方向下可以包括两个同步回合。

其中,每个待被使用的同步信息接收计数模块的触发阈值可以在初始化进行同步信息配置时静态设置为一个固定值。

每个同步信息接收计数模块在统计到的信息数量大于等于触发阈值时,可以置起自身模块的触发信号。在与当前同步方向下的当前同步回合匹配的全部同步信息接收计数模块都置起自身的触发信号后,可以指示信息处理模块组将同步信息发送至信息发射模块。

在本发明实施例的又一可选实施方式中,信息处理模块组可以提前接收数据处理模块发送的事件同步信息,便于提高同步处理操作的执行速度。同步信息接收计数模块可以对信息处理模块组接收到的同步信息进行计数,并且同步信息接收计数模块可以设置有触发阈值,便于在不同同步回合中根据同步信息接收计数模块的计数以及对应的触发阈值,进行同步任务触发。

示例性的,同步信息接收计数模块1的触发阈值为2,同步信息接收计数模块2的触发阈值为3。在一个同步回合中,生产者1需要向同步信息接收计数模块1发送两次同步信息,同步信息接收计数模块1置起触发信号;生产者2需要向同步信息接收计数模块2发送三次同步信息,同步信息接收计数模块2置起触发信号。生产者1与生产者2发送同步信息的顺序可以不限制。

在实际任务中,生产者1和生产者2发送同步信息的过程可以是:p1-1,p2-1,p2-2,p2-3,p2-4,p2-5,p1-2…,其中,px-y表示生产者x的第y次发送同步信息。在p1-2后,第一同步回合的各同步信息接收计数模块均置起,此时同步信息接收计数模块1的计数值为2(触发阈值为2),同步信息接收计数模块2的计数值为5(触发阈值为3),同步信息接收计数模块2当前已经接收了下一同步回合的同步消息。

在当前同步回合下检测到信息处理状态由等待接收状态转化至发送广播状态时,可以清除当前回合同步信息接收计数模块的计数值,即同步信息接收计数模块1中的计数值可以减去2,同步信息接收计数模块2中的计数值可以减去3,此时同步信息接收计数模块1的计数值为0,同步信息接收计数模块2的计数值为2。同步信息接收计数模块2存在残留值,可以在下一同步回合或者后续其他同步回合中继续使用。

在又一同步回合中,生产者1和生产者2发送同步信息的过程可以是:p1-1,p2-1,p2-2,p2-3,p2-4,p2-5,p2-6,p1-2…,那么当前同步回合结束后,同步信息接收计数模块2的计数值更新为3(计数值6减去触发阈值3),同样满足触发阈值,此时,同步信息接收计数模块2的触发信号可以一直保持置起,直到该同步信息接收计数模块2中计数的同步信息在其他同步回合中被直接使用。

如图2a所示,在本发明实施例的一个可选实施方式中,信息处理模块组120包括:同步信息收集模块121、同步回合数计数模块122以及发送关联信息提取模块123。

在本发明实施例中,同步信息收集模块,用于在关联同步方向的每个同步回合下,集总全部源同步对象发送的事件同步信息,并在检测到与每个同步回合匹配的各源同步对象所关联的同步信息接收计数模块的触发信号均被置起时,完成对每个同步回合的事件同步信息的收集。

其中,同步信息收集模块可以对源同步对象发送的同步信息进行集总。同步信息收集模块可以与关联同步方向的每个同步回合下的全部源同步对象对应。当某一个源同步对象对应的同步信息接收计数模块的触发信号被置起时,同步信息收集模块可以确定当前的源同步对象的同步信息被收集完毕;当同步回合下全部的源同步对象对应的同步信息接收计数模块的触发信号均被置起时,同步信息收集模块可以确定当前同步回合下的全部源同步对象的同步信息被收集完毕,进而,可以相应触发发送关联信息提取模块的执行。

示例性的,同步信息收集模块1的关联方向可以是生产者向消费者进行同步信息;同步信息收集模块2的关联方向可以是消费者向生产者进行同步信息。生产者向消费者进行同步信息的同步方向下可以具有至少一个同步回合。例如,第一个同步回合是生产者1、生产者2以及生产者3向消费者1进行同步信息的同步。在第一个同步回合,同步信息收集模块1可以集总生产者1、生产者2以及生产者3的同步信息。当生产者1、生产者2以及生产者3分别对应的同步信息接收计数模块的触发信号均被置起时,同步信息收集模块1可以确定生产者1、生产者2以及生产者3的同步信息被集总完毕。

在本发明实施例中,发送关联信息提取模块,用于在确定同步信息收集模块完成对每个同步回合的事件同步信息的收集时,提取出与每个同步回合分别对应的各目标同步对象的发送地址,并从同步信息收集模块中分别获取用于发送至每个发送地址的事件同步信息;将各发送地址,以及与发送地址对应的事件同步信息发送至信息发射模块。

其中,发送地址可以预先存储在读写寄存器中。发送关联信息提取模块可以在读写寄存器中读取同步配置信息,确定各个源同步对象的同步信息对应的发送地址。发送关联信息提取模块可以根据当前同步回合中的源同步对象从同步信息收集模块中获取对应的同步信息,并根据源同步对象与同步信息的对应关系以及源同步对象与发送地址的对应关系,确定同步信息与发送地址的对应关系。

示例性的,可以预先生成同步配置信息,指定源同步对象与目标同步对象的映射关系。例如,一种示例性的同步配置信息可以是:同步方向对应的同步回合中,源同步对象1向目标同步对象2和目标同步对象3进行同步信息同步;源同步对象2向目标同步对象1进行同步信息同步。源同步对象和目标同步对象可以是通过地址表示的。例如,目标同步对象可以是通过发送地址表示,具体的,发送地址可以是目标同步对象内的指定寄存器地址。

在本发明实施例中,信息发射模块,具体用于将接收的各事件同步信息发送至匹配的发送地址后,更新同步回合计数模块的计数值。同步回合计数模块,用于在关联同步方向上,统计已经完成的同步回合数。

其中,通过同步回合计数模块进行同步回合数的统计可以确定当前同步方向的同步任务处理进展情况,也可以根据同步回合计数模块的计数值,确定当前处理中的同步回合,进而可以根据当前的同步回合,确定出与当前同步回合对应的源同步对象以及目标同步对象。

在本发明实施例的一个可选实施方式中,同步配置信息中与每个同步方向上的每个同步回合分别对应的源同步对象和目标同步对象以同步选择信号查找表的方式存储。其中,同步选择信号查找表包括:与源同步对象对应的第一查找表以及与目标同步对象对应的第二查找表。

其中,同步选择信号查找表可以是一种预设的查找表。在第一查找表中可以指定每个同步回合中涉及的源同步对象。在第二查找表中可以指定每个同步回合中涉及的目标同步对象。

具体的,在本发明实施例中,第一查找表用于查询同步回合数与第一选择信号之间的对应关系,第一选择信号用于选中至少一个源同步对象;第二查找表用于查询同步回合数与第二选择信号之间的对应关系,第二选择信号用于选中至少一个目标同步对象。

如图2a所示,在本发明实施例中,信息处理模块组120还包括:选择信号产生模块124;选择信号产生模块124,用于在每个同步回合下,根据同步回合计数模块122中记录的已完成同步回合数,以及从读写寄存器210中读取到同步选择信号查找表,生成目标第一选择信号和目标第二选择信号分别发送至同步信息收集模块121和发送关联信息提取模块123。

其中,同步选择信号查找表可以预先设置好存储在读写寄存器中。根据同步回合计数模块中记录的已完成同步回合数,可以确定当前同步处理的同步回合数。根据当前的同步回合数,以及第一查找表中指定的同步回合数与第一选择信号的对应关系,可以确定第一选择信号。根据第一选择信号可以确定当前的同步回合所需的源同步对象。同样的,根据同步回合计数模块中记录的已完成同步回合数,以及第二查找表,可以确定第二选择信号以及目标同步对象。

具体的,信息处理模块组的目标第一选择信号和目标第二选择信号可以分别发送至同步信息收集模块和发送关联信息提取模块。同步信息收集模块可以根据目标第一选择信号确定当前的同步回合所需的源同步对象,并集总确定的全部源同步对象的同步信息。发送关联信息提取模块可以根据目标第二选择信号确定当前的同步回合所需的目标同步对象,并提取确定的全部目标同步对象的发送地址。

在本发明实施例的一个可选实施方式中,第一查找表和第二查找表中顺序存储有多个数据项,第一查找表的数据项中包括:序号、重复次数与第一选择信号三者之间的映射关系,第二查找表的数据项中包括:序号、重复次数与第二选择信号三者之间的映射关系。

其中,重复次数是指与序号对应的选择信号被连续重复使用的次数。重复次数为0时,表示当前的序号对应的选择信号不被使用。表1是本发明实施例一提供的一种同步选择信号查找表的示意表格。表1所示的同步选择信号查找表可以是第一查找表,也可以是第二查找表。其中,第一查找表与第二查找表的格式是相同的,区别仅在于选择信号的不同,以及具体数据的不同。

表1

在本发明实施例中,选择信号产生模块具体用于:按照同步选择信号查找表中的序号顺序,分别计算各重复次数的累加值,得到与各序号分别对应的同步回合数区间,并在确定已完成同步回合数落入与目标序号对应的同步回合数区间时,获取与目标序号对应的目标第一选择信号和目标第二选择信号,以及,如果确定同步选择信号查找表中全部重复次数的累加值小于已完成同步回合数,则返回至同步选择信号查找表的首个序号继续计算重复次数的累加值,直至确定出目标第一选择信号和目标第二选择信号。

示例性的,表2是本发明实施例二提供的一种同步回合数与同步回合数区间的映射表。如表2所示,序号0,1,2,3,…,n的重复次数可以依次表示为:time0,time1,time2,time3,…,timen。序号0,1,2,3,…,n构成的同步回合数区间可以依次为:[0,time0-1],[time0,time0+time1-1],[time0+time1,time0+time1+time2-1],…,[time0+time1+…+time(n-1),time0+time1+…+timen-1],其中,time(n-1)表示序号n-1对应的重复次数。

具体的,已完成同步回合数落入与目标序号对应的同步回合数区间,可以是指已完成同步回合数落的数值满足同步回合数区间对应的范围。如表2所示,可以根据已完成同步回合数确定目标第一选择信号和目标第二选择信号。

其中,如表2所示,如果已完成同步回合数超过time0+time1+…+timen-1,则再返回序号0继续累加。即当同步选择信号查找表中的所有序号对应的选择序号都被选过,并执行了对应的重复次数时,同步回合数还没有进行完毕时,可以重新从序号0开始重复选用对应的选择信号。

例如,已完成同步回合数在区间[time0+time1+…+timen,time0+time1+…+timen+time0-1]内时,可以选择序号0对应的目标第一选择信号或者目标第二选择信号。

示例性的,一种根据已完成同步回合数、序号、重复次数确定目标第一选择信号或者目标第二选择信号的方式可以具体参见表2。其中,index_max表示同步回合的总数。通过同步选择信号查找表确定源同步对象和目标同步对象的方式可以灵活决定同步任务中不同同步回合中需要进行同步的生产者或者消费者的数据以及具体的选择目标。

表2

如图2a所示,在本发明实施例的一个可选实施方式中,信息处理模块组120还包括:状态机控制模块125;同步信息收集模块121具体用于:在完成每个同步回合的事件同步信息的收集时,生成发送触发信号;状态机控制模块125,用于在接收到发送触发信号时,在所关联的同步方向上,将信息处理状态由等待接收状态转化至发送广播状态,以触发发送关联信息提取模块123的执行。

具体的,同步信息收集模块可以在当前同步回合中,对应的全部同步信息接收计数模块均置起,产生触发信号。状态机控制模块可以根据触发信号进行状态切换,以使发送关联信息提取模块进行发送地址以及同步信息的提取。通过状态机控制模块进行状态切换,可以提前对同步信息进行接收,后配置同步所需的同步配置信息。

例如,同步信息收集模块可以先接收与多事件电路相连的所有源同步对象的同步信息,同步回合数、每个同步回合分别对应的源同步对象和目标同步对象,以及在每个同步回合下所需收集的每个源同步对象的事件同步信息的总数量值等同步配置信息可以后配置。目标同步对象的发送地址的配置甚至可以更晚。通过同步信息收集模块、状态机控制模块以及发送关联信息提取模块的配合,可以在提高同步效率的同时,增加了配置的灵活性,便于对同步任务进行更好的控制。

在本发明实施例的一个可选实施方式中,同步信息接收计数模块还用于:如果在当前同步回合下检测到信息处理状态由等待接收状态转化至发送广播状态,且确定自身模块关联的数据处理模块已被当前同步回合下的目标第一选择信号选中,则将当前统计的信息数量减去与自身模块匹配的触发阈值。

其中,在本发明实施例中同步信息收集模块可以提前收集全部源同步对象的同步信息,即可以在未达到目标同步回合时,预先收集目标同步回合,甚至目标同步回合之后的同步回合所需的同步信息。

具体的,在当前同步回合下检测到信息处理状态由等待接收状态转化至发送广播状态时,表示当前同步回合下所需的同步信息已经收集完毕。确定自身模块关联的数据处理模块已被当前同步回合下的目标第一选择信号选中,表示该同步信息接收计数模块是当前同步回合下所使用的模块。将当前统计的信息数量减去与自身模块匹配的触发阈值,表示该同步信息接收计数模块在当前同步回合使用后,可以更新计数值,便于被下一同步回合使用。

当第一同步回合下检测到信息处理状态由等待接收状态转化至发送广播状态,且确定同步信息接收计数模块1已被第一个同步回合下的目标第一选择信号选中时,同步信息接收计数模块1可以将当前统计的信息数量减去同步信息接收计数模块1的触发阈值;而如果第一同步回合中未涉及同步信息接收模块2,同步信息接收模块2的当前统计的信息数量不改变,以供其他同步回合的使用。

例如,某一个同步回合下的源同步对象为生产者1,与生产者1对应的同步信息接收计数模块1的触发阈值为10。在该同步回合下,当检测到信息处理状态由等待接收状态转化至发送广播状态,如果同步信息接收计数模块1当前统计的信息数量为20,则同步信息接收计数模块1当前统计的信息数量会相应变为20-10=10,由于该数值也满足触发阈值10,则同步信息接收计数模块1自身模块的触发信号可以继续保持置起状态不变,直到该同步信息接收计数模块1中计数的同步信息在其他同步回合中被直接使用。如图2a所示,在本发明实施例的一个可选实施方式中,多事件同步电路,还包括:同步结束标识产生模块230;同步结束标识产生模块230,用于在检测到全部信息处理模块组均完成针对当前同步任务的同步处理操作时,生成同步结束标识,并发送至信息发射模块110;信息发射模块110,用于输出同步结束标识,以指示当前同步任务的结束处理。

本发明实施例的技术方案,通过配置具有信息发射模块和至少一个信息处理模块组的多事件同步电路,其中,每个信息处理模块组与设定的同步方向关联;通过信息处理模块组,在被当前同步任务触发执行时,在关联的同步方向下,收集与每个同步回合分别匹配的至少一个源同步对象的各事件同步信息,并将各事件同步信息发送至信息发射模块;其中,当前同步任务包括至少一个同步方向,每个同步方向包括至少一个同步回合;通过信息发射模块,将接收的各事件同步信息发送至与各同步方向下的每个同步回合分别匹配的至少一个目标同步对象,解决了多事件的同步问题,实现通过硬件方式进行事件同步,比软件同步方式更加灵活以及高效;可以支持多回合1对多、多对1和多对多的事件同步,可以在同步方向上解耦合使用,具有极大的灵活性;同步配置参数可以编程,可以支持不同同步回合的同步事件变化,满足多种工作场景的需求,大大增加了灵活性;并且,可以降低同步事件对软件或者固件的实时响应需求,可以实现同步事件按照预期响应,提高同步的效率;此外,还可以实现多同步回合的串行模式,实现不同同步事件之间的执行保序,可以平衡不同同步事件之间的执行步调。

本发明实施例的技术方案可以实现至少一个源同步对象与至少一个目标同步对象之间的多事件同步过程。源同步对象和目标同步对象的具体含义可以根据本发明实施例中所述的多事件同步电路的应用场景适应性的变化。为了便于理解,以生产者和消费者的场景为例,进行下述实施例的阐述。

示例性的,图2b是本发明实施例二提供的一种多事件同步电路使用流程图,如图2b所示,以当前同步任务中同时开启两个同步方向为例进行说明,一个同步方向是从生产者向消费者进行同步的方向,另一个同步方向是从消费者向生产者进行同步的方向。

如前所述,生产者为数据的生产端,消费者为数据的消费端。当两个同步方向均开启时,由于本发明实施例的场景为生产者与消费者之间的同步,因此,上述两个同步方向上的同步过程是存在一定的时序关系的,也即,首先由多事件同步电路中与生产者到消费者的同步方向对应的信息处理模块组,将从生产者处获取的同步信息发送至消费者后,再由多事件同步电路中与消费者到生产者的同步方向对应的信息处理模块组,将从消费者处获取的同步信息发送至生产者,以完成上述两个信息处理模块组各自对应的一个当前同步回合。即:图2b中具体包括上述两个信息处理模块组各自完成对应的当前同步回合时所执行的具体操作。

相应的,图2b所示的流程图中,先是执行生产者向消费者进行同步信息的同步,再是执行消费者向生产者进行匹配的同步信息的反馈。

如图2b所示,总控制模块可以预先配置同步配置信息并存储在读写寄存器中。首先,生产者首先生成同步信息。与生产者到消费者的同步方向对应的信息处理模块组中的各个模块会相应执行下述操作:

同步信息收集模块可以集总生产者的同步信息,同步信息接收计数模块可以实时统计所对应的生产者发送的同步信息的信息数量。当同步信息接收计数模块统计的信息数量大于等于从读写寄存器中获取的触发阈值时,同步信息接收计数模块可以将自身的触发信号置起。选择信号产生模块可以根据读写寄存器中的同步配置信息所包含的同步选择信号查找表,生成生产者向消费者同步方向的目标第一选择信号以及目标第二选择信号。同步信息收集模块可以根据目标第一选择信号确定选中的全部生产者以及对应的同步信息接收计数模块。当选中的全部同步信息接收计数模块都置起时,同步信息收集模块完成当前同步回合的同步信息收集,生成发送触发信号。状态机控制模块在接收到发送触发信号时,可以将信息处理状态由等待接收状态转化至发送广播状态。发送关联信息提取模块可以根据目标第二选择信号提取发送地址,以及与发送地址对应的事件同步信息,并发送至信息发射模块。信息发射模块将接收的各事件同步信息发送至匹配的发送地址对应的消费者,同步回合计数模块可以更新计数值。

相应的,消费者在获取到信息发射模块发送的同步信息之后,会根据接收的同步信息,执行相应的数据消费任务,并根据数据消费任务的执行情况,相应生成自身的同步信息,而与消费者到生产者者的同步方向对应的信息处理模块组中的各个模块会相应执行下述操作:

同步信息收集模块可以集总消费者的同步信息,同步信息接收计数模块可以实时统计所对应的消费者发送的同步信息的信息数量。当同步信息接收计数模块统计的信息数量大于等于从读写寄存器中获取的触发阈值时,同步信息接收计数模块可以将自身的触发信号置起。选择信号产生模块可以根据读写寄存器中的同步配置信息所包含的同步选择信号查找表,生成消费者向生产者同步方向的目标第一选择信号以及目标第二选择信号。同步信息收集模块可以根据目标第一选择信号确定选中的全部消费者以及对应的同步信息接收计数模块。当选中的全部同步信息接收计数模块都置起时,同步信息收集模块完成当前同步回合的同步信息收集,生成发送触发信号。状态机控制模块在接收到发送触发信号时,可以将信息处理状态由等待接收状态转化至发送广播状态。发送关联信息提取模块可以根据目标第二选择信号提取发送地址,以及与发送地址对应的事件同步信息,并发送至信息发射模块。信息发射模块将接收的各事件同步信息发送至匹配的发送地址对应的生产者,同步回合计数模块可以更新计数值。

此外,图中未示出的是:与每个同步方向分别对应的同步回合计数模块可以在完成当前同步回合后,进一步判断同步回合计数是否达到读写寄存器中的预设同步回合预设值。如果未达到预设同步回合预设值,则更新同步回合计数器计数值后,继续执行新的同步回合的同步过程,如果达到预设同步回合预设值,则确定在该同步方向上完成了全部同步回合的同步处理。相应的,如果同步结束标识产生模块确定全部同步方向上的同步回合计数器计数值均计数至同步回合预设值,则会相应置起同步结束标识,进而信息发射模块可以输出同步结束标识,以指示总控制模块当前同步任务的结束处理。

需要再次强调的是,在当前同步任务中,多事件同步电路是否使用两个同步方向是由总控制模块预先配置于读写寄存器中的。实际上,在当前同步任务被触发执行后,与两个同步方向分别对应的两个信息处理模块组也是各自并行工作的。上述具体实施例之在两个同步方向上具有时序关系,是由于源同步对象和目标同步对象分别为生产者和消费者这一外部因素间接决定的,从多事件同步电路硬件的角度上来说,各信息处理模块组之间为并行的执行关系。

需要说明的是,生产者向消费者同步,与消费者向生产者同步时,采用的同步选择信号查找表可以相同。具体的,同步选择信号查找表中可以存在一张用于确定生产者的查找表,以及一张用于确定消费者的查找表。

在具体使用过程中,生产者向消费者同步时,可以将同步选择信号查找表中用于确定生产者的查找表作为第一查找表;第一查找表用于确定生产者向消费者同步时对应的第一选择信号,具体地将生产者作为源同步对象。同时可以将同步选择信号查找表中用于确定消费者的查找表作为第二查找表;第二查找表用于确定生产者向消费者同步时对应的第二选择信号,具体地将消费者作为目标同步对象。

而消费者向生产者同步时,可以将同步选择信号查找表中用于确定消费者的查找表作为第一查找表;第一查找表确定消费者向生产者同步时对应的第一选择信号,具体地将消费者作为源同步对象。同时可以将同步选择信号查找表中用于确定生产者的查找表作为第二查找表;第二查找表用于确定消费者向生产者同步时对应的第二选择信号,具体地将生产者作为目标同步对象。

其中,生产者向消费者同步,与消费者向生产者同步,所使用的信息处理模块组可以不同。具体的,生产者向消费者同步,与消费者向生产者同步,所使用的同步信息收集模块、同步回合数计数模块、发送关联信息提取模块、状态机控制模块以及选择信号产生模块均可以不同。

图2c是本发明实施例二提供的一种多事件同步电路使用中的硬件连接示意图,如图2c所示,在本发明实施例中,可以根据生产者向消费者同步或者,消费者向生产者同步的目标第一信号,将需要进行同步信息同步的生产者以及消费者一一对应于同步信息接收计数模块。

例如,同步事件同时存在两个同步方向,根据生产者向消费者同步的目标第一信号,生产者1,生产者2,…生产者n被选中;根据消费者向生产者同步的目标第一信号,消费者1,消费者2,…消费者m被选中。生产者1,生产者2,…生产者n可以一一对应于同步信息接收计数模块1,同步信息接收计数模块2,…,同步信息接收计数模块n;消费者1,消费者2,…消费者m可以一一对应于同步信息接收计数模块n+1,同步信息接收计数模块n+2,…,同步信息接收计数模块n+m。

在本发明实施例中,不同的同步回合可以通过配置不同的目标第一选择信号,实现不同同步回合对不同源同步对象进行同步信息发送;不同的同步回合也可以通过够配置不同的目标第二选择信号,实现不同同步回合中不同目标同步对象接收同步信息。可以通过不同回合的先后,使各同步任务按照预配的先后顺序进行执行。

本发明实施例提供的多事件同步电路可以实现多对多、多对1以及1对多的同步任务。示例性的,图2d是本发明实施例二提供的一种示例性多对多同步任务中第一个同步回合的硬件连接示意图;图2e是本发明实施例二提供的一种示例性多对多同步任务中第二个同步回合的硬件连接示意图。

如图2d和图2e所示,本示例性实例中,存在5个生产者和6个消费者。生产者到消费者方向和消费者到生产者方向都开启,两个同步方向的同步回合总数均为2。

如图2d所示,在第一个同步回合,目标第一选择信号可以决定生产者1和生产者2被选中,同步信息接收计数模块1和同步信息接收计数模块2会分别根据接收到生产者1和生产者2发送的同步信息,进行统计计数。当同步信息接收计数模块1和同步信息接收计数模块2都已经触发置起后,信息发射模块会将目标第二选择信号选择的消费者2、消费者3和消费者4设定为目标同步对象,并发送同步信息。在消费者2、消费者3和消费者4各自操作完自己的任务后,可以分别发送同步信息到同步信息接收计数模块7、同步信息接收计数模块8和同步信息接收计数模块9。在三个同步信息接收计数模块都触发后,通过信息发射模块将第一目标选择信号选择的生产者1和生产者2设定为目标同步对象,并发送同步信息。至此,两个同步方向中第一个同步回合的2个生产者和3个消费者之间的同步任务完成。

如图2e所示,在第二个同步回合,与第一个同步回合类似,可以完成3个生产者和4个消费者之间的同步,这里不再赘述。由于该示例性的同步任务只定义了两个同步回合,因此在第二个同步回合结束后,整个同步任务结束,多事件同步电路可以发送同步任务结束的通知信息至总控制模块。

又一示例性的,图2f是本发明实施例二提供的一种示例性1对多同步任务中一个同步回合的硬件连接示意图。

如图2f所示,本发明实施例中的多事件同步电路可以配置为单方向广播的模式使用。在本示例性的实例中,只需要将一个生产者的同步信息发送至多事件同步电路。多事件同步电路可以根据预设的同步配置信息使多个消费者接收同步信息,完成1对多的单方向广播功能。具体的使用过程与上述多对多的过程类似,这里不再赘述。

再一示例性的,图2g是本发明实施例二提供的一种示例性多对1同步任务中一个同步回合的硬件连接示意图。

如图2g所示,本发明实施例中的多事件同步电路可以配置为多对1的单方向集中通知的模式使用。在本示例性的实例中,可以将多个生产者的同步信息发送至多事件同步电路。待所有选中的生产者对应的同步信息均满足触发条件时,多事件同步电路可以根据预设的同步配置信息使1个消费者接收同步信息,完成多对1的单方向同步功能。具体的使用过程与上述多对多的过程类似,这里不再赘述。

实施例三

图3a是本发明实施例三提供的一种多事件同步方法的流程图,本发明实施例可以适用于soc芯片中存在多个芯片核,各芯片核之间通过硬件方式进行同步信息的同步的情况,该方法可以由本发明任一实施例所提供的多事件同步电路执行。如图3a所示,该方法具体包括:

步骤310、获取当前同步任务包括的至少一个同步方向,以及与每个同步方向分别对应的至少一个同步回合。

其中,多事件同步电路中的信息处理模块组可以获取当前同步任务所包括的同步方向以及关联的同步回合。具体的,信息处理模块组所包含的同步回合数计数模块、同步信息收集模块、发送关联信息提取模块、选择信号产生模块以及状态机控制模块均可以获取当前同步任务所包括的同步方向以及关联的同步回合。多事件同步电路中的同步信息接收计数模块也可以获取当前同步任务所包括的同步方向以及关联的同步回合。

步骤320、在每个同步方向下,收集与每个同步回合分别匹配的至少一个源同步对象的各事件同步信息,并将各事件同步信息发送至与各同步方向下的各同步回合分别匹配的至少一个目标同步对象。

其中,多事件同步电路中的信息处理模块组可以收集源同步对象的各事件同步信息。具体的,信息处理模块组所包含的同步信息收集模块可以收集源同步对象的各事件同步信息。多事件同步电路中的信息处理模块组可以将各事件同步信息发送至多事件同步电路中的信息发射模块,信息发射模块可以将各事件同步信息发送至匹配的目标同步对象。具体的,信息处理模块组所包含的同步信息收集模块可以将各事件同步信息发送至多事件同步电路中的信息发射模块。

在本发明实施例的一个可选实施方式中,获取当前同步任务包括的至少一个同步方向,以及与每个同步方向分别对应的至少一个同步回合,包括:接收同步配置信息,并将同步配置信息写入至读写寄存器中。具体的,多事件同步电路中的读写寄存器可以接收用户配置的同步配置信息,并将同步配置信息进行写入存储。

其中,同步配置信息包括:至少一个同步方向、与每个同步方向分别对应的同步回合数、同步选择信号查找表,以及在每个同步回合下所需收集的每个源同步对象的事件同步信息的总数量值。

在本发明实施例中,同步选择信号查找表中包括:与源同步对象对应的第一查找表以及与目标同步对象对应的第二查找表;第一查找表中存储有同步回合数与第一选择信号之间的对应关系,第一选择信号用于指示与同步回合数匹配的各源同步对象;第二查找表中存储有同步回合数与第二选择信号之间的对应关系,第二选择信号用于指示与同步回合数匹配的各目标同步对象。

图3b是本发明实施例三提供的又一种多事件同步方法的流程图。如图3b所示,在本发明实施例的一个可选实施方式中,在每个同步方向下,收集与每个同步回合分别匹配的至少一个源同步对象的各事件同步信息,并将各事件同步信息发送至与各同步方向下的各同步回合分别匹配的至少一个目标同步对象,包括下述步骤:

步骤321、将每个同步方向分别作为当前同步方向,并针对每个当前同步方向并行执行下述循环操作:

步骤322、获取与当前同步方向匹配的当前同步回合数。

其中,多事件同步电路中的与每个同步方向分别对应的信息处理模块组可以在触发后,获取关联的当前同步回合数。具体的,信息处理模块组具体包括有同步回合数计数模块、同步信息收集模块、发送关联信息提取模块、选择信号产生模块以及状态机控制模块。

步骤323、通过与当前同步方向匹配的选择信号产生模块,生成与当前同步回合数匹配的目标第一选择信号和目标第二选择信号,分别发送至与当前同步方向匹配的同步信息收集模块以及发送关联信息提取模块。

其中,同步信息收集模块可以根据目标第一选择信号确定选中的源同步对象,以及与各源同步对象对应的同步信息接收计数模块。发送关联信息提取模块可以根据目标第二选择信号确定选中的目标同步对象,便于从读写寄存器中提取目标同步对象的发送地址。

步骤324、通过与当前同步方向匹配的同步信息收集模块,集总与当前同步方向上全部源同步对象发送的各事件同步信息,并在检测到与目标第一选择信号匹配的各同步信息接收计数模块的触发信号均被置起时,生成发送触发信号。

其中,同步信息接收计数模块可以首先读取读写寄存器中当前同步任务对应的源同步对象需要发送的同步信息的总数量值,并将总数量值作为触发阈值在各个同步回合中使用。同步信息接收计数模块可以实时统计所关联的源同步对象向匹配的信息处理模块组所发送的事件同步信息的信息数量,当检测到当前统计的信息数量大于或等于触发阈值时,同步信息接收计数模块可以置起触发信号。

步骤325、通过与当前同步方向匹配的状态机控制模块,根据发送触发信号,控制当前同步方向的信息处理状态由等待接收状态进入至发送广播状态。

其中,状态机控制模块可以在接收到发送触发信号时,进行状态切换,便于触发发送关联信息提取模块的执行。

步骤326、通过与当前同步方向匹配的发送信息提取模块,提取出与每个同步回合分别对应的各目标同步对象的发送地址,并从同步信息收集模块中分别获取用于发送至每个发送地址的事件同步信息;将各发送地址,以及与发送地址对应的事件同步信息发送至信息发射模块。

其中,发送信息提取模块可以根据第二目标信号确定选中的目标同步对象,并读取读写寄存器中存储的同步配置信息,确定目标同步对象的发送地址。

步骤327、通过发射模块将接收的各事件同步信息发送至匹配的发送地址后,更新与当前同步方向匹配的同步回合数计数模块的计数值。

步骤328、判断在当前同步方向上是否完成匹配的同步回合数的信息同步:若是,结束当前循环流程,并执行步骤329;否则,返回执行步骤322。

步骤329、在确定在全部同步方向上均完成上述循环操作时,输出同步结束标识。

在本实施例中,在多事件同步电路中的同步结束标识产生模块确定全部同步方向上均完成上述循环操作(换句话说,也就是全部信息处理模块组均完成针对当前同步任务的同步处理操作)时,生成同步结束标识,并发送至多事件同步电路中的信息发射模块,由信息发射模块发送至外部的总控制模块。可以使总控制模块获悉当前同步任务处理完毕。

其中,在本发明实施例中,多事件同步电路可以支持多对多、1对多以及多对1的同步模式;可以支持单向同步,也可以支持双向同步;可以支持单个同步回合,也可以支持多个同步回合。对于不同情况的同步,其具体的同步流程可以参见上述实施例中的示例性情况,这里不再赘述。

本发明实施例的技术方案,通过获取当前同步任务包括的至少一个同步方向,以及与每个同步方向分别对应的至少一个同步回合;在每个同步方向下,收集与每个同步回合分别匹配的至少一个源同步对象的各事件同步信息,并将各事件同步信息发送至与各同步方向下的各同步回合分别匹配的至少一个目标同步对象,解决了多事件的硬件方式同步问题,可以支持多回合1对多、多对1和多对多的事件同步,可以在同步方向上解耦合使用,具有极大的灵活性;同步配置参数可以编程,可以支持不同同步回合的同步事件变化,满足多种工作场景的需求,大大增加了灵活性;并且,可以降低同步事件对软件或者固件的实时响应需求,可以实现同步事件按照预期响应,提高同步的效率;此外,还可以实现多同步回合的串行模式,实现不同同步事件之间的执行保序,可以平衡不同同步事件之间的执行步调。

实施例四

图4是本发明实施例四提供的一种计算芯片的结构示意图,如图4所示,计算芯片400包括数据处理模块200,总控制模块410以及本发明任一实施例所提供的多事件同步电路100。其中:

各数据处理模块、总控制模块以及多事件同步电路分别挂载在计算芯片的总线上,且各多个数据处理模块分别与多事件同步电路中的各同步信息接收计数模块一一对应关联。

总控制模块,用于向多事件同步电路发送当前同步任务,并接收多事件同步电路在完成当前同步任务后输出的同步结束标识。

具体的,用户可以在总控制模块进行同步配置信息的设置,并通过总控制模块发送至多事件同步电路中的读写寄存器中。

多事件同步电路,用于根据当前同步任务,实现各数据处理模块中的源同步对象与各数据处理模块中的目标同步对象之间的多事件同步。

其中,通过多事件同步电路实现多事件同步可以参见上述实施例中记载的内容,这里不再赘述。

本发明实施例的技术方案,通过设置包含数据处理模块,总控制模块以及多事件同步电路的计算芯片,解决了计算芯片中的多事件同步任务问题,实现了通过硬件方式实现多事件的同步,比软件方式更高效灵活。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1