KR20240040507A - 스토리지 시스템 및 스토리지 시스템의 동작 방법 - Google Patents

스토리지 시스템 및 스토리지 시스템의 동작 방법 Download PDF

Info

Publication number
KR20240040507A
KR20240040507A KR1020220119541A KR20220119541A KR20240040507A KR 20240040507 A KR20240040507 A KR 20240040507A KR 1020220119541 A KR1020220119541 A KR 1020220119541A KR 20220119541 A KR20220119541 A KR 20220119541A KR 20240040507 A KR20240040507 A KR 20240040507A
Authority
KR
South Korea
Prior art keywords
cache
host device
host
storage device
area
Prior art date
Application number
KR1020220119541A
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 KR1020220119541A priority Critical patent/KR20240040507A/ko
Priority to US18/198,511 priority patent/US20240095166A1/en
Priority to CN202310664542.8A priority patent/CN117742573A/zh
Priority to EP23180001.2A priority patent/EP4343557A1/en
Publication of KR20240040507A publication Critical patent/KR20240040507A/ko

Links

Images

Classifications

    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0873Mapping of cache memory to specific storage devices or parts thereof
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • 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/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/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/30Providing cache or TLB in specific location of a processing system
    • G06F2212/305Providing cache or TLB in specific location of a processing system being part of a memory device, e.g. cache DRAM
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/311In host system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

본 개시의 기술적 사상에 따른 스토리지 시스템의 동작 방법은, 호스트 장치에 의해, 제1 쓰기 커맨드 및 논리 어드레스를 스토리지 장치로 전달하는 단계, 스토리지 장치에 의해, 호스트 장치의 호스트 메모리에 포함된 노멀 영역의 제1 노멀 오프셋 정보 및 캐시 영역의 제1 캐시 오프셋 정보를 호스트 장치로 전달하는 단계, 호스트 장치에 의해, 제1 노멀 오프셋 정보 및 제1 캐시 오프셋 정보를 기초로 노멀 영역에 저장된 제1 쓰기 데이터를 캐시 영역으로 복사하는 단계 및 스토리지 장치에 의해, 제1 쓰기 커맨드의 플래그 필드를 기초로 호스트 장치로부터 상기 제1 쓰기 데이터에 대한 수신을 생략하고, 제1 쓰기 커맨드에 대한 응답을 호스트 장치로 전달하는 단계를 포함한다.

Description

스토리지 시스템 및 스토리지 시스템의 동작 방법{STORAGE SYSTEM AND OPERATING METHOD OF STORAGE SYSTEM}
본 개시의 기술적 사상은 스토리지 시스템에 관한 것으로서, 자세하게는 호스트 메모리를 캐시 메모리로 사용하는 스토리지 시스템에 관한 것이다.
불휘발성 메모리는 전원이 차단되어도 저장하고 있는 데이터를 유지할 수 있다. 최근 eMMC(embedded Multi-Media Card), UFS(Universal Flash Storage), SSD(Solid State Drive), 및 메모리 카드 등의 플래시 기반의 불휘발성 메모리를 포함하는 스토리지 장치가 널리 사용되고 있으며, 스토리지 장치는 많은 양의 데이터를 저장하거나 이동시키는데 유용하게 사용되고 있다.
스토리지 장치를 포함하는 데이터 처리 시스템은 스토리지 시스템(Storage system)으로 지칭될 수 있으며, 스토리지 시스템은 호스트(Host)와 스토리지 장치(Storage device)를 포함할 수 있다. 호스트와 스토리지 장치는 다양한 인터페이스 표준을 통해 연결될 수 있다.
본 개시의 기술적 사상은 호스트 메모리를 캐시 메모리로서 사용하는 스토리지 시스템에 관한 것으로서, 호스트와 스토리지 장치 간의 데이터 전송 없이도 쓰기 동작 또는 리드 동작이 완료되므로 향상된 쓰기 속도 및 리드 속도가 제공될 수 있다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 일 측면에 따른 스토리지 시스템의 동작 방법은, 호스트 장치에 의해, 제1 쓰기 커맨드 및 논리 어드레스를 스토리지 장치로 전달하는 단계, 스토리지 장치에 의해, 호스트 장치의 호스트 메모리에 포함된 노멀 영역의 제1 노멀 오프셋 정보 및 캐시 영역의 제1 캐시 오프셋 정보를 호스트 장치로 전달하는 단계, 호스트 장치에 의해, 제1 노멀 오프셋 정보 및 제1 캐시 오프셋 정보를 기초로 노멀 영역에 저장된 제1 쓰기 데이터를 캐시 영역으로 복사하는 단계 및 스토리지 장치에 의해, 제1 쓰기 커맨드의 플래그 필드를 기초로 호스트 장치로부터 상기 제1 쓰기 데이터에 대한 수신을 생략하고, 제1 쓰기 커맨드에 대한 응답을 호스트 장치로 전달하는 단계를 포함한다.
본 개시의 다른 측면에 따른 스토리지 시스템은, 노멀 영역 및 캐시 영역을 포함하는 메모리를 포함하는 호스트 장치 및 메모리 셀 어레이를 포함하고, 호스트 장치로부터 쓰기 커맨드 및 논리 어드레스를 수신하고, 캐시 영역에 대한 제1 어드레스 정보를 호스트 장치에 전달하도록 구성되는 스토리지 장치를 포함하고, 호스트 장치는, 제1 어드레스 정보를 기초로 노멀 영역에 저장된 쓰기 데이터를 캐시 영역으로 복사하고, 스토리지 장치는, 호스트 장치로부터 쓰기 데이터를 수신하기 전에 쓰기 커맨드에 대한 응답을 호스트 장치에 전달한다.
본 개시의 다른 측면에 따른 스토리지 시스템의 동작 방법은, 호스트 장치에 의해, 제1 리드 커맨드 및 논리 어드레스를 스토리지 장치로 전달하는 단계, 스토리지 장치에 의해, 호스트 장치의 호스트 메모리에 포함된 노멀 영역의 제1 오프셋 정보 및 캐시 영역의 제1 캐시 오프셋 정보 및 리드 데이터를 호스트 장치로 전달하는 단계, 호스트 장치에 의해, 제1 노멀 오프셋 정보 및 제1 캐시 오프셋 정보를 기초로 리드 데이터를 노멀 영역 및 캐시 영역에 저장하는 단계, 호스트 장치에 의해, 제2 리드 커맨드 및 논리 어드레스를 스토리지 장치로 전달하는 단계, 스토리지 장치에 의해, 제1 캐시 오프셋 정보를 호스트 장치로 전달하는 단계 및 호스트 장치에 의해, 제1 캐시 오프셋 정보를 기초로 캐시 영역에 저장된 리드 데이터를 노멀 영역으로 복사하는 단계를 포함한다.
본 개시의 예시적 실시 예에 따라, 쓰기 데이터를 호스트 메모리에 캐싱함으로써, 호스트가 스토리지 장치에 쓰기 데이터를 전송하지 않더라도 쓰기 동작이 완료될 수 있고, 스토리지 장치의 요청에 따라 쓰기 데이터가 추후 스토리지 장치에 제공될 수 있다.
본 개시의 예시적 실시 예에 따라, 리드 데이터를 호스트 메모리에 캐싱함으로써, 스토리지 장치가 호스트에 리드 데이터를 전송하지 않더라도 리드 동작이 완료될 수 있다.
도 1은 본 개시의 예시적 실시예에 따른 스토리지 시스템을 설명하는 블록도이다.
도 2는 본 개시의 예시적 실시예에 따른 호스트(10)를 설명하는 블록도이다.
도 3은 본 개시의 예시적 실시예에 따른 스토리지 장치(20)를 설명하는 블록도이다.
도 4는 비교 예에 따른 스토리지 시스템의 쓰기 방법을 설명하는 도면이다.
도 5는 본 개시의 예시적 실시예에 따른 스토리지 시스템의 쓰기 방법을 설명하는 도면이다.
도 6은 비교 예에 따른 스토리지 시스템의 리드 방법을 설명하는 도면이다.
도 7은 본 개시의 예시적 실시예에 따른 스토리지 시스템의 리드 방법을 설명하는 도면이다.
도 8은 본 개시의 예시적 실시예에 따른 스토리지 시스템의 쓰기 방법을 설명하는 도면이다.
도 9는 본 개시의 예시적 실시예에 따른 스토리지 시스템의 리드 방법을 설명하는 도면이다.
도 10은 본 개시의 예시적 실시예에 따른 L2C 맵을 나타내는 도면이다.
도 11은 본 개시의 예시적 실시예에 따른 프로그램 단위를 기초로 캐시 영역에 데이터를 저장하는 방법을 설명하는 도면이다.
도 12는 본 개시의 예시적 실시예에 따른 스트림 식별자를 기초로 캐시 영역에 데이터를 저장하는 방법을 설명하는 도면이다.
도 13a는 일 실시예에 따른 일반 UPIU의 데이터 구조를 설명하는 도면이다.
도 13b는 본 개시의 예시적 실시예에 따른 커맨드 UPIU의 데이터 구조를 설명하는 도면이다.
도 13c는 본 개시의 예시적 실시예에 따른 응답 UPIU의 데이터 구조를 설명하는 도면이다.
도 13d는 본 개시의 예시적 실시예에 따른 데이터 아웃 UPIU의 데이터 구조를 설명하는 도면이다.
도 13e는 본 개시의 예시적 실시예에 따른 데이터 인 UPIU의 데이터 구조를 설명하는 도면이다.
도 13f는 본 개시의 예시적 실시예에 따른 RTT UPIU의 데이터 구조를 설명하는 도면이다.
도 14는 본 개시의 예시적 실시예에 따른 쓰기 동작을 설명하는 도면이다.
도 15는 본 개시의 예시적 실시예에 따른 리드 동작을 설명하는 도면이다.
도 16은 본 개시의 예시적 실시예에 따른 쓰기 동작을 설명하는 도면이다.
도 17은 본 발명의 일 실시예에 따른 UFS 시스템(2000)에 대해 설명하기 위한 도면이다.
도 18은 도 1의 비휘발성 메모리를 나타내는 예시적인 블록도이다.
도 19는 본 개시의 일 실시예에 따라, B-VNAND 구조를 갖는 메모리 장치(50)의 단면도이다.
이하, 본 발명의 다양한 실시 예가 첨부된 도면을 참조하여 기재된다.
도 1은 본 개시의 예시적 실시예에 따른 스토리지 시스템을 설명하는 블록도이다.
도 1을 참조하면, 스토리지 시스템(1)은 호스트(10) 및 스토리지 장치(20)를 포함할 수 있다.
호스트(10)는 호스트 메모리(100)를 포함할 수 있다. 호스트 메모리(100)는 DRAM(Dynamic Random Access Memory), SRAM(Static Random Access Memory) 또는 비휘발성 메모리 중 적어도 하나를 포함할 수 있다. 호스트 메모리(100)는 호스트(10)에 의해 실행되는 적어도 하나의 명령어 또는 프로그램을 저장할 수 있다. 나아가, 호스트 메모리(100)는 스토리지 장치(20)에 제공될 데이터 또는 스토리지 장치(20)로부터 제공된 데이터를 저장할 수 있다.
호스트 메모리(100)는 노멀 영역(110) 및 캐시 영역(120)을 포함할 수 있다. 노멀 영역(110)은 스토리지 장치(20)에 제공될 쓰기 데이터 또는 스토리지 장치(20)로부터 수신된 리드 데이터를 저장할 수 있다. 도시되지 않았으나, 노멀 영역(110)은 쓰기 데이터가 저장되는 쓰기 노멀 영역 및 리드 데이터가 저장되는 리드 노멀 영역을 포함할 수 있다. 쓰기 데이터와 리드 데이터는, 스토리지 장치(20)의 요청에 따라 캐시 영역(120)에 저장될 수 있다. 즉, 스토리지 장치(20)의 요청에 따라, 노멀 영역(110)에 저장된 쓰기 데이터는 캐시 영역(120)으로 복사될 수 있고, 노멀 영역(110)에 저장된 리드 데이터는 캐시 영역(120)으로 복사될 수 있다. 도시되지 않았으나, 캐시 영역(120)는 쓰기 데이터가 저장되는 쓰기 캐시 영역 및 리드 데이터가 저장되는 리드 캐시 영역을 포함할 수 있다. 캐시 영역(120)에 저장된 데이터는 스토리지 장치(20)의 요청에 따라 스토리지 장치(20)에 제공될 수 있다.
호스트(10)는 스토리지 장치(20)에 논리 어드레스 및 커맨드를 제공할 수 있다. 쓰기 동작 시, 호스트(10)는 논리 어드레스에 대응하는 비휘발성 메모리(220)의 저장 영역에 쓰기 데이터를 프로그램하도록 스토리지 장치(20)에 요청할 수 있다. 리드 동작 시, 호스트(10)는 논리 어드레스에 대응하는 비휘발성 메모리(220)의 저장 영역으로부터 리드되는 데이터를 스토리지 장치(20)에 요청할 수 있다.
하나의 논리 어드레스에 대한 쓰기 동작 또는 리드 동작은 복수 회 수행될 수 있다. 본 명세서에서, 하나의 논리 어드레스에 대해 이전에 수행되는 쓰기 동작 또는 리드 동작은 제1 쓰기 동작 또는 제1 리드 동작으로 지칭될 수 있고, 하나의 논리 어드레스에 대해 이후에 수행되는 쓰기 동작 또는 리드 동작은 제2 쓰기 동작 또는 제2 리드 동작으로 지칭될 수 있다. 제2 리드 동작은 캐시 리드 동작으로 지칭될 수도 있다.
본 발명의 예시적 실시예에 따르면, 제1 쓰기 동작 시, 호스트(10)와 스토리지 장치(20)는 쓰기 데이터를 송/수신하지 않고 쓰기 동작을 완료할 수 있다. 구체적으로, 호스트(10)는 스토리지 장치(20)에 논리 어드레스 및 쓰기 커맨드를 제공하고, 쓰기 데이터를 제공하지 않을 수 있다. 또한, 스토리지 장치(20)는 쓰기 데이터가 노멀 영역(110)에서 캐시 영역(120)으로 복사되도록 호스트(10)에 요청할 수 있다. 스토리지 장치(20)는 쓰기 데이터가 저장된 노멀 영역(110)의 어드레스 정보 및 쓰기 데이터가 복사될 캐시 영역(120)의 어드레스 정보를 호스트(10)에 제공할 수 있다. 본 명세서에서, 어드레스 정보는 오프셋 정보로 지칭될 수도 있다. 오프셋 정보는 데이터 버퍼 오프셋 정보로 지칭될 수도 있다. 노멀 영역(110)의 오프셋 정보는 노멀 오프셋 정보로 지칭될 수 있고, 캐시 영역(120)의 오프셋 정보는 캐시 오프셋 정보로 지칭될 수 있다. 스토리지 장치(20)는 논리 어드레스와, 오프셋 정보의 매핑 관계(예를 들어, 도 10의 L2C 맵)를 관리할 수 있다. 호스트(10)는 노멀 오프셋 정보 및 캐시 오프셋 정보를 기초로, 노멀 영역(110)의 쓰기 데이터를 캐시 영역(120)으로 복사할 수 있다. 스토리지 장치(20)는 쓰기 커맨드에 대한 응답을 호스트(10)에 제공할 수 있다. 스토리지 장치(20)는, 호스트(10)와 스토리지 장치(20) 간의 데이터 전송이 적은 유휴 시간에 호스트(10)에 쓰기 데이터의 전송을 요청할 수 있다. 스토리지 장치(20)의 요청에 따라 캐시 영역(120)에 저장된 쓰기 데이터가 비휘발성 메모리(220)에 저장되는 플러시 동작이 수행될 수 있다. 본 개시의 예시적 실시예에 따르면, 호스트(10)는 쓰기 데이터의 전송 없이 스토리지 장치(20)로부터 응답을 수신하므로 쓰기 동작이 신속하게 완료될 수 있다.
제1 리드 동작 시, 호스트(10)는 스토리지 장치(20)에 논리 어드레스 및 리드 커맨드를 제공할 수 있다. 스토리지 장치(20)는 리드 커맨드에 응답하여 비휘발성 메모리(220)에 저장된 데이터를 리드할 수 있고, 리드 데이터를 호스트(10)에 제공할 수 있다. 나아가, 스토리지 장치(20)는 리드 데이터가 저장될 노멀 영역(110)의 노멀 오프셋 정보 및 리드 데이터가 저장될 캐시 영역(120)의 캐시 오프셋 정보를 호스트(10)에 제공할 수 있다. 스토리지 장치(20)는 논리 어드레스, 노멀 오프셋 정보 및 캐시 오프셋 정보의 매핑 관계를 관리할 수 있다. 호스트(10)는 노멀 오프셋 정보 및 캐시 오프셋 정보를 기초로 스토리지 장치(20)로부터 제공된 리드 데이터를 노멀 영역(110) 및 캐시 영역(120)에 저장할 수 있다.
제2 쓰기 동작은 제1 쓰기 동작 후 동일한 논리 어드레스에 대해 수행되는 쓰기-후-쓰기(Write-After-Write) 동작 또는 제1 리드 동작 후 동일한 논리 어드레스에 대해 수행되는 리드-후-쓰기(Write-After-Read) 동작일 수 있다. 즉, 제2 쓰기 동작 시, 캐시 영역(120)에는 리드 데이터 또는 쓰기 데이터가 저장된 상태일 수 있다. 스토리지 장치(20)는 논리 어드레스를 기초로 캐시 히트 또는 캐시 미스를 판단할 수 있다. 호스트(10)로부터 수신된 논리 어드레스가 L2C 맵에 유효 데이터로서 포함된 경우 캐시 히트라고 판단할 수 있고, 호스트(10)로부터 수신된 논리 어드레스가 L2C 맵에 유효 데이터로서 포함되지 않은 경우 캐시 미스라고 판단할 수 있다.
제2 쓰기 동작 시, 호스트(10)는 스토리지 장치(20)에 논리 어드레스 및 쓰기 커맨드를 제공하고, 쓰기 데이터를 제공하지 않을 수 있다. 스토리지 장치(20)는 새로운 쓰기 데이터가 저장된 노멀 영역(110)의 새로운 노멀 오프셋 정보 및 새로운 쓰기 데이터가 복사될 캐시 영역(120)의 새로운 캐시 오프셋 정보를 호스트(10)에 제공할 수 있다. 스토리지 장치(20)는 논리 어드레스에 매핑되는 새로운 노멀 오프셋 정보 및 새로운 캐시 오프셋 정보를 업데이트할 수 있다. 호스트(10)는 새로운 노멀 오프셋 정보 및 새로운 캐시 오프셋 정보를 기초로, 노멀 영역(110)의 새로운 쓰기 데이터를 캐시 영역(120)으로 복사할 수 있다. 스토리지 장치(20)는 쓰기 커맨드에 대한 응답을 호스트(10)에 제공할 수 있다. 스토리지 장치(20)는, 호스트(10)와 스토리지 장치(20) 간의 데이터 전송이 적은 유휴 시간에 호스트(10)에 새로운 쓰기 데이터의 전송을 요청할 수 있다. 스토리지 장치(20)의 요청에 따라 캐시 영역(120)에 저장된 데이터가 비휘발성 메모리(220)에 저장되는 플러시 동작이 수행될 수 있다. 본 개시의 예시적 실시예에 따르면, 호스트(10)는 쓰기 데이터의 전송 없이 스토리지 장치(20)로부터 응답을 수신하므로 쓰기 동작이 신속하게 완료될 수 있다.
제2 리드 동작은 제1 쓰기 동작 후 수행되는 쓰기-후-리드(Read-After-Write) 동작 또는 제1 리드 동작 후 수행되는 리드-후-리드(Read-After-Read) 동작일 수 있다. 즉, 제2 리드 동작 시, 캐시 영역(120)에는 리드 데이터 또는 쓰기 데이터가 저장된 상태일 수 있다. 캐시 히트 시 제2 리드 동작이 수행될 수 있고, 캐시 미스 시 제1 리드 동작이 수행될 수 있다.
제2 리드 동작 시, 호스트(10)는 스토리지 장치(20)에 리드 커맨드 및 논리 어드레스를 제공할 수 있다. 스토리지 장치(20)는 휘발성 메모리(220)로부터 데이터를 리드하는 동작을 생략하고, 매핑 관계를 기초로 논리 어드레스에 대응하는 캐시 오프셋 정보를 호스트(10)에 제공할 수 있다. 호스트(10)는 스토리지 장치(20)로부터 수신된 캐시 오프셋 정보를 기초로, 캐시 영역(120)에 저장된 데이터를 노멀 영역(110)으로 복사할 수 있다. 즉, 호스트(10)는 스토리지 장치(20)로부터 데이터를 직접 수신하지 않고, 캐시 영역(120)에 이미 저장된 데이터를 노멀 영역(110)으로 복사함으로써 리드 데이터를 획득할 수 있다. 제2 리드 동작 시, 호스트(10)와 스토리지 장치(20)에 송/수신되는 데이터 없이, 호스트 메모리(100) 내부에서 데이터가 복사되므로, 제2 리드 동작이 신속하게 완료될 수 있다. 캐시 영역(120)의 용량은 스토리지 장치(20) 내부의 캐시 용량보다 클 수 있다. 따라서, 많은 양의 데이터가 캐시 영역(120)에 저장될 수 있으므로, 캐시 히트 확률이 증가할 수 있고, 호스트(10)와 스토리지 장치(20) 간의 데이터 전송량이 감소할 수 있다.
일부 실시예들에서, 제1 또는 제2 쓰기 동작 시, 호스트(10)는 데이터의 스트림 식별자를 기초로 노멀 영역(110)의 쓰기 데이터를 캐시 영역(120)으로 복사할 수 있다. 구체적으로, 호스트(10)는 쓰기 데이터에 스트림 식별자를 할당하고, 스트림 식별자를 기초로 캐시 영역(120)을 복수의 영역들로 구분하고, 스트림 식별자에 따라 쓰기 데이터를 복수의 영역들에 저장할 수 있다. 유휴 시간에 스토리지 장치(20)는 특정 스트림 식별자를 갖는 데이터의 전송을 요청할 수 있고, 호스트(10)는 해당 스트림 식별자에 할당된 영역의 데이터를 스토리지 장치(20)에 전송할 수 있다.
일부 실시예들에서, 쓰기 동작 시, 호스트(10)는 데이터의 프로그램 단위를 기초로 노멀 영역(110)의 쓰기 데이터를 캐시 영역(120)으로 복사할 수 있다. 프로그램 단위는 SLC(Single-Level Cell) 단위, MLC(Multi-Level Cell) 단위, TLC(Triple-Level Cell) 단위, QLC(Quad-Level Cell) 단위 등 비휘발성 메모리(220)에 포함된 하나의 메모리 셀에 저장되는 비트의 개수를 의미할 수 있다. 예를 들어, 비휘발성 메모리(220)에 QLC 단위로 데이터가 저장되는 경우, 하나의 메모리 셀에 4개의 비트가 저장되므로, SLC 단위로 데이터가 저장될 때보다 4배의 데이터가 캐시 영역(120)에 저장될 수 있다. 따라서, 호스트(10)는 데이터의 프로그램 단위에 따라 상이한 크기의 데이터를 캐시 영역(120)으로 복사할 수 있다.
스토리지 장치(20)는 메모리 컨트롤러(210) 및 비휘발성 메모리(220)를 포함할 수 있다. 메모리 컨트롤러(210)는 스토리지 장치(20)를 전반적으로 제어할 수 있다. 비휘발성 메모리(220)에서 리드된 데이터는 호스트(10)에 제공될 수 있고, 호스트(10)로부터 제공되는 데이터는 비휘발성 메모리(220)에 프로그램될 수 있다.
도 2는 본 개시의 예시적 실시예에 따른 호스트(10)를 설명하는 블록도이다.
도 2를 참조하면, 호스트(10)는 호스트 드라이버(130), 호스트 메모리(100), 호스트 컨트롤러 인터페이스(140)를 포함할 수 있다. 본 명세서에서, 호스트(10)는 UFS 표준에 따른 UFS 호스트로 가정하고 설명될 수 있으나, 실시예는 이에 제한되지 않는다.
일부 실시예들에서, 호스트 드라이버(130)는 애플리케이션에 의해 생성된 입출력 요청을 UFS 표준에 의해 정의된 UFS 명령으로 변환하고, UFS 명령을 호스트 컨트롤러 인터페이스(140)에 전달할 수 있다. 하나의 입출력 요청은 복수의 UFS 명령으로 변환될 수 있다. 입출력 요청은 태스크 요청으로 지칭될 수도 있다. UFS 명령은 UFS 표준에 따른 UPIU(UFS PROTOCOL INFORMATION UNITS)를 포함하는 개념일 수도 있다. UFS 명령은 기본적으로 SCSI 표준에 의해 정의된 명령일 수 있지만, UFS 표준 전용 명령일 수도 있다.
호스트 컨트롤러 인터페이스(140)는 UFS 드라이버(2130)에 의해 변환된 UFS 명령을 스토리지 장치(20)로 전송할 수 있다. 도 2에서, 호스트 메모리(100)는 호스트 컨트롤러 인터페이스(140)와 별개의 구성으로 도시되었으나, 일부 실시예들에서, 호스트 메모리(100)는 호스트 컨트롤러 인터페이스(140)에 포함될 수도 있다. 호스트 컨트롤러 인터페이스(140)는 호스트 메모리(100)를 제어함으로써 노멀 영역(110)의 데이터를 캐시 영역(120)으로 복사할 수 있다. 호스트 컨트롤러 인터페이스(140)는 논리 어드레스(예를 들어, LBA(Logical Block Address))를 스토리지 장치(20)로 전송할 수도 있다.
도 3은 본 개시의 예시적 실시예에 따른 스토리지 장치(20)를 설명하는 블록도이다. 도 3은 도 2를 참조하여 설명될 수 있다.
도 3을 참조하면, 스토리지 장치(20)는 메모리 컨트롤러(210), 장치 메모리(230) 및 비휘발성 메모리(220)를 포함할 수 있다. 메모리 컨트롤러(210) 및 비휘발성 메모리(220)에 대한 설명은 도 1을 참조하여 전술되었으므로 생략될 수 있다.
장치 메모리(230)는 비휘발성 메모리(220)에 프로그램될 데이터 또는 비휘발성 메모리(220)로부터 리드된 데이터를 임시로 저장할 수 있다. 장치 메모리(230)는 SRAM 또는 DRAM을 포함할 수 있다. 장치 메모리(230)는 도 10을 참조하여 후술되는 L2C 맵을 저장할 수 있다. 스토리지 장치(20)는 쓰기 동작 또는 리드 동작 시 L2C 맵을 업데이트할 수 있다. L2C 맵은 L2C 테이블이라고 지칭될 수도 있다. 일부 실시예들에서, 장치 메모리(230)의 용량은 호스트 메모리(100)의 용량보다 작을 수 있다. 따라서, 본 발명에 따른 스토리지 장치(20)는 호스트 메모리(100)를 캐시 메모리로서 사용할 수 있다. 호스트(10) 및 스토리지 장치(20)는 충분한 용량의 캐시를 기초로 캐시 동작을 수행함으로써 향상된 쓰기 속도 또는 리드 속도를 제공할 수 있다.
도 4는 비교 예에 따른 스토리지 시스템의 쓰기 방법을 설명하는 도면이다. 도 4는 도 1을 참조하여 설명될 수 있다.
도 4를 참조하면, 호스트(10)는 스토리지 장치(20)에 쓰기 커맨드(WR CMD) 및 논리 어드레스(LBA)를 제공할 수 있다(S410). 호스트(10)가 UFS 호스트이고, 스토리지 장치(20)가 UFS 장치인 경우, 쓰기 커맨드(WR CMD)는 UPIU(UFS Protocol Information Units)로 지칭되는 패킷 중 하나일 수 있다. 일부 실시예들에서, 논리 어드레스(LBA)는 쓰기 커맨드(WR CMD)에 포함될 수도 있다.
스토리지 장치(20)는 호스트(10)의 노멀 영역(110)의 오프셋 정보(ofs_N)를 포함하는 RTT(Ready-To-Transfer)를 호스트(10)에 제공할 수 있다(S420). 오프셋 정보(ofs_N)는 노멀 영역(110) 중 쓰기 데이터가 저장된 위치를 나타낼 수 있다. 호스트(10)가 UFS 호스트이고, 스토리지 장치(20)가 UFS 장치인 경우, RTT는 UPIU(UFS Protocol Information Units)로 지칭되는 패킷 중 하나일 수 있다.
호스트(10)는 쓰기 데이터(WR DATA)를 포함하는 데이터 아웃 커맨드(DATA-OUT CMD)를 스토리지 장치(20)에 제공할 수 있다(S430). 호스트(10)는 오프셋 정보(ofs_N)를 기초로 쓰기 데이터(WR DATA)를 획득할 수 있다.
스토리지 장치(20)는 쓰기 데이터(WR DATA)에 대한 쓰기 동작이 완료되었음을 나타내는 응답을 호스트(10)에 제공할 수 있다(S440).
비교 예에 따르면, 호스트(10)에서 스토리지 장치(20)로 쓰기 데이터가 전송된 이후에 쓰기 동작이 완료되므로, 쓰기 데이터의 크기에 따라 쓰기 동작 시간이 딜레이될 수 있다.
도 5는 본 개시의 예시적 실시예에 따른 스토리지 시스템의 쓰기 방법을 설명하는 도면이다. 구체적으로, 도 5는 도 1을 참조하여 전술된 제1 쓰기 동작을 설명할 수 있다. 도 5는 도 1을 참조하여 설명될 수 있다.
도 5를 참조하면, 호스트(10)는 스토리지 장치(20)에 쓰기 커맨드(WR CMD) 및 논리 어드레스(LBA)를 제공할 수 있다(S510). 호스트(10)와 스토리지 장치(20)는 패킷 형태로 데이터를 송/수신할 수 있다. 일부 실시예들에서, 논리 어드레스(LBA)는 쓰기 커맨드(WR CMD)에 포함될 수도 있다. 일부 실시예들에서, 호스트(10)가 UFS 호스트이고, 스토리지 장치(20)가 UFS 장치인 경우, 호스트(10)와 스토리지 장치(20)는 UPIU(UFS Protocol Information Units)로 지칭되는 패킷을 송/수신할 수 있다. UPIU에 대한 설명은 도 13a 내지 13f를 통해 후술될 수 있다. 쓰기 커맨드(WR CMD)에 대응하는 커맨드 UPIU는 도 13b를 참조하여 상세히 후술될 수 있다.
스토리지 장치(20)는 호스트(10)에 노멀 오프셋 정보(ofs_N) 및 캐시 오프셋 정보(ofs_C)를 포함하는 RTT(Ready-To-Transfer)을 제공할 수 있다(S520). 일부 실시예들에서, RTT는, 노멀 영역(110)으로부터 복사되는 데이터의 길이를 나타내는 노멀 전송 카운트 정보(cnt_N) 및 캐시 영역(120)에 저장되는 데이터의 길이를 나타내는 캐시 전송 카운트 정보(cnt_C)를 포함할 수도 있다. RTT는 도 13e를 참조하여 상세히 후술될 수 있다.
호스트(10)는 노멀 오프셋 정보 및 캐시 오프셋 정보(ofs_N 및 ofs_C)를 기초로 노멀 영역(110)의 데이터를 캐시 영역(120)으로 복사할 수 있다(S530). 구체적으로, 노멀 오프셋 정보(ofs_N)가 가리키는 영역의 데이터를, 캐시 오프셋 정보(ofs_C)가 가리키는 영역에 저장할 수 있다.
호스트(10)는 스토리지 장치(20)에 데이터 아웃 커맨드(DATA-OUT CMD)를 제공할 수 있다(S540). 일부 실시예들에서, 데이터 아웃 커맨드(DATA-OUT CMD)는 데이터 아웃 UPIU로 지칭될 수 있다. 데이터 아웃 커맨드(DATA-OUT CMD)는 복사가 완료된 데이터를 저장하는 캐시 영역(120)의 캐시 오프셋 정보(ofs_C)를 포함할 수 있다. 데이터 아웃 커맨드(DATA-OUT CMD)는 쓰기 데이터를 포함하지 않을 수 있다. 즉, 호스트(10)는 쓰기 데이터가 저장된 캐시 영역의 캐시 오프셋 정보(ofs_C)만 스토리지 장치(20)에 제공할 수 있다. 호스트(10)는 유휴 시간 또는 스토리지 장치(20)가 플러시 동작을 요청할 때 스토리지 장치(20)에 쓰기 데이터를 제공할 수 있다.
스토리지 장치(20)는 L2C 맵을 업데이트할 수 있다(S550). L2C 맵은 논리 어드레스(LBA)와 캐시 오프셋 정보(ofs_C) 간의 매핑 관계를 나타낼 수 있다. 일부 실시예들에서, L2C 맵은 논리 어드레스(LBA), 캐시 오프셋 정보(ofs_C), 노멀 오프셋 정보(ofs_N) 간의 매핑 관계를 나타낼 수도 있다.
즉, S540 단계에서, 스토리지 장치(20)는 캐시 오프셋 정보(ofs_C)를 수신함으로써 캐시 오프셋 정보(ofs_C)가 가리키는 영역에 쓰기 데이터가 저장되었음을 확인할 수 있다. 이에 따라, 추후 호스트(10)로부터 논리 어드레스(LBA)에 대한 리드 커맨드가 수신되면, 스토리지 장치(20)는 리드 데이터를 호스트(10)에 제공하는 대신, 오프셋 정보(ofs_C)를 호스트(10)에 제공함으로써 캐시 영역(120)에서 데이터를 독출하라고 지시할 수 있다.
스토리지 장치(20)는 호스트(10)에 쓰기 데이터의 쓰기 동작이 완료되었음을 나타내는 응답을 제공할 수 있다(S460).
도 5의 쓰기 커맨드, RTT, 데이터 아웃 커맨드 또는 응답은, 쓰기 데이터를 캐시 영역(120)에 저장하는 기능과 관련된 플래그를 포함할 수 있다.
호스트(10)는 유휴 시간에, 또는 스토리지 장치(20)가 요청할 때, 쓰기 데이터를 스토리지 장치(20)에 제공할 수 있다(S570).
도 5에 따르면, 스토리지 장치(20)가 쓰기 데이터를 수신하기 전에, 응답을 호스트(10)에 제공하므로, 쓰기 동작 속도가 향상될 수 있다.
도 6은 비교 예에 따른 스토리지 시스템의 리드 방법을 설명하는 도면이다. 도 6은 도 1을 참조하여 설명될 수 있다.
호스트(10)는 리드 커맨드(RD CMD) 및 논리 어드레스(LBA)를 스토리지 장치(20)에 제공할 수 있다(S610). 일부 실시예들에서, 논리 어드레스(LBA)는 리드 커맨드(RD CMD)에 포함될 수도 있다. 리드 커맨드(RD CMD)는 도 13b의 커맨드 UPIU일 수 있다.
스토리지 장치(20)는 논리 어드레스(LBA)에 대응하는 비휘발성 메모리(220)의 영역으로부터 데이터를 리드할 수 있다(S620). 스토리지 장치(20)는 논리 어드레스(LBA)를 물리 어드레스(PBA)로 변환하고, 물리 어드레스(PBA)를 기초로 비휘발성 메모리(220)로부터 데이터를 리드할 수 있다.
스토리지 장치(20)는 리드 데이터가 저장될 노멀 영역(110)의 위치를 나타내는 노멀 오프셋 정보(ofs_N)를 포함하는 데이터-인 커맨드(DATA-IN CMD)를 호스트(10)에 제공할 수 있다(S630). 나아가, 데이터-인 커맨드(DATA-IN CMD)는 리드 데이터(RD DATA)를 포함할 수 있다. 데이터-인 커맨드(DATA-IN CMD)는 도 13e의 데이터 인 UPIU일 수 있다.
호스트(10)는 노멀 오프셋 정보(ofs_N)가 가리키는 노멀 영역(110)의 저장 영역에 리드 데이터(RD DATA)를 저장할 수 있다(S640).
일부 실시예들에서, S620 단계 내지 S640 단계는 정해진 데이터 단위에 대해 수행될 수 있다. 따라서, 데이터 단위를 초과하는 데이터에 대한 리드 동작 시, S620 단계 내지 S640 단계는 반복적으로 수행될 수 있다.
스토리지 장치(20)는 호스트(10)가 요청한 리드 데이터를 호스트(10)에 모두 전송하면, 리드 동작이 완료되었음을 나타내는 응답을 호스트(10)에 제공할 수 있다(S650). 응답은 도 13c의 응답 UPIU일 수 있다.
도 7은 본 개시의 예시적 실시예에 따른 스토리지 시스템의 리드 방법을 설명하는 도면이다. 도 7은 도 1을 참조하여 설명될 수 있다. 도 7은 도 1을 참조하여 전술된 제1 리드 동작을 설명할 수 있다.
호스트(10)는 스토리지 장치(20)에 리드 커맨드(RD CMD) 및 논리 어드레스(LBA)를 제공할 수 있다(S710). 리드 커맨드(RD CMD)는 도 13b의 커맨드 UPIU일 수 있다. 리드 커맨드(RD CMD)는 리드 데이터가 캐시 영역(120)에 저장되는 기능과 관련된 플래그를 포함할 수 있다.
스토리지 장치(20)는 논리 어드레스(LBA)에 대응하는 비휘발성 메모리(220)의 영역으로부터 데이터를 리드할 수 있다(S620). 스토리지 장치(20)는 논리 어드레스(LBA)를 물리 어드레스(PBA)로 변환하고, 물리 어드레스(PBA)를 기초로 데이터를 리드할 수 있다.
스토리지 장치(20)는 리드 데이터(RD DATA), 리드 데이터(RD DATA)가 저장될 노멀 영역(110)의 위치를 나타내는 노멀 오프셋 정보(ofs_N) 및 캐시 영역(120)의 위치를 나타내는 캐시 오프셋 정보(ofs_C)를 포함하는 데이터-인 커맨드(DATA-IN CMD)를 호스트(10)에 제공할 수 있다(S730). 데이터-인 커맨드(DATA-IN CMD)는 도 13e의 데이터 인 UPIU일 수 있다. 구체적으로, 스토리지 장치(20)는 리드 커맨드(CMD)에 포함된 플래그를 기초로 도 6과 같이 노멀 오프셋 정보(ofs_N)만 호스트(10)에 제공하거나, 도 7과 같이 노멀 오프셋 정보(ofs_N) 및 캐시 오프셋 정보(ofs_C)를 호스트(10)에 제공할 수 있다. 도 7의 데이터-인 커맨드(DATA-IN CMD)는 리드 데이터가 캐시 영역(120)에 저장되는 기능과 관련된 플래그를 포함할 수 있다.
호스트(10)는 노멀 오프셋 정보(ofs_N) 및 캐시 오프셋 정보(ofs_C)를 기초로 리드 데이터(RD DATA)를 노멀 영역(110) 및 캐시 영역(120)에 저장할 수 있다(S740). 일부 실시예들에서, 리드 데이터(RD DATA)는 노멀 영역(110)에 먼저 저장되고, 캐시 영역(120)에 나중에 저장될 수 있고, 일부 실시예들에서, 리드 데이터(RD DATA)는 캐시 영역(120)에 먼저 저장되고, 노멀 영역(110)에 나중에 저장될 수 있다.
스토리지 장치(20)는 논리 어드레스와, 캐시 오프셋 정보(ofs_C) 간의 매핑 관계를 나타내는 L2C 맵을 업데이트할 수 있다(S750).
일부 실시예들에서, S720 단계 내지 S750 단계는 정해진 데이터 단위에 대해 수행될 수 있다. 따라서, 데이터 단위를 초과하는 데이터에 대한 리드 동작 시, S720 단계 내지 S750 단계는 반복적으로 수행될 수 있다.
스토리지 장치(20)는 호스트(10)가 요청한 데이터를 호스트(10)에 모두 전송하면, 리드 동작이 완료되었음을 나타내는 응답을 호스트(10)에 제공할 수 있다(S760). 응답은 도 13c의 응답 UPIU일 수 있다.
도 8은 본 개시의 예시적 실시예에 따른 스토리지 시스템의 쓰기 방법을 설명하는 도면이다. 도 8은 도 1을 참조하여 전술된 제2 쓰기 동작을 설명할 수 있다. 도 8은 도 1을 참조하여 설명될 수 있다.
호스트(10)는 스토리지 장치(20)에 쓰기 커맨드(WR CMD) 및 논리 어드레스(LBA)를 제공할 수 있다(S810). 논리 어드레스(LBA)는 도 5 또는 도 7의 실시예를 통해 캐시 영역(120)에 저장된 데이터의 논리 어드레스일 수 있다.
스토리지 장치(20)는 새로운 캐시 오프셋 정보(new ofs_C), 노멀 오프셋 정보(ofs_N)를 포함하는 RTT를 호스트(10)에 제공할 수 있다(S820). 구체적으로, 이미 리드 동작 또는 쓰기 동작이 수행된 논리 어드레스(LBA)에 대해 재차 쓰기 동작이 요청되었으므로, 스토리지 장치(20)는 기존 캐시 오프셋 정보(old ofs_C)가 아닌 새로운 캐시 오프셋 정보(new ofs_C)를 RTT에 포함시킬 수 있다. 노멀 오프셋 정보(ofs_N)는 기존 노멀 오프셋 정보(old ofs_N)이거나, 새로운 노멀 오프셋 정보(new ofs_N)일 수 있다.
호스트(10)는 노멀 오프셋 정보(ofs_N)가 가리키는 노멀 영역(110)의 데이터를, 새로운 캐시 오프셋 정보(ofs_C)가 가리키는 캐시 영역(120)으로 복사할 수 있다(S830).
S840 단계 내지 S870 단계는 도 5의 S530 단계 내지 S570 단계와 실질적으로 동일할 수 있다. 도 8의 쓰기 커맨드, RTT, 데이터 아웃 커맨드 또는 응답은, 쓰기 데이터가 캐시 영역(120)에 저장되는 기능과 관련된 플래그를 포함할 수 있다.
도 9는 본 개시의 예시적 실시예에 따른 스토리지 시스템의 리드 방법을 설명하는 도면이다. 도 9는 도 1을 참조하여 전술된 제2 리드 동작을 설명할 수 있다. 도 9는 도 1을 참조하여 설명될 수 있다.
호스트(10)는 스토리지 장치(20)에 리드 커맨드(RD CMD) 및 논리 어드레스(LBA)를 제공할 수 있다(S910).
스토리지 장치(20)는 L2C 맵을 기초로 논리 어드레스(LBA)에 대응하는 캐시 오프셋 정보(ofs_C)를 식별할 수 있다(S920). 즉, 도 5 또는 도 7의 실시예에 따라 형성된 L2C 맵을 탐색함으로써 논리 어드레스(LBA)에 매핑되는 캐시 오프셋 정보(ofs_C)를 식별할 수 있다.
스토리지 장치(20)는 식별된 캐시 오프셋 정보(ofs_C)를 포함하는 데이터-인 커맨드(DATA-IN CMD)를 호스트(10)에 제공할 수 있다(S930). 도 6 또는 도 7의 데이터-인 커맨드와 달리, 데이터-인 커맨드(DATA-IN CMD)는 리드 데이터(RD DATA)를 포함하지 않을 수 있다. 일부 실시예들에서, 데이터-인 커맨드(DATA-IN CMD)는 캐시 영역(120)의 데이터가 복사될 노멀 영역(110)의 위치를 나타내는 노멀 오프셋 정보(ofs_N)를 호스트(10)에 제공할 수도 있다.
호스트(10)는 캐시 오프셋 정보(ofs_C)를 기초로 캐시 영역(120)의 데이터를 노멀 영역(110)으로 복사할 수 있다. 이에 따라, 데이터-인 커맨드(DATA-IN CMD)에 리드 데이터가 포함되지 않더라도, 호스트(10)는 스토리지 장치(20)에 요청한 리드 데이터를 획득할 수 있다.
스토리지 장치(20)는 리드 동작이 완료되었음을 나타내는 응답을 호스트(10)에 제공할 수 있다.
도 10은 본 개시의 예시적 실시예에 따른 L2C 맵을 나타내는 도면이다. 도 10은 도 1을 참조하여 설명될 수 있다.
도 10을 참조하면, L2C 맵은, 논리 어드레스(LBA), 노멀 오프셋 정보(ofs_N), 캐시 오프셋 정보(ofs_C), 프로그램 단위(PGM unit) 및 스트림 식별자(STR ID) 간의 매핑 관계를 나타낼 수 있다.
예를 들어, 논리 어드레스(LBA1), 노멀 오프셋 정보(ofs_N1) 및 캐시 오프셋 정보(ofs_C1)가 매핑되므로, 도 5 또는 도 7을 참조하여 전술된 바와 같이, 노멀 영역(110) 중 노멀 오프셋 정보(ofs_N1)가 가리키는 위치의 데이터는 캐시 영역(120) 중 캐시 오프셋 정보(ofs_C1)가 가리키는 위치로 복사될 수 있다.
또는, 도 9를 참조하여 전술된 바와 같이, 스토리지 장치(20)는 L2C 맵을 기초로, 논리 어드레스(LBA1)에 대응하는 캐시 오프셋 정보(ofs_C1)를 호스트(10)에 제공할 수 있고, 호스트(10)는 캐시 오프셋 정보(ofs_C1)가 가리키는 위치의 데이터를 노멀 영역(110)으로 복사할 수 있다.
도 10을 참조하면, 스토리지 장치(20)는 캐시 영역(120)에 저장된 데이터의 프로그램 단위를 L2C 맵을 사용하여 관리할 수 있다. 즉, 도 5의 S570 또는 도 8의 S880을 참조하여 전술된 바와 같이, 스토리지 장치(20)는 호스트(10)의 데이터 전송을 요청할 때, 프로그램 단위에 따라 상이한 크기의 데이터를 호스트(10)에 요청할 수 있다.
도 11은 본 개시의 예시적 실시예에 따른 프로그램 단위를 기초로 캐시 영역에 데이터를 저장하는 방법을 설명하는 도면이다. 도 11은 도 1을 참조하여 설명될 수 있다.
도 11을 참조하면, 호스트(10)는 프로그램 단위를 기초로, 노멀 영역(110)의 쓰기 데이터(WD1, WD2, WD3, WD4)를 캐시 영역(120)으로 복사할 수 있다. 쓰기 데이터(WD1, WD2, WD3, WD4) 각각은 비휘발성 메모리(220)의 물리 페이지에 저장되는 데이터로 가정될 수 있다. 하나의 물리 페이지는 하나의 워드라인에 연결된 메모리 셀들을 의미할 수 있다.
스토리지 장치(20)에 SLC 단위로 데이터가 저장되는 경우, 쓰기 데이터(WD1, WD2, WD3, WD4) 각각은 상이한 페이지에 저장되므로, 쓰기 데이터(WD1, WD2, WD3, WD4)는 병합되지 않고 캐시 영역(120)에 저장될 수 있다. 이후, 스토리지 장치(20)의 요청이 있는 경우, 쓰기 데이터(WD1, WD2, WD3, WD4) 각각은 개별적으로 스토리지 장치(20)에 제공될 수 있다.
스토리지 장치(20)에 MLC 단위로 데이터가 저장되는 경우, 쓰기 데이터(WD1, WD2)는 제1 페이지에 저장되고, 쓰기 데이터(WD1, WD2)는 제2 페이지에 저장될 수 있다. 따라서, 쓰기 데이터(WD1, WD2)는 병합되어 캐시 영역(120)에 저장될 수 있고, 쓰기 데이터(WD3, WD4)는 병합되어 캐시 영역(120)에 저장될 수 있다. 이후, 스토리지 장치(20)의 요청이 있는 경우, 쓰기 데이터(WD1, WD2)는 연속적으로 스토리지 장치(20)에 제공될 수 있고, 쓰기 데이터(WD3, WD4)는 연속적으로 스토리지 장치(20)에 제공될 수 있다.
스토리지 장치(20)에 TLC 단위로 데이터가 저장되는 경우, 쓰기 데이터(WD1, WD2, WD3)는 제1 페이지에 저장되고, 쓰기 데이터(WD4)는 다른 쓰기 데이터와 함께 제2 페이지에 저장될 수 있다. 따라서, 쓰기 데이터(WD1, WD2, WD3)는 병합되어 캐시 영역(120)에 저장될 수 있고, 쓰기 데이터(WD4)는 개별적으로 캐시 영역(120)에 저장될 수 있다. 이후, 스토리지 장치(20)의 요청이 있는 경우, 쓰기 데이터(WD1, WD2, WD3)는 연속적으로 스토리지 장치(20)에 제공될 수 있다. 쓰기 데이터(WD4)는 2개의 추가적인 논리 페이지와 연속적으로 스토리지 장치(20)에 제공될 수 있다. 논리 페이지는 물리 페이지에 저장되는 데이터를 의미할 수 있다. 즉, 프로그램 단위에 따라, 하나의 물리 페이지에는 복수의 논리 페이지가 저장될 수도 있다.
스토리지 장치(20)에 QLC 단위로 데이터가 저장되는 경우, 쓰기 데이터(WD1, WD2, WD3, WD4)는 동일한 페이지에 저장될 수 있다. 따라서, 쓰기 데이터(WD1, WD2, WD3, WD4)는 병합되어 캐시 영역(120)에 저장될 수 있다. 이후, 스토리지 장치(20)의 요청이 있는 경우, 쓰기 데이터(WD1, WD2, WD3, WD4)는 연속적으로 스토리지 장치(20)에 제공될 수 있다.
도 12는 본 개시의 예시적 실시예에 따른 스트림 식별자를 기초로 캐시 영역에 데이터를 저장하는 방법을 설명하는 도면이다. 도 12는 도 1을 참조하여 설명될 수 있다.
도 12를 참조하면, 호스트(10)는 스트림 식별자를 기초로 노멀 영역(110)의 쓰기 데이터(A, B, C, D, E, F, G, H)를 캐시 영역(120)으로 복사할 수 있다.
구체적으로, 호스트(10)는 쓰기 데이터(A, D)에 식별자 A를 할당하고, 쓰기 데이터(A, D)를 병합하여 캐시 영역(120)에 저장할 수 있다. 이후, 스토리지 장치(20)의 요청이 있는 경우, 쓰기 데이터(A, D)는 연속적으로 스토리지 장치(20)에 제공될 수 있다.
호스트(10)는 쓰기 데이터(B, E, G)에 식별자 B를 할당하고, 쓰기 데이터(B, E, F)를 병합하여 캐시 영역(120)에 저장할 수 있다. 이후, 스토리지 장치(20)의 요청이 있는 경우, 쓰기 데이터(B, E, F)는 연속적으로 스토리지 장치(20)에 제공될 수 있다.
호스트(10)는 쓰기 데이터(C, F, H)에 식별자 C를 할당하고, 쓰기 데이터(C, F, H)를 병합하여 캐시 영역(120)에 저장할 수 있다. 이후, 스토리지 장치(20)의 요청이 있는 경우, 쓰기 데이터(C, F, H)는 연속적으로 스토리지 장치(20)에 제공될 수 있다.
도 13a는 일 실시예에 따른 일반 UPIU의 데이터 구조를 설명하는 도면이다.
구체적으로, 도 13a를 참조하면, 일반(General) UPIU는 트랜잭션 타입(Transaction Type) 필드, 플래그(Flags) 필드, LUN(Logical Unit Number) 필드, 태스크 태그(Task Tag) 필드, 개시자 식별자(Initiator ID) 필드, 커맨드 셋 타입(Command Set Type) 필드, 쿼리 펑션 및 태스크 관리 펑션(Query Function, Task Management Function) 필드, 응답(Response) 필드, 상태(Status) 필드, 총 EHS(Extra Header Segment) 길이(Total EHS Length) 필드, 장치 정보(Device Information) 필드, 데이터 세그먼트 길이(Data Segment Length) 필드(이상, 헤더로 지칭), 트랜잭션 특정 필드(Transaction Specific Fields), 추가 헤더 세그먼트(Extra Header Segment) 필드, 헤더 E2ECRC(End-to-End Cyclic Redundancy Check) 필드, 데이터 세그먼트 필드, 데이터 E2ECRC 필드를 포함하는 데이터 구조를 가질 수 있다. 헤더의 길이는 12 바이트일 수 있으나, 이에 제한되지 않는다. UPIU의 길이는 최소 32 바이트일 수 있고 최대 65600 바이트일 수 있으나, 이에 제한되지 않는다.
트랜잭션 타입 필드는 데이터 구조 내에 포함된 요청 또는 응답의 타입을 나타낼 수 있다. 구체적으로, 트랜잭션 타입은 트랜잭션 코드를 포함할 수 있고, 트랜잭션 코드는 UPIU의 내용, 기능 또는 사용을 정의할 수 있다. 플래그 필드는 트랜잭션 타입에 따라 상이한 값을 가질 수 있다. 본 개시의 예시적 실시예에 따르면, 플래그 필드는 캐시 동작을 나타내는 값을 가질 수 있다.
LUN 필드는 요청이 제공되는 타겟 장치 내의 논리적 유닛 넘버를 포함할 수 있다. 타겟 장치는 예를 들어 도 1의 스토리지 장치(20)일 수 있고, 스토리지 장치(20)의 저장 영역은 적어도 하나의 논리적 유닛 넘버에 매칭될 수 있다.
태스크 태그 필드는, 태스크 요청에 대응하는 값일 수 있고, 새로운 태스크 요청이 생성될 때마다 증가하는 값일 수 있다. 하나의 태스크 요청에 대해 복수의 UPIU가 생성되는 경우, 모든 UPIU는 동일한 태스크 태그 필드 값을 가질 수 있다. 예를 들어, 태스크 태그 필드는 8개의 비트로 구성될 수 있다.
커맨드 셋 타입 필드는, 커맨드 UPIU와 응답 UPIU가 연관된 커맨드 셋 타입을 나타낼 수 있다. 커맨드 UPIU는 호스트(10)가 스토리지 장치(20)에 제공하는 UPIU일 수 있고, 응답 UPIU는 스토리지 장치(20)가 호스트(10)에 제공하는 UPIU일 수 있다.
쿼리 펑션 및 태스크 관리 관리 펑션 필드는, 쿼리 펑션을 정의하기 위해 쿼리 요청 UPIU 및 쿼리 응답 UPIU에서 사용되는 필드일 수 있고, 태스크 관리 펑션을 정의하기 위해 태스크 관리 요청 UPIU에서 사용되는 필드일 수 있다.
응답 필드는, 스토리지 장치(20)로부터 응답이 요구되는 경우, 요청된 기능의 성공 여부를 나타낼 수 있다.
상태 필드는, UPIU가 응답 UPIU인 경우, SCSI(Small Computer System Interface) 상태를 포함할 수 있다.
총 EHS 길이 필드는, UPIU 내 추가 헤더 세그먼트의 길이를 나타낼 수 있다. 추가 헤더 세그먼트의 길이는 4 바이트의 배수일 수 있다.
장치 정보 필드는, 응답 UPIU 내에서, 스토리지 장치(20)에 대한 정보, 즉, 장치 레벨의 정보를 제공할 수 있다.
데이터 세그먼트 길이 필드는, UPIU 내 데이터 세그먼트의 유효 바이트의 개수를 나타낼 수 있다.
트랜잭션 특정 필드는, 특정한 트랜잭션 코드에 의해 요구되는 추가적인 필드일 수 있다.
추가 헤더 세그먼트 필드는, 총 EHS 길이 필드가 0이 아닌 값을 갖는 경우 존재할 수 있고, 4 바이트의 배수에 해당하는 길이를 가질 수 있다.
데이터 세그먼트 필드는, 4 바이트의 배수에 해당하는 길이를 가질 수 있고, 데이터 페이로드를 포함할 수 있다.
헤더 E2ECRC 필드는 헤더의 에러를 정정하기 위한 CRC 데이터를 포함할 수 있고, 데이터 E2ECRC 필드는 데이터 세그먼트의 에러를 정정하기 위한 CRC 데이터를 포함할 수 있다.
도 13b는 본 개시의 예시적 실시예에 따른 커맨드 UPIU의 데이터 구조를 설명하는 도면이다. 도 13b는 도 1 및 도 13a를 참조하여 설명될 수 있다.
커맨드 UPIU는 호스트(10)가 스토리지 장치(20)에 제공하는 패킷일 수 있다. 도 13a 및 도 13b를 참조하면, 커맨드 UPIU의 트랜잭션 코드는 xx00 0001b일 수 있으나, 이에 제한되지 않는다.
커맨드 UPIU의 플래그 필드는, 전술된 캐시 리드 동작 또는 캐시 쓰기 동작을 나타내는 값을 가질 수 있다
커맨드 UPIU는 추가 태스크 태그 필드(EXT_Task Tag)를 포함할 수 있다. 추가 태스크 태그 필드(EXT_task Tag)는 하나의 태스크 요청을 식별하기 위한 값을 포함할 수 있다. 즉, 본 발명에 따르면, 캐시 오프셋 정보(ofs_C)를 이용하는 쓰기 동작 또는 리드 동작에 의해, 호스트(10) 및 스토리지 장치(20)가 수행할 수 있는 동작의 개수가 증가할 수 있다. 따라서, 도 13a의 태스크 태그 필드만으로는 호스트(10)와 스토리지 장치(20) 간의 모든 태스크 요청을 식별하기 어려울 수 있으므로, 추가 태스크 태그 필드(EXT_Task Tag)를 통해 다양한 태스트 요청을 식별할 수 있다.
커맨드 UPIU는 예상 데이터 전송 길이 필드를 포함할 수 있다. 예상 데이터 전송 길이 필드는, 전송될 쓰기 데이터의 길이를 나타낼 수 있다. 예를 들어, 도 4의 쓰기 커맨드(WR CMD)의 예상 데이터 전송 길이 필드는, 쓰기 데이터(WR DATA)의 길이를 나타낼 수 있다.
커맨드 UPIU는 CDB(Command Descriptor Blocks) 필드를 포함할 수 있다. CDB 필드는 커맨드의 연산 코드(opcode)를 포함할 수 있다. 커맨드 UPIU는, 연산 코드에 따라 쓰기 커맨드 UPIU 또는 리드 커맨드 UPIU에 해당할 수 있다. CDB 필드는 논리 어드레스를 포함할 수 있다.
도 13c는 본 개시의 예시적 실시예에 따른 응답 UPIU의 데이터 구조를 설명하는 도면이다. 도 13c는 도 1 및 도 13a를 참조하여 설명될 수 있다.
응답 UPIU는 스토리지 장치(20)가 호스트(10)에 제공하는 패킷일 수 있다. 도 13a 및 도 13c를 참조하면, 응답 UPIU의 트랜잭션 코드는 xx10 0001b일 수 있으나, 이에 제한되지 않는다.
응답 UPIU의 플래그 필드는, 전술된 캐시 리드 동작 또는 캐시 쓰기 동작을 나타내는 값을 가질 수 있다
응답 UPIU는 도 13b의 커맨드 UPIU와 마찬가지로, 추가 태스크 태그 필드(EXT_Task Tag)를 포함할 수 있다. 추가 태스크 태그 필드(EXT_Task Tag)는 도 13a의 일반 UPIU의 쿼리 펑션, 태스크 관리 펑션 필드를 대신할 수 있다. 일부 실시예들에서, 추가 태스크 태그 필드(EXT_Task Tag)는 도 13c의 상태 필드를 대신할 수도 있다.
응답 UPIU는 잔여 전송 카운트 필드를 포함할 수 있다. 잔여 전송 카운트 필드는 호스트(10)로 전달되지 않은 단위 크기의 개수를 나타낼 수 있다.
응답 UPIU는 감지 데이터 필드 및 감지 데이터 길이 필드를 포함할 수 있다. 감지 데이터 필드는, 이전에 실행된 커맨드의 에러 여부를 나타내는 필드일 수 있다. 이전에 실행된 커맨드가 성공적으로 실행된 경우 감지 데이터 필드는 0일 수 있다. 감지 데이터 길이 필드는, 유효 감지 데이터의 길이를 나타내는 필드일 수 있다.
도 13d는 본 개시의 예시적 실시예에 따른 데이터 아웃 UPIU의 데이터 구조를 설명하는 도면이다. 도 13d는 도 1, 도 5, 도 8 및 도 13a를 참조하여 설명될 수 있다.
데이터 아웃 UPIU는 호스트(10)가 스토리지 장치(20)에 제공하는 패킷일 수 있다. 도 13a 및 도 13d를 참조하면, 응답 UPIU의 트랜잭션 코드는 xx00 0010b일 수 있으나, 이에 제한되지 않는다.
데이터 아웃 UPIU의 플래그 필드는, 전술된 캐시 리드 동작 또는 캐시 쓰기 동작을 나타내는 값을 가질 수 있다.
데이터 아웃 UPIU는 도 13b, 도 13c의 커맨드 UPIU, 응답 UPIU와 마찬가지로 추가 태스크 태그 필드(EXT_Task Tag)를 포함할 수 있다.
데이터 아웃 UPIU는 캐시 영역(120)의 오프셋 정보, 즉 캐시 오프셋 정보(ofs_C) 및 캐시 영역(120)으로 복사되는 데이터 전송의 개수, 즉, 캐시 카운트 정보(cnt_C)를 포함할 수 있다. 데이터 전송의 단위는 4KB일 수 있으며, 캐시 카운트 정보(cnt_C)에 따라 캐시 영역(120)으로 복사되는 데이터의 크기가 결정될 수 있다. 즉, 캐시 카운트 정보(cnt_C)가 1을 나타내는 경우, 캐시 영역(120)으로 4KB 데이터가 복사될 수 있다.
도 5의 단계 S540 및 도 8의 단계 S840에서, 데이터 아웃 커맨드는 도 13d의 데이터 아웃 UPIU에 해당할 수 있다. 도 5 및 도 8의 데이터 아웃 커맨드가 캐시 오프셋 정보만 포함하고 있으나, 실시예는 이에 제한되지 않으며, 데이터 아웃 커맨드는 캐시 카운트 정보(cnt_C)를 더 포함할 수 있다.
도 13e는 본 개시의 예시적 실시예에 따른 데이터 인 UPIU의 데이터 구조를 설명하는 도면이다. 도 13e는 도 1, 도 7, 도 9 및 도 13a를 참조하여 설명될 수 있다.
데이터 인 UPIU는 스토리지 장치(20)가 호스트(10)에 제공하는 패킷일 수 있다. 도 13a 및 도 13e를 참조하면, 데이터 인 UPIU의 트랜잭션 코드는 xx10 0010b일 수 있으나, 이에 제한되지 않는다.
데이터 인 UPIU의 플래그 필드는, 전술된 캐시 리드 동작 또는 캐시 쓰기 동작을 나타내는 값을 가질 수 있다.
데이터 인 UPIU는 도 13b, 도 13c의 커맨드 UPIU, 응답 UPIU, 도 13d의 데이터 아웃 UPIU와 마찬가지로 추가 태스크 태그 필드(EXT_Task Tag)를 포함할 수 있다.
데이터 인 UPIU는 캐시 영역(120)의 오프셋 정보, 즉 캐시 오프셋 정보(ofs_C) 및 캐시 영역(120)에서 복사되는 데이터 전송의 개수, 즉, 캐시 카운트 정보(cnt_C)를 포함할 수 있다. 즉, 캐시 히트 시, 호스트(10)는 캐시 오프셋 정보(ofs_C)가 가리키는 저장 영역에서 캐시 카운트 정보(cnt_C)에 따른 사이즈를 노멀 영역(110)으로 복사할 수 있다.
일부 실시예들에서, 데이터 인 UPIU는 노멀 영역(110)의 오프셋 정보, 즉 노멀 오프셋 정보(ofs_N) 및 노멀 영역(110)에서 복사되는 데이터 전송의 개수, 즉, 노멀 카운트 정보(cnt_N)를 포함할 수 있다. 일부 실시예들에서, 캐시 미스 시, 호스트(10)는 리드 데이터(RD DATA)를 노멀 오프셋 정보(ofs_N)가 가리키는 영역에 저장할 수 있다. 또한, 호스트(10)는 노멀 카운트 정보(cnt_N)의 사이즈를 갖는 데이터를 노멀 영역(110)에서 캐시 영역(120)으로 복사할 수 있다.
도 13e의 데이터 인 UPIU에는 데이터 필드가 포함되지 않았으나, 캐시 미스 상황에서, 리드 동작 시 데이터 인 UPIU에는 데이터 필드가 포함될 수 있다. 예를 들어, 도 7의 데이터-인 커맨드(DATA-IN CMD)에는 리드 데이터(RD DATA)가 포함될 수 있다. 도 7의 단계 S730 및 도 9의 단계 S930에서, 데이터 인 커맨드는 도 13e의 데이터 인 UPIU에 해당할 수 있다.
도 13f는 본 개시의 예시적 실시예에 따른 RTT UPIU의 데이터 구조를 설명하는 도면이다. 도 13f는 도 1, 도 5, 도 8 및 도 13a를 참조하여 설명될 수 있다.
RTT UPIU는 스토리지 장치(20)가 호스트(10)에 제공하는 패킷일 수 있다. 도 13a 및 도 13f를 참조하면, RTT UPIU의 트랜잭션 코드는 xx00 0001b일 수 있으나, 이에 제한되지 않는다.
RTT UPIU의 플래그 필드는, 전술된 캐시 리드 동작 또는 캐시 쓰기 동작을 나타내는 값을 가질 수 있다.
RTT UPIU는 도 13b, 도 13c의 커맨드 UPIU, 응답 UPIU, 도 13d의 데이터 아웃 UPIU, 도 13e의 데이터 인 UPIU와 마찬가지로 추가 태스크 태그 필드(EXT_Task Tag)를 포함할 수 있다.
RTT UPIU는 노멀 영역(110)의 노멀 오프셋 정보(ofs_N)를 포함하는 노멀 오프셋 정보 필드 및 캐시 영역(120)의 캐시 오프셋 정보(ofs_C)를 포함하는 캐시 오프셋 정보 필드를 포함할 수 있다.
나아가, RTT UPIU는 캐시 미스 시, 노멀 영역(110)에서 복사되는 데이터의 길이를 나타내는 노멀 전송 카운트 정보(cnt_N) 및 캐시 히트 시, 캐시 영역(120)으로부터 캐싱되는 데이터의 길이를 나타내는 캐시 전송 카운트 정보(cnt_ㅊ)를 포함할 수 있다. 도 5의 단계 S520 및 도 8의 단계 S820에서, RTT는 도 13f의 RTT UPIU에 해당할 수 있다.
도 14는 본 개시의 예시적 실시예에 따른 쓰기 동작을 설명하는 도면이다. 도 14는 도 5를 참조하여 설명될 수 있다.
호스트 드라이버(130)는 쓰기 데이터(WR DATA)를 호스트 메모리(100)의 노멀 영역(110)에 저장할 수 있다(S1001). 호스트 드라이버(130)는 호스트 컨트롤러 인터페이스(140)에 쓰기 요청(WR REQ)을 제공할 수 있다. 호스트 컨트롤러 인터페이스(140)는 커맨드 UPIU 및 논리 어드레스(LBA)를 메모리 컨트롤러(210)에 제공할 수 있다(S1003). S1003 단계는 S510 단계와 동일할 수 있다. 메모리 컨트롤러는 RTT를 호스트 컨트롤러 인터페이스(140)에 제공할 수 있다(S1004). S1004 단계는 S520 단계와 동일할 수 있다.
호스트 컨트롤러 인터페이스(140)는, 노멀 영역(110)의 쓰기 데이터(WR DATA)를 캐시 영역(120)으로 복사할 수 있다(S1005). S1005 단계는 S530 단계와 동일할 수 있다. 호스트 컨트롤러 인터페이스(140)는 데이터 아웃 UPIU를 메모리 컨트롤러(210)에 제공할수 있다(S1006). S1006 단계는 S540 단계와 동일할 수 있다. 메모리 컨트롤러(210)는 L2C 맵을 업데이트할 수 있다(S1007). S1007 단계는 S550 단계와 동일할 수 있다. 메모리 컨트롤러(210)는 쓰기 동작이 완료되었음을 나타내는 응답 UPIU를 호스트 컨트롤러 인터페이스(140)에 제공할수 있다(S1008). S1008 단계는 S560 단계와 동일할 수 있다. 메모리 컨트롤러(210)는 플러시 요청을 호스트 컨트롤러 인터페이스(140)에 제공할 수 있고, 플러시 요청에 응답하여 캐시 영역(120)에 저장된 쓰기 데이터(WR DATA)는 비휘발성 메모리(220)에 저장될 수 있다(S1010).
도 15는 본 개시의 예시적 실시예에 따른 리드 동작을 설명하는 도면이다. 도 15는 도 9를 참조하여 설명될 수 있다.
호스트 드라이버(130)는 리드 요청(RD REQ)을 호스트 컨트롤러 인터페이스(140)에 제공할 수 있다(S1101). S1102 내지 S1106 단계는 수행 주체만 호스트 메모리(100), 호스트 컨트롤러 인터페이스(140) 및 메모리 컨트롤러(210)로 구체화되었으며, 도 9의 S920 내지 S950 단계와 각각 실질적으로 동일할 수 있다.
도 16은 본 개시의 예시적 실시예에 따른 쓰기 동작을 설명하는 도면이다. 도 15는 도 8을 참조하여 설명될 수 있다.
호스트 드라이버(130)는 쓰기 데이터를 호스트 메모리(100)의 노멀 영역(110)에 저장하고(S1201), 호스트 컨트롤러 인터페이스(140)에 쓰기 요청(WR REQ)을 제공할 수 있다(S1202). S1203 내지 S1109 단계는 수행 주체만 호스트 메모리(100), 호스트 컨트롤러 인터페이스(140) 및 메모리 컨트롤러(210)로 구체화되었으며, 도 8의 S810 내지 S870 단계와 각각 실질적으로 동일할 수 있다.
한편, 메모리 컨트롤러(210)는 호스트 컨트롤러 인터페이스(140)에 플러시 요청(FLUSH REQ)을 제공할 수 있으며(S1210), 플러시 요청(FLUSH REQ)에 응답하여 캐시 영역(120)에 저장된 쓰기 데이터가 비휘발성 메모리(220)에 저장될 수 있다(S1211).
도 17은 본 발명의 일 실시예에 따른 UFS 시스템(2000)에 대해 설명하기 위한 도면이다. UFS 시스템(2000)은 JEDEC(Joint Electron Device Engineering Council)에서 발표하는 UFS 표준(standard)을 따르는 시스템으로서, UFS 호스트(2100), UFS 장치(2200) 및 UFS 인터페이스(2300)를 포함할 수 있다. 전술한 도 1의 스토리지 시스템(1)에 대한 설명은, 도 17에 대한 이하의 설명과 상충되지 않는 범위 내에서 도 17의 UFS 시스템(2000)에도 적용될 수 있다.
도 17을 참조하면, UFS 호스트(2100)와 UFS 장치(2200)는 UFS 인터페이스(2300)를 통해 상호 연결될 수 있다. UFS 호스트(2100)는 애플리케이션 프로세서의 일부로서 구현될 수 있다. UFS 호스트(2100)는 도 1의 호스트(10)에 대응될 수 있다. UFS 장치(2200)는 도 1의 스토리지 장치(20)에 대응될 수 있으며, UFS 장치 컨트롤러(2210) 및 비휘발성 스토리지(2220)는 도 1의 메모리 컨트롤러(210) 및 비휘발성 메모리(220)에 각각 대응될 수 있다.
UFS 호스트(2100)는 UFS 호스트 컨트롤러(2110), 애플리케이션(2120), UFS 드라이버(2130), 호스트 메모리(2140) 및 UIC(UFS interconnect) 레이어(2150)를 포함할 수 있다. UFS 장치(2200)는 UFS 장치 컨트롤러(2210), 비휘발성 스토리지(2220), 스토리지 인터페이스(2230), 장치 메모리(2240), UIC 레이어(2250) 및 레귤레이터(2260)를 포함할 수 있다. 비휘발성 스토리지(2220)는 복수의 스토리지 유닛(2221)으로 구성될 수 있으며, 이와 같은 스토리지 유닛(2221)은 2D 구조 혹은 3D 구조의 V-NAND 플래시 메모리를 포함할 수 있으나, PRAM 및/또는 RRAM 등의 다른 종류의 비휘발성 메모리를 포함할 수도 있다. UFS 장치 컨트롤러(2210)와 비휘발성 스토리지(2220)는 스토리지 인터페이스(2230)를 통해 서로 연결될 수 있다. 스토리지 인터페이스(2230)는 토글(Toggle) 혹은 온파이(ONFI)와 같은 표준 규약을 준수하도록 구현될 수 있다.
애플리케이션(2120)은 UFS 장치(2200)의 기능을 이용하기 위해 UFS 장치(2200)와의 통신을 원하는 프로그램을 의미할 수 있다. 애플리케이션(2120)은 UFS 장치(2200)에 대한 입출력을 위해 입출력 요청(input-output request, IOR)을 UFS 드라이버(2130)로 전송할 수 있다. 입출력 요청(IOR)은 데이터의 독출(read) 요청, 저장(write) 요청 및/또는 소거(discard) 요청 등을 의미할 수 있으나, 반드시 이에 한정되는 것은 아니다.
UFS 드라이버(2130)는 UFS-HCI(host controller interface)를 통해 UFS 호스트 컨트롤러(2110)를 관리할 수 있다. UFS 드라이버(2130)는 애플리케이션(2120)에 의해 생성된 입출력 요청을 UFS 표준에 의해 정의된 UFS 명령으로 변환하고, 변환된 UFS 명령을 UFS 호스트 컨트롤러(2110)로 전달할 수 있다. 하나의 입출력 요청은 복수의 UFS 명령으로 변환될 수 있다. UFS 명령은 기본적으로 SCSI 표준에 의해 정의된 명령일 수 있지만, UFS 표준 전용 명령일 수도 있다.
UFS 호스트 컨트롤러(2110)는 UFS 드라이버(2130)에 의해 변환된 UFS 명령을 UIC 레이어(2150)와 UFS 인터페이스(2300)를 통해 UFS 장치(2200)의 UIC 레이어(2250)로 전송할 수 있다. 이 과정에서, UFS 호스트 컨트롤러(2110)의 UFS 호스트 레지스터(2111)는 명령 큐(command queue, CQ)로서의 역할을 수행할 수 있다.
UFS 호스트(2100) 측의 UIC 레이어(2150)는 MIPI M-PHY(2151)와 MIPI UniPro(2152)를 포함할 수 있으며, UFS 장치(2200) 측의 UIC 레이어(2250) 또한 MIPI M-PHY(2251)와 MIPI UniPro(2252)을 포함할 수 있다.
UFS 인터페이스(2300)는 기준 클락(REF_CLK)을 전송하는 라인, UFS 장치(2200)에 대한 하드웨어 리셋 신호(RESET_n)를 전송하는 라인, 차동 입력 신호 쌍(DIN_t와 DIN_c)을 전송하는 한 쌍의 라인 및 차동 출력 신호 쌍(DOUT_t와 DOUT_c)을 전송하는 한 쌍의 라인을 포함할 수 있다.
UFS 호스트(2100)로부터 UFS 장치(2200)로 제공되는 기준 클락의 주파수 값은 19.2MHz, 26MHz, 38.4MHz 및 52MHz의 네 개의 값 중 하나일 수 있으나, 반드시 이에 한정되지는 않는다. UFS 호스트(2100)는 동작 중에도, 즉 UFS 호스트(2100)와 UFS 장치(2200) 사이에서 데이터 송수신이 수행되는 중에도 기준 클락의 주파수 값을 변경할 수 있다. UFS 장치(2200)는 위상 동기 루프(phase-locked loop, PLL) 등을 이용하여, UFS 호스트(2100)로부터 제공받은 기준 클락으로부터 다양한 주파수의 클락을 생성할 수 있다. 또한, UFS 호스트(2100)는 기준 클락의 주파수 값을 통해 UFS 호스트(2100)와 UFS 장치(2200) 간의 데이터 레이트(data rate)의 값을 설정할 수도 있다. 즉, 상기 데이터 레이트의 값은 기준 클락의 주파수 값에 의존하여 결정될 수 있다.
UFS 인터페이스(2300)는 복수의 레인들(multiple lanes)을 지원할 수 있으며, 각 레인은 차동(differential) 쌍으로 구현될 수 있다. 예컨대, UFS 인터페이스는 하나 이상의 수신 레인(receive lane)과 하나 이상의 송신 레인(transmit lane)을 포함할 수 있다. 도 2에서, 차동 입력 신호 쌍(DIN_T와 DIN_C)을 전송하는 한 쌍의 라인은 수신 레인을, 차동 출력 신호 쌍(DOUT_T와 DOUT_C)을 전송하는 한 쌍의 라인은 송신 레인을 각각 구성할 수 있다. 도 17에서는 하나의 송신 레인과 하나의 수신 레인을 도시하였지만, 송신 레인과 수신 레인의 수는 변경될 수 있다.
수신 레인 및 송신 레인은 직렬 통신(serial communication) 방식으로 데이터를 전송할 수 있으며, 수신 레인과 송신 레인이 분리된 구조에 의해 UFS 호스트(2100)와 UFS 장치(2200) 간의 풀 듀플렉스(full-duplex) 방식의 통신이 가능하다. 즉, UFS 장치(2200)는 수신 레인을 통해 UFS 호스트(2100)로부터 데이터를 수신받는 동안에도, 송신 레인을 통해 UFS 호스트(2100)로 데이터를 송신할 수 있다. 또한, UFS 호스트(2100)로부터 UFS 장치(2200)로의 명령과 같은 제어 데이터와, UFS 호스트(2100)가 UFS 장치(2200)의 비휘발성 스토리지(2220)에 저장하고자 하거나 비휘발성 스토리지(2220)로부터 독출하고자 하는 사용자 데이터는 동일한 레인을 통해 전송될 수 있다. 이에 따라, UFS 호스트(2100)와 UFS 장치(2200) 간에는 한 쌍의 수신 레인과 한 쌍의 송신 레인 외에 데이터 전송을 위한 별도의 레인이 더 구비될 필요가 없다.
UFS 장치(2200)의 UFS 장치 컨트롤러(2210)는 UFS 장치(2200)의 동작을 전반적으로 제어할 수 있다. UFS 장치 컨트롤러(2210)는 논리적인 데이터 저장 단위인 LU(logical unit)(2211)를 통해 비휘발성 스토리지(2220)를 관리할 수 있다. LU(2211)의 개수는 8개일 수 있으나, 이에 한정되는 것은 아니다. UFS 장치 컨트롤러(2210)는 플래시 변환 계층(flash translation layer, FTL)을 포함할 수 있으며, FTL의 어드레스 매핑(address mapping) 정보를 이용하여 UFS 호스트(2100)로부터 전달된 논리적인 데이터 주소, 예컨대 LBA(logical block address)를 물리적인 데이터 주소로, 예컨대 PBA(physical block address)로 변환할 수 있다. UFS 시스템(2000)에서 사용자 데이터(user data)의 저장을 위한 논리 블록(logical block)은 소정 범위의 크기를 가질 수 있다. 예컨대, 논리 블록의 최소 크기는 4Kbyte로 설정될 수 있다.
UFS 호스트(2100)로부터의 명령이 UIC 레이어(2250)를 통해 UFS 장치(2200)로 입력되면, UFS 장치 컨트롤러(2210)는 입력된 명령에 따른 동작을 수행하고, 상기 동작이 완료되면 완료 응답을 UFS 호스트(2100)로 전송할 수 있다.
일례로서, UFS 호스트(2100)가 UFS 장치(2200)에 사용자 데이터를 저장하고자 할 경우, UFS 호스트(2100)는 데이터 저장 명령을 UFS 장치(2200)로 전송할 수 있다. 사용자 데이터를 전송받을 준비가 되었다(ready-to-transfer)는 응답을 UFS 장치(2200)로부터 수신하면, UFS 호스트(2100)는 사용자 데이터를 UFS 장치(2200)로 전송할 수 있다. UFS 장치 컨트롤러(2210)는 전송받은 사용자 데이터를 장치 메모리(2240) 내에 임시로 저장하고, FTL의 어드레스 매핑 정보에 기초하여 장치 메모리(2240)에 임시로 저장된 사용자 데이터를 비휘발성 스토리지(2220)의 선택된 위치에 저장할 수 있다.
또 다른 예로서, UFS 호스트(2100)가 UFS 장치(2200)에 저장된 사용자 데이터를 독출하고자 할 경우, UFS 호스트(2100)는 데이터 독출 명령을 UFS 장치(2200)로 전송할 수 있다. 명령을 수신한 UFS 장치 컨트롤러(2210)는 상기 데이터 독출 명령에 기초하여 비휘발성 스토리지(2220)로부터 사용자 데이터를 독출하고, 독출된 사용자 데이터를 장치 메모리(2240) 내에 임시로 저장할 수 있다. 이러한 독출 과정에서, UFS 장치 컨트롤러(2210)는 내장된 ECC(error correction code) 회로(미도시)를 이용하여, 독출된 사용자 데이터의 에러를 검출하고 정정할 수 있다. 그리고, UFS 장치 컨트롤러(2210)는 장치 메모리(2240) 내에 임시로 저장된 사용자 데이터를 UFS 호스트(2100)로 전송할 수 있다. 아울러, UFS 장치 컨트롤러(2210)는 AES(advanced encryption standard) 회로(미도시)를 더 포함할 수 있으며, AES 회로는 UFS 장치 컨트롤러(2210)로 입력되는 데이터를 대칭 키 알고리즘(symmetric-key algorithm)을 이용하여 암호화(encryption)하거나 복호화(decryption)할 수 있다.
UFS 호스트(2100)는 명령 큐로 기능할 수 있는 UFS 호스트 레지스터(2111)에 UFS 장치(2200)로 송신될 명령들을 순서에 따라 저장하고, 상기 순서대로 UFS 장치(2200)에 명령을 송신할 수 있다. 이 때, UFS 호스트(2100)는 이전에 송신된 명령이 아직 UFS 장치(2200)에 의해 처리 중인 경우에도, 즉 이전에 송신된 명령이 UFS 장치(2200)에 의해 처리가 완료되었다는 통지를 받기 전에도 명령 큐에 대기 중인 다음 명령을 UFS 장치(2200)로 송신할 수 있으며, 이에 따라 UFS 장치(2200) 역시 이전에 송신된 명령을 처리하는 중에도 다음 명령을 UFS 호스트(2100)로부터 수신할 수 있다. 이와 같은 명령 큐에 저장될 수 있는 명령의 최대 개수(queue depth)는 예컨대 32개일 수 있다. 또한, 명령 큐는 헤드 포인터(head point)와 테일 포인터(tail pointer)를 통해 큐에 저장된 명령 열의 시작과 끝을 각각 나타내는 원형 큐(circular queue) 타입으로 구현될 수 있다.
복수의 스토리지 유닛(2221) 각각은 메모리 셀 어레이(미도시)와 상기 메모리 셀 어레이의 작동을 제어하는 제어 회로(미도시)를 포함할 수 있다. 상기 메모리 셀 어레이는 2차원 메모리 셀 어레이 또는 3차원 메모리 셀 어레이를 포함할 수 있다. 메모리 셀 어레이는 복수의 메모리 셀을 포함하며, 각각의 메모리 셀은 1비트의 정보를 저장하는 셀(single level cell, SLC)일 수도 있지만, MLC(multi level cell), TLC(triple level cell), QLC(quadruple level cell)와 같이 2비트 이상의 정보를 저장하는 셀일 수도 있다. 3차원 메모리 셀 어레이는 적어도 하나의 메모리 셀이 다른 메모리 셀의 위에 위치하도록 수직으로 배향되는(vertically oriented) 수직 NAND 스트링을 포함할 수 있다.
UFS 장치(2200)에는 전원 전압으로서 VCC, VCCQ, VCCQ2 등이 입력될 수 있다. VCC는 UFS 장치(2200)를 위한 주 전원 전압으로서, 2.4~3.6V의 값을 가질 수 있다. VCCQ는 낮은 범위의 전압을 공급하기 위한 전원 전압으로서, 주로 UFS 장치 컨트롤러(2210)를 위한 것이며. 1.14~1.26V의 값을 가질 수 있다. VCCQ2는 VCC보다는 낮지만 VCCQ보다는 높은 범위의 전압을 공급하기 위한 전원 전압으로서, 주로 MIPI M-PHY(2251)와 같은 입출력 인터페이스를 위한 것이며, 1.7~1.95V의 값을 가질 수 있다. 상기 전원 전압들은 레귤레이터(2260)를 거쳐 UFS 장치(2200)의 각 구성 요소들을 위해 공급될 수 있다. 레귤레이터(2260)는 전술한 전원 전압들 중 서로 다른 것에 각각 연결되는 단위 레귤레이터의 집합으로 구현될 수 있다.
도 18은 도 1의 비휘발성 메모리를 나타내는 예시적인 블록도이다. 도 1의 비휘발성 메모리(220)는 메모리 장치(600)로 지칭될 수 있다. 도 18을 참조하면, 메모리 장치(600)는 제어 로직 회로(620), 메모리 셀 어레이(630), 페이지 버퍼부(640), 전압 생성기(650), 및 로우 디코더(660)를 포함할 수 있다. 도 6에는 도시되지 않았으나, 메모리 장치(600)는 컬럼 로직, 프리-디코더, 온도 센서, 커맨드 디코더, 어드레스 디코더 등을 더 포함할 수 있다.
제어 로직 회로(620)는 메모리 장치(600) 내의 각종 동작을 전반적으로 제어할 수 있다. 제어 로직 회로(620)는 메모리 인터페이스 회로(610)로부터의 커맨드(CMD) 및/또는 어드레스(ADDR)에 응답하여 각종 제어 신호들을 출력할 수 있다. 예를 들어, 제어 로직 회로(620)는 전압 제어 신호(CTRL_vol), 로우 어드레스(X-ADDR), 및 컬럼 어드레스(Y-ADDR)를 출력할 수 있다.
메모리 셀 어레이(630)는 복수의 메모리 블록들(BLK1 내지 BLKz)을 포함할 수 있고(z는 양의 정수), 복수의 메모리 블록들(BLK1 내지 BLKz) 각각은 복수의 메모리 셀들을 포함할 수 있다. 메모리 셀 어레이(630)는 비트 라인들(BL)을 통해 페이지 버퍼부(640)에 연결될 수 있고, 워드 라인들(WL), 스트링 선택 라인들(SSL), 및 그라운드 선택 라인들(GSL)을 통해 로우 디코더(660)에 연결될 수 있다.
예시적인 실시 예에서, 메모리 셀 어레이(630)는 3차원 메모리 셀 어레이를 포함할 수 있고, 3차원 메모리 셀 어레이는 복수의 낸드 스트링들을 포함할 수 있다. 각 낸드 스트링은 기판 위에 수직으로 적층된 워드 라인들에 각각 연결된 메모리 셀들을 포함할 수 있다. 미국 특허공개공보 제7,679,133호, 미국 특허공개공보 제8,553,466호, 미국 특허공개공보 제8,654,587호, 미국 특허공개공보 제8,559,235호, 및 미국 특허출원공개공보 제2011/0233648호는 본 명세서에 인용 형식으로 결합된다. 예시적인 실시 예에서, 메모리 셀 어레이(630)는 2차원 메모리 셀 어레이를 포함할 수 있고, 2차원 메모리 셀 어레이는 행 및 열 방향을 따라 배치된 복수의 낸드 스트링들을 포함할 수 있다.
페이지 버퍼부(640)는 복수의 페이지 버퍼들(PB1 내지 PBn)을 포함할 수 있고(n은 3 이상의 정수), 복수의 페이지 버퍼들(PB1 내지 PBn)은 복수의 비트 라인들(BL)을 통해 메모리 셀들과 각각 연결될 수 있다. 페이지 버퍼부(640)는 컬럼 어드레스(Y-ADDR)에 응답하여 비트 라인들(BL) 중 적어도 하나의 비트 라인을 선택할 수 있다. 페이지 버퍼부(640)는 동작 모드에 따라 기입 드라이버 또는 감지 증폭기로서 동작할 수 있다. 예를 들어, 프로그램 동작 시, 페이지 버퍼부(640)는 선택된 비트 라인으로 프로그램될 데이터에 대응하는 비트 라인 전압을 인가할 수 있다. 독출 동작 시, 페이지 버퍼부(640)는 선택된 비트 라인의 전류 또는 전압을 감지하여 메모리 셀에 저장된 데이터를 감지할 수 있다.
전압 생성기(650)는 전압 제어 신호(CTRL_vol)를 기반으로 프로그램, 독출, 및 소거 동작들을 수행하기 위한 다양한 종류의 전압들을 생성할 수 있다. 예를 들어, 전압 생성기(650)는 워드 라인 전압(VWL)으로서 프로그램 전압, 독출 전압, 프로그램 검증 전압, 소거 전압 등을 생성할 수 있다.
로우 디코더(660)는 로우 어드레스(X-ADDR)에 응답하여 복수의 워드 라인들(WL) 중 하나를 선택할 수 있고, 복수의 스트링 선택 라인들(SSL) 중 하나를 선택할 수 있다. 예를 들어, 프로그램 동작 시, 로우 디코더(660)는 선택된 워드 라인으로 프로그램 전압 및 프로그램 검증 전압을 인가하고, 독출 동작 시, 선택된 워드 라인으로 독출 전압을 인가할 수 있다.
도 19는 본 개시의 일 실시예에 따라, B-VNAND 구조를 갖는 메모리 장치(50)의 단면도이다.
도 19를 참조하면, 메모리 장치(50)는 C2C(chip to chip) 구조일 수 있다. 여기서, C2C 구조는 셀 영역(CELL)을 포함하는 적어도 하나의 상부 칩과 주변 회로 영역(PERI)을 포함하는 하부 칩을 각각 제작한 후, 상기 적어도 하나의 상부 칩과 상기 하부 칩을 본딩(bonding) 방식에 의해 서로 연결하는 것을 의미할 수 있다. 일 예로, 상기 본딩 방식은 상부 칩의 최상부 메탈층에 형성된 본딩 메탈 패턴과 하부 칩의 최상부 메탈층에 형성된 본딩 메탈 패턴을 서로 전기적으로 또는 물리적으로 연결하는 방식을 의미할 수 있다. 예를 들어, 상기 본딩 메탈 패턴들이 구리(Cu)로 형성된 경우, 상기 본딩 방식은 Cu-Cu 본딩 방식일 수 있다. 다른 예로, 상기 본딩 메탈 패턴들은 알루미늄(Al) 혹은 텅스텐(W)으로도 형성될 수 있다.
메모리 장치(50)는 셀 영역을 포함하는 상부 칩을 적어도 하나 이상 포함할 수 있다. 예를 들어, 도 19에 도시된 바와 같이, 메모리 장치(50)는 두 개의 상부 칩들을 포함하도록 구현될 수 있다. 다만, 이는 예시적인 것이며, 상부 칩의 개수는 이에 제한되지 않는다. 메모리 장치(50)가 두 개의 상부 칩들을 포함하도록 구현되는 경우, 제1 셀 영역(CELL1)을 포함하는 제1 상부 칩, 제2 셀 영역(CELL2)을 포함하는 제2 상부 칩 및 주변 회로 영역(PERI)을 포함하는 하부 칩을 각각 제조한 후에, 상기 제1 상부 칩, 제2 상부 칩 및 하부 칩을 본딩 방식에 의해 서로 연결함으로써 메모리 장치(50)가 제조될 수 있다. 제1 상부 칩은 반전(反轉)하여 하부 칩에 본딩 방식으로 연결될 수 있고, 제2 상부 칩도 반전하여 제1 상부 칩에 본딩 방식으로 연결될 수 있다. 이하의 설명에서는, 제1 상부 칩 및 제2 상부 칩이 반전되기 전을 기준으로 제1 및 제2 상부 칩들의 상부와 하부가 정의된다. 즉, 도 19에서 하부 칩의 상부는 +Z축 방향을 기준으로 정의된 상부를 의미하고, 제1 및 제2 상부 칩들 각각의 상부는 -Z축 방향을 기준으로 정의된 상부를 의미한다. 다만 이는 예시적인 것이며, 제1 상부 칩 및 제2 상부 칩 중 어느 하나만이 반전되어 본딩 방식으로 연결될 수도 있다.
메모리 장치(50)의 주변 회로 영역(PERI)과 제1 및 제2 셀 영역(CELL1, CELL2) 각각은 외부 패드 본딩 영역(PA), 워드라인 본딩 영역(WLBA), 및 비트라인 본딩 영역(BLBA)을 포함할 수 있다. 일 실시예에서, 도 18의 메모리 셀 어레이(630)는 제1 및 제2 셀 영역(CELL1, CELL2)에 형성될 수 있고, 도 18의 메모리 셀 어레이(630)를 제외한 주변 회로는 주변 회로 영역(PERI)과 에 형성될 수 있다.
주변 회로 영역(PERI)은 제1 기판(250) 및 제1 기판(250)에 형성되는 복수의 회로 소자들(220a, 220b, 220c)을 포함할 수 있다. 복수의 회로 소자들(220a, 220b, 220c) 상에는 하나 또는 그 이상의 절연층들을 포함하는 층간 절연층(215)이 제공될 수 있으며, 상기 층간 절연층(215) 내에는 상기 복수의 회로 소자들(220a, 220b, 220c)을 연결하는 복수의 메탈 배선들이 제공될 수 있다. 예를 들어, 상기 복수의 메탈 배선들은 복수의 회로 소자들(220a, 220b, 220c) 각각과 연결되는 제1 메탈 배선(230a, 230b, 230c), 제1 메탈 배선(230a, 230b, 230c) 상에 형성되는 제2 메탈 배선(240a, 240b, 240c)을 포함할 수 있다. 상기 복수의 메탈 배선들은 다양한 도전성 재료들 중 적어도 하나로 이루어질 수 있다. 예를 들어, 제1 메탈 배선(230a, 230b, 230c)은 상대적으로 전기적 비저항이 높은 텅스텐으로 형성될 수 있고, 제2 메탈 배선(240a, 240b, 240c)은 상대적으로 전기적 비저항이 낮은 구리로 형성될 수 있다.
본 명세서에서는 제1 메탈 배선(230a, 230b, 230c)과 제2 메탈 배선(240a, 240b, 240c)만 도시 되고 설명되나, 이에 한정되는 것은 아니고, 제2 메탈 배선(240a, 240b, 240c) 상에 적어도 하나 이상의 추가 메탈 배선이 더 형성될 수도 있다. 이 경우, 제2 메탈 배선(240a, 240b, 240c)은 알루미늄으로 형성될 수 있다. 그리고, 제2 메탈 배선(240a, 240b, 240c) 상에 형성된 추가 메탈 배선 중 적어도 일부는, 제2 메탈 배선(240a, 240b, 240c)의 알루미늄보다 더 낮은 전기적 비저항을 갖는 구리 등으로 형성될 수 있다.
층간 절연층(215)은 제1 기판(250) 상에 배치되며, 실리콘 산화물, 실리콘 질화물 등과 같은 절연 물질을 포함할 수 있다.
제1 및 제2 셀 영역(CELL1, CELL2)은 각각 적어도 하나의 메모리 블록을 포함할 수 있다. 제1 셀 영역(CELL1)은 제2 기판(310)과 공통 소스 라인(320)을 포함할 수 있다. 제2 기판(310) 상에는, 제2 기판(310)의 상면에 수직하는 방향(Z축 방향)을 따라 복수의 워드라인들(331-338; 330)이 적층될 수 있다. 워드라인들(330)의 상부 및 하부에는 스트링 선택 라인들과 접지 선택 라인이 배치될 수 있으며, 스트링 선택 라인들과 접지 선택 라인 사이에 복수의 워드라인들(330)이 배치될 수 있다. 마찬가지로, 제2 셀 영역(CELL2)은 제3 기판(410)과 공통 소스 라인(420)을 포함하며, 제3 기판(410)의 상면에 수직하는 방향(Z축 방향)을 따라 복수의 워드라인들(431-438: 430)이 적층될 수 있다. 제2 기판(310) 및 제3 기판(410)은, 다양한 재료로 이루어질 수 있으며, 예를 들어, 실리콘 기판, 실리콘-게르마늄 기판, 게르마늄 기판, 또는 단결정(monocrystalline) 실리콘 기판에 성장된 단결정 에피택시얼층(epitaxial layer)을 갖는 기판일 수 있다. 제1 및 제2 셀 영역(CELL1, CELL2) 각각에는 복수의 채널 구조체(CH)들이 형성될 수 있다.
일 실시 예에 있어서, A1에 도시된 바와 같이, 채널 구조체(CH)는 비트라인 본딩 영역(BLBA)에 제공되며, 제2 기판(310)의 상면에 수직하는 방향으로 연장되어 워드라인들(330), 스트링 선택 라인들, 및 접지 선택 라인을 관통할 수 있다. 채널 구조체(CH)는 데이터 저장층, 채널층, 및 매립 절연층 등을 포함할 수 있다. 채널층은 비트라인 본딩 영역(BLBA)에서 제1 메탈 배선(350c) 및 제2 메탈 배선(360c)과 전기적으로 연결될 수 있다. 예를 들어, 제2 메탈 배선(360c)은 비트라인일 수 있으며, 상기 제1 메탈 배선(350c)을 통해 상기 채널 구조체(CH)에 연결될 수 있다. 비트라인(360c)은 제2 기판(310)의 상면에 평행한 제1 방향(Y축 방향)을 따라 연장될 수 있다.
일 실시 예에 있어서, A2에 도시된 바와 같이, 채널 구조체(CH)는 서로 연결된 하부 채널(LCH) 및 상부 채널(UCH)을 포함할 수도 있다. 예를 들어, 채널 구조체(CH)는 하부 채널(LCH)에 대한 공정 및 상부 채널(UCH)에 대한 공정을 통해 형성될 수 있다. 하부 채널(LCH)은 제2 기판(310)의 상면에 수직하는 방향으로 연장되어 공통 소스 라인(320) 및 하부 워드라인들(331, 332)을 관통할 수 있다. 하부 채널(LCH)은 데이터 저장층, 채널층 및 매립 절연층 등을 포함할 수 있고, 상부 채널(UCH)과 연결될 수 있다. 상부 채널(UCH)은 상부 워드라인들(333~338)을 관통할 수 있다. 상부 채널(UCH)은 데이터 저장층, 채널층 및 매립 절연층 등을 포함할 수 있고, 상부 채널(UCH)의 채널층은 제1 메탈 배선(350c) 및 제2 메탈 배선(360c)과 전기적으로 연결될 수 있다. 채널의 길이가 길어질수록 공정 상의 이유로 인해 일정한 폭을 갖는 채널을 형성하는 것은 어려워질 수 있다. 본 발명의 실시 예에 따른 메모리 장치(50)는 순차적인 공정으로 형성되는 하부 채널(LCH)과 상부 채널(UCH)을 통해 개선된 폭 균일성을 갖는 채널을 구비할 수 있다.
A2에 도시된 바와 같이 채널 구조체(CH)가 하부 채널(LCH) 및 상부 채널(UCH)을 포함하도록 형성된 경우, 하부 채널(LCH) 및 상부 채널(UCH)의 경계 부근에 위치하는 워드라인은 더미 워드라인일 수 있다. 예를 들어, 하부 채널(LCH) 및 상부 채널(UCH)의 경계를 형성하는 워드라인(332) 및 워드라인(333)은 더미 워드라인일 수 있다. 이 경우, 더미 워드라인에 연결된 메모리 셀들에는 데이터가 저장되지 않을 수 있다. 또는, 더미 워드라인에 연결된 메모리 셀들에 대응하는 페이지들(page)의 개수는 일반적인 워드라인에 연결된 메모리 셀들에 대응하는 페이지들의 개수보다 적을 수 있다. 더미 워드라인에 인가되는 전압 레벨은 일반적인 워드라인에 인가되는 전압 레벨과 다를 수 있으며, 이에 따라 하부 채널(LCH)과 상부 채널(UCH) 간의 불균일한 채널 폭이 메모리 장치의 동작에 미치는 영향을 감소시킬 수 있다.
한편, A2에서, 하부 채널(LCH)이 관통하는 하부 워드라인들(331, 332)의 개수가 상부 채널(UCH)이 관통하는 상부 워드라인들(333~338)의 개수보다 적은 것으로 도시되어 있다. 다만, 이는 예시적인 것이며, 본 발명은 이에 제한되지 않는다. 다른 예로, 하부 채널(LCH)을 관통하는 하부 워드라인들의 개수가 상부 채널(UCH)이 관통하는 상부 워드라인들의 개수와 동일하거나 더 많도록 형성될 수도 있다. 또한, 이상에서 설명된 제1 셀 영역(CELL1)에 배치된 채널 구조체(CH)의 구조 및 연결 관계는 제2 셀 영역(CELL2)에 배치된 채널 구조체(CH)에도 동일하게 적용될 수 있다.
비트라인 본딩 영역(BLBA)에서, 제1 셀 영역(CELL1)에는 제1 관통 전극(THV1)이 제공되고, 제2 셀 영역(CELL2)에는 제2 관통 전극(THV2)이 제공될 수 있다. 도 9에 도시된 바와 같이, 제1 관통 전극(THV1)은 공통 소스 라인(320) 및 복수의 워드라인들(330)을 관통할 수 있다. 다만, 이는 예시적인 것이며, 제1 관통 전극(THV1)은 제2 기판(310)을 더 관통할 수도 있다. 제1 관통 전극(THV1)은 전도성 물질을 포함할 수 있다. 또는, 제1 관통 전극(THV1)은 절연 물질로 둘러 쌓인 전도성 물질을 포함할 수 있다. 제2 관통 전극(THV2)도 제1 관통 전극(THV1)과 동일한 형태 및 구조로 제공될 수 있다.
일 실시 예에 있어서, 제1 관통 전극(THV1)과 제2 관통 전극(THV2)은 제1 관통 메탈 패턴(372d) 및 제2 관통 메탈 패턴(472d)을 통해 전기적으로 연결될 수 있다. 제1 관통 메탈 패턴(372d)은 제1 셀 영역(CELL1)을 포함하는 제1 상부 칩의 하단에 형성될 수 있고, 제2 관통 메탈 패턴(472d)은 제2 셀 영역(CELL2)을 포함하는 제2 상부 칩의 상단에 형성될 수 있다. 제1 관통 전극(THV1)은 제1 메탈 배선(350c) 및 제2 메탈 배선(360c)과 전기적으로 연결될 수 있다. 제1 관통 전극(THV1)과 제1 관통 메탈 패턴(372d) 사이에 하부 비아(371d)가 형성될 수 있고, 제2 관통 전극(THV2)과 제2 관통 메탈 패턴(472d) 사이에 상부 비아(471d)가 형성될 수 있다. 제1 관통 메탈 패턴(372d)과 제2 관통 메탈 패턴(472d)은 본딩 방식으로 연결될 수 있다.
또한, 비트라인 본딩 영역(BLBA)에서, 주변 회로 영역(PERI)의 최상부 메탈층에는 상부 메탈 패턴(252)이 형성되고, 제1 셀 영역(CELL1)의 최상부 메탈층에는 상기 상부 메탈 패턴(252)과 동일한 형태의 상부 메탈 패턴(392)이 형성될 수 있다. 제1 셀 영역(CELL1)의 상부 메탈 패턴(392)과 주변 회로 영역(PERI)의 상부 메탈 패턴(252)은 본딩 방식에 의해 서로 전기적으로 연결될 수 있다. 비트라인 본딩 영역(BLBA)에서, 비트 라인(360c)은 주변 회로 영역(PERI)에 포함된 페이지 버퍼와 전기적으로 연결될 수 있다. 예를 들어, 주변 회로 영역(PERI)의 회로 소자들(220c) 중 일부는 페이지 버퍼를 제공할 수 있으며, 비트라인(360c)은 제1 셀 영역(CELL1)의 상부 본딩 메탈(370c)과 주변 회로 영역(PERI)의 상부 본딩 메탈(270c)을 통하여 페이지 버퍼를 제공하는 회로 소자들(220c)과 전기적으로 연결될 수 있다.
계속해서, 도 5를 참조하면, 워드라인 본딩 영역(WLBA)에서, 제1 셀 영역(CELL1)의 워드라인들(330)은 제2 기판(310)의 상면에 평행한 제2 방향(X축 방향)을 따라 연장될 수 있으며, 복수의 셀 컨택 플러그들(341-347; 340)과 연결될 수 있다. 워드라인들(330)에 연결되는 셀 컨택 플러그들(340)의 상부에는 제1 메탈 배선(350b)과 제2 메탈 배선(360b)이 차례로 연결될 수 있다. 셀 컨택 플러그들(340)은 워드라인 본딩 영역(WLBA)에서 제1 셀 영역(CELL1)의 상부 본딩 메탈(370b)과 주변 회로 영역(PERI)의 상부 본딩 메탈(270b)을 통해 주변 회로 영역(PERI)과 연결될 수 있다.
셀 컨택 플러그들(340)은 주변 회로 영역(PERI)에 포함된 로우 디코더와 전기적으로 연결될 수 있다. 예를 들어, 주변 회로 영역(PERI)의 회로 소자들(220b) 중 일부는 로우 디코더를 제공하며, 셀 컨택 플러그들(340)은 제1 셀 영역(CELL1)의 상부 본딩 메탈(370b)과 주변 회로 영역(PERI)의 상부 본딩 메탈(270b)을 통해 로우 디코더를 제공하는 회로 소자들(220b)과 전기적으로 연결될 수 있다. 일 실시예에서, 로우 디코더를 제공하는 회로 소자들(220b)의 동작 전압은, 페이지 버퍼를 제공하는 회로 소자들(220c)의 동작 전압과 다를 수 있다. 예를 들어, 페이지 버퍼를 제공하는 회로 소자들(220c)의 동작 전압이 로우 디코더를 제공하는 회로 소자들(220b)의 동작 전압보다 클 수 있다.
마찬가지로, 워드라인 본딩 영역(WLBA)에서, 제2 셀 영역(CELL2)의 워드라인들(430)은 제3 기판(410)의 상면에 평행한 제2 방향(X축 방향)을 따라 연장될 수 있으며, 복수의 셀 컨택 플러그들(441-447; 440)과 연결될 수 있다. 셀 컨택 플러그들(440)은 제2 셀 영역(CELL2)의 상부 메탈 패턴, 제1 셀 영역(CELL1)의 하부 메탈 패턴 및 상부 메탈 패턴, 그리고 셀 컨택 플러그(348)를 통하여 주변 회로 영역(PERI)과 연결될 수 있다.
워드라인 본딩 영역(WLBA)에서, 제1 셀 영역(CELL1)에는 상부 본딩 메탈(370b)이 형성되고, 주변 회로 영역(PERI)에는 상부 본딩 메탈(270b)이 형성될 수 있다. 제1 셀 영역(CELL1)의 상부 본딩 메탈(370b)과 주변 회로 영역(PERI)의 상부 본딩 메탈(270b)은 본딩 방식에 의해 서로 전기적으로 연결될 수 있다. 상부 본딩 메탈(370b)과 상부 본딩 메탈(270b)은 알루미늄, 구리 또는 텅스텐 등으로 형성될 수 있다.
외부 패드 본딩 영역(PA)에서, 제1 셀 영역(CELL1)의 하부에는 하부 메탈 패턴(371e)이 형성될 수 있고, 제2 셀 영역(CELL2)의 상부에는 상부 메탈 패턴(472a)이 형성될 수 있다. 제1 셀 영역(CELL1)의 하부 메탈 패턴(371e) 및 제2 셀 영역(CELL2)의 상부 메탈 패턴(472a)은, 외부 패드 본딩 영역(PA)에서 본딩 방식에 의해 연결될 수 있다. 마찬가지로, 제1 셀 영역(CELL1)의 상부에는 상부 메탈 패턴(372a)이 형성될 수 있고, 주변 회로 영역(PERI)의 상부에는 상부 메탈 패턴(272a)가 형성될 수 있다. 제1 셀 영역(CELL1)의 상부 메탈 패턴(372a) 및 주변 회로 영역(PERI)의 상부 메탈 패턴(272a)은 본딩 방식에 의해 연결될 수 있다.
외부 패드 본딩 영역(PA)에는 공통 소스 라인 컨택 플러그들(380, 480)이 배치될 수 있다. 공통 소스 라인 컨택 플러그들(380, 480)은 금속, 금속 화합물, 또는 도핑된 폴리실리콘 등의 도전성 물질로 형성될 수 있다. 제1 셀 영역(CELL1)의 공통 소스 라인 컨택 플러그(380)는 공통 소스 라인(320)과 전기적으로 연결되고, 제2 셀 영역(CELL2)의 공통 소스 라인 컨택 플러그(480)는 공통 소스 라인(420)과 전기적으로 연결될 수 있다. 제1 셀 영역(CELL1)의 공통 소스 라인 컨택 플러그(380) 상부에는 제1 메탈 배선(350a)과 제2 메탈 배선(360a)이 차례로 적층되고, 제2 셀 영역(CELL2)의 공통 소스 라인 컨택 플러그(480) 상부에는 제1 메탈 배선(450a)과 제2 메탈 배선(460a)이 차례로 적층될 수 있다.
외부 패드 본딩 영역(PA)에는 입출력 패드들(205, 405, 406)이 배치될 수 있다. 도 19를 참조하면, 하부 절연막(201)이 제1 기판(250)의 하면을 덮을 수 있으며, 하부 절연막(201) 상에 제1 입출력 패드(205)가 형성될 수 있다. 제1 입출력 패드(205)는 제1 입출력 컨택 플러그(203)를 통해 주변 회로 영역(PERI)에 배치되는 복수의 회로 소자들(220a) 중 적어도 하나와 연결되며, 하부 절연막(201)에 의해 제1 기판(250)과 분리될 수 있다. 또한, 제1 입출력 컨택 플러그(203)와 제1 기판(250) 사이에는 측면 절연막이 배치되어 제1 입출력 컨택 플러그(203)와 제1 기판(250)을 전기적으로 분리할 수 있다.
제3 기판(410)의 상부에는 제3 기판(410)의 상면을 덮는 상부 절연막(401)이 형성될 수 있다. 상부 절연막(401) 상에는 제2 입출력 패드(405) 및/ 또는 제3 입출력 패드(406)가 배치될 수 있다. 제2 입출력 패드(405)는 제2 입출력 컨택 플러그들(403, 303)을 통해 주변 회로 영역(PERI)에 배치되는 복수의 회로 소자들(220a) 중 적어도 하나와 연결되고, 제3 입출력 패드(406)는 제3 입출력 컨택 플러그들(404, 304)을 통해 주변 회로 영역(PERI)에 배치되는 복수의 회로 소자들(220a) 중 적어도 하나와 연결될 수 있다.
일 실시 예에 있어서, 입출력 컨택 플러그가 배치되는 영역에는 제3 기판(410)이 배치되지 않을 수 있다. 예를 들어, B에 도시된 바와 같이, 제3 입출력 컨택 플러그(404)는 제3 기판(410)의 상면에 평행한 방향에서 제3 기판(410)과 분리되며, 제2 셀 영역(CELL2)의 층간 절연층(415)을 관통하여 제3 입출력 패드(406)에 연결될 수 있다. 이 경우, 제3 입출력 컨택 플러그(404)는 다양한 공정으로 형성될 수 있다.
예시적으로, B1에 도시된 바와 같이, 제3 입출력 컨택 플러그(404)는 제3 방향(Z축 방향)으로 연장되며, 상부 절연막(401)으로 갈수록 직경이 커지도록 형성될 수 있다. 즉, A1에서 설명된 채널 구조체(CH)의 직경은 상부 절연막(401)으로 갈수록 작아지도록 형성됨에 반하여, 제3 입출력 컨택 플러그(404)의 직경은 상부 절연막(401)으로 갈수록 커지도록 형성될 수 있다. 예를 들어, 제3 입출력 컨택 플러그(404)는 제2 셀 영역(CELL2)과 제1 셀 영역(CELL1)이 본딩 방식으로 결합된 후에 형성될 수 있다.
또한, 예시적으로, B2에 도시된 바와 같이, 제3 입출력 컨택 플러그(404)는 제3 방향(Z축 방향)으로 연장되며, 상부 절연막(401)으로 갈수록 직경이 작아지도록 형성될 수 있다. 즉, 제3 입출력 컨택 플러그(404)의 직경은 채널 구조체(CH)와 마찬가지로 상부 절연막(401)으로 갈수록 작아지도록 형성될 수 있다. 예를 들어, 제3 입출력 컨택 플러그(404)는 제2 셀 영역(CELL2)과 제1 셀 영역(CELL1)의 본딩 결합 전에 셀 컨택 플러그들(440)과 함께 형성될 수 있다.
다른 실시 예에 있어서, 입출력 컨택 플러그는 제3 기판(410)과 오버랩 되도록 배치될 수도 있다. 예를 들어, C에 도시된 바와 같이, 제2 입출력 컨택 플러그(403)는 제2 셀 영역(CELL2)의 층간 절연층(415)을 제3 방향(Z축 방향)으로 관통하여 형성되되, 제3 기판(410)을 통하여 제2 입출력 패드(405)에 전기적으로 연결될 수 있다. 이 경우, 제2 입출력 컨택 플러그(403)와 제2 입출력 패드(405)의 연결 구조는 다양한 방식으로 구현될 수 있다.
예시적으로, C1에 도시된 바와 같이, 제3 기판(410)을 관통하는 개구부(408)가 형성되고, 제2 입출력 컨택 플러그(403)는 제3 기판(410)에 형성된 개구부(408)를 통하여 직접 제2 입출력 패드(405)에 연결될 수 있다. 이 경우, C1에서 도시된 바와 같이, 제2 입출력 컨택 플러그(403)의 직경은 제2 입출력 패드(405)로 갈수록 커지도록 형성될 수 있다. 다만, 이는 예시적인 것이며, 제2 입출력 컨택 플러그(403)의 직경은 제2 입출력 패드(405)로 갈수록 작아지도록 형성될 수도 있다.
예시적으로, C2에 도시된 바와 같이, 제3 기판(410)을 관통하는 개구부(408)가 형성되고, 개구부(408) 내에는 컨택(407)이 형성될 수 있다. 컨택(407)의 일 단부는 제2 입출력 패드(405)에 연결되고, 다른 단부는 제2 입출력 컨택 플러그(403)에 연결될 수 있다. 이에 따라, 제2 입출력 컨택 플러그(403)가 개구부(408) 내의 컨택(407)를 통하여 제2 입출력 패드(405)에 전기적으로 연결될 수 있다. 이 경우, C2에 도시된 바와 같이, 컨택(407)의 직경은 제2 입출력 패드(405)로 갈수록 커지고, 제2 입출력 컨택 플러그(403)의 직경은 제2 입출력 패드(405)로 갈수록 작아지도록 형성될 수도 있다. 예를 들어, 제3 입출력 컨택 플러그(403)는 제2 셀 영역(CELL2)과 제1 셀 영역(CELL1)의 본딩 결합 전에 셀 컨택 플러그들(440)과 함께 형성되고, 컨택(407)은 제2 셀 영역(CELL2)과 제1 셀 영역(CELL1)의 본딩 결합 후에 형성될 수 있다.
또한, 예시적으로, C3에 도시된 바와 같이, 제3 기판(410)의 개구부(408)의 상면에는 C2에 비하여 스토퍼(stopper, 409)가 더 형성될 수도 있다. 스토퍼(409)는 공통 소스 라인(420)과 동일한 층에 형성된 메탈 배선일 수 있다. 다만, 이는 예시적인 것이며, 스토퍼(409)는 워드라인들(430) 중 적어도 하나와 동일한 층에 형성된 메탈 배선일 수도 있다. 제2 입출력 컨택 플러그(403)는 컨택(407) 및 스토퍼(409)를 통하여 제2 입출력 패드(405)에 전기적으로 연결될 수 있다.
한편, 제2 셀 영역(CELL2)의 제2 및 제3 입출력 컨택 플러그(403, 404)와 유사하게, 제1 셀 영역(CELL1)의 제2 및 제3 입출력 컨택 플러그(303, 304)는 각각 하부 메탈 패턴(371e)으로 갈수록 직경이 작아지거나, 또는 하부 메탈 패턴(371e)으로 갈수록 직경이 커지도록 형성될 수 있다.
한편, 실시 예들에 따라, 제3 기판(410)에는 슬릿(slit, 411)이 형성될 수 있다. 예를 들어, 슬릿(411)은 외부 패드 본딩 영역(PA)의 임의의 위치에 형성될 수 있다. 일 예로, D에 도시된 바와 같이, 슬릿(411)은 평면에서 봤을 때에 제2 입출력 패드(405)와 셀 컨택 플러그들(440) 사이에 위치할 수 있다. 다만, 이는 예시적인 것이며, 평면에서 봤을 때에, 제2 입출력 패드(405)가 슬릿(411)과 셀 컨택 플러그들(440) 사이에 위치하도록, 슬릿(411)이 형성될 수도 있다.
예시적으로, D1에 도시된 바와 같이, 슬릿(411)은 제3 기판(410)을 관통하도록 형성될 수 있다. 슬릿(411)은, 예를 들어, 개구부(408)를 형성할 때에 제3 기판(410)이 미세하게 갈라지는 것을 방지하는 용도로 사용될 수 있다. 다만, 이는 예시적인 것이며, 슬릿(411)은 제3 기판(410)의 두께에 대해 약 60~70% 정도의 깊이로 형성될 수도 있다.
또한, 예시적으로, D2에 도시된 바와 같이, 슬릿(411) 내에는 도전 물질(412)이 형성될 수도 있다. 도전 물질(412)은, 예를 들어, 외부 패드 본딩 영역(PA) 내의 회로 소자들의 구동 중에 발생한 누설 전류를 외부로 방전(discharge)하기 위한 용도로 사용될 수 있다. 이 경우, 도전 물질(412)은 외부의 접지 라인에 연결될 수도 있다.
또한, 예시적으로, D3에 도시된 바와 같이, 슬릿(411) 내에는 절연 물질(413)이 형성될 수도 있다. 절연 물질(413)은, 예를 들어, 외부 패드 본딩 영역(PA)에 배치된 제2 입출력 패드(405) 및 제2 입출력 컨택 플러그(403)를 워드라인 본딩 영역(WLBA)과 전기적으로 분리하기 위하여 형성될 수 있다. 슬릿(411) 내에 절연 물질(413)을 형성함으로써, 제2 입출력 패드(405)를 통하여 제공되는 전압이 워드라인 본딩 영역(WLBA) 내의 제3 기판(410) 상에 배치된 메탈층에 영향을 미치는 것을 차단할 수 있다.
한편, 실시 예들에 따라, 제1 내지 제3 입출력 패드(205, 405, 406)는 선택적으로 형성될 수 있다. 예를 들어, 메모리 장치(50)는 제1 기판(201)의 상부에 배치되는 제1 입출력 패드(205)만을 포함하거나, 또는 제3 기판(410)의 상부에 배치되는 제2 입출력 패드(405)만을 포함하거나, 또는 상부 절연막(401)의 상부에 배치되는 제3 입출력 패드(406)만을 포함하도록 구현될 수 있다.
한편, 실시 예들에 따라, 제1 셀 영역(CELL1)의 제2 기판(310) 및 제2 셀 영역(CELL2)의 제3 기판(410) 중 적어도 하나는 희생 기판으로 사용될 수 있으며, 본딩 공정 이전 또는 이후에 완전히 또는 일부만 제거될 수 있다. 기판 제거 이후에 추가막이 적층될 수 있다. 예를 들어, 제1 셀 영역(CELL1)의 제2 기판(310)은 주변 회로 영역(PERI)과 제1 셀 영역(CELL1)의 본딩 이전 또는 이후에 제거될 수 있으며, 공통 소스 라인(320)의 상면을 덮는 절연막 또는 연결을 위한 도전막이 형성될 수 있다. 이와 유사하게, 제2 셀 영역(CELL2)의 제3 기판(410)은 제1 셀 영역(CELL1)과 제2 셀 영역(CELL2)의 본딩 이전 또는 이후에 제거될 수 있으며, 공통 소스 라인(420)의 상면을 덮는 상부 절연막(401) 또는 연결을 위한 도전막이 형성될 수 있다.
도 1 및 도 5를 함께 참조하면, 반도체 공정의 발달에 따라, 제1 및 제2 셀 영역들(CELL1, CELL2)의 제1 및 2 메모리 셀 어레이(11a, 11b)에 배치되는 메모리 셀들의 단수가 높아질수록, 다시 말해, 워드 라인들(WL)의 적층 개수가 증가할수록, 제1 및 2 메모리 셀 어레이(11a, 11b)의 면적, 즉, 셀 영역의 면적이 줄어들게 된다. 예를 들어, 셀 영역은 복수의 낸드 스트링들(예를 들어, 도 2의 NS11 내지 NS33) 또는 복수의 필라들(예를 들어, 도 3a 및 3b의 P)이 배치되는 영역으로 정의할 수 있다. 예를 들어, 셀 영역은 복수의 워드 라인들(예를 들어, 도 2, 도 3a 및 도 3b의 WL1 내지 WL8)이 배치되는 영역으로 정의할 수 있다. 예를 들어, 셀 영역은 복수의 비트 라인들(예를 들어, 도 2, 도 3a 및 도 3b의 BL1, BL2, BL3)이 배치되는 영역으로 정의할 수 있다. 그러나, 셀 영역의 정의는 이에 한정되지 않으며, 제1 및 2 메모리 셀 어레이(11a, 11b)를 포함하는 영역으로 정의될 수 있다.
일 실시예에 따르면, 주변 회로 영역(PERI)의 면적을 줄이기 위해 하나의 주변 회로를 사용하여 제1 및 2 메모리 셀 어레이(11a, 11b)에 대한 동작을 수행할 수 있다. 즉, 제1 및 2 메모리 셀 어레이(11a, 11b) 각각에 대응하는 주변 회로가 구비되지 않으므로, 주변 회로 영역(PERI)의 면적이 감소할 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시 예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시 예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (20)

  1. 호스트 장치 및 스토리지 장치를 포함하는 스토리지 시스템의 동작 방법에 있어서,
    상기 호스트 장치에 의해, 제1 쓰기 커맨드 및 논리 어드레스를 상기 스토리지 장치로 전달하는 단계;
    상기 스토리지 장치에 의해, 상기 호스트 장치의 호스트 메모리에 포함된 노멀 영역의 제1 노멀 오프셋 정보 및 캐시 영역의 제1 캐시 오프셋 정보를 상기 호스트 장치로 전달하는 단계;
    상기 호스트 장치에 의해, 상기 제1 노멀 오프셋 정보 및 상기 제1 캐시 오프셋 정보를 기초로 상기 노멀 영역에 저장된 제1 쓰기 데이터를 상기 캐시 영역으로 복사하는 단계; 및
    상기 스토리지 장치에 의해, 상기 호스트 장치로부터 상기 제1 쓰기 데이터에 대한 수신을 생략하고, 상기 제1 쓰기 커맨드에 대한 응답을 상기 호스트 장치로 전달하는 단계를 포함하는 스토리지 시스템의 동작 방법.
  2. 제1항에 있어서,
    상기 스토리지 장치에 의해, 상기 논리 어드레스, 상기 제1 노멀 오프셋 정보 및 상기 제1 캐시 오프셋 정보를 매핑하는 단계를 포함하는 스토리지 시스템의 동작 방법.
  3. 제2항에 있어서,
    상기 호스트 장치에 의해, 제2 쓰기 커맨드 및 상기 논리 어드레스를 상기 스토리지 장치에 제공하는 단계;
    상기 스토리지 장치에 의해, 상기 캐시 영역의 제2 캐시 오프셋 정보를 상기 호스트 장치로 전달하는 단계;
    상기 호스트 장치에 의해, 상기 제2 캐시 오프셋 정보를 기초로 상기 노멀 영역에 저장된 제2 쓰기 데이터를 상기 캐시 영역으로 복사하는 단계;
    상기 스토리지 장치에 의해, 상기 논리 어드레스 및 상기 제2 캐시 오프셋 정보를 매핑하는 단계; 및
    상기 스토리지 장치에 의해, 상기 호스트 장치로부터 상기 제2 쓰기 데이터에 대한 수신을 생략하고, 상기 제2 쓰기 커맨드에 대한 응답을 상기 호스트 장치로 전송하는 단계를 포함하는 스토리지 시스템의 동작 방법.
  4. 제1항에 있어서,
    상기 스토리지 장치가 상기 응답을 상기 호스트 장치에 전송한 후, 상기 호스트 장치에 의해 상기 캐시 영역에 저장된 상기 제1 쓰기 데이터를 상기 스토리지 장치에 전송하는 단계를 포함하는 스토리지 시스템의 동작 방법.
  5. 제1항에 있어서,
    상기 스토리지 장치에 의해, 상기 호스트 장치에 상기 제1 쓰기 데이터를 요청하는 단계; 및
    상기 호스트 장치에 의해, 상기 스토리지 장치로 상기 제1 쓰기 데이터를 전달하는 단계를 포함하는 스토리지 시스템의 동작 방법.
  6. 제1항에 있어서,
    상기 노멀 영역에 저장된 제1 쓰기 데이터를 상기 캐시 영역으로 복사하는 단계는,
    상기 호스트 장치에 의해, 상기 노멀 영역의 상기 제1 쓰기 데이터를 프로그램 단위를 기초로 병합하여 상기 캐시 영역에 복사하는 단계를 포함하는 것을 특징으로 하는 스토리지 시스템의 동작 방법.
  7. 제1항에 있어서,
    상기 노멀 영역에 저장된 제1 쓰기 데이터를 상기 캐시 영역으로 복사하는 단계는,
    상기 호스트 장치에 의해, 상기 노멀 영역의 상기 제1 쓰기 데이터를 스트림 식별자를 기초로 병합하여 상기 캐시 영역에 복사하는 단계를 포함하는 것을 특징으로 하는 스토리지 시스템의 동작 방법.
  8. 제1항에 있어서,
    상기 호스트 장치에 의해, 상기 논리 어드레스 및 리드 커맨드를 상기 스토리지 장치에 제공하는 단계;
    상기 스토리지 장치에 의해, 제1 상기 캐시 오프셋 정보를 상기 호스트 장치에 제공하는 단계;
    상기 호스트 장치에 의해, 상기 제1 캐시 오프셋 정보를 기초로 상기 캐시 영역에 저장된 상기 제1 쓰기 데이터를 상기 노멀 영역으로 복사하는 단계; 및
    상기 스토리지 장치에 의해, 상기 스토리지 장치에 포함된 메모리 셀 어레이로부터 데이터를 리드하는 동작을 생략하고 상기 리드 커맨드에 대한 응답을 상기 호스트 장치에 제공하는 단계를 포함하는 스토리지 시스템의 동작 방법.
  9. 제8항에 있어서,
    상기 스토리지 장치에 의해, 상기 캐시 영역에서 복사될 상기 제1 쓰기 데이터의 크기를 나타내는 제1 길이 정보를 상기 호스트 장치로 전달하는 단계를 더 포함하고,
    상기 캐시 영역에 저장된 상기 제1 쓰기 데이터를 상기 노멀 영역으로 복사하는 단계는,
    상기 호스트 장치에 의해, 제1 캐시 오프셋 정보 및 상기 제1 길이 정보를 기초로 상기 제1 쓰기 데이터를 상기 캐시 영역에서 상기 노멀 영역으로 복사하는 단계를 포함하는 스토리지 시스템의 동작 방법.
  10. 제1항에 있어서,
    상기 스토리지 장치에 의해, 상기 노멀 영역에서 복사될 상기 제1 쓰기 데이터의 크기를 나타내는 제2 길이 정보를 상기 호스트 장치로 전달하는 단계를 더 포함하고,
    상기 노멀 영역에 저장된 제1 쓰기 데이터를 상기 캐시 영역으로 복사하는 단계는,
    상기 호스트 장치에 의해, 제1 노멀 오프셋 정보 및 상기 제2 길이 정보를 기초로 상기 제1 쓰기 데이터를 상기 노멀 영역에서 상기 캐시 영역으로 복사하는 단계를 포함하는 스토리지 시스템의 동작 방법.
  11. 노멀 영역 및 캐시 영역을 포함하는 메모리를 포함하는 호스트 장치; 및
    메모리 셀 어레이를 포함하고, 상기 호스트 장치로부터 쓰기 커맨드 및 논리 어드레스를 수신하고, 상기 캐시 영역에 대한 제1 어드레스 정보를 상기 호스트 장치에 전달하도록 구성되는 스토리지 장치를 포함하고,
    상기 호스트 장치는,
    상기 제1 어드레스 정보를 기초로, 상기 노멀 영역에 저장된 쓰기 데이터를 상기 캐시 영역으로 복사하고,
    상기 스토리지 장치는,
    상기 호스트 장치로부터 상기 쓰기 데이터를 수신하기 전에 상기 쓰기 커맨드에 대한 응답을 상기 호스트 장치에 전달하는, 스토리지 시스템.
  12. 제11항에 있어서,
    상기 스토리지 장치는,
    상기 노멀 영역에 대한 제2 어드레스 정보를 상기 호스트 장치에 전달하고,
    상기 호스트 장치는,
    상기 제2 어드레스 정보가 가리키는 위치에 저장된 상기 쓰기 데이터를, 상기 제1 어드레스 정보가 가리키는 위치로 복사하는, 스토리지 시스템.
  13. 제11항에 있어서,
    상기 스토리지 장치는,
    상기 호스트 장치로부터 상기 논리 어드레스 및 리드 커맨드를 수신하고, 상기 제1 어드레스 정보를 상기 호스트 장치에 전달하고, 상기 메모리 셀 어레이로부터 데이터르 리드하는 동작을 생략하고 상기 호스트 장치에 상기 리드 커맨드에 대응하는 응답을 전달하도록 구성되고,
    상기 호스트 장치는,
    상기 제1 어드레스 정보를 기초로 상기 쓰기 데이터를 상기 캐시 영역으로부터 상기 노멀 영역으로 복사하는, 스토리지 시스템.
  14. 제11항에 있어서,
    상기 스토리지 장치는,
    상기 논리 어드레스와 상기 제1 어드레스 정보 간의 매핑을 나타내는 테이블을 저장하는, 스토리지 시스템.
  15. 제11항에 있어서,
    상기 호스트 장치는,
    프로그램 단위를 기초로 상기 노멀 영역에 저장된 상기 쓰기 데이터를 병합하여 상기 캐시 영역에 복사하도록 구성되는, 스토리지 시스템.
  16. 제11항에 있어서,
    상기 호스트 장치는,
    스트림 식별자를 기초로 상기 노멀 영역에 저아된 상기 쓰기 데이터를 병합하여 상기 캐시 영역에 복사하도록 구성되는, 스토리지 시스템.
  17. 제11항에 있어서,
    상기 스토리지 장치는, 상기 응답을 상기 호스트 장치에 전달한 이후, 상기 호스트에 상기 쓰기 데이터를 요청하고,
    상기 호스트 장치는 상기 요청에 응답하여 상기 캐시 영역에 저장된 상기 쓰기 데이터를 상기 스토리지 장치에 전달하도록 구성되는, 스토리지 시스템.
  18. 호스트 장치와 스토리지 장치를 포함하는 스토리지 시스템의 동작 방법에 있어서,
    상기 호스트 장치에 의해, 제1 리드 커맨드 및 논리 어드레스를 상기 스토리지 장치로 전달하는 단계;
    상기 스토리지 장치에 의해, 상기 호스트 장치의 호스트 메모리에 포함된 노멀 영역의 제1 노멀 오프셋 정보 및 캐시 영역의 제1 캐시 오프셋 정보 및 리드 데이터를 상기 호스트 장치로 전달하는 단계;
    상기 호스트 장치에 의해, 상기 제1 노멀 오프셋 정보 및 상기 제1 캐시 오프셋 정보를 기초로 상기 리드 데이터를 상기 노멀 영역 및 상기 캐시 영역에 저장하는 단계;
    상기 호스트 장치에 의해, 제2 리드 커맨드 및 상기 논리 어드레스를 상기 스토리지 장치로 전달하는 단계;
    상기 스토리지 장치에 의해, 상기 제1 캐시 오프셋 정보를 상기 호스트 장치로 전달하는 단계; 및
    상기 호스트 장치에 의해, 상기 제1 캐시 오프셋 정보를 기초로 상기 캐시 영역에 저장된 상기 리드 데이터를 상기 노멀 영역으로 복사하는 단계를 포함하는 스토리지 시스템의 동작 방법.
  19. 제18항에 있어서,
    상기 호스트 장치가 상기 리드 데이터를 상기 노멀 영역 및 상기 캐시 영역에 저장한 이후, 상기 스토리지 장치에 의해, 상기 논리 어드레스 및 상기 제1 캐시 오프셋 정보에 대한 매핑 관계를 업데이트하는 단계를 더 포함하는 스토리지 시스템의 동작 방법.
  20. 제18항에 있어서,
    상기 스토리지 장치에 의해, 상기 제2 리드 커맨드에 대응하는 데이터를 상기 호스트에 전달하는 동작을 생략하고 상기 제2 리드 커맨드에 대응하는 응답을 상기 호스트 장치에 전달하는 단계를 더 포함하는 스토리지 시스템의 동작 방법.
KR1020220119541A 2022-09-21 2022-09-21 스토리지 시스템 및 스토리지 시스템의 동작 방법 KR20240040507A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020220119541A KR20240040507A (ko) 2022-09-21 2022-09-21 스토리지 시스템 및 스토리지 시스템의 동작 방법
US18/198,511 US20240095166A1 (en) 2022-09-21 2023-05-17 Storage system and method providing cache area in memory included in host device
CN202310664542.8A CN117742573A (zh) 2022-09-21 2023-06-06 存储***和操作存储***的方法
EP23180001.2A EP4343557A1 (en) 2022-09-21 2023-06-19 Storage system and method providing cache area in memory included in host device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220119541A KR20240040507A (ko) 2022-09-21 2022-09-21 스토리지 시스템 및 스토리지 시스템의 동작 방법

Publications (1)

Publication Number Publication Date
KR20240040507A true KR20240040507A (ko) 2024-03-28

Family

ID=86899342

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220119541A KR20240040507A (ko) 2022-09-21 2022-09-21 스토리지 시스템 및 스토리지 시스템의 동작 방법

Country Status (4)

Country Link
US (1) US20240095166A1 (ko)
EP (1) EP4343557A1 (ko)
KR (1) KR20240040507A (ko)
CN (1) CN117742573A (ko)

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101226685B1 (ko) 2007-11-08 2013-01-25 삼성전자주식회사 수직형 반도체 소자 및 그 제조 방법.
US8776158B1 (en) * 2009-09-30 2014-07-08 Emc Corporation Asynchronous shifting windows caching for forward and backward video streaming
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
KR101682666B1 (ko) 2010-08-11 2016-12-07 삼성전자주식회사 비휘발성 메모리 장치, 그것의 채널 부스팅 방법, 그것의 프로그램 방법 및 그것을 포함하는 메모리 시스템
US9104334B2 (en) * 2013-08-20 2015-08-11 Avago Technologies General Ip (Singapore) Pte. Ltd Performance improvements in input/output operations between a host system and an adapter-coupled cache
US9563382B2 (en) * 2014-06-05 2017-02-07 Sandisk Technologies Llc Methods, systems, and computer readable media for providing flexible host memory buffer
US9507722B2 (en) * 2014-06-05 2016-11-29 Sandisk Technologies Llc Methods, systems, and computer readable media for solid state drive caching across a host bus
US11115490B2 (en) * 2018-07-31 2021-09-07 EMC IP Holding Company LLC Host based read cache for san supporting NVMEF with E2E validation
US11347428B2 (en) * 2019-01-16 2022-05-31 EMC IP Holding Company LLC Solid state tier optimization using a content addressable caching layer
US11010059B2 (en) * 2019-07-30 2021-05-18 EMC IP Holding Company LLC Techniques for obtaining metadata and user data
KR20220060155A (ko) * 2020-11-04 2022-05-11 삼성전자주식회사 스토리지 서버, 상기 스토리지의 서버 구동 방법 및 상기 스토리지 서버를 포함하는 데이터 센터

Also Published As

Publication number Publication date
CN117742573A (zh) 2024-03-22
US20240095166A1 (en) 2024-03-21
EP4343557A1 (en) 2024-03-27

Similar Documents

Publication Publication Date Title
US11941249B2 (en) Memory device, host device and memory system comprising the memory device and host device
US12013797B2 (en) Memory controller, memory system and operating method of the memory system using a channel arbitration circuit
KR20220087231A (ko) 저전력 소모를 위하여 클럭 스위칭하는 장치, 메모리 콘트롤러, 메모리 장치, 메모리 시스템 및 방법
EP4033368B1 (en) Storage device for transmitting data having an embedded command in both directions of a shared channel, and a method of operating the storage device
US11593031B2 (en) Operating method of host device and storage device using credit
US11726677B2 (en) Storage device configured to change power state based on reference clock from host device and method for operating the same
US20240062790A1 (en) Memory device, memory system, and operating method of memory system
EP4343557A1 (en) Storage system and method providing cache area in memory included in host device
US11789652B2 (en) Storage device and storage system including the same
US20220187997A1 (en) System, device, and method for writing data to protected region
KR20160144547A (ko) 스토리지 장치 및 스토리지 장치의 동작 방법
US11599284B2 (en) Storage controller, storage system and operating methods thereof
US20220113895A1 (en) Memory system, electronic device including the same, and memory controller
US20240143183A1 (en) Storage device operated by zone and data processing system including the same
EP3848787B1 (en) Storage device configured to change power state based on reference clock from host device
US20230195333A1 (en) Storage device and operation method of electronic system
EP4191418A1 (en) Memory controller
CN116185277A (zh) 支持直接缓存访问的计算***和写入输出数据的方法
KR20240087394A (ko) 저장 장치 및 이를 포함하는 전자 장치
KR20240058680A (ko) 저장 장치 및 이를 포함하는 전자 장치
KR20220035814A (ko) 메모리 장치, 호스트 장치의 구동 방법 및 메모리 시스템
KR20230080282A (ko) 직접 캐시 액세스를 지원하는 컴퓨팅 시스템, 및 출력 데이터 라이트 방법
KR20230106920A (ko) 스토리지 시스템 및 이를 포함하는 컴퓨팅 시스템
KR20220037184A (ko) 스토리지 장치, 스토리지 시스템 및 스토리지 시스템의 동작 방법