KR20110059770A - 메모리 장치를 위한 삽입된 매핑 정보 - Google Patents

메모리 장치를 위한 삽입된 매핑 정보 Download PDF

Info

Publication number
KR20110059770A
KR20110059770A KR1020117008630A KR20117008630A KR20110059770A KR 20110059770 A KR20110059770 A KR 20110059770A KR 1020117008630 A KR1020117008630 A KR 1020117008630A KR 20117008630 A KR20117008630 A KR 20117008630A KR 20110059770 A KR20110059770 A KR 20110059770A
Authority
KR
South Korea
Prior art keywords
data
physical
logical
block
page
Prior art date
Application number
KR1020117008630A
Other languages
English (en)
Other versions
KR101392701B1 (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
Priority claimed from US12/268,879 external-priority patent/US8732388B2/en
Application filed by 마이크론 테크놀로지, 인크. filed Critical 마이크론 테크놀로지, 인크.
Publication of KR20110059770A publication Critical patent/KR20110059770A/ko
Application granted granted Critical
Publication of KR101392701B1 publication Critical patent/KR101392701B1/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
    • 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
    • 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
    • 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/7207Details relating to flash memory management management of metadata or control data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

메모리 모듈들 및 메모리 모듈들을 동작시키는 방법들은 매핑 정보가 속하는 블록들의 메모리 셀의 블록들 내에 매핑 정보를 삽입한다. 특히, 페이지가 논리 데이터 블록을 위해 기입될 때, 이 페이지는 이 논리 데이터 블록에 대한 현재 매핑 정보의 간략정보를 포함한다. 이렇게 하여, 논리 데이터 블록의 마지막 유효 물리 페이지는 이 블록의 물리/논리 매핑을 내포할 것이다. 이에 따라, 매핑 정보를 재구축하기 위해 메모리 장치의 모든 유효 페이지를 스캐닝하는 대신에, 메모리 모듈은 각각의 논리 데이터 블록의 마지막 유효 물리 페이지만에 대해 스캔할 수 있다. 일단 논리 데이터 블록에 대해 마지막 유효 물리 페이지가 발견되면, 이 논리 데이터 블록에 대한 가장 최신의 매핑 정보가 이 페이지로부터 읽혀질 수 있다.

Description

메모리 장치를 위한 삽입된 매핑 정보{EMBEDDED MAPPING INFORMATION FOR MEMORY DEVICES}
본 발명은 일반적으로 반도체 메모리에 관한 것으로, 특히 하나 이상의 실시예들에서, 본 발명은 메모리 장치들를 위한 삽입된 매핑 정보를 이용하는 방법들 및 장치들에 관한 것이다.
전자장치들은 일반적으로 이들이 이용할 수 있는 어떤 유형의 대량 저장장치를 구비한다. 일반적인 예는 하드디스크 드라이브(HDD)이다. HDD들은 비교적 저 비용으로 상당량을 저장할 수 있으며 현재 1 테라바이트 용량 이상의 소비자 HDD들이 사용가능하다.
일반적으로 HDD들은 회전하는 자기 매체들 또는 플래터들(platter) 상에 데이터를 저장한다. 데이터는 전형적으로 플래터들 상에 자속 반전들의 패턴으로서 저장된다. 전형적인 HDD에 데이터를 기입하기 위해서, 플래터는 고속으로 회전되고 이때 플래터 위에 떠있는 기입 헤드는 플래터 상에 자기 입자들을 정렬시켜 데이터를 나타내기 위해 일련의 자기펄스들을 발생한다. 전형적인 HDD로부터 데이터를 판독하기 위해서, 고속으로 회전되는 플래터 위에 자기저항 판독 헤드가 떠있을 때 자기저항 판독 헤드에 저항변화들이 유발된다. 실제로, 결과적인 데이터 신호는 아날로그 신호이며 이의 산들(peak) 및 골들(valley)은 데이터 패턴의 자속 역전들의 결과이다. 아날로그 데이터 신호를 샘플링하여 데이터 신호를 발생하게 할 가능성이 있는 데이터 패턴인지를 판정하기 위해서 부분 응답 최대 가능성(PRML)이라고 하는 디지털 신호 처리 기술들이 사용된다.
HDD들은 이들의 기계적 본질에 기인하여 어떤 결점들을 갖고 있다. HDD들은 충격, 진동 혹은 강한 자장들에 기인하여 손상받거나 과도한 판독/기입 오류들이 일어나기 쉽다. 또한, 이들은 휴대 전자장치들에서 비교적 대량의 파워를 사용한다.
대량 저장장치의 또 다른 예는 고체상태 드라이브(SSD)이다. 회전하는 매체들 상에 데이터를 저장하는 대신에, SSD들은 이들의 데이터를 저장하기 위해 반도체 메모리 장치들을 이용하지만, 이들의 호스트 시스템들에 자신들이 마치 전형적인 HDD인 것처럼 보이게 하기 위한 인터페이스 및 폼 팩터(form factor)를 포함한다. SSD들의 메모리 장치들은 전형적으로 비휘발성 플래시 메모리 장치들이다.
플래시 메모리 장치들은 광범위한 전자기기들용으로 비휘발성 메모리의 보급원으로 개발되었다. 플래시 메모리 장치들은 전형적으로 고 메모리 밀도들, 고 신뢰성, 및 저 파워 소비를 할 수 있게 하는 1-트랜지스터 메모리 셀을 사용한다. 전하 저장 노드들(예를 들면, 플로팅 게이트들 또는 트랩층들)의 프로그래밍 또는 그외 물리적 현상들(예를 들면, 상변화 또는 분극)을 통해, 셀들의 임계전압에 변화들은 각 셀의 데이터 값을 결정한다. 플래시 메모리 및 이외 비휘발성 메모리에 대한 일반적인 용도는 개인용 컴퓨터들, PDA들(personal digital assistants), 디지털 카메라들, 디지털 미디어 플레이어들, 디지털 레코더들, 게임들, 가전기기, 차량들, 무선장치들, 이동전화들, 및 착탈가능 메모리 모듈들을 포함하며, 비휘발성 메모리에 대한 용도는 계속 확대되고 있다.
HDD들과는 달리, SSD들의 동작은 일반적으로 이들의 고체상태 본질에 기인하여 진동, 충격 혹은 자장의 우려가 없다. 유사하게, 움직이는 부품들이 없어, SSD들은 HDD들보다 낮은 파워 요건을 갖는다. 그러나, SSD들은 현재 동일 폼 팩터의 HDD들에 비해 훨씬 적은 저장용량들을 갖고 있고 동등한 저장용량들에 대해 현저히 높은 비용을 갖고 있다.
플래시 메모리 장치들의 특성에 기인하여, 주어진 논리 어드레스들에 대한 플래시 메모리 장치 내에 물리적 위치는 일반적으로 시간에 따라 변할 것이다. 이 변하는 대응관계를 해결하기 위해서, 데이터가 저장된 물리 어드레스에 논리 어드레스를 매핑하기 위해서 플래시 번역층(FTL)이 사용된다. 이 고-레벨 매핑 정보가 흔히 메모리 장치의 동작동안 사용의 용이성을 위해 휘발성 메모리에 유지될지라도, 이러한 매핑 정보는 장치의 기동시 검색할 수 있게 비휘발성 메모리에 주기적으로 저장된다. 대안적으로, 이 매핑정보는 각 기입동작마다 비휘발성 저장장치에 업데이트될 수도 있다. SSD가 갑자기 전원이 나가 가장 최근의 매핑 정보가 비휘발성 메모리에 저장되지 않았다면, 논리 어드레스들과 현재 물리 어드레스들 간에 관계를 재구축하기 위해서 SSD를 형성하는 메모리 장치들의 모든 유효 페이지가 스캔된다. 이 스캐닝에 상당한 시간이 걸릴 수 있고, 이 동안엔 호스트가 SSD를 사용할 수 없다.
위에 언급된 이유로, 그리고 본 명세서를 읽고 이해하였을 때 당업자들에게 명백하게 될 그외의 이유로, 이 기술에서는 대안적 대량 저장 선택들에 대한 필요성이 있다.
도 1은 본 발명의 실시예에 따라 적어도 한 메모리 모듈을 구비한 전자 시스템의 기능 블록도이다.
도 2는 본 발명의 실시예에 따라 데이터 블록 및 이의 연관된 로그 블록들을 나타낸 것이다.
도 3은 본 발명의 실시예에 따라 페이지의 데이터 구조를 나타낸 것이다.
도 4a 및 도 4b는 본 발명의 실시예에 따라 복수의 물리 데이터 블록들을 결합한 논리 데이터 블록을 블록으로 나타낸 것이다.
도 5는 본 발명의 실시예에 따른 메모리 모듈 동작 방법의 흐름도이다.
도 6은 본 발명의 실시예에 따른 메모리 모듈 동작 방법의 흐름도이다.
본 실시예들의 다음 상세한 설명에서, 본 명세서의 일부를 이루며 실시예들이 실시될 수 있는 특정 실시예들을 예시로서 도시한 첨부한 도면들을 참조한다. 이들 실시예들은 당업자들이 발명을 실시할 수 있게 하기 위해 충분히 상세히 기술되고, 다른 실시예들이 이용될 수 있고 공정, 전기적 혹은 기계적 변경들이 본 개시 범위 내에서 행해질 수 있음을 알아야 한다. 따라서, 다음 상세한 설명은 제한의 의미로 취해지지 않아야 한다.
도 1은 본 발명의 일실시에에 따라 전자 시스템(120)의 부분으로서 프로세서(130)와 통신하는(예를 들면, 이에 결합된) 고체상태 드라이브(SSD)(100)의 블록도이다. 전자 시스템(120)은 이의 프로세서(130)를 통해 SSD(100)의 동작을 제어하는 점에서 SSD(100)의 호스트인 것으로 간주될 수 있다. 전자 시스템들의 일부 예들은 개인용 컴퓨터, 랩탑 컴퓨터들, PDA들, 디지털 카메라, 디지털 미디어 플레이어들, 디지털 레코더들, 전자 게임기들 등을 포함한다. 프로세서(130)는 디스크 드라이브 제어기 또는 그외 외부 프로세서일 수 있다. 전형적으로 프로세서(130)와 SSD(100)를 연결하기 위해 사용되는 표준 프로토콜을 채용하는 통신 버스(132)가 존재한다. 통신 버스(132)는 전형적으로 어드레스, 데이터, 파워 및 각종 I/O 신호들을 포함하는 복수의 신호들로 구성된다. 통신 버스(132)의 유형은 시스템(120)에서 이용되는 드라이브 인터페이스의 유형에 따를 것이다. 일부 통상적인 디스크 드라이브 인터페이스 버스 프로토콜들의 예들은 IDE, ATA, SATA, PATA, Fibre 채널 및 SCSI이다. 이외에 드라이브 인터페이스들이 존재하고 이 기술에 공지되어 있다. 도 1은 본 발명의 실시예들에 중점을 두기 위해 단순화된 것에 유의한다. 추가적인 혹은 상이한 성분들, 연결들 및 I/O 신호들은 본 발명의 범위 내에서 이 기술에 공지된 바대로 구현될 수도 있을 것이다. 예를 들어, SSD(100)는 파워 조절/분배 회로, 휘발성 메모리 및 이의 제어기, 등을 포함할 수도 있을 것이다. 그러나, 이러한 추가적인 성분들은 본 발명을 이해하는데 필요한 것은 아니다.
도 1에 도시된 바와 같이, 본 발명의 일실시예에 따른 SSD(100)는 프로세서(130), 예를 들면 드라이브 제어기가 통신 버스(132)를 통해 SSD(100)와 상호작용할 수 있게 하는 인테페이스(102)를 포함한다. 인터페이스(102)는 당업자들에게 공지된 많은 표준화된 컨넥터들 중 하나일 수 있다. 이들 인터페이스(102)의 일부 예들은 IDE, ATA, SATA, 및 PCMCIA 커넥터들이다. 본 발명의 여러 실시예들이 다양한 통상적인 유형의 HDD들을 에뮬레이트하게 구성될 수 있으므로, 인터페이스(102)에 다른 디스크 드라이브 컨넥터들이 이용될 수도 있다.
도 1의 SSD(100)는 또한 마스터 제어기(104) 및 다수의 메모리 모듈들(1061 ~ 106N)을 포함한다. 마스터 제어기(104)에 의해 수행되는 기능들 중 일부는 SSD(100) 내에 동작들을 관리하고 통신 버스(132)를 통해 이를테면 프로세서(130)와 같은 SSD(100) 외부에 장치들과 통신하는 것이다. 메모리 모듈들(1061 ~ 106N)은 SSD(110)를 위한 대량 저장 매체로서 작용한다.
마스터 제어기(104)는 SSD(100)의 여러 동작들을 관리한다. 논의되는 바와 같이, SSD(100)는 표준 HDD 대용으로 그대로 사용될 수 있고 표준 인터페이스들 및 통신 프로토콜들을 갖는 표준화된 HDD들이 존재한다. 마스터 제어기(104)의 많은 기능들 중 하나는 이들 표준화된 HDD 프로토콜들 중 한 프로토콜의 동작을 에뮬레이트하는 것이다. 마스터 제어기(104)의 또 다른 기능은 SSD(100)에 설치된 메모리 모듈들(106)의 동작을 관리하는 것이다. 마스터 제어기(104)는 다양한 표준 통신 프로토콜들을 사용하여 메모리 모듈들(106)과 통신하게 구성될 수 있다. 예를 들어, 본 발명의 일실시예에서, 마스터 제어기(104)는 SATA 프로토콜을 사용하여 메모리 모듈들(106)과 상호작용한다. 다른 실시예들은 메모리 모듈들(106)과 통신하기 위해 다른 통신 프로토콜들을 이용할 수 있다. 마스터 제어기(104)는 이를테면 오류정정 코드(ECC) 체크와 같은 메모리 모듈들에 관계된 추가적인 기능들을 수행할 수도 있다. 마스터 제어기(104)의 구현은 하드웨어 또는 하드웨어/소프트웨어 조합을 사용함으로써 달성될 수 있다. 예를 들면, 마스터 제어기(104)는 상태머신에 의해 전체적으로 혹은 부분적으로 구현될 수 있다.
메모리 모듈들(106)은 내부 통신 버스(112)를 사용하여 마스터 제어기(104)에 결합된다. 마스터 제어기(104)와 메모리 모듈들(106) 간에 통신은 도시된 바와 같이 공통 버스(112)를 이용함으로써 및/또는 마스터 제어기(104)와 각각의 메모리 모듈(106) 간에 개별적 연결들을 이용함으로써 구현될 수 있다.
제어회로(110)는 비휘발성 메모리 장치들(116)의 대응하는 메모리 모듈들(1061 ~ 106N) 상에 이들 비휘발성 메모리 장치들(116)의 동작을 관리한다. 메모리 장치들(116)은 플래시 메모리 장치들일 수 있다. 제어회로(110)는 메모리 모듈들(1061 ~ 106N)과 통신하기 위해 마스터 제어기(104)에 의해 이용되는 통신 프로토콜을 번역하게 동작할 수 있다. 예를 들어, 본 발명의 일실시예에서, 마스터 제어기(104)는 메모리 모듈들(1061 ~ 106N)과 상호작용하기 위해 SATA 프로토콜을 이용하고 있을 수 있다. 이러한 실시예에서, 제어회로(110)는 SATA 인터페이스를 에뮬레이트하게 구성된다. 제어회로(110)는 메모리 모듈에 저장된 데이터에에 액세스 및 마모 레벨을 조절하는 안전성 특징들과 같은 다른 메모리 기능들을 관리할 수도 있다. 또한, 제어회로(110)는 본 발명의 하나 이상의 방법들을 수행하게 구성된다.
위에 언급된 바와 같이, 플래시 메모리 장치들의 특성에 기인하여, 주어진 논리 어드레스들에 대한 플래시 메모리 장치 내에 물리적 위치는 일반적으로 시간에 따라 변할 것이다. 이것은 플래시 메모리 장치들 내 저장 위치들이 일반적으로 재-프로그래밍하기 전에 소거될 필요가 있기 때문에 발생한다. 이렇기 때문에, 주어진 논리 어드레스에 대응하는 데이터가 변경될 것이라면, 메모리 장치 내에 현존 물리적 위치를 소거하고 이를 새로운 데이터로 재-프로그래밍하기보다는, 메모리 장치는 간단히 새로운 데이터를 새로운 물리적 위치에 기입하고 이전의 물리적 위치를 폐용(obsolete)으로서 표시해 둔다.
플래시 메모리 장치들은 전형적으로 다수 블록들의 메모리 셀들로서 구성되는데, 이들은 페이지들로 더욱 세분된다. 데이터가 한 블록에 기입될 때, 데이터는 이 블록의 제 1 자유 페이지에 기입된다. 이에 따라, 블록은 유효 페이지와 폐용 페이지가 혼재할 수 있다. 블록이 완전히 채워졌을 때, 유효 데이터는 폴딩(folding)이라고도 하는 것으로, 통합을 위해 자유 블록에 카피될 수도 있다. 그러나, 효율성을 위해서, 데이터 블록은 이에 연관된 하나 이상의 로그(log) 블록들을 가질 수 있다. 로그 블록들이 이용된다면, 데이터 블록이 완전히 채워졌을 시점에서, 이 데이터 블록에 대한 후속되는 기입들은 이의 하나 이상의 로그 블록들의 다음 자유 페이지에 기입된다. 이러한 식으로, 폴딩 동작은 이것이 덜 빈번하게 수행될 수 있다면 더욱 효율적이다. 일단 유효 페이지들이 새로운 블록에 폴딩되면, 이전의 데이터 블록 및 이의 로그 블록들은 -있다면- 소거하게 표시된다.
이 프로세스의 예가 도 2에 도시되었다. 도 2는 물리적 데이터 블록(202) 및 이의 연관된 물리적 로그 블록들(204a, 204b)를 나타낸 것이다. 데이터 블록(202) 및 이의 연관된 로그 블록들(204a, 204b)는 단일 논리적 블록 어드레스에 연관될 것이다. 이 예에서, 블록들(202/204) 각각은 8개의 물리 페이지들(2010 ~ 2017)을 포함한다. 데이터 블록(202)에 어드레스된 데이터는 물리 페이지(2010)에서 시작하였으며 물리 페이지(2017)을 통해 데이터 블록(202)에 8개의 논리 페이지들의 기입을 진행하였다. 데이터 블록(202)이 모두 채워졌을 때, 즉 이의 마지막 가용한 물리 페이지(2017)가 기입되었을 때, 후속 페이지 기입들은 로그 블록(204a)으로 가서, 같은 방식으로 진행하고, 이어서 로그 블록(204b)으로 진행하였다. 논리 페이지 0이 먼저 이의 물리 페이지(2010) 내 로그 블록(204a)에 기입되었기 때문에, 데이터 블록(202)의 물리 페이지(2010)은 '구(old)'로서 표시되었다, 등등. 도 2에 도시된 바와 같이, 데이터 블록(202)은 자신 및 이의 연관된 로그 블록들(204) 중에서 8개의 유효 페이지들(201)을 갖는다.
플래시 변환층(FLT)은 논리 어드레스들과 이들의 대응하는 물리 어드레스 간에 대응을 추적한다. 이 매핑 정보가 파워 상실 또는 갑자스런 셧다운에 기인하여 업데이트되지 않았으면, 이것은 메모리 장치의 블록들을 스캐닝함으로써 재구축될 필요가 있다. 기입 동작들은 다수 페이지들의 블록들을 통해 순차적으로 진행하기 때문에, 이 스캐닝 프로세스는 역방향으로 블록을 통해 진행한다. 예를 들어, 블록당 64개의 페이지들이 있고 페이지 0부터 페이지 63의 방향으로 기입이 진행한다면, 스캔은 페이지 63부터 페이지 0의 방향으로 진행한다. 유효 물리 페이지가 발견된다면, 이의 대응하는 논리 어드레스가 매핑 정보에 업데이트된다. 이 프로세스는 비교적 상당한 시간 및 파워를 소비할 수 있다. 이에 따라, 다시 도 2를 참조하면, 스캐닝은 로그 블록(204b)의 물리 페이지(2017)에서 시작하여 데이터 블록(202) 쪽으로 진행한다. 각각의 유효 물리 페이지(201)가 발견될 때, 이의 대응하는 논리 페이지가 매핑 정보에 업데이트된다. 그러나, 스캐닝은 도 2의 예에서, 데이터 블록(202)에 대응하는 논리 블록 어드레스에 대한 매핑 정보의 완전한 대응을 갖기 전에 스캐닝이 데이터 블록(202)의 물리 페이지(2013)에 도달할 때까지 진행한다.
여러 실시예들은 논리 블록 어드레스에 대응하는 물리 블록 내에 내포된 삽입된 매핑 정보를 이용한다. 특히, 페이지가 블록에 기입될 때, 이 페이지는 이 블록에 대한 현재 매핑 정보의 간략정보를 포함한다. 따라서, 블록의 마지막 유효 페이지는 이 블록의 물리/논리 매핑을 내포할 것이다. 이에 따라, 매핑 정보를 재구축하기 위해 메모리 장치의 모든 유효 페이지를 스캐닝하는 대신에, 여러 실시예들은 각 논리 블록에 연관된 마지막 유효 페이지에 대해서만 스캔할 수 있다. 일단 블록에 대해 마지막 유효 페이지가 발견되면, 이 블록에 대한 가장 최신의 매핑 정보가 이 페이지로부터 읽혀질 수 있다. 블록의 마지막 유효 페이지, 즉 이 블록에 대해 가장 최근에 기입된 페이지는 로그 블록들이 이용된다면 연관된 로그 블록에 있을 수 있음에 유의한다. 다시 도 2의 예를 참조하면, 데이터 블록(202)에 대한 마지막 유효 페이지에, 즉 이 예에서 로그 블록(204b)의 물리 페이지(2017)에 저장된 사용자 데이터와 함께 매핑 정보가 삽입된다면, 데이터 블록(202)에 대한 매핑 정보의 완전한 대응을 전개시키기 위해 이 페이지만이 스캔될 필요가 있다.
한 페이지의 데이터는 물리적 위치들, 즉 메모리 셀들에 저장되기는 하지만, 이 데이터는 인접 그룹의 메모리 셀들에 저장되지 않을 수도 있다. 예를 들어, 블록의 한 페이지의 메모리 셀들은 이 블록, 혹은 심지어는 다른 블록의 또 다른 페이지의 메모리 셀들과 인터리빙될 수도 있다. 또한, 혹은 대안적으로, 한 메모리 셀은 이 블록의 2개의 페이지들로부터 데이터를 저장할 수도 있다. 예를 들어, 메모리 셀당 1보다 많은 디지트의 데이터를 저장하기 위해 복수-레벨 셀들이 사용되는 경우, 한개의 디지트는 한 페이지에 속할 수도 있을 것이며 또 다른 디지트는 또 다른 페이지에 속할 수도 있을 것이다. 따라서, 물리 페이지 또는 물리 블록을 언급할 때, 이것은 각각 페이지 혹은 블록으로서 논리적으로 연관된 일 그룹의 메모리 셀들을 말하는 것이다. 또한, 페이지 또는 블록의 데이터 구조를 기술함에 있어, 페이지 또는 블록의 한 부분을 나타낼 때 인접한 물리적 일 그룹의 메모리 셀들 혹은 심지어는 인접한 논리적 일 그룹의 메모리 셀들을 포함할 필요는 없다. 예를 들어, 한 페이지의 데이터가 논리적으로 제 1 부분으로서 사용자 데이터와, 제 2 부분으로서 메타데이터와, 제 3 부분으로서 오류정정 코드(ECC) 데이터를 내포하는 경우, 제어기가 어느 메모리 셀들이 사용자 데이터를 내포하고, 어느 메모리 셀들이 메타데이터를 내포하고, 어느 메모리 셀들이 ECC 데이터를 내포하고 있는지 확인할 수 있게 구성된다면, 메타데이터 및 ECC 데이터는 물리적 및 논리적으로 사용자 데이터 중에 분산될 수도 있다.
도 3은 본 발명의 실시예에 따라 페이지(201)의 데이터 구조의 일실시예를 나타낸 것이다. 페이지(201)는 하나 이상의 사용자 데이터 부분들(312), 하나 이상의 메타데이터 부분들(314) 및, 선택적으로, 하나 이상의 ECC 부분들(316)을 갖는다. 이 예에서, ECC 부분(316)은 사용자 데이터 부분들(312) 및 메타데이터 부분들(314) 둘 다에 대한 ECC 데이터를 포함한다. 흔히 사용자 데이터와 함께 저장될지라도, ECC 데이터는 별도로 다른 페이지에 저장될 수도 있다. 도 3의 예에서, ECC 부분(316a)은 사용자 데이터 부분(312a) 및 메타데이터 부분(314a)에 대한 ECC 데이터를 내포하며 ECC 부분(316b)은 사용자 데이터 부분(312b) 및 메타데이터 부분(314b)에 대한 ECC 데이터를 내포할 수 있다. 일예로서, 각 사용자 데이터 부분(312)은 2,048 바이트의 사용자 데이터를 내포하고, 각각의 메타데이터 부분(314)은 32 바이트의 메타데이터(나중에 정의됨)를 내포하며, 각각의 ECC 부분(316)은 16 바이트의 ECC 데이터를 내포한다. 페이지(201)는 설계자가 선택할 수도 있을 다른 목적으로 추가의 데이터 부분들(도시되지 않음)을 더 포함할 수 있다. 앞의 예에서 결합된 사용자 데이터 및 메타데이터를 사용하여 ECC 데이터를 생성하는 것이 더 효율적일 것이지만, ECC 데이터는 개별적으로 각 데이터 부분마다 생성될 수도 있을 것이다.
메타데이터 부분들(314)은 페이지(201)가 연관된 논리 데이터 블록에 대한 매핑 정보를 나타내는 데이터를 내포한다. 이에 따라, 메타데이터 부분들(314)은 논리 어드레스와 논리 어드레스에 대응하는 데이터를 내포하는 물리 위치 간에 매핑 대응을 재구축하기에 충분한 데이터를 내포한다. 데이터 블록이 64 물리 페이지들을 내포하며 2개의 로그 블록들까지를 이용하며, 64 논리 페이지 어드레스들을 데이터 블록에 연관시키는 어드레싱 방법의 예를 고찰하면, 각각의 메타데이터 부분(314)은 각각이 하나의 논리 페이지 어드레스를 나타내는 것인 32개의 메타데이터 서브-부분들(324)으로 세분될 수도 있을 것이다. 메타데이터 서브-부분들(324)을 이들의 논리 페이지 오프셋, 예를 들면, 제 1 메타데이터 서브-부분(324) 내 놓여진 블록의 제 1 논리 페이지에 대응하는 데이터, 제 2 메타데이터 서브-부분(324) 내 놓여진 블록의 제 2 논리 페이지에 대응하는 데이터, 제 3 메타데이터 서브-부분(324) 내 놓여진 블록의 제 3 논리 페이지에 대응하는 데이터, 등등에 의해 색인함으로써, 임의의 논리 페이지에 대한 물리 매핑 정보에 대응하는 메타데이터가 쉽게 결정될 수 있다.
일실시예에 있어서, 논리 페이지의 매핑 정보에 대응하는 메타데이터는 이 논리 페이지에 대해 데이터가 저장되는 물리 페이지 어드레스를 나타내는 데이터를 내포한다. 다른 실시예에 있어서, 메타데이터는 추가의 데이터를 내포할 수도 있다. 예를 들면, 로그 블록들이 사용되는 경우, 추가 데이터는 물리 페이지가 데이터 블록 내 위치되는지 아니면 데이터 블록에 연관된 로그 블록에 위치되는지를 정의할 수 있고, 하나 이상의 블록이 사용되는 경우 상기 물리 페이지를 내포하는 로그 블록의 순차번호를 더욱 정의할 수 있다. 이에 따라, 앞의 예에서, 각각의 메타데이터 서브-부분(324)은 한 블록의 64 페이지들 중 한 페이지에 대한 어드레스를 정의하는 5 디지트의 데이터와, 블록이 데이터 블록인지 아니면 로그 블록인지를 정의하는 것으로서, 예를 들면 데이터 블록에 대해선 논리 0, 로그 블록에 대해선 논리 1로 정의되는 1 디지트의 데이터, 어느 로그 블록이 어드레스된 물리 페이지를 내포하는지를 정의하는 것으로서, 예를 들면 제 1 로그 블록에 대해선 논리 0, 제 2 로그 블록에 대해선 논리 1로 정의되는 1 디지트의 데이터를 내포할 수도 있을 것이다. 이러한 더 세분된 것이 메타데이터 서브-부분(3242)을 참조하여 보여졌다.
여러 실시예들은 임의의 한 물리 페이지에 전체 논리적 데이터 블록에 대해 완전한 매핑 정보를 저장하기에는 불충분한 물리적 공간을 가진 메모리 장치들에 사용할 수 있게 수정될 수 있다. 이것은 복수의 물리 데이터 블록들, 및 임의의 연관된 로그 블록들을 결합하여 한개의 논리 데이터 블록을 나타냄으로써 해결된다. 도 4a 및 도 4b는 이러한 실시예들을 블록으로 나타낸 것이다.
도 4a의 예에서, 가상 데이터 블록(452)을 생성하기 위해서 논리 데이터 블록(456)의 개별적 채널들(454)로서 식별되는 복수의 물리 블록들(202/204)을 그룹화한 한 그룹(450)이 사용된다. 각 채널(454)은 데이터 블록(202)에 연관될 수 있고, 선택적으로, 하나 이상의 로그 블록들(204)이 도 2를 참조로 기술된 바와 같이, 상기 데이터 블록(202)에 연관될 수 있음에 유의한다. 그룹(450)의 각 물리 블록(202/204)은, 도 2을 참조로 기술된 바와 같이 복수의 물리 페이지들(201)을 갖는다. 그러나, 임의의 단일 채널(454)의 마지막 유효 페이지(201)에 논리 데이터 블록(456)에 대한 완전한 매핑 정보를 저장하는 대신에, 각 채널(454)의 마지막 유효 페이지(201)는 논리 데이터 블록(456)의 부분만에 대한 매핑 정보를 저장할 것이다. 예를 들어, 채널(454)당 64개의 페이지들이 있고, 8개의 채널들(454)이 이용된다면, 임의의 주어진 채널(454)의 마지막 유효 페이지(201)는 논리 블록(454)의 매핑 정보의 8개의 논리 페이지 엔트리들을 저장할 수도 있을 것이다. 이에 따라, 채널(4520)의 마지막 유효 페이지(201)는 논리 데이터 블록(456)의 첫번째 8개의 논리 페이지 어드레스들에 대한 매핑 정보를 저장할 수도 있을 것이며, 채널(4521)의 마지막 유효 페이지(201)는 논리 데이터 블록(456)의 다음 8개의 논리 페이지 어드레스들에 대한 매핑 정보를 저장할 수도 있을 것이며, 채널(4522)의 마지막 유효 페이지(201)는 논리 데이터 블록(456)의 다음 8개의 논리 페이지 어드레스들에 대한 매핑 정보를 저장할 수도 있을 것이며, 등등.
논리 데이터 블록(456)은 기입 동작이 논리 블록(456)의 채널들(454) 각각의 제 1 자유 물리 페이지에 데이터를 기입하게 되도록 단일 논리 블록으로서 취급된다. 일예로서, 그룹(450)의 물리 페이지들(201) 각각이 페이지당 4KB의 데이터를 포함하였다면, 논리 블록(456)의 물리 페이지들(201)은 페이지당 4KB 데이터에 N배를 가질 것이며, 여기에서 N은 가상 데이터 블록(452)을 생성하기 위해 사용되는 채널들(454)의 수이다. 도 4a의 예에서, N = 8 이다. 따라서, 각각의 기입 동작은 이 예에서 32KB의 데이터를 기입할 것이다. 따라서, 채널들(454) 각각의 마지막 유효 페이지를 판독함으로써, 논리 데이터 블록(456)에 대한 완전한 매핑 정보가 얻어질 수 있다. 논리 데이터 블록(456)이 단일 논리 블록으로서 취급되지 않고, 개별 채널들(454)에 기입 동작들을 허용된다면, 매핑 정보는 새로운 데이터를 수신하는 채널(454)이 기입되는 논리 페이지 어드레스에 대한 매핑 정보를 내포하지 않았다면 구 정보가 될 것이다. 또한, 단일 논리 블록으로서 취급될 때, 각 논리 페이지 주소는 이들의 각각의 데이터 블록(202)의 동일 물리 페이지 오프셋에서 발생할 것이다. 단일 블록으로서 취급되지 않는다면, 후속되는 기입 동작은 서로 다른 데이터 블록들(202)에 대한 다른 오프셋에서 다음 자유 페이지를 확인할 수도 있다. 이것은 단일 논리 페이지 주소에 대한 복수의 물리 어드레스들의 저장을 요구할 것이다. 또한, 각 채널(454)에 기입 동작들은 동시적이거나 순차적일 수 있다. 그러나, 논리 데이터 블록(456)에의 기입 동작은 모든 채널들(454)이 이들의 각각의 기입 동작을 완료하기 전까지는 완료된 것으로서 제어 회로에 의해 인식되지 않을 것이다.
도 4b의 예에서, 가상 데이터 블록(452)을 생성하기 위해서 논리 데이터 블록(456)의 개별적 채널들(454)로서 식별되는 복수의 물리 블록들(202/204)을 그룹화한 한 그룹(450)이 사용된다. 설명은 도 4b의 예의 물리 블록들(202/204) 각각이 128개의 물리 페이지들(201)을 내포하는 것을 제외하고는 도 4a의 예의 설명과 유사하다. 채널들(454)에 걸쳐 매핑 정보를 분산시킴에 있어, 채널(4520)의 마지막 유효 페이지(201)는 논리 데이터 블록(456)의 첫번째 16개의 논리 페이지 어드레스들에 대한 매핑 정보를 저장할 수도 있을 것이며, 채널(4521)의 마지막 유효 페이지(201)는 논리 데이터 블록(456)의 다음 16개의 논리 페이지 어드레스들에 대한 매핑 정보를 저장할 수도 있을 것이며, 채널(4522)의 마지막 유효 페이지(201)는 논리 데이터 블록(456)의 다음 16개의 논리 페이지 어드레스들에 대한 매핑 정보를 저장할 수도 있을 것이며, 등등. 따라서, 가상 블록(452)의 마지막 유효 페이지(201)를 판독함으로써, 논리 데이터 블록(456)의 모든 128개의 논리 페이지 어드레스들에 대한 완전한 매핑 정보가 발견될 수 있다.
도 4a 및 도 4b의 예들 각각에서 8개의 채널들(454)이 사용되었을지라도, 더 적은 혹은 더 많은 채널들(452)이 사용될 수 있다. 논리 페이지 어드레스들의 매핑 정보가 임의의 한 채널(454) 상에 저장된 이들 논리 페이지 어드레스들의 일부를 증가시킴으로써, 더 적은 수의 채널들(454)이 사용될 수도 있다. 사용되는 채널들(454)의 수를 증가시킴으로써, 각 채널(454)은 논리 페이지 어드레스들의 더 적은 부분에 대한 매핑 정보를 저장할 수 있다. 그러나, 각각의 이러한 변형예는 결과적인 논리 데이터 블록(456)을, 논리 데이터 블록(456)에 연관된 물리 페이지들(201)의 임의의 부분에 기입할 때 유닛으로서 취급해야 한다.
도 4a 및 도 4b를 참조하여 기술된 실시예들에서, 마지막 유효 물리 페이지는 대응하는 논리 데이터 블록(456)에 대한 매핑 정보의 한 카피를 유지하였다. 그러나, 채널(454)의 각 물리 페이지(201)가 논리 데이터 블록(456)의 모든 논리 페이지 어드레스들에 대한 매핑 정보를 저장하는데 요구되는 것보다 더 많은 메타데이터 서브-부분들을 저장하는데 사용할 수 있는 충분한 용량을 갖고 있는 경우들에 있어서는 채널들(454)에 걸쳐 매핑 정보의 다수 카피들을 저장하는 것이 가능할 수 있다. 예를 들어, 논리 데이터 블록(456)이 128 논리 페이지 어드레스들을 갖고 있고, 8개의 채널들(454)이 이용된다면, 모든 128개의 논리 페이지 어드레스들에 대한 매핑 정보를 총체적으로 저장하기 위해서 각 채널(454)의 마지막 유효 페이지(201)에 16 논리 페이지 어드레스들에 대한 매핑 정보를 저장해야 할 것이다. 그러나, 32 논리 어드레스들에 대한 매핑 정보를 저장하는데 충분한 공간이 각 물리 페이지(201)에 있다면, 매핑 정보의 2개의 카피들이 저장될 수 있다. 예를 들어, 채널들(4520 ~ 4523)의 마지막 유효 페이지들(201)은 논리 데이터 블록(456)의 모든 128 논리 페이지 어드레스들에 대한 매핑 정보의 제 1 카피를 총체적으로 저장할 수도 있을 것이며, 채널들(4524 ~ 4527)의 마지막 유효 페이지들(201)은 논리 데이터 블록(456)의 모든 128 논리 페이지 어드레스들에 대한 매핑 정보의 제 2 카피를 총체적으로 저장할 수도 있을 것이다. 따라서, 마지막 유효 페이지들(201)을 읽어낼 때 데이터 변질 문제들이 있을지라도, 데이터 변질이 되지 않은 페이지들(201)을 사용하여 논리 데이터 블록(456)에 대한 매핑 정보를 다시 생성하는 것이 가능할 수 있다.
동작에서, 사용자 데이터가 메모리 장치들(116) 중 하나에 기입하기 위해서 메모리 모듈(106)에 의해 수신될 때, 제어회로(110)는 사용자 데이터가 기입될 페이지(201)에 대응하는 논리 데이터 블록의 매핑 정보를 나타내는 메타데이터에 사용자 데이터를 결합할 것이다. 이 메타데이터는 사용자 데이터를 사용자 데이터 부분(312)에 기입함과 동시에 및/또는 ECC 데이터를 ECC 부분(316)에 기입함과 동시에 메타데이터 부분(314)에 기입될 것이다.
각각의 메모리 모듈(106)은 다른 메모리 모듈들(106)과는 무관한 자신의 한 세트의 매핑 정보를 가질 것이다. 제어회로(110)는 매핑 정보를 이의 대응하는 메모리 장치들(116)의 액세스를 위해 저장한다. 메모리 장치(116) 내에 논리 어드레스는 호스트로부터 수신된 논리 어드레스의 단지 한 부분일 수 있음을 알 것이다. 예를 들어, SSD(100)가 4개의 메모리 모듈들(106)을 내포하고, 각 메모리 모듈이 16개의 메모리 장치들(116)을 내포하고 각 메모리 장치(116)가 블록당 64 페이지들을 가진 1,920개의 어드레스 가능한 논리 데이터 블록들을 갖는 경우, 논리 어드레스의 부분은 어느 메모리 모듈(106), 및 이 메모리 모듈(106)의 어느 메모리 장치(116)가 어드레스된 논리 데이터 블록을 내포하였는지를 정의할 것이다. 따라서, 여기에 기술된 바와 같이 사용자 데이터와 결합되는 매핑 정보는 메타데이터를 내포하는 물리 페이지에 연관된 논리 데이터 블록의 적어도 한 부분에 대한 매핑 정보를 정의하나, 이 논리 데이터 블록에 어느 메모리 장치 혹은 어느 메모리 모듈이 연관되는지에 관한 매핑 정보는 정의하지 않을 수도 있다.
도 5는 본 발명의 실시예에 따른 메모리 모듈을 동작시키는 방법의 흐름도이다. 530에서, 적어도 한 메모리 장치의 논리 데이터 블록에 기입하기 위한 호스트로부터 사용자 데이터가 수신된다. 예를 들어, 호스트는 메모리 모듈에 기입될 데이터 및 데이터가 기입될 곳에 대응하는 논리 어드레스를 제공하는 기입 명령을 메모리 모듈에 발행할 수 있다. 논리 어드레스는 사용자 데이터를 저장하기 위한 논리 데이터 블록 및 논리 페이지 어드레스를 명시한다. 532에서, 메모리 모듈의 제어회로는 어드레스된 논리 데이터 블록에 대응하는 매핑 정보를 검색한다. 제어회로는 논리 데이터 블록에 연관된 다음 자유 물리 페이지를 선택하기 전에 혹은 선택한 후에 매핑 정보를 검색한다. 그러나, 매핑 정보가 어드레스된 논리 페이지에 대응하는 의도된 물리 페이지를 나타내게 수정되기 전에 검색된다면, 이것은 이하 기술되는 바와 같이 메타데이터를 발생하기 전에 업데이트되어야 한다.
534에서, 어드레스된 논리 데이터 블록의 매핑 정보에 대응하여 메타데이터가 생성된다. 메타데이터는 논리 데이터 블록의 적어도 한 부분에 대한 논리 페이지 어드레스들과 이 논리 데이터 블록에 연관된 물리 페이지 어드레스들 간에 매핑 대응을 나타낸다. 메타데이터는 현재 기입 명령의 논리 페이지 어드레스 이외의 적어도 한 논리 페이지 어드레스에 대한 매핑 정보를 포함함을 알 것이다. 즉, 메타데이터는 어드레스된 논리 데이터 블록의 2 이상의 논리 페이지 어드레스들에 대한 매핑 정보에 대응한다. 위에 언급된 바와 같이, 메타데이터는 논리 데이터 블록에 연관된 물리 블록 내에 물리 페이지 어드레스, 물리 페이지를 내포하는 물리 블록이 데이터 블록인지 아니면 로그 블록인지의 표시, 및 물리 페이지가 논리 데이터 블록에 연관된 복수의 로그 블록들 중 한 블록 내에 포함되어 있는 경우 블록 순차번호의 표시를 포함할 수도 있을 것이다.
536에서, 사용자 데이터 및 메타데이터가 결합된다. 일예로서, 메타데이터는 사용자 데이터에 첨부된다. 예를 들어, 사용자 데이터가 2,048 바이트이고, 메타데이터가 32 바이트이면, 결합된 데이터는 일련의 16,640 데이터 값들일 것이며, 첫번째 16,384 데이터 값들은 사용자 데이터이고 마지막 256 데이터 값들은 메타데이터이다. 선택적으로, 538에서, 결합된 사용자 데이터 및 메타데이터에 대해 ECC 데이터가 생성된다. 실제에 있어, ECC가 데이터 판독 오류들의 정정을 위해 사용되나, 정정하기 위해 사용되는 데이터와 함께 저장될 필요는 없다. 그러나, 일실시예에 있어서, ECC 데이터는 결합된 사용자 데이터 및 메타데이터와 결합된다. 일예로서, ECC 데이터는 결합된 사용자 데이터 및 메타데이터에 첨부된다.
540에서, 결합된 데이터는 제어회로에 의해 선택된 자유 물리 페이지에 기입되고, 이에 따라 물리 페이지 내에 대응하는 논리 데이터 블록에 대한 현재의 매핑 정보를 저장한다. 이어서 이 기술에서 공통되는 바와 같이, 메모리 모듈의 제어회로에 의해 유지된 고 레벨 매핑 정보는 업데이트되어야 한다. 여기에 기술된 여러 실시예들은 플래시 변환층 혹은 그외 매핑 기술의 특정 응용에 좌우되지 않음에 유의한다. 유사하게, 여러 실시예들은 고 레벨 매핑 정보에 간섭하지 않는다. 이에 따라, 메모리 모듈 내에서 마모 레벨, 가비지(garbage) 수거 및 그외 유지관리 동작들은 이러한 실시예들에 악영향을 미치지 않고, 혹은 이러한 실시예들에 의해 악영향을 받지 않고 동작할 수 있다. 실시예들이 제공하는 것은 메모리 장치의 모든 유효 페이지를 스캐닝하는 프로세스보다 더 효율적으로 매핑 정보를 재구축하는 능력이다. 여러 실시예들은 모든 논리 데이터 블록들의 모든 유효 페이지들이 아니라 메모리 장치의 각 논리 데이터 블록의 단지 한 유효 페이지만을 스캐닝함으로써 메모리 장치에 대한 매핑 정보를 용이하게 재구축할 수 있게 하기 때문에, 스캐닝 프로세스가 크게 단순화된다.
도 6은 본 발명의 실시예에 따른 메모리 모듈을 동작시키는 방법의 흐름도이다. 660에서, 메모리 장치의 매핑 정보가 변질된 것으로 검출된다. 이러한 변질은 기입 동작이 완료되기 전에 메모리 장치 전원을 껐을 때 일어날 수 있다. 일예로서, 기입동작이 진행중임을 나타내게 비휘발성 레지스터를 셋(set) 하고 이 기입 동작의 완료시에만 이 레지스터를 리셋(reset) 함으로써, 메모리 모듈에 전원이 넣어졌을 때 단순히 레지스터의 값을 체크함으로써 이 기입동작의 어떤 중단이 검출될 수 있다.
662에서, 메모리 장치의 매핑 정보의 변질을 검출하였을 때, 제어회로는 이 메모리 장치의 각각의 논리 데이터 블록에 연관된 마지막 유효 물리 페이지를 읽기기 위한 스캔 프로세스를 시작할 것이다. 여러 실시예들에 따라서, 메모리 장치에 대한 매핑 정보는 메모리 장치에 의해 어드레스된 각각의 논리 데이터 블록의 마지막 유효 물리 페이지에 저장된 정보만을 사용하여 재구축될 수 있기 때문에 추가로 메모리의 페이지들을 읽을 필요가 없다.
664에서, 논리 데이터 블록들의 마지막 유효 물리 페이지만으로부터 읽은 데이터로부터 매핑 정보가 얻어진다. 매핑 정보를 얻는 것은 매핑 정보를 얻기 위해 필요한 메모리 셀들만을 읽는 것을 포함하거나, 물리 페이지의 모든 메모리 셀들을 읽고, 얻어진 데이터로부터 매핑 정보를 추출하는 것을 포함할 수도 있다. 매핑 정보를 얻는 것은 ECC 데이터를 사용하여 오류 정정을 적용하는 것을 더 포함할 수 있다.
666에서, 메모리 장치에 대한 매핑 정보는 논리 데이터 블록들의 마지막 유효 물리 페이지들로부터 얻어진 매핑 정보를 사용하여 재구축된다. 하나보다 더 많은 메모리 장치를 내포하는 메모리 모듈들에 있어서, 662 내지 666으로부터 프로세스는 메모리 모듈의 각 메모리 장치마다 반복될 수 있고, 혹은 매핑 정보의 변질을 나타내는 메모리 장치들에 대해서만 수행될 수도 있다. 그 후, 재구축 매핑 정보는 메모리 모듈의 제어회로에 의하여 저장될 것이다.
구체적인 실시예들이 여기에 도시 및 기술되었을지라도, 당업자들은 같은 목적을 달성하게 계산된 임의의 배열이 도시된 구체적인 실시예들을 대치할 수도 있음을 알 것이다. 실시예들의 많은 수정이 당업자들에게 명백할 것이다. 따라서, 이 출원은 실시예들의 임의의 수정들 또는 변경들도 포함하는 것이다.

Claims (46)

  1. 매핑 정보를 저장하게 메모리 모듈을 동작시키는 방법에 있어서,
    상기 메모리 모듈의 논리 데이터 블록에 어드레스된 사용자 데이터를 수신하는 단계;
    상기 논리 데이터 블록의 2 이상의 논리 페이지들과 이들 논리 페이지들에 연관된 데이터가 저장되는 상기 메모리 모듈의 물리 페이지들 간에 매핑 대응을 나타내는 메타데이터와 상기 사용자 데이터를 결합하는 단계;
    상기 논리 데이터 블록에 연관된 자유 물리 페이지에 상기 결합된 데이터를 기입하는 단계를 포함하는, 방법.
  2. 청구항 1에 있어서, 상기 논리 데이터 블록의 각 논리 페이지에 대한 매핑 대응을 나타내는 메타데이터를 생성하는 단계를 더 포함하고, 각각의 논리 페이지에 대한 상기 메타데이터는 어느 물리 블록이 상기 논리 페이지에 대한 사용자 데이터의 마지막 유효 버전을 내포하는지와, 상기 물리 블록의 어느 물리 페이지가 사용자 데이터의 상기 마지막 유효 버전을 내포하는지를 나타내는 것인, 방법.
  3. 청구항 1 또는 2에 있어서, 상기 논리 데이터 블록은 물리 데이터 블록에 연관되고, 상기 물리 데이터 블록은 하나 이상의 물리 로그 블록들에 연관되며, 어느 물리 블록이 논리 페이지에 대한 사용자 데이터의 마지막 유효 버전을 내포하는지를 나타내는 메타데이터를 생성하는 단계는 상기 물리 블록이 상기 물리 데이터 블록인지 아니면 이의 연관된 로그 블록들 중 하나인지를 나타내는 메타데이터를 생성하는 단계를 포함하는, 방법.
  4. 청구항 1 또는 2에 있어서, 상기 사용자 데이터를 상기 메타데이터와 결합하는 단계는 사용자 데이터의 제 1 부분을 메타데이터의 제 1 부분과 결합하고 사용자 데이터의 제 2 부분을 메타데이터의 제 2 부분과 결합하는 단계를 포함하며, 메타데이터의 상기 제 1 부분은 상기 논리 데이터 블록의 논리 페이지들의 제 1 부분에 대한 매핑 대응을 나타내며, 메타데이터의 상기 제 2 부분은 상기 논리 데이터 블록의 논리 페이지들의 상이한 제 2 부분에 대한 매핑 대응을 나타내는, 방법.
  5. 청구항 1 또는 2에 있어서, 상기 논리 데이터 블록은 2 이상의 물리 데이터 블록들에 연관되며, 각각의 물리 데이터 블록은 1 이상의 물리 로그 블록들에 연관되며, 상기 결합된 데이터를 상기 논리 데이터 블록에 연관된 자유 물리 페이지에 기입하는 단계는 상기 결합된 데이터의 한 부분을 상기 물리 데이터 블록들 혹은 이들의 연관된 로그 블록들 각각의 자유 물리 페이지에 기입하는 단계를 포함하는, 방법.
  6. 청구항 5에 있어서, 상기 결합된 데이터의 한 부분을 상기 물리 데이터 블록들 혹은 이들의 연관된 로그 블록들 각각의 자유 물리 페이지에 기입하는 단계는 상기 논리 데이터 블록의 한 부분만에 대한 매핑 대응을 나타내는 데이터를 상기 물리 데이터 블록들 혹은 이들의 연관된 로그 블록들 각각에 기입하는 단계를 포함하는, 방법.
  7. 청구항 6에 있어서, 상기 논리 데이터 블록의 한 부분만에 대한 매핑 대응을 나타내는 데이터를 상기 물리 데이터 블록들 혹은 이들의 연관된 로그 블록들 각각에 기입하는 단계는 상기 논리 데이터 블록의 각각의 논리 페이지에 대한 매핑 대응을 나타내는 데이터의 하나 이상의 카피를 저장하는 단계를 포함하는, 방법.
  8. 청구항 1 또는 2에 있어서, 상기 결합된 사용자 데이터 및 메타데이터에 대한 ECC 데이터를 생성하는 단계, 및 상기 결합된 데이터를 기입하기에 앞서 상기 사용자 데이터, 상기 메타데이터 및 상기 ECC 데이터를 결합하는 단계를 더 포함하는, 방법.
  9. 매핑 정보를 저장하게 메모리 모듈을 동작시키는 방법에 있어서,
    상기 메모리 모듈의 어드레스된 논리 데이터 블록에 대해 호스트로부터 사용자 데이터를 수신하는 단계;
    상기 어드레스된 논리 데이터 블록에 대응하는 매핑 정보를 검색하는 단계;
    상기 어드레스된 논리 데이터 블록의 상기 매핑 정보에 대응하는 메타데이터를 생성하는 단계;
    상기 사용자 데이터 및 상기 메타데이터를 결합하는 단계; 및
    상기 결합된 데이터를 상기 논리 데이터 블록에 연관된 자유 물리 페이지에 기입하는 단계를 포함하는, 방법.
  10. 청구항 9에 있어서, 매핑 정보 검색 단계는 상기 어드레스된 논리 데이터 블록에 연관된 데이터가 저장된 상기 메모리 모듈의 메모리 장치 내에 물리 위치들을 나타내는 정보를 검색하는 단계를 포함하는, 방법.
  11. 청구항 9 또는 10에 있어서, 메타데이터 생성단계는 상기 어드레스된 논리 데이터 블록의 개개의 논리 페이즈들에 연관된 데이터가 저장된 물리 위치들을 나타내는 데이터를 생성하는 단계를 포함하며, 상기 물리 위치들은 상기 어드레스된 논리 데이터 블록에 연관된 메모리 셀들의 하나 이상의 물리 블록들의 물리 페이지들인, 방법.
  12. 청구항 11에 있어서, 상기 어드레스된 논리 데이터 블록은 하나 이상의 물리 블록에 연관되며, 물리 위치들을 나타내는 데이터를 생성하는 단계는 상기 개개의 논리 페이지들 각각에 대해서, 어느 물리 블록이 상기 논리 페이지의 유효 버전을 내포하는지와 상기 물리 블록의 어느 물리 페이지가 상기 논리 페이지의 유효 버전을 내포하는지를 나타내는 데이터를 생성하는 단계를 포함하는, 방법.
  13. 청구항 9 또는 10에 있어서, 상기 논리 데이터 블록에 연관된 상기 자유 물리 페이지는 2 이상의 물리 블록들의 물리 페이지들을 포함하며, 상기 결합된 데이터를 상기 논리 데이터 블록에 연관된 자유 물리 페이지에 기입하는 단계는 상기 결합된 데이터의 한 부분을 상기 2 이상의 물리 블록들 각각의 자유 물리 페이지에 기입하는 단계를 포함하는, 방법.
  14. 청구항 13에 있어서, 상기 2 이상의 물리 블록들은 2 이상의 물리 데이터 블록들의 그룹을 포함하며, 상기 물리 데이터 블록들 각각은 하나 이상의 물리 로그 블록들에 연관되고, 상기 결합된 데이터의 한 부분을 상기 2 이상의 물리 블록들의 자유 물리 페이지에 기입하는 단계는 상기 결합된 데이터의 한 부분을, 상기 그룹의 상기 물리 데이터 블록들 각각 혹은 상기 그룹의 대응하는 물리 로그 블록들 각각의 자유 물리 페이지에 기입하는 단계를 포함하는, 방법.
  15. 청구항 13에 있어서, 상기 결합된 데이터의 한 부분을 상기 2 이상의 물리 블록들 각각의 자유 물리 페이지에 기입하는 단계는 상기 논리 데이터 블록의 한 부분만에 대해 매핑 대응을 나타내는 상기 2 이상의 물리 블록들의 상기 자유 물리 페이지들 중 어느 한 페이지에 데이터를 기입하는 단계를 포함하는, 방법.
  16. 청구항 9 또는 10에 있어서, 상기 사용자 데이터와 상기 메타데이터를 결합하는 단계는 상기 사용자 데이터를 상기 메타데이터의 하나 이상의 카피와 결합하는 단계를 포함하는, 방법.
  17. 메모리 모듈에 있어서,
    하나 이상의 메모리 장치들; 및
    상기 하나 이상의 메모리 장치들에 결합된 제어회로를 포함하고,
    상기 제어회로는 상기 하나 이상의 메모리 장치들에 어드레스할 수 있는 각각의 논리 데이터 블록에, 상기 논리 데이터 블록에 대한 매핑 대응을 나타내는 데이터를 저장하게 구성되고,
    상기 제어회로는 상기 논리 데이터 블록에 사용자 데이터를 저장할 때 상기 논리 데이터 블록에 대한 상기 매핑 대응을 나타내는 상기 데이터를 저장하게 구성된, 메모리 모듈.
  18. 청구항 17에 있어서, 논리 데이터 블록에 대한 매핑 대응을 나타내는 상기 데이터는 상기 논리 데이터 블록에 연관된 데이터가 저장되는 물리 위치들을 나타내는 데이터를 포함하는, 메모리 모듈.
  19. 청구항 17 또는 18에 있어서, 물리 위치들을 나타내는 상기 데이터는 적어도, 상기 논리 데이터 블록에 연관된 물리 블록의 물리 페이지 어드레스를 나타내는 데이터를 포함하는, 메모리 모듈.
  20. 청구항 19에 있어서, 물리 위치들을 나타내는 상기 데이터는 상기 물리 페이지 어드레스가 어느 물리 블록에 속하는지를 나타내는 데이터를 더 포함하는, 메모리 모듈.
  21. 청구항 20에 있어서, 상기 물리 페이지 어드레스가 어느 물리 블록에 속하는지를 나타내는 데이터는 상기 물리 블록이 데이터 블록인지 아니면 연관된 로그 블록인지를 나타내는 데이터를 포함하는, 메모리 모듈.
  22. 메모리 모듈에 있어서,
    하나 이상의 메모리 장치들; 및
    상기 하나 이상의 메모리 장치들에 결합된 제어회로를 포함하고,
    상기 제어회로는 상기 메모리 장치들 중 하나 이상에 대한 매핑 정보의 변질을 검출하고, 변질이 검출된다면, 상기 하나 이상의 메모리 장치들에 어드레스 가능한 각 논리 데이터 블록에 연관된 마지막 유효 물리 페이지를 읽고, 상기 마지막 유효 물리 페이지들로부터 읽은 데이터로부터 상기 논리 데이터 블록들 각각에 대한 매핑 정보를 얻고, 상기 메모리 모듈에 대한 상기 매핑 정보를 재구축하기 위해서 상기 논리 데이터 블록들 각각에 대한 상기 얻어진 매핑정보를 결합하게 구성된, 메모리 모듈.
  23. 청구항 22에 있어서, 논리 데이터 블록에 연관된 각각의 물리 페이지는 메모리 장치의 2 이상의 물리 블록들로부터 한 물리 페이지를 포함하며, 단일 물리 블록의 상기 물리 페이지들 중 어느 한 페이지로부터 읽은 데이터로부터 얻어진 매핑 정보는 상기 대응하는 논리 데이터 블록에 대한 상기 매핑 정보의 부분만을 내포하는, 메모리 모듈.
  24. 청구항 23에 있어서, 상기 대응하는 논리 데이터 블록에 대한 상기 매핑 정보의 제 1 부분의 제 1 카피는 상기 물리 블록들 중 한 블록의 마지막 유효 물리 페이지로부터 얻어지며, 상기 대응하는 논리 데이터 블록에 대한 상기 매핑 정보의 제 1 부분의 제 2 카피는 상기 물리 블록들 중 다른 블록의 마지막 유효 물리 페이지로부터 얻어지는, 메모리 모듈.
  25. 청구항 22, 23 또는 24에 있어서, 각각의 논리 데이터 블록에 대한 상기 매핑 정보는 상기 논리 데이터 블록의 각각의 논리 페이지에 대한 매핑 정보를 포함하며, 상기 논리 데이터 블록의 각각의 논리 페이지에 대한 매핑 정보는 상기 논리 페이지에 대응하는 데이터를 내포하는 물리 블록 내에 물리 페이지의 어드레스를 나타내는 데이터를 포함하는, 메모리 모듈.
  26. 청구항 25에 있어서, 각각의 논리 페이지에 대한 상기 매핑 정보는 어느 물리 블록이 상기 대응하는 물리 페이지를 내포하는지를 나타내는 데이터를 더 포함하는, 메모리 모듈.
  27. 청구항 22, 23, 또는 24에 있어서, 논리 데이터 블록에 연관된 물리 페이지는 메모리 장치의 2 이상의 물리 블록들 각각으로부터 물리 페이지를 포함하는, 메모리 모듈.
  28. 매핑 정보를 재구축하게 메모리 모듈을 동작시키는 방법에 있어서,
    상기 메모리 모듈의 적어도 한 메모리 장치에 대한 매핑 정보가 변질된 것을 검출하는 단계;
    상기 적어도 한 메모리 장치의 각각의 논리 데이터 블록에 연관된 마지막 유효 물리 페이지를 읽는 단계;
    상기 적어도 한 메모리 장치의 각각의 논리 데이터 블록에 연관된 상기 마지막 유효 물리 페이지만으로부터 읽은 데이터로부터 매핑 정보를 얻는 단계; 및
    상기 마지막 유효 페이지들로부터 얻어진 상기 매핑 정보로부터 상기 메모리 장치에 대한 매핑 정보를 재구축하는 단계를 포함하는, 방법.
  29. 청구항 28에 있어서, 상기 메모리 모듈은 2 이상의 메모리 장치들을 포함하며, 상기 적어도 한 메모리 장치의 각각의 논리 데이터 블록에 연관된 마지막 유효 물리 페이지를 읽는 것은 상기 2 이상의 메모리 장치들 각각의 논리 데이터 블록에 연관된 마지막 유효 물리 페이지를 읽는 단계를 포함하는, 방법.
  30. 청구항 29에 있어서, 상기 2 이상의 메모리 장치들 각각의 상기 매핑 정보로부터 상기 메모리 모듈에 대한 매핑 정보를 재구축하는 단계를 더 포함하는, 방법.
  31. 청구항 28, 29, 또는 30에 있어서, 각각의 논리 데이터 블록에 연관된 마지막 유효 물리 페이지를 읽는 단계는 메모리 장치의 2 이상의 물리 블록들에 걸쳐 있는 물리 페이지를 읽는 단계를 포함하는, 방법.
  32. 메모리 장치에 있어서,
    각각이 데이터의 저장을 위한 2 이상의 물리 페이지들의 메모리 셀들을 포함하는 것인 하나 이상의 물리 블록들의 메모리 셀들을 포함하고,
    상기 메모리 장치는 각각이 2 이상의 논리 페이지들의 메모리 셀들을 포함하는 것인 논리 블록들의 메모리 셀들로 구성되고,
    한 특정 논리 블록의 메모리 셀들은 상기 물리 블록들의 메모리 셀들 중 하나 상의 물리 블록들에 연관되며;
    상기 한 특정 논리 블록의 메모리 셀들에 연관된 한 특정 물리 블록의 메모리 셀들의 적어도 한 물리 페이지의 메모리 셀들은 데이터 구조를 포함하며;
    상기 데이터 구조는 상기 특정 논리 블록의 메모리 셀들의 2 이상의 논리 페이지들의 메모리 셀들과 이들 2 이상의 논리 페이지들의 메모리 셀들에 연관된 물리 페이지 어드레스들간에 매핑 대응을 나타내는 메타데이터의 색인을 포함하는, 메모리 장치.
  33. 청구항 32에 있어서, 상기 데이터 구조는 상기 메타데이터의 저장을 위한 하나 이상의 메타데이터 부분들을 더 포함하는, 메모리 장치.
  34. 청구항 33에 있어서, 상기 하나 이상의 메타데이터 부분들 중 적어도 하나는 2 이상의 메타데이터 서브-부분들을 포함하고, 메타데이터 서브-부분은 상기 한 특정 논리 블록의 메모리 셀들에 연관된 한 논리 페이지의 메모리 셀들과 상기 한 논리 페이지의 메모리 셀들에 연관된 물리 페이지 어드레스 간에 매핑 대응을 나타내는 메타데이터의 저장을 위한 것인, 메모리 장치.
  35. 청구항 34에 있어서, 상기 2 이상의 메타데이터 서브-부분들의 색인은 상기 한 특정 논리 블록의 메모리 셀들에 연관된 어느 논리 페이지의 메모리 셀들이 상기 2 이상의 메타데이터 서브-부분들 각각에 대응하는지를 나타내는, 메모리 장치.
  36. 청구항 33에 있어서, 상기 한 특정 논리 블록의 메모리 셀들에 연관된 한 특정 물리 페이지의 메모리 셀들의 상기 메타데이터 부분들은 물리 페이지 어드레스들과 상기 특정 논리 블록의 메모리 셀들에 연관된 상기 2 이상의 논리 페이지들의 메모리 셀들 각각에 대한 논리 페이지 어드레스들 간에 매핑 대응을 나타내는 메타데이터의 총체적 저장을 위한 것인, 메모리 장치.
  37. 청구항 33에 있어서, 상기 한 특정 논리 블록의 메모리 셀들에 연관된 한 특정 물리 페이지의 메모리 셀들의 상기 메타데이터 부분들은 물리 페이지 어드레스들과 상기 특정 논리 블록의 메모리 셀들에 연관된 상기 2 이상의 논리 페이지들의 메모리 셀들의 부분만에 대한 논리 페이지 어드레스들 간에 매핑 대응을 나타내는 메타데이터의 총체적 저장을 위한 것인, 메모리 장치.
  38. 청구항 37에 있어서, 상기 한 특정 논리 블록의 메모리 셀들에 연관된 제 2 특정 물리 페이지의 메모리 셀들의 상기 메타데이터 부분들은 물리 페이지 어드레스들과 상기 특정 논리 블록의 메모리 셀들에 연관된 상기 2 이상의 논리 페이지들의 메모리 셀들의 다른 부분에 대한 논리 페이지 어드레스들 간에 매핑 대응을 나타내는 메타데이터의 총체적 저장을 위한 것이며, 상기 제 2 특정 물리 페이지의 메모리 셀들은 상기 특정 물리 페이지의 메모리 셀들과는 다른 물리 블록의 메모리 셀들의 부분인, 메모리 장치.
  39. 청구항 38에 있어서, 상기 특정 물리 페이지의 메모리 셀들은 이의 대응하는 메모리 셀 물리 블록에 물리 페이지 오프셋을 가지며, 상기 제 2 특정 물리 페이지의 메모리 셀들은 이의 대응하는 메모리 셀 물리 블록에 물리 페이지 오프셋을 가지며, 상기 특정 물리 페이지의 메모리 셀들의 상기 물리 페이지 오프셋은 상기 제 2 특정 물리 페이지 메모리 셀들의 물리 페이지 오프셋과 동일한, 메모리 장치.
  40. 청구항 33에 있어서, 상기 데이터 구조는 사용자 데이터의 저장을 위한 하나 이상의 사용자 데이터 부분들을 더 포함하는, 메모리 장치.
  41. 청구항 40에 있어서, 상기 데이터 구조는 오류정정 코드 데이터의 저장을 위한 하나 이상의 오류 정정 코드 부분들을 더 포함하는, 메모리 장치.
  42. 청구항 41에 있어서, 상기 데이터 구조는 제 1 메타데이터 부분, 제 1 사용자 데이터 부분 및 제 1 오류 정정 코드 부분을 더 포함하며, 상기 제 1 오류 정정 코드 부분은 상기 제 1 메타데이터 부분과 상기 제 1 사용자 데이터 부분의 결합을 포함하는 데이터에 대해 생성된 오류 정정 코드 데이터의 저장을 위한 것인, 메모리 장치.
  43. 청구항 40에 있어서, 상기 데이터 구조는 물리 페이지 어드레스들과 상기 특정 논리 블록의 메모리 셀들에 연관된 상기 2 이상의 논리 페이지들의 메모리 셀들의 제 1 부분에 대한 논리 페이지 어드레스들 간에 매핑 대응을 나타내는 메타데이터의 저장을 위한 제 1 메타데이터 부분, 및 물리 페이지 어드레스들과 상기 제 1 부분과는 다른 상기 특정 논리 블록의 메모리 셀들에 연관된 상기 2 이상의 논리 페이지들의 메모리 셀들의 제 2 부분에 대한 논리 페이지 어드레스들 간에 매핑 대응을 나타내는 메타데이터의 저장을 위한 제 2 메타데이터 부분을 더 포함하고, 적어도 한 사용자 데이터 부분은 상기 제 1 메타데이터 부분과 상기 제 2 메타데이터 부분 사이에 위치된, 메모리 장치.
  44. 청구항 32 내지 43 중 한 항에 있어서, 상기 특정 논리 블록의 메모리 셀들은 2 이상의 물리 블록들의 메모리 셀들에 연관되며, 상기 2 이상의 물리 블록들의 메모리 셀들은 데이터 블록 및 이 데이터 블록에 연관된 하나 이상의 로그 블록들을 포함하는, 메모리 장치.
  45. 청구항 32 내지 43 중 한 항에 있어서, 상기 특정 논리 블록의 메모리 셀들은 2 이상의 물리 블록들의 메모리 셀들에 연관되며, 상기 2 이상의 물리 블록들의 메모리 셀들은 2 이상의 데이터 블록들 포함하는, 메모리 장치.
  46. 청구항 45에 있어서, 상기 특정 논리 블록의 메모리 셀들은 상기 2 이상의 데이터 블록들에 연관된 하나 이상의 로그 블록들에 더 연관된, 메모리 장치.
KR1020117008630A 2008-09-16 2009-09-14 메모리 장치를 위한 삽입된 매핑 정보 KR101392701B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
CN0810149661.5 2008-09-16
CN2008101496615A CN101676882B (zh) 2008-09-16 2008-09-16 存储器装置的内嵌映射信息
US12/268,879 US8732388B2 (en) 2008-09-16 2008-11-11 Embedded mapping information for memory devices
US12/268,879 2008-11-11
PCT/US2009/056811 WO2010033455A2 (en) 2008-09-16 2009-09-14 Embedded mapping information for memory devices

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020147002305A Division KR20140020364A (ko) 2008-09-16 2009-09-14 메모리 장치를 위한 삽입된 매핑 정보

Publications (2)

Publication Number Publication Date
KR20110059770A true KR20110059770A (ko) 2011-06-03
KR101392701B1 KR101392701B1 (ko) 2014-05-27

Family

ID=44543983

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117008630A KR101392701B1 (ko) 2008-09-16 2009-09-14 메모리 장치를 위한 삽입된 매핑 정보

Country Status (4)

Country Link
EP (1) EP2329380B1 (ko)
KR (1) KR101392701B1 (ko)
CN (1) CN101676882B (ko)
WO (1) WO2010033455A2 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160050735A (ko) * 2014-10-30 2016-05-11 에스케이텔레콤 주식회사 대용량 공간 데이터 환경에서 공간분석을 위한 공간질의 장치 및 그를 위한 컴퓨터로 읽을 수 있는 기록 매체
KR20160050917A (ko) * 2014-10-31 2016-05-11 에스케이텔레콤 주식회사 인-메모리 레이어 관리 장치 및 그를 위한 컴퓨터로 읽을 수 있는 기록 매체
US10042753B2 (en) 2014-07-31 2018-08-07 SK Hynix Inc. Data storage device for storing data storage information of data and method for operating the same

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101996685B (zh) * 2009-08-11 2013-12-04 中颖电子股份有限公司 存储器管理数据的差错控制方法及差错控制器
CN102375779B (zh) * 2010-08-16 2015-08-19 深圳市朗科科技股份有限公司 一种数据处理方法以及数据处理模块
JP5468184B2 (ja) * 2010-10-29 2014-04-09 エンパイア テクノロジー ディベロップメント エルエルシー ソリッドステートドライブのための消去カウントを軽減した高機能データ符号化
TWI444825B (zh) 2011-03-29 2014-07-11 Phison Electronics Corp 記憶體儲存裝置、記憶體控制器與資料寫入方法
CN102737716B (zh) * 2011-04-11 2016-11-02 群联电子股份有限公司 存储器储存装置、存储器控制器与数据写入方法
US8806112B2 (en) * 2011-07-14 2014-08-12 Lsi Corporation Meta data handling within a flash media controller
CN102591790B (zh) * 2011-12-30 2015-11-25 记忆科技(深圳)有限公司 基于固态硬盘的数据存储快照实现方法及固态硬盘
US9026887B2 (en) 2012-03-15 2015-05-05 Micron Technology, Inc. Physical page, logical page, and codeword correspondence
JP6072428B2 (ja) * 2012-05-01 2017-02-01 テセラ アドバンスト テクノロジーズ インコーポレーテッド 制御装置、記憶装置、記憶制御方法
CN102819496B (zh) * 2012-08-16 2015-02-18 常州新超电子科技有限公司 闪存ftl的地址转换方法
WO2014109756A1 (en) 2013-01-11 2014-07-17 Empire Technology Development Llc Page allocation for flash memories
CN103970669A (zh) * 2013-02-06 2014-08-06 Lsi公司 用于加速在固态设备中的回收操作的物理到逻辑地址映射
KR101742462B1 (ko) 2013-02-27 2017-06-01 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 메모리 디바이스들을 위한 선형 프로그래밍 기반 디코딩
US9859925B2 (en) 2013-12-13 2018-01-02 Empire Technology Development Llc Low-complexity flash memory data-encoding techniques using simplified belief propagation
WO2016106757A1 (zh) * 2014-12-31 2016-07-07 华为技术有限公司 一种存储数据的管理方法、存储管理器及存储系统
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
US10540102B2 (en) * 2016-09-30 2020-01-21 Amazon Technologies, Inc. Physical media aware spacially coupled journaling and replay
US10423350B2 (en) * 2017-01-23 2019-09-24 Micron Technology, Inc. Partially written block treatment
CN107015764B (zh) * 2017-03-17 2020-03-27 深圳市江波龙电子股份有限公司 Nand flash的数据处理方法、装置和一种Nand flash
CN112055843B (zh) * 2017-12-13 2024-02-06 美光科技公司 同步化nand逻辑到物理表区跟踪
KR102398540B1 (ko) * 2018-02-19 2022-05-17 에스케이하이닉스 주식회사 메모리 장치, 반도체 장치 및 반도체 시스템
US11030089B2 (en) * 2018-09-28 2021-06-08 Micron Technology, Inc. Zone based reconstruction of logical to physical address translation map
CN111522499B (zh) * 2019-02-01 2023-08-08 香港商希瑞科技股份有限公司 运维数据读取装置及其读取方法
CN110058817A (zh) * 2019-04-11 2019-07-26 深圳大普微电子科技有限公司 一种固态硬盘垃圾处理方法及其固态硬盘
CN112148645A (zh) * 2019-06-28 2020-12-29 北京忆芯科技有限公司 去分配命令处理方法及其存储设备
CN110568997A (zh) * 2019-09-12 2019-12-13 南方电网科学研究院有限责任公司 一种基于Flash存储器的数据写入方法、装置及设备
CN112817975A (zh) * 2021-01-25 2021-05-18 惠州Tcl移动通信有限公司 一种实体存储器设置方法、系统及移动终端

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4085478B2 (ja) * 1998-07-28 2008-05-14 ソニー株式会社 記憶媒体及び電子機器システム
US6948026B2 (en) * 2001-08-24 2005-09-20 Micron Technology, Inc. Erase block management
US6711663B2 (en) * 2001-11-15 2004-03-23 Key Technology Corporation Algorithm of flash memory capable of quickly building table and preventing improper operation and control system thereof
JP4199519B2 (ja) * 2002-11-05 2008-12-17 パナソニック株式会社 メモリ管理装置及びメモリ管理方法
US7206893B2 (en) 2003-12-12 2007-04-17 Phison Electronics Corp. Linking method under mother and child block architecture for building check area and logic page of the child block
KR100526188B1 (ko) * 2003-12-30 2005-11-04 삼성전자주식회사 플래시 메모리의 주소 사상 방법, 사상 정보 관리 방법 및상기 방법을 이용한 플래시 메모리
US7386700B2 (en) * 2004-07-30 2008-06-10 Sandisk Il Ltd Virtual-to-physical address translation in a flash file system
KR100876084B1 (ko) * 2007-02-13 2008-12-26 삼성전자주식회사 플래시 저장 장치로 삭제 정보를 전달할 수 있는 컴퓨팅시스템
US7389397B2 (en) * 2005-06-01 2008-06-17 Sandisk Il Ltd Method of storing control information in a large-page flash memory device
US20070016721A1 (en) * 2005-07-18 2007-01-18 Wyse Technology Inc. Flash file system power-up by using sequential sector allocation
US7409489B2 (en) * 2005-08-03 2008-08-05 Sandisk Corporation Scheduling of reclaim operations in non-volatile memory
US20070083697A1 (en) * 2005-10-07 2007-04-12 Microsoft Corporation Flash memory management
KR100843133B1 (ko) * 2006-09-20 2008-07-02 삼성전자주식회사 플래시 메모리에서 매핑 정보 재구성을 위한 장치 및 방법
KR100833188B1 (ko) * 2006-11-03 2008-05-28 삼성전자주식회사 데이터의 특성에 따라 싱글 레벨 셀 또는 멀티 레벨 셀에데이터를 저장하는 불휘발성 메모리 시스템
KR100885181B1 (ko) * 2007-02-06 2009-02-23 삼성전자주식회사 그룹 맵핑 동작을 수행하는 메모리 시스템 및 그것의어드레스 맵핑 방법

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10042753B2 (en) 2014-07-31 2018-08-07 SK Hynix Inc. Data storage device for storing data storage information of data and method for operating the same
KR20160050735A (ko) * 2014-10-30 2016-05-11 에스케이텔레콤 주식회사 대용량 공간 데이터 환경에서 공간분석을 위한 공간질의 장치 및 그를 위한 컴퓨터로 읽을 수 있는 기록 매체
KR20160050917A (ko) * 2014-10-31 2016-05-11 에스케이텔레콤 주식회사 인-메모리 레이어 관리 장치 및 그를 위한 컴퓨터로 읽을 수 있는 기록 매체

Also Published As

Publication number Publication date
EP2329380B1 (en) 2013-03-06
EP2329380A4 (en) 2011-11-23
CN101676882A (zh) 2010-03-24
WO2010033455A2 (en) 2010-03-25
KR101392701B1 (ko) 2014-05-27
EP2329380A2 (en) 2011-06-08
WO2010033455A3 (en) 2010-05-14
CN101676882B (zh) 2013-01-16

Similar Documents

Publication Publication Date Title
KR101392701B1 (ko) 메모리 장치를 위한 삽입된 매핑 정보
US9665301B2 (en) Methods and devices for storing user data along with addresses corresponding to physical pages storing valid data
US10007431B2 (en) Storage devices configured to generate linked lists
US8312554B2 (en) Method of hiding file at data protecting mode for non-volatile memory module, memory controller and portable memory storage apparatus
US8788876B2 (en) Stripe-based memory operation
KR101405741B1 (ko) 스트라이프-기반 비-휘발성 멀티레벨 메모리 동작
KR101528714B1 (ko) 메모리 유닛 동작 방법 및 메모리 제어기
CN108628771B (zh) 信息处理装置、存储设备以及信息处理系统
KR20130088173A (ko) 트랜잭션 로그 복구
KR20120060236A (ko) 파워 인터럽트 관리
TWI540428B (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
US10282096B1 (en) Identification of data with predetermined data pattern
Firmware et al. A Beginner’s Guide to SSD Firmware

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
A107 Divisional application of patent
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170330

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180418

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190425

Year of fee payment: 6