CN107070795A - 多通道交换网络中的通道选择 - Google Patents

多通道交换网络中的通道选择 Download PDF

Info

Publication number
CN107070795A
CN107070795A CN201710024465.4A CN201710024465A CN107070795A CN 107070795 A CN107070795 A CN 107070795A CN 201710024465 A CN201710024465 A CN 201710024465A CN 107070795 A CN107070795 A CN 107070795A
Authority
CN
China
Prior art keywords
signal
summit
group
passage
exchange network
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
CN201710024465.4A
Other languages
English (en)
Other versions
CN107070795B (zh
Inventor
H·弗赖塞
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.)
Xilinx Inc
Original Assignee
Xilinx Inc
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 Xilinx Inc filed Critical Xilinx Inc
Publication of CN107070795A publication Critical patent/CN107070795A/zh
Application granted granted Critical
Publication of CN107070795B publication Critical patent/CN107070795B/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/24Multipath
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/128Shortest path evaluation for finding disjoint paths
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/253Routing or path finding in a switch fabric using establishment or release of connections between ports
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/16Multipoint routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/101Packet switching elements characterised by the switching fabric construction using crossbar or matrix
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/15Interconnection of switching modules

Abstract

本申请公开了用于在多通道交换网络中选择用于路由信号的通道的方法和系统。在示例性实施例中,确定能够通过所述多通道交换网络中的一个通道一起路由的信号对。生成模型图表,所述模型图表具有各自的顶点,所述顶点用于所述信号中的每一个。所述模型图表还包括各自的边,所述边用于所述确定的信号对,所述边连接对应于所述信号对中的每一对的信号的顶点。确定所述边的子集,其包括最大数量的不相交的边。通过所述通道中的一个各自的通道路由所述边连接的各自的顶点所表示的信号对。对于没有连接到所述子集中的边的顶点,经由所述通道中的一个各自的通道来路由该顶点表示的信号。

Description

多通道交换网络中的通道选择
技术领域
本公开大体涉及多通道交换网络。
背景技术
可编程集成电路(IC)是可以被编程以执行特定逻辑功能的器件。一种类型的可编程IC——现场可编程门阵列(FPGA),通常包括一组可编程单元(tile)。这些可编程单元包括各种逻辑模块,例如包括,输入/输出模块(IOB)、可配置逻辑模块(CLB)、专用随机存取存储器模块(BRAM)、乘法器、数字信号处理模块(DSP)、处理器、时钟管理器、延迟锁相环(DLL)、总线或网络接口(如外围组件高速互连(PCIe))以及以太网等。
每个可编程单元通常同时包括可编程互连和可编程逻辑。可编程互连通常包括大量由可编程互连节点(PIP)互连的各种长度的互连线路。可编程逻辑实施使用可编程元件的电路设计的逻辑,可编程元件例如包括,函数发生器、寄存器、算术逻辑等。
通常可以通过将配置数据流加载至内部配置存储器单元来对可编程互连和可编程逻辑进行编程,其中内部配置存储单元定义可编程元件是如何被配置的。可以从存储器中(例如,从外部PROM中)读取配置数据,或者通过外部设备将配置数据写入FPGA。单个存储器单元的共同状态于是确定FPGA的功能。
一些可编程IC包括一个或多个能够执行程序代码的嵌入式处理器。处理器可以被制造作为同一裸片的一部分,该同一裸片包括可编程逻辑电路和可编程互连电路,其也可以一起被称为IC的“可编程电路”。应当理解,在处理器中执行程序代码不同于“编程”或“配置”在IC上可用的可编程电路。对IC的可编程电路进行编程或配置的动作,会带来具有不同物理电路的具体实现,而通过可编程电路中的配置数据指定了这些具有不同物理电路的具体实现。
发明内容
各种实施例都关于在多通道交换网络中选择通道以用于路由多个信号的方法。在一个实施例中,确定所述多个信号中能够通过多通道交换网络中的一个通道一起路由的信号对。在耦接至所述处理器电路的存储器中生成模型图表,所述模型图表具有各自的顶点,所述顶点表示所述多个信号中的每一个。所述模型图表还包括各自的边,所述边连接对应于所述信号对中的每一对的信号的顶点。确定所述边的子集,其包括最大数量的不相交的边。对于所述子集中的边,在所述多通道交换网络中选择通道,以用于路由由所述边连接的各个顶点表示的所述信号对中的两个信号。对于所述图表中的没有被连接到所述子集中的边的顶点,在所述多通道交换网络中选择各自的通道,以用于路由所述顶点表示的所述信号。生成并储存一组配置数据于存储器中。所述配置数据被配置为设置所述多通道交换网络以使用所述选择的通道路由所述多个信号。
在另一个实施例中,确定用于所述多个信号的目标节点。确定信号不能够通过所述多通道交换网络中的一个通道路由到达的目标节点的目标节点对。生成模型图表,所述模型图表具有各自的顶点,所述顶点表示所述确定的目标节点中的每一个。所述模型图表还包括边,所述边连接对应于所述确定的目标节点对中的每一对中的信号的顶点。将所述模型图表的所述顶点分配到小组中,以使得通过每条边连接的顶点位于不同的小组。对于所述小组中的一个或多个小组,经由所述多通道交换网络中各自的通道,将信号路由至与分配到该个小组的顶点相对应的目标节点。
还公开了一种用于在多通道交换网络中选择通道以用于路由多个信号的系统。所述系统包括处理器以及耦接至所述处理器的存储器。所述存储器被用一组指令配置,该组指令当被处理器执行时使得所述处理器响应于用户定义由可编程IC的不同时钟源生成的多个信号时钟驱动的电路设计执行一组操作。所述指令使得处理器选择所述可编程IC上的多通道交换网络的通道,以用于路由。在选择通道时,所述处理器确定所述多个信号中能够通过所述多通道交换网络中的一个通道一起路由的信号对。所述处理器还在耦接至所述处理器电路的存储器中生成模型图表,所述模型图表具有各自的顶点和边,所述顶点表示所述多个信号中的每一个,并且所述边连接对应于所述信号对中的每一对的信号的顶点。所述处理器确定所述边的子集,其包括最大数量的不相交的边。每条不相交的边连接两个顶点,且该两个顶点不与任何其它不相交的边相邻。对于所述子集中的边,所述处理器在所述多通道交换网络中选择通道,以用于路由由所述边连接的各个顶点表示的所述信号对中的两个信号。对于所述模型图表中的没有被连接到所述子集中的边的顶点,所述处理器在所述多通道交换网络中选择各自的通道,以用于路由所述顶点表示的所述信号。所述指令还使得所述处理器生成并储存一组配置数据于存储器中。当输入至所述可编程IC时,所述配置数据使得在所述可编程IC中的可编程资源能够实现所述电路设计,并且设置所述多通道交换网络以使用所述选择的通道路由来自所述时钟资源的时钟信号。
附图说明
公开的电路和方法的各种方面和特征可以通过查阅下面的具体实施方式以及参考如下附图而变得更为清晰。
图1示出了一种示例性的多通道交换网络,其可以被配置为使用公开的过程来路由一组数据信号;
图2示出了第一过程,其用于在多通道交换网络中选择用于路由信号的通道;
图3示出了通过图2所示的过程生成的示例性图表;
图4示出了第二过程,其用于在多通道交换网络中选择用于路由信号的通道;
图5示出了通过图4所示的过程来生成的示例性图表;
图6示出了符合一个或多个实施例的示例性系统;
图7示出了示例性计算设置的框图,其可以被配置为实施在此描述的数据结构和过程;
图8示出了根据一个或多个实施例进行配置的可编程IC。
具体实施方式
在下面的描述中,举出许多具体的细节以提供具体实施例的更透彻的描述。然而,对于本领域技术人员,显然,可以在不包含下述全部具体细节的情况下,实施一个或多个实施例。在另一些例子中,为人熟知的特征没有被详细描述,以避免使一个或多个实施例变得晦涩。为了说明的便利,在不同图表中使用相同的数字标记以表示相同的项目,然而在替代性的实施例中,这些项目可能会不同。
多通道交换网络可能被用于各种应用,以在多个源节点和多个目标节点之间路由信号。为了提供提高的灵活性,一些可编程IC包括了多通道交换网络,其可以被设置为将各种数据信号路由到可编程IC中的不同区域。作为说明性的例子,电路设计常常在不同的时钟域中运行不同的子电路,以满足电路设计的数据率的要求。可编程IC可以包括多通道交换网络,其被配置为将时钟信号从多个时钟源中的任意时钟源路由到可编程IC的不同区域。
图1示出了一个示例性的多通道交换网络,其被配置为使用公开的过程来路由一组信号。多通道交换网络100可以被配置为将信号从一组源节点S1、S2、S3、S4、S5、S6、S7、S8和S(2*N)路由到一组目标节点D(1,1)、D(1,2)、D(1,3)、D(2,1)、D(2,2)、D(2,3)、……、D(M,1)、D(M,2)和D(M,3)。在这个实施例中,目标节点被分配在M个本地区域内。在每个节点的标识符中,例如在D(x,y)中,x表示目标节点所在的区域,y唯一地标识在该区域中的目标节点。
多通道交换网络100包括纵横开关(crossbar switch)110,其被配置为将信号从源节点中的每一个路由到一组N个通道120、122、124和126中的任意输入。在这个实施例中,每个通道均包括两个输入。每个输入均被配置为从纵横开关110接收各自的信号。在一些实施例中,每个通道均可以包括额外的输入以接收来自纵横开关110的信号。每个通道还包括M个输出,每个输出均被连接以将收到的信号路由到M个区域中的各自的一个。在一些实施例中,多通道交换网络100包括在每个区域中的各自的输出开关130、132或134。每个输出开关130、132或134均被配置为将接收的信号从通道120、122、124和126路由到位于该区域内的目标节点D(1,1)、D(1,2)、D(1,3)、D(2,1)、D(2,2)、D(2,3)、……、D(M,1)、D(M,2)和D(M,3)的子集。
每个通道均可以同时地将多个信号从通道的各自的输入路由到各自的区域。然而,一个通道不能包括足够数量的、与每个输出开关的连接,以将多个信号路由到同一个区域。例如,在示例性的多通道交换网络100中,每个通道120、122、124和126均通过单个信号线被连接到每个输出开关130、132或134。因此,如果一对信号被路由至不同的输出开关,那么只有用一个通道来路由该对信号。如果两个信号要被路由至同一个区域内的目标节点,那么需要经由不同的通道来路由这对信号。由于这些限制,在多通道交换网络中为信号的路由进行通道的分配,在计算上可能会非常昂贵。
本申请公开了在多通道交换网络中有效地选择通道以路由信号的方法。参考表2,更具体的说,与之前的方法相比,公开的过程可以在更短的处理时间内选择用于信号路由的通道。图2示出了第一过程,其用于在多通道交换网络中选择用于路由信号的通道。在框202中,确定在相同通道上路由的信号对(例如,被路由至不同输出开关的信号)。在框204中,在存储器中生成模型图表。该图表包括各自的顶点(vertex),该顶点用于通过多通道交换网络进行路由的每个信号。对于确定的信号对中的每一对,该图表还包括连接与该对信号对的信号对应的图表中顶点的各自的边(edge)。在框206中,确定边的子集,该子集包括最大数量的不相交的边。在框208中,对于该子集中的每条边,选择未使用的通道以用于路由与通过边连接的顶点相对应的信号。在框210中,对于图表中没有被连接到子集中的边的每个顶点,选择未使用的通道来路由该信号。
图3示出了通过图2中的过程生成的示例性图表,以用于在表1中列出的源节点和目标节点之间路由信号。图3示出了第一图表310,在图2的框204中可以生成第一图表310。图表310包括多个顶点,每个顶点均代表各自的信号,其中可以从图1中的源节点S1、S2、S3、S4、S5、S6、S7、S8和S(2*N)中的一个源节点路由该信号。图表310还包括边A、B、C、D、E、F、G和H,这些边连接可以经由相同通道一起路由的信号对的顶点。在实施例中,如果一对信号的目标节点被耦接到相同的输出开关,那么它们不能经由相同的通道路由。例如,从S1到D(1,1)的信号不能与来自S2或S6的、同样具有连接到输出开关1的目标节点D(1,2)和D(1,3)的信号一起路由。相反,从S1到D(1,1)的信号可以与来自S3、S4或S5的、不具有连接到输出开关1的目标节点的信号一起路由。因此,图表310包括边A、B和C,以将用于节点S1的顶点连接到用于节点S3、S4和S5的顶点。第二图表320具有图表310的顶点和边,其中最大数量的不相交的边{C,E,F}被突出显示。或者,子集{D,B,H}、{A,E,H}和{D,C,G}也包括图表中最大数量的不相交的边。
表1
可以用各种过程来确定具有最大数量不相交的边的子集。在一些实施例中,可以使用最大匹配算法,比如带花树算法(Edmonds Blossom Algorithm),来确定子集。例1示出了一段描述过程的伪代码,该过程基于带花树算法来确定在模型图表中的最大数量的不相交的边。该伪代码从第一阶段开始,该阶段快速搜集一组不相交的边,该组不相交的边构成极大匹配(maximal matching)。极大匹配是一组不相交的边,从而不可能向其添加任何更多的边。极大匹配是一个局部最优解,但不一定是全局最优解。相反,最大匹配解(maximummatching solution)包括图表中不相交的边的所有组合中最大数量的不相交的边。最大匹配解是全局性的最优解。可以通过添加图表中不相交的边到解中直到图表中每一条边都与子集中的边相邻,从而找到最大匹配解。两条边如果连接到同一个顶点,则它们相邻。
在找到最大匹配之后,伪代码重复地检查所谓“增广路径(augmented path)”的存在,以确定是否存在更好的解。如果图表包括一对没有被连接到当前解中的任何边的顶点,那么就存在增广路径,这就使得两个顶点可以通过图表中的一条路径连接在一起,其中该路径由当前解之中或之外的边组成。例如,如果顶点对(s,t)没有被连接到解中的任何边,并且如果解中有两条边分别连接顶点对(n1,n2)和(n3,n4)并且不在解中的三条边连接顶点对(s,n1)、(n2,n3)和(n4,t),那么该列顶点(s,n1,n2,n3,n4,t)就是增广路径。通过从解中移除连接(n1,n2)和(n3,n4)的两条边并向解中添加连接(s,n1)、(n2,n3)、(n4,t)的三条边,可以获得新的最大解。在该操作之后,当前的解比之前多了恰好一条边。伪代码以这样的方式重复,直到图中不能找到更多的增广路径。可以保证,这个解包括最多数量的不相交的边。对于关于带花树算法的额外信息,可以参考Edmonds,Jack“Paths,trees,andflowers”.Canad.J.Math.17:449-467(1965)。
例1
图4示出了第二过程,其用于在多通道交换网络中确定信号的路由。在框402中,确定目标节点对,其中信号不能在相同通道上被路由至该目标节点对。在框404中,逻辑上构建图表,该图表包括用于信号的每个目标节点的各自的顶点。该图表还包括各自的边,边用于确定的目标节点对中的每一对,其中信号不能被一起路由至该目标节点对。在框406中,通过为图表中的顶点分配颜色,从而将顶点分到颜色组中。这些顶点被以如下方式分组:
1)每条边只连接不同颜色组中的顶点;
2)颜色组的数量不超过通道的数量;以及
3)路由到对应于每个颜色组中顶点的目标节点的信号数量不超过每个通道的输入的数量。
可以使用例如布尔可满足性算法(Boolean satisfiability algorithm)将顶点分配到颜色组中。在框408中,对于每个颜色组,具有对应于该颜色组中顶点的目标节点的信号被分配到相同的通道中,以用于路由。为了解释方便,通过参考用颜色标识的小组来描述分组过程。然而,可以使用各种其它标识符(例如,数字或字母)来标识小组。例如,在框406中,可以通过将小组编号分配到图表中的顶点来对顶点进行分组。
图5示出了通过图4所示的过程来生成的示例性图表,以用于在表1中列出的源节点和目标节点之间路由信号。可以在图4的框404中生成第一图表510。图表510包括多个顶点,其代表将被路由的信号的目标节点。图表510还包括边A、B、C、D、E、F和G,它们连接用于目标节点对的顶点,其中信号不能通过相同通道被路由至该目标节点对。参照图1所述,如果信号对的目标节点被耦接到相同的输出开关,那么不能通过相同的通道来路由该信号对。
第二图表520的每个顶点均被分配到一种颜色组中,该种颜色组是由三种颜色组组成的一套颜色组中的一种颜色组。如果顶点满足参照图4所讨论的标准,那么该顶点被分配到一种颜色组中。在这个实施例中,将顶点分配到颜色组的过程中,假设多通道交换网络包括至少三个通道,每个通道具有至少两个输入。在这个实施例中,用于目标节点D(1,1)和D(2,1)的顶点被分配到由水平线表示的第一颜色组中。用于目标节点D(1,2)、D(2,3)和D(3,1)的顶点被分配到由竖直线表示的第二颜色组中。用于目标节点D(1,3)、D(2,2)和D(3,2)的顶点被分配到由斜线表示的第三颜色组中。参照图4中的讨论,可以通过相同的通道来路由去向由同一颜色组中的顶点所表示的目标节点的信号。
相比于之前的方式,在图2和图4示出的、用于在多通道交换网络中选择用于路由信号的通道的方法需要更少的计算资源(例如,处理时间和/或处理电路)。表2说明了公开的过程的性能,以及以前的基于可满足性(satisfiability,SAT)的路由过程的性能。通过使用基于SAT的路由过程、图2所示的过程和图4所示的过程来路由53个测试设计,以得到性能结果。这53个测试设计的路由要求为一共1848个问题确定路由解。如表2所示,以前的基于SAT的路由过程不能为对应于12个测试设计的20个路由问题确定有效的路由解。相反,图2和4所示的过程分别为所有1848个路由问题确定有效的路由解。基于SAT的路由过程花费1614.0秒的处理时间。相比较,图2中所示的过程只花费2.8秒来解决路由问题。图4中所示的过程只花费37.61秒。因此,相比于以前的基于SAT的路由过程,公开的过程需要更少的计算资源。
表2
SAT过程 图2过程 图4过程
总设计数 53 53 53
未解决的设计数 12 0 0
路由问题数 1848 1848 1848
未解决的路由问题数 20 0 0
累计运行时间(秒) 1614.08 2.08 37.61
尽管图2中所述的过程比图4中所述的过程更快,但是在一些情况下可能会优先选择图4的过程。例如,在每个通道均具有用于接收信号的两个输入的多通道转换网络中使用时,图2所示的过程是最优的。相反,图4所示的过程可以为具有任何数量输入的通道提供最佳的通道分配。进一步地,图2中所示的过程将每个信号分配到恰好一个通道中,但存在一些情况,只有通过把信号中的一些分配到不同通道中,才能获得最优解。例如,表3描述了需要路由三个信号SN1、SN2、SN3的问题,这使得没有信号对可以通过相同的通道进行路由。在这种情况下,图2中所示的过程需要3个通道以路由三个信号,而图4的过程只需要两个通道,因为它可以与信号SN3一起路由信号SN1的目标节点DN(2,1),并和信号SN2一起路由信号SN1的另一个目标节点DN(1,1)。
表3
源节点 目标节点
SN1 DN(1,1);DN(2,1)
SN2 DN(1,2);DN(3,1)
SN3 DN(2,2);DN(3,2)
在一些实施例中,系统可以被配置为先执行图2中所示的过程。如果图2的过程没有识别有效的通道分配,那么该系统可以使用图4中所示的过程确定通道分配。
图6示出了一种示例性的系统,其与一个或多个实施例一致。该系统包括计算设置610,其被配置为执行软件,这些软件提供用于创建电路设计的电路设计工具620,可以在可编程IC 650上实施电路设计。可编程IC 650包括一组可编程资源652,其可以被编程以实施在电路设计中指定的电路。可编程IC 650包括多个时钟源656,其可以被用来为电路设计的不同部分提供时钟。可编程IC 650还包括多通道交换网络654,其被配置成将时钟源656中的每一个时钟源生成的时钟信号路由到可编程资源中的各种目标。可以使用例如图1中所示的多通道交换网络来实施多通道交换网络654。
电路设计工具620提供图形用户界面(GUI),GUI具有的界面元素可以让用户指定电路设计以及选择时钟资源656,其中时钟资源656被用于为电路设计中的不同电路提供时钟。电路设计工具620被配置为确定通道的分配,以用于将通过被选择的时钟资源所生成的时钟信号路由至该电路设计中使用该时钟信号的电路。可以使用例如图2或图4中所示的过程来执行通道分配。
电路设计工具620生成一组配置数据630,其使得可编程资源652能够实施在电路设计中指定的电路。配置数据还被配置为:使多通道交换网络能够使用确定的通道分配来路由时钟信号,其中通过被选择的时钟资源来生成该时钟信号。生成的一组配置数据630被储存在非易失性存储器640中,非易失性存储器640被耦接到可编程IC 650。当可编程IC通电时,从非易失性存储器640中取出配置数据630,并以前述的方式使用配置数据630来配置可编程资源652和多通道交换网络654。
图7示出了示例性计算设置的框图,其可以被配置为实施在此描述的数据结构和过程。可以理解,各种替代性的计算设置(包括用程序代码配置的一个或多个处理器和内存设置),也会适用于支持公开的过程和数据结构。实施公开的过程的计算机代码,被编码为处理器可执行的形式,并且可以经由各种计算机可读存储介质或传输通道(比如磁盘、光盘、卡带或电子存储设备)来存储和提供该计算机代码,或者该计算机代码可以被存储和提供成在网络上的应用服务。
处理器计算设置700包括一个或多个处理器702、时钟信号发生器704、内存设置706、存储器设置708和输入/输出控制单元710,它们都被耦接至主机总线712。设置700可以用电路板上的分立器件实现,也可以实现在集成电路内部中。当实现在集成电路的内部时,处理器计算设置也被称为微控制器。
计算设置的架构取决于本领域技术人员公认的实现要求。处理器702可以是一个或多个通用处理器,或者一个或多个通用处理器与适用的协处理器的组合,或者一个或多个专用处理器(例如,RISC、CISC、流水线处理器)。
存储器设置706通常包括多个级别的高速缓存存储器,以及主存储器。存储设置708可以包括本地和/或远程持久存储器(persistent storage),比如由磁盘(没有示出)、闪存、EPROM或其它非易失性数据存储器提供。存储器单元可以是只读的或可读/可写的。进一步地,存储器706和存储设置708可以被组合在一个设置中。
处理器702执行存储设置708和/或存储器设置706中的软件,从存储设置708和/或存储器设置706中读出并向其中存入数据,并且通过输入/输出控制设置710与外部设备通信。这些功能由时钟信号发生器704进行同步。计算设置的资源可以被操作系统(没有示出)或硬件控制单元(没有示出)管理。
图8示出了根据一个或多个实施例进行配置的可编程IC 802。可编程IC也可以被称为片上系统(SOC),其包括处理器子系统810和可编程逻辑子系统830。处理器子系统810可以被编程,从而通过执行用户程序以实施用户设计的软件部分。该程序可以被指定作为配置数据流的一部分,或者可以从片上或片下数据存储器件中取出。处理器子系统810可以包括各种电路812、814、816和818,以执行一个或多个软件程序。电路812、814、816和818可以包括,例如一个或多个处理器核心、浮点单元(FPU)、中断处理单元、片上存储器、高速缓存和/或高速缓存一致性互连(cache coherent interconnect)。
可编程IC 802中的可编程逻辑子系统830可以被编程,以实施用户设计的硬件部分。例如,可编程逻辑子系统可以包括一些可编程资源832,其可以被编程以实施一组在配置数据流中指定的电路。可编程资源832包括可编程互连电路、可编程逻辑电路和配置存储单元。可编程逻辑使用可编程元件(包括例如,功能生成器、寄存器、算术逻辑等)实施用户设计的逻辑。可编程互连电路可以包括大量各种长度的互连线路,其被可编程互连节点(PIP)互连。
可以通过向配置存储单元中加载配置数据流来对可编程资源832进行编程,配置存储单元定义了可编程互连电路和可编程逻辑电路的配置方式。单个存储单元的集合状态于是确定了可编程资源832的功能。可以从存储器(例如,从外部PROM)读取配置数据,或者可以通过外部器件将配置数据写入可编程IC 802。在一些实施例中,可编程逻辑子系统830中的配置控制器834可以将配置数据加载入配置存储单元中。在其它一些实施例中,处理器子系统810执行的启动过程可以将配置数据加载入配置存储单元中。
可编程IC 802可以包括多种电路,以将处理器子系统810互连至在可编程逻辑子系统830内实施的电路。在这个实施例中,可编程IC 802包括核心交换机(core switch)826,其可以在处理器子系统810和可编程逻辑子系统830的各种数据端口之间路由数据信号。核心交换机826也可以在可编程逻辑或处理子系统810和830以及可编程IC的多种其它电路(比如内部数据总线)之间路由信号。可替换地或额外地,处理器子系统810可以包括接口以直接与可编程逻辑子系统连接,也就是绕过核心交换机826。可以使用例如ARM发行的AMBA AXI协议规范(AXI)来实施该接口。
在一些实施例中,处理器子系统810和可编程逻辑子系统830也可以通过存储控制器821对片上存储器822或片下存储器(没有示出)的存储地址进行读或写。存储控制器821可以被实施以与一个或多个不同类型的存储器通信,包括但不限于双倍数据速率(DDR)2、DDR3、低功率(LP)DDR2类型的存储器,不管是16比特、32比特、或是带纠错码(ECC)的16比特等。提供能够与存储控制器821进行通信的不同存储器种类的列表只是起说明作用,而不视为限制或是穷举性的。如图8所示,可编程IC 802可以包括内存设置单元820以及转译后备缓冲器(translation look-aside buffer)824,以把子系统810和830使用的虚拟存储器地址转译为存储控制器821使用的物理内存的地址,从而访问特定的存储器地址。
可编程IC可以包括输入/输出(I/O)子系统850,以用于与外部电路进行数据通信。I/O子系统850可以包括各种类型的I/O设备或接口,例如闪存型I/O设备、高性能I/O设备、低性能接口、调试I/O设备(debugging I/O devices)和/或RAM I/O设备。
I/O子系统850可以包括一个或多个闪存接口860,其被表示为860A和860B。例如,一个或多个闪存接口860可以被实施为四串行外围接口(QSPI),从而被配置用于4比特的通信。一个或多个闪存接口860可以被实施为并行的8比特NOR/SRAM型接口。一个或多个闪存接口860可以被实施为NAND接口,以用于8比特和/或16比特的通信。可以理解,这里描述的特定接口是以说明而非限制的目的提供。也可以使用其它具有不同比特宽度的接口。
I/O子系统850可以包括一个或多个接口862,其提供比闪存接口860更高级的性能。接口862A-862C中的每一个都可以被分别耦接至DMA控制器864A-864C。例如,一个或多个接口862可以被实施成通用串行总线(USB)型接口。一个或多个接口862可以被实施成千兆位以太网型接口。一个或多个接口862可以被实施成安全数字型接口。
I/O子系统850还可以包括一个或多个接口866,如接口866A-866D,其提供比接口862低级的性能。例如,一个或多个接口866可以被实施成通用I/O(GPIO)型接口。一个或多个接口866可以被实施成通用异步收发器(UART)型接口。一个或多个接口866可以被实施成串行外围接口(UART)型接口的形式。一个或多个接口866可以被实施成控制器局域网(CAN)型接口和/或二线串行(I2C)型接口的形式。一个或多个接口866还可以被实施成计时器型接口的形式。
I/O子系统850可以包括一个或多个调试接口868,如处理器JTAG(PJTAG)接口868A和跟踪接口(trace interface)868B。PJTAG接口868A可以为可编程IC 802提供外部的调试接口。跟踪接口868B提供的端口能够接收来自处理器子系统810或可编程逻辑子系统830的调试(例如追踪)信息。
如图所示,接口860、862、866和868中的每一个都可以被耦接至多路复用器870。多路复用器870提供多个输出,这些输出可以被直接路由或耦接至可编程IC 802的外部引脚,例如,封装的焊球,其中可编程IC 802被设置在该封装内。例如,可以在接口860、862、866和868之间共享可编程IC 802的I/O引脚。用户可以通过配置数据流来选择使用接口860-868中的哪一个,并将其通过多路复用器870耦接至可编程IC 802的I/O引脚,从而配置多路复用器870。I/O子系统850还可以包括结构多路复用器I/O(fabric multiplexer I/O,FMIO)接口(没有示出),以将接口862-868连接到可编程逻辑子系统的可编程逻辑电路。额外地或可替换地,可编程逻辑子系统830可以被配置为在可编程逻辑中实施一个或多个I/O电路。在一些实施例中,可编程IC 802还可以包括具有各种用于电源和/或安全管理的电路子系统840。例如,子系统840可以包括电源管理单元846,其被配置为监视并维持一个或多个用来向可编程IC 802的各个子系统供电的电压范围。在一些实施例中,当空闲时,电源管理单元846可以禁用单个系统的电源以减少电力消耗,而不禁用在使用中的子系统的电源。
子系统840还可以包括安全电路,以监视子系统的状态,从而确保正确运行。例如,子系统840可以包括一个或多个实时处理器842,其被配置为监视各种子系统的状态(例如,如状态寄存器844所示)。实时处理器842可以被配置为:响应于检测到错误,执行多个任务。例如,对于一些错误,实时处理器842可以响应于检测到错误,从而生成警告。在另一个例子中,实时处理器842可以重置子系统,以尝试恢复该子系统的正确运行。子系统840包括可以被用于连接各种子系统的交换网络848。例如,交换网络848可以被配置为将各种子系统810、830和840连接至I/O子系统850的各种接口。在一些应用中,交换网络848还可以被用于将实时处理器842与需要监视的子系统隔离开。这种隔离可能是特定的应用标准(例如,IEC-61508SIL3或ISO-26262标准)要求的,以确保实时处理器842不被其它子系统中发生的错误影响。
本领域技术人员可以理解,各种可替换的计算设置(包括用程序代码配置的一个或多个处理器和内存设置),均适用于支持这里公开的过程和数据结构。此外,可以经由各种计算机可读存储介质或传输通道(比如磁盘、光盘、卡带或电子存储设备)来提供该过程,或者该过程可以被提供作为在网络上的应用服务。这些方法和电路被认为可以被应用于各种系统和应用。通过考虑本说明书,其它方面和特征对于本领域技术人员也是显而易见的。例如,尽管一些方面和特征在一些例子中以单个附图的方式描述,应当了解,一个附图中的特征可以与另一个附图中的特征结合,尽管该结合没有以结合的方式明确表示或明确描述。说明书和附图应当只被视为例子,本发明的真实范围由权利要求书确定。

Claims (20)

1.一种用于在多通道交换网络中选择用于路由多个信号的通道的方法,其特征在于,所述方法包括:
在处理器电路上执行操作,包括:
确定所述多个信号中能够通过所述多通道交换网络中的一个通道一起路由的信号对;
在耦接至所述处理器电路的存储器中生成模型图表,所述模型图表具有各自的顶点和边,所述顶点表示所述多个信号中的每一个,并且所述边连接对应于所述信号对中的每一对的信号的顶点;
确定所述边的子集,其包括最大数量的不相交的边,其中每条不相交的边连接两个顶点,且这两个顶点不与任何其它不相交的边相邻;
对于所述子集中的边,在所述多通道交换网络中选择通道,以用于路由由所述边连接的各个顶点表示的所述信号对的两个信号;
对于所述模型图表中的没有被连接到所述子集中的边的顶点,在所述多通道交换网络中选择各自的通道,以用于路由所述顶点表示的所述信号;以及
生成并储存一组配置数据于存储器中,其中,所述配置数据被配置为设置所述多通道交换网络以使用所述选择的通道路由所述多个信号。
2.根据权利要求1所述的方法,其特征在于,所述多通道交换网络包括多个通道、纵横开关以及多个输出开关,并且所述方法还包括:
使用所述纵横开关,将信号从多个源节点路由至所述多个通道;
使用所述多个通道,将信号从所述纵横开关路由至所述多个输出开关;以及
对于所述多个输出开关中的每一个,将信号从所述多个通道路由至各自的一组目标节点。
3.根据权利要求2所述的方法,其特征在于,确定所述多个信号中能够通过所述多通道交换网络中的相同通道路由的信号对的步骤包括:对于所述多个输出开关中的不同输出开关,确定将被路由至各组目标节点的信号对。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括,使用所述多个通道中的一个,将多个信号同时从所述纵横开关路由至所述多个输出开关。
5.根据权利要求1所述的方法,其特征在于,所述多通道交换网络是时钟网络。
6.根据权利要求1所述的方法,其特征在于,响应于通道的数量N大于或等于信号的数量S减去所述子集中边的数量P,执行所述路由步骤。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括,响应于N<S-P:
确定用于所述多个信号的目标节点;
确定信号不能通过所述多通道交换网络中的相同通道路由到达的目标节点对;
生成第二模型图表,所述第二模型图表具有各自的顶点和边,所述顶点用于所述确定的目标节点中的每一个,所述边连接对应于所述确定的目标节点对中的每一对中的信号的顶点;
将所述第二模型图表的所述顶点分配到多个小组中,以使得通过每条边连接的顶点位于不同的小组;以及
对于所述小组中的每一个小组,经由所述多通道交换网络中各自的通道,将信号路由至与分配到该个小组的顶点相对应的目标节点。
8.根据权利要求7所述的方法,其特征在于,小组的数量小于或等于在所述多通道交换网络中通道的数量。
9.根据权利要求7所述的方法,其特征在于,路由至与分配到每个小组中的顶点相对应的目标节点的信号的数量小于或等于用于所述多通道交换网络中每个通道的输入的数量。
10.一种用于在多通道交换网络中选择用于路由多个信号的通道的方法,其特征在于,所述方法包括:
在处理器电路上执行操作,包括:
确定用于所述多个信号的目标节点;
确定信号不能够通过所述多通道交换网络中的一个通道路由到达的目标节点的目标节点对;
生成模型图表,所述模型图表具有各自的顶点和边,所述顶点表示所述确定的目标节点中的每一个,所述边连接对应于每一对的信号的顶点;
将所述模型图表的所述顶点分配到小组中,以使得通过每条边连接的顶点位于不同的小组;以及
对于所述小组中的一个或多个小组,经由所述多通道交换网络中各自的通道,将信号路由至与分配到该个小组的顶点相对应的目标节点。
11.根据权利要求10所述的方法,其特征在于,小组的数量小于或等于在所述多通道交换网络中通道的数量。
12.根据权利要求10所述的方法,其特征在于,路由至与分配到每个小组中的顶点相对应的目标节点的信号的数量小于或等于用于每个通道的输入的数量。
13.一种系统,包括:
处理器;以及
耦接至所述处理器的存储器,所述存储器被用一组指令配置,该组指令当被处理器执行时使得所述处理器:
响应于用户定义由可编程IC的不同时钟源生成的多个信号时钟驱动的电路设计,通过执行下述操作以选择所述可编程IC上的多通道交换网络的通道,以用于路由所述信号:
确定所述多个信号中能够通过所述多通道交换网络中的一个通道一起路由的信号对;
在耦接至所述处理器电路的存储器中生成模型图表,所述模型图表具有各自的顶点和边,所述顶点表示所述多个信号中的每一个,并且所述边连接对应于所述信号对中的每一对的信号的顶点;
确定所述边的子集,其包括最大数量的不相交的边,其中每条不相交的边连接两个顶点,且这两个顶点不与任何其它不相交的边相邻;
对于所述子集中的边,在所述多通道交换网络中选择通道,以用于路由由所述边连接的各个顶点表示的所述信号对中的两个信号;
对于所述模型图表中的没有被连接到所述子集中的边的顶点,在所述多通道交换网络中选择各自的通道,以用于路由所述顶点表示的所述信号;以及
生成并储存一组配置数据于存储器中,其中,所述配置数据被配置为:当输入至所述可编程IC时,使得在所述可编程IC中的可编程资源能够实现所述电路设计,并且设置所述多通道交换网络以使用所述选择的通道路由来自所述时钟资源的时钟信号。
14.根据权利要求13所述的系统,其特征在于,所述系统还包括:
非易失性存储器,其耦接至所述处理器;
所述可编程IC,其耦接至所述非易失性存储器;以及
其中,所述指令还使得所述处理器在所述非易失性存储器中储存所述一组配置数据;以及
其中,所述可编程IC被配置为:响应于接通电源,从所述非易失性存储器取回所述一组配置数据。
15.根据权利要求14所述的系统,其特征在于,所述可编程IC上的所述多通道交换网络包括:
多个通道;
纵横开关,其被配置为:将信号从耦接至所述可编程IC上的时钟资源的多个源节点路由至所述多个通道;以及
多个输出开关,每个输出开关都被配置为:将信号从所述多个通道路由至各自的一组目标节点。
16.根据权利要求15所述的系统,其特征在于,确定所述多个信号中能够通过所述多通道交换网络中的相同通道路由的信号对的步骤包括:对于所述多个输出开关中的不同的输出开关,确定将被路由至各组目标节点的信号对。
17.根据权利要求13所述的系统,其特征在于,响应于通道的数量N大于或等于信号的数量S减去所述子集中边的数量P,执行所述路由步骤。
18.根据权利要求17所述的系统,其特征在于,所述系统还包括,响应于N<S-P:
确定用于所述多个信号的目标节点;
确定所述目标节点的目标节点对,其中信号不能在所述多通道交换网络中通过所述相同的通道被路由至所述目标节点对;
生成第二模型图表,所述第二模型图表具有各自的顶点和边,所述顶点用于所述确定的目标节点中的每一个,连接顶点的所述边对应于所述确定的目标节点对的每一对中的信号;
将所述第二模型图表的所述顶点分配到小组中,以使得通过每条边连接的顶点位于不同的小组;以及
对于所述小组中的一个或多个小组,通过在所述多通道交换网络中的各自的通道,将信号路由至与分配到该个小组的顶点相对应的目标节点。
19.根据权利要求18所述的系统,其特征在于,小组的数量小于或等于通道的数量。
20.根据权利要求18所述的系统,其特征在于,路由至与分配到每个小组的顶点相对应的目标节点的信号的数量小于或等于用于每个通道的输入的数量。
CN201710024465.4A 2016-01-14 2017-01-13 多通道交换网络中的通道选择 Active CN107070795B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/995,839 2016-01-14
US14/995,839 US9935870B2 (en) 2016-01-14 2016-01-14 Channel selection in multi-channel switching network

Publications (2)

Publication Number Publication Date
CN107070795A true CN107070795A (zh) 2017-08-18
CN107070795B CN107070795B (zh) 2021-01-29

Family

ID=59315026

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710024465.4A Active CN107070795B (zh) 2016-01-14 2017-01-13 多通道交换网络中的通道选择

Country Status (2)

Country Link
US (1) US9935870B2 (zh)
CN (1) CN107070795B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114679415A (zh) * 2022-05-07 2022-06-28 厦门大学 一种满足AXI5-Lite协议标准的无阻塞banyan网络
US11615052B1 (en) * 2019-05-23 2023-03-28 Xilinx, Inc. Packet identification (ID) assignment for routing network

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11423178B2 (en) * 2018-04-27 2022-08-23 Tesla, Inc. Isolation of subsystems on a system on a chip
US11354449B2 (en) 2018-04-27 2022-06-07 Tesla, Inc. Secure initial provisioning of a system on a chip
US11036546B1 (en) 2019-04-16 2021-06-15 Xilinx, Inc. Multi-threaded shared memory functional simulation of dataflow graph
US10802807B1 (en) 2019-05-23 2020-10-13 Xilinx, Inc. Control and reconfiguration of data flow graphs on heterogeneous computing platform
US11138019B1 (en) 2019-05-23 2021-10-05 Xilinx, Inc. Routing in a compilation flow for a heterogeneous multi-core architecture
US11204745B2 (en) 2019-05-23 2021-12-21 Xilinx, Inc. Dataflow graph programming environment for a heterogenous processing system
US10860766B1 (en) 2019-05-23 2020-12-08 Xilinx, Inc. Compilation flow for a heterogeneous multi-core architecture

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6951005B1 (en) * 2001-06-03 2005-09-27 Cadence Design Systems, Inc. Method and apparatus for selecting a route for a net based on the impact on other nets
US7069530B1 (en) * 2001-06-03 2006-06-27 Cadence Design Systems, Inc. Method and apparatus for routing groups of paths
US7187672B1 (en) * 2002-05-15 2007-03-06 Calix Networks, Inc. Connection rearrangement in communication switches
US7308198B1 (en) * 2001-05-16 2007-12-11 Tellabs Operations, Inc. Method for allocating protection bandwidth in a telecommunications mesh network
US7306977B1 (en) * 2003-08-29 2007-12-11 Xilinx, Inc. Method and apparatus for facilitating signal routing within a programmable logic device
US20110188865A1 (en) * 2010-02-04 2011-08-04 Nortel Networks Limited Method for rapid determination of lowest cost wavelength routes through a photonic network based on pre-validated paths
US8243671B2 (en) * 2009-09-10 2012-08-14 Cisco Technology, Inc. Distributed channel assignment
US8509099B2 (en) * 2008-01-15 2013-08-13 Microsoft Corporation Load aware resource allocation in wireless networks
CN103559374A (zh) * 2013-11-25 2014-02-05 中国科学院自动化研究所 一种多子网格模型上进行面分裂型曲面细分的方法
US20150104166A1 (en) * 2013-10-10 2015-04-16 Nec Laboratories America, Inc. Suurballe-based Cloud Service Embedding Procedure in Software-Defined Flexible-Grid Optical Transport Networks
CN105069039A (zh) * 2015-07-22 2015-11-18 山东大学 一种基于spark平台的内存迭代的重叠社区并行发现方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080074142A1 (en) * 2006-09-25 2008-03-27 Alex Henderson Routing for Microprocessor Busses

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7308198B1 (en) * 2001-05-16 2007-12-11 Tellabs Operations, Inc. Method for allocating protection bandwidth in a telecommunications mesh network
US6951005B1 (en) * 2001-06-03 2005-09-27 Cadence Design Systems, Inc. Method and apparatus for selecting a route for a net based on the impact on other nets
US7069530B1 (en) * 2001-06-03 2006-06-27 Cadence Design Systems, Inc. Method and apparatus for routing groups of paths
US7187672B1 (en) * 2002-05-15 2007-03-06 Calix Networks, Inc. Connection rearrangement in communication switches
US7306977B1 (en) * 2003-08-29 2007-12-11 Xilinx, Inc. Method and apparatus for facilitating signal routing within a programmable logic device
US8509099B2 (en) * 2008-01-15 2013-08-13 Microsoft Corporation Load aware resource allocation in wireless networks
US8243671B2 (en) * 2009-09-10 2012-08-14 Cisco Technology, Inc. Distributed channel assignment
US20110188865A1 (en) * 2010-02-04 2011-08-04 Nortel Networks Limited Method for rapid determination of lowest cost wavelength routes through a photonic network based on pre-validated paths
US20150104166A1 (en) * 2013-10-10 2015-04-16 Nec Laboratories America, Inc. Suurballe-based Cloud Service Embedding Procedure in Software-Defined Flexible-Grid Optical Transport Networks
CN103559374A (zh) * 2013-11-25 2014-02-05 中国科学院自动化研究所 一种多子网格模型上进行面分裂型曲面细分的方法
CN105069039A (zh) * 2015-07-22 2015-11-18 山东大学 一种基于spark平台的内存迭代的重叠社区并行发现方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11615052B1 (en) * 2019-05-23 2023-03-28 Xilinx, Inc. Packet identification (ID) assignment for routing network
CN114679415A (zh) * 2022-05-07 2022-06-28 厦门大学 一种满足AXI5-Lite协议标准的无阻塞banyan网络

Also Published As

Publication number Publication date
US9935870B2 (en) 2018-04-03
US20170207998A1 (en) 2017-07-20
CN107070795B (zh) 2021-01-29

Similar Documents

Publication Publication Date Title
CN107070795A (zh) 多通道交换网络中的通道选择
US9825843B2 (en) Die-stacked device with partitioned multi-hop network
US9785732B2 (en) Verification low power collateral generation
Grecu et al. Testing network-on-chip communication fabrics
US7821849B2 (en) Configurable embedded processor
US9298865B1 (en) Debugging an optimized design implemented in a device with a pre-optimized design simulation
CN207249670U (zh) 防止保持时间违例的电路
US9041431B1 (en) Partial reconfiguration and in-system debugging
CN103870390B (zh) 用于支持统一的调试环境的方法和装置
CN107111572B (zh) 用于避免死锁的方法和电路
US9298866B1 (en) Method and system for modeling a flip-flop of a user design
TW201428521A (zh) 設計及模擬系統、裝置及方法
CN106663061A (zh) 用于可编程逻辑的存储器的虚拟化
US7966519B1 (en) Reconfiguration in a multi-core processor system with configurable isolation
KR20180058821A (ko) 상호작용형 다단계 물리적 합성
US20150347654A1 (en) Extracting system architecture in high level synthesis
CN109167595A (zh) 使用部分重构在可编程电路上实施外围器件的方法和装置
US7584448B1 (en) Constructing a model of a programmable logic device
Trahan et al. On the power of segmenting and fusing buses
US9779792B2 (en) Register file with read ports clustered by entry
WO2018080735A2 (en) Method, apparatus and system for automatically performing end-to-end channel mapping for an interconnect
TWI631355B (zh) 用於元件集合的高效測試的通信及控制拓撲結構
US9864830B1 (en) Method and apparatus for placement and routing of circuit designs
US10410713B1 (en) Content addressable memory modeling in emulation and prototyping
US7451424B1 (en) Determining programmable connections through a switchbox of a programmable logic device

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