KR101702201B1 - 솔리드 스테이트 드라이브(ssd)에 대한 최적화된 컨텍스트 드롭 - Google Patents
솔리드 스테이트 드라이브(ssd)에 대한 최적화된 컨텍스트 드롭 Download PDFInfo
- Publication number
- KR101702201B1 KR101702201B1 KR1020147033549A KR20147033549A KR101702201B1 KR 101702201 B1 KR101702201 B1 KR 101702201B1 KR 1020147033549 A KR1020147033549 A KR 1020147033549A KR 20147033549 A KR20147033549 A KR 20147033549A KR 101702201 B1 KR101702201 B1 KR 101702201B1
- Authority
- KR
- South Korea
- Prior art keywords
- segments
- paging table
- paging
- segment
- queue
- Prior art date
Links
Images
Classifications
-
- 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/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- 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/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1441—Resetting or repowering
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
대용량 스토리지 시스템은, 메모리 페이지 리다이렉션을 위해 페이징 테이블을 채택하고, 불휘발성 메모리에 기입될 페이징 테이블(L2P) 세그먼트의 FIFO 큐를 사용하여 PLR(Power Loss Recovery)를 위한 페이징 테이블을 유지한다. FIFO 큐는 페이징 테이블을 재생성하기 위해 영향을 받은 세그먼트의 시퀀스 번호 및 마킹 데이터와 함께 L2P 세그먼트의 시퀀스를 식별한다. 정전시, PLR(Power Loss Recovery) 메커니즘은 FIFO 큐에 기초하여 기입된 최종 세그먼트를 스캔한다. PLR 프로세스는 시퀀스 번호에 의해 정의된 순서로 대응하는 변경들을 재생함으로써 기입되지 않은 페이징 테이블 엔트리들을 복구한다. 복구 프로세스는 페이징 테이블의 L2P 정보가 전력 손실 직전 지점에 재생성될 때까지 현재 컨텍스트의 각 시퀀스 번호에 대하여 계속된다.
Description
여러 가지 이유로 전통적인 하드 디스크 드라이브(HDD: Hard Disk Drives)에 비해 솔리드 스테이트 드라이브(SSD: Solid State Drive)의 인기가 증가하고 있다. SSD는 하드 드라이브에 비해 66 퍼센트까지 보다 빠른 응답성을 제공하여, 보다 빠른 부트-업, 애플리케이션 런치(application launch) 및 리로딩(re-loading)을 가능하게 한다. SSD는 보다 높은 신뢰성 및 보다 긴 수명을 위해 가동부(moving parts)를 갖지 않는다. SSD는 판독/기입 헤드와 종래의 회전 매체 표면 사이의 근접한 물리적 내성(close physical tolerance)으로 흔했던 "헤드 크래시(head crash)"에 기인하는 데이터 손실 없이 충돌 및 충격을 견디기에 충분히 견고하고, SSD는 전력 소비가 보다 낮기 때문에 배터리 수명을 연장한다. 따라서, 랩탑, 태블릿 및 기타 모바일 및 데스크탑 디바이스 등 대용량 스토리지 디바이스를 채택하는 호스트 컴퓨팅 디바이스에서, SSD는 주요 대용량 스토리지 디바이스로서 HDD에 대한 적합한 대체물로서 인기를 끌고 있다. 또한, SSD의 이점은, 포터블/퍼스널 전자 디바이스 등 클라이언트 컴퓨팅 디바이스에만 제한되는 것이 아니라, 종래의 HDD에서의 것과 같은 회전 매체 표면에 비해 보다 우수한 성능 및 신뢰성으로 인해 보다 요구가 많은 애플리케이션을 위한 기업 부분에서도 매우 인기가 있다.
SSD가 NAND 플래시 메모리 등 불휘발성 메모리를 채택하긴 하지만, DRAM(Dynamic Random Access Memory) 등 온보드 휘발성 메모리를 위한 특정 기능이 보유될 수 있다. 운용에 있어서, "명백한(clean)"(즉, 예상되거나 사용자가 개시하는) 셧다운(shutdown) 중에, 대부분의 호스트 시스템은 SSD에 셧다운 또는 아이들 명령어를 개시하여 SSD가 셧다운을 준비할 충분한 시간을 준다. 이는 SSD가 불휘발성 매체에 휘발성 메모리의 임시 버퍼에 현재 존재하는 데이터 또는 내부 상태를 저장할 수 있게 해준다. 그러나, 예상되지 못하거나 갑작스러운 전력 셧다운 중에는, 호스트 시스템이 적절한 명령어를 개시할 수 있기 이전에 SSD는 갑자기 전력을 잃게 된다. 이는 휘발성 메모리 내의 임시 버퍼에 있는 데이터가 불휘발성 메모리에 저장되는 것을 막을 수 있다.
동일 참조 부호가 상이한 도면들 전반적으로 동일 부분을 가리키는 첨부 도면들에 도시된 바와 같이, 본 명세서에 개시되는 특정 실시예들의 이하의 설명으로부터, 상술한 특징들 및 기타 특징들이 병백하게 될 것이다. 도면들은 반드시 비례적으로 그려질 필요는 없으며, 그 대신 본 발명의 원리를 예시하는 것에 강조가 된다.
도 1은 본 명세서의 구성과 함께 사용하기에 적합한 컴퓨팅 환경의 컨텍스트 다이어그램(context diagram)이다.
도 2는 도 1에서와 같은 페이징 테이블 스토리지(paging table storage)의 블럭도이다.
도 3은 도 1의 환경에서 페이징 테이블(L2P) 스토리지 및 복구의 순서도이다.
도 4는 도 3의 접근방식의 타이밍 다이어그램이다.
도 5는 도 4의 메모리 컴포넌트에서 사용되는 시스템 및 사용자 밴드를 도시한다.
도 6 내지 도 9는 본 명세서에 정의되는 바와 같은 전력 손실 및 복구 메커니즘의 순서도이다.
도 1은 본 명세서의 구성과 함께 사용하기에 적합한 컴퓨팅 환경의 컨텍스트 다이어그램(context diagram)이다.
도 2는 도 1에서와 같은 페이징 테이블 스토리지(paging table storage)의 블럭도이다.
도 3은 도 1의 환경에서 페이징 테이블(L2P) 스토리지 및 복구의 순서도이다.
도 4는 도 3의 접근방식의 타이밍 다이어그램이다.
도 5는 도 4의 메모리 컴포넌트에서 사용되는 시스템 및 사용자 밴드를 도시한다.
도 6 내지 도 9는 본 명세서에 정의되는 바와 같은 전력 손실 및 복구 메커니즘의 순서도이다.
SSD는 종래의 기계적 HDD에 비해 여러 이점들을 누린다. SSD는, 종래의 고속 회전 대응부에 비하여 가동부가 없고, 보다 빠르며, 전력 소비가 보다 낮다. SSD에서는, 논리적 어드레스를 SSD 상의 물리적 위치로 전환(translate)하기 위해 L2P(Logical-to-Physical) 테이블(페이징 테이블(paging table))이 종종 채택된다. 컴퓨팅 시스템은, 통상적으로 다양한 타입의 가상 및/또는 다이나믹 어드레싱을 채택하여, 소프트웨어를 물리적 대용량 스토리지 위치에 고정(binding)시키는 것을 회피한다. L2P 테이블은 호스트 컴퓨터 시스템으로부터의 I/O 요청을 L2P를 통해 물리적 어드레스 위치로 맵핑한다. L2P는 메모리의 세그먼트 또는 페이지의 리다이렉션(redirection)을 제공하여 대용량 스토리지 디바이스(SSD) 상의 메모리 사용을 최적화한다.
본 명세서에 개시되는 것 등 특정 배치에서, SSD는 호스트 디바이스로부터의 메모리 액세스를 용이하게 하기 위해 DRAM 등 L2P 테이블용의 보다 빠른 휘발성 메모리를 채택한다. 예를 들어, SDRAM(Synchronous Dynamic Random Access Memory), DRAM(Dynamic Random Access Memory), RAMBUS DRAM 및 DDR3(Double Data Rate Three) SDRAM 등 임의의 적합한 휘발성 메모리가 사용될 수 있다. 그러나, 전력 손실 등의 이벤트가 L2P를 위태롭게 하여, L2P 테이블의 데이터 손실을 초래할 수 있다. L2P 테이블은 페이지 처리되어(paged), 전체 L2P 테이블의 전체 휘발성 메모리 표현을 회피할 수 있다. 이러한 접근방식에서는, 정전의 경우에, 정전 복구 매니저가 불휘발성 메모리와 관련된 L2P 어드레스 맵핑 테이블의 데이터 완전성(data integrity)이 정전 복구 매니저를 통해 유지되도록 보장하며, 정전 복구 매니저는 정전 또는 충돌 이벤트 이후 불휘발성 메모리와 관련된 L2P 어드레스 맵핑 테이블을 복구한다.
제안되는 접근방식에서, 불휘발성 플래시 메모리 기반의 SSD 및 캐시는 종래의 하드 디스크 드라이브에 비해 성능 및 전력 이점을 제공한다. 일관되고, 신뢰성이 있으며 예측가능한 성능을 제공하는 데에는 논리적 어드레스를 물리적 어드레스로 전환하는 플랫 인다이렉션 시스템(flat indirection system)(L2P 테이블)이 유용하다는 점이 이미 발견되었다. L2P는, 휘발성 메모리에 유지되고, 셧다운 시간에도 불휘발성 메모리에 "컨텍스트(context)" 또는 안정된 세트의 시스템 변수의 일부로서 주기적으로 저장된다. 정전의 경우, 최종 컨텍스트 세이브(context save) 이후 L2P에 대한 변화가 손실되며, 후속 부트 중에 재건되어야 한다. 구성에 따라, 예를 들어, 임의의 적합한 불휘발성 메모리가 채택될 수 있으며, 이에 제한되는 것은 아니지만, NAND 플래시 메모리, PCM(Phase Change Memory), EEPROM(Electrically Erasable Programmable Read Only Memory), 또는 PCMS, 나노와이어(Nanowire) 및 FeTRAM 기반 구현 등의 임의의 기타 타입의 불휘발성 메모리 디바이스를 포함한다.
본 명세서의 구성은, L2P를 재구성하기 위한 정전 복구가 디스크에 이미 기입된 다수의 페이지화된 변경을 횡단(traversing)하는 것을 수반할 수 있다는 점에, 부분적으로 기초한다. SSD에서, L2P는 메모리의 각 페이지에 대한 엔트리를 요청하는 페이징 테이블의 형태를 취할 수 있다. 실제 페이징 테이블 사이즈는 페이지 사이즈에 의존하는 한편, 전형적인 비율은 표현되는 메모리 영역의 약 1/1000th이다. 따라서, 1TB 드라이브는 페이징 테이블을 유지하기 위해 단지 1GB의 휘발성 메모리를 요구한다. 불행히도, 종래의 접근방식은, 휘발성 메모리에 기인하는 SSD의 비용 증가 외에도, 전력 손실의 경우에 보다 큰 사이즈는 페이징 테이블을 재생성하는데 상당한 복구 시간을 요구할 것이라는 단점으로 곤란을 겪는다.
성능 중시 애플리케이션(performance critical applications)에서, 총 정전 복구 시간은 페이징 오버헤드로 인해서 부트-타임 요건을 쉽사리 초과할 수 있다. 드라이브 용량, 휘발성 메모리 사이즈 및 작업부하 특징들에 따라서, 드라이브를 부트하는데 30초 이상 걸릴 수 있고, 이는 고객의 예상 및 제품 현실성을 무산시키는 경향이 있다.
일부 구성에서, L2P 테이블을 페이징하는 것은 복구 시간을 다소 경감시키지만, 대부분의 페이지-아웃된(paged-out) 세그먼트는 여전히 L2P 테이블을 재생성하는데 사용되는 재생 프로세스(replay process)에서 횡단될 필요가 있다. 따라서, 본 명세서에서의 구성은, (종래의 LRU(Least Recently Used) 큐와 대조적으로) 페이징 테이블 세그먼트의 FIFO(First-In, First Out) 큐를 정의함으로써 재생 프로세스 중 페이징 참조들(소위 "페이지-아웃들(page-outs)")을 감소시키고, 정전 직전에 플러시(flush)(스토리지 메모리에 기입)되지 않은 세그먼트만을 재생하여, 연장된 전력 손실 복구 시간의 단점을 상당부분 극복한다. 보다 구체적으로, 예시적인 방식은, 플러시되지 않은(그러나 전력 손실 이전에 휘발성 메모리에 있었던) 세그먼트 및 또한 실행-시간 중 FIFO 큐에 최종 플러시된 세그먼트가 들어간 이후 플러시된 세그먼트에 대한 재생을 채택한다. 큐처리된 세그먼트(queued segments)의 수에 기초하여, 본 접근방식은, (B-1) 세그먼트를 잠재적으로 플러시할 수 있고, 그에 따라 또한 이들을 재생할 수 있으며, 여기서, B는 휘발성 메모리에 저장될 수 있는 세그먼트의 최대 갯수이다. 예를 들어, 세그먼트 100이 전력 손실 이전에 최종 플러시된 세그먼트라면, 개시된 접근방식은, 이러한 세그먼트가 플러시된 시점으로부터 재생할 뿐만 아니라 이러한 세그먼트가 실행 시간에 FIFO 큐에 들어간 시점으로부터 재생할 것이며, 이러한 재생 중 세그먼트 100 이전에, 가령 세그먼트 1 내지 99에서, FIFO에서의 모든 세그먼트가 재생되는 시나리오를 용이하게 취할 수 있다. 환언하면, 재생 작업은 변화를 FIFO 큐로의 최종 엔트리로 다시 횡단시켜 L2P 테이블을 재생성한다.
SSD에 대한 성공적인 PLR(Power-Loss Recovery)는 L2P 테이블을 재건하고, 이는 실행-시간 및 복구-시간 요소를 요구한다. 실행시간 중, 불휘발성 메모리 기입 스트림으로의 포인터와 함께 컨텍스트가 주기적으로 저장된다. 실행-시간 중 기입은 PLR이 필요한 경우 순서대로 재생하도록 하는 시퀀스 번호와 관련된다. 전원을 넣으면, 최종 저장된 컨텍스트가 메모리에 로드된다. 그러면, PLR 알고리즘은 저장된 기입 스트림 포인터로부터 이후로 재생을 시작하고, 정전 이전에 불휘발성 메모리에 완료한 최종 기입까지 L2P 테이블을 업데이트한다. 비용 절감을 위해 감소된 메모리로 플랫 인다이렉션(flat indirection)을 사용하는 방법이 위에 언급된 공동계류중인 특허 출원에 논의된다.
따라서, 이하 묘사되는 접근방식은 불휘발성 메모리에 기입될 페이징 테이블(L2P) 세그먼트의 FIFO 큐를 정의한다. 페이징 테이블에서 각 세그먼트는, 페이징 테이블 자체가 저장되는 메모리의 페이지에 대응하고, 페이징(L2P) 테이블을 통해 다른 페이지의 메모리 참조를 각각 맵핑하는 복수의 엔트리를 포함한다. 이들 세그먼트는 이하 보다 상세히 논의되는 밴드라는 세트에 기입된다. 따라서, 재생의 상한은 페이징 테이블을 지원하는 휘발성 메모리의 사이즈에 의해 정의되고; 나머지는 페이지 아웃된 것으로 남는다. 온보드 펌웨어는 재생 프로세스로부터 페이징 테이블 맵핑 정보를 재생성하기 위해 영향을 준 세그먼트의 시퀀스 번호 및 마킹 데이터와 함께 FIFO 큐에 기초하여 세그먼트를 기입한다.
정전 또는 기타 손상(compromise) 시, PLR(Power Loss Recovery) 메커니즘은, 시퀀스 번호에 의해 결정되는 바와 같이, FIFO 큐 순서에 기초하여 기입된 최종 세그먼트를 스캔한다. PLR 프로세스는 시퀀스 번호에 의해 정의된 순서로 대응 변화를 재생함으로써 미기입 페이징 테이블 엔트리를 복구한다. 재생은, L2P 테이블을 재생성하는 재생 프로세스 또는 시퀀스를 채택하고, PLR에 의해 사용되어, 불휘발성 메머리에 실제 기입된 페이지(세그먼트)와 페이징 테이블에서의 휘발성 메모리에 여전히 저장된 불휘발성 페이지에 대한 대응 참조 사이의 차이점을 조정한다. 최근 기입되었지만 아직 페이징 테이블(L2P)에 반영되지 않은 페이지는 변화된 페이지를 식별하는 마커 및 기입된 순서(FIFO 큐로부터의 순서와 동일함)를 식별하는 시퀀스 번호를 갖는다. 이하 더욱 논의되는, 시스템 밴드들은 불휘발성 스토리지에 대한 페이징 테이블 기입들(paging table writes)을 나타낸다. 재생 프로세스는, 마커를 스캔함으로써 변화된 페이지들을 식별하고, 시퀀스 번호로부터 순서를 식별한다. 따라서, 재생 작업은 FIFO 큐의 최종 엔트리로의 변화를 횡단하여 L2P 테이블을 재생성한다. 대응 변화는 페이징 테이블 변화를 촉발시키는 이미 기입된 세그먼트의 마킹 정보에 의해 식별된다. 복구 프로세스는 페이징 테이블의 L2P 정보가 전력 손실 직전 지점에 재생성될 때까지 현재 컨텍스트의 각 시퀀스 번호에 대하여 계속된다.
구현에 있어서, 본 명세서에 제안되는 접근방식은 세그먼트가 오염되는 순서를 계속 파악하기 위해 FIFO 큐를 추가한다(최초-접촉(first-touch)). 오염된 세그먼트는, 큐의 꼬리부분에 들어가고, 큐의 머리부분으로부터 퇴출(evict)된다. 오염된 세그먼트는 (기존 접근방식에서의 LRU 정책 보다는) FIFO 정책에 의해 퇴출된다. 퇴출의 순서는 재생 중 페이징을 최소화하는 필요성이 동기가 된다. 또한, 세그먼트가 처음 오염될 때, 기입 스트림 위치가 기록되고 세그먼트가 페이지-아웃될 때 세그먼트 메타데이터로서 차후 저장되며, 이는 PLR 알고리즘을 돕기 위한 것이다.
PLR 알고리즘은 최종 페이지-아웃된 세그먼트(그 일련번호에 의해 식별됨)를 처음 스캔하도록 변경된다. 이러한 세그먼트는 세그먼트가 처음 오염된 때 기입-스트림 포인터의 위치를 특정한다. 개시되는 접근방식에서는, 최종 컨텍스트 저장의 위치로부터 보다는 이러한 위치로부터 재생이 시작되며, 이는 PLR-시간을 더욱 절감하기 위한 것이다. 컨텍스트는 페이징 테이블의 L2P 정보를 포함하여 안정되고 일관된 상태를 나타내는 시스템 변수의 세트를 나타낸다. 따라서, 개시되는 PLR은 정전 복구 중 요구되는 세그먼트 페이지-인 및 페이지-아웃의 수를 최소화하고 제한하여, 타겟 요건들을 충족하도록 PLR 시간을 감소시키며, L2P 페이징을 실현 가능하게 한다.
다른 구성에서, 재생은 이하 더욱 논의되는 세그먼트 페이징 액티비티(segment paging activity)의 시스템 밴드를 재생함으로써 수행된다. 또한, 대안적인 구성은, 휘발성 메모리 용량이 보다 적은 호스트 디바이스에서, 재생 중 페이지-아웃을 제거한다. 실행시간 중, 오염된(변경된) 세그먼트의 리스트를 컨텍스트 밴드에 저장함으로써 각 페이지-아웃이 동반된다. 컨텍스트 밴드는, 각 세그먼트에 대해 별도 플러시(기입)를 수행하는 것보다는, 함께 플러시된(불휘발성 메모리에 기입된) 변경된 세그먼트의 세트를 나타낸다. 재생 중, L2P만이 이러한 리스트로부터의 세그먼트에 대한 대응이 허용된다는 것을 업데이트하고, 이도 이하 더욱 논의된다.
도 1은 본 명세서의 구성에 사용하기 적합한 컴퓨팅 환경의 컨텍스트 다이어그램이다. 도 1을 참조하면, 컴퓨팅 환경(100)에서, 호스트 디바이스(110)가 사용자(112)에 응답한다. 호스트 디바이스(112)는 도시된 구성에서 대용량 스토리지 디바이스, 또는 SSD(120)에 대한 판독(114-1) 및 기입(114-2)에 관한 입력/출력(I/O) 요청(114)을 발행한다. 전형적인 구성에서, SSD는, SATA(Serial Advanced Technology Attachment) 등의 스토리지 버스 인터페이스를 사용하여, 호스트의 종래의 기계적(회전식) 디스크 드라이브를 대체하지만, Mini-SATA, SAS(Serial Attached SCSI), FC(Flip-Chip), PCI(Peripheral Component Interconnect) 기반 배치 등 기타 임의의 적합한 버스/아키텍쳐 배치일 수 있다. 응답시, 스토리지 메모리는, 본 명세서의 작업을 수행하는 사용자 애플리케이션 또는 SSD 펌웨어(140)에 통상적으로 응답하여, 페치된 페이지(115-1)를 리턴하거나 또는 기입 페이지(115-2)를 수신확인한다.
전형적인 구성에서, SSD(120)는 사실상 호스트 디바이스(110)에서 장비 베이(equipment bay)를 차지하고, 도시 목적상 분해 조립도 방식으로 도시된다. SSD(120)에서, 스토리지 메모리(122)는 불휘발성 플래시 메모리를 포함하지만, PCM(Phase Change Memory), EEPROM(Electrically Erasable Programmable Read Only Memory) 등 여러가지 명칭의 임의의 적합한 불휘발성 메모리가 채택될 수 있다. 페이징 테이블(124)은 휘발성 메모리에 저장되며, 이는 SDRAM(Synchronous Dynamic Random Access Memory) 또는 RDRAM(RAMBUS Dynamic Random Access Memory) 등 DRAM(Dynamic Random Access Memory) 또는 기타 고속 휘발성 메모리를 포함할 수 있다. 페이징 테이블(124)(L2P 테이블)은 엔트리(126)를 포함하고, 이들 각각은 불휘발성 메모리의 페이지(128)에 대한 메모리 액세스를 리다이렉트한다. 그러나, 페이징 테이블(124)의 사이즈로 인해, 페이징 테이블의 세그먼트(130)는 자체로 불휘발성 (스토리지) 메모리(122)에 스왑 아웃(swap out)될 수 있다(130'). 이러한 차이를 강조하기 위해, 페이징 테이블(124)을 참조하는 작업은 세그먼트(130)로서 나타낼 것이며, 이들 각각은 스토리지 메모리에서의 다른 페이지(128)를 가리키는 엔트리(126)를 포함한다. 시스템 소프트웨어 또는 온보드 펌웨어(140)는 스토리지 메모리로부터 페이징 테이블 세그먼트(130')를 저장하고 검색하는 명령어 및 세그먼트(130) 기입의 FIFO 큐처리(queuing)를 관리하는 명령어를 포함하며, 이는 이하 도 2에서 논의된다. 호스트(110) 관리 SSD에서, 명령어는 온보드 펌웨어(140) 보다는 호스트로부터 나온다. 스토리지 메모리(122) 및 페이징 테이블(124) 저장용 페이징 메모리로의 인터페이스는 소트프웨어/펌웨어(140) 및 PLR 로직(141)에 응답한다.
SSD(120)에서, 펌웨어(140)는 페이징 테이블(124)의 실행시간 큐처리 및 페이징을 관리하는 로직을 포함하고, 시동/복구 메커니즘을 관리하는 PLR(141) 로직을 포함하며, 이는 이하 더욱 논의된다. 페이징 테이블(124)(L2P 맵핑 정보라고도 함)은 PLR에 의해 수행되는 재생 프로세스를 거치고, 여기서 스토리지 메모리(122)에 대한 기입이 이미 이루어졌고, 페이징 테이블(124)에 반영하였지만, 스토리지 메모리(122)에 페이지(130')로서 아직 기입되지 않은 것이 재생성된다. 이하 더욱 논의되며, 페이지에서의 마커 및 페이징 테이블 세그먼트(130') 상의 시퀀스 번호(131)와 조합되는 시스템 밴드가 PLR에 의해 채택되어 페이징 테이블(124)을 전력 손실 이전 상태(pre-power loss state)로 복구하며, 이것도 이하 더욱 논의된다. 종래의 접근방식은 페이징 테이블을 스토리지 메모리(122)에 플러시하는 이전 컨텍스트 드롭으로부터 모든 시스템 밴드를 재생할 것을 요구한다. 본 명세서의 구성은 FIFO 큐를 채택하여 페이징 테이블 세그먼트(130')를 기입함으로써 재생 시간을 절감하여, 정전시 큐(142)의 페이징 테이블 세그먼트(144)에 의해 재생이 제한된다.
도 2는 도 1에서와 같은 페이징 테이블 스토리지의 블럭도이다. 도 1 및 도 2를 참조하면, SSD는 스토리지 메모리(122)에 플러시될(기입될) 페이징 테이블 세그먼트(130)를 저장하는 큐(142)를 유지한다. 펌웨어(140)는 큐 엔트리를 FIFO 순서로 기입하고, 이는 PLR 메커니즘이 세그먼트(130)를 기입된 것과 동일한 순서로 검색할 수 있게 해준다. 각 엔트리(144-1 .. 144-4)는 스토리지 메모리 내의 플러시된 세그먼트(130')에 대응한다. 일련번호(131)가 각 플러시된 세그먼트(130'-1 .. 130'-4)에 동반되어, 파워 업 (PLR) 개시시 정리된 세그먼트(ordered segments)(130) 스캔을 용이하게 한다. 이미 기입된 페이지의 마커(129)는 페이징 테이블(124)을 재생성하는 정보를 포함한다. 특정 구성에서, 세그먼트는 시스템 밴드의 그룹으로서 플러시되고, 이는 이하 더욱 논의된다.
도 3은 도 1의 환경에서 페이징 테이블(L2P) 스토리지 및 복구의 순서도이고, 본 명세서에 개시되는 작업을 수행하는 구성 예를 묘사한다. 도 1 내지 도 3을 참조하여, 단계 200에서는, 메모리 페이지 리다이렉션을 위해 페이징 테이블(124)을 갖는 SSD(120)에서, PLR(Power Loss Recovery)을 위해 페이징 테이블(124)를 유지하는 방법은, 스토리지 메모리(122)에 기입된 페이징 테이블 세그먼트(130')를 정리하는(ordering) 큐(142)를 유지하는 것을 포함한다. 스토리지 메모리(122)는, 단계 201에서 묘사되는 바와 같이, 큐(142)로부터의 페이징 테이블 세그먼트(144)를 페이징 테이블 세그먼트(130')의 기입 순서에 기초하는 대응 시퀀스 번호(131)와 함께 저장한다. 이러한 시퀀스 번호는 PLR(Power Loss Recovery) 중 페이징 테이블(124)을 재생성하기 위해 세그먼트(130')를 기입된 순서로 횡단하는데 채택된다. 정전에서와 같이, 페이징 테이블의 손상시, 펌웨어(140)는, 단계 202에 도시된 바와 같이, 시퀀스 번호(131)에 기초하여 최종 저장된 페이징 테이블 세그먼트(130'-1)(144-1로부터 기입됨)를 식별하고, 단계 203에 도시된 바와 같이, 시퀀스 번호(131)에 기초하여, 각각의 페이징 테이블 세그먼트(130)를 재생한다. 페이징 테이블이 인다이렉션을 제공하는 실제 메모리 페이지(128)는 스토리지 메모리에 이미 기입되었기 때문에, 메모리 페이지(128)의 마커(129)는, 시퀀스 번호(131)에 기초하여, 페이징 테이블(124)의 재생성을 허용하는 리다이렉션(포인터) 정보를 제공한다. 펌웨어(140)는, 단계 204에 묘사된 바와 같이, 각 페이징 테이블 세그먼트(128)와 함께 저장된 마커(129)에 기초하여, 페이징 테이블(124)을 손상 이전 상태(pre-compromise state)로 재생성한다. 페이징 테이블(124)은 실제 변경된 데이터 페이지(128)의 물리적 위치를 반영하는 페이지 맵핑, 또는 인덱스를 나타내기 때문에, 이미 저장된 페이지(128)를 추적하여 페이징 테이블(124)에 변화를 재적용(재생)함으로써 재생성이 수행된다.
성능상, 이러한 접근방식은 이하의 관점으로 인해 재생 중 페이지-아웃을 한정한다. a) 최종 페이징 테이블(124)(L2P) 세그먼트(130')가 페이지 아웃되는 것과 b) 정전 사이의 실행-시간 중 기입의 시퀀스가 고려된다. 이 기간 중의 모든 기입에 대한 페이징 테이블(124) 업데이트는 페이지-아웃을 요구하지 않고도(그렇지 않으면, (a)가 사실이 아님) 휘발성 메모리에서 이행된다. 큐(142), 및 그로 인한 페이징 테이블은, 최대 |B| 세그먼트(144)를 저장한다. 재생 중, 시스템 밴드(이하 논의됨)가 재생되어 페이징 테이블(124)을 재구성한다. 각 밴드, 및 밴드 내 대응 세그먼트는, 시퀀스 번호를 갖기 때문에 밴드가 기입된 순서를 알 수 있다. 최근 오픈된 (시스템) 밴드에서 최종 기입은 페이지 아웃된 최종 L2P 세그먼트이다(이하 도 4를 참조하여 이러한 세그먼트를 k라 함). 기입 스트림 위치가 이러한 세그먼트로부터 선택되고, 이들 위치로부터 재생이 수행된다. 실행시간 중에, 세그먼트 k가 오염되는 것과 세그먼트 k가 페이지-아웃되는 것 사이에는 최대 |B|-1 개의 페이지-아웃이 존재할 수 있다. 세그먼트 k가 페이지-아웃되는 것과 정전 사이에는 페이지-아웃이 존재하지 않는다(이는 세그먼트 k의 정의로부터 나온다). 따라서, 재생 중에는, 최대 |B|-1개의 페이지-아웃이 존재할 수 있다.
도 4는 도 3의 접근방식의 타이밍 다이어그램을 도시한다. 도 2 내지 도 4를 참조하면, 도 4는 세그먼트 큐(142) 기입 및 플러시의 타이밍을 도시한다. 상술된 바와 같이, 기입은 휘발성 메모리(124)에 대해 큐(142) 내의 세그먼트를 더하고(enqueue); 플러시는 불휘발성 메모리(122)에 대한 기입을 수행한다. L2P 세그먼트(144) 상태 변화(오염되거나, 퇴출되는 등)가 기입의 타임라인(400) 상에 표현될 수 있는 점에 주목하자. 최종 세그먼트가 페이지 아웃된 이후 오염될 수 있는 세그먼트의 수는 |B|-1이고, 여기서 |B|는 사용가능한 세그먼트 버퍼(130)의 총 수이다. 세그먼트 k가 오염되는 것과 세그먼트 k가 페이지 아웃되는 것 사이에 페이지 아웃된 세그먼트의 수는 |B|-1 이하이다. 따라서, 재생 프로세스가 세그먼트 k의 메타데이터에 저장된 위치로부터 시작하여 기입을 재생할 때, 페이지 아웃의 수는 |B|-1로 한정된다.
예를 들어, 도 1, 도 2 및 도 4를 참조하면, 410에서 세그먼트 K가 오염된다(즉, 변화가 기입된다). 144-4 등 세그먼트 K는 꼬리부분에서 큐(142)에 삽입된다. 펌웨어는 412에서 144-1 .. 144-3 등 세그먼트 K1, K2 및 K3를 페이지 아웃한다. 큐(142)의 사이즈에 따라서 기타 세그먼트(144)가 후속될 수 있다. 후속하여 세그먼트 K가 페이지 아웃되고(414), 이는 정전 이전에 페이지되는(즉, 저장된/플러시된 세그먼트(130')로서 스토리지 메모리에 기입되는) 최종 세그먼트이다. 최대 B-1 페이지-아웃(메모리(130')에 기입되는 세그먼트(130))은 416에 도시된 바와 같이, 온보드 휘발성 메모리에 의해 결정되는 페이징 테이블(124)의 사이즈에 의해 제한된다. 세그먼트(130') 기입(418)에 후속하여, 정전이 발생한다(420). 펌웨어(140)는, 426에 도시된 바와 같이, 재생 프로세스를 시작하여 정전(424)과 세그먼트 K가 오염되는 것(410) 사이에 발생하는 기입(422)을 재생한다.
종래의 구현에 비해 본 명세서에 개시되는 접근방식에 의해 제공되는 특정 특징은 본 접근방식이 재생 프로세스 중 페이지 아웃의 수에 상한을 제공한다는 점이다. 불휘발성 메모리에 대한 기입은 시간의 면에서 비용이들고 페이지-아웃은 계획되지 않은 전력 손실 복구 시간에 악영향을 주기 때문에 이는 중요한 것이다. 이러한 접근방식은 휘발성 메모리 가용성이 제한된 SSD에 대해 계획되지 않은 전력-손실로부터 한정된 복구 시간을 허용한다. 이러한 접근방식에 의하면, 컨텍스트 드롭(context drop)이 모놀리식(monolithic)이어야만 하는 것은 아니라는 점도 주목되어야 한다. 컨텍스트 드롭시에, 모든 오염된 세그먼트가 불휘발성 메모리에 플러시된다. 이는 컨텍스트 드롭을 보다 효과적이고 단순하게 해준다.
도 5는 도 4의 메모리 컴포넌트에 사용되는 시스템 및 사용자 밴드를 도시한다. 도 4 및 도 5를 참조하면, 본 명세서에 개시되는 접근방식에서, 스토리지 메모리(122)에 대한 기입 스트림은 시스템 및 사용자 기입에 대해 각각 시스템 밴드(150-1) 및 사용자 밴드(150-2)에서 발생한다. 시스템 밴드(150-1)는 현재 컨텍스트 중 스토리지 메모리(122)에 기입되는 변화를 저장한다. 컨텍스트의 종료시, 밴드는 리프레시되고(플러시되고) 새로운 컨텍스트가 시작된다. 별도 세드의 밴드(150-2)는 사용자 데이터를 위해 존재한다. 각각의 밴드(152)는 다수의 세그먼트(156-1 .. 156-N)를 포함하고, 이는 본 명세서에 개시되는 바와 같이 페이징 테이블(130') 또는 사용자 세그먼트(128)에 대응한다. 재생 프로시져는, 스토리지 메모리(122)에 대해 페이지된 최종 세그먼트(414)와 최종 오염 세그먼트(410) 사이에 발생한 기입 스트림을 식별함으로써, 시스템 밴드(150-1)로부터 시퀀스 번호(131)를 사용하여 페이징 테이블(124)을 재생성한다. 시스템 밴드(150-1) 및 사용자 밴드(150-2)는, 스토리지 메모리(122)의 시스템 영역(122-1) 및 사용자 영역(122-2)에 각각 기입할 수 있거나, 또는 혼합(commingled)될 수 있다.
도 6 내지 도 9는 본 명세서에 정의되는 바와 같은 전력 손실 및 복구 메커니즘의 순서도이다. 도 1 내지 도 9를 참조하면, 구성예에서, 메모리 페이지 리다이렉션(L2P)을 위해 페이징 테이블(124)을 갖는 대용량 스토리지 시스템에서, 본 명세서에 개시되는 바와 같이 PLR(Power Loss Recovery)를 위해 페이징 테이블을 유지하는 방법은, 단계 300에서, 스토리지 메모리(122)에 기입된 페이징 테이블 세그먼트(130)를 정리하는 FIFO 큐를 설정하는 단계를 포함한다. SSD(120)의 펌웨어(140)는, 단계 301에 묘사된 바와 같이, 페이징 테이블 세그먼트(126)에 변경이 이루어지면 페이징 테이블 세그먼트(126)를 오염된 것으로서 마킹하고, 이는 세그먼트(130)에 변화가 있었다는 것을 의미하며, 이는 페이징 테이블 세그먼트(130)에 의해 참조되는 메모리 페이지(128)에 대한 리다이렉션 포인터 엔트리(126)에서의 변화에 의해 통상적으로 초래되는 것이다. 단계 302에서는, 일반적으로 제한된 온보드 휘발성 메모리를 갖는 SSD로부터 큐(142) 스페이스가 제한되는지를 판정하기 위한 체크가 수행된다. 소용량 휘발성 메모리의 경우, 더욱 최적화가 수행되어, 단계 303에 개시되는 바와 같이, 각각의 저장된 페이징 테이블 세그먼트(130)에 대해, 페이징 테이블 세그먼트(130)에 표현되는 변경된 메모리 세그먼트(128)의 리스트를 식별함으로써, 재생 중 페이징을 더욱 절감한다. 이 리스트는 재생 중에 이용되며, 이는 아래에서 더 논의된다.
펌웨어(140)는, 단계 304에 묘사되는 바와 같이, 오염된 세그먼트(144-1 .. 144-4)를 표시된 순서로 큐에 더하여, 오염된 세그먼트에 의해 참조되는 메모리 페이지(128)가 스토리지 메모리(122)에 미리 기입된다. 구성예에서, 펌웨어(140)는, 단계 305에 도시되는 바와 같이, 세그먼트의 FIFO(First-In, First-Out) 정리(ordering)를 사용해서 큐(142)를 유지하여, 세그먼트(144)는 스토리지 메모리에 대한 L2P(Logical to Physical) 맵핑(페이징 테이블(124)에서)으로부터 페이지를 표현하고, L2P 맵핑은 호스트 컴퓨팅 디바이스(110)으로부터의 대용량 스토리지 이용을 지원한다. 펌웨어(140)는, 단계 306에 묘사되는 바와 같이, 페이징 테이블 세그먼트(130)의 기입 순서에 기초하여 대응 시퀀스 번호(131)를 갖는 큐(142)로부터 페이징 테이블 세그먼트(130')를 더 저장한다. LRU 큐잉 접근방식을 채택하는 종래의 L2P 큐잉/캐싱 접근방식과 대조적으로, FIFO 정리 및 시퀀스 번호(131)는 스토리지 메모리(122)에 세그먼트(130')가 기입된 순서를 사용하여 재생이 수행될 수 있게 한다.
구성예에서, 구현은, 단계 307에 개시되는 바와 같이, 사용자 기입 스트림(150-2) 및 시스템 기입 스트림(150-1)을 포함하고, 시스템 기입 스트림은 페이징 테이블(124) 관리 등 시스템 개시 태스크에 대응하고, 페이징 테이블 세그먼트(130)는 시스템 기입 스트림(150-1)을 사용하여 저장되고 시스템 밴드에서 식별되며, 각 밴드는 복수의 페이징 테이블 세그먼트(144'-1 .. 144'-N)을 나타낸다.
본 명세서에 개시되는 구성에서, 큐(142)를 유지하는 것은, 단계 308에 묘사되는 바와 같이, 페이징 메모리 영역(124)(휘발성 메모리)에 페이징 테이블 세그먼트(130)를 저장하는 것, 및 큐(142)에 기초하여 페이징 메모리 영역으로부터의 큐처리된 페이징 테이블 세그먼트(144)를 기입하는 것을 더 포함하고, 스토리지 메모리(122)는 지속적인 불휘발성 메모리이고 전원과는 독립된 것이다. 따라서, 큐(142)는, 단계 309에 묘사되는 바와 같이, 휘발성 메모리에서 페이징 메모리 영역에 페이징 테이블(124)의 적어도 일부를 저장하는 것, 및 단계 310에 도시되는 바와 같이, 스토리지 메모리(122)에 페이징 테이블의 적어도 일부를 저장하는 것을 제공하는, 페이징 테이블(124)에 대한 페이징/스와핑을 제공한다.
펌웨어(140)는 정상 작업 중 큐(142)에서의 순서에 기초하여 페이징 테이블 세그먼트(144)를 기입하여, 전력 손실 복구는 큐(142)에 표현되는 세그먼트(144)의 수로 제한된다. 따라서, 단계 311에 묘사되는 바와 같이, PLR 성능의 최악의 경우 분석은 휘발성 메모리 및/또는 대응 큐(142)의 한계에 의해 평가될 수 있다.
나중에, 전력 손실 또는 기타 이벤트가 휘발성 메모리의 손실을 초래한다. 따라서, 페이징 테이블(124)의 손상시, 펌웨어(140)는, 단계 312에 도시되는 바와 같이, 시퀀스 번호(131)에 기초하여 최종 저장된 페이징 테이블 세그먼트(130')를 식별한다. 손상을 검출하는 것은, 단계 313에 개시되는 바와 같이, 전력 손실을 식별하는 것을 더욱 포함할 수 있어, 전력 손실은 재시작시 PLR(Power Loss Recovery)를 불러오고, PLR 메커니즘은 스토리지 메모리(122)에 대한 최근 변경을 저장하고 있는 시스템 밴드(150-1)를 식별한다. 펌웨어(140)에서의 PLR(141) 명령어에 기초하여, PLR은, 단계 314에 묘사되는 바와 같이, 시퀀스 번호(131)에 기초하여, 페이징 테이블 세그먼트 각각을 재생하여 페이징 테이블(124)을 재생성한다. 단계 315에 개시되는 바와 같이, PLR(141) 재생은 저장된 시퀀스 번호(131)를 횡단하여 스토리지 메모리에 기입된 페이지의 순서를 식별하며, 세그먼트는 변화를 나타내는 마커(129)를 포함한다.
PLR(141)은, 단계 316에 묘사되는 바와 같이, 손상 이전에 기입된 최종 페이징 테이블 세그먼트(144)로부터 변경된 세그먼트의 재생을 시작하고, 단계 317에 묘사되는 바와 같이, 각 페이징 테이블 세그먼트와 함께 저장된 마커(129)에 기초하여, 페이징 테이블을 손상 이전 상태로 재생성한다. 이는, 단계 318에 도시되는 바와 같이, 큐(142)로부터 스토리지 메모리(122)에 기입된 최종 페이징 테이블 세그먼트(130')를 스캔하고, 단계 319에 묘사되는 바와 같이, 시퀀스 번호(131)에 기초하여 연속적인 페이징 테이블 세그먼트(130)를 식별하는 것을 포함한다. PLR(141)은, 단계 320에 도시되는 바와 같이, 페이징 테이블 세그먼트와 함께 저장된 마커(129)로부터, 손상시 손실된 페이징 테이블(124)에 대한 변경을 판정한다.
이러한 스킴 외에도, 휘발성 메모리 용량이 보다 적은 디바이스에 대해 특히, 재생 중 페이지-아웃을 제거하려는 노력이 계속된다. 실행시간 중, 각 페이지-아웃은 오염된 세그먼트의 리스트를 컨텍스트 밴드에 드롭함으로써 동반된다. 재생 중, 이러한 리스트로부터의 세그먼트에 대응하는 L2P 업데이트만이 허용된다. 다른 업데이트는 세그먼트 k가 오염되는 것과 세그먼트 k가 페이지아웃되는 것 사이의 기간에 페이지 아웃된 세그먼트에 대응하여야 하고, 이러한 업데이트는 불필요하게 된다. 본 접근방식의 불리한 면은, 오염된 세그먼트의 리스트의 사이즈가 가용 세그먼트의 수에 따라 커지고, 보다 큰 휘발성 메모리 용량에 대해 오버헤드가 너무 클 수 있다는 점이다.
따라서, 단계 321에서는, 단계 302에서의 체크를 보완하는 체크가 수행된다. 소용량 휘발성 메모리 구현을 마주치게 되면, PLR(141)은, 단계 324에 묘사되는 바와 같이, 재생 중, 변경된 메모리 세그먼트의 리스트를 횡단하고, 단계 325에 도시되는 바와 같이, 변경된 메모리 세그먼트에 속하는 맵핑 정보만을 사용하여 페이징 테이블(124)을 재생성한다.
그렇지 않으면, 단계 322에 도시되는 바와 같이, 오염된 세그먼트(144)에 대해서만 시동시 PLR(141)을 시작하고, 단계 323에 묘사되는 바와 같이, 미리 기입된 페이징 테이블 세그먼트(130')를 나타내는 시스템 밴드로부터 마커 정보(129)를 복구한다.
이 기술분야의 통상의 기술자는 본 명세서에 정의되는 프로그램 및 방법이 a) ROM 디바이스 등 기입-불가능한 스토리지 매체에 영구적으로 저장되는 정보, b) 플로피 디스크, 자기 테이프, CD, RAM 디바이스 및 기타 자기 및 광 매체 등 기입가능한 비일시적 스토리지 매체에 변경할 수 있게 저장된 정보, 또는 c) 인터넷 또는 전화 모뎀 라인 등 전자적 네트워크에서와 같이 통신 매체를 통해 컴퓨터에 전달되는 정보를 포함한(이에 제한되지 않음) 다양한 형태로 컴퓨터 프로세싱 및 렌더링 디바이스에 전달될 수 있다는 점을 쉽게 이해할 것이다. 이러한 작업 및 방법은 소프트웨어 실행가능 오브젝트로 또는 명령어에 응답하여 프로세서에 의한 실행을 위한 인코드된 명령어의 세트로서 구현될 수 있다. 대안적으로, 본 명세서에 개시되는 작업 및 방법은, ASIC(Application Specific Integrated Circuits), FPGA(Field Programmable Gate Array), 상태 머신(state machines), 컨트롤러 또는 기타 하드웨어 컴포넌트나 디바이스 등의 하드웨어 컴포넌트, 또는 하드웨어, 소프트웨어 및 펌웨어 컴포넌트의 조합을 사용하여 전체적으로 또는 부분적으로 구현될 수 있다.
본 명세서에 정의되는 시스템 및 방법이 그 실시예를 참조하여 특정하게 도시되고 설명되었지만, 이 기술분야의 통상의 기술자들에게는 첨부된 특허청구범위에 의해 포함되는 본 발명의 범위를 벗어나지 않고도 형태 및 상세에 있어서 다양한 변경이 이루어질 수 있다는 점이 이해될 것이다.
Claims (21)
- 데이터를 저장하는 방법으로서,
페이징 테이블로부터 불휘발성 메모리에 기입된 페이징 테이블 세그먼트들의 시퀀스(a sequence of paging table segments)를 식별하는 단계- 상기 페이징 테이블은 가상 참조(virtual reference)를 상기 불휘발성 메모리에서의 물리적 위치(physical location)로 전환함 -;
상기 식별된 시퀀스를 세그먼트들에 대한 포인터들의 FIFO(First-In, First-Out) 정리(ordering)를 사용하여 큐(queue)에 유지하는 단계 - 상기 세그먼트들은 상기 불휘발성 메모리에 대한 L2P(Logical to Physical) 맵핑으로부터의 페이지들을 나타내며, 상기 L2P 맵핑은 호스트 컴퓨팅 디바이스로부터의 대용량 스토리지 이용을 지원함 -;
각각의 페이징 테이블 세그먼트에 대해, 기입된 순서에 대응하는 시퀀스 번호(sequence number) 및 해당 세그먼트에서의 변화들에 대응하는 적어도 하나의 마커(marker)를 저장하는 단계; 및
상기 페이징 테이블의 적어도 일부의 손상(compromise)의 검출시, 상기 저장된 마커들로부터 상기 변화들을 재생(replaying)하고 상기 손상된 페이징 테이블 세그먼트들을 재건(regenerating)함으로써 상기 식별된 시퀀스에 대응하는 페이징 테이블 세그먼트들을 재생성(recreating)하는 단계
를 포함하고,
상기 재생 단계는,
상기 저장된 시퀀스 번호들을 횡단(traverse)하여 상기 불휘발성 메모리에 기입된 페이지들의 순서(ordering of pages)를 식별하는 단계 - 상기 세그먼트들은 변화들을 나타내는 마커들을 포함함 -, 및
시퀀스 번호에 의해 식별되는 최종 페이지-아웃된(paged-out) 세그먼트를 스캔함으로써 상기 손상 이전에 기입된 최종 페이징 테이블 세그먼트로부터 변화된 세그먼트들의 재생을 시작하는 단계를 더 포함하고, 상기 최종 페이지-아웃된 세그먼트는 상기 세그먼트가 처음 변경될 때 기입 스트림 포인터들의 위치들을 지정하고, 이 세그먼트로부터 재생을 시작하는, 방법. - 삭제
- 제1항에 있어서,
상기 재생성 단계는,
상기 큐로부터 상기 불휘발성 메모리에 기입된 최종 페이징 테이블 세그먼트를 스캔하는 단계;
상기 시퀀스 번호들에 기초하여 연속적인 페이징 테이블 세그먼트들을 식별하는 단계; 및
상기 페이징 테이블 세그먼트들과 함께 저장된 마커들로부터, 상기 손상시 손실된 상기 페이징 테이블에 대한 변화들을 판정하는 단계를 더 포함하는, 방법. - 삭제
- L2P(Logical to Physical) 맵핑 테이블을 저장하는 방법을 수행하는 명령어들이 인코드된 적어도 하나의 비일시적 컴퓨터 판독가능 매체로서,
상기 명령어들은 호스트 컴퓨팅 디바이스 상에서 실행시 상기 컴퓨팅 디바이스로 하여금:
불휘발성 메모리에 기입된 페이징 테이블의 세그먼트들을 정리하는(ordering) 큐를 유지하고 - 상기 페이징 테이블은 PLR(Power Loss Recovery)을 예상하고 메모리 페이지 리다이렉션(redirection)을 위한 것임 -, 세그먼트들에 대한 포인터들의 FIFO(First-In, First-Out) 정리를 사용하여 큐를 포함하여 식별된 시퀀스를 유지하는 단계 - 상기 세그먼트들은 상기 불휘발성 메모리에 대한 L2P(Logical to Physical) 맵핑으로부터의 페이지들을 나타내며, 상기 L2P 맵핑은 호스트 컴퓨팅 디바이스로부터의 대용량 스토리지 이용을 지원함 -;
상기 큐로부터의 페이징 테이블 세그먼트들을 상기 페이징 테이블 세그먼트들의 기입 순서에 기초하는 대응 시퀀스 번호와 함께 저장하는 단계;
상기 페이징 테이블의 손상시, 상기 시퀀스 번호에 기초하여 최종 저장된 페이징 테이블 세그먼트를 식별하는 단계;
상기 시퀀스 번호들에 기초하여, 상기 페이징 테이블 세그먼트들 각각을 재생하는 단계; 및
각각의 페이징 테이블 세그먼트와 함께 저장된 마커들에 기초하여, 상기 페이징 테이블을 손상 이전 상태(pre-compromise state)로 재생성하는 단계
를 포함하는 방법을 수행하게 하고,
상기 재생 단계는,
상기 저장된 시퀀스 번호들을 횡단하여 상기 불휘발성 메모리에 기입된 페이지들의 순서를 식별하는 단계 - 상기 세그먼트들은 변화들을 나타내는 마커들을 포함함 -, 및
시퀀스 번호에 의해 식별되는 최종 페이지-아웃된 세그먼트를 스캔함으로써 상기 손상 이전에 기입된 최종 페이징 테이블 세그먼트로부터 변화된 세그먼트들의 재생을 시작하는 단계를 더 포함하고, 상기 최종 페이지-아웃된 세그먼트는 상기 세그먼트가 처음 변경될 때 기입 스트림 포인터들의 위치들을 지정하고, 이 세그먼트로부터 재생을 시작하는, 비일시적 컴퓨터 판독가능 매체. - 제5항에 있어서,
상기 방법은, 상기 식별된 시퀀스를 세그먼트들의 FIFO(First-In, First-Out) 정리를 사용하여 큐에 유지하는 단계를 더 포함하고, 상기 세그먼트들은 상기 불휘발성 메모리에 대한 L2P(Logical to Physical) 맵핑으로부터의 페이지들을 나타내며, 상기 L2P 맵핑은 호스트 컴퓨팅 디바이스로부터의 대용량 스토리지 이용을 지원하는, 비일시적 컴퓨터 판독가능 매체. - 제5항에 있어서,
상기 재생성 단계는,
상기 불휘발성 메모리에 기입된 최종 페이징 테이블 세그먼트를 스캔하는 단계;
상기 시퀀스 번호들에 기초하여 연속적인 페이징 테이블 세그먼트들을 식별하는 단계; 및
상기 페이징 테이블 세그먼트들과 함께 저장된 마커들로부터, 상기 손상시 손실된 상기 페이징 테이블에 대한 변화들을 판정하는 단계를 더 포함하는, 비일시적 컴퓨터 판독가능 매체. - 제7항에 있어서,
상기 재생은 상기 저장된 시퀀스 번호들을 횡단하여 상기 불휘발성 메모리에 기입된 페이지들의 순서를 식별하고, 상기 세그먼트들은 변화들을 나타내는 마커들을 포함하며,
상기 손상 이전에 기입된 최종 페이징 테이블 세그먼트로부터 변화된 세그먼트들의 재생을 시작하는, 비일시적 컴퓨터 판독가능 매체. - 제5항에 있어서,
상기 손상을 검출하는 단계는 전력 손실을 식별하는 단계를 더 포함하고, 상기 전력 손실은 재시작시 PLR(Power Loss Recovery)을 불러오고(invoke), 상기 PLR은 상기 불휘발성 메모리에 대한 최근 변화들을 저장하고 있는 시스템 밴드(system band)들을 식별하는, 비일시적 컴퓨터 판독가능 매체. - 제5항에 있어서,
상기 방법은, 사용자 기입 스트림 및 시스템 기입 스트림을 기입하는 단계를 더 포함하고, 상기 시스템 기입 스트림은 시스템 개시 태스크들에 대응하고, 상기 페이징 테이블 세그먼트들은 상기 시스템 기입 스트림을 사용하여 저장되며 시스템 밴드들에서 식별되고, 각각의 밴드는 복수의 페이징 테이블 세그먼트를 나타내는, 비일시적 컴퓨터 판독가능 매체. - 제5항에 있어서,
상기 큐를 유지하는 단계는,
상기 페이징 테이블 세그먼트들을 페이징 메모리 영역에 저장하는 단계, 및 상기 큐에 기초하여 상기 페이징 메모리 영역으로부터 상기 페이징 테이블 세그먼트들을 기입하는 단계를 더 포함하고, 상기 불휘발성 메모리는 지속적이고 전원과는 독립적인, 비일시적 컴퓨터 판독가능 매체. - 제11항에 있어서,
상기 큐를 유지하는 단계는,
상기 페이징 테이블의 적어도 일부를 상기 페이징 메모리 영역에 저장하는 단계;
상기 페이징 테이블의 적어도 일부를 상기 불휘발성 메모리에 저장하는 단계; 및
상기 페이징 테이블 세그먼트들을 상기 큐에서의 순서에 기초하여 기입하는 단계를 더 포함하고, 상기 PLR(Power Loss Recovery)는 상기 큐에서의 세그먼트 수에 의해 제한되는, 비일시적 컴퓨터 판독가능 매체. - 제5항에 있어서,
상기 큐를 유지하는 단계는,
페이징 테이블 세그먼트에 대해 변경이 이루어지면 해당 페이징 테이블 세그먼트를 오염된 것으로서 마킹(marking)하는 단계;
오염된 세그먼트들을 마킹된 순서로 큐에 더하여(enqueuing), 상기 오염된 세그먼트에 의해 참조되는 메모리 페이지가 상기 불휘발성 메모리에 미리 기입되도록 하는 단계;
상기 오염된 세그먼트들에 대해서만 시동시 PLR을 시작하는 단계; 및
이미 기입된 페이징 테이블 세그먼트를 나타내는 시스템 밴드들로부터 마커 정보를 복구하는 단계를 더 포함하는, 비일시적 컴퓨터 판독가능 매체. - 제5항에 있어서,
재생중 페이징을 절감하는 단계를 더 포함하고,
각각의 저장된 페이징 테이블 세그먼트에 대해, 해당 페이징 테이블 세그먼트에 표현되는 변경된 메모리 세그먼트들의 리스트를 식별하는 단계;
재생중, 상기 변경된 메모리 세그먼트들의 리스트를 횡단하는 단계; 및
상기 변경된 메모리 세그먼트들에 관계된 맵핑 정보만을 사용하여 상기 페이징 테이블을 재생성하는 단계를 더 포함하는, 비일시적 컴퓨터 판독가능 매체. - 데이터를 저장하는 컴퓨팅 장치로서,
PLR(Power Loss Recovery)을 예상하고 메모리 페이지 리다이렉션을 위한 페이징 테이블을 저장하는 페이징 메모리;
불휘발성 메모리에 기입되는 상기 페이징 테이블의 세그먼트들을 정리하는 큐 - 상기 큐는 세그먼트들에 대한 포인터들의 FIFO(First-In, First-Out) 정리를 사용하고, 상기 큐는 식별된 시퀀스를 유지하고, 상기 세그먼트들은 상기 불휘발성 메모리에 대한 L2P(Logical to Physical) 맵핑으로부터의 페이지들을 나타내며, 상기 L2P 맵핑은 호스트 컴퓨팅 디바이스로부터의 대용량 스토리지 이용을 지원함 -;
상기 큐로부터의 페이징 테이블 세그먼트들을 상기 페이징 테이블 세그먼트들의 기입 순서에 기초하는 대응 시퀀스 번호와 함께 저장하는 스토리지 로직;
상기 페이징 테이블의 손상시, 상기 시퀀스 번호에 기초하여 최종 저장된 페이징 테이블 세그먼트를 식별하는 전력 손실 복구(PLR) 로직;
상기 시퀀스 번호들에 기초하여, 상기 페이징 테이블 세그먼트들 각각을 재생하는 상기 불휘발성 메모리로의 인터페이스; 및
각 페이징 테이블 세그먼트와 함께 저장된 마커들에 기초하여, 상기 페이징 테이블을 손상 이전 상태로 재생성하는 상기 페이징 메모리로의 인터페이스
를 포함하고,
상기 인터페이스들은,
상기 저장된 시퀀스 번호들을 횡단하여 상기 불휘발성 메모리에 기입된 페이지들의 순서를 식별하고 - 상기 세그먼트들은 변화들을 나타내는 마커들을 포함함 -,
시퀀스 번호에 의해 식별되는 최종 페이지-아웃된 세그먼트를 스캔함으로써 상기 손상 이전에 기입된 최종 페이징 테이블 세그먼트로부터 변화된 세그먼트들의 재생을 시작하도록 구성되고, 상기 최종 페이지-아웃된 세그먼트는 상기 세그먼트가 처음 변경될 때 기입 스트림 포인터들의 위치들을 지정하고, 이 세그먼트로부터 재생을 시작하는, 컴퓨팅 장치. - 삭제
- 제15항에 있어서,
사용자 기입 스트림 및 시스템 기입 스트림을 더 포함하고, 상기 시스템 기입 스트림은 시스템 개시 태스크들에 대응하고, 상기 페이징 테이블 세그먼트들은 상기 시스템 기입 스트림을 사용하여 저장되며 시스템 밴드들에서 식별되고, 각각의 밴드는 복수의 페이징 테이블 세그먼트를 나타내는, 컴퓨팅 장치. - 제15항에 있어서,
상기 스토리지 로직은, 상기 페이징 테이블 세그먼트들을 페이징 메모리 영역에 저장하고, 상기 큐에 기초하여 상기 페이징 메모리 영역으로부터 상기 페이징 테이블 세그먼트들을 기입함으로써 상기 큐를 유지하고, 상기 불휘발성 메모리는 지속적이고 전원과는 독립적인, 컴퓨팅 장치. - 제18항에 있어서,
상기 스토리지 로직은,
상기 페이징 테이블의 적어도 일부를 상기 페이징 메모리 영역에 저장하고;
상기 페이징 테이블의 적어도 일부를 상기 불휘발성 메모리에 저장하며;
상기 페이징 테이블 세그먼트들을 상기 큐에서의 순서에 기초하여 기입하도록 더욱 구성되고, 상기 전력 손실 복구는 상기 큐에서의 세그먼트 수에 의해 제한되는, 컴퓨팅 장치. - 제15항에 있어서,
상기 페이징 테이블 세그먼트들은 마커들을 더 포함하고, 상기 전력 손실 복구(PLR) 로직은 상기 저장된 시퀀스 번호들을 횡단하여 상기 불휘발성 메모리에 기입된 페이지들의 순서를 식별하고, 상기 세그먼트들은 변화들을 나타내는 마커들을 포함하며, 상기 전력 손실 복구(PLR) 로직은 상기 손상 이전에 기입된 최종 페이징 테이블 세그먼트로부터 변화된 세그먼트들의 재생을 시작하는, 컴퓨팅 장치. - 제1항에 있어서,
상기 식별된 시퀀스를 유지하는 단계는 FIFO 정책을 이용한 퇴출(eviction)을 위해, 세그먼트들이 변경되는 순서를 계속 파악하기 위한 FIFO 큐를 포함하는, 방법.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/537,377 US9037820B2 (en) | 2012-06-29 | 2012-06-29 | Optimized context drop for a solid state drive (SSD) |
US13/537,377 | 2012-06-29 | ||
PCT/US2013/047992 WO2014004731A1 (en) | 2012-06-29 | 2013-06-26 | Optimized context drop for a solid state drive (ssd) |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20150035560A KR20150035560A (ko) | 2015-04-06 |
KR101702201B1 true KR101702201B1 (ko) | 2017-02-03 |
Family
ID=49779426
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020147033549A KR101702201B1 (ko) | 2012-06-29 | 2013-06-26 | 솔리드 스테이트 드라이브(ssd)에 대한 최적화된 컨텍스트 드롭 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9037820B2 (ko) |
KR (1) | KR101702201B1 (ko) |
CN (1) | CN104350477B (ko) |
BR (1) | BR112014029956B1 (ko) |
WO (1) | WO2014004731A1 (ko) |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2742429A4 (en) | 2011-08-09 | 2015-03-25 | Lsi Corp | I / O DEVICE AND INTERACTION WITH DATA PROCESSING HOST |
US9037820B2 (en) | 2012-06-29 | 2015-05-19 | Intel Corporation | Optimized context drop for a solid state drive (SSD) |
US9141505B1 (en) * | 2012-09-27 | 2015-09-22 | Emc Corporation | Adaptive failure survivability in a storage system using save time and data transfer after power loss |
TWI596612B (zh) * | 2015-12-04 | 2017-08-21 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 |
US9432183B1 (en) * | 2015-12-08 | 2016-08-30 | International Business Machines Corporation | Encrypted data exchange between computer systems |
CN106873901B (zh) * | 2015-12-11 | 2020-02-07 | 群联电子股份有限公司 | 存储器管理方法、存储器控制电路单元与存储器存储装置 |
US9746895B2 (en) * | 2016-01-22 | 2017-08-29 | Microsoft Technology Licensing, Llc | Use of volatile memory as non-volatile memory |
US10157004B2 (en) * | 2016-04-14 | 2018-12-18 | Sandisk Technologies Llc | Storage system and method for recovering data corrupted in a host memory buffer |
US9940261B2 (en) | 2016-05-05 | 2018-04-10 | Western Digital Technology, Inc. | Zoning of logical to physical data address translation tables with parallelized log list replay |
US9946489B2 (en) | 2016-07-27 | 2018-04-17 | Western Digital Technologies, Inc. | Multi-stream journaled replay |
KR102707003B1 (ko) | 2016-08-25 | 2024-09-19 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
US10031689B2 (en) | 2016-09-15 | 2018-07-24 | Western Digital Technologies, Inc. | Stream management for storage devices |
US10409494B2 (en) * | 2017-01-27 | 2019-09-10 | Wyse Technology L.L.C. | Enabling redirection of mass storage devices of any interface |
US10261721B2 (en) | 2017-05-05 | 2019-04-16 | Macronix International Co., Ltd. | Memory system and operating method thereof |
US11221956B2 (en) * | 2017-05-31 | 2022-01-11 | Seagate Technology Llc | Hybrid storage device with three-level memory mapping |
US10635331B2 (en) | 2017-07-05 | 2020-04-28 | Western Digital Technologies, Inc. | Distribution of logical-to-physical address entries across bank groups |
US10732864B2 (en) | 2017-08-02 | 2020-08-04 | Western Digital Technologies, Inc. | Internal power analyzer for data storage device |
CN107577551A (zh) * | 2017-09-06 | 2018-01-12 | 郑州云海信息技术有限公司 | 一种固态硬盘写失败处理方法及系统 |
US11579789B2 (en) | 2017-09-29 | 2023-02-14 | Apple Inc. | Techniques for managing context information for a storage device |
US11163679B2 (en) * | 2018-04-04 | 2021-11-02 | SK Hynix Inc. | Garbage collection strategy for memory system and method of executing such garbage collection |
US10496334B2 (en) | 2018-05-04 | 2019-12-03 | Western Digital Technologies, Inc. | Solid state drive using two-level indirection architecture |
CN110471788B (zh) * | 2018-05-08 | 2024-03-15 | 美光科技公司 | 异步功率损耗影响的数据结构 |
US10636495B2 (en) | 2018-06-12 | 2020-04-28 | Western Digital Technologies, Inc. | Adjustable read retry order based on decoding success trend |
US11126368B2 (en) * | 2019-04-30 | 2021-09-21 | Western Digital Technologies, Inc. | Systems and methods for finding a last good page in NAND open block |
US10860221B1 (en) * | 2019-07-05 | 2020-12-08 | EMC IP Holding Company LLC | Page write to non-volatile data storage with failure recovery |
CN110517002B (zh) * | 2019-08-29 | 2022-11-15 | 烟台大学 | 基于强化学习的生产控制方法 |
US11416144B2 (en) | 2019-12-12 | 2022-08-16 | Pure Storage, Inc. | Dynamic use of segment or zone power loss protection in a flash device |
US11704192B2 (en) | 2019-12-12 | 2023-07-18 | Pure Storage, Inc. | Budgeting open blocks based on power loss protection |
US11620234B2 (en) | 2020-06-29 | 2023-04-04 | Western Digital Technologies, Inc. | Operation-deterministic write operations for data recovery and integrity checks |
US11782831B2 (en) * | 2021-09-01 | 2023-10-10 | Micron Technology, Inc. | Managing power loss in a memory device |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6189074B1 (en) * | 1997-03-19 | 2001-02-13 | Advanced Micro Devices, Inc. | Mechanism for storing system level attributes in a translation lookaside buffer |
US20050240531A1 (en) * | 2004-04-23 | 2005-10-27 | Wolff Gregory J Jr | System and method for the efficient exchange and pricing of services and intangible works |
US20060136685A1 (en) * | 2004-12-17 | 2006-06-22 | Sanrad Ltd. | Method and system to maintain data consistency over an internet small computer system interface (iSCSI) network |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7321951B2 (en) | 2003-11-17 | 2008-01-22 | Micron Technology, Inc. | Method for testing flash memory power loss recovery |
US7613894B2 (en) | 2005-09-02 | 2009-11-03 | Hong Yu Wang | Power loss recovery in non-volatile memory |
DE602006008598D1 (de) * | 2006-06-29 | 2009-10-01 | Incard Sa | Transaktionsverfahren zur Speicherverwaltung von persistenten Daten in einem Transaktionstapel |
US7941692B2 (en) | 2007-12-31 | 2011-05-10 | Intel Corporation | NAND power fail recovery |
US8572309B2 (en) * | 2009-03-12 | 2013-10-29 | Marvell World Trade Ltd. | Apparatus and method to protect metadata against unexpected power down |
US8612666B2 (en) | 2009-06-30 | 2013-12-17 | Intel Corporation | Method and system for managing a NAND flash memory by paging segments of a logical to physical address map to a non-volatile memory |
US8990476B2 (en) * | 2009-10-01 | 2015-03-24 | Micron Technology, Inc. | Power interrupt management |
US8886870B2 (en) | 2010-05-25 | 2014-11-11 | Marvell World Trade Ltd. | Memory access table saving and restoring system and methods |
US9037820B2 (en) | 2012-06-29 | 2015-05-19 | Intel Corporation | Optimized context drop for a solid state drive (SSD) |
-
2012
- 2012-06-29 US US13/537,377 patent/US9037820B2/en not_active Expired - Fee Related
-
2013
- 2013-06-26 KR KR1020147033549A patent/KR101702201B1/ko active IP Right Grant
- 2013-06-26 CN CN201380027956.4A patent/CN104350477B/zh active Active
- 2013-06-26 WO PCT/US2013/047992 patent/WO2014004731A1/en active Application Filing
- 2013-06-26 BR BR112014029956-0A patent/BR112014029956B1/pt active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6189074B1 (en) * | 1997-03-19 | 2001-02-13 | Advanced Micro Devices, Inc. | Mechanism for storing system level attributes in a translation lookaside buffer |
US20050240531A1 (en) * | 2004-04-23 | 2005-10-27 | Wolff Gregory J Jr | System and method for the efficient exchange and pricing of services and intangible works |
US20060136685A1 (en) * | 2004-12-17 | 2006-06-22 | Sanrad Ltd. | Method and system to maintain data consistency over an internet small computer system interface (iSCSI) network |
Also Published As
Publication number | Publication date |
---|---|
US9037820B2 (en) | 2015-05-19 |
US20140006683A1 (en) | 2014-01-02 |
BR112014029956A2 (pt) | 2017-06-27 |
WO2014004731A1 (en) | 2014-01-03 |
CN104350477A (zh) | 2015-02-11 |
KR20150035560A (ko) | 2015-04-06 |
BR112014029956B1 (pt) | 2022-02-08 |
CN104350477B (zh) | 2017-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101702201B1 (ko) | 솔리드 스테이트 드라이브(ssd)에 대한 최적화된 컨텍스트 드롭 | |
US8327076B2 (en) | Systems and methods of tiered caching | |
US20200034304A1 (en) | Techniques to perform power fail-safe caching without atomic metadata | |
US10776153B2 (en) | Information processing device and system capable of preventing loss of user data | |
US8214581B2 (en) | System and method for cache synchronization | |
US8065472B2 (en) | System and method for improving data integrity and memory performance using non-volatile media | |
JP5254031B2 (ja) | メモリの書き込み及び損耗性能の最適化 | |
US20180107601A1 (en) | Cache architecture and algorithms for hybrid object storage devices | |
JP2009181314A (ja) | 情報記録装置およびその制御方法 | |
JP2009048613A (ja) | ソリッドステートメモリ、それを含むコンピュータシステム及びその動作方法 | |
US8862819B2 (en) | Log structure array | |
US9514052B2 (en) | Write-through-and-back-cache | |
US9471252B2 (en) | Use of flash cache to improve tiered migration performance | |
US8938641B2 (en) | Method and apparatus for synchronizing storage volumes | |
KR102152724B1 (ko) | 감시 시스템의 영상 관리 장치 및 방법 | |
US20090138657A1 (en) | Data backup system for logical volume manager and method thereof | |
JP2004157859A (ja) | データストレージ装置及びデータストレージ方法 |
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 | ||
FPAY | Annual fee payment |
Payment date: 20200103 Year of fee payment: 4 |