CN108563446B - 一种粗粒度数据流架构中的数据复用和同步的方法、装置 - Google Patents

一种粗粒度数据流架构中的数据复用和同步的方法、装置 Download PDF

Info

Publication number
CN108563446B
CN108563446B CN201810279029.6A CN201810279029A CN108563446B CN 108563446 B CN108563446 B CN 108563446B CN 201810279029 A CN201810279029 A CN 201810279029A CN 108563446 B CN108563446 B CN 108563446B
Authority
CN
China
Prior art keywords
instruction
copy
block
program
program block
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.)
Active
Application number
CN201810279029.6A
Other languages
English (en)
Other versions
CN108563446A (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.)
Shanghai Ruiwu Technology Co ltd
Original Assignee
Beijing Zhongke Ruixin Intelligent Computer Industrial Research Institute 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 Zhongke Ruixin Intelligent Computer Industrial Research Institute Co ltd filed Critical Beijing Zhongke Ruixin Intelligent Computer Industrial Research Institute Co ltd
Priority to CN201810279029.6A priority Critical patent/CN108563446B/zh
Publication of CN108563446A publication Critical patent/CN108563446A/zh
Application granted granted Critical
Publication of CN108563446B publication Critical patent/CN108563446B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/45Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
    • G06F8/453Data distribution
    • G06F8/454Consistency

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种粗粒度数据流架构中的数据复用和同步的方法、装置,该装置包括至少一个处理器,该处理器中包括:复制指令译码和运算模块,用于当该处理器中的一程序块中的数据需要被其他程序块使用时,在该需要被使用的数据所在的程序块中加入复制指令,以及用于复制指令的逻辑运算;同步指令译码和运算模块,用于当指向同一程序块的复制指令数量大于1时,在该程序块中加入同步指令,以及用于同步指令的逻辑运算;监视器模块,用于监视各个程序块接收到的复制指令包的数量。该方案可以使程序块之间自动地进行数据复用和同步的操作,减少了任务调度模块的工作,使得数据流架构中的程序运行地更为高效。

Description

一种粗粒度数据流架构中的数据复用和同步的方法、装置
技术领域
本发明涉及计算机体系结构领域,尤其涉及一种数据流框架中,针对粗粒度的数据复用和同步的方法及其装置。
背景技术
粗粒度的数据流架构主要通过编程模型来实现处理器核之间的数据依赖和程序块调度。在粗粒度数据流结构中,程序被划分为多个程序块,程序块之间通过数据相关建立依赖关系,不同的数据块构成了数据流图。粗粒度数据流架构通过任务调度模块将满足依赖条件的程序块调度到空闲的处理器核上,程序块执行结束后更新数据流图中的数据依赖关系,并将可以执行的新的程序块调度到空闲处理器核上执行。在粗粒度数据流结构中,不同的核可能在同一个芯片中,也可能在不同芯片中,每个处理器核的执行模式与控制流处理器一致。典型的粗粒度数据流架构有欧洲的Teraflux Project和Intel的Runnemede架构。
由于程序块之间是有数据依赖的,往往前一个程序块执行完之后,下一个程序块才可以被调度。这种粗粒度的数据流结构的实现,需要通过任务调度模块实时地调度程序块,并且要维护数据流图的数据依赖关系,这使得处理器核可能有很多时间是空闲的,特别对于处理器核的规模非常庞大的情况下,只由一个或几个任务调度模块进行调度往往无法充分利用处理器核的性能。
我们提出了一种粗粒度数据流架构中的数据复用和同步的方法,这种方法可以使程序块之间自动地进行数据复用和同步的操作,而减少了任务调度模块的工作,使得数据流架构中的程序运行地更为高效。
发明内容
针对现有技术中的上述不足,本发明提供了一种粗粒度数据流架构中的数据复用和同步的方法及其装置。本发明的技术方案中,实现数据复用和同步机制需要增加专用的指令,并在代码按照规则插入专用指令;而且需要在硬件结构中增加逻辑:每个处理器核中添加一个同步控制表,以及增加专用指令译码和发射的控制逻辑。具体而言,本发明的技术方案如下:
一方面,本发明提供了一种粗粒度数据流架构中的数据复用和同步的方法,该方法包括:
步骤1、在多个程序块中,当一程序块中的数据需要被其他程序块使用时,在该需要被使用的数据所在的程序块中加入复制指令;当指向同一程序块的复制指令数量大于1时,在该程序块中加入同步指令;其中,标注发送复制指令的程序块为父节点,接受复制指令的程序块为子节点;
步骤2、监视各个程序块接收到的复制指令的数量、该程序块对应的各个父节点的复制指令数量,当所述接收到的复制指令的数量与所述各个父节点的复制指令数量相等时,运行该程序块;
步骤3、当所述步骤2中的程序块运行完,若该程序块中包含所述同步指令,则发射该同步指令。
优选的,所述复制指令用于将本程序块访问或计算得到的数据传输给其他的程序块使用。
优选的,所述复制指令包括:需要传输的数据、数据要送达的程序块的id、该程序块所在的处理器核的id,以及数据要放置到的寄存器或内存的地址。
优选的,所述同步指令包括:同步指令想要传送到的目的地的处理器的id、程序块的id,以及标注发送所述同步指令的程序块是父节点的第几个孩子节点。
优选的,在所述步骤2中,各个程序块接收到的复制指令的数量、该程序块对应的各个父节点的复制指令数量记录在一复制指令表中,以用于监视,所述复制指令表中还包括各个程序块的父节点的程序块id。
优选的,当处理器接收到复制指令传递来的消息后,修改所述复制指令表中对应的程序块的接收到的复制指令的数量。
优选的,当所述步骤2中的程序块运行完,将所述复制指令表中对应的程序块的接收到的复制指令的数量重置为0。
优选的,增加一同步控制表,用于维护各个程序块的同步指令接受的状态;所述同步控制表包括:每个程序块所拥有的子节点的数量、每个程序块所拥有的所有子节点的child index;
所述child index包含两个bit位,一个为receive位,用于表示是否接收到同步指令消息,在复制指令运行前置0,接收到同步指令消息后置1;另一个为ready位,用于标志该子节点是否处于ready状态,所有child index的这一bit为1时开始运行复制指令,并在该程序块的所有复制指令执行完后置0。
优选的,当一程序块的所有子节点的receive位均为1时,将所有的ready位置1,并将所有的receive位置0。
在本发明的另一个方面,还提供了一种粗粒度数据流架构中的数据复用和同步的装置,所述装置包括至少一个处理器,所述处理器中包括复制指令译码和运算模块、同步指令译码和运算模块、监视器模块;
所述复制指令译码和运算模块用于当该处理器中的一程序块中的数据需要被其他程序块使用时,在该需要被使用的数据所在的程序块中加入复制指令,以及用于复制指令的逻辑运算;
所述同步指令译码和运算模块用于当指向同一程序块的复制指令数量大于1时,在该程序块中加入同步指令,以及用于同步指令的逻辑运算;
所述监视器模块监视各个程序块接收到的复制指令包的数量。
优选的,所述复制指令包至少包括程序块接收到的复制指令的数量、该程序块对应的各个父节点的复制指令数量;
当所述接收到的复制指令的数量与所述各个父节点的复制指令数量相等时,运行该程序块;
其中,标注发送复制指令的程序块为父节点,接受复制指令的程序块为子节点。
优选的,所述复制指令用于将本程序块访问或计算得到的数据传输给其他的程序块使用。
优选的,所述复制指令包括:需要传输的数据、数据要送达的程序块的id、该程序块所在的处理器核的id,以及数据要放置到的寄存器或内存的地址。
优选的,所述同步指令包括:同步指令想要传送到的目的地的处理器的id、程序块的id,以及标注发送所述同步指令的程序块是父节点的第几个孩子节点。
优选的,在所述步骤2中,各个程序块接收到的复制指令的数量、该程序块对应的各个父节点的复制指令数量记录在一复制指令表中,以用于监视,所述复制指令表中还包括各个程序块的父节点的程序块id。
优选的,当处理器接收到复制指令传递来的消息后,修改所述复制指令表中对应的程序块的接收到的复制指令的数量。
优选的,当所述步骤2中的程序块运行完,将所述复制指令表中对应的程序块的接收到的复制指令的数量重置为0。
优选的,增加一同步控制表,用于维护各个程序块的同步指令接受的状态;所述同步控制表包括:每个程序块所拥有的子节点的数量、每个程序块所拥有的所有子节点的child index;
所述child index包含两个bit位,一个为receive位,用于表示是否接收到同步指令消息,在复制指令运行前置0,接收到同步指令消息后置1;另一个为ready位,用于标志该子节点是否处于ready状态,所有child index的这一bit为1时开始运行复制指令,并在该程序块的所有复制指令执行完后置0。
优选的,当一程序块的所有子节点的receive位均为1时,将所有的ready位置1,并将所有的receive位置0。
与现有技术相比,本发明的技术方案可以使程序块之间自动地进行数据复用和同步的操作,而减少了任务调度模块的工作,使得数据流架构中的程序运行地更为高效。
附图说明
下面结合附图和实例图对本发明进行进一步说明:
图1为本发明的节点的ACK指令示意图;
图2为本发明的处理器核中COPY指令和ACK指令的译码和运算的逻辑示意图;
图3为本发明的同步控制表示意图;
图4为本发明的数据复用和同步示意图。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施实例进行详细的描述。需要指出的是,本实施例中所列举的具体应用、参数等,均是实现本发明技术方案的优选的实施方式,而不能作为限定本发明的保护范围来理解。此外,本具体实施方式中所列举的不同的实施例,除非本发明中有明确的指示或说明,否则,该些具体实施例中的具体方案之间是可以相互借鉴和结合使用的。
实施例1
实现数据复用和同步机制需要增加专用的指令,并在代码按照规则插入专用指令;而且需要在硬件结构中增加逻辑:每个处理器核中添加一个同步控制表,以及增加专用指令译码和发射的控制逻辑。
一、数据复用和同步指令
为了实现粗粒度数据流架构中的数据复用和同步,我们加入了两条指令,复制指令(COPY)和同步指令(ACK)。COPY指令是用于将本程序块访存或计算得到的数据传输给其他的程序块使用。COPY指令的格式如下表1所示,包含了要传输的数据、数据要送到的程序块(program block)的id、该程序块所在的处理器核(Core)的id,以及数据要放置到的寄存器或者内存的地址。我们标注发送COPY指令的程序块为父节点,接受COPY指令的程序块为子节点。
表1
Figure GDA0003054737470000061
ACK指令的格式如下表2所示,是由ACK想要传送到的目的地的处理器的id和程序块的id,以及标注发送ACK的程序块是父节点的第几个孩子(child node index)。
表2
Child node index Program block id Core id
二、在程序块中加入数据复用和同步指令
结合图1,当一个数据需要被其他程序块使用时,就在数据所在的程序块中插入一条COPY指令。一个程序块中可以有多条COPY指令,这些COPY指令可以指向不同的程序块。父节点可以有多个子节点,我们称指向同一子节点的所有COPY指令为一个数据复用簇(COPYcluster),如图1中program block0有三个子节点。针对每个COPY cluster,我们都会在子节点中加入一个ACK指令。本领域技术人员可以理解,该ACK指令,即同步指令并不是必须设置的,例如我们可以选择设置一空置或不起作用的ACK指令及其控制表,以在需要时启用,也可以在一程序块中存在数据复用簇(COPY cluster)的时候,才给该程序块加入这一ACK指令,并设置对应的控制表以监视及修改各个ACK指令相关的参数,这些具体的设置方式是本领域技术人员在本方案的基础上可以进行的调整,这类调整均应当视为落入本发明的保护范围之内。
在子节点接收到一个COPY cluster内的所有copy指令的数据,就会发射ACK指令,向父节点返回ACK消息。同样,一个孩子节点可以有多个父亲,所以孩子节点内可能会有多个ACK指令,如图1中program block3和program block4中就有两个ACK指令。
三、硬件开销
结合图2所示,下面具体阐述本发明的处理器核中会增加COPY指令和ACK指令的译码和运算的逻辑。增加一个监视器,用于检测各个program block接收到COPY包的数量。监视器会维护一个COPY表,其结构如图2所示。对于每个program block都会记录其父节点的程序块id,各个父节点的COPY指令数量(COPY_COUNTER),以及目前接收到的COPY消息的数量(receive count)。当处理器接受到COPY指令传递来的消息后,根据COPY消息内的program block参数,去修改对应的receive count;当所有receive count与对应的COPYCOUNTER相等时,处理器就会认为所有的数据已经就位,就开始运行program block;当本次program block运算完,就会发射程序块中的ACK指令,并将receive count重新置位为0。
结合图3所示,本发明的一个具体实施方式中,还增加了同步控制表的部分,用于维护每个处理器核中的program block的ACK接受的状态,其结构如图3所示。其中ACK_COUTER是存储每个program block所拥有的子节点的数量,child index有两个bit,一个bit用于表示是否接收到ACK消息,在COPY指令运行前置0,接收到ACK消息后置1;另一个bit用于标志子节点是否处于ready状态,所有child index的这一bit为1时开始运行COPY指令,在所有的COPY cluster指令执行完后置0,而当ACK_COUNTER个子节点的receive位都为1时,会将所有的ready位重置为1,receive位重置为0。
实施例2
下面以一具体的实施例对数据复用和同步过程进行详细的举例阐述。
我们假设Core0上有两个程序块program block0和program block2;Core1上有两个程序块program block1和program block3。其中program block0有两个子节点,programblock1有一个子节点,如图4所示。
假设program block0和program block1中共有4条COPY指令,分别是:
Program block0:
Figure GDA0003054737470000081
Program block1:
Figure GDA0003054737470000082
相对应地program block2和program block3中会有三条ACK指令:
Program block2:ACK00
Figure GDA0003054737470000084
Program block3:
Figure GDA0003054737470000083
1、在初始状态时,需要配置监视器中的parent program block和COPY_COUNT,和同步控制表中的ACK_COUNTER。同时把监视器的COPY表中的receive count置0,把同步控制表中的receive全部置0,ready全部置1。
2、Core0检测到program block0没有数据依赖,开始执行program block0。执行过程中发射了两条COPY指令I0和I1。COPY指令全部执行完后,将两个COPY cluster对应的子节点的ready位置0。
3、Core0接受到I0的消息后,把COPY表中program block2区域的program block0对应的receive count加一。
4、Core1接受到I1的消息后,把COPY表中program block3区域的program block0对应的receive count加一。
5、Program block0运行完后,当Core0检测到COPY表中,program block2中的所有父节点(即program block0)的COPY_COUNTER均与receive count相等。说明programblock2所需的数据都准备好了,于是开始运行program block2。
6、Program block2执行的最后会执行程序块中的ACK00指令,然后结束本程序块的运行,Core0会将COPY表中的receive count重置为0。
7、如果这个程序是需要多次迭代运算的,那么program block2要等待数据准备好后再次运行;否则运行完就提交。
8、Core0接受到ACK00的消息后,将同步控制器的program block0的第一个子节点的receive位置1。
9、Core1检测到program block1没有数据依赖,开始执行program block1(步骤8-10过程可以和步骤2-8并行执行)。执行过程中发射两条COPY指令I2和I3,因为I2和I3都属于program block3的COPY cluster,所以将同步控制表中program block1区域的programblock3对应的ready位置0。
10、Core1接受到I2的消息后,把COPY表中program block3区域的program block1对应的receive count加一。
11、Core1接受到I3的消息后,把COPY表中program block3区域的program block1对应的receive count加一。
12、Program block1运行完后,当Core1检测到COPY表中,program block3中的所有父节点(即program block0和program block1)的COPY_COUNTER均与receive count相等。说明program block3所需的数据都准备好了,于是开始运行program block3。
13、Program block3执行的最后会执行程序块中的ACK01和ACK10指令,然后结束本程序块的运行,Core1会将COPY表中的receive count重置为0。
14、如果这个程序是需要多次迭代运算的,那么program block3要等待数据准备好后再次运行;否则运行完就提交。
15、Core0接受到ACK01的消息后,将同步控制器的program block0的第二个子节点的receive位置1。同时Core0会发现program block0的同步控制表中有两个子节点收到了ACK,其数目与ACK_COUNTER相等。此时把同步控制表中的receive全部置0,ready全部置1。
16、如果这个程序是需要多次迭代运算的,那么在同步控制表复位后,Core0可以再次运行program block0。
17、Core1接受到ACK10的消息后,将同步控制器的program block1的第一个子节点的receive位置1。同时Core1会发现program block1的同步控制表中有一个子节点收到了ACK,其数目与ACK_COUNTER相等。此时把同步控制表中的receive全部置0,ready全部置1。
18、如果这个程序是需要多次迭代运算的,那么在program block0结束运行后,Core0空闲时可以再次运行program block0。program block1也是同样的。
实施例3
在又一个具体的实施例中,本发明的技术方案还可以以装置或系统的形式出现,该装置或系统可以是包括单个处理器核的,也可以是多个处理器核的,既可以在单处理器中进行数据块之间的复制控制和同步控制,也可以用于多处理器系统中的数据块之间的复制控制和同步控制。
另外需要指出的是,该实施例3中的优选技术方案,可以结合其他实施例中所使用的方法或算法。
该装置包括至少一个处理器,所述处理器中包括复制指令译码和运算模块、同步指令译码和运算模块、监视器模块;
所述复制指令译码和运算模块用于当该处理器中的一程序块中的数据需要被其他程序块使用时,在该需要被使用的数据所在的程序块中加入复制指令,以及用于复制指令的逻辑运算;
所述同步指令译码和运算模块用于当指向同一程序块的复制指令数量大于1时,在该程序块中加入同步指令,以及用于同步指令的逻辑运算;
所述监视器模块监视各个程序块接收到的复制指令包的数量。
优选的,所述复制指令包至少包括程序块接收到的复制指令的数量、该程序块对应的各个父节点的复制指令数量;
当所述接收到的复制指令的数量与所述各个父节点的复制指令数量相等时,运行该程序块;
其中,标注发送复制指令的程序块为父节点,接受复制指令的程序块为子节点。
优选的,所述复制指令用于将本程序块访问或计算得到的数据传输给其他的程序块使用。
优选的,所述复制指令包括:需要传输的数据、数据要送达的程序块的id、该程序块所在的处理器核的id,以及数据要放置到的寄存器或内存的地址。
优选的,所述同步指令包括:同步指令想要传送到的目的地的处理器的id、程序块的id,以及标注发送所述同步指令的程序块是父节点的第几个孩子节点。
优选的,在所述步骤2中,各个程序块接收到的复制指令的数量、该程序块对应的各个父节点的复制指令数量记录在一复制指令表中,以用于监视,所述复制指令表中还包括各个程序块的父节点的程序块id。
优选的,当处理器接收到复制指令传递来的消息后,修改所述复制指令表中对应的程序块的接收到的复制指令的数量。
优选的,当所述步骤2中的程序块运行完,将所述复制指令表中对应的程序块的接收到的复制指令的数量重置为0。
优选的,增加一同步控制表,用于维护各个程序块的同步指令接受的状态;所述同步控制表包括:每个程序块所拥有的子节点的数量、每个程序块所拥有的所有子节点的child index;
所述child index包含两个bit位,一个为receive位,用于表示是否接收到同步指令消息,在复制指令运行前置0,接收到同步指令消息后置1;另一个为ready位,用于标志该子节点是否处于ready状态,所有child index的这一bit为1时开始运行复制指令,并在该程序块的所有复制指令执行完后置0。
优选的,当一程序块的所有子节点的receive位均为1时,将所有的ready位置1,并将所有的receive位置0。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
本发明参照本发明实施例的方法、方框图、单线图、仿真图进行描述的,以上所述仅为本发明的实施例而已,并不限定本发明,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (10)

1.一种粗粒度数据流架构中的数据复用和同步的方法,其特征在于,所述方法包括:
步骤1、在多个程序块中,当一程序块中的数据需要被其他程序块使用时,在该需要被使用的数据所在的程序块中加入复制指令;当指向同一程序块的复制指令数量大于1时,在该被数量大于1的复制指令指向的程序块中加入同步指令;其中,标注发送复制指令的程序块为父节点,接受复制指令的程序块为子节点;
步骤2、监视各个程序块接收到的复制指令的数量、该程序块对应的各个父节点的复制指令数量,当所述接收到的复制指令的数量与所述各个父节点的复制指令数量之和相等时,运行该程序块;各个程序块接收到的复制指令的数量、该程序块对应的各个父节点的复制指令数量记录在一复制指令表中,以用于监视;
步骤3、当所述步骤2中的程序块运行完,若该程序块中包含所述同步指令,则发射该同步指令。
2.根据权利要求1所述的方法,其特征在于,所述复制指令用于将本程序块访问或计算得到的数据传输给其他的程序块使用。
3.根据权利要求1所述的方法,其特征在于,所述复制指令包括:需要传输的数据、数据要送达的程序块的id、该程序块所在的处理器核的id,以及数据要放置到的寄存器或内存的地址。
4.根据权利要求1所述的方法,其特征在于,所述同步指令包括:同步指令想要传送到的目的地的处理器的id、程序块的id,以及标注发送所述同步指令的程序块是父节点的第几个孩子节点。
5.根据权利要求1所述的方法,其特征在于,在所述步骤2中,所述复制指令表中还包括各个程序块的父节点的程序块id。
6.根据权利要求5所述的方法,其特征在于,当处理器接收到复制指令传递来的消息后,修改所述复制指令表中对应的程序块的接收到的复制指令的数量。
7.根据权利要求5所述的方法,其特征在于,当所述步骤2中的程序块运行完,将所述复制指令表中对应的程序块的接收到的复制指令的数量重置为0。
8.根据权利要求1所述的方法,其特征在于,增加一同步控制表,用于维护各个程序块的同步指令接受的状态;所述同步控制表包括:每个程序块所拥有的子节点的数量、每个程序块所拥有的所有子节点的child index;
所述childindex包含两个bit位,一个为receive位,用于表示是否接收到同步指令消息,在复制指令运行前置0,接收到同步指令消息后置1;另一个为ready位,用于标志该子节点是否处于ready状态,所有childindex的这一bit为1时开始运行复制指令,并在该程序块的所有复制指令执行完后置0。
9.根据权利要求8所述的方法,其特征在于,当一程序块的所有子节点的receive位均为1时,将所有的ready位置1,并将所有的receive位置0。
10.一种粗粒度数据流架构中的数据复用和同步的装置,其特征在于,所述装置包括至少一个处理器,所述处理器中包括复制指令译码和运算模块、同步指令译码和运算模块、监视器模块;
所述复制指令译码和运算模块用于当该处理器中的一程序块中的数据需要被其他程序块使用时,在该需要被使用的数据所在的程序块中加入复制指令,以及用于复制指令的逻辑运算;
所述同步指令译码和运算模块用于当指向同一程序块的复制指令数量大于1时,在该被数量大于1的复制指令指向的程序块中加入同步指令,以及用于同步指令的逻辑运算;
标注发送复制指令的程序块为父节点,接受复制指令的程序块为子节点;
所述监视器模块监视各个程序块接收到的复制指令包的数量,所述复制指令包至少包括程序块接收到的复制指令的数量、该程序块对应的各个父节点的复制指令数量;当所述接收到的复制指令的数量与所述各个父节点的复制指令数量之和相等时,运行该程序块;当该程序块运行完,若该程序块中包含所述同步指令,则同步指令译码和运算模块发射该同步指令。
CN201810279029.6A 2018-03-30 2018-03-30 一种粗粒度数据流架构中的数据复用和同步的方法、装置 Active CN108563446B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810279029.6A CN108563446B (zh) 2018-03-30 2018-03-30 一种粗粒度数据流架构中的数据复用和同步的方法、装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810279029.6A CN108563446B (zh) 2018-03-30 2018-03-30 一种粗粒度数据流架构中的数据复用和同步的方法、装置

Publications (2)

Publication Number Publication Date
CN108563446A CN108563446A (zh) 2018-09-21
CN108563446B true CN108563446B (zh) 2021-06-25

Family

ID=63533620

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810279029.6A Active CN108563446B (zh) 2018-03-30 2018-03-30 一种粗粒度数据流架构中的数据复用和同步的方法、装置

Country Status (1)

Country Link
CN (1) CN108563446B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1306640A (zh) * 1999-03-26 2001-08-01 密克罗奇普技术公司 微控制器指令集
CN105867994A (zh) * 2016-04-20 2016-08-17 上海交通大学 一种用于粗粒度可重构架构编译器的指令调度优化方法
CN106293736A (zh) * 2016-08-08 2017-01-04 合肥工业大学 用于粗粒度多核计算系统的两级编程模型及其编程方法
CN107590085A (zh) * 2017-08-18 2018-01-16 浙江大学 一种具有多级缓存的动态可重构阵列数据通路及其控制方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9690278B1 (en) * 2014-04-10 2017-06-27 Altera Corporation Method and apparatus for high-level programs with general control flow

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1306640A (zh) * 1999-03-26 2001-08-01 密克罗奇普技术公司 微控制器指令集
CN105867994A (zh) * 2016-04-20 2016-08-17 上海交通大学 一种用于粗粒度可重构架构编译器的指令调度优化方法
CN106293736A (zh) * 2016-08-08 2017-01-04 合肥工业大学 用于粗粒度多核计算系统的两级编程模型及其编程方法
CN107590085A (zh) * 2017-08-18 2018-01-16 浙江大学 一种具有多级缓存的动态可重构阵列数据通路及其控制方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种专用可重构流水信号处理器的设计;陈俊宇 等;《微电子学与计算机》;20170531;第34卷(第5期);第6-11页 *

Also Published As

Publication number Publication date
CN108563446A (zh) 2018-09-21

Similar Documents

Publication Publication Date Title
TWI669620B (zh) Database switching method, server, storage medium, electronic device and product
US8379645B2 (en) Link data transmission method, node and system
JPH1049507A (ja) 並列計算機
US20160371122A1 (en) File processing workflow management
DE112013005093T5 (de) Hochleistungszusammenschaltungsbitübertragungsschicht
CN103905300A (zh) 一种数据报文发送方法、设备及系统
CN113987064A (zh) 数据处理方法、系统及设备
CN111352760B (zh) 一种数据处理的方法以及相关装置
CN105359122B (zh) 多cpu系统中的增强型数据传输
CN103282888B (zh) 数据处理方法、图像处理器gpu及第一节点设备
EP2940931B1 (en) Method and device for waking inactive link
CN108563446B (zh) 一种粗粒度数据流架构中的数据复用和同步的方法、装置
JP2011503731A (ja) リンクに基づくシステムにおけるシステムルーティング情報の変更
WO2024120169A1 (zh) 一种服务器及其资产信息获取方法、提供方法和装置
US9767023B2 (en) Method of controlling data writing to persistent storage device
JP6369226B2 (ja) 情報処理装置、情報処理システム、情報処理システムの制御方法および情報処理装置の制御プログラム
CN104753659B (zh) 一种多网元数据同步加载的方法、装置及系统
CN110557399A (zh) 管理数据同步方法、装置、存储设备及可读存储介质
CN101625666B (zh) 一种数据拷贝、参数信息写入的方法和系统
CN108829631A (zh) 一种提升多核处理器的信息管理方法
CN111917826A (zh) 一种基于区块链知识产权保护的pbft共识算法
CN115210694A (zh) 数据传输方法及装置
CN112994998A (zh) 一种通讯节点、通讯方法、装置及电子设备
CN104506429A (zh) 一种管理路由器备份组的方法、路由器及系统
JP7036226B2 (ja) 演算処理装置及びその制御方法

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
TR01 Transfer of patent right

Effective date of registration: 20230522

Address after: 200120 3rd floor, building 2, No.200, zhangheng Road, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai

Patentee after: Shanghai Ruiwu Technology Co.,Ltd.

Address before: 101300 room 232, building 5, 25 shuntongdao, Shunyi District, Beijing

Patentee before: BEIJING ZHONGKE RUIXIN INTELLIGENT COMPUTER INDUSTRIAL RESEARCH INSTITUTE CO.,LTD.

TR01 Transfer of patent right