KR20190098688A - 정전에 대한 비용 효율적인 솔리드 스테이트 디스크 데이터 보호 방법 - Google Patents
정전에 대한 비용 효율적인 솔리드 스테이트 디스크 데이터 보호 방법 Download PDFInfo
- Publication number
- KR20190098688A KR20190098688A KR1020190002499A KR20190002499A KR20190098688A KR 20190098688 A KR20190098688 A KR 20190098688A KR 1020190002499 A KR1020190002499 A KR 1020190002499A KR 20190002499 A KR20190002499 A KR 20190002499A KR 20190098688 A KR20190098688 A KR 20190098688A
- Authority
- KR
- South Korea
- Prior art keywords
- ssd
- volatile memory
- connector
- power
- data
- Prior art date
Links
- 239000007787 solid Substances 0.000 title claims abstract 5
- 238000000034 method Methods 0.000 title claims description 17
- 238000004891 communication Methods 0.000 claims abstract description 11
- 230000004044 response Effects 0.000 claims abstract description 9
- 238000011010 flushing procedure Methods 0.000 claims description 6
- 239000003990 capacitor Substances 0.000 abstract 1
- 238000007726 management method Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 3
- 230000001105 regulatory effect Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 239000012530 fluid Substances 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000002123 temporal 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/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
- 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/062—Securing storage systems
- G06F3/0623—Securing storage systems in relation to content
-
- 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/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- 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/0604—Improving or facilitating administration, e.g. storage management
-
- 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/0626—Reducing size or complexity of 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- 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/0688—Non-volatile semiconductor memory 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/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
-
- 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/21—Employing a record carrier using a specific recording technology
- G06F2212/214—Solid state disk
-
- 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/26—Using a specific storage system architecture
- G06F2212/261—Storage comprising a plurality of storage devices
-
- 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/313—In storage device
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)
- Power Sources (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
저장 시스템은 적어도 하나의 솔리드 스테이트 드라이브(SSD) 및 베이스보드 관리 컨트롤러(BMC)를 포함한다. 상기 적어도 하나의 SSD는 통신 링크 정보를 통해 통신하고, 상기 적어도 하나의 SSD는 0을 포함하는 소정 개수의 수퍼 커패시터들을 포함하며, 전력 상태의 손실이 검출되면 소정의 시간동안 걸쳐 있는 비-휘발성 메모리의 데이터를 비-휘발성 메모리로 플러시하도록 동작 모드를 제공할 수 있다. 상기 BMC는 상기 SSD로부터 상기 정보를 수신하고, 그것에 응답하여 상기 동작 모드로 진입하기 위한 메시지를 상기 적어도 하나의 SSD로 전송한다.
Description
본 발명은 저장 시스템에 관한 것으로, 좀 더 구체적으로는 임박한 전력-손실 이벤트가 검출될 때 중요 정보를 저장하는 저장 시스템에 관한 것이다.
데이터 센터의 주된 과제는 영구적 데이터 손실의 가능성을 방지하거나 또는 최소화하는 것이다. 그러한 방안들은 많은 형태를 취할 수 있다. 예를 들어, SSD(solid-state drive)에 사용될 수 있는 한 가지 방법은 전력 손실이 검출되면 SSD의 휘발성 DRAM 내 상주하는 중요 정보(critical information)가 영구 메모리에 저장되도록 하는데 사용될 수 있는 전기 에너지를 저장하는 SSD의 내부의 수퍼 커패시터들(supercaps, 수퍼캡들)을 포함 하는 것이다. 수퍼캡에 의해 저장된 에너지는 동작 중 또는 보류중인 쓰기 데이터의 보존을 위해 단기간의 전력을 제공하는데 사용된다.
SSD 폼-팩터(form-factor) 제약은 SSD 수퍼캡이 물리적으로 작을 것을 필요로 한다. 따라서, 상대적으로 물리적으로 작은 수퍼캡들은 상대적으로 적은 전력을 저장하기 때문에, 대부분의 SSD들에서 상대적으로 많은 수의 비교적 작은 수퍼캡들이 사용된다. 예를 들어, 슈퍼 캡들을 포함하는 SSD는 30 개 이상의 내부 슈퍼 캡들을 포함할 수 있다. 따라서 완전히 로드된 2U 섀시에 총 24 개의 SSD들이 있을 경우, 700 개 이상의 수퍼캡들이 사용될 수 있다. 그러나 수퍼캡은 상대적으로 비싸고, 고장이 나기 쉽고, 시간이 지남에 따라 성능이 떨어지며, 무엇보다도 값비싼 SSD 보드 공간을 차지한다. 결과적으로, 합리적인 보증 기간을 제공하기 위해, SSD 제조 업체는 일반적으로 시간 경과에 따른 성능 저하를 보완하기 위해 수퍼캡 수를 과다 제공(overprovision)한다.
본 발명은 임박한 전력-손실 이벤트가 검출될 때 중요 정보를 저장할 수 있는 저장 시스템을 제공하는데 있다.
예시적인 실시예는 적어도 하나의 SSD와 베이스보드 관리 컨트롤러 장치를 포함한다. 상기 적어도 하나의 SSD는 통신 링크 정보를 통해 통신하고, 상기 적어도 하나의 SSD는 전력 상태의 손실이 검출되면 소정의 시간동안 휘발성 메모리의 데이터를 비-휘발성 메모리로 플러시하도록 동작 모드를 제공할 수 있다. 상기 베이스보드 관리 컨트롤러 장치는 상기 SSD로부터 상기 정보를 수신하고, 그것에 응답하여 상기 동작 모드로 진입하기 위한 메시지를 상기 적어도 하나의 SSD로 전송한다. 일 실시예에서, 상기 베이스밴드 관리 컨트롤러 장치는 상기 정보에 응답하여 상기 적어도 하나의 SSD의 커넥터 핀으로 제공되는 전압을 더 제어한다.
다른 예시적인 실시예에는 비-휘발성 메모리, 휘발성 메모리 및 SSD 컨트롤러 장치를 포함할 수 있다. 상기 휘발성 메모리는 상기 SSD가 승인한 호스트 데이터-쓰기 요청 데이터 그리고/또는 SSD 컨트롤러 상태 정보를 저장할 수 있다. 상기 SSD 컨트롤러 장치는 통신 링크 정보를 통해 통신하고, 상기 SSD는 소정 개수의 수퍼 커패시터들을 포함하며, 상기 소정 개수는 0을 포함하고, 전력 상태의 손실이 검출되면 소정의 시간동안 휘발성 메모리 내 데이터를 비-휘발성 메모리로 플러시하도록 동작 모드를 제공할 수 있다. 상기 SSD 컨트롤러 장치는 상기 동작 모드에 진입하기 위한 메시지를 더 수신한다.
본 발명의 다른 예시적인 실시예는 적어도 하나의 SSD, 미드-플레인 및 베이스보드 관리 컨트롤러 장치를 포함하는 저장 시스템을 제공한다. 상기 적어도 하나의 SSD는 통신 링크 정보를 통해 통신하고, 상기 적어도 하나의 SSD는 전력 상태의 손실이 검출되면 소정의 시간동안 휘발성 메모리의 데이터를 비-휘발성 메모리로 플러시하도록 동작 모드를 제공할 수 있고, 상기 SSD는 U.2 커넥터를 포함할 수 있다. 상기 미드-플레인은 상기 적어도 하나의 SSD의 상기 U.2 커넥터를 수신하는 커넥터 및 상기 적어도 하나의 SSD의 상기 U.2 커넥터를 수신하는 커넥터와 연결될 수 있는 상기 적어도 하나의 수퍼캡을 포함할 수 있다. 상기 베이스보드 관리 컨트롤러 장치는 상기 SSD로부터의 상기 정보를 수신하고, 그것에 응답하여 상기 동작 모드로 진입하기 위한 메시지를 상기 적어도 하나의 SSD로 전송하고, 그리고 상기 베이스보드 관리 컨트롤러는 상기 정보에 응답해서 상기 적어도 하나의 SSD의 상기 U.2 커넥터의 커넥터 핀으로 전압이 제공되도록 더 제어할 수 있다.
이와 같은 구성을 갖는 저장 시스템은 내부 수퍼캡들을 포함하지 않지만, 전력 손실이 검출되는 경우 휘발성 DRAM에 상주하는 중요한 정보가 영구 메모리로 플러시되는 것을 제공할 수 있다. SSD의 내부에서 수퍼캡들을 제거하는 것은 비용을 절감할 뿐만 아니라 비어 있는 공간을 용도 변경 및 추가 저장 매체를 위해 사용할 수 있게 하므로 SSD의 데이터 저장 용량을 증가시킬 수 있다.
이하의 섹션에서, 본 명세서에 개시된 주제의 양태는 도면들에 도시된 예시적인 실시예들을 참조하여 설명될 것이다:
도 1은 본 명세서에 개시된 과제에 따른 저장 시스템의 예시적인 실시예를 도시한다.
도 2a 및 도 2b는 내부 수퍼캡들을 포함하는 전형적인 SSD의 실시예 및 본 명세서에 개시된 과제에 따른 SSD의 예시적인 실시예를 각각 도시한다.
도 3a는 본 명세서에 개시된 과제에 따른 SSD가 수퍼캡 지원을 제공하는지를 판별하기 위해 노말 파워-온 초기화 프로세스에서 사용될 수 있는 BMC 장치와 SSD 사이의 예시적인 신호 흐름도를 도시한다.
도 3b는 본 명세서에 개시된 과제에 따른 전력 상태를 설정하고, SSD의 쓰기-캐시 기능을 인에이블하는 내부 수퍼캡들을 포함하지 않는(수퍼캡 지원을 제공하지 않는) BMC 장치와 SSD 사이의 예시적인 신호 흐름도를 도시한다.
도 4는 본 명세서에 개시된 과제에 따른 PDB를 통해 SSD로 제공되는 전원 전압들의 예시적인 실시예들을 도시한다.
도 5a는 본 명세서에 개시된 과제에 따른 예시적인 실시예의 미드-플레인을 도시한다.
도 5b는 본 명세서에 개시된 과제에 따른 다른 예시적인 실시예의 중앙집중식 수퍼캡들을 구비한 미드-플레인을 도시한다.
도 1은 본 명세서에 개시된 과제에 따른 저장 시스템의 예시적인 실시예를 도시한다.
도 2a 및 도 2b는 내부 수퍼캡들을 포함하는 전형적인 SSD의 실시예 및 본 명세서에 개시된 과제에 따른 SSD의 예시적인 실시예를 각각 도시한다.
도 3a는 본 명세서에 개시된 과제에 따른 SSD가 수퍼캡 지원을 제공하는지를 판별하기 위해 노말 파워-온 초기화 프로세스에서 사용될 수 있는 BMC 장치와 SSD 사이의 예시적인 신호 흐름도를 도시한다.
도 3b는 본 명세서에 개시된 과제에 따른 전력 상태를 설정하고, SSD의 쓰기-캐시 기능을 인에이블하는 내부 수퍼캡들을 포함하지 않는(수퍼캡 지원을 제공하지 않는) BMC 장치와 SSD 사이의 예시적인 신호 흐름도를 도시한다.
도 4는 본 명세서에 개시된 과제에 따른 PDB를 통해 SSD로 제공되는 전원 전압들의 예시적인 실시예들을 도시한다.
도 5a는 본 명세서에 개시된 과제에 따른 예시적인 실시예의 미드-플레인을 도시한다.
도 5b는 본 명세서에 개시된 과제에 따른 다른 예시적인 실시예의 중앙집중식 수퍼캡들을 구비한 미드-플레인을 도시한다.
다음의 상세한 설명에서, 본 발명의 완전한 이해를 제공하기 위해 다수의 특정 세부 사항이 설명된다. 그러나, 당업자는 개시된 양상들이 이러한 특정 세부 사항들 없이 실시될 수 있음을 이해할 것이다. 다른 예들에서, 공지된 방법들, 절차들, 구성 요소들 및 회로들은 여기에 개시된 주제를 모호하게 하지 않기 위해 상세히 설명되지 않았다.
본 명세서에서 "일 실시예"또는 "실시예"는 본 실시예와 관련하여 기술된 특정 특징, 구조 또는 특성이 본 명세서에 개시된 적어도 하나의 실시예에 포함될 수 있다는 것을 의미한다. 따라서, 본 명세서 전체에 걸쳐 "일 실시예에서"또는 "실시예에서"또는 "일 실시예에 따라"(또는 유사한 의미를 갖는 다른 어구) 구의 출현은 모두 반드시 동일한 실시 예를 지칭하지는 않는다. 또한, 특정 특징들, 구조들 또는 특성들은 하나 이상의 실시예에서 임의의 적합한 방식으로 결합될 수 있다. 이와 관련하여, 본 명세서에 사용 바와 같이, "예시적인" 이라는 단어는 "예시, 실례 또는 사례를 제공함"을 의미한다. "예시적인" 것으로 본 명세서에서 설명된 임의의 실시예는 반드시 다른 실시예보다 반드시 바람직하거나 유리한 것으로 해석되어서는 안된다. 또한, 여기에서 논의의 문맥에 따라, 단수는 대응하는 복수의 형태를 포함할 수 있고, 복수의 용어는 대응하는 단수 형태를 포함할 수 있다. 본 명세서에 도시되고 논의된 다양한 도면들(구성 요소 도형들 포함)은 단지 예시를 목적으로 하는 것이며, 실제 척도로 그려진 것은 아니라는 점에 유의해야 한다. 마찬가지로, 다양한 파형들 및 타이밍도들이 단지 예시를 목적으로 도시된다. 예를 들어, 일부 구성 요소들의 치수들은 명확성을 위해 다른 구성 요소들에 비해 과장될 수 있다. 또한, 적절한 것으로 고려되는 경우, 참조 부호는 대응하는 및/또는 유사한 요소를 나타내기 위해 도면들 사이에서 반복되었다.
본 명세서에서 사용되는 용어는 특정 실시 예들을 설명하기 위한 것일 뿐 본 발명을 제한하려는 것은 아니다. 본 명세서에서 사용된 단수 형태는 문맥 상 다르게 지시하지 않는 한 복수 형태를 포함하는 것으로 의도된다. 본 명세서에서 사용된 "포함하는" 및 "포함하고 있는"의 용어는 명시된 특징들, 정수들, 단계들, 동작들, 엘리먼트들 및/또는 구성 요소들의 존재를 특정하며, 하나 이상의 다른 특징들, 정수들, 단계들, 동작들, 엘리먼트들, 구성 요소 및/또는 이들의 그룹의 존재 또는 추가를 배제하지 않음이 잘 이해할 것이다. 본 명세서에서 명사의 레이블로 사용되는 "제1", "제2" 등의 용어는 명사 앞에 놓이나, 명시적으로 정의되지 않는 한 특정 타입의 순서(예를 들면, 공간적, 시간적, 논리적 등)를 암시하지 않는다. 또한 2 개 이상의 도면들에서 동일한 참조 부호들이 동일한 또는 유사한 기능들 갖는 부분들, 구성 요소들, 블록들, 회로들, 유닛들 또는 모듈들을 인용하기 위해 사용될 수 있다. 그러한 사용법은 설명의 간소화 및 논의의 용이함을 위해서만 사용된다. 그러한 구성 요소들 또는 유닛들의 구성 또는 구조적 세부 사항들이 모든 실시예들에 걸쳐 동일하거나 또는 공통으로 참조된 부품들/모듈들이 본 명세서에 개시된 특정 실시예들의 교시를 구현하는 유일한 방법이라는 것을 의미하지는 않는다.
달리 정의되지 않는 한, 본 명세서에서 사용되는 모든 용어들(기술 및 과학 용어 포함)은 이 주제가 속하는 기술 분야의 당업자에 의해 일반적으로 이해되는 것과 동일한 의미를 갖는다. 또한, 일반적으로 사용되는 사전에서 정의된 용어들과 같은 용어들은 관련 기술 및/또는 본 명세서와 관련하여 그 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 이상적이거나 지나치게 형식적인 의미로 해석되지 않아야 한다.
본 명세서에 사용된 바와 같이, 용어 "모듈"은 모듈과 관련하여 본 명세서에 설명된 기능성을 제공하도록 구성된 소프트웨어, 펌웨어 및/또는 하드웨어의 임의의 조합을 지칭한다. 소프트웨어는 소프트웨어 패키지, 코드 및/또는 명령 세트 또는 명령들로서 구현될 수 있으며, 여기에 기술된 임의의 구현 예에서 사용되는 "하드웨어"라는 용어는 예를 들어, 단독으로 또는 임의의 조합으로, 하드 와이어드 회로, 프로그래머블 회로, 상태 머신 회로, 및/또는 프로그래머블 회로에 의해 실행되는 명령들을 저장하는 펌웨어를 포함할 수 있다. 모듈은 집적 회로(integrated circuit, IC), 시스템 온-칩(system on-chip, SoC) 등과 같은 더 큰 시스템의 일부를 형성하는 회로로서 집합적으로 또는 개별적으로 구현될 수 있다.
본 명세서에 개시된 SSD의 일 실시예는 내부 수퍼캡들을 포함하지 않지만, 전력 손실이 검출되는 경우 휘발성 DRAM에 상주하는 중요한 정보가 영구 메모리(persistent memory)로 플러시(flush)되는 것을 제공할 수 있다. SSD의 내부에서 수퍼캡들을 제거하는 것은 비용을 절감할 뿐만 아니라 비어 있는 공간을 용도 변경 및 추가 저장 매체를 위해 사용할 수 있게 하므로 SSD의 데이터 저장 용량을 증가시킬 수 있다. 다른 실시예에서, 플러싱 동작을 위해 에너지를 제공하는 추가적인 수퍼캡(supercaps)이 저장 시스템의 미드-플레인, 마더보드, 및/또는 전력 분배 보드(power distribution board, PDB)와 같이 SSD의 외부에 위치할 수 있기 때문에 SSD는 전형적인 SSD 장치보다 적은 수의 내부 수퍼캡들을 포함할 수 있고, 전력 손실이 검출되면 휘발성 DRAM에 존재하는 중요한 정보가 영구 메모리로 플러시되는 것을 제공할 수 있다.
도 1은 본 명세서에 개시된 과제에 따른 저장 시스템(storage system)(100)의 예시적인 실시예를 도시한다. 저장 시스템(100)은 이더넷 스위치(101), 베이스보드 관리 컨트롤러(baseboard management controller, BMC) 장치(102), PCIe(Peripheral Component Interconnect Express) 스위치(103), 미드-플레인(104), 전력 공급 유닛(power supply unit, PSU)(105), 전력 분배 보드(power distribution board, PDB)(106), 하나 이상의 SSD들(200a-200n)을 포함한다. 일 실시예에서, 하나 이상의 SSD들은 NVMe(Non-Volatile Memory Express) 장치일 수 있다. SSD들(200)이 NVMe 장치들인 실시예에서, 이더넷 스위치 보드는 X86 마더보드로 대체될 수 있다. 이더넷 스위치 보드는 NVMe 오버 패브릭(NVMe over Fabrics, NVMe-oF) 장치들로 구성된 SSD들(200)에 사용되고, X86 마더보드는 NVMe 장치들에 사용된다. 오직 하나의 이더넷 스위치(101) 및 오직 하나의 PCIe 스위치(103)만이 스토리지 시스템(100)의 일부로서 도시되었지만, 다수의 이더넷 스위치들(101) 및 다수의 PCIe 스위치들(103)이 저장 시스템(100)의 일부일 수 있다는 것을 이해해야 한다. 또한 저장 시스템(100)을 구성하는 다른 구성 요소들은 개별 구성 요소들 또는 개별 모듈들로 구현될 수 있다. 대안적으로, 저장 시스템(100)의 일부인 2 개 이상의 구성 요소들 또는 모듈들은 서로 통합될 수 있다.
저장 시스템(100)은 하나 이상의 SSD들(200)이 저장 시스템(100)에 대해 국지적으로 배치될 수 있는 섀시(chassis) 또는 랙(rack)으로서 물리적으로 구현될 수 있다. 또한 하나 이상의 부가적인 SSD들(200)은 저장 시스템(100)에 대해 원격으로 배치될 수 있다. 일 실시예에서, 저장 시스템(100)은 24 개의 SSD들(200)을 포함할 수 있다. 다른 실시예에서, 저장 시스템(100)은 48 개의 SSD들(200)을 포함할 수 있다. 또다른 실시예에서, 저장 시스템(100)은 임의의 개수의 SSD들(200)을 포함할 수 있다.
이더넷 스위치(101)는 복수의 업링크 이더넷 포트들(108)을 포함할 수 있으며, 그 중 하나의 업링크 포트(108)만이 도 1에 도시되어 있다. 하나 이상의 업 링크 포트들(108)은 이더넷 스위치(101)를 하나 이상의 원격 호스트들(170)에 연결할 수 있으나, 하나의 호스트(170)만 도시되어 있다. 또한 이더넷 스위치(101)는 복수의 다운링크 이더넷 포트들(109)을 포함할 수 있으며, 그 중 2 개의 포트들(109)만이 도 1에 도시되어 있다. 관리 포트(특정해서 도시하지 않음)는 이더넷 스위치(101)를 미드-플레인(104)을 통해 BMC 장치(102) 및/또는 개별적인 SSD들(200)에 연결할 수 있다. 일 실시예에서, 특정해서 나타내지 않았으나, BMC 장치(102) 및 각각의 SSD(200)는 대응하는 이더넷 포트들을 포함할 수 있다.
일 실시예에서, BMC 장치(102)는 저장 시스템(100)의 일부인 메인 스위치 보드에 위치할 수 있다. BMC 장치(102)는 디스커버리(discovery), 컨피규레이션(configuration) 및 동작 상태와 같은, 그러나 이에 제한되지 않는, 관리 기능들 및 각 SSD들의 상태 모니터링(health monitoring)을 제공하도록 구성될 수 있다. 일 실시예에서, BMC 장치(102)는 또한 SSD들(220)의 내부 기능을 제어 및/또는 구성하고, SSD들(200)로 제공되는 전원 전압을 제어하도록 구성되어서 전력의 손실이 검출될 때 휘발성 메모리에 상주하는 중요한 정보가 영구적인 메모리로 플러시될 수 있다. 플러시될 수 있는 그러한 중요한 데이터는 SSD가 확인한 호스트 데이터-쓰기 요청 데이터 및/또는 장치 재시작 후 영구 메모리에서 사용 가능할 때 장치 상태 인스턴스화 및 저장 기능 재개를 급격히 가속화하는 SSD 컨트롤러 상태 정보를 포함할 수 있다.
SSD가 수신했지만 확인하지 않은 호스트 쓰기 요청을 SSD(200)는 보존할 필요가 없을 수 있음에 주의해야 한다. 수신 확인되지 않은 호스트 쓰기 요청의 이러한 상황에서 호스트는 수신 확인되지 않은 쓰기-요청 활동을 복구할 책임이 있다. 따라서, SSD들(200)은 영구 메모리로 플러시될 필요가 있는 제한된 양의 데이터를 암시적으로 가질 것이고, 이는 이용 가능한 수퍼캡 보유 에너지가 동작 가능하게 지원할 수 있는 것보다 더 많은 플러시 해야할 데이터를 개별 SSD가 저장하지 않도록 보장한다.
저장 시스템(100)의 일 실시예에서, BMC 장치(102)와 SSD들(200) 사이에 하나 이상의 통신 경로들이 존재할 수 있으며, 이 경로는 제어 정보를 전달하고 BMC에 의해 제공되는 관리 기능에 관한 정보를 얻는데 사용될 수 있다 제 1 통신 경로는 이더넷 스위치(101)의 관리 포트를 통해 이루어질 수 있다. 제 2 통신 경로는 PCIe 스위치(103) 및 미드 플레인(104)을 통해 PCIe 버스(111)를 통해 이루어질 수 있다. 제 3 경로는 시스템 BMC 장치(102)와 SSD(200) 사이에 접속 된 관리 버스(SMBus)(112)를 포함한다.
또한 BMC 장치(102)는 관리 포트(114)를 포함할 수 있으며, 관리자(사용자)에 의해 동작되는 관리 서버(160)는 관리 포트(114)를 통해 BMC 장치(102)와 통신하고, BMC 장치(102)를 제어할 수 있다. 관리 서버(160)는 저장 시스템(100)으로부터 근접해서 또는 멀리 떨어져서 위치할 수 있다.
미드-플레인(104)은 통신 링크들 및 제어 링크들에 사용되는 신호 라인들, 그리고 저장 시스템(100)의 다양한 구성 요소들에 전력을 공급하는 전력 공급 라인들을 포함할 수 있다. 일 실시예에서, 미드-플레인(104)은 SSD들(200)의 커넥터들과 결합하는 리셉터클(receptacle) 커넥터들을 포함한다.
일 실시예에서, PSU(105)는 저장 시스템(100) 내에 배치될 수 있다. 다른 실시예에서, PSU(105)는 저장 시스템(100)과 별도로 배치될 수 있다. PSU(105)는 하나 이상의 전원 전압들을 저장 시스템(100)에 제공할 수 있다. 일 실시예에서, PSU(105)는 +12V, +5V 및 +3.3V와 같은, 그러나 이에 제한되지 않는, 다수의 전원 전압(115)을 저장 시스템(100)에 공급할 수 있으나, 이에 한정되지 않는다. PSU(105)로부터 출력되는 전원 전압들은 PDB(106)를 통해 저장 시스템(100)을 형성하는 다양한 구성 요소들에 분배될 수 있다. 또한 다른 실시예에서, PSU(105)는 저장 시스템(100)에 백업 에너지 원을 제공하는 능력을 포함할 수 있다.
PDB(106)는 미드-플레인(104)을 포함하여 저장 시스템(100) 전체에 전원 전압들(115)을 분배하기 위한 전력 분배 라인들을 포함할 수 있다. 일 실시예에서, PDB(106)는 BMC 장치(102)가 적어도 선택된 SSD들(200)에 대한 선택된 전원 전압(116)의 인가를 제어하는 것을 허용하는 구성 요소들을 포함할 수 있다.
도 2a 및 도 2b는 내부 수퍼캡들을 포함하는 전형적인(typical) SSD(150)의 실시예 및 본 명세서에 개시된 과제에 따른 SSD(200)의 예시적인 실시예를 각각 도시한다. 도 2a에 도시된 바와 같이, 전형적인 SSD(150)는 SSD 컨트롤러(151), 휘발성 메모리(152), 비-휘발성 메모리(153), 파워-페일(power-fail, PFAIL) 검출기(154), 수퍼캡들(155), 전력 멀티플렉서(156) 및 DC/DC 레귤레이터(157)를 포함한다. 일 실시예에서, 휘발성 메모리(152)는 DRAM(dynamic random access memory)일 수 있고, 비-휘발성 메모리(153)는 복수의 비-휘발성 메모리 다이들(dies) 또는 어레이들(153a-153n)로 형성될 수 있다.
또한 전형적인 SSD(150)는 U.2 또는 M.2 커넥터일 수 있는 커넥터(158)를 포함한다. 제어 신호들 및 데이터 신호들은 커넥터(158)를 통해 양방향으로 통과할 수 있다. 예를 들어, 제어 신호들 및 데이터 신호들은 SAS 핀들, PCIe 버스(111) 및/또는 SMBus(112)를 사용하는 이더넷 네트워크(111)를 거쳐 커넥터(158)를 통해 전형적인 SSD(150)와 양방향으로 전송될 수 있다. 제어 정보는 예를 들어, 내부 SMBus(112) 및/또는 I2C(inter-integrated circuit) 버스(미 도시됨)를 거쳐 전형적인 SSD(150)를 통해 내부적으로 전달될 수 있다. 데이터는 데이터 버스(159)를 통해 휘발성 메모리(152)로 그리고 데이터 버스(160)를 통해 비-휘발성 메모리(153)로 전형적인 SSD(150)전체에 걸쳐 내부적으로 전송될 수 있다.
또한, 전형적인 SSD(150)에 전력을 공급하기 위해 +12V, +5V 및 +3.3V와 같은 전원 전압들(115)이 커넥터(158)에 공급될 수 있다. 전원 전압들은 전력 멀티플렉서(156)의 제1 입력에 연결되고, 수퍼캡들들에 전하를 저장하도록 수퍼캡들들에 연결될 수 있다. DC/DC 레귤레이터(157)는 전력 멀티플렉서(156)로부터 전원을 수신하고, 전형적인 SSD(150) 전체에 걸쳐 필요에 따라 조정된 전압들을 공급한다.
PFAIL 검출기(154)는 전력 손실이 검출되는 경우 휘발성 메모리(152)에 상주하는 중요 정보가 영구 메모리(153)로 플러시될 수 있도록 임박한 외부 전력 손실 이벤트를 검출할 수 있다. 또한 전원 전압(115)과 관련된 전력 페일 검출 신호(미 도시됨)는 외부 전원 공급 전력 손실이 임박했음을 표시할 수 있다. 임박한 전력 손실 이벤트가 감지되지 않은 노말 동작에서, SSD(150)에 대한 전력은 전력 멀티플렉서(156)를 통해 DC/DC 레귤레이터(157)로 공급되고, DC/DC 레귤레이터(157)는 전형적인 SSD(150)로 조정된 전력을 공급한다. 예를 들어, 임박한 전력 손실 이벤트가 감지되면, 감지된 상태는 전력 멀티플렉서(156) 및 SSD 컨트롤러(151)로 전달된다. 이것에 응답하여, 전력 멀티플렉서(156)는 외부(즉, 커넥터(158)를 통해 제공되는)로부터 내부 수퍼캡들(155)로 전력의 공급이 스위치되고, SSD 컨트롤러(151)는 휘발성 메모리(152)에 상주하는 중요 정보(즉, SSD가 확인한 호스트 데이터-쓰기 요청 및/또는 SSD 컨트롤러 상태 정보)를 영구 메모리(153)로 플러시한다.
도 2b는 도 2a의 전형적인 SSD(150)와는 대조적인 본 발명의 예시적인 실시예의 SSD(200)를 도시한다. 도 2b에 도시된 예시적인 실시예의 SSD(200)가 수퍼캡을 포함하지 않는 것을 제외하고는 SSD(200) 전형적인 SSD(150)와 동일한 많은 구성 요소들을 포함할 수 있다. 좀 더 구체적으로, SSD(200)는 SSD 컨트롤러(201), 휘발성 메모리(202), 비-휘발성 메모리(203), PFAIL 검출기(204), 전력 멀티플렉서(206), DC/DC 레귤레이터(207) 및 커넥터(113)를 포함한다. 일 실시예에서 휘발성 메모리(203)는 DRAM일 수 있고, 비-휘발성 메모리(203)는 복수의 비-휘발성 메모리 어레이들(203a-203n)로부터 형성될 수 있다.
커넥터(113)는 U.2 또는 M.2 커넥터일 수 있다. 제어 신호들 및 데이터 신호들은 커넥터(113)를 통해 양방향으로 통과할 수 있다. 예를 들어, 제어 신호들 및 데이터 신호들은 이더넷 네트워크(110), PCIe 버스(111) 및/또는 SMBus(112)를 거쳐 커넥터(113)를 통해 SSD(200)로 양방향으로 통과할 수 있다. 제어 정보는 예를 들어, 내부 SMBus(112) 및/또는 I2C 버스(미 도시됨)를 통해 SSD(200) 내부 전반에 전송될 수 있다. 데이터는 데이터 버스(209)를 통해 휘발성 메모리(202)로 그리고 데이터 버스(210)를 통해 비-휘발성 메모리(203)로 SSD(200) 전체에 걸쳐 내부적으로 전송될 수 있다.
또한 전형적인 SSD(150)와 유사하게, SSD(200)에 전력을 공급하기 위해 +12V, +5V 및 +3.3V와 같은 전원 전압들(115)이 커넥터(113)에 공급될 수 있다. 전원 전압들은 전력 멀티플렉서(206)의 제1 입력과 연결될 수 있다. DC/DC 레귤레이터(207)는 전력 멀티플렉서(206)로부터 전력을 수신하고 SSD(200) 전체에 걸쳐 필요에 따라 조정된 전압을 공급한다. 전형적인 SSD(150)와의 다른 차이점은 SSD(200)가 U2 커넥터(113)의 3.3V_AUX 핀(E3)을 통해 +12V와 같은 전원 전압(116)을 수신하도록 구성될 수 있다는 것이다. U.2 커넥터(113)의 3.3V_AUX 핀(E3)을 통해 공급되는 +12V는 전력 멀티플렉서(206)의 제2 입력에 공급된다.
일 실시예에서, 전력 손실이 검출될 때, SSD(200)가 휘발성 DRAM의 중요한 정보를 영구 메모리에 저장하는데 3.3V_AUX 핀(E3)으로 제공되는 +12V를 사용할 수 있는지에 근거해서 BMC 장치(102)는 3.3V_AUX 핀(E3)에 공급되는 +12V를 제어할 수 있다. 이 기능에 관한 추가적인 세부 사항은 도 3 및 도 4를 참조하여 설명된다.
전형적인 SSD(150)와의 또 다른 차이점은 SSD(200)가 BMC 장치(102)에 의해 질의되어 SSD(200)가 내부 수퍼캡들을 포함하는 지를 판별할 수 있다는 것이다. 만일 SSD(200)가 내부 수퍼캡들을 포함하지 않고 SSD(200)가 3.3V_AUX 핀(E3)에서 + 12V를 이용할 수 있는 경우, SSD(200)는 PFAIL 검출기(204)에 의해 전력 손실이 검출되는 경우 SSD(200)가 휘발성 메모리(202)에 상주하는 중요 정보를 영구 메모리(203)로 플러시할 수 있도록 BMC 장치(102)에 의해 쓰기-캐시 기능을 가능하게 하도록 구성될 수 있다. 또한 전원 전압(115)과 관련된 전력 페일 검출 신호(미 도시됨)는 외부 전원 전력 손실이 임박했음을 알릴 수 있다.
임박한 전력 손실 이벤트가 감지되지 않는 노말 동작에서, SSD(200)에 대한 전력은 전력 멀티플렉서(206)를 통해 DC/DC 레귤레이터(207)에 공급될 수 있으며, DC/DC 컨트롤러(207)는 SSD(200)에 조절된 전력을 공급한다. 예를 들어 임박한 전력 손실 상태가 검출되면, 검출된 상태는 전력 멀티플렉서(206) 및 SSD 컨트롤러(201)로 전달된다. 이에 응답하여, 전력의 손실이 검출될 때, 전력 멀티플렉서(206)는 외부로부터(즉, 커넥터(113)를 통하여 제공되는)의 전원을 커넥터(113)의 3.3V_AUX 핀(E3)으로 스위칭하고, SSD 컨트롤러(201)는 휘발성 메모리(202)에 상주하는 중요 정보(즉, SSD가 확인 응답한 호스트 데이터-쓰기 요청 및/또는 SSD 컨트롤러 상태 정보)를 영구 메모리(203)에 플러시 한다.
BMC 장치(102)는 SSD(200)의 내부 구성에 기초하여 저장 시스템(100)의 각 SSD(200)와 통신하고 SSD(200)의 내부 동작을 구성할 수 있다. 예를 들어, BMC 장치(102)는 파워-온 초기화 프로세스 동안, SSDD(200)에 문의하여 SSD(200)가 내부 수퍼캡들을 포함하는 지의 여부 및 포함하는 경우 수퍼캡들의 능력을 판별한다. SSD(200)가 내부 수퍼캡들을 포함한다는 것을 나타내는 경우, BMC 장치(102)는 수퍼캡들이 시간이 지남에 따라 열화되므로 허용 가능한 미해결 전력 요구를 설정하기 위해 내부 수퍼캡들의 상태를 모니터링 할 수 있으며, 이는 BMC 장치(102)에서 각 개별 SSD(200)에 대한 전원 차단 이벤트들에서 플러시(flush) 될 필요가 있을 수 있는 미해결 승인된 호스트 쓰기들의 허용 가능한 개수가 유동적으로 변화하는 결과를 초래할 수 있다.
SSD(200)의 다른 예시적인 실시예는 전형적인 SSD(150)보다 더 적은 내부 수퍼캡들을 포함할 수 있고, 플러싱 동작을 위한 에너지를 제공하는 부가적인 수퍼캡들이 저장 시스템(100)의 미드-플레인(104), 마더 보드 및/또는 전력 분배 보드(PDB)(106)과 같이, SSD(200)의 외부에 배치될 수 있기 때문에 전력의 손실이 검출될 때 휘발성 DRAM(202)에 상주하는 중요 정보가 비-휘발성 메모리(203)로 플러시될 수 있다. 이러한 예시적인 실시예에서, +3.3V가 커넥터(113)의 3.3V_AUX 핀(E3)에 공급될 수 있고, 이 경우 + 12V는 커넥터(113)의 3.3V_AUX 핀(E3)에 공급되지 않을 것이다.
도 3a는 본 명세서에 개시된 과제에 따른 SSD가 수퍼캡 지원을 제공하는지를 판별하기 위해 노말 파워-온 초기화 프로세스에서 사용될 수 있는 BMC 장치와 SSD 사이의 예시적인 신호 흐름도를 도시한다. 도 3a의 301에서, BMC 장치(102)는 SSD가 수퍼캡 지원을 제공하는지 여부를 판별하기 위해 SSD로 GetFeature 메시지를 전송한다. SSD가 수퍼캡 지원을 제공하면 WCE(Write Cache Enable)은 "true"이고, 그렇지 않으면 WCE는 "false"다. 302에서, SSD는 WCE가 "true"인지 "false"인지를 나타내는 FeatureInfo 메시지로 BMC 장치(102)에 응답한다. 303에서, SSD는 BMC 장치(102)에 GetFeatureCmpl 메시지를 전송하여 메시지 트랜잭션(messaging transaction)을 완료한다.
만일 SSD(200)가 SSD가 내부에 비상-동작 수퍼캡 용량을 포함하지 않지만, 3.3V_AUX 핀(E3)을 통해 12V의 외부 백-업 전원 전압을 지원할 수 있다는 것을 BMC 장치(102)에게 전달하는 경우, BMC는 3.3V_AUX 핀(E3)에 +12V를 공급하고 3.3V_AUX 핀(E3)에 +12V가 공급된다는 것을 SSD에게 전달할 수 있다. 따라서, SSD는 노말 동작을 위해 전원 전압들(115)을 이용할 수 있고, 3.3V_AUX 핀(E3)에 공급되는 전원 전압(116)(즉, +12V)를 이용하여 휘발성 메모리에서 비-휘발성 메모리로 중요 데이터를 플러 시한다. BMC 장치(102)는 SSD의 내부 기능을 구성하여 전력 손실이 검출되는 경우에 중요 정보를 영구 메모리로 플러시하기 위한 쓰기-캐시 기능을 가능하게 할 수 있다.
도 3b는 본 명세서에 개시된 과제에 따른 전력 상태를 설정하고, SSD의 쓰기-캐시 기능을 인에이블하는 내부 수퍼캡들을 포함하지 않는(수퍼캡 지원을 제공하지 않는) BMC 장치와 SSD 사이의 예시적인 신호 흐름도를 도시한다. 304에서, BMC 장치(102)는 SetFeature 메시지를 SSD로 전송한다. 305에서, BMC 장치(102)는 WCE를 "true"로 설정하기 위해 FeatureInfo 메시지를 전송한다. 306에서, SSD는 SetFeatureCmpl 메시지를 BMC 장치(102)로 전송하여 트랜잭션을 완료한다. 데이터가 플러시되도록 PDB(106)를 통해 저장 시스템(100)에 의해 전력이 공급되기 때문에 전력의 손실이 검출되면 내부 수퍼캡들을 포함하지 않는 SSD(200)는 WCE를 인에이블함으로써, 휘발성 메모리(202)에 상주하는 중요 정보(즉, SSD가 확인한 호스트 데이터-쓰기 요청 및/또는 SSD 컨트롤러 상태 정보)를 영구 메모리(203)로 플러시할 수 있다.
표 1은 본 개시의 과제에 따른 SSD에서 통신 및 설정될 수 있는 전력 상태들을 예시적으로 보여준다.
Power State | MP | AP | ENTLAT | EXTLAT | RRT | RRL | RWL |
0 | 35W | 33W | 5㎲ | 5㎲ | 0 | 0 | 0 |
1 | 25W | 21W | 5㎲ | 7㎲ | 0 | 0 | 1 |
2 | 25W | 21W | 5㎲ | 8㎲ | 1 | 0 | 0 |
3 | 20W | 19W | 20㎲ | 15㎲ | 2 | 0 | 2 |
4 | 20W | 17W | 20㎲ | 30㎲ | 1 | 1 | 3 |
5 | 15W | 15W | 50㎲ | 50㎲ | 2 | 2 | 4 |
6 | 15W | 13W | 50㎲ | 5000㎲ | 4 | 3 | 5 |
. . . |
. . . |
. . . |
. . . |
. . . |
. . . |
. . . |
. . . |
31 | 5W | 5W | 100㎲ | 5000㎲ | 5 | 4 | 6 |
표 1에서 MP는 Maximum Power, ENTLAT는 Entry Latency, EXTLAT는 Exit Latency, RRT는 Relative Read Throughput, RRL은 Relative Read Latency, RWT "는 Relative Write Throughput을 나타내며 RWL은 Relative Write Latency를 나타낸다.
따라서, 본 명세서에 개시된 과제는 BMC가 그러한 드라이브들을 인식하고 통상적인 SSD들에 비상 +12V 전력을 공급하지 않기 때문에 3.3V_AUX 라인에서 +3.3V만을 예상하는 전형적인 SSD와 호환 가능하다. 또한, 전력-페일 이벤트에서, 전원 전압(115)과 관련된 전력페일 검출(powerfail_detected) 신호가 이용 가능할 수 있다. 전력페일 검출(powerfail_detected) 신호는 3.3V_AUX 핀(E3) 상의 +12V로 지원되는 SSD(200)에게 전력 손실이 임박함과, 전원 전압들(115) 및 3.3V_AUX 핀(E3)으로 제공되는 +12V로부터 이용가능한 잔여 전력을 사용하여 비상 플러시 동작들이 수행될 수 있음을 알려준다.
도 4는 본 명세서에 개시된 과제에 따른 PDB(106)를 통해 SSD로 인가되는 전원 전압들의 예시적인 실시예들을 도시한다. 일 실시예에서, PDB(106)는 2-입력 전력 멀티플렉서(401), 12V 레귤레이터(402) 및 하나 이상의 전력 스위치들(403)을 포함하며, 이들 전력 스위치들(403)중 하나의 전력 스위치(403n)만이 도시된다. PSU(105)(도 1에 도시됨)는 전력 멀티플렉서(401)의 제1 입력에 +12V를 공급할 수 있다. 백업 전원은 백업 +12V를 제1 멀티플렉서(401)의 제2 입력에 공급할 수 있다. 12V 레귤레이터(402) 는 레귤레이터(402)로부터 공급되는 12V가 양호함을 나타내는 12V PWRGOOD 신호 출력을 포함한다. 12V PWRGOOD 신호는 멀티플렉서(401)의 제어 입력으로 제공된다. 12V PWRGOOD 신호가 "true"이면 전력 멀티플렉서(401)는 PSU(105)로부터 공급되는 전력을 사용한다. 12V PWRGOOD 신호가 "false"이면, 파워 멀티플렉서(401)는 백업 전원으로부터 공급되는 전력을 사용한다.
BMC 장치(102)는 전원 스위치(403n)가 +12V를 SSD(200)에 공급할 수있게 하는 제어 신호(3.3VAUX Power_EN_SlotN)를 전원 스위치(403n)에 제공할 수 있다. 만일 BMC 장치(102)가 특정 SSD(200n)가 내부 수퍼캡들을 포함하지 않고, 3.3V_AUX 핀(E3)에 공급된 + 12V를 이용할 수 있는 것으로 판별하는 경우, BMC 장치(102)는 전력의 손실이 검출될 때 휘발성 메모리에 상주하는 중요 정보(202)를 특정 SSD(202n)의 영구 메모리(203)로 플러시하기에 충분한 에너지가 있게 하기 위해 파워 스위치(403n)가 +12V를 공급할 수 있게 한다.
전력은 PDB(106)로부터 SSD(200n)의 커넥터(113)를 통해 SSD(200n)로 공급될 수 있다. 일 실시예에서, 커넥터(113)는 +12V 전압이 이를 통해 핀들(P13, P14, P15)로 공급되고, +12V 전압이 이를 통해 3.3V_AUX 핀(E3)으로 공급되는 U.2 커넥터일 수 있다. 본 명세서에 개시된 과제에 따르면, U.2 커넥터의 3.3V_AUX 핀(E3)은 전형적인 SSD 내부의 수퍼캡 저장 전력 자원의 대용품으로서 제2의 보조 전원을 공급하기 위해 사용될 수 있다.
도 5a는 본 명세서에 개시된 과제에 따른 미드-플레인(500)의 예시적인 실시예를 도시한다. 미드-플레인(500)은 복수의 커넥터들(501) 및 복수의 수퍼캡들(502)을 포함한다. 각 커넥터(501)는 SSD(200)의 커넥터(113)와 짝을 이룬다. 각 수퍼캡(502)은 커넥터(501)에 대응한다. PDB(106)(도 1 및 도 4에 도시됨)는 하나 이상의 조정된 전압들(115) 및 전압(116)을 미드-플레인(500)에 공급한다. 각각의 수퍼캡(502)은 미드-플레인(500)에 공급되는 전압(116)에 연결될 수 있다.
처리 중 또는 보류중인 쓰기-데이터 요청들의 수는 섀시 내 SSD에 따라 다를 수 있으므로, 중앙 집중형 수퍼캡 풀 또는 수퍼캡들의 그룹은 상대적으로 적은 처리 중 또는 보류중인 쓰기 데이터 요청들을 포함하는 SSD들보다 상대적으로 많은 처리 중 또는 보류중인 쓰기-데이터 요청들을 포함하는 SSD들이 저장된 에너지를 소비하는 것을 가능하게 할 수 있다. 중앙집중적으로 배치될 수 있는 수퍼캡들은 섀시 내 모든 SSD들로 비상용 전력을 총괄적으로 제공할 수 있다. 대안적으로 상호 배타적이며 총괄적으로 철저한 수퍼캡 저장소 서브그룹들은 섀시에 배치되어서 섀시 내의 대응하는 상호 배타적이며 총괄적으로 철저한 SSD 서브그룹들을 지원할 수 있다. 또다른 대안으로, 새시 내 각 SSD는 SSD에 비상 전력을 제공하는 다수 개의 전용 수퍼캡들을 포함할 수 있다. 또한 중앙집중형 수퍼캡들은 병렬로 연결되어서 잔존 수퍼캡들 및 대기 전력이 정전 중에 충분한 전력을 계속해서 제공할 수 있기 때문에 하나 이상의 수퍼캡 장애가 동작에 영향을 미치지 않도록 할 수 있다.
도 5b는 본 명세서에 개시된 주제에 따라 중앙집중형 수퍼캡을 갖는 미드-플레인(550)의 또 다른 실시예를 도시한다. 미드-플레인(550)은 복수의 커넥터들(551) 및 복수의 수퍼캡들(552)을 포함한다. 각각의 커넥터(551)는 SSD(200)의 커넥터(113)와 짝을 이룬다. 각각의 수퍼캡(552)은 예시적인 수퍼캡(502)(도 5a)보다 물리적 및 용량적으로 상대적으로 커서 하나의 수퍼캡(552)은 2개의 커넥터들(552)에 대응한다. 즉, 수퍼캡들(552)은 이 경우, 2개의 SSD들(200)(도 5b에 미 도시됨)에 대해 중앙집중화된 수퍼캡을 제공한다. PDB(106)(도 1 및 도 4)는 하나 이상의 조정된 전압들(115) 및 전압(116)을 미드-플레인(550)에 공급한다. 각각의 수퍼캡(552)은 미드-플레인(550)에 공급되는 전압(116)에 연결될 수 있다. 도 5b는 2 개의 SSD들(200)에 대한 중앙집중형 수퍼캡을 도시하나, 중앙집중형 수퍼캡은 2 개 이상의 SSD들(200)과 연관될 수 있음을 알아야 한다.
당업자가 인식할 수 있는 바와 같이, 본 명세서에서 설명된 혁신적인 개념은 광범위한 응용 분야들에 걸쳐 수정되고 변경될 수 있다. 따라서, 청구된 주제의 범위는 상술한 특정 예시적인 교시 중 어느 하나에 한정되어서는 안되며, 다음의 청구 범위에 의해 정의된다.
100: 저장 시스템
101: 이더넷 스위치
102: 베이스보드 관리 컨트롤러(BMC) 장치
103: PCIe 스위치
104: 미드-플레인
105: 전력 공급 유닛
106: 전력 분배 보드
200a-200n: SSD
101: 이더넷 스위치
102: 베이스보드 관리 컨트롤러(BMC) 장치
103: PCIe 스위치
104: 미드-플레인
105: 전력 공급 유닛
106: 전력 분배 보드
200a-200n: SSD
Claims (10)
- 통신 링크 정보를 통해 통신하고, 전력 상태의 손실이 검출되면 소정의 시간동안 휘발성 메모리의 데이터를 비-휘발성 메모리로 플러시하는 동작 모드를 제공할 수 있는 적어도 하나의 솔리드 스테이트 드라이브(SSD); 및
상기 SSD로부터 상기 정보를 수신하고, 그것에 응답하여 상기 동작 모드로 진입하기 위한 메시지를 상기 적어도 하나의 SSD로 전송하는 베이스보드 관리 컨트롤러(BMC) 장치를 포함하는 저장 시스템. - 제 1 항에 있어서,
상기 베이스보드 관리 컨트롤러 장치는 상기 정보에 응답하여 상기 적어도 하나의 SSD의 커넥터 핀으로 인가될 전압을 더 제어하는 저장 시스템. - 제 2 항에 있어서,
상기 커넥터 핀은 3.3V_AUX 연결 핀인 저장 시스템. - 제 3 항에 있어서,
상기 전압은 약 +12V를 포함하는 저장 시스템. - 제 1 항에 있어서,
상기 적어도 하나의 SSD는 소정 개수의 수퍼 커패시터들을 포함하며, 상기 소정 개수는 0을 포함하는 저장 시스템. - 제 1 항에 있어서,
상기 휘발성 메모리로부터 상기 비-휘발성 메모리로 플러시된 데이터는 상기 SSD가 승인한 호스트 데이터-쓰기 요청 데이터 그리고/또는 SSD 컨트롤러 상태 정보를 포함하는 저장 시스템. - 솔리드 스테이트 드라이브(SSD)에 있어서:
비-휘발성 메모리;
상기 SSD가 승인한 호스트 데이터-쓰기 요청 데이터 그리고/또는 SSD 컨트롤러 상태 정보를 저장하는 휘발성 메모리; 및
통신 링크 정보를 통해 통신하는 SSD 컨트롤러 장치를 포함하고,
상기 SSD는 소정 개수의 수퍼 커패시터들을 포함하며, 상기 소정 개수는 0을 포함하고, 전력 상태의 손실이 검출되면 소정의 시간동안 상기 휘발성 메모리의 데이터를 상기 비-휘발성 메모리로 플러시하는 동작 모드를 제공할 수 있고, 상기 SSD 컨트롤러 장치는 상기 동작 모드에 진입하기 위한 메시지를 더 수신하는 솔리드 스테이트 드라이브. - 제 7 항에 있어서,
상기 메시지는 저장 시스템의 베이스보드 관리 컨트롤러(BMC) 장치로부터 수신되는 솔리드 스테이트 드라이브. - 통신 링크 정보를 통해 통신하고, 전력 상태의 손실이 검출되면 소정의 시간동안 휘발성 메모리의 데이터를 비-휘발성 메모리로 플러시하는 동작 모드를 제공할 수 있고, U.2 커넥터를 포함하는 적어도 하나의 솔리드 스테이트 드라이브(SSD);
상기 적어도 하나의 SSD의 상기 U.2 커넥터를 수신하는 커넥터 및 상기 적어도 하나의 SSD의 상기 U.2 커넥터를 수신하는 상기 커넥터와 연결되는 적어도 하나의 수퍼캡을 포함하는 미드-플레인; 및
상기 SSD로부터 상기 정보를 수신하고, 그것에 응답하여 상기 동작 모드로 진입하기 위한 메시지를 상기 적어도 하나의 SSD로 전송하는 베이스보드 관리 컨트롤러(BMC) 장치를 포함하고, 상기 BMC 장치는 상기 정보에 응답해서 상기 적어도 하나의 SSD의 상기 U.2 커넥터의 커넥터 핀으로 인가될 전압을 더 제어하는 저장 시스템. - 제 9 항에 있어서,
상기 휘발성 메모리로부터 상기 비-휘발성 메모리로 플러시된 상기 데이터는 상기 SSD가 승인한 호스트 데이터-쓰기 요청 데이터 그리고/또는 SSD 컨트롤러 상태 정보를 포함하는 저장 시스템.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862630809P | 2018-02-14 | 2018-02-14 | |
US62/630,809 | 2018-02-14 | ||
US15/950,114 | 2018-04-10 | ||
US15/950,114 US10901898B2 (en) | 2018-02-14 | 2018-04-10 | Cost-effective solid state disk data-protection method for power outages |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20190098688A true KR20190098688A (ko) | 2019-08-22 |
Family
ID=67541649
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190002499A KR20190098688A (ko) | 2018-02-14 | 2019-01-08 | 정전에 대한 비용 효율적인 솔리드 스테이트 디스크 데이터 보호 방법 |
Country Status (3)
Country | Link |
---|---|
US (2) | US10901898B2 (ko) |
KR (1) | KR20190098688A (ko) |
CN (1) | CN110162269B (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11340802B2 (en) | 2020-03-19 | 2022-05-24 | SK Hynix Inc. | Semiconductor memory device, controller, memory system and method thereof |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI670601B (zh) * | 2018-07-30 | 2019-09-01 | 慧榮科技股份有限公司 | 斷電保護方法及系統 |
CN110716833B (zh) * | 2019-09-29 | 2023-03-21 | 东莞记忆存储科技有限公司 | 用于测量ssd单次进入ps4状态时所造成的nand flash写入量的方法 |
US11416144B2 (en) | 2019-12-12 | 2022-08-16 | Pure Storage, Inc. | Dynamic use of segment or zone power loss protection in a flash device |
US11847331B2 (en) * | 2019-12-12 | 2023-12-19 | Pure Storage, Inc. | Budgeting open blocks of a storage unit based on power loss prevention |
US11704192B2 (en) | 2019-12-12 | 2023-07-18 | Pure Storage, Inc. | Budgeting open blocks based on power loss protection |
US11681448B2 (en) | 2020-09-08 | 2023-06-20 | Pure Storage, Inc. | Multiple device IDs in a multi-fabric module storage system |
CN113131613B (zh) * | 2021-04-07 | 2023-04-07 | 山东英信计算机技术有限公司 | 一种电源管理装置 |
CN113254030B (zh) * | 2021-04-09 | 2024-04-16 | 联合汽车电子有限公司 | 车载微处理器软件应急刷新方法、装置、存储介质及系统 |
US11994723B2 (en) | 2021-12-30 | 2024-05-28 | Pure Storage, Inc. | Ribbon cable alignment apparatus |
US20230333619A1 (en) * | 2022-04-18 | 2023-10-19 | Dell Products L.P. | System and method for power supply input power management |
US20230400988A1 (en) * | 2022-06-14 | 2023-12-14 | Western Digital Technologies, Inc. | Preservation of volatile data in distress mode |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8806271B2 (en) | 2008-12-09 | 2014-08-12 | Samsung Electronics Co., Ltd. | Auxiliary power supply and user device including the same |
US8934255B2 (en) | 2009-03-10 | 2015-01-13 | Samsung Electronics Co., Ltd. | Super capacitor casing and supercapacitor embedded device |
US8230257B2 (en) | 2009-06-26 | 2012-07-24 | Seagate Technology Llc | Systems, methods and devices for controlling backup power provided to memory devices and used for storing of sensitive data |
JP5414656B2 (ja) * | 2010-12-01 | 2014-02-12 | 株式会社東芝 | データ記憶装置、メモリ制御装置及びメモリ制御方法 |
CN103500131B (zh) * | 2013-09-18 | 2015-09-09 | 华为技术有限公司 | 一种存储系统掉电数据备份方法及存储系统控制器 |
CN104122977B (zh) * | 2014-07-11 | 2018-02-23 | 华为技术有限公司 | 一种存储数据的方法及存储系统 |
US9721660B2 (en) | 2014-10-24 | 2017-08-01 | Microsoft Technology Licensing, Llc | Configurable volatile memory without a dedicated power source for detecting a data save trigger condition |
US9568971B2 (en) * | 2015-02-05 | 2017-02-14 | Apple Inc. | Solid state drive with self-refresh power saving mode |
US20160378344A1 (en) * | 2015-06-24 | 2016-12-29 | Intel Corporation | Processor and platform assisted nvdimm solution using standard dram and consolidated storage |
TW201742063A (zh) * | 2016-05-30 | 2017-12-01 | 慧榮科技股份有限公司 | 資料儲存方法及發生電源中斷事件後之系統初始化之方法 |
US9966143B2 (en) | 2016-06-06 | 2018-05-08 | Toshiba Memory Corporation | Solid state drive with improved power efficiency |
US10599503B2 (en) * | 2016-07-28 | 2020-03-24 | Dell Products L.P. | Triggering power loss protection on solid-state storage devices |
US10482014B2 (en) * | 2017-08-08 | 2019-11-19 | Dell Products L.P. | System and method of managing a memory medium |
US10726879B2 (en) * | 2017-12-08 | 2020-07-28 | Samsung Electronics Co., Ltd. | Low-power data transfer from buffer to flash memory |
-
2018
- 2018-04-10 US US15/950,114 patent/US10901898B2/en active Active
-
2019
- 2019-01-08 KR KR1020190002499A patent/KR20190098688A/ko not_active Application Discontinuation
- 2019-02-14 CN CN201910114586.7A patent/CN110162269B/zh active Active
-
2021
- 2021-01-06 US US17/143,153 patent/US20210124681A1/en active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11340802B2 (en) | 2020-03-19 | 2022-05-24 | SK Hynix Inc. | Semiconductor memory device, controller, memory system and method thereof |
Also Published As
Publication number | Publication date |
---|---|
US20210124681A1 (en) | 2021-04-29 |
US10901898B2 (en) | 2021-01-26 |
CN110162269B (zh) | 2021-08-10 |
US20190251027A1 (en) | 2019-08-15 |
CN110162269A (zh) | 2019-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20190098688A (ko) | 정전에 대한 비용 효율적인 솔리드 스테이트 디스크 데이터 보호 방법 | |
US20230010660A1 (en) | Non-volatile memory storage for multi-channel memory system | |
US8154258B2 (en) | Backup energy storage module with voltage leveling | |
TWI683610B (zh) | 用於計算平台的模組化托架形式因子 | |
US10275356B2 (en) | Component carrier with converter board | |
US8325554B2 (en) | Battery-less cache memory module with integrated backup | |
US8117376B2 (en) | Storage system and control method thereof | |
US20100095048A1 (en) | Self-contained densely packed solid-state storage subsystem | |
US7954006B1 (en) | Method and apparatus for archiving data during unexpected power loss | |
US11061454B2 (en) | Power supply apparatus, backup power module and method for providing backup power in computing systems | |
US20120236489A1 (en) | Solid state storage device with removable power backup | |
US20040133819A1 (en) | System and method for providing a persistent power mask | |
WO2008073219A1 (en) | Data redundancy in a plurality of storage devices | |
US11099961B2 (en) | Systems and methods for prevention of data loss in a power-compromised persistent memory equipped host information handling system during a power loss event | |
KR20120030311A (ko) | 멀티 pci 버스 스위칭을 갖는 하이브리드 raid 컨트롤러 | |
TWI773152B (zh) | 伺服器與應用於伺服器的控制方法 | |
US7878861B2 (en) | Energy storage module including a connector having unique pin configuration | |
KR20170124952A (ko) | 전력이 공급되는 영구 저장 장치를 통한 호스트 메모리 보호 | |
EP2065892A1 (en) | Magnetic disk array device | |
CN115273922A (zh) | 一种国产双控磁盘阵列异常掉电保护装置 | |
US20130232377A1 (en) | Method for reusing resource and storage sub-system using the same | |
US7127621B2 (en) | Peer power control | |
CN208224988U (zh) | 一种服务器输入输出io板卡 | |
US7293198B2 (en) | Techniques for maintaining operation of data storage system during a failure | |
US20200249738A1 (en) | Systems and methods for isolation of a power-compromised host information handling system to prevent impact to other host information handling systems during a persistent memory save operation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal |