KR20160056446A - 데이터 저장 장치 및 그것의 동작 방법 - Google Patents

데이터 저장 장치 및 그것의 동작 방법 Download PDF

Info

Publication number
KR20160056446A
KR20160056446A KR1020140156107A KR20140156107A KR20160056446A KR 20160056446 A KR20160056446 A KR 20160056446A KR 1020140156107 A KR1020140156107 A KR 1020140156107A KR 20140156107 A KR20140156107 A KR 20140156107A KR 20160056446 A KR20160056446 A KR 20160056446A
Authority
KR
South Korea
Prior art keywords
page
virtual
main
area
super
Prior art date
Application number
KR1020140156107A
Other languages
English (en)
Other versions
KR102264757B1 (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 KR1020140156107A priority Critical patent/KR102264757B1/ko
Priority to US14/631,329 priority patent/US9501373B2/en
Priority to TW104119147A priority patent/TWI654520B/zh
Priority to CN201510474292.7A priority patent/CN105589810B/zh
Publication of KR20160056446A publication Critical patent/KR20160056446A/ko
Application granted granted Critical
Publication of KR102264757B1 publication Critical patent/KR102264757B1/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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2017Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where memory access, memory control or I/O control functionality is redundant
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management
    • 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/7204Capacity control, e.g. partitioning, end-of-life degradation
    • 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/7208Multiple device management, e.g. distributing data over multiple flash devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0409Online test

Landscapes

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

Abstract

본 발명에 따른 데이터 저장 장치는 각각이 메인 영역과 가상 영역을 포함하는 메모리 장치들; 및 상기 메모리 장치들 각각에서, 상기 메인 영역의 메인 페이지만을 선택함으로써 슈퍼 페이지를 형성하거나, 상기 메인 페이지 또는 상기 가상 영역의 가상 페이지를 선택함으로써 가상 슈퍼 페이지를 형성하도록 구성된 프로세서를 포함하되, 상기 프로세서는 상기 메인 페이지를 선택할 수 없는 경우 상기 가상 페이지를 선택한다.

Description

데이터 저장 장치 및 그것의 동작 방법{DATA STORAGE DEVICE AND OPERATING METHOD THEREOF}
본 발명은 반도체 장치에 관한 것으로, 더욱 상세하게는 반도체 메모리 장치의 인터리빙 성능을 극대화 하기 위한 것이다.
반도체 장치, 그 중에서도 반도체 메모리 장치는 데이터를 저장하는 용도로 사용될 수 있다. 메모리 장치는 그 타입을 크게 불휘발성과 휘발성으로 구분할 수 있다.
불휘발성 메모리 장치는 전원이 인가되지 않더라도 저장된 데이터를 유지할 수 있다. 불휘발성 메모리 장치는 낸드 플래시(NAND Flash) 또는 노어 플래시(NOR Flash)와 같은 플래시 메모리 장치, FeRAM(ferroelectrics Random Access Memory), PCRAM(Phase-Change Random Access Memory), MRAM(Magnetic Random Access Memory) 또는 ReRAM(Resistive Random Access Memory) 등을 포함할 수 있다.
휘발성 메모리 장치는 전원이 인가되지 않는 경우 저장된 데이터를 유지하지 못하고 소실할 수 있다. 휘발성 메모리 장치는 SRAM(Static Random Access Memory), DRAM(Dynamic Random Access Memory) 등을 포함할 수 있다. 휘발성 메모리 장치는 비교적 빠른 처리 속도에 기반하여, 데이터 처리 시스템에서 일반적으로 버퍼 메모리 장치, 캐시 메모리 장치, 동작 메모리 장치 등의 용도로 사용될 수 있다.
본 발명의 실시 예는 인터리빙 성능 및 공간 효율성이 극대화된 데이터 저장 장치를 제공하는 데 있다.
본 발명의 실시 예에 따른 데이터 저장 장치는 각각이 메인 영역과 가상 영역을 포함하는 메모리 장치들; 및 상기 메모리 장치들 각각에서, 상기 메인 영역의 메인 페이지만을 선택함으로써 슈퍼 페이지를 형성하거나, 상기 메인 페이지 또는 상기 가상 영역의 가상 페이지를 선택함으로써 가상 슈퍼 페이지를 형성하도록 구성된 프로세서를 포함하되, 상기 프로세서는 상기 메인 페이지를 선택할 수 없는 경우 상기 가상 페이지를 선택할 수 있다.
본 발명의 실시 예에 따른 데이터 저장 장치는 각각이 메인 영역과 가상 영역을 포함하는 메모리 장치들; 및 베드 영역 정보를 참조하여 상기 메모리 장치들에 걸친 슈퍼 페이지 또는 가상 슈퍼 페이지를 형성하고, 상기 슈퍼 페이지 또는 상기 가상 슈퍼 페이지를 인터리빙 방식으로 액세스하도록 구성된 프로세서를 포함할 수 있다.
본 발명의 실시 예에 따른 데이터 저장 장치는 메인 영역 및 가상 영역을 포함하는 불휘발성 메모리 장치; 및 베드 영역 정보를 참조하여 상기 메인 영역 또는 상기 가상 영역을 액세스하도록 구성된 프로세서를 포함하되, 상기 베드 영역 정보는 상기 메인 영역에서 베드 영역으로 처리된 메인 페이지에 대한 정보를 포함할 수 있다.
본 발명의 실시 예에 따른 데이터 저장 장치는 극대화된 인터리빙 성능 및 공간 효율성을 제공할 수 있다.
도1은 본 발명의 실시 예에 따른 데이터 저장 장치를 예시적으로 도시한 블록도,
도2는 도1에 도시된 제1 메모리 장치를 예시적으로 도시한 블록도,
도3 내지 5는 도1에 도시된 슈퍼 페이지 관리부에 의해 제1 및 제2 메모리 장치들에 걸쳐 형성된 슈퍼 페이지 또는 가상 슈퍼 페이지를 도시한 도면,
도6은 도1에 도시된 슈퍼 페이지 관리부의 동작 방법을 도시한 순서도,
도7 및 도8은 도1에 도시된 슈퍼 페이지 관리부가 슈퍼 페이지를 형성하는 다른 방법을 설명하기 위한 도면이다.
이하, 도면들을 참조하여 본 발명의 실시 예에 대해 상세히 설명하기로 한다.
도1은 본 발명의 실시 예에 따른 데이터 저장 장치(10)를 예시적으로 도시한 블록도이다.
데이터 저장 장치(10)는 외부 장치(미도시)의 라이트 요청에 응답하여, 외부 장치로부터 제공된 데이터를 저장하도록 구성될 수 있다. 또한, 데이터 저장 장치(10)는 외부 장치의 리드 요청에 응답하여, 저장된 데이터를 외부 장치로 제공하도록 구성될 수 있다.
데이터 저장 장치(10)는 PCMCIA(Personal Computer Memory Card International Association) 카드, CF(Compact Flash) 카드, 스마트 미디어(Smart Media) 카드, 메모리 스틱(Memory Stick), 다양한 멀티 미디어(Multi Media) 카드(MMC, eMMC, RS-MMC, MMC-micro), SD(Secure Digital) 카드(SD, Mini-SD, Micro-SD), UFS(Universal Flash Storage) 또는 솔리드 스테이트 드라이브(Solid State Drive) 등으로 구성될 수 있다.
데이터 저장 장치(10)는 컨트롤러(100) 및 저장 매체(200)를 포함할 수 있다.
컨트롤러(100)는 프로세서(110) 및 메모리(120)를 포함할 수 있다.
프로세서(110)는 데이터 저장 장치(10)의 제반 동작을 제어할 수 있다. 예를 들어, 프로세서(110)는 외부 장치의 라이트 요청 또는 리드 요청에 응답하여 저장 매체(200)의 라이트 동작 또는 리드 동작을 제어할 수 있다. 프로세서(110)는 메모리(120) 상에서 데이터 저장 장치(10)의 동작을 제어하기 위한 소프트웨어 프로그램을 구동할 수 있다.
프로세서(110)는 데이터의 신뢰성이 더 이상 보장되지 않을 것으로 판단되는 베드 영역을 별도로 관리할 수 있다. 프로세서(110)는 다양한 영역 단위로 베드 영역을 관리할 수 있다. 예를 들어, 프로세서(110)는 베드 페이지를 베드 영역으로 처리할 수 있다. 프로세서(110)는 베드 페이지와 워드라인을 공유하는 페이지들을 베드 영역으로 처리할 수 있다. 프로세서(110)는, 베드 페이지에 대응하는 워드라인에 근접한 복수의 워드라인들을 포함하는 워드라인 존(ZONE)에 있어서, 해당 워드라인 존에 대응하는 모든 페이지들을 베드 영역으로 처리할 수 있다.
프로세서(110)는 베드 영역의 주소를 베드 영역 정보(125)로서 관리할 수 있다. 프로세서(110)는 베드 영역 정보(125)를 참조하여 베드 영역에 데이터가 라이트되지 않도록 제어할 수 있다.
프로세서(110)는 제1 및 제2 메모리 장치들(210, 220)에 걸쳐 형성된 슈퍼 페이지 또는 가상 슈퍼 페이지를 인터리빙 방식으로 액세스할 수 있다. 프로세서(110)는 적어도 하나의 라이트 요청을 처리하기 위해 슈퍼 페이지 또는 가상 슈퍼 페이지를 액세스할 수 있다.
프로세서(110)는 슈퍼 페이지 관리부(115)를 포함할 수 있다.
슈퍼 페이지 관리부(115)는 프로세서(110)의 인터리빙 성능이 극대화될 수 있도록 모든 메모리 장치들(210, 220)에 걸친 슈퍼 페이지 또는 가상 슈퍼 페이지를 형성할 수 있다. 슈퍼 페이지 관리부(115)는 베드 영역 정보(125)를 참조하여, 슈퍼 페이지 또는 가상 슈퍼 페이지를 형성할 수 있다.
구체적으로, 슈퍼 페이지 관리부(115)는 제1 및 제2 메모리 장치들(210, 220) 각각에서, 메인 영역(MR1, MR2)의 메인 페이지만를 선택함으로써 슈퍼 페이지를 형성할 수 있다. 슈퍼 페이지 관리부(115)는 제1 및 제2 메모리 장치들(210, 220) 각각에서, 메인 영역(MR1, MR2)의 메인 페이지 또는 가상 영역(VR1, VR2)의 가상 페이지를 선택함으로써 가상 슈퍼 페이지를 형성할 수 있다. 슈퍼 페이지 관리부(115)는 메인 영역(MR1, MR2)의 메인 페이지를 선택할 수 없는 경우 가상 영역(VR1, VR2)의 가상 페이지를 선택할 수 있다.
슈퍼 페이지 관리부(115)가 메인 영역(MR1, MR2)의 메인 페이지를 선택할 수 없는 경우는 메인 페이지가 베드 영역으로서 관리되는, 즉, 액세스 금지된 경우를 포함할 수 있다. 예를 들어, 슈퍼 페이지 관리부(115)는 베드 페이지인 메인 페이지를 선택할 수 없을 것이다. 다른 예로서, 슈퍼 페이지 관리부(115)는 베드 페이지와 워드라인을 공유하는 메인 페이지를 선택할 수 없을 것이다. 다른 예로서, 슈퍼 페이지 관리부(115)는 베드 페이지와 같은 워드라인 존에 대응하는 메인 페이지를 선택할 수 없을 것이다.
슈퍼 페이지 관리부(115)는 디지털 회로, 아날로그 회로, 또는 디지털 및 아날로그 회로의 조합과 같은 하드웨어로 구현될 수 있다. 다른 예로서, 슈퍼 페이지 관리부(115)는 프로세서(110)에 의해 처리되는 펌웨어 등과 같은 소프트웨어로 구현될 수 있다. 다른 예로서, 슈퍼 페이지 관리부(115)는 하드웨어 및 소프트웨어의 조합으로 구현될 수 있다.
메모리(120)는 프로세서(110)의 동작 메모리, 버퍼 메모리 또는 캐시 메모리 등의 기능을 수행할 수 있다. 메모리(120)는 프로세서(110)에 의해 구동되는 소프트웨어 프로그램 및 각종 프로그램 데이터를 저장하거나, 외부 장치 및 저장 매체(200) 간에 전송되는 데이터를 버퍼링하거나 또는 캐시 데이터를 임시 저장할 수 있다.
메모리(120)는 슈퍼 페이지 관리부(115)에 의해 참조될 베드 영역 정보(125)를 저장할 수 있다. 베드 영역 정보(125)는 저장 매체(200)의 베드 영역에 대한 정보를 포함할 수 있다. 베드 영역 정보(125)는 저장 매체(200)로 백업될 수 있다.
저장 매체(200)는 제1 및 제2 메모리 장치들(210, 220)을 포함할 수 있다. 도1은 저장 매체(200)가 예시적으로 2개의 메모리 장치들을 포함하는 것으로 도시하나, 포함되는 메모리 장치들의 개수는 이에 제한되는 것은 아니다.
제1 및 제2 메모리 장치들(210, 220) 각각은 메인 영역(MR1, MR2)과 가상 영역(VR1, VR2)을 포함할 수 있다. 제1 및 제2 메모리 장치들(210, 220) 각각은 불휘발성 메모리 장치일 수 있다.
도2는 도1에 도시된 제1 메모리 장치(210)를 예시적으로 도시한 블록도이다. 도1에 도시된 제1 및 제2 메모리 장치들(210, 220)은 실질적으로 동일하게 구성될 수 있으므로, 제1 메모리 장치(210)의 구성이 예시적으로 설명될 것이다.
제1 메모리 장치(210)는 제어 로직(211), 인터페이스부(212), 어드레스 디코더(213), 데이터 입출력부(214) 및 메모리 영역(215)을 포함할 수 있다.
제어 로직(211)은 컨트롤러(100)로부터 제공된 커맨드에 응답하여 제1 메모리 장치(210)의 라이트 동작, 리드 동작 또는 소거 동작 등과 같은 제반 동작들을 제어할 수 있다.
인터페이스부(212)는 컨트롤러(100)와 커맨드, 어드레스를 포함한 각종 제어 신호들 및 데이터를 주고 받을 수 있다. 인터페이스부(212)는 입력된 각종 제어 신호들 및 데이터를 제1 메모리 장치(210)의 내부 유닛들로 전송할 수 있다.
어드레스 디코더(213)는 로우 어드레스 및 컬럼 어드레스를 디코딩할 수 있다. 어드레스 디코더(213)는 로우 어드레스의 디코딩 결과에 따라 워드 라인들(WL)이 선택적으로 구동되도록 제어할 수 있다. 어드레스 디코더(213)는 컬럼 어드레스의 디코딩 결과에 따라 비트 라인들(BL)이 선택적으로 구동되도록 데이터 입출력부(214)를 제어할 수 있다.
데이터 입출력부(214)는 인터페이스부(212)로부터 전송된 데이터를 비트 라인들(BL)을 통해 메모리 영역(215)으로 전송할 수 있다. 데이터 입출력부(214)는 메모리 영역(215)으로부터 비트 라인들(BL)을 통해 리드된 데이터를 인터페이스부(212)로 전송할 수 있다.
메모리 영역(215)은 워드 라인들(WL)을 통해 어드레스 디코더(213)와 연결될 수 있고, 비트 라인들(BL)을 통해 데이터 입출력부(214)와 연결될 수 있다. 메모리 영역(215)은, 예를 들어, 3차원 구조의 메모리 셀 어레이(미도시)를 포함할 수 있다. 메모리 영역(215)은 워드 라인들(WL)과 비트 라인들(BL)이 교차하는 영역에 각각 배치된 복수의 메모리 셀들(미도시)을 포함할 수 있다. 메모리 셀들은 셀 당 저장되는 데이터 비트 수에 따라 구별될 수 있다. 예를 들어, 메모리 셀들은 셀 당 1비트를 저장하는 싱글 레벨 셀과 셀 당 적어도 2비트들을 저장하는 멀티 레벨 셀로 구별될 수 있다.
메모리 영역(215)은 메인 영역(MR1) 및 가상 영역(VR1)을 포함할 수 있다.
메인 영역(MR1)은 복수의 메인 메모리 블록들(MB11~MB1k)을 포함할 수 있다. 메인 메모리 블록들(MB11~MB1k) 각각은 복수의 메인 페이지들을 포함할 수 있다. 예를 들어, 제1 메인 메모리 블록(MB11)은 복수의 메인 페이지들(MP0~MPn)을 포함할 수 있다. 메인 페이지들(MP0~MPn)은 오프셋 값에 따라 페이지 번호를 부여 받을 수 있다. 메인 페이지들(MP0~MPn)은 페이지 번호 순서에 따라 액세스될 수 있다.
가상 영역(VR1)은 적어도 하나의 가상 메모리 블록(VB1)을 포함할 수 있다. 도2는, 설명의 간편화를 위해서, 가상 영역(VR1)이 1개의 가상 메모리 블록을 포함하는 것으로 도시하나, 포함되는 가상 메모리 블록의 개수는 이에 제한되는 것은 아니다. 가상 메모리 블록(VB1)은 복수의 가상 페이지들(VP0~VPn)을 포함할 수 있다. 가상 페이지들(VP0~VPn)은 오프셋 값에 따라 페이지 번호를 부여 받을 수 있다. 가상 페이지들(VP0~VPn)은 페이지 번호 순서에 따라 액세스될 수 있다.
메모리 블록은 메모리 영역(215)에 대해 소거 동작이 수행되는 단위일 수 있다. 페이지는 메모리 영역(215)에 대해 라이트 동작 또는 리드 동작이 수행되는 단위일 수 있다. 메모리 블록들과 페이지들은 대응하는 어드레스들을 부여 받고, 어드레스에 따라 액세스될 수 있다. 예를 들어, 페이지는 대응하는 워드 라인을 구동함으로써 액세스될 수 있다.
도3내지 도5는 도1에 도시된 슈퍼 페이지 관리부(115)에 의해 제1 및 제2 메모리 장치들(210, 220)에 걸쳐 형성된 슈퍼 페이지(SP) 또는 가상 슈퍼 페이지(VSP)를 도시한 도면이다. 도3내지 도5를 참조하면, 제1 및 제2 메모리 장치들(210, 220) 각각의 메인 영역(MR1, MR2) 및 가상 영역(VR1, VR2)이 도시된다. 또한, 메인 영역들(MR1, MR2) 각각에서 데이터를 저장하기 위해 선택된 메인 메모리 블록들(MB11, MB21)이 예시적으로 도시된다.
이하, 도3내지 도5를 참조하여, 슈퍼 페이지 관리부(115)가 슈퍼 페이지 또는 가상 슈퍼 페이지를 형성하는 방법이 상세하게 설명될 것이다.
슈퍼 페이지 관리부(115)는 제1 및 제2 메모리 장치들(210, 220) 각각에서, 메인 영역(MR1, MR2)의 메인 페이지만을 선택함으로써 슈퍼 페이지(SP)를 형성할 수 있다. 슈퍼 페이지 관리부(115)는 제1 및 제2 메모리 장치들(210, 220) 각각에서, 메인 영역(MR1, MR2)의 메인 페이지 또는 가상 영역(VR1, VR2)의 가상 페이지를 선택함으로써 가상 슈퍼 페이지를 형성할 수 있다. 슈퍼 페이지 관리부(115)는 메인 영역(MR1, MR2)의 메인 페이지를 선택할 수 없는 경우 가상 영역(VR1, VR2)의 가상 페이지를 선택할 수 있다. 슈퍼 페이지 관리부(115)가 메인 영역(MR1, MR2)의 메인 페이지를 선택할 수 없는 경우란 메인 페이지가 베드 영역으로서 관리되는 경우를 포함할 수 있다. 슈퍼 페이지 관리부(115)는 베드 영역을 확인하기 위해서 메모리(120)에 저장된 베드 영역 정보(125)를 참조할 수 있다.
슈퍼 페이지 관리부(115)는 기준 오프셋 값에 따라, 메인 페이지가 베드 영역인지 여부를 확인할 수 있다. 예를 들어, 슈퍼 페이지 관리부(115)는 기준 오프셋 값을 가진 메인 페이지가 베드 영역인지 여부를 확인할 수 있다. 예를 들어, 도3을 참조하면, 슈퍼 페이지 관리부(115)는 최초에 0으로 설정된 기준 오프셋 값에 따라, 제1 및 제2 메모리 장치들(210, 220)에서 오프셋 값이 0인 메인 페이지들(MP0)이 베드 영역인지 여부를 확인할 수 있다. 슈퍼 페이지 관리부(115)는 오프셋 값이 0인 메인 페이지들(MP0)이 정상 페이지들로 확인되는 경우, 오프셋 값이 0인 메인 페이지들(MP0)을 선택하고 그룹핑함으로써 슈퍼 페이지(SP)를 형성할 수 있다.
기준 오프셋 값은 베드 영역 여부가 확인되고 그룹핑될 메인 페이지를 선택하기 위한 기준 값을 의미할 수 있다. 기준 오프셋 값은 슈퍼 페이지가 형성되고 라이트된 후, 새로운 슈퍼 페이지가 형성되도록 슈퍼 페이지 관리부(115)에 의해 증가될 수 있다. 예를 들어, 슈퍼 페이지 관리부(115)는 기준 오프셋 값이 0인 상태에서 형성된 슈퍼 페이지가 라이트되면 기준 오프셋 값을 1로 증가시킬 수 있다.
도4를 참조하면, 도3을 참조하여 설명된 동작 이후에 기준 오프셋 값이 1로 설정된 상태를 도시한 것으로 가정한다.
슈퍼 페이지 관리부(115)는 새로운 슈퍼 페이지 또는 가상 슈퍼 페이지를 형성하기 위해, 1로 설정된 기준 오프셋 값에 따라 제1 및 제2 메모리 장치들(210, 220)에서 오프셋 값이 1인 메인 페이지들(MP1)이 베드 영역인지 여부를 확인할 수 있다. 제2 메모리 장치(220)에서 오프셋 값이 1인 메인 페이지(MP1)가 베드 영역으로 확인되는 경우, 슈퍼 페이지 관리부(115)는 제2 메모리 장치(220)에서 가상 영역(VR2)의 가상 페이지(VP0)를 선택할 수 있다. 슈퍼 페이지 관리부(115)는 제1 메모리 장치(210)에서 오프셋 값이 1인 메인 페이지(MP1)와 제2 메모리 장치(220)에서 가상 페이지(VP0)를 선택하고 그룹핑함으로써 가상 슈퍼 페이지(VSP)를 형성할 수 있다.
슈퍼 페이지 관리부(115)는 가상 슈퍼 페이지(VSP)가 라이트되면 기준 오프셋 값을 2로 증가시킬 수 있다.
도5를 참조하면, 도4를 참조하여 설명된 동작 이후에 기준 오프셋 값이 2로 설정된 상태를 도시한 것으로 가정한다.
슈퍼 페이지 관리부(115)는 새로운 슈퍼 페이지 또는 가상 슈퍼 페이지를 형성하기 위해, 2로 설정된 기준 오프셋 값에 따라 제1 및 제2 메모리 장치들(210, 220)에서 오프셋 값이 2인 메인 페이지들(MP2)이 베드 영역인지 여부를 확인할 수 있다. 슈퍼 페이지 관리부(115)는 오프셋 값이 2인 메인 페이지들(MP2)이 정상 페이지들로 확인되는 경우, 오프셋 값이 2인 메인 페이지들(MP2)을 선택하고 그룹핑함으로써 슈퍼 페이지(SP)를 형성할 수 있다.
도6은 도1에 도시된 슈퍼 페이지 관리부(115)의 동작 방법을 도시한 순서도이다.
이하, 도1 및 도6을 참조하여 슈퍼 페이지 관리부(115)의 동작 방법이 상세하게 설명될 것이다.
S110 단계에서, 슈퍼 페이지 관리부(115)는 제1 및 제2 메모리 장치들(210, 220) 각각에서 기준 오프셋 값을 가진 메인 페이지가 베드 영역인지 여부를 확인할 수 있다. 기준 오프셋 값은 제1 및 제2 메모리 장치들(210, 220) 각각에서 메인 페이지를 선택하기 위한 기준 값일 수 있다. 슈퍼 페이지 관리부(115)는 기준 오프셋 값을 가진 메인 페이지가 베드 영역인지 여부를 확인하기 위해서 베드 영역 정보(125)를 참조할 수 있다. 기준 오프셋 값을 가진 적어도 하나의 메인 페이지가 베드 영역으로 확인되는 경우(예), 절차는 S120 단계로 진행될 수 있다. 기준 오프셋 값을 가진 모든 메인 페이지들이 정상으로 확인되는 경우(아니오), 절차는 S130 단계로 진행될 수 있다.
S120 단계에서, 슈퍼 페이지 관리부(115)는 가상 슈퍼 페이지를 형성할 수 있다. 구체적으로, 슈퍼 페이지 관리부(115)는 정상으로 확인된 메인 페이지를 그대로 선택하고, 베드 영역이 포함된 메모리 장치에서 가상 페이지를 선택할 수 있다. 슈퍼 페이지 관리부(115)는 선택된 메인 페이지 및 가상 페이지를 그룹핑함으로써 가상 슈퍼 페이지를 형성할 수 있다.
S130 단계에서, 슈퍼 페이지 관리부(115)는 슈퍼 페이지를 형성할 수 있다. 슈퍼 페이지 관리부(115)는 정상으로 확인된 메인 페이지들을 그룹핑함으로써 슈퍼 페이지를 형성할 수 있다.
슈퍼 페이지 관리부(115)는 라이트 동작 시 모든 메모리 장치들(210, 220)에 걸쳐 슈퍼 페이지 또는 가상 슈퍼 페이지를 형성함으로써 데이터 저장 장치(10)의 인터리빙 효과를 극대화시킬 수 있다. 제1 및 제2 메모리 장치들(210, 220) 각각에서 메인 영역(MR1, MR2)의 메인 페이지가 베드 영역인 경우, 슈퍼 페이지 관리부(115)는 메모리 장치들(210, 220)마다 별도로 포함하는 가상 영역(VR1, VR2)으로부터 가상 페이지를 선택하여 가상 슈퍼 페이지를 형성함으로써, 데이터 저장 장치(10)는 메인 영역(MR1, MR2)의 모든 정상 페이지들을 효율적으로 사용할 수 있다.
프로세서(110)는 가상 영역(VR1, VR2)을 재사용함으로써 가상 슈퍼 페이지를 지속적으로 형성할 수 있다. 예를 들어, 가상 영역(VR1, VR2)의 모든 가상 페이지들이 라이트된 경우, 프로세서(110)는 가상 영역(VR1, VR2)에 대해 가비지 컬렉션 동작을 수행할 수 있다. 프로세서(110)는 가상 영역(VR1, VR2)에 저장된 유효 데이터를 메인 영역(MR1, MR2)으로 카피하고 가상 영역(VR1, VR2)을 소거함으로써 가상 영역(VR1, VR2)을 재사용할 수 있을 것이다.
도7 및 도8은 도1에 도시된 슈퍼 페이지 관리부(115)가 슈퍼 페이지(SP)를 형성하는 다른 방법을 설명하기 위한 도면이다. 도7 및 도8에서 슈퍼 페이지 관리부(115)는, 기준 오프셋 값에 따른 메인 페이지가 베드 영역으로 확인되더라도, 전술된 실시 예와 같이 가상 페이지를 사용한 가상 슈퍼 페이지를 형성하지 않고 오로지 메인 페이지만을 선택하여 슈퍼 페이지를 형성할 수 있다.
구체적으로, 슈퍼 페이지 관리부(115)는, 어떤 메모리 장치에서 선택된 메인 페이지가 베드 영역 정보(125)를 참조한 결과 베드 영역인 경우, 베드 영역을 포함하는 메모리 장치를 제외하고 나머지 메모리 장치들에 걸쳐 슈퍼 페이지를 형성할 수 있다. 도7을 참조하면, 제2 메모리 장치(220)에서 오프셋 값이 1인 메인 페이지(MP1)가 베드 영역인 경우, 제1 메모리 장치(210)에서 오프셋 값이 1인 메인 페이지(MP1)만을 선택함으로써 슈퍼 페이지(SP)를 형성할 수 있다. 다만, 이와 같은 방법은 가상 영역을 별도로 관리할 부담이 없는 대신에 극대화된 인터리빙 성능을 제공할 수 없을 것이다.
다른 예로서, 슈퍼 페이지 관리부(115)는 어떤 메모리 장치에서 선택된 메인 페이지가 베드 영역 정보(125)를 참조한 결과 베드 영역인 경우, 해당 메모리 장치에서 베드 영역을 건너뛰고 그 다음 메인 페이지를 선택함으로써 슈퍼 페이지(SP)를 형성할 수 있다. 도8을 참조하면, 제2 메모리 장치(220)에서 오프셋 값이 1인 메인 페이지(MP1)가 베드 영역인 경우, 제2 메모리 장치(220)에서 오프셋 값이 2인 메인 페이지(MP2)를 선택함으로써 슈퍼 페이지(SP)를 형성할 수 있다. 다만, 이와 같은 방법은 극대화된 인터리빙 효과를 제공할 수는 있지만, 결국 형성 가능한 슈퍼 페이지의 총 개수가 제한될 수 있다는 점에서 극대화된 공간 효율성을 제공할 수 없을 것이다.
본 발명이 속하는 기술분야의 통상의 기술자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있으므로, 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
10 : 데이터 저장 장치
100 : 컨트롤러
110 : 프로세서
115 : 슈퍼 페이지 관리부
120 : 메모리
125 : 베드 영역 정보
200 : 저장 매체
210 : 제1 메모리 장치
220 : 제2 메모리 장치
MR1, MR2 : 메인 영역
VR1, VR2 : 가상 영역

Claims (16)

  1. 각각이 메인 영역과 가상 영역을 포함하는 메모리 장치들; 및
    상기 메모리 장치들 각각에서, 상기 메인 영역의 메인 페이지만을 선택함으로써 슈퍼 페이지를 형성하거나, 상기 메인 페이지 또는 상기 가상 영역의 가상 페이지를 선택함으로써 가상 슈퍼 페이지를 형성하도록 구성된 프로세서를 포함하되,
    상기 프로세서는 상기 메인 페이지를 선택할 수 없는 경우 상기 가상 페이지를 선택하는 데이터 저장 장치.
  2. 제1항에 있어서,
    상기 프로세서는, 상기 메모리 장치들 각각에서, 상기 메인 영역에서 기준 오프셋 값을 가진 메인 페이지를 선택함으로써 상기 슈퍼 페이지를 형성하는 데이터 저장 장치.
  3. 제1항에 있어서,
    상기 프로세서가 상기 메인 페이지를 선택할 수 없는 경우는 상기 메인 페이지가 베드 영역인 경우를 포함하는 데이터 저장 장치.
  4. 제1항에 있어서,
    상기 프로세서는 적어도 하나의 라이트 요청을 처리하기 위해 상기 슈퍼 페이지 또는 상기 가상 슈퍼 페이지를 액세스하는 데이터 저장 장치.
  5. 제1항에 있어서,
    상기 프로세서는 인터리빙 방식으로 상기 슈퍼 페이지 또는 상기 가상 슈퍼 페이지를 액세스하는 데이터 저장 장치.
  6. 제1항에 있어서,
    상기 프로세서는, 상기 가상 영역에 저장된 유효 데이터를 상기 메인 영역으로 카피함으로써, 상기 가상 슈퍼 페이지를 형성하기 위해 상기 가상 영역을 재사용하는 데이터 저장 장치.
  7. 각각이 메인 영역과 가상 영역을 포함하는 메모리 장치들; 및
    베드 영역 정보를 참조하여 상기 메모리 장치들에 걸친 슈퍼 페이지 또는 가상 슈퍼 페이지를 형성하고, 상기 슈퍼 페이지 또는 상기 가상 슈퍼 페이지를 인터리빙 방식으로 액세스하도록 구성된 프로세서를 포함하는 데이터 저장 장치.
  8. 제7항에 있어서,
    상기 베드 영역 정보는 상기 메인 영역에서 베드 영역으로 처리된 메인 페이지에 대한 정보를 포함하는 데이터 저장 장치.
  9. 제7항에 있어서,
    상기 프로세서는, 상기 메모리 장치들 각각에서, 상기 메인 영역에서 기준 오프셋 값을 가진 메인 페이지를 선택함으로써 상기 슈퍼 페이지를 형성하는 데이터 저장 장치.
  10. 제9항에 있어서,
    상기 프로세서는, 상기 메모리 장치들 각각에서, 상기 기준 오프셋 값을 가진 메인 페이지가 베드 영역인 경우, 상기 가상 영역의 가상 페이지를 선택함으로써 상기 가상 슈퍼 페이지를 형성하는 데이터 저장 장치.
  11. 제7항에 있어서,
    상기 프로세서는 적어도 하나의 라이트 요청을 처리하기 위해 상기 슈퍼 페이지 또는 상기 가상 슈퍼 페이지를 액세스하는 데이터 저장 장치.
  12. 제7항에 있어서,
    상기 프로세서는, 상기 가상 영역에 저장된 유효 데이터를 상기 메인 영역으로 카피함으로써, 상기 가상 슈퍼 페이지를 형성하기 위해 상기 가상 영역을 재사용하는 데이터 저장 장치.
  13. 메인 영역 및 가상 영역을 포함하는 불휘발성 메모리 장치; 및
    베드 영역 정보를 참조하여 상기 메인 영역 또는 상기 가상 영역을 액세스하도록 구성된 프로세서를 포함하되,
    상기 베드 영역 정보는 상기 메인 영역에서 베드 영역으로 처리된 메인 페이지에 대한 정보를 포함하는 데이터 저장 장치.
  14. 제13항에 있어서,
    상기 프로세서는 상기 메인 영역의 메인 페이지들을 오프셋 값에 따라 액세스하는 데이터 저장 장치.
  15. 제14항에 있어서,
    상기 프로세서는 상기 오프셋 값에 따라 액세스될 메인 페이지가 베드 영역인 경우 상기 베드 영역 대신에 상기 가상 영역의 가상 페이지를 액세스하는 데이터 저장 장치.
  16. 제13항에 있어서,
    상기 프로세서는, 상기 가상 영역에 저장된 유효 데이터를 상기 메인 영역으로 카피함으로써 상기 가상 영역을 재사용하는 데이터 저장 장치.
KR1020140156107A 2014-11-11 2014-11-11 데이터 저장 장치 및 그것의 동작 방법 KR102264757B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020140156107A KR102264757B1 (ko) 2014-11-11 2014-11-11 데이터 저장 장치 및 그것의 동작 방법
US14/631,329 US9501373B2 (en) 2014-11-11 2015-02-25 Data storage device and operating method thereof
TW104119147A TWI654520B (zh) 2014-11-11 2015-06-12 資料儲存裝置及其操作方法
CN201510474292.7A CN105589810B (zh) 2014-11-11 2015-08-05 数据储存器件及其操作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140156107A KR102264757B1 (ko) 2014-11-11 2014-11-11 데이터 저장 장치 및 그것의 동작 방법

Publications (2)

Publication Number Publication Date
KR20160056446A true KR20160056446A (ko) 2016-05-20
KR102264757B1 KR102264757B1 (ko) 2021-06-16

Family

ID=55912310

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140156107A KR102264757B1 (ko) 2014-11-11 2014-11-11 데이터 저장 장치 및 그것의 동작 방법

Country Status (4)

Country Link
US (1) US9501373B2 (ko)
KR (1) KR102264757B1 (ko)
CN (1) CN105589810B (ko)
TW (1) TWI654520B (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11204841B2 (en) * 2018-04-06 2021-12-21 Micron Technology, Inc. Meta data protection against unexpected power loss in a memory system

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070214310A1 (en) * 2006-03-10 2007-09-13 Sony Corporation Nonvolatile memory system and management method for nonvolatile memory
KR20090106221A (ko) * 2008-04-04 2009-10-08 엘지전자 주식회사 병렬 구조를 가지는 플래시 메모리 시스템 및 그 데이터기록방법 및 플래시 메모리
US20110283135A1 (en) * 2010-05-17 2011-11-17 Microsoft Corporation Managing memory faults
US20120151252A1 (en) * 2010-12-10 2012-06-14 Microsoft Corporation Memory Management to Accommodate Non-Maskable Failures
US8543863B2 (en) * 2009-11-18 2013-09-24 Microsoft Corporation Efficiency of hardware memory access using dynamically replicated memory

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3105092B2 (ja) * 1992-10-06 2000-10-30 株式会社東芝 半導体メモリ装置
US6832301B2 (en) * 2001-09-11 2004-12-14 International Business Machines Corporation Method for recovering memory
US7853825B2 (en) * 2005-08-16 2010-12-14 Hewlett-Packard Development Company, L.P. Methods and apparatus for recovering from fatal errors in a system
US7770079B2 (en) 2007-08-22 2010-08-03 Micron Technology Inc. Error scanning in flash memory
US8214579B2 (en) * 2008-09-30 2012-07-03 Tdk Corporation Memory controller, flash memory system with memory controller, and method of controlling flash memory
US10209904B2 (en) * 2013-04-09 2019-02-19 EMC IP Holding Company LLC Multiprocessor system with independent direct access to bulk solid state memory resources

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070214310A1 (en) * 2006-03-10 2007-09-13 Sony Corporation Nonvolatile memory system and management method for nonvolatile memory
KR20090106221A (ko) * 2008-04-04 2009-10-08 엘지전자 주식회사 병렬 구조를 가지는 플래시 메모리 시스템 및 그 데이터기록방법 및 플래시 메모리
US8543863B2 (en) * 2009-11-18 2013-09-24 Microsoft Corporation Efficiency of hardware memory access using dynamically replicated memory
US20110283135A1 (en) * 2010-05-17 2011-11-17 Microsoft Corporation Managing memory faults
US20120151252A1 (en) * 2010-12-10 2012-06-14 Microsoft Corporation Memory Management to Accommodate Non-Maskable Failures

Also Published As

Publication number Publication date
CN105589810B (zh) 2020-10-30
TWI654520B (zh) 2019-03-21
CN105589810A (zh) 2016-05-18
US9501373B2 (en) 2016-11-22
US20160132406A1 (en) 2016-05-12
TW201617880A (zh) 2016-05-16
KR102264757B1 (ko) 2021-06-16

Similar Documents

Publication Publication Date Title
US9418017B2 (en) Hot memory block table in a solid state storage device
US9575839B2 (en) Data storage device and operating method thereof
US9123443B2 (en) Memory device, memory management device, and memory management method
TWI707268B (zh) 資料儲存裝置及其操作方法
KR20160024546A (ko) 데이터 저장 장치 및 그것의 동작 방법
TW201624287A (zh) 資料儲存裝置及其操作方法
WO2010024506A1 (en) Flash based storage device using page buffer as write cache and method of using the same
US10747660B2 (en) Method and system for forming and using memory superblocks based on performance grades
US9619323B2 (en) Data storage device and operating method thereof
KR20200076923A (ko) 저장 장치, 컨트롤러 및 저장 장치의 동작 방법
KR101070511B1 (ko) Ssd 컨트롤러 및 ssd 컨트롤러의 동작 방법
US11249917B2 (en) Data storage device and operating method thereof
CN111338995B (zh) 数据存储装置及操作数据存储装置的方法
KR20120069954A (ko) 블럭 보호 기능을 갖는 비휘발성 메모리 시스템 및 블럭 상태 제어 방법
KR102264757B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
JP2009266125A (ja) メモリシステム
KR102246843B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
JPWO2019044061A1 (ja) メモリコントローラ、メモリシステムおよび情報処理システム
JP4800732B2 (ja) 半導体ディスクドライブ
KR20160006989A (ko) 데이터 저장 장치 및 그것을 포함하는 데이터 처리 시스템

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant