DE102018005850A1 - Technologies for automated network congestion management - Google Patents

Technologies for automated network congestion management Download PDF

Info

Publication number
DE102018005850A1
DE102018005850A1 DE102018005850.7A DE102018005850A DE102018005850A1 DE 102018005850 A1 DE102018005850 A1 DE 102018005850A1 DE 102018005850 A DE102018005850 A DE 102018005850A DE 102018005850 A1 DE102018005850 A1 DE 102018005850A1
Authority
DE
Germany
Prior art keywords
carriage
bandwidth
carriages
network
resource manager
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
Application number
DE102018005850.7A
Other languages
German (de)
Inventor
Mohan J. Kumar
Murugasamy Nachimuthu
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from US15/858,288 external-priority patent/US20190068521A1/en
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE102018005850A1 publication Critical patent/DE102018005850A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/177Initialisation or configuration control

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Cooling Or The Like Of Electrical Apparatus (AREA)

Abstract

Ein Ressourcenmanagerserver zur Bandbreitenzuweisung, der Ressourcenmanagerserver umfassend einen oder mehrere Prozessoren und eine oder mehrere Speichervorrichtungen, in denen eine Mehrzahl von Anweisungen gespeichert sind, die, wenn sie durch den einen oder die mehreren Prozessoren ausgeführt werden, den Ressourcenmanagerserver veranlassen zum Entdecken einer Topologie einer Mehrzahl von Schlitten, die mit einer Schicht von Switches gekoppelt sind, die kommunikativ mit dem Ressourcenmanagerserver gekoppelt sind, Konstruieren eines Modells der Netzkonnektivität zwischen der Mehrzahl von Schlitten und der Schicht von Switches basierend auf der Topologie, Bestimmen einer Oversubscription eines Netzes basierend auf dem Modell der Netzkonnektivität, wobei die Oversubscription auf einer verfügbaren Bandbreite für die Schicht von Switches und einer maximalen Bandbreite der Mehrzahl von Schlitten basiert, Bestimmen einer Bandbreitengrenze für jeden Schlitten der Mehrzahl von Schlitten basierend auf der Oversubscription und Programmieren von jedem Schlitten der Mehrzahl von Schlitten mit der entsprechenden Bandbreitengrenze.A resource allocation server for bandwidth allocation, the resource manager server comprising one or more processors and one or more storage devices storing a plurality of instructions that, when executed by the one or more processors, cause the resource manager server to discover a topology of a plurality of sleds coupled to a layer of switches communicatively coupled to the resource manager server, constructing a model of network connectivity between the plurality of sleds and the layer of switches based on the topology, determining an overubscription of a network based on the model of the network Network connectivity, where the overubscription is based on available bandwidth for the layer of switches and a maximum bandwidth of the plurality of carriages, determining a bandwidth limit for each of the plurality of carriages based on the overubscription and programming of each sled of the plurality of sledges with the appropriate bandwidth limit.

Description

QUERVERWEIS AUF VERWANDTE ANMELDUNGENCROSS-REFERENCE TO RELATED APPLICATIONS

Die vorliegende Anmeldung beansprucht den Vorteil der vorläufigen indischen Patentanmeldung Nr. 201741030632, eingereicht am 30. August 2017, und der vorläufigen US-Patentanmeldung Nr. 62/584,401, eingereicht am 10. November 2017.The present application claims the benefit of US Provisional Patent Application No. 201741030632, filed on Aug. 30, 2017, and US Provisional Application No. 62 / 584,401, filed on Nov. 10, 2017.

HINTERGRUNDBACKGROUND

Datenzentren und andere große Computernetze weisen typischerweise mehrere Schichten von Switches auf. Beispielsweise können Server in Racks installiert sein, und jeder Server in einem Rack kann mit einem Top-of-Rack-Switch verbunden sein. Mehrere Top-of-Rack-Switches können mit einem Upstream-Switch verbunden sein und so weiter. Daher kann die Kommunikation zwischen Servern oder anderen Knoten in verschiedenen Racks das Traversieren mehrerer Switch-Schichten erfordern. Das Traversieren jeder Schicht von Switches kann Warteschlangenlatenz einführen.Data centers and other large computer networks typically include multiple layers of switches. For example, servers may be installed in racks and each server in a rack may be connected to a top-of-rack switch. Several top-of-rack switches can be connected to an upstream switch and so on. Therefore, communication between servers or other nodes in different racks may require traversing multiple switch layers. Traversing each layer of switches can introduce queuing latency.

Figurenlistelist of figures

Die hierin beschriebenen Konzepte sind beispielhaft dargestellt, und nicht als Beschränkung in den begleitenden Figuren. Aus Gründen der Einfachheit und Klarheit der Darstellung sind die in den Figuren dargestellten Elemente nicht notwendigerweise maßstabsgetreu gezeichnet. Wenn es angemessen erscheint, sind Bezugszeichen in den Figuren wiederholt, um entsprechende oder analoge Elemente anzuzeigen.

  • 1 ist eine vereinfachte Darstellung von wenigstens einer Ausführungsform eines Datenzentrums zum Ausführen von Arbeitslasten mit disaggregierten Ressourcen;
  • 2 ist eine vereinfachte Darstellung von wenigstens einer Ausführungsform eines Pods des Datenzentrums aus 1;
  • 3 ist eine perspektivische Ansicht von wenigstens einer Ausführungsform eines Racks, das im Pod aus 2 eingeschlossen sein kann;
  • 4 ist eine seitliche Höhenansicht des Racks aus 3;
  • 5 ist eine perspektivische Ansicht des Racks aus 3 mit einem darin montierten Schlitten;
  • 6 ist ein vereinfachtes Blockschaltbild von wenigstens einer Ausführungsform einer Oberseite des Schlittens aus 5;
  • 7 ist ein vereinfachtes Blockschaltbild von wenigstens einer Ausführungsform einer Unterseite des Schlittens aus 6;
  • 8 ist ein vereinfachtes Blockschaltbild von wenigstens einer Ausführungsform eines Rechenschlittens, der im Datenzentrum aus 1 verwendbar ist;
  • 9 ist eine perspektivische Draufsicht auf wenigstens eine Ausführungsform des Rechenschlittens aus 8;
  • 10 ist ein vereinfachtes Blockschaltbild von wenigstens einer Ausführungsform eines Beschleunigerschlittens, der im Datenzentrum aus 1 verwendbar ist;
  • 11 ist eine perspektivische Draufsicht auf wenigstens eine Ausführungsform des Beschleunigerschlittens aus 10;
  • 12 ist ein vereinfachtes Blockschaltbild von wenigstens einer Ausführungsform eines Speichereinrichtungsschlittens, der im Datenzentrum aus 1 verwendbar ist;
  • 13 ist eine perspektivische Draufsicht auf wenigstens eine Ausführungsform des Speichereinrichtungsschlittens aus 12;
  • 14 ist ein vereinfachtes Blockschaltbild von wenigstens einer Ausführungsform eines Speicherschlittens, der im Datenzentrum aus 1 verwendbar ist;
  • 15 ist ein vereinfachtes Blockschaltbild eines Systems, das innerhalb des Datenzentrums aus 1 eingerichtet werden kann, um Arbeitslasten mit verwalteten Knoten, die aus disaggregierten Ressourcen bestehen, auszuführen.
  • 16 ist ein vereinfachtes Blockschaltbild von wenigstens einer Ausführungsform eines Systems zur Bandbreitenzuweisung;
  • 17 ist ein vereinfachtes Blockschaltbild von wenigstens einer Ausführungsform einer Rechenvorrichtung aus 16;
  • 18 ist ein vereinfachtes Blockschaltbild von wenigstens einer Ausführungsform einer Umgebung des Ressourcenmanagers aus 16 und 17;
  • 19 ist ein vereinfachtes Blockschaltbild von wenigstens einer Ausführungsform einer Umgebung eines Schlittens aus 16 und 17;
  • 20 ist ein vereinfachtes Flussdiagramm von wenigstens einer Ausführungsform eines Verfahrens zur Bandbreitenzuweisung, das vom Ressourcenmanagerserver aus 16-18 ausgeführt werden kann; und
  • 21 ist ein vereinfachtes Flussdiagramm von wenigstens einer Ausführungsform eines Verfahrens zur Bandbreitenzuweisung, das vom Schlitten aus 16-17 und 19 ausgeführt werden kann.
The concepts described herein are presented by way of example and not by way of limitation in the accompanying figures. For the sake of simplicity and clarity of illustration, the elements shown in the figures are not necessarily drawn to scale. When appropriate, reference numerals in the figures are repeated to indicate corresponding or analogous elements.
  • 1 Figure 10 is a simplified illustration of at least one embodiment of a data center for performing workloads with disaggregated resources;
  • 2 Figure 5 is a simplified illustration of at least one embodiment of a data center pod 1 ;
  • 3 FIG. 12 is a perspective view of at least one embodiment of a rack made in the pod. FIG 2 can be included;
  • 4 is a side elevation view of the rack off 3 ;
  • 5 is a perspective view of the rack 3 with a carriage mounted therein;
  • 6 is a simplified block diagram of at least one embodiment of a top of the carriage 5 ;
  • 7 is a simplified block diagram of at least one embodiment of a bottom of the carriage 6 ;
  • 8th Figure 4 is a simplified block diagram of at least one embodiment of a compute slide deployed in the data center 1 is usable;
  • 9 is a perspective top view of at least one embodiment of the calculation slide 8th ;
  • 10 Figure 4 is a simplified block diagram of at least one embodiment of an accelerator carriage deployed in the data center 1 is usable;
  • 11 is a perspective top view of at least one embodiment of the accelerator carriage 10 ;
  • 12 Figure 4 is a simplified block diagram of at least one embodiment of a storage device sled located in the data center 1 is usable;
  • 13 FIG. 12 is a top perspective view of at least one embodiment of the storage device carriage. FIG 12 ;
  • 14 FIG. 5 is a simplified block diagram of at least one embodiment of a storage sled that is located in the data center 1 is usable;
  • 15 is a simplified block diagram of a system operating within the data center 1 can be set up to handle workloads with managed nodes that consist of disaggregated resources.
  • 16 FIG. 10 is a simplified block diagram of at least one embodiment of a bandwidth allocation system; FIG.
  • 17 Figure 4 is a simplified block diagram of at least one embodiment of a computing device 16 ;
  • 18 FIG. 4 is a simplified block diagram of at least one embodiment of a resource manager environment 16 and 17 ;
  • 19 FIG. 4 is a simplified block diagram of at least one embodiment of an environment of a carriage 16 and 17 ;
  • 20 FIG. 10 is a simplified flowchart of at least one embodiment of a bandwidth allocation method that originates from the resource manager server 16-18 can be executed; and
  • 21 FIG. 10 is a simplified flowchart of at least one embodiment of a method of bandwidth allocation from the carriage 16-17 and 19 can be executed.

DETAILLIERTE BESCHREIBUNG DER ZEICHNUNGEN DETAILED DESCRIPTION OF THE DRAWINGS

Obgleich die Konzepte der vorliegenden Offenbarung für verschiedene Modifikationen und alternative Formen empfänglich sind, wurden spezielle Ausführungsformen davon beispielhaft in den Zeichnungen gezeigt und werden hierin im Detail beschrieben. Jedoch sollte verstanden werden, dass es nicht beabsichtigt ist, die Konzepte der vorliegenden Offenbarung auf die bestimmten offenbarten Formen zu beschränken, sondern im Gegenteil ist es die Absicht, alle Modifikationen, Entsprechungen und Alternativen abzudecken, die mit der vorliegenden Offenbarung und den beigefügten Ansprüchen übereinstimmen.Although the concepts of the present disclosure are susceptible to various modifications and alternative forms, specific embodiments thereof have been shown by way of example in the drawings and will be described in detail herein. However, it should be understood that it is not intended to limit the concepts of the present disclosure to the particular forms disclosed, but on the contrary, it is intended to cover all modifications, equivalents and alternatives consistent with the present disclosure and the appended claims ,

Bezugnahmen in der Beschreibung auf „eine einzige Ausführungsform“, „eine Ausführungsform“, „eine veranschaulichende Ausführungsform“ usw. zeigen an, dass die beschriebene Ausführungsform ein bestimmtes Merkmal, eine bestimmte Struktur oder eine bestimmte Eigenschaft umfassen kann, jedoch braucht nicht jede Ausführungsform notwendigerweise das bestimmte Merkmal, die bestimmte Struktur oder die bestimmte Eigenschaft zu umfassen. Darüber hinaus beziehen sich derartige Ausdrücke nicht notwendigerweise auf die gleiche Ausführungsform. Ferner wird, wenn ein bestimmtes Merkmal, eine bestimmte Struktur oder eine bestimmte Eigenschaft in Verbindung mit einer Ausführungsform beschrieben wird, vorausgeschickt, dass es innerhalb der Kenntnisse von Fachleuten auf dem Gebiet liegt, ein solches Merkmal, eine solche Struktur oder eine solche Eigenschaft in Verbindung mit anderen Ausführungsformen zu bewirken, ob diese nun ausdrücklich beschrieben sind oder nicht. Darüber hinaus sollte beachtet werden, dass Elemente, die in einer Liste in der Form von „wenigstens ein A, B und C“ enthalten sind, (A); (B); (C); (A und B); (A und C); (B und C) oder (A, B und C) bedeuten können. In ähnlicher Weise können Elemente, die in der Form von „wenigstens einem von A, B oder C“ aufgeführt sind, (A); (B); (C); (A und B); (A und C); (B und C) oder (A, B und C) bedeuten.References in the specification to "a single embodiment," "an embodiment," "an illustrative embodiment," etc., indicate that the described embodiment may include a particular feature, structure, or characteristic, but not every embodiment necessarily requires the particular feature, the particular structure or the specific property. Moreover, such terms do not necessarily refer to the same embodiment. Further, when describing a particular feature, structure, or characteristic in connection with an embodiment, it is anticipated that it will be within the knowledge of those skilled in the art to associate such feature, structure, or trait to effect with other embodiments, whether they are now explicitly described or not. In addition, it should be noted that items included in a list are in the form of "at least one of A, B and C" (A); (B); (C); (A and B); (A and C); (B and C) or (A, B and C) may mean. Similarly, elements listed in the form of "at least one of A, B or C" may be (A); (B); (C); (A and B); (A and C); (B and C) or (A, B and C).

Die offenbarten Ausführungsformen können in manchen Fällen in Hardware, Firmware, Software oder jeder Kombination derselben implementiert sein. Die offenbarten Ausführungsformen können ebenfalls als Anweisungen implementiert sein, die auf einem transitorischen oder nicht-transitorischen maschinenlesbaren (z. B. computerlesbaren) Speichermedium übertragen werden oder gespeichert sind, die von einem oder mehreren Prozessoren gelesen und ausgeführt werden können. Ein maschinenlesbares Speichermedium kann als eine beliebige Speichereinrichtung, ein Mechanismus oder eine andere physikalische Struktur zum Speichern oder Übertragen von Informationen in einer durch eine Maschine lesbaren Form ausgeführt sein (z. B. ein flüchtiger oder nicht-flüchtiger Speicher, eine Speicherplatte oder andere Medienvorrichtung).The disclosed embodiments may in some cases be implemented in hardware, firmware, software, or any combination thereof. The disclosed embodiments may also be implemented as instructions that are transmitted or stored on a transitory or non-transitory machine-readable (eg, computer readable) storage medium that may be read and executed by one or more processors. A machine-readable storage medium may be embodied as any storage device, mechanism, or other physical structure for storing or transmitting information in a machine-readable form (eg, a volatile or nonvolatile memory, a storage disk, or other media device). ,

In den Zeichnungen können einige strukturelle oder Verfahrensmerkmale in speziellen Anordnungen und/oder Reihenfolgen angezeigt sein. Es sollte jedoch beachtet werden, dass solche speziellen Anordnungen und/oder Reihenfolgen möglicherweise nicht erforderlich sind. Vielmehr können solche Merkmale in einigen Ausführungsformen in einer anderen Art und/oder Reihenfolge als in den veranschaulichenden Figuren gezeigt angeordnet sein. Zusätzlich soll die Einbeziehung eines strukturellen oder Verfahrensmerkmals in einer bestimmten Figur nicht bedeuten, dass ein solches Merkmal in allen Ausführungsformen erforderlich ist, und kann in einigen Ausführungsformen nicht eingeschlossen sein oder kann mit anderen Merkmalen kombiniert sein.In the drawings, some structural or procedural features may be displayed in specific arrangements and / or orders. It should be noted, however, that such specific arrangements and / or orders may not be required. Rather, in some embodiments, such features may be arranged in a different manner and / or order than shown in the illustrative figures. In addition, inclusion of a structural or procedural feature in a particular figure is not intended to imply that such a feature is required in all embodiments, and may not be included in some embodiments or may be combined with other features.

Unter Bezugnahme auf 1 weist ein Datenzentrum 100, in dem disaggregierte Ressourcen kooperativ eine oder mehrere Arbeitslasten (z. B. Anwendungen im Auftrag von Kunden) ausführen können, mehrere Pods 110, 120, 130, 140 auf, von denen jedes eine oder mehrere Reihen von Racks aufweist. Wie hierin detaillierter beschrieben, nimmt jedes Rack mehrere Schlitten auf, die jeweils als eine Rechenvorrichtung, wie beispielsweise ein Server, ausgeführt sein können, die primär mit einem bestimmten Ressourcentyp ausgestattet ist (z. B. Speichervorrichtungen, Datenspeichereinrichtungen, Beschleunigervorrichtungen, Allzweckprozessoren). In der veranschaulichenden Ausführungsform sind die Schlitten in jedem Pod 110, 120, 130, 140 mit mehreren Pod-Switches (z. B. Switches, die Datenkommunikationen zu und von Schlitten innerhalb des Pods routen) verbunden. Die Pod-Switches wiederum sind mit Spine-Switches 150 verbunden, die Kommunikationen zwischen Pods (z. B. den Pods 110, 120, 130, 140) im Datenzentrum 100 umschalten. In einigen Ausführungsformen können die Schlitten mit einer Fabric unter Verwendung von Intel Omni-Path-Technologie verbunden sein. Wie hierin detaillierter beschrieben, können Ressourcen innerhalb von Schlitten im Datenzentrum 100 einer Gruppe (hierin als „verwalteter Knoten“ bezeichnet) zugewiesen sein, die Ressourcen von einem oder mehreren anderen Schlitten enthält, um bei der Ausführung einer Arbeitslast kollektiv genutzt zu werden. Die Arbeitslast kann so ausgeführt werden, als ob die zum verwalteten Knoten gehörenden Ressourcen auf dem gleichen Schlitten angeordnet wären. Die Ressourcen in einem verwalteten Knoten können sogar zu Schlitten gehören, die zu verschiedenen Racks gehören, und sogar zu verschiedenen Pods 110, 120, 130, 140. Einige Ressourcen eines einzelnen Schlittens können einem verwalteten Knoten zugewiesen sein, während andere Ressourcen des gleichen Schlittens einem anderen verwalteten Knoten zugewiesen sind (z. B. ein Prozessor, der einem verwalteten Knoten zugewiesen ist, und ein anderer Prozessor des gleichen Schlittens, der einem anderen verwalteten Knoten zugewiesen ist). Durch Disaggregieren von Ressourcen zu Schlitten, die vorwiegend aus einem einzelnen Ressourcentyp bestehen (z. B. Rechenschlitten, die primär Rechenressourcen umfassen, Speicherschlitten, die primär Speicherressourcen enthalten) und selektives Zuweisen und Aufheben der Zuweisung der disaggregierten Ressourcen, um einen verwalteten Knoten auszubilden, der zur Ausführung einer Arbeitslast zugeordnet ist, stellt das Datenzentrum 100 eine effizientere Ressourcennutzung gegenüber typischen Datenzentren bereit, die aus hyperkonvergierten Servern bestehen, die Rechen-, Speicher-, Speichereinrichtungs- und möglicherweise zusätzliche Ressourcen enthalten. Somit kann das Datenzentrum 100 eine größere Leistung (z. B. Durchsatz, Operationen pro Sekunde, Latenz usw.) bereitstellen als ein typisches Datenzentrum, das die gleiche Anzahl von Ressourcen aufweist.With reference to 1 has a data center 100 in which disaggregated resources can cooperatively perform one or more workloads (for example, applications on behalf of customers), multiple pods 110 . 120 . 130 . 140 each having one or more rows of racks. As described in greater detail herein, each rack receives multiple carriages, each of which may be implemented as a computing device, such as a server, that is primarily equipped with a particular type of resource (eg, storage devices, data storage devices, accelerator devices, general-purpose processors). In the illustrative embodiment, the carriages are in each pod 110 . 120 . 130 . 140 with multiple pod switches (for example, switches that route data communications to and from sleds within the pod). The pod switches in turn are with spine switches 150 connected to the communications between pods (such as pods 110 . 120 . 130 . 140 ) in the data center 100 switch. In some embodiments, the carriages may be connected to a fabric using Intel Omni-Path technology. As described in greater detail herein, resources within sleds may be in the data center 100 a group (referred to herein as a "managed node") that contains resources from one or more other carriages to be used collectively in the execution of a workload. The workload can be performed as if the resources associated with the managed node were located on the same sled. The resources in a managed node may even belong to sleds belonging to different racks, and even to different pods 110 . 120 . 130 . 140 , Some resources of a single sled may be assigned to a managed node while other resources of the same sled are assigned to another managed node (e.g. one processor assigned to a managed node and another processor of the same carriage assigned to another managed node). By disaggregating resources into sleds that are predominantly of a single resource type (e.g., compute sleds that primarily include compute resources, storage sleds that primarily contain storage resources) and selectively allocate and disassociate the disaggregated resources to form a managed node, which is assigned to execute a workload, represents the data center 100 provide more efficient resource utilization over typical data centers consisting of hyper-converged servers that contain compute, storage, storage, and possibly additional resources. Thus, the data center 100 provide greater performance (e.g., throughput, operations per second, latency, etc.) than a typical data center having the same number of resources.

Unter Bezugnahme auf 2 weist der Pod 110 in der veranschaulichenden Ausführungsform einen Satz von Reihen 200, 210, 220, 230 von Racks 240 auf. Jedes Rack 240 kann mehrere Schlitten (z. B. sechzehn Schlitten) aufnehmen und Strom- und Datenverbindungen zu den aufgenommenen Schlitten bereitstellen, wie hierin detaillierter beschrieben. In der veranschaulichenden Ausführungsform sind die Racks in jeder Reihe 200, 210, 220, 230 mit mehreren Pod-Switches 250, 260 verbunden. Der Pod-Switch 250 weist einen Satz von Ports 252, mit denen die Schlitten der Racks des Pods 110 verbunden sind, und einen anderen Satz von Ports 254, die den Pod 110 mit den Spine-Switches 150 verbinden, auf, um Konnektivität zu anderen Pods im Datenzentrum 100 bereitzustellen. In ähnlicher Weise weist der Pod-Switch 260 einen Satz von Ports 262, mit denen die Schlitten der Racks des Pods 110 verbunden sind, und einen Satz von Ports 264, die den Pod 110 mit den Spine-Switches 150 verbinden, auf. Somit stellt die Verwendung des Paars von Switches 250, 260 dem Pod 110 eine gewisse Redundanz bereit. Falls beispielsweise einer der Switches 250, 260 ausfällt, können die Schlitten im Pod 110 weiterhin die Datenkommunikation mit dem Rest des Datenzentrums 100 (z. B. Schlitten anderer Pods) durch den anderen Switch 250, 260 aufrechterhalten. Ferner können die Switches 150, 250, 260 in der veranschaulichenden Ausführungsform als Doppelmodus-Optik-Switches ausgeführt sein, die sowohl Ethernet-Protokoll-Kommunikationen, die Internet-Protokoll(IP)-Pakete tragen, als auch Kommunikationen gemäß einem zweiten Hochleistungs-Link-Layer-Protokoll (z. B. Intels Omni-Path-Architektur, Infiniband) über optische Signalisierungsmedien einer optischen Fabric routen können.With reference to 2 the pod has 110 in the illustrative embodiment, a set of rows 200 . 210 . 220 . 230 from racks 240 on. Every rack 240 may accommodate a plurality of carriages (eg, sixteen carriages) and provide power and data connections to the received carriages, as described in greater detail herein. In the illustrative embodiment, the racks are in each row 200 . 210 . 220 . 230 with several pod switches 250 . 260 connected. The pod switch 250 has a set of ports 252 with which the carriages of the racks of the pod 110 connected, and another set of ports 254 that the pod 110 with the spine switches 150 connect to connectivity to other pods in the data center 100 provide. Similarly, the pod switch points 260 a set of ports 262 with which the carriages of the racks of the pod 110 connected, and a set of ports 264 that the pod 110 with the spine switches 150 connect, up. Thus, the use of the pair of switches represents 250 . 260 the pod 110 a certain redundancy ready. For example, if one of the switches 250 . 260 fails, the sledges in the pod 110 continue the data communication with the rest of the data center 100 (eg sleds of other pods) through the other switch 250 . 260 maintained. Furthermore, the switches can 150 . 250 . 260 in the illustrative embodiment may be implemented as dual-mode optical switches carrying both Ethernet protocol communications carrying Internet Protocol (IP) packets and second high-performance link layer protocol communications (e.g. Intel's Omni-Path architecture, Infiniband) via optical signaling media of an optical fabric.

Es sollte beachtet werden, dass jeder der anderen Pods 120, 130, 140 (ebenso wie beliebige zusätzliche Pods des Datenzentrums 100) ähnlich strukturiert sein kann wie der Pod 110, der in 2 gezeigt und bezugnehmend darauf beschrieben ist, und ähnliche Komponenten wie dieser aufweisen kann (z. B. kann jeder Pod Reihen von Racks aufweisen, die mehrere Schlitten aufnehmen, wie oben beschrieben). Obgleich zwei Pod-Switches 250, 260 gezeigt sind, sollte zusätzlich verstanden werden, dass in anderen Ausführungsformen jeder Pod 110, 120, 130, 140 mit einer unterschiedlichen Anzahl von Pod-Switches verbunden sein kann (z. B. für noch mehr Failover-Kapazität).It should be noted that each of the other pods 120 . 130 . 140 (as well as any additional data center pods 100 ) can be similarly structured as the pod 110 who in 2 shown and referred to, and may have similar components to it (eg, each pod may have rows of racks holding a plurality of carriages as described above). Although two pod switches 250 . 260 In addition, it should be understood that in other embodiments, each pod 110 . 120 . 130 . 140 can be connected to a different number of pod switches (for example, for even more failover capacity).

Unter Bezugnahme auf 3-5 weist jedes veranschaulichende Rack 240 des Datenzentrums 100 zwei längliche Stützpfosten 302, 304 auf, die vertikal angeordnet sind. Beispielsweise können sich die länglichen Stützpfosten 302, 304 von einem Boden des Datenzentrums 100 nach oben erstrecken, wenn sie bereitgestellt werden. Das Rack 240 weist auch ein oder mehrere horizontale Paare 310 von länglichen Stützarmen 312 auf (in 3 durch eine gestrichelte Ellipse gekennzeichnet), die ausgelegt sind, um einen Schlitten des Datenzentrums 100 zu stützen, wie nachstehend erörtert. Ein länglicher Stützarm 312 des Paars von länglichen Stützarmen 312 erstreckt sich vom länglichen Stützpfosten 302 nach außen, und der andere längliche Stützarm 312 erstreckt sich vom länglichen Stützpfosten 304 nach außen.With reference to 3-5 has each illustrative rack 240 of the data center 100 two elongated support posts 302 . 304 on which are arranged vertically. For example, the elongated support posts 302 . 304 from a floor of the data center 100 extend upward when they are provided. The rack 240 also has one or more horizontal pairs 310 of elongated support arms 312 on (in 3 indicated by a dashed ellipse), which are designed to be a sled of the data center 100 support, as discussed below. An elongated support arm 312 the pair of elongated support arms 312 extends from the elongated support post 302 to the outside, and the other elongated support arm 312 extends from the elongated support post 304 outward.

In den veranschaulichenden Ausführungsformen ist jeder Schlitten des Datenzentrums 100 als ein baugruppenträgerloser Schlitten ausgeführt. Das heißt, jeder Schlitten weist ein baugruppenträgerloses Leiterplattensubstrat auf, auf dem physikalische Ressourcen (z. B. Prozessoren, Speicher, Beschleuniger, Speichereinrichtungen usw.) montiert sind, wie nachstehend detaillierter erörtert. Somit ist das Rack 240 ausgelegt, um die baugruppenträgerlosen Schlitten aufzunehmen. Beispielsweise definiert jedes Paar 310 von länglichen Stützarmen 312 einen Schlittensteckplatz 320 des Racks 240, das ausgelegt ist, um einen entsprechenden baugruppenträgerlosen Schlitten aufzunehmen. Hierzu umfasst jeder veranschaulichende längliche Stützarm 312 eine Leiterplattenführung 330, die ausgelegt ist, um das baugruppenträgerlose Leiterplattensubstrat des Schlittens aufzunehmen. Jede Leiterplattenführung 330 ist an einer Oberseite 332 des entsprechenden länglichen Stützarms 312 befestigt oder anderweitig an dieser montiert. Beispielsweise ist in der veranschaulichenden Ausführungsform jede Leiterplattenführung 330 an einem distalen Ende des entsprechenden länglichen Stützarms 312 relativ zum entsprechenden länglichen Stützpfosten 302, 304 montiert. Zur Klarheit der Figuren kann nicht jede Leiterplattenführung 330 in jeder Figur referenziert sein.In the illustrative embodiments, each carriage is the data center 100 designed as a subcarrier carrier sled. That is, each carriage has a subrackless circuit board substrate on which physical resources (eg, processors, memory, accelerators, memory devices, etc.) are mounted, as discussed in greater detail below. Thus, the rack 240 Designed to accommodate the subcarrier carriage. For example, each pair defines 310 of elongated support arms 312 a sled slot 320 of the rack 240 , which is designed to accommodate a corresponding subcarrier carriage. For this purpose, each illustrative elongated support arm 312 a circuit board guide 330 , which is designed to accommodate the subrackless printed circuit board substrate of the carriage. Each PCB guide 330 is at a top 332 the corresponding elongated support arm 312 attached or otherwise mounted on this. For example, in the illustrative embodiment, each circuit board guide 330 at a distal end of the corresponding elongate support arm 312 relative to the corresponding elongated support post 302 . 304 assembled. For clarity of the figures, not every circuit board guide 330 be referenced in each figure.

Jede Leiterplattenführung 330 weist eine Innenwand auf, die einen Leiterplattensteckplatz 380 definiert, der ausgelegt ist, um das baugruppenträgerlose Leiterplattensubstrat eines Schlittens 400 aufzunehmen, wenn der Schlitten 400 im entsprechenden Schlittensteckplatz 320 des Racks 240 aufgenommen ist. Zu diesem Zweck richtet ein Benutzer (oder Roboter), wie in 4 gezeigt, das baugruppenträgerlose Leiterplattensubstrat eines veranschaulichenden baugruppenträgerlosen Schlittens 400 auf einen Schlittensteckplatz 320 aus. Der Benutzer oder Roboter kann dann das baugruppenträgerlose Leiterplattensubstrat nach vorne in den Schlittensteckplatz 320 schieben, so dass jede Seitenkante 414 des baugruppenträgerlosen Leiterplattensubstrats in einem entsprechenden Leiterplattensteckplatz 380 der Leiterplattenführungen 330 des Paars 310 von länglichen Stützarmen 312 aufgenommen wird, die den entsprechenden Schlittensteckplatz 320 definieren, wie in 4 gezeigt. Durch das Vorhandensein robotisch zugreifbarer und robotisch manipulierbarer Schlitten, die disaggregierte Ressourcen umfassen, kann jeder Ressourcentyp unabhängig voneinander und mit seiner eigenen optimierten Aktualisierungsrate aktualisiert werden. Ferner sind die Schlitten so ausgelegt, dass sie blind mit Strom- und Datenkommunikationskabeln in jedem Rack 240 zusammenpassen, wodurch ihre Fähigkeit verbessert wird, schnell entfernt, aufgerüstet, neu installiert und/oder ersetzt zu werden. Somit kann das Datenzentrum 100 in einigen Ausführungsformen ohne menschliche Beteiligung im Datenzentrum arbeiten (z. B. Arbeitslasten ausführen, Wartung und/oder Upgrades durchführen usw.). In anderen Ausführungsformen kann ein Mensch eine oder mehrere Wartungs- oder Upgradeoperationen im Datenzentrum 100 ermöglichen. Each PCB guide 330 has an inner wall that has a PCB slot 380 defined to be the subrackless printed circuit board substrate of a carriage 400 to pick up when the sled 400 in the corresponding slide slot 320 of the rack 240 is included. For this purpose, a user (or robot), as in 4 1, the subrackless printed circuit board substrate of an illustrative subrackless carriage 400 on a sled slot 320 out. The user or robot can then move the subrackless circuit board substrate forward into the carriage slot 320 slide, leaving each side edge 414 the subrackless printed circuit substrate in a corresponding PCB slot 380 the PCB guides 330 of the couple 310 of elongated support arms 312 is recorded, the corresponding carriage slot 320 define how in 4 shown. With the availability of robotically accessible and robotic manipulable carriages that include disaggregated resources, each resource type can be independently updated at its own optimized refresh rate. Further, the carriages are designed to blind them with power and data communication cables in each rack 240 which improves their ability to be quickly removed, upgraded, reinstalled and / or replaced. Thus, the data center 100 in some embodiments, working without human involvement in the data center (e.g., performing workloads, performing maintenance and / or upgrades, etc.). In other embodiments, a human may perform one or more maintenance or upgrade operations in the data center 100 enable.

Es sollte beachtet werden, dass jede Leiterplattenführung 330 doppelseitig ist. Das heißt, jede Leiterplattenführung 330 umfasst eine Innenwand, die einen Leiterplattensteckplatz 380 auf jeder Seite der Leiterplattenführung 330 definiert. Auf diese Weise kann jede Leiterplattenführung 330 ein baugruppenträgerloses Leiterplattensubstrat auf jeder Seite tragen. Somit kann ein einzelner zusätzlicher länglicher Stützpfosten dem Rack 240 hinzugefügt werden, um das Rack 240 in eine Zwei-Rack-Lösung zu verwandeln, die doppelt so viele Schlittensteckplätze 320 wie in 3 gezeigt halten kann. Das veranschaulichende Rack 240 weist sieben Paare 310 von länglichen Stützarmen 312 auf, die entsprechende sieben Schlittensteckplätze 320 definieren, die jeweils ausgelegt sind, um einen entsprechenden Schlitten 400 aufzunehmen und zu tragen, wie oben erörtert. Natürlich kann das Rack 240 in anderen Ausführungsformen zusätzliche oder weniger Paare 310 von länglichen Stützarmen 312 (d. h. zusätzliche oder weniger Schlittensteckplätze 320) aufweisen. Es sollte beachtet werden, dass, da der Schlitten 400 baugruppenträgerlos ist, der Schlitten 400 eine Gesamthöhe aufweisen kann, die sich von typischen Servern unterscheidet. In einigen Ausführungsformen kann somit die Höhe jedes Schlittensteckplatzes 320 kürzer sein als die Höhe eines typischen Servers (z. B. kürzer als eine einzelne Rack-Einheit „1U“). Das heißt, der vertikale Abstand zwischen jedem Paar 310 von länglichen Stützarmen 312 kann kleiner sein als eine standardmäßige Rack-Einheit „1U“. Zusätzlich kann aufgrund der relativen Verringerung der Höhe der Schlittensteckplätze 320 die Gesamthöhe des Racks 240 in einigen Ausführungsformen kürzer sein als die Höhe von herkömmlichen Rack-Gehäusen. Beispielsweise kann in einigen Ausführungsformen jeder der länglichen Stützpfosten 302, 304 eine Länge von sechs Fuß oder weniger aufweisen. In anderen Ausführungsformen kann das Rack 240 wiederum unterschiedliche Abmessungen aufweisen. Ferner sollte beachtet werden, dass das Rack 240 keine Wände, Gehäuse oder dergleichen aufweist. Das Rack 240 ist vielmehr ein gehäuseloses Rack, das für die lokale Umgebung geöffnet ist. Natürlich kann in einigen Fällen eine Endplatte an einem der länglichen Stützpfosten 302, 304 in solchen Situationen angebracht sein, in denen das Rack 240 ein Reihenend-Rack im Datenzentrum 100 ausbildet.It should be noted that each PCB guide 330 is double-sided. That is, every circuit board guide 330 includes an inner wall that has a PCB slot 380 on each side of the PCB guide 330 Are defined. In this way, every circuit board guide 330 carry a subrackless PCB substrate on each side. Thus, a single additional elongated support post can be added to the rack 240 be added to the rack 240 Turn into a two-rack solution that has twice as much sled slots 320 as in 3 can show shown. The illustrative rack 240 has seven pairs 310 of elongated support arms 312 on, the corresponding seven sled slots 320 define, each designed to a corresponding slide 400 to pick up and carry, as discussed above. Of course, the rack can 240 in other embodiments, additional or fewer pairs 310 of elongated support arms 312 (ie additional or less sled slots 320 ) exhibit. It should be noted that, since the sled 400 subrack is the slide 400 can have a total height that is different from typical servers. Thus, in some embodiments, the height of each carriage slot 320 shorter than the height of a typical server (for example, shorter than a single rack unit "1U"). That is, the vertical distance between each pair 310 of elongated support arms 312 may be smaller than a standard rack unit "1U". Additionally, due to the relative reduction in the height of the carriage slots 320 the overall height of the rack 240 shorter in some embodiments than the height of conventional rack housings. For example, in some embodiments, each of the elongate support posts 302 . 304 have a length of six feet or less. In other embodiments, the rack 240 again have different dimensions. It should also be noted that the rack 240 has no walls, housing or the like. The rack 240 Rather, it's a rack-less rack that's open to the local environment. Of course, in some cases, an end plate may be attached to one of the elongate support posts 302 . 304 be appropriate in such situations where the rack 240 a row-end rack in the data center 100 formed.

In einigen Ausführungsformen können verschiedene Zwischenverbindungen durch die länglichen Stützpfosten 302, 304 nach oben oder nach unten geroutet werden. Um ein derartiges Routing zu ermöglichen, weist jeder längliche Stützpfosten 302, 304 eine Innenwand auf, die eine Innenkammer definiert, in der die Zwischenverbindung angeordnet sein kann. Die durch die länglichen Stützpfosten 302, 304 gerouteten Zwischenverbindungen können als ein beliebiger Typ von Zwischenverbindungen ausgeführt sein, einschließlich, aber nicht darauf beschränkt, Daten- oder Kommunikationszwischenverbindungen, um Kommunikationsverbindungen zu jedem Schlittensteckplatz 320 bereitzustellen, Stromzwischenverbindungen, um Strom zu jedem Schlittensteckplatz 320 bereitzustellen, und/oder anderer Typen von Zwischenverbindungen.In some embodiments, various interconnects may be through the elongated support posts 302 . 304 be routed up or down. To enable such routing, each has elongated support posts 302 . 304 an inner wall defining an inner chamber in which the interconnect may be disposed. The through the elongated support posts 302 . 304 routed interconnects may be embodied as any type of interconnect, including, but not limited to, data or communication interconnects to communication links to each carriage slot 320 provide power interconnections to power to each slide slot 320 and / or other types of interconnects.

Das Rack 240 weist in der veranschaulichenden Ausführungsform eine Stützplattform auf, auf der ein entsprechender optischer Datenverbinder (nicht gezeigt) montiert ist. Jeder optische Datenverbinder ist mit einem entsprechenden Schlittensteckplatz 320 assoziiert und ist so ausgelegt, dass er mit einem optischen Datenverbinder eines entsprechenden Schlittens 400 zusammenpasst, wenn der Schlitten 400 im entsprechenden Schlittensteckplatz 320 aufgenommen wird. In einigen Ausführungsformen werden optische Verbindungen zwischen Komponenten (z. B. Schlitten, Racks und Switches) im Datenzentrum 100 mit einer optischen Blindsteckverbindung hergestellt. Beispielsweise kann eine Tür an jedem Kabel verhindern, dass Staub die Faser innerhalb des Kabels verunreinigt. Während des Prozesses des Verbindens mit einem optischen Blindsteckverbindungsmechanismus wird die Tür geöffnet, wenn das Ende des Kabels in den Verbindermechanismus eintritt. Anschließend tritt die optische Faser innerhalb des Kabels in ein Gel innerhalb des Verbindermechanismus ein und die optische Faser eines Kabels kommt in Kontakt mit der optischen Faser eines anderen Kabels innerhalb des Gels innerhalb des Verbindermechanismus.The rack 240 In the illustrative embodiment, has a support platform on which a corresponding optical data connector (not shown) is mounted. Each optical data connector is with a corresponding carriage slot 320 and is designed to work with an optical data connector of a corresponding carriage 400 Fits when the carriage 400 in the corresponding slide slot 320 is recorded. In some embodiments, optical connections between components (e.g., carriages, racks, and switches) in the data center 100 made with a dummy optical connector. For example, a door on each cable can prevent dust from entering the fiber inside the cable contaminated. During the process of connecting to a dummy optical connector mechanism, the door is opened when the end of the cable enters the connector mechanism. Subsequently, the optical fiber within the cable enters a gel within the connector mechanism and the optical fiber of one cable comes into contact with the optical fiber of another cable within the gel within the connector mechanism.

Das veranschaulichende Rack 240 weist auch eine Lüfteranordnung 370 auf, die mit den Querstützarmen des Racks 240 gekoppelt ist. Die Lüfteranordnung 370 weist eine oder mehrere Reihen von Kühllüftern 372 auf, die in einer horizontalen Linie zwischen den länglichen Stützpfosten 302, 304 ausgerichtet sind. In der veranschaulichenden Ausführungsform weist die Lüfteranordnung 370 eine Reihe von Kühllüftern 372 für jeden Schlittensteckplatz 320 des Racks 240 auf. Wie oben erörtert, weist nicht jeder Schlitten 400 in der veranschaulichenden Ausführungsform ein On-Board-Kühlsystem auf und somit stellt die Lüfteranordnung 370 eine Kühlung für jeden im Rack 240 aufgenommenen Schlitten 400 bereit. Jedes Rack 240 weist in der veranschaulichenden Ausführungsform auch eine Stromversorgung auf, die mit jedem Schlittensteckplatz 320 assoziiert ist. Jede Stromversorgung ist an einem der länglichen Stützarme 312 des Paars 310 von länglichen Stützarmen 312 befestigt, die den entsprechenden Schlittensteckplatz 320 definieren. Beispielsweise kann das Rack 240 eine Stromversorgung aufweisen, die mit jedem länglichen Stützarm 312 gekoppelt oder daran befestigt ist, der sich vom länglichen Stützpfosten 302 erstreckt. Jede Stromversorgung weist einen Stromverbinder auf, der so ausgelegt ist, dass er mit einem Stromverbinder des Schlittens 400 zusammenpasst, wenn der Schlitten 400 im entsprechenden Schlittensteckplatz 320 aufgenommen ist. In der veranschaulichenden Ausführungsform weist der Schlitten 400 keine On-Board-Stromversorgung auf und somit versorgen die im Rack 240 bereitgestellten Stromversorgungen die entsprechenden Schlitten 400 mit Strom, wenn sie am Rack 240 montiert sind.The illustrative rack 240 also has a fan assembly 370 on top of that with the cross support arms of the rack 240 is coupled. The fan arrangement 370 has one or more rows of cooling fans 372 in a horizontal line between the elongated support posts 302 . 304 are aligned. In the illustrative embodiment, the fan assembly 370 a series of cooling fans 372 for each sled slot 320 of the rack 240 on. As discussed above, not everyone has a sled 400 in the illustrative embodiment, an on-board cooling system and thus provides the fan assembly 370 One cooling for everyone in the rack 240 recorded slide 400 ready. Every rack 240 In the illustrative embodiment, also includes a power supply connected to each carriage slot 320 is associated. Each power supply is on one of the elongated support arms 312 of the couple 310 of elongated support arms 312 attached to the corresponding carriage slot 320 define. For example, the rack 240 Have a power supply with each elongated support arm 312 coupled or attached to, extending from the elongated support post 302 extends. Each power supply has a power connector designed to mate with a power connector of the carriage 400 Fits when the carriage 400 in the corresponding slide slot 320 is included. In the illustrative embodiment, the carriage 400 no on-board power supply and thus supply those in the rack 240 provided power supplies the corresponding sledges 400 with power when on the rack 240 are mounted.

Unter Bezugnahme auf 6 ist der Schlitten 400 in der veranschaulichenden Ausführungsform so ausgelegt, dass er in einem entsprechenden Rack 240 des Datenzentrums 100 montiert ist, wie oben erörtert. In einigen Ausführungsformen kann jeder Schlitten 400 optimiert oder auf andere Weise ausgelegt sein, um bestimmte Aufgaben durchzuführen, wie beispielsweise Rechenaufgaben, Beschleunigungsaufgaben, Datenspeicheraufgaben usw. Beispielsweise kann der Schlitten 400 als ein Rechenschlitten 800, wie nachstehend unter Bezugnahme auf 8-9 erörtert, als ein Beschleunigerschlitten 1000, wie nachstehend unter Bezugnahme auf 10-11 erörtert, als ein Speichereinrichtungsschlitten 1200, wie nachstehend unter Bezugnahme auf 12-13 erörtert, oder als ein Schlitten, der optimiert oder auf andere Weise ausgelegt ist, um andere spezialisierte Aufgaben durchzuführen, wie beispielsweise ein Speicherschlitten 1400, wie nachstehend unter Bezugnahme auf 14 erörtert, ausgeführt sein.With reference to 6 is the sled 400 in the illustrative embodiment designed to be in a corresponding rack 240 of the data center 100 mounted as discussed above. In some embodiments, each carriage may 400 be optimized or otherwise designed to perform certain tasks, such as computational tasks, acceleration tasks, data storage tasks, etc. For example, the carriage 400 as a calculating slide 800 as described below with reference to 8-9 discussed as an accelerator sled 1000 as described below with reference to 10-11 discussed as a storage device sled 1200 as described below with reference to 12-13 discussed, or as a sled that is optimized or otherwise designed to perform other specialized tasks, such as a storage sled 1400 as described below with reference to 14 be discussed, executed.

Wie oben erörtert, weist der veranschaulichende Schlitten 400 ein baugruppenträgerloses Leiterplattensubstrat 602 auf, das verschiedene darauf montierte physikalische Ressourcen (z. B. elektrische Komponenten) trägt. Es sollte beachtet werden, dass das Leiterplattensubstrat 602 „baugruppenträgerlos“ insofern ist, dass der Schlitten 400 keine Einschließung oder kein Gehäuse aufweist. Vielmehr ist das baugruppenträgerlose Leiterplattensubstrat 602 zur lokalen Umgebung offen. Das baugruppenträgerlose Leiterplattensubstrat 602 kann aus einem beliebigen Material ausgebildet sein, das die verschiedenen darauf montierten elektrischen Komponenten tragen kann. Beispielsweise ist das baugruppenträgerlose Leiterplattensubstrat 602 in einer veranschaulichenden Ausführungsform aus einem glasverstärkten FR-4-Epoxidlaminatmaterial ausgebildet. Natürlich können andere Materialien verwendet werden, um das baugruppenträgerlose Leiterplattensubstrat 602 in anderen Ausführungsformen auszubilden.As discussed above, the illustrative carriage 400 a subrackless printed circuit board substrate 602 carrying various physical resources (eg, electrical components) mounted thereon. It should be noted that the PCB substrate 602 "Subrackless" insofar is that the slide 400 has no enclosure or housing. Rather, the subrackless printed circuit board substrate 602 open to the local area. The subrackless printed circuit board substrate 602 may be formed of any material that can support the various electrical components mounted thereon. For example, the subrackless printed circuit substrate is 602 formed in an illustrative embodiment of a glass-reinforced FR-4-Epoxidlaminatmaterial. Of course, other materials may be used to support the subrackless circuit substrate 602 in other embodiments.

Wie nachstehend detaillierter erörtert, weist das baugruppenträgerlose Leiterplattensubstrat 602 mehrere Merkmale auf, die die thermischen Kühleigenschaften der verschiedenen elektrischen Komponenten verbessern, die auf dem baugruppenträgerlosen Leiterplattensubstrat 602 montiert sind. Wie erörtert, weist das baugruppenträgerlose Leiterplattensubstrat 602 keine Einschließung oder kein Gehäuse auf, das den Luftstrom über die elektrischen Komponenten des Schlittens 400 verbessern kann, indem jene Strukturen reduziert werden, die den Luftstrom hemmen können. Da das baugruppenträgerlose Leiterplattensubstrat 602 beispielsweise nicht in einer einzelnen Einschließung oder einem einzelnen Gehäuse angeordnet ist, gibt es keine Rückwandplatine (z. B. eine Rückplatte des Baugruppenträgers) zum baugruppenträgerlosen Leiterplattensubstrat 602, das den Luftstrom über die elektrischen Komponenten hemmen könnte. Zusätzlich weist das baugruppenträgerlose Leiterplattensubstrat 602 eine geometrische Form auf, die ausgelegt ist, um die Länge des Luftstrompfads über die elektrischen Komponenten, die am baugruppenträgerlosen Leiterplattensubstrat 602 montiert sind, zu reduzieren. Beispielsweise weist das veranschaulichende baugruppenträgerlose Leiterplattensubstrat 602 eine Breite 604 auf, die größer als eine Tiefe 606 des baugruppenträgerlosen Leiterplattensubstrats 602 ist. In einer bestimmten Ausführungsform weist das baugruppenträgerlose Leiterplattensubstrat 602 beispielsweise eine Breite von etwa 21 Zoll und eine Tiefe von etwa 9 Zoll auf, verglichen mit einem typischen Server, der eine Breite von etwa 17 Zoll und eine Tiefe von etwa 39 Zoll aufweist. Somit weist ein Luftstrompfad 608, der sich von einer Vorderkante 610 des baugruppenträgerlosen Leiterplattensubstrats 602 zu einer Hinterkante 612 erstreckt, relativ zu typischen Servern einen kürzeren Abstand auf, was die thermischen Kühleigenschaften des Schlittens 400 verbessern kann. Ferner sind, obwohl in 6 nicht veranschaulicht, die verschiedenen physikalischen Ressourcen, die am baugruppenträgerlosen Leiterplattensubstrat 602 montiert sind, an entsprechenden Stellen montiert, so dass sich zwei im Wesentlichen wärmeerzeugende elektrische Komponenten nicht gegenseitig abschatten, wie nachstehend detaillierter erörtert. Das heißt, keine zwei elektrischen Komponenten, die während des Betriebs nennenswerte Wärme (d. h. größer als eine Nennwärme, die ausreichend ist, um die Kühlung einer anderen elektrischen Komponente nachteilig zu beeinflussen) erzeugen, sind am baugruppenträgerlosen Leiterplattensubstrat 602 entlang der Richtung des Luftstrompfads 608 linear inline zueinander montiert (d. h. entlang einer Richtung, die sich von der Vorderkante 610 zur Hinterkante 612 des baugruppenträgerlosen Leiterplattensubstrats 602 erstreckt).As discussed in more detail below, the subrackless printed circuit board substrate 602 several features that improve the thermal cooling properties of the various electrical components on the subrackless PCB substrate 602 are mounted. As discussed, the subrackless printed circuit board substrate has 602 no enclosure or enclosure on which the airflow over the electrical components of the carriage 400 can improve by reducing those structures that can inhibit airflow. Since the subrackless printed circuit board substrate 602 For example, if it is not located in a single enclosure or a single enclosure, there is no backplane (eg, a backplane of the chassis) to the subrackless circuit board substrate 602 that could inhibit the flow of air through the electrical components. In addition, the subrackless printed circuit board substrate has 602 a geometric shape, which is designed to the length of the air flow path via the electrical components, on the subrackless printed circuit board substrate 602 are mounted, reduce. For example, the illustrative subrackless printed circuit board substrate 602 a width 604 on, which is greater than a depth 606 of the subrackless printed circuit board substrate 602 is. In a specific embodiment, the subrackless printed circuit board substrate 602 for example one Width of about 21 inches and a depth of about 9 inches, compared to a typical server having a width of about 17 inches and a depth of about 39 inches. Thus, an air flow path 608 that is from a leading edge 610 of the subrackless printed circuit board substrate 602 to a trailing edge 612 extends a shorter distance relative to typical servers, which enhances the thermal cooling characteristics of the carriage 400 can improve. Furthermore, although in 6 does not illustrate the various physical resources on the subrackless PCB substrate 602 mounted, so that two substantially heat-generating electrical components do not shadow each other, as discussed in more detail below. That is, no two electrical components that produce significant heat during operation (ie, greater than a rated heat sufficient to adversely affect the cooling of another electrical component) are on the subrackless circuit substrate 602 along the direction of the air flow path 608 mounted linearly inline to each other (ie along a direction extending from the leading edge 610 to the trailing edge 612 of the subrackless printed circuit board substrate 602 extends).

Wie oben erörtert, weist der veranschaulichende Schlitten 400 eine oder mehrere physikalische Ressourcen 620 auf, die an einer Oberseite 650 des baugruppenträgerlosen Leiterplattensubstrats 602 montiert sind. Obwohl zwei physikalische Ressourcen 620 in 6 gezeigt sind, sollte es beachtet werden, dass der Schlitten 400 in anderen Ausführungsformen eine, zwei oder mehr physikalische Ressourcen 620 aufweisen kann. Die physikalischen Ressourcen 620 können als ein beliebiger Typ von Prozessor, Controller oder einer anderen Rechenschaltung ausgeführt sein, die in der Lage ist, verschiedene Aufgaben wie Rechenfunktionen und/oder Steuern der Funktionen des Schlittens 400 abhängig von beispielsweise dem Typ oder beabsichtigten Funktionalität des Schlittens 400 durchzuführen. Beispielsweise können die physikalischen Ressourcen 620, wie nachstehend detaillierter erörtert, als Hochleistungsprozessoren in Ausführungsformen, in denen der Schlitten 400 als ein Rechenschlitten ausgeführt ist, als Beschleunigerkoprozessoren oder -schaltungen in Ausführungsformen, in denen der Schlitten 400 als ein Beschleunigerschlitten ausgeführt ist, als Speichereinrichtungscontroller in Ausführungsformen, in denen der Schlitten 400 als ein Speichereinrichtungsschlitten ausgeführt ist, oder als ein Satz von Speichervorrichtungen in Ausführungsformen, in denen der Schlitten 400 als ein Speicherschlitten ausgeführt ist, ausgeführt sein.As discussed above, the illustrative carriage 400 one or more physical resources 620 on that at a top 650 of the subrackless printed circuit board substrate 602 are mounted. Although two physical resources 620 in 6 It should be noted that the sled 400 in other embodiments, one, two or more physical resources 620 can have. The physical resources 620 may be embodied as any type of processor, controller, or other arithmetic circuit capable of performing various tasks such as calculating functions and / or controlling the functions of the carriage 400 depending on, for example, the type or intended functionality of the carriage 400 perform. For example, the physical resources 620 as discussed in more detail below as high performance processors in embodiments in which the carriage 400 as a computing slide, as accelerator coprocessors or circuits in embodiments in which the carriage 400 as an accelerator carriage, as a storage device controller in embodiments in which the carriage 400 as a storage device carriage, or as a set of storage devices in embodiments in which the carriage is embodied 400 be executed as a storage carriage, executed.

Der Schlitten 400 weist auch eine oder mehrere zusätzliche physikalische Ressourcen 630 auf, die an der Oberseite 650 des baugruppenträgerlosen Leiterplattensubstrats 602 montiert sind. In der veranschaulichenden Ausführungsform weisen die zusätzlichen physikalischen Ressourcen einen Netzschnittstellencontroller (NIC, Network Interface Controller) auf, wie nachstehend detaillierter erörtert. Natürlich können die physikalischen Ressourcen 630 abhängig vom Typ und von der Funktionalität des Schlittens 400 zusätzliche oder andere elektrische Komponenten, Schaltungen und/oder Vorrichtungen in anderen Ausführungsformen aufweisen.The sled 400 also has one or more additional physical resources 630 on top of that 650 of the subrackless printed circuit board substrate 602 are mounted. In the illustrative embodiment, the additional physical resources comprise a network interface controller (NIC), as discussed in greater detail below. Of course, the physical resources 630 depending on the type and functionality of the sled 400 additional or other electrical components, circuits and / or devices in other embodiments.

Die physikalischen Ressourcen 620 sind über ein Eingabe/Ausgabe(E/A)-Untersystem 622 kommunikativ mit den physikalischen Ressourcen 630 gekoppelt. Das E/A-Untersystem 622 kann als Schaltungen und/oder Komponenten ausgeführt sein, um Eingabe/Ausgabe-Operationen mit den physikalischen Ressourcen 620, den physikalischen Ressourcen 630 und/oder anderen Komponenten des Schlittens 400 zu ermöglichen. Beispielsweise kann das E/A-Untersystem 622 als Speichercontroller-Hubs, Eingabe/Ausgabe-Steuerungs-Hubs, integrierte Sensor-Hubs, Firmwarevorrichtungen, Kommunikationsverbindungen (z. B. Punkt-zu-Punkt-Verbindungen, Busverbindungen, Drähte, Kabel, Lichtleiter, Leiterbahnen von gedruckten Leiterplatten usw.) und/oder andere Komponenten und Untersysteme ausgeführt sein oder diese anderweitig aufweisen, um die Eingabe/Ausgabe-Operationen zu ermöglichen. In der veranschaulichenden Ausführungsform ist das E/A-Untersystem 622 als ein Datenbus mit doppelter Datenrate 4 (DDR4) oder als ein DDR5-Datenbus ausgeführt oder weist diesen anderweitig auf.The physical resources 620 are communicative with the physical resources via an input / output (I / O) subsystem 622 630 coupled. The I / O subsystem 622 may be implemented as circuits and / or components to perform input / output operations on the physical resources 620 , the physical resources 630 and / or other components of the carriage 400 to enable. For example, the I / O subsystem 622 as memory controller hubs, input / output control hubs, integrated sensor hubs, firmware devices, communication links (e.g., point-to-point links, bus links, wires, cables, optical fibers, printed circuit board traces, etc.) and or other components and subsystems, or otherwise having these to facilitate the input / output operations. In the illustrative embodiment, the I / O subsystem is 622 as a data bus at twice the data rate 4 (DDR4) or as a DDR5 data bus or otherwise.

In einigen Ausführungsformen kann der Schlitten 400 auch eine Ressource-zu-Ressource-Zwischenverbindung 624 aufweisen. Die Ressource-zu-Ressource-Zwischenverbindung 624 kann als ein beliebiger Typ von Kommunikationszwischenverbindung ausgeführt sein, die in der Lage ist, Ressource-zu-Ressource-Kommunikationen zu ermöglichen. In der veranschaulichenden Ausführungsform ist die Ressource-zu-Ressource-Zwischenverbindung 624 als eine Hochgeschwindigkeits-Punkt-zu-Punkt-Zwischenverbindung (z. B. schneller als das E/A-Untersystem 622) ausgeführt. Beispielsweise kann die Ressource-zu-Ressource-Zwischenverbindung 624 als eine QuickPath-Zwischenverbindung (QPI, QuickPath Interconnect), eine UltraPath-Zwischenverbindung (UPI, UltraPath Interconnect) oder eine andere Hochgeschwindigkeits-Punkt-zu-Punkt-Zwischenverbindung ausgeführt sein, die für Ressource-zu-Ressource-Kommunikationen dediziert ist.In some embodiments, the carriage may 400 also a resource-to-resource interconnect 624 exhibit. The resource-to-resource interconnect 624 may be implemented as any type of communication interconnect capable of facilitating resource-to-resource communications. In the illustrative embodiment, the resource-to-resource interconnect is 624 as a high-speed point-to-point interconnect (e.g., faster than the I / O subsystem 622 ). For example, the resource-to-resource interconnect 624 as a QuickPath Interconnect (QPI), an UltraPath Interconnect (UPI, UltraPath Interconnect) or other high-speed point-to-point interconnect dedicated to resource-to-resource communications.

Der Schlitten 400 weist auch einen Stromverbinder 640 auf, der so ausgelegt ist, dass er mit einem entsprechenden Stromverbinder des Racks 240 zusammenpasst, wenn der Schlitten 400 im entsprechenden Rack 240 montiert ist. Der Schlitten 400 empfängt Strom von einer Stromversorgung des Racks 240 über den Stromverbinder 640, um die verschiedenen elektrischen Komponenten des Schlittens 400 mit Strom zu versorgen. Das heißt, der Schlitten 400 weist keine lokale Stromversorgung (d. h. On-Board-Stromversorgung) auf, um die elektrischen Komponenten des Schlittens 400 mit Strom zu versorgen. Der Ausschluss einer lokalen oder On-Board-Stromversorgung ermöglicht die Reduzierung der Gesamtgrundfläche des baugruppenträgerlosen Leiterplattensubstrats 602, was die thermischen Kühleigenschaften der verschiedenen elektrischen Komponenten erhöhen kann, die am baugruppenträgerlosen Leiterplattensubstrat 602 montiert sind, wie oben erörtert. In einigen Ausführungsformen wird Strom über Vias direkt unter den Prozessoren 820 an die Prozessoren 820 bereitgestellt (z. B. durch die Unterseite 750 des baugruppenträgerlosen Leiterplattensubstrats 602), wodurch ein erhöhtes Wärmebudget, zusätzlicher Strom und/oder zusätzliche Spannung und eine bessere Spannungssteuerung im Vergleich zu typischen Platinen bereitgestellt werden.The sled 400 also has a power connector 640 on, which is designed to be connected to a corresponding power connector of the rack 240 Fits when the carriage 400 in the corresponding rack 240 is mounted. The sled 400 receives power from a rack power supply 240 over the power connector 640 to the various electrical components of the carriage 400 to supply electricity. That is, the sled 400 has no local power supply (ie on-board power supply) to the electrical components of the carriage 400 to supply electricity. The exclusion of a local or on-board power supply allows the reduction of the total footprint of the subrackless PCB substrate 602 , which can increase the thermal cooling properties of the various electrical components on the subrackless printed circuit board substrate 602 are mounted as discussed above. In some embodiments, power over vias is directly under the processors 820 to the processors 820 provided (eg by the bottom 750 of the subrackless printed circuit board substrate 602 ), providing an increased thermal budget, additional current and / or voltage, and better voltage control compared to typical boards.

In einigen Ausführungsformen kann der Schlitten 400 auch Montagemerkmale 642 aufweisen, die so ausgelegt sind, dass sie mit einem Montagearm oder einer anderen Struktur eines Roboters zusammenpassen, um die Anordnung des Schlittens 600 in einem Rack 240 durch den Roboter zu ermöglichen. Die Montagemerkmale 642 können als ein beliebiger Typ von physikalischen Strukturen ausgeführt sein, die es dem Roboter ermöglichen, den Schlitten 400 zu greifen, ohne das baugruppenträgerlose Leiterplattensubstrat 602 oder die daran montierten elektrischen Komponenten zu beschädigen. Beispielsweise können die Montagemerkmale 642 in einigen Ausführungsformen als nicht-leitfähige Pads ausgeführt sein, die am baugruppenträgerlosen Leiterplattensubstrat 602 angebracht sind. In anderen Ausführungsformen können die Montagemerkmale als Halterungen, Klammern oder andere ähnliche Strukturen ausgeführt sein, die am baugruppenträgerlosen Leiterplattensubstrat 602 angebracht sind. Die bestimmte Anzahl, Form, Größe und/oder Zusammensetzung des Montagemerkmals 642 kann vom Design des Roboters abhängen, der ausgelegt ist, um den Schlitten 400 zu verwalten.In some embodiments, the carriage may 400 also assembly features 642 , which are adapted to mate with a mounting arm or other structure of a robot to the arrangement of the carriage 600 in a rack 240 to enable through the robot. The mounting features 642 can be embodied as any type of physical structures that enable the robot, the slide 400 to grab, without the subrackless PCB substrate 602 or to damage the electrical components mounted on it. For example, the mounting features 642 in some embodiments, may be implemented as non-conductive pads attached to the subrackless printed circuit board substrate 602 are attached. In other embodiments, the mounting features may be implemented as brackets, brackets, or other similar structures that may be present on the subrackless circuit board substrate 602 are attached. The specific number, shape, size and / or composition of the assembly feature 642 may depend on the design of the robot, which is designed for the carriage 400 manage.

Unter Bezugnahme auf 7 weist der Schlitten 400 zusätzlich zu den physikalischen Ressourcen 630, die auf der Oberseite 650 des baugruppenträgerlosen Leiterplattensubstrats 602 montiert sind, auch eine oder mehrere Speichervorrichtungen 720 auf, die an einer Unterseite 750 des baugruppenträgerlosen Leiterplattensubstrats 602 montiert sind. Das heißt, das baugruppenträgerlose Leiterplattensubstrat 602 ist als doppelseitige Leiterplatte ausgeführt. Die physikalischen Ressourcen 620 sind kommunikativ über das E/A-Untersystem 622 mit den Speichervorrichtungen 720 gekoppelt. Beispielsweise können die physikalischen Ressourcen 620 und die Speichervorrichtungen 720 kommunikativ durch ein oder mehrere Vias gekoppelt sein, die sich durch das baugruppenträgerlose Leiterplattensubstrat 602 erstrecken. In einigen Ausführungsformen kann jede physikalische Ressource 620 kommunikativ mit einem anderen Satz von einer oder mehreren Speichervorrichtungen 720 gekoppelt sein. Alternativ kann jede physikalische Ressource 620 in anderen Ausführungsformen kommunikativ mit jeder Speichervorrichtung 720 gekoppelt sein.With reference to 7 shows the sled 400 in addition to the physical resources 630 that on the top 650 of the subrackless printed circuit board substrate 602 are mounted, also one or more storage devices 720 on that at a bottom 750 of the subrackless printed circuit board substrate 602 are mounted. That is, the subrackless printed circuit board substrate 602 is designed as a double-sided circuit board. The physical resources 620 are communicative via the I / O subsystem 622 with the storage devices 720 coupled. For example, the physical resources 620 and the storage devices 720 communicatively coupled by one or more vias extending through the subrackless printed circuit board substrate 602 extend. In some embodiments, each physical resource 620 communicatively with another set of one or more storage devices 720 be coupled. Alternatively, any physical resource 620 in other embodiments, communicatively with each storage device 720 be coupled.

Die Speichervorrichtungen 720 können als beliebiger Typ von Speichervorrichtung ausgeführt sein, die Daten für die physikalischen Ressourcen 620 während des Betriebs des Schlittens 400 speichern kann, wie beispielsweise ein beliebiger Typ von flüchtigem (z. B. dynamischer Direktzugriffsspeicher (DRAM, Dynamic Random Access Memory) usw.) oder nicht-flüchtigem Speicher. Ein flüchtiger Speicher kann ein Speichermedium sein, das Strom benötigt, um den Zustand von Daten aufrechtzuerhalten, die vom Medium gespeichert werden. Nicht einschränkende Beispiele für flüchtigen Speicher können verschiedene Typen von Direktzugriffsspeicher (RAM, Random Access Memory) umfassen, wie beispielsweise dynamischen Direktzugriffsspeicher (DRAM, Dynamic Random Access Memory) oder statischen Direktzugriffsspeicher (SRAM, Static Random Access Memory). Ein bestimmter Typ von DRAM, der in einem Speichermodul verwendet werden kann, ist synchroner dynamischer Direktzugriffsspeicher (SDRAM, Synchronous Dynamic Random Access Memory). In bestimmten Ausführungsformen kann DRAM einer Speicherkomponente einem von der JEDEC veröffentlichten Standard entsprechen, wie beispielsweise JESD79F für DDR-SDRAM, JESD79-2F für DDR2-SDRAM, JESD79-3F für DDR3-SDRAM, JESD79-4A für DDR4-SDRAM, JESD209 für Low-Power-DDR (LPDDR), JESD209-2 für LPDDR2, JESD209-3 für LPDDR3 und JESD209-4 für LPDDR4 (diese Standards sind unter www.jedec.org verfügbar). Derartige Standards (und ähnliche Standards) können als DDR-basierte Standards bezeichnet werden, und Kommunikationsschnittstellen der Speichereinrichtungen, die derartige Standards implementieren, können als DDR-basierte Schnittstellen bezeichnet werden.The storage devices 720 can be implemented as any type of storage device, the data for the physical resources 620 during operation of the carriage 400 such as any type of volatile (eg dynamic random access memory (DRAM), etc.) or non-volatile memory. A volatile memory may be a storage medium that requires power to maintain the state of data being stored by the medium. Non-limiting examples of volatile memory may include various types of Random Access Memory (RAM), such as dynamic random access memory (DRAM) or static random access memory (SRAM). One particular type of DRAM that may be used in a memory module is synchronous dynamic random access memory (SDRAM). In certain embodiments, DRAM of a memory component may conform to a standard published by the JEDEC, such as JESD79F for DDR SDRAM, JESD79-2F for DDR2 SDRAM, JESD79-3F for DDR3 SDRAM, JESD79-4A for DDR4 SDRAM, JESD209 for Low Power DDR (LPDDR), JESD209-2 for LPDDR2, JESD209-3 for LPDDR3 and JESD209-4 for LPDDR4 (these standards are available at www.jedec.org). Such standards (and similar standards) may be referred to as DDR-based standards, and communication interfaces of the memory devices implementing such standards may be referred to as DDR-based interfaces.

In einer Ausführungsform ist die Speichervorrichtung eine blockadressierbare Speichervorrichtung, wie beispielsweise solche, die auf NAND- oder NOR-Technologien basieren. Eine Speichervorrichtung kann auch nicht-flüchtige Vorrichtungen der nächsten Generation aufweisen, wie beispielsweise Intel 3D XPoint™ Speicher oder andere byteadressierbare nicht-flüchtige Write-in-Place-Speichervorrichtungen. In einer Ausführungsform kann die Speichervorrichtung Speichervorrichtungen, die Chalkogenidglas verwenden, NAND-Flash-Speicher mit mehreren Schwellenwerten, NOR-Flash-Speicher, Single- oder Multi-Level-Phasenwechselspeicher (PCM, Phase Change Memory), ein Widerstandsspeicher, Nanodrahtspeicher, ferroelektrischer Transistor-Direktzugriffsspeicher (FeTRAM, Ferroelectric Transistor Random Access Memory), anti-ferroelektrischer Speicher, magnetoresistiver Direktzugriffsspeicher (MRAM, Magnetoresistive Random Access Memory), der Memristor-Technologie integriert, Widerstandsspeicher, einschließlich der Metalloxidbasis, der Sauerstoffvakanzbasis und des Brückenleiter-Direktzugriffsspeichers (CB-RAM, Conductive Bridge Random Access Memory), oder Spin-Transfer-Torque(STT)-MRAM, eine Spintronikmagnetübergangsspeicher-basierte Vorrichtung, eine Magnettunnelübergang(MTJ, Magnetic Tunneling Junction)-basierte Vorrichtung, eine Domain-Wall(DW)- und Spin-Orbit-Transfer(SOT)-basierte Vorrichtung, eine Thyristor-basierte Speichervorrichtung oder eine Kombination aus beliebigen der obigen oder ein anderer Speicher sein oder diese aufweisen. Die Speichervorrichtung kann sich auf den Die selbst und/oder auf ein Speicherprodukt in einem Package beziehen. In einigen Ausführungsformen kann die Speichervorrichtung eine transistorlose stapelbare Kreuzpunktarchitektur umfassen, bei der Speicherzellen am Schnittpunkt von Wortleitungen und Bitleitungen sitzen und individuell adressierbar sind und bei der die Bitspeicherung auf einer Änderung des Bulk-Widerstands basiert.In one embodiment, the memory device is a block addressable memory device, such as those based on NAND or NOR technologies. A memory device may also include next generation non-volatile devices such as Intel 3D XPoint ™ memory or other byte addressable non-volatile write-in-place memory devices. In one embodiment The memory device may include memory devices using chalcogenide glass, multi-threshold NAND flash memory, NOR flash memory, single or multi-level phase change memory (PCM), a resistive memory, nanowire memory, ferroelectric transistor random access memory (US Pat. FeTRAM, ferroelectric transistor random access memory), anti-ferroelectric memory, magnetoresistive random access memory (MRAM) incorporating memristor technology, resistive memory, including metal oxide base, oxygen vacancy base, and bridge-conductor random access memory (CB-RAM, Conductive Bridge Random Access Memory), or Spin-Transfer-Torque (STT) MRAM, a Spintronic Magnetic Transfer Memory-based device, a Magnetic Tunneling Junction (MTJ) -based device, a Domain Wall (DW), and Spin Orbit Transfer (SOT) -based device, a thyristor-based Memory device or a combination of any of the above or another memory or have. The storage device may refer to the die itself and / or to a storage product in a package. In some embodiments, the memory device may include a transistorless stackable crosspoint architecture in which memory cells are located at the intersection of word lines and bit lines and are individually addressable, and wherein bit storage is based on a change in bulk resistance.

Unter Bezugnahme auf 8 kann der Schlitten 400 in einigen Ausführungsformen als ein Rechenschlitten 800 ausgeführt sein. Der Rechenschlitten 800 ist optimiert oder anderweitig ausgelegt, um Rechenaufgaben durchzuführen. Wie oben erörtert, kann sich der Rechenschlitten 800 natürlich auch auf andere Schlitten stützen, wie beispielsweise Beschleunigungsschlitten und/oder Speichereinrichtungsschlitten, um derartige Rechenaufgaben durchzuführen. Der Rechenschlitten 800 weist verschiedene physikalische Ressourcen (z. B. elektrische Komponenten) ähnlich den physikalischen Ressourcen des Schlittens 400 auf, die in 8 unter Verwendung der gleichen Bezugszeichen identifiziert wurden. Die Beschreibung derartiger Komponenten, die oben in Bezug auf 6 und 7 bereitgestellt wurde, gilt für die entsprechenden Komponenten des Rechenschlittens 800 und wird hierin zur Klarheit der Beschreibung des Rechenschlittens 800 nicht wiederholt.With reference to 8th can the sled 400 in some embodiments as a calculation slide 800 be executed. The calculating slide 800 is optimized or otherwise designed to perform computational tasks. As discussed above, the calculation slide can 800 Of course, it also relies on other carriages, such as acceleration slides and / or storage sled, to perform such computational tasks. The calculating slide 800 has various physical resources (eg, electrical components) similar to the physical resources of the carriage 400 on that in 8th were identified using the same reference numerals. The description of such components as described above with respect to 6 and 7 has been provided, applies to the corresponding computational slide components 800 and is herein for clarity of description of the calculation slide 800 not repeated.

Im veranschaulichenden Rechenschlitten 800 sind die physikalischen Ressourcen 620 als Prozessoren 820 ausgeführt. Obwohl nur zwei Prozessoren 820 in 8 gezeigt sind, sollte beachtet werden, dass der Rechenschlitten 800 in anderen Ausführungsformen zusätzliche Prozessoren 820 aufweisen kann. Veranschaulichend sind die Prozessoren 820 als Hochleistungsprozessoren 820 ausgeführt und können ausgelegt sein, um bei einer relativ hohen Nennleistung zu arbeiten. Obwohl die Prozessoren 820 beim Betrieb bei Nennleistungen, die größer sind als die von typischen Prozessoren (die bei etwa 155-230 W arbeiten), zusätzliche Wärme erzeugen, ermöglichen die verbesserten thermischen Kühleigenschaften des oben erörterten baugruppenträgerlosen Leiterplattensubstrats 602 den Betrieb mit höherer Leistung. Beispielsweise sind die Prozessoren 820 in der veranschaulichenden Ausführungsform ausgelegt, um bei einer Nennleistung von mindestens 250 W zu arbeiten. In einigen Ausführungsformen können die Prozessoren 820 ausgelegt sein, um bei einer Nennleistung von mindestens 350 W zu arbeiten.In the illustrative calculating slide 800 are the physical resources 620 as processors 820 executed. Although only two processors 820 in 8th should be noted that the calculation slide 800 in other embodiments additional processors 820 can have. Illustrative are the processors 820 as high performance processors 820 and can be designed to operate at a relatively high rating. Although the processors 820 Operating at rated powers greater than that of typical processors (operating at about 155-230W) will provide additional heat, enabling the improved thermal cooling characteristics of the sub-rackless printed circuit board substrate discussed above 602 the operation with higher performance. For example, the processors 820 in the illustrative embodiment to operate at a rated power of at least 250W. In some embodiments, the processors may 820 be designed to operate at a rated power of at least 350W.

In einigen Ausführungsformen kann der Rechenschlitten 800 auch eine Prozessor-zu-Prozessor-Zwischenverbindung 842 aufweisen. Ähnlich zur Ressource-zu-Ressource-Zwischenverbindung 624 des oben erörterten Schlittens 400 kann die Prozessor-zu-Prozessor-Zwischenverbindung 842 als ein beliebiger Typ von Kommunikationszwischenverbindung ausgeführt sein, die Kommunikationen über die Prozessor-zu-Prozessor-Zwischenverbindung 842 ermöglichen kann. In der veranschaulichenden Ausführungsform ist die Prozessor-zu-Prozessor-Zwischenverbindung 842 als eine Hochgeschwindigkeits-Punkt-zu-Punkt-Zwischenverbindung (z. B. schneller als das E/A-Untersystem 622) ausgeführt. Beispielsweise kann die Prozessor-zu-Prozessor-Zwischenverbindung 842 als eine QuickPath-Zwischenverbindung (QPI, QuickPath Interconnect), eine UltraPath-Zwischenverbindung (UPI, UltraPath Interconnect) oder eine andere Hochgeschwindigkeits-Punkt-zu-Punkt-Zwischenverbindung ausgeführt sein, die für Prozessor-zu-Prozessor-Kommunikationen dediziert ist.In some embodiments, the calculation slide 800 also a processor-to-processor interconnect 842 exhibit. Similar to the resource-to-resource interconnect 624 of the carriage discussed above 400 may be the processor-to-processor interconnect 842 be executed as any type of communication interconnect, the communications through the processor-to-processor interconnect 842 can allow. In the illustrative embodiment, the processor-to-processor interconnect is 842 as a high-speed point-to-point interconnect (e.g., faster than the I / O subsystem 622 ). For example, the processor-to-processor interconnect 842 as a QuickPath Interconnect (QPI), an UltraPath Interconnect (UPI, UltraPath Interconnect) or other high-speed point-to-point interconnect dedicated to processor-to-processor communications.

Der Rechenschlitten 800 weist auch eine Kommunikationsschaltung 830 auf. Die veranschaulichende Kommunikationsschaltung 830 weist einen Netzschnittstellencontroller (NIC, Network Interface Controller) 832 auf, der auch als eine Host-Fabric-Schnittstelle (HFI, Host Fabric Interface) bezeichnet werden kann. Der NIC 832 kann als ein beliebiger Typ von integrierter Schaltung, diskreten Schaltungen, Controllerchips, Chipsätzen, Add-in-Boards, Tochterkarten, Netzschnittstellenkarten oder anderen Vorrichtungen, die vom Rechenschlitten 800 zum Verbinden mit einer anderen Rechenvorrichtung (z. B. mit anderen Schlitten 400) verwendet werden können, ausgeführt sein oder diese anderweitig aufweisen. In einigen Ausführungsformen kann der NIC 832 als Teil eines System-on-a-Chip (SoC) ausgeführt sein, das einen oder mehrere Prozessoren aufweist, oder in einem Multichip-Package eingeschlossen ist, das auch einen oder mehrere Prozessoren enthält. In einigen Ausführungsformen kann der NIC 832 einen lokalen Prozessor (nicht gezeigt) und/oder einen lokalen Speicher (nicht gezeigt) aufweisen, die beide für den NIC 832 lokal sind. In derartigen Ausführungsformen kann der lokale Prozessor des NIC 832 in der Lage sein, eine oder mehrere der Funktionen der Prozessoren 820 durchzuführen. Zusätzlich oder alternativ kann der lokale Speicher des NIC 832 in derartigen Ausführungsformen in eine oder mehrere Komponenten des Rechenschlittens auf der Platinenebene, der Sockelebene, der Chipebene und/oder anderen Ebenen integriert sein.The calculating slide 800 also has a communication circuit 830 on. The illustrative communication circuit 830 has a network interface controller (NIC) 832, which may also be referred to as a host fabric interface (HFI). The NIC 832 can be considered any type of integrated circuit, discrete circuits, controller chips, chipsets, add-in boards, daughter cards, network interface cards or other devices that come from the computing slide 800 for connecting to another computing device (eg other carriages 400 ) can be used, be executed or have this otherwise. In In some embodiments, the NIC 832 as part of a system-on-a-chip (SoC) having one or more processors, or included in a multi-chip package that also includes one or more processors. In some embodiments, the NIC 832 a local processor (not shown) and / or a local memory (not shown), both for the NIC 832 are local. In such embodiments, the local processor of the NIC 832 to be able to do one or more of the functions of the processors 820 perform. Additionally or alternatively, the local memory of the NIC 832 in such embodiments, be integrated into one or more components of the rake at the board level, the socket level, the chip level, and / or other levels.

Die Kommunikationsschaltung 830 ist kommunikativ mit einem optischen Datenverbinder 834 gekoppelt. Der optische Datenverbinder 834 ist ausgelegt, um mit einem entsprechenden optischen Datenverbinder des Racks 240 zusammenzupassen, wenn der Rechenschlitten 800 im Rack 240 montiert ist. Veranschaulichend weist der optische Datenverbinder 834 eine Mehrzahl von optischen Fasern auf, die von einer Passfläche des optischen Datenverbinders 834 zu einem optischen Sendeempfänger 836 führen. Der optische Sendeempfänger 836 ist ausgelegt, um eingehende optische Signale vom rackseitigen optischen Datenverbinder in elektrische Signale umzuwandeln und elektrische Signale in ausgehende optische Signale zum rackseitigen optischen Datenverbinder umzuwandeln. Obwohl in der veranschaulichenden Ausführungsform als ein Teil des optischen Datenverbinders 834 gezeigt, kann der optische Sendeempfänger 836 in anderen Ausführungsformen einen Teil der Kommunikationsschaltung 830 ausbilden.The communication circuit 830 is communicative with an optical data connector 834 coupled. The optical data connector 834 is designed to connect with a corresponding optical data connector of the rack 240 to match when the calculating slide 800 in the rack 240 is mounted. Illustratively, the optical data connector 834 a plurality of optical fibers received from a mating surface of the optical data connector 834 to an optical transceiver 836 to lead. The optical transceiver 836 is configured to convert incoming optical signals from the rack-side optical data connector into electrical signals and to convert electrical signals in outgoing optical signals to the rack-side optical data connector. Although in the illustrative embodiment, as a part of the optical data connector 834 shown, the optical transceiver 836 in other embodiments, a part of the communication circuit 830 form.

In einigen Ausführungsformen kann der Rechenschlitten 800 auch einen Erweiterungsverbinder 840 aufweisen. In derartigen Ausführungsformen ist der Erweiterungsverbinder 840 so ausgelegt, dass er mit einem entsprechenden Verbinder eines baugruppenträgerlosen Erweiterungsleiterplattensubstrats zusammenpasst, um dem Rechenschlitten 800 zusätzliche physikalische Ressourcen bereitzustellen. Die zusätzlichen physikalischen Ressourcen können beispielsweise von den Prozessoren 820 während des Betriebs des Rechenschlittens 800 verwendet werden. Das baugruppenträgerlose Erweiterungsleiterplattensubstrat kann im Wesentlichen ähnlich zum oben erörterten baugruppenträgerlosen Leiterplattensubstrat 602 sein und kann verschiedene daran montierte elektrische Komponenten aufweisen. Die bestimmten elektrischen Komponenten, die am baugruppenträgerlosen Leiterplattensubstrat montiert sind, können von der beabsichtigten Funktionalität des baugruppenträgerlosen Erweiterungsleiterplattensubstrats abhängen. Beispielsweise kann das baugruppenträgerlose Erweiterungsleiterplattensubstrat zusätzliche Rechenressourcen, Speicherressourcen und/oder Speichereinrichtungsressourcen bereitstellen. Somit können die zusätzlichen physikalischen Ressourcen des baugruppenträgerlosen Erweiterungsleiterplattensubstrats Prozessoren, Speichervorrichtungen, Speichereinrichtungen und/oder Beschleunigerschaltungen aufweisen, einschließlich beispielsweise feldprogrammierbarer Gate-Arrays (FPGA), anwendungsspezifischer integrierter Schaltungen (ASICs, Application-Specific Integrated Circuits), Sicherheitskoprozessoren, Grafikverarbeitungseinheiten (GPUs, Graphics Processing Units), Maschinenlernschaltungen oder anderer spezialisierter Prozessoren, Controller, Vorrichtungen und/oder Schaltungen, sind aber nicht darauf beschränkt.In some embodiments, the calculation slide 800 also an expansion connector 840 exhibit. In such embodiments, the expansion connector is 840 adapted to mate with a corresponding connector of a subrackless expansion board substrate to the computing slide 800 to provide additional physical resources. For example, the additional physical resources may be provided by the processors 820 during the operation of the calculation slide 800 be used. The subrackless extender board substrate may be substantially similar to the subrackless circuit board substrate discussed above 602 and may have various electrical components mounted thereto. The particular electrical components mounted on the subrackless printed circuit board substrate may depend on the intended functionality of the subrackless add-on board substrate. For example, the subrackless extender board substrate may provide additional computational resources, memory resources, and / or storage resources. Thus, the additional physical resources of the subrackless extender board substrate may include processors, memory devices, memory devices, and / or accelerator circuits, including, for example, field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), security coprocessors, graphics processing units (GPUs, Graphics Processing Units), machine learning circuits or other specialized processors, controllers, devices and / or circuits are, but are not limited thereto.

Unter Bezugnahme auf 9 ist eine veranschaulichende Ausführungsform des Rechenschlittens 800 gezeigt. Wie gezeigt, sind die Prozessoren 820, die Kommunikationsschaltung 830 und der optische Datenverbinder 834 an der Oberseite 650 des baugruppenträgerlosen Leiterplattensubstrats 602 montiert. Eine beliebige geeignete Anbringungs- oder Montagetechnologie kann verwendet werden, um die physikalischen Ressourcen des Rechenschlittens 800 am baugruppenträgerlosen Leiterplattensubstrat 602 zu montieren. Beispielsweise können die verschiedenen physikalischen Ressourcen in entsprechenden Sockeln (z. B. einem Prozessorsockel), Halterungen oder Klammern montiert sein. In einigen Fällen können einige der elektrischen Komponenten direkt an das baugruppenträgerlose Leiterplattensubstrat 602 durch Löten oder ähnliche Techniken montiert sein.With reference to 9 is an illustrative embodiment of the calculation slide 800 shown. As shown, the processors are 820 , the communication circuit 830 and the optical data connector 834 at the top 650 of the subrackless printed circuit board substrate 602 assembled. Any suitable mounting or mounting technology may be used to calculate the physical resources of the calculation slide 800 on the subrackless PCB substrate 602 to assemble. For example, the various physical resources may be mounted in corresponding sockets (eg, a processor socket), brackets, or brackets. In some cases, some of the electrical components may be directly connected to the subrackless circuit board substrate 602 be mounted by soldering or similar techniques.

Wie oben erörtert, sind die einzelnen Prozessoren 820 und die Kommunikationsschaltung 830 an der Oberseite 650 des baugruppenträgerlosen Leiterplattensubstrats 602 derart montiert, dass keine zwei wärmeerzeugenden elektrischen Komponenten einander abschatten. In der veranschaulichenden Ausführungsform sind die Prozessoren 820 und die Kommunikationsschaltung 830 an entsprechenden Stellen auf der Oberseite 650 des baugruppenträgerlosen Leiterplattensubstrats 602 derart montiert, dass keine zwei dieser physikalischen Ressourcen linear inline mit anderen entlang der Richtung des Luftstrompfads 608 liegen. Es sollte beachtet werden, dass, obwohl der optische Datenverbinder 834 inline mit der Kommunikationsschaltung 830 ist, der optische Datenverbinder 834 keine oder nur nominale Wärme während des Betriebs erzeugt.As discussed above, the individual processors are 820 and the communication circuit 830 at the top 650 of the subrackless printed circuit board substrate 602 mounted such that no two heat-generating electrical components shade each other. In the illustrative embodiment, the processors are 820 and the communication circuit 830 in appropriate places on the top 650 of the subrackless printed circuit board substrate 602 so mounted that no two of these physical resources linearly inline with others along the direction of the airflow path 608 lie. It should be noted that although the optical data connector 834 inline with the communication circuit 830 is, the optical data connector 834 no or only nominal heat generated during operation.

Die Speichervorrichtungen 720 des Rechenschlittens 800 sind an der Unterseite 750 des baugruppenträgerlosen Leiterplattensubstrats 602 montiert, wie oben in Bezug auf den Schlitten 400 erörtert. Obwohl sie an der Unterseite 750 montiert sind, sind die Speichervorrichtungen 720 kommunikativ mit den Prozessoren 820, die auf der Oberseite 650 angeordnet sind, über das E/A-Untersystem 622 gekoppelt. Da das baugruppenträgerlose Leiterplattensubstrat 602 als eine doppelseitige Leiterplatte ausgeführt ist, können die Speichervorrichtungen 720 und die Prozessoren 820 kommunikativ durch ein oder mehrere Vias, Verbinder oder andere Mechanismen gekoppelt sein, die sich durch das baugruppenträgerlose Leiterplattensubstrat 602 erstrecken. Natürlich kann jeder Prozessor 820 in einigen Ausführungsformen kommunikativ mit einem anderen Satz von einer oder mehreren Speichervorrichtungen 720 gekoppelt sein. Alternativ kann jeder Prozessor 820 in anderen Ausführungsformen kommunikativ mit jeder Speichervorrichtung 720 gekoppelt sein. In einigen Ausführungsformen können die Speichervorrichtungen 720 an einem oder mehreren Speicher-Mezzanines auf der Unterseite des baugruppenträgerlosen Leiterplattensubstrats 602 montiert sein und können mit einem entsprechenden Prozessor 820 durch eine Kugelgitteranordnung verbunden sein.The storage devices 720 of the calculation slide 800 are at the bottom 750 of the subrackless printed circuit board substrate 602 mounted as above with respect to the carriage 400 discussed. Although she is at the bottom 750 are mounted, the storage devices 720 communicative with the processors 820 that on the top 650 are arranged through the I / O subsystem 622 coupled. Because the subrackless PCB substrate 602 is designed as a double-sided circuit board, the memory devices 720 and the processors 820 communicatively coupled by one or more vias, connectors, or other mechanisms passing through the subrackless printed circuit board substrate 602 extend. Of course, every processor can 820 in some embodiments, communicatively with another set of one or more storage devices 720 be coupled. Alternatively, every processor 820 in other embodiments, communicatively with each storage device 720 be coupled. In some embodiments, the memory devices 720 on one or more memory mezzanines on the underside of the subrackless circuit board substrate 602 be mounted and can with a corresponding processor 820 be connected by a ball grid arrangement.

Jeder der Prozessoren 820 weist einen Kühlkörper 850 auf, der daran befestigt ist. Aufgrund der Montage der Speichervorrichtungen 720 an der Unterseite 750 des baugruppenträgerlosen Leiterplattensubstrats 602 (sowie dem vertikalen Abstand der Schlitten 400 im entsprechenden Rack 240) weist die Oberseite 650 des baugruppenträgerlosen Leiterplattensubstrats 602 einen zusätzlichen „freien“ Bereich oder Freiraum auf, der die Verwendung von Kühlkörpern 850 mit einer größeren Größe im Vergleich zu herkömmlichen Kühlkörpern, die in typischen Servern verwendet werden, ermöglicht. Aufgrund der verbesserten thermischen Kühleigenschaften des baugruppenträgerlosen Leiterplattensubstrats 602 weist zusätzlich keiner der Prozessorkühlkörper 850 daran angebrachte Kühllüfter auf. Das heißt, jeder der Kühlkörper 850 ist als lüfterlose Kühlkörper ausgeführt.Each of the processors 820 has a heat sink 850 which is attached to it. Due to the mounting of the storage devices 720 on the bottom 750 of the subrackless printed circuit board substrate 602 (as well as the vertical distance of the carriages 400 in the corresponding rack 240 ) has the top 650 of the subrackless printed circuit board substrate 602 an additional "free" area or clearance on which the use of heat sinks 850 with a larger size compared to conventional heatsinks used in typical servers. Due to the improved thermal cooling properties of the subrackless printed circuit board substrate 602 In addition, none of the processor heat sink 850 attached cooling fans. That is, each of the heat sinks 850 is designed as a fanless heat sink.

Unter Bezugnahme auf 10 kann der Schlitten 400 in einigen Ausführungsformen als ein Beschleunigerschlitten 1000 ausgeführt sein. Der Beschleunigerschlitten 1000 ist optimiert oder anderweitig ausgelegt, um spezialisierte Rechenaufgaben durchzuführen, wie beispielsweise Maschinenlernen, Verschlüsselung, Hashing oder andere rechenintensive Aufgaben. In einigen Ausführungsformen kann beispielsweise ein Rechenschlitten 800 während des Betriebs Aufgaben an den Beschleunigerschlitten 1000 abladen. Der Beschleunigerschlitten 1000 weist verschiedene Komponenten auf, die Komponenten des Schlittens 400 und/oder des Rechenschlittens 800 ähnlich sind, die in 10 unter Verwendung der gleichen Bezugszeichen identifiziert werden. Die Beschreibung derartiger Komponenten, die oben in Bezug auf 6, 7 und 8 bereitgestellt wurde, gilt für die entsprechenden Komponenten des Beschleunigerschlittens 1000 und wird hierin zur Klarheit der Beschreibung des Beschleunigerschlittens 1000 nicht wiederholt.With reference to 10 can the sled 400 in some embodiments as an accelerator carriage 1000 be executed. The accelerator carriage 1000 is optimized or otherwise designed to perform specialized computing tasks, such as machine learning, encryption, hashing, or other compute-intensive tasks. For example, in some embodiments, a calculation slide 800 during operation tasks on the accelerator carriage 1000 unload. The accelerator carriage 1000 has various components, the components of the carriage 400 and / or the calculation slide 800 similar to those in 10 be identified using the same reference numerals. The description of such components as described above with respect to 6 . 7 and 8th has been provided, applies to the corresponding components of the accelerator carriage 1000 and is herein for clarity of description of the accelerator carriage 1000 not repeated.

Im veranschaulichenden Beschleunigerschlitten 1000 sind die physikalischen Ressourcen 620 als Beschleunigerschaltungen 1020 ausgeführt. Obwohl nur zwei Beschleunigerschaltungen 1020 in 10 gezeigt sind, sollte beachtet werden, dass der Beschleunigerschlitten 1000 in anderen Ausführungsformen zusätzliche Beschleunigerschaltungen 1020 aufweisen kann. Beispielsweise kann der Beschleunigerschlitten 1000, wie in 11 gezeigt, in einigen Ausführungsformen vier Beschleunigerschaltungen 1020 aufweisen. Die Beschleunigerschaltungen 1020 können als ein beliebiger Typ von Prozessor, Koprozessor, Rechenschaltung oder einer anderen Vorrichtung ausgeführt sein, die in der Lage ist, Rechen- oder Verarbeitungsoperationen durchzuführen. Beispielsweise können die Beschleunigerschaltungen 1020 als beispielsweise feldprogrammierbare Gate-Arrays (FPGA), anwendungsspezifische integrierte Schaltungen (ASICs, Application-Specific Integrated Circuits), Sicherheitskoprozessoren, Grafikverarbeitungseinheiten (GPUs, Graphics Processing Units), Maschinenlernschaltungen oder andere spezialisierte Prozessoren, Controller, Vorrichtungen und/oder Schaltungen ausgeführt sein, sind aber nicht darauf beschränkt.In the illustrative accelerator carriage 1000 are the physical resources 620 as accelerator circuits 1020 executed. Although only two accelerator circuits 1020 in 10 should be noted that the accelerator carriage 1000 in other embodiments additional accelerator circuits 1020 can have. For example, the accelerator carriage 1000 , as in 11 4, in some embodiments, four accelerator circuits 1020 exhibit. The accelerator circuits 1020 may be embodied as any type of processor, coprocessor, arithmetic circuit, or other device capable of performing computational or processing operations. For example, the accelerator circuits 1020 as field-programmable gate arrays (FPGA), application-specific integrated circuits (ASICs), security coprocessors, graphics processing units (GPUs), machine learning units or other specialized processors, controllers, devices and / or circuits are executed, but are not limited to this.

In einigen Ausführungsformen kann der Beschleunigerschlitten 1000 auch eine Beschleuniger-zu-Beschleuniger-Zwischenverbindung 1042 aufweisen. Ähnlich zur Ressource-zu-Ressource-Zwischenverbindung 624 des oben erörterten Schlittens 600 kann die Beschleuniger-zu-Beschleuniger-Zwischenverbindung 1042 als ein beliebiger Typ von Kommunikationszwischenverbindung ausgeführt sein, die Beschleuniger-zu-Beschleuniger-Kommunikationen ermöglichen kann. In der veranschaulichenden Ausführungsform ist die Beschleuniger-zu-Beschleuniger-Zwischenverbindung 1042 als eine Hochgeschwindigkeits-Punkt-zu-Punkt-Zwischenverbindung (z. B. schneller als das E/A-Untersystem 622) ausgeführt. Beispielsweise kann die Beschleuniger-zu-Beschleuniger-Zwischenverbindung 1042 als eine QuickPath-Zwischenverbindung (QPI, QuickPath Interconnect), eine UltraPath-Zwischenverbindung (UPI, UltraPath Interconnect) oder eine andere Hochgeschwindigkeits-Punkt-zu-Punkt-Zwischenverbindung ausgeführt sein, die für Prozessor-zu-Prozessor-Kommunikationen dediziert ist. In einigen Ausführungsformen können die Beschleunigerschaltungen 1020 mit einer primären Beschleunigerschaltung 1020, die über das E/A-Untersystem 622 mit dem NIC 832 und dem Speicher 720 verbunden ist, und einer sekundären Beschleunigerschaltung 1020, die über eine primäre Beschleunigerschaltung 1020 mit dem NIC 832 und dem Speicher 720 verbunden ist, in Reihe geschaltet sein.In some embodiments, the accelerator may be sled 1000 also an accelerator-to-accelerator interconnect 1042 exhibit. Similar to the resource-to-resource interconnect 624 of the carriage discussed above 600 may be the accelerator-to-accelerator interconnect 1042 be implemented as any type of communication interconnect that may enable accelerator-to-accelerator communications. In the illustrative embodiment, the accelerator-to-accelerator interconnect is 1042 as a high-speed point-to-point interconnect (e.g., faster than the I / O subsystem 622 ). For example, the accelerator-to-accelerator interconnect 1042 as a QuickPath Interconnect (QPI), an UltraPath Interconnect (UPI, UltraPath Interconnect) or other high-speed point-to-point interconnect dedicated to processor-to-processor communications. In some embodiments, the accelerator circuits 1020 with a primary accelerator circuit 1020 via the I / O subsystem 622 with the NIC 832 and the memory 720 is connected, and a secondary accelerator circuit 1020 that has a primary accelerator circuit 1020 with the NIC 832 and the memory 720 connected in series.

Unter Bezugnahme auf 11 ist eine veranschaulichende Ausführungsform des Beschleunigerschlittens 1000 gezeigt. Wie oben erörtert, sind die Beschleunigerschaltungen 1020, die Kommunikationsschaltung 830 und der optische Datenverbinder 834 an der Oberseite 650 des baugruppenträgerlosen Leiterplattensubstrats 602 montiert. Wiederum sind die einzelnen Beschleunigerschaltungen 1020 und die Kommunikationsschaltung 830 an der Oberseite 650 des baugruppenträgerlosen Leiterplattensubstrats 602 derart montiert, dass keine zwei wärmeerzeugenden elektrischen Komponenten einander abschatten, wie oben erörtert. Die Speichervorrichtungen 720 des Beschleunigerschlittens 1000 sind an der Unterseite 750 des baugruppenträgerlosen Leiterplattensubstrats 602 montiert, wie oben in Bezug auf den Schlitten 600 erörtert. Obwohl sie an der Unterseite 750 montiert sind, sind die Speichervorrichtungen 720 kommunikativ mit den Beschleunigerschaltungen 1020, die auf der Oberseite 650 angeordnet sind, über das E/A-Untersystem 622 gekoppelt (z. B. mittels Vias). Ferner kann jede der Beschleunigerschaltungen 1020 einen Kühlkörper 1070 aufweisen, der größer als ein herkömmlicher Kühlkörper ist, der in einem Server verwendet wird. Wie oben unter Bezugnahme auf die Kühlkörper 870 erörtert, können die Kühlkörper 1070 aufgrund des „freien“ Bereichs, der dadurch bereitgestellt wird, dass die Speichervorrichtungen 750 auf der Unterseite 750 des baugruppenträgerlosen Leiterplattensubstrats 602 statt auf der Oberseite 650 angeordnet sind, größer als herkömmliche Kühlkörper sein.With reference to 11 is an illustrative embodiment of the accelerator carriage 1000 shown. As discussed above the accelerator circuits 1020 , the communication circuit 830 and the optical data connector 834 at the top 650 of the subrackless printed circuit board substrate 602 assembled. Again, the individual accelerator circuits 1020 and the communication circuit 830 at the top 650 of the subrackless printed circuit board substrate 602 mounted so that no two heat-generating electrical components shadow each other, as discussed above. The storage devices 720 of the accelerator carriage 1000 are at the bottom 750 of the subrackless printed circuit board substrate 602 mounted as above with respect to the carriage 600 discussed. Although she is at the bottom 750 are mounted, the storage devices 720 communicative with the accelerator circuits 1020 that on the top 650 are arranged through the I / O subsystem 622 coupled (eg by means of vias). Furthermore, each of the accelerator circuits 1020 a heat sink 1070 larger than a conventional heat sink used in a server. As above with reference to the heatsink 870 discussed, the heat sinks can 1070 due to the "free" area provided by the storage devices 750 on the bottom 750 of the subrackless printed circuit board substrate 602 instead of on top 650 are arranged to be larger than conventional heat sink.

Unter Bezugnahme auf 12 kann der Schlitten 400 in einigen Ausführungsformen als ein Speichereinrichtungsschlitten 1200 ausgeführt sein. Der Speichereinrichtungsschlitten 1200 ist optimiert oder anderweitig ausgelegt, um Daten in einem Datenspeicher 1250 lokal für den Speichereinrichtungsschlitten 1200 zu speichern. Beispielsweise kann ein Rechenschlitten 800 oder ein Beschleunigerschlitten 1000 während des Betriebs Daten von der Datenspeichereinrichtung 1250 des Speichereinrichtungsschlittens 1200 speichern und abrufen. Der Speichereinrichtungsschlitten 1200 weist verschiedene Komponenten auf, die Komponenten des Schlittens 400 und/oder des Rechenschlittens 800 ähnlich sind, die in 12 unter Verwendung der gleichen Bezugszeichen identifiziert werden. Die Beschreibung derartiger Komponenten, die oben in Bezug auf 6, 7 und 8 bereitgestellt wurde, gilt für die entsprechenden Komponenten des Speichereinrichtungsschlittens 1200 und wird hierin zur Klarheit der Beschreibung des Speichereinrichtungsschlittens 1200 nicht wiederholt.With reference to 12 can the sled 400 in some embodiments, as a storage device sled 1200 be executed. The storage device sled 1200 is optimized or otherwise designed to store data in a data store 1250 local to the storage device sled 1200 save. For example, a calculation slide 800 or an accelerator carriage 1000 during operation, data from the data storage device 1250 of the storage device carriage 1200 save and retrieve. The storage device sled 1200 has various components, the components of the carriage 400 and / or the calculation slide 800 similar to those in 12 be identified using the same reference numerals. The description of such components as described above with respect to 6 . 7 and 8th has been provided, applies to the corresponding components of the storage device carriage 1200 and is herein for clarity of description of the storage device carriage 1200 not repeated.

Im veranschaulichenden Speichereinrichtungsschlitten 1200 sind die physikalischen Ressourcen 620 als Speichereinrichtungscontroller 1220 ausgeführt. Obwohl nur zwei Speichereinrichtungscontroller 1220 in 12 gezeigt sind, sollte beachtet werden, dass der Speichereinrichtungsschlitten 1200 in anderen Ausführungsformen zusätzliche Speichereinrichtungscontroller 1220 aufweisen kann. Die Speichereinrichtungscontroller 1220 können als ein beliebiger Typ von Prozessor, Controller oder Steuerschaltung ausgeführt sein, die das Speichern und Abrufen von Daten in der Datenspeichereinrichtung 1250 basierend auf Anforderungen, die über die Kommunikationsschaltung 830 empfangen werden, steuern können. In der veranschaulichenden Ausführungsform sind die Speichereinrichtungscontroller 1220 als Prozessoren oder Controller mit relativ niedriger Leistung ausgeführt. In einigen Ausführungsformen können die Speichereinrichtungscontroller 1220 beispielsweise so ausgelegt sein, dass sie bei einer Nennleistung von etwa 75 Watt arbeiten.In the illustrative storage device sled 1200 are the physical resources 620 as a storage device controller 1220 executed. Although only two storage device controllers 1220 in 12 should be noted that the storage device carriage 1200 in other embodiments, additional storage device controllers 1220 can have. The storage device controllers 1220 may be embodied as any type of processor, controller, or control circuit that supports the storage and retrieval of data in the data storage device 1250 based on requirements made via the communication circuit 830 can be received, control. In the illustrative embodiment, the storage device controllers are 1220 running as processors or controllers with relatively low power. In some embodiments, the storage device controllers 1220 For example, be designed to operate at a rated power of about 75 watts.

In einigen Ausführungsformen kann der Speichereinrichtungsschlitten 1200 auch eine Controller-zu-Controller-Zwischenverbindung 1242 aufweisen. Ähnlich zur Ressource-zu-Ressource-Zwischenverbindung 624 des oben erörterten Schlittens 400 kann die Controller-zu-Controller-Zwischenverbindung 1242 als ein beliebiger Typ von Kommunikationszwischenverbindung ausgeführt sein, die Controller-zu-Controller-Kommunikationen ermöglichen kann. In der veranschaulichenden Ausführungsform ist die Controller-zu-Controller-Zwischenverbindung 1242 als eine Hochgeschwindigkeits-Punkt-zu-Punkt-Zwischenverbindung (z. B. schneller als das E/A-Untersystem 622) ausgeführt. Beispielsweise kann die Controller-zu-Controller-Zwischenverbindung 1242 als eine QuickPath-Zwischenverbindung (QPI, QuickPath Interconnect), eine UltraPath-Zwischenverbindung (UPI, UltraPath Interconnect) oder eine andere Hochgeschwindigkeits-Punkt-zu-Punkt-Zwischenverbindung ausgeführt sein, die für Prozessor-zu-Prozessor-Kommunikationen dediziert ist.In some embodiments, the storage device carriage may 1200 also a controller-to-controller interconnect 1242 exhibit. Similar to the resource-to-resource interconnect 624 of the carriage discussed above 400 may be the controller-to-controller interconnect 1242 may be implemented as any type of communication interconnect that may enable controller-to-controller communications. In the illustrative embodiment, the controller-to-controller interconnect is 1242 as a high-speed point-to-point interconnect (e.g., faster than the I / O subsystem 622 ). For example, the controller-to-controller interconnect 1242 as a QuickPath Interconnect (QPI), an UltraPath Interconnect (UPI, UltraPath Interconnect) or other high-speed point-to-point interconnect dedicated to processor-to-processor communications.

Unter Bezugnahme auf 13 ist eine veranschaulichende Ausführungsform des Speichereinrichtungsschlittens 1200 gezeigt. In der veranschaulichenden Ausführungsform ist die Datenspeichereinrichtung 1250 als ein Speichereinrichtungskäfig 1252 ausgeführt, der ausgelegt ist, um ein oder mehrere Solid-State-Drives (SSDs) 1254 aufzunehmen, oder weist diesen anderweitig auf. Hierzu weist der Speichereinrichtungskäfig 1252 eine Anzahl von Montagesteckplätzen 1256 auf, von denen jeder ausgelegt ist, um einen entsprechenden Solid-State-Drive 1254 aufzunehmen. Jeder der Montagesteckplätze 1256 weist eine Anzahl von Laufwerksführungen 1258 auf, die zusammenwirken, um eine Zugangsöffnung 1260 des entsprechenden Montagesteckplatzes 1256 zu definieren. Der Speichereinrichtungskäfig 1252 ist am baugruppenträgerlosen Leiterplattensubstrat 602 derart befestigt, dass die Zugangsöffnungen vom baugruppenträgerlosen Leiterplattensubstrat 602 abgewandt sind (d. h. zur Vorderseite hin). Somit sind Solid-State-Drives 1254 zugänglich, während der Speichereinrichtungsschlitten 1200 in einem entsprechenden Rack 204 montiert ist. Beispielsweise kann ein Solid-State-Drive 1254 aus einem Rack 240 (z. B. über einen Roboter) ausgetauscht werden, während der Speichereinrichtungsschlitten 1200 im entsprechenden Rack 240 montiert bleibt.With reference to 13 is an illustrative embodiment of the storage device carriage 1200 shown. In the illustrative embodiment, the data storage device is 1250 as a storage device cage 1252 designed to carry one or more solid-state drives (SSDs) 1254 take or otherwise assign this. For this purpose, the storage device cage 1252 a number of mounting slots 1256 on, each of which is designed to be a corresponding solid-state drive 1254 take. Each of the mounting slots 1256 has a number of drive guides 1258 on, working together to create an access opening 1260 the corresponding mounting slot 1256 define. The storage device cage 1252 is on the subrackless PCB substrate 602 fixed so that the access openings from the subrackless PCB substrate 602 are turned away (ie towards the front). Thus, solid state drives 1254 accessible while the storage device carriage 1200 in a corresponding rack 204 is mounted. For example, a solid-state drive 1254 from a rack 240 (eg via a robot) while the storage device carriage is being replaced 1200 in the corresponding rack 240 remains mounted.

Der Speichereinrichtungskäfig 1252 weist veranschaulichend sechzehn Montagesteckplätze 1256 auf und ist in der Lage, sechzehn Solid-State-Drives 1254 zu montieren und zu speichern. Natürlich kann der Speichereinrichtungskäfig 1252 ausgelegt sein, um in anderen Ausführungsformen zusätzliche oder weniger Solid-State-Drives 1254 zu speichern. Zusätzlich sind die Solid-State-Drives in der veranschaulichenden Ausführungsform im Speichereinrichtungskäfig 1252 vertikal montiert, können jedoch in anderen Ausführungsformen in einer anderen Ausrichtung im Speichereinrichtungskäfig 1252 montiert sein. Jedes Solid-State-Drive 1254 kann als ein beliebiger Typ von Datenspeichereinrichtung ausgeführt sein, die Langzeitdaten speichern kann. Hierzu können die Solid-State-Drives 1254 flüchtige und nicht-flüchtige Speichervorrichtungen umfassen, die oben erörtert wurden.The storage device cage 1252 illustratively has sixteen mounting slots 1256 on and is capable of sixteen solid-state drives 1254 to assemble and store. Of course, the storage device cage 1252 be designed to additional or less solid-state drives in other embodiments 1254 save. In addition, in the illustrative embodiment, the solid state drives are in the memory device cage 1252 mounted vertically, but in other embodiments may be in a different orientation in the storage device cage 1252 be mounted. Any solid state drive 1254 can be implemented as any type of data storage device that can store long-term data. For this purpose, the solid-state drives 1254 include volatile and non-volatile memory devices discussed above.

Wie in 13 gezeigt, sind die Speichereinrichtungscontroller 1220, die Kommunikationsschaltung 830 und der optische Datenverbinder 834 veranschaulichend an der Oberseite 650 des baugruppenträgerlosen Leiterplattensubstrats 602 montiert. Wie oben erörtert, kann wiederum jede geeignete Anbringungs- oder Montagetechnologie verwendet werden, um die elektrischen Komponenten des Speichereinrichtungsschlittens 1200 am baugruppenträgerlosen Leiterplattensubstrat 602 zu montieren, einschließlich beispielsweise Sockel (z. B. Prozessorsockel), Halterungen, Klammern, Lötverbindungen und/oder anderer Montage- oder Befestigungstechniken.As in 13 shown are the storage device controllers 1220 , the communication circuit 830 and the optical data connector 834 Illustrating at the top 650 of the subrackless printed circuit board substrate 602 assembled. Again, as discussed above, any suitable mounting or mounting technology may be used to secure the electrical components of the storage device carriage 1200 on the subrackless PCB substrate 602 including, for example, sockets (eg, processor sockets), brackets, brackets, solder joints, and / or other mounting or mounting techniques.

Wie oben erörtert, sind die einzelnen Speichereinrichtungscontroller 1220 und die Kommunikationsschaltung 830 an der Oberseite 650 des baugruppenträgerlosen Leiterplattensubstrats 602 derart montiert, dass keine zwei wärmeerzeugenden elektrischen Komponenten einander abschatten. Beispielsweise sind die Speichereinrichtungscontroller 1220 und die Kommunikationsschaltung 830 an entsprechenden Stellen auf der Oberseite 650 des baugruppenträgerlosen Leiterplattensubstrats 602 derart montiert, dass keine zwei dieser elektrischen Komponenten linear inline mit anderen entlang der Richtung des Luftstrompfads 608 liegen.As discussed above, the individual storage device controllers are 1220 and the communication circuit 830 at the top 650 of the subrackless printed circuit board substrate 602 mounted such that no two heat-generating electrical components shade each other. For example, the storage device controllers 1220 and the communication circuit 830 in appropriate places on the top 650 of the subrackless printed circuit board substrate 602 mounted so that no two of these electrical components linearly inline with each other along the direction of the air flow path 608 lie.

Die Speichervorrichtungen 720 des Speichereinrichtungsschlittens 1200 sind an der Unterseite 750 des baugruppenträgerlosen Leiterplattensubstrats 602 montiert, wie oben in Bezug auf den Schlitten 400 erörtert. Obwohl sie an der Unterseite 750 montiert sind, sind die Speichervorrichtungen 720 kommunikativ mit den Speichereinrichtungscontrollern 1220, die auf der Oberseite 650 angeordnet sind, über das E/A-Untersystem 622 gekoppelt. Da das baugruppenträgerlose Leiterplattensubstrat 602 als eine doppelseitige Leiterplatte ausgeführt ist, können wiederum die Speichervorrichtungen 720 und die Speichereinrichtungscontroller 1220 kommunikativ durch ein oder mehrere Vias, Verbinder oder andere Mechanismen gekoppelt sein, die sich durch das baugruppenträgerlose Leiterplattensubstrat 602 erstrecken. Jeder der Speichereinrichtungscontroller 1220 weist einen Kühlkörper 1270 auf, der daran befestigt ist. Wie oben erörtert, weist aufgrund der verbesserten thermischen Kühleigenschaften des baugruppenträgerlosen Leiterplattensubstrats 602 des Speichereinrichtungsschlittens 1200 keiner der Kühlkörper 1270 daran angebrachte Kühllüfter auf. Das heißt, jeder der Kühlkörper 1270 ist als lüfterlose Kühlkörper ausgeführt.The storage devices 720 of the storage device carriage 1200 are at the bottom 750 of the subrackless printed circuit board substrate 602 mounted as above with respect to the carriage 400 discussed. Although she is at the bottom 750 are mounted, the storage devices 720 communicatively with the storage device controllers 1220 that on the top 650 are arranged through the I / O subsystem 622 coupled. Since the subrackless printed circuit board substrate 602 As a double-sided circuit board is executed, in turn, the memory devices 720 and the storage device controllers 1220 communicatively coupled by one or more vias, connectors, or other mechanisms passing through the subrackless printed circuit board substrate 602 extend. Each of the storage device controllers 1220 has a heat sink 1270 which is attached to it. As discussed above, due to the improved thermal cooling characteristics of the sub-rackless printed circuit substrate 602 of the storage device carriage 1200 none of the heatsinks 1270 attached cooling fans. That is, each of the heat sinks 1270 is designed as a fanless heat sink.

Unter Bezugnahme auf 14 kann der Schlitten 400 in einigen Ausführungsformen als ein Speicherschlitten 1400 ausgeführt sein. Der Speicherschlitten 1400 ist optimiert oder anderweitig ausgelegt, um anderen Schlitten 400 (z. B. Rechenschlitten 800, Beschleunigerschlitten 1000 usw.) Zugang zu einem Speicher-Pool (z. B. in zwei oder mehr Sätzen 1430, 1432 von Speichervorrichtungen 720) lokal zum Speicherschlitten 1200 bereitzustellen. Beispielsweise kann während des Betriebs ein Rechenschlitten 800 oder ein Beschleunigerschlitten 1000 entfernt in einen oder mehrere der Speichersätze 1430, 1432 des Speicherschlittens 1200 schreiben und/oder von diesen lesen, wobei ein logischer Adressraum verwendet wird, der auf physikalische Adressen in den Speichersätzen 1430, 1432 abbildet. Der Speicherschlitten 1400 weist verschiedene Komponenten auf, die Komponenten des Schlittens 400 und/oder des Rechenschlittens 800 ähnlich sind, die in 14 unter Verwendung der gleichen Bezugszeichen identifiziert werden. Die Beschreibung derartiger Komponenten, die oben in Bezug auf 6, 7 und 8 bereitgestellt wurde, gilt für die entsprechenden Komponenten des Speicherschlittens 1400 und wird hierin zur Klarheit der Beschreibung des Speicherschlittens 1400 nicht wiederholt.With reference to 14 can the sled 400 in some embodiments as a storage sled 1400 be executed. The storage sled 1400 is optimized or otherwise designed to other sledges 400 (eg calculating slide 800 , Accelerator carriage 1000 etc.) Access to a storage pool (eg in two or more sets 1430 . 1432 of storage devices 720 ) locally to the storage sled 1200 provide. For example, a calculation slide may be used during operation 800 or an accelerator carriage 1000 removed into one or more of the memory sets 1430 . 1432 of the storage sled 1200 write and / or read from, using a logical address space, which refers to physical addresses in the memory sets 1430 . 1432 maps. The storage sled 1400 has various components, the components of the carriage 400 and / or the calculation slide 800 similar to those in 14 be identified using the same reference numerals. The description of such components as described above with respect to 6 . 7 and 8th has been provided applies to the corresponding components of the storage carriage 1400 and is herein for clarity of description of the storage sled 1400 not repeated.

Im veranschaulichenden Speicherschlitten 1400 sind die physikalischen Ressourcen 620 als Speichercontroller 1420 ausgeführt. Obwohl nur zwei Speichercontroller 1420 in 14 gezeigt sind, sollte beachtet werden, dass der Speicherschlitten 1400 in anderen Ausführungsformen zusätzliche Speichercontroller 1420 aufweisen kann. Die Speichercontroller 1420 können als ein beliebiger Typ von Prozessor, Controller oder Steuerschaltung ausgeführt sein, die das Schreiben oder Lesen von Daten in den Speichersätzen 1430, 1432 basierend auf Anforderungen, die über die Kommunikationsschaltung 830 empfangen werden, steuern können. In der veranschaulichenden Ausführungsform ist jeder Speichereinrichtungscontroller 1220 mit einem entsprechenden Speichersatz 1430, 1432 verbunden, um in die Speichervorrichtungen 720 innerhalb des entsprechenden Speichersatzes 1430, 1432 zu schreiben und von diesen zu lesen und beliebige Berechtigungen durchzusetzen (z. B. Lesen, Schreiben usw.), die mit dem Schlitten 400 assoziiert sind, der eine Anforderung an den Speicherschlitten 1400 gesendet hat, um eine Speicherzugriffsoperation (z. B. Lesen oder Schreiben) durchzuführen.In the illustrative storage sled 1400 are the physical resources 620 as a memory controller 1420 executed. Although only two memory controllers 1420 in 14 should be noted that the storage sled 1400 in other embodiments, additional memory controllers 1420 can have. The memory controller 1420 can be implemented as any type of processor, controller, or control circuit that handles the writing or reading of data in the memory packs 1430 . 1432 based on requirements made via the communication circuit 830 can be received, control. In the Illustrative embodiment is any storage device controller 1220 with a corresponding memory set 1430 . 1432 connected to the storage devices 720 within the corresponding memory set 1430 . 1432 to write and read from these and enforce any permissions (such as reading, writing, etc.) with the sled 400 associated with a request to the storage sled 1400 to perform a memory access operation (e.g., read or write).

In einigen Ausführungsformen kann der Speicherschlitten 1400 auch eine Controller-zu-Controller-Zwischenverbindung 1442 aufweisen. Ähnlich zur Ressource-zu-Ressource-Zwischenverbindung 624 des oben erörterten Schlittens 400 kann die Controller-zu-Controller-Zwischenverbindung 1442 als ein beliebiger Typ von Kommunikationszwischenverbindung ausgeführt sein, die Controller-zu-Controller-Kommunikationen ermöglichen kann. In der veranschaulichenden Ausführungsform ist die Controller-zu-Controller-Zwischenverbindung 1442 als eine Hochgeschwindigkeits-Punkt-zu-Punkt-Zwischenverbindung (z. B. schneller als das E/A-Untersystem 622) ausgeführt. Beispielsweise kann die Controller-zu-Controller-Zwischenverbindung 1442 als eine QuickPath-Zwischenverbindung (QPI, QuickPath Interconnect), eine UltraPath-Zwischenverbindung (UPI, UltraPath Interconnect) oder eine andere Hochgeschwindigkeits-Punkt-zu-Punkt-Zwischenverbindung ausgeführt sein, die für Prozessor-zu-Prozessor-Kommunikationen dediziert ist. Somit kann ein Speichercontroller 1420 in einigen Ausführungsformen über die Controller-zu-Controller-Zwischenverbindung 1442 auf Speicher zugreifen, der innerhalb des Speichersatzes 1432 liegt, der mit einem anderen Speichercontroller 1420 assoziiert ist. In einigen Ausführungsformen besteht ein skalierbarer Speichercontroller aus mehreren kleineren Speichercontrollern, die hierin als „Chiplets“ bezeichnet werden, auf einem Speicherschlitten (z. B. dem Speicherschlitten 1400). Die Chiplets können miteinander verbunden sein (z. B. unter Verwendung von EMIB (Embedded Multi-Die Interconnect Bridge)). Der kombinierte Chiplet-Speichercontroller kann bis zu einer relativ großen Anzahl von Speichercontrollern und E/A-Ports skalieren (z. B. bis zu 16 Speicherkanäle). In einigen Ausführungsformen können die Speichercontroller 1420 eine Speicherverschränkung implementieren (z. B. wird eine Speicheradresse auf den Speichersatz 1430 abgebildet, die nächste Speicheradresse wird auf den Speichersatz 1432 abgebildet und die dritte Adresse wird auf den Speichersatz 1430 abgebildet usw.). Die Verschränkung kann innerhalb der Speichercontroller 1420 oder von CPU-Sockeln (z. B. des Rechenschlittens 800) über Netzverbindungen zu den Speichersätzen 1430, 1432 verwaltet werden und kann die Latenz verbessern, die mit der Durchführung von Speicherzugriffsoperationen assoziiert ist, verglichen mit dem Zugriff auf zusammenhängende Speicheradressen von der gleichen Speichervorrichtung.In some embodiments, the storage carriage may 1400 also a controller-to-controller interconnect 1442 exhibit. Similar to the resource-to-resource interconnect 624 of the carriage discussed above 400 may be the controller-to-controller interconnect 1442 may be implemented as any type of communication interconnect that may enable controller-to-controller communications. In the illustrative embodiment, the controller-to-controller interconnect is 1442 as a high-speed point-to-point interconnect (e.g., faster than the I / O subsystem 622 ). For example, the controller-to-controller interconnect 1442 as a QuickPath Interconnect (QPI), an UltraPath Interconnect (UPI, UltraPath Interconnect) or other high-speed point-to-point interconnect dedicated to processor-to-processor communications. Thus, a memory controller 1420 in some embodiments, via the controller-to-controller interconnect 1442 access memory within the memory set 1432 lies with another memory controller 1420 is associated. In some embodiments, a scalable memory controller is comprised of a plurality of smaller memory controllers, referred to herein as "chiplets," on a storage sled (eg, the storage sled 1400 ). The chiplets may be interconnected (eg, using EMIB (Embedded Multi-The Interconnect Bridge)). The combined chiplet memory controller can scale up to a relatively large number of memory controllers and I / O ports (eg, up to 16 memory channels). In some embodiments, the memory controllers 1420 implement a memory entanglement (for example, a memory address is placed on the memory set 1430 imaged, the next memory address will be on the memory set 1432 pictured and the third address will be on the memory set 1430 pictured, etc.). The entanglement can be within the memory controller 1420 or CPU sockets (such as the calculation slide) 800 ) via network connections to the memory sets 1430 . 1432 and can improve the latency associated with performing memory access operations as compared to accessing contiguous memory addresses from the same memory device.

Ferner kann der Speicherschlitten 1400 in einigen Ausführungsformen mit einem oder mehreren anderen Schlitten 400 (z. B. im gleichen Rack 240 oder in einem benachbarten Rack 240) durch einen Wellenleiter unter Verwendung des Wellenleiterverbinders 1480 verbunden sein. In der veranschaulichenden Ausführungsform sind die Wellenleiter 64-Millimeter-Wellenleiter, die 16 Rx-Spuren (d. h. Empfangen) und 16 Rt-Spuren (d. h. Senden) bereitstellen. Jede Spur ist in der veranschaulichenden Ausführungsform entweder 16 Ghz oder 32 Ghz. In anderen Ausführungsformen können die Frequenzen unterschiedlich sein. Die Verwendung eines Wellenleiters kann einen Zugriff mit hohem Durchsatz auf den Speicher-Pool (z. B. die Speichersätze 1430, 1432) zu einem anderen Schlitten (z. B. einem Schlitten 400 im gleichen Rack 240 oder einem benachbarten Rack 240 als Speicherschlitten 1400) bereitstellen, ohne die Belastung des optischen Datenverbinders 834 zu erhöhen.Furthermore, the storage sled 1400 in some embodiments with one or more other carriages 400 (eg in the same rack 240 or in a neighboring rack 240 ) through a waveguide using the waveguide connector 1480 be connected. In the illustrative embodiment, the waveguides are 64 millimeter waveguides providing 16 Rx tracks (ie, receiving) and 16 Rt tracks (ie, transmitting). Each track is either 16 Ghz or 32 Ghz in the illustrative embodiment. In other embodiments, the frequencies may be different. The use of a waveguide can provide high throughput access to the storage pool (e.g., the storage sets 1430 . 1432 ) to another sled (eg a sled 400 in the same rack 240 or a neighboring rack 240 as storage sled 1400 ) without burdening the optical data connector 834 to increase.

Unter Bezugnahme auf 15 kann ein System zum Ausführen einer oder mehrerer Arbeitslasten (z. B. Anwendungen) in Übereinstimmung mit dem Datenzentrum 100 implementiert werden. In der veranschaulichenden Ausführungsform weist das System 1510 einen Orchestrator-Server 1520 auf, der als ein verwalteter Knoten ausgeführt sein kann, der eine Rechenvorrichtung (z. B. einen Rechenschlitten 800) umfasst, die Verwaltungssoftware (z. B. eine Cloud-Betriebsumgebung wie beispielsweise OpenStack) ausführt, die kommunikativ mit mehreren Schlitten 400 gekoppelt ist, einschließlich einer großen Anzahl von Rechenschlitten 1530 (z. B. jeweils ähnlich dem Rechenschlitten 800), Speicherschlitten 1540 (z. B. jeweils ähnlich dem Speicherschlitten 1400), Beschleunigerschlitten 1550 (z. B. jeweils ähnlich dem Speicherschlitten 1000) und Speichereinrichtungsschlitten 1560 (z. B. jeweils ähnlich dem Speichereinrichtungsschlitten 1200). Einer oder mehrere der Schlitten 1530, 1540, 1550, 1560 können in einem verwalteten Knoten 1570 gruppiert sein, wie beispielsweise durch den Orchestrator-Server 1520, um eine Arbeitslast (z. B. eine Anwendung 1532, die in einer virtuellen Maschine oder in einem Container ausgeführt wird) gemeinsam durchzuführen. Der verwaltete Knoten 1570 kann als eine Anordnung von physikalischen Ressourcen 620, wie beispielsweise Prozessoren 820, Speicherressourcen 720, Beschleunigerschaltungen 1020 oder Datenspeichereinrichtungen 1250, vom gleichen oder von verschiedenen Schlitten 400 ausgeführt sein. Ferner kann der verwaltete Knoten zu dem Zeitpunkt, zu dem dem verwalteten Knoten eine Arbeitslast zugewiesen werden soll, oder zu einem beliebigen anderen Zeitpunkt vom Orchestrator-Server 1520 eingerichtet, definiert oder „hochgefahren“ werden und kann unabhängig davon existieren, ob irgendwelche Arbeitslasten derzeit dem verwalteten Knoten zugewiesen sind. In der veranschaulichenden Ausführungsform kann der Orchestrator-Server 1520 selektiv physikalische Ressourcen 620 von den Schlitten 400 zuweisen und/oder die Zuweisung aufheben und/oder einen oder mehrere Schlitten 400 vom verwalteten Knoten 1570 hinzufügen oder entfernen, als eine Funktion von Quality-of-Service(QoS)-Zielen (z. B. Leistungszielen, die mit Durchsatz, Latenz, Anweisungen pro Sekunde usw. assoziiert sind), die mit einer Service-Level-Vereinbarung für die Arbeitslast (z. B. die Anwendung 1532) assoziiert sind. Auf diese Weise kann der Orchestrator-Server 1520 Telemetriedaten empfangen, die indikativ für Leistungsbedingungen (z. B. Durchsatz, Latenz, Anweisungen pro Sekunde usw.) in jedem Schlitten 400 des verwalteten Knotens 1570 sind, und die Telemetriedaten mit den Quality-of-Service-Zielen vergleichen, um zu bestimmen, ob die Quality-of-Service-Ziele erreicht werden. Falls dies der Fall ist, kann der Orchestrator-Server 1520 zusätzlich bestimmen, ob die Zuweisung von einer oder mehreren physikalischen Ressourcen vom-verwalteten Knoten 1570 aufgehoben werden kann, während die QoS-Ziele weiterhin erfüllt werden, wodurch diese physikalischen Ressourcen zur Verwendung in einem anderen verwalteten Knoten freigegeben werden (z. B. um eine andere Arbeitslast auszuführen). Falls die QoS-Ziele derzeit nicht erfüllt sind, kann der Orchestrator-Server 1520 alternativ bestimmen, dass zusätzliche physikalische Ressourcen dynamisch zugewiesen werden, um die Ausführung der Arbeitslast (z. B. der Anwendung 1532) zu unterstützen, während die Arbeitslast ausgeführt wird.With reference to 15 may be a system for executing one or more workloads (eg, applications) in accordance with the data center 100 be implemented. In the illustrative embodiment, the system 1510 an orchestrator server 1520 which may be implemented as a managed node comprising a computing device (eg, a compute sled 800 ) that executes management software (eg, a cloud operating environment such as OpenStack) communicatively with multiple carriages 400 coupled, including a large number of calculation slides 1530 (eg in each case similar to the calculation slide 800 ), Storage sled 1540 (eg, each similar to the storage sled 1400 ), Accelerator carriage 1550 (eg, each similar to the storage sled 1000 ) and storage sled 1560 (eg, each similar to the storage device sled 1200 ). One or more of the sledges 1530 . 1540 . 1550 . 1560 can be in a managed node 1570 be grouped, such as by the Orchestrator server 1520 to a workload (for example, an application 1532 performed in a virtual machine or in a container). The managed node 1570 can be considered an arrangement of physical resources 620 such as processors 820 , Memory resources 720 , Accelerator circuits 1020 or data storage devices 1250 , the same or different sledges 400 be executed. Further, the managed node may be serviced by the Orchestrator server at the time the managed node is to be assigned a workload or at any other time 1520 set up, defined or "booting up" and may exist regardless of whether any workloads are currently assigned to the managed node. In the illustrative embodiment, the orchestrator server 1520 selectively physical resources 620 from the sledges 400 assign and / or cancel the assignment and / or one or more sleds 400 from the managed node 1570 add or remove as a function of quality of service (QoS) goals (eg, performance goals associated with throughput, latency, instructions per second, etc.) that are associated with a service level agreement for the service Workload (eg the application 1532 ) are associated. That way, the Orchestrator server can 1520 Receive telemetry data indicative of performance conditions (eg, throughput, latency, instructions per second, etc.) in each sled 400 of the managed node 1570 compare the telemetry data with the Quality of Service targets to determine if the Quality of Service goals are met. If so, the Orchestrator server can 1520 additionally determine whether the allocation of one or more physical resources from the managed node 1570 can be canceled while the QoS targets are still satisfied, thereby releasing these physical resources for use in another managed node (eg, to perform a different workload). If the QoS targets are currently not met, the Orchestrator server can 1520 alternatively, determine that additional physical resources are dynamically allocated to the execution of the workload (eg, the application 1532 ) while the workload is running.

Zusätzlich kann der Orchestrator-Server 1520 in einigen Ausführungsformen Trends bei der Ressourcennutzung der Arbeitslast (z. B. der Anwendung 1532) identifizieren, wie beispielsweise durch Identifizieren von Phasen der Ausführung (z. B. Zeitperioden, in denen unterschiedliche Operationen mit jeweils verschiedenen Ressourcennutzungseigenschaften durchgeführt werden) der Arbeitslast (z. B. der Anwendung 1532) und präventives Identifizieren verfügbarer Ressourcen im Datenzentrum 100 und deren Zuweisen zum verwalteten Knoten 1570 (z. B. innerhalb einer vordefinierten Zeitperiode des assoziierten Phasenbeginns). In einigen Ausführungsformen kann der Orchestrator-Server 1520 die Leistung basierend auf verschiedenen Latenzen und einem Verteilungsschema modellieren, um Arbeitslasten zwischen Rechenschlitten und anderen Ressourcen (z. B. Beschleunigerschlitten, Speicherschlitten, Speichereinrichtungsschlitten) im Datenzentrum 100 zu platzieren. Beispielsweise kann der Orchestrator-Server 1520 ein Modell nutzen, das die Leistung von Ressourcen auf den Schlitten 400 (z. B. FPGA-Leistung, Speicherzugriffslatenz usw.) und die Leistung (z. B. Überlastung, Latenz, Bandbreite) des Pfads durch das Netz zur Ressource (z. B. FPGA) berücksichtigt. Somit kann der Orchestrator-Server 1520 basierend auf der Gesamtlatenz, die mit jeder im Datenzentrum 100 verfügbaren potentiellen Ressource assoziiert ist, bestimmen, welche Ressource(n) mit welchen Arbeitslasten verwendet werden sollte(n) (z. B. die mit der Leistung der Ressource selbst assoziierte Latenz zusätzlich zur Latenz, die mit dem Pfad durch das Netz zwischen dem Rechenschlitten, der die Arbeitslast ausführt, und dem Schlitten 400, auf dem sich die Ressource befindet, assoziiert ist).In addition, the Orchestrator server 1520 in some embodiments, resource utilization trends of the workload (e.g., the application 1532 ), such as by identifying phases of execution (e.g., periods of time in which different operations are performed with different resource usage characteristics) of the workload (e.g., the application 1532 ) and preventively identifying available resources in the data center 100 and their assignment to the managed node 1570 (eg within a predefined time period of the associated phase start). In some embodiments, the Orchestrator server 1520 Model performance based on different latencies and a distribution scheme to workloads between calculation slides and other resources (such as accelerator sleds, storage sleds, storage sleds) in the data center 100 to place. For example, the Orchestrator server 1520 use a model that reduces the power of resources on the sled 400 (eg, FPGA power, memory access latency, etc.) and the power (eg, congestion, latency, bandwidth) of the path through the network to the resource (eg, FPGA). Thus, the Orchestrator server 1520 based on the overall latency, with everyone in the data center 100 determine which resource (s) should be used with which workloads (eg, the latency associated with the performance of the resource itself in addition to the latency associated with the path through the network between the compute carriage that carries out the workload, and the sled 400 that the resource is associated with).

In einigen Ausführungsformen kann der Orchestrator-Server 1520 eine Karte der Wärmeerzeugung im Datenzentrum 100 unter Verwendung von Telemetriedaten (z. B. Temperaturen, Lüftergeschwindigkeiten usw.) erzeugen, die von den Schlitten 400 gemeldet werden, und Ressourcen zu verwalteten Knoten als eine Funktion der Karte der Wärmeerzeugung und der vorhergesagten Wärmeerzeugung zuweisen, die mit verschiedenen Arbeitslasten assoziiert sind, um eine Zieltemperatur und Wärmeverteilung im Datenzentrum 100 aufrechtzuerhalten. Zusätzlich oder alternativ kann der Orchestrator-Server 1520 in einigen Ausführungsformen empfangene Telemetriedaten in ein hierarchisches Modell organisieren, das indikativ für eine Beziehung zwischen den verwalteten Knoten ist (z. B. eine räumliche Beziehung, wie beispielsweise die physikalischen Orte der Ressourcen der verwalteten Knoten innerhalb des Datenzentrums 100, und/oder eine funktionale Beziehung, wie beispielsweise Gruppierungen der verwalteten Knoten durch die Kunden, für die die verwalteten Knoten Dienste bereitstellen, die Arten von Funktionen, die typischerweise von den verwalteten Knoten ausgeführt werden, verwaltete Knoten, die typischerweise Arbeitslasten untereinander teilen oder austauschen, usw.). Basierend auf Unterschieden in den physikalischen Orten und Ressourcen in den verwalteten Knoten kann eine gegebene Arbeitslast unterschiedliche Ressourcennutzungen über die Ressourcen verschiedener verwalteter Knoten aufweisen (z. B. eine unterschiedliche interne Temperatur bewirken, einen unterschiedlichen Prozentsatz der Prozessor- oder Speicherkapazität verwenden). Der Orchestrator-Server 1520 kann die Unterschiede basierend auf den im hierarchischen Modell gespeicherten Telemetriedaten bestimmen und die Unterschiede in eine Vorhersage der zukünftigen Ressourcennutzung einer Arbeitslast einfließen lassen, falls die Arbeitslast von einem verwalteten Knoten zu einem anderen verwalteten Knoten neu zugewiesen wird, um die Ressourcennutzung im Datenzentrum 100 genau auszugleichen.In some embodiments, the Orchestrator server 1520 a map of heat production in the data center 100 using telemetry data (eg, temperatures, fan speeds, etc.) generated by the slides 400 and allocate resources to managed nodes as a function of the map of heat generation and predicted heat generation associated with different workloads to a target temperature and heat distribution in the data center 100 maintain. Additionally or alternatively, the Orchestrator server 1520 in some embodiments, organize telemetry data received into a hierarchical model that is indicative of a relationship between the managed nodes (eg, a spatial relationship, such as the physical locations of the managed node resources within the data center 100 , and / or a functional relationship, such as customer groupings of the managed nodes for which the managed nodes provide services, the types of functions typically performed by the managed nodes, managed nodes that typically share or exchange workloads , etc.). Based on differences in the physical locations and resources in the managed nodes, a given workload may have different resource usages over the resources of different managed nodes (eg, cause a different internal temperature, use a different percentage of the processor or memory capacity). The Orchestrator server 1520 can determine the differences based on the telemetry data stored in the hierarchical model and incorporate the differences in a prediction of the future resource utilization of a workload, if the workload is reassigned from one managed node to another managed node to the resource usage in the data center 100 to balance exactly.

Um die Rechenlast auf dem Orchestrator-Server 1520 und die Datenübertragungslast auf dem Netz zu reduzieren, kann der Orchestrator-Server 1520 in einigen Ausführungsformen Selbsttestinformationen zu den Schlitten 400 senden, um jedem Schlitten 400 zu ermöglichen. lokal (z. B. auf dem Schlitten 400) zu bestimmen, ob Telemetriedaten, die vom Schlitten 400 erzeugt werden, eine oder mehrere Bedingungen (z. B. eine verfügbare Kapazität, die einen vordefinierten Schwellenwert erfüllt, eine Temperatur, die einen vordefinierten Schwellenwert erfüllt, usw.) erfüllen. Jeder Schlitten 400 kann dann ein vereinfachtes Ergebnis (z. B. Ja oder Nein) an den Orchestrator-Server 1520 zurückmelden, das der Orchestrator-Server 1520 beim Bestimmen der Zuweisung von Ressourcen an verwaltete Knoten nutzen kann.To the workload on the Orchestrator server 1520 and to reduce the data transfer load on the network, the Orchestrator server 1520 in some embodiments, self-test information about the carriages 400 send to everyone carriage 400 to enable. locally (eg on the sled 400 ) to determine if telemetry data coming from the sled 400 one or more conditions (eg, an available capacity that meets a predefined threshold, a temperature that meets a predefined threshold, etc.). Every sled 400 can then return a simplified result (such as Yes or No) to the Orchestrator server 1520 Report back to the Orchestrator server 1520 in determining the allocation of resources to managed nodes.

Unter Bezugnahme auf 16 kann ein System 1600 zur Bandbreitenzuweisung in Übereinstimmung mit dem Datenzentrum 100 implementiert werden, das oben unter Bezugnahme auf 1-15 beschrieben wurde. Wie gezeigt, weist das System 1600 einen Ressourcenmanagerserver 1602 und mehrere Schlitten 1610, 1612, 1614, 1616, 1618, 1620 auf, die über ein Netz unter Verwendung mehrerer Switches 1604, 1606, 1608 kommunizieren. Der Ressourcenmanagerserver 1602 und die Schlitten 1610, 1612, 1614, 1616, 1618, 1620 können jeweils als Servercomputer, Rack-Server, Blade-Server, Rechenknoten und/oder Schlitten in einem Datenzentrum ausgebildet sein, wie beispielsweise ein Schlitten 400, wie oben in Verbindung mit 1-15 beschrieben, oder ein anderer Schlitten des Datenzentrums.With reference to 16 can a system 1600 for bandwidth allocation in accordance with the data center 100 be implemented, with reference to above 1-15 has been described. As shown, the system points 1600 a resource manager server 1602 and several sleds 1610 . 1612 . 1614 . 1616 . 1618 . 1620 on that over a network using multiple switches 1604 . 1606 . 1608 communicate. The resource manager server 1602 and the sledges 1610 . 1612 . 1614 . 1616 . 1618 . 1620 may each be configured as server computers, rack servers, blade servers, compute nodes, and / or carriages in a data center, such as a sled 400 as above in connection with 1-15 described, or another sled of the data center.

Die Netzelemente des Systems 1600 sind in einer Netztopologie organisiert. Wie gezeigt, können die Schlitten 1610, 1612, 1614 in einem Rack organisiert sein und jeweils mit dem Switch 1606 verbunden sein, der als ein Top-of-Rack-Switch, Middle-of-Rack-Switch, End-of-Row-Switch oder eine andere Switch-Vorrichtung ausgeführt sein kann. In ähnlicher Weise sind die Schlitten 1616, 1618, 1620 mit dem Switch 1608 verbunden. Die Switches 1606, 1608 sind wiederum mit dem Switch 1604 verbunden, der als ein Datenzentrumsdomänen-Switch oder ein anderer Upstream-Switch ausgeführt sein kann. Der Ressourcenmanagerserver 1602 ist so veranschaulicht, dass er mit dem Upstream-Switch 1604 verbunden ist, kann in anderen Ausführungsformen jedoch mit einer beliebigen anderen Stelle in der Netztopologie verbunden sein. Wie in 16 gezeigt, sind die Switches 1604, 1606, 1608 somit in mehreren Schichten organisiert, und das Senden von Daten über Schichten kann Schaltlatenz, Warteschlangenlatenz oder andere Latenzen hinzufügen.The network elements of the system 1600 are organized in a network topology. As shown, the slides can 1610 . 1612 . 1614 be organized in a rack and each with the switch 1606 which may be implemented as a top-of-rack switch, middle-of-rack switch, end-of-row switch, or other switch device. Similarly, the sledges 1616 . 1618 . 1620 with the switch 1608 connected. The switches 1606 . 1608 are in turn with the switch 1604 which may be implemented as a data center domain switch or other upstream switch. The resource manager server 1602 is illustrated with the upstream switch 1604 however, in other embodiments may be connected to any other location in the network topology. As in 16 shown are the switches 1604 . 1606 . 1608 thus, organized in multiple layers, and sending data across layers can add switching latency, queue latency, or other latencies.

Obwohl der Ressourcenmanagerserver 1602 als eine Einzelserver-Rechenvorrichtung veranschaulicht ist, kann der Ressourcenmanagerserver 1602 in einigen Ausführungsformen als ein „virtueller Server“ ausgeführt sein, der aus mehreren verteilten Rechenvorrichtungen ausgebildet ist, die über das System 1600 verteilt sind und/oder oder in einer öffentlichen oder privaten Cloud arbeiten. Obwohl der Ressourcenmanagerserver 1602 als eine Einzelserver-Rechenvorrichtung ausgeführt in 16 veranschaulicht und nachstehend beschrieben ist, sollte dementsprechend beachtet werden, dass der Ressourcenmanagerserver 1602 als mehrere Vorrichtungen ausgeführt sein kann, die zusammenwirken, um die nachstehend beschriebene Funktionalität zu ermöglichen.Although the resource manager server 1602 is illustrated as a single server computing device, the resource manager server 1602 in some embodiments, may be implemented as a "virtual server" formed of a plurality of distributed computing devices passing through the system 1600 are distributed and / or working in a public or private cloud. Although the resource manager server 1602 as a single-server computing device executed in 16 Accordingly, it should be noted that the resource manager server 1602 may be implemented as a plurality of devices cooperating to provide the functionality described below.

Im Einsatz kann der Ressourcenmanagerserver 1602, wie weiter unten beschrieben, die Netztopologie des Systems 1600 entdecken und ein Modell einer Ressourcen-Oversubscription im System 1600 konstruieren. Eine Ressourcen-Oversubscription kann eine Netz-Uplink-Oversubscription, eine Speichereinrichtungsressourcen-Oversubscription oder einen beliebigen anderen Umstand umfassen, bei dem die von den Schlitten erzeugte aggregierte Bandbreite oder anderer Bedarf die verfügbare Bandbreite oder andere Kapazität des Systems 1600 überschreitet. Der Ressourcenmanagerserver 1602 kann Bandbreitengrenzen für jeden Schlitten oder ein anderes Netzelement des Systems 1600 bestimmen und diese Bandbreitengrenzen für die Netzelemente programmieren. Jedes Netzelement setzt die programmierten Bandbreitengrenzen durch, was eine Netzüberlastung reduzieren kann. Durch Reduzieren der Überlastung kann das System 1600 Warteschlangenlatenz für jede Schicht von Switches eliminieren oder reduzieren. Beispielsweise können Bandbreitengrenzen für einen Speichereinrichtungsschlitten 1610 sicherstellen, dass Non-Volatile-Memory-Express(NVMe)-über-Ethernet-Datenverkehr, der vom Speichereinrichtungsschlitten 1610 (und von anderen Speichereinrichtungsschlitten) erzeugt wird, die verfügbare Upstream-Bandbreite nicht überschreitet. Dementsprechend kann das System 1600 die Netzlatenz verbessern und eine Netzüberlastung reduzieren, ohne teure Bandbreitenreservierungsmechanismen auf der Switch-Ebene zu implementieren.In use, the resource manager server 1602 as described below, the network topology of the system 1600 discover and model a resource overubscription in the system 1600 to construct. A resource oversubscription may include a network uplink overubscription, a storage resource overubscription, or any other circumstance where the aggregate bandwidth or other demand generated by the carriages is the available bandwidth or other capacity of the system 1600 exceeds. The resource manager server 1602 can set bandwidth limits for each sled or other network element of the system 1600 and program these bandwidth limits for the network elements. Each network element enforces the programmed bandwidth limits, which can reduce network congestion. By reducing the congestion, the system can 1600 Eliminate or reduce queue latency for each layer of switches. For example, bandwidth limits may be for a storage device sled 1610 Ensure non-volatile Memory Express (NVMe) over Ethernet traffic from the storage device sled 1610 (and from other storage device carriages) that does not exceed available upstream bandwidth. Accordingly, the system can 1600 improve network latency and reduce network congestion without implementing expensive switch-level bandwidth reservation mechanisms.

Unter Bezugnahme auf 17 ist eine veranschaulichende Rechenvorrichtung 1700 gezeigt. Die Rechenvorrichtung 1700 kann der Ressourcenmanagerserver 1602, ein Schlitten 400, ein Speichereinrichtungsschlitten 1200, 1610, 1614, 1616, 1620, ein Beschleunigerschlitten 1000, ein Speicherschlitten 1400, ein Rechenschlitten 800, 1612, 1618 und/oder eine ähnliche Server-Rechenvorichtung sein. Wie in 17 gezeigt, weist die Rechenvorrichtung 1700 veranschaulichend einen Prozessor 1720, ein Eingabe/Ausgabe-Untersystem 1722, einen Speicher 1724, eine Datenspeichereinrichtung 1726, ein Kommunikationsuntersystem 1728, und/oder andere Komponenten und Vorrichtungen auf, die üblicherweise in einem Schlitten 400, einem Speichereinrichtungsschlitten 1200, 1610, 1614, 1616, 1620, einem Beschleunigerschlitten 1000, einem Speicherschlitten 1400, einem Rechenschlitten 800, 1612, 1618 und/oder einer ähnlichen Server-Rechenvorichtung gefunden werden. Natürlich kann die Rechenvorrichtung 1700 in anderen Ausführungsformen andere oder zusätzliche Komponenten aufweisen, wie sie üblicherweise in einem Servercomputer zu finden sind (z. B. verschiedene Eingabe/AusgabeVorrichtungen). Zusätzlich können in einigen Ausführungsformen eine oder mehrere der veranschaulichenden Komponenten in einer anderen Komponente integriert sein oder anderweitig einen Teil davon ausbilden. Beispielsweise kann der Speicher 1724, oder Teile davon, in einigen Ausführungsformen im Prozessor 1720 integriert sein.With reference to 17 is an illustrative computing device 1700 shown. The computing device 1700 can be the resource manager server 1602 , a sleigh 400 , a storage device sled 1200 . 1610 . 1614 . 1616 . 1620 , an accelerator sled 1000 , a storage sledge 1400 , a calculating slide 800 . 1612 . 1618 and / or a similar server computing device. As in 17 shown has the computing device 1700 Illustrates a processor 1720 , an input / output subsystem 1722 , a store 1724 , a data storage device 1726 , a communication subsystem 1728 , and / or other components and devices commonly found in a carriage 400 , a storage device sled 1200 . 1610 . 1614 . 1616 . 1620 , an accelerator carriage 1000 , a storage sledge 1400 , a calculating slide 800 . 1612 . 1618 and / or a similar server computing device. Of course, the computing device can 1700 in other embodiments have other or additional components as commonly found in a server computer (eg, various input / output devices). In addition, in some embodiments, one or more of the illustrative components may be integrated with or otherwise form part of another component. For example, the memory 1724 or parts thereof, in some embodiments in the processor 1720 be integrated.

Der Prozessor 1720 kann als eine beliebige Art von Prozessor, welcher die hierin beschriebenen Funktionen durchführen kann, ausgeführt sein. Beispielsweise kann der Prozessor 1720 als Einzel- oder Multikernprozessor(en), digitaler Signalprozessor, Mikrocontroller oder ein anderer Prozessor oder Verarbeitungs-/Steuerschaltung ausgeführt sein. Ähnlich kann der Speicher 1724 als eine beliebige Art von flüchtigem oder nicht-flüchtigem Speicher oder Datenspeichereinrichtung, welche(r) die hierin beschriebenen Funktionen durchführen kann, ausgeführt sein. Beim Betrieb kann der Speicher 1724 verschiedene Daten und Software speichern, die während des Betriebs der Rechenvorrichtung 1700 verwendet werden, wie beispielsweise Betriebssysteme, Anwendungen, Programme, Bibliotheken und Treiber. Der Speicher 1724 ist kommunikativ mit dem Prozessor 1720 über das E/A-Untersystem 1722 gekoppelt, das als Schaltungen und/oder Komponenten ausgeführt sein kann, um die Eingabe/Ausgabe-Operationen mit dem Prozessor 1720, dem Speicher 1724 und anderen Komponenten der Rechenvorrichtung 1700 zu ermöglichen. Beispielsweise kann das E/A-Untersystem 1722 als Speichercontroller-Hubs, Eingabe/Ausgabe-Steuerungs-Hubs, Sensor-Hubs, Firmwarevorrichtungen, Kommunikationsverbindungen (d. h. Punkt-zu-Punkt-Verbindungen, Busverbindungen, Drähte, Kabel, Lichtleiter, Leiterbahnen von gedruckten Leiterplatten usw.) und/oder andere Komponenten und Untersysteme, um die Eingabe/Ausgabe-Operationen zu ermöglichen, ausgeführt sein oder anderweitig aufweisen. In einigen Ausführungsformen kann das E/A-Untersystem 1722 einen Teil eines System-on-a-Chip (SoC) ausbilden und, zusammen mit dem Prozessor 1720, dem Speicher 1724 und anderen Komponenten der Rechenvorrichtung 1700, auf einem einzelnen integrierten Schaltungschip integriert sein.The processor 1720 may be embodied as any type of processor capable of performing the functions described herein. For example, the processor 1720 be implemented as a single or multi-core processor (s), digital signal processor, microcontroller or other processor or processing / control circuit. Similarly, the memory can 1724 as any type of volatile or non-volatile memory or data storage device capable of performing the functions described herein. During operation, the memory can 1724 store various data and software during operation of the computing device 1700 such as operating systems, applications, programs, libraries and drivers. The memory 1724 is communicative with the processor 1720 via the I / O subsystem 1722 coupled, which may be implemented as circuits and / or components to the input / output operations with the processor 1720 the store 1724 and other components of the computing device 1700 to enable. For example, the I / O subsystem 1722 as memory controller hubs, input / output control hubs, sensor hubs, firmware devices, communication links (ie, point-to-point links, bus links, wires, cables, optical fibers, printed circuit board traces, etc.) and / or other components and subsystems to enable, execute, or otherwise have the input / output operations. In some embodiments, the I / O subsystem 1722 form part of a system-on-a-chip (SoC) and, together with the processor 1720 the store 1724 and other components of the computing device 1700 be integrated on a single integrated circuit chip.

Die Datenspeichereinrichtung 1726 kann als eine beliebige Art von Vorrichtung oder Vorrichtungen ausgeführt sein, die für kurzfristige oder langfristige Speicherung von Daten ausgelegt sind, wie beispielsweise Speichervorrichtungen und -schaltungen, Speicherkarten, Festplattenlaufwerke, Solid-State-Drives, nicht-flüchtiger Flash-Speicher oder andere Datenspeichereinrichtungen. Die Rechenvorrichtung 1700 kann auch ein Kommunikationsuntersystem 1728 aufweisen, das als eine beliebige Kommunikationsschaltung, Vorrichtung oder Sammlung davon ausgeführt sein kann, die Kommunikationen zwischen der Rechenvorrichtung 1700 und anderen entfernten Vorrichtungen über ein Computernetz (nicht gezeigt) ermöglichen kann. Das Kommunikationsuntersystem 1728 kann ausgelegt sein, um eine oder mehrere Kommunikationstechnologien (z. B. drahtgebundene oder drahtlose Kommunikationen) und zugehörige Protokolle (z. B. Ethernet, InfiniBand®, Bluetooth®, Wi-Fi®, WiMAX, 3G, 4G LTE usw.) zu verwenden, um eine derartige Kommunikation zu bewirken. Wie gezeigt, kann das Kommunikationsuntersystem 1728 einen Netzschnittstellencontroller (NIC, Network Interface Controller) 1330 aufweisen.The data storage device 1726 may be embodied as any type of device or devices designed for short-term or long-term storage of data, such as memory devices and circuits, memory cards, hard disk drives, solid-state drives, non-volatile flash memory, or other data storage devices. The computing device 1700 can also be a communication subsystem 1728 which may be embodied as any communication circuit, device or collection thereof, the communications between the computing device 1700 and other remote devices via a computer network (not shown). The communication subsystem 1728 may be designed to accommodate one or more communication technologies (eg, wired or wireless communications) and associated protocols (eg, Ethernet, InfiniBand®, Bluetooth®, Wi-Fi®, WiMAX, 3G, 4G LTE, etc.) use to effect such communication. As shown, the communication subsystem 1728 a network interface controller (NIC) 1330.

Das veranschaulichende Kommunikationsuntersystem 1728 weist einen Netzschnittstellencontroller (NIC, Network Interface Controller) 1330 auf. Der NIC 1730 kann als ein(e) oder mehrere Add-in-Boards, Tochterkarten, Controllerchips, Chipsätze, Schaltungen oder andere Vorrichtungen ausgeführt sein, die von der Rechenvorrichtung 1700 für Netzkommunikationen mit entfernten Vorrichtungen verwendet werden können. Beispielsweise kann der NIC 1730 als eine Erweiterungskarte ausgeführt sein, die über einen Erweiterungsbus, wie beispielsweise PCI Express, mit dem E/A-Untersystem 1722 gekoppelt ist. Als ein anderes Beispiel kann der NIC 1730 in einigen Ausführungsformen als ein Netzcontroller, eine Host-Fabric-Schnittstelle oder eine andere Komponente ausgeführt sein, die mit dem E/A-Untersystem 1722, dem Prozessor 1720, einem SoC und/oder einer oder mehreren anderen Komponenten der Rechenvorrichtung 1700 integriert ist.The illustrative communication subsystem 1728 has a network interface controller (NIC) 1330. The NIC 1730 may be implemented as one or more add-in boards, daughter cards, controller chips, chipsets, circuits, or other devices provided by the computing device 1700 can be used for network communications with remote devices. For example, the NIC 1730 as an expansion card that connects to the I / O subsystem via an expansion bus, such as PCI Express 1722 is coupled. As another example, the NIC 1730 In some embodiments, it may be implemented as a network controller, a host fabric interface, or another component that interfaces with the I / O subsystem 1722 , the processor 1720 , a SoC and / or one or more other components of the computing device 1700 is integrated.

Wie gezeigt, kann die Rechenvorrichtung 1700 auch eine oder mehrere Peripherievorrichtungen 1732 aufweisen. Die Peripherievorrichtungen 1732 können eine beliebige Anzahl von zusätzlichen Eingabe/Ausgabe-Vorrichtungen, Schnittstellenvorrichtungen und/oder anderen Peripherievorrichtungen aufweisen. In einigen Ausführungsformen können die Peripherievorrichtungen 1732 beispielsweise eine Anzeige, einen Berührungsbildschirm, Grafikschaltungen, eine Tastatur, eine Maus, ein Lautsprechersystem, ein Mikrofon, eine Netzschnittstelle und/oder andere Eingabe/Ausgabe-Vorrichtungen, Schnittstellenvorrichtungen und/oder Peripherievorrichtungen aufweisen.As shown, the computing device 1700 also one or more peripheral devices 1732 exhibit. The peripheral devices 1732 may include any number of additional input / output devices, interface devices, and / or other peripheral devices. In some embodiments, the peripheral devices 1732 For example, a display, a touch screen, graphics circuits, a keyboard, a mouse, a speaker system, a microphone, a network interface and / or other input / output devices, interface devices and / or peripheral devices.

Unter Bezugnahme auf 18 richtet der Ressourcenmanagerserver 1602 in einer veranschaulichenden Ausführungsform eine Umgebung 1800 während des Betriebs ein. Die veranschaulichende Umgebung 1800 weist einen Topologiemanager 1802, einen Modellkonstruktor 1804, einen Bandbreitengrenzenbestimmer 1806, einen Bandbreitengrenzenprogrammierer 1808 und einen Nutzungsmanager 1810 auf. Die verschiedenen Komponenten der Umgebung 1800 können als Hardware, Firmware, Software oder eine Kombination davon ausgeführt sein. In einigen Ausführungsformen können daher eine oder mehrere der Komponenten der Umgebung 1800 als Schaltungen oder Sammlung von elektrischen Vorrichtungen ausgeführt sein (z. B. Topologiemanagerschaltungen 1802, Modellkonstruktorschaltungen 1804, Bandbreitengrenzenbestimmerschaltungen 1806, Bandbreitengrenzenprogrammiererschaltungen 1808 und/oder Nutzungsmanagerschaltungen 1810). Es sollte beachtet werden, dass in derartigen Ausführungsformen eine oder mehrere der Topologiemanagerschaltungen 1802, der Modellkonstruktorschaltungen 1804, der Bandbreitengrenzenbestimmerschaltungen 1806, der Bandbreitengrenzenprogrammiererschaltungen 1808 und/oder der Nutzungsmanagerschaltungen 1810 einen Teil des Prozessors 1720, des E/A-Untersystems 1722, des NIC 1730 und/oder anderer Komponenten des Ressourcenmanagerservers 1602 ausbilden können. Zusätzlich können in einigen Ausführungsformen eine oder mehrere der veranschaulichenden Komponenten einen Teil einer anderen Komponente ausbilden, und/oder eine oder mehrere der veranschaulichenden Komponenten können voneinander unabhängig sein.With reference to 18 sets up the resource manager server 1602 an environment in one illustrative embodiment 1800 during operation. The illustrative environment 1800 has a topology manager 1802 , a model constructor 1804 , one Bandbreitengrenzenbestimmer 1806 , a bandwidth limit programmer 1808 and a usage manager 1810 on. The different components of the environment 1800 may be implemented as hardware, firmware, software or a combination thereof. In some embodiments, therefore, one or more of the components of the environment may 1800 as circuits or collection of electrical devices (e.g., topology manager circuits 1802 Model Constructor Circuits 1804 , Bandwidth limiters circuits 1806 , Bandwidth Limit Programmer Circuits 1808 and / or usage manager circuits 1810 ). It should be noted that in such embodiments, one or more of the topology manager circuits 1802 , the model constructor circuits 1804 , bandwidth bandwidth estimator circuits 1806 , the bandwidth limit programmer circuits 1808 and / or the usage manager circuits 1810 a part of the processor 1720 , the I / O subsystem 1722 , the NIC 1730 and / or other components of the resource manager server 1602 can train. Additionally, in some embodiments, one or more of the illustrative components may form part of another component, and / or one or more of the illustrative components may be independent of each other.

Der Topologiemanager 1802 ist ausgelegt, um die Topologie der Schlitten zu entdecken, die mit einer Schicht von Switches gekoppelt sind, die kommunikativ mit dem Ressourcenmanagerserver 1602 gekoppelt sind. Der Modellkonstruktor 1804 ist ausgelegt, um ein Modell der Netzkonnektivität zwischen der Mehrzahl von Schlitten und der Schicht von Switches basierend auf der Topologie zu konstruieren. Das Konstruieren des Modells kann die Identifizierung umfassen, welche Schlitten der Mehrzahl von Schlitten mit einem bestimmten Switch der Schicht von Switches verbunden sind.The topology manager 1802 is designed to discover the topology of the sleds coupled to a layer of switches communicatively with the resource manager server 1602 are coupled. The model constructor 1804 is designed to construct a model of network connectivity between the plurality of carriages and the layer of switches based on the topology. Constructing the model may include identifying which carriages of the plurality of carriages are connected to a particular switch of the layer of switches.

Der Bandbreitengrenzenbestimmer 1806 ist ausgelegt, um eine Oversubscription des Netzes basierend auf dem Modell der Netzkonnektivität zu bestimmen. Die Oversubscription basiert auf einer verfügbaren Bandbreite für die Schicht von Switches und einer maximalen Bandbreite der Schlitten. Der Bandbreitengrenzenbestimmer 1806 kann eine Netz-Uplink-Oversubscription für die Schicht von Switches bestimmen oder kann eine Speichereinrichtungsressourcen-Oversubscription der Schlitten bestimmen. Der Bandbreitengrenzenbestimmer 1806 ist ferner ausgelegt, um eine Bandbreitengrenze für jeden Schlitten basierend auf der Oversubscription zu bestimmen. Der Bandbreitengrenzenprogrammierer 1808 ist ausgelegt, um jeden Schlitten mit der entsprechenden Bandbreitengrenze zu programmieren. Der Bandbreitengrenzenprogrammierer 1808 kann die Bandbreitengrenze an den NIC 1730 des entsprechenden Schlittens kommunizieren.The bandwidth limit determiner 1806 is designed to determine an over-subscription of the network based on the network connectivity model. The oversubscription is based on available bandwidth for the layer of switches and a maximum bandwidth of the carriages. The bandwidth limit determiner 1806 may determine a network uplink overubscription for the layer of switches or may determine a storage resource over-subscription of the sleds. The bandwidth limit determiner 1806 is further configured to determine a bandwidth limit for each carriage based on the overubscription. The bandwidth limit programmer 1808 is designed to program each carriage with the appropriate bandwidth limit. The bandwidth limit programmer 1808 can limit the bandwidth to the NIC 1730 communicate the corresponding carriage.

Der Nutzungsmanager 1810 ist ausgelegt, um eine Bandbreitennutzung der Schlitten zu überwachen. Das Überwachen der Bandbreitennutzung kann das Empfangen von Telemetriedaten von den Schlitten umfassen, die indikativ für die Bandbreite sind, die von jedem Schlitten genutzt werden. Der Nutzungsmanager 1810 ist ferner ausgelegt, um zu bestimmen, ob das Netz überlastet ist, basierend auf der Bandbreitennutzung der Mehrzahl von Schlitten. Beispielsweise kann das Bestimmen, ob das Netz überlastet ist, das Bestimmen umfassen, ob eine Warteschlangentiefe des Netzes eine vorbestimmte Warteschlangentiefengrenze für eine vorbestimmte Zeitdauer überschreitet. In einigen Ausführungsformen kann das Bestimmen, ob das Netz überlastet ist, das Überwachen von Bandbreite pro Klasse von Netzverkehr umfassen, wie beispielsweise NVMe-über-Ethernet-Verkehr, Feldprogrammierbares-Gate-Array(FPGA)-über-Ethernet-Verkehr, Speichereinrichtungsverkehr und/oder andere Verkehrsklassen. Jede Verkehrsklasse kann unabhängig mit ihren eigenen Warteschlangentiefensteuerungen überwacht werden. Ferner kann die Bandbreite an der Quelle oder am Ziel oder in einigen Ausführungsformen basierend auf Kombinationen von Quelle- und Zielpaaren begrenzt sein. Der Nutzungsmanager 1810 ist ferner ausgelegt, um eine Bandbreitengrenze in Reaktion auf das Bestimmen, dass das Netz überlastet ist, zu modifizieren. Die Bandbreitengrenze kann für jeden Schlitten reduziert werden, der mit einem Fluss mit hoher Eingangsrate assoziiert ist.The usage manager 1810 is designed to monitor a bandwidth utilization of the carriages. Bandwidth usage monitoring may include receiving telemetry data from the carriages indicative of the bandwidth utilized by each carriage. The usage manager 1810 is further configured to determine whether the network is congested based on the bandwidth utilization of the plurality of carriages. For example, determining whether the network is congested may include determining whether a network queuing depth exceeds a predetermined queue depth limit for a predetermined period of time. In some embodiments, determining whether the network is congested may include monitoring bandwidth per class of network traffic, such as NVMe over Ethernet traffic, field programmable gate array (FPGA) over Ethernet traffic, storage device traffic, and / or other traffic classes. Each traffic class can be independently monitored with its own queue depth controls. Further, the bandwidth at the source or at the destination or in some embodiments may be limited based on combinations of source and destination pairs. The usage manager 1810 is further configured to modify a bandwidth limit in response to determining that the network is overloaded. The bandwidth limit can be reduced for each carriage associated with a high input rate flow.

Unter Bezugnahme auf 19 richtet ein Speichereinrichtungsschlitten 1610 in einer veranschaulichenden Ausführungsform eine Umgebung 1900 während des Betriebs ein. Es sollte verstanden werden, dass die Umgebung 1900 auch durch andere Schlitten des Systems 1600 eingerichtet werden kann. Die veranschaulichende Umgebung 1900 weist einen Bandbreitengrenzenmanager 1904, einen Bandbreitenprogrammierer 1906 und einen Telemetriedatenmanager 1908 auf. Die verschiedenen Komponenten der Umgebung 1900 können als Hardware, Firmware, Software oder eine Kombination davon ausgeführt sein. In einigen Ausführungsformen können daher eine oder mehrere der Komponenten der Umgebung 1900 als Schaltungen oder Sammlung von elektrischen Vorrichtungen ausgeführt sein (z. B. Bandbreitengrenzenmanagerschaltungen 1904, Bandbreitenprogrammiererschaltungen 1906 und/oder Telemetriedatenmanagerschaltungen 1908). Es sollte beachtet werden, dass in derartigen Ausführungsformen eine oder mehrere der Bandbreitengrenzenmanagerschaltungen 1904, der Bandbreitenprogrammiererschaltungen 1906 und/oder der Telemetriedatenmanagerschaltungen 1908 einen Teil des Prozessors 1720, des E/A-Untersystems 1722, des NIC 1730 und/oder anderer Komponenten des Speichereinrichtungsschlittens 1610 ausbilden können. Zusätzlich können in einigen Ausführungsformen eine oder mehrere der veranschaulichenden Komponenten einen Teil einer anderen Komponente ausbilden, und/oder eine oder mehrere der veranschaulichenden Komponenten können voneinander unabhängig sein.With reference to 19 aligns a storage device sled 1610 an environment in one illustrative embodiment 1900 during operation. It should be understood that the environment 1900 also by other sleds of the system 1600 can be set up. The illustrative environment 1900 has a bandwidth limit manager 1904 , a bandwidth programmer 1906 and a telemetry data manager 1908 on. The different components of the environment 1900 may be implemented as hardware, firmware, software or a combination thereof. In some embodiments, therefore, one or more of the components of the environment may 1900 as circuits or collection of electrical devices (e.g., bandwidth limit manager circuits 1904 , Bandwidth Programmer Circuits 1906 and / or telemetry data manager circuits 1908 ). It should be noted that in such embodiments, one or more of the bandwidth limit manager circuits 1904 , the bandwidth programmer circuits 1906 and / or the Telemetry data manager circuits 1908 a part of the processor 1720 , the I / O subsystem 1722 , the NIC 1730 and / or other components of the storage device carriage 1610 can train. Additionally, in some embodiments, one or more of the illustrative components may form part of another component, and / or one or more of the illustrative components may be independent of each other.

Der Bandbreitenprogrammierer 1906 ist ausgelegt, um eine Bandbreitengrenze für den Schlitten vom Ressourcenmanagerserver 1602 zu empfangen und um die Bandbreitengrenze für den NIC 1730 des Schlittens zu programmieren. Der Bandbreitengrenzenmanager 1904 ist ausgelegt, um die Bandbreitengrenze in Reaktion auf das Programmieren der Bandbreitengrenze durch den NIC 1730 durchzusetzen.The bandwidth programmer 1906 is designed to set a bandwidth limit for the sled from the resource manager server 1602 to receive and the bandwidth limit for the NIC 1730 to program the slide. The bandwidth limit manager 1904 is designed to set the bandwidth limit in response to the programming of the bandwidth limit by the NIC 1730 to enforce.

Der Telemetriedatenmanager 1908 ist ausgelegt, um Telemetriedaten, die indikativ für die Nutzung des NIC 1730 sind, an den Ressourcenmanagerserver 1602 zu senden. Die Telemetriedaten können vom NIC 1730 gesendet werden. Die Telemetriedaten können indikativ für eine NIC-Warteschlangentiefe und/oder eine Netzstapel-Warteschlangentiefe sein.The telemetry data manager 1908 is designed to provide telemetry data indicative of the use of the NIC 1730 are to the resource manager server 1602 to send. The telemetry data can be obtained from the NIC 1730 be sent. The telemetry data may be indicative of a NIC queue depth and / or a network stack queue depth.

Unter Bezugnahme auf 20 kann der Ressourcenmanagerserver 1602 im Einsatz ein Verfahren 2000 zur Bandbreitenzuweisung ausführen. Es sollte beachtet werden, dass die Operationen des Verfahrens 2000 in einigen Ausführungsformen durch eine oder mehrere Komponenten der Umgebung 1800 des Ressourcenmanagerservers 1602 durchgeführt werden können, wie in 18 gezeigt. Das Verfahren 2000 beginnt in Block 2002, in dem der Ressourcenmanagerserver 1602 die Netztopologie der Komponenten des Systems 1600 entdeckt. Die Topologie kann zur Designzeit des Systems 1600 vorbestimmt sein oder kann in einigen Ausführungsformen unter Verwendung eines Topologieentdeckungsprotokolls oder einer anderen Entdeckungstechnik entdeckt werden. In einigen Ausführungsformen kann der Ressourcenmanagerserver 1602 in Block 2004 Schlitten, Racks, Switches und Netzverbindungen des Systems 1600 entdecken. Beispielsweise kann der Ressourcenmanagerserver 1602 identifizieren, dass ein Schlitten mit einem bestimmten Port eines Switches verbunden ist. Als weiteres Beispiel kann der Ressourcenmanagerserver 1602 identifizieren, dass ein Port eines Switches mit einem bestimmten Port eines Upstream-Switches verbunden ist.With reference to 20 can be the resource manager server 1602 in use a procedure 2000 for bandwidth allocation. It should be noted that the operations of the procedure 2000 in some embodiments by one or more components of the environment 1800 of the resource manager server 1602 can be performed as in 18 shown. The procedure 2000 starts in block 2002 in which the resource manager server 1602 the network topology of the components of the system 1600 discovered. The topology may be at the design time of the system 1600 is predetermined or may be discovered in some embodiments using a topology discovery protocol or other discovery technique. In some embodiments, the resource manager server 1602 in block 2004 Slides, racks, switches and network connections of the system 1600 discover. For example, the resource manager server 1602 identify that a slide is connected to a specific port of a switch. As another example, the resource manager server 1602 identify that a port of a switch is connected to a specific port of an upstream switch.

In Block 2006 konstruiert der Ressourcenmanagerserver 1602 ein Modell der Netzkonnektivität zwischen den Komponenten des Systems 1600. Das Modell kann Netzverbindungen und die zugehörige verfügbare Bandbreite zwischen Schlitten, Switches und anderen Netzelementen des Systems 1600 identifizieren.In block 2006 constructs the resource manager server 1602 a model of network connectivity between the components of the system 1600 , The model can handle network connections and the associated available bandwidth between sleds, switches, and other network elements of the system 1600 identify.

In Block 2008 bestimmt der Ressourcenmanagerserver 1602 eine Oversubscription des Systems 1600 basierend auf dem Modell der Netzkonnektivität. Wie oben beschrieben, kann das System 1600 in Schichten organisiert sein, und jede Schicht kann eine maximale Menge an verfügbarer Bandbreite oder anderen Ressourcen aufweisen. Eine Oversubscription kann existieren, wenn die gesamte maximale Bandbreite oder ein anderer Ressourcenbedarf einer Schicht die verfügbare Bandbreite oder andere Ressourcen einer höheren Schicht überschreitet. In einigen Ausführungsformen kann der Ressourcenmanagerserver 1602 in Block 2010 eine Netz-Uplink-Oversubscription bestimmen. Beispielsweise sind die Schlitten 1610, 1612, 1614, wie in 16 gezeigt, mit dem Switch 1606 verbunden. Eine Oversubscription kann existieren, falls die maximale Bandbreite, die von den Schlitten 1610, 1612, 1614 verwendet wird, in Kombination die verfügbare Bandbreite des Uplinks vom Switch 1606 zum Switch 1604 überschreitet. In ähnlicher Weise kann eine Oversubscription existieren, falls die maximale Bandbreite, die von den Schlitten 1616, 1618, 1620 verwendet wird, die verfügbare Bandbreite des Uplinks vom Switch 1608 zum Switch 1604 überschreitet. In einigen Ausführungsformen kann der Ressourcenmanagerserver 1602 in Block 2012 eine Speichereinrichtungsressourcen-Oversubscription bestimmen. Beispielsweise kann eine Oversubscription existieren, falls der Bedarf an Speichereinrichtungsressourcen eines Schlittens (z. B. des Speichereinrichtungsschlittens 1610) die verfügbare Bandbreite oder andere Ressourcen dieses Schlittens überschreitet.In block 2008 determines the resource manager server 1602 an over-subscription of the system 1600 based on the model of network connectivity. As described above, the system can 1600 be organized in layers, and each layer may have a maximum amount of available bandwidth or other resources. An over-subscription may exist if the total maximum bandwidth or other resource requirement of a layer exceeds the available bandwidth or other resources of a higher layer. In some embodiments, the resource manager server 1602 in block 2010 determine a network uplink overubscription. For example, the sledges 1610 . 1612 . 1614 , as in 16 shown with the switch 1606 connected. An overubscription may exist if the maximum bandwidth used by the sled 1610 . 1612 . 1614 used in combination the available bandwidth of the uplink from the switch 1606 to the switch 1604 exceeds. Similarly, an overubscription may exist if the maximum bandwidth used by the sled 1616 . 1618 . 1620 is used, the available bandwidth of the uplink from the switch 1608 to the switch 1604 exceeds. In some embodiments, the resource manager server 1602 in block 2012 determine a storage resource over-subscription. For example, an oversubscription may exist if the need for storage resources of a carriage (eg, the storage device sled 1610 ) exceeds the available bandwidth or other resources of this sled.

In Block 2014 bestimmt der Ressourcenmanagerserver 1602 Bandbreitengrenzen für jeden Schlitten im System 1600 basierend auf der Oversubscription. Die Bandbreitengrenzen können bestimmt werden, um eine Netzüberlastung im System 1600 zu verhindern oder zu reduzieren. Beispielsweise können, wiederum unter Bezugnahme auf 16, die Bandbreitengrenzen für die Schlitten 1610, 1612, 1614 so festgelegt werden, dass die kombinierten Bandbreitengrenzen kleiner oder gleich der Uplink-Bandbreite vom Switch 1606 zum Switch 1604 sind.In block 2014 determines the resource manager server 1602 Bandwidth limits for each slide in the system 1600 based on the overubscription. The bandwidth limits can be determined to be a network congestion in the system 1600 to prevent or reduce. For example, again with reference to 16 , the bandwidth limits for the carriages 1610 . 1612 . 1614 be set so that the combined bandwidth limits are less than or equal to the uplink bandwidth of the switch 1606 to the switch 1604 are.

In Block 2016 programmiert der Ressourcenmanagerserver 1602 jeden Schlitten mit der entsprechenden Bandbreitengrenze. Nach dem Programmieren setzt jeder Schlitten die Bandbreitengrenzen durch, wie weiter unten in Verbindung mit 21 beschrieben. Der Ressourcenmanagerserver 1602 kann eine beliebige Technik zum Programmieren des Schlittens verwenden. In einigen Ausführungsformen kann der Ressourcenmanagerserver 1602 in Block 2018 den NIC 1730 des Schlittens mit der Bandbreitengrenze programmieren. Beispielsweise kann der Ressourcenmanagerserver 1602 außerbandig kommunizieren oder anderweitig mit dem NIC 1730 kommunizieren, ohne das Betriebssystem oder einen anderen Softwarenetzstapel des Schlittens aufzurufen.In block 2016 programs the resource manager server 1602 each slide with the appropriate bandwidth limit. After programming, each carriage sets the bandwidth limits as discussed below 21 described. The resource manager server 1602 can use any technique for programming the carriage. In some embodiments, the resource manager server 1602 in block 2018 the NIC 1730 of the sled with the Program bandwidth limit. For example, the resource manager server 1602 communicate out-of-band or otherwise with the NIC 1730 communicate without invoking the operating system or other software network stack of the carriage.

In Block 2020 kann der Ressourcenmanagerserver 1602 eine Bandbreitentelemetrie von den Schlitten des Systems 1600 empfangen. Die Bandbreitentelemetrie kann die aktuelle Bandbreitennutzung des Schlittens anzeigen und/oder ob die zugehörige Netzverbindung überlastet ist. Beispielsweise kann die Bandbreitentelemetrie die Warteschlangentiefe des NIC 1730, des zugehörigen Switch-Ports und/oder des Netzstapels des Schlittens anzeigen.In block 2020 can be the resource manager server 1602 Bandwidth telemetry from the carriages of the system 1600 receive. The bandwidth telemetry can indicate the current bandwidth utilization of the carriage and / or whether the associated network connection is overloaded. For example, bandwidth telemetry may be the queuing depth of the NIC 1730 , the associated switch port and / or the network stack of the carriage.

In Block 2022 identifiziert der Ressourcenmanagerserver 1602 eine Netzüberlastung basierend auf der Telemetrie. Der Ressourcenmanagerserver 1602 kann einen beliebigen geeigneten Algorithmus verwenden, um verlorene Pakete, erhöhte Latenz oder die Netzüberlastung anderweitig zu identifizieren. In einigen Ausführungsformen kann der Ressourcenmanagerserver 1602 in Block 2024 bestimmen, ob irgendeine Warteschlangentiefe im System eine vorbestimmte Schwellenwertwarteschlangentiefe länger als eine vorbestimmte Zeit überschreitet. Beispielsweise kann der Ressourcenmanagerserver 1602 die Warteschlangentiefe eines NIC 1730, eines Switch-Ports und/oder eines Netzstapels eines Schlittens analysieren. In Block 2026 bestimmt der Ressourcenmanagerserver 1602, ob eine Überlastung erkannt wurde. Falls nicht, kehrt das Verfahren 2000 zu Block 2020 zurück, um die Netzauslastung weiter zu überwachen. Falls eine Überlastung erkannt wird, rückt das Verfahren 2000 zu Block 2028 vor.In block 2022 identifies the resource manager server 1602 a network congestion based on telemetry. The resource manager server 1602 can use any suitable algorithm to otherwise identify lost packets, increased latency, or network congestion. In some embodiments, the resource manager server 1602 in block 2024 determine if any queuing depth in the system exceeds a predetermined threshold queue depth for more than a predetermined time. For example, the resource manager server 1602 the queue depth of a NIC 1730 , a switch port and / or a network stack of a sled. In block 2026 determines the resource manager server 1602 whether an overload has been detected. If not, the procedure returns 2000 to block 2020 back to continue monitoring network utilization. If an overload is detected, the procedure moves 2000 to block 2028 in front.

In Block 2028 modifiziert der Ressourcenmanagerserver 1602 eine oder mehrere Bandbreitengrenzen, um die Überlastung zu reduzieren oder zu beseitigen. In einigen Ausführungsformen kann der Ressourcenmanagerserver 1602 in Block 2030 einen oder mehrere Flüsse mit hoher Eingangsrate im System 1600 identifizieren. Beispielsweise können ein oder mehrere Speichereinrichtungsschlitten 1610, die NVMe-über-Ethernet-Daten erzeugen, Flüsse mit hoher Eingangsrate erzeugen. Der Ressourcenmanagerserver 1602 kann die Eingangsratenbandbreitengrenze reduzieren, die mit den Flüssen mit hoher Eingangsrate assoziiert ist. Zusätzlich oder alternativ kann der Ressourcenmanagerserver 1602 in einigen Ausführungsformen eine oder mehrere Warnungen bezüglich der Überlastung erzeugen, und ein Netzadministrator kann modifizierte Bandbreitengrenzen bereitstellen. In einigen Ausführungsformen können alternative Netzrouten möglich sein. Falls alternative Routen möglich sind, können basierend auf den Überlastungstelemetriedaten unterschiedliche Bandbreitengrenzen für verschiedene Routen festgelegt werden, um die Überlastungsrate zu reduzieren. Nach dem Modifizieren der Bandbreitengrenzen kehrt das Verfahren 2000 zu Block 2016 zurück, um die Schlitten mit den modifizierten Bandbreitengrenzen zu programmieren und die Netznutzung weiter zu überwachen.In block 2028 modifies the resource manager server 1602 one or more bandwidth limits to reduce or eliminate the congestion. In some embodiments, the resource manager server 1602 in block 2030 one or more high input rate flows in the system 1600 identify. For example, one or more storage device carriages 1610 that generate NVMe over Ethernet data, generate high-input-rate flows. The resource manager server 1602 may reduce the input rate bandwidth limit associated with the high input rate flows. Additionally or alternatively, the resource manager server 1602 in some embodiments, generate one or more congestion warnings, and a network administrator may provide modified bandwidth limits. In some embodiments alternative network routes may be possible. If alternate routes are possible, different bandwidth limits can be set for different routes based on the overload telemetry data to reduce the congestion rate. After modifying the bandwidth limits, the method returns 2000 to block 2016 back to program the carriages with the modified bandwidth limits and to continue monitoring network usage.

Unter Bezugnahme auf 21 kann ein Speichereinrichtungsschlitten 1610 im Einsatz ein Verfahren 2100 zur Bandbreitenzuweisung ausführen. Es sollte beachtet werden, dass die Operationen des Verfahrens 2100 in einigen Ausführungsformen durch eine oder mehrere Komponenten der Umgebung 1900 des Speichereinrichtungsschlittens 1610 durchgeführt werden können, wie in 19 gezeigt. Das Verfahren 2100 beginnt in Block 2102, in dem der Speichereinrichtungsschlitten 1610 bestimmt, ob eine Aktualisierung einer Bandbreitengrenze vom Ressourcenmanagerserver 1602 empfangen wurde. Wie oben in Verbindung mit 20 beschrieben, kann der Ressourcenmanagerserver 1602 die Bandbreitengrenze für den Speichereinrichtungsschlitten 1610 in Reaktion auf das Modellieren der Netzkonnektivität und das Bestimmen einer Oversubscription des Systems 1600 und/oder in Reaktion auf das Detektieren einer Netzüberlastung basierend auf Telemetriedaten programmieren. Falls eine Aktualisierung der Bandbreitengrenze nicht empfangen wurde, zweigt das Verfahren 2100 zu Block 2108 ab, wie nachstehend beschrieben. Falls eine Aktualisierung der Bandbreitengrenze empfangen wurde, rückt das Verfahren 2100 zu Block 2104 vor.With reference to 21 can be a storage device sled 1610 in use a procedure 2100 for bandwidth allocation. It should be noted that the operations of the procedure 2100 in some embodiments by one or more components of the environment 1900 of the storage device carriage 1610 can be performed as in 19 shown. The procedure 2100 starts in block 2102 in which the storage device sled 1610 determines whether an update of a bandwidth limit from the resource manager server 1602 was received. As above in connection with 20 described, the resource manager server 1602 the bandwidth limit for the storage device sled 1610 in response to modeling the network connectivity and determining an overubscription of the system 1600 and / or in response to detecting network congestion based on telemetry data. If an update of the bandwidth limit has not been received, the method branches 2100 to block 2108 as described below. If an update of the bandwidth limit has been received, the procedure moves 2100 to block 2104 in front.

In Block 2104 programmiert der Speichereinrichtungsschlitten 1610 einen oder mehrere Netzschnittstellencontroller (NICs, Network Interface Controllers) 1330 des Speichereinrichtungsschlittens mit der neuen Bandbreitengrenze. Nach dem Programmieren kann der NIC 1730 die durch den Speichereinrichtungsschlitten 1610 verwendete Bandbreite unter die Bandbreitengrenze drosseln oder anderweitig begrenzen. Insbesondere kann der Speichereinrichtungsschlitten 1610 in einigen Ausführungsformen in Block 2106 eine maximale Eingangsbandbreite für den NIC 1730 festlegen. Somit können die Bandbreitengrenzen die Menge an Daten (z. B. NVMe-über-Ethernet-Daten) begrenzen, die vom Speichereinrichtungsschlitten 1610 erzeugt und an den Switch 1606 übermittelt werden. Obwohl durch den NIC 1730 als durchgesetzt veranschaulicht, sollte beachtet werden, dass die Bandbreitengrenzen in einigen Ausführungsformen durch andere Komponenten des Speichereinrichtungsschlittens 1610 durchgesetzt werden können, wie beispielsweise ein Betriebssystem, Softwarenetzstapel, NVMe-über-Ethernet-Untersystem oder eine andere Komponente.In block 2104 programs the storage device slide 1610 one or more Network Interface Controllers (NICs) 1330 of the storage device sled with the new bandwidth limit. After programming, the NIC 1730 through the storage device sled 1610 reduce or otherwise limit the bandwidth used below the bandwidth limit. In particular, the storage device carriage may 1610 in some embodiments in block 2106 a maximum input bandwidth for the NIC 1730 establish. Thus, the bandwidth limits may limit the amount of data (e.g., NVMe over Ethernet data) that is being dropped from the storage device sled 1610 generated and sent to the switch 1606 be transmitted. Although through the NIC 1730 as enforced, it should be noted that the bandwidth limits in some embodiments are limited by other components of the storage device sled 1610 can be enforced, such as an operating system, software network stack, NVMe over Ethernet subsystem or other component.

In Block 2108 bestimmt der Speichereinrichtungsschlitten 1610, ob Telemetriedaten an den Ressourcenmanagerserver 1602 gesendet werden sollen. Beispielsweise kann der Speichereinrichtungsschlitten 1610 von einem Administrator konfiguriert sein, um Telemetriedaten zu senden. In einigen Ausführungsformen kann der Speichereinrichtungsschlitten 1610 Telemetriedaten in Reaktion auf bestimmte Ereignisse senden, beispielsweise in Reaktion auf eine erkannte Netzüberlastung. Falls der Speichereinrichtungsschlitten 1610 bestimmt, keine Telemetriedaten zu senden, kehrt das Verfahren 2100 zu Block 2102 zurück, um mit der Überwachung auf aktualisierte Bandbreitengrenzen fortzufahren. Falls der Speichereinrichtungsschlitten 1610 bestimmt, Telemetriedaten zu senden, rückt das Verfahren 2100 zu Block 2110vor.In block 2108 determines the storage device carriage 1610 whether telemetry data to the Resource Manager Server 1602 to be sent. For example, the storage device carriage 1610 be configured by an administrator to send telemetry data. In some embodiments, the storage device carriage may 1610 Send telemetry data in response to certain events, for example in response to a detected network congestion. If the storage device carriage 1610 determined not to send telemetry data, the procedure returns 2100 to block 2102 back to continue monitoring for updated bandwidth limits. If the storage device carriage 1610 destined to send telemetry data, moves the procedure 2100 to block 2110 in front.

In Block 2110 sendet der Speichereinrichtungsschlitten 1610 Bandbreitentelemetriedaten an den Ressourcenmanagerserver 1602. Wie oben beschrieben, kann die Bandbreitentelemetrie die aktuelle Bandbreitennutzung des Schlittens anzeigen und/oder ob die zugehörige Netzverbindung überlastet ist. Beispielsweise kann die Bandbreitentelemetrie die Warteschlangentiefe des NIC 1730, des zugehörigen Switch-Ports und/oder des Netzstapels des Schlittens anzeigen. In einigen Ausführungsformen kann der Speichereinrichtungsschlitten 1610 in Block 2112 die Telemetriedaten vom NIC 1730 des Speichereinrichtungsschlittens 1610 abrufen. Beispielsweise kann ein Betriebssystem, ein Softwarenetzstapel oder eine andere Komponente des Speichereinrichtungsschlittens 1610 Telemetriedaten vom NIC 1730 abrufen. In einigen Ausführungsformen kann der Speichereinrichtungsschlitten 1610 in Block 2114 die Telemetriedaten vom NIC 1730 an den Ressourcenmanagerserver 1602 senden. Der NIC 1730 kann die Telemetriedaten außerbandig oder anderweitig ohne die Beteiligung des Betriebssystems, des Softwarenetzstapels oder anderer Komponenten des Speichereinrichtungsschlittens 1610 senden. Nach dem Senden der Telemetriedaten kehrt das Verfahren 2100 zu Block 2102 zurück, um mit der Überwachung auf aktualisierte Bandbreitengrenzen fortzufahren.In block 2110 sends the storage device sled 1610 Bandwidth telemetry data to the resource manager server 1602 , As described above, the bandwidth telemetry may indicate the current bandwidth utilization of the carriage and / or whether the associated network connection is overloaded. For example, bandwidth telemetry may be the queuing depth of the NIC 1730 , the associated switch port and / or the network stack of the carriage. In some embodiments, the storage device carriage may 1610 in block 2112 the telemetry data from the NIC 1730 of the storage device carriage 1610 recall. For example, an operating system, software network stack, or other component of the storage device sled 1610 Telemetry data from the NIC 1730 recall. In some embodiments, the storage device carriage may 1610 in block 2114 the telemetry data from the NIC 1730 to the resource manager server 1602 send. The NIC 1730 The telemetry data may be off-band or otherwise without the participation of the operating system, the software network stack, or other components of the storage device sled 1610 send. After sending the telemetry data, the procedure returns 2100 to block 2102 back to continue monitoring for updated bandwidth limits.

BEISPIELEEXAMPLES

Veranschaulichende Beispiele für die hierin offenbarten Technologien sind nachstehend bereitgestellt. Eine Ausführungsform der Technologien kann ein oder mehrere und eine beliebige Kombination der nachstehend beschriebenen Beispiele umfassen.

  • Beispiel 1 umfasst einen Ressourcenmanagerserver zur Bandbreitenzuweisung, der Ressourcenmanagerserver umfassend: einen oder mehrere Prozessoren; und eine oder mehrere Speichervorrichtungen, in denen eine Mehrzahl von Anweisungen gespeichert sind, die, wenn sie durch den einen oder die mehreren Prozessoren ausgeführt werden, den Ressourcenmanagerserver veranlassen zum: Entdecken einer Topologie einer Mehrzahl von Schlitten, die mit einer Schicht von Switches gekoppelt sind, die kommunikativ mit dem Ressourcenmanagerserver gekoppelt sind; Konstruieren eines Modells der Netzkonnektivität zwischen der Mehrzahl von Schlitten und der Schicht von Switches basierend auf der Topologie; Bestimmen einer Oversubscription eines Netzes basierend auf dem Modell der Netzkonnektivität, wobei die Oversubscription auf einer verfügbaren Bandbreite für die Schicht von Switches und einer maximalen Bandbreite der Mehrzahl von Schlitten basiert; Bestimmen einer Bandbreitengrenze für jeden Schlitten der Mehrzahl von Schlitten basierend auf der Oversubscription; und Programmieren von jedem Schlitten der Mehrzahl von Schlitten mit der entsprechenden Bandbreitengrenze.
  • Beispiel 2 umfasst den Gegenstand von Beispiel 1, und wobei das Konstruieren des Modells der Netzkonnektivität das Identifizieren umfasst, welche Schlitten der Mehrzahl von Schlitten mit einem bestimmten Switch der Schicht von Switches verbunden sind.
  • Beispiel 3 umfasst den Gegenstand eines der Beispiele 1 und 2, und wobei das Bestimmen der Oversubscription umfasst, eine Netz-Uplink-Oversubscription für die Schicht von Switches zu bestimmen.
  • Beispiel 4 umfasst den Gegenstand eines der Beispiele 1-3, und wobei das Bestimmen der Oversubscription umfasst, eine Speichereinrichtungsressourcen-Oversubscription der Mehrzahl von Schlitten zu bestimmen.
  • Beispiel 5 umfasst den Gegenstand eines der Beispiele 1-4, und wobei das Programmieren der Bandbreitengrenze für jeden Schlitten umfasst, die Bandbreitengrenze an einen Netzschnittstellencontroller des entsprechenden Schlittens zu kommunizieren.
  • Beispiel 6 umfasst den Gegenstand eines der Beispiele 1-5, und wobei die eine oder mehreren Speichervorrichtungen eine Mehrzahl von Anweisungen darin gespeichert haben, die, wenn sie durch den einen oder die mehreren Prozessoren ausgeführt werden, den Ressourcenmanagerserver ferner veranlassen zum: Überwachen einer Bandbreitennutzung der Mehrzahl von Schlitten; Bestimmen, ob das Netz überlastet ist, basierend auf der Bandbreitennutzung der Mehrzahl von Schlitten; und Modifizieren einer Bandbreitengrenze in Reaktion auf eine Bestimmung, dass das Netz überlastet ist.
  • Beispiel 7 umfasst den Gegenstand eines der Beispiele 1-6, und wobei das Überwachen der Bandbreitennutzung der Mehrzahl von Schlitten umfasst, Telemetriedaten von der Mehrzahl von Schlitten zu empfangen, die indikativ für die Bandbreite sind, die von jedem Schlitten genutzt wird.
  • Beispiel 8 umfasst den Gegenstand eines der Beispiele 1-7, und wobei das Bestimmen, ob das Netz überlastet ist, das Bestimmen umfasst, ob eine Warteschlangentiefe des Netzes eine vorbestimmte Warteschlangentiefengrenze für eine vorbestimmte Zeitdauer überschreitet.
  • Beispiel 9 umfasst den Gegenstand eines der Beispiele 1-8, und wobei die Warteschlangentiefe eine Switch-Port-Warteschlangentiefe, eine Netzschnittstellencontroller-Warteschlangentiefe oder eine Netzstapel-Warteschlangentiefe umfasst.
  • Beispiel 10 umfasst den Gegenstand eines der Beispiele 1-9, und wobei das Modifizieren der Bandbreitengrenze umfasst: Identifizieren eines ersten Schlittens der Mehrzahl von Schlitten, die mit einem Fluss mit hoher Eingangsrate assoziiert sind; und Reduzieren einer Eingangsrate der Bandbreitengrenze für den ersten Schlitten.
  • Beispiel 11 umfasst einen Schlitten zur Bandbreitenzuweisung, wobei der Schlitten kommunikativ mit einer Schicht von Switches gekoppelt ist, die kommunikativ mit einem Ressourcenmanagerserver in einem Netz gekoppelt sind, der Schlitten umfassend: einen oder mehrere Prozessoren; und eine oder mehrere Speichervorrichtungen, in denen eine Mehrzahl von Anweisungen gespeichert sind, die, wenn sie durch den einen oder die mehreren Prozessoren ausgeführt werden, den Schlitten veranlassen zum: Empfangen einer Bandbreitengrenze für den Schlitten vom Ressourcenmanagerserver; Programmieren der Bandbreitengrenze für einen Netzschnittstellencontroller des Schlittens; und Durchsetzen, durch den Netzschnittstellencontroller, der Bandbreitengrenze in Reaktion auf das Programmieren der Bandbreitengrenze.
  • Beispiel 12 umfasst den Gegenstand von Beispiel 11, und wobei die eine oder mehreren Speichervorrichtungen eine Mehrzahl von Anweisungen darin gespeichert haben, die, wenn sie durch den einen oder die mehreren Prozessoren ausgeführt werden, den Schlitten ferner veranlassen, Telemetriedaten, die indikativ für eine Nutzung des Netzschnittstellencontrollers sind, an den Ressourcenmanagerserver des Netzes zu senden.
  • Beispiel 13 umfasst den Gegenstand eines der Beispiele 11 und 12, und wobei das Senden der Telemetriedaten umfasst, die Telemetriedaten durch den Netzschnittstellencontroller zu senden.
  • Beispiel 14 umfasst den Gegenstand eines der Beispiele 11-13, und wobei die Telemetriedaten indikativ für eine Netzschnittstellencontroller-Warteschlangentiefe oder eine Netzstapel-Warteschlangentiefe sind.
  • Beispiel 15 umfasst ein Verfahren zur Bandbreitenzuweisung, das Verfahren umfassend: Erkennen, durch einen Ressourcenmanagerserver eines Netzes, einer Topologie einer Mehrzahl von Schlitten, die mit einer Schicht von Switches gekoppelt sind, die kommunikativ mit dem Ressourcenmanagerserver gekoppelt sind; Konstruieren, durch den Ressourcenmanagerserver, eines Modells der Netzkonnektivität zwischen der Mehrzahl von Schlitten und der Schicht von Switches basierend auf der Topologie; Bestimmen, durch den Ressourcenmanagerserver, einer Oversubscription des Netzes basierend auf dem Modell der Netzkonnektivität, wobei die Oversubscription auf einer verfügbaren Bandbreite für die Schicht von Switches und einer maximalen Bandbreite der Mehrzahl von Schlitten basiert; Bestimmen, durch den Ressourcenmanagerserver, einer Bandbreitengrenze für jeden Schlitten der Mehrzahl von Schlitten basierend auf der Oversubscription; und Programmieren, durch den Ressourcenmanagerserver, von jedem Schlitten der Mehrzahl von Schlitten mit der entsprechenden Bandbreitengrenze.
  • Beispiel 16 umfasst den Gegenstand von Beispiel 15, und wobei das Konstruieren des Modells der Netzkonnektivität das Identifizieren umfasst, welche Schlitten der Mehrzahl von Schlitten mit einem bestimmten Switch der Schicht von Switches verbunden sind.
  • Beispiel 17 umfasst den Gegenstand eines der Beispiele 15 und 16, und wobei das Bestimmen der Oversubscription umfasst, eine Netz-Uplink-Oversubscription für die Schicht von Switches zu bestimmen.
  • Beispiel 18 umfasst den Gegenstand eines der Beispiele 15-17, und wobei das Bestimmen der Oversubscription umfasst, eine Speichereinrichtungsressourcen-Oversubscription der Mehrzahl von Schlitten zu bestimmen.
  • Beispiel 19 umfasst den Gegenstand eines der Beispiele 15-18, und wobei das Programmieren der Bandbreitengrenze für jeden Schlitten umfasst, die Bandbreitengrenze an einen Netzschnittstellencontroller des entsprechenden Schlittens zu kommunizieren.
  • Beispiel 20 umfasst den Gegenstand eines der Beispiele 15-19, und ferner umfassend: Überwachen, durch den Ressourcenmanagerserver, einer Bandbreitennutzung der Mehrzahl von Schlitten; Bestimmen, durch den Ressourcenmanagerserver, ob das Netz überlastet ist, basierend auf der Bandbreitennutzung der Mehrzahl von Schlitten; und Modifizieren, durch den Ressourcenmanagerserver, einer Bandbreitengrenze in Reaktion auf das Bestimmen, dass das Netz überlastet ist.
  • Beispiel 21 umfasst den Gegenstand eines der Beispiele 15-20, und wobei das Überwachen der Bandbreitennutzung der Mehrzahl von Schlitten umfasst, Telemetriedaten von der Mehrzahl von Schlitten zu empfangen, die indikativ für die Bandbreite sind, die von jedem Schlitten genutzt wird.
  • Beispiel 22 umfasst den Gegenstand eines der Beispiele 15-21, und wobei das Bestimmen, ob das Netz überlastet ist, das Bestimmen umfasst, ob eine Warteschlangentiefe des Netzes eine vorbestimmte Warteschlangentiefengrenze für eine vorbestimmte Zeitdauer überschreitet.
  • Beispiel 23 umfasst den Gegenstand eines der Beispiele 15-22, und wobei die Warteschlangentiefe eine Switch-Port-Warteschlangentiefe, eine Netzschnittstellencontroller-Warteschlangentiefe oder eine Netzstapel-Warteschlangentiefe umfasst.
  • Beispiel 24 umfasst den Gegenstand eines der Beispiele 15-23, und wobei das Modifizieren der Bandbreitengrenze umfasst: Identifizieren eines ersten Schlittens der Mehrzahl von Schlitten, die mit einem Fluss mit hoher Eingangsrate assoziiert sind; und Reduzieren einer Eingangsrate der Bandbreitengrenze für den ersten Schlitten.
  • Beispiel 25 umfasst ein Verfahren zur Bandbreitenzuweisung, das Verfahren umfassend: Empfangen, durch einen Schlitten einer Mehrzahl von Schlitten, die kommunikativ mit einer Schicht von Switches gekoppelt sind, die kommunikativ mit einem Ressourcenmanagerserver in einem Netz gekoppelt sind, einer Bandbreitengrenze für den Schlitten vom Ressourcenmanagerserver; Programmieren, durch den Schlitten, der Bandbreitengrenze für einen Netzschnittstellencontroller des Schlittens; und Durchsetzen, durch den Netzschnittstellencontroller des Schlittens, der Bandbreitengrenze in Reaktion auf das Programmieren der Bandbreitengrenze.
  • Beispiel 26 umfasst den Gegenstand von Beispiel 25, und ferner umfassend das Senden, durch den Schlitten, von Telemetriedaten, die indikativ für eine Nutzung des Netzschnittstellencontrollers sind, an den Ressourcenmanagerserver des Netzes.
  • Beispiel 27 umfasst den Gegenstand eines der Beispiele 25 und 26, und wobei das Senden der Telemetriedaten umfasst, die Telemetriedaten durch den Netzschnittstellencontroller zu senden.
  • Beispiel 28 umfasst den Gegenstand eines der Beispiele 25-27, und wobei die Telemetriedaten indikativ für eine Netzschnittstellencontroller-Warteschlangentiefe oder eine Netzstapel-Warteschlangentiefe sind.
  • Beispiel 29 umfasst eine Rechenvorrichtung, umfassend: einen Prozessor; und einen Speicher, in dem eine Mehrzahl von Anweisungen gespeichert sind, die, wenn sie durch den Prozessor ausgeführt werden, die Rechenvorrichtung veranlassen, das Verfahren nach einem der Beispiele 15-28 durchzuführen.
  • Beispiel 30 umfasst ein oder mehrere nicht-transitorische, computerlesbare Speichermedien, umfassend eine Mehrzahl von darauf gespeicherten Anweisungen, die in Reaktion auf das Ausführen darin resultieren, dass eine Rechenvorrichtung das Verfahren nach einem der Beispiele 15-28 durchführt.
  • Beispiel 31 umfasst eine Rechenvorrichtung umfassend Mittel zum Durchführen des Verfahrens nach einem der Beispiele 15-28.
  • Beispiel 32 umfasst einen Ressourcenmanagerserver zur Bandbreitenzuweisung, der Ressourcenmanagerserver umfassend: Topologiemanagerschaltungen zum Entdecken einer Topologie einer Mehrzahl von Schlitten, die mit einer Schicht von Switches gekoppelt sind, die kommunikativ mit dem Ressourcenmanagerserver gekoppelt sind; Modellkonstruktorschaltungen zum Konstruieren eines Modells der Netzkonnektivität zwischen der Mehrzahl von Schlitten und der Schicht von Switches basierend auf der Topologie; Bandbreitengrenzen-Programmierschaltungen zum (i) Bestimmen einer Oversubscription eines Netzes basierend auf dem Modell der Netzkonnektivität, wobei die Oversubscription auf einer verfügbaren Bandbreite für die Schicht von Switches und einer maximalen Bandbreite der Mehrzahl von Schlitten basiert, und (ii) Bestimmen einer Bandbreitengrenze für jeden Schlitten der Mehrzahl von Schlitten basierend auf der Oversubscription; und Bandbreitengrenzen-Programmierschaltungen zum Programmieren von jedem Schlitten der Mehrzahl von Schlitten mit der entsprechenden Bandbreitengrenze.
  • Beispiel 33 umfasst den Gegenstand von Beispiel 32, und wobei das Konstruieren des Modells der Netzkonnektivität das Identifizieren umfasst, welche Schlitten der Mehrzahl von Schlitten mit einem bestimmten Switch der Schicht von Switches verbunden sind.
  • Beispiel 34 umfasst den Gegenstand eines der Beispiele 32 und 33, und wobei das Bestimmen der Oversubscription umfasst, eine Netz-Uplink-Oversubscription für die Schicht von Switches zu bestimmen.
  • Beispiel 35 umfasst den Gegenstand eines der Beispiele 32-34, und wobei das Bestimmen der Oversubscription umfasst, eine Speichereinrichtungsressourcen-Oversubscription der Mehrzahl von Schlitten zu bestimmen.
  • Beispiel 36 umfasst den Gegenstand eines der Beispiele 32-35, und wobei das Programmieren der Bandbreitengrenze für jeden Schlitten umfasst, die Bandbreitengrenze an einen Netzschnittstellencontroller des entsprechenden Schlittens zu kommunizieren.
  • Beispiel 37 umfasst den Gegenstand eines der Beispiele 32-36, und ferner umfassend Nutzungsmanagerschaltungen zum: Überwachen einer Bandbreitennutzung der Mehrzahl von Schlitten; Bestimmen, ob das Netz überlastet ist, basierend auf der Bandbreitennutzung der Mehrzahl von Schlitten; und Modifizieren einer Bandbreitengrenze in Reaktion auf eine Bestimmung, dass das Netz überlastet ist.
  • Beispiel 38 umfasst den Gegenstand eines der Beispiele 32-37, und wobei das Überwachen der Bandbreitennutzung der Mehrzahl von Schlitten umfasst, Telemetriedaten von der Mehrzahl von Schlitten zu empfangen, die indikativ für die Bandbreite sind, die von jedem Schlitten genutzt wird.
  • Beispiel 39 umfasst den Gegenstand eines der Beispiele 32-38, und wobei das Bestimmen, ob das Netz überlastet ist, das Bestimmen umfasst, ob eine Warteschlangentiefe des Netzes eine vorbestimmte Warteschlangentiefengrenze für eine vorbestimmte Zeitdauer überschreitet.
  • Beispiel 40 umfasst den Gegenstand eines der Beispiele 32-39, und wobei die Warteschlangentiefe eine Switch-Port-Warteschlangentiefe, eine Netzschnittstellencontroller-Warteschlangentiefe oder eine Netzstapel-Warteschlangentiefe umfasst.
  • Beispiel 41 umfasst den Gegenstand eines der Beispiele 32-40, und wobei das Modifizieren der Bandbreitengrenze umfasst: Identifizieren eines ersten Schlittens der Mehrzahl von Schlitten, die mit einem Fluss mit hoher Eingangsrate assoziiert sind; und Reduzieren einer Eingangsrate der Bandbreitengrenze für den ersten Schlitten.
  • Beispiel 42 umfasst einen Schlitten zur Bandbreitenzuweisung, wobei der Schlitten kommunikativ mit einer Schicht von Switches gekoppelt ist, die kommunikativ mit einem Ressourcenmanagerserver in einem Netz gekoppelt sind, der Schlitten umfassend: Bandbreitenprogrammierschaltungen zum: (i) Empfangen einer Bandbreitengrenze für den Schlitten vom Ressourcenmanagerserver, und (ii) Programmieren der Bandbreitengrenze für einen Netzschnittstellencontroller des Schlittens; und Bandbreitengrenzenmanager-Schaltungen zum Durchsetzen, durch den Netzschnittstellencontroller, der Bandbreitengrenze in Reaktion auf das Programmieren der Bandbreitengrenze.
  • Beispiel 43 umfasst den Gegenstand von Beispiel 42, und ferner umfassend Telemetriedatenmanager-Schaltungen zum Senden von Telemetriedaten, die indikativ für eine Nutzung des Netzschnittstellencontrollers sind, an den Ressourcenmanagerserver des Netzes.
  • Beispiel 44 umfasst den Gegenstand eines der Beispiele 42 und 43, und wobei das Senden der Telemetriedaten umfasst, die Telemetriedaten durch den Netzschnittstellencontroller zu senden.
  • Beispiel 45 umfasst den Gegenstand eines der Beispiele 42-44, und wobei die Telemetriedaten indikativ für eine Netzschnittstellencontroller-Warteschlangentiefe oder eine Netzstapel-Warteschlangentiefe sind.
  • Beispiel 46 umfasst einen Ressourcenmanagerserver zur Bandbreitenzuweisung, der Ressourcenmanagerserver umfassend: Mittel zum Entdecken einer Topologie einer Mehrzahl von Schlitten, die mit einer Schicht von Switches gekoppelt sind, die kommunikativ mit dem Ressourcenmanagerserver in einem Netz gekoppelt sind; Mittel zum Konstruieren eines Modells der Netzkonnektivität zwischen der Mehrzahl von Schlitten und der Schicht von Switches basierend auf der Topologie; Mittel zum Bestimmen einer Oversubscription des Netzes basierend auf dem Modell der Netzkonnektivität, wobei die Oversubscription auf einer verfügbaren Bandbreite für die Schicht von Switches und einer maximalen Bandbreite der Mehrzahl von Schlitten basiert; Mittel zum Bestimmen einer Bandbreitengrenze für jeden Schlitten der Mehrzahl von Schlitten basierend auf der Oversubscription; und Mittel zum Programmieren von jedem Schlitten der Mehrzahl von Schlitten mit der entsprechenden Bandbreitengrenze.
  • Beispiel 47 umfasst den Gegenstand von Beispiel 46, und wobei die Mittel zum Konstruieren des Modells der Netzkonnektivität Mittel zum Identifizieren umfassen, welche Schlitten der Mehrzahl von Schlitten mit einem bestimmten Switch der Schicht von Switches verbunden sind.
  • Beispiel 48 umfasst den Gegenstand eines der Beispiele 46 und 47, und wobei die Mittel zum Bestimmen der Oversubscription Mittel zum Bestimmen einer Netz-Uplink-Oversubscription für die Schicht von Switches umfassen.
  • Beispiel 49 umfasst den Gegenstand eines der Beispiele 46-48, und wobei die Mittel zum Bestimmen der Oversubscription Mittel zum Bestimmen einer Speichereinrichtungsressourcen-Oversubscription der Mehrzahl von Schlitten umfassen.
  • Beispiel 50 umfasst den Gegenstand eines der Beispiele 46-49, und wobei die Mittel zum Programmieren der Bandbreitengrenze für jeden Schlitten Schaltungen zum Kommunizieren der Bandbreitengrenze an einen Netzschnittstellencontroller des entsprechenden Schlittens umfassen.
  • Beispiel 51 umfasst den Gegenstand eines der Beispiele 46-50, und ferner umfassend: Mittel zum Überwachen einer Bandbreitennutzung der Mehrzahl von Schlitten; Mittel zum Bestimmen, ob das Netz überlastet ist, basierend auf der Bandbreitennutzung der Mehrzahl von Schlitten; und Mittel zum Modifizieren einer Bandbreitengrenze in Reaktion auf eine Bestimmung, dass das Netz überlastet ist.
  • Beispiel 52 umfasst den Gegenstand eines der Beispiele 46-51, und wobei die Mittel zum Überwachen der Bandbreitennutzung der Mehrzahl von Schlitten Schaltungen zum Empfangen von Telemetriedaten von der Mehrzahl von Schlitten umfassen, die indikativ für die Bandbreite sind, die von jedem Schlitten genutzt wird.
  • Beispiel 53 umfasst den Gegenstand eines der Beispiele 46-52, und wobei die Mittel zum Bestimmen, ob das Netz überlastet ist, Mittel zum Bestimmen umfassen, ob eine Warteschlangentiefe des Netzes eine vorbestimmte Warteschlangentiefengrenze für eine vorbestimmte Zeitdauer überschreitet.
  • Beispiel 54 umfasst den Gegenstand eines der Beispiele 46-53, und wobei die Warteschlangentiefe eine Switch-Port-Warteschlangentiefe, eine Netzschnittstellencontroller-Warteschlangentiefe oder eine Netzstapel-Warteschlangentiefe umfasst.
  • Beispiel 55 umfasst den Gegenstand eines der Beispiele 46-54, und wobei die Mittel zum Modifizieren der Bandbreitengrenze umfassen: Mittel zum Identifizieren eines ersten Schlittens der Mehrzahl von Schlitten, die mit einem Fluss mit hoher Eingangsrate assoziiert sind;und Mittel zum Reduzieren einer Eingangsrate der Bandbreitengrenze für den ersten Schlitten.
  • Beispiel 56 umfasst einen Schlitten zur Bandbreitenzuweisung, wobei der Schlitten kommunikativ mit einer Schicht von Switches gekoppelt ist, die kommunikativ mit einem Ressourcenmanagerserver in einem Netz gekoppelt sind, der Schlitten umfassend: Schaltungen zum Empfangen einer Bandbreitengrenze für den Schlitten vom Ressourcenmanagerserver; Mittel zum Programmieren der Bandbreitengrenze für einen Netzschnittstellencontroller des Schlittens; und Mittel zum Durchsetzen, durch den Netzschnittstellencontroller des Schlittens, der Bandbreitengrenze in Reaktion auf das Programmieren der Bandbreitengrenze.
  • Beispiel 57 umfasst den Gegenstand von Beispiel 56, und ferner umfassend Mittel zum Senden von Telemetriedaten, die indikativ für eine Nutzung des Netzschnittstellencontrollers sind, an den Ressourcenmanagerserver des Netzes.
  • Beispiel 58 umfasst den Gegenstand eines der Beispiele 56 und 57, und wobei die Mittel zum Senden der Telemetriedaten Mittel zum Senden der Telemetriedaten durch den Netzschnittstellencontroller umfassen.
  • Beispiel 59 umfasst den Gegenstand eines der Beispiele 56-58, und wobei die Telemetriedaten indikativ für eine Netzschnittstellencontroller-Warteschlangentiefe oder eine Netzstapel-Warteschlangentiefe sind.
Illustrative examples of the technologies disclosed herein are provided below. One embodiment of the technologies may include one or more and any combination of the examples described below.
  • Example 1 includes a resource allocation server for bandwidth allocation, the resource manager server comprising: one or more processors; and one or more memory devices storing a plurality of instructions that, when executed by the one or more processors, cause the resource manager server to: discover a topology of a plurality of sleds coupled to a layer of switches communicatively coupled with the resource manager server; Constructing a model of network connectivity between the plurality of sleds and the layer of switches based on the topology; Determining an overubscription of a network based on the network connectivity model, wherein the overubscription is based on an available bandwidth for the layer of switches and a maximum bandwidth of the plurality of carriages; Determining a bandwidth limit for each of the plurality of carriages based on the overubscription; and programming each carriage of the plurality of carriages with the corresponding bandwidth limit.
  • Example 2 includes the subject matter of Example 1, and wherein constructing the model of network connectivity comprises identifying which carriages of the plurality of carriages are connected to a particular switch of the layer of switches.
  • Example 3 includes the subject matter of any of Examples 1 and 2, and wherein determining the overubscription comprises determining a network uplink overubscription for the layer of switches.
  • Example 4 includes the subject matter of any of Examples 1-3, and wherein determining the overubscription comprises determining a storage resource overubscription of the plurality of carriages.
  • Example 5 includes the subject matter of any of Examples 1-4, and wherein programming the bandwidth limit for each carriage comprises communicating the bandwidth limit to a network interface controller of the corresponding carriage.
  • Example 6 includes the subject matter of any of Examples 1-5, and wherein the one or more storage devices have stored therein a plurality of instructions that, when executed by the one or more processors, further cause the resource manager server to: monitor bandwidth usage the plurality of carriages; Determining whether the network is congested based on the bandwidth utilization of the plurality of carriages; and modifying a bandwidth limit in response to a determination that the network is overloaded.
  • Example 7 includes the subject matter of any of Examples 1-6, and wherein monitoring the bandwidth utilization of the plurality of A sled comprises receiving telemetry data from the plurality of sledges indicative of the bandwidth used by each sled.
  • Example 8 includes the subject matter of any of Examples 1-7, and wherein determining whether the network is congested comprises determining whether a network queuing depth exceeds a predetermined queue depth limit for a predetermined period of time.
  • Example 9 includes the subject matter of any of Examples 1-8, and wherein the queue depth includes a switch port queue depth, a network interface controller queue depth, or a network stack queue depth.
  • Example 10 includes the subject matter of any of Examples 1-9, and wherein modifying the bandwidth limit comprises: identifying a first carriage of the plurality of carriages associated with a high input rate flow; and reducing an input rate of the bandwidth limit for the first carriage.
  • Example 11 includes a carriage for bandwidth allocation, wherein the carriage is communicatively coupled to a layer of switches communicatively coupled to a resource manager server in a network, the carriage comprising: one or more processors; and one or more memory devices storing a plurality of instructions that, when executed by the one or more processors, cause the carriage to: receive a bandwidth limit for the carriage from the resource manager server; Programming the bandwidth limit for a network interface controller of the carriage; and enforcing, by the network interface controller, the bandwidth limit in response to programming the bandwidth limit.
  • Example 12 includes the subject matter of Example 11, and wherein the one or more storage devices have stored therein a plurality of instructions that, when executed by the one or more processors, further cause the carriage to provide telemetry data indicative of usage of the network interface controller are to be sent to the resource manager server of the network.
  • Example 13 includes the subject matter of any of Examples 11 and 12, and wherein transmitting the telemetry data comprises transmitting the telemetry data through the network interface controller.
  • Example 14 includes the subject matter of any of Examples 11-13, and wherein the telemetry data is indicative of a network interface controller queue depth or a network stack queue depth.
  • Example 15 includes a method of bandwidth allocation, the method comprising: detecting, by a resource manager server of a network, a topology of a plurality of carriages coupled to a layer of switches communicatively coupled to the resource manager server; Construct, by the resource manager server, a model of network connectivity between the plurality of carriages and the layer of switches based on the topology; Determining, by the resource manager server, an over-subscription of the network based on the network connectivity model, wherein the over-subscription is based on available bandwidth for the layer of switches and a maximum bandwidth of the plurality of carriages; Determining, by the resource manager server, a bandwidth limit for each of the plurality of carriages based on the overubscription; and programming, by the resource manager server, each carriage of the plurality of carriages with the corresponding bandwidth limit.
  • Example 16 includes the subject matter of Example 15, and constructing the model of network connectivity includes identifying which carriages of the plurality of carriages are connected to a particular switch of the layer of switches.
  • Example 17 includes the subject matter of one of Examples 15 and 16, and wherein determining the overubscription comprises determining a network uplink overubscription for the layer of switches.
  • Example 18 includes the subject matter of any of Examples 15-17, and wherein determining the overubscription comprises determining a storage resource over-subscription of the plurality of carriages.
  • Example 19 includes the subject matter of any of Examples 15-18, and wherein programming the bandwidth limit for each carriage comprises communicating the bandwidth limit to a network interface controller of the corresponding carriage.
  • Example 20 includes the subject matter of any of Examples 15-19, and further comprising: monitoring, by the resource manager server, a bandwidth usage of the plurality of carriages; Determine by the Resource manager server, whether the network is congested, based on the bandwidth usage of the plurality of carriages; and modifying, by the resource manager server, a bandwidth limit in response to determining that the network is congested.
  • Example 21 includes the subject matter of any of Examples 15-20, and wherein monitoring the bandwidth utilization of the plurality of carriages comprises receiving telemetry data from the plurality of carriages indicative of the bandwidth utilized by each carriage.
  • Example 22 includes the subject matter of any of Examples 15-21, and wherein determining whether the network is congested comprises determining whether a network queuing depth exceeds a predetermined queue depth limit for a predetermined period of time.
  • Example 23 includes the subject matter of any of Examples 15-22, and wherein the queue depth includes a switch port queue depth, a network interface controller queue depth, or a network stack queue depth.
  • Example 24 includes the subject matter of any of Examples 15-23, and wherein modifying the bandwidth limit comprises: identifying a first carriage of the plurality of carriages associated with a high input rate flow; and reducing an input rate of the bandwidth limit for the first carriage.
  • Example 25 includes a method of bandwidth allocation, the method comprising: receiving, by a carriage of a plurality of carriages communicatively coupled to a layer of switches communicatively coupled to a resource manager server in a network, a bandwidth limit for the carriage from the resource manager server ; Programming, by the carriage, the bandwidth limit for a network interface controller of the carriage; and enforcing, by the network interface controller of the carriage, the bandwidth limit in response to programming the bandwidth limit.
  • Example 26 includes the subject matter of Example 25, and further comprising transmitting, by the carriage, telemetry data indicative of usage of the network interface controller to the resource manager server of the network.
  • Example 27 includes the subject matter of any of Examples 25 and 26, and wherein transmitting the telemetry data comprises transmitting the telemetry data through the network interface controller.
  • Example 28 includes the subject matter of any of Examples 25-27, and wherein the telemetry data is indicative of a network interface controller queue depth or a network stack queue depth.
  • Example 29 includes a computing device comprising: a processor; and a memory storing a plurality of instructions which, when executed by the processor, cause the computing device to perform the method of any one of Examples 15-28.
  • Example 30 includes one or more non-transitory computer-readable storage media comprising a plurality of instructions stored thereon that result in response to execution in that a computing device performs the method of any one of Examples 15-28.
  • Example 31 includes a computing device comprising means for performing the method of any one of Examples 15-28.
  • Example 32 includes a resource allocation server for bandwidth allocation, the resource manager server comprising: topology manager circuits for discovering a topology of a plurality of carriages coupled to a layer of switches communicatively coupled to the resource manager server; Model constructor circuits for constructing a model of network connectivity between the plurality of carriages and the layer of switches based on the topology; Bandwidth limit programming circuits for (i) determining an overubscription of a network based on the network connectivity model, wherein the overubscription is based on an available bandwidth for the layer of switches and a maximum bandwidth of the plurality of carriages, and (ii) determining a bandwidth limit for each Carriages of the plurality of carriages based on the overubscription; and bandwidth limit programming circuits for programming each of the plurality of carriages with the corresponding bandwidth limit.
  • Example 33 includes the subject matter of Example 32, and wherein constructing the model of network connectivity comprises identifying which carriages of the plurality of carriages are connected to a particular switch of the layer of switches.
  • Example 34 includes the subject matter of any of Examples 32 and 33, and wherein determining the overubscription comprises, a network uplink Oversubscription for the layer of switches to determine.
  • Example 35 includes the subject matter of any of Examples 32-34, and wherein determining the overubscription comprises determining a storage resource over-subscription of the plurality of carriages.
  • Example 36 includes the subject matter of any of Examples 32-35, and wherein programming the bandwidth limit for each carriage comprises communicating the bandwidth limit to a network interface controller of the corresponding carriage.
  • Example 37 includes the subject matter of any of Examples 32-36, and further comprising usage manager circuits for: monitoring bandwidth usage of the plurality of carriages; Determining whether the network is congested based on the bandwidth utilization of the plurality of carriages; and modifying a bandwidth limit in response to a determination that the network is overloaded.
  • Example 38 includes the subject matter of any of Examples 32-37, and wherein monitoring the bandwidth utilization of the plurality of carriages comprises receiving telemetry data from the plurality of carriages indicative of the bandwidth utilized by each carriage.
  • Example 39 includes the subject matter of any of Examples 32-38, and wherein determining whether the network is congested includes determining whether a network queuing depth exceeds a predetermined queue depth limit for a predetermined period of time.
  • Example 40 includes the subject matter of any of Examples 32-39, and wherein the queue depth includes a switch port queue depth, a network interface controller queue depth, or a network stack queue depth.
  • Example 41 includes the subject matter of any of Examples 32-40, and wherein modifying the bandwidth limit comprises: identifying a first carriage of the plurality of carriages associated with a high input rate flow; and reducing an input rate of the bandwidth limit for the first carriage.
  • Example 42 includes a carriage for bandwidth allocation, wherein the carriage is communicatively coupled to a layer of switches communicatively coupled to a resource manager server in a network comprising carriages: bandwidth programming circuits for: (i) receiving a bandwidth limit for the carriage from the resource manager server; and (ii) programming the bandwidth limit for a network interface controller of the carriage; and bandwidth limit manager circuits for enforcing, by the network interface controller, the bandwidth limit in response to programming the bandwidth limit.
  • Example 43 includes the subject matter of Example 42, and further comprising telemetry data manager circuitry for sending telemetry data indicative of usage of the network interface controller to the resource manager server of the network.
  • Example 44 includes the subject matter of any of Examples 42 and 43, and wherein transmitting the telemetry data comprises transmitting the telemetry data through the network interface controller.
  • Example 45 includes the subject matter of one of Examples 42-44, and wherein the telemetry data is indicative of a network interface controller queue depth or a network stack queue depth.
  • Example 46 includes a resource allocation server for bandwidth allocation, the resource manager server comprising: means for discovering a topology of a plurality of carriages coupled to a layer of switches communicatively coupled to the resource manager server in a network; Means for constructing a network connectivity model between the plurality of carriages and the layer of switches based on the topology; Means for determining an overubscription of the network based on the network connectivity model, wherein the overubscription is based on an available bandwidth for the layer of switches and a maximum bandwidth of the plurality of carriages; Means for determining a bandwidth limit for each of the plurality of carriages based on the overubscription; and means for programming each carriage of the plurality of carriages with the corresponding bandwidth limit.
  • Example 47 includes the subject matter of Example 46, and wherein the means for constructing the network connectivity model comprises means for identifying which carriages of the plurality of carriages are connected to a particular switch of the layer of switches.
  • Example 48 includes the subject matter of any of Examples 46 and 47, and wherein the means for determining the overubscription comprises means for determining a network uplink overubscription for the layer of switches.
  • Example 49 includes the subject matter of any of Examples 46-48, and wherein the means for determining overubscription comprises means for determining a storage resource over-subscription of the plurality of sleds.
  • Example 50 includes the subject matter of any of Examples 46-49, and wherein the means for programming the bandwidth limit for each carriage includes circuitry for communicating the bandwidth limit to a network interface controller of the corresponding carriage.
  • Example 51 includes the subject matter of any of Examples 46-50, and further comprising: means for monitoring a bandwidth usage of the plurality of carriages; Means for determining whether the network is congested based on the bandwidth usage of the plurality of carriages; and means for modifying a bandwidth limit in response to a determination that the network is overloaded.
  • Example 52 includes the subject matter of any of Examples 46-51, and wherein the means for monitoring the bandwidth utilization of the plurality of carriages includes circuitry for receiving telemetry data from the plurality of carriages indicative of the bandwidth utilized by each carriages.
  • Example 53 includes the subject matter of any of Examples 46-52, and wherein the means for determining whether the network is congested comprises means for determining whether a network queuing depth exceeds a predetermined queue depth limit for a predetermined period of time.
  • Example 54 includes the subject matter of any of Examples 46-53, and wherein the queue depth includes a switch port queue depth, a network interface controller queue depth, or a network stack queue depth.
  • Example 55 includes the subject matter of any of Examples 46-54, and wherein the means for modifying the bandwidth limit comprises: means for identifying a first carriage of the plurality of carriages associated with a high input rate flow; and means for reducing an input rate of Bandwidth limit for the first slide.
  • Example 56 includes a carriage for bandwidth allocation, wherein the carriage is communicatively coupled to a layer of switches communicatively coupled to a resource manager server in a network comprising carriages: circuitry for receiving a bandwidth limit for the carriage from the resource manager server; Means for programming the bandwidth limit for a network interface controller of the carriage; and means for enforcing, by the network interface controller of the carriage, the bandwidth limit in response to programming the bandwidth limit.
  • Example 57 includes the subject matter of Example 56, and further comprising means for transmitting telemetry data indicative of utilization of the network interface controller to the resource manager server of the network.
  • Example 58 includes the subject matter of any of Examples 56 and 57, and wherein the means for transmitting the telemetry data comprises means for transmitting the telemetry data through the network interface controller.
  • Example 59 includes the subject matter of one of Examples 56-58, and wherein the telemetry data is indicative of a network interface controller queue depth or a network stack queue depth.

Claims (25)

Ressourcenmanagerserver zur Bandbreitenzuweisung, der Ressourcenmanagerserver umfassend: einen oder mehrere Prozessoren; und eine oder mehrere Speichervorrichtungen, in denen eine Mehrzahl von Anweisungen gespeichert sind, die, wenn sie durch den einen oder die mehreren Prozessoren ausgeführt werden, den Ressourcenmanagerserver veranlassen zum: Entdecken einer Topologie einer Mehrzahl von Schlitten, die mit einer Schicht von Switches gekoppelt sind, die kommunikativ mit dem Ressourcenmanagerserver gekoppelt sind; Konstruieren eines Modells der Netzkonnektivität zwischen der Mehrzahl von Schlitten und der Schicht von Switches basierend auf der Topologie; Bestimmen einer Oversubscription eines Netzes basierend auf dem Modell der Netzkonnektivität, wobei die Oversubscription auf einer verfügbaren Bandbreite für die Schicht von Switches und einer maximalen Bandbreite der Mehrzahl von Schlitten basiert; Bestimmen einer Bandbreitengrenze für jeden Schlitten der Mehrzahl von Schlitten basierend auf der Oversubscription; und Programmieren von jedem Schlitten der Mehrzahl von Schlitten mit der entsprechenden Bandbreitengrenze.Resource manager server for bandwidth allocation, the resource manager server comprising: one or more processors; and one or more memory devices storing a plurality of instructions that, when executed by the one or more processors, cause the resource manager server to: Detecting a topology of a plurality of sleds coupled to a layer of switches communicatively coupled to the resource manager server; Constructing a model of network connectivity between the plurality of sleds and the layer of switches based on the topology; Determining an overubscription of a network based on the network connectivity model, wherein the overubscription is based on an available bandwidth for the layer of switches and a maximum bandwidth of the plurality of carriages; Determining a bandwidth limit for each of the plurality of carriages based on the overubscription; and Program each carriage of the plurality of carriages with the appropriate bandwidth limit. Ressourcenmanagerserver nach Anspruch 1, wobei das Konstruieren des Modells der Netzkonnektivität das Identifizieren umfasst, welche Schlitten der Mehrzahl von Schlitten mit einem bestimmten Switch der Schicht von Switches verbunden sind. Resource manager server Claim 1 wherein constructing the model of network connectivity comprises identifying which carriages of the plurality of carriages are connected to a particular switch of the layer of switches. Ressourcenmanagerserver nach Anspruch 1, wobei das Bestimmen der Oversubscription umfasst, eine Netz-Uplink-Oversubscription für die Schicht von Switches zu bestimmen.Resource manager server Claim 1 wherein determining the overubscription comprises determining a network uplink overubscription for the layer of switches. Ressourcenmanagerserver nach Anspruch 1, wobei das Bestimmen der Oversubscription umfasst, eine Speichereinrichtungsressourcen-Oversubscription der Mehrzahl von Schlitten zu bestimmen.Resource manager server Claim 1 wherein determining the overubscription comprises determining a storage resource over-subscription of the plurality of carriages. Ressourcenmanagerserver nach Anspruch 1, wobei das Programmieren der Bandbreitengrenze für jeden Schlitten umfasst, die Bandbreitengrenze an einen Netzschnittstellencontroller des entsprechenden Schlittens zu kommunizieren.Resource manager server Claim 1 wherein programming the bandwidth limit for each carriage comprises communicating the bandwidth limit to a network interface controller of the corresponding carriage. Ressourcenmanagerserver nach einem der Ansprüche 1-5, wobei die eine oder mehreren Speichervorrichtungen eine Mehrzahl von Anweisungen darin gespeichert haben, die, wenn sie durch den einen oder die mehreren Prozessoren ausgeführt werden, den Ressourcenmanagerserver ferner veranlassen zum: Überwachen einer Bandbreitennutzung der Mehrzahl von Schlitten; Bestimmen, ob das Netz überlastet ist, basierend auf der Bandbreitennutzung der Mehrzahl von Schlitten; und Modifizieren einer Bandbreitengrenze in Reaktion auf eine Bestimmung, dass das Netz überlastet ist.Resource Manager server after one of Claims 1 - 5 wherein the one or more memory devices have stored therein a plurality of instructions that, when executed by the one or more processors, further cause the resource manager server to: monitor a bandwidth usage of the plurality of carriages; Determining whether the network is congested based on the bandwidth utilization of the plurality of carriages; and modifying a bandwidth limit in response to a determination that the network is overloaded. Ressourcenmanagerserver nach Anspruch 6, wobei das Überwachen der Bandbreitennutzung der Mehrzahl von Schlitten umfasst, Telemetriedaten von der Mehrzahl von Schlitten zu empfangen, die indikativ für die Bandbreite sind, die von jedem Schlitten genutzt wird.Resource manager server Claim 6 wherein monitoring the bandwidth usage of the plurality of carriages comprises receiving telemetry data from the plurality of carriages indicative of the bandwidth utilized by each carriages. Ressourcenmanagerserver nach Anspruch 7, wobei das Bestimmen, ob das Netz überlastet ist, das Bestimmen umfasst, ob eine Warteschlangentiefe des Netzes eine vorbestimmte Warteschlangentiefengrenze für eine vorbestimmte Zeitdauer überschreitet.Resource manager server Claim 7 wherein determining whether the network is overloaded comprises determining whether a network queuing depth exceeds a predetermined queue depth limit for a predetermined period of time. Ressourcenmanagerserver nach Anspruch 8, wobei die Warteschlangentiefe eine Switch-Port-Warteschlangentiefe, eine Netzschnittstellencontroller-Warteschlangentiefe oder eine Netzstapel-Warteschlangentiefe umfasst.Resource manager server Claim 8 where the queue depth includes a switch port queue depth, a network interface controller queue depth, or a network stack queue depth. Ressourcenmanagerserver nach Anspruch 6, wobei das Modifizieren der Bandbreitengrenze umfasst: Identifizieren eines ersten Schlittens der Mehrzahl von Schlitten, die mit einem Fluss mit hoher Eingangsrate assoziiert sind; und Reduzieren einer Eingangsrate der Bandbreitengrenze für den ersten Schlitten.Resource manager server Claim 6 wherein modifying the bandwidth limit comprises: identifying a first carriage of the plurality of carriages associated with a high input rate flow; and reducing an input rate of the bandwidth limit for the first carriage. Schlitten zur Bandbreitenzuweisung, wobei der Schlitten kommunikativ mit einer Schicht von Switches gekoppelt ist, die kommunikativ mit einem Ressourcenmanagerserver in einem Netz gekoppelt sind, der Schlitten umfassend: einen oder mehrere Prozessoren; und eine oder mehrere Speichervorrichtungen, in denen eine Mehrzahl von Anweisungen gespeichert sind, die, wenn sie durch den einen oder die mehreren Prozessoren ausgeführt werden, den Schlitten veranlassen zum: Empfangen einer Bandbreitengrenze für den Schlitten vom Ressourcenmanagerserver; Programmieren der Bandbreitengrenze für einen Netzschnittstellencontroller des Schlittens; und Durchsetzen, durch den Netzschnittstellencontroller, der Bandbreitengrenze in Reaktion auf das Programmieren der Bandbreitengrenze.A sled for sled assignment, the sled being communicatively coupled to a layer of switches communicatively coupled to a resource manager server in a network, the sled comprising: one or more processors; and one or more memory devices storing a plurality of instructions which, when executed by the one or more processors, cause the carriage to: Receiving a bandwidth limit for the carriage from the resource manager server; Programming the bandwidth limit for a network interface controller of the carriage; and Enforce, by the network interface controller, the bandwidth limit in response to programming the bandwidth limit. Schlitten nach Anspruch 11, wobei die eine oder mehreren Speichervorrichtungen eine Mehrzahl von Anweisungen darin gespeichert haben, die, wenn sie durch den einen oder die mehreren Prozessoren ausgeführt werden, den Schlitten ferner veranlassen, Telemetriedaten, die indikativ für eine Nutzung des Netzschnittstellencontrollers sind, an den Ressourcenmanagerserver des Netzes zu senden.Sledges behind Claim 11 wherein the one or more storage devices have stored therein a plurality of instructions that, when executed by the one or more processors, further cause the carriage to send telemetry data indicative of usage of the network interface controller to the resource manager server of the network to send. Schlitten nach Anspruch 12, wobei das Senden der Telemetriedaten umfasst, die Telemetriedaten durch den Netzschnittstellencontroller zu senden.Sledges behind Claim 12 wherein sending the telemetry data comprises transmitting the telemetry data through the network interface controller. Verfahren zur Bandbreitenzuweisung, das Verfahren umfassend: Erkennen, durch einen Ressourcenmanagerserver eines Netzes, einer Topologie einer Mehrzahl von Schlitten, die mit einer Schicht von Switches gekoppelt sind, die kommunikativ mit dem Ressourcenmanagerserver gekoppelt sind; Konstruieren, durch den Ressourcenmanagerserver, eines Modells der Netzkonnektivität zwischen der Mehrzahl von Schlitten und der Schicht von Switches basierend auf der Topologie; Bestimmen, durch den Ressourcenmanagerserver, einer Oversubscription des Netzes basierend auf dem Modell der Netzkonnektivität, wobei die Oversubscription auf einer verfügbaren Bandbreite für die Schicht von Switches und einer maximalen Bandbreite der Mehrzahl von Schlitten basiert; Bestimmen, durch den Ressourcenmanagerserver, einer Bandbreitengrenze für jeden Schlitten der Mehrzahl von Schlitten basierend auf der Oversubscription; und Programmieren, durch den Ressourcenmanagerserver, von jedem Schlitten der Mehrzahl von Schlitten mit der entsprechenden Bandbreitengrenze.Bandwidth allocation method, the method comprising: Detecting, by a resource manager server of a network, a topology of a plurality of carriages coupled to a layer of switches communicatively coupled to the resource manager server; Construct, by the resource manager server, a model of network connectivity between the plurality of carriages and the layer of switches based on the topology; Determining, by the resource manager server, an over-subscription of the network based on the network connectivity model, wherein the over-subscription is based on available bandwidth for the layer of switches and a maximum bandwidth of the plurality of carriages; Determining, by the resource manager server, a bandwidth limit for each of the plurality of carriages based on the overubscription; and Programming, by the resource manager server, from each carriage of the plurality of carriages with the corresponding bandwidth limit. Verfahren nach Anspruch 14, wobei das Konstruieren des Modells der Netzkonnektivität das Identifizieren umfasst, welche Schlitten der Mehrzahl von Schlitten mit einem bestimmten Switch der Schicht von Switches verbunden sind.Method according to Claim 14 wherein constructing the model of network connectivity comprises identifying which carriages of the plurality of Slides are connected to a specific switch of the layer of switches. Verfahren nach Anspruch 14, wobei das Programmieren der Bandbreitengrenze für jeden Schlitten umfasst, die Bandbreitengrenze an einen Netzschnittstellencontroller des entsprechenden Schlittens zu kommunizieren.Method according to Claim 14 wherein programming the bandwidth limit for each carriage comprises communicating the bandwidth limit to a network interface controller of the corresponding carriage. Verfahren nach Anspruch 14, ferner umfassend: Überwachen, durch den Ressourcenmanagerserver, einer Bandbreitennutzung der Mehrzahl von Schlitten; Bestimmen, durch den Ressourcenmanagerserver, ob das Netz überlastet ist, basierend auf der Bandbreitennutzung der Mehrzahl von Schlitten; und Modifizieren, durch den Ressourcenmanagerserver, einer Bandbreitengrenze in Reaktion auf das Bestimmen, dass das Netz überlastet ist.Method according to Claim 14 , further comprising: monitoring, by the resource manager server, a bandwidth usage of the plurality of carriages; Determining, by the resource manager server, whether the network is congested based on the bandwidth usage of the plurality of carriages; and modifying, by the resource manager server, a bandwidth limit in response to determining that the network is congested. Verfahren nach Anspruch 17, wobei das Überwachen der Bandbreitennutzung der Mehrzahl von Schlitten umfasst, Telemetriedaten von der Mehrzahl von Schlitten zu empfangen, die indikativ für die Bandbreite sind, die von jedem Schlitten genutzt wird.Method according to Claim 17 wherein monitoring the bandwidth usage of the plurality of carriages comprises receiving telemetry data from the plurality of carriages indicative of the bandwidth utilized by each carriages. Verfahren nach Anspruch 18, wobei das Bestimmen, ob das Netz überlastet ist, das Bestimmen umfasst, ob eine Warteschlangentiefe des Netzes eine vorbestimmte Warteschlangentiefengrenze für eine vorbestimmte Zeitdauer überschreitet.Method according to Claim 18 wherein determining whether the network is overloaded comprises determining whether a network queuing depth exceeds a predetermined queue depth limit for a predetermined period of time. Verfahren nach Anspruch 17, wobei das Modifizieren der Bandbreitengrenze umfasst: Identifizieren eines ersten Schlittens der Mehrzahl von Schlitten, die mit einem Fluss mit hoher Eingangsrate assoziiert sind; und Reduzieren einer Eingangsrate der Bandbreitengrenze für den ersten Schlitten.Method according to Claim 17 wherein modifying the bandwidth limit comprises: identifying a first carriage of the plurality of carriages associated with a high input rate flow; and reducing an input rate of the bandwidth limit for the first carriage. Verfahren zur Bandbreitenzuweisung, das Verfahren umfassend: Empfangen, durch einen Schlitten einer Mehrzahl von Schlitten, die kommunikativ mit einer Schicht von Switches gekoppelt sind, die kommunikativ mit einem Ressourcenmanagerserver in einem Netz gekoppelt sind, einer Bandbreitengrenze für den Schlitten vom Ressourcenmanagerserver; Programmieren, durch den Schlitten, der Bandbreitengrenze für einen Netzschnittstellencontroller des Schlittens; und Durchsetzen, durch den Netzschnittstellencontroller des Schlittens, der Bandbreitengrenze in Reaktion auf das Programmieren der Bandbreitengrenze.Bandwidth allocation method, the method comprising: Receiving, by a carriage of a plurality of carriages communicatively coupled to a layer of switches communicatively coupled to a resource manager server in a network, a bandwidth limit for the carriage from the resource manager server; Programming, by the carriage, the bandwidth limit for a network interface controller of the carriage; and Enforce, by the network interface controller of the carriage, the bandwidth limit in response to programming the bandwidth limit. Verfahren nach Anspruch 21, ferner umfassend das Senden, durch den Schlitten, von Telemetriedaten, die indikativ für eine Nutzung des Netzschnittstellencontrollers sind, an den Ressourcenmanagerserver des Netzes.Method according to Claim 21 further comprising transmitting, by the carriage, telemetry data indicative of usage of the network interface controller to the resource manager server of the network. Rechenvorrichtung, umfassend: einen Prozessor; und einen Speicher, in dem eine Mehrzahl von Anweisungen gespeichert sind, die, wenn sie durch den Prozessor ausgeführt werden, die Rechenvorrichtung veranlassen, das Verfahren nach einem der Ansprüche 14-22 durchzuführen.A computing device, comprising: a processor; and a memory storing a plurality of instructions which, when executed by the processor, cause the computing device to perform the method according to any one of Claims 14 - 22 perform. Ein oder mehrere nicht-transitorische, computerlesbare Speichermedien, umfassend eine Mehrzahl von darauf gespeicherten Anweisungen, die in Reaktion auf das Ausführen darin resultieren, dass eine Rechenvorrichtung das Verfahren nach einem der Ansprüche 14-22 durchführt.One or more non-transitory computer-readable storage media comprising a plurality of instructions stored thereon that, in response to execution, result in a computing device following the method of any one of Claims 14 - 22 performs. Rechenvorrichtung umfassend Mittel zum Durchführen des Verfahrens nach einem der Ansprüche 14-22.A computing device comprising means for performing the method according to any one of Claims 14 - 22 ,
DE102018005850.7A 2017-08-30 2018-07-24 Technologies for automated network congestion management Pending DE102018005850A1 (en)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
IN201741030632 2017-08-30
IN201741030632 2017-08-30
US201762584401P 2017-11-10 2017-11-10
US62/584,401 2017-11-10
US15/858,288 US20190068521A1 (en) 2017-08-30 2017-12-29 Technologies for automated network congestion management
US15/858,288 2017-12-29

Publications (1)

Publication Number Publication Date
DE102018005850A1 true DE102018005850A1 (en) 2019-02-28

Family

ID=65321284

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102018005850.7A Pending DE102018005850A1 (en) 2017-08-30 2018-07-24 Technologies for automated network congestion management

Country Status (1)

Country Link
DE (1) DE102018005850A1 (en)

Similar Documents

Publication Publication Date Title
US11888967B2 (en) Technologies for dynamic accelerator selection
DE112018004798T5 (en) TECHNOLOGIES FOR PROVIDING EFFICIENT MEMORY ACCESS ON AN ACCELERATOR SLIDE
DE102018006890B4 (en) Technologies for processing network packets by an intelligent network interface controller
DE102020118494A1 (en) TECHNOLOGIES FOR HANDLING A LATENCY-BASED SERVICE AGREEMENT IN REMOTE DIRECT STORAGE NETWORKS
DE102020125046A1 (en) CONFIGURATION INTERFACE FOR OWNING CAPABILITIES TO A NETWORK INTERFACE
DE102020118307A1 (en) PROACTIVE PRELIMINARY DATA CALL WITH APPLIED QUALITY OF SERVICE
US11861424B2 (en) Technologies for providing efficient reprovisioning in an accelerator device
DE112017001762T5 (en) TECHNOLOGIES FOR THE USE OF DYNAMIC UNDERLAY NETWORKS IN CLOUD COMPUTING INFRASTRUCTURES
DE112020006967T5 (en) PERFORMANCE MONITORING FOR SHORT-LASTING FUNCTIONS
DE102022107621A1 (en) RESOURCE SELECTION PARTLY BASED ON WORKLOAD
DE102022104207A1 (en) Pooling of network processing resources
DE102020113279A1 (en) TECHNOLOGIES FOR MANAGING BURST BANDWIDTH
DE102020118312A1 (en) TECHNOLOGIES FOR MANAGING DISAGGREGATED ACCELERATOR NETWORKS BASED ON REMOTE DIRECT MEMORY ACCESS
DE102020110582A1 (en) TECHNOLOGIES FOR AUTOMATIC WORKLOAD DETECTION AND CACHE-QoS POLICY APPLICATION
US20200021492A1 (en) Technologies for storage cluster rebuild service traffic management
EP3531633B1 (en) Technologies for load balancing a network
DE102020130965A1 (en) TECHNOLOGIES FOR QUICK BOATING WITH ERROR CORRECTION CODE WORKING MEMORY
DE112019000910T5 (en) TECHNOLOGIES FOR ACHIEVING NETWORK QUALITY ASSURANCE WITH HARDWARE ACCELERATION
DE102020114020A1 (en) TECHNOLOGIES FOR PROVIDING EFFICIENT MESSAGE POLLING
DE102018005850A1 (en) Technologies for automated network congestion management
US11531635B2 (en) Technologies for establishing communication channel between accelerator device kernels
DE102020119631A1 (en) TECHNOLOGIES FOR SWITCH CONNECTION AND SHIFT MANAGEMENT FOR CHANGING SUBSCRIPTION RATIOS
DE102018212476A1 (en) TECHNOLOGIES FOR PROVIDING EFFICIENT POOLING FOR A HYPER CONGENT INFRASTRUCTURE
DE102018212478A1 (en) TECHNOLOGIES FOR PROVIDING A DISTRIBUTED MEMORY POOL FOR COMPLETE RACK CONNECTIVITY
DE102018212477A1 (en) TECHNOLOGIES FOR COMPOSING A MADE NODE BASED ON TELEMETRY DATA

Legal Events

Date Code Title Description
R012 Request for examination validly filed