KR20220015457A - 하드 디스크 제어 방법 및 관련 디바이스 - Google Patents

하드 디스크 제어 방법 및 관련 디바이스 Download PDF

Info

Publication number
KR20220015457A
KR20220015457A KR1020217043003A KR20217043003A KR20220015457A KR 20220015457 A KR20220015457 A KR 20220015457A KR 1020217043003 A KR1020217043003 A KR 1020217043003A KR 20217043003 A KR20217043003 A KR 20217043003A KR 20220015457 A KR20220015457 A KR 20220015457A
Authority
KR
South Korea
Prior art keywords
mode
data
storage
user data
hard disk
Prior art date
Application number
KR1020217043003A
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 후아웨이 테크놀러지 컴퍼니 리미티드
Publication of KR20220015457A publication Critical patent/KR20220015457A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • 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/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/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
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7206Reconfiguration of flash memory system

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)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Pinball Game Machines (AREA)

Abstract

본 발명의 실시예들은 하드 디스크 제어 방법 및 관련 디바이스를 제공한다. 하드 디스크 제어 방법은: 저장 디바이스에 저장된 사용자 데이터의 양이 제1 양 조건을 충족시키는지를 검출하는 단계; 및 저장된 사용자 데이터의 양이 제1 양 조건을 충족할 때, 제1 저장 영역 내의 제1 하위-영역의 데이터 저장 모드를 제1 모드로부터 제2 모드로 전환하는 단계 - 제1 모드와 제2 모드는 SLC 모드, MLC 모드, TLC 모드, 및 QLC 모드 중에서 2개의 상이한 모드임 - 를 포함한다. 제2 모드에서 데이터를 저장하는 저장 디바이스의 데이터 밀도가 제1 모드에서 데이터를 저장하는 저장 디바이스의 데이터 밀도보다 높을 때, 저장 디바이스는 저장 공간의 용량을 확장하여, 용량 손실을 회피할 수 있다. 제2 모드에서 데이터를 저장하는 저장 디바이스의 데이터 밀도가 제1 모드에서 데이터를 저장하는 저장 디바이스의 데이터 밀도보다 낮을 때, 저장 디바이스는 저장 디바이스의 프로그램-소거 사이클을 증가시키고, 저장 디바이스의 서비스 수명을 연장시킬 수 있다.

Description

하드 디스크 제어 방법 및 관련 디바이스
본 발명은 스토리지 분야에 관한 것으로, 특히, 하드 디스크 제어 방법 및 관련 디바이스에 관한 것이다.
하드 디스크는 보통 NAND 플래시를 사용한다. NAND 플래시는 비휘발성 랜덤 액세스 저장 매체이다. 전원이 턴 오프(turn off)된 후에, NAND 플래시를 사용하는 하드 디스크에 저장된 데이터는 사라지지 않는다. NAND 플래시를 사용하는 하드 디스크는 각각의 셀에 저장된 상이한 양의 데이터에 기초하여 단일-레벨 셀(single level cell, SLC), 멀티-레벨 셀(multi level cell, MLC), 트리플-레벨 셀(triple level cell, TLC), 쿼드-레벨 셀(quad level cell, QLC) 등으로 분류될 수 있다. SLC 하드 디스크의 각각의 셀은 1비트 데이터만을 저장하고, MLC 하드 디스크의 각각의 셀은 2-비트 데이터를 저장하고, TLC 하드 디스크의 각각의 셀은 3-비트 데이터를 저장하고, QLC 하드 디스크의 각각의 셀은 4-비트 데이터를 저장한다.
현재, NAND 플래시를 사용하는 하드 디스크의 각각의 셀에 저장되는 데이터의 더 많은 양은 하드 디스크의 더 높은 데이터 밀도를 나타낸다. 더 작은 프로그램-소거 사이클은 더 짧은 서비스 수명을 나타낸다. 일부 하드 디스크들 각각은 하드 디스크의 데이터 저장 모드를 조정할 수 있다. 예를 들어, QLC 하드 디스크는 데이터 저장 모드를 SLC 모드로 조정할 수 있다. 따라서, 이는 QLC 하드 디스크의 데이터 밀도를 감소시킬 수 있고, 하드 디스크의 서비스 수명을 연장시킬 수 있다. 그러나, 이 방법은 하드 디스크의 대응하는 용량이 손실되게 한다.
일부 하드 디스크들에 대해, 하드 디스크들 각각은 전체적으로 조정될 수 있거나, 하드 디스크들 각각은 먼저 복수의 영역들로 분할될 수 있고, 그 후 각각의 영역이 개별적으로 조정된다. 예를 들어, QLC 하드 디스크는 전체적으로 SLC 모드로 설정될 수 있다. 이 경우, QLC 하드 디스크는 용량의 3/4를 손실하게 된다. 대안적으로, TLC 하드 디스크의 공간의 절반은 SLC 모드로 설정될 수 있고, TLC 하드 디스크의 공간의 나머지 절반은 MLC 모드로 설정될 수 있다. 이러한 방식으로, TLC 하드 디스크 중에서 SLC 모드로 설정된 일부는 용량의 2/3가 손실되고, MLC 모드로 설정된 일부는 용량의 1/3이 손실되고, TLC 하드 디스크는 용량의 절반이 손실된다. 따라서, 하드 디스크가 데이터 저장 모드를 조정한 후에, 하드 디스크는 용량이 손실된다.
본 발명의 이 실시예의 제1 양태에 따르면, 하드 디스크 제어 방법이 제공된다. 이 방법은 저장 디바이스에 적용되고, 이 방법은: 저장 디바이스에 저장된 사용자 데이터의 양이 제1 양 조건을 충족시키는지를 검출하는 단계 - 저장 디바이스는 제1 저장 영역을 포함하고, 제1 저장 영역은 제1 모드에서 데이터를 저장하고, 제1 모드는 SLC 모드, MLC 모드, TLC 모드, 및 QLC 모드 중 하나임 - ; 및 저장된 사용자 데이터의 양이 제1 양 조건을 충족할 때, 제1 저장 영역 내의 제1 하위-영역의 데이터 저장 모드를 제1 모드로부터 제2 모드로 전환하는 단계 - 제2 모드는 SLC 모드, MLC 모드, TLC 모드, 및 QLC 모드 중 하나이고, 제2 모드는 제1 모드와 상이함 - 를 포함한다.
제1 양 조건이 제1 미리 설정된 값 이상일 때, 저장 디바이스는 저장 디바이스의 데이터 저장 모드를 제1 모드로부터 제2 모드로 전환할 수 있다. 제1 모드가 SLC 모드인 경우, 제2 모드는 QLC 모드, TLC 모드, 및 MLC 모드 중 하나일 수 있다. 제1 모드가 MLC 모드인 경우, 제2 모드는 TLC 모드 또는 QLC 모드일 수 있다. 제1 모드가 TLC 모드인 경우, 제1 모드는 QLC 모드일 수 있다. 따라서, 이것은 저장 디바이스의 데이터 밀도를 개선하고, 저장 디바이스의 저장 공간의 용량을 확장하고, 저장 디바이스의 용량이 손실되지 않는 것을 보장할 수 있다. 제1 양 조건이 제2 미리 설정된 값 미만일 때, 저장 디바이스는 저장 디바이스의 데이터 저장 모드를 제1 모드로부터 제2 모드로 전환할 수 있다. 제1 모드가 QLC 모드인 경우, 제2 모드는 SLC 모드, MLC 모드, 및 TLC 모드 중 하나이다. 제1 모드가 TLC 모드인 경우, 제2 모드는 SLC 모드 또는 MLC 모드일 수 있다. 제1 모드가 MLC 모드인 경우, 제2 모드는 SLC 모드일 수 있다. 따라서, 이는 저장 디바이스의 데이터 밀도를 감소시킬 수 있고, 저장 디바이스의 프로그램-소거 사이클을 증가시킬 수 있고, 저장 디바이스의 서비스 수명을 연장시킬 수 있다.
선택적으로, 제1 저장 영역 내의 제1 하위-영역의 데이터 저장 모드를 제1 모드로부터 제2 모드로 전환한 후에, 방법은: 제1 저장 영역의 사용자 데이터에서의 사용자 데이터의 적어도 일부를 전환된 제1 하위-영역으로 마이그레이션하는(migrating) 단계; 제1 저장 영역에서 사용자 데이터의 적어도 일부에 의해 점유된 영역을 해제하는(releasing) 단계; 및 사용자 데이터의 적어도 일부에 의해 점유된 영역의 데이터 저장 모드를 제2 모드로 전환하는 단계를 추가로 포함한다. 이 경우, 데이터가 저장되지 않은 제1 하위-영역의 데이터 저장 모드는 먼저 제1 모드로부터 제2 모드로 전환될 수 있고, 그 후 제1 모드에서 데이터가 저장되는 공간 내의 사용자 데이터는 전환된 제1 하위-영역으로 마이그레이션된다. 이러한 방식으로, 사용자 데이터가 마이그레이션되기 전에 제1 모드에서 데이터가 저장되는 공간이 해제될 수 있고, 그 후 제1 모드에서 데이터가 저장되는 공간의 데이터 저장 모드가 제2 모드로 전환되어, 저장 디바이스의 모든 저장 공간에서의 데이터 저장 모드들이 제2 모드로 점진적으로 전환된다. 따라서, 이는 저장 디바이스의 서비스 수명을 연장시킬 수 있고, 저장 디바이스의 용량이 손실되지 않는 것을 보장할 수 있다.
선택적으로, 제1 저장 영역 내의 제1 하위-영역의 데이터 저장 모드를 제1 모드로부터 제2 모드로 전환하기 전에, 방법은: 제1 저장 영역에서의 사용자 데이터 내의 사용자 데이터의 적어도 일부를 저장 디바이스의 캐시로 마이그레이션하는 단계; 사용자 데이터의 적어도 일부에 의해 점유된 영역을 해제하는 단계; 및 제1 저장 영역 내의 제1 하위-영역의 데이터 저장 모드를 제1 모드로부터 제2 모드로 전환한 후에, 제2 모드에서 전환된 제1 저장 영역에 사용자 데이터의 적어도 일부를 기입하는 단계를 추가로 포함한다. 이는 저장 디바이스의 캐시를 사용하고, 저장 자원의 활용 효율을 향상시킨다.
선택적으로, 저장 디바이스는 제2 저장 영역을 추가로 포함하고, 제2 저장 영역은 제2 모드에서 데이터를 저장하고, 제1 저장 영역 내의 제1 하위-영역의 데이터 저장 모드를 제1 모드로부터 제2 모드로 전환하기 전에, 방법은: 제1 저장 영역에서의 사용자 데이터 내의 사용자 데이터의 적어도 일부를 저장 디바이스의 제2 저장 영역으로 마이그레이션하는 단계; 및 사용자 데이터의 적어도 일부에 의해 점유된 영역을 해제하는 단계를 추가로 포함한다. 이러한 방식으로, 사용자 데이터가 먼저 마이그레이션될 수 있고, 저장 공간이 해제된다. 이는 데이터 보안을 보장할 수 있다.
선택적으로, 방법은: 데이터 기입 요청을 수신하는 단계 - 데이터 기입 요청은 타깃 데이터를 포함함 - ; 및 제2 모드에서 전환된 제1 하위-영역에 타깃 데이터를 기입하는 단계를 추가로 포함한다. 제1 저장 영역 내의 제1 하위-영역의 데이터 저장 모드가 제1 모드로부터 제2 모드로 전환된 후. 저장 디바이스가 데이터 기입 요청을 다시 수신하면, 저장 디바이스는 제2 모드에서 전환된 제1 하위-영역에 타깃 데이터를 기입한다.
선택적으로, 방법은: 저장 디바이스에 저장된 사용자 데이터의 양이 제2 양 조건을 충족시키는지를 검출하는 단계 - 저장 디바이스는 제2 저장 영역을 포함함 - ; 및 저장된 사용자 데이터의 양이 제2 양 조건을 충족할 때, 제2 저장 영역 내의 제2 하위-영역의 데이터 저장 모드를 제2 모드로부터 제3 모드로 전환하는 단계 - 제3 모드는 SLC 모드, MLC 모드, TLC 모드, 및 QLC 모드 중 하나이고, 제3 모드는 제2 모드와 상이함 - 를 추가로 포함한다. 제1 양 조건이 충족된 후에, 저장 디바이스에 저장된 사용자 데이터의 양이 제2 양 조건을 충족할 때까지 저장 디바이스에 저장된 사용자 데이터의 양이 계속 변경되는 경우, 저장 디바이스는 제2 저장 영역 내의 제2 하위-영역의 데이터 저장 모드를 제2 모드로부터 제3 모드로 전환할 수 있다. 따라서, 이는 저장 디바이스의 서비스 수명을 연장시킬 수 있고, 저장 디바이스의 용량이 손실되지 않는 것을 보장할 수 있다.
본 발명의 이 실시예의 제2 양태에 따르면, 하드 디스크 제어 장치가 제공된다. 하드 디스크 제어 장치는 하드 디스크에 적용되고, 하드 디스크는 플래시 메모리 제어기 및 플래시 메모리 칩을 포함한다. 플래시 메모리 칩은 복수의 소거 블록들을 포함한다. 하드 디스크 제어 장치는 플래시 메모리 제어기에 위치하고, 하드 디스크 제어 장치는: 저장 디바이스에 저장된 사용자 데이터의 양이 제1 양 조건을 충족시키는지를 검출하도록 구성되는 검출 모듈 - 저장 디바이스는 제1 저장 영역을 포함하고, 제1 저장 영역은 제1 모드에서 데이터를 저장하고, 제1 모드는 SLC 모드, MLC 모드, 트리플-레벨 셀(TLC) 모드, 및 쿼드-레벨 셀(QLC) 모드 중 하나임 - ; 및 검출 모듈에 의해 검출되는 저장된 사용자 데이터의 양이 제1 양 조건을 충족할 때, 제1 저장 영역 내의 제1 하위-영역의 데이터 저장 모드를 제1 모드로부터 제2 모드로 전환하도록 구성되는 처리 모듈 - 제2 모드는 SLC 모드, MLC 모드, TLC 모드, 및 QLC 모드 중 하나이고, 제2 모드는 제1 모드와 상이함 - 을 포함한다. 처리 모듈은 제1 저장 영역 내의 제1 하위-영역의 데이터 저장 모드를 제1 모드로부터 제2 모드로 전환한다. 이는 저장 디바이스의 서비스 수명을 연장시킬 수 있고, 저장 디바이스의 용량이 손실되지 않는 것을 보장할 수 있다.
선택적으로, 하드 디스크 제어 장치는 다음을 포함한다: 처리 모듈은 제1 저장 영역의 사용자 데이터에서의 사용자 데이터의 적어도 일부를 전환된 제1 하위-영역으로 마이그레이션하도록 구성되고; 처리 모듈은 제1 저장 영역에서 사용자 데이터의 적어도 일부에 의해 점유된 영역을 해제하도록 추가로 구성되고; 처리 모듈은 사용자 데이터의 적어도 일부에 의해 점유된 영역의 데이터 저장 모드를 제2 모드로 전환하도록 추가로 구성된다.
선택적으로, 하드 디스크 제어 장치는 다음을 포함한다: 처리 모듈은 제1 저장 영역의 사용자 데이터에서의 사용자 데이터의 적어도 일부를 하드 디스크의 제2 저장 영역으로 마이그레이션하도록 추가로 구성되고, 제2 저장 영역은 제2 모드에서 데이터를 저장하고; 처리 모듈은 사용자 데이터의 적어도 일부에 의해 점유된 영역을 해제하도록 추가로 구성된다.
선택적으로, 하드 디스크 제어 장치는: 데이터 기입 요청을 수신하도록 구성되는 수신 모듈 - 데이터 기입 요청은 타깃 데이터를 포함함 - 을 포함하고; 처리 모듈은 제2 모드에서 전환된 제1 하위-영역에 타깃 데이터를 기입하도록 추가로 구성된다.
선택적으로, 하드 디스크 제어 장치는 다음을 포함한다: 검출 모듈은 저장 디바이스에 저장된 사용자 데이터의 양이 제2 양 조건을 충족시키는지를 검출하도록 추가로 구성되고, 저장 디바이스는 제2 저장 영역을 포함하며; 처리 모듈은 검출 모듈에 의해 검출되는 저장된 사용자 데이터의 양이 제2 양 조건을 충족할 때, 제2 저장 영역 내의 제2 하위-영역의 데이터 저장 모드를 제2 모드로부터 제3 모드로 전환하도록 추가로 구성되고, 제3 모드는 SLC 모드, MLC 모드, TLC 모드, 및 QLC 모드 중 하나이고, 제3 모드는 제2 모드와 상이하다.
본 발명의 이 실시예의 제3 양태에 따르면, 제어기가 제공된다. 제어기는 저장 디바이스에 위치되고, 저장 디바이스는 적어도 하나의 하드 디스크 및 제어기를 포함하고, 제어기는 프로세서 및 메모리를 포함하고, 메모리는 프로그램 명령어를 저장하고, 프로세서는 메모리 내의 프로그램 명령어를 호출(invoke)하여, 다음의 단계들: 저장 디바이스에 저장된 사용자 데이터의 양이 제1 양 조건을 충족시키는지를 검출하는 단계 - 저장 디바이스는 제1 저장 영역을 포함하고, 제1 저장 영역은 제1 모드에서 데이터를 저장하고, 제1 모드는 단일-레벨 셀(SLC) 모드, 멀티-레벨 셀(MLC) 모드, 트리플-레벨 셀(TLC) 모드, 및 쿼드-레벨 셀(QLC) 모드 중 하나임 - ; 및 저장 디바이스에 저장된 사용자 데이터의 양이 제1 양 조건을 충족할 때, 제1 저장 영역 내의 제1 하위-영역의 데이터 저장 모드를 제1 모드로부터 제2 모드로 전환하는 단계 - 제2 모드는 SLC 모드, MLC 모드, TLC 모드, 및 QLC 모드 중 하나이고, 제2 모드는 제1 모드와 상이함 - 를 수행하도록 구성된다. 따라서, 이는 저장 디바이스의 서비스 수명을 연장시킬 수 있고, 저장 디바이스의 용량이 손실되지 않는 것을 보장할 수 있다.
선택적으로, 프로세서는 메모리 내의 프로그램 명령어를 호출하여, 다음의 단계들: 제1 저장 영역의 사용자 데이터에서의 사용자 데이터의 적어도 일부를 전환된 제1 하위-영역으로 마이그레이션하는 단계; 제1 저장 영역에서 사용자 데이터의 적어도 일부에 의해 점유된 영역을 해제하는 단계; 및 사용자 데이터의 적어도 일부에 의해 점유된 영역의 데이터 저장 모드를 제2 모드로 전환하는 단계를 수행하도록 추가로 구성된다.
선택적으로, 프로세서는 메모리 내의 프로그램 명령어를 호출하여, 다음의 단계들: 제1 저장 영역에서의 사용자 데이터 내의 사용자 데이터의 적어도 일부를 저장 디바이스의 캐시로 마이그레이션하는 단계; 사용자 데이터의 적어도 일부에 의해 점유된 영역을 해제하는 단계; 및 제1 저장 영역 내의 제1 하위-영역의 데이터 저장 모드를 제1 모드로부터 제2 모드로 전환한 후에, 제2 모드에서 전환된 제1 저장 영역에 사용자 데이터의 적어도 일부를 기입하는 단계를 수행하도록 추가로 구성된다.
선택적으로, 프로세서는 메모리 내의 프로그램 명령어를 호출하여, 다음의 단계들: 제1 저장 영역에서의 사용자 데이터 내의 사용자 데이터의 적어도 일부를 저장 디바이스의 제2 저장 영역으로 마이그레이션하는 단계 - 제2 저장 영역은 제2 모드에서 데이터를 저장함 - ; 및 데이터의 적어도 일부에 의해 점유된 영역을 해제하는 단계를 수행하도록 추가로 구성된다.
선택적으로, 제어기는 메모리 내의 프로그램 명령어를 호출하여, 다음의 단계들: 데이터 기입 요청을 수신하는 단계 - 데이터 기입 요청은 타깃 데이터를 포함함 - ; 및 제2 모드에서 제2 저장 영역 또는 전환된 제1 저장 영역에 타깃 데이터를 기입하는 단계를 수행하도록 추가로 구성된다.
선택적으로, 프로세서는 메모리 내의 프로그램 명령어를 호출하여, 다음의 단계들: 저장 디바이스에 저장된 사용자 데이터의 양이 제2 양 조건을 충족시키는지를 검출하는 단계 - 저장 디바이스는 제2 저장 영역을 포함함 - ; 및 저장 디바이스에 저장된 저장된 사용자 데이터의 양이 제2 양 조건을 충족할 때, 제2 저장 영역 내의 제2 하위-영역의 데이터 저장 모드를 제2 모드로부터 제3 모드로 전환하는 단계 - 제3 모드는 SLC 모드, MLC 모드, TLC 모드, 및 QLC 모드 중 하나이고, 제3 모드는 제2 모드와 상이함 - 를 수행하도록 추가로 구성된다.
이 출원은 컴퓨터 판독가능 저장 매체를 추가로 제공한다. 컴퓨터 판독가능 저장 매체는 명령어를 저장한다. 명령어가 컴퓨터 상에서 실행될 때, 컴퓨터는 전술한 양태들에서의 방법들을 수행할 수 있게 된다.
이 출원은 명령어를 포함하는 컴퓨터 프로그램 제품을 추가로 제공한다. 컴퓨터 프로그램 제품이 컴퓨터 상에서 실행될 때, 컴퓨터는 전술한 양태들에서의 방법들을 수행할 수 있게 된다.
본 발명의 실시예들은 하드 디스크 제어 방법 및 관련 디바이스를 제공한다. 하드 디스크 제어 방법은: 저장 디바이스에 저장된 사용자 데이터의 양이 제1 양 조건을 충족시키는지를 검출하는 단계; 및 저장된 사용자 데이터의 양이 제1 양 조건을 충족할 때, 제1 저장 영역 내의 제1 하위-영역의 데이터 저장 모드를 제1 모드로부터 제2 모드로 전환하는 단계 - 제2 모드는 제1 모드와 상이함 - 를 포함한다. 제1 양 조건이 제1 미리 설정된 값 이상일 때, 저장 디바이스는 저장 디바이스의 데이터 저장 모드를 제1 모드로부터 제2 모드로 전환할 수 있다. 예를 들어, 제1 모드는 SLC 모드이고, 제2 모드는 QLC 모드이다. 따라서, 이것은 저장 디바이스의 데이터 밀도를 개선하고, 저장 디바이스의 저장 공간의 용량을 확장하고, 저장 디바이스의 용량이 손실되지 않는 것을 보장할 수 있다. 제1 양 조건이 제2 미리 설정된 값 미만일 때, 저장 디바이스는 저장 디바이스의 데이터 저장 모드를 제1 모드로부터 제2 모드로 전환할 수 있다. 예를 들어, 제1 모드는 QLC 모드이고, 제2 모드는 SLC 모드이다. 따라서, 이는 저장 디바이스의 데이터 밀도를 감소시킬 수 있고, 저장 디바이스의 프로그램-소거 사이클을 증가시킬 수 있고, 저장 디바이스의 서비스 수명을 연장시킬 수 있다.
도 1은 본 발명의 실시예에 따른 저장 디바이스의 구성도이다.
도 2는 본 발명의 실시예에 따른 제어기의 개략적인 구조도이다;
도 3은 본 발명의 실시예에 따른 하드 디스크의 개략적인 구조도이다.
도 4는 본 발명의 실시예에 따른 하드 디스크 모드의 개략도이다.
도 5는 본 발명의 실시예에 따른 하드 디스크 제어 방법의 실시예의 개략도이다.
도 6은 본 발명의 실시예에 따른 하드 디스크 제어 방법의 다른 실시예의 개략도이다.
도 7은 본 발명의 실시예에 따른 하드 디스크 제어 방법의 다른 실시예의 개략도이다.
도 8은 본 발명의 실시예에 따른 하드 디스크 제어 방법의 다른 실시예의 개략도이다.
도 9는 본 발명의 실시예에 따른 하드 디스크 제어 방법의 다른 실시예의 개략도이다.
도 10은 본 발명의 실시예에 따른 하드 디스크의 실시예의 개략도이다.
도 11은 본 발명의 실시예에 따른 제어기의 실시예의 개략도이다.
도 1은 본 발명의 실시예에 따른 플래시 메모리 어레이의 구성도를 도시한다. 도 1의 플래시 메모리 어레이는 적어도 하나의 제어기(11) 및 복수의 하드 디스크들(12)을 포함한다. 하드 디스크(12)는 솔리드-스테이트 드라이브(solid state disk, SSD)일 수 있다. 솔리드-스테이트 드라이브는 플래시 메모리(flash memory) 칩을 매체로서 사용하는 메모리이고, 솔리드-스테이트 드라이브(solid state drive, SSD)라고도 지칭된다. 제어기(11)는 저장 영역 네트워크(storage area network, SAN)를 통해 다른 디바이스에 접속된다. 제어기(11)는 컴퓨팅 디바이스, 예를 들어, 서버 또는 데스크톱 컴퓨터일 수 있다. 제어기(11)에는 운영 체제 및 애플리케이션 프로그램이 설치된다. 제어기(11)는 호스트로부터 입력/출력(I/O) 요청을 수신할 수 있다. 제어기(11)는 또한 I/O 요청에서 운반되는 데이터를 저장하고, 데이터를 하드 디스크(12)에 기입할 수 있다.
도 1은 단지 설명을 위한 예일 뿐이다. 실제 응용에서, 저장 시스템은 2개 이상의 제어기를 포함할 수 있다. 각각의 제어기의 물리적 구조 및 기능은 제어기(11)의 물리적 구조 및 기능과 유사하다. 또한, 제어기들이 서로 통신할 수 있고 제어기들 각각과 하드 디스크(12)가 서로 통신할 수 있다면, 제어기들 사이의 접속 방식 및 임의의 제어기와 하드 디스크(12) 사이의 접속 방식은 이 실시예에서 제한되지 않는다.
도 2는 도 1의 제어기(11)의 개략적인 구조도이다. 도 2에 도시된 바와 같이, 제어기(11)는 인터페이스 카드(111), 메모리(112), 및 프로세서(113)를 포함한다.
인터페이스 카드(111)는 호스트와 통신하도록 구성되고, 제어기(11)는 인터페이스 카드(111)를 사용하여 호스트의 동작 명령을 수신할 수 있다. 프로세서(113)는 중앙 처리 유닛(central processing unit, CPU)일 수 있다. 본 발명의 이 실시예에서, 프로세서(113)는 호스트로부터 I/O 요청을 수신하고 처리하도록 구성될 수 있다. I/O 요청은 데이터 기입 요청 또는 데이터 판독 요청일 수 있다. 프로세서(113)는 또한, 데이터 기입 요청 내의 데이터를 하드 디스크(12)에 전송할 수 있다. 또한, 프로세서(113)는 시스템에 대한 가비지 수집(garbage collection) 동작을 수행하도록 추가로 구성될 수 있다. 인터페이스 카드(114)는 하드 디스크(12)와 통신하도록 구성되고, 제어기(11)는 인터페이스 카드(114)를 사용하여 저장을 위해 하드 디스크(12)에 데이터 기입 요청을 전송할 수 있다.
제어기(11)는 메모리(112)를 추가로 포함할 수 있다. 메모리(112)는 호스트로부터 수신된 데이터 또는 하드 디스크(12)로부터 판독된 데이터를 임시 저장하도록 구성된다. 호스트에 의해 전송된 복수의 데이터 기입 요청들을 수신할 때, 제어기(11)는 복수의 데이터 기입 요청들에 있는 데이터를 메모리(112)에 임시 저장할 수 있다. 메모리(112)의 용량이 특정 임계값에 도달하면, 메모리(112)에 저장된 데이터 및 데이터에 할당된 논리 어드레스들은 하드 디스크(12)에 전송된다. 하드 디스크(12)는 데이터를 저장한다. 메모리(112)는 휘발성 메모리, 플래시 메모리 칩, 또는 이들의 조합을 포함한다. 휘발성 메모리는, 예를 들어, 랜덤-액세스 메모리(random-access memory, RAM)이다. 플래시 메모리 칩은 플로피 디스크, 하드 디스크, 솔리드-스테이트 드라이브, 또는 광학 디스크와 같은, 프로그램 코드를 저장할 수 있는 임의의 머신 판독가능 매체이다. 메모리(112)는 파워-오프 보호 기능(power-off protection function)을 갖는다. 파워-오프 보호 기능은, 시스템이 파워 오프된 다음 다시 파워 온될 때 메모리(112)에 저장된 데이터가 손실되지 않는다는 것을 말한다.
도 3은 도 1의 하드 디스크(12)의 개략적인 구조도이다. 도 3에 도시된 바와 같이, 하드 디스크(12)는 플래시 메모리 제어기(121) 및 복수의 플래시 메모리 칩들(122)을 포함할 수 있다. 플래시 메모리 제어기(121)는 동작을 수행하도록, 예를 들어, 제어기(11)에 의해 전송된 데이터 기입 요청 또는 데이터 판독 요청을 수행하도록 구성된다. 도 1의 제어기(11)는 시스템 제어기에 속하고, 시스템 제어기는 하드 디스크(12)의 플래시 메모리 제어기(121)와는 상이한 독립적인 디바이스라는 점에 유의해야 한다.
플래시 메모리 제어기(121)는 플래시 변환 계층(flash translation layer, FTL)을 포함한다. 플래시 변환 계층은 데이터의 논리 어드레스와 실제 어드레스 사이의 대응관계를 저장하도록 구성된다. 따라서, 플래시 변환 계층은 시스템 제어기에 의해 전송된 데이터 기입 요청 또는 데이터 판독 요청 내의 논리 어드레스를 하드 디스크 내의 데이터의 실제 어드레스로 전환하도록 구성된다. 데이터의 논리 어드레스는 시스템 제어기에 의해 할당되고, 시작 논리 어드레스 및 길이를 포함한다. 데이터의 실제 어드레스는 하드 디스크 내의 데이터의 물리 어드레스일 수 있거나, 또는 물리 어드레스에 기초하여 가상화되고 플래시 메모리 제어기에만 보이는 어드레스일 수 있다. 실제 어드레스는 시스템 제어기에 보이지 않는다.
하드 디스크는 일반적으로 하나 이상의 플래시 메모리 칩을 포함한다. 각각의 플래시 메모리 칩은 복수의 소거 블록들을 포함한다. 데이터는 페이지(page) 단위로 하드 디스크로부터 판독되거나 하드 디스크에 기입되지만, 소거 동작은 하나의 소거 블록에서만 수행될 수 있다. 소거 동작은 블록의 모든 비트들을 1로 설정하는데 사용된다. 소거 전에, 플래시 메모리 제어기는 먼저 소거 블록 내의 유효 데이터를 다른 블록의 빈 페이지에 복사할 필요가 있다. 소거 블록 내의 유효 데이터는 블록에 저장된 데이터 중 수정되지 않은 데이터이고, 이 데이터는 판독될 수 있다. 소거 블록 내의 무효 데이터는 블록에 저장된 데이터 중 수정된 데이터이고, 이 데이터는 판독되지 않을 수 있다.
각각의 소거 블록은 복수의 페이지들을 포함한다. 하드 디스크는 데이터 기입 요청을 수행할 때 페이지 단위로 데이터를 기입한다. 예를 들어, 제어기(11)는 플래시 메모리 제어기(121)에 데이터 기입 요청을 전송한다. 데이터 기입 요청은 데이터의 논리 어드레스를 포함한다. 데이터 기입 요청을 수신한 후에, 플래시 메모리 제어기(121)는 데이터를 수신 시간 순서로 하나 이상의 소거 블록에 계속적으로 기입한다. "데이터를 하나 이상의 소거 블록에 계속적으로 기입한다"는 것은: 플래시 메모리 제어기(121)가 빈 소거 블록을 검색하여 빈 소거 블록이 완전히 채워질 때까지 데이터를 빈 소거 블록에 기입하고; 데이터의 양이 소거 블록의 용량을 초과할 때, 플래시 메모리 제어기(121)가 다음 빈 소거 블록을 검색하고, 다음 빈 소거 블록에 데이터를 계속 기입하는 것을 말한다. 플래시 변환 계층은 데이터가 기입되는 페이지의 실제 어드레스와 논리 어드레스 사이의 대응관계를 확립하고 저장한다. 제어기(11)가 데이터 판독을 요청하기 위해 플래시 메모리 제어기(121)에 데이터 판독 요청을 전송할 때, 데이터 판독 요청은 논리 어드레스를 포함한다. 플래시 메모리 제어기(121)는 논리 어드레스 및 논리 어드레스와 실제 어드레스 사이의 대응관계에 기초하여 데이터를 판독하고, 그 데이터를 제어기(11)에 전송한다.
셀(cell)은 페이지의 최소 동작 단위이다. 하나의 셀은 하나의 플로팅 게이트 트랜지스터에 대응하고, 1-비트(bit) 데이터 또는 멀티-비트 데이터를 저장할 수 있으며, 이는 하드 디스크의 타입에 의존한다. 하나의 페이지 상의 셀들은 하나의 문자 라인을 공유한다. 셀은 제어 그리드 및 플로팅 게이트를 포함하고, 플로팅 게이트는 데이터를 실제로 저장하는 단위이다. 데이터는 전하(electrical charge)의 형태로 셀에 저장된다. 얼마나 많은 전하가 저장되는지는 제어 게이트에 인가되는 전압에 의존한다. 전압은 플로팅 게이트에 전하를 충전하거나 플로팅 게이트로부터 전하를 방출(release)하도록 제어 게이트를 제어한다. 데이터는 저장된 전하들의 전압이 특정 임계값을 초과하는지에 의해 표현된다. 플로팅 게이트에 데이터를 기입하는 것은, 제어 게이트에 전압을 인가하여, 충분한 전하들이 플로팅 게이트에 저장되게 하는 것이다. 전하가 임계값을 초과하면, 데이터는 0이다. 플로팅 게이트에 대한 소거 동작을 수행하는 것은 플로팅 게이트를 방전하여, 플로팅 게이트에 저장된 전하가 임계값보다 낮고, 데이터가 1이 되게 하는 것이다.
각각의 셀에 1-비트 데이터를 저장하는 하드 디스크를 SLC 하드 디스크라고 지칭한다. SLC 하드 디스크 내의 각각의 셀의 플로팅 게이트는 전압 임계값을 갖고, 따라서 0 및 1의 2개의 상태를 갖는다. 1-비트 데이터가 저장될 수 있고, 데이터 밀도는 비교적 낮다. SLC 하드 디스크는 높은 기입 속도, 낮은 전력 소비, 및 더 긴 배터리 수명의 장점들을 갖는다. 따라서, SLC 하드 디스크는 더 빠른 송신 속도 및 더 긴 서비스 수명을 갖는다. 멀티-레벨 셀(MLC) 하드 디스크 내의 각각의 셀은 4개의 상태(00, 01, 10, 및 11)를 갖고, 각각의 셀은 2-비트 데이터를 저장하는데 사용될 수 있다. SLC 하드 디스크와 비교하여, MLC 하드 디스크는 더 높은 비트 에러 레이트, 더 높은 데이터 밀도, 더 짧은 서비스 수명, 및 더 낮은 비용을 갖는다. 각각의 셀에 3-비트 데이터를 저장하는 하드 디스크는 TLC 하드 디스크라고 지칭되며, TLC 하드 디스크의 각각의 셀은 8개의 상태를 갖는다. MLC 하드 디스크의 단점들은 TLC 하드 디스크에서도 분명하지만, TLC 하드 디스크는 또한 더 높은 데이터 밀도 및 더 낮은 비용을 특징으로 한다. 또한, 각각의 셀에 4-비트 데이터를 저장하는 QLC 하드 디스크 및 다른 멀티-레벨 셀 하드 디스크가 있다. QLC 하드 디스크의 각각의 셀은 16개의 상태를 가지며, 각각의 셀은 4-비트 데이터를 저장할 수 있다.
일부 하드 디스크들 각각은 하드 디스크의 데이터 밀도를 낮춤으로써 하드 디스크의 프로그램-소거 사이클을 증가시킬 수 있어, 하드 디스크의 서비스 수명이 연장된다. 구체적으로, 하드 디스크의 데이터 밀도는 하드 디스크의 각각의 셀에 저장된 데이터의 양을 감소시킴으로써 감소될 수 있다. 예를 들어, QLC 하드 디스크는 각각의 셀에 저장된 데이터의 양을 4 비트로부터 3 비트로 조정할 수 있다. 이 경우, QLC 하드 디스크의 각각의 셀은 3-비트 데이터를 저장한다. 데이터의 양은 TLC 하드 디스크의 각각의 셀에 저장된 데이터의 양과 동일하다. QLC 하드 디스크의 데이터 저장 모드는 TLC 모드인 것으로 고려될 수 있다.
QLC 하드 디스크는 또한 각각의 셀에 저장된 데이터의 양을 4 비트로부터 2 비트 또는 1 비트로 조정할 수 있다. QLC 하드 디스크의 각각의 셀이 2-비트 데이터를 저장할 때, 데이터의 양은 MLC 하드 디스크의 각각의 셀에 저장된 데이터의 양과 동일하다. QLC 하드 디스크의 데이터 저장 모드는 MLC 모드인 것으로 고려될 수 있다. QLC 하드 디스크의 각각의 셀에 저장된 데이터의 양이 1 비트일 때, 데이터의 양은 SLC 하드 디스크의 각각의 셀에 저장된 데이터의 양과 동일하다. QLC 하드 디스크의 데이터 저장 모드는 SLC 모드인 것으로 고려될 수 있다. 유사하게, TLC 하드 디스크는 또한 데이터 저장 모드를 MLC 모드 또는 SLC 모드로 조정할 수 있고, MLC 하드 디스크는 또한 데이터 저장 모드를 SLC 모드로 조정할 수 있다.
하드 디스크의 데이터 밀도가 감소된 후에, 프로그램-소거 사이클이 그에 따라 증가되지만, 저장 공간의 일부가 손실된다. 도 4를 예로서 사용하면, QLC 하드 디스크(401)의 저장 용량은 1024 GB(기가바이트)이다. QLC 하드 디스크(401)가 데이터 저장 모드를 TLC 모드로 조정하면, TLC 모드에서의 QLC 하드 디스크(402)의 저장 용량은 768 GB이다. QLC 하드 디스크(401)가 데이터 저장 모드를 MLC 모드로 조정하면, MLC 모드에서의 QLC 하드 디스크(403)의 저장 용량은 512 GB이다. QLC 하드 디스크(401)가 데이터 저장 모드를 SLC 모드로 조정하면, SLC 모드에서의 QLC 하드 디스크(404)의 저장 용량은 256 GB이다. 따라서, 이 조정 방법은 하드 디스크의 서비스 수명을 연장시킬 수 있지만, 하드 디스크의 특정 용량이 손실될 수 있다.
따라서, 본 발명의 실시예 1은 하드 디스크 제어 방법을 제공한다. 하드 디스크 제어 방법은 하드 디스크의 서비스 수명을 연장시킬 수 있고, 하드 디스크의 용량이 손실되지 않는 것을 보장할 수 있다. 이 방법은 도 1에 도시된 플래시 메모리 어레이에 적용될 수 있다. 도 5에 도시된 바와 같이, 방법은 다음의 단계들을 포함한다.
501: 제어기(11)는 플래시 메모리 어레이에 저장된 사용자 데이터의 양이 제1 미리 설정된 값 이상인지를 검출한다.
플래시 메모리 어레이에서의 제어기(11)는 플래시 메모리 어레이에 저장된 사용자 데이터의 양이 제1 미리 설정된 값보다 큰지를 검출한다. 예를 들어, 제1 미리 설정된 값은 현재 용량의 80%일 수 있다. 플래시 메모리 어레이에 저장된 사용자 데이터의 양이 제1 미리 설정된 값 이상일 때, 플래시 메모리 어레이가 현재 데이터 저장 모드에서 데이터를 계속 기입하면, 플래시 메모리 어레이의 잔여 용량이 거의 소진된다.
예를 들어, 2개의 하드 디스크가 플래시 메모리 어레이에 배치되고, 2개의 하드 디스크의 데이터 저장 모드들은 각각 SLC 모드로 미리 설정된다. 2개의 하드 디스크 각각은 도 4의 SLC 모드의 QLC 하드 디스크(404)일 수 있고, SLC 모드의 2개의 QLC 하드 디스크의 저장 용량은 각각 256 GB이다. 이 경우, 전체 플래시 메모리 어레이의 저장 용량은 512 GB이다. 제1 미리 설정된 값은 409.6 GB일 수 있다. 플래시 메모리 어레이에서의 제어기(11)가 플래시 메모리 어레이 내의 SLC 모드의 2개의 QLC 하드 디스크에 저장된 사용자 데이터의 양이 409.6 GB 이상인 것을 검출하면, 그리고 플래시 메모리 어레이가 SLC 모드에서 데이터를 계속 기입하면, 플래시 메모리 어레이의 잔여 용량은 거의 소진된다.
플래시 메모리 어레이에서, SLC 모드에서 데이터가 저장되는 저장 공간만이 미리 설정될 수 있거나, MLC 모드, TLC 모드, 또는 QLC 모드에서 데이터가 저장되는 저장 공간이 미리 설정될 수 있다.
플래시 메모리 어레이에서의 제어기(11)는 플래시 메모리 어레이 내의 각각의 하드 디스크의 플래시 메모리 제어기(121)를 사용하여 각각의 하드 디스크 내의 사용자 데이터의 양을 검출하여, 전체 플래시 메모리 어레이에서의 사용자 데이터의 양을 결정하고, 그 후 플래시 메모리 어레이에서의 사용자 데이터의 양이 제1 미리 설정된 값 이상인지를 결정할 수 있다는 점에 유의해야 한다. 제어기(11)는 각각의 하드 디스크의 플래시 메모리 제어기(121)와 상호작용하여, 각각의 하드 디스크에서의 실시간 사용자 데이터의 양을 획득할 수 있다.
502: 저장 어레이에 저장된 사용자 데이터의 양이 제1 미리 설정된 값 이상인 것을 검출할 때, 제어기(11)는 플래시 메모리 어레이 내의 저장 공간의 적어도 일부의 데이터 저장 모드를 제1 모드로부터 제2 모드로 전환한다.
설명의 편의상, SLC 모드가 제1 모드의 예로서 사용되고, MLC 모드가 제2 모드의 예로서 사용된다. 제2 모드에서 데이터를 저장하는 하드 디스크는 제1 모드에서 데이터를 저장하는 하드 디스크보다 높은 데이터 밀도를 갖는다. 플래시 메모리 어레이에서의 저장 공간의 적어도 일부의 데이터 저장 모드가 제1 모드로부터 제2 모드로 전환된 후에, 플래시 메모리 어레이의 용량이 확장될 수 있고, 더 많은 데이터가 저장될 수 있다. 제1 모드가 제2 모드로 전환된 후에, 사용자는 플래시 메모리 어레이의 용량의 변화를 인지할 수 없다는 점에 유의해야 한다.
제어기(11)가 플래시 메모리 어레이에 저장된 사용자 데이터의 양이 제1 미리 설정된 값 이상인 것을 검출할 때, 제어기(11)는 플래시 메모리 어레이 내의 저장 공간의 적어도 일부의 데이터 저장 모드를 제1 모드로부터 제2 모드로 전환한다. 예를 들어, 단계 501에서 플래시 메모리 어레이에 저장된 사용자 데이터의 양이 409.6 GB 이상일 때, 제어기(11)는 2개의 QLC 하드 디스크에서의 SLC 모드에서 데이터가 저장되는 50 GB 저장 공간의 데이터 저장 모드를 MLC 모드로 전환하여, MLC 모드에서 데이터가 저장되는 100 GB 저장 공간을 획득할 수 있다. 이러한 방식으로, 플래시 메모리 어레이의 총 저장 공간은 SLC 모드에서 데이터가 저장되는 462 GB 저장 공간 및 MLC 모드에서 데이터가 저장되는 100 GB 저장 공간이다. 플래시 메모리 어레이에서의 저장 공간은 확장될 수 있다.
마찬가지로, 사용자 데이터의 양이 제2 양 조건을 충족할 때까지 기입된 사용자 데이터의 양이 계속 증가할 때, 제어기(11)는 SLC 모드에서 데이터가 저장되는 저장 공간의 데이터 저장 모드를 MLC 모드로 계속 전환하거나, SLC 모드에서 데이터가 저장되는 저장 공간의 데이터 저장 모드를 TLC 모드 또는 QLC 모드로 계속 전환할 수 있다. 제2 양 조건은: 사용자 데이터의 양이 결정된 값 이상인 것일 수 있다. 대안적으로, 제어기(11)는 먼저 SLC 모드에서 데이터가 저장되는 저장 공간의 데이터 저장 모드를 MLC 모드로 전환하고, 그 후 데이터가 계속적으로 기입된 후에 특정 값에 도달하면, MLC 모드에서 데이터가 저장되는 저장 공간의 데이터 저장 모드를 TLC 모드로 전환할 수 있다. 마찬가지로, 사용자 데이터의 양이 계속 증가하면, TLC 모드에서 데이터가 저장되는 저장 공간의 데이터 저장 모드가 QLC 모드로 전환될 수 있다.
제어기(11)가 플래시 메모리 어레이에서의 저장 공간의 적어도 일부의 데이터 저장 모드를 제1 모드로부터 제2 모드로 전환한 후에, 사용자의 데이터 기입 요청을 수신하면, 제어기(11)는, 제2 모드에서, 플래시 메모리 어레이에 기입될 필요가 있는 타깃 데이터를 기입한다는 점에 유의해야 한다.
플래시 메모리 어레이에서의 2개의 QLC 하드 디스크의 모든 저장 공간에서의 모드들이 QLC 모드로 전환될 때, 플래시 메모리 어레이에서의 QLC 하드 디스크의 저장 용량은 최대 값에 도달할 수 있고, QLC 하드 디스크의 원래 용량과 일치한다.
제어기(11)는 플래시 메모리 어레이에서의 각각의 하드 디스크의 플래시 메모리 제어기(121)에 프로그램 명령어를 전송하여, 대응하는 하드 디스크 내의 저장 공간의 데이터 저장 모드를 전환할 것을 플래시 메모리 제어기(121)에 지시할 수 있다는 점에 유의해야 한다.
실시예 1에서 제공되는 하드 디스크 제어 방법에서, 플래시 메모리 어레이에서의 사용자 데이터의 양이 제1 미리 설정된 값 이상일 때, 제어기(11)는 플래시 메모리 어레이 내의 저장 공간의 데이터 저장 모드를 전환하여, 플래시 메모리 어레이 내의 하드 디스크의 데이터 밀도를 개선하고, 플래시 메모리 어레이 내의 저장 공간의 용량을 증가시켜, 플래시 메모리 어레이의 용량이 손실되지 않게 할 수 있다.
실시예 1에서, 제1 미리 설정된 값이 비교적 낮은 경우, 플래시 메모리 어레이에서의 사용자 데이터의 양이 제1 미리 설정된 값에 도달할 때, 플래시 메모리 어레이는 데이터가 저장되지 않은 많은 양의 저장 공간을 여전히 갖는다. 제어기(11)는 먼저 플래시 메모리 어레이 내의 저장 공간의 적어도 일부의 데이터 저장 모드를 제1 모드로부터 제2 모드로 전환하고, 그 후 플래시 메모리 어레이에서의 사용자 데이터를 제2 모드에서 데이터가 저장되는 저장 공간으로 마이그레이션하고, 플래시 메모리 어레이 내의 모든 저장 공간의 데이터 저장 모드들이 제2 모드로 전환될 때까지, 사용자 데이터가 마이그레이션되기 전에 점유된 저장 공간의 모드를 제2 모드로 계속적으로 전환할 수 있다. 도 6에 도시된 바와 같이, 실시예 2는 다음을 포함한다:
601: 제어기(11)는 플래시 메모리 어레이에 저장된 사용자 데이터의 양이 제1 미리 설정된 값 이상인지를 검출한다.
단계 601의 이해를 위해, 실시예 1에서의 단계 501을 참조한다. 상세사항들은 여기서 다시 설명되지 않는다.
602: 저장 어레이에 저장된 사용자 데이터의 양이 제1 미리 설정된 값 이상인 것을 검출할 때, 제어기(11)는 플래시 메모리 어레이 내의 저장 공간의 적어도 일부의 데이터 저장 모드를 제1 모드로부터 제2 모드로 전환한다.
단계 602의 이해를 위해, 실시예 1에서의 단계 502를 참조한다. 상세사항들은 여기서 다시 설명되지 않는다.
603: 제어기(11)는 사용자 데이터의 적어도 일부를 제2 모드에서 데이터가 저장되는 저장 공간으로 마이그레이션한다.
제어기(11)는 제1 모드에서 데이터가 저장되는 저장 공간 내의 사용자 데이터의 적어도 일부의 양을 제2 모드에서 데이터가 저장되는 저장 공간으로 마이그레이션한다. 제1 미리 설정된 값이 비교적 낮은 경우, 예를 들어, 플래시 메모리 어레이의 저장 용량이 512 GB인 경우, SLC 모드에서 데이터를 저장하는 2개의 하드 디스크가 플래시 메모리 어레이에 배치되고, 제1 미리 설정된 값은 100 GB이다. 단계 602에서, 제어기(11)는 플래시 메모리 어레이에서의 데이터가 저장되지 않은 200 GB 저장 공간의 데이터 저장 모드를 MLC 모드로 전환하여, MLC 모드에서 데이터가 저장되는 400 GB 저장 공간을 획득할 수 있다. 그 후, 제어기(11)는 플래시 메모리 어레이에서의 SLC 모드에서 데이터가 저장되는 저장 공간의 100 GB 사용자 데이터를 MLC 모드에서 데이터가 저장되는 저장 공간으로 마이그레이션한다.
선택적으로, 제어기(11)는 또한 SLC 모드에서 데이터가 저장되는 저장 공간 내의 데이터의 일부를 MLC 모드에서 데이터가 저장되는 저장 공간으로 마이그레이션하고, 그 후 SLC 모드에서 데이터가 저장되는 저장 공간의 데이터 저장 모드를 MLC 모드로 전환할 수 있다.
플래시 메모리 어레이에서, 하드 디스크 내의 데이터가 다른 하드 디스크로 마이그레이션되는 경우, 제어기(11)는 이 액션을 수행할 필요가 있다는 점에 유의해야 한다. 플래시 메모리 어레이에서의 하드 디스크의 한 영역 내의 데이터가 다른 영역으로 마이그레이션되는 경우, 이 마이그레이션 프로세스는 제어기(11)에 의해 수행될 수 있거나, 또는 하드 디스크의 플래시 메모리 제어기(121)에 지시함으로써 제어기(11)에 의해 수행될 수 있다.
604: 제어기(11)는 사용자 데이터의 적어도 일부에 의해 점유된 저장 공간을 해제한다.
제어기(11)는 플래시 메모리 어레이에서의 사용자 데이터의 적어도 일부에 의해 점유된 저장 공간을 해제한다. 사용자 데이터의 적어도 일부는 제2 모드에서 데이터가 저장되는 저장 공간으로 마이그레이션된 사용자 데이터일 수 있다. 예를 들어, 단계 603에서, 100 GB 사용자 데이터는 MLC 모드에서 데이터가 저장되는 저장 공간으로 마이그레이션된다. 이 해제 프로세스는: 저장 공간에 저장된 사용자 데이터의 일부를 삭제하고, 그 후 저장 공간의 일부에서 소거 블록을 소거하는 것을 포함할 수 있다.
제어기(11)는 플래시 메모리 어레이 내의 각각의 하드 디스크의 플래시 메모리 제어기(121)에 하드 디스크의 저장 공간을 해제하도록 지시할 수 있다는 것을 이해할 수 있다.
605: 제어기(11)는 사용자 데이터의 적어도 일부에 의해 점유된 저장 공간의 데이터 저장 모드를 제2 모드로 전환한다.
제어기(11)는 사용자 데이터의 적어도 일부에 의해 점유된 저장 공간의 데이터 저장 모드를 제2 모드로 전환한다. 데이터의 적어도 일부에 의해 점유된 공간은 단계 604에서 해제된 공간일 수 있다. 이 전환 프로세스는 단계 602에서의 설명과 동일하다. 제어기(11)는 각각의 하드 디스크의 플래시 메모리 제어기(121)에 대응하는 하드 디스크 내의 저장 공간의 데이터 저장 모드를 전환하도록 지시할 수 있다.
실시예 2에서 제공되는 하드 디스크 제어 방법에 따르면, 플래시 메모리 어레이에서의 사용자 데이터의 양이 제1 미리 설정된 값 이상일 때, 플래시 메모리 어레이에서의 데이터가 저장되지 않은 저장 공간의 데이터 저장 모드를 먼저 제1 모드로부터 제2 모드로 전환하여, 플래시 메모리 어레이의 용량을 확장할 수 있다. 그 후, 제1 모드에서 데이터가 저장되는 저장 공간 내의 데이터는 제2 모드에서 데이터가 저장되는 저장 공간으로 마이그레이션되고, 마이그레이션된 데이터에 의해 점유된 저장 공간이 해제된 후에, 해제된 저장 공간의 데이터 저장 모드는 제2 모드로 계속적으로 전환된다. 이러한 방식으로, 플래시 메모리 어레이에서의 모든 저장 공간의 데이터 저장 모드들은 제2 모드로 점진적으로 전환되어, 플래시 메모리 어레이에서의 데이터 저장 용량을 확장할 수 있다.
실시예 1에서, 제1 미리 설정된 값이 비교적 높은 값으로 설정되면, 플래시 메모리 어레이에서의 사용자 데이터의 양이 제1 미리 설정된 값에 도달할 때, 플래시 메모리 어레이에서의 제1 모드에서 데이터가 저장되는 저장 공간이 거의 소진된다. 제어기(11)는 먼저 제1 모드에서 데이터가 저장되는 저장 공간 내의 데이터의 일부를 제2 모드에서 데이터가 저장되는 미리 설정된 저장 공간으로 마이그레이션하고, 그 후 제1 모드에서 데이터가 저장되는 저장 공간의 일부를 해제하고, 제1 모드에서 데이터가 저장되는 저장 공간의 데이터 저장 모드를 제2 모드로 전환할 수 있다. 도 7에 도시된 바와 같이, 실시예 3은 다음을 포함한다:
701: 제어기(11)는 플래시 메모리 어레이에 저장된 사용자 데이터의 양이 제1 미리 설정된 값 이상인지를 검출한다.
단계 701의 이해를 위해, 실시예 1에서의 단계 501을 참조한다. 상세사항들은 여기서 다시 설명되지 않는다.
702: 저장 어레이에 저장된 사용자 데이터의 양이 제1 미리 설정된 값 이상인 것을 검출할 때, 제어기(11)는 제1 모드에서 데이터가 저장되는 저장 공간 내의 사용자 데이터의 적어도 일부를 제2 모드에서 데이터가 저장되는 미리 설정된 저장 공간으로 마이그레이션한다.
설명의 편의상, SLC 모드가 제1 모드의 예로서 사용되고, MLC 모드가 제2 모드의 예로서 사용된다. 제어기(11)가 플래시 메모리 어레이에 저장된 사용자 데이터의 양이 제1 미리 설정된 값 이상인 것을 검출할 때, 제어기(11)는, 제2 모드에서, 플래시 메모리 어레이에서의 제1 모드에서 데이터가 저장되는 저장 공간 내의 사용자 데이터의 적어도 일부를 제2 모드에서 데이터가 저장되는 미리 설정된 저장 공간에 기입한다. 예를 들어, SLC 모드에서 데이터가 저장되는 256 GB 저장 공간 및 MLC 모드에서 데이터가 저장되는 512 GB 저장 공간이 플래시 메모리 어레이에서 설정되는 경우, 제1 미리 설정된 값은 200 GB일 수 있다. 플래시 메모리 어레이에서의 사용자 데이터의 양이 200 GB 미만일 때, 플래시 메모리 어레이는 SLC 모드에서 데이터가 저장되는 저장 공간에 기입된 데이터를 저장한다. SLC 모드에서 데이터가 저장되는 저장 공간 내의 사용자 데이터의 양이 200 GB 이상일 때, 제어기(11)는 200 GB 데이터에서의 데이터의 적어도 일부를 MLC 모드에서 데이터가 저장되는 공간으로 마이그레이션한다.
이러한 데이터 마이그레이션 프로세스는 제어기(11)에 의해 수행될 수 있거나, 또는 플래시 메모리 어레이에서의 하드 디스크의 플래시 메모리 제어기(121)에 지시함으로써 제어기(11)에 의해 수행될 수 있다는 점에 유의해야 한다. 상세사항들에 대해서는, 실시예 2에서의 단계 603을 참조한다. 상세사항들은 여기서 다시 설명되지 않는다.
703: 제어기(11)는 사용자 데이터의 적어도 일부에 의해 점유된 저장 공간을 해제한다.
제어기(11)는 플래시 메모리 어레이에서의 사용자 데이터의 적어도 일부에 의해 점유된 저장 공간을 해제한다. 사용자 데이터의 적어도 일부는 제2 모드에서 데이터가 저장되는 저장 공간으로 마이그레이션된 사용자 데이터, 예를 들어, 단계 702에서 MLC 모드에서 데이터가 저장되는 저장 공간으로 마이그레이션된 데이터일 수 있다. 이 해제 프로세스는 실시예 2에서의 단계 604에서 설명된다. 상세사항들은 여기서 다시 설명되지 않는다. 해제 프로세스는 다음과 같을 수 있다: 제어기(11)는 플래시 메모리 어레이 내의 각각의 하드 디스크의 플래시 메모리 제어기(121)에 대응하는 하드 디스크의 저장 공간을 해제하도록 지시한다.
704: 제어기(11)는 사용자 데이터의 적어도 일부에 의해 점유된 저장 공간의 데이터 저장 모드를 제2 모드로 전환한다.
제어기(11)는 사용자 데이터의 적어도 일부에 의해 점유된 저장 공간의 데이터 저장 모드를 제2 모드로 전환한다. 데이터의 적어도 일부에 의해 점유된 공간은 단계 703에서 해제된 공간일 수 있다. 이 전환 프로세스는 실시예 1에서의 단계 502 및 실시예 2에서의 단계 602의 설명과 동일하다. 제어기(11)는 각각의 하드 디스크의 플래시 메모리 제어기(121)에 대응하는 하드 디스크 내의 저장 공간의 데이터 저장 모드를 전환하도록 지시할 수 있다.
실시예 3에서 제공되는 하드 디스크 제어 방법은, 제1 미리 설정된 값이 비교적 높고, 플래시 메모리 어레이에서의 제1 모드에서 데이터가 저장되는 저장 공간이 거의 소진되는 경우에 적용될 수 있다. 플래시 메모리 어레이는 먼저 데이터를 마이그레이션하고 저장 공간을 전환할 수 있다. 이러한 방식으로, 플래시 메모리 어레이에서의 저장 공간을 확장하면서 데이터 보안을 보장할 수 있다.
실시예 2 및 실시예 3에서, 제어기(11)는 제2 모드에서 데이터가 저장되는 저장 공간으로 사용자 데이터를 마이그레이션하고, 제2 모드에서 데이터가 저장되는 저장 공간은 플래시 메모리 어레이 내의 하드 디스크 상에 위치한다. 다른 구현에서, 제어기(11)는 또한 사용자 데이터를 제어기(11)의 메모리(112)로 마이그레이션할 수 있다. 제1 모드에서 데이터가 저장되는 저장 공간의 일부를 해제한 후에, 제어기(11)는 제1 모드에서 데이터가 저장되는 저장 공간의 데이터 저장 모드를 제2 모드로 전환하고, 그 후, 제2 모드에서, 메모리(112)로 마이그레이션된 사용자 데이터를 제2 모드에서 데이터가 저장되는 저장 공간에 기입한다.
실시예 1 내지 실시예 3에서, 제1 양 조건은: 사용자 데이터의 양이 제1 미리 설정된 값 이상인 것이다. 플래시 메모리 어레이에 저장된 사용자 데이터의 양이 제1 미리 설정된 값 이상일 때, 제어기(11)는 플래시 메모리 어레이 내의 공간의 적어도 일부의 데이터 저장 모드를 제1 모드로부터 제2 모드로 전환할 수 있다. 제2 모드에서 데이터를 저장하는 하드 디스크는 제1 모드에서 데이터를 저장하는 하드 디스크보다 높은 데이터 밀도를 갖는다. 이러한 방식으로, 플래시 메모리 어레이의 용량이 확장된다. 실시예 4는 다른 하드 디스크 제어 방법을 제공할 수 있다. 이 방법에서, 제1 양 조건은 또한: 사용자 데이터의 양이 제2 미리 설정된 값 미만인 것일 수 있으며, 제2 미리 설정된 값은 실시예 1 내지 실시예 3에서의 제1 미리 설정된 값과 동일하거나 상이할 수 있다.
플래시 메모리 어레이에서의 사용자 데이터의 양이 제2 미리 설정된 값 미만이면, 제어기(11)는 또한 플래시 메모리 어레이 내의 공간의 적어도 일부의 데이터 저장 모드를 제3 모드로부터 제4 모드로 전환할 수 있다. 설명의 편의상, 제3 모드가 QLC 모드인 예가 사용되고, 제4 모드가 TLC 모드인 예가 사용된다. 제3 모드에서 데이터를 저장하는 하드 디스크는 제4 모드에서 데이터를 저장하는 하드 디스크보다 높은 밀도를 갖는다. 이 방법은 데이터 저장에 영향을 주지 않고서 하드 디스크의 프로그램-소거 사이클을 증가시킬 수 있고, 하드 디스크의 서비스 수명을 연장시킬 수 있다. 도 8에 도시된 바와 같이, 실시예 4는 다음을 포함한다:
801: 제어기(11)는 플래시 메모리 어레이에 저장된 사용자 데이터의 양이 제2 미리 설정된 값 미만인지를 검출한다.
플래시 메모리 어레이에서의 제어기(11)는 플래시 메모리 어레이에 저장된 사용자 데이터의 양이 제2 미리 설정된 값 미만인지를 검출한다. 예를 들어, 제2 미리 설정된 값은 현재 용량의 50%일 수 있다. 이 경우, 플래시 메모리 어레이에서의 사용자 데이터에 의해 점유된 저장 공간의 데이터 저장 모드는 제3 모드이다. 제3 모드에서 데이터를 저장하는 하드 디스크는 비교적 높은 데이터 밀도를 갖지만, 프로그램-소거 사이클은 비교적 작다.
예를 들어, 2개의 하드 디스크가 플래시 메모리 어레이에 배치되고, 2개의 하드 디스크의 데이터 저장 모드들은 각각 QLC 모드로 미리 설정된다. 2개의 하드 디스크 각각은 도 4의 QLC 하드 디스크(401)일 수 있고, 2개의 하드 디스크의 저장 용량은 각각 1024 GB이다. 이 경우, 전체 플래시 메모리 어레이의 저장 용량은 2048 GB이다. 플래시 메모리 어레이가 사용자의 요건에 기초하여 플래시 메모리 어레이에서의 데이터를 삭제할 때, 플래시 메모리 어레이에 저장된 사용자 데이터의 양이 1024 GB 미만이 될 때까지 삭제된다. 이 경우, 플래시 메모리 어레이에서의 데이터가 저장되지 않은 적어도 1024 GB 저장 공간이 있고, 데이터가 저장되지 않은 저장 공간의 데이터 저장 모드는 QLC 모드이고, QLC 모드에서 데이터가 저장되는 공간의 프로그램-소거 사이클은 비교적 작다.
플래시 메모리 어레이에서, QLC 모드에서 데이터가 저장되는 저장 공간만이 미리 설정될 수 있거나, SLC 모드, MLC 모드, 또는 TLC 모드에서 데이터가 저장되는 저장 공간이 미리 설정될 수 있다.
플래시 메모리 어레이에서의 제어기(11)는 플래시 메모리 어레이 내의 각각의 하드 디스크의 플래시 메모리 제어기(121)를 사용하여 각각의 하드 디스크 내의 사용자 데이터의 양을 검출하여, 전체 플래시 메모리 어레이에서의 사용자 데이터의 양을 획득하고, 그 후 플래시 메모리 어레이에서의 사용자 데이터의 양이 제2 미리 설정된 값 미만인지를 결정할 수 있다는 점에 유의해야 한다. 제어기(11)는 각각의 하드 디스크의 플래시 메모리 제어기(121)와 상호작용하여, 각각의 하드 디스크에서의 실시간 사용자 데이터의 양을 획득할 수 있다.
802: 저장 어레이에 저장된 사용자 데이터의 양이 제2 미리 설정된 값 미만인 것을 검출할 때, 제어기(11)는 플래시 메모리 어레이 내의 저장 공간의 적어도 일부의 데이터 저장 모드를 제3 모드로부터 제4 모드로 전환한다.
제어기(11)가 플래시 메모리 어레이에 저장된 사용자 데이터의 양이 제2 미리 설정된 값 미만인 것을 검출할 때, 제어기(11)는 플래시 메모리 어레이 내의 저장 공간의 적어도 일부의 데이터 저장 모드를 제3 모드로부터 제4 모드로 전환하고, 제3 모드에서 데이터를 저장하는 하드 디스크는 제4 모드에서 데이터를 저장하는 하드 디스크보다 높은 데이터 밀도를 갖는다. 이러한 방식으로, 전환 후의 공간의 적어도 일부의 프로그램-소거 사이클이 증가될 수 있다. 플래시 메모리 어레이 내의 저장 공간의 적어도 일부의 데이터 저장 모드가 제3 모드로부터 제4 모드로 전환되는 프로세스는 사용자에 의해 인지되지 않는다는 점에 유의해야 한다.
예를 들어, 단계 801에서 플래시 메모리 어레이에 저장된 사용자 데이터의 양이 1024 GB 미만일 때, 제어기(11)는 2개의 QLC 하드 디스크에서의 QLC 모드에서 데이터가 저장되는 500 GB 저장 공간의 데이터 저장 모드를 TLC 모드로 전환하여, TLC 모드에서 데이터가 저장되는 375 GB 저장 공간을 획득할 수 있다. TLC 모드에서 데이터가 저장되는 저장 공간의 프로그램-소거 사이클은 비교적 크다.
마찬가지로, 사용자 데이터의 양이 제2 양 조건을 충족할 때까지 플래시 메모리 어레이에 저장된 사용자 데이터의 양이 계속 증가할 때, 제어기(11)는 QLC 모드에서 데이터가 저장되는 저장 공간의 모드를 TLC 모드로 계속 전환하거나, QLC 모드에서 데이터가 저장되는 저장 공간의 모드를 MLC 모드 또는 SLC 모드로 계속 전환할 수 있다. 제2 양 조건은: 사용자 데이터의 양이 결정된 값보다 낮은 것일 수 있다. 대안적으로, 제어기(11)는 먼저 QLC 모드에서 데이터가 저장되는 저장 공간의 데이터 저장 모드를 TLC 모드로 전환하고, 그 후 사용자 데이터의 양이 특정 값으로 계속 감소하면 TLC 모드에서 데이터가 저장되는 저장 공간의 데이터 저장 모드를 MLC 모드로 전환할 수 있다. 마찬가지로, 사용자 데이터의 양이 계속 감소하면, MLC 모드에서 데이터가 저장되는 저장 공간의 데이터 저장 모드가 SLC 모드로 전환될 수 있다.
제어기(11)가 플래시 메모리 어레이에서의 저장 공간의 적어도 일부의 데이터 저장 모드를 제3 모드로부터 제4 모드로 전환한 후에, 사용자의 데이터 기입 요청을 수신하면, 제어기(11)는, 제4 모드에서, 플래시 메모리 어레이에 기입될 필요가 있는 타깃 데이터를 기입한다는 점에 유의해야 한다.
플래시 메모리 어레이에서의 2개의 QLC 하드 디스크의 모든 저장 공간의 모드들이 SLC 모드로 전환될 때, 플래시 메모리 어레이에서의 QLC 하드 디스크의 프로그램-소거 사이클은 최대 값에 도달할 수 있다.
제어기(11)는 플래시 메모리 어레이에서의 각각의 하드 디스크의 플래시 메모리 제어기(121)에 프로그램 명령어를 전송하여, 대응하는 하드 디스크 내의 저장 공간의 데이터 저장 모드를 전환할 것을 플래시 메모리 제어기(121)에 지시할 수 있다는 점에 유의해야 한다.
제어기(11)가 플래시 메모리 어레이 내의 저장 공간의 적어도 일부의 데이터 저장 모드를 제3 모드로부터 제4 모드로 전환한 후에, 제어기(11)는 또한 제3 모드에서 데이터가 저장되는 저장 공간의 데이터를 제4 모드에서 데이터가 저장되는 저장 공간으로 마이그레이션하고, 그 후 플래시 메모리 어레이 내의 모든 공간의 데이터 저장 모드들이 제4 모드로 전환될 때까지, 제3 모드에서 데이터가 저장되는 공간의 데이터 저장 모드를 제4 모드로 계속적으로 전환할 수 있다는 것을 이해할 수 있다. 이는 플래시 메모리 어레이의 프로그램-소거 사이클을 증가시킬 수 있다. 상세사항들에 대해서는, 실시예 2를 참조한다. 상세사항들은 여기서 다시 설명되지 않는다.
제4 모드에서 데이터가 저장되는 저장 공간이 플래시 메모리 어레이에 미리 설정되면, 제어기(11)는 먼저 제3 모드에서 데이터가 저장되는 저장 공간 내의 데이터를 제4 모드에서 데이터가 저장되는 저장 공간으로 마이그레이션하고, 그 후 제3 모드에서 데이터가 저장되는 저장 공간의 데이터 저장 모드를 제4 모드로 전환할 수 있다. 상세사항들에 대해서는, 이해를 위해 실시예 3을 참조한다. 상세사항들은 여기서 다시 설명되지 않는다.
실시예 4에서 제공되는 하드 디스크 제어 방법에서, 플래시 메모리 어레이에서의 사용자 데이터의 양이 제2 미리 설정된 값 미만일 때, 제어기(11)는 플래시 메모리 어레이 내의 저장 공간의 데이터 저장 모드를 전환하고, 플래시 메모리 어레이 내의 하드 디스크의 데이터 밀도를 감소시키고, 플래시 메모리 어레이의 프로그램-소거 사이클을 증가시킬 수 있다. 이는 플래시 메모리 어레이의 서비스 수명을 연장시킬 수 있다.
실시예 1 내지 실시예 4에서 제공되는 하드 디스크 제어 방법들은 모두 도 1에 도시된 플래시 메모리 어레이에 대한 것이며, 방법은 도 3에 도시된 하드 디스크에도 적용될 수 있다. 실시예 5는 하드 디스크 제어 방법을 제공한다. 도 9에 도시된 바와 같이, 방법은 다음의 단계들을 포함할 수 있다.
901: 플래시 메모리 제어기(121)는 하드 디스크에 저장된 사용자 데이터의 양이 제1 양 조건을 충족시키는지를 검출한다.
플래시 메모리 제어기(121)는 하드 디스크에 저장된 사용자 데이터의 양이 제1 양 조건을 충족시키는지를 검출한다. 제1 양 조건은: 실시예 1 내지 실시예 3에서의 사용자 데이터의 양이 제1 미리 설정된 값 이상인 것일 수 있다. 플래시 메모리 어레이에 저장된 사용자 데이터의 양이 제1 미리 설정된 값 이상일 때, 하드 디스크가 데이터를 계속 기입하면, 하드 디스크의 잔여 용량이 거의 소진된다. 상세사항들에 대해서는, 이해를 위해 실시예 1에서의 단계 501을 참조한다. 상세사항들은 여기서 다시 설명되지 않는다.
제1 양 조건은 또한: 실시예 4에서의 사용자 데이터의 양이 제2 미리 설정된 값 미만인 것일 수 있으며, 제2 미리 설정된 값은 제1 미리 설정된 값과 동일하거나 동일하지 않을 수 있다. 하드 디스크에 저장된 사용자 데이터의 양이 제2 미리 설정된 값 미만일 때, 하드 디스크에서의 플래시 메모리 제어기(121)는 하드 디스크의 데이터 밀도를 감소시켜, 프로그램-소거 사이클을 증가시킬 수 있다. 상세사항들에 대해서는, 이해를 위해 실시예 4에서의 단계 801을 참조한다. 상세사항들은 여기서 다시 설명되지 않는다.
902: 하드 디스크에 저장된 사용자 데이터의 양이 제1 양 조건을 충족시키는 것을 검출할 때, 플래시 메모리 제어기(121)는 하드 디스크 내의 저장 공간의 적어도 일부의 데이터 저장 모드를 제5 모드로부터 제6 모드로 전환한다.
설명의 편의상, MLC 모드가 제5 모드의 예로서 사용될 수 있다. 단계 901에서, 플래시 메모리 제어기(121)가 하드 디스크에서의 사용자 데이터의 양이 제1 미리 설정된 값 이상인 것을 검출하면, 플래시 메모리 제어기(121)는 하드 디스크 내의 저장 공간의 적어도 일부의 데이터 저장 모드를 제5 모드로부터 제6 모드로 전환할 수 있고, 여기서 TLC 모드가 제6 모드의 예로서 사용될 수 있다. 플래시 메모리 제어기(121)가 하드 디스크 내의 저장 공간의 적어도 일부의 데이터 저장 모드를 제5 모드로부터 제6 모드로 전환한 후에, 하드 디스크의 용량이 확장될 수 있고, 더 많은 데이터가 저장될 수 있다. 상세사항들에 대해서는, 이해를 위해 실시예 1에서의 단계 502을 참조한다. 상세사항들은 여기서 다시 설명되지 않는다.
단계 902에서, 플래시 메모리 제어기(121)가 하드 디스크에서의 사용자 데이터의 양이 제1 미리 설정된 값 미만인 것을 검출하면, 플래시 메모리 제어기(121)는 하드 디스크 내의 저장 공간의 적어도 일부의 데이터 저장 모드를 제5 모드로부터 제6 모드로 전환할 수 있고, 여기서 SLC 모드가 제6 모드의 예로서 사용될 수 있다. 플래시 메모리 제어기(121)가 하드 디스크 내의 저장 공간의 적어도 일부의 데이터 저장 모드를 제5 모드로부터 제6 모드로 전환한 후에, 프로그램-소거 사이클이 증가된다. 상세사항들에 대해서는, 이해를 위해 실시예 4에서의 단계 802를 참조한다. 상세사항들은 여기서 다시 설명되지 않는다.
플래시 메모리 제어기(121)가 하드 디스크 내의 저장 공간의 적어도 일부의 데이터 저장 모드를 제5 모드로부터 제6 모드로 전환한 후에, 플래시 메모리 제어기(121)는 또한 제5 모드에서 데이터가 저장되는 저장 공간의 데이터를 제6 모드에서 데이터가 저장되는 저장 공간으로 마이그레이션하고, 데이터에 의해 점유된 저장 공간을 해제하고, 그 후 하드 디스크 내의 모든 저장 공간의 데이터 저장 모드들이 제6 모드로 전환될 때까지, 제5 모드에서 데이터가 저장되는 저장 공간의 데이터 저장 모드를 제6 모드로 계속적으로 전환할 수 있다는 것을 이해할 수 있다. 상세사항들에 대해서는, 실시예 2를 참조한다. 상세사항들은 여기서 다시 설명되지 않는다.
제6 모드에서 데이터가 저장되는 저장 공간이 하드 디스크에 미리 설정되면, 플래시 메모리 제어기(121)는 먼저 제5 모드에서 데이터가 저장되는 저장 공간 내의 데이터를 제6 모드에서 데이터가 저장되는 저장 공간으로 마이그레이션하고, 그 후 제5 모드에서 데이터가 저장되는 저장 공간의 데이터 저장 모드를 제6 모드로 전환할 수 있다. 상세사항들에 대해서는, 이해를 위해 실시예 3을 참조한다. 상세사항들은 여기서 다시 설명되지 않는다.
플래시 메모리 제어기(121)가 하드 디스크 내의 저장 공간의 적어도 일부의 데이터 저장 모드를 제5 모드로부터 제6 모드로 전환한 후에, 플래시 메모리 제어기가 데이터 기입 요청을 수신하면, 플래시 메모리 제어기는 제6 모드에서 하드 디스크에 타깃 데이터를 기입한다는 것을 이해할 수 있다.
실시예 6은 하드 디스크 제어 장치를 제공한다. 하드 디스크 제어 장치는 실시예 9에서의 하드 디스크 제어 방법에 적용될 수 있다. 도 10에 도시된 바와 같이, 하드 디스크 제어 장치는 검출 모듈(1001), 처리 모듈(1002) 및 수신 모듈(1003)을 포함한다.
검출 모듈(1001)은 하드 디스크에 저장된 사용자 데이터의 양이 제1 양 조건을 충족시키는지를 검출하도록 구성된다. 이해를 위해, 실시예 5에서의 단계 901을 참조한다. 상세사항들은 여기서 다시 설명되지 않는다.
처리 모듈(1002)은: 저장된 사용자 데이터의 양이 제1 양 조건을 충족할 때, 하드 디스크 내의 저장 공간의 적어도 일부의 데이터 저장 모드를 제5 모드로부터 제6 모드로 전환하도록 구성된다. 상세사항들에 대해서는, 실시예 5에서의 단계 902를 참조한다. 상세사항들은 여기서 다시 설명되지 않는다.
처리 모듈(1002)은 제5 모드에서 데이터가 저장되는 저장 공간 내의 데이터를 제6 모드에서 데이터가 저장되는 저장 공간으로 마이그레이션하도록 추가로 구성된다. 상세사항들에 대해서는, 실시예 5에서의 단계 902를 참조한다. 상세사항들은 여기서 다시 설명되지 않는다.
처리 모듈(1002)은 사용자 데이터의 적어도 일부에 의해 점유된 저장 공간을 해제하도록 추가로 구성된다. 상세사항들에 대해서는, 실시예 5에서의 단계 902를 참조한다. 상세사항들은 여기서 다시 설명되지 않는다.
수신 모듈(1003)은 데이터 기입 요청을 수신하도록 구성되고, 데이터 기입 요청은 타깃 데이터를 포함한다. 상세사항들에 대해서는, 실시예 5에서의 단계 902를 참조한다. 상세사항들은 여기서 다시 설명되지 않는다. 하드 디스크 제어 장치는 하드 디스크에 위치할 수 있고, 플래시 메모리 제어기(121)는 하드 디스크 제어 장치의 특정 기능을 수행한다. 다른 구현에서, 하드 디스크 제어 장치는 플래시 메모리 어레이 내의 제어기에 위치할 수 있고, 각각의 모듈은 메모리 내의 프로그램 코드를 호출함으로써 제어기 내의 프로세서에 의해 실행된다.
실시예 7은 제어기(11)를 제공한다. 제어기(11)는 실시예 1 내지 실시예 4에서의 플래시 메모리 어레이에 적용된다. 도 11을 참조하면, 본 발명의 실시예 7은 제어기(11)를 제공한다. 제어기(11)는:
프로세서(1101), 메모리(1102), 및 송수신기(1103)를 포함할 수 있다. 제어기(11)는 하드웨어 구조의 디바이스이고, 실시예 1 내지 실시예 4에서의 플래시 메모리 어레이 내의 제어기에 의해 수행되는 단계들을 수행하도록 구성될 수 있다. 예를 들어, 본 기술분야의 통상의 기술자는 실시예 1에서의 단계 501을 생각해 낼 수 있다. 제어기(11)는 송수신기(1103)를 사용하여 시그널링을 전송해서 플래시 메모리 어레이 내의 각각의 하드 디스크 내의 사용자 데이터의 양을 질의(query)하고, 그 후 송수신기(1103)를 사용하여 각각의 하드 디스크 내의 사용자 데이터의 양을 수신할 수 있다. 프로세서(1101)는 메모리(1102) 내의 프로그램을 호출하여 모든 하드 디스크들 내의 사용자 데이터의 양들을 합산해서 플래시 메모리 어레이에서의 사용자 데이터의 양을 획득하고, 사용자 데이터의 양을 제1 미리 설정된 값과 비교하여, 플래시 메모리 어레이에서의 사용자 데이터의 양이 제1 미리 설정된 값 이상인지를 결정한다. 또한, 프로세서(1101)는, 송수신기(1103)를 사용하여, 플래시 메모리 어레이 내의 각각의 하드 디스크에 커맨드를 추가로 전송하여, 하드 디스크 내의 대응하는 영역에서의 저장 공간의 데이터 저장 모드를 제1 모드로부터 제2 모드로 전환하도록 하드 디스크 내의 플래시 메모리 제어기에 지시할 수 있다. 상세사항들에 대해서는, 실시예 1에서의 단계 502를 참조한다.
선택적으로, 프로세서(1101)는 하나 이상의 중앙 처리 유닛(central processing unit, CPU), 마이크로프로세서, 주문형 집적 회로(application-specific integrated circuit, ASIC), 또는 본 발명의 해결책들에서의 프로그램 실행을 제어하도록 구성되는 하나 이상의 집적 회로일 수 있다.
프로세서(1101), 메모리(1102), 및 송수신기(1103)는 버스(1104)를 사용하여 접속된다. 버스(1104)는 주변 컴포넌트 인터커넥트(peripheral component interconnect, PCI) 버스, 확장된 산업 표준 아키텍처(extended industry standard architecture, EISA) 버스 등일 수 있다. 버스는 어드레스 버스, 데이터 버스, 제어 버스 등으로 분류될 수 있다.
본 출원의 실시예들에서 제공되는 하드 디스크 제어 방법 및 관련 디바이스가 위에서 상세히 설명되었다. 본 발명의 원리 및 구현은 본 명세서에서 구체적인 예들을 통해 설명된다. 본 출원의 실시예들에 관한 설명은 단지 본 출원의 방법 및 핵심 아이디어들을 이해하는 것을 돕기 위해 제공된다. 또한, 본 기술분야의 통상의 기술자는 본 출원의 아이디어들에 따라 특정 구현들 및 응용 범위들의 관점에서 본 출원에 대한 변경들 및 수정들을 행할 수 있다. 따라서, 명세서의 내용은 본 출원에 대한 제한으로서 해석되어서는 안 된다. 본 출원이 전술한 실시예들을 참조하여 상세히 설명되지만, 본 기술분야의 통상의 기술자들은 여전히, 본 출원의 실시예들의 기술적 해결책들의 사상 및 범위로부터 벗어나지 않고서, 전술한 실시예들에서 설명되는 기술적 해결책들에 대한 수정들을 행할 수 있거나 그 일부 기술적 특징들에 대한 동등한 대체들을 행할 수 있다는 점이 이해되어야 한다.

Claims (17)

  1. 하드 디스크 제어 방법으로서,
    상기 방법은 저장 디바이스에 적용되고,
    상기 저장 디바이스에 저장된 사용자 데이터의 양이 제1 양 조건을 충족시키는지를 검출하는 단계 - 상기 저장 디바이스는 제1 저장 영역을 포함하고, 상기 제1 저장 영역은 제1 모드에서 데이터를 저장하고, 상기 제1 모드는 단일-레벨 셀(SLC) 모드, 멀티-레벨 셀(MLC) 모드, 트리플-레벨 셀(TLC) 모드, 및 쿼드-레벨 셀(QLC) 모드 중 하나임 - ; 및
    상기 저장된 사용자 데이터의 양이 상기 제1 양 조건을 충족할 때, 상기 제1 저장 영역 내의 제1 하위-영역의 데이터 저장 모드를 상기 제1 모드로부터 제2 모드로 전환하는 단계 - 상기 제2 모드는 상기 SLC 모드, 상기 MLC 모드, 상기 TLC 모드, 및 상기 QLC 모드 중 하나이고, 상기 제2 모드는 상기 제1 모드와 상이함 -
    를 포함하는 방법.
  2. 제1항에 있어서, 상기 제1 저장 영역 내의 제1 하위-영역의 데이터 저장 모드를 상기 제1 모드로부터 제2 모드로 전환한 후에, 상기 방법은:
    상기 제1 저장 영역의 상기 사용자 데이터에서의 사용자 데이터의 적어도 일부를 상기 전환된 제1 하위-영역으로 마이그레이션하는(migrating) 단계;
    상기 제1 저장 영역에서 상기 사용자 데이터의 적어도 일부에 의해 점유된 영역을 해제하는(releasing) 단계; 및
    상기 사용자 데이터의 적어도 일부에 의해 점유된 영역의 데이터 저장 모드를 상기 제2 모드로 전환하는 단계를 추가로 포함하는, 방법.
  3. 제1항에 있어서, 상기 제1 저장 영역 내의 제1 하위-영역의 데이터 저장 모드를 상기 제1 모드로부터 제2 모드로 전환하기 전에, 상기 방법은:
    상기 제1 저장 영역에서의 상기 사용자 데이터 내의 사용자 데이터의 적어도 일부를 상기 저장 디바이스의 캐시로 마이그레이션하는 단계;
    상기 사용자 데이터의 적어도 일부에 의해 점유된 영역을 해제하는 단계; 및
    상기 제1 저장 영역 내의 상기 제1 하위-영역의 상기 데이터 저장 모드를 상기 제1 모드로부터 상기 제2 모드로 전환한 후에, 상기 제2 모드에서 상기 전환된 제1 저장 영역에 상기 사용자 데이터의 적어도 일부를 기입하는 단계를 추가로 포함하는, 방법.
  4. 제1항에 있어서, 상기 저장 디바이스는 제2 저장 영역을 추가로 포함하고, 상기 제2 저장 영역은 상기 제2 모드에서 데이터를 저장하고, 상기 제1 저장 영역 내의 제1 하위-영역의 데이터 저장 모드를 상기 제1 모드로부터 제2 모드로 전환하기 전에, 상기 방법은:
    상기 제1 저장 영역에서의 상기 사용자 데이터 내의 사용자 데이터의 적어도 일부를 상기 저장 디바이스의 상기 제2 저장 영역으로 마이그레이션하는 단계; 및
    상기 사용자 데이터의 적어도 일부에 의해 점유된 영역을 해제하는 단계를 추가로 포함하는, 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 방법은:
    데이터 기입 요청을 수신하는 단계 - 상기 데이터 기입 요청은 타깃 데이터를 포함함 - ; 및
    상기 제2 모드에서 상기 전환된 제1 하위-영역에 상기 타깃 데이터를 기입하는 단계를 추가로 포함하는, 방법.
  6. 제5항에 있어서, 상기 방법은:
    상기 저장 디바이스에 저장된 사용자 데이터의 양이 제2 양 조건을 충족시키는지를 검출하는 단계 - 상기 저장 디바이스는 상기 제2 저장 영역을 포함함 - ; 및
    상기 저장된 사용자 데이터의 양이 상기 제2 양 조건을 충족할 때, 상기 제2 저장 영역 내의 제2 하위-영역의 데이터 저장 모드를 상기 제2 모드로부터 제3 모드로 전환하는 단계 - 상기 제3 모드는 상기 SLC 모드, 상기 MLC 모드, 상기 TLC 모드, 및 상기 QLC 모드 중 하나이고, 상기 제3 모드는 상기 제2 모드와 상이함 - 를 추가로 포함하는, 방법.
  7. 하드 디스크 제어 장치로서,
    상기 하드 디스크 제어 장치는 하드 디스크에 적용되고,
    상기 하드 디스크 제어 장치는:
    상기 저장 디바이스에 저장된 사용자 데이터의 양이 제1 양 조건을 충족시키는지를 검출하도록 구성되는 검출 모듈 - 상기 저장 디바이스는 제1 저장 영역을 포함하고, 상기 제1 저장 영역은 제1 모드에서 데이터를 저장하고, 상기 제1 모드는 단일-레벨 셀(SLC) 모드, 멀티-레벨 셀(MLC) 모드, 트리플-레벨 셀(TLC) 모드, 및 쿼드-레벨 셀(QLC) 모드 중 하나임 - ; 및
    상기 검출 모듈에 의해 검출되는 상기 저장된 사용자 데이터의 양이 상기 제1 양 조건을 충족할 때, 상기 제1 저장 영역 내의 제1 하위-영역의 데이터 저장 모드를 상기 제1 모드로부터 제2 모드로 전환하도록 구성되는 처리 모듈 - 상기 제2 모드는 상기 SLC 모드, 상기 MLC 모드, 상기 TLC 모드, 및 상기 QLC 모드 중 하나이고, 상기 제2 모드는 상기 제1 모드와 상이함 -
    을 포함하는, 하드 디스크 제어 장치.
  8. 제7항에 있어서, 상기 하드 디스크 제어 장치는 다음을 추가로 포함하는데:
    상기 처리 모듈은 상기 제1 저장 영역의 상기 사용자 데이터에서의 사용자 데이터의 적어도 일부를 상기 전환된 제1 하위-영역으로 마이그레이션하도록 구성되고;
    상기 처리 모듈은 상기 제1 저장 영역에서 상기 사용자 데이터의 적어도 일부에 의해 점유된 영역을 해제하도록 추가로 구성되고;
    상기 처리 모듈은 상기 사용자 데이터의 적어도 일부에 의해 점유된 영역의 데이터 저장 모드를 상기 제2 모드로 전환하도록 추가로 구성되는, 하드 디스크 제어 장치.
  9. 제7항에 있어서, 상기 하드 디스크 제어 장치는 다음을 추가로 포함하는데:
    상기 처리 모듈은 상기 제1 저장 영역의 상기 사용자 데이터에서의 사용자 데이터의 적어도 일부를 상기 하드 디스크의 제2 저장 영역으로 마이그레이션하도록 추가로 구성되고, 상기 제2 저장 영역은 상기 제2 모드에서 데이터를 저장하고;
    상기 처리 모듈은 상기 사용자 데이터의 적어도 일부에 의해 점유된 영역을 해제하도록 추가로 구성되는, 하드 디스크 제어 장치.
  10. 제7항 내지 제9항 중 어느 한 항에 있어서, 상기 하드 디스크 제어 장치는:
    데이터 기입 요청을 수신하도록 구성되는 수신 모듈 - 상기 데이터 기입 요청은 타깃 데이터를 포함함 - 을 추가로 포함하고;
    상기 처리 모듈은 상기 제2 모드에서 상기 전환된 제1 하위-영역에 상기 타깃 데이터를 기입하도록 추가로 구성되는, 하드 디스크 제어 장치.
  11. 제10항에 있어서, 상기 하드 디스크 제어 장치는 다음을 추가로 포함하는데:
    상기 검출 모듈은 상기 저장 디바이스에 저장된 사용자 데이터의 양이 제2 양 조건을 충족시키는지를 검출하도록 추가로 구성되고, 상기 저장 디바이스는 상기 제2 저장 영역을 포함하며;
    상기 처리 모듈은 상기 검출 모듈에 의해 검출되는 상기 저장된 사용자 데이터의 양이 상기 제2 양 조건을 충족할 때, 상기 제2 저장 영역 내의 제2 하위-영역의 데이터 저장 모드를 상기 제2 모드로부터 제3 모드로 전환하도록 추가로 구성되고, 상기 제3 모드는 상기 SLC 모드, 상기 MLC 모드, 상기 TLC 모드, 및 상기 QLC 모드 중 하나이고, 상기 제3 모드는 상기 제2 모드와 상이한, 하드 디스크 제어 장치.
  12. 제어기로서,
    상기 제어기는 저장 디바이스에 위치되고, 상기 저장 디바이스는 적어도 하나의 하드 디스크 및 상기 제어기를 포함하고, 상기 제어기는 프로세서 및 메모리를 포함하고, 상기 메모리는 프로그램 명령어를 저장하고, 상기 프로세서는 상기 메모리 내의 상기 프로그램 명령어를 호출(invoke)하여, 다음의 단계들:
    상기 저장 디바이스에 저장된 사용자 데이터의 양이 제1 양 조건을 충족시키는지를 검출하는 단계 - 상기 저장 디바이스는 제1 저장 영역을 포함하고, 상기 제1 저장 영역은 제1 모드에서 데이터를 저장하고, 상기 제1 모드는 단일-레벨 셀(SLC) 모드, 멀티-레벨 셀(MLC) 모드, 트리플-레벨 셀(TLC) 모드, 및 쿼드-레벨 셀(QLC) 모드 중 하나임 - ; 및
    상기 저장 디바이스에 저장된 사용자 데이터의 양이 상기 제1 양 조건을 충족할 때, 상기 제1 저장 영역 내의 제1 하위-영역의 데이터 저장 모드를 상기 제1 모드로부터 제2 모드로 전환하는 단계 - 상기 제2 모드는 상기 SLC 모드, 상기 MLC 모드, 상기 TLC 모드, 및 상기 QLC 모드 중 하나이고, 상기 제2 모드는 상기 제1 모드와 상이함 - 를 수행하도록 구성되는, 제어기.
  13. 제12항에 있어서, 상기 프로세서는 상기 메모리 내의 상기 프로그램 명령어를 호출하여, 다음의 단계들:
    상기 제1 저장 영역의 상기 사용자 데이터에서의 사용자 데이터의 적어도 일부를 상기 전환된 제1 하위-영역으로 마이그레이션하는 단계;
    상기 제1 저장 영역에서 상기 사용자 데이터의 적어도 일부에 의해 점유된 영역을 해제하는 단계; 및
    상기 사용자 데이터의 적어도 일부에 의해 점유된 영역의 데이터 저장 모드를 상기 제2 모드로 전환하는 단계를 수행하도록 추가로 구성되는, 제어기.
  14. 제12항에 있어서, 상기 프로세서는 상기 메모리 내의 상기 프로그램 명령어를 호출하여, 다음의 단계들:
    상기 제1 저장 영역에서의 상기 사용자 데이터 내의 사용자 데이터의 적어도 일부를 상기 저장 디바이스의 캐시로 마이그레이션하는 단계;
    상기 사용자 데이터의 적어도 일부에 의해 점유된 영역을 해제하는 단계; 및
    상기 제1 저장 영역 내의 상기 제1 하위-영역의 상기 데이터 저장 모드를 상기 제1 모드로부터 상기 제2 모드로 전환한 후에, 상기 제2 모드에서 상기 전환된 제1 저장 영역에 상기 사용자 데이터의 적어도 일부를 기입하는 단계를 수행하도록 추가로 구성되는, 제어기.
  15. 제12항에 있어서, 상기 프로세서는 상기 메모리 내의 상기 프로그램 명령어를 호출하여, 다음의 단계들:
    상기 제1 저장 영역에서의 상기 사용자 데이터 내의 사용자 데이터의 적어도 일부를 상기 저장 디바이스의 제2 저장 영역으로 마이그레이션하는 단계 - 상기 제2 저장 영역은 상기 제2 모드에서 데이터를 저장함 - ; 및
    상기 데이터의 적어도 일부에 의해 점유된 영역을 해제하는 단계를 수행하도록 추가로 구성되는, 제어기.
  16. 제12항 내지 제15항 중 어느 한 항에 있어서, 상기 프로세서는 상기 메모리 내의 상기 프로그램 명령어를 호출하여, 다음의 단계들:
    데이터 기입 요청을 수신하는 단계 - 상기 데이터 기입 요청은 타깃 데이터를 포함함 - ; 및
    상기 제2 모드에서 상기 제2 저장 영역 또는 상기 전환된 제1 저장 영역에 상기 타깃 데이터를 기입하는 단계를 수행하도록 추가로 구성되는, 제어기.
  17. 제16항에 있어서, 상기 프로세서는 상기 메모리 내의 상기 프로그램 명령어를 호출하여, 다음의 단계들:
    상기 저장 디바이스에 저장된 사용자 데이터의 양이 제2 양 조건을 충족시키는지를 검출하는 단계 - 상기 저장 디바이스는 상기 제2 저장 영역을 포함함 - ; 및
    상기 저장 디바이스에 저장된 상기 저장된 사용자 데이터의 양이 상기 제2 양 조건을 충족할 때, 상기 제2 저장 영역 내의 제2 하위-영역의 데이터 저장 모드를 상기 제2 모드로부터 제3 모드로 전환하는 단계 - 상기 제3 모드는 상기 SLC 모드, 상기 MLC 모드, 상기 TLC 모드, 및 상기 QLC 모드 중 하나이고, 상기 제3 모드는 상기 제2 모드와 상이함 - 를 수행하도록 추가로 구성되는, 제어기.
KR1020217043003A 2019-06-14 2019-06-14 하드 디스크 제어 방법 및 관련 디바이스 KR20220015457A (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/091189 WO2020248206A1 (zh) 2019-06-14 2019-06-14 一种硬盘控制方法及相关设备

Publications (1)

Publication Number Publication Date
KR20220015457A true KR20220015457A (ko) 2022-02-08

Family

ID=73781309

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217043003A KR20220015457A (ko) 2019-06-14 2019-06-14 하드 디스크 제어 방법 및 관련 디바이스

Country Status (7)

Country Link
US (1) US20220100406A1 (ko)
EP (1) EP3964939A4 (ko)
JP (1) JP2022537520A (ko)
KR (1) KR20220015457A (ko)
CN (1) CN114008580A (ko)
TW (1) TWI779300B (ko)
WO (1) WO2020248206A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111722804B (zh) * 2020-06-12 2022-07-08 浪潮电子信息产业股份有限公司 一种非易失内存调度的方法、系统、设备及可读存储介质
US20220229574A1 (en) * 2021-01-20 2022-07-21 Micron Technology, Inc. Data migration techniques

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8407400B2 (en) * 2008-11-12 2013-03-26 Micron Technology, Inc. Dynamic SLC/MLC blocks allocations for non-volatile memory
JP5444198B2 (ja) * 2010-12-06 2014-03-19 本田技研工業株式会社 サブフレーム構造体
US9176862B2 (en) * 2011-12-29 2015-11-03 Sandisk Technologies Inc. SLC-MLC wear balancing
US8935459B2 (en) * 2012-03-08 2015-01-13 Apple Inc. Heuristics for programming data in a non-volatile memory
JP6146675B2 (ja) * 2014-06-03 2017-06-14 コニカミノルタ株式会社 画像形成装置及びフラッシュメモリの制御方法並びに制御プログラム
US10031673B2 (en) * 2014-09-26 2018-07-24 SK Hynix Inc. Techniques for selecting amounts of over-provisioning
CN105843748B (zh) * 2015-01-15 2019-06-11 华为技术有限公司 一种对内存中内存页的处理方法及装置
US9697134B2 (en) * 2015-06-10 2017-07-04 Micron Technology, Inc. Memory having a static cache and a dynamic cache
US10007458B2 (en) * 2015-12-18 2018-06-26 Microsemi Solutions (U.S.), Inc. Method of configuring memory cells in a solid state drive based on read/write activity and controller therefor
US20180129440A1 (en) * 2016-11-09 2018-05-10 Western Digital Technologies, Inc. Self-virtualizing flash memory for solid state drive
US20180165032A1 (en) * 2016-12-14 2018-06-14 Western Digital Technologies, Inc. Read write performance for nand flash for archival application
TWI630540B (zh) * 2017-07-13 2018-07-21 慧榮科技股份有限公司 資料儲存裝置及非揮發式記憶體操作方法
US10572388B2 (en) * 2017-08-30 2020-02-25 Micron Technology, Inc. Managed NVM adaptive cache management
JP7030463B2 (ja) * 2017-09-22 2022-03-07 キオクシア株式会社 メモリシステム
CN111488122A (zh) * 2017-10-25 2020-08-04 华为技术有限公司 数据写入方法和存储设备
JP6805110B2 (ja) * 2017-11-06 2020-12-23 株式会社日立製作所 ストレージシステム及びその制御方法
US20190034330A1 (en) * 2017-12-01 2019-01-31 Intel Corporation Mass storage device with dynamic single level cell (slc) buffer specific program and/or erase settings
US20190034105A1 (en) * 2017-12-28 2019-01-31 Intel Corporation Storage device having programmed cell storage density modes that are a function of storage device capacity utilization
US11132133B2 (en) * 2018-03-08 2021-09-28 Toshiba Memory Corporation Workload-adaptive overprovisioning in solid state storage drive arrays
US10949355B2 (en) * 2018-06-11 2021-03-16 Western Digital Technologies, Inc. Methods and apparatus for workload based dynamic cache control in SSD
CN110795270B (zh) * 2018-08-03 2024-01-30 建兴储存科技(广州)有限公司 固态储存装置及其读取重试方法

Also Published As

Publication number Publication date
CN114008580A (zh) 2022-02-01
JP2022537520A (ja) 2022-08-26
US20220100406A1 (en) 2022-03-31
EP3964939A1 (en) 2022-03-09
EP3964939A4 (en) 2022-05-11
TW202046111A (zh) 2020-12-16
TWI779300B (zh) 2022-10-01
WO2020248206A1 (zh) 2020-12-17

Similar Documents

Publication Publication Date Title
US11797180B2 (en) Apparatus and method to provide cache move with non-volatile mass memory system
US10614888B2 (en) Memory system that selectively writes in single-level cell mode or multi-level cell mode to reduce program/erase cycles
JP6224253B2 (ja) フラッシュメモリ内に記憶されたデータの推測的プリフェッチ
US11372753B2 (en) Memory system and method
US11194737B2 (en) Storage device, controller and method for operating the controller for pattern determination
KR20090050382A (ko) 스토리지 관리 방법 및 관리 시스템
US20220100406A1 (en) Hard disk control method and related device
WO2016112713A1 (zh) 一种对内存中内存页的处理方法及装置
CN111752484A (zh) 一种ssd控制器、固态硬盘及数据写入方法
KR20090102192A (ko) 메모리 시스템 및 그것의 데이터 저장 방법
US20230367719A1 (en) Caching of logical-to-physical mapping information in a memory sub-system
KR20150055413A (ko) 데이터 저장 장치
CN112130749A (zh) 数据储存装置以及非挥发式存储器控制方法
CN111562880A (zh) 一种数据存储装置、系统及数据写入方法
US11693767B2 (en) Performing a media management operation based on changing a write mode of a data block in a cache
KR101363422B1 (ko) 비휘발성 메모리 시스템
US20220300185A1 (en) Storage device, storage system, and control method
CN110888591A (zh) 数据储存装置以及非挥发式存储器控制方法
KR20240003648A (ko) 메모리 시스템 및 그에 포함된 메모리 컨트롤러의 동작 방법
CN114238158A (zh) 数据存储管理方法和存储装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal