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 PDFInfo
- 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
Links
- 238000004891 communication Methods 0.000 title claims abstract description 141
- 238000000034 method Methods 0.000 title claims abstract description 43
- 230000004044 response Effects 0.000 claims abstract description 117
- 230000007613 environmental effect Effects 0.000 claims abstract description 50
- 238000012544 monitoring process Methods 0.000 claims description 25
- 230000002085 persistent effect Effects 0.000 claims description 18
- 230000004913 activation Effects 0.000 claims description 15
- 230000036541 health Effects 0.000 claims description 8
- 230000009849 deactivation Effects 0.000 claims description 3
- 238000007726 management method Methods 0.000 description 25
- 238000010586 diagram Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 6
- 102100036285 25-hydroxyvitamin D-1 alpha hydroxylase, mitochondrial Human genes 0.000 description 5
- 101000875403 Homo sapiens 25-hydroxyvitamin D-1 alpha hydroxylase, mitochondrial Proteins 0.000 description 5
- 238000012806 monitoring device Methods 0.000 description 4
- 230000003213 activating effect Effects 0.000 description 3
- 125000004122 cyclic group Chemical group 0.000 description 3
- 241001290266 Sciaenops ocellatus Species 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000006866 deterioration Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller 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.
Description
본 개시는 전자 장치에 관한 것으로, 좀 더 상세하게는 아웃-오브-밴드 통신을 지원하는 전자 장치, 및 이의 동작하는 방법에 관한 것이다.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
호스트 장치(110)는 전자 장치(100)의 제반 동작을 제어할 수 있다. 예를 들어, 호스트 장치(110)는 스토리지 장치(120)에 데이터를 저장하거나, 스토리지 장치(120)에 저장된 데이터를 읽거나, 또는 스토리지 장치(120)에 저장된 데이터의 신뢰성을 유지하기 위해 스토리지 장치(120)의 환경 데이터를 관리할 수 있다. The
환경 데이터는 전압, 전류, 온도, 습도 등과 같은 물리적인 환경 정보를 포함할 수 있다. 물리적인 환경 정보는 센서 데이터(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
프로세서(111)는 스토리지 장치(120)에 데이터를 저장하거나 또는 스토리지 장치(120)에 저장된 데이터를 읽을 수 있다. 예를 들어, 프로세서(111)는 CPU(central processing unit)로 구현될 수 있다. 프로세서(111)는 운영 체제(OS; operating system)를 실행할 수 있고, The
운영 체제(OS)는 스토리지 장치(120)와의 인-밴드 통신(in-band communication)을 지원할 수 있다. 인-밴드 통신은 호스트 장치(110)의 프로세서(111) 및 스토리지 장치(120)의 스토리지 컨트롤러(121) 사이의 통신을 가리킬 수 있고, 운영 체제를 사용하는 통신일 수 있다.The operating system (OS) may support in-band communication with the
BMC(112)는 스토리지 장치(120)의 환경 데이터를 관리할 수 있다. 예를 들어, BMC(112)는 MCU(123)에게 감지 동작 또는 모니터링 동작을 요청할 수 있고, MCU(123)로부터 환경 데이터를 수신하고, 환경 데이터를 프로세서(111)에게 제공할 수 있다. 프로세서(111)에 의해 실행되는 운영 체제는 BMC(112)에 의해 획득된 환경 데이터에 기초하여 스토리지 장치(120)를 관리할 수 있다.The BMC 112 may manage environmental data of the
BMC(112)는 스토리지 장치(120)와의 아웃-오브-밴드 통신(out-of-band communication)을 지원할 수 있다. 아웃-오브-밴드 통신은 호스트 장치(110)의 BMC(112) 및 스토리지 장치(120)의 MCU(123) 사이의 통신을 가리킬 수 있고, 운영 체제를 사용하지 않는 통신일 수 있다. 아웃-오브-밴드 통신을 위한 인터페이스는 인-밴드 통신을 위한 인터페이스와 별도로 구비될 수 있다.BMC 112 may support out-of-band communication with the
일부 실시 예들에서, 아웃-오브-밴드 통신은 다양한 프로토콜들을 지원할 수 있다. 예를 들어, 아웃-오브-밴드 통신은 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
스토리지 컨트롤러(121)는 프로세서(111)의 제어에 따라 스토리지 장치(120)의 제반 동작을 제어할 수 있다. 예를 들어, 스토리지 컨트롤러(121)는 프로세서(111)의 제어에 따라 비-휘발성 메모리 장치(122)에 사용자 데이터(UD)를 저장하거나, 비-휘발성 메모리 장치(122)에 저장된 사용자 데이터(UD)를 읽거나, 또는 비-휘발성 메모리 장치(122)의 모니터링 동작을 수행함으로써 텔레메트리 데이터(TD)를 생성할 수 있다. 모니터링 동작은 비-휘발성 메모리 장치(122)의 문턱 전압 산포의 열화 수준을 확인하는 헬스 체크 동작일 수 있다. 스토리지 컨트롤러(121)는 메인 컨트롤러로도 지칭될 수 있다.The
스토리지 컨트롤러(121)는 프로세서(111), 비-휘발성 메모리 장치(122), 및 MCU(123)와 통신할 수 있다. 스토리지 컨트롤러(121)는 프로세서(111)와의 인-밴드 통신을 지원할 수 있다. 스토리지 컨트롤러(121)는 비-휘발성 메모리 장치(122)의 모니터링 동작을 수행할 수 있다. 스토리지 컨트롤러(121)는 MCU(123)에게 텔레메트리 데이터(TD)를 제공할 수 있다.
일부 실시 예들에서, 텔레메트리 데이터(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
일부 실시 예들에서, 비-휘발성 메모리 장치(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
MCU(123)는 스토리지 장치(120)의 상태를 모니터링하고, 그리고 스토리지 장치(120)에서 발생한 이벤트를 관리할 수 있다. 이벤트는 전압 변화, 전류 변화, 습도 변화, 온도 변화, 파워-오프 등을 포함할 수 있다. MCU(123)는 BMC(112)로부터 환경 데이터에 관한 요청을 수신하고, BMC(112)의 요청에 대응하는 응답을 BMC(112)에게 제공할 수 있다.The
MCU(123)는 BMC(112), 스토리지 컨트롤러(121), 및 센서 장치(124)와 통신할 수 있다. MCU(123)는 BMC(112)와의 아웃-오브-밴드 통신을 지원할 수 있다. MCU(123)는 스토리지 컨트롤러(121)로부터 텔레메트리 데이터(TD)를 수신할 수 있다. MCU(123)는 센서 장치(124)로부터 센서 데이터(SD)를 수신할 수 있다.
MCU(123)는 영구 메모리(persistent memory)를 포함할 수 있다. 예를 들어, 영구 메모리는 EEPROM(Electrically Erasable Programmable Read-Only Memory)로 구현될 수 있다. MCU(123)는 텔레메트리 데이터(TD) 및 센서 데이터(SD) 중 적어도 하나를 로그 데이터(LD)로서 영구 메모리에 저장할 수 있다. 로그 데이터(LD)는 이전 시점의 텔레메트리 데이터 및 이전 시점의 센서 데이터 중 적어도 하나를 포함할 수 있다. 예를 들어, 로그 데이터(LD)는 스토리지 컨트롤러(121)의 이전 모니터링 동작에 의해 생성된 텔레메트리 데이터 및 센서 장치(124)의 이전 감지 동작에 의해 생성된 센서 데이터 중 적어도 하나를 포함할 수 있다.The
MCU(123)는 BMC(112)의 요청에 따라, 환경 데이터를 BMC(112)에게 제공할 수 있다. 환경 데이터는 센서 데이터(SD), 로그 데이터(LD), 또는 텔레메트리 데이터(TD)를 포함할 수 있다. MCU(123)는 센서 데이터(SD), 로그 데이터(LD), 및 텔레메트리 데이터(TD)의 보안 동작을 관리할 수 있다.The
센서 장치(124)는 스토리지 장치(120)의 물리적인 환경을 감지하고 센서 데이터(SD)를 생성할 수 있다. 센서 장치(124)는 MCU(123)와 통신할 수 있다. 센서 장치(124)는 센서 데이터(SD)를 MCU(123)에게 제공할 수 있다.The
일부 실시 예들에서, 센서 데이터(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
도 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
프로세서(111), BMC(112), 스토리지 컨트롤러(121), 비-휘발성 메모리 장치(122), MCU(123), 및 센서 장치(124)는 도 1의 프로세서(111), BMC(112), 스토리지 컨트롤러(121), 비-휘발성 메모리 장치(122), MCU(123), 및 센서 장치(124)에 대응할 수 있다.The
전원 공급 장치(113)는 메인 전원 공급기 및 보조 전원 공급기를 포함할 수 있다. 메인 전원 공급기는 제1 전원 전압(VDD1)을 스토리지 장치(120)에게 제공할 수 있다. 스토리지 장치(120)의 스토리지 컨트롤러(121)는 제1 전원 전압(VDD1)에 의해 구동될 수 있다. 보조 전원 공급기는 제2 전원 전압(VDD2)을 스토리지 장치(120)에게 제공할 수 있다. 스토리지 장치(120)의 MCU(123)는 제2 전원 전압(VDD2)에 의해 구동될 수 있다. The
제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
스토리지 컨트롤러(121)는 상태 모니터링 장치를 포함할 수 있다. 예를 들어, 상태 모니터링 장치는 비-휘발성 메모리 장치(122)의 헬스 체크 동작을 수행하는 소프트웨어 장치 또는 펌웨어 모듈로 구현될 수 있다. 상태 모니터링 장치는 비-휘발성 메모리 장치(122)의 모니터링 동작을 수행함으로써 텔레메트리 데이터(TD)를 생성할 수 있다. 상태 모니터링 장치는 MCU(123)에게 텔레메트리 데이터(TD)를 제공할 수 있다. MCU(123)는 영구 메모리에 로그 데이터(LD)로서 텔레메트리 데이터(TD)를 저장하거나, 또는 아웃-오브-밴드 통신을 통해서 BMC(112)에게 텔레메트리 데이터(TD)를 제공할 수 있다.The
MCU(123)는 영구 메모리 및 보안 관리자를 포함할 수 있다. 영구 메모리는 로그 데이터(LD)를 저장할 수 있다. 로그 데이터(LD)는 스토리지 컨트롤러(121)로부터 수신된 이전 텔레메트리 데이터 및 센서 장치(124)로부터 수신된 이전 센서 데이터 중 적어도 하나를 포함할 수 있다. MCU(123)는 BMC(112)로부터 로그 데이터(LD)의 요청을 수신하고, 영구 메모리에 저장된 로그 데이터(LD)를 포함하는 응답을 BMC(112)에게 제공할 수 있다.
보안 관리자는 환경 데이터의 보안 동작을 관리할 수 있다. 예를 들어, 보안 관리자는 보안 동작을 수행하는 소프트웨어 장치 또는 펌웨어 모듈로 구현될 수 있다. 보안 관리자는 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
센서 장치(124)는 전압 센서, 전류 센서, 온도 센서, 및 습도 센서를 포함할 수 있다. 전압 센서는 비-휘발성 메모리 장치(122)에 제공되는 전압을 감지하고, 제1 센서 데이터(SD1)를 생성할 수 있다. 전류 센서는 비-휘발성 메모리 장치(122)에 제공되는 전류를 감지하고, 제2 센서 데이터(SD2)를 생성할 수 있다. 온도 센서는 비-휘발성 메모리 장치(122)의 온도를 감지하고, 제3 센서 데이터(SD3)를 생성할 수 있다. 습도 센서는 비-휘발성 메모리 장치(122)의 습도를 감지하고, 제4 센서 데이터(SD4)를 생성할 수 있다. 제1, 제2, 제3, 및 제4 센서 데이터(SD1, SD2, SD3, SD4)는 도 1의 센서 데이터(SD)에 대응할 수 있다.
센서 장치(124)는 제1, 제2, 제3, 및 제4 센서 데이터(SD1, SD2, SD3, SD4) 중 적어도 하나를 센서 데이터로서 MCU(123)에게 제공할 수 있다. MCU(123)는 영구 메모리에 로그 데이터(LD)로서 센서 데이터를 저장하거나, 또는 아웃-오브-밴드 통신을 통해서 BMC(112)에게 센서 데이터를 제공할 수 있다.The
호스트 장치(110)의 프로세서(111) 및 스토리지 장치(120)의 스토리지 컨트롤러(121)는 인-밴드 통신을 지원할 수 있다. 인-밴드 통신을 통해서, 프로세서(111)는 스토리지 장치(120)에서 수행될 동작을 가리키는 커맨드(예를 들어, 읽기 커맨드, 쓰기 커맨드, 소거 커맨드 등)를 포함하는 요청을 스토리지 컨트롤러(121)에게 제공할 수 있다. 인-밴드 통신을 통해서, 스토리지 컨트롤러(121)는 프로세서(111)의 요청에 대응하는 응답을 프로세서(111)에게 제공할 수 있다. The
호스트 장치(110)의 BMC(112) 및 스토리지 장치(120)의 MCU(123)는 아웃-오브-밴드 통신을 지원할 수 있다. 아웃-오브-밴드 통신을 통해서, BMC(112)는 환경 데이터의 관리를 가리키는 요청을 MCU(123)에게 제공할 수 있다. 아웃-오브-밴드 통신을 통해서, MCU(123)는 BMC(112)의 요청에 대응하는 응답을 BMC(112)에게 제공할 수 있다.The
다시 말해서, BMC(112) 및 MCU(123)는 아웃-오브-밴드 통신을 통해서 직접적으로 통신할 수 있다. BMC(112) 및 MCU(123)는 인-밴드 통신의 대역폭을 소모하지 않으면서 아웃-오브-밴드 통신을 통해서 직접적으로 통신할 수 있다. BMC(112) 및 MCU(123)는 아웃-오브-밴드 통신을 통해서 양방향으로 통신할 수 있다. MCU(123)는 아웃-오브-밴드 통신을 통해서 BMC(112)에게 환경 데이터에 관한 다양한 정보를 제공할 수 있다. 아웃-오브-밴드 통신은 고객 또는 제조사에게 다양하고 유연한 통신 인터페이스 환경을 제공할 수 있다.In other words, the
도 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
S110 단계에서, 전자 장치(100)는 BMC(112)에 의해, MCU(123)에게 아웃-오브-밴드 통신을 통해 환경 데이터의 관리를 가리키는 요청을 제공할 수 있다.In step S110, the
일부 실시 예들에서, 환경 데이터는 센서 데이터, 로그 데이터, 또는 텔레메트리 데이터를 포함할 수 있다. 예를 들어, 센서 데이터는 감지 동작에 기초하여 생성될 수 있다. 텔레메트리 데이터는 모니터링 동작에 기초하여 생성될 수 있다. 로그 데이터는 이전 감지 동작에 기초하여 생성된 이전 센서 데이터 및 이전 모니터링 동작에 기초하여 생성된 이전 텔레메트리 데이터 중 적어도 하나를 포함할 수 있다.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
도 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
오피코드 필드는 커맨드에 대응하는 비트들을 포함할 수 있다. (도 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
상태 코드 필드는 응답에 대응하는 메시지에 포함될 수 있다. 상태 코드 필드는 요청이 성공적으로 처리되었는지 가리킬 수 있다. 요청이 성공한 경우, 상태 코드 필드는 성공 코드를 포함할 수 있다. 요청이 실패한 경우, 상태 코드 필드는 실패를 설명하는 에러 코드를 포함할 수 있다.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
메시지 무결성 체크 필드는 메시지 무결성 체크에 의해 유효한지 여부를 가리킬 수 있다. 예를 들어, 메시지 무결성 체크 필드는 순환 중복 검사(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
요청(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
응답(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
도 6b를 참조하면, BMC(112)는 아웃-오브-밴드 통신을 통해 MCU(123)에게 요청(RQb)을 제공할 수 있다. MCU(123)는 아웃-오브-밴드 통신을 통해 BMC(112)에게 응답(RPb)을 제공할 수 있다.Referring to FIG. 6B, the
요청(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
응답(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
도 6c를 참조하면, BMC(112)는 아웃-오브-밴드 통신을 통해 MCU(123)에게 요청(RQc)을 제공할 수 있다. MCU(123)는 아웃-오브-밴드 통신을 통해 BMC(112)에게 응답(RPc)을 제공할 수 있다.Referring to FIG. 6C, the
요청(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
응답(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
도 6d를 참조하면, BMC(112)는 아웃-오브-밴드 통신을 통해 MCU(123)에게 요청(RQd)을 제공할 수 있다. MCU(123)는 아웃-오브-밴드 통신을 통해 BMC(112)에게 응답(RPd)을 제공할 수 있다.Referring to FIG. 6D, the
요청(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
응답(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
일부 실시 예들에서, 제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
도 6e를 참조하면, BMC(112)는 아웃-오브-밴드 통신을 통해 MCU(123)에게 요청(RQe)을 제공할 수 있다. MCU(123)는 아웃-오브-밴드 통신을 통해 BMC(112)에게 응답(RPe)을 제공할 수 있다.Referring to FIG. 6E, the
요청(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
응답(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
일부 실시 예들에서, 응답(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
도 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
S210 단계에서, 전자 장치(100)는 BMC(112)에 의해, 알고리즘 협상을 가리키는 제1 요청을 MCU(123)에게 제공할 수 있다. 예를 들어, 제1 요청의 오피코드 필드의 비트들은 알고리즘 협상 커맨드를 가리킬 수 있다. 제1 요청은 BMC(112)에 의해 지원되는 적어도 하나의 보안 알고리즘들을 포함할 수 있다. MCU(123)는 제1 요청의 적어도 하나의 보안 알고리즘들 중에서 하나를 타겟 보안 알고리즘으로 선택할 수 있다. 타겟 보안 알고리즘은 BMC(112) 및 MCU(123) 모두에 의해 지원될 수 있다.In step S210, the
S220 단계에서, 전자 장치(100)는 MCU(123)에 의해, 선택된 알고리즘을 가리키는 제1 응답을 BMC(112)에게 제공할 수 있다. 제1 응답은 BMC(112)에 의해 지원되는 적어도 하나의 보안 알고리즘들 중에서 MCU(123)에 의해 선택된 타겟 보안 알고리즘을 포함할 수 있다.In step S220, the
S230 단계에서, 전자 장치(100)는 BMC(112)에 의해, 암호화를 활성화하기 위한 제2 요청을 MCU(123)에게 제공할 수 있다. 예를 들어, 제2 요청의 오피코드 필드의 비트들은 암호화 활성화 커맨드를 가리킬 수 있다. 제2 요청의 암호화 스위치 필드는 암호화의 활성화를 가리킬 수 있다. MCU(123)는 제2 요청에 기초하여 환경 데이터의 암호화를 활성화할 수 있다. 암호화를 활성화한 이후, 암호화를 비활성화하기 전까지, MCU(123)는 환경 데이터를 암호화하고, 암호화된 환경 데이터를 BMC(112)에게 제공할 수 있다.In step S230, the
S240 단계에서, 전자 장치(100)는 MCU(123)에 의해, 암호화가 활성화되었음을 가리키는 제2 응답을 BMC(112)에게 제공할 수 있다. 제2 응답의 상태 코드는 제2 요청의 성공을 가리킬 수 있다.In step S240, the
S250 단계에서, 전자 장치(100)는 BMC(112)에 의해, 현재 환경 데이터에 대한 제3 요청을 MCU(123)에게 제공할 수 있다. 제3 요청의 오피코드 필드의 비트들은 센서 데이터 커맨드 또는 텔레메트리 데이터 커맨드를 가리킬 수 있다. 현재 환경 데이터는 센서 데이터 또는 텔레메트리 데이터를 가리킬 수 있다.In step S250, the
S251 단계에서, 전자 장치(100)는 MCU(123)에 의해, 스토리지 장치 내의 비-휘발성 메모리 장치의 모니터링 동작 또는 감지 동작을 수행하고, 모니터링 동작 또는 감지 동작에 기초하여 현재 환경 데이터를 생성할 수 있다. In step S251, the
예를 들어, 제3 요청의 오피코드 필드의 비트들이 센서 데이터 커맨드를 가리키면, MCU(123)는 비-휘발성 메모리 장치의 감지 동작을 수행하고, 감지 동작에 기초하여 센서 데이터를 생성할 수 있다. MCU(123)는 센서 데이터를 현재 환경 데이터로서 관리할 수 있다.For example, if the bits of the opcode field of the third request indicate a sensor data command, the
또 다른 예로서, 제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
S252 단계에서, 전자 장치(100)는 MCU(123)에 의해, 현재 환경 데이터를 암호화할 수 있다. 예를 들어, MCU(123)는 S210 단계의 제1 요청에 기초하여 선택된 타겟 보안 알고리즘에 기초하여 현재 환경 데이터를 암호화할 수 있다.In step S252, the
S260 단계에서, 전자 장치(100)는 MCU(123)에 의해, 암호화된 현재 환경 데이터를 포함하는 제3 응답을 BMC(112)에게 제공할 수 있다.In step S260, the
S261 단계에서, 전자 장치(100)는 BMC(112)에 의해, 암호화된 현재 환경 데이터에 기초하여 스토리지 장치를 관리할 수 있다. 예를 들어, BMC(112)는 암호화된 현재 환경 데이터를 복호화할 수 있다. BMC(112)는 복호화된 현재 환경 데이터에 기초하여, 스토리지 장치의 물리적인 상태 또는 저장된 사용자 데이터의 신뢰성 수준을 확인하고, 이에 따라 스토리지 장치를 관리할 수 있다.In step S261, the
S270 단계에서, 전자 장치(100)는 BMC(112)에 의해, 암호화를 비활성화하기 위한 제4 요청을 MCU(123)에게 제공할 수 있다. 예를 들어, 제4 요청의 오피코드 필드의 비트들은 암호화 활성화 커맨드를 가리킬 수 있다. 제4 요청의 암호화 스위치 필드는 암호화의 비활성화를 가리킬 수 있다. MCU(123)는 제4 요청에 기초하여 환경 데이터의 암호화를 비활성화할 수 있다. 암호화를 비활성화한 이후, 암호화를 다시 활성화하기 전까지, MCU(123)는 암호화되지 않은 환경 데이터를 BMC(112)에게 제공할 수 있다.In step S270, the
S280 단계에서, 전자 장치(100)는 MCU(123)에 의해, 암호화가 비활성화되었음을 가리키는 제4 응답을 BMC(112)에게 제공할 수 있다. 제4 응답의 상태 코드는 제4 요청의 성공을 가리킬 수 있다.In step S280, the
도 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
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
S351 단계에서, 전자 장치(100)는 MCU(123)에 의해, 이전 환경 데이터를 로드할 수 있다. 예를 들어, MCU(123)는 MCU(123)에 내장된 영구 메모리에 저장된 로그 데이터를 읽을 수 있다. MCU(123)는 로그 데이터를 이전 환경 데이터로서 관리할 수 있다.In step S351, the
S352 단계에서, 전자 장치(100)는 MCU(123)에 의해, 이전 환경 데이터를 암호화할 수 있다. 예를 들어, MCU(123)는 S310 단계의 제1 요청에 기초하여 선택된 타겟 보안 알고리즘에 기초하여 이전 환경 데이터를 암호화할 수 있다.In step S352, the
S360 단계에서, 전자 장치(100)는 MCU(123)에 의해, 암호화된 이전 환경 데이터를 포함하는 제3 응답을 BMC(112)에게 제공할 수 있다.In step S360, the
S361 단계에서, 전자 장치(100)는 BMC(112)에 의해, 암호화된 이전 환경 데이터에 기초하여 스토리지 장치를 관리할 수 있다. 예를 들어, BMC(112)는 암호화된 이전 환경 데이터를 복호화할 수 있다. BMC(112)는 복호화된 이전 환경 데이터에 기초하여, 스토리지 장치의 물리적인 상태 또는 저장된 사용자 데이터의 신뢰성 수준을 확인하고, 이에 따라 스토리지 장치를 관리할 수 있다.In step S361, the
도 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
S410 단계에서, 전자 장치(100)의 BMC(112)는 환경 데이터의 관리를 가리키는 요청을 MCU(123)에게 제공할 수 있다. 예를 들어, 요청의 오피코드 필드의 비트들은 센서 데이터 커맨드, 로그 데이터 커맨드, 텔레메트리 데이터 커맨드, 알고리즘 협상 커맨드, 또는 암호화 활성화 커맨드를 가리킬 수 있다.In step S410, the
S411 단계에서, 전자 장치(100)의 MCU(123)는 S410 단계의 요청을 처리하지 못할 수 있다. S410 단계의 요청의 실패가 발생할 수 있다. 예를 들어, MCU(123)는 다양한 요인들에 의해, S410 단계의 요청을 성공적으로 처리하지 못할 수 있다.In step S411, the
S412 단계에서, 전자 장치(100)의 MCU(123)에 의해, S411 단계의 실패에 대응하는 에러 코드를 결정할 수 있다. 에러 코드는 S411 단계에서 요청이 실패한 요인을 가리킬 수 있다. 이에 대한 보다 상세한 설명은 도 10에서 후술될 것이다.In step S412, the
S420 단계에서, 전자 장치(100)의 MCU(123)에 의해, S412 단계의 에러 코드를 포함하는 응답을 BMC(112)에게 제공할 수 있다.In step S420, the
도 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
MCU(123)는 아웃-오브-밴드 통신을 통해 BMC(112)에게 응답(RPf)을 제공할 수 있다. 응답(RPf)은 요청(RQ)의 실패를 가리킬 수 있다.The
응답(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
도 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
호스트 장치(210)는 프로세서(211) 및 BMC(212)를 포함할 수 있다. 프로세서(211) 및 BMC(212)는 도 1의 프로세서(111) 및 BMC(112)에 대응할 수 있다.The
제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
제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
제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
호스트 장치(210)의 프로세서(211)는 제1 내지 제N 스토리지 컨트롤러들(221_1~221_N)의 각각에 대한 인-밴드 통신을 지원할 수 있다.The
호스트 장치(210)의 BMC(212)는 제1 내지 제N MCU들(223_1~223_N)의 각각에 대한 아웃-오브-밴드 통신을 지원할 수 있다.The
호스트 장치(210)는 아웃-오브-밴드 통신을 통해서 제1 내지 제N 스토리지 장치들(220_1~220_N) 각각을 독립적으로 관리할 수 있다.The
예를 들어, 전자 장치(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
상술된 내용은 본 발명을 실시하기 위한 구체적인 실시 예들이다. 본 발명은 상술된 실시 예들뿐만 아니라, 단순하게 설계 변경되거나 용이하게 변경할 수 있는 실시 예들 또한 포함할 것이다. 또한, 본 발명은 실시 예들을 이용하여 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다. 따라서, 본 발명의 범위는 상술된 실시 예들에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 할 것이다.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 및 상기 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.
상기 프로세서 및 상기 스토리지 컨트롤러는 인-밴드 통신을 통해 서로 직접적으로 통신하고, 그리고
상기 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.
상기 스토리지 장치는 사용자 데이터를 저장하도록 구성된 비-휘발성 메모리 장치, 및 상기 비-휘발성 메모리 장치의 감지 동작에 기초하여 센서 데이터를 생성하도록 구성된 센서 장치를 더 포함하고,
상기 스토리지 컨트롤러는 상기 비-휘발성 메모리 장치의 상태 모니터링 동작에 기초하여 텔레메트리 데이터를 생성하도록 구성되고,
상기 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.
상기 센서 데이터는 전압 센서 데이터, 전류 센서 데이터, 온도 센서 데이터, 습도 센서 데이터 중 적어도 하나를 포함하는 방법.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.
상기 텔레메트리 데이터는 프로그램/소거(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 응답의 응답 바디 필드는 현재 센서 데이터를 포함하는 방법.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 응답의 응답 바디 필드는 로그 데이터를 포함하고, 그리고
상기 로그 데이터는 이전 센서 데이터 및 이전 텔레메트리 데이터 중 적어도 하나를 포함하는 방법.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 응답의 응답 바디 필드는 현재 텔레메트리 데이터를 포함하는 방법.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 요청은 상기 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 요청의 성공을 가리키는 방법.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 요청은 상기 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.
상기 스토리지 장치는 사용자 데이터를 저장하도록 구성된 비-휘발성 메모리 장치를 더 포함하고,
상기 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 요청의 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 전원 전압을 제공하도록 구성된 메인 전원 공급기; 및
상기 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.
상기 전자 장치는 추가 스토리지 장치를 더 포함하고, 상기 추가 스토리지 장치는 추가 스토리지 컨트롤러 및 추가 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, 상기 제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.
상기 제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.
스토리지 컨트롤러 및 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.
상기 스토리지 장치는:
사용자 데이터를 저장하도록 구성된 비-휘발성 메모리 장치; 및
상기 비-휘발성 메모리 장치의 감지 동작에 기초하여 센서 데이터를 생성하도록 구성된 센서 장치를 더 포함하고,
상기 스토리지 컨트롤러는 상기 비-휘발성 메모리 장치의 상태 모니터링 동작에 기초하여 텔레메트리 데이터를 생성하도록 구성되고,
상기 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.
상기 호스트 장치는:
상기 스토리지 컨트롤러에게 제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.
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) |
-
2023
- 2023-01-02 KR KR1020230000283A patent/KR20240013017A/en unknown
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 |