CN113032011A - 一种数据流架构中循环程序执行的方法及系统 - Google Patents

一种数据流架构中循环程序执行的方法及系统 Download PDF

Info

Publication number
CN113032011A
CN113032011A CN202110267893.6A CN202110267893A CN113032011A CN 113032011 A CN113032011 A CN 113032011A CN 202110267893 A CN202110267893 A CN 202110267893A CN 113032011 A CN113032011 A CN 113032011A
Authority
CN
China
Prior art keywords
data
history table
instruction
program
router
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202110267893.6A
Other languages
English (en)
Other versions
CN113032011B (zh
Inventor
李文明
叶笑春
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Ruixin Data Flow Technology Co ltd
Original Assignee
Beijing Ruixin Data Flow Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Ruixin Data Flow Technology Co ltd filed Critical Beijing Ruixin Data Flow Technology Co ltd
Priority to CN202110267893.6A priority Critical patent/CN113032011B/zh
Publication of CN113032011A publication Critical patent/CN113032011A/zh
Application granted granted Critical
Publication of CN113032011B publication Critical patent/CN113032011B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30065Loop control instructions; iterative instructions, e.g. LOOP, REPEAT
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开一种数据流架构中循环程序执行的方法及系统,其中系统包括PE阵列、主处理器、控制模块和存储模块,其中,PE阵列包含多个PE,每个PE包括计算部件、控制器模块、缓存模块、转移历史表和路由器,其中:控制器模块分别与计算部件和缓存模块数据连接,用于接收和发送控制信号;缓存模块还分别与计算部件及路由器数据连接;转移历史表分别与计算部件和路由器数据连接,用于预测是否执行跳转;路由器,用于接收数据并根据转移历史表的记录转发数据;其中,转移历史表包括:指令编号、目的PE编号和有效位。

Description

一种数据流架构中循环程序执行的方法及系统
技术领域
本发明涉及数据流体系结构技术领域,具体而言,涉及一种数据流架构中循环程序执行的方法及系统。
背景技术
数据流架构是一种不同于冯诺依曼架构的计算机体系结构,由于其具有访存需求少、同步开销低等优点,在神经网络、科学计算等应用中取得较好的性能。在数据流结构中,程序首先根据指令间的数据依赖关系生成数据流图,然后通过映射算法映射到执行单元阵列上执行。数据流图中的某一节点的操作数都从上游节点获得时,该节点即可执行。如果数据流图中的一个节点表示一条指令,则该数据流结构是细粒度数据流结构;如果数据流图中的一个节点为一组指令或一段指令,则该数据流结构是粗粒度的数据流结构,在粗粒度的数据流结构中的节点通常称为Fiber。因此,数据流架构的程序执行是基于根据数据依赖关系生成的数据流图进行的。
循环结构是程序的基本结构之一,传统的数据流图中对于循环体的操作是将循环体展开,将多次的循环代码展开为单次的确定代码,这样能够解决循环体反复执行代码的问题。但是使用这种方法,若循环的次数过多,会造成展开的代码过大,物理存储单元无法完全装载的问题,从而限制数据流图的规模。面向数据流架构的循环程序实现的困难在于:首先,对于循环次数确定的程序,循环次数和循环体的大小决定了数据流图展开的面积,严重影响映射算法;其次,对于循环次数不确定的循环程序,无法在程序执行前生成其数据流图。
在现有技术中,例如申请号为201710439619.6的发明专利,其通过循环体节点域、前驱节点和后继节点的设置,对数据流图中的循环依赖进行了优化,使得循环体计算的数据能够不经过存储器再次传入循环体中,从而缩短了数据流图的执行时间;同时,即使在循环体中不存在循环依赖,也可以使用该发明的方法,以节省数据流图中操作数的存储空间。但是,该方法为面向细粒度数据流架构的方法,数据流图中的每个节点均为单条指令,属于静态的策略,每次循环的执行情况都要在前驱节点和后继节点中记录,因此,无法适用于循环执行方式无法提前确定的情况,也不适用于更复杂的、粗粒度的数据流架构。
发明内容
为了解决上述问题,本发明提供一种数据流架构中循环程序执行的方法及系统,其通过硬件方式控制循环程序的执行,为数据流架构中循环程序提供了一种可行的执行方式和结构,为程序的移植提供了方便,使数据流架构适应更多的应用场景。
为达到上述目的,本发明提供了一种数据流架构中循环程序执行的方法,其包括以下步骤:
步骤1:判断循环程序所在的数据流结构:
如果是细粒度数据流结构,则按照实例方式执行;
如果是粗粒度数据流结构,则跳转到步骤2;
步骤2:判断循环程序在粗粒度数据流结构中的构成方式,
如果循环程序由同一个Fiber内的多条指令组成,则跳转到步骤3;
如果循环程序由几个完整的Fiber组成,且每个Fiber均为一段按顺序执行的指令,则按照实例方式执行;
如果循环程序由分布在不同Fiber内的几段指令组成,且至少有一个Fiber中有部分指令不属于对应循环程序,则按照预测转发机制执行;
步骤3:将这个Fiber内的属于循环程序的指令作为子任务重新划分子Fiber,然后按照实例方式执行,同时,返回对应循环程序的起始地址与终止地址参数;
其中,所述实例方式为寄存器计数的方式,所述预测转发机制为通过转移历史表进行预测并由路由器转发的方式。
在本发明一实施例中,其中,所述实例方式的具体执行过程为:
将每个循环程序的数据流子图作为一个子任务,每个子任务对应一个寄存器,并在寄存器中保存对应子任务中数据流动循环的次数;
在任一循环程序中,每执行一次数据流动循环,对应寄存器中次数减1,直到对应寄存器中的次数值减为0,数据流出对应子任务,所述循环程序执行完成。
在本发明一实施例中,其中,所述预测转发机制的具体过程为:
在执行循环程序的任一条指令时,通过转移历史表预测下一条指令是否需要跳转到其他PE执行;
路由器根据对应转移历史表的记录将需要跳转的数据转发到对应PE。
在本发明一实施例中,其中,所述转移历史表包括:指令编号、目的PE编号和有效位,其中,所述目的PE编号为对应指令上次结果数据中的目的PE编号,所述有效位为一个2bit的数字。
在本发明一实施例中,其中,任一PE中路由器通过转移历史表进行预测转发的步骤具体为:
步骤401:将转移历史表对应循环程序中的任一指令的有效位初始值预设为00,初始目的PE编号为一预设PE编号;
步骤402:每次执行该指令时都对该指令上次预测的目的PE编号正确与否进行判断:
如果上次预测正确,则对应有效位的值加1,跳转到步骤404;
如果上次预测错误,则对应有效位的值减1,执行步骤403;
步骤403:修改目的PE编号,重复步骤402;
步骤404:路由器按照正确的目的PE编号转发数据,并在转移历史表中做记录。
为达到上述目的,本发明还提供了一种数据流架构中循环程序执行的系统,其包括PE阵列、主处理器、控制模块和存储模块,其中,所述PE阵列包含多个PE,每个PE包括计算部件、控制器模块、缓存模块、转移历史表和路由器,其中:
所述计算部件包含寄存器,所述寄存器用于记录循环程序中数据流动循环的次数;
所述控制器模块分别与所述计算部件和所述缓存模块数据连接,用于接收和发送控制信号;
所述缓存模块还分别与所述计算部件及所述路由器数据连接;
所述转移历史表分别与所述计算部件和所述路由器数据连接,用于预测是否执行跳转;
所述路由器,用于接收数据并根据所述转移历史表的记录转发数据。
在本发明一实施例中,其中,所述转移历史表包括:指令编号、目的PE编号和有效位,其中,所述目的PE编号为对应指令上次结果数据中的目的PE编号,所述有效位为一个2bit的数字。
本发明通过在PE增加转移历史表和路由器的方式,实现一种通过硬件控制程序的循环的方法,与现有技术相比,本发明既适用于细粒度数据流结构的循环程序也适用于粗粒度数据流结构的循环程序,能够将所有结构的数据流架构中的循环程序的数据流图提前且完全地展开,为程序的移植提供了方便,使数据流架构适应更多的应用场景。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例中循环程序在细粒度数据流结构的示意图;
图2为本发明一实施例中由多个完整的Fiber组成循环程序的粗粒度数据流结构示意图;
图3为本发明一实施例中采用预测转发机制的执行循环程序的粗粒度数据流结构示意图;
图4为本发明一实施例中转移历史表的有效位的值的变换示意图;
图5为本发明一个实施例的系统架构图;
图6为本发明一个实施例的任一PE的结构示意图;
图7为本发明一个实施例的转移历史表的示意图;
附图标记说明:C01、C02-数据流结构子图;10-PE阵列;20-主处理器;30-控制模块;40-存储模块;50-寄存器;100-PE;101-计算部件;102-控制器模块;103-缓存模块;104-转移历史表;105-路由器;A、B、C、D、E-节点;a、b、c、d、e、g、h-Fiber;C01、C02-数据流子图;S、T-指令。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明一实施例提供了一种数据流架构中循环程序执行的方法,其包括以下步骤:
步骤1:判断循环程序所在的数据流结构:
如果是细粒度数据流结构,则按照实例(Instance)方式执行;
如果是粗粒度数据流结构,则跳转到步骤2;
步骤2:判断循环程序在粗粒度数据流结构中的构成方式,
如果循环程序由同一个Fiber内的多条指令组成,则跳转到步骤3;
如果循环程序由几个完整的Fiber组成,且每个Fiber均为一段按顺序执行的指令,则按照实例(Instance)方式执行;
如果循环程序由分布在不同Fiber内的几段指令组成,且至少有一个Fiber中有部分指令不属于对应的循环程序,则按照预测转发机制执行;
步骤3:将这个Fiber内的属于循环程序的指令作为子任务重新划分子Fiber,然后按照实例(Instance)方式执行,同时,返回对应循环程序的起始地址与终止地址参数;
其中,实例方式为寄存器计数的方式,预测转发机制为通过转移历史表进行预测并由路由器转发。
其中,实例(Instance)方式的具体执行过程为:
首先,将每个循环程序的数据流子图作为一个子任务,每个子任务对应一个寄存器并在寄存器中保存对应子任务的中数据流动循环的次数;
在任一循环程序中,每执行一次数据流动循环,对应寄存器中次数减1,直到对应寄存器中的次数值减为0,数据流出对应子任务,所述循环程序执行完成。
图1为本发明一实施例中循环程序在细粒度数据流结构的示意图,如图1所示,由于节点A、B、C、D和E分别代表一条指令,所以属于细粒度数据流结构。在本实施例中,由于节点E的输出数据还需要流回节点A以组成循环结构,因此,节点A、B、C、D和E构成一个循环程序的数据流子图(C01),在本实施例中,将这个循环程序的数据流子图(C01)定义为子任务(subtask),由于每个子任务(subtask)对应一个寄存器(50)(instance register,简称IR),则该寄存器(50)中保存这个由节点A、B、C、D和E构成的数据流子图(C01)的数据流动循环的次数,每完成一次数据流动循环,该寄存器(50)中的数值减1,直到该寄存器(50)的值减为0,此时,数据流出这个数据流子图(C01),完成对应循环程序的执行。通常,这个寄存器(50)在PE(Processing Element,处理单元)的计算部件中,用于计数。
图2为本发明一实施例中由多个完整的Fiber组成循环程序的粗粒度数据流结构示意图,如图2所示,由于Fiber a、b、c、d和e分别代表一段指令,且Fiber a、b、c、d和e中的指令都是按顺序执行的,所以属于粗粒度数据流结构,即在Fiber内部为控制流程序执行模式,Fiber与Fiber之间为数据流执行模式。在本实施例中,由于Fiber e的输出数据还需要流回Fiber a以组成循环结构,因此,Fiber a、b、c、d和e构成一个循环程序的数据流子图(C02),在本实施例中,将这个循环程序的数据流子图(C02)也定义为子任务(subtask),由于每个子任务(subtask)对应一个寄存器(50)(instance register,简称IR),则该寄存器(50)中保存这个由Fiber a、b、c、d和e构成的数据流子图(C02)的数据流动循环的次数,每完成一次数据流动循环,该寄存器(50)中的数值减1,直到该寄存器(50)的值减为0,此时,数据流出这个数据流子图(C02),完成对应循环程序的执行。这个寄存器(50)也是在PE的计算部件中,用于计数。
同理,在本发明其他实施例中,如果循环程序由同一个Fiber内的多条指令组成,则需要将这个Fiber内的属于循环程序的指令作为子任务划分子Fiber,即这个循环程序的数据流子图是由多个新划分的子Fiber构成,这个数据流子图也定义为子任务(subtask),其数据流子图的结构与图2的结构相同,因此,可以按照与图2实施例相同的方式执行循环程序。
图3为本发明一实施例中采用预测转发机制的执行循环程序的粗粒度数据流结构示意图,如图3所示,在粗粒度数据流结构中,如果循环程序由分布在不同Fiber内的几段指令组成,如图3中的Fiber g和Fiber h,且每个Fiber有可能映射到不同的PE(ProcessingElement,处理单元),当至少有一个Fiber中有部分指令不属于对应循环程序时,如图3中Fiber g中的指令S之前的部分和Fiber h中指令T之后的部分均不属于循环程序,那么采用前述的实例(Instance)方式是无法实现的,因此,采用一种预测及转发机制执行。在本实施例中,预测及转发机制的实现需要在PE中增加一个转移历史表和一个路由器,其中,转移历史表包括指令编号、目的PE编号和有效位,指令编号是当前Fiber中的指令编号,目的PE编号是这条指令上次结果数据的目的PE编号,有效位为一个2bit(binary digit,二进制单位)的数字。
预测及转发机制的实现过程具体为:
首先,在执行循环程序的任一条指令时,通过转移历史表预测下一条指令是否需要跳转到其他PE执行;
然后,路由器根据对应转移历史表的记录将需要跳转的数据转发到对应PE。
图4为本发明一实施例中转移历史表的有效位的值的变换示意图,如图4所示,在本实施例中,任一PE中路由器通过转移历史表进行预测转发的步骤具体为:
步骤401:将转移历史表对应循环程序中的任一指令的有效位初始值预设为00,初始目的PE编号为一预设PE编号,在本实施例中假设初始目的PE编号为PE0;
步骤402:每次执行该指令时都对该指令上次预测的目的PE编号正确与否进行判断:
如果上次预测正确,则对应有效位的值加1,跳转到步骤404;
如果上次预测错误,则对应有效位的值减1,执行步骤403;
即在本实施例中,如果PE0正确,有效位变为01,如果PE0错误,有效为保持00。
步骤403:修改目的PE编号,重复步骤402;
步骤404:路由器按照正确的目的PE编号转发数据,并在转移历史表中做记录。
其中,若在步骤404前查看对应有效位的值,可知预测的是否可信:
如果对应有效位的值为00,则表示预测的目的PE编号错误,不能按照转移历史表中对应的目的PE编号执行,还需要修改PE编号后跳转回步骤402继续判断;
如果对应有效位的值不为00,则表示转移历史表中记录的上次预测的目的PE编号正确,为可信值,路由器可以按照这个目的PE编号跳转;
在本发明一实施例中,执行循环程序中的某一指令时,如果判断PE0正确,则将对应有效位修改为01,将转移历史表中的目的PE编号保持为PE0,路由器将数据转发给PE0;下一次执行到这个指令时继续判断,如果判断PE0正确,则将对应有效位修改为10,将转移历史表中的目的PE编号依然保持为PE0,路由器将数据转发给PE0;再下一次执行到这个指令时继续判断,如果判断PE0正确,则将对应有效位修改为11,将转移历史表中的目的PE编号依然保持为PE0,路由器将数据转发给PE0;再下一次执行到这个指令时继续判断,如果判断PE0依然正确,则将对应有效位保持为11,将转移历史表中的目的PE编号依然保持为PE0,路由器将数据转发给PE0,以此类推。如果目的PE编号为PE0,对应有效位为11时再执行这个指令,并且判断PE0错误,则将对应有效位修改为10,修改目的PE编号为PE1,然后继续判断PE1是否正确,直到判断出正确的目的PE编号,路由器才会执行数据转发,并在转移历史表中做记录。
在本发明另一实施例中,执行循环程序中的某一指令时,如果判断PE0正确,则将对应有效位修改为01,将转移历史表中的目的PE编号保持为PE0,路由器将数据转发给PE0;下一次执行到这个指令时继续判断,如果判断PE0错误,则将对应有效位修改为00,将目的PE编号修改为PE1;继续判断,如果判断PE1依然错误,则将对应有效位保持为00,将目的PE编号修改为PE2;再继续判断,如果判断PE2正确,则将对应有效位修改为01,将转移历史表中的目的PE编号修改为PE2,路由器将数据转发给PE2,并在转移历史表中做记录。以此类推,路由器根据转移历史表的预测结果进行数据转发,本发明实施仅为某些情况的举例说明,不能穷举所有预测情况,并且跳转的PE编号也仅为说明,不作为本案目的PE编号的限定。
图5为本发明一个实施例的系统架构图,如图5所示,本发明一实施例提供了一种数据流架构中循环程序执行的系统,其包括PE阵列、主处理器(20)、控制模块(30)和存储模块(40),其中,PE阵列包含多个PE(100)。
图6为本发明一个实施例的任一PE的结构示意图,如图6所示,在本发明一实施例中,每个PE(100)包括计算部件(101),控制器模块(102)(Control),缓存模块(103),转移历史表(104),路由器(105)(Router),其中:
计算部件(101)包含寄存器,寄存器用于记录循环程序中数据流动循环的次数;
控制器模块(102)(Control)分别与计算部件(101)和缓存模块(103)数据连接,用于接收和发送控制信号;
缓存模块(103)还分别与计算部件(101)和路由器(105)数据连接;
转移历史表(104)分别与计算部件(101)和路由器(105)数据连接,用于预测是否执行跳转;
路由器(105)作为对应PE(100)的输入输出接口,用于接收数据并根据转移历史表(104)的记录转发数据。
图7为本发明一个实施例的转移历史表示意图,如图7所示,在本发明一实施例中,转移历史表包括:指令编号、目的PE编号和有效位,其中,指令编号为当前Fiber中的指令编号,目的PE编号为对应指令上次结果数据的目的PE编号,有效位为一个2bit的数字。
本发明通过在PE增加转移历史表和路由器的方式,实现一种通过硬件控制程序的循环的方法,与现有技术相比,本发明既适用于细粒度数据流结构的循环程序也适用于粗粒度数据流结构的循环程序,能够将所有结构的数据流架构中的循环程序的数据流图提前且完全地展开,为程序的移植提供了方便,使数据流架构适应更多的应用场景。
本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域普通技术人员可以理解:实施例中的装置中的模块可以按照实施例描述分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。

Claims (7)

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的数字。
CN202110267893.6A 2021-03-12 2021-03-12 一种数据流架构中循环程序执行的方法及系统 Active CN113032011B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110267893.6A CN113032011B (zh) 2021-03-12 2021-03-12 一种数据流架构中循环程序执行的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110267893.6A CN113032011B (zh) 2021-03-12 2021-03-12 一种数据流架构中循环程序执行的方法及系统

Publications (2)

Publication Number Publication Date
CN113032011A true CN113032011A (zh) 2021-06-25
CN113032011B CN113032011B (zh) 2023-06-27

Family

ID=76469963

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110267893.6A Active CN113032011B (zh) 2021-03-12 2021-03-12 一种数据流架构中循环程序执行的方法及系统

Country Status (1)

Country Link
CN (1) CN113032011B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113505383A (zh) * 2021-07-02 2021-10-15 中国科学院计算技术研究所 一种ecdsa算法执行系统及方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016071330A1 (fr) * 2014-11-04 2016-05-12 Commissariat A L'energie Atomique Et Aux Energies Alternatives Procede et dispositif d'architecture configurable a gros grains pour executer en integralite un code applicatif
US20180210730A1 (en) * 2017-01-26 2018-07-26 Wisconsin Alumni Research Foundation Reconfigurable, Application-Specific Computer Accelerator
CN111008133A (zh) * 2019-11-29 2020-04-14 中国科学院计算技术研究所 粗粒度数据流架构执行阵列的调试方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016071330A1 (fr) * 2014-11-04 2016-05-12 Commissariat A L'energie Atomique Et Aux Energies Alternatives Procede et dispositif d'architecture configurable a gros grains pour executer en integralite un code applicatif
US20180210730A1 (en) * 2017-01-26 2018-07-26 Wisconsin Alumni Research Foundation Reconfigurable, Application-Specific Computer Accelerator
CN111008133A (zh) * 2019-11-29 2020-04-14 中国科学院计算技术研究所 粗粒度数据流架构执行阵列的调试方法及装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113505383A (zh) * 2021-07-02 2021-10-15 中国科学院计算技术研究所 一种ecdsa算法执行系统及方法

Also Published As

Publication number Publication date
CN113032011B (zh) 2023-06-27

Similar Documents

Publication Publication Date Title
JP6660991B2 (ja) マルチスレッドプロセッサでのタスクのスケジューリング
JP4042604B2 (ja) プログラム並列化装置,プログラム並列化方法およびプログラム並列化プログラム
CN109376861B (zh) 一种用于执行全连接层神经网络训练的装置和方法
CN110046704B (zh) 基于数据流的深度网络加速方法、装置、设备及存储介质
WO2015024452A1 (zh) 一种分支预测方法及相关装置
JP4988789B2 (ja) シミュレーション・システム、方法及びプログラム
US20130152048A1 (en) Test method, processing device, test program generation method and test program generator
CN1240279A (zh) 具有分支控制的数据处理系统及其方法
US20230084523A1 (en) Data Processing Method and Device, and Storage Medium
US9354850B2 (en) Method and apparatus for instruction scheduling using software pipelining
JP2008176453A (ja) シミュレーション装置
CN113032011B (zh) 一种数据流架构中循环程序执行的方法及系统
JP7495030B2 (ja) プロセッサ、処理方法、および関連デバイス
CN108021563B (zh) 一种指令间数据依赖的检测方法和装置
US20230195526A1 (en) Graph computing apparatus, processing method, and related device
JP7510253B2 (ja) 分岐予測器
JP2010152843A (ja) 分岐予測の信頼度見積もり回路及びその方法
US20210042123A1 (en) Reducing Operations of Sum-Of-Multiply-Accumulate (SOMAC) Instructions
KR100576560B1 (ko) 추측 레지스터 조정 방법 및 장치
CN107368287B (zh) 一种数据流结构循环依赖的加速系统、加速装置及其加速方法
CN115268877B (zh) 一种用于图计算并行执行的中间表示方法及装置
CN216527140U (zh) 一种分支预测的装置及处理器
CN114721725B (zh) 一种分支指令执行方法、装置、电子设备及存储介质
US11275712B2 (en) SIMD controller and SIMD predication scheme
KR101118593B1 (ko) Vliw 명령어 처리 장치 및 방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant