Patent ID: 12216560

DETAILED DESCRIPTION

Below, embodiments of the disclosure will be described in detail and clearly to such an extent that one skilled in the art implements embodiment of the disclosure easily.

FIG.1is a block diagram of an electronic device according to an example embodiment of the disclosure. Referring toFIG.1, an electronic device100may include a host device110and a storage device120. The electronic device100may refer to a device, which is configured to manage a large amount of user data UD. For example, the electronic device100may include a storage system, a server system, or a database server. However, the disclosure is not limited thereto, and as such, may include other devices. The user data UD may include a variety of information to be provided to the user, the information including, but not limited to, an image, a video, a text, and voice.

The host device110may control an overall operation of the electronic device100. For example, the host device110may store data in the storage device120, may read data stored in the storage device120, or may manage environment data of the storage device120for the purpose of maintaining the reliability of data stored in the storage device120.

The environment data may include physical environment information such as a voltage, a current, a temperature, and humidity. The physical environment information may be also referred to as “sensor data SD”. The environment 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 be also referred to as “telemetry data TD”.

The host device110may include a processor111and a baseboard management controller (BMC)112. The processor111and the BMC112may communicate with each other. For example, the processor111and the BMC112may communicate with each other through an interface (IF1).

The processor111may store data in the storage device120or may read data stored in the storage device120. For example, the processor111may be implemented with a central processing unit (CPU). The processor111may execute an operating system (OS), and the operating system may support in-band communication with the storage device120.

The in-band communication may refer to communication between the processor111of the host device110and a storage controller121of the storage device120. For example, the operating system may be used in the in-band communication between the processor111and the storage controller121.

The BMC112may manage the environment data of the storage device120. For example, the BMC112may request a micro controller unit (MCU)123to perform a sensing operation or a monitoring operation. However, the request is not limited to the sensing operation or the monitoring operation, and as such, according to another example embodiment, the BMC112may request the MCU123to perform other operations. According to an example embodiment, the BMC112may receive the environment data from the MCU123, and may provide the environment data to the processor111. The operating system executed by the processor111may manage the storage device120based on the environment data obtained by the BMC112.

The BMC112may support the out-of-band communication with the storage device120. The out-of-band communication may refer to communication between the BMC112of the host device110and the MCU123of the storage device120, and the operating system may not be used in the out-of-band communication. According to an example embodiment, an interface for the out-of-band communication may be provided independently of an interface for the 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 a protocol complying with the open computer project (OCP) standard. The out-of-band communication may support various kinds of protocols such as a Platform Level Data Model (PLDM) standard, a Network Controller Sideband Interface (NC-SI) standard, a Redfish standard, a Non-Volatile Memory Express Management Interface (NVMe_MI) standard, and a Management Component Transport Protocol (MCTP) standard.

The storage device120may include the storage controller121, a non-volatile memory device122, the MCU123, and a sensor device124.

The storage controller121may control an overall operation of the storage device120. According to an example embodiment, the storage controller121may control an operation of the storage device120under control of the processor111. For example, under control of the processor111, the storage controller121may store the user data UD in the non-volatile memory device122, may read the user data UD stored in the non-volatile memory device122, or may generate the telemetry data TD by performing the monitoring operation on the non-volatile memory device122. The monitoring operation may refer to a health check operation that is performed to check a degradation level of a threshold voltage distribution of the non-volatile memory device122. The storage controller121may be also referred to as a “main controller”.

The storage controller121may communicate with the processor111, the non-volatile memory device122, and the MCU123. The storage controller121may support the in-band communication with the processor111. The storage controller121may perform the monitoring operation on the non-volatile memory device122. The storage controller121may provide the telemetry data TD to the MCU123. According to an example embodiment, the storage controller121and the MCU123may communicate with each other through an interface (IF2).

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 device122may store the user data UD. For example, the non-volatile memory device122may store the user data UD under control of the storage controller121or may provide the user data UD to the storage controller121. The threshold voltage distribution of memory cells of the non-volatile memory device122may correspond to the user data UD. The threshold voltage distribution of memory cells may change due to various factors such as retention, read disturb, and hot carrier injection (HCI). The storage controller121may manage the degradation level of the non-volatile memory device122by obtaining the telemetry data TD through the monitoring operation for the non-volatile memory device122.

In an example embodiment, the non-volatile memory device122may be a NAND flash memory device, but the disclosure is not limited thereto. For example, the non-volatile memory device122may be one of various storage devices, which retain data stored therein even though a power is turned 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 MCU123may monitor the status of the storage device120and may manage an event occurring in the storage device120. The event may include a voltage change, a current change, a humidity change, a temperature change, power-off, etc. The MCU123may receive a request associated with the environment data from the BMC112and may provide the BMC112with a response corresponding to the request of the BMC112.

The MCU123may communicate with the BMC112, the storage controller121, and the sensor device124. The MCU123may support the out-of-band communication with the BMC112. The MCU123may receive the telemetry data TD from the storage controller121. The MCU123may receive the sensor data SD from the sensor device124.

The MCU123may include a persistent memory. For example, the persistent memory may be implemented with an electrically erasable programmable read-only memory (EEPROM). The MCU123may store at least one of the telemetry data TD and the sensor data SD in the persistent memory as log data LD. 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 the previous monitoring operation of the storage controller121and sensor data generated by the previous sensing operation of the sensor device124. However, the disclosure is not limited thereto, and as such, according to an example embodiment, 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 MCU123may provide the environment data to the BMC112depending on the request of the BMC112. The environment data may include the sensor data SD, the log data LD, or the telemetry data TD. The MCU123may manage a security operation of the sensor data SD, the log data LD, and the telemetry data TD.

The sensor device124may sense a physical environment of the storage device120to generate the sensor data SD. The sensor device124may communicate with the MCU123. The sensor device124may provide the sensor data SD to the MCU123.

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 an example embodiment of the disclosure, the electronic device100may include the host device110and the storage device120. The host device110and the storage device120may support the in-band communication and the out-of-band communication. The BMC112of the host device110and the MCU123of the storage device120may transfer a variety of information in a bidirectional way by using the out-of-band communication.

FIG.2is a block diagram of a related art electronic device. For better understanding of the disclosure, a related art electronic device ED will be described with reference toFIG.2, but the related art electronic device ED may include a component that is not disclosed in references of the information disclosure statement without intending 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 storage controller, a non-volatile memory device, an MCU, a sensor device, and a persistent memory.

The processor of the host device and the storage controller of the storage device may support the in-band communication. Through the in-band communication, the processor may provide the storage controller with 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 device. Through the in-band communication, the storage controller may provide the processor with the user data UD received from the non-volatile memory device and environment data received from the MCU. The environment data may include at least one of the sensor data SD obtained by the sensing operation of the sensor device and the telemetry data TD obtained by the monitoring operation of the storage controller.

The BMC of the host device and the persistent memory of the storage device may support limited communication. Through the limited communication, the persistent memory may provide the BMC with information stored in the persistent memory (e.g., the stored information may be temperature information when the persistent memory includes a temperature sensor). The limited communication may refer to unidirectional communication from the 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 fail to perform direct communication. The BMC may provide a request indicating management of the environment data to the MCU through the processor and the storage controller. The MCU may provide a response corresponding to the request of the BMC through the storage 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 as such, the BMC and the MCU may indirectly communicate with each other through the in-band communication between the processor and the storage controller. In detail, in the related art electronic device ED, as the BMC and the MCU consume the bandwidth of the in-band communication to manage the environment data, an input/output (I/O) speed of the user data UD may decrease. Moreover, since a direct communication between the BMC and the MCU may not be supported, and since the BMC may not support the bidirectional communication with the storage device the number of types of information that the BMC receives from the persistent memory may be less than the number of types of information managed by the MCU. The in-band communication and the limited communication of the related art electronic device ED may fail to satisfy various requirements of a host device, a client or a manufacturer.

FIG.3is a block diagram of an electronic device according to an example embodiment of the disclosure. Referring toFIG.3, the electronic device100may include the host device110and the storage device120. The host device110may include the processor111, the BMC112, and a power supply device113. The storage device120may include the storage controller121, the non-volatile memory device122, the MCU123, and the sensor device124.

The processor111, the BMC112, the storage controller121, the non-volatile memory device122, the MCU123, and the sensor device124may respectively correspond to the processor111, the BMC112, the storage controller121, the non-volatile memory device122, the MCU123, and the sensor device124ofFIG.1.

The power supply device113may include a main power supplier and an auxiliary power supplier. The main power supplier may provide a first power supply voltage VDD1to the storage device120. The storage controller121of the storage device120may be driven by the first power supply voltage VDD1. The auxiliary power supplier may provide a second power supply voltage VDD2to the storage device120. The MCU123of the storage device120may be driven by the second power supply voltage VDD2.

The second power supply voltage VDD2may be a power supply voltage provided independently of the first power supply voltage VDD1. For example, the main power supplier may provide the first power supply voltage VDD1to the storage device120through a first supply line. The magnitude of the first power supply voltage VDD1may be about 5 V or about 3.3 V. The auxiliary power supplier may provide the second power supply voltage VDD2to the storage device120through a second supply line. The magnitude of the second power supply voltage VDD2may be about 3.3 V.

The storage controller121may include a status monitoring device. For example, the status monitoring device may be implemented with a software device or firmware module that performs the health check operation of the non-volatile memory device122. The status monitoring device may generate the telemetry data TD by performing the monitoring operation of the non-volatile memory device122. The status monitoring device may provide the telemetry data TD to the MCU123. The MCU123may store the telemetry data TD in a persistent memory as the log data LD or may provide the telemetry data TD to the BMC112through the out-of-band communication.

The MCU123may include the persistent memory and a security manager. The persistent memory may store the log data LD. The log data LD may include at least one of previous telemetry data received from the storage controller121and previous sensor data received from the sensor device124. The MCU123may receive a request for the log data LD from the BMC112and may provide a response including the log data LD stored in the persistent memory to the BMC112.

The security manager may manage a security operation performed on the environment data. For example, the security manager may be implemented with a software device or firmware module that performs the security operation. The security manager may negotiate a security algorithm through the out-of-band communication with the BMC112. Depending on the negotiated security algorithm, the security manager may enable the encryption of the environment data or may disable the encryption of the environment data.

The sensor device124may include a voltage sensor, a current sensor, a temperature sensor, and a humidity sensor. The voltage sensor may sense a voltage provided to the non-volatile memory device122and may generate first sensor data SD1. The current sensor may sense a current provided to the non-volatile memory device122and may generate second sensor data SD2. The temperature sensor may sense a temperature of the non-volatile memory device122and may generate third sensor data SD3. The humidity sensor may sense humidity of the non-volatile memory device122and may generate fourth sensor data SD4. The first sensor data SD1, the second sensor data SD2, the third sensor data SD3, and fourth sensor data SD4may correspond to the sensor data SD ofFIG.1.

The sensor device124may provide at least one of the first sensor data SD1, the second sensor data SD2, the third sensor data SD3, and fourth sensor data SD4to the MCU123as sensor data. The MCU123may store the sensor data in the persistent memory as the log data LD or may provide the sensor data to the BMC112through the out-of-band communication.

The processor111of the host device110and the storage controller121of the storage device120may support the in-band communication. Through the in-band communication, the processor111may provide the storage controller121with 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 device120. Through the in-band communication, the storage controller121may provide the processor111with a response corresponding to the request of the processor111.

The BMC112of the host device110and the MCU123of the storage device120may support the out-of-band communication. Through the out-of-band communication, the BMC112may provide the MCU123with a request indicating the management of the environment data. Through the out-of-band communication, the MCU123may provide the BMC112with a response corresponding to the request of the BMC112.

In other words, the BMC112and the MCU123may directly communicate with each other through the out-of-band communication. The BMC112and the MCU123may directly communicate with each other through the out-of-band communication without consuming the bandwidth of the in-band communication. The BMC112and the MCU123may perform bidirectional communication through the out-of-band communication. The MCU123may provide a variety of information about the environment data to the BMC112through the out-of-band communication. The out-of-band communication may provide the client or manufacturer with various and flexible communication interface environments.

FIG.4is a flowchart describing a method of operating an electronic device according to an example embodiment of the disclosure. A method of operating an electronic device according to an example embodiment of the disclosure will be described with reference toFIG.4.

The electronic device100may include the BMC112and the MCU123. The BMC112and the MCU123may respectively correspond to the BMC112and the MCU123ofFIG.1. In detail, the electronic device100may include a host device and a storage device. The host device may include a processor and the BMC112. The storage device may include a storage controller and the MCU123. The processor and the storage controller may support the in-band communication. The BMC112and the MCU123may support the out-of-band communication.

In operation S110, the BMC112of the electronic device100may provide a request indicating the management of the environment data to the MCU123through the out-of-band communication.

In an example embodiment, the environment data may include sensor data, log data, or telemetry data. For example, the sensor data may be generated based on the sensing operation. The 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 a previous sensing operation and previous telemetry data generated based on a previous monitoring operation.

In an example embodiment, the management of the environment data may include the security operation for the environment data. For example, the security operation may include negotiating the security algorithm to be used to transfer the environment data, enabling the encryption of the environment data depending on the security algorithm selected by the negotiation of the security algorithm, and disabling the encryption of the environment data.

In operation S120, the MCU123of the electronic device100may provide a response corresponding to the request in operation S110to the BMC112through the out-of-band communication. For example, the response in operation S120may indicate the environment data, the selected security algorithm, or whether the enable or disable of the encryption succeeds.

FIG.5is a diagram describing a protocol of out-of-band communication according to an example embodiment of the disclosure. Referring toFIG.5, the protocol of the out-of-band communication 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 environment data. For example, the request may include an opcode field. According to an example embodiment, data (e.g., a series of bits) written in the opcode field of the request may indicate information about the environment data. The response may include a data field. The request and the response may have a correspondence relationship.

A request in which a value of bits of the opcode field is “0xC0” 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 the sensing operation of the storage device. This will be described in detail with reference toFIG.6A.

A request in which a value of bits of the opcode field is “0xC1” 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 the previous sensing operation of the storage device. The stored telemetry data may refer to previous telemetry data generated by the previous monitoring operation. This will be described in detail with reference toFIG.6B.

A request in which a value of bits of the opcode field is “0xC2” 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, the current telemetry data may refer to telemetry data generated by the monitoring operation of the storage device. This will be described in detail with reference toFIG.6C.

A request in which a value of bits of the opcode field is “0xC3” 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 a security algorithm selected by the storage device. This will be described in detail with reference toFIG.6D.

A request in which a value of bits of the opcode field is “0xC4” may indicate an encryption enable command. The data field of the response corresponding to the request indicating the encryption enable command may include an index indicating whether the encryption is enabled. This will be described in detail with reference toFIG.6E.

However, the disclosure is not limited thereto. For example, the requests and responses described with reference toFIG.5may be subdivided into sub-requests and sub-responses or may be integrated into a comprehensive request and a comprehensive response, or a request and a response for processing other kinds of operations may be further added.

FIGS.6A to6Eare diagrams describing fields of a protocol of out-of-band communication according to an example embodiment of the disclosure. Descriptions ofFIGS.6A to6Emay correspond to the sensor data command, the log data command, the telemetry data command, the algorithm negotiation command, and the encryption enable command ofFIG.5, respectively.

InFIGS.6A to6E, 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 of the messages 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 pause (CIAP) field, an opcode field, at least one NVMe management request deword fields, 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 the request or response. For example, when using MCTP (Management Component Transport Protocol), the value of the message type field may be set to 0x4. The value of the message type field may be determined depending on a standard or a type of a used protocol.

The IC field may indicate whether data are protected by a cyclic redundancy check (CRC) defined in a 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 command slots. For example, the NVMe_MI standard may define two command slots. The CSI field may indicate whether a request or response corresponds to any command slot.

The reserved field may be a preliminary field. For example, the reserved field may be emptied. The reserved field may include arbitrary fields that describe a request or 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 a message is a command complying with any NVMe standard.

The ROR field may indicate whether a corresponding message is a request or a response. For example, when a flag value of the ROR field is 0, the message may correspond to the request. When the flag value of the ROR field is 1, the message may correspond to the response.

The MEB field may be used to refer to a buffer when the size of the message exceeds a reference size. For example, in the NVMe_MI standard, a reference size of the response body field of the message may be 4224 bytes. When the size of the response body field of the message is smaller than or equal to 4224 bytes, the MEB field may be emptied. When the size of the response body field of the message is greater than 4224 bytes, the MEB field may include indexes that are used to refer to buffers.

The CIAP field may determine the order of processing messages. For example, when the value of the CIAP field is 1, the BMC112or the MCU123that receives a relevant message may stop the previous operation and may process the relevant message with priority. When the value of the CIAP field is 0, the BMC112or the MCU123that receives the message may perform the relevant message after completing the previous operation.

The opcode field may include bits corresponding to a command (refer toFIG.5)

The at least one NVMe management request deword fields may be data fields. Depending on the command type, the NVMe management request deword fields may be emptied, may indicate security algorithms supported by the BMC112, or may indicate whether the encryption is enabled.

The status code field may be included in a message corresponding to a response. The status code field may indicate whether the request is successfully processed. When the request is successfully processed, the status code field may include a success code. When the 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 a response. The response body field may include environment data requested by the BMC112, a security algorithm selected by the BMC112, 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 a message integrity check is valid. For example, the message integrity check field may indicate whether a relevant message has integrity as a result of the cyclic redundancy check (CRC).

For better understanding of the disclosure,FIGS.6A to6Edescribe various fields with reference to the NVMe_MI standard, but the disclosure is not limited thereto. In addition to the NVMe_MI standard, the disclosure may be applied to various types of protocols supporting the out-of-band communication, such as a PLDM standard, an NC-SI standard, a redfish standard, and an MCTP standard.

Below, features of a request and a response according to a command kind will be described independently with reference toFIGS.6A to6E.

Referring toFIG.6A, the BMC112may provide the request RQa to the MCU123through the out-of-band communication. The MCU123may provide the response RPa to the BMC112through the out-of-band communication.

A value of the bits of the opcode field of the request RQa may be 0xC0. The request RQa may correspond to the sensor data command. The MCU123may successfully perform the sensing operation based on the request RQa. The MCU123may generate the sensor data based on the sensing operation. The sensor data may be current sensor data obtained by the sensing operation.

A status code of the response RPa may include a success code. The success code of the response RPa may indicate that the MCU123successfully processes the request RQa. For example, a value of the success code may be 0. The response body field of the response RPa may include the current sensor data.

Referring toFIG.6B, the BMC112may provide the request RQb to the MCU123through the out-of-band communication. The MCU123may provide the response RPb to the BMC112through the out-of-band communication.

A value of the bits of the opcode field of the request RQb may be 0xC1. The request RQb may correspond to the log data command. The MCU123may successfully load the log data stored in the persistent memory of the MCU123based on the request RQb. The log data may include at least one of previous sensor data obtained by the previous sensing operation and previous telemetry data obtained by the previous monitoring operation.

A status code of the response RPb may include a success code. The success code of the response RPb may indicate that the MCU123successfully processes the request RQb. The response body field of the response RPb may include the log data.

Referring toFIG.6C, the BMC112may provide the request RQc to the MCU123through the out-of-band communication. The MCU123may provide the response RPc to the BMC112through the out-of-band communication.

A value of the bits of the opcode field of the request RQc may be 0xC2. The request RQc may correspond to the telemetry data command. The MCU123may successfully perform the monitoring operation based on the request RQc. The MCU123may generate the telemetry data based on the monitoring operation. The telemetry data may be current telemetry data obtained by the monitoring operation.

A status code of the response RPc may include a success code. The success code of the response RPc may indicate that the MCU123successfully processes the request RQc. The response body field of the response RPc may include the current telemetry data.

Referring toFIG.6D, the BMC112may provide the request RQd to the MCU123through the out-of-band communication. The MCU123may provide the response RPd to the BMC112through the out-of-band communication.

A value of the bits of the opcode field of the request RQd may be 0xC3. The request RQd may correspond to the algorithm negotiation command. The at least NVMe management request deword fields of the request RQd may include first to N-th security algorithms that are supported by the BMC112. The first to N-th security algorithms may be security algorithms that are supported by the BMC112. Herein, “N” is an arbitrary natural number. The first to N-th security algorithms may be different in an encryption method or rule. The MCU123may determine one of the first to N-th security algorithms as a target security algorithm, based on the request RQd.

A status code of the response RPd may include a success code. The success code of the response RPd may indicate that the MCU123successfully processes the request RQd. The response body field of the response RPd may include the target security algorithm selected by the MCU123from among the first to N-th security algorithms supported by the BMC112. For example, the MCU123may select one of the first to N-th 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 N-th security algorithms may have a second value.

In an example embodiment, each of the first to N-th security algorithms may include an index for identification of an algorithm and a security key value of the BMC112or a security key value of the MCU123, which is used in the encryption operation corresponding to a relevant security algorithm.

Referring toFIG.6E, the BMC112may provide the request RQe to the MCU123through the out-of-band communication. The MCU123may provide the response RPe to the BMC112through the out-of-band communication.

A value of the bits of the opcode field of the request RQe may be 0xC4. The request RQe may correspond to the encryption enable command. Some of the at least one NVMe management request deword fields of the request RQe may be used as an encryption switch field. The encryption switch field of the request RQe may indicate the enable of the encryption or the disable of the encryption. For example, when the BMC112enables the encryption, a value of the encryption switch field may be 0x01. When the BMC112disables the encryption, a value of the encryption switch field may be 0x00. The MCU123may successfully enable or disable the encryption based on the request RQe.

A status code of the response RPe may include a success code. The success code of the response RPe may indicate that the MCU123successfully processes the request RQe.

In an example embodiment, the response RPe may include a security key value that is used in the encryption operation corresponding to the target security algorithm. For example, the encryption switch field of the request RQe may indicate the enable of the encryption. The response RPe may include a security key value that is used in decryption of the BMC112.

FIG.7is a flowchart describing a method of operating an electronic device according to an example embodiment of the disclosure.

The electronic device100may include the BMC112and the MCU123. The BMC112and the MCU123may respectively correspond to the BMC112and the MCU123ofFIG.1. In detail, the electronic device100may include a host device and a storage device. The host device may include a processor and the BMC112. The storage device may include a storage controller and the MCU123. The processor and the storage controller may support the in-band communication. The BMC112and the MCU123may support the out-of-band communication.

In operation S210, the BMC112of the electronic device100may provide a first request indicating an algorithm negotiation to the MCU123. For example, the bits of the opcode field of the first request may indicate the algorithm negotiation command. The first request may include one or more security algorithms that are supported by the BMC112. The MCU123may 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 BMC112and the MCU123.

In operation S220, the MCU123of the electronic device100may provide a first response indicating the selected algorithm to the BMC112. The first response may include the target security algorithm selected by the MCU123from among the one or more security algorithms supported by the BMC112.

In operation S230, the BMC112of the electronic device100may provide a second request for enabling the encryption to the MCU123. For example, the bits of the opcode field of the second request may indicate the encryption enable command. The encryption switch field of the second request may indicate the enable of the encryption. The MCU123may enable the encryption of the environment data based on the second request. After the encryption is enabled, until the encryption is disabled, the MCU123may encrypt the environment data and may provide the encrypted environment data to the BMC112.

In operation S240, the MCU123of the electronic device100may provide the BMC112with a second response indicating that the encryption is enabled. The status code of the second response may indicate the success of the second request.

In operation S250, the BMC112of the electronic device100may provide a third request for current environment data to the MCU123. Bits of the opcode field of the third request may indicate the sensor data command or the telemetry data command. The current environment data may indicate the sensor data or the telemetry data.

In operation S251, the MCU123of the electronic device100may perform the monitoring operation or the sensing operation of the non-volatile memory device in the storage device and may generate current environment data based on the monitoring operation or the sensing operation.

For example, when the bits of the opcode field of the third request indicate the sensor data command, the MCU123may perform the sensing operation of the non-volatile memory device and may generate the sensor data based on the sensing operation. The MCU123may manage the sensor data as the current environment data.

According to an example embodiment, the MCU123may perform the monitoring operation or the sensing operation of the non-volatile memory device based on the third request from the BMC112. For example, the MCU123may perform the monitoring operation or the sensing operation of the non-volatile memory device in response to the third request from the BMC112. However, the disclosure is not limited thereto, and as such, according to another example embodiment, the MCU123may perform the monitoring operation or the sensing operation of the non-volatile memory device independent of the third request from the BMC112. For example, the MCU123may periodically perform the monitoring operation or the sensing operation of the non-volatile memory device.

As another example, when the bits of the opcode field of the third request indicate the telemetry data command, the MCU123may perform the monitoring operation of the non-volatile memory device and may generate the telemetry data based on the monitoring operation. The MCU123may manage the telemetry data as the current environment data.

In operation S252, the MCU123of the electronic device100may encrypt the current environment data. For example, the MCU123may encrypt the current environment data based on the target security algorithm selected based on the first request in operation S210.

In operation S260, the MCU123of the electronic device100may provide a third response including the encrypted current environment data to the BMC112.

In operation S261, the BMC112of the electronic device100may manage the storage device based on the encrypted current environment data. For example, the BMC112may decrypt the encrypted current environment data. The BMC112may check a physical status of the storage device or a reliability level of user data based on the decrypted current environment data and may manage the storage device depending on the checked physical status or reliability level.

In operation S270, the BMC112of the electronic device100may provide a fourth request for disabling the encryption to the MCU123. For example, bits of the opcode field of the fourth request may indicate the encryption enable command. The encryption switch field of the fourth request may indicate the disable of the encryption. The MCU123may disable the encryption of the environment data based on the fourth request. After the encryption is disabled, until the encryption is again enabled, the MCU123may provide the BMC112with the environment data not encrypted.

In operation S280, the MCU123of the electronic device100may provide the BMC112with a fourth response indicating that the encryption is disabled. The status code of the fourth response may indicate the success of the fourth request.

FIG.8is a flowchart describing a method of operating an electronic device according to an example embodiment of the disclosure. A method of operating an electronic device according to an example embodiment of the disclosure will be described with reference toFIG.8.

The electronic device100may include the BMC112and the MCU123. The BMC112and the MCU123may respectively correspond to the BMC112and the MCU123ofFIG.1. In detail, the electronic device100may include a host device and a storage device. The host device may include a processor and the BMC112. The storage device may include a storage controller and the MCU123. The processor and the storage controller may support the in-band communication. The BMC112and the MCU123may support the out-of-band communication.

Operation S310, operation S320, operation S330, operation S340, operation S370, and operation S380are similar to operation S210, operation S220, operation S230, operation S240, operation S270, and operation S280ofFIG.7, and thus, additional description will be omitted to avoid redundancy.

In operation S350, the BMC112of the electronic device100may provide a third request for previous environment data to the MCU123. Bits of the opcode field of the third request may indicate the log data command. The previous environment data may indicate the log data. The log data may be stored in the persistent memory of the MCU123. The log data may include at least one of previous sensor data generated based on the previous sensing operation and previous telemetry data generated based on the previous monitoring operation.

In operation S351, the MCU123of the electronic device100may load the previous environment data. For example, the MCU123may read the log data stored in the persistent memory embedded in the MCU123. The MCU123may manage the log data as the previous environment data.

In operation S352, the MCU123of the electronic device100may encrypt the previous environment data. For example, the MCU123may encrypt the previous environment data based on the target security algorithm selected based on the first request in operation S310.

In operation S360, the MCU123of the electronic device100may provide a third response including the encrypted previous environment data to the BMC112.

In operation S361, the BMC112of the electronic device100may manage the storage device based on the encrypted previous environment data. For example, the BMC112may decrypt the encrypted previous environment data. The BMC112may check a physical status of the storage device or a reliability level of user data based on the decrypted previous environment data and may manage the storage device depending on the checked physical status or reliability level.

FIG.9is a flowchart describing a method of operating an electronic device according to an example embodiment of the disclosure. A method of operating an electronic device according to an example embodiment of the disclosure will be described with reference toFIG.9.

The electronic device100may include the BMC112and the MCU123. The BMC112and the MCU123may respectively correspond to the BMC112and the MCU123ofFIG.1. In detail, the electronic device100may include a host device and a storage device. The host device may include a processor and the BMC112. The storage device may include a storage controller and the MCU123. The processor and the storage controller may support the in-band communication. The BMC112and the MCU123may support the out-of-band communication.

In operation S410, the BMC112of the electronic device100may provide the MCU123with a request indicating the management of the environment data. For example, bits of the opcode field of the request may indicate the sensor data command, the log data command, the telemetry data command, the algorithm negotiation command, or the encryption enable command.

In operation S411, the MCU123of the electronic device100may fail to process the request in operation S410. The failure of the request in operation S410may occur. For example, the MCU123may fail to process the request in operation S410due to various factors.

In operation S412, the MCU123of the electronic device100may determine an error code corresponding to the failure in operation S411. The error code may indicate a factor causing the failure of the request in operation S411. This will be described in detail with reference toFIG.10.

In operation S420, the MCU123of the electronic device100may provide the BMC112with a response indicating the error code in operation S412.

FIG.10is a diagram describing a protocol of out-of-band communication according to an example embodiment of the disclosure. An error code according to the protocol of the out-of-band communication will be described with reference toFIG.10. The error code may be written in the status code field of the response provided through the out-of-band communication. The error code may be used when the request fails. The error code may indicate a factor causing the failure of the request.

In a first index (index 1), the error type may indicate an invalid command opcode. For example, the error type may indicate that a value of bits of the opcode field of the request received from the BMC is invalid. A value of the error code written in the status code field may be 03h.

In a 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. A value of the error code written in the status code field may be 04h.

In a 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 value other than a flag value corresponding to the request and a flag value corresponding to the response, the ROR field may be invalid. A value of the error code written in the status code field may be 04h.

In a 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. A value of the error code written in the status code field may be 04h.

In a fifth index (index 5), the error type may indicate an invalid command size. For example, the error type may indicate that a size of a message body of the request received from the BMC exceeds a reference size. Because the size of the message body is different from an expected size, the MCU may have difficulty in processing the request. A value of the error code written in the status code field may be 05h.

In a sixth index (index 6), the error type may indicate a vendor specific error. For example, the error type may indicate that the request received from the BMC is invalid as a result of the message integrity check for the request. When a result of the cyclic redundancy check (CRC) indicates that the request has integrity, the error type of the sixth index may be used. A value of the error code written in the status code field may be E1h.

In a seventh index (index 7), the error type may indicate a vendor specific error. For example, the error type may indicate that all the security algorithms supported by the BMC are not supported by the MCU. When the MCU is incapable of selecting the target security algorithm, the error type of the seventh index may be used. A value of the error code written in the status code field may be E2h.

In an eighth index (index 8), the error type may indicate a vendor specific error. For example, the error type may indicate the failure of the encryption by the MCU. After the encryption is enabled depending on the request of the BMC, when the MCU fails to encrypt the environment data or when the BMC fails to decrypt the encrypted environment data, the erase type of the eighth index may be used. A value of the error code written in the status code field may be E3h.

However, the disclosure is not limited thereto. For example, error codes indicating any other factors may be further included in addition to the error types described with reference toFIG.10.

FIG.11is a diagram describing fields of a protocol of out-of-band communication according to an example embodiment of the disclosure. Referring toFIG.11, the BMC112may provide the request RQ to the MCU123through the out-of-band communication. The request RQ may correspond to the request RQa ofFIG.6A, the request RQb ofFIG.6B, the request RQc ofFIG.6C, the request RQd ofFIG.6D, or the request RQe ofFIG.6E. The MCU123may fail to process the request RQ received from the BMC112. That is, the failure of the request RQ may occur.

The MCU123may provide a response RPf to the BMC112through the out-of-band communication. The response RPf may indicate the failure of the request RQ.

The response RPf may include at least one of the message type field, the IC field, the reserved field, the NVMe_MI message type field, the ROR field, the MEB field, the CIAP field, the status code field, the response body field, and the message integrity field. Features of the above fields are similar to those described with reference toFIGS.6A to6E, and thus, additional description will be omitted to avoid redundancy.

When the MCU123fails to process the request RQ, the MCU123may provide the BMC112with the response RPf including the status code field in which the error code is written. The error code may be one of the error codes described with reference toFIG.10.

FIG.12is a block diagram of an electronic device according to an example embodiment of the disclosure. Referring toFIG.12, an electronic device200may include a host device210and first to N-th storage devices220_1to220_N. Each of the first to N-th storage devices220_1to220_N may operate to be similar to the storage device120ofFIG.1.

The host device210may include a processor211and a BMC212. The processor211and the BMC212may respectively correspond to the processor111and the BMC112ofFIG.1.

The first storage device220_1may include a first storage controller221_1and a first MCU223_1. The first storage controller221_1may support the in-band communication with the processor211. The first MCU223_1may support the out-of-band communication with the BMC212.

The second storage device220_2may include a second storage controller221_2and a second MCU223_2. The second storage controller221_2may support the in-band communication with the processor211. The second MCU223_2may support the out-of-band communication with the BMC212.

The N-th storage device220_N may include an N-th storage controller221_N and an N-th MCU223_N. The N-th storage controller221_N may support the in-band communication with the processor211. The N-th MCU223_N may support the out-of-band communication with the BMC212. Herein, “N” may be irrelevant to the number of algorithms ofFIG.6Dand may be an arbitrary natural number.

The processor211of the host device210may support the in-band communication for each of the first to N-th storage controllers221_1to221_N.

The BMC212of the host device210may support the out-of-band communication for each of the first to N-th MCU223_1to223_N.

The host device210may independently manage the first to N-th storage devices220_1to220_N through the out-of-band communication.

For example, the method of operating the electronic device200may include providing, by the BMC212, a first request indicating the management of first environment data to the first MCU223_1through the out-of-band communication, providing, by the first MCU223_1, a first response corresponding to the first request to the BMC212through the out-of-band communication, providing, by the BMC212, a second request to the second MCU223_2indicating the management of second environment data through the out-of-band communication, and providing, by the second MCU223_2, a second response corresponding to the second request to the BMC212through the out-of-band communication.

According to an example embodiment of the disclosure, an electronic device supporting out-of-band communication and a method of operating the same are provided.

Also, an electronic device that supports the bidirectional communication between the BMC and the MCU, transfers a variety of information of a storage device through the out-of-band communication, and drives the MCU by using an individual power supply voltage and a method of operating the same are provided.

While the disclosure has been described with reference to embodiments thereof, it will be apparent to those of ordinary skill in the art that various changes and modifications may be made thereto without departing from the spirit and scope of the disclosure as set forth in the following claims.