KR20230166812A - Storage system including a battery module and operation method therefor - Google Patents

Storage system including a battery module and operation method therefor Download PDF

Info

Publication number
KR20230166812A
KR20230166812A KR1020220097524A KR20220097524A KR20230166812A KR 20230166812 A KR20230166812 A KR 20230166812A KR 1020220097524 A KR1020220097524 A KR 1020220097524A KR 20220097524 A KR20220097524 A KR 20220097524A KR 20230166812 A KR20230166812 A KR 20230166812A
Authority
KR
South Korea
Prior art keywords
storage
power
sets
battery
battery module
Prior art date
Application number
KR1020220097524A
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/135,141 priority Critical patent/US20230384944A1/en
Priority to EP23168170.1A priority patent/EP4286987A1/en
Priority to CN202310495701.6A priority patent/CN117148948A/en
Publication of KR20230166812A publication Critical patent/KR20230166812A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/30Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/263Arrangements for using multiple switchable power supplies, e.g. battery and AC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/28Supervision thereof, e.g. detecting power-supply failure by out of limits supervision
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Engineering (AREA)
  • Human Computer Interaction (AREA)
  • Power Sources (AREA)

Abstract

본 발명에 따르면, 호스트 시스템; 스위칭 블록을 포함하고, 상기 호스트 시스템에 연결된 백플레인; 상기 백플레인에 연결되고, 상기 호스트 시스템으로부터 전력을 공급받는 복수의 스토리지 세트; 및 상기 백플레인에 연결되고, 상기 복수의 스토리지 세트 중 적어도 하나의 스토리지 세트에서 비정상적인 전력 드롭이 감지될 경우 상기 스위칭 블록을 통해 예비 전력을 공급하는 배터리 모듈을 포함하고, 상기 배터리 모듈은 상기 예비 전력의 공급 이후 상기 적어도 하나의 스토리지 세트에서 임계값 이하의 전력이 감지될 경우 상기 적어도 하나의 스토리지 세트가 데이터 플러싱을 수행하도록 제어하는 스토리지 시스템이다.According to the present invention, a host system; a backplane including a switching block and connected to the host system; a plurality of storage sets connected to the backplane and receiving power from the host system; and a battery module connected to the backplane and supplying reserve power through the switching block when an abnormal power drop is detected in at least one storage set among the plurality of storage sets, wherein the battery module supplies reserve power. A storage system that controls the at least one storage set to perform data flushing when power below a threshold is detected in the at least one storage set after supply.

Description

배터리 모듈이 포함된 스토리지 시스템 및 그 동작 방법{STORAGE SYSTEM INCLUDING A BATTERY MODULE AND OPERATION METHOD THEREFOR}Storage system including battery module and method of operation thereof {STORAGE SYSTEM INCLUDING A BATTERY MODULE AND OPERATION METHOD THEREFOR}

본 발명은 배터리 모듈이 포함된 스토리지 시스템 및 그 동작 방법에 관한 것이다.The present invention relates to a storage system including a battery module and a method of operating the same.

스토리지 장치는 컴퓨터, 스마트 폰, 스마트 패드 등과 같은 호스트 장치의 제어에 따라 데이터를 저장하는 장치이며, 예를 들어 솔리드 스테이트 드라이브(SSD, Solid State Drive), 메모리 카드 등과 같이 반도체 메모리, 특히 불휘발성 메모리에 데이터를 저장하는 장치를 포함한다.A storage device is a device that stores data under the control of a host device such as a computer, smart phone, smart pad, etc., for example, semiconductor memory, especially non-volatile memory, such as a solid state drive (SSD), memory card, etc. Includes a device that stores data.

스토리지 장치는 구현에 따라 연산 기능을 수행할 수도 있는데, 연산 기능을 수행하기 위하여 추가적인 휘발성 메모리와 연산 기능을 위한 코어를 포함할 수 있다. 스토리지 장치는 전력을 공급받아 동작하는데, 동작하는 도중에 갑작스럽게 전력이 차단되는 서든 파워 오프(Sudden Power Off, SPO) 상황이 발생할 수 있다. 이때, 스토리지 장치는 휘발성 메모리에 저장된 데이터를 비휘발성 메모리로 덤프(dump)시키는 데이터 플러싱(data flushing) 동작을 수행할 수 있는데, 휘발성 메모리의 크기가 클 경우 그에 따라 덤프시켜야 하는 데이터량도 많아진다. 이 경우, SPO에 대처하기 위해 스토리지 장치에 추가로 구비되는 배터리의 용량만으로는 덤프를 위한 전력 공급에 한계가 있다.A storage device may perform a computation function depending on its implementation, and may include additional volatile memory and a core for the computation function to perform the computation function. Storage devices operate by receiving power, but a sudden power off (SPO) situation may occur in which power is suddenly cut off during operation. At this time, the storage device can perform a data flushing operation that dumps data stored in volatile memory into non-volatile memory. If the size of volatile memory is large, the amount of data that must be dumped increases accordingly. . In this case, there is a limit to power supply for dumping with the capacity of the battery additionally provided in the storage device to cope with SPO.

본 발명은 상술한 과제를 해결하기 위한 것으로서, 본 발명의 목적은 연산 기능을 수행하는 스토리지 장치에서 전력 드롭이 발생할 때 데이터 손실을 방지할 수 있는 배터리 모듈이 포함된 스토리지 시스템 및 그 동작 방법을 제공하는데 있다.The present invention is intended to solve the above-described problems, and the purpose of the present invention is to provide a storage system including a battery module that can prevent data loss when a power drop occurs in a storage device performing an arithmetic function and a method of operating the same. I'm doing it.

본 발명의 일 실시예로, 호스트 시스템; 스위칭 블록을 포함하고, 상기 호스트 시스템에 연결된 백플레인; 상기 백플레인에 연결되고, 상기 호스트 시스템으로부터 전력을 공급받는 복수의 스토리지 세트; 및 상기 백플레인에 연결되고, 상기 복수의 스토리지 세트 중 적어도 하나의 스토리지 세트에서 비정상적인 전력 드롭이 감지될 경우 상기 스위칭 블록을 통해 예비 전력을 공급하는 배터리 모듈을 포함하고, 상기 배터리 모듈은 상기 예비 전력의 공급 이후 상기 적어도 하나의 스토리지 세트에서 임계값 이하의 전력이 감지될 경우 상기 적어도 하나의 스토리지 세트가 데이터 플러싱을 수행하도록 제어하는 스토리지 시스템이다.In one embodiment of the present invention, a host system; a backplane including a switching block and connected to the host system; a plurality of storage sets connected to the backplane and receiving power from the host system; and a battery module connected to the backplane and supplying reserve power through the switching block when an abnormal power drop is detected in at least one storage set among the plurality of storage sets, wherein the battery module supplies reserve power. A storage system that controls the at least one storage set to perform data flushing when power below a threshold is detected in the at least one storage set after supply.

예를 들어, 상기 복수의 스토리지 세트 각각은: 비휘발성 메모리를 포함하는 스토리지 장치; 상기 스토리지 장치에 연결되고, 상기 호스트 시스템의 명령에 따라 연산을 수행하는 가속기; 및 상기 연산에 따른 연산 데이터 및 상기 호스트 시스템으로부터 오프로딩된 시스템 데이터 중 적어도 하나를 저장하는 휘발성 메모리를 포함할 수 있다.For example, each of the plurality of storage sets may include: a storage device including non-volatile memory; an accelerator connected to the storage device and performing operations according to commands from the host system; and a volatile memory that stores at least one of operation data according to the operation and system data offloaded from the host system.

예를 들어, 상기 데이터 플러싱은 상기 휘발성 메모리에 저장된 상기 연산 데이터를 상기 비휘발성 메모리로 덤프하는 것으로 정의될 수 있다.For example, the data flushing may be defined as dumping the operation data stored in the volatile memory to the non-volatile memory.

예를 들어, 상기 배터리 모듈은: 적어도 하나의 배터리; 및 상기 전력 드롭을 감지하고, 상기 스위칭 블록을 제어하여 상기 적어도 하나의 스토리지 세트에 상기 적어도 하나의 배터리로부터 상기 예비 전력을 공급하도록 구성되는 배터리 컨트롤러를 포함할 수 있다.For example, the battery module may include: at least one battery; and a battery controller configured to detect the power drop and control the switching block to supply the spare power from the at least one battery to the at least one storage set.

예를 들어, 상기 배터리 컨트롤러는 상기 복수의 스토리지 세트 별로 워크로드를 검출하고, 상기 워크로드에 기초하여 상기 임계값을 상기 복수의 스토리지 별로 설정할 수 있다.For example, the battery controller may detect a workload for each of the plurality of storage sets and set the threshold for each of the plurality of storages based on the workload.

예를 들어, 상기 배터리 컨트롤러는 상기 복수의 스토리지 세트 별로 워크로드를 검출하고, 상기 워크로드에 기초하여 상기 예비 전력을 상기 복수의 스토리지 별로 설정할 수 있다.For example, the battery controller may detect a workload for each of the plurality of storage sets and set the reserve power for each of the plurality of storages based on the workload.

예를 들어, 상기 백플레인과 상기 복수의 스토리지 세트를 연결하는 PCIe 인터페이스 및 시스템 관리 버스를 더 포함할 수 있다.For example, it may further include a PCIe interface and a system management bus connecting the backplane and the plurality of storage sets.

예를 들어, 상기 배터리 모듈은 상기 PCIe 인터페이스를 통해 상기 예비 전력을 공급할 수 있다.For example, the battery module may supply the spare power through the PCIe interface.

예를 들어, 상기 배터리 모듈은 상기 시스템 관리 버스를 통해 상기 복수의 스토리지 세트로부터 상기 전력 드롭을 감지할 수 있다.For example, the battery module may detect the power drop from the plurality of storage sets through the system management bus.

예를 들어, 상기 배터리 모듈은 상기 예비 전력의 공급 이후 상기 적어도 하나의 스토리지 세트에서 임계값 이하의 전력이 감지되지 않을 경우 상기 전력 드롭의 모니터링을 다시 수행할 수 있다.For example, if power below a threshold value is not detected in the at least one storage set after supplying the reserve power, the battery module may perform monitoring of the power drop again.

본 발명의 다른 일 실시예로, 호스트 시스템; 스위칭 블록을 포함하고, 상기 호스트 시스템에 연결된 백플레인; 상기 백플레인에 연결되고, 상기 호스트 시스템으로부터 전력을 공급받는 복수의 스토리지 세트; 및 상기 백플레인에 연결되고, 상기 호스트 시스템으로부터 상기 복수의 스토리지 세트에 대한 전력 관리 동작을 오프로딩하고, 상기 스위칭 블록을 통해 상기 전력 관리 동작을 수행하는 배터리 모듈을 포함하는 스토리지 시스템이다.In another embodiment of the present invention, a host system; a backplane including a switching block and connected to the host system; a plurality of storage sets connected to the backplane and receiving power from the host system; and a battery module connected to the backplane, offloading a power management operation for the plurality of storage sets from the host system, and performing the power management operation through the switching block.

예를 들어, 상기 배터리 모듈은: 적어도 하나의 배터리; 및 상기 복수의 스토리지 세트 각각에 대하여 설정되는 전력 정책 및 우선 순위 중 적어도 하나에 기초하여 상기 전력 관리 동작을 수행하도록 구성되는 배터리 컨트롤러를 포함할 수 있다.For example, the battery module may include: at least one battery; and a battery controller configured to perform the power management operation based on at least one of a power policy and a priority set for each of the plurality of storage sets.

예를 들어, 상기 배터리 컨트롤러는 상기 복수의 스토리지 세트 중 적어도 하나의 스토리지 세트에서 비정상적인 전력 드롭을 감지하고, 상기 전력 드롭이 감지될 경우 상기 적어도 하나의 배터리로부터 예비 전력을 공급할 수 있다.For example, the battery controller may detect an abnormal power drop in at least one storage set among the plurality of storage sets, and supply spare power from the at least one battery when the power drop is detected.

예를 들어, 상기 배터리 컨트롤러는 상기 예비 전력의 공급 이후 상기 적어도 하나의 스토리지 세트에서 임계값 이하의 전력이 감지될 경우 상기 적어도 하나의 스토리지 세트가 데이터 플러싱을 수행하도록 제어할 수 있다.For example, the battery controller may control the at least one storage set to perform data flushing when power below a threshold is detected in the at least one storage set after the reserve power is supplied.

예를 들어, 상기 배터리 컨트롤러는 상기 복수의 스토리지 세트 별로 워크로드를 검출하고, 상기 워크로드에 기초하여 상기 임계값을 상기 복수의 스토리지 별로 설정할 수 있다.For example, the battery controller may detect a workload for each of the plurality of storage sets and set the threshold for each of the plurality of storages based on the workload.

예를 들어, 상기 배터리 컨트롤러는 상기 복수의 스토리지 세트 별로 워크로드를 검출하고, 상기 워크로드에 기초하여 상기 예비 전력을 상기 복수의 스토리지 별로 설정할 수 있다.For example, the battery controller may detect a workload for each of the plurality of storage sets and set the reserve power for each of the plurality of storages based on the workload.

예를 들어, 상기 백플레인과 상기 복수의 스토리지 세트를 연결하는 PCIe 인터페이스 및 시스템 관리 버스를 더 포함하고, 상기 배터리 모듈은 상기 시스템 관리 버스를 통해 상기 복수의 스토리지 세트로부터 상기 전력 드롭을 감지하고, 상기 PCIe 인터페이스를 통해 전력을 공급할 수 있다.For example, further comprising a PCIe interface and a system management bus connecting the backplane and the plurality of storage sets, wherein the battery module detects the power drop from the plurality of storage sets through the system management bus, and Power can be supplied through the PCIe interface.

본 발명의 다른 일 실시예로, 스토리지 시스템에 의해 수행되는 동작 방법으로서, 상기 스토리지 시스템에 포함된 복수의 스토리지 세트 중 적어도 하나의 스토리지 세트에서 비정상적인 전력 드롭이 감지되는지 모니터링하는 단계; 상기 전력 드롭이 감지될 경우 예비 전력을 공급하는 단계; 및 상기 예비 전력의 공급 이후 상기 적어도 하나의 스토리지 세트에서 임계값 이하의 전력이 감지될 경우 상기 적어도 하나의 스토리지 세트가 데이터 플러싱을 수행하도록 제어하는 단계를 포함하는 동작 방법이다.According to another embodiment of the present invention, an operating method performed by a storage system includes: monitoring whether an abnormal power drop is detected in at least one storage set among a plurality of storage sets included in the storage system; supplying spare power when the power drop is detected; and controlling the at least one storage set to perform data flushing when power below a threshold is detected in the at least one storage set after supplying the reserve power.

예를 들어, 상기 복수의 스토리지 세트 별로 워크로드를 검출하는 단계; 및 상기 워크로드에 기초하여 상기 임계값을 상기 복수의 스토리지 별로 설정하는 단계를 더 포함할 수 있다.For example, detecting a workload for each of the plurality of storage sets; And it may further include setting the threshold for each of the plurality of storages based on the workload.

예를 들어, 상기 워크로드에 기초하여 상기 예비 전력을 상기 복수의 스토리지 별로 설정할 수 있다.For example, the reserve power may be set for each of the plurality of storages based on the workload.

본 발명에 의하면, 연산 기능을 수행하는 스토리지 장치에서 전력 드롭이 발생할 때 데이터 손실을 방지할 수 있는 배터리 모듈이 포함된 스토리지 시스템 및 그 동작 방법이 제공될 수 있다.According to the present invention, a storage system including a battery module that can prevent data loss when a power drop occurs in a storage device performing an arithmetic function and a method of operating the same can be provided.

도 1은 본 발명의 일 실시예에 따른 스토리지 시스템(storage system)을 도시한 것이다.
도 2는 본 발명의 일 실시예에 따른 호스트 시스템을 도시한 것이다.
도 3 및 도 4는 본 발명의 다양한 실시예들에 따른 배터리 모듈의 전력 공급 동작을 설명하기 위한 것이다.
도 5 및 도 6은 본 발명의 다양한 실시예들에 따른 스토리지 세트를 도시한 것이다.
도 7은 본 발명의 일 실시예에 따른 배터리 모듈을 도시한 것이다.
도 8은 본 발명의 일 실시예에 따른 배터리 컨트롤러의 동작 방법의 순서도이다.
도 9는 본 발명의 다른 일 실시예에 따른 배터리 컨트롤러의 동작 방법의 순서도이다.
도 10a 및 도 10b는 배터리 컨트롤러의 전력 관리 동작의 예들을 도시한 것이다.
도 11은 본 발명의 일 실시예에 따른 배터리 컨트롤러를 포함하는 스토리지 시스템의 동작 방법을 설명하기 위한 것이다.
도 12는 본 발명의 다른 일 실시예에 따른 배터리 모듈을 도시한 것이다.
도 13은 도 12의 배터리 모듈이 포함된 스토리지 시스템의 동작 방법의 순서도이다.
Figure 1 shows a storage system according to an embodiment of the present invention.
Figure 2 shows a host system according to one embodiment of the present invention.
3 and 4 are for explaining a power supply operation of a battery module according to various embodiments of the present invention.
5 and 6 illustrate storage sets according to various embodiments of the present invention.
Figure 7 shows a battery module according to an embodiment of the present invention.
Figure 8 is a flowchart of a method of operating a battery controller according to an embodiment of the present invention.
Figure 9 is a flowchart of a method of operating a battery controller according to another embodiment of the present invention.
10A and 10B show examples of power management operations of the battery controller.
FIG. 11 is for explaining a method of operating a storage system including a battery controller according to an embodiment of the present invention.
Figure 12 shows a battery module according to another embodiment of the present invention.
FIG. 13 is a flowchart of a method of operating a storage system including the battery module of FIG. 12.

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

도 1은 본 발명의 일 실시예에 따른 스토리지 시스템(storage system)을 도시한 것이다.Figure 1 shows a storage system according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 일 실시예에 따른 스토리지 시스템(100)은 호스트 시스템(host system)(120), 백플레인(backplane)(140), 스토리지 세트(storage set)(160) 및 배터리 모듈(180)을 포함한다.Referring to FIG. 1, the storage system 100 according to an embodiment of the present invention includes a host system 120, a backplane 140, a storage set 160, and a battery module. Includes (180).

스토리지 시스템(100)은 예를 들어, 서버, 데이터 센터(data center), PC(personal computer), 네트워크-결합 스토리지, IoT(Internet of Things) 장치, 또는 휴대용 전자 기기로 구현될 수 있다. 휴대용 전자 기기는, 랩탑 컴퓨터, 이동 전화기, 스마트폰, 태블릿 PC, PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라, 디지털 비디오 카메라, 오디오 장치, PMP(portable multimedia player), PND(personal navigation device), MP3 플레이어, 휴대용 게임 콘솔(handheld game console), e-북(e-book), 웨어러블 기기 등일 수 있다.The storage system 100 may be implemented as, for example, a server, a data center, a personal computer (PC), a network-connected storage, an Internet of Things (IoT) device, or a portable electronic device. Portable electronic devices include laptop computers, mobile phones, smartphones, tablet PCs, personal digital assistants (PDAs), enterprise digital assistants (EDAs), digital still cameras, digital video cameras, audio devices, portable multimedia players (PMPs), and PNDs. It may be a personal navigation device, MP3 player, handheld game console, e-book, wearable device, etc.

호스트 시스템(120)은 다양한 인터페이스를 통하여 스토리지 세트(160)와 통신할 수 있다. 예를 들어, 호스트 시스템(120)은 AP(Application Processor) 또는 SoC(System-On-a-Chip)로 구현될 수 있다. 또한, 예를 들어, 호스트 시스템(120)은 집적 회로(integrated circuit) 또는 메인 보드(main board)로 구현될 수 있으나 이에 한정되는 것은 아니다.Host system 120 may communicate with storage set 160 through various interfaces. For example, the host system 120 may be implemented as an Application Processor (AP) or System-On-a-Chip (SoC). Additionally, for example, the host system 120 may be implemented as an integrated circuit or a main board, but is not limited thereto.

호스트 시스템(120)은 스토리지 세트(160)에 기입 요청 및 리드 요청을 전송할 수 있다. 스토리지 세트(160)는 기입 요청에 응답하여 호스트로부터 수신되는 데이터를 저장하거나, 리드 요청에 응답하여 저장된 데이터를 독출하고 독출된 데이터를 호스트 시스템(120)에 전송할 수 있다. Host system 120 may send write and read requests to storage set 160 . The storage set 160 may store data received from the host in response to a write request, or may read stored data in response to a read request and transmit the read data to the host system 120.

또한, 호스트 시스템(120)은 스토리지 세트(160)의 전력 운용을 제어할 수 있다. 예를 들어, 호스트 시스템(120)은 전력의 로드 밸런싱을 수행하거나, 백플레인(140)을 통해 스토리지 세트(160)에 전력을 공급하거나, 전력을 모니터링하거나, 비정상적인 전력 공급 상황(예를 들어, SPO 또는 전력 글리치(power glitch) 등)에서 배터리 모듈(180)이 스토리지 세트(160)에 예비 전력을 공급하는 동작 등과 같은 전력 관리 동작을 제어할 수 있다. 또는, 예를 들어 호스트 시스템(120)은 전력 관리 동작을 배터리 모듈(180)에 오프로딩(offloading)시켜 배터리 모듈(180)이 전력 관리 동작을 수행하도록 할 수도 있다.Additionally, the host system 120 may control power operation of the storage set 160. For example, host system 120 may load balance power, provide power to storage sets 160 through backplane 140, monitor power, or detect abnormal power supply situations (e.g., SPO Alternatively, the battery module 180 may control power management operations such as supplying spare power to the storage set 160 in the event of a power glitch, etc. Alternatively, for example, the host system 120 may offload the power management operation to the battery module 180 so that the battery module 180 performs the power management operation.

백플레인(140)은 호스트 시스템(120)과 스토리지 세트(160) 사이에 구비되어 호스트 시스템(120)과 스토리지 세트(160)에 연결되며, 호스트 시스템(120)과 스토리지 세트(160)가 다양한 통신 프로토콜을 통해 데이터를 주고받을 수 있도록 구성될 수 있다.The backplane 140 is provided between the host system 120 and the storage set 160 and connected to the host system 120 and the storage set 160, and the host system 120 and the storage set 160 use various communication protocols. It can be configured to exchange data through .

백플레인(140)은 스토리지 세트(160) 중 적어도 하나의 스토리지 세트에 전력을 선택적으로 공급하도록 구성되는 스위칭 블록(141)을 포함한다. 스위칭 블록(141)은 호스트 시스템(120) 또는 배터리 모듈(180)에 의해 제어될 수 있고, 스위칭 동작에 따라 전력 공급이 필요한 스토리지 세트(160)에 전력을 제공할 수 있다.The backplane 140 includes a switching block 141 configured to selectively supply power to at least one storage set among the storage sets 160 . The switching block 141 may be controlled by the host system 120 or the battery module 180 and may provide power to the storage set 160 that requires power supply according to the switching operation.

스토리지 세트(160) 및 배터리 모듈(180)은 폼 팩터에 수용될 수 있다. 폼 팩터는 표준 규격을 따르는 다양한 폼 팩터를 포함할 수 있으며, 예를 들어 E3.S, E3.S 2T, E3.L 및 E3.L 2T 등을 포함하는 EDSFF(Enterprise and Data Center Standard Form Factor)일 수 있으나 이에 제한되는 것은 아니다.Storage set 160 and battery module 180 may be accommodated in a form factor. Form factors can include a variety of form factors that conform to standards, such as the Enterprise and Data Center Standard Form Factor (EDSFF), which includes E3.S, E3.S 2T, E3.L, and E3.L 2T. It may be, but is not limited to this.

스토리지 세트(160)는 복수 개(160a 내지 160c)가 구비될 수 있으며, 백플레인(140)을 통해 호스트 시스템(120) 및 배터리 모듈(180)과 연결된다. 스토리지 세트(160)는 연산 기능과 데이터 저장 기능을 갖는 장치이며, 스마트 스토리지 장치로도 명명될 수 있다. 스토리지 세트(160)는 백플레인(140)을 통해 호스트 시스템(120) 및 배터리 모듈(180)로부터 전력을 공급받을 수 있다.There may be a plurality of storage sets 160 (160a to 160c), and they are connected to the host system 120 and the battery module 180 through the backplane 140. The storage set 160 is a device that has calculation functions and data storage functions, and may also be called a smart storage device. The storage set 160 may receive power from the host system 120 and the battery module 180 through the backplane 140.

배터리 모듈(180)은 백플레인(140)을 통해 호스트 시스템(120) 및 복수의 스토리지 세트(160)와 연결된다. The battery module 180 is connected to the host system 120 and the plurality of storage sets 160 through the backplane 140.

일 실시예에 따르면, 배터리 모듈(180)은 호스트 시스템(120)으로부터 복수의 스토리지 세트(160)에 대한 전력 관리 동작을 오프로딩하고, 스위칭 블록(141)을 통해 전력 관리 동작을 수행하도록 구성될 수 있다. 다시 말해서, 호스트 시스템(120)의 전력 관리 동작 중 적어도 일부를 배터리 모듈(180)로 오프로딩할 수 있고, 이 경우 배터리 모듈(180)이 호스트 시스템(120)을 대신하여 전력 관리 동작 중 적어도 일부를 수행할 수 있다.According to one embodiment, the battery module 180 may be configured to offload power management operations for the plurality of storage sets 160 from the host system 120 and perform power management operations through the switching block 141. You can. In other words, at least some of the power management operations of the host system 120 may be offloaded to the battery module 180, in which case the battery module 180 may perform at least some of the power management operations on behalf of the host system 120. can be performed.

일 실시예에 따르면, 배터리 모듈(180)은 복수의 스토리지 세트(160) 중 적어도 하나의 스토리지 세트에서 비정상적인 전력 드롭을 감지하고, 전력 드롭이 감지될 경우 스위칭 블록(141)을 통해 예비 전력을 공급하도록 구성될 수 있다. 비정상적인 전력 드롭은 상술한 SPO나 전력 글리치 등과 같이 스토리지 세트(160)의 전력이 급격히 하강하는 상황을 의미할 수 있다. According to one embodiment, the battery module 180 detects an abnormal power drop in at least one storage set among the plurality of storage sets 160, and supplies spare power through the switching block 141 when the power drop is detected. It can be configured to do so. Abnormal power drop may mean a situation in which the power of the storage set 160 drops rapidly, such as the above-mentioned SPO or power glitch.

일 실시예에 따르면, 배터리 모듈(180)은 예비 전력의 공급 이후 적어도 하나의 스토리지 세트에서 임계값 이하의 전력이 감지될 경우 적어도 하나의 스토리지 세트가 데이터 플러싱을 수행하도록 제어할 수 있다. 본 발명에서, 데이터 플러싱은 휘발성 메모리에 저장된 데이터를 비휘발성 메모리로 덤프하는 것으로 정의될 수 있다. 예를 들어, 배터리 모듈(180)은 적어도 하나의 스토리지 세트가 휘발성 메모리에 저장된 데이터를 비휘발성 메모리로 덤프시키도록 제어할 수 있다.According to one embodiment, the battery module 180 may control at least one storage set to perform data flushing when power below a threshold is detected in at least one storage set after supplying spare power. In the present invention, data flushing can be defined as dumping data stored in volatile memory to non-volatile memory. For example, the battery module 180 may control at least one storage set to dump data stored in volatile memory to non-volatile memory.

상술한 실시예들에 따른 스토리지 시스템(100)은 호스트 시스템(120)의 전력 관리 동작의 오프로딩이 가능한 배터리 모듈(180)이 추가적으로 구비됨으로써 SPO나 전력 글리치와 같은 비정상적인 전력이 검출될 때도 스토리지 세트(160)에 저장된 데이터가 손실되는 것을 방지할 수 있다. 본 발명에 따르면, 스토리지 세트(160)에는 비정상적인 전력 검출의 대응을 위한 PLP(Power Loss Protection) 블록이나 PLP 배터리가 별도로 구비되지 않아도 연산 기능의 추가에 따라 증가된 스토리지 세트(160)의 전력량을 커버할 수 있다.The storage system 100 according to the above-described embodiments is additionally equipped with a battery module 180 capable of offloading the power management operation of the host system 120, so that the storage system 100 can be used even when abnormal power such as SPO or power glitch is detected. Data stored in (160) can be prevented from being lost. According to the present invention, the storage set 160 covers the power amount of the storage set 160, which is increased due to the addition of the calculation function, even though the storage set 160 is not separately equipped with a PLP (Power Loss Protection) block or PLP battery to respond to abnormal power detection. can do.

이하에서는, 스토리지 시스템(100)에 포함된 구성 요소들에 대하여 설명한다.Below, components included in the storage system 100 will be described.

도 2는 본 발명의 일 실시예에 따른 호스트 시스템을 도시한 것이다.Figure 2 shows a host system according to one embodiment of the present invention.

도 2를 참조하면, 본 발명의 일 실시예에 따른 호스트 시스템(120)은 전력 공급기(121) 및 메인 보드(122)를 포함한다. 전력 공급기(121)는 전원으로부터 전력(PWR)을 생성하고, 생성한 전력(PWR)을 메인 보드(122)에 공급한다. 또는, 전력 공급기(121)는 백플레인(140)에 직접적으로 전력을 공급할 수도 있다.Referring to FIG. 2, the host system 120 according to an embodiment of the present invention includes a power supply 121 and a main board 122. The power supply 121 generates power (PWR) from a power source and supplies the generated power (PWR) to the main board 122. Alternatively, the power supply 121 may directly supply power to the backplane 140.

메인 보드(122)는 마더보드(mother board) 또는 베이스보드(base board)로도 칭해질 수 있으며, 제1 프로세서(123), 제1 프로세서(123)에 연결된 복수의 제1 메모리(124a, 124b), 제2 프로세서(125) 및 제2 프로세서(125)에 연결된 복수의 제2 메모리(126a, 126b) 및 BMC(Baseboard Management Controller)(127)를 포함한다.The main board 122 may also be referred to as a mother board or base board, and includes a first processor 123 and a plurality of first memories 124a and 124b connected to the first processor 123. , includes a second processor 125, a plurality of second memories 126a and 126b connected to the second processor 125, and a Baseboard Management Controller (BMC) 127.

제1 프로세서(123)는 복수의 제1 메모리(124a, 124b)를 동작 메모리로 사용할 수 있으며, 제2 프로세서(125)는 복수의 제2 메모리(126a, 126b)를 동작 메모리로 사용할 수 있다. 제1 프로세서(123) 및 제2 프로세서(125)는 운영 체제 및 다양한 응용들을 실행하도록 구성될 수 있다. The first processor 123 may use a plurality of first memories 124a and 124b as operation memories, and the second processor 125 may use a plurality of second memories 126a and 126b as operation memories. The first processor 123 and the second processor 125 may be configured to run an operating system and various applications.

제1 프로세서(123) 및 제2 프로세서(125)는 백플레인(140)을 액세스하여 복수의 스토리지 세트(160)에 대한 전력 운용을 제어할 수 있다. 예를 들어, 제1 프로세서(123) 및 제2 프로세서(125)는 전력의 로드 밸런싱을 수행하거나, 백플레인(140)을 통해 스토리지 세트(160)에 전력을 공급하거나, 전력을 모니터링하거나, 비정상적인 전력 공급 상황에서 배터리 모듈(180)이 스토리지 세트(160)에 예비 전력을 공급하는 동작 등과 같은 전력 관리 동작을 제어할 수 있다. 또는, 예를 들어 제1 프로세서(123) 및 제2 프로세서(125)는 전력 관리 동작을 배터리 모듈(180)에 오프로딩시켜 배터리 모듈(180)이 전력 관리 동작을 수행하도록 할 수도 있다.The first processor 123 and the second processor 125 may access the backplane 140 to control power operation for the plurality of storage sets 160. For example, the first processor 123 and the second processor 125 perform load balancing of power, supply power to the storage set 160 through the backplane 140, monitor power, or detect abnormal power. In a supply situation, the battery module 180 may control power management operations such as supplying spare power to the storage set 160. Alternatively, for example, the first processor 123 and the second processor 125 may offload the power management operation to the battery module 180 so that the battery module 180 performs the power management operation.

예를 들어, 제1 프로세서(123) 및 제2 프로세서(125)는 중앙 처리 유닛(CPU)이고, 복수의 제1 메모리(124a, 124b) 및 복수의 제2 메모리(126a, 126b)는 DRAM이나 SRAM과 같은 휘발성 메모리일 수 있다.For example, the first processor 123 and the second processor 125 are central processing units (CPUs), and the plurality of first memories 124a and 124b and the plurality of second memories 126a and 126b are DRAM or It may be volatile memory such as SRAM.

BMC(127)는 제1 프로세서(123) 및 제2 프로세서(125)와 별도로 분리된 시스템일 수 있으며, 스토리지 시스템(100)의 구성 요소들의 물리적 상태(physical state), 예컨대 온도, 습도, 전력 공급기(121)의 전압, 팬 속도, 통신 파라미터 또는 운영체제 기능 등을 모니터링할 수 있다. 또는, 예를 들어 BMC(127)는 전력 관리 동작을 배터리 모듈(180)에 오프로딩시킬 수 있다.The BMC 127 may be a separate system from the first processor 123 and the second processor 125, and controls the physical state of the components of the storage system 100, such as temperature, humidity, and power supply. (121)'s voltage, fan speed, communication parameters, or operating system functions can be monitored. Or, for example, BMC 127 may offload power management operations to battery module 180.

도 3 및 도 4는 본 발명의 다양한 실시예들에 따른 배터리 모듈의 전력 공급 동작을 설명하기 위한 것이다.3 and 4 are for explaining a power supply operation of a battery module according to various embodiments of the present invention.

도 3을 참조하면, 백플레인(140)은 호스트 시스템(120)에 포함된 전력 공급기(121)로부터 직간접적으로 전력을 공급받으며, 공급받은 전력을 스위칭 블록(141)을 통해 복수의 스토리지 세트(160)에 전달할 수 있다.Referring to FIG. 3, the backplane 140 receives power directly or indirectly from the power supply 121 included in the host system 120, and supplies the supplied power to a plurality of storage sets 160 through the switching block 141. ) can be passed on.

백플레인(140)은 연결 인터페이스(CI_CB, CI_PB, CI_BS, CI_BB)를 통해 호스트 시스템(120)(예를 들어, BMC(127), 제1 프로세서(123) 및 제2 프로세서(125))과 각각의 스토리지 세트(160)와 연결된다. 연결 인터페이스는 예를 들어 PCI-E(Peripheral Component Interconnect - Express), ATA(Advanced Technology Attachment), SATA(Serial ATA), PATA(Parallel ATA), SAS(serial attached SCSI) 또는 CXL(Compute eXpress Link)와 같은 인터페이스 프로토콜일 수도 있고, SM(System Management) 버스, USB(Universal Serial Bus), MMC(Multi-Media Card), ESDI(Enhanced Small Disk Interface), 또는 IDE(Integrated Drive Electronics) 등과 같은 다른 인터페이스 프로토콜들 중 하나일 수 있다. Backplane 140 is connected to host system 120 (e.g., BMC 127, first processor 123, and second processor 125) through connection interfaces (CI_CB, CI_PB, CI_BS, CI_BB), respectively. Connected to storage set 160. Connectivity interfaces include, for example, Peripheral Component Interconnect - Express (PCI-E), Advanced Technology Attachment (ATA), Serial ATA (SATA), Parallel ATA (PATA), serial attached SCSI (SAS), or Compute eXpress Link (CXL). It may be the same interface protocol, or different interface protocols such as System Management (SM) bus, Universal Serial Bus (USB), Multi-Media Card (MMC), Enhanced Small Disk Interface (ESDI), or Integrated Drive Electronics (IDE). It could be one of:

스위칭 블록(141)은 상술한 다양한 연결 인터페이스(CI_BS)를 통해 복수의 스토리지 세트(160) 각각과 연결될 수 있고, 배터리 모듈(180)은 연결 인터페이스(CI_BB)에 연결된 스위칭 블록(141)을 제어하여 적어도 하나의 스토리지 세트에 전력을 공급할 수 있다.The switching block 141 may be connected to each of the plurality of storage sets 160 through the various connection interfaces (CI_BS) described above, and the battery module 180 controls the switching block 141 connected to the connection interface (CI_BB) Can power at least one storage set.

도 4를 참조하면, 일 실시예에 따른 연결 인터페이스는 CXL 인터페이스(CXL_E), PCIe 인터페이스(PCIe_E) 및 SM 버스를 포함할 수 있다. 이때, 호스트 시스템(120)의 BMC(127)는 SM 버스(SM_bus)를 통해 백플레인(140)에 연결되고, 제1 프로세서(123) 및 제2 프로세서(125) 중 적어도 하나는 CXL 인터페이스(CXL_E) 및 PCIe 인터페이스(PCIe_E)를 통해 백플레인(140)에 연결된다. 복수의 스토리지 세트(160)는 백플레인(140)과 CXL 인터페이스(CXL_E), PCIe 인터페이스(PCIe_E) 및 SM 버스(SM_BUS)를 통해 연결된다. 또는, 일 실시예에 따르면 CXL 인터페이스(CXL_E)가 구비되지 않을 수도 있으며, 이 경우 호스트 시스템(120)은 PCIe 인터페이스(PCIe_E)를 통해서도 CXL 프로토콜(예를 들어, CXL.io, CXL,cache 및 CXL.memory 등)을 사용하여 데이터 액세스가 가능할 수 있다.Referring to FIG. 4, the connection interface according to one embodiment may include a CXL interface (CXL_E), a PCIe interface (PCIe_E), and an SM bus. At this time, the BMC 127 of the host system 120 is connected to the backplane 140 through the SM bus (SM_bus), and at least one of the first processor 123 and the second processor 125 is connected to the CXL interface (CXL_E). and is connected to the backplane 140 through a PCIe interface (PCIe_E). The plurality of storage sets 160 are connected to the backplane 140 through a CXL interface (CXL_E), a PCIe interface (PCIe_E), and a SM bus (SM_BUS). Alternatively, according to one embodiment, the CXL interface (CXL_E) may not be provided, in which case the host system 120 may support the CXL protocol (e.g., CXL.io, CXL,cache, and CXL) even through the PCIe interface (PCIe_E). Data access may be possible using .memory, etc.).

스위칭 블록(141)은 PCIe 인터페이스(PCIe_E)를 통해 복수의 스토리지 세트(160) 각각과 연결되며, 배터리 모듈(180)의 제어에 따라 스위칭되어 적어도 하나의 스토리지 세트에 전력을 공급한다.The switching block 141 is connected to each of the plurality of storage sets 160 through a PCIe interface (PCIe_E), and switches under the control of the battery module 180 to supply power to at least one storage set.

도 5 및 도 6은 본 발명의 다양한 실시예들에 따른 스토리지 세트를 도시한 것이다.5 and 6 illustrate storage sets according to various embodiments of the present invention.

도 5를 참조하면, 일 실시예에 따른 스토리지 세트(160_1)는 연결 인터페이스(CI_BS)를 통해 백플레인에 연결되며, 가속기(161), 버퍼 메모리(162), 스토리지 장치(170), PLP(Power Loss Protection) 블록(165) 및 PLP 배터리(166)를 포함한다. Referring to FIG. 5, the storage set 160_1 according to one embodiment is connected to the backplane through a connection interface (CI_BS), and includes an accelerator 161, a buffer memory 162, a storage device 170, and a power loss (PLP) Protection) block 165 and PLP battery 166.

가속기(161)는 호스트 시스템(120)이 수행하는 연산들 중 일부를 수행하여 호스트 시스템(120)의 연산을 보조하는 가속 기능을 수행할 수 있다. 예를 들어, 가속기(161)는 스토리지 장치(170)에 연결되어 스토리지 장치(170)로부터 입력 데이터를 수신하고, 입력 데이터에 대한 연산을 수행하여 연산 데이터를 생성하고, 생성한 연산 데이터를 버퍼 메모리에 저장하거나 또는 스토리지 장치(170)에 전송할 수 있다. 가속기(161)는 호스트의 명령에 따라 상술한 연산 동작을 수행할 수 있다.The accelerator 161 may perform an acceleration function to assist the computation of the host system 120 by performing some of the computations performed by the host system 120 . For example, the accelerator 161 is connected to the storage device 170, receives input data from the storage device 170, performs an operation on the input data to generate operation data, and stores the generated operation data in a buffer memory. It can be stored in or transmitted to the storage device 170. The accelerator 161 can perform the above-described calculation operations according to commands from the host.

버퍼 메모리는 가속기(161)로부터 연산에 따른 연산 데이터를 저장할 수 있다. 또는, 일 실시예에 따르면 버퍼 메모리는 호스트 시스템(120)으로부터 오프로딩된 시스템 데이터를 저장할 수도 있다. 버퍼 메모리는 DRAM 또는 SRAM 등과 같은 휘발성 메모리일 수 있다.The buffer memory can store calculation data according to calculations from the accelerator 161. Alternatively, according to one embodiment, the buffer memory may store system data offloaded from the host system 120. The buffer memory may be volatile memory such as DRAM or SRAM.

스토리지 장치(170)는 전자 장치에 내장되는 내부 메모리일 수 있다. 예를 들어, 스토리지 장치(170)는 SSD(Solid State Drive), 임베디드 UFS(Universal Flash Storage) 메모리 장치 또는 eMMC(embedded Multi-Media Card)일 수 있다. 일부 실시예들에서, 스토리지 장치(170)는 전자 장치에 착탈 가능한 외장 메모리일 수 있다. 예를 들어, 스토리지 장치(170)는 UFS 메모리 카드, CF(Compact Flash), SD(Secure Digital), Micro-SD(MicroSecure Digital), Mini-SD(Mini Secure Digital), xD(extreme Digital) 또는 메모리 스틱(Memory Stick)일 수 있다.The storage device 170 may be an internal memory built into an electronic device. For example, the storage device 170 may be a solid state drive (SSD), an embedded universal flash storage (UFS) memory device, or an embedded multi-media card (eMMC). In some embodiments, the storage device 170 may be an external memory that is removable from the electronic device. For example, storage device 170 may be a UFS memory card, Compact Flash (CF), Secure Digital (SD), MicroSecure Digital (Micro-SD), Mini Secure Digital (Mini-SD), extreme Digital (xD), or memory card. It may be a memory stick.

스토리지 장치(170)는 상술한 연결 인터페이스(CI_BS)를 통해 호스트 시스템(120)과 통신할 수 있다. 스토리리 장치는 호스트 시스템(120)으로부터 명령(호스트 커맨드)을 수신하고, 명령을 분석하여 가속기(161)를 제어할 커맨드를 생성할 수 있다.The storage device 170 may communicate with the host system 120 through the above-described connection interface (CI_BS). The storage device may receive a command (host command) from the host system 120, analyze the command, and generate a command to control the accelerator 161.

스토리지 장치(170)는 스토리지 컨트롤러(171), 버퍼 메모리(172) 및 NVM(Non-volatile memory)(173)를 포함한다. 예를 들어 스토리지 컨트롤러(171), 버퍼 메모리(172) 및 NVM(173)은 개별적인 칩들로 각각 구현될 수 있다. 스토리지 컨트롤러(171)는 호스트 시스템(120)이 요청한 동작을 수행하기 위해 필요한 입력 데이터를 명령에 기초하여 생성하거나, 또는 버퍼 메모리(172)나 NVM(173)으로부터 독출하여 생성할 수 있다. The storage device 170 includes a storage controller 171, a buffer memory 172, and a non-volatile memory (NVM) 173. For example, the storage controller 171, buffer memory 172, and NVM 173 may each be implemented as individual chips. The storage controller 171 may generate input data required to perform an operation requested by the host system 120 based on a command, or may generate the input data by reading it from the buffer memory 172 or the NVM 173.

PLP 블록(165)은 스토리지 장치(170)에 포함되어 비정상적인 전력 드롭 상황에서 전력의 손실을 방지하도록 구성된다. PLP 블록(165)은 PLP 배터리(166)와 연결되고, 스토리지 장치(170)의 전력을 모니터링하다가 전력 드롭이 감지될 경우 데이터가 손실되지 않도록 스토리지 장치(170)에 전력을 공급하는 동작을 수행할 수 있다. 다만, PLP 배터리(166)는 커패시터를 사용하므로, 스토리지 장치(170)에 충분한 양의 전력을 공급하기 어려울 수 있다.The PLP block 165 is included in the storage device 170 and is configured to prevent loss of power in an abnormal power drop situation. The PLP block 165 is connected to the PLP battery 166 and monitors the power of the storage device 170, and when a power drop is detected, it performs an operation of supplying power to the storage device 170 to prevent data loss. You can. However, since the PLP battery 166 uses a capacitor, it may be difficult to supply a sufficient amount of power to the storage device 170.

도 6을 참조하면, 다른 일 실시예에 따른 스토리지 세트(160_2)는 연결 인터페이스(CI_BS)를 통해 백플레인에 연결되며, 가속기(161), 버퍼 메모리(162) 및 스토리지 장치(170)를 포함하되 상술한 PLP 블록(165) 및 PLP 배터리(166)가 생략될 수 있다. PLP 블록(165) 및 PLP 배터리(166)가 생략될 경우, 배터리 모듈(180)이 PLP 블록(165)의 기능을 수행하게 된다. 즉, 스토리지 장치(170)에 비정상적인 전력 드롭이 감지될 경우 스토리지 장치(170)는 배터리 모듈(180)로부터 전력을 공급받을 수 있으며, 배터리 모듈(180)의 제어에 따라 버퍼 메모리에 저장된 데이터를 NVM으로 덤프하는 데이터 플러싱을 수행할 수 있다.Referring to FIG. 6, the storage set 160_2 according to another embodiment is connected to the backplane through a connection interface (CI_BS) and includes an accelerator 161, a buffer memory 162, and a storage device 170, as described above. One PLP block 165 and PLP battery 166 may be omitted. If the PLP block 165 and the PLP battery 166 are omitted, the battery module 180 performs the function of the PLP block 165. That is, when an abnormal power drop is detected in the storage device 170, the storage device 170 can receive power from the battery module 180 and transfer data stored in the buffer memory to the NVM under the control of the battery module 180. You can perform data flushing by dumping.

도 7은 본 발명의 일 실시예에 따른 배터리 모듈을 도시한 것이다.Figure 7 shows a battery module according to an embodiment of the present invention.

도 7을 참조하면, 배터리 모듈(180_1)은 배터리 컨트롤러(181) 및 적어도 하나의 배터리(182)를 포함한다.Referring to FIG. 7, the battery module 180_1 includes a battery controller 181 and at least one battery 182.

배터리 컨트롤러(181)는 연결 인터페이스(CI_BB)를 통해 백플레인(140)과 연결되며, 호스트 시스템(120)으로부터 복수의 스토리지 세트(160)에 대한 전력 관리 동작을 오프로딩하고, 스위칭 블록(141)을 통해 오프로딩된 전력 관리 동작을 수행한다. 배터리 컨트롤러(181)는 오프로딩을 위해 재구성, 재프로그래밍이 가능한 로직 칩일 수 있으며, 예를 들어 FPGA(Field Programmable Gate Array), MCU(MiCrocontroller Unit), PLD(Programmable Logic Device) 또는 CPLD(Complex PLD) 등일 수 있다. The battery controller 181 is connected to the backplane 140 through a connection interface (CI_BB), offloads power management operations for the plurality of storage sets 160 from the host system 120, and operates the switching block 141. Performs offloaded power management operations through The battery controller 181 may be a logic chip that can be reconfigured and reprogrammed for offloading, such as a Field Programmable Gate Array (FPGA), Microcontroller Unit (MCU), Programmable Logic Device (PLD), or Complex PLD (CPLD). It may be, etc.

적어도 하나의 배터리(182)는 배터리 컨트롤러(181)와 전기적으로 연결되며, 배터리 컨트롤러(181)의 제어에 따라 내부에 저장된 전력을 스토리지 세트(160)에 공급한다. 적어도 하나의 배터리(182)는 스토리지 장치(170) 내 PLP 배터리(166) 보다 더 큰 에너지를 저장하도록 구성될 수 있다.At least one battery 182 is electrically connected to the battery controller 181 and supplies power stored therein to the storage set 160 under the control of the battery controller 181. At least one battery 182 may be configured to store greater energy than the PLP battery 166 in the storage device 170.

이하에서는, 도 7의 배터리 컨트롤러(181)와 관련된 다양한 실시예들에 대하여 설명한다.Below, various embodiments related to the battery controller 181 of FIG. 7 will be described.

전력 관리 동작Power management behavior

일 실시예에 따르면, 배터리 컨트롤러(181)는 호스트 시스템(120)에 포함된 BMC(127)나 제1 프로세서(123) 및 제2 프로세서(125) 중 적어도 하나가 담당하는 전력 관리 동작을 연결 인터페이스(CI_BB)를 통해 오프로딩할 수 있다. 또는, 배터리 컨트롤러(181)는 전력 관리 동작뿐만 아니라 복수의 스토리지 세트(160) 각각에 대하여 설정되는 전력 정책이나 우선 순위와 같은 스토리지 세트(160) 별 정보를 연결 인터페이스(CI_BB)를 통해 오프로딩할 수도 있다. 우선 순위는 예를 들어 비정상적인 상황(예, SPO 또는 전력 글리치 등)이 발생하였을 때 우선적으로 전력이 공급될 필요가 있는 스토리지 세트(160)에 높게 설정될 수 있다. 여기서, 전력 공급의 필요성이 높은 스토리지 세트(160)는 예를 들어 상대적으로 보호의 필요성이 높은 연산을 수행하거나, 그에 따른 연산 데이터를 저장하고 있는 스토리지 세트(160)일 수 있다.According to one embodiment, the battery controller 181 is a connection interface for power management operations performed by at least one of the BMC 127 or the first processor 123 and the second processor 125 included in the host system 120. Offloading is possible through (CI_BB). Alternatively, the battery controller 181 may offload not only power management operations but also information for each storage set 160, such as power policy or priority set for each of the plurality of storage sets 160, through the connection interface (CI_BB). It may be possible. The priority may be set high, for example, to storage sets 160 that need to be powered first when an abnormal situation (e.g., SPO or power glitch, etc.) occurs. Here, the storage set 160 with a high need for power supply may be, for example, a storage set 160 that performs an operation requiring relatively high protection or stores operation data corresponding thereto.

예를 들어, 배터리 컨트롤러(181)는 NVMe(NVM express)에서 스토리지 장치(170)에 호스트 시스템(120)의 기능을 오프로딩시키도록 지원할 수 있도록 구현된 TP 4091 표준에 기초하여 전력 관리 동작 등을 오프로딩할 수 있다.For example, the battery controller 181 performs power management operations, etc. based on the TP 4091 standard implemented to support offloading the functions of the host system 120 to the storage device 170 in NVM express (NVMe). Can be offloaded.

도 8은 본 발명의 일 실시예에 따른 배터리 컨트롤러의 동작 방법의 순서도이다.Figure 8 is a flowchart of a method of operating a battery controller according to an embodiment of the present invention.

도 8을 참조하면, S110에서, 배터리 컨트롤러(181)는 복수의 스토리지 세트(160)에 대한 전력 관리 동작, 복수의 스토리지 세트(160) 각각에 대하여 설정되는 전력 정책 및 우선 수위 중 적어도 하나를 오프로딩한다.Referring to FIG. 8, in S110, the battery controller 181 turns off at least one of a power management operation for a plurality of storage sets 160, a power policy set for each of the plurality of storage sets 160, and a priority level. Loading.

S120에서, 배터리 컨트롤러(181)는 연결 인터페이스를 통해 스토리지 세트(160)의 전력을 모니터링한다. 전력을 모니터링하는 것은 상술한 비정상적인 전력 드롭을 감지하기 위한 동작이다. 예를 들어, 스토리지 세트(160)에 대한 전력 모니터링은 SM 버스(SM_BUS)를 통해 수행될 수 있다.At S120, the battery controller 181 monitors the power of the storage set 160 through the connection interface. Monitoring power is an operation to detect the abnormal power drop described above. For example, power monitoring for storage set 160 may be performed through the SM bus (SM_BUS).

S130에서, 배터리 컨트롤러(181)는 비정상적인 전력 드롭이 발생할 경우 오프로딩된 전력 관리 동작, 전력 정책 및 우선 순위 중 적어도 하나에 기초하여 스토리지 세트(160)에 전력을 공급한다. 예를 들어, 배터리 컨트롤러(181)는 복수의 스토리지 세트(160) 각각에 대하여 설정된 우선 순위에 따라 우선 순위가 가장 높은 스토리지 세트(160) 또는 상위 우선 순위를 갖는 적어도 하나의 스토리지 세트에 우선적으로 전력을 공급할 수 있다. In S130, the battery controller 181 supplies power to the storage set 160 based on at least one of an offloaded power management operation, a power policy, and a priority when an abnormal power drop occurs. For example, the battery controller 181 may preferentially power the storage set 160 with the highest priority or at least one storage set with a higher priority according to the priorities set for each of the plurality of storage sets 160. can be supplied.

일 실시예에 따르면, 배터리 컨트롤러(181)는 전력의 로드 밸런싱을 수행할 수 있다. 배터리 컨트롤러(181)는 연결 인터페이스(CI_BB)를 통해 스토리지 세트(160)의 전력을 모니터링한다. 배터리 컨트롤러(181)는 모니터링을 통해 복수의 스토리지 세트(160) 별로 워크 로드(work load)를 검출한다. 예를 들어, 워크 로드는 호스트 시스템(120)과 스토리지 세트(160) 간 입/출력 동작이나 연산 동작에 따른 스토리지 세트(160) 별 부하를 의미할 수 있다. According to one embodiment, the battery controller 181 may perform load balancing of power. The battery controller 181 monitors the power of the storage set 160 through the connection interface (CI_BB). The battery controller 181 detects the workload for each of the plurality of storage sets 160 through monitoring. For example, the workload may refer to the load for each storage set 160 according to input/output operations or computation operations between the host system 120 and the storage set 160.

배터리 컨트롤러(181)는 워크 로드에 기초하여 복수의 스토리지 세트(160) 별로 임계값을 설정한다. 여기서, 임계값은 상술한 데이터 플러싱이 수행되기 위한 전력 임계값을 의미한다. 예를 들어, 배터리 컨트롤러(181)는 복수의 스토리지 세트(160) 중 어느 하나의 스토리지 세트(160)에서 수행되거나 수행될 연산량이 다른 스토리지 세트(160)에서 수행되거나 수행될 연산량 보다 많은 것으로 판단되면, 하나의 스토리지 세트(160)에 대한 임계값을 보다 높게 설정할 수 있다. 예를 들어, 배터리 컨트롤러(181)는 복수의 스토리지 세트(160) 중 어느 하나의 스토리지 세트(160)에서 기입 또는 리드되는 데이터량이 다른 스토리지 세트(160)보다 많은 것으로 판단되면, 하나의 스토리지 세트(160)에 대한 임계값을 보다 높게 설정할 수 있다.The battery controller 181 sets a threshold for each of the plurality of storage sets 160 based on the workload. Here, the threshold refers to the power threshold for performing the above-described data flushing. For example, if the battery controller 181 determines that the amount of computation performed or to be performed in one storage set 160 among the plurality of storage sets 160 is greater than the amount of computation performed or to be performed in the other storage set 160, , the threshold for one storage set 160 can be set higher. For example, if the battery controller 181 determines that the amount of data written or read in one storage set 160 among the plurality of storage sets 160 is greater than that in the other storage sets 160, the battery controller 181 selects one storage set ( 160) can be set higher.

또는, 배터리 컨트롤러(181)는 워크 로드에 기초하여 복수의 스토리지 세트(160) 별로 전력 드롭 시 공급될 예비 전력량을 설정한다. 예를 들어, 워크 로드가 상대적으로 많은 스토리지 세트(160)의 경우 예비 전력량 또한 상대적으로 높게 설정될 수 있을 것이다.Alternatively, the battery controller 181 sets the amount of reserve power to be supplied when power drops for each of the plurality of storage sets 160 based on the workload. For example, in the case of the storage set 160 with a relatively large workload, the amount of reserve power may also be set relatively high.

도 9는 본 발명의 다른 일 실시예에 따른 배터리 컨트롤러의 동작 방법의 순서도이다.Figure 9 is a flowchart of a method of operating a battery controller according to another embodiment of the present invention.

도 9를 참조하면, S210에서, 배터리 컨트롤러(181)는 복수의 스토리지 세트(160)에 대하여 워크 로드를 모니터링하고 검출한다.Referring to FIG. 9, in S210, the battery controller 181 monitors and detects the workload for the plurality of storage sets 160.

S220에서, 배터리 컨트롤러(181)는 검출된 워크 로드에 기초하여 복수의 스토리지 세트(160) 별로 임계값 및 예비 전력 중 적어도 하나를 결정한다. 예를 들어, 배터리 컨트롤러(181)는 상술한 바와 같이 워크 로드가 많을수록 임계값 또는 예비 전력을 높게 설정할 수 있다.In S220, the battery controller 181 determines at least one of a threshold value and a reserve power for each of the plurality of storage sets 160 based on the detected workload. For example, as described above, the battery controller 181 may set the threshold or reserve power higher as the workload increases.

S230에서, 배터리 컨트롤러(181)는 모니터링을 통해 복수의 스토리지 세트(160) 중 적어도 하나의 스토리지 세트에서 비정상적인 전력 드롭이 검출되는지 여부를 판단한다. In S230, the battery controller 181 determines whether an abnormal power drop is detected in at least one storage set among the plurality of storage sets 160 through monitoring.

S230에 따라 전력 드롭이 검출된 것으로 판단되면, S240에서 배터리 컨트롤러(181)는 적어도 하나의 배터리(182)를 이용하여 결정된 예비 전력에 기초한 전력 공급을 시작한다.If it is determined that a power drop is detected in S230, the battery controller 181 starts supplying power based on the determined reserve power using at least one battery 182 in S240.

예비 전력의 공급에도 불과하고 전력 드롭이 지속되면 S250에서 배터리 컨트롤러(181)는 데이터 플러싱을 임계값에 기초하여 수행할 수 있다. If only spare power is supplied and the power drop continues, the battery controller 181 may perform data flushing based on the threshold in S250.

상술한 본 발명의 실시예들에 따르면, 배터리 컨트롤러(181)는 호스트 시스템(120)으로부터 전력 관리 동작 등을 오프로딩하여 복수의 스토리지 세트(160)의 전력 관리나 전력 공급 동작 중 적어도 일부를 호스트 시스템(120)을 대신하여 수행함으로써 스토리지 시스템(100)의 효율이 향상될 수 있다. 또한, 복수의 스토리지 세트(160)에 대한 워크 로드를 개별적으로 고려하여 전력 관리 동작에 필요한 임계값이나 예비 전력 등을 설정할 수 있다.According to the above-described embodiments of the present invention, the battery controller 181 offloads power management operations, etc. from the host system 120 to perform at least some of the power management or power supply operations of the plurality of storage sets 160 to the host system 120. By performing this on behalf of the system 120, the efficiency of the storage system 100 can be improved. In addition, the threshold value or reserve power required for power management operations can be set by individually considering the workload for the plurality of storage sets 160.

전력 드롭 보호Power drop protection

일 실시예에 따르면, 배터리 컨트롤러(181)는 복수의 스토리지 세트(160)를 모니터링하며, 모니터링을 통해 복수의 스토리지 세트(160)로부터 비정상적인 전력 드롭을 감지할 수 있다. 예를 들어, 배터리 컨트롤러(181)는 연결 인터페이스에 포함된 SM 버스(SM_BUS)를 통해 스토리지 세트(160)를 모니터링할 수 있다.According to one embodiment, the battery controller 181 monitors the plurality of storage sets 160 and can detect an abnormal power drop from the plurality of storage sets 160 through monitoring. For example, the battery controller 181 may monitor the storage set 160 through the SM bus (SM_BUS) included in the connection interface.

배터리 컨트롤러(181)는 전력 드롭이 감지될 경우 스위치 블록을 제어하여 전력 드롭이 감지된 적어도 하나의 스토리지 세트에 적어도 하나의 배터리(182)로부터 예비 전력을 공급한다. 배터리 컨트롤러(181)는 예비 전력의 공급 이후 적어도 하나의 스토리지 세트에서 임계값 이하의 전력이 감지될 경우 적어도 하나의 스토리지 세트가 데이터 플러싱을 수행하도록 제어한다.When a power drop is detected, the battery controller 181 controls the switch block to supply spare power from at least one battery 182 to at least one storage set in which the power drop is detected. The battery controller 181 controls at least one storage set to perform data flushing when power below the threshold is detected in at least one storage set after supply of reserve power.

도 10a 및 도 10b는 배터리 컨트롤러의 전력 관리 동작의 예들을 도시한 것이다. 10A and 10B show examples of power management operations of the battery controller.

도 10a를 참조하면, 복수의 스토리지 세트(160)로부터 전력 드롭이 감지되기 전, 즉 전력 드롭이 감지되지 않을 경우 복수의 스토리지 세트(160)는 호스트 시스템(120)으로부터 전력을 공급하는 동작을 수행한다. 만약 비정상적인 전력 드롭이 스토리지 세트(160)로부터 감지되면(t1 시점), 예비 전력을 공급하기 시작한다. 예비 전력의 공급은 전력 드롭이 감지된 시점에 곧바로 수행될 수도 있고, 또는 전력 드롭이 감지된 시점으로부터 기 설정된 시간 이후(t2 시점)에 수행될 수도 있다. 예비 전력의 공급 이후 적어도 하나의 스토리지 세트에서 임계값 이하의 전력이 감지되지 않을 경우 배터리 컨트롤러(181)는 전력 드롭의 모니터링을 다시 수행할 수 있다.Referring to FIG. 10A, before a power drop is detected from the plurality of storage sets 160, that is, when a power drop is not detected, the plurality of storage sets 160 perform an operation of supplying power from the host system 120. do. If an abnormal power drop is detected from the storage set 160 (at time t1), it begins to supply reserve power. The supply of reserve power may be performed immediately when a power drop is detected, or may be performed after a preset time (time t2) from the time a power drop is detected. If power below the threshold is not detected in at least one storage set after supply of reserve power, the battery controller 181 may perform monitoring of power drop again.

도 10b를 참조하면, 배터리 컨트롤러(181)는 전력 드롭이 감지되면(t1 시점), 마찬가지로 예비 전력을 공급하기 시작한다(t2 시점). 예비 전력의 공급에도 불과하고 전력 드롭이 지속되어 임계값 이하의 전력이 감지될 경우(t3 시점), 배터리 컨트롤러(181)는 스토리지 세트(160)가 데이터 플러싱을 수행하도록 제어한다. 예를 들어, 배터리 컨트롤러(181)는 임계값 이하의 전력이 감지된 t3 시점에서 데이터 플러싱을 수행하도록 스토리지 세트(160)를 제어하며, 스토리지 세트(160)는 버퍼 메모리에 저장된 데이터를 NVM으로 덤프시킨다. Referring to FIG. 10B, when a power drop is detected (at time t1), the battery controller 181 similarly starts supplying reserve power (at time t2). When only the reserve power is supplied and the power drop continues and power below the threshold is detected (at time t3), the battery controller 181 controls the storage set 160 to perform data flushing. For example, the battery controller 181 controls the storage set 160 to perform data flushing at time t3 when power below the threshold is detected, and the storage set 160 dumps the data stored in the buffer memory to the NVM. I order it.

도 11은 본 발명의 일 실시예에 따른 배터리 컨트롤러를 포함하는 스토리지 시스템의 동작 방법을 설명하기 위한 것이다.FIG. 11 is for explaining a method of operating a storage system including a battery controller according to an embodiment of the present invention.

도 11을 참조하면, S310에서, 스토리지 시스템(100)에 포함된 호스트 시스템(120)은 우선 복수의 스토리지 세트(160)에 대한 전력 관리 동작, 복수의 스토리지 세트(160) 각각에 대하여 설정되는 전력 정책 및 우선 수위 중 적어도 하나를 오프로딩한다. 오프로딩은 상술한 연결 인터페이스(CI_BB)를 통해 수행될 수 있고, 이를 위하여 배터리 모듈(180_1)에 포함된 배터리 컨트롤러(181)는 재구성, 재프로그래밍이 가능할 수 있다. Referring to FIG. 11, in S310, the host system 120 included in the storage system 100 first performs a power management operation for the plurality of storage sets 160 and the power set for each of the plurality of storage sets 160. Offload at least one of the policy and priority levels. Offloading can be performed through the above-described connection interface (CI_BB), and for this purpose, the battery controller 181 included in the battery module 180_1 can be reconfigured and reprogrammed.

S320에서, 스토리지 세트(160)는 공급받는 일반 전력으로부터 공급된 전력에 기초하여 일반적인 기입/리드 동작(R/W)을 수행한다.In S320, the storage set 160 performs a general write/read operation (R/W) based on power supplied from the received general power.

S330에서, 배터리 모듈(180_1)은 스토리지 세트(160)의 전력을 모니터링한다. 전력을 모니터링하는 것은 상술한 비정상적인 전력 드롭을 감지하기 위한 동작이다. 예를 들어, 스토리지 세트(160)에 대한 전력 모니터링은 SM 버스(SM_BUS)를 통해 수행될 수 있다.At S330, the battery module 180_1 monitors the power of the storage set 160. Monitoring power is an operation to detect the abnormal power drop described above. For example, power monitoring for storage set 160 may be performed through the SM bus (SM_BUS).

S340에서, 배터리 모듈(180_1)은 전력 모니터링 중 비정상적인 전력, 즉 전력 드롭이 검출되었는지 여부를 판단한다. 만약 전력 드롭이 검출되지 않으면 배터리 모듈(180_1)은 지속적으로 S330 단계를 수행할 수 있다.In S340, the battery module 180_1 determines whether abnormal power, that is, a power drop, is detected during power monitoring. If a power drop is not detected, the battery module 180_1 may continuously perform step S330.

S340에서 전력 드롭이 검출될 경우, S350에서 배터리 모듈(180_1)은 예비 전력을 스토리지 세트(160)에 공급한다. 배터리 모듈(180_1)은 백플레인(140)에 포함된 스위칭 블록(141)을 통해 복수의 스토리지 세트(160) 중에서 전력 드롭이 감지된 적어도 하나의 스토리지 세트에 대하여 예비 전력을 공급할 수 있다.When a power drop is detected in S340, the battery module 180_1 supplies spare power to the storage set 160 in S350. The battery module 180_1 may supply spare power to at least one storage set in which a power drop is detected among the plurality of storage sets 160 through the switching block 141 included in the backplane 140.

S360에서, 배터리 모듈(180_1)은 예비 전력의 공급과 함께 적어도 하나의 스토리지 세트의 전력이 임계값(Pth) 이하가 되는지를 모니터링한다. 만약 전력이 임계값(Pth) 이하가 되지 않는 경우, 예비 전력 공급을 통해 전력이 회복되었다고 판단될 수 있으므로, S320 단계 및 S330 단계가 다시 수행될 수 있다.In S360, the battery module 180_1 supplies spare power and monitors whether the power of at least one storage set is below the threshold value (Pth). If the power does not fall below the threshold value (Pth), it may be determined that the power has been recovered through spare power supply, and steps S320 and S330 may be performed again.

S360에서 적어도 하나의 스토리지 세트의 전력이 임계값(Pth) 이하로 감지되면, S380에서 배터리 모듈(180_1)은 적어도 하나의 스토리지 세트가 데이터 플러싱을 수행하도록 제어한다. 적어도 하나의 스토리지 세트는 전력 드롭에 의해 데이터가 손실되지 않도록 비휘발성 메모리에 저장된 데이터를 NVM으로 덤프시킨다.If the power of at least one storage set is detected to be below the threshold value (Pth) in S360, the battery module 180_1 controls the at least one storage set to perform data flushing in S380. At least one storage set dumps data stored in non-volatile memory to the NVM to prevent data loss due to power drops.

상술한 본 발명의 실시예들에 따르면, 특히 일시적인 전력 드롭 현상인 전력 글리치가 감지될 경우 배터리 모듈(180_1)은 곧바로 예비 전력을 공급하며, 전력이 임계값 이하로 떨어질 경우에는 스토리지 세트(160)가 데이터 플러싱을 수행하도록 제어함으로써 전력 글리치 상황에서도 데이터 손실을 방지할 수 있다.According to the above-described embodiments of the present invention, when a power glitch, which is a temporary power drop phenomenon, is detected, the battery module 180_1 immediately supplies reserve power, and when the power falls below a threshold, the storage set 160 By controlling data flushing, data loss can be prevented even in power glitch situations.

데이터 복제data replication

일 실시예에 따르면, 배터리 컨트롤러(181)는 비정상적인 전력 드롭이 검출될 경우를 대비하여 스토리지 세트(160)의 데이터를 복제할 수 있다. 이를 위하여, 컨트롤러는 데이터 복제 기능이 가능하도록 프로그래밍될 수 있다. 이하에서는, 데이터 복제 기능과 관련된 실시예를 도 11 및 도 12를 참조하여 설명한다.According to one embodiment, the battery controller 181 may replicate data in the storage set 160 in case an abnormal power drop is detected. To this end, the controller can be programmed to enable data replication functionality. Hereinafter, embodiments related to the data replication function will be described with reference to FIGS. 11 and 12.

도 12는 본 발명의 다른 일 실시예에 따른 배터리 모듈을 도시한 것이다.Figure 12 shows a battery module according to another embodiment of the present invention.

도 12를 참조하면, 다른 일 실시예에 따른 배터리 모듈(180_2)은 상술한 배터리 컨트롤러(181) 및 적어도 하나의 배터리(182)에 더하여, 버퍼 메모리(183) 및 NVM(184)을 포함할 수 있다. 버퍼 메모리(183) 및 NVM(184)은 스토리지 세트(160)의 데이터가 복제될 경우 복제된 데이터를 저장할 수 있다.Referring to FIG. 12, the battery module 180_2 according to another embodiment may include a buffer memory 183 and an NVM 184 in addition to the battery controller 181 and at least one battery 182 described above. there is. The buffer memory 183 and NVM 184 may store the replicated data when data in the storage set 160 is replicated.

배터리 컨트롤러(181)는 복수의 스토리지 세트(160)를 모니터링하며, 모니터링을 통해 복수의 스토리지 세트(160)로부터 비정상적인 전력 드롭을 감지할 수 있다. 예를 들어, 배터리 컨트롤러(181)는 연결 인터페이스(CI_BB)에 포함된 SM 버스(SM_BUS)를 통해 스토리지 세트(160)를 모니터링할 수 있다. 또는, 배터리 컨트롤러(181)는 모니터링을 통해 전력 드롭이 아닌 상황, 즉 평시의 복수의 스토리지 세트(160)의 전력 소모량을 확인할 수 있다.The battery controller 181 monitors the plurality of storage sets 160 and can detect abnormal power drops from the plurality of storage sets 160 through monitoring. For example, the battery controller 181 may monitor the storage set 160 through the SM bus (SM_BUS) included in the connection interface (CI_BB). Alternatively, the battery controller 181 may check the power consumption of the plurality of storage sets 160 in normal times, that is, in a situation other than a power drop, through monitoring.

모니터링을 통해 전력 드롭이 감지될 경우, 배터리 컨트롤러(181)는 전력 드롭이 감지된 스토리지 세트(160)의 평시 전력 소모량 및 설정된 우선 순위 중 적어도 하나에 기초하여 대체 스토리지 세트로 선정할지 여부를 판단한다. 예를 들어, 배터리 컨트롤러(181)는 스토리지 세트(160)의 평시 전력 소모량이 낮을 경우(예를 들어, 평시 전력 소모량이 기 설정된 소모량 값 이하) 데이터 복제 시 실패의 위험성이 낮은 것으로 판단하여 대체 스토리지 세트로 선정할 수 있다.When a power drop is detected through monitoring, the battery controller 181 determines whether to select a replacement storage set based on at least one of the normal power consumption and the set priority of the storage set 160 in which the power drop was detected. . For example, if the normal power consumption of the storage set 160 is low (for example, the normal power consumption is less than a preset consumption value), the battery controller 181 determines that the risk of failure during data replication is low and provides alternative storage. You can select it as a set.

배터리 컨트롤러(181)는 전력 드롭이 감지된 스토리지 세트(160)를 대체 스토리지 세트로 선정하면 연결 인터페이스(CI_BB)를 통해 전력 드롭이 발생한 스토리지 세트(160)에 포함된 비휘발성 메모리에 저장된 데이터를 복제한다. 배터리 컨트롤러(181)는 데이터 복제가 완료될 경우 복제 완료 정보를 호스트 시스템(120)에 통지한다. 이후, 호스트 시스템(120)은 복제 완료 정보를 수신하면 배터리 모듈(180) 내 저장된 복제 데이터를 리드한다.When the battery controller 181 selects the storage set 160 in which a power drop is detected as an alternative storage set, the battery controller 181 copies the data stored in the non-volatile memory included in the storage set 160 in which the power drop occurred through the connection interface (CI_BB). do. When data replication is completed, the battery controller 181 notifies the host system 120 of replication completion information. Thereafter, when the host system 120 receives replication completion information, it reads the replication data stored in the battery module 180.

도 13은 도 12의 배터리 모듈이 포함된 스토리지 시스템의 동작 방법의 순서도이다.FIG. 13 is a flowchart of a method of operating a storage system including the battery module of FIG. 12.

도 13을 참조하면, S410에서, 스토리지 시스템(100)에 포함된 호스트 시스템(120)은 우선 복수의 스토리지 세트(160)에 대한 전력 관리 동작, 복수의 스토리지 세트(160) 각각에 대하여 설정되는 전력 정책 및 우선 수위 중 적어도 하나를 오프로딩한다. 오프로딩은 상술한 연결 인터페이스를 통해 수행될 수 있고, 이를 위하여 배터리 모듈(180_2)에 포함된 배터리 컨트롤러(181)는 재구성, 재프로그래밍이 가능할 수 있다. 특히, 대체 스토리지 세트 선정을 위해 필요한 우선 순위 정보가 오프로딩될 수 있다.Referring to FIG. 13, in S410, the host system 120 included in the storage system 100 first performs a power management operation for the plurality of storage sets 160 and the power set for each of the plurality of storage sets 160. Offload at least one of the policy and priority levels. Offloading can be performed through the above-described connection interface, and for this purpose, the battery controller 181 included in the battery module 180_2 can be reconfigured and reprogrammed. In particular, priority information required for selecting an alternative storage set may be offloaded.

S420에서, 배터리 모듈(180_2)은 스토리지 세트(160)의 전력을 모니터링한다. 전력을 모니터링하는 것은 상술한 비정상적인 전력 드롭을 감지하거나 평시의 전력 소모량을 확인하기 위한 동작이다. 예를 들어, 스토리지 세트(160)에 대한 전력 모니터링은 SM 버스(SM_BUS)를 통해 수행될 수 있다.At S420, battery module 180_2 monitors the power of storage set 160. Monitoring power is an operation to detect the above-mentioned abnormal power drop or check normal power consumption. For example, power monitoring for storage set 160 may be performed through the SM bus (SM_BUS).

S430에서, 배터리 모듈(180_2)은 전력 모니터링 중 비정상적인 전력, 즉 전력 드롭이 검출되었는지 여부를 판단한다. 만약 전력 드롭이 검출되지 않으면 배터리 모듈(180_2)은 지속적으로 S420 단계를 수행할 수 있다.In S430, the battery module 180_2 determines whether abnormal power, that is, a power drop, is detected during power monitoring. If a power drop is not detected, the battery module 180_2 may continuously perform step S420.

S430에서 전력 드롭이 검출될 경우, S440에서 배터리 모듈(180_2)은 전력 드롭이 감지된 스토리지 세트(160)의 평시 전력 소모량 및 설정된 우선 순위 중 적어도 하나에 기초하여 대체 스토리지 세트로 선정할지 여부를 판단한다.When a power drop is detected in S430, the battery module 180_2 determines whether to select a replacement storage set as an alternative storage set based on at least one of the normal power consumption and the set priority of the storage set 160 in which the power drop was detected in S440. do.

전력 드롭이 검출된 스토리지 세트(160)를 대체 스토리지 세트로 선정하면, S450에서 배터리 모듈(180_2)은 대체 스토리지 세트에 저장된 데이터를 복제한다. 복제 데이터는 배터리 모듈(180_2)에 포함된 메모리(버퍼 메모리(183), NVM(184))에 저장될 수 있다. When the storage set 160 in which a power drop is detected is selected as an alternative storage set, the battery module 180_2 copies the data stored in the alternative storage set in S450. Replica data may be stored in memory (buffer memory 183, NVM 184) included in the battery module 180_2.

S460에서, 배터리 모듈(180_2)은 데이터 복제가 완료될 경우 복제 완료 정보를 호스트 시스템(120)에 통지한다. In S460, the battery module 180_2 notifies the host system 120 of replication completion information when data replication is completed.

S470에서, 호스트 시스템(120)은 배터리 모듈(180_2)에 저장된 복제 데이터를 리드한다.At S470, the host system 120 reads the duplicate data stored in the battery module 180_2.

상술한 본 발명의 실시예들에 따르면, 전력 드롭 현상이 감지될 경우 우선 순위와 평시 전력 소모량에 따라 대체 스토리지 세트를 선정하고, 선정된 대체 스토리지 세트로부터 데이터를 복제함으로써 데이터의 손실을 방지할 수 있다. According to the above-described embodiments of the present invention, when a power drop phenomenon is detected, an alternative storage set is selected according to priority and normal power consumption, and data loss can be prevented by replicating data from the selected alternative storage set. there is.

상술한 내용은 본 발명을 실시하기 위한 구체적인 실시 예들이다. 본 발명은 상술한 실시 예들 이외에도, 단순하게 설계 변경되거나 용이하게 변경할 수 있는 실시 예들도 포함될 것이다. 또한, 본 발명은 실시 예들을 이용하여 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다. 따라서, 본 발명의 범위는 상술한 실시 예들에 국한되어 정해져서는 안되며, 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 할 것이다.The above-described details are specific embodiments for carrying out the present invention. In addition to the above-described embodiments, the present invention will also include 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.

100: 스토리지 시스템
120: 호스트 시스템 140: 백플레인
160: 스토리지 세트 180: 배터리 모듈
100: storage system
120: host system 140: backplane
160: storage set 180: battery module

Claims (20)

호스트 시스템;
스위칭 블록을 포함하고, 상기 호스트 시스템에 연결된 백플레인;
상기 백플레인에 연결되고, 상기 호스트 시스템으로부터 전력을 공급받는 복수의 스토리지 세트; 및
상기 백플레인에 연결되고, 상기 복수의 스토리지 세트 중 적어도 하나의 스토리지 세트에서 비정상적인 전력 드롭이 감지될 경우 상기 스위칭 블록을 통해 예비 전력을 공급하는 배터리 모듈을 포함하고,
상기 배터리 모듈은 상기 예비 전력의 공급 이후 상기 적어도 하나의 스토리지 세트에서 임계값 이하의 전력이 감지될 경우 상기 적어도 하나의 스토리지 세트가 데이터 플러싱을 수행하도록 제어하는 스토리지 시스템.
host system;
a backplane including a switching block and connected to the host system;
a plurality of storage sets connected to the backplane and receiving power from the host system; and
a battery module connected to the backplane and supplying spare power through the switching block when an abnormal power drop is detected in at least one storage set among the plurality of storage sets;
The battery module controls the at least one storage set to perform data flushing when power below a threshold is detected in the at least one storage set after supplying the spare power.
제1항에 있어서,
상기 복수의 스토리지 세트 각각은:
비휘발성 메모리를 포함하는 스토리지 장치;
상기 스토리지 장치에 연결되고, 상기 호스트 시스템의 명령에 따라 연산을 수행하는 가속기; 및
상기 연산에 따른 연산 데이터 및 상기 호스트 시스템으로부터 오프로딩된 시스템 데이터 중 적어도 하나를 저장하는 휘발성 메모리를 포함하는 스토리지 시스템.
According to paragraph 1,
Each of the plurality of storage sets:
A storage device including non-volatile memory;
an accelerator connected to the storage device and performing operations according to commands from the host system; and
A storage system including a volatile memory that stores at least one of operation data according to the operation and system data offloaded from the host system.
제2항에 있어서,
상기 데이터 플러싱은 상기 휘발성 메모리에 저장된 상기 연산 데이터를 상기 비휘발성 메모리로 덤프하는 것으로 정의되는 스토리지 시스템.
According to paragraph 2,
The data flushing is defined as dumping the operation data stored in the volatile memory to the non-volatile memory.
제1항에 있어서,
상기 배터리 모듈은:
적어도 하나의 배터리; 및
상기 전력 드롭을 감지하고, 상기 스위칭 블록을 제어하여 상기 적어도 하나의 스토리지 세트에 상기 적어도 하나의 배터리로부터 상기 예비 전력을 공급하도록 구성되는 배터리 컨트롤러를 포함하는 스토리지 시스템.
According to paragraph 1,
The battery module:
at least one battery; and
A storage system comprising a battery controller configured to detect the power drop and control the switching block to supply the reserve power from the at least one battery to the at least one storage set.
제4항에 있어서,
상기 배터리 컨트롤러는 상기 복수의 스토리지 세트 별로 워크로드를 검출하고, 상기 워크로드에 기초하여 상기 임계값을 상기 복수의 스토리지 별로 설정하는 스토리지 시스템.
According to clause 4,
The battery controller detects a workload for each of the plurality of storage sets, and sets the threshold for each of the plurality of storages based on the workload.
제4항에 있어서,
상기 배터리 컨트롤러는 상기 복수의 스토리지 세트 별로 워크로드를 검출하고, 상기 워크로드에 기초하여 상기 예비 전력을 상기 복수의 스토리지 별로 설정하는 스토리지 시스템.
According to paragraph 4,
The battery controller detects a workload for each of the plurality of storage sets, and sets the reserve power for each of the plurality of storages based on the workload.
제1항에 있어서,
상기 백플레인과 상기 복수의 스토리지 세트를 연결하는 PCIe 인터페이스 및 시스템 관리 버스를 더 포함하는 스토리지 시스템.
According to paragraph 1,
A storage system further comprising a PCIe interface and a system management bus connecting the backplane and the plurality of storage sets.
제7항에 있어서,
상기 배터리 모듈은 상기 PCIe 인터페이스를 통해 상기 예비 전력을 공급하는 스토리지 시스템.
In clause 7,
A storage system in which the battery module supplies the spare power through the PCIe interface.
제7항에 있어서,
상기 배터리 모듈은 상기 시스템 관리 버스를 통해 상기 복수의 스토리지 세트로부터 상기 전력 드롭을 감지하는 스토리지 시스템.
In clause 7,
A storage system wherein the battery module detects the power drop from the plurality of storage sets through the system management bus.
제1항에 있어서,
상기 배터리 모듈은 상기 예비 전력의 공급 이후 상기 적어도 하나의 스토리지 세트에서 임계값 이하의 전력이 감지되지 않을 경우 상기 전력 드롭의 모니터링을 다시 수행하는 스토리지 시스템.
According to paragraph 1,
A storage system in which the battery module re-performs monitoring of the power drop when power below a threshold value is not detected in the at least one storage set after supplying the reserve power.
호스트 시스템;
스위칭 블록을 포함하고, 상기 호스트 시스템에 연결된 백플레인;
상기 백플레인에 연결되고, 상기 호스트 시스템으로부터 전력을 공급받는 복수의 스토리지 세트; 및
상기 백플레인에 연결되고, 상기 호스트 시스템으로부터 상기 복수의 스토리지 세트에 대한 전력 관리 동작을 오프로딩하고, 상기 스위칭 블록을 통해 상기 전력 관리 동작을 수행하는 배터리 모듈을 포함하는 스토리지 시스템.
host system;
a backplane including a switching block and connected to the host system;
a plurality of storage sets connected to the backplane and receiving power from the host system; and
A storage system comprising a battery module connected to the backplane, offloading power management operations for the plurality of storage sets from the host system, and performing the power management operations through the switching block.
제11항에 있어서,
상기 배터리 모듈은:
적어도 하나의 배터리; 및
상기 복수의 스토리지 세트 각각에 대하여 설정되는 전력 정책 및 우선 순위 중 적어도 하나에 기초하여 상기 전력 관리 동작을 수행하도록 구성되는 배터리 컨트롤러를 포함하는 스토리지 시스템.
According to clause 11,
The battery module:
at least one battery; and
A storage system comprising a battery controller configured to perform the power management operation based on at least one of a power policy and a priority set for each of the plurality of storage sets.
제12항에 있어서,
상기 배터리 컨트롤러는 상기 복수의 스토리지 세트 중 적어도 하나의 스토리지 세트에서 비정상적인 전력 드롭을 감지하고, 상기 전력 드롭이 감지될 경우 상기 적어도 하나의 배터리로부터 예비 전력을 공급하는 스토리지 시스템.
According to clause 12,
The battery controller detects an abnormal power drop in at least one storage set among the plurality of storage sets, and supplies spare power from the at least one battery when the power drop is detected.
제13항에 있어서,
상기 배터리 컨트롤러는 상기 예비 전력의 공급 이후 상기 적어도 하나의 스토리지 세트에서 임계값 이하의 전력이 감지될 경우 상기 적어도 하나의 스토리지 세트가 데이터 플러싱을 수행하도록 제어하는 스토리지 시스템.
According to clause 13,
The battery controller controls the at least one storage set to perform data flushing when power below a threshold is detected in the at least one storage set after supplying the reserve power.
제14항에 있어서,
상기 배터리 컨트롤러는 상기 복수의 스토리지 세트 별로 워크로드를 검출하고, 상기 워크로드에 기초하여 상기 임계값을 상기 복수의 스토리지 별로 설정하는 스토리지 시스템.
According to clause 14,
The battery controller detects a workload for each of the plurality of storage sets, and sets the threshold for each of the plurality of storages based on the workload.
제14항에 있어서,
상기 배터리 컨트롤러는 상기 복수의 스토리지 세트 별로 워크로드를 검출하고, 상기 워크로드에 기초하여 상기 예비 전력을 상기 복수의 스토리지 별로 설정하는 스토리지 시스템.
According to clause 14,
The battery controller detects a workload for each of the plurality of storage sets, and sets the reserve power for each of the plurality of storages based on the workload.
제13항에 있어서,
상기 백플레인과 상기 복수의 스토리지 세트를 연결하는 PCIe 인터페이스 및 시스템 관리 버스를 더 포함하고,
상기 배터리 모듈은 상기 시스템 관리 버스를 통해 상기 복수의 스토리지 세트로부터 상기 전력 드롭을 감지하고, 상기 PCIe 인터페이스를 통해 전력을 공급하는 스토리지 시스템.
According to clause 13,
Further comprising a PCIe interface and a system management bus connecting the backplane and the plurality of storage sets,
The battery module detects the power drop from the plurality of storage sets through the system management bus and supplies power through the PCIe interface.
스토리지 시스템에 의해 수행되는 동작 방법으로서,
상기 스토리지 시스템에 포함된 복수의 스토리지 세트 중 적어도 하나의 스토리지 세트에서 비정상적인 전력 드롭이 감지되는지 모니터링하는 단계;
상기 전력 드롭이 감지될 경우 예비 전력을 공급하는 단계; 및
상기 예비 전력의 공급 이후 상기 적어도 하나의 스토리지 세트에서 임계값 이하의 전력이 감지될 경우 상기 적어도 하나의 스토리지 세트가 데이터 플러싱을 수행하도록 제어하는 단계를 포함하는 동작 방법.
A method of operation performed by a storage system, comprising:
monitoring whether an abnormal power drop is detected in at least one storage set among a plurality of storage sets included in the storage system;
supplying spare power when the power drop is detected; and
An operating method comprising controlling the at least one storage set to perform data flushing when power below a threshold is detected in the at least one storage set after supplying the reserve power.
제18항에 있어서,
상기 복수의 스토리지 세트 별로 워크로드를 검출하는 단계; 및
상기 워크로드에 기초하여 상기 임계값을 상기 복수의 스토리지 별로 설정하는 단계를 더 포함하는 동작 방법.
According to clause 18,
detecting a workload for each of the plurality of storage sets; and
An operating method further comprising setting the threshold for each of the plurality of storages based on the workload.
제19항에 있어서,
상기 워크로드에 기초하여 상기 예비 전력을 상기 복수의 스토리지 별로 설정하는 단계를 더 포함하는 동작 방법.
According to clause 19,
An operating method further comprising setting the reserve power for each of the plurality of storages based on the workload.
KR1020220097524A 2022-05-31 2022-08-04 Storage system including a battery module and operation method therefor KR20230166812A (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US18/135,141 US20230384944A1 (en) 2022-05-31 2023-04-15 Storage system including battery module and method for operating the same
EP23168170.1A EP4286987A1 (en) 2022-05-31 2023-04-17 Storage system including battery module and method for operating the same
CN202310495701.6A CN117148948A (en) 2022-05-31 2023-05-05 Memory system including battery module and method of operating the same

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20220067031 2022-05-31
KR1020220067031 2022-05-31

Publications (1)

Publication Number Publication Date
KR20230166812A true KR20230166812A (en) 2023-12-07

Family

ID=89163778

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220097524A KR20230166812A (en) 2022-05-31 2022-08-04 Storage system including a battery module and operation method therefor

Country Status (1)

Country Link
KR (1) KR20230166812A (en)

Similar Documents

Publication Publication Date Title
US11216323B2 (en) Solid state memory system with low power error correction mechanism and method of operation thereof
US20230010660A1 (en) Non-volatile memory storage for multi-channel memory system
US10521006B2 (en) Report updated threshold level based on parameter
US9612761B2 (en) Semiconductor device
EP3872641B1 (en) Storage device and method of operating the storage device
US8479045B2 (en) Controller for disk array device, data transfer device, and method of power recovery process
KR102114109B1 (en) Data storage device
US10649896B2 (en) Storage device and data processing system including the same
KR102225313B1 (en) Data storage device and operating method thereof
US10672451B2 (en) Storage device and refresh method thereof
US8832355B2 (en) Storage device, storage controlling device, and storage controlling method
US11086561B2 (en) Integrated circuit memory devices with enhanced buffer memory utilization during read and write operations and methods of operating same
KR20180092715A (en) Storage device managing duplicated data based on the number of operations
US10346072B1 (en) Dislocated power loss protection charge storage
US10467020B2 (en) Memory device, and information-processing device
US20190073147A1 (en) Control device, method and non-transitory computer-readable storage medium
KR20230060817A (en) Storage device and method of operating the same
CN113050896A (en) Domestic Feiteng server supporting NVDIMM and data protection method
TWI688864B (en) Storage apparatus and storing method
KR20230166812A (en) Storage system including a battery module and operation method therefor
EP4286987A1 (en) Storage system including battery module and method for operating the same
US20220155973A1 (en) Storage device and operating method thereof
CN117148948A (en) Memory system including battery module and method of operating the same
US20130073792A1 (en) Electronic apparatus using nand flash and memory management method thereof
US20230035137A1 (en) Idle power mode for external storage device