KR102480017B1 - 입출력 장치의 성능 및 전력소모를 조절하는 메모리 컨트롤러, 어플리케이션 프로세서 및 메모리 컨트롤러의 동작방법 - Google Patents

입출력 장치의 성능 및 전력소모를 조절하는 메모리 컨트롤러, 어플리케이션 프로세서 및 메모리 컨트롤러의 동작방법 Download PDF

Info

Publication number
KR102480017B1
KR102480017B1 KR1020170102560A KR20170102560A KR102480017B1 KR 102480017 B1 KR102480017 B1 KR 102480017B1 KR 1020170102560 A KR1020170102560 A KR 1020170102560A KR 20170102560 A KR20170102560 A KR 20170102560A KR 102480017 B1 KR102480017 B1 KR 102480017B1
Authority
KR
South Korea
Prior art keywords
time
power
set value
down mode
value
Prior art date
Application number
KR1020170102560A
Other languages
English (en)
Other versions
KR20190017552A (ko
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 KR1020170102560A priority Critical patent/KR102480017B1/ko
Priority to US15/957,611 priority patent/US11086388B2/en
Priority to CN201810462339.1A priority patent/CN109388339B/zh
Priority to SG10201804845PA priority patent/SG10201804845PA/en
Priority to TW107120484A priority patent/TWI774787B/zh
Publication of KR20190017552A publication Critical patent/KR20190017552A/ko
Application granted granted Critical
Publication of KR102480017B1 publication Critical patent/KR102480017B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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
    • 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/3225Monitoring of peripheral devices of memory 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/3237Power saving characterised by the action undertaken by disabling clock generation or distribution
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Power Sources (AREA)
  • Electrotherapy Devices (AREA)
  • Electrophonic Musical Instruments (AREA)

Abstract

입출력 장치의 성능 및 전력 소모를 조절하는 메모리 컨트롤러, 어플리케이션 프로세서 및 메모리 컨트롤러의 동작방법이 개시된다. 본 개시의 기술적 사상의 일측면에 따른 메모리 컨트롤러의 동작방법은, 아이들 상태가 현재 설정된 제1 설정값에 대응하는 제1 시간 동안 지속된 후 메모리 장치를 파워다운 모드로 진입시키는 단계와, 상기 메모리 장치에 대한 억세스가 발생됨에 따라 상기 메모리 장치를 액티브 구간으로 진입시키는 단계와, 상기 메모리 장치의 구동 패턴을 모니터링한 결과에 따라 상기 제1 설정값을 제2 설정값으로 변경하는 단계 및 아이들 상태가 상기 변경된 제2 설정값에 대응하는 제2 시간 동안 지속된 후 상기 메모리 장치를 상기 파워다운 모드로 진입시키는 단계를 구비하는 것을 특징으로 한다.

Description

입출력 장치의 성능 및 전력소모를 조절하는 메모리 컨트롤러, 어플리케이션 프로세서 및 메모리 컨트롤러의 동작방법{Memory Controller and Application Processor controlling performance/power of input/output device and Operating Method of Memory Controller}
본 개시의 기술적 사상은 메모리 컨트롤러 및 어플리케이션 프로세서에 관한 것으로서, 상세하게는 입출력 장치의 성능 및 전력 소모를 조절하는 메모리 컨트롤러, 어플리케이션 프로세서 및 메모리 컨트롤러의 동작방법에 관한 것이다.
메모리 컨트롤러 또는 어플리케이션 프로세서(Application Processor, AP)는 데이터 처리 시스템 등의 전자 시스템 내에 채용되어 다양한 주변 장치들과 각종 신호를 입출력할 수 있다. 일 예로서, 메모리 컨트롤러는 DRAM 등의 휘발성 메모리 장치나 플래시 또는 저항성 메모리 등의 불휘발성 메모리 장치를 제어할 수 있다. 또한, 메모리 컨트롤러의 기능은 어플리케이션 프로세서 내에 집적될 수 있으며, 어플리케이션 프로세서는 메모리 장치나 디스플레이 장치, 이미지 센서 및 통신 칩 등 다양한 종류의 입출력 장치들을 제어할 수 있다.
메모리 장치를 예로 들면, 데이터 처리 시스템의 동작 시 메모리 장치에 대한 억세스가 수행되지 않는 아이들(Idle) 구간이 존재하며, 전력 소모를 감소하기 위해 아이들 구간이 소정 시간 지속된 이후에 메모리 장치는 파워다운 모드로 진입하도록 제어될 수 있다. 이 때, 메모리 장치는 소모 전력 및 동작 성능을 고려하여 최적화된 제어가 요구로 된다.
본 발명의 기술적 사상이 해결하려는 과제는, 메모리 장치 및 기타 입출력 장치들에 대한 최적화된 제어를 수행할 수 있는 메모리 컨트롤러, 어플리케이션 프로세서 및 메모리 컨트롤러의 동작방법을 제공하는 데 있다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 따른 메모리 컨트롤러의 동작방법은, 아이들 상태가 현재 설정된 제1 설정값에 대응하는 제1 시간 동안 지속된 후 상기 메모리 장치를 파워다운 모드로 진입시키는 단계와, 상기 메모리 장치에 대한 억세스가 발생됨에 따라 상기 메모리 장치를 상기 파워다운 모드로부터 액티브 구간으로 진입시키는 단계와, 상기 파워다운 모드의 유지 시간을 판단함으로써 상기 메모리 장치의 구동 패턴을 모니터링한 결과에 기반하여 상기 제1 설정값을 제2 설정값으로 변경하는 단계 및 상기 변경된 제2 설정값에 따라, 아이들 상태가 상기 제1 시간과는 다른 제2 시간 동안 지속될 때 상기 메모리 장치를 상기 파워다운 모드로 진입시키는 단계를 구비하는 것을 특징으로 한다.
한편, 본 개시의 기술적 사상의 일측면에 따른 메모리 컨트롤러는, 상기 메모리 장치가 파워다운 모드를 유지하는 시간을 판단함으로써 상기 메모리 장치의 구동 패턴을 모니터링하고, 상기 모니터링 결과에 따라 상기 메모리 장치의 동작 성능의 조절에 관련된 설정값을 변경하는 구동 특성 모니터 및 상기 메모리 장치의 동작 중에, 상기 메모리 장치가 상기 파워다운 모드로 진입하기 위한 조건으로서 아이들 상태의 지속 시간을 상기 설정값에 따라 가변함으로써 상기 메모리 장치의 동작 성능을 조절하는 모드 제어기를 구비하는 것을 특징으로 한다.
한편, 본 개시의 기술적 사상의 일측면에 따른 어플리케이션 프로세서의 동작방법은, 초기 설정된 제1 설정값에 따라 입출력 장치의 파워다운 모드의 진입을 제어하는 단계와, 상기 입출력 장치의 파워다운 모드의 유지 시간을 검출함에 기반하여, 상기 어플리케이션 프로세서가 채용된 시스템의 재부팅시에 상기 제1 설정값을 제2 설정값으로 변경하는 단계 및 상기 변경된 제2 설정값에 따라 상기 입출력 장치의 상기 파워다운 모드의 진입을 제어하는 단계를 구비하고, 상기 파워다운 모드의 진입을 위해 상기 입출력 장치로 제공되는 클록 인에이블 신호를 활성화 상태에서 비활성화 상태로 변경시키고, 상기 변경된 제2 설정값에 따라, 상기 입출력 장치가 파워다운 모드로 진입하기 전의 상기 클록 인에이블 신호의 활성화 상태의 유지 구간을 변경시키는 것을 특징으로 한다.
본 발명의 메모리 컨트롤러, 어플리케이션 프로세서 및 메모리 컨트롤러의 동작방법에 따르면, 사용자의 특성에 따른 입출력 장치의 구동 패턴을 모니터링하고, 모니터링 결과에 따라 입출력 장치가 고성능 특성에 적합하게 구동되거나 저전력 특성에 적합하게 구동되도록 실시간으로 조절될 수 있으며, 이에 따라 사용자에 적응하여 입출력 장치에 대한 최적화된 제어를 수행할 수 있는 효과가 있다.
도 1은 본 발명의 예시적인 실시예에 따른 어플리케이션 프로세서를 포함하는 데이터 처리 시스템을 나타내는 블록도이다.
도 2는 도 1의 IP의 일 구현 예를 나타내는 블록도이다.
도 3은 본 발명의 예시적인 실시예에 따른 어플리케이션 프로세서를 나타내는 블록도이다.
도 4a,b는 본 발명의 예시적인 실시예에 따른 모니터링 및 모드 제어 동작의 개념을 나타내는 도면이다.
도 5 및 도 6은 본 발명의 예시적인 실시예에 따른 어플리케이션 프로세서의 동작방법을 나타내는 플로우차트이다.
도 7은 DRAM으로 제공되는 각종 신호들의 일 예를 나타내는 파형도이다.
도 8은 구동 패턴 모니터링 및 모드 제어를 수행하는 메모리 컨트롤러의 구현 예를 나타내는 블록도이다.
도 9는 본 발명의 일 실시예에 따라 설정값의 변경 예를 나타내는 표이다.
도 10은 메모리 컨트롤러의 다른 구현 예를 나타내는 블록도이다.
도 11a,b는 도 10의 메모리 컨트롤러의 동작에 따라 설정값이 변경되는 일 예를 나타내는 표이다.
도 12는 본 발명의 다른 예시적인 실시예에 따른 메모리 컨트롤러의 동작방법을 나타내는 플로우차트이다.
도 13은 구간 비교 동작 및 설정값을 변경하는 다른 예를 나타내는 표이다.
도 14는 본 발명의 실시예에 적용 가능한 DRAM의 각종 구간들의 일 예를 나타내는 도면이다.
도 15는 DRAM의 구동 패턴을 판단하기 위한 파워다운 모드의 다양한 구간 예를 나타내는 도면이다.
도 16a,b는 본 발명의 실시예에 따른 DRAM 구동 시 데이터 독출 레이턴시의 일 예를 나타내는 도면이다.
도 17은 본 발명의 예시적인 실시예에 따른 메모리 시스템을 나타내는 블록도이다.
도 18은 본 발명의 변형 가능한 실시예에 따른 IP를 나타내는 블록도이다.
이하, 첨부한 도면을 참조하여 본 발명의 실시 예에 대해 상세히 설명한다.
도 1은 본 발명의 예시적인 실시예에 따른 어플리케이션 프로세서를 포함하는 데이터 처리 시스템을 나타내는 블록도이다.
데이터 처리 시스템(10)은 어플리케이션 프로세서(100)와 입출력 장치(200)를 포함할 수 있다. 상기 입출력 장치(200)는 어플리케이션 프로세서(100)의 주변 장치에 해당하며, 일 예로서 어플리케이션 프로세서(100)와의 사이에서 정보를 입출력하는 다양한 종류의 장치일 수 있다. 일 실시예에 따라, 입출력 장치(200)는 어플리케이션 프로세서(100)와 데이터(DATA)를 송수신하는 장치일 수 있으며, 예컨대 입출력 장치(200)는 메모리 장치를 포함할 수 있다. 또한, 데이터 처리 시스템(10)은 어플리케이션 프로세서(100)의 내부 구성 및/또는 입출력 장치(200)로 제공되는 전력(power)을 제어하기 위한 PMIC(Power Management Integrated Circuit, 300)를 더 포함할 수 있다.
어플리케이션 프로세서(100)는 시스템 온 칩(System on Chip, SoC)으로 구현될 수 있다. 시스템 온 칩(SoC)은 소정의 표준 버스 규격을 갖는 프로토콜이 적용된 시스템 버스(미도시)를 포함할 수 있으며, 상기 시스템 버스에 연결되는 각종 IP(Intellectual Property, 110)들(또는, IP 블록들)을 포함할 수 있다. 또한, 어플리케이션 프로세서(100)는 프로세서(120) 및 클록 생성기(130)를 더 포함할 수 있다. 도 1에서는 설명의 편의상 하나의 IP(110)가 도시되나, 어플리케이션 프로세서(100)는 하나 이상의 마스터 IP 및 하나 이상의 슬레이브 IP들을 포함할 수 있다.
프로세서(120)는 어플리케이션 프로세서(100)의 전반적인 동작을 제어할 수 있다. 일 실시예에 따라, 프로세서(120)는 어플리케이션 프로세서(100) 내에 구비되는 IP(110)를 제어할 수 있다. 또한, 일 실시예에 따라, 프로세서(120)는 어플리케이션 프로세서(100)의 내부 또는 외부의 동작 메모리(미도시)에 로딩된 소프트웨어를 실행함에 의해 IP(110)를 제어할 수 있다. 일 동작 예로서, 어플리케이션 프로세서(100)는 PMIC(300)를 제어하기 위한 전력 제어신호(Ctrl_P)를 제공하고, PMIC(300)는 전력 제어신호(Ctrl_P)에 응답하여 입출력 장치(200)로 제공되는 파워(power)를 조절할 수 있다.
IP(110)는 입출력 장치(200)의 동작을 제어할 수 있으며, 일 예로 IP(110)는 입출력 장치(200)가 다양한 모드들에 따라 동작하도록 제어할 수 있다. 본 발명의 예시적인 실시예에 따라, IP(110)는 구동 패턴 모니터(111) 및 모드 제어기(122)를 포함할 수 있다. 구동 패턴 모니터(111)는 입출력 장치(200)의 구동 패턴이 고성능 특성에 따라 구동되는지 또는 저전력 특성에 따라 구동되는지를 모니터링할 수 있다. 상기와 같은 구동 패턴을 모니터링하는 동작은 다양하게 수행될 수 있다. 일 실시예에 따라, 구동 패턴 모니터(111)는 입출력 장치(200)의 동작 모드들(또는, 모드 구간의 지속 시간)을 모니터링함으로써 상기 입출력 장치(200)의 구동 패턴을 모니터링할 수 있다. 또한, 모드 제어기(122)는 구동 패턴 모니터(111)의 모니터링 결과에 기반하여 입출력 장치(200)의 동작 모드를 제어하기 위한 모드 제어신호(Ctrl_M)를 입출력 장치(200)로 제공할 수 있다.
일 실시예에 따라, 모드 제어기(122)는 입출력 장치(200)의 구동 패턴을 모니터링한 결과에 기반하여, 입출력 장치(200)가 현재보다 더 고성능 특성에 따라 구동되거나 또는 현재보다 더 저전력 특성에 따라 구동되도록 입출력 장치(200)의 동작 모드를 제어할 수 있다. 예컨대, 데이터 처리 시스템(10)이 입출력 장치(200)를 억세스하지 않는 아이들(Idle) 구간이 존재할 수 있으며, 모드 제어기(122)는 아이들(Idle) 구간이 소정 시간 지속된 후 입출력 장치(200)가 파워다운 모드(또는, 슬립 모드)로 진입하도록 모드 제어신호(Ctrl_M)을 출력할 수 있다. 이 때, 입출력 장치(200)가 파워다운 모드로 진입하는 빈도가 증가할 수록 입출력 장치(200)는 저전력 특성에 따라 구동되는 반면에, 입출력 장치(200)가 파워다운 모드로 진입하는 빈도가 감소할 수록 입출력 장치(200)를 고성능 특성에 따라 구동될 수 있다.
구동 패턴을 모니터링한 결과에 따라, 입출력 장치(200)의 구동 패턴이 고성능 특성에 해당하는 경우, 모드 제어기(122)는 입출력 장치(200)가 파워다운 모드로 진입하는 빈도가 감소되도록 입출력 장치(200)의 동작 모드를 제어할 수 있다. 반면에, 입출력 장치(200)의 구동 패턴이 저전력 특성에 해당하는 경우, 모드 제어기(122)는 입출력 장치(200)가 파워다운 모드로 진입하는 빈도가 증가되도록 입출력 장치(200)의 동작 모드를 제어할 수 있다. 상기와 같은 모니터링 및 모드 제어 동작은 데이터 처리 시스템(10)이 동작하는 동안 다수 회 수행될 수 있으며, 모니터링 결과에 따라 입출력 장치(200)가 더욱 고성능 특성에 적합하게 구동되도록 지속적으로 동작 모드가 제어되거나, 또는 저전력 특성에 적합하게 구동되도록 동작 모드가 제어될 수 있다.
입출력 장치(200)가 DRAM(Dynamic Random Access Memory) 등의 메모리 장치인 경우를 가정하여 본 발명의 예시적인 실시예에 따른 구체적인 동작 예를 설명하면 다음과 같다.
데이터 처리 시스템(10) 내에서 DRAM 트래픽(DRAM traffic)이 없는 아이들 구간이 일정 시간 지속되는 경우, IP(110)의 제어에 따라 입출력 장치(200)는 파워다운 모드로 진입할 수 있다. 또한, 구동 패턴 모니터(111)는 입출력 장치(200)가 파워다운 모드를 유지하는 시간을 검출하고, 그 검출 결과에 기반하여 입출력 장치(200)의 구동 패턴을 모니터링한 결과를 생성할 수 있다. 만약, 파워다운 모드를 유지하는 시간이 소정의 기준 값보다 작은 경우에는 입출력 장치(200)의 구동 패턴이 고성능 특성에 해당하는 것으로 모니터링될 수 있다. 반면에, 파워다운 모드를 유지하는 시간이 소정의 기준 값보다 같거나 큰 경우에는 입출력 장치(200)의 구동 패턴이 저전력 특성에 해당하는 것으로 모니터링될 수 있다.
모드 제어기(122)는 상기 모니터링 결과에 기반하여 입출력 장치(200)가 파워다운 모드로 진입하는 빈도를 증가하거나 감소시킬 수 있다. 일 예로, 입출력 장치(200)의 아이들 구간이 소정의 설정값(예컨대, 아이들 지속 시간) 동안 지속된 후 입출력 장치(200)가 파워다운 모드로 진입할 수 있으며, 모니터링 결과에 기반하여 상기 설정값이 증가하거나 감소될 수 있다. 만약, 입출력 장치(200)가 파워다운 모드를 유지하는 시간이 짧은 경우에는 상기 설정값에 대한 변경 동작을 통해 상기 설정값이 증가되고, 이에 따라 모드 제어기(122)는 입출력 장치(200)가 파워다운 모드로 진입하는 빈도를 감소시킬 수 있다. 즉, 입출력 장치(200)의 아이들 구간이 길게 변경된 설정값만큼 지속되어야 입출력 장치(200)가 파워다운 모드로 진입되므로, 입출력 장치(200)가 파워다운 모드로 진입하는 빈도가 감소될 수 있다. 반면에, 입출력 장치(200)가 파워다운 모드를 유지하는 시간이 상대적으로 긴 경우에는 상기 설정값이 감소되고, 이에 따라 모드 제어기(122)는 입출력 장치(200)가 파워다운 모드로 진입하는 빈도를 증가시킬 수 있다.
상기와 같은 본 발명의 예시적인 실시예에 따르면, 데이터 처리 시스템(10)의 동작 중에 입출력 장치(200)가 파워다운 모드로 진입하기 위한 기준으로서의 아이들 지속 시간을 유동적으로 변경할 수 있다. 즉, 데이터 처리 시스템(10)을 사용하는 개별 사용자의 사용 특성이 실시간으로 모니터링되고, 모니터링 결과에 따라 사용자에 적응하여 파워다운 모드로의 진입 빈도가 조절되며, 이에 따라 사용자의 특성에 최적화된 성능 및 전력 특성을 갖도록 입출력 장치(200)가 구동될 수 있다.
한편, 입출력 장치(200)의 동작 모드에 따라 입출력 장치(200)로 제공되는 클록 신호 및 파워가 조절될 수 있다. 일 예로, 입출력 장치(200)가 파워다운 모드로 진입하면, PMIC(300)로부터 제공되는 파워의 레벨이 낮아지거나 입출력 장치(200)로의 파워 제공이 차단될 수 있다. 또한, 클록 생성기(130)로부터의 클록 신호의 주파수가 감소되거나 또는 입출력 장치(200)로의 클록 신호의 제공이 차단될 수 있다.
한편, 도 1에서는 본 발명의 실시예가 어플리케이션 프로세서, 어플리케이션 프로세서 내의 IP 및 메모리 컨트롤러에 적용되는 예가 설명되었으나, 본 발명의 실시예는 이에 국한될 필요가 없다. 일 예로, 본 발명의 실시예는 입출력 장치의 동작 모드(예컨대, 파워다운 모드)를 제어하는 다양한 장치에 적용될 수 있을 것이다.
도 2는 도 1의 IP의 일 구현 예를 나타내는 블록도이다.
도 1 및 도 2를 참조하면, IP(110)는 시간 검출기(111_1), 판단기(111_2), 모드 제어기(112) 및 레지스터(113)를 포함할 수 있다. 예시적인 실시예에 따라, 시간 검출기(111_1) 및 판단기(111_2)는 도 1의 구동 패턴 모니터(111)에 포함되는 구성일 수 있다. 또한, 시간 검출기(111_1)는 입출력 장치(200)의 각종 동작 모드에 대한 시간(예컨대, 모드 유지 시간)을 검출할 수 있으며, 일 예로 시간 검출기(111_1)는 입출력 장치(200)가 파워다운 모드를 유지하는 시간을 검출할 수 있다.
시간 검출기(111_1)는 입출력 장치(200)가 파워다운 모드를 유지하는 시간을 검출하고, 검출 결과에 따른 제1 정보(Info_Det)를 출력할 수 있다. 예컨대, 입출력 장치(200)는 아이들 구간이 소정 시간 동안 지속된 후 파워다운 모드로 진입될 수 있다. 또한, 입출력 장치(200)에 대한 트래픽이 발생됨에 따라 입출력 장치(200)의 동작 모드는 파워다운 모드에서 노멀 모드(또는, 액티브 모드)로 변경될 수 있다. 일 구현 예에 따라, 시간 검출기(111_1)는 카운팅 동작에 기반하여 시간을 검출하기 위한 카운터(미도시)를 포함할 수 있다.
판단기(111_2)는 제1 정보(Info_Det)에 기반하여 입출력 장치(200)가 파워다운 모드를 유지한 시간을 판단할 수 있다. 일 예로서, 판단기(111_2)는 기준 정보(Info_Ref)를 수신하고, 제1 정보(Info_Det)와 기준 정보(Info_Ref)를 이용한 판단 동작을 수행할 수 있다. 예컨대, 판단기(111_2)는 연산 모듈을 포함하고, 연산 모듈은 검출 정보(Info_Det)와 기준 정보(Info_Ref)를 비교한 결과에 따라 레지스터(113)의 설정값(Value_set)을 변경하기 위한 제2 정보(Info_set)를 생성하고 이를 레지스터(113)로 제공할 수 있다. 만약, 제1 정보(Info_Det)가 기준 정보(Info_Ref)보다 큼에 따라 입출력 장치(200)가 파워다운 모드를 유지하는 시간이 소정의 기준 시간보다 긴 경우, 제2 정보(Info_set)는 레지스터(113) 내의 설정값(Value_set)을 감소시키기 위한 정보를 포함할 수 있다. 반면에, 제1 정보(Info_Det)가 기준 정보(Info_Ref)보다 짧은 경우, 제2 정보(Info_set)는 레지스터(113) 내의 설정값(Value_set)을 증가하기 위한 정보를 포함할 수 있다.
모드 제어기(112)는 입출력 장치(200)의 동작 모드를 제어하기 위한 모드 제어신호(Ctrl_M)를 출력할 수 있다. 일 동작 예로서, 모드 제어기(112)는 설정값(Value_set)에 기반하여 입출력 장치(200)의 동작 모드를 아이들 상태에서 파워다운 모드로 변경할 수 있다. 예컨대, 모드 제어기(112)는 카운터(112_1)를 포함하고, 입출력 장치(200)가 아이들 상태로 진입됨을 나타내는 제3 정보(Info_s)에 기반하여 카운팅 동작을 수행한다. 일 예로, 카운터(112_1)는 설정값(Value_set)으로부터 다운카운팅을 수행하고, 아이들 구간이 설정값(Value_set)만큼 지속될 때(또는, 카운팅 결과가 0 에 도달할 때), 모드 제어기(112)는 입출력 장치(200)의 동작 모드를 아이들 상태에서 파워다운 모드로 변경하기 위한 모드 제어신호(Ctrl_M)를 출력할 수 있다.
만약, 본 발명의 실시예에 따라, 설정값(Value_set)이 감소되는 경우에는 카운터(112_1)가 작은 값에 해당하는 설정값(Value_set)으로부터 다운 카운팅을 수행하고, 이에 따라 입출력 장치(200)가 파워다운 모드로 진입하는 빈도가 증가할 수 있다. 즉, 데이터 처리 시스템(10)을 사용하는 사용자의 특성에 따라 설정값(Value_set)이 지속적으로 감소되고, 이에 따라 입출력 장치(200)는 저전력 특성에 최적화되도록 구동될 수 있다. 반면에, 설정값(Value_set)이 지속적으로 증가되는 경우에는 입출력 장치(200)는 고성능 특성에 최적화되도록 구동될 수 있다. 즉, 상기와 같은 본 발명의 실시예에 따르면, 설정값(Value_set)이 특정 값으로 고정되지 않고 개별 사용자의 사용 특성에 따라 주기적 또는 실시간으로 변동될 수 있다.
한편, 도 2에 도시된 실시예에서 레지스터(113)가 모드 제어기(112)의 외부에 배치된 구성인 것으로 도시되었으나, 이는 일 실시예에 불과한 것으로서 레지스터(113)는 구동 패턴 모니터(111) 또는 모드 제어기(122) 내부에 배치되어도 무방하다. 또한, 도 2에서 제2 정보(Info_set)는 변경될 설정값 자체를 포함할 수도 있으며, 또는 레지스터(113) 내의 설정값을 증감시키기 위한 제어 정보를 포함할 수도 있을 것이다.
한편, 도 2에 도시된 실시예에서, 카운터(112_1)가 설정값(Value_set)으로부터 다운 카운팅을 수행하는 예가 설명되었으나, 본 발명의 실시예는 이에 국한될 필요가 없다. 일 예로, 카운터(112_1)는 0 에서부터 시작하여 설정값(Value_set)까지 업 카운팅을 수행할 수도 있을 것이다.
한편, 도 2에 도시된 각종 기능들은 소프트웨어 또는 하드웨어적으로 구현될 수 있다. 일 예로, 도 2에 도시된 각종 기능들은 중앙 처리 유닛(CPU, 120)에 의해 실행되는 소프트웨어로 구현될 수 있을 것이다. 또는, 도 2에 도시된 각종 기능들은 하나 이상의 회로 소자들을 포함하는 하드웨어적으로 구현될 수 있다. 또는, 도 2에 도시된 각종 기능들은 하드웨어 및 소프트웨어의 조합에 의해 구현될 수도 있을 것이다.
도 3은 본 발명의 예시적인 실시예에 따른 어플리케이션 프로세서를 나타내는 블록도이다.
도 3을 참조하면, 어플리케이션 프로세서(400)는 하나 이상의 IP(Intellectual Property)을 포함할 수 있으며, 일 예로서 어플리케이션 프로세서(400)는 시스템 버스를 통해 서로 연결되는 프로세서(410), 메모리 컨트롤 유닛(420), 모뎀(430), 임베디드 메모리(440), 카메라 인터페이스(450), 디스플레이 인터페이스(460) 및 스토리지 컨트롤러(470) 등을 포함할 수 있다. 또한, 메모리 컨트롤 유닛(420)은 외부의 메모리나 임베디드 메모리(440)에 대한 메모리 동작을 제어할 수 있다. 또한, 스토리지 컨트롤러(470)는 외부의 스토리지 장치를 제어할 수 있다. 한편, 도 3에 도시된 구성들은 하나의 실시예에 불과한 것으로서, 어플리케이션 프로세서(400)는 도 3에 도시된 구성들 이외에도 다른 구성들을 더 포함할 수도 있으며, 또는 도 3에 도시된 구성들 중 일부는 어플리케이션 프로세서(AP)에 구비되지 않아도 무방할 것이다. 또한, 모뎀(430)이 어플리케이션 프로세서(400)에 포함됨에 따라, 어플리케이션 프로세서(400)는 ModAP 으로 지칭될 수 있다.
어플리케이션 프로세서(400)의 시스템 버스의 표준 규격으로서, ARM(Advanced RISC Machine) 사의 AMBA(Advanced Microcontroller Bus Architecture) 프로토콜이 적용될 수 있다. AMBA 프로토콜의 버스 타입에는 AHB(Advanced High-Performance Bus), APB(Advanced Peripheral Bus), AXI(Advanced eXtensible Interface), AXI4, ACE(AXI Coherency Extensions) 등이 포함될 수 있다. 이외에도, 소닉사(SONICs Inc.)의 uNetwork 이나 IBM의 CoreConnect, OCP-IP의 오픈 코어 프로토콜(Open Core Protocol) 등 다른 타입의 프로토콜이 적용되어도 무방하다.
프로세서(410)는 어플리케이션 프로세서(400)의 전반적인 동작을 제어할 수 있다. 일 예로서, 어플리케이션 프로세서(400) 내의 각종 IP들의 동작을 관리하기 위한 소프트웨어가 외부 메모리 및/또는 임베디드 메모리(440)에 로딩되고, 프로세서(410)는 로딩된 소프트웨어를 실행함에 의해 각종 관리 동작을 수행할 수 있다. 외부 메모리는 휘발성 메모리로 구현될 수 있으며, 일 실시예에 따라 외부 메모리는 DRAM 및/또는 SRAM(static random access memory) 등의 휘발성 메모리를 포함할 수 있다. 또한, 스토리지 장치는 불휘발성 메모리를 포함할 수 있으며, 전원이 차단되어도 저장하고 있는 데이터를 유지하는 특징을 갖는 셀, 예컨대 낸드(NAND) 또는 노어(NOR) 플래시 메모리를 포함하거나 또는 MRAM(Magnetic Random Access Memory), RRAM(Resistance RAM), FRAM(Ferroelectric RAM) 또는 PCM(Phase Change Memory) 등 다양한 종류의 불휘발성 메모리를 포함할 수 있다.
전술한 실시예에 따라, 어플리케이션 프로세서(400) 내의 각종 IP들은 대응하는 외부 입출력 장치를 억세스할 수 있으며, 또한 외부 입출력 장치의 구동 패턴에 대한 모니터링 동작을 수행할 수 있다. 또한, 어플리케이션 프로세서(400) 내의 각종 IP들은 모니터링 동작의 수행 결과에 기반하여 대응하는 입출력 장치의 동작 모드를 제어할 수 있다. 일 예로서, 메모리 컨트롤 유닛(420)은 구동 패턴 모니터(421)를 포함하고, 구동 패턴 모니터(421)는 전술한 실시예들에 따른 검출 및 판단 동작을 통해 외부 메모리의 구동 패턴을 모니터링할 수 있다. 또한, 모니터링 결과에 기반하여 메모리 컨트롤 유닛(420)은 외부 메모리의 동작 모드를 제어하고, 이에 따라 외부 메모리가 고성능 특성에 따라 구동되거나 저전력 특성에 따라 구동되도록 제어될 수 있다.
이와 유사하게, 스토리지 컨트롤러(470)는 구동 패턴 모니터(471)를 포함하고, 구동 패턴 모니터(471)는 전술한 실시예에서와 동일 또는 유사하게 스토리지 장치의 구동 패턴을 모니터링할 수 있다. 또한, 모니터링 결과에 기반하여 스토리지 컨트롤러(470)는 스토리지 장치의 동작 모드를 제어할 수 있다.
도 3에 도시되지는 않았으나, 모뎀(430)은 외부의 칩(예컨대, RF 칩)과 통신할 수 있으며, 모뎀(430) 내의 구동 패턴 모니터(431)는 외부의 칩의 구동 패턴을 모니터링할 수 있다. 이와 유사하게, 카메라 인터페이스(450)는 구동 패턴 모니터(451)를 포함하고, 구동 패턴 모니터(451)는 카메라 인터페이스(450)에 의해 제어되는 카메라의 구동 패턴을 모니터링할 수 있다. 또한, 디스플레이 인터페이스(460)는 구동 패턴 모니터(461)를 포함하고, 구동 패턴 모니터(461)는 디스플레이 인터페이스(460)에 의해 제어되는 디스플레이 장치의 구동 패턴을 모니터링할 수 있다. 도 3에 도시되지는 않았으나, 전술한 실시예들에 따라 어플리케이션 프로세서(400) 내의 각종 IP들 각각은 설정값을 저장하는 레지스터를 포함하고, 모니터링 결과에 기반하여 설정값을 변경함으로써 대응하는 외부 입출력 장치의 동작 모드를 제어할 수 있다.
도 4a,b는 본 발명의 예시적인 실시예에 따른 모니터링 및 모드 제어 동작의 개념을 나타내는 도면이다.
도 4a는 입출력 장치의 각종 동작 모드의 일 예를 나타낸다. 도 4a를 참조하면, 입출력 장치는 액티브 구간(Act)에서 노멀하게 동작하며, 입출력 장치에 대한 억세스가 발생되지 않음에 따라 입출력 장치는 아이들 구간(Idle)으로 진입하고, 아이들 구간(Idle)이 t1 시간 만큼 지속된 후 입출력 장치는 파워다운 모드(Power Down)로 진입될 수 있다. 또한, 입출력 장치에 대한 억세스가 발생됨에 따라 입출력 장치는 웨이크-업 구간(Wake Up)을 경과한 후 액티브 구간(Act)으로 진입할 수 있으며, 도 4a의 예에서는 파워다운 모드(Power Down)가 t2 시간 유지된 것으로 가정된다.
한편, 도 4b는 입출력 장치의 파워다운 모드의 유지 시간(t2)을 기반으로 하여 상기 입출력 장치의 구동 패턴을 모니터링하는 예가 도시된다. 파워다운 모드의 유지 시간(t2)은 하나 이상의 기준값(예컨대, 제1 및 제2 기준값(Ref1, Ref2))과 비교될 수 있으며, 도 4b에서 제1 기준값(Ref1)은 제2 기준값(Ref2)보다 큰 값을 가질 수 있다.
일 예로서, 파워다운 모드의 유지 시간(t2)이 제1 기준값(Ref1)보다 큰 경우, 전술한 설정값을 변경함에 의해 아이들 구간의 지속 시간(t1)이 감소될 수 있다. 또한, 파워다운 모드의 유지 시간(t2)이 제2 기준값(Ref2)보다 크고 제1 기준값(Ref1) 이하인 경우에는, 아이들 구간의 지속 시간(t1)을 변경함이 없이 설정값이 유지될 수 있다. 또한, 파워다운 모드의 유지 시간(t2)이 제2 기준값(Ref2) 이하인 경우에는, 전술한 설정값을 변경함에 의해 아이들 구간의 지속 시간(t1)이 증가될 수 있다.
도 5 및 도 6은 본 발명의 예시적인 실시예에 따른 어플리케이션 프로세서의 동작방법을 나타내는 플로우차트이다. 상기 도 5 및 도 6에서, 구동 대상의 장치가 메모리 장치인 경우, 도 5 및 도 6의 플로우차트는 메모리 컨트롤러의 동작방법에 해당할 수 있다.
도 5를 참조하면, 어플리케이션 프로세서는 하나 이상의 입출력 장치들에 대해 사용자 별로 그 구동 패턴을 모니터링할 수 있다(S11). 모니터링 동작의 일 예로서, 입출력 장치가 파워다운 모드를 유지하는 시간이 모니터링될 수 있으며, 파워다운 모드를 유지한 시간이 소정의 기준값을 초과하였는지가 판단될 수 있다(S12). 만약, 파워다운 모드를 유지한 시간이 기준값을 초과한 경우에는, 입출력 장치가 저전력 특성에 따라 구동됨으로써 파워다운 모드가 오래 유지됨을 나타내고, 이에 따라 상기 입출력 장치가 더 저전력 특성에 적합하게 구동되도록 어플리케이션 프로세서는 상기 입출력 장치의 파워다운 모드 진입 빈도를 증가시킬 수 있다(S13). 반면에, 파워다운 모드를 유지한 기간이 기준값 이하인 경우에는, 입출력 장치가 고성능 특성에 따라 동작함으로써 파워다운 모드가 짧게 유지됨을 나타내고, 이에 따라 상기 입출력 장치가 더 고성능 특성에 적합하게 구동되도록 어플리케이션 프로세서는 상기 입출력 장치의 파워다운 모드 진입 빈도를 감소시킬 수 있다(S14).
한편, 도 6은 구동 패턴의 모니터링 및 모드 제어의 구체적인 동작 예를 나타낸다.
도 6을 참조하면, 어플리케이션 프로세서를 포함하는 데이터 처리 시스템의 초기 구동시, 하나 이상의 입출력 장치의 파워다운 모드에 관련된 설정값이 어플리케이션 프로세서 내에 저장될 수 있다. 일 예로서, 상기 설정값은 데이터 처리 시스템 내에 불휘발성하게 저장되고, 데이터 처리 시스템의 초기 구동시 어플리케이션 내의 레지스터에 저장될 수 있다.
어플리케이션 프로세서(또는, 어플리케이션 프로세서의 IP)는 입출력 장치를 구동할 수 있으며, 입출력 장치에 대한 억세스가 발생되지 않음에 따라 입출력 장치는 제1 아이들 구간으로 진입할 수 있다. 또한, 입출력 장치는 제1 아이들 구간으로 진입한 후 기 저장된 설정값에 대응하는 제1 시간 동안 지속될 수 있다(S21).
어플리케이션 프로세서는 제1 아이들 구간이 제1 시간 동안 지속되었음을 판단하고, 어플리케이션 프로세서는 입출력 장치를 제1 파워다운 모드로 진입시킬 수 있다(S22). 이후, 입출력 장치에 대한 억세스가 발생됨에 따라, 제1 파워다운 모드가 중단되고 입출력 장치는 웨이크-업 구간을 거친 후 액티브 구간으로 진입할 수 있다.
한편, 어플리케이션 프로세서는 입출력 장치의 구동 패턴을 모니터링하고 이에 기반하여 설정값을 변경할 수 있다(S23). 일 예로서, 어플리케이션 프로세서는 입출력 장치의 아이들 구간, 파워다운 모드 구간 및 웨이크-업 구간을 모니터링하고, 이를 통해 해당 시스템을 사용하고 있는 사용자 별로 입출력 장치의 구동 패턴이 판단될 수 있다. 예컨대, 전술한 실시예들에 따라 파워다운 모드가 유지된 시간을 소정의 기준값과 비교함에 의해 설정값이 변경될 수 있다. 또는, 변형 가능한 실시예에 따라, 파워다운 모드가 유지된 시간을 다른 구간과 비교한 결과에 기반하여 상기 설정값이 변경될 수도 있다.
상기와 같이 변경된 설정값은 어플리케이션 프로세서 내에 저장되고, 변경된 설정값에 기반하여 입출력 장치가 구동될 수 있다. 예컨대, 입출력 장치에 대한 억세스가 발생되지 않음에 따라 입출력 장치는 제2 아이들 구간으로 진입할 수 있다. 또한, 입출력 장치가 제2 아이들 구간으로 진입한 후 변경된 설정값에 대응하는 제2 시간 동안 지속될 수 있다(S24). 어플리케이션 프로세서는 제2 아이들 구간이 제2 시간 동안 지속되었음을 판단하고, 어플리케이션 프로세서는 입출력 장치를 제2 파워다운 모드로 진입시킬 수 있다(S25).
이하에서는, 본 발명의 실시예에 따른 메모리 컨트롤러의 구체적인 동작 예가 설명된다. 상기 메모리 컨트롤러는 어플리케이션 프로세서 내의 메모리 컨트롤 모듈일 수 있다. 또는, 상기 메모리 컨트롤러는 별개로 구현되는 장치일 수 있다. 일 예로서, 메모리 컨트롤러는 입출력 장치로서 DRAM을 구동하는 예가 설명된다.
메모리 컨트롤러는 각종 클록 신호를 DRAM으로 제공할 수 있으며, 클록 신호에 동기하여 데이터를 DRAM과 송수신할 수 있다. 도 7에서는 DRAM으로 제공되는 클록 인에이블 신호(CKE)가 도시되며, 또한 DRAM으로 제공되는 동작 클록(미도시)을 제어하기 위한 클록 게이팅 신호(MEM_CG)가 도시된다.
메모리 컨트롤러와 DRAM이 채용된 시스템에서, DRAM에 대한 억세스가 발생되지 않는 아이들 구간이 소정 시간 지속됨에 따라, 메모리 컨트롤러는 DRAM을 파워다운 모드로 진입시킬 수 있다. 반면에, 아이들 구간이 소정 시간 지속되지 않고 DRAM 억세스가 발생되는 경우에는, DRAM은 파워다운 모드로 진입함이 없이 액티브 구간에서 동작할 수 있다.
본 발명의 실시예에 따라, 메모리 컨트롤러는 DRAM의 구동 패턴을 지속적으로 모니터링하고, 모니터링 결과에 따라 DRAM을 파워다운 모드로 진입시키기 위한 기준으로서의 아이들 지속 시간을 시스템 동작 중에 변경할 수 있다. 전술한 실시예에서와 동일 또는 유사하게, 사용자의 사용 특성에 따라 DRAM을 고성능으로 구동시키는 것이 필요한 경우, 메모리 컨트롤러는 아이들 지속 시간의 설정값을 증가시키고, 이에 따라 DRAM을 파워다운 모드로 진입시키는 빈도를 감소시킨다. 반면에, 사용자의 사용 특성에 따라 DRAM을 저전력으로 구동시키는 것이 필요한 경우, 메모리 컨트롤러는 아이들 지속 시간의 설정값을 감소시키고, 이에 따라 DRAM을 파워다운 모드로 진입시키는 빈도를 증가시킨다. 즉, 본 발명의 실시예에 따른 메모리 컨트롤러와 DRAM을 포함하는 시스템은, 시스템을 사용하는 사용자의 사용 특성에 따라 그 설정값이 다르게 변경될 수 있다.
다시 도 7을 참조하면, DRAM이 아이들 구간으로 진입함에 따라 아이들 구간 동안 클록 인에이블 신호(CKE)는 로직 하이 상태를 가지며 클록 게이팅 신호(MEM_CG)는 로직 로우 상태를 가질 수 있다. 또한, 메모리 컨트롤러는 아이들 구간이 지속되는 시간을 카운팅하며, 일 예로서 파워다운 모드로의 진입을 위한 설정값이 N 값으로 설정된 경우 메모리 컨트롤러는 N 값으로부터 - 1 씩 그 값을 감소시키는 다운카운팅 동작을 수행할 수 있다.
카운팅 값이 0 이 될 때까지 DRAM에 대한 억세스가 발생되지 않음에 따라 메모리 컨트롤러는 DRAM을 파워다운 모드로 진입시킬 수 있다. 일 예로서, DRAM이 파워다운 모드로 진입함에 따라, 메모리 컨트롤러와 DRAM 사이에서 인터페이스 역할을 수행하는 파이 로직(PHY Logic)에 대한 클록 게이팅을 위한 클록 게이팅 신호(MEM_CG)가 로직 하이로 변동될 수 있다. 또한, 소정의 시간(T_clk_disable) 이후, 메모리 컨트롤러는 DRAM으로 제공되는 클록 인에이블 신호(CKE)를 로직 로우로 변경할 수 있다.
이후, 파워다운 모드 구간에서 DRAM에 대한 억세스가 발생됨에 따라, 메모리 컨트롤러는 DRAM의 동작 모드를 액티브 모드로 변경시키기 위한 준비 동작을 수행할 수 있다. 예컨대, 메모리 컨트롤러는 클록 게이팅 신호(MEM_CG)를 로직 로우로 변경시킬 수 있으며, 이에 따라 메모리 컨트롤러의 파이 블록에 클록 신호를 공급할 수 있다. 또한, 클록 게이팅 신호(MEM_CG)가 로직 로우로 변경되고 소정의 시간(T_clk_enable) 이후, 클록 인에이블 신호(CKE)가 로직 하이로 변경됨에 따라 DRAM에 클록 신호가 공급될 수 있다. 또한, 클록 인에이블 신호(CKE)가 로직 하이로 변경된 후 소정의 설정된 시간(tExit) 이후에 DRAM 에 대한 정상적인 억세스가 수행될 수 있다.
상기와 같이 DRAM은 다양한 구간들에 따라 동작하게 되고, 구동 패턴을 모니터링함에 있어서 상기 다양한 구간들 중 적어도 일부의 구간을 이용한 모니터링이 수행될 수 있다. 일 예로서, DRAM에 대한 억세스가 발생되지 않은 후 다운카운팅이 수행되는 구간은 아이들 구간으로 정의될 수 있다. 또한, 파워다운 모드 구간(T0)은 다운카운팅이 만료되는 시점에서 DRAM에 대한 억세스가 발생되는 시점 사이의 구간으로 정의될 수 있다. 또한, 웨이크-업 구간(T1)은 DRAM에 대한 억세스가 발생되는 시점에서 DRAM에 정상적인 억세스가 가능한 시점 사이의 구간으로 정의될 수 있다. 상기 웨이크-업 구간(T1)은 DRAM이 파워다운 모드로부터 탈출하기 위한 오버헤드로 작용하는 구간에 해당할 수 있다.
일 실시예에 따라, DRAM에 대한 구동 패턴을 모니터링하는 동작은 상기한 파워다운 모드 구간(T0)과 웨이크-업 구간(T1)을 비교함에 의해 수행될 수 있다. 도 8은 도 7에 도시된 동작에 기반하여 구동 패턴 모니터링 및 모드 제어를 수행하는 메모리 컨트롤러의 구현 예를 나타내는 블록도이며, 도 9는 설정값을 변경하는 일 예를 나타내는 표이다.
도 7 및 도 8을 참조하면, 메모리 컨트롤러(500)는 모드 검출기(510), 카운터(520), 레지스터(530), 모드 제어기(540) 및 비교기(550)를 포함할 수 있다. 전술한 실시예에서와 같이, 도 8에 도시된 메모리 컨트롤러(500)의 각종 기능 블록들은 하드웨어적으로 구현되거나, 또는 하드웨어 및 소프트웨어의 조합에 의해 구현될 수 있을 것이다.
모드 검출기(510)는 도 7에 도시된 다양한 모드들을 검출하고 그 검출 결과를 카운터 블록(520)으로 제공할 수 있다. 일 예로서, 모드 검출기(510)는 아이들 구간, 파워다운 모드 구간 등 각종 구간이 시작되거나 종료되는 시점을 검출할 수 있다. 또한, 모드 검출기(510)는 클록 게이팅 신호(MEM_CG)의 로직 상태가 변경하는 시점을 할 수 있으며, 또한 클록 인에이블 신호(CKE)의 로직 상태가 변경하는 시점을 검출할 수 있다. 또한, 모드 검출기(510)는 파워다운 모드 구간에서 DRAM에 대한 억세스가 발생되는 시점을 검출할 수 있다.
카운터 블록(520)은 하나 이상의 카운팅 결과를 생성하기 위하여 하나 이상의 카운터들을 포함할 수 있다. 일 예로서, 카운터 블록(520)은 파워다운 모드로의 진입 여부를 판단하기 위해 레지스터(530)에 저장된 설정값(N)을 이용한 카운팅(또는, 다운 카운팅)을 수행하는 카운터를 포함할 수 있다. 또한, 카운터 블록(520)은 전술한 파워다운 모드 구간(T0)을 카운팅하기 위한 카운터를 더 포함할 수 있으며, 또한 카운터 블록(520)은 전술한 웨이크-업 구간(T1)을 카운팅하기 위한 카운터를 더 포함할 수 있다.
카운터 블록(520)에서의 하나 이상의 카운팅 결과는 비교기(530)로 제공될 수 있다. 비교기(530)는 수신된 카운팅 결과에 대한 비교 동작을 수행하고, 그 비교 결과에 따라 레지스터(530)에 저장된 설정값(N)을 변경할 수 있다. 일 예로서, 비교기(530)는 파워다운 모드 구간(T0) 동안의 카운팅 결과(제1 카운팅 결과)와 웨이크-업 구간(T1) 동안의 카운팅 결과(제2 카운팅 결과)를 비교하고, 그 비교 결과에 따라 설정값(N)을 변경할 수 있다. 전술한 실시예에서와 동일 또는 유사하게, 제1 카운팅 결과가 제2 카운팅 결과보다 큰 경우는 파워다운 모드 구간(T0)이 상대적으로 긴 경우에 해당하고, 이에 따라 DRAM이 저전력 특성에 따라 구동되도록 설정값(N)을 감소시킬 수 있다. 반면에, 제1 카운팅 결과가 제2 카운팅 결과보다 작은 경우에는 파워다운 모드 구간(T0)이 상대적으로 짧은 경우에 해당하고, 이에 따라 DRAM이 고성능 특성에 따라 구동되도록 설정값(N)을 증가시킬 수 있다.
한편, 도 9를 참조하면, 상기 비교 동작 및 그에 따른 설정값(N) 변경은 다양한 방식에 따라 수행될 수 있다. 일 예로, 파워다운 모드 구간(T0)이 웨이크-업 구간(T1)에 비해 긴 경우에는 설정값(N)은 α 만큼 감소될 수 있다. 반면에, 파워다운 모드 구간(T0)이 웨이크-업 구간(T1)에 비해 짧은 경우에는 설정값(N)은 α 만큼 증가될 수 있다. 또는, 파워다운 모드 구간(T0)이 웨이크-업 구간(T1)과 동일 또는 유사한 경우에는 설정값(N)은 변경 없이 그 값이 유지될 수 있다. 파워다운 모드 구간(T0)과 웨이크-업 구간(T1)이 유사한 경우에 설정값(N)이 유지된다는 것은, 파워다운 모드 구간(T0)과 웨이크-업 구간(T1)의 차이가 소정의 범위 이상인 경우에만 설정값(N)이 변경되는 것으로 이해될 수 있을 것이다.
한편, 설정값(N)은 다양한 방식에 따라 변경될 수 있다. 일 예로서, 설정값(N)은 다운카운팅이 시작되는 정수값에 해당할 수 있으며, α가 1의 값에 해당하는 경우에는 설정값(N)이 1 만큼 감소하거나 증가할 수 있다. 또는, α는 1 보다 큰 임의의 정수일 수 있으며, 이 때 설정값(N)은 1 보다 큰 정수 단위로 감소하거나 증가할 수 있다. 또는, 변형 가능한 실시예로서, 파워다운 모드 구간(T0)과 웨이크-업 구간(T1)의 차이에 기반하여 α의 값은 적응적으로 변경될 수 있다. 예컨대, 파워다운 모드 구간(T0)과 웨이크-업 구간(T1)의 차이가 상대적으로 작은 경우에는 α의 값은 상대적으로 작은 값을 가질 수 있다. 반면에, 파워다운 모드 구간(T0)과 웨이크-업 구간(T1)의 차이가 상대적으로 큰 경우에는 α의 값은 상대적으로 큰 값을 가질 수 있다.
전술한 비교 동작 및 설정값 변경 동작은 시스템이 구동되는 동안 다수 회 수행될 수 있다. 이에 따라, 비교 결과에 기반하여 설정값(N)은 계속하여 증가될 수 있으며, 설정값(N)이 매우 큰 값으로 변경되는 경우에는 DRAM이 파워다운 모드로 진입하는 빈도가 크게 감소될 수 있다. 또한, α의 값이 크게 정의될수록 고성능 특성 또는 저전력 특성으로의 변경이 빠르게 수행될 수 있으며, α의 값이 작게 정의될수록 고성능 특성 또는 저전력 특성이 세밀하게 조절될 수 있다.
한편, 본 발명의 실시예에 따른 구동 패턴을 판단하기 위한 파워다운 모드 구간(T0)과 웨이크-업 구간(T1)은 도 7에 도시된 구간에 국한될 필요가 없다. 즉, 본 발명의 실시예들에 따라 구동 패턴을 판단하기 위해 비교되는 구간들은 다양하게 설정될 수 있다. 일 예로서, 파워다운 모드 구간(T0)의 시작은 클록 인에이블 신호(CKE)가 로직 로우로 변경되는 시점에 해당할 수도 있을 것이다. 또한, 파워다운 모드 구간(T0)의 종료 시점은 클록 게이팅 신호(MEM_CG)가 로직 로우로 변경되거나 클록 인에이블 신호(CKE)가 로직 하이로 변경되는 시점에 해당할 수도 있을 것이다.
또한, 일 예로서, 웨이크-업 구간(T1)의 시작은 파워다운 모드 구간(T0)의 종료 시점과 동일한 시점에 해당하거나 또는 다른 시점에 해당하여도 무방할 것이다. 웨이크-업 구간(T1)의 종료 시점 또한 다양하게 설정될 수도 있을 것이다.
또한, 전술한 실시예에서는 설명의 편의상 파워다운 모드 구간(T0)과 웨이크-업 구간(T1)의 단순 비교가 설명되었으나, 웨이크-업 구간(T1)은 소정의 정의된 스펙에 따른 매우 짧은 시간을 가질 수 있다. 이 경우, 파워다운 모드 구간(T0)과 웨이크-업 구간(T1) 중 적어도 하나의 구간에 소정의 값으로 정의되는 상수가 곱해지고, 상수가 곱해진 구간들 사이의 비교가 수행될 수도 있을 것이다. 또한, 상기 상수가 곱해진 구간들 사이의 비교는 이후의 실시예들에서 설명되는 각종 비교 동작들에 대해서도 동일하게 적용될 수 있을 것이다.
이하에서는, 본 발명의 변형 가능한 다양한 실시예들이 설명된다. 이하에 설명되는 실시예들은 일 구현 예에 불과한 것으로서, 본 발명의 실시예들은 도시된 도면들 이외에도 다른 다양한 변형이 가능할 것이다.
도 10은 메모리 컨트롤러의 다른 구현 예를 나타내는 블록도이다.
도 10을 참조하면, 메모리 컨트롤러(600)는 모드 검출기(610), 가중치 산출기(620) 및 비교기(630)를 포함할 수 있다. 모드 검출기(610)는 카운터(611)를 포함할 수 있다. 그러나, 전술한 실시예에서와 같이 카운터(611)는 모드 검출기(610) 외부에 배치되는 것으로 도시되어도 무방할 것이다.
모드 검출기(610)는 전술한 다양한 카운팅 동작에 기반하여 파워다운 모드 구간(T0) 및 웨이크-업 구간(T1)에 관련된 정보를 비교기(630)로 제공한다. 또한, 가중치 산출기(620)는 비교 동작에 이용되는 하나 이상의 가중치를 산출하고 이를 비교기(630)로 제공할 수 있다. 일 예로서, 제1 및 제2 가중치들(ω0, ω1)이 가중치 산출기(620)에 의해 산출될 수 있다. 또한, 일 예로서, 가중치 산출기(620)는 기 설정된 값으로 산출되는 제1 및 제2 가중치들(ω0, ω1)을 비교기(630)로 제공하거나, 또는 하나 이상의 정보들에 따라 그 값이 가변되는 제1 및 제2 가중치들(ω0, ω1)을 비교기(630)로 제공할 수 있다. 일 실시예에 따라, 가중치 산출기(620)는 메모리 컨트롤러(600)가 채용된 시스템에서 사용자에 의해 실행되는 프로그램의 빈도에 관련된 정보(Info_App)를 수신하고, 상기 정보(Info_App)에 기반하여 제1 및 제2 가중치들(ω0, ω1)을 산출할 수 있다.
비교기(630)는 제1 및 제2 가중치들(ω0, ω1)을 반영한 비교 동작에 따라 설정값을 변경하기 위한 제어 정보(Info_set)를 생성할 수 있다. 일 예로서, 비교기(630)는 파워다운 모드 구간(T0)에 제1 가중치(ω0)를 곱한 값과, 웨이크-업 구간(T1)에 제2 가중치(ω1)를 곱한 값을 서로 비교하여 제어 정보(Info_set)를 생성할 수 있다.
도 11a,b는 도 10의 메모리 컨트롤러의 동작에 따라 설정값이 변경되는 일 예를 나타내는 표이다.
도 11a를 참조하면, 파워다운 모드 구간(T0)에 제1 가중치(ω0)를 곱한 값(예컨대, 제1 가중치 곱 결과(ω0*T0))과 웨이크-업 구간(T1)에 제2 가중치(ω1)를 곱한 값(예컨대, 제2 가중치 곱 결과(ω1*T1))가 비교되고, 제1 가중치 곱 결과(ω0*T0)가 제2 가중치 곱 결과(ω1*T1)에 비해 큰 경우에는 설정값(N)은 α 만큼 감소될 수 있다. 반면에, 제1 가중치 곱 결과(ω0*T0)가 제2 가중치 곱 결과(ω1*T1)에 비해 작은 경우에는 설정값(N)은 α 만큼 증가될 수 있다. 또는, 제1 가중치 곱 결과(ω0*T0)와 제2 가중치 곱 결과(ω1*T1)가 동일 또는 유사한 경우에는 설정값(N)은 변경 없이 그 값이 유지될 수 있다.
제1 가중치(ω0)가 크게 부여되는 경우에는 제1 가중치 곱 결과(ω0*T0)가 제2 가중치 곱 결과(ω1*T1) 보다 클 가능성이 높으며, 이에 따라 설정값(N)이 감소되는 빈도가 증가한다. 이에 따라 DRAM이 저전력 특성에 적합하도록 구동 방식이 빠르게 변경될 수 있다. 반대로, 제2 가중치(ω1)가 크게 부여되는 경우에는 제1 가중치 곱 결과(ω0*T0)가 제2 가중치 곱 결과(ω1*T1) 보다 작을 가능성이 높으며, DRAM이 고성능 특성에 적합하도록 구동 방식이 빠르게 변경될 수 있다.
한편, 일 실시예에 따라, 전술한 정보(Info_App)에 기반하여 제1 및 제2 가중치들(ω0, ω1)의 값이 변경될 수 있다.
메모리 컨트롤러 및 DRAM이 채용된 시스템은 GPU(Graphics Processing Unit) 및 CPU 등 다양한 종류의 프로세서들을 포함할 수 있으며, 또한 상기 GPU 및/또는 CPU에 의해 구동되는 다양한 종류의 프로그램들이 설치될 수 있다. 일 예로서, 시스템 사용자에 따라, GPU 사용율이 높은 고사양의 프로그램(예컨대, 게임 프로그램 등)의 실행 빈도가 크거나, 또는 CPU에도 큰 부담을 주지 않는 저사양의 프로그램(예컨대, 웹 브라우저 등)의 실행 빈도가 클 수 있다. 이 때, 고사양의 프로그램이 실행되는 경우에는 DRAM에 대한 억세스 빈도가 매우 크고, 이에 따라 아이들 구간이 지속되는 시간이 짧을 수 있다. 반면에, 저사양의 프로그램이 실행되는 경우에는 DRAM에 대한 억세스 빈도가 작고, 이에 따라 아이들 구간이 지속되는 시간이 클 수 있다.
가중치 산출기(620)는 사용자에 의해 실행되는 프로그램의 종류에 관련된 정보(Info_App)를 수신하고, 이에 기반하여 제1 및 제2 가중치들(ω0, ω1)를 산출할 수 있다. 일 예로서, 정보(Info_App)에 기반하여 GPU 사용율이 높은 고사양의 프로그램의 실행 빈도가 판단될 수 있으며, 고사양의 프로그램의 실행 빈도가 증가하는 경우에는 제1 가중치(ω0)의 값이 감소되거나 제2 가중치(ω1)의 값이 증가될 수 있다. 반면에, 저사양 프로그램의 실행 빈도가 증가하는 경우에는 제1 가중치(ω0)의 값이 증가되거나 제2 가중치(ω1)의 값이 감소될 수 있다.
일 예로, 제1 가중치(ω0)의 값이 감소되거나 제2 가중치(ω1)의 값이 증가되는 경우에는, 제2 가중치 곱 결과(ω1*T1)가 제1 가중치 곱 결과(ω0*T0)보다 큰 경우가 자주 발생되고, 이에 따라 설정값(N)은 그 값이 크게 변경될 수 있다. 이에 따라, DRAM이 파워다운 모드로 진입하는 빈도가 감소될 수 있으며, DRAM은 고성능 특성에 적합하도록 구동될 수 있다.
한편, 전술한 실시예에서는 실행되는 프로그램의 종류에 기반하는 정보(Info_App)가 이용되는 예가 설명되었으나, 본 발명의 실시예는 이에 국한될 필요가 없다. 일 예로, 메모리 컨트롤러 및 DRAM이 채용된 시스템은 다양한 성능들을 갖는 다수의 프로세서들을 포함하고, 상기 프로세서들의 실행 상태(예컨대, DRAM을 억세스하는 프로세서들의 성능 및 개수)를 고려하여 상기 정보(Info_App)가 생성될 수도 있을 것이다.
도 12는 본 발명의 다른 예시적인 실시예에 따른 메모리 컨트롤러의 동작방법을 나타내는 플로우차트이다.
도 12를 참조하면, 메모리 컨트롤러는 그 내부에 파워다운 모드 진입에 관련된 설정값을 저장하는 레지스터를 포함할 수 있다. 메모리 컨트롤러 및 DRAM을 포함하는 시스템의 파워가 온 되고(S31), 다운 카운팅을 위한 설정값 N이 레지스터에 저장될 수 있다(S32). 레지스터에 초기 저장되는 설정값 N 은 시스템 내에 구비되는 저장 소자에 불휘발성하게 저장되고, 설정값 N이 상기 레지스터에 로딩될 수 있다.
또한, 메모리 컨트롤러는 전술한 실시예들에 따라 DRAM의 구동 패턴을 모니터링할 수 있다(S33). 또한, 구동 패턴을 모니터링한 결과에 따라 레지스터에 저장된 설정값이 N ±α로 변경될 수 있으며(S34), 일 예로 DRAM이 저전력 특성에 따라 구동되는 것으로 판단되는 경우 설정값이 N - α로 변경되고, DRAM이 고성능 특성에 따라 구동되는 것으로 판단되는 경우 설정값이 N + α로 변경될 수 있다.
상기 변경된 설정값은 시스템의 운용 중에 실시간으로 반영될 수 있다. 또한 시스템의 재부팅시에 상기 변경된 설정값이 바로 적용되도록 운용될 수도 있다. 예컨대, 변경된 설정값은 시스템 내에 구비되는 상기 저장 소자에 주기적 또는 비주기적으로 업데이트될 수 있다. 이후, 메모리 컨트롤러를 포함하는 시스템이 재부팅될 수 있으며(S35), 시스템이 재부팅됨에 따라 DRAM의 파워다운 모드 진입에 관련된 설정값이 메모리 컨트롤러 내의 레지스터에 저장될 수 있다. 이 때, 최종적으로 변경되어 저장 소자에 업데이트된 설정값(예컨대, N ±α)이 상기 재부팅 과정에서 레지스터에 저장될 수 있다(S36).
상기와 같은 실시예에 따르면, 사용자의 구동 패턴에 따라 변경된 설정값이 이후의 재부팅 과정에서 메모리 컨트롤러 내의 레지스터에 저장될 수 있다. 이에 따라, 시스템의 재부팅시 사용자의 사용 특성에 적합한 설정값이 레지스터에 초기 설정(또는, 로딩)되고, DRAM은 더 빠르게 사용자의 사용 특성에 적합한 상태로 구동될 수 있다.
도 13은 구간 비교 동작 및 설정값을 변경하는 다른 예를 나타내는 표이다.
도 13을 참조하면, 구간 비교의 차이 값의 결과가 다수 개의 단계들(예컨대, 제1 내지 제k 단계들)로 분류되고, 그 분류 결과에 따라 설정값이 다르게 변경될 수 있다. 일 예로서, 전술한 실시예에서와 같이 파워다운 모드 구간(T0)과 웨이크-업 구간(T1) 사이의 차이 값(T0 - T1, 또는 ω0*T0 - ω1*T1)이 산출되고, 그 차이 값에 따라 제1 내지 제k 단계들 중 어느 하나의 단계가 판단될 수 있다.
예컨대, DRAM이 고성능 특성에 따라 동작하는 것으로 가정할 때, 파워다운 모드 구간(T0)은 웨이크-업 구간(T1)보다 작을 수 있으며, 이에 따라 레지스터의 설정값은 N 에 비해 증가될 수 있다. 또한, DRAM이 고성능으로 구동되는 정도는 달라질 수 있으며, 고성능 특성이 더욱 커지는 경우에는 파워다운 모드 구간(T0)과 웨이크-업 구간(T1) 사이의 차이의 절대값이 상대적으로 큰 값을 가질 수 있다. 만약, DRAM이 고성능으로 구동되는 경우에 있어서 차이 값(T0 - T1)이 상대적으로 작은 제1 단계에 해당하는 경우에는 설정값이 α 만큼 증가하는 반면에, 차이 값(T0 - T1)이 상대적으로 큰 제k 단계에 해당하는 경우에는 설정값이 k*α 만큼 증가할 수 있다.
도 14는 본 발명의 실시예에 적용 가능한 DRAM의 각종 구간들의 일 예를 나타내는 도면이다.
도 14를 참조하면, DRAM은 액티브 구간(Act) 동안 노멀하게 동작하고, DRAM에 대한 억세스가 발생되지 않음에 따라 DRAM은 아이들 구간(Idle)으로 진입할 수 있다. 상기 아이들 구간(Idle)은 고정된 시간을 갖는 제1 구간(A1)과 다운 카운팅을 수행하는 제2 구간(A2)을 포함할 수 있다. 또한, 고정된 시간을 갖는 제1 구간(A1)이 경과한 후에 제2 구간(A2)에서 설정값 N을 시작으로 하여 다운 카운팅이 수행되고, N 값을 다운 카운팅하는 동안 DRAM에 대한 억세스가 발생되지 않는 경우에는, DRAM은 파워다운 모드(Power Down)로 진입할 수 있다. 또한, 파워다운 모드 구간 내에서 DRAM에 대한 억세스가 발생되는 경우에는, DRAM은 웨이크-업 구간(Wake Up)을 거쳐 액티브 구간(Act)으로 진입될 수 있다.
전술한 실시예들에 따라, 파워다운 모드(Power Down)를 유지하는 시간(t2)이 검출되고, 상기 파워다운 모드가 유지된 시간(t2)은 소정의 기준값과 비교될 수 있다. 일 예로서, 웨이크-업 구간(Wake Up)에 소요되는 시간(t3)는 소정의 스펙에 따른 일정한 시간을 가질 수 있으며, 파워다운 모드가 유지된 시간(t2)과 웨이크-업 구간(Wake Up)에 소요되는 시간(t3)이 비교될 수 있다. 또한, 비교 결과에 따라 파워다운 모드(Power Down)로의 진입을 위한 다운 카운팅의 설정값(예컨대, N)이 변동될 수 있다.
일 실시예에 따라, 설정값이 N 보다 큰 값으로 변경되는 경우, 다운 카운팅을 수행하는 제2 구간(A2)이 증가될 수 있으며, 이에 따라 파워다운 모드로 진입하기 위한 아이들 구간(Idle)의 전체 지속 시간(t11 + t12)이 증가될 수 있다. 반면에, 설정값이 N 보다 작은 값으로 변경되는 경우, 다운 카운팅을 수행하는 제2 구간(A2)이 감소될 수 있으며, 이에 따라 파워다운 모드로 진입하기 위한 아이들 구간(Idle)의 전체 지속 시간(t11 + t12)이 감소될 수 있다. 또한, DRAM이 지속적으로 저전력 특성에 따라 구동되는 경우 제2 구간(A2) 또한 지속적으로 감소될 수 있으며, 특정 케이스에서는 제2 구간(A2)이 아이들 구간(Idle)에서 제거될 수도 있을 것이다.
한편, 본 발명의 실시예에 따라 레지스터에 저장되는 설정값은 상기 아이들 구간(Idle)의 전체 시간에 대응하는 값을 가질 수 있을 것이다. 또는, 레지스터에 저장되는 설정값은 다운 카운팅을 수행하기 위한 제2 구간(A2)에 대응하는 카운팅 값에 해당할 수도 있을 것이다.
도 15는 DRAM의 구동 패턴을 판단하기 위한 파워다운 모드의 다양한 구간 예를 나타내는 도면이다.
도 15를 참조하면, DRAM이 아이들 구간으로 진입함에 따라 클록 인에이블 신호(CKE)는 로직 하이 상태를 가지며 클록 게이팅 신호(MEM_CG)가 로직 로우 상태를 가질 수 있다. 또한 메모리 컨트롤러는 아이들 구간이 지속되는 시간을 카운팅하며, 일 예로서 메모리 컨트롤러는 N 값으로부터 - 1 씩 그 값을 감소시키는 다운카운팅 동작을 수행할 수 있다.
N 값이 모두 다운 카운팅된 시점(a)에서 DRAM이 파워다운 모드로 진입하도록 준비 동작이 수행되고, 이를 위해 클록 게이팅 신호(MEM_CG)가 로직 하이로 변동되고, 소정의 시간(T_clk_disable) 이후의 시점(b)에서 클록 인에이블 신호(CKE)가 로직 로우로 변경될 수 있다. 또한, 파워다운 모드 중 임의의 시점(c)에서 DRAM에 대한 억세스가 발생될 수 있으며, DRAM을 액티브 모드로 변경하기 위하여 일 시점(d)에서 클록 게이팅 신호(MEM_CG)가 로직 로우로 변동되고, 소정의 시간(T_clk_enable) 이후의 시점(e)에서 클록 인에이블 신호(CKE)가 로직 하이로 변경될 수 있다.
본 발명의 예시적인 실시예에 따라, DRAM의 구동 패턴을 판단하기 위해 DRAM의 파워다운 모드의 구간을 검출함에 있어서, 파워다운 모드의 시작 시점과 종료 시점은 다양하게 설정될 수 있다. 일 예로서, 상기 다수의 시점들(a ~ e) 중 선택된 두 개의 시점들 사이의 구간이 전술한 파워다운 모드의 구간으로 정의될 수 있다. 도 15에서는 시점 b와 시점 e 사이의 시간 구간(T11), 시점 a와 시점 e 사이의 시간 구간(T12), 시점 b와 시점 d 사이의 시간 구간(T13), 시점 a와 시점 d 사이의 시간 구간(T14) 등이 파워다운 모드로 정의되고, 상기 구간들이 다양한 기준값들(Tref1 ~ Tref4)과 비교되는 예가 도시되었으나, 본 발명의 실시예는 이외에도 다양하게 변형이 가능할 것이다.
도 16a,b는 본 발명의 실시예에 따른 DRAM 구동 시 데이터 독출 레이턴시의 일 예를 나타내는 도면이다. 도 16a는 설정값이 변경되기 이전 구간에서의 동작 예를 나타내고, 도 16b는 본 발명의 실시예에 따라 고성능 특성에 적합하게 설정값이 변경된 후의 구간에서의 동작 예를 나타낸다.
도 16a를 참조하면, 설정값이 상대적으로 작은 값(N)을 가지며, N 에 해당하는 다운 카운팅이 완료된 후 DRAM은 파워다운 모드로 진입할 수 있다. 또한, 파워다운 모드 내에서 데이터 리드 등의 메모리 동작을 위한 웨이크-업 요청이 발생되고, 소정의 웨이크-업 구간(T21)을 거쳐 DRAM이 정상적으로 동작할 수 있는 액티브 구간으로 진입될 수 있다. 그리고, 액티브 구간이 진입된 후 소정 개수의 클록이 경과된 후 요청에 대한 응답(예컨대, 독출 데이터(RD)의 전송)이 완료될 수 있다. 도 16a에 도시된 바에 따라, 웨이크-업 요청으로부터 응답이 완료되기까지의 레이턴시(Latency A)는 상대적으로 큰 값을 가질 수 있다.
한편, 전술한 실시예에 따라 구간 T20과 구간 T21의 비교 결과에 기반하여 설정값이 변경될 수 있으며, 일 예로 DRAM이 고성능 특성에 적합하게 동작하도록 설정값(예컨대, 카운팅 값)이 증가할 수 있다. 도 16b에 도시된 바와 같이, 아이들 구간에서 N+A 값으로부터 다운 카운팅이 수행되고, N+A 값의 다운 카운팅이 완료되기 이전에 데이터 리드 등의 메모리 동작을 위한 웨이크-업 요청이 발생됨에 따라, DRAM은 파워다운 모드로 진입함이 없이 상기 요청에 따른 메모리 동작을 수행할 수 있다.
일 예로, DRAM은 데이터 리드 요청 수신 후 소정 개수의 클록이 경과된 후 요청에 대한 응답(예컨대, 독출 데이터(RD)의 전송)을 완료할 수 있으며, 도 16b의 예에서는 웨이크-업 요청으로부터 응답이 완료되기까지의 레이턴시(Latency B)가 상대적으로 작은 값을 가질 수 있다.
상기와 같은 도 16a,b에 도시된 실시예에 따르면, DRAM의 동작 시 요청에 따른 응답까지에 소요되는 레이턴시가 DRAM 의 동작 중 지속적으로 변경될 수 있다. 일 예로서, 파워다운 모드의 진입 빈도가 증가될수록 데이터 독출 동작에서 발생되는 레이턴시가 도 16a에 도시된 바와 같은 상대적으로 긴 레이턴시(Latency A)를 갖는 빈도가 증가할 수 있다. 반면에, 파워다운 모드의 진입 빈도가 감소될수록 데이터 독출 동작에서 발생되는 레이턴시가 도 16b에 도시된 바와 같은 상대적으로 짧은 레이턴시(Latency B)를 갖는 빈도가 증가할 수 있다.
도 17은 본 발명의 예시적인 실시예에 따른 메모리 시스템을 나타내는 블록도이다.
도 17을 참조하면, 메모리 시스템(700)은 메모리 컨트롤러(710) 및 메모리 장치(720)를 포함할 수 있다. 메모리 장치(720)는 메모리 셀 어레이(721), 리프레쉬 제어기(722) 및 제어 로직(723)을 포함할 수 있다. 또한, 메모리 컨트롤러(710)는 구동 패턴 모니터(711), 모드 제어기(712) 및 저장 회로(713)를 포함할 수 있다. 구동 패턴 모니터(711) 및 모드 제어기(712)는 전술한 실시예들에 따른 구동 패턴 모니터링, 설정값 변경 및 모드 제어 동작을 수행할 수 있다. 또한, 저장 회로(713)는 설정값을 저장할 수 있으며, 구동 패턴 모니터(711)의 제어에 의해 설정값이 변경될 수 있다.
리프레쉬 제어기(722)는 메모리 셀 어레이(721)의 메모리 셀들에 대한 리프레쉬 동작을 제어할 수 있다. 일 예로서, 리프레쉬 제어기(722)는 액티브 모드에서 메모리 컨트롤러(710)의 제어에 기반하여 메모리 셀들을 리프레쉬할 수 있다. 또한, 리프레쉬 제어기(722)는 파워다운 모드에서 메모리 컨트롤러(710)의 제어에 무관하게 메모리 셀들을 리프레쉬하는 셀프 리프레쉬 동작을 제어할 수 있을 것이다.
한편, 메모리 장치(720)가 휘발성 메모리를 포함하는 경우, 메모리 장치(720)는 DDR SDRAM(Double Data Rate Synchronous Dynamic Random Access Memory), LPDDR(Low Power Double Data Rate) SDRAM, GDDR(Graphics Double Data Rate) SDRAM, RDRAM(Rambus Dynamic Random Access Memory) 등의 메모리를 포함할 수 있다. 그러나, 본 발명의 실시예들은 이에 국한될 필요가 없으며, 일 예로서 메모리 장치(720)는 플래시 메모리, MRAM(Magnetic RAM), FeRAM(Ferroelectric RAM), PRAM(Phase change RAM) 및 ReRAM(Resistive RAM) 등의 불휘발성 메모리를 포함하여도 무방하다.
한편, 메모리 장치(720)는 하나 이상의 메모리 칩들을 포함하는 반도체 패키지일 수 있으며, 또는 모듈 보드 상에 다수의 메모리 칩들이 장착된 메모리 모듈일 수도 있다. 또는, 도 18에서 메모리 컨트롤러(710)와 메모리 장치(720)가 서로 구분된 구성인 것으로 도시되었으나, 본 발명의 메모리 시스템(700)는 메모리 컨트롤 기능과 메모리 셀 어레이가 하나의 반도체 패키지에 집적된 시스템으로 구현될 수도 있을 것이다.
도 18은 본 발명의 변형 가능한 실시예에 따른 IP를 나타내는 블록도이다. 도 18에서는 본 발명의 실시예에 따른 구동 패턴 모니터링 동작이 머신 러닝(Machine Learning) 로직 등의 판단 로직에 의해 수행되는 예가 도시된다. 또한, IP의 일 예로서 메모리 컨트롤 유닛이 예시되며, IP(800)에 구비되는 구동 패턴 모니터(820)는 전술한 실시예들에 따른 구동 패턴 모니터링 동작을 수행함과 함께, 머신 러닝에 기반하는 판단 동작을 수행하는 판단 로직(821)을 더 포함할 수도 있다. 또한, 모드 제어기(810)는 전술한 실시예들에 따라 메모리 장치로 모드 제어신호를 출력할 수 있다.
판단 로직(821)은 IP(800) 내의 각종 정보들을 수신하고 이에 기반하는 판단 동작을 수행할 수 있다. 일 예로서, 판단 로직(821)은 전술한 실시예들에 따른 구동 패턴 모니터링 동작과 관련하여, 구동 패턴 모니터링을 위해 이용된 정보나 구동 패턴 모니터링 결과에 관련된 각종 정보들(Info_IN, Info_Res)을 트레이닝 정보로서 수신하고 이에 기반하는 판단 동작을 수행할 수 있다. 예컨대, 각종 정보들(Info_IN, Info_Res)은 메모리 시스템의 구동과 관련하여 레지스터 설정값, 실행되는 어플리케이션의 정보, 아이들 구간의 유지 시간 및 파워다운 모드의 유지 시간 등을 포함할 수 있으며, 판단 로직(821)은 머신 러닝에 기반하여 메모리 장치의 모드의 제어에 관련된 각종 판단 결과들(Res_Det)을 출력할 수 있다.
일 예로서, 판단 로직(821)은 상기 머신 러닝에 기반하여 현재 설정된 레지스터 설정값의 적절성 여부나, 실행되는 어플리케이션의 종류에 따른 최적의 레지스터 설정값을 판단할 수 있다. 또한, 판단 로직(821)은 머신 러닝 결과로서 메모리 장치의 모드 제어와 관련하여 설정값(Info_set_DL)을 출력하거나, 전술한 가중치 또는 가중치 조절을 위한 오프셋 등의 가중치/오프셋 정보(Info_w_DL) 등을 출력할 수 있다.
일 실시예에 따라, 사용자의 동작 패턴이 일정한 규칙을 따르는 경우 전술한 실시예들에 따라 구동 특성 모니터링 및 모드 제어동작이 수행될 수 있다. 만약, 동작 패턴이 일정한 규칙에서 벗어나는 경우, 상기한 바와 같이 머신 러닝 결과에 기반하는 정보들(Info_set_DL, Info_w_DL)을 이용하여 사용자의 실제 동작 패턴에 적합하게 모드 제어동작이 신속하게 수행될 수 있을 것이다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (20)

  1. 메모리 장치를 제어하는 메모리 컨트롤러의 동작방법에 있어서,
    아이들 상태가 현재 설정된 제1 설정값에 대응하는 제1 시간 동안 지속된 후 상기 메모리 장치를 파워다운 모드로 진입시키는 단계;
    상기 메모리 장치에 대한 억세스가 발생됨에 따라 웨이크-업 구간을 수행함으로써 상기 메모리 장치를 상기 파워다운 모드로부터 액티브 구간으로 진입시키는 단계;
    상기 파워다운 모드의 유지 시간을 판단함으로써 상기 메모리 장치의 구동 패턴을 모니터링한 결과에 기반하여 상기 제1 설정값을 제2 설정값으로 변경하는 단계; 및
    상기 변경된 제2 설정값에 따라, 아이들 상태가 상기 제1 시간과는 다른 제2 시간 동안 지속될 때 상기 메모리 장치를 상기 파워다운 모드로 진입시키는 단계를 구비하고,
    상기 제1 설정값에 따라 진입된 파워다운 모드는 제3 시간 동안 유지되고, 상기 웨이크-업 구간은 제4 시간 동안 유지되며,
    상기 제1 설정값은 상기 제3 시간과 상기 제4 시간을 비교한 결과에 기반하여 상기 제2 설정값으로 변경되는 것을 특징으로 하는 메모리 컨트롤러의 동작방법.
  2. 제1항에 있어서,
    상기 제2 시간이 상기 제1 시간보다 클 때, 상기 메모리 컨트롤러는 상기 아이들 상태가 길게 지속된 후 상기 메모리 장치를 상기 파워다운 모드로 진입시킴으로써, 소정의 시간 내에 상기 메모리 장치가 상기 파워다운 모드로 진입하는 횟수를 나타내는 진입 빈도를 감소시키고,
    상기 제2 시간이 상기 제1 시간보다 작을 때, 상기 메모리 컨트롤러는 상기 아이들 상태가 짧게 지속된 후 상기 메모리 장치를 상기 파워다운 모드로 진입시킴으로써 상기 파워다운 모드의 진입 빈도를 증가시키는 것을 특징으로 하는 메모리 컨트롤러의 동작방법.
  3. 삭제
  4. 제1항에 있어서,
    상기 제3 시간이 상기 제4 시간보다 작을 때, 상기 제2 설정값은 상기 제1 설정값보다 큰 값을 가지며,
    상기 제3 시간이 상기 제4 시간보다 클 때, 상기 제2 설정값은 상기 제1 설정값보다 작은 값을 갖는 것을 특징으로 하는 메모리 컨트롤러의 동작방법.
  5. 제1항에 있어서,
    상기 제3 시간과 상기 제4 시간의 차이가 제1 기준값 보다 작을 때, 상기 제2 설정값은 상기 제1 설정값보다 큰 값을 가지며,
    상기 제3 시간과 상기 제4 시간의 차이가 상기 제1 기준값 보다 크고 제2 기준값보다 작을 때, 상기 제2 설정값은 상기 제1 설정값과 동일하게 유지되며,
    상기 제3 시간과 상기 제4 시간의 차이가 상기 제2 기준값보다 클 때, 상기 제2 설정값은 상기 제1 설정값보다 작은 값을 갖는 것을 특징으로 하는 메모리 컨트롤러의 동작방법.
  6. 제1항에 있어서,
    상기 제3 시간 및 상기 제4 시간 중 적어도 하나에 대해 가중치가 부여되고,
    상기 가중치가 부여된 제3 시간과 상기 제4 시간을 비교한 결과에 기반하여 상기 제1 설정값이 상기 제2 설정값으로 변경되는 것을 특징으로 하는 메모리 컨트롤러의 동작방법.
  7. 제1항에 있어서,
    상기 제1 시간은 제1 카운팅 구간을 포함하고, 상기 제2 시간은 제2 카운팅 구간을 포함하며,
    상기 제1 설정값은 N 값을 갖는 제1 카운팅 값에 해당하고, 상기 제2 설정값은 N ± α 의 값을 갖는 제2 카운팅 값에 해당하는 것을 특징으로 하는 메모리 컨트롤러의 동작방법(단, N은 2 이상의 정수, α는 1 이상의 정수).
  8. 제7항에 있어서,
    상기 제1 카운팅 구간에서 상기 N 값을 시작으로 하는 다운 카운팅이 수행되고, 상기 제2 카운팅 구간에서 상기 N ± α 값을 시작으로 하는 다운 카운팅이 수행되며,
    상기 제1 카운팅 값 또는 상기 제2 카운팅 값을 모두 다운 카운팅하였을 때 상기 메모리 장치를 상기 파워다운 모드로 진입시키는 것을 특징으로 하는 메모리 컨트롤러의 동작방법.
  9. 제1항에 있어서,
    상기 변경된 제2 설정값을 불휘발성하게 저장하는 단계;
    상기 메모리 컨트롤러가 채용된 시스템이 재부팅됨에 따라, 상기 제2 설정값을 레지스터에 초기 설정하는 단계; 및
    상기 설정된 제2 설정값에 따라 상기 메모리 장치를 구동하는 단계를 더 구비하는 것을 특징으로 하는 메모리 컨트롤러의 동작방법.
  10. 제1항에 있어서,
    상기 제1 설정값에 따라 진입된 파워다운 모드의 유지 시간을 검출함에 의해 상기 메모리 장치의 구동 패턴이 모니터링되고,
    상기 메모리 장치를 상기 파워다운 모드로 진입시키기 위해 클록 게이팅 신호가 제1 상태로 천이되는 제1 시점, 클록 인에이블 신호가 제2 상태로 천이되는 제2 시점, 상기 억세스가 발생되는 제3 시점, 상기 메모리 장치를 상기 액티브 구간으로 진입시키기 위해 상기 클록 게이팅 신호가 제2 상태로 천이되는 제4 시점, 상기 클록 인에이블 신호가 제1 상태로 천이되는 제5 시점이 존재하고,
    상기 파워다운 모드의 유지 시간은 상기 제1 내지 제5 시점들 중에서 선택된 두 개의 시점들 사이의 구간인 것을 특징으로 하는 메모리 컨트롤러의 동작방법.
  11. 메모리 장치를 제어하는 메모리 컨트롤러에 있어서,
    상기 메모리 장치가 파워다운 모드를 유지하는 시간을 판단함으로써 상기 메모리 장치의 구동 패턴을 모니터링하고, 상기 모니터링 결과에 따라 상기 메모리 장치의 동작 성능의 조절에 관련된 설정값을 변경하는 구동 특성 모니터; 및
    상기 메모리 장치의 동작 중에, 상기 메모리 장치가 상기 파워다운 모드로 진입하기 위한 조건으로서 아이들 상태의 지속 시간을 상기 설정값에 따라 가변함으로써 상기 메모리 장치의 동작 성능을 조절하는 모드 제어기를 구비하고,
    변경된 설정값이 상기 메모리 컨트롤러 내에 불휘발성하게 저장됨에 따라, 상기 메모리 컨트롤러가 채용된 시스템이 재부팅될 때 상기 변경된 설정값에 기초하여 상기 메모리 장치를 상기 파워다운 모드로 진입시키는 메모리 컨트롤러.
  12. 제11항에 있어서,
    상기 메모리 장치가 고성능 특성에 따라 동작하는 것으로 모니터링될 때, 상기 모드 제어기는 상기 변경된 설정값에 따라 상기 메모리 장치가 파워다운 모드로 진입하는 빈도를 감소시키고,
    상기 메모리 장치가 저전력 특성에 따라 동작하는 것으로 모니터링될 때, 상기 모드 제어기는 상기 변경된 설정값에 따라 상기 메모리 장치가 상기 파워다운 모드로 진입하는 빈도를 증가시키는 것을 특징으로 하는 메모리 컨트롤러.
  13. 제11항에 있어서,
    상기 설정값은 상기 모니터링 결과에 따라 제1 설정값에서 제2 설정값으로 변경되고,
    상기 모드 제어기는, 아이들 상태가 상기 제1 설정값에 대응하는 제1 시간 동안 지속된 후 상기 메모리 장치를 파워다운 모드로 진입시키고, 상기 설정값이 변경된 후 상기 아이들 상태가 상기 제2 설정값에 대응하는 제2 시간 동안 지속된 후 상기 메모리 장치를 파워다운 모드로 진입시키는 것을 특징으로 하는 메모리 컨트롤러.
  14. 제13항에 있어서,
    상기 구동 특성 모니터는, 상기 제1 설정값에 따라 진입된 파워다운 모드가 유지되는 제3 시간을 검출하고, 상기 제3 시간을 기준값과 비교하며,
    상기 제3 시간이 상기 기준값보다 작을 때 상기 제2 시간은 상기 제1 시간에 비해 크고, 상기 제3 시간이 상기 기준값보다 클 때 상기 제2 시간은 상기 제1 시간에 비해 작은 것을 특징으로 하는 메모리 컨트롤러.
  15. 제14항에 있어서,
    상기 메모리 장치는 상기 파워다운 모드로부터 웨이크-업 구간을 거쳐 액티브 구간으로 진입하며,
    상기 기준값은 상기 웨이크-업 구간에 소요되는 시간에 해당하는 것을 특징으로 하는 메모리 컨트롤러.
  16. 어플리케이션 프로세서의 동작방법에 있어서, 상기 어플리케이션 프로세서는 하나 이상의 IP(Intellectual Property) 블록을 포함하고, 상기 IP 블록은 대응하는 입출력 장치를 제어하며,
    초기 설정된 제1 설정값에 따라 상기 입출력 장치의 파워다운 모드의 진입을 제어하는 단계;
    상기 입출력 장치의 파워다운 모드의 유지 시간을 검출함에 기반하여, 상기 어플리케이션 프로세서가 채용된 시스템의 재부팅시에 상기 제1 설정값을 제2 설정값으로 변경하는 단계; 및
    상기 변경된 제2 설정값에 따라 상기 입출력 장치의 상기 파워다운 모드의 진입을 제어하는 단계를 구비하고,
    상기 파워다운 모드의 진입을 위해 상기 입출력 장치로 제공되는 클록 인에이블 신호를 활성화 상태에서 비활성화 상태로 변경시키고,
    상기 변경된 제2 설정값에 따라, 상기 입출력 장치가 파워다운 모드로 진입하기 전의 상기 클록 인에이블 신호의 활성화 상태의 유지 구간을 변경시키며,
    상기 제1 설정값은 N 에 해당하는 제1 카운팅 값이고, 상기 제2 설정값은 상기 N ± α 에 해당하는 제2 카운팅 값이며,
    상기 입출력 장치는, 상기 N 값을 이용한 카운팅 동작에 기반하여 아이들 상태가 제1 시간이 지속된 후 상기 파워다운 모드로 진입되고, 상기 N ± α 값을 이용한 카운팅 동작에 기반하여 상기 아이들 상태가 제2 시간이 지속된 후 상기 파워다운 모드로 진입되는 것을 특징으로 하는 어플리케이션 프로세서의 동작방법.
  17. 제16항에 있어서,
    상기 입출력 장치의 상기 파워다운 모드의 유지 시간이 기준값보다 작을 때, 상기 클록 인에이블 신호의 활성화 상태의 유지 구간을 증가시키며,
    상기 입출력 장치의 상기 파워다운 모드의 유지 시간이 기준값보다 클 때, 상기 클록 인에이블 신호의 활성화 상태의 유지 구간을 감소시키는 것을 특징으로 하는 어플리케이션 프로세서의 동작방법.
  18. 삭제
  19. 제16항에 있어서,
    상기 IP 블록은 메모리 컨트롤 유닛이고, 상기 입출력 장치는 상기 어플리케이션 프로세서 외부의 메모리 장치인 것을 특징으로 하는 어플리케이션 프로세서의 동작방법.
  20. 제16항에 있어서,
    상기 제1 설정값에 따라 진입된 파워다운 모드를 제1 시간 동안 유지시키는 단계; 및
    제2 시간에 해당하는 웨이크-업 구간을 거쳐 상기 입출력 장치를 액티브 구간으로 진입시키는 단계를 더 구비하고,
    상기 제2 설정값으로 변경하는 단계는, 적어도 하나의 가중치를 이용하여 상기 제1 시간과 상기 제2 시간을 비교하는 단계를 포함하고, 상기 가중치는 상기 어플리케이션 프로세서에 의해 실행되는 프로그램의 종류에 기반하여 가변하는 것을 특징으로 하는 어플리케이션 프로세서의 동작방법.
KR1020170102560A 2017-08-11 2017-08-11 입출력 장치의 성능 및 전력소모를 조절하는 메모리 컨트롤러, 어플리케이션 프로세서 및 메모리 컨트롤러의 동작방법 KR102480017B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020170102560A KR102480017B1 (ko) 2017-08-11 2017-08-11 입출력 장치의 성능 및 전력소모를 조절하는 메모리 컨트롤러, 어플리케이션 프로세서 및 메모리 컨트롤러의 동작방법
US15/957,611 US11086388B2 (en) 2017-08-11 2018-04-19 Memory controller and operating method thereof
CN201810462339.1A CN109388339B (zh) 2017-08-11 2018-05-15 存储器控制器及其操作方法
SG10201804845PA SG10201804845PA (en) 2017-08-11 2018-06-07 Memory controller and operating method thereof
TW107120484A TWI774787B (zh) 2017-08-11 2018-06-14 記憶體控制器及其操作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170102560A KR102480017B1 (ko) 2017-08-11 2017-08-11 입출력 장치의 성능 및 전력소모를 조절하는 메모리 컨트롤러, 어플리케이션 프로세서 및 메모리 컨트롤러의 동작방법

Publications (2)

Publication Number Publication Date
KR20190017552A KR20190017552A (ko) 2019-02-20
KR102480017B1 true KR102480017B1 (ko) 2022-12-21

Family

ID=65275152

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170102560A KR102480017B1 (ko) 2017-08-11 2017-08-11 입출력 장치의 성능 및 전력소모를 조절하는 메모리 컨트롤러, 어플리케이션 프로세서 및 메모리 컨트롤러의 동작방법

Country Status (5)

Country Link
US (1) US11086388B2 (ko)
KR (1) KR102480017B1 (ko)
CN (1) CN109388339B (ko)
SG (1) SG10201804845PA (ko)
TW (1) TWI774787B (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11100962B2 (en) * 2017-12-26 2021-08-24 SK Hynix Inc. Semiconductor device with a power-down mode and a power gating circuit and semiconductor system including the same
US10943626B1 (en) 2017-12-26 2021-03-09 SK Hynix Inc. Semiconductor memory device with power gating circuit for data input-output control block and data input/output block and semiconductor system including the same
US11838020B1 (en) 2017-12-26 2023-12-05 SK Hynix Inc. Semiconductor memory device including write driver with power gating structures and operating method thereof
US10936046B2 (en) * 2018-06-11 2021-03-02 Silicon Motion, Inc. Method for performing power saving control in a memory device, associated memory device and memory controller thereof, and associated electronic device
KR20200084200A (ko) * 2019-01-02 2020-07-10 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작방법
TWI725434B (zh) * 2019-05-24 2021-04-21 慧榮科技股份有限公司 藉助於組態設定來進行動態節流控制之方法、具備計算機功能的主機、以及資料儲存裝置及其控制器
KR102671743B1 (ko) * 2019-05-31 2024-06-04 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
US11216058B2 (en) * 2019-07-15 2022-01-04 Micron Technology, Inc. Storage system deep idle power mode
JP6876113B2 (ja) * 2019-11-13 2021-05-26 レノボ・シンガポール・プライベート・リミテッド 情報処理装置および制御方法
KR20220003837A (ko) * 2020-07-02 2022-01-11 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
US11210986B1 (en) * 2020-08-03 2021-12-28 Novatek Microelectronics Corp. Display driving apparatus and method
US11630502B2 (en) * 2021-07-30 2023-04-18 Advanced Micro Devices, Inc. Hierarchical state save and restore for device with varying power states
US11886220B2 (en) * 2022-05-05 2024-01-30 Qualcomm Incorporated Dynamic power-down management in a computing device

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090249102A1 (en) * 2008-03-31 2009-10-01 Intel Corporation Method and apparatus for reducing power consumption in multi-channel memory controller systems
US20170068308A1 (en) * 2015-09-04 2017-03-09 Qualcomm Incorporated Systems and methods for dynamically adjusting memory state transition timers

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0883148A (ja) * 1994-09-13 1996-03-26 Nec Corp 磁気ディスク装置
US5619471A (en) 1995-06-06 1997-04-08 Apple Computer, Inc. Memory controller for both interleaved and non-interleaved memory
JP2002230970A (ja) * 2001-01-29 2002-08-16 Nec Microsystems Ltd メモリ制御装置
US7028136B1 (en) * 2002-08-10 2006-04-11 Cisco Technology, Inc. Managing idle time and performing lookup operations to adapt to refresh requirements or operational rates of the particular associative memory or other devices used to implement the system
KR20050035699A (ko) 2003-10-14 2005-04-19 삼성전자주식회사 메모리 시스템의 에너지 절감 방법 및 장치
US7752470B2 (en) 2003-12-03 2010-07-06 International Business Machines Corporation Method and system for power management including device controller-based device use evaluation and power-state control
US7613941B2 (en) 2005-12-29 2009-11-03 Intel Corporation Mechanism for self refresh during advanced configuration and power interface (ACPI) standard C0 power state
US8799687B2 (en) * 2005-12-30 2014-08-05 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including optimizing C-state selection under variable wakeup rates
US7587547B2 (en) * 2006-03-30 2009-09-08 Intel Corporation Dynamic update adaptive idle timer
US8458429B2 (en) 2006-12-31 2013-06-04 Texas Instruments Incorporated Memory controller idle mode
KR101404943B1 (ko) 2007-02-05 2014-06-10 엘지전자 주식회사 사용자 패턴을 이용하여 전원제어를 수행하는 휴대용전자기기 및 휴대용 전자기기에서의 사용자 패턴을 이용한전원제어 방법
KR20090098500A (ko) 2008-03-14 2009-09-17 삼성전자주식회사 가상 머신의 유휴 구간 검사 장치 및 방법, 그리고 그방법을 수행하기 위한 컴퓨터 프로그램
US8402232B2 (en) * 2009-12-23 2013-03-19 Oracle America, Inc. Memory utilization tracking
KR101913549B1 (ko) 2010-07-29 2018-10-30 르네사스 일렉트로닉스 가부시키가이샤 반도체 장치 및 데이터 처리 시스템
US9400545B2 (en) * 2011-12-22 2016-07-26 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including autonomous hardware-based deep power down in devices
KR20130110459A (ko) * 2012-03-29 2013-10-10 삼성전자주식회사 시스템-온 칩, 이를 포함하는 전자 시스템 및 그 제어 방법
US8601301B1 (en) 2012-05-18 2013-12-03 Google Inc. System and method for adjusting an idle time of a hardware device based on a pattern of user activity that indicates a period of time that the user is not in a predetermined area
US20140181553A1 (en) 2012-12-21 2014-06-26 Advanced Micro Devices, Inc. Idle Phase Prediction For Integrated Circuits
JP5764150B2 (ja) 2013-01-16 2015-08-12 レノボ・シンガポール・プライベート・リミテッド パワー・オン状態から省電力状態に移行させる方法およびコンピュータ
US9170639B2 (en) 2013-04-09 2015-10-27 International Business Machines Corporation Method and apparatus for mitigating effects of memory scrub operations on idle time power savings modes
US9001608B1 (en) * 2013-12-06 2015-04-07 Intel Corporation Coordinating power mode switching and refresh operations in a memory device
US9760158B2 (en) 2014-06-06 2017-09-12 Intel Corporation Forcing a processor into a low power state
KR101610122B1 (ko) 2014-09-16 2016-04-08 현대자동차 주식회사 차량 텔레매틱스 장치의 원격제어 방법 및 그 시스템
US9483107B2 (en) * 2014-10-13 2016-11-01 Microsoft Technology Licensing, Llc Adaptive idle timeout for storage devices
KR102291505B1 (ko) * 2014-11-24 2021-08-23 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
KR20160094767A (ko) * 2015-02-02 2016-08-10 삼성전자주식회사 아이들 구간에서 정보 전달 기능을 수행하는 메모리 장치 및 방법
US10234930B2 (en) 2015-02-13 2019-03-19 Intel Corporation Performing power management in a multicore processor
US10042416B2 (en) * 2015-07-20 2018-08-07 Sandisk Technologies Llc Memory system and method for adaptive auto-sleep and background operations
US9818458B1 (en) * 2015-09-23 2017-11-14 Intel Corporation Techniques for entry to a lower power state for a memory device
US9965220B2 (en) * 2016-02-05 2018-05-08 Qualcomm Incorporated Forced idling of memory subsystems
US10481944B2 (en) * 2017-08-09 2019-11-19 Xilinx, Inc. Adaptive quality of service control circuit

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090249102A1 (en) * 2008-03-31 2009-10-01 Intel Corporation Method and apparatus for reducing power consumption in multi-channel memory controller systems
US20170068308A1 (en) * 2015-09-04 2017-03-09 Qualcomm Incorporated Systems and methods for dynamically adjusting memory state transition timers

Also Published As

Publication number Publication date
CN109388339B (zh) 2023-12-12
TWI774787B (zh) 2022-08-21
US20190050048A1 (en) 2019-02-14
US11086388B2 (en) 2021-08-10
TW201911304A (zh) 2019-03-16
KR20190017552A (ko) 2019-02-20
CN109388339A (zh) 2019-02-26
SG10201804845PA (en) 2019-03-28

Similar Documents

Publication Publication Date Title
KR102480017B1 (ko) 입출력 장치의 성능 및 전력소모를 조절하는 메모리 컨트롤러, 어플리케이션 프로세서 및 메모리 컨트롤러의 동작방법
US9189053B2 (en) Performance based power management of a memory and a data storage system using the memory
US7596708B1 (en) Adaptive power control
US9250665B2 (en) GPU with dynamic performance adjustment
JP4922306B2 (ja) C0時のセルフリフレッシュメカニズム
US8738937B2 (en) Method and apparatus to limit memory power
US9405350B2 (en) Memory control device, semiconductor device, and system board
KR101259697B1 (ko) 메모리 디바이스의 셀프-리프레시 상태로부터의 고속 탈출
TWI533117B (zh) 用於電力管理之裝置、積體電路及方法
US8112250B2 (en) Processor power management
US10223017B2 (en) Memory apparatus and energy-saving control method thereof
US7941683B2 (en) Data processing device with low-power cache access mode
WO2015197633A1 (en) Memory management based on bandwidth utilization
TWI581092B (zh) 記憶體裝置及其節能控制方法
TWI601009B (zh) 熱感測器動態關斷的技術
US20080253214A1 (en) Method and apparatus for incorporating DDR SDRAM into portable devices
JP2000200110A (ja) 電圧降下回路
KR20240018670A (ko) 저전력 상태에서 온-다이 타이머의 정확한 쉐도잉 및 조정

Legal Events

Date Code Title Description
E902 Notification of reason for refusal