KR101773175B1 - 유휴 디스플레이 상황에서의 메모리 절전 - Google Patents
유휴 디스플레이 상황에서의 메모리 절전 Download PDFInfo
- Publication number
- KR101773175B1 KR101773175B1 KR1020157034983A KR20157034983A KR101773175B1 KR 101773175 B1 KR101773175 B1 KR 101773175B1 KR 1020157034983 A KR1020157034983 A KR 1020157034983A KR 20157034983 A KR20157034983 A KR 20157034983A KR 101773175 B1 KR101773175 B1 KR 101773175B1
- Authority
- KR
- South Korea
- Prior art keywords
- memory
- cache
- display
- idle
- response
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3275—Power saving in memory, e.g. RAM, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/001—Arbitration of resources in a display system, e.g. control of access to frame buffer by video controller and/or main processor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3215—Monitoring of peripheral devices
- G06F1/3218—Monitoring of peripheral devices of display devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3287—Power saving characterised by the action undertaken by switching off individual functional units in the computer system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0873—Mapping of cache memory to specific storage devices or parts thereof
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/39—Control of the bit-mapped memory
- G09G5/393—Arrangements for updating the contents of the bit-mapped memory
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/39—Control of the bit-mapped memory
- G09G5/395—Arrangements specially adapted for transferring the contents of the bit-mapped memory to the screen
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/45—Caching of specific data in cache memory
- G06F2212/455—Image or video data
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2330/00—Aspects of power supply; Aspects of display protection and defect management
- G09G2330/02—Details of power systems and of start or stop of display operation
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2330/00—Aspects of power supply; Aspects of display protection and defect management
- G09G2330/02—Details of power systems and of start or stop of display operation
- G09G2330/021—Power management, e.g. power saving
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2360/00—Aspects of the architecture of display systems
- G09G2360/12—Frame memory handling
- G09G2360/121—Frame memory handling using a cache memory
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Multimedia (AREA)
- Computing Systems (AREA)
- Control Of Indicators Other Than Cathode Ray Tubes (AREA)
- Controls And Circuits For Display Device (AREA)
- Power Sources (AREA)
Abstract
일 실시예에서, 시스템은 메모리 캐시를 포함하는 메모리 제어기 및 디스플레이를 제어하도록 구성된 디스플레이 제어기를 포함한다. 시스템은 표시되고 있는 이미지들이 기본적으로 정적인지 검출하도록 구성될 수 있고, 디스플레이 제어기로 하여금 소스 프레임 버퍼 데이터에 대한 메모리 캐시의 할당을 요청하게 하도록 구성될 수 있다. 일부 실시예에서, 시스템은 또한 메모리 캐시의 전력 관리 설정을 변경하여, 유휴 스크린 경우 동안 메모리 캐시가 셧다운되거나 그것의 유효 크기를 감소시키는 것을 방지해서, 프레임 버퍼 데이터가 캐시 저장된 상태로 남아있도록 할 수 있다. 디스플레이가 동적으로 변경되는 시간동안, 프레임 버퍼 데이터는 메모리 캐시에 캐시 저장되지 않아도 되고, 전력 관리 설정은 셧다운/메모리 캐시의 크기 축소를 허용할 수 있다.
Description
본 발명은 집적 회로, 디스플레이 디바이스, 및 캐시를 포함하는 디지털 시스템 분야에 관한 것이다.
다양한 유형의 디지털 시스템들은 종종 사용자가 디바이스와 상호작용하기 위한 디스플레이를 포함하거나, 그것에 연결된다. 디스플레이는 디바이스에 통합될 수 있다. 통합형 디스플레이들의 예시는 다양한 스마트 폰, 태블릿 컴퓨터, 또는 기타 개인용 디지털 어시스턴트 상의 터치스크린을 포함한다. 통합형 디스플레이의 다른 예시는 스크린이 덮개에 있는 랩톱이다. 디스플레이는 또한 케이블을 통해 디바이스에 연결될 수 있다. 연결형 디스플레이의 예시는 별도의 디스플레이가 데스크 상의 사용자 앞에 있는 다양한 데스크톱 컴퓨터 및 워크스테이션을 포함한다. 일부 데스크톱은 또한 통합형 디스플레이를 갖는다(예를 들어 애플사(Apple Inc.)의 다양한 아이맥(iMac®) 컴퓨터). 디스플레이는 사용자가 시스템 및 시스템 상에서 실행되는 애플리케이션들과의 상호작용을 볼 수 있는 시각적 인터페이스를 제공한다. 일부 경우에(예를 들어 터치스크린), 디스플레이는 또한 시스템에 입력하기 위한 사용자 인터페이스를 제공한다. 기타 사용자 입력 디바이스들(예를 들어 키보드, 마우스 또는 기타 포인팅 디바이스 등)이 포함될 수 있다.
많은 경우에, 일정 시간동안 표시되는 이미지들은 기본적으로 정적이다. 예를 들어, 사용자가 디스플레이 상에서 전자책을 읽고 있는 경우, 디스플레이는 사용자가 페이지를 다 읽을 때까지 한 페이지의 텍스트를 정적으로 표시할 수 있다. 영화를 일시 정지하면, 일시 정지가 실행 중인 시간 동안 이미지들에는 변화가 없을 수 있다. 사용자가 웹 페이지들을 읽고 있을 때, 다시 사용자는 콘텐츠에 집중할 수 있고 이미지들은 정적일 수 있다. 표시되고 있는 정적 이미지에 변화가 거의 없거나 전혀 없으면, 스크린의 리프레시 사이클마다 이미지를 페치하는 데 소요되는 메모리 대역폭은 대역폭 및 전력 소모 면에서 둘 다 낭비일 수 있다.
일 실시예에서, 시스템은 메모리 캐시를 포함하는 메모리 제어기 및 디스플레이를 제어하도록 구성된 디스플레이 제어기를 포함한다. 시스템은 표시되고 있는 이미지들이 기본적으로 정적인지 검출하도록 구성될 수 있고, 디스플레이 제어기로 하여금 소스 프레임 버퍼 데이터에 대한 메모리 캐시의 할당을 요청하게 하도록 구성될 수 있다. 메모리 캐시에 프레임 버퍼 데이터(또는 프레임 버퍼 데이터의 적어도 일부분)를 캐시 저장함으로써 외부 메모리 인터페이스 상에서 다른 방식으로 소비될 수도 있는 전력이 보존될 수 있다. 일부 실시예에서, 시스템은 또한 메모리 캐시의 전력 관리 설정을 변경하여, 유휴 스크린 상황 동안 메모리 캐시가 셧다운되거나 메모리 캐시의 유효 크기를 축소하는 것을 방지해서, 프레임 버퍼 데이터가 캐시 저장된 상태로 남아있도록 할 수 있다. 표시되는 이미지들이 동적으로 변하는 시간동안, 프레임 버퍼 데이터는 메모리 캐시에 캐시 저장되지 않아도 되고 전력 관리 설정은 셧다운/메모리 캐시의 크기 축소를 허용할 수 있다.
하기의 발명을 실시하기 위한 구체적인 내용은 첨부 도면을 참조하며, 이제 도면들이 간단히 설명된다.
도 1은 시스템 온 칩(SOC), 메모리, 이미지 센서, 및 디스플레이 디바이스를 포함하는 시스템의 일 실시예의 블록 다이어그램이다.
도 2는 동적 디스플레이 상태에 있는 시스템의 일 실시예의 동작을 설명하는 흐름도이다.
도 3은 유휴 디스플레이 상태에 있는 시스템의 일 실시예의 동작을 설명하는 흐름도이다.
도 4는 시스템의 일 실시예에서 실행될 수 있는 다양한 소프트웨어 모듈의 블록 다이어그램이다.
도 5는 도 4에 도시된 PMGR 드라이버의 일 실시예의 동작을 설명하는 흐름도이다.
도 6은 CPU 필터의 일 실시예의 다이어그램이다.
도 7은 CPU 필터의 일 실시예의 동작을 설명하는 흐름도이다.
도 8은 CPU 필터에 응답하는 PMGR 드라이버의 일 실시예의 동작을 설명하는 흐름도이다.
도 9는 컴퓨터 액세스 가능 저장 매체의 일 실시예의 블록 다이어그램이다.
도 10은 도 1에 도시된 SOC를 포함하는 시스템의 다른 실시예의 블록 다이어그램이다.
본 발명은 다양한 수정 및 대안적인 형태를 수용할 수 있지만, 본 발명의 특정 실시예들은 예로서 도면에 도시되고 본 명세서에서 상세히 설명될 것이다. 그러나, 그에 대한 도면 및 상세한 설명은 본 발명을 개시된 특정 형태로 제한하도록 의도되는 것이 아니며, 반대로, 첨부된 청구범위에 의해 정의되는 바와 같은 본 발명의 사상 및 범주 내에 있는 모든 수정들, 등가들 및 대안들을 포괄하려는 의도로 이해하여야 한다. 본 명세서에서 이용되는 표제들은 오직 구성을 위한 것이며 설명의 범위를 한정하기 위해 사용되는 것으로 여겨지지 않는다. 본 출원 전반에 걸쳐 사용되는 바와 같이, "일 수 있다(may)"라는 단어는 의무적인 의미(즉, "이어야만 한다(must)"를 의미)라기보다 오히려 허용의 의미(즉, "~에 대해 가능성을 갖는다"는 의미)로 사용된다. 유사하게, "포함하다(include, includes)" 및 "포함하는(including)"이라는 단어는 포함하지만 이로 한정되지 않음을 의미한다.
다양한 유닛들, 회로들 또는 기타 컴포넌트들이 과제 또는 과제들을 수행하도록 "구성"되는 것으로 설명될 수 있다. 그러한 맥락에서, "~하도록 구성되는"은 동작 동안에 과제 또는 과제들을 수행하는 "회로를 갖는"을 일반적으로 의미하는 구조의 광의의 설명이다. 이와 같이, 유닛/회로/컴포넌트는 유닛/회로/컴포넌트가 현재 온(on) 상태가 아닌 경우에도 과제를 수행하도록 구성될 수 있다. 일반적으로, "~하도록 구성된"에 대응하는 구조를 형성하는 회로는 동작을 구현하기 위하여 실행 가능한 프로그램 명령어들을 저장하는 하드웨어 회로들 및/또는 메모리를 포함할 수 있다. 메모리는 정적 또는 동적 랜덤 액세스 메모리와 같은 휘발성 메모리 및/또는 비휘발성 메모리, 예를 들어 광 또는 자기 디스크 저장장치, 플래시 메모리, 프로그래밍 가능한 판독 전용 메모리(programmable read-only memory) 등을 포함할 수 있다. 유사하게, 다양한 유닛/회로/컴포넌트들은 설명의 편의를 위해 과제 또는 과제들을 수행하는 것으로 설명될 수 있다. 그러한 설명은 "~하도록 구성된"이라는 문구를 포함하는 것으로 해석되어야 한다. 하나 이상의 과제들을 수행하도록 구성된 유닛/회로/컴포넌트를 언급하는 것은 35 U.S.C. § 112, 6항의 유닛/회로/컴포넌트에 대한 해석을 적용하지 않고자 명백히 의도하는 것이다.
본 명세서는 "일 실시예" 또는 "실시예"에 대한 참조를 포함한다. 본 명세서에서 명시적으로 부인하지 않는다면, 임의의 특징부들의 조합을 포함하는 실시예들이 일반적으로 고려되더라도, "일 실시예에서" 또는 "하나의 실시예에서" 구문의 표현은 반드시 동일한 실시예를 지칭하지 않는다. 특정 특징부들, 구조물들 또는 특징들이 본 개시 내용과 일관성을 유지하면서 임의의 적합한 방식으로 조합될 수 있다.
도 1은 시스템 온 칩(SOC), 메모리, 이미지 센서, 및 디스플레이 디바이스를 포함하는 시스템의 일 실시예의 블록 다이어그램이다.
도 2는 동적 디스플레이 상태에 있는 시스템의 일 실시예의 동작을 설명하는 흐름도이다.
도 3은 유휴 디스플레이 상태에 있는 시스템의 일 실시예의 동작을 설명하는 흐름도이다.
도 4는 시스템의 일 실시예에서 실행될 수 있는 다양한 소프트웨어 모듈의 블록 다이어그램이다.
도 5는 도 4에 도시된 PMGR 드라이버의 일 실시예의 동작을 설명하는 흐름도이다.
도 6은 CPU 필터의 일 실시예의 다이어그램이다.
도 7은 CPU 필터의 일 실시예의 동작을 설명하는 흐름도이다.
도 8은 CPU 필터에 응답하는 PMGR 드라이버의 일 실시예의 동작을 설명하는 흐름도이다.
도 9는 컴퓨터 액세스 가능 저장 매체의 일 실시예의 블록 다이어그램이다.
도 10은 도 1에 도시된 SOC를 포함하는 시스템의 다른 실시예의 블록 다이어그램이다.
본 발명은 다양한 수정 및 대안적인 형태를 수용할 수 있지만, 본 발명의 특정 실시예들은 예로서 도면에 도시되고 본 명세서에서 상세히 설명될 것이다. 그러나, 그에 대한 도면 및 상세한 설명은 본 발명을 개시된 특정 형태로 제한하도록 의도되는 것이 아니며, 반대로, 첨부된 청구범위에 의해 정의되는 바와 같은 본 발명의 사상 및 범주 내에 있는 모든 수정들, 등가들 및 대안들을 포괄하려는 의도로 이해하여야 한다. 본 명세서에서 이용되는 표제들은 오직 구성을 위한 것이며 설명의 범위를 한정하기 위해 사용되는 것으로 여겨지지 않는다. 본 출원 전반에 걸쳐 사용되는 바와 같이, "일 수 있다(may)"라는 단어는 의무적인 의미(즉, "이어야만 한다(must)"를 의미)라기보다 오히려 허용의 의미(즉, "~에 대해 가능성을 갖는다"는 의미)로 사용된다. 유사하게, "포함하다(include, includes)" 및 "포함하는(including)"이라는 단어는 포함하지만 이로 한정되지 않음을 의미한다.
다양한 유닛들, 회로들 또는 기타 컴포넌트들이 과제 또는 과제들을 수행하도록 "구성"되는 것으로 설명될 수 있다. 그러한 맥락에서, "~하도록 구성되는"은 동작 동안에 과제 또는 과제들을 수행하는 "회로를 갖는"을 일반적으로 의미하는 구조의 광의의 설명이다. 이와 같이, 유닛/회로/컴포넌트는 유닛/회로/컴포넌트가 현재 온(on) 상태가 아닌 경우에도 과제를 수행하도록 구성될 수 있다. 일반적으로, "~하도록 구성된"에 대응하는 구조를 형성하는 회로는 동작을 구현하기 위하여 실행 가능한 프로그램 명령어들을 저장하는 하드웨어 회로들 및/또는 메모리를 포함할 수 있다. 메모리는 정적 또는 동적 랜덤 액세스 메모리와 같은 휘발성 메모리 및/또는 비휘발성 메모리, 예를 들어 광 또는 자기 디스크 저장장치, 플래시 메모리, 프로그래밍 가능한 판독 전용 메모리(programmable read-only memory) 등을 포함할 수 있다. 유사하게, 다양한 유닛/회로/컴포넌트들은 설명의 편의를 위해 과제 또는 과제들을 수행하는 것으로 설명될 수 있다. 그러한 설명은 "~하도록 구성된"이라는 문구를 포함하는 것으로 해석되어야 한다. 하나 이상의 과제들을 수행하도록 구성된 유닛/회로/컴포넌트를 언급하는 것은 35 U.S.C. § 112, 6항의 유닛/회로/컴포넌트에 대한 해석을 적용하지 않고자 명백히 의도하는 것이다.
본 명세서는 "일 실시예" 또는 "실시예"에 대한 참조를 포함한다. 본 명세서에서 명시적으로 부인하지 않는다면, 임의의 특징부들의 조합을 포함하는 실시예들이 일반적으로 고려되더라도, "일 실시예에서" 또는 "하나의 실시예에서" 구문의 표현은 반드시 동일한 실시예를 지칭하지 않는다. 특정 특징부들, 구조물들 또는 특징들이 본 개시 내용과 일관성을 유지하면서 임의의 적합한 방식으로 조합될 수 있다.
이제 도 1에 대하여, 메모리(12), 하나 이상의 이미지 센서(26), 및 하나 이상의 디스플레이(20)에 연결된 SOC(10)의 일 실시예의 블록 다이어그램이 도시된다. 이름에서 암시되는 바와 같이, SOC(10)의 컴포넌트들은 집적 회로 "칩"처럼 단일 반도체 기판 상에 집적될 수 있다. 일부 실시예에서, 컴포넌트들은 시스템에서 둘 이상의 개별적인 칩 상에 구현될 수 있다. 그러나, SOC(10)는 본 명세서에서 예시로서 사용될 것이다. 예시되는 실시예에서, SOC(10)의 컴포넌트들은 중앙 프로세싱 유닛(CPU) 컴플렉스(14), 디스플레이 파이프(16), 주변 컴포넌트들(18A-18B)(더 간단하게, "주변장치들"), 메모리 제어기(22), 이미지 신호 프로세서(ISP)(24), 그래픽 프로세싱 유닛(GPU)(34), 전력 관리자(PMGR)(32), 및 통신 패브릭(communication fabric)(27)을 포함한다. 컴포넌트들(14, 16, 18A-18B, 22, 24, 32, 34)은 모두 통신 패브릭(27)에 연결될 수 있다. 메모리 제어기(22)는 사용 중에 메모리(12)에 연결될 수 있다. 유사하게, ISP(24)는 사용 중에 이미지 센서(26)들에 연결될 수 있고 디스플레이 파이프(16)는 사용 중에 디스플레이(20)들에 연결될 수 있다. 예시되는 실시예에서, CPU 컴플렉스(14)는 하나 이상의 프로세서(28) 및 레벨 2(L2) 캐시(30)를 포함한다. 예시되는 실시예에서, 메모리 제어기는 메모리 캐시(36)를 포함한다. 메모리 제어기(22)와 디스플레이 파이프(16) 둘 모두 각각 설정 레지스터(38A-38B)를 포함할 수 있다. 다른 컴포넌트도 설정 레지스터를 포함할 수 있지만, 도 1에 도시되지 않았다. 메모리(12)는 사용 중에 프레임 버퍼(40A) 및 선택적인 프레임 버퍼(40B)를 포함하는 프레임 버퍼를 하나 이상 저장할 수 있다.
디스플레이 파이프(16)는 디스플레이(20) 상에 표시하기 위한 하나 이상의 스틸 프레임 및/또는 하나 이상의 비디오 시퀀스를 처리하는 하드웨어를 포함할 수 있다. 일반적으로, 각각의 소스 스틸 프레임 또는 소스 비디오 시퀀스 프레임에 대하여, 디스플레이 파이프(16)는 메모리 제어기(22)를 통해 메모리(12)로부터 프레임을 나타내는 데이터를 판독하는 판독 메모리 동작들을 생성하도록 구성될 수 있다. 예를 들어, 각 프레임은 메모리(12)의 프레임 버퍼(40A-40B)에 저장될 수 있고, 디스플레이 파이프(16)는 메모리(12)의 프레임 버퍼(40A-40B)에 대한 포인터를 이용하여 프레임 버퍼들로부터 프레임들을 판독하도록 프로그래밍될 수 있다. 각 프레임은 표시될 이미지를 설명하는 이미지 데이터, 예를 들어 픽셀, 색상 구성요소, 알파 블렌딩(alpha blending) 값 등을 포함할 수 있다.
디스플레이 파이프(16)는 이미지 데이터에 임의의 유형의 프로세싱을 수행하도록 구성될 수 있다. 일 실시예에서, 디스플레이 파이프(16)는 스틸 프레임들을 스케일링하고, 비디오 시퀀스의 프레임들에 디더링(dither), 스케일링, 및/또는 색 공간 변환을 수행하도록 구성될 수 있다. 디스플레이 파이프(16)는 스틸 프레임들과 비디오 시퀀스 프레임들을 블렌딩하여 표시할 출력 프레임들을 생성하도록 구성될 수 있다. 디스플레이 파이프(16)는 또한 디스플레이 제어 유닛으로 더 일반적으로 지칭될 수 있다. 디스플레이 제어 유닛(또는 디스플레이 제어기)은 일반적으로 (하나 이상의 소스, 예컨대 스틸 프레임들 및/또는 비디오 시퀀스 프레임들로부터) 표시할 프레임을 만들도록 구성되는 임의의 하드웨어일 수 있다. 디스플레이 파이프(16)에 의해 수행되는 다양한 프로세싱은 일반적으로 합성(compositing)으로 지칭될 수 있다. 합성은 다양한 이미지들의 이미지 데이터를 조합하여 출력 이미지를 생성하는 임의의 프로세싱을 포함할 수 있다.
메모리 제어기(22)는 일반적으로 SOC(10)의 기타 컴포넌트들로부터 메모리 동작을 수신하고, 메모리(12)에 액세스하여 메모리 동작들을 완수하기 위한 회로를 포함할 수 있다. 메모리 제어기(22)는 임의의 유형의 메모리(12)에 액세스하도록 구성될 수 있다. 예를 들어, 메모리(12)는 SRAM(static random access memory), DRAM(dynamic RAM), 예컨대 더블 데이터 레이트(DDR, DDR2, DDR3 등) DRAM을 포함하는 SDRAM(synchronous DRAM)일 수 있다. 저전력/모바일 버전의 DDR DRAM(예를 들어 LPDDR, mDDR 등)이 지원될 수 있다.
예시되는 실시예에서, 메모리 제어기(22)는 최근 액세스된 메모리 데이터를 저장하는 메모리 캐시(36)를 포함할 수 있다. 예를 들어, SOC 구현예에서 메모리 캐시(36)는 곧 다시 액세스될 것으로 예상되는 경우, 메모리(12)로부터 데이터를 다시 액세스하는 것을 방지함으로써 SOC의 전력 소비를 감소시킬 수 있다. 따라서, 메모리(12)에 액세스하기 전에, 메모리 제어기(22)가 메모리 캐시(36)를 액세스하여 메모리 동작들에 대한 히트/미스(hit/miss)를 검출할 수 있다. 메모리 동작이 메모리 캐시(36)에서 히트인 경우, 메모리(12)는 액세스되지 않아도 된다. 통신 패브릭(27)은 메모리 캐시(36)에 저장하기 위한 후보들을 식별하기 위하여 메모리 동작들과 함께 캐시 힌트들의 전송을 지원할 수 있다. 따라서 메모리 캐시(36)는 메모리에 액세스하는 SOC(10)의 임의의 컴포넌트에 대응하는 데이터를 저장할 수 있다. 일부 경우에, 메모리 캐시는 또한 시스템 캐시로서 지칭될 수 있고, 이는 프로세서(28)들의 L2 캐시(30) 또는 캐시들과 같은 특정 컴포넌트들만을 보조하는 프라이빗 캐시들과 상반된다. 추가적으로, 일부 실시예에서, 시스템 캐시는 메모리 제어기(22) 내에 위치할 필요가 없다.
프레임 데이터, 예컨대 프레임 버퍼(40A-40B)의 데이터의 경우에, 소비자는 디스플레이 파이프(16)이다. 통상적으로, 주어진 프레임 버퍼는 디스플레이 파이프(16)에 의해 한번 판독될 수 있는데, 그 이유는 프레임이 통상적으로 디스플레이 파이프(16)가 새로운 프레임을 개시하기 이전에 표시될 다음 이미지로 변경될 수 있기 때문이다. 예를 들어, 초당 30 또는 60 프레임의 프레임 레이트가 자주 사용된다. 따라서, 프레임은 초당 30 또는 60 번 판독된다. 그 사이에, 프레임 데이터의 소스들(예를 들어 비디오 디코더, GPU(34) 등)은 표시될 새로운 프레임들을 생성할 수 있고 다른 메모리 위치에 프레임 데이터를 기록할 수 있다. 다음 프레임 판독이 시작될 때, 프레임은 다른 메모리 위치에서 판독될 수 있다. 따라서, 표시되고 있는 이미지가 프레임마다 변경되는 경우에, 프레임 데이터의 캐시 저장은 메모리 캐시(36)에서 디스에이블될 수 있다. 프레임 데이터가 일반적으로 시간에 따라 변경되는 경우를 동적 디스플레이, 또는 동적 디스플레이 상태라고 지칭할 수 있다. 디스플레이에 의해 표시되고 있는 이미지는 동적으로 지칭될 수 있다.
반대로, 다수의 연속적인 프레임들이 정적 콘텐츠를 가지는 경우가 있을 수 있다. 일반적으로, 정적 콘텐츠는 프레임마다 변경되지 않는 콘텐츠(예를 들어 각 픽셀이 프레임마다 동일함) 또는 임계량보다 적게 변경되는 콘텐츠를 지칭할 수 있으며, 따라서 이전 프레임이 현재 프레임에 매우 근사하다. 정적 콘텐츠를 갖는 다수의 연속적인 프레임들을 검출하는 것은 유휴 디스플레이 상태 또는 유휴 디스플레이 상황(또는 유휴 스크린 온 상황, 디스플레이 스크린이 정지되고 정적 이미지를 표시하기 때문임)을 식별할 수 있다. 유휴 디스플레이 상황은 디스플레이가 켜져 있지만, 디스플레이 되는 시각적 콘텐츠가 일정 시간동안 변하지 않거나, 매우 조금 변하는 경우일 수 있다. 사용자는 표시되는 데이터, 예컨대 전자책, 웹 페이지 또는 이메일을 볼 수 있다. 또는, 사용자는 비디오를 일시 정지시킬 수도 있다. 프레임 데이터가 일반적으로 정적인 경우는 유휴 디스플레이, 또는 유휴 디스플레이 상태라고 지칭될 수 있고, 디스플레이에 의해 표시되고 있는 이미지는 유휴, 또는 정적으로 지칭될 수 있다.
유휴 디스플레이 상황에서, 디스플레이 파이프(16)는 여전히 프레임 데이터의 유일한 소비자일 수 있다. 그러나, 동일한 프레임 데이터가 여러번 판독될 수 있다. 따라서, 유휴 디스플레이 상황에서 캐시 저장을 인에이블하는 것이 바람직할 수 있다. 더 상세하게는, 디스플레이 파이프(16)는 메모리 캐시(36) 내의 캐시 저장을 인에이블 또는 디스에이블하도록 (예를 들어 설정 레지스터(38B)들에) 프로그램 가능할 수 있다. 캐시 저장이 인에이블되는 경우, 디스플레이 파이프(16)는 프레임 버퍼들(40A-40B)을 판독하는 메모리 판독 동작들을 데이터가 메모리 캐시(36)에 할당되어야 한다는 것을 나타내는 캐시 힌트와 함께 전송하도록 구성될 수 있다. 일부 실시예에서, 둘 이상의 프레임을 합성하여 출력 프레임들을 생성하는 경우, 가장 많은 프레임 데이터를 포함하는 프레임은 (캐시 할당 힌트를 포함함으로써) 캐시 저장될 수 있고 다른 프레임들은 그렇지 않을 수 있다. 다른 실시예들에서, 다수의 프레임들이 메모리 캐시(36)에 들어갈 수 있고 다수의 프레임들이 캐시 저장될 수 있다. 다른 실시예들에서, 프레임의 일부분만이 메모리 캐시(36)에 들어갈 수 있고 디스플레이 파이프(16)는 프레임의 일부분에 대한 캐시 할당 힌트를 제공하도록 구성될 수 있다. 다시 말해서, 캐시 저장이 디스에이블되는 경우, 디스플레이 파이프(16)는 캐시 저장을 나타내지 않는 캐시 힌트를 제공할 수 있다. 캐시 저장은 동적 디스플레이 상황에서 디스에이블될 수 있고, 이는 위에서 언급한 바와 같다. 일 실시예에서, 유휴 디스플레이 상황은 또한 메모리 캐시(36)의 캐시 저장을 이용할 수 있는 다른 메모리-액세스 컴포넌트들이 꺼져있다는 것을 결정하는 것을 포함할 수 있다. 예를 들어, 프로세서(28)들, GPU(34), ISP(24), 및 다른 매체 디바이스들이 캐시 저장을 이용할 수 있다. 캐시 저장을 이용하지 않아도 되는 다른 컴포넌트들, 예를 들어 I2C(Inter-Integrated 회로), UART(universal asynchronous receiver-transmitter), SPI(system packet interface) 등과 같은 인터페이스에 대한 다양한 인터페이스 제어기들은 꺼질 필요가 없다. 따라서, 유휴 디스플레이 상황은 메모리 캐시(36)가 꺼져 있고, 디스플레이 파이프(16)/디스플레이(20)는 켜져 있고, 디스플레이 되는 이미지는 정적인 것을 이용하는 컴포넌트들의 적어도 서브셋을 포함할 수 있다.
일부 실시예에서, 메모리 캐시(36)는 다양한 전력 관리 특징부들을 지원할 수 있다. 설정 레지스터(38A)들을 프로그래밍하여 전력 관리 특징부들을 제어할 수 있다. 전력 관리 특징부들은 동적 디스플레이 상태에서 유휴 디스플레이 상태로 변경되는 것을 검출함에 따라 수정될 수 있다. 예를 들어, 디스플레이 파이프(16)는 유휴 스크린 상태에서 반복적으로 프레임 데이터를 판독할 수 있을지라도, 판독들은 메모리 캐시(36)의 주파수에 따른 많은 클락 사이클에 의해 분리될 수 있다. 추가적으로, SOC(10)의 많은 다른 컴포넌트들은 유휴 디스플레이 상태에서 유휴일 수 있고, 이는 위에서 언급한 바와 같다. 예를 들어, 기타 오디오/비디오 디바이스, 예컨대 GPU(34), ISP(24), 비디오 엔코더/디코더 등은, 콘텐츠 생성이 수행되지 않는 이후로, 유휴일 수 있다. 따라서, 시스템은 메모리 제어기(22)/메모리 캐시(36)에 비하여 상대적으로 유휴인 것으로 보일 수 있는데, 이는 전력 관리 메커니즘을 활성화할 수 있다. 메커니즘은, 예를 들어, 캐시의 일부분들의 전력을 차단함으로써 캐시의 유효 크기를 축소하는 것, 캐시의 전원을 끄는 것 등을 포함할 수 있다. 유휴 디스플레이 상태에 있는 동안, 메모리 제어기(22)는 이러한 전력 관리 메커니즘들을 디스에이블하여 메모리 캐시(36)가 전원이 공급되는 상태로, 완전한 크기를 유지하며, 프레임 데이터를 저장하도록 프로그래밍될 수 있다. 동적 디스플레이 상태에 있는 동안, 메모리 제어기(22)는 전력 관리 메커니즘들을 인에이블하도록 프로그래밍될 수 있다.
일 실시예에서, 프로세서(28)들에 의해 실행되는 소프트웨어는 유휴 디스플레이 상태 및 동적 디스플레이 상태를 검출할 수 있고, 위에서 설명한 바와 같이 설정 레지스터들(38A-38B)을 프로그래밍할 수 있다. 소프트웨어는 PMGR(32)에 대응하는 전력 관리자 드라이버(PMGR driver), 디스플레이 파이프(16)에 대응하는 디스플레이 드라이버, 메모리 제어기(22)/메모리 캐시(36)에 대응하는 메모리 제어기 드라이버를 포함할 수 있다. 일 실시예의 추가적인 상세 사항들이 아래에 더 자세히 논의된다. 프로세서(28)들에 의한 페칭 및 실행을 위한 소프트웨어가 메모리(12)에 저장될 수 있고, 프로세서(28)들 내의 L2 캐시(30) 및/또는 캐시 내에도 캐시 저장될 수 있다. 소프트웨어는 또한 시스템 내의 비휘발성 메모리, 예컨대 플래시 메모리, 솔리드 스테이트 디스크 저장장치, 자기 또는 광학 디스크 저장장치 등에 저장될 수 있다.
디스플레이(20)는 임의의 종류의 시각적 디스플레이 디바이스일 수 있다. 디스플레이는, 예를 들어, 모바일 디바이스, 예컨대 스마트 폰, 태블릿 등을 위한 터치 스크린 스타일 디스플레이를 포함할 수 있다. 다양한 디스플레이(20)들은 액정 디스플레이(LCD), 발광 다이오드(LED), 플라즈마, 음극선관(CRT) 등을 포함할 수 있다. 디스플레이는 SoC(10)를 포함하는 시스템(예를 들어 스마트 폰 또는 태블릿)에 통합될 수 있고/있거나 컴퓨터 모니터, 텔레비전, 또는 기타 디바이스와 같이 별도로 하우징된 디바이스일 수 있다.
ISP(24)는 이미지 센서(26)들로부터 이미지 센서 데이터를 수신하도록 구성될 수 있고, 예를 들어, 디스플레이(20) 상에 표시하는 데 적합할 수 있는 이미지 프레임들을 생성하기 위하여 데이터를 처리하도록 구성될 수 있다. 이미지 센서(26)는 카메라(예를 들어 전하 결합 디바이스(CCD), 상보적 금속 산화막 반도체(CMOS) 센서 등)를 포함할 수 있다.
GPU(34)는 하나 이상의 GPU 프로세서를 포함할 수 있고, GPU를 위한 로컬 캐시 및/또는 SOC(10)의 다른 컴포넌트들에 접속하기 위한 인터페이스 회로(예를 들어 통신 패브릭(27)에 대한 인터페이스)를 추가로 포함할 수 있다. 일반적으로, GPU 프로세서는 객체들을 프레임으로 렌더링하기 위한 그래픽 파이프라인의 동작들을 수행하는 데 최적화된 프로세서일 수 있다. 예를 들어, 동작들은 변형 및 조명, 삼각형 조합, 래스터화, 쉐이딩(shading), 텍스처라이징(texturizing) 등을 포함할 수 있다.
CPU 컴플렉스(14)는 SOC(10)의 CPU 역할을 하는 하나 이상의 CPU 프로세서(28)들을 포함할 수 있다. 시스템의 CPU는 시스템의 메인 제어 소프트웨어, 예컨대 운영체제를 실행하는 프로세서(들)를 포함한다. 일반적으로, 사용 중 CPU에 의해 실행되는 소프트웨어는 시스템의 다른 컴포넌트들을 제어하여 원하는 시스템의 기능성을 실현할 수 있다. 프로세서(28)들에 의해 실행되는 소프트웨어는 위에서 언급되고 아래에 더 자세히 설명되는 다양한 드라이버들을 포함할 수 있다. 프로세서(28)들은 또한 기타 소프트웨어, 예컨대 애플리케이션 프로그램들을 실행할 수 있다. 애플리케이션 프로그램들은 사용자 기능성을 제공할 수 있고, 하위 레벨 디바이스 제어를 위해 운영체제에 의존할 수 있다. 따라서, 프로세서(28)들은 또한 애플리케이션 프로세서로 지칭될 수 있다. CPU 컴플렉스(14)는 추가로 다른 하드웨어, 예컨대 L2 캐시(30) 및/또는 시스템의 다른 컴포넌트들에 대한 인터페이스(예를 들어 통신 패브릭(27)에 대한 인터페이스)를 추가로 포함할 수 있다.
주변장치들(18A-18B)은 SOC(10)에 포함된 추가 하드웨어 기능성의 임의의 세트일 수 있다. 예를 들어, 주변장치들(18A-18B)은 비디오 주변장치, 예컨대 비디오 엔코더/디코더, 스케일러, 로테이터, 블렌더 등을 포함할 수 있다. 주변장치들은 오디오 주변장치, 예컨대 마이크로폰, 스피커, 마이크로폰 및 스피커에 대한 인터페이스, 오디오 프로세서, 디지털 신호 프로세서, 믹서 등을 포함할 수 있다. 주변장치들은 SOC(10)의 외부에 있는 다양한 인터페이스들(예를 들어 주변장치(18B))에 대한 인터페이스 제어기들을 포함할 수 있고, 인터페이스들에는 USB(Universal Serial Bus), PCIe(PCI Express)를 포함하는 PCI(peripheral component interconnect), 직렬 및 병렬 포트 등이 포함된다. 주변장치들은 네트워킹 주변장치, 예컨대 MAC(media access controller)들을 포함할 수 있다. 하드웨어의 임의의 세트가 포함될 수 있다.
통신 패브릭(27)은 SOC(10)의 컴포넌트들 간의 통신을 위한 임의의 통신 상호 접속 및 프로토콜일 수 있다. 통신 패브릭(27)은 버스 기반의, 예컨대 공유 버스 구성, 크로스 바(cross bar) 구성, 및 브릿지를 이용한 계층적 버스일 수 있다. 통신 패브릭(27)은 또한 패킷 기반일 수 있고, 브릿지를 이용한 계층이거나, 크로스 바 연결, 지점 간 연결(point-to-point), 또는 기타 상호연결일 수 있다.
PMGR(32)은 SOC(10)의 기타 컴포넌트들의 전원 공급 및 전원 차단을 제어하도록 구성될 수 있다. 즉, PMGR(32)은 다른 컴포넌트들이 전원 공급 및 전원 차단되도록 할 수 있다. PMGR(32)은 직접적인 소프트웨어의 제어(예를 들어 소프트웨어가 컴포넌트들의 전원 공급 및/또는 전원 차단을 직접 요청할 수 있음)를 받을 수 있고/있거나 SOC(10)를 모니터하고 다양한 컴포넌트들이 언제 전원 공급되거나 전원 차단될지 결정하도록 구성될 수 있다. PMGR(32)은 또한 상이한 전원 상태(예를 들어 전압/주파수 조합) 사이에서 컴포넌트들을 전환하도록 구성될 수 있다. PMGR(32)은 외부 전원 제어기로부터 SOC(10)의 컴포넌트들에 대하여 다양한 전압 크기를 요청하도록 추가로 구성될 수 있다.
SOC(10)의 컴포넌트들의 개수 (및 도 1에 도시된 컴포넌트들, 예컨대 CPU 컴플렉스(14) 내의 서브컴포넌트들의 개수)는 실시예마다 다를 수 있다는 것을 주의한다. 도 1에 나타난 개수보다 각 컴포넌트/서브컴포넌트가 많거나 적을 수 있다.
이제 도 2에 대하여, 유휴 디스플레이 상황을 검출하고 유휴 디스플레이 상태로 전환하기 위하여 동적 디스플레이 상태에서 도 1에 도시된 일 실시예의 시스템의 동작을 예시하는 흐름도가 도시된다. 동적 디스플레이 상태에서 발생하는 다른 동작은 도시되지 않는다. 쉬운 이해를 위해 특정 순서대로 블록들이 도시되지만, 다른 순서들도 사용될 수 있다. 일 실시예에서, 도 2의 동작은 소프트웨어로 구현될 수 있고, 따라서 소프트웨어는 실행 시 도 2에 도시된 동작을 구현하는 명령어들을 포함할 수 있다. 다른 실시예들은 하드웨어 및/또는 하드웨어와 소프트웨어의 조합 형태로 도 2에 도시된 특징부들을 구현할 수 있다.
동적 디스플레이 상태에서, 시스템은 유휴 디스플레이 상황을 검출하기 위하여 모니터할 수 있다. 유휴 디스플레이는 다음의 여러 가지 방법으로 검출될 수 있다: 연속적인 프레임들에서 변화를 분석함, 동일한 프레임 버퍼가 연속적인 프레임들에서 사용되는지 관찰함 등. 추가적으로, 일부 실시예에서, 기타 컴포넌트들, 예컨대 CPU 컴플렉스(14), GPU(34), ISP(24), 및/또는 주변장치들(18A-18B)의 상태가 유휴 디스플레이 상황이 검출되는지 여부에 판단 요소로 작용할 수 있다. 유휴 디스플레이 상황이 검출되는 경우(결정 블록(50), "예" 가지), 시스템은 프레임 버퍼 판독들에 대한 캐시 할당을 요청하도록 디스플레이 파이프 설정 레지스터(38B)들을 프로그래밍할 수 있다(블록(52)). 다른 방식으로 보면, 프레임 데이터의 캐시 저장이 인에이블될 수 있다. 일 실시예에서, 통신 패브릭(27)을 통해 전송되는 메모리 동작들은 캐시 힌트를 포함할 수 있고, 디스플레이 파이프는 캐시 저장이 인에이블된 경우 캐시 할당을 나타내는 캐시 힌트를 사용할 수 있다. 시스템은 또한 메모리 캐시(36)의 전력 관리 제어를 변경하도록 메모리 제어기 설정 레지스터(38A)들을 프로그래밍할 수 있다(블록 (54)). 특히, 캐시(36)의 전원 차단은 디스에이블될 수 있다(유휴 디스플레이 상태에 있는 동안 메모리 캐시(36)는 "깨어있는" 상태를 유지하도록 보장함). 캐시 자동 크기조정 특징부들(캐시의 섹션들의 전원을 차단함으로써 캐시(36)의 유효 크기를 축소하는 데 사용될 수 있음) 또한 디스에이블되어 캐시(36)가 유휴 디스플레이 상황에 최대 크기를 유지하도록 보장할 수 있다. 시스템은 유휴 디스플레이 상태로 전환될 수 있다(블록 (56)).
도 3은 동적 디스플레이 상황을 검출하고 동적 디스플레이 상태로 전환하기 위하여 유휴 디스플레이 상태에서 도 1에 도시된 일 실시예의 시스템의 동작을 예시하는 흐름도이다. 쉬운 이해를 위해 특정 순서대로 블록들이 도시되지만, 다른 순서들도 사용될 수 있다. 유휴 디스플레이 상태에서 발생할 수 있는 다른 동작은 도시되지 않는다. 일 실시예에서, 도 3의 동작은 소프트웨어로 구현될 수 있고, 따라서 소프트웨어는 실행 시 도 3에 도시된 동작을 구현하는 명령어들을 포함할 수 있다. 다른 실시예들은 하드웨어 및/또는 하드웨어와 소프트웨어의 조합 형태로 도 3에 도시된 특징부들을 구현할 수 있다.
유휴 디스플레이 상태에서, 시스템은 동적 디스플레이 상황을 검출하기 위하여 모니터할 수 있다. 동적 디스플레이는 다음의 여러 가지 방법으로 검출될 수 있다: 연속적인 프레임들에서 변화를 분석함, 프레임 버퍼의 변화가 연속적인 프레임들에서 사용되는지 관찰함 등. 추가적으로, 일부 실시예에서, 기타 컴포넌트들, 예컨대 CPU 컴플렉스(14), GPU(34), ISP(24), 및/또는 주변장치들(18A-18B)의 상태가 동적 디스플레이 상황이 검출되는지 여부에 판단 요소로 작용할 수 있다. 동적 디스플레이 상황이 검출되는 경우(결정 블록(60), "예" 가지), 시스템은 프레임 버퍼 판독들(블록(62))에 대한 캐시 할당을 요청하지 않도록 디스플레이 파이프 설정 레지스터(38B)들을 프로그래밍할 수 있다. 일 실시예에서, 캐시가 없다는 것을 나타내는 캐시 힌트가 지원되고, 동적 디스플레이 상태에서 프레임 버퍼 데이터 판독에 사용될 수 있다. 다른 방식으로 보면, 프레임 데이터의 캐시 저장이 디스에이블될 수 있다. 시스템은 또한 메모리 캐시(36)의 전력 관리 제어를 변경하도록 메모리 제어기 설정 레지스터(38A)들을 프로그래밍할 수 있다(블록 (64)). 특히, 캐시(36)의 전원 차단(캐시 슬립)은 인에이블될 수 있고 캐시 자동 크기조정 특징부들(캐시의 섹션들을 전원 차단함으로써 캐시(36)의 유효 크기를 축소하는 데 사용될 수 있음) 또한 인에이블되어 캐시 활용도가 낮을 때 절전을 가능하게 할 수 있다. 시스템은 동적 디스플레이 상태(블록 (66))로 전환될 수 있다.
도 4는 일 실시예에서 유휴 디스플레이/동적 디스플레이 상태 결정 및 관리에 참여할 수 있는 다양한 소프트웨어 모듈들을 도시하는 블록 다이어그램이다. 도시된 실시예는 디스플레이 드라이버(70), GPU 드라이버(72), ISP 드라이버(74), 기타 매체 드라이버(76), 기타 주변장치 드라이버(78), CPU 필터(80), PMGR 드라이버(82), 및 메모리 제어기 드라이버(84)를 포함한다. PMGR 드라이버(82)는 프레임 버퍼 온/오프 상태(86), 디스플레이 온/오프 상태(87), 및 기타 온/오프 상태(88)들을 포함할 수 있다. 드라이버들 간의 특정 통신 또한 도 4에 도시된다. 일반적으로, 도 4에 도시된 드라이버들은 사용 중 메모리(12)에 저장될 수 있고 사용 중 프로세서(28)들 상에서 실행될 수 있다. 드라이버들은 또한 시스템 내의 비휘발성 저장 매체(예를 들어 SOC(10)에 연결된 플래시 메모리 또는 기타 비휘발성 메모리)에 저장될 수 있다.
PMGR 드라이버(82)는 SOC(10)의 다양한 컴포넌트들의 전력 상태 모니터를 책임질 수 있고, 컴포넌트들에 전원 공급 및 전원 차단하기 위하여 대응하는 드라이버들로부터 전원 온 및 전원 오프 요청을 수신할 수 있다. PMGR 드라이버(82)는 PMGR(32)과 상호작용하여 컴포넌트들에 전원 공급 및 전원 차단 할 수 있고, 이는 각각 전원 온 및 전원 오프 이벤트로 지칭된다. 즉, 전원 온 이벤트는 전원 오프된 컴포넌트에 대한 전원 온의 발생(또한 전원 차단된 컴포넌트에 전원 공급하는 것으로 지칭됨)일 수 있다. 전원 오프 이벤트는 전원 온 된 컴포넌트에 대한 전원 오프의 발생(또한 전원 공급된 컴포넌트를 전원 차단하는 것으로 지칭됨)일 수 있다. PMGR(32)은 SOC(10) 내의 로컬 전원 스위치들을 제어하여 컴포넌트들에 전원 공급 및 전원 차단하는 회로뿐만 아니라, 다양한 전압 레벨들이 전원 공급장치 입력에서 SOC(10)에 공급되도록 요청하는 회로를 포함할 수 있다. PMGR(32)은 또한 일부 실시예에서 하드웨어 모니터링에 기초하여 컴포넌트들에 자동으로 전원 공급 및 전원 차단하도록 구성될 수 있다.
따라서, 도 4에 도시된 바와 같이, GPU 드라이버(72)는 수행되는 GPU 작업이 있을 때 GPU(34)가 전원 온 되도록 요청할 수 있다. GPU 드라이버(72)는 운영체제 및/또는 다양한 렌더링 활동을 수행하기 위하여 프로세서(28) 상에서 실행 중인 애플리케이션들에 의해 호출될 수 있다. 유사하게, GPU(34)가 미해결 작업을 완료하고 현재 수행할 추가적인 작업이 없으면, GPU 드라이버(72)는 GPU(34)가 전원 오프되도록 요청할 수 있다.
유사하게, 운영체제/애플리케이션이 일부 이미지 센서 데이터를 캡쳐할 필요가 있는데 ISP(24)가 전원 오프인 경우, 운영체제/애플리케이션은 ISP(24)를 전원 온 하기 위하여 ISP 드라이버(74)를 호출할 수 있고 ISP 드라이버(74)는 PMGR 드라이버(82)로부터 전원 온을 요청할 수 있다. ISP 드라이버(74)는 더이상 캡처될 이미지 데이터가 없으면 ISP(24)가 전원 오프되도록 요청할 수 있다. 기타 매체 드라이버(76)들 및 기타 주변장치 드라이버(78)들은 유사하게 전원 온/오프 요청들을 PMGR 드라이버(82)에 전송할 수 있다. 디스플레이 드라이버(70)는 디스플레이가 꺼져 있거나 비활성화된 경우 디스플레이 파이프가 전원 온/오프되도록 요청할 수 있다(도 4의 디스플레이 온/오프 요청).
PMGR 드라이버(82)는 다양한 전원 온/오프 요청에 응답하여 요청된 컴포넌트를 전원 온/오프하도록 PMGR(32)을 프로그래밍할 수 있고 온/오프 상태(88)에서 대응하는 컴포넌트의 전원 온/오프 상태를 기록할 수 있다. 디스플레이 온/오프 상태(87)는 디스플레이 드라이버(70)로부터의 디스플레이 온/오프 요청에 대하여 업데이트될 수 있다. 일부 실시예에서, 적어도 유휴/동적 디스플레이 상황을 결정하는 것에 대하여, PMGR 드라이버(82)는 온 되어 있는 관심있는 컴포넌트들의 카운트를 유지하기만 할 수 있다. 카운트가 0에 도달하면, 유휴/동적 디스플레이 상태 결정에 영향을 주는 모든 컴포넌트들이 오프 될 수 있다. 0이 아닌 카운트는 온 되어 있는 컴포넌트들의 수를 나타낸다.
예시되는 실시예에서, 프레임 버퍼는 또한 컴포넌트로서 시각화되고, 온/오프 상태(86)에서 온/오프인 것으로 기록된다. PMGR 드라이버(82)는 디스플레이 드라이버(70)에 의해 전송된 FB 온/오프 요청들로부터 프레임 버퍼의 온/오프 상태를 기록하도록 구성될 수 있고, 이는 디스플레이 드라이버(70)에 의한 정적 프레임들(도 4의 N 개의 정적 프레임(71))의 검출에 기초하여 생성될 수 있다. 이 실시예에서, 디스플레이 드라이버(70)는 정적 프레임을 모니터하는 것을 책임질 수 있고, N 개의 연속적인 정적 프레임들이 언제 검출되었는지 나타낼 수 있고, 여기서 N은 1보다 큰 정수이다. N은 일부 실시예에서 프로그램 가능한 파라미터일 수 있다. N개의 정적 프레임 검출에 응답하여, 디스플레이 드라이버(70)는 프레임 버퍼가 전원 오프되도록 요청(도 4의 FB 온/오프 요청)할 수 있다. 0인 정적 프레임을 포함하여, N보다 작은 정적 프레임들이 검출된 경우, 디스플레이 드라이버(70)는 프레임 버퍼가 전원 온 되도록 요청할 수 있다. 프레임 버퍼 온/오프 요청 및 SOC(10)에 있는 기타 컴포넌트들의 온/오프 상태에 기초하여, PMGR 드라이버(82)는 유휴/동적 디스플레이 상태를 검출할 수 있다. 검출된 유휴/동적 디스플레이 상태에 기초하여, PMGR 드라이버(82)는 프레임 버퍼 데이터(디스플레이 드라이버(70)에 전달되고, 이는 디스플레이 파이프(16)를 프로그래밍할 수 있음)의 캐시 저장을 인에이블/디스에이블할 수 있고 캐시 전력 관리 제어(메모리 제어기 드라이버(84)에 전달되고, 메모리 제어기(22)/메모리 캐시(36)를 프로그래밍할 수 있음)를 변경할 수 있다.
더 상세하게는, 일부 컴포넌트들은 디스플레이가 유휴인지 여부에 관련될 수 있다. 예를 들어, GPU(34)가 전원 온 인 경우, 표시할 새로운 프레임들을 렌더링 중 일 수 있다. ISP(24)가 전원 온 인 경우, 곧 표시될 확률이 있는 이미지 데이터가 캡쳐될 수 있다. 유휴/동적 디스플레이 상태에 관련될 수 있는 기타 매체 컴포넌트들 또는 주변 컴포넌트들도 있을 수 있다. 또한, CPU 컴플렉스(14)의 상태는 유휴/동적 디스플레이 상태에 관련될 수 있다. CPU의 상태는 필터링될 수 있고, 이는 아래에 더 자세히 논의되는 것과 같다. SOC 컴포넌트들의 임의의 서브셋은 유휴/동적 디스플레이 상태를 결정하는 데 고려될 수 있다. 또한, 이전에 논의한 바와 같이, 일부 컴포넌트들은 메모리 캐시(36)을 이용하는 것으로부터 이익을 얻을 수 있고, 그러한 컴포넌트들이 온 인 경우, 유휴 디스플레이 상태가 검출되지 않아 프레임 버퍼 데이터는 다른 컴포넌트들로부터의 데이터로 대체되지 않는다.
디스플레이 드라이버(70)는 다양한 방법으로 N 개의 정적 프레임들을 검출할 수 있다. 예를 들어, 디스플레이 파이프(16)는 정적 프레임들을 검출하기 위한 하드웨어 지원을 포함할 수 있다(예를 들어 프레임에 대한 CRC(cyclical redundancy check) 연산이 비교되거나 구성 정보에 대한 CRC 연산이 비교될 수 있음). 다른 예를 들어, 디스플레이 드라이버(70)는 프레임 버퍼 위치를 디스플레이 파이프(16) 안에 프로그래밍할 수 있고, 동일한 프레임 버퍼(들)가 N 개의 연속적인 프레임들에 사용되는 것을 검출할 수 있다.
CPU 필터(80)는 프로세서(28)들의 슬립 및 웨이크 이벤트(전원 오프 및 전원 온 이벤트)를 모니터할 수 있고, 유휴/동적 디스플레이 상황과 관련되지 않을 수 있는 특정 온/오프 이벤트들을 필터링 할 수 있다. 예를 들어, 프로세서(28)들은 다양한 시스템 관리 이벤트(예를 들어 시스템이 정상적으로 동작하도록 하고 잠재적으로 실행할 스레드 등을 스케줄링 하기 위한 디바이스 인터럽트, 주기적 운영체제 코드 실행)를 처리하기 위해 깨어날 수 있다. 이 이벤트들은 잠깐 일어날 수 있다(즉 웨이크 이벤트 뒤에 프로세서를 다시 슬립으로 되돌리는 유휴 이벤트가 바로 이어질 수 있음). CPU 필터(80)는 CPU 활성 대 CPU 유휴 시간을 모니터하기 위하여 웨이크 및 유휴 이벤트에 대하여 실행될 수 있다. 임계량 미만의 시간은 필터링 될 수 있다. CPU 필터(80)는 유휴/동적 디스플레이 검출을 목적으로 프로세서(28)들이 전원 온 처럼 보이는지 여부를 결정하기 위하여 PMGR 드라이버(82)에 대응하는 활성/유휴 표시를 제공할 수 있다. 일 실시예에서, 활성/유휴 표시는 활성 및 유휴의 확률일 수 있다.
도 5는 유휴/동적 디스플레이 검출을 위한 PMGR 드라이버(82)의 일 실시예의 동작을 도시하는 흐름도이다. 쉬운 이해를 위해 특정 순서대로 블록들이 도시되지만, 다른 순서들도 사용될 수 있다. 일 실시예에서, 도 5의 동작은 소프트웨어로 구현될 수 있고, 따라서 소프트웨어는 실행 시 도 5에 도시된 동작을 구현하는 명령어들을 포함할 수 있다. 다른 실시예들은 하드웨어 및/또는 하드웨어와 소프트웨어의 조합 형태로 도 5에 도시된 특징부들을 구현할 수 있다.
PMGR 드라이버(82)가 드라이버로부터 전원 온 요청을 수신하고(결정 블록(90), "예" 가지), 디스플레이가 온 상태이고(디스플레이 온/오프 상태(87)가 온 임)(결정 블록(92), "예" 가지), 유휴/동적 디스플레이 상태 결정에 영향을 주는 하나 이상의 다른 리소스가 온 인 경우(결정 블록(94), "예" 가지), PMGR 드라이버(82)는 유휴 디스플레이 상태에서 동적 디스플레이 상태로 변경할 수 있고 따라서 디스플레이 파이프(16)의 캐시 저장을 디스에이블할 수 있고(디스플레이 드라이버(70)에 표시를 전송함 -- 블록(96)), 캐시 슬리핑/자동 크기조정을 인에이블할 수 있다(메모리 제어기 드라이버(84)에 표시를 전송함 -- 블록(98)). 위에서 언급한 바와 같이, 온 상태에 있는 다른 컴포넌트들의 개수는 추적될 수 있고, 일부 실시예에서, 그로 인해 결정 블록(94)은 그 수가 0인지 여부를 결정함으로써 수행될 수 있다. 따라서, 결정 블록(90), "예" 가지, 결정 블록(92), "예" 가지, 및 결정 블록(94), "예" 가지는 모두 동적 디스플레이 상황(도 3의 결정 블록(60), "예" 가지)을 검출하는 실시예일 수 있다. PMGR 드라이버(82)는 요청된 컴포넌트의 온 프로세싱도 완료할 수 있다(블록(100)). 온 프로세싱을 완료하는 것은, 예를 들어, 컴포넌트를 전원 온 하도록 PMGR(32)을 프로그래밍하고 온/오프 상태(88)에 상태를 "온"으로 기록 및/또는 유휴/동적 디스플레이 상태 결정을 위하여 온 상태의 컴포넌트들의 개수를 증가시키는 것을 포함할 수 있다. 컴포넌트들의 서브셋이 유휴/동적 디스플레이 상황을 결정하기 위하여 모니터되는 실시예에서, 결정 블록(90)은 오직 서브셋의 컴포넌트들에 대한 전원 온 요청들을 고려할 수 있다. PMGR 드라이버(82)가 드라이버로부터 전원 온 요청을 수신하고(결정 블록(90), "예" 가지) 디스플레이가 현재 온 이거나(결정 블록(92), "아니오" 가지) 또는 유휴/동적 디스플레이 상태 결정에 영향을 주는 다른 리소스들 중 적어도 하나가 온 인 경우(결정 블록(94), "아니오" 가지), PMGR 드라이버(82)는 유휴/동적 디스플레이 검출과 관련된 어떠한 추가 작업 없이 요청된 컴포넌트의 온 프로세싱을 완료할 수 있다(블록(100)).
PMGR 드라이버(82)가 드라이버로부터 전원 오프 요청을 수신한 경우(결정 블록(102), "예" 가지), 디스플레이는 현재 동적 디스플레이 상태이다. PMGR 드라이버(82)는 디스플레이가 현재 온 인지 결정할 수 있고(결정 블록(106), "예" 가지) 그리고 그런 경우 유휴 디스플레이 상태로 전환되기 위하여 오프 될 필요가 있는 SOC(10)의 다른 컴포넌트들이 오프 인지 결정할 수 있다(결정 블록(104)). 다른 컴포넌트들이 오프 라고 결정하는 것은 온/오프 상태(88)들을 체크함으로써, 예를 들어, 또는 온 상태인 컴포넌트들의 수의 카운트를 체크함으로써 구현될 수 있다. 그런 경우(결정 블록(104), "예" 가지), PMGR 드라이버(82)는 동적 디스플레이 상태에서 유휴 디스플레이 상태로 변경될 수 있고 디스플레이 파이프(16)의 캐시 저장을 인에이블하고(디스플레이 드라이버(70)에 표시를 전송함 -- 블록(110)), 캐시 슬리핑/자동 크기조정을 디스에이블할 수 있다(메모리 제어기 드라이버(84)에 표시를 전송함 -- 블록(112)). 따라서, 결정 블록(102) - 예 가지, 결정 블록(104) - 예 가지, 및 결정 블록(106) - 예 가지는 모두 유휴 디스플레이 결정(예를 들어 도 2의 결정 블록(50), "예" 가지)의 실시예일 수 있다. PMGR 드라이버(82)는 요청된 컴포넌트의 오프 프로세싱도 완료할 수 있다(블록(114)). 오프 프로세싱은, 예를 들어, 컴포넌트를 전원 온 하도록 PMGR(32)을 프로그래밍하고 온/오프 상태(88)들의 상태를 오프로 변경 및/또는 유휴/동적 디스플레이 상태 결정을 위하여 온 상태의 컴포넌트들의 개수를 감소시키는 것을 포함할 수 있다. PMGR 드라이버(82)가 드라이버로부터 전원 오프 요청을 수신하고(결정 블록(102), "예" 가지) 유휴 디스플레이 상태로 전환될 필요가 있는 다른 컴포넌트들이 오프가 아니거나 N 개 미만의 정적 프레임들이 검출된 경우(각각 결정 블록(104, 106), "아니오" 가지), PMGR 드라이버(82)는 어떠한 추가 작업 없이 요청된 컴포넌트의 오프 프로세싱을 완료할 수 있다(블록 (114)). 마지막으로, 수신된 요청이 디스플레이 상태를 변경할 필요가 있는 컴포넌트에 대한 전원 온 요청 또는 전원 오프 요청이 아닌 경우(결정 블록(90, 102), "아니오" 가지), PMGR 드라이버(82)는 요청의 프로세싱을 완료할 수 있고(블록(116)), 이는 디스플레이 상태를 결정하는 데 필요하지 않은 컴포넌트에 대한 전원 온 또는 전원 오프 요청을 포함할 수 있다.
이전에 언급한 바와 같이, CPU 필터(80)를 이용하여 프로세서(28)들은 디스플레이 상태 결정을 목적으로 온 또는 오프인지 고려될 것을 결정할 수 있다. 도 6은 CPU 필터(80)에 의해 사용되는 모델의 일 실시예를 도시하는 블록 다이어그램이다. 이 실시예에서, 프로세서(28)의 활성 또는 유휴일 확률이 프로세서(28)들의 이전 활성/유휴 시간에 기초하여 할당된다. CPU 유휴 시간은 도 6의 그래프에서 수평 축 상에 도시되고, CPU 활성 시간은 그래프의 수직 축 상에 도시된다. 짧은 활성/유휴 시간은 "데드 존"(120)으로 분류된다. 데드 존(120)은 제1 임계치 미만의 활성 시간 및 제2 임계치 미만의 유휴 시간으로 정의될 수 있고, 각각 도 6에서 파선(122, 124)으로 도시된다. 제1 및 제2 임계치는 다양한 실시예들에서 동일한 양의 시간일 수 있거나 상이할 수 있다. 제1 및 제2 임계치는 다양한 실시예들에서 프로그램 가능한 파라미터이거나 고정되어 있을 수 있다. CPU가 활성일 확률(Pa) 및 CPU가 유휴일 확률(Pi)은 모두 데드 존(120)에서 0에 할당된다.
제1 임계치보다 크고 최대 제1 캡(파선(126))인 CPU 활성 시간은 선형적으로 CPU가 활성인 0과 1 사이의 확률(Pa)로 맵핑될 수 있다. 제1 캡보다 큰 CPU 활성 시간은 1의 확률이 할당된다. 유사하게, 제2 임계치와 제2 캡(파선(128)) 사이의 CPU 유휴 시간은 선형적으로 CPU가 유휴인 0과 1 사이의 확률(Pi)로 맵핑될 수 있다. 제2 캡보다 큰 CPU 유휴 시간은 1의 확률이 할당된다. 제1 및 제2 캡은 동일한 값 또는 상이한 값일 수 있고, 고정되거나 프로그램 가능할 수도 있다. 다른 실시예들은 다른 방식으로 또는 다른 기능을 이용하여 활성/유휴 시간을 확률에 맵핑할 수 있다.
위와 같이 할당된 확률은 순간 확률(Pa, Pi)이다. 이 확률은 각각의 CPU 유휴 이벤트 및 CPU 웨이크 이벤트마다 생성될 수 있다. 일부 실시예에서, 확률은 히스토리에 따라(예를 들어, 도 6의 그래프 아래에 있는 식에 도시된 바와 같이, 가장 최근에 필터링된 확률로 캡쳐됨에 따라) 필터링된다. 그에 따라, 필터링된 활성 확률(Fa) 및 필터링된 유휴 확률(Fi)이 생성될 수 있다. 필터링된 확률을 PMGR 드라이버(82)에 제공하여 동적/유휴 디스플레이 검출을 위한 CPU 온/오프 상태를 결정할 수 있다. 필터 인자인 알파 및 베타는 프로그램 가능한 파라미터일 수 있고, 필터링된 확률이 프로세서(28)들의 실제 온/오프 상태를 얼마나 잘 예측하는지에 기초하여 경험적으로 선택될 수 있다.
도 7은 CPU 필터(80)의 일 실시예의 동작을 설명하는 흐름도이다. 쉬운 이해를 위해 특정 순서대로 블록들이 도시되지만, 다른 순서들도 사용될 수 있다. 일 실시예에서, 도 7의 동작은 소프트웨어로 구현될 수 있고, 따라서 소프트웨어는 실행 시 도 7에 도시된 동작을 구현하는 명령어들을 포함할 수 있다. 다른 실시예들은 하드웨어 및/또는 하드웨어와 소프트웨어의 조합 형태로 도 7에 도시된 특징부들을 구현할 수 있다.
CPU 필터(80)는 유휴 상태를 진입 및 종료할 때 실행되도록 구성될 수 있다. 유휴 상태는 프로세서(28)들이 능동적으로 작업을 수행하지 않는 상태일 수 있다. 유휴 상태는 프로세서(28)들은 전원은 공급되지만 명령어들을 실행하지 않는 슬립 상태뿐만 아니라, 프로세서(28)들이 전원 오프되는 전원 차단 상태도 포함할 수 있다. 따라서, CPU 필터(80)는 프로세서(28)들이 단지 필터(80)를 실행하기 위하여 주기적으로 깨어나도록 할 필요는 없다. 대신, 필터(80)는 프로세서(28)들이 다른 이유로 인해 깨어날 때 실행될 수 있다.
CPU 필터(80)는 가장 최근 유휴/활성 시간을 계산할 수 있다(블록(130)). 예를 들어, 유휴 시간은 CPU 필터(80)가 CPU 유휴 상태로부터 벗어나 있는 동안 실행될 때 계산될 수 있다. 활성 시간은 CPU 유휴 상태에 진입하는 동안 계산될 수 있다. 활성/유휴 시간은 CPU 필터(80)가 활성/유휴 시간이 연산되는 시간마다 갱신될 수 있는 전용, 자유 실행 타이머로부터 연산될 수 있다. 다양한 실시예들에서, 자유 실행 타이머는 프로세서 클락 또는 PMGR(32)에 의해 사용되는 SOC(10) 내의 클락에 기초하여 증가될 수 있다. 다른 실시예에서, 다양한 용도의 SOC(10)에 사용되는 타이머가 사용될 수 있다(예를 들어 시간 베이스 레지스터). 그러한 실시예에서, CPU 필터(80)는 타이머를 판독하고, 타이머에서 판독된 현재 값과 타이머에서 CPU 필터(80)에 의해 판독된 이전 값의 차이를 연산할 수 있다.
가장 최근 활성 및 유휴 시간에 기초하여, CPU 필터(80)는 순간 확률(Pa, Pi)을 연산할 수 있다(블록(132)). CPU 필터(80)는 순간 확률 및 이전 필터링된 확률에 기초하여 현재 시간에 대한 필터링된 확률(Fa, Fi) 을 연산할 수 있다(블록(134)). CPU 필터(80)는 필터링된 확률을 PMGR 드라이버(82)에 전송하여 CPU 온/오프 상태를 연산할 수 있다(블록(136)). 대안적으로, CPU 필터(80)는 필터링된 확률로부터 CPU 온/오프 상태를 연산할 수 있고 CPU 온/오프 상태를 PMGR 드라이버(82)에 전송할 수 있다.
다음 도 8에 대하여, PMGR 드라이버(82)가 CPU 필터(80)로부터 수신한 필터링된 확률에 응답하여 CPU 온/오프 상태를 결정하는 일 실시예의 동작을 예시하는 흐름도이다. 위에서 언급한 바와 같이, 도 8의 동작은 다른 실시예들에서 CPU 필터(80)에서 구현될 수 있다. 쉬운 이해를 위해 특정 순서대로 블록들이 도시되지만, 다른 순서들도 사용될 수 있다. 일 실시예에서, 도 8의 동작은 소프트웨어로 구현될 수 있고, 따라서 소프트웨어는 실행 시 도 8에 도시된 동작을 구현하는 명령어들을 포함할 수 있다. 다른 실시예들은 하드웨어 및/또는 하드웨어와 소프트웨어의 조합 형태로 도 8에 도시된 특징부들을 구현할 수 있다.
유휴의 필터링된 확률(Fi)이 활성의 필터링된 확률(Fa)보다 큰 경우(결정 블록(138), "예" 가지), PMGR 드라이버(82)는 CPU가 오프라고 결정할 수 있다(블록(140)). 현재 유휴/활성 시간이 데드 존(120) 내에 있기 때문에 순간 확률(Pa, Pi)이 둘 모두 0 인 경우(결정 블록(142), "예" 가지), PMGR 드라이버(82)는 이전에 결정된 CPU 온/오프 상태를 유지할 수 있다(블록(144)). 즉, 가장 최근에 결정된 CPU 온/오프 상태가 오프 인 경우, CPU 온/오프 상태는 계속 오프이다. 유사하게, 가장 최근에 결정된 CPU 온/오프 상태가 온 인 경우, CPU 온/오프 상태는 계속 온이 된다. 마지막으로, 유휴의 필터링된 확률(Fi)이 활성의 필터링된 확률(Fa)보다 크지 않고, 순간 확률(Pi, Pa)이 둘 다 0이 아닌 경우(결정 블록(138, 142), "아니오" 가지), PMGR 드라이버(82)는 CPU 온/오프 상태가 온이라고 결정할 수 있다(블록(146)).
도 9는 컴퓨터 액세스 가능 저장 매체(200)의 일 실시예의 블록 다이어그램이다. 일반적으로 말하면, 컴퓨터 액세스 가능 저장 매체는 명령어들 및/또는 데이터를 컴퓨터에 제공하기 위하여 사용하는 동안 컴퓨터에 의해 액세스 가능한 임의의 저장 매체를 포함할 수 있다. 예를 들어, 컴퓨터 액세스 가능 저장 매체는, 자기 또는 광학 매체, 예를 들어 디스크(고정 또는 탈착가능), 테이프, CD-ROM, DVD-ROM, CD-R, CD-RW, DVD-R, DVD-RW, 또는 블루-레이(Blu-Ray)와 같은 저장 매체를 포함할 수 있다. 저장 매체는, RAM(예를 들어, 동기식 동적 RAM(synchronous dynamic RAM, SDRAM), 램버스 DRAM(RDRAM), 정적 RAM(SRAM) 등), ROM, 또는 플래시 메모리와 같은 휘발성 또는 비휘발성 메모리 매체를 추가로 포함할 수 있다. 저장 매체는 저장 매체가 명령어들/데이터를 제공하는 컴퓨터 내에 물리적으로 포함될 수 있다. 대안적으로, 저장 매체는 컴퓨터에 접속될 수 있다. 예를 들어, 저장 매체는 네트워크 부착형 저장 장치와 같은, 네트워크 또는 무선 링크를 통해 컴퓨터에 접속될 수 있다. 저장 매체는 범용 시리얼 버스(USB)와 같은 주변 장치 인터페이스를 통해 접속될 수 있다. 일반적으로, 컴퓨터 액세스 가능 저장 매체(200)는 비일시적 방식으로 데이터를 저장할 수 있고, 본 맥락에서 비일시적이란 신호에 따라 명령어들/데이터를 전송하지 않는 것을 지칭할 수 있다. 예를 들어, 비일시적 저장장치는 휘발성(그리고 전원 차단에 따라 저장된 명령어들/데이터를 잃을 수 있음) 또는 비휘발성일 수 있다. 더 상세하게는 셀 폰, 태블릿 등과 같은 휴대용 디바이스에서 사용되는 일 실시예에서, 컴퓨터 액세스 가능 저장 매체(200)는 메모리(12) 및/또는 비휘발성 메모리, 예컨대 디바이스에 포함된 플래시 메모리를 포함할 수 있다.
도 9의 컴퓨터 액세스 가능 저장 매체(200)는 본 명세서에서 설명한 다양한 소프트웨어를 저장할 수 있다. 예를 들어, 컴퓨터 액세스 가능 저장 매체는 디스플레이 드라이버(70), GPU 드라이버(72), 기타 매체 드라이버(76)들, CPU 필터(80), ISP 드라이버(74), 기타 주변장치 드라이버(78)들, PMGR 드라이버(82), 및 메모리 제어기 드라이버(84) 중 하나 이상을 저장할 수 있다. 다양한 드라이버(70, 72, 74, 76, 78, 82, 84) 및 CPU 필터(80)는 프로세서(28)에 의해 실행 시 위에서 각각의 드라이버에 대하여 설명한 동작을 구현하는 명령어들을 포함할 수 있다. 추가로, PMGR 드라이버(82)는 실행 시 도 2, 도 3, 도 5, 및/또는 도 8에 도시된 동작을 구현하는 명령어들을 포함할 수 있다. CPU 필터(80)는 실행 시 도 7 및/또는 도 8에 도시된 동작을 구현하는 명령어들을 포함할 수 있다.
다음으로 도 10을 참조하면, 시스템(150)의 일 실시예의 블록도가 도시된다. 예시되는 실시예에서, 시스템(150)은 하나 이상의 주변장치(154) 및 외부 메모리(12)에 연결된 SOC(10) 중 적어도 하나의 예를 포함한다. SOC(10)에 공급 전압을 공급할 뿐만 아니라, 메모리(12) 및/또는 주변장치(154)들에 하나 이상의 공급 전압을 공급하는 전원 장치(156)가 제공된다. 일부 실시예에서, SOC(10)의 둘 이상의 예가 포함될 수 있다 (그리고 둘 이상의 메모리(12) 또한 포함될 수 있다).
주변장치(154)들은 시스템(150)의 유형에 따라 임의의 원하는 회로를 포함할 수 있다. 예를 들어, 일 실시예에서, 시스템(150)은 모바일 디바이스(예를 들어, 개인 휴대 정보 단말기(personal digital assistant, PDA), 스마트 폰 등)일 수 있고, 주변장치(154)들은 wifi, 블루투스(Bluetooth), 셀룰러, 글로벌 포지셔닝 시스템 등과 같은 다양한 유형의 무선 통신용 디바이스들을 포함할 수 있다. 또한, 주변장치(154)들은 RAM 저장 장치, 솔리드 스테이트 저장 장치 또는 디스크 저장 장치를 비롯한 추가 저장 장치를 포함할 수 있다. 주변장치(154)들은 터치 디스플레이 스크린 또는 멀티터치 디스플레이 스크린을 포함하는 디스플레이 스크린, 키보드 또는 다른 입력 장치들, 마이크로폰, 스피커 등과 같은 사용자 인터페이스 디바이스들을 포함할 수 있다. 일부 실시예들에서, 디스플레이(20) 및/또는 이미지 센서(26)는 주변장치(154)일 수 있다. 다른 실시예들에서, 시스템(150)은 임의의 유형의 컴퓨팅 시스템(예를 들어 데스크톱 개인용 컴퓨터, 랩톱, 워크스테이션, 넷톱 등)일 수 있다.
외부 메모리(12)는 임의의 유형의 메모리를 포함할 수 있다. 예를 들어, 외부 메모리(12)는 SRAM, 동적 RAM(DRAM), 예컨대 동기 DRAM(SDRAM), 이중 데이터율(DDR, DDR2, DDR3 등) SDRAM, RAMBUS DRAM 등일 수 있다. 외부 메모리(12)는 메모리 디바이스, 예컨대 단일 인라인 메모리 모듈(SIMM), 듀얼 인라인 메모리 모듈(DIMM) 등이 장착되는 하나 이상의 메모리 모듈을 포함할 수 있다. 대안적으로, 외부 메모리(12)는 칩-온-칩 또는 패키지-온 패키지 구현형태로 SOC(10) 상에 장착되는 하나 이상의 메모리 디바이스를 포함할 수 있다.
일단 상기의 개시 내용이 완전히 이해된다면 다양한 변형들 및 수정들이 당업자에게 명백해질 것이다. 다음의 청구범위는 모든 그러한 변형 및 수정을 포괄하는 것으로 해석되는 것으로 의도된다.
Claims (18)
- 유휴 디스플레이 상황에서의 메모리 절전 방법으로, 상기 방법은 디지털 시스템에 의해 구현되고, 상기 방법은
복수의 컴포넌트, 메모리 캐시, 및 메모리 시스템을 포함하는 장치의 디스플레이 디바이스에 대한 유휴 스크린을 검출하는 단계 - 상기 메모리 캐시는 상기 복수의 컴포넌트로부터의 메모리 동작들에 대한 데이터를 캐시 저장함 -;
상기 유휴 스크린을 검출하는 단계에 응답하여, 상기 메모리 캐시에의 프레임 데이터의 캐시 저장을 인에이블하는 단계 - 프레임 데이터의 캐시 저장은 상기 유휴 스크린이 검출되지 않는 시간동안 디스에이블되고, 상기 메모리 캐시는 상기 메모리 시스템에 연결되고 상기 메모리 시스템에서 액세스되는 데이터를 캐시 저장하도록 구성되며, 상기 메모리 캐시는 메모리 동작에 응답하여 상기 메모리 시스템에 액세스하기 전에 히트(hit)에 대하여 체크됨 -;
상기 프레임 데이터의 캐시 저장이 인에이블되는 시간동안 상기 메모리 시스템에서 상기 프레임 데이터를 판독하는 판독 메모리 동작들에 응답하여 상기 메모리 캐시에 프레임 데이터의 적어도 일부분을 캐시 저장하는 단계; 및
상기 복수의 컴포넌트로부터의 판독 동작들에 응답하여 상기 복수의 컴포넌트에 의해 판독되는 데이터를 상기 메모리 캐시에 캐시 저장하는 단계
를 포함하는, 유휴 디스플레이 상황에서의 메모리 절전 방법. - 제1항에 있어서, 상기 방법은 디지털 시스템에 의해 구현되고,
상기 유휴 스크린을 검출하는 단계에 응답하여, 상기 메모리 캐시의 전력 관리 설정을 변경하는 단계를 추가로 포함하는, 유휴 디스플레이 상황에서의 메모리 절전 방법. - 제2항에 있어서, 상기 변경하는 단계는 상기 메모리 캐시의 캐시 전원 차단을 디스에이블하는 단계를 포함하는, 유휴 디스플레이 상황에서의 메모리 절전 방법.
- 제2항에 있어서, 상기 변경하는 단계는 메모리 캐시 크기 축소를 디스에이블하는 단계를 포함하는, 유휴 디스플레이 상황에서의 메모리 절전 방법.
- 제1항에 있어서, 상기 방법은 디지털 시스템에 의해 구현되고, 상기 복수의 컴포넌트에 의해 판독되는 데이터를 상기 메모리 캐시에 캐시 저장하는 단계 이후에, 상기 유휴 스크린의 종료를 검출하는 단계; 및
상기 종료를 검출하는 단계에 응답하여, 상기 메모리 캐시에의 상기 프레임 데이터의 캐시 저장을 디스에이블하는 단계를 추가로 포함하는, 유휴 디스플레이 상황에서의 메모리 절전 방법. - 제5항에 있어서, 상기 방법은 디지털 시스템에 의해 구현되고,
상기 종료를 검출하는 단계에 응답하여,
상기 메모리 캐시의 캐시 전원 차단을 인에이블하는 단계; 및
메모리 캐시 크기 축소를 인에이블하는 단계를 추가로 포함하는, 유휴 디스플레이 상황에서의 메모리 절전 방법. - 제5항에 있어서, 상기 종료를 검출하는 단계는 상기 장치에서 적어도 하나의 컴포넌트가 전원 온(power on) 되는 것을 검출하는 단계를 포함하는, 유휴 디스플레이 상황에서의 메모리 절전 방법.
- 제5항에 있어서, 상기 종료를 검출하는 단계는 그래픽 디바이스가 전원 온 되도록 요청하는 것을 검출하는 단계를 포함하는, 유휴 디스플레이 상황에서의 메모리 절전 방법.
- 제5항에 있어서, 상기 방법은 디지털 시스템에 의해 구현되고, 상기 종료를 검출하는 단계는,
상기 장치에서 하나 이상의 프로세서에 대한 웨이크/슬립 이벤트들을 필터링하는 단계; 및
상기 프로세서가 잠재적으로 활성임을 나타내는 상기 필터링된 웨이크/슬립 이벤트들에 응답하여 상기 종료를 검출하는 단계를 추가로 포함하는, 유휴 디스플레이 상황에서의 메모리 절전 방법. - 메모리 시스템;
복수의 컴포넌트;
상기 메모리 시스템에 연결되고 상기 복수의 컴포넌트에 의해 상기 메모리 시스템에서 액세스되는 데이터를 캐시 저장하도록 구성된 메모리 캐시 - 상기 메모리 캐시는 메모리 동작에 응답하여 상기 메모리 시스템에 액세스하기 전에 히트에 대하여 체크되고, 상기 복수의 컴포넌트에 의해 액세스되는 상기 데이터의 적어도 일부분이 상기 메모리 시스템에서 상기 데이터를 판독하는 상기 복수의 컴포넌트로부터의 판독 메모리 동작들에 응답하여 상기 메모리 캐시에 캐시 저장됨 -; 및
상기 메모리 캐시 및 상기 메모리 시스템에 연결된 디스플레이 제어기 - 상기 디스플레이 제어기는 디스플레이 디바이스 상에 이미지를 표시하기 위하여 상기 메모리 시스템에 저장되는 적어도 하나의 프레임 버퍼를 판독하는 메모리 동작들을 생성하도록 구성되고, 상기 디스플레이 제어기는 사용 중에 상기 디스플레이 디바이스 상의 상기 이미지가 유휴인 것에 응답하여 상기 메모리 캐시 내의 할당을 요청하도록 프로그래밍되고, 상기 메모리 캐시는 상기 디스플레이 제어기로부터의 상기 할당 요청에 응답하여 상기 프레임 버퍼의 적어도 일부분을 캐시 저장하도록 구성됨 ―
를 포함하는, 유휴 디스플레이 상황에서의 메모리 절전 장치. - 제10항에 있어서, 상기 디스플레이 제어기는 사용 중에 상기 디스플레이 디바이스 상의 상기 이미지가 동적인 것에 응답하여 상기 메모리 캐시 내의 할당을 요청하지 않도록 프로그래밍되는, 유휴 디스플레이 상황에서의 메모리 절전 장치.
- 제10항에 있어서, 상기 디스플레이 디바이스 상의 상기 이미지는 N 개의 연속적인 정적 프레임을 검출하는 것에 응답하여 유휴인 것으로서 검출되고, N은 1보다 큰 정수이고, 상기 이미지는 상기 N 개의 연속적인 정적 프레임이 검출되지 않는 한, 동적인 것으로서 검출되는, 유휴 디스플레이 상황에서의 메모리 절전 장치.
- 제11항에 있어서, 상기 메모리 캐시의 전력 관리 설정은 유휴 이미지 및 동적 이미지를 검출하는 것에 응답하여 변경되는, 유휴 디스플레이 상황에서의 메모리 절전 장치.
- 제13항에 있어서, 상기 전력 관리 설정은 상기 유휴 이미지에 응답하여 캐시 전원 차단을 디스에이블하도록 변경되는, 유휴 디스플레이 상황에서의 메모리 절전 장치.
- 제13항에 있어서, 상기 전력 관리 설정은 상기 유휴 이미지에 응답하여 캐시 자동 크기조정을 디스에이블하도록 변경되는, 유휴 디스플레이 상황에서의 메모리 절전 장치.
- 디스플레이 제어기, 메모리 캐시를 포함하는 메모리 제어기, 복수의 컴포넌트, 및 전력 관리자 회로를 또한 포함하는 집적 회로의 하나 이상의 프로세서에 의해 실행 가능한 복수의 명령어를 저장하는 컴퓨터 액세스 가능 저장 매체로서, 상기 복수의 명령어는,
상기 전력 관리자 회로에 대응하는 전력 관리자 드라이버;
상기 메모리 제어기에 대응하는 메모리 드라이버; 및
상기 디스플레이 제어기에 대응하는 디스플레이 드라이버
를 포함하고, 상기 디스플레이 드라이버는 디스플레이되고 있는 이미지가 N 개의 연속적인 프레임 동안 정적이었음을 검출하고, N은 1보다 큰 정수이고, 상기 전력 관리자 드라이버는 상기 N 개의 연속적인 정적 프레임에 응답하여, 그리고 상기 전력 관리자 드라이버가 상기 집적 회로의 상기 복수의 컴포넌트가 전원 차단되는 것을 검출하는 것에 추가로 응답하여 유휴 디스플레이 모드를 검출하고, 상기 디스플레이 드라이버는 상기 디스플레이 제어기가 상기 유휴 디스플레이 모드에 응답하여 상기 메모리 캐시에 상기 디스플레이 제어기에 의해 판독되는 프레임 버퍼 데이터를 캐시 저장하는 것을 인에이블하도록 프로그래밍하고, 상기 메모리 캐시에 상기 프레임 버퍼 데이터를 캐시 저장하는 것은 N보다 적은 연속적인 정적 프레임들이 검출되었거나 상기 복수의 컴포넌트 중 하나 이상이 전원 공급되는 동적 디스플레이 모드에서 디스에이블되고, 상기 메모리 드라이버는 상기 유휴 디스플레이 모드에 응답하여 상기 메모리 캐시에 대한 하나 이상의 전력 관리 특징부를 변경하고, 상기 메모리 캐시는 상기 복수의 컴포넌트 및 상기 디스플레이 제어기에 의해 판독되는 데이터의 적어도 일부분을 캐시 저장하도록 구성된, 컴퓨터 액세스 가능 저장 매체. - 제16항에 있어서, 상기 메모리 드라이버는 상기 유휴 디스플레이 모드에 응답하여 캐시 전원 차단을 디스에이블하는, 컴퓨터 액세스 가능 저장 매체.
- 제16항에 있어서, 상기 메모리 드라이버는 상기 유휴 디스플레이 모드에 응답하여 캐시 자동 크기조정을 디스에이블하는, 컴퓨터 액세스 가능 저장 매체.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/890,306 | 2013-05-09 | ||
US13/890,306 US9261939B2 (en) | 2013-05-09 | 2013-05-09 | Memory power savings in idle display case |
PCT/US2014/032811 WO2014182393A1 (en) | 2013-05-09 | 2014-04-03 | Memory power savings in idle display case |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020177023760A Division KR101862275B1 (ko) | 2013-05-09 | 2014-04-03 | 유휴 디스플레이 상황에서의 메모리 절전 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20160006758A KR20160006758A (ko) | 2016-01-19 |
KR101773175B1 true KR101773175B1 (ko) | 2017-08-30 |
Family
ID=50780859
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020157034983A KR101773175B1 (ko) | 2013-05-09 | 2014-04-03 | 유휴 디스플레이 상황에서의 메모리 절전 |
KR1020177023760A KR101862275B1 (ko) | 2013-05-09 | 2014-04-03 | 유휴 디스플레이 상황에서의 메모리 절전 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020177023760A KR101862275B1 (ko) | 2013-05-09 | 2014-04-03 | 유휴 디스플레이 상황에서의 메모리 절전 |
Country Status (7)
Country | Link |
---|---|
US (2) | US9261939B2 (ko) |
EP (2) | EP2994825B1 (ko) |
JP (1) | JP6072358B2 (ko) |
KR (2) | KR101773175B1 (ko) |
CN (2) | CN105190531B (ko) |
TW (1) | TWI528169B (ko) |
WO (1) | WO2014182393A1 (ko) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9261939B2 (en) | 2013-05-09 | 2016-02-16 | Apple Inc. | Memory power savings in idle display case |
JP2015011652A (ja) * | 2013-07-02 | 2015-01-19 | キヤノン株式会社 | 情報処理装置及びその制御方法、並びにプログラム |
US9513693B2 (en) | 2014-03-25 | 2016-12-06 | Apple Inc. | L2 cache retention mode |
TWI653527B (zh) * | 2014-12-27 | 2019-03-11 | 美商英特爾公司 | 當計算元件運作時致能系統低電力狀態之技術 |
CN104934007A (zh) * | 2015-07-06 | 2015-09-23 | 合肥京东方光电科技有限公司 | 数据线驱动方法及单元、源极驱动器、面板驱动装置和显示装置 |
TWI576697B (zh) * | 2015-12-30 | 2017-04-01 | 冠德國際智慧財產權有限公司 | 動態隨機存取記憶體發光控制系統 |
KR102295315B1 (ko) * | 2016-04-15 | 2021-08-30 | 가부시키가이샤 한도오따이 에네루기 켄큐쇼 | 반도체 장치, 전자 부품, 및 전자 기기 |
CN106028131B (zh) * | 2016-06-24 | 2021-07-16 | 联想(北京)有限公司 | 一种控制方法、装置及系统 |
US10228750B2 (en) * | 2016-10-31 | 2019-03-12 | Dell Products, L.P. | Reducing the power consumption of an information handling system capable of handling both dynamic and static display applications |
US11054887B2 (en) * | 2017-12-28 | 2021-07-06 | Advanced Micro Devices, Inc. | System-wide low power management |
US11314310B2 (en) * | 2017-12-29 | 2022-04-26 | Intel Corporation | Co-existence of full frame and partial frame idle image updates |
CN110069223B (zh) * | 2018-01-23 | 2023-04-18 | 上海济丽信息技术有限公司 | 一种基于Android系统的智能大屏幕拼接显示单元 |
US20190303322A1 (en) * | 2018-03-29 | 2019-10-03 | Qualcomm Incorporated | Direct interrupt routing for display processing |
CN112005218B (zh) * | 2018-04-28 | 2024-01-30 | 华为技术有限公司 | 一种图像处理器的功率分配的方法、装置及系统 |
US11243598B2 (en) | 2018-06-01 | 2022-02-08 | Apple Inc. | Proactive power management of a graphics processor |
KR102559380B1 (ko) * | 2018-08-08 | 2023-07-26 | 삼성디스플레이 주식회사 | 검사 시스템, 이의 멀티 타임 프로그래밍 방법 및 표시 장치 |
KR102519570B1 (ko) * | 2018-11-12 | 2023-04-10 | 삼성디스플레이 주식회사 | 표시 장치 및 이를 이용한 표시 패널의 구동 방법 |
CN109272972B (zh) * | 2018-11-30 | 2021-04-09 | 北京集创北方科技股份有限公司 | 显示装置及其控制方法 |
CN114008570B (zh) * | 2020-05-28 | 2024-01-30 | 京东方科技集团股份有限公司 | 触控显示设备及其触控响应方法、系统及存储介质 |
US12073806B2 (en) * | 2020-10-27 | 2024-08-27 | Advanced Micro Devices, Inc. | Refreshing displays using on-die cache |
TWI806769B (zh) | 2022-01-25 | 2023-06-21 | 神基科技股份有限公司 | 受電裝置及供電路徑的控制方法 |
KR102616344B1 (ko) | 2023-04-05 | 2023-12-20 | 이은주 | 영상 변환 장치 및 그 방법 |
CN117555721B (zh) * | 2024-01-12 | 2024-05-07 | 深圳疆泰科技有限公司 | 飞行器fpga的比特翻转的处理方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060259804A1 (en) | 2005-05-16 | 2006-11-16 | Ati Technologies, Inc. | Apparatus and methods for control of a memory controller |
US20080100636A1 (en) | 2006-10-31 | 2008-05-01 | Jiin Lai | Systems and Methods for Low-Power Computer Operation |
US20080143695A1 (en) | 2006-12-19 | 2008-06-19 | Dale Juenemann | Low power static image display self-refresh |
US20100123727A1 (en) | 2008-11-18 | 2010-05-20 | Kwa Seh W | Techniques to control self refresh display functionality |
US20120146968A1 (en) | 2010-12-13 | 2012-06-14 | Ati Technologies Ulc | Self-Refresh Panel Time Synchronization |
US20120188262A1 (en) | 2011-01-25 | 2012-07-26 | Qualcomm Incorporated | Detecting static images and reducing resource usage on an electronic device |
Family Cites Families (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06332664A (ja) * | 1993-03-23 | 1994-12-02 | Toshiba Corp | 表示制御システム |
US5512921A (en) | 1994-06-22 | 1996-04-30 | Microsoft Corporation | Visual display system having low energy data storage subsystem with date compression capabilities, and method for operating same |
JP3106872B2 (ja) * | 1994-09-02 | 2000-11-06 | 株式会社日立製作所 | 画像処理プロセッサ及びそれを用いたデータ処理システム |
JPH0898148A (ja) * | 1994-09-29 | 1996-04-12 | Toshiba Corp | 画像ファイリング装置 |
US5961617A (en) | 1997-08-18 | 1999-10-05 | Vadem | System and technique for reducing power consumed by a data transfer operations during periods of update inactivity |
US6731290B2 (en) | 2001-09-28 | 2004-05-04 | Intel Corporation | Window idle frame memory compression |
US20030145239A1 (en) * | 2002-01-31 | 2003-07-31 | Kever Wayne D. | Dynamically adjustable cache size based on application behavior to save power |
US7152187B2 (en) | 2003-11-26 | 2006-12-19 | Texas Instruments Incorporated | Low-power SRAM E-fuse repair methodology |
JP2006084758A (ja) * | 2004-09-16 | 2006-03-30 | Seiko Epson Corp | 電気光学装置用駆動回路及び方法、電気光学装置、並びに電子機器 |
US7457917B2 (en) | 2004-12-29 | 2008-11-25 | Intel Corporation | Reducing power consumption in a sequential cache |
CN101171563A (zh) * | 2005-05-10 | 2008-04-30 | Nxp股份有限公司 | 用于异步数字电路的睡眠看门狗电路 |
US20070043965A1 (en) * | 2005-08-22 | 2007-02-22 | Intel Corporation | Dynamic memory sizing for power reduction |
US7958312B2 (en) | 2005-11-15 | 2011-06-07 | Oracle America, Inc. | Small and power-efficient cache that can provide data for background DMA devices while the processor is in a low-power state |
US20070288776A1 (en) | 2006-06-09 | 2007-12-13 | Dement Jonathan James | Method and apparatus for power management in a data processing system |
US7536511B2 (en) * | 2006-07-07 | 2009-05-19 | Advanced Micro Devices, Inc. | CPU mode-based cache allocation for image data |
TWI323842B (en) | 2006-07-17 | 2010-04-21 | Acer Inc | Method for power management |
JP2008098148A (ja) | 2006-09-14 | 2008-04-24 | Canon Inc | 有機発光装置 |
GB2461900B (en) * | 2008-07-16 | 2012-11-07 | Advanced Risc Mach Ltd | Monitoring graphics processing |
US20100117931A1 (en) * | 2008-11-10 | 2010-05-13 | Microsoft Corporation | Functional image representation |
US8689027B2 (en) * | 2008-11-13 | 2014-04-01 | International Business Machines Corporation | Tiled memory power management |
US7853817B2 (en) | 2009-02-26 | 2010-12-14 | Apple Inc. | Power management independent of CPU hardware support |
US8103894B2 (en) | 2009-04-24 | 2012-01-24 | International Business Machines Corporation | Power conservation in vertically-striped NUCA caches |
US8285936B2 (en) | 2009-10-20 | 2012-10-09 | The Regents Of The University Of Michigan | Cache memory with power saving state |
JP2011097197A (ja) * | 2009-10-27 | 2011-05-12 | Yamaha Corp | メモリアクセス制御装置 |
KR101661931B1 (ko) | 2010-02-12 | 2016-10-10 | 삼성전자주식회사 | 3차원 그래픽스 랜더링 장치 및 그 방법 |
CN102158653B (zh) * | 2011-05-03 | 2013-01-16 | 东华大学 | 一种实时高动态范围数字图像获取装置及方法 |
TWI489466B (zh) | 2011-06-15 | 2015-06-21 | Phison Electronics Corp | 記憶體抹除方法、記憶體控制器與記憶體儲存裝置 |
US8847968B2 (en) * | 2011-07-12 | 2014-09-30 | Qualcomm Incorporated | Displaying static images |
US8713256B2 (en) | 2011-12-23 | 2014-04-29 | Intel Corporation | Method, apparatus, and system for energy efficiency and energy conservation including dynamic cache sizing and cache operating voltage management for optimal power performance |
US9021207B2 (en) * | 2012-12-20 | 2015-04-28 | Advanced Micro Devices, Inc. | Management of cache size |
US9058676B2 (en) | 2013-03-26 | 2015-06-16 | Apple Inc. | Mechanism to detect idle screen on |
US9153212B2 (en) | 2013-03-26 | 2015-10-06 | Apple Inc. | Compressed frame writeback and read for display in idle screen on case |
US9396122B2 (en) | 2013-04-19 | 2016-07-19 | Apple Inc. | Cache allocation scheme optimized for browsing applications |
US9261939B2 (en) | 2013-05-09 | 2016-02-16 | Apple Inc. | Memory power savings in idle display case |
US20150248741A1 (en) * | 2014-03-02 | 2015-09-03 | Qualcomm Incorporated | System and method for providing power-saving static image display refresh in a dram memory system |
-
2013
- 2013-05-09 US US13/890,306 patent/US9261939B2/en active Active
-
2014
- 2014-04-03 JP JP2016512901A patent/JP6072358B2/ja active Active
- 2014-04-03 CN CN201480025931.5A patent/CN105190531B/zh active Active
- 2014-04-03 KR KR1020157034983A patent/KR101773175B1/ko active IP Right Grant
- 2014-04-03 EP EP14726041.8A patent/EP2994825B1/en active Active
- 2014-04-03 KR KR1020177023760A patent/KR101862275B1/ko active IP Right Grant
- 2014-04-03 EP EP17205934.7A patent/EP3309674B1/en active Active
- 2014-04-03 WO PCT/US2014/032811 patent/WO2014182393A1/en active Application Filing
- 2014-04-03 CN CN201810125195.0A patent/CN108196809B/zh active Active
- 2014-04-22 TW TW103114566A patent/TWI528169B/zh active
-
2015
- 2015-12-28 US US14/980,912 patent/US10310586B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060259804A1 (en) | 2005-05-16 | 2006-11-16 | Ati Technologies, Inc. | Apparatus and methods for control of a memory controller |
US20080100636A1 (en) | 2006-10-31 | 2008-05-01 | Jiin Lai | Systems and Methods for Low-Power Computer Operation |
US20080143695A1 (en) | 2006-12-19 | 2008-06-19 | Dale Juenemann | Low power static image display self-refresh |
US20100123727A1 (en) | 2008-11-18 | 2010-05-20 | Kwa Seh W | Techniques to control self refresh display functionality |
US20120146968A1 (en) | 2010-12-13 | 2012-06-14 | Ati Technologies Ulc | Self-Refresh Panel Time Synchronization |
US20120188262A1 (en) | 2011-01-25 | 2012-07-26 | Qualcomm Incorporated | Detecting static images and reducing resource usage on an electronic device |
Also Published As
Publication number | Publication date |
---|---|
US20160116969A1 (en) | 2016-04-28 |
EP3309674A1 (en) | 2018-04-18 |
TW201502763A (zh) | 2015-01-16 |
CN105190531A (zh) | 2015-12-23 |
US10310586B2 (en) | 2019-06-04 |
CN108196809B (zh) | 2021-02-12 |
KR20160006758A (ko) | 2016-01-19 |
CN108196809A (zh) | 2018-06-22 |
TWI528169B (zh) | 2016-04-01 |
US20140337649A1 (en) | 2014-11-13 |
EP3309674B1 (en) | 2023-01-11 |
EP2994825B1 (en) | 2018-01-17 |
KR20170101320A (ko) | 2017-09-05 |
EP2994825A1 (en) | 2016-03-16 |
KR101862275B1 (ko) | 2018-07-05 |
US9261939B2 (en) | 2016-02-16 |
WO2014182393A1 (en) | 2014-11-13 |
JP2016524745A (ja) | 2016-08-18 |
CN105190531B (zh) | 2018-02-09 |
JP6072358B2 (ja) | 2017-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101773175B1 (ko) | 유휴 디스플레이 상황에서의 메모리 절전 | |
US8656196B2 (en) | Hardware automatic performance state transitions in system on processor sleep and wake events | |
JP4376897B2 (ja) | プロセッサ電力状態を考慮するメモリコントローラ | |
KR101748747B1 (ko) | 프로세서의 구성가능한 피크 성능 제한들의 제어 | |
WO2007061597A1 (en) | Integrating display controller into low power processor | |
US7536511B2 (en) | CPU mode-based cache allocation for image data | |
US20180011800A1 (en) | Power saving method and apparatus for first in first out (fifo) memories | |
US10216251B2 (en) | Controlling processor performance scaling based on context | |
US9196187B2 (en) | System and method of reducing power using a display inactive indication | |
US10102131B2 (en) | Proactive power management for data storage devices to reduce access latency | |
US20170322614A1 (en) | Power management techniques |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
A107 | Divisional application of patent | ||
GRNT | Written decision to grant |