KR20210101632A - 스토리지 장치 및 상기 스토리지 장치의 동작 방법 - Google Patents
스토리지 장치 및 상기 스토리지 장치의 동작 방법 Download PDFInfo
- Publication number
- KR20210101632A KR20210101632A KR1020200015838A KR20200015838A KR20210101632A KR 20210101632 A KR20210101632 A KR 20210101632A KR 1020200015838 A KR1020200015838 A KR 1020200015838A KR 20200015838 A KR20200015838 A KR 20200015838A KR 20210101632 A KR20210101632 A KR 20210101632A
- Authority
- KR
- South Korea
- Prior art keywords
- mode
- time
- command
- input
- power mode
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 46
- 230000015654 memory Effects 0.000 claims abstract description 74
- 238000012545 processing Methods 0.000 claims abstract description 23
- 230000008569 process Effects 0.000 claims abstract description 10
- 230000001105 regulatory effect Effects 0.000 claims abstract 2
- 230000008859 change Effects 0.000 claims description 29
- 238000003062 neural network model Methods 0.000 claims description 29
- 230000007704 transition Effects 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 5
- 238000011017 operating method Methods 0.000 claims description 3
- 101000711846 Homo sapiens Transcription factor SOX-9 Proteins 0.000 description 43
- 102100034204 Transcription factor SOX-9 Human genes 0.000 description 43
- 101100232371 Hordeum vulgare IAT3 gene Proteins 0.000 description 36
- 238000010586 diagram Methods 0.000 description 27
- 210000004027 cell Anatomy 0.000 description 14
- 238000013528 artificial neural network Methods 0.000 description 10
- 210000002569 neuron Anatomy 0.000 description 6
- 230000000052 comparative effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 239000012212 insulator Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005442 molecular electronic Methods 0.000 description 1
- 239000002071 nanotube Substances 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 229920000642 polymer Polymers 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3228—Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3215—Monitoring of peripheral devices
- G06F1/3225—Monitoring of peripheral devices of memory devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/324—Power saving characterised by the action undertaken by lowering clock frequency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3275—Power saving in memory, e.g. RAM, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3287—Power saving characterised by the action undertaken by switching off individual functional units in the computer system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3296—Power saving characterised by the action undertaken by lowering the supply or operating voltage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0625—Power saving in storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
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)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Neurology (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Power Sources (AREA)
Abstract
스토리지 장치가 개시된다. 액티브 모드 및 액티브 모드보다 낮은 소모 전력을 갖는 저전력 모드를 포함하는 복수의 전력 모드들로 동작하는 스토리지 장치에 있어서, 복수의 비휘발성 메모리 셀을 포함하는 비휘발성 메모리, 및 액티브 모드에서 호스트 장치로부터 입력된 커맨드들을 처리하는 스토리지 컨트롤러를 포함하고, 스토리지 컨트롤러는 복수의 전력 모드들을 조절하는 전력 모드 매니저를 포함하고, 전력 모드 매니저는 제1 커맨드가 입력되면 제1 커맨드 이후에 호스트 장치로부터 제2 커맨드가 입력되는 데에 걸리는 입력 예측 시간을 예측하고, 제1 커맨드의 처리 동작이 완료되면 액티브 모드에서 저전력 모드로 변경하고, 입력 예측 시간에 따라 설정된 복귀 시간이 경과되면 저전력 모드에서 액티브 모드로 복귀한다.
Description
본 개시의 기술적 사상은 스토리지 장치 및 상기 스토리지 장치의 동작 방법에 관한 것으로서, 더욱 상세하게는, 복수의 전력 모드들로 동작하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법에 관한 것이다.
비휘발성 메모리는 전원이 차단되어도 저장하고 있는 데이터를 유지할 수 있다. 최근 eMMC(embedded Multi-Media Card), UFS(Universal Flash Storage), SSD(Solid State Drive), 및 메모리 카드 등의 플래시 기반의 비휘발성 메모리를 포함하는 스토리지 장치가 널리 사용되고 있으며, 스토리지 장치는 많은 양의 데이터를 저장하거나 이동시키는데 유용하게 사용되고 있다.
스토리지 장치는 호스트 장치로부터 수신한 커맨드에 따른 동작을 수행할 때는 액티브 모드로 동작하고, 호스트 장치로부터 수신한 커맨드에 따른 동작을 수행하지 않을 때는 저전력 모드로 동작한다. 스토리지 장치는 저전력 모드로 동작함으로써 소모되는 전력을 감소시킬 수 있다.
본 개시의 기술적 사상이 해결하고자 하는 과제는 다음 커맨드가 수신되는 시점을 미리 예측하여 전력 모드를 변환하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법을 제공하는 데에 있다.
본 개시의 기술적 사상에 따른 액티브 모드 및 액티브 모드보다 낮은 소모 전력을 갖는 저전력 모드를 포함하는 복수의 전력 모드들로 동작하는 스토리지 장치에 있어서, 복수의 비휘발성 메모리 셀을 포함하는 비휘발성 메모리, 및 액티브 모드에서 호스트 장치로부터 입력된 커맨드들을 처리하는 스토리지 컨트롤러를 포함하고, 스토리지 컨트롤러는 복수의 전력 모드들을 조절하는 전력 모드 매니저를 포함하고, 전력 모드 매니저는 제1 커맨드가 입력되면 제1 커맨드 이후에 호스트 장치로부터 제2 커맨드가 입력되는 데에 걸리는 입력 예측 시간을 예측하고, 제1 커맨드의 처리 동작이 완료되면 액티브 모드에서 저전력 모드로 변경하고, 입력 예측 시간에 따라 설정된 복귀 시간이 경과되면 저전력 모드에서 액티브 모드로 복귀할 수 있다.
본 개시의 기술적 사상에 따른 액티브 모드 및 액티브 모드보다 낮은 소모 전력을 갖는 저전력 모드를 포함하는 복수의 전력 모드들로 동작하는 스토리지 장치의 동작 방법에 있어서, 호스트 장치로부터 제1 커맨드가 입력되는 단계; 제1 커맨드에 이후에 호스트 장치로부터 제2 커맨드가 입력될 입력 예측 시간을 예측하는 단계; 입력 예측 시간에 기초하여 저전력 모드에서 액티브 모드로 복귀할 복귀 시간을 타이머에 설정하는 단계; 제1 커맨드의 처리 동작이 완료되면 액티브 모드에서 저전력 모드로 전환하는 단계; 복귀 시간이 경과되면 저전력 모드에서 액티브 모드로 복귀하는 단계를 포함할 수 있다.
본 개시의 기술적 사상에 따른 액티브 모드 및 액티브 모드보다 낮은 소모 전력을 갖는 저전력 모드를 포함하는 복수의 전력 모드들로 동작하는 스토리지 장치에 있어서, 복수의 비휘발성 메모리 셀을 포함하는 비휘발성 메모리, 액티브 모드에서 호스트 장치로부터 입력된 커맨드들을 처리하는 스토리지 컨트롤러 및 복수의 전력 모드들을 조절하는 전력 모드 매니저를 포함하고, 전력 모드 매니저는 제1 커맨드가 입력되면, 제1 커맨드 이후에 호스트 장치로부터 제2 커맨드가 입력되는 데에 걸리는 입력 예측 시간을 예측하고, 제1 커맨드의 처리 동작이 완료되면 액티브 모드에서 저전력 모드로 변경하고, 입력 예측 시간에 따라 설정된 복귀 시간이 경과되면 저전력 모드에서 액티브 모드로 복귀할 수 있다.
본 개시의 기술적 사상에 따른 스토리지 장치는 호스트 장치로부터 다음 커맨드가 입력되는 시점을 미리 예측하여, 다음 커맨드가 입력되기 전에 저전력 모드에서 액티브 모드로 복귀할 수 있다. 따라서, 스토리지 장치는, 전력 모드를 전환하는 데에 걸리는 시간으로 인하여 다음 커맨드 처리 시에 발생하는 레이턴시를 감소시킬 수 있다.
또한, 본 개시의 기술적 사상에 따른 스토리지 장치는 호스트 장치로부터 다음 커맨드가 입력되는 시점을 미리 예측하여, 액티브 모드에서 저전력 모드로 전력 모드를 변경할지 판단할 수 있다. 따라서, 전력 모드를 전환함에 따라 실질적으로 전기 에너지를 절약할 수 없거나, 다음 커맨드 처리 시에 발생하는 레이턴시를 실질적으로 감소시키지 못하는 경우에는 전력 모드를 전환하지 않을 수 있다.
도 1은 본 개시의 예시적 실시 예에 따른 스토리지 시스템을 나타내는 블록도이다.
도 2는 본 개시의 예시적 실시 예에 따른 스토리지 장치가 수행하는 복수의 전력 모드들을 설명하기 위한 도면이다.
도 3은 본 개시의 예시적 실시 예에 따른 스토리지 장치의 동작 방법을 설명하기 위한 도면이다.
도 4a는 본 개시의 예시적 실시 예에 따른 스토리지 장치가 슬립 모드에서 액티브 모드로 복귀하는 데에 걸리는 시간을 설명하기 위한 도면이다.
도 4b는 비교 예의 스토리지 장치가 슬립 모드에서 액티브 모드로 복귀하는 데에 걸리는 시간을 설명하기 위한 도면이다.
도 5는 본 개시의 예시적 실시예에 따른 스토리지 컨트롤러를 나타내는 블록도이다.
도 6은 본 개시의 예시적 실시 예에 따른 전력 모드 매니저를 나타내는 블록도이다.
도 7a 및 도 7b는 뉴럴 네트워크 모델을 포함하는 아이들 예측기의 동작을 설명하기 위한 도면이다.
도 8은 본 개시의 예시적 실시 예에 따른 스토리지 장치의 동작 방법을 설명하기 위한 도면이다.
도 9는 본 개시의 예시적 실시 예에 따른 스토리지 장치의 동작 방법을 설명하기 위한 도면이다.
도 10은 본 개시의 예시적 실시 예에 따른 워크로드 모니터의 동작을 설명하기 위한 도면이다.
도 11은 본 개시의 예시적 실시 예에 따른 스토리지 장치의 동작 방법을 설명하기 위한 도면이다.
도 12는 본 개시의 예시적 실시 예에 따른 스토리지 장치를 나타내는 블록도이다.
도 2는 본 개시의 예시적 실시 예에 따른 스토리지 장치가 수행하는 복수의 전력 모드들을 설명하기 위한 도면이다.
도 3은 본 개시의 예시적 실시 예에 따른 스토리지 장치의 동작 방법을 설명하기 위한 도면이다.
도 4a는 본 개시의 예시적 실시 예에 따른 스토리지 장치가 슬립 모드에서 액티브 모드로 복귀하는 데에 걸리는 시간을 설명하기 위한 도면이다.
도 4b는 비교 예의 스토리지 장치가 슬립 모드에서 액티브 모드로 복귀하는 데에 걸리는 시간을 설명하기 위한 도면이다.
도 5는 본 개시의 예시적 실시예에 따른 스토리지 컨트롤러를 나타내는 블록도이다.
도 6은 본 개시의 예시적 실시 예에 따른 전력 모드 매니저를 나타내는 블록도이다.
도 7a 및 도 7b는 뉴럴 네트워크 모델을 포함하는 아이들 예측기의 동작을 설명하기 위한 도면이다.
도 8은 본 개시의 예시적 실시 예에 따른 스토리지 장치의 동작 방법을 설명하기 위한 도면이다.
도 9는 본 개시의 예시적 실시 예에 따른 스토리지 장치의 동작 방법을 설명하기 위한 도면이다.
도 10은 본 개시의 예시적 실시 예에 따른 워크로드 모니터의 동작을 설명하기 위한 도면이다.
도 11은 본 개시의 예시적 실시 예에 따른 스토리지 장치의 동작 방법을 설명하기 위한 도면이다.
도 12는 본 개시의 예시적 실시 예에 따른 스토리지 장치를 나타내는 블록도이다.
이하, 첨부한 도면을 참조하여 본 개시의 실시 예에 대해 상세히 설명한다.
도 1은 본 개시의 예시적 실시 예에 따른 스토리지 시스템(1000)을 나타내는 블록도이다.
도 1을 참조하면, 스토리지 시스템(1000)은 스토리지 장치(10) 및 호스트 장치(20)를 포함할 수 있다. 스토리지 시스템(1000)은 전자 장치에 내장(embedded)되거나 또는 전자 장치로 구현될 수 있다. 전자 장치는 예를 들어, PC(personal computer), 데이터 서버, UMPC(Ultra Mobile PC), 워크스테이션, 넷북(net-book), 네트워크-결합 스토리지(network-attached storage, NAS), 스마트 텔레비전(smart television), IoT (Internet of Things) 장치, 또는 휴대용 전자 기기로 구현될 수 있다. 휴대용 전자 기기는, 랩탑 컴퓨터, 이동 전화기, 스마트폰, 태블릿 PC, PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라, 디지털 비디오 카메라, 오디오 장치, PMP(portable multimedia player), PND(personal navigation device), MP3 플레이어, 휴대용 게임 콘솔(handheld game console), e-북(e-book), 웨어러블 기기 등일 수 있다.
호스트 장치(20)는 커맨드(CMD)를 스토리지 장치(10)로 전송하고, 스토리지 장치(10)의 전반적인 동작을 관리할 수 있다. 호스트 장치(20)는 스토리지 장치(10)에 데이터를 저장하고, 스토리지 장치(10)로부터 데이터를 독출할 수 있다. 예를 들어, 호스트 장치(20)는 스토리지 장치(10)에 기입 커맨드 및 기입 데이터를 전송하거나 또는 스토리지 장치(10)에 독출 커맨드을 전송할 수 있다. 예시적인 실시 예에서, 호스트 장치(20)는 CPU(Central Processing Unit), 프로세서, 마이크로프로세서, AP(Application Processor) 또는 SoC(System-On-a-Chip, SoC)로 구현될 수 있다.
스토리지 장치(10)는 SSD(Solid state Drive), eMMC(embedded Multimedia Card), 임베디드 UFS(Universal Flash Storage) 메모리 장치, UFS 메모리 카드, CF(Compact Flash), SD(Secure Digital), Micro-SD(Micro Secure Digital), Mini-SD(Mini Secure Digital), xD(extreme Digital) 또는 메모리 스틱(Memory Stick)일 수 있다. 즉, 스토리지 장치(10)는 데이터를 저장할 수 있는 임의의 종류의 저장 장치일 수 있다.
스토리지 장치(10)는 스토리지 컨트롤러(100), 비휘발성 메모리(200), 전압 생성기(300) 및 클락 신호 생성기(400)를 포함할 수 있다. 스토리지 컨트롤러(100)는 비휘발성 메모리(200), 전압 생성기(300) 및 클락 신호 생성기(400)의 동작을 제어할 수 있다.
스토리지 컨트롤러(100)는 독출 커맨드 및 기입 커맨드 등을 포함하는 커맨드(CMD)를 호스트 장치(20)로부터 수신할 수 있고, 호스트 장치(20)와 데이터(DATA)를 송수신할 수 있다. 스토리지 컨트롤러(100)는 독출 커맨드에 응답하여 비휘발성 메모리(200)에 저장된 데이터(DATA)를 독출하여 호스트 장치(20)로 제공하거나, 또는 호스트 장치(20)로부터의 기입 커맨드에 응답하여 비휘발성 메모리(200)에 데이터(DATA)를 기입하도록 비휘발성 메모리(200)를 제어할 수 있다.
스토리지 컨트롤러(100)는 전력 모드 매니저(140)를 포함할 수 있다. 전력 모드 매니저(140)는 모드 변경 신호(PM)를 생성할 수 있고, 전압 생성기(300) 및 클락 신호 생성기(400) 중 적어도 하나로 모드 변경 신호(PM)를 전송함으로써, 스토리지 장치(10)의 전력 모드를 변경할 수 있다.
전력 모드 매니저(140)는 커맨드(CMD)가 수신되면 다음 커맨드(CMD)가 입력될 입력 예측 시간을 미리 예측할 수 있고, 예측된 입력 예측 시간에 기초하여, 스토리지 장치(10)의 전력 모드를 변경할 수 있다. 예시적인 실시 예에서, 스토리지 컨트롤러(100)는 호스트 장치(20)로부터 제1 커맨드(CMD1)를 수신한 후, 일정 시간 경과 후에 제2 커맨드(CMD2)를 수신할 수 있다. 전력 모드 매니저(140)는 호스트 장치(20)로부터 제1 커맨드(CMD1)가 입력되면, 제1 커맨드(CMD1)에 대응하는 워크로드 정보를 이용하여 제2 커맨드(CMD2)가 스토리지 장치(10)로 입력될 입력 예측 시간을 예측할 수 있다. 전력 모드 매니저(140)는 예측된 입력 예측 시간에 기초하여, 액티브 모드에서 저전력 모드로 전력 모드를 변경할지 여부를 판단할 수 있고, 저전력 모드에서 액티브 모드로 복귀할 복귀 시간을 설정할 수 있다. 예를 들어, 워크로드 정보는 아이들 히스토리, 커맨드(CMD)의 사이즈, 커맨드(CMD)의 타입, 또는 커맨드(CMD)에 대응하는 논리 블록 어드레스의 연속성에 대한 정보 등을 포함할 수 있다.
비휘발성 메모리(200)는 스토리지 장치(10)의 저장 매체로서 사용될 수 있다. 비휘발성 메모리(200)는 호스트 장치(20)로부터 제공되는 데이터를 저장할 수 있다. 비휘발성 메모리(200)는 스토리지 장치(10)의 전원이 차단되어도 저장된 데이터를 유지할 수 있는 비휘발성의 메모리 셀들을 포함하는 메모리 셀 어레이를 포함할 수 있다. 메모리 셀 어레이는 복수의 메모리 블록으로 구분될 수 있고, 복수의 메모리 블록은 메모리 셀들이 2차원적으로 동일한 평면(또는 레이어)에 배치되는 2차원 수평 구조 또는 비휘발성 메모리 셀들이 3차원적으로 배치되는 3차원(3D) 수직 구조를 가질 수 있다. 메모리 셀은 한 비트의 데이터를 저장하는 싱글 레벨 셀(single level cell, SLC) 또는 두 비트 이상의 데이터를 저장하는 멀티 레벨 셀(multi level cell, MLC)일 수 있다. 그러나, 이에 제한되는 것은 아니며, 각 메모리 셀은 3 비트 데이터를 저장하는 트리플 레벨 셀(triple level cell, TLC) 또는 4비트 데이터를 저장하는 쿼드러플 레벨 셀(quadruple) 일 수도 있다.
예시적인 실시 예에서, 비휘발성 메모리(200)는 각각이 메모리 셀 어레이를 포함하는 복수의 다이들(dies), 또는 복수의 칩들(chips)을 포함할 수 있다. 예를 들어, 비휘발성 메모리(200)는 복수의 칩들을 포함하고, 복수의 칩들 각각은 복수의 다이들을 포함할 수 있다. 비휘발성 메모리(200)는 또한, 각각이 복수의 칩들을 포함하는 복수의 채널을 포함할 수 있다.
예시적인 실시 예에서, 비휘발성 메모리(200)는 NAND 플래시 메모리 장치일 수 있다. 그러나, 본 개시의 기술적 사상은 이에 한정되지 않고, 비휘발성 메모리(200)는 다른 다양한 종류의 비휘발성 메모리들을 포함할 수도 있다. 예를 들어, 비휘발성 메모리(200)는 비휘발성 메모리를 포함할 수 있으며, 비휘발성 메모리는 MRAM(Magnetic RAM), 스핀전달토크 MRAM(Spin-Transfer Torgue MRAM), Conductive bridging RAM(CBRAM), FeRAM(Ferroelectric RAM), PRAM(Phase RAM), 저항 메모리(Resistive RAM), 나노튜브 RAM(Nanottube RAM), 폴리머 RAM(Polymer RAM: PoRAM), 나노 부유 게이트 메모리(Nano Floating Gate Memory: NFGM), 홀로그래픽 메모리(holographic memory), 분자 전자 메모리 소자(Molecular Electronics Memory) 또는 절연 저항 변화 메모리(Insulator Resistance Change Memory) 등 다양한 종류의 메모리가 적용될 수 있다.
전압 생성기(300)는 호스트 장치(20)로부터 외부 전원 라인을 통해 외부 전압을 수신할 수 있다. 전압 생성기(300)는 외부 전압을 이용하여, 스토리지 컨트롤러(100) 및 비휘발성 메모리(200) 각각의 동작에 필요한 내부 전압들을 생성할 수 있다. 예시적인 실시 예에서, 전압 생성기(300)는 PMIC(Power Management Integrated Circuit), PMU(Power Management Unit) 등으로 구현될 수 있다. 전압 생성기(300)는, 생성된 내부 전압들을 스토리지 컨트롤러(100) 및 비휘발성 메모리(200)에 제공할 수 있다.
전압 생성기(300)는 복수의 전력 모드들에 따라 스토리지 컨트롤러(100) 및 비휘발성 메모리(200) 각각으로 제공하는 내부 전압을 조절할 수 있다. 전압 생성기(300)는 모드 변경 신호(PM)에 응답하여 스토리지 컨트롤러(100) 및 비휘발성 메모리(200) 각각으로 제공하는 내부 전압을 조절할 수 있다. 예를 들어, 전압 생성기(300)는 액티브 모드에서는 스토리지 장치(10)가 커맨드(CMD)에 따른 동작을 수행하도록 스토리지 컨트롤러(100) 및 비휘발성 메모리(200)에 전압을 제공할 수 있고, 반면, 저전력 모드에서는 스토리지 컨트롤러(100)의 구성들의 일부에 전압을 제공하지 않거나, 비휘발성 메모리(200) 에 전압을 제공하지 않을 수 있다.
클락 신호 생성기(400)는 스토리지 장치(10)에서 사용되는 다양한 클락 신호들을 생성할 수 있다. 예시적인 실시 예에서, 클락 신호 생성기(400)는 오실레이터, PLL(Phase Locked Loop), DLL(Delayed Locked Loop) 등으로 구현될 수 있다. 클락 신호 생성기(400)는 스토리지 컨트롤러(100)에서 사용되는 클락 신호 및 비휘발성 메모리(200)에서 사용되는 클락 신호를 생성할 수 있다.
클락 신호 생성기(400)는 복수의 전력 모드들에 따라 스토리지 컨트롤러(100) 및 비휘발성 메모리(200) 각각으로 제공하는 클락 신호의 주파수를 조절할 수 있다. 클락 신호 생성기(400)는 모드 변경 신호(PM)에 응답하여 스토리지 컨트롤러(100) 및 비휘발성 메모리(200) 각각으로 제공하는 클락 신호의 주파수를 조절할 수 있다. 예를 들어, 클락 액티브 모드에서의 클락 신호 주파수는 저전력 모드에서의 클락 신호 주파수 보다 높을 수 있다.
따라서, 본 개시에 따른 스토리지 장치(10)는 제1 커맨드(CMD1)에 이어 제2 커맨드(CMD2)가 입력되는 입력 예측 시간을 미리 예측하여, 제2 커맨드(CMD2)가 입력되기 전에 미리 저전력 모드에서 액티브 모드로 복귀할 수 있다. 전력 모드 매니저(140)는 액티브 모드로의 복귀 시간을 미리 설정하고, 복귀 시간이 경과되면 전압 생성기(300) 및 클락 신호 생성기(400)로 모드 변경 신호(PM)를 전송함으로써 저전력 모드에서 액티브 모드로 전력 모드를 전환할 수 있다. 따라서, 스토리지 장치(10)가 저전력 모드에서 액티브 모드로 복귀하는 데에 걸리는 시간으로 인하여 제2 커맨드(CMD2)를 처리하는 데에 발생하는 레이턴시를 감소시킬 수 있다.
도 2는 본 개시의 예시적 실시 예에 따른 스토리지 장치(10)가 수행하는 복수의 전력 모드들을 설명하기 위한 도면이다.
도 1 및 도 2를 참조하면, 스토리지 장치(10)는 복수의 전력 모드들로 동작할 수 있다. 복수의 전력 모드들은 액티브 모드(AM) 및 저전력 모드(LPM)를 포함할 수 있다. 스토리지 장치(10)는 호스트 장치(20)의 제어로 인한 동작을 수행하지 않을 때에는 저전력 모드(LPM)로 전환하여 전력 소모를 줄일 수 있다. 예를 들어, 저전력 모드(LPM)에서는 스토리지 장치(10)에 포함된 구성 요소들 중 적어도 일부에 내부 전압이 제공되지 않을 수 있고, 스토리지 장치(10)에 포함된 구성 요소들에 제공되는 클락 신호의 주파수가 감소될 수 있다. 따라서, 스토리지 장치(10)는 저전력 모드(LPM)에서는 호스트 장치(20)로부터 수신된 커맨드(CMD)를 처리하지 못할 수 있고, 액티브 모드(AM)로 복귀한 후 호스트 장치(20)로부터 수신된 커맨드(CMD)를 처리할 수 있다.
저전력 모드(LPM)는 아이들 모드(IM) 및 슬립 모드(SM)를 포함할 수 있다. 예시적인 실시 예에서, 스토리지 장치(10)는 제1 커맨드(CMD1)를 수신한 후, 제2 커맨드(CMD2)를 수신할 때까지의 입력 예측 시간에 따라 액티브 모드(AM)에서 아이들 모드(IM)로 변경할지 또는, 액티브 모드(AM)에서 슬립 모드(SM)로 변경할지를 결정할 수 있다.
슬립 모드(SM)에서 스토리지 장치(10)는, 아이들 모드(IM)에서보다 전력 소모가 낮을 수 있다. 예를 들어, 스토리지 장치(10)의 구성 요소들 중 슬립 모드(SM)에서 내부 전압이 제공되지 않는 구성 요소의 수는 아이들 모드(IM)에서 내부 전압이 제공되지 않는 구성 요소의 수보다 많을 수 있다. 예를 들어, 비휘발성 메모리(200)는 아이들 모드(IM)에서 전압 생성기(300)로부터 내부 전압이 제공되나, 슬립 모드(SM)에서 전압 생성기(300)로부터 내부 전압이 제공되지 않을 수 있다. 또한, 예를 들어, 스토리지 컨트롤러(100)는 아이들 모드(IM)에서 클락 신호 생성기(400)로부터 액티브 모드(AM)에서 보다 낮은 주파수의 클락 신호를 수신할 수 있고, 슬립 모드(SM)에서는 스토리지 컨트롤러(100)의 구성 요소들 중 일부 요소(예를 들어, Always on block)을 제외한 요소에 내부 전압이 제공되지 않을 수 있다.
도 3은 본 개시의 예시적 실시 예에 따른 스토리지 장치(10)의 동작 방법을 설명하기 위한 도면이다.
도 1 및 도 3을 참조하면, S10 단계에서 스토리지 장치(10)는, 호스트 장치(20)로부터 제1 커맨드(CMD1)를 수신할 수 있다. S20 단계에서 스토리지 장치(10)는 제1 커맨드(CMD1) 이후에 제2 커맨드(CMD2)가 스토리지 장치(10)로 입력될 입력 예측 시간을 예측할 수 있다. 예를 들어, 스토리지 컨트롤러(100)의 전력 모드 매니저(140)는 제1 커맨드(CMD1)가 수신되면, 제1 커맨드(CMD1)에 대한 워크로드 정보를 이용하여 제2 커맨드(CMD2)의 입력 예측 시간을 연산할 수 있다.
S30 단계에서 스토리지 장치(10)는, 입력 예측 시간에 기초하여, 저전력모드에서 액티브 모드로 복귀할 복귀 시간을 설정할 수 있다. S40 단계에서 스토리지 장치(10)는 액티브 모드에서 저전력 모드로 전환할 수 있다. 스토리지 장치(10)는 제1 커맨드(CMD1)에 따른 동작이 완료되면 액티브 모드에서 저전력 모드로 전환할 수 있다. 이 때, 저전력 모드는 아이들 모드 및 슬립 모드를 포함할 수 있고, S40 단계에서, 스토리지 장치(10)는 아이들 모드 및 슬립 모드 중 하나로 전력 모드를 전환할 수 있다. 예를 들어, S40 단계에서 스토리지 컨트롤러(100)의 전력 모드 매니저(140)는 모드 변경 신호(PM)를 생성할 수 있고, 전압 생성기(300) 및 클락 신호 생성기(400) 중 적어도 하나로 전송할 수 있다.
S50 단계에서 스토리지 장치(10)는, 저전력 모드로 전환된 후 복귀 시간이 경과하였는지를 판단할 수 있다. 설정된 복귀 시간이 경과되면, 스토리지 장치(10)는 S70 단계에서, 저전력 모드에서 액티브 모드로 복귀할 수 있다. 따라서, 스토리지 장치(10)는 제2 커맨드(CMD2)를 수신하기 전에 미리 저전력 모드에서 액티브 모드로 복귀할 수 있고, 제2 커맨드(CMD2)를 처리하는 데에 걸리는 시간이 감소될 수 있다.
설정된 복귀 시간이 경과되지 않은 경우에는, S60 단계에서 스토리지 장치(10)는, 호스트 장치(20)로부터 제2 커맨드(CMD2)를 수신하였는지 판단할 수 있다. 호스트 장치(20)는 설정된 복귀 시간이 경과되지 않더라도 호스트 장치(20)로부터 제2 커맨드(CMD2)를 수신하면 저전력 모드에서 액티브 모드로 복귀(S70)할 수 있다. 따라서, 스토리지 장치(10)는 예측된 입력 예측 시간에 따라 설정된 복귀 시간이 경과되지 않더라도 제2 커맨드(CMD2)를 수신하면, 액티브 모드로 복귀함으로써 제2 커맨드(CMD2)를 처리할 수 있다.
도 4a는 본 개시의 예시적 실시 예에 따른 스토리지 장치가 슬립 모드에서 액티브 모드로 복귀하는 데에 걸리는 시간을 설명하기 위한 도면이며, 도 4b는 비교 예의 스토리지 장치가 슬립 모드에서 액티브 모드로 복귀하는 데에 걸리는 시간을 설명하기 위한 도면이다. 도 4a 및 도 4b는 제2 커맨드를 처리하기 위해 슬립 모드에서 액티브 모드로 복귀하는 예를 설명하기 위한 도면이다.
도 1 및 도 4a를 참조하면, 본 개시에 따른 스토리지 장치(10)는 제1 커맨드(CMD1)에 이어 입력될 제2 커맨드(CMD2)의 입력 예측 시간(ti_p)을 미리 예측할 수 있다. 스토리지 장치(10)는 입력 예측 시간(ti_p), 및 슬립 모드에서 액티브 모드로 복귀하는 데에 걸리는 모드 전환 시간(td)을 고려하여 복귀 시간(tr)을 설정할 수 있고, 액티브 모드에서 슬립 모드로 전환한 후 설정된 복귀 시간(tr)이 경과되면 다시 액티브 모드로 복귀할 수 있다. 따라서, 본 개시에 따른 스토리지 장치(10)는 제2 커맨드(CMD2)를 실제로 수신하는 실제 수신 시간(ti)에 또는 실제 수신 시간(ti) 전에 액티브 모드로 복귀함으로써, 모드 전환 시간(td)에 따른 레이턴시가 감소되고 제2 커맨드(CMD2)를 수행하는 데에 걸리는 시간이 감소될 수 있다.
반면, 도 4b를 참조하면, 비교 예에 따른 스토리지 장치는 제1 커맨드(CMD1)에 따른 동작을 수행한 후 액티브 모드에서 슬립 모드로 전환하고, 제1 커맨드(CMD1)에 이은 제2 커맨드(CMD2)를 수신하면 슬립 모드에서 액티브 모드로 복귀한다. 따라서, 비교 예에 따른 스토리지 장치는 제2 커맨드(CMD2)를 수신한 실제 수신 시간(ti) 이후에 슬립 모드에서 액티브 모드로 복귀하므로, 스토리지 장치는 슬립 모드에서 액티브 모드로 복귀하는 데에 걸리는 모드 전환 시간(td)이 소요된 후에 제2 요청에 따른 동작을 수행할 수 있다. 모드 전환 시간(td)에 따른 레이턴시가 발생되고, 제2 커맨드(CMD2)에 따른 동작을 수행하는 데에 걸리는 시간이 증가될 수 있다.
도 5는 본 개시의 예시적 실시예에 따른 스토리지 컨트롤러(100)를 나타내는 블록도이다.
도 5를 참조하면, 스토리지 컨트롤러(100)는 프로세서(110), RAM(120), 커맨드 큐(130), 전력 모드 매니저(140), 호스트 인터페이스(150), 및 메모리 인터페이스(160)를 포함할 수 있다. 스토리지 컨트롤러(100)의 구성들, 예를 들어, 프로세서(110), RAM(120), 커맨드 큐(130), 전력 모드 매니저(140), 호스트 인터페이스(150), 및 메모리 인터페이스(160)는 버스(170)를 통해 서로 통신할 수 있다.
프로세서(110)는 중앙 처리 장치(CPU) 또는 마이크로 프로세서 등을 포함할 수 있으며, 스토리지 컨트롤러(100)의 전반적인 동작을 제어할 수 있다. 예시적인 실시 예에서, 프로세서(110)는 멀티 코어 프로세서로 구현될 수 있고, 예를 들어, 듀얼 코어 프로세서 또는 쿼드(quad) 코어 프로세서로 구현될 수 있다.
RAM(120)은 프로세서(110)의 제어에 따라 동작하며, 동작 메모리, 버퍼 메모리, 캐시 메모리 등으로 사용될 수 있다. 예를 들어, RAM(120)은 DRAM, SRAM(Static RAM)과 같은 휘발성 메모리 또는 PRAM, 플래시 메모리와 같은 비휘발성 메모리로 구현될 수도 있다. RAM(120)은 스토리지 컨트롤러(100)를 제어하기 위한 펌웨어(Firmware) 및 데이터를 저장할 수 있다. 저장된 펌웨어 및 데이터는 프로세서(110)에 의해 구동 또는 처리될 수 있다. 펌웨어로 구현되는 스토리지 컨트롤러(100)의 소프트웨어 계층 구조는, 인터페이스 레이어, 플래시 변환 레이어(Flash Translation Layer, FTL) 등을 포함할 수 있다.
커맨드 큐(130)는 호스트 장치(20)로부터 수신된 커맨드를 저장할 수 있다. 예를 들어, 호스트 장치(20)로부터의 수신된 복수의 기입 커맨드들이 커맨드 큐(130)에 인큐(enqueued)될 수 있고, 호스트 장치(20)로부터의 수신된 복수의 독출 커맨드들이 커맨드 큐(130)에 인큐될 수 있다. 스토리지 컨트롤러(100)는 커맨드 스케줄러를 더 포함할 수 있고, 커맨드 스케줄러는 인큐된 복수의 기입 커맨드들 및 복수의 독출 커맨드들을 순차적(in-order) 또는 비순차적(out-of-order) 방식으로 비휘발성 메모리(예를 들어, 도 1의 200)로 제공할 수 있다.
커맨드 큐(130)는 소프트웨어(또는 펌웨어) 또는 하드웨어로 구현될 수 있다. 또는, 커맨드 큐(130)는 소프트웨어 및 하드웨어의 조합으로 구현될 수 있다. 커맨드 큐(130)가 소프트웨어로 구현될 경우, 커맨드 큐(130)를 구성하는 프로그램의 인스트럭션들이 RAM(120)에 로딩되고, 프로세서(110)에 의해 실행될 수 있다.
전력 모드 매니저(140)는 호스트 장치(20)로부터 제1 커맨드(CMD1)가 수신되면, 제1 커맨드(CMD1)에 대응하는 워크로드 정보를 이용하여 다음 제2 커맨드(CMD2)가 스토리지 컨트롤러(100)로 입력될 입력 예측 시간을 예측할 수 있다. 예를 들어, 워크로드 정보는 커맨드(CMD)가 스토리지 컨트롤러(100)로 각각 수신되는 시간 사이의 간격인 아이들 타임을 기록한 아이들 히스토리를 포함할 수 있다. 또한, 워크로드 정보는 커맨드(CMD)의 사이즈, 커맨드(CMD)의 타입, 또는 커맨드(CMD)에 대응하는 논리 블록 어드레스의 연속성에 대한 정보 등을 포함할 수 있다.
전력 모드 매니저(140)는 예측된 입력 예측 시간에 기초하여 액티브 모드에서 저전력 모드로 전력 모드를 전환할지 여부를 판단할 수 있고, 전력 모드 전환을 결정하면 저전력 모드에서 액티브 모드로 복귀할 복귀 시간을 설정할 수 있다. 예시적 실시 예에서, 전력 모드 매니저(140)는 타이머(CT)를 포함할 수 있고, 타이머(CT)는 복귀 시간을 설정할 수 있다. 전력 모드 매니저(140)는 설정된 복귀 시간이 경과되면, 모드 변경 신호(PM)를 생성할 수 있다.
예시적 실시 예에서, 전력 모드 매니저(140)는 어플리케이션 (Application)을 구동함으로써, 워크로드 정보를 이용하여 입력 예측 시간을 예측할 수 있다. 이 때, 어플리케이션은 예측 수행과 관련된 복수의 데이터 연산들, 예를 들어, 산술 연산, 컨볼루션 연산, 폴링 연산 등을 포함할 수 있다. 예를 들어, 전력 모드 매니저(140)가 뉴럴 네트워크 기반의 테스크를 수행할 수 있고, 어플리케이션은 뉴럴 네트워크 모델을 포함할 수 있다. 뉴럴 네트워크 모델은, CNN(Convolution Neural Network), R-CNN(Region with Convolution Neural Network), RPN(Region Proposal Network), RNN(Recurrent Neural Network), S-DNN(Stacking-based deep Neural Network), S-SDNN(State-Space Dynamic Neural Network), Deconvolution Network, DBN(Deep Belief Network), RBM(Restricted Boltzman Machine), Fully Convolutional Network, LSTM(Long Short-Term Memory) Network, Classification Network 및 다양한 종류의 뉴럴 네트워크 중 적어도 하나에 기반한 복수의 데이터 연산들 및 복수의 데이터 연산들의 입력, 출력 사이즈 및 가중치, 바이어스 등을 포함할 수 있다.
예시적인 실시 예에서, 전력 모드 매니저(140)는 GPU(Graphic Processing Unit), DSP(Digital Signal Processor), FPGA(Field Programmable Gate Array), NPU(Neural Processing Unit) 등으로 구현될 수 있다. 그러나 이에 제한되는 것은 아니며, 전력 모드 매니저(140)는 할당된 테스크 수행, 즉, 예측 수행에 요구되는 연산을 수행하는 다양한 종류의 가속 회로(가속기)로 구현될 수 있다.
다만, 본 개시에 따른 스토리지 장치(10)는 전력 모드 매니저(140)가 프로세서 또는 프로세싱 유닛을 포함하는 것에 한정되지 않는다. 스토리지 컨트롤러(100)에 포함된 프로세서가 소프트웨어로 구현된 전력 모드 매니저(140)를 실행함으로써, 워크로드 정보를 이용하여 입력 예측 시간을 예측할 수도 있다.
호스트 인터페이스(150)는 프로세서(110)의 제어에 따라, 외부의 호스트 장치(20)와 통신하도록 구성될 수 있다. 호스트 인터페이스(150)는 호스트 장치(20)로부터 커맨드(CMD)를 수신할 수 있다. 호스트 인터페이스(150)에는 USB (Universal Serial Bus), ATA(AT Attachment), SATA (Serial AT Attachment), PATA(Parallel AT Attachment), SAS (Serial Attached SCSI), HSIC (High Speed Interchip), SCSI (Small Computer System Interface), PCI (Peripheral Component Interconnection), PCIe (PCI express), UFS (Universal Flash Storage), SD (Secure Digital), MMC (MultiMedia Card), eMMC (embedded MMC), DIMM (Dual In-line Memory Module), RDIMM (Registered DIMM), LRDIMM (Load Reduced DIMM) , ESDI(Enhanced Small Disk Interface), IDE(Integrated Drive Electronics) 등과 같은 다양한 인터페이스 방식들 중 적어도 하나가 적용될 수 있다.
메모리 인터페이스(160)는 스토리지 컨트롤러(100)와 비휘발성 메모리(200) 사이의 인터페이스를 제공할 수 있다. 예를 들어, 호스트 장치(20)로부터 수신된 커맨드(CMD)에 따른 내부 커맨드가 메모리 인터페이스(160)를 통해 비휘발성 메모리(200)로 전송될 수 있고, 기입 데이터 및 독출 데이터가 메모리 인터페이스(160)를 통해 스토리지 컨트롤러(100)와 비휘발성 메모리(200) 사이에서 송수신될 수 있다.
도 6은 본 개시의 예시적 실시 예에 따른 전력 모드 매니저(140)를 나타내는 블록도이다.
도 5 및 도 6을 참조하면, 전력 모드 매니저(140)는 커맨드 큐(130)로부터 인큐된 커맨드, 예를 들어, 제1 커맨드(CMD1)를 수신하여, 모드 변경 신호(PM)를 생성할 수 있다. 또는, 전력 모드 매니저(140)는, 전력 모드 매니저(140)는 커맨드 큐(130)에 인큐된 제1 커맨드(CMD1)에 대한 커맨드 정보를 획득하여, 모드 변경 신호(PM)를 생성할 수도 있다. 전력 모드 매니저(140)는 워크로드 모니터(141), 아이들 예측기(143) 및 복귀 시간 결정기(145)를 포함할 수 있다.
워크로드 모니터(141)는 스토리지 컨트롤러(100)로 입력된 제1 커맨드(CMD1)를 모니터링할 수 있다. 워크로드 모니터(141)에는 워크로드 정보가 저장될 수 있고, 워크로드 모니터(141)는 제1 커맨드(CMD1)에 대응하는 워크로드 정보(IWL)를 출력할 수 있다.
예를 들어, 워크로드 모니터(141)는 호스트 장치 및 스토리지 장치 사이의 입/출력에 대한 정보를 기록할 수 있다. 예를 들어, 워크로드 모니터(141)는 특정 커맨드가 입력된 후 다음 커맨드가 입력될 때까지 소요된 아이들 시간에 대한 정보를 수집할 수 있고, 이를 아이들 히스토리로서 저장할 수 있다.
또한, 예를 들어, 워크로드 모니터(141)는 제1 커맨드(CMD1)가 수신되면 제1 커맨드(CMD1)의 사이즈, 제1 커맨드(CMD1)의 타입, 또는 제1 커맨드(CMD1)에 대응하는 논리 블록 어드레스의 연속성에 대한 정보를 제1 커맨드(CMD1)에 대응하는 워크로드 정보(IWL)로서 아이들 예측기(143)로 전송할 수 있다. 제1 커맨드(CMD1)의 사이즈는 제1 커맨드(CMD1)에 따른 데이터의 크기에 따라 달라질 수 있고, 제1 커맨드(CMD1)의 타입은 독출 커맨드, 기입 커맨드 또는 다른 커맨드인지를 표시할 수 있다. 제1 커맨드(CMD1)에 대응하는 논리 블록 어드레스의 연속성에 대한 정보는, 제1 커맨드(CMD1) 이전에 입력된 커맨드에 대응하는 논리 블록 어드레스 및 제1 커맨드(CMD1)에 대응하는 논리 블록 어드레스 사이의 연속성에 대한 정보를 의미할 수 있다.
아이들 예측기(143)는 제1 커맨드(CMD1)의 워크로드 정보(IWL)를 이용하여 다음 요청인 제2 커맨드(CMD2)가 수신되는 입력 예측 시간을 예측하는 연산을 수행할 수 있다. 아이들 예측기(143)는 연산 결과에 따른 예측 결과 데이터(PD)를 출력할 수 있다. 예시적 실시 예에서, 아이들 예측기(143)는 예측 수행과 관련된 복수의 데이터 연산들, 예를 들어, 산술 연산, 컨볼루션 연산, 폴링 연산 등을 수행할 수 있다. 예를 들어, 아이들 예측기(143)가 뉴럴 네트워크 기반의 테스크를 수행할 수 있고, 뉴럴 네트워크 모델을 포함할 수 있다.
복귀 시간 결정기(145)는 예측 결과 데이터(PD)를 이용하여 복귀 시점을 결정할 수 있고, 결정된 복귀 시점에 따라 모드 변경 신호(PM)를 생성할 수 있다. 복귀 시간 결정기(145)는 입력 예측 시간 및 스토리지 장치가 전력 모드를 전환하는 데에 걸리는 시간을 고려하여 복귀 시점을 결정할 수 있다.
예를 들어, 복귀 시간 결정기(145)는 타이머(CT)를 포함할 수 있고, 복귀 시간 결정기(145)는 타이머(CT)에 복귀 시점을 설정할 수 있다. 복귀 시간 결정기(145)는 타이머(CT)에 설정된 복귀 시점이 경과하면 저전력 모드에서 액티브 모드로 전력 모드를 전환하도록 모드 변경 신호(PM)를 생성할 수 있다.
예시적인 실시 예에서, 워크로드 모니터(141), 아이들 예측기(143) 및 복귀 시간 결정기(145) 각각은 소프트웨어로 구현될 수 있고, 전력 모드 매니저(140)에 포함된 프로세싱 유닛에 의해 워크로드 모니터(141), 아이들 예측기(143) 및 복귀 시간 결정기(145)가 각각 구동됨으로써 전술한 동작들을 수행할 수 있다. 또는, 예시적인 실시 예에서, 워크로드 모니터(141), 아이들 예측기(143) 및 복귀 시간 결정기(145) 각각은 소프트웨어로 구현될 수 있고, 전력 모드 매니저(140)의 외부의 프로세싱 유닛에 의해 워크로드 모니터(141), 아이들 예측기(143) 및 복귀 시간 결정기(145)가 각각 구동됨으로써 상기 동작들을 수행할 수도 있다.
도 7a 및 도 7b는 뉴럴 네트워크 모델(NN1, NN2)을 포함하는 아이들 예측기의 동작을 설명하기 위한 도면이다.
도 7a 및 도 7b를 참조하면, 아이들 예측기(예를 들어, 도 6의 143)는 뉴럴 네트워크 모델(NN1 또는 NN2)로 구현될 수 있고, 입력 예측 시간을 예측할 수 있다. 뉴럴 네트워크 모델(NN1 또는 NN2)은 스토리지 장치에 포함되는 프로세싱 유닛에 의해 실행되는 소프트웨어로 구현될 수 있다. 도 7a의 뉴럴 네트워크 모델(NN1) 및 도 7b의 뉴럴 네트워크 모델(NN2)은 예시일 뿐, 아이들 예측기(143)는 이에 한정되지 않으며, 다양한 모델로 구현될 수 있다.
도 7a를 참조하면, 뉴럴 네트워크 모델(NN1)은, 입력 계층(IL), 하나 이상의 중간 계층(ML) 및 출력 계층(OL)을 포함하는 다중 계층을 포함할 수 있다. 입력 계층(IL)은 입력 값들(IV)(예를 들어, 도 6의 워크로드 정보(IWL))을 수신하고, 출력 계층(OL)은 예측 출력 값(PV)(예를 들어, 도 6의 예측 결과 데이터(PD))을 생성할 수 있다. 뉴럴 네트워크 모델(NN1)은 DNN(Deep Neural Network)일 수 있다.
뉴럴 네트워크 모델(NN1)의 각 계층은 여기서는 또한 뉴런으로 지칭되는 복수의 노드를 포함할 수 있다. 각 노드 또는 뉴런은 하나이상의 입력 및 출력을 갖는 계산 단위를 나타낼 수 있다. 계층의 복수의 노드로부터의 각각의 입력은 인접한 계층의 각 노드로부터 공급될 수 있다. 유사하게, 출력은 인접 층의 복수의 노드에 공급될 수 있다.
예시적인 실시 예에서, 입력 계층(IL)은 l개의 노드를 갖고, 중간 계층들(ML) 각각은 m 개의 노드를 갖고, 출력 계층(OL)은 n개의 노드를 가질 수 있다. 네트워크의 각 노드는 인접 계층의 모든 노드에 연결될 수 있다. 노드들 l, m, n의 수는 뉴럴 네트워크 모델(NN1)의 어플리케이션에 따라 서로 동일하거나 상이할 수 있다. 본 개시에서는 동일한 수의 노드를 갖는 2개의 중간 계층들(ML)만을 도시하고 있지만, 본 발명의 범위를 벗어나지 않으면서, 임의의 개수의 중간 계층과 중간 계층들 각각의 다른 수의 중간 계층이 존재할 수 있다.
도 7b를 참조하면, 뉴럴 네트워크 모델(NN2)은 복수의 뉴런들이 하나 이상의 계층으로 배열될 수 있다. 특정 계층의 뉴런은 이전 계층의 하나 이상의 뉴런으로부터 입력을 수신하고 뉴럴 네트워크 모델(NN2)의 다음 계층의 하나 이상의 뉴런에 전송되는 출력("활성화"라고 함)을 생성하거나, 뉴럴 네트워크 모델(NN2)의 마지막 계층(hk)의 경우 출력 값(PVk)을 생성할 수 있다. 출력 값(PVk)은 도 6의 예측 결과 데이터(PD)로서, 도 6의 복귀 시간 결정기(145)로 제공될 수 있다.
뉴럴 네트워크 모델(NN2)은, 복수의 히든 계층들(h1~hk)을 포함할 수 있다. 복수의 히든 계층들(h1~hk)은 이전의 출력 값을 이용하도록 서로 연결될 수 있다. 복수의 히든 계층들(h1~hk) 중 마지막 계층(hk)은 출력 값(PVk)을 출력할 수 있다. 뉴럴 네트워크 모델(NN2)은 RNN(Recurrent Neural Network)일 수 있다.
입력 값들(IV2~IVk) 각각은 이전의 출력 값(PV1~PVk-1)에 대응될 수 있다. 입력 값들(IV2~IVk) 각각은 도 6의 워크로드 정보(IWL)의 아이들 히스토리로부터 획득될 수 있다. 따라서, 출력 값(PVk)은 다음 연산에서 입력 값으로 이용될 수 있다.
도 8은 본 개시의 예시적 실시 예에 따른 스토리지 장치(10)의 동작 방법을 설명하기 위한 도면이다. 도 8의 S30 단계는 도 3의 S30 단계의 일 예로서, S30 단계는 S310 단계 내지 S330 단계를 포함할 수 있다. 도 8의 S40 단계는 도 3의 S40 단계의 일 예로서, S40 단계는 S410 단계 및 S420 단계를 포함할 수 있다. 예시적인 실시 예에서, 도 8의 S30 단계는, 도 6의 복귀 시간 결정기(145)에 의해 수행될 수 있다.
도 1 및 도 8을 참조하면, S310 단계에서 스토리지 장치(10)는, 입력 예측 시간이 모드 전환 시간과 같거나 보다 긴지 판단할 수 있다. 즉, 스토리지 장치(10)는 제1 커맨드(CMD1)에 이어 제2 커맨드(CMD)가 스토리지 장치(10)에 입력될 입력 예측 시간이, 스토리지 장치(10)가 저전력 모드에서 액티브 모드로 전환하는 데에 걸리는 모드 전환 시간 이상인지 판단할 수 있다.
입력 예측 시간이 모드 전환 시간보다 짧은 경우에, S420 단계에서 스토리지 장치(10)는, 액티브 모드에서 저전력 모드로 전력 모드를 전환하지 않고, 액티브 모드를 유지할 수 있다. 스토리지 장치(10)는 제1 커맨드(CMD1)를 수신한 후 상대적으로 빠른 시간 내에 제2 커맨드(CMD2)를 수신할 것으로 예측될 때에는 전력 모드를 전환하지 않음으로써, 전력 모드를 전환하는 데에 걸리는 시간으로 인한 레이턴시를 감소시킬 수 있다.
입력 예측 시간이 모드 전환 시간과 같거나 보다 긴 경우에, S320 단계에서 스토리지 장치(10)는, 저전력 모드에서 절약되는 전기 에너지가 전력 모드 전환으로 소모되는 전기 에너지 이상인지 판단할 수 있다. 스토리지 장치(10)는 액티브 모드에서의 소모 전력이 저전력 모드에서 소모 전력보다 클 수 있다. 따라서, 스토리지 장치(10)가 저전력 모드를 유지하는 시간이 길어질수록 절약하는 전기 에너지가 증가될 수 있다. 예를 들어, 저전력 모드에서 절약되는 전기 에너지는 액티브 모드에서의 소모 전력에서 저전력 모드에서의 소모 전력을 뺀 값을 저전력 모드를 유지하는 시간과 곱한 값으로 계산될 수 있다.
또한, 스토리지 장치(10)는 액티브 모드에서 저전력 모드로 전환하는 데에 전력이 소모될 수 있고, 저전력 모드에서 액티브 모드로 복귀하는 데에 전력이 소모될 수 있다. 저전력 모드에서 절약되는 전기에너지가 전력 모드 전환으로 소모되는 전기 에너지 미만인 경우에, S420 단계에서 스토리지 장치(10)는, 액티브 모드에서 저전력 모드로 전력 모드를 전환하지 않고, 액티브 모드를 유지할 수 있다. 따라서, 스토리지 장치(10)는 입력 예측 시간이 모드 전환 시간보다 길더라도 액티브 모드에서 저전력 모드로 전력 모드를 변환함으로써 전기 에너지를 절약하는 효과가 없다고 판단되는 경우에는, 전력 모드를 변환하지 않고 액티브 모드를 유지할 수 있다.
저전력 모드에서 절약되는 전기에너지가 전력 모드 전환으로 소모되는 전기에너지 이상인 경우에는, S330 단계에서 스토리지 장치(10)는, 입력 예측 시간 및 모드 전환 시간에 따라 저전력 모드에서 액티브 모드로 복귀하는 복귀 시간을 설정할 수 있다. 예를 들어, 복귀 시간은 입력 예측 시간으로부터 모드 전환 시간을 뺀 값으로 계산될 수 있다.
S410 단계에서 스토리지 장치(10)는 액티브 모드에서 저전력 모드로 전환할 수 있다. S330 단계에서 설정된 복귀 시간이 경과되면, 스토리지 장치(10)는 저전력 모드에서 다시 액티브 모드로 복귀할 수 있다.
도 9는 본 개시의 예시적 실시 예에 따른 스토리지 장치(10)의 동작 방법을 설명하기 위한 도면이다. 도 9의 S30a 단계는 도 3의 S30 단계의 일 예로서, S30a 단계는 S310, S313, S321, S323, S331, 및 S333 단계들을 포함할 수 있다. 도 9의 S40a 단계는 도 3의 S40 단계의 일 예로서, S40a 단계는 S411, S413 및 S420 단계들을 포함할 수 있다. 예시적인 실시 예에서, 도 9의 S30a 단계는, 도 6의 복귀 시간 결정기(145)에 의해 수행될 수 있다.
예시적인 실시 예에서, 저전력 모드는 아이들 모드 및 슬립 모드를 포함할 수 있다. 스토리지 장치(10)는 아이들 모드의 소모 전력보다 슬립 모드에서의 소모 전력이 낮을 수 있다.
도 1 및 도 9를 참조하면, S311 단계에서 스토리지 장치(10)는, 입력 예측 시간이 아이들 모드 전환 시간과 같거나 보다 긴지 판단할 수 있고, S313 단계에서 스토리지 장치(10)는, 입력 예측 시간이 슬립 모드 전환 시간과 같거나 보다 긴지 판단할 수 있다. 예시적인 실시 예에서, 아이들 모드에서 액티브 모드로 전환하는 데에 걸리는 아이들 모드 전환 시간은, 슬립 모드에서 액티브 모드로 전환하는 데에 걸리는 슬립 모드 전환 시간보다 길 수 있다.
입력 예측 시간이 아이들 모드 전환 시간보다 짧은 경우에, S420 단계에서 스토리지 장치(10)는, 액티브 모드에서 저전력 모드로 전력 모드를 전환하지 않고, 액티브 모드를 유지할 수 있다. 토리지 장치(10)는 제1 커맨드(CMD1)를 수신한 후 상대적으로 빠른 시간 내에 제2 커맨드(CMD2)를 수신할 것으로 예측될 때에는 전력 모드를 전환하지 않음으로써, 전력 모드를 전환하는 데에 걸리는 시간으로 인한 레이턴시를 감소시킬 수 있다.
입력 예측 시간이 슬립 모드 전환 시간과 같거나 보다 긴 경우에, S321 단계에서 스토리지 장치(10)는, 슬립 모드에서 절약되는 전기 에너지가 전력 모드 전환으로 소모되는 전기 에너지 이상인지 판단할 수 있다. 스토리지 장치(10)가 슬립 모드를 유지하는 시간이 길어질수록 절약하는 전기 에너지가 증가될 수 있다. 예를 들어, 슬립 모드에서 절약되는 전기 에너지는, 액티브 모드에서의 소모 전력에서 슬립 모드에서의 소모 전력을 뺀 값을 슬립 모드를 유지하는 시간과 곱한 값으로 계산될 수 있다.
슬립 전력 모드에서 절약되는 전기에너지가 전력 모드 전환으로 소모되는 전기에너지 이상인 경우에는, S331 단계에서 스토리지 장치(10)는, 입력 예측 시간 및 슬립 모드 전환 시간에 따라 슬립 모드에서 액티브 모드로 복귀하는 복귀 시간을 설정할 수 있다. 예를 들어, 복귀 시간은 입력 예측 시간으로부터 슬립 모드 전환 시간을 뺀 값으로 계산될 수 있다. S411 단계에서 스토리지 장치(10)는 액티브 모드에서 저전력 모드로 전환될 수 있다. S331 단계에서 설정된 복귀 시간이 경과되면, 스토리지 장치(10)는 슬립 모드에서 다시 액티브 모드로 복귀할 수 있다.
슬립 모드에서 절약되는 전기에너지가 전력 모드 전환으로 소모되는 전기 에너지 미만인 경우에, S420 단계에서 스토리지 장치(10)는, 액티브 모드에서 슬립 모드로 전력 모드를 전환하지 않고, 액티브 모드를 유지할 수 있다. 스토리지 장치(10)는 입력 예측 시간이 슬립 모드 전환 시간보다 길더라도 액티브 모드에서 슬립 모드로 전력 모드를 변환함으로써 전기 에너지를 절약하는 효과가 없다고 판단되는 경우에는, 전력 모드를 변환하지 않고 액티브 모드를 유지할 수 있다.
입력 예측 시간이 슬립 모드 전환 시간보다 짧고, 아이들 모드 전환 시간과 같거나 보다 긴 경우에, S323 단계에서 스토리지 장치(10)는, 아이들 모드에서 절약되는 전기 에너지가 전력 모드 전환으로 소모되는 전기 에너지 이상인지 판단할 수 있다. 스토리지 장치(10)가 아이들 모드를 유지하는 시간이 길어질수록 절약하는 전기 에너지가 증가될 수 있다. 예를 들어, 아이들 모드에서 절약되는 전기 에너지는, 액티브 모드에서의 소모 전력에서 아이들 모드에서의 소모 전력을 뺀 값을 아이들 모드를 유지하는 시간과 곱한 값으로 계산될 수 있다.
아이들 전력 모드에서 절약되는 전기에너지가 전력 모드 전환으로 소모되는 전기에너지 이상인 경우에는, S333 단계에서 스토리지 장치(10)는, 입력 예측 시간 및 아이들 모드 전환 시간에 따라 아이들 모드에서 액티브 모드로 복귀하는 복귀 시간을 설정할 수 있다. 예를 들어, 복귀 시간은 입력 예측 시간으로부터 아이들 모드 전환 시간을 뺀 값으로 계산될 수 있다. S413 단계에서 스토리지 장치(10)는 액티브 모드에서 아이들 모드로 전환될 수 있다. S333 단계에서 설정된 복귀 시간이 경과되면, 스토리지 장치(10)는 아이들 모드에서 다시 액티브 모드로 복귀할 수 있다.
아이들 모드에서 절약되는 전기에너지가 전력 모드 전환으로 소모되는 전기 에너지 미만인 경우에, S420 단계에서 스토리지 장치(10)는, 액티브 모드에서 아이들 모드로 전력 모드를 전환하지 않고, 액티브 모드를 유지할 수 있다. 스토리지 장치(10)는 입력 예측 시간이 아이들 모드 전환 시간보다 길더라도 액티브 모드에서 아이들 모드로 전력 모드를 변환함으로써 전기 에너지를 절약하는 효과가 없다고 판단되는 경우에는, 전력 모드를 변환하지 않고 액티브 모드를 유지할 수 있다.
도 10은 본 개시의 예시적 실시 예에 따른 워크로드 모니터(141)의 동작을 설명하기 위한 도면이다.
도 10을 참조하면, 워크로드 모니터(141)는 커맨드 큐(130)로부터 인큐된 커맨드를 수신하여, 커맨드에 대응하는 아이들 히스토리를 저장할 수 있다. 아이들 히스토리는 스토리지 장치가 호스트 장치로부터 특정 커맨드를 수신한 후 다음 커맨드를 수신할 때까지 소요된 아이들 시간들에 대한 정보를 포함할 수 있고, 즉, 아이들 히스토리는 제1 내지 제n 아이들 시간들에 대한 정보를 포함할 수 있고, 워크로드 모니터(141)에 저장되는 아이들 시간에 대한 정보는 시간이 흐름에 따라 점차 증가될 수 있다.
예를 들어, 커맨드 큐(130)에 제1 커맨드(CMD1)에 이어 제2 커맨드(CMD2)가 수신되면, 제1 커맨드(CMD1)가 입력된 후 제2 커맨드(CMD2)가 입력될 때까지의 제n 아이들 시간에 대한 정보가 워크로드 모니터(141)에 아이들 히스토리로서 저장될 수 있다. 워크로드 모니터(141)는 제2 커맨드(CMD2) 이후에 새로운 커맨드가 스토리지 장치로 수신되면, 제n 아이들 시간에 대한 정보를 포함하는 아이들 히스토리를 워크로드 정보(IWL)로서 아이들 예측기(143)로 전송할 수 있다.
도 11은 본 개시의 예시적 실시 예에 따른 스토리지 장치(10)의 동작 방법을 설명하기 위한 도면이다. 도 11의 S80 단계 및 S90 단계는 도 3의 S70 단계 이후에 수행될 수 있고, 예시적인 실시 예에서, 도 11의 S80 단계 및 S90 단계는, 도 10의 워크로드 모니터(141)에 의해 수행될 수 있다.
도 1 및 도 11을 참조하면, S80 단계에서 스토리지 장치(10)는 제1 커맨드(CMD1) 및 제2 커맨드(CMD2) 사이의 아이들 시간을 계산할 수 있다. 즉, 스토리지 장치는 제1 커맨드(CMD1)를 수신한 시점과 제2 커맨드(CMD2)를 수신한 시점 사이의 아이들 시간을 계산할 수 있다. 스토리지 장치(10)는 제1 커맨드(CMD1)를 수신한 후, 이어서 제2 커맨드(CMD2)를 수신할 수 있다. 이 때, 스토리지 장치(10)는 제1 커맨드(CMD1)를 수신한 후 액티브 모드를 유지하고, 제2 커맨드(CMD2)가 입력되면 제2 커맨드(CMD2)를 처리하는 동작을 수행할 수 있다. 또는, 스토리지 장치(10)는 제1 커맨드(CMD1)를 처리하는 동작을 수행한 후, 액티브 모드에서 저전력 모드로 전력 모드를 변경한 후에 다시 액티브 모드로 복귀한 후 제2 커맨드(CMD2)를 처리하는 동작을 수행할 수도 있다.
S90 단계에서 스토리지 장치(10)는, S80 단계에서 계산된 아이들 시간에 대한 정보를 아이들 히스토리로서 전력 모드 매니저(140)에 저장할 수 있고, 즉, 전력 모드 매니저(140)의 아이들 히스토리가 업데이트될 수 있다. 아이들 히스토리는, 스토리지 장치가 제2 커맨드(CMD2)에 이어 제3 커맨드가 입력될 입력 예측 시간을 예측하는 데에 이용될 수 있다. 따라서, 본 개시에 따른 스토리지 장치(10)는 호스트 장치(20)로부터 수신되는 커맨드(CMD)의 수가 증가될 수록 아이들 히스토리가 점점 업데이트될 수 있고, 다음 커맨드(CMD)가 입력될 입력 예측 시간을 예측하는 정확도가 증가될 수 있다.
도 12는 본 개시의 예시적 실시 예에 따른 스토리지 장치(10a)를 나타내는 블록도이다.
도 12를 참조하면, 스토리지 장치(10a)는 스토리지 컨트롤러(100a), 비휘발성 메모리(200), 전력 모드 매니저(140a), 전압 생성기(300) 및 클락 신호 생성기(400)를 포함할 수 있다. 도 1의 스토리지 장치(1000)와 비교하면, 전력 모드 매니저(140a)는 스토리지 컨트롤러(100a)의 외부에 컨트롤러(110b)와는 별개의 모듈로서 구비될 수 있다. 전력 모드 매니저(140a)에는 도 1 내지 도 11에서 설명된 전력 모드 매니저(140)에 대한 설명이 적용될 수 있다.
전력 모드 매니저(140a)는 커맨드(CMD)가 수신되면 다음 커맨드(CMD)가 입력될 입력 예측 시간을 미리 예측할 수 있고, 예측된 입력 예측 시간에 기초하여, 스토리지 장치(10a)의 전력 모드를 변경할 수 있다. 전력 모드 매니저(140)는 예측된 입력 예측 시간에 기초하여, 액티브 모드에서 저전력 모드로 전력 모드를 변경할지 여부를 판단할 수 있고, 저전력 모드에서 액티브 모드로 복귀할 복귀 시간을 설정할 수 있다. 전력 모드 매니저(140)는 모드 변경 신호(PM)를 생성할 수 있고, 전압 생성기(300) 및 클락 신호 생성기(400) 중 적어도 하나로 모드 변경 신호(PM)를 전송함으로써, 스토리지 장치(10)의 전력 모드를 변경할 수 있다.
예를 들어, 전력 모드 매니저(140a)는 호스트 장치(20)로부터 제1 커맨드(CMD1)가 수신되면, 제1 커맨드(CMD1)에 대응하는 워크 로드 정보를 이용하여 제2 커맨드(CMD2)가 스토리지 장치(100a)로 입력될 입력 예측 시간을 예측할 수 있다. 전력 모드 매니저(140a)는 입력 예측 시간으로부터 저전력 모드에서 액티브 모드로 복귀할 복귀 시간을 설정할 수 있고, 제2 커맨드(CMD2)가 수신되기 전에 액티브 모드로 복귀하도록 모드 변경 신호(PM)를 생성할 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
Claims (20)
- 액티브 모드 및 상기 액티브 모드보다 낮은 소모 전력을 갖는 저전력 모드를 포함하는 복수의 전력 모드들로 동작하는 스토리지 장치에 있어서,
복수의 비휘발성 메모리 셀을 포함하는 비휘발성 메모리; 및
상기 액티브 모드에서 호스트 장치로부터 입력된 커맨드들을 처리하는 스토리지 컨트롤러를 포함하고,
상기 스토리지 컨트롤러는 상기 복수의 전력 모드들을 조절하는 전력 모드 매니저를 포함하고,
상기 전력 모드 매니저는,
제1 커맨드가 입력되면, 상기 제1 커맨드 이후에 상기 호스트 장치로부터 제2 커맨드가 입력되는 데에 걸리는 입력 예측 시간을 예측하고,
상기 제1 커맨드의 처리 동작이 완료되면 상기 액티브 모드에서 상기 저전력 모드로 변경하고,
상기 입력 예측 시간에 따라 설정된 복귀 시간이 경과되면 상기 저전력 모드에서 상기 액티브 모드로 복귀하는 것을 특징으로 하는 스토리지 장치. - 제1 항에 있어서,
상기 전력 모드 매니저는 상기 복귀 시간이 경과되기 전에 상기 제2 커맨드가 입력되면 상기 저전력 모드에서 상기 액티브 모드로 복귀하는 것을 특징으로 하는 스토리지 장치. - 제1 항에 있어서,
상기 전력 모드 매니저는,
상기 커맨드들 각각이 입력되는 시점 사이의 간격인 아이들 시간들에 대한 정보를 포함하는 아이들 히스토리를 포함하는 워크로드 정보를 출력하는 워크로드 모니터;
상기 워크로드 정보를 이용하여 상기 입력 예측 시간을 예측하는 연산을 수행하고, 연산 결과에 따른 예측 결과 데이터를 출력하는 아이들 예측기; 및
상기 예측 결과 데이터를 이용하여 상기 복귀 시간을 설정하는 복귀 시간 결정기를 포함하는 것을 특징으로 하는 스토리지 장치. - 제3 항에 있어서,
상기 워크로드 정보는 상기 제1 커맨드의 사이즈, 상기 제1 커맨드의 타입 및 상기 제1 커맨드에 대응하는 논리 블록 어드레스의 연속성에 대한 정보 중 적어도 하나를 더 포함하는 것을 특징으로 하는 스토리지 장치. - 제1 항에 있어서,
상기 전력 모드 매니저는, 상기 입력 예측 시간 및 상기 저전력 모드에서 상기 액티브 모드로 복귀하는 데에 걸리는 시간에 기초하여 상기 복귀 시간을 설정하는 것을 특징으로 하는 스토리지 장치. - 액티브 모드 및 상기 액티브 모드보다 낮은 소모 전력을 갖는 저전력 모드를 포함하는 복수의 전력 모드들로 동작하는 스토리지 장치의 동작 방법에 있어서,
호스트 장치로부터 제1 커맨드가 입력되는 단계;
상기 제1 커맨드에 이후에 상기 호스트 장치로부터 제2 커맨드가 입력될 입력 예측 시간을 예측하는 단계;
상기 입력 예측 시간에 기초하여, 상기 저전력 모드에서 상기 액티브 모드로 복귀할 복귀 시간을 타이머에 설정하는 단계;
상기 제1 커맨드의 처리 동작이 완료되면 상기 액티브 모드에서 상기 저전력 모드로 전환하는 단계;
상기 복귀 시간이 경과되면 상기 저전력 모드에서 상기 액티브 모드로 복귀하는 단계를 포함하는 것을 특징으로 하는 스토리지 장치의 동작 방법. - 제6 항에 있어서,
상기 복귀 시간을 타이머에 설정하는 단계는,
상기 입력 예측 시간이 상기 저전력 모드에서 상기 액티브 모드로 복귀하는 데에 걸리는 모드 전환 시간과 비교하는 단계;
상기 저전력 모드를 수행함으로써 절약되는 전기 에너지를 상기 전력 모드를 변경함으로써 소모되는 전기 에너지와 비교하는 단계; 및
상기 입력 예측 시간 및 상기 모드 전환 시간에 기초하여 상기 복귀 시간을 타이머에 설정하는 단계를 포함하고,
상기 액티브 모드에서 상기 저전력 모드로 전환하는 단계는 상기 비교하는 단계들의 비교 결과들에 기초하여 상기 액티브 모드에서 상기 저전력 모드로 전환하는 것을 특징으로 하는 스토리지 장치의 동작 방법. - 제6 항에 있어서,
상기 저전력 모드는 아이들 모드 및 상기 아이들 모드보다 낮은 소모 전력을 갖는 슬립 모드를 더 포함하고,
상기 복귀 시간을 타이머에 설정하는 단계는,
상기 입력 예측 시간을 상기 슬립 모드에서 상기 액티브 모드로 복귀하는 데에 걸리는 슬립 모드 전환 시간과 비교하는 단계;
상기 입력 예측 시간을 상기 아이들 모드에서 상기 액티브 모드로 복귀하는 데에 걸리는 아이들 모드 전환 시간과 비교하는 단계; 및
상기 입력 예측 시간, 상기 슬립 모드 전환 시간 및 상기 아이들 모드 전환 시간에 기초하여 상기 복귀 시간을 타이머에 설정하는 단계를 포함하는 것을 특징으로 하는 스토리지 장치의 동작 방법. - 제8 항에 있어서,
상기 복귀 시간을 타이머에 설정하는 단계는,
상기 입력 예측 시간이 상기 슬립 모드 전환 시간 이상이면, 상기 슬립 모드를 수행함으로써 절약되는 전기 에너지를 상기 전력 모드를 변경함으로써 소모되는 전기 에너지와 비교하는 단계를 더 포함하는 것을 특징으로 하는 스토리지 장치의 동작 방법. - 제8 항에 있어서,
상기 복귀 시간을 타이머에 설정하는 단계는,
상기 입력 예측 시간이 상기 슬립 모드 전환 시간 미만이고 상기 아이들 모드 전환 시간이상이면, 상기 아이들 모드를 수행함으로써 절약되는 전기 에너지를 상기 전력 모드를 변경함으로써 소모되는 전기 에너지와 비교하는 단계를 더 포함하는 것을 특징으로 하는 스토리지 장치의 동작 방법. - 제6 항에 있어서,
상기 입력 예측 시간을 예측하는 단계는, 커맨드들 각각이 입력되는 시점 사이의 간격인 아이들 시간들에 대한 정보를 포함하는 아이들 히스토리를 이용하여 상기 입력 예측 시간을 예측하는 연산을 수행하는 단계를 포함하는 것을 특징으로 하는 스토리지 장치의 동작 방법. - 제11 항에 있어서,
상기 제2 커맨드가 입력되는 단계;
상기 제1 커맨드가 입력된 시점 및 상기 제2 커맨드가 입력된 시점 사이의 아이들 시간을 상기 아이들 히스토리에 저장함으로써, 상기 아이들 히스토리를 업데이트하는 단계를 더 포함하는 것을 특징으로 하는 스토리지 장치의 동작 방법. - 액티브 모드 및 상기 액티브 모드보다 낮은 소모 전력을 갖는 저전력 모드를 포함하는 복수의 전력 모드들로 동작하는 스토리지 장치에 있어서,
복수의 비휘발성 메모리 셀을 포함하는 비휘발성 메모리;
상기 액티브 모드에서 호스트 장치로부터 입력된 커맨드들을 처리하는 스토리지 컨트롤러; 및
상기 복수의 전력 모드들을 조절하는 전력 모드 매니저를 포함하고,
상기 전력 모드 매니저는,
제1 커맨드가 입력되면, 상기 제1 커맨드 이후에 상기 호스트 장치로부터 제2 커맨드가 입력되는 데에 걸리는 입력 예측 시간을 예측하고,
상기 제1 커맨드의 처리 동작이 완료되면 상기 액티브 모드에서 상기 저전력 모드로 변경하고,
상기 입력 예측 시간에 따라 설정된 복귀 시간이 경과되면 상기 저전력 모드에서 상기 액티브 모드로 복귀하는 것을 특징으로 하는 스토리지 장치. - 제13 항에 있어서,
상기 스토리지 장치는 상기 비휘발성 메모리 및 상기 스토리지 컨트롤러로 내부 전압을 각각 제공하는 전압 생성기를 더 포함하고,
상기 전력 모드 매니저는 상기 복귀 시간이 경과되면 모드 변경 신호를 상기 전압 생성기로 전송하고, 상기 전압 생성기는 상기 모드 변경 신호에 응답하여 상기 내부 전압의 크기를 변경하는 것을 특징으로 하는 스토리지 장치. - 제13 항에 있어서,
상기 스토리지 장치는 상기 스토리지 컨트롤러로 클락 신호를 제공하는 클락 신호 생성기를 더 포함하고,
상기 전력 모드 매니저는 상기 복귀 시간이 경과되면 모드 변경 신호를 상기 클락 신호 생성기로 전송하고, 상기 클락 신호 생성기는 상기 모드 변경 신호에 응답하여 상기 클락 신호의 주파수를 변경하는 것을 특징으로 하는 스토리지 장치. - 제13 항에 있어서,
상기 전력 모드 매니저는 상기 복귀 시간이 경과되기 전에 상기 제2 커맨드가 입력되면 상기 저전력 모드에서 상기 액티브 모드로 복귀하는 것을 특징으로 하는 스토리지 장치. - 제13 항에 있어서,
상기 전력 모드 매니저는,
상기 스토리지 컨트롤러로부터 상기 제1 커맨드를 수신하고, 상기 커맨드들 각각이 입력되는 시점 사이의 간격인 아이들 시간들에 대한 정보를 포함하는 아이들 히스토리를 포함하는 워크로드 정보를 출력하는 워크로드 모니터;
상기 워크로드 정보를 이용하여 상기 입력 예측 시간을 예측하는 연산을 수행하고, 연산 결과에 따른 예측 결과 데이터를 출력하는 아이들 예측기; 및
상기 예측 결과 데이터를 이용하여 상기 복귀 시간을 설정하는 복귀 시간 결정기를 포함하는 것을 특징으로 하는 스토리지 장치. - 제17 항에 있어서,
상기 전력 모드 매니저는 프로세싱 회로를 더 포함하고,
상기 워크로드 모니터, 상기 아이들 예측기 및 상기 복귀 시간 결정기는 상기 프로세싱 회로에 의해 실행되는 것을 특징으로 하는 스토리지 장치. - 제18 항에 있어서,
상기 아이들 예측기는 뉴럴 네트워크 모델을 포함할 수 있고, 상기 뉴럴 네트워크 모델이 상기 프로세싱 회로에 의해 실행됨으로써 상기 입력 예측 시간을 예측하는 연산이 수행되는 것을 특징으로 하는 스토리지 장치. - 제17 항에 있어서,
상기 워크로드 모니터는 상기 스토리지 컨트롤러로부터 상기 제2 커맨드를 수신하면, 상기 제1 커맨드가 입력되는 시점 및 상기 제2 커맨드가 입력되는 시점 사이의 간격인 아이들 시간을 계산하여 상기 아이들 히스토리를 업데이트하는 것을 특징으로 하는 스토리지 장치.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200015838A KR20210101632A (ko) | 2020-02-10 | 2020-02-10 | 스토리지 장치 및 상기 스토리지 장치의 동작 방법 |
US17/035,257 US11385811B2 (en) | 2020-02-10 | 2020-09-28 | Storage device and method of operating the same |
CN202110093185.5A CN113254361A (zh) | 2020-02-10 | 2021-01-22 | 存储设备及其操作方法 |
EP21155205.4A EP3862843A1 (en) | 2020-02-10 | 2021-02-04 | Storage device and method of operating the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200015838A KR20210101632A (ko) | 2020-02-10 | 2020-02-10 | 스토리지 장치 및 상기 스토리지 장치의 동작 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20210101632A true KR20210101632A (ko) | 2021-08-19 |
Family
ID=74553648
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200015838A KR20210101632A (ko) | 2020-02-10 | 2020-02-10 | 스토리지 장치 및 상기 스토리지 장치의 동작 방법 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11385811B2 (ko) |
EP (1) | EP3862843A1 (ko) |
KR (1) | KR20210101632A (ko) |
CN (1) | CN113254361A (ko) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200091679A (ko) * | 2019-01-23 | 2020-07-31 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
KR20220003837A (ko) * | 2020-07-02 | 2022-01-11 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
KR20230031425A (ko) * | 2021-08-27 | 2023-03-07 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
KR20230112362A (ko) * | 2022-01-20 | 2023-07-27 | 에스케이하이닉스 주식회사 | 데이터 처리 시스템 및 그 동작 방법과, 이를 위한 스토리지 장치 |
CN117687702B (zh) * | 2024-01-31 | 2024-04-19 | 合肥康芯威存储技术有限公司 | 一种存储芯片以及自动休眠方法 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013078415A1 (en) | 2011-11-22 | 2013-05-30 | Iolo Technologies, Llc | Idle detection |
US20140181553A1 (en) | 2012-12-21 | 2014-06-26 | Advanced Micro Devices, Inc. | Idle Phase Prediction For Integrated Circuits |
US9141299B2 (en) | 2013-03-14 | 2015-09-22 | Intel Corporation | Method for reducing power consumption in solid-state storage device |
KR102100707B1 (ko) * | 2013-08-19 | 2020-04-16 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 |
US9442668B1 (en) * | 2013-08-29 | 2016-09-13 | Western Digital Technologies, Inc. | Adaptive power management control with performance feedback |
US20150286271A1 (en) | 2014-04-03 | 2015-10-08 | Samsung Electronics Co., Ltd. | System and method for predicting a central processing unit idle pattern for power saving in a modem system on chip |
US9568987B2 (en) | 2015-03-10 | 2017-02-14 | Kabushiki Kaisha Toshiba | Memory system, method of controlling memory system having volatile memory and nonvolatile memory, and controller |
US20170168853A1 (en) | 2015-12-14 | 2017-06-15 | Qualcomm Incorporated | Dynamic predictive wake-up techniques |
CN106055079B (zh) | 2016-05-31 | 2017-11-24 | 广东欧珀移动通信有限公司 | 一种中央处理器的管理方法、及装置 |
US10275008B2 (en) | 2016-09-22 | 2019-04-30 | Intel Corporation | Methods and apparatus to reduce computing device power consumption |
US10534546B2 (en) * | 2017-06-13 | 2020-01-14 | Western Digital Technologies, Inc. | Storage system having an adaptive workload-based command processing clock |
US10732871B2 (en) * | 2017-11-01 | 2020-08-04 | Western Digital Technologies, Inc. | Storage device and method for adaptive sleep mode transitions |
US10628321B2 (en) | 2018-02-28 | 2020-04-21 | Qualcomm Incorporated | Progressive flush of cache memory |
US10761584B2 (en) | 2018-03-16 | 2020-09-01 | Vigyanlabs Innovations Private Limited | System and method to enable prediction-based power management |
-
2020
- 2020-02-10 KR KR1020200015838A patent/KR20210101632A/ko not_active Application Discontinuation
- 2020-09-28 US US17/035,257 patent/US11385811B2/en active Active
-
2021
- 2021-01-22 CN CN202110093185.5A patent/CN113254361A/zh active Pending
- 2021-02-04 EP EP21155205.4A patent/EP3862843A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US11385811B2 (en) | 2022-07-12 |
US20210247916A1 (en) | 2021-08-12 |
EP3862843A1 (en) | 2021-08-11 |
CN113254361A (zh) | 2021-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3862843A1 (en) | Storage device and method of operating the same | |
US11656675B2 (en) | Application processor performing a dynamic voltage and frequency scaling operation, computing system including the same, and operation method thereof | |
EP3872641B1 (en) | Storage device and method of operating the storage device | |
JP6788420B2 (ja) | 電力消費を制御するシステム及びその方法 | |
EP3441885B1 (en) | Technologies for caching persistent two-level memory data | |
US20160154449A1 (en) | System on chips for controlling power using workloads, methods of operating the same, and computing devices including the same | |
US11494094B2 (en) | Storage system and method of dynamically managing power of storage system according to a monitored operating state of a computing device | |
US11693466B2 (en) | Application processor and system on chip | |
EP3705979A1 (en) | Ssd restart based on off-time tracker | |
TW201629760A (zh) | 使用工作負載控制電力的系統晶片、其操作方法以及包含上述的計算裝置 | |
CN113703663A (zh) | 支持多租户的存储装置及其操作方法 | |
KR102507302B1 (ko) | 스토리지 장치 및 상기 스토리지 장치의 동작 방법 | |
KR20230060817A (ko) | 스토리지 장치 및 스토리지 장치의 동작 방법 | |
US11733274B1 (en) | Voltage sensing circuit | |
US12021523B2 (en) | Integrated circuit and computing system performing dynamic voltage and frequency scaling and method of operating integrated circuit | |
US20120331209A1 (en) | Semiconductor storage system | |
US20190095122A1 (en) | Memory management system, computing system, and methods thereof | |
US11768531B2 (en) | Power management for storage controllers | |
KR20190033921A (ko) | 스토리지 장치 및 그 동작 방법 | |
WO2022133705A1 (en) | Low power management for sleep mode operation of a memory device | |
CN116414298A (zh) | 存储器控制器的分区内部资源的就绪状态 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal |