CN101990002A - 控制器集成 - Google Patents
控制器集成 Download PDFInfo
- Publication number
- CN101990002A CN101990002A CN2010102806828A CN201010280682A CN101990002A CN 101990002 A CN101990002 A CN 101990002A CN 2010102806828 A CN2010102806828 A CN 2010102806828A CN 201010280682 A CN201010280682 A CN 201010280682A CN 101990002 A CN101990002 A CN 101990002A
- Authority
- CN
- China
- Prior art keywords
- data
- network
- handling system
- cpu
- memory
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4295—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using an embedded synchronisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4633—Interconnection of networks using encapsulation techniques, e.g. tunneling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2596—Translation of addresses of the same type other than IP, e.g. translation from MAC to MAC addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/618—Details of network addresses
- H04L2101/622—Layer-2 addresses, e.g. medium access control [MAC] addresses
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Engineering (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Bus Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明涉及控制器集成。提供了一种包括中央处理单元和分离网络接口功能组的数据处理***,该分离网络接口功能组包括:与中央处理单元设置在一起的第一子单元,被配置为通过为每个网络数据分组生成数据链路层信息来至少部分地形成用于发送给网络端点的一系列网络数据分组;以及在中央处理单元外部并且通过互连部与中央处理单元相耦合的第二子单元,该第二子单元被配置为通过网络物理地传送一系列网络数据分组。
Description
技术领域
本发明涉及一种用于数据处理***的网络接口的新结构和一种用于在数据处理***的处理器之间交换网络数据的方法,特别是一种刀片式服务器。还公开了一种PCIe设备的新结构。
技术背景
包括了一个或更多个处理器和存储器的传统数据处理***借助***网络接口设备连接到网络上。网络接口设备使数据处理***能够通过网络接收并发送数据。数据处理***和网络接口设备通过诸如PCIe这样的***数据总线通信。
以太网网络接口设备包括控制器,该控制器典型地形成通过网络传输的数据分组,控制通过该设备的数据流,并在数据处理***和网络接口设备之间协调数据总线上数据的传输。网络上数据的物理传输由网络接口设备的所谓“PHY”处理,“PHY”在以太网规范的物理层级上进行网络上网络数据的信令(传输)(signalling)。
在典型的数据处理***中,网络上数据的发送或接收涉及多条数据总线。通常在处理器和存储器之间、本地存储设备和诸如网络接口设备这样的***设备之间有不同的总线。在每条总线上的数据传输具有关联的开销,并且在网络上数据发送或接收期间,除了PHY,各种数据总线电路通常是在引起的延迟和功率需求方面最昂贵的组件。
并且,在网络结构上数据分组的传输速率本身受到了网络带宽的限制,这限制了网络上的主机之间的最大数据速率。如果将网络结构用于连接刀片式服务器的刀片,那么这可能尤其具有限制性。
传统的网络接口设备被提供为通过诸如PCIe这样的***总线与数据处理***相连接的***设备。网络接口设备可以是独立的***卡或者它可以由数据处理***的主板来支承,但该设备由数据处理***通过适当的总线访问。这种配置如图1所示,其中数据处理***101的CPU 103通过PCIe总线106访问网络接口设备(NIC)102。在CPU和PCIe总线之间的接口由芯片集105提供,通常其借助于存储器控制器提供对存储器的直接存储器访问(DMA)。网络接口设备102包括控制器107和PHY108,控制器主要处理在网络109上使用的网络协议的链路层上的数据流,PHY根据该网络协议的物理层需求来处理网络上的网络数据分组的发送和接收。
由于在处理器103上执行的应用的接收和发送队列位于存储器104中,网络接口设备为了通过网络发送和接收数据,必须直接读写该存储器。每个发送操作通常需要两次或三次存储器访问来实现,并且需要一次或两次存储器访问来实现每个接收操作。通常网络接口设备借助于直接存储器访问(DMA)来读写存储器,但还必须通过***数据总线执行所有的这种访问。每个发送或接收操作的功耗是不可忽视的,因为每次访问必须经过芯片集105处的串行/去串行(serialisation/deserialisation,SERDES)电路(它为处理器/存储器控制器提供到总线的接口)以及在网络接口设备处的SERDES电路(它为NIC提供到总线的接口)。对于高速网络接口设备来说,每秒可执行上千次发送和/或接收操作,这种结构的总功耗将变得非常大。类似地,通过***数据总线重复的存储器访问给通过网络接口设备执行的发送和接收操作带来了明显的延迟。
为了特定的应用已经开发了包括处理核和网络接口设备的片上***(System-on-a-Chip,SoC)设备,从而将网络接口设备和处理器所能访问的存储器设置得更近。例如,SoC设备的STMicroelectronics STM32W系列提供了32位的ARM处理器和集成的IEEE 802.15.4无线电装置。然而,将包括PHY的整个网络接口集成到处理器中极大地增加了处理器所需的功率以及热量,必须在处理器处应对该热量。并且,在PHY中处理的信号给处理器引入了大量的附加电干扰,使得SoC结构不适用于高速CPU。
已经提出了允许数据处理***的组件(例如CPU和网络接口设备)互相通信的改进结构,但是没有提供一种为具有到主机存储器的低延迟数据通道的网络接口提供低功率的结构。之前所作出的用于改善数据处理***内部通信的结构的尝试包括在http://www.transputer.net/tn/06/tn06.html所公开的、由INMOS Ltd于1988年1月在INMOS Technical Note 6,“IMS T800Architecture”中引入的IMST800晶片机(transputer)。其他的这种结构描述在以下文献中:Finn,Gregory G.“An Integration of Network Communication with WorkstationArchitecture”,ACM Computer Communication Review,1991年10月;和Hayter,M.,McAuley,D.,“The Desk Area Network”,ACM Transactions onOperating Systems,14-21页,1991年10月。
在申请号为10/548,121和12/105,412的美国专利申请中描述了之前提议的、描述以太网协议封装的方案。
因此,需要一种具有低功率需求并且具有到主机存储器的低延迟数据通道的改进网络接口设备结构。
发明内容
根据本发明的第一方面,提供了一种包括中央处理单元和分离的网络接口功能组的数据处理***,所述分离的网络接口功能组包括:与中央处理单元设置在一起的第一子单元,被配置为通过为每个网络数据分组生成数据链路层信息来至少部分地形成发送给网络端点的一系列网络数据分组;以及在中央处理单元外部并通过互连(interconnect)与该中央处理单元相耦合的第二子单元,该第二子单元被配置为通过网络物理地传送所述一系列网络数据分组。
优选地,第一子单元被配置来根据在互连上使用的数据协议,将所述系列中的每个网络数据分组封装在一个或更多个互连数据分组。优选地,第一子单元被配置为将互连数据分组发送给第二子单元,以使第二子单元通过网络传送各个网络数据分组。
优选地,第一子单元被配置为部分地形成所述一系列网络数据分组,第二子单元被配置为在网络上使用的网络协议的数据链路层完成每一个所述一系列网络数据分组的形成。相应地,第二子单元被配置为通过为每个网络数据分组计算一个或更多个校验和来在数据链路层完成每一个所述一系列网络数据分组的形成。
优选地,第二子单元被配置为根据在网络上使用的网络协议的物理层需求,通过网络物理地传送一系列完成的数据分组。
优选地,所述数据处理***进一步包括与中央处理单元耦合的存储器和/或高速缓存以及中央处理单元中的存储器管理单元,该存储器管理单元被配置为为中央处理单元和第一子单元提供到存储器和/或高速缓存的访问。优选地,存储器和/高速缓存被配置为保存包括通过网络发送的数据的发送队列,并且第一子单元被配置为借助于对存储器管理单元的读请求来访问发送队列,并使用通过网络发送的数据来形成所述一系列网络数据分组。
优选地,可操作第二子单元来通过网络接收一系列网络数据分组,第一子单元被配置为在数据链路层至少部分地处理每个接收的网络数据分组以便提取携带在该网络数据分组中的数据。
优选地,第一子单元被配置为在存储器中存储转发表,该转发表包括了这样的信息以使第一子单元能够为每个接收的网络数据分组,依赖于接收的网络数据分组的内容,将提取的数据路由给在存储器和/或其他网络设备中的一个或更多个接收队列。
相应地,第二子单元被配置为根据在接近第二子单元的互连的数据链路上使用的数据协议,将每个接收的网络数据分组封装在一个或更多个互连数据分组中。
优选地,第二子单元被配置为将互连数据分组发送给第一子单元,以使第一子单元在数据链路层至少部分地处理每个接收的网络数据分组并提取在接收的网络数据分组中携带的数据。
根据本发明的第二个方面,提供了一种数据处理***,包括:包括网络接口控制器的中央处理单元,该网络接口控制器被配置为通过根据网络协议在数据链路层至少部分地将通过网络发送的数据形成帧(framing)来形成中间数据单元,每个中间数据单元包括用于发送的数据的目的地网络地址;与中央处理单元耦合的存储器;与网络连接的媒体接口,被配置为通过网络发送完全形成的数据分组;以及在中央处理单元和媒体接口之间延伸的第一互连,该互连由一条或多条数据链路形成;其中所述网络接口控制器被配置为将网络协议的中间数据单元封装在通过第一互连发送的互连数据分组中,并且所述媒体接口被配置为从通过第一互连接收的互连数据分组中提取中间数据单元,并在物理层处理该中间数据单元,以便根据网络协议完成数据分组的形成。
优选地,网络接口控制器被配置为根据在接近中央处理单元的第一互连的数据链路上使用的数据协议,将每个中间数据单元封装在一个或更多个互连数据分组中。优选地,网络接口控制器被配置为促使将一个或更多个互连数据分组发送给媒体接口,以便使媒体接口通过网络发送完全形成的网络数据分组。
优选地,网络接口控制器被配置为将封装头部写到每个互连数据分组中,该封装头部包括这样的信息以使媒体接口用互连数据分组来重组各个中间数据单元。
相应地,第一互连包括两条数据链路:在中央处理单元和转换单元之间延伸的第一数据链路,以及在转换单元和媒体接口之间延伸的第二数据链路。转换单元被配置为将根据在第一数据链路上使用的数据协议而形成帧(frame)的互连数据分组转换为根据在第二数据链路上使用的数据协议形成帧的互连数据分组,反之亦然。
优选地,转换单元被配置为通过以下方式来转换互连数据分组:移除在第一数据链路上使用的数据协议的成帧数据,并根据在第二数据链路上使用的数据协议来重新成帧一个或更多个互连数据分组;或者,根据在第二数据链路上使用的数据协议,增加关于一个或更多个互连数据分组的附加成帧层。优选地,第一数据链路是CPU互连,第二数据链路是外部数据总线。优选地,在***数据总线上支持媒体接口。CPU互连可以是HyperTransport互连、QuickPath互连和PCIe互连的其中之一。优选地***数据总线是PCIe。
优选地,中央处理单元进一步包括存储器管理单元,被配置为为中央处理单元和网络接口控制器提供到存储器的访问。
优选地,如果目的地网络地址属于中央处理单元处支持的进程,网络接口控制器被配置为直接将用于发送的数据写入存储器中的接收队列,而不将该数据封装到一个或更多个互连数据分组中,该接收队列对应于所述目的地网络地址。优选地,网络接口控制器进一步被配置为不根据网络协议在数据链路层将该数据形成帧。
优选地,存储器被配置为保存一个或更多个包括了通过网络发送的数据的发送队列,并且可操作网络接口控制器来借助于对存储器管理单元的读请求,在所述用于发送的数据的各发送队列处访问该数据。
优选地,存储器管理单元包括高速缓存,可操作来存储保存在存储器中的至少一些数据的副本,该高速缓存可由中央处理单元和网络接口控制器访问。优选地,该高速缓存被配置为存储由中央处理单元在存储器中最近访问的数据。
优选地,网络接口控制器被配置为对于任何既能从存储器中又能从高速缓存中获得的用于发送的数据,从高速缓存中读取用于发送的数据优先于从存储器中读取该数据。优选地,网络接口控制器被配置为对于不能从高速缓存获得的用于发送的数据,从存储器中读取所述数据,并且不将该数据写入高速缓存。优选地,网络接口控制器被配置为当从高速缓存读取用于发送的数据时,使高速缓存的相应的线无效以便使其他在中央处理单元处执行的进程改写那些线。
优选地,可操作媒体接口来通过网络接收网络数据分组,并将接收的网络数据分组封装在通过第一互连发送的互连数据分组中;并且网络接口控制器被配置为从互连数据分组中提取接收的网络数据分组,并根据网络协议在数据链路层至少部分地处理每个接收的网络数据分组,以便提取携带在每个接收的网络数据分组中的数据。
优选地,媒体接口被配置为根据在接近该媒体接口的第一互连的数据链路上使用的数据协议,将每个接收的网络数据分组封装在一个或更多个互连数据分组中。优选地,媒体接口被配置为将互连数据分组发送给网络接口控制器,以使网络接口控制器在数据链路层至少部分地处理每个接收的网络数据分组并将携带在每个接收的网络数据分组中的数据写入在由包括在所接收网络数据分组中的目的地网络地址所识别的存储器处的至少一个接收队列中。
优选地,网络接口控制器被配置为当将携带在所接收网络数据分组中的数据写入存储器处的接收队列时,将该数据写入高速缓存。
优选地,网络接口控制器被配置为在存储器处存储转发表,该转发表包括这样的信息以使网络接口控制器依靠目的地网络地址为每个接收的网络数据分组在存储器和/或其他网络设备处选取一个或更多个将向其路由所接收网络数据分组的数据的接收队列。
优选地,媒体接口被配置为把封装头部写给每个互连数据分组,该封装头部包括这样的信息以使网络接口控制器用互连数据分组重组各个网络数据分组。
优选地,存储器管理单元被配置为当从中央处理单元或网络接口控制器接收到访问虚拟存储器地址的请求时,将该虚拟存储器地址转换为数据处理***的物理存储器地址,并访问该物理存储器地址。
优选地,存储器管理单元被配置为,如果代表网络接口控制器的虚拟存储器地址的转换失败,则向网络接口控制器产生页面错误(pagefault)。优选地,网络接口控制器被配置为,如果虚拟存储器地址涉及发送队列,响应于页面错误,使相应于该虚拟存储器地址的发送队列暂停,直到各个页面已经被重写入存储器;或者如果虚拟存储器地址涉及接收队列,响应于页面错误,根据提出的是哪个请求,将接收的网络数据分组的数据写入由数据处理***的协议处理实体检索的预留缓冲。
相应地,数据处理***进一步包括:包括第二网络接口控制器的第二中央处理单元,该第二网络接口控制器也被配置为通过根据网络协议在数据链路层至少部分地将发送的数据形成帧,形成中间数据单元,每个中间数据单元包括用于发送的数据的目的地网络地址;以及在第二中央处理单元和媒体接口之间延伸的第二互连,第二互连由一条或多条数据链路形成;其中第二网络接口控制器被配置为将网络协议的中间数据单元封装在通过第二互连发送的互连数据分组中,并且媒体接口被配置为从通过互连接收的互连数据分组提取中间数据单元并在物理层处理中间数据单元,以便根据网络协议完成数据分组的形成。第二互连的一条或多条数据链路可与第一互连的一条或多条数据链路共享。
优选地,网络接口控制器被配置为,如果在中央处理单元处形成的中间数据单元的目标地网络地址是在第二中央处理单元处支持的网络地址,则将包括该中间数据单元的经封装的互连数据分组发送到第二网络接口控制器。
优选地,媒体接口包括管理控制器,该管理控制器被配置为处理接收的、用于由(a)媒体接口和网络接口控制器和(b)媒体接口和第二网络接口控制器形成的网络接口设备的管理命令。
相应地,数据处理***是包括了在机架处支持的一个或更多个刀片的刀片式服务器,每个刀片具有一个或更多个中央处理单元,该一个或更多个中央处理单元中的至少一个包括网络接口控制器,媒体接口位于刀片式服务器的机架处。
中央处理单元和第二中央处理单元可位于刀片式服务器的同一刀片处。优选地,通过包括第一互连的数据链路和第二互连的数据链路的CPU互连,中央处理单元和第二中央处理单元互相可访问。
中央处理单元和第二中央处理单元可位于刀片式服务器的不同的刀片处。优选地,网络接口控制器被配置为,如果在中央处理单元处形成的中间数据单元的目的地网络地址是属于在第二中央处理单元处支持的进程的网络地址,使封装中间数据单元的互连数据分组不经由媒体接口、通过CPU互连被发送给第二网络接口控制器。
优选地,在***数据总线处支持媒体接口,并且刀片式服务器的刀片被配置为通过***数据总线互相通信。
优选地,数据处理***在刀片式服务器的机架处进一步包括交换机,该交换机被配置为在刀片式服务器的刀片之间路由互连数据分组。相应地,该交换机被配置为,依靠在***数据总线上使用的数据协议的层次上的互连数据分组的成帧信息来路由互连数据分组。相应地,该交换机被配置为,依靠在网络协议的层级上的中间数据单元的成帧信息路由封装中间数据单元的互连数据分组。
相应地,***数据总线是PCIe,交换机是PCIe交换机。媒体接口可以是常规PCIe设备、SR-IOV PCIe设备和MR-IOV PCIe设备的其中之一。媒体接口可以是SR-IOV PCIe设备,并且交换机是MR-IOV PCIe交换机。
相应地,媒体接口和数据处理***的每个网络接口控制器被配置为借助于一个或更多个互连数据分组来交换控制数据。
优选地,网络协议是以太网。
根据本发明的第三方面,提供了一种通过网络从数据处理***发送数据的方法,该数据处理***包括,在到网络的接口处的媒体接口、具有用于访问存储器的存储器管理单元的中央处理单元和在中央处理单元和媒体接口之间连接的互连,该方法包括:借助存储器管理单元,位于中央处理单元处的网络接口控制器从存储器中的发送队列获取通过网络发送的数据;在数据链路层上将网络协议的包含所获取的数据的数据分组至少部分地形成帧;并根据在互连上使用的数据协议,将网络协议的数据分组封装在通过互连发送的数据分组中,并将该数据分组通过互连发送给媒体接口;媒体接口接收经封装的数据分组,从经封装的数据分组中提取网络协议的数据分组,在物理层处理网络协议的数据分组以便根据网络协议完成数据分组的成帧,并将完全形成的网络协议的数据分组发送到网络上。
根据本发明的第四方面,提供了一种在数据处理***中通过网络接收数据的方法,该数据处理***包括,位于连接到网络的接口处的媒体接口、具有用于访问存储器的存储器管理单元的中央处理单元和在中央处理单元和媒体接口之间连接的互连,该方法包括:媒体接口通过网络接收网络数据分组,并根据在互连上使用的数据协议,将接收的网络数据分组封装在通过互连发送的数据分组中,并将该数据分组通过互连发送给位于中央处理单元处的网络接口控制器;网络接口控制器:接收经封装的数据分组,从经封装的数据分组提取接收的网络数据分组;根据网络协议,在数据链路层至少部分地处理每个接收的网络数据分组,以便提取携带在每个接收的网络数据分组中的数据;并且借助于存储器管理单元,将提取的数据写入存储器中的接收队列。
根据本发明的第五方面,提供了一种用于在数据处理***处在中央处理单元间通信数据的方法,数据处理***具有借助于互连耦合在一起的第一中央处理单元和第二中央处理单元,每个中央处理单元包括各自的网络接口控制器,可操作网络接口控制器来(a)通过根据网络协议在数据链路层至少部分地形成用于通信的数据的帧,来形成中间数据单元,和(b)根据网络协议在数据链路层至少部分地处理中间数据单元,以便提取携带在每个中间数据单元中的通信的数据,该方法包括:第一中央处理单元将通信的数据传递给它的第一网络接口控制器;第一网络接口控制器通过在数据链路层根据网络协议至少部分地形成通信的数据的帧,来形成包括通信数据的中间数据单元,将网络协议的中间数据单元封装在通过互连发送的数据分组中,并通过互连将经封装的数据分组发送给第二网络接口控制器;第二网络接口控制器接收经封装的数据分组,从经封装的数据分组提取中间数据单元,在数据链路层根据网络协议至少部分地处理每个中间数据单元,以便提取携带在每个中间数据单元中的数据,并将提取的数据传递给第二中央处理单元。
根据本发明的第六方面,提供了一种数据处理***的中央处理单元,该中央处理单元包括:处理核;链路模块,用于通过数据总线通信预定数据协议的数据分组;存储器管理单元,可操作来从与中央处理单元耦合的存储器获取数据;以及网络接口控制器,被配置为借助于存储器管理单元,获取通过网络发送的数据,在数据链路层将网络协议的数据分组形成帧,数据分组中包括所获取数据;并且将这些分组封装在预定数据协议的数据分组中,并通过数据总线借助链路模块通信。
优选地,网络接口控制器在网络协议的物理层不将数据分组形成帧。
根据本发明的第七方面,提供了一种数据处理***的中央处理单元,该中央处理单元包括:处理核;高速缓存;存储器管理单元,可操作来从与中央处理单元耦合的存储器获取数据;和网络接口控制器,被配置为当使用时在与中央处理单元耦合的存储器中存储至少一些自身的状态;其中处理核和网络接口控制器被配置为,借助于存储器管理单元访问与中央处理单元耦合的存储器,并且高速缓存被配置为,高速缓存在与中央处理单元耦合的存储器中存储的数据。
相应地,网络接口控制器的状态包括转发表和地址转换表的其中之一或两者。
根据本发明的第八方面,提供一种在数据处理***中支持的并对于该数据处理***将自身表现为PCIe设备的电子设备,数据处理***包括中央处理单元和PCIe数据总线,***设备包括两个组件:位于中央处理单元处的核心组件,操作该核心组件以处理对电子设备的I/O请求;以及核心组件通过PCIe数据总线可访问的***组件;其中核心组件被配置为响应于发送给***组件的I/O请求。
优选地,为核心组件分配定义其控制范围(control aperture)的硬件地址范围,并且***组件被配置为,提供指示包括核心组件控制范围的基地址的硬件地址的范围的基地址寄存器,以便在核心组件的控制范围内处理发送给由基地址寄存器指示的硬件地址范围的I/O请求。
相应地,***组件附加的是一个或更多个其他PCIe设备的组件,并且***组件被配置为,为每个其他PCIe设备提供附加的基地址寄存器,每个附加的基地址寄存器被配置以便在其他PCIe设备各自的核心组件中处理发送给由该基地址寄存器指示的硬件地址范围的I/O请求。
优选地,***组件被配置为,将其接收的中断配置请求转发给核心组件,以在该核心组件中处理。
优选地,***组件进一步提供支持传统(legacy)寄存器组的传统基地址寄存器,该***组件被配置为,当读或写传统寄存器时,将该读或写映射给该传统寄存器以对核心组件的控制范围进行读或写,以便在核心组件的控制范围处处理发送给传统寄存器组的传统I/O请求。
附图说明
现在将参考附图以示例的方式描述本发明,其中:
图1是借助***总线与数据处理***耦合的传统网络接口设备的示意图。
图2是根据本发明配置的网络接口设备的示意图。
图3是具有根据本发明配置的网络接口设备的数据处理***的示意图。
图4是根据互连以太网(Ethernet-over-Interconnect)数据协议配置的数据分组的示意图。
图5a和5b是具有根据本发明配置的网络接口设备的多处理器数据处理***的示意图。
图6是根据本发明的教导,具有分离结构的PCIe设备的示意图。
图7是根据本发明配置的控制器单元的示意图。
图8是根据本发明配置的媒体接口的示意图。
图9是具有根据本发明配置的媒体接口和多个控制器单元的刀片式服务器的示意图。
具体实施方式
提出以下说明以使任何本领域的技术人员能够做出并使用该发明,并且在特殊应用的上下文中提供以下说明。对公开实施例的各种变型对于那些本领域技术人员来说将是显而易见的。
在此定义的总原则可应用于其他实施例和应用,而不脱离本发明的精神和范围。因此,并不意在将本发明限制在所展示的实施例,而是被授予与在此公开的原则和特征一致的最宽的范围。
本发明涉及一种在数据处理***中网络接口设备的新装置。
根据本发明配置的网络接口设备和处理器如图2所示。处理器202是适合在诸如服务器或个人计算机这样的数据处理***中使用的中央处理单元(CPU)。处理器可包括在单一集成电路封装中的一个或更多个处理核(这些核可以位于或者不位于同一模具(die)上)。网络接口设备包括两个单元:控制器单元203,位于处理器202中,并且具有用于处理数据分组通过网络的发送和接收的控制逻辑;以及媒体接口单元206,位于物理网络链路210中,并且被配置为为处理器提供到网络209的物理接口。处理器202通过互连208与媒体接口单元206相耦合。处理器被配置为使控制器单元使用互连208。
控制器单元203是由控制器单元和媒体接口单元形成的网络接口设备的控制器电路。控制器单元处理发送和接收操作的逻辑方面,例如:从主机存储器以及向主机存储器读和写数据,根据在网络(例如以太网)上使用的协议,形成通过网络发送的数据分组;根据一个或更多个服务质量算法,执行分组优先排序;并确定所接收的数据应当被路由到的适当端点,并相应地路由该接收的数据。媒体接口单元在控制器单元的控制下,通过网络进行数据的物理发送和接收。
媒体接口单元包括被配置为在物理层通过网络介质210(可能是光纤或铜线链路)进行信号传送的电路207。这种电路典型地被提供为集成电路,并被称为PHY。PHY是网络接口设备的形成链路层数据分组和网络上的物理层信令之间的接口的那部分。例如,对于以太网网络接口设备,PHY根据IEEE 802.3执行物理层信令传输。
如传统的那样,在处理器202的集成电路处提供控制器单元203,在网络接口设备处不提供。因此,处理器和控制器单元可以直接通信,因为这两者之间的数据通路不经过互连或任何***总线。这减少了处理器和控制器之间通信的延迟。进一步地,控制器单元可受益于典型地用于中央处理单元结构中的高级处理技术,减少模尺寸(die size)和网络接口设备的净功耗,潜在地使该电路可以以更高的时钟速度运行。更高的时钟速度具有减小延迟并增加最大数据传输速率的优点。
如果互连208是CPU互连或在处理器本地的数据总线,例如QuickPath互连(QPI)、HyperTransport(HT)或PCI Express(PCIe)链接,这将是有益的。这使控制器单元能利用处理器的互连电路,而不需要处理器包括用于控制器单元和媒体接口之间的通信的附加电路。并且,与诸如***组件互连(PCI)这样的***数据总线相比,CPU互连典型地提供高带宽和低延迟。在该情况下,媒体接口206将被配置为通过为其提供适当的串行/去串行(SERDES)电路来支持通过CPU互连的通信。
作为另选方式,互连208可以是***数据总线或组合,或由可选I/O集线器205耦合在一起的两个或多个链路。例如,控制器单元和媒体接口之间的数据传输可以通过诸如HT这样的CPU互连被携带给处理器以及从处理器被带走,并且可在I/O集线器处得以转换,以通过在其上支持媒体接口的、诸如PCIe这样的***数据总线来传输。在典型的数据处理***中,将在支持处理器202的芯片集处提供I/O集线器。
如果在***数据总线处支持媒体接口,则处理器可被配置为包括必要的电路以使其直接通过该数据总线通信。例如,如果在PCIe数据总线上提供媒体接口,可为处理器提供可由控制器单元访问的并被配置为支持去往和来自处理器的PCIe通信的电路。
图3展示了在数据处理***中,根据本发明配置的网络接口设备的使用。图2的处理器形成了数据处理器***201的中央处理单元,数据处理***201具有处理器借助存储器总线211可访问的存储器204。数据处理***支持被配置为在处理器202处执行并利用由控制器单元203和媒体接口206形成的网络接口设备(NIC)的软件。
在此所谓的数据处理***可以是任何类型的计算机,例如服务器、刀片、桌上机器或者便携式设备。数据处理***包括一个或更多个处理核(这些将被称为处理器,虽然每个物理处理器实际上可支持多个核)以及存储器,处理器借助集成在处理器中的存储器控制器可直接访问该存储器。典型的数据处理***可通过适当的总线和互连来支持一个或更多个网络接口设备、存储设备以及其他***设备。
数据处理***可使得网络接口设备经由网络发送存储在存储器204中的数据。类似地,一旦接收到数据,网络接口设备可在由数据处理***建立的接收队列处将接收的数据写入存储器204。为实现数据发送/接收,由控制器单元对数据处理***的存储器执行读/写操作,因此通过将控制器单元设置在处理器中可以实现显著的性能优势。特别地,网络接口设备的控制器单元被配置为,使用处理器的存储器管理单元212,并通过处理器的存储器总线211访问存储器204。这减少了与每次发送或接收操作相关的延迟。
如图1所示,考虑由处理器103和存储器104通过***总线106可访问的传统网络接口设备102来处理的发送操作。为了通过网络发送数据,NIC典型地(a)从存储器104读取描述符,该描述符标识存储器的存储传输数据的位置,(b)通过总线读取经识别的数据,并(c)通过网络发送该数据。因此每个发送操作典型地包括两次存储器访问,总线的I/O集线器处的存储器管理单元提供存储器地址转换。并且,每次存储器访问通过***总线来完成。
相对照地,根据本发明配置的网络接口设备的控制器单元能够通过执行以下步骤来进行发送操作:
(i)借助于处理器的高速存储器总线211从存储器读取标识符;
(ii)通过同一高速存储器总线读取标识的数据(典型地被存储在发送队列处);
(iii)通过互连208将该数据传递给媒体接口206,并使该媒体接口通过网络发送该数据。
控制器单元所需的任何存储器地址转换可由处理器的存储器管理单元提供,这一般明显的比从I/O集线器请求存储器地址转换要更快些。以这种方式控制器单元可以借助于对存储器管理单元的读取请求访问发送队列。通常,控制器单元可访问存储器处的用于发送的数据、标识用于发送的数据的元数据和其他控制信息(例如卸载和高速缓存选项的控制)。如果标识符和用于发送的数据可借助于对存储器管理单元的读取请求从CPU存储器高速缓存中直接读取,从高速缓存中读取所引起的延迟非常低,这是更优选的。
如果网络接口设备的控制器和媒体接口之间的数据传输通过高带宽、低延迟的CPU互连发生,并且附加地扩展到由网络接口设备执行的接收操作,则本发明的优点甚至更大。
将网络接口设备控制器(控制器单元)设置在CPU处的一个特殊优点是在同一处理器处支持的网络端点之间的存储器传输通过非常低延迟的数据通道发生。这种情况频繁地出现在虚拟化的数据处理***中,在该***中通过诸如管理程序(hypervisor)这样的特权方式域支持多个访客操作***(guest operating system)。由于每个访客OS独立于其他访客地运行,在一个访客OS处的应用可能不知道其想发送数据到的网络端点是否在同一处理器处、同一服务器处的不同的处理器处、或可通过物理网络自身访问的远程服务器上被支持。因此,在一个访客OS处的应用可能请求(由控制器单元和媒体接口形成的)网络接口设备向实际上在同一处理器处被支持的另一个客户OS处的网络端点发送数据。在这种情况下(假设数据处理***不是根据VEPA协议配置的),控制器单元确定目的网络端点是它管理的一个,并将该数据写入目标端点的接收缓冲器中。因此在同一处理器处支持的端点间的网络传输不涉及媒体接口,并且可通过从主机存储器中的发送缓冲器读取并写入在同一主机存储器中的接收缓冲器来实现。由于这种网络数据分组不经过媒体接口,可以仅仅部分地形成这些数据分组。
当然,在原理上将包括网络接口设备的PHY的媒体接口附加地集成在处理器处(即完全集成网络接口设备和处理器)是可能的。然而,这具有一些缺点:需要在CPU包装处的附加管脚,本质上需要定义新的插座规范(socket specification);这将增加CPU所需的功率以及在CPU处必须处理的热量;在PHY处处理的高速信号将把大量的附加电干扰引入CPU;并且,因为CPU在数据处理***的低功率状态下关闭,在网络接口设备处处理远程***管理和LAN上唤醒(wake-on-LAN)非常困难。
互连以太网(Ethernet-over-Interconnect)
通常,控制器单元203被配置为根据相关网络协议的链路层需求充分地形成网络数据分组,媒体接口207被配置为根据网络协议的物理层需求,将那些数据分组传送到网络结构上。一些链路层需求可留给媒体接口,例如校验和的计算或其他通常在***网络接口设备处的专用硬件上执行的协议处理。
为了将至少部分形成的网络数据分组(即分组可能被分段和/或具有不完整的头部或者其它数据结构)从控制器单元传输给媒体接口,提议了一种协议来将网络数据分组封装到在互连上使用的数据协议的分组中。将该协议称为互连以太网(Ethernet-over-Interconnect)或者Eol,因为在优选实施例中,网络协议是以太网。然而,在可选的实施例中,由控制器单元和媒体接口形成的网络接口设备可支持通过除以太网之外的网络结构的通信,在这种情况下,上述Eol协议将替代地定义那种其它协议的数据分组的封装。例如,由控制器单元和媒体接口形成的网络接口设备可以是无限带宽(Infiniband)网络接口设备,具有被配置为形成无限带宽数据链路层数据分组的控制器单元和被配置为根据无限带宽规范物理层需求发送信号的媒体接口。因此,在此使用的术语“Eol”一般是指对网络数据分组在数据分组中的封装进行控制的协议,该数据分组适合于在数据处理***中通过互连在控制器单元和媒体接口之间传输。
控制器单元和媒体接口被配置为,按照在它们之间延伸的互连上使用的数据协议来传送数据分组,那些数据分组本身的有效载荷符合Eol协议。因此,通过互连发送的数据分组将典型地具有如图4所示的嵌套结构。互连头部401对Eol头部402进行封装,Eol头部402反过来封装在控制器单元处形成的网络数据分组403的至少一部分。如各协议所需,这些头部可具有相应的尾部(footer)404。
如前所述,优选地,由控制器单元203和媒体接口207形成的网络接口设备是以太网网络接口设备。因此,控制器单元被配置为,根据IEEE802.3的链路层需求充分地形成以太网分组,媒体接口被配置为,根据IEEE 802.3的物理层需求将以太网数据分组传送到网络结构上。以太网分组优选地将包括以太网头部,但不包括帧同步(framing)、前导和在媒体接口处计算的CRC数据。
依赖于它们相对的分组大小,在控制器单元处形成的网络数据分组可横跨(span)一个或更多个互连数据分组400。Eol头部包括正确重组每个网络数据分组部分所需的信息和目的地设备地址。在互连上的每个设备具有互连数据分组能被寻址到的设备地址。优选地,Eol协议支持控制分组和数据通路分组。控制分组优选地可由它们的Eol头部标识,使控制器单元能配置、控制和查询媒体接口。媒体接口被配置为用一个或更多个控制分组来响应来自控制器单元的查询。
数据分组的Eol头部可进一步包括由中间数据总线交换机或控制器单元使用的附加信息。这种信息可包括VLAN信息、业务类型信息和数据分组优先级信息。该信息可从经封装的网络数据分组(例如以太网)被映射。
对于严格保持两个端点间数据分组顺序的互连数据协议,可省略Eol头部。在这种情况下,媒体接口可被配置为,通过解析输入的互连数据分组得到包括在其中的网络数据分组的开始和结束端点,来重组网络数据分组。在本发明的该实施例中,控制分组可被支持为封装在网络数据分组中的协议,或被支持为封装在互连数据分组中的分离控制信道。
由于Eol数据分组遵守在互连上使用数据协议,依赖于互连头部,不改变地执行数据分组的路由。因此,从控制器单元发送至媒体接口或者从媒体接口发送至控制器单元的数据分组在互连层级上(典型地通过使用物理设备地址)被寻址到目标设备。如果数据必须经过多于一条的在控制器单元和媒体接口之间的链路,则耦合这两条链路的I/O集线器或互连交换机执行任何需要的地址转换,并且可(a)剥离来自初始链路的互连头部并将它替换为根据下一链路的协议的互连头部,或(b)根据下一链路的协议封装互连数据分组。例如,如果正初始地通过HyperTransport链路到I/O集线器、然后通过PCIe总线从控制器单元向媒体接口发送以太网数据分组,则互连数据分组在(a)的情况下将其HyperTransport头部替换为PCIe头部,或者在(b)的情况下增加PCIe头部,封装HyperTransport数据分组。
重要地,因为控制器单元和媒体接口借助于Eol数据分组互相交换数据,数据链路层网络数据作为寻址(在互连头部中)到各个目标设备的互连数据分组,在控制器单元和媒体接口之间被传输。例如,为了通过网络执行发送操作,控制器单元将形成网络数据分组,并使该网络数据分组被封装,并在一个或更多个互连数据分组中被发送给媒体接口。因此,控制器单元能通过根据Eol协议封装数据并将其发送到互连上来将数据推送(push)给媒体接口。这与传统的在***数据总线处支持的网络接口设备形成了对比,传统的网络接口设备通过从在主机存储器中的一个或更多个地址请求用于发送的数据来执行发送操作。换句话说,传统的网络接口设备必须从主机存储器获取其发送操作所需的所有数据,这比较慢,因为必须先通过***数据总线告知网络接口设备哪些存储器地址含有用于发送的数据。
使用Eol使能了处理器和媒体接口之间对称的数据传输:当处理器有数据要通过网络发送时,它使控制器单元将该数据推送给媒体接口;当媒体接口通过网络接收数据时,媒体接口将该数据推送给控制器单元。
并且,在处理器处提供控制器单元和在互连上使用Eol协议,使在多处理器数据处理***中的处理器能够借助于由控制器单元支持的网络协议(优选的以太网协议)在CPU层级上逻辑地通信。然而,控制器单元间的通信并不采用媒体接口提供到其的接口的网络结构的速度,而是采用处理器间互连的速度。这种数据处理***的处理器形成了逻辑上由网络协议互连的、物理上由相对(与典型的以太网链路相比较)高速的互连所互连的处理器网。优选地,这些互连是提供高带宽和低延迟链路的CPU互连,例如QPI、HyperTransport或者PCIe。注意,根据网络协议处理的处理器间通信不需要涉及媒体接口,优选地,该通信在通信的处理器的控制器单元间或者在两个处理器都能访问的单个控制器单元内直接进行。
如果单一的媒体接口被配置为支持多处理器***的多个控制器单元的通信,也是有益的。对于PCIe互连,这可通过使用PCIe媒体接口来实现。这使得媒体接口提供到其的接口的一个或更多个物理网络端口可被具有根据本发明配置的控制器单元的多个处理器所共享。在具有PCIe多根能力的***中,媒体接口优选地是PCIe MR-IOV设备。数据处理***(多处理器或相反)可支持多个媒体接口,每一个媒体接口可提供到不同网络的访问——控制器单元简单地寻址任何一个适合给定通信操作的媒体接口。
在数据处理***内多个控制器单元之间共享媒体接口的优点包括,由于需要更少的PHY,减少了功率需求,以及需要更少的数据处理***的网络交换端口。
注意,所有的Eol数据分组的路由在互连层级处被执行。每个控制器单元被配置为促使形成具有适当互连头部的互连数据分组,从而每个网络数据分组到达它的目标端点。例如,将发送给在多处理器***的另一个处理器处的控制器单元的网络数据分组进行封装,并通过互连(该互连可包括一个或更多个链接,例如HyperTransport和PCIe链接)路由给另一个处理器的控制器单元。对发送给通过网络可访问的远程数据处理***的网络数据分组进行封装,并通过互连路由给适当的媒体接口以发送到网络上。
优选地,在处理器处提供被配置为通过互连执行数据分组的物理信令发送的SERDES电路。对控制器单元和处理器进行配置以便使控制器单元能借助于SERDES电路通过互连传送数据。优选地,控制器单元维护一个或更多个查找表,查找表包括网络地址和互连上设备地址之间的对应关系。例如,将要发送到媒体接口提供到其的接口的网络上的网络地址的数据分组发送给在互连上媒体接口的设备地址;将要发送到与在另一个处理器上执行的应用的端点相对应的网络地址的数据分组发送给那个处理器的控制器单元的设备地址。设备地址可以在或可以不在与数据处理***的物理存储器相同的地址空间中。
在图5a和5b中展现了根据本发明原理配置的以太网网络接口设备的两种实现。
在图5a中,数据处理器***501包括两个处理器502、503,它们中的每一个具有控制器单元504、505。媒体接口508借助于可以是HyperTransport链路的CPU互连结构509与每个处理器相耦合。
为了在处理器502处执行的第一应用将数据发送给在处理器503处执行的第二应用,第一应用通过(由控制器单元和媒体接口形成的)网络接口设备向第二应用的端点作出发送操作的请求。这典型地借助于从第一应用到网络接口设备的设备驱动的软件调用来实现。控制器单元504形成发送给第二应用的端点的以太网数据分组,并使该以太网数据分组被封装在一个或更多个寻址的互连数据分组中,以便使该互连数据分组被路由给处理器503的控制器单元505。互连数据分组在处理器间直接路由,不经过媒体接口。如果需要,控制器单元504被配置为为以太网数据分组形成Eol头部。在处理器503的去串行电路处,提取以太网数据分组,并且控制器单元将该数据写入与该数据分组的目的地以太网地址对应的接收队列。
因此,在处理器502处执行的第一应用可以仅仅以就像第二应用通过网络510在远程数据处理***的处理器处执行一样的方式,来向在处理器503处执行的第二应用发送数据。然而,因为通过处理器间的CPU互连来携带以太网数据分组,数据使用低延迟、高带宽数据通道。注意,图5a仅是示意性的,数据处理器***501的各组件间的链接可采用任何适当的配置。
在图5b中,数据处理***511包括两个处理器512、513,它们的每一个具有控制器单元514、515。该实现与在图5a中所示的那个类似,但是在该例中,媒体接口518是在***数据总线517上支持的***设备,***数据总线可以是PCIe数据总线。因此,需要I/O集线器或交换机516来提供***数据总线和每个处理器之间的接口。在处理器512和514之间的通信优选地仅以如上图5a所述的相同方式通过互连结构519(例如HyperTransport)直接实现。然而,在处理器512和媒体接口518之间的互连由两条链路组成:在处理器和I/O集线器之间的CPU数据总线520(它可以是诸如HyperTransport这样的CPU互连,或者是诸如处理器512的前侧总线这样的其他类型的数据总线),和在I/O集线器和媒体接口之间的诸如PCIe这样的***数据总线。目的地为媒体接口的互连数据分组被发送到CPU数据总线上,然后在I/O集线器处被转换为适合于在PCIe总线上传输的数据分组。优选地,CPU数据总线是CPU互连,并且最优地,I/O集线器可由处理器通过该CPU互连访问。
参考图2如上所述,包括与在***数据总线处支持的媒体接口一起形成部分网络接口设备的控制器单元的处理器自身可包括适当的SERDES电路,以使该处理器能直接从***数据总线和向***数据总线读和写。在***数据总线是PCIe数据总线的情况下,控制器单元自身可以是通过PCIe数据总线可寻址的PCIe设备。如果处理器/控制器单元可通过***数据总线直接通信,则不需要I/O集线器,因为为了与媒体接口通信,控制器单元可以直接将封装了以太网数据的适当数据分组发送到***数据总线上。包括被配置为与媒体接口和一个或更多个包括控制器单元的处理器通信的控制器单元的处理器,因此能够依赖于数据分组的目的地,将以太网数据分组封装在适合于通过CPU互连或***数据总线发送的数据分组中。
图5b仅是示意性的:每个处理器可具有它自己的I/O集线器,并且在数据处理***511的各组件间的链路可以采取任何适当的配置。
注意,由于在同一数据处理***处的控制器单元(例如在多处理器计算机***处的处理器或刀片式服务器的刀片)间的数据传输不经过媒体接口,封装后的网络数据分组在到达目的地控制器单元前(校验和和其他卸载可在媒体接口处完成)可以不根据链路层网络协议被完全地形成。
分离PCIe设备
现在将描述一种新颖的分离PCIe设备结构,它是用于根据本发明配置的PCIe网络接口设备的优选结构。
如果由控制器单元和媒体接口形成的网络接口设备对于数据处理***(和在其上运行的软件)来说是常规的PCIe设备,这种情况是有益的。这对维护与现有软件和硬件的兼容性有帮助。在本发明的一些实施例中,在处理器处没有提供PCIe主机电路,因此没有为控制器单元提供任何PCIe逻辑。为了给这种数据处理***提供PCIe网络接口设备,向媒体接口提供PCIe逻辑。
图6显示了包括PCIe设备601(它可以不是网络接口设备)的数据处理***600,PCIe设备601具有两个部分:在处理器603处的控制器单元602和在PCIe数据总线605上支持的接口单元604。PCIe数据总线典型地可由处理器借助于I/O集线器608访问。控制器单元602包括PCIe设备的至少部分逻辑功能组,并被配置为借助于处理器的适当的功能(例如存储器管理单元)访问存储器606。优选地,控制器单元也能够访问处理器的高速缓存607,高速缓存607被配置为存储在存储器606中保存的某些数据的副本。处理器的高速缓存可以被认为在它的存储器管理单元(处理器的提供到主机存储器的访问的部分)处。在处理器处提供该设备的那些功能是有益的,该设备得益于对主机存储器606和处理器高速缓存607的低延迟访问。
就接口单元604物理上在PCIe数据总线处被支持的意义来说,接口单元604是PCIe设备,它能够借助于它的PCIe主机逻辑通过PCIe数据总线通信。控制器单元602被配置为支持一个或更多个控制范围(controlaperture)。控制范围是一个设备负责的物理地址范围,换句话说,在数据处理***处运行的软件可以通过从和向在设备的控制范围内的地址读和写来与该设备交互。
接口单元604被配置为支持一个或更多个基地址寄存器(BaseAddress Register,BAR),基地址寄存器根据PCI Express规范来表示PCIe设备的控制范围。称为BAR的基地址寄存器标识控制范围的开始地址。在接口单元处支持的BAR中的至少一个的基地址被配置为位于控制器单元的控制范围内,使得在数据处理***处运行的软件读或写由接口单元的BAR表示的地址范围时,那些读或写实际上被发送给控制器单元的控制范围。换句话说,由接口单元表示的(被分配给它的)物理地址范围的至少一部分实际上被分配给控制器单元。由于在数据处理***处运行的主机软件从PCIe设备的BAR获取该设备的控制范围的地址范围,该主机软件将使用分配给该控制器单元的地址范围来与由控制器单元和接口单元两者形成的PCIe设备交互。
典型地,支持PCIe设备的数据处理***的基本输入/输出***(BIOS)分配将被***中的每个设备用作控制范围的地址范围,并且当需要使用它们时对每个设备进行编程。这些操作可在数据处理***启动时进行。
控制器单元优选地被配置为处理PCIe接口单元的中断。由于主机软件程序在***PCIe设备(在该例中接口单元)处进行设备中断的配置,因此这可以通过配置接口单元向控制器单元转发对它的中断寄存器的更新来实现,从而使控制器单元能直接在处理器自身处引发中断。
可以做出进一步的规定来允许上述分离PCIe设备支持传统的I/OBAR。传统的I/O BAR允许PCIe设备能向后兼容指向传统设备地址范围的传统读和写。这可以通过将接口单元配置为提供在控制器单元的控制范围上指向传统I/O BAR的间接的读和写来处理。
传统I/O BAR的寄存器被设置为接收对网络接口设备的传统寄存器的读和写,并将那些读和写映射为对控制单元的控制范围的读和写。对接口单元的传统寄存器的读和写到对控制器单元的控制范围的读和写的映射可以是直接对应关系、间接映射或其他映射。可以有分开的每次读和写的间接性,或者对传统I/O BAR寄存器的每次读和写的事实上的多次间接性。
因此,在此所述的对接口单元的传统寄存器的传统读和写变成通过PCIe总线(以及可能附加的达到处理器的互连链路)对控制器单元的存储器读或写。这避免了在接口单元处对被配置为处理传统I/O读的逻辑的需要,使控制器单元能维护对PCIe设备的读和写控制。
接口单元可以是支持一个或更多个物理功能(physical function,PF)和虚拟功能(virtual function,VF)的单根输入/输出虚拟化(SR-IOV)或多根输入/输出虚拟化(MR-IOV)PCIe设备。
对于多处理器数据处理***或刀片式服务器中特定类型的分离PCIe设备,接口单元可被配置为支持多个控制器单元,其中每个控制器单元位于不同的处理器处。接口单元604因此被配置为为每个控制器单元支持一个或更多个BAR,特定控制器单元的至少一个BAR的基地址被配置为位于那个控制器单元的控制范围内。类似地,接口单元可被配置为以上述方式为多个控制器单元处理传统的I/O BAR。
注意,接口单元优选地进一步支持设备的配置访问、VPD(VitalProduct Data,重要产品数据)和引导ROM(boot ROM)。
当应用于根据本发明配置的PCIe网络接口设备时,接口单元604是媒体接口,控制器单元602是控制器单元。在本发明的优选实施例中,参考图2-9在此描述的控制器单元和媒体接口是具有分离PCIe设备结构的PCIe设备。
在处理器处控制器单元的实现
在图7中展示了在处理器处控制器单元的优选实现的示意图。如在图2和3中所述那样,控制器单元702被配置为处理发送和接收操作的逻辑方面,是由控制器单元和媒体接口形成的网络接口设备的控制器,媒体接口提供到网络的物理访问。控制器单元702在处理器701处得以支持,处理器701是数据处理***的中央处理单元(CPU),因此能够访问主机存储器703和借助于其可访问该数据处理器***的设备(例如在***数据总线上的媒体接口)的至少一个数据总线709(例如CPU互连)。存储器703可由处理器通过专用数据总线708访问。其他存储器可由处理器通过数据总线709访问。数据总线708和709可以是同一条数据总线。注意,处理器701可包括共享单个控制器单元702的多个处理核。
控制器单元进一步包括封装电路711,封装电路711被配置为执行(a)将在控制器单元处形成的网络数据分组封装在适合于通过数据总线709发送的数据分组中,和(b)从通过数据总线709接收的数据分组中提取网络数据分组。网络数据分组的这种封装和提取根据参考图4所示的Eol协议得以执行。
处理器701优选地包括至少一个高速缓存705,高速缓存705被配置为存储保持在包括703的主机存储器中的数据的副本。处理器的高速缓存705可被认为位于存储器管理单元704。高速缓存为处理器提供在它的运行期间对所需数据的低延迟访问。最优地,高速缓存是由CPU的所有处理核共享的片上高速缓存。将处理器配置为使控制器单元能够访问高速缓存705以便控制器单元甚至能够比通过存储器总线708更低延迟地访问数据,这是有益的。
由于处理器支持软件应用线程以及处理形成数据分组所依据的网络协议的网络栈,CPU通常执行被形成为用于通过网络传输的网络数据分组的数据和协议处理中的至少一些。这种软件网络栈典型地在将部分形成的数据分组传递给网络接口设备以完成较低层(例如以太网)上的网络数据分组和硬件卸载(例如TCP校验和卸载)之前,在OSI模型的较高层执行数据分组(例如TCP/IP数据分组)的初始形成。由于CPU的高速缓存典型地包括处理器频繁或最近使用的数据,因此有好的可能性:控制器单元完成给定网络数据分组所需的至少一些数据将在该高速缓存中找到。
结果,如果控制器单元702被配置为,当从主机存储器请求数据时,为该数据首先访问高速缓存,如果在高速缓存处未找到该数据,则随后从主机存储器中读取该数据,这是有益的。特别地,如果控制器单元被配置为为保存在主机存储器中的发送队列处的分组数据而首先访问高速缓存,这是优选的。控制器单元优选地被配置为,如果该控制器单元所需的分组数据未在高速缓存处找到,则当该分组数据从主机存储器中被读取时不被复制入高速缓存605。因为一旦发送数据被发送,控制器单元或处理器通常不再需要它,这避免了用后续不太可能需要的数据污染高速缓存。控制器单元优选地被配置为,如果在高速缓存处找到该控制器单元所需的分组数据,则使该高速缓存中该分组数据所驻存的高速缓存线无效。由于控制器单元或处理器不太可能后续需要该分组数据,因此这释放了高速缓存中的空间,并避免了将分组数据写回主机存储器,节约了总线和存储器带宽。最优地,是否无效高速缓存线的决定在软件的控制下作出。
类似地,一旦通过网络接收到数据分组,典型地由网络接口设备在将分组中的数据写入主机存储器之前,在较低网络协议层上处理接收的数据分组,以使在处理器处执行的软件网络栈能完成所接收数据分组的协议处理。因此,软件网络栈的一个或更多个进程在网络栈执行该数据分组的协议处理时,可能访问所接收数据分组的数据。因此,如果控制器单元被配置为一旦向主机存储器写入接收的分组数据,就将该数据的至少一些写入随后在处理器处执行的进程(比在主机存储器中)能更高效地访问的高速缓存中,这是有益的。控制器单元可被配置为仅向高速缓存写入所接收数据分组的所选部分,该选择优选地由该数据分组所根据的协议来确定。所接收数据分组的所选部分可以是该数据分组的头部。控制器单元可以被配置为,对于预定网络协议组的数据分组,不将这些数据分组的任何部分写入高速缓存。最优地,控制器单元由管理软件根据在数据处理***上运行的软件进程的配置来配置。
特别地与控制数据相关,控制器单元优选地被配置为,当进行控制数据的读取时首先访问高速缓存,并且当向主机存储器进行控制数据的写时将控制数据写入高速缓存。控制数据可包括描述符、通知事件和来自地址转换表和转发表的数据。转发表典型地包括确定网络接口设备如何处理(a)接收的网络数据分组(即应当将所接收数据分组的数据传递给哪个(哪些)接收队列,和/或应当将该数据分组发送给哪些其他网络设备)和(b)用于发送的网络数据分组(例如向数据分组写入哪些目的地地址信息,以使该数据分组被路由至适当的端点)的信息。优选地,控制器单元所需的转发表706和地址转换表707存储在主机存储器703处,而不是控制器单元的专用存储器处。这使控制器单元能在处理器模上占用较少的空间,并且由于控制器单元能访问到主机存储器和高速缓存的处理器的低延迟连接,因此不会对网络接口设备的性能产生负面影响。一般来说,控制器单元在主机存储器中存储它的状态。作为另一种方式,可以为控制器单元提供它自己的专用的等级1高速缓存710,在高速缓存710中存储由控制器单元处理的数据流的控制数据。
对于在***数据总线处支持的传统网络接口设备,数据处理***的物理和虚拟域之间的存储器地址转换通常在网络接口设备和主机存储器之间的数据通路上的I/O存储器管理单元(IOMMU)处执行。由于控制器单元位于处理器处而不在***设备处,IOMMU(如果存在的话)不在控制器单元和主机存储器之间。因此,优选地,控制器单元被配置为将处理器的存储器管理单元(MMU)704用于地址转换。存储器管理单元被配置为为控制器单元发出的从主机存储器和向主机存储器的读和写进行存储器地址转换。为控制器单元提供对MMU的访问,使得控制器单元能够处理虚拟存储器地址。这意味着可信软件域(例如内核或***管理程序)和不可信软件域(例如访客操作***或应用)都可向控制器单元标识主机存储器缓冲(例如发送队列),因为控制器单元既能够使用物理的又能够使用虚拟的存储器地址。并且,为控制器单元提供对处理器的MMU的访问,避免了需要控制器单元管理分离的I/O地址空间,并简化了在虚拟化***和利用用户级联网的***中不可信软件域的直接设备访问的实现。
为了使MMU能代表控制器单元进行地址转换,控制器单元维护由控制器单元表示的物理网络接口设备的每个虚拟网络接口设备(VNIC)与为其分配了VNIC的各个虚拟化域的地址空间之间的对应关系。这使控制器单元能够向MMU标识存储器读或写与哪个虚拟地址空间相关。
为了避免设备在主机存储器的发送队列中改写(overwrite)数据,数据处理***通常被配置为,当用于发送的数据已被写入存储器的页面时锁定(pin)该页面。这预留了存储器页面,并防止了页面被重分配。这种锁定对由根据本发明配置的网络接口设备执行的发送操作来说不是必要的。优选地替代地,不执行存储器锁定,并且如果地址转换失败(例如因为已向存储设备的页面文件写入存储器页面,并且该页面被重分配),MMU被配置为产生一个错误,来指示在主机存储器中不存在虚拟地址。因此,转换失败被处理器作为页面故障而被处理。
这允许通过以下方式在数据处理***中处理转换过程中的失败。当控制器单元对在主机存储器处的发送队列数据发出由MMU转换的读,并且该转换失败时,MMU在控制器单元处为所述读相关的存储器页面产生页面故障错误。在响应中,控制器单元暂停与所述读相关的发送操作关联的发送队列,并向软件实体(典型地是网络接口设备的设备驱动)发送通知。软件使该页面在存储器中可获得(这典型地由数据处理***的特权模式软件实体(例如部分内核或***管理软件)来处理)。一旦使页面可获得,处理发送操作的软件解除暂停发送队列,并使控制器单元重新尝试发出读,并继续在发送队列处处理数据。
通过减少需要锁定的存储器量,管理主机存储器的特权软件(例如内核或***管理软件)具有更多自由以将存储器外的页面写回数据存储(例如在非易失性存储设备处的页面文件)中。上述机制不会给MMU引入任何附加的复杂度,并且由于不需要锁定操作,减少了复杂度和发送通路上的CPU开销。
通过在在数据目标地址转换失败的情况下能将在控制器单元处接收的数据写入到的主机存储器处维护经锁定的接收缓冲池,也可以在接收操作期间最小化在主机存储器处的缓冲锁定。这消除了锁定主机存储器处接收队列的页面的需要。优选地,当控制器单元向主机存储器中的接收队列发布所接收分组数据的写并且对该接收队列的目的地址转换在MMU处失败时,接收的分组数据被写入主机存储器中的被预留作为不能立即被写入适当的接收队列的所接收数据分组的回退(fall back)的另选缓冲中。这是重要的,因为不像分组发送的情况,不可能暂停接收队列,直到地址转换成功——任何时候都可能接收到接收队列的新数据分组。在将接收的数据分组写入另选缓冲后,控制器单元继续处理接收的数据分组,为了将接收的数据复制到它各自的接收队列中而适当时发布写请求。
当地址转换失败时,由控制器单元通知在数据处理***中处理接收操作的软件,并通过重新分配由各个接收队列使用的一个或更多个存储器页面来作出响应。为了处理没有被写入它的接收队列的所接收数据分组,该软件还访问另选缓冲。对于数据处理***的每个软件域可能有一组经锁定的另选缓冲。
媒体接口的实现
参考如上所述的图2和3,媒体接口为控制器单元提供到网络的物理接口。媒体接口可以在诸如PCIe这样的***数据总线上得以支持,或者可以借助于CPU互连直接与包括控制器单元的处理器相耦合。由于在控制器单元和媒体接口之间的互连上采用了基于分组的路由,单一的媒体接口优选地可操作来支持多个控制器单元的发送和接收操作。
图8展示了根据本发明配置的媒体接口的示意图。媒体接口801包括被配置为通过网络803执行数据分组的物理传送的PHY 802,和被配置为使媒体接口能够通过数据总线809传送网络数据分组的封装电路805。封装电路805被配置为执行(a)将通过网络接收的网络数据分组封装在适合于通过数据总线809发送给控制器单元的数据分组中,和(b)从通过数据总线809从控制器单元接收的数据分组中提取用于通过网络发送的网络数据分组。根据参考图4的上述Eol协议进行网络数据分组的这种封装和提取。
如果媒体接口包括用于网络接口设备的管理控制器806,这是有益的。管理控制器使网络接口设备能够借助于通过网络接收的命令被远程地管理。通过在媒体接口处设置管理控制器,管理控制器可以在处理器被断电的数据处理***的低功率状态期间保持有电。管理控制器可以被配置为与在父亲数据处理***的基板处的基板管理控制器(BMC)通信。这使得数据处理***,如现有技术中众所周知的那样,能够被通过网络接收的命令远程管理。在具有共享媒体接口的多个控制器单元的***中,管理控制器806被配置为代表所有控制器单元处理管理命令。
对于校验和的计算来说,通常将其卸载到它们能在诸如状态机这样的专用电路中高效地被执行的***网络接口设备。媒体接口优选地包括被配置为执行适合于在网络上使用的网络协议的校验和计算的电路807,例如,对于以太网网络,校验和可以是32位的CRC校验和。
通常,媒体接口执行特定于在网络上使用的网络协议(例如以太网)的功能。大多数其它功能在控制器单元处得以完成。然而,特定的逻辑操作在靠近物理网络端口804的媒体接口处得以完成,这通常是有益的。为了给出一些示例,对于以下协议,控制器单元和媒体接口之间的功能组划分是优选地:
i.诸如IEEE 802.1Qbb(每优先级暂停,Per-Priority Pause)这样的链路层流量控制优选地在媒体接口处进行;
ii.IEEE 802.1Qaz(增强型传输选择,Enhanced Transmission Selection)优选地在控制器单元处完成;
iii.IEEE 802.1Qau(拥塞通知,Congestion Notification)优选地既在控制器单元又在媒体接口处完成。
优选地,其他功能和任何从在父亲数据处理***上运行的软件网络栈卸载的协议处理在控制器单元处进行。这包括:
a.用于协议(例如IP、TCP、UDP、iSCSI和通过以太网的光纤信道(Fibre Channel over Ethernet,FCoE))的校验和卸载
b.为iWARP结构处理的TCP卸载
c.iSCSI、FCoE卸载
d.TCP分段卸载(TCP segmentation offloading,TSO),大接收卸载(large receive offload,LRO)和接收侧调节(receive side scaling,RSS)
e.NIC虚拟化
在一些实施例中,媒体接口不包括PHY,该PHY替代地可由媒体接口通过接口访问并控制。例如,媒体接口可与支持包括控制器单元的处理器的芯片集(例如,在I/O集线器处)集成在一起,PHY可位于数据处理***的物理网络端口处。这种媒体接口如在此所述那样运行,但在与媒体接口集成电路本身分离的PHY处的媒体接口的控制下执行物理传送。
对刀片式服务器的应用
根据本发明配置的分离网络接口设备,在刀片式服务器中有特殊的应用。刀片式服务器是具有多个刀片的模块化计算机***,每个刀片支持一个或更多个处理器、存储器和用于与其他刀片和机架通信的I/O接口。通常,每个刀片的I/O接口由网络控制器利用诸如IEEE 10GBASE-KR接口这样的高速串行数据接口在物理层提供。机架典型地支持交换机以连接刀片和为刀片式服务器的刀片提供到更宽网络的访问。作为另一种方式,每个刀片的I/O接口可由诸如PCIe这样的***数据总线来提供,并且刀片共享位于机架的一个或更多个网络控制器。在这种刀片式服务器中,网络控制器典型地是PCIe MR-IOV设备。
每个刀片本身是一个数据处理***并且能支持一个或更多个操作***——通常刀片具有虚拟化结构,在该结构中有多个由特权模式软件域(例如***管理软件)支持的访客操作***(例如虚拟机)。因此,一个单独的刀片式服务器可以支持多个操作***,每个操作***反过来可以支持希望与在刀片中的其他处理器处、在其他刀片上的处理器处或者在通过网络可访问的其他服务器或刀片式服务器上执行的其他应用进行通信的多个应用。
图9展示了根据本发明配置的刀片式服务器的示意图。刀片式服务器900包括多个刀片901、914,每个刀片具有包括控制器单元702的一个或更多个处理器701。刀片还包括处理器可访问的一个或更多个存储器703。刀片在包括媒体接口801的机架902处得以支持,媒体接口801可操作来提供到网络913的访问。媒体接口被配置为为刀片式服务器的多个刀片提供到网络913的访问。换句话说,在该服务器的任何刀片上的任何处理器中的控制器单元可被配置为借助于媒体接口来通信。机架902可以包括多个媒体接口,每个媒体接口可例如提供到不同网络或子网的访问。
多处理器刀片的处理器通过诸如HyperTransport或QPI这样的CPU互连相连接。这使得控制器单元能借助于高速CPU互连直接地互相通信,如参考图5a所述那样。媒体接口在还形成了刀片式服务器的刀片间的互连的、诸如PCIe这样的刀片式服务器的数据总线916处得以支持。每个刀片可包括一个或更多个I/O集线器909,以使每个处理器能通过数据总线通信。最优地,每个处理器支持到数据总线的一个接口,在该情况下不需要I/O集线器909。
通过向媒体接口提供标识每个控制器单元支持的网络端点组的一个或更多个转发表,媒体接口可被配置为在刀片式服务器的不同刀片上的网络端点间进行数据的内部路由。例如,如果数据总线是PCIe数据总线,媒体接口可以是被配置为支持多个PCIe根(典型地每个刀片一个)的MR-IOV PCIe设备。一旦通过PCIe总线从在第一刀片处的控制器单元接收到在第二刀片的处理器处支持的网络端点的Eol封装网络数据分组,媒体接口将使用转发表确定该网络节点在第二刀片的控制单元处得以支持,然后通过PCIe数据总线将该网络数据分组路由给那个控制器单元。以这种方式,媒体接口可在刀片式服务器的刀片之间以及网络和刀片之间的网络协议层(例如链路层以太网)上处理数据分组的路由。
然而,为了进行刀片式服务器的刀片间数据的内部路由,如果在机架处提供数据总线交换机911而不是让媒体接口进行刀片间路由,这是优选的。这意味着刀片式服务器的刀片间的内部数据传输并不一定要经过媒体接口到数据总线的连接,如果媒体接口被配置为进行所有的路由,这是一个特殊的瓶颈。优选地,数据总线是PCIe数据总线,交换机是PCIe交换机。与在单独的PCIe设备(例如媒体接口)处或在网络913上的边缘交换机处的数据处理***外部(例如如果刀片式服务器根据虚拟以太网端口聚合协议(Virtual Ethernet Port Aggregator Protocol)或VEPA被配置)执行交换相比,PCIe交换机能够提供非常大的带宽。
在第一实施例中,数据总线交换机911被配置为,依赖于在数据总线分组的头部的地址信息(即在数据总线上使用的数据协议的层级上)在数据总线916上进行数据分组的路由。由于该路由由交换机在数据总线协议的层级上进行,内部数据传输的延迟得以改善。然而,这种设置需要每个控制器单元702的每个转发表706包括刀片式服务器的每个控制器单元的设备地址和由每个控制器单元支持的网络端点的地址之间的对应关系。这使得每个控制器单元能够确定是否特定的网络端点在刀片式服务器处被支持,能够将通过数据总线发送的每个数据分组相应地寻址。
例如,假设在第一刀片的处理器处的应用有数据要发送给在第二刀片的处理器处的应用,刀片和媒体接口由PCIe数据总线互连并提供到以太网网络的接口。第一处理器的控制器单元形成发送给在第二刀片的处理器处的应用的端点的以太网数据分组。在形成封装以太网数据分组的一个或更多个Eol PCIe数据分组时,控制器单元将在它的转发表中查找在第二刀片的处理器处的控制器单元的设备地址,并将该设备地址***PCIe数据分组的路由信息中。一旦到达PCIe交换机,该交换机识别目标设备(在第二刀片的处理器处的控制器单元)并将该PCIe数据分组相应地路由。注意,如果网络端点未在刀片式服务器处得以支持(即它是远程网络地址),控制器单元将使用媒体接口的设备地址。
在优选的第二实施例中,数据总线交换机911被配置为在网络协议层级(例如链路层以太网)上在刀片式服务器的刀片间处理数据分组的路由。因此,数据总线交换机被配置为解析封装在该交换机处接收的EolPCIe数据分组中的网络数据分组的至少一些头部信息。只需要该交换机支持转发表,该转发表包括在刀片式服务器的每个控制单元的设备地址和由每个控制器单元支持的网络端点的地址之间的对应关系。如果在刀片内将在控制器单元间路由数据而不经过交换机,每个控制器单元仅需要支持用于在它的刀片处支持的网络端点的转发表。这减小了每个控制器单元所需的转发表大小,并且简化了刀片式服务器的控制平面。
例如,假设在第一刀片的处理器处的应用有数据要发送给在第二刀片的处理器处的应用,刀片和媒体接口由PCIe数据总线互连,并且提供到以太网网络的接口。第一处理器的控制器单元形成发送给在第二刀片的处理器处的应用的端点的以太网数据分组。在形成封装以太网数据分组的一个或更多个Eol PCIe数据分组时,控制器单元识别在第一刀片处不支持数据分组将被发送至的以太网地址,结果,它将把PCIe交换机的设备地址***到PCIe数据分组的路由信息中。一旦到达PCIe交换机,该交换机解析该PCIe数据分组,并从包括在其中的网络数据分组中识别目标以太网地址。该交换机然后在它的转发表中查找相应于该目标以太网地址(即在支持该以太网地址的第二刀片的处理器处的控制器单元设备)的设备地址,并在将该数据分组推送到适当的PCIe数据总线上前,相应地更新该PCIe数据分组头部。
第二实施例也改善了多播流量的性能,因为这种流量仅需要从控制器单元或媒体接口传输给数据总线交换机一次:交换机将把该多播流量发送到每个适当的端点上。在第一实施例中,控制器单元必须分别将多播流量发送给在刀片式服务器中的每个接收者,因为在交换机处的路由在数据总线层进行。
如果媒体接口是PCIe设备,并且互连刀片的数据总线是PCIe数据总线,这是有益的,因为与传统的刀片式服务器结构相比这普遍地减少了所需的PHY数量,从而降低了每个刀片的功率需求。传统的刀片式服务器通常在每个刀片处具有到底板(backplane)的串行I/O接口(PHY#1),每个I/O接口由PCIe总线(PHY#2)在该刀片处被支持。通过将PCIe数据总线用作刀片式服务器的底板,不再需要PHY#1。
最优地,媒体接口是支持在刀片式服务器处的每个控制器单元的通信的MR-IOV PCIe设备。换句话说,MR-IOV媒体接口支持用于刀片式服务器的每个刀片的至少一个物理功能(physical function,PF)或虚拟功能(virtual function,VF)。如果为每个刀片分配一个PF,并且为刀片的每个控制器单元分配一个属于那个刀片的PF的VF,这是最直接的。然而,正如对***设备领域的技术人员而言将显而易见的那样,可使用其他设置。
注意,交换机或网格拓扑可被用于刀片间的连接。
在此描述的实际的刀片式服务器结构与虚拟以太网桥(VirtualEthernet Bridge,VEB)或虚拟以太网端口聚合(VEPA)协议兼容。在VEB的情况下,在刀片式服务器的刀片处的网络端点间的数据传输如上所述那样运行。在VEPA的情况下,在端点(甚至是在同一处理器处支持的那些)之间的所有交换都在网络913的边缘交换机处进行。如果强制采用VEPA协议,则控制器单元、数据总线交换机和媒体接口被配置为通过媒体接口将所有网络数据分组传递给相关的边缘交换机。
数据总线交换机可以形成或不形成与媒体接口相同的集成电路的一部分。
参考刀片***在此描述的实施例,可等同地应用于其他虽然没有物理刀片、但仍然可以被认为是包括了多个数据处理***的多处理器***。
注意,在在此描述的任何实施例中,媒体接口可支持一个或更多个物理网络端口。
据此,申请人分别公开了每个在此描述的单独特征和两个或多个这种特征的任意组合,到达了根据本领域技术人公知常识,基于作为整体的本说明书这种特征或组合能够实现的程度,无论这种特征或特征的组合是否解决了在此公开的任何问题,而不限制权利要求的范围。申请人指出本发明的方面可包括任意这种特征或特征的组合。鉴于前述的描述,对于本领域技术人员来说在本发明的范围内作出各种变型将是必然的。
Claims (71)
1.一种包括中央处理器单元和分离网络接口功能组的数据处理***,该分离网络接口功能组包括:
第一子单元,该第一子单元与所述中央处理单元设置在一起,并且被配置为,通过为各网络数据分组生成数据链路层信息,至少部分地形成用于发送给网络端点的一系列网络数据分组;以及
第二子单元,该第二子单元在所述中央处理单元外部,并通过互连与该中央处理单元相耦合,该第二子单元被配置为通过网络物理地传送所述一系列网络数据分组。
2.如权利要求1所述的数据处理***,其中,所述第一子单元被配置为根据在所述互连上使用的数据协议,将所述一系列网络数据分组中的各个网络数据分组封装在一个或更多个互连数据分组中。
3.如权利要求1或2所述的数据处理***,其中,所述第一子单元被配置为向所述第二子单元发送所述互连数据分组,以使所述第二子单元通过所述网络传送各个网络数据分组。
4.如任一项前述权利要求所述的数据处理***,其中,所述第一子单元被配置为部分地形成所述一系列网络数据分组,并且所述第二子单元被配置为在所述网络上使用的所述网络协议的数据链路层完成所述一系列网络数据分组中各个网络数据分组的形成。
5.如权利要求4所述的数据处理***,其中,所述第二子单元被配置为通过针对各个网络数据分组计算一个或更多个校验和,在所述数据链路层完成所述一系列网络数据分组中各个网络数据分组的形成。
6.如任一项前述权利要求所述的数据处理***,其中,所述第二子单元被配置为根据在所述网络上使用的所述网络协议的物理层需求,通过所述网络物理传送完成后的所述一系列网络数据分组。
7.如任一项前述权利要求所述的数据处理***,该数据处理***还包括与所述中央处理单元耦合的存储器和/或高速缓存,在所述中央处理单元处,存储器管理单元被配置为为所述中央处理单元和所述第一子单元提供到所述存储器和/或高速缓存的访问。
8.如权利要求7所述的数据处理***,其中,所述存储器和/或高速缓存被配置为保存包括用于通过所述网络发送的数据在内的发送队列,并且所述第一子单元被配置为借助于对所述存储器管理单元的读请求访问所述发送队列,并使用用于通过所述网络发送的数据来形成所述一系列网络数据分组。
9.如任一项前述权利要求所述的数据处理***,其中,所述第二子单元能够操作以通过所述网络接收一系列网络数据分组,并且所述第一子单元被配置为在所述数据链路层至少部分地处理各个接收到的网络数据分组,以便提取在该网络数据分组中携带的数据。
10.如从属于权利要求7的权利要求9所述的数据处理***,其中,所述第一子单元被配置为在所述存储器处存储转发表,该转发表包括信息,该信息所述第一子单元能够针对各个接收到的网络数据分组,依赖于该接收到的网络数据分组的内容将提取的数据路由至所述存储器和/或其他网络设备中的一个或更多个接收队列。
11.如权利要求9或10所述的数据处理***,其中,所述第二子单元被配置为根据在接近所述第二子单元的所述互连的数据链路上使用的数据协议,将各个接收到的网络数据分组封装在一个或更多个互连数据分组中。
12.如权利要求9至11中的任一项所述的数据处理***,其中,所述第二子单元被配置为向所述第一子单元发送所述互连数据分组,以便使所述第一子单元在所述数据链路层至少部分地处理各个接收到的网络数据分组,并提取在接收到的网络数据分组内携带的数据。
13.一种数据处理***,该数据处理***包括:
中央处理单元,该中央处理单元包括网络接口控制器,该网络接口控制器被配置为,根据网络协议,通过在数据链路层将用于通过网络发送的数据至少部分地形成帧,来形成中间数据单元,每个中间数据单元包括用于传输的数据的目的地网络地址;
存储器,该存储器与所述中央处理单元相耦合;
媒体接口,该媒体接口与所述网络相连接,并且被配置为通过所述网络发送完全形成的数据分组;以及
第一互连,该第一互连在所述中央处理单元和所述媒体接口之间延伸,该互连由一条或更多条数据链路形成;
其中,所述网络接口控制器被配置为,将所述网络协议的中间数据单元封装在通过所述第一互连发送的互连数据分组中,并且所述媒体接口被配置为,从通过所述第一互连接收的互连数据分组中提取中间数据单元,并在物理层处理该中间数据单元,以便根据所述网络协议完成数据分组的形成。
14.如权利要求13所述的数据处理***,其中,所述网络接口控制器被配置为,根据在接近所述中央处理单元的所述第一互连的数据链路上使用的数据协议,将每个中间数据单元封装在一个或更多个互连数据分组中。
15.如权利要求13至14所述的数据处理***,其中,所述网络接口控制器被配置为,使一个或更多个互连数据分组被发送给所述媒体接口,以便使所述媒体接口通过所述网络发送完整形成的网络数据分组。
16.如权利要求13至15中的任一项所述的数据处理***,其中,所述网络接口控制器被配置为,将封装头部写入每个互连数据分组,该封装头部包括使所述媒体接口能根据互连数据分组来重组各中间数据单元的信息。
17.如权利要求13至16中的任一项所述的数据处理***,其中,所述第一互连包括以下两条数据链路:
第一数据链路,该第一数据链路在所述中央处理单元和转换单元之间延伸;以及
第二数据链路,该第二数据链路在所述转换单元和所述媒体接口之间延伸;
所述转换单元被配置为,将根据在所述第一数据链路上使用的数据协议而形成帧的互连数据分组转换为根据在所述第二数据链路上使用的数据协议而形成帧的互连数据分组,和将根据在所述第二数据链路上使用的数据协议而形成帧的互连数据分组转换为根据在所述第一数据链路上使用的数据协议而形成帧的互连数据分组。
18.如权利要求17所述的数据处理***,其中,所述转换单元被配置为通过以下操作来转换互连数据分组:
移除在所述第一数据链路上使用的数据协议的帧形成数据,并根据在所述第二数据链路上使用的数据协议来对所述一个或更多个互连数据分组重新形成帧,或者
根据在所述第二数据链路上使用的数据协议,增加关于所述一个或更多个互连数据分组的附加帧形成层。
19.如权利要求17或18所述的数据处理***,其中,所述第一数据链路是CPU互连,并且所述第二数据链路是***数据总线。
20.如权利要求19所述的数据处理***,其中,所述媒体接口在所述***数据总线处被支持。
21.如权利要求19或20所述的数据处理***,其中,所述CPU互连是HyperTransport互连、QuickPath互连和PCIe互连中的一个。
22.如权利要求19至21中的任一项所述的数据处理***,其中,所述***数据总线是PCIe。
23.如权利要求13至22中的任一项所述的数据处理***,其中,所述中央处理单元进一步包括存储器管理单元,该存储器管理单元被配置为为所述中央处理单元和所述网络接口控制器提供到所述存储器的访问。
24.如权利要求13至23中的任一项所述的数据处理***,其中,所述网络接口控制器被配置为,如果目的地网络地址属于在所述中央处理单元处支持的进程,则直接将用于发送的数据写入所述存储器处的接收队列,而不将该数据封装在一个或更多个互连数据分组中,所述接收队列对应于所述目的地网络地址。
25.如权利要求24所述的数据处理***,其中,所述网络接口控制器进一步被配置为不根据所述网络协议在所述数据链路层对所述数据形成帧。
26.如权利要求23至25中的任一项所述的数据处理***,其中,所述存储器被配置为保存包括用于通过所述网络发送的数据的一个或更多个发送队列,并且所述网络接口控制器能够操作以借助于对所述存储器管理单元的读请求,在用于发送的数据各自的发送队列处访问所述数据。
27.如权利要求23至26中的任一项所述的数据处理***,其中,所述存储器管理单元包括高速缓存,该高速缓存能够操作来存储在所述存储器处保存的至少一些数据的副本,并且该高速缓存能由所述中央处理单元和所述网络接口控制器两者访问。
28.如权利要求27所述的数据处理***,其中,所述高速缓存被配置为存储由所述中央处理单元最近在所述存储器处访问的数据。
29.如权利要求27或28所述的数据处理***,其中,所述网络接口控制器被配置为对于能在所述存储器和所述高速缓存处获得的任何用于发送的数据,优先于从所述存储器读取该用于发送的数据而从所述高速缓存读取该数据。
30.如权利要求27或28所述的数据处理***,其中,所述网络接口控制器被配置为,对于不能在所述高速缓存处获得的用于发送的数据,从所述存储器读取所述数据并且不向所述高速缓存写入该数据。
31.如权利要求29所述的数据处理***,其中,所述网络接口控制器被配置为,一旦从所述高速缓存读取了用于发送的数据,则使所述高速缓存的相应的线无效,以使在所述中央处理单元处执行的其他进程能改写这些线。
32.如权利要求13至31中的任一项所述的数据处理***,其中:
所述媒体接口能操作来通过所述网络接收网络数据分组,并将接收到的网络数据分组封装在用于通过所述第一互连发送的互连数据分组中;并且
所述网络接口控制器被配置为,从互连数据分组中提取接收到的网络数据分组,并且根据网络协议至少部分地在数据链路层处理各个接收到的网络数据分组,以便提取在各个接收到的网络数据分组中携带的数据。
33.如权利要求32所述的数据处理***,其中,所述媒体接口被配置为,根据在接近所述媒体接口的所述第一互连的数据链路上使用的数据协议,将各个接收到的网络数据分组封装在一个或更多个互连数据分组中。
34.如权利要求32或33所述的数据处理***,其中,所述媒体接口被配置为,将所述互连数据分组发送给所述网络接口控制器,以使所述网络接口控制器在所述数据链路层至少部分地处理各个接收到的网络数据分组,并将携带在各个接收到的网络数据分组中的数据写入在所述存储器处的至少一个接收队列,该至少一个接收队列由在接收到的网络数据分组内包括的目的地网络地址标识。
35.如从属于权利要求27的权利要求34所述的数据处理***,其中,所述网络接口控制器被配置为,一旦将携带在接收到的网络数据分组内的数据写入在所述存储器处的接收队列,就将该数据写入所述高速缓存。
36.如权利要求32至35中的任一项所述的数据处理***,其中,所述网络接口控制器被配置为,在所述存储器处存储转发表,该转发表包括信息,该信息使得所述网络接口控制器能够针对各个接收到的网络数据分组,根据所述目的地网络地址选择所接收到的网络数据分组的数据要被路由到的所述存储器和/或其他网络设备处的一个或更多个接收队列。
37.如权利要求32至36中的任一项所述的数据处理***,其中,所述媒体接口被配置为,将封装头部写入每个互连数据分组,该封装头部包括使所述网络接口控制器能根据互连数据分组重组各个网络数据分组的信息。
38.如从属于权利要求23的权利要求24至37中的任一项所述的数据处理***,其中,所述存储器管理单元被配置为,一旦从所述中央处理单元或所述网络接口控制器接收到访问虚拟存储器地址的请求,就将该虚拟存储器地址转换为所述数据处理***的物理存储器地址并访问该物理存储器地址。
39.如权利要求38所述的数据处理***,其中,所述存储器管理单元被配置为,如果对代表所述网络接口控制器的虚拟存储器地址的转换失败,则向所述网络接口控制器发起页面故障。
40.如权利要求39所述的数据处理***,其中,所述网络接口控制器被配置为响应于页面故障执行以下操作:
如果虚拟存储器地址与发送队列相关,则使对应于该虚拟存储器地址的发送队列被暂停,直到各个页面被重新写入所述存储器;或者
如果虚拟存储器地址与接收队列相关,则将与所发出的请求有关的、接收到的网络数据分组的数据写入预留缓冲,以供所述数据处理***的协议处理实体来获取。
41.如权利要求13至40中的任一项所述的数据处理***,该数据处理***进一步包括:
第二中央处理单元,该第二中央处理单元包括第二网络接口控制器,该第二网络接口控制器也被配置为,根据网络协议通过在数据链路层至少部分地对用于发送的数据的形成帧,来形成中间数据单元,每个中间数据单元包括用于发送的数据的目的地网络地址;以及
第二互连,该第二互连在所述第二中央处理单元和所述媒体接口之间延伸,该第二互连由一条或更多条数据链路形成;
其中,所述第二网络接口控制器被配置为,将网络协议的中间数据单元封装在用于通过所述第二互连发送的互连数据分组中,并且所述媒体接口被配置为,从通过所述互连接收的互连数据分组提取中间数据单元,并且在物理层处理该中间数据单元,以便根据网络协议完成数据分组的形成。
42.如权利要求41所述的数据处理***,其中,所述第二互连的一个或更多个数据链路与所述第一互连的一个或更多个数据链路共享。
43.如权利要求41或42所述的数据处理***,其中,所述网络接口控制器被配置为,如果在所述中央处理单元处形成的中间数据单元的目的地网络地址是在所述第二中央处理单元处支持的网络地址,则使包括中间数据单元的封装后的互连数据分组被发送给所述第二网络接口控制器。
44.如权利要求41至43中的任一项所述的数据处理***,其中,所述媒体接口包括管理控制器,该管理控制器被配置为处理接收到的用于网络接口设备的管理命令,该网络接口设备(a)由所述媒体接口和所述网络接口控制器形成和(b)由所述媒体接口和所述第二网络接口控制器形成。
45.如权利要求13至44中的任一项所述的数据处理***,其中,所述数据处理***是包括一个或更多个在机架处支持的刀片的刀片式服务器,每个刀片具有一个或更多个中央处理单元,该一个或更多个中央处理单元中的至少一个包括网络接口控制器,并且所述媒体接口位于刀片式服务器的机架处。
46.如权利要求45所述的数据处理***,其中,所述中央处理单元和所述第二中央处理单元位于刀片式服务器的同一刀片处。
47.如权利要求46所述的数据处理***,其中,所述中央处理单元和所述第二中央处理单元通过包括所述第一互连的数据链路和所述第二互连的数据链路在内的CPU互连能够互相访问。
48.如权利要求45所述的数据处理***,其中,所述中央处理单元和所述第二中央处理单元位于刀片式服务器的不同的刀片处。
49.如权利要求45至48中的任一项所述的数据处理***,其中,所述网络接口控制器被配置为,如果在所述中央处理单元处形成的中间数据单元的目的地网络地址是属于在所述第二中央处理单元处支持的进程的网络地址,则通过所述CPU互连、不经由所述媒体接口将封装中间数据单元的互连数据分组发送给所述第二网络接口控制器。
50.如权利要求45至49中的任一项所述的数据处理***,其中,所述媒体接口在***数据总线处被支持,并且所述刀片式服务器的刀片被配置为通过所述***数据总线互相通信。
51.如权利要求50所述的数据处理***,该数据处理***进一步包括在所述刀片式服务器的机架处的交换机,该交换机被配置为在所述刀片式服务器的刀片间路由互连数据分组。
52.如权利要求51所述的数据处理***,其中,所述交换机被配置为根据互连数据分组的帧形成信息,在所述***数据总线上使用的数据协议的层级上路由互连数据分组。
53.如权利要求51所述的数据处理***,其中,所述交换机被配置为,在网络协议的层级上根据中间数据单元的帧形成信息,路由封装中间数据单元的互连数据分组。
54.如权利要求51至53中的任一项所述的数据处理***,其中,所述***数据总线是PCIe,并且所述交换机是PCIe交换机。
55.如权利要求13至54中的任一项所述的数据处理***,其中,所述媒体接口是常规PCIe设备、SR-IOV PCIe设备和MR-IOV PCIe设备中的一个。
56.如权利要求54所述的数据处理***,其中,所述媒体接口是SR-IOV PCIe设备,并且所述交换机是MR-IOV PCIe交换机。
57.如权利要求13至56中的任一项所述的数据处理***,其中,所述数据处理***的所述媒体接口和每个网络接口控制器被配置为借助于一个或更多个互连数据分组来交换控制数据。
58.如权利要求13至57中的任一项所述的数据处理***,其中,所述网络协议是以太网协议。
59.一种通过网络从数据处理***发送数据的方法,该数据处理***包括在到所述网络的接口处的媒体接口、具有用于访问存储器的存储器管理单元的中央处理单元以及在所述中央处理单元和所述媒体接口之间连接的互连,该方法包括以下步骤:
由位于中央处理单元处的网络接口控制器执行以下操作:
通过所述存储器管理单元从位于所述存储器处的发送队列中获取用于通过所述网络发送的数据;
在数据链路层上至少部分地形成网络协议的包含获取的数据的数据分组的帧;以及
根据在互连上使用的数据协议,将网络协议的数据分组封装在用于通过所述互连发送的数据分组中,并将该数据分组通过所述互连发送给所述媒体接口;
由所述媒体接口执行以下操作:
接收封装后的数据分组;
从封装后的数据分组提取网络协议的数据分组;
在物理层处理网络协议的数据分组,以便根据网络协议完成该数据分组的帧形成;以及
将完全形成的网络协议的数据分组发送到所述网络上。
60.一种通过网络在数据处理***处接收数据的方法,该数据处理***包括在到所述网络的接口处的媒体接口、具有用于访问存储器的存储器管理单元的中央处理单元和在所述中央处理单元和所述媒体接口之间连接的互连,该方法包括以下步骤:
由所述媒体接口执行以下操作:
通过所述网络接收网络数据分组;和
根据在所述互连上使用的数据协议,将接收的网络数据分组封装在用于通过所述互连发送的数据分组中,并将该数据分组通过所述互连发送给位于所述中央处理单元处的所述网络接口控制器;
由网络接口控制器执行以下操作:
接收封装后的数据分组;
从封装后的数据分组提取接收的网络数据分组;
根据网络协议在数据链路层至少部分地处理每个接收的网络数据分组,以便提取在每个接收的网络数据分组内携带的数据;和
借助于所述存储器管理单元将提取的数据写入在所述存储器处的接收队列。
61.一种在数据处理***处的中央处理单元间通信数据的方法,该数据处理***具有借助于互连耦合在一起的第一中央处理单元和第二中央处理单元,每个中央处理单元包括各自的网络接口控制器,所述网络接口控制器能操作来(a)根据网络协议,在数据链路层通过至少部分地形成以用于通信的数据的帧来形成中间数据单元,和(b)根据网络协议在数据链路层至少部分地处理中间数据单元,以便提取在每个中间数据单元内携带的用于通信的数据,该方法包括以下步骤:
所述第一中央处理单元将用于通信的数据传递给它的第一网络接口控制器;
由所述第一网络接口控制器执行以下操作:
根据网络协议在数据链路层通过至少部分地形成用于通信的数据的帧来形成包括用于通信的数据的中间数据单元;
将网络协议的中间数据单元封装在用于通过所述互连发送的数据分组中;和
将封装后的数据分组通过所述互连发送给v第二网络接口控制器;
由所述第二网络接口控制器执行以下操作:
接收封装后的数据分组;
从封装后的数据分组提取中间数据单元;
根据网络协议在数据链路层至少部分地处理每个中间数据单元,以便提取在每个中间数据单元内携带的数据;和
将提取的数据传递给所述第二中央处理单元。
62.一种用于数据处理***的中央处理单元,该中央处理单元包括:
处理核;
链路模块,该链路模块用于通过数据总线传送预定数据协议的数据分组;
存储器管理单元,该存储器管理单元能够操作来从与所述中央处理单元耦合的存储器获取数据;和
网络接口控制器,该网络接口控制器被配置为:
借助于所述存储器管理单元获取用于通过网络发送的数据;
在数据链路层形成包含获取的数据的网络协议的数据分组的帧;和
使所述分组被封装在预定数据协议的数据分组中,并借助于所述链路模块通过数据总线被传送。
63.如权利要求62所述的中央处理单元,其中,所述网络接口控制器不在物理层对网络协议的数据分组形成帧。
64.一种用于数据处理***的中央处理单元,该中央处理单元包括:
处理核;
高速缓存;
存储器管理单元,该存储器管理单元能够操作来从与所述中央处理单元耦合的存储器获取数据;和
网络接口管理器,该网络接口管理器被配置为当使用时将至少一些它的状态存储在与所述中央处理单元耦合的所述存储器处;
其中,所述处理核和所述网络接口控制器被配置为,借助于所述存储器管理单元访问与所述中央处理单元耦合的所述存储器,并且所述高速缓存被配置为高速地缓存在与所述中央处理单元耦合的所述存储器处存储的数据。
65.如权利要求61所述的中央处理单元,其中,所述网络接口控制器的状态包括转发表和地址转换表中的一个或全部两个。
66.一种在数据处理***处支持的、对该数据处理***将其自身表现为PCIe设备的电子设备,该数据处理***包括中央处理单元和PCIe数据总线,并且***设备具有以下两个组件:
核心组件,该核心组件位于中央处理单元处,能够操作来处理对所述电子设备的I/O请求;和
***组件,所述核心设备通过PCIe数据总线可访问该***组件;
其中,所述核心组件被配置为对发送给所述***组件的I/O请求进行响应。
67.如权利要求66所述的电子设备,其中,所述核心组件被分配了定义其控制范围的硬件地址范围,并且所述***组件被配置为,提供指示包括了所述核心组件的控制范围的基地址的硬件地址范围的基地址寄存器,使得针对由基地址寄存器指示的硬件地址范围的I/O请求在所述核心组件的控制范围处得以处理。
68.如权利要求66所述的电子设备,其中,所述***组件附加地是一个或更多个其他PCIe设备的组件,并且所述***组件被配置为,为每个其他PCIe设备提供附加的基地址寄存器,每个附加的基地址寄存器被配置为使得针对由该基地址寄存器指示的硬件地址范围的I/O请求在该其他PCIe设备的相应的核心组件处得以处理。
69.如权利要求66或67所述的电子设备,其中,所述***组件被配置为,将其接收的中断配置请求转发给所述核心组件以在该核心组件处处理。
70.如权利要求66至69中的任意一项所述的电子设备,其中,所述***组件进一步提供支持传统寄存器组的传统基地址寄存器,所述***组件被配置为当读或写所述传统寄存器时,将对所述传统寄存器的读或写映射为对所述核心组件的控制范围的读或写,使得针对所述传统寄存器组的传统I/O请求在所述核心组件的控制范围处得以处理。
71.一种本质上如参考图2至9中任一个在此描述的网络接口设备。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0913231A GB0913231D0 (en) | 2009-07-29 | 2009-07-29 | Controller integration |
GB0913231.7 | 2009-07-29 | ||
GB0917630.6 | 2009-10-08 | ||
GB0917630A GB0917630D0 (en) | 2009-10-08 | 2009-10-08 | Controller integration |
US28932309P | 2009-12-22 | 2009-12-22 | |
US61/289,323 | 2009-12-22 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101990002A true CN101990002A (zh) | 2011-03-23 |
Family
ID=43027569
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010102806828A Pending CN101990002A (zh) | 2009-07-29 | 2010-07-29 | 控制器集成 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9256560B2 (zh) |
EP (4) | EP3125127B1 (zh) |
CN (1) | CN101990002A (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103596649A (zh) * | 2013-04-25 | 2014-02-19 | 华为技术有限公司 | 一种在虚拟局域网中通信的方法、设备和*** |
CN103608797A (zh) * | 2011-03-29 | 2014-02-26 | 亚马逊技术公司 | 基于背板以太网的网络转置盒和交换机操作 |
CN103946825A (zh) * | 2011-11-22 | 2014-07-23 | 英特尔公司 | 网络设备选择 |
CN105229621A (zh) * | 2013-05-16 | 2016-01-06 | 惠普发展公司,有限责任合伙企业 | 多模式代理器 |
CN105302746A (zh) * | 2014-07-04 | 2016-02-03 | Lsi公司 | 多协议存储控制器 |
US9330052B2 (en) | 2010-09-22 | 2016-05-03 | Amazon Technologies, Inc. | Transpose box based network scaling |
CN107077438A (zh) * | 2014-10-29 | 2017-08-18 | 惠普发展公司有限责任合伙企业 | 通过通信介质的部分进行通信 |
CN107148623A (zh) * | 2014-10-24 | 2017-09-08 | 思科技术公司 | Pcie设备和功能与主机阵列的动态连接 |
CN109313618A (zh) * | 2016-06-30 | 2019-02-05 | 英特尔公司 | 用于分组传递的图形处理单元(gpu) |
CN110971586A (zh) * | 2018-09-28 | 2020-04-07 | 赛灵思公司 | 网络接口设备 |
CN113366459A (zh) * | 2018-11-28 | 2021-09-07 | 马维尔亚洲私人有限公司 | 用于车载数据传送的具有端点和直接存储器访问控制器的网络交换机 |
Families Citing this family (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5467541B2 (ja) * | 2010-02-22 | 2014-04-09 | 日本電気株式会社 | 通信制御システム、スイッチングノード、通信制御方法、及び通信制御用プログラム |
US8683108B2 (en) | 2010-06-23 | 2014-03-25 | International Business Machines Corporation | Connected input/output hub management |
US8615622B2 (en) | 2010-06-23 | 2013-12-24 | International Business Machines Corporation | Non-standard I/O adapters in a standardized I/O architecture |
US8417911B2 (en) | 2010-06-23 | 2013-04-09 | International Business Machines Corporation | Associating input/output device requests with memory associated with a logical partition |
US8416834B2 (en) | 2010-06-23 | 2013-04-09 | International Business Machines Corporation | Spread spectrum wireless communication code for data center environments |
US8656228B2 (en) | 2010-06-23 | 2014-02-18 | International Business Machines Corporation | Memory error isolation and recovery in a multiprocessor computer system |
US8671287B2 (en) | 2010-06-23 | 2014-03-11 | International Business Machines Corporation | Redundant power supply configuration for a data center |
US8645767B2 (en) | 2010-06-23 | 2014-02-04 | International Business Machines Corporation | Scalable I/O adapter function level error detection, isolation, and reporting |
US8745292B2 (en) | 2010-06-23 | 2014-06-03 | International Business Machines Corporation | System and method for routing I/O expansion requests and responses in a PCIE architecture |
US8918573B2 (en) | 2010-06-23 | 2014-12-23 | International Business Machines Corporation | Input/output (I/O) expansion response processing in a peripheral component interconnect express (PCIe) environment |
US8615586B2 (en) | 2010-06-23 | 2013-12-24 | International Business Machines Corporation | Discovery of logical images at storage area network endpoints |
US8645606B2 (en) * | 2010-06-23 | 2014-02-04 | International Business Machines Corporation | Upbound input/output expansion request and response processing in a PCIe architecture |
US8718071B2 (en) | 2010-09-10 | 2014-05-06 | Futurewei Technologies, Inc. | Method to pass virtual local area network information in virtual station interface discovery and configuration protocol |
US8495108B2 (en) | 2010-11-30 | 2013-07-23 | International Business Machines Corporation | Virtual node subpool management |
US9600429B2 (en) * | 2010-12-09 | 2017-03-21 | Solarflare Communications, Inc. | Encapsulated accelerator |
US9182874B2 (en) * | 2011-01-31 | 2015-11-10 | Dell Products, Lp | System and method for out-of-band communication between a remote user and a local user of a server |
US9363208B1 (en) | 2011-03-29 | 2016-06-07 | Amazon Technologies, Inc. | Logical switches |
US8793685B2 (en) * | 2011-05-13 | 2014-07-29 | International Business Machines Corporation | Techniques for operating virtual switches in a virtualized computing environment |
US20140204102A1 (en) * | 2011-05-19 | 2014-07-24 | The Trustees Of Columbia University In The City Of New York | Using graphics processing units in control and/or data processing systems |
US8909979B2 (en) * | 2011-06-27 | 2014-12-09 | Huawei Technologies Co., Ltd. | Method and system for implementing interconnection fault tolerance between CPU |
CN102301364B (zh) | 2011-06-27 | 2013-01-02 | 华为技术有限公司 | Cpu互联装置 |
US9270609B2 (en) * | 2011-12-06 | 2016-02-23 | Brocade Communications Systems, Inc. | Transmission control protocol window size adjustment for out-of-order protocol data unit removal |
US8984174B2 (en) * | 2011-12-06 | 2015-03-17 | Qualcomm Incorporated | Method and a portable computing device (PCD) for exposing a peripheral component interface express (PCIE) coupled device to an operating system operable on the PCD |
US9860188B2 (en) | 2011-12-22 | 2018-01-02 | International Business Machines Corporation | Flexible and scalable enhanced transmission selection method for network fabrics |
US9007257B2 (en) | 2012-02-08 | 2015-04-14 | Saab Ab | Method for variable control of a zone sensor in a combat aircraft |
US10270652B2 (en) * | 2012-04-25 | 2019-04-23 | Hewlett Packard Enterprise Development Lp | Network management |
TW201344445A (zh) * | 2012-04-27 | 2013-11-01 | Sunix Co Ltd | 可分配低階輸入輸出埠其介面位址的pci介面裝置 |
US20130346667A1 (en) * | 2012-06-21 | 2013-12-26 | Jonathan Stroud | Serial port access system and method in a computing system |
CN103514125B (zh) * | 2012-06-25 | 2016-06-08 | 宏碁股份有限公司 | 主控端电子装置以及主控端操作方法 |
US10505747B2 (en) | 2012-10-16 | 2019-12-10 | Solarflare Communications, Inc. | Feed processing |
CN103117929B (zh) * | 2013-01-31 | 2015-12-23 | 中国科学院计算技术研究所 | 一种基于PCIe数据交换的通信方法及*** |
US9319349B2 (en) * | 2013-06-20 | 2016-04-19 | Micron Technology, Inc. | Encapsulation enabled PCIE virtualisation |
CN103401775B (zh) * | 2013-07-18 | 2017-07-21 | 杭州华为数字技术有限公司 | 源报文转换装置及其报文转换方法、目标报文转换装置及其报文转换方法 |
WO2015015652A1 (ja) * | 2013-08-02 | 2015-02-05 | 株式会社日立製作所 | サーバ間通信機構を備えるサーバシステムおよびその複数サーバ間における通信方法 |
US9436751B1 (en) * | 2013-12-18 | 2016-09-06 | Google Inc. | System and method for live migration of guest |
US9778963B2 (en) | 2014-03-31 | 2017-10-03 | Solarflare Communications, Inc. | Ordered event notification |
US9898435B2 (en) * | 2014-12-10 | 2018-02-20 | Intel Corporation | Aggregate baseboard management controller (BMC) controller |
CN104601684A (zh) * | 2014-12-31 | 2015-05-06 | 曙光云计算技术有限公司 | 云服务器*** |
CN106033380A (zh) * | 2015-03-11 | 2016-10-19 | 昆达电脑科技(昆山)有限公司 | 机架式服务器*** |
US10216533B2 (en) * | 2015-10-01 | 2019-02-26 | Altera Corporation | Efficient virtual I/O address translation |
CN108139937B (zh) * | 2015-10-13 | 2021-08-13 | 华为技术有限公司 | 多根i/o虚拟化*** |
US10089178B2 (en) * | 2016-02-29 | 2018-10-02 | International Business Machines Corporation | Developing an accurate dispersed storage network memory performance model through training |
CN109477308A (zh) | 2016-05-03 | 2019-03-15 | 索理思科技公司 | 生物聚合物施胶剂 |
CN108234253A (zh) * | 2016-12-21 | 2018-06-29 | 中兴通讯股份有限公司 | Bras的管理方法及报文转发方法、报文转发控制器及bras |
US11159445B1 (en) * | 2019-11-26 | 2021-10-26 | Xilinx, Inc. | Systems and methods for extending internal endpoints of a network device |
CN111586034B (zh) * | 2020-04-30 | 2022-06-03 | 龙芯中科技术股份有限公司 | 数据处理***及方法 |
CN111897762B (zh) * | 2020-08-06 | 2023-03-14 | 深圳市信锐网科技术有限公司 | 一种终端设备及一种线路连接方法、装置和存储介质 |
Family Cites Families (164)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5325532A (en) | 1992-09-25 | 1994-06-28 | Compaq Computer Corporation | Automatic development of operating system boot image |
US5272599A (en) | 1993-03-19 | 1993-12-21 | Compaq Computer Corporation | Microprocessor heat dissipation apparatus for a printed circuit board |
JPH07110749A (ja) | 1993-04-16 | 1995-04-25 | Hewlett Packard Co <Hp> | ダイアログ・ボックスの動的構築方法 |
US5535200A (en) * | 1994-05-05 | 1996-07-09 | Sprint Communications Company L.P. | Signaling system for a telecommunications network |
US6098112A (en) | 1995-10-19 | 2000-08-01 | Hewlett-Packard Company | Streams function registering |
US5886872A (en) | 1997-04-23 | 1999-03-23 | Compaq Computer Corporation | Pivotable support and heat sink apparatus removably connectable without tools to a computer processor |
US6160554A (en) | 1998-03-19 | 2000-12-12 | Hewlett Packard Company | Computer file content preview window |
US6002804A (en) | 1998-03-26 | 1999-12-14 | Hewlett-Packard Company | Tone dependent variable halftoning with adjustable algorithm selection |
US6260127B1 (en) | 1998-07-13 | 2001-07-10 | Compaq Computer Corporation | Method and apparatus for supporting heterogeneous memory in computer systems |
US6314501B1 (en) * | 1998-07-23 | 2001-11-06 | Unisys Corporation | Computer system and method for operating multiple operating systems in different partitions of the computer system and for allowing the different partitions to communicate with one another through shared memory |
US6768996B1 (en) | 1998-10-08 | 2004-07-27 | Hewlett-Packard Development Company, L.P. | System and method for retrieving an abstracted portion of a file without regard to the operating system of the current host computer |
US6360241B1 (en) | 1999-02-01 | 2002-03-19 | Compaq Information Technologies Goup, L.P. | Computer method and apparatus for division and square root operations using signed digit |
US6466952B2 (en) | 1999-04-08 | 2002-10-15 | Hewlett-Packard Company | Method for transferring and indexing data from old media to new media |
US6502203B2 (en) | 1999-04-16 | 2002-12-31 | Compaq Information Technologies Group, L.P. | Method and apparatus for cluster system operation |
US6304945B1 (en) | 1999-05-13 | 2001-10-16 | Compaq Computer Corporation | Method and apparatus for maintaining cache coherency in a computer system having multiple processor buses |
US7318102B1 (en) | 1999-05-24 | 2008-01-08 | Hewlett-Packard Development Company, L.P. | Reliable datagram |
IL148263A0 (en) | 1999-09-08 | 2002-09-12 | Mellanox Technologies Ltd | Bridge between parallel buses over a packet-switched network |
US20030222803A1 (en) | 1999-12-28 | 2003-12-04 | Shai Cohen | Duty cycle adapter |
US20030236919A1 (en) * | 2000-03-03 | 2003-12-25 | Johnson Scott C. | Network connected computing system |
US8073994B2 (en) | 2000-05-03 | 2011-12-06 | At&T Laboratories | Data transfer, synchronising applications, and low latency networks |
US7103626B1 (en) | 2000-05-24 | 2006-09-05 | Hewlett-Packard Development, L.P. | Partitioning in distributed computer system |
ATE403323T1 (de) | 2000-05-24 | 2008-08-15 | Voltaire Ltd | Gefilterte kommunikation von anwendung zu anwendung |
WO2001093046A1 (en) | 2000-06-02 | 2001-12-06 | Mellanox Technologies Ltd. | Dma doorbell |
JP2001345863A (ja) * | 2000-06-06 | 2001-12-14 | Fujitsu Ltd | Ip処理装置 |
US6690757B1 (en) | 2000-06-20 | 2004-02-10 | Hewlett-Packard Development Company, L.P. | High-speed interconnection adapter having automated lane de-skew |
WO2002017034A2 (en) | 2000-08-24 | 2002-02-28 | Voltaire Advanced Data Security Ltd. | System and method for highly scalable high-speed content-based filtering and load balancing in interconnected fabrics |
US6765922B1 (en) | 2000-09-08 | 2004-07-20 | Hewlett-Packard Development Company, L.P. | Speculative transmit for system area network latency reduction |
US20020059052A1 (en) | 2000-09-12 | 2002-05-16 | Mellanox Technologies Ltd. | Co-simulation of network components |
US6349035B1 (en) | 2000-09-29 | 2002-02-19 | Compaq Information Technologies Group, L.P. | Method and apparatus for tooless mating of liquid cooled cold plate with tapered interposer heat sink |
US6718392B1 (en) | 2000-10-24 | 2004-04-06 | Hewlett-Packard Development Company, L.P. | Queue pair partitioning in distributed computer system |
AUPR108900A0 (en) | 2000-10-28 | 2000-11-23 | S4 Technology Pty Limited | Modular digital transmission assembly |
US6728743B2 (en) | 2001-01-04 | 2004-04-27 | Mellanox Technologies Ltd. | Modulo remainder generator |
US7254237B1 (en) | 2001-01-12 | 2007-08-07 | Slt Logic, Llc | System and method for establishing a secure connection |
US6950961B2 (en) | 2001-02-13 | 2005-09-27 | Hewlett-Packard Development Company, L.P. | Highly available, monotonic increasing sequence number generation |
US20020129293A1 (en) | 2001-03-07 | 2002-09-12 | Hutton John F. | Scan based multiple ring oscillator structure for on-chip speed measurement |
US20020140985A1 (en) | 2001-04-02 | 2002-10-03 | Hudson Kevin R. | Color calibration for clustered printing |
US20020152328A1 (en) | 2001-04-11 | 2002-10-17 | Mellanox Technologies, Ltd. | Network adapter with shared database for message context information |
US7543290B2 (en) | 2001-04-11 | 2009-06-02 | Mellanox Technologies Ltd. | Multiple queue pair access with single doorbell |
US6766398B2 (en) * | 2001-04-17 | 2004-07-20 | International Business Machines Corporation | Method for processing PCI interrupt signals in a logically partitioned guest operating system |
US7042848B2 (en) | 2001-05-04 | 2006-05-09 | Slt Logic Llc | System and method for hierarchical policing of flows and subflows of a data stream |
US6904057B2 (en) | 2001-05-04 | 2005-06-07 | Slt Logic Llc | Method and apparatus for providing multi-protocol, multi-stage, real-time frame classification |
US6944168B2 (en) | 2001-05-04 | 2005-09-13 | Slt Logic Llc | System and method for providing transformation of multi-protocol packets in a data stream |
US6901052B2 (en) | 2001-05-04 | 2005-05-31 | Slt Logic Llc | System and method for policing multiple data flows and multi-protocol data flows |
US6438130B1 (en) | 2001-06-28 | 2002-08-20 | Mellanox Technologies Ltd. | Forwarding database cache |
US6980328B2 (en) | 2001-07-05 | 2005-12-27 | Hewlett-Packard Development Company, L.P. | Direction-dependent color conversion in bidirectional printing |
US7136397B2 (en) | 2001-08-20 | 2006-11-14 | Slt Logic Llc | Network architecture and system for delivering bi-directional xDSL based services |
US7031338B2 (en) * | 2001-08-27 | 2006-04-18 | Hewlett-Packard Development Company, L.P. | System and method for the consolidation of data packets |
US7099275B2 (en) | 2001-09-21 | 2006-08-29 | Slt Logic Llc | Programmable multi-service queue scheduler |
US7151744B2 (en) | 2001-09-21 | 2006-12-19 | Slt Logic Llc | Multi-service queuing method and apparatus that provides exhaustive arbitration, load balancing, and support for rapid port failover |
US7161719B2 (en) | 2001-09-26 | 2007-01-09 | Hewlett-Packard Development Company, L.P. | Generalized color calibration architecture and method |
US6904534B2 (en) | 2001-09-29 | 2005-06-07 | Hewlett-Packard Development Company, L.P. | Progressive CPU sleep state duty cycle to limit peak power of multiple computers on shared power distribution unit |
US7023584B2 (en) | 2001-10-02 | 2006-04-04 | Hewlett-Packard Development Company, L.P. | Color calibration method and apparatus |
US20030065856A1 (en) | 2001-10-03 | 2003-04-03 | Mellanox Technologies Ltd. | Network adapter with multiple event queues |
US7054035B2 (en) | 2001-10-29 | 2006-05-30 | Hewlett-Packard Development Company, L.P. | Method and system for management of color through conversion between color spaces |
JP4349766B2 (ja) * | 2001-12-07 | 2009-10-21 | 株式会社日立製作所 | アドレス変換装置 |
US7240350B1 (en) | 2002-01-07 | 2007-07-03 | Slt Logic, Llc | System and method for providing communications to processes |
US7093158B2 (en) | 2002-03-11 | 2006-08-15 | Hewlett-Packard Development Company, L.P. | Data redundancy in a hot pluggable, large symmetric multi-processor system |
US7245627B2 (en) | 2002-04-23 | 2007-07-17 | Mellanox Technologies Ltd. | Sharing a network interface card among multiple hosts |
US6705703B2 (en) | 2002-04-24 | 2004-03-16 | Hewlett-Packard Development Company, L.P. | Determination of control points for construction of first color space-to-second color space look-up table |
US6667918B2 (en) | 2002-05-01 | 2003-12-23 | Mellanox Technologies Ltd. | Self-repair of embedded memory arrays |
US7149227B2 (en) | 2002-05-31 | 2006-12-12 | Mellanox Technologies Ltd. | Round-robin arbiter with low jitter |
US7263103B2 (en) | 2002-07-23 | 2007-08-28 | Mellanox Technologies Ltd. | Receive queue descriptor pool |
US7143412B2 (en) | 2002-07-25 | 2006-11-28 | Hewlett-Packard Development Company, L.P. | Method and apparatus for optimizing performance in a multi-processing system |
US7631106B2 (en) | 2002-08-15 | 2009-12-08 | Mellanox Technologies Ltd. | Prefetching of receive queue descriptors |
US7386619B1 (en) | 2003-01-06 | 2008-06-10 | Slt Logic, Llc | System and method for allocating communications to processors in a multiprocessor system |
US7316017B1 (en) | 2003-01-06 | 2008-01-01 | Slt Logic, Llc | System and method for allocatiing communications to processors and rescheduling processes in a multiprocessor system |
FR2850232B1 (fr) * | 2003-01-17 | 2005-05-20 | St Microelectronics Sa | Procede de transmission entre deux processeurs d'une unite de radiocommunication |
US7190827B2 (en) | 2003-01-22 | 2007-03-13 | Hewlett-Packard Development Company, L.P. | Color space conversion using interpolation |
GB0304808D0 (en) | 2003-03-03 | 2003-04-09 | Cambridge Internetworking Ltd | Managing data transmission |
US7103744B2 (en) | 2003-03-27 | 2006-09-05 | Hewlett-Packard Development Company, L.P. | Binding a memory window to a queue pair |
US7554993B2 (en) | 2003-03-27 | 2009-06-30 | Hewlett-Packard Development Company, L.P. | Method and apparatus for performing connection management with multiple stacks |
US7502826B2 (en) | 2003-03-27 | 2009-03-10 | Hewlett-Packard Development Company, L.P. | Atomic operations |
US8023520B2 (en) | 2003-03-27 | 2011-09-20 | Hewlett-Packard Development Company, L.P. | Signaling packet |
US20040210754A1 (en) | 2003-04-16 | 2004-10-21 | Barron Dwight L. | Shared security transform device, system and methods |
US20040252685A1 (en) | 2003-06-13 | 2004-12-16 | Mellanox Technologies Ltd. | Channel adapter with integrated switch |
US7352893B2 (en) | 2003-07-09 | 2008-04-01 | Hewlett-Packard Development Company, L.P. | Representing extended color gamut information |
US7446901B2 (en) | 2003-07-21 | 2008-11-04 | Hewlett-Packard Development Company | Conforming output intensities of pens |
US7496903B2 (en) | 2003-08-12 | 2009-02-24 | Hewlett-Packard Development Company, L.P. | Synthesizing application response measurement (ARM) instrumentation |
US20050039171A1 (en) | 2003-08-12 | 2005-02-17 | Avakian Arra E. | Using interceptors and out-of-band data to monitor the performance of Java 2 enterprise edition (J2EE) applications |
US7484209B2 (en) | 2003-08-12 | 2009-01-27 | Hewlett-Packard Development Company, L.P. | Instrumenting java code by modifying bytecodes |
US7757232B2 (en) | 2003-08-14 | 2010-07-13 | Hewlett-Packard Development Company, L.P. | Method and apparatus for implementing work request lists |
US7617376B2 (en) | 2003-08-14 | 2009-11-10 | Hewlett-Packard Development Company, L.P. | Method and apparatus for accessing a memory |
US7404190B2 (en) | 2003-09-18 | 2008-07-22 | Hewlett-Packard Development Company, L.P. | Method and apparatus for providing notification via multiple completion queue handlers |
US7107411B2 (en) * | 2003-12-16 | 2006-09-12 | International Business Machines Corporation | Apparatus method and system for fault tolerant virtual memory management |
US7653754B2 (en) | 2004-01-05 | 2010-01-26 | Mellanox Technologies Ltd. | Method, system and protocol that enable unrestricted user-level access to a network interface adapter |
US20050172181A1 (en) | 2004-01-16 | 2005-08-04 | Mellanox Technologies Ltd. | System and method for production testing of high speed communications receivers |
US7817659B2 (en) * | 2004-03-26 | 2010-10-19 | Foundry Networks, Llc | Method and apparatus for aggregating input data streams |
US7168784B2 (en) | 2004-03-30 | 2007-01-30 | Hewlett-Packard Development Company, L.P. | Formation of images |
US20050219278A1 (en) | 2004-03-30 | 2005-10-06 | Hudson Kevin R | Image formation with a flexible number of passes |
US7929161B2 (en) | 2004-04-15 | 2011-04-19 | Hewlett-Packard Development Company, L.P. | Image processing system and method |
US7650386B2 (en) | 2004-07-29 | 2010-01-19 | Hewlett-Packard Development Company, L.P. | Communication among partitioned devices |
US20060045098A1 (en) | 2004-08-31 | 2006-03-02 | Krause Michael R | System for port mapping in a network |
US7848332B2 (en) * | 2004-11-15 | 2010-12-07 | Cisco Technology, Inc. | Method and apparatus for classifying a network protocol and aligning a network protocol header relative to cache line boundary |
US7403535B2 (en) | 2004-12-14 | 2008-07-22 | Hewlett-Packard Development Company, L.P. | Aggregation of network resources providing offloaded connections between applications over a network |
US7551614B2 (en) | 2004-12-14 | 2009-06-23 | Hewlett-Packard Development Company, L.P. | Aggregation over multiple processing nodes of network resources each providing offloaded connections between applications over a network |
US7421084B2 (en) | 2005-01-11 | 2008-09-02 | Loud Technologies Inc. | Digital interface for analog audio mixers |
TWI267744B (en) * | 2005-02-18 | 2006-12-01 | Uli Electronics Inc | Multi-standard display chipset architecture |
US20060193318A1 (en) | 2005-02-28 | 2006-08-31 | Sriram Narasimhan | Method and apparatus for processing inbound and outbound quanta of data |
US7674564B2 (en) | 2005-04-11 | 2010-03-09 | Hewlett-Packard Development Company, L.P. | Color filter |
US7580415B2 (en) | 2005-04-27 | 2009-08-25 | Hewlett-Packard Development Company, L.P. | Aggregation of hybrid network resources operable to support both offloaded and non-offloaded connections |
US7580495B2 (en) | 2005-06-30 | 2009-08-25 | Slt Logic Llc | Mixer-based phase control |
US7573967B2 (en) | 2005-07-01 | 2009-08-11 | Slt Logic Llc | Input threshold adjustment in a synchronous data sampling circuit |
US8165186B2 (en) * | 2005-08-12 | 2012-04-24 | Qualcomm Incorporated | Channel estimation for wireless communication |
US8645964B2 (en) | 2005-08-23 | 2014-02-04 | Mellanox Technologies Ltd. | System and method for accelerating input/output access operation on a virtual machine |
US8204064B2 (en) | 2005-09-16 | 2012-06-19 | Acme Packet, Inc. | Method and system of session media negotiation |
US20070083723A1 (en) | 2005-09-23 | 2007-04-12 | Dey Jayanta K | Highly-available blade-based distributed computing system |
US7285996B2 (en) | 2005-09-30 | 2007-10-23 | Slt Logic, Llc | Delay-locked loop |
US7813460B2 (en) | 2005-09-30 | 2010-10-12 | Slt Logic, Llc | High-speed data sampler with input threshold adjustment |
US9104894B2 (en) | 2005-12-16 | 2015-08-11 | Hewlett-Packard Development Company, L.P. | Hardware enablement using an interface |
US7827442B2 (en) | 2006-01-23 | 2010-11-02 | Slt Logic Llc | Shelf management controller with hardware/software implemented dual redundant configuration |
US8295275B2 (en) * | 2006-03-20 | 2012-10-23 | Intel Corporation | Tagging network I/O transactions in a virtual machine run-time environment |
US7518164B2 (en) | 2006-03-29 | 2009-04-14 | Mellanox Technologies Ltd. | Current-triggered low turn-on voltage SCR |
US9111602B2 (en) | 2006-04-07 | 2015-08-18 | Mellanox Technologies, Ltd. | Accurate global reference voltage distribution system with local reference voltages referred to local ground and locally supplied voltage |
US7514978B2 (en) | 2006-05-08 | 2009-04-07 | Mellanox Technologies Ltd. | Terminated input buffer with offset cancellation circuit |
US7797555B2 (en) * | 2006-05-12 | 2010-09-14 | Intel Corporation | Method and apparatus for managing power from a sequestered partition of a processing system |
US7567267B2 (en) | 2006-07-31 | 2009-07-28 | Hewlett-Packard Development Company, L.P. | System and method for calibrating a beam array of a printer |
US7822594B2 (en) | 2006-08-07 | 2010-10-26 | Voltaire Ltd. | Service-oriented infrastructure management |
US8948199B2 (en) | 2006-08-30 | 2015-02-03 | Mellanox Technologies Ltd. | Fibre channel processing by a host channel adapter |
US7801027B2 (en) | 2006-08-30 | 2010-09-21 | Mellanox Technologies Ltd. | Auto-negotiation by nodes on an infiniband fabric |
US7636832B2 (en) * | 2006-10-26 | 2009-12-22 | Intel Corporation | I/O translation lookaside buffer performance |
US8522042B2 (en) | 2006-10-31 | 2013-08-27 | Hewlett-Packard Development Company, L.P. | Method and apparatus for enforcement of software licence protection |
US20080115217A1 (en) | 2006-10-31 | 2008-05-15 | Hewlett-Packard Development Company, L.P. | Method and apparatus for protection of a computer system from malicious code attacks |
US8296849B2 (en) | 2006-10-31 | 2012-10-23 | Hewlett-Packard Development Company, L.P. | Method and apparatus for removing homogeneity from execution environment of computing system |
US8233380B2 (en) | 2006-11-06 | 2012-07-31 | Hewlett-Packard Development Company, L.P. | RDMA QP simplex switchless connection |
US8244825B2 (en) | 2006-11-06 | 2012-08-14 | Hewlett-Packard Development Company, L.P. | Remote direct memory access (RDMA) completion |
US20080135774A1 (en) | 2006-12-08 | 2008-06-12 | Asml Netherlands B.V. | Scatterometer, a lithographic apparatus and a focus analysis method |
US8909742B2 (en) | 2006-12-18 | 2014-12-09 | Hewlett-Packard Development Company, L.P. | Distributed configuration of network interface cards |
US7715428B2 (en) * | 2007-01-31 | 2010-05-11 | International Business Machines Corporation | Multicore communication processing |
US20080205388A1 (en) * | 2007-02-22 | 2008-08-28 | Microsoft Corporation | Discovery of network devices logically located between a client and a service |
US7869351B2 (en) * | 2007-03-02 | 2011-01-11 | Cisco Technology, Inc. | Communication techniques and generic layer 3 automatic switching protection |
US7864787B2 (en) | 2007-03-26 | 2011-01-04 | Voltaire Ltd. | Device, system and method of multicast communication |
US7848322B2 (en) | 2007-03-26 | 2010-12-07 | Voltaire Ltd. | Device, system and method of UDP communication |
US7856488B2 (en) | 2007-03-30 | 2010-12-21 | Hewlett-Packard Development Company, L.P. | Electronic device profile migration |
US20090097200A1 (en) | 2007-04-11 | 2009-04-16 | Viswa Sharma | Modular blade for providing scalable mechanical, electrical and environmental functionality in the enterprise using advancedtca boards |
US7752360B2 (en) * | 2007-05-16 | 2010-07-06 | Nuova Systems, Inc. | Method and system to map virtual PCIe I/O devices and resources to a standard I/O bus |
US8817817B2 (en) | 2007-06-06 | 2014-08-26 | Hewlett-Packard Development Company, L.P. | Method for ethernet power savings on link aggregated groups |
US7802071B2 (en) | 2007-07-16 | 2010-09-21 | Voltaire Ltd. | Device, system, and method of publishing information to multiple subscribers |
US20090165003A1 (en) | 2007-12-21 | 2009-06-25 | Van Jacobson | System and method for allocating communications to processors and rescheduling processes in a multiprocessor system |
CN102017533B (zh) | 2008-04-28 | 2014-06-11 | 惠普开发有限公司 | 在多服务器箱体中的固定速度背板连接上的可调节服务器传输速率 |
US8248930B2 (en) | 2008-04-29 | 2012-08-21 | Google Inc. | Method and apparatus for a network queuing engine and congestion management gateway |
WO2009136933A1 (en) | 2008-05-08 | 2009-11-12 | Hewlett-Packard Development Company, L.P. | A method for interfacing a fibre channel network with an ethernet based network |
JP4934642B2 (ja) * | 2008-06-11 | 2012-05-16 | 株式会社日立製作所 | 計算機システム |
US8108538B2 (en) | 2008-08-21 | 2012-01-31 | Voltaire Ltd. | Device, system, and method of distributing messages |
US20100088437A1 (en) | 2008-10-06 | 2010-04-08 | Mellanox Technologies Ltd | Infiniband adaptive congestion control adaptive marking rate |
US7921178B2 (en) | 2008-12-04 | 2011-04-05 | Voltaire Ltd. | Device, system, and method of accessing storage |
US8201168B2 (en) | 2008-12-25 | 2012-06-12 | Voltaire Ltd. | Virtual input-output connections for machine virtualization |
US8370675B2 (en) | 2009-01-28 | 2013-02-05 | Mellanox Technologies Ltd. | Precise clock synchronization |
JP5539397B2 (ja) | 2009-01-29 | 2014-07-02 | ヒューレット−パッカード デベロップメント カンパニー エル.ピー. | 異なる操作モードに基づくネットワークの異なるサブセットへの1つ以上の電子デバイスのポート接続 |
US8000336B2 (en) | 2009-04-21 | 2011-08-16 | Voltaire Ltd. | Spanning tree root selection in a hierarchical network |
US8255475B2 (en) | 2009-04-28 | 2012-08-28 | Mellanox Technologies Ltd. | Network interface device with memory management capabilities |
US8407478B2 (en) | 2009-07-07 | 2013-03-26 | Mellanox Technologies Ltd. | Control message signature for device control |
US8365057B2 (en) | 2009-07-30 | 2013-01-29 | Mellanox Technologies Ltd | Processing of data integrity field |
US8644140B2 (en) | 2009-09-09 | 2014-02-04 | Mellanox Technologies Ltd. | Data switch with shared port buffers |
US8225182B2 (en) | 2009-10-04 | 2012-07-17 | Mellanox Technologies Ltd. | Processing of block and transaction signatures |
US7934959B2 (en) | 2009-10-06 | 2011-05-03 | Mellanox Technologies Ltd. | Adapter for pluggable module |
EP2486487B1 (en) | 2009-10-07 | 2014-12-03 | Hewlett Packard Development Company, L.P. | Notification protocol based endpoint caching of host memory |
US8576715B2 (en) | 2009-10-26 | 2013-11-05 | Mellanox Technologies Ltd. | High-performance adaptive routing |
CN102575906B (zh) | 2009-10-30 | 2013-09-25 | 惠普发展公司,有限责任合伙企业 | 用于刀片外壳的热汇流条 |
WO2011053330A1 (en) | 2009-11-02 | 2011-05-05 | Hewlett-Packard Development Company, L.P. | Multiprocessing computing with distributed embedded switching |
US9110860B2 (en) | 2009-11-11 | 2015-08-18 | Mellanox Technologies Tlv Ltd. | Topology-aware fabric-based offloading of collective functions |
US8811417B2 (en) | 2009-11-15 | 2014-08-19 | Mellanox Technologies Ltd. | Cross-channel network operation offloading for collective operations |
US8213315B2 (en) | 2009-11-19 | 2012-07-03 | Mellanox Technologies Ltd. | Dynamically-connected transport service |
US20110173352A1 (en) | 2010-01-13 | 2011-07-14 | Mellanox Technologies Ltd | Power Reduction on Idle Communication Lanes |
JP6583072B2 (ja) | 2016-03-15 | 2019-10-02 | 住友電気工業株式会社 | 半導体モジュール |
-
2010
- 2010-01-14 US US12/687,382 patent/US9256560B2/en active Active
- 2010-07-21 EP EP16189396.1A patent/EP3125127B1/en active Active
- 2010-07-21 EP EP13199318.0A patent/EP2722771B1/en active Active
- 2010-07-21 EP EP16189395.3A patent/EP3133499B1/en active Active
- 2010-07-21 EP EP10170335.3A patent/EP2284717B1/en active Active
- 2010-07-29 CN CN2010102806828A patent/CN101990002A/zh active Pending
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9330052B2 (en) | 2010-09-22 | 2016-05-03 | Amazon Technologies, Inc. | Transpose box based network scaling |
CN103608797B (zh) * | 2011-03-29 | 2019-07-05 | 亚马逊技术公司 | 数据传输***和网络转置盒 |
CN103608797A (zh) * | 2011-03-29 | 2014-02-26 | 亚马逊技术公司 | 基于背板以太网的网络转置盒和交换机操作 |
CN103946825A (zh) * | 2011-11-22 | 2014-07-23 | 英特尔公司 | 网络设备选择 |
CN103946825B (zh) * | 2011-11-22 | 2017-03-01 | 英特尔公司 | 用于网络设备选择的装置和方法 |
CN103596649B (zh) * | 2013-04-25 | 2015-07-29 | 华为技术有限公司 | 一种在虚拟局域网中通信的方法、设备和*** |
CN103596649A (zh) * | 2013-04-25 | 2014-02-19 | 华为技术有限公司 | 一种在虚拟局域网中通信的方法、设备和*** |
CN105229621A (zh) * | 2013-05-16 | 2016-01-06 | 惠普发展公司,有限责任合伙企业 | 多模式代理器 |
US9830283B2 (en) | 2013-05-16 | 2017-11-28 | Hewlett Packard Enterprise Development Lp | Multi-mode agent |
CN105229621B (zh) * | 2013-05-16 | 2018-08-28 | 慧与发展有限责任合伙企业 | 多模式代理器 |
CN105302746A (zh) * | 2014-07-04 | 2016-02-03 | Lsi公司 | 多协议存储控制器 |
CN107148623A (zh) * | 2014-10-24 | 2017-09-08 | 思科技术公司 | Pcie设备和功能与主机阵列的动态连接 |
CN107077438A (zh) * | 2014-10-29 | 2017-08-18 | 惠普发展公司有限责任合伙企业 | 通过通信介质的部分进行通信 |
CN109313618A (zh) * | 2016-06-30 | 2019-02-05 | 英特尔公司 | 用于分组传递的图形处理单元(gpu) |
CN109313618B (zh) * | 2016-06-30 | 2023-07-28 | 英特尔公司 | 用于分组传递的图形处理单元(gpu) |
CN110971586A (zh) * | 2018-09-28 | 2020-04-07 | 赛灵思公司 | 网络接口设备 |
CN110971586B (zh) * | 2018-09-28 | 2023-11-03 | 赛灵思公司 | 网络接口设备和网络接口设备中的方法 |
CN113366459A (zh) * | 2018-11-28 | 2021-09-07 | 马维尔亚洲私人有限公司 | 用于车载数据传送的具有端点和直接存储器访问控制器的网络交换机 |
Also Published As
Publication number | Publication date |
---|---|
EP3133499A1 (en) | 2017-02-22 |
EP3125127A2 (en) | 2017-02-01 |
EP2284717B1 (en) | 2014-02-26 |
EP3125127B1 (en) | 2019-01-30 |
EP3133499B1 (en) | 2019-09-18 |
EP3125127A3 (en) | 2017-02-22 |
US9256560B2 (en) | 2016-02-09 |
US20110029734A1 (en) | 2011-02-03 |
EP2722771A1 (en) | 2014-04-23 |
EP2722771B1 (en) | 2016-11-02 |
EP2284717A1 (en) | 2011-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101990002A (zh) | 控制器集成 | |
US9680770B2 (en) | System and method for using a multi-protocol fabric module across a distributed server interconnect fabric | |
US8599863B2 (en) | System and method for using a multi-protocol fabric module across a distributed server interconnect fabric | |
US10877695B2 (en) | Memcached server functionality in a cluster of data processing nodes | |
US8176204B2 (en) | System and method for multi-host sharing of a single-host device | |
US9648102B1 (en) | Memcached server functionality in a cluster of data processing nodes | |
CN104871493B (zh) | 用于高性能计算网络中的通信信道故障切换的方法和设备 | |
US9262225B2 (en) | Remote memory access functionality in a cluster of data processing nodes | |
US20150261709A1 (en) | Peripheral component interconnect express (pcie) distributed non- transparent bridging designed for scalability,networking and io sharing enabling the creation of complex architectures. | |
US20070050520A1 (en) | Systems and methods for multi-host extension of a hierarchical interconnect network | |
US20150039840A1 (en) | Remote memory ring buffers in a cluster of data processing nodes | |
US7240141B2 (en) | Programmable inter-virtual channel and intra-virtual channel instructions issuing rules for an I/O bus of a system-on-a-chip processor | |
US20090304022A1 (en) | Shared virtual network interface | |
US20020071450A1 (en) | Host-fabric adapter having bandwidth-optimizing, area-minimal, vertical sliced memory architecture and method of connecting a host system to a channel-based switched fabric in a data network | |
US11394664B2 (en) | Network interface device | |
JP2004523035A (ja) | メモリを介してデータ処理システムの間でデータのフローを制御する方法および装置 | |
WO2006063297A1 (en) | Pci express to advanced switching fabric interface | |
JP2004523829A (ja) | メモリを介してデータ処理システムの間でデータのフローを制御する方法および装置 | |
US11995017B2 (en) | Multi-plane, multi-protocol memory switch fabric with configurable transport | |
US20240012581A1 (en) | Memcached Server Functionality in a Cluster of Data Processing Nodes | |
CN108021525B (zh) | 一种基于pcie总线多主互连的冗余交换*** | |
JP2011014023A (ja) | 中継手段、中継システム、中継方法およびプログラム | |
US9535851B2 (en) | Transactional memory that performs a programmable address translation if a DAT bit in a transactional memory write command is set | |
Zang et al. | PROP: Using PCIe-based RDMA to accelerate rack-scale communications in data centers | |
US10228968B2 (en) | Network interface device that alerts a monitoring processor if configuration of a virtual NID is changed |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20110323 |