CN111367844B - 有多个异构网络接口端口的存储控制器的***、方法和装置 - Google Patents
有多个异构网络接口端口的存储控制器的***、方法和装置 Download PDFInfo
- Publication number
- CN111367844B CN111367844B CN201910190265.5A CN201910190265A CN111367844B CN 111367844 B CN111367844 B CN 111367844B CN 201910190265 A CN201910190265 A CN 201910190265A CN 111367844 B CN111367844 B CN 111367844B
- Authority
- CN
- China
- Prior art keywords
- protocol
- port
- data
- block
- address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 10
- 238000005538 encapsulation Methods 0.000 claims description 19
- CXOXHMZGEKVPMT-UHFFFAOYSA-N clobazam Chemical compound O=C1CC(=O)N(C)C2=CC=C(Cl)C=C2N1C1=CC=CC=C1 CXOXHMZGEKVPMT-UHFFFAOYSA-N 0.000 claims description 14
- 229940044442 onfi Drugs 0.000 claims description 14
- 238000013507 mapping Methods 0.000 claims description 13
- 238000012546 transfer Methods 0.000 claims description 11
- 230000006870 function Effects 0.000 claims description 10
- 239000000872 buffer Substances 0.000 claims description 9
- 230000006855 networking Effects 0.000 claims description 5
- 239000000835 fiber Substances 0.000 claims description 4
- 230000005540 biological transmission Effects 0.000 claims description 3
- 230000011664 signaling Effects 0.000 abstract description 4
- 239000013001 matrix buffer Substances 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 238000013473 artificial intelligence Methods 0.000 description 6
- 230000004044 response Effects 0.000 description 6
- 239000004744 fabric Substances 0.000 description 5
- 230000001133 acceleration Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000004931 aggregating effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000009432 framing Methods 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 235000001892 vitamin D2 Nutrition 0.000 description 1
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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
-
- 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/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
-
- 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/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/52—Multiprotocol routers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
-
- 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/08—Protocols for interworking; Protocol conversion
-
- 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/18—Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/38—Universal adapter
- G06F2213/3808—Network interface controller
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
多协议存储控制器(MPSC)片上***(SOC),包括多个异构网络接口端口,交换机核心,全局存储器映射器和帧路由器。接口端口能够互连具有不同数据和信令协议以及不同数量的数据和信号线的设备网络。
Description
技术领域
一种多协议存储控制器片上***,具有支持各种接口协议的多个异构网络接口。
背景技术
世界上产生的数据量以非常大的速率增加。对于由计算、网络和存储元件组成的当前信息技术***,存储和操作这些数据是一个挑战。新标准正在被创建来移动、存储和操纵数据。新组件也被创建,以新的方式操纵数据,从而创建全新的应用程序和行业。其中一个新组件是图形处理单元(GPU)。最初创建GPU是为了渲染由多边形组成的三维(3D)图形。将图形处理卸载到高性能GPU是使现代游戏成为可能的原因。
虽然GPU在渲染图形方面表现优异,但GPU的原始能力也可用于其他目的。许多操作***和软件程序现在支持GPGPU或图形处理单元上的通用计算。这可以改善计算机或其他电子设备的整体性能。新标准允许GPGPU的高速互连,导致***能够执行非常大量的并行指令。一些非常重要的应用程序已经进入GPGPU和GPGPU网络。这些应用包括人工智能(AI),机器学习(ML) 和加速数据库等。
对于GPGPU,在包括它们的***中出现了新的性能瓶颈。由于瓶颈限制了可以从GPGPU和GPGPUD网络加载和卸载的数据量,因此某些应用程序会受到性能限制。由于GPGPU互连标准与计算到GPU互连标准不同,并且通常具有更高的性能,因此问题更加严重。我们需要的是一种将数据移入和移出 GPGPU的方法,以及支持更高速度计算到GPU接口的任何其他组件。
发明内容
公开了用于通过芯片上的多协议存储控制器***来创建不同网络的互连的方法、装置、***和产品。
在一个方面,提供了用于将多协议设备与多协议存储控制器(MPSC)片上***(SOC)互连的***。MPSC SOC至少包括交换机和帧路由器。该***包括支持第一协议的第一设备和支持第二协议的第二设备,二者都耦合到 MPSC SOC以及其内的交换机和帧路由器。MPSC SOC影响第一设备和第二设备之间的数据传输。MPSC SOC还可以影响其他支持的网络之间的数据传输。
在本发明的又一个方面,提供了一种用于在支持耦合到MPSC SOC的两个不同协议的两个设备之间转发数据的方法。该方法包括在MPSC SOC处从连接第一设备的第一端口接收数据,该第一端口支持第一协议,并将地址映射到MPSC SOC中的第二端口。由全局存储器映射器执行的地址映射包括内存映射表。
附图说明
附图仅示出了本发明的示例性实施例,因此不限制其范围,因为本发明的概念适用于其他同等有效的实施例。
图1展示了多协议存储控制器(MPSC)SOC以及组成完整的基于网络的存储解决方案的附带组件,该解决方案利用了网络存储和本地存储的连接。
图2提供了MPSC SOC的一个实施例的高层次描述。SOC通过NVLinkTM接口提供与Nvidia GPU复合体的网络连接,并且通过ONFI控制器或被配置的其他协议可以提供,例如,与运行NVMf协议的以太网接口的连接、与运行 OpenCAPI的PCIe接口的连接、与本地存储的连接。
图3描述了帧路由器的实施例。帧路由器用于确定如何通过MPSC SOC以最小延迟方便地移动唯一流量。每个冗余的唯一性接口都向帧路由器提供头信息,帧路由器使用它来构建必要的数据路径。
图4描述了交换机的实施例。交换机用于在独立接口之间创建高速数据路径。交换机为特定接口提供必要的协议,可能包括也可能不包括数据的封装/解封装。通过使用可编程的全局存储器映射器功能,交换机可以了解全局地址空间。
图5描述了管理/配置接口,其在一个实施例中包括通过使用管理CPU来控制MPSC SOC功能的寄存器。
图6提供了在Nvidia GPU复合体内使用的MPSC SOC的实施例,其直接连接到NVSwitchTM复合体的NVLinkTM接口。该实施例包括本地闪存,由MPSC SOC和NVLinkTM的一个实例控制。MPSO SOC的第二个实例在一个接口上连接到NVLinkTM并且连接到运行NVMf协议的以太网接口,和运行Gen-Z协议的第二PCIe接口。
图7提供了以太网控制器的实施例。以太网控制器提供特定的以太网接口以及与帧路由器和交换机接口的连接。该控制器提供当今高性能网络所需的RDMA和卸载引擎,并由CPU管理。
图8提供了MPSC SOC的实施例,其使用网络接口提供多端口存储连接,该接口提供与远程存储的连接,以及与其他基于MPSC的***的连接。MPSC SOC还连接到NVSwitchTM复合体和本地存储。
图9显示了全局内存映射表,它将地址从入口端口映射到出口端口。两个端口可以支持不同的协议和/或协议封装。
图10示出了协议封装/解封装表,其包括关于入口和出口MPSC SOC协议的信息。该表提供信息,因此MPSC SOC可以解封装接收的入口数据,并使用适当的协议封装出口数据。
具体实施方式
定义:
AI:Artificial Intelligence,人工智能
AI-proc:Artificial Intelligence processor,人工智能处理器
ASIC:Applied Specific Integrated Circuit,专用集成电路
CPU:Central Processing Unit,中央处理单元
DDR:Double Data Rate Random Access Memory,双倍传输速率动态随机访问存储器
FC-NVMe:NVMe over Fibre Channel,光纤通道上的NVMe
FIFO:First In First Out,先进先出
帧:指数据包中的字节或位的窗口或来自连续数据的窗口
Gen-Z:Generation Z next generation bus,Z代下一代总线
GPGPU:General Purpose Graphics Processing Unit,通用图形处理单元
GPU:Graphics Processing Unit,图形处理单元
iWARP:Internet Wide area RDMA protocol,互联网广域RDMA协议
KVS:Key Value Store,基于对象的应用程序编程接口
PCIe:Peripheral Component Interconnect Express,外设部件互连传输规范
PHY:OSI模型的物理层
MAC:Media Access Controller,媒体访问控制器
MPSC:Multiprotocol Storage Controller,多协议存储控制器
NAND:Not-and flash memory,与非闪存,由NAND门组成的闪存
NIC:Network Interface controller,网络接口控制器
NPU:可以指神经元处理单元或网络处理器
NVLinkTM:Nvidia专有的GPU间链接
NVMe:Non-volatile memory express,非易失性存储器传输规范
NVMe-oF:Non-volatile memory express over fabrics,网络结构上的非易失性存储器传输规范,见下面的定义
NVMf:Non-volatile memory express over fabrics,网络结构上的非易失性存储器传输规范。可以参考NVMe over TCP,NVMe over iWARP,NVMe
over RoCE v2or NVMe over RoCE v1。
NVSwitchTM:Nvidia专有的互连NVLink GPU的交换机
ONFI:Open NAND Flash Interface Specification,开放的NAND闪存接口规范
OpenCAPI:Open Coherent Accelerator Processor Interface,开放的一致性加速器处理器接口
RAM:Random Access Memory,随机存取存储器
RDMA:Remote direct memory access,远程直接内存访问
RNIC:RDMA Network Interface Controller,RDMA网络接口控制器
RoCE:RDMA over Converged Ethernet,聚合以太网上的RDMA
SOC:System on a Chip,片上***
SSD:Solid State Storage Device,固态存储设备
图1示出了MPSC SOC 3和伴随组件,其构成基于网络的完整解决方案,该解决方案利用了网络存储和本地存储的连接。MPSC 3可以支持零个或更多个以下接口:GPU NVLinkTM 16 17,非易失性存储器传输规范(NVMe)固态存储设备(SSD)21,PCIe 12 18,开放式NAND闪存接口规范(ONFI)8,以太网1。每个接口1 8 12 16 17 18 21由MPSC 3中包含的专用端口协议块逻辑支持。MPSC 3能够在两个相似或不同的支持接口1 8 12 16 17 18 21
之间连接或桥接。这允许组合非常高速的协议和协议之间的数据传输的加速。例如,来自GPU 24 2的数据可以由MPSC 3以高速传输到NVMe SSD 22。这将允许从GPU加载和存储数据到存储而无需通过CPU。另一个示例是将数据传输到GPU 24 2和从GPU 24 2传输到高速以太网端口1 9 10以到达其他设备。另一个例子是GPU 24 2和AI处理器201之间的数据的高速传输,并且将该数据直接存储在ONFI信道8上的NAND闪存设备4 5 6 7上。图1示出了直接连接到GPU 24 2NVLinkTM 16 17的MPSC 3,其是用于以高于PCIe 接口标准的速度在GPU之间发送数据的Nvidia专有链路。在这种情况下, MPSC 3能够比使用更快的互连标准连接到GPU PCIe接口的CPU更快地传输数据。
图2提供了MPSC SOC 50的一个实施例的高层次描述。MPSC SOC 50通过NVLinkTM接口51提供与Nvidia GPU复合体的网络连接,并且通过ONFI控制器或被配置的其他协议可以提供,例如,与运行NVMf协议的以太网接口55 的连接、与运行OpenCAPI的PCIe接口57 58的连接、与本地存储的连接。
MPSC SOC 50由以下块中的零个或更多个组成:帧路由器59,交换机控制60, ONFI控制器61,以太网控制器62,PCIe控制器57 58,NVLink控制器56。帧路由器59在两个不同的控制器56 57 58 61 62之间执行控制平面65数据转发。帧路由器59通过信令线63、66连接到控制器,因此控制器可以向帧路由器发信号通知数据帧准备好转发,识别数据帧的类型和数据帧的目的地,以及通过交换机控制60设置连接68。请注意,未显示从外部实体对MPSC SOC寄存器或存储器的访问。
交换机控制60与每个控制器56 57 58 61 62连接64 67以影响控制器之间的数据传输。交换机控制60还连接68到帧路由器59。该连接允许帧路由器59向交换机控制60发信号以识别源和目标控制器56 57 58 61 62以影响数据流。ONFI控制器61支持ONFI协议并支持一个或多个ONFI信道54。 NVLinkTM控制器56支持由NVLinkTM定义的数据和传输层以与其他NVLinkTM高速接口51连接。PCIe控制器57 58支持PCIe传输并且可选地支持使用诸如 OpenCAPI和GenZ的PCIe信令的标准。以太网控制器62支持以太网信令标准并支持与以太网设备55的连接。以太网控制器62还支持使用以太网的各种协议,其可包括但不限于以下中的一个或多个:RDMA,RoCE,NVMf。每个控制器56 57 58 61 62可以支持不同的链路速度和链路计数。显示的是示例性质的速度和链接。请注意,未显示来自外部实体的交换机控制寄存器或存储器访问。
图3描述了MPSC 150内的帧路由器140的实施例。帧路由器140用于确定如何以最小延迟和最大效率通过MPSC SOC 150将流量从每个源控制器
100 101 102 103 104移动到每个目的地控制器100 101 102 103 104。帧路由器140包括以下功能模块:路由请求115,路由确定116,路径查找表 117,路由响应118,全局存储器映射器119。帧路由器140在外部耦合到交换机控制141 142和端口协议块100 101 102 103 104。每个端口协议块100
101 102 103 104通过信号线105 106 107 108 109 110 111 112 113 114
连接到帧路由器。信号线提供以下功能中的一个或多个:帧头信息,源端口协议块号,端口协议块协议标识,端口协议块协议状态,路由请求信号,路由响应信号,帧内容信息,帧优先级信息,帧地址信息。请注意,未显示从外部实体对帧路由器寄存器或存储器访问。
路由请求功能块115被耦合143 135到交换机控制141、路由确定块116 和端口协议块请求信号线130 131。路由请求块115读取路由请求及其相关信息,并创建路由确定信号矢量135。路由确定信号矢量135可以包括以下信息字段中的一个或多个:源控制器,用于切换报头的帧或报头的部分,来自控制器的拥塞信息,来自控制器的优先级信息。路由确定块116耦合136 到路径查找表117,其包括用于确定路由的附加信息,其可包括以下中的一个或多个:基于端口协议块的协议特定信息,关于如何连接两个不同端口协议块协议的信息,基于帧类型的路由信息。
路径查找表117根据路由请求确定哪个目的端口协议控制器路由入口端口控制器请求的数据。路径查找表117可以包括具有用于静态数据转发的入口和出口端口协议块对的寄存器或存储器。全局存储器映射器119耦合145 到路由确定块116。全局存储器映射器119接收关于入口端口协议块和进入帧的信息。全局存储器映射器119可以执行一些地址映射,该映射被传递到路由确定块116。路由确定块116可以将所接收的信息从全局存储器映射器 119转发到路由响应块118,路由响应块118可以转而将信息转发144到交换机控制142。
路由响应块118耦合134 144到路由确定块116、交换机核心142和每个132 133端口协议块100 101 102 103 104。路由响应块118用信号通知 144交换机控制142以建立到特定端口协议块100 101 102 103 104的源和目的地路径,并向源和目的地控制器发信号通知交换机路径已完成。
图4描述了MPSC 280内的交换机控制260的实施例。交换机控制260 用于在唯一性的接口端口协议块200 201 202 203 204之间创建高速数据路径。交换机控制260为特定接口提供必要的协议和缓冲,其可以包括或不包括数据205 206 207 208 209的封装/解封装。交换机控制260包括以下功能块中的一个或多个:交换机控制器210,交换机矩阵缓冲器211,协议封装 (encap)/解封装(decap)和存储器缓冲器205 206 207 208 209。交换机控制器210耦合230 231 232到帧路由器(图3 140)和切换矩阵缓冲器211。交换机控制器210向交换机矩阵缓冲器211发信号255,以在两个端口协议块205 206 207 208 209之间创建数据路径256 257 258 259 261 262。交换机矩阵缓冲器211可以包括以下之一:多端口存储器开关,由多路复用器组成的开关,异步开关。
交换机控制260还包括一个或多个端口协议块,其包括协议封装/解封装和存储缓冲器元件205 206 207 208 209。协议封装/解封装功能允许在具有两种不同成帧协议的网络之间传输数据。通常,接收具有第一协议的帧,该协议(可以是头、脚或其他部分)被移除,并且第二协议(可以包括头、脚或其他部分)被添加到该帧。通常,这需要缓冲帧的一个或多个部分。端口协议块205 206 207 208 209被耦合256 257 258 259 261 262到交换矩阵缓冲器211和220 221 222 223 224 225 226 227 228 229端口协议块 200 201 202 203 204。
图5包含用于配置和监视MPSC 510的管理接口的实施例。MPSC 510由 PCIe 511接口上的CPU 512控制。MPSC 510由被称为***块配置寄存器500 的一组寄存器建立和控制。帧路由器寄存器501、交换机控制寄存器502和端口协议块寄存器503被用于配置帧路由器、交换机和MPSC 510的各个端口,并且都将状态和错误信息返回CPU 512。CPU 512通过***RAM接口504 访问***存储器。
图6包含在印刷电路板695上使用的MPSC1 611和MPSC2 612的实施例,其为GPU复合体提供对存储的内部和外部访问。该复合体包括GPU1至
GPU10 601-610,NxN纵横交换机625,包括12个18×18交换机SW613-SW624 以及MPSC1 611和MPSC2 612。每个GPU具有到其正下方连接的交换机的高速连接671,以及通过另外的高速接口670驻留在同一侧的其余5个交换机。每个交换机直接连接到其正下方的交换机芯片。每个设备还支持用于配置和控制的PCIe接口680 681。
MPSC1 611用于通过多个高速接口670 671所提供的到GPU复合体的连接,提供对本地存储的高速访问,并且通过多个ONIF信道660 661提供对本地NAND闪存650-657的高速访问。
MPSC2 612用于通过多个高速接口670 671提供到GPU复合体的连接,来提供对远程存储的高速访问,并且使用像NVMf这样的存储协议通过多个以太网链路692提供对外部存储阵列1 690的高速访问。MPSC2 612还在第二高速接口693上提供到本地相互耦合的Gen-Z结构691的连接。MPSC1 611
和MPSC2 612被示出为在图中互连多个高速协议和网络,但是本发明不限于所示的元件。
图7包含以太网控制器704的实施例,其用于在高速以太网链路703上向其他MPSC或网络设备提供网络连接。以太网控制器704包括Phy 719, MAC 718,传输717,RDMA 716辅助,卸载引擎715,缓冲器714,交换机I/F 711,帧路由器I/F 710和以太网控制器控制702。
以太网控制器704由以太网控制器控制702配置和管理,以太网控制器控制702包括eCPU 712和存储器713,其可以在或可以不在以太网控制器 704的本地。eCPU 712可以通过控制和数据路径720-726访问控制器内的所有块。
帧路由器I/F 710向帧路由器提供关于进入MPSC的入口数据的特定控制信息,并且指向某个其他接口,并控制离开MPSC的流出口数据。交换机 I/F 711提供与交换机矩阵缓冲器之间的数据路径连接。
缓冲器714是FIFO存储器,用于对进出MPSC交换机矩阵缓冲器的数据进行平滑。
卸载引擎715用于为进出MPSC的数据提供硬件辅助。特定辅助由eCPU 712通过接口724配置,接口724可以包括CRC计算和校验、T10DIF校验、压缩、加密等。
RDMA 716控制器用于为一些“N”外部RDMA连接提供硬件辅助。一旦建立了RDMA会话,通过接口725上的eCPU 712,RDMA 716控制器就提供对控制和数据移动的全部硬件支持。
传输717、MAC 718和PHY 719共同协作以提供与另一个以太网设备的必要连接(即用于连接的接口数量、接口的速度、特定的传输的配置,特定的传输可以包括以下中的一个或多个:RDMA,RoCEv2,UDP,TCP等)。这些块由eCPU 712通过接口726配置。虽然描述了以太网控制器,但可以轻松替换为InfiniBand控制器。
以太网控制器704可以分别通过以太网接口703执行发送和接收的以太网帧的封装和解封装。在一个方面,来自另一个MPSC接口(例如PCIe接口) 的输入数据包包含地址空间和事务类型,例如存储器或I/O的读和写。在全局存储器映射器(图3 119)映射了来自PCIe分组的地址之后,以太网控制器704可以将PCIe地址空间和事务类型封装在另一协议(例如RDMA)中。结果是以太网帧的传输,该以太网帧包括来自原始PCIe数据的读或写命令,来自PCIe分组的地址(其被映射到与以太网网络703耦合的实体的地址范围),以及可选数据(如果事务类型是一个PCIe写)。
图8包含在GPU***860 861中使用的MPSC 803 804的实施例,GPU***860 861通过其各自的接口819 820通过网络802进行通信,连接到远程存储800和远程客户端801,通过高速接口821 822连接到本地存储805 806,和连接到使用高速NVLinkTM接口817 818的NVSwitchTM807 808,其中该高速NVLinkTM接口向GPU 809-816提供数据。
图9示出了全局存储器映射器(图3 119)功能块内的地址映射表900。地址映射表900将地址从MPSC SOC入口端口映射到出口端口,图1中8 12
16 17 18 21。两个端口都可以支持不同的协议和/或协议封装,图2中56
57 58 61 62。全局存储器映射器(图3 119)将数据从一个入口端口协议映射到另一个出口端口协议。全局存储器映射器(图3 119)与交换机控制器和每个支持的端口协议块(图4中205 206 207 208 209)耦合。全局存储器映射器(图3 119)读取入口端口协议并映射接收的地址。全局存储器映射器(图3 119)包括存储器映射表(图9 900),其包括以下元素中的一个或多个:入口接口类型或协议903,存储器起始地址904,存储器结束地址 905,出口接口类型或协议906,映射的存储器起始地址907,映射的存储器结束地址908。存储器映射表900用于将地址空间从基于入口的数据和端口映射到出口地址和端口。
MPSC SOC可以可选地将地址从入口端口映射到出口端口。全局存储器映射器(图3 119)被通知从入口端口收到数据时,存储器转换算法启动。来自输入帧的地址由全局存储器映射器(图3 119)读取。可以利用存储器映射表(图9 90)中的存储器结束地址905的值来校验入口地址是一个有效的在范围内的地址。通过使用存储器映射表900入口接口类型或协议表位置903以及存储器起始地址表位置904来计算与入口起始存储器地址的偏移。通过从该接口类型或协议903的存储器映射表900存储器起始地址904中减去接收的入口帧地址来计算偏移。然后将偏移量添加到出口映射存储器地址开始表位置907。然后可以使用出口映射存储器地址结束表位置908检查所得到的地址是否超出边界条件。结果是从入口地址范围映射到出口地址范围的地址。
图10示出了协议封装/解封装(PED)表1000。该表可以位于特定协议控制器(图3 100 101 102 103 104),交换机控制(图4 260)协议封装/ 解封装缓冲器(205 206 207 208 209)中,或者位于帧路由器(图3 140) 中。PED表1000可以位于特定的协议控制器中,例如以太网控制器(图3 101 图4 201 204)。如果PED表1000位于以太网控制器(图7 704)中,则表查找和协议封装/解封装可以由eCPU 712在软件中实现,或者由卸载引擎715 在硬件中实现。PED表1000包含入口和出口信息,其可以包括:端口号、入口协议、出口协议。来自以太网链路(图7 703)的输入数据可以包括以下以太网帧字段中的一个或多个:MAC地址、RDMA地址、IP地址、TCP地址、UDP地址。PED表1000示出三行,第一行1010 1011 1012 1013,第二行1020
1021 1022 1023,第三行1030 1031 1032 1033。一旦接收到足够的以太网帧,就会发生PED表1000的查找以确定特定的表行。一旦选择了PED表1000 的行,该行中的特定出口列就确定了协议封装。然后使用帧路由器(图3 140) 和交换机控制(图4 260)将数据转发到出口端口。NA的1011 1021 0133表示'不适用'。请注意,PED表,封装和解封装功能可以是集中的或分布的。
尽管为了清楚的理解发明目的,上述发明已经通过阐述和实施例进行了一些详细描述,然而那些根据本发明的教导进行没有脱离所附权利要求的精神或范围的某些变化和修改对本领域技术人员来说是显而易见的。
Claims (14)
1.一种通过多协议***互连多个设备的***,包括:
多协议SOC,其中进一步包括:
交换机核心,所述交换机核心在附加设备之间创建数据路径,
第一和第二端口协议块,每个协议块包括:
用于传入数据和传出数据的内存缓冲区,
协议封装和解封装功能,
所述第一和第二端口协议块耦合到所述交换机核心,
全局存储器映射器,所述全局存储器映射器耦合到所述交换机核心并耦合到所述第一和第二端口协议块,所述全局存储器映射器包括:
地址映射表,所述地址映射表包括:
表中的一行或多行,所述行包括:
入口协议,入口起始存储器地址,出口起始存储器地址,耦合到所述多协议SOC的第一设备,
耦合到所述多协议SOC的第二设备,
其中,所述第一设备将数据发送到所述多协议SOC的第一端口协议块,所述第一端口协议块将数据的第一地址发送到所述全局存储器映射器,所述全局存储器映射器使用所述第一地址相对于该入口起始存储器地址的偏移量和所述第二端口协议块对应的出口起始存储器地址计算第二地址,所述全局存储器映射器将所述第二地址发送到所述第二端口协议块,所述第二端口协议块根据所述第二地址将所述数据发送到所述第二设备,所述第一端口协议块和所述第二端口协议块支持不同的协议。
2.如权利要求1所述的***,其中,每个协议块可以支持以下接口之一:NVLink,PCIe,以太网,RDMA,RoCE v2,RoCE v1,InfiniBand,OpenCAPI,Gen-Z,iWARP,FC-NVMe,ONFI。
3.如权利要求1所述的***,其中,所述地址映射表包括以下中的一个或多个:入口存储器结束地址,出口存储器结束地址,出口协议类型,出口协议信息,入口存储器起始地址,出口存储器起始地址,入口协议信息。
4.如权利要求1所述的***,其中,所述多协议***包含在单个ASIC内。
5.一种通过多协议***互连多个设备的装置,包括:
交换机核心,所述交换机核心创建附加设备之间的数据路径,
第一和第二端口协议块,每个协议块包括:
用于传入数据和传出数据的内存缓冲区,
协议封装和解封装功能,
所述第一和第二端口协议块耦合到所述交换机核心,
全局存储器映射器,所述全局存储器映射器耦合到所述交换机核心并耦合到所述第一和第二端口协议块,
所述全局存储器映射器包括:
地址映射表,所述地址映射表包括:
表中的一行或多行,所述行包括:
入口协议,入口起始内存地址,出口起始存储器地址,其中,所述第一端口协议块接收数据,所述第一端口协议块将所述数据的地址发送到所述全局存储器映射器,所述全局存储器映射器在所述地址映射表中查找所述地址,所述全局存储器映射器计算所述第二端口协议块的地址,所述全局存储器映射器将新计算的地址发送到所述第二端口协议块,所述第一端口协议块和所述第二端口协议块支持不同的协议。
6.如权利要求5所述的装置,其中,每个协议块可以支持以下接口之一:NVLink,PCIe,以太网,RDMA,RoCE v2,RoCE v1,InfiniBand,OpenCAPI,Gen-Z,iWARP,FC-NVMe,ONFI。
7.如权利要求5所述的装置,其中,所述地址映射表包括以下中的一个或多个:入口存储器结束地址,出口存储器结束地址,出口协议类型,出口协议信息。
8.如权利要求5所述的装置,其中,所述多协议***包含在单个ASIC内。
9.一种数据传输方法,用于在多协议存储控制器MPSC片上***SOC中耦合到第一端口协议块的至少一个第一设备与耦合到MPSC SOC中的第二端口协议块的第二设备之间传输数据;所述MPSC SOC至少包括交换机控制器、第一和第二端口协议块和全局存储器映射器;所述方法包括从所述第一设备接收数据到所述第一端口协议块,所述全局存储器映射器将地址从所述第一端口协议块中的输入数据映射到所述第二端口协议块的地址,所述第二端口协议块以新映射的地址发送数据到所述第二设备,所述第一端口协议块和所述第二端口协议块支持不同的协议。
10.如权利要求9所述的数据传输方法,其中,所述MPSC SOC在以下两个或更多个接口之间传输数据:NVLink,PCIe,以太网,RDMA,RoCE v2,RoCE v1,InfiniBand,OpenCAPI,Gen-Z,iWARP,FC-NVMe,ONFI。
11.一种通过多协议交换***互连存储和网络设备的***,包括:
交换机核心,所述交换机核心创建附加设备之间的数据路径
第一和第二端口协议块,每个协议块包括:
用于传入数据和传出数据的内存缓冲区,
协议封装和解封装功能,
所述第一和第二端口协议块耦合到所述交换机核心,
寄存器或存储器表,包括:
入口信息,包括以下一个或多个:
入口端口号,入口端口标识,入口端口协议,
出口信息,包括以下一个或多个:
出口端口号,出口端口标识,用于协议封装的出口端口协议,
出口接口类型,
所述寄存器或存储器表耦合到所述第一和第二端口协议块,
耦合到所述多协议交换***的第一网络设备,
耦合到所述多协议交换***的第二存储设备,
其中,所述第一网络设备向所述多协议交换***的第一端口协议块发送数据,所述第一端口协议块解封装第一联网协议,结果数据被交换到所述第二端口协议块,所述第二端口协议块将数据封装到所述第二端口协议块支持的协议,所述数据从所述出口端口发出,所述第一端口协议块和所述第二端口协议块支持不同的协议。
12.如权利要求11所述的***,其中,所述联网协议可以包括以下中的一个或多个:InfiniBand,以太网,RDMA,TCP,IP,光纤通道,光纤通道上的NVMe,TCP上的NVMe,iWARP,NVLink;
并且存储协议可以包括以下中的一个或多个:ONFI,PCIe,PCIe NVMe,OpenCAPI,Gen-Z,KVS。
13.一种通过多协议交换***互连存储和网络设备的方法,包括:
交换机核心,所述交换机核心在附加设备之间创建数据路径,
第一和第二端口协议块,每个协议块包括:
用于传入数据和传出数据的内存缓冲区,
协议封装和解封装功能,
所述第一和第二端口协议块耦合到所述交换机核心,
寄存器或存储器表,包括:
入口信息,包括以下一个或多个:
入口端口号,入口端口标识,入口端口协议,
出口信息,包括以下一个或多个:
出口端口号,出口端口标识,用于协议封装的出口端口协议,
出口接口类型,
所述寄存器或存储器表耦合到所述第一和第二端口协议块,
耦合到所述多协议交换***的第一网络设备,
耦合到所述多协议交换***的第二存储设备,
其中,所述多协议交换***MPSC从耦合到所述第一端口协议块的网络设备接收帧,从输入帧中移除联网协议,所述帧通过交换机核心发送到所述第二端口协议块,所述第二端口协议块封装帧到存储协议中,所述帧从所述第二端口协议块传输到第二存储设备,所述第一端口协议块和所述第二端口协议块支持不同的协议。
14.如权利要求13所述的方法,其中,所述联网协议可以包括以下中的一个或多个:InfiniBand,以太网,RDMA,TCP,IP,光纤通道,光纤通道上的NVMe,TCP上的NVMe,iWARP,NVLink;并且所述存储协议可以包括以下中的一个或多个:ONFI,PCIe,PCIe NVMe,OpenCAPI,Gen-Z,KVS。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910190265.5A CN111367844B (zh) | 2019-03-13 | 2019-03-13 | 有多个异构网络接口端口的存储控制器的***、方法和装置 |
US17/438,899 US11368395B2 (en) | 2019-03-13 | 2020-02-21 | System, method and apparatus for storage controller having multiple heterogeneous network interface ports |
PCT/CN2020/076215 WO2020181977A1 (zh) | 2019-03-13 | 2020-02-21 | 具有多个异构网络接口端口的存储控制器的***、方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910190265.5A CN111367844B (zh) | 2019-03-13 | 2019-03-13 | 有多个异构网络接口端口的存储控制器的***、方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111367844A CN111367844A (zh) | 2020-07-03 |
CN111367844B true CN111367844B (zh) | 2020-12-15 |
Family
ID=71206177
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910190265.5A Active CN111367844B (zh) | 2019-03-13 | 2019-03-13 | 有多个异构网络接口端口的存储控制器的***、方法和装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11368395B2 (zh) |
CN (1) | CN111367844B (zh) |
WO (1) | WO2020181977A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI816046B (zh) * | 2020-08-19 | 2023-09-21 | 創惟科技股份有限公司 | 記憶體儲存裝置的讀寫控制系統及方法 |
US11444790B1 (en) * | 2021-07-09 | 2022-09-13 | International Business Machines Corporation | Dynamic exclusion of RDMA-based shared memory communication based on performance-related data |
GB2612619B (en) * | 2021-11-05 | 2024-02-21 | Graphcore Ltd | Fair arbitration between multiple sources targeting a destination |
CN114697405A (zh) * | 2022-03-15 | 2022-07-01 | 北京旋极信息技术股份有限公司 | 一种通信协议转换的控制方法、装置以及转换*** |
CN115150262B (zh) * | 2022-06-20 | 2023-10-31 | 广州小鹏汽车科技有限公司 | SoC芯片上以太网收发器的配置方法、装置、SoC芯片及车辆 |
CN115859906B (zh) * | 2023-03-01 | 2023-04-28 | 上海合见工业软件集团有限公司 | 一种芯片互连*** |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4783778A (en) * | 1986-09-16 | 1988-11-08 | Gte Communication Systems Corporation | Synchronous packet manager |
CN1705307A (zh) * | 2004-06-03 | 2005-12-07 | 华为技术有限公司 | 基于虚拟局域网的二层虚拟专用网的实现方法 |
US20060230218A1 (en) * | 2005-04-11 | 2006-10-12 | Emulex Design & Manufacturing Corporation | Method and apparatus for SATA tunneling over fibre channel |
CN1980223A (zh) * | 2005-12-01 | 2007-06-13 | 华为技术有限公司 | 一种实现两种不同协议间转换的装置和方法 |
CN101669082A (zh) * | 2007-02-28 | 2010-03-10 | Lsi公司 | 集群化多个独立的高速pci层次结构的装置和方法 |
CN103747502A (zh) * | 2014-02-18 | 2014-04-23 | 中国联合网络通信集团有限公司 | 一种gtp隧道的处理方法及*** |
CN104639440A (zh) * | 2015-02-02 | 2015-05-20 | 杭州华三通信技术有限公司 | 一种在网络中实现三层转发并封装协议信息的方法和装置 |
CN105554176A (zh) * | 2015-12-29 | 2016-05-04 | 华为技术有限公司 | 发送报文的方法、装置和通信*** |
WO2016191990A1 (zh) * | 2015-05-30 | 2016-12-08 | 华为技术有限公司 | 一种报文转换方法及装置 |
CN106407050A (zh) * | 2016-10-20 | 2017-02-15 | 厦门科华恒盛股份有限公司 | 一种数据存储方法 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6980550B1 (en) * | 2001-01-16 | 2005-12-27 | Extreme Networks, Inc | Method and apparatus for server load balancing |
US20080240093A1 (en) | 2007-03-28 | 2008-10-02 | Horizon Semiconductors Ltd. | Stream multiplexer/de-multiplexer |
US8949838B2 (en) | 2009-04-27 | 2015-02-03 | Lsi Corporation | Multi-threaded processing with hardware accelerators |
US9461840B2 (en) * | 2010-06-02 | 2016-10-04 | Brocade Communications Systems, Inc. | Port profile management for virtual cluster switching |
CN102201978B (zh) * | 2011-03-21 | 2013-11-13 | 北京航空航天大学 | 一种航空电子光纤通道网络多协议控制器及其控制方法 |
CN103297354B (zh) * | 2012-03-02 | 2017-05-03 | 日电(中国)有限公司 | 服务器互连***、服务器和数据转发方法 |
CN103152397B (zh) | 2013-02-06 | 2017-05-03 | 浪潮电子信息产业股份有限公司 | 一种多协议存储***设计方法 |
US9584632B2 (en) * | 2013-08-28 | 2017-02-28 | Wipro Limited | Systems and methods for multi-protocol translation |
US9967182B2 (en) * | 2015-07-31 | 2018-05-08 | Nicira, Inc. | Enabling hardware switches to perform logical routing functionalities |
US10530692B2 (en) * | 2015-09-04 | 2020-01-07 | Arista Networks, Inc. | Software FIB ARP FEC encoding |
US9912614B2 (en) * | 2015-12-07 | 2018-03-06 | Brocade Communications Systems LLC | Interconnection of switches based on hierarchical overlay tunneling |
US10390114B2 (en) * | 2016-07-22 | 2019-08-20 | Intel Corporation | Memory sharing for physical accelerator resources in a data center |
CN106790104B (zh) * | 2016-12-26 | 2019-07-23 | 中国科学院空间应用工程与技术中心 | 多协议融合***、节点之间的ip通信及fc-ae-1553通信方法 |
US10764180B1 (en) * | 2018-02-20 | 2020-09-01 | Toshiba Memory Corporation | System and method for storing data using software defined networks |
CN108683659A (zh) * | 2018-05-11 | 2018-10-19 | 新华三技术有限公司成都分公司 | 多协议数据通信方法及装置 |
US11012408B2 (en) * | 2018-08-22 | 2021-05-18 | International Business Machines Corporation | Configuring virtual machine instances using one-to-one mappings |
-
2019
- 2019-03-13 CN CN201910190265.5A patent/CN111367844B/zh active Active
-
2020
- 2020-02-21 US US17/438,899 patent/US11368395B2/en active Active
- 2020-02-21 WO PCT/CN2020/076215 patent/WO2020181977A1/zh active Application Filing
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4783778A (en) * | 1986-09-16 | 1988-11-08 | Gte Communication Systems Corporation | Synchronous packet manager |
CN1705307A (zh) * | 2004-06-03 | 2005-12-07 | 华为技术有限公司 | 基于虚拟局域网的二层虚拟专用网的实现方法 |
US20060230218A1 (en) * | 2005-04-11 | 2006-10-12 | Emulex Design & Manufacturing Corporation | Method and apparatus for SATA tunneling over fibre channel |
CN1980223A (zh) * | 2005-12-01 | 2007-06-13 | 华为技术有限公司 | 一种实现两种不同协议间转换的装置和方法 |
CN101669082A (zh) * | 2007-02-28 | 2010-03-10 | Lsi公司 | 集群化多个独立的高速pci层次结构的装置和方法 |
CN103747502A (zh) * | 2014-02-18 | 2014-04-23 | 中国联合网络通信集团有限公司 | 一种gtp隧道的处理方法及*** |
CN104639440A (zh) * | 2015-02-02 | 2015-05-20 | 杭州华三通信技术有限公司 | 一种在网络中实现三层转发并封装协议信息的方法和装置 |
WO2016191990A1 (zh) * | 2015-05-30 | 2016-12-08 | 华为技术有限公司 | 一种报文转换方法及装置 |
CN105554176A (zh) * | 2015-12-29 | 2016-05-04 | 华为技术有限公司 | 发送报文的方法、装置和通信*** |
CN106407050A (zh) * | 2016-10-20 | 2017-02-15 | 厦门科华恒盛股份有限公司 | 一种数据存储方法 |
Non-Patent Citations (1)
Title |
---|
"EtherNet/IP: Industrial Protocol White Paper";Paul Brooks;《Institute of Electrical and Electronic Engineers》;20011031;第1-12页 * |
Also Published As
Publication number | Publication date |
---|---|
US11368395B2 (en) | 2022-06-21 |
CN111367844A (zh) | 2020-07-03 |
US20220150164A1 (en) | 2022-05-12 |
WO2020181977A1 (zh) | 2020-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111367844B (zh) | 有多个异构网络接口端口的存储控制器的***、方法和装置 | |
US20140177470A1 (en) | Memory Sharing in a Network Device | |
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 | |
US7620048B2 (en) | Network switch and components and method of operation | |
US6842443B2 (en) | Network switch using network processor and methods | |
US6460120B1 (en) | Network processor, memory organization and methods | |
US8856419B2 (en) | Register access in distributed virtual bridge environment | |
US20110262134A1 (en) | Hardware Accelerated Data Frame Forwarding | |
JP4024806B2 (ja) | 相互接続ネットワーク機能を提供する方法及び装置 | |
JP2003508957A (ja) | ネットワーク・プロセッサ処理コンプレックス及び方法 | |
US20150163072A1 (en) | Virtual Port Extender | |
US20190243796A1 (en) | Data storage module and modular storage system including one or more data storage modules | |
EP4352618A1 (en) | Multi-plane, multi-protocol memory switch fabric with configurable transport | |
US9219696B2 (en) | Increased efficiency of data payloads to data arrays accessed through registers in a distributed virtual bridge | |
US20040208197A1 (en) | Method and apparatus for network protocol bridging | |
CN116383114B (zh) | 芯片、芯片互联***、数据传输方法、电子设备和介质 | |
CN113347017A (zh) | 一种网络通信的方法、装置、网络节点设备及混合网络 | |
EP3610615B1 (en) | Packet batch processing with graph-path based pre-classification | |
CN105117163A (zh) | 基于闪存的存储***中的分布式raid架构 | |
US20240106750A1 (en) | Techniques for multi-pathing over reliable paths and completion reporting | |
CN114066707A (zh) | 通用图形处理***、计算装置和分布式*** | |
Braham et al. | The Design and Implementation of a Hierarchical Networkon-Chip | |
Jenkins | Networks for High-Performance Computing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
PP01 | Preservation of patent right | ||
PP01 | Preservation of patent right |
Effective date of registration: 20240218 Granted publication date: 20201215 |