一种基于Poll指令的进程同步方法、系统、设备及介质
申请人信息
- 申请人:沐曦集成电路(南京)有限公司
- 申请人地址:211800 江苏省南京市浦口区浦口经济开发区双峰路69号A-14
- 发明人: 沐曦集成电路(南京)有限公司
专利详细信息
| 项目 | 内容 |
|---|---|
| 专利名称 | 一种基于Poll指令的进程同步方法、系统、设备及介质 |
| 专利类型 | 发明授权 |
| 申请号 | CN202311713764.0 |
| 申请日 | 2023/12/14 |
| 公告号 | CN117407182B |
| 公开日 | 2024/3/12 |
| IPC主分类号 | G06F9/52 |
| 权利人 | 沐曦集成电路(南京)有限公司 |
| 发明人 | 钱龙; 张博文; 孔超 |
| 地址 | 江苏省南京市浦口区浦口经济开发区双峰路69号A-14 |
摘要文本
本发明提供一种基于Poll指令的进程同步方法、系统、设备及介质,属于数据处理领域,方法包括:将Poll指令写入第一处理器的指令缓存区中,并发送至Poll状态控制模块进行解析,根据解析得到Poll指令信息向存储单元读取变量数据,将读取的第一变量值与Poll指令携带的参考变量值进行比较,判断二者是否符合Poll指令同步条件,是则判断Poll指令是否包含flush标识,若是则Poll指令携带的参考变量值写入存储单元,否则将正常完成状态返回至第二处理器,第二处理器基于收到的完成状态信息,选择继续写入Poll指令或者停止写入Poll指令。本发明通过多线程/多进程执行Poll指令的并行操作,可以在不对不同进程做依赖的情况下,实现多个进程之间互不阻塞的对同一变量的并行同步操作。
专利主权项内容
1.一种基于Poll指令的进程同步方法,其特征在于,所述方法包括以下步骤:S101,将Poll指令写入第一处理器的指令缓存区中,所述Poll指令由第二处理器预先构造,S102,响应于指令缓存区非空,将指令缓存区中的Poll指令发送至Poll状态控制模块,S103,Poll状态控制模块解析Poll指令,并根据解析得到Poll指令信息向存储单元读取变量数据,S104,将读取的第一变量值与Poll指令携带的参考变量值进行比较,判断二者是否符合Poll指令同步条件,若是则进入步骤S105,若否则进入步骤S106,S105,判断Poll指令中是否包含flush标识,若是进入步骤S1051,若否进入步骤S1052,S1051,将Poll指令携带的参考变量值写入所述存储单元,进入步骤S1052,S1052,将正常完成状态返回至所述第二处理器,进入步骤S107,S106,等待retry间隔时间后,重新向存储单元读取变量数据,直至retry次数达到预设值或读取的数据满足同步条件,若直至retry次数达到预设值读取的数据仍不满足同步条件,则进入S1061,若重新读取数据满足同步条件则进入步骤S105,S1061,将异常完成状态返回至所述第二处理器,进入步骤S107,S107,所述第二处理器基于收到的完成状态信息,选择继续写入Poll指令或者停止写入Poll指令,所述第一处理器为异构加速芯片,所述第二处理器为CPU,所述Poll指令信息至少包括参考变量值、flush标识、Poll地址、retry次数预设值、Poll存储类型、Poll同步条件、retry间隔时间,其中Poll地址表示从存储单元读取变量数据的地址或者是flush写入存储单元的地址,地址范围为存储器或者寄存器的空间,Poll存储类型分为存储器或寄存器,Poll同步条件包括,变量值相等、读取变量值小于或者等于参考变量值、读取变量值等于参考变量值、读取变量值不等于参考变量值、读取变量值大于或等于参考变量值、读取变量值大于参考变量值,所述指令缓存区为FIFO结构,所述存储单元为寄存器或存储器。