KR20220053177A - 스토리지 장치, 멀티-컴포넌트 장치 및 이의 동작 제어 방법 - Google Patents

스토리지 장치, 멀티-컴포넌트 장치 및 이의 동작 제어 방법 Download PDF

Info

Publication number
KR20220053177A
KR20220053177A KR1020200137317A KR20200137317A KR20220053177A KR 20220053177 A KR20220053177 A KR 20220053177A KR 1020200137317 A KR1020200137317 A KR 1020200137317A KR 20200137317 A KR20200137317 A KR 20200137317A KR 20220053177 A KR20220053177 A KR 20220053177A
Authority
KR
South Korea
Prior art keywords
power
performance
value
controller
ssd
Prior art date
Application number
KR1020200137317A
Other languages
English (en)
Inventor
이용인
이혁
최승현
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020200137317A priority Critical patent/KR20220053177A/ko
Priority to US17/239,654 priority patent/US11543871B2/en
Priority to EP21175841.2A priority patent/EP3989042A1/en
Priority to CN202110796956.7A priority patent/CN114385072A/zh
Publication of KR20220053177A publication Critical patent/KR20220053177A/ko
Priority to US18/074,615 priority patent/US11971764B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/266Arrangements to supply power to external peripherals either directly from the computer or under computer control, e.g. supply of power through the communication port, computer controlled power-strips
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/28Supervision thereof, e.g. detecting power-supply failure by out of limits supervision
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7839Architectures of general purpose stored program computers comprising a single central processing unit with memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • G06F15/7871Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS
    • 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/0625Power saving in storage 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/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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Power Sources (AREA)

Abstract

스토리지 장치는, 호스트 장치와 연결되는 파워 레일을 통하여 전력을 공급받고, 데이터를 저장하는 에스에스디(SSD), 상기 파워 레일을 통하여 전력을 공급받고, 상기 SSD로부터 독출되는 데이터 또는 상기 SSD에 저장되는 데이터를 프로세싱하는 필드 프로그래머블 게이트 어레이(FPGA), 상기 파워 레일에 연결되고, 상기 SSD 및 상기 FPGA이 소모하는 총 전력을 측정하여 상기 총 전력을 나타내는 측정 전력 값을 발생하는 파워 센서 및 상기 호스트 장치로부터 제공되는 전력 제어 정보에 기초하여 우선 모드에서 상기 SSD 및 상기 FPGA 중에서 하나를 고정된 성능으로 동작하는 우선 컴포넌트로 결정하고 다른 하나를 가변적인 성능으로 동작하는 비우선 컴포넌트로 결정하는 글로벌 컨트롤러를 포함한다.

Description

스토리지 장치, 멀티-컴포넌트 장치 및 이의 동작 제어 방법{Storage device, multi-component device and method of controlling operation of the same}
본 발명은 반도체 집적 회로에 관한 것으로서, 더욱 상세하게는 우선 모드로 동작하는 스토리지 장치, 멀티-컴포넌트 장치 및 이의 동작 제어 방법에 관한 것이다.
하나의 장치에 복수의 컴포넌트들을 포함하는 경우, 전력 예산을 만족하면서 동시에 상기 복수의 컴포넌트들의 성능을 극대화하는 것이 요구된다.
예를 들어, 2.5인치 스토리지 폼 팩터(storage form factor)는 최대 25W의 전력 제한을 가지고 있는데, 스토리지 장치에 데이터 저장 이외의 부가적인 기능을 수행하는 필드 프로그래머블 게이트 어레이(FPGA, field programmable gate array)와 같은 컴포넌트들이 함께 집적되는 경우, 스토리지 장치의 소모 전력은 손쉽게 25W를 넘게 된다. 여기서 발열과 전력 소모 모두가 문제가 될 뿐만 아니라 제한된 전력에서 원하는 컴포넌트들 사이의 성능 밸런스를 맞추기 위한 제어 구조가 필요한 실정이다. 특히, 스토리지 장치 내에 함께 집적된 필드 프로그래머블 게이트 어레이(FPGA, field programmable gate array)와 에스에스디(SSD, solid state drive)의 독립적인 동작을 보장할 필요가 있는 경우 성능 밸런스를 설정하기 위해서는 각 컴포넌트의 워크로드(workload)와 전력의 관계 및 각 컴포넌트의 전력 예산(power budget)을 정확하게 알고 구분할 수 있는 구조가 필요하다. 더욱이 이것을 구현하기 위해서는 구조가 비대하게 되고 또한 정확한 워크로드 별 성능과 전력의 관계를 알 수 있어야 하는데, 이것을 알아내는 것은 현실적으로 쉽지 않다.
복수의 컴포넌트들을 포함하는 멀티-컴포넌트 장치에서, 각 컴포넌트에 파워 센서를 배치하고 각 컴포넌트의 파워 쓰로틀링(power throttling) 동작을 수행하는 경우, 복수의 컴포넌트들 사이의 성능 밸런스를 맞추기 위한 추가 알고리즘이 필요해지고, 현실적으로는 각 컴포넌트의 전력을 정확히 예측할 수 있는 방법이 없다는 문제가 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 일 목적은, 효율적으로 에스에스(SSD) 및 필드 프로그래머블 게이트 어레이(FPGA) 사이의 성능 밸런스를 구현할 수 있는 스토리지 장치를 제공하는 것이다.
또한 본 발명의 일 목적은, 효율적으로 복수의 컴포넌트들 사이의 성능 밸런스를 구현할 수 있는 멀티-컴포넌트 장치를 제공하는 것이다.
또한 본 발명의 일 목적은, 효율적으로 복수의 컴포넌트들 사이의 성능 밸런싱을 구현할 수 있는 멀티-컴포넌트 장치의 동작 제어 방법을 제공하는 것이다.
상기 일 목적을 달성하기 위해, 본 발명의 실시예들에 따른 스토리지 장치는, 호스트 장치와 연결되는 파워 레일을 통하여 전력을 공급받고, 데이터를 저장하는 에스에스디(SSD), 상기 파워 레일을 통하여 전력을 공급받고, 상기 SSD로부터 독출되는 데이터 또는 상기 SSD에 저장되는 데이터를 프로세싱하는 필드 프로그래머블 게이트 어레이(FPGA), 상기 파워 레일에 연결되고, 상기 SSD 및 상기 FPGA이 소모하는 총 전력을 측정하여 상기 총 전력을 나타내는 측정 전력 값을 발생하는 파워 센서 및 상기 호스트 장치로부터 제공되는 전력 제어 정보에 기초하여 우선 모드에서 상기 SSD 및 상기 FPGA 중에서 하나를 고정된 성능으로 동작하는 우선 컴포넌트로 결정하고 다른 하나를 가변적인 성능으로 동작하는 비우선 컴포넌트로 결정하는 글로벌 컨트롤러를 포함한다.
상기 일 목적을 달성하기 위해, 본 발명의 실시예들에 따른 멀티-컴포넌트 장치는, 호스트 장치와 연결되는 파워 레일을 통하여 전력을 공급받는 복수의 컴포넌트들, 상기 파워 레일에 연결되고, 상기 복수의 컴포넌트들이 소모하는 총 전력을 측정하여 상기 총 전력을 나타내는 측정 전력 값을 발생하는 파워 센서 및 상기 호스트 장치로부터 제공되는 전력 제어 정보에 기초하여 우선 모드에서 상기 복수의 컴포넌트들 중에서 적어도 하나의 컴포넌트를 고정된 성능으로 동작하는 우선 컴포넌트로 결정하고 상기 우선 컴포넌트를 제외한 나머지 컴포넌트들을 가변적인 성능으로 동작하는 비우선 컴포넌트로 결정하는 글로벌 컨트롤러를 포함한다.
상기 일 목적을 달성하기 위해, 본 발명의 실시예들에 따른 멀티-컴포넌트 장치의 동작 제어 방법은, 복수의 컴포넌트들을 포함하는 멀티-컴포넌트 장치의 동작 제어 방법으로서, 호스트 장치와 연결되는 파워 레일을 통하여 복수의 컴포넌트들에 전력을 공급하는 단계; 상기 파워 레일에 연결된 파워 센서를 이용하여, 상기 복수의 컴포넌트들이 소모하는 총 전력을 측정하여 상기 총 전력을 나타내는 측정 전력 값을 발생하는 단계; 및 상기 호스트 장치로부터 제공되는 전력 제어 정보에 기초하여 우선 모드에서 상기 복수의 컴포넌트들 중에서 적어도 하나의 컴포넌트를 고정된 성능으로 동작하는 우선 컴포넌트로 결정하고 상기 우선 컴포넌트를 제외한 나머지 컴포넌트들을 가변적인 성능으로 동작하는 비우선 컴포넌트로 결정하는 단계를 포함한다.
본 발명의 실시예들에 따른 스토리지 장치, 멀티-컴포넌트 장치 및 동작 제어 방법은, 적어도 하나의 컴포넌트를 고정된 성능을 갖는 우선 컴포넌트로 동작하도록 제어하고 나머지 컴포넌트를 가변되는 성능을 갖는 비우선 컴포넌트로 동작하도록 제어하는 우선 모드를 통하여 각 컴포넌트의 전력 예측 없이 전력 제한을 준수함과 동시에 효율적으로 복수의 컴포넌트들 사이의 성능 밸런스를 구현할 수 있다.
도 1은 본 발명의 실시예들에 따른 멀티-컴포넌트 장치를 나타내는 블록도이다.
도 2는 도 1의 멀티-컴포넌트 장치에 포함되는 성능 컨트롤러의 일 실시예를 나타내는 도면이다.
도 3, 4 및 5는 도 2의 성능 컨트롤러에 포함되는 가변 성능 컨트롤러의 실시예들을 나타내는 도면들이다.
도 6은 본 발명의 실시예들에 따른 멀티-컴포넌트 장치의 동작 제어 방법을 나타내는 순서도이다.
도 7은 도 6의 동작 제어 방법에 따른 멀티-컴포넌트 장치의 동작 모드들을 나타내는 도면이다.
도 8은 본 발명의 실시예들에 따른 멀티-컴포넌트 장치에 포함되는 성능 컨트롤러에서 발생되는 성능 제어 값에 상응하는 성능 인자들의 실시예들을 나타내는 도면이다.
도 9 및 10은 본 발명의 실시예들에 따른 멀티-컴포넌트 장치에 포함되는 성능 컨트롤러에서 발생되는 고정 성능 제어 값의 실시예들을 나타내는 도면이다.
도 11은 본 발명의 실시예들에 따른 스토리지 장치를 포함하는 시스템을 나타내는 블록도이다.
도 12는 도 11의 시스템의 예시적인 구성을 나타내는 블록도이다.
도 13은 본 발명의 실시예들에 따른 스토리지 장치에 포함되는 솔리드 스테이트 드라이브(SSD)의 일 실시예를 나타내는 블록도이다.
도 14는 도 13의 SSD에 포함되는 SSD 컨트롤러의 일 실시예를 나타내는 블록도이다.
도 15는 본 발명의 실시예들에 따른 스토리지 장치에 포함되는 필드 프로그래머블 게이트 어레이(FPGA)의 일 실시예를 나타내는 블록도이다.
도 16은 본 발명의 실시예들에 따른 스토리지 장치의 동작 모드 전환의 일 실시예를 나타내는 도면이다.
도 17은 본 발명의 실시예들에 따른 스토리지 장치의 동작 모드 전환 방법의 일 실시예를 나타내는 순서도이다.
도 18은 도 17의 동작 제어 방법에 따른 멀티-컴포넌트 장치의 동작 모드들을 나타내는 도면이다.
도 19는 본 발명의 실시예들에 따른 스토리지 장치의 동작 모드 전환의 일 실시예를 나타내는 도면이다.
도 20은 본 발명의 실시예들에 따른 스토리지 장치에 포함되는 글로벌 컨트롤러의 일 실시예를 나타내는 블록도이다.
도 21은 본 발명의 실시예들에 따른 스토리지 장치의 동작 모드 전환 방법의 일 실시예를 나타내는 순서도이다.
도 22a 내지 22d는 본 발명의 실시예들에 따른 스토리지 장치의 평균 전력 값을 측정하기 위한 시간 윈도우의 설정의 실시예들을 나타내는 타이밍도들이다.
도 23a 내지 23e는 본 발명의 실시예들에 따른 스토리지 장치의 구동 방법의 결과들을 나타내는 타이밍도들이다.
도 24 및 25는 본 발명의 실시예들에 따른 스토리지 장치를 나타내는 평면도 및 단면도이다.
도 26은 본 발명의 실시예들에 따른 스토리지 장치를 포함하는 시스템을 나타내는 블록도이다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 실시예들에 따른 멀티-컴포넌트 장치를 나타내는 블록도이다.
도 1을 참조하면, 멀티-컴포넌트 장치(10)는 호스트 장치(12) 및 슬레이브 장치(14)를 포함할 수 있다. 슬레이브 장치(14)는 호스트 장치(12)에 의해 제어될 수 있고, 호스트 장치(12)로부터의 리퀘스트에 상응하는 서비스를 제공할 수 있다. 예를 들어, 슬레이브 장치(14)는 호스트 장치(12)로부터의 리퀘스트에 응답하여 호스트 장치(12)로부터 제공되는 데이터를 저장하거나, 슬레이브 장치(14)에서 독출된 데이터를 호스트 장치(12)로 제공하거나, 호스트 장치(12)로부터 제공되는 데이터 또는 슬레이브 장치(14)에서 독출된 데이터를 프로세싱하는 등의 서비스를 제공할 수 있다.
슬레이브 장치(14) 또는 멀티-컴포넌트 장치(14)는 복수의 컴포넌트들(20, 30, 40), 파워 센서(PSEN)(50) 및 글로벌 컨트롤러(GCON)를 포함할 수 있다.
복수의 컴포넌트들(20, 30, 40)은 호스트 장치(12)와 연결되는 파워 레일(16)을 통하여 전력을 공급받을 수 있다. 파워 레일(16)을 통하여 공급되는 전력은 내부 배선(18)을 통하여 복수의 컴포넌트들(20, 30, 40)에게 공통으로 제공될 수 있다. 도 1에는 도시 및 설명의 편의상 3개의 컴포넌트들을 도시하였으나 멀티-컴포넌트 장치(14)는 2개 또는 4개 이상의 컴포넌트들을 포함할 수 있다. 본 명세서에서 각 컴포넌트는 개별적으로 성능 및 소모 전력이 제어될 수 있는 단위 구성을 나타낼 수 있다.
파워 센서(50)는 파워 레일(16)에 연결되고, 복수의 컴포넌트들(20, 30, 40)이 소모하는 총 전력을 측정하여 상기 총 전력을 나타내는 측정 전력 값(MPW)을 발생할 수 있다.
글로벌 컨트롤러(60)는 호스트 장치(12)로부터 제공되는 전력 제어 정보에 기초하여 우선 모드에서 복수의 컴포넌트들(20, 30, 40) 중에서 적어도 하나의 컴포넌트를 우선 컴포넌트로 결정하고 상기 우선 컴포넌트를 제외한 나머지 컴포넌트들을 비우선 컴포넌트들로 결정할 수 있다. 상기 우선 컴포넌트를 고정된 성능으로 동작하고, 상기 비우선 컴포넌트들은 가변적인 성능으로 동작할 수 있다.
복수의 컴포넌트들(20, 30, 40)의 각각은 각각의 기능을 수행하는 내부 회로 및 상기 내부 회로의 성능 및 전력을 제어하는 성능 컨트롤러를 포함할 수 있다. 제1 컴포넌트(20)는 제1 성능 컨트롤러(21) 및 제1 내부 회로(INT1)(22)를 포함하고, 제2 컴포넌트(30)는 제2 성능 컨트롤러(31) 및 제2 내부 회로(INT2)(32)를 포함하고, 제3 컴포넌트(40)는 제3 성능 컨트롤러(41) 및 제3 내부 회로(INT3)(42)를 포함할 수 있다.
제1 내지 제3 성능 컨트롤러들(21, 31, 41)의 각각은 고정된 성능으로 동작하는 우선 컴포넌트로 결정된 경우의 성능 제어 값을 제공하는 고정 성능 컨트롤러 및 가변적인 성능으로 동작하는 비우선 컴포넌트로 결정된 경우의 성능 제어 값을 제공하는 가변 성능 컨트롤러를 포함할 수 있다. 제1 성능 컨트롤러(21)는 제1 고정 성능 컨트롤러(FPC1) 및 제1 가변 성능 컨트롤러(VPC1)를 포함할 수 있고, 제2 성능 컨트롤러(31)는 제2 고정 성능 컨트롤러(FPC2) 및 제2 가변 성능 컨트롤러(VPC2)를 포함할 수 있고, 제3 성능 컨트롤러(41)는 제3 고정 성능 컨트롤러(FPC3) 및 제3 가변 성능 컨트롤러(VPC3)를 포함할 수 있다.
호스트 장치(12)로부터 제공되는 전력 제어 정보(PCINF)는 멀티-컴포넌트 장치(14)의 전력 상한을 나타내는 타겟 전력 값(TPW), 상기 우선 컴포넌트를 나타내는 우선 컴포넌트 정보(PDEV) 및 상기 우선 컴포넌트의 고정된 성능을 나타내는 타겟 성능 값(TPF)을 포함할 수 있다.
일 실시예에서, 전력 제어 정보(PCINF)는 호스트 장치(12)에서 슬레이브 장치(14)로 제공되는 코맨드에 기초하여 제공될 수 있다. 전력 제어 정보(PCINF)는 상기 코맨드에 포함되어 제공될 수도 있고, 상기 코맨드가 코맨드-어드레스를 통하여 전송될 때 데이터 버스를 통하여 제공될 수도 있다. 다른 실시예에서, 전력 제어 정보(PCINF)는 코맨드-어드레스 버스 및 데이터 버스와 구별되는 별도의 컨트롤 라인들을 통하여 제공될 수도 있다.
글로벌 컨트롤러(60)는 우선 컴포넌트 정보(PDEV)에 기초하여 멀티-컴포넌트 장치(14)의 동작 모드를 결정할 수 있다. 예를 들어, 우선 컴포넌트 정보(PDEV)는 우선 컴포넌트에 해당하는 컴포넌트 식별자를 포함할 수 있다. 글로벌 컨트롤러(60)는 우선 컴포넌트 정보(PDEV)가 적어도 하나의 컴포넌트 식별자를 포함하는 경우 동작 모드를 우선 모드로 결정할 수 있고, 우선 컴포넌트 정보(PDEV)가 어떤 컴포넌트 식별자도 포함하지 않은 경우 동작 모드를 비우선 모드로 결정할 수 있다. 도 7을 참조하여 후술하는 바와 같이, 글로벌 컨트롤러(60)는 우선 컴포넌트에 대해서는 고정 성능 컨트롤러만을 인에이블시키고 가변 성능 컨트롤러를 디스에이블시킬 수 있다. 한편, 글로벌 컨트롤러(60)는 비우선 컴포넌트에 대해서는 가변 성능 컨트롤러만을 인에이블시키고 고정 성능 컨트롤러를 디스에이블시킬 수 있다.
글로벌 컨트롤러(60)는 전력 제어 정보(PCINF)에 기초하여 제1, 제2 및 제3 컴포넌트들(20, 30, 40)을 각각 제어하기 위한 제1 내지 제3 제어 신호들(CTRL1, CTRL2, CTRL3)을 발생할 수 있다. 제1 내지 제3 제어 신호들(CTRL1, CTRL2, CTRL3)은 우선 컴포넌트에 제공되는 타겟 전력 값(TPW), 타겟 성능 값(TPF), 고정 성능 컨트롤러 또는 가변 성능 컨트롤러를 선택적으로 인에이블시키기 위한 선택 신호 등을 포함할 수 있다.
도 1에는 글로벌 컨트롤러(60)가 복수의 컴포넌트들(20, 30, 40)의 외부에 구현되는 것을 도시하고 있으나, 본 발명의 실시예들이 이에 한정되는 것은 아니다. 실시예들에 따라서, 글로벌 컨트롤러(60)는 복수의 컴포넌트들(20, 30, 40) 중 하나의 내부에 집적될 수도 있고, 호스트 장치(12)에 포함될 수도 있다.
제1 내지 제3 성능 컨트롤러들(21, 31, 41)의 각각은 글로벌 컨트롤러(60)로부터 제공되는 제어 신호 및 측정 전력 값(MPW)에 기초하여 각각의 내부 회로의 전력 및 성능을 제어하기 위한 성능 제어 값을 제공할 수 있다. 제1 성능 컨트롤러(21)는 제1 제어 신호(CTRL1) 및 측정 전력 값(MPW)에 기초하여 제1 내부 회로(22)에 제공되는 제1 성능 제어 값(PFC1)을 제공할 수 있고, 제2 성능 컨트롤러(31)는 제2 제어 신호(CTRL2) 및 측정 전력 값(MPW)에 기초하여 제2 내부 회로(32)에 제공되는 제2 성능 제어 값(PFC2)을 제공할 수 있고, 제3 성능 컨트롤러(41)는 제3 제어 신호(CTRL3) 및 측정 전력 값(MPW)에 기초하여 제3 내부 회로(42)에 제공되는 제3 성능 제어 값(PFC3)을 제공할 수 있다.
일 실시예에서, 도 1에 도시된 바와 같이, 제1 성능 제어 값(PFC1), 제2 성능 제어 값(PFC2) 및 제3 성능 제어 값(PFC3)이 제1 내부 회로(22), 제2 내부 회로(32) 및 제3 내부 회로(42)에 제공될 수 있다. 이 경우, 제1 내부 회로(22), 제2 내부 회로(32) 및 제3 내부 회로(42)는 전력 제어를 위한 전압 및/또는 동작 주파수를 제어하기 위한 구성요소를 포함할 수 있다.
다른 실시예에서, 도 25를 참조하여 후술하는 바와 같이, 멀티-컴포넌트 장치(14)는 전반적인 전력을 제어하는 전력 관리 집적 회로(PMIC, power management integrated circuit)를 더 포함할 수 있다. 이 경우, 제1 성능 제어 값(PFC1), 제2 성능 제어 값(PFC2) 및 제3 성능 제어 값(PFC3)은 상기 PMIC로 직접 제공될 수도 있고, 제1 내부 회로(22), 제2 내부 회로(32) 및 제3 내부 회로(42)를 거쳐서 상기 PMIC로 제공될 수도 있다.
실시예들에 따라서, 복수의 컴포넌트들(20, 30, 40)의 각각은, 각각의 동작 온도들을 측정하여 상기 동작 온도를 나타내는 동작 온도 값을 발생하는 온도 센서를 더 포함할 수 있다. 제1 컴포넌트(20)는 제1 컴포넌트(20)의 동작 온도를 나타내는 제1 동작 온도 값(MT1)을 발생하는 제1 온도 센서(TS1)를 포함할 수 있고, 제2 컴포넌트(30)는 제2 컴포넌트(30)의 동작 온도를 나타내는 제2 동작 온도 값(MT2)을 발생하는 제2 온도 센서(TS2)를 포함할 수 있고, 제3 컴포넌트(40)는 제3 컴포넌트(40)의 동작 온도를 나타내는 제3 동작 온도 값(MT3)을 발생하는 제3 온도 센서(TS3)를 포함할 수 있다.
이 경우, 도 4 및 5를 참조하여 후술하는 바와 같이, 비우선 컴포넌트는 타겟 전력 값(TPW), 측정 전력 값(MPW), 상응하는 온도 측정 값 및 상기 동작 온도의 상한을 나타내는 타겟 온도 값에 기초하여 가변적인 성능으로 동작할 수 있다. 전력뿐만 아니라 동작 온도를 고려하여 성능을 제어함으로써 멀티-컴포넌트 장치(14)의 동작 안정성을 향상시킬 수 있다.
일 실시예에서, 도 1의 멀티-컴포넌트 장치(14)는 도 11 내지 15를 참조하여 후술하는 바와 같은 스토리지 장치(1200)일 수 있다. 이 경우, 복수의 컴포넌트들(20, 30, 40) 중 하나는 SSD(1230)에 해당하고 복수의 컴포넌트들(20, 30, 40) 중 다른 하나는 FPGA(1210)에 해당할 수 있다. 도 1 내지 10의 멀티-컴포넌트 장치(14)에 대한 설명은 후술하는 바와 같은 스토리지 장치(1200) 및 이에 포함되는 SSD(1230) 및 FPGA(1210)에 적용될 수 있다.
도 2는 도 1의 멀티-컴포넌트 장치에 포함되는 성능 컨트롤러의 일 실시예를 나타내는 도면이다.
도 2를 참조하면, 복수의 컴포넌트들에 각각 포함되는 성능 컨트롤러(110)는 고정 성능 컨트롤러(FPC)(111) 및 가변 성능 컨트롤러(VPC)(112)를 포함할 수 있다.
고정 성능 컨트롤러(111)는 상응하는 컴포넌트가 우선 컴포넌트로 결정될 때 인에이블되고 타겟 성능 값(TPF)에 기초하여 상응하는 컴포넌트의 성능을 제어하기 위한 고정 성능 제어 값(PFC_C)을 제공할 수 있다. 글로벌 컨트롤러는 호스트 장치로부터 우선 컴포넌트의 최대 성능에 대한 고정된 성능의 비율(예를 들어, 백분율(%))을 타겟 성능 값(TPF) 으로서 수신할 수 있다.
가변 성능 컨트롤러(112)는 상응하는 컴포넌트가 비우선 컴포넌트로 결정될 때 인에이블되고 타겟 전력 값(TPW) 및 측정 전력 값(MPW)에 기초하여 상응하는 컴포넌트의 성능을 제어하기 위한 가변 성능 제어 값(PFC(t))을 제공할 수 있다. 결과적으로 상응하는 컴포넌트가 우선 컴포넌트로 결정되는 경우에는 고정 성능 제어 값(PFC_C)이 내부 회로로 제공되고 상응하는 컴포넌트가 비우선 컴포넌트로 결정되는 경우에는 가변 성능 제어 값(PFC(t))이 내부 회로로 제공될 수 있다.
도 3, 4 및 5는 도 2의 성능 컨트롤러에 포함되는 가변 성능 컨트롤러의 실시예들을 나타내는 도면들이다.
도 3에는 비례적분미분(PID) 컨트롤러의 예시적이 구성이 도시되어 있다. 도 1의 제1, 제2 및 제3 가변 성능 컨트롤러들(VPC1, VPC2, VPC3)의 각각은 도 3에 도시된 바와 같은 PID 컨트롤러로 구현될 수 있다.
도 3을 참조하면, PID 컨트롤러(120)는 미분 제어부(121), 비례 제어부(122), 적분 제어부(123), 뺄셈부(124) 및 덧셈부(125)를 포함할 수 있다.
뺄셈부(124)는 타겟 전력 값(TPW)에 측정 전력 값(MPW)을 감산한 값을 미분 제어부(121), 비례 제어부(122), 적분 제어부(123)에 제공하고, 덧셈부(125)는 미분 제어부(121), 비례 제어부(122), 적분 제어부(123)의 출력들을 합산하여 성능 제어 값(PFC)에 상응하는 가변 성능 제어 값(u(t))을 출력할 수 있다. 가변 성능 제어 값(u(t))은 시간(t)의 함수로서 하기의 수학식으로 표현될 수 있다.
Figure pat00001
상기 수학식에서, kp는 비례 게인을 나타내고, Ki는 적분 게인을 나타내고, Kd는 미분 게인을 나타낸다. 가변 성능 제어 값(u(t))에 상응하는 측정 전력 값(MPW)은 다시 뺄셈부(124)로 피드백되는 폐쇄 루프(closed loop) 동작에 따라서, 측정 전력 값(MPW)이 타겟 전력 값(TPW)에 수렴하도록 가변 성능 제어 값((u(t))이 발생된다.
비례 제어부(122)는 에러(TPW-MPW)에 비례하는 값을 출력한다. Kp는 비례 게인이며 Kp는 다양한 방법에 의해 적절한 값으로 결정될 수 있다. Kp가 클수록 같은 에러에 대한 가변 성능 제어 값(u(t))의 변동이 커지므로 더 빠르게 수렴될 수 있고, Kp가 너무 작으면 응답속도가 느리고 정상상태에 도달하지 못하게 된다. 반대로 Kp가 너무 크면 응답속도는 빠르지만 오버슈트가 발생하게 된다.
Kp가 아무리 크더라도 가변 성능 제어 값(u(t))의 목표 값에 도달하지 못하고 작은 오차가 남게 된다. 이를 해결하기 위해 적분 제어부(123)는 에러(TPW-MPW)를 적분하여 출력한다. 적분 제어부(123)는 정상 상태 오차 (steady state error)가 발생할 때 정상 상태 오차 구간을 적분하여 목표 값을 끝까지 잘 추종할 수 있게 하는 역할을 한다.
이와 같은 PID 컨트롤러(120)를 이용하여, 각 컴포넌트에 포함되는 가변 성능 컨트롤러(VPC)는 타겟 전력 값(TPW) 및 측정 전력 값(MPW)의 차이에 기초하여 측정 전력 값(MPW)이 타겟 전력 값(TPW)에 수렴하도록 각각의 가변 성능 제어 값(u(t))을 발생할 수 있다. 도 2의 가변 성능 제어 값(PFC(t))은 도 3의 가변 성능 제어 값(u(t))과 동일하거나 이에 기초하여 발생될 수 있다.
도 4 및 5는 전력뿐만 아니라 컴포넌트의 동작 온도를 고려하여 성능을 제어하기 위한 가변 성능 컨트롤러의 실시예들을 나타내는 도면들이다.
도 4를 참조하면, 가변 성능 컨트롤러(130)는 제1 PID 컨트롤러(131), 제2 PID 컨트롤러(132) 및 덧셈부(133)를 포함할 수 있다. 제1 PID 컨트롤러(131) 및 제2 PID 컨트롤러(132)의 기본적인 구성 및 동작은 도 3을 참조하여 설명한 바와 같다.
제1 PID 컨트롤러(131)는 도 3을 참조하여 설명한 바와 같이 타겟 전력 값(TPW) 및 시간(t)에 따라 변화하는 측정 전력 값(MPW(t))의 차이에 기초하여 측정 전력 값(MPW(t))이 타겟 전력 값(TPW)에 수렴하도록 하나의 가변 성능 제어 값을 발생할 수 있다.
제2 PID 컨트롤러(133)는 타겟 온도 값(TT) 및 시간(t)에 따라 변화하는 측정 온도 값(MT(t))의 차이에 기초하여 측정 온도 값(MT(t))이 타겟 온도 값(TT)에 수렴하도록 다른 하나의 가변 성능 제어 값을 발생할 수 있다.
덧셈기(133)는 제1 PID 컨트롤러(131)로부터 발생되는 하나의 가변 성능 제어 값 및 제2 PID 컨트롤러(132)로부터 발생되는 다른 하나의 가변 성능 제어 값을 합산하여 최종적인 가변 성능 제어 값(PFC(t))을 발생할 수 있다.
도 5를 참조하면, 가변 성능 컨트롤러(140)는 하나의 PID 컨트롤러(141)를 포함하여 구현될 수 있다. PID 컨트롤러(141)의 기본적인 구성 및 동작은 도 3을 참조하여 설명한 바와 같다.
PID 컨트롤러(141)는 타겟 전력 값(TPW)과 타겟 온도 값(TT)의 합에 상응하는 타겟 값(TPW+TT) 및 측정 전력 값(MPW(t))과 측정 온도 값(TT(t))의 합에 상응하는 측정 값(MPW(t)+TT(t))을 수신할 수 있다. PID 컨트롤러(141)는 타겟 값(TPW+TT) 및 측정 값(MPW(t)+TT(t))의 차이에 기초하여 측정 값(MPW(t)+TT(t))이 타겟 값(TPW+TT)에 수렴하도록 가변 성능 제어 값(PFC(t))을 발생할 수 있다.
도 4 및 5를 참조하여 설명한 가변 성능 컨트롤러들(130, 140)을 이용하여, 비우선 컴포넌트는 타겟 전력 값(TPW), 측정 전력 값(MPW(t)), 온도 측정 값(TT(t)) 및 동작 온도의 상한을 나타내는 타겟 온도 값(TT)에 기초하여 가변적인 성능으로 동작할 수 있다. 전력뿐만 아니라 동작 온도를 고려하여 성능을 제어함으로써 멀티-컴포넌트 장치(14)의 동작 안정성을 향상시킬 수 있다.
도 6은 본 발명의 실시예들에 따른 멀티-컴포넌트 장치의 동작 제어 방법을 나타내는 순서도이다.
도 1 내지 6을 참조하면, 호스트 장치(12)와 연결되는 파워 레일(16)을 통하여 복수의 컴포넌트들(20, 30, 40)에 전력을 공급할 수 있다(S100).
파워 레일(16)에 연결된 파워 센서(50)를 이용하여, 복수의 컴포넌트들(20, 30, 40)이 소모하는 총 전력을 측정하여 상기 총 전력을 나타내는 측정 전력 값(MPW)을 발생할 수 있다(S200).
글로벌 컨트롤러(60)를 이용하여, 호스트 장치(12)로부터 제공되는 전력 제어 정보(CFINF)에 기초하여 우선 모드에서 복수의 컴포넌트들(20, 30, 40) 중에서 적어도 하나의 컴포넌트를 고정된 성능으로 동작하는 우선 컴포넌트로 결정하고 상기 우선 컴포넌트를 제외한 나머지 컴포넌트들을 가변적인 성능으로 동작하는 비우선 컴포넌트로 결정할 수 있다(S300).
도 7은 도 6의 동작 제어 방법에 따른 멀티-컴포넌트 장치의 동작 모드들을 나타내는 도면이다.
도 7을 참조하면, 본 발명의 실시예들에 따른 멀티-컴포넌트 장치의 동작 모드는 우선 모드(priority mode)(PRMD) 및 비우선 모드(non-priority mode)(ATMD)를 포함할 수 있다. 비우선 모드(ATMD)는 올-쓰로틀링 모드(all-throttling mode)라 칭할 수도 있다.
우선 모드(PRMD)는 도 1의 제1 컴포넌트(20)가 우선 컴포넌트로 결정되는 제1 우선 모드(PRMD1), 도 1의 제2 컴포넌트(30)가 우선 컴포넌트로 결정되는 제2 우선 모드(PRMD2) 및 도 1의 제3 컴포넌트(40)가 우선 컴포넌트로 결정되는 제3 우선 모드(PRMD3)를 포함할 수 있다.
제1 우선 모드(PRMD1)에서는, 도 1의 글로벌 컨트롤러(60)는 제1 성능 컨트롤러(21)의 제1 고정 성능 컨트롤러(FPC1)를 인에이블시키고, 제2 및 제3 성능 컨트롤러들(31, 41)의 제2 및 제3 가변 성능 컨트롤러들(VPC2, VPC3)을 인에이블시킬 수 있다. 제1 고정 성능 컨트롤러(FPC1)는 타겟 성능 값(TPF)에 기초하여 제1 고정 성능 제어 값(PFC1_C)을 발생하고, 제2 및 제3 가변 성능 컨트롤러들(VPC2, VPC3)은 타겟 전력 값(TPW) 및 측정 전력 값(MPW)에 기초하여 제2 및 제3 가변 성능 제어 값들(PFC2(t), PFC3(t))의 각각을 발생할 수 있다.
제2 우선 모드(PRMD2)에서는, 도 1의 글로벌 컨트롤러(60)는 제2 성능 컨트롤러(31)의 제2 고정 성능 컨트롤러(FPC2)를 인에이블시키고, 제1 및 제3 성능 컨트롤러들(21, 41)의 제1 및 제3 가변 성능 컨트롤러들(VPC1, VPC3)을 인에이블시킬 수 있다. 제2 고정 성능 컨트롤러(FPC2)는 타겟 성능 값(TPF)에 기초하여 제2 고정 성능 제어 값(PFC2_C)을 발생하고, 제1 및 제3 가변 성능 컨트롤러들(VPC1, VPC3)은 타겟 전력 값(TPW) 및 측정 전력 값(MPW)에 기초하여 제1 및 제3 가변 성능 제어 값들(PFC1(t), PFC3(t))의 각각을 발생할 수 있다.
제3 우선 모드(PRMD3)에서는, 도 1의 글로벌 컨트롤러(60)는 제3 성능 컨트롤러(41)의 제3 고정 성능 컨트롤러(FPC3)를 인에이블시키고, 제1 및 제2 성능 컨트롤러들(21, 31)의 제1 및 제2 가변 성능 컨트롤러들(VPC1, VPC2)을 인에이블시킬 수 있다. 제3 고정 성능 컨트롤러(FPC3)는 타겟 성능 값(TPF)에 기초하여 제3 고정 성능 제어 값(PFC2_3)을 발생하고, 제1 및 제2 가변 성능 컨트롤러들(VPC1, VPC2)은 타겟 전력 값(TPW) 및 측정 전력 값(MPW)에 기초하여 제1 및 제2 가변 성능 제어 값들(PFC1(t), PFC2(t))의 각각을 발생할 수 있다.
비우선 모드(ATMD)에서는, 제1, 제2 및 제3 컴포넌트들(20, 30, 40)이 모두 비우선 컴포넌트로 결정될 수 있다. 비우선 모드(ATMD)에서는, 도 1의 글로벌 컨트롤러(60)는 제1, 제2 및 제3 성능 컨트롤러들(21, 31, 41)의 제1, 제2 및 제3 가변 성능 컨트롤러들(VPC1, VPC2, VPC3)을 인에이블시키고, 제1, 제2 및 제3 고정 성능 컨트롤러들(FPC1, FPC2, FPC3)을 디스에이블시킬 수 있다. 제1, 제2 및 제3 가변 성능 컨트롤러들(VPC1, VPC2, VPC3)은 타겟 전력 값(TPW) 및 측정 전력 값(MPW)에 기초하여 제1, 제2 및 제3 가변 성능 제어 값들(PFC1(t), PFC2(t), PFC3(t))의 각각을 발생할 수 있다.
이와 같이, 우선 모드(PRMD)에서는 하나의 컴포넌트만이 고정된 성능으로 동작하고, 나머지 컴포넌트들은 타겟 전력 값(TPW) 및 측정 전력 값(MPW)에 기초하여 멀티-컴포넌트 장치(14)의 총 전력이 전력 상한을 넘지 않도록 가변적인 성능으로 동작할 수 있다. 한편, 비우선 모드(ATMD)에서는 모든 컴포넌트들이 타겟 전력 값(TPW) 및 측정 전력 값(MPW)에 기초하여 상기 총 전력이 상기 전력 상한을 넘지 않도록 각각 가변적인 성능으로 동작할 수 있다.
이와 같이, 본 발명의 실시예들에 따른 멀티-컴포넌트 장치 및 동작 제어 방법은, 적어도 하나의 컴포넌트를 고정된 성능을 갖는 우선 컴포넌트로 동작하도록 제어하고 나머지 컴포넌트를 가변되는 성능을 갖는 비우선 컴포넌트로 동작하도록 제어하는 우선 모드를 통하여 각 컴포넌트의 전력 예측 없이 전력 제한을 준수함과 동시에 효율적으로 복수의 컴포넌트들 사이의 성능 밸런스를 구현할 수 있다.
도 8은 본 발명의 실시예들에 따른 멀티-컴포넌트 장치에 포함되는 성능 컨트롤러에서 발생되는 성능 제어 값에 상응하는 성능 인자들의 실시예들을 나타내는 도면이다.
도 8을 참조하면, 성능 컨트롤러(150)에서 발생되는 성능 제어 값(PFC)에 기초하여 다양한 성능 인자들이 조절될 수 있다. 상기 성능 인자들은 컴포넌트의 동작 주파수(Fo), 입출력 대역폭(IOD), 호스트 장치로부터 제공되어 리퀘스트 큐에 저장되는 리퀘스트들의 최대 개수를 나타내는 큐 깊이(queue depth)(QDP), 컴포넌트가 메모리인 경우 동시에 활성화될 수 있는 메모리 플레인의 최대 개수(NPL) 등을 포함할 수 있다.
도 9 및 10은 본 발명의 실시예들에 따른 멀티-컴포넌트 장치에 포함되는 성능 컨트롤러에서 발생되는 고정 성능 제어 값의 실시예들을 나타내는 도면이다.
도 9를 참조하면, 고정 성능 제어 값(PFC_C)은 시간에 따른 다양한 프로필을 가질 수 있다. 제1 경우(CS1)는 고정 성능 제어 값(PFC_C)이 계속하여 일정한 값을 유지하는 것을 나타내고, 제2 경우(CS2)는 고정 성능 제어 값(PFC_C)이 일정한 시간이 경과한 후에 가변되는 것을 나타내고, 제3 경우(CS3)는 온-오프(on-off) 방식으로 스위칭되는 것을 나타낸다. 이러한 고정 성능 제어 값(PFC_C)의 프로필은 우선 컴포넌트가 수행하는 태스크의 유형 등에 따라 결정될 수 있다. 실시예에 따라서, 호스트 장치는 복잡한 트레이닝이 필요한 경우 딥 러닝(deep learning)을 수행하여 고정 성능 제어 값(PFC_C)의 적절한 프로필을 결정할 수 있다.
도 10을 참조하면, 고정 성능 제어 값은 제1 경우(CS1)와 같이 상한 값(FPC_CH) 및 하한 값(PFC_CL)의 형태로 제공될 수도 있고, 제2 경우(CS2)와 같이 단일한 값(PFC_C)으로 제공될 수도 있다. 제1 경우(CS1)에는 우선 컴포넌트는 상한 값(FPC_CH) 및 하한 값(PFC_CL) 사이에서 성능이 가변되도록 쓰로틀링 동작을 수행할 수 있다. 제2 경우(CS2)에는 우선 컴포넌트의 성능이 일정하게 고정될 수 있다.
도 11은 본 발명의 실시예들에 따른 스토리지 장치를 포함하는 시스템을 나타내는 블록도이다.
도 11의 컴퓨팅 시스템(1000)은 데스크톱 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨터, 스마트 폰, 웨어러블 장치, 서버, 전기 자동차, 가전기기 등과 같은 장치들 중 하나일 수 있다.
도 11을 참조하면, 컴퓨팅 시스템(1000)은 호스트 장치(1100) 및 스토리지 장치(1200)를 포함할 수 있다.
호스트 장치(1100)는 컴퓨팅 시스템(1000)의 전반적인 동작들을 제어하기 위해 다양한 산술/논리 연산을 처리할 수 있다. 호스트 장치(1100)는 중앙 처리 장치(1110, CPU), 그래픽 처리 장치(1130, GPU), 호스트 메모리(1150), 네트워크 인터페이스 카드(1170, NIC), 그리고 시스템 버스(1190)를 포함할 수 있다. 또는, 호스트 장치(1100)는 범용 CPU(General-purpose Central Processing Unit), 전용 ASIC(Dedicated Application Specific Integrated Circuit), AP(Application Processor) 등과 같이 하나 이상의 프로세서 코어를 포함하는 장치일 수 있다.
중앙 처리 장치(1110)는 호스트 메모리(1150)에 로드된 다양한 소프트웨어(응용 프로그램, 운영 체제, 장치 드라이버)를 실행한다. 중앙 처리 장치(1110)는 운영 체제(OS), 응용 프로그램들(Application Program)을 실행할 수 있다. 중앙 처리 장치(1110)는 동종 멀티-코어 프로세서(Homogeneous Multi-Core Processor) 또는 이종 멀티-코어 프로세서(Heterogeneous Multi-Core Processor)로 제공될 수도 있을 것이다. 특히, 중앙 처리 장치(1110)는 스토리지 장치(1200)에 데이터 압축, 암호화, 데이터 프로세싱과 같은 데이터 집약적 워크 로드(Data intensive work load) 처리를 요청할 수 있다.
그래픽 처리 유닛(1130)은 중앙 처리 유닛(1110)의 요청에 따라 다양한 그래픽 연산을 수행한다. 즉, 그래픽 처리 유닛(1130)은 처리 요청된 데이터를 디스플레이에 적합한 데이터로 변환할 수 있다. 그래픽 처리 유닛(1130)에 의해서도 스토리지 장치(1200)로의 스트리밍 접근 요청이 발생할 수 있다. 그래픽 처리 유닛(1130)은 유사한 연산을 반복해서 처리하는 병렬 처리에 유리한 연산 구조를 가진다. 따라서, 최근에는 그래픽 처리 유닛(1130)은 그래픽 연산뿐만 아니라 고속의 병렬 처리를 요구하는 다양한 연산에 사용될 수 있는 구조로 개발되고 있다. 예를 들면, 그래픽 처리 작업 이외의 범용 작업을 하는 그래픽 처리 유닛(1130)을 GPGPU(General Purpose computing on Graphics Processing Units)라고 한다. GPGPU를 통해서 동영상 인코딩 외에도 분자 구조 분석, 암호 해독, 기상 변화 예측 등의 분야에 주로 사용할 수 있다.
호스트 메모리(1150)는 컴퓨팅 시스템(1000)을 동작시키는 데에 이용되는 데이터를 저장할 수 있다. 예로서, 호스트 메모리(1150)는 호스트 장치에 의해 처리된 그리고/또는 처리될 데이터를 저장할 수 있다. 호스트 메모리(1150)는 SRAM(Static Random Access Memory), DRAM(Dynamic RAM), SDRAM(Synchronous DRAM), PRAM(Phase-change RAM), FRAM(Ferro-electric RAM), MRAM(Magneto-resistive RAM), ReRAM(Resistive RAM) 등과 같은 휘발성/불휘발성 메모리 장치를 포함할 수 있다.
네트워크 인터페이스 카드(1170)는 이더넷 스위치(미도시)나 이더넷 페브릭을 컴퓨팅 시스템(1000)과 연결하기 위한 통신 인터페이스이다. 예를 들면, 이더넷 스위치가 유선 랜 네트워크에 대응하는 경우, 네트워크 인터페이스 카드(1170)는 유선 랜카드 등으로 구현될 수 있다. 물론, 이더넷 스위치가 무선 랜인 경우에도 네트워크 인터페이스 카드(1170)는 무선 랜에 대응하는 통신 프로토콜을 처리하는 하드웨어로 구현될 수 있다.
인터페이스 회로(1190)는 호스트(1100)와 스토리지 장치(1200) 사이에서 물리적 연결을 제공한다. 즉, 인터페이스 회로(1190)는 호스트(1100)에서 발행하는 다양한 접근 요청에 대응하는 명령어, 어드레스, 데이터 등을 스토리지 장치(1200)와의 인터페이싱 방식으로 변환한다. 인터페이스 회로(1190)의 프로토콜로는 USB(Universal Serial Bus), SCSI(Small Computer System Interface), PCI express, ATA, PATA(Parallel ATA), SATA(Serial ATA), SAS(Serial Attached SCSI), UFS(Universal Flash Storage) 중 적어도 어느 하나일 수 있다.
스토리지 장치(1200)는 전력이 공급되는지에 관계없이 데이터를 저장할 수 있다. 예로서, 스토리지 장치(1200)는 SSD(Solid State Drive), SD(Secure Digital) 카드, eMMC(Embedded Multimedia Card) 등과 같은 스토리지 매체를 포함할 수 있다. 예시적으로, 본 발명의 스토리지 장치(1200)는 FPGA(1210)와 SSD(1230)를 포함할 수 있다.
FPGA(1210)는 호스트(1100)로부터의 요청에 응답하여 SSD(1230)에 접근할 수 있다. 예를 들면, FPGA(1210)는 호스트(1100)로부터의 데이터 요청에 응답하여 SSD(1230)에 스트리밍 접근 명령어(Streaming Access command: 이하, SA_CMD)를 전달할 수 있다. 스트리밍 접근 명령어(SA_CMD)는 LBA 리스트, 스트림 ID, 청크 사이즈, 우선순위 등의 정보를 포함할 수 있다. 이와 같이, FPGA(1210) 및 SSD(1230)를 포함하는 스트리지 장치(1200)를 스마트 SSD 또는 계산(computational) SSD라 칭할 수 있다.
FPGA(1210)는 스트리밍 접근 명령어(Streaming Access command)에 응답하여 출력되는 스트림 데이터를 스토리지 장치(1200) 내부에서 처리할 수 있다. FPGA(1210)에 의해서 처리된 결과 데이터가 호스트(1100)에 반환될 수 있다. FPGA(1210)에 의한 연산에 의하여, 스토리지 장치(1200)와 호스트(1100) 사이의 스트림 데이터의 교환에 따른 대역폭 저하 문제가 획기적으로 개선될 수 있다.
SSD(1230)는 호스트(1100) 또는 FPGA(1210)로부터 제공되는 요청에 따라 데이터를 저장하거나 출력한다. SSD(1230)는 스트리밍 접근 명령어(스트리밍 읽기 또는 스트리밍 쓰기 명령어)에 응답하여, 스트림 데이터를 요청된 데이터 사이즈 단위로 제공할 수 있다. 예를 들면, SSD(1230)는 요청된 데이터를 버퍼(미도시)에 저장하면, 인-스토리지 컴퓨팅부(1210)의 DMA 엔진(미도시)이 버퍼에 저장된 데이터를 순차적으로 읽어낼 수 있다.
일 실시예에서, 스토리지 장치(1200)는 호스트 장치(1100)를 포함하는 전자 기기에 탈부착 방식으로 연결될 수 있다. 예를 들어, 호스트 장치(1100)는 전자 기기의 메인 보드 상에 장착(mounted)되고, 스토리지 장치(1200)는 전자 기기의 커넥터 등에 부착됨으로써 상기 메인 보드 상의 호스트 장치(1200)와 전기적으로 연결되거나, 상기 커넥터로부터 탈착될 수 있다.
다른 실시예에서, 스토리지 장치(1200)는 호스트 장치(1100)와 함께 전자 기기에 집적되는 내장형 스토리지 장치일 수 있다. 이 경우, 스토리지 장치(1200)는 상기 전자 기기 내부의 시스템 버스를 통하여 상기 호스트 장치(1100)에 전기적으로 연결될 수 있다.
도 12는 도 11의 시스템의 예시적인 구성을 나타내는 블록도이다.
도 12를 참조하면, 호스트 장치(1100)와 스토리지 장치(1200)는 컴퓨팅 시스템(1000)을 구성한다.
호스트 장치(1100)는 중앙 처리 장치(1110), 호스트 메모리(1150), 인터페이스 회로(1190) 그리고 메모리 관리 유닛(1160)을 포함할 수 있다. 여기서, 호스트 장치(1100)에 그래픽 처리 유닛(1130)이나 네트워크 인터페이스 카드(1170)와 같은 구성들이 더 포함될 수 있음은 자명하다. 하지만, 설명의 편의를 위해서 이들 구성들의 기능 설명이나 도시는 생략하기로 한다. 중앙 처리 장치(1110), 호스트 메모리(1150), 그리고 인터페이스 회로(1190)는 도 11의 그것들과 실질적으로 동일하므로 이것들에 대한 설명은 생략하기로 한다.
호스트 장치(1100)는 SSD(1230)의 버퍼(1235)를 호스트 장치(1100)의 가상 메모리 공간(Virtual Memory Space)에 맵핑할 수 있다. 일반적으로, SSD(1230)와 같은 스토리지 장치는 버퍼(1235)를 DMA(Direct Memory Access)를 위한 메모리 공간으로 다른 디바이스에 오픈(Open)하지 않는다. 따라서, 인-스토리지 컴퓨팅부(1210)의 DMA 엔진(1211)에 의해서 자유롭게 접근 가능하도록 호스트 장치(1100)에서 가상 메모리 공간에 등록하여 하나의 맵에서 관리할 수 있다. 이를 위하여, 호스트 장치(1100)는 메모리 관리 유닛(1160)을 포함할 수 있다. 컴퓨팅 시스템(1000)의 부팅이나 초기화 시에, SSD(1230)의 버퍼(1235)의 물리 주소 영역을 가상 메모리 공간(Virtual Memory Space)에 맵핑하여, 스트림 데이터의 전송을 위해 버퍼(1235)를 외부 장치에 공개(Open)할 수 있다. 외부 장치에 의한 가상 메모리 공간으로의 접근은 메모리 관리 유닛(1160)에 의해서 버퍼(1235)로 리다이랙션(Redirection)될 것이다.
스토리지 장치(1200)는 호스트 장치(1100)의 요청에 따라 SSD(1230)로부터 제공된 데이터 또는 호스트(1100)로부터 제공된 데이터를 FPGA(1210)에서 처리한다. 그리고 스토리지 장치(1200)는 FPGA(1210)의 처리 결과를 호스트 장치(1100) 또는 SSD(1230)에 제공할 수 있다. 이를 위해, 스토리지 장치(1200)는 FPGA(1210), SSD(1230), 그리고 호스트 인터페이스(1250)를 포함할 수 있다.
호스트 인터페이스(1250)는 호스트 장치(1100)와의 데이터 교환을 위한 스토리지 장치(1200)의 물리적 통신 채널로서 제공된다. 호스트 인터페이스(1250)는 바람직하게는 SSD(1230), FPGA(1210)의 DMA 기능을 지원하는 인터페이싱 프로토콜을 가질 수 있다. 예를 들면, 호스트 장치(1100)의 메모리 관리 유닛(1160)과 호스트 인터페이스(1250)에 의해서 SSD(1230)의 버퍼(1235)는 가상 메모리 공간에서 관리될 수 있을 것이다.
SSD(1230) 및 FPGA(1210)는 호스트 인터페이스(1250)를 경유하지 않고 내부 버스(1270)에 의해 직접 연결될 수 있다. 예를 들어, 내부 버스(1270)는 양방향 2선 버스로 구현되는 I2C(inter-integrated circuit) 버스일 수 있다.
SSD(1230)는 호스트 장치와 연결되는 파워 레일을 통하여 전력을 공급받고, 데이터를 저장한다. FPGA(1210)는 상기 파워 레일을 통하여 전력을 공급받고, SSD(1230)로부터 독출되는 데이터 또는 SSD(1230)에 저장되는 데이터를 프로세싱한다.
파워 센서(PSEN)는 상기 파워 레일에 연결되고, SSD(1230) 및 FPGA(1210)이 소모하는 총 전력을 측정하여 상기 총 전력을 나타내는 측정 전력 값을 발생한다.
SSD(1230)는 글로벌 컨트롤러(GCON)(510) 및 제1 성능 컨트롤러(520)를 포함할 수 있다. FPGA(1210)는 제2 성능 컨트롤러(420)를 포함할 수 있다.
제1 성능 컨트롤러(520)는 제1 고정 성능 컨트롤러(FPC1) 및 제1 가변 성능 컨트롤러(VPC1)를 포함할 수 있다. 제2 성능 컨트롤러(420)는 제2 고정 성능 컨트롤러(FPC2) 및 제2 가변 성능 컨트롤러(VPC2)를 포함할 수 있다.
글로벌 컨트롤러(GCON)(510)는 호스트 장치(1110)로부터 제공되는 전력 제어 정보에 기초하여 우선 모드에서 SSD(1230) 및 FPGA(1210) 중에서 하나를 고정된 성능으로 동작하는 우선 컴포넌트로 결정하고 다른 하나를 가변적인 성능으로 동작하는 비우선 컴포넌트로 결정한다.
도 12에는 글로벌 컨트롤러(510)가 SSD(1230)의 내부에 구현된 것으로 도시되어 있으나, 본 발명의 실시예들이 이에 한정되는 것은 아니다. 실시예들에 따라서, 글로벌 컨트롤러(510)는 SSD(1230)의 외부에 구현될 수 있다. 예를 들어, 글로벌 컨트롤러(510)는 호스트 인터페이스(1250) 내부에 구현되거나 FPGA(1210)에 포함될 수 있다. 실시예에 따라서, 글로벌 컨트롤러(510)는 호스트 장치(1100)에 포함될 수도 있다.
도 12에는 도시의 편의상 본 발명의 실시예들을 설명하기 위한 구성 요소들만을 도시하였으나, 스토리지 장치(1200)는 다양한 구성 요소들을 더 포함할 수 있다. 예를 들어, 스토리지 장치(1200)는 스토리지 장치(1200)의 전반적인 전력을 제어하는 전력 관리 집적 회로(PMIC, power management integrated circuit), 스토리지 장치(1200)의 동작 클록 신호의 주파수를 제어하는 클록 발생기, 스토리지 장치(1200)의 동작 전압을 제어하는 전압 레귤레이터 등을 더 포함할 수 있다. 스토리지 장치(1200)의 전력 및/또는 성능의 제어를 위해, 제1 성능 컨트롤러(520)로부터 제공되는 제1 성능 제어 값(PFC1) 및 제2 성능 컨트롤러(420)로부터 제공되는 제2 성능 제어 값(PFC2)은 상기 PMIC, 상기 클록 발생기 및 상기 전압 레귤레이터 중 적어도 하나에 제공될 수 있다.
도 13은 본 발명의 실시예들에 따른 스토리지 장치에 포함되는 솔리드 스테이트 드라이브(SSD)의 일 실시예를 나타내는 블록도이다.
도 13을 참조하면, SSD(1230)는 SSD 컨트롤러(1231), 불휘발성 메모리 장치(1233), 그리고 버퍼(1235)를 포함할 수 있다.
SSD 컨트롤러(1231)는 외부 장치와 SSD(1230) 사이에서 인터페이싱을 제공한다. SSD 컨트롤러(1231)는 외부로부터 제공되는 스트리밍 접근 명령어(SA_CMD)에 포함되는 스트림 ID, LBA 리스트(LBA List), 청크 사이즈(CS)를 참조하여 불휘발성 메모리 장치(1233)에 접근할 수 있다. 예를 들면, 스트리밍 접근 명령어(SA_CMD)가 읽기 명령어에 대응하는 경우, SSD 컨트롤러(1231)는 LBA 리스트(LBA List)에 대응하는 데이터를 청크 사이즈(CS) 단위로 불휘발성 메모리 장치(1233)로부터 프리패치하여 버퍼(1235)에 로드한다. 반면, 스트리밍 접근 명령어가 쓰기 명령어에 대응하는 경우, SSD 컨트롤러(1231)는 외부에서 버퍼(1235)에 청크 사이즈(CS) 단위로 로드되는 쓰기 데이터를 불휘발성 메모리 장치(1233)에 프로그램할 수 있다. 실시예에 따라서, SSD 컨트롤러(1231)는 제1 측정 온도 값(MT1)을 발생하는 제1 온도 센서(TS1)를 더 포함할 수 있다.
글로벌 컨트롤러(510)는 전력 제어 정보(PCINF)에 기초하여 SSD(1230)의 제1 성능 컨트롤러(520) 및 FPGA(1210)의 제2 성능 컨트롤러(420)를 각각 제어하기 위한 제1 및 제2 제어 신호들(CTRL1, CTRL2)을 발생할 수 있다.
호스트 장치(1100)로부터 제공되는 전력 제어 정보(PCINF)는 스토리지 장치(1200)의 전력 상한을 나타내는 타겟 전력 값(TPW), 상기 우선 컴포넌트를 나타내는 우선 컴포넌트 정보(PDEV) 및 상기 우선 컴포넌트의 고정된 성능을 나타내는 타겟 성능 값(TPF)을 포함할 수 있다. 일 실시예에서, 전력 제어 정보(PCINF)는 호스트 장치(1100)에서 스토리지 장치(1230)로 제공되는 코맨드(CMD)에 기초하여 제공될 수 있다. 전력 제어 정보(PCINF)는 코맨드(CMD)에 포함되어 제공될 수도 있고, 코맨드(CMD)가 코맨드-어드레스를 통하여 전송될 때 데이터 버스를 통하여 제공될 수도 있다. 다른 실시예에서, 전력 제어 정보(PCINF)는 코맨드-어드레스 버스 및 데이터 버스와 구별되는 별도의 컨트롤 라인들을 통하여 제공될 수도 있다.
도 14는 도 13의 SSD에 포함되는 SSD 컨트롤러의 일 실시예를 나타내는 블록도이다.
도 14를 참조하면, SSD 컨트롤러(1231)는 프로세서(1241), 하드웨어(HW)(1242), 워킹 메모리(1243), 호스트 인터페이스(1245), 버퍼 매니저(1247) 및 플래시 인터페이스(1249)를 포함한다. 실시예들에 따라서, 도 13의 글로벌 컨트롤러(510) 및 제1 성능 컨트롤러(520)는 펌웨어(FW)(1244) 또는 하드웨어(1242)로 구현될 수 있다.
한편, 도면에 도시하지는 않았으나, SSD 컨트롤러(1231)는 스토리지 장치(1200)의 전반적인 전력을 제어하는 PMIC를 더 포함할 수 있다. 이 경우, 도 12의 FPGA(1210) 내부에서 발생되는 제2 성능 제어 값(PFC2)는 내부 버스(1270)를 통하여 SSD 컨트롤러(1231)의 PMIC에 제공될 수 있다.
프로세서(1241)는 워킹 메모리(1243)에 펌웨어(1244)를 실행한다. 펌웨어(1244)의 실행에 따라, 프로세서(1241)는 읽기/쓰기 동작에 필요한 다양한 제어 정보를 호스트 인터페이스(1245) 및 플래시 인터페이스(1249)의 레지스터들에 전달한다. 예를 들면, 외부로부터 스트리밍 접근 명령어(SA_CMD)가 입력되면, 호스트 인터페이스(1245)의 명령어 레지스터(미도시)에 스트리밍 접근 명령어(SA_CMD)가 저장된다. 호스트 인터페이스(1245)는 저장된 명령에 따라 프로세서(1241)에 읽기/쓰기 명령이 입력되었음을 알려준다. 프로세서(1241)는 호스트 인터페이스(125)에 전달된 스트리밍 접근 명령어(SA_CMD)를 파싱(Parsing)하여 버퍼 매니저(1247) 및 플래시 인터페이스(1249)를 제어할 것이다.
워킹 메모리(1243)는 SSD 컨트롤러(1231)를 구동하는데 이용되는 데이터를 저장할 수 있다. 예로서, 워킹 메모리(1243)는 SSD 컨트롤러(1231)에 의해 수행될 다양한 펌웨어들이 로드될 수 있다. 예를 들면, 프로세서(1241)에 의해서 수행될 플래시 변환 계층(FTL)이나 본 발명의 글로벌 컨트롤러(510) 및 제1 성능 컨트롤러(520)와 같은 펌웨어 이미지가 워킹 메모리(1243)에 로드되고, 프로세서(1241)에 의해서 실행될 수 있다.
호스트 인터페이스(1245)는 호스트(1100) 또는 외부 장치와 SSD(1230)와의 물리적 연결을 제공한다. 즉, 호스트 인터페이스(1245)는 호스트(1100)의 버스 포맷(Bus format)에 대응하여 SSD(1230)와의 인터페이싱을 제공한다. 호스트(1100)의 버스 포맷은 USB(Universal Serial Bus), SCSI(Small Computer System Interface), PCI express, ATA, PATA(Parallel ATA), SATA(Serial ATA), SAS(Serial Attached SCSI), NVMe, NVMe-oF 중 적어도 하나로 구성될 수 있다.
플래시 인터페이스(1249)는 불휘발성 메모리 장치(1233)와 데이터를 교환한다. 플래시 인터페이스(1249)는 버퍼(1235)로부터 전달되는 데이터를 불휘발성 메모리 장치(1233)에 기입한다. 그리고 플래시 인터페이스(1249)는 불휘발성 메모리 장치(1233)로부터 독출된 데이터를 버퍼(1235)에 전달할 수 있다.
도 15는 본 발명의 실시예들에 따른 스토리지 장치에 포함되는 필드 프로그래머블 게이트 어레이(FPGA)의 일 실시예를 나타내는 블록도이다.
도 15를 참조하면, FPGA(1210)는 제2 성능 컨트롤러(420) 및 처리부(440)를 포함할 수 있다.
제2 성능 컨트롤러(420)는 글로벌 컨트롤러(510)로부터 제공되는 제어 신호(CTRL2) 및 파워 센서(1251)로부터 제공되는 측정 전력 값(MPW)에 기초하여 처리부(440)의 성능 및 전력을 제어하기 위한 제2 성능 제어 값(PFC2)을 발생할 수 있다. 도 15에는 도시의 편의상 제2 성능 제어 값(PFC2)이 처리부(440)로 제공되는 것으로 도시하였으나, 본 발명의 실시예들이 이에 한정되는 것은 아니다. 전술한 바와 같이, 제2 성능 제어 값(PFC2) 스토리지 장치의 전반적인 전력을 제어하는 PMIC에 제공될 수 있다. 실시예에 따라서, FPGA(1210)는 제2 측정 온도 값(MT2)을 발생하는 제2 온도 센서(TS2)를 더 포함할 수 있다.
처리부(440)는 다양한 기능을 수행하도록 구현될 수 있다. 예를 들어, 처리부(440)는 데이터의 인코딩 및 디코딩을 수행하는 에러 정정 코드 엔진(ECC), 데이터의 암호화 및 복호화를 수행하는 보안 회로(SCR), 데이터의 랜더마이징을 수행하는 랜더마이저(RND), 데이터의 연산을 수행하는 산술 로직 유닛(ALU) 등을 포함할 수 있다.
도 16은 본 발명의 실시예들에 따른 스토리지 장치의 동작 모드 전환의 일 실시예를 나타내는 도면이다.
도 16을 참조하면, 본 발명의 실시예들에 따른 스토리지 장치에 포함되는 글로벌 컨트롤러는 우선 모드(PRMD)에서 전력 제어가 불가능한 탈제어 상태(out of control)라고 판단한 경우 동작 모드를 우선 모드(PRMD)에서 비우선 모드(ATMD)로 전환할 수 있다. 반면에, 글로벌 컨트롤러는 비우선 모드(ATMD)에서 전력 제어가 가능한 제어내 상태(in control)라고 판단한 경우 동작 모드를 비우선 모드(ATMD)에서 우선 모드(PRMD)로 전환할 수 있다. 도 17에는 이러한 동작 모드 전환의 일 실시예가 도시되어 있다.
도 17은 본 발명의 실시예들에 따른 스토리지 장치의 동작 모드 전환 방법의 일 실시예를 나타내는 순서도이고, 도 18은 도 17의 동작 제어 방법에 따른 스토리지 장치의 동작 모드들을 나타내는 도면이다.
도 17 및 18을 참조하면, 글로벌 컨트롤러는 호스트 장치로부터 제공되는 전력 제어 정보(PCINF)에 기초하여 패러미터들을 설정할 수 있다(S10). 상기 패러미터들은 전술한 바와 같은 타겟 전력 값(TPW), 우선 컴포넌트 정보(PDEV) 및 타겟 성능 값(TPF)을 포함할 수 있다.
글로벌 컨트롤러는 FPGA가 우선 컴포넌트에 해당하고 SSD가 비우선 컴포넌트에 해당하는 제2 우선 모드라고 판단한 경우(S11: YES), 제1 가변 성능 컨트롤러(VPC1) 및 제2 고정 성능 컨트롤러(FPC2)를 인에이블시키고 제1 고정 성능 컨트롤러(FPC1) 및 제2 가변 성능 컨트롤러(VPC2)를 디스에이블시킬 수 있다(S13, S14). 이때, SSD는 제1 가변 성능 제어 값(PFC1(t)에 기초하여 가변적인 성능으로 동작하고, FPGA는 제2 고정 성능 제어 값(PFC2_C)에 기초하여 고정된 성능으로 동작할 수 있다.
글로벌 컨트롤러는 SSD가 우선 컴포넌트에 해당하고 FPGA가 상기 비우선 컴포넌트에 해당하는 제1 우선 모드라고 판단한 경우(S12: YES), 제1 고정 성능 컨트롤러(VPC1) 및 제2 가변 성능 컨트롤러(VPC2)를 인에이블시키고 제1 가변 성능 컨트롤러(VPC1) 및 제2 고정 성능 컨트롤러(FPC2)를 디스에이블시킬 수 있다(S15, S16). 이때, SSD는 제1 고정 성능 제어 값(PFC1_C)에 기초하여 고정된 성능으로 동작하고, FPGA는 제2 가변 성능 제어 값((PFC2(t))에 기초하여 가변적인 성능으로 동작할 수 있다.
글로벌 컨트롤러는 SSD 및 FPGA가 모두 상기 비우선 컴포넌트에 해당하는 비우선 우선 모드라고 판단한 경우(S12: NO), 제1 가변 성능 컨트롤러(VPC1) 및 제2 가변 성능 컨트롤러(VPC2)를 인에이블시키고 제1 고정 성능 컨트롤러(FPC1) 및 제2 고정 성능 컨트롤러(FPC2)를 디스에이블시킬 수 있다(S19, S20). 이때, SSD는 제1 가변 성능 제어 값(PFC1(t))에 기초하여 가변적인 성능으로 동작하고, FPGA는 제2 가변 성능 제어 값(PFC2(t))에 기초하여 가변적인 성능으로 동작할 수 있다. 글로벌 컨트롤러는 일정한 시간 동안 대기한 후(S21) 전술한 단계들을 반복할 수 있다.
글로벌 컨트롤러는 도 20을 참조하여 후술하는 바와 같이, 시간 윈도우 동안의 상기 총 전력의 평균을 나타내는 평균 전력 값(APW)을 발생할 수 있다. 글로벌 컨트롤러는 우선 모드에서 평균 전력 값(APW) 및 타겟 전력 값(TPW)의 차이가 임계 값(TH)보다 작은 경우(S17: YES) 일정한 시간 동안 대기한 후(S18) 전술한 단계들을 반복할 수 있다. 즉 우선 모드를 유지할 수 있다. 글로벌 컨트롤러는 우선 모드에서 평균 전력 값(APW) 및 타겟 전력 값(TPW)의 차이가 임계 값(TH) 이상인 경우(S17: NO), 동작 모드를 우선 모드에서 비우선 모드로 전환할 수 있다. 즉 단계 S19 및 20을 수행할 수 있다.
도 19는 본 발명의 실시예들에 따른 스토리지 장치의 동작 모드 전환의 일 실시예를 나타내는 도면이다.
도 19를 참조하면, 본 발명의 실시예들에 따른 스토리지 장치에 포함되는 글로벌 컨트롤러는 우선 모드(PRMD)에서 전력 제어가 불가능한 탈제어 상태(out of control)라고 판단한 경우 동작 모드를 우선 모드(PRMD)에서 어댑티브 모드(ADMD)로 전환할 수 있다. 반면에, 글로벌 컨트롤러는 어댑티브 모드(ADMD)에서 전력 제어가 가능한 제어내 상태(in control)라고 판단한 경우 동작 모드를 어탭티브 모드(ADMD)에서 우선 모드(PRMD)로 전환할 수 있다.
글로벌 컨트롤러는 어댑티브 모드(ADMD)에서 탈범위 상태(out of control)라고 판단한 경우 동작 모드를 어댑티브 모드(ADMD)에서 비우선 모드(ATMD)로 전환할 수 있다. 글로벌 컨트롤러는 비우선 모드(ATMD)에서 전력 제어가 가능한 제어내 상태(in control)라고 판단한 경우 동작 모드를 비우선 모드(ATMD)에서 우선 모드(PRMD)로 전환할 수 있다. 도 20 및 21에는 이러한 동작 모드 전환의 일 실시예가 도시되어 있다.
도 20은 본 발명의 실시예들에 따른 스토리지 장치에 포함되는 글로벌 컨트롤러의 일 실시예를 나타내는 블록도이고, 도 21은 본 발명의 실시예들에 따른 스토리지 장치의 동작 모드 전환 방법의 일 실시예를 나타내는 순서도이다.
도 20을 참조하면, 글로벌 컨트롤러(160)는 평균 전력 계산부(APC)(161), 비교부(COM)(162) 및 제어 로직(CLOG)(163)을 포함할 수 있다.
평균 전력 계산부(161)는 측정 전력 값(MPW)에 기초하여 평균 전력 값(APW)을 발생할 수 있다. 평균 전력 값(APW)은 후술하는 시간 윈도우(WIN) 동안의 스토리지 장치의 총 전력의 평균을 나타낼 수 있다.
비교부(162)는 평균 전력 값(APW), 타겟 전력 값(TPW) 및 임계 값(TH)에 기초하여 평균 전력 값(APW) 및 타겟 전력 값(TPW)의 차이가 임계 값(TH)보다 작은지 여부를 나타내는 비교 신호(CMP)를 발생할 수 있다. 제어 로직(163)은 비교 신호(CMP), 우선 컴포넌트 정보(PDEV) 및 타겟 성능 값(TPF)에 기초하여 제어 신호들(CTRL1, CTRL2)을 발생할 수 있다.
도 21에는 어댑티브 모드(ADMD)에서의 글로벌 컨트롤러의 모드 전환 방법이 도시되어 있다. 도 21을 참조하면, 글로벌 컨트롤러는 시간 윈도우(WIN) 및 전력 조절 주기(TADJ)와 같은 패러미터들을 설정할 수 있다(S31).
글로벌 컨트롤러는 도 20을 참조하여 설명한 바와 같이 평균 전력 값(APW)을 측정할 수 있다.
글로벌 컨트롤러는 평균 전력 값(APW)이 타겟 전력 값(TPW)보다 큰 경우(S33: YES), 타겟 전력 값(TPW)을 감소할 수 있다(S35). 글로벌 컨트롤러는 평균 전력 값(APW)이 타겟 전력 값(TPW) 이하인 경우(S33: NO), 제어내 상태(IN CONTROL)라고 판단하고(S34) 우선 모드(PRMD)로 전환할 수 있다.
이후 타겟 전력 값(TPW)이 임계 값(LM)보다 작은 경우(S36:YES) 탈범위 상태(OUT OF RANGE)라고 판단하고(S37) 비우선 모드(ATMD)로 전환할 수 있다.
도 22a 내지 22d는 본 발명의 실시예들에 따른 스토리지 장치의 시간 윈도우의 설정의 실시예들을 나타내는 타이밍도들이다. 시간 윈도우는 도 20 및 21을 참조하여 설명한 바와 같이 모드 전환을 판단하기 위한 평균 전력 값을 측정하기 위한 시간을 나타낸다.
도 22a 내지 22d에서 가로축은 시간을 초(second) 단위로 나타내고, 세로축은 FPGA의 동작 주파수(Fo)를 MHz(Mega Hertz) 단위로 나타내고, SSD의 입출력 대역폭(IOB)을 10MB/s)(Megabytes per second) 단위로 나타내고, 스토리지 장치의 평균 전력 값(APW) 및 타겟 전력 값(TPW)을 W(Watt) 단위로 나타낸다.
도 22a는 30초의 폭을 갖는 고정 윈도우의 경우를 나타내고, 도 22b는 5초의 폭을 갖는 고정 윈도우의 경우를 나타내다. 도 22a 및 22b를 참조하면, 고정 윈도우의 경우에는 동작 제어가 비교적 용이하지만 평균 전력 값(APW)이 다소 높아지는 경향이 있다. 고정 윈도우의 폭을 감소할수록 피크 전력이 다소 낮게 유지될 수 있지만 SSD와 FPGA의 성능 레벨들의 일관되지 않는(not consistent) 경향이 있다.
도 22c는 30초의 폭을 갖는 가변 윈도우의 경우를 나타내고, 도 22d는 5초의 폭을 갖는 가변 윈도우의 경우를 나타내다. 도 22c 및 22d를 참조하면, 가변 윈도우의 경우에는 최근의 윈도우 폭에 상응하는 평균 전력을 측정하기 때문에 고정 윈도우의 경우보다 피크 전력을 감소시킬 수 있다. 가변 윈도우의 폭을 감소할수록 피크 전력을 감소할 수 있지만 성능 변동이 증가되는 경향이 있다.
이와 같은, 고정 윈도우, 가변 윈도우 및 윈도우 폭을 적절한 값으로 설정함으로써 스토리지 장치의 성능 및 안정성을 최적화할 수 있다.
도 23a 내지 23e는 본 발명의 실시예들에 따른 스토리지 장치의 구동 방법의 결과들을 나타내는 타이밍도들이다.
도 23a 내지 23e는 SSD 우선 모드에서 타겟 전력 값(TPF)을 20%, 40%, 60%, 80%, 100%로 설정한 경우들을 각각 나타낸다.
도 23a, 23b 및 23c의 경우, 3150MB/s의 최대 성능에 대한 20%, 40%, 60%에 해당하는 654.3MB/s, 1268.8MB/s, 1882.3MB/s의 입출력 대역폭(IOD), 즉 타겟 성능 값에 고정되면서 평균 전력 값(APW)이 타겟 전력 값(TPW)인 24.8W 내에서 유지됨을 알 수 있다. 또한, SSD의 타겟 성능 값이 증가할수록 FPGA의 동작 주파수(Fo)가 감소함을 알 수 있다.
도 23d 및 23e의 경우, FPGA의 동작 주파수(Fo)가 최소 레벨로 유지됨을 알 수 있다. 도 23d의 경우에는 평균 전력 값(APW)이 타겟 전력 값(TPW)을 다소 초과하지만 이는 임계 전력 값을 평균 전력 값(APW)보다 약 1W 높게 설정하여 글로벌 컨트롤러가 탈제어 상태(out of control)로 판단하지 않기 때문이다. 최대 입출력 대역폭인 3150MB/s를 타겟 성능 값으로 한 도 23e의 경우에는 최초 10초 정도 타겟 성능 값이 유지되다가 이후 약 2350MB/s으로 감소됨을 알 수 있다. 이는, FPGA가 최소 성능으로 동작하더라도 SSD의 타겟 성능 값이 너무 높게 설정되었기 때문이다.
도 23a 내지 23e에 도시된 바와 같이, 본 발명의 실시예들에 따른 스토리지 장치의 제어 방법을 통하여 타겟 전략 값을 준수하면서 효율적으로 SSD 및 FPGA 사이의 성능 밸런스를 구현할 수 있다.
도 24 및 25는 본 발명의 실시예들에 따른 스토리지 장치를 나타내는 평면도 및 단면도이다.
도 24의 스토리지 장치(3000)는 적어도 하나의 SSD(3102), FPGA PCB(printed circuit board) (3104), M.2와 같은 적어도 2개의 표준 SSD 커넥터들(3106, 3108), 및 적어도 하나의 U.2 커넥터(3110)를 포함할 수 있다. 적어도 2개의 M.2 커넥터들(3106, 3108)은 하나 이상의 SSD들 (예를 들어, 3102)을 FPGA PCB(3104)에 연결하기 위한 수직 또는 90도 커넥터들일 수 있다. 수직 M.2 커넥터들(3106, 3108)은 FPGA PCB(3104)의 제1 면 (예를 들어, 도 24의 상면) (3112)에 대하여 수직이다. 적어도 하나의 SSD(3102)는 2.5인치 스토리지 폼 팩터, 신규 폼 팩터 1(NF1) SSD 등일 수 있다. 적어도 하나의 SSD(3102)는 수직 M.2 커넥터(3106)를 경유하여 FPGA PCB(3104)의 제1 면(3112)에서 FPGA PCB(3104)에 연결될 수 있다.
예를 들어, SSD는 또한 수직 M.2 커넥터(3108)를 경유하여 FPGA PCB(3104)의 제1 면(3112)에서 연결될 수 있다. 스토리지 장치(3000)는, U.2 커넥터(3110)를 경유하여, 복수의 SAS 포트들 (예를 들어, SAS0 및 SAS1)을 지원할 수 있고, 4개의 PCIe X4 레인들까지 지원할 수 있다. 2개의 SAS 포트들(SAS0 및 SAS1)은 스토리지 장치(3000)에 의하여 이더넷 포트들로 사용될 수 있다.
예를 들어, 도 25에 도시된 FPGA는 적어도 하나의 SSD(3102)가 수직 M.2 커넥터(3106)를 경유하여 연결되는 FPGA PCB(3104)의 제1 면(3112)과 마주하는 제2 면에서 FPGA PCB(3104)에 연결될 수 있다. 하나의 구성에서, 스토리지 장치(3000)가 하우징 케이스에 배치되는 경우, 하나 이상의 TIM(thermal interface material) 레이어들이 케이스 및 스토리지 장치(3000) 사이에 배치될 수 있다. 일례로, FPGA PCB(3104)의 길이는 적어도 하나의 SSD(3102) 및 FPGA의 길이 이상일 수 있다.
도 25는 하우징 케이스(202)에서 스토리지 장치(4000)의 단면도를 도시한다. 스토리지 장치(4000)는 도 24의 스토리지 장치(3000)일 수 있다. 스토리지 장치(4000)는 하우징 케이스(4202), 제1 TIM 레이어(4240), 적어도 하나의 SSD(4204), 적어도 하나의 수직 M.2 커넥터(4210), 플라스틱 또는 금속 지지대 또는 스탠드오프(4212), FPGA PCB(4216), FPGA(4222), 제2 TIM 레이어(4236), 및 U.2 커넥터(4214)와 같은 표준 SSD 커넥터를 포함한다.
도 25의 예시적인 실시예에서, 제1 TIM 레이어(4240)의 제1 면(4246)은 금속 또는 열전도 케이스(4202)의 제1 면(4242)에 부착 (또는 열 접촉)된다. 제1 TIM 레이어(4240)의 제2 면(4248)은 SSD(4204)의 제1 면(4224)에 부착 (또는 열 접촉)된다. SSD(4204)는 수직 M.2 커넥터(4210)를 경유하여 FPGA PCB(4216)에 연결되며, 수직 M.2 커넥터(4210)는 SSD(4204)의 제2 면(4206)에서 SSD(4204)에 부착되고 전기적으로 연결된다. 수직 M.2 커넥터(4210)는 FPGA PCB(4216)에 실장된다. 일례로, 수직 M.2 커넥터(4210) 및 FPGA PCB(4216)는 에어 갭에 의하여 분리된다.
일례로, SSD(4204)에 구조적 지지대를 제공하는 플라스틱 (또는 다른 적합한 절연재) 지지대 또는 스탠드오프(4212)는 FPGA PCB(4216)의 제3 면(4230) 및 SSD(4204)의 제3 면(4226) 사이에 배치될 수 있다. 플라스틱 지지대 또는 스탠드오프(4212)는 FPGA PCB(4216)의 제4 면(4220) 및 NF1 SSD(4204)의 제4 면(4208)에 인접하게 배치될 수 있다.
일례로, U.2 커넥터(4214)는 FPGA PCB(4216)에 전기적으로 연결되고 실장된다. 하나의 구성에서, 스토리지 장치(4000)는, U.2 커넥터(4214)를 경유하여, 복수의 SAS 포트들 (예를 들어, SAS0 및 SAS1)을 지원할 수 있고, PCIe X4 버스의 4개의 PCIe X4 레인들까지 지원할 수 있다. 2개의 SAS 포트들(SAS0 및 SAS1)은 스토리지 장치(4000)에 의하여 이더넷 포트들로 사용될 수 있다.
도 25의 스토리지 장치(4000)에서, FPGA PCB(4216)의 제3 면(4230)은 FPGA(4222)의 제1 면(4232)에 부착된다. 일례로, FPGA(4222)는 FPGA PCB(4216)의 제3 면(4230)에 실장될 수 있고, FPGA PCB(4216)에 전기적으로 연결될 수 있다. FPGA(4222)의 제2 면(4234)은 제2 TIM 레이어(4236)의 제1 면(4250)에서 제2 TIM 레이어(4236)에 부착 (또는 열 접촉)된다. 제2 TIM 레이어(4236)의 제2 면(4252)은 하우징 케이스(4202)의 제2 면(4244)에 부착 (또는 열 접촉)된다. 제1 TIM 레이어(4240) 및 제2 TIM 레이어(4236)는 SSD(4204) 및 FPGA(4222)의 정상 동작 동안, SSD(4204)와 같은 전자 장치들 및 FPGA(4222)에 의하여 발생되는 열을 확산 및 소멸시키는데 사용되어, 생성된 열을 케이스(4202)를 경유하여 스토리지 장치(4000)의 외부로 전달함으로써, 스토리지 장치(4000)의 과열을 방지할 수 있다. 일례로, 제2 TIM 레이어(4236)의 길이는 FPGA(4222)의 길이 이상일 수 있다.
SSD(4204)는 글로벌 컨트롤러(GCON) 및 제1 성능 컨트롤러(PFCON1)를 포함할 수 있고, FPGA(4222)는 제2 성능 컨트롤러(PFCON2)를 포함할 수 있다. FPGA PCB(4216)에는 파워 센서(PSEN)가 장착될 수 있다. 전술한 바와 같이, 글로벌 컨트롤러(GCON_는 외부의 호스트 장치로부터 제공되는 전력 제어 정보에 기초하여 우선 모드에서 SSD(4204) 및 FPGA(4222) 중에서 하나를 고정된 성능으로 동작하는 우선 컴포넌트로 결정하고 다른 하나를 가변적인 성능으로 동작하는 비우선 컴포넌트로 결정할 수 있다. SSD(4204)에는 PMIC가 장착될 수 있다. 제1 성능 컨트롤러(PFCON1) 및 제2 성능 컨트롤러(PFCON2)로부터 발생하는 성능 제어 값들은 PMIC에 제공될 수 있다.
도 26은 본 발명의 실시예들에 따른 스토리지 장치를 포함하는 시스템을 나타내는 블록도이다.
도 26을 참조하면, 컴퓨팅 시스템(5000)은 호스트 장치(5100) 및 복수의 스토리지 장치들(5210, 5210, 5230)을 포함할 수 있다.
복수의 스토리지 장치들(5210, 5210, 5230)은 필드 프로그래머블 게이트 어레이들(FPGA1, FPGA2, FPGA3) 및 에스에스디들(SSD1, SSD2, SSD3)을 각각 포함할 수 있다.
본 발명의 실시예들에 따라서, 복수의 스토리지 장치들(5210, 5210, 5230)은 호스트 장치(5100)로부터 전력 제어 정보들(PCINF1, PCINF2, PCINF3)을 각각 수신하고, 각각의 스토리지 장치에 포함되는 SSD 및 FPGA 중에서 하나를 고정된 성능으로 동작하는 우선 컴포넌트로 결정하고 다른 하나를 가변적인 성능으로 동작하는 비우선 컴포넌트로 결정할 수 있다.
호스트 장치(5100)는 복수의 스토리지 장치들(5210, 5210, 5230)의 사용 스케쥴 또는 운용 시나리오에 따라서 전력 제어 정보들(PCINF1, PCINF2, PCINF3)을 통하여 복수의 스토리지 장치들(5210, 5210, 5230)의 전력 제어를 효율적으로 수행할 수 있다. 일 실시예에서, 호스트 장치(5100)의 전력 제어는 상기 워크로드들과 우선 모드 사이들 사이의 매핑 관계를 테이블로 구성하여 수행할 수 있다. 다른 실시예에서, 호스트 장치(5100)의 전력 제어는 적절한 모델링이 가능한 워크로드인 경우 모델 기반의 소프트웨어로 구현될 수도 있다.
이상 설명한 바와 같이, 본 발명의 실시예들에 따른 본 발명의 실시예들에 따른 스토리지 장치, 멀티-컴포넌트 장치 및 동작 제어 방법은, 적어도 하나의 컴포넌트를 고정된 성능을 갖는 우선 컴포넌트로 동작하도록 제어하고 나머지 컴포넌트를 가변되는 성능을 갖는 비우선 컴포넌트로 동작하도록 제어하는 우선 모드를 통하여 각 컴포넌트의 전력 예측 없이 전력 제한을 준수함과 동시에 효율적으로 복수의 컴포넌트들 사이의 성능 밸런스를 구현할 수 있다.
해당 기술 분야의 숙련된 당업자는 본 발명의 실시예들이 시스템, 방법, 컴퓨터로 판독 가능한 매체에 저장된 컴퓨터로 판독 가능한 프로그램 코드를 포함하는 제품 등의 형태로 구현될 수 있음을 이해할 것이다. 상기 컴퓨터로 판독 가능한 프로그램 코드는 다양한 컴퓨터 또는 다른 데이터 처리 장치의 프로세서로 제공될 수 있다. 상기 컴퓨터로 판독 가능한 매체는 컴퓨터로 판독 가능한 신호 매체 또는 컴퓨터로 판독 가능한 기록 매체일 수 있다. 상기 컴퓨터로 판독 가능한 기록 매체는 명령어 실행 시스템, 장비 또는 장치 내에 또는 이들과 접속되어 프로그램을 저장하거나 포함할 수 있는 임의의 유형적인 매체일 수 있다.
본 발명의 실시예들은 성능 및 전력 제어가 요구되는 장치 및 이를 포함하는 시스템에 유용하게 이용될 수 있다. 특히 본 발명의 실시예들은 메모리 카드, 솔리드 스테이트 드라이브(Solid State Drive; SSD), 임베디드 멀티미디어 카드(eMMC, embedded multimedia card), 유니버셜 플래시 스토리지(UFS, universal flash storage), 컴퓨터(computer), 노트북(laptop), 핸드폰(cellular phone), 스마트폰(smart phone), MP3 플레이어, 피디에이(Personal Digital Assistants; PDA), 피엠피(Portable Multimedia Player; PMP), 디지털 TV, 디지털 카메라, 포터블 게임 콘솔(portable game console), 네비게이션(navigation) 기기, 웨어러블(wearable) 기기, IoT(internet of things;) 기기, IoE(internet of everything:) 기기, e-북(e-book), VR(virtual reality) 기기, AR(augmented reality) 기기 등과 같은 전자 기기에 더욱 유용하게 적용될 수 있다.
상기에서는 본 발명이 바람직한 실시예를 참조하여 설명하였지만, 해당 기술분야의 숙련된 당업자는 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 것이다.

Claims (20)

  1. 호스트 장치와 연결되는 파워 레일을 통하여 전력을 공급받고, 데이터를 저장하는 에스에스디(SSD);
    상기 파워 레일을 통하여 전력을 공급받고, 상기 SSD로부터 독출되는 데이터 또는 상기 SSD에 저장되는 데이터를 프로세싱하는 필드 프로그래머블 게이트 어레이(FPGA);
    상기 파워 레일에 연결되고, 상기 SSD 및 상기 FPGA이 소모하는 총 전력을 측정하여 상기 총 전력을 나타내는 측정 전력 값을 발생하는 파워 센서; 및
    상기 호스트 장치로부터 제공되는 전력 제어 정보에 기초하여 우선 모드에서 상기 SSD 및 상기 FPGA 중에서 하나를 고정된 성능으로 동작하는 우선 컴포넌트로 결정하고 다른 하나를 가변적인 성능으로 동작하는 비우선 컴포넌트로 결정하는 글로벌 컨트롤러를 포함하는 스토리지 장치.
  2. 제1 항에 있어서,
    상기 호스트 장치로부터 제공되는 상기 전력 제어 정보는 상기 스토리지 장치의 전력 상한을 나타내는 타겟 전력 값, 상기 우선 컴포넌트를 나타내는 우선 컴포넌트 정보 및 상기 우선 컴포넌트의 고정된 성능을 나타내는 타겟 성능 값을 포함하는 것을 특징으로 하는 스토리지 장치.
  3. 제2 항에 있어서,
    상기 우선 모드에서 상기 우선 컴포넌트는 상기 측정 전력 값에 관계 없이 상기 호스트 장치로부터 제공되는 상기 타겟 성능 값에 기초하여 고정된 성능으로 동작하는 것을 특징으로 하는 스토리지 장치.
  4. 제3 항에 있어서,
    상기 우선 모드에서 상기 비우선 컴포넌트는, 상기 타겟 전력 값 및 상기 측정 전력 값에 기초하여 상기 총 전력이 상기 전력 상한을 넘지 않도록 가변적인 성능으로 동작하는 것을 특징으로 하는 스토리지 장치.
  5. 제2 항에 있어서,
    상기 글로벌 컨트롤러는 비우선 모드에서 상기 SSD 및 상기 FPGA를 모두 상기 비우선 컴포넌트로 결정하고,
    상기 비우선 모드에서 상기 SSD 및 상기 FPGA는, 상기 타겟 전력 값 및 상기 측정 전력 값에 기초하여 상기 총 전력이 상기 전력 상한을 넘지 않도록 각각 가변적인 성능으로 동작하는 것을 특징으로 하는 스토리지 장치.
  6. 제2 항에 있어서,
    상기 SSD는,
    상기 타겟 성능 값에 기초하여 상기 SSD의 성능을 제어하기 위한 제1 고정 성능 제어 값을 발생하는 제1 고정 성능 컨트롤러; 및
    상기 타겟 전력 값 및 상기 측정 전력 값에 기초하여 상기 총 전력이 상기 전력 상한을 넘지 않도록 상기 SSD의 성능을 제어하기 위한 제1 가변 성능 제어 값을 발생하는 제1 가변 성능 컨트롤러를 포함하고,
    상기 FPGA는,
    상기 타겟 성능 값에 기초하여 상기 FPGA의 성능을 제어하기 위한 제2 고정 성능 제어 값을 발생하는 제2 고정 성능 컨트롤러; 및
    상기 타겟 전력 값 및 상기 측정 전력 값에 기초하여 상기 총 전력이 상기 전력 상한을 넘지 않도록 상기 FPGA의 성능을 제어하기 위한 제2 가변 성능 제어 값을 발생하는 제2 가변 성능 컨트롤러를 포함하는 것을 특징으로 하는 스토리지 장치.
  7. 제6 항에 있어서,
    상기 제1 가변 성능 컨트롤러 및 상기 제2 가변 성능 컨트롤로의 각각은,
    상기 타겟 전력 값 및 상기 측정 전력 값의 차이에 기초하여 상기 측정 전력 값이 상기 타겟 전력 값에 수렴하도록 상기 제1 가변 성능 제어 값 및 상기 제2 가변 성능 제어 값의 각각을 발생하는 비례적분미분(PID) 컨트롤러를 포함하는 것을 특징으로 하는 스토리지 장치.
  8. 제6 항에 있어서,
    상기 제1 고정 성능 제어 값 및 상기 제1 가변 성능 제어 값은 상기 SSD의 입출력 대역폭을 나타내고,
    상기 제2 고정 성능 제어 값 및 상기 제2 가변 성능 제어 값은 상기 FPGA의 동작 주파수를 나타내는 것을 특징으로 하는 스토리지 장치.
  9. 제6 항에 있어서,
    상기 SSD가 상기 우선 컴포넌트에 해당하고 상기 FPGA가 상기 비우선 컴포넌트에 해당하는 제1 우선 모드에서,
    상기 글로벌 컨트롤러는, 상기 제1 고정 성능 컨트롤러 및 상기 제2 가변 성능 컨트롤러를 인에이블시키고 상기 제1 가변 성능 컨트롤러 및 상기 제2 고정 성능 컨트롤러를 디스에이블시키고,
    상기 SSD는 상기 제1 고정 성능 제어 값에 기초하여 고정된 성능으로 동작하고, 상기 FPGA는 상기 제2 가변 성능 제어 값에 기초하여 가변적인 성능으로 동작하는 것을 특징으로 하는 스토리지 장치.
  10. 제6 항에 있어서,
    상기 FPGA가 상기 우선 컴포넌트에 해당하고 상기 SSD가 상기 비우선 컴포넌트에 해당하는 제2 우선 모드에서,
    상기 글로벌 컨트롤러는, 상기 제1 가변 성능 컨트롤러 및 상기 제2 고정 성능 컨트롤러를 인에이블시키고 상기 제1 고정 성능 컨트롤러 및 상기 제2 가변 성능 컨트롤러를 디스에이블시키고,
    상기 SSD는 상기 제1 가변 성능 제어 값에 기초하여 가변적인 성능으로 동작하고, 상기 FPGA는 상기 제2 고정 성능 제어 값에 기초하여 고정된 성능으로 동작하는 것을 특징으로 하는 스토리지 장치.
  11. 제6 항에 있어서,
    상기 SSD 및 상기 FPGA가 모두 상기 비우선 컴포넌트에 해당하는 비우선 우선 모드에서,
    상기 글로벌 컨트롤러는, 상기 제1 가변 성능 컨트롤러 및 상기 제2 가변 성능 컨트롤러를 인에이블시키고 상기 제1 고정 성능 컨트롤러 및 상기 제2 고정 성능 컨트롤러를 디스에이블시키고,
    상기 SSD는 상기 제1 가변 성능 제어 값에 기초하여 가변적인 성능으로 동작하고, 상기 FPGA는 상기 제2 가변 성능 제어 값에 기초하여 가변적인 성능으로 동작하는 것을 특징으로 하는 스토리지 장치.
  12. 제2 항에 있어서,
    상기 글로벌 컨트롤러는 상기 호스트 장치로부터 상기 우선 컴포넌트의 최대 성능에 대한 고정된 성능의 비율을 상기 타겟 성능 값으로서 수신하는 것을 특징으로 하는 스토리지 장치.
  13. 제2 항에 있어서,
    상기 SSD 및 상기 FPGA의 각각은, 각각의 동작 온도를 측정하여 상기 동작 온도를 나타내는 동작 온도 값을 발생하는 온도 센서를 포함하고,
    상기 비우선 컴포넌트는, 상기 타겟 전력 값, 및 상기 측정 전력 값, 상기 동작 온도 값 및 상기 동작 온도의 상한을 나타내는 타겟 온도 값에 기초하여 가변적인 성능으로 동작하는 것을 특징으로 하는 스토리지 장치.
  14. 제2 항에 있어서,
    상기 전력 제어 정보는 상기 호스트 장치에서 상기 SSD로 제공되는 코맨드에 기초하여 제공되는 것을 특징으로 하는 스토리지지 장치.
  15. 제2 항에 있어서,
    상기 글로벌 컨트롤러는.
    상기 타겟 전력 값 및 상기 측정 전력 값에 기초하여 상기 총 전력이 상기 전력 상한을 초과하는지 여부를 모니터링하고,
    상기 우선 모드에서 상기 총 전력이 상기 전력 상한을 초과하는 경우, 상기 우선 모드에서 상기 타겟 전력 값을 변경하는 어댑티브 모드로 전환하는 것을 특징으로 하는 스토리지 장치.
  16. 제15 항에 있어서,
    상기 글로벌 컨트롤러는,
    시간 윈도우 동안의 상기 총 전력의 평균을 나타내는 평균 전력 값에 기초하여 전력 조절 주기의 간격으로 상기 타겟 전력 값을 조절하는 것을 특징으로 하는 스토리지 장치.
  17. 제16 항에 있어서,
    상기 글로벌 컨트롤러는,
    상기 총 전력이 상기 전력 상한을 초과하는 경우, 상기 전력 조절 주기의 간격으로 상기 타겟 전력 값을 순차적으로 감소하고,
    상기 타겟 전력 값이 임계 값보다 작게 감소한 경우, 상기 SSD 및 상기 FPGA를 모두 상기 비우선 컴포넌트로 결정하여 상기 어댑티브 모드에서 비우선 모드로 전환하고,
    상기 비우선 모드에서 상기 SSD 및 상기 FPGA는, 상기 타겟 전력 값 및 상기 측정 전력 값에 기초하여 상기 총 전력이 상기 전력 상한을 넘지 않도록 각각 가변적인 성능으로 동작하는 것을 특징으로 하는 스토리지 장치.
  18. 호스트 장치와 연결되는 파워 레일을 통하여 전력을 공급받는 복수의 컴포넌트들;
    상기 파워 레일에 연결되고, 상기 복수의 컴포넌트들이 소모하는 총 전력을 측정하여 상기 총 전력을 나타내는 측정 전력 값을 발생하는 파워 센서; 및
    상기 호스트 장치로부터 제공되는 전력 제어 정보에 기초하여 우선 모드에서 상기 복수의 컴포넌트들 중에서 적어도 하나의 컴포넌트를 고정된 성능으로 동작하는 우선 컴포넌트로 결정하고 상기 우선 컴포넌트를 제외한 나머지 컴포넌트들을 가변적인 성능으로 동작하는 비우선 컴포넌트로 결정하는 글로벌 컨트롤러를 포함하는 멀티-컴포넌트 장치.
  19. 제18 항에 있어서,
    상기 글로벌 컨트롤러는.
    상기 타겟 전력 값 및 상기 측정 전력 값에 기초하여 상기 총 전력이 상기 전력 상한을 초과하는지 여부를 모니터링하고,
    상기 우선 모드에서 상기 총 전력이 상기 전력 상한을 초과하는 경우, 상기 복수의 컴포넌트들을 모두 상기 비우선 컴포넌트로 결정하여 상기 우선 모드에서 비우선 모드로 전환하고,
    상기 비우선 모드에서 상기 복수의 컴포넌트들은,
    상기 타겟 전력 값 및 상기 측정 전력 값에 기초하여 상기 총 전력이 상기 전력 상한을 넘지 않도록 각각 가변적인 성능으로 동작하는 것을 특징으로 하는 멀티-컴포넌트 장치.
  20. 복수의 컴포넌트들을 포함하는 멀티-컴포넌트 장치의 동작 제어 방법으로서,
    호스트 장치와 연결되는 파워 레일을 통하여 복수의 컴포넌트들에 전력을 공급하는 단계;
    상기 파워 레일에 연결된 파워 센서를 이용하여, 상기 복수의 컴포넌트들이 소모하는 총 전력을 측정하여 상기 총 전력을 나타내는 측정 전력 값을 발생하는 단계; 및
    상기 호스트 장치로부터 제공되는 전력 제어 정보에 기초하여 우선 모드에서 상기 복수의 컴포넌트들 중에서 적어도 하나의 컴포넌트를 고정된 성능으로 동작하는 우선 컴포넌트로 결정하고 상기 우선 컴포넌트를 제외한 나머지 컴포넌트들을 가변적인 성능으로 동작하는 비우선 컴포넌트로 결정하는 단계를 포함하는 멀티-컴포넌트 장치의 동작 제어 방법.

KR1020200137317A 2020-10-22 2020-10-22 스토리지 장치, 멀티-컴포넌트 장치 및 이의 동작 제어 방법 KR20220053177A (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020200137317A KR20220053177A (ko) 2020-10-22 2020-10-22 스토리지 장치, 멀티-컴포넌트 장치 및 이의 동작 제어 방법
US17/239,654 US11543871B2 (en) 2020-10-22 2021-04-25 Storage device, multi-component device and method of controlling operation of the same
EP21175841.2A EP3989042A1 (en) 2020-10-22 2021-05-26 Storage device, multi-component device and method of controlling operation of the same
CN202110796956.7A CN114385072A (zh) 2020-10-22 2021-07-14 存储设备、多组件设备及控制多组件设备的工作的方法
US18/074,615 US11971764B2 (en) 2020-10-22 2022-12-05 Storage device, multi-component device and method of controlling operation of the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200137317A KR20220053177A (ko) 2020-10-22 2020-10-22 스토리지 장치, 멀티-컴포넌트 장치 및 이의 동작 제어 방법

Publications (1)

Publication Number Publication Date
KR20220053177A true KR20220053177A (ko) 2022-04-29

Family

ID=76137917

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200137317A KR20220053177A (ko) 2020-10-22 2020-10-22 스토리지 장치, 멀티-컴포넌트 장치 및 이의 동작 제어 방법

Country Status (4)

Country Link
US (2) US11543871B2 (ko)
EP (1) EP3989042A1 (ko)
KR (1) KR20220053177A (ko)
CN (1) CN114385072A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220053177A (ko) * 2020-10-22 2022-04-29 삼성전자주식회사 스토리지 장치, 멀티-컴포넌트 장치 및 이의 동작 제어 방법

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6489793B2 (en) 1996-10-21 2002-12-03 Delta Design, Inc. Temperature control of electronic devices using power following feedback
US7007176B2 (en) 2000-10-10 2006-02-28 Primarion, Inc. System and method for highly phased power regulation using adaptive compensation control
US7104987B2 (en) 2000-10-17 2006-09-12 Asthmatx, Inc. Control system and process for application of energy to airway walls and other mediums
US20070211551A1 (en) * 2005-11-25 2007-09-13 Yoav Yogev Method for dynamic performance optimization conforming to a dynamic maximum current level
CN102782606B (zh) 2009-06-19 2015-11-25 惠普开发有限公司 外壳功率控制器
US8555095B2 (en) 2010-07-26 2013-10-08 Apple Inc. Methods and systems for dynamically controlling operations in a non-volatile memory to limit power consumption
US8645733B2 (en) 2011-05-13 2014-02-04 Microsoft Corporation Virtualized application power budgeting
US9612763B2 (en) * 2014-09-23 2017-04-04 Western Digital Technologies, Inc. Apparatus and methods to control power on PCIe direct attached nonvolatile memory storage subsystems
US9946481B2 (en) * 2015-05-01 2018-04-17 Toshiba Memory Corporation Dynamic power throttling in solid state drives
US11216323B2 (en) 2015-09-16 2022-01-04 Samsung Electronics Co., Ltd. Solid state memory system with low power error correction mechanism and method of operation thereof
US10241701B2 (en) 2015-09-16 2019-03-26 Samsung Electronics Co., Ltd. Solid state memory system with power management mechanism and method of operation thereof
KR101725691B1 (ko) 2015-12-28 2017-04-12 성균관대학교산학협력단 발열을 고려한 비휘발성 데이터 저장 장치 및 액세스 제어 방법
US10120426B2 (en) 2015-12-09 2018-11-06 Research & Business Foundation Sungkyunkwan University Thermal management apparatus and method using dynamic thermal margin, and semiconductor processor device, non-volatile data storage device and access control method using the same
US10025522B2 (en) * 2016-04-15 2018-07-17 Sandisk Technologies Llc Memory interface command queue throttling
US9760311B1 (en) 2016-06-23 2017-09-12 Sandisk Technologies Llc Storage system and method for adaptive thermal throttling
KR102615227B1 (ko) 2018-02-01 2023-12-18 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
US11481016B2 (en) * 2018-03-02 2022-10-25 Samsung Electronics Co., Ltd. Method and apparatus for self-regulating power usage and power consumption in ethernet SSD storage systems
US11079822B2 (en) * 2019-06-28 2021-08-03 Western Digital Technologies, Inc. Integrated power and thermal management in non-volatile memory
KR20220053177A (ko) * 2020-10-22 2022-04-29 삼성전자주식회사 스토리지 장치, 멀티-컴포넌트 장치 및 이의 동작 제어 방법

Also Published As

Publication number Publication date
CN114385072A (zh) 2022-04-22
EP3989042A1 (en) 2022-04-27
US20220129056A1 (en) 2022-04-28
US20230096935A1 (en) 2023-03-30
US11543871B2 (en) 2023-01-03
US11971764B2 (en) 2024-04-30

Similar Documents

Publication Publication Date Title
US11422722B2 (en) Intelligent wide port PHY usage
US20230244296A1 (en) Device power control
KR102414047B1 (ko) 통합 메모리 디바이스 및 그의 동작 방법
TWI675289B (zh) 包含異質多核心處理器的電子系統及其操作方法
US9411718B2 (en) Method to apply fine grain wear leveling and garbage collection
KR102151628B1 (ko) 시스템 레벨의 열 관리를 주도하는 솔리드 스테이트 드라이브
US10409351B2 (en) Computing devices and methods of allocating power to plurality of cores in each computing device
US20200319937A1 (en) Distributed processing qos algorithm for system performance optimization under thermal constraints
US9047068B2 (en) Information handling system storage device management information access
KR20140128820A (ko) 호스트, 저장 장치, 및 이를 포함하는 시스템의 동작 방법
TWI837445B (zh) 儲存裝置及其效能控制方法
CN108205478B (zh) 智能序列式小型计算机系统接口物理层功率管理
US11971764B2 (en) Storage device, multi-component device and method of controlling operation of the same
US10802760B2 (en) Apparatus and method of intelligent dynamic application aware storage device optimization
EP3992799A1 (en) Electronic device and automotive device
US20230103633A1 (en) System and method for current flow management
KR20240057654A (ko) 컴퓨테이션 스토리지 장치 및 컴퓨테이션 스토리지 장치의 전력 관리 방법
KR20150067433A (ko) L2 캐시 특성을 조절할 수 있는 멀티-코어 cpu 시스템, 이의 동작 방법, 및 이를 포함하는 장치들
KR20230037757A (ko) 주파수 클램핑 및 아이들 인젝션을 이용한 동적 발열 제어를 위한 장치 및 방법
Confalonieri et al. Mobile memory systems
CN117203623A (zh) 一种存储控制装置和在存储控制装置中执行的方法
CN113138714A (zh) 存储装置及其性能控制方法
CN115480700A (zh) 数据存储方法、存储设备以及主机