CN117440263A - Electronic device supporting out-of-band communication and method of operating the same - Google Patents

Electronic device supporting out-of-band communication and method of operating the same Download PDF

Info

Publication number
CN117440263A
CN117440263A CN202310887241.1A CN202310887241A CN117440263A CN 117440263 A CN117440263 A CN 117440263A CN 202310887241 A CN202310887241 A CN 202310887241A CN 117440263 A CN117440263 A CN 117440263A
Authority
CN
China
Prior art keywords
request
data
band communication
microcontroller unit
response
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310887241.1A
Other languages
Chinese (zh)
Inventor
李炅根
金范俊
李承翰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from KR1020230000283A external-priority patent/KR20240013017A/en
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN117440263A publication Critical patent/CN117440263A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/26Special purpose or proprietary protocols or architectures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q9/00Arrangements in telecontrol or telemetry systems for selectively calling a substation from a main station, in which substation desired apparatus is selected for applying a control signal thereto or for obtaining measured values therefrom

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Bioethics (AREA)
  • Arrangements For Transmission Of Measured Signals (AREA)

Abstract

An electronic device including a host device and a storage device and an operating method thereof are disclosed. The host device includes a processor and a Baseboard Management Controller (BMC), and the storage device includes a storage controller and a microcontroller unit (MCU), the BMC and the MCU supporting out-of-band communications. The operating method of the electronic device comprises the following steps: providing, by the BMC, a first request to the MCU via out-of-band communication, the first request including information about the environmental data; and providing, by the MCU, a first response corresponding to the first request to the BMC via the out-of-band communication.

Description

Electronic device supporting out-of-band communication and method of operating the same
Cross Reference to Related Applications
The present application claims priority from korean patent application No.10-2022-0090564, which was filed on the korean intellectual property office at 7 months 21 of 2022, and from korean patent application No.10-2023-0000283, which was filed on the korean intellectual property office at 1 month 2 of 2023, the disclosures of which are incorporated herein by reference in their entireties.
Technical Field
One or more embodiments of the present disclosure relate to electronic devices, and more particularly, to an electronic device supporting out-of-band communications and a method of operating an electronic device supporting out-of-band communications.
Background
The memory device stores data in response to the write request and outputs data stored in the memory device in response to the read request. For example, memory devices may be classified as volatile memory devices or non-volatile memory devices. In volatile memory devices, stored data is lost when power is interrupted, such as Dynamic Random Access Memory (DRAM) devices or Static RAM (SRAM) devices. In non-volatile memory devices, stored data is retained even when power is interrupted, e.g. flash memory devices, phase change RAM (PRAM), magnetic RAM
(MRAM) or Resistive RAM (RRAM).
Nonvolatile memory devices may also be referred to as storage devices that store large amounts of data, and the storage devices may communicate with host devices. The method of the operating system of the host device to communicate with the storage device may be referred to as an in-band management method, and the method of the Baseboard Management Controller (BMC) of the host device to communicate with the storage device without using the operating system may be referred to as an out-band management method.
Disclosure of Invention
Embodiments of the present disclosure provide an electronic device supporting out-of-band communications and a method of operating the same.
According to an aspect of the present disclosure, there is provided a method of operating an electronic device including a host device having a processor and a Baseboard Management Controller (BMC) and a storage device having a storage controller and a Micro Controller Unit (MCU), the method including: providing, by the BMC of the host device, a first request to the MCU of the storage device via out-of-band communication, the first request including a first opcode field indicating a request for environmental data; and providing, by the MCU, to the BMC via the out-of-band communication, a first response including the environmental data corresponding to the first request, wherein the processor of the host device and the storage controller of the storage device communicate with each other via in-band communication other than the out-of-band communication, and wherein the BMC and the MCU communicate directly with each other via the out-of-band communication.
According to another aspect of the present disclosure, there is provided a method of operating an electronic device, the electronic device comprising: a host device including a processor and a Baseboard Management Controller (BMC); a first memory device including a first memory controller and a first microcontroller unit (MCU); and a second storage device including a second storage controller and a second MCU, the method comprising:
providing, by the BMC, a first request to the first MCU via out-of-band communication, the first request including information corresponding to the first environment data; providing, by the first MCU, a first response corresponding to the first request to the BMC via out-of-band communication; providing, by the BMC, a second request to a second MCU via out-of-band communication, the second request including information corresponding to second environment data; and providing, by the second MCU, a second response to the BMC corresponding to the second request via an out-of-band communication, wherein the processor and the memory controller communicate with each other via an in-band communication different from the out-of-band communication.
According to another aspect of the present disclosure, there is provided an electronic device including: a host device including a processor and a Baseboard Management Controller (BMC); and a storage device including a storage controller and a microcontroller unit (MCU), wherein the BMC is configured to provide a request to the MCU via out-of-band communication including information corresponding to the environmental data, wherein the MCU is configured to provide a response to the BMC via out-of-band communication corresponding to the request, and wherein the processor and the storage controller communicate with each other via in-band communication other than out-of-band communication.
Drawings
The above and other objects and features of the present disclosure will become apparent by describing in detail embodiments thereof with reference to the accompanying drawings.
Fig. 1 is a block diagram of an electronic device according to an example embodiment of the present disclosure.
Fig. 2 is a block diagram of a related art electronic device.
Fig. 3 is a block diagram of an electronic device according to an example embodiment of the present disclosure.
Fig. 4 is a flowchart describing an operation method of an electronic device according to an example embodiment of the present disclosure.
Fig. 5 is a diagram depicting a protocol for out-of-band communication according to an example embodiment of the present disclosure.
Fig. 6A to 6E are diagrams describing fields of an out-of-band communication protocol according to an example embodiment of the present disclosure.
Fig. 7 is a flowchart describing an operation method of an electronic device according to an example embodiment of the present disclosure.
Fig. 8 is a flowchart describing an operation method of an electronic device according to an example embodiment of the present disclosure.
Fig. 9 is a flowchart describing an operation method of an electronic device according to an example embodiment of the present disclosure.
Fig. 10 is a diagram describing an out-of-band communication protocol according to an example embodiment of the present disclosure.
Fig. 11 is a diagram describing fields of an out-of-band communication protocol according to an example embodiment of the present disclosure.
Fig. 12 is a block diagram of an electronic device according to an example embodiment of the present disclosure.
Detailed Description
Hereinafter, embodiments of the present disclosure will be described in detail and clearly so that those skilled in the art can easily implement the embodiments of the present disclosure.
Fig. 1 is a block diagram of an electronic device according to an example embodiment of the present disclosure. Referring to fig. 1, an electronic device 100 may include a host device 110 and a storage device 120. The electronic device 100 may refer to a device configured to manage a large amount of user data UD. For example, the electronic device 100 may include a storage system, a server system, or a database server. However, the present disclosure is not limited thereto, and thus may include other devices. The user data UD may include various information to be provided to the user including, but not limited to, images, video, text, and voice.
The host device 110 may control the overall operation of the electronic device 100. For example, the host device 110 may store data in the storage device 120, may read the data stored in the storage device 120, or may manage environmental data of the storage device 120 in order to maintain reliability of the data stored in the storage device 120.
The environmental data may include physical environmental information such as voltage, current, temperature, and humidity. The physical environment information may also be referred to as "sensor data SD". The context data may include health information such as program/erase (P/E) cycle information, program count information, erase count information, read count information, error bit count information, and threshold voltage distribution information. The health information may be used to manage the reliability of the user data UD. The health information may also be referred to as "telemetry data TD".
The host device 110 may include a processor 111 and a Baseboard Management Controller (BMC) 112. The processor 111 and the BMC 112 may communicate with each other. For example, the processor 111 and the BMC 112 may communicate with each other through an interface (IF 1).
The processor 111 may store data in the storage 120 or may read data stored in the storage 120. For example, the processor 111 may be implemented using a Central Processing Unit (CPU). The processor 111 may execute an Operating System (OS), and the operating system may support in-band communication with the storage 120.
In-band communication may refer to communication between the processor 111 of the host device 110 and the storage controller 121 of the storage device 120. For example, an operating system may be used for in-band communication between processor 111 and memory controller 121.
The BMC 112 may manage the environment data of the storage device 120. For example, the BMC 112 may request a microcontroller unit (MCU) 123 to perform a sensing operation or a monitoring operation. However, the request is not limited to a sensing operation or a monitoring operation, and thus, according to another example embodiment, the BMC 112 may request the MCU 123 to perform other operations. According to an example embodiment, the BMC 112 may receive the environmental data from the MCU 123 and may provide the environmental data to the processor 111. An operating system executed by the processor 111 may manage the storage 120 based on the environmental data obtained by the BMC 112.
The BMC 112 may support out-of-band communications with the storage device 120. Out-of-band communication may refer to communication between the BMC 112 of the host device 110 and the MCU 123 of the storage device 120, and the operating system may not be used for out-of-band communication. According to an example embodiment, the interface for out-of-band communication may be provided independently of the interface for in-band communication.
In an example embodiment, the out-of-band communication may support various protocols. For example, the out-of-band communication may support protocols conforming to the Open Computer Project (OCP) standard. The out-of-band communication may support various protocols such as a Platform Level Data Model (PLDM) standard, a network controller sideband interface (NC-SI) standard, a red fish (Redfish) standard, a high speed nonvolatile memory management interface (NVMe_MI) standard, and a Management Component Transport Protocol (MCTP) standard.
The storage device 120 may include a storage controller 121, a non-volatile memory device 122, an MCU 123, and a sensor device 124.
The memory controller 121 may control the overall operation of the memory device 120. According to an example embodiment, the storage controller 121 may control the operation of the storage device 120 under the control of the processor 111. For example, under the control of the processor 111, the memory controller 121 may store user data UD in the nonvolatile memory device 122, may read the user data UD stored in the nonvolatile memory device 122, or may generate telemetry data TD by performing a monitoring operation on the nonvolatile memory device 122. The monitoring operation may refer to a health check operation performed to check a degradation level of the threshold voltage distribution of the nonvolatile memory device 122. The storage controller 121 may also be referred to as a "master controller".
The memory controller 121 may be in communication with the processor 111, the non-volatile memory device 122, and the MCU 123. The memory controller 121 may support in-band communication with the processor 111. The memory controller 121 may perform a monitor operation on the nonvolatile memory device 122. The memory controller 121 may provide telemetry data TD to the MCU 123. According to example embodiments, the memory controller 121 and the MCU 123 may communicate with each other through an interface (IF 2).
In an example embodiment, the telemetry data TD may include at least one of P/E cycle information, program count information, erase count information, read count information, error bit count information, or threshold voltage distribution information.
The non-volatile memory device 122 may store user data UD. For example, the nonvolatile memory device 122 may store the user data UD under the control of the storage controller 121, or may provide the user data UD to the storage controller 121. The threshold voltage distribution of the memory cells of the non-volatile memory device 122 may correspond to the user data UD. The threshold voltage distribution of a memory cell may change due to various factors such as retention, read disturb, and Hot Carrier Injection (HCI). The memory controller 121 may manage the degradation level of the nonvolatile memory device 122 by obtaining telemetry data TD through a monitoring operation for the nonvolatile memory device 122.
In an example embodiment, the nonvolatile memory device 122 may be a NAND flash memory device, but the disclosure is not limited thereto. For example, the nonvolatile memory device 122 may be one of various memory devices that retain data stored therein even if power is cut off, such as a phase change random access memory (PRAM), a Magnetic Random Access Memory (MRAM), a Resistive Random Access Memory (RRAM), and a Ferroelectric Random Access Memory (FRAM).
The MCU 123 can monitor the status of the storage device 120 and can manage events occurring in the storage device 120. Events may include voltage changes, current changes, humidity changes, temperature changes, power down, etc. The MCU 123 may receive a request associated with the environmental data from the BMC 112 and may provide a response to the BMC 112 corresponding to the request of the BMC 112.
The MCU 123 may communicate with the BMC 112, the memory controller 121, and the sensor device 124. The MCU 123 may support out-of-band communication with the BMC 112. MCU 123 can receive telemetry data TD from memory controller 121. The MCU 123 may receive sensor data SD from the sensor device 124.
MCU 123 can include persistent storage. For example, persistent memory may be implemented using electrically erasable programmable read-only memory (EEPROM). The MCU 123 may store at least one of the telemetry data TD and the sensor data SD as log data LD in the persistent memory. The log data LD may include at least one of telemetry data (hereinafter referred to as "previous telemetry data") obtained at a previous time and sensor data (hereinafter referred to as "previous sensor data") obtained at a previous time. For example, the log data LD may include at least one of telemetry data generated by a previous monitoring operation of the memory controller 121 and sensor data generated by a previous sensing operation of the sensor device 124. However, the present disclosure is not limited thereto, and thus, according to example embodiments, the log data LD may include a history of previously collected telemetry data and/or previously collected sensor data. For example, the previously collected telemetry data may include telemetry data collected at one or more previous times, and the previously collected sensor data may include sensor data collected at one or more previous times.
The MCU 123 may provide the BMC 112 with environmental data upon request by the BMC 112. The environmental data may include sensor data SD, log data LD, or telemetry data TD. The MCU 123 may manage the secure operation of the sensor data SD, the log data LD, and the telemetry data TD.
The sensor device 124 may sense the physical environment of the storage device 120 to generate sensor data SD. The sensor device 124 may be in communication with the MCU 123. The sensor device 124 may provide sensor data SD to the MCU 123.
In an example embodiment, the sensor data SD may include at least one of voltage sensor data, current sensor data, temperature sensor data, and humidity sensor data.
As described above, according to example embodiments of the present disclosure, the electronic device 100 may include the host device 110 and the storage device 120. Host device 110 and storage device 120 may support in-band communication and out-of-band communication. The BMC 112 of the host device 110 and the MCU 123 of the storage device 120 can transfer various information in a bi-directional manner by using out-of-band communication.
Fig. 2 is a block diagram of a related art electronic device. For a better understanding of the present disclosure, a related art electronic device ED will be described with reference to fig. 2, but the related art electronic device ED may include components not disclosed in the citation of the information disclosure statement, and is not intended to limit the scope and spirit of the invention.
The related art electronic device ED may include a host device and a storage device. The host device may include a processor and a BMC. The storage device may include a memory controller, a non-volatile memory device, an MCU, a sensor device, and persistent memory.
The processor of the host device and the storage controller of the storage device may support in-band communication. Through in-band communication, the processor may provide a request to the memory controller that includes a command (e.g., a read command, a write command, or an erase command) that indicates an operation to be performed in the memory device. Through in-band communication, the memory controller may provide the processor with user data UD received from the non-volatile memory device and environment data received from the MCU. The environmental data may include at least one of sensor data SD obtained through a sensing operation of the sensor device and telemetry data TD obtained through a monitoring operation of the memory controller.
The BMC of the host device and the persistent memory of the storage device may support limited communication. Through limited communication, the persistent memory may provide the BMC with information stored in the persistent memory (e.g., when the persistent memory includes a temperature sensor, the stored information may be temperature information). Limited communication may refer to one-way communication from persistent memory to the BMC.
In the related art electronic device ED, the BMC of the host device and the MCU of the storage device may not perform direct communication. The BMC may provide a request to the MCU through the processor and the memory controller indicating management of the environmental data. The MCU may provide a response corresponding to the request of the BMC through the memory controller and the processor.
As described above, the related art electronic device ED may not support the out-of-band communication between the BMC and the MCU, and thus, the BMC and the MCU may indirectly communicate with each other through the in-band communication between the processor and the memory controller. In detail, in the related art electronic device ED, as the BMC and the MCU consume bandwidth of in-band communication to manage environment data, an input/output (I/O) speed of the user data UD may be reduced. Further, since direct communication between the BMC and the MCU may not be supported, and since the BMC may not support bi-directional communication with the storage, the number of information types the BMC receives from the persistent memory may be less than the number of information types managed by the MCU. In-band communication and limited communication of the related art electronic device ED may not satisfy various requirements of the host device, the client, or the manufacturer.
Fig. 3 is a block diagram of an electronic device according to an example embodiment of the present disclosure. Referring to fig. 3, the electronic device 100 may include a host device 110 and a storage device 120. Host device 110 may include a processor 111, a BMC 112, and a power supply 113. The storage device 120 may include a storage controller 121, a non-volatile memory device 122, an MCU 123, and a sensor device 124.
The processor 111, the BMC 112, the memory controller 121, the nonvolatile memory device 122, the MCU 123, and the sensor device 124 may correspond to the processor 111, the BMC 112, the memory controller 121, the nonvolatile memory device 122, the MCU 123, and the sensor device 124 of FIG. 1, respectively.
The power supply 113 may include a main power source and an auxiliary power source. The main power supply may provide the first power supply voltage VDD1 to the memory device 120. The memory controller 121 of the memory device 120 may be driven by a first power supply voltage VDD1. The secondary power supply may provide the second power supply voltage VDD2 to the storage device 120. The MCU 123 of the memory device 120 may be driven by the second power supply voltage VDD2.
The second power supply voltage VDD2 may be a power supply voltage provided independently of the first power supply voltage VDD1. For example, the main power supply may provide the first power supply voltage VDD1 to the memory device 120 through the first supply line. The magnitude of the first power voltage VDD1 may be about 5V or about 3.3V. The auxiliary power supply may provide the second power supply voltage VDD2 to the memory device 120 through the second supply line. The magnitude of the second power supply voltage VDD2 may be about 3.3V.
The memory controller 121 may include a condition monitoring device. For example, the condition monitoring device may be implemented with a software device or firmware module that performs health check operations of the nonvolatile memory device 122. The condition monitoring device may generate telemetry data TD by performing monitoring operations of the non-volatile memory device 122. The condition monitoring device may provide telemetry data TD to the MCU 123. The MCU 123 may store the telemetry data TD as log data LD in persistent memory or may provide the telemetry data TD to the BMC 112 via out-of-band communication.
MCU 123 can include persistent storage and a security manager. The persistent memory may store log data LD. The log data LD may include at least one of previous telemetry data received from the memory controller 121 and previous sensor data received from the sensor device 124. The MCU 123 may receive a request for log data LD from the BMC 112 and may provide a response to the BMC 112 including the log data LD stored in persistent memory.
The security manager may manage security operations performed on the environmental data. For example, the security manager may be implemented using a software device or firmware module that performs security operations. The security manager may negotiate a security algorithm by out-of-band communication with the BMC 112. Depending on the negotiated security algorithm, the security manager may enable encryption of the environment data or may disable encryption of the environment data.
The sensor device 124 may include a voltage sensor, a current sensor, a temperature sensor, and a humidity sensor. The voltage sensor may sense a voltage provided to the nonvolatile memory device 122 and may generate the first sensor data SD1. The current sensor may sense a current provided to the non-volatile memory device 122 and may generate the second sensor data SD2. The temperature sensor may sense the temperature of the non-volatile memory device 122 and may generate third sensor data SD3. The humidity sensor may sense the humidity of the nonvolatile memory device 122 and may generate fourth sensor data SD4. The first, second, third and fourth sensor data SD1, SD2, SD3 and SD4 may correspond to the sensor data SD of fig. 1.
The sensor device 124 may provide at least one of the first, second, third, and fourth sensor data SD1, SD2, SD3, and SD4 as sensor data to the MCU 123. The MCU 123 may store the sensor data as log data LD in persistent memory or may provide the sensor data to the BMC 112 via out-of-band communication.
The processor 111 of the host device 110 and the storage controller 121 of the storage device 120 may support in-band communication. Through in-band communication, the processor 111 may provide a request including a command (e.g., a read command, a write command, or an erase command) indicating an operation to be performed in the storage 120 to the storage controller 121. Through in-band communication, the memory controller 121 may provide a response to the processor 111 corresponding to the request of the processor 111.
The BMC 112 of the host device 110 and the MCU 123 of the storage device 120 may support out-of-band communications. Through out-of-band communication, BMC 112 may provide MCU 123 with a request indicating management of environmental data. Through out-of-band communication, the MCU 123 may provide the BMC 112 with a response corresponding to the BMC 112 request.
In other words, the BMC 112 and the MCU 123 may communicate directly with each other through out-of-band communication. The BMC 112 and the MCU 123 may communicate directly with each other through out-of-band communication without consuming the bandwidth of in-band communication. The BMC 112 and the MCU 123 may perform bi-directional communication through out-of-band communication. The MCU 123 may provide various information regarding the environmental data to the BMC 112 through out-of-band communication. Out-of-band communications may provide a variety of flexible communication interface environments to clients or manufacturers.
Fig. 4 is a flowchart describing an operation method of an electronic device according to an example embodiment of the present disclosure. A method of operating an electronic device according to an example embodiment of the present disclosure will be described with reference to fig. 4.
The electronic device 100 may include a BMC 112 and an MCU 123. The BMC 112 and the MCU 123 may correspond to the BMC 112 and the MCU 123 of FIG. 1, respectively. In detail, the electronic device 100 may include a host device and a storage device. The host device may include a processor and a BMC 112. The memory device may include a memory controller and MCU 123. The processor and the memory controller may support in-band communication. The BMC 112 and MCU 123 may support out-of-band communications.
In operation S110, the BMC 112 of the electronic device 100 may provide a request indicating management of the environment data to the MCU 123 through out-of-band communication.
In example embodiments, the environmental data may include sensor data, log data, or telemetry data. For example, sensor data may be generated based on the sensing operation. Telemetry data may be generated based on the monitoring operation. The log data may include at least one of previous sensor data generated based on previous sensing operations and previous telemetry data generated based on previous monitoring operations.
In an example embodiment, the management of the environmental data may include a security operation on the environmental data. For example, the security operations may include negotiating a security algorithm to be used to transfer the environmental data, enabling encryption of the environmental data according to the security algorithm selected through negotiation of the security algorithm, and disabling encryption of the environmental data.
In operation S120, the MCU 123 of the electronic device 100 may provide the response corresponding to the request in operation S110 to the BMC 112 through out-of-band communication. For example, the response in operation S120 may indicate whether the enablement or disablement of the environment data, the selected security algorithm, or the encryption was successful.
Fig. 5 is a diagram describing an out-of-band communication protocol according to an example embodiment of the present disclosure. Referring to fig. 5, an out-of-band communication protocol may include a request and a response. For example, the request may be one of various requests and the response may be one of various responses. According to an example embodiment, the request may include information about the environmental data. For example, the request may include an opcode field. According to an example embodiment, the data (e.g., a series of bits) written in the opcode field of the request may indicate information about the environmental data. The response may include a data field. The request and the response may have a correspondence.
A request with a bit value of "0xC0" for the opcode field may indicate a sensor data command. The data field of the response corresponding to the request indicating the sensor data command may include current sensor data. For example, the current sensor data may refer to sensor data generated by a sensing operation of the storage device. This will be described in detail with reference to fig. 6A.
A request with a bit value of "0xC1" for the opcode field may indicate a log data command. The data field of the response corresponding to the request indicating the log data command may include log data. For example, the log data may include sensor data stored in the persistent memory of the MCU or telemetry data stored in the persistent memory. The stored sensor data may refer to previous sensor data generated by a previous sensing operation of the storage device. The stored telemetry data may refer to previous telemetry data generated by a previous monitoring operation. This will be described in detail with reference to fig. 6B.
A request with a bit value of "0xC2" for the opcode field may indicate a telemetry data command. The data field of the response corresponding to the request indicating the telemetry data command may include current telemetry data. For example, current telemetry data may refer to telemetry data generated by a monitoring operation of a storage device. This will be described in detail with reference to fig. 6C.
A request with a bit value of "0xC3" for the opcode field may indicate an algorithm negotiation command. The data field of the response corresponding to the request indicating the algorithm negotiation command may include an index indicating the security algorithm selected by the storage device. This will be described in detail with reference to fig. 6D.
A request with a bit value of "0xC4" for the opcode field may indicate an encryption enabled command. The data field of the response corresponding to the request indicating the encryption enable command may include an index indicating whether encryption is enabled. This will be described in detail with reference to fig. 6E.
However, the present disclosure is not limited thereto. For example, the requests and responses described with reference to FIG. 5 may be subdivided into sub-requests and sub-responses, or may be consolidated into an integrated request and integrated response, or requests and responses for processing other types of operations may be further added.
Fig. 6A to 6E are diagrams describing fields of an out-of-band communication protocol according to an example embodiment of the present disclosure. The descriptions of fig. 6A through 6E may correspond to the sensor data command, log data command, telemetry data command, algorithm negotiation command, and encryption enable command of fig. 5, respectively.
In fig. 6A-6E, requests RQa, RQb, RQc, RQd and RQe and responses RPa, RPb, RPc, RPd and RPe may be referred to as "messages".
According to an example embodiment, each message may include at least one of a message type field, an Integrity Check (IC) field, a Command Slot Identifier (CSI) field, a reserved field, an nvme_mi message type field, a Request Or Response (ROR) field, a Management Endpoint Buffer (MEB) field, a command initiated auto-suspend (CIAP) field, an opcode field, at least one NVMe management request doubleword field, a status code field, a response body field, and a message integrity check field.
The message type field may indicate a message type. The message may correspond to a request or a response. For example, when MCTP (management component transport protocol) is used, the value of the message type field may be set to 0x4. The value of the message type field may be determined according to the standard or type of protocol used.
The IC field may indicate whether the data is protected by a Cyclic Redundancy Check (CRC) defined in the corresponding protocol. When using the MCTP protocol, the value of the IC field may be set to 0x1.
The CSI field may be used to distinguish between command slots. For example, the nvme_mi standard may define two command slots. The CSI field may indicate whether the request or response corresponds to any command slots.
The reserved field may be a reserved field. For example, the reserved field may be cleared. The reserved field may include any field describing a request or a response.
The nvme_mi message type field may indicate a message type defined in the NVMe standard. The nvme_mi message type field may indicate whether the message is a command conforming to any NVMe standard.
The ROR field may indicate whether the corresponding message is a request or a response. For example, when the flag value of the ROR field is 0, the message may correspond to a request. When the flag value of the ROR field is 1, the message may correspond to a response.
When the size of the message exceeds the reference size, the MEB field may be used to reference the buffer. For example, in the nvme_mi standard, the reference size of the response body field of the message may be 4224 bytes. The MEB field may be cleared when the size of the response body field of the message is less than or equal to 4224 bytes. When the size of the response body field of the message is greater than 4224 bytes, the MEB field may include an index for referencing the buffer.
The CIAP field may determine the order in which messages are processed. For example, when the value of the CIAP field is 1, the BMC 112 or the MCU 123 receiving the related message may stop the previous operation and may preferentially process the related message. When the value of the CIAP field is 0, the BMC 112 or the MCU 123 receiving the message may perform the related message after completing the previous operation.
The opcode field may include bits corresponding to the command (see fig. 5).
The at least one NVMe management request double word field may be a data field. Depending on the command type, the NVMe management request doubleword field may be cleared, may indicate a security algorithm supported by the BMC 112, or may indicate whether encryption is enabled.
The status code field may be included in a message corresponding to the response. The status code field may indicate whether the request was successfully processed. The status code field may include a success code when the request is successfully processed. When processing of the request fails, the status code field may include an error code describing the failure.
The response body field may be included in a message corresponding to the response. The response body field may include the context data requested by the BMC 112, a security algorithm selected by the BMC 112, or a security key value used in an encryption operation corresponding to the selected security algorithm. The encryption operation may include encryption and decryption corresponding to the selected security algorithm.
The message integrity check field may indicate whether the message integrity check is valid. For example, as a result of a Cyclic Redundancy Check (CRC), the message integrity check field may indicate whether the associated message has integrity.
For a better understanding of the present disclosure, fig. 6A to 6E describe the respective fields with reference to the nvme_mi standard, but the present disclosure is not limited thereto. In addition to the nvme_mi standard, the present disclosure is applicable to various types of protocols supporting out-of-band communication, such as the PLDM standard, NC-SI standard, red fish standard, and MCTP standard.
Next, features of a request and a response according to a command type will be described independently with reference to fig. 6A to 6E.
Referring to fig. 6a, the bmc 112 may provide the request RQa to the MCU 123 through out-of-band communication. The MCU 123 may provide the response RPa to the BMC 112 through out-of-band communication.
The opcode field of request RQa can have a bit value of 0xC0. The request RQa may correspond to a sensor data command. The MCU 123 may successfully perform the sensing operation based on the request RQa. The MCU 123 may generate sensor data based on the sensing operation. The sensor data may be current sensor data obtained by a sensing operation.
The status code of the response RPa may include a success code. The success code in response to RPa may indicate that MCU 123 successfully processed request RQa. For example, the success code may have a value of 0. The response body field of the response RPa may include current sensor data.
Referring to fig. 6b, the bmc 112 may provide the request RQb to the MCU 123 through out-of-band communication. The MCU 123 may provide the response RPb to the BMC 112 through out-of-band communication.
The opcode field of request RQb can have a bit value of 0xC1. The request RQb may correspond to a log data command. MCU 123 can successfully load log data stored in the persistent memory of MCU 123 based on request RQb. The log data may include at least one of previous sensor data obtained by a previous sensing operation and previous telemetry data obtained by a previous monitoring operation.
The status code of the response RPb may include a success code. The success code in response to RPb may indicate that MCU 123 successfully processed request RQb. The response body field of the response RPb may include log data.
Referring to fig. 6c, the bmc 112 may provide the request RQc to the MCU 123 through out-of-band communication. The MCU 123 may provide the response RPc to the BMC 112 through out-of-band communication.
The opcode field of request RQc can have a bit value of 0xC2. The request RQc may correspond to a telemetry data command. The MCU 123 may successfully perform the monitoring operation based on the request RQc. MCU 123 can generate telemetry data based on the monitoring operation. The telemetry data may be current telemetry data obtained by a monitoring operation.
The status code of the response RPc may include a success code. The success code in response to RPc may indicate that MCU 123 successfully processed request RQc. The response body field of the response RPc may include current telemetry data.
Referring to fig. 6d, the bmc 112 may provide the request RQd to the MCU 123 through out-of-band communication. The MCU 123 may provide the response RPd to the BMC 112 through out-of-band communication.
The opcode field of request RQd can have a bit value of 0xC3. The request RQd may correspond to an algorithm negotiation command. At least the NVMe management request doubleword field of the request RQd may include a first through nth security algorithms supported by the BMC 112. The first through nth security algorithms may be security algorithms supported by the BMC 112. Herein, "N" is any natural number. The first to nth security algorithms may be different in encryption method or rule. The MCU 123 may determine one of the first through nth security algorithms as a target security algorithm based on the request RQd.
The status code of the response RPd may include a success code. The success code in response to RPd may indicate that MCU 123 successfully processed request RQd. The response body field of the response RPd may include a target security algorithm selected by the MCU 123 from among the first to nth security algorithms supported by the BMC 112. For example, the MCU 123 may select one of the first to nth security algorithms as the target security algorithm. In the response body field of the response RPd, the target security algorithm may have a first value, and each of the remaining security algorithms other than the target security algorithm among the first to nth security algorithms may have a second value.
In an example embodiment, each of the first to nth security algorithms may include an index for identifying the algorithm and a security key value of the BMC 112 or a security key value of the MCU 123 used in an encryption operation corresponding to the relevant security algorithm.
Referring to fig. 6e, the bmc 112 may provide the request RQe to the MCU 123 through out-of-band communication. The MCU 123 may provide a response RPe to the BMC 112 via out-of-band communication.
The opcode field of request RQe can have a bit value of 0xC4. The request RQe may correspond to an encryption enable command. Some of the at least one NVMe management request double word field of the request RQe can be used as an encryption switch field. The encryption switch field of request RQe may indicate enablement of encryption or disablement of encryption. For example, when BMC 112 enables encryption, the value of the encryption switch field may be 0x01. When BMC 112 disables encryption, the value of the encryption switch field may be 0x00. The MCU 123 can successfully enable or disable encryption based on the request RQe.
The status code of response RPe may include a success code. The success code of response RPe may indicate that MCU 123 successfully processed request RQe.
In an example embodiment, the response RPe may include a security key value used in an encryption operation corresponding to the target security algorithm. For example, the encryption switch field of request RQe may indicate enablement of encryption. The response RPe may include a secure key value used in decryption of the BMC 112.
Fig. 7 is a flowchart describing an operation method of an electronic device according to an example embodiment of the present disclosure.
The electronic device 100 may include a BMC 112 and an MCU 123. The BMC 112 and the MCU 123 may correspond to the BMC 112 and the MCU 123 of FIG. 1, respectively. In detail, the electronic device 100 may include a host device and a storage device. The host device may include a processor and a BMC 112. The memory device may include a memory controller and MCU 123. The processor and the memory controller may support in-band communication. The BMC 112 and MCU 123 may support out-of-band communications.
In operation S210, the BMC 112 of the electronic device 100 may provide a first request indicating algorithm negotiation to the MCU 123. For example, a bit of the opcode field of the first request may indicate an algorithm negotiation command. The first request may include one or more security algorithms supported by the BMC 112. MCU 123 can select one of the one or more security algorithms of the first request as the target security algorithm. The target security algorithm may be supported by both the BMC 112 and the MCU 123.
In operation S220, the MCU 123 of the electronic device 100 may provide the first response indicating the selected algorithm to the BMC 112. The first response may include a target security algorithm selected by the MCU 123 from among one or more security algorithms supported by the BMC 112.
In operation S230, the BMC 112 of the electronic device 100 may provide the MCU 123 with a second request to enable encryption. For example, a bit of the opcode field of the second request may indicate an encryption enable command. The encryption switch field of the second request may indicate enablement of encryption. MCU 123 can enable encryption of the environment data based on the second request. After encryption is enabled, until encryption is disabled, the MCU 123 may encrypt the environmental data and may provide the encrypted environmental data to the BMC 112.
In operation S240, the MCU 123 of the electronic device 100 may provide a second response indicating that encryption is enabled to the BMC 112. The status code of the second response may indicate that the second request was successful.
In operation S250, the BMC 112 of the electronic device 100 may provide a third request for current environment data to the MCU 123. The bits of the opcode field of the third request may indicate a sensor data command or a telemetry data command. The current environmental data may be indicative of sensor data or telemetry data.
In operation S251, the MCU 123 of the electronic device 100 may perform a monitoring operation or a sensing operation on a nonvolatile memory device in a storage device, and may generate current environment data based on the monitoring operation or the sensing operation.
For example, when the bit of the opcode field of the third request indicates a sensor data command, the MCU 123 may perform a sensing operation of the nonvolatile memory device, and may generate sensor data based on the sensing operation. The MCU 123 may manage the sensor data as current environment data.
According to an example embodiment, the MCU 123 may perform a monitoring operation or a sensing operation of the nonvolatile memory device based on a third request from the BMC 112. For example, the MCU 123 may perform a monitoring operation or a sensing operation of the nonvolatile memory device in response to a third request from the BMC 112. However, the present disclosure is not limited thereto, and thus, according to another example embodiment, the MCU 123 may perform a monitoring operation or a sensing operation of the nonvolatile memory device independently of the third request from the BMC 112. For example, the MCU 123 may periodically perform a monitoring operation or a sensing operation of the nonvolatile memory device.
As another example, when the bit of the opcode field of the third request indicates a telemetry data command, the MCU 123 may perform a monitoring operation of the nonvolatile memory device and may generate telemetry data based on the monitoring operation. MCU 123 can manage telemetry data as current environmental data.
In operation S252, the MCU 123 of the electronic device 100 may encrypt the current environment data. For example, the MCU 123 may encrypt the current environment data according to the target security algorithm selected based on the first request in operation S210.
In operation S260, the MCU 123 of the electronic device 100 may provide the BMC 112 with a third response including the encrypted current environment data.
In operation S261, the BMC 112 of the electronic device 100 may manage the storage device based on the encrypted current environment data. For example, BMC 112 may decrypt the encrypted current environment data. The BMC 112 may check a physical state of the storage device or a reliability level of the user data based on the decrypted current environment data, and may manage the storage device according to the checked physical state or reliability level.
In operation S270, the BMC 112 of the electronic device 100 may provide a fourth request to disable encryption to the MCU 123. For example, a bit of the opcode field of the fourth request may indicate an encryption enable command. The encryption switch field of the fourth request may indicate disabling of encryption. MCU 123 can disable encryption of the environment data based on the fourth request. After encryption is disabled, until encryption is again enabled, MCU 123 may provide unencrypted environment data to BMC 112.
In operation S280, the MCU 123 of the electronic device 100 may provide a fourth response indicating that encryption is disabled to the BMC 112. The status code of the fourth response may indicate that the fourth request was successful.
Fig. 8 is a flowchart describing an operation method of an electronic device according to an example embodiment of the present disclosure. A method of operating an electronic device according to an example embodiment of the present disclosure will be described with reference to fig. 8.
The electronic device 100 may include a BMC 112 and an MCU 123. The BMC 112 and the MCU 123 may correspond to the BMC 112 and the MCU 123 of FIG. 1, respectively. In detail, the electronic device 100 may include a host device and a storage device. The host device may include a processor and a BMC 112. The memory device may include a memory controller and MCU 123. The processor and the memory controller may support in-band communication. The BMC 112 and MCU 123 may support out-of-band communications.
Operation S310, operation S320, operation S330, operation S340, operation S370, and operation S380 are similar to operation S210, operation S220, operation S230, operation S240, operation S270, and operation S280 of fig. 7, and thus, additional description will be omitted to avoid redundancy.
In operation S350, the BMC 112 of the electronic device 100 may provide the MCU 123 with a third request for previous environment data. The bits of the opcode field of the third request may indicate a log data command. The previous environmental data may indicate log data. The log data may be stored in a persistent memory of the MCU 123. The log data may include at least one of previous sensor data generated based on previous sensing operations and previous telemetry data generated based on previous monitoring operations.
In operation S351, the MCU 123 of the electronic device 100 may load previous environment data. For example, the MCU 123 may read log data stored in persistent memory embedded in the MCU 123. The MCU 123 may manage log data as previous environment data.
In operation S352, the MCU 123 of the electronic device 100 may encrypt the previous environment data. For example, the MCU 123 may encrypt the previous environment data according to the target security algorithm selected based on the first request of operation S310.
In operation S360, the MCU 123 of the electronic device 100 may provide the BMC 112 with a third response including the encrypted previous environment data.
In operation S361, the BMC 112 of the electronic device 100 may manage the storage device based on the encrypted previous environment data. For example, BMC 112 may decrypt the encrypted previous environmental data. The BMC 112 may check a physical state of the storage device or a reliability level of the user data based on the decrypted previous environment data, and may manage the storage device according to the checked physical state or reliability level.
Fig. 9 is a flowchart describing an operation method of an electronic device according to an example embodiment of the present disclosure. A method of operating an electronic device according to an example embodiment of the present disclosure will be described with reference to fig. 9.
The electronic device 100 may include a BMC 112 and an MCU 123. The BMC 112 and the MCU 123 may correspond to the BMC 112 and the MCU 123 of FIG. 1, respectively. In detail, the electronic device 100 may include a host device and a storage device. The host device may include a processor and a BMC 112. The memory device may include a memory controller and MCU 123. The processor and the memory controller may support in-band communication. The BMC 112 and MCU 123 may support out-of-band communications.
In operation S410, the BMC 112 of the electronic device 100 may provide a request indicating management of the environment data to the MCU 123. For example, a bit of the opcode field of the request may indicate a sensor data command, a log data command, a telemetry data command, an algorithm negotiation command, or an encryption enable command.
In operation S411, the MCU 123 of the electronic device 100 may not be able to process the request in operation S410. Failure of the request in operation S410 may occur. For example, the MCU 123 may not be able to process the request in operation S410 due to various factors.
In operation S412, the MCU 123 of the electronic device 100 may determine an error code corresponding to the failure in operation S411. The error code may indicate a factor that causes the request in operation S411 to fail. This will be described in detail with reference to fig. 10.
In operation S420, the MCU 123 of the electronic device 100 may provide the response indicating the error code in operation S412 to the BMC 112.
Fig. 10 is a diagram describing an out-of-band communication protocol according to an example embodiment of the present disclosure. Error codes according to the out-of-band communication protocol will be described with reference to fig. 10. The error code may be written in a status code field of a response provided by out-of-band communication. An error code may be used when the request fails. The error code may indicate the factor that caused the request to fail.
In the first index (index 1), the error type may indicate an invalid command opcode. For example, the error type may indicate that the bit value of the opcode field of the request received from the BMC is invalid. The value of the error code written in the status code field may be 03h.
In the second index (index 2), the error type may indicate an invalid parameter. For example, the error type may indicate that the IC field is invalid. The value of the error code written in the status code field may be 04h.
In the third index (index 3), the error type may indicate an invalid parameter. For example, the error type may indicate that the ROR field is invalid. When the ROR field has a flag value corresponding to the request and a value other than the flag value corresponding to the response, the ROR field may be invalidated. The value of the error code written in the status code field may be 04h.
In the fourth index (index 4), the error type may indicate an invalid parameter. For example, the error type may indicate that the nvme_mi message type is invalid. The value of the error code written in the status code field may be 04h.
In the fifth index (index 5), the error type may indicate an invalid command size. For example, the error type may indicate that the size of the message body of the request received from the BMC exceeds the reference size. Since the size of the message body is different from the expected size, the MCU may have difficulty processing the request. The value of the error code written in the status code field may be 05h.
In the sixth index (index 6), the error type may indicate a vendor specific error. For example, as a result of a message integrity check on the request, the error type may indicate that the request received from the BMC is invalid. The error type of the sixth index may be used when the result of a Cyclic Redundancy Check (CRC) indicates that the request has integrity. The value of the error code written in the status code field may be E1h.
In the seventh index (index 7), the error type may indicate a vendor specific error. For example, the error type may indicate that the MCU does not support all security algorithms supported by the BMC. When the MCU cannot select the target security algorithm, the error type of the seventh index may be used. The value of the error code written in the status code field may be E2h.
In the eighth index (index 8), the error type may indicate a vendor-specific error. For example, the error type may indicate a failure of encryption by the MCU. The eighth indexed error type may be used when the MCU fails to encrypt the environment data or when the BMC fails to decrypt the encrypted environment data after enabling encryption according to the request of the BMC. The value of the error code written in the status code field may be E3h.
However, the present disclosure is not limited thereto. For example, in addition to the error types described with reference to FIG. 10, error codes indicating any other factors may be included.
Fig. 11 is a diagram describing fields of an out-of-band communication protocol according to an example embodiment of the present disclosure. Referring to fig. 11, the bmc 112 may provide the request RQ to the MCU 123 through out-of-band communication. Request RQ may correspond to request RQa of fig. 6A, request RQb of fig. 6B, request RQc of fig. 6C, request RQd of fig. 6D, or request RQe of fig. 6E. MCU 123 may fail to process the request RQ received from BMC 112. That is, a failure to request RQ may occur.
The MCU 123 may provide a response RPf to the BMC 112 via out-of-band communication. Response RPf may indicate a failure to request RQ.
The response RPf can include at least one of a message type field, an IC field, a reserved field, an nvme_mi message type field, a ROR field, a MEB field, a CIAP field, a status code field, a response body field, and a message integrity check field. The features of the above-described fields are similar to those described with reference to fig. 6A to 6E, and thus, additional description will be omitted to avoid redundancy.
When MCU 123 fails to process request RQ, MCU 123 may provide response RPf to BMC 112 including a status code field to which the error code was written. The error code may be one of the error codes described with reference to fig. 10.
Fig. 12 is a block diagram of an electronic device according to an example embodiment of the present disclosure. Referring to fig. 12, the electronic device 200 may include a host device 210 and first to nth storage devices 220_1 to 220_n. Each of the first through nth memory devices 220_1 through 220_n may operate similarly to the memory device 120 of fig. 1.
Host device 210 may include processor 211 and BMC 212. Processor 211 and BMC 212 may correspond to processor 111 and BMC 112, respectively, of FIG. 1.
The first memory device 220_1 may include a first memory controller 221_1 and a first MCU 223_1. The first memory controller 221_1 may support in-band communication with the processor 211. The first MCU 223_1 may support out-of-band communication with the BMC 212.
The second memory device 220_2 may include a second memory controller 221_2 and a second MCU 223_2. The second memory controller 221_2 may support in-band communication with the processor 211. The second MCU 223_2 may support out-of-band communication with the BMC 212.
The nth memory device 220_n may include an nth memory controller 221_n and an nth MCU 223_n. The nth memory controller 221_n may support in-band communication with the processor 211. The nth MCU 223_n may support out-of-band communication with the BMC 212. Herein, "N" may be independent of the number of algorithms of fig. 6D, and may be any natural number.
The processor 211 of the host device 210 may support in-band communication for each of the first to nth storage controllers 221_1 to 221_n.
The BMC212 of the host device 210 may support out-of-band communication for each of the first through N-th MCUs 223_1 through 223_N.
The host device 210 may independently manage the first through nth storage devices 220_1 through 220_n through out-of-band communication.
For example, a method of operating the electronic device 200 may include: providing, by the BMC212, a first request indicating management of the first environmental data to the first MCU 223_1 via out-of-band communication; providing, by the first MCU 223_1, a first response corresponding to the first request to the BMC212 through out-of-band communication; providing, by the BMC212, a second request indicating management of second environment data to the second MCU 223_2 through out-of-band communication; and providing, by the second MCU 223_2, a second response corresponding to the second request to the BMC212 through out-of-band communication.
According to example embodiments of the present disclosure, an electronic device supporting out-of-band communications and a method of operation thereof are provided.
In addition, an electronic device supporting bi-directional communication between a BMC and an MCU, transmitting various information of a storage device through out-of-band communication, and driving the MCU using a separate power supply voltage, and an operating method thereof are provided.
Although the present disclosure has been described with reference to the embodiments thereof, it will be apparent to those skilled in the art that various changes and modifications can be made to the present disclosure without departing from the spirit and scope of the disclosure as set forth in the appended claims.

Claims (20)

1. A method of operating an electronic device comprising a host device having a processor and a baseboard management controller and a storage device having a storage controller and a microcontroller unit, the method comprising:
providing, by a baseboard management controller of the host device, a first request to a microcontroller unit of the storage device via out-of-band communication, the first request including a first opcode field indicating a request for environmental data; and
providing a first response comprising said environmental data corresponding to said first request by said microcontroller unit to said baseboard management controller via said out-of-band communication,
wherein the processor of the host device and the storage controller of the storage device communicate with each other through in-band communication other than the out-of-band communication, and
wherein the baseboard management controller and the microcontroller unit communicate directly with each other through the out-of-band communication.
2. The method of claim 1, further comprising:
storing user data in a non-volatile memory device of the storage device;
generating, by a sensor device of the storage device, sensor data based on a sensing operation of the non-volatile memory device;
generating telemetry data based on a status monitoring operation of the non-volatile memory device;
receiving, by the microcontroller unit, the sensor data from the sensor device;
receiving, by the microcontroller unit, the telemetry data from the memory controller; and
at least one of the previous sensor data and the previous telemetry data is stored by the microcontroller unit as log data,
wherein the environmental data includes one of the sensor data, the log data, and the telemetry data.
3. The method of claim 2, wherein the sensor data comprises at least one of voltage sensor data, current sensor data, temperature sensor data, and humidity sensor data.
4. The method of claim 2, wherein the telemetry data includes at least one of program/erase cycle information, program count information, erase count information, read count information, error bit count information, and threshold voltage distribution information.
5. The method of claim 1, wherein a first bit of the first opcode field of the first request indicates a sensor data command, and
wherein the response body field of the first response includes current sensor data.
6. The method of claim 1, wherein a first bit of the first opcode field of the first request indicates a log data command,
wherein the response body field of the first response includes log data, and
wherein the log data includes at least one of previous sensor data and previous telemetry data.
7. The method of claim 1, wherein a first bit of the first opcode field of the first request indicates a telemetry data command, and
wherein the response body field of the first response includes current telemetry data.
8. The method of claim 1, wherein a first bit of the first opcode field of the first request indicates an algorithm negotiation command,
wherein the first request includes at least one security algorithm supported by the baseboard management controller, and
wherein the response body field of the first response includes a target security algorithm selected by the microcontroller unit from among the at least one security algorithm.
9. The method of claim 1, wherein a first bit of the first opcode field of the first request indicates an encryption enable command,
wherein the encryption switch field of the first request includes encryption enable or encryption disable, and
wherein the status code of the first response includes a success of the first request.
10. The method of claim 1, wherein the storage device further comprises a non-volatile memory device configured to store user data,
wherein a first bit of said first opcode field of said first request indicates an algorithm negotiation command,
wherein the first request includes at least one security algorithm supported by the baseboard management controller,
wherein the response body field of the first response includes a target security algorithm selected by the microcontroller unit from among the at least one security algorithm, and
wherein the method further comprises:
providing, by the baseboard management controller, a second request to the microcontroller unit via the out-of-band communication based on the first response, the second request including a second opcode field having a second bit indicating an encryption enable command;
Providing, by the microcontroller unit, a second response to the baseboard management controller via the out-of-band communication, the second response including a status code indicating success of the second request;
providing, by the baseboard management controller, a third request to the microcontroller unit via the out-of-band communication, the third request including a third opcode field having a third bit indicating a sensor data command or a telemetry data command;
generating, by the microcontroller unit, current environmental data by performing a status monitoring operation or a sensing operation of the non-volatile memory device based on the third request;
encrypting, by the microcontroller unit, the current environmental data based on the target security algorithm;
providing, by the microcontroller unit, the encrypted current environmental data to the baseboard management controller via the out-of-band communication; and
the storage device is managed by the baseboard management controller based on the encrypted current environment data.
11. The method of claim 1, wherein the storage device further comprises a non-volatile memory device configured to store user data,
wherein the microcontroller unit comprises a persistent memory configured to store previous environmental data generated by performing a previous state monitoring operation or a previous sensing operation of the non-volatile memory device,
Wherein a first bit of said first opcode field of said first request indicates an algorithm negotiation command,
wherein the first request includes at least one security algorithm supported by the baseboard management controller,
wherein the response body field of the first response includes a target security algorithm selected by the microcontroller unit from among the at least one security algorithm, and
wherein the method further comprises:
providing, by the baseboard management controller, a second request to the microcontroller unit via the out-of-band communication based on the first response, the second request including a second opcode field having a second bit indicating an encryption enable command;
providing, by the microcontroller unit, a second response to the baseboard management controller via the out-of-band communication, the second response including a status code indicating success of the second request;
providing, by the baseboard management controller, a third request to the microcontroller unit via the out-of-band communication, the third request including a third opcode field having a third bit indicating a log data command;
loading, by the microcontroller unit, the previous environmental data of the persistent memory based on the third request;
Encrypting, by the microcontroller unit, the previous environmental data based on the target security algorithm;
providing, by the microcontroller unit, the encrypted previous environmental data to the baseboard management controller via the out-of-band communication; and
the storage device is managed by the baseboard management controller based on the encrypted previous environmental data.
12. The method of claim 1, wherein the status code of the first response includes an error type indicating failure of the first request, and
wherein the error type includes at least one of:
a first error type indicating that a value corresponding to a first bit of the first opcode field of the first request is invalid;
a second error type indicating that an integrity check field of the first request is invalid;
a third error type indicating that a request or response field of the first request is invalid;
a fourth error type indicating that the first requested high speed nonvolatile memory management interface message type is invalid;
a fifth error type indicating that a size of a message body of the first request exceeds a reference size;
A sixth error type indicating: as a result of the message integrity check of the first request, the first request is invalid;
a seventh error type indicating that the microcontroller unit does not support all of the at least one security algorithm supported by the baseboard management controller; and
an eighth error type, which indicates a failure of encryption by the microcontroller unit.
13. The method of claim 1, further comprising:
supplying a first power supply voltage to the memory controller by a main power supply of the host device; and
a second power supply voltage, different from the first power supply voltage, is supplied to the microcontroller unit by an auxiliary power supply of the host device.
14. The method of claim 1, wherein the electronic device further comprises an additional storage device, and
wherein the additional storage device further comprises an additional storage controller and an additional microcontroller unit,
wherein the method further comprises:
performing a first communication operation directly between the processor and the additional storage controller via the in-band communication, and
a second communication operation is performed directly between the baseboard management controller and the additional micro-controller unit by the out-of-band communication.
15. A method of operating an electronic device, the electronic device comprising a host device, a first storage device, and a second storage device, the host device comprising a processor and a baseboard management controller, the first storage device comprising a first storage controller and a first microcontroller unit, the second storage device comprising a second storage controller and a second microcontroller unit, the method comprising:
providing, by the baseboard management controller, a first request including information corresponding to first environmental data to the first microcontroller unit through out-of-band communication;
providing, by the first microcontroller unit, a first response corresponding to the first request to the baseboard management controller through the out-of-band communication;
providing, by the baseboard management controller, a second request to the second microcontroller unit via the out-of-band communication, the second request including information corresponding to second environmental data; and
providing a second response corresponding to the second request to the baseboard management controller by the second micro-controller unit through the out-of-band communication,
wherein the processor and the first storage controller and the second storage controller communicate with each other through in-band communication that is different from the out-of-band communication.
16. The method of claim 15, wherein a first bit of a first opcode field of the first request indicates a sensor data command, a log data command, a telemetry data command, an algorithm negotiation command, or an encryption enable command.
17. An electronic device, comprising:
a host device including a processor and a baseboard management controller; and
a memory device comprising a memory controller and a microcontroller unit,
wherein the baseboard management controller is configured to provide a request including information corresponding to environmental data to the micro-controller unit through out-of-band communication,
wherein the microcontroller unit is configured to provide a response corresponding to the request to the baseboard management controller through the out-of-band communication, and
wherein the processor and the storage controller communicate with each other through in-band communication that is different from the out-of-band communication.
18. The electronic device of claim 17, wherein the storage device further comprises:
a non-volatile memory device configured to store user data; and
a sensor device configured to generate sensor data based on a sensing operation of the non-volatile memory device,
Wherein the memory controller is configured to generate telemetry data based on a status monitoring operation of the non-volatile memory device, and
wherein the microcontroller unit is further configured to:
receiving the sensor data from the sensor device;
receiving the telemetry data from the storage controller; and is also provided with
At least one of the previous sensor data and the previous telemetry data is stored as log data.
19. The electronic device of claim 17, wherein the host device further comprises:
a main power supply configured to supply a first power supply voltage to the memory controller; and
a secondary power supply configured to supply a second power supply voltage different from the first power supply voltage to the microcontroller unit.
20. The electronic device of claim 17, wherein the request includes a first opcode field indicating a sensor data command, a log data command, a telemetry data command, an algorithm negotiation command, or an encryption enable command.
CN202310887241.1A 2022-07-21 2023-07-19 Electronic device supporting out-of-band communication and method of operating the same Pending CN117440263A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR10-2022-0090564 2022-07-21
KR10-2023-0000283 2023-01-02
KR1020230000283A KR20240013017A (en) 2022-07-21 2023-01-02 Electronic device supporting out-of-band communication, and method of operating the same

Publications (1)

Publication Number Publication Date
CN117440263A true CN117440263A (en) 2024-01-23

Family

ID=89545161

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310887241.1A Pending CN117440263A (en) 2022-07-21 2023-07-19 Electronic device supporting out-of-band communication and method of operating the same

Country Status (1)

Country Link
CN (1) CN117440263A (en)

Similar Documents

Publication Publication Date Title
US9094190B2 (en) Method of managing key for secure storage of data and apparatus therefor
US10997297B1 (en) Validating firmware for data storage devices
US8645715B2 (en) Configuring host settings to specify an encryption setting and a key label referencing a key encryption key to use to encrypt an encryption key provided to a storage drive to use to encrypt data from the host
CN110785759B (en) Remote authentication for multi-core processors
US8990571B2 (en) Host device, semiconductor memory device, and authentication method
US9864704B2 (en) Memory controller communicating with host, operating method thereof, and computing system including the same
CN100428187C (en) Nonvolatile memory apparatus
JP5454933B2 (en) Portable electronic device, IC card, and control method for portable electronic device
US20180137284A1 (en) Computing system for managing firmware and firmware managing method thereof
CN104364760A (en) Parallel computation with multiple storage devices
CN105808444A (en) Method for controlling memory device and non-volatile memory
JP2019212342A (en) Boot program, information processor, information processing system, information processing method, semiconductor device, and program
JPWO2018042766A1 (en) PROCESSING APPARATUS, SEMICONDUCTOR INTEGRATED CIRCUIT, AND START-UP METHOD OF SEMICONDUCTOR INTEGRATED CIRCUIT
KR20230029113A (en) Electronic device
CN102982265B (en) Authentication method for storing basic input and output system (BIOS) setting
CN117440263A (en) Electronic device supporting out-of-band communication and method of operating the same
EP4310658A1 (en) Electronic device supporting out-of-band communication, and method of operating the same
US20240028493A1 (en) Electronic device supporting out-of-band communication, and method of operating the same
US20230091431A1 (en) Memory system and random number generation device
KR20240013017A (en) Electronic device supporting out-of-band communication, and method of operating the same
US11734218B2 (en) Bus system
US10929030B2 (en) Computer and control method
US20220393859A1 (en) Secure Data Storage with a Dynamically Generated Key
KR20180089140A (en) Data storage device
JP6203532B2 (en) Semiconductor memory device and data processing system

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication