CN114124814B - 片上网络、控制及配置方法、装置、路由单元及设备 - Google Patents

片上网络、控制及配置方法、装置、路由单元及设备 Download PDF

Info

Publication number
CN114124814B
CN114124814B CN202111398578.3A CN202111398578A CN114124814B CN 114124814 B CN114124814 B CN 114124814B CN 202111398578 A CN202111398578 A CN 202111398578A CN 114124814 B CN114124814 B CN 114124814B
Authority
CN
China
Prior art keywords
routing
address
unit
routing unit
communication
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
CN202111398578.3A
Other languages
English (en)
Other versions
CN114124814A (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.)
Haiguang Information Technology Co Ltd
Original Assignee
Haiguang Information 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 Haiguang Information Technology Co Ltd filed Critical Haiguang Information Technology Co Ltd
Priority to CN202111398578.3A priority Critical patent/CN114124814B/zh
Publication of CN114124814A publication Critical patent/CN114124814A/zh
Application granted granted Critical
Publication of CN114124814B publication Critical patent/CN114124814B/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/54Organization of routing tables
    • 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
    • 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
    • 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)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一种片上网络、片上网络的路由控制方法、片上网络的路由配置方法、片上网络的路由配置装置、片上网络的第一路由单元、片上网络的路由控制装置、路由设备和电子设备。该片上网络包括:多个路由单元,每个路由单元包括多个交互端口并且与至少一个其他的路由单元通过多个交互端口至少之一通信连接;多个通信部件,多个通信部件每个与多个路由单元之一通信连接,多个路由单元中第一路由单元包括路由表,且配置为在接收到多个通信部件之间的访问请求时,根据访问请求包括的路由目的地址以及基于路由表,从第一路由单元的多个交互端口中确定输出端口,并且通过输出端口发送访问请求。该片上网络可以简化路由控制,减少片上网络需要维护的路由表的数量。

Description

片上网络、控制及配置方法、装置、路由单元及设备
技术领域
本公开的实施例涉及一种片上网络、片上网络的路由控制方法、片上网络的路由配置方法、片上网络的路由单元、片上网络的路由控制装置、路由设备和电子设备。
背景技术
系统级芯片(System On Chip,SOC)中有很多主设备(master)和从设备(slave)。这些主设备和从设备通过数据交换和协同合作实现一系列的功能。由于主设备/从设备之间有数据交换和协同合作,因此主设备/从设备之间需要通信。
片上网络(Network On Chip,NOC)是一种适用于SOC内部的通信方法,其可以提高通信效率,降低功耗。
发明内容
本公开至少一个实施例提供一种片上网络,包括:多个路由单元,每个路由单元包括多个交互端口并且与至少一个其他的路由单元通过多个交互端口至少之一通信连接;多个通信部件,多个通信部件每个与多个路由单元之一通信连接,从而能够通过片上网络通信,多个路由单元中第一路由单元包括路由表,且配置为在接收到多个通信部件之间的访问请求时,根据访问请求包括的路由目的地址以及基于路由表,从第一路由单元的多个交互端口中确定输出端口,并且通过输出端口发送访问请求,路由目的地址为多个通信部件中作为访问请求的访问对象的通信部件在地址空间中的地址。
例如,在本公开一实施例提供的片上网络中,第一路由单元的路由表包括第一对应关系表,第一对应关系表包括地址空间中至少一个地址与第一路由单元的多个交互端口中至少一个交互端口的第一对应关系,第一路由单元配置为在第一对应关系表中查询,根据路由目的地址,从多个交互端口中确定与路由目的地址对应的输出端口。
例如,在本公开一实施例提供的片上网络中,第一路由单元的输出端口与多个通信部件中的一个直接连接。
例如,在本公开一实施例提供的片上网络中,地址空间包括至少一个地址段,地址段包括至少一个地址,第一路由单元的路由表包括第二对应关系表,第二对应关系表包括地址空间中至少一个地址段与第一路由单元的多个交互端口中至少一个交互端口的第二对应关系,第一路由单元配置为在第二对应关系表中查询,根据路由目的地址所属的地址段,从多个交互端口中确定与路由目的地址对应的输出端口。
例如,在本公开一实施例提供的片上网络中,地址空间包括多个地址段,在第二关系对应表中,多个地址段中每个与多个交互端口中一个交互端口对应。
例如,在本公开一实施例提供的片上网络中,第一路由单元的每个输出端口与多个路由单元中的一个路由单元直接连接。
例如,在本公开一实施例提供的片上网络中,多个路由单元排布为阵列结构,多个通信部件分别与阵列中至少一个路由单元通信连接。
例如,在本公开一实施例提供的片上网络中,多个通信部件包括至少一个第一通信部件和至少一个第二通信部件;访问请求为从第一通信部件到第二通信部件的访问请求。
本公开至少一个实施例提供一种片上网络的路由控制方法,片上网络包括多个路由单元和多个通信部件,每个路由单元包括多个交互端口并且与至少一个其他的路由单元通过多个交互端口至少之一通信连接,多个路由单元中第一路由单元包括路由表,多个通信部件通过片上网络进行通信,方法包括:第一路由单元接收来自多个通信部件之一的访问请求,根据访问请求包括的路由目的地址以及基于路由表,从第一路由单元的多个交互端口中确定输出端口,路由目的地址为多个通信部件中作为访问请求的访问对象的通信部件在地址空间中的地址,以及通过输出端口发送访问请求。
例如,在本公开一实施例提供的路由控制方法中,第一路由单元的路由表包括第一对应关系表,第一对应关系表包括地址空间中至少一个地址与第一路由单元的多个交互端口中至少一个交互端口的第一对应关系;根据访问请求包括的路由目的地址以及基于路由表,从至少一个路由单元的多个交互端口中确定输出端口,包括:在第一对应关系表中查询,根据路由目的地址,从多个交互端口中确定与路由目的地址对应的输出端口。
例如,在本公开一实施例提供的路由控制方法中,地址空间包括至少一个地址段,地址段包括至少一个地址,第一路由单元的路由表包括第二对应关系表,第二对应关系表包括地址空间中至少一个地址段与第一路由单元的多个交互端口中至少一个交互端口的第二对应关系,根据访问请求包括的路由目的地址以及基于路由表,从至少一个路由单元的多个交互端口中确定输出端口,包括:在第二对应关系表中查询,根据路由目的地址所属的地址段,从多个交互端口中确定与路由目的地址对应的输出端口。
本公开至少一个实施例提供一种片上网络的路由配置方法,片上网络包括多个路由单元和多个通信部件,每个路由单元包括多个交互端口并且与至少一个其他的路由单元通过多个交互端口至少之一通信连接,多个通信部件通过片上网络进行通信,该方法包括:为多个路由单元中第一路由单元创建路由表,路由表配置为使得根据访问请求包括的路由目的地址,从第一路由单元的多个交互端口中确定输出端口。
例如,在本公开一实施例提供的路由配置方法中,为多个路由单元中第一路由单元创建路由表,包括:为多个通信部件分别分配地址;确定第一路由单元的交互端口与多个通信部件分配的地址的对应关系,并且根据对应关系,创建路由表。
例如,在本公开一实施例提供的路由配置方法中,确定所述第一路由单元的交互端口与所述多个通信部件分配的地址的对应关系,包括:从多个通信部件选择发起访问请求的第一通信部件和接收访问请求的第二通信部件;根据片上网络、第一通信部件和第二通信部件之间的拓扑结构,确定访问请求在片上网络中的流动路径,流动路径经过第一路由单元;基于流动路径和多个通信部件分别分配的地址,确定对应关系。
本公开至少一个实施例提供一种片上网络的路由配置装置,其中,片上网络包括多个路由单元和多个通信部件,每个路由单元包括多个交互端口并且与至少一个其他的路由单元通过多个交互端口至少之一通信连接,多个通信部件通过片上网络进行通信,路由配置装置包括:路由表创建单元,配置为为多个路由单元中第一路由单元创建路由表,路由表配置为使得根据访问请求包括的路由目的地址,从第一路由单元的多个交互端口中确定输出端口。
本公开至少一个实施例提供一种片上网络的第一路由单元,片上网络包括多个路由单元和多个通信部件,每个路由单元包括多个交互端口并且与至少一个其他的路由单元通过多个交互端口至少之一通信连接,多个路由单元中第一路由单元包括路由表,多个通信部件通过片上网络进行通信,第一路由单元包括:接收子单元,配置为经由第一路由单元接收来自多个通信部件之一的访问请求,端口确定子单元,配置为根据访问请求包括的路由目的地址以及基于路由表,从第一路由单元的多个交互端口中确定输出端口,路由目的地址为多个通信部件中作为访问请求的访问对象的通信部件在地址空间中的地址以及发送子单元,配置为通过输出端口发送访问请求。
本公开至少一个实施例提供一种路由设备,包括处理器;存储器,包括一个或多个计算机程序指令和路由表;其中,一个或多个计算机程序指令被存储在存储器中并被配置为由处理器执行,一个或多个计算机程序指令包括用于实现本公开任一实施例提供的片上网络的路由控制方法的指令。
本公开至少一个实施例提供一种电子设备,包括处理器;存储器,包括一个或多个计算机程序指令和路由表;其中,一个或多个计算机程序指令被存储在所述存储器中,并由所述处理器执行时实现本公开任一实施例提供的的片上网络的路由配置方法的指令。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
图1A示出了一种基于点到点的总线互连的NOC示意图;
图1B示出了本公开至少一实施例提供的一种片上网络的拓扑结构的示意图;
图2示出了本公开至少一实施例提供的片上网络的路由控制方法的流程图;
图3示出了本公开至少一实施例提供的为多个路由单元中第一路由单元创建路由表的方法流程图;
图4示出了本公开至少一实施例提供的图3中步骤S32的方法流程图;
图5示出了本公开至少一个实施例提供的一种片上网络的路由配置装置500的示意框图;
图6示出了本公开至少一个实施例提供的一种片上网络的第一路由单元的示意框图;
图7为本公开一些实施例提供的一种路由设备的示意框图;
图8A示出了本公开至少一个实施例提供的一种电子设备的示意框图;以及
图8B示出了本公开至少一个实施例提供的另一种电子设备的示意框图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
总线互连是为了解决不同主设备/从设备之间通讯的一种技术。在NOC中可以采用基于点到点的总线互连。
图1A示出了一种基于点到点的总线互连的NOC示意图。
如图1A所示,在基于点到点的总线互连NOC中,各个主设备master0~master n中每个master i(0≤i≤n)分别与各个从设备slave 0~slave n中的每个slave j(0≤j≤n)通过连线通信。从图1A中可以看出,这种基于点到点的总线互连NOC中每个点(即主设备或者从设备)的连线太多,会导致总线拥塞严重,会导致在后端实现的时候布局布线非常困难。
由于基于点到点的总线互连方式的NOC存在上述问题,因此,提出一种基于路由的总线互连方式。
在基于路由的总线互连方式中,每个主设备只跟某个路由单元相连。而每个路由单元上面连接的主设备或者路由单元的数量也不会太多,因而可以缓解总线拥塞的问题,并且也有助于实现收敛时序,能够适用于较高的系统主频。本文中的路由单元指的是所有负责传输数据包的分发单元,例如路由器。如果经过某个NOC组件之后,数据包可能存在两个及两个以上的路径,由此需要选择或仲裁某个路径,这种NOC组件就属于本文所指的路由单元。在基于路由的总线互连方式中,每个路由单元例如有多个端口,每个端口对应唯一的编号。每个主设备端口都要维护一个路由表,路由表的路由信息是由路由路径上路由单元的端口号组成,每个主设备端口需要维护整个NOC所有的路由信息。路由信息的长度由需要传输的数据包的路由路径的长度决定。路由单元根据路由端口或者主设备端口传过来的路由信息决定路由方向。
例如,根据主设备需要访问的目的地址,确定需要经过的路由单元和对应的路由单元的端口。再按照路由单元的顺序和路由单元的端口号,最终形成了一个不定长度的字符串的路由信息。每个收到字符串的路由单元逐个解析这个字符串,判断将数据包该往哪个端口传送,例如,采用E(东)、S(南)、W(西)、N(北)和X(弹出)分别表示一个路由单元的四个端口以及弹出操作时,则在一个路由单元(路由节点)针对某个路由终点节点的路由表例如为NENNX这样的多个字符串,NENNX表示从当前路由单元到终点节点之后路径为在随后的5个路由单元分别在N端口、E端口、N端口、N端口输出以及最后弹出。
这种基于路由的总线互连方式需要维护多个路由表,并且路由信息的长度千变万化,硬件实现难度很大。
为此,本公开的实施例提供另一种基于路由的总线互连方式的片上网络。该片上网络包括多个路由单元和多个通信部件。每个路由单元包括多个交互端口并且与至少一个其他的路由单元通过多个交互端口至少之一通信连接。多个通信部件每个与多个路由单元之一通信连接,从而能够通过片上网络通信。多个路由单元中第一路由单元包括路由表,且配置为在接收到多个通信部件之间的访问请求时,根据访问请求包括的路由目的地址以及基于路由表,从第一路由单元的多个交互端口中确定输出端口,并且通过输出端口发送访问请求,路由目的地址为多个通信部件中作为访问请求的访问对象的通信部件在地址空间中的地址。该片上网络通过在路由单元采用目的地址而非考虑片上网络中路由路径上的终点节点来构建路由表,由此可以简化路由控制,减少片上网络需要维护的路由表的数量,以及降低硬件实现难度。这里,“第一路由单元”可以为片上网络中任一可用的路由单元。
图1B示出了本公开至少一实施例提供的一种片上网络的拓扑结构100的示意图。
如图1B所示,该片上网络的拓扑结构100可以包括多个路由单元(图1B中每个圆代表一个路由单元)和多个通信部件。
多个通信部件包括至少一个主设备和至少一个从设备。如图1B所示,多个通信部件包括多个主设备master0、master1、master2以及多个从设备slave0、slave1、slave2、slave3、slave4以及slave5。需要理解的是,在本文中,将发送访问请求的通信部件作为主设备,将接收访问请求的通信部件作为从设备。同一个通信部件在不同的访问请求的身份可以不同。例如,在一次信息交互的过程中,某通信部件发出访问请求,则此时该通信部件作为主设备,在另一次信息交互过程中,该通信部件接收访问请求,则此时该通信部件作为从设备。图1B所示的主设备和从设备仅为为便于理解本发明而作出的示意性表示。
多个路由单元中每个路由单元包括多个交互端口并且与至少一个其他的路由单元通过多个交互端口至少之一通信连接。
在本公开的一些实施例中,多个路由单元可以包括相同数量的交互端口,也可以包括不同数量的交互端口。例如,每个路由单元包括K(K为大于等于1的整数)个交互端口。又例如,一些路由单元包括N(N为大于等于1的整数)个交互端口,另一些路由单元包括M(M为大于等于1且不等于N的整数)个交互端口,这里K、N和M都为正整数(例如大于等于2)。
如图1B所示,路由单元R0包括4个交互端口,该4个交互端口分别为Port0、Port1、Port2以及Port3。路由单元R0通过端口Port1与路由单元R1通信连接,通过端口Port2与路由单元R2通信连接,以及通过端口Port3与路由单元R3通信连接。
如图1B所示,多个路由单元中的一些路由单元除与至少一个其他的路由单元通过多个交互端口至少之一通信连接之外,还可以与至少一个通信部件通信连接。例如,与通信部件紧邻的路由单元中的一个端口与通信部件连接。如图1B所示,路由单元R0通过端口Port0与通信部件master0通信连接,以接收来自master0的通信数据。
多个通信部件每个与多个路由单元之一通信连接,从而能够通过片上网络通信。
例如,通信部件master0、master1、master2、slave0、slave1、slave2、slave3、slave4以及slave5中的每个与与其紧邻的路由单元通信连接,从而能够通过片上网络通信。需要理解的是,虽然图1B所示的拓扑结构100中,通信部件中的每个与与其紧邻的路由单元通信连接,但是这并不用于限制本公开的拓扑结构,也即,通信部件可以与任意的路由单元通信连接,本领域技术人员可以根据实际需要设计拓扑结构。
在本公开中,多个路由单元中至少一个单元(例如,以“第一路由单元”指代)包括路由表,即配置有路由表供路由操作使用,且配置为在接收到多个通信部件之间的访问请求时,根据访问请求包括的路由目的地址以及基于路由表,从第一路由单元的多个交互端口中确定输出端口,并且通过输出端口发送访问请求,路由目的地址为多个通信部件中作为访问请求的访问对象的通信部件在地址空间中的地址。
例如,该第一路由单元可以是片上网络中的每个路由单元,或者也可以是片上网络中的部分路由单元。
在本公开的一些实施例中,路由表由路由单元维护而不是由通信部件的端口例如主设备端口维护,从而减少了NOC需要维护的路由表的数量,并且路由单元根据路由表直接确定出输出端口,而不用考虑路由信息(即,路由路径),从而简化了路由控制,缓解了由于路由信息的长度千差万别导致的硬件实现难度大的问题。
在本公开的一些实施例中,第一路由单元的路由表包括第一对应关系表,第一对应关系表包括地址空间中至少一个地址与第一路由单元的多个交互端口中至少一个交互端口的第一对应关系,第一路由单元配置为在第一对应关系表中查询,根据路由目的地址,从多个交互端口中确定与路由目的地址对应的输出端口。
例如,第一对应关系表中地址空间中的至少一个地址与第一路由单元的多个交互端口一一对应。例如第一路由单元为路由单元R0,在该实施例中,路由单元R0维护第一对应关系表。下表一示出了在该实施例中路由单元R0中的第一对应关系表的示意性表示。
表一
地址 交互端口
16’h0001 Port1
16’h0002 Port1
16’h0010 Port2
16’h1000 Port3
…… ……
在表一中,字段“地址”中的每个地址表示路由目的地址,字段“交互端口”中的每个表示用于输出访问请求的输出端口。
在本公开的一些实施例中,访问请求包括路由目的地址,路由目的地址为作为访问请求的访问对象的通信部件在地址空间中的地址。例如,多个通信部件包括至少一个第一通信部件和至少一个第二通信部件,访问请求为从第一通信部件到第二通信部件的访问请求。由于访问请求为从第一通信部件到第二通信部件的访问请求,因此,第二通信部件为访问对象,访问请求中的路由目的地址为第二通信部件的地址。
例如,多个通信部件之间的访问请求是主设备向从设备请求数据的访问请求,即,从设备作为访问请求的访问对象,该访问请求中的路由目的地址为访问对象(即从设备)的地址。在本文中,地址空间是指多个通信部件所涵盖的全部地址。
例如,若访问请求中的路由目的地址为16’h0001,查询表一所示的第一对应关系表可确定用于输出该访问请求的输出端口为Port1。
需要理解的是,表一仅是为了便于理解而提供的第一对应关系表的示意性表示,其并不代表实际的第一对应关系表。第一对应关系表中地址和交互端口是根据实际情况而设置的。
下面以路由单元R0和R2为第一路由单元以及主设备master0发出访问从设备slave1的访问请求为例,结合表一对第一路由单元作进一步说明。
例如,路由单元R0接收到来自主设备maste0用于访问从设备slave1的访问请求时,根据访问请求包括的路由目的地址(即,slave1的地址,例如为16’h0010),查询路由单元R0维护的路由表,根据路由表从Port0、Port1、Port2以及Port3中确定输出该访问请求的输出端口为Port2,并且通过输出端口Port2发送该访问请求。如图1B所示,与输出端口Port2连接的路由单元为R2,因此路由单元R2通过自身的端口Port4接收该访问请求。然后,路由单元R2查询自身维护的路由表,确定与路由目标地址16’h0010对应的输出端口,例如为Port5,以及从输出端口Port5输出该访问请求,以便该访问请求进入下一个路由单元,从而将访问请求传输至slave1。
在本公开的一些实施例中,包括第一对应关系表的第一路由单元的输出端口与多个通信部件中的一个直接连接。例如,在图1B所示的片上网络中,作为第一路由单元的路由单元R4、R5、R6、R7、R8和R9的输出端口分别与从设备slave0、slave1、slave2、slave3、slave4以及slave5直接连接,作为第一路由单元的路由单元R4、R5、R6、R7、R8和R9中各自包括第一对应关系表。
在本公开的另一些实施例中,除输出端口与多个通信部件中的一个直接连接的路由单元包括第一对应关系表外,片上网络中的其他路由单元也可以包括第一对应关系表。例如,片上网络中的每个路由单元都包括第一对应关系表。
在本公开的另一些实施例中,地址空间包括至少一个地址段,地址段包括至少一个地址,第一路由单元的路由表包括第二对应关系表,第二对应关系表包括地址空间中至少一个地址段与第一路由单元的多个交互端口中至少一个端口的第二对应关系,第一路由单元配置为在第二对应关系表中查询,根据路由目的地址所属的地址段,从多个交互端口中确定与路由目的地址对应的输出端口。在该实施例中,由于至少一个地址作为一个地址段,从而根据第二对应关系和路由目的地址所属的地址段来确定输出端口,从而简化了路由单元中的路由表,使得路由表更加简洁,节省存储空间。
例如,地址段为地址空间中一段连续的地址,或者地址段也可以是多个离散地地址。例如,具有相同高位的地址属于同一个地址段。例如,在图1B所示的片上网络中,从设备slave0、slave1和slave2各自的地址属于同一个地址段,从设备slave3、slave4和slave5属于同一个地址段。
在本公开的一些实施例中,地址空间包括多个地址段,在第二关系对应表中,多个地址段中每个与多个交互端口中一个端口对应。
例如,在第二对应关系表中,多个地址段与多个交互端口一一对应。例如,第一路由单元为路由单元R0,路由单元R0维护第二对应关系表。下表二示出了在该实施例中路由单元R0中的第二对应关系表的示意性表示。
表二
地址段 交互端口
16’h0001-16’h000F Port1
16’h0010-16’h00FF Port2
…… ……
例如,若访问请求中的路由目的地址为16’h0001,该路由目的地址所属的地址段为16’h0001-16’h000F,则用于输出该访问请求的输出端口为Port1。
需要理解的是,表二仅是为了便于理解而提供的第二对应关系表的示意性表示,其并不代表实际的第二对应关系表。第二对应关系表中地址段和交互端口是根据实际情况而设置的。
例如,从设备slave0、slave1和slave2各自的地址属于同一个地址段(16’h0010-16’h00FF),slave3、slave4和slave5属于同一个地址段(16’h0001-16’h000F),路由单元R0针对这6个从设备只需要针对从设备slave0、slave1、slave2以及slave3、slave4、slave5维护表二示出的两组信息,只需要根据master0发送的地址信息,决定从路由单元R0的端口Port1输出还是端口Port2输出,从而简化了路由表,进一步简化了路由控制。
例如,物理距离在预设范围内的多个通信部件属于同一个地址段。又例如,位于同一行或者同一列的通信部件属于同一个地址段。
下面以路由单元R0和R2为第一路由单元,包括第二对应关系表以及主设备master0发出访问从设备slave1的访问请求为例,结合表二对该实施例中的第一路由单元作进一步说明。
例如,路由单元R0接收到来自主设备maste0用于访问slave1的访问请求时,访问请求包括路由目的地址(即,slave1的地址,例如为16’h0010),路由单元R0确定该路由目的地址16’h0010所属的地址段为16’h0010-16’h00FF,从而根据路由单元R0维护的路由表,确定与该地址段16’h0010-16’h00FF对应的用于输出该访问请求的输出端口为Port2,并且通过输出端口Port2发送该访问请求。如图1B所示,与输出端口Port2连接的路由单元为R2,因此路由单元R2通过自身的端口Port4接收该访问请求。然后,路由单元R2查询自身维护的路由表,确定与路由目标地址16’h0010对应的输出端口,例如为Port5,以及从输出端口Port5输出该访问请求,以便该访问请求进入下一个路由单元,从而将访问请求最终传输至slave1。
在本公开的一些实施例中,包括第二对应关系表的第一路由单元的每个输出端口与多个路由单元中的一个路由单元直接连接。例如,在图1B所示的片上网络中,第一路由单元R2的每个输出端口都与一个路由单元直接连接,第一路由单元R2中包括第二对应关系表。
在本公开的另一些实施例中,除每个输出端口与多个路由单元中的一个路由单元直接连接的路由单元之外,其他路由单元也可以包括第二对应关系表。例如,片上网络中每个路由单元都包括第二对应关系表。
在本公开的一些实施例中,输出端口与所述多个通信部件中的一个直接连接的第一路由单元包括第一对应关系表,以及每个输出端口与多个路由单元中的一个路由单元直接连接的路由单元包括第二对应关系表。该实施例中,针对不同的路由单元设置不同的对应关系表,灵活应用第一对应关系表和第二对应关系表。
在本公开的另一些实施例中,同一个路由单元可以即包括第一对应关系表也包括第二对应关系表。例如,对于部分输出端口与多个通信部件中的一个直接连接,并且其他输出端口与其他路由单元连接的的第一路由单元包括第一对应关系表和第二对应关系表,这样可以通过第一对应关系表记录输出端口和slave之间的一一对应关系,通过第二对应关系表记录地址段和输出端口之间的一一对应关系。例如,路由单元R5即包括第一对应关系表也包括第二对应关系表。
在本公开的一些实施例中,如图1B所示,多个路由单元可以排布为阵列结构,多个通信部件分别与阵列中至少一个路由单元通信连接。
例如,多个通信部件分别位于阵列的周围,并且每个通信部件分别与最靠近该通信部件的路由单元通信连接。
又例如,通信部件也可以位于多个路由单元之间,并且与多个路由单元中的至少一个路由单元连接。
需要理解的是,图1B所示的片上网络的拓扑结构仅为示意性表示,对本公开不具有限定作用,片上网络的拓扑结构可以是任意的结构。例如,多个路由单元也可以排布为六边形结构等,路由单元、通信部件的数量也可以根据实际需要而设定。
本公开的实施例还提供了一种片上网络的路由控制方法,片上网络包括多个路由单元和多个通信部件,每个路由单元包括多个交互端口并且与至少一个其他的路由单元通过多个交互端口至少之一通信连接,多个路由单元中第一路由单元包括路由表,多个通信部件通过片上网络进行通信,方法包括:第一路由单元接收来自多个通信部件之一的访问请求,根据访问请求包括的路由目的地址以及基于路由表,从第一路由单元的多个交互端口中确定输出端口,以及通过输出端口发送访问请求,路由目的地址为多个通信部件中作为访问请求的访问对象的通信部件在地址空间中的地址。该控制方法简单,易于硬件实现,并且能够减少片上网络需要维护的路由表的数量。
图2示出了本公开至少一实施例提供的片上网络的路由控制方法的流程图。
如图2所示,该路由控制方法针对片上网络的某一路由单元(这里以“第一路由单元”指代,可以表示片上网络中的每个路由单元或部分路由单元),包括步骤S10~步骤S30。
步骤S10:第一路由单元接收来自多个通信部件之一的访问请求。
步骤S20:根据访问请求包括的路由目的地址以及基于路由表,从第一路由单元的多个交互端口中确定输出端口。
步骤S30:通过输出端口发送访问请求。
该路由控制方法应用于片上网络,该片上网络包括多个路由单元和多个通信部件,每个路由单元包括多个交互端口并且与至少一个其他的路由单元通过多个交互端口至少之一通信连接,多个路由单元中第一路由单元包括路由表,多个通信部件通过片上网络进行通信。
该片上网络的描述请参考上文,在此不再赘述。
该路由控制方法根据路由目标地址和路由表,从第一路由单元中确定输出端口,而不需要考虑路由信息(即,路由路径),因此能够简化路由控制,易于硬件实现,并且能够减少片上网络需要维护的路由表的数量。
对于步骤S10:访问请求包括路由目的地址,路由目的地址为多个通信部件中作为访问请求的访问对象的通信部件在地址空间中的地址。
例如,如图1B所示,第一路由单元R0接收来自主设备master0的访问请求,该访问请求用于请求访问从设备slave1,则访问请求包括从设备slave1的地址。
在本公开的一些实施例中,路由表可以包括第一对应关系表,第一对应关系表包括地址空间中至少一个地址与第一路由单元的多个交互端口中至少一个交互端口的第一对应关系。第一对应关系表的相关描述请参考表一以及上文的相关描述,在此不再赘述。在该实施例中,步骤S20包括在第一对应关系表中查询,根据路由目的地址,从多个交互端口中确定与路由目的地址对应的输出端口。
例如,访问请求中的路由目的地址为16’h0010,查询第一对应关系表可知用于输出该访问请求的输出端口为Port2。
在本公开的一些实施例中,包括第一对应关系表的第一路由单元的输出端口与所述多个通信部件中的一个直接连接。
在本公开的另一些实施例中,地址空间包括至少一个地址段,地址段包括至少一个地址,第一路由单元的路由表包括第二对应关系表,第二对应关系表包括地址空间中至少一个地址段与第一路由器路由单元的多个交互端口中至少一个交互端口的第二对应关系。在该实施例中,步骤S20包括在第二对应关系表中查询,根据路由目的地址所属的地址段,从多个交互端口中确定与路由目的地址对应的输出端口。
关于地址段和第二对应关系表请参见上文表二以及上文的相关描述,在此不再赘述。
例如,作为第一路由单元示例的路由单元R0接收到来自主设备maste0用于访问从设备slave1的访问请求时,访问请求包括路由目的地址(即,从设备slave1的地址,例如为16’h0010),路由单元R0确定该路由目的地址16’h0010所属的地址段为16’h0010-16’h00FF,从而根据路由单元R0维护的路由表,确定与该地址段16’h0010-16’h00FF对应的用于输出该访问请求的输出端口为Port2。
在本公开的一些实施例中,包括第二对应关系表的第一路由单元的每个输出端口与所述多个路由单元中的一个路由单元直接连接。
在本公开的另一些实施例中,同一个路由单元可以即包括第一对应关系表也包括第二对应关系表。关于路由单元中路由表的描述请参考上文,在此不再赘述。
对于步骤S30:例如,在图1B所示的片上网络中,若步骤S20确定路由单元R0输出访问请求的输出端口为Port2,则在步骤S30路由单元R0从输出端口Port2输出该访问请求至路由单元R2。
本公开的实施例还提供了一种片上网络的路由配置方法,片上网络包括多个路由单元和多个通信部件,每个路由单元包括多个交互端口并且与至少一个其他的路由单元通过多个交互端口至少之一通信连接,多个通信部件通过片上网络进行通信,该方法包括:为多个路由单元中第一路由单元创建路由表,路由表配置为使得根据访问请求包括的路由目的地址,从第一路由单元的多个交互端口中确定输出端口。该配置方法易于实现,并且能够减少片上网络需要维护的路由表的数量。
该路由配置方法应用于片上网络,片上网络例如可以是图1B所示的结构。关于片上网络的描述请参考上文,在此不再赘述。
在该路由配置方法中,第一路由单元可以是片上网络中的每个路由单元,也可以是片上网络中的部分路由单元。
在本公开的一些实施例中,例如,为第一路由单元创建上文描述的第一对应关系表,或者为第一路由单元创建上文描述的第二对应关系表。
例如,为输出端口与所述多个通信部件中的一个直接连接的第一路由单元创建第一对应关系表,以及为每个输出端口与多个路由单元中的一个路由单元直接连接的路由单元创建第二对应关系表。该实施例中,针对不同的路由单元设置不同的对应关系表,灵活应用第一对应关系表和第二对应关系表。
在本公开的另一些实施例中,为同一个路由单元创建第一对应关系表和第二对应关系表。关于该实施例请参考上文描述,在此不再赘述。
第一对应关系表请参见上文示意性示出的表一以及相关描述,第二对应关系表请参见上文示意性示出的表二以及相关描述,在此不再赘述。
图3示出了本公开至少一实施例提供的为多个路由单元中第一路由单元创建路由表的方法流程图。
如图3所示,该方法包括步骤S31和步骤S32。
步骤S31:为多个通信部件分别分配地址。
步骤S32:确定第一路由单元的交互端口与多个通信部件分配的地址的对应关系,并且根据对应关系,创建路由表。
对于步骤S31,例如,为多个通信部件中的每个通信部件随机分配地址空间中的地址,使得多个通信部件的分别具有不同的地址。每个通信部件可以分配一个或者多个地址。
在本公开的一些实施例中,例如,根据芯片的规格、芯片的引脚(pin)的位置以及宏模块(macro)摆放的位置等布置图信息(floorplan),确定流动路径,然后根据流动路径生成制定片上网络的拓扑结构,进而给每个从设备分配地址空间。
在本公开的一些实施例中,可以按照物理距离,为多个通信部件分别分配地址空间中的地址。例如,物理距离在预设范围内的多个通信部件分配的地址属于同一个地址段。预设范围可以根据实际需要来设定,例如根据芯片大小、通信部件数量等来设定。
在本公开的一些实施例中,按照通信部件的排布位置,为多个通信部件分别分配地址空间中的地址。例如,位于同一行或者同一列的通信部件属于同一个地址段。
按照物理距离或者排布位置分配地址,使得物理距离较近或者位于同一行或者同一列的通信部件的地址属于同一个地址段,有助于简化路由单元的路由表,并且有助于硬件实现。例如,在图1B所示的情景中,从设备slave0、slave1和slave2位于同一行,其各自的地址属于同一个地址段(16’h0010-16’h00FF),从设备slave3、slave4和slave5位于同一列,其各自的地址属于同一个地址段(16’h0001-16’h000F),在这种情形中,路由单元R0针对这6个从设备只需要针对从设备slave0、slave1、slave2以及slave3、slave4、slave5维护表二示出的两组信息,从而简化了路由单元R0维护的路由表,并且有助于硬件实现。
对于步骤S32:确定第一路由单元的交互端口与多个通信部件分配的地址的对应关系,并且根据对应关系,创建路由表。
在本公开的一些实施例中,例如,在根据芯片的规格、芯片的引脚(pin)的位置以及宏模块(macro)摆放的位置等布置图信息(floorplan),确定流动路径,然后可以根据流动路径制定片上网络的拓扑结构,进而给每个从设备分配地址空间之后,根据地址空间和拓扑结构,得到第一路由单元的交互端口与多个通信部件分配的地址的对应关系。或者,也可以接收输入的对应关系,从而根据对应关系创建路由表。
例如,根据流动路径,确定访问请求到达每个通信部件所走的路径,从而确定路径所经过的交互端口,从而确定第一路由单元的交互端口与多个通信部件分配的地址的对应关系。
图4示出了本公开至少一实施例提供的图3中步骤S32的方法流程图。
如图4所示,该方法可以包括步骤S321~步骤S323。
步骤S321:从多个通信部件选择发起访问请求的第一通信部件和接收访问请求的第二通信部件。
步骤S322:根据片上网络、第一通信部件和第二通信部件之间的拓扑结构,确定访问请求在片上网络中的流动路径,流动路径经过第一路由单元。
步骤S323:基于流动路径和多个通信部件分别分配的地址,确定对应关系。
对于步骤S321,例如,在图1B所示的片上网络中,从多个通信部件中选择主设备master0作为发起访问请求的第一通信部件,从设备slave1为接收访问请求的第二通信部件。
例如,依次选择多个通信部件中的每个通信部件作为发起请求的第一通信部件,对于每个通信部件,依次选择不同于第一通信部件的其他通信部件中的每个作为接收访问请求的第二通信部件。
对于步骤S322,片上网络、第一通信部件和第二通信部件之间的拓扑结构可以是根据通信部件的数量、路由单元的数量事先规划的。例如,如上述步骤S31中的描述是根据芯片的规格、芯片的引脚(pin)的位置以及宏模块(macro)摆放的位置等布置图信息(floorplan),确定流动路径,然后根据流动路径生成片上网络的拓扑结构,然后,从片上网络的拓扑结构中,根据第一通信部件和第二通信部件,确定访问请求在片上网络中的流动路径。
在步骤S322中,例如,根据图1B所示的拓扑结构,主设备master0访问从设备slave1的流动路径可以是主设备master0-路由单元R0-路由单元R2-路由单元R10-路由单元R5-从设备slave1。
对于步骤S323,例如,路由单元R0中的对应关系表为第一对应关系表,基于流动路径主设备master0-路由单元R0-路由单元R2-路由单元R10-路由单元R5-从设备slave1,确定路由单元R0中的第一对应关系表包括:从设备slave1的地址16’h0010与Port2相对应。类似地,可以确定路由单元R2中的路由表的第一对应关系表包括slave1的地址16’h0010与Port5相对应。其他路由单元的第一对应关系表与路由单元R0和路由单元R2的确定方式类似,在此不再赘述。
又例如,若路由单元R0中的对应关系表为第二对应关系表,从设备slave0、slave1和slave2的地址属于同一个地址段,基于流动路径:主设备master0-路由单元R0-路由单元R2-路由单元R10-路由单元R5-从设备slave1、主设备master0-路由单元R0-路由单元R2-路由单元R10-路由单元R4-从设备slave0、主设备master0-路由单元R0-路由单元R2-路由单元R10-路由单元R6-从设备slave2,可以确定路由单元R0中的第二对应关系表包括地址段16’h0010-16’h00FF与Port2对应,路由单元R2中的第二对应关系表包括地址段16’h0010-16’h00FF与Port5对应。其他路由单元的第二对应关系表与路由单元R0和路由单元R2的确定方式类似,在此不再赘述。
在本公开的另一些实施例中,路由单元中的路由表可以即包含第一对应关系表也包含第二对应关系表。第一对应关系表和第二对应关系表的确定方法与上文类似,在此不再赘述。
需要说明的是,在本文中,在路由单元中的路由表可以即包含第一对应关系表也包含第二对应关系表的情况下,第一对应关系表和第二对应关系表并不是指两个独立的表,第一对应关系表和第二对应关系表可以是两个独立的表,也可以是一个整合表,也即在该整合表中即包含地址和输出端口之间的一一对应关系,也包含地址段和输出端口之间的对应关系。
图5示出了本公开至少一个实施例提供的一种片上网络的路由配置装置500的示意框图。
例如,如图5所示,该路由配置装置500包括路由表创建单元510。
在该实施例中,片上网络包括多个路由单元和多个通信部件,每个路由单元包括多个交互端口并且与至少一个其他的路由单元通过所述多个交互端口至少之一通信连接,多个通信部件通过片上网络进行通信。
路由表创建单元510,配置为为多个路由单元中第一路由单元创建路由表,路由表配置为使得根据访问请求包括的路由目的地址,从第一路由单元的多个交互端口中确定输出端口。
路由表创建单元510例如可以执行上文片上网络的路由配置方法中的各个步骤,在此不再赘述。
在本公开的一些实施例中,路由表创建单元510可以包括地址分配子单元和创建子单元。地址分配子单元配置为为多个通信部件分别分配地址。创建子单元,配置为确定第一路由单元的交互端口与多个通信部件分配的地址的对应关系,并且根据对应关系,创建路由表。
在本公开的一些实施例中,创建子单元包括:选择子单元,配置为从多个通信部件选择发起访问请求的第一通信部件和接收访问请求的第二通信部件;流动路径确定子单元,配置为根据片上网络、第一通信部件和第二通信部件之间的拓扑结构,确定访问请求在片上网络中的流动路径,流动路径经过第一路由单元;对应关系确定子单元,配置为基于流动路径和多个通信部件分别分配的地址,确定对应关系。
例如,路由表创建单元510可以为硬件、软件、固件以及它们的任意可行的组合。例如,路由表创建单元510可以为专用或通用的电路或装置等,也可以为处理器和存储器的结合。关于上述各个单元的具体实现形式,本公开的实施例对此不作限制。
需要说明的是,本公开的实施例中,路由配置装置500的各个单元与前述的路由配置方法的各个步骤对应,关于路由配置装置500的具体功能可以参考关于路由配置方法的相关描述,此处不再赘述。图5所示的路由配置装置500的组件和结构只是示例性的,而非限制性的,根据需要,该路由配置装置500还可以包括其他组件和结构。
图6示出了本公开至少一个实施例提供的一种片上网络的路由单元(第一路由单元)600的示意框图。
例如,如图6所示,该第一路由单元600包括接收子单元610、端口确定子单元620和发送子单元630。
在该实施例中,片上网络包括多个路由单元和多个通信部件,每个路由单元包括多个交互端口并且与至少一个其他的路由单元通过多个交互端口至少之一通信连接,多个路由单元中第一路由单元包括路由表,多个通信部件通过片上网络进行通信。路由单元,例如可以实现为路由器。
接收子单元610配置为接收来自多个通信部件之一的访问请求。接收子单元610例如可以执行图2描述的步骤S10,在此不再赘述。
端口确定子单元620,配置为根据访问请求包括的路由目的地址以及基于路由表,从第一路由单元的多个交互端口中确定输出端口,路由目的地址为多个通信部件中作为访问请求的访问对象的通信部件在地址空间中的地址。端口确定子单元620例如可以执行图2描述的步骤S20,在此不再赘述。
发送子单元630,配置为通过输出端口发送访问请求。发送子单元630例如可以执行图2描述的步骤S30,在此不再赘述。
在本公开的一些实施例中,第一路由单元的路由表包括第一对应关系表,第一对应关系表包括地址空间中至少一个地址与第一路由单元的多个交互端口中至少一个交互端口的第一对应关系;端口确定子单元620包括第一端口确定子单元,配置为在第一对应关系表中查询,根据路由目的地址,从多个交互端口中确定与路由目的地址对应的输出端口。
在本公开的一些实施例中,地址空间包括至少一个地址段,地址段包括至少一个地址,第一路由单元的路由表包括第二对应关系表,第二对应关系表包括地址空间中至少一个地址段与第一路由单元的多个交互端口中至少一个交互端口的第二对应关系;端口确定子单元620包括第二端口确定子单元,配置为在第二对应关系表中查询,根据路由目的地址所属的地址段,从多个交互端口中确定与路由目的地址对应的输出端口。
例如,接收子单元610、端口确定子单元620和发送子单元630可以为硬件、软件、固件以及它们的任意可行的组合。例如,接收子单元610、端口确定子单元620和发送子单元630可以为专用或通用的电路或装置等,也可以为处理器和存储器的结合。关于上述各个单元的具体实现形式,本公开的实施例对此不作限制。
需要说明的是,本公开的实施例中,第一路由单元600的各个单元与前述的路由控制方法的各个步骤对应,关于第一路由单元600的具体功能可以参考关于路由控制方法的相关描述,此处不再赘述。图6所示的第一路由单元600的组件和结构只是示例性的,而非限制性的,根据需要,该第一路由单元600还可以包括其他组件和结构。
本公开的实施例至少一个实施例还提供了一种路由设备,该路由设备包括处理器和存储器,存储器包括一个或多个计算机程序模块。一个或多个计算机程序模块被存储在存储器中并被配置为由处理器执行,一个或多个计算机程序模块包括用于实现上述的片上网络的路由控制方法的指令。该路由设备可以简化路由控制,减少片上网络需要维护的路由表的数量,以及降低硬件实现难度。
图7为本公开一些实施例提供的一种路由设备的示意框图。如图7所示,该路由设备700包括处理器710和存储器720。存储器720用于存储非暂时性计算机可读指令(例如一个或多个计算机程序模块)。处理器710用于运行非暂时性计算机可读指令,非暂时性计算机可读指令被处理器710运行时可以执行上文所述的片上网络的路由控制方法中的一个或多个步骤。存储器720和处理器710可以通过总线系统和/或其它形式的连接机构(未示出)互连。
例如,处理器710可以是中央处理单元(CPU)或者具有数据处理能力和/或程序执行能力的其它形式的处理单元。例如,中央处理单元(CPU)可以为X86或ARM架构等。处理器710可以为通用处理器或专用处理器,可以控制路由设备700中的其它组件以执行期望的功能。
例如,存储器720可以包括一个或多个计算机程序产品的任意组合,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序模块,处理器710可以运行一个或多个计算机程序模块,以实现路由设备700的各种功能。在计算机可读存储介质中还可以存储各种应用程序和各种数据以及应用程序使用和/或产生的各种数据等。
需要说明的是,本公开的实施例中,路由设备700的具体功能和技术效果可以参考上文中关于片上网络的路由控制方法的描述,此处不再赘述。
本公开的实施例至少一个实施例还提供了一种电子设备,该电子设备包括处理器和存储器,存储器包括一个或多个计算机程序模块。一个或多个计算机程序模块被存储在存储器中并被配置为由处理器执行,一个或多个计算机程序模块包括用于实现上述的片上网络的路由配置方法的指令。该电子设备可以简化路由控制,减少片上网络需要维护的路由表的数量,以及降低硬件实现难度。
图8A为本公开一些实施例提供的一种电子设备的示意框图。如图8A所示,该电子设备800包括处理器810和存储器820。存储器820用于存储非暂时性计算机可读指令(例如一个或多个计算机程序模块)。处理器810用于运行非暂时性计算机可读指令,非暂时性计算机可读指令被处理器810运行时可以执行上文所述的片上网络的路由配置方法中的一个或多个步骤。存储器820和处理器810可以通过总线系统和/或其它形式的连接机构(未示出)互连。
例如,处理器810可以是中央处理单元(CPU)、图形处理单元(GPU)或者具有数据处理能力和/或程序执行能力的其它形式的处理单元。例如,中央处理单元(CPU)可以为X86或ARM架构等。处理器810可以为通用处理器或专用处理器,可以控制电子设备800中的其它组件以执行期望的功能。
例如,存储器820可以包括一个或多个计算机程序产品的任意组合,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序模块,处理器810可以运行一个或多个计算机程序模块,以实现电子设备800的各种功能。在计算机可读存储介质中还可以存储各种应用程序和各种数据以及应用程序使用和/或产生的各种数据等。
需要说明的是,本公开的实施例中,电子设备800的具体功能和技术效果可以参考上文中关于片上网络的路由配置方法的描述,此处不再赘述。
图8B为本公开一些实施例提供的另一种电子设备的示意框图。该电子设备900例如适于用来实施本公开实施例提供的片上网络的路由配置方法。电子设备900可以是终端设备等。需要注意的是,图8B示出的电子设备900仅仅是一个示例,其不会对本公开实施例的功能和使用范围带来任何限制。
如图8B所示,电子设备900可以包括处理装置(例如中央处理器、图形处理器等)910,其可以根据存储在只读存储器(ROM)920中的程序或者从存储装置980加载到随机访问存储器(RAM)930中的程序而执行各种适当的动作和处理。在RAM 930中,还存储有电子设备900操作所需的各种程序和数据。处理装置910、ROM 920以及RAM930通过总线940彼此相连。输入/输出(I/O)接口950也连接至总线940。
通常,以下装置可以连接至I/O接口950:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置960;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置970;包括例如磁带、硬盘等的存储装置980;以及通信装置990。通信装置990可以允许电子设备900与其他电子设备进行无线或有线通信以交换数据。虽然图8B示出了具有各种装置的电子设备900,但应理解的是,并不要求实施或具备所有示出的装置,电子设备900可以替代地实施或具备更多或更少的装置。
例如,根据本公开的实施例,上述片上网络的路由配置方法可以通过计算机软件程序来实现。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包括用于执行上述片上网络的路由配置方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置990从网络上被下载和安装,或者从存储装置980安装,或者从ROM 920安装。在该计算机程序被处理装置910执行时,可以实现本公开实施例提供的片上网络的路由配置方法中限定的功能。
有以下几点需要说明:
(1)本公开实施例附图只涉及到本公开实施例涉及到的结构,其他结构可参考通常设计。
(2)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。
以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以所述权利要求的保护范围为准。

Claims (18)

1.一种片上网络,包括:
多个路由单元,其中,每个路由单元包括多个交互端口并且与至少一个其他的路由单元通过所述多个交互端口至少之一通信连接;
多个通信部件,其中,所述多个通信部件每个与所述多个路由单元之一通信连接,从而能够通过所述片上网络通信,
其中,所述多个路由单元中第一路由单元包括路由表,且配置为在接收到所述多个通信部件之间的访问请求时,根据所述访问请求包括的路由目的地址以及基于所述路由表,从所述第一路由单元的多个交互端口中确定输出端口,所述路由目的地址为所述多个通信部件中作为所述访问请求的访问对象的通信部件在地址空间中的地址,并且通过所述输出端口发送所述访问请求,
其中,所述路由表由所述第一路由单元维护而非由所述通信部件的端口维护,
所述第一路由单元的路由表包括第一对应关系表,所述第一对应关系表包括所述地址空间中至少一个地址与所述第一路由单元的多个交互端口中至少一个交互端口的第一对应关系,所述至少一个地址与所述至少一个交互端口一一对应;或者,
所述第一路由单元的路由表包括第二对应关系表,所述第二对应关系表包括所述地址空间中至少一个地址段与所述第一路由单元的多个交互端口中至少一个交互端口的第二对应关系,所述地址段包括至少一个地址,所述至少一个地址段与所述至少一个交互端口一一对应。
2.根据权利要求1所述的片上网络,其中,在所述第一路由单元的路由表包括第一对应关系表的情形中,所述第一路由单元配置为在所述第一对应关系表中查询,根据所述路由目的地址,从所述多个交互端口中确定与所述路由目的地址对应的所述输出端口。
3.根据权利要求2所述的片上网络,其中,所述第一路由单元的输出端口与所述多个通信部件中的一个直接连接。
4.根据权利要求1所述的片上网络,其中,在所述第一路由单元的路由表包括第二对应关系表的情形中,所述第一路由单元配置为在所述第二对应关系表中查询,根据所述路由目的地址所属的地址段,从所述多个交互端口中确定与所述路由目的地址对应的所述输出端口。
5.根据权利要求4所述的片上网络,所述地址空间包括多个地址段,在所述第二对应关系表中,所述多个地址段中每个与所述多个交互端口中一个交互端口对应。
6.根据权利要求4所述的片上网络,其中,所述第一路由单元的每个输出端口与所述多个路由单元中的一个路由单元直接连接。
7.根据权利要求1所述的片上网络,其中,所述多个路由单元排布为阵列结构,所述多个通信部件分别与阵列中至少一个路由单元通信连接。
8.根据权利要求1所述的片上网络,其中,所述多个通信部件包括至少一个第一通信部件和至少一个第二通信部件;
所述访问请求为从所述第一通信部件到所述第二通信部件的访问请求。
9.一种片上网络的路由控制方法,其中,所述片上网络包括多个路由单元和多个通信部件,每个路由单元包括多个交互端口并且与至少一个其他的路由单元通过所述多个交互端口至少之一通信连接,所述多个路由单元中第一路由单元包括路由表,所述多个通信部件每个与所述多个路由单元之一通信连接,以通过所述片上网络进行通信,
所述方法包括:
所述第一路由单元接收来自所述多个通信部件之一的访问请求;
根据所述访问请求包括的路由目的地址以及基于所述路由表,从所述第一路由单元的多个交互端口中确定输出端口,其中,所述路由目的地址为所述多个通信部件中作为所述访问请求的访问对象的通信部件在地址空间中的地址;以及
通过所述输出端口发送所述访问请求,
其中,所述路由表由所述第一路由单元维护而非由所述通信部件的端口维护,所述第一路由单元的路由表包括第一对应关系表,所述第一对应关系表包括所述地址空间中至少一个地址与所述第一路由单元的多个交互端口中至少一个交互端口的第一对应关系,所述至少一个地址与所述至少一个交互端口一一对应;或者,所述第一路由单元的路由表包括第二对应关系表,所述第二对应关系表包括所述地址空间中至少一个地址段与所述第一路由单元的多个交互端口中至少一个交互端口的第二对应关系,所述地址段包括至少一个地址,所述至少一个地址段与所述至少一个交互端口一一对应。
10.根据权利要求9所述的路由控制方法,其中,所述第一路由单元的路由表包括第一对应关系表,所述第一对应关系表包括所述地址空间中至少一个地址与所述第一路由单元的多个交互端口中至少一个交互端口的第一对应关系;
根据所述访问请求包括的路由目的地址以及基于所述路由表,从所述至少一个路由单元的多个交互端口中确定所述输出端口,包括:
在所述第一对应关系表中查询,根据所述路由目的地址,从所述多个交互端口中确定与所述路由目的地址对应的所述输出端口。
11.根据权利要求9所述的路由控制方法,其中,所述地址空间包括至少一个地址段,所述地址段包括至少一个地址,
所述第一路由单元的路由表包括第二对应关系表,所述第二对应关系表包括所述地址空间中至少一个地址段与所述第一路由单元的多个交互端口中至少一个交互端口的第二对应关系,
根据所述访问请求包括的路由目的地址以及基于所述路由表,从所述至少一个路由单元的多个交互端口中确定所述输出端口,包括:
在所述第二对应关系表中查询,根据所述路由目的地址所属的地址段,从所述多个交互端口中确定与所述路由目的地址对应的所述输出端口。
12.一种片上网络的路由配置方法,其中,所述片上网络包括多个路由单元和多个通信部件,每个路由单元包括多个交互端口并且与至少一个其他的路由单元通过所述多个交互端口至少之一通信连接,所述多个通信部件每个与所述多个路由单元之一通信连接,以通过所述片上网络进行通信,
所述方法包括:
为所述多个路由单元中第一路由单元创建路由表,其中,所述路由表配置为使得所述第一路由单元在接收到所述多个通信部件之间的访问请求时,根据访问请求包括的路由目的地址,从所述第一路由单元的多个交互端口中确定输出端口,所述路由目的地址为所述多个通信部件中作为所述访问请求的访问对象的通信部件在地址空间中的地址,
其中,所述路由表由所述第一路由单元维护而非由所述通信部件的端口维护,所述第一路由单元的路由表包括第一对应关系表,所述第一对应关系表包括所述地址空间中至少一个地址与所述第一路由单元的多个交互端口中至少一个交互端口的第一对应关系,所述至少一个地址与所述至少一个交互端口一一对应;或者,所述第一路由单元的路由表包括第二对应关系表,所述第二对应关系表包括所述地址空间中至少一个地址段与所述第一路由单元的多个交互端口中至少一个交互端口的第二对应关系,所述地址段包括至少一个地址,所述至少一个地址段与所述至少一个交互端口一一对应。
13.根据权利要求12所述的路由配置方法,其中,为所述多个路由单元中第一路由单元创建所述路由表,包括:
为所述多个通信部件分别分配地址;以及
确定所述第一路由单元的交互端口与所述多个通信部件分配的地址的对应关系,并且根据所述对应关系,创建所述路由表。
14.根据权利要求13所述的路由配置方法,其中,确定所述第一路由单元的交互端口与所述多个通信部件分配的地址的对应关系,包括:
从所述多个通信部件选择发起所述访问请求的第一通信部件和接收所述访问请求的第二通信部件;
根据所述片上网络、所述第一通信部件和所述第二通信部件之间的拓扑结构,确定所述访问请求在所述片上网络中的流动路径,其中,所述流动路径经过所述第一路由单元;
基于所述流动路径和所述多个通信部件分别分配的地址,确定所述对应关系。
15.一种片上网络的路由配置装置,其中,所述片上网络包括多个路由单元和多个通信部件,每个路由单元包括多个交互端口并且与至少一个其他的路由单元通过所述多个交互端口至少之一通信连接,所述多个通信部件每个与所述多个路由单元之一通信连接,以通过所述片上网络进行通信,
所述路由配置装置包括:
路由表创建单元,配置为为所述多个路由单元中第一路由单元创建路由表,其中,所述路由表配置为所述第一路由单元在接收到所述多个通信部件之间的访问请求时,使得根据访问请求包括的路由目的地址,从所述第一路由单元的多个交互端口中确定输出端口,所述路由目的地址为所述多个通信部件中作为所述访问请求的访问对象的通信部件在地址空间中的地址,
其中,所述路由表由所述第一路由单元维护而非由所述通信部件的端口维护,所述第一路由单元的路由表包括第一对应关系表,所述第一对应关系表包括所述地址空间中至少一个地址与所述第一路由单元的多个交互端口中至少一个交互端口的第一对应关系,所述至少一个地址与所述至少一个交互端口一一对应;或者,所述第一路由单元的路由表包括第二对应关系表,所述第二对应关系表包括所述地址空间中至少一个地址段与所述第一路由单元的多个交互端口中至少一个交互端口的第二对应关系,所述地址段包括至少一个地址,所述至少一个地址段与所述至少一个交互端口一一对应。
16.一种片上网络的第一路由单元,所述片上网络包括多个路由单元和多个通信部件,每个路由单元包括多个交互端口并且与至少一个其他的路由单元通过所述多个交互端口至少之一通信连接,所述多个路由单元中第一路由单元包括路由表,所述路由表由所述第一路由单元维护而非由所述通信部件的端口维护,所述第一路由单元的路由表包括第一对应关系表,所述第一对应关系表包括地址空间中至少一个地址与所述第一路由单元的多个交互端口中至少一个交互端口的第一对应关系,所述至少一个地址与所述至少一个交互端口一一对应;或者,所述第一路由单元的路由表包括第二对应关系表,所述第二对应关系表包括所述地址空间中至少一个地址段与所述第一路由单元的多个交互端口中至少一个交互端口的第二对应关系,所述地址段包括至少一个地址,所述至少一个地址段与所述至少一个交互端口一一对应,所述多个通信部件每个与所述多个路由单元之一通信连接,以通过所述片上网络进行通信,
所述第一路由单元包括:
接收子单元,配置为经由所述第一路由单元接收来自所述多个通信部件之一的访问请求;
端口确定子单元,配置为根据所述访问请求包括的路由目的地址以及基于所述路由表,从所述第一路由单元的多个交互端口中确定输出端口,其中,所述路由目的地址为所述多个通信部件中作为所述访问请求的访问对象的通信部件在所述地址空间中的地址;以及
发送子单元,配置为通过所述输出端口发送所述访问请求。
17.一种路由设备,包括:
处理器;
存储器,包括一个或多个计算机程序指令和路由表;
其中,所述一个或多个计算机程序指令被存储在所述存储器中,并由所述处理器执行时实现权利要求9-11任一项所述的片上网络的路由控制方法的指令。
18.一种电子设备,包括:
处理器;
存储器,包括一个或多个计算机程序指令和路由表;
其中,所述一个或多个计算机程序指令被存储在所述存储器中,并由所述处理器执行时实现权利要求12-14任一项所述的片上网络的路由配置方法的指令。
CN202111398578.3A 2021-11-19 2021-11-19 片上网络、控制及配置方法、装置、路由单元及设备 Active CN114124814B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111398578.3A CN114124814B (zh) 2021-11-19 2021-11-19 片上网络、控制及配置方法、装置、路由单元及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111398578.3A CN114124814B (zh) 2021-11-19 2021-11-19 片上网络、控制及配置方法、装置、路由单元及设备

Publications (2)

Publication Number Publication Date
CN114124814A CN114124814A (zh) 2022-03-01
CN114124814B true CN114124814B (zh) 2023-08-29

Family

ID=80440599

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111398578.3A Active CN114124814B (zh) 2021-11-19 2021-11-19 片上网络、控制及配置方法、装置、路由单元及设备

Country Status (1)

Country Link
CN (1) CN114124814B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115665041B (zh) * 2022-11-18 2023-03-28 北京红山微电子技术有限公司 片上网络结构、数据传输方法、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3070894A1 (en) * 2009-10-30 2016-09-21 III Holdings 2, LLC Multiprocessor system with hibernation state
CN110620731A (zh) * 2019-09-12 2019-12-27 中山大学 一种片上网络的路由装置及路由方法
CN112613266A (zh) * 2020-12-02 2021-04-06 海光信息技术股份有限公司 一种片上网络拓扑结构、路由路径确定方法、装置及电子设备

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090245257A1 (en) * 2008-04-01 2009-10-01 International Business Machines Corporation Network On Chip
US9986434B2 (en) * 2014-04-30 2018-05-29 Avago Technologies General Ip (Singapore) Pte. Ltd. System for accelerated network route update through exclusive access to routing tables
US10579469B2 (en) * 2018-05-25 2020-03-03 Arm Limited Interconnection network for integrated circuit

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3070894A1 (en) * 2009-10-30 2016-09-21 III Holdings 2, LLC Multiprocessor system with hibernation state
CN110620731A (zh) * 2019-09-12 2019-12-27 中山大学 一种片上网络的路由装置及路由方法
CN112613266A (zh) * 2020-12-02 2021-04-06 海光信息技术股份有限公司 一种片上网络拓扑结构、路由路径确定方法、装置及电子设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
面向非全互连3D NoC的自适应单播路由算法;孙美东等;计算机应用(第05期);全文 *

Also Published As

Publication number Publication date
CN114124814A (zh) 2022-03-01

Similar Documents

Publication Publication Date Title
US10397139B2 (en) Storage device in which forwarding-function-equipped memory nodes are mutually connected and data processing method
CN103117929B (zh) 一种基于PCIe数据交换的通信方法及系统
US9025495B1 (en) Flexible routing engine for a PCI express switch and method of use
CN115543204A (zh) 用于针对加速器板提供共享存储器的技术
US10534541B2 (en) Asynchronous discovery of initiators and targets in a storage fabric
CN107851078B (zh) 一种PCIe设备的聚合友好型地址分配的方法和系统
US8650349B2 (en) Memory mapped input/output bus address range translation for virtual bridges
CN104077239A (zh) Ip硬盘与存储系统,及其数据操作方法
TW201714090A (zh) 記憶體裝置、記憶體定址方法與包括有形儲存媒體的物品
CN114124814B (zh) 片上网络、控制及配置方法、装置、路由单元及设备
CN107315697A (zh) 用于减少管理端口的计算机可读取存储装置、系统及方法
KR20180085188A (ko) 토러스 네트워크 기반의 분산 파일 시스템을 위한 파일 접근 경로 설정 방법 및 이를 위한 장치
CN110704350A (zh) 一种资源管理方法、装置及电子设备和存储介质
CN115102896A (zh) 数据广播方法、广播加速器、noc、soc及电子设备
CN117955897B (zh) 数据通信方法、装置、服务器及存储介质
US20180183672A1 (en) System and method for grouping of network on chip (noc) elements
CN105700823A (zh) 一种ip硬盘之间传输数据的方法和装置
CN106100953B (zh) PCIe设备共享网络的生成方法、装置及系统
JP2019087183A (ja) 情報処理装置、演算処理装置及び情報処理装置の制御方法
JP2016139256A (ja) 入出力制御装置、入出力制御システム、入出力制御方法、および、プログラム
JP2007124568A (ja) 物理配線制御装置、物理配線制御方法および物理配線制御プログラム
CN113497765B (zh) 一种路由管理的方法、装置、电子设备和存储介质
CN109995678A (zh) 报文传输方法及装置
CN102204189A (zh) 路由器集群转发信息库的获得方法及路由器
US11409565B2 (en) Methods, computing unit and memory pool for enabling usage of remote memory resources

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