KR20210121527A - 데이터 저장 장치 및 그것의 동작 방법 - Google Patents

데이터 저장 장치 및 그것의 동작 방법 Download PDF

Info

Publication number
KR20210121527A
KR20210121527A KR1020200038339A KR20200038339A KR20210121527A KR 20210121527 A KR20210121527 A KR 20210121527A KR 1020200038339 A KR1020200038339 A KR 1020200038339A KR 20200038339 A KR20200038339 A KR 20200038339A KR 20210121527 A KR20210121527 A KR 20210121527A
Authority
KR
South Korea
Prior art keywords
zone
data
ratio
storage device
data storage
Prior art date
Application number
KR1020200038339A
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 KR1020200038339A priority Critical patent/KR20210121527A/ko
Priority to US16/941,327 priority patent/US11210012B2/en
Priority to CN202010820270.2A priority patent/CN113467707B/zh
Publication of KR20210121527A publication Critical patent/KR20210121527A/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/0644Management of space entities, e.g. partitions, extents, pools
    • 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
    • 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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • G06F3/0649Lifecycle management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays

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 존 및 제2 존을 포함하고, 제1 존과 제2 존의 비율이 동적으로 조절되는 제1 레벨 메모리; 제3 존 및 제4 존을 포함하고, 상기 제1 존과 상기 제2 존의 비율에 따라 제3 존 및 제4 존의 비율이 동적으로 조절되는 제2 레벨 메모리; 및 제1 존 내지 제4 존 간의 데이터 이동을 제어하고, 데이터 이동에 따른 카운팅값을 기준치와 비교하여 비교 결과에 따라 제1 존과 제2 존의 비율 및 제3 존과 제4 존의 비율을 조절하는 컨트롤러를 포함할 수 있다.

Description

데이터 저장 장치 및 그것의 동작 방법{Data storage device and operating method thereof}
본 발명은 반도체 장치에 관한 것으로, 보다 구체적으로는 데이터 저장 장치 및 그것의 동작 방법에 관한 것이다.
일반적으로 신규로 메모리에 저장되는 데이터는 호스트 장치로부터의 리드 요청이 잦을 것으로 예상되어 핫 데이터(hot data)로 간주될 수 있다.
이와 관련하여, 신규 데이터는 핫 데이터로 설정되어 핫 레벨의 메모리에 상대적으로 오래 저장되어야 하기 때문에, 콜드 레벨 메모리로 데이터를 이동 저장할 때 신규 데이터가 아닌 다른 데이터를 우선적으로 이동할 수 있다. 만약, 신규 데이터가 콜드 데이터인 경우, 핫 레벨 메모리는 잦은 리드 요청이 발생되는 데이터 보다는 콜드 데이터인 신규 데이터를 불 필요하게 저장하는 현상이 발생할 수 있다.
한편, 콜드 레벨의 메모리에 데이터가 무작위로 분포되어 있기 때문에, 리드 요청에 따라 콜드 레벨 메모리에 저장된 데이터를 핫 레벨 메모리로 재저장해야 할 때 성능면에서 양호한 히트 적중률을 유지할 수 없는 경우가 종종 발생하고 있다.
본 발명의 실시 예는 호스트 장치로부터 리드 요청된 데이터에 대한 히트 적중률(hit ratio)을 향상시키기 위한 데이터 저장 장치 및 그것의 동작 방법을 제공하기 위한 것이다.
본 발명의 실시 예에 따른 데이터 저장 장치는, 신규 데이터를 저장하는 제1 존 및 재저장 데이터를 저장하는 제2 존을 포함하고, 상기 제1 존과 상기 제2 존의 비율이 동적으로 조절되는 제1 레벨 메모리; 상기 제1 존으로부터 전송되는 데이터를 저장하는 제3 존 및 상기 제3 존으로부터 전달되는 상기 데이터를 저장하는 제4 존을 포함하고, 상기 제1 존과 상기 제2 존의 비율에 따라 상기 제3 존 및 상기 제4 존의 비율이 동적으로 조절되는 제2 레벨 메모리; 및 상기 제1 존, 상기 제2 존, 상기 제3 존 및 상기 제4 존 간의 데이터 이동을 제어하고, 상기 데이터 이동에 따른 카운팅값을 기준치와 비교하여 비교 결과에 따라 상기 제1 존과 상기 제2 존의 비율 및 상기 제3 존과 상기 제4 존의 비율을 조절하는 컨트롤러를 포함할 수 있다.
본 발명의 실시 예에 따른 데이터 저장 장치의 동작방법은, 제1 존 및 제2 존을 포함하는 제1 레벨 메모리 및 제3 존 및 제4 존을 포함하는 제2 레벨 메모리에서, 데이터 이동 기준에 따라 상기 제1 존, 상기 제2 존, 상기 제3 존 및 상기 제4 존 간에 데이터를 이동하는 단계; 상기 제1 존, 상기 제2 존 및 상기 제3 존 간의 데이터 이동을 카운팅하여 카운팅값을 획득하는 단계; 상기 카운팅값과 기준치를 비교하고 비교 결과에 따라 상기 제1 존과 상기 제2 존의 비율을 동적으로 조절하는 단계; 및 상기 제1 존과 상기 제2 존의 비율에 따라 상기 제3 존과 상기 제4 존의 비율을 동적으로 조절하는 단계를 포함하고, 상기 제1 존은 신규 데이터를 저장하고 상기 제2 존은 재저장 데이터를 저장하며 상기 제3 존은 상기 제1 존으로부터 전송되는 데이터를 저장하고 상기 제4 존은 상기 제3 존으로부터 전달되는 상기 데이터를 저장할 수 있다.
본 실시 예들에 따르면, 핫 레벨 메모리에 저장된 신규 데이터를 신속하게 콜드 레벨 메모리로 이동 저장시켜 핫 레벨 메모리에 저장된 재저장 데이터에 대한 히트 적중률(hit ratio)을 향상시킬 수 있다는 효과를 기대할 수 있다.
또한, 본 실시 예들은 콜드 레벨 메모리의 데이터를 리드 요청될 가능성에 따라 구분하여 저장하기 때문에, 데이터를 체계적으로 관리할 수 있는 동시에 리드 요청된 데이터 주변의 데이터를 프리페치 할 수 있어, 리드 성능을 향상시킬 수 있다는 것이다.
도 1은 본 발명의 실시 예에 따른 데이터 저장 장치의 구성을 나타내는 도면이다.
도 2는 본 발명의 실시 예에 따른 멀티 레벨 메모리 구조를 나타내는 도면이다.
도 3은 본 발명의 실시 예에 따른 신규 데이터가 제1 레벨 메모리에 저장되는 예를 설명하기 위한 도면이다.
도 4는 본 발명의 실시 예에 따른 제1 존에 저장된 신규 데이터를 제2 레벨 메모리로 이동 저장하는 예를 설명하기 위한 도면이다.
도 5는 본 발명의 실시 예에 따른 제2 존에 저장된 데이터를 제1 존으로 이동 저장하는 예를 설명하기 위한 도면이다.
도 6은 본 발명의 실시 예에 따른 제3 존과 상기 제4 존 간에 데이터를 이동 저장하는 예를 설명하기 위한 도면이다.
도 7은 본 발명의 실시 예에 따른 제4 존에 저장된 데이터를 제2 존에 재저장하는 일 예를 설명하기 위한 도면이다.
도 8은 본 발명의 실시 예에 따른 제4 존에 저장된 데이터를 제2 존에 재저장하는 다른 예를 설명하기 위한 도면이다.
도 9는 본 발명의 실시 예에 따른 데이터 저장 장치의 동작방법을 설명하기 위한 흐름도이다.
이하, 첨부한 도면에 의거하여 본 발명의 바람직한 실시 예를 설명하도록 한다.
도 1은 본 발명의 실시 예에 따른 데이터 저장 장치의 구성을 나타내는 도면이고, 도 2는 본 발명의 실시 예에 따른 멀티 레벨 메모리 구조를 나타내는 도면이다.
이하에서는, 본 발명의 실시 예에 따른 신규 데이터가 제1 레벨 메모리에 저장되는 예를 설명하기 위한 도 3, 본 발명의 실시 예에 따른 제1 존에 저장된 신규 데이터를 제2 레벨 메모리로 이동 저장하는 예를 설명하기 위한 도 4, 본 발명의 실시 예에 따른 제2 존에 저장된 데이터를 제1 존으로 이동 저장하는 예를 설명하기 위한 도 5 및 본 발명의 실시 예에 따른 제3 존과 상기 제4 존 간에 데이터를 이동 저장하는 예를 설명하기 위한 도 6을 참조하여 설명하기로 한다.
또한, 본 발명의 실시 예에 따른 제4 존에 저장된 데이터를 제2 존에 재저장하는 일 예를 설명하기 위한 도 7 및 본 발명의 실시 예에 따른 제4 존에 저장된 데이터를 제2 존에 재저장하는 다른 예를 설명하기 위한 도 8을 참조하여 설명하기로 한다.
도 1 및 도 2를 참고하면, 데이터 저장 장치(100)는 제1 레벨 메모리(110), 제2 레벨 메모리(130) 및 컨트롤러(150)를 포함할 수 있다.
제1 레벨 메모리(110)는 신규 데이터를 저장하는 제1 존(111) 및 재저장 데이터를 저장하는 제2 존(113)을 포함할 수 있다. 이때, 상기 제1 존(111)과 상기 제2 존(113)의 비율은 동적으로 조절될 수 있다. 본 실시예에서는 신규 데이터가 콜드 데이터인 경우를 예로 들어 설명하기로 한다. 상기 제1 존(111)과 제2 존(113)의 최초 비율은 5 : 5일 수 있다.
도 2를 참고하면, 상기 제1 레벨 메모리(110)는 핫 레벨(Hot Level) 메모리로 호스트 장치(10)로부터의 라이트 요청에 따라 신규 데이터를 저장하거나, 또는 리드 요청에 따라 해당 데이터를 리드하여 전달해야 하기 때문에, 제2 레벨 메모리(130)에 비해 상대적으로 자주 사용되는 데이터를 저장한 메모리일 수 있다.
본 실시예에서는 제1 존(111)이 신규 데이터를 저장하는 영역으로, 저장되는 신규 데이터를 오래 유지하기 보다는 신속하게 제2 레벨 메모리(130)로 이동시키기 위한 메모리를 의미할 수 있다. 이를 위해, 제1 존(111)과 제2 존(113)의 비율을 동적으로 조절하여 제1 존(111)의 크기가 변경되도록 하는 것이다.
제1 존(111)의 크기가 작아질 경우, 신규 데이터의 저장으로 인해 제1 존(111)이 상대적으로 빠르게 풀(full) 상태로 되고, 컨트롤러(150)의 제어에 따라 제1 존(111)은 신규 데이터를 제3 존(131)으로 이빅션(eviction)하는 것이다. 즉, 제1 존(111)의 비율이 현재 사이즈 보다 축소되면 제1 존(111)이 신규 데이터를 저장하는 영역이 축소되는 것이기 때문에, 제1 존(111)에 저장된 신규 데이터를 보다 신속하게 제2 레벨 메모리(130)로 이동시킬 수 있는 것이다.
제2 존(113)은 제1 존(111)과 비교하여 호스트 장치(10)로부터 리드 요청이 상대적으로 많은 데이터를 저장할 수 있다. 즉, 제2 존(113)은 히트 존(hit zone)으로서, 데이터를 최대한 유지하여 호스트 장치(10)로부터의 리드 요청에 대한 히트 적중률(hit ratio)를 높일 수 있도록 하는 존으로 정의할 수 있는 것이다.
상술한 재저장 데이터는 상기 신규 데이터를 제외한 제2 레벨 메모리(130)로부터 리드하여 저장된 데이터를 의미하는 것으로 정의하기로 한다. 이때, 제2 존(113)으로 이동되는 재저장 데이터는 제2 레벨 메모리(130)에도 여전히 저장됨은 당연하다 할 것이다.
상술한 제1 레벨 메모리(110)는 제2 레벨 메모리(130)에 비해 동작 속도가 빠른 메모리로, 예를 들어, 디램(DRAM)으로 구현될 수 있으며, 이에 한정되지 않는다.
제2 레벨 메모리(130)는 제1 존(111)으로부터 전송되는 데이터를 저장하는 제3 존(131) 및 제3 존(131)으로부터 전달되는 상기 데이터를 저장하는 제4 존(133)을 포함할 수 있다. 이때, 상기 제1 존(111)과 상기 제2 존(113)의 비율에 따라 제3 존(131) 및 제4 존(133)의 비율이 동적으로 조절될 수 있다. 상기 제3 존(131)과 제4 존(133)의 최초 비율은 5 : 5일 수 있다.
상기 제4 존(133)은 제3 존(131)과 비교하여 제2 존(113)으로의 재저장 요청이 상대적으로 많은 데이터를 저장할 수 있다.
상술한 제2 레벨 메모리(130)는 제1 레벨 메모리(110)에 비해 동작 속도가 느린 메모리로, 예를 들어, 낸드 플래시(NAND Flash)로 구현될 수 있으며, 이에 한정되지 않는다.
즉, 상술한 제1 레벨 메모리(110)와 제2 레벨 메모리(130)는 운용자의 필요에 따라 제1 레벨 메모리(110)가 제2 레벨 메모리(130)에 비해 동작 속도가 빠르다는 가정 하에 다양한 종류의 메모리를 모두 적용할 수 있는 것이다.
도 1을 참고하면, 제1 레벨 메모리(110)는 제1 존(111)과 제2 존(113)을 구분하기 위한 제1 펜스(fence)(115)를 포함할 수 있다.
또한, 제2 레벨 메모리(130)는 제3 존(131)과 제4 존(133)을 구분하기 위한 제4 펜스(135)를 포함할 수 있다.
컨트롤러(150)는 제1 존(111), 제2 존(113), 제3 존(131) 및 제4 존(133) 간의 데이터 이동을 제어하고, 상기 데이터 이동에 따른 카운팅값을 기준치와 비교하여 비교 결과에 따라 제1 존(111)과 제2 존(113)의 비율 및 상기 제3 존(131)과 상기 제4 존(133)의 비율을 조절할 수 있다.
도 3을 참고하면, 컨트롤러(150)는 호스트 장치(10)로부터 신규 데이터의 라이트 요청이 전송됨에 따라, 컨트롤러(150)의 제어에 따라 제1 존(111)에 신규 데이터를 저장할 수 있다.
이때, 컨트롤러(150)는 제1 존(111)에 신규 데이터를 저장하고(1) 카운터를 증가(count ++) 시킬 수 있다.
도 4를 참고하면, 컨트롤러(150)는 제1 존(111)에 데이터 저장 가능 공간의 크기가 임계값 이하인 경우, 제1 존(111)에 저장된 신규 데이터를 제3 존(131)으로 이동 저장할 수 있다. 이때, 제1 존(111)에 데이터 저장 가능 공간의 크기가 임계값 이하인 것은 제1 존(111)에 데이터가 풀(full) 상태로 저장되어 신규 데이터를 저장할 수 없는 상태이거나, 또는 제1 존(111)에 신규 데이터를 저장할 수 있는 여유공간이 미리 설정된 여유공간 기준치 이하인 경우를 의미할 수 있다.
여기에서, 컨트롤러(150)는 제1 존(111)으로부터 제3 존(131)으로 신규 데이터를 이동 저장하고(2) 카운터를 감소(count --) 시킬 수 있다.
이때, 컨트롤러(150)는 제1 존(111)에 저장된 신규 데이터를 제3 존(131)으로 이동 저장할 때, 가장 리드 요청이 되지 않은 데이터를 제3 존(131)으로 이동 저장할 수 있다. 즉, 컨트롤러(150)는 해당 존에서 가장 사용되지 않은 데이터를 교체하는 LFU(least Frequently used) 규칙을 적용할 수 있다.
도 5를 참고하면, 컨트롤러(150)는 제2 존(113)에 데이터 저장 가능 공간의 크기가 임계값 이하인 경우, 제2 존(113)에 저장된 데이터를 제1 존(111)으로 이동 저장할 수 있다. 이때, 제2 존(113)에 데이터 저장 가능 공간의 크기가 임계값 이하인 것은 제2 존(113)에 데이터가 풀(full) 상태로 저장되어 재저장 데이터를 저장할 수 없는 상태이거나, 또는 제2 존(113)에 재저장 데이터를 저장할 수 있는 여유공간이 미리 설정된 여유공간 기준치 미만인 경우를 의미할 수 있다.
여기에서, 컨트롤러(150)는 제2 존(113)으로부터 제1 존(111)으로 데이터를 이동 저장하고(3) 카운터를 증가(count ++) 시킬 수 있다.
도 6을 참고하면, 컨트롤러(150)는 제3 존(131)에 데이터 저장 가능 공간의 크기가 임계값 이하인 경우, 제3 존(131)에 저장된 데이터를 제4 존(133)으로 이동 저장(4)할 수 있다. 이때, 제3 존(131)에 데이터 저장 가능 공간의 크기가 임계값 이하인 것은 제3 존(131)에 데이터가 풀(full) 상태로 저장되어 데이터를 저장할 수 없는 상태이거나, 또는 제3 존(131)에 데이터를 저장할 수 있는 여유공간이 미리 설정된 여유공간 기준치 이하인 경우를 의미할 수 있다.
도 7을 참고하면, 컨트롤러(150)는 제2 존(113)에 리드 될 데이터가 존재하지 않는 경우, 제4 존(133)으로부터 해당 데이터를 리드하여 제2 존(113)에 재저장할 수 있다(5-1). 이때, 컨트롤러(150)는 제4 존(133)에 리드 요청된 데이터가 저장되어 있지 않은 경우, 제3 존(131)으로 리드 요청하여 제2 존(113)에 재저장할 수 있다.
한편, 도 8을 참고하면, 컨트롤러(150)는 제2 존(113)에 데이터를 재저장할 때, 재저장되는 데이터 주변의 데이터를 제2 존(113)에 프리페치(prefetch)하여 미리 저장할 수 있다(5-2).
컨트롤러(150)는 제1 존(111)에 신규 데이터가 저장되는 제1 횟수와 제1 존(111)으로부터 제3 존(131)으로 데이터가 이동 저장되는 제2 횟수와 제2 존(113)으로부터 제1 존(111)으로 데이터가 이동되는 제3 횟수를 카운팅한 카운팅값을 기준치와 비교하여 제1 펜스(115)를 이동시켜 제1 존(111)과 제2 존(113) 간의 비율을 조절할 수 있다.
구체적으로, 컨트롤러(150)는 제1 횟수에서 제2 횟수를 감산하여 획득한 제4 횟수에 제3 횟수를 가산하여 획득한 제5 횟수를 기준치와 비교하여 제1 펜스(115)를 이동시킬 수 있다.
컨트롤러(150)는 제5 횟수가 기준치 보다 작거나 같으면 제1 존(111)과 제2 존(113) 중 제1 존(111)의 크기가 현재 보다 커지도록 제1 펜스(115)를 이동시킬 수 있다(도 7의 R1 방향으로 이동).
컨트롤러(150)는 제5 횟수가 기준치 보다 크면 제1 존(111)과 제2 존(113) 중 제2 존(113)의 크기가 현재 보다 커지도록 제1 펜스(115)를 이동시킬 수 있다(도 7의 L1 방향으로 이동).
컨트롤러(150)는 제1 펜스(115)의 이동 정보를 기초로 제2 펜스(135)를 이동(도 7의 R2 방향 또는 L2 방향으로 이동)시켜 제3 존(131)과 제4 존(133) 간의 비율을 조절하되, 제1 존(111)과 제2 존(113) 간의 조절된 비율에 대응되는 비율로 조절할 수 있다. 이때, 제1 펜스의 이동 정보는 제1 펜스가 이동한 방향 및 비율을 포함할 수 있다.
컨트롤러(150)는 제3 존(131)과 상기 제4 존(133) 간의 비율을 조절할 때, 제3 존(131)과 제4 존(133) 각각에 저장된 데이터를 서로 이동시키지 않을 수 있다. 즉, 제3 존(131)과 상기 제4 존(133) 간의 비율을 조절 시, 제2 펜스(135)만 이동시킨다는 것이다.
도 9는 본 발명의 실시 예에 따른 데이터 저장 장치의 동작방법을 설명하기 위한 흐름도이다.
먼저, 데이터 저장 장치(100)는 제1 존(111) 및 제2 존(113)을 포함하는 제1 레벨 메모리(110) 및 제3 존(131) 및 제4 존(133)을 포함하는 제2 레벨 메모리(130)에서, 데이터 이동 기준에 따라 제1 존(111), 제2 존(113), 제3 존(131) 및 제4 존(133) 간에 데이터를 이동할 수 있다(S101). 상기 데이터 이동 기준은 현재 존에 저장된 데이터를 다른 존으로 이동하는 기준을 의미하는 것으로서, 본 실시 예에서는 현재 존에 데이터 저장 가능 공간의 크기가 임계값 이하인 것을 의미할 수 있다. 이때, 현재 존에 데이터 저장 가능 공간의 크기가 임계값 이하인 것은 현재 존에 데이터가 풀(full) 상태로 저장되어 신규 데이터를 저장할 수 없는 상태이거나, 또는 현재 존에 데이터를 저장할 수 있는 여유공간이 미리 설정된 여유공간 기준치 이하인 경우를 의미할 수 있다.
이때, 제1 존(111)은 신규 데이터를 저장하고, 제2 존(113)은 재저장 데이터를 저장하며, 상기 제3 존(131)은 제1 존(111)으로부터 전송되는 데이터를 저장하고, 상기 제4 존(133)은 제3 존(131)으로부터 전달되는 데이터를 저장할 수 있다.
데이터 발신측 존에 데이터 저장 가능 공간의 크기가 임계값 이하인 경우, 데이터 저장 장치(100)는 제1 존(111)으로부터 제3 존(131)으로 데이터를 이동하거나, 또는 제2 존(113)으로부터 제1 존(111)으로 데이터를 이동하거나, 또는 제3 존(131)으로부터 제4 존(133)으로 데이터를 이동할 수 있다.
한편, 호스트 장치(10)로부터 전송되는 리드 요청과 관련하여, 제2 존(113)에 리드 될 데이터가 존재하지 않는 경우, 데이터 저장 장치(100)는 제4 존(133)으로부터 해당 데이터를 리드하여 제2 존(113)에 재저장할 수 있다.
만약, 제4 존(133)에도 리드 요청된 데이터가 저장되어 있지 않은 경우, 데이터 저장 장치(100)는 제3 존(131)으로부터 데이터를 리드할 수 있다. 이때, 제3 존(131)에 저장된 리드 요청된 데이터는 제4 존(133)으로 이동 저장되고, 제4 존(133)으로부터 제2 존(113)으로 리드될 수 있다.
상기 제2 존(113)에 데이터를 재저장할 때, 데이터 저장 장치(100)는 재저장되는 데이터 주변의 데이터를 제2 존(113)에 프리페치(prefetch)하여 미리 저장하도록 할 수 있다.
상술한 제1 레벨 메모리(110)는 제1 존(111)과 제2 존(113)을 구분하기 위한 제1 펜스(fence)(115)를 포함할 수 있다. 제2 레벨 메모리(130)는 제3 존(131)과 제4 존(133)을 구분하기 위한 제4 펜스(135)를 포함할 수 있다.
다음, 데이터 저장 장치(100)는 제1 존(111), 제2 존(113) 및 제3 존(131) 간의 데이터 이동을 카운팅하여 카운팅값을 획득할 수 있다(S103).
데이터 저장 장치(100)는 제1 존(111)에 신규 데이터가 저장되는 제1 횟수와 제1 존(111)으로부터 제3 존(131)으로 데이터가 이동 저장되는 제2 횟수와 제2 존(113)으로부터 제1 존(111)으로 데이터가 이동되는 제3 횟수를 카운팅하여 카운팅값을 획득할 수 있다.
구체적으로, 데이터 저장 장치(100)는 제1 횟수에서 제2 횟수를 감산하여 획득한 제4 횟수에 제3 횟수를 가산하여 획득한 제5 횟수를 카운팅값으로 획득할 수 있다.
다음, 데이터 저장 장치(100)는 카운팅값과 기준치를 비교하고 비교 결과에 따라 제1 존(111)과 제2 존(113)의 비율을 동적으로 조절할 수 있다(S105, S107, S111).
데이터 저장 장치(100)는 카운팅값과 기준치와 비교하여 제1 펜스(115)를 이동시켜 제1 존(111)과 제2 존(113) 간의 비율을 조절할 수 있다.
구체적으로, 데이터 저장 장치(100)는 제5 횟수가 기준치 보다 작거나 같으면 제1 존(111)과 제2 존(113) 중 제1 존(111)의 크기가 현재 보다 커지도록 제1 펜스(115)를 이동시킬 수 있다(S107).
만약, 제5 횟수가 기준치 보다 크면, 데이터 저장 장치(100)는 제2 존(111)과 제2 존(113) 중 제2 존(113)의 크기가 현재 보다 커지도록 제1 펜스(115)를 이동시킬 수 있다(S111).
다음, 데이터 저장 장치(100)는 제1 존(111)과 제2 존(113)의 비율에 따라 제3 존(131)과 제4 존(133)의 비율을 동적으로 조절할 수 있다(S109, 113).
구체적으로, 데이터 저장 장치(100)는 제1 펜스(115)의 이동 정보를 기초로 제2 펜스(135)를 이동시켜 제3 존(131)과 제4 존(133) 간의 비율을 조절하되, 제1 존(111)과 제2 존(113) 간의 조절된 비율에 대응되는 비율로 조절할 수 있다.
본 발명이 속하는 기술분야의 통상의 기술자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있으므로, 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
10: 호스트 장치 100: 데이터 저장 장치
110: 제1 레벨 메모리 111: 제1 존
113: 제2 존 115: 제1 펜스
130: 제2 레벨 메모리 131: 제3 존
133: 제4 존 153: 제2 펜스
150: 컨트롤러

Claims (21)

  1. 신규 데이터를 저장하는 제1 존 및 재저장 데이터를 저장하는 제2 존을 포함하고, 상기 제1 존과 상기 제2 존의 비율이 동적으로 조절되는 제1 레벨 메모리;
    상기 제1 존으로부터 전송되는 데이터를 저장하는 제3 존 및 상기 제3 존으로부터 전달되는 상기 데이터를 저장하는 제4 존을 포함하고, 상기 제1 존과 상기 제2 존의 비율에 따라 상기 제3 존 및 상기 제4 존의 비율이 동적으로 조절되는 제2 레벨 메모리; 및
    상기 제1 존, 상기 제2 존, 상기 제3 존 및 상기 제4 존 간의 데이터 이동을 제어하고, 상기 데이터 이동에 따른 카운팅값을 기준치와 비교하여 비교 결과에 따라 상기 제1 존과 상기 제2 존의 비율 및 상기 제3 존과 상기 제4 존의 비율을 조절하는 컨트롤러,
    를 포함하는 데이터 저장 장치.
  2. 제1항에 있어서,
    상기 컨트롤러는,
    상기 제1 존에 데이터 저장 가능 공간의 크기가 임계값 이하인 경우, 상기 제1 존에 저장된 상기 신규 데이터를 상기 제3 존으로 이동 저장하는 데이터 저장 장치.
  3. 제2항에 있어서,
    상기 컨트롤러는,
    상기 제1 존에 저장된 상기 신규 데이터를 상기 제3 존으로 이동 저장할 때, 가장 리드 요청이 되지 않은 데이터를 상기 제3 존으로 이동 저장하는 데이터 저장 장치.
  4. 제1항에 있어서,
    상기 컨트롤러는,
    상기 제2 존에 데이터 저장 가능 공간의 크기가 임계값 이하인 경우, 상기 제2 존에 저장된 데이터를 상기 제1 존으로 이동 저장하는 데이터 저장 장치.
  5. 제1항에 있어서,
    상기 컨트롤러는,
    상기 제3 존에 데이터 저장 가능 공간의 크기가 임계값 이하인 경우, 상기 제3 존에 저장된 데이터를 상기 제4 존으로 이동 저장하는 데이터 저장 장치.
  6. 제1항에 있어서,
    상기 컨트롤러는,
    상기 제2 존에 리드 될 데이터가 존재하지 않는 경우, 상기 제4 존으로부터 해당 데이터를 리드하여 상기 제2 존에 재저장하는 데이터 저장 장치.
  7. 제6항에 있어서,
    상기 컨트롤러는,
    상기 제2 존에 데이터를 재저장할 때, 상기 재저장되는 데이터 주변의 데이터를 상기 제2 존에 프리페치(prefetch)하여 미리 저장하는 데이터 저장 장치.
  8. 제1항에 있어서,
    상기 제1 레벨 메모리는 상기 제1 존과 상기 제2 존을 구분하기 위한 제1 펜스(fence)를 포함하고,
    상기 제2 레벨 메모리는 상기 제3 존과 상기 제4 존을 구분하기 위한 제4 펜스를 포함하는 데이터 저장 장치.
  9. 제8항에 있어서,
    상기 컨트롤러는,
    상기 제1 존에 상기 신규 데이터가 저장되는 제1 횟수와 상기 제1 존으로부터 상기 제3 존으로 데이터가 이동 저장되는 제2 횟수와 상기 제2 존으로부터 상기 제1 존으로 데이터가 이동되는 제3 횟수를 카운팅한 상기 카운팅값을 상기 기준치와 비교하여 상기 제1 펜스를 이동시켜 상기 제1 존과 상기 제2 존 간의 비율을 조절하는 데이터 저장 장치.
  10. 제9항에 있어서,
    상기 컨트롤러는,
    상기 제1 횟수에서 상기 제2 횟수를 감산하여 획득한 제4 횟수에 상기 제3 횟수를 가산하여 획득한 제5 횟수를 상기 기준치와 비교하여 상기 제1 펜스를 이동시키는 데이터 저장 장치.
  11. 제10항에 있어서,
    상기 컨트롤러는,
    상기 제5 횟수가 상기 기준치 보다 작거나 같으면 상기 제1 존과 상기 제2 존 중 상기 제1 존의 크기가 현재 보다 커지도록 상기 제1 펜스를 이동시키고,
    상기 제5 횟수가 상기 기준치 보다 크면 상기 제1 존과 상기 제2 존 중 상기 제2 존의 크기가 현재 보다 커지도록 상기 제1 펜스를 이동시키는 데이터 저장 장치.
  12. 제11항에 있어서,
    상기 컨트롤러는,
    상기 제1 펜스의 이동 정보를 기초로 상기 제2 펜스를 이동시켜 제3 존과 상기 제4 존 간의 비율을 조절하되, 상기 제1 존과 상기 제2 존 간의 조절된 비율에 대응되는 비율로 조절하는 데이터 저장 장치.
  13. 제12항에 있어서,
    상기 컨트롤러는,
    상기 제3 존과 상기 제4 존 간의 비율을 조절할 때, 상기 제3 존과 상기 제4 존 각각에 저장된 데이터를 서로 이동시키지 않는 데이터 저장 장치.
  14. 제1항에 있어서,
    상기 제어부는,
    상기 제2 존은 상기 제1 존과 비교하여 호스트 장치로부터 리드 요청이 상대적으로 많은 데이터를 저장하고, 상기 제4 존은 상기 제3 존과 비교하여 상기 제2 존으로의 재저장 요청이 상대적으로 많은 데이터를 저장하는 데이터 저장 장치.
  15. 제1 존 및 제2 존을 포함하는 제1 레벨 메모리 및 제3 존 및 제4 존을 포함하는 제2 레벨 메모리에서, 데이터 이동 기준에 따라 상기 제1 존, 상기 제2 존, 상기 제3 존 및 상기 제4 존 간에 데이터를 이동하는 단계;
    상기 제1 존, 상기 제2 존 및 상기 제3 존 간의 데이터 이동을 카운팅하여 카운팅값을 획득하는 단계;
    상기 카운팅값과 기준치를 비교하고 비교 결과에 따라 상기 제1 존과 상기 제2 존의 비율을 동적으로 조절하는 단계; 및
    상기 제1 존과 상기 제2 존의 비율에 따라 상기 제3 존과 상기 제4 존의 비율을 동적으로 조절하는 단계를 포함하고,
    상기 제1 존은 신규 데이터를 저장하고 상기 제2 존은 재저장 데이터를 저장하며 상기 제3 존은 상기 제1 존으로부터 전송되는 데이터를 저장하고 상기 제4 존은 상기 제3 존으로부터 전달되는 상기 데이터를 저장하는 데이터 저장 장치의 동작방법.
  16. 제15항에 있어서,
    상기 제1 레벨 메모리는 상기 제1 존과 상기 제2 존을 구분하기 위한 제1 펜스(fence)를 포함하고,
    상기 제2 레벨 메모리는 상기 제3 존과 상기 제4 존을 구분하기 위한 제4 펜스를 포함하는 데이터 저장 장치의 동작방법.
  17. 제16항에 있어서,
    상기 카운팅값을 획득하는 단계에서,
    상기 제1 존에 상기 신규 데이터가 저장되는 제1 횟수와 상기 제1 존으로부터 상기 제3 존으로 데이터가 이동 저장되는 제2 횟수와 상기 제2 존으로부터 상기 제1 존으로 데이터가 이동되는 제3 횟수를 카운팅하여 상기 카운팅값을 획득하고,
    상기 제1 존과 상기 제2 존의 비율을 동적으로 조절하는 단계에서,
    상기 카운팅값과 상기 기준치와 비교하여 상기 제1 펜스를 이동시켜 상기 제1 존과 상기 제2 존 간의 비율을 조절하는 데이터 저장 장치의 동작방법.
  18. 제17항에 있어서,
    상기 카운팅값을 획득하는 단계에서,
    상기 제1 횟수에서 상기 제2 횟수를 감산하여 획득한 제4 횟수에 상기 제3 횟수를 가산하여 획득한 제5 횟수를 획득하고,
    상기 제1 존과 상기 제2 존의 비율을 동적으로 조절하는 단계에서,
    상기 제5 횟수가 상기 기준치 보다 작거나 같으면 상기 제1 존과 상기 제2 존 중 상기 제1 존의 크기가 현재 보다 커지도록 상기 제1 펜스를 이동시키고,
    상기 제5 횟수가 상기 기준치 보다 크면 상기 제1 존과 상기 제2 존 중 상기 제2 존의 크기가 현재 보다 커지도록 상기 제1 펜스를 이동시키는 데이터 저장 장치의 동작방법.
  19. 제18항에 있어서,
    상기 제3 존과 상기 제4 존의 비율을 동적으로 조절하는 단계에서,
    상기 제1 펜스의 이동 정보를 기초로 상기 제2 펜스를 이동시켜 제3 존과 상기 제4 존 간의 비율을 조절하되, 상기 제1 존과 상기 제2 존 간의 조절된 비율에 대응되는 비율로 조절하는 데이터 저장 장치의 동작방법.
  20. 제15항에 있어서,
    상기 데이터를 이동하는 단계에서,
    데이터 발신측 존에 데이터 저장 가능 공간의 크기가 임계값 이하인 경우, 상기 제1 존으로부터 상기 제3 존으로 데이터를 이동하거나, 또는 상기 제2 존으로부터 상기 제1 존으로 데이터를 이동하거나, 또는 상기 제3 존으로부터 상기 제4 존으로 데이터를 이동하는 데이터 저장 장치의 동작방법.
  21. 제15항에 있어서,
    상기 데이터를 이동하는 단계에서,
    상기 제2 존에 리드 될 데이터가 존재하지 않는 경우 상기 제4 존으로부터 해당 데이터를 리드하여 상기 제2 존에 재저장하고,
    상기 제2 존에 데이터를 재저장할 때, 상기 재저장되는 데이터 주변의 데이터를 상기 제2 존에 프리페치(prefetch)하여 미리 저장하는 데이터 저장 장치의 동작방법.
KR1020200038339A 2020-03-30 2020-03-30 데이터 저장 장치 및 그것의 동작 방법 KR20210121527A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020200038339A KR20210121527A (ko) 2020-03-30 2020-03-30 데이터 저장 장치 및 그것의 동작 방법
US16/941,327 US11210012B2 (en) 2020-03-30 2020-07-28 Data storage device and operating method thereof where zones, in first level memory and second level memory, are dynamically adjusted based on data movement between the zones
CN202010820270.2A CN113467707B (zh) 2020-03-30 2020-08-14 数据存储装置及其操作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200038339A KR20210121527A (ko) 2020-03-30 2020-03-30 데이터 저장 장치 및 그것의 동작 방법

Publications (1)

Publication Number Publication Date
KR20210121527A true KR20210121527A (ko) 2021-10-08

Family

ID=77856045

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200038339A KR20210121527A (ko) 2020-03-30 2020-03-30 데이터 저장 장치 및 그것의 동작 방법

Country Status (3)

Country Link
US (1) US11210012B2 (ko)
KR (1) KR20210121527A (ko)
CN (1) CN113467707B (ko)

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7650466B2 (en) 2005-09-21 2010-01-19 Qualcomm Incorporated Method and apparatus for managing cache partitioning using a dynamic boundary
US8271729B2 (en) 2009-09-18 2012-09-18 International Business Machines Corporation Read and write aware cache storing cache lines in a read-often portion and a write-often portion
JP5736682B2 (ja) * 2010-07-16 2015-06-17 株式会社リコー 画像読取装置、画像形成装置および画像データ補正方法
US8572325B2 (en) * 2010-12-07 2013-10-29 International Business Machines Corporation Dynamic adjustment of read/write ratio of a disk cache
JP6248808B2 (ja) * 2014-05-22 2017-12-20 富士通株式会社 情報処理装置、情報処理システム、情報処理装置の制御方法、及び、情報処理装置の制御プログラム
KR20170099437A (ko) * 2016-02-23 2017-09-01 에스케이하이닉스 주식회사 메모리 시스템 및 이의 동작 방법
US9927981B2 (en) * 2016-08-29 2018-03-27 Seagate Technology Llc Hybrid data storage device with partitioned local memory
KR20180031289A (ko) * 2016-09-19 2018-03-28 삼성전자주식회사 스토리지 장치 및 상기 스토리지 장치의 동작 방법
JP2018160059A (ja) * 2017-03-22 2018-10-11 東芝メモリ株式会社 メモリコントローラ
KR102578188B1 (ko) * 2018-05-15 2023-09-14 에스케이하이닉스 주식회사 메모리 컨트롤러 및 이의 동작 방법

Also Published As

Publication number Publication date
US11210012B2 (en) 2021-12-28
CN113467707A (zh) 2021-10-01
US20210303186A1 (en) 2021-09-30
CN113467707B (zh) 2023-09-01

Similar Documents

Publication Publication Date Title
US7865658B2 (en) Method and system for balancing host write operations and cache flushing
EP2939120B1 (en) Priority-based garbage collection for data storage systems
JP5808853B2 (ja) メモリデバイスにおける動的メモリキャッシュサイズ調節
US10789160B2 (en) Utilizing different data storage policies in response to different characteristics of data
US8788778B1 (en) Garbage collection based on the inactivity level of stored data
US9710397B2 (en) Data migration for composite non-volatile storage device
TWI437439B (zh) 用來以動態門檻進行區塊管理之方法及記憶裝置及控制器
US10503411B2 (en) Data storage device and method for operating non-volatile memory
KR101920500B1 (ko) 데이터 저장 장치 및 그 동작 방법
US10732856B2 (en) Erase health metric to rank memory portions
KR20170130011A (ko) 캐시 메모리를 포함하는 서버 장치 및 그것의 동작 방법
JP6697410B2 (ja) メモリシステムおよび制御方法
US20170228191A1 (en) Systems and methods for suppressing latency in non-volatile solid state devices
US20210240613A1 (en) Memory system and operating method thereof
KR102681181B1 (ko) 메모리 시스템 및 그것의 동작방법
US20080294869A1 (en) Systems For Optimizing Page Selection In Flash-Memory Devices
US10713159B2 (en) Semiconductor device for managing wear leveling operation of a nonvolatile memory device
KR20210121527A (ko) 데이터 저장 장치 및 그것의 동작 방법
CN105989888B (zh) 非易失性存储器件及其操作方法和具有其的测试系统
US6978349B1 (en) Adaptive cache memory management
US9280485B2 (en) Efficient cache volume sit scans
KR20210121696A (ko) 컨트롤러 및 메모리 시스템
US20240192853A1 (en) Multi-level data storage device and operation method thereof
US20240143500A1 (en) Memory system based on flash memory and method for managing meta data thereof
TW202414231A (zh) 用以從讀取優先順序修復工作者份額之系統、方法及媒體

Legal Events

Date Code Title Description
E902 Notification of reason for refusal