KR20140147017A - 라이트 백 캐싱 환경에서 예상하지 못한 셧다운으로부터 복구하기 위한 시스템 및 방법 - Google Patents

라이트 백 캐싱 환경에서 예상하지 못한 셧다운으로부터 복구하기 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20140147017A
KR20140147017A KR1020140070225A KR20140070225A KR20140147017A KR 20140147017 A KR20140147017 A KR 20140147017A KR 1020140070225 A KR1020140070225 A KR 1020140070225A KR 20140070225 A KR20140070225 A KR 20140070225A KR 20140147017 A KR20140147017 A KR 20140147017A
Authority
KR
South Korea
Prior art keywords
mapping table
caching
lba mapping
lba
caching device
Prior art date
Application number
KR1020140070225A
Other languages
English (en)
Inventor
프라딥 비시트
카시프 메몬
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Publication of KR20140147017A publication Critical patent/KR20140147017A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering

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)
  • Stored Programmes (AREA)

Abstract

본 발명은 라이트 백 캐싱 환경에서 예상하지 못한 셧다운으로부터 복구를 제공한다. 본 발명은 캐싱 장치에 논리적 블록 어드레스(LBA) 매핑 테이블을 저장하는 것을 포함한다. LBA 매핑 테이블은 타겟 저장 장치의 논리적 블록 어드레스들을 캐싱 장치의 논리적 블록 어드레스들로 매핑한다. 추가로, LBA 매핑 테이블 변경 로그는 캐싱 장치에 유지된다. LBA 매핑 테이블 변경 로그는 LBA 매핑 테이블이 캐싱 장치에 마지막에 쓰여진 후, LBA 매핑 테이블에 대한 변화들을 포함한다. 예상하지 못한 셧다운 이후의 스타트업 동안, 예상하지 못한 셧다운은 캐싱 장치에 저장된 헤더를 이용하여 검출한다. 다른 데이터 중에서, 헤더는 클린 셧다운이 발생했는지를 나타내는 지시자를 포함한다. 예상하지 못한 셧다운이 검출되면, 복구된 LBA 매핑 테이블은 캐싱 장치에 저장된 LBA 매핑 테이블과 LBA 매핑 테이블 변경 로그에 근거하여 생성된다.

Description

라이트 백 캐싱 환경에서 예상하지 못한 셧다운으로부터 복구하기 위한 시스템 및 방법{SYSTEM AND METHOD FOR RECOVERING FROM AN UNEXPECTED SHUTDOWN IN A WRITE-BACK CACHING ENVIRONMENT}
본 발명은 캐싱 환경에서 예상하지 못한 전력 손실로부터의 복구를 위한 것으로, 특히 소프트웨어 유일 라이트 백 캐싱 환경에서 예상하지 못한 전력 손실로부터 복구를 위한 것이다.
캐싱은 저속 메모리 장치들의 성능을 향상시키기 위해 저장 환경들에서 오랫동안 사용되었다. 캐싱에서, 작고 빠른 저장 매체는 빈번하게 사용된 데이터를 일시적으로 저장 및 검색하기 위해 이용되고, 반면에 크고 일반적으로 느린 대용량 저장 매체는 데이터의 장기간 저장을 위해 사용된다. 하나의 캐싱 방법론으로 일반적으로 캐시 내 데이터 양이 임의의 임계값에 도달되거나 시간 허용치에 도달될 때 디스크에 쓰여지는 데이터는 우선 캐시에 저장된 후, 이후에 대용량 저장 장치로 쓰여지는 라이트 백 캐싱이 있다.
도 1은 종래기술에 따른 라이트 백 캐싱 기능을 갖는 컴퓨터 시스템을 예시적으로 도시한 도면이다.
도 1을 참조하면, 예시적인 기존의 컴퓨터 시스템(100)은 시스템 메모리와 통신하는 중앙 처리 장치(Central Processing Unit, 이하 ‘CPU’라 칭하기로 함)(102), 캐싱 장치(106), 및 타겟 저장 장치(108)를 포함한다. 추가로, 컴퓨터 시스템(100)에서 라이트 백 캐싱 기능을 용이하게 하는 캐싱 소프트웨어(110)가 시스템 메모리 내에 로드된다.
앞서 언급된 바와 같이, 캐싱 장치(106)는 일반적으로 타겟 저장 장치(108)에 사용되는 것보다 작고, 빠른 액세스 저장을 포함한다. 캐싱 장치(106)의 향상된 속도 덕분에, 캐싱 장치(106)로 읽고 쓰는 것은 타겟 저장 장치(108)를 사용할 때보다 더 빨리 처리된다. 라이트 백 캐싱은 타겟 저장 장치(108)로 데이터를 전송하기 이전에 캐싱 장치(160)로 모든 쓰기 요청들을 전송함으로써 이러한 차이로 인한 이점을 갖는다.
예를 들면, CPU(102)가 타겟 저장 장치(108)에 데이터를 쓰도록 쓰기 요청을 처리할 때, 캐싱 소프트웨어(110)는 쓰기 요청을 차단하고, 대신에 캐싱 장치(106)로 데이터를 쓴다. 이러한 데이터는 종종, “더티(dirty)” 데이터라 칭하는데, 그것은 타켓 저장 장치(108)로 아직 쓰여지지 않았기 때문이고, 그 데이터가 타겟 저장 장치(108)로 쓰여진 이후에 “클린(clean)” 데이터가 된다. 캐싱 소프트웨어(110)는 사용자에게 타겟 저장 장치(108)로 완전히 보여지도록 제공된다. 즉, CPU(102)가 동일 데이터에 대한 읽기 요청을 처리할 때, 캐싱 소프트웨어(110)는 읽기 요청을 다시 차단하고, 데이터가 캐싱 장치(106) 상에 있는지를 결정한다. 그 데이터가 캐싱 장치(106) 상에 있으면, CPU(102)는 캐싱 장치(106)로부터 데이터를 읽고, 그렇지 않으면, CPU(102)는 타겟 저장 장치(108)로부터 데이터를 읽는다.
일반적으로, 부트 장치에 대한 라이트 백 캐싱은 캐싱 장치와 타겟 저장 장치에 연결된 스토리지 컨트롤러의 옵션 롬(Read Only Memory, 이하 'ROM'이라 칭하기로 함)을 사용하여 활성화될 수 있다. 예를 들어, 도 1에서, CPU(102)는 피씨아이(Peripheral Component Interconnect, 이하 'PCI'라 칭하기로 함) 장치 카드(112)에 연결되고, PCI 장치 카드(112)는 PCI 장치 카드(112)의 온-보드 메모리 내 옵션 ROM을 저장한다. 일단 시스템 메모리에 로드되면, PCI 장치 카드(112)의 옵션 ROM(114)은 PCI 장치 카드(112)와 연관된 캐싱 장치(106)와 타겟 저장 장치(108)와 같은 특정 하드웨어 장치들로 CPU(102) 액세스를 제공한다. 이러한 경우, 옵션 ROM(114)은 캐싱 장치(106)를 핸들링하기 위한 캐싱 소프트웨어(110)를 포함한다.
시스템 스타트업(startup)에서, 프리 OS 환경 동안, 시스템 기본 입출력 시스템(Basic Input Output System, 이하 ‘BIOS’라 칭하기로 함)는 시스템 메모리(104) 내에서 하드웨어 장치들의 존재를 스캔하고, PCI 장치 카드(112)와 같은 검출된 PCI 장치 카드들로부터 옵션 ROM(114)과 같은 옵션 ROM들을 로드한다. 각 옵션 ROM(114)은 연관된 PCI 장치의 소유물로 취급되고, 관련된 PCI 장치와 그것의 차일드 장치들에 액세스하도록 이용된다. 예를 들어, 도 1에서, 옵션 ROM(114)에 연관된 캐싱 장치(106)와 타겟 저장 장치(108)로 액세스를 제공하는 디스크 제어기 PCI 장치 카드(112)로 액세스를 제공하는 기능을 한다. 일단, 옵션 ROM들이 시스템 메모리(104) 내에 로드되면, 타겟 저장 장치(108) 및/또는 캐싱 장치(106)에 저장된 운영 시스템 파일들은 시스템 메모리(104) 내에 로드된다.
이해할 수 있는 바와 같이, 임의의 시점에 데이터는 캐싱 장치(106) 내에 저장될 수 있고, 타겟 저장 장치(108)에 업데이트되지 않을 수 있으므로, 타겟 저장 장치(108)는 사용자가 거기에 저장된다고 믿고 있는 것의 완벽하고 일정한 사본을 가지지 않을 수 있다. 예상하지 못한 전원 손실이 발생할 때 문제가 발생할 수 있다.
도 1에 도시된 바와 같이, 하드웨어 장치 카드는 시스템 BIOS가 프리 OS 환경 내 시스템 메모리(104)로 옵션 ROM(114)에 저장된 캐싱 소프트웨어를 검출하고, 로드하도록 요구된다. 특히, 컴퓨터 시스템이 부트할 때, 시스템 BIOS는 카드가 연결되었는지를 검색하고, 카드로부터 시스템 메모리 내로 연관된 옵션 ROM 코드를 로드하고, 그 코드를 실행한다. 불행하게도, 종래 기술에서는, 컴퓨터 시스템 내에 인스톨된 PCI 카드와 같은 연관된 하드웨어가 없다면, 프리 OS 환경 동안 시스템 매모리 내에 옵션 ROM BIOS를 로드할 방법이 없다.
더욱이, 메모리는 리얼 모드에서 동작하기 때문에, 리거시 BIOS들 내 프리 OS 위상 동안 이용가능한 메모리의 양은 극단적으로 제한된다. 예를 들면, 리거시 BIOS 내 프리 OS 위상 동안 64KB 내지 1MB의 단일 세그먼트가 이용 가능하다. 이와 같이, 큰 캐시 크기들을 갖는 이런 낮은 메모리 환경 내 복구를 행하는 것은 극단적으로 어렵고, 적절한 수행을 위해서 오랜 시간 주기들을 필요로 한다.
상술한 것을 고려하면, 소프트웨어 단일 라이트 백 캐싱 환경을 위해 예상하지 못한 전원 손실로부터 복구를 가능하게 할 수 있는 시스템들과 방법들을 필요로 한다. 이러한 복구는 소프트웨어만의 라이트백 캐싱 환경 내 부트 장치의 복구를 허용해아만 하고, 리거시 BIOS 시스템 아키텍쳐에서 복구를 수행할 수 있다. 더욱이, 그 방법은 적절한 처리를 위한 시간의 오랜 시간 주기들을 필요로 하지 않고, 복구 동작들을 처리할 수 있어야만 한다.
본 발명의 목적은 라이트 백 캐싱 환경에서 예상하지 못한 셧다운으로부터 복구를 가능하게 할 수 있는 시스템들과 방법들을 제공함에 있다.
본 발명에 따른 라이트 백 캐싱 환경에서 예상하지 못한 셧다운으로부터 복구하는 방법은 캐싱 장치에 논리적 블록 어드레스(LBA) 매핑 테이블을 저장하는 단계, 상기 캐싱 장치에 LBA 매핑 테이블 변경 로그를 유지하는 단계, 상기 캐싱 장치에 저장된 헤더를 사용하여 예상하지 못한 셧다운을 검출하고, 상기 헤더는 클린 셧다운이 발생했는지를 나타내는 지시자를 포함하는 단계, 및 상기 캐싱 장치에 저장된 LBA 매핑 테이블과 LBA 매핑 테이블 변경 로그에 근거하여 복구된 LBA 매핑 테이블을 생성하는 단계를 포함하고, 상기 LBA 매핑 테이블은 상기 캐싱 장치의 논리적 블록 어드레스들로 상기 타겟 저장 장치의 논리적 블록 어드레스들을 매핑하고, 상기 LBA 매핑 테이블 변경 로그는 상기 LBA 매핑 테이블이 상기 캐싱 장치로 마지막에 쓰여진 후, 상기 캐싱 장치에 상기 LBA 매핑 테이블에 대한 변화들을 포함한다.
이 실시예에 있어서, 상기 캐싱 장치로 상기 복구된 LBA 매핑 테이블을 쓰는 단계를 더 포함한다.
이 실시예에 있어서, 노멀 캐싱 동작들 동안 시스템 메모리 내 현재 LBA 매핑 테이블을 유지하는 단계를 더 포함한다.
이 실시예에 있어서, 중앙 처리 장치(CPU)를 보호 모드로 놓는 단계를 더 포함한다.
이 실시예에 있어서, 상기 캐싱 장치로부터의 상기 LBA 매핑 테이블로부터 1메가바이트(MB) 이하의 시스템 메모리 내 데이터를 로딩하는 단계를 더 포함한다.
이 실시예에 있어서, 1MB 이상의 시스템 메모리 내 트리 데이터 구조의 노드들 내에 상기 LBA 매핑 테이블의 엔트리들을 삽입하는 단계를 더 포함한다.
이 실시예에 있어서, 지정된 부트 장치의 부트 섹터로부터 시스템 메모리 내로 코드를 로딩하는 단계를 더 포함하고, 상기 코드는 옵션 롬 기본 입출력 시스템(Option ROM BIOS)을 시스템 메모리 내로 로드하고, 상기 옵션 롬 기본 입출력 시스템은 캐싱 소프트웨어들을 포함한다.
본 발명에 따른 라이트 백 캐싱 환경에서 예상하지 못한 셧다운으로부터 복구하는 시스템은 타겟 저장 장치, 상기 타겟 저장 장치에 데이터를 캐시하기 위해 이용되는 캐싱 장치, 상기 캐싱 장치 상에 위치하고, 상기 타겟 저장 장치의 논리적 블록 어드레스들을 상기 캐싱 장치의 논리적 블록 어드레스들로 매핑하는 논리적 블록 어드레스(LBA) 매핑 테이블, 상기 캐싱 장치에 저장되고, 상기 LBA 매핑 테이블이 상기 캐싱 장치로 마지막에 쓰여진 후, 상기 캐싱 장치에 상기 LBA 매핑 테이블에 대한 변화들을 포함하는 LBA 매핑 테이블 변경 로그, 및 상기 캐싱 장치에 저장되고, 클린 셧다운의 발생 여부를 나타내는 지시자를 포함하는 헤더를 포함하고, 상기 복구된 LBA 매핑 테이블은 예상하지 못한 셧다운 검출에 응답하여, 상기 캐싱 장치에 저장된 상기 LBA 매핑 테이블과 상기 LBA 매핑 테이블 변경 로그에 근거하여 생성되는 것을 특징으로 한다.
이 실시예에 있어서, 상기 복구된 LBA 매핑 테이블은 생성된 후에 상기 캐싱 장치로 쓰여진다.
이 실시예에 있어서, 노멀 캐싱 동작들 동안 시스템 메모리에 저장되는 현재 LBA 매핑 테이블을 더 포함한다.
이 실시예에 있어서, 보호 모드에서 동작하는 중앙 처리 장치(CPU)를 더 포함한다.
이 실시예에 있어서, 상기 LBA 매핑 테이블로부터의 데이터는 상기 캐싱 장치로부터 1MB 이하의 시스템 메모리 내 로드된다.
이 실시예에 있어서, 상기 LBA 매핑 테이블의 엔트리들은 1MB 이상의 시스템 메모리 내 트리 데이터 구조의 노드들로 삽입된다.
이 실시예에 있어서, 지정된 부트 장치들의 부트 섹터에 저장된 코드를 더 포함하고, 상기 코드는 부트 섹터로부터 시스템 메모리 내로 로드되고, 상기 코드는 상기 옵션 롬 기본 입출력 시스템을 시스템 메모리 내로 로드하고, 상기 옵션 롬 기본 입출력 시스템은 캐싱 소프트웨어를 포함한다.
본 발명에 따른 쓰기 백 캐싱 환경에서 예상하지 못한 셧다운으로부터 복구하는 방법은 캐싱 장치에 논리적 블록 어드레스(LBA) 매핑 테이블을 저장하고, 상기 LBA 매핑 테이블은 타겟 저장 장치의 논리적 블록 어드레스들을 상기 캐싱 장치의 논리적 블록 어드레스로 매핑하는 단계, 상기 캐싱 장치에 LBA 매핑 테이블 변경 로그를 유지하고, 상기 LBA 매핑 테이블 변경 로그는 상기 LBA 매핑 테이블이 상기 캐싱 장치로 마지막에 쓰여지기 때문에 상기 캐싱 장치에 LBA 매핑 테이블에 대한 변화들을 포함하는 단계, 상기 캐싱 장치에 저장된 헤더를 사용하여 예상하지 못한 셧다운을 검출하고, 상기 헤더는 클린 셧다운 발생 여부를 나타내는 지시자를 포함하는 단계, 지정된 부트 장치의 부트 섹터로부터 시스템 메모리 내로 코드를 로드하고, 상기 코드는 캐싱 소프트웨어를 갖는 옵션 롬 바이오스를 시스템 메모리 내에 로드하는 단계, 및 상기 캐싱 장치에 저장된 LBA 매핑 테이블과 LBA 매핑 테이블 변경 로그에 근거하여 복구된 LBA 매핑 테이블을 생성하는 단계를 포함한다.
이 실시예에 있어서, 상기 캐싱 장치로 상기 복구된 LBA 매핑 테이블을 쓰는 단계를 더 포함한다.
이 실시예에 있어서, 노멀 캐싱 동작들 동안 시스템 메모리 내 현재 LBA 매핑 테이블을 유지하는 단계를 더 포함한다.
이 실시예에 있어서, 중앙 처리 장치(CPU)를 보호 모드로 놓는 단계를 더 포함한다.
이 실시예에 있어서, 상기 캐싱 장치로부터의 데이터를 상기 LBA 매핑 테이블로부터 1메가바이트(MB) 이하의 시스템 메모리 내로 로딩하는 단계를 더 포함한다.
이 실시예에 있어서, 1MB 이상의 시스템 메모리 내 트리 데이터 구조의 노드들 내 상기 LBA 매핑 테이블의 엔트리들을 삽입하는 단계를 더 포함한다.
본 발명은 제안된 시스템에서 캐싱 장치에 논리적 블록 어드레스(LBA) 매핑 테이블을 저장하고, 셧다운 발생시 캐싱 장치에 저장된 LBA 매핑 테이블을 이용함에 따라 라이트 백 캐싱 환경에서 예상하지 못한 셧다운으로부터 복구를 가능하게 할 수 있다.
도 1은 라이트 백 캐싱 기능을 갖는 종래의 컴퓨터 시스템을 예시적으로 도시한 도면,
도 2는 본 발명의 실시예에 따른 무장치 캐싱과 전원 손실 복구 능력을 갖는 컴퓨터 시스템을 예시적으로 도시한 도면,
도 3은 본 발명의 실시예에 따른 무장치 캐싱과 전원 손실 복구 능력을 용이하게 하는 무장치 ROM 부트 레코드(DRBR)를 갖는 지정된 부트 장치를 예시적으로 도시한 도면,
도 4는 본 발명의 실시예에 따른 시스템 메모리 내 무장치 옵션 ROM BIOS를 로딩한 후의 컴퓨터 시스템을 예시적으로 도시한 도면,
도 5는 본 발명의 실시예에 따른 예시적 컴퓨터 시스템 내 캐싱 소프트웨어에 의해 유지된 복구 데이터 구조들을 도시한 도면,
도 6은 본 발명의 실시예에 따른 노멀 클린 셧다운 동안 복구 데이터 구조들의 업데이트 방법을 도시한 순서도,
도 7은 본 발명의 실시예에 따른 예상하지 못한 전원 손실로부터 복구하는 방법을 도시한 순서도, 및
도 8은 본 발명의 실시예에 따른 LBA 매핑 테이블 복구 동안 메모리 사용을 도시한 도면이다.
본 발명은 무장치 캐싱 소프트웨어를 사용하여 라이트 백 캐싱 환경에서 예상하지 못한 셧다운 이후의 복구를 개시한다. 일반적으로, 본 발명의 실시예들에서는, 테이블이 캐싱 장치로 마지막에 전송(즉, 저장)되었기 때문에, 시스템 메모리 내 논리적 블록 어드레스(logical block address) 매핑 테이블(mapping table)의 현재 사본을 유지하고, 테이블로 모든 변경들을 로그한다. 복구 동안, 이전에 저장된 매핑 테이블과 변경 로그는 현재 매핑 테이블의 복구를 위해 이용한다. 그렇게 함으로써, 본 발명의 실시예들에서는 확장 메모리(즉, 1MB 이상의) AVL 트리의 테이블 엔트리들을 저장하고 처리하기 위해 CPU를 보호 모드에 있게 한다.
다음의 상세한 설명에서, 본 발명의 완벽한 이해를 위해 많은 상세한 설명들이 제공될 것이다. 그러나, 본 발명의 기술분야의 당업자에게 특정한 설명들의 일부 또는 모두 없이 실행될 수 있음은 명백할 것이다. 다른 실시예들에서, 잘 알려진 단계들은 본 발명을 불필요하게 모호하게 하지 않기 위해 상세히 기술되지 않는다.
도 1은 종래기술의 관점에서 기술한다.
도 2를 참조하면, 컴퓨터 시스템(200)은 시스템 메모리(204)에 연결된 중앙 처리 장치(CPU: Central Processing Unit)(202)와 복수의 장치 카드들(206)을 포함한다. 각 장치 카드(206)는 각 장치 카드(206) 상에 존재하는 롬(Read Only Memory, 이하 ‘ROM’이라 칭하기로 함)/플래시 메모리 내에 저장된 옵션 ROM 기본 입출력 시스템(Basic Input Output System, 이하 ‘BIOS’라 칭하기로 함)를 포함한다. 컴퓨터 시스템(200)은 타겟 저장 장치(210)와 캐싱 장치(212)를 더 포함한다.
타겟 저장 장치(210)는 임의의 저장 장치 일 수 있고, 이 저장 장치로 또는 이 저장 장치로부터 CPU(202)는 컴퓨터 시스템(200)의 노멀 동작 동안 데이터를 읽거나 쓸 수 있다. 캐싱 장치(212)는 일반적으로 타겟 저장 장치(210)를 사용하는 것보다 더 작고 빠른 액세스 디스크이다. 예를 들어, 캐싱 장치(212)는 에스에스디(Solid State Drive, 이하 ‘SSD’라 칭하기로 함)에 기반한 낸드(NAND) 플래시 또는 상 변화 메모리(Phase Change Memory, 이하 ‘PCM’이라 칭하기로 함)와 같은 SSD일 수 있다. 캐싱 장치(212)의 향상된 속도 덕분에, 캐싱 장치(212)로의 읽기 및 쓰기는 타겟 저장 장치(210)를 사용하여 가능한 것보다 더 빨리 처리될 수 있다. 라이트 백 캐싱은 타겟 저장 장치(210)로 데이터를 전송하기 이전에 모든 쓰기 요청들을 캐싱 장치(212)로 전송함으로써 이러한 차이들의 이점을 갖는다. 캐싱 소프트웨어는 타겟 저장 장치(210)의 전경(complete view)을 제공함으로써, 사용자는 데이터가 캐싱 장치(212) 상에 실제 저장되어 있는지에 상관없이, 타겟 저장 장치(210)의 전경을 항상 볼 수 있다.
일반적으로, 시스템 스타트업 동안 CPU(202)에 의해 실행되는 제 1 코드는 컴퓨터 시스템(200)을 위한 하드웨어를 설정하고, 운영체제(OS: Operating System)를 로드하는 시스템 BIOS이다. 이것을 위해, 시스템 BIOS는 장치 카드들(206)과 같은 하드웨어를 위한 컴퓨터 시스템(200)을 스캔하고, 각 장치 카드(206)를 위한 옵션 ROM BIOS(208)를 로드한다. 이러한 방법으로, 각 로드되고 실행된 옵션 ROM BIOS(208)는 프리 OS 환경 동안 관련된 장치 카드(205)와 그 차일드 장치들로 액세스를 제공한다.
시스템 BIOS는 이후, 타겟 저장 장치(210)와 같은 지정된 부트 장치들을 식별하고, 컴퓨터 시스템(200)을 추가적으로 제어하는 운영체제(OS)를 로드하려고 시도한다. 종래의 컴퓨터 시스템들에서 시스템 BIOS는 운영체제의 로딩을 용이하게 하기 위해 지정된 부트 장치의 부트 섹터로부터 마스터 부트 레코드(Master Boot Record, 이하 ‘MBR’라 칭하기로 한다)를 로드한다. MBR은 일반적으로 지정된 부트 장치의 섹터 0 내에 저장되고, OS로의 제어를 전달하기 전에 우선 OS 파일들의 로딩과 실행을 용이하게 하는 기계 코드들로 구성된다. 그러나, 본 발명의 실시예들에서는, 무장치 옵션 ROM의 로딩을 용이하게 하기 위해 무장치 ROM 부트 레코드(Device-less ROM boot record, 이하 'DRBR'이라 칭하기로 함)를 가진 MBR로 대신한다.
도 3은 본 발명의 실시예에 따른 무장치 캐싱과 전원 손실 복구 능력을 용이하게 하기 위한 무장치 ROM 부트 레코드(DRBR)(300)를 갖는 지정된 부트 장치(210)를 예시적으로 도시한 도면이다.
도 3을 참조하면, 지정된 부트 장치(210)는 지정된 부트 장치(210)의 부트 섹터(302) 내에 위치된 DRBR(300)을 포함한다. 또한, 캐싱 소프트웨어(308)를 포함하는 무장치 옵션 ROM BIOS(304)는 마스트 부트 레코드(MBR(306), 운영체제 파일들(310)뿐만 아니라 지정된 부트 장치에 저장된다. 비록 도 3은 지정된 부트 장치(210)에 저장된 무장치 옵션 ROM BIOS(304)와 MBR(306) 모두를 도시하고 있지만, 무장치 옵션 ROM BIOS(304), MBR(306), 또는 그들 모두는 캐싱 장치와 같은 대체 저장 장치들에 저장될 수 있다는 것에 주의할 것이다.
위에서 언급한 바와 같이, 스타트업 동안 컴퓨터 시스템 상에 설치된 하드웨어로부터 옵션-ROM BIOS 코드가 로딩된 이후, 시스템 BIOS는 부트 섹터(302)(예를 들면, 섹터 0)로부터 코드를 로드한다. 그러나, 본 발명의 실시예들에서 무장치 옵션 ROM(304)의 로딩을 용이하게 하기 위해 보통 부트 섹터(302)에 저장되는 MBR(306)을 DRBR(300)로 대체한다. 따라서, 도 3의 실시예의 스타트업 동안, 시스템 BIOS는 부트 섹터(302)(예를 들면, 섹터 0)로부터 시스템 메모리 내로 DRBR(300)을 로드한다.
도 2와 도 3에 따르면, 컴퓨터 시스템(200)에 설치된 하드웨어(206)로부터 옵션 ROM BIOS 코드(208)를 로딩한 이후, 시스템 BIOS는 지정된 부트 장치(210)의 부트 섹터로부터 시스템 메모리(204) 내로 DRBR(300)을 로드한다. DRBR(300)는 지정된 부트 장치(210) 또는 다른 저장 장치에 저장된 무장치 옵션 ROM BIOS(304)의 위치 식별을 하는 포인터와 같은 데이터를 포함한다. 일단, DRBR(300) 코드는 부트 섹터(302)로부터 시스템 메모리(204) 내에 로드되면, 도 4에서 도시된 바와 같이 DRBR(300)가 무장치 옵션 ROM BIOS(304)를 시스템 메모리(204) 내에 로드하기 위한 기능들을 한다.
도 4는 본 발명의 실시예에 따른 무장치 옵션 ROM BIOS(304)를 시스템 메모리(204) 내에 로딩한 후의 컴퓨터 시스템(200)을 예시적으로 도시한 도면이다.
도 4를 참조하면, 컴퓨터 시스템(200)은 복수의 장치 카드들(206)에 접속된 CPU(202)를 포함하고, 각각의 장치 카드들(206)은 옵션 ROM BIOS(304)를 포함한다. 또한, DRBR(300)과 캐싱 소프트웨어(308)를 포함하는 무장치 옵션 ROM BIOS(304) 모두 시스템 메모리(204) 내 로드된다.
일단 무장치 옵션 ROM BIOS(304)가 시스템 메모리(204)에 로드되면, DRBR(300)은 제어를 시스템 메모리에 전달한다. 이러한 방법으로, 무장치 옵션 ROM BIOS(304)는 마치 PCI 장치로부터 메모리 내 로드된 것처럼 자유롭게 동작한다. 무장치 옵션 ROM BIOS(304)는 프리 OS 입력/출력(IO) 필터하는 캐싱 소프트웨어(308)를 포함한다. 이러한 방식으로, OS가 로드될 때, 무장치 옵션 ROM BIOS(304)의 캐싱 소프트웨어(308)는 IO의 선택된 일부를 차단(intercept)할 수 있고, 다른 장치로부터의 데이터를 제공할 수 있다.
무장치 옵션 ROM BIOS(304)는 지정된 부트 장치(210) 또는 대체 저장 장치(일예로, 캐시 디스크 장치) 상에 저장된 MBR(306)의 위치를 식별하는 포인터와 같은 데이터를 포함한다. 일단 무장치 옵션-ROM BIOS(304) 코드는 자신의 설정과 초기화를 완료하면, 무장치 옵션 ROM BIOS(304)는 MBR(306)을 시스템 메모리 내에 로드한다.
이러한 방법으로, 무장치 옵션 ROM BIOS(304)의 캐싱 소프트웨어(308)는 운영체제가 시스템 메모리 내에 로딩되기 전에, 프리 OS 환경 내 디스크 캐싱을 용이하게 할 수 있다. 캐싱 소프트웨어(308)가 OS의 로딩 이전에 로드되고 실행되기 때문에, 캐싱 소프트웨어(308)는 OS를 시스템 메모리(204) 내로 로딩하는 것과 연관된 IO를 필터할 수 있다. 따라서, 캐싱 소프트웨어(308)는 다른 디스크들로부터 로드되기 위해 허용된 운영 시스템 파일로, 지정된 부트 장치와 다른 캐싱 장치로 다양한 IO 요청을 차단하고, 특정 요청을 재전송할 수 있다. 추가로, 무장치 프리 OS 캐싱 소프트웨어(308)는 예상하지 못한 셧다운 이후의 일관된 상태를 위한 타겟 저장 장치와 캐싱 장치의 복구를 허용한다.
도 5는 본 발명의 실시예에 따른 예시적 컴퓨터 시스템(200) 내 캐싱 소프트웨어(308)에 의해 유지되는 복구 데이터 구조들을 도시한 도면이다.
도 5를 참조하면, 특히 도 5는 시스템 메모리(204) 내에 로드된 캐싱 소프트웨어(308)를 도시한다. 전원 손실 복구를 용이하게 하기 위해, 캐싱 소프트웨어(308)는 캐싱 장치(212) 내에 전원 손실 헤더(500), 논리적 블록 어드레스(Logical Block Address, 이하 'LBA'라 칭하기로 함) 매핑 테이블(502), 및 매핑 테이블 변경 로그(504)를 유지한다. 추가로, 캐싱 소프트웨어(308)는 시스템 메모리(204) 내 현재 LBA 매핑 테이블(502’)을 유지한다.
전원 손실 헤더(500)는 미리 정의된 어드레스에서 유지되고, 예상하지 못한 셧다운이 발생되는지를 나타내는 지시자를 포함한다. 다음에 더 상세히 설명된 바와 같이, 캐싱 소프트웨어(308)는 예상하지 못한 셧다운이 발생되는지를 결정하기 위해 전원 손실 헤더(500)를 사용한다. 추가로, 전원 손실 헤더(500)는 캐시 메모리 내 LBA 매핑 테이블(502)과 매핑 테이블 변경 로그(504)의 어드레스를 포함한다. 캐싱 소프트웨어(308)는 복구 동안 이러한 어드레스 위치들을 사용한다.
LBA 매핑 테이블(502)은 타겟 저장 장치(210)의 논리적 블록 어드레스들을 캐싱 장치(212)의 논리적 블록 어드레스들로 매핑한다. 그러나, 다음에 상세히 논의된 바와 같이, LBA 매핑 테이블(502)은 일반적으로 시스템 셧다운 시 그리고 전원의 손실로부터 복구에 업데이트된다. 이와 같이, 캐싱 장치(212)에 저장된 LBA 매핑 테이블(502)은 노멀 캐싱 동작 동안 현재 매핑 데이터를 종종 저장하지 않는다. 현재 LBA 매핑 테이블(502’)은 시스템 메모리(204) 내에 유지된다.
매핑 테이블 변경 로그(504)는 LBA 매핑 테이블(502)이 캐싱 장치로(212)로 성공적으로 쓰여진 마지막 시점 이후로 LBA 매핑 테이블(502)로의 변화들을 포함한다. 이와 같이, 매핑 테이블 변경 로그(504)는 현재 LBA 매핑 테이블(502’)에 변경들이 있으면 캐싱 소프트웨어(308)에 의해 지속적으로 업데이트된다. 복구 동안, 매핑 테이블 변경 로그(504)는 현재까지의 LBA 매핑 테이블의 복구를 용이하게 한다.
도 6은 본 발명의 실시예에 따른 노멀 클린 셧다운 동안 복구 데이터 구조들의 업데이트 방법(600)을 도시한 순서도이다.
도 6을 참조하면, 노멀 클린 셧다운 동안, 예를 들면, 시스템 다운의 셧(shut)에 대한 사용자 요청에 응답할 때, 본 발명의 실시예는 캐싱 장치에 저장된 복구 구조들을 업데이트한다. 602단계에서, 전처리 동작들이 수행된다. 전처리 동작들은 예를 들면, 본 발명을 주의 깊게 살펴본 당업자에게 명백한 셧다운 명령 수신, 선행하는 셧다운 절차들의 수행, 및 다른 동작들을 포함할 수 있다.
604단계에서, 현재 LBA 매핑 테이블은 캐싱 장치에 쓰여진다. 도 5를 참조하면, 노멀 동작 동안, 캐싱 소프트웨어(308)는 시스템 메모리(204) 내 현재 LBA 매핑 테이블(502’)을 유지한다. 현재 LBA 매핑 테이블(502’)은 캐싱 장치(212) 내 캐시 메모리로부터 캐시되거나 제거된 각 시간 데이터를 업데이트한다. 노멀 클린 셧다운에 응답하여 캐싱 소프트웨어(308)는 이전 LBA 매핑 테이블(502)을 교체하기 위해, 캐싱 장치(212)로 현재 LBA 매핑 테이블(502’)을 쓰기한다.
도 6을 다시 참조하면, 606단계에서, 전원 손실 헤더는 현재 LBA 매핑 테이블의 어드레스를 나타내기 위해 업데이트된다. 보통 데이터가 캐싱 장치에 업데이트될 때, 새로운 데이터는 새로운 어드레스로 쓰여진다. 이것은 캐싱 장치로써 플래시 메모리 장치와 같은 에스에스디(SSD: Solid State Drive)가 사용될 때, 특히 그렇다. 이와 같이, 604단계에서 현재 LBA 매핑 테이블이 캐싱 장치로 쓰여질 때, LBA 매핑 테이블은 이전 LBA 매핑 테이블과 다른 어드레스에 저장된다. 그러므로, 606단계에서, 전원 손실 헤더는 LBA 매핑 테이블의 새로운 어드레스를 나타내기 위해 업데이트된다.
608단계에서, 매핑 테이블 변경 로그는 클리어된다. 도 5를 참조하면, LBA 매핑 테이블(502)이 캐싱 장치(212)로 마지막에 수용되기 때문에 캐싱 소프트웨어(308)는 노멀 캐싱 동작들 동안 LBA 매핑 테이블(502)에 대한 모든 변경들을 로그한다. 이러한 변경들은 매핑 테이블 변경 로그(504)에 저장되고, 상기 매핑 테이블 변경 로그(504)는 데이터 캐싱에 응답하여 LBA 매핑 테이블이 변경되면서 지속적으로 업데이트된다. 노멀 클린 셧다운에 응답하여, 현재 LBA 매핑 테이블(502’)은 캐싱 장치(212)로 쓰여지고, 그러므로 이전 LBA 매핑 테이블(502)에 대한 모든 변경들은 유효하게 저장된다. 이때, 608 단계에서, 매핑 테이블 변경 로그(504)는 클리어된다.
610단계에서, 전원 손실 헤더는 클린 셧다운이 발생했다는 것을 나타내기 위해 업데이트된다. 도 5를 참조하면, 스타트업 동안 캐싱 소프트웨어(308)는 노멀 클린 셧다운의 결과로 발생된 마지막 셧다운인지 아닌지를 결정하기 위해 전원 손실 헤더(500)를 검사한다. 만약, 전원 손실 헤더(500)가 노멀 클린 셧다운의 결과로 발생된 마지막 셧다운을 나타내면, 노멀 캐싱 동작이 시작될 수 있다. 그렇지 않으면, 캐싱 소프트웨어는 복구 동작들을 시작한다. 이때, 610단계에서, 캐싱 소프트웨어는 클린 셧다운 발생을 나타내기 위해 전원 손실 헤더를 업데이트한다.
이러한 방법(600)은 612단계에서 종료한다. 이후, 노멀 클린 셧다운 동안 복구 데이터 구조를 업데이트한 이후, 캐싱 장치(212)는 현재 LBA 매핑 테이블을 저장하고, 전원 손실 헤더는 마지막 셧다운이 노멀 클린 셧다운이라는 것을 나타낸다. 그 결과, 다음 스타트업 동안 캐싱 소프트웨어는 전원 손실 헤더를 검사할 것이고, 노멀 클린 셧다운의 발생을 검출할 것이다. 따라서, 캐싱 소프트웨어(308)는 현재 이후로 시스템 메모리 내에 LBA 매핑 테이블(502)을 로드할 수 있고, 노멀 동작들을 시작할 수 있다.
도 7은 본 발명의 실시예에 따른 예상하지 못한 전원 손실로부터 복구하는 방법(700)을 도시한 순서도이다.
도 7을 참조하면, 702단계에서, 전처리 동작들이 수행된다. 전처리 동작들은 예를 들어, 시스템 메모리 내로 무장치 옵션 ROM BIOS를 로딩하는 것, 무장치 옵션 ROM BIOS 내 포함되는 캐싱 소프트웨어를 시동하는 것, 및 본 발명을 주의 깊게 살펴본 당업자에게 명백한 다른 절차들을 포함할 수 있다.
704단계에서, 캐싱 소프트웨어는 예상하지 못한 셧다운이 발생했는지를 검출한다. 도 5를 참조하면, 노멀 클린 셧다운 동안 캐싱 소프트웨어(308)은 노멀 클린 셧다운의 결과로써 마지막 셧다운이 발생했는지를 나타내는 전원 손실 헤더(500)를 업데이트 한다. 전원 손실 헤더(500)가 노멀 클린 셧다운의 결과로서, 마지막 셧다운이 발생한 것을 나타내지 않는다면, 예상하지 못한 셧다운이 발생한 것이다. 다음 스타트업 동안 캐싱 소프트웨어(308)는 노멀 클린 셧다운의 결과로써 발생된 마지막 셧다운이 발생했는지의 여부를 결정하기 위해 전원 손실 헤더(500)를 검사한다. 만약, 전원 손실 헤더(500)가 노멀 클린 셧다운 결과로써 마지막 셧다운이 발생했음을 나타내지 않으면, 캐싱 소프트웨어(308)는 예상하지 못한 셧다운의 발생됨을 검출한다.
도 7을 다시 참조하면, 706단계에서, LBA 매핑 테이블은 다음으로 캐싱 장치에 저장된 LBA 매핑 테이블과 매핑 테이블 변경 로그를 이용하여 복구된다. 도 5를 참조하면, 캐싱 소프트웨어(308)는 스타트업 동안 예상하지 못한 셧다운이 발생했는지를 검출하고, 그것은 현재 LBA 매핑 테이블을 복구하기 위해 필요하다. 이것은 매핑 테이블 변경 로그(504)를 사용하여 캐싱 장치(212) 상에 저장된 LBA 매핑 테이블(502)의 업데이트에 의해 수행된다. LBA 매핑 테이블(502)의 모든 변경들 이후, 매핑 테이블 변경 로그(504) 내 로그된 캐싱 장치로 할당하는 마지막 시간 이후, 매핑 테이블 변경 로그(504)는 LBA 매핑 테이블의 업데이트에 이용될 수 있고, 복구된 현재 LBA 매핑 테이블을 생성한다.
다시 도 7을 참조하면, 708단계에서, LBA 매핑 테이블이 복구되면, 복구된 LBA 매핑 테이블은 캐싱 장치로 쓰여진다. 다음 710단계에서, 전원 손실 헤더는 복구된 LBA매핑 테이블의 어드레스를 나타내기 위해 업데이트된다. 종종, 데이터가 SSD 캐싱 장치에 업데이트되면, 새로운 데이터는 새로운 어드레스에 쓰여진다. 이와 같이, 캐싱 장치에 복구된 LBA 매핑 테이블이 쓰여지면, 복구된 LBA 매핑 테이블은 이전 LBA 매핑 테이블과 다른 어드레스에 저장된다. 그러므로, 710단계에서 전원 손실 헤더는 복구된 LBA 매핑 테이블의 새로운 어드레스를 나타내기 위해 업데이트된다.
712단계에서, 매핑 테이블 변경 로그는 클리어된다. 도 5를 참조하면, 노멀 캐싱 동작들 동안 캐싱 소프트웨어(308)는 캐싱 장치(212)에 마지막으로 할당하기 위한 LBA 매핑 테이블(502) 이후 LBA 매핑 테이블(502)로 모든 변경들을 로그한다. 이러한 변경들은 데이터 캐싱에 응답하여 LBA 매핑 테이블이 변경되면, 지속적으로 업데이트되는 매핑 테이블 변경 로그(504) 내에 저장된다. 예상하지 못한 셧다운에 응답하여, LBA 매핑 테이블은 복구되고, 복구된 LBA 매핑 테이블은 캐싱 장치에 쓰여지며, 그러므로 이전 LBA 매핑 테이블(502)로의 모든 변경들은 효과적으로 저장된다. 이렇게, 712단계에서 매핑 테이블 변경 로그(504)는 클리어된다.
714단계에서, 전원 손실 헤더는 복구가 완전함을 나타내기 위해 업데이트된다. 도 5를 참조하면, 스타트업 동안 캐싱 소프트웨어(308)는 노멀 클린 셧다운의 결과로써 마지막 셧다운이 발생했는지 아닌지의 여부를 결정하기 위해 전원 손실 헤더(500)를 검사한다. 만약, 전원 손실 헤더(500)가 노멀 클린 셧다운의 결과로써 마지막 셧다운이 발생했음을 나타내지 않으면, 캐싱 소프트웨어(308)는 예상하지 못한 셧다운의 발생을 검출한다. LBA 매핑 테이블은 캐싱 장치(212)로 복구되고, 캐싱 장치(212)에 할당되면, 캐싱 소프트웨어(308)는 복구의 완료를 나타내기 위한 전원 손실 헤더(500)를 업데이트한다.
716단계에서, 방법(700)은 완료된다. 리거시 BIOS들 내 발생하는 하나의 도전은 복구 동작이 수행되는 프리 OS 환경에서 이용 가능한 제한된 양의 메모리이다. 일반적으로 이러한 리거시 환경들은 프리 OS 환경 동안 리얼 모드로 동작한다. 리얼 모드는 이용 가능한 메모리를 1메가바이트(MB) 이하로 제한한다. 캐싱 디스크 상의 많은 양의 더티 데이터는 처리를 필요로 하는 로그 엔트리들의 양을 증가시킨다. 로그 엔트리들의 수는 또한, 캐시로부터 LBA 매핑 테이블 내 변화로 이끄는 퇴거들을 트리거하는 변경 데이터들을 상당히 증가시킨다. 이것은 로그 엔트리들의 처리를 위해 필요한 시간을 증가시켜, 복구 수행을 위한 시간이 더 증가한다. 이러한 도전들을 달성하기 위해서, 본 발명의 실시예는 복구 프로세스 동안 LBA 매핑 테이블을 나타내기 위한 AVL 트리를 사용하고, 이것은 다음의 도 8을 참조하여 설명하기로 한다.
도 8은 본 발명의 실시예에 따른 LBA 매핑 테이블 복구 동안 메모리 사용을 도시한 도면이다.
도 8을 참조하면, 이전에 언급한 바와 같이, 리거시 환경들은 도 8에 도시된 바와 같이, 1MB와 그 이하의 이용가능 메모리를 제한하는 프리 OS 동안 리얼 모드에서 일반적으로 동작한다. 이와 같이, 복구가 수행되면, 본 발명의 실시예는 1MB 이하의 읽기 가능 메모리 공간의 리얼 모드 내 작은 버퍼의 캐싱 장치에 저장된 LBA 매핑 테이블로부터 데이터의 작은 유닛들(800)을 독출한다. 예를 들어, 데이터의 유닛들(800)은 4킬로바이트(KB)의 크기일 수 있다.
데이터의 충분한 유닛(800)이 LBA 매핑 엔트리를 형성하기 위해 함게 수집되면, LBA 매핑 테이블 엔트리는 매핑 엔트리 노드(804)로써, AVL 트리(802) 내에 삽입된다. AVL 트리(802)는 자가 밸런싱 바이너리 검색 트리이고, 1MB 이상의 어드레서블 메모리 공간의 보호 모드에 놓여진다. 그러므로, 상술한 바와 같이, 리거시 환경은 1MB 이하의 이용 가능 메모리를 제한하는 프리 OS 동안 리얼모드에서 일반적으로 동작한다.
본 발명의 실시예는 CPU를 보호 모드 내로 위치시킨다. 리얼 모드는 1MB 이상의 유일한 어드레서블 메모리 공간의 오래된 8086 인텔(Intel) 구조에 근거한 동작의 리거시 모드이다. 하위 호환성을 유지하기 위해, 리얼 모드는 많은 리거시 CPU들에서 유지된다. 보호 모드는 응용들이 리얼 모드 상의 1MB 이상으로 제한된 어드레스를 가지도록 한다. 여기서, CPU는 리얼 모드에서 1MB 제한 설정 이상의 메모리로 액세스를 제공하기 위해 보호 모드에 놓여진다. 이러한 방법으로, 캐싱 소프트웨어가 AVL 트리 내 매핑 모드의 처리를 위해 필요로 할 때마다, 캐싱 소프트웨어는 1MB 이상의 메모리 내 노드 처리를 할 수 있다. 이는 데이터 백 카피, 1MB 이상의 메모리와 1MB 이하의 메모리 사이를 벗어난 카피를 위한 임의의 요구를 회피할 수 있다.
비록, 앞에서 설명된 발명은 이해를 명확히 하기 위한 목적으로 상세히 기술되었지만, 첨부된 청구항의 범위 내에서 임의의 변경들과 수정들이 실행될 수 있음은 명백할 것이다. 따라서, 본 발명의 실시예들은 분명히 도시된 것으로 고려될 수 있고, 한정되지 않고, 본 발명은 여기에서 기술된 것으로 한정되지 않고, 첨부된 청구항과 균등하고, 범위 내에서 수정될 수 있다.
100, 200: 컴퓨터 시스템들 102, 202: CPU들
104, 204: 시스템 메모리들 106, 212: 캐싱 장치들
108, 210: 타겟 저장 장치들 110, 308: 캐싱 소프트웨어들
112: PCI 장치 카드 114, 208: 옵션 ROM들
206: 장치 카드 300: DRBR
302: 부트 섹터 304: 무장치 옵션 ROM
306: MBR 310: 운영 시스템 파일
500: 전원 손실 헤더 502: LBA 매핑 테이블
502': 현재 LBA 매핑 테이블 504: 매핑 테이블 변경 로그

Claims (10)

  1. 라이트 백 캐싱 환경에서 예상하지 못한 셧다운으로부터 복구하는 방법에 있어서,
    캐싱 장치에 논리적 블록 어드레스(LBA) 매핑 테이블을 저장하고, 상기 LBA 매핑 테이블은 상기 캐싱 장치의 논리적 블록 어드레스들로 상기 타겟 저장 장치의 논리적 블록 어드레스들을 매핑하는 단계;
    상기 캐싱 장치에 LBA 매핑 테이블 변경 로그를 유지하고, 상기 LBA 매핑 테이블 변경 로그는 상기 LBA 매핑 테이블이 상기 캐싱 장치로 마지막에 쓰여진 후, 상기 캐싱 장치에 상기 LBA 매핑 테이블에 대한 변화들을 포함하는 단계;
    상기 캐싱 장치에 저장된 헤더를 사용하여 예상하지 못한 셧다운을 검출하고, 상기 헤더는 클린 셧다운이 발생했는지를 나타내는 지시자를 포함하는 단계; 및
    상기 캐싱 장치에 저장된 LBA 매핑 테이블과 LBA 매핑 테이블 변경 로그에 근거하여 복구된 LBA 매핑 테이블을 생성하는 단계를 포함하는 방법.
  2. 제 1 항에 있어서,
    상기 캐싱 장치로 상기 복구된 LBA 매핑 테이블을 쓰는 단계를 더 포함하는 방법.
  3. 제 1 항에 있어서,
    노멀 캐싱 동작들 동안 시스템 메모리 내 현재 LBA 매핑 테이블을 유지하는 단계를 더 포함하는 방법.
  4. 제 1 항에 있어서,
    중앙 처리 장치(CPU)를 보호 모드로 놓는 단계를 더 포함하는 방법.
  5. 제 1 항에 있어서,
    상기 캐싱 장치로부터의 상기 LBA 매핑 테이블로부터 1메가바이트(MB) 이하의 시스템 메모리 내 데이터를 로딩하는 단계를 더 포함하는 방법.
  6. 제 5 항에 있어서,
    1MB 이상의 시스템 메모리 내 트리 데이터 구조의 노드들 내에 상기 LBA 매핑 테이블의 엔트리들을 삽입하는 단계를 더 포함하는 방법.
  7. 제 1 항에 있어서,
    지정된 부트 장치의 부트 섹터로부터 시스템 메모리 내로 코드를 로딩하는 단계를 더 포함하고,
    상기 코드는 옵션 롬 기본 입출력 시스템(Option ROM BIOS)을 시스템 메모리 내로 로드하고, 상기 옵션 롬 기본 입출력 시스템은 캐싱 소프트웨어들을 포함하는 방법.
  8. 라이트 백 캐싱 환경에서 예상하지 못한 셧다운으로부터 복구하는 시스템에 있어서,
    타겟 저장 장치;
    상기 타겟 저장 장치에 데이터를 캐시하기 위해 이용되는 캐싱 장치;
    상기 캐싱 장치 상에 위치하고, 상기 타겟 저장 장치의 논리적 블록 어드레스들을 상기 캐싱 장치의 논리적 블록 어드레스들로 매핑하는 논리적 블록 어드레스(LBA) 매핑 테이블;
    상기 캐싱 장치에 저장되고, 상기 LBA 매핑 테이블이 상기 캐싱 장치로 마지막에 쓰여진 후, 상기 캐싱 장치에 상기 LBA 매핑 테이블에 대한 변화들을 포함하는 LBA 매핑 테이블 변경 로그; 및
    상기 캐싱 장치에 저장되고, 클린 셧다운의 발생 여부를 나타내는 지시자를 포함하는 헤더를 포함하고,
    상기 복구된 LBA 매핑 테이블은 예상하지 못한 셧다운 검출에 응답하여, 상기 캐싱 장치에 저장된 상기 LBA 매핑 테이블과 상기 LBA 매핑 테이블 변경 로그에 근거하여 생성되는 것을 특징으로 하는 시스템.
  9. 제 8 항에 있어서,
    상기 복구된 LBA 매핑 테이블은 생성된 후에 상기 캐싱 장치로 쓰여지는 시스템.
  10. 제 8 항에 있어서,
    노멀 캐싱 동작들 동안 시스템 메모리에 저장되는 현재 LBA 매핑 테이블을 더 포함하는 시스템.
KR1020140070225A 2013-06-18 2014-06-10 라이트 백 캐싱 환경에서 예상하지 못한 셧다운으로부터 복구하기 위한 시스템 및 방법 KR20140147017A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/920,440 2013-06-18
US13/920,440 US20140372710A1 (en) 2013-06-18 2013-06-18 System and method for recovering from an unexpected shutdown in a write-back caching environment

Publications (1)

Publication Number Publication Date
KR20140147017A true KR20140147017A (ko) 2014-12-29

Family

ID=52020292

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140070225A KR20140147017A (ko) 2013-06-18 2014-06-10 라이트 백 캐싱 환경에서 예상하지 못한 셧다운으로부터 복구하기 위한 시스템 및 방법

Country Status (2)

Country Link
US (1) US20140372710A1 (ko)
KR (1) KR20140147017A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170011080A (ko) * 2015-07-21 2017-02-02 삼성전자주식회사 스토리지 시스템의 구동 방법 및 스토리지 컨트롤러

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150178164A1 (en) * 2013-12-19 2015-06-25 Violin Memory Inc. Reconstructing an indirection table from logged media addresses
US10359937B2 (en) * 2013-12-20 2019-07-23 Sandisk Technologies Llc System and method of implementing a table storage support scheme
US10108503B2 (en) * 2015-08-24 2018-10-23 Western Digital Technologies, Inc. Methods and systems for updating a recovery sequence map
KR20180128588A (ko) * 2017-05-24 2018-12-04 에스케이하이닉스 주식회사 메모리 시스템 및 그의 동작 방법
US10096380B1 (en) * 2017-08-31 2018-10-09 Micron Technology, Inc. Erase page check
US11599403B2 (en) * 2018-10-03 2023-03-07 SK Hynix Inc. Logging mechanism for memory system
US11106372B2 (en) * 2019-12-27 2021-08-31 Micron Technology, Inc. Asynchronous power loss handling approach for a memory sub-system

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6760827B2 (en) * 2001-11-30 2004-07-06 Lsi Logic Corporation Method and apparatus for accessing ROM PCI memory above 64 K
US7181609B2 (en) * 2003-08-15 2007-02-20 Intel Corporation System and method for accelerated device initialization
US8321652B2 (en) * 2008-08-01 2012-11-27 Infineon Technologies Ag Process and method for logical-to-physical address mapping using a volatile memory device in solid state disks
US9003159B2 (en) * 2009-10-05 2015-04-07 Marvell World Trade Ltd. Data caching in non-volatile memory
US8495338B2 (en) * 2010-12-03 2013-07-23 Micron Technology, Inc. Transaction log recovery

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170011080A (ko) * 2015-07-21 2017-02-02 삼성전자주식회사 스토리지 시스템의 구동 방법 및 스토리지 컨트롤러

Also Published As

Publication number Publication date
US20140372710A1 (en) 2014-12-18

Similar Documents

Publication Publication Date Title
KR20140147017A (ko) 라이트 백 캐싱 환경에서 예상하지 못한 셧다운으로부터 복구하기 위한 시스템 및 방법
US10089191B2 (en) Selectively persisting application program data from system memory to non-volatile data storage
EP2840495B1 (en) Container-based processing method and apparatus
US10719479B2 (en) Data unit cloning in memory-based file systems
JP5636034B2 (ja) データ利用についてのマウント時間の調停
US7313683B2 (en) Computer system and method which boots from a bootup-memory-image stored in nonvolatile memory and copies data within an address range of predetermined width to main memory so that the system boots quickly after initialization
KR102329762B1 (ko) 메모리 데이터 보호 메커니즘을 갖는 전자 시스템 및 그것의 동작 방법
KR102434170B1 (ko) 하이브리드 메모리 시스템
JP5801933B2 (ja) ブート・データをキャッシュするソリッドステートドライブ
US11119657B2 (en) Dynamic access in flash system
EP2790108A2 (en) Information processing apparatus, memory control device, data transfer control method, and data transfer control program
US8984267B2 (en) Pinning boot data for faster boot
JP2008204460A (ja) ディスク・パーティションのほぼ瞬時のバックアップおよび復元
US8417903B2 (en) Preselect list using hidden pages
KR20200117032A (ko) 하이브리드 메모리 시스템
US10191855B2 (en) Caching systems and methods for page reclamation with simulated NVDRAM in host bus adapters
JP2015114750A (ja) 調査用プログラム,情報処理装置及び情報処理方法
US10983818B2 (en) Method and system for preventing execution of a dirty virtual machine on an undesirable host server in a virtualization cluster environment
US7234039B1 (en) Method, system, and apparatus for determining the physical memory address of an allocated and locked memory buffer
US11314453B2 (en) Memory system managing map data based on risk of malware—infection of host, and operating method thereof
JP2022184735A (ja) プログラム起動方法及び機器、記憶媒体
US20140059293A1 (en) Method for protecting a gpt cached disks data integrity in an external operating system environment
WO2018075676A1 (en) Efficient flash management for multiple controllers

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid