KR20240013017A - 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
KR20240013017A
KR20240013017A KR1020230000283A KR20230000283A KR20240013017A KR 20240013017 A KR20240013017 A KR 20240013017A KR 1020230000283 A KR1020230000283 A KR 1020230000283A KR 20230000283 A KR20230000283 A KR 20230000283A KR 20240013017 A KR20240013017 A KR 20240013017A
Authority
KR
South Korea
Prior art keywords
mcu
request
bmc
data
band communication
Prior art date
Application number
KR1020230000283A
Other languages
Korean (ko)
Inventor
이경근
김범준
이승한
Original Assignee
삼성전자주식회사
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
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to US18/215,599 priority Critical patent/US20240028493A1/en
Priority to EP23185535.4A priority patent/EP4310658A1/en
Priority to CN202310887241.1A priority patent/CN117440263A/en
Publication of KR20240013017A publication Critical patent/KR20240013017A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 개시에 따르면, 전자 장치는 호스트 장치 및 스토리지 장치를 포함한다. 호스트 장치는 프로세서 및 BMC(Baseboard Management Controller)를 포함하고, 스토리지 장치는 스토리지 컨트롤러 및 MCU(Micro Controller Unit)를 포함하고, BMC 및 MCU는 아웃-오브-밴드 통신을 지원한다. 전자 장치의 동작하는 방법은, BMC에 의해, MCU에게 아웃-오브-밴드 통신을 통해 환경 데이터에 대한 정보를 포함하는 제1 요청을 제공하는 단계, 및 MCU에 의해, BMC에게 아웃-오브-밴드 통신을 통해 제1 요청에 대응하는 제1 응답을 제공하는 단계를 포함한다.According to the present disclosure, the electronic device includes a host device and a storage device. The host device includes a processor and a Baseboard Management Controller (BMC), and the storage device includes a storage controller and a Micro Controller Unit (MCU), and the BMC and MCU support out-of-band communication. A method of operating an electronic device includes providing, by the BMC, a first request containing information about environmental data via out-of-band communication to an MCU, and providing, by the MCU, to the BMC an out-of-band communication. and providing a first response corresponding to the first request via communication.

Figure P1020230000283
Figure P1020230000283

Description

아웃-오브-밴드 통신을 지원하는 전자 장치, 및 이의 동작하는 방법{ELECTRONIC DEVICE SUPPORTING OUT-OF-BAND COMMUNICATION, AND METHOD OF OPERATING THE SAME}Electronic device supporting out-of-band communication, and method of operating the same {ELECTRONIC DEVICE SUPPORTING OUT-OF-BAND COMMUNICATION, AND METHOD OF OPERATING THE SAME}

본 개시는 전자 장치에 관한 것으로, 좀 더 상세하게는 아웃-오브-밴드 통신을 지원하는 전자 장치, 및 이의 동작하는 방법에 관한 것이다.This disclosure relates to electronic devices, and more specifically, to electronic devices supporting out-of-band communication and methods of operating the same.

메모리 장치는 쓰기 요청에 따라 데이터를 저장하고, 읽기 요청에 따라 저장된 데이터를 출력한다. 예를 들어, 메모리 장치는 DRAM(Dynamic Random Access Memory), SRAM(Static RAM), 등과 같이 전원 공급이 차단되면 저장하고 있던 데이터가 소멸되는 휘발성 메모리 장치, 및 플래시 메모리 장치, PRAM(Phase-change RAM), MRAM(Magnetic RAM), RRAM(Resistive RAM), 등과 같이 전원 공급이 차단되어도 저장하고 있던 데이터를 유지하는 비-휘발성 메모리 장치로 구분된다.A memory device stores data in response to write requests and outputs the stored data in response to read requests. For example, memory devices include volatile memory devices, such as DRAM (Dynamic Random Access Memory), SRAM (Static RAM), whose stored data is lost when the power supply is cut off, and flash memory devices, PRAM (Phase-change RAM). ), MRAM (Magnetic RAM), RRAM (Resistive RAM), etc. are classified into non-volatile memory devices that retain stored data even when the power supply is cut off.

비-휘발성 메모리 장치는 대용량의 데이터를 저장하는 스토리지 장치로도 지칭될 수 있다. 스토리지 장치는 호스트 장치와 통신할 수 있다. 호스트 장치의 운영 체제가 스토리지 장치와 통신하는 것은 인-밴드(in-band) 관리 방법으로 지칭될 수 있고, 호스트 장치의 BMC(Baseboard Management Controller)가 운영 체제를 사용하지 않고 스토리지 장치와 통신하는 것은 아웃-오브-밴드(out-of-band) 관리 방법으로 지칭될 수 있다.Non-volatile memory devices may also be referred to as storage devices that store large amounts of data. A storage device can communicate with a host device. The host device's operating system communicating with the storage device can be referred to as an in-band management method, while the host device's Baseboard Management Controller (BMC) communicating with the storage device without using the operating system can be referred to as an in-band management method. It may be referred to as an out-of-band management method.

본 개시의 일 실시 예에 따르면, 아웃-오브-밴드 통신을 지원하는 전자 장치, 및 이의 동작하는 방법이 제공된다.According to an embodiment of the present disclosure, an electronic device supporting out-of-band communication and a method of operating the same are provided.

본 개시의 일 실시 예에 따르면, 전자 장치는 호스트 장치 및 스토리지 장치를 포함한다. 상기 호스트 장치는 프로세서 및 BMC(Baseboard Management Controller)를 포함하고, 상기 스토리지 장치는 스토리지 컨트롤러 및 MCU(Micro Controller Unit)를 포함하고, 상기 BMC 및 상기 MCU는 아웃-오브-밴드 통신을 지원한다. 상기 전자 장치의 동작하는 방법은, 상기 BMC에 의해, 상기 MCU에게 상기 아웃-오브-밴드 통신을 통해 환경 데이터에 대한 정보를 포함하는 제1 요청을 제공하는 단계, 및 상기 MCU에 의해, 상기 BMC에게 상기 아웃-오브-밴드 통신을 통해 상기 제1 요청에 대응하는 제1 응답을 제공하는 단계를 포함한다.According to one embodiment of the present disclosure, the electronic device includes a host device and a storage device. The host device includes a processor and a Baseboard Management Controller (BMC), and the storage device includes a storage controller and a Micro Controller Unit (MCU), and the BMC and MCU support out-of-band communication. The method of operating the electronic device includes providing, by the BMC, a first request containing information about environmental data to the MCU through the out-of-band communication, and providing, by the MCU, a first request containing information about environmental data to the BMC. and providing a first response corresponding to the first request to the user through the out-of-band communication.

본 개시의 일 실시 예에 따르면, 전자 장치는 호스트 장치, 제1 스토리지 장치, 및 제2 스토리지 장치를 포함한다. 상기 호스트는 프로세서 및 BMC(Baseboard Management Controller)를 포함하고, 상기 제1 스토리지 장치는 제1 스토리지 컨트롤러 및 제1 MCU(Micro Controller Unit)를 포함하고, 상기 제2 스토리지 장치는 제2 스토리지 컨트롤러 및 제2 MCU를 포함하고, 상기 프로세서, 상기 제1 스토리지 컨트롤러, 및 상기 제2 스토리지 컨트롤러는 인-밴드 통신을 지원하고, 상기 BMC, 상기 제1 MCU, 및 상기 제2 MCU는 아웃-오브-밴드 통신을 지원한다. 상기 전자 장치의 동작하는 방법은, 상기 BMC에 의해, 상기 제1 MCU에게 상기 아웃-오브-밴드 통신을 통해 제1 환경 데이터에 대한 정보를 포함하는 제1 요청을 제공하는 단계, 상기 제1 MCU에 의해, 상기 BMC에게 상기 아웃-오브-밴드 통신을 통해 상기 제1 요청에 대응하는 제1 응답을 제공하는 단계, 상기 BMC에 의해, 상기 제2 MCU에게 상기 아웃-오브-밴드 통신을 통해 제2 환경 데이터에 대한 정보를 포함하는 제2 요청을 제공하는 단계, 및 상기 제2 MCU에 의해, 상기 BMC에게 상기 아웃-오브-밴드 통신을 통해 상기 제2 요청에 대응하는 제2 응답을 제공하는 단계를 포함한다.According to one embodiment of the present disclosure, the electronic device includes a host device, a first storage device, and a second storage device. The host includes a processor and a Baseboard Management Controller (BMC), the first storage device includes a first storage controller and a first Micro Controller Unit (MCU), and the second storage device includes a second storage controller and a first Micro Controller Unit (MCU). Includes 2 MCU, wherein the processor, the first storage controller, and the second storage controller support in-band communication, and the BMC, the first MCU, and the second MCU support out-of-band communication. Supports. The method of operating the electronic device includes providing, by the BMC, a first request including information about first environment data to the first MCU through the out-of-band communication, the first MCU providing a first response corresponding to the first request to the BMC through the out-of-band communication, by the BMC, to the second MCU through the out-of-band communication. 2 providing a second request containing information about environment data, and providing, by the second MCU, a second response corresponding to the second request to the BMC through the out-of-band communication. Includes steps.

본 개시의 일 실시 예에 따르면, 전자 장치는 프로세서 및 BMC(Baseboard Management Controller)를 포함하는 호스트 장치; 및 스토리지 컨트롤러 및 MCU(Micro Controller Unit)를 포함하는 스토리지 장치를 포함한다. 상기 BMC 및 상기 MCU는 아웃-오브-밴드 통신을 지원하고, 상기 BMC는 상기 MCU에게 상기 아웃-오브-밴드 통신을 통해 환경 데이터에 대한 정보를 포함하는 요청을 제공하도록 구성되고, 그리고 상기 MCU는 상기 BMC에게 상기 아웃-오브-밴드 통신을 통해 상기 요청에 대응하는 응답을 제공하도록 구성된다.According to an embodiment of the present disclosure, an electronic device includes a host device including a processor and a Baseboard Management Controller (BMC); and a storage device including a storage controller and a Micro Controller Unit (MCU). The BMC and the MCU support out-of-band communication, the BMC is configured to provide a request containing information about environmental data to the MCU through the out-of-band communication, and the MCU It is configured to provide a response corresponding to the request to the BMC through the out-of-band communication.

본 개시의 일 실시 예에 따르면, 아웃-오브-밴드 통신을 지원하는 전자 장치, 및 이의 동작하는 방법이 제공된다.According to an embodiment of the present disclosure, an electronic device supporting out-of-band communication and a method of operating the same are provided.

또한, BMC및 MCU 사이의 양방향 통신을 지원하고, 아웃-오브-밴드 통신을 통해 스토리지 장치의 다양한 정보를 전송하고, 개별적인 전원 전압으로 MCU를 동작시키는 전자 장치, 및 이의 동작하는 방법이 제공된다.Additionally, an electronic device that supports two-way communication between a BMC and an MCU, transmits various information of a storage device through out-of-band communication, and operates the MCU with an individual power voltage, and a method of operating the same are provided.

도 1은 본 개시의 실시 예에 따른 전자 장치의 블록도이다.
도 2는 일반적인 전자 장치의 블록도이다.
도 3은 본 개시의 일부 실시 예들에 따른 전자 장치의 블록도이다.
도 4는 본 개시의 일부 실시 예들에 따른 전자 장치의 동작하는 방법을 설명하는 순서도이다.
도 5는 본 개시의 일부 실시 예들에 따른 아웃-오브-밴드 통신의 프로토콜을 설명하는 도면이다.
도 6a 내지 도 6e는 본 개시의 일부 실시 예들에 따른 아웃-오브-밴드 통신의 프로토콜의 필드들을 설명하는 도면들이다.
도 7은 본 개시의 일부 실시 예들에 따른 전자 장치의 동작하는 방법을 설명하는 순서도이다.
도 8은 본 개시의 일부 실시 예들에 따른 전자 장치의 동작하는 방법을 설명하는 순서도이다.
도 9는 본 개시의 일부 실시 예들에 따른 전자 장치의 동작하는 방법을 설명하는 순서도이다.
도 10은 본 개시의 일부 실시 예들에 따른 아웃-오브-밴드 통신의 프로토콜을 설명하는 도면이다.
도 11은 본 개시의 일부 실시 예들에 따른 아웃-오브-밴드 통신의 프로토콜의 필드들을 설명하는 도면이다.
도 12는 본 개시의 일부 실시 예들에 따른 전자 장치의 블록도이다.
1 is a block diagram of an electronic device according to an embodiment of the present disclosure.
Figure 2 is a block diagram of a general electronic device.
3 is a block diagram of an electronic device according to some embodiments of the present disclosure.
FIG. 4 is a flowchart explaining a method of operating an electronic device according to some embodiments of the present disclosure.
FIG. 5 is a diagram illustrating a protocol for out-of-band communication according to some embodiments of the present disclosure.
6A to 6E are diagrams illustrating fields of an out-of-band communication protocol according to some embodiments of the present disclosure.
FIG. 7 is a flowchart explaining a method of operating an electronic device according to some embodiments of the present disclosure.
FIG. 8 is a flowchart explaining a method of operating an electronic device according to some embodiments of the present disclosure.
FIG. 9 is a flowchart explaining a method of operating an electronic device according to some embodiments of the present disclosure.
FIG. 10 is a diagram illustrating a protocol for out-of-band communication according to some embodiments of the present disclosure.
FIG. 11 is a diagram illustrating fields of a protocol for out-of-band communication according to some embodiments of the present disclosure.
12 is a block diagram of an electronic device according to some embodiments of the present disclosure.

이하에서, 본 개시의 기술 분야에서 통상의 지식을 가진 자가 본 개시의 실시 예들을 용이하게 실시할 수 있을 정도로, 본 개시의 실시 예들이 명확하고 상세하게 기재될 것이다.Hereinafter, embodiments of the present disclosure will be described clearly and in detail so that a person skilled in the art can easily practice the embodiments of the present disclosure.

도 1은 본 개시의 실시 예에 따른 전자 장치의 블록도이다. 도 1을 참조하면, 전자 장치(100)는 호스트 장치(110) 및 스토리지 장치(120)를 포함할 수 있다. 전자 장치(100)는 스토리지 시스템, 서버 시스템, 데이터베이스 서버 등과 같이 대용량의 사용자 데이터(UD)를 관리하도록 구성된 장치일 수 있다. 사용자 데이터(UD)는 이미지, 비디오, 텍스트, 음성 등 사용자에게 제공될 다양한 정보를 포함할 수 있다.1 is a block diagram of an electronic device according to an embodiment of the present disclosure. Referring to FIG. 1 , the electronic device 100 may include a host device 110 and a storage device 120. The electronic device 100 may be a device configured to manage large amounts of user data (UD), such as a storage system, server system, database server, etc. User data (UD) may include various information to be provided to users, such as images, video, text, and voice.

호스트 장치(110)는 전자 장치(100)의 제반 동작을 제어할 수 있다. 예를 들어, 호스트 장치(110)는 스토리지 장치(120)에 데이터를 저장하거나, 스토리지 장치(120)에 저장된 데이터를 읽거나, 또는 스토리지 장치(120)에 저장된 데이터의 신뢰성을 유지하기 위해 스토리지 장치(120)의 환경 데이터를 관리할 수 있다. The host device 110 can control overall operations of the electronic device 100. For example, the host device 110 stores data in the storage device 120, reads data stored in the storage device 120, or stores data in the storage device 120 to maintain the reliability of the data stored in the storage device 120. (120) environmental data can be managed.

환경 데이터는 전압, 전류, 온도, 습도 등과 같은 물리적인 환경 정보를 포함할 수 있다. 물리적인 환경 정보는 센서 데이터(SD)로도 지칭될 수 있다. 환경 데이터는 프로그램/소거(P/E; program/erase) 사이클, 프로그램 카운트 정보, 소거 카운트 정보, 읽기 카운트 정보, 에러 비트 카운트 정보, 및 문턱 전압 산포 정보 등과 같은 헬스 정보를 포함할 수 있다. 헬스 정보는 사용자 데이터(UD)의 신뢰성 관리 동작에 사용될 수 있다. 헬스 정보는 텔레메트리 데이터(TD)로도 지칭될 수 있다.Environmental data may include physical environmental information such as voltage, current, temperature, humidity, etc. Physical environment information may also be referred to as sensor data (SD). Environmental data may include health information such as program/erase (P/E) cycle, program count information, erase count information, read count information, error bit count information, and threshold voltage distribution information. Health information can be used in reliability management operations of user data (UD). Health information may also be referred to as telemetry data (TD).

호스트 장치(110)는 프로세서(111) 및 BMC(Baseboard Management Controller)(112)를 포함할 수 있다. 프로세서(111) 및 BMC(112)는 서로 통신할 수 있다.The host device 110 may include a processor 111 and a Baseboard Management Controller (BMC) 112. Processor 111 and BMC 112 may communicate with each other.

프로세서(111)는 스토리지 장치(120)에 데이터를 저장하거나 또는 스토리지 장치(120)에 저장된 데이터를 읽을 수 있다. 예를 들어, 프로세서(111)는 CPU(central processing unit)로 구현될 수 있다. 프로세서(111)는 운영 체제(OS; operating system)를 실행할 수 있고, The processor 111 may store data in the storage device 120 or read data stored in the storage device 120 . For example, the processor 111 may be implemented as a central processing unit (CPU). The processor 111 can run an operating system (OS),

운영 체제(OS)는 스토리지 장치(120)와의 인-밴드 통신(in-band communication)을 지원할 수 있다. 인-밴드 통신은 호스트 장치(110)의 프로세서(111) 및 스토리지 장치(120)의 스토리지 컨트롤러(121) 사이의 통신을 가리킬 수 있고, 운영 체제를 사용하는 통신일 수 있다.The operating system (OS) may support in-band communication with the storage device 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, and may be communication using an operating system.

BMC(112)는 스토리지 장치(120)의 환경 데이터를 관리할 수 있다. 예를 들어, BMC(112)는 MCU(123)에게 감지 동작 또는 모니터링 동작을 요청할 수 있고, MCU(123)로부터 환경 데이터를 수신하고, 환경 데이터를 프로세서(111)에게 제공할 수 있다. 프로세서(111)에 의해 실행되는 운영 체제는 BMC(112)에 의해 획득된 환경 데이터에 기초하여 스토리지 장치(120)를 관리할 수 있다.The BMC 112 may manage environmental data of the storage device 120. For example, the BMC 112 may request a sensing operation or a monitoring operation from the MCU 123, receive environmental data from the MCU 123, and provide the environmental data to the processor 111. The operating system running by the processor 111 may manage the storage device 120 based on environmental data obtained by the BMC 112.

BMC(112)는 스토리지 장치(120)와의 아웃-오브-밴드 통신(out-of-band communication)을 지원할 수 있다. 아웃-오브-밴드 통신은 호스트 장치(110)의 BMC(112) 및 스토리지 장치(120)의 MCU(123) 사이의 통신을 가리킬 수 있고, 운영 체제를 사용하지 않는 통신일 수 있다. 아웃-오브-밴드 통신을 위한 인터페이스는 인-밴드 통신을 위한 인터페이스와 별도로 구비될 수 있다.BMC 112 may support out-of-band communication 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 may be communication that does not use an operating system. The interface for out-of-band communication may be provided separately from the interface for in-band communication.

일부 실시 예들에서, 아웃-오브-밴드 통신은 다양한 프로토콜들을 지원할 수 있다. 예를 들어, 아웃-오브-밴드 통신은 OCP(Open Computer Project) 표준에 따른 프로토콜을 지원할 수 있다. 아웃-오브-밴드 통신은 PLDM(Platform Level Data Model) 표준, NC-SI(Network Controller Sideband Interface) 표준, 레드피시(Redfish) 표준, NVMe_MI(Non-Volatile Memory Express Management Interface) 표준, MCTP(Management Component Transport Protocol) 표준 등과 같은 다양한 종류의 프로토콜들을 지원할 수 있다.In some embodiments, out-of-band communication may support various protocols. For example, out-of-band communication may support protocols according to the Open Computer Project (OCP) standard. Out-of-band communication uses the PLDM (Platform Level Data Model) standard, NC-SI (Network Controller Sideband Interface) standard, Redfish standard, NVMe_MI (Non-Volatile Memory Express Management Interface) standard, and MCTP (Management Component) standard. It can support various types of protocols such as Transport Protocol (Transport Protocol) standards.

스토리지 장치(120)는 스토리지 컨트롤러(121), 비-휘발성 메모리 장치(122), MCU(Micro Controller Unit)(123), 및 센서 장치(124)를 포함할 수 있다.The storage device 120 may include a storage controller 121, a non-volatile memory device 122, a micro controller unit (MCU) 123, and a sensor device 124.

스토리지 컨트롤러(121)는 프로세서(111)의 제어에 따라 스토리지 장치(120)의 제반 동작을 제어할 수 있다. 예를 들어, 스토리지 컨트롤러(121)는 프로세서(111)의 제어에 따라 비-휘발성 메모리 장치(122)에 사용자 데이터(UD)를 저장하거나, 비-휘발성 메모리 장치(122)에 저장된 사용자 데이터(UD)를 읽거나, 또는 비-휘발성 메모리 장치(122)의 모니터링 동작을 수행함으로써 텔레메트리 데이터(TD)를 생성할 수 있다. 모니터링 동작은 비-휘발성 메모리 장치(122)의 문턱 전압 산포의 열화 수준을 확인하는 헬스 체크 동작일 수 있다. 스토리지 컨트롤러(121)는 메인 컨트롤러로도 지칭될 수 있다.The storage controller 121 may control overall operations of the storage device 120 according to the control of the processor 111. For example, the storage controller 121 stores user data (UD) in the non-volatile memory device 122 under the control of the processor 111, or stores user data (UD) stored in the non-volatile memory device 122. ), or by performing a monitoring operation of the non-volatile memory device 122, telemetry data (TD) can be generated. The monitoring operation may be a health check operation that checks the level of deterioration of the threshold voltage distribution of the non-volatile memory device 122. The storage controller 121 may also be referred to as a main controller.

스토리지 컨트롤러(121)는 프로세서(111), 비-휘발성 메모리 장치(122), 및 MCU(123)와 통신할 수 있다. 스토리지 컨트롤러(121)는 프로세서(111)와의 인-밴드 통신을 지원할 수 있다. 스토리지 컨트롤러(121)는 비-휘발성 메모리 장치(122)의 모니터링 동작을 수행할 수 있다. 스토리지 컨트롤러(121)는 MCU(123)에게 텔레메트리 데이터(TD)를 제공할 수 있다.Storage controller 121 may communicate with processor 111, non-volatile memory device 122, and MCU 123. The storage controller 121 may support in-band communication with the processor 111. The storage controller 121 may perform a monitoring operation of the non-volatile memory device 122. The storage controller 121 may provide telemetry data (TD) to the MCU 123.

일부 실시 예들에서, 텔레메트리 데이터(TD)는 P/E 사이클 정보, 프로그램 카운트 정보, 소거 카운트 정보, 읽기 카운트 정보, 에러 비트 카운트 정보, 및 문턱 전압 산포 정보 중 적어도 하나를 포함할 수 있다.In some embodiments, 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, and threshold voltage distribution information.

비-휘발성 메모리 장치(122)는 스토리지 컨트롤러(121)의 제어에 따라 사용자 데이터(UD)를 저장하거나, 또는 스토리지 컨트롤러(121)에게 사용자 데이터(UD)를 제공할 수 있다. 비-휘발성 메모리 장치(122)의 메모리 셀들의 문턱 전압 산포는 사용자 데이터(UD)에 대응할 수 있다. 메모리 셀들의 문턱 전압 산포는 리텐션(retention), 읽기 교란(read disturb), HCI(hot carrier injection) 등 다양한 요인들에 의해 변할 수 있다. 스토리지 컨트롤러(121)는 비-휘발성 메모리 장치(122)의 모니터링 동작에 의해 텔레메트리 데이터(TD)를 획득함으로써, 비-휘발성 메모리 장치(122)의 열화 정도를 관리할 수 있다.The non-volatile memory device 122 may store user data (UD) under control of the storage controller 121 or may provide user data (UD) to the storage controller 121 . Threshold voltage distribution of memory cells of the non-volatile memory device 122 may correspond to user data UD. The threshold voltage distribution of memory cells can change due to various factors such as retention, read disturbance, and hot carrier injection (HCI). The storage controller 121 may manage the degree of deterioration of the non-volatile memory device 122 by acquiring telemetry data (TD) through a monitoring operation of the non-volatile memory device 122.

일부 실시 예들에서, 비-휘발성 메모리 장치(122)는 낸드 플래시 메모리일 수 있으나, 본 개시의 범위가 이에 제한되는 것은 아니며, 비-휘발성 메모리 장치(122)는 PRAM(Phase-change Random Access Memory), MRAM(Magnetic Random Access Memory), RRAM(Resistive Random Access Memory), FRAM(Ferroelectric Random Access Memory) 등과 같이 전원 공급이 차단되어도 저장하고 있던 데이터를 유지할 수 있는 다양한 저장 장치들 중 하나일 수 있다.In some embodiments, the non-volatile memory device 122 may be NAND flash memory, but the scope of the present disclosure is not limited thereto, and the non-volatile memory device 122 may be a phase-change random access memory (PRAM). , It may be one of a variety of storage devices that can maintain stored data even when the power supply is cut off, such as MRAM (Magnetic Random Access Memory), RRAM (Resistive Random Access Memory), and FRAM (Ferroelectric Random Access Memory).

MCU(123)는 스토리지 장치(120)의 상태를 모니터링하고, 그리고 스토리지 장치(120)에서 발생한 이벤트를 관리할 수 있다. 이벤트는 전압 변화, 전류 변화, 습도 변화, 온도 변화, 파워-오프 등을 포함할 수 있다. MCU(123)는 BMC(112)로부터 환경 데이터에 관한 요청을 수신하고, BMC(112)의 요청에 대응하는 응답을 BMC(112)에게 제공할 수 있다.The MCU 123 may monitor the status of the storage device 120 and manage events occurring in the storage device 120 . Events may include voltage changes, current changes, humidity changes, temperature changes, power-off, etc. The MCU 123 may receive a request for environmental data from the BMC 112 and provide a response corresponding to the request from the BMC 112 to the BMC 112.

MCU(123)는 BMC(112), 스토리지 컨트롤러(121), 및 센서 장치(124)와 통신할 수 있다. MCU(123)는 BMC(112)와의 아웃-오브-밴드 통신을 지원할 수 있다. MCU(123)는 스토리지 컨트롤러(121)로부터 텔레메트리 데이터(TD)를 수신할 수 있다. MCU(123)는 센서 장치(124)로부터 센서 데이터(SD)를 수신할 수 있다. MCU 123 may communicate with BMC 112, storage controller 121, and sensor device 124. MCU 123 may support out-of-band communication with BMC 112. The MCU 123 may receive telemetry data (TD) from the storage controller 121. The MCU 123 may receive sensor data (SD) from the sensor device 124.

MCU(123)는 영구 메모리(persistent memory)를 포함할 수 있다. 예를 들어, 영구 메모리는 EEPROM(Electrically Erasable Programmable Read-Only Memory)로 구현될 수 있다. MCU(123)는 텔레메트리 데이터(TD) 및 센서 데이터(SD) 중 적어도 하나를 로그 데이터(LD)로서 영구 메모리에 저장할 수 있다. 로그 데이터(LD)는 이전 시점의 텔레메트리 데이터 및 이전 시점의 센서 데이터 중 적어도 하나를 포함할 수 있다. 예를 들어, 로그 데이터(LD)는 스토리지 컨트롤러(121)의 이전 모니터링 동작에 의해 생성된 텔레메트리 데이터 및 센서 장치(124)의 이전 감지 동작에 의해 생성된 센서 데이터 중 적어도 하나를 포함할 수 있다.The MCU 123 may include persistent memory. For example, persistent memory can be implemented as Electrically Erasable Programmable Read-Only Memory (EEPROM). The MCU 123 may store at least one of telemetry data (TD) and sensor data (SD) as log data (LD) in permanent memory. Log data LD may include at least one of telemetry data from a previous time and sensor data from 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 storage controller 121 and sensor data generated by a previous sensing operation of the sensor device 124. there is.

MCU(123)는 BMC(112)의 요청에 따라, 환경 데이터를 BMC(112)에게 제공할 수 있다. 환경 데이터는 센서 데이터(SD), 로그 데이터(LD), 또는 텔레메트리 데이터(TD)를 포함할 수 있다. MCU(123)는 센서 데이터(SD), 로그 데이터(LD), 및 텔레메트리 데이터(TD)의 보안 동작을 관리할 수 있다.The MCU 123 may provide environmental data to the BMC 112 at the request of the BMC 112. Environmental data may include sensor data (SD), log data (LD), or telemetry data (TD). The MCU 123 may manage security operations of sensor data (SD), log data (LD), and telemetry data (TD).

센서 장치(124)는 스토리지 장치(120)의 물리적인 환경을 감지하고 센서 데이터(SD)를 생성할 수 있다. 센서 장치(124)는 MCU(123)와 통신할 수 있다. 센서 장치(124)는 센서 데이터(SD)를 MCU(123)에게 제공할 수 있다.The sensor device 124 may sense the physical environment of the storage device 120 and generate sensor data (SD). The sensor device 124 may communicate with the MCU 123. The sensor device 124 may provide sensor data (SD) to the MCU 123.

일부 실시 예들에서, 센서 데이터(SD)는 전압 센서 데이터, 전류 센서 데이터, 온도 센서 데이터, 및 습도 센서 데이터 중 적어도 하나를 포함할 수 있다.In some embodiments, the sensor data SD may include at least one of voltage sensor data, current sensor data, temperature sensor data, and humidity sensor data.

상술된 바와 같이, 본 개시의 실시 예에 따르면, 전자 장치(100)는 호스트 장치(110) 및 스토리지 장치(120)를 포함할 수 있다. 호스트 장치(110) 및 스토리지 장치(120)는 인-밴드 통신 및 아웃-오브-밴드 통신을 지원할 수 있다. 호스트 장치(110)의 BMC(112) 및 스토리지 장치(120)의 MCU(123)는 아웃-오브-밴드 통신을 통해서 양방향으로 다양한 정보를 전송할 수 있다.As described above, according to an embodiment of the present disclosure, the electronic device 100 may include a host device 110 and a storage device 120. The host device 110 and the 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 transmit various information in both directions through out-of-band communication.

도 2는 일반적인 전자 장치의 블록도이다. 도 2를 참조하면, 일반적인 전자 장치(ED)가 설명된다. 본 개시의 이해를 돕기 위해 일반적인 전자 장치(ED)가 설명되지만, 일반적인 전자 장치(ED)는 선행문헌을 이루지 않는 구성 요소를 포함할 수 있으며, 일반적인 전자 장치(ED)에 의해 본 개시의 범위가 제한되는 것으로 의도되지 않는다.Figure 2 is a block diagram of a general electronic device. Referring to Figure 2, a typical electronic device (ED) is described. Although a general electronic device (ED) is described to facilitate understanding of the present disclosure, the general electronic device (ED) may include components that do not constitute prior art, and the scope of the present disclosure may be extended by the general electronic device (ED). It is not intended to be limiting.

일반적인 전자 장치(ED)는 호스트 장치 및 스토리지 장치를 포함할 수 있다. 호스트 장치는 프로세서 및 BMC를 포함할 수 있다. 스토리지 장치는 스토리지 컨트롤러, 비-휘발성 메모리 장치, MCU, 센서 장치, 및 영구 메모리를 포함할 수 있다.A typical electronic device (ED) may include a host device and a storage device. The host device may include a processor and BMC. The storage device may include a storage controller, non-volatile memory device, MCU, sensor device, and persistent memory.

호스트 장치의 프로세서 및 스토리지 장치의 스토리지 컨트롤러는 인-밴드 통신을 지원할 수 있다. 인-밴드 통신을 통해서, 프로세서는 스토리지 장치에서 수행될 동작을 가리키는 커맨드(예를 들어, 읽기 커맨드, 쓰기 커맨드, 소거 커맨드 등)를 포함하는 요청을 스토리지 컨트롤러에게 제공할 수 있다. 인-밴드 통신을 통해서, 스토리지 컨트롤러는 비-휘발성 메모리 장치로부터 수신된 사용자 데이터(UD), 및 MCU로부터 수신된 환경 데이터를 프로세서에게 제공할 수 있다. 환경 데이터는 센서 장치의 감지 동작에 의해 획득된 센서 데이터(SD) 및 스토리지 컨트롤러의 모니터링 동작에 의해 획득된 텔레메트리 데이터(TD)중 적어도 하나를 포함할 수 있다.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 the storage controller with a request containing a command (eg, read command, write command, erase command, etc.) indicating an operation to be performed on the storage device. Through in-band communication, the storage controller can provide user data (UD) received from the non-volatile memory device and environmental data received from the MCU to the processor. The environmental data may include at least one of sensor data (SD) acquired through a sensing operation of a sensor device and telemetry data (TD) acquired through a monitoring operation of a storage controller.

호스트 장치의 BMC 및 스토리지 장치의 영구 메모리는 제한된 통신을 지원할 수 있다. 제한된 통신을 통해서, 영구 메모리는 영구 메모리에 저장된 정보(예를 들어, 영구 메모리가 온도 센서를 포함하는 경우, 온도 정보)를 BMC에게 제공할 수 있다. 제한된 통신은 영구 메모리로부터 BMC로의 단방향 통신일 수 있다.The host device's BMC and the storage device's persistent memory may support limited communications. Through limited communications, the persistent memory may provide the BMC with information stored in the persistent memory (e.g., temperature information if the persistent memory includes a temperature sensor). Limited communication may be one-way communication from persistent memory to the BMC.

일반적인 전자 장치(ED)에서, 호스트 장치의 BMC 및 스토리지 장치의 MCU는 직접적으로 통신하지 못할 수 있다. BMC는 프로세서 및 스토리지 컨트롤러를 통해서 MCU에게 환경 데이터의 관리를 가리키는 요청을 제공할 수 있다. MCU는 스토리지 컨트롤러 및 프로세서를 통해서 BMC의 요청에 대응하는 응답을 제공할 수 있다.In a typical electronic device (ED), the host device's BMC and the storage device's MCU may not communicate directly. The BMC can provide requests directing the management of environmental data to the MCU through the processor and storage controller. The MCU can provide a response corresponding to the BMC's request through the storage controller and processor.

상술된 바와 같이, 일반적인 전자 장치(ED)는 BMC 및 MCU 사이의 아웃-오브-밴드 통신을 지원하지 않을 수 있다. BMC 및 MCU는 프로세서 및 스토리지 컨트롤러 사이의 인-밴드 통신을 통해서 간접적으로 통신할 수 있다. 보다 상세하게는, 일반적인 전자 장치(ED)에서, BMC 및 MCU가 환경 데이터를 관리하기 위해 인-밴드 통신의 대역폭을 소모함으로써 사용자 데이터(UD)의 I/O(input/output) 속도를 저하시킬 수 있고, BMC 및 MCU 사이의 직접적인 통신이 지원되지 않을 수 있고, BMC는 스토리지 장치와의 양방향 통신을 지원하지 않을 수 있고, BMC가 영구 메모리로부터 수신하는 정보의 종류는 MCU에 의해 관리되는 정보의 종류보다 적을 수 있다. 일반적인 전자 장치(ED)의 인-밴드 통신 및 제한된 통신은 고객 또는 제조사의 다양한 요구를 만족시키지 못할 수 있다.As described above, typical electronic devices (EDs) may not support out-of-band communication between the BMC and MCU. The BMC and MCU can communicate indirectly through in-band communication between the processor and storage controller. More specifically, in a typical electronic device (ED), the BMC and MCU consume the bandwidth of in-band communication to manage environmental data, thereby reducing the input/output (I/O) speed of user data (UD). direct communication between the BMC and MCU may not be supported, the BMC may not support two-way communication with storage devices, and the type of information the BMC receives from persistent memory may be different from that of information managed by the MCU. There may be less than the type. The in-band communication and limited communication of typical electronic devices (EDs) may not satisfy the diverse needs of customers or manufacturers.

도 3은 본 개시의 일부 실시 예들에 따른 전자 장치의 블록도이다. 도 3을 참조하면, 전자 장치(100)는 호스트 장치(110) 및 스토리지 장치(120)를 포함할 수 있다. 호스트 장치(110)는 프로세서(111), BMC(112), 및 전원 공급 장치(113)를 포함할 수 있다. 스토리지 장치(120)는 스토리지 컨트롤러(121), 비-휘발성 메모리 장치(122), MCU(123), 및 센서 장치(124)를 포함할 수 있다.3 is a block diagram of an electronic device according to some embodiments of the present disclosure. Referring to FIG. 3 , the electronic device 100 may include a host device 110 and a storage device 120. The 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.

프로세서(111), BMC(112), 스토리지 컨트롤러(121), 비-휘발성 메모리 장치(122), MCU(123), 및 센서 장치(124)는 도 1의 프로세서(111), BMC(112), 스토리지 컨트롤러(121), 비-휘발성 메모리 장치(122), MCU(123), 및 센서 장치(124)에 대응할 수 있다.The processor 111, BMC 112, storage controller 121, non-volatile memory device 122, MCU 123, and sensor device 124 are the processor 111, BMC 112 of FIG. It may correspond to the storage controller 121, non-volatile memory device 122, MCU 123, and sensor device 124.

전원 공급 장치(113)는 메인 전원 공급기 및 보조 전원 공급기를 포함할 수 있다. 메인 전원 공급기는 제1 전원 전압(VDD1)을 스토리지 장치(120)에게 제공할 수 있다. 스토리지 장치(120)의 스토리지 컨트롤러(121)는 제1 전원 전압(VDD1)에 의해 구동될 수 있다. 보조 전원 공급기는 제2 전원 전압(VDD2)을 스토리지 장치(120)에게 제공할 수 있다. 스토리지 장치(120)의 MCU(123)는 제2 전원 전압(VDD2)에 의해 구동될 수 있다. The power supply device 113 may include a main power supply and an auxiliary power supply. The main power supply may provide the first power voltage (VDD1) to the storage device 120. The storage controller 121 of the storage device 120 may be driven by the first power voltage VDD1. The auxiliary power supply may provide a second power voltage (VDD2) to the storage device 120. The MCU 123 of the storage device 120 may be driven by the second power voltage VDD2.

제2 전원 전압(VDD2)은 제1 전원 전압(VDD1)과 별도로 제공되는 전원 전압일 수 있다. 예를 들어, 메인 전원 공급기는 제1 공급 라인을 통해서 제1 전원 전압(VDD1)을 스토리지 장치(120)에게 제공할 수 있다. 제1 전원 전압(VDD1)의 크기는 약 5V 또는 약 3.3V일 수 있다. 보조 전원 공급기는 제2 공급 라인을 통해서 제2 전원 전압(VDD2)을 스토리지 장치(120)에게 제공할 수 있다. 제2 전원 전압(VDD2)의 크기는 약 3.3V일 수 있다.The second power voltage VDD2 may be a power voltage provided separately from the first power voltage VDD1. For example, the main power supply may provide the first power voltage (VDD1) to the storage device 120 through the first supply line. The size of the first power voltage VDD1 may be about 5V or about 3.3V. The auxiliary power supply may provide a second power voltage (VDD2) to the storage device 120 through a second supply line. The size of the second power voltage VDD2 may be about 3.3V.

스토리지 컨트롤러(121)는 상태 모니터링 장치를 포함할 수 있다. 예를 들어, 상태 모니터링 장치는 비-휘발성 메모리 장치(122)의 헬스 체크 동작을 수행하는 소프트웨어 장치 또는 펌웨어 모듈로 구현될 수 있다. 상태 모니터링 장치는 비-휘발성 메모리 장치(122)의 모니터링 동작을 수행함으로써 텔레메트리 데이터(TD)를 생성할 수 있다. 상태 모니터링 장치는 MCU(123)에게 텔레메트리 데이터(TD)를 제공할 수 있다. MCU(123)는 영구 메모리에 로그 데이터(LD)로서 텔레메트리 데이터(TD)를 저장하거나, 또는 아웃-오브-밴드 통신을 통해서 BMC(112)에게 텔레메트리 데이터(TD)를 제공할 수 있다.The storage controller 121 may include a status monitoring device. For example, the health monitoring device may be implemented as a software device or firmware module that performs a health check operation of the non-volatile memory device 122. The condition monitoring device may generate telemetry data (TD) by performing a monitoring operation 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 provide the telemetry data (TD) to the BMC 112 through out-of-band communication. there is.

MCU(123)는 영구 메모리 및 보안 관리자를 포함할 수 있다. 영구 메모리는 로그 데이터(LD)를 저장할 수 있다. 로그 데이터(LD)는 스토리지 컨트롤러(121)로부터 수신된 이전 텔레메트리 데이터 및 센서 장치(124)로부터 수신된 이전 센서 데이터 중 적어도 하나를 포함할 수 있다. MCU(123)는 BMC(112)로부터 로그 데이터(LD)의 요청을 수신하고, 영구 메모리에 저장된 로그 데이터(LD)를 포함하는 응답을 BMC(112)에게 제공할 수 있다.MCU 123 may include persistent memory and security managers. Permanent memory can store log data (LD). The log data LD may include at least one of previous telemetry data received from the storage 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 provide the BMC 112 with a response including the log data (LD) stored in persistent memory.

보안 관리자는 환경 데이터의 보안 동작을 관리할 수 있다. 예를 들어, 보안 관리자는 보안 동작을 수행하는 소프트웨어 장치 또는 펌웨어 모듈로 구현될 수 있다. 보안 관리자는 BMC(112)와의 아웃-오브-밴드 통신을 통해서 보안 알고리즘을 협상할 수 있다. 보안 관리자는 협상된 보안 알고리즘에 따라 환경 데이터의 암호화를 활성화하거나 또는 환경 데이터의 암호화를 비활성화할 수 있다.Security administrators can manage the security behavior of environmental data. For example, a security manager may be implemented as a software device or firmware module that performs security operations. The security manager can negotiate security algorithms through out-of-band communication with the BMC 112. The security administrator may enable encryption of environmental data or disable encryption of environmental data according to a negotiated security algorithm.

센서 장치(124)는 전압 센서, 전류 센서, 온도 센서, 및 습도 센서를 포함할 수 있다. 전압 센서는 비-휘발성 메모리 장치(122)에 제공되는 전압을 감지하고, 제1 센서 데이터(SD1)를 생성할 수 있다. 전류 센서는 비-휘발성 메모리 장치(122)에 제공되는 전류를 감지하고, 제2 센서 데이터(SD2)를 생성할 수 있다. 온도 센서는 비-휘발성 메모리 장치(122)의 온도를 감지하고, 제3 센서 데이터(SD3)를 생성할 수 있다. 습도 센서는 비-휘발성 메모리 장치(122)의 습도를 감지하고, 제4 센서 데이터(SD4)를 생성할 수 있다. 제1, 제2, 제3, 및 제4 센서 데이터(SD1, SD2, SD3, SD4)는 도 1의 센서 데이터(SD)에 대응할 수 있다.Sensor device 124 may include a voltage sensor, a current sensor, a temperature sensor, and a humidity sensor. The voltage sensor may detect the voltage provided to the non-volatile memory device 122 and generate first sensor data SD1. The current sensor may detect the current provided to the non-volatile memory device 122 and generate second sensor data SD2. The temperature sensor may detect the temperature of the non-volatile memory device 122 and generate third sensor data SD3. The humidity sensor may detect the humidity of the non-volatile memory device 122 and 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.

센서 장치(124)는 제1, 제2, 제3, 및 제4 센서 데이터(SD1, SD2, SD3, SD4) 중 적어도 하나를 센서 데이터로서 MCU(123)에게 제공할 수 있다. MCU(123)는 영구 메모리에 로그 데이터(LD)로서 센서 데이터를 저장하거나, 또는 아웃-오브-밴드 통신을 통해서 BMC(112)에게 센서 데이터를 제공할 수 있다.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 sensor data as log data (LD) in persistent memory, or may provide sensor data to the BMC 112 through out-of-band communication.

호스트 장치(110)의 프로세서(111) 및 스토리지 장치(120)의 스토리지 컨트롤러(121)는 인-밴드 통신을 지원할 수 있다. 인-밴드 통신을 통해서, 프로세서(111)는 스토리지 장치(120)에서 수행될 동작을 가리키는 커맨드(예를 들어, 읽기 커맨드, 쓰기 커맨드, 소거 커맨드 등)를 포함하는 요청을 스토리지 컨트롤러(121)에게 제공할 수 있다. 인-밴드 통신을 통해서, 스토리지 컨트롤러(121)는 프로세서(111)의 요청에 대응하는 응답을 프로세서(111)에게 제공할 수 있다. 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 sends a request containing a command (e.g., read command, write command, erase command, etc.) indicating an operation to be performed on the storage device 120 to the storage controller 121. can be provided. Through in-band communication, the storage controller 121 can provide the processor 111 with a response corresponding to the request of the processor 111.

호스트 장치(110)의 BMC(112) 및 스토리지 장치(120)의 MCU(123)는 아웃-오브-밴드 통신을 지원할 수 있다. 아웃-오브-밴드 통신을 통해서, BMC(112)는 환경 데이터의 관리를 가리키는 요청을 MCU(123)에게 제공할 수 있다. 아웃-오브-밴드 통신을 통해서, MCU(123)는 BMC(112)의 요청에 대응하는 응답을 BMC(112)에게 제공할 수 있다.The BMC 112 of the host device 110 and the MCU 123 of the storage device 120 may support out-of-band communication. Through out-of-band communication, the BMC 112 may provide the MCU 123 with a request indicating management of environmental data. Through out-of-band communication, the MCU 123 can provide the BMC 112 with a response corresponding to the request of the BMC 112.

다시 말해서, BMC(112) 및 MCU(123)는 아웃-오브-밴드 통신을 통해서 직접적으로 통신할 수 있다. BMC(112) 및 MCU(123)는 인-밴드 통신의 대역폭을 소모하지 않으면서 아웃-오브-밴드 통신을 통해서 직접적으로 통신할 수 있다. BMC(112) 및 MCU(123)는 아웃-오브-밴드 통신을 통해서 양방향으로 통신할 수 있다. MCU(123)는 아웃-오브-밴드 통신을 통해서 BMC(112)에게 환경 데이터에 관한 다양한 정보를 제공할 수 있다. 아웃-오브-밴드 통신은 고객 또는 제조사에게 다양하고 유연한 통신 인터페이스 환경을 제공할 수 있다.In other words, the BMC 112 and MCU 123 can communicate directly through out-of-band communication. The BMC 112 and MCU 123 can communicate directly through out-of-band communication without consuming the bandwidth of in-band communication. The BMC 112 and MCU 123 can communicate bidirectionally through out-of-band communication. The MCU 123 can provide various information about environmental data to the BMC 112 through out-of-band communication. Out-of-band communication can provide a diverse and flexible communication interface environment to customers or manufacturers.

도 4는 본 개시의 일부 실시 예들에 따른 전자 장치의 동작하는 방법을 설명하는 순서도이다. 도 4를 참조하면, 본 개시의 일부 실시 예들에 따른 전자 장치의 동작하는 방법이 설명된다. FIG. 4 is a flowchart explaining a method of operating an electronic device according to some embodiments of the present disclosure. Referring to FIG. 4, a method of operating an electronic device according to some embodiments of the present disclosure is described.

전자 장치(100)는 BMC(112) 및 MCU(123)를 포함할 수 있다. BMC(112) 및 MCU(123)는 도 1의 BMC(112) 및 MCU(123)에 대응할 수 있다. 보다 상세하게는, 전자 장치(100)는 호스트 장치 및 스토리지 장치를 포함할 수 있다. 호스트 장치는 프로세서 및 BMC(112)를 포함할 수 있다. 스토리지 장치는 스토리지 컨트롤러 및 MCU(123)를 포함할 수 있다. 프로세서 및 스토리지 컨트롤러는 인-밴드 통신을 지원할 수 있다. BMC(112) 및 MCU(123)는 아웃-오브-밴드 통신을 지원할 수 있다.The electronic device 100 may include a BMC 112 and an MCU 123. The BMC 112 and MCU 123 may correspond to the BMC 112 and MCU 123 of FIG. 1 . More specifically, the electronic device 100 may include a host device and a storage device. The host device may include a processor and BMC 112. The storage device may include a storage controller and MCU 123. Processors and storage controllers may support in-band communications. BMC 112 and MCU 123 may support out-of-band communication.

S110 단계에서, 전자 장치(100)는 BMC(112)에 의해, MCU(123)에게 아웃-오브-밴드 통신을 통해 환경 데이터의 관리를 가리키는 요청을 제공할 수 있다.In step S110, the electronic device 100 may provide a request indicating management of environmental data to the MCU 123 through out-of-band communication by the BMC 112.

일부 실시 예들에서, 환경 데이터는 센서 데이터, 로그 데이터, 또는 텔레메트리 데이터를 포함할 수 있다. 예를 들어, 센서 데이터는 감지 동작에 기초하여 생성될 수 있다. 텔레메트리 데이터는 모니터링 동작에 기초하여 생성될 수 있다. 로그 데이터는 이전 감지 동작에 기초하여 생성된 이전 센서 데이터 및 이전 모니터링 동작에 기초하여 생성된 이전 텔레메트리 데이터 중 적어도 하나를 포함할 수 있다.In some embodiments, environmental data may include sensor data, log data, or telemetry data. For example, sensor data may be generated based on a sensing action. Telemetry data may be generated based on monitoring activity. 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 some embodiments, management of environmental data may include security operations for environmental data. For example, security operations include negotiating the security algorithm to be used for transmission of environmental data, activating encryption of environmental data according to the security algorithm selected by negotiation of the security algorithms, and disabling encryption of environmental data. can do.

S120 단계에서, 전자 장치(100)는 MCU(123)에 의해, BMC(112)에게 아웃-오브-밴드 통신을 통해 S110 단계의 요청에 대응하는 응답을 제공할 수 있다. 예를 들어, S120 단계의 응답은 환경 데이터, 선택된 보안 알고리즘, 암호화의 활성화 또는 비활성화의 성공 여부를 가리킬 수 있다.In step S120, the electronic device 100 may provide a response corresponding to the request in step S110 to the BMC 112 through out-of-band communication by the MCU 123. For example, the response in step S120 may indicate whether the activation or deactivation of environmental data, the selected security algorithm, or encryption was successful.

도 5는 본 개시의 일부 실시 예들에 따른 아웃-오브-밴드 통신의 프로토콜을 설명하는 도면이다. 도 5를 참조하면, 아웃-오브-밴드 통신의 프로토콜은 다양한 요청들 및 응답들을 포함할 수 있다. 요청은 환경 데이터에 대한 정보를 포함할 수 있다. 예를 들어, 요청은 오피코드(opcode) 필드를 포함할 수 있다. 요청의 오피코드 필드에 기재된 일련의 비트들은 환경 데이터에 대한 정보를 가리킬 수 있다. 요청은 데이터 필드를 포함할 수 있다. 요청 및 응답은 서로 대응하는 관계를 가질 수 있다.FIG. 5 is a diagram illustrating a protocol for out-of-band communication according to some embodiments of the present disclosure. Referring to Figure 5, the protocol of out-of-band communication may include various requests and responses. The request may include information about environmental data. For example, the request may include an opcode field. A series of bits listed in the opcode field of the request may indicate information about environmental data. Requests may include data fields. Requests and responses may have a corresponding relationship with each other.

오피코드 필드의 비트들의 값이 0xC0인 요청은 센서 데이터 커맨드를 가리킬 수 있다. 센서 데이터 커맨드를 가리키는 요청에 대응하는 응답의 데이터 필드는 현재 센서 데이터를 포함할 수 있다. 예를 들어, 현재 센서 데이터는 스토리지 장치의 감지 동작에 의해 생성된 센서 데이터일 수 있다. 이에 대한 보다 상세한 설명은 도 6a를 참조하여 후술될 것이다.A request in which the bits of the opcode field have a value of 0xC0 may indicate a sensor data command. The data field of the response corresponding to the request pointing to the sensor data command may include current sensor data. For example, the current sensor data may be sensor data generated by a sensing operation of a storage device. A more detailed description of this will be described later with reference to FIG. 6A.

오피코드 필드의 비트들의 값이 0xC1인 요청은 로그 데이터 커맨드를 가리킬 수 있다. 로그 데이터 커맨드를 가리키는 요청에 대응하는 응답의 데이터 필드는 로그 데이터를 포함할 수 있다. 예를 들어, 로그 데이터는 MCU의 영구 메모리에 저장된 센서 데이터 또는 저장된 텔레메트리 데이터를 포함할 수 있다. 저장된 센서 데이터는 스토리지 장치의 이전 감지 동작에 의해 생성된 이전 센서 데이터일 수 있다. 저장된 텔레메트리 데이터는 이전 모니터링 동작에 의해 생성된 이전 텔레메트리 데이터일 수 있다. 이에 대한 보다 상세한 설명은 도 6b를 참조하여 후술될 것이다.A request in which the bits of the opcode field have a value of 0xC1 may indicate a log data command. The data field of the response corresponding to the request pointing to the log data command may include log data. For example, log data may include sensor data or stored telemetry data stored in the MCU's persistent memory. The stored sensor data may be previous sensor data generated by a previous sensing operation of the storage device. The stored telemetry data may be previous telemetry data generated by previous monitoring operations. A more detailed description of this will be described later with reference to FIG. 6B.

오피코드 필드의 비트들의 값이 0xC2인 요청은 텔레메트리 데이터 커맨드를 가리킬 수 있다. 텔레메트리 데이터 커맨드를 가리키는 요청에 대응하는 응답의 데이터 필드는 현재 텔레메트리 데이터를 포함할 수 있다. 예를 들어, 현재 텔레메트리 데이터는 스토리지 장치의 모니터링 동작에 의해 생성된 텔레메트리 데이터일 수 있다. 이에 대한 보다 상세한 설명은 도 6c를 참조하여 후술될 것이다.A request in which the bits of the opcode field have a value of 0xC2 may indicate a telemetry data command. The data field of the response corresponding to the request pointing to the telemetry data command may include current telemetry data. For example, the current telemetry data may be telemetry data generated by a monitoring operation of a storage device. A more detailed description of this will be described later with reference to FIG. 6C.

오피코드 필드의 비트들의 값이 0xC3인 요청은 알고리즘 협상 커맨드를 가리킬 수 있다. 알고리즘 협상 커맨드를 가리키는 요청에 대응하는 응답의 데이터 필드는 스토리지 장치에 의해 선택된 보안 알고리즘을 가리키는 인덱스를 포함할 수 있다. 이에 대한 보다 상세한 설명은 도 6d를 참조하여 후술될 것이다.A request in which the bits of the opcode field have a value of 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 the security algorithm selected by the storage device. A more detailed description of this will be described later with reference to FIG. 6D.

오피코드 필드의 비트들의 값이 0xC4인 요청은 암호화 활성화 커맨드를 가리킬 수 있다. 암호화 활성화 커맨드를 가리키는 요청에 대응하는 응답의 데이터 필드는 암호화가 활성화되었는지 여부를 가리키는 인덱스를 포함할 수 있다. 이에 대한 보다 상세한 설명은 도 6e를 참조하여 후술될 것이다.A request in which the bits of the opcode field have a value of 0xC4 may indicate an encryption activation command. The data field of the response corresponding to the request pointing to the encryption activation command may include an index indicating whether encryption is activated. A more detailed description of this will be described later with reference to FIG. 6E.

그러나, 본 개시의 범위는 이에 제한되지 않으며, 도 5에서 설명된 요청 및 응답은 세부적인 요청 및 응답으로 세분화될 수 있거나, 포괄적인 요청 및 응답으로 통합될 수 있거나, 다른 종류의 동작을 처리하기 위한 요청 및 응답이 더 추가될 수 있다.However, the scope of the present disclosure is not limited thereto, and the requests and responses described in Figure 5 may be broken down into detailed requests and responses, may be integrated into comprehensive requests and responses, or may be used to handle other types of operations. Additional requests and responses may be added.

도 6a 내지 도 6e는 본 개시의 일부 실시 예들에 따른 아웃-오브-밴드 통신의 프로토콜의 필드들을 설명하는 도면들이다. 도 6a 내지 도 6e의 설명들은 각각 도 5의 센서 데이터 커맨드, 로그 데이터 커맨드, 텔레메트리 데이터 커맨드, 알고리즘 협상 커맨드, 및 암호화 활성화 커맨드에 대응할 수 있다.6A to 6E are diagrams illustrating fields of an out-of-band communication protocol according to some embodiments of the present disclosure. The descriptions of FIGS. 6A to 6E may correspond to the sensor data command, log data command, telemetry data command, algorithm negotiation command, and encryption activation command of FIG. 5, respectively.

도 6a 내지 도 6e에서, 요청들(RQa, RQb, RQc, RQd, RQe) 및 응답들(RPa, RPb, RPc, RPd, RPe)은 메시지들로 지칭될 수 있다. 6A-6E, requests (RQa, RQb, RQc, RQd, RQe) and responses (RPa, RPb, RPc, RPd, RPe) may be referred to as messages.

메시지들 각각은, 메시지 타입 필드, IC(Integrity Check) 필드, CSI(Command Slot Identifier) 필드, 리저브드(reserved) 필드, NVMe_MI 메시지 타입 필드, ROR(Request OR Response) 필드, MEB(Management Endpoint Buffer) 필드, CIAP(Command Initiated Auto Pause) 필드, 오피코드 필드, 적어도 하나의 NVMe 관리 요청 디워드 필드들, 상태 코드 필드, 응답 바디 필드, 및 메시지 무결성 체크 필드 중 적어도 하나를 포함할 수 있다.Each of the messages includes a message type field, IC (Integrity Check) field, CSI (Command Slot Identifier) field, reserved field, NVMe_MI message type field, ROR (Request OR Response) field, and MEB (Management Endpoint Buffer) It may include at least one of a field, a Command Initiated Auto Pause (CIAP) field, an opcode field, at least one NVMe management request deword field, a status code field, a response body field, and a message integrity check field.

메시지 타입 필드는 메시지의 타입을 가리킬 수 있다. 메시지는 요청 또는 응답에 대응할 수 있다. 예를 들어, MCTP(Management Component Transport Protocol)를 사용하는 경우 메시지 타입 필드의 값은 0x4로 설정될 수 있다. 표준 또는 사용되는 프로토콜의 종류에 따라 메시지 타입 필드의 값이 결정될 수 있다.The message type field may indicate the type of message. A message may correspond to a request or response. For example, when using MCTP (Management Component Transport Protocol), the value of the message type field can be set to 0x4. The value of the message type field may be determined depending on the standard or type of protocol used.

IC 필드는 대응하는 프로토콜에서 정의된 순환 중복 검사(CRC)에 의해 데이터가 보호되는지 여부를 가리킬 수 있다. MCTP 프로토콜을 사용하는 경우 IC 필드의 값인 0x1로 설정될 수 있다.The IC field may indicate whether the data is protected by Cyclic Redundancy Check (CRC) defined in the corresponding protocol. When using the MCTP protocol, it can be set to 0x1, which is the value of the IC field.

CSI 필드는 커맨드 슬롯을 구분하는데 사용될 수 있다. 예를 들어, NVMe_MI 표준은 2개의 커맨드 슬롯들을 정의할 수 있다. CSI 필드는 요청 또는 응답이 어느 커맨드 슬롯에 대응하는지를 가리킬 수 있다.The CSI field can be used to distinguish command slots. For example, the NVMe_MI standard can define two command slots. The CSI field may indicate which command slot the request or response corresponds to.

리저브드 필드는 예비적인 필드일 수 있다. 예를 들어, 리저브드 필드는 비워질 수 있다. 리저브드 필드는 요청 또는 응답을 설명하는 임의의 필드들을 포함할 수 있다.A reserved field may be a preliminary field. For example, a reserved field may be empty. Reserved fields may include arbitrary fields that describe the request or response.

NVMe_MI 메시지 타입 필드는 NVMe 표준에 정의된 메시지 타입을 가리킬 수 있다. NVMe_MI 메시지 타입 필드는 메시지가 어떤 형태의 NVMe 표준에 따른 커맨드인지를 가리킬 수 있다.The NVMe_MI message type field may indicate a message type defined in the NVMe standard. The NVMe_MI message type field may indicate what type of command the message is according to the NVMe standard.

ROR 필드는 대응하는 메시지가 요청인지 또는 응답인지를 가리킬 수 있다. 예를 들어, ROR 필드의 플래그 값이 0이면 메시지는 요청에 대응할 수 있다. ROR 필드의 플래그 값이 1이면 메시지는 응답에 대응할 수 있다.The ROR field may indicate whether the corresponding message is a request or a response. For example, if the flag value of the ROR field is 0, the message can respond to the request. If the flag value of the ROR field is 1, the message can correspond to a response.

MEB 필드는 메시지의 크기가 기준 크기를 초과하는 경우 버퍼를 참조하는데 사용될 수 있다. 예를 들어, NVMe_MI 표준에서 메시지의 응답 바디 필드의 기준 크기는 4224 바이트일 수 있다. 메시지의 응답 바디 필드의 크기가 4224 바이트보다 작거나 같으면, MEB 필드는 비워질 수 있다. 메시지의 응답 바디 필드의 크기가 4224 바이트보다 크면, MEB 필드는 버퍼를 참조하는데 사용되는 인덱스들을 포함할 수 있다.The MEB field can be used to refer to a buffer when the size of the message exceeds the standard size. For example, in the NVMe_MI standard, the standard size of the response body field of a message may be 4224 bytes. If the size of the message's response body field is less than or equal to 4224 bytes, the MEB field may be left blank. If the size of the response body field of the message is greater than 4224 bytes, the MEB field may contain indices used to refer to the buffer.

CIAP 필드는 메시지를 처리하는 순서를 결정할 수 있다. 예를 들어, CIAP 필드의 값이 1이면, 해당 메시지를 수신한 BMC(112) 또는 MCU(123)는 기존에 수행하는 동작을 멈추고 해당 메시지를 우선적으로 처리할 수 있다. CIAP 필드의 값이 0이면, 해당 메시지를 수신한 BMC(112) 또는 MCU(123)는 기존에 수행하는 동작을 완료한 후에 해당 메시지를 수행할 수 있다.The CIAP field can determine the order in which messages are processed. For example, if the value of the CIAP field is 1, the BMC 112 or MCU 123 that received the message can stop the existing operation and process the message preferentially. If the value of the CIAP field is 0, the BMC 112 or MCU 123 that received the message can perform the message after completing the existing operation.

오피코드 필드는 커맨드에 대응하는 비트들을 포함할 수 있다. (도 5 참조)The opcode field may include bits corresponding to the command. (see Figure 5)

적어도 하나의 NVMe 관리 요청 디워드 필드들은 데이터 필드들일 수 있다. 커맨드의 종류에 따라, NVMe 관리 요청 디워드 필드는 비워질 수 있거나, BMC(112)에 의해 지원되는 보안 알고리즘들을 가리킬 수 있거나, 또는 암호화의 활성화 여부를 가리킬 수 있다.At least one NVMe management request deword field may be a data field. Depending on the type of command, the NVMe Management Request Dword field may be empty, may indicate security algorithms supported by the BMC 112, or may indicate whether encryption is enabled.

상태 코드 필드는 응답에 대응하는 메시지에 포함될 수 있다. 상태 코드 필드는 요청이 성공적으로 처리되었는지 가리킬 수 있다. 요청이 성공한 경우, 상태 코드 필드는 성공 코드를 포함할 수 있다. 요청이 실패한 경우, 상태 코드 필드는 실패를 설명하는 에러 코드를 포함할 수 있다.A status code field may be included in the message corresponding to the response. The status code field may indicate whether the request was processed successfully. If the request was successful, the status code field may include a success code. If the request fails, the status code field may include an error code describing the failure.

응답 바디 필드는 응답에 대응하는 메시지에 포함될 수 있다. 응답 바디 필드는 BMC(112)에 의해 요청된 환경 데이터, BMC(112)에 의해 선택된 보안 알고리즘, 또는 선택된 보안 알고리즘에 대응하는 암호화 동작에 사용되는 보안 키 값 등을 포함할 수 있다. 암호화 동작은 선택된 보안 알고리즘에 대응하는 암호화 및 복호화를 포함할 수 있다.The response body field may be included in the message corresponding to the response. The response body field may include environmental 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. Cryptographic operations may include encryption and decryption corresponding to a selected security algorithm.

메시지 무결성 체크 필드는 메시지 무결성 체크에 의해 유효한지 여부를 가리킬 수 있다. 예를 들어, 메시지 무결성 체크 필드는 순환 중복 검사(CRC)에 의해 해당 메시지가 무결성을 갖는지 여부를 가리킬 수 있다.The message integrity check field may indicate whether the message is valid by checking its integrity. For example, the message integrity check field may indicate whether the message has integrity by cyclic redundancy check (CRC).

본 개시의 이해를 돕기 위해, 도 6a 내지 도 6e는 NVMe_MI 표준을 참조하여 다양한 필드들이 설명되지만, 본 개시의 범위가 이에 제한되는 것은 아니다. 본 개시는 NVMe_MI 표준 이외에도, PLDM 표준, NC-SI 표준, 레드피시 표준, MCTP 표준 등과 같은 아웃-오브-밴드 통신을 지원하는 다양한 종류의 프로토콜들에도 적용될 수 있다.To facilitate understanding of the present disclosure, various fields are described in FIGS. 6A to 6E with reference to the NVMe_MI standard, but the scope of the present disclosure is not limited thereto. In addition to the NVMe_MI standard, this disclosure can also be applied to various types of protocols supporting out-of-band communication, such as PLDM standard, NC-SI standard, Redfish standard, MCTP standard, etc.

이하에서, 도 6a 내지 도 6e를 개별적으로 참조하여, 커맨드의 종류에 따른 요청의 특징 및 응답의 특징이 설명될 것이다.Hereinafter, with individual reference to FIGS. 6A to 6E, the characteristics of the request and the characteristics of the response according to the type of command will be described.

도 6a를 참조하면, BMC(112)는 아웃-오브-밴드 통신을 통해 MCU(123)에게 요청(RQa)을 제공할 수 있다. MCU(123)는 아웃-오브-밴드 통신을 통해 BMC(112)에게 응답(RPa)을 제공할 수 있다.Referring to FIG. 6A, the BMC 112 may provide a request (RQa) to the MCU 123 through out-of-band communication. The MCU 123 may provide a response (RPa) to the BMC 112 through out-of-band communication.

요청(RQa)의 오피코드 필드의 비트들의 값은 0xC0일 수 있다. 요청(RQa)은 센서 데이터 커맨드에 대응할 수 있다. MCU(123)는 요청(RQa)에 기초하여 감지 동작을 성공적으로 수행할 수 있다. MCU(123)는 감지 동작에 기초하여 센서 데이터를 생성할 수 있다. 센서 데이터는 감지 동작에 의해 획득된 현재 센서 데이터일 수 있다.The value of the bits of the opcode field of the request (RQa) may be 0xC0. Request (RQa) may correspond to a sensor data command. The MCU 123 may successfully perform a 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.

응답(RPa)의 상태 코드는 성공 코드를 포함할 수 있다. 응답(RPa)의 성공 코드는 MCU(123)가 요청(RQa)을 성공적으로 처리한 것을 가리킬 수 있다. 예를 들어, 성공 코드의 값은 0일 수 있다. 응답(RPa)의 응답 바디 필드는 현재 센서 데이터를 포함할 수 있다.The status code of the response (RPa) may include a success code. The success code of the response (RPa) may indicate that the MCU 123 successfully processed the request (RQa). For example, the value of the success code may be 0. The response body field of the response (RPa) may include current sensor data.

도 6b를 참조하면, BMC(112)는 아웃-오브-밴드 통신을 통해 MCU(123)에게 요청(RQb)을 제공할 수 있다. MCU(123)는 아웃-오브-밴드 통신을 통해 BMC(112)에게 응답(RPb)을 제공할 수 있다.Referring to FIG. 6B, the BMC 112 may provide a request (RQb) to the MCU 123 through out-of-band communication. The MCU 123 may provide a response (RPb) to the BMC 112 through out-of-band communication.

요청(RQb)의 오피코드 필드의 비트들의 값은 0xC1일 수 있다. 요청(RQb)은 로그 데이터 커맨드에 대응할 수 있다. MCU(123)는 요청(RQb)에 기초하여 MCU(123)의 영구 메모리에 저장된 로그 데이터를 성공적으로 로드할 수 있다. 로그 데이터는 이전 감지 동작에 의해 획득된 이전 센서 데이터 및 이전 모니터링 동작에 의해 획득된 이전 텔레메트리 데이터 중 적어도 하나를 포함할 수 있다.The value of the bits of the opcode field of the request (RQb) may be 0xC1. Request (RQb) may correspond to a log data command. The MCU 123 may successfully load the log data stored in the persistent memory of the MCU 123 based on the request RQb. The log data may include at least one of previous sensor data acquired by a previous sensing operation and previous telemetry data obtained by a previous monitoring operation.

응답(RPb)의 상태 코드는 성공 코드를 포함할 수 있다. 응답(RPb)의 성공 코드는 MCU(123)가 요청(RQb)을 성공적으로 처리한 것을 가리킬 수 있다. 응답(RPb)의 응답 바디 필드는 로그 데이터를 포함할 수 있다.The status code of the response (RPb) may include a success code. The success code of the response (RPb) may indicate that the MCU 123 successfully processed the request (RQb). The response body field of the response (RPb) may include log data.

도 6c를 참조하면, BMC(112)는 아웃-오브-밴드 통신을 통해 MCU(123)에게 요청(RQc)을 제공할 수 있다. MCU(123)는 아웃-오브-밴드 통신을 통해 BMC(112)에게 응답(RPc)을 제공할 수 있다.Referring to FIG. 6C, the BMC 112 may provide a request (RQc) to the MCU 123 through out-of-band communication. The MCU 123 may provide a response (RPc) to the BMC 112 through out-of-band communication.

요청(RQc)의 오피코드 필드의 비트들의 값은 0xC2일 수 있다. 요청(RQc)은 텔레메트리 데이터 커맨드에 대응할 수 있다. MCU(123)는 요청(RQc)에 기초하여 모니터링 동작을 성공적으로 수행할 수 있다. MCU(123)는 모니터링 동작에 기초하여 텔레메트리 데이터를 생성할 수 있다. 텔레메트리 데이터는 모니터링 동작에 의해 획득된 현재 텔레메트리 데이터일 수 있다.The value of the bits of the opcode field of the request (RQc) may be 0xC2. Request (RQc) may correspond to a telemetry data command. The MCU 123 can successfully perform a monitoring operation based on the request (RQc). The MCU 123 may generate telemetry data based on monitoring operations. The telemetry data may be current telemetry data obtained by a monitoring operation.

응답(RPc)의 상태 코드는 성공 코드를 포함할 수 있다. 응답(RPc)의 성공 코드는 MCU(123)가 요청(RQc)을 성공적으로 처리한 것을 가리킬 수 있다. 응답(RPc)의 응답 바디 필드는 현재 텔레메트리 데이터를 포함할 수 있다.The status code of the response (RPc) may include a success code. The success code of the response (RPc) may indicate that the MCU 123 successfully processed the request (RQc). The response body field of the response (RPc) may include current telemetry data.

도 6d를 참조하면, BMC(112)는 아웃-오브-밴드 통신을 통해 MCU(123)에게 요청(RQd)을 제공할 수 있다. MCU(123)는 아웃-오브-밴드 통신을 통해 BMC(112)에게 응답(RPd)을 제공할 수 있다.Referring to FIG. 6D, the BMC 112 may provide a request (RQd) to the MCU 123 through out-of-band communication. The MCU 123 may provide a response (RPd) to the BMC 112 through out-of-band communication.

요청(RQd)의 오피코드 필드의 비트들의 값은 0xC3일 수 있다. 요청(RQd)은 알고리즘 협상 커맨드에 대응할 수 있다. 요청(RQd)의 적어도 하나의 NVMe 관리 요청 디워드 필드들은 BMC(112)에 의해 지원되는 제1 내지 제N 보안 알고리즘들을 포함할 수 있다. 제1 내지 제N 보안 알고리즘들은 BMC(112)에 의해 지원되는 보안 알고리즘들일 수 있다. N은 임의의 자연수이다. 제1 내지 제N 보안 알고리즘들 각각은 암호화 방법 또는 규칙이 서로 다를 수 있다. MCU(123)는 요청(RQd)에 기초하여, 제1 내지 제N 보안 알고리즘들 중 하나를 타겟 보안 알고리즘으로 결정할 수 있다.The value of the bits of the opcode field of the request (RQd) may be 0xC3. Request (RQd) may correspond to an algorithm negotiation command. At least one NVMe Management Request Dword fields of request RQd may include first through Nth security algorithms supported by BMC 112. The first to Nth security algorithms may be security algorithms supported by the BMC 112. N is any natural number. Each of the first to Nth security algorithms may have different encryption methods or rules. The MCU 123 may determine one of the first to Nth security algorithms as the target security algorithm based on the request (RQd).

응답(RPd)의 상태 코드는 성공 코드를 포함할 수 있다. 응답(RPd)의 성공 코드는 MCU(123)가 요청(RQd)을 성공적으로 처리한 것을 가리킬 수 있다. 응답(RPd)의 응답 바디 필드는 BMC(112)에 의해 지원되는 제1 내지 제N 보안 알고리즘들 중에서 MCU(123)에 의해 선택된 타겟 보안 알고리즘을 포함할 수 있다. 예를 들어, MCU(123)는 제1 내지 제N 보안 알고리즘들 중 하나를 타겟 보안 알고리즘으로 선택할 수 있다. 응답(RPd)의 응답 바디 필드에서, 타겟 보안 알고리즘은 제1 값을 가질 수 있고, 제1 내지 제N 보안 알고리즘들 중 타겟 보안 알고리즘을 제외한 나머지 보안 알고리즘들 각각은 제2 값을 가질 수 있다.The status code of the response (RPd) may include a success code. The success code of the response (RPd) may indicate that the MCU 123 successfully processed the 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 security algorithms other than the target security algorithm among the first to Nth security algorithms may have a second value.

일부 실시 예들에서, 제1 내지 제N 보안 알고리즘들 각각은 알고리즘의 식별을 위한 인덱스, 해당 보안 알고리즘에 대응하는 암호화 동작에서 사용되는 BMC(112)의 보안 키 값 또는 MCU(123)의 보안 키 값을 포함할 수 있다.In some embodiments, each of the first to Nth security algorithms includes an index for identification of the algorithm, 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 security algorithm. may include.

도 6e를 참조하면, BMC(112)는 아웃-오브-밴드 통신을 통해 MCU(123)에게 요청(RQe)을 제공할 수 있다. MCU(123)는 아웃-오브-밴드 통신을 통해 BMC(112)에게 응답(RPe)을 제공할 수 있다.Referring to FIG. 6E, the BMC 112 may provide a request (RQe) to the MCU 123 through out-of-band communication. The MCU 123 may provide a response (RPe) to the BMC 112 through out-of-band communication.

요청(RQe)의 오피코드 필드의 비트들의 값은 0xC4일 수 있다. 요청(RQe)은 암호화 활성화 커맨드에 대응할 수 있다. 요청(RQe)의 적어도 하나의 NVMe 관리 요청 디워드 필드들 중 일부는 암호화 스위치 필드로 사용될 수 있다. 요청(RQe)의 암호화 스위치 필드는 암호화의 활성화 또는 암호화의 비활성화를 가리킬 수 있다. 예를 들어, BMC(112)가 암호화를 활성화하면, 암호화 스위치 필드의 값은 0x01일 수 있다. BMC(112)가 암호화를 비활성화하면, 암호화 스위치 필드의 값인 0x00일 수 있다. MCU(123)는 요청(RQe)에 기초하여, 암호화를 성공적으로 활성화하거나 또는 암호화를 성공적으로 비활성화할 수 있다.The value of the bits of the opcode field of the request (RQe) may be 0xC4. The request (RQe) may correspond to an encryption activation 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 enabling or disabling encryption. For example, if BMC 112 activates encryption, the value of the encryption switch field may be 0x01. If the BMC 112 disables encryption, the value of the encryption switch field may be 0x00. MCU 123 may successfully activate encryption or successfully deactivate encryption based on the request (RQe).

응답(RPe)의 상태 코드는 성공 코드를 포함할 수 있다. 응답(RPe)의 성공 코드는 MCU(123)가 요청(RQe)을 성공적으로 처리한 것을 가리킬 수 있다.The status code of the response (RPe) may include a success code. The success code of the response (RPe) may indicate that the MCU 123 successfully processed the request (RQe).

일부 실시 예들에서, 응답(RPe)은 타겟 보안 알고리즘에 대응하는 암호화 동작에서 사용되는 보안 키 값을 포함할 수 있다. 예를 들어, 요청(RQe)의 암호화 스위치 필드는 암호화의 활성화를 가리킬 수 있다. 응답(RPe)은 타겟 보안 알고리즘에서 BMC(112)의 복호화에 사용될 보안 키 값을 포함할 수 있다.In some embodiments, 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 in the request (RQe) may indicate activation of encryption. The response (RPe) may include a security key value to be used for decryption of the BMC 112 in the target security algorithm.

도 7은 본 개시의 일부 실시 예들에 따른 전자 장치의 동작하는 방법을 설명하는 순서도이다. 도 7을 참조하면, 본 개시의 일부 실시 예들에 따른 전자 장치의 동작하는 방법이 설명된다.FIG. 7 is a flowchart explaining a method of operating an electronic device according to some embodiments of the present disclosure. Referring to FIG. 7, a method of operating an electronic device according to some embodiments of the present disclosure is described.

전자 장치(100)는 BMC(112) 및 MCU(123)를 포함할 수 있다. BMC(112) 및 MCU(123)는 도 1의 BMC(112) 및 MCU(123)에 대응할 수 있다. 보다 상세하게는, 전자 장치(100)는 호스트 장치 및 스토리지 장치를 포함할 수 있다. 호스트 장치는 프로세서 및 BMC(112)를 포함할 수 있다. 스토리지 장치는 스토리지 컨트롤러 및 MCU(123)를 포함할 수 있다. 프로세서 및 스토리지 컨트롤러는 인-밴드 통신을 지원할 수 있다. BMC(112) 및 MCU(123)는 아웃-오브-밴드 통신을 지원할 수 있다.The electronic device 100 may include a BMC 112 and an MCU 123. The BMC 112 and MCU 123 may correspond to the BMC 112 and MCU 123 of FIG. 1 . More specifically, the electronic device 100 may include a host device and a storage device. The host device may include a processor and BMC 112. The storage device may include a storage controller and MCU 123. Processors and storage controllers may support in-band communications. BMC 112 and MCU 123 may support out-of-band communication.

S210 단계에서, 전자 장치(100)는 BMC(112)에 의해, 알고리즘 협상을 가리키는 제1 요청을 MCU(123)에게 제공할 수 있다. 예를 들어, 제1 요청의 오피코드 필드의 비트들은 알고리즘 협상 커맨드를 가리킬 수 있다. 제1 요청은 BMC(112)에 의해 지원되는 적어도 하나의 보안 알고리즘들을 포함할 수 있다. MCU(123)는 제1 요청의 적어도 하나의 보안 알고리즘들 중에서 하나를 타겟 보안 알고리즘으로 선택할 수 있다. 타겟 보안 알고리즘은 BMC(112) 및 MCU(123) 모두에 의해 지원될 수 있다.In step S210, the electronic device 100 may provide the MCU 123 with a first request indicating algorithm negotiation by the BMC 112. For example, bits in the opcode field of the first request may indicate an algorithm negotiation command. The first request may include at least one security algorithm supported by BMC 112. The MCU 123 may select one of at least one security algorithm in the first request as a target security algorithm. The target security algorithm may be supported by both BMC 112 and MCU 123.

S220 단계에서, 전자 장치(100)는 MCU(123)에 의해, 선택된 알고리즘을 가리키는 제1 응답을 BMC(112)에게 제공할 수 있다. 제1 응답은 BMC(112)에 의해 지원되는 적어도 하나의 보안 알고리즘들 중에서 MCU(123)에 의해 선택된 타겟 보안 알고리즘을 포함할 수 있다.In step S220, the electronic device 100 may provide the BMC 112 with a first response indicating the algorithm selected by the MCU 123. The first response may include a target security algorithm selected by the MCU 123 from among at least one security algorithm supported by the BMC 112.

S230 단계에서, 전자 장치(100)는 BMC(112)에 의해, 암호화를 활성화하기 위한 제2 요청을 MCU(123)에게 제공할 수 있다. 예를 들어, 제2 요청의 오피코드 필드의 비트들은 암호화 활성화 커맨드를 가리킬 수 있다. 제2 요청의 암호화 스위치 필드는 암호화의 활성화를 가리킬 수 있다. MCU(123)는 제2 요청에 기초하여 환경 데이터의 암호화를 활성화할 수 있다. 암호화를 활성화한 이후, 암호화를 비활성화하기 전까지, MCU(123)는 환경 데이터를 암호화하고, 암호화된 환경 데이터를 BMC(112)에게 제공할 수 있다.In step S230, the electronic device 100 may provide the MCU 123 with a second request to activate encryption by the BMC 112. For example, bits in the opcode field of the second request may indicate an encryption activation command. The encryption switch field of the second request may indicate activation of encryption. MCU 123 may activate encryption of environmental data based on the second request. After activating encryption and before deactivating encryption, the MCU 123 may encrypt environmental data and provide the encrypted environmental data to the BMC 112.

S240 단계에서, 전자 장치(100)는 MCU(123)에 의해, 암호화가 활성화되었음을 가리키는 제2 응답을 BMC(112)에게 제공할 수 있다. 제2 응답의 상태 코드는 제2 요청의 성공을 가리킬 수 있다.In step S240, the electronic device 100 may provide the BMC 112 with a second response indicating that encryption is activated by the MCU 123. The status code of the second response may indicate success of the second request.

S250 단계에서, 전자 장치(100)는 BMC(112)에 의해, 현재 환경 데이터에 대한 제3 요청을 MCU(123)에게 제공할 수 있다. 제3 요청의 오피코드 필드의 비트들은 센서 데이터 커맨드 또는 텔레메트리 데이터 커맨드를 가리킬 수 있다. 현재 환경 데이터는 센서 데이터 또는 텔레메트리 데이터를 가리킬 수 있다.In step S250, the electronic device 100 may provide the MCU 123 with a third request for current environment data by the BMC 112. The bits of the opcode field of the third request may indicate a sensor data command or a telemetry data command. Current environmental data may refer to sensor data or telemetry data.

S251 단계에서, 전자 장치(100)는 MCU(123)에 의해, 스토리지 장치 내의 비-휘발성 메모리 장치의 모니터링 동작 또는 감지 동작을 수행하고, 모니터링 동작 또는 감지 동작에 기초하여 현재 환경 데이터를 생성할 수 있다. In step S251, the electronic device 100 may perform a monitoring operation or a detection operation of a non-volatile memory device in the storage device by the MCU 123 and generate current environment data based on the monitoring operation or detection operation. there is.

예를 들어, 제3 요청의 오피코드 필드의 비트들이 센서 데이터 커맨드를 가리키면, MCU(123)는 비-휘발성 메모리 장치의 감지 동작을 수행하고, 감지 동작에 기초하여 센서 데이터를 생성할 수 있다. MCU(123)는 센서 데이터를 현재 환경 데이터로서 관리할 수 있다.For example, if the bits of the opcode field of the third request indicate a sensor data command, the MCU 123 may perform a sensing operation of the non-volatile memory device and generate sensor data based on the sensing operation. The MCU 123 can manage sensor data as current environmental data.

또 다른 예로서, 제3 요청의 오피코드 필드의 비트들이 텔레메트리 데이터 커맨드를 가리키면, MCU(123)는 비-휘발성 메모리 장치의 모니터링 동작을 수행하고, 모니터링 동작에 기초하여 텔레메트리 데이터를 생성할 수 있다. MCU(123)는 텔레메트리 데이터를 현재 환경 데이터로서 관리할 수 있다.As another example, if the bits of the opcode field of the third request indicate a telemetry data command, the MCU 123 performs a monitoring operation of the non-volatile memory device and generates telemetry data based on the monitoring operation. can be created. The MCU 123 can manage telemetry data as current environment data.

S252 단계에서, 전자 장치(100)는 MCU(123)에 의해, 현재 환경 데이터를 암호화할 수 있다. 예를 들어, MCU(123)는 S210 단계의 제1 요청에 기초하여 선택된 타겟 보안 알고리즘에 기초하여 현재 환경 데이터를 암호화할 수 있다.In step S252, the electronic device 100 may encrypt current environment data by the MCU 123. For example, the MCU 123 may encrypt the current environment data based on the target security algorithm selected based on the first request in step S210.

S260 단계에서, 전자 장치(100)는 MCU(123)에 의해, 암호화된 현재 환경 데이터를 포함하는 제3 응답을 BMC(112)에게 제공할 수 있다.In step S260, the electronic device 100 may provide the BMC 112 with a third response including encrypted current environment data by the MCU 123.

S261 단계에서, 전자 장치(100)는 BMC(112)에 의해, 암호화된 현재 환경 데이터에 기초하여 스토리지 장치를 관리할 수 있다. 예를 들어, BMC(112)는 암호화된 현재 환경 데이터를 복호화할 수 있다. BMC(112)는 복호화된 현재 환경 데이터에 기초하여, 스토리지 장치의 물리적인 상태 또는 저장된 사용자 데이터의 신뢰성 수준을 확인하고, 이에 따라 스토리지 장치를 관리할 수 있다.In step S261, the electronic device 100 may manage the storage device based on the current environment data encrypted by the BMC 112. For example, BMC 112 may decrypt encrypted current environment data. The BMC 112 may check the physical state of the storage device or the reliability level of stored user data based on the decrypted current environment data and manage the storage device accordingly.

S270 단계에서, 전자 장치(100)는 BMC(112)에 의해, 암호화를 비활성화하기 위한 제4 요청을 MCU(123)에게 제공할 수 있다. 예를 들어, 제4 요청의 오피코드 필드의 비트들은 암호화 활성화 커맨드를 가리킬 수 있다. 제4 요청의 암호화 스위치 필드는 암호화의 비활성화를 가리킬 수 있다. MCU(123)는 제4 요청에 기초하여 환경 데이터의 암호화를 비활성화할 수 있다. 암호화를 비활성화한 이후, 암호화를 다시 활성화하기 전까지, MCU(123)는 암호화되지 않은 환경 데이터를 BMC(112)에게 제공할 수 있다.In step S270, the electronic device 100 may provide the MCU 123 with a fourth request to deactivate encryption by the BMC 112. For example, the bits of the opcode field of the fourth request may indicate an encryption activation command. The encryption switch field of the fourth request may indicate deactivation of encryption. MCU 123 may disable encryption of environmental data based on the fourth request. After disabling encryption and before re-enabling encryption, the MCU 123 may provide unencrypted environmental data to the BMC 112.

S280 단계에서, 전자 장치(100)는 MCU(123)에 의해, 암호화가 비활성화되었음을 가리키는 제4 응답을 BMC(112)에게 제공할 수 있다. 제4 응답의 상태 코드는 제4 요청의 성공을 가리킬 수 있다.In step S280, the electronic device 100 may provide the BMC 112 with a fourth response indicating that encryption has been disabled by the MCU 123. The status code of the fourth response may indicate success of the fourth request.

도 8은 본 개시의 일부 실시 예들에 따른 전자 장치의 동작하는 방법을 설명하는 순서도이다. 도 8을 참조하면, 본 개시의 일부 실시 예들에 따른 전자 장치의 동작하는 방법이 설명된다.FIG. 8 is a flowchart explaining a method of operating an electronic device according to some embodiments of the present disclosure. Referring to FIG. 8, a method of operating an electronic device according to some embodiments of the present disclosure is described.

전자 장치(100)는 BMC(112) 및 MCU(123)를 포함할 수 있다. BMC(112) 및 MCU(123)는 도 1의 BMC(112) 및 MCU(123)에 대응할 수 있다. 보다 상세하게는, 전자 장치(100)는 호스트 장치 및 스토리지 장치를 포함할 수 있다. 호스트 장치는 프로세서 및 BMC(112)를 포함할 수 있다. 스토리지 장치는 스토리지 컨트롤러 및 MCU(123)를 포함할 수 있다. 프로세서 및 스토리지 컨트롤러는 인-밴드 통신을 지원할 수 있다. BMC(112) 및 MCU(123)는 아웃-오브-밴드 통신을 지원할 수 있다.The electronic device 100 may include a BMC 112 and an MCU 123. The BMC 112 and MCU 123 may correspond to the BMC 112 and MCU 123 of FIG. 1 . More specifically, the electronic device 100 may include a host device and a storage device. The host device may include a processor and BMC 112. The storage device may include a storage controller and MCU 123. Processors and storage controllers may support in-band communications. BMC 112 and MCU 123 may support out-of-band communication.

S310 단계, S320 단계, S330 단계, S340 단계, S370 단계, 및 S380 단계는 도 7의 S210 단계, S220 단계, S230 단계, S240 단계, S270 단계, 및 S280 단계와 유사하므로, 이에 대한 상세한 설명은 생략된다.Since steps S310, S320, S330, S340, S370, and S380 are similar to steps S210, S220, S230, S240, S270, and S280 of FIG. 7, detailed description thereof will be omitted. do.

S350 단계에서, 전자 장치(100)는 BMC(112)에 의해, 이전 환경 데이터에 대한 제3 요청을 MCU(123)에게 제공할 수 있다. 제3 요청의 오피코드 필드의 비트들은 로그 데이터 커맨드를 가리킬 수 있다. 이전 환경 데이터는 로그 데이터를 가리킬 수 있다. 로그 데이터는 MCU(123)의 영구 메모리에 저장될 수 있다. 로그 데이터는 이전 감지 동작에 기초하여 생성된 이전 센서 데이터 및 이전 모니터링 동작에 기초하여 생성된 이전 텔레메트리 데이터 중 적어도 하나를 포함할 수 있다.In step S350, the electronic device 100 may provide the MCU 123 with a third request for previous environment data by the BMC 112. Bits in the opcode field of the third request may indicate a log data command. Previous environmental data may refer to log data. Log data may be stored in permanent memory of the MCU 123. 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.

S351 단계에서, 전자 장치(100)는 MCU(123)에 의해, 이전 환경 데이터를 로드할 수 있다. 예를 들어, MCU(123)는 MCU(123)에 내장된 영구 메모리에 저장된 로그 데이터를 읽을 수 있다. MCU(123)는 로그 데이터를 이전 환경 데이터로서 관리할 수 있다.In step S351, the electronic device 100 may load previous environment data by the MCU 123. For example, the MCU 123 may read log data stored in a persistent memory built into the MCU 123. The MCU 123 may manage log data as previous environment data.

S352 단계에서, 전자 장치(100)는 MCU(123)에 의해, 이전 환경 데이터를 암호화할 수 있다. 예를 들어, MCU(123)는 S310 단계의 제1 요청에 기초하여 선택된 타겟 보안 알고리즘에 기초하여 이전 환경 데이터를 암호화할 수 있다.In step S352, the electronic device 100 may encrypt previous environment data by the MCU 123. For example, the MCU 123 may encrypt previous environment data based on a target security algorithm selected based on the first request in step S310.

S360 단계에서, 전자 장치(100)는 MCU(123)에 의해, 암호화된 이전 환경 데이터를 포함하는 제3 응답을 BMC(112)에게 제공할 수 있다.In step S360, the electronic device 100 may provide the BMC 112 with a third response including encrypted previous environment data by the MCU 123.

S361 단계에서, 전자 장치(100)는 BMC(112)에 의해, 암호화된 이전 환경 데이터에 기초하여 스토리지 장치를 관리할 수 있다. 예를 들어, BMC(112)는 암호화된 이전 환경 데이터를 복호화할 수 있다. BMC(112)는 복호화된 이전 환경 데이터에 기초하여, 스토리지 장치의 물리적인 상태 또는 저장된 사용자 데이터의 신뢰성 수준을 확인하고, 이에 따라 스토리지 장치를 관리할 수 있다.In step S361, the electronic device 100 may manage the storage device based on previous environment data encrypted by the BMC 112. For example, BMC 112 may decrypt previously encrypted environment data. The BMC 112 may check the physical state of the storage device or the reliability level of stored user data based on the decrypted previous environment data and manage the storage device accordingly.

도 9는 본 개시의 일부 실시 예들에 따른 전자 장치의 동작하는 방법을 설명하는 순서도이다. 도 9를 참조하면, 본 개시의 일부 실시 예들에 따른 전자 장치의 동작하는 방법이 설명된다.FIG. 9 is a flowchart explaining a method of operating an electronic device according to some embodiments of the present disclosure. Referring to FIG. 9, a method of operating an electronic device according to some embodiments of the present disclosure is described.

전자 장치(100)는 BMC(112) 및 MCU(123)를 포함할 수 있다. BMC(112) 및 MCU(123)는 도 1의 BMC(112) 및 MCU(123)에 대응할 수 있다. 보다 상세하게는, 전자 장치(100)는 호스트 장치 및 스토리지 장치를 포함할 수 있다. 호스트 장치는 프로세서 및 BMC(112)를 포함할 수 있다. 스토리지 장치는 스토리지 컨트롤러 및 MCU(123)를 포함할 수 있다. 프로세서 및 스토리지 컨트롤러는 인-밴드 통신을 지원할 수 있다. BMC(112) 및 MCU(123)는 아웃-오브-밴드 통신을 지원할 수 있다.The electronic device 100 may include a BMC 112 and an MCU 123. The BMC 112 and MCU 123 may correspond to the BMC 112 and MCU 123 of FIG. 1 . More specifically, the electronic device 100 may include a host device and a storage device. The host device may include a processor and BMC 112. The storage device may include a storage controller and MCU 123. Processors and storage controllers may support in-band communications. BMC 112 and MCU 123 may support out-of-band communication.

S410 단계에서, 전자 장치(100)의 BMC(112)는 환경 데이터의 관리를 가리키는 요청을 MCU(123)에게 제공할 수 있다. 예를 들어, 요청의 오피코드 필드의 비트들은 센서 데이터 커맨드, 로그 데이터 커맨드, 텔레메트리 데이터 커맨드, 알고리즘 협상 커맨드, 또는 암호화 활성화 커맨드를 가리킬 수 있다.In step S410, the BMC 112 of the electronic device 100 may provide a request indicating management of environmental data to the MCU 123. For example, the bits in 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 activation command.

S411 단계에서, 전자 장치(100)의 MCU(123)는 S410 단계의 요청을 처리하지 못할 수 있다. S410 단계의 요청의 실패가 발생할 수 있다. 예를 들어, MCU(123)는 다양한 요인들에 의해, S410 단계의 요청을 성공적으로 처리하지 못할 수 있다.In step S411, the MCU 123 of the electronic device 100 may not be able to process the request in step S410. Failure of the request in step S410 may occur. For example, the MCU 123 may not successfully process the request in step S410 due to various factors.

S412 단계에서, 전자 장치(100)의 MCU(123)에 의해, S411 단계의 실패에 대응하는 에러 코드를 결정할 수 있다. 에러 코드는 S411 단계에서 요청이 실패한 요인을 가리킬 수 있다. 이에 대한 보다 상세한 설명은 도 10에서 후술될 것이다.In step S412, the MCU 123 of the electronic device 100 may determine an error code corresponding to the failure in step S411. The error code may indicate the reason why the request failed in step S411. A more detailed description of this will be provided later in FIG. 10.

S420 단계에서, 전자 장치(100)의 MCU(123)에 의해, S412 단계의 에러 코드를 포함하는 응답을 BMC(112)에게 제공할 수 있다.In step S420, the MCU 123 of the electronic device 100 may provide a response including the error code of step S412 to the BMC 112.

도 10은 본 개시의 일부 실시 예들에 따른 아웃-오브-밴드 통신의 프로토콜을 설명하는 도면이다. 도 10을 참조하면, 아웃-오브-밴드 통신의 프로토콜에 따른 에러 코드가 설명된다. 에러 코드는 아웃-오브-밴드 통신을 통해 제공되는 응답의 상태 코드 필드에 기입될 수 있다. 에러 코드는 요청이 실패할 때 사용될 수 있다. 에러 코드는 요청이 실패한 요인을 가리킬 수 있다.FIG. 10 is a diagram illustrating a protocol for out-of-band communication according to some embodiments of the present disclosure. Referring to FIG. 10, error codes according to the protocol of out-of-band communication are explained. The error code may be entered in the status code field of the response provided via out-of-band communication. Error codes can be used when a request fails. The error code may indicate the reason the request failed.

제1 인덱스에서, 에러 타입은 유효하지 않은 커맨드 오피코드를 가리킬 수 있다. 예를 들어, 에러 타입은 BMC로부터 수신된 요청의 오피코드 필드의 비트들에 대응하는 값이 유효하지 않음을 가리킬 수 있다. 상태 코드 필드에 기입되는 에러 코드의 값은 03h일 수 있다.At the first index, the error type may indicate an invalid command opcode. For example, the error type may indicate that the values corresponding to the bits of the opcode field of the request received from the BMC are invalid. The value of the error code written in the status code field may be 03h.

제2 인덱스에서, 에러 타입은 유효하지 않은 파라미터를 가리킬 수 있다. 예를 들어, 에러 타입은 IC 필드가 유효하지 않음을 가리킬 수 있다. 상태 코드 필드에 기입되는 에러 코드의 값은 04h일 수 있다.At the second index, 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.

제3 인덱스에서, 에러 타입은 유효하지 않은 파라미터를 가리킬 수 있다. 예를 들어, 에러 타입은 ROR 필드가 유효하지 않음을 가리킬 수 있다. ROR 필드가 요청에 대응하는 플래그 값 및 응답에 대응하는 플래그 값 이외의 값을 갖는 경우, ROR 필드는 유효하지 않을 수 있다. 상태 코드 필드에 기입되는 에러 코드의 값은 04h일 수 있다.At the third index, the error type may indicate an invalid parameter. For example, the error type may indicate that the ROR field is invalid. If the ROR field has a value other than the flag value corresponding to the request and the flag value corresponding to the response, the ROR field may be invalid. The value of the error code written in the status code field may be 04h.

제4 인덱스에서, 에러 타입은 유효하지 않은 파라미터를 가리킬 수 있다. 예를 들어, 에러 타입은 NVMe_MI 메시지 타입이 유효하지 않음을 가리킬 수 있다. 상태 코드 필드에 기입되는 에러 코드의 값은 04h일 수 있다.At the fourth index, 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.

제5 인덱스에서, 에러 타입은 유효하지 않은 커맨드 크기를 가리킬 수 있다. 예를 들어, 에러 타입은 BMC로부터 수신된 요청의 메시지 바디의 크기가 기준 크기를 초과함을 가리킬 수 있다. 메시지 바디의 크기가 기대된 크기와 다르므로 MCU에 의해 처리되기 어려울 수 있다. 상태 코드 필드에 기입되는 에러 코드의 값은 05h일 수 있다.At the fifth index, 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 standard size. Because the size of the message body is different from the expected size, it may be difficult to process by the MCU. The value of the error code written in the status code field may be 05h.

제6 인덱스에서, 에러 타입은 벤더 특정 에러를 가리킬 수 있다. 예를 들어, 에러 타입은 BMC로부터 수신된 요청의 메시지 무결성 체크에 의해 요청이 유효하지 않음을 가리킬 수 있다. 순환 중복 검사(CRC)에 의해 요청이 무결성을 갖는 것으로 결정되면, 제6 인덱스의 에러 타입이 사용될 수 있다. 상태 코드 필드에 기입되는 에러 코드의 값은 E1h일 수 있다.In the sixth index, the error type may indicate a vendor specific error. For example, the error type may indicate that the request is invalid by checking the message integrity of the request received from the BMC. If the request is determined to have integrity by a cyclic redundancy check (CRC), the error type of the sixth index may be used. The value of the error code written in the status code field may be E1h.

제7 인덱스에서, 에러 타입은 벤더 특정 에러를 가리킬 수 있다. 예를 들어, 에러 타입은 BMC에 의해 지원되는 보안 알고리즘들 모두가 MCU에 의해 지원되지 않음을 가리킬 수 있다. MCU가 타겟 보안 알고리즘을 선택할 수 없으면, 제7 인덱스의 에러 타입이 사용될 수 있다. 상태 코드 필드에 기입되는 에러 코드의 값은 E2h일 수 있다.In the seventh index, the error type may indicate a vendor specific error. For example, the error type may indicate that not all security algorithms supported by the BMC are supported by the MCU. If the MCU cannot select the target security algorithm, the error type of the seventh index can be used. The value of the error code written in the status code field may be E2h.

제8 인덱스에서, 에러 타입은 벤더 특정 에러를 가리킬 수 있다. 예를 들어, 에러 타입은 MCU에 의한 암호화의 실패를 가리킬 수 있다. BMC의 요청에 따라 암호화를 활성화한 후, MCU가 환경 데이터를 암호화하는데 실패하거나, 또는 BMC가 암호화된 환경 데이터를 복호화하는데 실패하면, 제8 인덱스의 에러 타입이 사용될 수 있다. 상태 코드 필드에 기입되는 에러 코드의 값은 E3h일 수 있다.In the eighth index, the error type may indicate a vendor specific error. For example, the error type may indicate a failure of encryption by the MCU. After activating encryption at the request of the BMC, if the MCU fails to encrypt environmental data, or if the BMC fails to decrypt the encrypted environmental data, the error type of the eighth index may be used. The value of the error code written in the status code field may be E3h.

그러나, 본 개시의 범위는 이에 제한되지 않으며, 도 10에서 설명된 에러 타입 이외에도 다른 요인을 가리키는 에러 코드들이 더 추가될 수 있다.However, the scope of the present disclosure is not limited thereto, and error codes indicating other factors in addition to the error types described in FIG. 10 may be added.

도 11은 본 개시의 일부 실시 예들에 따른 아웃-오브-밴드 통신의 프로토콜의 필드들을 설명하는 도면이다. 도 11을 참조하면, BMC(112)는 아웃-오브-밴드 통신을 통해 MCU(123)에게 요청(RQ)을 제공할 수 있다. 요청(RQ)은 도 6a의 요청(RQa), 도 6b의 요청(RQb), 도 6c의 요청(RQc), 도 6d의 요청(RQd), 또는 도 6e의 요청(RQe)에 대응할 수 있다. MCU(123)는 BMC(112)로부터 수신된 요청(RQ)을 처리하지 못할 수 있다. 즉, 요청(RQ)의 실패가 발생할 수 있다.FIG. 11 is a diagram illustrating fields of a protocol for out-of-band communication according to some embodiments of the present disclosure. Referring to FIG. 11, the BMC 112 may provide a request (RQ) to the MCU 123 through out-of-band communication. Request (RQ) may correspond to request (RQa) in Figure 6A, request (RQb) in Figure 6B, request (RQc) in Figure 6C, request (RQd) in Figure 6D, or request (RQe) in Figure 6E. The MCU 123 may not be able to process the request (RQ) received from the BMC 112. In other words, request (RQ) failure may occur.

MCU(123)는 아웃-오브-밴드 통신을 통해 BMC(112)에게 응답(RPf)을 제공할 수 있다. 응답(RPf)은 요청(RQ)의 실패를 가리킬 수 있다.The MCU 123 may provide a response (RPf) to the BMC 112 through out-of-band communication. The response (RPf) may indicate failure of the request (RQ).

응답(RPf)은 메시지 타입 필드, IC 필드, CSI 필드, 리저브드 필드, NVMe_MI 메시지 타입 필드, ROR 필드, MEB 필드, CIAP 필드, 상태 코드 필드, 응답 바디 필드, 및 메시지 무결성 체크 필드 중 적어도 하나를 포함할 수 있다. 각 필드들의 특징은 도 6a 내지 도 6e를 참조하여 설명된 것과 유사하므로, 이에 대한 상세한 설명은 생략된다.The response (RPf) includes at least one of a message type field, IC field, CSI field, reserved field, NVMe_MI message type field, ROR field, MEB field, CIAP field, status code field, response body field, and message integrity check field. It can be included. Since the characteristics of each field are similar to those described with reference to FIGS. 6A to 6E, detailed description thereof is omitted.

MCU(123)는 요청(RQ)을 처리하지 못하면, 에러 코드가 기입된 상태 코드 필드를 포함하는 응답(RPf)을 BMC(112)에게 제공할 수 있다. 에러 코드는 도 10을 참조하여 설명된 에러 코드들 중 하나를 포함할 수 있다.If the MCU 123 fails to process the request (RQ), it may provide the BMC 112 with a response (RPf) including a status code field containing an error code. The error code may include one of the error codes described with reference to FIG. 10 .

도 12는 본 개시의 일부 실시 예들에 따른 전자 장치의 블록도이다. 도 12를 참조하면, 전자 장치(200)는 호스트 장치(210), 및 제1 내지 제N 스토리지 장치들(220_1~220_N)을 포함할 수 있다. 제1 내지 제N 스토리지 장치들(220_1~220_N)의 각각은 도 1의 스토리지 장치(120)와 유사하게 동작할 수 있다.12 is a block diagram of an electronic device according to some embodiments 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 to Nth storage devices 220_1 to 220_N may operate similarly to the storage device 120 of FIG. 1 .

호스트 장치(210)는 프로세서(211) 및 BMC(212)를 포함할 수 있다. 프로세서(211) 및 BMC(212)는 도 1의 프로세서(111) 및 BMC(112)에 대응할 수 있다.The host device 210 may include a processor 211 and a BMC 212. The processor 211 and BMC 212 may correspond to the processor 111 and BMC 112 of FIG. 1 .

제1 스토리지 장치(220_1)는 제1 스토리지 컨트롤러(221_1) 및 제1 MCU(223_1)를 포함할 수 있다. 제1 스토리지 컨트롤러(221_1)는 프로세서(211)와의 인-밴드 통신을 지원할 수 있다. 제1 MCU(223_1)는 BMC(212)와의 아웃-오브-밴드 통신을 지원할 수 있다.The first storage device 220_1 may include a first storage controller 221_1 and a first MCU 223_1. The first storage 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.

제2 스토리지 장치(220_2)는 제2 스토리지 컨트롤러(221_2) 및 제2 MCU(223_2)를 포함할 수 있다. 제2 스토리지 컨트롤러(221_2)는 프로세서(211)와의 인-밴드 통신을 지원할 수 있다. 제2 MCU(223_2)는 BMC(212)와의 아웃-오브-밴드 통신을 지원할 수 있다.The second storage device 220_2 may include a second storage controller 221_2 and a second MCU 223_2. The second storage 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).

제N 스토리지 장치(220_N)는 제N 스토리지 컨트롤러(221_N) 및 제N MCU(223_N)를 포함할 수 있다. 제N 스토리지 컨트롤러(221_N)는 프로세서(211)와의 인-밴드 통신을 지원할 수 있다. 제N MCU(223_N)는 BMC(212)와의 아웃-오브-밴드 통신을 지원할 수 있다. N은 도 6d의 알고리즘들의 개수와 무관하며, 임의의 자연수이다.The N-th storage device 220_N may include an N-th storage controller 221_N and an N-th MCU 223_N. The N-th storage 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. N is independent of the number of algorithms in FIG. 6D and is any natural number.

호스트 장치(210)의 프로세서(211)는 제1 내지 제N 스토리지 컨트롤러들(221_1~221_N)의 각각에 대한 인-밴드 통신을 지원할 수 있다.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.

호스트 장치(210)의 BMC(212)는 제1 내지 제N MCU들(223_1~223_N)의 각각에 대한 아웃-오브-밴드 통신을 지원할 수 있다.The BMC 212 of the host device 210 may support out-of-band communication for each of the first to Nth MCUs 223_1 to 223_N.

호스트 장치(210)는 아웃-오브-밴드 통신을 통해서 제1 내지 제N 스토리지 장치들(220_1~220_N) 각각을 독립적으로 관리할 수 있다.The host device 210 may independently manage each of the first to Nth storage devices 220_1 to 220_N through out-of-band communication.

예를 들어, 전자 장치(200)의 동작하는 방법은, BMC(212)에 의해 제1 MCU(223_1)에게 아웃-오브-밴드 통신을 통해 제1 환경 데이터의 관리를 가리키는 제1 요청을 제공하는 것, 제1 MCU(223_1)에 의해 BMC(212)에게 아웃-오브-밴드 통신을 통해 제1 요청에 대응하는 제1 응답을 제공하는 것, BMC(212)에 의해 제2 MCU(223_2)에게 아웃-오브-밴드 통신을 통해 제2 환경 데이터의 관리를 가리키는 제2 요청을 제공하는 것, 그리고 제2 MCU(223_2)에 의해 BMC(212)에게 아웃-오브-밴드 통신을 통해 제2 요청에 대응하는 제2 응답을 제공하는 것을 포함할 수 있다.For example, a method of operating the electronic device 200 may include providing, by the BMC 212, a first request indicating management of first environment data to the first MCU 223_1 through out-of-band communication. providing a first response corresponding to the first request via out-of-band communication by the first MCU 223_1 to the BMC 212, by the BMC 212 to the second MCU 223_2. providing a second request indicating management of second environment data via out-of-band communication, and sending the second request via out-of-band communication to BMC 212 by the second MCU 223_2. and providing a corresponding second response.

상술된 내용은 본 발명을 실시하기 위한 구체적인 실시 예들이다. 본 발명은 상술된 실시 예들뿐만 아니라, 단순하게 설계 변경되거나 용이하게 변경할 수 있는 실시 예들 또한 포함할 것이다. 또한, 본 발명은 실시 예들을 이용하여 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다. 따라서, 본 발명의 범위는 상술된 실시 예들에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 할 것이다.The above-described details are specific embodiments for carrying out the present invention. The present invention will include not only the above-described embodiments, but also embodiments that can be simply changed or easily changed in design. In addition, the present invention will also include technologies that can be easily modified and implemented using the embodiments. Therefore, the scope of the present invention should not be limited to the above-described embodiments, but should be determined by the claims and equivalents of the present invention as well as the claims described later.

Claims (20)

호스트 장치 및 스토리지 장치를 포함하는 전자 장치의 동작하는 방법에 있어서, 상기 호스트 장치는 프로세서 및 BMC(Baseboard Management Controller)를 포함하고, 상기 스토리지 장치는 스토리지 컨트롤러 및 MCU(Micro Controller Unit)를 포함하고,
상기 BMC 및 상기 MCU는 아웃-오브-밴드 통신을 지원하고,
상기 방법은:
상기 BMC에 의해, 상기 MCU에게 상기 아웃-오브-밴드 통신을 통해 환경 데이터에 대한 정보를 포함하는 제1 요청을 제공하는 단계; 및
상기 MCU에 의해, 상기 BMC에게 상기 아웃-오브-밴드 통신을 통해 상기 제1 요청에 대응하는 제1 응답을 제공하는 단계를 포함하는 방법.
A method of operating an electronic device including a host device and a storage device, wherein the host device includes a processor and a Baseboard Management Controller (BMC), and the storage device includes a storage controller and a Micro Controller Unit (MCU),
The BMC and the MCU support out-of-band communication,
The above method is:
providing, by the BMC, a first request containing information about environmental data to the MCU through the out-of-band communication; and
and providing, by the MCU, a first response corresponding to the first request to the BMC via the out-of-band communication.
제 1 항에 있어서,
상기 프로세서 및 상기 스토리지 컨트롤러는 인-밴드 통신을 통해 서로 직접적으로 통신하고, 그리고
상기 BMC 및 상기 MCU는 상기 아웃-오브-밴드 통신을 통해 서로 직접적으로 통신하는 방법.
According to claim 1,
the processor and the storage controller communicate directly with each other through in-band communication, and
A method wherein the BMC and the MCU communicate directly with each other through the out-of-band communication.
제 1 항에 있어서,
상기 스토리지 장치는 사용자 데이터를 저장하도록 구성된 비-휘발성 메모리 장치, 및 상기 비-휘발성 메모리 장치의 감지 동작에 기초하여 센서 데이터를 생성하도록 구성된 센서 장치를 더 포함하고,
상기 스토리지 컨트롤러는 상기 비-휘발성 메모리 장치의 상태 모니터링 동작에 기초하여 텔레메트리 데이터를 생성하도록 구성되고,
상기 MCU는 상기 센서 장치로부터 센서 데이터를 수신하고, 상기 스토리지 컨트롤러로부터 상기 텔레메트리 데이터를 수신하고, 그리고 이전 센서 데이터 및 이전 텔레메트리 데이터 중 적어도 하나를 로그 데이터로서 저장하도록 구성되고, 그리고
상기 환경 데이터는 상기 센서 데이터, 상기 로그 데이터, 또는 상기 텔레메트리 데이터를 포함하는 방법.
According to claim 1,
The storage device further includes 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,
the storage controller is configured to generate telemetry data based on health monitoring operations of the non-volatile memory device,
The MCU is configured to receive sensor data from the sensor device, receive the telemetry data from the storage controller, and store at least one of previous sensor data and previous telemetry data as log data, and
The method of claim 1, wherein the environmental data includes the sensor data, the log data, or the telemetry data.
제 3 항에 있어서,
상기 센서 데이터는 전압 센서 데이터, 전류 센서 데이터, 온도 센서 데이터, 습도 센서 데이터 중 적어도 하나를 포함하는 방법.
According to claim 3,
The method wherein the sensor data includes at least one of voltage sensor data, current sensor data, temperature sensor data, and humidity sensor data.
제 3 항에 있어서,
상기 텔레메트리 데이터는 프로그램/소거(P/E) 사이클 정보, 프로그램 카운트 정보, 소거 카운트 정보, 읽기 카운트 정보, 에러 비트 카운트 정보, 및 문턱 전압 산포 정보 중 적어도 하나를 포함하는 방법.
According to claim 3,
The telemetry data includes at least one of program/erase (P/E) cycle information, program count information, erase count information, read count information, error bit count information, and threshold voltage distribution information.
제 1 항에 있어서,
상기 제1 요청의 제1 오피코드 필드의 제1 비트들은 센서 데이터 커맨드를 가리키고, 그리고
상기 제1 응답의 응답 바디 필드는 현재 센서 데이터를 포함하는 방법.
According to claim 1,
The first bits of the first opcode field of the first request indicate a sensor data command, and
The response body field of the first response includes current sensor data.
제 1 항에 있어서,
상기 제1 요청의 제1 오피코드 필드의 제1 비트들은 로그 데이터 커맨드를 가리키고,
상기 제1 응답의 응답 바디 필드는 로그 데이터를 포함하고, 그리고
상기 로그 데이터는 이전 센서 데이터 및 이전 텔레메트리 데이터 중 적어도 하나를 포함하는 방법.
According to claim 1,
The first bits of the first opcode field of the first request indicate a log data command,
The response body field of the first response includes log data, and
The method of claim 1, wherein the log data includes at least one of previous sensor data and previous telemetry data.
제 1 항에 있어서,
상기 제1 요청의 제1 오피코드 필드의 제1 비트들은 텔레메트리 데이터 커맨드를 가리키고, 그리고
상기 제1 응답의 응답 바디 필드는 현재 텔레메트리 데이터를 포함하는 방법.
According to claim 1,
The first bits of the first opcode field of the first request indicate a telemetry data command, and
The response body field of the first response includes current telemetry data.
제 1 항에 있어서,
상기 제1 요청의 제1 오피코드 필드의 제1 비트들은 알고리즘 협상 커맨드를 가리키고, 상기 제1 요청은 상기 BMC에 의해 지원되는 적어도 하나의 보안 알고리즘들을 포함하고, 그리고
상기 제1 응답의 응답 바디 필드는 상기 적어도 하나의 보안 알고리즘들 중 상기 MCU에 의해 선택된 타겟 보안 알고리즘을 포함하는 방법.
According to claim 1,
The first bits of the first opcode field of the first request indicate an algorithm negotiation command, the first request includes at least one security algorithm supported by the BMC, and
The response body field of the first response includes a target security algorithm selected by the MCU among the at least one security algorithm.
제 1 항에 있어서,
상기 제1 요청의 제1 오피코드 필드의 제1 비트들은 암호화 활성화 커맨드를 가리키고, 상기 제1 요청의 암호화 스위치 필드는 암호화의 활성화 또는 상기 암호화의 비활성화를 가리키고, 그리고
상기 제1 응답의 상태 코드는 상기 제1 요청의 성공을 가리키는 방법.
According to claim 1,
The first bits of the first opcode field of the first request indicate an encryption activation command, the encryption switch field of the first request indicates activation of encryption or deactivation of encryption, and
The status code of the first response indicates success of the first request.
제 1 항에 있어서,
상기 스토리지 장치는 사용자 데이터를 저장하도록 구성된 비-휘발성 메모리 장치를 더 포함하고,
상기 제1 요청의 제1 오피코드 필드의 제1 비트들은 알고리즘 협상 커맨드를 가리키고, 상기 제1 요청은 상기 BMC에 의해 지원되는 적어도 하나의 보안 알고리즘들을 포함하고,
상기 제1 응답의 응답 바디 필드는 상기 적어도 하나의 보안 알고리즘들 중 상기 MCU에 의해 선택된 타겟 보안 알고리즘을 포함하고,
상기 방법은:
상기 제1 응답을 제공한 후, 상기 BMC에 의해, 상기 MCU에게 상기 아웃-오브-밴드 통신을 통해, 상기 제1 응답에 기초하여 암호화 활성화 커맨드를 가리키는 제2 비트들을 갖는 제2 오피코드 필드를 포함하는 제2 요청을 제공하는 단계;
상기 MCU에 의해, 상기 BMC에게 상기 아웃-오브-밴드 통신을 통해, 상기 제2 요청의 성공을 가리키는 상태 코드를 포함하는 제2 응답을 제공하는 단계;
상기 BMC에 의해, 상기 MCU에게 상기 아웃-오브-밴드 통신을 통해, 센서 데이터 커맨드 또는 텔레메트리 데이터 커맨드를 가리키는 제3 비트들을 갖는 제3 오피코드 필드를 포함하는 제3 요청을 제공하는 단계;
상기 MCU에 의해, 상기 제3 요청에 기초하여 상기 비-휘발성 메모리 장치의 상태 모니터링 동작 또는 감지 동작을 수행함으로써 현재 환경 데이터를 생성하는 단계;
상기 MCU에 의해, 상기 타겟 보안 알고리즘에 기초하여 상기 현재 환경 데이터를 암호화하는 단계;
상기 MCU에 의해, 상기 BMC에게 상기 아웃-오브-밴드 통신을 통해, 상기 암호화된 현재 환경 데이터를 제공하는 단계; 및
상기 BMC에 의해, 상기 암호화된 현재 환경 데이터에 기초하여 상기 스토리지 장치를 관리하는 단계를 더 포함하는 방법.
According to claim 1,
The storage device further includes a non-volatile memory device configured to store user data,
The first bits of the first opcode field of the first request indicate an algorithm negotiation command, and the first request includes at least one security algorithm supported by the BMC,
The response body field of the first response includes a target security algorithm selected by the MCU among the at least one security algorithm,
The above method is:
After providing the first response, a second opcode field with second bits indicating an encryption activation command is sent by the BMC to the MCU via the out-of-band communication, based on the first response. providing a second request comprising;
providing, by the MCU, a second response to the BMC via the out-of-band communication, including a status code indicating success of the second request;
providing, by the BMC, to the MCU, via the out-of-band communication, a third request including a third opcode field having third bits indicating a sensor data command or a telemetry data command;
generating, by the MCU, current environment data by performing a status monitoring operation or sensing operation of the non-volatile memory device based on the third request;
encrypting, by the MCU, the current environment data based on the target security algorithm;
providing, by the MCU, the encrypted current environment data to the BMC through the out-of-band communication; and
The method further comprising managing, by the BMC, the storage device based on the encrypted current environment data.
제 1 항에 있어서,
상기 스토리지 장치는 사용자 데이터를 저장하도록 구성된 비-휘발성 메모리 장치를 더 포함하고,
상기 MCU는 상기 비-휘발성 메모리 장치의 이전 상태 모니터링 동작 또는 이전 감지 동작을 수행함으로써 생성된 이전 환경 데이터를 저장하도록 구성된 영구 메모리를 포함하고,
상기 제1 요청의 제1 오피코드 필드의 상기 제1 비트들은 알고리즘 협상 커맨드를 가리키고, 상기 제1 요청은 상기 BMC에 의해 지원되는 적어도 하나의 보안 알고리즘들을 포함하고,
상기 제1 응답의 응답 바디 필드는 상기 적어도 하나의 보안 알고리즘들 중 상기 MCU에 의해 선택된 타겟 보안 알고리즘을 포함하고,
상기 방법은:
상기 제1 응답을 제공한 후, 상기 BMC에 의해, 상기 MCU에게 상기 아웃-오브-밴드 통신을 통해, 상기 제1 응답에 기초하여 암호화 활성화 커맨드를 가리키는 제2 비트들을 갖는 제2 오피코드 필드를 포함하는 제2 요청을 제공하는 단계;
상기 MCU에 의해, 상기 BMC에게 상기 아웃-오브-밴드 통신을 통해, 상기 제2 요청의 성공을 가리키는 상태 코드를 포함하는 제2 응답을 제공하는 단계;
상기 BMC에 의해, 상기 MCU에게 상기 아웃-오브-밴드 통신을 통해, 로그 데이터 커맨드를 가리키는 제3 비트들을 갖는 제3 오피코드 필드를 포함하는 제3 요청을 제공하는 단계;
상기 MCU에 의해, 상기 제3 요청에 기초하여 상기 영구 메모리의 상기 이전 환경 데이터를 로드하는 단계;
상기 MCU에 의해, 상기 타겟 보안 알고리즘에 기초하여 상기 이전 환경 데이터를 암호화하는 단계;
상기 MCU에 의해, 상기 BMC에게 상기 아웃-오브-밴드 통신을 통해, 상기 암호화된 이전 환경 데이터를 제공하는 단계; 및
상기 BMC에 의해, 상기 암호화된 이전 환경 데이터에 기초하여 상기 스토리지 장치를 관리하는 단계를 더 포함하는 방법.
According to claim 1,
The storage device further includes a non-volatile memory device configured to store user data,
The MCU includes 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,
The first bits of the first opcode field of the first request indicate an algorithm negotiation command, and the first request includes at least one security algorithm supported by the BMC,
The response body field of the first response includes a target security algorithm selected by the MCU among the at least one security algorithm,
The above method is:
After providing the first response, a second opcode field with second bits indicating an encryption activation command is sent by the BMC to the MCU via the out-of-band communication, based on the first response. providing a second request comprising;
providing, by the MCU, a second response to the BMC via the out-of-band communication, including a status code indicating success of the second request;
providing, by the BMC, a third request to the MCU via the out-of-band communication, including a third opcode field with third bits indicating a log data command;
loading, by the MCU, the previous environment data in the persistent memory based on the third request;
Encrypting, by the MCU, the previous environment data based on the target security algorithm;
providing, by the MCU, the encrypted previous environment data to the BMC through the out-of-band communication; and
The method further comprising managing, by the BMC, the storage device based on the encrypted previous environment data.
제 1 항에 있어서,
상기 제1 응답의 상태 코드는 상기 제1 요청의 실패를 가리키는 에러 타입을 포함하고,
상기 에러 타입은:
상기 제1 요청의 제1 오피코드 필드의 상기 제1 비트들에 대응하는 값이 유효하지 않음을 가리키는 제1 에러 타입;
상기 제1 요청의 IC(Integrity Check) 필드가 유효하지 않음을 가리키는 제2 에러 타입;
상기 제1 요청의 ROR(Request Or Response) 필드가 유효하지 않음을 가리키는 제3 에러 타입;
상기 제1 요청의 NVMe_MI(Non-Volatile Memory Express Management Interface) 메시지 타입이 유효하지 않음을 가리키는 제4 에러 타입;
상기 제1 요청의 메시지 바디의 크기가 기준 크기를 초과함을 가리키는 제5 에러 타입;
상기 제1 요청의 메시지 무결성 체크(message integrity check)에 의해 상기 제1 요청이 유효하지 않음을 가리키는 제6 에러 타입;
상기 BMC에 의해 지원되는 적어도 하나의 보안 알고리즘들은 모두 상기 MCU에 의해 지원되지 않음을 가리키는 제7 에러 타입; 및
상기 MCU에 의한 암호화의 실패를 가리키는 제8 에러 타입 중 적어도 하나를 포함하는 방법.
According to claim 1,
The status code of the first response includes an error type indicating failure of the first request,
The above error types are:
a first error type indicating that values corresponding to the first bits of the first opcode field of the first request are invalid;
a second error type indicating that an Integrity Check (IC) field of the first request is invalid;
A third error type indicating that the Request Or Response (ROR) field of the first request is invalid;
a fourth error type indicating that the NVMe_MI (Non-Volatile Memory Express Management Interface) message type of the first request is invalid;
a fifth error type indicating that the size of the message body of the first request exceeds a standard size;
a sixth error type indicating that the first request is invalid according to a message integrity check of the first request;
a seventh error type indicating that at least one security algorithm supported by the BMC is not supported by the MCU; and
A method including at least one of the eighth error types indicating failure of encryption by the MCU.
제 1 항에 있어서,
상기 호스트 장치는:
상기 스토리지 컨트롤러에게 제1 전원 전압을 제공하도록 구성된 메인 전원 공급기; 및
상기 MCU에게 상기 제1 전원 전압과 다른 제2 전원 전압을 제공하도록 구성된 보조 전원 공급기를 더 포함하는 방법.
According to claim 1,
The host device is:
a main power supply configured to provide a first power voltage to the storage controller; and
The method further includes an auxiliary power supply configured to provide the MCU with a second power voltage different from the first power voltage.
제 1 항에 있어서,
상기 전자 장치는 추가 스토리지 장치를 더 포함하고, 상기 추가 스토리지 장치는 추가 스토리지 컨트롤러 및 추가 MCU를 더 포함하고,
상기 프로세서 및 상기 추가 스토리지 컨트롤러는 인-밴드 통신을 통해 서로 직접적으로 통신하고, 그리고
상기 BMC 및 상기 MCU는 상기 아웃-오브-밴드 통신을 통해 서로 직접적으로 통신하는 방법.
According to claim 1,
The electronic device further includes an additional storage device, the additional storage device further includes an additional storage controller and an additional MCU,
the processor and the additional storage controller communicate directly with each other through in-band communication, and
A method wherein the BMC and the MCU communicate directly with each other through the out-of-band communication.
호스트 장치, 제1 스토리지 장치, 및 제2 스토리지 장치를 포함하는 전자 장치의 동작하는 방법에 있어서, 상기 호스트는 프로세서 및 BMC(Baseboard Management Controller)를 포함하고, 상기 제1 스토리지 장치는 제1 스토리지 컨트롤러 및 제1 MCU(Micro Controller Unit)를 포함하고, 상기 제2 스토리지 장치는 제2 스토리지 컨트롤러 및 제2 MCU를 포함하고,
상기 프로세서, 상기 제1 스토리지 컨트롤러, 및 상기 제2 스토리지 컨트롤러는 인-밴드 통신을 지원하고, 상기 BMC, 상기 제1 MCU, 및 상기 제2 MCU는 아웃-오브-밴드 통신을 지원하고,
상기 방법은:
상기 BMC에 의해, 상기 제1 MCU에게 상기 아웃-오브-밴드 통신을 통해 제1 환경 데이터에 대한 정보를 포함하는 제1 요청을 제공하는 단계;
상기 제1 MCU에 의해, 상기 BMC에게 상기 아웃-오브-밴드 통신을 통해 상기 제1 요청에 대응하는 제1 응답을 제공하는 단계;
상기 BMC에 의해, 상기 제2 MCU에게 상기 아웃-오브-밴드 통신을 통해 제2 환경 데이터에 대한 정보를 포함하는 제2 요청을 제공하는 단계; 및
상기 제2 MCU에 의해, 상기 BMC에게 상기 아웃-오브-밴드 통신을 통해 상기 제2 요청에 대응하는 제2 응답을 제공하는 단계를 포함하는 방법.
A method of operating an electronic device including a host device, a first storage device, and a second storage device, wherein the host includes a processor and a Baseboard Management Controller (BMC), and the first storage device includes a first storage controller. and a first MCU (Micro Controller Unit), wherein the second storage device includes a second storage controller and a second MCU,
The processor, the first storage controller, and the second storage controller support in-band communication, and the BMC, the first MCU, and the second MCU support out-of-band communication,
The above method is:
providing, by the BMC, a first request including information about first environment data to the first MCU through the out-of-band communication;
providing, by the first MCU, a first response corresponding to the first request to the BMC through the out-of-band communication;
providing, by the BMC, a second request including information about second environment data to the second MCU through the out-of-band communication; and
and providing, by the second MCU, a second response corresponding to the second request to the BMC through the out-of-band communication.
제 16 항에 있어서,
상기 제1 요청의 제1 오피코드 필드의 제1 비트들은 센서 데이터 커맨드, 로그 데이터 커맨드, 텔레메트리 데이터 커맨드, 알고리즘 협상 커맨드, 또는 암호화 활성화 커맨드를 가리키는 방법.
According to claim 16,
The first bits of the first opcode field of the first request indicate a sensor data command, a log data command, a telemetry data command, an algorithm negotiation command, or an encryption activation command.
프로세서 및 BMC(Baseboard Management Controller)를 포함하는 호스트 장치; 및
스토리지 컨트롤러 및 MCU(Micro Controller Unit)를 포함하는 스토리지 장치를 포함하되,
상기 BMC 및 상기 MCU는 아웃-오브-밴드 통신을 지원하고,
상기 BMC는 상기 MCU에게 상기 아웃-오브-밴드 통신을 통해 환경 데이터에 대한 정보를 포함하는 요청을 제공하도록 구성되고, 그리고
상기 MCU는 상기 BMC에게 상기 아웃-오브-밴드 통신을 통해 상기 요청에 대응하는 응답을 제공하도록 구성된 전자 장치.
A host device including a processor and a Baseboard Management Controller (BMC); and
A storage device including a storage controller and a micro controller unit (MCU),
The BMC and the MCU support out-of-band communication,
The BMC is configured to provide a request containing information about environmental data to the MCU through the out-of-band communication, and
The MCU is configured to provide a response corresponding to the request to the BMC through the out-of-band communication.
제 18 항에 있어서,
상기 스토리지 장치는:
사용자 데이터를 저장하도록 구성된 비-휘발성 메모리 장치; 및
상기 비-휘발성 메모리 장치의 감지 동작에 기초하여 센서 데이터를 생성하도록 구성된 센서 장치를 더 포함하고,
상기 스토리지 컨트롤러는 상기 비-휘발성 메모리 장치의 상태 모니터링 동작에 기초하여 텔레메트리 데이터를 생성하도록 구성되고,
상기 MCU는 상기 센서 장치로부터 센서 데이터를 수신하고, 상기 스토리지 컨트롤러로부터 상기 텔레메트리 데이터를 수신하고, 그리고 이전 센서 데이터 및 이전 텔레메트리 데이터 중 적어도 하나를 로그 데이터로서 저장하도록 더 구성된 전자 장치.
According to claim 18,
The storage device is:
a non-volatile memory device configured to store user data; and
further comprising a sensor device configured to generate sensor data based on a sensing operation of the non-volatile memory device,
the storage controller is configured to generate telemetry data based on health monitoring operations of the non-volatile memory device,
The MCU is further configured to receive sensor data from the sensor device, receive the telemetry data from the storage controller, and store at least one of previous sensor data and previous telemetry data as log data.
제 18 항에 있어서,
상기 호스트 장치는:
상기 스토리지 컨트롤러에게 제1 전원 전압을 제공하도록 구성된 메인 전원 공급기; 및
상기 MCU에게 상기 제1 전원 전압과 다른 제2 전원 전압을 제공하도록 구성된 보조 전원 공급기를 더 포함하는 전자 장치.
According to claim 18,
The host device is:
a main power supply configured to provide a first power voltage to the storage controller; and
The electronic device further includes an auxiliary power supply configured to provide the MCU with a second power voltage different from the first power voltage.
KR1020230000283A 2022-07-21 2023-01-02 Electronic device supporting out-of-band communication, and method of operating the same KR20240013017A (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US18/215,599 US20240028493A1 (en) 2022-07-21 2023-06-28 Electronic device supporting out-of-band communication, and method of operating the same
EP23185535.4A EP4310658A1 (en) 2022-07-21 2023-07-14 Electronic device supporting out-of-band communication, and method of operating the same
CN202310887241.1A CN117440263A (en) 2022-07-21 2023-07-19 Electronic device supporting out-of-band communication and method of operating the same

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020220090564 2022-07-21
KR20220090564 2022-07-21

Publications (1)

Publication Number Publication Date
KR20240013017A true KR20240013017A (en) 2024-01-30

Family

ID=89714996

Family Applications (1)

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

Country Status (1)

Country Link
KR (1) KR20240013017A (en)

Similar Documents

Publication Publication Date Title
KR102013841B1 (en) Method of managing key for secure storage of data, and and apparatus there-of
CN102945355B (en) Fast Data Encipherment strategy based on sector map is deferred to
US10795593B2 (en) Technologies for adjusting the performance of data storage devices based on telemetry data
US10922117B2 (en) VTPM-based virtual machine security protection method and system
US8918652B2 (en) System and method for BIOS and controller communication
US8938626B2 (en) Single command functionality for providing data security and preventing data access within a decommissioned information handling system
US11210430B2 (en) System and method to negotiate encryption responsibilities between an encryption capable controller and a self encrypting drive
KR102176612B1 (en) Secure subsystem
US11556490B2 (en) Baseboard management controller-based security operations for hot plug capable devices
US20090067633A1 (en) Configuring host settings to specify an encryption setting and a key label referencing a key encyrption key to use to encrypt an encryption key provided to a storage drive to use to encrypt data from the host
US10572167B1 (en) Storage data sanitization
TWI712889B (en) Memory device and program
JP2007140956A (en) Information processing system, management server, terminal and information processor
CN111090869A (en) Data encryption method, processor and computer equipment
US8886997B2 (en) Hardware security module and processing method in such a module with augmented communication features
CN117112474B (en) Universal trusted substrate management method and system
US20210264055A1 (en) Pre-operating system environment-based sanitization of storage devices
KR20170141298A (en) Data storage device and operating method thereof
KR20230029113A (en) Electronic device
US20190087353A1 (en) Data storage apparatus
KR20240013017A (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
KR20120021490A (en) Storage device wihh bi-directional communication techniques and system including the same
US10929030B2 (en) Computer and control method