KR20190063054A - 메모리 시스템 및 이의 동작 방법 - Google Patents

메모리 시스템 및 이의 동작 방법 Download PDF

Info

Publication number
KR20190063054A
KR20190063054A KR1020170161842A KR20170161842A KR20190063054A KR 20190063054 A KR20190063054 A KR 20190063054A KR 1020170161842 A KR1020170161842 A KR 1020170161842A KR 20170161842 A KR20170161842 A KR 20170161842A KR 20190063054 A KR20190063054 A KR 20190063054A
Authority
KR
South Korea
Prior art keywords
data
memory
memory chip
importance
mapping table
Prior art date
Application number
KR1020170161842A
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 KR1020170161842A priority Critical patent/KR20190063054A/ko
Priority to US16/199,304 priority patent/US10909031B2/en
Priority to CN201811470074.6A priority patent/CN110032333A/zh
Publication of KR20190063054A publication Critical patent/KR20190063054A/ko
Priority to US17/144,713 priority patent/US11630766B2/en

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
    • 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
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • 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/0608Saving storage space on storage systems
    • 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/0638Organizing or formatting or addressing of data
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • 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/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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
    • 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/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • 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
    • 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

Abstract

본 개시의 기술적 사상의 일측면에 따른 제1 메모리 칩 및 제2 메모리 칩을 포함하는 메모리 시스템의 동작 방법으로서, 제1 데이터에 대한 기입 요청에 따라, 제1 메모리 칩 및 제2 메모리 칩에 제1 데이터를 기입하는 단계, 제1 데이터에 대한 독출 요청에 따라, 제1 메모리 칩 및 제2 메모리 칩에서 제1 데이터와 상이한 데이터에 대한 동작이 수행 중인지 확인하는 단계, 및 제1 메모리 칩에서 제1 데이터와 상이한 데이터에 대한 동작을 수행 중인 경우, 제2 메모리 칩에 저장된 제1 데이터를 독출하는 단계를 포함할 수 있다.

Description

메모리 시스템 및 이의 동작 방법{Memory System and Operation Method thereof}
본 개시의 기술적 사상은 메모리 시스템에 관한 것으로, 보다 상세하게는 동일한 데이터를 카피하여 복수의 메모리 칩들에 저장하는 메모리 시스템 및 메모리 시스템의 동작 방법에 관한 것이다.
메모리 장치는 휘발성(volatile) 메모리 장치와 비휘발성 메모리(non-volatile) 장치로 분류된다. 휘발성 메모리 장치는 DRAM(dynamic random access memory)과 SRAM (Static random access memory) 등을 포함한다. 비휘발성 메모리 장치는 플래시(flash) 메모리, EEPROM(Electrically Erasable Programmable Read-Only Memory), 및 저항성(resistive) 메모리를 포함한다.
반도체 메모리 장치 중 비휘발성 메모리 장치, 예를 들어 플래쉬 메모리 장치는 그 저장 용량을 증가시키기 위해 멀티 플레인(Multi-Plane) 타입으로 설계되고 있다. 멀티 플레인 타입의 비휘발성 메모리 장치는 복수의 플레인(Plane)들을 포함하고, 복수의 플레인들은 각각 복수의 메모리 블록(Block)들을 포함한다.
호스트는 메모리 시스템에 기입, 독출 및 소거 요청을 할 수 있다. 호스트로부터 기입, 독출 및 요청에 따라, 메모리 시스템은 기입, 독출 및 소거 동작을 수행하고, 메모리 시스템에서 기입, 독출 및 소거 동작을 수행하는 데에 걸리는 시간은 서로 다르다.
본 개시의 기술적 사상이 해결하려는 과제는, 동일한 데이터를 카피하여, 복수의 메모리 칩들에 기입하고, 복수의 메모리 칩들 중 하나의 메모리 칩으로부터 상기 데이터를 독출함으로써, 상기 데이터에 대한 독출 동작 속도가 향상된 메모리 시스템 및 그 동작 방법을 제공하는 데에 있다.
본 개시의 기술적 사상의 일측면에 따른 제1 메모리 칩 및 제2 메모리 칩을 포함하는 메모리 시스템의 동작 방법으로서, 제1 데이터에 대한 기입 요청에 따라, 제1 메모리 칩 및 제2 메모리 칩에 제1 데이터를 기입하는 단계, 제1 데이터에 대한 독출 요청에 따라, 제1 메모리 칩 및 제2 메모리 칩에서 제1 데이터와 상이한 데이터에 대한 동작이 수행 중인지 확인하는 단계, 및 제1 메모리 칩에서 제1 데이터와 상이한 데이터에 대한 동작을 수행 중인 경우, 제2 메모리 칩에 저장된 제1 데이터를 독출하는 단계를 포함할 수 있다.
본 개시의 기술적 사상의 일측면에 따른 복수의 메모리 칩들을 포함하는 메모리 시스템의 동작 방법으로서, 제1 데이터의 제1 중요도에 기초하여, 제1 데이터를 복수의 메모리 칩들 중 복수의 제1 메모리 칩들에 기입하는 단계, 제2 데이터의 제2 중요도에 기초하여, 제2 데이터를 복수의 메모리 칩들 중 하나의 제2 메모리 칩에 기입하는 단계, 제1 데이터가 저장된 복수의 제1 메모리 칩들 중 적어도 하나의 메모리 칩에 대응되는 물리적 어드레스를 제1 매핑 테이블에 저장하는 단계, 및 제2 데이터가 저장된 하나의 메모리 칩에 대응되는 물리적 어드레스를 제2 매핑 테이블에 저장하는 단계를 포함할 수 있다.
본 개시의 기술적 사상의 일측면에 따른 제1 메모리 칩 및 제2 메모리 칩을 포함하는 복수의 메모리 칩들, 호스트로부터 수신된 요청을 처리하는 제1 CPU, 복수의 채널들을 통해 상기 복수의 메모리 칩들의 동작을 제어하는 복수의 제2 CPU들, 및 데이터의 중요도에 대응되는 데이터의 기입 방식에 대한 정보를 포함하는 중요도 테이블을 포함하고, 제2 CPU들은, 중요도 테이블에 기초하여, 동일한 데이터를 제1 메모리 칩 및 제2 메모리 칩에 기입할 수 있다.
본 개시에 따른 메모리 시스템 및 그의 동작 방법에 따르면, 데이터를 서로 다른 복수의 메모리 칩들에 기입하고, 독출 동작 시에 복수의 메모리 칩들 중 하나의 메모리 칩으로부터 데이터를 독출할 수 있어, 독출 동작 속도가 증가될 수 있다. 더불어, 데이터의 중요도에 기초하여, 복수의 메모리 칩들에 기입할지 여부를 결정하므로, 비휘발성 메모리 칩들 전체의 용량이 과도하게 잠식되는 것을 방지할 수 있다.
도 1은 본 개시의 예시적 실시예에 따른 메모리 시스템을 포함하는 시스템을 개략적으로 나타내는 블록도이다.
도 2는 도 1의 컨트롤러의 예시적 실시예를 나타내는 블록도이다.
도 3은 본 개시의 예시적 실시예에 따른 메모리 시스템을 나타내는 블록도이다.
도 4는 본 개시의 예시적 실시예에 따른 메모리 시스템의 동작 방법을 설명하기 위한 순서도이다.
도 5는 도 3의 S120단계 및 S130단계의 예시적 실시예를 설명하기 위한 순서도이다.
도 6은 본 개시의 예시적 실시예에 따른 메모리 시스템을 나타내는 블록도이다.
도 7은 본 개시의 예시적 실시예에 따른 메모리 시스템에서 하나의 페어 칩을 이루는 제1 메모리 칩 및 제2 메모리 칩을 설명하기 위한 블록도이다.
도 8은 본 개시의 예시적 실시예에 따른 메모리 시스템의 동작 방법을 설명하기 위한 순서도이다.
도 9는 본 개시의 예시적 실시예에 따른 메모리 시스템에서 데이터가 저장된 페이지의 논리적 어드레스 및 물리적 어드레스의 대응 관계를 나타내는 매핑 테이블을 설명하기 위한 도면이다.
도 10은 본 개시의 예시적 실시예에 메모리 시스템에서 데이터가 저장된 페이지의 논리적 어드레스 및 물리적 어드레스의 대응 관계를 나타내는 매핑 테이블을 설명하기 위한 도면이다.
도 11은 본 개시의 다른 예시적 실시예에 따른 메모리 시스템을 나타내는 블록도이다.
도 12는 본 개시의 다른 예시적 실시예에 따른 메모리 시스템을 나타내는 블록도이다.
도 13은 본 개시의 예시적 실시예에 따른 메모리 시스템의 동작 방법을 설명하기 위한 순서도이다.
도 14는 본 개시의 예시적 실시예에 따른 메모리 시스템에서 데이터가 저장된 페이지의 논리적 어드레스 및 물리적 어드레스의 대응 관계를 나타내는 매핑 테이블을 설명하기 위한 도면이다.
도 15는 본 개시의 예시적 실시예에 따른 메모리 시스템의 동작 방법을 설명하기 위한 순서도이다.
도 16은 도 15의 S210단계의 예시적 실시예를 설명하기 위한 순서도이다.
도 17은 도 1의 메모리 컨트롤러의 다른 예시적 실시예를 나타내는 블록도이다.
도 18a, 도 18b 및 도 19는 본 개시의 예시적 실시예에 따른 메모리 시스템의 로컬 메모리에 저장되는 중요도 테이블을 설명하기 위한 도면이다.
도 1은 본 개시의 예시적 실시예에 따른 메모리 시스템을 포함하는 시스템을 개략적으로 나타내는 블록도이다.
도 1을 참조하면, 시스템(10)은 호스트(2000)와 메모리 시스템(1000)을 포함할 수 있다. 메모리 시스템(1000)은 솔리드 스테이트 드라이브(Solid State Drive, SSD)일 수 있다. 그러나, 본 발명은 이에 한정되지 않고, 메모리 시스템(1000)은 임베디드 멀티미디어 카드(embedded multimedia card, eMMC), 유니버셜 플래시 스토리지(universal flash storage, UFS), 또는 레이드(redundant array of independent disk, RAID) 등으로 구현될 수 있다.
메모리 시스템(1000)과 통신하는 호스트(2000)는 다양한 장치가 적용될 수 있다. 예를 들어, 호스트(2000)는 PMP, PDA, 스마트폰과 같은 휴대용 전자 장치, 컴퓨터 혹은 HDTV와 같은 전자 장치 또는 상기 전자 장치에 장착된 어플리케이션 프로세서들일 수 있다. 메모리 시스템(1000)은 호스트(2000)로부터의 요청(Req) 중에서 데이터 억세스 요청에 응답하여 데이터(DATA)를 논리적 어드레스(ADD_L)에 대응되는 위치에 기록하거나 독출하는 메모리 동작을 수행한다.
메모리 시스템(1000)은 컨트롤러(100)와 하나 이상의 비휘발성 메모리 칩들(200)을 포함할 수 있다. 컨트롤러(100)는 하나 이상의 채널을 통해 비휘발성 메모리 칩들(200)을 억세스할 수 있다. 예를 들어, 메모리 시스템(1000)은 n 개의 채널들(Ch1~Chn)을 포함하고, 컨트롤러(100)는 n개의 채널들(Ch1~Chn)을 통해 비휘발성 메모리 칩들(200)을 억세스할 수 있다. 일 동작 예로서, 컨트롤러(100)는 서로 다른 채널에 대응하는 비휘발성 메모리 칩들(200)을 병렬적으로 억세스할 수 있다.
비휘발성 메모리 칩들(200)은 플래시 메모리를 포함할 수 있다. 그러나 이는 예시적인 것에 불과한 것으로서, 본 발명의 실시예는 이에 한정될 필요가 없다. 예컨대, 비휘발성 메모리 칩들(200)은 ReRAM(resistive random access memory), MRAM(magnetoresistive random memory), PRAM(phase-change random access memory) 등의 비휘발성 메모리를 포함할 수 있다.
컨트롤러(100)는 호스트(2000)의 요청(Req)에 따른 메모리 동작을 제어하기 위한 하나 이상의 중앙 처리 장치(CPU)를 포함할 수 있다. 일 실시예로서, 컨트롤러(100)는 호스트(2000)와의 인터페이스에 관련된 동작을 처리하기 위한 제1 CPU(110)와 메모리 인터페이스에 관련된 동작을 처리하기 위한 제2 CPU(120)를 포함할 수 있다. 제1 CPU(110)는 호스트(2000)로부터의 요청을 병렬하게 처리할 수 있는 하나 이상의 CPU들을 포함할 수 있다. 또한, 제2 CPU(120)는 비휘발성 메모리 칩들(200)에 대한 억세스를 병렬하게 처리할 수 있는 하나 이상의 CPU들을 포함할 수 있다.
제1 CPU(110)와 제2 CPU(120)는 다양한 방식으로 메모리 시스템(1000)에 구비될 수 있다. 예를 들어, 컨트롤러(100)는 하나의 제1 CPU(110)와 복수의 제2 CPU들(120)을 포함할 수 있다. 또는, 컨트롤러(100)는 복수의 제1 CPU들(110)과 복수의 제2 CPU들(120)을 포함할 수 있다. 일 실시예에서, 제1 CPU(110)와 제2 CPU(120)는 서로 동일한 동작 속도를 가질 수 있고, 또는 다른 일 실시예에서는, 서로 다른 동작 속도를 가질 수 있다.
비휘발성 메모리 칩들(200)이 플래시 메모리를 포함하는 경우, 컨트롤러(100)는 플래시 변환 계층(Flash Translation Layer, FTL)을 포함할 수 있다. FTL은 플래시 메모리의 기록, 독출 및 소거 동작 등에 대한 관리를 위한 시스템 소프트웨어(또는, 펌웨어)를 포함할 수 있으며, 컨트롤러(100) 내부의 동작 메모리에 로딩되어 제2 CPU(120)에 의해 구동될 수 있다.
제1 CPU(110)는 호스트로부터 제공된 데이터 억세스 요청을 처리하여 내부 커맨드를 생성하고 이들을 제2 CPU(120)로 전달할 수 있다. 또한, 플래시 메모리 시스템의 경우에서, 제2 CPU(120)는 FTL을 구동함으로써 어드레스 변환 동작을 수행하거나 비휘발성 메모리 칩들(200)과의 데이터 송수신을 제어하는 동작을 수행할 수 있다. 제1 CPU(110)는 호스트와의 인터페이스에 관련된 동작을 수행함에 따라 호스트 CPU(HCPU)로 지칭될 수 있으며, 제2 CPU(120)는 FTL을 구동하는 동작을 수행함에 따라 FTL CPU(FCPU)로 지칭될 수 있다.
본 개시의 예시적 실시예에 따른 메모리 시스템(1000)은 동일한 데이터를 비휘발성 메모리 칩들(200)에 포함된 서로 다른 복수의 메모리 칩들에 기입할 수 있다. 이 때, 일 실시예에서는 호스트(2000)부터 전송되는 기입 요청(Req)에 포함된 데이터의 중요도 정보에 기초하여, 메모리 시스템(1000)은 동일한 데이터를 비휘발성 메모리 칩들(200)에 포함된 서로 다른 복수의 메모리 칩들에 기입할 수 있고, 다른 일 실시예에서는, 호스트(2000)부터 전송되는 별도의 커맨드
독출 동작을 수행할 때, 복수의 메모리 칩들 중 하나의 메모리 칩에서 선택적으로 데이터를 독출할 수 있다. 따라서, 데이터를 독출하는 데에 걸리는 시간이 감소될 수 있다.
도 2는 도 1의 컨트롤러의 예시적 실시예를 나타내는 블록도이다.
도 1 및 도 2를 참조하면, 컨트롤러(100)는 HCPU(110), FCPU(120), 로컬 메모리(130), 매핑 테이블(140), 호스트 인터페이스(150), 및 메모리 인터페이스(160)를 포함할 수 있다. 예를 들어, 하나의 HCPU(110)와 하나의 FCPU(120)가 컨트롤러(100)에 구비되는 예가 도시된다. 그러나, 전술한 바와 같이 다양한 개수의 HCPU 및 FCPU가 컨트롤러(100)에 구비될 수도 있다. 일 실시예에서, 컨트롤러(100)는 복수의 FCPU(120)들을 포함할 수 있다. HCPU(110) 및 FCPU(120)는 하나의 장치로 구현될 수 있으며, 하나의 장치 내에서 기능적으로 각각이 구분될 수 있다.
FCPU(120)는 FTL을 이용하여, 논리적 어드레스를 물리적 어드레스로 변환하는 어드레스 변환 동작을 수행할 수 있다. FTL은 가상의 블록 디바이스(예를 들어, 호스트(2000)) 상의 논리적인 위치(Logical Address)와 비휘발성 메모리 칩 상의 물리적인 위치(Physical Address) 간의 맵핑(Mapping) 정보를 매핑 테이블(Mapping Table, 140)에 유지할 수 있다. FTL은 소정의 논리적인 위치에 대해 기입 요청 또는 독출 요청되면, 상기 맵핑 정보를 이용하여 논리적인 위치를 물리적인 위치로 변환하는 역할을 수행할 수 있다. 매핑 테이블(140)은 호스트(2000)로부터 수신된 데이터(DATA)가 컨트롤러(100) 내부의 RAM에 저장될 때마다 업데이트될 수 있다. 매핑 테이블(140)은 별도로 도시하였으나, 실시예에 따라 RAM에 구현될 수도 있고, FCPU(120)에 포함될 수도 있다.
호스트 인터페이스(150)는 메모리 시스템(1000)에 접속된 호스트(2000)의 프로토콜에 따라 호스트(2000)와 컨트롤러(100) 사이에서 데이터의 교환을 인터페이스할 수 있다.
호스트 인터페이스(150)는 호스트와 비휘발성 메모리 시스템(1000)의 물리적 연결을 제공한다. 예를 들어, 호스트 인터페이스(150)는, ATA(advanced technology attachment), SATA(serial ATA), e-SATA(external SATA), SCSI(small computer small interface), SAS(serial attached SCSI), PCI(peripheral component interconnection), PCI-E(PCI express), IEEE 1394, USB(universal serial bus), SD(secure digital) 카드, MMC(multi media card), eMMC(embedded multi media card), CF(compact flash) 카드 인터페이스 등과 같은 다양한 인터페이스 방식들을 지원할 수 있다.
한편, 메모리 인터페이스(160)는 컨트롤러(100)와 비휘발성 메모리 칩들(200) 사이의 물리적 연결을 제공한다. 예를 들어, 커맨드, 어드레스 및 데이터 등이 메모리 인터페이스(160)를 통해 컨트롤러(100)와 비휘발성 메모리 칩들(200) 사이에서 송수신될 수 있다.
로컬 메모리(130)는 버퍼 메모리, 캐시 메모리, 또는 동작 메모리로 사용되는 RAM(random access memory)을 포함할 수 있다. 예를 들어, 컨트롤러(100)는 호스트 장치로부터 수신되는 데이터(DATA)를 RAM에 저장하고, 그리고 RAM에 저장된 데이터(DATA)를 비휘발성 메모리 칩들(200)에 기입할 수 있다. 컨트롤러(100)는 비휘발성 메모리 칩들(200)로부터 독출한 데이터(DATA)를 RAM에 저장하고, RAM에 저장된 데이터(DATA)를 호스트 장치로 출력할 수 있다.
컨트롤러(100)는 비휘발성 메모리 칩들(200)을 관리하기 위해 필요한 데이터 또는 코드를 RAM에 저장할 수 있다. 예를 들어, 컨트롤러(100)는 비휘발성 메모리 칩들(200)을 관리하기 위해 필요한 데이터 또는 코드를 비휘발성 메모리 칩들(200)로부터 읽고, RAM에 로딩하여 구동할 수 있다. RAM은 DRAM (Dynamic RAM), SRAM (Static RAM), SDRAM (Synchronous DRAM), PRAM (Phase-change RAM), MRAM(Magnetic RAM), RRAM (Resistive RAM), FeRAM (Ferroelectric RAM) 등과 같은 다양한 랜덤 액세스 메모리들 중 적어도 하나를 포함할 수 있다.
도 3은 본 개시의 예시적 실시예에 따른 메모리 시스템을 나타내는 블록도이다. 도 4는 본 개시의 예시적 실시예에 따른 메모리 시스템의 동작 방법을 설명하기 위한 순서도이다.
도 3을 참조하면, 컨트롤러(100)는 HCPU(110) 및 FCPU(120)를 포함할 수 있다. FCPU(120)는 제1 내지 제k FCPU(120_1~120_3)로 구성될 수 있다. 제1 내지 제k FCPU(120_1~120_3) 각각은 제1 채널 및 제2 채널(CH_A, CH_B, CH_C, CH_D, CH_E, CH_F)을 통해 비휘발성 메모리 칩들과 연결될 수 있다. 예를 들면, 제1 FCPU(120_1)는 제1 채널 및 제2 채널(CH_A, CH_B)을 통해 비휘발성 메모리 칩들과 연결될 수 있다.
각각의 제1 채널 및 제2 채널(CH_A, CH_B, CH_C, CH_D, CH_E, CH_F)에는 각각 m개의 비휘발성 메모리 칩들(200a_1~200a_4, 200b_1~200b_4, 200c_1~200c_4, 200d_1~200d_4)이 전기적으로 연결될 수 있다. 이 때, k 및 m은 4이상의 자연수일 수 있다. 본 도면에는, 제1 내지 제k FCPU(120_1~120_3) 각각에 2개의 채널이 연결된 것으로 도시되었으나, 이에 한정되는 것은 아니며, 3이상의 채널들이 제1 내지 제k FCPU(120_1~120_3) 각각에 연결될 수 있다.
각각의 제1 채널 및 제2 채널(CH_A, CH_B, CH_C, CH_D, CH_E, CH_F)은 각각에 대응되는 비휘발성 메모리 칩들(200a_1~200a_4, 200b_1~200b_4, 200c_1~200c_4, 200d_1~200d_4)로 커맨드, 물리적 어드레스 및 데이터를 송수신할 수 있는 독립적인 버스를 의미할 수 있다. 따라서, 서로 다른 채널에 접속된 비휘발성 메모리 칩들(200a_1~200a_4, 200b_1~200b_4, 200c_1~200c_4, 200d_1~200d_4)은 각각 독립적으로 동작할 수 있다.
도 3 및 도 4를 참조하면, 컨트롤러(100)는 제1 데이터에 대한 기입 요청(Req_p)에 따라, 제1 메모리 칩 및 제2 메모리 칩에 제1 데이터를 기입(S110)할 수 있다. 컨트롤러(100)는 호스트로부터 기입 요청(Req_p), 제1 데이터 및 제1 논리적 어드레스를 수신할 수 있다. HCPU(110)는 호스트로부터의 기입 요청(Req_p)을 처리하여 내부 기입 커맨드(CMD_p)를 생성할 수 있다. HCPU(110)로부터 수신된 내부 기입 커맨드(CMD_p)에 기초하여, FCPU(120)는 제1 데이터를 서로 다른 제1 메모리 칩 및 제2 메모리 칩에 기입할 수 있다.
FCPU(120)는 제1 데이터의 중요도 정보에 기초하여, 하나의 메모리 칩에 기입할 것인지, 또는 복수의 메모리 칩들에 기입할 것인지를 결정할 수 있다. 나아가, 복수의 메모리 칩들에 데이터를 기입하는 경우에는, 데이터가 기입되는 복수의 메모리 칩들의 수 및 기입하는 방식을 결정할 수 있다.
일 실시예에서, 제1 데이터의 중요도 정보는 제1 데이터에 대한 기입 요청(Req_p)에 포함되어, 호스트로부터 수신될 수 있고, 또는 별도의 커맨드로써 호스트로부터 수신될 수 있다. 다른 일 실시예에서는, 제1 데이터에 대한 독출 요청(Req_r)의 횟수에 기초하여, 제1 데이터의 중요도 정보가 메모리 시스템 내부에서 생성될 수 있다. 기입할 데이터의 중요도에 기초하여, 데이터를 기입하는 동작에 대해서는 도 15에서 후술하겠다.
일 실시예에서, HCPU(110)는 내부 기입 커맨드(CMD_p)를 제1 내지 제k FCPU(120_1~120_3) 중 하나의 제1 FCPU(120_1)에 전송할 수 있다. 제1 FCPU(120_1)는 HCPU(110)로부터 내부 기입 커맨드(CMD_p)를 수신하고, 제1 논리적 어드레스를 대응되는 제1 물리적 어드레스 및 제2 물리적 어드레스로 변환할 수 있다. 제1 FCPU(120_1)는 제1 물리적 어드레스 및 제2 물리적 어드레스에 각각 대응되는 제1 메모리 칩 및 제2 메모리 칩에 제1 데이터를 기입할 수 있다. 이 때, 제1 메모리 칩 및 제2 메모리 칩은 동일한 채널(CH_A)에 연결된 것(예를 들어, 200a_1 및 200a_2)일 수 있고, 또는, 제1 메모리 칩 및 제2 메모리 칩은 서로 다른 채널(예를 들어, CH_A 및 CH_B)에 연결된 것(예를 들어, 200a_1 및 200b_1)일 수도 있다. 제1 메모리 칩 및 제2 메모리 칩이 동일한 채널(CH_A)에 연결되는 경우에 대해서는 도 6에서 후술하고, 제1 메모리 칩 및 제2 메모리 칩이 서로 다른 채널(CH_A 및 CH_B)에 연결되는 경우에 대해서는 도 11에서 후술하겠다.
다른 일 실시예에서, HCPU(110)는 내부 기입 커맨드(CMD_p)를 제1 내지 제k FCPU(120_1~120_3) 중 2개 이상의 FCPU들에 전송할 수 있다. 예를 들어, HCPU(110)는 내부 기입 커맨드(CMD_p)를 제1 FCPU(120_1) 및 제2 FCPU(120_2)에 전송할 수 있다. 제1 FCPU(120_1)는 HCPU(110)로부터 내부 기입 커맨드(CMD_p)를 수신하고, 제1 논리적 어드레스를 대응되는 제1 물리적 어드레스로 변환할 수 있다. 제1 FCPU(120_1)는 제1 물리적 어드레스에 대응되는 제1 메모리 칩(예를 들어, 200a_1)에 제1 데이터를 기입할 수 있다. 제2 FCPU(120_2)는 HCPU(110)로부터 내부 기입 커맨드(CMD_p)를 수신하고, 제1 논리적 어드레스를 대응되는 제2 물리적 어드레스로 변환할 수 있다. 제2 FCPU(120_2)는 제2 물리적 어드레스에 대응되는 제2 메모리 칩(예를 들어, 200c_1 또는 200d_1)에 제1 데이터를 기입할 수 있다. 서로 다른 FCPU에 의해 제어되는 메모리 칩들에 동일한 제1 데이터가 저장되는 경우에 대해서는 도 12에서 후술하겠다.
본 도면에서는, 서로 다른 2개의 메모리 칩에 동일한 데이터인 제1 데이터를 기입하는 경우에 대해서만 설명하였으나, 본 개시는 이에 한정되지 않으며, 서로 다른 3개이상의 메모리 칩에 동일한 데이터를 기입할 수도 있다.
컨트롤러(100)는 제1 데이터에 대한 독출 요청(Req_r)에 따라, 제1 메모리 칩 및 제2 메모리 칩에서 제1 데이터와 상이한 데이터에 대한 동작을 수행하는지 확인(S120)할 수 있다. 컨트롤러(100)는 호스트로부터 제1 데이터에 대한 독출 요청(Req_r)을 수신할 수 있다. HCPU(110)는 호스트로부터의 독출 요청(Req_r)을 처리하여 내부 독출 커맨드(CMD_r)를 생성하고, 제1 메모리 칩 및 제2 메모리 칩에 대한 동작을 수행하는 FCPU(120)에 내부 독출 커맨드(CMD_r)를 전송할 수 있다. FCPU(120)는 내부 독출 커맨드(CMD_r)를 수신하고, 제1 메모리 칩 및 제2 메모리 칩에서 제1 데이터와 상이한 데이터에 대한 동작을 수행하는지 확인할 수 있다.
FCPU(120)는 제1 메모리 칩에서 제1 데이터와 상이한 데이터에 대한 동작을 수행 중인 경우에, 제2 메모리 칩으로부터 제1 데이터를 독출할 수 있다(S130). 상기 확인하는 단계(S120) 및 상기 제1 데이터 독출 단계(S130)에 대해서는 도 5에서 상술하겠다.
제1 데이터가 제1 메모리 칩에만 저장되고, 제1 메모리 칩이 제1 데이터와 상이한 데이터에 대한 동작 중인 경우에는, 제1 메모리 칩에서 제1 데이터를 독출하기 위해서 동작이 종료될 때까지 대기하여야 한다. 따라서, 제1 데이터를 제1 메모리 칩으로부터 독출하는 데에 걸리는 시간이 증가될 수 있다. 특히, 데이터의 독출 동작에 비해 기입 동작 및 소거 동작에 걸리는 시간이 상대적으로 길 수 있으므로, 제1 메모리 칩에서 제1 데이터와 상이한 데이터에 대한 기입 동작 또는 소거 동작을 수행 중인 경우에는, 제1 메모리 칩에서 제1 데이터를 독출하는 데에 걸리는 시간이 상대적으로 길어질 수 있다.
본 개시의 예시적 실시예에 따른 메모리 시스템은 동일한 제1 데이터를 서로 다른 메모리 칩인 제1 메모리 칩 및 제2 메모리 칩에 기입하여, 독출 동작을 수행할 때, 제1 메모리 칩 및 제2 메모리 칩 중 하나의 메모리 칩에서 선택적으로 제1 데이터를 독출할 수 있다. 따라서, 제1 메모리 칩에서 제1 데이터와 상이한 데이터에 대한 동작을 수행 중이라 하더라도, 제2 메모리 칩으로부터 제1 데이터를 독출할 수 있으므로, 제1 데이터를 독출하는 데에 걸리는 시간이 감소될 수 있다.
도 5는 도 3의 S120단계 및 S130단계의 예시적 실시예를 설명하기 위한 순서도이다.
도 5를 참조하면, 호스트로부터 제1 데이터에 대한 독출 요청에 따라, 컨트롤러가 제1 메모리 칩 및 제2 메모리 칩에서 제1 데이터와 상이한 데이터에 대한 동작을 수행하는지 확인하는 단계(S120)는, 제1 메모리 칩에서 제1 데이터와 상이한 데이터에 대한 소거, 또는 기입 동작을 수행 중인지 확인하는 단계(S121) 및 제2 메모리 칩에서 제1 데이터와 상이한 데이터에 대한 소거, 또는 기입 동작을 수행 중인지 확인하는 단계(S123)를 포함할 수 있다. 일 실시예에서, 제1 메모리 칩 및 제2 메모리 칩에서 제1 데이터와 상이한 데이터에 대한 동작을 수행 중인 경우에는 비지 플래그가 생성될 수 있고, 비지 플래그는 로컬 메모리(예를 들어, 도 2의 130)에 일시적으로 저장될 수 있다. 컨트롤러는, 로컬 메모리에 저장된 비지 플래그에 기초하여, 제1 메모리 칩에서 제1 데이터와 상이한 데이터에 대한 동작이 수행 중임을 확인할 수 있다.
제1 메모리 칩에서 제1 데이터와 상이한 데이터에 대한 소거 또는 기입 동작을 수행 중이 아닌 경우에는, 컨트롤러는 제1 메모리 칩으로부터 제1 데이터를 독출(S140)할 수 있다. 예를 들어, 제1 메모리 칩에서 제1 데이터와 상이한 데이터에 대한 어떠한 동작도 수행하지 않는 경우라면, 컨트롤러는 곧바로 제1 메모리 칩으로부터 제1 데이터를 독출할 수 있다. 다른 예를 들어, 제1 메모리 칩에서 제1 데이터와 상이한 데이터에 대한 독출 동작을 수행 중인 경우는, 독출 동작이 종료된 후에, 컨트롤러는 제1 메모리 칩에서 제1 데이터를 독출할 수 있다.
제1 메모리 칩에서 제1 데이터와 상이한 데이터에 대한 소거, 또는 기입 동작을 수행 중인 경우에는, 제2 메모리 칩에서 제1 데이터와 상이한 데이터에 대한 소거 또는 기입 동작을 수행 중인지 확인(S123)할 수 있다. 제2 메모리 칩에서 제1 데이터와 상이한 데이터에 대한 소거 또는 기입 동작을 수행 중이 아닌 경우에는, 컨트롤러는 제2 메모리 칩으로부터 제1 데이터를 독출(S130)할 수 있다. 예를 들어, 제2 메모리 칩에서 제1 데이터와 상이한 데이터에 대한 어떠한 동작도 수행하지 않는 경우라면, 컨트롤러는 곧바로 제2 메모리 칩으로부터 제1 데이터를 독출할 수 있다. 다른 예를 들어, 제2 메모리 칩에서 제1 데이터와 상이한 데이터에 대한 독출 동작을 수행 중인 경우는, 독출 동작이 종료된 후에, 컨트롤러는 제2 메모리 칩에서 제1 데이터를 독출할 수 있다.
제2 메모리 칩에서 제1 데이터와 상이한 데이터에 대한 소거, 또는 기입 동작을 수행 중인 경우에는, 제1 메모리 칩에서 제1 데이터와 상이한 데이터에 대한 소거 또는 기입 동작을 수행 중인지 확인(S121)할 수 있다.
도 5에서는, S121단계 이후에 S123단계가 수행되는 것으로 도시되었으나, 본 개시는 이에 한정되지 않으며, S123 단계 이후에 S121 단계가 수행될 수도 있고, 또는, S121단계 및 S123단계가 동시에 수행될 수도 있다.
본 개시의 예시적 실시예에 따른 메모리 시스템은 동일한 제1 데이터가 서로 다른 메모리 칩인 제1 메모리 칩 및 제2 메모리 칩에 기입된 후, 제1 메모리 칩 및 제2 메모리 칩 중에서 제1 데이터와 상이한 데이터에 대한 소거 또는 기입 동작을 수행하지 않는 메모리 칩에서 선택적으로 제1 데이터를 독출할 수 있다. 따라서, 제1 데이터를 독출하는 데에 걸리는 시간이 감소될 수 있다.
도 6은 본 개시의 예시적 실시예에 따른 메모리 시스템을 나타내는 블록도이다. 도 7은 본 개시의 예시적 실시예에 따른 메모리 시스템에서 하나의 페어 칩을 이루는 제1 메모리 칩 및 제2 메모리 칩을 설명하기 위한 블록도이다. 도 6 및 도 7은 동일한 채널(CH_A)에 연결되는 복수의 메모리 칩들에 동일한 데이터가 저장되는 것을 설명하기 위한 블록도로써, 도 4의 S110단계를 설명하기 위한 도면이다.
도 6을 참조하면, 제1 데이터에 대한 기입 요청(Req_p)에 따라, HCPU(110)는 내부 기입 커맨드(CMD_p)를 제1 FCPU(120_1)에 전송할 수 있다. 제1 FCPU(120_1)는 제1 채널(CH_A)에 연결되는 제1 메모리 칩(200a_1) 및 제2 메모리 칩(200a_2)에 제1 데이터를 기입할 수 있다.
도 6 및 도 7을 참조하면, 제1 채널(CH_A)에 연결되는 m개의 메모리 칩들(200a_1, 200a_2, 200a_3, 200a_4)은 각각 복수의 셀 블록들(BLK1~BLKa)을 포함할 수 있고, 복수의 셀 블록들(BLK1~BLKb) 각각은 복수의 페이지들(Page1~Pageb)을 포함할 수 있다. 이 때, a 및 b는 2이상의 자연수일 수 있다. 일 실시예에서, m은 짝수 일 수 있으나, 이에 한정되는 것은 아니다. 복수의 셀 블록들(BLK1~BLKa) 각각은 데이터의 소거 단위에 해당할 수 있고, 복수의 페이지들(Page1~Pageb) 각각은 하나의 셀 블록에서 데이터의 기입 또는, 독출 단위에 해당할 수 있다.
컨트롤러가 호스트로부터 기입 요청(Req_p), 데이터 및 논리적 어드레스를 수신하면, 상기 데이터는 컨트롤러(100)의 버퍼에 저장된 후, 페이지 어레이 스트라이프(PAstripe) 단위로 복수의 메모리 칩들(200a_1, 200a_2, 200a_3, 200a_4)에 기입될 수 있다.
메모리 칩들(200a_1, 200a_2, 200a_3, 200a_4) 각각에서 동일한 위치에 있는 페이지들(예를 들어, 동일한 물리적 어드레스를 가지는 페이지들)은 하나의 페이지 그룹을 형성할 수 있고, 이 때, 페이지 어레이 스트라이프(PAstripe)는 하나의 페이지 그룹에 저장되는 데이터를 의미할 수 있다. 예를 들어, 메모리 칩들(200a_1, 200a_2, 200a_3, 200a_4) 각각의 제1 셀 블록들(BLK1)에 포함되는 제1 페이지들(Page1)은 하나의 페이지 그룹을 형성하고, 페이지 어레이 스트라이트(PAstripe) 단위로 데이터가 상기 제1 페이지들(Page1)이 포함된 하나의 페이지 그룹에 저장될 수 있다.
또한, 컨트롤러(100)가 호스트로부터 독출 요청(Req_r)을 수신하면, 페이지 어레이 스트라이프(PAstripe) 단위로 복수의 메모리 칩들(200a_1, 200a_2, 200a_3, 200a_4)로부터 데이터가 독출될 수 있다. 예를 들어, 메모리 칩들(200a_1, 200a_2, 200a_3, 200a_4) 각각의 제1 셀 블록들(BLK1)에 포함되는 제1 페이지들(Page1)에 저장된 데이터가 함께 독출될 수 있다.
메모리 칩들(200a_1, 200a_2, 200a_3, 200a_4) 각각에서 동일한 위치에 있는 셀 블록들(예를 들어, 동일한 물리적 어드레스를 가지는 셀 블록들)은 하나의 블록 그룹을 형성할 수 있고, 이 때, 블록 어레이 스트라이프(BAstripe)는 하나의 블록 그룹에 저장되는 데이터를 의미할 수 있다. 예를 들어, 메모리 칩들(200a_1, 200a_2, 200a_3, 200a_4) 각각의 제1 셀 블록들(BLK1)들은 하나의 블록 그룹을 형성하고, 컨트롤러(100)가 호스트로부터 소거 요청을 수신하면 블록 어레이 스트라이프(BAstripe) 단위로 데이터가 소거될 수 있다.
일 실시예에서, 제1 데이터(DATA1)는 제1 메모리 칩(200a_1) 및 제2 메모리 칩(200a_2)의 동일 위치에 있는 제1 페이지들(Page1)에 기입될 수 있다. 따라서, 제1 메모리 칩(200a_1) 및 제2 메모리 칩(200a_2) 내부에서, 제1 데이터(DATA1)가 저장되는 위치의 물리적 어드레스는 동일할 수 있다.
컨트롤러(100)로 호스트로부터 제1 데이터에 대한 기입 요청(Req_p)이 수신되면, 제1 데이터(DATA1)를 포함하고 페이지 어레이 스트라이프(PAstripe)를 형성하는 데이터가 컨트롤러(100)의 버퍼에 저장이 된다. 제1 FCPU(120_1)는 버퍼에 저장된 페이지 어레이 스트라이프(PAstripe)를 메모리 칩들(200a_1, 200a_2, 200a_3, 200a_4)의 페이지들에 기입할 수 있다.
이 때, 제1 FCPU(120_1)는 제1 채널(CH_A)에 연결된 순서에 기초하여, 홀수 번째 연결된 메모리 칩들(예를 들어, 200a_1, 200a_3)에 우선적으로 데이터를 저장하고, 이후에, 짝수 번째 연결된 메모리 칩들(예를 들어, 200a_2, 200a_4)에 데이터를 저장할 수 있다. 다만, 이에 한정되는 것은 아니며, 짝수 번째 연결된 메모리 칩들(200a_2, 200a_4)에 데이터를 저장한 후에, 홀수 번째 연결된 메모리 칩들(예를 들어, 200a_1, 200a_3)에 데이터를 저장할 수도 있다.
일 실시예에서, 제1 채널(CH_A)에 순차적으로 연결되는 제1 메모리 칩(200a_1) 및 제2 메모리 칩(200a_2)은 하나의 페어 칩(PC)을 구성할 수 있고, 제1 메모리 칩(200a_1)은 제1 채널(CH_A)에 홀수 번째 연결된 메모리 칩이고, 제2 메모리 칩(200a_2)은 짝수 번째 연결된 메모리 칩일 수 있다. 따라서, 제1 메모리 칩(200a_1) 및 제2 메모리 칩(200a_2)에 데이터가 저장될 때, 동시에 저장되지 않고, 순차적으로 저장될 수 있다. 제1 메모리 칩(200a_1) 및 제2 메모리 칩(200a_2)에 동일한 제1 데이터(DATA1)가 기입된 후에, 제1 메모리 칩(200a_1)이 제1 데이터와 상이한 데이터에 대해 기입 동작 중인 경우에는, 제2 메모리 칩(200a_2)은 기입 동작을 수행하지 않으므로, 제1 데이터(DATA1)에 대한 독출 동작을 수행할 수 있다.
일 실시예에서, 제1 메모리 칩(200a_1) 및 제2 메모리 칩(200a_2)의 동일 위치에 있는 제1 페이지들(Page1)에 각각 제1 데이터(DATA1)가 기입된 경우, 제1 데이터(DATA1)에 대한 소거 동작 시에, 블록 어레이 스트라이프(BAstripe) 단위로 소거 되므로, 제1 메모리 칩(200a_1) 및 제2 메모리 칩(200a_2)에 저장된 제1 데이터(DATA1)가 동시에 소거될 수 있다.
다만, 본 개시의 일 실시예에 따른 메모리 시스템은 동일한 채널(CH_A)에 순차적으로 연결되는 제1 메모리 칩(200a_1) 및 제2 메모리 칩(200a_2) 각각의 동일한 물리적 어드레스를 갖는 페이지에 동일한 데이터를 기입하는 것에 한정되는 것은 아니다. 동일한 채널(CH_A)에 순차적으로 연결되는 제1 메모리 칩(200a_1) 및 제2 메모리 칩(200a_2)에 동일한 데이터가 저장되나, 서로 다른 물리적 어드레스를 갖는 페이지에 저장될 수도 있고, 동일한 채널(CH_A)에 순차적으로 연결되지 않는 복수의 메모리 칩들에 동일한 데이터가 저장될 수도 있다.
도 8은 본 개시의 예시적 실시예에 따른 메모리 시스템의 동작 방법을 설명하기 위한 순서도로써, 도 4의 S110단계 및 S130단계를 설명하기 위한 순서도이다. 도 9는 본 개시의 예시적 실시예에 따른 메모리 시스템에서 데이터가 저장된 페이지의 논리적 어드레스 및 물리적 어드레스의 대응 관계를 나타내는 매핑 테이블이다. 도 9에서는 예시적으로 논리적 페이지 넘버(logical page number, LPN)와 물리적 페이지 넘버(physical page number, PPN) 사이의 맵핑 관계가 도시되었다.
도 6, 도 8 및 도 9를 참조하면, 컨트롤러(100)는 호스트로부터 수신된 제1 논리적 어드레스 및, 제1 메모리 칩에 대응되는 제1 물리적 어드레스를 매핑 테이블(140)에 저장(S115)할 수 있다. 내부 기입 커맨드(CMD_p)를 수신한 제1 FCPU(120_1)는 제1 논리적 어드레스를 대응되는 제1 물리적 어드레스 및 제2 물리적 어드레스로 변환할 수 있고, 제1 FCPU(120_1)는 제1 물리적 어드레스에 대응되는 제1 메모리 칩(200a_1) 및 제2 물리적 어드레스에 대응되는 제2 메모리 칩(200a_2)에 제1 데이터를 기입할 수 있다. 이 때, 제1 FCPU(120_1)는 제1 논리적 어드레스, 및 제1 메모리 칩(200a_1)에 대응되는 제1 물리적 어드레스를 매핑 테이블(140)에 저장할 수 있다.
매핑 테이블(140)에는 비휘발성 메모리 칩들(200) 내에서 데이터의 저장 위치를 나타내는 매핑 정보가 저장될 수 있다. 예를 들어, 매핑 테이블(140)에는 데이터가 기입된 페이지들을 지시하기 위한 논리적 어드레스(Page_ADD_L1~Page_ADD_Lb)가 데이터가 기입된 페이지들의 물리적 위치를 나타내는 물리적 어드레스(Page_ADD_P1~Page_ADD_Pb)에 1:1로 맵핑될 수 있다.
이 때, 동일한 데이터(예를 들어, 제1 데이터)가 서로 다른 메모리 칩들(예를 들어, 제1 메모리 칩(200a_1) 및 제2 메모리 칩(200a_2))에 기입되는 경우에, 제1 데이터가 저장되는 제1 메모리 칩(200a_1)의 페이지에 대응되는 제1 물리적 어드레스는 매핑 테이블(140)에 저장되나, 제1 데이터가 저장되는 제2 메모리 칩(200a_2)의 페이지에 대응되는 제2 물리적 어드레스는 매핑 테이블(140)에 함께 저장되지 않을 수 있다. 다만, 서로 다른 메모리 칩에 동일한 데이터가 저장되는 경우에는, 상기 데이터가 저장된 메모리 칩들의 수에 대한 정보가 매핑 테이블(140)에 추가로 저장될 수 있고, 제1 물리적 어드레스에 기초하여, 제2 물리적 어드레스를 도출할 수 있는 연산 정보가 로컬 메모리(예를 들어, 도 2의 130)에 저장될 수 있다.
예를 들어, 도 7에서와 같이, 서로 다른 메모리 칩에 각각 기입되는 제1 데이터(DATA1)는 제1 메모리 칩(200a_1)에 포함된 제1 셀 블록(BLK1)의 제1 페이지(Page1)에 기입되고, 제2 메모리 칩(200a_2)에 포함된 제1 셀 블록(BLK1)의 제1 페이지(Page1)에 기입될 수 있다. 매핑 테이블(140)에는, 제1 데이터(DATA1)가 기입된 페이지를 지시하기 위한 제1 논리적 어드레스(예를 들어, PAGE_ADD_L1)와 제1 메모리 칩(200a_1)에 포함된 제1 셀 블록(BLK1)의 제1 페이지(Page1)에 대응되는 제1 물리적 어드레스(예를 들어, PAGE_ADD_P1)가 저장되고, 추가로, 매핑 테이블(140)에는 제1 데이터(DATA1)가 제1 메모리 칩(200a_1) 및 제2 메모리 칩(200a_2), 총 2개의 메모리 칩들에 저장되었다는 정보가 저장될 수 있다. 제1 데이터(DATA1)는 제1 메모리 칩(200a_1) 및 제2 메모리 칩(200a_2) 내에서 동일한 물리적 위치에 기입되므로, 별도로 제2 메모리 칩(200a_2)에 포함된 제1 셀 블록(BLK1)의 제1 페이지(Page1)에 대한 제2 물리적 어드레스를 저장하지 않아도, 제1 FCPU(120_1)는 제1 물리적 어드레스(PAGE_ADD_P1)로부터 제2 물리적 어드레스를 도출할 수 있다.
컨트롤러(100)는 제1 데이터(DATA1)에 대한 독출 요청에 따라, 제1 데이터 및 제2 메모리 칩에서 제1 데이터와 상이한 데이터에 대한 동작을 수행하는지 확인(S120) 할 수 있다. HCPU(110)는 호스트로부터 제1 데이터(DATA1)에 대한 독출 요청(Req_r)을 수신하면, HCPU(110)는 내부 독출 커맨드(CMD_r)를 제1 FCPU(120_1)로 전송할 수 있다.
컨트롤러(100)는 매핑 테이블(140)의 제1 물리적 어드레스(PAGE_ADD_P1)에 기초하여, 제2 메모리 칩(200a_2)으로부터 제1 데이터(DATA1)를 독출(S135)할 수 있다. 일 실시예에서, 제1 메모리 칩(200a_1)에서 제1 데이터와 상이한 데이터에 대한 동작을 수행 중인 경우에는, 제1 FCPU(120_1)는 매핑 테이블(140)의 제1 물리적 어드레스(PAGE_ADD_P1)에 기초하여, 제2 물리적 어드레스를 구하고, 제2 물리적 어드레스에 대응되는 제2 메모리 칩(200a_2)으로부터 제1 데이터(DATA1)를 독출(S135)할 수 있다.
다만, 본 개시의 예시적 실시예에 따른 메모리 시스템은, 동일한 제1 데이터가 제1 메모리 칩(200a_1) 및 제2 메모리 칩(200a_2)에 각각 기입되는 경우에, 제2 메모리 칩(200a_2)에 대응되는 제2 물리적 어드레스도 매핑 테이블(140)에 함께 저장될 수도 있다.
도 10은 본 개시의 예시적 실시예에 메모리 시스템에서 데이터가 저장된 페이지의 논리적 어드레스 및 물리적 어드레스의 대응 관계를 나타내는 매핑 테이블을 설명하기 위한 도면이다. 도 10은 도 9와 달리, 동일한 데이터가 복수의 메모리 칩들에 기입되는 경우에, 별도의 매핑 테이블에 논리적 어드레스와 물리적 어드레스 사이의 맵핑 관계가 저장되는 것을 설명하기 위한 도면이다.
도 10을 참조하면, 데이터가 하나의 메모리 칩에 기입되거나, 데이터가 복수의 메모리 칩들에 기입되는 것과 무관하게, 제1 매핑 테이블(140_1)에서는 데이터가 기입된 페이지들을 지시하기 위한 논리적 어드레스(Page_ADD_L1~Page_ADD_Lb)가 데이터가 기입된 페이지들의 물리적 위치를 나타내는 물리적 어드레스(Page_ADD_P1~Page_ADD_PD)에 1:1로 맵핑될 수 있다.
제2 매핑 테이블(140_2)에는 별도로 복수의 메모리 칩들에 동일한 데이터가 기입된 경우에, 데이터가 기입된 페이지들을 지시하기 위한 논리적 어드레스(Page_ADD_L1, Page_ADD_Lb)가 데이터가 기입된 페이지들의 물리적 위치를 나타내는 제1 물리적 어드레스(Page_ADD_P1, Page_ADD_Pb)에 1:1로 맵핑될 수 있다. 상기 데이터가 저장된 메모리 칩들의 수에 대한 정보가 제2 매핑 테이블(140_2)에 추가로 저장될 수 있다. 제1 물리적 어드레스(Page_ADD_P1, Page_ADD_Pb)에 기초하여, 제1 물리적 어드레스(Page_ADD_P1, Page_ADD_Pb)에 각각 대응되는 제1 메모리 칩들을 제외한 다른 제2 메모리 칩에 대응되는 제2 물리적 어드레스를 도출할 수 있는 연산 정보가 로컬 메모리(예를 들어, 도 2의 130)에 저장될 수 있다. 상기 연산 정보를 이용하여, FCPU(예를 들어, 도 3의 120)은 제1 물리적 어드레스(Page_ADD_P1, Page_ADD_Pb)로부터, 제2 물리적 어드레스를 연산할 수 있고, 제2 물리적 어드레스에 대응되는 제2 메모리 칩으로부터 데이터를 독출할 수 있다.
도 11은 본 개시의 다른 예시적 실시예에 따른 메모리 시스템을 나타내는 블록도이다. 도 11은 동일한 제1 FCPU(120_1)에 의해 동작이 제어되는 복수의 메모리 칩들에 동일한 데이터가 저장되는 것을 설명하기 위한 블록도로써, 도 4의 S110단계를 설명하기 위한 도면이다.
도 11을 참조하면, 제1 데이터에 대한 기입 요청(Req_p)에 따라, HCPU(110)는 내부 기입 커맨드(CMD_p)를 제1 FCPU(120_1)에 전송할 수 있다. 제1 FCPU(120_1)는 제1 채널(CH_A)에 연결되는 제1 메모리 칩(200a_1) 및 제2 채널(CH_B)에 연결되는 제2 메모리 칩(200b_1)에 각각 제1 데이터를 기입할 수 있다.
제1 FCPU(120_1)는 제1 논리적 어드레스를 대응되는 제1 물리적 어드레스 및 제2 물리적 어드레스로 변환할 수 있고, 제1 FCPU(120_1)는 제1 물리적 어드레스에 대응되는 제1 메모리 칩(200a_1) 및 제2 물리적 어드레스에 대응되는 제2 메모리 칩(200b_1)에 제1 데이터를 기입할 수 있다. 제1 FCPU(120_1)는 제1 논리적 어드레스 및, 제1 메모리 칩(200a_1)에 대응되는 제1 물리적 어드레스를 매핑 테이블에 저장할 수 있다. 매핑 테이블은 도 9의 매핑 테이블(140)일 수도 있고, 도 10의 제1 매핑 테이블(140_1) 및 제2 매핑 테이블(140_2)일 수도 있다. 제1 물리적 어드레스와 제2 물리적 어드레스 간의 관계 정보가 로컬 메모리(예를 들어, 도 1의 130)에 저장될 수 있고, 이를 이용하여, FCPU(120)는 제1 물리적 어드레스로부터 제2 물리적 어드레스를 계산할 수 있다. 일 실시예에서, 제1 데이터는, 제1 FCPU(120_1)와 연결되는 제1 채널(CH_A) 및 제2 채널(CH_B)을 기준으로, 서로 동일한 물리적 어드레스를 가지는 제1 메모리 칩(200a_1) 및 제2 메모리 칩(200b_1)에 기입될 수 있으나, 이에 한정되는 것은 아니다.
따라서, 제1 FCPU(120_1)는 제1 데이터와 상이한 데이터에 대한 동작을 제1 메모리 칩(200a_1) 및 제2 메모리 칩(200b_1)이 수행 중인지 확인한 후에, 제1 물리적 어드레스를 이용하여 제1 메모리 칩(200a_1)으로부터 제1 데이터를 독출하거나, 제1 물리적 어드레스를 기초로 제2 논리적 어드레스를 도출하여, 제1 데이터를 제2 메모리 칩(200b_1)으로부터 독출할 수 있다.
도 12는 본 개시의 다른 예시적 실시예에 따른 메모리 시스템을 나타내는 블록도이다. 도 12은 서로 다른 FCPU(120_1)에 의해 동작이 제어되는 복수의 메모리 칩들에 동일한 데이터가 저장되는 것을 설명하기 위한 블록도로써, 도 4의 S110단계를 설명하기 위한 도면이다.
도 12를 참조하면, 제1 데이터에 대한 기입 요청(Req_p)에 따라, HCPU(110)는 내부 기입 커맨드(CMD_p)를 서로 다른 FCPU인 제1 FCPU(120_1) 및 제2 FCPU(120_2)에 각각 전송할 수 있다. 제1 FCPU(120_1)는 제1 메모리 칩(200a_1)에 제1 데이터를 기입하고, 제2 FCPU(120_2)는 제2 메모리 칩(200c_1)에 각각 제1 데이터를 기입할 수 있다.
제1 FCPU(120_1)는 제1 논리적 어드레스를 대응되는 제1 물리적 어드레스로 변환할 수 있고, 제2 FCPU(120_2)는 제1 논리적 어드레스를 대응되는 제2 물리적 어드레스로 변환할 수 있다. 제1 FCPU(120_1)는 제1 물리적 어드레스에 대응되는 제1 메모리 칩(200a_1)에 제1 데이터를 기입할 수 있고, 제2 FCPU(120_2)는 제2 물리적 어드레스에 대응되는 제2 메모리 칩(200c_1)에 제1 데이터를 기입할 수 있다.
제1 FCPU(120_1)는 제1 논리적 어드레스 및, 제1 메모리 칩(200a_1)에 대응되는 제1 물리적 어드레스를 매핑 테이블에 저장할 수 있고, 제2 FCPU(120_2)는 제1 논리적 어드레스 및 제2 메모리 칩(200c_1)에 대응되는 제2 물리적 어드레스를 매핑 테이블에 저장할 수 있다. 매핑 테이블에 대해서는 도 13 및 도 14에서 후술하겠다.
제1 데이터에 대한 독출 요청(Req_r)에 따라, HCPU(110)는 내부 독출 커맨드(CMD_r)를 제1 FCPU(120_1) 또는 제2 FCPU(120_2)에 전송할 수 있다. 예를 들어, HCPU(110)는 로컬 메모리에 저장된 비지 플래그에 기초하여, 제1 메모리 칩(200a_1) 및 제2 메모리 칩(200c_1)이 제1 데이터와 상이한 데이터에 대한 동작을 수행 중인지 확인할 수 있고, 제1 데이터와 상이한 데이터에 대한 기입 또는 소거 동작을 수행하지 않는 제2 메모리 칩(200c_1)에 제1 데이터를 기입하기 위하여, 제2 FCPU(120_2)에 내부 독출 커맨드(CMD_r)를 전송할 수 있다.
다른 실시예에서는, HCPU(110)는 내부 독출 커맨드(CMD_r)를 제1 FCPU(120_1) 및 제2 FCPU(120_2)에 모두 전송할 수 있고, 제1 FCPU(120_1) 및 제2 FCPU(120_2) 중에서 상대적으로 빠르게 제1 데이터를 독출할 수 있는 FCPU가 제1 데이터를 독출하도록 제1 메모리 칩(200a_1) 또는 제2 메모리 칩(200c_1)을 제어할 수 있다.
도 6, 도 11 및 도 12를 비교하면, 동일한 채널에 연결되는 복수의 메모리 칩들에 동일한 제1 데이터를 기입하는 경우(예를 들어, 도 19의 A)에서, 동일한 FCPU에 의해 제어되는 복수의 메모리 칩들에 동일한 제1 데이터를 기입하는 경우(예를 들어, 도 19의 B), 서로 다른 FCPU에 의해 제어되는 복수의 메모리 칩들에 동일한 제1 데이터를 기입하는 경우(예를 들어, 도 19의 C)로 갈수록 제1 데이터에 대한 독출 속도가 증가할 수 있다. 제1 데이터가 저장된 복수의 메모리 칩들 각각의 동작이 서로에게 미치는 영향이 적어지기 때문이다. 다만, C에서 A로 갈수록 동일한 제1 데이터가 기입되는 복수의 메모리 칩들의 동작을 컨트롤러(100)가 제어하는 것이 용이해질 수 있다.
또한, 동일한 제1 데이터가 기입되는 복수의 메모리 칩들의 수가 증가할수록 메모리 칩들 중 적어도 일부는 제1 데이터와 상이한 데이터에 대한 동작을 수행하지 않을 가능성이 높아지므로, 제1 데이터에 대한 독출 속도가 증가할 수 있다.
따라서, 제1 데이터의 중요도에 따라서, 제1 데이터가 기입되는 메모리 칩들의 수가 결정될 수 있고, 제1 데이터가 저장되는 복수의 메모리 칩들을 결정하는 방식이 달라질 수 있다. 제1 데이터의 중요도에 대해서는 도 15 등에서 후술하겠다.
도 13은 본 개시의 예시적 실시예에 따른 메모리 시스템의 동작 방법을 설명하기 위한 순서도로써, 도 4의 S110단계 및 S130단계를 설명하기 위한 순서도이다. 도 14는 본 개시의 예시적 실시예에 따른 메모리 시스템에서 데이터가 저장된 페이지의 논리적 어드레스 및 물리적 어드레스의 대응 관계를 나타내는 매핑 테이블이다.
도 12 내지 도 14를 참조하면, 컨트롤러(100)는 호스트로부터 수신된 제1 논리적 어드레스 및 제2 메모리 칩에 대응되는 제2 물리적 어드레스를 매핑 테이블(140a)에 저장(S117)할 수 있다. HCPU(110)는 호스트로부터 제1 데이터에 대한 기입 요청(Req_p) 및 제1 논리적 어드레스(예를 들어, PAGE_ADD_L1)를 수신하면, HCPU(110)는 내부 기입 커맨드(CMD_p)를 복수의 FCPU들(120) 중 복수의 FCPU들(예를 들어, 제1 FCPU(120_1) 및 제2 FCPU(120_2))에 전송할 수 있다. 제1 FCPU(120_1)는 제1 논리적 어드레스(PAGE_ADD_L1)를 제1 물리적 어드레스(예를 들어, PAGE_ADD_P1_1)로 변환할 수 있고, 매핑 테이블(140a)에 제1 논리적 어드레스(PAGE_ADD_L1), 및 제1 메모리 칩(200a_1)에 대응되는 제1 물리적 어드레스(PAGE_ADD_P1_1)를 저장할 수 있다. 제2 FCPU(120_2)는 제1 논리적 어드레스(PAGE_ADD_L1)를 제2 물리적 어드레스(PAGE_ADD_P1_2)로 변환할 수 있고, 매핑 테이블(140a)에 제1 논리적 어드레스(PAGE_ADD_L1) 및, 제2 메모리 칩(200c_1)에 대응되는 제2 물리적 어드레스(PAGE_ADD_P1_2)를 저장할 수 있다.
매핑 테이블(140a)에는 비휘발성 메모리 칩들(200) 내에서 데이터의 저장 위치를 나타내는 매핑 정보가 저장될 수 있다. 예를 들어, 데이터가 하나의 메모리 칩에 저장되는 경우에는, 논리적 어드레스(예를 들어, Page_ADD_L2, Page_ADD_L3) 및 이에 대응되는 물리적 어드레스(예를 들어, Page_ADD_P2, Page_ADD_P3)가 1:1로 매핑 테이블(140a)에 저장될 수 있다. 데이터가 복수의 메모리 칩들에 저장되는 경우에는, 논리적 어드레스(예를 들어, Page_ADD_L1, Page_ADD_Lb) 및 이에 대응되는 물리적 어드레스(예를 들어, Page_ADD_P1_1, Page_ADD_P1_2, Page_ADD_Pb1_1, Page_ADD_Pb_2, Page_ADD_Pb_3)가 1:i의 비율로 매핑 테이블(140a)에 저장될 수 있다. 이 때, i는 동일한 데이터가 저장된 복수의 메모리 칩의 수를 의미할 수 있다.
컨트롤러(100)는 호스트로부터 제1 데이터에 대한 독출 요청(Req_r)을 수신하면, 독출 요청(Req_r)에 따라, 제1 메모리 칩 및 제2 메모리 칩에서 제1 데이터와 상이한 데이터에 대한 동작을 수행하는지 확인(S120)할 수 있다.
컨트롤러(100)는 매핑 테이블(140a)의 제2 물리적 어드레스(PAGE_ADD_P1_2)에 기초하여, 제2 메모리 칩(200a_2)으로부터 제1 데이터를 독출(S137)할 수 있다. 일 실시예에서, 제1 메모리 칩(200a_1)에서 제1 데이터와 상이한 데이터에 대한 동작을 수행 중인 경우에는, 제2 FCPU(120_2)는 매핑 테이블(140a)의 제2 물리적 어드레스(PAGE_ADD_P1_2)에 대응되는 제2 메모리 칩(200a_2)으로부터 제1 데이터를 독출(S137)할 수 있다.
도 15는 본 개시의 예시적 실시예에 따른 메모리 시스템의 동작 방법을 설명하기 위한 순서도이다.
도 3 및 도 15를 참조하면, 컨트롤러(100)는 호스트로부터 기입 요청(Req_p), 제1 데이터, 제1 논리적 어드레스, 제2 데이터 및 제2 논리적 어드레스를 수신할 수 있다. HCPU(110)는 호스트로부터의 기입 요청(Req_p)을 처리하여 내부 기입 커맨드(CMD_p)를 생성할 수 있다.
FCPU(120)는 제1 데이터에 대한 제1 중요도에 기초하여, 제1 데이터를 서로 다른 복수의 메모리 칩들에 기입(S210)할 수 있고, 제2 데이터에 대한 제2 중요도에 기초하여, 제2 데이터를 하나의 메모리 칩에 기입할 수 있다(S220). 제1 중요도에 비해 제2 중요도는 낮을 수 있다. 이 때, 제1 데이터가 복수의 메모리 칩들에 기입되는 방식은, 도 6, 도 11 및 도 12에서 설명된 방식 중 적어도 하나의 방식이 적용될 수 있다.
데이터에 대한 중요도는, FCPU(120)가 데이터를 복수의 메모리 칩들에 저장할지 결정하는 기준일 수 있다. 데이터를 독출하는 데에 걸리는 시간이 감소되어야 하는 데이터일수록 데이터의 중요도가 높을 수 있다. 일 실시예에서, FCPU(120)는 중요도가 높아질수록 많은 수의 메모리 칩들에 동일한 데이터를 저장할 수 있다.
일 실시예에서, 제1 데이터의 중요도 정보는 제1 데이터에 대한 기입 요청(Req_p)에 포함되어 호스트로부터 수신될 수 있고, 또는 별도의 커맨드로써 호스트로부터 수신될 수 있다. 다른 일 실시예에서는, 제1 데이터에 대한 독출 요청(Req_r)의 횟수에 기초하여, 제1 데이터의 중요도 정보가 메모리 시스템 내부에서 생성될 수 있다.
FCPU(120)는 제1 논리적 어드레스를 제1 데이터가 저장되는 복수의 메모리 칩들에 각각 대응되는 물리적 어드레스들로 변환하고, 제1 논리적 어드레스, 및 복수의 메모리 칩들 중 적어도 하나의 메모리 칩에 대응되는 논리적 어드레스를 제1 매핑 테이블에 저장(S230)할 수 있다. 제1 매핑 테이블은 도 9의 매핑 테이블(140), 도 10의 제1 매핑 테이블(140_1) 및 제2 매핑 테이블(140_2), 및 도 14의 매핑 테이블(140a) 중 하나일 수 있다.
FCPU(120)는 제2 논리적 어드레스를, 제2 데이터가 저장되는 하나의 메모리 칩에 대응되는 물리적 어드레스로 변환하고, 제2 논리적 어드레스 및 변환된 물리적 어드레스를 제2 매핑 테이블에 저장(S240)할 수 있다.
본 도면의 제1 매핑 테이블 및 제2 매핑 테이블은 도 9의 매핑 테이블(140) 또는 도 14의 매핑 테이블(140a)과 같이 하나의 매핑 테이블로 구성될 수 있고, 또는, 도 10의 제1 매핑 테이블(140_1) 및 제2 매핑 테이블(140_2)과 같이 서로 다른 매핑 테이블로 구성될 수도 있다.
도 16은 도 15의 S210단계의 예시적 실시예를 설명하기 위한 순서도이다.
도 16을 참조하면, 컨트롤러는 외부로부터, 즉, 호스트로부터 제1 데이터에 대한 제1 중요도 및 제2 데이터에 대한 제2 중요도에 대한 정보를 수신할 수 있다. 일 실시예에서, 제1 중요도 및 제2 중요도에 대한 정보는 호스트로부터 수신되는 기입 요청(예를 들어, 도 1의 Req)에 포함되어 수신될 수 있으나, 이에 한정되는 것은 아니며, 기입 요청과 별도의 커맨드로 제1 중요도 및 제2 중요도에 대한 정보를 수신(S211)할 수 있다. 일 실시예에서, 외부로부터 수신되는 제1 중요도 및 제2 중요도에 대한 정보는, 각각에 대응되는 데이터를 기입하는 메모리 칩의 개수를 포함할 수 있으나, 이에 한정되는 것은 아니다. 다른 실시예에서는, 메모리 시스템은 중요도 테이블을 포함하고, 외부로부터 수신되는 제1 중요도 및 제2 중요도에 대한 정보, 및 중요도 테이블을 기초로, 제1 데이터 및 제2 데이터를 기입하는 메모리 칩의 개수를 결정할 수도 있다.
컨트롤러는 제1 중요도에 기초하여, 제1 데이터를 기입할 복수의 메모리 칩들의 수를 결정할 수 있다(S213). 다만, 본 개시의 예시적 실시예에 따른 메모리 시스템은 이에 한정되지 않고, 컨트롤러는 제1 중요도에 기초하여, 비휘발성 메모리 칩들 중에서, 제1 데이터가 기입되는 복수의 메모리 칩들을 선택하는 방식을 결정할 수 있다. 이에 대해 도 19에서 후술하겠다.
다만, 본 개시의 예시적 실시예에 따른 메모리 시스템은, 외부로부터 제1 중요도 및 제2 중요도에 대한 정보를 수신하는 것에 한정되지는 않는다. 예를 들어, 메모리 시스템은 반복적으로 독출 동작을 수행하는 데이터에 대한 정보를 수집할 수 있다. 메모리 시스템은 제1 데이터 및 제2 데이터에 대한 독출 요청 횟수에 기초하여, 제1 데이터의 중요도에 대한 정보 및 제2 데이터의 중요도에 대한 정보를 생성하고, 로컬 메모리에 저장할 수 있다.
또한, 본 개시의 예시적 실시예에 따른 메모리 시스템은, 제1 데이터가 이미 기입된 후에, 외부로부터 제1 중요도에 대한 정보를 수신한 경우에, 수신된 제1 중요도에 기초하여, 제1 데이터가 기입되었던 복수의 메모리 칩들 중 일부에서 제1 데이터를 소거할 수도 있다. 예를 들어, 상기 제1 데이터의 소거 동작은 가비지 컬렉션 동작과 함께 수행될 수도 있다. 또는, 본 개시의 예시적 실시예에 따른 메모리 시스템은, 제1 데이터 및 제2 데이터가 이미 기입된 후에, 외부로부터 제1 중요도에 대한 정보 및 제2 중요도에 대한 정보를 수신한 경우에는, 수신된 제1 중요도 및 제2 중요도에 기초하여, 추가로 다른 메모리 칩에 제1 데이터 및 제2 데이터를 더 기입할 수도 있다.
도 17은 도 1의 컨트롤러의 다른 예시적 실시예를 나타내는 블록도이다. 도 17에서 도 2와 중복되는 구성에 대해서는 중복 설명을 생략하겠다. 도 18a, 도 18b 및 도 19는 본 개시의 예시적 실시예에 따른 메모리 시스템의 로컬 메모리에 저장되는 중요도 테이블을 설명하기 위한 도면이다.
도 17을 참조하면, 컨트롤러(100a)는 HCPU(110), FCPU(120), 로컬 메모리(130a), 매핑 테이블(140), 호스트 인터페이스(150), 및 메모리 인터페이스(160)를 포함할 수 있다. 로컬 메모리(130a)에는 중요도 테이블(131)이 저장될 수 있고, 중요도 테이블(131)에는 비휘발성 메모리 칩들에 기입되는 데이터의 중요도에 대응되는 데이터의 기입 방식에 대한 정보가 저장될 수 있다. FCPU(120)는 중요도 테이블(131)에 기초하여 제1 데이터를 기입할 메모리 칩의 수를 결정할 수 있다. 또한, 복수의 메모리 칩들에 제1 데이터를 기입할 경우에는, FCPU(120)는 중요도 테이블(131)에 기초하여 제1 데이터가 기입될 복수의 메모리 칩들을 선택할 수 있다.
도 17 및 도 18a를 참조하면, 중요도 테이블(131a)은 데이터의 중요도(DATA_I) 및 데이터를 기입할 서로 다른 메모리 칩들의 수가 저장될 수 있다. 예를 들어, 중요도(DATA_I)는 0부터 3까지 총 4가지의 값을 가질 수 있고, 0에서 3으로 갈수록 대응되는 데이터가 중요함을 의미할 수 있다. 따라서, 중요도(DATA_I)가 높아질수록, 데이터를 독출할 때, 독출 동작이 신속하게 이뤄져야 함을 의미할 수 있다. 다만, 이는 설명을 위한 것으로 본 개시에 따른 메모리 시스템은 이에 한정되는 것은 아니다.
기입될 데이터가 중요도(DATA_I)가 높아질수록, 동일한 데이터를 기입하는 서로 다른 메모리 칩들의 수가 증가하도록 중요도 테이블(131a)이 구성될 수 있다. 동일한 데이터를 저장하는 메모리 칩들의 수가 증가할수록, 메모리 칩들 중 적어도 하나는 독출 요청된 데이터가 아닌 데이터에 대한 동작을 수행하지 않을 수 있고, 따라서, 호스트로부터의 독출 요청에 신속하게 응답할 수 있는 가능성이 높아질 수 있다.
도 17 및 도 18b를 참조하면, 중요도 테이블(131b)은 데이터의 중요도(DATA_I) 및 데이터를 기입할 서로 다른 메모리 칩들의 수가 저장될 수 있다. 예를 들어, 중요도(DATA_I)는 0부터 3까지 총 4가지의 값을 가질 수 있고, 기입될 데이터의 중요도(DATA_I)가 특정 값 이상(예를 들어, 2)을 가지면 2개의 메모리 칩들에 기입되고, 기입될 데이터의 중요도(DATA_I)가 특정 값 미만을 가지면 하나의 메모리 칩에 기입되도록 중요도 테이블(131b)이 구성될 수 있다.
동일한 데이터를 복수의 메모리 칩들에 기입하는 것은 비휘발성 메모리 칩들의 전체 용량을 감소시킬 수 있으므로, 데이터의 신속한 독출과 비휘발성 메모리 칩들의 전체 용량의 이득을 모두 고려하여, 상기 특정 값이 결정될 수 있다.
도 17 및 도 19를 참조하면, 중요도 테이블(131c)은 데이터의 중요도(DATA_I) 및 데이터를 기입하는 방식에 대한 정보가 저장될 수도 있다. 예를 들어, 중요도(DATA_I)는 0부터 3까지 총 4가지의 값을 가질 수 있고, 0에서 3으로 갈수록 대응되는 데이터가 중요함을 의미할 수 있다. 중요도(DATA_I)가 0인 경우에는, 하나의 메모리 칩에 대응되는 데이터를 기입(A)하도록 중요도 테이블(131c)이 구성될 수 있다. 중요도(DATA_I)가 1인 경우에는 도 6에서 전술한 바와 같이 동일한 채널에 연결되는 복수의 메모리 칩들에 동일한 데이터를 기입(B)하도록 중요도 테이블(131c)이 구성될 수 있다. 중요도(DATA_I)가 2인 경우에는 도 11에서 전술한 바와 같이 FCPU에 의해 제어되는 복수의 메모리 칩들에 동일한 데이터를 기입(C)하도록 중요도 테이블(131c)이 구성될 수 있다. 중요도(DATA_I)가 3인 경우에는 도 12에서 전술한 바와 같이 서로 다른 FCPU에 의해 제어되는 복수의 메모리 칩들에 동일한 데이터를 기입하도록 중요도 테이블(131c)이 구성될 수 있다.
도 17의 중요도 테이블(131)은 도 18a의 중요도 테이블(131a), 도 18b의 중요도 테이블(131b) 및 도 19의 중요도 테이블(131c) 중 적어도 하나를 포함할 수 있다. 본 개시에 따른 메모리 시스템 및 그의 동작 방법에 따르면, 데이터를 서로 다른 복수의 메모리 칩들에 기입하고, 독출 동작 시에 복수의 메모리 칩들 중 하나의 메모리 칩으로부터 데이터를 독출할 수 있어, 독출 동작 속도가 증가될 수 있다. 더불어, 데이터의 중요도에 기초하여, 복수의 메모리 칩들에 기입할지 여부를 결정하므로, 비휘발성 메모리 칩들 전체의 용량이 과도하게 잠식되는 것을 방지할 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 발명의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
1000: 메모리 시스템 100: 컨트롤러 200: 비휘발성 메모리 칩들
110: HCPU 120: FCPU 130: 로컬 메모리 140: 매핑 테이블

Claims (20)

  1. 제1 메모리 칩 및 제2 메모리 칩을 포함하는 메모리 시스템의 동작 방법으로서,
    제1 데이터에 대한 기입 요청에 따라, 상기 제1 메모리 칩 및 상기 제2 메모리 칩에 상기 제1 데이터를 기입하는 단계;
    상기 제1 데이터에 대한 독출 요청에 따라, 상기 제1 메모리 칩 및 상기 제2 메모리 칩에서 상기 제1 데이터와 상이한 데이터에 대한 동작이 수행 중인지 확인하는 단계; 및
    상기 제1 메모리 칩에서 상기 제1 데이터와 상이한 데이터에 대한 동작을 수행 중인 경우, 상기 제2 메모리 칩에 저장된 상기 제1 데이터를 독출하는 단계;를 포함하는 메모리 시스템의 동작 방법.
  2. 제1 항에 있어서,
    상기 제1 데이터를 독출하는 단계는,
    상기 제1 메모리 칩에서 상기 제1 데이터와 상이한 데이터에 대한 소거 또는 기입 동작 수행 중인 경우에, 상기 제2 메모리 칩에 저장된 상기 제1 데이터를 독출하는 것을 특징으로 하는 메모리 시스템의 동작 방법.
  3. 제1 항에 있어서,
    상기 제1 데이터를 기입하는 단계는,
    외부로부터 상기 제1 데이터의 중요도 정보를 수신하는 단계; 및
    상기 제1 데이터의 중요도 정보에 기초하여, 상기 제1 메모리 칩 및 상기 제2 메모리 칩 중에서 적어도 하나에 상기 제1 데이터를 기입하는 단계;를 포함하는 것을 특징으로 하는 메모리 시스템의 동작 방법.
  4. 제3 항에 있어서,
    상기 제1 데이터의 중요도 정보는 제1 데이터에 대한 기입 요청에 포함되는 것을 특징으로 하는 메모리 시스템의 동작 방법.
  5. 제1 항에 있어서,
    상기 메모리 시스템은,
    호스트로부터 수신된 요청을 처리하는 제1 CPU; 및
    제1 채널 및 제2 채널과 연결되는 제2 CPU;를 포함하고,
    상기 제2 CPU는, 상기 제1 채널을 통하여 상기 제1 메모리 칩 및 상기 제2 메모리 칩의 동작을 제어하는 것을 특징으로 하는 메모리 시스템의 동작 방법.
  6. 제5 항에 있어서,
    상기 제1 메모리 칩 및 상기 제2 메모리 칩은 복수의 페이지들을 포함하고,
    상기 제1 데이터는 상기 제1 메모리 칩 및 상기 제2 메모리 칩에서 동일한 물리적 어드레스를 가지는 페이지들인 페이지 어레이 스트라이브(Page Array Stripe)에 저장되는 것을 특징으로 하는 메모리 시스템의 동작 방법.
  7. 제1 항에 있어서,
    상기 제1 데이터를 기입하는 단계는,
    제1 논리적 어드레스를 수신하는 단계;
    상기 제1 논리적 어드레스를 상기 제1 메모리 칩에 대응되는 제1 물리적 어드레스로 변환하는 단계; 및
    상기 제1 논리적 어드레스 및 상기 제1 물리적 어드레스를 매핑 테이블에 저장하는 단계; 를 더 포함하는 것을 특징으로 하는 메모리 시스템의 동작 방법.
  8. 제7 항에 있어서,
    상기 제1 데이터를 독출하는 단계는,
    상기 매핑 테이블의 상기 제1 물리적 어드레스에 기초하여, 상기 제2 메모리 칩에 저장된 상기 제1 데이터를 독출하는 것을 특징으로 하는 메모리 시스템의 동작 방법.
  9. 제7 항에 있어서,
    상기 매핑 테이블에 저장하는 단계는,
    상기 제2 메모리 칩에 대응되는 제2 물리적 어드레스를 저장하는 단계를 더 포함하고,
    상기 제1 데이터를 독출하는 단계는,
    상기 매핑 테이블의 상기 제2 물리적 어드레스에 기초하여, 상기 제2 메모리 칩에 저장된 상기 제1 데이터를 독출하는 것을 특징으로 하는 메모리 시스템의 동작 방법.
  10. 제1 항에 있어서,
    상기 메모리 시스템은,
    호스트로부터 수신된 요청을 처리하는 제1 CPU; 및
    제1 채널 및 제2 채널과 연결되는 제2 CPU;를 포함하고,
    상기 제2 CPU는,
    상기 제1 채널을 통하여 상기 제1 메모리 칩의 동작을 제어하고, 상기 제2 채널을 통해 상기 제2 메모리 칩의 동작을 제어하는 것을 특징으로 하는 메모리 시스템의 동작 방법.
  11. 제1 항에 있어서,
    상기 메모리 시스템은,
    호스트로부터 수신된 요청을 처리하는 제1 CPU;
    상기 제1 메모리 칩의 동작을 제어하는 제2 CPU; 및
    상기 제2 메모리 칩의 동작을 제어하는 제3 CPU;를 포함하는 것을 특징으로 하는 메모리 시스템의 동작 방법.
  12. 복수의 메모리 칩들을 포함하는 메모리 시스템의 동작 방법으로서,
    제1 데이터의 제1 중요도에 기초하여, 상기 제1 데이터를 복수의 메모리 칩들 중 복수의 제1 메모리 칩들에 기입하는 단계;
    제2 데이터의 제2 중요도에 기초하여, 상기 제2 데이터를 복수의 메모리 칩들 중 하나의 제2 메모리 칩에 기입하는 단계;
    상기 제1 데이터가 저장된 상기 복수의 제1 메모리 칩들 중 적어도 하나의 메모리 칩에 대응되는 물리적 어드레스를 제1 매핑 테이블에 저장하는 단계; 및
    상기 제2 데이터가 저장된 상기 하나의 메모리 칩에 대응되는 물리적 어드레스를 제2 매핑 테이블에 저장하는 단계; 를 포함하는 메모리 시스템의 동작 방법.
  13. 제12 항에 있어서,
    상기 제1 매핑 테이블 및 상기 제2 매핑 테이블은 하나의 매핑 테이블을 구성하는 것을 특징으로 하는 메모리 시스템의 동작 방법.
  14. 제12항에 있어서,
    상기 제1 매핑 테이블 및 상기 제2 매핑 테이블은 서로 다른 각각의 매핑 테이블을 구성하는 것을 특징으로 하는 메모리 시스템의 동작 방법.
  15. 제12 항에 있어서,
    외부로부터 상기 제1 중요도 및 상기 제2 중요도에 대한 정보를 수신하는 단계를 더 포함하는 것을 특징으로 하는 메모리 시스템의 동작 방법.
  16. 제12 항에 있어서,
    상기 제1 데이터를 복수의 제1 메모리 칩들에 기입하는 단계는,
    상기 제1 중요도에 기초하여, 상기 제1 데이터를 기입할 상기 복수의 제1 메모리 칩들의 수를 결정하는 단계;를 포함하는 것을 특징으로 하는 메모리 시스템 동작 방법.
  17. 제12 항에 있어서,
    상기 제1 데이터를 복수의 메모리 칩에 기입하는 단계는,
    상기 제1 중요도에 기초하여, 상기 복수의 메모리 칩들 중에서 상기 제1 데이터를 기입할 상기 복수의 제1 메모리 칩들을 선택하는 단계;를 포함하는 것을 특징으로 하는 메모리 시스템 동작 방법.
  18. 제1 메모리 칩 및 제2 메모리 칩을 포함하는 복수의 메모리 칩들;
    호스트로부터 수신된 요청을 처리하는 제1 CPU;
    복수의 채널들을 통해 상기 복수의 메모리 칩들의 동작을 제어하는 복수의 제2 CPU들; 및
    데이터의 중요도에 대응되는 데이터의 기입 방식에 대한 정보를 포함하는 중요도 테이블을 포함하고,
    상기 제2 CPU들은, 상기 중요도 테이블에 기초하여, 동일한 데이터를 제1 메모리 칩 및 제2 메모리 칩에 기입하는 것을 특징으로 하는 메모리 시스템.
  19. 제18 항에 있어서,
    상기 중요도 테이블은,
    상기 데이터의 중요도에 대응되는 상기 데이터를 기입할 메모리 칩의 수에 대한 정보를 포함하는 것을 특징으로 하는 메모리 시스템.
  20. 제18 항에 있어서,
    상기 중요도 테이블은,
    상기 복수의 메모리 칩들 중에서 상기 데이터를 기입할 메모리 칩을 선택하는 방법에 대한 정보를 포함하는 것을 특징으로 하는 메모리 시스템.
KR1020170161842A 2017-11-29 2017-11-29 메모리 시스템 및 이의 동작 방법 KR20190063054A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020170161842A KR20190063054A (ko) 2017-11-29 2017-11-29 메모리 시스템 및 이의 동작 방법
US16/199,304 US10909031B2 (en) 2017-11-29 2018-11-26 Memory system and operating method thereof
CN201811470074.6A CN110032333A (zh) 2017-11-29 2018-11-28 存储器系统及其操作方法
US17/144,713 US11630766B2 (en) 2017-11-29 2021-01-08 Memory system and operating method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170161842A KR20190063054A (ko) 2017-11-29 2017-11-29 메모리 시스템 및 이의 동작 방법

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020240046934A Division KR20240049262A (ko) 2024-04-05 메모리 시스템 및 이의 동작 방법

Publications (1)

Publication Number Publication Date
KR20190063054A true KR20190063054A (ko) 2019-06-07

Family

ID=66635955

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170161842A KR20190063054A (ko) 2017-11-29 2017-11-29 메모리 시스템 및 이의 동작 방법

Country Status (3)

Country Link
US (2) US10909031B2 (ko)
KR (1) KR20190063054A (ko)
CN (1) CN110032333A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210001898A (ko) * 2019-06-28 2021-01-06 웨스턴 디지털 테크놀로지스, 인코포레이티드 존 네임스페이스에 대한 존 형성

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11334254B2 (en) * 2019-03-29 2022-05-17 Pure Storage, Inc. Reliability based flash page sizing
KR20200134784A (ko) * 2019-05-23 2020-12-02 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
KR20210046348A (ko) * 2019-10-18 2021-04-28 삼성전자주식회사 복수의 프로세서들에 유연하게 메모리를 할당하기 위한 메모리 시스템 및 그것의 동작 방법
KR20210115954A (ko) * 2020-03-17 2021-09-27 에스케이하이닉스 주식회사 컨트롤러 및 메모리 시스템
CN115878020A (zh) * 2021-09-29 2023-03-31 慧荣科技股份有限公司 编码历程信息的存取方法和计算机可读取存储介质和装置
US11860775B2 (en) 2021-09-29 2024-01-02 Silicon Motion, Inc. Method and apparatus for programming data into flash memory incorporating with dedicated acceleration hardware

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8041879B2 (en) * 2005-02-18 2011-10-18 Sandisk Il Ltd Flash memory backup system and method
US7873799B2 (en) 2005-11-04 2011-01-18 Oracle America, Inc. Method and system supporting per-file and per-block replication
US7694093B2 (en) * 2007-04-27 2010-04-06 Hewlett-Packard Development Company, L.P. Memory module and method for mirroring data by rank
US9075957B2 (en) 2008-08-04 2015-07-07 Sandisk Il Ltd. Backing up digital content that is stored in a secured storage device
US8144512B2 (en) 2009-12-18 2012-03-27 Sandisk Technologies Inc. Data transfer flows for on-chip folding
JP5060574B2 (ja) 2010-03-16 2012-10-31 株式会社東芝 メモリシステム
US8700949B2 (en) * 2010-03-30 2014-04-15 International Business Machines Corporation Reliability scheme using hybrid SSD/HDD replication with log structured management
JP2012043246A (ja) * 2010-08-20 2012-03-01 Canon Inc 情報処理装置、情報処理装置の制御方法、及び、プログラム
JP5066241B2 (ja) 2010-09-24 2012-11-07 株式会社東芝 メモリシステム
KR101917192B1 (ko) 2012-03-12 2018-11-12 삼성전자주식회사 불휘발성 메모리 장치 및 불휘발성 메모리 장치의 읽기 방법
JP6007329B2 (ja) 2013-07-17 2016-10-12 株式会社日立製作所 ストレージコントローラ、ストレージ装置、ストレージシステム
KR101752304B1 (ko) 2014-12-29 2017-06-29 한양대학교 산학협력단 복수의 플래시 메모리 컨트롤러를 포함하는 솔리드 스테이트 드라이브 및 상기 플래시 메모리 컨트롤러가 수행하는 압축 해제 방법
KR20160132204A (ko) 2015-05-07 2016-11-17 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
CN106445749B (zh) * 2015-05-12 2021-04-23 爱思开海力士有限公司 使用独立磁盘冗余阵列的动态自动调谐的最大延迟的减小
KR102403253B1 (ko) 2015-07-06 2022-05-30 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 스토리지 장치
JP2017062715A (ja) 2015-09-25 2017-03-30 富士通株式会社 ストレージ装置、制御ユニット、及び制御プログラム
US10515671B2 (en) * 2016-09-22 2019-12-24 Advanced Micro Devices, Inc. Method and apparatus for reducing memory access latency
KR20180080775A (ko) * 2017-01-05 2018-07-13 에스케이하이닉스 주식회사 동적 미러링이 가능한 메모리 장치, 메모리 모듈 및 반도체 시스템
CN107229535B (zh) * 2017-05-23 2020-01-21 杭州宏杉科技股份有限公司 数据块的多副本存储方法、存储设备、数据读取方法
JP7383428B2 (ja) 2019-09-06 2023-11-20 キヤノン株式会社 定着装置及び画像形成装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210001898A (ko) * 2019-06-28 2021-01-06 웨스턴 디지털 테크놀로지스, 인코포레이티드 존 네임스페이스에 대한 존 형성
US11416161B2 (en) 2019-06-28 2022-08-16 Western Digital Technologies, Inc. Zone formation for zoned namespaces

Also Published As

Publication number Publication date
CN110032333A (zh) 2019-07-19
US11630766B2 (en) 2023-04-18
US10909031B2 (en) 2021-02-02
US20190163623A1 (en) 2019-05-30
US20210133096A1 (en) 2021-05-06

Similar Documents

Publication Publication Date Title
US8677058B2 (en) Memory system selecting write mode of data block and data write method thereof
KR20190063054A (ko) 메모리 시스템 및 이의 동작 방법
KR101734200B1 (ko) 적응적 머지를 수행하는 메모리 시스템 및 그것의 데이터 쓰기 방법
US11086772B2 (en) Memory system performing garbage collection operation and operating method of memory system
KR102526608B1 (ko) 전자 장치 및 그것의 동작 방법
KR20170053278A (ko) 데이터 저장 장치 및 그것의 동작 방법
KR102527265B1 (ko) 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템
US11567685B2 (en) Storage controller and storage device including the same
KR102349381B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
US11537305B1 (en) Dissimilar write prioritization in ZNS devices
US20220269602A1 (en) Storage device and storage system including the same
KR102544162B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
KR20220060790A (ko) 메모리 시스템
US11461238B2 (en) Storage device, memory controller, and method for fetching write commands from submission queues to perform full page writes
US11249917B2 (en) Data storage device and operating method thereof
KR20220103340A (ko) 데이터 저장 장치 및 그것의 동작 방법
KR20210144249A (ko) 저장 장치 및 이의 동작 방법
US20200089421A1 (en) Data storage device, operation method thereof, and storage system including the same
US11586379B2 (en) Memory system and method of operating the same
KR20200029085A (ko) 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템
KR20190090629A (ko) 메모리 시스템 및 그것의 동작 방법
US11157401B2 (en) Data storage device and operating method thereof performing a block scan operation for checking for valid page counts
KR20230018215A (ko) 스토리지 장치, 스토리지 컨트롤러 및 스토리지 컨트롤러의 동작 방법
KR20230018216A (ko) 스토리지 장치 및 스토리지 컨트롤러의 동작 방법
CN114201108A (zh) 包括映射高速缓存的控制器以及包括控制器的存储器系统

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X601 Decision of rejection after re-examination