[发明专利]一种数据流架构中循环程序执行的方法及系统有效
申请号: | 202110267893.6 | 申请日: | 2021-03-12 |
公开(公告)号: | CN113032011B | 公开(公告)日: | 2023-06-27 |
发明(设计)人: | 李文明;叶笑春 | 申请(专利权)人: | 北京睿芯数据流科技有限公司 |
主分类号: | G06F9/30 | 分类号: | G06F9/30 |
代理公司: | 北京科龙寰宇知识产权代理有限责任公司 11139 | 代理人: | 孙皓晨 |
地址: | 101399 北京市顺义区澜西*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据流 架构 循环 程序 执行 方法 系统 | ||
1.一种数据流架构中循环程序执行的方法,其特征在于,包括以下步骤:
步骤1:判断循环程序所在的数据流结构:
如果是细粒度数据流结构,则按照实例方式执行;
如果是粗粒度数据流结构,则跳转到步骤2;
步骤2:判断循环程序在粗粒度数据流结构中的构成方式,
如果循环程序由同一个Fiber内的多条指令组成,则跳转到步骤3;
如果循环程序由几个完整的Fiber组成,且每个Fiber均为一段按顺序执行的指令,则按照实例方式执行;
如果循环程序由分布在不同Fiber内的几段指令组成,且至少有一个Fiber中有部分指令不属于对应循环程序,则按照预测转发机制执行;
步骤3:将这个Fiber内的属于循环程序的指令作为子任务重新划分子Fiber,然后按照实例方式执行,同时,返回对应循环程序的起始地址与终止地址参数;
其中,所述实例方式为寄存器计数的方式,所述预测转发机制为通过转移历史表进行预测并由路由器转发的方式。
2.根据权利要求1所述的方法,其特征在于,所述实例方式的具体执行过程为:
将每个循环程序的数据流子图作为一个子任务,每个子任务对应一个寄存器,并在寄存器中保存对应子任务中数据流动循环的次数;
在任一循环程序中,每执行一次数据流动循环,对应寄存器中次数减1,直到对应寄存器中的次数值减为0,数据流出对应子任务,所述循环程序执行完成。
3.根据权利要求1所述的方法,其特征在于,所述预测转发机制的具体过程为:
在执行循环程序的任一条指令时,通过转移历史表预测下一条指令是否需要跳转到其他PE执行;
路由器根据对应转移历史表的记录将需要跳转的数据转发到对应PE。
4.根据权利要求3所述的方法,其特征在于,所述转移历史表包括:指令编号、目的PE编号和有效位,其中,所述目的PE编号为对应指令上次结果数据中的目的PE编号,所述有效位为一个2bit的数字。
5.根据权利要求4所述的方法,其特征在于,任一PE中路由器通过转移历史表进行预测转发的步骤具体为:
步骤401:将转移历史表对应循环程序中的任一指令的有效位初始值预设为00,初始目的PE编号为一预设PE编号;
步骤402:每次执行该指令时都对该指令上次预测的目的PE编号正确与否进行判断:
如果上次预测正确,则对应有效位的值加1,跳转到步骤404;
如果上次预测错误,则对应有效位的值减1,执行步骤403;
步骤403:修改目的PE编号,重复步骤402;
步骤404:路由器按照正确的目的PE编号转发数据,并在转移历史表中做记录。
6.一种数据流架构中循环程序执行的系统,其特征在于,包括PE阵列、主处理器、控制模块和存储模块,其中,所述PE阵列包含多个PE,每个PE包括计算部件、控制器模块、缓存模块、转移历史表和路由器,其中:
所述计算部件包含寄存器,所述寄存器用于记录循环程序中数据流动循环的次数;
所述控制器模块分别与所述计算部件和所述缓存模块数据连接,用于接收和发送控制信号;
所述缓存模块还分别与所述计算部件及所述路由器数据连接;
所述转移历史表分别与所述计算部件和所述路由器数据连接,用于预测是否执行跳转;
所述路由器,用于接收数据并根据所述转移历史表的记录转发数据。
7.根据权利要求6所述的系统,其特征在于,所述转移历史表包括:指令编号、目的PE编号和有效位,其中,所述目的PE编号为对应指令上次结果数据中的目的PE编号,所述有效位为一个2bit的数字。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京睿芯数据流科技有限公司,未经北京睿芯数据流科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110267893.6/1.html,转载请声明来源钻瓜专利网。