KR20210082345A - Ssd 내 데이터 배치를 위한 전략을 결정하는 방법 및 장치 - Google Patents

Ssd 내 데이터 배치를 위한 전략을 결정하는 방법 및 장치 Download PDF

Info

Publication number
KR20210082345A
KR20210082345A KR1020200149157A KR20200149157A KR20210082345A KR 20210082345 A KR20210082345 A KR 20210082345A KR 1020200149157 A KR1020200149157 A KR 1020200149157A KR 20200149157 A KR20200149157 A KR 20200149157A KR 20210082345 A KR20210082345 A KR 20210082345A
Authority
KR
South Korea
Prior art keywords
data
strategy
pattern
time period
machine learning
Prior art date
Application number
KR1020200149157A
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 KR20210082345A publication Critical patent/KR20210082345A/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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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
    • 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/0638Organizing or formatting or addressing of data
    • 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/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Debugging And Monitoring (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

SSD(Solid State Drive) 내 데이터 배치를 위한 전략을 결정하기 위한 방법 및 장치가 제공된다. SSD(Solid State Drive) 내 데이터 배치를 위한 전략을 결정하기 위한 방법은: 최적화 타겟 및 시간 주기에 대해 미리 수집된 제 1 워크로드 메트릭 데이터를 획득하는 단계; 기계 학습 모델 및 훈련 데이터 전략을 상기 최적화 타겟에 따라 선택하는 단계; 상기 제 1 워크로드 메트릭 데이터로부터 특징 데이터를 상기 선택된 훈련 데이터 전략에 따라 선택하고, 그리고 상기 선택된 기계 학습 모델을 상기 선택된 특징 데이터에 기반하여 훈련시키는 단계; 및 후속하는 예측 시간 각각에 대해, 상기 시간 주기에 대한 상기 제 1 워크로드 메트릭 데이터 및 상기 훈련된 기계 학습 모델을 사용함으로써 상기 예측 시간 내에 수집된 제 2 워크로드 메트릭 데이터에 따라 상기 예측 시간에 대응하는 예측 시간 주기에 대한 데이터 배치를 위한 전략을 결정하는 단계를 포함한다.

Description

SSD 내 데이터 배치를 위한 전략을 결정하는 방법 및 장치{METHOD AND DEVICE FOR DETERMINING STRATEGY FOR DATA PLACEMENT WITHIN SSD}
본 발명은 데이터 스토리지 기술에 대한 것으로, 좀 더 구체적으로는 SSD(Solid State Drive) 내 데이터 배치를 위한 전략을 결정하는 방법들 및 장치들에 관한 것이다.
NAND 플래시 메모리 기반 SSD는, 전통적인 자기 디스크들에 비해 높은 성능 및 적은 전력 소모로 인해, 데이터 센터들 등과 같은 시나리오들에서 넓게 사용된다. NAND 플래시 메모리는 다시 쓰기가 가능하기 전에 소거되어야 할 필요가 있으므로, 데이터 페이지와 관련된 업데이트 동작이 지원되지 않는다. 이러한 문제점을 해결하기 위해, SSD는 내부의 플래시 변환 계층(Flash Translation Layer; FTL) 소프트웨어를 통해 논리 어드레스들에서 물리 어드레스들로의 맵핑 테이블을 유지한다.
SSD 내 데이터 배치 전략은 어디에 데이터를 배치할 것인지를 결정하는 데 사용된다. SSD의 용량 및 처리량을 개선하기 위해, 다수의 채널들이 일반적으로 SSD 내부에 설계되고, 그리고 하나의 채널에는 다수의 칩들이 존재한다. 이 다중-동시(multi-concurrent) 구조는 FTL 소프트웨어 내 데이터 배치 전략들의 설계에 새로운 도전 과제를 제시한다. 두 유형의 가장 일반적인 데이터 배치 전략들로, 첫 번째로는 라운드 로빈(Round-Robin; RR) 전략이 있고, 두 번째로는 스트라이핑(striping) 전략이 있다.
라운드 로빈 전략의 원리가 도 1에 도시된다. 채널 각각은 사용자의 쓰기 요청을 차례로 처리한다. 하나의 쓰기 요청의 데이터는 하나의 채널로 입력될 것이고, 그리고 다음 쓰기 요청의 데이터는 다음 채널에 입력될 것이다. 도시된 실시 예에서, 제 1 입출력 요청에 대응하는 페이지들(P0~P8)는 채널 1에 입력(기입)되고, 그리고 제 2 입출력 요청에 대응하는 페이지들(P127, P128)은 (그 다음 채널인) 채널 2에 차례로 입력(기입)된다.
스트립 전략의 원리가 도 2에 도시된다. 스트립 전략은 사용자의 쓰기 요청을 복수의 페이지들로 나누고, 그 다음 이 페이지들을 다수의 채널들에 병렬로 기입하며, 이에 따라 멀티-채널 동시성을 최대로 활용한다. 도시된 실시 예에서, 제 1 입출력 요청에 대응하는 데이터(P0~P8)은 다수의 채널들에 각각 저장(기입)되고, 그리고 제 2 입출력 요청에 대응하는 데이터(P127, P128)은 채널 2 및 채널 3로 각각 저장(기입)된다.
일반적으로, 하나의 동일한 쓰기 요청 내 모든 데이터는 유사한 생명(수명) 주기들을 갖고, 그리고 이러한 데이터는 동시에 무효화(invalid)될 가능성이 높다. 만약 동일한 쓰기 요청의 데이터가 SSD 내 동일한 블록에 기입되면, 후속되는 가비지 컬렉션(Garbage Collection; GC)에서 블록 밖으로 이동되어야 하는 유효한 페이지들의 수는 작을 것이고, 그리고 GC의 비용도 적을 것이며, 이는 쓰기 증폭 인자(Write Amplification Factor; WAF) 및 SSD 성능 변동에 미치는 GC의 영향을 줄이는 데 이롭다. 반대로, 동일한 쓰기 요청의 데이터가 다른 채널들로 스트라이핑되면, 후속 GC의 비용은 증가할 것이다.
라운드 로빈 전략은 효과적으로 SSD의 후속 GC의 비용을 줄이고, 그리고 쓰기-중점적(write-intensive) 워크로드(workload)에 친화적이다. 라운드-로빈 전략은 읽기-중점적(read-intensive) 워크로드들에 비친화적이고, 그리고 다중-채널 동시성 특징들이 이용되지 않음으로 인해 긴 읽기 지연(latency) 문제가 존재한다.
스트라이핑 전략은 읽기-중점적 워크로드들에 친화적이고, 그리고 SSD의 다중-채널 동시성을 활용한다. 스트라이핑 전략은 동일한 생명 주기를 갖는 데이터가 다수의 채널들로 스트라이핑되기 때문에 쓰기-중점적 워크로드들에 비친화적이고, 그리고 후속 GC의 비용이 높은 문제점이 있다.
상술된 데이터 배치 전략들은 모두 워크로드 변화를 인식하지 않으며, 특정한 워크로드들에 대해 설계되었다. 워크로드가 쓰기-중점적에서 읽기-중점적으로 변하거나 또는 읽기-중점적에서 쓰기-중점적으로 변화되면, 대응하는 조정이 수행되는 것이 가능하지 않으므로, 나쁜 읽기 지연 또는 나쁜 성능이란 문제로 귀결된다.
워크로드 정보의 일부를 인식하는 몇몇 데이터 배치 전략들이 또한 존재한다. 예를 들어, 그들은 논리 어드레스 범위 내 엑세스 열(heat)을 세고, 다른 열(히트)의 데이터를 다른 물리 블록들에 저장하는 것이 가능하며, 이에 따라 후속 GC 비용을 낮춘다. 이 전략은 데이터의 열을 워크로드의 현재 상태에 기반하여 계산할 뿐이다. 만약 워크로드 데이터의 열이 급격하게 변하면, 데이터의 미래 온도는 현재 온도와 굉장히 다를 것이다. 예를 들어, 만약 데이터 블록이 현재 뜨거운(hot) 데이터로 판단되고 그리고 뜨거운 블록에 배치되면, 데이터 블록은 차가워질 수 있고, 따라서 뜨거운 블록 내 GC 운송(transportation) 비용이 증가한다.
요약하자면, 현재 데이터 배치 전략들은 워크로드를 인식하지 않거나 또는 워크로드의 일부만을 인식하는(예를 들어, 현재 데이터 배치만을 워크로드의 현재 상태에 따라 결정하는 것이 가능하다) 특정 워크로드에 대하여 설계되고, 그리고 워크로드가 급격하게 변하면, 데이터 배치를 위한 전략이 동적으로 조정되는 것이 불가능하며, 이는 궁극적으로 큰 읽기 지연 문제 또는 나쁜 성능 문제를 이끈다.
본 발명의 목적은 큰 읽기 지연 문제 또는 나쁜 읽기 성능 문제를 해결하기 위해, SSD 내 데이터 배치를 위한 전략을 결정하는 방법 및 장치를 제공하는 데 있다.
몇몇 실시 예들에 따르면, SSD 내 데이터 배치를 위한 전략을 결정하는 방법이 제공된다. SSD 내 데이터 배치를 위한 전략을 결정하는 방법은: 최적화 타겟 및 시간 주기에 대해 미리 수집된 제 1 워크로드 메트릭 데이터를 획득하는 단계; 기계 학습 모델 및 훈련 데이터 전략을 상기 최적화 타겟에 따라 선택하는 단계; 상기 제 1 워크로드 메트릭 데이터로부터 제 1 특징 데이터를 상기 선택된 훈련 데이터 전략에 따라 선택하고, 그리고 상기 선택된 제 1 기계 학습 모델을 상기 선택된 특징 데이터에 기반하여 훈련시키는 단계; 및 후속하는 예측 시간 각각에 대해, 상기 시간 주기에 대한 상기 제 1 워크로드 메트릭 데이터 및 상기 예측 시간 내에 수집된 제 2 워크로드 메트릭 데이터에 따라 상기 훈련된 기계 학습 모델을 사용함으로써 상기 예측 시간에 대응하는 예측 시간 주기에 대한 데이터 배치를 위한 전략을 결정하는 단계를 포함한다. 이는 SSD로 하여금 다양한 워크로드 환경들에 있어서 성능을 최적화하도록 하며, 이에 따라 데이터 배치를 위한 전략의 동적 결정이 구현되고, 그리고 데이터 배치를 위한 전략의 정확도가 개선된다.
몇몇 실시 예들에 따르면, 후속하는 예측 시간 각각에 대해, 상기 시간 주기에 대한 상기 워크로드 메트릭 데이터 및 상기 예측 시간 내에 수집된 워크로드 메트릭 데이터에 따라 상기 훈련된 기계 학습 모델을 사용함으로써 상기 예측 시간에 대응하는 상기 예측 시간 주기에 대한 상기 데이터 배치를 위한 상기 전략을 결정하는 단계는: 상기 시간 주기에 대한 상기 제 1 워크로드 데이터 및 현재 예측 시간 내에 수집되는 제 3 워크로드 데이터에 따라 상기 훈련된 기계 학습 모델을 사용함으로써 IO(Input/Output) 패턴을 예측하는 단계; 상기 예측된 IO 패턴에 따라, 상기 현재 예측 시간에 대응하는 상기 예측 시간 주기 내 상기 데이터 배치를 위한 상기 전략을 결정하는 단계를 포함할 수 있다.
몇몇 실시 예들에 따르면, 상기 IO 패턴의 유형은 적어도 읽기-중점적 IO 패턴, 쓰기-중점적 IO 패턴, 데이터-뜨거움-정도 IO 패턴, 순차적-쓰기 IO 패턴, 및 랜덤-쓰기 IO 패턴을 포함할 수 있다.
몇몇 실시 예들에 따르면, 상기 예측된 IO 패턴에 따라 상기 현재 예측 시간에 대응하는 상기 예측 시간 주기 내 상기 데이터 배치를 위한 상기 전략을 결정하는 단계는: 상기 예측된 IO 패턴이 상기 읽기-중점적 IO 패턴인 것에 기반하여, 라운드 로빈(Round-Robin) 전략을 상기 데이터 배치를 위한 상기 전략으로 사용하기로 결정하는 단계; 상기 예측된 IO 패턴이 상기 쓰기-중점적 IO 패턴인 것에 기반하여, 스트립(strip) 전략을 상기 데이터 배치를 위한 상기 전략으로 사용하기로 결정하는 단계; 상기 예측된 IO 패턴이 상기 데이터-뜨거움-정도 IO 패턴인 것에 기반하여, 파티션 스토리지를 뜨거운 데이터 및 차가운 데이터에 대해 수행하는 전략을 사용하기로 결정하는 단계; 상기 예측된 IO 패턴이 상기 순차적-쓰기 IO 패턴인 것에 기반하여, 데이터를 저비용 플래시 메모리 유닛으로 기입하는 전략을 채택하는 단계; 및 상기 예측된 IO 패턴이 상기 랜덤-쓰기 IO 패턴인 것에 기반하여, 데이터를 고속 플래시 메모리 유닛으로 기입하는 전략을 채택하는 단계를 포함할 수 있다.
몇몇 실시 예들에 따르면, 최적화 목표는 쓰기 성능, NAND 플래시 수명, 또는 읽기 지연 중 적어도 하나를 포함할 수 있다.
몇몇 실시 예들에 따르면, 상기 최적화 타겟에 따라 상기 기계 학습 모델 및 상기 훈련 데이터 전략을 선택하는 단계는: 상기 최적화 타겟이 상기 쓰기 성능인 것에 기반하여, 상기 제 1 훈련 데이터 전략을 쓰기 성능 최적화에 대해 결정하되, 상기 쓰기 성능 최적화를 위한 상기 제 1 훈련 데이터 전략에 따라, IO 크기, IO 횟수, IO 액세스 주기, 또는 쓰기 증폭 인자 중 적어도 하나가 상기 특징 데이터로서 상기 제 1 워크로드 메트릭 데이터로부터 훈련을 위해 선택되는 단계; 상기 최적화 타겟이 상기 NAND 플래시 수명인 것에 기반하여, 상기 훈련 데이터 전략을 NAND 플래시 수명 최적화에 대해 결정하되, 상기 NAND 플래시 수명 최적화를 위한 상기 훈련 데이터 전략에 따라,적어도 블록 소거 횟수가 특징 데이터로서 상기 제 1 워크로드 메트릭 데이터로부터 훈련을 위해 선택되는 단계; 및 상기 최적화 타겟이 상기 읽기 지연인 것에 기반하여, 상기 훈련 데이터 전략을 읽기 지연 최적화에 대해 결정하되, 상기 읽기 지연 최적화를 위한 상기 훈련 데이터 전략에 따라, 상기 IO 크기, 상기 IO 횟수, 또는 읽기 지연 중 적어도 하나가 상기 특징 데이터로서 상기 워크로드 메트릭 데이터로부터 훈련을 위해 선택되는 단계를 포함할 수 있다.
몇몇 실시 예들에 따르면, 방법은 최적화 타겟의 변화가 검지되는 것에 기반하여, 상기 시간 주기를 업데이트하고 그리고 상기 업데이트된 시간 주기에 대한 제 3 워크로드 메트릭 데이터를 획득하는 단계; 상기 변화된 최적화 타겟에 따라 상기 기계 학습 모델 및 상기 훈련 데이터 전략을 재결정하는 단계; 및 상기 재선택된 기계 학습 모델을 다시 훈련하여 상기 후속 예측 시간 각각에서 상기 재훈련된 기계 학습 모델을 사용함으로써 상기 데이터 배치를 위한 상기 전략을 결정하기 위해, 상기 업데이트된 시간 주기에 대한 상기 제 3 워크로드 메트릭 데이터로부터 상기 재선택된 훈련 데이터 전략에 따라 상기 특징 데이터를 재선택하는 단계를 더 포함할 수 있다.
몇몇 실시 예들에 따르면, 방법은 현재 워크로드 메트릭 데이터를 획득하기 위해 실시간으로 워크로드 메트릭 데이터를 수집하는 단계를 더 포함할 수 있다.
몇몇 실시 예들에 따르면, SSD 내 데이터 배치를 위한 전략을 결정하기 위한 장치가 제공된다. SSD 내 데이터 배치를 위한 전략을 결정하기 위한 장치는: 프로세서를 포함하되, 상기 프로세서는: 최적화 타겟 및 시간 주기에 대해 미리-수집된 제 1 워크로드 메트릭 데이터를 획득하고; 기계 학습 모델 및 훈련 데이터 전략을 상기 최적화 타겟에 따라 선택하고; 상기 시간 주기에 대한 상기 제 1 워크로드 메트릭 데이터로부터 특징 데이터를 상기 선택된 훈련 데이터 전략에 따라 선택하고, 그리고 상기 선택된 제 1 기계 학습 모델을 상기 선택된 특징 데이터에 기반하여 훈련시키고; 그리고 후속하는 예측 시간 각각에 대해, 상기 시간 주기에 대한 상기 제 1 워크로드 메트릭 데이터 및 상기 예측 시간 내에 수집된 제 2 워크로드 메트릭 데이터에 따라 상기 훈련된 기계 학습 모델을 사용함으로써 상기 예측 시간에 대응하는 예측 시간 주기에 대한 데이터 배치를 위한 전략을 결정한다.
몇몇 실시 예들에 따르면, 상기 프로세서는: 상기 시간 주기에 대한 상기 제 1 워크로드 데이터 및 현재 예측 시간 내에 수집되는 제 3 워크로드 데이터에 따라 상기 훈련된 기계 학습 모델을 사용함으로써 IO(Input/Output) 패턴을 예측하고; 그리고 상기 예측된 IO 패턴에 따라, 상기 현재 예측 시간에 대응하는 상기 예측 시간 주기 내 상기 데이터 배치를 위한 상기 전략을 결정할 수 있다.
몇몇 실시 예들에 따르면, 상기 IO 패턴의 유형은 적어도 읽기-중점적 IO 패턴, 쓰기-중점적 IO 패턴, 데이터-뜨거움-정도 IO 패턴, 순차적-쓰기 IO 패턴, 및 랜덤-쓰기 IO 패턴을 포함할 수 있다.
몇몇 실시 예들에 따르면, 상기 프로세서는: 상기 예측된 IO 패턴이 상기 읽기-중점적 IO 패턴인 것에 기반하여, 라운드 로빈(Round-Robin) 전략을 상기 데이터 배치를 위한 상기 전략으로 사용하기로 결정하고; 상기 예측된 IO 패턴이 상기 쓰기-중점적 IO 패턴인 것에 기반하여, 스트립(strip) 전략을 상기 데이터 배치를 위한 상기 전략으로 사용하기로 결정하고; 상기 예측된 IO 패턴이 상기 데이터-뜨거움-정도 IO 패턴인 것에 기반하여, 파티션 스토리지를 뜨거운 데이터 및 차가운 데이터에 대해 수행하는 전략을 사용하기로 결정하고; 상기 예측된 IO 패턴이 상기 순차적-쓰기 IO 패턴인 것에 기반하여, 데이터를 저비용 플래시 메모리 유닛으로 기입하는 전략을 채택하고; 그리고 상기 예측된 IO 패턴이 상기 랜덤-쓰기 IO 패턴인 것에 기반하여, 데이터를 고속 플래시 메모리 유닛으로 기입하는 전략을 채택할 수 있다.
몇몇 실시 예들에 따르면, 최적화 목표는 쓰기 성능, NAND 플래시 수명, 또는 읽기 지연 중 적어도 하나를 포함할 수 있다.
몇몇 실시 예들에 따르면, 상기 프로세서는 상기 최적화 타겟이 상기 쓰기 성능인 것에 기반하여, 상기 훈련 데이터 전략을 쓰기 성능 최적화에 대해 결정하되, 상기 쓰기 성능 최적화를 위한 상기 훈련 데이터 전략은 IO 크기, IO 횟수, IO 액세스 주기, 또는 쓰기 증폭 인자 중 적어도 하나를 상기 특징 데이터로서 상기 제 1 워크로드 메트릭 데이터로부터 훈련을 위해 선택하고; 상기 최적화 타겟이 상기 NAND 플래시 수명인 것에 기반하여, 상기 훈련 데이터 전략을 NAND 플래시 수명 최적화에 대해 결정하되, 상기 NAND 플래시 수명 최적화를 위한 상기 훈련 데이터 전략은 적어도 블록 소거 횟수를 상기 특징 데이터로서 상기 제 1 워크로드 메트릭 데이터로부터 훈련을 위해 선택하고; 그리고 상기 최적화 타겟이 상기 읽기 지연인 것에 기반하여, 상기 훈련 데이터 전략을 읽기 지연 최적화에 대해 결정하되, 상기 읽기 지연 최적화를 위한 상기 훈련 데이터 전략은 상기 IO 크기, 상기 IO 횟수, 또는 읽기 지연 중 적어도 하나를 상기 특징 데이터로서 상기 워크로드 메트릭 데이터로부터 훈련을 위해 선택할 수 있다.
몇몇 실시 예들에 따르면, 상기 프로세서는 상기 최적화 타겟의 변화가 검지되는 것에 기반하여, 상기 시간 주기를 업데이트하고 그리고 상기 업데이트된 시간 주기에 대한 제 3 워크로드 메트릭 데이터를 획득하고, 상기 변화된 최적화 타겟에 따라 상기 기계 학습 모델 및 상기 훈련 데이터 전략을 재결정하고, 상기 업데이트된 시간 주기에 대한 상기 제 3 워크로드 메트릭 데이터로부터 상기 재선택된 훈련 데이터 전략에 따라 상기 특징 데이터를 재선택하고, 그리고 상기 후속 예측 시간 각각에서 상기 재훈련된 기계 학습 모델을 사용함으로써 상기 데이터 배치를 위한 상기 전략을 결정하기 위해, 상기 재선택된 기계 학습 모델을 다시 훈련하도록 더 구성될 수 있다.
몇몇 실시 예들에 따르면, 장치는 현재 워크로드 메트릭 데이터를 획득하기 위해 실시간으로 워크로드 메트릭 데이터를 수집하는 데이터 수집 유닛을 더 포함할 수 있다.
몇몇 실시 예들에 따르면, 컴퓨터 프로그램이 저장된 컴퓨터 판독 가능 저장 매체에 있어서, 상기 컴퓨터 프로그램이 프로세서에 의해 실행되는 것에 기반하여, 본 개시에 따른 SSD 내 데이터 배치를 위한 전략을 결정하기 위한 방법이 구현되는 컴퓨터 판독 가능 저장 매체가 제공된다.
몇몇 실시 예들에 따르면, SSD(Solid State Drive)에 있어서, 상기 SSD는: 컴퓨터-판독 가능 명령어들을 저장하는 메모리 셀; 및 프로세서를 포함하되, 상기 프로세서는: 최적화 타겟 및 시간 주기에 대해 미리-수집된 제 1 워크로드 메트릭 데이터를 획득하고; 기계 학습 모델 및 훈련 데이터 전략을 상기 최적화 타겟에 따라 선택하고; 상기 시간 주기에 대한 상기 제 1 워크로드 메트릭 데이터로부터 특징 데이터를 상기 선택된 훈련 데이터 전략에 따라 선택하고, 그리고 상기 선택된 기계 학습 모델을 상기 선택된 특징 데이터에 기반하여 훈련시키고; 그리고 후속하는 복수의 예측 시간 주기들에 대해, 상기 시간 주기에 대한 상기 제 1 워크로드 메트릭 데이터 및 상기 예측 시간 내에 수집된 제 2 워크로드 메트릭 데이터에 따라 상기 훈련된 기계 학습 모델을 사용함으로써 상기 복수의 예측 시간 주기들 중 어느 하나에 대한 데이터 배치를 위한 전략을 결정하기 위해, 상기 컴퓨터-판독 가능 명령어들을 실행하도록 구성된다.
몇몇 실시 예들에 따르면, 컴퓨팅 장치에 있어서: 프로세서; 및 컴퓨터 프로그램을 저장하는 메모리를 포함하고, 그리고 상기 컴퓨터 프로그램이 상기 프로세서에 의해 실행되는 것에 기반하여, 본 개시에 따른 SSD 내 데이터 배치를 위한 전략을 결정하기 위한 방법이 구현되는 컴퓨팅 장치가 제공된다.
몇몇 실시 예들에 따른 SSD 내 데이터 배치를 위한 전략을 결정하는 방법 및 장치는, 최적화 타겟 및 미리 설정된 시간 주기에 대해 미리 수집된 워크로드 메트릭 데이터를 획득하고; 기계 학습 모델 및 훈련 데이터 전략을 최적화 타겟에 따라 선택하고; 미리 설정된 시간 주기에 대한 워크로드 메트릭 데이터로부터 특징 데이터를 선택된 훈련 데이터 전략에 따라 선택하고, 그리고 선택된 기계 학습 모델을 선택된 특징 데이터에 기반하여 훈련시키고; 후속하는 예측 시간 각각에 대해, 예측 시간에 대응하는 예측 시간 주기에 대한 데이터 배치를 위한 전략을 미리 설정된, 또는 대안적으로, 원하는 시간 주기에 대한 워크로드 메트릭 데이터 및 예측 시간 내에 수집된 워크로드 메트릭 데이터에 따라 훈련된 기계 학습 모델을 사용함으로써 결정하게 함으로써, SSD로 하여금 다양한 환경들에서 성능을 최적화하는 것을 가능하게 하며, 이에 따라 데이터 배치를 위한 전략의 동적인 결정이 구현되고 그리고 데이터 배치를 위한 전략의 정확도가 개선된다.
본 발명의 일반적인 개념의 추가적인 양상들 및/또는 장점들은 이어지는 발명의 설명에서 부분적으로 설명될 것이며, 여전히 일부는 발명의 설명으로부터 명백해질 것이고 또는 본 발명의 일반적인 개념의 실시를 통해 알 수 있을 것이다.
본 발명의 일 실시 예에 따른 SSD 스토리지 장치는 기계 학습을 이용하여, 워크로드 메트릭 데이터에 기반하여 기계 학습 모델을 학습시키고, 그리고 학습된 기계 학습 모델에 기반하여, 최적화 목표에 적합한 데이터 배치 정책을 결정할 수 있다. 이에 따라, 다양한 워크로드 환경 하에서 SSD의 저장 성능이 개선될 수 있다.
본 개시의 예시적인 실시 예들의 상술된 및 다른 객체들 및 특징들은 예시적으로 실시 예들을 도시하는 첨부된 도면들과 함께하는 이어지는 설명으로부터 더 명백해질 것이다:
도 1은 라운드-로빈 전략 이론의 개략도를 도시한다;
도 2는 스트라이프 전략 이론의 개략도를 도시한다;
도 3은 본 개시의 예시적인 실시 예에 따라, SSD 내 데이터 배치 정책에 대한 전략을 결정하기 위한 방법의 순서도를 도시한다.
도 4는 본 개시의 예시적인 실시 예에 따라, SSD 내 데이터 배치 정책에 대한 전략을 결정하기 위한 장치의 블록도를 도시한다.
도 5는 본 개시의 예시적인 실시 예에 따라, 컴퓨팅 장치의 개략도를 도시한다.
이제 본 개시의 예시적인 실시 예들이 상세히 참조될 것이고, 그리고 실시 예들의 예들은 첨부된 도면들에 도시되어 있으며, 여기서 동일한 참조 번호들은 전체적으로 동일한 부분들을 지칭한다. 이하에서, 본 발명을 설명하기 위해 첨부된 도면을 참조하여 실시 예들이 예시될 것이다.
도 3은 SSD(Solid State Drive) 내 데이터 배치를 위한 전략을 결정하기 위한 방법의 순서도를, 본 개시의 예시적인 실시 예에 따라 도시한다.
도 3을 참조하면, 동작(S301)에서, 최적화 타겟 및 미리 설정된 시간 주기 동안 미리-수집된 워크로드 메트릭(metric) 데이터가 획득된다.
몇몇 예시적인 실시 예들에서, 사용자는 SSD에 대한 서로 다른 최적화 타겟을 서로 다른 응용 시나리오들에 따라 설정하는 것이 가능하다. 응용 시나리오들은, 예를 들어, 쓰기 장면 또는 읽기 장면 등과 같은 것일 수 있다 최적화 타겟은 쓰기 성능, NAND 플래시 수명, 읽기 지연(latency), 및/또는 그러한 것들 중 적어도 하나일 수 있다. 최적화 타겟은 또한 본 개시에 한정되지 않는, 데이터 배치와 관련된 다른 타겟들일 수 있음이 이해되어야 한다.
몇몇 예시적인 실시 예들에서, SSD의 워크로드 메트릭 데이터는 실시간으로 또는 주기적으로(예를 들어, 1초 또는 5초의 주기 등으로) 수집될 수 있다.
구체적으로, 워크로드 메트릭 데이터는, 하나 이상의 입출력(IO; Input/Output) 크기, IO 횟수(count), 읽기 지연, 쓰기 지연, 쓰기 증폭 인자(Write Amplification Factor; WAF), 블록 소거 횟수, 초당 입출력(Input/Output Per Second; IOPS), IO 액세스 간격 등과 같은 것들을 포함할 수 있으나, 이에 한정되지 아니한다. 그러므로, SSD의 워크로드와 관련된, SSD의 IO 크기, IO 횟수, 읽기 지연, 쓰기 지연, 쓰기 증폭 인자, 블록 소거 횟수, 및 IOPS는, 실시간으로 또는 주기적으로 SSD 내 데이터 배치 전략을 동적으로 결정하는 데 사용되기 위해, 실시간으로 또는 주기적으로 수집될 수 있으며, 이에 따라 SSD의 성능을 최적화한다.
동작(S302)에서, 머신 러닝 모델 및 훈련 데이터 전략이 최적화 타겟에 따라 선택될 수 있다.
몇몇 실시 예들에서, 머신 러닝 모델 및 훈련 데이터 전략을 최적화 타겟에 따라 선택하는 것은 쓰기 성능 최적화를 위한 훈련 데이터 전략을, 미리 결정되거나 또는, 대안적으로, 원하는, 최적화 타겟이 쓰기 성능일 때 선택하되, 쓰기 성능 최적화를 위한 훈련 데이터 전략은 IO 크기, IO 횟수, IO 액세스 간격, 및/또는 쓰기 증폭 중 적어도 하나를 워크로드 메트릭 데이터로부터 훈련을 위한 특징 데이터로서 선택하는 것을 포함하는 것; NAND 플래시 수명 최적화를 위한 훈련 데이터 전략을, 미리 결정되거나 또는, 대안적으로, 원하는, 최적화 타겟이 NAND 플래시 수명일 때 선택하되, NAND 플래시 수명 최적화를 위한 훈련 데이터 전략은 적어도 블록 소거 회수를 워크로드 메트릭 데이터로부터 훈련을 위한 특징 데이터로서 선택하는 것을 포함하는 것; 읽기 지연 최적화를 위한 훈련 데이터 전략을, 미리 결정되거나 또는, 대안적으로 원하는, 최적화 타겟이 읽기 지연일 때 선택하되, 읽기 지연 최적화를 위한 훈련 데이터 전략은 적어도 IO 크기, IO 횟수, 및/또는 읽기 지연 중 적어도 하나를 워크로드 메트릭 데이터로부터 훈련을 위한 특징 데이터로서 선택하는 것을 포함하는 것을 포함한다. 훈련 데이터 전략은 또한 다른 최적화 타겟들을 위한 훈련 데이터를 선택하기 위한 전략을 포함할 수 있고, 이는 본 개시에 한정되지 아니하는 것으로 이해되어야 한다. 즉, 최적화 타겟에 기반하여, 선택된 특징 데이터를 사용하는 훈련 데이터 전략이 서로 다른 최적화 타겟들에 대해 결정된다.
몇몇 실시 예들에서, 기계 학습 모델은, 회귀(regression) 알고리즘 모델, 클러스터링(clustering) 알고리즘 모델, LSTM(Long Short-Term Memory) 모델, RNN(Recurrent Neural Network) 모델 등과 같은 것일 수 있으나, 이에 한정되지 아니한다. 대안적으로 또는 부가적으로, 이러한 기계 학습 시스템들은, 예를 들어, 선형 및/또는 로지스틱(logistic) 회귀, 통계 클러스터링, 베이지안(Bayesian) 분류, 의사 결정 트리, 주성분 분석 등과 같은 차원 감소, 및 전문가 시스템들; 및/또는 랜덤 포레스트들(random forests) 등과 같은 앙상블들을 포함하는 그들의 조합들 등과 같은 다른 형태의 기계 학습 모델을 포함할 수 있다. 이러한 기계 학습 모델들은 또한, 예를 들어, 다양한 서비스들 및/또는 응용들, 예를 들어 이미지 분류 서비스, 고급 운전자 지원 시스템(advanced driver assistance system; ADAS) 서비스 또는 그러한 것들 중 적어도 하나를 제공하는 데 사용될 수도 있고, 그리고 여기서 설명되는 시스템들 및/또는 장치들 중 임의의 몇몇 또는 전체에 의해 수행되거나, 실행되거나, 구현되거나, 또는 처리될 수 있다.
동작(S303)에서, 특징 데이터는 미리 설정된, 또는 대안적으로, 원하는, 시간 주기에 대한 워크로드 메트릭 데이터로부터 선택된 훈련 데이터 전략에 따라 선택되고, 그리고 선택된 기계 학습 모델은 선택된 특징 데이터에 기반하여 학습(훈련)된다.
구체적으로, 미리 설정된, 또는 대안적으로, 원하는, 최적화 타겟이 쓰기 성능인 경우, IO 크기, IO 횟수, IO 액세스 간격, 및/또는 쓰기 증폭 인자 중 적어도 하나 이상이 워크로드 메트릭 데이터로부터 선택된 훈련 데이터 전략에 따라 훈련을 위해 특징 데이터로서 선택될 수 있다; 미리 설정된, 또는 대안적으로, 원하는, 최적화 타겟이 NAND 플래시 수명인 경우, 적어도 블록 소거 회수가 워크로드 메트릭 데이터로부터 선택된 훈련 데이터 전략에 따라 훈련을 위해 특징 데이터로서 선택될 수 있다; 미리 설정된, 또는 대안적으로, 원하는, 최적화 타겟이 읽기 지연인 경우, IO 크기, IO 횟수, 및/또는 읽기 지연 중 적어도 하나 이상이 워크로드 메트릭 데이터로부터 선택된 훈련 데이터 전략에 따라 훈련을 위해 특징 데이터로서 선택될 수 있다
몇몇 실시 예들에서, 선택된 기계 학습 모델은 선택된 특징 데이터에 기반하여 오프라인 또는 온라인으로 훈련될 수 있으며, 이는 본 개시에 한정되지 아니한다.
동작(S304)에서, 후속 예측 시간 각각에서, 예측 시간에 대응하는 예측 시간 주기에 대한 데이터 배치를 위한 전략이 미리 설정된, 또는 대안적으로, 원하는, 시간 주기에 대한 워크로드 메트릭 데이터 및 훈련된 기계 학습 모델을 사용함으로써 예측 시간 내에 수집된 워크로드 메트릭 데이터에 따라 결정된다.
구체적으로, 실시간으로 또는 주기적으로 수집되는 워크로드 메트릭 데이터는 실시간으로 또는 주기적으로 데이터 배치를 위한 전략을 결정하기 위해 훈련된 기계 학습 모델로 입력될 수 있고, 이에 따라 데이터 배치를 위한 전략의 동적인 조정을 구현하고 그리고 데이터 배치를 위한 전략의 정확도를 개선한다.
몇몇 실시 예들에서, 동작(S305)에서, 데이터 배치를 위한 전략이 실행될 수 있다. 실행은 시간 주기 또는 업데이트된 시간 주기 동안 쓰기 데이터 입력들을 취하고, 그리고 쓰기 데이터 입력들의 데이터를 데이터 배치를 위한 전략에 의해 결정된 채널들로 배치할 수 있다. 몇몇 예시적인 실시 예들에서, 플래시 변환 계층(Flash Translation Layer; FTL)이 메모리 장치(예를 들어, SSD) 내 메모리 컨트롤러에 의해 실행됨에 따라, 동작(S305)이 수행될 수 있다. 몇몇 예시적인 실시 예들에서, 데이터 배치를 위한 전략에 기반하는 쓰기 데이터는 쓰기 속도 또는 읽기 속도를 개선함으로써 메모리 장치(예를 들어, SSD)의 성능을 증가시킬 수 있다. 몇몇 예시적인 실시 예들에서, 개선은 최적화 타겟들에 기반할 것이다.
몇몇 예시적인 실시 예들에서, 예측 시간에 대응하는 예측 시간 주기 동안 데이터 배치를 위한 전략을 미리 설정된, 또는 대안적으로, 원하는, 시간 주기에 대한 워크로드 메트릭 데이터 및 훈련된 기계 학습 모델을 사용함으로써 예측 시간 동안 수집된 워크로드 메트릭 데이터에 따라 결정하는 것에 있어서, IO 패턴이 미리 설정된, 또는 대안적으로, 원하는, 시간 주기에 대한 워크로드 메트릭 데이터 및 훈련된 기계 학습 모델을 사용함으로써 현재 예측 시간 동안 수집된 워크로드 메트릭 데이터에 따라 먼저 예측될 수 있고, 그 다음 현재 예측 시간에 대응하는 예측 시간 주기 내 데이터 배치를 위한 젼락이 예측된 IO 패턴에 따라 결정된다.
몇몇 예시적인 실시 예들에서, IO 패턴의 유형은 읽기-중점적 IO 패턴, 쓰기-중점적 IO 패턴, 데이터-뜨거움-정도 IO 패턴, 순차적-쓰기 IO 패턴, 및 랜덤-쓰기 IO 패턴을 적어도 포함한다.
몇몇 예시적인 실시 예들에서, 다음 시간 주기 내 데이터 배치를 위한 전략을 예측된 IO 패턴에 따라 결정하는 것에 있어서, IO 패턴이 읽기-중점적 IO 패턴일 때, 라운드 로빈 전략이 데이터 배치를 위한 전략으로서 사용되도록 결정될 수 있다; IO 패턴이 쓰기-중점적 IO 패턴일 때, 스트립 전략이 데이터 배치를 위한 전략으로서 사용되도록 결정될 수 있다; IO 패턴이 데이터-뜨거움-정도 IO 패턴일 때, 뜨거운 데이터 및 차가운 데이터에 대한 파티션(partition) 스토리지를 수행하는 전략이 데이터 배치를 위한 전략으로서 사용되도록 결정될 수 있다. 예를 들어, 뜨거운 데이터는 동일한 물리 블록에 배치되고, 그리고 차가운 데이터는 다른 물리 블록에 배치된다. 또한, IO 패턴이 순차적-쓰기 IO 패턴인 경우, 저 비용 플래시 메모리 유닛으로 데이터를 기입하는 전략이 도입될 수 있다. 예를 들어, 데이터는 MLC(Multi-Level Cell)로 기입된다. 추가적으로, IO 패턴이 랜덤-쓰기 IO 패턴인 경우, 높은 속도를 갖는 플래시 메모리 유닛으로 데이터를 기입하는 전략이 도입될 수 있다. 예를 들어, 데이터는 SLC(Single-Level Cell)로 기입된다.
몇몇 예시적인 실시 예들에서, 최적화 타겟의 변화가 검지되면, 미리 설정된, 또는 대안적으로, 원하는, 시간 주기가 업데이트되고 그리고 업데이트된 미리 설정된, 또는 대안적으로, 원하는, 시간 주기에 대한 워크로드 메트릭 데이터가 획득되며, 그러면, 변화된 최적화 타겟에 따라 기계 학습 모델 및 훈련 데이터 전략이 선택되고, 그리고 특징 데이터가 업데이트된 미리 설정된, 또는 대안적으로, 원하는, 시간 주기에 대한 워크로드 메트릭 데이터로부터 재-선택된 훈련 데이터 전략에 따라, 재-선택된 기계 학습 모델을 재-훈련하기 위해 선택되며, 따라서 후속적인 예측 시간 각각에서 재-훈련된 기계 학습 모델을 사용함으로써 데이터 배치를 위한 전략이 결정된다. 다시 말해서, 최적화 타겟의 변화가 검지되면,변한 최적화 타겟에 적응되기 위해, 방법은 다시 평가(reevaluate)되고 그리고 재구축(reconstruct)된다.
예시적인 실시 예들에 따라 SSD 내 데이터 배치를 위한 전략을 결정하기 위한 방법이 도 3을 참조하여 설명되었다. 이하에서, 예시적인 실시 예들에 따라 SSD 내 데이터 배치를 위한 전략을 결정하기 위한 장치 및 그것의 유닛들이 도 4를 참조하여 설명될 것이다.
도 4는 예시적인 실시 예들에 따라, SSD 내 데이터 배치를 위한 전략을 결정하기 위한 장치의 블록도를 도시한다. SSD 내 데이터 배치를 위한 전략을 결정하기 위한 장치는 SSD 내에 포함될 수 있고, 또는 SSD로 연결된 전자 장치 내에 위치할 수 있다.
도 4를 참조하면, SSD 내 데이터 배치를 위한 전략을 결정하기 위한 장치는 데이터 수집 유닛(40), 데이터 획득 유닛(41), 선택 유닛(42), 모델 훈련 유닛(43), 재훈련 유닛(431), 및/또는 전략 결정 유닛(44)을 포함하는 프로세서(400)일 수 있다.
데이터 획득 유닛(41)은 최적화 타겟 및 미리 설정된, 또는 대안적으로, 원하는 시간 주기 동안 미리-수집된 워크로드 메트릭 데이터를 획득하도록 구성될 수 있다.
몇몇 예시적인 실시 예들에서, 최적화 타겟은 쓰기 성능, NAND 플래시 수명, 및/또는 읽기 지연 중 적어도 하나를 포함할 수 있다.
몇몇 예시적인 실시 예들에서, SSD 내 데이터 배치를 위한 전략을 결정하기 위한 장치는 현재 워크로드 데이터를 얻기 위해 워크로드 데이터를 실시간으로 수집하도록 구성된 데이터 수집 유닛(40)을 더 포함할 수 있다.
선택 유닛(42)은 기계 학습 모델 및 훈련 데이터 전략을 최적화 타겟에 따라 선택하도록 구성된다.
몇몇 예시적인 실시 예들에서, 선택 유닛(42)은 미리 설정된, 또는 대안적으로, 원하는, 최적화 타겟이 쓰기 성능인 경우, 쓰기 성능 최적화를 위한 훈련 데이터 전략을 선택하되, 쓰기 성능 최적화 훈련 데이터 전략은 IO 크기, IO 횟수, IO 액세스 간격, 및/또는 쓰기 증폭 인자 중 적어도 어느 하나를 워크로드 메트릭 데이터로부터 훈련을 위한 특징 데이터로서 선택하는 것을 포함하고; 미리 설정된, 또는 대안적으로, 원하는, 최적화 타겟이 NAND 플래시 수명인 경우, NAND 플래시 수명 최적화를 위한 훈련 데이터 전략을 선택하되, NAND 플래시 수명 최적화를 위한 훈련 데이터 전략은 적어도 블록 소거 횟수를 워크로드 메트릭 데이터로부터 훈련을 위한 특징 데이터로서 선택하는 것을 포함하고; 미리 설정된, 또는 대안적으로, 원하는, 최적화 타겟이 읽기 지연인 경우, 읽기 지연 최적화를 위한 훈련 데이터 전략을 선택하되, 읽기 지연 최적화를 위한 훈련 데이터 전략은 IO 크기, IO 횟수, 및/또는 읽기 지연 중 적어도 어느 하나를 워크로드 메트릭 데이터로부터 훈련을 위한 특징 데이터로서 선택하는 것을 포함하도록 구성될 수 있다.
모델 훈련 유닛(43)은 특징 데이터를 워크로드 메트릭 데이터로부터 미리 설정된, 또는 대안적으로, 원하는, 시간 주기에 대해 선택된 훈련 데이터 전략에 따라 선택하고, 그리고 선택된 기계 학습 모델을 선택된 특징 데이터에 기반하여 훈련하도록 구성될 수 있다.
전략 결정 유닛(44)은, 후속적인 예측 시간 각각에 대해, 예측 시간에 대응하는 예측 시간 주기에 대한 데이터 배치를 위한 전략을 미리 설정된, 또는 대안적으로, 원하는 시간 주기에 대한 워크로드 메트릭 데이터 및 훈련된 기계 학습 모델을 사용함으로써 예측 시간 내에 수집된 워크로드 메트릭 데이터에 따라 결정하도록 구성될 수 있다.
몇몇 예시적인 실시 예들에서, 전략 결정 유닛(44)은 IO 패턴을 미리 설정된, 또는 대안적으로, 원하는 시간 주기에 대한 워크로드 메트릭 데이터 및 훈련된 기계 학습 모델을 사용함으로써 현재 예측 시간 내에 수집된 워크로드 메트릭 데이터에 따라 예측하고; 그리고 현재 예측 시간에 대응하는 예측 시간 주기에 대한 데이터 배치를 위한 전략을 예측된 IO 패턴에 따라 결정하도록 구성될 수 있다.
몇몇 예시적인 실시 예들에서, IO 패턴의 유형은 읽기-중점적 IO 패턴, 쓰기-중점적 IO 패턴, 데이터-뜨거움-정도 IO 패턴, 순차적-쓰기 IO 패턴, 및/또는 랜덤-쓰기 IO 패턴을 적어도 포함할 수 있다.
몇몇 예시적인 실시 예들에서, 전략 결정 유닛(44)은 IO 패턴이 읽기-중점적 IO 패턴일 때, 라운드 로빈 전략을 데이터 배치를 위한 전략으로 선택하도록 결정하고; IO 패턴이 쓰기-중점적 IO 패턴일 때, 스트립 전략을 데이터 배치를 위한 전략으로 선택하도록 결정하고; IO 패턴이 데이터-온도-정도 IO 패턴일 때, 뜨거운 데이터 및 차가운 데이터에 대한 파티션 스토리지를 수행하는 전략을 데이터 배치를 위한 전략으로 선택하도록 결정하고; IO 패턴이 순차적-쓰기 IO 패턴일 때, 저-비용 플래시 메모리 유닛으로 데이터를 기입하는 전략을 데이터 배치를 위한 전략으로 채택하고; IO 패턴이 랜덤-쓰기 IO 패턴일 때, 고속 플래시 메모리 유닛으로 데이터를 기입하는 전략을 데이터 배치를 위한 전략으로 채택하도록 더 구성될 수 있고, 이에 따라 데이터 배치를 위한 전략의 정확도가 개선된다.
몇몇 예시적인 실시 예들에서, SSD 내 데이터 배치를 위한 전략을 결정하기 위한 장치는 재-훈련 유닛(431)을 더 포함할 수 있으며, 이는 최적화 타겟의 변화가 검지될 때, 미리 설정된, 또는 대안적으로, 원하는, 시간 주기를 업데이트하고, 그리고 업데이트된 미리 설정된, 또는 대안적으로, 원하는, 시간 주기에 대한 워크로드 메트릭 데이터를 획득하고; 기계 학습 모델 및 훈련 데이터 전략을 변화된 최적화 타겟에 따라 선택하고; 그리고 재-선택된 기계 학습 모델을 재-훈련하기 위해, 특징 데이터를 업데이트된 미리 설정된, 또는 대안적으로, 원하는, 시간 주기에 대한 워크로드 메트릭 데이터로부터 재-선택된 훈련 데이터 전략에 따라 선택하도록 구성되며, 따라서 재-훈련된 기계 학습 모델을 후속 예측 시간 각각에 대해 사용함으로써 데이터 배치를 위한 전략이 결정된다.
이는 SSD로 하여금 성능을 다양한 워크로드환경들에서 최적화하도록 허용하며, 이에 따라 데이터 배치를 위한 전략의 동적인 결정이 구현되고 그리고 데이터 배치를 위한 전략의 정확도가 개선된다.
몇몇 예시적인 실시 예들에서, SSD 내 데이터 배치를 위한 전략을 결정하기 위한 장치는 결정된 데이터 배치를 위한 전략을 실행하도록 구성된 실행 유닛(45)을 더 포함할 수 있다. 실행 유닛(45)은 쓰기 데이터 입력들을 시간 주기 또는 업데이트된 시간 주기 동안 취하고, 그리고 SSD로 하여금 쓰기 데이터 입력들의 데이터를 데이터 배치를 위한 전략에 의해 결정된 채널들로 배치하도록 야기한다. 몇몇 실시 예들에서, 실행 유닛(45)은 결정된 데이터 배치를 위한 전략에 기반하여 쓰기 데이터 입력들의 데이터를 SSD로 기입하기 위해 플래시 변환 계층을 실행할 수 있다. 몇몇 예시적인 실시 예들에서, 데이터를 데이터 배치를 위한 전략에 기반하여 기입하는 것은 메모리 장치(예를 들어, SSD)의 성능을 쓰기 속도 또는 읽기 속도를 개선함으로써 향상시킬 수 있다. 몇몇 예시적인 실시 예들에서, 개선은 최적화 타겟들에 기반할 것이다.
추가적으로, 몇몇 예시적인 실시 예들에 따르면, 컴퓨터 프로그램과 함께 컴퓨터 판독 가능 저장 매체가 제공될 수 있으며, 컴퓨터 프로그램이 프로세서에 의해 실행될 때, 본 개시에 따른 SSD 내 데이터 배치를 위한 전략을 결정하기 위한 방법이 구현된다.
몇몇 예시적인 실시 예들에서, 컴퓨터 판독 가능 저장 매체는 하나 이상의 프로그램들을 운반(취급)할 수 있으며, 프로그램들이 실행될 때, 다음 동작들이 구현될 수 있다: 최적화 타겟 및 미리 설정된, 또는 대안적으로, 원하는 시간 주기에 대해 미리-수집된 워크로드 메트릭 데이터를 획득하는 것; 기계 학습 모델 및 훈련 데이터 전략을 최적화 타겟에 따라 선택하는 것; 미리 설정된, 또는 대안적으로, 원하는 시간 주기에 대한 워크로드 메트릭 데이터로부터 특징 데이터를 선택된 훈련 데이터 전략에 따라 선택하고, 그리고 선택된 기계 학습 모델을 선택된 특징 데이터에 기반하여 훈련시키는 것; 및 후속하는 예측 시간 각각에 대해, 예측 시간에 대응하는 예측 시간 주기에 대한 데이터 배치를 위한 전략을 미리 설정된, 또는 대안적으로, 원하는 시간 주기에 대한 워크로드 메트릭 데이터 및 훈련된 기계 학습 모델을 사용함으로써 예측 시간 내에 수집된 워크로드 메트릭 데이터에 따라결정하는 것.
컴퓨터 판독 가능 매체는, 예를 들어, 전자, 자기적, 광학, 전가지, 적외선, 또는 반도체 시스템, 장치, 또는 장비 또는 상술된 것들의 임의의 조합일 수 있으나, 이에 한정되지 아니한다. 컴퓨터 판독 가능 저장 매체의 구체적인 예시들은 하나 이상의 도선들을 갖는 전기적 연결들, 휴대용 컴퓨터 디스크들, 하드 디스크들, 랜덤 액세스 메모리(random access memory; RAM), ROM(read only memory), EPROM(erasable programmable read only memory; 또는 플래시 메모리), 광학 섬유, 휴대용 CD-ROM(compact disk read only memory), 광학 저장 매체, 자기 저장 매체, 또는 상술된 것들의 임의의 적절한 조합을 포함할 수 있으나, 이에 한정되지 아니한다. 예시적인 실시 예들에서, 컴퓨터 판독 가능 매체는 컴퓨터 프로그램을 일시적 또는 비-일시적 메모리를 사용하여 포함하고나 또는 저장하는 것이 가능하며, 명령어 실행 시스템, 장치, 또는 장비에 의해 또는 그러한 것들과 연관되어 사용되는 것이 가능한 임의의 유형의(tangible) 매체일 수 있다. 컴퓨터 판독 가능 저장 매체 상에 구체화된 컴퓨터 프로그램은, 도선, 광섬유 케이블, RF(Radio Frequency), 또는 상술된 것들의 임의의 적절한 조합 등과 같은, 그러나 이에 한정되지는 아니하는, 임의의 적절한 매체에 의해 전송되는 것이 가능하다. 컴퓨터 판독 가능 저장 매체는 임의의 장치에 포함되는 것이 가능하다; 이는 또한 장치로 병합되지 않고 분리되어 존재하는 것도 가능하다.
또한, 예시적인 실시 예들에 따르면, SSD가 제공되며, SSD는 메모리 셀; 컨트롤 칩, 또는 대안적으로, 프로세서를 포함하고, 컨트롤 칩은 최적화 타겟 및 미리 설정된, 또는 대안적으로, 원하는 시간 주기에 대해 미리-수집된 워크로드 메트릭 데이터를 획득하고; 기계 학습 모델 및 훈련 데이터 전략을 최적화 타겟에 따라 선택하고; 미리 설정된, 또는 대안적으로, 원하는 시간 주기에 대한 워크로드 메트릭 데이터로부터 특징 데이터를 선택된 훈련 데이터 전략에 따라 선택하고, 그리고 선택된 기계 학습 모델을 선택된 특징 데이터에 기반하여 훈련시키고; 후속하는 예측 시간 각각에 대해, 예측 시간에 대응하는 예측 시간 주기에 대한 데이터 배치를 위한 전략을 미리 설정된, 또는 대안적으로, 원하는 시간 주기에 대한 워크로드 메트릭 데이터 및 훈련된 기계 학습 모델을 사용함으로써 예측 시간 내에 수집된 워크로드 메트릭 데이터에 따라 결정하도록 구성된다.
예시적인 실시 예들에 따라 SSD 내 데이터 배치를 위한 전략을 결정하기 위한 장치가 도 4를 참조하여 설명되었다. 이하에서, 예시적인 실시 예들에 따른 컴퓨팅 장치가 도 5를 참조하여 설명될 것이다.
도 5는 예시적인 실시 예에 따라, 컴퓨팅 장치의 개략도를 도시한다.
도 5를 참조하면, 몇몇 예시적인 실시 예들에 따른 컴퓨팅 장치(5)는 메모리(51) 및/또는 프로세서(52)를 포함할 수 있고, 그리고 컴퓨터 프로그램은 메모리(51)에 저장될 수 있으며, 이때 컴퓨터 프로그램이 프로세서(52)에 의해 실행되면, 본 개시에 따라 SSD 내 데이터 배치를 위한 전략을 결정하는 방법이 구현된다.
몇몇 예시적인 실시 예들에서, 컴퓨터 프로그램이 프로세서(52)에 의해 실행될 때, 다음 동작들이 구현될 수 있다: 최적화 타겟 및 미리 설정된, 또는 대안적으로, 원하는 시간 주기에 대해 미리-수집된 워크로드 메트릭 데이터를 획득하는 것; 기계 학습 모델 및 훈련 데이터 전략을 최적화 타겟에 따라 선택하는 것; 미리 설정된, 또는 대안적으로, 원하는 시간 주기에 대한 워크로드 메트릭 데이터로부터 특징 데이터를 선택된 훈련 데이터 전략에 따라 선택하고, 그리고 선택된 기계 학습 모델을 선택된 특징 데이터에 기반하여 훈련시키는 것; 및 후속하는 예측 시간 각각에 대해, 예측 시간에 대응하는 예측 시간 주기에 대한 데이터 배치를 위한 전략을 미리 설정된, 또는 대안적으로, 원하는 시간 주기에 대한 워크로드 메트릭 데이터 및 훈련된 기계 학습 모델을 사용함으로써 예측 시간 내에 수집된 워크로드 메트릭 데이터에 따라 결정하는 것.
컴퓨팅 장치(5)는, 도 5에 도시된 바와 같은 하드웨어/소프트웨어 조합, 또는 로직 회로들 등과 같은 하드웨어, 또는 그들의 조합으로 처리 회로에 구현될 수 있다. 예를 들어, 컴퓨팅 장치(5)는 좀 더 구체적으로, 중앙 처리 장치(Central Processing Unit; CPU), 산술 논리 장치(Arithmetic Logic Unit; ALU), 디지털 신호 프로세서, 마이크로컴퓨터, FPGA(Field Programmable Gate Array), 시스템-온-칩(System-on-Chip; SoC), 프로그램 가능한 논리 장치, 마이크로프로세서, ASIC(application-specific integrated circuit) 등과 같은 것들을 포함할 수 있으나, 이에 한정되는 것은 아니다.
예시적인 실시 예들의 컴퓨팅 장치(5)는, 메모리 장치들(SSD 등), 모바일 폰들, 노트북 컴퓨터들, PDA(Personal Digital Assistants), 타블렛 PC들(PAD), 데스크탑 컴퓨터들 등을 포함할 수 있으나, 이에 한정되지 아니한다. 도 5에 도시된 컴퓨팅 장치(5)는 단순한 예시일 뿐이고, 실시 예들의 사용 범위 및 기능에 대한 한정을 가해서는 안 된다.
몇몇 예시적인 실시 예들에 따른 SSD 내 데이터 배치를 위한 전략을 결정하는 방법 및 장치가 도 3 내지 도 5를 참조하여 설명되었다. 그러나, SSD 내 데이터 배치를 위한 전략을 결정하기 위한 장치 및 도 4에 도시된 유닛들은 임의의 적합한 하드웨어, 하드웨어 및 소프스퉤어, 하드웨어 펌웨어 등, 또는 특정한 기능을 수행하기 위한 그들의 조합 또는 그들의 임의의 조합으로 구현될 수 있다고 이해되어야 한다. 도 5에 도시된 컴퓨팅 장치(5)는 상술된 구성 요소들을 포함하는 데 한정되지 아니하나, 몇몇 구성 요소들이 필요에 따라 부가되거나 또는 제거될 수 있으며, 상술된 구성 요소들은 또한 결합될 수 있다.
예시적인 실시 예들에 따라 SSD 내 데이터 배치를 위한 전략을 결정하기 위한 장치 및 방법은 최적화 타겟 및 미리 설정된, 또는 대안적으로, 원하는 시간 주기에 대해 미리-수집된 워크로드 메트릭 데이터를 획득하는 것; 기계 학습 모델 및 훈련 데이터 전략을 최적화 타겟에 따라 선택하고, 미리 설정된, 또는 대안적으로, 원하는 시간 주기에 대한 워크로드 메트릭 데이터로부터 특징 데이터를 선택된 훈련 데이터 전략에 따라 선택하고, 그리고 선택된 기계 학습 모델을 선택된 특징 데이터에 기반하여 훈련시키고, 그리고 후속하는 예측 시간 각각에 대해, 예측 시간에 대응하는 예측 시간 주기에 대한 데이터 배치를 위한 전략을 미리 설정된, 또는 대안적으로, 원하는 시간 주기에 대한 워크로드 메트릭 데이터 및 훈련된 기계 학습 모델을 사용함으로써 예측 시간 내에 써 수집된 워크로드 메트릭 데이터에 따라 결정함으로써, SSD로 하여금 다양한 워크로드 환경에서 성능을 최적화하는 것이 가능하게 한다.
본 개시가 특정한 예시적인 실시 예들을 참조하여 도시되고 설명되었으나, 첨부된 청구항들에 의해 정의되는 원리 및 본질로부터 분리되지 않으면서 다양한 변경들이 형태 및 세부 사항들에 있어서 이루어질 수 있다는 것이 통상의 기술자에 의해 이해되어야 한다.
400: 프로세서
5: 컴퓨팅 장치

Claims (10)

  1. SSD(Solid State Drive) 내 데이터 배치를 위한 전략을 결정하기 위한 방법에 있어서:
    최적화 타겟 및 시간 주기에 대해 미리 수집된 제 1 워크로드 메트릭 데이터를 획득하는 단계;
    기계 학습 모델 및 훈련 데이터 전략을 상기 최적화 타겟에 따라 선택하는 단계;
    상기 제 1 워크로드 메트릭 데이터로부터 특징 데이터를 상기 선택된 훈련 데이터 전략에 따라 선택하고, 그리고 상기 선택된 기계 학습 모델을 상기 선택된 특징 데이터에 기반하여 훈련시키는 단계; 및
    후속하는 예측 시간 각각에 대해, 상기 시간 주기에 대한 상기 제 1 워크로드 메트릭 데이터 및 상기 훈련된 기계 학습 모델을 사용함으로써 상기 예측 시간 내에 수집된 제 2 워크로드 메트릭 데이터에 따라 상기 예측 시간에 대응하는 예측 시간 주기에 대한 데이터 배치를 위한 전략을 결정하는 단계를 포함하는 방법.
  2. 제 1 항에 있어서,
    상기 예측 시간에 대응하는 상기 예측 시간 주기에 대한 상기 데이터 배치를 위한 상기 전략을 결정하는 단계는:
    상기 시간 주기에 대한 상기 제 1 워크로드 데이터 및 현재 예측 시간 내에 수집되는 제 3 워크로드 데이터에 따라 상기 훈련된 기계 학습 모델을 사용함으로써 IO(Input/Output) 패턴을 예측하는 단계;
    상기 예측된 IO 패턴에 따라, 상기 현재 예측 시간에 대응하는 상기 예측 시간 주기 내 상기 데이터 배치를 위한 상기 전략을 결정하는 단계를 포함하는 방법.
  3. 제 1 항에 있어서,
    상기 최적화 타겟은 쓰기 성능, NAND 플래시 수명, 또는 읽기 지연 중 적어도 하나를 포함하는 방법.
  4. 제 1 항에 있어서,
    최적화 타겟의 변화가 검지되는 것에 기반하여, 상기 시간 주기를 업데이트하고 그리고 상기 업데이트된 시간 주기에 대한 제 3 워크로드 메트릭 데이터를 획득하는 단계;
    상기 변화된 최적화 타겟에 따라 상기 기계 학습 모델 및 상기 훈련 데이터 전략을 재결정하는 단계; 및
    상기 재선택된 기계 학습 모델을 다시 훈련하여 상기 후속 예측 시간 각각에서 상기 재훈련된 기계 학습 모델을 사용함으로써 상기 데이터 배치를 위한 상기 전략을 결정하기 위해, 상기 업데이트된 시간 주기에 대한 상기 제 3 워크로드 메트릭 데이터로부터 상기 재선택된 훈련 데이터 전략에 따라 상기 특징 데이터를 재선택하는 단계를 더 포함하는 방법.
  5. SSD(Solid State Drive) 내 데이터 배치를 위한 전략을 결정하기 위한 장치에 있어서:
    프로세서를 포함하되, 상기 프로세서는:
    최적화 타겟 및 시간 주기에 대해 미리-수집된 제 1 워크로드 메트릭 데이터를 획득하고;
    기계 학습 모델 및 훈련 데이터 전략을 상기 최적화 타겟에 따라 선택하고;
    상기 시간 주기에 대한 상기 제 1 워크로드 메트릭 데이터로부터 특징 데이터를 상기 선택된 훈련 데이터 전략에 따라 선택하고, 그리고 상기 선택된 기계 학습 모델을 상기 선택된 특징 데이터에 기반하여 훈련시키고; 그리고
    후속하는 예측 시간 각각에 대해, 상기 시간 주기에 대한 상기 제 1 워크로드 메트릭 데이터 및 상기 훈련된 기계 학습 모델을 사용함으로써 상기 예측 시간 내에 수집된 제 2 워크로드 메트릭 데이터에 따라 상기 예측 시간에 대응하는 예측 시간 주기에 대한 데이터 배치를 위한 전략을 결정하는 장치.
  6. 제 5 항에 있어서,
    상기 프로세서는:
    상기 시간 주기에 대한 상기 제 1 워크로드 데이터 및 현재 예측 시간 내에 수집되는 제 3 워크로드 데이터에 따라 상기 훈련된 기계 학습 모델을 사용함으로써 IO(Input/Output) 패턴을 예측하고; 그리고
    상기 예측된 IO 패턴에 따라, 상기 현재 예측 시간에 대응하는 상기 예측 시간 주기 내 상기 데이터 배치를 위한 상기 전략을 결정하는 장치.
  7. 제 6 항에 있어서,
    상기 IO 패턴의 유형은 적어도 읽기-중점적 IO 패턴, 쓰기-중점적 IO 패턴, 데이터-뜨거움-정도 IO 패턴, 순차적-쓰기 IO 패턴, 및 랜덤-쓰기 IO 패턴을 포함하는 장치.
  8. 제 7 항에 있어서, 상기 프로세서는:
    상기 예측된 IO 패턴이 상기 읽기-중점적 IO 패턴인 것에 기반하여, 라운드 로빈(Round-Robin) 전략을 상기 데이터 배치를 위한 상기 전략으로 사용하기로 결정하고;
    상기 예측된 IO 패턴이 상기 쓰기-중점적 IO 패턴인 것에 기반하여, 스트립(strip) 전략을 상기 데이터 배치를 위한 상기 전략으로 사용하기로 결정하고;
    상기 예측된 IO 패턴이 상기 데이터-뜨거움-정도 IO 패턴인 것에 기반하여, 파티션 스토리지를 뜨거운 데이터 및 차가운 데이터에 대해 수행하는 전략을 사용하기로 결정하고;
    상기 예측된 IO 패턴이 상기 순차적-쓰기 IO 패턴인 것에 기반하여, 데이터를 저비용 플래시 메모리 유닛으로 기입하는 전략을 채택하고; 그리고
    상기 예측된 IO 패턴이 상기 랜덤-쓰기 IO 패턴인 것에 기반하여, 데이터를 고속 플래시 메모리 유닛으로 기입하는 전략을 채택하는 장치.
  9. SSD(Solid State Drive)에 있어서, 상기 SSD는:
    컴퓨터-판독 가능 명령어들을 저장하는 메모리 셀; 및
    프로세서를 포함하되,
    상기 프로세서는:
    최적화 타겟 및 시간 주기에 대해 미리-수집된 제 1 워크로드 메트릭 데이터를 획득하고;
    기계 학습 모델 및 훈련 데이터 전략을 상기 최적화 타겟에 따라 선택하고;
    상기 시간 주기에 대한 상기 제 1 워크로드 메트릭 데이터로부터 특징 데이터를 상기 선택된 훈련 데이터 전략에 따라 선택하고, 그리고 상기 선택된 기계 학습 모델을 상기 선택된 특징 데이터에 기반하여 훈련시키고; 그리고
    복수의 후속하는 예측 시간 주기들에 대해, 상기 시간 주기에 대한 상기 제 1 워크로드 메트릭 데이터 및 상기 훈련된 기계 학습 모델을 사용함으로써 상기 복수의 후속하는 예측 시간 주기들 중 어느 하나에서 수집된 제 2 워크로드 메트릭 데이터에 따라 상기 복수의 후속하는 예측 시간 주기들 중 상기 어느 하나에 대한 데이터 배치를 위한 전략을 결정하기 위해, 상기 컴퓨터-판독 가능 명령어들을 실행하도록 구성되는 SSD.
  10. 제 9 항에 있어서,
    상기 프로세서는 상기 결정된 데이터 배치를 위한 전략에 기반하여 데이터를 기입하도록 더 구성되는 SSD.
KR1020200149157A 2019-12-25 2020-11-10 Ssd 내 데이터 배치를 위한 전략을 결정하는 방법 및 장치 KR20210082345A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201911355189.5A CN111176564B (zh) 2019-12-25 2019-12-25 确定ssd内数据摆放策略的方法及装置
CN201911355189.5 2019-12-25

Publications (1)

Publication Number Publication Date
KR20210082345A true KR20210082345A (ko) 2021-07-05

Family

ID=70650457

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200149157A KR20210082345A (ko) 2019-12-25 2020-11-10 Ssd 내 데이터 배치를 위한 전략을 결정하는 방법 및 장치

Country Status (3)

Country Link
US (1) US11397529B2 (ko)
KR (1) KR20210082345A (ko)
CN (1) CN111176564B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102484073B1 (ko) * 2021-11-22 2023-01-02 삼성전자주식회사 스토리지 시스템

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210031220A (ko) * 2019-09-11 2021-03-19 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
KR20220105303A (ko) * 2021-01-20 2022-07-27 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US11513720B1 (en) * 2021-06-11 2022-11-29 Western Digital Technologies, Inc. Data storage device having predictive analytics
US20230022330A1 (en) * 2021-07-22 2023-01-26 EMC IP Holding Company LLC Blockchain-enabled storage array
CN113886382A (zh) * 2021-08-23 2022-01-04 阿里云计算有限公司 数据库任务处理方法、设备及存储介质
US11599298B1 (en) * 2021-09-23 2023-03-07 Western Digital Technologies, Inc. Storage system and method for prediction-based pre-erase of blocks to improve sequential performance
CN114442935B (zh) * 2021-12-29 2023-08-04 天翼云科技有限公司 刷脏数据的方法、装置、电子设备及存储介质
CN114637466B (zh) * 2022-03-03 2022-11-11 深圳大学 一种数据读写行为推测方法、装置、存储介质及电子设备
CN114860160B (zh) * 2022-04-15 2023-04-07 北京科杰科技有限公司 一种针对Hadoop数据平台的扩容资源预测方法及系统
CN114840149B (zh) * 2022-07-06 2022-09-23 江苏华存电子科技有限公司 一种超级闪存的时序稳定分析方法及系统
CN117854569B (zh) * 2024-03-05 2024-05-24 合肥康芯威存储技术有限公司 一种存储器的性能测试系统及性能测试方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7506098B2 (en) 2006-06-08 2009-03-17 Bitmicro Networks, Inc. Optimized placement policy for solid state storage devices
US7853759B2 (en) * 2007-04-23 2010-12-14 Microsoft Corporation Hints model for optimization of storage devices connected to host and write optimization schema for storage devices
US8327066B2 (en) 2008-09-30 2012-12-04 Samsung Electronics Co., Ltd. Method of managing a solid state drive, associated systems and implementations
EP2724226A1 (en) 2011-06-23 2014-04-30 CohortFS, LLC Dynamic data placement for distributed storage
EP2629247B1 (en) 2012-02-15 2014-01-08 Alcatel Lucent Method for mapping media components employing machine learning
US9582297B2 (en) 2013-05-16 2017-02-28 Vmware, Inc. Policy-based data placement in a virtualized computing environment
US9256371B2 (en) * 2013-05-28 2016-02-09 Globalfoundries Inc. Implementing reinforcement learning based flash control
US9152495B2 (en) 2013-07-03 2015-10-06 SanDisk Technologies, Inc. Managing non-volatile media using multiple error correcting codes
US9652471B1 (en) 2014-12-15 2017-05-16 Amazon Technologies, Inc. Intelligent file system with transparent storage tiering
US9851919B2 (en) 2014-12-31 2017-12-26 Netapp, Inc. Method for data placement in a memory based file system
US10127234B1 (en) * 2015-03-27 2018-11-13 Amazon Technologies, Inc. Proactive optimizations at multi-tier file systems
CN104834479A (zh) * 2015-04-24 2015-08-12 清华大学 面向云平台的自动优化存储系统配置的方法及系统
US10334334B2 (en) * 2016-07-22 2019-06-25 Intel Corporation Storage sled and techniques for a data center
US10943184B2 (en) * 2017-09-14 2021-03-09 Amadeus S.A.S. Machine learning methods and systems for predicting online user interactions
US10254979B1 (en) 2017-09-28 2019-04-09 Intel Corporation Relocating or aborting a block of data by a host, based on media policies managed by a storage device
JP7017640B2 (ja) * 2018-05-18 2022-02-08 グーグル エルエルシー データ拡張方策の学習
CN110188910B (zh) * 2018-07-10 2021-10-22 第四范式(北京)技术有限公司 利用机器学习模型提供在线预测服务的方法及系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102484073B1 (ko) * 2021-11-22 2023-01-02 삼성전자주식회사 스토리지 시스템

Also Published As

Publication number Publication date
CN111176564A (zh) 2020-05-19
US20210200448A1 (en) 2021-07-01
CN111176564B (zh) 2024-02-27
US11397529B2 (en) 2022-07-26

Similar Documents

Publication Publication Date Title
KR20210082345A (ko) Ssd 내 데이터 배치를 위한 전략을 결정하는 방법 및 장치
US10963394B2 (en) System and method for optimizing performance of a solid-state drive using a deep neural network
US10782908B2 (en) Predictive data orchestration in multi-tier memory systems
US9405677B2 (en) Dynamic tuning of internal parameters for solid-state disk based on workload access patterns
US20190243771A1 (en) Accelerate Data Access in Memory Systems via Data Stream Segregation
US11435953B2 (en) Method for predicting LBA information, and SSD
US20190361811A1 (en) Data processing apparatus and prefetch method
US10846233B2 (en) Memory controller and application processor for controlling utilization and performance of input/output device and method of operating the memory controller
US9582422B2 (en) Hardware prefetcher for indirect access patterns
Yang et al. Reducing garbage collection overhead in {SSD} based on workload prediction
JP2023508676A (ja) ウェアレベリングを考慮したメモリ操作
Luo et al. Self-learning hot data prediction: Where echo state network meets NAND flash memories
CN110515454B (zh) 一种基于内存计算的神经网络架构电子皮肤
US10877893B2 (en) Adaptive pre-fetch
KR20220148944A (ko) 호스트 시스템의 워크로드에 기초하여 저장 장치에 대한 판독 동작 식별
CN115756815A (zh) 数据序列预测和资源分配
Kwak et al. GALRU: A group-aware buffer management scheme for flash storage systems
Sun et al. CalmWPC: A buffer management to calm down write performance cliff for NAND flash-based storage systems
US11681909B2 (en) Memory component with a bus to transmit data for a machine learning operation and another bus to transmit host data
US11263156B2 (en) Memory component with a virtualized bus and internal logic to perform a machine learning operation
US11694076B2 (en) Memory sub-system with internal logic to perform a machine learning operation
EP4184307A1 (en) A storage system
CN117909199B (zh) 性能测定方法、装置、设备,负载均衡方法,系统及介质
Yao et al. Uniform scheduling of interruptible garbage collection and request IO to improve performance and wear-leveling of SSDs
US20210110249A1 (en) Memory component with internal logic to perform a machine learning operation

Legal Events

Date Code Title Description
A201 Request for examination