KR102651408B1 - 스토리지 디바이스 및 스토리지 디바이스의 동작 방법 - Google Patents

스토리지 디바이스 및 스토리지 디바이스의 동작 방법 Download PDF

Info

Publication number
KR102651408B1
KR102651408B1 KR1020180064106A KR20180064106A KR102651408B1 KR 102651408 B1 KR102651408 B1 KR 102651408B1 KR 1020180064106 A KR1020180064106 A KR 1020180064106A KR 20180064106 A KR20180064106 A KR 20180064106A KR 102651408 B1 KR102651408 B1 KR 102651408B1
Authority
KR
South Korea
Prior art keywords
information
value
signature information
meta
signature
Prior art date
Application number
KR1020180064106A
Other languages
English (en)
Other versions
KR20190099994A (ko
Inventor
김동우
노재선
윤송호
이경백
정욱한
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to US16/133,778 priority Critical patent/US10997066B2/en
Priority to EP18196417.2A priority patent/EP3528129B1/en
Priority to CN201811454417.XA priority patent/CN110175138B/zh
Priority to SG10201900022YA priority patent/SG10201900022YA/en
Publication of KR20190099994A publication Critical patent/KR20190099994A/ko
Priority to US17/222,106 priority patent/US11775423B2/en
Application granted granted Critical
Publication of KR102651408B1 publication Critical patent/KR102651408B1/ko

Links

Images

Classifications

    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/007Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

스토리지 디바이스 및 스토리지 디바이스의 동작 방법이 제공된다. 스토리지 디바이스는 호스트로부터 LBA(Logical Block Address) 정보 및 제1 메타 정보를 포함하는 리드 명령을 수신하고, 상기 제1 메타 정보를 디스크램블링(descrambling)하여 제1 시그니처(signature) 정보 및 플래시 메모리를 액세스하기 위한 제1 PA(Physical Address) 정보를 획득하는 디스크램블 모듈(descramble module); 상기 제1 시그니처 정보의 값과, 미리 저장된 제2 시그니처 정보의 값을 비교하여 그 동일 여부를 판단하는 비교 모듈(compare module); 및 상기 제1 시그니처 정보의 값과 상기 제2 시그니처 정보의 값이 동일한 경우, 상기 제1 PA 정보를 이용하여 상기 플래시 메모리의 데이터 영역을 액세스(access)하는 액세스 모듈(access module)을 포함한다.

Description

스토리지 디바이스 및 스토리지 디바이스의 동작 방법{STORAGE DEVICE AND METHOD FOR OPERATING STORAGE DEVICE}
본 발명은 스토리지 디바이스 및 스토리지 디바이스의 동작 방법에 관한 것이다.
플래시 메모리를 포함하는 스토리지 디바이스에 저장된 데이터를 리드(read)하기 위해, 호스트는 리드할 데이터에 대한 LBA(Logical Block Address)를 스토리지 디바이스에 전송할 수 있다. 이에 스토리지 디바이스는, 예컨대 FTL(Flash Translation Layer)을 이용하여, 호스트로부터 수신한 LBA를 플래시 메모리를 액세스하기 위한 PA(Physical Address)로 변환한 후, PA로 어드레싱(addressing)되는 데이터를 호스트에 제공할 수 있다.
이와 다른 방식으로, 호스트는 그 내부에 캐시 테이블을 두고, 스토리지 디바이스에서 사용되는 PA에 관한 정보들을 캐싱(caching)할 수 있다. 즉, 호스트는 LBA와, 해당 LBA에 매핑되는 캐싱된 PA를 스토리지 디바이스에 전송하고, 스토리지 디바이스는 호스트로부터 수신한 캐싱된 PA를 이용하여, LBA를 PA로 변환할 필요 없이, 바로 플래시 메모리를 액세스할 수 있다.
그런데 후자의 경우, 호스트에 캐싱된 PA는 언제나 유효한 것으로 보장이 되는 것은 아니므로, 스토리지 디바이스는 호스트로부터 수신한 PA가 LBA-PA 매핑 관계에 있어서 유효한 값을 갖는지 확인을 해야 할 필요가 있다.
본 발명이 해결하고자 하는 기술적 과제는, 호스트가 스토리지 디바이스의 PA(Physical Address)를 캐싱하는 아키텍처에 있어서, 호스트로부터 제공받은 캐싱된 PA의 유효성을 간결하면서도 효율적인 방식으로 검사하기 위한 스토리지 디바이스를 제공하는 것이다.
본 발명이 해결하고자 하는 다른 기술적 과제는, 호스트가 스토리지 디바이스의 PA를 캐싱하는 아키텍처에 있어서, 호스트로부터 제공받은 캐싱된 PA의 유효성을 간결하면서도 효율적인 방식으로 검사하기 위한 스토리지 디바이스의 동작 방법을 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 해당 기술 분야의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 달성하기 위한 본 발명의 일 실시예에 따른 스토리지 디바이스는, 호스트로부터 LBA(Logical Block Address) 정보 및 제1 메타 정보를 포함하는 리드 명령을 수신하고, 제1 메타 정보를 디스크램블링(descrambling)하여 제1 시그니처(signature) 정보 및 플래시 메모리를 액세스하기 위한 제1 PA(Physical Address) 정보를 획득하는 디스크램블 모듈(descramble module); 제1 시그니처 정보의 값과, 미리 저장된 제2 시그니처 정보의 값을 비교하여 그 동일 여부를 판단하는 비교 모듈(compare module); 및 제1 시그니처 정보의 값과 제2 시그니처 정보의 값이 동일한 경우, 제1 PA 정보를 이용하여 플래시 메모리의 데이터 영역을 액세스(access)하는 액세스 모듈(access module)을 포함한다.
상기 기술적 과제를 달성하기 위한 본 발명의 다른 실시예에 따른 스토리지 디바이스는, 호스트로부터 LBA 정보 및 제1 메타 정보를 포함하는 리드 명령을 수신하고, 제1 메타 정보를 디스크램블링하여 제1 시그니처 정보 및 플래시 메모리를 액세스하기 위한 제1 PA 정보를 획득하는 디스크램블 모듈; 및 제1 시그니처 정보의 값과, 미리 저장된 제2 시그니처 정보의 값을 비교하여 제1 PA 정보의 유효성을 판단하는 비교 모듈을 포함한다.
상기 기술적 과제를 달성하기 위한 본 발명의 또 다른 실시예에 따른 스토리지 디바이스는, 호스트로부터 LBA 정보 및 제1 메타 정보를 포함하는 리드 명령을 수신하고, 제1 메타 정보를 디스크램블링하여 제1 시그니처 정보 및 플래시 메모리를 액세스하기 위한 제1 PA 정보를 획득하는 디스크램블 모듈; 및 제1 시그니처 정보의 값과, 플래시 메모리의 메타 영역에 미리 저장된 제2 시그니처 정보의 값을 비교하여 제1 PA 정보의 유효성을 판단하는 비교 모듈을 포함한다.
상기 기술적 과제를 달성하기 위한 본 발명의 또 다른 실시예에 따른 스토리지 디바이스의 동작 방법은, 호스트로부터 LBA 정보 및 제1 메타 정보를 포함하는 리드 명령을 수신하고, 제1 메타 정보를 디스크램블링하여 제1 시그니처 정보 및 플래시 메모리를 액세스하기 위한 제1 PA 정보를 획득하고, 제1 시그니처 정보의 값과, 미리 저장된 제2 시그니처 정보의 값을 비교하여 제1 PA 정보의 유효성을 판단하는 것을 포함한다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
도 1은 본 발명의 일 실시예에 따른 반도체 시스템을 설명하기 위한 개략도이다.
도 2는 본 발명의 일 실시예에 따른 호스트 및 스토리지 디바이스를 설명하기 위한 블록도이다.
도 3은 도 2의 디스크램블 모듈의 일 동작례을 설명하기 위한 블록도이다.
도 4는 도 2의 메타 영역의 일 구현례를 설명하기 위한 블록도이다.
도 5는 도 2의 스크램블 모듈의 일 동작례를 설명하기 위한 블록도이다.
도 6은 본 발명의 일 실시예에 따른 호스트 및 스토리지 디바이스의 동작을 설명하기 위한 블록도이다.
도 7은 본 발명의 일 실시예에 따른 호스트 및 스토리지 디바이스의 동작을 설명하기 위한 블록도이다.
도 8은 본 발명의 일 실시예에 따른 호스트 및 스토리지 디바이스의 동작을 설명하기 위한 블록도이다.
도 9는 본 발명의 일 실시예에 따른 호스트 및 스토리지 디바이스의 동작을 설명하기 위한 블록도이다.
도 10은 본 발명의 일 실시예에 따른 호스트 및 스토리지 디바이스의 동작을 설명하기 위한 블록도이다.
도 11은 본 발명의 일 실시예에 따른 호스트 및 스토리지 디바이스의 동작을 설명하기 위한 블록도이다.
도 12는 본 발명의 일 실시예에 따른 호스트 및 스토리지 디바이스의 동작을 설명하기 위한 블록도이다.
도 13은 도 12의 메타 영역의 일례를 설명하기 위한 블록도이다.
도 14는 본 발명의 일 실시예에 따른 호스트 및 스토리지 디바이스의 동작을 설명하기 위한 블록도이다.
도 1은 본 발명의 일 실시예에 따른 반도체 시스템을 설명하기 위한 개략도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 반도체 시스템(1)은 호스트(100) 및 스토리지 디바이스(200)를 포함한다.
본 발명의 몇몇의 실시예에서, 호스트(100)와 스토리지 디바이스(200)는 UFS(Universal Flash Storage), SCSI((Small Computer System Interface), SAS(Serial Attached SCSI), SATA(Serial Advanced Technology Attachment), PCIe(Peripheral Component Interconnect Express), eMMC(embedded MultiMediaCard), FC(Fibre Channel), ATA(Advanced Technology Attachment), IDE(Intergrated Drive Electronics), USB(Universal Serial Bus), IEEE 1394(Firewire)등과 같은 전기적 인터페이스를 통해 접속될 수 있다. 그러나, 본 발명의 범위는 이에 제한되지 않고 호스트(100)와 스토리지 디바이스(200) 사이에 데이터를 주고 받을 수 있게 하는 임의의 인터페이스에 적용될 수 있다.
이하에서는 본 발명의 핵심에 대한 설명의 명확성과 편의를 위해 호스트(100)와 스토리지 디바이스(200)가 UFS 전기적 인터페이스를 통해 접속되어 호스트(100)는 UFS 호스트로, 스토리지 디바이스(200)는 UFS 메모리 디바이스로 가정하고 설명할 것이나, 본 발명의 범위는 이에 한정되지 않으며, 위에서 예시한 전기적 인터페이스를 비롯한 임의의 인터페이스를 사용하는 임의의 스토리지 시스템에 적용 가능하다.
호스트(100)는 어플리케이션(110), 드라이버(120), 호스트 컨트롤러(130) 및 호스트 인터페이스로서 동작하는 UIC(Universal Flash Storage InterConnect layer)(140)를 포함한다.
본 발명의 몇몇의 실시예에서, 호스트(100)는 버퍼 메모리를 더 포함할 수 있다. 버퍼 메모리는 호스트(100)의 메인 메모리로 사용되거나 데이터를 임시로 저장하기 위한 캐시 메모리 또는 임시 메모리 등으로 사용될 수 있다. 본 발명의 몇몇의 실시예에서, 버퍼 메모리는 DRAM(Dynamic Random Access Memory)을 비롯한 휘발성 메모리를 포함할 수 있으나, 본 발명의 범위가 이에 제한되는 것은 아니다.
어플리케이션(110)은 호스트(100)에서 실행되어 반도체 시스템(1)에서 사용될 수 있는 명령 세트에 기반하여 반도체 시스템(1)을 제어할 수 있다.
드라이버(120)는 호스트(100)에 접속되는 스토리지 디바이스(200)를 구동할 수 있다. 구체적으로, 드라이버(120)는 어플리케이션(110)으로부터 스토리지 디바이스(200)를 제어하기 위한 명령을 수신하고, 호스트 컨트롤러(130)를 이용하여 상기 명령을 처리한 후, 그 처리 결과를 어플리케이션(110)에 제공할 수 있다.
이들 어플리케이션(110) 및 드라이버(120)는 소프트웨어로 구현될 수 있으나, 본 발명의 범위가 이에 제한되는 것은 아니다.
호스트 컨트롤러(130)는 호스트(100) 내부의 전반적인 동작을 제어한다. 예를 들어, 호스트 컨트롤러(130)는 드라이버(120)로부터 수신한 라이트(write) 명령에 대한 응답으로 버퍼 메모리에 저장되어 있던 데이터를 호스트 인터페이스(140)를 통해 스토리지 디바이스(200)에 전송할 수 있다. 또한, 호스트 컨트롤러(130)는 드라이버(120)로부터 수신한 리드(read) 명령에 대한 응답으로 호스트 인터페이스(140)를 통해 스토리지 디바이스(200)부터 데이터를 수신할 수도 있다.
호스트 인터페이스(140)는 데이터 라인(DIN, DOUT)을 통해 스토리지 디바이스(200)의 디바이스 인터페이스에 해당하는 UIC(240)와 데이터를 주고 받을 수 있다. 한편, 호스트 인터페이스(140)는 스토리지 디바이스(200)의 적어도 일부의 동작에 사용될 수 있는 기준 클럭(REFCLK)을 스토리지 디바이스(200)의 UIC(240)에 제공할 수 있다.
본 발명의 몇몇의 실시예에서, 호스트(100)의 UIC(140) 및 스토리지 디바이스(200)의 UIC(240)는 호스트(100)와 스토리지 디바이스(200) 사이의 커넥션을 핸들링하며, 예를 들어 MIPI UniPro 또는 MIPI M-PHY를 채용할 수 있다.
스토리지 디바이스(200)는 디바이스 컨트롤러(230), UIC(240) 및 비휘발성 메모리(Non-Volatile Memory, NVM)(250)를 포함한다.
디바이스 컨트롤러(230)는 디바이스(230) 내부의 전반적인 동작을 제어한다. 예를 들어, 디바이스 컨트롤러(230)는 비휘발성 메모리(250)에 대해 호스트(100)가 요청한 데이터를 라이트(write), 리드(read) 또는 이레이즈(erase)하는 작업들을 수행할 수 있다. 이를 위해, 호스트(100)와 마찬가지로, 스토리지 디바이스(200)는 버퍼 메모리를 더 포함할 수 있다.
비휘발성 메모리(250)는 플래시 메모리(Flash Memory), MRAM(Magnetoresistive Random Access Memory), PRAM(Phase-change Random Access Memory), FeRAM(Ferroelectric Random Access Memory) 등을 포함할 수 있으나, 본 발명의 범위가 이에 제한되는 것은 아니다. 다만 설명의 편의를 위해 위하에서는 비휘발성 메모리(250)를 플래시 메모리(250)로 나타내기로 한다.
도 2는 본 발명의 일 실시예에 따른 호스트 및 스토리지 디바이스를 설명하기 위한 블록도이다. 그리고, 도 3은 도 2의 디스크램블 모듈의 일 동작례을 설명하기 위한 블록도이고, 도 4는 도 2의 메타 영역의 일 구현례를 설명하기 위한 블록도이고, 도 5는 도 2의 스크램블 모듈의 일 동작례를 설명하기 위한 블록도이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 호스트(100)는 명령 생성 모듈(command generate module)(132) 및 캐시 테이블(134)을 포함한다.
본 발명의 몇몇의 실시예에서, 명령 생성 모듈(132)은 도 1의 호스트 컨트롤러(130)의 일부로 구현될 수 있으나, 본 발명의 범위가 이에 제한되는 것은 아니고 호스트 컨트롤러(130)와 전기적으로 연결되는 별도의 모듈로 구현될 수도 있다. 한편, 본 발명의 몇몇의 실시예에서, 캐시 테이블(134)은 도 1에서 설명한 버퍼 메모리에 로드(load)되어, 호스트 컨트롤러(130) 또는 명령 생성 모듈(132)은 버퍼 메모리를 통해 캐시 테이블(134)을 액세스할 수 있다.
명령 생성 모듈(132)은 예컨대 리드 명령(READ CMD), 라이트 명령(WRITE CMD)을 비롯한 데이터 액세스 명령을 생성하여 스토리지 디바이스(200)에 전송한다. 예를 들어, 리드 명령(READ CMD)은 스토리지 디바이스(200)의 플래시 메모리(250)에 저장된 데이터를 호스트(100)에 제공하라는 명령에 해당하고, 라이트 명령(WRITE CMD)은 라이트 명령(WRITE CMD)과 함께 호스트(100)가 디바이스(200)에 제공하는 데이터를 플래시 메모리(250)에 저장하라는 명령에 해당한다.
구체적으로, 명령 생성 모듈(132)이 리드 명령(READ CMD)을 스토리지 디바이스(200)에 전송하는 경우, 리드 명령(READ CMD)에는 호스트(100)가 리드하고자 하는 데이터에 대한 LBA(Logical Block Address) 정보가 포함된다. 예를 들어 호스트(100)가 LBA#5로 어드레싱(addressing)되는 데이터를 리드하기 위해, 호스트(100)가 리드 명령(READ CMD)에 LBA#5 값을 갖는 LBA 정보를 디바이스(200)에 전송하면, 디바이스(200)는 LBA#5에 매핑되는 PA(Physical Address)를 결정하고 해당 PA를 이용하여 플래시 메모리(250)를 액세스하게 된다.
이와 같이 LBA 정보에 매핑되는 PA 정보는 호스트(100)의 캐시 테이블(134)을 통해 캐싱(caching)된다. 예를 들어, 디바이스(200)에서 LBA#5에 매핑되는 PA#5가 15라는 값으로 결정된 바 있다면, 디바이스(200)는 LBA#5에 매핑되는 PA#5가 15라는 정보를 호스트(100)에 제공할 수 있다. 그러면 호스트(200)는 LBA#5에 매핑되는 PA#5가 15라는 정보를 캐시 테이블(134)에 삽입한다. 이후 호스트(200)의 명령 생성 모듈(132)은 LBA#5로 어드레싱되는 데이터를 리드하기 위한 리드 명령(READ CMD)을 생성할 때, 리드 명령(READ CMD)에 PA#5가 15라는 정보를 함께 포함시켜 디바이스(200)에 전송할 수 있다. 이와 같이 호스트(100) 상에서 캐싱된 PA 정보를 수신한 디바이스(200)는 데이터 액세스를 하기 위해 LBA를 PA로 변환할 필요 없이 캐싱된 PA 정보를 바로 사용할 수 있다.
그런데 호스트(100)에서 관리되는 캐시 테이블(134)은 최신의 LBA-PA 매핑 정보를 갖지 않을 수 있다. 구체적으로, 예를 들어, 캐시 테이블(134)에 LBA#5에 매핑되는 PA#5의 값이 캐싱되어 있는 동안, 디바이스(200)의 LBA-PA 매핑 관계는 얼마든지 변경될 수 있다. 따라서 디바이스(200)는 호스트(200)로부터 캐싱된 PA 정보를 제공받은 경우, 캐싱된 PA 정보의 유효성을 판단할 필요가 있다.
도 3을 함께 참조하면, 이를 위해, 본 실시예에서, 명령 생성 모듈(132)은 LBA 정보(LBA, 300a) 및 제1 메타 정보(META_H, 300b)를 포함하는 리드 명령(READ CMD)을 생성한다. 여기서 LBA 정보(LBA)는 호스트(100)가 리드하고자 하는 데이터의 LBA 값, 예컨대 LBA#5의 값을 포함한다.
제1 메타 정보(META_H)는 캐시 테이블(134)에 입력되어 있다가 명령 생성 모듈(132)에 제공될 수 있다. 제1 메타 정보(META_H)는 제1 시그니처(signature) 정보(SGN_H) 및 제1 PA 정보(PA_H)를 포함한다. 구체적으로, 제1 시그니처 정보(SGN_H)는 디바이스(200)가 제1 PA 정보(PA_H)의 유효성을 판단하기 위해 사용되는 값을 포함하고, 제1 PA 정보(PA_H)는 LBA 정보(LBA)에 매핑되는 PA 값을 포함한다.
본 실시예에서 제1 메타 정보(META_H)는 제1 시그니처 정보(SGN_H)와 제1 PA 정보(PA_H)를 스크램블링(scrambling)하여 생성된 스크램블 데이터(scrambled data)이고, 디바이스(200)에서 생성되어 호스트(100)에 전달된 것일 수 있다.
이에 따라, 명령 생성 모듈(132)는 LBA 정보(LBA)와, 캐시 테이블(134)로부터 제공받은 제1 메타 정보(META_H)를 포함하는 리드 명령(READ CMD)을 디바이스(200)에 전송한다.
한편, 본 발명의 일 실시예에 따른 스토리지 디바이스(200)는 디스크램블 모듈(descramble module)(232), 비교 모듈(compare module)(234), 액세스 모듈(access module)(236) 및 스크램블 모듈(scramble module)(238)을 포함한다.
본 발명의 몇몇의 실시예에서, 디스크램블 모듈(232), 비교 모듈(234), 액세스 모듈(236) 및 스크램블 모듈(238)은 도 1의 디바이스 컨트롤러(230)의 일부로 구현될 수 있으나, 본 발명의 범위가 이에 제한되는 것은 아니고 디바이스 컨트롤러(230)와 전기적으로 연결되는 별도의 모듈로 구현될 수도 있다.
디스크램블 모듈(232)은 호스트(100)로부터 리드 명령(READ CMD)을 수신하고, 리드 명령(READ CMD)에 포함된 제1 메타 정보(META_H)를 디스크램블링(descrambling)하여 제1 시그니처 정보(SGN_H) 및 플래시 메모리(250)를 액세스하기 위한 제1 PA 정보(PA_H)를 획득한다.
특히, 도 3을 함께 참조하면, 디스크램블 모듈(232)은, 제1 메타 정보(META_H)를 디스크램블링하기 위해 LBA 정보(LBA)와, 후술할 글로벌 시그니처(global signature) 정보(GSGN)를 사용할 수 있다. 한편, 본 발명의 몇몇의 실시예에서, 제1 메타 정보(META_H)가 디스크램블링된 메타 데이터(310)는 제1 시그니처 정보(SGN_H) 및 제1 PA 정보(PA_H)외에 패리티(PARITY) 정보를 추가로 포함할 수 있다.
비교 모듈(234)은 제1 시그니처 정보(SGN_H)의 값과, 미리 저장된 제2 시그니처 정보(SGN_D)의 값을 비교하여 제1 PA 정보(PA_H)의 유효성을 판단한다. 이를 위해, 본 발명의 몇몇의 실시예에서, 비교 모듈(234)은 제1 시그니처 정보(SGN_H)의 값과, 미리 저장된 제2 시그니처 정보(SGN_D)의 값을 비교하여 그 동일 여부를 판단할 수 있다.
구체적으로, 비교 모듈(234)은 제1 시그니처 정보(SGN_H)의 값과 제2 시그니처 정보(SGN_D)의 값이 동일한 경우, 제1 PA 정보(PA_H)의 값이 유효하다고 판단할 수 있다. 또한, 비교 모듈(234)은 제1 시그니처 정보(SGN_H)의 값과 제2 시그니처 정보(SGN_D)의 값이 다른 경우, 제1 PA 정보(PA_H)의 값이 유효하지 않다고 판단할 수 있다.
액세스 모듈(236)은 제1 PA 정보(PA_H)가 유효하다고 판단된 경우, 제1 PA 정보(PA_H)를 이용하여 플래시 메모리(250)의 데이터 영역(252)을 액세스(access)할 수 있다. 또한, 액세스 모듈(236)은 제1 PA 정보(PA_H)가 유효하지 않다고 판단된 경우, 플래시 메모리(250)로부터 제2 PA 정보를 로드하고, 제2 PA 정보를 이용하여 데이터 영역(252)을 액세스할 수 있다.
구체적으로, 액세스 모듈(236)은 제1 시그니처 정보(SGN_H)의 값과 제2 시그니처 정보(SGN_D)의 값이 동일한 경우, 제1 PA 정보(PA_H)를 이용하여 플래시 메모리(250)의 데이터 영역(252)을 액세스할 수 있고, 제1 시그니처 정보(SGN_H)의 값과 제2 시그니처 정보(SGN_D)의 값이 다른 경우, 플래시 메모리(250)로부터 제2 PA 정보를 로드하고, 제2 PA 정보를 이용하여 데이터 영역(252)을 액세스할 수 있다.
이와 같은 방식으로 제1 시그니처 정보(SGN_H)의 값과 제2 시그니처 정보(SGN_D)을 비교함으로써 간결하면서도 효율적인 방식으로 캐싱된 PA의 유효성을 검사할 수 있다.
스크램블 모듈(238)은 제2 시그니처 정보(SGN_D)와 제2 PA 정보를 스크램블링(scrambling)하여 제2 메타 정보(META_D)를 생성한다. 즉, 스크램블 모듈(238)은 제2 메타 정보(META_D)로서, 당시 디바이스(200) 내에서 저장된 제2 시그니처 정보(SGN_D)와 유효한 제2 PA 정보를 함께 호스트(100)의 캐시 테이블(134)에 제공할 수 있다.
특히, 도 5를 함께 참조하면, 스크램블 모듈(238)은, 제2 시그니처 정보(SGN_D) 및 제2 PA 정보(PA)를 스크램블링하기 위해 LBA 정보(LBA)와, 후술할 글로벌 시그니처(global signature) 정보(GSGN)를 사용할 수 있다. 한편, 본 발명의 몇몇의 실시예에서, 스크램블 대상이 되는 메타 데이터(320)는 제2 시그니처 정보(SGN_D) 및 제2 PA 정보(PA) 외에 패리티(PARITY) 정보를 추가로 포함할 수 있다.
제2 시그니처 정보(SGN_D)는 플래시 메모리(250)의 메타 영역(254)에 저장된 것일 수 있다. 이 경우, 비교 모듈(234)은 제1 시그니처 정보(SGN_H)의 값과, 메타 영역(254)에 저장된 제2 시그니처 정보(SGN_D)의 값을 비교하여 그 동일 여부를 판단할 수 있다.
도 4를 함께 참조하면, 메타 영역(254)은 복수의 메타 영역, 예컨대 제1 메타 영역(2542) 및 제2 메타 영역(2544)을 포함할 수 있다.
제1 메타 영역(2542)은 제1 LBA 집합에 대한 제1 메타 영역 시그니처 정보(SGN_D1)를 저장할 수 있다. 즉, 제1 메타 영역(2542)은 LBA#1 내지 LBA#5를 포함하는 제1 LBA 집합에 대해 동일한 값(예컨대 1)을 갖는 제1 메타 영역 시그니처 정보(SGN_D1)를 저장할 수 있다. 또한, 제1 메타 영역 시그니처 정보(SGN_D1)는 LBA#1 내지 LBA#5에 대응되는 PA#1 내지 PA#5에 대해서도 동일한 값을 가질 수 있다.
제2 메타 영역(2544)은 제1 LBA 집합과 구분되는 제2 LBA 집합에 대한 제2 메타 영역 시그니처 정보(SGN_D2)를 저장할 수 있다. 즉, 제2 메타 영역(2544)은 LBA#6 내지 LBA#10을 포함하는 제2 LBA 집합에 대해 동일한 값(예컨대 5)을 갖는 제2 메타 영역 시그니처 정보(SGN_D2)를 저장할 수 있다. 또한, 제2 메타 영역 시그니처 정보(SGN_D2)는 LBA#6 내지 LBA#10에 대응되는 PA#6 내지 PA#10에 대해서도 동일한 값을 가질 수 있다.
디바이스(200)에 미리 저장된 제2 시그니처 정보(SGN_D)는 LBA 정보(LBA)의 값에 따라 제1 메타 영역 시그니처 정보(SGN_D1) 또는 제2 메타 영역 시그니처 정보(SGN_D2)로 결정될 수 있다. 예를 들어, LBA 정보(LBA)가 LBA#5에 해당하는 경우 제2 시그니처 정보(SGN_D)는 제1 메타 영역 시그니처 정보(SGN_D1)로 결정될 수 있고, LBA 정보(LBA)가 LBA#8에 해당하는 경우 제2 시그니처 정보(SGN_D)는 제2 메타 영역 시그니처 정보(SGN_D2)로 결정될 수 있다.
본 발명의 몇몇의 실시예에서, 호스트(100)와 디바이스(200)는 도 1에서 설명한 데이터 라인(DIN, DOUT)을 통해 서로 데이터 액세스 명령과 데이터를 주고 받을 수 있다.
이제 도 6 내지 도 14를 참조하여, 본 발명의 다양한 실시예에 따른 스토리지 디바이스(200)의 동작을 살펴보도록 한다.
도 6은 본 발명의 일 실시예에 따른 호스트 및 스토리지 디바이스의 동작을 설명하기 위한 블록도이다.
도 6을 참조하면, 본 실시예에서, 스토리지 디바이스(200)는 LBA#5에 대한 제2 메타 정보(META_D)를 생성하여 호스트(100)의 캐시 테이블(134)에 제공할 수 있다.
먼저, 스토리지 디바이스(200)의 메타 영역(254) 중 제1 메타 영역(2542)이 LBA#5에 대응되는 메타 영역이라고 가정하자. 스크램블 모듈(238)은 제1 메타 영역(2542)의 제1 메타 영역 시그니처 정보(SGN_D1)(즉, 제2 시그니처 정보(SGN_D))와 제2 PA 정보를 스크램블링하여 제2 메타 정보(META_D)를 생성한다.
예를 들어, 현재 스토리지 디바이스(200) 상에서 제1 메타 영역(2542)의 제1 메타 영역 시그니처 정보(SGN_D1)의 값이 1이고, 제1 메타 영역(2542)에 저장된 제2 PA 정보의 값이 15인 경우, 스크램블 모듈(238)은 LBA#5에 매핑되는 PA#5의 15라는 값이 유효하다는 것을 전제로 스크램블링을 수행한다.
특히, 앞서 언급한 바와 같이, 스트램블 모듈(238)은, LBA 정보와 10의 값을 갖는 글로벌 시그니처 정보(GSGN)를 함께 사용하여 제2 메타 정보(META_D)를 생성할 수 있다.
스트램블 모듈(238)에 의해 생성된 제2 메타 정보(META_D)는 호스트(100)에 전송되어, 캐시 테이블(134)에 삽입될 수 있다. 도 6에 도시된 바와 같이, 캐시 테이블(134)은 LBA 필드(134a), 메타 정보 필드(134b) 및 유효성 플래그 필드(134c)를 포함하는 레코드를 포함할 수 있으나, 본 발명의 범위가 이에 제한되는 것은 아니고 레코드의 내부 형태는 다양할 수 있다.
본 실시예에서 유효성 플래그 필드(134c)는 LBA#5와 함께 캐시 테이블(134)에 저장된 META#5가 유효한 값을 가진다는 의미로 제1 값(예컨대 'V')을 갖는다.
도 7은 본 발명의 일 실시예에 따른 호스트 및 스토리지 디바이스의 동작을 설명하기 위한 블록도이다.
도 7을 참조하면, 본 실시예에서, 호스트(100)의 명령 생성 모듈(132)은 LBA#5의 LBA 정보(300a)와, 캐시 테이블(134)로부터 제공받은 제1 메타 정보(META_H, 300b)를 포함하는 리드 명령(READ CMD)을 생성한다. 그리고 명령 생성 모듈(132)은 리드 명령(READ CMD)을 스토리지 디바이스(200)에 전송한다.
스토리지 디바이스(200)의 디스크램블 모듈(232)은 호스트(100)로부터 리드 명령(READ CMD)를 수신하고, 제1 메타 정보(META_H)를 디스크램블링하여 제1 시그니처 정보(SGN_H) 및 플래시 메모리(250)를 액세스하기 위한 제1 PA 정보(PA_H)를 획득한다. 본 실시예에서 제1 메타 정보(META_H)를 디스크램블링하여 획득한 제1 시그니처 정보(SGN_H)의 값은 1이고, 제1 PA 정보(PA_H)의 값은 15라고 가정하자.
스토리지 디바이스(200)의 비교 모듈(234)은 제1 메타 정보(META_H)를 디스크램블링하여 획득한 제1 시그니처 정보(SGN_H)의 값과, 미리 저장된 제2 시그니처 정보(SGN_D)의 값을 비교한다. 본 실시예에서, 메타 영역(254) 중 제1 메타 영역(2542)이 LBA#5에 대응되는 메타 영역이라고 가정하면, 비교 모듈(234)은 제1 시그니처 정보(SGN_H)의 값인 1과 제1 메타 영역 시그니처 정보(SGN_D1)(즉, 제2 시그니처 정보(SGN_D))의 값인 1을 비교하여 제1 메타 정보(META_H)를 디스크램블링하여 획득한 제1 PA 정보(PA_H)의 유효성을 판단한다.
스토리지 디바이스(200)의 액세스 모듈(236)은, 제1 시그니처 정보(SGN_H)의 값과 제2 시그니처 정보(SGN_D)의 값이 동일하므로, 제1 메타 정보(META_H)를 디스크램블링하여 획득한 제1 PA 정보(PA_H)가 유효한 것으로 보아 이를 이용하여 플래시 메모리(250)의 데이터 영역(252)을 액세스하고, 액세스한 데이터를 호스트(100)에 전송한다.
도 8은 본 발명의 일 실시예에 따른 호스트 및 스토리지 디바이스의 동작을 설명하기 위한 블록도이다.
도 8을 참조하면, 본 실시예가 도 7의 실시예와 다른 점은 제2 시그니처 정보(SGN_D)의 값이 2로 변경되었다는 점이다. 제2 시그니처 정보(SGN_D)의 값이 변경되는 원인은 예를 들어 호스트(100)가 스토리지 디바이스(200)에 라이트 명령(WRITE CMD)를 전송한 경우, 스토리지 디바이스(200) 내부에서 가비지 컬렉션이 수행된 경우 등이 있는데, 이에 관해서는 도 9 내지 도 14를 참조하여 후술하도록 한다.
도 7의 실시예와 유사하게, 호스트(100)의 명령 생성 모듈(132)은 LBA#5의 LBA 정보(300a)와, 캐시 테이블(134)로부터 제공받은 제1 메타 정보(META_H, 300b)를 포함하는 리드 명령(READ CMD)을 생성하여 이를 스토리지 디바이스(200)에 전송한다.
스토리지 디바이스(200)의 디스크램블 모듈(232)은 호스트(100)로부터 리드 명령(READ CMD)를 수신하고, 제1 메타 정보(META_H)를 디스크램블링하여 제1 시그니처 정보(SGN_H) 및 플래시 메모리(250)를 액세스하기 위한 제1 PA 정보(PA_H)를 획득한다. 본 실시예에서 제1 메타 정보(META_H)를 디스크램블링하여 획득한 제1 시그니처 정보(SGN_H)의 값은 1이고, 제1 PA 정보(PA_H)의 값은 15라고 가정하자.
스토리지 디바이스(200)의 비교 모듈(234)은 제1 메타 정보(META_H)를 디스크램블링하여 획득한 제1 시그니처 정보(SGN_H)의 값과, 미리 저장된 제2 시그니처 정보(SGN_D)의 값을 비교한다. 본 실시예에서, 메타 영역(254) 중 제1 메타 영역(2542)이 LBA#5에 대응되는 메타 영역이라고 가정하면, 비교 모듈(234)은 제1 시그니처 정보(SGN_H)의 값인 1과 제1 메타 영역 시그니처 정보(SGN_D1)(즉, 제2 시그니처 정보(SGN_D))의 값인 2를 비교하여 제1 메타 정보(META_H)를 디스크램블링하여 획득한 제1 PA 정보(PA_H)의 유효성을 판단한다.
스토리지 디바이스(200)의 액세스 모듈(236)은, 제1 시그니처 정보(SGN_H)의 값과 제2 시그니처 정보(SGN_D)의 값이 서로 다르므로, 제1 메타 정보(META_H)를 디스크램블링하여 획득한 제1 PA 정보(PA_H)가 유효하지 않은 것으로 본다. 이에 따라 액세스 모듈(236)은 제1 PA 정보(PA_H) 대신, 플래시 메모리(250)로부터 새로 로드한 제2 PA 정보를 이용하여 데이터 영역(252)을 액세스하고, 액세스한 데이터를 호스트(100)에 전송한다.
도 9는 본 발명의 일 실시예에 따른 호스트 및 스토리지 디바이스의 동작을 설명하기 위한 블록도이다.
도 9를 참조하면, 본 실시예에서, 호스트(100)는 스토리지 디바이스(200)에 라이트 명령(WRITE CMD)을 전송할 수 있다. 예를 들어, 호스트(100)는 라이트할 데이터에 대한 LBA 정보와, 라이트할 데이터를 스토리지 디바이스(200)에 전송할 수 있다.
이러한 경우, 스토리지 디바이스(200) 내부에 정해져 있던 LBA-PA 매핑 관계는 새롭게 형성되므로, 호스트(100)는 스토리지 디바이스(200)에 라이트 명령(WRITE CMD)을 전송하면서, 캐시 테이블(134) 내의 해당 레코드의 유효성 플래그 필드(134c)를 제2 값(예컨대 'IV')로 변경함으로써 캐시된 레코드를 무효화할 수 있다.
본 실시예에서, 스토리지 디바이스(200)는 WMC 관리 모듈(239)을 더 포함한다. WMC 관리 모듈(239)은, 호스트(100)로부터 라이트 명령(WRITE CMD)을 수신한 경우, 라이트 맵 캐시(Write Map Cache, WMC) 테이블(260)을 이용하여 라이트 명령(WRITE CMD)에 포함된 LBA 정보와 연관된 PA 정보 및 시그니처 정보를 관리하는 모듈이다.
예를 들어, 호스트(100)로부터 LBA#5에 대한 라이트 명령(WRITE CMD)을 수신한 경우, WMC 관리 모듈(239)은, LBA#5에 연관되면서 새로 정해진 PA#5의 값과, LBA#5에 대응되는 제1 메타 영역(2542)의 제1 메타 영역 시그니처 정보(SGN_D1)를 변경(예컨대 1 증가)한 값을 라이트 맵 캐시 테이블(260)에 삽입한다. 도 9에 도시된 바와 같이, 라이트 맵 캐시 테이블(260)은 LBA 필드(260a), PA 필드(260b) 및 제2 시그니처 정보 필드(260c)를 포함하는 레코드를 포함할 수 있으나, 본 발명의 범위가 이에 제한되는 것은 아니고 레코드의 내부 형태는 다양할 수 있다.
도 10은 본 발명의 일 실시예에 따른 호스트 및 스토리지 디바이스의 동작을 설명하기 위한 블록도이다.
도 10을 참조하면, 본 실시예에서, 호스트(100)의 명령 생성 모듈(132)은 LBA#5의 LBA 정보(300a)와, 캐시 테이블(134)로부터 제공받은 제1 메타 정보(META_H, 300b)를 포함하는 리드 명령(READ CMD)을 생성한다. 그리고 명령 생성 모듈(132)은 리드 명령(READ CMD)을 스토리지 디바이스(200)에 전송한다.
스토리지 디바이스(200)의 디스크램블 모듈(232)은 호스트(100)로부터 리드 명령(READ CMD)를 수신하고, 제1 메타 정보(META_H)를 디스크램블링하여 제1 시그니처 정보(SGN_H) 및 플래시 메모리(250)를 액세스하기 위한 제1 PA 정보(PA_H)를 획득한다. 본 실시예에서 제1 메타 정보(META_H)를 디스크램블링하여 획득한 제1 시그니처 정보(SGN_H)의 값은 2이고, 제1 PA 정보(PA_H)의 값은 21이라고 가정하자.
스토리지 디바이스(200)의 비교 모듈(234)은 제1 메타 정보(META_H)를 디스크램블링하여 획득한 제1 시그니처 정보(SGN_H)의 값과, 미리 저장된 제2 시그니처 정보(SGN_D)의 값을 비교한다. 도 7의 경우와 달리, 본 실시예에서, 비교 모듈(234)은 제1 시그니처 정보(SGN_H)의 값인 2와 라이트 맵 캐시 테이블(260)에 저장된 값인 2를 비교하여 제1 메타 정보(META_H)를 디스크램블링하여 획득한 제1 PA 정보(PA_H)의 유효성을 판단한다.
스토리지 디바이스(200)의 액세스 모듈(236)은, 제1 시그니처 정보(SGN_H)의 값과 라이트 맵 캐시 테이블(260)에 저장된 제2 시그니처 정보(SGN_D)의 값이 동일하므로, 제1 메타 정보(META_H)를 디스크램블링하여 획득한 제1 PA 정보(PA_H)가 유효한 것으로 보아 이를 이용하여 플래시 메모리(250)의 데이터 영역(252)을 액세스하고, 액세스한 데이터를 호스트(100)에 전송한다.
도 11은 본 발명의 일 실시예에 따른 호스트 및 스토리지 디바이스의 동작을 설명하기 위한 블록도이다.
도 11을 참조하면, 본 실시예가 도 10의 실시예와 다른 점은 제1 메타 정보(META_H)를 디스크램블링하여 획득한 제1 시그니처 정보(SGN_H)의 값은 1이고, 제1 PA 정보(PA_H)의 값은 15라는 점이다.
도 10의 실시예와 유사하게, 호스트(100)의 명령 생성 모듈(132)은 LBA#5의 LBA 정보(300a)와, 캐시 테이블(134)로부터 제공받은 제1 메타 정보(META_H, 300b)를 포함하는 리드 명령(READ CMD)을 생성하여 이를 스토리지 디바이스(200)에 전송한다.
스토리지 디바이스(200)의 디스크램블 모듈(232)은 호스트(100)로부터 리드 명령(READ CMD)를 수신하고, 제1 메타 정보(META_H)를 디스크램블링하여 제1 시그니처 정보(SGN_H) 및 플래시 메모리(250)를 액세스하기 위한 제1 PA 정보(PA_H)를 획득한다.
스토리지 디바이스(200)의 비교 모듈(234)은 제1 메타 정보(META_H)를 디스크램블링하여 획득한 제1 시그니처 정보(SGN_H)의 값과, 미리 저장된 제2 시그니처 정보(SGN_D)의 값을 비교한다. 도 8의 경우와 달리, 본 실시예에서, 비교 모듈(234)은 제1 시그니처 정보(SGN_H)의 값인 1과 라이트 맵 캐시 테이블(260)에 저장된 값인 2를 비교하여 제1 메타 정보(META_H)를 디스크램블링하여 획득한 제1 PA 정보(PA_H)의 유효성을 판단한다.
스토리지 디바이스(200)의 액세스 모듈(236)은, 제1 시그니처 정보(SGN_H)의 값과 제2 시그니처 정보(SGN_D)의 값이 서로 다르므로, 제1 메타 정보(META_H)를 디스크램블링하여 획득한 제1 PA 정보(PA_H)가 유효하지 않은 것으로 본다. 이에 따라 액세스 모듈(236)은 제1 PA 정보(PA_H) 대신, 플래시 메모리(250)로부터 새로 로드한 제2 PA 정보를 이용하여 데이터 영역(252)을 액세스하고, 액세스한 데이터를 호스트(100)에 전송한다.
도 12는 본 발명의 일 실시예에 따른 호스트 및 스토리지 디바이스의 동작을 설명하기 위한 블록도이고, 도 13은 도 12의 메타 영역의 일례를 설명하기 위한 블록도이다.
도 12를 참조하면, 스토리지 디바이스(250)의 데이터 영역(252)에 대해 가비지 컬렉션이 수행될 수 있다. 가비지 컬렉션은 데이터 영역(252) 전 영역에 대해 수행될 수도 있고, 일부 영역에 대해 수행될 수도 있다. 이 경우 데이터 영역(252) 중 가비지 컬렉션이 수행된 영역에 대한 이전의 LBA-PA 매핑 관계는 전부 유효하지 않게 된다.
본 실시예에서, 스토리지 디바이스(250)는 가비지 컬렉션 모듈(GC module)(270)을 더 포함할 수 있다. 가비지 컬렉션 모듈(270)은, 데이터 영역(252)의 적어도 일부 영역에 대해 가비지 컬렉션이 수행되는 경우, 제1 메타 영역 시그니처 정보(SGN_D1) 또는 제2 메타 영역 시그니처 정보(SGN_D2)의 값을 변경한다. 예를 들어, 도 12 및 도 13을 함께 참조하면, 제1 메타 영역(2542)에 해당하는 LBA#1 내지 LBA#5에 대한 PA#1 내지 PA#5의 값이 모두 변경되었고, 이에 따라 가비지 컬렉션 모듈(270)은 제1 메타 영역 시그니처 정보(SGN_D1)의 값을 1에서 2로 변경하였음을 알 수 있다.
결과적으로, 가비지 컬렉션의 영향을 받는 LBA에 관해 호스트(100)로부터 제공되는 캐싱된 PA는 필연적으로 유효하지 않은 값으로 취급되어, 스토리지 디바이스(250)는 이후 플래시 메모리(250)로부터 새로 로드한 제2 PA 정보를 이용하여 데이터 영역(252)을 액세스하게 된다.
도 14는 본 발명의 일 실시예에 따른 호스트 및 스토리지 디바이스의 동작을 설명하기 위한 블록도이다.
도 14를 참조하면, 도 12의 실시예서와 같이, 스토리지 디바이스(250)의 데이터 영역(252)의 전 영역 또는 일부 영역에 대해 가비지 컬렉션이 수행되어 가비지 컬렉션 모듈(270)이 제1 메타 영역 시그니처 정보(SGN_D1) 또는 제2 메타 영역 시그니처 정보(SGN_D2)의 값을 변경하는 경우, 오버플로(overflow)가 발생할 수 있다.
예를 들어, 제1 메타 영역 시그니처 정보(SGN_D1)의 값이 n 비트로 표현되는 경우, 제1 메타 영역 시그니처 정보(SGN_D1)가 가질 수 있는 값의 범위는 0 내지 2n-1 까지가 된다. n이 4인 경우 제1 메타 영역 시그니처 정보(SGN_D1)가 가질 수 있는 값의 범위는 0 내지 7이 된다.
가비지 컬렉션 모듈(270)이 제1 메타 영역 시그니처 정보(SGN_D1)의 값을 변경하기 위해 1 증가시킨 경우, 그 값이 범위를 벗어나는 2n의 값이 된다면 n 개의 비트로는 표현할 수 없다. 따라서 가비지 컬렉션 모듈(270)은 제1 메타 영역 시그니처 정보(SGN_D1) 또는 제2 메타 영역 시그니처 정보(SGN_D2)의 값을 변경하여 오버플로가 발생한 경우, 변경한 상기 제1 메타 영역 시그니처 정보(SGN_D1) 또는 제2 메타 영역 시그니처 정보(SGN_D2)의 값을 예컨대 0으로 재설정한다.
더불어, 가비지 컬렉션 모듈(270)은 제1 메타 영역 시그니처 정보(SGN_D1) 또는 제2 메타 영역 시그니처 정보(SGN_D2)의 값을 변경하여 오버플로가 발생한 경우, 글로벌 시그니처 정보(GSGN)의 값을 다른 값으로 변경한다. 예를 들어, 도 14에서는 글로벌 시그니처 정보(GSGN)의 값을 10에서 50으로 변경한다.
이제까지 설명한 본 발명의 다양한 실시예들에 따르면, 호스트가 스토리지 디바이스의 PA를 캐싱하는 아키텍처에 있어서, 호스트로부터 제공받은 캐싱된 PA의 유효성을 간결하면서도 효율적인 방식으로 검사할 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였으나, 본 발명은 상기 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 제조될 수 있으며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
1: 반도체 시스템 100: 호스트
110: 어플리케이션 120: 드라이버
130: 호스트 컨트롤러 132: 명령 생성 모듈
134: 캐시 테이블 140: UIC
200: 스토리지 디바이스 230: 디바이스 컨트롤러
232: 디스크램블 모듈 234: 비교 모듈
236: 액세스 모듈 238: 스크램블 모듈
239: WMC 관리 모듈 240: UIC
250: 비휘발성 메모리(플래시 메모리)
252: 데이터 영역 254: 메타 영역
256: 글로벌 시그니처 영역 260: 라이트 맵 캐시 테이블
270: 가비지 컬렉션 모듈

Claims (20)

  1. 호스트로부터 LBA(Logical Block Address) 정보 및 제1 메타 정보를 포함하는 리드 명령을 수신하고, 상기 제1 메타 정보를 디스크램블링(descrambling)하여 제1 시그니처(signature) 정보 및 플래시 메모리를 액세스하기 위한 제1 PA(Physical Address) 정보를 획득하는 디스크램블 모듈(descramble module);
    상기 제1 시그니처 정보의 값과, 미리 저장된 제2 시그니처 정보의 값을 비교하여 그 동일 여부를 판단하는 비교 모듈(compare module); 및
    상기 제1 시그니처 정보의 값과 상기 제2 시그니처 정보의 값이 동일한 경우, 상기 제1 PA 정보를 이용하여 상기 플래시 메모리의 데이터 영역을 액세스(access)하고, 상기 제1 시그니처 정보의 값과 상기 제2 시그니처 정보의 값이 다른 경우, 상기 플래시 메모리로부터 제2 PA 정보를 로드(load)하고, 상기 제2 PA 정보를 이용하여 상기 데이터 영역을 액세스하는 액세스 모듈(access module)을 포함하는 스토리지 디바이스.
  2. 삭제
  3. 제1항에 있어서,
    상기 플래시 메모리는 상기 제2 시그니처 정보를 저장하는 메타 영역을 포함하고,
    상기 비교 모듈은 상기 제1 시그니처 정보의 값과, 상기 메타 영역에 저장된 상기 제2 시그니처 정보의 값을 비교하여 그 동일 여부를 판단하는 스토리지 디바이스.
  4. 제3항에 있어서,
    상기 메타 영역은 제1 메타 영역 및 제2 메타 영역을 포함하고,
    상기 제1 메타 영역은 제1 LBA 집합에 대한 제1 메타 영역 시그니처 정보를 저장하고,
    상기 제2 메타 영역은 상기 제1 LBA 집합과 구분되는 제2 LBA 집합에 대한 제2 메타 영역 시그니처 정보를 저장하고,
    상기 제2 시그니처 정보는 상기 LBA 정보의 값에 따라 상기 제1 메타 영역 시그니처 정보 또는 상기 제2 메타 영역 시그니처 정보로 결정되는 스토리지 디바이스.
  5. 제4항에 있어서,
    상기 데이터 영역의 적어도 일부 영역에 대해 가비지 컬렉션(garbage collection)이 수행되는 경우, 상기 제1 메타 영역 시그니처 정보 또는 상기 제2 메타 영역 시그니처 정보의 값을 변경하는 가비지 컬렉션 모듈(GC module)을 더 포함하는 스토리지 디바이스.
  6. 제1항에 있어서,
    상기 호스트로부터 라이트 명령을 수신한 경우, 라이트 맵 캐시(Write Map Cache, WMC) 테이블을 이용하여 상기 라이트 명령에 포함된 LBA 정보와 연관된 PA 정보 및 시그니처 정보를 관리하는 WMC 관리 모듈을 더 포함하는 스토리지 디바이스.
  7. 제6항에 있어서,
    상기 비교 모듈은 상기 제1 시그니처 정보의 값과, 상기 라이트 맵 캐시 테이블에 저장된 상기 제2 시그니처 정보의 값을 비교하여 그 동일 여부를 판단하는 스토리지 디바이스.
  8. 호스트로부터 LBA(Logical Block Address) 정보 및 제1 메타 정보를 포함하는 리드 명령을 수신하고, 상기 제1 메타 정보를 디스크램블링(descrambling)하여 제1 시그니처(signature) 정보 및 플래시 메모리를 액세스하기 위한 제1 PA(Physical Address) 정보를 획득하는 디스크램블 모듈(descramble module); 및
    상기 제1 시그니처 정보의 값과, 미리 저장된 제2 시그니처 정보의 값을 비교하여 상기 제1 PA 정보의 유효성을 판단하는 비교 모듈(compare module)을 포함하고,
    상기 플래시 메모리는 상기 제2 시그니처 정보를 저장하는 메타 영역을 포함하고,
    상기 비교 모듈은 상기 제1 시그니처 정보의 값과, 상기 메타 영역에 저장된 상기 제2 시그니처 정보의 값을 비교하는 스토리지 디바이스.
  9. 제8항에 있어서,
    상기 비교 모듈은,
    상기 제1 시그니처 정보의 값과 상기 제2 시그니처 정보의 값이 동일한 경우, 상기 제1 PA 정보의 값이 유효하다고 판단하고,
    상기 제1 시그니처 정보의 값과 상기 제2 시그니처 정보의 값이 다른 경우, 상기 제1 PA 정보의 값이 유효하지 않다고 판단하는 스토리지 디바이스.
  10. 제9항에 있어서,
    상기 제1 PA 정보가 유효하다고 판단된 경우, 상기 제1 PA 정보를 이용하여 상기 플래시 메모리의 데이터 영역을 액세스(access)하고,
    상기 제1 PA 정보가 유효하지 않다고 판단된 경우, 상기 플래시 메모리로부터 제2 PA 정보를 로드(load)하고, 상기 제2 PA 정보를 이용하여 상기 데이터 영역을 액세스하는 액세스 모듈(access module)을 더 포함하는 스토리지 디바이스.
  11. 삭제
  12. 제8항에 있어서,
    상기 메타 영역은 제1 메타 영역 및 제2 메타 영역을 포함하고,
    상기 제1 메타 영역은 제1 LBA 집합에 대한 제1 메타 영역 시그니처 정보를 저장하고,
    상기 제2 메타 영역은 상기 제1 LBA 집합과 구분되는 제2 LBA 집합에 대한 제2 메타 영역 시그니처 정보를 저장하고,
    상기 제2 시그니처 정보는 상기 LBA 정보의 값에 따라 상기 제1 메타 영역 시그니처 정보 또는 상기 제2 메타 영역 시그니처 정보로 결정되는 스토리지 디바이스.
  13. 제8항에 있어서,
    상기 호스트로부터 라이트 명령을 수신한 경우, 라이트 맵 캐시(Write Map Cache, WMC) 테이블을 이용하여 상기 라이트 명령에 포함된 LBA 정보와 연관된 PA 정보 및 시그니처 정보를 관리하는 WMC 관리 모듈을 더 포함하는 스토리지 디바이스.
  14. 제13항에 있어서,
    상기 비교 모듈은 상기 제1 시그니처 정보의 값과, 상기 라이트 맵 캐시 테이블에 저장된 상기 제2 시그니처 정보의 값을 비교하는 스토리지 디바이스.
  15. 스크램블 모듈에 의해, 제1 PA(Physical Address) 정보와 제1 시그니처(signature) 정보를 스크램블링하여 제1 메타 정보를 생성하고, 이를 호스트에 전송하고,
    디스크램블 모듈에 의해, 상기 호스트로부터 LBA(Logical Block Address) 정보 및 상기 제1 메타 정보를 포함하는 리드 명령을 수신하고, 상기 제1 메타 정보를 디스크램블링(descrambling)하여 상기 제1 시그니처 정보 및 플래시 메모리를 액세스하기 위한 상기 제1 PA 정보를 획득하고,
    비교 모듈에 의해, 상기 제1 시그니처 정보의 값과, 상기 플래시 메모리에 상기 호스트로부터의 리드 명령이 수신되기 전에 미리 저장된 제2 시그니처 정보의 값을 비교하여 상기 제1 PA 정보의 유효성을 판단하는 것을 포함하는 스토리지 디바이스의 동작 방법.
  16. 제15항에 있어서,
    상기 유효성을 판단하는 것은,
    상기 제1 시그니처 정보의 값과 상기 제2 시그니처 정보의 값이 동일한 경우, 상기 제1 PA 정보의 값이 유효하다고 판단하고,
    상기 제1 시그니처 정보의 값과 상기 제2 시그니처 정보의 값이 다른 경우, 상기 제1 PA 정보의 값이 유효하지 않다고 판단하는 것을 포함하는 스토리지 디바이스의 동작 방법.
  17. 제16항에 있어서,
    상기 제1 PA 정보가 유효하다고 판단된 경우, 상기 제1 PA 정보를 이용하여 상기 플래시 메모리의 데이터 영역을 액세스(access)하고,
    상기 제1 PA 정보가 유효하지 않다고 판단된 경우, 상기 플래시 메모리로부터 제2 PA 정보를 로드(load)하고, 상기 제2 PA 정보를 이용하여 상기 데이터 영역을 액세스하는 것을 더 포함하는 스토리지 디바이스의 동작 방법.
  18. 제15항에 있어서,
    상기 플래시 메모리는 상기 제2 시그니처 정보를 저장하는 메타 영역을 포함하고,
    상기 유효성을 판단하는 것은,
    상기 제1 시그니처 정보의 값과, 상기 메타 영역에 저장된 상기 제2 시그니처 정보의 값을 비교하여 상기 제1 PA 정보의 유효성을 판단하는 것을 포함하는 스토리지 디바이스의 동작 방법.
  19. 제15항에 있어서,
    상기 호스트로부터 라이트 명령을 수신하고,
    라이트 맵 캐시(Write Map Cache, WMC) 테이블에 상기 라이트 명령에 포함된 LBA 정보와 연관된 PA 정보 및 시그니처 정보를 삽입하는 것을 더 포함하는 스토리지 디바이스의 동작 방법.
  20. 제19항에 있어서,
    상기 유효성을 판단하는 것은,
    상기 제1 시그니처 정보의 값과, 상기 라이트 맵 캐시 테이블에 저장된 상기 제2 시그니처 정보의 값을 비교하여 상기 제1 PA 정보의 유효성을 판단하는 것을 포함하는 스토리지 디바이스의 동작 방법.
KR1020180064106A 2018-02-20 2018-06-04 스토리지 디바이스 및 스토리지 디바이스의 동작 방법 KR102651408B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
US16/133,778 US10997066B2 (en) 2018-02-20 2018-09-18 Storage devices that support cached physical address verification and methods of operating same
EP18196417.2A EP3528129B1 (en) 2018-02-20 2018-09-25 Storage devices that support cached physical address verification and methods of operating same
CN201811454417.XA CN110175138B (zh) 2018-02-20 2018-11-30 支持高速缓存的物理地址验证的存储装置及操作其的方法
SG10201900022YA SG10201900022YA (en) 2018-02-20 2019-01-02 Storage devices that support cached physical address verification and methods of operating same
US17/222,106 US11775423B2 (en) 2018-02-20 2021-04-05 Storage devices that support cached physical address verification and methods of operating same

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20180019784 2018-02-20
KR1020180019784 2018-02-20

Publications (2)

Publication Number Publication Date
KR20190099994A KR20190099994A (ko) 2019-08-28
KR102651408B1 true KR102651408B1 (ko) 2024-03-26

Family

ID=67775139

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180064106A KR102651408B1 (ko) 2018-02-20 2018-06-04 스토리지 디바이스 및 스토리지 디바이스의 동작 방법

Country Status (2)

Country Link
KR (1) KR102651408B1 (ko)
SG (1) SG10201900022YA (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102547950B1 (ko) * 2021-01-13 2023-06-27 삼성전자주식회사 호스트 메모리 버퍼를 이용하는 프로세서 및 이를 포함하는 스토리지 시스템

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100881597B1 (ko) * 2007-02-02 2009-02-03 지인정보기술 주식회사 읽기 요청 처리 시스템 및 방법
US8635430B2 (en) * 2010-06-23 2014-01-21 International Business Machines Corporation Translation of input/output addresses to memory addresses

Also Published As

Publication number Publication date
KR20190099994A (ko) 2019-08-28
SG10201900022YA (en) 2019-09-27

Similar Documents

Publication Publication Date Title
CN108804023B (zh) 数据存储装置及其操作方法
US10983722B2 (en) Data storage device using host memory buffer and method of operating the same
EP3528129B1 (en) Storage devices that support cached physical address verification and methods of operating same
KR102596400B1 (ko) 데이터 저장 장치 및 데이터 저장 장치의 동작 방법
US20140129761A1 (en) Non-volatile memory device and host device configured to communication with the same
US11573733B2 (en) Data storage device and data storage system
US9223696B2 (en) Data storage device for holding erasure of victim block having valid page copied to merge block and method of operating the same
KR102589402B1 (ko) 스토리지 디바이스 및 스토리지 디바이스의 동작 방법
KR102515137B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
KR102653843B1 (ko) 데이터 저장 장치 및 이의 리드 디스터번스 방지 방법, 이를 이용한 스토리지 시스템
KR102595233B1 (ko) 데이터 처리 시스템 및 그것의 동작 방법
KR20200054537A (ko) 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템
KR102620727B1 (ko) 전자 장치
KR102596964B1 (ko) 맵 캐시 버퍼 크기를 가변시킬 수 있는 데이터 저장 장치
KR102434840B1 (ko) 데이터 저장 장치
KR20200114086A (ko) 컨트롤러, 메모리 시스템 및 그것의 동작 방법
KR102651408B1 (ko) 스토리지 디바이스 및 스토리지 디바이스의 동작 방법
KR20210152831A (ko) 데이터 저장 장치 및 그 동작 방법
KR20210156061A (ko) 저장 장치 및 그 동작 방법
US20240078322A1 (en) Memory system, memory controller and operation method thereof
US11657000B2 (en) Controller and memory system including the same
US20240097885A1 (en) Memory controller and storage device including same
KR20240039284A (ko) 스토리지 장치, 호스트 장치 및 전자 장치
KR20200114208A (ko) 컨트롤러, 메모리 시스템 및 컨트롤러의 동작 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant