一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

通过硅光子实现零增加等待时间的分组重新路由的制作方法

2021-11-26 23:06:00 来源:中国专利 TAG:

通过硅光子实现零增加等待时间的分组重新路由


背景技术:

1.高性能计算(hpc)通常是指以提供比典型的台式计算机或工作站高得多的性能的 方式聚集计算能力以解决科学、工程或商业中的大问题。计算节点的集群通过互连(也 称为“结构(fabric)”)进行连接以使得节点能够相互通信以解决大规模问题。每个节 点可以包括多个处理器或处理部件。每个节点通常通过使用一个或多个网络接口卡(nic) 在结构上进行通信。
附图说明
2.参考以下附图根据一个或多个不同的实施例详细地描述本公开。附图仅被提供用于 说明性目的,并且仅描绘典型实施例或示例实施例。
3.图1图示了可以在其中实施本技术的实施例的示例网络。
4.图2a示出了根据本文公开的技术的两个集群之间的示例光学互连。
5.图2b示出了根据本文公开的技术的实施例的两个节点之间的示例间接通信路径。
6.图3图示了根据本文公开的技术的实施例的示例光子接口系统。
7.图4示出了根据本文公开的技术的实施例的示例方法。
8.图5图示了根据本文公开的技术的实施例的另一个示例光子接口系统。
9.图6是可用于实施本公开中描述的实施例的各种特征的示例计算部件。
10.附图并非是穷举的,并且不将本公开限制于所公开的精确形式。
具体实施方式
11.在高性能计算(hpc)系统等大型计算网络中,关键的质量因数是等待时间。在这样 的网络内有几个等待时间来源。一个来源是关于一个节点向网络中的一个或多个其他节 点请求信息。当忙于处理应用程序时,节点的处理器部件(例如,cpu)可能需要不是本 地存储在所述节点上的信息或数据。因此,如果cpu不知道所述信息在网络中的维护位 置,则cpu需要向结构发出请求,所述请求由通过结构连接的其他节点接收。然后,结 构上的每个节点的处理器部件必须停止在相应节点处忙于处理的线程或应用程序并为所 述请求提供服务,从而检查其是否具有所请求的信息。连接的节点上的处理器部件的这 种中断增加了等待时间,因为处理器部件需要暂停其当前进程,从而延迟其预期任务的 完成。
12.等待时间的另一个来源是大型网络上的物理限制。每个节点具有有限数量的物理连 接,从而限制了其可以通过结构直接连接到的其他节点的数量,而不管网络拓扑如何。 作为示例,常规的cpu通常最多具有128个i/o通道,从而限制cpu最多直接连接到结 构上的128个其他节点。对于大型hpc实施方式,可能有超过128个节点相互连接。为 了确保所有节点都能够与所有其他节点通信,消息必须通过中间节点传递,所述中间节 点从(其直接连接到的)发送者或发送者节点接收消息,通过停止其进程来读取寻址信 息来确定所述消息是否用于中间节点,并且将所述消息路由到预期的端点(例如,末端 节点或接收者节点)。这增加了系统中的等待时间。
13.为了相互连接,节点通常包括网络接口卡(nic)。传统nic在节点的(多个)处理 器与互连结构之间提供接口,包括多个缓冲区、虚拟地址存储器空间和不期望在处理器 上具有的用于路由的其他逻辑部件。本质上,nic是能够维护该信息的单独的芯片,处 理器可以与所述芯片通信并使nic执行路由功能。然而,即使实际功能可能已转移到nic, 处理器仍然必须在每个分组进出时对其进行分析。因此,每当接收到分组/消息时,处理 器仍会被中断。
14.在许多实施方式中,每个节点中可以包括智能nic来解决等待时间问题。智能nic 分担了连接到传统nic的处理器需要执行的一些智能任务。智能nic通常包括板载(on
‑ꢀ
board)处理部件,用于实施需要由节点的处理器执行的网络流量处理的一些方面。当消 息传入时,智能nic能够通过读取预期端点(即,另一个节点)的地址来确定传入的数 据分组是否用于智能nic的节点。如果不是,则智能nic能够将消息发送给预期的接收 方,而不会中断节点的处理器。虽然这可以减少节点处理器的中断数量,但在路由数据 时仍然存在等待时间,因为智能nic需要将数据保存在缓冲区中、读取数据中的地址、 并将地址与节点的虚拟地址空间进行比较。在不存在匹配的情况下,智能nic则需要将 数据放在传输缓冲区中并通过输出传输将其发送到另一个节点。
15.随着在通信网络内越来越多地实施光学互连(包括用作用于hpc实施方式的结构), 由于需要光电转换,因此进一步增加了等待时间。光学通信提供了比传统电缆更高的带 宽潜力并且可以在更长的距离上有效地传输信号。然而,数据必须被转换到电域,以便 节点的处理器使用接收到的数据。不仅必须将光学数据转换到电域以供处理器解释,而 且如果数据用于不同的端点或节点,则还必须将数据转换回光域以进行传输。这增加了 消息响应中的等待时间。
16.本文公开的技术的实施例提供了用于数据分组的光学路由的系统和方法。所述技术 通过在任何光电转换之前将数据分组的路由完全保持在光域中来减少联网结构内的节点 与集群之间的数据传输的等待时间。在各种实施例中,网络内的每个节点包括被配置为 发射和接收光学信号的光子接口系统。相应集群内的所有节点彼此直接连接,其中每个 节点与不同集群内的节点具有至少一个直接连接。在各种实施例中,在每个集群内,利 用多个波长来路由集群内部的数据分组,其中至少一个波长被分配给相应的节点。通过 使用根据本公开的光子接口系统,使得能够实现网络内的间接连接的节点之间的零增加 等待时间通信,从而能够减少物理电缆需求并消除通过中间节点对光学信号的昂贵转换 而增加的等待时间。
17.图1图示了可以在其内实施本文公开的技术的实施例的示例网络100。示例网络100 仅被提供用于说明性目的并且不应将技术的范围仅限于所描绘的实施例。为了便于讨论, 网络100被描绘为高性能计算(hpc)系统,但是所述技术不仅限于hpc系统或环境。 本公开的技术适用于其中通过光学互连来传输数据的任何网络或系统。如图1所示,网 络100可以包括多个集群101a至101f(一般称为“集群101”,统称为“集群101”), 每个集群101包括多个节点102。在各种实施例中,节点102可以包括服务器或包括一个 或多个处理器的其他计算设备。在各种实施例中,每个集群101可以包括相同数量的节 点102,而在其他实施例中,一个或多个集群101可以包括与至少一个其他集群101不同 数量的节点102。在各种实施例中,集群101可以位于同一位置(例如,同一数据中心、 数据中心内的同一机架),而
在其他实施例中,至少一个集群101可以远离其他集群101 而定位(例如,不同的数据中心、同一数据中心内的不同机架)。
18.每个节点102可以包括光子接口系统(如下面关于图3和图5更详细地说明和描述 的),所述光子接口系统被配置为使得节点102能够从网络100内的其他节点102发射 和接收光学信号。每个集群101内的每个节点102可以通过光纤直接连接到同一集群101 内的每个其他节点102。每个节点102的光子接口系统也可以通过光学互连结构103直 接连接到每个其他不同集群101的至少一个节点。在各种实施例中,光学互连结构103 可以包括单模光纤、多模光纤或其组合中的一种或多种。为了便于参考,图1图示了将 每个集群101连接到其他集群101的单条线,每条线表示从网络100内的第一集群101 的节点102到不同于所述第一集群的第二集群的节点102的至少一个直接连接。
19.在各种实施例中,网络100可以包括通信地耦接到集群101(和节点)的网络控制器 120。网络控制器120可以被配置为管理网络100内的节点的操作。在各种实施例中,网 络控制器120可以被配置为设置网络100的网络拓扑,包括定义通信路径的路由分配(如 下面关于图2a至图5更详细讨论的)。
20.图2a图示了根据本文公开的技术的实施例的两个示例集群101之间的光学互连200 的示例。示例光学互连200仅被呈现用于说明性目的并且不应被解释为限制本公开的技 术的范围。为了便于参考,光学互连200示出了两个集群101a、101b之间的互连,但是 光学互连200可以包括多个集群101。如图2a所示,第一集群101a包括四个节点102a
‑ꢀ
1至102d

1(一般称为“节点102

1”,统称为“节点102

1”),并且第二集群101b包 括四个节点102a

2至102d

2(一般称为“节点102

2”,统称为“节点102

2”)。尽管 每个集群101a、101b被描绘为具有四个节点102,但是本文公开的技术适用于包括多个 节点102(例如,两个、四个、六个、八个、十个)的集群101。在各种实施例中,集群 101中的一个或多个可以包括与至少一个其他集群101不同数量的节点。
21.如图2a所示,每个节点102分别通过光学互连结构103(图1所示)的集群内直接 连接201a

1至201f

1和201a

2至201f

2(一般称为“集群内直接连接201”,统称为
ꢀ“
集群内直接连接201”)连接到集群101a、101b内的每个其他节点102。每个集群内 直接连接201可以包括每个节点102之间的一个或多个光学信道。在各种实施例中,每 个集群内直接连接201可以包括单模光纤、多模光纤或其组合中的一种或多种。
22.在各种实施例中,光学互连200包括多个集群间直接连接202

1至202

4(一般称为
ꢀ“
集群间直接连接201”,统称为“集群间直接连接202”),使得集群101a、101b之 间能够进行通信。如图所示,每个节点102

1具有与节点102

2的集群间直接连接202。 作为非限制性示例,集群101a的节点102b

1具有到第二集群101b的节点102b

2的直接 连接。在所示实施例中,每个节点102

1、102

2可以包括四个直接连接(例如,三个集 群内直接连接202和一个集群间直接连接204)。以这种方式,总共192个直接连接构成 了图1所示的光学互连结构103上的光学互连200(例如,六个集群,每个集群包括四个 节点)。因此,需要192根光纤,这可以用192根单向光纤电缆或96根双向光纤电缆(每 根电缆包含一根发射光纤和一根接收光纤)来实现。参考图2a的示例实施例,第一集群 101a的节点102a

1连接到第二集群101b的节点102a

2,第一集群101a的节点102b

1连 接到第二集群101b的节点102b

2,依此类推。以这种方式,每个节点102用作每个其他 集群101中的相应节点的集群接口。
集群101内以及每个集群接口节点之间的通信的编码波长分配以实施任何集群中的节点 之间的较低等待时间通信路径。为了便于讨论,将关于图2a和图2b中所示的两个集群 示例来讨论路由分配,但是下面讨论的路由分配可以针对多个不同的集群以及每个集群 和/或网络内的多个节点进行缩放。在非限制性示例中,每个集群101a、101b可以具有一 组本地化(localized)波长,每个本地化波长被分配给同一集群内的节点。下面的表1提 供了第一集群101a和第二集群101b的一组本地化波长的示例分配频率。
[0029][0030]
表1
[0031]
如表1所示,第一集群101a包括第一组本地化波长,该组本地化波长包括(λ
a1
、λ
b1
、 λ
c1
、λ
d1
),并且第二集群101b包括第二组本地化波长,该组本地化波长包括(λ
a2
、λ
b2
、 λ
c2
、λ
d2
)。相应本地化组内的每个频率被分配给相应集群内的每个节点。因此,对于集 群内通信(即,图2a所示的通过集群内直接连接201

1的通信),每个节点102

1将能 够将数据分组调制到特定的波长上以将数据直接发送到该相应节点。对于第二集群101b, 也示出了相同的情况。在一些实施例中,第一本地化组和第二本地化组可以包括相同组 的波长。以这种方式,可以执行用于集群内通信的波长路由,使得相同的波长被分配给 每个本地集群内的相同顺序的节点(即,节点102a

1和102a

2将各自被分配波长λ
a
用于 集群内通信)。
[0032]
除了具有如表1所示分配的一组本地化波长中的波长之外,集群内的每个节点102 可以进一步具有为其分配的一组集群间波长中的波长。在各种实施例中,分配给每个节 点的集群间波长可以不同于所分配的本地化波长。表2图示了图2a的所描绘的实施例 中的每个节点的波长分配的示例。
[0033][0034]
表2
[0035]
如表2所示,该组集群间波长可以包括(λ
a3
、λ
b3
、λ
c3
、λ
d3
)。因此,如果节点102c
‑ꢀ
1将从第二集群101b中其对应的集群接口节点接收包含在集群内频率λ
c3
上调制的数据 的信号,则节点102c

1可以标识所述数据是打算给自己的并且相应地处理所述数据。在 示例表2中,用于每个集群101a、101b的该组集群间波长包含相同的波长。在一些其他 实施例中,每组集群间波长可以包括一个或多个不同的波长。
[0036]
在一些实施例中,每个相应集群中的每个节点可以被分配一个以上的本地化波长
和/ 或集群间波长。作为非限制性示例,第一集群101a的该组本地化波长可以包括四个以上 的波长,其中本地节点102

1中的至少一个被分配至少两个本地化波长。为集群内和/或 集群间通信分配一个以上的波长可以为给定的通信路径提供额外的带宽,在针对一个或 多个所分配的频率出现电路和部件问题的情况下提供冗余,或者这两者的组合。
[0037]
为网络中的每个节点分配一个或多个波长使得网络内每个节点处的光子接口系统能 够用作不打算给接收节点的任何数据分组的通过光学设备。图3提供了根据本文公开技 术的实施例的示例光子接口系统300。示例光子接口系统300仅被提供用于说明性目的 并且不应被解释为将所述技术的范围仅限于所描绘的实施例。在各种实施例中,光子接 口系统300可以被包括在网络的多个节点中的每一个内,比如关于图1至图2b讨论的 网络100和节点102。为了便于参考,将使用图2a至图2b的节点102a

1的光子接口系 统300来讨论光子接口系统300。关于图3对光子接口系统300的部件和操作的讨论适 用于网络的节点内的所有光子接口系统300,除非另有明确说明。此外,为了便于讨论, 光子接口系统300是关于包括两个集群的网络来讨论的,每个集群包括四个节点(例如, 2x 4网络),类似于图2a和图2b。尽管关于2x4网络进行了讨论,但是本文公开的 技术适用于包括多个集群的网络,每个集群包括多个节点,并且本文公开的技术不应被 解释为仅限于所描绘的实施例。最后,尽管示出了光子接口系统300的各种部件的特定 布局和配置,但是光子接口系统300内的部件的特定放置可以基于特定实施方式来修改 并且不应被解释为将所述技术的范围仅限于图3中描绘的特定配置/布局。
[0038]
在各种实施例中,光子接口系统300可以代替一个或多个其他接口卡(例如,传统 nic、智能nic等)来实施,而在其他实施例中,光子接口系统300可以与一个或多个 其他接口卡结合使用。在各种实施例中,光子接口系统300可以与一个或多个电子处理 部件共同封装,所述一个或多个电子处理部件被配置为转换打算给相应节点(例如,作 为集成电路的一部分)的光学信号。
[0039]
如图3所示,光子接口系统300可以包括其上设置有多个光学元件的光子基板301。 在各种实施例中,光子基板301可以包括一种或多种光子材料,包括但不限于硅、玻璃、 绝缘体上硅(soi)或能够路由光学信号和/或用于硅光子设备的其他材料。在各种实施例 中,光子基板301可以包括一种或多种类型的半导体基板材料。多个光学路由元件302a、 302b、303a、303b(一般称为“光学路由元件302、303”,统称为“光学路由元件302、 303”)可以设置在光子基板301上和/或所述光子基板内。在各种实施例中,多个光学路 由元件302、303可以包括光学波导、光纤或其他光学路由部件中的一种或多种。
[0040]
光学路由元件302、303可以被配置为用作单向路由元件,使得光仅在一个方向上穿 过光学路由元件302、303。在各种实施例中,光学路由元件302、303可以包括一组接收 光学路由元件302a、302b(一般称为“接收光学路由元件302”,统称为“接收光学路 由元件302”)和一组发射光学路由元件303a、303b(一般称为“发射光学路由元件303”, 统称为“发射光学路由元件303”)。
[0041]
在该组发射光学路由元件303内,可以包括集群内发射路由元件303a和集群间发射 路由元件303b。在各种实施例中,可以包括多个集群内发射路由元件303a和/或多个集 群间发射路由元件303b。如图3所示,集群内发射路由元件303a可以光学地耦接到集群 间发射源304a。尽管被示为邻近光子基板301,但是集群内发射源304a(以及集群间发 射源
304b)可以设置在光子基板301上。在各种实施例中,集群内发射源304a可以被配 置为通过耦接部件305将一个或多个波长的光耦接到集群内发射路由元件303a的输入端 中。输入耦接部件305的非限制性示例包括光栅耦接器、电介质镜、dbr镜或适用于光 纤至芯片以及芯片至光纤耦接的其他耦接部件。在各种实施例中,集群间发射源304a可 以被配置为生成该组本地化波长(如上面关于表1和表2所讨论的那些)中的每个波长 的光。
[0042]
在一些实施例中,集群间发射源304a可以被配置为当相应节点(在所示实施例中, 节点102a

1)具有要传送给集群内相应的一个或多个其他节点的数据时生成一个或多个 本地化波长的光。作为非限制性示例,集群内发射源304a可以被配置为当节点102a

1向 节点102c

1发送数据分组时生成波长为λ
c1
的光,而不是其他本地化波长的光。集群内发 射源304a可以包括一个或多个单波长光源、多波长光源或其组合。在一些实施例中,在 一个以上的光源构成集群内发射源304a的情况下,耦接部件305可以包括被配置为将各 个频率中的每个频率的光耦接到集群内发射路由元件303a上的多个耦接部件305。在一 些实施例中,组合器(图3中未示出)可以设置在集群内发射路由元件303a的输入端以 将由集群内发射源304a的一个以上光源生成的光组合成单个多波长光学信号,耦接部件 305被配置为将所述单个多波长光学信号耦接到集群内发射路由元件303a上。
[0043]
多个集群内调制器306可以光学地耦接到集群内发射路由元件303a。打算给集群(在 图3中,集群101a)内的一个或多个节点的数据需要被调制或编码到穿过集群内发射路 由元件303a的光信号上。集群内调制器306可以被配置为将数据分组调制到穿过集群内 发射路由元件303a的与预期接收方相关联的频率上。如图3所示,集群内调制器306光 学地耦接到集群内发射集群303a并且被配置为将信息调制到特定的本地化波长上。作为 非限制性示例,如果节点102a

1想要向集群101a内的节点102b

1发送数据,则λ
b1
调谐 光学调制器306可以在集群内发射路由元件303a内调制该频率的光。一旦被调制,频率 为λ
b1
的光将编码有打算给节点102b

1的数据。在各种实施例中,集群内调制器306可以 包括本领域中已知的一种或多种类型的光学调制器,包括但不限于环形调制器。
[0044]
如上面所讨论的,相应集群101内的每个节点102被配置为用作不同集群101中的 一个节点102的集群接口。参考图2a,节点102a

1用作第二集群101b的节点102a

2的 集群接口。因此,如果节点102a

2想要向第一集群101a中的节点102

1中的任何一个发 送数据或消息,则节点102a

2必须向节点102a

1发送信息。因此,该组接收光学路由元 件302可以包括集群间接收元件302b。在各种实施例中,集群间接收元件302b可以连接 到来自第二集群101b的节点102a

2的一根或多根光纤。在各种实施例中,耦接部件305 (类似于关于集群内发射路由元件303a讨论的耦接部件305)可以被配置为通过集群间 接收路由元件302b的输入端将来自节点102a

2的传入光耦接到集群间接收路由元件302b上。关于向光学路由元件302、303输入光和/或从所述光学路由元件输出光的方法 的讨论应被解释为适用于所有光学路由元件302、303的所有光输入和输出,除非另有明 确说明。
[0045]
在各种实施例中,节点接收器307可以光学地耦接到集群间接收路由元件302b。在 各种实施例中,一个或多个节点接收器307可以光学地耦接到集群间接收路由元件302b。 节点接收器307被配置为检测何时在为自己分配的集群间频率上存在数据。这里,根据 上面的表2,节点接收器307被配置为检测频率为λ
a3
的光是否包括在从节点102a

2接收 的集群间通信中。在各种实施例中,如果检测到相应频率的光,则一个或多个滤波器部 件307a
可以从集群间接收路由元件302b上的信号中滤出该频率的光。滤波后的光信号 可以从滤波器部件307a路由到被配置为检测光的光电检测器307b。在各种实施例中,光 电检测器307b可以被配置为将滤波后的光转换到电域,所述电域可以被路由(图3中未 示出)到节点102a

1的一个或多个处理器。
[0046]
如果任何其他集群间波长(或任何其他频率)的光存在于集群间接收路由元件302b 上,则其将继续穿过集群间接收路由元件302b去往交换部分308。交换部分308使得在 集群间接收路由元件302b上接收的数据能够被添加到集群内发射路由元件303a上的集 群内通信信号。因为所述光没有在节点接收器307处被滤出,所以剩余的数据必须打算 给集群101a内的另一个节点。在交换部分308中,可以包括一个或多个光学滤波器309。 每个光学滤波器309可以被调谐以从集群间接收路由元件302b中移除其上存在的相应频 率,并将该滤波后的频率添加到集群内发射路由元件303a上的光学信号。以这种方式, 从节点102a

2到第一集群101a内的一个或多个其他节点的消息和数据可以被“直接
”ꢀ
路由,而不需要节点102a

1停止其正在运行的任何进程来分析接收的信号。以这种方式, 网络中的间接连接的节点之间的等待时间可以最小化到零增加等待时间。与本领域中已 知的其他路由方法和现有技术的nic不同,本公开的技术不会给间接连接的节点之间的 光学信号的传输增加任何额外的等待时间。以这种方式,网络中的间接连接的节点之间 的等待时间可以减少到光纤中的光学信号的飞行时间。打算给其他接收方节点的消息以 被动方式被路由。
[0047]
来自节点102a

1的集群内通信通过设置在集群内发射路由元件303a的输出端上的 输出耦接部件310从集群内发射路由元件303a输出。在各种实施例中,输出耦接部件 310可以类似于上面讨论的耦接输入耦接部件305,并且对输入耦接部件305的讨论同样 适用于输出耦接部件310。在各种实施例中,输出耦接部件310可以被配置为将腔内发射 路由元件303a上的光学信号解复用和/或拆分成多个输出信号,每个输出信号通过腔内 直接连接(如关于图2a和图2b所讨论的那些)中的一个发送。在一些实施例中,解复 用和/或拆分部件(图3中未示出)可以耦接到输出耦接部件310并且被配置为执行解复 用和/或拆分。在各种实施例中,集群内发射路由元件303a上的信号可以被拆分成三个输 出信号,每个输出信号包括在一个或多个集群内调制器306和/或交换部分308之后集群 内发射元件303a上的多波长信号中包括的所有频率。在各种实施例中,输出信号可以被 解复用,使得产生三个单独的输出信号,每个输出信号仅包括分配给直接连接的节点的 频率。作为非限制性示例,第一输出信号可以包括来自上面表1和表2的与节点102b

1 相关联的波长,第二输出信号可以包括与节点102c

1相关联的波长,并且第三输出信号 可以包括与节点102d

1相关联的波长。
[0048]
可以看出,集群内发射路由元件303a和集群间接收路由元件302b的组合可以通过 交换部分308产生并发送包括打算给除节点102a

1之外的节点的数据的多波长光学信号。 此外,这可以在不需要中断节点102a

1上发生的任何进程的情况下执行。组合的集群内 发射信号通过集群内发射路由元件303a的输出端处的输出耦接部件310从集群内发射路 由元件303a输出。
[0049]
光子接口系统300可以进一步包括使得节点102a

1能够接收集群内通信和发射集群 间通信的光学元件。如图3所示,光子接口系统300可以进一步包括集群间发射路由元 件303b。在各种实施例中,集群间发射源304b可以通过输入耦接部件305光学地耦接到 集
群间发射路由元件303b,在一些实施例中,所述输入耦接部件可以类似于其他输入耦 接部件305。集群间发射源304b可以类似于集群内发射源304a,并且对所述集群内发射 源进行的讨论适用于集群间发射源304b。在各种实施例中,集群间发射源304b可以被配 置为生成该组集群间波长中的波长的光。在各种实施例中,集群内发射源304a和集群间 发射源304b可以构成相同的发射源304,本地化组和集群间组的相同波长相同,其中, 所生成的源光被拆分(通过拆分部件(图3中未示出)的耦接部件305)并耦接到集群内 发射路由元件303a和集群间发射路由元件303b中的每一个。
[0050]
类似于集群内通信,将数据调制或编码在集群间发射路由元件303b内的信号上。在 各种实施例中,多个集群间调制器311可以光学地耦接到集群间发射路由元件303b。在 各种实施例中,集群间调制器311可以包括与集群内调制器306的部件类似的部件。每 个集群间调制器311可以被配置为基于来自节点102a

1的数据/消息的目标来将信息调 制到该组集群间波长中的相应波长上。尽管节点102a

1可能想要向第二集群101b内的 不同节点发送数据,但是集群间发射路由元件303b的调制输出是通过直接集群间连接 (类似于图2a所示的集群间直接连接201

1)发送到节点102a

2的。这是因为节点102a
‑ꢀ
2用作节点102a

1到集群101b的接口。节点102a

1想要发送到第二集群101b的任何节 点102

2的任何和所有消息都将被发送到其集群接口(即,节点102a

2)。节点102a

2 的光子接口系统300将执行如上面关于集群间接收路由元件302b和集群内发射路由元件 303a讨论的类似类型的被动路由。
[0051]
在各种实施例中,一个或多个集群内通信可以是接收器并且被耦接在集群内接收路 由元件302a上。在一些实施例中,多路复用器或加法器(图3中未示出)可以被包括在 输入耦接部件305之前、之内或之后并且被配置为将从集群内直接连接201

1上的多个 集群内节点接收的光学信号多路复用和/或相加。在各种实施例中,第一集群101a内的每 个其他节点知道为节点102a

1分配的本地化波长并且被配置为将打算给节点102a

1的 数据和/或消息调制在该相应频率的光上。在示例实施例中,节点102a

1与频率λ
a1
相关 联,并且因此第一集群101a内的其他节点可以被配置为将从其自身到节点102a

1的数 据调制到该相应波长上。当在集群内接收路由元件302a上检测到频率为λ
a1
的光时,所述 光可以被接收节点312a滤出。在各种实施例中,接收节点312a可以类似于关于集群间 接收路由元件302b讨论的接收节点307,只是接收节点312a可以被调谐到为节点102a
‑ꢀ
1分配的集群内波长,而接收节点307被调谐到分配的集群间波长。从集群内接收路由元 件302a滤出的光可以通过光电检测器转换到电域,类似于关于接收节点307讨论的设 置。
[0052]
除了集群内波长之外,光子接口系统300还可以接收在分配给节点102a

1的集群间 波长上调制的数据。如上面所讨论的,集群的每个节点仅连接到不同节点中的一个节点, 其中该节点用作到集群中的所有其他节点的接口。因此,如果除了第二集群101b的节点 102a

2之外的一个或多个其他节点102

2需要与节点102a

1通信,则该通信必须通过第 一集群101a的其他节点中的一个来发送。因此,节点102a

1的光子接口系统300可以进 一步包括另一个接收节点312b,所述接收节点被配置为检测分配给节点102a

1的所分配 集群间波长的光。以这种方式,节点102a

1能够通过虚拟“直接”连接从第二集群101b 的另一个节点102

2(不是102a

2)接收数据,而不需要直接连接(即,额外的物理连接 和电缆)。
[0053]
关于输入到光子接口系统300和从所述光子接口系统输出的光学信号,这种通信
可 以通过一种或多种类型的光纤(例如,带状光纤、多模光纤)、芯片套管、波导或本领域 中已知的其他光学路由部件进行,以将光学信号从一个点传递到下一个点。在各种实施 例中,光子接口系统300可以包括插入板,所述插入板可以安装到印刷电路板(pcb) 上。一个或多个光电接口可以将光子接口系统300电连接到设备的电接口。以这种方式, 被确定为打算给相应设备的光学数据(即,在分配给相应设备的波长上编码的数据)可 以由一个或多个光电检测器转换并被提供给cpu或其他处理电路。
[0054]
对光子接口系统300进行编程使得能够在网络内的节点之间实现不同的路由拓扑, 而不需要改变系统的硬件。作为非限制性示例,通过对光子接口系统300的编程,可以 改变网络拓扑,而不需要改变设备之间的任何物理连接。在各种实施例中,光子接口系 统300可以进一步包括编程处理器314,以控制光子接口系统300的各种光学滤波器和 光学调制器的调谐。在图3的所描绘的实施例中,编程处理器314可选地被示为设置在 光子基板301上并且可以通信地耦接到多个调谐部件,所述调谐部件连接到光子接口系 统301的光学滤波器和光学调制器中的每一个。调谐部件的非限制性示例包括加热器、 电触点、电磁场源或本领域中已知的用于调谐类似于光子接口系统300的光学滤波器和 光学调制器的光学元件的谐振的其他类型的调谐部件。在各种实施例中,处理器314可 以与光子基板301共同封装(例如,设置在pcb上并且通信地耦接到光子基板301上的 元件)。在各种实施例中,编程处理器314可以进一步被配置为将经转换的信息从光电 检测器中的每一个发送到节点102a

1的一个或多个主处理器。在一些实施例中,编程处 理器314可以具有相关联的非暂态机器可读存储设备(例如,存储器),该非暂态机器 可读存储设备与所述编程处理器通信地耦接并且维护标识集群内节点以及其他集群的节 点的波长分配的信息。
[0055]
尽管输入和输出被示为在光子接口系统300中是分离的,但是在各种实施例中,节 点102a

1可以通过双向光缆光纤与节点102a

2通信。在各种实施例中,连接节点102a
‑ꢀ
1与节点102a

2的光纤的(多个)发射纤芯可以端接在被配置为连接到节点102a

1的第 一光学端口的发射套管中,并且光纤的(多个)接收纤芯可以端接在被配置为连接到节 点102a

1的第二光学端口的接收套管中,而在其他实施例中,(多个)发射纤芯和(多 个)接收纤芯可以端接在发射/接收套管中并且被配置为连接到节点102a

1的集群间光学 端口。在一些实施例中,一个或多个光学端口(集群内光学端口和集群间光学端口两者) 可以设置在光子基板301上,而在其他实施例中,一个或多个光学端口可以与光子基板 301分离,但是通过波导、光学跳线光纤、透镜或其他光学路由元件中的一种或多种光学 地连接到输入耦接器305。
[0056]
图4图示了根据本文公开的技术的实施例的示例方法400。方法400仅被提供用于 说明性目的并且不应被解释为将所述技术的范围仅限于所描绘的示例。为了便于理解, 可以参考图2a和图3中所描绘的示例以提供操作的示例。如图4所示,在操作401处 接收结构通信拓扑。拓扑401可以由通信地耦接到光子接口系统(比如关于图3讨论的 光子接口系统300)的处理部件接收。在各种实施例中,处理部件可以包括光子接口系统 的编程处理器,比如图3的编程处理器314。在一些实施例中,处理部件可以包括相应节 点的一个或多个主处理器。在各种实施例中,结构通信拓扑包括用于网络内的节点之间 的通信的拓扑架构。作为非限制性示例,结构通信拓扑可以指示定义网络的集群间直接 连接202和集群内直接连接201。
[0057]
参考图4,在操作402处,由处理部件基于所接收的结构通信拓扑来确定波长分配信 息。在各种信息中,结构通信拓扑可以包括波长分配(本地化和集群间两者)并且确定所 述信息可以包括标识所接收的结构通信拓扑内的波长分配。在一些实施例中,处理部件 可以基于所接收的结构通信拓扑数据内包括的直接连接数据来确定波长分配信息。在操 作403处,编程部件可以确定光子接口系统的多个光学元件的调谐要求。光学元件的非 限制性示例包括关于图3讨论的光学滤波器、光学调制器、路由元件和耦接部件。在各 种实施例中,确定调谐要求可以包括使用一个或多个调谐部件来定义要施加于光学元件 的一个或多个刺激。作为非限制性示例,编程处理器可以确定节点102a

1将被分配本地 化频率λ
a1
和集群间频率λ
a3
,并且确定调谐图3的节点接收器307、312a、312b以检测并 滤出这些频率的光所需的激励。
[0058]
在操作404处,可以在光子接口系统的光学元件中对波长分配进行编码。对分配信 息进行编码可以包括将在操作403处确定的激励施加于一个或多个调谐部件,使得与即 时节点相关联的频率的光被滤出并检测到,而所有其他光信号在与即时节点的处理部件 的部分没有任何交互的情况下通过。以这种方式,数据能够以光速从一个集群中的节点 被路由到另一个集群中的节点,并且不需要直接的物理连接。即,与需要中间节点来转 换光学信号的传统nic方法不同,使用本文公开的技术的间接通信不会增加传输等待时 间。这减少了大型拓扑(比如hpc中使用的拓扑)所需的物理光缆数量呈指数级增长而 导致的光纤管理问题。
[0059]
本文公开的技术使得大型网络拓扑能够扩展,而不会指数级地增加网络的光纤管理 成本。此外,每个节点的光子接口系统能够在集群与节点之间实现数据分组的接近零等 待时间路由,从而减少系统中的总等待时间以解决复杂的问题。本文公开的技术的实施 例可以使得网络中的非直接连接的节点能够以接近零等待时间进行通信,就好像节点之 间有直接连接一样,而不需要网络中的所有节点之间的物理直接连接。
[0060]
为了扩展网络,可以通过向一个或多个集群添加更多节点、添加一个或多个新集群 或这两者的组合来在每个节点处向光子接口系统添加额外的部件。图5图示了根据本文 公开的技术的实施例的另一个示例光子接口系统500。光子接口系统500仅被提供用于 说明性目的并且不应被解释为限制本文公开的技术的范围。为了便于参考,将关于网络 的第三集群(例如,来自图1的集群101c)对图5进行讨论,但是所述讨论适用于更多 集群和/或节点的任何添加。在图5与图3之间具有共同附图标记的情况下,除非另有明 确说明,否则对这些附图标记的讨论在这些图之间同样适用。示例系统500可以包括根 据下面的表3的波长分配。
[0061][0062]
表3
[0063]
如表3所示,第三集群101c可以具有包括(λ
a4
、λ
b4
、λ
c4
、λ
d4
)的一组本地化波长, 每个波长以类似于上面关于表2讨论的方式来分配。此外,第三集群101c也可以利用像 第一集群101a和第二集群101b的该组集群间波长。在各种实施例中,第一组本地化波 长、第二组本地化波长和/或第三组本地化波长中的每一个可以包括相同的波长。在这样 的实施例中,相同的波长可以在每个集群101内本地地使用。
[0064]
如图5所示,光子接口系统500可以包括与关于图3讨论的部件相同的部件。在各 种实施例中,可以包括额外的集群间发射源504a,所述集群间发射源被配置为输出将被 发射到第三集群101c的节点102a

3的一个或多个波长,所述节点是节点102a

1到第三 集群101c的集群接口。第二集群间发射路由元件503a光学地耦接到集群间发射源504a, 并且被配置为通过第二组光学调制器511将一个或多个数据信号调制到集群间发射路由 元件503a上的光学信号内的波长上。另外,包括第二集群间接收路由元件502a以从集 群101c的节点102a

3接收光学信号。在各种实施例中,第二集群间接收路由元件502a 可以被配置为将频率(除了由节点接收器507滤出的频率之外)路由到如关于图3讨论 的交换部分308。在各种实施例中,可以包括第二交换部分(图5中未示出)以处置来自 节点102a

3的信号。
[0065]
在各种实施例中,集群中的每个节点可以与一个以上的波长(本地化和/或集群间) 相关联。在这种情况下,每个光子接口系统(300和/或500)可以包括一个或多个额外节 点接收器,所述接收器光学地耦接到集群内接收路由元件和集群间接收路由元件中的每 一个并且被配置为检测与节点102a

1相关联的额外的一个或多个频率。
[0066]
图6描绘了可以在其中实施本文描述的各种实施例的示例计算机系统600的框图。 在各种实施例中,计算机系统600可以被实施为关于图1至图5讨论的网络100内的节 点102。计算机系统600包括总线602或用于传送信息的其他通信机制、与总线602耦 接以处理信息的一个或多个硬件处理器604。(多个)硬件处理器604可以是例如一个或 多个通用微处理器。在各种实施例中,硬件处理器604中的一个或多个可以包括关于图 3和图5讨论的编程处理器314。
[0067]
计算机系统600还包括耦接到总线602以用于存储要由处理器604执行的信息和指 令的主存储器606,比如随机存取存储器(ram)、缓存和/或其他动态存储设备。主存 储器
606还可以用于存储在执行要由处理器604执行的指令期间的临时变量或其他中间 信息。这些指令当存储在处理器604可访问的存储介质中时使计算机系统600成为被自 定义为执行指令中指定的操作的专用机器。在各种实施例中,类似于主存储器606的一 个或多个存储器部件可以被设置在一个或多个网络接口618上并且被配置为维护波长分 配信息、网络拓扑信息或网络接口(比如例如关于图3和图5讨论的光子接口系统300 和500)的其他配置要求。
[0068]
计算机系统600进一步包括只读存储器(rom)608或耦接到总线602以用于存储 处理器604的静态信息和指令的其他静态存储设备。比如磁盘、光盘或usb拇指驱动器 (闪存驱动器)等存储设备610被提供并耦接到总线602,用于存储信息和指令。
[0069]
计算系统600可以包括用于实施gui的用户界面模块,所述gui可以作为由(多 个)计算设备执行的可执行软件代码被存储在大容量存储设备中。通过举例的方式,该 模块和其他模块可以包括部件(比如软件部件、面向对象的软件部件、类部件和任务部 件)、进程、函数、属性、过程、子例程、程序代码段、驱动程序、固件、微代码、电路、 数据、数据库、数据结构、表格、数组和变量。
[0070]
通常,如本文所使用的词语“部件”、“引擎”、“系统”、“数据库”、“数据存 储”等可以是指在硬件或固件中实施的逻辑,或者是指以如例如java、c或c 等编程 语言编写的、可能具有入口点和出口点的软件指令集。软件部件可以被编译并链接到可 执行程序,被安装在动态链接库中,或者可以用如例如basic、perl、或python等解释 性编程语言来编写。应当理解的是,软件部件可从其他部件或从其本身调用,和/或可以 响应于检测到的事件或中断而被调用。被配置用于在计算设备上执行的软件部件可以被 提供在计算机可读介质中,比如致密盘、数字视频盘、闪存驱动器、磁盘、或任何其他有 形介质,或者可以被提供作为数字下载(并且可以原始地以要求在执行之前安装、解压 缩或解密的压缩格式或可安装格式来存储)。这样的软件代码可以部分地或全部地存储 在执行计算设备的存储器设备上,以用于由计算设备执行。软件指令可以嵌入在如 eprom等固件中。将进一步理解的是,硬件部件可以包括如门和触发器等连接逻辑单元, 和/或可以包括如可编程门阵列或处理器等可编程单元。
[0071]
计算机系统600可以使用定制的硬接线逻辑、一个或多个asic或fpga、固件和/ 或程序逻辑来实施本文所描述的技术,所述定制的硬接线逻辑、一个或多个asic或fpga、 固件和/或程序逻辑与计算机系统相结合使计算机系统600成为专用机器或者将其编程为 专用机器。根据一个实施例,本文的技术由计算机系统600响应于(多个)处理器604执 行主存储器606中包含的一个或多个指令的一个或多个序列而执行。这种指令可以从另 一个存储介质(比如存储设备610)读取到主存储器606中。主存储器606中包含的指令 序列的执行使(多个)处理器604执行本文所描述的过程步骤。在替代性实施例中,可 以使用硬接线电路系统代替软件指令或与软件指令组合。
[0072]
如本文所使用的术语“非暂态介质(non

transitory media)”及类似术语是指存储使 机器以特定方式操作的数据和/或指令的任何介质。这种非暂态介质可以包括非易失性介 质和/或易失性介质。非易失性介质包括例如光盘或磁盘,比如存储设备610。易失性介 质包括动态存储器,比如主存储器606。非暂态介质的常见形式例如包括软盘、软磁盘、 硬盘、固态驱动器、磁带或者任何其他磁性数据存储介质、cd

rom、任何其他光学数据 存储
介质、具有孔图案的任何物理介质、ram、prom和eprom、闪速eprom、nvram、 任何其他存储器芯片或者盒、以及所述介质的联网版本。
[0073]
非暂态介质不同于传输介质但可以与传输介质结合使用。传输介质参与非暂态介质 之间的信息传递。例如,传输介质包括同轴电缆、铜线和光纤,包括包含总线602的导 线。传输介质还可以采用声波或光波的形式,如在无线电波和红外数据通信期间生成的 声波或光波。
[0074]
计算机系统600还包括耦接到总线602的通信接口618。网络接口618提供耦接到 一个或多个网络链路的双向数据通信,所述一个或多个网络链路连接到一个或多个本地 网络。例如,通信接口618可以是综合业务数字网(isdn)卡、电缆调制解调器、卫星 调制解调器或调制解调器,以向对应类型的电话线提供数据通信连接。作为另一个示例, 网络接口618可以是用于提供与兼容lan(或用于与wan进行通信的wan部件)的 数据通信连接的局域网(lan)卡。还可以实施无线链路。在任何这种实施方式中,网络 接口618发送和接收携载表示各种类型信息的数字数据流的电信号、电磁信号或光学信 号。在各种实施例中,网络接口618中的一个或多个可以包括关于图1至图5讨论的光 子接口系统300、500。
[0075]
网络链路通常通过一个或多个网络向其他数据设备提供数据通信。例如,网络链路 可以提供通过本地网络到主计算机或到由因特网服务提供商(isp)操作的数据设备的连 接。isp进而通过现在通常称为“因特网”的全球分组数据通信网络来提供数据通信服 务。本地网络和因特网两者都使用携载数字数据流的电信号、电磁信号或光学信号。通 过各种网络的信号以及网络链路上和通过通信接口618的信号(其将数字数据携载到计 算机系统600和从所述计算机系统携载数字数据)是传输介质的示例形式。
[0076]
计算机系统600可以通过(多个)网络、网络链路和通信接口618发送消息和接收 数据,包括程序代码。在因特网示例中,服务器可以通过因特网、isp、本地网络和通信 接口618传输应用程序的请求代码。
[0077]
所接收的代码可以在被接收到时由处理器604执行,和/或存储在存储设备610或其 他非易失性存储装置中以供稍后执行。
[0078]
在前面章节中描述的每个过程、方法和算法均可以在由包括计算机硬件的一个或多 个计算机系统或计算机处理器所执行的代码部件中实施并由所述代码部件全部或部分地 进行自动化。所述一个或多个计算机系统或计算机处理器还可以操作以支持“云计算
”ꢀ
环境中相关操作的进行、或者操作作为“软件即服务”(saas)。所述过程和算法可以在 专用电路中部分地或全部地实施。上面描述的各种特征和过程可以彼此独立地使用,或 者可以以各种方式进行组合。不同的组合和子组合旨在落入本公开的范围内,并且在一 些实施方式中可以省略某些方法或过程框。本文描述的方法和过程也不限于任何特定的 顺序,并且与所述方法和过程相关的框或状态可以以适当的其他顺序进行、或者可以并 行进行、或者以某种其他方式进行。可以向所公开的示例实施例添加框或状态或从中移 除框或状态。可以将某些操作或过程的进行分配到多个计算机系统或计算机处理器之中, 使其不是仅驻留在单个机器内,而是跨多个机器部署。
[0079]
如本文所使用的,电路可以利用任何形式的硬件、软件或其组合来实施。例如,可以 实施一个或多个处理器、控制器、asic、pla、pal、cpld、fpga、逻辑部件、软件 例程或其他机制以构成电路。在实施中,本文描述的各种电路可以被实施为分立电路, 或者所描述
的功能和特征可以在一个或多个电路之中部分地或全部地共享。即使可以分 别地描述或主张各种特征或功能元件作为单独的电路,这些特征和功能也可以在一个或 多个公共电路之间共享,并且这种描述不应要求或暗示需要单独的电路来实施这样的特 征或功能。在使用软件来全部或部分地实施电路的情况下,这样的软件可以被实施以与 能够执行关于所述软件所描述的功能的计算系统或处理系统(比如计算机系统600)一起 操作。
[0080]
如本文所使用的,术语“或”可以以包括性或排他性的意义来解释。此外,不应将 对单数形式的资源、操作或结构的描述理解为排除复数。除非另有特别说明,或在如所 使用的环境内以其他方式被理解,否则条件语言(除其他外,比如“可(can)”、“可 以(could)”、“可能(might)”、或“会(may)”)一般地旨在传达某些实施例包 括(而其他实施例不包括)某些特征、元素和/或步骤。
[0081]
除非另有明确说明,否则本文档中使用的术语和短语及其变体应被解释为开放式的 而不是限制性的。形容词(比如“常规(conventional)”、“传统(traditional)”、“正 常(normal)”、“标准(standard)”、“已知(known)”和类似含义的术语)不应被 解释为将所描述的项限制为给定时间段或在给定时间可用的项,而是应该被理解为包含 可能现在或将来的任何时候都可用或已知的常规、传统、正常或标准技术。在一些实例 中,宽泛单词和短语(比如“一个或多个”、“至少”、“但不限于”或其他类似的短 语)的存在不应被理解为是指在这类宽泛短语可能不存在的情况下意图或要求更窄的情 况。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献