通用网络接口控制器的制作方法

文档序号:7855211阅读:209来源:国知局
专利名称:通用网络接口控制器的制作方法
技术领域
本公开涉及通用网络接ロ控制器。
背景技术
适合于企业或云计算的服务器计算机网络需要可扩展的服务器基础设施,以主控传统的或分布式应用程序。在企业模型中,应用程序实例在其各自的物理(或虚拟)服务器中执行并且依靠网络与在其他服务器上的其他应用程序或网络服务通信。然而,分布式应用程序被分解和部署在多个物理(或虚拟)服务器上。此外,对于云基础设施,多个分布式应用程序通常共存在同一服务器和网络结构上。由于快速变化的容量和工作量需求,由交换机组成的网络结构应该能够在不影响
每个服务器的成本的情况下扩展到更大的节点数。并且,网络结构应尽可能展现出对称特性。具体地,在基础设施中的两个服务器之间可获得的网络吞吐量不应根据在数据中心内的服务器的相关物理位置而本质上不同。上述要求所帯来的趋势之ー是将大型多级结构应用于互连物理服务器基础设施。与这些网络相关联的拓扑是胖树,或胖树与单个或两个在底部层发源的子树的组合。无论就路径选择或是容量而言,与这种多级和多路径网络相关联的革新还未延伸进服务器。事件的状态是端点利用具有可选的链路聚合能力的单宿主或双宿主以太网接ロ(多个链路共享的单个介质访问控制(MAC)地址)连接至网络的状态。服务器接ロ选择是基于相关联的默认业务路由,以及至源IP地址的物理接ロ。结构路径选择并不明确地受服务器支持,并且路由算法通常不延伸至服务器端点。

发明内容
(I) 一种网络接ロ控制器(NIC),用于将主机与交換结构进行接ロ,包括被设计为对于与所述主机相关联的存储器中的数据在所述主机中产生交换结构接ロ的逻辑;以及,被设计为产生与交换结构端点相关联的本地排队信息的逻辑。(2)根据(I)所述的网络接ロ控制器,进ー步包括用于将所述主机与分组网络进行接ロ的逻辑,该逻辑被设计为对干与所述主机相关联的存储器中的数据产生分组网络接□。(3)根据(2)所述的网络接ロ控制器,进ー步包括单个物理接ロ,被设计为传输交换结构数据和分组网络数据这两者;以及,多路复用器,被设计为多路复用所述交换结构数据和所述分组网络数据以通过所述单个物理接ロ。(4)根据(2)所述的网络接ロ控制器,进ー步包括入口传输逻辑,被设计为将交换结构数据和分组网络数据分别传输至所述交换结构和所述分组网络;以及,出ロ接收逻辑,被设计为分别从所述交换结构和所述分组网络接收交换结构数据和分组网络数据,并且将所接收的交换结构数据和所接收的分组网络数据存储在与所述主机相关联的所述存储器中。
( 5 )根据(4 )所述的网络接ロ控制器,其中,所述入口传输逻辑和所述出口接收逻辑被通信地耦合至与所述主机相关联的输入/输出(I/O)接ロ。(6)根据(4)所述的网络接ロ控制器,其中,所述入口传输逻辑管理与所述主机相关联的所述存储器中的至少ー个虚拟输出队列(V0Q),对应于目的地端点的每个虚拟输出队列被耦合至所述交换结构和所述分组网络中的ー个。(7)根据(4)所述的网络接ロ控制器,其中,所述入口传输逻辑被设计为从与所述计算机相关联的所述存储器接收结构数据包和网络数据包,各数据包均具有报头,并且其中,所述入口传输逻辑被设计为基于各自的报头产生交换结构链路和分组网络链路,所述交換结构链路定义通过所述交换结构到达结构目的地端点的路径部分,所述分组网络链路定义通过所述分组网络到达网络目的地端点的路径部分。(8)根据(7)所述的网络接ロ控制器,其中,所述目的地端点是计算机、路由器或虚 拟机中的ー个。(9)根据(4)所述的网络接ロ控制器,其中(A)所述入口传输逻辑包括(a)入口包处理器,通信地耦合至所述主机以从所述主存储器接收所述结构数据和所述网络数据,所述入口包处理器被设计为定义所述主存储器中的虚拟输出队列(V0Q),并且将所述队列映射至目的地端点,所述入口包处理器还被设计为修改与结构数据包相关联的报头,使得所述结构数据能够在时间管理域中被管理;(b)入口业务管理器,通信地耦合至所述入口包处理器,以接收所述结构数据和所述网络数据,所述入口业务管理器被设计为调度所述虚拟输出队列中的所述结构数据和所述网络数据,并且控制从所述主存储器的出列;(c )入口传输处理器,通信地耦合至所述入ロ业务管理器,以接收所述结构数据和所述网络数据,所述入口传输处理器被设计为分别将所述结构数据和所述网络数据传输至所述交换结构和所述分组网络;并且(B)所述出ロ接收逻辑包括(a)出ロ接收处理器,通信地耦合至所述交换结构和所述分组网络,以分别接收所述结构数据和所述网络数据,所述出ロ接收处理器被设计为将所述结构数据和所述网络数据映射至出口队列;(b)出口业务管理器,通信地耦合至所述出口接收处理器,以接收所述结构数据和所述网络数据,所述出口业务管理器被设计为管理所述出口队列;以及(c)出口包处理器,通信地耦合至所述出口业务管理器,以接收所述结构数据和所述网络数据,所述出口包处理器被设计为修改与结构数据包相关联的报头,以从所述时间管理域去除所述结构数据包,所述出ロ包处理器还被设计为将所述结构数据和所述网络数据传输至所述主存储器。(10)根据(9)所述的网络接ロ控制器,其中,所述入口传输逻辑进一歩包括分割器,被设计为将每个结构数据包分割成多个单元,并且其中,所述多个単元被传输至所述交换结构。(11)根据(I)所述的网络接ロ控制器,其中,所述交换结构包括一个或多个结构交换机。(12)根据(11)所述的网络接ロ控制器,其中,所述交换结构包括多个交换级。(13) ー种集成电路微芯片,具有根据(I)所述的网络接ロ控制器。( 14) 一种计算机,具有根据(I)所述的网络接ロ控制器。 ( 15) —种数据中心,具有根据(I)所述的网络接ロ控制器。
(16) 一种系统,包括交换结构;至少ー个第一通用网络控制器(UNIC),以及第二通用网络控制器和结构接入点(FAP)中的至少ー个;并且其中,每个通用网络控制器包括入口传输逻辑,被设计为将与计算机相关联的存储器中的交换结构数据和分组网络数据分别传输至交换结构和分组网络;以及,出ロ接收逻辑,被设计为分别从所述交换结构和所述分组网络接收所述交换结构数据和所述分组网络数据,并且将所接收的交换结构数据和所接收的分组网络数据存储在与所述计算机相关联的所述存储器中。(17) ー种方法,包括以下步骤在主机中提供交换结构接ロ ;以及,在与所述主机相关联的存储器与交换结构之间传输结构数据。(18)根据(17)所述的方法,进ー步包括以下步骤产生与位于所述交换结构的远端处的端点相关联的本地排队信息。(19)根据(17)所述的方法,其中,所述步 骤在微芯片中执行,并且其中,以下进ー步的步骤在所述微芯片中执行提供分组网络接ロ ;以及,在与所述主机相关联的所述存储器与分组网络之间传输分组网络数据。(20)根据(19)所述的方法,进ー步包括以下步骤管理与所述主机相关联的所述存储器中的至少ー个虚拟输出队列(V0Q),每个虚拟输出队列对应于耦合至所述交换结构和所述分组网络中的一个的目的地端点。


參照下面的附图可更好地理解本公开的多个方面。图中的组件并不一定是按比例的,而是重点放在清楚地示出公开的原理。此外,在图中,在所有这几个视图中,相同的參考标号标示对应的部件。图IA是根据本公开各种实施方式的采用通用网络接ロ控制器(UNIC)的主机(例如,服务器)以使主机能够通过交换结构(switch fabric)和包网络交换数据的示意性框图。图IB是原始交换结构和根据图IA的UNIC的实现方式获得的扩展的交换结构的示意性框图。图2A是根据本公开的各种实施方式的图IA的UNIC的实例的示意性框图。图2B是示出被图IA和图2A的UNIC所采用的操作和方法的流程图。图3是根据本公开的各种实施方式的图IA的UNIC的实例的功能框图。图4是根据本公开的各种实施方式的采用多级结构交換机和以太网边缘交換机的实例的图IA的UNIC的示例性框图。图5是根据本公开各种实施方式的位于刀片服务器中的图IA的多个UNIC的示意性框图,其中,中板(midplane)可用于交换结构和/或分组网络。图6是根据本公开的各种实施方式的位于刀片服务器(结构延伸至刀片服务器箱)的图IA的UNIC,以使能在数据中心中对结构和路由器选择性分配端ロ的示意性框图。图7是示出根据本公开的各种实施方式的图6的刀片服务器的扩展的示意性框图,其中,即使在交换结构被扩展到在数据中心中容纳附加的刀片服务器时,骨干网边缘位于刀片交換机并且维持在该处。
具体实施例方式參照图IA和图1B,本公开提供了连同多层计算机网络使用的通用网络接ロ控制器(UNIC !universal network interface controller) 10 的各种实施方式。UNIClO 主要地(a)将网络结构12延伸进源或主端点,或主机14,使得结构数据9可通过交换结构12被传递,以及作为进一歩的选择,(b)提供包接ロ,使得网络数据21可被传递至分组网络13并从分组网络传递。UNIClO是ー类新的网络接ロ,能够直接与交换结构12接ロ,并实现与传统结构端点15A的结构接入点(FAP :fabric access point)相关联的路径选择、拥塞控制、路由以及故障转移功能。UNIClO可以以软件、硬件、固件或其组合来实现,但优选地,UNIClO以单个微芯片实现,并且定位在与主机14相关联的诸如网络接ロ卡(NIC)的板上。图IB示出了原始交换结构31到扩展交换结构31’的扩展。所获得的扩展交换结构31’可被概念化为这样的交换结构,S卩,能任意结合多个这些UNIClO和具有FAP19的传统结构端点15A以产生包括边缘结构端口和本地服务器端点端ロ的扩展交换结构12。UNIClO当与关联于网络结构12的结构交換机12A-12H (图4)结合时使交換跳的数量最小,消除路 径中的交换的ー个级,在消除与交换结构12相关联的FAP19中的深度缓冲器和与分组网络13相关联的网络交換机的同时提供对应于目的地端点15A-15J (为解决队头阻塞)的虚拟输出队列(VOQ)ll,使在源和目的地端点之间可能的单个流呑吐量最大,以及对V0Q11提供精确的调度和拥塞管理。在下面的讨论中,提供了 UNIClO和其组件的详细描述。再次參照图1,图I示出了采用了根据各种实施方式的UNIClO的主机(例如,服务器)的实例的示意性框图。主机14通过(a)包括一个或多个结构交换机12A-12H (图4)的网络结构12,但通常多级交换机配置(图4中所示出的实例),或(b)分组网络13与分别由各个參考标号15A、15B、15J标示的一个或多个端点A、B、J通信。在交换结构12或分组网络13的远端的端点15A、15B、15J通常是计算机、路由器或虚拟机(VM)。当以包或単元形式的结构数据27A被传递至端点15A或从端点15A传递时,端点15A利用包括结构域与包交换域之间的接ロ的FAP19。当以包或单元形式的结构数据27B被传递至端点15B或从端点15B传递时,端点15B利用包括结构域与包交换域之间的接ロ的UNIC10。当以包形式的网络数据29B被传递至端点15B或从端点15B传递吋,不需要FAP19,并且通过UNIC10来传递包。当以数据包形式的网络数据29J被传递至端点15J或从端点15J传递时,不需要UNIClO 或 FAP19。主机14包括至少ー个主处理器16 (例如,中央处理器(CPU),多个处理器等)和主存储器18,二者都经由本地接ロ 20通信地耦合。主存储器18可包括易失和非易失存储器,例如但不限于,动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、只读存储器(ROM)、硬盘驱动器、固态驱动器等。然而,对于这个讨论,主存储器18被假定为是DRAM。本地接ロ 20可包括一条或多条总线、接口和/或连接。例如,本地接ロ 20可包括带有所附的地址/控制总线的数据总线或可理解的其他总线结构。此外,存储器18中所存储的是ー个或多个V0Q11、数据22、软件(S/W)23以及控制(CNTL)元数据24等。S/W23通常包括操作系统(0/S) 30,可备选地包括虚拟机(VM) 25,并可备选地包括其他应用程序,所有前面所述的通过主处理器14来执行。VM25是像物理机一样执行程序的机器(即,计算机)的软件实现方式。V0Q11在操作上可被表示为内核缓冲区队列、用户空间队列、或通过用户空间进程执行入队/出队操作的混合队列,而VOQll的启动和保持通过0/S内核来调停。如图I中所进ー步示出的,优选地但并不是必须地,UNIClO在网络接ロ卡(NIC)17上实现。NIC17向或从与桥26接ロ的I/O总线28 (例如但不限于PIC-Ex总线)传递数据、控制以及寻址信息。桥26例如可以是与计算机母板相关联的南桥或I/O控制器枢纽(ICH)。桥26连接至本地接ロ 20,使得UNIClO可访问存储器18和主机14的其他组件。应当注意,在某些可选实施方式中,UNIClO可与计算机母板上的本地接ロ 20直接接ロ(使得桥26、I/O总线28以及NIC17不必实现UNIC10)。UNIClO的主机侧被表示为可被映射至数据制造者和消费者(例如VM25)的ー个或多个系统端ロ。当UNIClO被构造成用于传统以太网数据包接ロ时,UNIClO实现以太网数据包的传输和接收功能。当UNIClO被构造成用于信元结构接ロ(cell fabric interface) 时,UNIClO排列并调度至结构12的边缘(结构12的边缘)的数据包或信元,其中结构12的边缘是UNIClO和FAP19的任何随意组合。可被应用于实现本公开的各种实施方式的市售的FAP19的实例是可从美国博通公司购买到的设计系列BCM88x4x。图2A是图I的UNIClO的实例构造的示意性框图,而图2B是示出图2A的UNIClO所采用的操作和方法的流程图。在此实例中,UNIClO包括入ロ传输逻辑(ingress transmitlogic) 32和出ロ接收逻辑(egressreceive logic) 34。术语“入口”和“出ロ”涉及在与交换结构12相关联的在业务管理(TM)域中的通信,而术语“传输”和“接收”涉及在分组网络域中的通信。通常,入口传输逻辑32被设计为将在与主机14相关联的主存储器18中的交换结构数据9和分组网络数据21分别传输至交换结构12和分组网络13。此外,出ロ逻辑34被设计为从交换结构12和分组网络13接收交换结构数据9和分组网络数据21,并且将所接收的交换结构数据9和所接收的分组网络数据21存储在与主机14相关联的主存储器18中。结构交换机12A-12H (图4)与FAP19互连的实例存在于TM域中。TM域拓扑选择包括但不限于网格(mesh)或结构(fabric) 12。网格具有不通过结构交换机12A-12H (图4)的在所有參与的FAP19与UNIC 10之间的直接连接。在通常示例为胖树的完全连接的双向图中,结构的拓扑是基于通过结构交换机12A-12H (图4)连接的所有边缘装置(FAP 19和 UNIC 10)的。进入TM域的UNIC可被概念化为通过其UNIC 10 (通常被称为NIC17的传输方向)发送业务(traffic)的服务器。与进入TM域的入口相关联的系统端ロ被定义为业务源并可以是物理服务器,服务器内的VM25、总线或特定队列。不同的源系统端粒度可跨相同或不同的UNIC 10在同一 TM域共存。入口传输逻辑32被设计为从与主机14相关联的存储器接收结构数据包和网络数据包。每个数据包具有报头。入口传输逻辑32被设计为基于各自的报头产生交換结构链路和分组网络链路。交换结构链路定义了穿过交换结构12至结构目的地端点15A、15B的路径部分。分组网络链路定义了穿过分组网络13至网络目的地端ロ 15B、15J的路径部分。从TM域出来的UNIC对应于目的地系统端ロ抽象并且可简化为物理服务器,服务器内的VM 25、总线或特定接收队列。而且,出口对应于NIC 17的接收方向。
參照图3,示出了 UNIC 10的结构的功能框图。可在ー个或多个集成电路微芯片上实现UNIC 10,但优选地在单个集成电路微芯片上。如图3中所示,UNIC 10包括一个或多个总线接ロ 52,为了简化仅示出其中的ー个。总线接ロ 52经由I/O总线28被连接至主机14,因此使UNIC 10能与关联于主机14的处理器16和存储器18通信。当在存储器18中的软件23 (例如,应用程序)希望发起与端点15的通信时,ー个或多个包产生于主机14的软件协议栈。每个包由于效率因素经由(优选地,但不限干)直接内存访问(DMA)被递送至总线接ロ 52。总线接ロ 52具有本地存储器,其中暂时存储关于来自主存储器18的包的控制元数据24。控制元数据24具有关于包的信息和指令,例如,CRC是否应被插入指向主存储器18中的数据的指针等。通常,数据有效载荷源于软件23并且控制元数据24源于装置驱动器。从主存储器18经由被总线接ロ 52读取的DMA存储器取出数据。在某些可选实施方式中,应实现至主存储器18的多个总线接ロ 52,以通过提升端 点15与主机14之间的吞吐量来增强性能。在这种实施方式中,由入口业务管理器56产生并且经由控制数据连接57被传递至主机14的调度信息被用于确定在多条总线接ロ 52中的哪ー个上数据将被取自或置于在主存储器18中的特定VOQ 11中。入口传输逻辑32通常包括入口包处理器54、入口业务管理器56以及入口传输处理器58。入口包处理器54被设计为基于数据包报头和控制元数据24来使请求进入入ロ业务管理器56。入口包处理器54自身可使用总线接ロ 52用于访问队列数据结构并用于在主存储器18中进行数据存储。入口包处理器54可修改结构或数据包报头。入口包处理器54被设计为定义第一 VOQ 11并且将目的地端点15映射至VOQ 11。在用于示例的ー个简单实例中,可通过MAC地址(开放式系统互联(OSI)层2)来识别每个目的地端点15。此外,在将MAC地址映射至VOQ 11的简单实例中,每个MAC地址可被分配至VOQ 11中对应的ー个。入口包处理器54还可被设计为确定通信是单播还是多播。此功能可用于帮助排队。单播通信时从主机14至特定目的地端点15,而多播通信是从主机14至多个目的地端点15。在单播通信的情况下,入口包处理器54将ー个VOQ 11分配给目的地端点15。这可能是在远程交换机上的物理端ロ或在另ー UNIC 10上的端ロ。入口业务管理器56通信地耦合至入口包处理器54。入口业务处理器56在与目的地端点15A-J (其通过在业务管理器(TM)域中的入口业务管理器56来管理)相关联的主存储器18中实现可扩展数量的VOQ 11。VOQ 11存在于主存储器18中,但是通过在UNIC 10中的入口业务管理器56来定义和管理。优选地,入口业务管理器56将结构数据包分成单元(cell),每个单元具有ー个单元报头,尽管此处理在某些替代实施方式中和在执行了诊断的情况中并不是必需的。此外,优选地,入口业务管理器56并不将网络数据包分成単元,而是入口业务管理器56通过数据包报头来传递网络数据包。入口业务管理器56根据目的地端点15何时可用并且根据与分别通过交换结构12和分组网络13的路径相关联的链路的可用性来排队和调度结构单元和网络数据包。入口业务管理器56经由控制数据连接57来管理在存储器18中的VOQ 11。入口业务管理器56使用此控制数据连接57利用直接内存访问(DMA)来从VOQ 11使数据出列。入口业务管理器56为每个目的地端点15管理至少ー个VOQ 11。关于结构数据,入口业务管理器56从VOQ 11调度单元(cell)而不是数据包。通常,以交换结构12为目的的包通过与入口业务管理器56相关联的分割器被分成更小的単元。此外,以分组网络13为目的的包未被分成单元,而是保留分组网络13的数据包报头。在结构单元报头的情况中,这被定义为使能在TM域中从端点至端点的结构单元通信。在数据包报头的情况中,这是用于在分组网络域中从端点至端点传输数据包的典型以太网或IP报头。入口业务管理器56还包括缓冲器,用于暂时存储通过入口业务管理器56移动的结构数据和网络数据。·入ロ传输处理器58被通信地耦合至入ロ业务管理器56。入口传输处理器58被设计为管理要被发送至ー个或多个TM域目的地端点15A、15B或分组网络目的地端点15B、15J的网络数据表示。入口传输处理器58还被设计为当単元正出列时对单元执行在包数据结构中所要求的报头修改,例如,编辑,复制等。作为另一具体实例,在多播通信中,单个单元表示被入口业务管理器56排列在本地队列中,并且当入口传输处理器58使该单元出列吋,入口传输处理器58将修改该单元报头,使得其被传递至各种合适的目的地端点15。在图3的实例中,UNIC 10被示出为具有至结构接ロ 60和数据包接ロ 62的分开的物理连接。在其他实施方式中,这些可被静态多路复用至在任意给定时间点以ー种方式或其他方式操作的相同物理连接。结构和数据包接ロ 60、62被设计为以互相排斥的方式进出TM域交换结构12或传统分组网络13。结构单元通过结构接ロ 60被传递进交换结构12,而具有数据包报头的网络单元通过数据包接ロ 62被传递进分组网络13。出口接收逻辑34包括出口接收处理器64、出口业务管理器66以及出口包处理器68。对于要被传递进一个或多个主系统端ロ的一个或多个拷贝,出口接收处理器64使用结构单元报头信息或包报头信息以将请求排列进出ロ业务管理器66。此外,出ロ接收处理器64能够应用能造成抑制至主系统端ロ的特定数据包递送的策略滤波器。出口接收处理器64接收来自结构接ロ 60的结构单元和来自数据包接ロ 62的网络数据包。出ロ接收处理器64分析(执行匹配)报头,例如OSI层2、0SI层3以及OSI层4接ロ,以确定是否接收数据包。出口接收处理器64决定是否与特定队列相关联。出口接收处理器64决定是否应进行修改。由于可存在与主机14相关联的多个VM 25,并且总线接ロ52未被概念化为单个端ロ,因此出ロ接收处理器64也可执行复制。出ロ接收处理器64还将来自结构12的单元重组成数据包。可通过不同的机构来执行重组。一个实施方式中,实现重组缓冲器。在移动数据包通过总线接ロ 52进入存储器18之前,整个数据包以相邻的方式被重组进缓冲器。在其他实施方式中,操纵与单元报头相关联的指针,使得整个数据包被连续地存储进主机存储器18。出ロ业务管理器66被通信地耦合至出ロ接收处理器64。出ロ业务管理器66经由控制连接67管理在主存储器18中的多个队列(通常,相比于VOQ 11更少量的队列)。出口业务管理器66可为了数据的DMA和队列结构而通过总线接ロ 52访问主存储器18。排队模型由于在TM域中而不同于在进入时,数据在入口排队(在传输侧)。相反,在出口侧,数据尽可能快地移动穿过UNIC 10到达存储器18。出ロ包处理器68被设计为执行数据包修改。出ロ包处理器68移除単元报头,从而排它地递送数据包表示(无结构单元报头)穿过总线接ロ 52到达主系统端ロ及其相应的消费者。TM域与总线接ロ 52之间的边界是在此出口包处理器68处。出口包处理器68也可对数据包执行其他修改。出ロ包处理器68也可负责执行在主机14中的存储器管理功能,诸如,管理通过总线接ロ 52进入主系统端ロ的DMA、识别哪个缓冲器应被用于复制数据包(例如,在S/W23的0/S的内核中的缓冲器、专用缓冲器等)等。图4是根据本公开的各种实施 方式的实例的示意性框图,其中,在多个服务器14A、14B中的每ー个中的UNIC 10通过至和/或来自以太网边缘交换机82的多级交换机结构12来使能结构数据21A (优选地,但不是必需地,结构单元)的通信。在此实例中,每个服务器14A、14B具有服务器处理器集合体16A、16B,每个集合体均包括经由PCI-Ex I/O总线28A、28B通信地耦合至多级交换结构12的多个处理器16。与服务器14A、14B相关联的服务器端ロ 85由于它们可根据每ー个的要求被分配成与以太网13 (在图3中未示出)或交换结构12结合使用而是灵活的。边缘交换机82具有FAP 19,用于将边缘交换机82接ロ至交换结构12和用于上行链路和骨干(backbone)的专用以太网10/40G端ロ 86,且用于将边缘交换机82接ロ至以太网(为了简化未示出)。注意,边缘交換机82可以是服务器的一部分。多级交换结构12具有被布置在经由结构柱(fabric spine)84互联的两个连续级的结构交換机12A-12H。作为非限制实例,交換机12A-12H可以是纵横(crossbar)交換机、架顶式(TOR top-of-rack)交换机和/或刀片交换机。在交换结构12中不需要结构至数据包的转换,因为这在第一端点处在与服务器14A、14B相关联的UNIC 10中和在第二端点处在与边缘交换机82相关联的FAP 19中发生。图5是与通信地耦合至在第二端点处的刀片交换机97的在第一端点处的刀片服务器96相连接的UNIC 10的实现方式的实例的示意性框图。在刀片服务器侧,此实例示出了如何増加在刀片服务器之间的带宽。在刀片交换机侧,此实例示出了如何増加刀片交换机97或数据中心POD之间的带宽。刀片服务器96包括经由PCI-Exl00、101连接至多个UNIC 10的刀片服务器处理器98。与刀片服务器96相关联的中板102可根据需要用于以太网分组网络13或交换结构12。刀片交换机97包括通信地耦合至刀片服务器96的UNIC 10的交换结构12,如由连接103、105所示出的。实际上,在刀片交换机96中,交换结构12被连接至FAP 19以将刀片交换机97接ロ至交换结构12。交换结构12提供专用的结构端ロ 104。FAP 19提供了用于上行链路和骨干的专用以太网端ロ 106、可用于以太网13或结构12的端ロ 108以及用于IOOOBase-T OOB mgmt的端ロ 110 (带外管理),前面所有的都经由以太网接ロ 107。在刀片交换机侧,还要注意的是多个刀片交换机97可被网格化,或与FAP 19和/或UNIC 10直接连接而之间无任何结构交换机。此外,多个POD可与其他的外部交换机连接在一起。图6是位于刀片服务器网络120中的多个UNIC 10的示例实现方式的示意性框图。在刀片服务器网络120中,作为实例,被示出为结构板12A、12B的交换结构12被延伸至刀片服务器机架122,以使能结构端ロ 124和以太网端ロ 126分别至结构12和路由器13A的选择分配。该分配取决于被执行的计算机操作的类型。例如,在需要许多数学计算的操作的情况中,则将更多的端ロ分配至结构12。此外,作为又ー实例,在需要对因特网的广泛访问的操作的情况中,则将更多的端ロ分配至路由器13A。在构造中,如图6所示,多个刀片交换机97A-97D和多个刀片服务器128A、128B被连接至刀片服务器机架122。每个刀片交换机97A-97D具有图5所示的构造,具有结构元件(FE)交換机和用于以太网端ロ 126的FAP 19。优选地,尽管并不是必需地,每个刀片交换机97A-97D作为专用集成电路(ASIC)来实现。此外,多个刀片服务器128A、128B也被连接至刀片服务器机架122,并且经由中板线(midplane lane) 130与刀片交换机97A-97D通ィ目。每个刀片服务器128A-128B包括多个VM 25,每个VM可经由虚拟交换机(VSWITCH) 132选择性通信地耦合至UNIC 10。虚拟交换机是基于可在与刀片服务器128A-128B相关联的存储器中实现的交换机的软件。 图6的构造可被延伸至具有用于额外的层的结构装置或具有用于路由器端ロ的FAP 19的刀片机架122之外。图6示出了包括第一级(包括刀片结构交换机97A-97D)和第ニ级(包括外部结构板12A、12B)的两级结构。刀片交换机97A-97D的以太网端ロ 126可类似地被用于将网络延伸至其他外部数据包交換器或数据包路由器系统和端ロ。图7是示出图6的刀片服务器在数据中心中的扩展的示意性框图。网络骨干143与刀片服务器簇中的刀片交换机126A-126D之间的结构边缘142位于并将保持在刀片交换机处,而与所实施的多个刀片服务器128A-128D无关。结构交换机12A、12B例如可以是网络设备(SAND)交换机设备的可扩展构造。市售的SAND交换机是可从美国博通公司购买到的型号DNFE 600。通过结构交换机12A、12B创建的结构12展现出单域可管理性、不受限的带宽、L2邻接(对于VM 25是理想的)、同类验证L2多路径以及VOQ动态路由。应当注意,图7的图示可类似地应用于其他服务器,例如,机架服务器,其中交換机126A-126D将是TOR (机顶)交換机而不是刀片交换机。在不改变互连的情况下将所采用的多个服务器扩展至更广泛的异构骨干143的优点仍是合适的。虚线结构边缘142表示骨干143与上述服务器簇之间的物理界限以及管理界限。应当强调,本公开的上述实施方式仅是为了传达公开的原理的清楚理解而给出的实现方式的可能实例。在实质上不背离公开的原理和思想的前提下可对上述实施方式做出许多变化和修改。所有这些修改和变化意在被包括在本文此公开的范围内并受所附权利要求保护。
权利要求
1.一种网络接口控制器(NIC),用于将主机与交换结构进行接口,包括 被设计为对于与所述主机相关联的存储器中的数据在所述主机中产生交换结构接口的逻辑;以及 被设计为产生与交换结构端点相关联的本地排队信息的逻辑。
2.根据权利要求I所述的网络接口控制器,进一步包括用于将所述主机与分组网络进行接口的逻辑,该逻辑被设计为对于与所述主机相关联的存储器中的数据产生分组网络接口。
3.根据权利要求2所述的网络接口控制器,进一步包括 入口传输逻辑,被设计为将交换结构数据和分组网络数据分别传输至所述交换结构和所述分组网络;以及 出口接收逻辑,被设计为分别从所述交换结构和所述分组网络接收交换结构数据和分组网络数据,并且将所接收的交换结构数据和所接收的分组网络数据存储在与所述主机相关联的所述存储器中。
4.根据权利要求3所述的网络接口控制器,其中,所述入口传输逻辑被设计为从与所述主机相关联的所述存储器接收结构数据包和网络数据包,各数据包均具有报头,并且其中,所述入口传输逻辑被设计为基于各自的报头产生交换结构链路和分组网络链路,所述交换结构链路定义通过所述交换结构到达结构目的地端点的路径部分,所述分组网络链路定义通过所述分组网络到达网络目的地端点的路径部分。
5.根据权利要求3所述的网络接口控制器,其中 (1)所述入口传输逻辑包括 (a)入口包处理器,通信地耦合至所述主机以从所述主存储器接收所述结构数据和所述网络数据,所述入口包处理器被设计为定义所述主存储器中的虚拟输出队列(VOQ),并且将所述队列映射至目的地端点,所述入口包处理器还被设计为修改与结构数据包相关联的报头,使得所述结构数据能够在时间管理域中被管理; (b)入口业务管理器,通信地耦合至所述入口包处理器,以接收所述结构数据和所述网络数据,所述入口业务管理器被设计为调度所述虚拟输出队列中的所述结构数据和所述网络数据,并且控制从所述主存储器的出列; (C)入口传输处理器,通信地耦合至所述入口业务管理器,以接收所述结构数据和所述网络数据,所述入口传输处理器被设计为分别将所述结构数据和所述网络数据传输至所述交换结构和所述分组网络;并且 (2)所述出口接收逻辑包括 (a)出口接收处理器,通信地耦合至所述交换结构和所述分组网络,以分别接收所述结构数据和所述网络数据,所述出口接收处理器被设计为将所述结构数据和所述网络数据映射至出口队列; (b)出口业务管理器,通信地耦合至所述出口接收处理器,以接收所述结构数据和所述网络数据,所述出口业务管理器被设计为管理所述出口队列;以及 (c)出口包处理器,通信地耦合至所述出口业务管理器,以接收所述结构数据和所述网络数据,所述出口包处理器被设计为修改与结构数据包相关联的报头,以从所述时间管理域去除所述结构数据包,所述出口包处理器还被设计为将所述结构数据和所述网络数据传输至所述主存储器。
6.一种集成电路微芯片,具有根据权利要求I所述的网络接口控制器。
7.一种计算机,具有根据权利要求I所述的网络接口控制器。
8.一种数据中心,具有根据权利要求I所述的网络接口控制器。
9.一种系统,包括 交换结构; 至少一个第一通用网络控制器(UNIC),以及第二通用网络控制器和结构接入点(FAP)中的至少一个;并且 其中,每个通用网络控制器包括 入口传输逻辑,被设计为将与计算机相关联的存储器中的交换结构数据和分组网络数据分别传输至交换结构和分组网络;以及 出口接收逻辑,被设计为分别从所述交换结构和所述分组网络接收所述交换结构数据和所述分组网络数据,并且将所接收的交换结构数据和所接收的分组网络数据存储在与所述计算机相关联的所述存储器中。
10.一种方法,包括以下步骤 在王机中提供交换结构接口 ;以及 在与所述主机相关联的存储器与交换结构之间传输结构数据。
全文摘要
提供一种通用网络接口控制器(UNIC),用于将主机与交换结构、分组网络、或这二者进行接口。UNIC包括被设计为将与主机相关联的存储器中的交换结构数据传输至交换结构的入口传输逻辑。UNIC还包括被设计为从交换结构接收交换结构数据以将所接收的交换结构数据存储在与主机相关联的主存储器中的出口接收逻辑。作为选择,入口传输逻辑可被进一步设计为将与主机相关联的存储器中的分组网络数据传输至诸如以太网的分组网络,出口接收逻辑可被进一步设计为从分组网络接收分组网络数据并且将所接收的交换结构数据和所接收的分组网络数据存储在与主机相关联的主存储器中。
文档编号H04L29/06GK102857494SQ20121022874
公开日2013年1月2日 申请日期2012年7月2日 优先权日2011年6月30日
发明者阿里尔·亨德尔, 马丁·伦德, 尼古拉斯·伊利亚蒂斯 申请人:美国博通公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1