System for storage and apparatus and method for performing communication management

By implementing in-band and out-of-band data routing between management processors and devices within the data center chassis, and utilizing components such as the EBOF processor, the problem of low data center communication efficiency is solved, network stability is improved, and costs are reduced.

CN113821083BActive Publication Date: 2026-02-03SAMSUNG ELECTRONICS CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202110675805.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2021-04-09
Filing Date
2021-06-18
Publication Date
2026-02-03
Estimated Expiration
2041-06-18

AI Technical Summary

Technical Problem

In the existing technology, communication systems and methods between devices in data centers need to be improved to increase efficiency and reduce costs.

Method used

A system is employed that includes a management processor and management device within a chassis, which achieves efficient data transmission and management through in-band and out-of-band data routing mechanisms, utilizing components such as Ethernet Flash Cluster (EBOF) processors, Baseboard Management Controllers (BMCs), Field Programmable Arrays (FPGAs), Application-Specific Integrated Circuits (ASICs), or processors.

Benefits of technology

Reduce network latency, improve network stability and operational data transmission rate, reduce routing network traffic and maintenance costs, reduce device power consumption and bandwidth, and improve communication speed and efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113821083B_ABST
    Figure CN113821083B_ABST
Patent Text Reader

Abstract

Systems for storage and apparatuses and methods for performing communication management are provided. The method can include receiving in-band data from a management apparatus via a first port, generating routing information for routing the in-band data to at least one storage apparatus in a chassis, applying the routing information to a header of a data packet of data associated with the in-band data, and transmitting the in-band data to the storage apparatus via a second port based on the routing information.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application claims priority and benefit to U.S. Provisional Application No. 63 / 041,115, filed June 18, 2020, entitled “System Method for Supporting Direct Communication Between In-Band and Out-of-Band Management within a Chassis,” and U.S. Application No. 17 / 226,998, filed April 9, 2021, the entire contents of which are incorporated herein by reference. Technical Field

[0002] The disclosure generally relates to chassis systems, and more specifically, to systems and methods for storing communications within a chassis. Background Technology

[0003] This background section is intended to provide context only, and the disclosure of any concept in this section does not constitute an admission that the concept is prior art.

[0004] With technological advancements, the size and volume of data are rapidly increasing as it is collected by devices such as mobile devices, IoT devices, aerial (remote sensing) devices, software logs, cameras, microphones, RFID readers, and wireless sensor networks. To process and use the information represented by the collected data, servers are typically located in data centers to filter, compute, store, and perform related operations on the data. Improvements are still needed in the systems and methods for communication between devices within such data centers.

[0005] The information disclosed in this background section is only intended to enhance the understanding of the disclosed background technology. Therefore, the background section may contain information that does not constitute prior art. Summary of the Invention

[0006] In various embodiments, the present document describes systems, methods, and apparatuses for communication within a storage chassis.

[0007] Specifically, a system for storage is described. The system may include: a chassis including a plurality of storage devices for storing data; a management processor for determining routing information for routing in-band data to one of the plurality of storage devices; and a management device for performing communication management, wherein the management device performs the following operations: sending in-band data to the storage device via a first port based on the routing information; and sending out-of-band data to the storage device via a second port.

[0008] In some embodiments, the management processor includes an Ethernet Flash Cluster (EBOF) processor, and the management device includes at least one of a Baseboard Management Controller (BMC), a Field-Programmable Array (FPGA), an Application-Specific Integrated Circuit (ASIC), or a processor. In other embodiments, the system further includes a switch, and the management processor routes in-band data from the management device to a second storage device among the plurality of storage devices via the switch. In various embodiments, the switch receives second in-band data from a host, and the switch sends the second in-band data to the storage device. In other embodiments, the host includes a Non-Volatile Memory Fast (NVMe-oF) initiator on a network, and the storage device includes an NVMe-oF target.

[0009] In one embodiment, the storage device includes a third port for receiving in-band data and a fourth port for receiving out-of-band data. In some embodiments, the storage device includes an Ethernet solid-state drive (SSD), and the third port includes an Ethernet port, and the fourth port includes an inter-integrated circuit (I2C) port or a system management bus (SMBus) port.

[0010] In various embodiments, the management device or management processor applies header information to at least one data packet of data associated with in-band data. In other embodiments, the header information includes information based on the Management Component Transport Protocol (MCTP) over Transmission Control Protocol (TCP), and the at least one data packet is sent to the management processor via TCP Internet Protocol over Ethernet. In one embodiment, out-of-band data is received from a management host and sent to a storage device via I2C / SMBus. In some embodiments, in-band data includes firmware updates or security certificates. Optionally or additionally, in-band data may include management data, including but not limited to configuration, status, manufacturing data, and logs. Examples include port and protocol information such as IP address, health, temperature, power readings, vital product data (VPD), model, serial number, telemetry, statistics, security keys, and firmware measurements. In another embodiment, the disclosed system may include an Ethernet-based solid-state storage device (SSD) that can use Ethernet for in-band communication and can be configured to use any suitable physical connector, including but not limited to SFF-8201 connector, SFF-8223 connector, SFF-8301 connector, SFF-8323 connector and SFF-100x connector.

[0011] Similarly, apparatus and methods for performing operations substantially the same as or similar to those described above are further disclosed.

[0012] Therefore, specific embodiments of the subject matter described herein can be implemented to achieve one or more of the following advantages: reduced network latency and improved network stability and operational data transmission rates, thereby improving the user experience; reduced costs associated with routing network traffic, network maintenance, network updates, etc. Furthermore, in some aspects, the disclosed system can be used to reduce the power consumption and / or bandwidth of devices on a network, and can be used to improve the speed and / or efficiency of communication between devices. Attached Figure Description

[0013] The foregoing and other aspects of this technology will be better understood when this application is read in consideration of the following accompanying drawings, in which like reference numerals indicate similar or identical elements. Furthermore, the drawings provided herein are for illustrative purposes only; other embodiments, which may not be explicitly shown, are not excluded from the scope of this disclosure.

[0014] These and other features and advantages of this disclosure will be appreciated and understood by referring to the specification, claims and drawings, wherein:

[0015] Figure 1 This is an illustration of an exemplary first view of a system for in-band and out-of-band communication of a device associated with a chassis, according to a disclosed example embodiment.

[0016] Figure 2 This is an illustration of an exemplary second view of a system for in-band and out-of-band communication of a device associated with a chassis, according to a disclosed example embodiment.

[0017] Figure 3 This is an illustration of an example flowchart showing example operations for information exchange between a management device, such as a baseboard management component (BMC), and a processor (e.g., a processor associated with a chassis), according to a disclosed example embodiment.

[0018] Figure 4 An example flowchart illustrating example operations for exchanging information between a BMC and a network-attached storage device such as an Ethernet solid-state drive (SSD) is shown according to a disclosed example embodiment.

[0019] Figure 5 A diagram illustrating data packets of information that can be transmitted between various parts of the disclosed system according to a disclosed example embodiment is shown.

[0020] Figure 6 This is an illustration of exemplary features of a chassis-related protocol stack according to a disclosed example embodiment.

[0021] Figure 7AIt is a diagram illustrating an exemplary operation flow of example operations associated with the disclosed system, based on a disclosed example embodiment.

[0022] Figure 7B This is a diagram illustrating another exemplary operation flow of example operations associated with the disclosed system, based on a disclosed example embodiment.

[0023] Figure 8 An example schematic diagram of a system that can be used to practice embodiments of the present disclosure is shown.

[0024] Figure 9 An example schematic diagram of a management computing entity is shown according to a disclosed example embodiment.

[0025] Figure 10 An example schematic diagram of a user device according to a disclosed example embodiment is shown.

[0026] While this technology is susceptible to various modifications and alternatives, specific embodiments of the technology are illustrated by way of example in the accompanying drawings and will be described herein. The drawings may not be drawn to scale. However, it should be understood that the drawings and the detailed description thereof are not intended to limit the technology to the specific forms disclosed, but rather are intended to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the technology as defined by the appended claims. Detailed Implementation

[0027] Details of one or more embodiments of the subject matter described herein are set forth in the accompanying drawings and the following description. Other features, aspects, and advantages of the subject matter will become apparent from the specification, drawings, and claims.

[0028] Various embodiments of this disclosure will be described more fully below with reference to the accompanying drawings, some, but not all, of which are shown. In fact, the disclosure may be implemented in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will satisfy applicable legal requirements. Unless otherwise indicated, the term “or” is used herein in a substitute and connective sense. The terms “illustrative” and “example” are used as examples without an indication of quality level. The same reference numerals always denote the same elements. Arrows in each figure depict bidirectional data flow and / or bidirectional data flow capabilities. The terms “path,” “pathway,” and “route” are used interchangeably herein.

[0029] Embodiments of this disclosure can be implemented in various ways, including as a computer program product comprising an industrial product. A computer program product may include a non-transitory computer-readable storage medium storing applications, programs, program components, scripts, source code, program code, object code, bytecode, compiled code, interpreted code, machine code, executable instructions, etc. (also referred to herein as executable instructions, instructions for execution, computer program product, program code, and / or similar terms used interchangeably herein). Such non-transitory computer-readable storage medium includes all computer-readable media (including volatile and non-volatile media).

[0030] In one embodiment, a non-volatile computer-readable storage medium may include a floppy disk, a hard disk, a solid-state storage device (SSS) (e.g., a solid-state drive (SSD)), a solid-state card (SSC), a solid-state component (SSM), an enterprise flash drive, magnetic tape, or any other non-transitory magnetic medium. Non-volatile computer-readable storage media may also include punched cards, paper tape, optical marking sheets (or any other physical medium having a perforated pattern or other optically identifiable markings), optical disc read-only memory (CD-ROM), rewritable optical disc (CD-RW), digital versatile optical disc (DVD), Blu-ray disc (BD), or any other non-transitory optical medium. Such non-volatile computer-readable storage media may also include read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), flash memory (e.g., serial, NAND, NOR, etc.), multimedia memory card (MMC), secure digital storage (SD) card, smart media card, compact flash (CF) card, memory stick, etc. In addition, non-volatile computer-readable storage media may also include conductive bridged random access memory (CBRAM), phase change random access memory (PRAM), ferroelectric random access memory (FeRAM), non-volatile random access memory (NVRAM), magnetoresistive random access memory (MRAM), resistive random access memory (RRAM), silicon-oxide-nitride-oxide-silicon memory (SONOS), floating junction gate random access memory (FJG RAM), millipede memory, racetrack memory, etc.

[0031] In one embodiment, a volatile computer-readable storage medium may include random access memory (RAM), dynamic random access memory (DRAM), static random access memory (SRAM), fast page mode dynamic random access memory (FPM DRAM), extended data output dynamic random access memory (EDO DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), second-generation double data rate synchronous dynamic random access memory (DDR2 SDRAM), third-generation double data rate synchronous dynamic random access memory (DDR3 SDRAM), Rambus dynamic random access memory (RDRAM), dual transistor RAM (TTRAM), thyristor RAM (T-RAM), zero capacitor (Z-RAM), Rambus through-hole memory module (RIMM), dual in-line memory module (DIMM), single in-line memory module (SIMM), video random access memory (VRAM), cache memory (including various levels), flash memory, register memory, etc. It should be understood that, in the case where the embodiments are described as using computer-readable storage media, other types of computer-readable storage media may replace the computer-readable storage media described above, or other types of computer-readable storage media may be used in addition to the computer-readable storage media described above.

[0032] It should be understood that the various embodiments of this disclosure can also be implemented as methods, devices, systems, computing devices, computing entities, etc. Thus, embodiments of this disclosure can take the form of devices, systems, computing devices, computing entities, etc., that execute instructions stored on a computer-readable storage medium to perform certain steps or operations. Therefore, embodiments of this disclosure can also take the form of completely hardware embodiments, completely computer program product embodiments, and / or embodiments including a combination of computer program products and hardware that perform certain steps or operations.

[0033] Embodiments of this disclosure are described below with reference to block diagrams and flowcharts. Therefore, it should be understood that each block of the block diagrams and flowcharts may be implemented as a computer program product, a complete hardware embodiment, a combination of hardware and computer program products, and / or a device, system, computing device, computing entity, etc., that executes instructions, operations, steps, and interchangeable similar terms (e.g., executable instructions, instructions for execution, program code, etc.) on a computer-readable storage medium for execution. For example, code may be retrieved, loaded, and executed sequentially, such that one instruction is retrieved, loaded, and executed at a time. In some example embodiments, retrieval, loading, and / or execution may be performed in parallel, such that multiple instructions are retrieved, loaded, and / or executed at a time. Thus, such embodiments can produce machines specifically configured to perform the steps or operations specified in the block diagrams and flowcharts. Therefore, the block diagrams and flowcharts support various combinations of embodiments for performing specified instructions, operations, or steps.

[0034] In various aspects, a computing platform (e.g., a server rack or chassis in a data center) may include devices (e.g., processors, management devices, switches, etc.) that communicate within the platform to perform management functions. Communication and / or interfaces associated with the platform may be configured to operate for specific devices on the platform. Various hardware management services may include, but are not limited to, monitoring functions (e.g., temperature monitoring, voltage monitoring, fan speed, hardware error status, etc.), control functions (e.g., platform power-on / power-off, reset, etc.), device firmware updates, and device function management for devices (such as storage devices). In some aspects, such a platform may include controllers to support access to management monitoring and control functions that provide monitoring and control services to other management controllers.

[0035] In various embodiments, the disclosed system can be used with platforms that include Ethernet bunch offlash (EBOF) devices, representing storage systems used in conjunction with applications and workloads that benefit from non-aggregated, low-latency, high-bandwidth, and high-availability storage. In such an EBOF-based chassis used with the aforementioned computing platform, management devices such as a baseboard management component (BMC) and / or storage devices such as fabric-attached storage devices (e.g., Ethernet solid-state drives, SSDs) may reside on a separate network or a separate portion of a network (e.g., a separate Ethernet network). Therefore, such devices may not necessarily be able to communicate directly with each other, as the BMC and the Ethernet-based solid-state storage devices may be on different Ethernet networks. In another embodiment, the management device may include a service processor or BMC, which can be used to manage local SSDs (e.g., Ethernet-based solid-state storage devices) located within the same chassis. In various aspects, storage devices such as Ethernet SSDs (ESSDs) (or other network-attached storage devices such as non-volatile memory express over fabric (NVMe-oF) devices on a local network) may include in-band Ethernet ports through which the device receives in-band information, including data and management information. Furthermore, such example Ethernet SSDs may include out-of-band ports (such as inter-integrated circuit (I2C, also known as an integrated circuit bus) and / or system management bus (SMBus) interfaces) through which the device receives out-of-band information for management (e.g., via a management device such as a BMC). In some cases, the management device may not have access to the in-band Ethernet and may therefore only be able to manage such Ethernet SSDs via optional out-of-band ports (such as I2C / SMBus interfaces).

[0036] Furthermore, various protocols and / or standards may exist, including but not limited to the Platform Management Component Interconnect (PMCI) protocol stack of the Distributed Management Task Force (DMTF), which can primarily describe various in-chassis communication standards. Standards such as PMCI may also include the Management Component Transport Protocol (MCTP), which enables data transmission at certain physical layers such as Peripheral Component Interconnect Fast (PCIe) and I2C / SMBus, but may not be configured to work with other protocols such as Ethernet. Additionally, the disclosed system can operate with security protocols such as the Security Protocol and the Platform Level Data Model (SPDM) protocol, which can be used for security and enables data transmission at the MCTP transport layer and can be used for authentication and secure communication between devices. Furthermore, PMCI may also include the Platform Level Data Model (PLDM) protocol, which enables information transmission at the MCTP transport layer and can be used for platform management, including firmware updates. Furthermore, the disclosed system can use SPDM to provide firmware updates and / or security certificates. In some respects, the disclosed system can operate according to network protocols such as Simple Service Discovery Protocol (SSDP), which can be used in conjunction with User Datagram Protocol (UDP), Internet Protocol (IP), and / or Ethernet. However, management devices such as the BMC may need to communicate with the Ethernet SSD in the EBOF via an out-of-band channel such as one with an I2C / SMBus interface. For some management operations (such as delivering keys and certificates for security operations (e.g., SPDM operations) and / or other operations such as facilitating firmware updates or providing security certificates), the I2C / SMBus interface may be relatively slow (e.g., characterized by lower bandwidth compared to other interfaces and associated protocols).

[0037] In various embodiments, this document describes systems, methods, and apparatuses that can support direct communication between out-of-band and in-band interfaces and between associated devices for device management within a chassis (such as an EBOF chassis). In some aspects, the Ethernet interface on an Ethernet SSD (Ethernet-based solid-state storage device) can be used for out-of-band management purposes. For other network-attached SSDs such as NVMe SSDs, other interfaces such as SMBus and High-Speed ​​Peripheral Component Interconnect Fast (PCIe) interfaces can be used to carry various management protocol messages, such as NVMe Management Interface (NVMe-MI) out-of-band management requests and responses. In various embodiments, such as in the case of Ethernet-based solid-state storage devices used in chassis such as EBOF chassis, the disclosed systems enable the Ethernet interface of the Ethernet-based solid-state storage device to facilitate various management communications (such as NVMe-MI protocol-based communications).

[0038] In some aspects, in such an EBOF chassis, Ethernet SSD management can be performed via two paths (one out-of-band and one in-band). For out-of-band management, the Ethernet-based solid-state storage device can be managed by a management device such as the BMC via a first interface such as an I2C / SMBus interface. For example, this out-of-band management can be performed on MCTP messages according to a protocol such as the DMTF PMCI stack. For in-band management, the Ethernet-based solid-state storage device can be managed by a host (e.g., an NVMe-oF initiator) via a protocol such as Ethernet. In various embodiments, the disclosed system can provide a higher speed and bandwidth path for the BMC (compared to out-of-band management of the Ethernet-based solid-state storage device by the BMC via the I2C / SMBus interface) to manage the Ethernet SSD within the EBOF chassis. In particular, the disclosed system can implement this management via Ethernet through the BMC (e.g., for MCTP messages from the DMTF PMCI stack).

[0039] As described, the BMC and Ethernet SSD can be on separate Ethernet networks. Therefore, in some embodiments, the disclosed system includes a router (e.g., a software-based router) that can route messages (e.g., MCTP messages) between the BMC and the Ethernet-based solid-state storage device, for example, using information provided in the header of a message block. Such messages can then be transmitted over Ethernet via TCP / IP and can be used to manage the Ethernet-based solid-state storage device. Note that for the purposes of some examples herein, MCTP can refer to the transport layer of the DMTF PMCI stack used for in-chassis communication; furthermore, PLDM, SPDM, NVMe-MI, etc., messages can be transmitted on MCTP as well as at physical layers such as I2C or PCIe. While this disclosure will focus on certain embodiments using the DMTF PMCI stack for in-chassis communication, it should be understood that any other suitable protocols, including but not limited to NVMe, NVMe-MI, NVMe-oF, Fibre Channel, etc., that can operate in conjunction with the disclosed embodiments may be included within the scope of this disclosure.

[0040] In various embodiments, as described above, the disclosed system may include a router (e.g., a software-based router) that can route traffic between a management device such as a BMC and various network-attached storage devices such as Ethernet SSDs according to a first protocol (e.g., MCTP). Specifically, the router may enable a management path between the Ethernet interfaces of the BMC and the Ethernet SSDs. Furthermore, the disclosed system may allow the use of Ethernet interface information, which may be available in a processor associated with the system (e.g., an EBOF-enabled processor (e.g., a processor implementing a Switched Network Operating System, NOS)) depending on the switch (e.g., an Ethernet switch) associated with the system. For example, the disclosed system may provide the BMC with an Ethernet SSD Internet Protocol (IP) address for use with MCTP over TCP.

[0041] In various embodiments, the disclosed system includes using a driver (e.g., an MCTP driver over TCP) on each system endpoint (e.g., a BMC and / or an Ethernet SSD) to apply predetermined metadata and / or header information (e.g., an MCTP header over TCP) to messages transmitted between endpoints. The header may include information about the original source and final destination for routing the message. In one embodiment, a router (e.g., an MCTP router over TCP) associated with a processor (e.g., an EBOF processor) and / or a switch NOS may use the information in the header to route traffic to its final destination. In various embodiments, a driver associated with a storage device (e.g., an MCTP driver over TCP associated with an Ethernet SSD) may exchange destination and source information from the MCTP header over TCP for use in responses. In one embodiment, certain protocol-specific messages (e.g., PLDM and other MCTP messages) may be transmitted at the Ethernet physical layer via TCP / IP and MCTP over TCP. Such messages may include, but are not limited to, SPDM messages, which may have an encrypted payload for secure communication. In some embodiments, a drive (e.g., an MCTP drive over TCP) on a management device (e.g., a BMC) can be configured to discover routers (e.g., MCTP routers over TCP) using a protocol (e.g., SSDP). The router can provide the management device (e.g., the BMC) with the IP address of a storage device (e.g., an Ethernet SSD).

[0042] Some technical advantages of the disclosed system may include, but are not limited to, the following: It allows management devices such as BMCs to use a faster management path as the primary path (e.g., an in-band communication path), leaving other interfaces, such as I2C / SMBus interfaces, to slower out-of-band communication in the event of an Ethernet interface failure, such as on an Ethernet-based solid-state storage device. It enables the use of BMCs for managing Ethernet SSDs that do not implement I2C / SMBus ports and interfaces. It provides a faster and more efficient way to manage EBOFs through management devices.

[0043] Having discussed certain aspects of the disclosed systems and methods, we turn to the accompanying drawings, which provide further views illustrating various features of the disclosed embodiments. Figure 1 This is an illustration of an exemplary first view of a system for in-band and out-of-band communication of a device associated with a chassis, according to disclosed example embodiments. In various aspects, FIG101 illustrates a chassis 102, such as an EBOF chassis including one or more Ethernet SSDs 108. As described, the EBOF can be used in conjunction with applications and workloads that benefit from non-aggregated, low-latency, high-bandwidth, and highly available storage. In another embodiment, chassis 102 may include a BMC 106, an EBOF processor 104, an Ethernet switch (not shown), and an Ethernet SSD 108. Chassis 102 may include, but is not limited to, tower servers or rack servers. Furthermore, the chassis may include memory (not shown), which can be any type of memory, such as flash memory, static random access memory (SRAM), persistent random access memory, ferroelectric random access memory (FRAM), or non-volatile random access memory (NVRAM), such as magnetoresistive random access memory (MRAM), etc. The memory can also be any desired combination of different types of memory. The memory can be used in conjunction with various devices in the chassis (e.g., BMC, EBOF processor, etc.).

[0044] Furthermore, as shown in Figure 101, the EBOF processor 104 may include a switch (such as a switch 112 running a Network Operating System (NOS)) and a router (such as an MCTP router 114 over TCP). The MCTP router 114 over TCP may be configured to communicate with a given Ethernet SSD 108 via Ethernet port 116 and with the BMC 106 via Ethernet port (e.g., a second Ethernet port) 118 (e.g., via MCTP over TCP). Similarly, the Ethernet SSD may include another Ethernet port 110 for sending messages from the EBOF processor 104 to the Ethernet SSD 108 via an MCTP over TCP interface 128, which can then further process the messages via an MCTP binding (also known as a bundle) layer 130. The MCTP binding layer 130 can be used to facilitate connectivity between devices to allow resources (e.g., computing, networking, or storage resources) to be exchanged between devices in the system. Similarly, BMC 106 can be configured to receive messages from EBOF processor 104 via Ethernet port 126 at the MCTP 124 interface over TCP. Furthermore, BMC 106 may include BMC OS 120, which can use these messages after they have been processed at least partially via MCTP binding 122.

[0045] While the disclosure focuses primarily on embodiments associated with the Ethernet SSD 108, it should be understood that other storage devices that can operate in conjunction with the disclosed system are also within the scope of the disclosure. Non-limiting examples of such devices may include solid-state drives (SSDs), but other forms of storage such as hard disk drives or other long-term storage devices are also feasible. Optionally or additionally, the device may include a network-attached SSD that can support any of several different transport protocols (to name a few possibilities, such as Ethernet, Fibre Channel, Infinite Bandwidth, or Non-Volatile Memory Fast (NVMe)), but in some embodiments, the network-attached SSD may be limited to a subset of these transport protocols (possibly one: for example, an Ethernet SSD). Furthermore, the disclosed embodiments can support any desired number of devices. Additionally, other devices such as network interface cards (NICs) may replace network-attached SSDs, or other devices such as network interface cards (NICs) may be included in addition to network-attached SSDs. Throughout the remainder of this document, any reference to an Ethernet SSD can be replaced to include any optional device that can be identified as an NVMe-oF device and can be replaced by a network-attached device.

[0046] Furthermore, while the disclosed system pertains to the BMC within the chassis, the BMC is a possible proxy for the processor to perform any suitable operations (e.g., management operations) associated with the chassis and storage devices. Other feasible devices may include a standalone redundant array of disks (RAID) controller, another processor (typically different from the processor involved in performing the boot operation), or even a software proxy. As used herein, any reference to the BMC is intended to refer to these other devices, as well as any other devices that may act as proxies for the processor. In some embodiments, the BMC or any management device performing the operations described herein may not necessarily be a standalone component and may be integrated into other processors (e.g., management processors such as EBOF processors) or computing components associated with the chassis. For example, a management processor (e.g., an EBOF processor) may include software instructions that perform the operations described herein in relation to the BMC or any suitable management device. In some embodiments, a management processor (or equivalent) may include a local EBOF processor, which may be used as a software-defined network to manage Ethernet switches and, in some cases, as a service management processor to manage an entire chassis without a BMC. In some systems, the local processor can be used to manage Ethernet switches, and the BMC can be used to manage the entire chassis or a portion of the chassis.

[0047] Furthermore, while the EBOF processor described above is in conjunction with the embodiments discussed above, the EBOF processor can include any suitable processing element. Additionally, such a processing element can be coupled to memory, which, for example, can include random access memory (RAM), read-only memory (ROM), or other state-saving media. The processor can also be coupled to a storage device and a network connector, which can be, for example, an Ethernet connector or a wireless connector. The processing element can also be connected to a bus, and user interface and input / output interface ports can be attached to the bus. These user interface and input / output interface ports can be managed using an input / output engine and other components.

[0048] Figure 2 This is an illustration of an exemplary second view of a system for in-band and out-of-band communication of a device associated with a chassis, according to disclosed example embodiments. In some embodiments, as further shown and described below, FIG201 may also be shown in comparison to... Figure 1The chassis 202 is shown in a more detailed second view than the first view. In one example embodiment, the BMC 204 may also include a first stack 212 and an MCTP 214 layer over TCP, the first stack 212 including the BMC OS, protocol blocks such as PLDM / NVMe-MI / SPDM, and binding layers such as MCTP bindings. As used herein, layers and blocks may be used interchangeably. In one embodiment, the BMC 204 may communicate with the EBOF processor 206 via an Ethernet port 216 on the BMC 204. In particular, the Ethernet port 216 may pass information from the MCTP 214 layer over TCP to a corresponding MCTP router 222 over TCP within the EBOF processor 206 via an Ethernet port 220 of the EBOF processor 206.

[0049] Similarly, the MCTP router 222 on the TCP of the EBOF processor 206 can communicate with the Ethernet switch 208 via another Ethernet port 224 of the EBOF processor 206. Furthermore, the Ethernet switch 208 can communicate with the Ethernet SSD 210 via the Ethernet port 226 of the Ethernet SSD 210. Specifically, the Ethernet switch 208 can be configured to transmit both in-band and out-of-band information. For example, the Ethernet switch 208 can be configured to transmit first in-band information 205 from the NVMe-oF initiator 209 to the NVMe-oF target 230 of the Ethernet-based solid-state storage device 210. Optionally or additionally, the Ethernet switch 208 can be configured to transmit second out-of-band to in-band information 207 (e.g., in-band information that can be sent via the first out-of-band information 203) to the MCTP 232 layer on the TCP of the Ethernet SSD 210 via the Ethernet port 226 of the Ethernet SSD 210. The MCTP layer 232 over TCP may be part of a stack that includes the MCTP bonding layer 234 and the PLDM / NVMe-MI / SPDM / etc. layer 236. In some embodiments, Ethernet port 226 may include any suitable physical connector, including but not limited to SFF-8201 connector, SFF-8223 connector, SFF-8301 connector, SFF-8323 connector and / or SFF-100x connector.

[0050] In some aspects, the disclosed system can be configured to transmit second out-of-band to in-band information 207 from BMC 204 to EBOF processor 206 via Ethernet switch 208, and ultimately to Ethernet SSD 210. Furthermore, the disclosed system can be configured to transmit first out-of-band information 203 via corresponding I2C / SMBus ports 218 and 228 of BMC 204 and Ethernet SSD 210, respectively. Specifically, this out-of-band information 203 can be sent from the MCTP bonding layer of stack 212 of BMC 204 to the MCTP bonding layer 234 of Ethernet SSD 210. Additionally, BMC 204 can be configured to connect to management host 240. Management host 240 can send various management-related information to Ethernet SSD 210 via corresponding ports (e.g., I2C / SMBus ports 218 and 228) through BMC 204.

[0051] Figure 3 This is an illustration of an example flowchart showing example operations for information exchange between a management device (such as a Baseboard Management Component (BMC)) and a processor (e.g., a processor associated with a chassis), according to a disclosed example embodiment. Specifically, Figure 301 shows a portion (e.g., a chassis) of an EBOF 302 system. This portion of the EBOF 302 system may include a management device such as a BMC 303 and a processor such as an EBOF processor 308 that can implement a switch NOS. As shown in Figure 301, at block 306, the BMC 303 may send a security search command (such as an SSDPM-Search command for MCTP over TCP) on a given protocol to locate a router. At block 314, the EBOF processor 308 may receive a message in response to the search. Furthermore, at block 316, the EBOF processor 308 may determine whether the received message is ready for processing by an MCTP router over TCP. If it is determined that the message is not ready for processing, at block 318, the EBOF processor 308 may ignore the message. On the other hand, if it is determined that the message is ready for processing, at block 312, the EBOF processor 308 can read the relevant interface data associated with the device's port, such as reading the Ethernet interface data for the switch port of the Ethernet-based solid-state storage device. Furthermore, at block 310, the EBOF processor 308 can send a response with the corresponding Ethernet-based solid-state storage device IP address to the BMC 303. At block 304, the BMC 303 can resolve the SSDP response for the Ethernet-based solid-state storage device based on the corresponding IP address. The BMC 303 can then use the IP address to route the relevant information to the given Ethernet-based solid-state storage device according to the protocol. As described in various aspects herein, the information sent can be in-band information.

[0052] Figure 4 An example flowchart illustrating an example operational flow of information between a BMC and an Ethernet SSD, according to a disclosed example embodiment, is shown. Specifically, Figure 401 illustrates an EBOF chassis 403, which may include a BMC 402, an EBOF processor 404, an Ethernet switch 406, and an Ethernet-based solid-state storage device (ESSD, or Ethernet solid-state storage device) 408. Specifically, the BMC may be configured to access table 410 to determine various IP addresses associated with different Ethernet-based solid-state storage device slots and ports. At block 414, the disclosed system may receive and use the information obtained from table 410 and PLDM messages received from the PLDM driver to initiate processing to send information from the BMC 402 to the Ethernet SSD 408. At block 416, the BMC may be configured to apply MCTP header information over TCP along with information specifying the source and final destination (e.g., the Ethernet-based solid-state storage device IP address) for the transmitted data packets. At box 418, the BMC can be configured to send packets to a network drive with an Ethernet-based solid-state storage device processor that serves as the destination.

[0053] At box 420, the EBOF processor can be configured to receive a message from the BMC, and can be further configured at box 422 to determine whether the message includes n TCP MCTP headers. If it is determined at box 422 that the message does not include TCP MCTP headers, then at box 424, the EBOF processor can be configured to ignore the message. Optionally, if it is determined at box 422 that the message includes TCP MCTP headers, then at box 426, the disclosed system can be configured to determine whether the destination IP address associated with the message addresses the BMC. If it is determined at box 426 that the destination IP address does not belong to the BMC, then at box 428, the disclosed system can determine whether the destination IP address is an Ethernet-based solid-state storage device.

[0054] If, at box 428, the destination IP address does not include an Ethernet-based solid-state storage device, then at box 430, the disclosed system can be configured to discard messages. Conversely, if, at box 428, the destination IP address includes an ESSD, then at box 436, the disclosed system can determine whether the ESSD is linked. If, at box 436, the ESSD is not linked, then at box 438, the disclosed system can set an error code and route the information back to the BMC source. Conversely, if, at box 436, the ESSD is linked, then at box 440, the disclosed system can be configured to send packets to a network driver with an ESSD as its destination. Furthermore, as shown in box 446, the ESSD can be configured to receive messages.

[0055] At box 440, the EBOF processor can be configured to send packets to a network drive with an Ethernet-based solid-state storage device as the destination, based on the results determined at boxes 432 and 434. At box 446, the Ethernet SSD can be configured to receive messages from the EBOF processor via Ethernet switch 406. At box 448, the Ethernet SSD can be configured to determine whether the received message includes MCTP header information over TCP. If it is determined at box 448 that the message does not include MCTP header information over TCP, the Ethernet SSD can ignore the message, as shown in box 450. If it is determined at box 448 that the message includes MCTP header information over TCP, the Ethernet SSD can parse the header information, as shown in box 452.

[0056] Furthermore, at box 454, the Ethernet-based SSD can determine whether it is the final destination based on header information. If it is determined that the Ethernet-based SSD is not the final destination, the Ethernet SSD can discard the message, as shown in box 456. On the other hand, if it is determined that the Ethernet SSD is the destination, at box 458, the Ethernet SSD can send the PLDM message in the payload to the PLDM drive associated with the Ethernet SSD. At box 460, the Ethernet SSD can be configured to receive a response from the PLDM drive. From there, at box 462, the Ethernet SSD can determine the MCTP header information on the TCP with the indicated source and final destination (BMC IP address). From there, at box 464, the Ethernet SSD can send the packet to the network drive with the Ethernet-based SSD processor used as the destination. This packet can be sent via an Ethernet switch to the EBOF processor that receives the message at box 420.

[0057] Figure 5Figure 501 illustrates a data packet of information that can be transmitted between various parts of the disclosed system according to a disclosed example embodiment. Specifically, the data packet may include an Ethernet header 502, an IP header 504, a TCP header 506, an MCTP header over TCP 508, an MCTP header 510, and a PLDM message 512. Furthermore, the MCTP header over TCP 508 may include an opcode 514, a final destination 516, and a source 518. In one embodiment, the opcode 514 may include information such as requests, responses, and errors. In another embodiment, the final destination 516 may include an IP address associated with a BMC or an Ethernet SSD. On the other hand, the source 518 may include an IP address associated with a BMC or an Ethernet SSD.

[0058] Figure 6 This is an illustration of an exemplary protocol-specific implementation that can be used with the disclosed system, based on disclosed example embodiments. In various embodiments, the PCMI stack, combined with standards for communication between platform components (e.g., devices in a chassis), can be operational. Figure 601 illustrates a schematic diagram including examples of PLDM message 602 and MCTP message 604 types that can be used in conjunction with the disclosed system. Further shown and described with reference to Figure 601 are various message layers 606, transport layers 608, and physical layers 610 associated with devices in a chassis (e.g., storage devices, management processors, management devices, etc.). Additionally, message layer component 612, transport layer component 614, first physical layer component 616, and second physical layer component 618 are shown.

[0059] In various embodiments, PLDM message 602 may include information associated with control and discovery (e.g., PLDM control and discovery), BIOS-related information (e.g., PLDM SMBIOS), platform monitoring and control (e.g., PLDM platform monitoring and control), BIOS control and configuration (e.g., PLDM BIOS control and configuration), field replacement unit (FRU) data transfer (e.g., PLDM FRU data transfer), firmware update information (e.g., PLDM firmware update), and device enable information (e.g., PLDM Redfish device enable). In one embodiment, MCTP message 604 may include control information (e.g., MCTP control (type = 0)), PLDM-related information (e.g., PLDM (type = 1)), Network Controller Sideband Interface (NC-SI) control and pass-through information (e.g., NC-SI control (type = 2) and NC-SI pass-through (type = 3)), NVMe-MI information (e.g., NVMe-MI information). (Type = 4)), security (SPDM related) information (e.g., SPDM (Type = 5)) and / or vendor-defined information (e.g., vendor-defined (Type = 7E / 7F)). In some embodiments, 620MCTP messages 604 may be encapsulated for transmission on message layer 606 (e.g., as protected messages (e.g., Type 6 (or, Type = 6))).

[0060] In various embodiments, message layer 606 may include MCTP control messages, PLDM messages, NC-SI messages, NVMe-MI messages, SPDM messages, and protected messages (e.g., via the above combination). Figure 5 The MCTP message (encapsulated with header information) and vendor-defined messages are described. In some embodiments, the MCTP control protocol is used to set up and initialize managed devices within the MCTP network. Furthermore, the PLDM can be used to provide access to low-level platform monitoring, control, and data transmission functions (such as temperature, fan, voltage, inventory data, event data transmission, and boot control). Additionally, the PLDM on MCTP can include data representations and commands associated with the platform management hardware. NC-SI defines a transparent model for Ethernet communication between the management controller and the network controller. Furthermore, SPDM defines a set of commands for authentication, firmware measurement, and certificate management.

[0061] In one embodiment, transport layer 608 may include the MCTP protocol. As described, the MCTP protocol can be used to manage devices within an MCTP network. The MCTP protocol can be independent of the underlying physical bus attributes and the "data link" layer messages used on the bus. Furthermore, the transport defines a messaging protocol. MCTP transports can support both acknowledged (e.g., request / response) and unacknowledged (e.g., asynchronous) messages. MCTP may include binding specifications that define the necessary headers and timing requirements for transport to be used on the applicable physical medium. Bindings can be different for different physical media, such as MCTP VDM binding on PCIe and MCTP binding on SMBus / I2C. The physical and data link layer methods for MCTP communication across a given medium are described by transport binding features, such as MCTP Vendor Defined Messages (VDM) on PCIe and MCTP on SMBus / I2C. The disclosed system can also be used with other buses such as USB.

[0062] In various embodiments, physical layer 610 may include PMCI standards and protocols implemented on a physical medium. In various embodiments, the physical medium represents an available interconnect to which the MCTP specification can be used. In one embodiment, message layer component 612 may include MCTP control information, PLDM information, NC-SI control information, NC-SI pass-through information, NVMe-MI information, SPDM information, and protected messages (e.g., via the above combination). Figure 5 The message encapsulated with the described header information and vendor-defined information. In various embodiments, transport layer component 614 may include MCTP. In one embodiment, first physical layer component 616 may include MCTP VDM over PCIe, MCTP over I2C / SMBus, MCTP over Gen-Z, and MCTP over I3C. In various embodiments, second physical layer component 618 may include PCIe, I2C / SMBus, Gen-Z, and I3C.

[0063] Figure 7A This is a diagram illustrating an exemplary operation flow associated with the disclosed system, based on a disclosed example embodiment. In some embodiments, with Figure 7A The associated operational processes can be performed substantially by a management processor, such as an EBOF processor, or a similar device described herein. At block 702, the disclosed system can receive in-band data from a management device via a first port. In some embodiments, the management device may include a BMC device. At block 704, the disclosed system can generate routing information for routing the in-band data to at least one storage device in the chassis. At block 706, the disclosed system can apply the routing information to the header of a data packet associated with the in-band data. In various embodiments, the header may include Management Component Transport Protocol (MCTP) information based on Transmission Control Protocol (TCP), and the data packet is sent to the management processor via TCP Internet Protocol (IP) over Ethernet. Furthermore, the routing information may include an IP address associated with an endpoint device, such as a given Ethernet-based solid-state storage device in the chassis. At block 708, the disclosed system can send the in-band data to the storage device via a second port based on the routing information. Furthermore, in various embodiments, the in-band data may be sent to a second storage device within the storage device via a switch. In some embodiments, the in-band data may include firmware updates.

[0064] Figure 7B This is a diagram illustrating another exemplary operational flow of example operations associated with the disclosed system, based on a disclosed example embodiment. In some embodiments, with Figure 7BThe associated operational processes can be performed substantially by a storage device, such as an Ethernet-based solid-state storage device or other network-attached storage device. At block 722, the disclosed system can generate routing information for routing in-band data to at least one management device within the chassis. At block 724, the disclosed system can apply the routing information to the header of a data packet associated with the in-band data. In various embodiments, the header may include Management Component Transport Protocol (MCTP) information based on Transmission Control Protocol (TCP), and the data packet is sent to the management processor via TCP Internet Protocol (IP) over Ethernet. At block 726, the disclosed system can send the in-band data to the management device via a port based on the routing information. Furthermore, in various embodiments, the in-band data may be sent to a second storage device within the storage device via a switch. In some embodiments, the in-band data may include firmware updates.

[0065] Figure 8 Example schematic diagrams of systems that can be used to practice embodiments of this disclosure are shown. For example... Figure 8 As shown, this particular embodiment may include one or more management computing entities 800, one or more networks 805, and one or more user devices 810. In various embodiments, the management computing entity 800 may be configured to perform operations associated with the disclosed system and the embodiments described herein. Furthermore, the management computing entity 800 may reside in any suitable part of the disclosed system (e.g., a management device such as a BMC, a management processor such as an EBOF processor, a storage device such as an Ethernet-based solid-state storage device, a remote host, another device, combinations thereof, etc.). Each of these components, entities, devices, systems, and similar terms used interchangeably herein may communicate directly or indirectly with each other via the same or different wired or wireless networks. Additionally, although... Figure 8 Various system entities are presented as separate, independent entities, but various embodiments are not limited to this particular architecture. Furthermore, the management computing entity 800 may include the machine learning components described herein. As noted, communication can be performed using any suitable protocols further described herein.

[0066] Figure 9 An example schematic diagram of a management computing entity according to a disclosed example embodiment is shown. As described, the management computing entity can be configured to perform operations associated with the disclosed system and the embodiments described throughout the disclosure. Furthermore, the management computing entity 900 (similar to...) Figure 8The management computing entity 800 shown may reside in any suitable part of the disclosed system. In particular, the content component may be used to determine signals indicating data (e.g., video, audio, text, data, combinations thereof, etc.) to be transmitted via the system described herein. In another embodiment, the determination of the signals for transmission may be based, for example, on user input to the device, a predetermined schedule of data transmission on a network associated with the system, changes in network conditions, etc. In one embodiment, the signals may include: data may be encapsulated in data frames and / or data packets configured to be transmitted from the device to one or more devices on a network.

[0067] In another embodiment, processing element 905 can be used to determine various parameters associated with data transmitted on a network associated with the disclosed system. As another example, processing element 905 can be used to run models on network data, run machine learning techniques on parameters associated with different execution capabilities of clusters in the network, and determine the allocation, combination, and / or similar distribution of workloads to be processed by various clusters of multiple parts of the network architecture.

[0068] In one embodiment, a transmitting component (not shown) can be used to transmit a signal from one device on a network to another. For example, the transmitting component can be used to prepare a transmitter to transmit a signal over the network. For example, the transmitting component can queue data in one or more buffers, determine that the transmitting device and associated transmitter are functional and have sufficient power to transmit the signal over the network, and adjust one or more parameters associated with data transmission (e.g., modulation type, signal amplification, signal power level, noise suppression, combinations thereof, etc.).

[0069] Generally, the terms computing entity, computer, entity, device, system, and / or similar terms used interchangeably herein can refer to, for example, one or more computers, computing entities, desktop computers, mobile phones, tablets, phablets, laptops, laptops, distributed systems, game consoles (e.g., Xbox, PlayStation, Wii), watches, glasses, iBeacons, proximity beacons, key fobs, RFID tags, headphones, scanners, televisions, dongles, cameras, wristbands, wearable items / devices, kiosks, input terminals, servers or server networks, blade servers, gateways, switches, processing devices, processing entities, set-top boxes, repeaters, routers, network access points, base stations, etc., and / or any combination of devices or entities suitable for performing the functions, operations, and / or processes described herein. Such functions, operations, and / or processes can include, for example, sending, receiving, operating on, processing, displaying, storing, determining, creating / generating, monitoring, evaluating, comparing, and / or similar terms used interchangeably herein. In one embodiment, these functions, operations, and / or processes may be performed on data, content, information, and / or similar terms that are interchangeable herein.

[0070] As indicated, in one embodiment, the management computing entity 900 may further include one or more communication interfaces 920 for communicating with various computing entities (e.g., by transmitting data, content, information, and / or similar terms interchangeable herein that can be sent, received, manipulated, processed, displayed, stored, etc.). For example, the management computing entity 900 may communicate with user devices and / or various other computing entities.

[0071] like Figure 9As shown, in one embodiment, the management computing entity 900 may include one or more processing elements 905 (also referred to as processors, processing circuitry, and / or similar terms used interchangeably herein) or communicate with one or more processing elements 905, one or more of which communicate with other elements within the management computing entity 900, for example, via a bus. As will be understood, the processing element 905 can be implemented in a variety of different ways. For example, the processing element 905 may be implemented as one or more complex programmable logic devices (CPLDs), microprocessors, multi-core processors, coprocessor entities, application-specific instruction set processors (ASIPs), microcontrollers, and / or controllers. Furthermore, the processing element 905 may be implemented as one or more other processing means or circuits. The term "circuit" can refer to a completely hardware embodiment or a combination of hardware and computer program products. Thus, the processing element 905 may be implemented as an integrated circuit, an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), a programmable logic array (PLA), a hardware accelerator, other circuitry, etc. Therefore, as will be understood, processing element 905 can be configured for a particular purpose or configured to execute instructions stored in volatile or non-volatile media or otherwise accessible to processing element 905. Thus, whether configured by hardware, computer program products, or a combination thereof, when configured accordingly, processing element 905 may be able to perform steps or operations according to embodiments of this disclosure.

[0072] In one embodiment, the management computing entity 900 may further include or communicate with non-volatile media (also referred to as non-volatile storage devices, memory, memory storage devices, memory circuitry, and / or similar terms used interchangeably herein). In one embodiment, a non-volatile storage device or memory may include one or more non-volatile storage or memory media 910, including but not limited to hard disks, ROMs, PROMs, EPROMs, EEPROMs, flash memory, MMC, SD memory cards, Memory Sticks, CBRAMs, PRAMs, FeRAMs, NVRAMs, MRAMs, RRAMs, SONOS, FJG RAMs, millipede memory, racetrack memory, etc. As will be appreciated, non-volatile storage or memory media may store databases, database instances, database management systems, data, applications, programs, program components, scripts, source code, object code, bytecode, compiled code, interpreted code, machine code, executable instructions, etc. The terms database, database instance, database management system, and / or similar terms that may be used interchangeably herein can refer to a batch of records or data stored in a computer-readable storage medium using one or more database models (such as hierarchical database models, network models, relational models, entity-relationship models, object models, document models, semantic models, graphical models, etc.).

[0073] In one embodiment, the management computing entity 900 may further include or communicate with volatile media (also referred to as volatile storage device, memory, memory storage device, memory circuitry, and / or similar terms used interchangeably herein). In one embodiment, the volatile storage device or memory may further include one or more volatile storage or memory media 915, including but not limited to RAM, DRAM, SRAM, FPM DRAM, EDO DRAM, SDRAM, DDR SDRAM, DDR2 SDRAM, DDR3 SDRAM, RDRAM, TTRAM, T-RAM, Z-RAM, RIMM, DIMM, SIMM, VRAM, cache memory, register memory, etc. As will be appreciated, volatile storage or memory media can be used to store at least multiple portions of databases, database instances, database management systems, data, applications, programs, program components, scripts, source code, object code, bytecode, compiled code, interpreted code, machine code, executable instructions, etc., executed by, for example, processing element 905. Therefore, databases, database instances, database management systems, data, applications, programs, program components, scripts, source code, object code, bytecode, compiled code, interpreted code, machine code, executable instructions, etc., can be used to control and manage certain aspects of the operation of computing entity 900 with the help of processing element 905 and operating system.

[0074] As indicated, in one embodiment, the management computing entity 900 may also include one or more communication interfaces 920 for communicating with various computing entities (e.g., by transmitting data, content, information, and / or similar terms used interchangeably herein that can be sent, received, manipulated, processed, displayed, stored, etc.). Such communication may be performed using wired data transmission protocols such as Peripheral Component Interconnect Fast (PCIe), Fiber Distributed Data Interface (FDDI), Digital Subscriber Line (DSL), Ethernet, Asynchronous Transfer Mode (ATM), Frame Relay, Cable Data Service Interface Specification (DOCSIS), or any other wired transmission protocol. Similarly, the management computing entity 800 can be configured to communicate via a wireless external communication network using any of the following protocols: General Packet Radio Service (GPRS), Universal Mobile Telecommunications System (UMTS), Code Division Multiple Access 2000 (CDMA2000), CDMA2000 1X (1xRTT), Wideband Code Division Multiple Access (WCDMA), Time Division Synchronous Code Division Multiple Access (TD-SCDMA), Long Term Evolution (LTE), Evolved Universal Terrestrial Radio Access Network (E-UTRAN), Evolved Data Optimized (EVDO), High-Speed ​​Packet Access (HSPA), High-Speed ​​Downlink Packet Access (HSDPA), IEEE 802.11 (Wi-Fi), Wi-Fi Direct, 802.16 (WiMAX), Ultra Wideband (UWB), Infrared (IR) protocol, Near Field Communication (NFC) protocol, ZigBee, Bluetooth protocol, 5G protocol, Wireless Universal Serial Bus (USB) protocol, and / or any other wireless protocol.

[0075] Although not shown, the management computing entity 900 may include or communicate with one or more input elements (such as keyboard input, mouse input, touchscreen / display input, motion input, movement input, audio input, pointing device input, joystick input, keypad input, etc.). The management computing entity 900 may also include or communicate with one or more output elements (not shown, such as audio output, video output, screen / display output, motion output, movement output, etc.)

[0076] As will be understood, such as in a distributed system, one or more of the components of the management computing entity 900 may be located remotely from other components of the management computing entity 900. Furthermore, one or more components may be combined, and additional components performing the functions described herein may be included in the management computing entity 900. Therefore, the management computing entity 900 can be adapted to various needs and situations. As will be appreciated, these architectures and descriptions are provided for illustrative purposes only and are not limited to various embodiments.

[0077] Users can be individuals, families, companies, organizations, entities, departments within an organization, or representatives of organizations and / or individuals. In one example, a user can be an employee, resident, customer, etc. For instance, a user device may operate a user device that includes one or more components functionally similar to those used to manage computing entity 900.

[0078] In all aspects, such as here Figure 8 and 9 As shown and described, the processing component, transmitting component, and / or receiving component (not shown) can be configured to operate in one or more aspects of the functionality of the computing entity. In particular, the processing component, transmitting component, and / or receiving component can be configured to communicate with one or more processing elements 905, memory 910, volatile memory 915, and may include a communication interface 920 (e.g., to facilitate communication between devices).

[0079] Figure 10 An example schematic diagram of a user device according to a disclosed example embodiment is shown. Figure 10 A user device 1010 is provided that can be used in conjunction with embodiments of this disclosure (in conjunction with...). Figure 10 (Illustrative representation shown). Generally, the terms apparatus, system, computing entity, entity, and / or similar terms used interchangeably herein can refer to, for example, one or more computers, computing entities, desktop computers, mobile phones, tablet computers, phablets, laptops, laptops, distributed systems, game consoles (e.g., Xbox, PlayStation, Wii), watches, glasses, key cards, radio frequency identification (RFID) tags, headphones, scanners, cameras, wristbands, self-service terminals, input terminals, servers or server networks, blade servers, gateways, switches, processing devices, processing entities, set-top boxes, repeaters, routers, network access points, base stations, etc., and / or any combination of apparatus or entities suitable for performing the functions, operations, and / or processing described herein. User apparatus 1010 may be operated by the parties. Figure 10 As shown, user equipment 1010 may include antenna 1012, transmitter 1004 (e.g., radio), receiver 1006 (e.g., radio), and processing elements (or processing devices) 1008 (e.g., CPLD, FPGA, microprocessor, multi-core processor, coprocessor entity, ASIP, microcontroller, and / or controller) that provide signals to and receive signals from transmitter 1004 and receiver 1006, respectively.

[0080] The signals provided to and received from transmitter 1004 and receiver 1006 respectively may include signaling information according to the air interface standard of the applicable wireless system. In this respect, user equipment 1010 may be able to operate with one or more air interface standards, communication protocols, modulation types, and access types. More specifically, user equipment 1010 may operate according to multiple wireless communication standards and protocols (such as those mentioned above regarding...). Figure 9 The user equipment 1010 can operate according to any of the wireless communication standards and protocols described in the management computing entity 900. In one specific embodiment, the user equipment 1010 can operate according to a plurality of wireless communication standards and protocols, such as the disclosed IoT DOCSIS protocol, UMTS, CDMA2000, 1xRTT, WCDMA, TD-SCDMA, LTE, E-UTRAN, EVDO, HSPA, HSDPA, 5G, Wi-Fi, Wi-Fi Direct, WiMAX, UWB, IR, NFC, Bluetooth, USB, etc. Similarly, the user equipment 1010 can operate via the network interface 1020 according to a plurality of wired communication standards and protocols, such as the wired communication standards and protocols described above with respect to the management computing entity 900.

[0081] Through these communication standards and protocols, user device 1010 can communicate with various other entities using concepts such as Unstructured Supplemental Service Data (USSD), Short Message Service (SMS), Multimedia Messaging Service (MMS), Dual-Tone Multi-Frequency Signaling (DTMF), and / or Subscriber Identity Component Dialer (SIM Dialer). User device 1010 can also download changes, add-ons, and updates to, for example, the firmware, software (e.g., including executable instructions, applications, program components), and operating system of user device 1010.

[0082] According to one embodiment, user device 1010 may include location determination aspects, devices, components, functions, and / or similar terms used interchangeably herein. Location determination aspects may be used to inform one or more of models used by an administrative computing entity and models and / or machine learning techniques described herein. For example, user device 1010 may include outdoor positioning aspects, such as location components adapted to acquire, for example, latitude, longitude, altitude, geocoding, route, direction, heading, speed, world time (UTC), date, and / or various other information / data. In one embodiment, the location component may acquire data, sometimes referred to as ephemeris data, by identifying multiple satellites within the field of view and the relative positions of these satellites. Satellites may be a variety of different satellites, including Low Earth Orbit (LEO) satellite systems, Department of Defense (DOD) satellite systems, the European Union Galileo positioning system, the Chinese Compass Navigation System, the Indian Regional Navigation Satellite System, etc. Optionally, location information may be determined by triangulation of the location of user device 1010 in conjunction with various other systems, including cell towers, Wi-Fi access points, etc. Similarly, user device 1010 may include indoor positioning aspects, such as location components adapted to acquire, for example, latitude, longitude, altitude, geocoding, route, direction, heading, speed, time, date, and / or various other information / data. Some indoor systems may use a variety of location or positioning technologies, including RFID tags, indoor beacons or transmitters, Wi-Fi access points, cellular towers, nearby computing devices (e.g., smartphones, laptops), etc. For example, such technologies may include iBeacons, gimbal proximity beacons, Bluetooth Low Energy (BLE) transmitters, NFC transmitters, etc. These indoor positioning aspects can be used in various setups to pinpoint the location of a person or object within inches or centimeters.

[0083] User device 1010 may also include a user interface (which may include a display 1016 coupled to processing element 1008) and / or a user input interface (coupled to processing element 1008). For example, as described herein, a user interface may be a user application, browser, user interface, and / or similar terms used interchangeably herein, that executes on and / or is accessible via user device 1010 to interact with information from management computing entity 900 and / or result in the display of information from management computing entity 900. The user input interface may include any of a plurality of means or interfaces that allow user device 1010 to receive data (such as a keypad 1018 (hard or soft), a touch display, a voice / voice or motion interface, or other input means). In embodiments including keypad 1018, keypad 1018 may include (or result in the display of) conventional numbers (0-9) and related keys (#, *) as well as other keys for operating user device 1010, and may include a full set of letter keys or a set of keys that can be activated to provide a full set of alphanumeric keys. In addition to providing input, the user input interface can be used to activate or deactivate certain functions, such as screen savers and / or sleep modes.

[0084] User device 1010 may also include volatile storage devices or memories 1022 and / or non-volatile storage devices or memories 1024, which may be embedded and / or removable. For example, non-volatile storage may be ROM, PROM, EPROM, EEPROM, flash memory, MMC, SD memory card, Memory Stick, CBRAM, PRAM, FeRAM, NVRAM, MRAM, RRAM, SONOS, FJG RAM, millipede memory, racetrack memory, etc. Volatile memory may be RAM, DRAM, SRAM, FPM DRAM, EDO DRAM, SDRAM, DDR SDRAM, DDR2 SDRAM, DDR3 SDRAM, RDRAM, TTRAM, T-RAM, Z-RAM, RIMM, DIMM, SIMM, VRAM, cache memory, register memory, etc. Volatile and non-volatile storage devices or memories can store databases, database instances, database management systems, data, applications, programs, program components, scripts, source code, object code, bytecode, compiled code, interpreted code, machine code, executable instructions, etc., to implement the functions of user device 1010. As indicated, this may include user applications residing on the entity or accessible through a browser or other user interfaces used to communicate with management computing entity 900 and / or various other computing entities.

[0085] In another embodiment, user device 1010 may include one or more components or functions that are the same as or similar to those of the management computing entity 900 as described in more detail above. As will be appreciated, these architectures and descriptions are provided for illustrative purposes only and are not limited to the various embodiments.

[0086] Some embodiments may be implemented in one or a combination of hardware, firmware, and software. Other embodiments may also be implemented as instructions stored on a computer-readable storage device, which may be read and executed by at least one processor to perform the operations described herein. A computer-readable storage device may include any non-transitory memory mechanism for storing information in a machine-readable (e.g., computer) form. For example, a computer-readable storage device may include read-only memory (ROM), random access memory (RAM), disk storage media, optical storage media, flash memory devices, and other storage devices and media.

[0087] The term “exemplary” is used herein to mean “serving as an example, instance, or illustration.” Any embodiment described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other embodiments. The terms “computing device,” “user device,” “communication station,” “station,” “handheld device,” “mobile device,” “wireless device,” and “user device” (UE) as used herein refer to wireless communication devices such as cellular phones, smartphones, tablets, netbooks, wireless terminals, laptops, femtocells, high data rate (HDR) subscriber stations, access points, printers, point-of-sale devices, access terminals, or other personal communication system (PCS) devices. Such devices may be mobile or stationary.

[0088] As used herein, the term "communication" is intended to include sending, or receiving, or both. This may be particularly useful in the claims when describing an organization of data sent by one device and received by another device, but only the functionality of one of these devices is required to infringe the claim. Similarly, a bidirectional data exchange between two devices (where both devices send and receive during the exchange) can be described as "communication" when only the functionality of one of these devices is claimed. The term "communication" as used herein with respect to wireless communication signals includes sending and / or receiving wireless communication signals. For example, a wireless communication unit capable of communicating wireless communication signals may include a wireless transmitter that sends wireless communication signals to at least one other wireless communication unit, and / or a wireless communication receiver that receives wireless communication signals from at least one other wireless communication unit.

[0089] Some embodiments can be used with a variety of devices and systems, such as personal computers (PCs), desktop computers, mobile computers, laptop computers, notebook computers, tablet computers, server computers, handheld computers, handheld devices, personal digital assistant (PDA) devices, handheld PDA devices, in-vehicle devices, non-in-vehicle devices, hybrid devices, vehicle devices, non-vehicle devices, mobile or portable devices, consumer devices, non-mobile or non-portable devices, wireless communication stations, wireless communication devices, wireless access points (APs), wired or wireless routers, wired or wireless modems, video devices, audio devices, audio-video (A / V) devices, wired or wireless networks, wireless local area networks, wireless video local area networks (WVANs), local area networks (LANs), wireless LANs (WLANs), personal area networks (PANs), wireless PANs (WPANs), etc.

[0090] Some embodiments can be used in conjunction with one-way and / or two-way radio communication systems, cellular wireless telephone communication systems, mobile phones, cell phones, wireless phones, personal communication system (PCS) devices, PDA devices including wireless communication devices, mobile or portable global positioning system (GPS) devices, devices including GPS receivers or transceivers or chips, devices including RFID elements or chips, multiple-input multiple-output (MIMO) transceivers or devices, single-input multiple-output (SIMO) transceivers or devices, multiple-input single-output (MISO) transceivers or devices, devices having one or more internal antennas and / or external antennas, digital video broadcasting (DVB) devices or systems, multi-standard radio devices or systems, wired or wireless handheld devices (e.g., smartphones), wireless application protocol (WAP) devices, etc.

[0091] Some embodiments can be used with one or more wireless communication protocols, such as radio frequency (RF), infrared (IR), frequency division multiplexing (FDM), orthogonal FDM (OFDM), time division multiplexing (TDM), time division multiple access (TDMA), extended TDMA (E-TDMA), general packet radio service (GPRS), extended GPRS, code division multiple access (CDMA), wideband CDMA (WCDMA), CDMA 2000, single-carrier CDMA, multi-carrier CDMA, multi-carrier modulation (MDM), discrete multi-tone (DMT), and Bluetooth. TM Global Positioning System (GPS), Wi-Fi, Wi-Max, ZigBee TMThis can be used in combination with one or more types of wireless communication signals and / or systems, such as Ultra Wideband (UWB), Global System for Mobile Communications (GSM), 2G, 2.5G, 3G, 3.5G, 4G, 5G, 3GPP, LTE, LTE-Advanced, and EDGE with Enhanced Data Rates. Other embodiments can be used in a variety of other devices, systems, and / or networks.

[0092] Although an example processing system has been described above, embodiments of the subject matter and functional operation described herein may be implemented in other types of digital electronic circuits, or in computer software, firmware, or hardware that includes the structures disclosed herein and their structural equivalents, or in a combination of one or more of them.

[0093] The embodiments of the subject matter and operations described herein can be implemented in digital electronic circuits, or in computer software, firmware, or hardware including the structures disclosed herein and their structural equivalents, or in a combination of one or more of these. Embodiments of the subject matter described herein can be implemented as one or more computer programs, i.e., one or more components of computer program instructions encoded on a computer storage medium for execution by or control of the operation of an information / data processing device. Optionally or additionally, the program instructions can be encoded on artificially generated propagation signals (e.g., machine-generated electrical, optical, or electromagnetic signals) generated to encode information / data for transmission to a suitable receiver device for execution by the information / data processing device. The computer storage medium can be a computer-readable storage device, a computer-readable storage substrate, a random or serial access memory array or device, or a combination of one or more of these, or be included in a computer-readable storage device, a computer-readable storage substrate, a random or serial access memory array or device, or a combination of one or more of these. Furthermore, although the computer storage medium is not a propagation signal, it can be a source or destination of computer program instructions encoded in artificially generated propagation signals. Computer storage media may also be one or more separate physical components or media (e.g., multiple CDs, disks or other storage devices), or may be included in one or more separate physical components or media (e.g., multiple CDs, disks or other storage devices).

[0094] The operations described herein can be implemented as operations performed by an information / data processing device on information / data stored on one or more computer-readable storage devices or received from other sources.

[0095] The term "data processing device" includes all types of devices, apparatuses, and machines for processing data, including, for example, programmable processors, computers, systems-on-a-chip, or a combination of the foregoing. The device may include special-purpose logic circuitry, such as FPGAs (Field-Programmable Gate Arrays) or ASICs (Application-Specific Integrated Circuits). In addition to hardware, the device may also include code that creates an execution environment for the computer program in question, such as code constituting processor firmware, protocol stacks, database management systems, operating systems, cross-platform runtime environments, virtual machines, or combinations thereof. The device and execution environment can implement a variety of different computing model infrastructures, such as web services, distributed computing, and grid computing infrastructures.

[0096] Computer programs (also known as programs, software, software applications, scripts, or code) can be written in any form of programming language, including compiled or interpreted languages, declarative or procedural languages, and can be deployed in any form, including as standalone programs or as components, subroutines, objects, or other units suitable for use in a computing environment. A computer program may, but does not necessarily, correspond to a file in a file system. A program may be stored as part of a file containing other programs or information / data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple co-located files (e.g., multiple parts of a file storing one or more components, subroutines, or code). A computer program can be deployed to execute on a single computer or on multiple computers located at a single site or distributed across multiple sites and interconnected by a communication network.

[0097] The processing and logical flow described herein can be executed by one or more programmable processors that execute one or more computer programs to perform actions by manipulating input information / data and generating output. Processors suitable for executing computer programs include, for example, both general-purpose microprocessors and special-purpose microprocessors, as well as any type of digital computer and one or more processors. Typically, the processor receives instructions and information / data from read-only memory or random access memory, or both. The basic elements of a computer are a processor for performing actions according to instructions and one or more memory devices for storing instructions and data. Typically, a computer will also include one or more mass storage devices (e.g., magnetic disks, magneto-optical disks, or optical disks) for storing data, or operatively coupled to receive information / data from or transfer information / data to one or more mass storage devices, or both. However, a computer does not need to have such devices. Suitable devices for storing computer program instructions and information / data include all forms of non-volatile memory, media, and memory devices, including, for example, semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks, such as internal hard disks or removable hard disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. Processors and memory may be supplemented by or incorporated into dedicated logic circuitry.

[0098] To provide interaction with the user, embodiments of the subject matter described herein can be implemented on a computer having a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor for displaying information / data to the user) and a keyboard and pointing device (e.g., a mouse or trackball) through which the user can provide input to the computer. Other types of devices can also be used to provide interaction with the user; for example, feedback provided to the user can be any form of sensory feedback, such as visual, auditory, or tactile feedback; and input from the user can be received in any form, including sound, speech, or tactile input. Additionally, the computer can interact with the user by sending documents to and receiving documents from the device used by the user; for example, by sending web pages to a web browser on the user's client device in response to a request received from a web browser.

[0099] Embodiments of the subject matter described herein can be implemented in a computing system that includes, for example, a backend component as an information / data server, or includes middleware components (e.g., an application server), or includes frontend components, such as a client computer with a graphical user interface or a web browser through which a user can interact with embodiments of the subject matter described herein, or any combination of one or more such backend, middleware, or frontend components. The components of the system can be interconnected via digital information / data communication (e.g., a communication network) of any form or medium. Examples of communication networks include local area networks (“LANs”) and wide area networks (“WANs”), interconnected networks (e.g., the Internet) and peer-to-peer networks (e.g., ad hoc peer-to-peer networks).

[0100] A computing system may include clients and servers. Clients and servers are typically geographically separated and usually interact via a communication network. The client-server relationship arises from computer programs running on respective computers and the existence of a client-server relationship between them. In some embodiments, the server sends information / data (e.g., HTML pages) to the client device (e.g., for the purpose of displaying information / data to a user interacting with the client device and receiving user input from the user interacting with the client device). Information / data generated at the client device (e.g., the result of user interaction) may be received at the server from the client device.

[0101] While this specification contains numerous details of specific embodiments, these details should not be construed as limiting any embodiment or the scope that may be claimed, but rather as descriptions of features specific to particular embodiments. Certain features described herein in the context of individual embodiments may also be implemented in combination in a single embodiment. Conversely, various features described in the context of a single embodiment may also be implemented individually or in any suitable sub-combination in multiple embodiments. Furthermore, although features may be described above as functioning in a particular combination and even initially claimed in this way, in some cases, one or more features from the claimed combination may be removed from the combination, and the claimed combination may be for sub-combinations or variations thereof.

[0102] Similarly, although the operations are depicted in a specific order in the accompanying drawings, this should not be construed as requiring these operations to be performed in the specific order shown or sequentially, or to perform all of the shown operations, in order to achieve the desired result. In some cases, multitasking and parallel processing may be advantageous. Furthermore, the separation of the various system components in the above embodiments should not be construed as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.

[0103] Therefore, specific embodiments of the subject matter have been described. Other embodiments are within the scope of the appended claims. In some cases, the actions described in the claims can be performed in a different order and still achieve the desired result. Furthermore, the processes depicted in the drawings do not necessarily require the specific order or sequence shown to achieve the desired result. In some embodiments, multitasking and parallel processing may be advantageous.

[0104] Benefiting from the teachings presented in the foregoing description and the associated accompanying drawings, those skilled in the art will conceive of numerous modifications and other embodiments of the disclosure set forth herein. Therefore, it should be understood that the embodiments are not limited to the specific embodiments disclosed, and that modifications and other embodiments are intended to be included within the scope of the appended claims. Although specific terminology is used herein, it is used only in a general and descriptive sense and not for limiting purposes.

Claims

1. A system for storage, comprising: A chassis, comprising multiple storage devices for storing data; The management processor determines routing information for routing in-band data to the storage devices among the plurality of storage devices; as well as The management device performs communication management, wherein the management device performs the following operations: Based on routing information, in-band data is sent to the storage device via the first port; and Out-of-band data is sent to the storage device via the second port. In this process, in-band data is sent to the Management Component Transport Protocol (MCTP) layer on the Transport Control Protocol (TCP) of the storage device, and out-of-band data is sent directly to the MCTP binding layer of the storage device.

2. The system according to claim 1, wherein, The management processor includes an Ethernet flash cluster processor, and the management device includes at least one of a substrate management controller, a field-programmable gate array, an application-specific integrated circuit, and a processor.

3. The system according to claim 1, wherein, The system also includes a switch, and the management processor routes in-band data from the management device to a second storage device among the plurality of storage devices via the switch.

4. The system according to claim 3, wherein, The switch receives data in the second band from the host and sends the data in the second band to the storage device.

5. The system according to claim 4, wherein, The host includes a non-volatile memory fast NVMe-oF initiator on the network, and the storage device includes an NVMe-oF target.

6. The system according to claim 1, wherein, The storage device includes a third port for receiving in-band data and a fourth port for receiving out-of-band data.

7. The system according to claim 6, wherein, The storage device includes an Ethernet solid-state drive, and the third port includes an Ethernet port, and the fourth port includes an inter-integrated circuit I2C port or a system management bus (SMBus) port.

8. The system according to claim 1, wherein, The management device or management processor applies header information to at least one data packet of data associated with in-band data.

9. The system according to claim 8, wherein, The header information includes information based on the Management Component Transport Protocol (MCTP) over Transmission Control Protocol TCP, and the at least one data packet is sent to the management processor via TCP over Ethernet protocol.

10. The system according to claim 1, wherein, Out-of-band data is received from the management host and sent to the storage device via the inter-integrated circuit or system management bus I2C / SMBus.

11. The system according to any one of claims 1 to 10, wherein, The in-band data includes firmware updates or security certificates.

12. An apparatus for performing communication management, comprising: At least one memory device storing computer-executable instructions; as well as At least one processor is configured to access the at least one memory device, wherein the at least one processor is configured to execute computer-executable instructions to perform the following operations: Receive in-band data from the management device via the first port; Generate routing information for routing in-band data to at least one storage device in the chassis; Apply routing information to the header of data packets associated with in-band data; and Based on routing information, in-band data is sent to the storage device in the at least one storage device via the second port. Out-of-band data is sent from the management device to the storage device, and In this process, in-band data is sent to the Management Component Transport Protocol (MCTP) layer on the Transport Control Protocol (TCP) of the storage device, and out-of-band data is sent directly to the MCTP binding layer of the storage device.

13. The apparatus according to claim 12, wherein, The device includes an Ethernet flash cluster processor, and the management device includes at least one of a substrate management controller, a field-programmable gate array, an application-specific integrated circuit, and a processor.

14. The apparatus according to claim 12, wherein, The header includes information based on the Management Component Transport Protocol (MCTP) over Transmission Control Protocol TCP, and the data packet is sent via TCP over Ethernet Protocol (Internet Protocol IP).

15. The apparatus according to claim 12, wherein, The device transmits in-band data to a second storage device in the at least one storage device via a switch through a second port.

16. The apparatus according to any one of claims 12 to 15, wherein, In-band data includes firmware updates.

17. A method for performing communication management, the method comprising: Receive in-band data from the management device; Generate routing information for routing in-band data to at least one storage device; The routing information is applied to the header of the data packet that is associated with the in-band data; as well as Based on routing information, in-band data is sent to the storage device in the at least one storage device. Out-of-band data is sent from the management device to the storage device, and In this process, in-band data is sent to the Management Component Transport Protocol (MCTP) layer on the Transport Control Protocol (TCP) of the storage device, and out-of-band data is sent directly to the MCTP binding layer of the storage device.

18. The method according to claim 17, wherein, The header includes information based on the Management Component Transport Protocol (MCTP) over Transmission Control Protocol TCP, and the data packet is sent via TCP over Ethernet Protocol (Internet Protocol IP).

19. The method of claim 17, further comprising: In-band data is sent to a second storage device in the at least one storage device via a switch.

20. The method according to any one of claims 17 to 19, wherein, In-band data includes firmware updates.

Citation Information

Patent Citations

  • Management of paths of switches of distributed computing systems

    US9143435B1