CN105095147B - 片上网络的Flit传输方法及装置 - Google Patents

片上网络的Flit传输方法及装置 Download PDF

Info

Publication number
CN105095147B
CN105095147B CN201410216331.9A CN201410216331A CN105095147B CN 105095147 B CN105095147 B CN 105095147B CN 201410216331 A CN201410216331 A CN 201410216331A CN 105095147 B CN105095147 B CN 105095147B
Authority
CN
China
Prior art keywords
flit
current
type
payload
cache size
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
CN201410216331.9A
Other languages
English (en)
Other versions
CN105095147A (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.)
Tsinghua University
Huawei Technologies Co Ltd
Original Assignee
Tsinghua University
Huawei Technologies 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 Tsinghua University, Huawei Technologies Co Ltd filed Critical Tsinghua University
Priority to CN201410216331.9A priority Critical patent/CN105095147B/zh
Priority to PCT/CN2015/079283 priority patent/WO2015176646A1/zh
Priority to EP15796473.5A priority patent/EP3136251B1/en
Publication of CN105095147A publication Critical patent/CN105095147A/zh
Priority to US15/356,373 priority patent/US10129147B2/en
Application granted granted Critical
Publication of CN105095147B publication Critical patent/CN105095147B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/7825Globally asynchronous, locally synchronous, e.g. network on chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/50Circuit switching systems, i.e. systems in which the path is physically permanent during the communication
    • 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

Abstract

本发明实公开了片上Flit传输方法及片上Flit传输装置。方法包括:接收包括任务编号Op ID、操作类型Op Type及数据负载Payload的当前数据分片Flit;在确定需要对所述当前Flit进行加速处理时,根据所述Op Type判断所述当前Flit的Payload是否会影响所述当前Flit的目的节点的执行结果,所述执行结果为所述目的节点执行与所述Op ID对应的任务得出的结果;如果判断结果为是,则将所述当前Flit转发到下一节点;如果判断结果为否,则丢弃所述当前Flit。采用本发明不但能大大减少片上网络需要传输的Flit的数量,而且能减少目的节点的运算量。

Description

片上网络的Flit传输方法及装置
技术领域
本发明涉及通信领域,尤其涉及片上网络的数据分片传输方法及装置。
背景技术
随着处理器技术的发展,多核(Multi-core)/众核(Many-core)已经成为处理器结构的发展方向。多核/众核处理器中包括多个内核,每一个内核可以各自执行自己的代码,并且内核与内核之间可以协同工作。
当多核/众核处理器中多个内核之间协同工作时,不同内核间需要进行通信,完成数据的共享和同步。随着单颗处理器芯片上集成的内核越来越多,内核间通信的复杂性显著增强。传统的总线架构只适应内核较少的情况,难以应对愈发复杂的通信需求,因此片上网络(Network on Chip,NoC)作为目前多核/众核处理器内核间通信的高效解决方案被广泛采用,成为主流的互连技术。
片上网络借鉴了分布式运算系统的通信方式,采用路由和分组交换技术代替传统总线。在多核/众核处理器芯片中,片上网络主要用于在内核及各个功能部件之间传输数据分片(Flit),而对Flit的处理则是由内核全权完成。数据传输与数据处理的分离为多核/众核处理器带来了更高效的内核间通信和良好的扩展性。
但是,随着处理器内核数量的增加以及处理器片内并行任务规模的不断增大,片上网络需要传输的Flit数量也越来越多。采用现有技术传输Flit,当内核数量增加到一定数量级时,例如几十个或更多,片上网络需要传输大量的Flit,这不但会导致片上网络的功耗增加,而且很容易引起Flit传输拥塞,影响处理器的整体性能。
发明内容
本发明实施例提供了片上网络的Flit传输方法及装置,以解决采用现有技术传输Flit,当内核数量较多时,影响处理器的整体性能的问题。
第一方面,本发明实施例提供了一种片上网络的Flit传输方法,该方法包括:接收包括任务编号Op ID、操作类型Op Type及数据负载Payload的当前数据分片Flit;在确定需要对所述当前Flit进行加速处理时,根据所述Op Type判断所述当前Flit的Payload是否会影响所述当前Flit的目的节点的执行结果,所述执行结果为所述目的节点执行与所述OpID对应的任务得出的结果;如果判断结果为是,则将所述当前Flit转发到下一节点;如果判断结果为否,则丢弃所述当前Flit。
结合第一方面,在第一方面第一种可能的实现方式中,所述根据所述Op Type判断所述当前Flit的Payload是否会影响所述当前Flit的目的节点的执行结果包括:在检测到与所述Op ID对应的缓存值,且所述Op Type用于表示一种运算类型时,对所述当前Flit的Payload与所述缓存值执行所述运算类型对应的运算,所述缓存值为对Op ID与所述当前Flit的Op ID相同的所有已传输Flit的Payload执行所述运算类型对应的运算的结果;并判断运算结果是否与所述缓存值不同;或者,在检测到与所述Op ID对应的缓存值,且所述OpType为ADD_VTEX时,判断所述缓存值中是否不包含所述当前Flit的Payload,所述缓存值为Op ID与所述当前Flit的Op ID相同的已传输Flit的Payload。
结合第一方面第一种可能的实现方式,在第一方面第二种可能的实现方式中,所述方法还包括:在所述Op Type用于表示一种运算类型,且运算结果与所述缓存值不同时,将与所述当前Flit的Op ID对应的缓存值替换为所述运算结果。
结合第一方面第一种可能的实现方式,在第一方面第三种可能的实现方式中,所述方法还包括:当所述Op Type为ADD_VTEX,且所述缓存值中不包含所述当前Flit的Payload时,将所述payload作为一个与所述当前Flit的Op ID对应的缓存值进行保存。
结合第一方面第一种可能的实现方式、第一方面第二种可能的实现方式或第一方面第三种可能的实现方式,在第一方面第四种可能的实现方式中,所述方法还包括:在未检测到与所述Op ID对应的缓存值时,将所述当前Flit转发到下一节点。
结合第一方面第一种可能的实现方式、第一方面第二种可能的实现方式、第一方面第三种可能的实现方式或第一方面第四种可能的实现方式,在第一方面第五种可能的实现方式中,所述方法还包括:在未检测到与所述Op ID对应的缓存值时,将所述当前Flit的Payload作为与所述Op ID对应的缓存值进行保存。
结合第一方面、第一方面第一种可能的实现方式、第一方面第二种可能的实现方式、第一方面第三种可能的实现方式、第一方面第四种可能的实现方式或第一方面第五种可能的实现方式,在第一方面第六种可能的实现方式中,所述确定需要对所述当前Flit进行加速处理包括:根据所述当前Flit的Op Type确定需要对所述当前Flit进行加速处理。
结合第一方面、第一方面第一种可能的实现方式、第一方面第二种可能的实现方式、第一方面第三种可能的实现方式、第一方面第四种可能的实现方式、第一方面第五种可能的实现方式或第一方面第六种可能的实现方式,在第一方面第七种可能的实现方式中,所述方法还包括:在确定不需要对所述当前Flit进行加速处理时,将所述当前Flit转发到下一节点。
结合第一方面、第一方面第一种可能的实现方式、第一方面第二种可能的实现方式、第一方面第三种可能的实现方式、第一方面第四种可能的实现方式、第一方面第五种可能的实现方式或第一方面第六种可能的实现方式,在第一方面第八种可能的实现方式中,所述方法还包括:在判断结果为否时,生成一个数据量不大于所述当前Flit的数据量的辅助Flit,所述辅助Flit的目的节点及Op ID与所述当前Flit的目的节点及Op ID相同;所述辅助Flit的Op Type为预设值,用于告知所述目的节点辅助Flit用于计数;将所述辅助Flit发送到下一节点。
结合第一方面第八种可能的实现方式,在第一方面第九种可能的实现方式中,所述生成一个数据量不大于所述当前Flit数据量的辅助Flit,包括:在根据所述当前Flit的Op Type判定需要生成辅助Flit时,生成一个数据量不大于所述当前Flit数据量的所述辅助Flit。
第二方面,本发明实施例提供了一种片上网络的Flit传输装置,该装置包括:接收单元,用于接收包括Op ID、Op Type及Payload的当前Flit;判断单元,用于在确定需要对所述接收单元接收到的所述当前Flit进行加速处理时,根据所述Op Type判断所述当前Flit的Payload是否会影响所述当前Flit的目的节点的执行结果,所述执行结果为所述目的节点执行与所述Op ID对应的任务得出的结果;发送单元,用于在所述判断单元生成的判断结果为是时,将所述当前Flit转发到下一节点;在所述判断单元生成的判断结果为否时,丢弃所述当前Flit。
结合第二方面,在第二方面第一种可能的实现方式中,所述判断单元包括:确定子单元、检测子单元和判断子单元;所述确定子单元,用于确定是否需要对所述接收单元接收到的所述当前Flit进行加速处理;所述检测子单元,用于在所述确定子单元确定需要对所述当前Flit进行加速处理时,检测是否存在与所述Op ID对应的缓存值,所述Op Type用于表示一种运算类型时,所述缓存值为对Op ID与所述当前Flit的Op ID相同的所有已传输Flit的Payload执行所述运算类型对应的运算的结果,或者,所述OpType为ADD_VTEX时,所述缓存值为Op ID与所述当前Flit的Op ID相同的已传输Flit的Payload;判断子单元,用于在所述检测子单元检测到与所述Op ID对应的缓存值且所述Op Type用于表示一种运算类型时,对所述当前Flit的Payload与所述缓存值执行所述运算类型对应的运算,并判断运算结果与所述检测子单元检测到的缓存值是否不同,或者,用于在所述检测子单元检测到与所述Op ID对应的缓存值且所述Op Type为ADD_VTEX时,判断所述缓存值中是否不包含所述当前Flit的Payload。
结合第二方面第一种可能的实现方式,在第二方面第二种可能的实现方式中,所述判断单元还包括:更新子单元,用于在判断子单元生成的判断结果为是,且所述Op Type用于表示一种运算类型时,将与所述当前Flit的Op ID对应的缓存值替换为所述运算结果;或者,在判断单元生成的判断结果为是,且所述Op Type为ADD_VTEX时,将所述当前Flit的Payload作为一个与所述当前Flit的Op ID对应的缓存值进行保存。
结合第二方面第一种可能的实现方式或第二方面第二种可能的实现方式,在第二方面第三种可能的实现方式中,所述发送单元,还用于在所述检测子单元未检测到与所述Op ID对应的缓存值时,将所述当前Flit转发到下一节点。
结合第二方面第一种可能的实现方式、第二方面第二种可能的实现方式或第二方面第三种可能的实现方式,在第二方面第四种可能的实现方式中,所述判断单元还包括:保存子单元,用于在所述检测子单元未检测到与所述Op ID对应的缓存值时,将所述当前Flit的Payload保存为与所述Op ID对应的缓存值。
结合第二方面第一种可能的实现方式、第二方面第二种可能的实现方式、第二方面第三种可能的实现方式或第二方面第四种可能的实现方式,在第二方面第五种可能的实现方式中,所述确定子单元,具体用于根据所述当前Flit的Op Type确定是否需要对所述当前Flit进行加速处理。
结合第二方面第一种可能的实现方式、第二方面第二种可能的实现方式、第二方面第三种可能的实现方式、第二方面第四种可能的实现方式或第二方面第五种可能的实现方式,在第二方面第六种可能的实现方式中,所述发送单元,还用于在所述确定子单元确定不需要对所述当前Flit进行加速处理时,将所述当前Flit转发到下一节点。
结合第二方面、结合第二方面第一种可能的实现方式、第二方面第二种可能的实现方式、第二方面第三种可能的实现方式、第二方面第四种可能的实现方式、第二方面第五种可能的实现方式或第二方面第六种可能的实现方式,在第二方面第七种可能的实现方式中,所述判断单元还包括:生成子单元,用于在所述判断子单元生成的判断结果为否时,生成一个数据量不大于所述当前Flit的数据量辅助Flit,所述辅助Flit的目的节点及Op ID与所述当前Flit的目的节点及Op ID相同;所述辅助Flit的Op Type为用于告知所述目的节点辅助Flit用于计数的预设值;所述发送单元,还用于将所述生成子单元生成的所述辅助Flit发送到下一节点。
结合第二方面第七种可能的实现方式,在第二方面第八种可能的实现方式中,所述生成子单元,具体用于在所述判断子单元生成的判断结果为否,且根据所述当前Flit的Op Type判定需要生成辅助Flit时,生成所述辅助Flit。
本发明实施例中,接收包括Op ID、Op Type及Payload的当前Flit;在确定需要对所述当前Flit进行加速处理时,根据所述Op Type判断所述当前Flit的Payload是否会影响所述当前Flit的目的节点的执行结果,所述执行结果为所述目的节点执行与所述Op ID对应的任务得出的结果;如果判断结果为是,则将所述当前Flit转发到下一节点;如果判断结果为否,则丢弃所述当前Flit。与现有技术相比,本发明实施例,如果当前Flit会对其目的节点的执行结果产生影响,才将当前Flit发送到目的节点,如果当前Flit不会对其目的节点的执行结果产生影响,此时可以直接舍弃当前Flit。舍弃不影响目的节点执行结果的当前Flit,不但能大大减少片上网络需要传输的Flit的数量,而且能减少目的节点的运算量,从而在整体上提高处理器的性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明片上网络的Flit传输方法一个实施例的流程图;
图2为本发明片上网络的Flit传输方法另一个实施例的流程图;
图3A为本发明片上网络的Flit传输装置一个实施例的示意图;
图3B为本发明片上网络的Flit传输装置判断单元一个实施例的示意图;
图3C为本发明片上网络的Flit传输装置判断单元另一个实施例的示意图;
图3D为本发明片上网络的Flit传输装置判断单元另一个实施例的示意图;
图3E为本发明片上网络的Flit传输装置判断单元另一个实施例的示意图;
图4为本发明片上网络的Flit传输装置另一个实施例的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,为本发明片上Flit传输方法一个实施例的流程图,该方法包括如下步骤:
步骤101,接收包括Op ID、Op Type及Payload的当前Flit。
在本发明实施例中,片上网络传输的Flit除现有技术中Flit所包括Flit type、Src Addr、Dst Addr、Payload等之外,还包括Operation ID与Operation Type。
其中,Flit type是指Flit的类型。Src Addr是指发送Flit的传输节点,即Flit传输的源节点。Dst Addr是指接收Flit的传输节点,即Flit传输的目的节点。Payload是指Flit的数据负载。
Operation ID,简称Op ID,是指Flit所属任务的任务编号。它用来标识不同的任务,且与一个应用发起的某次消息传输任务唯一对应,例如,应用发起某个消息规约(Reduce)操作,那么这个reduce操作内的所有消息都具有同一Operation ID。
Operation Type,简称Op Type,是指对Flit中Payload进行数据处理的操作类型。例如,对于一个Reduce任务,不同的Op Type可以对应ADD(求和),MAX(求最大值),MIN(求最小值)等操作。其中,Op Type与reduce操作之间的对应关系可以根据需要预先进行设定。通常情况下,当两个Flit的Op ID相同时,两个Flit中的Op Type也相同,也就是说,一个应用发起的某次消息传输任务只对应一种操作类型。
步骤102,在确定需要对所述当前Flit进行加速处理时,根据所述Op Type判断所述当前Flit的Payload是否会影响所述当前Flit的目的节点的执行结果,所述执行结果为所述目的节点执行与所述Op ID对应的任务得出的结果。
由于在实际使用中,片上网络传输的Flit多种多样,既存在需要进行加速处理的Flit,也存在一些不需要进行加速处理的Flit。例如,如果当前Flit仅仅是一次单纯的数据的传递,那么所述当前Flit就不需要加速处理也无法进行加速。因此可以首先判断是否需要对所述当前Flit进行加速处理。在所述当前Flit需要进行加速时,再进行加速处理。在实际使用中,由于Op Type表示了对Flit中Payload进行数据处理的操作类型。因此可以根据Op Type来判断是否需要对所述当前Flit进行加速处理。
由于片上网络传输的Flit多种多样,不同Flit的Op Type不同时,目的节点所要执行的任务不同,因此在判断所述当前Flit的Payload是否会影响所述当前Flit的目的节点的执行结果时,不同的Op Type通常对应不同的判断方式,其中每一种Op Type对应的判断方式可以根据需要预先设定。通常情况下,可以利用与当前Flit的Op ID对应的缓存值,来判断当前Flit的Payload是否会影响目的节点的执行结果。其中,所述缓存值的类型与OpType的类型相对应。例如,当所述Op Type用于表示一种运算类型时,与所述Op Type对应的缓存值可以为对Op ID与所述当前Flit的Op ID相同的所有已传输Flit的Payload执行所述运算类型对应的运算的结果;或者,当所述Op Type为为宽度优先搜索(Breadth FirstSearch,BFS)任务中的ADD_VTEX(添加图的顶点)时,与所述Op Type对应的缓存值可以为OpID与所述当前Flit的Op ID相同的已传输Flit的Payload,当所述Op Type为其他类型时,所述Op Type对应的缓存值也可以为其它可用于判断所述当前Flit的Payload是否会影响所述当前Flit的目的节点的执行结果的值。
如果经过检测,需要对所述当前Flit进行加速处理,则可以检测缓存中是否存在与所述Op ID对应的缓存值。如果所述缓存中存在与所述Op ID对应的缓存值,则说明片上网络已经传输过与所述当前Flit的Op ID及Op Type相同的已传输Flit,此时可以利用已经传输过的已传输Flit对所述当前Flit进行加速处理。与所述Op ID对应的缓存值的数量由Op Type决定。例如,如果所述Op Type为Reduce操作中的一种,那么与所述Op ID对应的缓存值只有一个;如果所述Op Type为ADD_VTEX,那么与所述Op ID对应的缓存值可能有多个,每一个缓存值表示一个已经添加的顶点。
利用缓存值判断所述当前Flit的Payload是否会影响所述当前Flit的目的节点的执行结果,所采用的判断方式主要包括两大类:
当所述Op Type用于表示一种运算类型时,与所述Op ID对应的缓存值通常只有一个。判断的过程包括:对所述当前Flit的Payload与所述缓存值执行所述运算类型对应的运算;然后判断运算结果是否与所述缓存值不同。其中,所述Op Type可以为表示求最大值的MAX,或者也可以为表示求最小值的MIN,或者也可以为表示求和的ADD等。例如,当所述OpType为MAX时,所述运算即为求Payload与该缓存值之间较大值的操作,相应地,如果Payload比该缓存值大,运算结果为Payload,如果Payload比该缓存值小,运算结果为该缓存值;在得出运算结果后,判断运算结果与缓存值是否不相同,如果不相同,则表明当前Flit的Payload会影响所述当前Flit的目的节点的执行结果,如果相同,则表明当前Flit的Payload不会影响所述当前Flit的目的节点的执行结果。
当所述Op Type为不表示运算类型的预设特定值时,与所述Op ID对应的缓存值通常为多个。判断的过程包括:直接判断所述当前Flit的Payload与所述缓存值是否满足与所述Op Type对应的预设关系。例如,当所述Op Type为ADD_VTEX时,与所述Op ID对应的缓存值可以有多个,此时可以直接判断所述缓存值中是否不包含所述Payload,如果不包含,则表明当前Flit的Payload会影响所述当前Flit的目的节点的执行结果,如果包含,则表明当前Flit的Payload不会影响所述当前Flit的目的节点的执行结果。
在此需要说明的是,每一个Op Type所对应的判断方式在片上网络对Flit进行传输之前都可以确定。由于在实际应用中,Op Type种类多种多样,不同的Op Type对应的判断方式各不相同,同一个Op Type也可以对应多个不同的判断方式,在说明书中就不再一一列举。
步骤103,如果判断结果为是,则将所述当前Flit转发到下一节点;如果判断结果为否,则丢弃所述当前Flit。
如果判断结果为是,则表明当前Flit的Payload会影响所述当前Flit的目的节点的执行结果,即,所述当前Flit不为冗余信息。此时需要将当前Flit发送给下一节点。例如,当Op Type为MAX时,所述运算为对所述当前Flit的Payload与缓存值进行求MAX操作,如果得到的运算结果与缓存值不同,则说明当前Flit的Payload更大,此时,当前Flit会对目的节点的执行结果产生影响,因此,需要将所述当前Flit发送给下一节点。又如,当Op Type为ADD_VTEX时,如果所述当前Flit的Payload与每一个缓存值不同,则说明所述当前Flit的Payload所表示的顶点尚未被添加,因此,需要将所述当前Flit发送给下一节点,以便于完成该顶点的添加。
如果判断结果为否,则表明当前Flit的Payload不会影响所述当前Flit的目的节点的执行结果,即,所述当前Flit为冗余信息。因此可以不再发送Flit。不再发送Flit可以在不影响目的节点执行结果的前提下,减少片上网络的Flat传输量,并降低目的节点的运算量。例如,当Op Type为MAX时,所述运算为对所述当前Flit的Payload与缓存值进行求MAX操作,如果得到的运算结果与缓存值相同,则说明当前Flit的Payload较小,即,已经传输过Payload更大的Flit。此时,如果将Flit发送给下一节点,只是增加了片上网络的Flit传输量及目的节点的运算量,不会对目的节点的执行结果产生影响,因此,可以不再发送所述当前Flit。又如,当Op Type为ADD_VTEX时,如果所述当前Flit的Payload与某一个缓存值相同,则说所述当前Flit的Payload所表示的顶点已经被添加过,此时,如果将Flit发送给下一节点,只是增加了片上网络的Flit传输量及目的节点的运算量,不会对目的节点的执行结果产生影响,因此,可以不再发送所述当前Flit。
从上述实施例可以看出,接收包括Op ID、Op Type及Payload的当前Flit;在确定需要对所述当前Flit进行加速处理时,根据所述Op Type判断所述当前Flit的Payload是否会影响所述当前Flit的目的节点的执行结果,所述执行结果为所述目的节点执行与所述OpID对应的任务得出的结果;如果判断结果为是,则将所述当前Flit转发到下一节点;如果判断结果为否,则丢弃所述当前Flit。与现有技术相比,本发明实施例,在当前Flit会对其目的节点的执行结果产生影响时,才将当前Flit发送到目的节点,如果当前Flit不会对其目的节点的执行结果产生影响,则可以直接舍弃当前Flit。舍弃不影响目的节点执行结果的当前Flit,不但能大大减少片上网络需要传输的Flit的数量,而且能减少目的节点的运算量,从而在整体上提高处理器的性能。
参见图2,为本发明片上Flit传输方法另一个实施例的流程图,该方法包括如下步骤:
步骤201,接收包括Op ID、Op Type及Payload的Flit。
步骤202,判断是否需要对所述当前Flit进行加速处理。
由于Op Type表示了对Flit中Payload进行数据处理的操作类型。因此可以根据OpType来判断是否需要对所述当前Flit进行加速处理。例如,可以预先设置一个可加速操作类型表,该可加速操作类型表中包含需要加速传输的Op Type,当接收到Flit之后,获取Flit的Op Type,然后判断预设可加速操作类型表中包含所述当前Flit的OpType,如果包含,则说明需要进行加速,如果不包含则说明不需要进行加速。
如果需要对所述当前Flit进行加速处理,则执行步骤203;如果根据Flit中的OpType得知,不需要对所述当前Flit进行加速处理,则执行步骤210。
步骤203,在根据判断结果确定需要对所述当前Flit进行加速处理时,检测是否存在与所述Op ID对应的缓存值。
其中,在所述Op Type用于表示一种运算类型时,所述缓存值为对Op ID与所述当前Flit的Op ID相同的所有已传输Flit的Payload执行所述运算类型对应的运算的结果;在所述Op Type为ADD_VTEX等不表示运算类型的特定值时,所述缓存值为Op ID与所述当前Flit的Op ID相同的已传输Flit的Payload。
在步骤203执行完后,如果所述缓存中存在与所述Op ID对应的缓存值,则执行步骤204;如果所述缓存中不存在与所述Op ID对应的缓存值,则可以执行步骤211及步骤212。
步骤204,在所述Op Type用于表示一种运算类型时,对所述当前Flit的Payload与所述缓存值执行所述运算类型对应的运算。
在实际使用中,可以预先设置一个运算类型表,该表中包含Op Type与运算方式之间的对应关系。当接收到Flit之后,获取Flit的Op Type,然后判断该运算类型表中是否包含所述当前Flit的Op Type,如果包含,则获取与所述当前Flit的Op Type对应的运算方式,然后使用所述运算方式对所述Payload进行运算。根据所述运算方式的不同,可以有缓存值参与运算,也可以没有缓存值参与运算。例如,所述当前Flit的Op Type为MAX时,所述运算方式为计算所述Payload与所述Op ID之间的最大值。
步骤205,判断运算结果与所述缓存值是否不同。
在获取到运算结果后,判断运算结果与所述缓存值是否不同。例如,当所述当前Flit的Op Type为MAX时,判断所述运算结果是否不等于所述缓存值。
在此需要说明的是,若所述Op Type为ADD_VTEX等不表示运算类型的特定值,在检测到与所述Op ID对应的缓存值时,可以无需经过运算过程而直接判断所述缓存值中是否不包含所述当前Flit的Payload。
如果所述运算结果与所述缓存值不同,则执行步骤206;如果所述运算结果与所述缓存值相同,则执行步骤207。为了给后续Flit的加速处理创造条件,如果所述运算结果与所述缓存值不同,或所述缓存值中不包含所述当前Flit的Payload,还可以执行步骤213。
步骤206,如果所述运算结果与所述缓存值不同,将所述当前Flit转发到下一节点。
如果所述运算结果与所述缓存值不同,则所述Payload会对目的节点的执行结果产生影响,此时可以将所述当前Flit转发到下一节点。
同样的,若所述Op Type为ADD_VTEX等不表示运算类型的特定值时,如果所述缓存值不包括所述Payload,则所述Payload同样会对目的节点的执行结果产生影响,此时同样可以将所述当前Flit转发到下一节点。
步骤207,如果所述运算结果与所述缓存值相同,则丢弃所述当前Flit。
如果所述运算结果与所述缓存值相同,所述Payload不会对目的节点的执行结果产生影响,此时可以丢弃所述当前Flit。
同样的,若所述Op Type为ADD_VTEX等不表示运算类型的特定值时,如果所述缓存值包括所述Payload,则所述Payload同样不会对目的节点的执行结果产生影响,此时同样可以丢弃所述当前Flit。
由于在实际应用中,目的节点事先可能预先知道将到达的Flit总数,直接丢弃所述当前Flit会导致目的节点因接收到的Flit为达到预定数量而陷入无限等待。为防止目的节点陷入无限等待,所述运算结果与所述缓存值相同,或者所述缓存值包括所述Payload时,还可以执行步骤208与步骤209。
步骤208,生成一个数据量不大于所述当前Flit的数据量辅助Flit。
其中,所述辅助Flit的目的节点及Op ID与所述当前Flit的目的节点及Op ID相同;所述辅助Flit的Op Type为用于告知所述目的节点辅助Flit用于计数预设值。例如,可以将所述当前Flit的Op Type修改为预设值,并且使Payload为空,得到一个辅助Flit,所述辅助Flit的Op Type为用于告知所述目的节点辅助Flit仅用于计数预设值,而无需进行其他处理。
在某些任务中,在目的节点事先并不知道将到达的Flit总数,可以直接丢弃所述当前Flit,而不必生成辅助Flit。例如,在BFS任务中,目标节点接收到的Flit总数并不确定,因此可以丢弃所述当前Flit。因此,在实际使用中可以首先判断是否需要生成辅助Flit,当需要生成辅助Flit时,再生成辅助Flit,如果不需要就不再生成辅助Flit。在实际使用中,可以根据所述当前Flit的Op Type判定需要生成辅助Flit。例如,可以预先设置一个辅助类型表,该辅助类型表中包含所有需要生成辅助Flit的OpType,如果当前Flit的OpType在该辅助类型表中,需要生成辅助Flit;如果当前Flit的Op Type不在该辅助类型表中,就不需要生成辅助Flit。
步骤209,将所述辅助Flit发送到下一节点。
在辅助Flit生成后将所述辅助Flit发送到下一节点,如果下一节点不为所述辅助Flit的目的节点,则所述下一节点继续对所述辅助Flit进行转发。当目的节点收到辅助Flit时,只需根据辅助Flit的Op ID进行消息计数而无需做其它处理。
从上述实施例可以看出,采用本发明实施例,不但能够对所述当前Flit的传输进行加速,而且能够为后续Flit的加速处理创造条件,这样不但能持续减少片上网络需要传输的Flit的数量,而且能持续减少目的节点的运算量,从而在整体上提高处理器的性能。
步骤210,在根据判断结果确定不需要对所述当前Flit进行加速处理时,将所述当前Flit转发到下一节点。
例如,所述当前Flit仅仅是一次单纯的数据的传递,则可以直接将所述当前Flit转发到下一节点。
步骤211,如果所述缓存中不存在与所述Op ID对应的缓存值,将所述当前Flit转发到下一节点。
如果所述缓存中不存在与所述Op ID对应的缓存值,则说明片上网络第一次传输该Op ID下的Flit,即,需要对所述当前Flit进行加速处理,但无法加速处理,此时可以直接将所述当前Flit转发到下一节点。
为给后续Flit的加速处理创造条件。如果不存在与所述Op ID对应的缓存值,还可以执行步骤212。
步骤212,如果所述缓存中不存在与所述Op ID对应的缓存值,将所述当前Flit的Payload保存为与所述Op ID对应的缓存值。
步骤213,在运算结果是否与所述缓存值不同时,将与所述当前Flit的Op ID对应的缓存值替换为所述运算结果。
例如,如果Op Type为MAX,在所有已传输Flit的Payload中,只能存在一个最大值,在此情况下,所述缓存值即为该最大值,在更新所述缓存值时,需要将缓存值替换为所述运算结果,即,在缓存中保存值更大的Payload,为后续Flit加速处理创造条件。
同样的,若所述Op Type为ADD_VTEX等不表示运算类型的特定值时,当所述缓存值中不包含所述当前Flit的Payload时,也可以将所述payload作为一个与所述当前Flit的OpID对应的缓存值进行保存。
例如,如果Op Type为ADD_VTEX,可能所有已传输Flit的Payload都代表同一个顶点,但是通常情况下不同的已传输Flit中Payload代表不同的顶点,在此情况下,每一个缓存值表示一个不同的顶点,在更新所述缓存值时,需要在保持原有缓存值不变的情况下,将当前Flit的Payload作为一个新的缓存值添加入缓存中。
与现有技术相比,本发明实施例,在当前Flit会对其目的节点的执行结果产生影响时,才将当前Flit发送到目的节点,如果当前Flit不会对其目的节点的执行结果产生影响,则可以直接舍弃当前Flit。舍弃不影响目的节点执行结果的当前Flit,不但能大大减少片上网络需要传输的Flit的数量,而且能减少目的节点的运算量,从而在整体上提高处理器的性能。
与本发明片上Flit传输方法相对应,本发明还提供了片上Flit传输装置。
参见图3A,为本发明片上Flit传输装置一个实施例示意图。
该装置包括:接收单元301,判断单元302,发送单元303。
其中,所述接收单元301,用于接收包括Op ID、Op Type及Payload的当前Flit。
所述判断单元302,用于在确定需要对所述接收单元301接收到的所述当前Flit进行加速处理时,根据所述Op Type判断所述当前Flit的Payload是否会影响所述当前Flit的目的节点的执行结果,所述执行结果为所述目的节点执行与所述Op ID对应的任务得出的结果。
发送单元303,用于在所述判断单元302生成的判断结果为是时,将所述当前Flit转发到下一节点;在所述判断单元302生成的判断结果为否时,丢弃所述当前Flit。
具体来说,如图3B所示,所述判断单元302可以包括:确定子单元3021,检测子单元3022,判断子单元3023。
所述确定子单元3021,用于确定是否需要对所述接收单元301接收到的所述当前Flit进行加速处理。具体来说,所述确定子单元3021,可以用于根据所述当前Flit的OpType确定是否需要对所述当前Flit进行加速处理。所述发送单元303,还可以用于在所述确定子单元3021确定不需要对所述当前Flit进行加速处理时,将所述当前Flit转发到下一节点。
所述检测子单元3022,用于在所述确定子单元3021确定需要对所述当前Flit进行加速处理时,检测是否存在与所述Op ID对应的缓存值,所述Op Type用于表示一种运算类型时,所述缓存值为对Op ID与所述当前Flit的Op ID相同的所有已传输Flit的Payload执行所述运算类型对应的运算的结果,或者,所述Op Type为ADD_VTEX时,所述缓存值为Op ID与所述当前Flit的Op ID相同的已传输Flit的Payload。所述发送单元303,还用于在所述检测子单元3022未检测到与所述Op ID对应的缓存值时,将所述当前Flit转发到下一节点。
所述判断子单元3023,用于在所述检测子单元3022检测到与所述Op ID对应的缓存值且所述Op Type用于表示一种运算类型时,对所述当前Flit的Payload与所述缓存值执行所述运算类型对应的运算,并判断运算结果与所述检测子单元3022检测到的缓存值是否不同,或者,用于在所述检测子单元3022检测到与所述Op ID对应的缓存值且所述Op Type为ADD_VTEX时,判断所述缓存值中是否不包含所述当前Flit的Payload。
如图3C所示,所述判断单元302还还可以包括:更新子单元3024。
所述更新子单元3024,用于在判断子单元3023生成的判断结果为是,且所述OpType用于表示一种运算类型时,将与所述当前Flit的Op ID对应的缓存值替换为所述运算结果;或者,在判断子单元3023生成的判断结果为是,且所述Op Type为ADD_VTEX时,将所述当前Flit的Payload作为一个与所述当前Flit的Op ID对应的缓存值进行保存。
如图3D所示,所述判断单元302还还可以包括:保存子单元3025。
所述保存子单元3025,用于在所述检测子单元3022未检测到与所述Op ID对应的缓存值时,将所述当前Flit的Payload保存为与所述Op ID对应的缓存值。
如图3E所示,所述判断单元302还还可以包括:生成子单元3026。
生成子单元3026,用于在所述判断子单元3023生成的判断结果为否时,生成一个数据量不大于所述当前Flit的数据量辅助Flit,所述辅助Flit的目的节点及Op ID与所述当前Flit的目的节点及Op ID相同;所述辅助Flit的Op Type为用于告知所述目的节点辅助Flit用于计数的预设值。所述发送单元303,还用于将所述生成子单元3026生成的所述辅助Flit发送到下一节点。
与现有技术相比,本发明实施例,在当前Flit会对其目的节点的执行结果产生影响时,才将当前Flit发送到目的节点,如果当前Flit不会对其目的节点的执行结果产生影响,则可以直接舍弃当前Flit。舍弃不影响目的节点执行结果的当前Flit,不但能大大减少片上网络需要传输的Flit的数量,而且能减少目的节点的运算量,从而在整体上提高处理器的性能。
参见图4,为本发明实施例提供的另一个片上Flit传输装置的结构示意图。
如图4所示,所述片上Flit传输装置包括:处理器401、存储器402及通信接口404等模块,各个模块之间通过总线403连接。
其中,所述总线403可以是外设部件互连标准(peripheral componentinterconnect,简称PCI)总线或扩展工业标准结构(extended industry standardarchitecture,简称EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
所述存储器402用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器402可能包含随机存取存储器(random access memory,简称RAM)存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
所述通信接口404,用于接收包括Op ID、Op Type及Payload的当前Flit。所述处理器401,用于在确定需要对所述当前Flit进行加速处理时,根据所述Op Type判断所述当前Flit的Payload是否会影响所述当前Flit的目的节点的执行结果,所述执行结果为所述目的节点执行与所述Op ID对应的任务得出的结果。所述通信接口404,还用于在判断结果为是时,将所述当前Flit转发到下一节点;在判断结果为否时,丢弃所述当前Flit。
所述处理器401,还用于在检测到与所述Op ID对应的缓存值,且所述Op Type用于表示一种运算类型时,对所述当前Flit的Payload与所述缓存值执行所述运算类型对应的运算,所述缓存值为对Op ID与所述当前Flit的Op ID相同的所有已传输Flit的Payload执行所述运算类型对应的运算的结果;并判断运算结果是否与所述缓存值不同;或者,在检测到与所述Op ID对应的缓存值,且所述Op Type为ADD_VTEX时,判断所述缓存值中是否不包含所述当前Flit的Payload,所述缓存值为Op ID与所述当前Flit的Op ID相同的已传输Flit的Payload。
所述处理器401,还用于在所述Op Type用于表示一种运算类型,且运算结果与所述缓存值不同时,将与所述当前Flit的Op ID对应的缓存值替换为所述运算结果。
所述处理器401,还用于当所述Op Type为ADD_VTEX,且所述缓存值中不包含所述当前Flit的Payload时,将所述payload作为一个与所述当前Flit的Op ID对应的缓存值进行保存。
所述通信接口404,还用于在所述处理器401未检测到与所述Op ID对应的缓存值时,将所述当前Flit转发到下一节点。
所述处理器401,还用于在所述处理器401未检测到与所述Op ID对应的缓存值时,将所述当前Flit的Payload作为与所述Op ID对应的缓存值进行保存。
所述处理器401,还用于根据所述当前Flit的Op Type确定需要对所述当前Flit进行加速处理。
所述通信接口404,还用于在确定不需要对所述当前Flit进行加速处理时,将所述当前Flit转发到下一节点。
所述处理器401,还用于在判断结果为否时,生成一个数据量不大于所述当前Flit的数据量的辅助Flit,所述辅助Flit的目的节点及Op ID与所述当前Flit的目的节点及OpID相同;所述辅助Flit的Op Type为预设值,用于告知所述目的节点辅助Flit用于计数;所述通信接口404,还用于将所述辅助Flit发送到下一节点。
所述处理器401,还用于在根据所述当前Flit的Op Type判定需要生成辅助Flit时,生成一个数据量不大于所述当前Flit数据量的所述辅助Flit。
从上述实施例可以看出,采用本实施例,只有在Flit会对目的节点的执行结果产生影响时,才将Flit发送要目的节点,否则可以直接舍弃Flit,这样不但能大大减少片上网络需要传输的Flit的数量,而且能减少目的节点的运算量,从而在整体上提高片上网络的性能。
本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该运算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括如果干指令用以使得一台运算机设备(可以是个人运算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述的本发明实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (17)

1.一种片上Flit传输方法,其特征在于,所述方法包括:
接收包括任务编号Op ID、操作类型Op Type及数据负载Payload的当前数据分片Flit;
在确定需要对所述当前Flit进行加速处理时,根据所述Op Type判断所述当前Flit的Payload是否会影响所述当前Flit的目的节点的执行结果,所述执行结果为所述目的节点执行与所述Op ID对应的任务得出的结果;
如果判断结果为是,则将所述当前Flit转发到下一节点;
如果判断结果为否,则丢弃所述当前Flit;
其中,所述根据所述Op Type判断所述当前Flit的Payload是否会影响所述当前Flit的目的节点的执行结果包括:
在检测到与所述Op ID对应的缓存值,且所述Op Type用于表示一种运算类型时,对所述当前Flit的Payload与所述缓存值执行所述运算类型对应的运算,所述缓存值为对Op ID与所述当前Flit的Op ID相同的所有已传输Flit的Payload执行所述运算类型对应的运算的结果;并判断运算结果是否与所述缓存值不同;
或者,在检测到与所述Op ID对应的缓存值,且所述Op Type为ADD_VTEX时,判断所述缓存值中是否不包含所述当前Flit的Payload,所述缓存值为Op ID与所述当前Flit的Op ID相同的已传输Flit的Payload。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
在所述Op Type用于表示一种运算类型,且运算结果与所述缓存值不同时,将与所述当前Flit的Op ID对应的缓存值替换为所述运算结果。
3.如权利要求1所述的方法,其特征在于,所述方法还包括:
当所述Op Type为ADD_VTEX,且所述缓存值中不包含所述当前Flit的Payload时,将所述Payload作为一个与所述当前Flit的Op ID对应的缓存值进行保存。
4.如权利要求1至3任一权利要求所述的方法,其特征在于,所述方法还包括:
在未检测到与所述Op ID对应的缓存值时,将所述当前Flit转发到下一节点。
5.如权利要求1至3任一权利要求所述的方法,其特征在于,所述方法还包括:
在未检测到与所述Op ID对应的缓存值时,将所述当前Flit的Payload作为与所述OpID对应的缓存值进行保存。
6.如权利要求1至3任一权利要求所述的方法,其特征在于,所述确定需要对所述 当前Flit进行加速处理包括:
根据所述当前Flit的Op Type确定需要对所述当前Flit进行加速处理。
7.如权利要求1至3任一权利要求所述的方法,其特征在于,所述方法还包括:
在确定不需要对所述当前Flit进行加速处理时,将所述当前Flit转发到下一节点。
8.如权利要求1至3任一权利要求所述的方法,其特征在于,所述方法还包括:
在判断结果为否时,生成一个数据量不大于所述当前Flit的数据量的辅助Flit,所述辅助Flit的目的节点及Op ID与所述当前Flit的目的节点及Op ID相同;所述辅助Flit的OpType为预设值,用于告知所述目的节点辅助Flit用于计数;
将所述辅助Flit发送到下一节点。
9.如权利要求8所述的方法,其特征在于,所述生成一个数据量不大于所述当前Flit数据量的辅助Flit,包括:
在根据所述当前Flit的Op Type判定需要生成辅助Flit时,生成一个数据量不大于所述当前Flit数据量的所述辅助Flit。
10.一种片上Flit传输装置,其特征在于,所述装置包括:
接收单元,用于接收包括Op ID、Op Type及Payload的当前Flit;
判断单元,用于在确定需要对所述接收单元接收到的所述当前Flit进行加速处理时,根据所述Op Type判断所述当前Flit的Payload是否会影响所述当前Flit的目的节点的执行结果,所述执行结果为所述目的节点执行与所述Op ID对应的任务得出的结果;
发送单元,用于在所述判断单元生成的判断结果为是时,将所述当前Flit转发到下一节点;在所述判断单元生成的判断结果为否时,丢弃所述当前Flit;
其中,所述判断单元包括:确定子单元、检测子单元和判断子单元;
所述确定子单元,用于确定是否需要对所述接收单元接收到的所述当前Flit进行加速处理;
所述检测子单元,用于在所述确定子单元确定需要对所述当前Flit进行加速处理时,检测是否存在与所述Op ID对应的缓存值,所述Op Type用于表示一种运算类型时,所述缓存值为对Op ID与所述当前Flit的Op ID相同的所有已传输Flit的Payload执行所述运算类型对应的运算的结果,或者,所述Op Type为ADD_VTEX时,所述缓存值为Op ID与所述当前Flit的Op ID相同的已传输Flit的Payload;
判断子单元,用于在所述检测子单元检测到与所述Op ID对应的缓存值且所述Op Type用于表示一种运算类型时,对所述当前Flit的Payload与所述缓存值执行所述运算类型对应的运算,并判断运算结果与所述检测子单元检测到的缓存值是否不同,或者,用于在所述检测子单元检测到与所述Op ID对应的缓存值且所述Op Type为ADD_VTEX时,判断所述缓存值中是否不包含所述当前Flit的Payload。
11.如权利要求10所述的装置,其特征在于,所述判断单元还包括:
更新子单元,用于在判断子单元生成的判断结果为是,且所述Op Type用于表示一种运算类型时,将与所述当前Flit的Op ID对应的缓存值替换为所述运算结果;或者,在判断单元生成的判断结果为是,且所述Op Type为ADD_VTEX时,将所述当前Flit的Payload作为一个与所述当前Flit的Op ID对应的缓存值进行保存。
12.如权利要求10或11所述的装置,其特征在于,
所述发送单元,还用于在所述检测子单元未检测到与所述Op ID对应的缓存值时,将所述当前Flit转发到下一节点。
13.如权利要求10或11所述的装置,其特征在于,所述判断单元还包括:
保存子单元,用于在所述检测子单元未检测到与所述Op ID对应的缓存值时,将所述当前Flit的Payload保存为与所述Op ID对应的缓存值。
14.如权利要求10或11所述的装置,其特征在于,
所述确定子单元,具体用于根据所述当前Flit的Op Type确定是否需要对所述当前Flit进行加速处理。
15.如权利要求10或11所述的装置,其特征在于,
所述发送单元,还用于在所述确定子单元确定不需要对所述当前Flit进行加速处理时,将所述当前Flit转发到下一节点。
16.如权利要求10或11所述的装置,其特征在于,所述判断单元还包括:
生成子单元,用于在所述判断子单元生成的判断结果为否时,生成一个数据量不大于所述当前Flit的数据量辅助Flit,所述辅助Flit的目的节点及Op ID与所述当前Flit的目的节点及Op ID相同;所述辅助Flit的Op Type为用于告知所述目的节点辅助Flit用于计数的预设值;
所述发送单元,还用于将所述生成子单元生成的所述辅助Flit发送到下一节点。
17.如权利要求16所述的装置,其特征在于,
所述生成子单元,具体用于在所述判断子单元生成的判断结果为否,且根据所述当前Flit的Op Type判定需要生成辅助Flit时,生成所述辅助Flit。
CN201410216331.9A 2014-05-21 2014-05-21 片上网络的Flit传输方法及装置 Active CN105095147B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201410216331.9A CN105095147B (zh) 2014-05-21 2014-05-21 片上网络的Flit传输方法及装置
PCT/CN2015/079283 WO2015176646A1 (zh) 2014-05-21 2015-05-19 片上网络的Flit传输方法及装置
EP15796473.5A EP3136251B1 (en) 2014-05-21 2015-05-19 Flit transmission method and device of network on chip
US15/356,373 US10129147B2 (en) 2014-05-21 2016-11-18 Network-on-chip flit transmission method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410216331.9A CN105095147B (zh) 2014-05-21 2014-05-21 片上网络的Flit传输方法及装置

Publications (2)

Publication Number Publication Date
CN105095147A CN105095147A (zh) 2015-11-25
CN105095147B true CN105095147B (zh) 2018-03-13

Family

ID=54553424

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410216331.9A Active CN105095147B (zh) 2014-05-21 2014-05-21 片上网络的Flit传输方法及装置

Country Status (4)

Country Link
US (1) US10129147B2 (zh)
EP (1) EP3136251B1 (zh)
CN (1) CN105095147B (zh)
WO (1) WO2015176646A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230236992A1 (en) * 2022-01-21 2023-07-27 Arm Limited Data elision
CN117440053B (zh) * 2023-12-21 2024-02-27 沐曦集成电路(上海)有限公司 一种多级跨die访问方法及系统

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8024481B2 (en) 2000-04-17 2011-09-20 Circadence Corporation System and method for reducing traffic and congestion on distributed interactive simulation networks
US7603449B1 (en) 2002-06-10 2009-10-13 Crossroads Systems, Inc. System and method for inquiry caching
JP2004179877A (ja) * 2002-11-26 2004-06-24 Sony Corp 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
US7712006B1 (en) * 2002-12-04 2010-05-04 Silicon Graphics International System and method for conveying information
US8949577B2 (en) * 2010-05-28 2015-02-03 International Business Machines Corporation Performing a deterministic reduction operation in a parallel computer
JP5543894B2 (ja) * 2010-10-21 2014-07-09 ルネサスエレクトロニクス株式会社 NoCシステム及び入力切替装置
CN102387080A (zh) * 2011-10-21 2012-03-21 上海交通大学 片上网络虫洞路由容错方法
CN102521201A (zh) * 2011-11-16 2012-06-27 刘大可 多核数字信号处理器片上系统及数据传输方法
CN102567278A (zh) * 2011-12-29 2012-07-11 中国科学院计算技术研究所 一种片上多核数据传输方法和装置
US8885510B2 (en) * 2012-10-09 2014-11-11 Netspeed Systems Heterogeneous channel capacities in an interconnect
DE112013004094B4 (de) * 2012-10-22 2018-03-29 Intel Corporation Hochleistungs-Zusammenschaltungs-Bitübertragungsschicht
CN103345461B (zh) * 2013-04-27 2016-01-20 电子科技大学 基于fpga的带有加速器的多核处理器片上网络系统
CN103618673A (zh) * 2013-11-15 2014-03-05 中国航空无线电电子研究所 一种保障服务质量的片上网络路由方法
CN103729332B (zh) * 2013-12-23 2016-09-14 北京工业大学 一种基于MoT结构的低功耗NoC路由方法
US9256543B2 (en) * 2014-01-15 2016-02-09 Oxide Interactive Llc Method and system for efficient communication and command system for deferred operation

Also Published As

Publication number Publication date
EP3136251A1 (en) 2017-03-01
WO2015176646A1 (zh) 2015-11-26
US10129147B2 (en) 2018-11-13
EP3136251A4 (en) 2017-06-14
US20170070430A1 (en) 2017-03-09
EP3136251B1 (en) 2023-03-15
CN105095147A (zh) 2015-11-25

Similar Documents

Publication Publication Date Title
CN104301184B (zh) 链路的健康检查方法和装置
US9838277B2 (en) Packet copy management for service chain processing within virtual processing systems
US9571420B2 (en) Integrated NoC for performing data communication and NoC functions
CN109408257B (zh) 用于片上网络noc的数据传输方法、装置及电子设备
US10341264B2 (en) Technologies for scalable packet reception and transmission
WO2014113646A1 (en) Automatic deadlock detection and avoidance in a system interconnect by capturing internal dependencies of ip cores using high level specification
CN102752198A (zh) 多核报文转发方法、多核处理器及网络设备
US9781043B2 (en) Identification of internal dependencies within system components for evaluating potential protocol level deadlocks
US7649845B2 (en) Handling hot spots in interconnection networks
CN106341338A (zh) 一种报文的转发方法及装置
CN105095147B (zh) 片上网络的Flit传输方法及装置
CN106445855A (zh) 一种非对称处理系统下多核共用串口的方法及系统
CN104123173B (zh) 一种实现虚拟机间通信的方法及装置
CN107786458A (zh) 基于dpdk的多端口准入准出的方法
US10339091B2 (en) Packet data processing method, apparatus, and system
JP2009123202A (ja) データを処理するためのプロセッサ‐サーバ・ハイブリッド・システムおよび方法
CN106161522A (zh) 一种网络设备间的通信方法、网络设备及分布式网络
CN107547451A (zh) 一种多路服务器、cpu连接方法及装置
FR3057127A1 (fr) Processeur adapte pour un reseau ethernet commute deterministe
CN107800579B (zh) 一种全路径探测方法、装置和系统
CN109587087A (zh) 一种报文处理方法及系统
CN105684378A (zh) 在网络安全装置中高效地复制分组
CN116306407B (zh) 片上网络noc的验证方法、装置、设备和存储介质
CN110166373B (zh) 源物理机向目的物理机发数据的方法、装置、介质和系统
EP3893122A1 (en) Network processor and message processing method

Legal Events

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