KR20230027957A - 호스트 및 스토리지 장치를 포함하는 스토리지 시스템 및 이의 동작 방법 - Google Patents

호스트 및 스토리지 장치를 포함하는 스토리지 시스템 및 이의 동작 방법 Download PDF

Info

Publication number
KR20230027957A
KR20230027957A KR1020210110306A KR20210110306A KR20230027957A KR 20230027957 A KR20230027957 A KR 20230027957A KR 1020210110306 A KR1020210110306 A KR 1020210110306A KR 20210110306 A KR20210110306 A KR 20210110306A KR 20230027957 A KR20230027957 A KR 20230027957A
Authority
KR
South Korea
Prior art keywords
mode
file
folder
data
change request
Prior art date
Application number
KR1020210110306A
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 KR1020210110306A priority Critical patent/KR20230027957A/ko
Priority to CN202210706541.0A priority patent/CN115904218A/zh
Priority to US17/848,820 priority patent/US11822800B2/en
Publication of KR20230027957A publication Critical patent/KR20230027957A/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/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • 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
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/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/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
    • 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/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

호스트 및 스토리지 장치를 포함하는 스토리지 시스템 및 이의 동작 방법이 개시된다. 본 개시의 기술적 사상의 일측면에 따른 메모리 장치와 연결되는 메모리 컨트롤러의 동작 방법은, 적어도 하나의 파일이 관리되는 단위인 폴더에 대하여, 호스트에 의해 상기 폴더에 대한 제1 모드 변경 요청 및 상기 적어도 하나의 파일에 대한 논리 주소를 상기 호스트로부터 수신하는 단계와 상기 제1 모드 변경 요청에 대한 응답으로서, 상기 메모리 장치에 상기 논리 주소에 대응되는 제1 데이터를 제2 동작 모드로 재기입하고, 상기 논리 주소 및 상기 제1 데이터에 대응되어 제1 동작 모드로 기입이 완료된 제1 기존 데이터를 무효화하는 단계를 포함하고, 상기 제1 모드 변경 요청은 상기 폴더에 포함된 상기 적어도 하나의 파일에 대한 데이터 동작 속도를 고속 모드로 설정하는 것을 특징으로 한다.

Description

호스트 및 스토리지 장치를 포함하는 스토리지 시스템 및 이의 동작 방법{STORAGE SYSTEM INCLUDING HOST AND STORAGE DEVICE AND OPERATION METHOD THEREOF}
본 개시의 기술적 사상은 스토리지 시스템에 관한 것으로서, 상세하게는 호스트 및 스토리지 장치를 포함하는 스토리지 시스템 및 이의 동작 방법에 관한 것이다.
비휘발성 메모리는 전원이 차단되어도 저장하고 있는 데이터를 유지할 수 있다. 특히 플래시 기반의 비휘발성 메모리를 포함하는 스토리지 장치가 널리 사용되고 있다. 플래시 메모리 장치를 기반으로 하는 스토리지 장치와 호스트 장치를 포함하는 스토리지 시스템의 예로써 솔리스 스테이트 드라이브(solid state drive, SSD)가 있다.
SSD에 데이터를 저장할 때, 빠른 입출력 속도가 중요할 수 있고 또는 저장 공간을 최대한 확보하는 것이 중요할 수 있다. 이 두가지 요건을 모두 만족시키기는 기술적으로 어려우므로, 데이터의 특성에 따라 입출력 속도를 우선시할지 저장 공간 확보를 우선시할지 결정함으로써, SSD를 효율적으로 사용할 수 있다.
본 개시의 기술적 사상이 해결하려는 과제는, 복수의 파일들의 데이터 동작 속도를 폴더 단위로 설정하는 호스트 및 스토리지 장치를 포함하는 스토리지 시스템 및 이의 동작 방법을 제공하는 데 있다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 따른 메모리 장치와 연결되는 메모리 컨트롤러의 동작 방법은, 적어도 하나의 파일이 관리되는 단위인 폴더에 대하여, 호스트에 의해 상기 폴더에 대한 제1 모드 변경 요청 및 상기 적어도 하나의 파일에 대한 논리 주소를 상기 호스트로부터 수신하는 단계, 상기 제1 모드 변경 요청에 대한 응답으로서, 상기 메모리 장치에 상기 논리 주소에 대응되는 제1 데이터를 제2 동작 모드로 재기입하고, 상기 논리 주소 및 상기 제1 데이터에 대응되어 제1 동작 모드로 기입이 완료된 제1 기존 데이터를 무효화하는 단계를 포함하고, 상기 제1 모드 변경 요청은 상기 폴더에 포함된 상기 적어도 하나의 파일에 대한 데이터 동작 속도를 고속 모드로 설정하는 것을 특징으로 한다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 따른 메모리 장치를 포함하는 스토리지 장치와 연결되는 호스트의 동작 방법은, 적어도 하나의 파일이 관리되는 단위인 폴더에 대하여, 상기 호스트에 의해 상기 폴더의 동작 모드가 제1 동작 모드로 설정되는 단계, 상기 적어도 하나의 파일에 대한 데이터 동작 속도를 고속 모드로 설정하기 위한 제1 모드 변경 요청을 생성하고, 상기 적어도 하나의 파일에 대한 논리 주소를 추출하는 단계, 상기 폴더의 정보를 관리 테이블에 추가하는 단계, 상기 제1 모드 변경 요청 및 상기 논리 주소를 상기 스토리지 장치로 제공하는 단계, 상기 스토리지 장치의 저장 공간에 따라, 상기 제1 모드 변경 요청에 대하여, 상기 적어도 하나의 파일의 기입의 성공 여부를 포함하는 응답을 수신하는 단계를 포함하는 것을 특징으로 한다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 따른 스토리지 시스템은 호스트 및 스토리지 장치를 포함하고, 상기 호스트는, 데이터의 동작 모드가, 상기 데이터의 기입 속도 및 독출 속도 중 적어도 하나를 고속으로 설정하기 위한 제1 동작 모드로 설정됨에 따라, 제1 모드 변경 요청을 생성하고, 상기 데이터의 논리 주소를 추출하도록 구성되는 모드 매니저와 상기 데이터의 경로를 포함하는 관리 테이블을 생성하고, 상기 제1 모드 변경 요청 및 상기 논리 주소를 상기 스토리지 장치로 제공하도록 구성되는 스토리지 드라이버를 포함하고, 상기 스토리지 장치는, 상기 제1 모드 변경 요청에 대한 응답으로서, 상기 데이터를 싱글 레벨 셀(single level cell, SLC)에 재기입하고, 상기 데이터 및 상기 논리 주소에 대응되어 메모리 장치의 멀티 레벨 셀(multi level cell, MLC) 또는 트리플 레벨 셀(triple level cell, TLC)에 기입이 완료된 기존 데이터를 무효화하도록 구성되는 것을 특징으로 한다.
본 개시의 기술적 사상의 호스트 및 스토리지 장치를 포함하는 스토리지 시스템 및 이의 동작 방법에 따르면, 본 개시의 실시예에 따른 스토리지 시스템은, 사용자가 파일 및/또는 폴더의 데이터 동작의 속도를 고속 또는 저속으로 설정할 수 있으므로, 데이터의 입출력 속도가 빨라질 수 있다.
또한 본 개시의 기술적 사상의 호스트 및 스토리지 장치를 포함하는 스토리지 시스템 및 이의 동작 방법에 따르면, 사용자에 의해 중요도가 높은 것으로 선택된 파일 및/또는 폴더의 데이터 동작 속도를 선택적으로 설정할 수 있는바 효율적인 데이터 관리가 가능하고, 사용자 편의성이 증대될 수 있다.
도 1은 본 개시의 예시적인 실시예에 따른 스토리지 시스템을 나타내는 블록도이다.
도 2는 본 개시의 예시적인 실시예에 따른 메모리 장치를 나타내는 블록도이다.
도 3은 본 개시의 예시적인 실시예에 따른 메모리 셀 어레이를 나타내는 회로도이다.
도 4a 내지 도 4c는 본 개시의 예시적인 실시예에 따른 메모리 장치의 프로그램 완료 후의 문턱 전압에 따른 산포를 나타내는 그래프이다.
도 5는 본 개시의 예시적인 실시예에 따른 폴더의 동작 모드를 설정하는 예시도이다.
도 6은 본 개시의 예시적인 실시예에 따른 스토리지 시스템의 일부를 나타내는 블록도이다.
도 7은 본 개시의 예시적인 실시예에 따른 폴더의 데이터 동작 속도를 고속 모드로 설정하는 방법을 나타내는 흐름도이다.
도 8은 본 개시의 예시적인 실시예에 따른 폴더의 데이터 동작 속도를 저속 모드로 설정하는 방법을 나타내는 흐름도이다.
도 9는 본 개시의 예시적인 실시예에 따른 폴더에 파일을 추가하는 경우의 동작을 나타내는 흐름도이다.
도 10은 본 개시의 예시적인 실시예에 따른 폴더 내 파일을 수정하는 경우의 동작을 나타내는 흐름도이다.
도 11은 본 개시의 예시적인 실시예에 따른 파일의 동작 모드를 설정하는 예시도이다.
도 12는 본 발명의 예시적인 실시예에 따른 호스트-스토리지 시스템을 나타내는 블록도이다.
도 13은 본 개시의 예시적인 실시예에 따른 SSD 시스템을 나타내는 블록도이다.
이하, 첨부한 도면을 참조하여 본 개시의 실시예에 대해 상세히 설명한다.
도 1은 본 개시의 예시적인 실시예에 따른 스토리지 시스템을 나타내는 블록도이다.
도 1을 참조하면, 스토리지 시스템(10)은 호스트 장치(100) 및 스토리지 장치(200)를 포함할 수 있다. 호스트(600)로부터 모드 변경 요청(REQ_M)이 생성되고, 스토리지 장치(200)는 이를 수신하여 기입 동작 또는 소거 동작을 수행할 수 있다.
스토리지 시스템(10)은 예를 들어, PC(personal computer), 데이터 서버, 네트워크-결합 스토리지(network-attached storage, NAS), IoT(Internet of Things) 장치, 또는 휴대용 전자 기기로 구현될 수 있다. 휴대용 전자 기기는, 랩탑 컴퓨터, 이동 전화기, 스마트폰, 태블릿 PC, PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라, 디지털 비디오 카메라, 오디오 장치, PMP(portable multimedia player), PND(personal navigation device), MP3 플레이어, 휴대용 게임 콘솔(handheld game console), e-북(e-book), 웨어러블 기기 등일 수 있다.
호스트 장치(100)는 모드 매니저(110)와 스토리지 드라이버(120)를 포함할 수 있다. 모드 매니저(110)는 사용자에 의해 파일 및/또는 폴더의 동작 모드가 변경됨에 따라 모드 변경 요청(REQ_M)을 생성할 수 있다. 본 명세서에서 폴더는 적어도 하나의 파일을 포함하며, 적어도 하나의 파일이 호스트 장치(100)에 의해 관리되는 단위를 의미할 수 있다. 또한 동작 모드는, 파일 및/또는 폴더에 포함된 데이터가 스토리지 장치(200)에서 입출력될 때의 동작 속도에 따라 고속 모드 또는 저속 모드를 포함할 수 있다.
또한 모드 매니저(110)는 고속 모드 또는 저속 모드로 동작 모드가 설정된 파일 및/또는 폴더의 논리 주소를 추출할 수 있다. 본 명세서에서 폴더의 논리 주소를 추출한다는 것은, 폴더에 포함된 적어도 하나의 파일 각각의 논리 주소를 추출하는 것을 의미할 수 있다.
모드 매니저(110)는 모드 변경 요청(REQ_M)과 함께 논리 주소를 스토리지 장치(200)에 제공할 수 있다. 논리 주소에 대응되는 데이터가 스토리지 장치(200)로 기입되거나 스토리지 장치(200)에서 독출될 때, 모드 변경 요청(REQ_M)을 통해 고속으로 동작하거나 저속으로 기입될 수 있다. 한 실시예로서 모드 매니저(110)는, 폴더 내 포함된 파일이 변경됨으로써 제1 데이터가 생성됨에 따라, 제1 데이터에 대한 모드 변경 요청(REQ_M)을 생성하고, 제1 데이터의 논리 주소를 추출할 수 있다.
호스트 장치(100)는 사용자에게 파일 및/또는 폴더에 대한 정보를 제공할 수 있다. 예를 들어, 호스트 장치(100)는, 파일 및/또는 폴더 아이콘을 호스트 장치(100)에 연결된 디스플레이 화면에 표시할 수 있다. 사용자는 파일 및/또는 폴더 아이콘을 클릭하고, 파일 및/또는 폴더와 관련된 설정들을 변경함으로써 파일 및/또는 폴더의 동작 모드를 변경할 수 있다. 이에 대한 자세한 내용은 도 5 및 도 11을 통해 후술한다.
스토리지 드라이버(120)는 모드 매니저(110)에서 생성된 모드 변경 요청(REQ_M) 및 논리 주소를 스토리지 장치(200)로 전송할 수 있다.
또한, 스토리지 드라이버(120)는 파일 및/또는 폴더의 동작 모드에 관한 정보를 포함하는 관리 테이블을 포함할 수 있다. 관리 테이블은 파일 및/또는 폴더의 동작 모드와 각 경로를 포함할 수 있다. 한 실시예로서, 스토리지 드라이버(120)는 파일 및/또는 폴더가 고속 모드로 설정됨에 따라, 파일 및/또는 폴더의 정보를 관리 테이블에 추가하고, 파일 및/또는 폴더가 저속 모드로 설정됨에 따라, 파일 및/또는 폴더의 정보를 관리 테이블로부터 삭제할 수 있다. 한 실시예로서, 스토리지 드라이버(120)는 파일 및/또는 폴더가 고속 모드 또는 저속 모드로 설정됨에 따라, 관리 테이블에 파일 및/또는 폴더의 각각의 정보와 동작 모드를 대응시켜 기입할 수 있다.
한편, 도 1에서 관리 테이블은 스토리지 드라이버(120) 내에 있는 것으로 도시되었으나 이에 제한되지 않으며, 스토리지 드라이버(120)는 호스트 내 메모리에 포함될 수 있다.
호스트 장치(100)는 다양한 인터페이스를 통하여 스토리지 장치(200)와 통신할 수 있다. 한 실시예로서, 호스트 장치(100)는 스토리지 드라이버(120)를 통해, 스토리지 장치(200)와 통신할 수 있다.
예시적인 실시 예에서, 호스트 장치(100)는 USB(Universal Serial Bus), MMC(MultiMediaCard), PCI-E(PCIExpress), ATA(AT Attachment), SATA(Serial AT Attachment), PATA(Parallel AT Attachment), SCSI(Small Computer System Interface), SAS(Serial Attached SCSI), ESDI(Enhanced Small Disk Interface), IDE(Integrated Drive Electronics) 등과 같은 다양한 인터페이스를 통해 스토리지 장치(200)와 통신할 수 있다. 또한, SSD 등과 같은 스토리지 장치(200)에 최적화된 인터페이스로서 NVMe(Non-Volatile Memory Express)가 제안되고 있으며, 본 개시의 스토리지 시스템(1000)에 NVMeoF(non-volatile memory express over fabrics) 인터페이스가 적용될 수 있다.
스토리지 장치(200)는 메모리 컨트롤러(210)와 메모리 장치(220)를 포함할 수 있다. 메모리 컨트롤러(210)는 메모리 장치(220)를 전반적으로 제어할 수 있다.
메모리 컨트롤러(210)는 호스트 장치(100)로부터 수신한 모드 변경 요청(REQ_M)에 따라, 데이터를 고속 모드 또는 저속 모드로 기입하거나, 기입된 데이터를 데이터를 고속 모드 또는 저속 모드로 독출할 수 있다. 또한, 고속 모드로 데이터를 재기입하고, 기존에 저속 모드로 기입된 데이터를 무효화(invalid)할 수 있다. 한편 본 명세서에서 기존 데이터의 무효화 동작과 데이터 재기입 동작의 순서가 어느 하나로 제한되는 것은 아니다.
한 실시예로서 고속 모드에서, 메모리 장치(220)는 싱글 레벨 셀(single level cell, SLC)에 데이터를 기입하거나 SLC에 기입된 데이터를 독출할 수 있다.
한 실시예로서 저속 모드에서, 메모리 장치(220)는 멀티 레벨 셀(multi level cell, MLC)에 데이터를 기입하거나, 트리플 레벨 셀(triple level cell, TLC)에 데이터를 기입할 수 있다. 또한 MLC 또는 TLC에 기입된 데이터를 독출할 수 있다.
스토리지 장치(200)는 호스트 장치(100)로부터의 요청에 따라 데이터를 저장하기 위한 저장 매체들을 포함할 수 있다. 예시적인 실시 예에서, 스토리지 장치(200)는 솔리드 스테이트 드라이브(Solid State Drive, SSD)일 수 있다. 예를 들어, 스토리지 장치(200)는 이더넷-결합 스토리지 드라이브(Ethernet-Attached Storage Drive(EASD))일 수 있다.
스토리지 장치(200)가 플래시 메모리를 포함할 때, 상기 플래시 메모리는 2D NAND 메모리 어레이나 3D(또는 수직형, Vertical) NAND(VNAND) 메모리 어레이를 포함할 수 있다. 상기 3D 메모리 어레이는 실리콘 기판 위에 배치되는 활성 영역을 가지는 메모리 셀들의 어레이들, 또는 상기 메모리 셀들의 동작과 관련된 회로로서 상기 기판상에 또는 상기 기판 내에 형성된 회로의 적어도 하나의 물리적 레벨에 모놀리식으로 형성된다. 상기 용어 “모놀리식”은 상기 어레이를 구성하는 각 레벨의 층들이 상기 어레이 중 각 하부 레벨의 층들의 바로 위에 적층되어 있음을 의미한다.
예시적인 실시 예에서, 상기 3D 메모리 어레이는 적어도 하나의 메모리 셀이 다른 메모리 셀의 위에 위치하도록 수직 방향으로 배치된 Vertical NAND 스트링들을 포함한다. 상기 적어도 하나의 메모리 셀은 전하 트랩층을 포함할 수 있다.
본 개시의 실시예에 따른 스토리지 시스템(10)은, 사용자가 파일 및/또는 폴더의 데이터 동작의 속도를 고속 또는 저속으로 설정할 수 있으므로, 데이터의 입출력 속도가 빨라질 수 있다.
또한 사용자에 의해 중요도가 높은 것으로 선택된 파일 및/또는 폴더의 데이터 동작 속도를 선택적으로 설정할 수 있는바 효율적인 데이터 관리가 가능하고, 사용자 편의성이 증대될 수 있다.
도 2는 본 개시의 예시적인 실시예에 따른 메모리 장치를 나타내는 블록도이다.
도 2를 참조하면, 메모리 장치(300)는 제어 로직 회로(320), 메모리 셀 어레이(330), 페이지 버퍼부(340), 전압 생성기(350), 및 로우 디코더(360)를 포함할 수 있다. 도 2에는 도시되지 않았으나, 메모리 장치(300)는 메모리 인터페이스 회로를 더 포함할 수 있고, 또한 컬럼 로직, 프리-디코더, 온도 센서, 커맨드 디코더, 어드레스 디코더 등을 더 포함할 수 있다.
제어 로직 회로(320)는 메모리 장치(300) 내의 각종 동작을 전반적으로 제어할 수 있다. 제어 로직 회로(320)는 메모리 인터페이스 회로(310)로부터의 커맨드(CMD) 및/또는 어드레스(ADDR)에 응답하여 각종 제어 신호들을 출력할 수 있다. 예를 들어, 제어 로직 회로(320)는 전압 제어 신호(CTRL_vol), 로우 어드레스(X-ADDR), 및 컬럼 어드레스(Y-ADDR)를 출력할 수 있다.
메모리 셀 어레이(330)는 복수의 메모리 블록들(BLK1~BLKz)을 포함할 수 있고(z는 양의 정수), 복수의 메모리 블록들(BLK1~BLKz) 각각은 복수의 메모리 셀들을 포함할 수 있다. 메모리 셀 어레이(330)는 비트 라인들(BL)을 통해 페이지 버퍼부(340)에 연결될 수 있고, 워드 라인들(WL), 스트링 선택 라인들(SSL), 및 그라운드 선택 라인들(GSL)을 통해 로우 디코더(360)에 연결될 수 있다.
예시적인 실시 예에서, 메모리 셀 어레이(330)는 3차원 메모리 셀 어레이를 포함할 수 있고, 3차원 메모리 셀 어레이는 복수의 낸드 스트링들을 포함할 수 있다. 각 낸드 스트링은 기판 위에 수직으로 적층된 워드 라인들에 각각 연결된 메모리 셀들을 포함할 수 있다. 미국 특허공개공보 제7,679,133호, 미국 특허공개공보 제8,553,466호, 미국 특허공개공보 제8,654,587호, 미국 특허공개공보 제8,559,235호, 및 미국 특허출원공개공보 제2011/0233648호는 본 명세서에 인용 형식으로 결합된다. 예시적인 실시 예에서, 메모리 셀 어레이(330)는 2차원 메모리 셀 어레이를 포함할 수 있고, 2차원 메모리 셀 어레이는 행 및 열 방향을 따라 배치된 복수의 낸드 스트링들을 포함할 수 있다.
메모리 셀 어레이(330)는 SLC, MLC 및 TLC 중 적어도 하나를 포함할 수 있다. SLC는 1 비트로 프로그램 되는 메모리 셀, MLC는 2 비트로 프로그램 되는 메모리 셀, TLC는 3 비트로 프로그램 되는 메모리 셀을 의미할 수 있다.
제어 로직 회로(320)는 고속 모드에서, SLC에 데이터를 기입하거나, SLC에 기입된 데이터를 독출하기 위한 제어 신호를 생성할 수 있다. 제어 로직 회로(320)는 저속 모드에서, MLC 또는 TLC에 데이터를 기입하거나, MLC 또는 TLC에 기입된 데이터를 독출하기 위한 제어 신호를 생성할 수 있다. 또한 제어 로직 회로(320)는 MLC 또는 TLC에 데이터를 기입하고, SLC에 기입된 데이터를 무효화하기 위한 제어 신호를 생성할 수 있다. 이와 반대로, SLC에 데이터를 기입하고, MLC 또는 TLC에 기입된 데이터를 무효화하기 위한 제어 신호를 생성할 수 있다. 한편, 제어 로직 회로(320)가 재기입을 위한 제어 신호를 생성하는 동작과 무효화를 위한 제어 신호를 생성하는 동작의 순서는 한정되지 않는다.
한 실시예로서, 무효화된 데이터에 대한 소거(erase) 동작은, 복수의 메모리 블록들(BLK1~BLKz) 중 적어도 어느 하나에 포함된 데이터들이 무효화됨으로써 프리 블록(free block)이 생성되는 경우 또는 생성된 프리 블록에 임의의 데이터가 기입되는 경우에 수행될 수 있다.
페이지 버퍼부(340)는 복수의 페이지 버퍼들(PB1 내지 PBn)을 포함할 수 있고(n은 3 이상의 정수), 복수의 페이지 버퍼들(PB1 내지 PBn)은 복수의 비트 라인들(BL)을 통해 메모리 셀들과 각각 연결될 수 있다. 페이지 버퍼부(340)는 컬럼 어드레스(Y-ADDR)에 응답하여 비트 라인들(BL) 중 적어도 하나의 비트 라인을 선택할 수 있다. 페이지 버퍼부(340)는 동작 모드에 따라 기입 드라이버 또는 감지 증폭기로서 동작할 수 있다. 예를 들어, 프로그램 동작 시, 페이지 버퍼부(340)는 선택된 비트 라인으로 프로그램될 데이터에 대응하는 비트 라인 전압을 인가할 수 있다. 독출 동작 시, 페이지 버퍼부(340)는 선택된 비트 라인의 전류 또는 전압을 감지하여 메모리 셀에 저장된 데이터를 감지할 수 있다.
전압 생성기(350)는 전압 제어 신호(CTRL_vol)를 기반으로 프로그램, 독출, 및 소거 동작들을 수행하기 위한 다양한 종류의 전압들을 생성할 수 있다. 예를 들어, 전압 생성기(350)는 워드 라인 전압(VWL)으로서 프로그램 전압, 독출 전압, 프로그램 검증 전압, 소거 전압 등을 생성할 수 있다.
로우 디코더(360)는 로우 어드레스(X-ADDR)에 응답하여 복수의 워드 라인들(WL) 중 하나를 선택할 수 있고, 복수의 스트링 선택 라인들(SSL) 중 하나를 선택할 수 있다. 예를 들어, 프로그램 동작 시, 로우 디코더(360)는 선택된 워드 라인으로 프로그램 전압 및 프로그램 검증 전압을 인가하고, 독출 동작 시, 선택된 워드 라인으로 독출 전압을 인가할 수 있다.
도 3은 본 개시의 예시적 실시예에 따른 메모리 셀 어레이를 나타내는 회로도이다.
도 3을 참조하면, 메모리 블록(BLK1)은 도 2의 복수의 메모리 블록들(BLK1 내지 BLKz) 중 하나에 대응할 수 있고, 복수의 낸드 스트링들(NS11~NS33), 복수의 그라운드 선택 라인들(GLS1~GSL3), 복수의 스트링 선택 라인들(SSL1~SSL3) 및 공통 소스 라인(CSL)을 포함할 수 있다. 여기서, 낸드 스트링들의 개수, 워드라인들의 개수, 비트라인들의 개수, 그라운드 선택 라인의 개수 및 스트링 선택 라인들의 개수는 실시예에 따라 다양하게 변경될 수 있다.
제1 비트라인(BL1)과 공통 소스 라인(CSL) 사이에 낸드 스트링들(NS11, NS21, NS31)이 제공되고, 제2 비트 라인(BL2)과 공통 소스 라인(CSL) 사이에 낸드 스트링들(NS12, NS22, NS32)이 제공되고 제3 비트 라인(BL3)과 공통 소스 라인(CSL) 사이에 낸드 스트링들(NS13, NS23, NS33)이 제공될 수 있다. 각 낸드 스트링(예를 들면, NS11)은 직렬로 연결된 스트링 선택 트랜지스터(SST), 복수의 메모리 셀들(MC1~MC8) 및 그라운드 선택 트랜지스터(GST)를 포함할 수 있다.
스트링 선택 트랜지스터(SST)는 대응하는 스트링 선택 라인(SSL1 내지 SSL3)에 연결될 수 있다. 복수의 메모리 셀들(MC1~MC8)은 각각 대응하는 워드라인(WL1 내지 WL8)에 연결될 수 있다. 그라운드 선택 트랜지스터(GST)는 대응하는 그라운드 선택 라인(GSL1 내지 GSL3)에 연결될 수 있다. 스트링 선택 트랜지스터(SST)는 대응하는 비트 라인(BL1 내지 BL3)에 연결될 수 있고, 그라운드 선택 트랜지스터(GST)는 공통 소스 라인(CSL)에 연결될 수 있다.
도 3에서, 각 스트링은 하나의 스트링 선택 트랜지스터(SST)를 포함하는 것으로 도시되어 있으나, 본 발명은 이에 한정되지 않으며, 각 스트링은 직렬 연결된 상부 스트링 선택 트랜지스터 및 하부 스트링 선택 트랜지스터를 포함할 수 있다. 또한, 도 3에서, 각 스트링은 하나의 그라운드 선택 트랜지스터(GST)를 포함하는 것으로 도시되어 있으나, 본 발명은 이에 한정되지 않으며, 각 스트링은 직렬 연결된 상부 그라운드 선택 트랜지스터 및 하부 그라운드 선택 트랜지스터를 포함할 수 있다. 이때, 상부 그라운드 선택 트랜지스터는 대응하는 그라운드 선택 라인(GSL1 내지 GSL3)에 연결될 수 있고, 하부 그라운드 선택 트랜지스터는 공통 그라운드 선택 라인에 공통으로 연결될 수 있다.
도 4a 내지 도 4c는 본 개시의 예시적 실시예에 따른 메모리 장치의 프로그램 완료 후의 문턱 전압에 따른 산포를 나타내는 그래프이다.
도 4a 내지 도 4c에서 메모리 셀은 도 3의 복수의 메모리 셀들(MC1~MC8) 중 어느 하나에 대응될 수 있다. 도 4a는 메모리 셀이 SLC인 경우를 나타내고, 도 4b는 메모리 셀이 MLC인 경우를 나타내고, 도 4c는 메모리 셀이 TLC인 경우를 나타낸다. 도 4a 내지 도 4c에서, 가로축은 문턱 전압(Vth)을 나타내고, 세로축은 메모리 셀들의 개수를 나타낸다.
도 4a를 참조하면, 메모리 셀이 1 비트로 프로그램되는 SLC인 경우, 메모리 셀은 소거 상태(E) 및 제1 프로그램 상태(P1) 중 하나를 가질 수 있다. 제1 독출 전압(Vr11)은 소거 상태(E)를 가지는 메모리 셀의 산포와 제1 프로그램 상태(P1)를 가지는 메모리 셀의 산포 사이의 전압 레벨을 가진다. 제1 독출 전압(Vr11)을 기준으로 메모리 셀이 소거 상태(E)를 가지는지 또는 제1 프로그램 상태(P1)를 가지는지 구분될 수 있다.
도 4b를 참조하면, 메모리 셀이 2 비트로 프로그램되는 MLC인 경우에, 메모리 셀은 소거 상태(E), 제1 프로그램 상태(P1), 제2 프로그램 상태(P2) 및 제3 프로그램 상태(P3) 중 하나를 가질 수 있다. SLC에 비하여 MLC의 경우, 문턱 전압(Vth) 분포들 사이의 간격이 좁을 수 있다. 제1 내지 제3 독출 전압들(Vr21, Vr22, V23)의 각각은 초기에 설정된 디폴트 레벨에 대응될 수 있다. 제1 내지 제3 독출 전압(Vr21, Vr22, Vr23)을 기준으로 메모리 셀이 소거 상태(E) 및 제1 내지 제3 프로그램 상태들(P1~P3) 중 어느 하나를 가지는지를 구분할 수 있다.
도 8c를 참조하면, 메모리 셀이 3 비트로 프로그램되는 TLC인 경우에, 메모리 셀은 소거 상태(E), 제1 내지 제7 프로그램 상태들(P1~P7) 중 하나를 가질 수 있다. 제1 내지 제7 독출 전압들(Vr31~Vr37)의 각각은 초기에 설정된 디폴트 레벨에 대응될 수 있다. 제1 내지 제7 독출 전압들(Vr31~Vr37)을 기준으로 메모리 셀이 소거 상태(E), 제1 내지 제7 프로그램 상태들(P1~P7) 중 어느 하나를 가지는지를 구분할 수 있다.
한편, SLC의 문턱 전압의 최대값은 MLC의 문턱 전압의 최대값보다 작고, MLC의 문턱 전압의 최대값은 TLC의 문턱 전압의 최대값보다 작을 수 있다.
본 개시의 실시예에 따르면, SLC에 대한 기입 속도 및 독출 속도는 각각 MLC에 대한 기입 속도 및 독출 속도보다 빠르고, MLC에 대한 기입 속도 및 독출 속도는 각각 TLC에 대한 기입 속도 및 독출 속도보다 빠를 수 있다. 한편, SLC는 1 비트의 데이터를 저장하고 MLC, TLC는 각각 2 비트의 데이터와 3 비트의 데이터를 저장하므로 동일한 개수의 메모리 셀에 대해 SLC에 비해 MLC, MLC에 비해 TLC는 더 많은 양의 데이터를 저장할 수 있다.
따라서 본 개시의 실시예에 따르면, 입출력이 빈번하게 일어나는 데이터, 사용자에 의해 중요도가 높게 설정된 데이터, 빠른 입출력 속도를 요하는 데이터 등은 SLC에 기입함으로써 빠른 입출력 속도를 활용할 수 있다. 이와 반대로, 입출력 횟수가 적은 데이터, 사용자에 의해 중요도가 낮게 설정된 데이터, 빠른 입출력 속도를 필요로 하지 않는 데이터 등은 MLC 또는 TLC에 기입함으로써 메모리 장치의 저장 공간을 효율적으로 활용할 수 있다.
도 5는 본 개시의 예시적인 실시예에 따른 폴더의 동작 모드를 설정하는 예시도이다.
도 5를 참조하면, 사용자는 폴더(400)의 아이콘을 클릭하고, 클릭 시 표시되는 설정 목록에서 폴더(400)의 동작 모드를 설정할 수 있다. 한 실시예로서, 사용자는 폴더(400)의 동작 모드를 제1 동작 모드로 설정하거나, 제2 동작 모드로 설정(또는 제1 동작 모드 설정을 해제)할 수 있다.
예를 들어, 사용자가 폴더(400) 아이콘을 우클릭하면, 설정 목록이 표시될 수 있다. 설정 목록은 클릭한 폴더(400)를 제1 동작 모드로 설정하는 항목 및 클릭한 폴더(400)를 제2 동작 모드로 설정하는 항목을 포함할 수 있다. 예를 들어 제1 동작 모드는 폴더(400) 내 포함된 적어도 하나의 파일의 데이터 속도를 고속으로 설정하는 고속 모드, 제2 동작 모드는 저속 모드일 수 있다. 예를 들어 제1 동작 모드는 폴더(400)에 포함된 적어도 하나의 파일을 메모리 장치의 SLC에 기입하는 SLC 모드일 수 있고, 제2 동작 모드는 폴더(400)에 포함된 적어도 하나의 파일을 메모리 장치의 MLC에 기입하는 MLC 모드 또는 폴더(400)에 포함된 적어도 하나의 파일을 메모리 장치의 TLC에 기입하는 TLC 모드일 수 있다.
사용자는 폴더(400)의 동작 모드를 변경함으로써 폴더(400)에 포함된 적어도 하나의 파일의 동작 모드를 한꺼번에 변경할 수 있다.
폴더(400)의 동작 모드는 폴더(400) 아이콘과 함께 표시될 수 있다. 예를 들어 폴더(400) 아이콘의 우측 하단부에 표시될 수 있다. ⓢ는 제1 동작 모드를 나타내는 기호이고, ⓜ은 제2 동작 모드를 나타내는 기호일 수 있다.
한 실시예로서, 사용자가 폴더(400)에 임의의 파일을 추가할 수 있다. 이 경우 추가된 파일의 동작 모드는 폴더(400)에 설정된 동작 모드와 동일할 수 있다. 한 예로서, 사용자가 폴더(400) 내 포함된 파일을 변경 또는 수정함으로써 새로운 파일을 생성할 수 있다. 생성된 파일의 동작 모드는 폴더(400)에 설정된 동작 모드와 동일할 수 있다.
도 6은 본 개시의 예시적인 실시예에 따른 스토리지 시스템의 일부를 나타내는 블록도이다.
도 6을 참조하면, 제1 내지 제4 모드 변경 요청(REQ_M1~REQ_M4)이 모드 매니저에 의해 생성되면, 스토리지 드라이버(120)는 제1 내지 제4 모드 변경 요청(REQ_M1~REQ_M4)을 스토리지 장치에 제공할 수 있다. 이때 제1 내지 제4 모드 변경 요청(REQ_M1~REQ_M4) 각각에 데이터가 포함될 수 있고, 제1 내지 제4 모드 변경 요청(REQ_M1~REQ_M4) 각각이 전송되며 데이터가 함께 전송될 수 있다. 데이터는, 동작 모드가 변경되는 파일 및/또는 폴더의 논리 주소를 포함할 수 있다.
제1 모드 변경 요청(REQ_M1)은 폴더의 동작 모드가 고속 모드로 변경됨에 따라 생성된 것일 수 있다. 제2 모드 변경 요청(REQ_M2)은 폴더의 동작 모드가 저속 모드로 변경됨에 따라 생성된 것일 수 있다. 제3 모드 변경 요청(REQ_M3)은 폴더에 임의의 파일이 추가됨에 따라 생성된 것일 수 있다. 제4 모드 변경 요청(REQ_M4)은 폴더 내 파일이 변경 또는 수정됨에 따라 생성된 것일 수 있다.
제1 내지 제4 모드 변경 요청(REQ_M1~REQ_M4) 각각에 따라 메모리 컨트롤러(210)의 동작이 달라질 수 있다. 한 예로서 메모리 컨트롤러(210)가 제1 모드 변경 요청(REQ_M1)을 수신하는 경우, 메모리 컨트롤러(210)는 데이터, 즉 논리 주소에 대입되어 이미 기입된 기존 데이터를 무효화하는 소거 커맨드(CMD_E) 및 데이터를 SLC 모드로 기입하기 위한 기입 커맨드(CMD_W)를 생성하고, 소거 및 기입 커맨드(CMD_E, CMD_W)를 메모리 장치(220)에 제공할 수 있다. 이때 기존 데이터는 MLC 모드 또는 TLC 모드로 기입된 것일 수 있다. 한편, 메모리 장치(220)의 저장 공간이 부족한 경우, 메모리 컨트롤러(210)는 제1 모드 변경 요청에 대한 응답 메시지로서, 실패 메시지(RETURN_FAIL)를 생성하고 스토리지 디바이스로 전송할 수 있다. 이때 기존 데이터는 유지될 수 있다.
한 예로서 메모리 컨트롤러(210)가 제2 모드 변경 요청(REQ_M2)을 수신하는 경우, 메모리 컨트롤러(210)는 데이터, 즉 논리 주소에 대입되어 이미 기입된 기존 데이터를 무효화하는 소거 커맨드(CMD_E) 및 데이터를 MLC 또는 TLC 모드로 기입하기 위한 기입 커맨드(CMD_W)를 생성하고, 소거 및 기입 커맨드(CMD_E, CMD_W)를 메모리 장치(220)에 제공할 수 있다. 이때 기존 데이터는 SLC 모드로 기입된 것일 수 있다.
한 예로서 메모리 컨트롤러(210)가 제3 모드 변경 요청(REQ_M3)을 수신하는 경우, 메모리 컨트롤러(210)는 추가된 제1 파일에 대한 논리 주소를 포함하는 데이터를 수신할 수 있다. 메모리 컨트롤러(210)는 데이터를 SLC 모드로 기입하기 위한 기입 커맨드(CMD_W)를 생성하여 메모리 장치(220)에 제공할 수 있다.
한 예로서 메모리 컨트롤러(210)가 제4 모드 변경 요청(REQ_M4)을 수신하는 경우, 메모리 컨트롤러(210)는 변경 전 제2 파일에 대한 논리 주소 및 변경 후 제3 파일에 대한 논리 주소를 포함하는 데이터를 수신할 수 있다. 이때 메모리 컨트롤러(210)는 제2 파일에 대한 논리 주소를 기초로 기입된 기존 데이터를 무효화하기 위한 소거 커맨드(CMD_E)를 생성하고, 제3 파일에 대한 논리 주소를 기초로 데이터를 SLC 모드로 기입하기 위한 기입 커맨드(CMD_W)를 생성할 수 있다. 이때 소거 커맨드(CMD_E) 및 기입 커맨드(CMD_W)의 생성 순서가 이에 제한되는 것은 아니다. 메모리 컨트롤러(210)는 소거 및 기입 커맨드(CMD_E, CMD_W)를 메모리 장치(220)에 제공할 수 있다.
이하 도 7 내지 도 10을 통해 후술되는 내용은 폴더 단위로 동작 모드가 설정, 해제되는 경우를 가정한 것이나 이에 제한되는 것은 아니며, 파일 단위로 동작 모드가 설정, 해제되는 경우에도 적용될 수 있다.
도 7은 본 개시의 예시적인 실시예에 따른 폴더의 데이터 동작 속도를 고속 모드로 설정하는 방법을 나타내는 흐름도이다.
도 1 및 도 7을 함께 참조하면, 폴더의 데이터 동작 모드가 제1 동작 모드로 설정될 수 있다(S110). 예를 들어 제1 동작 모드는 고속 모드 또는 SLC 모드일 수 있다.
폴더에 포함된 파일의 논리 주소가 추출되고, 모드 변경 요청(REQ_M)이 생성될 수 있다(S120). 폴더에 복수의 파일들이 포함된 경우, 각 파일의 논리 주소가 추출될 수 있다. 한 실시예로서, 모드 변경 요청(REQ_M)은 도 6의 제1 모드 변경 요청(REQ_M1)에 대응될 수 있다. 관리 테이블(130)에 폴더 정보가 저장될 수 있다(S130). 예를 들어 폴더의 경로가 관리 테이블(130)에 저장될 수 있다. 스토리지 장치(200)에 모드 변경 요청(REQ_M) 및 추출된 논리 주소가 전송될 수 있다(S140). 스토리지 장치(200)의 저장 공간이 충분한지 확인될 수 있다(S150).
저장 공간이 충분한 경우, 논리 주소에 대응되는 데이터를 제1 동작 모드로 메모리 장치(220)에 재기입하고, 상기 데이터 및 상기 논리 주소에 대응되어 이미 기입된 기존 데이터가 있는 경우, 기존 데이터가 무효화될 수 있다(S160). 이때 기존 데이터는 상기 논리 주소 및 상기 데이터에 대응되어 제2 동작 모드로 기입이 완료된 것일 수 있다. 예를 들어 제2 동작 모드는 저속 모드, MLC 모드 및 TLC 모드 중 어느 하나일 수 있다.
저장 공간이 충분하지 않은 경우, 스토리지 장치(200)는 호스트 장치(100)로 실패 메시지를 전송할 수 있다(S170). 이후 관리 테이블(130)에서 S130 단계에서 저장된 폴더 정보가 삭제될 수 있다(S180).
도 8은 본 개시의 예시적인 실시예에 따른 폴더의 데이터 동작 속도를 저속 모드로 설정하는 방법을 나타내는 흐름도이다.
도 8을 참조하면, 폴더의 데이터 동작 모드가 제2 동작 모드로 설정될 수 있다(S210). 예를 들어 제2 동작 모드는 저속 모드, MLC 모드 및 TLC 모드 중 어느 하나일 수 있다. 폴더에 포함된 파일의 논리 주소가 추출되고, 모드 변경 요청(REQ_M)이 생성될 수 있다(S220). 한 실시예로서, 모드 변경 요청(REQ_M)은 도 6의 제2 모드 변경 요청(REQ_M2)에 대응될 수 있다. 관리 테이블(130)에서 폴더 정보가 삭제될 수 있다(S230). 한 실시예로서, 관리 테이블(130)에서 폴더 정보가 삭제되는 대신, 폴더 정보와 함께 폴더의 동작 모드가 대응되어 저장될 수 있다.
스토리지 장치(200)에 모드 변경 요청(REQ_M) 및 추출된 논리 주소가 전송될 수 있다(S240). 제2 동작 모드로 데이터가 다시 기입되고, 상기 논리 주소에 대응되어 이미 기입된 기존 데이터가 무효화될 수 있다(S250). 예를 들어 데이터는 도 7의 데이터에 대응될 수 있고, 기존 데이터는 도 7의 S160 단계에서 제1 동작 모드로 기입된 데이터를 포함할 수 있다. 예를 들어 제1 동작 모드는 고속 모드 또는 SLC 모드일 수 있다.
도 9는 본 개시의 예시적인 실시예에 따른 폴더에 파일을 추가하는 경우의 동작을 나타내는 흐름도이다.
도 9를 참조하면, 임의의 폴더에 파일이 추가될 수 있다(S310). 예를 들어, 복수의 파일들이 추가될 수 있다. 관리 테이블(130)에 임의의 폴더에 대한 정보가 있는지 확인하는 동작이 수행될 수 있다(S320). 즉 임의의 폴더의 동작 모드가 제1 동작 모드인지 확인될 수 있다.
관리 테이블(130)에 임의의 폴더에 대한 정보가 있는 경우, 추가된 파일의 논리 주소가 추출되고, 모드 변경 요청(REQ_M)이 생성될 수 있다(S330). 이때, 모드 변경 요청(REQ_M) 대신 기입 요청이 생성될 수 있다. 한편, S310 단계에서 복수의 파일들이 추가된 경우, 각 파일의 논리 주소가 추출될 수 있다. 한 실시예로서, 모드 변경 요청(REQ_M)은 도 6의 제3 모드 변경 요청(REQ_M3)에 대응될 수 있다.
스토리지 장치(200)에 모드 변경 요청(REQ_M) 및 추출된 논리 주소가 전송될 수 있다(S340). 논리 주소에 대응되어, 추가된 파일은 제1 동작 모드로 메모리 장치(220)에 기입될 수 있다(S350). 예를 들어 제1 동작 모드는 고속 모드 또는 SLC 모드일 수 있다. 한편 관리 테이블(130)에 임의의 폴더에 대한 정보가 없는 경우, 추가된 파일은 제2 동작 모드로 메모리 장치(220)에 기입될 수 있다(S460). 예를 들어 제2 동작 모드는 저속 모드, MLC 모드 및 TLC 모드 중 어느 하나일 수 있다.
도 10은 본 개시의 예시적인 실시예에 따른 폴더 내 파일을 수정하는 경우의 동작을 나타내는 흐름도이다.
도 10을 참조하면, 임의의 폴더 내 파일이 수정됨으로써 제1 데이터가 생성될 수 있다(S410). 제1 데이터는 수정된 파일을 의미할 수 있다. 제1 데이터는 복수의 수정된 파일들을 포함할 수 있다. 관리 테이블(130)에 임의의 폴더에 대한 정보가 있는지 확인하는 동작이 수행될 수 있다(S420). 즉 임의의 폴더의 동작 모드가 제1 동작 모드인지 확인될 수 있다.
관리 테이블(130)에 임의의 폴더에 대한 정보가 있는 경우, 제1 데이터의 논리 주소가 추출되고, 모드 변경 요청(REQ_M)이 생성될 수 있다(S430). 한 실시예로서, 모드 변경 요청(REQ_M)은 도 6의 제4 모드 변경 요청(REQ_M4)에 대응될 수 있다. 이때, 변경 전 파일의 논리 주소가 더 추출될 수 있다.
스토리지 장치(200)에 모드 변경 요청(REQ_M) 및 추출된 논리 주소가 전송될 수 있다(S440). 제1 동작 모드로 논리 주소를 기초로 데이터가 다시 기입되고, 변경 전 파일에 대한 기존 데이터가 무효화될 수 있다(S450). 이때 기존 데이터는 제1 동작 모드로 기입된 것일 수 있다. 또한 제1 동작 모드는 고속 모드 또는 SLC 모드일 수 있다. 한편 관리 테이블(130)에 임의의 폴더에 대한 정보가 없는 경우, 제1 데이터는 제2 동작 모드로 메모리 장치(220)에 기입될 수 있다(S460). 예를 들어 제2 동작 모드는 저속 모드, MLC 모드 및 TLC 모드 중 어느 하나일 수 있다.
도 11은 본 개시의 예시적인 실시예에 따른 파일의 동작 모드를 설정하는 예시도이다.
도 11을 참조하면, 사용자는 파일(500)의 아이콘을 클릭하고, 클릭 시 표시되는 설정 목록에서 파일(500)의 동작 모드를 설정할 수 있다.
예를 들어, 사용자가 파일(500) 아이콘을 우클릭하면, 설정 목록이 표시될 수 있다. 설정 목록은 클릭한 파일(500)을 제1 동작 모드로 설정하는 항목 및 클릭한 파일(500)을 제2 동작 모드로 설정하는 항목을 포함할 수 있다. 예를 들어 제1 동작 모드는 선택된 파일(500)의 데이터 속도를 고속으로 설정하는 고속 모드, 제2 동작 모드는 저속 모드일 수 있다. 예를 들어 제1 동작 모드는 선택된 파일(500)을 메모리 장치의 SLC에 기입하는 SLC 모드일 수 있고, 제2 동작 모드는 선택된 파일(500)을 메모리 장치의 MLC에 기입하는 MLC 모드 또는 선택된 파일(500)을 메모리 장치의 TLC에 기입하는 TLC 모드일 수 있다.
파일(500)의 동작 모드는 파일(500) 아이콘과 함께 표시될 수 있다. 예를 들어 파일(500) 아이콘의 우측 하단부에 표시될 수 있다. ⓢ는 제1 동작 모드를 나타내는 기호이고, ⓜ은 제2 동작 모드를 나타내는 기호일 수 있으며, 이에 제한되지 않는다.
도 12는 본 발명의 예시적인 실시예에 따른 호스트-스토리지 시스템을 나타내는 블록도이다.
호스트-스토리지 시스템(20)은 호스트(600) 및 스토리지 장치(700)를 포함할 수 있다. 호스트(600)는 도 1 내지 도 11을 통해 전술한 호스트 장치(100)에 대응될 수 있고, 스토리지 장치(700)는 도 1 내지 도 11을 통해 전술한 스토리지 장치(200)에 대응될 수 있다.
스토리지 장치(700)는 스토리지 컨트롤러(710) 및 비휘발성 메모리(NVM, 220)를 포함할 수 있다. 또한, 본 발명의 예시적인 실시예에 따라, 호스트(600)는 호스트 컨트롤러(예를 들어, 도 1의 110) 및 호스트 메모리(예를 들어, 도 1의 120)를 포함할 수 있다. 호스트 메모리(120)는 스토리지 장치(700)로 전송될 데이터, 혹은 스토리지 장치(700)로부터 전송된 데이터를 임시로 저장하기 위한 버퍼 메모리로서 기능할 수 있다.
스토리지 장치(700)는 호스트(600)로부터의 요청에 따라 데이터를 저장하기 위한 저장 매체들을 포함할 수 있다. 일 예로서, 스토리지 장치(700)는 SSD(Solid State Drive), 임베디드(embedded) 메모리 및 착탈 가능한 외장(external) 메모리 중 적어도 하나를 포함할 수 있다. 스토리지 장치(700)가 SSD인 경우, 스토리지 장치(700)는 NVMe(non-volatile memory express) 표준을 따르는 장치일 수 있다. 스토리지 장치(700)가 임베디드 메모리 혹은 외장(external) 메모리인 경우, 스토리지 장치(700)는 UFS(universal flash storage) 혹은 eMMC(embedded multi-media card) 표준을 따르는 장치일 수 있다. 호스트(600)와 스토리지 장치(700)는 각각 채용된 표준 프로토콜에 따른 패킷을 생성하고 이를 전송할 수 있다.
스토리지 장치(700)의 비휘발성 메모리(720)가 플래시 메모리를 포함할 때, 상기 플래시 메모리는 2D NAND 메모리 어레이나 3D(또는 수직형, Vertical) NAND(VNAND) 메모리 어레이를 포함할 수 있다. 다른 예로서, 스토리지 장치(700)는 다른 다양한 종류의 비휘발성 메모리들을 포함할 수도 있다. 예를 들어, 스토리지 장치(700)는 MRAM(Magnetic RAM), 스핀전달토크 MRAM(Spin-Transfer Torgue MRAM), Conductive bridging RAM(CBRAM), FeRAM(Ferroelectric RAM), PRAM(Phase RAM), 저항 메모리(Resistive RAM) 및 다른 다양한 종류의 메모리가 적용될 수 있다.
일 실시예에 따라, 호스트 컨트롤러(610)와 호스트 메모리(120)는 별도의 반도체 칩으로 구현될 수 있다. 또는, 일부 실시예들에서, 호스트 컨트롤러(610)와 호스트 메모리(120)는 동일한 반도체 칩에 집적될 수 있다. 일 예로서, 호스트 컨트롤러(610)는 어플리케이션 프로세서(Application Processor)에 구비되는 다수의 모듈들 중 어느 하나일 수 있으며, 상기 어플리케이션 프로세서는 시스템 온 칩(System on Chip, SoC)으로 구현될 수 있다. 또한, 호스트 메모리(120)는 상기 어플리케이션 프로세서 내에 구비되는 임베디드 메모리이거나, 또는 상기 어플리케이션 프로세서의 외부에 배치되는 비휘발성 메모리 또는 메모리 모듈일 수 있다.
호스트 컨트롤러(610)는 버퍼 영역(121)의 데이터(예컨대, 기록 데이터)를 비휘발성 메모리(720)에 저장하거나, 비휘발성 메모리(720)의 데이터(예컨대, 독출 데이터)를 버퍼 영역(121)에 저장하는 동작을 관리할 수 있다.
호스트 컨트롤러(610)는 도 1의 모드 매니저(110) 및 스토리지 드라이버(120)를 포함할 수 있다. 이에 따라 호스트 컨트롤러(610)는 파일 및/또는 폴더의 동작 모드가 변경됨에 따라 파일 및/또는 폴더의 논리 주소를 추출하고, 모드 변경 요청을 생성할 수 있다.
스토리지 컨트롤러(710)는 호스트 인터페이스(711), 메모리 인터페이스(712) 및 CPU(central processing unit, 713)를 포함할 수 있다. 또한, 스토리지 컨트롤러(710)는 플래시 변환 레이어(Flash Translation Layer(FTL), 714), 패킷 매니저(715), 버퍼 메모리(716), ECC(error correction code, 717) 엔진 및 AES(advanced encryption standard, 718) 엔진을 더 포함할 수 있다. 스토리지 컨트롤러(710)는 플래시 변환 레이어(FTL, 714)가 로딩되는 워킹 메모리(미도시)를 더 포함할 수 있으며, CPU(713)가 플래시 변환 레이어(714)를 실행하는 것에 의해 비휘발성 메모리(720)에 대한 데이터 기록 및 독출 동작이 제어될 수 있다.
스토리지 컨트롤러(710)는 도 1의 메모리 컨트롤러(210)에 대응될 수 있다. 이에 따라, 모드 변경 요청(REQ_M) 및 논리 주소를 수신할 수 있고, 데이터를 논리 주소에 기반하여 SLC, MLC, TLC 중 어느 하나에 기입할 수 있다. 또한 스토리지 컨트롤러(710)는 모드 변경 요청(REQ_M)에 따라 기입 커맨드, 소거 커맨드, 실패 메시지 중 적어도 하나를 생성할 수 있다.
호스트 인터페이스(711)는 호스트(600)와 패킷(packet)을 송수신할 수 있다. 호스트(600)로부터 호스트 인터페이스(711)로 전송되는 패킷은 커맨드(command) 혹은 비휘발성 메모리(720)에 기록될 데이터 등을 포함할 수 있으며, 호스트 인터페이스(711)로부터 호스트(600)로 전송되는 패킷은 커맨드에 대한 응답(response) 혹은 비휘발성 메모리(720)로부터 독출된 데이터 등을 포함할 수 있다. 메모리 인터페이스(712)는 비휘발성 메모리(720)에 기록될 데이터를 비휘발성 메모리(720)로 송신하거나, 비휘발성 메모리(720)로부터 독출된 데이터를 수신할 수 있다. 이러한 메모리 인터페이스(712)는 토글(Toggle) 혹은 온파이(ONFI)와 같은 표준 규약을 준수하도록 구현될 수 있다.
플래시 변환 계층(714)은 어드레스 매핑(address mapping), 웨어-레벨링(wear-leveling), 가비지 콜렉션(garbage collection)과 같은 여러 기능을 수행할 수 있다. 어드레스 매핑 동작은 호스트로부터 수신한 논리 어드레스(logical address)를, 비휘발성 메모리(720) 내에 데이터를 실제로 저장하는 데 사용되는 물리 어드레스(physical address)로 바꾸는 동작이다. 웨어-레벨링은 비휘발성 메모리(720) 내의 블록(block)들이 균일하게 사용되도록 하여 특정 블록의 과도한 열화를 방지하기 위한 기술로, 예시적으로 물리 블록(physical block)들의 소거 카운트들을 밸런싱하는 펌웨어 기술을 통해 구현될 수 있다. 가비지 콜렉션은, 블록의 유효 데이터를 새 블록에 복사한 후 기존 블록을 소거(erase)하는 방식을 통해 비휘발성 메모리(720) 내에서 사용 가능한 용량을 확보하기 위한 기술이다.
패킷 매니저(715)는 호스트(600)와 협의된 인터페이스의 프로토콜에 따른 패킷(Packet)을 생성하거나, 호스트(600)로부터 수신된 패킷(Packet)으로부터 각종 정보를 파싱할 수 있다. 또한, 버퍼 메모리(716)는 비휘발성 메모리(720)에 기록될 데이터 혹은 비휘발성 메모리(720)로부터 독출될 데이터를 임시로 저장할 수 있다. 버퍼 메모리(716)는 스토리지 컨트롤러(710) 내에 구비되는 구성일 수 있으나, 스토리지 컨트롤러(710)의 외부에 배치되어도 무방하다.
ECC 엔진(717)은 비휘발성 메모리(720)로부터 독출되는 독출 데이터에 대한 오류 검출 및 정정 기능을 수행할 수 있다. 보다 구체적으로, ECC 엔진(717)은 비휘발성 메모리(720)에 기입될 기입 데이터에 대하여 패리티 비트(parity bit)들을 생성할 수 있으며, 이와 같이 생성된 패리티 비트들은 기입 데이터와 함께 비휘발성 메모리(720) 내에 저장될 수 있다. 비휘발성 메모리(720)로부터의 데이터 독출 시, ECC 엔진(717)은 독출 데이터와 함께 비휘발성 메모리(720)로부터 독출되는 패리티 비트들을 이용하여 독출 데이터의 에러를 정정하고, 에러가 정정된 독출 데이터를 출력할 수 있다.
AES 엔진(718)은, 스토리지 컨트롤러(710)로 입력되는 데이터에 대한 암호화(encryption) 동작과 복호화(decryption) 동작 중 적어도 하나를, 대칭 키 알고리즘(symmetric-key algorithm)를 이용하여 수행할 수 있다.
도 13은 본 개시의 예시적인 실시예에 따른 SSD 시스템을 나타내는 블록도이다.
도 13을 참조하면, SSD 시스템(30)은 호스트(800) 및 SSD(900)를 포함할 수 있다. SSD(900)는 신호 커넥터를 통해 호스트(800)와 신호를 주고 받으며, 전원 커넥터를 통해 전원을 입력 받을 수 있다. SSD(900)는 SSD 컨트롤러(910), 보조 전원 장치(920) 및 메모리 장치들(930_1~930_n)을 포함할 수 있다.
메모리 장치들(930_1~930_n) 각각은 SLC, MLC 및 TLC 중 적어도 하나를 포함할 수 있다. 예를 들어 제1 메모리 장치(930_1)는 SLC로 구성되고, 제2 메모리 장치(930_2)는 MLC로 구성되고, 제3 메모리 장치(930_n)는 TLC로 구성될 수 있다. 그러나 이에 제한되는 것은 아니다. 제1 메모리 장치(930_1)의 몇몇 메모리 블록은 SLC로 구성되고, 몇몇 메모리 블록은 MLC로 구성될 수도 있을 것이다.
전술한 실시예들이 도 13에 도시된 SSD 시스템(30)에 적용될 수 있다. 한 실시예에 따르면, 호스트(800)는 모드 매니저(810) 및 스토리지 드라이버(820)를 포함할 수 있다. 구체적으로 모드 매니저(810)는 파일 및/또는 폴더의 동작 모드가 변경됨에 따라 파일 및/또는 폴더의 논리 주소를 추출하고, 모드 변경 요청을 생성할 수 있다. 스토리지 드라이버(820)는 제1 동작 모드로 설정된 파일 및/또는 폴더의 정보를 관리하고, 논리 주소 및 모드 변경 요청을 SSD(900)로 전송할 수 있다. SSD(900)는 모드 변경 요청에 따라, 데이터를 논리 주소에 따라 SLC가 포함된 메모리 장치, MLC가 포함된 메모리 장치 및 TLC가 포함된 메모리 장치 중 어느 하나로 제공할 수 있다.
본 개시의 실시예에 따르면, 데이터를 SLC가 포함된 메모리 장치로 기입함에 따라, 향상된 기입 속도를 얻을 수 있다. 데이터를 MLC가 포함된 메모리 장치 또는 TLC가 포함된 메모리 장치로 기입함에 따라, 저장 공간을 확보할 수 있다. 얻고자 하는 목적에 따라, 파일 및/또는 폴더를 고속 모드 또는 저속 모드로 설정하는 동작이 수행될 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (10)

  1. 메모리 장치와 연결되는 메모리 컨트롤러의 동작 방법으로서,
    적어도 하나의 파일이 관리되는 단위인 폴더에 대하여, 호스트에 의해 상기 폴더에 대한 제1 모드 변경 요청 및 상기 적어도 하나의 파일에 대한 논리 주소를 상기 호스트로부터 수신하는 단계; 및
    상기 제1 모드 변경 요청에 대한 응답으로서, 상기 메모리 장치에 상기 논리 주소에 대응되는 제1 데이터를 제2 동작 모드로 재기입하고, 상기 논리 주소 및 상기 제1 데이터에 대응되어 제1 동작 모드로 기입이 완료된 제1 기존 데이터를 무효화하는 단계;를 포함하고,
    상기 제1 모드 변경 요청은 상기 폴더에 포함된 상기 적어도 하나의 파일에 대한 데이터 동작 속도를 고속 모드로 설정하는 것을 특징으로 하는 동작 방법.
  2. 제1항에 있어서,
    상기 호스트로부터, 상기 폴더에 제1 파일이 추가됨에 따라, 상기 제1 파일에 대한 제1 논리 주소를 더 수신하는 단계; 및
    상기 제1 논리 주소를 기초로 상기 제1 파일을 상기 메모리 장치에 상기 제2 동작 모드로 기입하는 단계;
    를 더 포함하는 것을 특징으로 하는 동작 방법.
  3. 제1항에 있어서,
    상기 호스트로부터 상기 폴더에 대한 제2 모드 변경 요청 및 상기 논리 주소를 수신하는 단계; 및
    상기 제2 모드 변경 요청에 대한 응답으로서, 상기 메모리 장치에 상기 제1 데이터에 대응되는 상기 제2 데이터를 상기 제1 동작 모드로 재기입하고, 상기 상기 제2 동작 모드로 기입이 완료된 상기 제1 데이터를 무효화하는 단계;
    를 더 포함하고,
    상기 제2 모드 변경 요청은 상기 폴더에 포함된 적어도 하나의 파일에 대한 데이터 동작 속도를 저속 모드로 설정하는 것을 특징으로 하는 동작 방법.
  4. 제1항에 있어서,
    상기 제1 동작 모드는 상기 제1 데이터를 상기 메모리 장치의 멀티 레벨 셀(multi level cell, MLC)에 기입하는 MLC 모드 또는 상기 제1 데이터를 상기 메모리 장치의 트리플 레벨 셀(triple level cell, TLC)에 기입하는 TLC 모드이고,
    상기 제2 동작 모드는 상기 제1 데이터를 상기 메모리 장치의 싱글 레벨 셀(single level cell, SLC)에 기입하는 SLC 모드인 것을 특징으로 하는 동작 방법.
  5. 메모리 장치를 포함하는 스토리지 장치와 연결되는 호스트의 동작 방법으로서,
    적어도 하나의 파일이 관리되는 단위인 폴더에 대하여, 상기 호스트에 의해 상기 폴더의 동작 모드가 제1 동작 모드로 설정되는 단계;
    상기 적어도 하나의 파일에 대한 데이터 동작 속도를 고속 모드로 설정하기 위한 제1 모드 변경 요청을 생성하고, 상기 적어도 하나의 파일에 대한 논리 주소를 추출하는 단계;
    상기 폴더의 정보를 관리 테이블에 추가하는 단계;
    상기 제1 모드 변경 요청 및 상기 논리 주소를 상기 스토리지 장치로 제공하는 단계; 및
    상기 스토리지 장치의 저장 공간에 따라, 상기 제1 모드 변경 요청에 대하여, 상기 적어도 하나의 파일의 기입의 성공 여부를 포함하는 응답을 수신하는 단계;
    를 포함하는 것을 특징으로 하는 동작 방법.
  6. 제5항에 있어서,
    상기 제1 동작 모드는,
    상기 폴더에 포함된 상기 적어도 하나의 파일을 상기 메모리 장치의 싱글 레벨 셀(single level cell, SLC)에 기입하는 SLC 모드인 것을 특징으로 하는 동작 방법.
  7. 제6항에 있어서,
    상기 폴더에 제1 파일이 추가되는 단계;
    상기 제1 파일을 상기 메모리 장치에 상기 SLC 모드로 기입하기 위한 기입 요청을 생성하고, 상기 제1 파일에 대한 제1 논리 주소를 더 추출하는 단계; 및
    상기 기입 요청 및 상기 제1 논리 주소를 상기 스토리지 장치로 제공하는 단계;
    를 더 포함하는 것을 특징으로 하는 동작 방법.
  8. 제6항에 있어서,
    제1 폴더에 포함된 제1 파일이 변경됨으로써 제2 파일이 생성되는 단계;
    상기 제1 폴더의 정보가 상기 관리 테이블에 존재하는지 판단하는 단계;
    상기 제1 폴더의 정보가 상기 관리 테이블에 존재함에 따라, 상기 제2 파일을 상기 메모리 장치에 상기 SLC 모드로 기입하기 위한, 제2 모드 변경 요청을 생성하고, 상기 제1 파일에 대한 제1 논리 주소를 더 추출하고, 상기 제1 파일에 기초하여 상기 메모리 장치에 기입이 완료된 기존 데이터를 무효화하는 단계; 및
    상기 제2 모드 변경 요청 및 상기 제1 논리 주소를 상기 스토리지 장치로 제공하는 단계;
    를 더 포함하는 것을 특징으로 하는 동작 방법.
  9. 제6항에 있어서,
    상기 폴더의 동작 모드가 제2 동작 모드로 설정되는 단계;
    상기 폴더에 포함된 적어도 하나의 파일에 대한 데이터 동작 속도를 저속 모드로 설정하기 위한 제2 모드 변경 요청을 생성하는 단계;
    상기 관리 테이블에서 상기 폴더의 정보를 삭제하는 단계; 및
    상기 제2 모드 변경 요청 및 상기 논리 주소를 상기 스토리지 장치로 제공하는 단계;를 더 포함하고,
    상기 제2 동작 모드는,
    상기 폴더에 포함된 상기 적어도 하나의 파일을 상기 메모리 장치의 멀티 레벨 셀(multi level cell, MLC)에 기입하는 MLC 모드 또는 상기 적어도 하나의 파일을 상기 메모리 장치의 트리플 레벨 셀(triple level cell, TLC)에 기입하는 TLC 모드인 것을 특징으로 하는 동작 방법.
  10. 제6항에 있어서,
    상기 응답을 수신하는 단계는,
    상기 저장 공간이 상기 적어도 하나의 파일을 상기 SLC 모드로 기입하기에 부족함에 따라, 상기 제1 모드 변경 요청에 대한 응답으로서 실패 메시지를 수신하는 단계; 및
    상기 실패 메시지에 응답하여 상기 관리 테이블로부터 상기 폴더의 정보를 삭제하는 단계;
    를 포함하는 것을 특징으로 하는 동작 방법.
KR1020210110306A 2021-08-20 2021-08-20 호스트 및 스토리지 장치를 포함하는 스토리지 시스템 및 이의 동작 방법 KR20230027957A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020210110306A KR20230027957A (ko) 2021-08-20 2021-08-20 호스트 및 스토리지 장치를 포함하는 스토리지 시스템 및 이의 동작 방법
CN202210706541.0A CN115904218A (zh) 2021-08-20 2022-06-21 包括主机和存储装置的存储系统以及存储系统的操作方法
US17/848,820 US11822800B2 (en) 2021-08-20 2022-06-24 Storage system including host and storage device and operation method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210110306A KR20230027957A (ko) 2021-08-20 2021-08-20 호스트 및 스토리지 장치를 포함하는 스토리지 시스템 및 이의 동작 방법

Publications (1)

Publication Number Publication Date
KR20230027957A true KR20230027957A (ko) 2023-02-28

Family

ID=85228694

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210110306A KR20230027957A (ko) 2021-08-20 2021-08-20 호스트 및 스토리지 장치를 포함하는 스토리지 시스템 및 이의 동작 방법

Country Status (3)

Country Link
US (1) US11822800B2 (ko)
KR (1) KR20230027957A (ko)
CN (1) CN115904218A (ko)

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8078794B2 (en) 2000-01-06 2011-12-13 Super Talent Electronics, Inc. Hybrid SSD using a combination of SLC and MLC flash memory arrays
KR100833188B1 (ko) 2006-11-03 2008-05-28 삼성전자주식회사 데이터의 특성에 따라 싱글 레벨 셀 또는 멀티 레벨 셀에데이터를 저장하는 불휘발성 메모리 시스템
KR100875539B1 (ko) * 2007-01-17 2008-12-26 삼성전자주식회사 프로그램 방식을 선택할 수 있는 메모리 시스템
TWI425523B (zh) 2008-03-25 2014-02-01 Asmedia Technology Inc 混合型快閃儲存裝置及其操作方法
US8060719B2 (en) 2008-05-28 2011-11-15 Micron Technology, Inc. Hybrid memory management
US8843691B2 (en) * 2008-06-25 2014-09-23 Stec, Inc. Prioritized erasure of data blocks in a flash storage device
US8407400B2 (en) 2008-11-12 2013-03-26 Micron Technology, Inc. Dynamic SLC/MLC blocks allocations for non-volatile memory
US8209466B2 (en) 2008-12-16 2012-06-26 Intel Corporation Methods and systems to allocate addresses in a high-endurance/low-endurance hybrid flash memory
KR101861170B1 (ko) 2011-08-17 2018-05-25 삼성전자주식회사 마이그레이션 관리자를 포함하는 메모리 시스템
US8995183B2 (en) 2012-04-23 2015-03-31 Sandisk Technologies Inc. Data retention in nonvolatile memory with multiple data storage formats
US8954655B2 (en) 2013-01-14 2015-02-10 Western Digital Technologies, Inc. Systems and methods of configuring a mode of operation in a solid-state memory
JP7030463B2 (ja) 2017-09-22 2022-03-07 キオクシア株式会社 メモリシステム
KR102593541B1 (ko) 2018-11-29 2023-10-25 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법
US10901622B2 (en) 2018-12-28 2021-01-26 Micron Technology, Inc. Adjustable NAND write performance

Also Published As

Publication number Publication date
CN115904218A (zh) 2023-04-04
US11822800B2 (en) 2023-11-21
US20230054286A1 (en) 2023-02-23

Similar Documents

Publication Publication Date Title
US11249897B2 (en) Data storage device and operating method thereof
US11386005B2 (en) Memory system, memory controller, and method of operating memory system for caching journal information for zone in the journal cache
KR102287760B1 (ko) 메모리 시스템 및 상기 메모리 시스템의 동작 방법
US11537318B2 (en) Memory system and operating method thereof
US11567685B2 (en) Storage controller and storage device including the same
US11520694B2 (en) Data storage device and operating method thereof
KR102660399B1 (ko) 메모리 시스템 및 그것의 동작방법
KR20200044461A (ko) 메모리 시스템 및 그것의 동작방법
CN114078543A (zh) 存储器控制器及其操作方法
US11113202B2 (en) Operating method forcing the second operation to fail using a scatter-gather buffer and memory system thereof
KR20210097353A (ko) 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법
KR20190006677A (ko) 데이터 저장 장치 및 그것의 동작 방법
CN110825655A (zh) 存储器件、存取数据的方法及管理数据的方法
KR20200033461A (ko) 메모리 시스템 및 그것의 동작방법
KR20220049109A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
KR20220049397A (ko) 메모리 장치, 이를 포함하는 스토리지 장치 및 스토리지 장치의 동작 방법
KR20210157544A (ko) 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법
US12001709B2 (en) Storage devices and operating methods of storage controllers
KR20170109344A (ko) 데이터 저장 장치 및 그것의 동작 방법
CN116126222A (zh) 包括非易失性存储器装置的存储装置
CN114968856B (zh) 存储器系统及其操作方法
TW202311965A (zh) 主機裝置、記憶體控制器及包括其的計算系統
KR20220130526A (ko) 메모리 시스템 및 그 동작 방법
US11822800B2 (en) Storage system including host and storage device and operation method thereof
CN114530173A (zh) 存储器系统及其操作方法