KR102677761B1 - 전력이 공급되는 영구 저장 장치를 통한 호스트 메모리 보호 - Google Patents
전력이 공급되는 영구 저장 장치를 통한 호스트 메모리 보호 Download PDFInfo
- Publication number
- KR102677761B1 KR102677761B1 KR1020170002431A KR20170002431A KR102677761B1 KR 102677761 B1 KR102677761 B1 KR 102677761B1 KR 1020170002431 A KR1020170002431 A KR 1020170002431A KR 20170002431 A KR20170002431 A KR 20170002431A KR 102677761 B1 KR102677761 B1 KR 102677761B1
- Authority
- KR
- South Korea
- Prior art keywords
- storage device
- power
- dram
- spare
- data
- Prior art date
Links
- 230000002085 persistent effect Effects 0.000 title claims abstract description 58
- 230000015654 memory Effects 0.000 title description 17
- 238000000034 method Methods 0.000 claims description 23
- 238000001514 detection method Methods 0.000 claims description 20
- 230000006870 function Effects 0.000 description 12
- 230000002265 prevention Effects 0.000 description 11
- 238000012545 processing Methods 0.000 description 11
- 238000012546 transfer Methods 0.000 description 8
- 238000013459 approach Methods 0.000 description 5
- 230000003863 physical function Effects 0.000 description 5
- 238000011084 recovery Methods 0.000 description 3
- 238000013403 standard screening design Methods 0.000 description 3
- 239000003990 capacitor Substances 0.000 description 2
- 230000001427 coherent effect Effects 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- UFHFLCQGNIYNRP-UHFFFAOYSA-N Hydrogen Chemical compound [H][H] UFHFLCQGNIYNRP-UHFFFAOYSA-N 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 229910052799 carbon Inorganic materials 0.000 description 1
- 239000003518 caustics Substances 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
- 239000000446 fuel Substances 0.000 description 1
- 239000007789 gas Substances 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/263—Arrangements for using multiple switchable power supplies, e.g. battery and AC
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/30—Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0625—Power saving in storage 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/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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/31—Providing disk cache in a specific location of a storage system
- G06F2212/312—In storage controller
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Power Engineering (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
하나의 실시 예에 있어서, 시스템은 DRAM(Dynamic random access memory) 및 전원 공급원 및 영구 저장 장치를 포함하는 저장 장치를 포함한다. 저장 장치는 DRAM에 예비 전력을 제공한다. DRAM에 저장된 데이터는 예비 전원을 이용하여 전력 손실 이벤트시 저장 장치의 영구 저장 장치의 예비 저장 장치에 전송될 수 있다.
Description
본 발명은 데이터를 보존하는 일반적인 컴퓨터 시스템 및 방법에 관한 것으로, 좀 더 자세하게는 전력이 공급되는 영구 저장 장치를 통한 호스트 메모리 보호를 제공하기 위한 시스템 및 방법에 관한 것이다.
데이터 손실 방지는 데이터 처리 시스템에서 필요하고 주요한 목표이다. 그러므로, 대규모의 데이터 센터 관리자들은 그들의 시설이 모든 경제성이 있는 데이터 손실 방지 방안들을 채택하는 것을 보장해야 한다.
최근에, 다양한 데이터 손실 방지 방안들이 알려져 있다. 데이터 손실 방지 방안들의 예들은 배터리 백업 유닛(battery backup unit; BBU) 방법들, 무정전 전원 장치(uninterruptable power supply; UPS) 방법들, 탄소 기반의 연료(carbon-based-fuel, 예를 들면, 디젤) 발생기 방법들, 및 전기 커패시터(electrical capacitor)에 기초한 방법들을 포함한다. 이러한 데이터 손실 방지 방안들 각각은 장점 및 단점을 갖지만, 이러한 방안들은 전력 손실의 경우 차후 복원을 위해 휘발성 메모리(예를 들면, DRAM(Dynamic random access memory))에 저장된 데이터를 영구 저장 장치로 옮기기 위한 데이터 보호 스킴(Data protection scheme)을 보통 제공한다. 그러나, 오늘날 기업 풍토상 극심한 가격 경쟁으로 인하여, 비용 효율이 높은 방식으로 데이터 손실 방지를 달성하기 위한 연구는 계속되고 있다.
NVDIMM(Non-volatile dual in-line memory module)들은 집적된 전원 공급원(integrated power source)을 이용하여 휘발성 DIMM(dual in-line memory module)에 전력을 유지하기 위한 백업 배터리를 이용하는 BBU(battery backup unit) DIMM으로부터 발전되어 왔다. 도 1은 데이터 손실 방지를 제공하기 위한 일반적인 시스템을 보여준다. 시스템(100)은 CPU(Central processing unit), DRAM(102), 및 NVDIMM(103)에 전력을 제공하는 전원 장치(110)를 포함하며, NVDIMM(103)은 전력 장애 감지 및 보호 로직(Power-fail-detection and protection logic, 113), 예비 전원(Power reserve, 123), 및 자체 전력 장애 감지 및 보호 로직(114)을 포함하는 SSD(Solid-state drive, 즉, 저장 장치, 104)를 포함한다. NVDIMM(103)의 예비 전원(123)은 배터리, 슈퍼커패시터(supercapacitor) 등일 수 있고, 일반적으로 전원 장치(110)보다 훨씬 작은 전력 용량을 갖는다.
예기치 못한 전력 손실 또는 시스템 고장, 또는 일반적인 시스템 셧다운(Shutdown) 중 어느 하나로부터 전력이 전원 장치(110)로부터 없어지면, DRAM(102)에 저장된 데이터는 손실될 수 있으나, NVDIMM(103)의 전력 장애 감지 및 보호 로직(113)은 정전을 감지할 수 있고 전력이 회복되거나 데이터가 백업될 때까지 예비 전원(123)으로부터 전력을 공급받아 데이터를 유지할 수 있다. 자체 전력 장애 감지 및 보호 로직(114)을 포함하는 저장 장치(104) 또한 NVDIMM(103)의 전력 장애 감지 및 보호 로직(113)에 의존하지 않고 정전을 감지할 수 있다. NVDIMM(103)은 어플리케이션(Application) 성능, 데이터 보안, 시스템 고장 회복 시간을 향상시킬 수 있고 데이터의 내구성(Endurance) 및 신뢰성(Reliability)을 높일 수 있다.
배터리로 지지되는 장치들(Battery-backed devices)을 포함하는 데이터 보존 스킴(Scheme)은 불휘발성 메모리들이 전부 소진되기 전에 불휘발성 메모리들에 추가 전원 공급원을 단지 제공한다. 게다가, 배터리로 지지되는 장치들은 크거나 무거울 수 있고, 허용되는 서버 용량 또는 바닥 하중(Floor-loading) 무게 제한을 초과할 수 있고, 부식성 물질들을 포함할 수 있고, 그리고 폭발하기 쉬운 수소 가스뿐만 아니라 위험한 가스들을 생성할 수 있다. 이러한 단점들은 배터리로 지지되는 장치들을 신뢰할 수 없게 하고, 사용하기 어렵게 하고, 그리고 잠재적으로 설비, 인원, 및 환경에 해로울 수 있다.
본 발명은 상술한 기술적 과제를 해결하기 위한 것으로, 본 발명은 전력이 공급되는 영구 저장 장치를 통한 호스트 메모리 보호를 제공할 수 있다.
하나의 실시 예에 따라, 시스템은 DRAM(Dynamic random access memory) 및 전원 공급원 및 영구 저장 장치를 포함하는 저장 장치를 포함한다. 저장 장치는 DRAM에 예비 전력을 제공한다. 전력 손실 이벤트 시 예비 전력을 이용하여 DRAM에 저장된 데이터는 저장 장치의 영구 저장 장치의 예비 저장 장치에 전송될 수 있다.
다른 실시 예에 따라, 방법은 전원 공급원 및 영구 저장 장치를 포함하는 저장 장치를 제공하는 단계, 전원 장치의 전원 공급원을 이용하여 예비 전력을 DRAM에 제공하는 단계, 전력 손실 이벤트를 감지하는 단계, 및 전력 손실 이벤트 감지에 따라, 예비 전력을 이용하여 DRAM에 저장된 데이터를 저장 장치의 영구 저장 장치의 예비 저장 장치에 전송하는 단계를 포함한다.
이벤트들의 구현 및 조합의 다양하고 신규한 세부 사항을 포함하는 전술한 것과 다른 한 특징들은 이제 첨부 된 도면을 참조하여 좀 더 자세하게 설명될 것이고 청구 범위에서 언급될 것이다. 본 명세서에서 설명된 특정 시스템들 및 방법들은 단지 예시로서 도시된 것이고 본 발명을 제한하지 않음이 이해될 것이다. 당업자가 이해할 수 있는 바와 같이, 본 명세서에서 설명된 원리들 및 특징들은 본 발명의 범위를 벗어나지 않고 다양하고 많은 실시 예에서 사용될 수 있다.
본 발명의 실시 예에 따른 컴퓨터 시스템은 영리적으로 비용 효율이 높은 방식으로 데이터 손실 방지 및 복원을 달성하기 위한 경쟁력 있는 솔루션을 제공할 수 있다.
본 명세서의 일부로서 포함되는 첨부 도면들은 현재 바람직한 실시 예를 도시하고 아래에 주어진 바람직한 실시 예의 상세한 설명은 아래에 주어진 일반적인 설명과 함께 본 명세서에서 설명된 원리를 설명하고 교시하는 역할을 한다.
도 1은 데이터 손실 방지를 제공하는 일반적인 시스템을 보여준다.
도 2는 본 발명의 실시 예에 따른 영구 저장 장치를 포함하는 예시적인 시스템을 보여준다.
도 3은 본 발명의 실시 예에 따른 전력이 공급되는 예시적인 영구 저장 장치 시스템을 보여준다.
도 4는 본 발명의 다른 실시 예에 따른 전력이 공급되는 예시적인 영구 저장 장치 시스템을 보여준다.
도면들은 반드시 비율에 맞게 그려지는 것은 아니며, 유사한 구조 또는 기능의 요소는 도면 전체에 걸쳐 예시적인 목적으로 유사한 참조 번호로 일반적으로 표시된다. 도면들은 본 명세서에 기재된 다양한 실시 예들의 설명을 용이하게 하기 위한 것이다. 도면들은 본 명세서에 개시된 교시의 모든 측면을 기술하지 않으며 청구 범위를 제한하지 않는다.
도 1은 데이터 손실 방지를 제공하는 일반적인 시스템을 보여준다.
도 2는 본 발명의 실시 예에 따른 영구 저장 장치를 포함하는 예시적인 시스템을 보여준다.
도 3은 본 발명의 실시 예에 따른 전력이 공급되는 예시적인 영구 저장 장치 시스템을 보여준다.
도 4는 본 발명의 다른 실시 예에 따른 전력이 공급되는 예시적인 영구 저장 장치 시스템을 보여준다.
도면들은 반드시 비율에 맞게 그려지는 것은 아니며, 유사한 구조 또는 기능의 요소는 도면 전체에 걸쳐 예시적인 목적으로 유사한 참조 번호로 일반적으로 표시된다. 도면들은 본 명세서에 기재된 다양한 실시 예들의 설명을 용이하게 하기 위한 것이다. 도면들은 본 명세서에 개시된 교시의 모든 측면을 기술하지 않으며 청구 범위를 제한하지 않는다.
본 명세서에 개시된 특징들 및 교시들 각각은 개별적으로 또는 다른 특징 및 가르침과 함께 전력이 공급되는 영구 저장 장치를 통한 호스트 메모리 보호를 제공하는데 이용될 수 있다. 많은 추가의 특징들 및 교시들을, 개별적으로 그리고 조합하여 이용하는 대표적인 예들은 첨부된 도면을 참조하여 더욱 상세히 설명된다. 이 상세한 설명은 본 발명의 측면들을 실시하기 위한 상세한 설명을 당업자에게 단지 교시하기 위한 것이고 청구항의 범위를 제한하려는 것이 아니다. 그러므로, 상세한 설명에서 아래에 개시된 특징들의 조합들은 가장 넓은 의미에서의 교시를 수행하는데 필수적이지 않을 수 있으며, 대신에 단지 본 발명의 교시의 대표적인 예를 특별하게 설명하기 위해 교시된다.
이하의 설명에서, 단지 설명의 목적으로, 특정 명칭이 본 발명의 완전한 이해를 제공하기 위해 제시된다. 그러나, 당업자에게 이러한 상세한 사항이 본 발명의 교시를 실시하는 데 요구되지 않는다는 것은 명백할 것이다.
본 명세서의 상세한 설명의 일부분은 컴퓨터 메모리 내의 데이터 비트에 대한 연산의 알고리즘 및 심볼 표현에 관하여 제공된다. 이러한 알고리즘 설명 및 표현은 데이터 처리 기술 분야의 당업자가 그들의 작업 내용을 당업자에게 효과적으로 전달하기 위해 사용된다. 여기서 알고리즘은 일반적으로 원하는 결과를 이끄는 단계들의 일관성 있는 순서로 생각된다. 이 단계들은 물리적인 양을 물리적으로 조작하는 것이 필요한 단계들이다. 일반적으로, 반드시 그런 것은 아니지만, 이러한 양은 저장, 전송, 결합, 비교 및 기타 조작이 가능한 전기의 또는 자기의 신호들 형태를 취합니다. 주로 일반적인 사용의 이유로, 이러한 신호들을 비트, 값, 요소, 기호, 문자, 용어, 숫자 등으로 참조하는 것이 때때로 편리하다는 것이 입증되었다.
그러나, 이러한 모든 용어 및 유사한 용어는 적절한 물리적 양과 관련되어야 하고 단지 이러한 양에 적용되는 편리한 라벨들일 뿐이라는 것을 염두에 두어야 한다. 이하의 설명으로부터 명백하여 특별히 언급하지 않는 한, 설명을 통하여, "처리", "컴퓨팅", "계산", "결정", "디스플레이" 등과 같은 용어를 사용하는 논의는 컴퓨터 시스템, 또는 컴퓨터 시스템의 레지스터 및 메모리 내 물리적(전자) 양으로서 나타나는 데이터를 컴퓨터 시스템의 메모리 또는 레지스터 또는 이러한 다른 정보 저장 장치, 전송 또는 디스플레이 장치들 내 물리적 양으로서 유사하게 나타나는 다른 데이터로 처리하고 변형하는 유사한 컴퓨팅 장치의 행동 및 처리를 나타내는 것으로 이해된다.
본 명세서에 제시된 알고리즘은 본질적으로 임의의 특정한 컴퓨터 또는 다른 장치와 관련되지 않는다. 다양한 범용 시스템, 컴퓨터 서버 또는 개인용 컴퓨터는 본 명세서의 교시에 따라 프로그램과 함께 사용될 수 있거나, 그것은 필요한 방법 단계들을 수행하기 위해 보다 전문화된 장치를 구성하는 것이 편리할 수 있다. 이러한 다양한 시스템에 필요한 구조는 아래에서 설명될 것이다. 본 명세서에서 설명되는 바와 같이 본 발명의 교시를 구현하기 위해 다양한 프로그래밍 언어들이 사용될 수 있다는 것이 이해될 것이다.
게다가, 대표 실시 예 및 종속항들의 다양한 특징들은 본 발명의 교시의 추가적인 유용한 실시 예들을 제공하기 위해 구체적으로 그리고 명시적으로 열거되지 않은 방식으로 결합될 수 있다. 또한, 개체들 그룹의 모든 값 범위 또는 표시는 본 발명의 개시 목적뿐만 아니라 청구범위를 제한하기 위한 목적을 위한 모든 가능한 중간 값 또는 중간 개체를 개시하는 것을 명시적으로 언급한다. 또한, 도면에 도시 된 구성 요소의 치수 및 형상은 본 발명의 교시가 어떻게 실시되는지 이해하도록 돕기 위해 설계된 것으로서, 실시 예에서 도시 된 치수 및 형상으로 본 발명을 제한하려는 의도는 아니라는 것을 명시적으로 언급한다.
본 발명은 데이터 손실 방지를 제공하는 컴퓨터 시스템 및 방법을 설명한다. 본 발명의 컴퓨터 시스템은 비용 효율이 높은 방식으로 데이터 손실 방지 및 복원을 달성하기 위한 영리적으로 경쟁력 있는 솔루션을 제공한다.
도 2는 본 발명의 실시 예에 따른 영구 저장 장치를 포함하는 예시적인 시스템을 보여준다. 시스템(200)은 CPU(201), DRAM(212), 및 영구 저장 장치(204)에 전력을 제공하는 전원 장치(210)를 포함한다. DRAM(212)은 전력 장애 감지 및 보호 로직(222)를 포함하는 인터포저(Interposer, 202)에 연결될 수 있다. 인터포저(202)는 표준 DRAM 소켓(예를 들면, DIMM 소켓) 및 표준 DIMM(예를 들면, DRAM(212)) 사이에 배치될 수 있다. 인터포저(202)는 DRAM(212)을 달리 직접적으로 수용하는 시스템의 마더보드(motherboard, 미도시)의 메모리 슬롯과 호환되는 DRAM(212)의 핀 배치(pinout)에 대응하는 핀 배치 배열을 포함할 수 있다.
영구 저장 장치(204)는 저장 장치 또는 불휘발성 저장 장치로 알맞게 언급될 수 있다. 저장 장치(204)의 예들은 플래시 드라이브들(flash drives), SATA(serial advanced technology attachment) 드라이버들, PATA(parallel ATA) 드라이버들, SAS(serial attached small computer serial interface) 드라이버들, 파이버 채널 저장 드라이버들(fibre channel storage drives) 및 이와 비슷한 드라이버들을 포함하나, 본 발명은 이에 제한되지는 않는다. 저장 장치(204)는 본 명세서에서는 예비 전원(power reserve, 214)으로 언급되는 장치-레벨의 예비 전원(device-level electrical power reserve) 및 자체 전력 장애 감지 및 보호 로직(224)를 포함할 수 있다. 저장 장치(204)의 예비 전원(214)은 전력 장애 시 휘발성 메모리인 DRAM(212)에서 영구 저장 장치로 데이터를 전송하기 위해 필요한 전력을 공급할 수 있다. 인터포저(202)의 전력 장애 감지 및 보호 로직(222) 및 저장 장치(204)의 전력 장애 감지 및 보호 로직(224)은 전용의 전력 장애 데이터 경로를 통해 서로 통신할 수 있다.
시스템 전력 장애가 발생할 경우, (즉, 시스템 전력 장애 이벤트(Event)에서,) DRAM(212)에 저장된 데이터를 보호하기 위해, DRAM(212)이 전력을 손실하기 전에 DRAM(212)에 저장된 활성 데이터는 영구 저장 장치에 저장되어야 한다. 저장 장치(204)는 저장 장치(204) 및 DRAM(212) 사이에 백업 전력 경로(251) 및/또는 직접적인 전력 장애 데이터 경로(Direct power-failure data path, 252)를 제공할 수 있다. 저장 장치(204)의 예비 전원(214)은 DRAM(212)에 저장된 데이터를 안전하게 저장 장치(204)로 전송하는 것을 가능하게 하기 위해 어떠한 시스템 레벨의 여분의 전원 장치가 전무한 경우에도 DRAM(212)에 전력을 제공할 수 있다.
도 3은 본 발명의 실시 예에 따른 전력이 공급되는 예시적인 영구 저장 장치 시스템을 보여준다. 호스트 컴퓨터의 어플리케이션 프로그램(Application program, 371)은 파일 시스템(File system, 321)으로부터 데이터를 읽거나 그리고 파일 시스템(321)에 데이터를 쓰기 위해 읽기 및 쓰기 명령들을 생성할 수 있다. 어플리케이션 프로그램(371)은 호스트 컴퓨터의 운영 체제(operating system)에도 접근할 수 있다. 운영 체제는 저장 장치(304)를 위한 표준 장치 드라이버(323)와 같은 블록 장치들로의 인터페이스를 제공하기 위해 블록 계층(block layer, 322)을 포함할 수 있다. 몇몇의 실시 예들에서, 블록 계층(322)의 기능은 파일 시스템(321)에 포함될 수 있다. 어플리케이션 프로그램(371)에서 파일 시스템(321)으로 유도되는 읽기 및 쓰기 명령들은 표준 장치 드라이버(323)로 전달될 수 있고, 그리고 표준 장치 드라이버(323)는 장치 레벨의 입출력(I/O) 명령들을 만들 수 있고 그리고 표준 입출력 경로(362)를 통해 입출력 명령들을 저장 장치(304)로 보낼 수 있다. 표준 입출력 경로(362)는 로컬 입출력 버스(Local I/O bus, 예를 들면, PCIe 버스(360)) 또는 네트워크(미도시)를 걸쳐 형성될 수 있다. 예비 DRAM(DRAM reserve, 372)은 연결된 DRAM(312)에 쓰여지는 데이터를 임시로 저장할 수 있다.
하나의 실시 예에 따라, 저장 장치(304)는 하나 또는 그 이상의 전력 손실 신호들을 모니터링(Monitoring)하여 시스템의 전력 손실을 감지할 수 있다. 예를 들면, 저장 장치(304)는 시스템 레벨 또는 섀시(Chassis) 레벨의 인터페이스를 통해 전력 손실 신호(351)를 수신할 수 있다. DRAM(312)이 탑재된 인터포저(302)는 집적된 전력 장애 감지 로직(미도시)을 포함할 수 있고, 그리고 전용 경로를 통해 저장 장치(304)에 전력 손실 신호(352)를 제공할 수 있다. 저장 장치(304)는 단독으로 또는 다른 신호들과 결합하여, 전력 손실 신호(351 및/또는 352)를 분석하여 상세한 전력 상태 및 전력 손실의 심각도를 감지할 수 있다.
전력 손실 신호(예를 들면, 351 및/또는 352)에 응답하여, 저장 장치(304)는 예비 전력 인터페이스(reserve power interface, 353)를 통해 예비 전원(314)으로부터 DRAM(312)에 예비 전력(reserve power)을 공급할 수 있다. 예비 전원(314)의 예들은 집적된 배터리 또는 슈퍼커패시터를 포함하나, 이에 제한되지는 않는다. 예비 전력 인터페이스(353)는 DRAM(321)과 직접적으로 연결되거나, 인터포저(302)를 통해 DRAM(321)과 연결된다. 인터포저(302)는 DRAM(321)을 저장 장치(304)의 예비 전원(314)에 연결하기 위한 예비 전력 인터페이스(353)에 대한 전용 핀을 포함할 수 있다.
다른 실시 예에 따라, 저장 장치(304)의 예비 전원은 예비 전력 인터페이스(354)를 통해 시스템 전원 인프라(System power infrastructure, 324)에 연결될 수 있다. 이 경우, 저장 장치(304) 및 DRAM(312) 사이의 전력이 공급되는 영구 저장 장치 시스템의 본래 데이터 경로는 예비 전력 인터페이스(354)에 의해 작동될 수 있다(즉, 영구 저장 장치 시스템의 본래 데이터 경로는 예비 전력 인터페이스(354)에 의해 전력을 공급받을 수 있다). 본래 데이터 경로는 입출력 버스(예를 들면, PCIe 버스(360)), 프로세서 상의 일관된 메모리 연결들(on-processor coherent memory interconnects), DRAM 데이터 핀들 등을 포함할 수 있다. 예비 전원(314)에 의해 전력을 공급받는 시스템 전원 인프라(324)는 전력 손실 또는 전원 전이(transition) 이벤트의 경우에 영구 데이터 전송의 결과를 가져오기 위해서 DRAM(312) 및 메모리 컨트롤러와 같은 다른 시스템 구성 요소들에 전력을 공급할 수 있다. 직접적인 예비 전력 인터페이스(353) 또는 시스템 전원 인프라(324) 중 어느 하나를 통해, 저장 장치(304)의 예비 전원(314)은 DRAM(312)에 전력을 공급할 수 있고, DRAM(312)에 저장된 데이터는 안전하게 저장 장치(304)의 영구 저장 장치(331)로 전송될 수 있다.
하나의 실시 예에 따라, DRAM(312) 또는 인터포저(302)는 DRAM(312)에 저장된 데이터를 영구 저장 장치(331)로 전송하기 위해 영구 저장 장치(331)로의 전용 데이터 경로(363)를 만들 수 있다. 영구 저장 장치(331)는 DRAM(312)에서 전송된 데이터를 저장하기 위한 본 명세서에서 DRAM 플러시 예비 저장 장치(DRAM flush reserved storage, 332)로 언급되는 예비 저장 공간(예비 저장 장치)을 포함할 수 있다. DRAM(312) 및 저장 장치(304) 사이의 일반 데이터 경로가 작동되지 않는 경우(즉, DRAM(312) 및 저장 장치(304) 사이의 일반 데이터 경로에 전력이 공급되지 않는 경우), 전용 데이터 경로(363)는 DRAM(312)에서 영구 저장 장치(331)로 데이터를 전송하기 위해 사용될 수 있다. 영구 저장 장치(331)는 DRAM 플러시 예비 저장 장치(332)에 전송된 데이터와 전송된 데이터의 위치 정보와 함께 저장할 수 있다.
도 4는 본 발명의 다른 실시 예에 따른 전력이 공급되는 예시적인 영구 저장 장치 시스템을 보여준다. 도 4에서 도시된 전력이 공급되는 영구 저장 장치 시스템은 영구 저장 장치(331)에 데이터를 쓰기 위한 쓰기 데이터 경로를 제외하고 실질적으로 도 3에서 도시된 시스템과 동일하거나 유사한 요소들 및/또는 구성들을 포함할 수 있다. 따라서, 반복되는 요소들, 인터페이스들, 및/또는 경로들의 상세한 설명은 생략될 것이다.
DRAM(312)에 저장된 데이터는 특정한 물리적 데이터 경로를 이용하여 DRAM(312)에서 영구 저장 장치(331)로 전송될 수 있다. 호스트 컴퓨터의 운영 체제는 DRAM 쓰기 플러시 드라이버(DRAM write flush driver, 325)와 접속할 수 있고, DRAM 쓰기 플러시 드라이버(325)를 저장 장치(304)로 연결하기 위한 DRAM 플러시 입출력 경로(361)를 만들 수 있다. 운영 체제는 예비 DRAM(372)에 DRAM 업데이트 활동들(DRAM update activities)을 복사할 수 있다. DRAM 쓰기 플러시 드라이버(325)는 예비 DRAM(372)으로의 호스트 운영 체제의 DRAM 업데이트 활동들을 모니터링하여 DRAM(312)에 쓰여지는 데이터의 위치를 수신할 수 있다. DRAM 플러시 입출력 경로(361)를 통해, DRAM 쓰기 플러시 드라이버(325)는 저장 장치(304)의 장치 컨트롤러(333)의 특정한 기능(Special function, 335)과 통신할 수 있고 영구 저장 장치(331)로 업데이트된 DRAM 데이터를 복사할 수 있다.
하나의 실시 예에 따라, 저장 장치(304)는 NVMe(non-volatile memory express) 장치이다. 동시에 시스템은 영구 데이터 저장 장치뿐만 아니라 표준 저장 장치로서 NVMe 장치를 사용할 수 있다. 전력 손실 또는 전원 전이의 이벤트시 발생할 수 있는 DRAM 데이터의 전송은 쓰기 요청에서 다른 태그를 이용하는 표준 DRAM 쓰기 동작과 구별될 수 있다. 쓰기-요청 태깅(Tagging)은 다양한 접근 방식들을 가질 수 있다.
첫 번째 접근 방식은 저장 장치(304)가 다중-스트림(Multi-steam) 입출력 동작들을 지원하면 DRAM 데이터를 식별하기 위해 고유의 다중-스트림 ID를 이용할 수 있다. 두 번째 접근 방식(도 4에서 도시)은 DRAM 쓰기 플러시 드라이버(325)가 표준 입출력 요청들을 위해 사용되는 표준 물리적 기능(Standard physical function, 334)과 구별되는 특정한 물리적 기능(335)에 데이터를 쓰게 한다. 세 번째 접근 방식은 DRAM 쓰기 플러시 드라이버(325)가 일반적인 입출력 요청들을 위해 사용되는 다른 로직, 가상 또는 물리적 기능들과 구별되는 특정한 로직 또는 가상 기능에 데이터를 쓰게 한다.
저장 장치(304)가 DRAM 쓰기 태그된 쓰기 요청을 수신하면, 저장 장치(304)는 DRAM 쓰기 태그된 쓰기 데이터를 특정한 예비 영역(즉, DRAM 플러시 예비 저장 장치(332))에 저장한다. DRAM 플러시 예비 저장 장치(332)는 최대 전송 성능을 위한 다중 병렬 접근 동작들을 이용하여 선택적으로 접근될 수 있다. 최소의 레이턴시(Latency)를 위해, DRAM 플러시 예비 저장 장치(332)는 SSD NAND 플래시 가비지 컬렉션(Garbage collection)과 같은 동작들의 과도한 지연 없이 모든 데이터를 즉시 쓰기 위해 항상 준비한다.
하나의 실시 예에 따라, 저장 장치(304)는 일반적인 어플리케이션 쓰기 요청들 및 DRAM 쓰기 플러시 드라이버(325)로부터의 입출력 요청들 모두를 동시에 다룰 수 있다. 이러한 접근 방식은 많은 비용이 들 수 있는 일반적인 NVDIMM 영구 저장 용량을 비싸지 않고, 상업적으로 이용 가능하고, 그리고 상용 영구 저장 장치(304)로 대체할 수 있다.
도 4를 참조하면, DRAM 쓰기 플러시 드라이버(325)가 시스템 레벨 또는 섀시 레벨의 인터페이스를 통해 전력 손실이 임박한 것을 나타내는 전력 손실 신호(351)를 수신하면, DRAM 쓰기 플러시 드라이버(325)는 저장 장치(304)에 전력 손실이 임박한 것을 표시할 수 있다. DRAM 쓰기 플러시 드라이버(325)에 의한 저장 장치(304)로의 전력 손실 신호 표시는 선택적일 수 있다. 그 대신에, 저장 장치(304)는 DRAM(312)으로부터 전력 손실 신호(352)를 수신할 수 있거나, 저장 장치(304)는 집적된 전력 장애 감지 로직을 포함할 수 있다.
하나의 실시 예에 따라, 전력 손실 신호(351)는 추가적인 일반 입출력 요청들을 저장 장치(304)의 표준 물리적 기능(334)에 제출하는 것 그리고 모든 계류중인 호스트 요청들을 영구 저장 장치(331)에 수행하는 것으로부터 호스트 컴퓨터를 중단하기 위해 호스트 인터페이스를 개입 중단시킴으로써, DRAM 쓰기 플러시 드라이버(325)로부터의 갑작스러운 요청에 대해 저장 장치(304)가 좀 더 빠르게 응답하게 하는 것을 가능하게 할 수 있다. DRAM 쓰기 플러시 드라이버(325)는 영구 저장 장치(331)로의 DRAM 데이터를 보존하기 위해 쓰기 요청들을 저장 장치(304)에 제시할 수 있다. DRAM 쓰기 플러시 드라이버(325)에 의한 쓰기 요청들은 표준 장치 드라이버(323)에 의해 생성된 일반 쓰기 요청들로부터 구별하기 위해 다르게 태그될 수 있다. 데이터 보호 동작이 완료되면, 저장 장치(304)는 긴급 DRAM 쓰기 보호 동작이 발생하였고 완료되었다는 표시자(Indicator), 예를 들면, 긴급 보호 플래그를 호스트 컴퓨터 및/또는 DRAM 쓰기 플러시 드라이버(325)로 제공할 수 있다. 이 때, DRAM(312)의 영구 저장은 완료되고 저장 장치(304)는 DRAM(312) 및/또는 호스트 시스템 전원 인프라(324)에 전력 제공을 중단할 수 있다.
시스템의 주 전원 장치가 회복된 후 호스트 컴퓨터가 재시동(Restart)시에는, DRAM 쓰기 플러시 드라이버(325)가 특정한 물리적 기능(335)을 이용하여 동작들이 정상적으로 종료되었는지를 결정하기 위해 저장 장치(304)에 조회한다. 정상적으로 종료된 경우, DRAM 쓰기 플러시 드라이버(325)는 일반적인 동작들을 시작할 수 있다. 그렇지 않으면, DRAM 쓰기 플러시 드라이버(325)는 복수의 시스템 DRAM 데이터를 재배치(Reload)하기 위해 저장 장치(304)와 조정한다. 회복 동작이 끝나면, 저장 장치(304)는 자동적으로 긴급 보호 플래그를 리셋(Reset)할 수 있다. 그렇지 않으면, DRAM 쓰기 플러시 드라이버(325)는 저장 장치(304)가 긴급 보호 플래그를 리셋하게끔 명령을 발행할 수 있다. 호스트 컴퓨터도 또한 플래그를 리셋하기 위해 이 명령을 사용할 수 있다. 비록 도 3 및 도 4를 참조하여 설명된 실시 예들은 영구 저장 장치(331)를 포함하는 하나의 저장 장치(304)를 보여주지만, DRAM 데이터는 복수의 저장 장치에 지속적으로 저장될 수 있고, 복수의 서버는 복수의 저장 장치를 공유할 수 있다.
하나의 실시 예에 있어서, 본 발명의 영구 저장 장치는 하나 또는 그 이상의 PCIe 방식의 SSD(PCIe-attached SSD)일 수 있다. 다른 실시 예에 있어서, 영구 저장 장치는 호스트 운영 체제에 PCIe 기능을 드러내는 하나 또는 그 이상의 SAS SSD 또는 SATA SSD일 수 있다. 본 발명의 영구 저장 장치가 단지 하나의 PCIe 기능을 드러내는 PCIe NVMe SSD인 경우, 본 발명의 영구 저장 장치는 DRAM 쓰기 플러시 드라이버(325)로부터 수신되는 쓰기 요청들을 나타내기 위해 커맨드 내 태그를 지원할 수 있다.
몇몇의 실시 예들에 따라, 본 발명의 영구 저장 장치는 배터리 또는 커패시터로 지지되는 저장 장치를 갖는 RAID 컨트롤러(RAID controller)일 수 있다. 본 발명의 영구 저장 장치는 전원 공급원과 결합하거나 함께 사용되는 임의의 종류들의 영구하고 불휘발성인 메모리들을 포함할 수 있다.
하나의 실시 예에 따라, 본 발명의 저장 장치는 핫 파워 제거 보호(Hot power removal protection)를 제공할 수 있다. 이더넷(Ethernet)을 통해 부착된 SSD와 같은 집적 저장 장치(Integrated storage device)는 집적 프로세서(Integrated processor)를 포함할 수 있고 실장 소켓(Mounting socket) 또는 이더넷 연결로부터 주 전력을 수신할 수 있다. 이러한 경우, 집적 저장 장치는 집적 프로세서상에서 서비스 어플리케이션을 실행할 수 있고, 그리고 갑작스런 전력 손실 이벤트로부터, 예를 들면, 저장 장치의 구역 내(enclosure)로부터의 저장 장치의 핫 제거(Hot removal) 동작에서 회복할 수 있다. 핫 제거 동작으로부터 회복하기 위해, 집적 저장 장치는 SSD의 DRAM 데이터를 영구 저장 장치로 플러시하는데 전력을 공급하는 예비 전원을 사용할 수 있다. 동일한 예비 전원은 프로세서의 DRAM을 영구 저장 장치로 플러시하는데 사용될 수 있다. 집적 저장 장치는 일반적인 영구 저장 장치들의 DRAM으로 및 DRAM으로부터의 케이블들(Cables), 테더들(Tethers), 또는 구성 요소들을 필요로 하는 문제들을 경감할 수 있다.
하나의 실시 예에 있어서, 시스템은 DRAM(Dynamic random access memory) 및 전원 공급원 및 영구 저장 장치를 포함하는 저장 장치를 포함한다. 저장 장치는 DRAM에 예비 전력을 제공한다. DRAM에 저장된 데이터는 예비 전원을 이용하여 전력 손실 이벤트시 저장 장치의 영구 저장 장치내의 예비 저장 장치에 전송될 수 있다.
저장 장치의 전원 공급원은 저장 장치에 집적된 배터리 또는 슈퍼커패시터일 수 있다.
DRAM은 인터포저에 연결될 수 있고, 인터포저는 DRAM에 저장된 데이터를 예비 저장 장치에 전송하기 위한 전용 데이터 경로를 제공할 수 있다.
시스템은 전력 손실 이벤트를 나타내는 전력 손실 신호를 저장 장치로 제공하는 전력 장애 감지 로직을 포함할 수 있다.
DRAM은 전력 손실 감지 로직을 포함하는 인터포저에 연결될 수 있고, 인터포저는 전원 장치로 전력 손실 신호를 제공할 수 있다.
저장 장치는 시스템 레벨 또는 섀시(Chassis) 레벨의 인터페이스를 통해 전력 손실 신호를 수신할 수 있다.
DRAM은 인터포저에 연결될 수 있고, 저장 장치의 전원 공급원은 DRAM에 전력을 공급하는 전용 전력 경로를 통해 인터포저에 연결될 수 있다.
저장 장치의 전원 공급원은 DRAM에 전력을 제공하는 시스템 전원 인프라와 연결될 수 있다.
저장 장치는 표준 입출력 동작을 처리하기 위한 표준 입출력 경로를 통해 표준 입출력 동작을 처리하기 위한 표준 기능 및 DRAM 플러시 입출력 경로를 통해 DRAM 플러시 입출력 동작을 처리하는 특정한 기능을 더 포함할 수 있다.
시스템은 DRAM에 저장된 데이터를 장치 컨트롤러의 특정한 기능을 이용하여 DRAM 플러시 입출력 경로를 통해 예비 저장 장치에 전송하기 위한 DRAM 쓰기 플러시 드라이버를 더 포함할 수 있다.
DRAM 쓰기 플러시 드라이버는 PCIe 버스를 통해 장치 컨트롤러의 특정한 기능과 통신할 수 있다.
시스템은 DRAM에 쓰여진 중복 데이터를 저장하기 위해 예비 DRAM을 더 포함할 수 있다. DRAM 쓰기 플러시 드라이버는 예비 DRAM에서 예비 저장 장치로 데이터를 전송할 수 있다.
다른 실시 예에 따른 방법은, 전원 공급원 및 영구 저장 장치를 포함하는 저장 장치를 제공하는 단계, 저장 장치의 전원 공급원을 이용하여 DRAM에 예비 전력을 제공하는 단계, 전력 손실 이벤트를 감지하는 단계, 및 전력 손실 이벤트 감지함에 따라 예비 전원을 이용하여 DRAM에 저장된 데이터를 저장 장치의 영구 저장 장치의 예비 저장 장치에 전송하는 단계를 포함한다.
저장 장치의 전원 공급원은 저장 장치에 집적된 배터리 또는 슈퍼커패시터일 수 있다.
DRAM은 인터포저에 연결될 수 있다. 방법은 DRAM에 저장된 데이터를 예비 저장 장치로 전송하기 위한 인터포저로부터 전용 데이터 경로를 제공하는 단계를 더 포함할 수 있다.
방법은 전력 손실 이벤트를 나타내는 전력 손실 신호를 저장 장치에 제공하는 단계를 더 포함할 수 있다.
DRAM은 저장 장치에 전력 손실 신호를 제공하는 인터포저에 연결될 수 있다.
저장 장치는 시스템 레벨 또는 섀시 레벨의 인터페이스를 통해 전력 손실 신호를 수신할 수 있다.
DRAM은 인터포저에 연결될 수 있고, 저장 장치의 전원 공급원은 DRAM으로 전력을 공급하는 전용 전력 경로를 통해 인터포저와 연결될 수 있다.
전원 장치의 전원 공급원은 DRAM에 전력을 공급하는 시스템 파워 인프라와 연결될 수 있다.
저장 장치는 표준 입출력 경로를 통해 표준 입출력 동작을 처리하기 위한 표준 기능 및 DRAM 플러시 입출력 경로를 통해 DRAM 플러시 입출력 동작을 처리하기 위한 특정한 기능을 포함하는 장치 컨트롤러를 더 포함할 수 있다.
방법은 DRAM 쓰기 플러시 드라이버를 제공하는 단계 및 DRAM 쓰기 플러시 드라이버 및 장치 컨트롤러의 특정한 기능 사이에 DRAM 플러시 입출력 경로를 통해 DRAM에 저장된 데이터를 예비 저장 장치로 전송하는 단계를 더 포함한다.
DRAM 쓰기 플러시 드라이버는 PCIe 버스를 통해 장치 컨트롤러의 특정한 기능과 통신한다.
방법은 DRAM에 쓰여진 중복 데이터를 저장하기 위한 예비 DRAM을 제공하는 단계 및 DRAM 쓰기 플러시 드라이버를 이용하여 예비 DRAM에서 예비 저장 장치로 데이터를 전송하는 단계를 더 포함한다.
전술한 예시적인 실시 예들은 전력이 공급되는 영구 저장 장치를 통한 호스트 메모리 보호를 제공하기 위한 시스템 및 방법을 구현하는 다양한 실시 예를 설명하기 위해 본 명세서에서 설명되었다. 개시된 예시적인 실시 예들로부터의 다양한 변형 및 이탈이 당업자에게 발생할 것이다. 본 발명의 범위 내에 속하는 주제는 다음의 청구 범위에서 설명된다.
200: 시스템
201: CPU
202: 인터포저
212: DRAM
222: 전력 장애 감지 및 보호 로직
204: 저장 장치
214: 예비 전원
224: 자체 전력 장애 감지 및 보호 로직
201: CPU
202: 인터포저
212: DRAM
222: 전력 장애 감지 및 보호 로직
204: 저장 장치
214: 예비 전원
224: 자체 전력 장애 감지 및 보호 로직
Claims (10)
- 인터포저(Interposer)에 연결된 DRAM(Dynamic random access memory); 및
전원 공급원 및 영구 저장 장치를 포함하는 저장 장치를 포함하되,
상기 저장 장치의 상기 전원 공급원은 전용 전력 경로를 통해 상기 저장 장치 외부에 배치된 상기 DRAM에 예비 전력을 제공하고, 그리고
전력 손실 이벤트 시, 상기 DRAM에 저장된 데이터는 상기 예비 전력을 이용하여 상기 저장 장치의 상기 영구 저장 장치의 예비 저장 장치에 전송되는 시스템. - 제 1 항에 있어서,
상기 인터포저는 상기 DRAM에 저장된 상기 데이터를 상기 예비 저장 장치에 전송하기 위한 전용 데이터 경로를 제공하는 시스템. - 제 1 항에 있어서,
상기 전력 손실 이벤트를 나타내는 전력 손실 신호를 상기 저장 장치로 제공하는 전력 장애 감지 로직을 더 포함하는 시스템. - 제 3 항에 있어서,
상기 DRAM은 상기 전력 장애 감지 로직을 포함하는 인터포저에 연결되고, 인터포저는 상기 저장 장치로 상기 전력 손실 신호를 제공하는 시스템. - 제 3 항에 있어서,
상기 저장 장치는 시스템 레벨 또는 섀시(Chassis) 레벨 인터페이스를 통해 상기 전력 손실 신호를 수신하는 시스템. - 제 1 항에 있어서,
상기 저장 장치의 상기 전원 공급원은 DRAM에 전력을 공급하는 전용 전력 경로를 통해 상기 인터포저에 연결되는 시스템. - 제 1 항에 있어서,
상기 저장 장치의 상기 전원 공급원은 상기 DRAM에 전력을 공급하는 시스템 파워 인프라(System power infrastructure)와 연결되는 시스템. - 전원 공급원 및 영구 저장 장치를 포함하는 저장 장치를 제공하는 단계;
상기 저장 장치의 상기 전원 공급원을 이용하여 전용 전력 경로를 통해 상기 저장 장치 외부의 인터포저(Interposer)에 연결된 DRAM에 예비 전력을 제공하는 단계;
전력 손실 이벤트를 감지하는 단계; 및
상기 전력 손실 이벤트를 감지함에 따라, 상기 예비 전력을 이용하여 상기 DRAM에 저장된 데이터를 상기 저장 장치의 상기 영구 저장 장치의 예비 저장 장치에 전송하는 단계를 포함하는 방법. - 제 8 항에 있어서,
상기 인터포저에서 상기 DRAM에 저장된 상기 데이터를 상기 예비 저장 장치에 전송하기 위한 전용 데이터 경로를 제공하는 단계를 더 포함하는 방법. - 제 8 항에 있어서,
상기 전력 손실 이벤트를 나타내는 전력 손실 신호를 상기 저장 장치로 제공하는 단계를 더 포함하는 방법.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662331322P | 2016-05-03 | 2016-05-03 | |
US62/331,322 | 2016-05-03 | ||
US15/191,132 | 2016-06-23 | ||
US15/191,132 US10401935B2 (en) | 2016-05-03 | 2016-06-23 | Storage device with a power source and persistent store that provides backup power to DRAM in a power loss event |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20170124952A KR20170124952A (ko) | 2017-11-13 |
KR102677761B1 true KR102677761B1 (ko) | 2024-06-24 |
Family
ID=60243947
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170002431A KR102677761B1 (ko) | 2016-05-03 | 2017-01-06 | 전력이 공급되는 영구 저장 장치를 통한 호스트 메모리 보호 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10401935B2 (ko) |
KR (1) | KR102677761B1 (ko) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10678475B2 (en) * | 2017-07-27 | 2020-06-09 | Hewlett Packard Enterprise Development Lp | Tracking write requests to media controllers |
US10635553B2 (en) * | 2017-10-20 | 2020-04-28 | Microsoft Technology Licensing, Llc | Error recovery in non-volatile storage partitions |
US11403159B2 (en) * | 2018-01-31 | 2022-08-02 | Hewlett Packard Enterprise Development Lp | Device carrier assemblies |
US10839862B2 (en) * | 2018-04-25 | 2020-11-17 | Micron Technology, Inc. | Cross point array memory in a non-volatile dual in-line memory module |
JP2022165536A (ja) | 2021-04-20 | 2022-11-01 | キオクシア株式会社 | メモリシステム |
US11449267B1 (en) * | 2021-04-28 | 2022-09-20 | Micron Technology, Inc. | Determination of durations of memory device temperatures |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005071068A (ja) * | 2003-08-25 | 2005-03-17 | Renesas Technology Corp | 記憶装置 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4813072A (en) | 1985-09-13 | 1989-03-14 | Telenorma Telefonbau Und Normalzeit Gmbh | Switching device for power supply to additional accessories for a telephone |
US5185705A (en) | 1988-03-31 | 1993-02-09 | Square D Company | Circuit breaker having serial data communications |
WO1990003611A2 (en) | 1988-09-23 | 1990-04-05 | Henry Jamieson Riddoch | Computer memory backup system |
US4894792A (en) | 1988-09-30 | 1990-01-16 | Tandy Corporation | Portable computer with removable and replaceable add-on modules |
US6785786B1 (en) | 1997-08-29 | 2004-08-31 | Hewlett Packard Development Company, L.P. | Data backup and recovery systems |
EP0964360B1 (en) | 1998-06-08 | 2003-08-27 | International Business Machines Corporation | Automatic data recovery of integrated circuit cards |
US6801994B2 (en) | 2000-12-20 | 2004-10-05 | Microsoft Corporation | Software management systems and methods for automotive computing devices |
US6836657B2 (en) | 2002-11-12 | 2004-12-28 | Innopath Software, Inc. | Upgrading of electronic files including automatic recovery from failures and errors occurring during the upgrade |
US8106520B2 (en) * | 2008-09-11 | 2012-01-31 | Micron Technology, Inc. | Signal delivery in stacked device |
US8627123B2 (en) * | 2010-03-25 | 2014-01-07 | Microsoft Corporation | Managing power provisioning in distributed computing |
US9047178B2 (en) | 2010-12-13 | 2015-06-02 | SanDisk Technologies, Inc. | Auto-commit memory synchronization |
US20140201434A1 (en) | 2013-01-15 | 2014-07-17 | Hewlett-Packard Development Company, L.P. | Managing Volatile File Copies |
US9535828B1 (en) * | 2013-04-29 | 2017-01-03 | Amazon Technologies, Inc. | Leveraging non-volatile memory for persisting data |
KR102156284B1 (ko) | 2013-11-27 | 2020-09-15 | 에스케이하이닉스 주식회사 | 메모리 및 이를 포함하는 메모리 모듈 |
US9372759B2 (en) * | 2014-06-16 | 2016-06-21 | Samsung Electronics Co., Ltd. | Computing system with adaptive back-up mechanism and method of operation thereof |
US20160283145A1 (en) * | 2015-03-24 | 2016-09-29 | Lenovo (Beijing) Co., Ltd. | Electronic Device, Power Failure Protection Method and Data Recovery Method |
US20160283111A1 (en) * | 2015-03-26 | 2016-09-29 | Intel Corporation | Read operations in memory devices |
US10078448B2 (en) * | 2015-07-08 | 2018-09-18 | Samsung Electronics Co., Ltd. | Electronic devices and memory management methods thereof |
US10095618B2 (en) * | 2015-11-25 | 2018-10-09 | Intel Corporation | Memory card with volatile and non volatile memory space having multiple usage model configurations |
KR102491651B1 (ko) * | 2015-12-14 | 2023-01-26 | 삼성전자주식회사 | 비휘발성 메모리 모듈, 그것을 포함하는 컴퓨팅 시스템, 및 그것의 동작 방법 |
US10007579B2 (en) * | 2016-03-11 | 2018-06-26 | Microsoft Technology Licensing, Llc | Memory backup management in computing systems |
US9965017B2 (en) * | 2016-04-12 | 2018-05-08 | International Business Machines Corporation | System and method for conserving energy in non-volatile dual inline memory modules |
-
2016
- 2016-06-23 US US15/191,132 patent/US10401935B2/en active Active
-
2017
- 2017-01-06 KR KR1020170002431A patent/KR102677761B1/ko active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005071068A (ja) * | 2003-08-25 | 2005-03-17 | Renesas Technology Corp | 記憶装置 |
Also Published As
Publication number | Publication date |
---|---|
KR20170124952A (ko) | 2017-11-13 |
US10401935B2 (en) | 2019-09-03 |
US20170322611A1 (en) | 2017-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102677761B1 (ko) | 전력이 공급되는 영구 저장 장치를 통한 호스트 메모리 보호 | |
US9886200B2 (en) | Concurrent upgrade and backup of non-volatile memory | |
TWI567559B (zh) | 斷電保護系統及其方法 | |
KR102329762B1 (ko) | 메모리 데이터 보호 메커니즘을 갖는 전자 시스템 및 그것의 동작 방법 | |
US9021141B2 (en) | Data storage controller and method for exposing information stored in a data storage controller to a host system | |
EP2652623B1 (en) | Apparatus, system, and method for auto-commit memory | |
JP2004038290A (ja) | 情報処理システムおよび同システムで用いられるディスク制御方法 | |
US9507671B2 (en) | Write cache protection in a purpose built backup appliance | |
US9690664B2 (en) | Storage system and method for controlling the same | |
US8411526B2 (en) | Storage device, electronic device, and storage device control method | |
US10346072B1 (en) | Dislocated power loss protection charge storage | |
US8291153B2 (en) | Transportable cache module for a host-based raid controller | |
CN115273922A (zh) | 一种国产双控磁盘阵列异常掉电保护装置 | |
US9082472B2 (en) | Back-up power management for efficient battery usage | |
US11803222B2 (en) | Systems and methods for managing reduced power failure energy requirements on a solid state drive | |
US10795772B2 (en) | Memory system | |
WO2012172708A1 (ja) | バックアップ装置およびバックアップ装置の動作方法 | |
US10838818B2 (en) | Memory persistence from a volatile memory to a non-volatile memory | |
CN117169767A (zh) | 一种用于掉电自检的电源模块和掉电自检方法 | |
Yu et al. | Power-down Protection Technology in Embedded System |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |