KR20130002046A - 멀티 코어를 포함하는 저장 장치의 전력 관리 방법 - Google Patents

멀티 코어를 포함하는 저장 장치의 전력 관리 방법 Download PDF

Info

Publication number
KR20130002046A
KR20130002046A KR1020110063040A KR20110063040A KR20130002046A KR 20130002046 A KR20130002046 A KR 20130002046A KR 1020110063040 A KR1020110063040 A KR 1020110063040A KR 20110063040 A KR20110063040 A KR 20110063040A KR 20130002046 A KR20130002046 A KR 20130002046A
Authority
KR
South Korea
Prior art keywords
processing core
storage device
core
mode
command
Prior art date
Application number
KR1020110063040A
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 KR1020110063040A priority Critical patent/KR20130002046A/ko
Priority to US13/530,840 priority patent/US9110669B2/en
Publication of KR20130002046A publication Critical patent/KR20130002046A/ko

Links

Images

Classifications

    • 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/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • 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
    • 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
    • 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
    • G06F1/3215Monitoring of peripheral devices
    • G06F1/3221Monitoring of peripheral devices of disk drive devices
    • 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
    • G06F1/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
    • 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/3246Power saving characterised by the action undertaken by software initiated power-off
    • 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/3268Power saving in hard disk drive
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • 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
    • 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
    • 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
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Power Sources (AREA)

Abstract

멀티 프로세서 코어를 구비한 저장 장치에 있어서 저장 장치의 성능을 감소 시키지 않으면서 소비 전력을 감소 시킬 수 있는 전력 관리 방법이 개시된다. 본 발명의 실시 예에 따른 제1 기능 블록을 제어하는 제1 프로세싱 코어 및 제2 기능 블록을 제어하는 제2 프로세싱 코어를 포함하는 저장 장치의 전력 관리 방법은 외부로부터 수신한 명령의 패턴을 분석하는 단계, 상기 분석된 패턴에 기초하여 상기 저장 장치의 동작 모드를 선택하는 단계 및 상기 선택된 동작 모드가 제1 모드일 경우, 상기 제1 프로세싱 코어가 상기 저장 장치의 전력을 관리하고, 상기 선택된 동작 모드가 제2 모드일 경우, 상기 제1 프로세싱 코어 및 상기 제2 프로세싱 코어가 각각, 제어하는 기능 블록의 전력을 관리하는 단계를 포함한다.

Description

멀티 코어를 포함하는 저장 장치의 전력 관리 방법{Power Management Method for Storage Device Including Multi-Core}
본 발명은 저장 장치에 관한 것으로, 특히 복수개의 프로세싱 코어를 탑재한 저장장치에서의 전력 관리 방법에 관한 것이다.
최근 대부분의 디바이스들이 높은 성능을 요구하면서 프로세서의 수가 둘 이상으로 동작하는 멀티 코어 프로세서가 일반화되고 있다. 특히 SSD와 같은 저장 장치는 Host와의 통신을 위해 SATA/SAS 같은 프로토콜을 사용하는데 이에 따라 저장장치의 빠른 성능을 요구하므로 저장장치는 멀티 코어로 작업을 분할하여 처리하고 있다. 이러한 멀티 코어 프로세서의 사용은 성능 향상을 가져오지만, 전력 사용량이 코어의 개수만큼 선형적으로 증가하게 되어 높은 전력을 필요로 하게 되므로 노트북과 같은 제한된 배터리를 사용하는 장치의 생명 주기를 짧게 한다. 따라서 멀티 코어 프로세서를 사용하는 저장장치에서 소모 전력을 감소시킬 수 있는 전력 관리 방법이 요구된다.
본 발명은 복수개의 프로세싱 코어를 사용하는 저장 장치에서 효율적으로 전력을 관리할 수 있는 방법을 제공한다.
본 발명의 실시 예에 따른 제1 기능 블록을 제어하는 제1 프로세싱 코어 및 제2 기능 블록을 제어하는 제2 프로세싱 코어를 포함하는 저장 장치의 전력 관리 방법은 외부로부터 수신한 명령의 패턴을 분석하는 단계, 상기 분석된 패턴에 기초하여 상기 저장 장치의 동작 모드를 선택하는 단계 및 상기 선택된 동작 모드가 제1 모드일 경우, 상기 제1 프로세싱 코어가 상기 저장 장치의 전력을 관리하고, 상기 선택된 동작 모드가 제2 모드일 경우, 상기 제1 프로세싱 코어 및 상기 제2 프로세싱 코어가 각각, 제어하는 기능 블록의 전력을 관리하는 단계를 포함할 수 있다.
바람직하게는, 상기 제1 프로세싱 코어가 상기 저장 장치의 전력을 관리하는 단계는, 상기 제1 프로세싱 코어가 상기 제1 프로세싱 코어 및 상기 제2 프로세싱 코어에 할당된 테스크의 종료여부를 판단하는 단계 및 상기 제1 프로세싱 코어 및 상기 제2 프로세싱 코어에 할당된 테스크가 종료된 경우, 상기 제1 프로세싱 코어가 상기 저장 장치의 제1 기능 블록, 제2 기능 블록 및 공유 기능 블록을 저 전력 상태로 전환시키는 단계를 포함할 수 있다.
바람직하게는, 상기 제1 프로세싱 코어 및 상기 제2 프로세싱 코어가 독립적으로, 제어하는 기능 블록의 전력을 관리하는 단계는 상기 제1 프로세싱 코어 및 상기 제2 프로세싱 코어가 각각 할당된 테스크가 종료되었는지 판단하는 단계 및 테스크가 종료된 프로세싱 코어는 제어하는 기능 블록을 저 전력 상태로 전환시키는 단계를 포함할 수 있다.
바람직하게는, 상기 제1 프로세싱 코어 및 상기 제2 프로세싱 코어가 제어하는 공유 기능 블록을 더 포함하고, 상기 제1 프로세싱 코어 및 상기 제2 프로세싱 코어가 각각, 제어하는 기능 블록의 전력을 관리하는 단계는, 상기 테스크가 종료된 프로세싱 코어가 상기 제1 프로세싱 코어 및 제2 프로세싱 코어가 공유하는 메모리에 테스크가 종료되었음을 알리는 정보를 기입하는 단계, 상기 제1 프로세싱 코어가, 상기 공유하는 메모리를 체크하여 상기 제1 프로세싱 코어 및 상기 제2 프로세싱 코어의 테스크가 종료되었음을 확인하는 단계 및 상기 제1 프로세싱 코어가, 상기 공유 기능 블록을 저 전력 상태로 전환시키는 단계를 더 포함할 수 있다.
바람직하게는, 상기 명령의 패턴을 분석하는 단계는, 상기 명령의 패턴을 시간의 연속성, 논리 페이지 주소의 연속성 또는 명령의 속성의 연속성 중 적어도 하나 이상의 인자에 따라서 분석하는 것을 특징으로 할 수 있다.
바람직하게는, 상기 명령의 패턴을 분석하는 단계는, 상기 외부로부터 수신한 n개(n은 1보다 큰 정수)의 명령에 대한 히스토리를 저장하는 단계 및 상기 저장된 히스토리를 기반으로 분석하는 단계를 포함할 수 있다.
바람직하게는, 상기 저장된 히스토리를 기반으로 분석하는 단계는, 상기 명령의 히스토리에 대한 기준 포인트를 설정하고, 상기 명령의 히스토리를 바탕으로 상기 명령이 시간의 연속성, 논리 페이지 주소의 연속성 또는 속성의 연속성이 있는지 여부를 판단하여 이에 따라 기준 포인트를 증가시키거나
감소시키는 단계를 포함할 수 있다.
바람직하게는, 상기 저장 장치의 동작 모드를 선택하는 단계는, 상기 기준 포인트의 누적값이 모드 선택 기준치를 초과하면 제1 모드로 판단하고, 모드 선택 기준치 이하면, 제2 모드로 판단하는 것을 특징으로 할 수 있다.
바람직하게는, 상기 저장 장치의 동작 모드를 선택하는 단계는, 외부로부터 수신한 명령이 리셋, 슬립 또는 스탠바이 명령 중 하나일 경우, 제1 모드로 판단하는 단계를 포함할 수 있다.
바람직하게는, 상기 저장 장치는 제3 기능 블록을 제어하는 제3 프로세싱 코어를 더 포함하고, 전력을 관리하는 단계는, 상기 선택된 동작 모드가 제1 모드일 경우, 상기 제1 프로세싱 코어가 상기 저장 장치의 전력을 관리하고, 상기 선택된 동작 모드가 제2 모드일 경우, 제1 코어, 제2 코어 및 제3 코어가 각각, 제어하는 기능 블록의 전력을 관리하는 단계를 포함할 수 있다.
바람직하게는, 상기 저장 장치의 초기 동작 모드는 제1 모드일 수 있다.
바람직하게는, 상기 저장 장치는 솔리드 스테이트 드라이브(SDD)일 수 있다.
본 발명의 다른 실시예에 따른, 제1 기능 블록을 제어하는 제1 프로세싱 코어 및 제2 기능 블록을 제어하는 제2 프로세싱 코어를 포함하는 대용량 저장 장치의 전력 관리 방법은 상기 저장 장치가 제1 프로세싱 코어에 의하여 전력이 관리되는 단계, 외부로부터 전력 관리 온 신호를 수신하는 단계, 외부로부터 수신한 n개(n은 1보다 큰 정수) 명령의 패턴을 분석하여 상기 저장 장치의 동작 모드를 선택하는 단계 및 저 전력 모드가 선택되는 경우, 제1 프로세싱 코어 및 제2 프로세싱 코어가 각각, 제어하는 기능 블록의 전력을 관리하도록 전환되는 단계를 포함할 수 있다.
바람직하게는, 외부로부터 수신한 또 다른 n개의 명령의 패턴을 분석하여 상기 저장 장치의 동작 모드를 선택하는 단계 및 퍼포먼스 모드가 선택되는 경우, 제1 프로세싱 코어가 상기 저장 장치의 전력을 관리하도록 전환되는 단계를 더 포함할 수 있다.
바람직하게는, 외부로부터 전력 관리 오프 신호를 수신하는 단계 및 상기 저장 장치가 제1 프로세싱 코어에 의하여 전력이 관리되는 단계를 더 포함할 수 있다.
본 발명의 실시 예에 따른 멀티 코어를 포함한 저장 장치의 전력 관리 방법에 따르면 호스트로부터 수신한 명령 패턴에 따라 독립적 또는 종속적 전력 관리를 하여 시스템의 응답속도를 지연시키지 않으면서도 소모 전력을 감소시키는 전력 관리를 할 수 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 본 발명의 실시예에 따른 전력 관리 방법을 나타낸 흐름도이다.
도 2는 본 발명의 실시예에 따른 저장 장치의 블록도이다.
도 3은 도 2의 저장 장치를 상세하게 나타낸 블록도이다.
도 4a는 본 발명의 실시예에 따른 독립적 전력 관리 방법에서 저 전력 모드로 전환되는 과정을 설명한 흐름도이다.
도 4b는 본 발명의 실시예에 따른 독립적 전력 관리 방법에서 동작 상태로 전환되는 과정을 설명한 흐름도이다.
도 5a는 본 발명의 실시예에 따른 종속적 전력 관리 방법에서 저 전력 모드로 전환되는 과정을 설명한 흐름도이다.
도 5b는 본 발명의 실시예에 따른 종속적 전력 관리 방법에서 동작 상태로 전환되는 과정을 설명한 흐름도이다.
도 6은 본 발명의 실시예에 따라 명령의 패턴을 분석하여 동작 모드를 선택하는 과정을 설명한 흐름도이다.
도 7은 본 발명의 다른 실시예에 따라 명령의 패턴을 분석하여 동작 모드를 선택하는 과정을 설명한 흐름도이다.
도 8은 본 발명의 다른 실시예에 따른 전력 관리 방법을 나타낸 흐름도이다.
도 9는 본 발명의 또다른 실시예에 따른 저장 장치의 블록도이다.
도 10은 본 발명의 실시예에 따른 컴퓨팅 시스템을 나타내는 도면이다.
도 11은 본 발명의 실시예에 따른 저장 장치를 포함하는 서버 시스템과, 서버 시스템을 포함하는 네트워크 시스템을 나타내는 도면이다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 도면에 기재된 내용을 참조하여야 한다.
본 발명의 실시예들은 당해 기술 분야에서 통상의 지식을 가진 자에게 본 발명을 더욱 완전하게 설명하기 위하여 제공되는 것이며, 아래의 실시예들은 여러 가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 아래의 실시예들로 한정되는 것은 아니다. 오히려, 이들 실시예는 본 개시를 더욱 충실하고 완전하게 하며 당업자에게 본 발명의 사상을 완전하게 전달하기 위하여 제공되는 것이다.
본 명세서에서 사용된 용어는 특정 실시예를 설명하기 위하여 사용되며, 본 발명을 제한하기 위한 것이 아니다. 본 명세서에서 사용된 바와 같이 단수 형태는 문맥상 다른 경우를 분명히 지적하는 것이 아니라면, 복수의 형태를 포함할 수 있다. 또한, 본 명세서에서 사용되는 경우 “포함한다(comprise)” 및/또는 “포함하는(comprising)”은 언급한 형상들, 숫자, 단계, 동작, 부재, 요소 및/또는 이들 그룹의 존재를 특정하는 것이며, 하나 이상의 다른 형상, 숫자, 동작, 부재, 요소 및/또는 그룹들의 존재 또는 부가를 배제하는 것이 아니다. 본 명세서에서 사용된 바와 같이, 용어 “및/또는”은 해당 열거된 항목 중 어느 하나 및 하나 이상의 모든 조합을 포함한다.
본 명세서에서 제1, 제2 등의 용어가 다양한 부재, 영역 및/또는 부위들을 설명하기 위하여 사용되지만, 이들 부재, 부품, 영역, 층들 및/또는 부위들은 이들 용어에 의해 한정되어서는 안됨은 자명하다. 이들 용어는 특정 순서나 상하, 또는 우열의 의미하지 않으며, 하나의 부재, 영역 또는 부위를 다른 부재, 영역 또는 부위와 구별하기 위하여만 사용된다. 따라서, 이하 상술할 제1 부재, 영역 또는 부위는 본 발명의 가르침으로부터 벗어나지 않고서도 제2 부재, 영역 또는 부위를 지칭할 수 있다.
이하, 첨부한 도면을 참조하여 본 발명이 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 실시예에 따른 전력 관리 방법을 설명하는 흐름도이다.
도 1을 참조하면, 호스트로부터 수신한 명령의 패턴을 분석하여(S110) 저장 장치의 동작 모드를 선택하고(S120) 제1 모드, 예를 들어 퍼포먼스 모드로 동작할 것으로 판단되는 경우(130)는 종속적 전력 관리 방법으로 저장 장치의 전력을 관리하고, 퍼포먼스 모드가 아닌 경우, 독립적 전력 관리 방법으로 저장 장치의 전력을 관리한다(S150). 이하에서, 도 2를 참조하여 좀더 구체적으로 전력 관리 방법을 설명하기로 한다.
도 2는 본 발명의 실시예에 따른 저장 장치의 블록도이다.
도 2를 참조하면, 저장 장치(10)는 제어부(100)와 비휘발성 메모리(200)를 포함한다. 제어부(100)는 호스트(300)로부터 수신한 명령을 수행하며, 비휘발성 메모리(200)에 데이터를 쓰거나 비휘발성 메모리(200)로부터 데이터를 읽어오는 작업을 제어한다. 비휘발성 메모리(200)는 호스트로부터 수신한 데이터를 저장하는 영역으로 플래쉬 메모리나 상 변화 메모리일 수 있다. 도 2에서의 저장 장치(10)는 비휘발성 메모리(200)를 포함하는 솔리드 스테이트 드라이버(SSD)로 예시되었으나, 이에 한정되는 것은 아니고, 저장 장치(10)는 하드 디스크 드라이버(HDD)일 수 있다.
제어부(100)는 복수개의 코어들(111,112)과 복수개의 기능 블록들(120, 130, 140)을 포함한다. 도 2에서는 두 개의 프로세싱 코어(111, 112)를 포함하는 것으로 도시하였으나, 더 많은 수의 프로세싱 코어를 포함 할 수 있음은 자명하다. 제1 코어(111) 및 제2 코어(112)는 호스트(300)와 관련된 작업과 메모리(200)에 관련된 작업을 나누어 실행한다. 공유 기능 블록(120)은 제1 코어(111)및 제2 코어(112)가 테스크 수행시 공통으로 사용하는 블록으로 제1 코어(111) 및 제2 코어에(112)에 의하여 제어된다. 제1 기능 블록(130)은 호스트(300)와 관련된 작업을 수행시 사용되는 블록으로 제1 코어(111)에 의하여 제어된다. 제2 기능 블록(140)은 메모리(200)와 관련된 작업을 수행시 사용되는 블록으로 제2 코어(112)에 의하여 제어된다.
다시 도 1을 참조하면, 첫번째로, S110 단계에서 호스트(300)로부터 수신한 명령의 패턴을 분석한다. 호스트로부터 수신한 n개(n은 1보다 큰 정수)의 명령의 히스토리를 저장하고 이를 기반으로 명령의 패턴을 분석한다. 이때, 명령의 패턴은 명령의 시간의 연속성, 논리 페이지 주소(Logical page adderess)의 연속성 및 명령의 속성(property)의 연속성에 따라 분석 될 수 있다. 구체적인 분석 방법은 도 6을 참조하여 후술하기로 한다.
S120 단계에서는, S110 단계에서 분석한 명령의 패턴에 따라 동작 모드를 선택한다. 수신한 명령에 따라 저장 장치(10)의 I/O의 엑세스 빈도가 달라지는데, 엑세스 빈도가 높은 경우를 제1 모드 즉, 퍼포먼스 모드로, 엑세스 빈도가 낮은 경우를 제2 모드 즉, 저 전력 모드로 판단할 수 있다. 따라서 분석된 명령의 패턴이 퍼포먼스 모드를 구성하는지 또는 저 전력 모드를 구성하는지 판단하여 저장 장치(10)가 퍼포먼스 모드로 동작해야 할 것인지 또는 저 전력 모드로 동작해야 할 것인지 선택한다.
S130 단계에서, S120 단계에서 선택된 동작 모드가 퍼포먼스 모드인지 판단한다.
S110, S120, S130 단계에서 명령의 패턴을 분석하여 동작 모드를 선택하고 선택된 동작모드가 퍼포먼스 모드인지 판단하는 것은 호스트(300)와 관련된 테스크를 수행하는 제1 코어(111)에 의하여 수행될 수 있다. 다른 실시예에 의하면 저장 장치(10)가 패턴 디텍터(미도시)를 더 포함하고 패턴 디텍터에서 명령의 패턴을 분석할 수 있을 것이다.
S140 단계에서는, 저장 장치가 퍼포먼스 모드로 동작할 것으로 판단되는 경우로, 종속적 전력 관리 방법에 따라 저장 장치(10)의 전력이 관리 된다. 종속적 전력 관리 방법은 복수개의 코어(111,112) 중 특정된 하나의 코어(이하 마스터 코어라고 한다)가 저장 장치의 전체 전력을 관리하는 방법이다. 예를들어, 제1 코어(111)가 마스터 코어로 설정된 경우 제1 코어(111)가 제1 코어(111)및 제2 코어(112)의 테스크 수행 상태를 판단하여 저장 장치(10)의 전력을 관리한다. 마스터 코어가 전체 코어의 테스크 종료 여부를 판단하여 전력을 관리하므로 안정성이 탁월하고 퍼포먼스 모드에서 응답 속도의 저하없이 호스트에 빠른 응답을 보낼 수 있다. 반면 전체 코어의 테스크가 종료되어야 저장 장치(10)가 저 전력으로 진입하므로 저 전력 상태인 구간이 짧다.
S150 단계에서는, 저장 장치(10)가 저 전력 모드에서 동작할 것으로 판단되는 경우로, 독립적 전력 관리 방법에 따라 저장 장치의 전력이 관리 된다. 독립적 전력 관리 방법은 서로 다른 테스크를 수행하는 복수개의 코어(111.112) 각각이 독립적으로, 제어하는 기능 블록들의 전력 관리를 수행하는 것이다. 예를 들어 호스트 테스크를 수행하는 제1 코어(111)는 제1 기능 블록의 전력을 관리하며, 메모리 테스크를 수행하는 제2 코어(112)는 제2 기능 블록의 전력을 관리한다.
다만, 공유 기능 블록(120)은 호스트 테스크와 메모리 테스크 수행 모두에 필요하므로 제1 코어(111) 또는 제2 코어(112) 중 하나의 코어가 제1 코어(111)및 제2 코어(112)의 테스크 수행여부를 판단하여 관리한다.
각 코어의 테스크 수행의 진입, 진출 시점이 서로 다르므로 각 코어별로 테스크 처리 상태에 따라 제어하는 기능 블록의 전력을 관리하여 저장 장치의 저 전력 진입 시간을 최소화하고 저 전력 상태를 길게 유지할 수 있다. 이는 제한된 배터리를 가진 노트북과 같은 디바이스의 생명 주기를 길게 하는 장점을 갖고 있다.
도 3은 도2 의 저장 장치를 자세하게 나타낸 블록도이다.
도 3을 참조하면, 저장 장치(10)는 제1 코어(111), 제2 코어(112), 공유 기능 블록(120), 제1 기능 블록(130), 제2 기능 블록(140) 및 비휘발성 메모리(200)를 포함한다.
제1 코어(111)는 호스트(300)와 관련된 테스크를 수행하고 제2 코어(112)는 비휘발성 메모리(200)과 관련된 테스크를 수행한다.
공유 기능 블록(120)은 제1 코어(111) 및 제2 코어(112)가 테스크 수행시 필요한 기능 블록으로, 공유 메모리(121) 및 RAM(122)을 포함할 수 있다.
공유 메모리(121)는 복수개의 코어들(111,112) 사이에 정보를 전달하기 위하여 사용된다. 코어들(111,112)은 할당받은 테스크를 개별적으로 수행하지만 유기적으로 정보를 주고 받아야 한다. 공유 메모리(121)는 버퍼 또는 SRAM일 수 있다. 그러나 본 발명에서 복수개의 코어들(111,112) 사이의 정보 전달을 위한 수단을 공유 메모리(121)로 제한하는 것은 아니다. 복수개의 코어들(11,112) 사이의 정보는 직접 DMA를 통해 송신 또는 수신하는 것이 가능하다.
RAM(122)은 호스트(300)로 전송될 데이터를 임시로 저장하거나 호스트(300)로부터 전송된 데이터를 비휘발성 메모리(200)에 저장하기 위하여 임시로 저장하는 버퍼 역할을 수행한다. RAM(122)은 다이나믹 랜덤 엑세스 메모리(DRAM) 또는 스테틱 랜덤 엑세스 메모리(SRAM)으로 구현될 수 있다.
제1 기능 블록(130)은 호스트 테스크 수행시 필요한 기능 블록으로 제1 코어(111)에 의하여 제어되며, 호스트 인터페이스(131) 및 DMA 컨트롤러(132)를 포함할 수 있다.
호스트 인터페이스(131)는 저장 장치(10)와 호스트(300)를 상호 연결한다. 본 발명의 실시예에 따른 호스트 인터페이스(131)는 SATA(Serial Advanced Technology Attachment) 인터페이스를 예시한다. 또는, 호스트 인터페이스(131)는 SAS(Serial Attached Small Computer System) 인터페이스일 수 있다. 그러나 이는 예시적인 것으로, 본 발명의 호스트 인터페이스(131)는 특정 인터페이스로 제한되는 것은 아니다.
DMA 컨트롤러(Direct memory controller, 132)는 호스트 인터페이스(131)가 제1 코어(111)에 의한 프로그램의 실행없이 데이터를 이동할 수 있도록 제어 한다.
제2 기능 블록(140)은 메모리 테스크 수행시 필요한 기능 블록으로 제2 코어(112)에 의하여 제어되며, ECC 블록(141) 및 메모리 컨트롤러(142)를 포함할 수 있다.
ECC 블록(Error Checking and Correction Block, 141)은 비휘발성 메모리(200)에 저장될 데이터 또는 비휘발성 메모리(200)로부터 읽혀진 데이터의 ECC 데이터를 생성하여 데이터에 에러가 있는지 판별한다.
메모리 컨트롤러(142)는 제2 코어(112)의 제어 명령에 따라 비휘발성 메모리(200)로부터 출력되는 데이터를 해석하며, 비휘발성 메모리(200)로 입력되는 데이터를 저장 및 삭제하는 등, 비휘발성 메모리(200)의 데이터를 관리하고 제어한다.
비휘발성 메모리(200)는 데이터를 기록하는 다수의 블록을 포함하며, 플래쉬 메모리 또는 상변화 메모리 등으로 구현될 수 있다.
도 3에서, 저장 장치(10)는 호스트(300)와의 통신을 위해 SATA 또는 SAS 같은 프로토콜을 사용한다. SATA는 1.5G/3G를 넘어 6G까지의 성능을 요구하고 있다. 따라서 저장 장치(10)는 고성능이 요구되므로 복수개의 프로세싱 코어(111,112)로 테스크를 분할하여 처리하고 있다. 예를 들어 호스트(300)와 관련된 작업과 비휘발성 메모리(200)와 같은 물리적 저장 장치에 관련된 작업을 병렬로 처리하여 응답 속도 및 퍼포먼스를 극대화하고 있다. 이에 따라 제1 코어(111)는 주로 호스트(300)와 관련된 프로세싱을 담당하고, 제2 코어(112)는 주로 비휘발성 메모리(200)와 관련된 프로세싱을 담당한다. 제1 기능 블록(130)의 호스트 인터페이스(131), DMA 컨트롤러(132)는 호스트와 관련된 제1 코어(111)에 제어되어 동작하고, 제2 기능 블록(140)의 ECC 블록(141), 메모리 컨트롤러(142) 및 비휘발성 메모리(200)는 메모리와 관련된 테스크를 수행하는 제2 코어(120)에 제어되어 동작한다. 공유 기능 블록(120)의 공유 메모리(121)와 RAM(122)은 호스트와 관련된 작업과 메모리에 관련된 작업에 모두 사용되어야 하므로 제1 코어(111)와 제2 코어(112)의 테스크 수행시 공통적으로 사용된다.
상술한 바와같이 복수개의 프로세싱 코어(111,112)로 테스크를 분할하여 병렬 처리하면서 응답 속도 및 퍼포먼스는 극대화 할 수 있으나 저장 장치(10)의 전력 사용량은 증가하게 된다.
따라서 소비 전력을 절감하기 위하여 멀티 프로세싱 코어를 사용하는 저장 장치(10)는 테스크의 종료시 기능 블록들(120,130,140) 및 비휘발성 메모리(200)를 저 전력 상태로 전환시킬 수 있다. 이때, 제1 코어(111)와 제2 코어(112)가 도 1의 본 발명의 전력 관리 방법에 따라 저장 장치(10)의 전력 관리를 수행하며, 테스크가 종료되면 기능 블록들(120,130,140) 및 비휘발성 메모리(200)에 클럭 신호가 인가되지 않도록 하여 저 전력 상태가 되게할 수 있다.
도 4a는 독립적 전력 관리 방법에 따라 저 전력 상태로 진입하는 과정을 설명하기 위한 흐름도이다.
도 4a를 참조하면, S410 단계에서, 각 코어는 테스크의 종료 여부를 판단한다. 즉 제1 코어(111)는 호스트(300)와 관련된 테스크인 호스트 테스크가 종료되었는지 여부를 판단하고, 제2 코어(112)는 비휘발성 메모리(200)와 관련된 테스크인 메모리 테스크가 종료되었는지 여부를 판단한다. 각 코어는 서로 다른 테스크를 수행하기 때문에 테스크 수행 시작과 종료 시점이 다르며, 사용하는 하드웨어 모듈 또한 다르다.
예를 들어, 호스트 테스크는 호스트 명령을 수신한 시점이 테스크 수행 시작 시점이지만, 메모리 테스크는 제1 코어(111)에서 제2 코어(112)로 메시지를 전달한 시점이 테스크 수행 시작 시점이 된다. 또한, 호스트 테스크의 수행 종료 시점은 호스트(300)로 명령 종료에 대한 응답을 보낸 시점이지만, 메모리 테스크의 종료 시점은 메시지 종료뿐만 아니라 가베지 컬렉션(garbage collection)등의 내부 오퍼레이션이 모두 종료한 시점이 된다. 따라서 테스크 종료 시점이 다르므로 각 코어는 테스크의 종료 여부를 각각 판단한다.
S420 단계에서, 테스크가 종료된 코어는 종속된 하드웨어 모듈을 저 전력 상태로 진입시킨다. 예를들어 제1 코어(111)의 호스트 테스크는 수행중이고, 제2 코어(112)의 메모리 테스크가 종료된 경우라면, 제2 코어(112)는 S410단계에서 테스크가 종료되었다고 판단할 것이므로 제어하는 기능 블록인 제2 기능 블록(140)의 ECC 블록(141) 및 메모리 컨트롤러(142) 그리고 비휘발성 메모리(200)를 저 전력 상태로 전환시킨다. 제2 코어(112)에 의하여 제어되는 제2 기능 블록(140)은 제1 코어(111)의 호스트 테스크 수행과는 관련이 없으므로 제1 코어(111)의 테스크 수행에는 영향을 미치지 않는다.
반면, 제1 코어(111)의 호스트 테스크가 종료되고 제2 코어(112)의 메모리 테스크가 수행중인 경우, 제1 코어(111)는 제1 기능 블록(130)의 호스트 인터페이스(131) 및 DMA 컨트롤러(132)를 저 전력 상태로 전환시킨다.
다음으로 S430 단계에서, 테스크가 종료되어 제어하는 기능 블록을 저 전력 상태로 전환시킨 코어는 공유 메모리(121)에 테스크가 종료되었음을 기록한다. 예를들어, 제2 코어(112)가 메모리 테스크를 종료하고 제어하는 기능 블록인 제2 기능 블록(140)과 비휘발성 메모리(200)를 저 전력 상태가 되게한 경우, 유휴상태임을 다른 코어들, 즉 제1 코어(111)에게 알리기 위하여 공유 메모리(121)에 유휴상태임을 기록한다.
S440 단계에서는, 모든 코어의 테스크가 종료되었는지 여부를 판단한다. 특정한 하나의 코어가 공유 메모리(121)에 기입된 테스크 수행 상태를 확인하여 모든 코어의 테스크가 종료되었음을 판단한다. 예를 들어 제1 코어(111)가 모든 코어의 테스크 종료 여부를 판단하는 코어로 설정된 경우라면, 제1 코어(111)는 공유 메모리(121)에 기입된 제1 코어(111) 및 제2 코어(121)의 테스크 수행 상태를 확인하여 제1 코어(111) 및 제2 코어(112)의 테스크가 종료되었는지 판단한다.
S450 단계에서는, 모든 코어의 테스크가 종료된 경우, 공유 기능 블록(120)을 저 전력 상태로 전환시킨다. S440 단계에서 제1 코어(111)가 공유 메모리(121)를 확인하여 모든 코어의 테스크가 종료되었다고 판단하면, 공통으로 사용하는 공유 기능 블록(120), 즉 공유 메모리(121)와 RAM(122)을 저 전력 상태로 전환시킨다. 공유 기능 블록(120)은 모든 코어의 테스크 수행시 이용되므로 모든 코어의 테스크가 종료된 후에야 저 전력 상태가 되도록 하는 것이다.
도 4b는 독립적 전력 관리 방법에 따라 저장 장치가 저 전력 상태에서 동작 상태로 전환되는 과정을 설명하기 위한 흐름도이다.
S411 단계에서는, 호스트(300)로부터 명령을 수신하여 적어도 하나 이상의 코어에 테스크가 할당된 경우, 우선, 공유 기능 블록(120), 즉 공유 메모리(121)와 RAM(122)을 동작 상태로 만든다. 도 4a에서 복수개의 코어(111,112) 중 제1 코어(111)가 모든 코어의 테스크 종료를 판단하고 공유 기능 블록(120)을 저 전력 상태가 되도록 하였으므로, 동일한 코어인 제1 코어(111)가 특정 코어에 테스크가 할당되었음을 인지하고 공유 기능 블록(120)을 동작 상태로 만든다.
S412 단계에서, 테스크를 할당받은 코어는 제어하는 기능 블록을 동작 상태로 전환시킨다. 예를 들어 제1 코어(111)가 테스크를 할당 받은 경우라면, 제1 코어는 제어하는 기능 블록인 제1 기능 블록(130)의 호스트 인터페이스(131)와 DMA 컨트롤러(132)를 동작 상태로 전환시킨다. 테스크를 할당받지 못한 제2 코어(112)와 제2 기능 블록(140)은 저 전력 상태를 계속 유지하게 된다.
S413 단계에서, 테스크를 할당받은 코어는 공유 메모리(121)에 테스크 수행 상태임을 기입한다. 즉, 제1 코어(111)는 공유 메모리에(121)에 호스트와 관련된 테스크를 할당받아 수행을 시작하였음을 기입한다.
그 후, 제2 코어(112)도 테스크를 할당받는다면 제1 코어(111)와 같이 S413, S414 단계를 거치게 된다.
도 4a와 4b를 참조하면, 독립적 전력 관리 방법은 제어하는 기능 블록의 전력 관리를 각 코어 각각이 독립적으로 하므로, 저장 장치(10)의 저 전력 진입시간을 최소화하고 저 전력 상태인 구간을 길게하여 전력 소모를 줄일 수 있다. 그러나 저장 장치(10)의 전체적인 데이터 흐름을 제어하기가 힘들다. 따라서 저장 장치(10)의 빠른 응답 속도가 요구되는 퍼포먼스 모드보다 I/O의 엑세스 빈도가 낮은 저 전력 모드에서 종속적 전력 관리 방법을 사용하여 성능의 저하 없이 소모 전력을 감소할 수 있다.
도 5a는 종속적 전력 관리 방법에 따라 저 전력 상태로 진입하는 과정을 설명하기 위한 흐름도이다.
S510 단계에서, 각 코어는 테스크 종료 여부를 판단한다. 예를 들어 제1 코어(111)는 호스트 테스크가 종료되었는지 판단하고, 제2 코어(112)는 메모리 테스크가 종료되었는지 판단한다.
S520 단계에서, 테스크가 종료된 코어는 마스터 코어에 테스크가 종료되었음을 알린다. 마스터 코어는 종속적 전력 관리 방법에서 저장 장치(10)의 기능 블록들(120,130,140) 및 비휘발성 메모리(200)을 제어하는 코어이다. 제1 코어(111) 또는 제2 코어(112)중 하나의 코어가 마스터 코어가 될 수 있는데 호스트 테스크를 수행하는 제1 코어(111)가 마스터 코어가 되는 것이 바람직할 것이다. 따라서, 제2 코어(112)에 할당된 테스크가 종료된 경우, 제2 코어(112)는 마스터 코어인 제1 코어(111)에 테스크가 종료되었음을 알린다.
S530 단계에서, 마스터 코어는 모든 코어의 테스크 종료 여부를 판단한다. 즉, 제1 코어(111)는 S520 단계에서 제2 코어(112)가 테스크 종료를 알렸던 사실과 자신의 테스크 종료 여부에 기초하여 모든 코어의 테스크가 종료되었는지 판단한다.
S540 단계에서는, 모든 코어의 테스크가 종료된 경우, 저장 장치(10)를 저 전력 상태로 전환시킬 것이라는 것을 각 코어에 알린다. 즉, 마스터 코어인 제1 코어(111)는 제2 코어(112)에 기능 블록들(120,130,140) 및 메모리(200)를 저 전력 상태가 되게 할 것이라는 것을 알린다. 이는 저장 장치(10)의 전력 제어를 마스터 코어인 제1 코어(111)가 단독으로 하기 때문에 제2 코어(112)가 기능 블록들(120,130,140)의 상태를 알 수 없기 때문이다. 기능 블록들(120,130,140)이 동작 상태일 때 테스크를 수행하는 것을 보장할 수 있도록 제2 코어(112)에 전력 제어 상태를 알린다.
S550 단계에서는, 저장 장치(10)를 저 전력 상태로 전환시킨다. 즉, 마스터 코어인 제1 코어(111)는 모든 코어의 테스크의 수행이 완료된 후, 저장 장치(10)의 기능 블록들(120,130,140) 및 비휘발성 메모리(200)를 동시에 저 전력 상태가 되게 한다.
도 5b는 종속적 전력 관리 방법에 따라 저 전력 상태에서 동작 상태로 진입하는 과정을 설명하기 위한 흐름도이다.
S511 단계에서, 저장 장치(10)가 호스트(300)로부터 명령을 수신하면, 마스터 코어는 저장 장치(10)를 동작 상태로 진입시킨다. 즉, 마스터 코어인 제1 코어(111)는 저장 장치(10)의 기능 블록들(120,130,140) 및 비휘발성 메모리(200)를 동작 상태로 전환한다.
그후, S512 단계에서, 마스터 코어는 저장 장치(10)가 동작 상태임을 각 코어에 알린다. 즉, 마스터 코어인 제1 코어(111)는 제2 코어(112)에 기능 블록들(120,130,140) 및 비휘발성 메모리(200)이 동작 상태이므로 테스크를 할당 받는 경우 수행할 수 있는 상태임을 알린다. 각 코어가 제어하는 기능불록이 동작 상태일때 테스크를 수행할 수 있도록 하기 위함이다.
S513 단계에서, 각 코어는 제어하는 기능 블록이 동작 상태임을 수신한 경우 할당받은 테스크를 수행할 수 있다.
도 5a와 5b를 참조하면, 종속적 전력 관리 방법은 마스터 코어가 저장 장치(10)의 전체 전력을 관리하여 모든 코어의 테스크가 끝난 경우에만 기능 블록들(120,130,140) 및 비휘발성 메모리(200)를 저 전력 상태로 전환시키기 때문에, 퍼포먼스의 저하가 없다. 그러나 저장 장치(10)의 저 전력 상태 지속 시간이 짧다는 단점이 있다. 따라서 종속적 전력 관리 방법은 호스트(300)로부터 수시한 명령의 패턴이 퍼포먼스 모드를 구성하여 저장 장치(10)가 퍼포먼스 모드로 동작할 때 수행된다. 퍼포먼스 모드로 동작시 퍼포먼스의 저하없이 전력을 관리할 수 있기 때문이다.
도 6은 본 발명에 따른 명령의 패턴을 분석하여 동작 모드를 선택하는 단계를 자세하게 설명하는 흐름도이다.
도 6을 참조하면, 명령의 패턴을 분석하기 위해 명령의 히스토리에 대한 기준 포인트 V를 설정하고, 명령의 히스토리를 바탕으로 명령의 복수의 인자에 따른 연속성 여부에 따라 기준 포인트 V를 증가시키거나 감소시킨다. 누적된 기준 포인트 V의 값으로 명령의 패텬이 퍼포먼스 모드를 구성하는지 저 전력 모드를 구성하는지 판단한다.
첫번째로 S610 단계에서, 호스트(300)로부터 수신한 n개의 명령에 대한 히스토리를 저장한다. 즉, 첫번째 명령부터 n번째 명령까지 n개(n은 1보다 큰 정수)의 명령에 대한 수신 시간, 명령의 속성, 논리 페이지 주소등의 정보를 히스토리로 저장한다. 전력 관리 방법의 전환이 지나치게 자주 일어나는 것을 방지하기 위하여 일정 개수 이상의 명령들에 대한 히스토리를 저장하고 그 패턴을 분석하여 동작모드를 선택하는 것이다. n개 명령의 히스토리는 명령의 패턴을 분석하는 코어, 즉 제1 코어(111)의 내부 버퍼나 큐에 저장될 수 있다. 경우에 따라서는 외부 버퍼나 RAM(122) 또는 저장 장치(10)가 패턴 디텍터(미도시)를 포함하는 경우, 패턴 디텍터(미도시)의 내부 버퍼에 저장될 수 있다.
S620 단계에서, 명령들간 시간의 연속성이 있으면 기준 포인트 V를 1 증가시키고 시간의 연속성이 없으면 기준 포인트 V를 1 감소시킨다. 시간의 연속성은 저장 장치(10)가 호스트(300)로부터 수신하는 명령들 사이의 시간 간격을 체크하여 판단할 수 있다. 즉, n번째 명령의 수신 시간에서 n-1번째 명령의 수신 시간을 뺀 값이 일정 시간, 예를 들어 50ms 이하이면 명령들간 시간의 연속성이 있다고 판단할 수 있고 이에 따라 기준 포인트 V는 1 증가한다. 퍼포먼스 모드의 명령들은 명령 사이의 시간 간격이 짧기 때문에, 저장 장치(10)는 호스트(300)로부터 명령을 수신하고 빠르게 응답을 해주어야 한다.
S630 단계에서, 명령들이 요구하는 논리 페이지 주소가 연속성이 있으면 기준 포인트 V를 1 증가시키고 연속성이 없으면 기준 포인트 V를 1 감소시킨다. 논리 페이지 주소의 연속성은 연속된 주소의 데이터가 사용되는지 체크하는 것이다. 예를들어, n-1번째 명령의 논리 페이지 주소에 n-1번째 명령의 섹터 카운트를 더한 값이 n번째 명령의 논리 페이지 주소와 같다면 n-1번째 명령과 n번째 명령은 논리 페이지 주소의 연속성이 있다고 판단되고 기준 포인트 V를 1 증가시킨다. 연속된 논리 페이지 주소의 데이터가 읽기 또는 쓰기가 된다는 것은 특정 어플리케이션이나 프로그램이 동작하는 것을 의미한다. 예를 들어, 데이터의 복사 또는 비디오의 출력은 시퀀셜한 읽기 또는 쓰기를 해야하기 때문에, 저장 장치(10)는 퍼포먼스 모드로 동작하여야 하고 독립적인 전력 관리보다는 종속적 전력 관리로 최대한 사용자에게 프리징 현상이 없도록 보여주는 것이 중요하다.
S630 단계는 유저 애플리케이션의 동작 방식에 따라 주소의 연속성 알고리즘 구성이 변경될 것을 가정한다. 예를 들어, 게임과 같은 애플리케이션은 랜덤으로 논리 페이지를 구성할 수 있기 때문이다.
S640 단계에서, 명령들의 속성이 data 타입이고 연속성이 있으면 기준 포인트 V를 1 증가시키고, non-data 타입의 명령으로 연속성이 있거나 또는 연속성이 없으면 기준 포인트 V를 1 감소시킨다. 예를들어, n번째 명령과 n-1번째 명령이 data 타입의 명령이면, 명령들은 data 타입의 명령으로 연속성이 있으므로 기준 포인트 V를 1 증가시킨다. 만약 n번째 명령은 non-data 타입이고, n-1 번째 명령은 data 타입이면 명령의 속성이 연속성이 없으므로 기준 포인트 V를 1 감소시킨다. 또한, n번째 명령과 n-1번째 명령이 non-data 타입의 명령이면, non-data 타입의 명령으로 연속성이 있으므로 기준 포인트 V를 1 감소시킨다.
Data 타입의 명령이란, I/O에서 읽기 또는 쓰기를 필요로 하는, 유저가 사용하는 data를 입출력 하기 위한 명령을 의미한다. Non-data 타입 명령이란 저장 장치(10)의 저장 용량, 상태 정보등 유저가 사용하기 위한 데이타가 아닌 저장 장치(10)를 관리하기 위한 정보등을 포함하는 데이터를 입출력 하기 위한 명령을 의미한다. Data 타입의 명령들은 유저가 사용하기 위한 정보를 입력 또는 출력하기 위해 빠른 응답속도가 요구되지만, non-data 타입의 명령들은 사용자에게 보여지는 정보를 입력 또는 출력하기 위한 것이 아니므로 Data 타입의 명령만큼 빠른 응답속도가 요구되지 않는다.
호스트 인터페이스 방식인 SATA 인터페이스의 데이터 입출력 방식으로, DMA(Direct Memory Access), FPDMA(First Party DMA), PIO(Programmed Input/Output) 및 Multiple 방식이 있는데 DMA/FPDM 명령들은 프로세싱 코어에 의한 프로그램의 실행없이 데이터의 이동을 할 수 있도록 하여 입출력의 속도를 향상시킨 방식인바 빠른 응답속도가 요구되므로 Data 타입 명령으로 구분된다. 반면에 PIO(Programmed Input/Output)/Multiple 명령들은 저 전력 모드에서 동작하여도 성능에 크게 영향을 받지 않기 때문에 non-data 타입의 명령으로 구분된다.
S650 단계에서, 호스트로부터 수신된 명령이 리셋, 스탠바이 또는 슬립 명령이면 기준 포인트 V를 0으로 리셋한다. 스탠바이 또는 슬립 명령은 전력 보전 명령으로 빠른 응답속도를 요구하지 않는다. 또한, 리셋 명령은 저장 장치(10)를 초기화 시키는 명령으로, 초기화 이후 새로운 명령에 따른 테스크를 수행 할 때까지 I/O의 엑세스가 거의 존재하지 않는다. 따라서, 독립적 전력 관리 방법으로 바로 전환하여 저 전력 상태로 진입하는 시간을 최소화할 수 있다.
S660 단계에서, 상술한 단계를 거쳐 누적된 기준 포인트 V의 값이 모드 선택 기준치 이상인지 여부를 판단한다. 모드 선택 기준치는 퍼포먼스 모드인지 저 전력 모드인지를 판단하는 기준값이다. 기준 포인트 V가 모드 선택 기준치를 초과하면 호스트(300)로부터 수신한 명령들은 퍼포먼스 모드를 구성하고(S670), 기준 포인트 V가 모드 선택 기준치 이하이면 명령들은 저 전력 모드를 구성한다고 판단한다(S680).
시간, 논리 페이지 주소의 연속성 및 명령의 속성, 이 세가지 특성을 고려하여 명령의 패턴을 분석하였으나 퍼포먼스 모드 또는 저 전력 모드로 동작해야 하는지 판단할 수 있는 다른 인자를 고려하여 판단할 수 있음은 자명하다.
도 6에서 호스트(300)로부터 수신한 명령의 히스토리를 기반으로 명령의 패턴을 분석하였을 때, 명령들간 시간과 논리 페이지 주소의 연속성이 있고, 명령의 속성이 Data 타입으로 연속되면 I/O의 엑세스가 빈번하여 응답속도가 중요한 퍼포먼스 모드를 구성한다. 도 1에서 퍼포먼스 모드일 경우 저장 장치는 종속적 전력 관리 방법으로 전력을 관리하고 저 전력 모드일 경우 독립적 전력 관리 방법으로 전력을 관리하였다. 종속적 전력 관리 방법으로 전력 관리를 수행하여 저장 장치(10)가 빈번하게 저 전력 상태가 되는 것을 방지할 수 있다.
반면에, I/O의 엑세스가 빈번하지 않은 명령의 경우, 저 전력 모드를 구성한다고 판단하고 독립적 전력 관리 방법으로 저장 장치가(10) 저 전력 상태인 구간을 길게 유지하도록 하여 소비 전력을 감소시킬 수 있다.
도 7은 본 발명의 다른 실시예에 따라 명령의 패턴을 분석하여 동작 모드를 선택하는 과정을 설명한 흐름도이다.
S710 단계에서, 호스트(300)로부터 수신한 명령이 리셋, 스텐바이 또는 슬립 명령인지 판단한다. 수신한 명령이 리셋, 스텐바이 또는 슬립명령 중 하나일 경우, 저장 장치(10)의 동작 모드는 저 전력 모드가 선택된다. 도 6을 참조하여 전술하였듯이 스텐바이 및 슬립 명령은 전력 보전 명령이고, 리셋 명령 또한 저장 장치(10)의 빠른 응답 속도를 요하지 않으므로 저장 장치(10)가 빠르게 저 전력 상태로 전환되게 하여 소비 전력을 감소시키기 위함이다.
S720 단계에서, 수신한 명령이 리셋, 스텐바이 및 슬립 명령이 아닌 경우, 호스트로부터 수신한 n개의 명령의 히스토리를 저장한다.
S730 단계에서는, S720 단계에서 저장한 n개 명령의 히스토리를 바탕으로 명령의 연속성을 판단하여 명령의 패턴을 분석한다. 명령의 패턴은 명령의 시간의 연속성, 논리 페이지 주소의 연속성 그리고 명령의 속성 중 하나 이상의 인자를 고려하여 분석할 수 있다. 따라서, S730 단계는 도 6의 S620 내지 S650 단계를 포함 할 수 있다.
S730 단계에서 분석한 명령의 패턴이 연속성이 있다고 판단되면, 저장 장치(10)는 퍼포먼스 모드로 동작하여야 한다고 판단된다(S740). 반면, 명령의 패턴이 연속성이 없다고 판단되면, 저장 장치(10)는 저 전력 모드로 동작하여야 한다고 판단된다(S750).
도 8은 본 발명의 다른 실시예에 따른 전력 관리 방법을 나타낸 흐름도이다.
도 8을 참조하면, 저장 장치(10)는 기본적으로 종속적 전력 관리 방법으로 전력 관리를 수행한다(S810). 외부로부터 전력 관리 ON 신호를 수신하면(S820) 호스트(300)로부터 수신한 명령의 패턴을 분석하여(S830) 저장 장치(10)의 동작 모드를 선택하고(S840) 그에 따라, 종속적 전력 관리 또는 독립적 전력 관리가 수행된다(S850, S860).
전력 관리 ON 신호는 명령의 패턴을 분석하여 전력 관리 방법을 선택하고 이에따라 전력 관리를 시작할 것을 명령하는 신호로, 저장 장치(10)를 포함한 시스템의 전력 상황에 따라 시스템의 CPU 또는 전력 관리부로부터 수신할 수 있다. 예를들어, 저장 장치(10)가 노트북과 같은 디바이스에 사용되는 경우, 노트북이 전력 공급의 제한이 없는 외부 전원으로부터 전력을 인가받아 동작할 때면 소비 전력의 감소보다 성능이 중요하므로 종속적 전력 관리 방법에 따라 저장 장치의 전력이 관리된다. 이때, 노트북의 전원이 배터리와 같이 제한된 전력을 공급하는 전원으로 변경되는 경우, 저장 장치(10)의 성능과 함께 소비 전력을 감소시키는 것이 중요하게 됨에 따라 노트북의 CPU 또는 전력 관리부는 저장 장치(10)에 전력 관리 ON 신호를 보낼 수 있다.
이밖에, 저장 장치(10)가 외부로부터 전력 관리 ON 신호를 수신하는 경우는, 저장 장치(10)를 포함하는 컴퓨팅 시스템, 또는 서버 시스템의 제어 상태에 따라 다양할 수 있다.
다음으로, 외부로부터 수신한 n개 명령의 패턴을 분석하여(S830) 명령의 패턴이 퍼포먼스 모드를 구성하는지 판단하고(S840), 퍼포먼스 모드를 구성하는 경우 저장 장치(10)는 종속적 전력 관리 방법에 의하여 전력 관리가 수행된다(850). 퍼포먼스 모드가 아니라면, 즉, 저 전력 모드인 경우 독립적 전력 관리 방법에 의하여 저장 장치(10)의 전력이 관리된다(S860).
명령의 패턴을 분석하여 저장 장치(10)의 동작 모드를 선택하는 단계(S830, S840)는 도 6 또는 도 7을 참조하여 설명된 방법 중 어느 하나가 될 수 있다. 따라서, 자세한 설명은 생략하기로 한다.
다음으로, 외부로부터 전력 관리 OFF 신호를 수신하였는지 판단하여(S870), 전력 관리 OFF 신호를 수신하면 종속적 전력 관리로 저장 장치(10)의 전력 관리가 수행되고(S880), 그렇지 않으면, 계속하여 n개의 명령의 패턴을 분석하여 명령의 패턴에 따른 저장 장치(10)의 동작 모드에 따라 종속적 전력 관리 또는 독립적 전력 관리 방법으로 저장 장치(10)의 전력이 관리된다(S820~S860).
즉, 도 8의 실시예에 따른 전력 관리 방법에 따르면, 저장 장치(10)의 소비 전력 감소보다 응답 속도 등 저장 장치(10)의 성능이 중요한 경우, 항상 종속적으로 전력 관리 방법을 수행하고, 성능과 소비 전력 감소가 모두 중요한 경우, 즉 외부로부터 전력 관리 온 신호를 수신한 경우에만, 호스트(300)로부터 수신한 명령의 패턴을 분석하여 저장 장치(10)의 동작 모드에 따른 전력 관리가 수행된다.
도 9는 본 발명의 또 다른 실시예에 따른 저장 장치의 블록도이다.
도 9를 참조하면, 저장 장치(20)의 제어부(100')는 제1 코어(111), 제2 코어(112), 제3 코어(113) 및 복수개의 기능 블록들(120,130,140,150)을 포함한다. 제 1 코어(111), 제2 코어(112) 및 제3 코어(113)는 호스트(300)와 관련된 작업과 메모리(200)에 관련된 작업을 나누어 실행한다. 테스크 수행시, 제1 기능 블록은 제1 코어에 의하여, 제2 기능 블록은 제2 코어에 의하여, 제3 기능 블록은 제3 코어에 의하여 제어된다.
본 발명의 실시예에 따라, 호스트(300)로부터 수신한 명령의 패턴이 퍼포먼스 모드를 구성하여 종속적 전력 관리 방법이 수행되면, 마스터 코어, 예를 들어 제1 코어(111)가 제1 코어(111), 제2 코어(112) 및 제3 코어(113)의 테스크 수행 여부를 확인하여 기능 블록들(120,130,140,150) 및 메모리(200)의 전력을 관리한다.
호스트(300)로부터 수신한 명령의 패턴이 저 전력 모드를 구성하여 독립적 전력 관리 방법이 수행되면, 코어 각각이 제어하는 기능 블록의 전력을 관리한다.
종속적 전력 관리 방법과 독립적 전력 관리 방법은 도 4 및 도 5를 참조하여 상술한바, 자세한 설명은 생략하기로 한다.
도 10은 본 발명의 실시예에 따른 컴퓨팅 시스템 장치를 나타내는 블럭도이다.
본 발명의 실시예에 따른 컴퓨팅 시스템 장치(CSYS)는 버스(BUS)에 전기적으로 연결된 프로세서(CPU), 사용자 인터페이스(UI) 및 저장 장치(Storage)를 구비한다. 저장 장치(Storage)는 복수개의 프로세싱 코어를 포함한다. 도 10의 저장 장치(Storage)는 도 1의 방법에 따라서 전력이 관리된다. 따라서, 도 10의 컴퓨팅 시스템 장치(CSYS)는 복수개의 프로세싱 코어들을 포함하는 저장 장치(Storage)를 사용하여 빠른 성능을 구비하면서도 전력 소모를 줄일 수 있다.
본 발명의 실시예에 따른 컴퓨팅 시스템 장치(CSYS)가 모바일 장치인 경우, 컴퓨팅 시스템의 동작 전압을 공급하기 위한 배터리 및 베이스밴드 칩셋(baseband chipset)과 같은 모뎀이 추가적으로 제공될 수 있다. 또한, 본 발명의 실시예에 따른 컴퓨팅 시스템 장치(CSYS)에는 파워 공급 장치(PS)를 더 구비할 수 있으며, 응용 칩셋(application chipset), 카메라 이미지 프로세서(Camera Image Processor: CIS), 모바일 디램, 등이 더 제공될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명한 사항인 바, 더 자세한 설명은 생략한다.
도 11은 저장 장치(Storage)를 포함하는 서버 시스템 및 네트워크 시스템을 나타내는 도면이다.
도 11을 참조하면, 본 발명의 실시예에 따른 네트워크 시스템(NSYS)은 네트워크를 통해 연결되는 서버 시스템(SSYS) 및 다수의 단말들(TEM1~TEMn)을 포함할 수 있다. 본 발명의 실시예에 따른 서버 시스템(SSYS)은 네트워크에 연결되는 다수의 단말들(TEM1~TEMn)로부터 수신되는 요청을 처리하는 서버(SERVER) 및 단말들(TEM1~TEMn)로부터 수신되는 요청에 대응되는 데이터를 저장하는 저장 장치(Storage)를 포함하는할 수 있다. 이때, 도 11의 저장 장치(Storage)는 도 2의 솔리드 스테이트 드라이버(SSD)일 수 있다. 즉, 도 11의 저장 장치(Storage)는 복수개의 프로세싱 코어를 포함하는 SSD이고, SSD는 도 1 등의 방법으로 전력을 관리하는 저장 장치(Storage)일 수 있다. 따라서, 도 11의 서버 시스템(SSYS) 및 네트워크 시스템(NSYS)에 의하면, 복수개의 프로세싱 코어들을 포함하는 저장 장치(Storage)를 사용하여 빠른 성능을 구비하면서도 전력 소모를 줄일 수 있다.
본 발명은 도면에 도시된 실시예를 참고로 설명되었으며, 여기서 특정한 용어들은 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다.
또한 상기 실시예는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 다른 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의하여 정해져야 할 것이다.
10: 저장 장치 100: 제어부
200: 메모리 300: 호스트
111: 제1 코어 112: 제2 코어
113: 제3 코어 120: 공유 기능 블록
130: 제1 기능 블록 140: 제2 기능 블록

Claims (10)

  1. 제1 기능 블록을 제어하는 제1 프로세싱 코어 및 제2 기능 블록을 제어하는 제2 프로세싱 코어를 포함하는 저장 장치에 있어서,
    외부로부터 수신한 명령의 패턴을 분석하는 단계;
    상기 분석된 패턴에 기초하여 상기 저장 장치의 동작 모드를 선택하는 단계; 및
    상기 선택된 동작 모드가 제1 모드일 경우, 상기 제1 프로세싱 코어가 상기 저장 장치의 전력을 관리하고, 상기 선택된 동작 모드가 제2 모드일 경우, 상기 제1 프로세싱 코어 및 상기 제2 프로세싱 코어가 각각, 제어하는 기능 블록의 전력을 관리하는 단계를 포함하는 저장 장치의 전력 관리 방법.
  2. 제1 항에 있어서, 상기 제1 프로세싱 코어가 상기 저장 장치의 전력을 관리하는 단계는,
    상기 제1 프로세싱 코어가 상기 제1 프로세싱 코어 및 상기 제2 프로세싱 코어에 할당된 테스크의 종료여부를 판단하는 단계; 및
    상기 제1 프로세싱 코어 및 상기 제2 프로세싱 코어에 할당된 테스크가 종료된 경우, 상기 제1 프로세싱 코어가 상기 저장 장치의 제1 기능 블록, 제2 기능 블록 및 공유 기능 블록을 저 전력 상태로 전환시키는 단계를 포함하는 저장 장치의 전력 관리 방법.
  3. 제1 항에 있어서, 상기 제1 프로세싱 코어 및 상기 제2 프로세싱 코어가 각각, 제어하는 기능 블록의 전력을 관리하는 단계는,
    상기 제1 프로세싱 코어 및 상기 제2 프로세싱 코어가 각각 할당된 테스크가 종료되었는지 판단하는 단계; 및
    테스크가 종료된 프로세싱 코어는 제어하는 기능 블록을 저 전력 상태로 전환시키는 단계를 포함하는 저장 장치의 전력 관리 방법.
  4. 제3 항에 있어서, 상기 제1 프로세싱 코어 및 상기 제2 프로세싱 코어가 제어하는 공유 기능 블록을 더 포함하고,
    상기 제1 프로세싱 코어 및 상기 제2 프로세싱 코어가 각각, 제어하는 기능 블록의 전력을 관리하는 단계는,
    상기 테스크가 종료된 프로세싱 코어가 상기 제1 프로세싱 코어 및 제2 프로세싱 코어가 공유하는 메모리에 테스크가 종료되었음을 알리는 정보를 기입하는 단계;
    상기 제1 프로세싱 코어가, 상기 공유하는 메모리를 체크하여 상기 제1 프로세싱 코어 및 상기 제2 프로세싱 코어의 테스크가 종료되었음을 확인하는 단계; 및
    상기 제1 프로세싱 코어가, 상기 공유 기능 블록을 저 전력 상태로 전환시키는 단계를 더 포함하는 저장 장치의 전력 관리 방법.
  5. 제1 항에 있어서, 상기 명령의 패턴을 분석하는 단계는,
    상기 명령의 패턴을 시간의 연속성, 논리 페이지 주소의 연속성 또는 명령의 속성의 연속성 중 적어도 하나 이상의 인자에 따라서 분석하는 것을 특징으로 하는 저장 장치의 전력 관리 방법.
  6. 제1 항에 있어서, 상기 명령의 패턴을 분석하는 단계는,
    상기 외부로부터 수신한 n개(n은 1보다 큰 정수)의 명령에 대한 히스토리를 저장하는 단계; 및
    상기 명령의 히스토리에 대한 기준 포인트를 설정하고, 상기 명령의 히스토리를 바탕으로 상기 명령이 시간의 연속성, 논리 페이지 주소의 연속성 또는 속성의 연속성이 있는지 여부를 판단하여 이에 따라 기준 포인트를 증가시키거나 감소시키는 단계를 포함하는 저장 장치의 전력 관리 방법.
  7. 제6 항에 있어서, 상기 저장 장치의 동작 모드를 선택하는 단계는,
    상기 기준 포인트의 누적값이 모드 선택 기준치를 초과하면 제1 모드로 판단하고, 모드 선택 기준치 이하면, 제2 모드로 판단하는 것을 특징으로 하는 저장 장치의 전력 관리 방법.
  8. 제1 항에 있어서,
    상기 저장 장치는 솔리드 스테이트 드라이브(SDD)인 것을 특징으로 하는 저장 장치의 전력 관리 방법.
  9. 제1 기능 블록을 제어하는 제1 프로세싱 코어 및 제2 기능 블록을 제어하는 제2 프로세싱 코어를 포함하는 대용량 저장 장치에 있어서,
    상기 저장 장치가 제1 프로세싱 코어에 의하여 전력이 관리되는 단계;
    외부로부터 전력 관리 온 신호를 수신하는 단계;
    외부로부터 수신한 n개(n은 1보다 큰 정수) 명령의 패턴을 분석하여 상기 저장 장치의 동작 모드를 선택하는 단계; 및
    저 전력 모드가 선택되는 경우, 제1 프로세싱 코어 및 제2 프로세싱 코어가 각각, 제어하는 기능 블록의 전력을 관리하도록 전환되는 단계를 포함하는 대용량 저장 장치의 전력 관리 방법.
  10. 제9 항에 있어서,
    외부로부터 수신한 또 다른 n개의 명령의 패턴을 분석하여 상기 저장 장치의 동작 모드를 선택하는 단계; 및
    퍼포먼스 모드가 선택되는 경우, 제1 프로세싱 코어가 상기 저장 장치의 전력을 관리하도록 전환되는 단계를 더 포함하는 대용량 저장 장치의 전력 관리 방법.
KR1020110063040A 2011-06-28 2011-06-28 멀티 코어를 포함하는 저장 장치의 전력 관리 방법 KR20130002046A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020110063040A KR20130002046A (ko) 2011-06-28 2011-06-28 멀티 코어를 포함하는 저장 장치의 전력 관리 방법
US13/530,840 US9110669B2 (en) 2011-06-28 2012-06-22 Power management of a storage device including multiple processing cores

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110063040A KR20130002046A (ko) 2011-06-28 2011-06-28 멀티 코어를 포함하는 저장 장치의 전력 관리 방법

Publications (1)

Publication Number Publication Date
KR20130002046A true KR20130002046A (ko) 2013-01-07

Family

ID=47391918

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110063040A KR20130002046A (ko) 2011-06-28 2011-06-28 멀티 코어를 포함하는 저장 장치의 전력 관리 방법

Country Status (2)

Country Link
US (1) US9110669B2 (ko)
KR (1) KR20130002046A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101706088B1 (ko) * 2015-11-10 2017-02-13 홍성규 Ssd 제어기에서의 프로세서 스위칭 방법 및 장치
US20180165954A1 (en) * 2016-07-26 2018-06-14 Faraday&Future Inc. Dynamic traffic lane assignment

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9876762B2 (en) * 2012-12-31 2018-01-23 Elwha Llc Cost-effective mobile connectivity protocols
US9451394B2 (en) 2012-12-31 2016-09-20 Elwha Llc Cost-effective mobile connectivity protocols
US9980114B2 (en) 2013-03-15 2018-05-22 Elwha Llc Systems and methods for communication management
US9635605B2 (en) 2013-03-15 2017-04-25 Elwha Llc Protocols for facilitating broader access in wireless communications
US9832628B2 (en) 2012-12-31 2017-11-28 Elwha, Llc Cost-effective mobile connectivity protocols
US8965288B2 (en) 2012-12-31 2015-02-24 Elwha Llc Cost-effective mobile connectivity protocols
US9713013B2 (en) 2013-03-15 2017-07-18 Elwha Llc Protocols for providing wireless communications connectivity maps
US9781664B2 (en) 2012-12-31 2017-10-03 Elwha Llc Cost-effective mobile connectivity protocols
US9596584B2 (en) 2013-03-15 2017-03-14 Elwha Llc Protocols for facilitating broader access in wireless communications by conditionally authorizing a charge to an account of a third party
US9866706B2 (en) 2013-03-15 2018-01-09 Elwha Llc Protocols for facilitating broader access in wireless communications
US9693214B2 (en) 2013-03-15 2017-06-27 Elwha Llc Protocols for facilitating broader access in wireless communications
US9781554B2 (en) 2013-03-15 2017-10-03 Elwha Llc Protocols for facilitating third party authorization for a rooted communication device in wireless communications
US9706382B2 (en) 2013-03-15 2017-07-11 Elwha Llc Protocols for allocating communication services cost in wireless communications
US9843917B2 (en) 2013-03-15 2017-12-12 Elwha, Llc Protocols for facilitating charge-authorized connectivity in wireless communications
US9807582B2 (en) 2013-03-15 2017-10-31 Elwha Llc Protocols for facilitating broader access in wireless communications
US9706060B2 (en) 2013-03-15 2017-07-11 Elwha Llc Protocols for facilitating broader access in wireless communications
US9813887B2 (en) 2013-03-15 2017-11-07 Elwha Llc Protocols for facilitating broader access in wireless communications responsive to charge authorization statuses
KR102114109B1 (ko) * 2013-10-17 2020-05-22 에스케이하이닉스 주식회사 데이터 저장 장치
SG10201406338XA (en) * 2014-10-03 2016-05-30 Agency Science Tech & Res Active storage devices
US11399344B2 (en) * 2015-01-26 2022-07-26 Apple Inc. System and method for SoC idle power state control based on I/O operation characterization
US9858201B2 (en) 2015-02-20 2018-01-02 Qualcomm Incorporated Selective translation lookaside buffer search and page fault
US9658793B2 (en) 2015-02-20 2017-05-23 Qualcomm Incorporated Adaptive mode translation lookaside buffer search and access fault
CN105933460A (zh) * 2016-07-10 2016-09-07 中国传媒大学 面向高校电子电路实验室的智能电源监测系统
KR20200069905A (ko) * 2018-12-07 2020-06-17 삼성전자주식회사 스토리지 시스템 및 스토리지 시스템의 동작 방법
CN110928719A (zh) * 2019-11-19 2020-03-27 深圳忆联信息系统有限公司 Ssd低功耗模式异常处理方法、装置、计算机设备及存储介质
KR20210156061A (ko) * 2020-06-17 2021-12-24 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
CN112162710A (zh) * 2020-10-30 2021-01-01 深圳忆联信息系统有限公司 降低芯片功耗的方法、装置、计算机设备及存储介质

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5682273A (en) * 1995-06-30 1997-10-28 International Business Machines Corporation Disk drive for portable computer with adaptive demand-driven power management
US7490296B2 (en) * 2003-01-31 2009-02-10 Microsoft Corporation Utility object for specialized data entry
JP2005157620A (ja) * 2003-11-25 2005-06-16 Matsushita Electric Ind Co Ltd 半導体集積回路
EP1555595A3 (en) * 2004-01-13 2011-11-23 LG Electronics, Inc. Apparatus for controlling power of processor having a plurality of cores and control method of the same
US7284137B2 (en) * 2004-06-29 2007-10-16 Intel Corporation System and method for managing power consumption within an integrated circuit
US7966511B2 (en) * 2004-07-27 2011-06-21 Intel Corporation Power management coordination in multi-core processors
US7426648B2 (en) * 2004-09-30 2008-09-16 Intel Corporation Global and pseudo power state management for multiple processing elements
JP4082706B2 (ja) 2005-04-12 2008-04-30 学校法人早稲田大学 マルチプロセッサシステム及びマルチグレイン並列化コンパイラ
KR100801015B1 (ko) * 2006-08-30 2008-02-04 삼성전자주식회사 하이브리드 하드 디스크 드라이브와 데이터 저장 방법
US7949887B2 (en) 2006-11-01 2011-05-24 Intel Corporation Independent power control of processing cores
US8948822B2 (en) 2008-04-23 2015-02-03 Qualcomm Incorporated Coordinating power management functions in a multi-media device
KR101449046B1 (ko) 2008-09-17 2014-10-08 엘지전자 주식회사 멀티 프로세서 및 이를 이용한 전원 절감 방법
US8245070B2 (en) * 2008-12-30 2012-08-14 Intel Corporation Method for optimizing voltage-frequency setup in multi-core processor systems
US20100274653A1 (en) * 2009-04-28 2010-10-28 Ayman Hammad Notification social networking
US20120284544A1 (en) * 2011-05-06 2012-11-08 Microsoft Corporation Storage Device Power Management

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101706088B1 (ko) * 2015-11-10 2017-02-13 홍성규 Ssd 제어기에서의 프로세서 스위칭 방법 및 장치
US20180165954A1 (en) * 2016-07-26 2018-06-14 Faraday&Future Inc. Dynamic traffic lane assignment

Also Published As

Publication number Publication date
US9110669B2 (en) 2015-08-18
US20130007488A1 (en) 2013-01-03

Similar Documents

Publication Publication Date Title
KR20130002046A (ko) 멀티 코어를 포함하는 저장 장치의 전력 관리 방법
US8327177B2 (en) System and method for information handling system storage device power consumption management
US8656196B2 (en) Hardware automatic performance state transitions in system on processor sleep and wake events
KR100663864B1 (ko) 멀티-코어 프로세서의 프로세서 모드 제어장치 및 방법
KR102114453B1 (ko) 모바일 장치 및 그것의 제어 방법
US20110047316A1 (en) Solid state memory device power optimization
RU2624563C2 (ru) Оперативное регулирование производительности твердотельных запоминающих устройств
TW201942738A (zh) 電子機器、電腦系統及其等之控制方法
KR102114109B1 (ko) 데이터 저장 장치
EP3872641B1 (en) Storage device and method of operating the storage device
KR20140014146A (ko) 동면으로부터의 다중 페이즈 재개
US10489072B2 (en) Activity based device initiated state transitions
JP2019159802A (ja) 記憶装置の電力制御方法および記憶装置
US9541985B2 (en) Energy efficient optimization in multicore processors under quality of service (QoS)/performance constraints
KR20100031132A (ko) 플래시 메모리 시스템에서 페이징된 가비지 수집과 하우스 키핑 동작
EP2972826B1 (en) Multi-core binary translation task processing
US20140129759A1 (en) Low power write journaling storage system
US10690368B2 (en) Information processing apparatus and information processing system
US10635154B2 (en) Intelligent SAS phy power management
US11144234B2 (en) Apparatus, method for storage access management, and non-transitory computer-readable storage medium for storing program
US20210096634A1 (en) Reducing power consumption in nonvolatile memory due to standby leakage current
EP2527973A1 (en) Computer system with multiple operation modes and method of switching modes thereof
KR101463533B1 (ko) 모바일 장치에서의 비대칭 멀티 프로세서 코어 스케줄링 방법 및 모바일 장치
JP3935873B2 (ja) プリフェッチ・バッファを用いたメモリ電力管理
KR102143269B1 (ko) I/o 동작 특성에 기초한 soc 유휴 전력 상태 제어를 위한 시스템 및 방법

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid