KR20200076431A - 메모리 컨트롤러 및 메모리 시스템의 동작 방법, 및 메모리 시스템 - Google Patents

메모리 컨트롤러 및 메모리 시스템의 동작 방법, 및 메모리 시스템 Download PDF

Info

Publication number
KR20200076431A
KR20200076431A KR1020180165532A KR20180165532A KR20200076431A KR 20200076431 A KR20200076431 A KR 20200076431A KR 1020180165532 A KR1020180165532 A KR 1020180165532A KR 20180165532 A KR20180165532 A KR 20180165532A KR 20200076431 A KR20200076431 A KR 20200076431A
Authority
KR
South Korea
Prior art keywords
data
controller
nonvolatile memory
memory device
write
Prior art date
Application number
KR1020180165532A
Other languages
English (en)
Inventor
문귀연
박성규
신범규
홍영석
정재용
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020180165532A priority Critical patent/KR20200076431A/ko
Priority to US16/544,178 priority patent/US11210016B2/en
Priority to CN201911307102.7A priority patent/CN111414133A/zh
Publication of KR20200076431A publication Critical patent/KR20200076431A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

본 개시는 메모리 컨트롤러 및 메모리 시스템의 동작 방법, 및 메모리 시스템을 개시한다. 본 개시의 기술적 사상에 따른, 비휘발성 메모리 장치를 제어하는 메모리 컨트롤러의 동작 방법은 제1 인터페이스를 통해 외부 컨트롤러로부터 제1 데이터 및 제1 물리 주소를 수신하는 단계; 상기 제1 데이터를 비휘발성 메모리 버퍼에 저장하는 단계; 및 상기 비휘발성 메모리 버퍼에 저장된 상기 제1 데이터가 상기 물리 주소에 대응하는 상기 비휘발성 메모리 장치의 제1 물리 영역에 프로그램 되도록 상기 비휘발성 메모리 장치의 기입 동작을 제어하는 단계를 포함할 수 있다.

Description

메모리 컨트롤러 및 메모리 시스템의 동작 방법, 및 메모리 시스템 {Operating method of memory controller and memory system, and memory system}
본 개시의 기술적 사상은 메모리 시스템에 관한 것이며, 더욱 상세하게는, 비휘발성 메모리 장치를 포함하는 메모리 시스템 및 이의 동작 방법, 및 상기 메모리 시스템에 구비되는 메모리 컨트롤러에 관한 것이다.
비휘발성 메모리로서 플래시 메모리는 전원이 차단되어도 저장하고 있는 데이터를 유지할 수 있다. 최근 eMMC(embedded Multi-Media Card), UFS(Universal Flash Storage), SSD(Solid State Drive), 및 메모리 카드 등의 플래시 메모리를 포함하는 스토리지 장치가 널리 사용되고 있으며, 스토리지 장치는 많은 양의 데이터를 저장하거나 이동시키는데 유용하게 사용되고 있다. 스토리지 장치의 기입 신뢰성과 기입 성능을 향상시킬 수 있는 방법 및 장치에 대한 요구가 지속적으로 제기되고 있다.
본 개시의 기술적 사상은, 복수의 메모리 컨트롤러들 및 메모리 장치를 포함하는 메모리 시스템, 이의 동작 방법 및 메모리 컨트롤러의 동작 방법을 제공하는 데 있다.
본 개시의 기술적 사상에 따른, 비휘발성 메모리 장치를 제어하는 메모리 컨트롤러의 동작 방법은 제1 인터페이스를 통해 외부 컨트롤러로부터 제1 데이터 및 제1 물리 주소를 수신하는 단계; 상기 제1 데이터를 비휘발성 메모리 버퍼에 저장하는 단계; 및 상기 비휘발성 메모리 버퍼에 저장된 상기 제1 데이터가 상기 물리 주소에 대응하는 상기 비휘발성 메모리 장치의 제1 물리 영역에 프로그램 되도록 상기 비휘발성 메모리 장치의 기입 동작을 제어하는 단계를 포함할 수 있다.
본 개시의 기술적 사상에 따른, 비휘발성 메모리 장치를 제어하는 메모리 컨트롤 시스템의 동작 방법은 제2 컨트롤러가 제1 인터페이스를 통해 제1 컨트롤러로부터 기입 데이터 및 물리 주소를 수신하는 단계; 상기 제2 컨트롤러가 상기 기입 데이터를 비휘발성 메모리 버퍼에 저장하는 단계; 및 상기 제2 컨트롤러가, 상기 비휘발성 메모리 버퍼에 저장된 상기 기입 데이터가 상기 물리 주소에 대응하는 상기 비휘발성 메모리 장치의 물리 영역에 프로그램되도록 상기 비휘발성 메모리 장치의 기입 동작을 제어하는 단계를 포함할 수 있다.
본 개시의 기술적 사상에 따른, 메모리 시스템은, 호스트로부터 비휘발성 메모리 장치에 대한 액세스 요청 및 논리 주소를 수신하고, 상기 논리 주소를 물리 주소로 변환하는 제1 컨트롤러; 및 상기 제1 컨트롤러로부터 상기 물리 주소를 수신하고, 상기 논리 주소에 대응하는 상기 비휘발성 메모리 장치의 저장 영역에 기입 데이터가 기입되거나 또는 상기 저장 영역으로부터 독출 데이터가 독출되도록 제어하는 제2 컨트롤러를 포함할 수 있다.
본 개시의 기술적 사상에 따른 메모리 시스템은 복수의 메모리 컨트롤러들을 구비하고 복수의 메모리 컨트롤러들이 메모리 장치에 대한 기입/독출 동작과 관련한 기능들을 분담함으로써, 각 메모리 컨트롤러의 제어 부담(load)을 경감시킬 수 있다. 또한, 본 개시의 기술적 사상에 따른 메모리 컨트롤러는 메모리 장치에 대한 버퍼로서 동작하는 비휘발성 메모리를 사용함으로써, 비휘발성 메모리 장치에 기입될 많은 양의 데이터를 임시 저장할 수 있으면서도, 서든 파워 오프 발생 시 데이터 손실을 방지할 수 있다. 따라서, 데이터 손실을 방지하기 위하여 메모리 컨트롤러에 구비되는 커패시터의 용량이 감소될 수 있는 바, 메모리 컨트롤러 및 메모리 시스템의 면적이 감소될 수 있다.
도 1은 본 개시의 실시예에 따른 메모리 시스템을 포함하는 데이터 처리시스템의 일 예를 개략적으로 나타내는 블록도이다.
도 2는 본 개시의 실시예에 따른 메모리 시스템의 기입 및 독출 동작을 개략적으로 설명하는 도면이다.
도 3은 본 개시의 실시예에 따른 메모리 시스템의 동작 방법을 개략적으로 나타내는 흐름도이다.
도 4는 본 개시의 예시적 실시예에 따른 제2 컨트롤러를 개략적으로 나타내는 블록도이다.
도 5는 본 개시의 예시적 실시예에 따른 비휘발성 메모리 버퍼의 메모리 셀 어레이의 일 예를 나타내는 도면이다.
도 6은 본 개시의 예시적 실시예에 따른 메모리 시스템의 기입 방법을 나타내는 흐름도이다.
도 7은 본 개시의 예시적 실시예에 따른 메모리 시스템의 기입 방법을 설명하는 도면이다.
도 8은 본 개시의 예시적 실시예에 따른 메모리 시스템의 기입 방법을 설명하는 도면이다.
도 9는 본 개시의 예시적 실시예에 따른 메모리 시스템의 기입 방법을 설명하는 도면이다.
도 10은 본 개시의 예시적 실시예에 따른 메모리 시스템의 기입 방법을 설명하는 도면이다.
도 11a 및 도 11b는 본 개시의 예시적 실시예에 따른 메모리 시스템의 기입 방법을 설명하는 도면이다.
도 12a 및 도 12b는 본 개시의 예시적 실시예에 따른 비휘발성 메모리 시스템의 프로그램 완료 정보를 전송하는 방법을 설명하는 도면이다.
도 13은 본 개시의 예시적 실시예에 따른 메모리 시스템의 독출 방법을 나타내는 흐름도이다.
도 14a 및 도 14b는 본 개시의 예시적 실시예에 따른 메모리 시스템의 독출 방법을 설명하는 도면이다.
도 15a 및 도 15b는 본 개시의 예시적 실시예에 따른 메모리 시스템의 프로그램 페일 발생 시 동작 방법을 설명하는 도면이다.
도 16a, 도 16b 및 도 16c는 본 개시의 예시적 실시예에 따른 메모리 시스템에서 파워-오프 및 파워-온 시의 동작 방법을 설명하는 도면이다.
도 17은 본 개시의 예시적 실시예에 따른 관리 정보를 나타내는 도면이다.
도 18은 본 개시의 예시적 실시예에 따른 SSD 시스템을 나타내는 블록도이다.
이하, 첨부한 도면을 참조하여 본 개시의 실시예에 대해 상세히 설명한다.
도 1은 본 개시의 실시예에 따른 메모리 시스템을 포함하는 데이터 처리시스템의 일 예를 개략적으로 나타내는 블록도이다.
데이터 처리 시스템(1)은 전자 장치에 내장(embedded)되거나 또는 전자 장치로 구현될 수 있다. 전자 장치는 예를 들어, PC(personal computer), 데이터 서버, UMPC(Ultra Mobile PC), 워크스테이션, 넷북(net-book), 네트워크-결합 스토리지(network-attached storage, NAS), 스마트 텔레비전(smart television), IoT (Internet of Things) 장치, 또는 휴대용 전자 기기로 구현될 수 있다. 휴대용 전자 기기는, 랩탑 컴퓨터, 이동 전화기, 스마트폰, 태블릿 PC, PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라, 디지털 비디오 카메라, 오디오 장치, PMP(portable multimedia player), PND(personal navigation device), MP3 플레이어, 휴대용 게임 콘솔(handheld game console), e-북(e-book), 웨어러블 기기 등일 수 있다.
도 1을 참조하면, 데이터 처리 시스템(1)은 호스트(200) 및 메모리 시스템(100)을 포함한다.
호스트(200)는 메모리 시스템(100)에 데이터를 저장하고, 메모리 시스템(100)로부터 데이터를 독출할 수 있다. 호스트(200)는 CPU(Central Processing Unit), 프로세서, 마이크로프로세서 또는 어플리케이션 프로세서(Application Processor, AP) 등과 같이 데이터를 처리할 수 있는 데이터 처리 장치를 의미할 수 있다. 예를 들어, 호스트(200)는 시스템 온 칩(System-On-a-Chip, SoC)으로 구현될 수 있다.
호스트(200)는 다양한 인터페이스를 통하여 메모리 시스템(100)과 통신할 수 있다. 호스트(200)는 메모리 시스템(100)에 데이터 기입 또는 데이터 독출을 위한 액세스 요청(REQ) 및 액세스 하고자 하는 위치를 나타내는 주소, 즉 논리 주소(LA)를 전송할 수 있다. 액세스 요청(REQ)은 기입 요청 또는 독출 요청을 포함하는 커맨드일 수 있다. 메모리 시스템(100)은 액세스 요청(REQ)에 응답하여 동작할 수 있다.
메모리 시스템(100)은 호스트(200)로부터 수신되는 액세스 요청, 즉 기입/독출 요청(REQ)에 응답하여 동작하며, 호스트(200)로부터 수신되는 데이터(DATA)를 저장할 수 있다. 즉, 메모리 시스템(100)은 호스트(200)의 스토리지 장치로 사용될 수 있다.
메모리 시스템(100)은 호스트(200)와 연결되는 호스트 인터페이스 프로토콜에 따라, 다양한 종류의 저장 장치들 중 하나로 구현될 수 있다. 예를 들면, 메모리 시스템(100)은 전자 장치에 내장되는(embedded) 내부(internal) 메모리일 수 있다. 예를 들어, 메모리 시스템(100)은 eMMC(embedded Multimedia Card), MMC, SSD(Solid state Drive), UFS(Universal Flash Storage), 임베디드 UFS(Universal Flash Storage), RS-MMC(Reduced Size MMC), micro-MMC 형태의 멀티 미디어 카드(MMC: Multi Media Card), RS-MMC(Reduced Size MMC), CF(Compact Flash) 카드, SD(Secure Digital) 카드, mMicro-SD(Micro Secure Digital) 카드, Mini-SD(Mini Secure Digital), xD(extreme Digital), 스마트 미디어(Smart Media) 카드, 및 메모리 스틱(Memory Stick) 등과 같은 다양한 종류의 저장 장치 장치들 중 어느 하나로 구현될 수 있다.
메모리 시스템(100)은 호스트(200)에 의하여 액세스되는 데이터를 저장하는메모리 장치(130), 및 메모리 장치(130)의 데이터 저장/독출을 제어하는 메모리 컨트롤러들, 즉 제1 컨트롤러(110) 및 제2 컨트롤러(120)를 포함할 수 있다. 실시예에 있어서, 제1 컨트롤러(110) 및 제2 컨트롤러(120), 또는 제1 컨트롤러(110) 및 제2 컨트롤러(120) 및 메모리 장치(130)는 하나의 반도체 장치로 집적될 수 있다. 비제한적인 예로서, 제1 컨트롤러(110), 제2 컨트롤러(120) 및 메모리 장치(130)는 반도체 모듈로서 구현될 수 있다.
메모리 장치(130)는 데이터를 저장할 수 있다. 메모리 장치(130)는 메모리 시스템(100)에 전원이 공급되지 않아도 저장된 데이터를 유지할 수 있는 비휘발성 메모리 장치일 수 있다.
메모리 장치(130)는 복수의 메모리(MC0~MCm)를 포함할 수 있다. 예컨대, 복수의 메모리(MC0~MCm)는 메모리 셀 어레이(MCA)를 포함하는 메모리 칩일 수 있다. 메모리 셀 어레이(MCA)는 복수의 메모리 블록을 포함할 수 있다. 일 실시예에서, 메모리 셀 어레이(MCA)는 복수의 플래쉬 메모리 셀들을 포함할 수 있고, 예를 들어, 복수의 플래쉬 메모리 셀들은 낸드(NAND) 플래쉬 메모리 셀들일 수 있다. 그러나, 본 개시의 기술적 사상은 이에 한정되지 않고, 메모리 셀들은 ReRAM(resistive RAM), PRAM(phase change RAM), MRAM(magnetic RAM)과 같은 저항형 메모리 셀들일 수 있다. 이하, 본 개시에서 메모리 장치(130)는 NAND 플래쉬 메모리 장치임을 가정하여 설명하기로 한다.
일 실시예에서, 메모리 셀 어레이(MCA)에 포함된 각 메모리 셀은 1 비트 데이터를 저장하는 싱글 레벨 셀(single level cell, SLC)일 수 있다. 다른 실시예에서, 메모리 셀 어레이(MCA)에 포함된 각 메모리 셀은 2 비트 이상의 데이터를 저장하는 멀티 레벨 셀(multi level cell, MLC)일 수 있다. 예를 들어서, 메모리 셀 어레이(MCA)에 포함된 각 메모리 셀은 3 비트 데이터를 저장하는 트리플 레벨 셀(triple level cell, TLC) 또는 4비트 데이터를 저장하는 쿼드러플 레벨 셀(quadruple) 일 수 있다.
일 실시예에서, 메모리 셀 어레이(MCA)는 2차원 수평 구조의 낸드 플래쉬 메모리로 구현되는 2차원 메모리 어레이일 수 있다. 다른 실시예에 있어서, 메모리 셀 어레이(MCA)는 3 차원(3D) 수직 구조의 낸드 플래시 메모리로 구현되는 3D 메모리 어레이일 수 있다. 3D 메모리 어레이는 실리콘 기판 위에 배치되는 활성 영역과, 메모리 셀들의 동작과 관련된 회로로서 상기 기판 상에 또는 상기 기판 내에 형성된 회로를 가지는 메모리 셀 어레이들의 적어도 하나의 물리적 레벨에 모놀리식으로 형성된다. 상기 용어 "모놀리식"은 상기 어레이를 구성하는 각 레벨의 층들이 상기 어레이 중 각 하부 레벨의 층들의 바로 위에 적층되어 있음을 의미한다. 본 개시의 기술적 사상에 의한 일 실시예에서, 상기 3D 메모리 어레이는 적어도 하나의 메모리 셀이 다른 메모리 셀의 위에 위치하도록 수직 방향으로 배치된 버티칼 NAND 스트링들을 포함한다. 상기 적어도 하나의 메모리 셀은 전하 트랩층을 포함할 수 있다. 미국 특허공개공보 제7,679,133호, 동 제8,553,466호, 동 제8,654,587호, 동 제8,559,235호, 및 미국 특허출원공개공보 제2011/0233648호는 3D 메모리 어레이가 복수 레벨로 구성되고 워드 라인들 및/또는 비트 라인들이 레벨들간에 공유되어 있는 3D 메모리 어레이에 대한 적절한 구성들을 상술하는 것들로서, 본 명세서에 인용 형식으로 결합된다.
제1 컨트롤러(110) 및 제2 컨트롤러(120)는 메모리 장치(130)에 데이터를 기입하거나, 또는 메모리 장치(130)에 저장된 데이터를 독출하도록 메모리 장치(130)를 제어할 수 있다. 제1 컨트롤러(110) 및 제2 컨트롤러(120)는 메모리 컨트롤 시스템으로 지칭될 수 있다. 실시예에 있어서, 제1 컨트롤러(110) 및 제2 컨트롤러(120)는 호스트(200)로부터의 기입/독출 요청에 응답하여 또는 백그라운드 동작 수행을 위해 메모리 장치(130)에 데이터(DATA)(호스트(200)로부터 수신되는 데이터 또는 내부적으로 생성되는 데이터)를 기입하거나, 또는 메모리 장치(130)에 저장된 데이터를 독출하도록 메모리 장치(130)를 제어할 수 있다. 실시예에 있어서, 제1 컨트롤러(110) 및 제2 컨트롤러(120)는 백그라운드 동작 수행을 위해 메모리 장치(130)에 내부적으로 생성되는 데이터를 기입하거나 또는 메모리 장치(130)에 저장된 데이터를 독출하도록 메모리 장치(130)를 제어할 수 있다. 실시예들에 있어서, 제1 컨트롤러(110) 및 제2 컨트롤러(120)는 하나의 반도체 장치로 집적되거나 또는 제1 컨트롤러(110) 및 제2 컨트롤러(120)는 별도의 반도체 칩이며, 연결 부재, 예컨대 인터커넥터, 인터포저 등을 통해 연결된 반도체 모듈로서 구현될 수 있다.
제1 컨트롤러(110)는 메모리 시스템(100)의 전반적인 동작을 제어할 수 있다. 제1 컨트롤러(110)는 메모리 시스템(100)의 상태(전력 상태, 온도, 파워-온/오프 등)를 관리할 수 있다. 제1 컨트롤러(110)는 메모리 장치(130)에 대한 기입(또는 프로그램), 독출 및 소거 동작을 제어할 수 있다. 또한, 제1 컨트롤러(110)는 메모리 장치(130)에 대한 다양한 백그라운드 동작을 제어할 수 있다. 예컨대, 백그라운드 동작은 가비지 컬랙션, 배드 블록 관리, 리드 리클레임 및 리드 리플레이스먼트 등을 포함할 수 있다.
제1 컨트롤러(110)는 메모리 장치(130)에 데이터를 기입하거나 또는 메모리 장치(130)로부터 데이터를 독출하기 위하여 호스트(200)로부터의 액세스 요청(REQ)을 분석하고, 상기 액세스 요청(REQ)에 따른 커맨드(CMD)를 생성할 수 있다. 또한 제1 컨트롤러(110)는 호스트(200)로부터 수신된 논리 주소(LA)를 물리 주소(PA)로 변환할 수 있다. 논리 주소(LA)는 호스트(200)가 인지하는 주소일 수 있고, 물리 주소(PA)는 논리 주소(LA)에 대응하는 메모리 장치(130)의 저장 영역, 즉 물리 영역의 위치를 나타낼 수 있다. 물리 주소(PA)는 물리 블록 번호(Physical block Number), 물리 페이지 번호(Physical Page Number) 등을 포함할 수 있다.
제1 컨트롤러(110)는 FTL(Flash Translation Layer)(111)을 포함할 수 있다. FTL(111)은 펌웨어 또는 소프트웨어로 구현될 수 있다. FTL(111)은 논리 주소(LA)를 물리 주소(PA)로 맵핑하고, 논리 주소(LA)와 물리 주소(PA) 간의 맵핑 정보, 예컨대 맵핑 테이블을 관리할 수 있다.
NAND 플래시 메모리 등으로 구현되는 메모리 장치(130)에서 데이터의 기입 및 독출은 페이지 단위로 수행되고, 전기적 소거는 블록 단위로 수행될 수 있다. 또한, 기입 전에 블록의 전기적 소거 작업이 요구되어 덮어쓰기가 불가능하다. 호스트(200)로부터 제공되는 주소, 즉 논리 주소(LA)가 직접 메모리 장치(130)의 물리 영역을 지정할 경우, 호스트(200)로부터 동일한 주소에 대한 기입 요청이 여러 번 수신되면, 페이지 단위의 기입 요청에 대하여 블록 단위의 소거가 여러 번 수행되어야 하는 바, 기입 요청의 신속한 처리가 어려우며, 메모리 셀들에 대한 열화가 빠르게 진행될 수 있다. 따라서, FTL(111)은 논리 주소(LA)에 대하여 물리 주소(PA)를 할당하여, 물리 주소(PA)에 대응하는 물리 영역에 데이터를 기입하고, 논리 주소(LA)에 대한 기입 요청이 다시 수신되면, 논리 주소(LA)에 대한 물리 주소(PA)를 변경하고, 변경된 물리 주소(PA)에 대응하는 물리 영역에 데이터를 기입할 수 있다. FTL(111)은 논리 주소(LA)에 물리 주소(PA)를 할당함으로써 맵핑 정보를 생성하고, 맵핑 정보를 참조함에 의해, 호스트(200)로부터 제공된 논리 주소(LA)를 물리 주소(PA)로 변환할 수 있다. 논리 주소(LA)에 대한 물리 주소(PA)가 변경되면, FTL(111)은 논리 주소(LA)와 변경된 물리 주소(PA)를 맵핑 정보로 저장함으로써, 맵핑 정보를 업데이트할 수 있다.
한편, 실시예에 있어서 제1 컨트롤러(110)는 백그라운드 동작을 위해 요구되는 커맨드(CMD) 및 상기 백그라운드 동작이 수행될 물리 영역을 나타내는 물리 주소(PA)를 생성할 수 있다. 제1 컨트롤러(110)는 메모리 장치(130)의 관리를 위한 메타 데이터 등을 생성할 수 있으며, 이와 같이 내부 적으로 생성되는 데이터가 메모리 장치(130)에 저장되도록 제어할 수 있다. 이때 메타 데이터는 논리 주소와 물리 주소 간의 맵핑 정보, 메모리 장치(130)의 메모리 블록들에 대한 셀 열화도, 웨어 레벨링 정보 등을 포함할 수 있다.
제1 컨트롤러(110)는 데이터(DATA)와 함께 기입 요청을 포함하는 커맨드(CMD) 및 물리 주소(PA)를 제2 컨트롤러(120)에 전송함으로써, 기입 태스크를 실행할 수 있다. 제1 컨트롤러(110)는 독출 요청을 포함하는 커맨드(CMD) 및 물리 주소(PA)를 제2 컨트롤러(120)에 전송함으로써, 독출 태스크 실행할 수 있다. 실시예에 있어서, 커맨드(CMD)는 물리 주소(PA)를 포함할 수 있다. 예컨대 커맨드(CMD)는 커맨드의 종류(예컨대 기입 또는 독출) 및 물리 주소(PA)를 포함할 수 있으며, 이 외에도 액세스 요청(REQ)에 따른 다양한 종류의 정보를 더 포함할 수 있다.
제2 컨트롤러(120)는 메모리 장치(130)에 대한 기입(또는 프로그램) 동작 및 독출 동작을 제어할 수 있다. 실시예에 있어서, 제2 컨트롤러(120)는 제1 컨트롤러(110)의 서브 컨트롤러로서 동작하며, 제1 컨트롤러(110)와 메모리 장치(130) 사이에서 기입 및 독출 동작 시의 데이터(DATA)의 버퍼링 및 전송을 제어함으로써 제1 컨트롤러(110)의 기입 및 독출 동작을 보조할 수 있다.
제2 컨트롤러(120)는 비휘발성 메모리 버퍼(10) 및 스케쥴러(20)를 포함할 수 있다. 비휘발성 메모리 버퍼(10)는 메모리 장치(130)에 기입될 데이터를 저장할 수 있다. 비휘발성 메모리 버퍼(10)는 공급되는 전력이 차단되더라도 저장된 데이터를 유지하는 비휘발성 메모리 셀들을 포함할 수 있다. 예를 들어, 비휘발성 메모리 버퍼(10)는 MRAM(magnetic RAM), PRAM(phase change RAM), 또는 ReRAM(resistive RAM) 등으로 구현될 수 있다. 그러나 이에 제한되는 것은 아니며 비휘발성 메모리 버퍼(10)는 플래시 메모리, NFGM(Nano Floating Gate Memory), PoRAM(Polymer Random Access Memory), 또는 FRAM(Ferroelectric Random Access Memory) 등 다양한 종류의 비휘발성 메모리로 구현될 수 있다.
스케쥴러(20)는 메모리 장치(130)에 대한 프로그램 동작을 스케쥴링할 수 있다. 스케쥴러(20)는 메모리 장치(130)에 대하여 기 설정된 기입 방식 및/또는 프로그램 방식에 따라 비휘발성 메모리 버퍼(10)에 저장된 데이터를 메모리 장치(130)에 프로그램 하기 위한 프로그램 시점, 프로그램 순서 및 프로그램 횟수 등을 스케쥴링함으로써, 메모리 장치(130)에 대한 기입(또는 프로그램) 동작을 제어할 수 있다. 실시예에 있어서, 설정된 기입 방식 및/또는 프로그램 방식은 메모리 장치(130)의 상태에 따라서 변경될 수 있다.
본 개시의 실시예에 따른 메모리 시스템(100)에서 제2 컨트롤러(120)는 비휘발성 메모리 버퍼(10)를 구비하고, 비휘발성 메모리 버퍼(10)가 메모리 장치(130)에 저장된 데이터를 버퍼링할 수 있다. 비휘발성 메모리 버퍼(10)는 전원이 차단되더라도 데이터를 유지할 수 있다. 따라서, 전원 차단 시에 대비하여 구비되는 커패시터의 용량이 감소될 수 있는 바, 메모리 시스템(100)의 면적이 감소될 수 있다. 또한, 본 개시의 실시예에 따른 메모리 시스템(100)에서 제2 컨트롤러(120)가 데이터의 기입/독출 동작을 스케쥴링 하는 바, 제1 컨트롤러(110)의 기입/독출 동작 제어 부담이 감소되고, 제1 컨트롤러(110)의 자유도가 증가할 수 있다.
도 2는 본 개시의 실시예에 따른 메모리 시스템의 기입 및 독출 동작을 개략적으로 설명하는 도면이다.
도 2를 참조하면, 제2 컨트롤러(120)는 제1 컨트롤러(110) 및 메모리 장치(130)와 연결된다. 제2 컨트롤러(120)는 비휘발성 메모리 버퍼(10), 스케쥴러(20), 제1 인터페이스(30) 및 제2 인터페이스(40)를 포함하고, 제1 인터페이스(30)를 통해 제1 컨트롤러(110)와 데이터를 송수신하고, 제2 인터페이스(40)를 통해 메모리 장치(130)와 데이터를 송수신할 수 있다. 제1 인터페이스(30) 및 제2 인터페이스(40)는 메모리 인터페이스로 지칭될 수 있으며, 동일한 또는 이종의 인터페이스 프로토콜을 포함할 수 있다. 예를 들어, 제1 및 제2 인터페이스(30, 300) 각각은 USB, MMC, PCI-E, ATA(Advanced Technology Attachment), Serial-ATA, Parallel-ATA, SCSI, ESDI, 그리고 IDE(Integrated Drive Electronica) 등과 같은 다양한 인터페이스 프로토콜들 중 적어도 하나를 통해 제1 컨트롤러(110) 및 메모리 장치(130)와 통신하도록 구성될 수 있다.
한편, 도시되지 않았으나, 제1 컨트롤러(110) 또한 적어도 두 개의 인터페이스를 포함할 수 있다. 제1 컨트롤러(110)는 호스트(200)와의 통신을 위한 호스트 인터페이스 및 제2 컨트롤러(120)와의 통신을 위한 메모리 인터페이스를 포함할 수 있다. 제1 컨트롤러(110)에 구비되는 메모리 인터페이스는 제2 컨트롤러(120)의 제1 인터페이스와 동일한 인터페이스 프로토콜을 포함할 수 있다.
기입 동작에 있어서, 제2 컨트롤러(120)의 제1 인터페이스(30)는 제1 컨트롤러(110)로부터 기입 데이터(WDATA)를 수신하고, 기입 데이터(WDATA)는 비휘발성 메모리 버퍼(10)에 저장될 수 있다. 비휘발성 메모리 버퍼(10)에 저장된 기입 데이터(WDATA)는 스케쥴러(20)의 제어 하에 출력되고, 제2 인터페이스(40)를 통해 메모리 장치(130)로 전송될 수 있다.
독출 동작에 있어서, 제2 인터페이스(40)는 메모리 장치(130)로부터 기입 데이터(WDATA)를 수신하고, 수신된 기입 데이터(WDATA)는 스케쥴러(20)의 제어 하에 제1 인터페이스(30)로 제공되고, 제1 인터페이스(30)를 통해 제1 컨트롤러(110)로 전송될 수 있다. 한편, 제1 컨트롤러(110)로부터 독출 요청된 기입 데이터(WDATA)가 비휘발성 메모리 버퍼(10)에 저장되어 있는 경우, 기입 데이터(WDATA)는 메모리 장치(130)가 아닌 비휘발성 메모리 버퍼(10)로부터 출력되어 제1 컨트롤러(110)로 전송될 수 있다.
한편, 실시예에 있어서, 제1 컨트롤러(110)는 제2 컨트롤러(120)를 바이패스 모드로 설정할 수 있다. 제2 컨트롤러(120)가 바이패스 모드로 설정된 경우, 제1 컨트롤러(110)로부터 수신되는 데이터, 예컨대 기입 데이터(WDATA)는 비휘발성 메모리 버퍼(10)에 저장되거나, 스케쥴러(20)를 거치지 않고 제1 인터페이스(30)로부터 제2 인터페이스(40)로 직접 전송되고, 제2 인터페이스(40)를 통해 메모리 장치(130)로 전송될 수 있다. 제2 컨트롤러(120)가 바이패스 모드로 설정된 경우, 메모리 장치(130)로부터 수신되는 데이터, 즉 독출 데이터(RDATA) 또한, 제2 인터페이스(40)로부터 제1 인터페이스(30)로 직접 전송되고, 제1 인터페이스(30)를 통해 제1 컨트롤러(110)로 전송될 수 있다.
도 3은 본 개시의 실시예에 따른 메모리 시스템의 동작 방법을 개략적으로 나타내는 흐름도이다. 도 3의 동작은 도 1 및 도 2의 메모리 시스템(100)에서 수행될 수 있으며, 도 1 및 도 2를 함께 참조하여 설명하기로 한다.
도 3을 참조하면, 제1 컨트롤러(110)가 호스트(200)로부터 메모리 장치(130)에 대한 액세스 요청 및 논리 주소를 수신할 수 있다(S110). 액세스 요청은 기입 요청 또는 독출 요청일 수 있다. 제1 컨트롤러(110)는 전술한 호스트 인터페이스를 통해 액세스 요청 및 논리 주소를 수신할 수 있다.
제1 컨트롤러(110)가 논리 주소(LA)를 물리 주소로 변환할 수 있다(S120). 예컨대, 제1 컨트롤러(110)는 기입 요청에 응답하여 논리 주소에 대하여 물리 주소를 할당함으로써, 논리 주소를 물리 주소로 변환하고, 논리 주소와 물리 주소 간의 맵핑 관계를 나타내는 맵핑 정보를 관리할 수 있다. 또한, 제1 컨트롤러(110)는 독출 요청에 응답하여 기 저장된 맵핑 정보를 참조하여 논리 주소에 대한 물리 주소를 검출함으로써, 논리 주소를 물리 주소로 변환할 수 있다. 또한 제1 컨트롤러(110)는 기입 요청에 대응하여 메모리 장치(130)의 기입 동작을 제어하기 위한 기입 커맨드를 생성하고, 독출 요청에 대응하는 메모리 장치(130)의 독출 동작을 제어하기 위한 독출 커맨드를 생성할 수 있다.
제2 컨트롤러(120)가 제1 컨트롤러(110)로부터 액세스 요청에 대응하는 커맨드 및 물리 주소를 수신할 수 있다(S130). 제2 컨트롤러(120)는 제1 인터페이스(30)를 통해 기입 커맨드 또는 독출 커맨드를 수신하고, 또한, 물리 주소를 수신할 수 있다.
제2 컨트롤러(120)가 물리 주소에 대응하는 메모리 장치(130)의 저장 영역, 즉 물리 영역에 데이터가 기입되거나 또는 저장 영역으로부터 데이터가 독출되도록 메모리 장치(130)를 제어할 수 있다(S140). 제2 컨트롤러(120)는 제2 인터페이스(40)를 통해 커맨드 및 물리 주소를 메모리 장치(130)에 제공함으로써, 데이터가 기입되거나 또는 독출되도록 제어할 수 있다. 실시예에 있어서, 제2 컨트롤러(120)는 제1 컨트롤러(110)로부터 복수의 커맨드 및 복수의 물리 주소를 수신할 수 있으며, 기 설정된 프로그램 방식 또는 기입 방식에 기초하여 데이터의 기입 또는 독출 동작을 스케쥴링하고, 스케쥴링 순서에 따라서 복수의 커맨드 및 복수의 물리 주소를 메모리 장치(130)에 제공할 수 있다. 메모리 장치(130)는 수신되는 커맨드 및 물리 주소에 기초하여 함께 수신되는 데이터를 메모리 셀 어레이에 프로그램 하거나 또는 물리 주소에 대응하는 저장 영역으로부터 데이터를 독출할 수 있다.
한편, 본 실시예에서는, 메모리 시스템(100)이 호스트(200)로부터의 요청에 응답하여 데이터를 메모리 장치(130)에 기입하거나 또는 메모리 장치(130)로부터 데이터를 독출하는 동작에 대하여 설명하였으나, 본 개시의 기술적 사상은 이에 제한되는 것은 아니며, 실시예에 있어서, 제1 컨트롤러(110)가 내부적으로 생성되는 데이터의 저장 또는 독출을 결정하고, 액세스 하고자 하는 메모리 장치(130)의 저장 영역에 대응하는 물리 주소를 생성할 수 있다.
도 4는 본 개시의 예시적 실시예에 따른 제2 컨트롤러를 개략적으로 나타내는 블록도이다.
도 4를 참조하면, 제2 컨트롤러(120)는 제1 인터페이스(30), 비휘발성 메모리 버퍼(10), 스케쥴러(20), 제2 인터페이스(40)를 포함할 수 있으며 또한, 기입 및 독출 동작을 제어하기 위하여 프로세서(50), 메모리(60), 타이머(70) 및 온도 센서(80)를 포함할 수 있다. 제2 컨트롤러(120)의 구성들은 버스(90)를 통해 서로 통신할 수 있다.
프로세서(50)는 중앙 처리 장치나 마이크로 프로세서 등을 포함할 수 있으며, 컨트롤러(110)의 전반적인 동작을 제어할 수 있다. 일 실시예에서, 프로세서(50)는 멀티 코어 프로세서로 구현될 수 있고, 예를 들어, 듀얼 코어 프로세서 또는 쿼드 코어(quad) 프로세서로 구현될 수 있다.
메모리(60)는 프로세서(50)의 제어에 따라 동작하며, 동작 메모리, 캐시 메모리 등으로 사용될 수 있다. 메모리(60)는 제2 컨트롤러(120)의 동작을 위한 프로그램 및/또는 데이터를 또는 제2 컨트롤러(120)에서 생성되는 데이터를 저장할 수 있다. 메모리(60)는 DRAM, SRAM(Static RAM)과 같은 휘발성 메모리로 구현될 수 있다. 그러나, 이에 제한 되는 것은 아니며, 메모리(60)는 PRAM, 플래시 메모리와 같은 비휘발성 메모리로 구현될 수도 있다.
타이머(70)는 제2 컨트롤러(120)에서 발생하는 이벤트들의 발생 시간, 또는경과 시간을 측정할 수 있다. 예컨대 타이머(70)는 제1 컨트롤러(CTRL1)로부터 수신되는 데이터가 비휘발성 메모리 버퍼(10)에 저장된 시간 또는 저장된 후의 경과 시간을 측정할 수 있다. 또는 타이머(70)는 비휘발성 메모리 버퍼(10)에 저장된 데이터가 메모리 장치(130)에 프로그램 된 시점 또는 프로그램 된 후의 경과 시간 등을 측정할 수 있다. 타이머(70)는 측정된 시간을 프로세서(50)에 제공할 수 있다.
온도 센서(80)는 제2 컨트롤러(120)에서 이벤트들이 발생하는 시점의 온도를 측정할 수 있다. 예컨대 온도 센서(80)는 데이터가 비휘발성 메모리 버퍼(10)에 저장될 때의 온도, 또는 데이터가 메모리 장치(130)에 프로그램 된 때의 온도를 측정할 수 있다. 온도 센서(80)는 측정된 온도를 프로세서(50)에 제공할 수 있다. 실시예에 있어서, 타이머(70) 및/또는 온도 센서(80)는 프로세서(50)에 직접 연결될 수 있다.
제1 인터페이스(30)는 제1 컨트롤러(CTRL1)와 통신할 수 있으며, 제2 인터페이스(40)는 메모리 장치(130)와 통신할 수 있다.
비휘발성 메모리 버퍼(10)는 제1 인터페이스(30)를 통해 제1 컨트롤러(CTRL1)으로부터 수신된 데이터를 저장(버퍼링)할 수 있다. 도 2를 참조하여 전술한 바와 같이, 비휘발성 메모리 버퍼(10)는 비휘발성 메모리로 구현될 수 있으며, 예컨대 MRAM으로 구현될 수 있다.
스케쥴러(20)는 메모리 장치(130)에 대하여기 설정된 기입 방식 및/또는 프로그램 방식에 따라 프로그램 동작 및 독출 동작을 스케쥴링할 수 있다. 스케쥴러(20)의 스케쥴링에 따른 프로그램 동작 및 독출 동작에 대해서는 도 9내지 도 15b를 참조하여 상세하게 후술하기로 한다. 스케쥴러(20)는 소프트웨어(또는 펌웨어) 또는 하드웨어로 구현될 수 있다. 스케쥴러(20)가 소프트웨어 또는 펌웨어로 구현될 경우, 스케쥴러(20)는 메모리(60)에 로딩되고, 프로세서(50)가 스케쥴러(20)를 실행함에 따라 스케쥴링 동작이 수행될 수 있다.
본 실시예에서는 비휘발성 메모리 버퍼(10)가 제2 컨트롤러(120)에 구비되는 것으로 도시되었으나, 이에 제한되는 것은 아니다. 실시예에 있어서, 비휘발성 메모리 버퍼(10)는 제2 컨트롤러(120)의 외부에 별개의 장치로 구현될 수 있다. 제2 컨트롤러(120)는 비휘발성 메모리 버퍼(10)와 통신하기 위한 비휘발성 메모리 인터페이스를 더 포함할 수 있으며, 비휘발성 메모리 인터페이스를 통해 제1 컨트롤러(CTRL1)로부터 수신되는 데이터를 비휘발성 메모리 버퍼(10)에 저장하고, 비휘발성 메모리 버퍼(10)로부터 데이터를 독출할 수 있다.
도 5는 본 개시의 예시적 실시예에 따른 비휘발성 메모리 버퍼의 메모리 셀 어레이의 일 예를 나타내는 도면이다. 도 5는 MRAM의 셀 어레이를 나타낸다.
도 5를 참조하면, MRAM 셀 어레이(MRAC)는 복수 개의 워드 라인들(WL), 복수 개의 비트 라인들(BL), 복수 개의 소스 라인들(SL), 그리고 워드 라인들(WL)과 비트 라인들(BL)이 교차하는 영역에 배치되는 복수 개의 메모리 셀들(U)을 포함할 수 있다. 단위 메모리 셀(U)은 MTJ(Magnetic Tunnel Junction) 구조(11)와 셀 트랜지스터(CT)를 포함하고, 하나의 비트 라인(BL)과 하나의 소스 라인(SL)의 선택에 의해 선택될 수 있다. 이에 따라, MRAM 셀 어레이(MRCA)는 1MTJ-1TR 구조를 가질 수 있다. 실시예에 있어서, 단위 메모리 셀(U)은 수직 MTJ(perpendicular Magnetic Tunnel Junction: pMTJ) 를 포함할 수 있다. MTJ는 구조(11)는 고정층(pinned layer, 11a), 터널층(tunnel layer or barrier layer, 11b) 및 자유층(free layer, 11c)을 포함할 수 있다. 고정층(11a)은 셀 트랜지스터(CT)의 드레인과 연결되고, 자유층(11c)은 비트 라인(BL)과 연결될 수 있다. 또한, 셀 트랜지스터(CT)의 소스는 소스 라인(SL)과 연결되며, 셀 트랜지스터(CT)의 게이트는 워드 라인(WL)과 연결될 수 있다. 고정층(11a)과 자유층(11c)이 두 방향 중 어느 한 방향으로 자화(magnetization)될 수 있으며, 고정층(11a)과 자유층(11c)각각의 자화 방향에 따라 MTJ 구조(11)의 저항값이 달라질 수 있다. MTJ 구조(11)의 저항값의 차이에 기초하여 데이터가 프로그래밍, 즉 저장되거나 또는 삭제될 수 있다.
이와 같이, MRAM 셀 어레이(MRCA)는 자기저항(magneto-resistance)을 기반으로 하는 비휘발성 메모리 셀 어레이이다. MRAM 셀 어레이(MRCA)는 비휘발성이기 때문에, 전원이 오프되어도 저장된 데이터를 유지할 수 있다. 또한, MRAM 셀 어레이(MRCA)는 워드 라인(WL) 및 비트 라인(BL), 그리고 소스 라인(SL)에 인가된 전압들에 따라, 페이지(PG) 단위로 데이터의 기입, 독출 및 소거 동작을 수행할 수 있다.
도 6은 본 개시의 예시적 실시예에 따른 메모리 시스템의 기입 방법을 나타내는 흐름도이고, 도 7은 본 개시의 예시적 실시예에 따른 메모리 시스템의 기입 방법을 설명하는 도면이다. 도 6 및 도 7을 참조하여, 본 개시의 예시적 실시예에 따른 메모리 시스템의 기입 방법을 설명하기로 한다.
우선, 도 6을 참조하면, 제1 컨트롤러(110)가 호스트(200)로부터 기입 요청, 논리 주소 및 기입 데이터를 수신할 수 있다(S210). 제1 컨트롤러(110)는 호스트 인터페이스를 통해 호스트(220)와 통신할 수 있으며, 호스트(200)로부터 기입 요청, 논리 주소 및 기입 데이터를 수신할 수 있다.
제1 컨트롤러(110)가 논리 주소를 물리 주소로 변환할 수 있다(S220). 물리 주소는 기입 데이터가 저장될 메모리 장치(130)의 저장 영역, 즉 물리 영역을 나타낸다. 제1 컨트롤러(110)는 또한 기입 요청에 따른 기입 커맨드를 생성할 수 있다. 실시예에 있어서, 제1 컨트롤러(110)는 호스트의 기입 요청 없이 내부적으로 생성되는 데이터의 저장을 위하여, 기입 커맨드 및 물리 주소를 생성할 수도 있다.
제2 컨트롤러(120)가 제1 인터페이스(30)를 통해 제1 컨트롤러(110)로부터 기입 커맨드(WCMD), 물리 주소(PA) 및 메모리 장치(130)에 기입될 데이터(DATA)(이하 기입 데이터라고 함)를 수신할 수 있다. 기입 데이터(DATA)는 호스트(200)로부터 수신된 데이터 또는 제1 컨트롤러(110)에서 생성된 또는 제1 컨트롤러(110)가 관리하는 데이터일 수 있다.
제2 컨트롤러(120)는 수신된 기입 데이터를 비휘발성 메모리 버퍼(10)에 저장할 수 있다(S240). 제2 컨트롤러(120)는 기입 데이터(DATA) 및 대응하는 물리 주소(PA)를 비휘발성 메모리 버퍼(10)에 저장할 수 있다. 실시예에 있어서, 제2 컨트롤러(120)는 제1 컨트롤러(110)로부터 데이터 및 상기 데이터에 대한 물리 주소가 수신되면, 데이터를 비휘발성 메모리 버퍼(10)에 저장할 수 있다. 다른 실시예에 있어서, 제2 컨트롤러(120)는 제1 컨트롤러(110)로부터의 요청, 예컨대, 저장을 요청하는 커맨드에 응답하여 데이터를 비휘발성 메모리 버퍼(10)에 저장할 수 있다. 실시예에 있어서, 제2 컨트롤러(120)는 기입 데이터가 비휘발성 메모리 버퍼(10)에 저장되면, 기입 완료 신호(WDONE)를 제1 컨트롤러(110)에 전송할 수 있다.
제2 컨트롤러(120)는 기입 데이터(DATA)가 물리 주소(PA)에 대응하는 메모리 장치(130)의 저장 영역에 프로그램 되도록 메모리 장치(130)의 기입 동작을 제어할 수 있다(S250). 제2 컨트롤러(120)는 제2 인터페이스(40)를 통해 기입 데이터(DATA) 및 물리 주소(PA)를 메모리 장치(130)에 전송할 수 있다. 메모리 장치(130)는 전송된 기입 데이터(DATA)를 물리 주소(PA)에 대응하는 저장 영역에 프로그램할 수 있다.
한편, 제2 컨트롤러(120)는 S230 단계 및 S240 단계에서, 제1 컨트롤러(110)로부터 복수의 기입 커맨드, 복수의 논리 주소 및 상기 복수의 기입 커맨드 및 복수의 논리 주소에 대응하는 복수의 기입 데이터를 수신하고, 복수의 기입 데이터를 비휘발성 메모리 버퍼(10)에 저장할 수 있다. 제2 컨트롤러(120), 구체적으로 스케쥴러(20)는 설정된 기입 방식 및/또는 프로그램 방식에 따라 복수의 기입 데이터의 기입 순서, 프로그램 순서 및 프로그램 횟수 등을 결정하고 결정된 순서 및 횟수에 따라 복수의 논리 주소 및 대응하는 복수의 기입 데이터를 메모리 장치(130)에 제공할 수 있다. 이에 대하여 도 8 내지 도 11b를 참조하여 설명하기로 한다.
도 8은 본 개시의 예시적 실시예에 따른 메모리 시스템의 기입 방법을 설명하는 도면이다.
도 8을 참조하면, 제1 컨트롤러(110)는 복수의 기입 커맨드, 복수의 물리 주소 및 상기 기입 커맨드에 대응하는 복수의 데이터를 제2 컨트롤러(120)에 차례로 전송할 수 있다.
예를 들어, 제1 컨트롤러(110)는 제1 기입 커맨드(WCDMA1), 제1 물리 주소(PA1) 및 제1 기입 데이터(DATA1)를 제2 컨트롤러(120)에 전송하고, 제2 기입 커맨드(WCDMA2), 제2 물리 주소(PA2) 및 제2 기입 데이터(DATA2)를 제2 컨트롤러(120)에 전송하고, 이후 제3 기입 커맨드(WCDMA3), 제3 물리 주소(PA3) 및 제3 기입 데이터(DATA3)를 제2 컨트롤러(120)에 전송할 수 있다. 제2 컨트롤러(120)는 제1 기입 데이터(DATA1), 제2 기입 데이터(DATA2) 및 제3 기입 데이터(DATA3)를 비휘발성 메모리 버퍼(10)에 저장할 수 있다. 제1 내지 제3 물리 주소(PA1~ PA3)는 대응하는 데이터와 함께 저장될 수 있다.
스케쥴러(20)는 설정된 기입 방식(또는 기입 정책)에 따라서, 제1 내지 제3 기입 데이터(DATA1~DATA3)의 기입 순서를 결정할 수 있다. 예컨대 스케쥴러(20)는 데이터의 우선 순위에 기초하여 기입 순서를 결정할 수 있다. 스케쥴러(20)는 결정된 기입 순서에 따라서, 제1 내지 제3 기입 데이터(DATA1~DATA3)를 메모리 장치(130)에 전송할 수 있다. 스케쥴러(20)는 결정된 기입 순서에 따라서, 제1 내지 제3 기입 데이터(DATA1~DATA3)를 비휘발성 메모리 버퍼(10)로부터 차례로 독출하고, 독출된 데이터 및 대응하는 물리 주소 및 기입 커맨드를 제2 인터페이스(40)를 통해 메모리 장치(130)에 전송할 수 있다.
실시예에 있어서, 스케쥴러(20)는 제1 내지 제3 기입 데이터(DATA1~DATA3)를 수신된 순서 또는 비휘발성 메모리 버퍼(10)에 저장된 순서에 따라서, 메모리 장치(130)로 전송할 수 있다. 실시예에 있어서, 스케쥴러(20)는 도 8에 도시된 바와 같이 수신된 순서 또는 비휘발성 메모리 버퍼(10)에 저장된 순서에 관계없이 결정된 순서에 따라서 제1 내지 제3 기입 데이터(DATA1~DATA3)를 메모리 장치(130)에 전송할 수 있다. 이에 따라서, 도 8에 도시된 바와 같이, 제1 내지 제3 기입 데이터(DATA1~DATA3) 중 가장 마지막에 수신된 제3 기입 데이터(DATA3)가 메모리 장치(130)에 전송될 수도 있다. 메모리 장치(130)는 수신되는 기입 데이터를 물리 주소에 대응하는 저장 영역에 프로그램할 수 있다. 이에 따라서, 제3 기입 데이터(DATA3), 제1 기입 데이터(DATA1) 및 제2 기입 데이터(DATA2)가 차례로 기입될 수 있다.
도 9는 본 개시의 예시적 실시예에 따른 메모리 시스템의 기입 방법을 설명하는 도면이다.
도 9를 참조하면 제2 컨트롤러(120)는 기입 데이터의 기입 시점을 결정할 수 있다. 도시된 바와 같이, 제2 컨트롤러(120)는 제1 컨트롤러(110)로부터 기입 데이터, 예컨대 제1 내지 제3 기입 데이터(DATA1~DATA3) 및 이에 대응하는 물리 주소, 예컨대 제1 내지 제3 물리 주소(PA1~PA3)를 수신하고, 제1 내지 제3 기입 데이터(DATA1~DATA3) 및 제1 내지 제3 물리 주소(PA1~PA3)를 비휘발성 메모리 버퍼(10)에 저장할 수 있다. 스케쥴러(20)는 비휘발성 메모리 버퍼(10)에 저장된 기입 데이터, 예컨대 제1 내지 제3 기입 데이터(DATA1~DATA3)를 메모리 장치(130)에 기입할 기입 시점을 결정할 수 있다. 스케쥴러(20)는 제1 내지 제3 기입 데이터(DATA1~DATA3) 각각의 기입 시점을 결정할 수 있다. 실시예에 있어서, 스케쥴러(20)는 제1 컨트롤러(110)가 동작하지 않을 때, 백그라운드 동작으로서, 기입 데이터를 메모리 장치(130)에 기입할 수 있다. 스케쥴러(20)는 결정된 기입 시점에 데이터를 메모리 장치(130)에 전송할 수 있다.
도 10은 본 개시의 예시적 실시예에 따른 메모리 시스템의 기입 방법을 설명하는 도면이다.
도 10을 참조하면, 제2 컨트롤러(120)는 제1 컨트롤러(110)로부터 수신된 복수의 기입 데이터(DATA1~DATA3)를 병합하고, 병합된 기입 데이터(DATA[1:3])를 한 번에 메모리 장치(130)에 기입할 수 있다.
예컨대, 제1 내지 제3 기입 데이터(DATA1~DATA3)의 사이즈가 작고, 제1 내지 제3 기입 데이터(DATA1~DATA3)를 병합하여 생성되는 병합된 기입 데이터(DATA[1:3])의 사이즈가 메모리 장치(130)의 기입 단위 이하일 경우, 스케쥴러(20)는 제1 내지 제3 기입 데이터(DATA1~DATA3)를 동시에 메모리 장치(130)에 전송할 수 있다. 이에 따라서, 제2 컨트롤러(120)는 한번의 메모리 인터페이싱 동작을 통해 병합된 기입 데이터(DATA[1:3]) 및, 이에 대응하는 병합된 물리 주소(PA[1:3]) 및 기입 커맨드(WCND)를 메모리 장치(130)에 전송할 수 있다. 병합된 물리 주소(PA[1:3])는 제1 내지 제3 물리 주소(PA1~PA3) 각각이 나타내는 저장 영역을 나타낼 수 있다. 이로써, 제2 컨트롤러(120)는 병합된 기입 데이터(DATA[1:3])를 한 번의 기입 제어를 통해 메모리 장치(130)에 기입할 수 있다. 이와 같이, 제2 컨트롤러(120)가 복수의 기입 데이터를 병합하고, 병합된 기입 데이터를 메모리 장치(130)에 기입함으로써, 제2 컨트롤러(120)의 인터페이싱 동작의 횟수가 감소될 수 있으며, 메모리 시스템의 데이터 처리 속도가 향상될 수 있다.
도 11a 및 도 11b는 본 개시의 예시적 실시예에 따른 메모리 시스템의 기입 방법을 설명하는 도면이다.
도 11a 및 도 11b에서 제2 컨트롤러(120)는 재프로그램 방식(reprogram scheme)에 기초하여 데이터가 적어도 두 번의 프로그램 동작을 통해 메모리 장치(130)에 기입되도록 제어할 수 있다.
도 11a를 참조하면, 제2 컨트롤러(120)는 제1 기입 데이터(DATA1)가 제1 컨트롤러(110)로부터 수신되면, 제1 기입 데이터(DATA1)를 비휘발성 메모리 버퍼(10)에 저장하고, 메모리 장치(130)에 기저장된 제2 기입 데이터(DATA2)를 메모리 장치(130)로부터 독출할 수 있다. 제2 컨트롤러(120)는 독출된 제2 기입 데이터(DATA2)를 비휘발성 메모리 버퍼(10)에 저장하고, 제1 기입 데이터(DATA1) 및 제2 기입 데이터(DATA2)가 병합된 기입 데이터(DATA[1:2])를 메모리 장치(130)에 기입할 수 있다. 실시예에 있어서, 제1 기입 데이터(DATA1)는 기입하고자 하는 사용자 데이터의 MSB 페이지이고, 제2기입 데이터(DATA2)는 기입하고자 하는 데이터의 LSB 페이지일 수 있다. 제2 컨트롤러(120)는 제2 기입 데이터(DATA2)를 우선하여 메모리 장치(130)에 기입하고, 제1 기입 데이터(DATA1)가 수신되면, 제2 기입 데이터(DATA2)를 메모리 장치(130)로부터 독출하고, 병합된 기입 데이터(DATA[1:2])를 메모리 장치(130)에 기입함으로써, 적어도 두 번의 프로그램 동작을 통해 병합된 기입 데이터(DATA[1:2])를 메모리 장치(130)에 기입할 수 있다. 이 때, 프로그램 페일이 발생할 경우, 제2 컨트롤러(120)는 비휘발성 메모리 버퍼(10)에 저장된 제1 기입 데이터(DATA1) 및 제2 기입 데이터(DATA2)를 기초로 사용자 데이터를 복구할 수 있다.
도 11b를 참조하면, 제2 컨트롤러(120)는 제1 컨트롤러(110)로부터 수신되어 비휘발성 메모리 버퍼(10)에 저장된 기입 데이터(DATA)를 적어도 두 번 독출하여 메모리 장치(130)에 전송함으로써, 기입 데이터(DATA) 가 적어도 두 번 메모리 장치(130)에 프로그램 되도록 제어할 수 있다. 다시 말해서, 제2 컨트롤러(120)는 기입 데이터(DATA)를 메모리 장치(130)에 프로그램한 후, 기입 데이터(DATA)를 메모리 장치(130)에 재프로그램할 수 있다. 이 때, 스케쥴러(20)가 재프로그램되는 시점을 결정할 수 있다. 예를 들어서, 스케쥴러(20)는 제1 컨트롤러(110)로부터 수신되는 다른 기입 데이터가 메모리 장치(130)에 프로그램 된 후, 기입 데이터(DATA)가 메모리 장치(130)에 적어도 한 번 이상 재프로그램 되도록 제어할 수 있다.
도 8 내지 도 11b를 참조하여 설명한 바와 같이, 본 개시의 예시적 실시예에 따른 메모리 시스템(도 1의 100)에서, 제1 컨트롤러(110)는 기입 데이터 및 물리 주소를 제2 컨트롤러(120)에 전송하고, 제2 컨트롤러(120)가 기입 데이터의 기입 순서(프로그램 순서) 및 프로그램 횟수 등을 결정할 수 있다. 제2 컨트롤러(120)는 결정된 순서에 기초하여 기입 데이터가 메모리 장치(130)에 기입되도록 제어할 수 있다. 이에 따라서, 기입 동작을 수행함에 있어서, 제2 컨트롤러(120)가 기입 데이터를 비휘발성 메모리 버퍼(10)에 버퍼링하고, 기입 순서를 결정함으로써, 제1 컨트롤러(110)의 부담(기입 제어 부담, 기입 데이터의 버퍼링 부담 등)이 감소되고, 제1 컨트롤러(110)의 자유도가 향상될 수 있다.
도 12a 및 도 12b는 본 개시의 예시적 실시예에 따른 비휘발성 메모리 시스템의 프로그램 완료 정보를 전송하는 방법을 설명하는 도면이다. 구체적으로, 도 12a 및 도 12b는 제2 컨트롤러(120)가 제1 컨트롤러(110)에 프로그램 완료 정보를 전송하는 방법을 설명하는 도면이다.
도 1을 참조하여 전술한 바와 같이, 제1 컨트롤러(110)는 메모리 장치(130)의 기입 및 독출 동작 전반을 제어한다. 그런데, 도 8내지 도 11b를 참조하여 설명한 바와 같이, 기입 데이터가 메모리 장치(130)에 실제로 기입되는(또는 프로그램 되는) 시점, 기입 순서, 프로그램 횟수 등은 제2 컨트롤러(120)가 결정한다. 제1 컨트롤러(110)는 기입 데이터의 기입 상태를 관리하여야 하므로, 기입 데이터가 메모리 장치(도 1의 130)에 실제로 기입되면, 다시 말해서, 프로그램 완료되면, 제2 컨트롤러(120)는 제1 컨트롤러(110)에 프로그램 완료 정보(PGM_IF)를 전송할 수 있다. 예컨대 프로그램 완료 정보(PGM_IF)는 프로그램 패스/페일, 프로그램 완료 시점 및 프로그램 완료 시점의 온도 등을 포함할 수 있다.
도 12a를 참조하면, 기입 데이터가 프로그램 완료되면, 제2 컨트롤러(120)는 제1 컨트롤러(110)에 인터럽트를 발생시킬 수 있다. 제1 컨트롤러(110)는 인터럽트에 응답하여, 제2 컨트롤러(120)로부터 프로그램 완료 정보(PGM_IF)를 독출할 수 있다. 예컨대, 제2 컨트롤러(120)는 제1 컨트롤러(110)로부터의 요청에 응답하여, 프로그램 완료 정보(PGM_IF)를 리턴 신호로서 제1 컨트롤러(110)에 제공할 수 있다.
도 12b를 참조하면, 제1 컨트롤러(110)는 주기적으로 제2 컨트롤러(120)로부터 프로그램 완료 정보(PGM_IF)를 독출할 수 있다. 다시 말해서, 제1 컨트롤러(110)는 주기적으로 제2 컨트롤러(120)에 프로그램 완료 정보(PGM_IF)를 요청할 수 있다. 제2 컨트롤러(120)는 기입 데이터에 대한 프로그램이 완료된 후, 프로그램 완료 정보(PGM_IF)를 요청을 수신하면, 상기 요청에 응답하여 프로그램 완료 정보(PGM_IF)를 제1 컨트롤러(110)에 전송할 수 있다.
도 13은 본 개시의 예시적 실시예에 따른 메모리 시스템의 독출 방법을 나타내는 흐름도이고, 도 14a 및 도 14b는 본 개시의 예시적 실시예에 따른 메모리 시스템의 독출 방법을 설명하는 도면이다.
도 13을 참조하면, 제1 컨트롤러(110)가 호스트(200)로부터 독출 요청 및 논리 주소를 수신할 수 있다(S310). 제1 컨트롤러(110)는 논리 주소를 물리 주소로 변환할 수 있다(S320). 제1 컨트롤러(110)는 맵핑 정보를 참조하여, 논리 주소에 대응하는 물리 주소를 검출함으로써, 논리 주소를 물리 주소로 변환할 수 있다.
제2 컨트롤러(120)가 제1 인터페이스(30)를 통해 제1 컨트롤러(110)로부터 독출 커맨드(RCMD) 및 물리 주소(PA)를 수신할 수 있다(S330). 제2 컨트롤러(120)는 비휘발성 메모리 버퍼(10) 또는 물리 주소에 대응하는 메모리 장치(130)의 저장 영역으로부터 데이터를 독출할 수 있다(S340).
도 14a를 참조하면, 물리 주소(PA)에 대응하는 데이터(DATA)가 메모리 장치(130)에 저장되어 있을 수 있다. 제2 컨트롤러(120)는 물리 주소(PA)를 기초로 메모리 장치(130)로부터 데이터(DATA)를 독출할 수 있다.
한편 도 14b를 참조하면, 물리 주소(PA)에 대응하는 데이터(DATA)가 비휘발성 메모리 버퍼(10)에 저장되어 있을 수 있다. 전술한 바와 같이, 데이터의 기입 시점은 제2 컨트롤러(120)가 결정할 수 있다. 비휘발성 메모리 버퍼(10)에 저장된 데이터(DATA)가 메모리 장치(130)에 프로그램 되기 전 또는 비휘발성 메모리 버퍼(10)에 저장된 데이터(DATA)가 메모리 장치(130)에 프로그램되더라도 데이터(DATA)가 비휘발성 메모리 버퍼(10)에서 지워지기 전에 물리 주소(PA)를 엑세스하여 데이터(DATA)를 독출할 것을 요청하는 독출 커맨드(RCMD)가 수신될 경우, 제2 컨트롤러(120)는 비휘발성 메모리 버퍼(10)로부터 데이터(DATA)를 독출할 수 있다.
실시예에 있어서, 제2 컨트롤러(120)는 독출 커맨드(RCMD)가 수신되면, 우선 물리 주소(PA)에 대응하는 데이터(DATA)가 비휘발성 메모리 버퍼(10)에 남아있는지 여부를 확인할 수 있다. 제2 컨트롤러(120)는 데이터(DATA)가 비휘발성 메모리 버퍼(10)에 남아있으면, 비휘발성 메모리 버퍼(10)로부터 데이터(DATA)를 독출하고, 비휘발성 메모리 버퍼(10)에 남아있지 않다며, 메모리 장치(130)로부터 데이터(DATA)를 독출할 수 있다.
계속하여 도 13을 참조하면, 제2 컨트롤러(120)는 제1 컨트롤러(110)에 독출된 데이터(DATA)를 전송할 수 있다(S350).
이와 같이, 본 개시의 예시적 실시예에 따른 메모리 시스템(100)에서, 제2 컨트롤러(120)가 제1 컨트롤러(110)로부터 독출 커맨드(RCMD) 및 물리 주소(PA)를 수신하고, 메모리 장치(130) 또는 비휘발성 메모리 버퍼(10)로부터 데이터(DATA)를 독출하여, 독출된 데이터(DATA)를 제1 컨트롤러(110)에 제공할 수 있다.
도 15a 및 도 15b는 본 개시의 예시적 실시예에 따른 메모리 시스템의 프로그램 페일 발생 시 동작 방법을 설명하는 도면이다.
도 15a 및 도 15b를 참조하면, 제2 컨트롤러(120)는 데이터(DATA)가 제1 물리 주소(PA1)에 대응하는 메모리 장치(130)의 저장 영역에 프로그램되도록 제어할 수 있다. 그러나, 프로그램 페일, 즉 기입 페일이 발생하면, 제2 컨트롤러(120)는 프로그램 페일 신호(WFAIL)를 제1 컨트롤러(110)에 전송할 수 있다. 예컨대 도 12a 및 도 12b를 참조하여 설명한 바와 같이, 제2 컨트롤러(120)는 프로그램 페일 신호(WFAIL)를 포함하는 프로그램 완료 정보(PGM_IF)를 제1 컨트롤러(110)에 전송할 수 있다. 제1 컨트롤러(110)는 기입 데이터(DATA)가 메모리 장치(130)에 정상적으로 기입되도록 추가 동작을 수행할 수 있다.
도 15a를 참조하면, 일 실시예에 있어서, 제1 컨트롤러(110)는 가비지 컬렉션 수행을 결정할 수 있다. 제1 컨트롤러(110)는 논리 주소에 대응하는 물리 주소의 맵핑 정보를 포함하는 맵핑 테이블(MTABLE)을 관리할 수 있으며, 가비지 컬랙션 수행에 따라서, 기입 데이터(DATA)가 저장될 저장 영역의 주소(예컨대 제1 논리 주소(LA1)에 맵핑된 물리 주소)가 이전의 제1 물리 주소(PA1)에서 제5 물리 주소(PA5)로 변경될 수 있다.
제1 컨트롤러(110)는 제2 컨트롤러(120)에 제1 물리 주소(PA1)로부터 데이터의 독출을 요청하는 독출 커맨드(RCMD)를 전송할 수 있다. 제1 물리 주소(PA1)에 대응하는 데이터(DATA)는 비휘발성 메모리 버퍼(10)에 저장되어 있는 바, 제2 컨트롤러(120)는 비휘발성 메모리 버퍼(10)로부터 데이터(DATA)를 독출하고, 독출된 데이터(DATA)를 제1 컨트롤러(110)로 전송할 수 있다.
제1 컨트롤러(110)는 기입 커맨드(WCMD), 제5 물리 주소(PA5)와 함께 데이터(DATA)를 제2 컨트롤러(120)로 전송할 수 있다. 제2 컨트롤러(120)는 데이터(DATA) 및 제5 물리 주소(PA5)를 비휘발성 메모리 버퍼(10)에 저장하고, 데이터(DATA)가 제5 물리 주소(PA5)에 대응하는 메모리 장치(130)의 저장 영역에 기입되도록 제어할 수 있다. 제2 컨트롤러(120)는 데이터(DATA) 및 제5 물리 주소(PA5)를 메모리 장치(130)에 전송할 수 있다. 이로써, 데이터(DATA)는 제5 물리 주소(PA5)에 대응하는 메모리 장치(130)의 저장 영역에 프로그램될 수 있다.
도 15b를 참조하면, 다른 실시예에 있어서, 제1 컨트롤러(110)는 물리 주소의 변경을 결정할 수 있다. 제1 컨트롤러(110)는 제2 컨트롤러(120)로부터 프로그램 페일 신호(WFAIL)가 수신되면, 논리 주소, 예컨대 제1 논리 주소(LA1)에 대응하는 물리 주소를 변경할 수 있다. 예를 들어서 제1 컨트롤러(110)는 제1 논리 주소(LA1)에 맵핑되는 물리 주소를 제1 물리 주소(PA1)에서 제5 물리 주소(PA5)로 변경할 수 있다. 이후, 제1 컨트롤러(110)는 기입 커맨드(WCMD) 및 제5 물리 주소(PA5)를 제2 컨트롤러(120)에 전송할 수 있다. 이때, 데이터(DATA)는 이미 비휘발성 메모리 버퍼(10)에 저장된 바, 제1 컨트롤러(110)는 데이터(DATA)를 재전송하지 않는다. 실시예에 있어서, 제1 컨트롤러(110)는 제1 물리 주소(PA1)를 함께 전송함으로써, 제5 물리 주소(PA5)가 변경된 주소임을 나타낼 수 있다.
제2 컨트롤러(120)는 데이터(DATA)가 저장될 저장 영역을 제1 물리 주소(PA1)에서 제5 물리 주소(PA5)로 변경하고, 데이터(DATA)가 제5 물리 주소(PA5)에 대응하는 메모리 장치(130)의 저장 영역에 기입되도록 제어할 수 있다.
도 16a, 도 16b 및 도 16c는 본 개시의 예시적 실시예에 따른 메모리 시스템에서 파워-오프 및 파워-온 시의 동작 방법을 설명하는 도면이고, 도 17은 본 개시의 예시적 실시예에 따른 관리 정보를 나타내는 도면이다. 도 16a, 도 16b 및 도 16c에서, 제2 컨트롤러(120)의 일부 구성들만을 도시하였으나, 이는 설명의 편의를 위한 것이며, 제2 컨트롤러(120)는 도 4를 참조하여 설명한 구성들을 포함할 수 있다.
도 16a 및 도 16b는 파워-오프 시의 메모리 시스템(100)의 동작을 도시하며, 구체적으로 갑작스런 파워-오프(sudden power-off) 시의 동작을 도시한다. 도 16c는 파워-온 시의 메모리 시스템(100)의 동작을 도시한다.
도 16a를 참조하면, 제1 컨트롤러(110)가 메모리 시스템(100)의 서든 파워-오프를 감지할 수 있으며, 서든 파워-오프가 감지되면 제2 컨트롤러(120)에 알림 신호(SPLP), 예컨대 power loss protection 신호를 전송할 수 있다.
제2 컨트롤러(120)는 알림 신호(SPLP)에 응답하여, 메모리 장치(130)를 제어할 수 있다. 예컨대 제2 컨트롤러(120)는 메모리 장치(130)에 기입될 데이터를 보호하기 위한 동작을 수행할 수 있다. 제2 컨트롤러(120)는 메모리 장치(130)에서 소거 동작 또는 독출 동작이 수행 중인 경우, 소거 동작 또는 독출 동작을 중단시킬 수 있다. 제2 컨트롤러(120)는 메모리 장치(130)에서 프로그램 동작이 수행중인 경우, 프로그램 동작이 완료될 때까지 기다릴 수 있다.
한편, 메모리 시스템(100)의 동작 중, 제2 컨트롤러(120)는 비휘발성 메모리 버퍼(10)에 대한 관리 정보(MIF)를 생성하고, 관리 정보(MIF)를 메모리(60)에 저장할 수 있다. 실시예에 있어서, 제2 컨트롤러(120)는 관리 정보(MFT)를 주기적 또는 비주기적으로 메모리 장치(130)에 저장할 수 있다. 관리 정보(MFT)는 비휘발성 메모리 버퍼(10)에 저장된 복수의 데이터(DATA1~DATAn) 각각에 대한 관리 정보(MIF_PA1~MIF_PAn)를 포함할 수 있다. 실시예에 있어서, 관리 정보(MFT)는 도 17에 도시된 바와 같이, 테이블(예컨대 도 17의 관리 정보 테이블(MIFT))로서 메모리(60)에 저장될 수 있다.
도 17을 참조하면, 관리 정보 테이블(MIFT)은 비휘발성 메모리 버퍼(10)에 저장된 복수의 데이터(DATA1~DATAn) 각각에 대한 관리 정보(MIF_PA1~MIF_PAn)를 포함할 수 있다. 관리 정보, 예컨대 제1 관리 정보(MIF_PA1)는 제1 데이터(DATA1)에 대응하는 물리 주소(PA1), 프로그램 패스/페일 여부, 데이터가 저장된 경과 시간, 저장된 시점의 온도 등을 포함할 수 있다. 이 외에도 관리 정보(MFT)는 데이터에 대한 다양한 정보를 더 포함할 수 있다.
계속하여 도 16a를 참조하면, 제2 컨트롤러(120)는 보호 완료 신호(PLP_DONE)와 함께 관리 정보(MIF)(예컨대 도 17의 관리 정보 테이블(MIFT))을 제1 컨트롤러(110)에 전송할 수 있다.
도 16b를 참조하면, 제1 컨트롤러(110)는 메타 데이터(MDATA)를 메모리 장치(130)에 저장할 수 있다. 제1 컨트롤러(110)는 제2 컨트롤러(120)에 바이패스 모드 설정 커맨드(CMD_BP)를 전송할 수 있다. 제2 컨트롤러(120)는 바이패스 모드 설정 커맨드(CMD_BP)에 응답하여 바이패스 모드로 동작할 수 있다. 이에 따라서, 제2 컨트롤러(120)는 제1 컨트롤러(110)와 메모리 장치(130) 사이에서 제1 인터페이스(30) 및 제2 인터페이스(40)를 통한 데이터 전송 경로를 제공할 수 있다.
제1 컨트롤러(110)는 메모리 장치(130)에 메타 데이터(MDATA) 및 메타 데이터(MDATA)의 기입을 위한 기입 커맨드(WCMD) 및 물리 주소(PA)를 전송할 수 있다. 메타 데이터(MDATA), 기입 커맨드(WCMD) 및 물리 주소(PA)는 제2 컨트롤러(120)를 통해 메모리 장치(130)에 전송될 수 있다. 이 때 메타 데이터(MDATA)는 제2 컨트롤러(120)로부터 수신된 관리 정보(MIF)를 포함할 수 있다. 메모리 장치(130)는 관리 정보(MIF)를 포함하는 메타 데이터(MDATA)를 저장할 수 있다.
도 16c를 참조하면, 파워-온 시, 제1 컨트롤러(110)는 제2 컨트롤러(120) 바이패스 모드 커맨드(CMD_BP)를 전송하고, 제2 컨트롤러(120)는 바이패스 모드 커맨드(CMD_BP)에 응답하여 바이패스 모드로 동작할 수 있다.
제1 컨트롤러(110)는 메모리 장치(130)로부터 메타 데이터(MDATA)를 독출할 수 있다. 제1 컨트롤러(110)는 제2 컨트롤러(120)를 통해 독출 커맨드(RCMD) 및 메타 데이터(MDATA)가 저장된 물리 주소(PA)를 메모리 장치(130)에 전송함으로써, 메모리 장치(130)로부터 메타 데이터(MDATA)를 독출할 수 있다. 이때 메타 데이터(MDATA)는 관리 정보(MIF)를 포함할 수 있다. 제1 컨트롤러(110)는 수신된 메타 데이터(MDATA) 중 관리 정보(MIF)를 제2 컨트롤러(120)에 전송할 수 있다. 제2 컨트롤러(120)는 관리 정보(MIF)를 메모리(60)에 저장하고 관리 정보(MIF)에 기초하여 비휘발성 메모리 버퍼(10)에 저장된 데이터(예컨대 도 16a의 DATA1~DATAn)를 관리할 수 있다.
한편, 실시예에 있어서, 제2 컨트롤러(120)는 관리 정보(MIF)를 메모리(60)가 아닌 비휘발성 메모리 버퍼(10)에 저장하거나 또는 관리 정보(MIF)를 메모리(60)에 저장하되, 서든 파워-오프 발생 시, 메모리(60)에 저장된 관리 정보(MIF)를 비휘발성 메모리(10)에 저장할 수 있다. 비휘발성 메모리 버퍼(10)는 전원이 차단되어도 저장된 데이터를 유지하는 바, 서든 파워-오프 발생 시, 제2 컨트롤러(120)는 관리 정보(MIF)를 제1 컨트롤러(110)에 전송하지 않을 수 있다.
도 18은 본 개시의 예시적 실시예에 따른 SSD 시스템을 나타내는 블록도이다.
도 18을 참조하면, SSD 시스템(1000)은 호스트(1100) 및 SSD(1200)를 포함할 수 있다. SSD(1200)는 신호 커넥터(signal connector)를 통해 호스트(1100)와 신호를 주고 받으며, 전원 커넥터(power connector)를 통해 전원을 입력 받을 수 있다. SSD(1200)는 SSD 컨트롤러(1210) 및 복수의 메모리 장치들(1230, 1240, 1250), 예컨대 플래시 메모리 장치들을 포함할 수 있다. 이때, SSD(1200)는 도 1 내지 도 17에 도시된 실시예들을 이용하여 구현될 수 있다.
구체적으로, 도 1의 메모리 시스템(100)이 SSD 컨트롤러(1210)로 적용될 수 있다. SSD 컨트롤러(1210)는 제1 컨트롤러(1211) 및 제2 컨트롤러(1212)를 포함할 수 있다. 제1 컨트롤러(1211)는 호스트(1100)와 통신하며, 제2 컨트롤러(1212)는 제1 컨트롤러(1211) 및 복수의 메모리 장치들(1230, 1240, 1250)과 통신할 수 있다. 제1 컨트롤러(1211)는 복수의 메모리 장치들(1230, 1240, 1250)에 대한 전반적인 기입/독출 동작을 제어할 수 있다. 제2 컨트롤러(1212)는 제1 컨트롤러(1211)와 복수의 메모리 장치들(1230, 1240, 1250) 사이에서 데이터를 전송하며, 데이터 기입/독출 동작을 스케쥴링할 수 있다. 제2 컨트롤러(1212)는 비휘발성 메모리(NVM)를 구비할 수 있으며, 비휘발성 메모리(NVM)는 데이터 버퍼로서 동작할 수 있다. 실시예에 있어서, 비휘발성 메모리(NVM)는 제2 컨트롤러(1212)와 별개의 장치로서 SSD 컨트롤러(1210)에 탑재될 수 있다. 본 개시의 실시예에 따른 SSD 컨트롤러(1210)에 따르면, 제1 컨트롤러(1211)의 기입/독출 동작의 제어 부담 및 데이터 버퍼링 부담이 감소될 수 있다. 또한, 비휘발성 메모리(NVM)는 파워-오프 시에도 데이터를 유지하므로, 서든 파워-오프에 대비하여 구비되는 커패시터 용량이 감소될 수 있어, SSD 컨트롤러(1210)의 면적이 감소될 수 있다.
한편, 전술한 본 개시의 실시예에 따른 메모리 시스템은 SSD 시스템(1000) 뿐만 아니라, 메모리 카드 시스템, 컴퓨팅 시스템, UFS 등에 탑재되거나 적용될 수 있다. 또한 본 개시의 실시예에 다른 메모리 시스템의 동작 방법은 비휘발성 메모리가 탑재되는 다양한 종류의 전자 시스템에 적용될 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (20)

  1. 비휘발성 메모리 장치를 제어하는 메모리 컨트롤러의 동작 방법에 있어서,
    제1 인터페이스를 통해 외부 컨트롤러로부터 제1 데이터 및 제1 물리 주소를 수신하는 단계;
    상기 제1 데이터를 비휘발성 메모리 버퍼에 저장하는 단계; 및
    상기 비휘발성 메모리 버퍼에 저장된 상기 제1 데이터가 상기 물리 주소에 대응하는 상기 비휘발성 메모리 장치의 제1 물리 영역에 프로그램되도록 상기 비휘발성 메모리 장치의 기입 동작을 제어하는 단계를 포함하는 방법.
  2. 제1 항에 있어서,
    상기 비휘발성 메모리 버퍼에 저장하는 단계 이후, 상기 외부 컨트롤러에 기입 완료 신호를 제공하는 것을 특징으로 하는 방법.
  3. 제1 항에 있어서, 상기 기입 동작을 제어하는 단계는,
    상기 제1 데이터 및 제2 데이터가 제2 인터페이스를 통해 상기 비휘발성 메모리 장치에 전송하는 순서를 결정하는 단계를 포함하며, 상기 제2 데이터는 상기 제1 데이터가 수신된 이후에 상기 외부 컨트롤러로부터 수신된 것을 특징으로 하는 방법.
  4. 제1 항에 있어서, 상기 기입 동작을 제어하는 단계는,
    상기 외부 컨트롤러가 동작하지 않을 때, 상기 제1 데이터 및 상기 제1 물리 주소를 상기 비휘발성 메모리 장치로 전송하는 단계를 포함하는 방법.
  5. 제1 항에 있어서, 상기 기입 동작을 제어하는 단계는,
    상기 제1 물리 주소가 나타내는 상기 제1 물리 영역 및 상기 제1 물리 주소의 수신 이후에 수신된 제2 물리 주소가 나타내는 제2 물리 영역을 포함하는 제3 물리 영역을 나타내는 제3 물리 주소를 상기 비휘발성 메모리 장치에 전송하는 단계; 및
    상기 제1 데이터 및 상기 제2 물리 주소에 대응하는 제2 데이터를 포함하는 제3 데이터를 상기 비휘발성 메모리 장치에 전송하는 단계를 포함하는 방법.
  6. 제1 항에 있어서, 상기 기입 동작을 제어하는 단계는,
    상기 비휘발성 메모리 장치로부터 상기 제1 물리 영역에 저장된 제2 데이터를 독출하는 단계; 및
    상기 비휘발성 메모리 버퍼에 저장된 상기 제1 데이터 및 독출된 상기 제2 데이터를 포함하는 제3 데이터를 상기 제1 물리 영역에 프로그램하는 단계를 포함하는 방법.
  7. 제1 항에 있어서, 상기 기입 동작을 제어하는 단계는,
    상기 비휘발성 메모리 버퍼로부터 상기 제1 데이터를 독출하는 단계;
    상기 제1 데이터를 상기 제1 물리 영역에 프로그램하는 단계;
    상기 비휘발성 메모리 버퍼로부터 상기 제1 데이터를 재독출하는 단계; 및
    재독출된 상기 제1 데이터를 상기 제1 물리 영역에 재프로그램하는 단계를 포함하는 방법.
  8. 제1 항에 있어서,
    상기 제1 물리 영역에 상기 제1 데이터가 프로그램되면, 상기 제1 데이터에 대한 프로그램 상태 정보를 상기 외부 컨트롤러에 제공하는 단계를 더 포함하는 방법.
  9. 제1 항에 있어서,
    상기 외부 컨트롤러로부터 제2 물리 주소를 포함하는 독출 커맨드를 수신하는 단계;
    상기 비휘발성 메모리 버퍼 또는 상기 비휘발성 메모리 장치로부터 상기 제2 물리 주소에 대응하는 제2 데이터를 독출하는 단계; 및
    상기 제2 데이터를 상기 외부 컨트롤러에 제공하는 단계를 더 포함하는 방법.
  10. 제1 항에 있어서,
    상기 비휘발성 메모리 버퍼에 저장된 데이터에 대한 관리 정보를 내부 메모리 또는 상기 비휘발성 메모리 버퍼에 저장하는 단계를 더 포함하는 방법.
  11. 제10 항에 있어서, 상기 관리 정보는,
    상기 데이터에 대응하는 물리 주소, 상기 데이터의 프로그램 수행 여부, 프로그램 결과, 프로그램 완료 시점, 및 프로그램 완료 시점의 온도 중 적어도 하나를 포함하는 것을 특징으로 하는 방법.
  12. 제10 항에 있어서,
    상기 외부 컨트롤러로부터 파워 오프 알림 신호를 수신하는 단계;
    상기 파워 오프 알림 신호의 수신에 응답하여, 상기 관리 정보를 상기 외부 컨트롤러에 제공하는 단계;
    파워 온 시, 상기 외부 컨트롤러로부터 상기 관리 정보를 수신하는 단계; 및
    상기 관리 정보를 상기 내부 메모리 또는 상기 비휘발성 메모리 버퍼에 저장하는 단계를 더 포함하는 방법.
  13. 제12 항에 있어서,
    상기 관리 정보를 상기 비휘발성 메모리 장치에 기입하는 단계; 및
    상기 파워 온 시, 상기 관리 정보를 상기 비휘발성 메모리 장치로부터 독출하는 단계를 더 포함하는 방법.
  14. 제1 항에 있어서, 상기 비휘발성 메모리 버퍼는,
    자기 저항 랜덤 액세스 메모리(Magnetoresistive random-access memory)를 포함하는 것을 특징으로 하는 방법.
  15. 비휘발성 메모리 장치를 제어하는 메모리 컨트롤 시스템의 동작 방법에 있어서,
    제2 컨트롤러가 제1 인터페이스를 통해 제1 컨트롤러로부터 기입 데이터 및 물리 주소를 수신하는 단계;
    상기 제2 컨트롤러가 상기 기입 데이터를 비휘발성 메모리 버퍼에 저장하는 단계; 및
    상기 제2 컨트롤러가, 상기 비휘발성 메모리 버퍼에 저장된 상기 기입 데이터가 상기 물리 주소에 대응하는 상기 비휘발성 메모리 장치의 물리 영역에 프로그램되도록 상기 비휘발성 메모리 장치의 기입 동작을 제어하는 단계를 포함하는 방법.
  16. 제15 항에 있어서,
    상기 제1 컨트롤러가 호스트로부터 상기 기입 데이터 및 논리 주소를 수신하는 단계; 및
    상기 제1 컨트롤러가 상기 논리 주소를 상기 물리 주소로 변환하는 단계를 더 포함하는 방법.
  17. 제15 항에 있어서, 상기 기입 동작을 제어하는 단계는,
    상기 제2 컨트롤러가 설정된 프로그램 방식에 기초하여, 상기 기입 데이터를 상기 물리 영역에 적어도 두 번 프로그램하는 것을 특징으로 하는 방법.
  18. 제15 항에 있어서, 상기 기입 동작을 제어하는 단계는,
    상기 제2 컨트롤러가 상기 비휘발성 메모리 버퍼에 저장된 제1 기입 데이터 및 제2 기입 데이터의 기입 순서를 결정하는 단계; 및
    결정된 기입 순서에 기초하여, 상기 제1 기입 데이터 및 상기 제2 기입 데이터를 상기 비휘발성 메모리 장치에 제공하는 단계를 포함하는 방법.
  19. 제15 항에 있어서, 상기 비휘발성 메모리 장치는,
    멀티-비트 메모리 셀을 포함하는 복수의 비휘발성 메모리 칩을 포함하는 것을 특징으로 하는 방법.
  20. 호스트로부터 비휘발성 메모리 장치에 대한 액세스 요청 및 논리 주소를 수신하고, 상기 논리 주소를 물리 주소로 변환하는 제1 컨트롤러; 및
    상기 제1 컨트롤러로부터 상기 물리 주소를 수신하고, 상기 논리 주소에 대응하는 상기 비휘발성 메모리 장치의 저장 영역에 기입 데이터가 기입되거나 또는 상기 저장 영역으로부터 독출 데이터가 독출되도록 제어하는 제2 컨트롤러를 포함하는 메모리 시스템.
KR1020180165532A 2018-12-19 2018-12-19 메모리 컨트롤러 및 메모리 시스템의 동작 방법, 및 메모리 시스템 KR20200076431A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020180165532A KR20200076431A (ko) 2018-12-19 2018-12-19 메모리 컨트롤러 및 메모리 시스템의 동작 방법, 및 메모리 시스템
US16/544,178 US11210016B2 (en) 2018-12-19 2019-08-19 Method of operating memory controller and memory system, and the memory system
CN201911307102.7A CN111414133A (zh) 2018-12-19 2019-12-18 操作存储器控制器和存储器系统的方法以及存储器系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180165532A KR20200076431A (ko) 2018-12-19 2018-12-19 메모리 컨트롤러 및 메모리 시스템의 동작 방법, 및 메모리 시스템

Publications (1)

Publication Number Publication Date
KR20200076431A true KR20200076431A (ko) 2020-06-29

Family

ID=71097607

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180165532A KR20200076431A (ko) 2018-12-19 2018-12-19 메모리 컨트롤러 및 메모리 시스템의 동작 방법, 및 메모리 시스템

Country Status (3)

Country Link
US (1) US11210016B2 (ko)
KR (1) KR20200076431A (ko)
CN (1) CN111414133A (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11921649B1 (en) * 2019-09-12 2024-03-05 Kioxia Corporation Multiple parallel mode flash channels with serial link
US11144203B2 (en) * 2019-12-03 2021-10-12 Micron Technology, Inc. Selectively operable memory device
US11836077B2 (en) 2020-09-01 2023-12-05 Micron Technology, Inc. Dynamically tuning host performance booster thresholds
US11894071B2 (en) 2021-12-13 2024-02-06 Sandisk Technologies Llc Non-volatile memory with differential temperature compensation for bulk programming
US20230186996A1 (en) * 2021-12-13 2023-06-15 Sandisk Technologies Llc Non-volatile memory with differential temperature compensation for super page programming

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2864651B2 (ja) * 1990-03-31 1999-03-03 ソニー株式会社 記録再生装置
JP2005108304A (ja) 2003-09-29 2005-04-21 Toshiba Corp 半導体記憶装置及びその制御方法
US7245527B2 (en) 2005-05-16 2007-07-17 Freescale Semiconductor, Inc. Nonvolatile memory system using magneto-resistive random access memory (MRAM)
US8131912B2 (en) 2007-09-27 2012-03-06 Kabushiki Kaisha Toshiba Memory system
US8924661B1 (en) * 2009-01-18 2014-12-30 Apple Inc. Memory system including a controller and processors associated with memory devices
US20100191896A1 (en) 2009-01-23 2010-07-29 Magic Technologies, Inc. Solid state drive controller with fast NVRAM buffer and non-volatile tables
JP2012068936A (ja) 2010-09-24 2012-04-05 Toshiba Corp メモリシステム
US9400744B2 (en) 2012-10-30 2016-07-26 Mangstor, Inc. Magnetic random access memory journal for multi-level cell flash memory
KR102163872B1 (ko) 2013-08-09 2020-10-13 삼성전자 주식회사 멀티 비트 메모리 장치, 그것의 온칩 버퍼 프로그램 방법 및 멀티 비트 메모리 시스템
KR20150055413A (ko) 2013-11-13 2015-05-21 에스케이하이닉스 주식회사 데이터 저장 장치
TWI603194B (zh) 2013-12-04 2017-10-21 慧榮科技股份有限公司 資料儲存裝置以及其資料存取方法
US9933980B2 (en) * 2014-02-24 2018-04-03 Toshiba Memory Corporation NAND raid controller for connection between an SSD controller and multiple non-volatile storage units
US9423979B2 (en) 2014-03-10 2016-08-23 Kabushiki Kaisha Toshiba Memory system and memory controller for determining whether one or plurality of pointers can be stored in a second buffer and for executing data transfer between data buffer and host using the pointers
JP2016012335A (ja) 2014-06-05 2016-01-21 株式会社Genusion 記憶装置及び記憶装置システム並びに情報端末
US10481799B2 (en) * 2016-03-25 2019-11-19 Samsung Electronics Co., Ltd. Data storage device and method including receiving an external multi-access command and generating first and second access commands for first and second nonvolatile memories
CN108108120B (zh) * 2016-11-25 2021-03-09 上海川源信息科技有限公司 数据储存系统及其数据储存方法

Also Published As

Publication number Publication date
CN111414133A (zh) 2020-07-14
US20200201561A1 (en) 2020-06-25
US11210016B2 (en) 2021-12-28

Similar Documents

Publication Publication Date Title
US10891236B2 (en) Data storage device and operating method thereof
CN107168886B (zh) 数据存储装置及其操作方法
US11210016B2 (en) Method of operating memory controller and memory system, and the memory system
US11567685B2 (en) Storage controller and storage device including the same
KR20190090635A (ko) 데이터 저장 장치 및 그것의 동작 방법
US11803436B2 (en) Storage device and storage system including the same
US11520694B2 (en) Data storage device and operating method thereof
CN110928805B (zh) 存储器系统及其操作方法
KR102537373B1 (ko) 메모리 시스템에서의 데이터 전달 방법 및 장치
KR20210098717A (ko) 컨트롤러, 컨트롤러의 동작 방법 및 이를 포함하는 저장 장치
KR102544162B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
KR20210144249A (ko) 저장 장치 및 이의 동작 방법
KR102596964B1 (ko) 맵 캐시 버퍼 크기를 가변시킬 수 있는 데이터 저장 장치
KR20200114086A (ko) 컨트롤러, 메모리 시스템 및 그것의 동작 방법
KR102434840B1 (ko) 데이터 저장 장치
KR20190023247A (ko) 메모리 시스템 및 메모리 시스템의 동작방법
US20230126685A1 (en) Storage device and electronic system
EP3955102A1 (en) Storage system performing overwrite, host system controlling storage system, and operating method for storage system
US10515693B1 (en) Data storage apparatus and operating method thereof
KR102583244B1 (ko) 스토리지 장치 및 스토리지 장치의 동작 방법
US20240143168A1 (en) Storage device controlling garbage collection or wear leveling on the basis of timestamp, and method thereof
EP4220374A1 (en) Storage device and operating method of storage device
US20240176407A1 (en) Storage device for executing background operation based on power state and operating method thereof
KR20230161236A (ko) 임베디드 저장 장치, 그것을 갖는 호스트 시스템 및 그것의 동작 방법
KR20230071005A (ko) 스토리지 장치

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)