CN113098799A - 使用存储设备的端口到端口网络路由 - Google Patents
使用存储设备的端口到端口网络路由 Download PDFInfo
- Publication number
- CN113098799A CN113098799A CN202011530903.2A CN202011530903A CN113098799A CN 113098799 A CN113098799 A CN 113098799A CN 202011530903 A CN202011530903 A CN 202011530903A CN 113098799 A CN113098799 A CN 113098799A
- Authority
- CN
- China
- Prior art keywords
- port
- node
- storage device
- data
- data storage
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
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/40—Bus structure
- G06F13/4004—Coupling between buses
-
- 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
- H04L49/252—Store and forward routing
-
- 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/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- 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
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- 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/4604—LAN interconnection over a backbone network, e.g. Internet, Frame Relay
- H04L12/462—LAN interconnection over a bridge based backbone
- H04L12/4625—Single bridge functionality, e.g. connection of two networks over a single bridge
-
- 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/12—Shortest path evaluation
-
- 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/66—Layer 2 routing, e.g. in Ethernet based MAN's
-
- 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
- H04L49/253—Routing or path finding in a switch fabric using establishment or release of connections between ports
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0888—Throughput
-
- 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/12—Shortest path evaluation
- H04L45/122—Shortest path evaluation by minimising distances, e.g. by selecting a route with minimum of number of hops
-
- 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/12—Shortest path evaluation
- H04L45/125—Shortest path evaluation based on throughput or bandwidth
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Environmental & Geological Engineering (AREA)
- Small-Scale Networks (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了使用存储设备的端口到端口网络路由。一种至少用以在节点之间提供端口到端口通信的多端口数据存储设备。所述多端口存储设备包括第一端口、第二端口和桥接器。所述第一端口可以可操作地耦接到多个节点中的第一节点。所述第二端口可以可操作地耦接到所述多个节点中的第二节点。所述桥接器可经由所述第一端口或所述第二端口接收要传输到所述多个节点中的一个节点的一个或多个数据分组,并且将一个或多个接收到的数据分组传输到另一个多端口数据存储设备,传输到所述第一节点,或传输到所述第二节点。
Description
本公开涉及网络路由。具体地讲,本公开涉及使用存储设备的端口到端口网络路由和数据流。
发明内容
本公开的各种实施方案涉及使用数据存储设备的端口到端口联网。数据存储设备可以提供节点之间的链路。数据存储设备可以接收数据分组并将接收到的数据分组传输到另一个数据存储设备的节点中的一个节点,从而提供到节点中的一个节点的链路。
在至少一个实施方案中,示例性多端口数据存储设备可以包括第一端口、第二端口和桥接器。第一端口可以可操作地耦接到多个节点中的第一节点。第二端口可以可操作地耦接到多个节点中的第二节点。桥接器可被配置为经由第一端口或第二端口接收要传输到多个节点中的一个节点的一个或多个数据分组,并且将一个或多个接收到的数据分组传输到另一个多端口数据存储设备,传输到第一节点,或传输到第二节点。
在至少一个实施方案中,示例性的端口到端口网络路由系统可以包括多个节点和多个多端口数据存储设备。多个节点可被配置为至少接收、传输和存储数据。多个节点中的每个节点可以包括存储器和可操作地耦接到存储器的数据总线。多个多端口数据存储设备可被配置为至少提供节点之间的端口到端口通信。多个多端口存储设备中的每个多端口存储设备可以包括第一端口、第二端口和桥接器。第一端口可以可操作地耦接到多个节点中的第一节点的数据总线。第二端口可以可操作地耦接到多个节点中的第二节点的数据总线。桥接器可被配置为经由第一端口或第二端口接收要传输到多个节点中的一个节点的一个或多个数据分组,并且将一个或多个接收到的数据分组传输到另一个多端口数据存储设备,传输到第一节点,或传输到第二节点。
在至少一个实施方案中,示例性方法可以包括使用多端口数据存储设备的桥接器经由多端口数据存储设备的第一端口接收数据分组;以及使用缓冲器经由多端口数据存储设备的第二端口将数据分组传输到另外多端口数据存储设备中的一个多端口数据存储设备,传输到可操作地耦接到多端口数据存储设备的第一节点,或传输到可操作地耦接到多端口数据存储设备的第二节点。
以上概述并非旨在描述本公开的每个实施方案或每个实施方式。通过结合附图参考以下详细描述和权利要求,将更加清楚和领会更完整的理解。换句话讲,通过阅读以下详细描述,这些以及各种其他特征和优点将变得显而易见。
附图说明
结合附图,考虑本公开的各种实施方案的以下详细描述,可以更全面地理解本公开。
图1是使用多端口数据存储设备作为节点之间的链路的示例性网络的示意图。
图2是根据本公开的实施方案的用于操作的示例性多端口数据存储设备的示意框图。
图3是根据本公开的实施方案的用于操作的示例性节点的示意框图。
图4是根据本公开的实施方案的网络路由选择操作的示例的示意框图。
图5是根据本公开的实施方案的示例性数据分组的示意框图。
图6是根据本公开的实施方案的示例性方法的流程图。
图7是根据本公开的实施方案的另一示例性方法的流程图。
具体实施方式
本公开涉及用于使用数据存储设备诸如多端口数据存储设备进行端口到端口网络路由的系统、方法和过程。尽管本文中提到了节点、设备和存储设备,但是数据可存储在具有可用存储空间的任何合适的数据存储系统中,该可用存储空间将数据存储在不同的设备或节点上。数据存储设备的非限制性示例包括非易失性存储器和易失性存储器、硬盘驱动器、固态驱动器和多层驱动器(例如,利用硬盘和固态两者)。受益于本公开的本领域技术人员将清楚各种其他应用。
将数据移动通过网络可能是昂贵的。数据存储设备诸如固态驱动器(SSD)可能处于操作模式,其中主机互连由于队列深度低、读写混合或传输大小小而未得到充分利用。可以在数据存储设备中实例化虚拟网络功能,使得网络流量可以从数据存储设备的一个端口传递到另一个端口。可以使用数据存储设备来创建网格或其他网络拓扑,以链接计算复合体或节点,而无需网络适配器和交换机的成本或功耗。
当前的数据总线架构诸如外围部件互连高速(PCIe)支持虚拟功能。使数据存储设备中的虚拟网络功能实例化可允许一个硬件连接将多个虚拟设备呈现给操作系统。通过将多端口数据存储设备(MDSD)的每个端口配置为呈现一个或多个网络功能,MDSD可以读取/写入本地存储在设备中的数据,并将网络流量传递到其他端口,以达到数据总线速率的极限。多维网格拓扑中的计算复合体或节点的集合可提供成本降低和增加的吞吐量。在一个示例中,每个节点具有6个PCIe×4通道总线,然后3维网格可配置有MDSD,从而提供到6个相邻服务器的连接。每个MDSD驱动器可以是双端口双通道驱动器,其为每个链路提供2GB/s单工和4GB/s双工。六个链路使用PCIe Gen 3来实现每个节点24GB/s。PCIe Gen4×4可提供每个节点96GB/s。节点中央处理单元(CPU)可能不会通过存储和转发操作来桥接该流量。
MDSD可经由每个端口将数据分组直接写入(例如,直接存储器访问)源节点和目标节点之间的通信路径中的下一个MDSD。直接存储器访问是计算机系统的特征,其允许某些硬件子系统独立于中央处理单元(CPU)访问存储器。换句话讲,MDSD可以在不使用可操作地耦接的节点的CPU或存储器的情况下将数据分组写入其他设备或MDSD。MDSD可以包括被配置为执行本文描述的操作的桥接器。尽管可以将桥接器描述为执行本文描述的操作,但是MDSD可以包括用以执行桥接器操作的处理器或控制器。桥接器可以包括缓冲器以提供存储和转发功能。
可以在初始化时发现网络的拓扑,使得网络的可操作地耦接的节点已知节点和链路连接。然后,源节点的网络驱动器可以为每个数据分组或数据报选择到目的地的一条或多条路径。可以将一个或多个路径或路由引导附加到数据分组并写入桥接器。该桥接器可能在主机存储器中。通知可被发送到MDSD以进行读取/传输,或者该通知可被直接写入驱动器中的预分配桥接器中。可以以向量(例如,东-2、西-1、上-1)提供路由引导。因此,可能不必将所有节点(例如,服务器)的所有基地址寄存器都共享给所有节点。相反,MDSD的出口端口可以知道其节点的向量的存储器位置。当出口端口以这样的向量将数据分组推送到MDSD时,可能会使该向量递减。因此,可以启用由于数据流反压或服务器故障而更改路由的方法。
数据分组可以直通驱动器,以避免存储和转发延迟。直通逻辑可以在接收完整数据分组之前开始在出口端口上发布数据。为了启用恢复机制,可以将页脚附加到数据中,该数据包括好/坏传输指示连同其他可能的数据(比如时间戳和序列号)。
在每个链路或节点处的数据分组路由选择可以基于出口ID(EID)拥塞或带宽利用。路由方法可以包括合适的过程或方法,例如,可能路径的循环选择,在数据分组生成时存储在数据分组的竞争标头中的一个或多个出口选项,最少使用的EID选择等。
图1示出了用于将多端口数据存储设备(MDSD)12用作节点14之间的链路的网络10的示意图。换句话讲,网络10可能是端口到端口网络路由系统。
网络10的节点14中的每个节点使用MDSD 12链接到至少一个其他节点14。每个MDSD 12可以包括至少两个端口。第一端口可以可操作地耦接到第一节点,并且第二端口可以耦接到节点14中的第二节点。在一些实施方案中,MDSD 12中的一个或多个MDSD可以包括两个以上的端口。MDSD 12的每个端口可以可操作地耦接到不同的节点14。因此,节点14可以由MDSD12链接到任何合适的网络拓扑中,例如,环形、网格、星形、全连接、Dragonflly、Slimfly、Toroid等。在至少一个实施方案中,网络10被布置在Slimfly拓扑中。
图2是根据本公开的实施方案的用于网络的示例性多端口数据存储设备(MDSD)12的示意框图,类似于图1中所示。MDSD 12可以包括桥接器16以及端口18和20。MDSD 12可以包括任何合适的设备,例如,固态存储设备(SSD)、非易失性存储器高速(NVMe)设备等。MDSD12可以包括数据加密引擎17和解密引擎19。MDSD 12还可包括处理器13和存储器14。处理器13可执行MDSD 12的操作,如本文各个实施方案中所描述。
端口18和20可各自可操作地耦接到网络(例如,图1的网络10)的不同节点。这样的布置允许MDSD 12经由端口18和20传输和接收数据分组。端口18和20可以包括用于可操作地耦接到数据总线的任何合适的连接器,例如,SATA、PCIe、M.2、U.2、mSATA、SATA Express等。在至少一个实施方案中,端口18和20中的每个端口都包括PCIe连接器。两个端口18和20可以包括输入输出(io)总线。尽管仅示出了两个端口18和20,但是MDSD(诸如MDSD 12)可以包括两个以上的端口,例如,3个端口、4个端口等。MDSD 12的每个端口可以可操作地耦接到不同的节点。
桥接器16可以经由端口18和20中的每个端口接收数据分组。桥接器16可以通过虚拟网络功能进行配置。桥接器16可被配置为将接收到的数据分组传输到任何可操作地耦接的节点,或传输到可操作地耦接到此类节点的任何MDSD。例如,桥接器16可以经由端口18从第一节点接收数据分组。桥接器16可以将接收到的数据分组经由端口20传输到第二节点或可操作地耦接到第二节点的MDSD。桥接器16可被配置为经由直接存储器访问接收数据分组。另外,桥接器16可被配置为经由直接存储器访问传输数据分组。这样的配置允许直通逻辑,该直通逻辑可消除存储和转发延迟。此外,桥接器16可被配置为在不使用可操作地耦接的节点的处理器的情况下接收和传输数据分组。换句话讲,桥接器16可能不需要外部处理器来执行网络功能。
在一个实施方案中,桥接器16经由端口18或端口20接收要传输到多个节点中的一个节点的一个或多个数据分组,并且将一个或多个接收到的数据分组传输到另一个MDSD,经由端口18传输到节点,或经由端口20传输到节点。桥接器16可被配置为基于接收到的数据分组中的每个数据分组的目标地址,将一个或多个接收到的数据分组传输到另一个MDSD,经由端口18传输到节点,或经由端口20传输到节点。桥接器16可被配置为使接收到的一个或多个数据分组的通过极限递减。桥接器16可被配置为禁止传输通过极限为0的接收到的分组。
桥接器16可以包括缓冲器。缓冲器可被配置为接收数据分组以用于传输。缓冲器可以提供存储和转发能力。缓冲器可以是任何合适的缓冲器,例如,环形缓冲器、先进先出缓冲器、队列等。在至少一个实施方案中,缓冲器是环形缓冲器。
在至少一个实施方案中,数据加密引擎17可以变换数据分组的有效载荷部分的数据,使得经由端口20的传输被加密。有效载荷的数据可以使用任何合适的加密方法进行加密,例如,使用源节点的私钥和目标节点的公钥的高级加密标准(AES)。在至少一个实施方案中,数据解密引擎19可以变换数据分组的有效载荷部分的数据,因此经由端口20的传输是由发送节点发布的原始数据有效载荷。解密方法的一个示例是使用源节点的公钥和目标节点的私钥的高级加密标准(AES)的实施方案。
图3是根据本公开的实施方案的用于网络的示例性节点14的框图。节点14可以包括中央处理单元(CPU)30、存储器管理器32、数据总线34、网络接口控制器(NIC)36和数据存储设备38。节点14可以包括任何合适的计算装置,例如,个人计算机、计算复合体、服务器等。
CPU 30可以包括一个或多个处理器、控制器、存储器、高速缓存、PCIe桥接器、其他数据总线等。CPU 30可以可操作地耦接到数据总线34。CPU 30可被配置为生成数据分组,使用MDSD 12来发现其他节点,处理中断,并且管理MDSD数据桥接异常和故障。存储器管理器32可以包括适合于动态分配存储器的部分以用于CPU 30的地址空间内的MDSD的程序执行和枚举的任何硬件或软件。
数据总线34可以包括任何合适的总线装置和协议,例如,PCIe总线、HyperTransport总线、InfiniBand总线、Compute Express Link或用于可操作地耦接数据存储设备的其他合适的总线。在至少一个示例中,数据总线34是PCIe总线。数据总线34可以可操作地耦接到数据存储设备或其他外围计算机部件。
NIC 36可以可操作地耦接到数据总线34。此外,NIC 36可以可操作地耦接到外部网络。NIC 36可以包括用以传输和接收数据分组的任何合适的装置,例如,存储器、处理器等。NIC 36可允许节点14使用存储设备与端口到端口网络外部的网络进行通信。NIC 36可以可操作地耦接到任何合适的通信介质,例如,以太网电缆。
数据存储设备38可以可操作地耦接到数据总线34。数据存储设备38可以包括任何合适的存储设备或装置,例如,SDD、NVMe设备、随机存取存储器(RAM)、硬盘驱动器(HDD)、串行连接小型计算机系统接口(SAS)主机总线适配器等。数据存储设备38可以存储数据、程序、数据库、数据对象、数据副本、文件系统、时间点快照等。
节点14可以可操作地耦接到MDSD 12。节点14可以经由数据总线34可操作地耦接到MDSD 12。因此,节点14可以经由MDSD 12将数据分组传输到其他节点。这允许节点14利用数据总线34和MDSD 12的带宽和速度。节点14可被配置为使用直接存储器访问将数据分组传输到MDSD 12。
图4是根据本公开的实施方案的网络48和网络路由操作的示例的示意图。网络48可以包括节点50A-50C和MDSD 56、58、60、62、66、68、70、72、74、78、80、82、84、86、88和90。节点50A-50C可各自包括图1和图3的节点14的配置和装置。MDSD 56、58、60、62、66、68、70、72、74、78、80、82、84、86、88和90可各自包括图1-图3的MDSD 12的配置和装置。
节点50A可以包括网络驱动器52A和存储器54A。节点50A可经由端口A1可操作地耦接到MDSD 56,经由端口A2可操作地耦接到MDSD 58,经由端口A3可操作地耦接到MDSD 60,经由端口A4可操作地耦接到MDSD 62,经由端口A5可操作地耦接到MDSD 66,并且经由端口A6可操作地耦接到MDSD 68。MDSD 56、58、60、66和68中的每一者都可以可操作地耦接到另一个节点(未示出)。MDSD 62经由端口A4可操作地耦接到节点50A,并且经由端口B1可操作地耦接到节点50B。
节点50B可以包括网络驱动器52B和存储器54B。节点50B可经由端口B1可操作地耦接到MDSD 62,经由端口B2可操作地耦接到MDSD 70,经由端口B3可操作地耦接到MDSD 72,经由端口B4可操作地耦接到MDSD 74,经由端口B5可操作地耦接到MDSD 78,并且经由端口B6可操作地耦接到MDSD 80。MDSD 70、72、78和80中的每一者都可以可操作地耦接到另一个节点(未示出)。MDSD 74经由端口B4可操作地耦接到节点50B,并且经由端口C1可操作地耦接到节点50C。
节点50C可以包括网络驱动器52C和存储器54C。节点50C可经由端口C1可操作地耦接到MDSD 74,经由端口C2可操作地耦接到MDSD 82,经由端口C3可操作地耦接到MDSD 84,经由端口C4可操作地耦接到MDSD 86,经由端口C5可操作地耦接到MDSD 88,并且经由端口C6可操作地耦接到MDSD 90。MDSD 82、84、86、88和90中的每一者都可以可操作地耦接到另一个节点(未示出)。
网络驱动器52A-52C可被配置为生成用于端口到端口网络(诸如网络48)的数据分组。网络驱动器52A-52C可以包括网络图,该网络图包括网络的节点及其彼此相关联的链路(例如,MDSD 56、58、60、62、66、68、70、72、74、78、80、82、84、86、88、90等)。
在步骤92处,网络驱动器52A可以将一个或多个数据分组写入MDSD 62的桥接器64中。网络驱动器52A可以使用直接存储器访问将一个或多个数据分组写入桥接器64中。网络驱动器52A可以将发送请求写入MDSD 62,其中数据分组在存储器中的位置供MDSD 62获取。桥接器64可以对获取的数据分组进行加密。网络驱动器52A可以基于一个或多个数据分组的目标地址来选择MDSD 62。
在步骤94处,桥接器64通过写入MDSD 74的桥接器76中来传输一个或多个数据分组。桥接器64可以使用直接存储器访问将一个或多个数据分组写入桥接器76中。桥接器64可以基于一个或多个数据分组中的每个数据分组的目标地址来选择桥接器76。在步骤96处,桥接器64可以通知网络驱动器52A经由MDSD 62的一个或多个数据分组的传输已完成。
在步骤98处,桥接器76将一个或多个数据分组写入存储器54C中。桥接器76可以使用直接存储器访问将一个或多个数据分组写入存储器54C中。桥接器76可以基于一个或多个数据分组中的每个数据分组的目标地址来选择存储器54C。桥接器76可以对数据分组进行解密。在步骤100处,桥接器76可以通知桥接器64经由MDSD 74的一个或多个数据分组的传输已完成。在步骤102处,网络驱动器52C可以通知桥接器76一个或多个数据分组的接收完成。
图5是根据本公开的实施方案的示例性数据分组110的示意框图。数据分组110可以包括竞争标头112、协议标头124和有效载荷126。数据分组110可以任选地包括跟踪页脚128。
竞争标头112可以包括用于端口到端口网络路由的信息。竞争标头112可以包括目标地址114、源地址116、路由类别118、通过计数器120和跟踪页脚字数122。
目标地址114可以包括数据分组110的预期目的地的任何合适的标识符。换句话讲,目标地址114标识旨在最终接收数据分组110的节点或其他设备。合适的标识符可以包括媒体访问控制(MAC)地址、物理地址、互联网协议地址、主机唯一标识符、应用程序唯一标识符等。在至少一个示例中,目标地址114包括数据分组110的预期目的地的MAC地址。
源地址116可以包括数据分组110的源的任何合适的标识符。换句话讲,源地址116标识生成数据分组110的节点或其他设备。合适的标识符可以包括媒体访问控制(MAC)地址、物理地址、互联网协议地址、主机唯一标识符、应用程序唯一标识符等。在至少一个示例中,源地址116包括数据分组110的源的MAC地址。
路由类别118可以包括数据分组110的优先级等级的指示符。可以通过具有较少跳的路由来推送或传输具有较高优先级等级或路由类别的数据分组,而不考虑沿着此类路由的拥塞。相比之下,可以通过具有较高跳数的路由来推送或传输具有较低优先级等级或路由类别的数据分组,以避免拥塞或频繁使用的路由。可以在先前接收到的较低优先级的分组之前传输较高优先级的数据分组。
通过计数器120可以包括允许数据分组110通过的跳或链路(例如,图1-图3的MDSD12)的最大数量。每当端口到端口网络的MDSD接收到数据分组110时,通过计数器120可递减。如果通过计数器120在递减之前处于零,并且目标地址114不用于可操作地耦接的节点,则MDSD可以禁止数据分组110的传输。当禁止数据分组110时,MDSD可以将通知发送或传输到源地址116。
跟踪页脚字数122可以记录数据分组110所通过的跳或链路(例如,图1-图3的MDSD12)的数量。跟踪页脚字数122还可包括数据分组110通过了哪些MDSD的指示。
协议标头124可以包括用于正确的外部网络路由的信息。协议标头124可以包括任何合适的网络标头,例如,Internet协议(IP)标头、用户数据报协议(UDP)标头、传输控制协议(TCP)标头、事务性传输控制协议(T/TCP)标头等。
有效载荷126可以是要传输到节点或其他位置的数据。一旦数据分组110生成,有效载荷126便可不改变。数据分组110可以包括校验和,以在将数据分组110递送到预期目的地后验证有效载荷126的完整性。
跟踪页脚128可以包括时隙标识(ID)130、队列深度132和时间戳134。时隙ID 130可以包括数据分组110的预期目的地在端口到端口网络(例如,图1的网络10)内的位置的指示。可以基于目标地址114来确定时隙ID130。可以进一步基于目标地址114与映射到端口到端口网络的时隙ID的MAC地址列表的比较来确定时隙ID 130。时隙ID 130还可以包括MDSD标识符、通过MDSD的传播时间、桥接器利用、历史吞吐量度量、路由拥塞等。
队列深度132可以包括每个类别或路由类别的最大队列深度的指示。时间戳134可以指示何时生成或创建数据分组110。时间戳134可以用于确定数据分组110的传输时间。时间戳134可以用于确定数据分组110在传输期间的寿命。
图6是根据本公开的实施方案的示例性方法140的流程图。该方法140可以包括使用多端口数据存储设备142的桥接器经由多端口数据存储设备的第一端口接收数据分组。可以从节点或另一个多端口数据存储设备接收数据分组。可以经由直接存储器访问来接收数据分组。
方法140可以包括使用桥接器经由多端口数据存储设备的第二端口将数据分组传输到另外多端口数据存储设备中的一个多端口数据存储设备,传输到可操作地耦接到多端口数据存储设备的第一节点,或传输到可操作地耦接到多端口数据存储设备144的第二节点。可以使用直接存储器访问来传输数据分组。可以在不使用第一节点和第二节点的处理器的情况下传输数据分组。可以基于分组的目标地址将数据分组传输到另外多端口数据存储设备中的一个多端口数据存储设备,传输到第一节点,或传输到第二节点。传输数据分组还可以包括基于出口ID(EID)拥塞或带宽利用来选择另外多端口数据存储设备中的一个多端口数据存储设备,以及将一个或多个分组传输到另外多端口数据存储设备中的所选择的一个多端口数据存储设备。
图7是根据本公开的实施方案的用于路由选择的示例性方法150的流程图。用于路由选择的方法150可以基于出口ID(EID)拥塞或带宽利用。该方法可以包括选择具有最低跳数152的EID。EID可以包括可操作地耦接到给定节点的MDSD的本地端口地址。
方法150可以包括确定一个或多个EID是否没有积压。如果一个或多个EID没有积压,则方法150可以前进到步骤156。如果不存在没有积压的EID,则方法150可以前进到步骤164。
方法150可以包括确定选择集的所有EID是否都没有近期活动158。如果选择集中的所有EID都没有近期活动,则方法150可以前进到步骤160。如果选择集中的任何EID都有近期活动,则方法150可以前进到步骤168。近期活动可能在约1微秒至约100秒的范围内。
方法150可以包括将数据分组路由到选择集160的随机EID。方法150可以包括选择具有下一个更高跳数162的EID集。当当前选择集的所有EID都超过积压阈值,并且存在具有比当前选择集更高的跳数的多个EID时,可以选择具有更高跳数的EID来生成新的选择集。
方法150可以包括确定当前选择集的所有EID是否超过积压阈值164。积压阈值可以是要传输的数据的最大队列深度。积压阈值可以是约4千字节(4096字节)的数据至约1兆字节(1,048,576字节)的数据。
方法150可以包括从选择集中省略超过积压阈值166的EID。省略EID可以包括从选择集中移除此类EID。方法150可以包括将数据分组路由到选择集168的最少使用的EID。
方法150可以包括确定是否存在具有更高跳数170的多个EID。如果存在具有更高跳数的多个EID,则方法150可以前进到步骤162。如果不存在具有更高跳数的多个EID,则方法可以前进到步骤172。方法150可以包括选择具有最低跳数172的EID。
因此,公开了使用存储设备的端口到端口网络路由的各种实施方案。尽管本文参考了构成本公开的一部分的一组附图,但是至少本领域的普通技术人员将理解,本文描述的实施方案的各种改编和修改都在本公开的范围和精神内,或不脱离本公开的范围和精神。例如,本文描述的实施方案的方面可以以各种方式彼此组合。因此,应当理解,在所附权利要求的范围内,所要求保护的发明可以以不同于本文明确描述的方式实践。
除非另有说明,否则本文中使用的所有科学和技术术语具有本领域中通常使用的含义。本文提供的定义是为了便于对本文中经常使用的某些术语的理解,并不意味着限制本公开的范围。
除非另外指明,否则在说明书和权利要求书中使用的表示特征尺寸、数量和物理特性的所有数字应当理解为在所有情况下均由术语“约”修饰。因此,除非有相反的指示,否则在前述说明书和所附权利要求书中列出的数值参数均为近似值,这些近似值可以根据本领域技术人员利用本文所公开的教导内容寻求获得的期望特性而变化。
提及“一个实施方案”,“实施方案”,“某些实施方案”或“一些实施方案”等意味着结合该实施方案描述的特定特征、配置、组成或特性包括在本公开的至少一个实施方案中。因此,此类短语在全文各个地方的出现不一定是指本公开的相同实施方案。此外,在一个或多个实施方案中,可以以任何合适的方式组合特定特征、配置、组成或特性。
如本说明书和所附权利要求中所用,单数形式“一个”、“一种”和“该”涵盖具有复数指代物的实施方案,除非上下文明确地另外指明。如本说明书和所附权利要求书中所用,术语“或”通常以其非排他性含义“和/或”使用,除非上下文明确地另外指明。
如本文所用,“具有(have)”、“具有(having)”,“包括(include)”,“包括(including)”,“包含(comprise)”,“包含(comprising)”等以其开放式含义使用,并且通常是指“包括但不限于”。应当理解,“基本上由……组成”,“由……组成”等被包含在“包括”等中。
其后跟随列表的短语“……中的至少一者”、“包括……中的至少一者”和“……中的一者或多者”是指列表中的项目中的任一项以及列表中两个或更多个项目的任何组合。
进一步的示例:
示例1.一种至少用以在节点之间提供端口到端口通信的多端口数据存储设备,所述多端口存储设备包括:第一端口,所述第一端口可操作地耦接到多个节点中的第一节点;第二端口,所述第二端口可操作地耦接到所述多个节点中的第二节点;以及桥接器,所述桥接器用以经由所述第一端口或所述第二端口接收要传输到所述多个节点中的一个节点的一个或多个数据分组,并且将一个或多个接收到的数据分组传输到另一个多端口数据存储设备,传输到所述第一节点,或传输到所述第二节点。
示例2.如示例1所述的多端口数据存储设备,其中所述桥接器被配置为基于所述一个或多个数据分组中的每个数据分组的目标地址,将所述一个或多个数据分组传输到另一个多端口数据存储设备,传输到所述第一节点,或传输到所述第二节点。
示例3.如示例1所述的多端口数据存储设备,其中所述桥接器被配置为经由直接存储器访问来接收一个或多个数据分组。
示例4.如示例1所述的多端口数据存储设备,其中所述桥接器被配置为使用直接存储器访问将所述一个或多个接收到的数据分组传输到另一个多端口数据存储设备,传输到所述第一节点,或传输到所述第二节点。
示例5.如示例1所述的多端口数据存储设备,其中所述第一端口可操作地耦接到所述第一节点的数据总线,并且所述第二端口可操作地耦接到所述第二节点的数据总线。
示例6.如示例5所述的多端口数据存储设备,其中所述第一节点和第二节点的所述数据总线是外围部件互连高速(PCIe)数据总线。
示例7.如示例1所述的多端口数据存储设备,其中所述多端口数据存储设备是固态驱动器(SSD)。
示例8.如示例1所述的多端口数据存储设备,其中所述多端口数据存储设备是非易失性存储器高速(NVMe)数据存储设备。
示例9.如示例1所述的多端口数据存储设备,其中所述桥接器被配置为使接收到的一个或多个数据分组的通过极限递减。
示例10.如示例1所述的多端口数据存储设备,其中所述桥接器被配置为在不使用所述第一节点和所述第二节点的处理器或存储器的情况下将所述一个或多个接收到的数据分组传输到另一个多端口数据存储设备,传输到所述第一节点,或传输到所述第二节点。
示例11.一种端口到端口网络路由系统,包括:多个节点,所述多个节点至少用以接收、传输和存储数据,所述多个节点中的每个节点包括:存储器;以及数据总线,所述数据总线可操作地耦接到所述存储器;多个多端口数据存储设备,所述多个多端口数据存储设备至少用以提供节点之间的端口到端口通信,所述多个多端口存储设备中的每个多端口存储设备包括:第一端口,所述第一端口可操作地耦接到多个节点中的第一节点的所述数据总线;第二端口,所述第二端口可操作地耦接到所述多个节点中的第二节点的所述数据总线;以及桥接器,所述桥接器用以经由所述第一端口或所述第二端口接收要传输到所述多个节点中的一个节点的一个或多个数据分组,并且将一个或多个接收到的数据分组传输到另一个多端口数据存储设备,传输到所述第一节点,或传输到所述第二节点。
示例12.如示例11所述的端口到端口网络路由系统,其中所述多个节点中的至少一个节点还包括网络驱动器,以生成要使用所述端口到端口网络路由系统传输的数据分组。
示例13.如示例12所述的端口到端口网络路由系统,其中所述网络驱动器使用直接存储器访问将生成的数据分组传输到多端口数据存储设备。
示例14.如示例12所述的端口到端口网络路由系统,其中所述多个多端口数据存储设备中的至少两个多端口数据存储设备可操作地耦接到所述至少一个节点,并且其中所述网络驱动器选择所述至少两个多端口数据存储设备中的哪个多端口数据存储设备用以传输由所述网络驱动器生成的至少一个数据分组。
示例15.如示例11所述的端口到端口网络路由系统,其中所述多个节点中的一个或多个节点包括服务器。
示例16.如示例11所述的端口到端口网络路由系统,其中所述多个节点中的至少一个节点还包括网络接口控制器(NIC),以将数据分组传输到所述端口到端口网络路由系统之外。
示例17.一种方法,包括:使用所述多端口数据存储设备的桥接器经由多端口数据存储设备的第一端口接收数据分组;以及使用所述桥接器经由所述多端口数据存储设备的第二端口将所述数据分组传输到另外多端口数据存储设备中的一个多端口数据存储设备,传输到可操作地耦接到所述多端口数据存储设备的第一节点,或传输到可操作地耦接到所述多端口数据存储设备的第二节点。
示例18.如示例17所述的方法,其中传输所述数据分组还包括使用直接存储器访问来传输所述数据分组。
示例19.如示例17所述的方法,其中传输所述数据分组还可包括:基于出口ID(EID)拥塞或带宽利用来选择另外多端口数据存储设备中的所述一个多端口数据存储设备;以及将所述一个或多个分组传输到另外多端口数据存储设备中的所选择的一个多端口数据存储设备。
示例20.如示例17所述的方法,其中传输所述数据分组还包括基于所述分组的目标地址将所述数据分组传输到另外多端口数据存储设备中的一个多端口数据存储设备,传输到所述第一节点,或传输到所述第二节点。
Claims (10)
1.一种至少用以在节点之间提供端口到端口通信的多端口数据存储设备,所述多端口存储设备包括:
第一端口,所述第一端口可操作地耦接到多个节点中的第一节点;
第二端口,所述第二端口可操作地耦接到所述多个节点中的第二节点;以及
桥接器,所述桥接器用以经由所述第一端口或所述第二端口接收要传输到所述多个节点中的一个节点的一个或多个数据分组,并且将一个或多个接收到的数据分组传输到另一个多端口数据存储设备,传输到所述第一节点,或传输到所述第二节点。
2.如权利要求1所述的多端口数据存储设备,其中所述桥接器被配置为基于所述一个或多个数据分组中的每个数据分组的目标地址,将所述一个或多个数据分组传输到另一个多端口数据存储设备,传输到所述第一节点,或传输到所述第二节点。
3.如权利要求1所述的多端口数据存储设备,其中所述桥接器被配置为经由直接存储器访问来接收一个或多个数据分组。
4.如权利要求1所述的多端口数据存储设备,其中所述桥接器被配置为使用直接存储器访问将所述一个或多个接收到的数据分组传输到另一个多端口数据存储设备,传输到所述第一节点,或传输到所述第二节点。
5.如权利要求1所述的多端口数据存储设备,其中所述第一端口可操作地耦接到所述第一节点的数据总线,并且所述第二端口可操作地耦接到所述第二节点的数据总线。
6.如权利要求5所述的多端口数据存储设备,其中所述第一节点和第二节点的所述数据总线是外围部件互连高速(PCIe)数据总线。
7.如权利要求1所述的多端口数据存储设备,其中所述桥接器被配置为使接收到的一个或多个数据分组的通过极限递减。
8.如权利要求1所述的多端口数据存储设备,其中所述桥接器被配置为在不使用所述第一节点和所述第二节点的处理器或存储器的情况下将所述一个或多个接收到的数据分组传输到另一个多端口数据存储设备,传输到所述第一节点,或传输到所述第二节点。
9.一种端口到端口网络路由系统,包括:
多个节点,所述多个节点至少用以接收、传输和存储数据,所述多个节点中的每个节点包括:
存储器;以及
数据总线,所述数据总线可操作地耦接到所述存储器;
多个多端口数据存储设备,所述多个多端口数据存储设备至少用以提供节点之间的端口到端口通信,所述多个多端口存储设备中的每个多端口存储设备包括:
第一端口,所述第一端口可操作地耦接到多个节点中的第一节点的所述数据总线;
第二端口,所述第二端口可操作地耦接到所述多个节点中的第二节点的所述数据总线;以及
桥接器,所述桥接器用以经由所述第一端口或所述第二端口接收要传输到所述多个节点中的一个节点的一个或多个数据分组,并且将一个或多个接收到的数据分组传输到另一个多端口数据存储设备,传输到所述第一节点,或传输到所述第二节点。
10.一种方法,包括:
使用所述多端口数据存储设备的桥接器经由多端口数据存储设备的第一端口接收数据分组;以及
使用所述桥接器经由所述多端口数据存储设备的第二端口将所述数据分组传输到另外多端口数据存储设备中的一个多端口数据存储设备,传输到可操作地耦接到所述多端口数据存储设备的第一节点,或传输到可操作地耦接到所述多端口数据存储设备的第二节点。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/724,602 US11218396B2 (en) | 2019-12-23 | 2019-12-23 | Port-to-port network routing using a storage device |
US16/724,602 | 2019-12-23 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113098799A true CN113098799A (zh) | 2021-07-09 |
CN113098799B CN113098799B (zh) | 2023-05-09 |
Family
ID=76439438
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011530903.2A Active CN113098799B (zh) | 2019-12-23 | 2020-12-22 | 使用存储设备的端口到端口网络路由 |
Country Status (2)
Country | Link |
---|---|
US (2) | US11218396B2 (zh) |
CN (1) | CN113098799B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11818046B2 (en) * | 2021-01-26 | 2023-11-14 | Samsung Electronics Co., Ltd. | Coordinated congestion control in network-attached devices |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5884040A (en) * | 1995-01-11 | 1999-03-16 | Sony Corporation | Per-packet jamming in a multi-port bridge for a local area network |
US6067595A (en) * | 1997-09-23 | 2000-05-23 | Icore Technologies, Inc. | Method and apparatus for enabling high-performance intelligent I/O subsystems using multi-port memories |
US6308218B1 (en) * | 1997-09-17 | 2001-10-23 | Sony Corporation | Address look-up mechanism in a multi-port bridge for a local area network |
US6363067B1 (en) * | 1997-09-17 | 2002-03-26 | Sony Corporation | Staged partitioned communication bus for a multi-port bridge for a local area network |
US6617879B1 (en) * | 1997-09-17 | 2003-09-09 | Sony Corporation | Transparently partitioned communication bus for multi-port bridge for a local area network |
US20100316062A1 (en) * | 2009-06-16 | 2010-12-16 | Lsi Corporation | Scalable packet-switch |
US7860015B1 (en) * | 2006-12-18 | 2010-12-28 | Emc Corporation | Methods and apparatus for physical and logical SAN fabric analysis |
US7913022B1 (en) * | 2007-02-14 | 2011-03-22 | Xilinx, Inc. | Port interface modules (PIMs) in a multi-port memory controller (MPMC) |
CN103180816A (zh) * | 2010-10-21 | 2013-06-26 | 马维尔国际贸易有限公司 | Usb至sata的高速桥接器 |
CN107436855A (zh) * | 2016-05-25 | 2017-12-05 | 三星电子株式会社 | 用于具有可重配置多端口的pcie存储系统的qos认知io管理 |
US10075524B1 (en) * | 2015-09-29 | 2018-09-11 | Amazon Technologies, Inc. | Storage bridge device for communicating with network storage |
US10162793B1 (en) * | 2015-09-29 | 2018-12-25 | Amazon Technologies, Inc. | Storage adapter device for communicating with network storage |
CN110389909A (zh) * | 2018-04-16 | 2019-10-29 | 三星电子株式会社 | 使用深度神经网络优化固态驱动器的性能的系统和方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7698396B2 (en) * | 2000-01-31 | 2010-04-13 | Hitachi Software Engineering Co., Ltd. | Method of automatically recognizing network configuration including intelligent packet relay equipment, method of displaying network configuration chart, and system thereof |
US7688727B1 (en) * | 2000-04-17 | 2010-03-30 | Juniper Networks, Inc. | Filtering and route lookup in a switching device |
US6954463B1 (en) * | 2000-12-11 | 2005-10-11 | Cisco Technology, Inc. | Distributed packet processing architecture for network access servers |
US7843906B1 (en) * | 2004-02-13 | 2010-11-30 | Habanero Holdings, Inc. | Storage gateway initiator for fabric-backplane enterprise servers |
US8713295B2 (en) * | 2004-07-12 | 2014-04-29 | Oracle International Corporation | Fabric-backplane enterprise servers with pluggable I/O sub-system |
US8533435B2 (en) * | 2009-09-24 | 2013-09-10 | Nvidia Corporation | Reordering operands assigned to each one of read request ports concurrently accessing multibank register file to avoid bank conflict |
US20160011965A1 (en) * | 2013-03-15 | 2016-01-14 | Seagate Technology Llc | Pass through storage devices |
US10452316B2 (en) * | 2013-04-17 | 2019-10-22 | Apeiron Data Systems | Switched direct attached shared storage architecture |
US10503427B2 (en) * | 2017-03-10 | 2019-12-10 | Pure Storage, Inc. | Synchronously replicating datasets and other managed objects to cloud-based storage systems |
US11522817B1 (en) * | 2021-01-04 | 2022-12-06 | Innovium, Inc. | Spatial dispersion buffer |
-
2019
- 2019-12-23 US US16/724,602 patent/US11218396B2/en active Active
-
2020
- 2020-12-22 CN CN202011530903.2A patent/CN113098799B/zh active Active
-
2021
- 2021-12-10 US US17/548,067 patent/US11824752B2/en active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5884040A (en) * | 1995-01-11 | 1999-03-16 | Sony Corporation | Per-packet jamming in a multi-port bridge for a local area network |
US6308218B1 (en) * | 1997-09-17 | 2001-10-23 | Sony Corporation | Address look-up mechanism in a multi-port bridge for a local area network |
US6363067B1 (en) * | 1997-09-17 | 2002-03-26 | Sony Corporation | Staged partitioned communication bus for a multi-port bridge for a local area network |
US6617879B1 (en) * | 1997-09-17 | 2003-09-09 | Sony Corporation | Transparently partitioned communication bus for multi-port bridge for a local area network |
US6067595A (en) * | 1997-09-23 | 2000-05-23 | Icore Technologies, Inc. | Method and apparatus for enabling high-performance intelligent I/O subsystems using multi-port memories |
CN1279785A (zh) * | 1997-09-23 | 2001-01-10 | 依科技术股份有限公司 | 采用多端口存储器的智能数据总线接口 |
US7860015B1 (en) * | 2006-12-18 | 2010-12-28 | Emc Corporation | Methods and apparatus for physical and logical SAN fabric analysis |
US7913022B1 (en) * | 2007-02-14 | 2011-03-22 | Xilinx, Inc. | Port interface modules (PIMs) in a multi-port memory controller (MPMC) |
US20100316062A1 (en) * | 2009-06-16 | 2010-12-16 | Lsi Corporation | Scalable packet-switch |
CN103180816A (zh) * | 2010-10-21 | 2013-06-26 | 马维尔国际贸易有限公司 | Usb至sata的高速桥接器 |
US10075524B1 (en) * | 2015-09-29 | 2018-09-11 | Amazon Technologies, Inc. | Storage bridge device for communicating with network storage |
US10162793B1 (en) * | 2015-09-29 | 2018-12-25 | Amazon Technologies, Inc. | Storage adapter device for communicating with network storage |
CN107436855A (zh) * | 2016-05-25 | 2017-12-05 | 三星电子株式会社 | 用于具有可重配置多端口的pcie存储系统的qos认知io管理 |
CN110389909A (zh) * | 2018-04-16 | 2019-10-29 | 三星电子株式会社 | 使用深度神经网络优化固态驱动器的性能的系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
US11824752B2 (en) | 2023-11-21 |
US11218396B2 (en) | 2022-01-04 |
US20210194786A1 (en) | 2021-06-24 |
US20220103450A1 (en) | 2022-03-31 |
CN113098799B (zh) | 2023-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3783017B2 (ja) | ローカル識別子を使ったエンド・ノード区分 | |
JP6231679B2 (ja) | 周辺コンポーネント相互接続エクスプレスドメインのためのリソース管理 | |
US6748559B1 (en) | Method and system for reliably defining and determining timeout values in unreliable datagrams | |
US10970237B2 (en) | Storage system | |
JP5490336B2 (ja) | Pciエクスプレス・マルチプル・ルートi/o仮想化環境における低待ち時間の優先順位付け | |
CN100361100C (zh) | 对用于单通道适配器的多个资源进行逻辑分区的方法和系统 | |
US7643477B2 (en) | Buffering data packets according to multiple flow control schemes | |
JP4012545B2 (ja) | リモート・ダイレクト・メモリ・アクセス対応ネットワーク・インタフェース・コントローラのスイッチオーバーとスイッチバックのサポート | |
CN107436855B (zh) | 用于具有可重配置多端口的pcie存储系统的qos认知io管理 | |
US10284430B2 (en) | Storage provisioning and configuration of network protocol parameters | |
KR101196547B1 (ko) | 결정론적 sas 검색 및 구성을 위한 방법 | |
US20020087720A1 (en) | System and method for communications management and control over an unreliable communications network | |
JP2005318495A (ja) | 異なる仮想チャネルへのトランザクションの分離 | |
KR100464195B1 (ko) | 데이터를 전송하기 위한 신뢰성 있는 프로토콜을 제공하는방법 및 장치 | |
EP3939237B1 (en) | Transferring data between solid state drives (ssds) via a connection between the ssds | |
US11720413B2 (en) | Systems and methods for virtualizing fabric-attached storage devices | |
CN113098799B (zh) | 使用存储设备的端口到端口网络路由 | |
CN101207569B (zh) | 用于确定计算机网络上的通信路径的设备和方法 | |
US8885673B2 (en) | Interleaving data packets in a packet-based communication system | |
US9413654B2 (en) | System, relay device, method, and medium | |
US8055818B2 (en) | Low latency queue pairs for I/O adapters | |
CN116783877A (zh) | 控制路径和数据路径的解聚 | |
WO2015050552A1 (en) | Duplicating packets efficiently within a network security appliance |
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 |