KR20160087426A - 속도 모드 관리자를 포함하는 저장 장치 및 사용자 장치 - Google Patents

속도 모드 관리자를 포함하는 저장 장치 및 사용자 장치 Download PDF

Info

Publication number
KR20160087426A
KR20160087426A KR1020150006010A KR20150006010A KR20160087426A KR 20160087426 A KR20160087426 A KR 20160087426A KR 1020150006010 A KR1020150006010 A KR 1020150006010A KR 20150006010 A KR20150006010 A KR 20150006010A KR 20160087426 A KR20160087426 A KR 20160087426A
Authority
KR
South Korea
Prior art keywords
data
speed mode
memory
mode
buffer area
Prior art date
Application number
KR1020150006010A
Other languages
English (en)
Other versions
KR102295223B1 (ko
Inventor
신동준
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020150006010A priority Critical patent/KR102295223B1/ko
Priority to US14/993,146 priority patent/US10120794B2/en
Priority to CN201610021169.4A priority patent/CN105786403B/zh
Publication of KR20160087426A publication Critical patent/KR20160087426A/ko
Application granted granted Critical
Publication of KR102295223B1 publication Critical patent/KR102295223B1/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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1015Read-write modes for single port memories, i.e. having either a random port or a serial port
    • 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/0647Migration 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/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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/068Hybrid storage device
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1015Read-write modes for single port memories, i.e. having either a random port or a serial port
    • G11C7/1039Read-write modes for single port memories, i.e. having either a random port or a serial port using pipelining techniques, i.e. using latches between functional memory parts, e.g. row/column decoders, I/O buffers, sense amplifiers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1015Read-write modes for single port memories, i.e. having either a random port or a serial port
    • G11C7/1045Read-write mode select circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1048Data bus control circuits, e.g. precharging, presetting, equalising
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • G11C7/1084Data input buffers, e.g. comprising level conversion circuits, circuits for adapting load
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • G11C7/109Control signal 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/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/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/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7204Capacity control, e.g. partitioning, end-of-life degradation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7207Details relating to flash memory management management of metadata or control data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/22Control and timing of internal memory operations
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • G11C7/1087Data input latches
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • G11C7/1096Write circuits, e.g. I/O line write drivers

Abstract

본 발명의 실시 예에 따른 저장 장치는, 제 1 쓰기 동작을 수행하는 버퍼 영역과 제 2 쓰기 동작을 수행하는 메인 영역을 갖는 불휘발성 메모리; 및 기준 크기 이상인 데이터가 연속적으로 기준 카운트 이상으로 입력되는 경우에, 상기 버퍼 영역에 데이터를 저장하는 메모리 컨트롤러를 포함한다. 본 발명은 호스트에서 제 1 모드와 제 2 모드를 지정하기 위한 별도의 커맨드를 제공받지 않고도, 자동으로 모드를 변경할 수 있다. 본 발명에 의하면, 호스트로부터 제공되는 데이터의 크기와 연속성에 따라 모드를 변경함으로, 저장 장치의 쓰기 성능이 향상될 수 있다.

Description

속도 모드 관리자를 포함하는 저장 장치 및 사용자 장치{STORAGE DEVICE AND USER DEVICE INCLUDING SPEED MODE MANAGER}
본 발명은 사용자 장치(user device)에 관한 것으로, 좀 더 구체적으로는 데이터 연속성에 따라 속도 모드 동작을 수행하는 저장 장치 및 그것을 포함하는 사용자 장치에 관한 것이다.
사용자 장치(user device)는 퍼스널 컴퓨터, 디지털 카메라, 캠코더, 휴대 전화기, 스마트 폰, 테블릿 PC 등과 같은 전자 장치들을 포함한다. 저장 장치(storage device)는 메모리 카드, USB, SSD, eMMC, UFS 등과 같은 저장 매체를 포함한다. 이들 저장 장치는 대부분 내부적으로 데이터를 저장하기 위한 반도체 메모리 장치를 가지고 있다.
반도체 메모리 장치에는 DRAM, SRAM 등과 같은 휘발성 메모리와 EEPROM, FRAM, PRAM, MRAM, Flash Memory 등과 같은 불휘발성 메모리 등이 있다. 휘발성 메모리는 전원이 차단될 때 저장된 데이터를 잃지만, 불휘발성 메모리는 전원이 차단되더라도 저장된 데이터를 보존한다. 특히, 플래시 메모리는 높은 프로그래밍 속도, 낮은 전력 소비, 대용량 데이터 저장 등의 장점을 갖는다. 따라서 플래시 메모리를 포함하는 저장 장치는 데이터 저장 매체로 널리 사용되고 있다.
한편, 사용자 장치는 호스트와 저장 장치를 포함한다. 호스트는 저장 장치로 쓰기 요청을 하고 데이터를 제공한다. 저장 장치는 호스트의 요청에 따라 데이터를 플래시 메모리에 저장한다. 플래시 메모리는 사용자 장치의 쓰기 성능을 높이기 위해, 메인 영역 이외에 버퍼 영역을 포함할 수 있다. 버퍼 영역은 메인 영역에 비해 상대적으로 빠른 쓰기 속도를 갖는다.
본 발명의 목적은 데이터의 입력 패턴에 따라, 버퍼 영역 또는 메인 영역에 데이터를 저장함으로, 쓰기 성능을 향상할 수 있는 저장 장치 및 그것을 포함하는 사용자 장치를 제공하는 데 있다.
본 발명의 실시 예에 따른 저장 장치는, 고속 쓰기 동작을 수행하는 버퍼 영역과 저속 쓰기 동작을 수행하는 메인 영역을 갖는 불휘발성 메모리; 및 기준 크기 이상인 데이터가 연속적으로 기준 카운트 이상으로 입력되는 경우에, 상기 버퍼 영역에 데이터를 저장하는 메모리 컨트롤러를 포함한다.
실시 예로서, 상기 버퍼 영역에는 하나의 메모리 셀에 N-비트 데이터(N은 자연수)가 저장되고, 상기 메인 영역에는 하나의 메모리 셀에 N-비트보다 많은 데이터가 저장된다.
다른 실시 예로서, 상기 메모리 컨트롤러는 상기 버퍼 영역에 데이터를 저장하는 고속 모드와 상기 메인 영역에 데이터를 저장하는 저속 모드 사이에서, 속도 모드를 변경하기 위한 속도 모드 관리자를 포함한다. 상기 속도 모드 관리자는 기준 크기 이상인 데이터가 연속적으로 기준 카운트 이상으로 입력되는 경우에 고속 모드로 속도 모드를 변경하고, 아이들 상태인 경우에 저속 모드로 속도 모드를 변경한다. 상기 메모리 컨트롤러는 고속 모드로 변경된 경우에, 아이들 상태 없이 연속적으로 데이터가 입력되면 데이터 크기에 상관없이 고속 모드를 유지한다.
또 다른 실시 예로서, 상기 메모리 컨트롤러는 상기 버퍼 영역에 저장된 데이터를 상기 메인 영역으로 옮기는 마이그레이션 동작을 수행한다. 상기 메모리 컨트롤러는 유휴 시간(idle time) 동안에 마이그레이션 동작을 수행할 수 있다. 상기 버퍼 영역 및 상기 메인 영역은 하나의 메모리 칩으로 구현되거나, 서로 다른 메모리 칩으로 구현될 수 있다.
본 발명의 다른 실시 예에 따른 저장 장치는, 고속 쓰기 동작을 수행하는 버퍼 영역과 저속 쓰기 동작을 수행하는 메인 영역을 갖는 플래시 메모리; 및 기준 크기 이상인 데이터의 연속성에 따라, 상기 버퍼 영역 또는 상기 메인 영역에 데이터를 저장하는 메모리 컨트롤러를 포함한다.
실시 예로서, 상기 메모리 컨트롤러는 기준 크기 이상인 데이터가 기준 카운트 이상으로 입력되는 경우에, 상기 버퍼 영역에 데이터를 저장한다. 상기 메모리 컨트롤러는 기준 크기 이상인 데이터가 기준 카운트 이상으로 입력된 다음에, 아이들 상태가 발생하면 상기 메인 영역에 데이터를 저장한다. 상기 메모리 컨트롤러는 기준 크기 이상인 데이터가 기준 카운트 이상으로 입력되고 아이들 상태가 발생하기 전까지, 데이트 크기에 상관없이 상기 버퍼 영역에 데이터를 저장한다.
다른 실시 예로서, 상기 메모리 컨트롤러는 상기 버퍼 영역에 데이터를 저장하는 고속 모드와 상기 메인 영역에 데이터를 저장하는 저속 모드 사이에서, 속도 모드를 변경하기 위한 속도 모드 관리자를 포함한다. 상기 속도 모드 관리자는 기준 크기 이상인 데이터의 연속성에 따라, 속도 모드를 변경한다.
본 발명의 실시 예에 따른 사용자 장치는, 쓰기 요청과 데이터를 제공하는 호스트; 및 상기 호스트로부터 쓰기 요청과 데이터를 입력 받고, 데이터의 연속성에 따라, 플래시 메모리의 버퍼 영역 또는 메인 영역에 데이터를 저장하는 저장 장치를 포함하되, 상기 저장 장치는 기준 크기 이상인 데이터가 연속적으로 기준 카운트 이상으로 입력되는 경우에, 상기 메인 영역보다 쓰기 속도가 빠른 상기 버퍼 영역에 데이터를 저장한다.
실시 예로서, 상기 저장 장치는 기준 크기 이상인 데이터가 기준 카운트 이상으로 입력된 다음에, 아이들 상태가 발생하면 상기 메인 영역에 데이터를 저장한다. 상기 저장 장치는 기준 크기 이상인 데이터가 기준 카운트 이상으로 입력되고 아이들 상태가 발생하기 전까지, 데이트 크기에 상관없이 상기 버퍼 영역에 데이터를 저장한다. 상기 저장 장치는 상기 버퍼 영역에 데이터를 저장하는 고속 모드와 상기 메인 영역에 데이터를 저장하는 저속 모드 사이에서, 속도 모드를 변경하기 위한 속도 모드 관리자를 포함한다. 상기 사용자 장치는 호스트와 상기 저장 장치를 포함하는 모바일 전자 장치일 수 있다.
본 발명은 호스트에서 고속 모드와 저속 모드를 지정하기 위한 별도의 커맨드를 제공받지 않고도, 자동으로 속도 모드를 변경할 수 있다. 본 발명에 의하면, 호스트로부터 제공되는 데이터의 크기와 연속성에 따라 속도 모드를 변경함으로, 저장 장치 또는 사용자 장치의 쓰기 성능을 향상할 수 있다.
도 1은 본 발명에 따른 사용자 장치를 개략적으로 보여주는 블록도이다.
도 2는 도 1에 도시된 사용자 장치의 동작을 예시적으로 설명하기 위한 블록도이다.
도 3은 도 2에 도시된 속도 모드 관리자의 동작을 설명하기 위한 순서도이다.
도 4는 도 1에 도시된 속도 모드 관리자의 모드 변경 동작을 예시적으로 보여주는 다이어그램이다.
도 5는 도 1에 도시된 속도 모드 관리자가 저속 모드에서 고속 모드로 속도 모드를 변경한 다음에, 다시 저속 모드로 속도 모드를 변경되는 동작을 설명하기 위한 순서도이다.
도 6은 도 5에서 설명한 모드 변경 동작을 예시적으로 보여주는 다이어그램이다.
도 7은 도 1에 도시된 속도 모드 관리자의 모드 변경 동작을 설명하기 위한 상태 다이어그램(state diagram)이다.
도 8은 본 발명의 다른 실시 예에 따른 사용자 장치를 개략적으로 보여주는 블록도이다.
도 9 및 도 10은 도 8에 도시된 속도 모드 관리자의 동작을 예시적으로 설명하기 위한 블록도이다.
도 11은 도 10에 도시된 속도 모드 변경을 예시적으로 보여주는 다이어그램이다.
도 12는 도 8에 도시된 플래시 메모리의 마이그레이션 동작을 설명하기 위한 블록도이다.
도 13은 본 발명의 실시 예에 따른 사용자 장치를 메모리 카드 시스템에 적용한 예를 보여주는 블록도이다.
도 14는 본 발명의 실시 예에 따른 사용자 장치를 솔리드 스테이트 드라이브(SSD) 시스템에 적용한 예를 보여주는 블록도이다.
도 15는 도 14에 도시된 SSD 컨트롤러(4210)의 구성을 예시적으로 보여주는 블록도이다.
도 16은 본 발명의 실시 예에 따른 메모리 시스템을 전자 장치로 구현한 예를 보여주는 블록도이다.
도 17은 본 발명의 실시 예에 따른 단말기를 예시적으로 보여주는 블록도이다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 실시 예를 첨부된 도면을 참조하여 설명한다.
도 1은 본 발명의 실시 예에 따른 사용자 장치를 개략적으로 보여주는 블록도이다. 도 1을 참조하면, 사용자 장치(1000)는 호스트(1100)와 저장 장치(1200)를 포함한다. 저장 장치(1200)은 불휘발성 메모리(NVM, 1210)와 메모리 컨트롤러(1220)를 포함한다.
불휘발성 메모리(1210)는 메모리 컨트롤러(1220)에 의해서 제어되며, 메모리 컨트롤러(1220)의 요청에 대응하는 동작(예를 들면, 읽기 또는 쓰기 동작 등)을 수행할 수 있다. 불휘발성 메모리(1210)는 버퍼 영역(1211)과 메인 영역(1212)을 포함한다. 버퍼 영역(1211)은 고속 쓰기 동작을 수행하는 메모리(이하, 고속 메모리)로 구현되고, 메인 영역(1212)은 저속 쓰기 동작을 수행하는 메모리(이하, 저속 메모리)로 구현될 수 있다. 여기에서, 고속 쓰기와 저속 쓰기는 상대적인 개념이다. 즉, 버퍼 영역(1211)은 메인 영역(1212)에 비해 상대적으로 빠른 쓰기 동작을 수행할 수 있다.
버퍼 영역(1211)에서는 하나의 메모리 셀에 1-비트 데이터가 저장되고, 메인 영역(1212)에서는 N-비트 데이터(N은 2 또는 그보다 큰 정수)가 저장될 수 있다. 이러한 경우에, 버퍼 영역(1211)의 메모리 셀은 싱글 레벨 셀(SLC; single level cell)이라 하고, 메인 영역(1212)의 메모리 셀은 멀티 레벨 셀(MLC; multi-level cell)이라고 한다. 일반적으로, SLC 메모리는 MLC 메모리에 비해 쓰기 속도가 빠르다. 예를 들면, SLC 메모리는 2비트 MLC에 비해 2배 정도의 쓰기 속도를 갖고, 3비트 MLC에 비해 4배 정도의 쓰기 속도를 가질 수 있다.
버퍼 영역(1211)과 메인 영역(1212)은 MLC 메모리로 구성될 수 있다. 이러한 경우, 버퍼 영역(1211)을 구성하는 MLC 메모리는 SLC 메모리처럼 하나의 메모리 셀에 1-비트만 저장할 수 있다. 즉, 버퍼 영역(1211)은 LSB 프로그램 동작만 수행되도록 할 수 있다. 또한, 버퍼 영역(1211)이 셀 당 N-비트 데이터를 저장한다면, 메인 영역(1212)는 셀 당 N-비트보다 많은 데이터를 저장할 수 있다. 한편, 버퍼 영역(1211)과 메인 영역(1212)은 하나의 메모리 장치로 구현되거나, 별도의 메모리 장치로 구현될 수도 있다.
계속해서 도 1을 참조하면, 메모리 컨트롤러(1220)는 속도 모드 관리자(1226)를 포함할 수 있다. 속도 모드 관리자(1226)는 소프트웨어 또는 펌웨어로 구현되거나, 하드웨어로 구현될 수 있다. 속도 모드 관리자(1226)가 소프트웨어나 펌웨어로 구현되는 경우에는, DRAM과 같은 내부 메모리에서 동작할 수 있다.
도 2는 도 1에 도시된 사용자 장치의 동작을 예시적으로 설명하기 위한 블록도이다. 도 2를 참조하면, 속도 모드 관리자(1226)는 호스트(도 1 참조, 1100)로부터 쓰기 요청(write request)과 데이터(data)를 입력 받는다. 쓰기 요청에는 쓰기 커맨드(write CMD)임을 알리는 커맨드 인덱스(command index), 쓰기 어드레스(write ADDR), 데이터 크기(data size), 및 기타 정보(ETC)를 포함한다.
속도 모드 관리자(1226)는 호스트(1100)의 쓰기 요청을 입력 받고, 데이터 크기(data size) 및 데이터 연속성(data continuity) 등의 정보를 근거로 하여, 입력된 데이터를 버퍼 영역(1211) 또는 메인 영역(1212)에 저장할 수 있다. 예를 들면, 속도 모드 관리자(1226)는 일반 모드(normal mode)에서는 메인 영역(1212)에 데이터를 저장하다가, 소정의 크기 이상을 갖는 데이터가 소정의 횟수만큼 연속적으로(sequentially) 입력되는 경우에 버퍼 영역(1211)에 데이터를 저장할 수 있다.
본 발명의 실시 예에 따른 사용자 장치(1000)는 대용량의 데이터가 연속적으로 입력되는 경우에, 고속 쓰기 동작을 수행할 수 있는 버퍼 영역(1211)에 데이터를 저장함으로, 쓰기 성능을 향상할 수 있다.
도 3은 도 2에 도시된 속도 모드 관리자의 동작을 설명하기 위한 순서도이다. 속도 모드 관리자(1226)는 호스트(도 1 참조, 1100)로부터 쓰기 요청을 입력 받으면, 저장 장치(도 1 참조, 1200)의 속도 모드(speed mode)를 변경할 수 있다. 즉, 속도 모드 관리자(1226)는 호스트(1100)로부터 입력되는 데이터를 버퍼 영역(1211)에 저장할지 아니면 메인 영역(1212)에 저장할지를 결정할 수 있다. 데이터가 버퍼 영역(1211)에 저장되느냐 메인 영역(1212)에 저장되느냐에 따라 쓰기 속도가 달라진다. 이하에서는 도 3을 참조하여 속도 모드 관리자(1226)의 속도 모드 변경 방법이 설명될 것이다.
S110 단계에서, 저장 장치(1200)는 호스트(1100)로부터 쓰기 요청을 입력 받는다. 도 2에서 설명한 바와 같이, 쓰기 요청에는 쓰기 커맨드, 쓰기 어드레스, 데이터 크기 등에 관한 정보가 포함되어 있다.
S120 단계에서, 속도 모드 관리자(1226)는 데이터 크기가 기준 크기보다 크거나 같은지를 판단한다. 쓰기 데이터의 크기가 기준 크기보다 작은 경우(No)에는 저속 모드로 동작한다(S145). 즉, 데이터 크기가 기준보다 작으면, 데이터는 저속 쓰기 동작을 수행하는 메인 영역(1212)에 저장된다. 반면에, 쓰기 데이터의 크기가 기준 크기보다 크거나 같은 경우(Yes)에는, S130 단계가 수행된다.
S130 단계에서, 속도 모드 관리자(1226)는 기준 크기 이상인 데이터가 연속적으로 입력되는지를 판단한다. 이하에서는, 연속적으로 입력되는 데이터를 연속적 데이터(sequential data)라고 한다. 속도 모드 관리자(1226)는 기준 크기 이상인 연속적 데이터의 카운트가 기준 카운트보다 크거나 같은지를 판단한다. 연속적 데이터의 카운트가 기준 카운트보다 작은 경우(No)에는 저속 모드로 동작한다(S145). 즉, 연속적 데이터는 메인 영역(1212)에 저장된다. 반면에, 연속적 데이터의 카운트가 기준 카운트보다 크거나 같은 경우(Yes)에는 S140 단계가 수행된다.
S140 단계에서, 속도 모드 관리자(1226)는 저속 모드로부터 고속 모드로 속도 모드(speed mode)를 변경한다. 기준 크기 이상인 연속적 데이터가 기준 카운트 이상으로 입력되는 경우에, 데이터는 고속 쓰기 동작을 수행하는 버퍼 영역(1211)에 저장된다.
도 4는 도 1에 도시된 속도 모드 관리자의 모드 변경 동작을 예시적으로 보여주는 다이어그램이다. 도 4에서는 데이터의 기준 크기는 512KB이고, 연속적 데이터의 기준 카운트는 4라고 가정한다.
제 1 데이터(512KB)가 입력된 경우에, 데이터 크기는 기준 크기보다 크거나 같지만(S120), 연속적 데이터의 카운트가 기준 카운트보다 작기 때문에(S130), 저속 모드로 동작한다(S145). 즉, 제 1 데이터(512KB)는 저속 쓰기 동작을 수행하는 메인 영역(1212)에 저장된다. 마찬가지로, 제 2 데이터(512KB) 및 제 3 데이터(512KB)도 저속 쓰기 동작을 수행하는 메인 영역(1212)에 저장된다.
제 4 데이터(512KB)가 입력된 경우에, 데이터 크기가 기준 크기보다 크거나 같고(S120), 연속적 데이터의 카운트도 기준 카운트보다 크거나 같다. 이 경우에 속도 모드 관리자(1226)는 저속 모드로부터 고속 모드로 속도 모드를 변경한다(S140). 즉, 제 4 데이터(512KB)는 고속 쓰기 동작을 수행하는 버퍼 영역(1211)에 저장된다. 마찬가지로, 제 5 데이터(512KB) 및 제 6 데이터(512KB)도 고속 쓰기 동작을 수행하는 버퍼 영역(1211)에 저장된다.
도 5는 도 1에 도시된 속도 모드 관리자가 저속 모드에서 고속 모드로 속도 모드를 변경한 다음에, 다시 저속 모드로 속도 모드를 변경되는 동작을 설명하기 위한 순서도이다.
S210 단계는 도 3의 S140 단계에서 설명한, 속도 모드 관리자(1226)의 모드 변경 동작이다. 즉, 속도 모드 관리자(1226)는 기준 크기 이상인 데이터가 연속적으로 기준 카운트 이상 입력되면, 저속 모드에서 고속 모드로 속도 모드를 변경한다. 즉, 데이터는 고속 쓰기 동작을 수행하는 버퍼 영역(1211)에 저장된다.
S220 단계에서, 속도 모드 관리자(1226)는 아이들 상태(idle state) 여부를 판단한다. 즉, 속도 모드 관리자(1226)는 호스트(도 1 참조, 1100)로부터 쓰기 요청이 연속적으로 입력되는지 여부를 판단한다. 쓰기 요청이 일정 시간(예를 들면, 100msec) 동안 없으면 아이들 상태로 판단한다. 아이들 상태가 발생하지 않은 경우(No)에, 속도 모드 관리자(1226)는 데이터 크기에 상관없이 고속 모드를 계속 유지한다(S235). 즉, 데이터는 고속 쓰기 동작을 수행하는 버퍼 영역(1211)에 저장된다. 반면에, 아이들 상태가 발생한 경우(Yes)에는 S230 단계를 수행한다.
S230 단계에서, 속도 모드 관리자(1226)는 고속 모드로부터 저속 모드로 속도 모드(speed mode)를 변경한다. 즉, 고속 모드로 동작하다가 아이들 상태가 되면, 속도 모드 관리자(1226)는 자동으로 저속 모드로 속도 모드를 변경한다. 데이터는 저속 쓰기 동작을 수행하는 메인 영역(1212)에 저장된다.
도 6은 도 5에서 설명한 모드 변경 동작을 예시적으로 보여주는 다이어그램이다. 데이터의 기준 크기는 512KB이고, 연속적 데이터의 기준 카운트는 4라고 가정한다.
도 4에서 설명한 바와 같이, 512KB 크기를 갖는 제 1 내지 제 3 데이터가 입력된 경우에는 저속 모드로 동작한다. 즉, 제 1 내지 제 3 데이터는 저속 쓰기 동작을 수행하는 메인 영역(1212)에 저장된다. 512KB 크기의 제 4 데이터가 입력된 경우에는, 속도 모드 관리자(1226)는 저속 모드로부터 고속 모드로 속도 모드를 변경한다. 제 4 데이터(512KB)는 고속 쓰기 동작을 수행하는 버퍼 영역(1211)에 저장된다.
고속 모드로 변경된 다음에는, 연속적 데이터는 데이터 크기와 상관없이 고속 쓰기 동작을 수행하는 버퍼 영역(1211)에 저장된다. 예를 들면, 기준 크기보다 작은 4KB의 데이터가 입력된 경우에도, 버퍼 영역(1211)에 저장된다. 4KB의 데이터가 입력된 다음에, 다시 512KB 데이터가 입력되어도 모드 변경 없이 버퍼 영역(1211)에 저장된다.
계속해서 도 6을 참조하면, 속도 모드 관리자(1226)는 고속 모드로 동작하다가 아이들 상태가 되면, 자동으로 저속 모드로 속도 모드를 변경한다. 아이들 상태 후에 입력되는 512KB 데이터는 저속 쓰기 동작을 수행하는 메인 영역(1212)에 저장된다.
도 7은 도 1에 도시된 속도 모드 관리자의 모드 변경 동작을 설명하기 위한 상태 다이어그램(state diagram)이다. 도 7을 참조하면, 속도 모드 관리자(1226)는 저속 모드와 고속 모드 사이에서 속도 모드를 변경할 수 있다. 고속 모드는 버퍼 영역(1211)에서 수행되고, 저속 모드는 메인 영역(1212)에서 수행된다. 고속 모드에서는 저속 모드에 비해 상대적으로 빠른 속도로 쓰기 동작이 수행된다. 저속 모드에서는 고속 모드에 비해 상대적으로 느린 속도로 쓰기 동작이 수행된다.
도 7을 참조하면, 저속 모드에서 고속 모드로의 모드 변경은 데이터 크기(data size)와 데이터 연속성(data continuity)에 따라 발생한다. 속도 모드 관리자(1226)는 기준 크기 이상을 갖는 데이터가 연속적으로 기준 카운트 이상으로 입력되는 경우에, 저속 모드에서 고속 모드로 속도 모드를 변경한다. 고속 모드로 변경된 경우에는, 데이터는 그 크기에 상관없이 버퍼 영역(1211)에 저장된다.
한편, 고속 모드에서 저속 모드로의 모드 변경은 아이들 상태의 유무에 따라 발생한다. 속도 모드 관리자(1226)는 아이들 상태가 발생하면, 고속 모드에서 저속 모드로 속도 모드를 변경한다. 저속 모드로 변경되면, 기준 크기 이상을 갖는 데이터가 연속적으로 기준 카운트 이상으로 입력될 때까지, 데이터는 메인 영역(1212)에 저장된다.
본 발명의 실시 예에 따른 사용자 장치는 모바일 전자 장치와 같이, 쓰기 성능이 낮은 경우에 고속 모드를 이용하여 순간적으로 쓰기 성능을 높일 수 있다. 예를 들면, 스마트 폰에서 무선 통신망을 통해 대용량의 파일을 다운로드 하거나, USB로부터 파일을 저장하거나, 카메라로 사진을 찍을 때 쓰기 성능을 높일 수 있다. 본 발명의 실시 예에 따른 저장 장치는 호스트로부터 속도 모드 변경을 위한 별도의 커맨드를 입력 받지 않고도, 자동으로 저속 모드에서 고속 모드로 속도 모드를 변경할 수 있다.
도 8은 본 발명의 다른 실시 예에 따른 사용자 장치를 개략적으로 보여주는 블록도이다. 도 8을 참조하면, 사용자 장치(2000)는 호스트(2100)와 저장 장치(2200)를 포함한다. 저장 장치(2200)은 플래시 메모리(2210)와 메모리 컨트롤러(2220)를 포함한다. 플래시 메모리(2210)은 버퍼 영역(2211)과 메인 영역(2212)를 포함한다. 버퍼 영역(2211)은 고속 메모리로 구현되고, 메인 영역(2212)는 저속 메모리로 구현될 수 있다.
고속 메모리는 고속 동작에 적합한 맵핑 방법을 사용하도록 구성되며, 저속 메모리는 저속 동작에 적합한 맵핑 방법을 사용하도록 구성될 수 있다. 예를 들어, 저속 메모리를 구성하는 메인 영역(2212)은 블록 맵핑 방법을 통해 관리되고, 고속 메모리를 구성하는 버퍼 영역(2211)은 페이지 맵핑 방법을 통해 관리될 수 있다. 페이지 맵핑 방법은 동작 성능(예를 들면, 쓰기 성능)의 저하를 유발하는 머지 동작을 필요로 하지 않기 때문에 버퍼 영역(2211)은 고속으로 동작할 수 있다. 반면에, 블록 맵핑 방법은 동작 성능(예를 들면, 쓰기 성능)의 저하를 유발하는 머지 동작을 필요로 하기 때문에 메인 영역(2212)은 상대적으로 저속으로 동작한다.
한편, 고속 메모리와 저속 메모리는 하나의 메모리 셀에 저장되는 데이터 비트 수에 따라 구분될 수 있다. 일반적으로, 하나의 메모리 셀에 저장되는 데이트 비트 수가 적으면 쓰기 속도가 빠르다. 예를 들면, SLC 메모리는 2비트 MLC 메모리에 비해 2배 정도의 쓰기 속도를 갖고, 3비트 MLC 메모리에 비해 4배 정도의 쓰기 속도를 가질 수 있다. 도 8에서, 버퍼 영역(2211)은 SLC 메모리로 구성되고, 메인 영역(2212)은 MLC 메모리로 구성될 수 있다.
계속해서 도 8을 참조하면, 메모리 컨트롤러(2220)는 호스트 인터페이스(2221), 플래시 인터페이스(2222), 중앙처리장치(CPU, 2223), 롬(ROM, 2224), 램(RAM, 2225), 그리고 속도 모드 관리자(speed mode manager, 2226)를 포함한다.
호스트 인터페이스(2221)은 호스트(2100)와의 인터페이스를 제공한다. 플래시 인터페이스(2222)는 플래시 메모리(2210)와의 인터페이스를 제공한다. 호스트 인터페이스(2221)은 하나 또는 그보다 많은 채널들(또는, 포트들) (도시되지 않음)을 통해 호스트(2100)와 연결될 수 있다.
예를 들면, 호스트 인터페이스(2221)은 두 개의 채널들 즉, 병렬 ATA 버스 (parallel AT attachment bus, "PATA 버스"라 불림)와 직렬 ATA 버스 (serial AT attachment, "SATA 버스"라 불림) 중 어느 하나를 통해 호스트(2100)와 연결될 수 있다. 또는, 호스트 인터페이스(2221)은 PATA 버스 및 SATA 버스를 통해 외부와 연결될 수 있다. 또는, 호스트 인터페이스(2221)은 SCSI, USB, eMMC, UFS(universal flash storage) 인터페이스 등을 통해 외부와 연결될 수도 있다.
중앙처리장치(2223)는 메모리 컨트롤러(2210)에 대한 전반적인 동작(예를 들면, 읽기, 쓰기, 파일 시스템 관리, FTL 관리 등)을 제어할 수 있다. 예를 들면, 중앙처리장치(2223)는 롬(2224)에 저장된 플래시 변환 계층(FTL)이나 스피드 모드 관리자(2226) 등과 같은 펌웨어가 램(2225)에서 구동되도록 제어할 수 있다.
램(2225)은 중앙처리장치(2223)의 제어에 따라 동작하며, 워크 메모리(work memory), 버퍼 메모리(buffer memory), 캐시 메모리(cache memory) 등으로 사용될 수 있다. 램(2225)은 하나의 칩으로 구성되거나, 또는 플래시 메모리(2210)의 버퍼 영역(2211)이나 메인 영역(2212)에 대응하는 복수의 칩들로 구성될 수 있다.
램(2225)이 워크 메모리로 사용되는 경우에, 중앙처리장치(2223)에 의해서 처리되는 데이터가 임시 저장된다. 램(2225)이 버퍼 메모리로 사용되는 경우에는, 호스트(2100)에서 플래시 메모리(2210)로 또는 플래시 메모리(2210)에서 호스트(2100)로 전송될 데이터를 버퍼링하는 데 사용된다.
램(2225)이 캐시 메모리로 사용되는 경우(이하, 캐시 방법이라 함)에, 램(2225)은 저속의 플래시 메모리(2210)가 고속으로 동작하도록 한다. 캐시 방법에 의하면, 캐시 메모리(램, 2225)에 저장된 파일 데이터가 플래시 메모리(2210)의 버퍼 영역(2211)으로 덤프(dump) 된다. 중앙처리장치(2223)은 덤프(dump) 동작에 따른 맵핑 테이블(mapping table)을 관리한다. 램(2225)은 플래시 변환 계층(FTL)을 구동하기 위한 구동 메모리로 사용될 수 있다. 플래시 변환 계층(FTL)은 플래시 메모리의 머지 동작(merge operation)이나 맵핑 테이블(mapping table) 등을 관리하는 데 사용된다.
메모리 컨트롤러(2220)는 속도 모드 관리자(2226)를 포함할 수 있다. 속도 모드 관리자(2226)는 소프트웨어 또는 펌웨어로 구현되거나, 하드웨어로 구현될 수 있다. 속도 모드 관리자(2226)가 소프트웨어나 펌웨어인 경우에는, 램(2225)에서 동작할 수 있다.
도 9 및 도 10은 도 8에 도시된 속도 모드 관리자의 동작을 예시적으로 설명하기 위한 블록도이다. 도 9를 참조하면, 속도 모드 관리자(2226)는 호스트(도 8 참조, 2100)로부터 쓰기 요청(write request)과 데이터(data)를 입력 받는다. 쓰기 요청에는 쓰기 커맨드임을 알리는 커맨드 인덱스(command index), 쓰기 어드레스, 데이터 크기, 및 기타 정보를 포함한다.
속도 모드 관리자(2226)는 호스트(2100)의 쓰기 요청을 입력 받고, 데이터 크기 및 데이터 연속성 등의 정보를 이용하여, 입력된 데이터를 버퍼 영역(2211) 또는 메인 영역(2212)에 저장할 수 있다. 예를 들면, 속도 모드 관리자(2226)는 기준 크기 이상을 갖는 데이터가 연속적으로 기준 카운트 이상 입력되는 경우에, 저속 모드에서 고속 모드로 속도 모드를 변경한다. 고속 모드로 변경되면, 데이터 크기에 상관없이 연속적으로 입력되는 데이터는 버퍼 영역(2211)에 저장된다.
예시적으로, 버퍼 영역(2211)은 고속 쓰기 동작을 수행하는 SLC 플래시 메모리일 수 있다. 데이터가 버퍼 영역(2211)에 저장되는 동작은 SLC 버퍼링이라고 한다. 본 발명의 실시 예에 따른 사용자 장치(2000)는 대용량의 데이터가 연속적으로 입력되는 경우에, 쓰기 성능을 향상하기 위해 버퍼 영역(예를 들면, SLC)에 데이터를 저장한다.
도 10을 참조하면, SLC 버퍼링을 수행하다가 아이들 상태가 되면, 속도 모드 관리자(2226)는 고속 모드로부터 저속 모드로 속도 모드(speed mode)를 변경한다. 즉, 아이들 상태 이후에 입력되는 데이터는 메인 영역(2212)에 저장된다. 예시적으로, 메인 영역(2212)은 저속 쓰기 동작을 수행하는 MLC 플래시 메모리일 수 있다.
도 11은 도 10에 도시된 속도 모드 변경을 예시적으로 보여주는 다이어그램이다. 데이터의 기준 크기는 512KB이고, 연속적 데이터의 기준 카운트는 4라고 가정한다.
도 11을 참조하면, 512KB 크기를 갖는 제 1 내지 제 3 데이터가 입력된다. 제 1 내지 제 3 데이터는 저속 쓰기 동작을 수행하는 MLC 플래시 메모리에 저장된다. 512KB 크기를 제 4 데이터가 입력된 경우에는, 속도 모드 관리자(2226)는 저속 모드로부터 고속 모드로 속도 모드를 변경한다. 제 4 데이터(512KB)는 고속 쓰기 동작을 수행하는 SLC 플래시 메모리(2211)에 저장된다.
고속 모드로 변경된 다음에는, 연속적 데이터는 데이터 크기와 상관없이 고속 모드로 동작한다. 예를 들면, 4KB 크기를 갖는 데이터가 입력된 경우에도 고속 모드로 동작한다. 즉, 4KB 데이터는 SLC 플래시 메모리에 저장된다. 4KB 데이터가 입력된 다음에, 다시 512KB 데이터가 입력되어도 모드 변경 없이 SLC 플래시 메모리(2211)에 저장된다.
계속해서 도 11을 참조하면, 속도 모드 관리자(2226)는 고속 모드로 동작하다가 아이들 상태가 되면, 저속 모드로 속도 모드를 변경한다. 아이들 상태 후에 입력되는 512KB 데이터는 저속 쓰기 동작을 수행하는 MLC 플래시 메모리에 저장된다.
저속 모드로 변경되면, 다시 기준 크기 이상의 데이터가 연속적으로 기준 카운트 이상으로 입력되는 경우에만 고속 모드로 변경될 수 있다. 도 11에 도시된 바와 같이, 중간에 기준 크기보다 작은 4KB 데이터가 입력되면, 고속 모드로 변경되기 위해서는 기준 크기 이상의 데이터가 다시 연속적으로 기준 카운트 이상으로 입력되어야 한다.
도 12는 도 8에 도시된 플래시 메모리의 마이그레이션 동작을 설명하기 위한 블록도이다. 플래시 메모리(2210)의 버퍼 영역(2211)에 저장된 데이터는 메인 영역(2212)으로 옮겨질 수 있다. 버퍼 영역(2211)에서 메인 영역(2212)으로 데이터를 옮기는 동작을 마이그레이션 동작이라고 한다.
마이그레이션 동작은 다양한 방식들을 통해 수행될 수 있다. 예를 들면, 마이그레이션 동작은 버퍼 영역(2211)의 여유 공간이 미리 설정된 공간(예를 들면, 30%) 이하인 지의 여부에 따라 개시될 수 있다. 다른 예로, 마이그레이션 동작은 정해진 시간마다 주기적으로 개시될 수도 있다. 또 다른 예로, 마이그레이션 동작은 플래시 메모리(2210)의 유휴 시간(idle time)을 감지함으로써 개시될 수도 있다.
본 발명의 실시 예에 따른 사용자 장치가 쓰기 성능이 낮은 저장 장치를 포함한 경우에, 속도 모드 변경을 통해 고속 모드로 변경함으로 순간적으로 쓰기 성능을 높일 수 있다. 본 발명의 실시 예에 따른 저장 장치는 호스트로부터 속도 모드 변경을 위한 별도의 커맨드를 입력 받지 않고도, 자동으로 저속 모드에서 고속 모드로 속도 모드를 변경할 수 있다.
본 발명의 실시 예에 따른 사용자 장치는 여러 가지 제품에 적용 또는 응용될 수 있다. 본 발명의 실시 예에 따른 사용자 장치는 퍼스널 컴퓨터, 디지털 카메라, 캠코더, 휴대 전화, 스마트 폰, 테블릿, MP3, PMP, PSP, PDA 등과 같은 전자 장치일 수 있다. 그리고 저장 장치는 메모리 카드, USB 메모리, 솔리드 스테이트 드라이브(Solid State Drive, 이하 SSD라 함) 등과 같은 저장 매체로 구현될 수 있다.
도 13은 본 발명의 실시 예에 따른 사용자 장치를 메모리 카드 시스템에 적용한 예를 보여주는 블록도이다. 메모리 카드 시스템(3000)은 호스트(3100)와 메모리 카드(3200)를 포함한다. 호스트(3100)는 호스트 컨트롤러(3110), 호스트 접속 유닛(3120), 그리고 디램(3130)을 포함한다.
호스트(3100)는 메모리 카드(3200)에 데이터를 쓰거나, 메모리 카드(3200)에 저장된 데이터를 읽는다. 호스트 컨트롤러(3110)는 커맨드(예를 들면, 쓰기 커맨드), 호스트(3100) 내의 클록 발생기(도시되지 않음)에서 발생한 클록 신호(CLK), 그리고 데이터(DAT)를 호스트 접속 유닛(3120)을 통해 메모리 카드(3200)로 전송한다. 디램(3130)은 호스트(3100)의 메인 메모리이다.
메모리 카드(3200)는 카드 접속 유닛(3210), 카드 컨트롤러(3220), 그리고 플래시 메모리(3230)를 포함한다. 카드 컨트롤러(3220)는 카드 접속 유닛(3210)을 통해 수신된 커맨드에 응답하여, 카드 컨트롤러(3220) 내에 있는 클록 발생기(도시되지 않음)에서 발생한 클록 신호에 동기하여 데이터를 플래시 메모리(3230)에 저장한다. 플래시 메모리(3230)는 호스트(3100)로부터 전송된 데이터를 저장한다. 예를 들어, 호스트(3100)가 디지털 카메라인 경우에는 영상 데이터를 저장한다.
도 13에 도시된 메모리 카드 시스템(3000)은 카드 컨트롤러(3220) 내에 속도 모드 관리자(3221)를 포함할 수 있다. 그리고 플래시 메모리(3230)는 고속 쓰기 동작을 수행하는 버퍼 영역(3231, 예를 들면 SLC 메모리)와 저속 쓰기 동작을 수행하는 메인 영역(3232, MLC 메모리)를 포함한다. 본 발명의 실시 예에 따른 메모리 카드 시스템은 속도 모드 변경을 통해 고속 모드로 변경함으로 순간적으로 쓰기 성능을 높일 수 있다.
도 14는 본 발명의 실시 예에 따른 사용자 장치를 솔리드 스테이트 드라이브(SSD) 시스템에 적용한 예를 보여주는 블록도이다. 도 14를 참조하면, SSD 시스템(4000)은 호스트(4100)와 SSD(4200)를 포함한다. 호스트(4100)는 SSD(4200)에 데이터를 쓰거나, SSD(4200)에 저장된 데이터를 읽는다. 호스트 컨트롤러(4120)는 커맨드, 어드레스, 제어 신호 등의 신호(SGL)를 호스트 인터페이스(4111)를 통해 SSD(4200)로 전송한다.
SSD(4200)는 호스트 인터페이스(4211)를 통해 호스트(4100)와 신호(SGL)를 주고 받으며, 전원 커넥터(power connector, 4221)를 통해 전원을 입력 받는다. SSD(4200)는 복수의 불휘발성 메모리(4201~420n), SSD 컨트롤러(4210), 그리고 보조 전원 장치(4220)를 포함할 수 있다. 여기에서, 복수의 불휘발성 메모리(4201~420n)는 낸드 플래시 메모리 이외에도 PRAM, MRAM, ReRAM, FRAM 등으로 구현될 수 있다.
복수의 불휘발성 메모리(4201~420n)는 SSD(4200)의 저장 매체로서 사용된다. 복수의 불휘발성 메모리(4201~420n)는 복수의 채널(CH1~CHn)을 통해 SSD 컨트롤러(4210)와 연결될 수 있다. 하나의 채널에는 하나 또는 그 이상의 불휘발성 메모리가 연결될 수 있다. 하나의 채널에 연결되는 불휘발성 메모리는 동일한 데이터 버스에 연결될 수 있다.
SSD 컨트롤러(4210)는 호스트 인터페이스(4211)를 통해 호스트(4100)와 신호(SGL)를 주고 받는다. 여기에서, 신호(SGL)에는 커맨드, 어드레스, 데이터 등이 포함될 수 있다. SSD 컨트롤러(4210)는 호스트(4100)의 커맨드에 따라 해당 불휘발성 메모리에 데이터를 쓰거나 해당 불휘발성 메모리로부터 데이터를 읽어낸다. SSD 컨트롤러(4210)는 그 내부에 속도 모드 관리자(4213)를 포함할 수 있다.
보조 전원 장치(4220)는 전원 커넥터(4221)를 통해 호스트(4100)와 연결된다. 보조 전원 장치(4220)는 호스트(4100)로부터 전원(PWR)을 입력 받고, 충전할 수 있다. 한편, 보조 전원 장치(4220)는 SSD(4200) 내에 위치할 수도 있고, SSD(4200) 밖에 위치할 수도 있다. 예를 들면, 보조 전원 장치(4220)는 메인 보드에 위치하며, SSD(4200)에 보조 전원을 제공할 수도 있다.
도 15는 도 14에 도시된 SSD 컨트롤러(4210)의 구성을 예시적으로 보여주는 블록도이다. 도 15를 참조하면, SSD 컨트롤러(4210)는 NVM 인터페이스(4211), 호스트 인터페이스(4212), 속도 모드 관리자(4213), 제어 유닛(4214), 그리고 에스램(4215)을 포함한다.
NVM 인터페이스(4211)는 호스트(4100)의 메인 메모리로부터 전달된 데이터를 각각의 채널들(CH1~CHn)로 스캐터링(Scattering)한다. 그리고 NVM 인터페이스(4211)는 불휘발성 메모리(4201~420n)로부터 읽은 데이터를 호스트 인터페이스(4212)를 경유하여 호스트(4100)로 전달한다.
호스트 인터페이스(4212)는 호스트(4100)의 프로토콜에 대응하여 SSD(4200)와의 인터페이싱을 제공한다. 호스트 인터페이스(4212)는 USB(Universal Serial Bus), SCSI(Small Computer System Interface), PCI express, ATA, PATA(Parallel ATA), SATA(Serial ATA), SAS(Serial Attached SCSI) 등을 이용하여 호스트(4100)와 통신할 수 있다. 또한, 호스트 인터페이스(4212)는 호스트(4100)가 SSD(4200)를 하드 디스크 드라이브(HDD)로 인식하도록 지원하는 디스크 에뮬레이션(Disk Emulation) 기능을 수행할 수 있다.
속도 모드 관리자(4213)는 앞에서 설명한 바와 같이 불휘발성 메모리(4201~420n)의 속도 모드를 변경할 수 있다. 제어 유닛(4214)은 호스트(4100)로부터 입력된 신호(SGL)를 분석하고 처리한다. 제어 유닛(4214)은 호스트 인터페이스(4212)나 NVM 인터페이스(4211)를 통해 호스트(4100)나 불휘발성 메모리(4201~420n)를 제어한다. 제어 유닛(4214)은 SSD(4200)을 구동하기 위한 펌웨어에 따라서 불휘발성 메모리(4201~420n)의 동작을 제어한다.
에스램(4215)은 불휘발성 메모리(4201~420n)의 효율적 관리를 위해 사용되는 소프트웨어(S/W)를 구동하는 데 사용될 수 있다. 또한, 에스램(4215)은 호스트(4100)의 메인 메모리로부터 입력 받은 메타 데이터를 저장하거나, 캐시 데이터를 저장할 수 있다. 서든 파워 오프 동작 시에, 에스램(4215)에 저장된 메타 데이터나 캐시 데이터는 보조 전원 장치(4220)를 이용하여 불휘발성 메모리(4201~420n)에 저장될 수 있다.
다시 도 14를 참조하면, 본 발명의 실시 예에 따른 SSD 시스템(4000)은 앞에서 설명한 바와 같이, 복수의 불휘발성 메모리(4201~420n)의 버퍼 영역과 메인 영역 간의 속도 모드 변경을 통해 순간적으로 쓰기 성능을 높일 수 있다.
도 16은 본 발명의 실시 예에 따른 메모리 시스템을 전자 장치로 구현한 예를 보여주는 블록도이다. 여기에서, 전자 장치(5000)는 퍼스널 컴퓨터(PC)로 구현되거나, 노트북 컴퓨터, 휴대폰, PDA(Personal Digital Assistant), 그리고 카메라 등과 같은 휴대용 전자 장치로 구현될 수 있다.
도 16을 참조하면, 전자 장치(5000)는 메모리 시스템(5100), 전원 장치(5200), 보조 전원 장치(5250), 중앙처리장치(5300), 디램(5400), 그리고 사용자 인터페이스(5500)를 포함한다. 메모리 시스템(5100)은 플래시 메모리(5110) 및 메모리 컨트롤러(5120)를 포함한다. 메모리 시스템(5100)은 전자 장치(5000)에 내장될 수 있다.
앞에서 설명한 바와 같이, 본 발명에 따른 전자 장치(5000)는 플래시 메모리(5110)의 버퍼 영역과 메인 영역 간의 속도 모드를 변경함으로, 데이터의 쓰기 성능을 높일 수 있다.
본 발명의 실시 예에 따른 사용자 장치는 휴대 단말기와 고정 단말기를 포함한다. 여기서, 휴대 단말기는 휴대가 용이하게 이동 가능한 전자기기로서, 화상 전화기, 휴대폰, 스마트 폰(smart phone), IMT-2000(International Mobile Telecommunication 2000) 단말기, WCDMA 단말기, UMTS(Universal Mobile Telecommunication Service) 단말기, PDA(Personal Digital Assistant), PMP(Portable Multimedia Player), DMB(Digital Multimedia Broadcasting) 단말기, E-Book, 휴대용 컴퓨터(Notebook, Tablet 등) 또는 디지털 카메라(Digital Camera) 등이 될 수 있다. 그리고 고정 단말기는 데스크탑(desktop) 개인용 컴퓨터 등이 될 수 있다.
도 17은 본 발명의 실시 예에 따른 단말기를 예시적으로 보여주는 블록도이다. 도 17을 참조하면, RF부(6230)는 단말기의 무선 통신 기능을 수행한다. RF부(6230)는 송신되는 신호의 주파수를 상승 변환 및 증폭하는 RF송신기와, 수신되는 신호를 저잡음 증폭하고 주파수를 하강 변환하는 RF수신기 등을 포함한다.
데이터 신호 처리부(DSP, 6200)는 송신되는 신호를 부호화 및 변조하는 송신기 및 수신되는 신호를 복조 및 복호화 하는 수신기 등을 구비한다. 즉, 데이터 신호 처리부(6200)는 모뎀(MODEM) 및 코덱(CODEC)으로 구성될 수 있다. 여기서 코덱은 패킷 데이터 등을 처리하는 데이터 코덱과 음성 등의 오디오 신호를 처리하는 오디오 코덱을 구비한다.
오디오 처리부(6250)는 데이터 신호 처리부(6200)의 오디오 코덱에서 출력되는 수신 오디오 신호를 재생하거나 또는 마이크로부터 발생되는 송신 오디오 신호를 데이터 신호 처리부(6200)의 오디오 코덱에 전송하는 기능을 수행한다.
키보드(6270)는 숫자 및 문자 정보를 입력하기 위한 키들 및 각종 기능들을 설정하기 위한 기능 키들을 구비한다. 카메라부(6400)는 영상 데이터를 촬영하며, 촬영된 광 신호를 전기적 신호로 변환하는 카메라 센서와, 카메라 센서로부터 촬영되는 아날로그 영상신호를 디지털 데이터로 변환하는 신호 처리부를 구비한다. 여기서, 카메라 센서는 CCD 또는 CMOS 센서라 가정하며, 신호 처리부는 DSP(Digital Signal Processor)로 구현할 수 있다. 또한, 카메라 센서 및 신호 처리부는 일체형으로 구현할 수 있으며, 또한 분리하여 구현할 수도 있다.
영상 처리부(6500)는 카메라부(6400)에서 출력되는 영상신호를 표시부(6600)에 표시하기 위한 ISP(Image Signal Processing)를 수행하며, ISP는 감마교정, 인터폴레이션, 공간적 변화, 이미지 효과, 이미지 스케일, AWB, AE, AF 등과 같은 기능을 수행한다. 따라서 영상 처리부(6500)는 카메라부(6400)에서 출력되는 영상신호를 프레임 단위로 처리하며, 프레임 영상 데이터를 표시부(6600)의 특성 및 크기에 맞춰 출력한다. 또한, 영상 처리부(6500)는 영상 코덱을 구비하며, 표시부(6600)에 표시되는 프레임 영상 데이터를 설정된 방식으로 압축하거나, 압축된 프레임 영상 데이터를 원래의 프레임 영상 데이터로 복원하는 기능을 수행한다. 여기서, 영상 코덱은 JPEG 코덱, MPEG4 코덱, Wavelet 코덱 등이 될 수 있다. 영상 처리부(6500)는 OSD(On Screen Display) 기능을 구비한다고 가정하며, 프로세서(6100)의 제어하여 표시되는 화면 크기에 따라 온 스크린 표시 데이터를 출력할 수 있다.
표시부(6600)는 영상 처리부(6500)에서 출력되는 영상 신호를 화면으로 표시하며, 프로세서(6100)에서 출력되는 사용자 데이터를 표시한다. 여기서, 표시부(6600)는 LCD를 사용할 수 있으며, 이런 경우 표시부(6600)는 LCD 제어부(LCD controller), 영상 데이터를 저장할 수 있는 메모리 및 LCD 표시 소자 등을 구비할 수 있다. 여기서 LCD를 터치 스크린(touch screen) 방식으로 구현하는 경우, 입력부로 동작할 수도 있으며, 이때 표시부(6600)에는 키 보드(6270)와 같은 키들을 표시할 수 있다.
스토리지(6300)는 플래시 메모리(6310)를 포함한다. 플래시 메모리(6310)는 고속 쓰기 동작을 수행하는 SLC 영역(6311)과 저속 쓰기 동작을 수행하는 MLC 영역(6312)을 포함할 수 있다. 스토리지(6300)는 프로세서(6100)로부터 별도의 커맨드를 입력 받지 않고도, 대용량의 고속 저장이 필요한 데이터를 플래시 메모리(6310)의 SLC 영역(6311)에 저장할 수 있도록 제어하는 프로그램들을 저장할 수 있다. 또한, 스토리지(6300)는 아이들 상태인 경우에 속도 변경을 통해, MLC 영역(6312)에 데이터가 저장되도록 제어하는 프로그램들을 저장할 수 있다.
본 발명의 범위 또는 기술적 사상을 벗어나지 않고 본 발명의 구조가 다양하게 수정되거나 변경될 수 있음은 이 분야에 숙련된 자들에게 자명하다. 상술한 내용을 고려하여 볼 때, 만약 본 발명의 수정 및 변경이 아래의 청구항들 및 동등물의 범주 내에 속한다면, 본 발명이 이 발명의 변경 및 수정을 포함하는 것으로 여겨진다.
1000, 2000: 사용자 장치
1100, 2100: 호스트
1200, 2200: 저장 장치
1210, 2210: 불휘발성 메모리 (또는 플래시 메모리)
1211, 2211: 버퍼 영역 (고속 메모리)
1212, 2212: 메인 영역 (저속 메모리)
1220, 2220: 메모리 컨트롤러
1226, 2226: 속도 모드 관리자

Claims (20)

  1. 제 1 쓰기 동작을 수행하는 버퍼 영역과 제 2 쓰기 동작을 수행하는 메인 영역을 갖는 불휘발성 메모리; 및
    기준 크기 이상인 데이터가 연속적으로 기준 카운트 이상으로 입력되는 경우에, 상기 버퍼 영역에 데이터를 저장하는 메모리 컨트롤러를 포함하는 저장 장치.
  2. 제 1 항에 있어서,
    상기 버퍼 영역에는 하나의 메모리 셀에 N-비트 데이터(N은 자연수)가 저장되고, 상기 메인 영역에는 하나의 메모리 셀에 N-비트보다 많은 데이터가 저장되는 저장 장치.
  3. 제 1 항에 있어서,
    상기 메모리 컨트롤러는 상기 버퍼 영역에 데이터를 저장하는 제 1 모드와 상기 메인 영역에 데이터를 저장하는 제 2 모드 사이에서, 모드를 변경하기 위한 모드 관리자를 포함하는 저장 장치.
  4. 제 3 항에 있어서,
    상기 모드 관리자는 기준 크기 이상인 데이터가 연속적으로 기준 카운트 이상으로 입력되는 경우에 제 1 모드로 속도 모드를 변경하고, 아이들 상태인 경우에 제 2 모드로 속도 모드를 변경하는 저장 장치.
  5. 제 4 항에 있어서,
    상기 메모리 컨트롤러는 제 1 모드로 변경된 경우에, 아이들 상태 없이 연속적으로 데이터가 입력되면 데이터 크기에 상관없이 제 2 모드를 유지하는 저장 장치.
  6. 제 1 항에 있어서,
    상기 메모리 컨트롤러는 상기 버퍼 영역에 저장된 데이터를 상기 메인 영역으로 옮기는 마이그레이션 동작을 수행하는 저장 장치.
  7. 제 6 항에 있어서,
    상기 메모리 컨트롤러는 유휴 시간(idle time) 동안에 마이그레이션 동작을 수행하는 저장 장치.
  8. 제 1 항에 있어서,
    상기 버퍼 영역 및 상기 메인 영역은 하나의 메모리 칩으로 구현되거나, 서로 다른 메모리 칩으로 구현되는 저장 장치.
  9. 제 1 쓰기 동작을 수행하는 버퍼 영역과 제 2 쓰기 동작을 수행하는 메인 영역을 갖는 플래시 메모리; 및
    기준 크기 이상인 데이터의 연속성에 따라, 상기 버퍼 영역 또는 상기 메인 영역에 데이터를 저장하는 메모리 컨트롤러를 포함하는 저장 장치.
  10. 제 9 항에 있어서,
    상기 메모리 컨트롤러는 기준 크기 이상인 데이터가 기준 카운트 이상으로 입력되는 경우에, 상기 버퍼 영역에 데이터를 저장하는 저장 장치.
  11. 제 10 항에 있어서,
    상기 메모리 컨트롤러는 기준 크기 이상인 데이터가 기준 카운트 이상으로 입력된 다음에, 아이들 상태가 발생하면 상기 메인 영역에 데이터를 저장하는 저장 장치.
  12. 제 11 항에 있어서,
    상기 메모리 컨트롤러는 기준 크기 이상인 데이터가 기준 카운트 이상으로 입력되고 아이들 상태가 발생하기 전까지, 데이트 크기에 상관없이 상기 버퍼 영역에 데이터를 저장하는 저장 장치.
  13. 제 9 항에 있어서,
    상기 버퍼 영역은 N-비트 데이터(N은 자연수)가 저장되는 메모리이고, 상기 메인 영역은 N-비트보다 많은 데이터가 저장되는 메모리인 저장 장치.
  14. 제 9 항에 있어서,
    상기 메모리 컨트롤러는 상기 버퍼 영역에 데이터를 저장하는 제 1 속도 모드와 상기 메인 영역에 데이터를 저장하는 제 2 속도 모드 사이에서, 속도 모드를 변경하기 위한 속도 모드 관리자를 포함하는 저장 장치.
  15. 제 14 항에 있어서,
    상기 속도 모드 관리자는 기준 크기 이상인 데이터의 연속성에 따라, 속도 모드를 변경하는 저장 장치
  16. 쓰기 요청과 데이터를 제공하는 호스트; 및
    상기 호스트로부터 쓰기 요청과 데이터를 입력 받고, 데이터의 연속성에 따라, 플래시 메모리의 버퍼 영역 또는 메인 영역에 데이터를 저장하는 저장 장치를 포함하되,
    상기 저장 장치는 기준 크기 이상인 데이터가 연속적으로 기준 카운트 이상으로 입력되는 경우에, 상기 버퍼 영역에 데이터를 저장하는 사용자 장치.
  17. 제 16 항에 있어서,
    상기 저장 장치는 기준 크기 이상인 데이터가 기준 카운트 이상으로 입력된 다음에, 아이들 상태가 발생하면 상기 메인 영역에 데이터를 저장하는 사용자 장치.
  18. 제 16 항에 있어서,
    상기 저장 장치는 기준 크기 이상인 데이터가 기준 카운트 이상으로 입력되고 아이들 상태가 발생하기 전까지, 데이트 크기에 상관없이 상기 버퍼 영역에 데이터를 저장하는 사용자 장치.
  19. 제 16 항에 있어서,
    상기 저장 장치는 상기 버퍼 영역에 데이터를 저장하는 제 1 모드와 상기 메인 영역에 데이터를 저장하는 제 2 모드 사이에서, 모드를 변경하기 위한 속도 모드 관리자를 포함하는 사용자 장치.
  20. 제 16 항에 있어서,
    상기 호스트와 상기 저장 장치는 모바일 전자 장치로 구현되는 사용자 장치.
KR1020150006010A 2015-01-13 2015-01-13 속도 모드 관리자를 포함하는 저장 장치 및 사용자 장치 KR102295223B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020150006010A KR102295223B1 (ko) 2015-01-13 2015-01-13 속도 모드 관리자를 포함하는 저장 장치 및 사용자 장치
US14/993,146 US10120794B2 (en) 2015-01-13 2016-01-12 Storage device including buffer and main memories, and user device including the same
CN201610021169.4A CN105786403B (zh) 2015-01-13 2016-01-13 包括缓冲器和主存储器的存储装置及用户装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150006010A KR102295223B1 (ko) 2015-01-13 2015-01-13 속도 모드 관리자를 포함하는 저장 장치 및 사용자 장치

Publications (2)

Publication Number Publication Date
KR20160087426A true KR20160087426A (ko) 2016-07-22
KR102295223B1 KR102295223B1 (ko) 2021-09-01

Family

ID=56367673

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150006010A KR102295223B1 (ko) 2015-01-13 2015-01-13 속도 모드 관리자를 포함하는 저장 장치 및 사용자 장치

Country Status (3)

Country Link
US (1) US10120794B2 (ko)
KR (1) KR102295223B1 (ko)
CN (1) CN105786403B (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10515693B1 (en) 2018-08-03 2019-12-24 SK Hynix Inc. Data storage apparatus and operating method thereof
WO2020180045A1 (en) * 2019-03-07 2020-09-10 Samsung Electronics Co., Ltd. Electronic device and method for utilizing memory space thereof
US11150811B2 (en) 2018-01-03 2021-10-19 SK Hynix Inc. Data storage apparatus performing flush write operation, operating method thereof, and data processing system including the same
US11537295B2 (en) 2020-09-09 2022-12-27 SK Hynix Inc. Memory system and method of operating the memory system
US11544204B2 (en) 2019-06-13 2023-01-03 SK Hynix Inc. Memory system, memory controller and method for operating memory controller

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102369940B1 (ko) * 2015-04-27 2022-03-04 에스케이하이닉스 주식회사 저장 장치 및 이를 포함하는 메모리 시스템
KR102356523B1 (ko) * 2015-08-04 2022-02-03 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US9818458B1 (en) * 2015-09-23 2017-11-14 Intel Corporation Techniques for entry to a lower power state for a memory device
FR3051574A1 (fr) * 2016-05-20 2017-11-24 Proton World Int Nv Gestion du stockage dans une memoire flash
FR3055992A1 (fr) 2016-09-09 2018-03-16 Proton World International N.V. Gestion d'index dans une memoire flash
JP6524039B2 (ja) * 2016-09-23 2019-06-05 東芝メモリ株式会社 メモリシステム及び制御方法
KR102430983B1 (ko) * 2017-09-22 2022-08-09 삼성전자주식회사 스토리지 장치 및 그 동작 방법
FR3072476A1 (fr) 2017-10-13 2019-04-19 Proton World International N.V. Unite logique de memoire pour memoire flash
KR102507302B1 (ko) * 2018-01-22 2023-03-07 삼성전자주식회사 스토리지 장치 및 상기 스토리지 장치의 동작 방법
KR20200075565A (ko) * 2018-12-18 2020-06-26 에스케이하이닉스 주식회사 스마트 카 시스템
KR20200110547A (ko) * 2019-03-14 2020-09-24 삼성전자주식회사 스토리지 장치 및 스토리지 장치를 포함하는 컴퓨팅 장치
KR20200142219A (ko) 2019-06-12 2020-12-22 삼성전자주식회사 전자 장치 및 그의 저장 공간 이용 방법
US11294820B2 (en) * 2019-06-28 2022-04-05 Micron Technology, Inc. Management of programming mode transitions to accommodate a constant size of data transfer between a host system and a memory sub-system
KR20220022139A (ko) * 2020-08-18 2022-02-25 에스케이하이닉스 주식회사 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법
KR20220031793A (ko) 2020-09-03 2022-03-14 삼성전자주식회사 메모리 장치, 그것을 포함하는 메모리 시스템, 그것을 제어하는 제어기 및 그것의 동작 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090017238A (ko) * 2007-08-14 2009-02-18 삼성전자주식회사 반도체 드라이브, 그것의 데이터 저장 방법, 그리고 그것을포함한 컴퓨팅 시스템
KR20090102192A (ko) * 2008-03-25 2009-09-30 삼성전자주식회사 메모리 시스템 및 그것의 데이터 저장 방법
KR20120076083A (ko) * 2010-12-29 2012-07-09 삼성전자주식회사 멀티-비트 메모리 장치를 포함한 데이터 저장 시스템 및 그것의 동작 방법
KR20120138115A (ko) * 2011-06-14 2012-12-24 삼성전자주식회사 멀티-비트 메모리 장치를 포함한 데이터 저장 시스템 및 그것의 온-칩 버퍼 프로그램 방법
KR20130096489A (ko) * 2012-02-22 2013-08-30 삼성전자주식회사 메모리 시스템 및 그것의 프로그램 방법

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4269870B2 (ja) 2003-10-02 2009-05-27 ソニー株式会社 記録再生装置及び記録方法
JP4182993B2 (ja) 2006-06-30 2008-11-19 Tdk株式会社 メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
KR100771521B1 (ko) 2006-10-30 2007-10-30 삼성전자주식회사 멀티 레벨 셀을 포함하는 플래시 메모리 장치 및 그것의데이터 쓰기 방법
KR100878479B1 (ko) 2007-01-16 2009-01-14 삼성전자주식회사 데이터 정보에 따라 프로그램 방식을 결정하는 메모리시스템
KR101226685B1 (ko) 2007-11-08 2013-01-25 삼성전자주식회사 수직형 반도체 소자 및 그 제조 방법.
KR101060258B1 (ko) 2008-07-10 2011-08-30 주식회사 하이닉스반도체 불휘발성 메모리 장치의 멀티 레벨 셀 프로그램 방법
US8266371B2 (en) 2008-07-30 2012-09-11 Panasonic Corporation Non-volatile storage device, host device, non-volatile storage system, data recording method, and program
KR101529290B1 (ko) * 2008-10-02 2015-06-17 삼성전자주식회사 반도체 디스크 장치 및 그것의 데이터 처리 방법
KR101691092B1 (ko) 2010-08-26 2016-12-30 삼성전자주식회사 불휘발성 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템
US8553466B2 (en) 2010-03-04 2013-10-08 Samsung Electronics Co., Ltd. Non-volatile memory device, erasing method thereof, and memory system including the same
US9536970B2 (en) 2010-03-26 2017-01-03 Samsung Electronics Co., Ltd. Three-dimensional semiconductor memory devices and methods of fabricating the same
JP2013530448A (ja) * 2010-05-05 2013-07-25 マーベル ワールド トレード リミテッド キャッシュストレージアダプタアーキテクチャ
KR101662827B1 (ko) * 2010-07-02 2016-10-06 삼성전자주식회사 쓰기 패턴에 따라 데이터 블록의 쓰기 모드를 선택하는 메모리 시스템 및 그것의 데이터 쓰기 방법
KR101682666B1 (ko) 2010-08-11 2016-12-07 삼성전자주식회사 비휘발성 메모리 장치, 그것의 채널 부스팅 방법, 그것의 프로그램 방법 및 그것을 포함하는 메모리 시스템
KR101717081B1 (ko) * 2011-03-23 2017-03-28 삼성전자주식회사 비휘발성 램과 휘발성 램을 버퍼 메모리로 사용하는 저장 장치
KR101888074B1 (ko) * 2012-01-09 2018-08-13 삼성전자주식회사 저장 장치 및 불휘발성 메모리 장치, 그리고 그것의 동작 방법
US9043572B2 (en) * 2012-07-16 2015-05-26 International Business Machines Corporation Automatically preventing large block writes from starving small block writes in a storage device
KR20140033964A (ko) 2012-09-11 2014-03-19 삼성전자주식회사 단말기의 데이터 저장장치 및 방법
KR20140035769A (ko) 2012-09-14 2014-03-24 삼성전자주식회사 연속 촬영 이미지 데이터를 처리할 수 있는 방법들과 장치들
US8990509B2 (en) * 2012-09-24 2015-03-24 Hewlett-Packard Development Company, L.P. Accelerated path selection based on number of write requests and sequential trend
US9026693B2 (en) * 2013-08-05 2015-05-05 Samsung Electronics Co., Ltd. Method for filtering cached input/output data based on data generation/consumption
US10656842B2 (en) * 2014-05-30 2020-05-19 Sandisk Technologies Llc Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090017238A (ko) * 2007-08-14 2009-02-18 삼성전자주식회사 반도체 드라이브, 그것의 데이터 저장 방법, 그리고 그것을포함한 컴퓨팅 시스템
KR20090102192A (ko) * 2008-03-25 2009-09-30 삼성전자주식회사 메모리 시스템 및 그것의 데이터 저장 방법
KR20120076083A (ko) * 2010-12-29 2012-07-09 삼성전자주식회사 멀티-비트 메모리 장치를 포함한 데이터 저장 시스템 및 그것의 동작 방법
KR20120138115A (ko) * 2011-06-14 2012-12-24 삼성전자주식회사 멀티-비트 메모리 장치를 포함한 데이터 저장 시스템 및 그것의 온-칩 버퍼 프로그램 방법
KR20130096489A (ko) * 2012-02-22 2013-08-30 삼성전자주식회사 메모리 시스템 및 그것의 프로그램 방법

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11150811B2 (en) 2018-01-03 2021-10-19 SK Hynix Inc. Data storage apparatus performing flush write operation, operating method thereof, and data processing system including the same
US10515693B1 (en) 2018-08-03 2019-12-24 SK Hynix Inc. Data storage apparatus and operating method thereof
CN110795360A (zh) * 2018-08-03 2020-02-14 爱思开海力士有限公司 数据存储设备以及该数据存储设备的操作方法
CN110795360B (zh) * 2018-08-03 2023-03-10 爱思开海力士有限公司 数据存储设备以及该数据存储设备的操作方法
WO2020180045A1 (en) * 2019-03-07 2020-09-10 Samsung Electronics Co., Ltd. Electronic device and method for utilizing memory space thereof
US11487452B2 (en) 2019-03-07 2022-11-01 Samsung Electronics Co., Ltd. Electronic device and method for utilizing memory space thereof
US11544204B2 (en) 2019-06-13 2023-01-03 SK Hynix Inc. Memory system, memory controller and method for operating memory controller
US11537295B2 (en) 2020-09-09 2022-12-27 SK Hynix Inc. Memory system and method of operating the memory system

Also Published As

Publication number Publication date
CN105786403A (zh) 2016-07-20
US20160203075A1 (en) 2016-07-14
KR102295223B1 (ko) 2021-09-01
CN105786403B (zh) 2020-09-11
US10120794B2 (en) 2018-11-06

Similar Documents

Publication Publication Date Title
KR102295223B1 (ko) 속도 모드 관리자를 포함하는 저장 장치 및 사용자 장치
US11782647B2 (en) Managing operational state data in memory module
KR102308777B1 (ko) 비휘발성 메모리 시스템 및 비휘발성 메모리 시스템의 동작방법
KR20140033964A (ko) 단말기의 데이터 저장장치 및 방법
KR20130031046A (ko) 플래시 메모리 장치 및 플래시 메모리 장치의 데이터 관리 방법
KR20110097438A (ko) 메모리 시스템, 그리고 그것의 동작 방법
US9690490B2 (en) Method for writing data, memory storage device and memory control circuit unit
US20150019794A1 (en) Data storage device and operating method thereof
KR20150068747A (ko) 비휘발성 메모리 시스템, 이를 포함하는 모바일 장치 및 비휘발성 메모리 시스템의 동작방법
US9436267B2 (en) Data storage device
KR20170105760A (ko) 데이터 저장 장치 및 그것의 동작 방법
KR20160025292A (ko) 데이터 저장 장치, 그것을 포함하는 데이터 처리 시스템 및 그것의 동작 방법
TW202205095A (zh) 資料儲存裝置與資料處理方法
TW202006553A (zh) 快閃記憶體的資料內部搬移方法以及使用該方法的裝置
US9324444B2 (en) Data storage device
US11748026B2 (en) Mapping information recording method, memory control circuit unit, and memory storage device
KR20150020384A (ko) 데이터 저장 장치 및 그것의 동작 방법
KR102060996B1 (ko) 단말기의 메모리 주소 및 데이터변환 장치 및 방법
KR20150102329A (ko) 데이터 저장 장치
US20240126463A1 (en) Data storage device and method for determining buffer size of the data storage device
TWI760262B (zh) 資料儲存裝置與資料處理方法
TWI790568B (zh) 記憶體裝置的工作狀態控制方法與資料儲存系統
US20240143208A1 (en) Data storage device and method for determining buffer size of the data storage device
US20230161503A1 (en) Memory management method, memory storage device and memory control circuit unit
CN117539393A (zh) 数据存储方法、数据存储装置和电子设备

Legal Events

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