KR20160066542A - 부하 라인 최적화를 위한 그래픽 전압 감소 - Google Patents

부하 라인 최적화를 위한 그래픽 전압 감소 Download PDF

Info

Publication number
KR20160066542A
KR20160066542A KR1020160065909A KR20160065909A KR20160066542A KR 20160066542 A KR20160066542 A KR 20160066542A KR 1020160065909 A KR1020160065909 A KR 1020160065909A KR 20160065909 A KR20160065909 A KR 20160065909A KR 20160066542 A KR20160066542 A KR 20160066542A
Authority
KR
South Korea
Prior art keywords
dynamic capacitance
voltage
frame
capacitance threshold
graphics processor
Prior art date
Application number
KR1020160065909A
Other languages
English (en)
Other versions
KR101722413B1 (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 인텔 코포레이션
Publication of KR20160066542A publication Critical patent/KR20160066542A/ko
Application granted granted Critical
Publication of KR101722413B1 publication Critical patent/KR101722413B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control 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/363Graphics controllers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/28Supervision thereof, e.g. detecting power-supply failure by out of limits supervision
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2330/00Aspects of power supply; Aspects of display protection and defect management
    • G09G2330/02Details of power systems and of start or stop of display operation
    • G09G2330/025Reduction of instantaneous peaks of current
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/06Use of more than one graphics processor to process data before displaying to one or more screens

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Graphics (AREA)
  • General Engineering & Computer Science (AREA)
  • Power Sources (AREA)

Abstract

그래픽 전력-성능 효율을 최적화하는 기술이 제공된다. 그래픽 프로세싱 방법은, 제 1 전압 및 제 1 클램핑 임계값으로 그래픽 워크로드를 개시하는 단계; 동적 커패시턴스의 버스트들이 상기 제 1 클램핑 임계값을 초과하여 유지되는 시간을 모니터링하는 단계; 및 상기 동적 커패시턴스가 사전결정된 시간 임계값보다 큰 시간 동안에 상기 제 1 클램핑 임계값을 초과하여 유지되는 경우, 프레임의 끝까지, 상기 전압을 제 2 전압으로 설정하고 상기 클램핑 임계값을 제 2 클램핑 임계값으로 설정하는 단계를 포함할 수 있다. 초기 프레임의 시작에서부터 상기 사전결정된 시간 임계값을 초과하는 시점까지의 클럭 사이클들의 수가 사전결정된 최소의 클럭 사이클들보다 작은 경우, 상기 초기 프레임의 끝에서, 상기 제 2 클램핑 임계값 및 상기 제 2 전압은 사전결정된 수의 후속 프레임들의 프로세싱을 위하여 유지될 수 있다.

Description

부하 라인 최적화를 위한 그래픽 전압 감소{GRAPHICS VOLTAGE REDUCTION FOR LOAD LINE OPTIMIZATION}
본 명세서에 설명된 기술들은 일반적으로 그래픽 전력-성능 효율 개선을 위한 프레임-기반 임계 메트릭들에 관한 것이다.
그래픽 프로세싱에 있어서, 하나의 도전 과제는 특히 프레임 시작에서의, 전력 사용량 대비 성능을 최적화하는 것이다. 최대 동적 커패시턴스 클램핑(clamping)을 사용하지 않는 이전의 솔루션들은 전체, 또는 거의 전체 전력을 사용하게 된다. 최대 동적 커패시턴스 클램핑을 사용하는 경우, 클램핑 임계값이 사용될 수 있다. 클램핑 임계값은 부하 라인을 지나갈 수 있는 최악의 경우의 전류를 낮출 수 있는 최고 한도이다. 클램핑 임계값은 정적 또는 동적으로 설정될 수 있다. 정적 또는 동적 클램핑 임계값 설정 사이의 선택은 동작 포인트들(예를 들어, 전압, 주파수, 최대 공급 전류 한도 등)에 기초할 수 있다. 적극적인(aggressive) 동적 클램핑의 경우에는, 프레임 길이 클럭 카운트의 증가가 있을 수 있으며, 이것은 0 이상인 투자에 대한 네트 프레임 레이트(net frame rate) 리턴을 위해 동일하거나 더 큰 주파수 증가만큼 오프셋 될 것을 필요로 한다. 이러한 솔루션들은 워크로드(workload)의 활성도 거동에 대한 인프라-프레임 지식을 이용하지 않는다.
그래픽 전력-성능 효율을 최적화하는 기술이 제공된다. 그래픽 프로세싱 방법은, 제 1 전압 및 제 1 클램핑 임계값으로 그래픽 워크로드를 개시하는 단계; 동적 커패시턴스의 버스트들이 상기 제 1 클램핑 임계값을 초과하여 유지되는 시간을 모니터링하는 단계; 및 상기 동적 커패시턴스가 사전결정된 시간 임계값보다 큰 시간 동안에 상기 제 1 클램핑 임계값을 초과하여 유지되는 경우, 프레임의 끝까지, 상기 전압을 제 2 전압으로 설정하고 상기 클램핑 임계값을 제 2 클램핑 임계값으로 설정하는 단계를 포함할 수 있다. 초기 프레임의 시작에서부터 상기 사전결정된 시간 임계값을 초과하는 시점까지의 클럭 사이클들의 수가 사전결정된 최소의 클럭 사이클들보다 작은 경우, 상기 초기 프레임의 끝에서, 상기 제 2 클램핑 임계값 및 상기 제 2 전압은 사전결정된 수의 후속 프레임들의 프로세싱을 위하여 유지될 수 있다.
도 1은 일 실시예에 따른, 그래픽 부하 라인 최적화를 위한 전압 조정 방법을 도시한 상태도이다.
도 2는 일 실시예들에 따른, 그래픽 부하 라인 최적화를 위한 부분적 기회를 나타내는 예시적 그래프이다.
도 3은 일 실시예에 따른, 그래픽 부하 라인 최적화를 위한 100% 기회를 나타내는 예시적 그래프이다.
도 4는 일 실시예에 따른, 그래픽 부하 라인 최적화를 위한 기회가 거의 없는 것을 나타내는 예시적 그래프이다.
도 5a 및 5b는 일 실시예에 따른, 그래픽 시스템에서의 부하 라인 최적화 방법의 예시적 흐름도를 도시한다.
도 6은 일 실시예에 따른, 그래픽 부하 라인 최적 방법을 도시한 예시적 흐름도이다.
도 7은 일 실시예에 따른, 예시적 그래픽 프로세서의 기능 컴포넌트들의 블록도이다.
도 8은 일 실시예에 따른, 예시적 그래픽 프로세싱 디바이스의 블록도이다.
도 9는 일 실시예가 구현될 수 있는 예시적 정보 시스템을 도시한다.
도 10은 일 실시예가 구현될 수 있는 예시적 모바일 정보 디바이스를 도시한다.
도면들에서, 참조 번호의 가장 왼쪽의 숫자(들)은 참조 번호가 최초로 나타난 도면을 나타낼 수 있다.
일반적으로, 용어 최대 동적 커패시턴스(Cdyn_max)는, 집적 회로 컴포넌트 또는 패키지가 정의된 시간의 윈도우에 걸쳐 지속될 수 있는 동적 커패시턴스(Cdyn)의 최대 양을 지칭한다. 그래픽 아키텍처는 상대적으로 복잡하다. 예를 들어, 1㎲ 동안에 최대 지속가능한 동적 커패시턴스는, 상이한 서브시스템들, 레이턴시들, 및 이들 서브시스템들 간의 인터랙션들의 복잡성에 근간하여, 100㎲ 또는 2㎲ 동안 그것과 상이한 값을 가질 수 있다. 이에 따라, Cdyn_max의 값을 제어하는 것은, 그래픽 컴포넌트들의 전력-효율 및/또는 속도에 직접적인 영향을 미칠 수도 있다. 따라서, 최대 동적 커패시턴스의 클램핑(또는 감소)는 그래픽 워크로드들의 전력 및 성능 효율에 긍정적인 영향을 미칠 수 있다.
그래픽 워크로드에서 가능한 전력 감소의 양은, 예를 들어, 제작 재료(예컨대, 고속 재료들은 높은 누설 전류를 가질 수 있음), 주파수(예컨대, 주파수가 높을수록, 더 높은 전력이 필요할 수 있음), 및 온도(예컨대, 온도가 높을수록, 누설이 많아질 수 있음)를 포함하는 복수의 요인들에 따라 결정될 수 있다. 다른 요인은 전압 감소를 시킬 수 있는 프레임 길이의 퍼센티지를 포함할 수 있다. Cdyn_max의 클램핑은 그래픽 프레임의 시작에서의 기회를 식별하여, 부하 라인 최적화를 위해 그래픽 전압을 감소시키는데 도움을 줄 수 있다. 이러한 기회는, 예를 들어, 프레임의 시작으로부터(그래픽 파이프라인들이 비어 있거나 플러싱 되어 있는(flushed) 시점) 소정 수의 클럭 사이클들이 고 활성을 갖는 시점으로 놓을 수 있다. 이 윈도우 동안의 그래픽 전압의 감소는, 전력 감소 및 전력-성능 효율의 증가 모두를 제공할 수 있다.
그래픽 프레임은 x 픽셀×y 픽셀 치수를 갖는 2-차원(2D) 프레임일 수 있으며, 이것은 2D 또는 3-차원(3D) 그래픽을 나타낸다. 그래픽 프레임의 시작에서는, 그래픽 파이프라인들이 플러싱되어 있다. 파이프라인들에서의 활성 작업(active work)은 존재하지 않으며, 이것은 그래픽이 일시적으로 유휴인 것을 나타낼 수 있다. 그래픽 인터페이스 내로 작업이 들어오기 시작하는 경우, 파이프라인이 채워지는데 시간이 걸리게 된다. 이 작업은 지오메트리 프리프로세싱(geometry preprocessing)을 거쳐 흐르게 되며, 이어서 EU들(계산 유닛들)에게 쓰레드들을 디스패치하게 된다. 이어서, EU들은 텍스처 샘플러(texture sampler)에게 작업을 전송할 수 있다. 이 시간 동안, 파이프라인들이 채워지게 되므로, 그래픽 Cdyn은 상당히 낮아질 수 있다. 이러한 낮은 레벨의 활성도는 전술한 바와 같은 Cdynmax 클램핑을 사용하여 모니터링될 수 있다. 활성도 레벨이 낮게 유지되는 한, 성능 저하 없이도 그래픽은 더 낮은 전압 및 더 낮은 레벨로 설정된 Cdynmax 클램핑 임계값을 사용할 수가 있으며, 이것은 개선된 전력-성능 효율을 야기할 수 있다. 전원 전압은 최악의 경우의 부하 및 전류에 대하여 설계될 필요가 있다. 따라서, 더 높은 전압, 및 더 낮은 적극적인 클램핑 임계값이 요청될 수 있으며, 그래픽 활성도가 지속적인 더 높은 레벨로 증가된 것이 검출되는 경우에는, 이것이 설정될 수 있다.
일 예로서, 그래픽 워크로드는 0.70v의 전압(voltage _0) 및 55%의 클램핑 임계값(clamping_threshold_0)으로 시작될 수 있다. 또한, 프리셋 허용가능 버스트 길이(burst length)는 예를 들어, ~50㎲로 설정될 수 있다. 프리셋 허용가능 버스트 길이는, 그래픽 성능에 거의 영향을 미치지 않는 동적 커패시턴스의 최대 버스트를 나타내는 사전 결정된 임계값이다.
이 예에서는, 프레임 시작과 끝에 대한 지식이 필요할 수도 있다. 일 실시예에서는, "프레임의 시작" 마커(marker)가 드라이버에 의해 생성될 수 있으며, 그래픽 및/또는 전력 제어 유닛(PCU)에게 전달될 수 있다. 다른 실시예에서, 그래픽은 예를 들어, 모든 주요 그래픽 서브시스템들이 X 클럭들의 경우에 유휴가 되고, 그래픽 인터페이스를 제외한 모든 주요 서브시스템들이 Y 클럭들의 경우에 유휴가 된다는 등과 같은 조건들에 기초하는 프레임의 시작에 대한 내부의 로직 검출을 가질 수도 있다. 또한, 프레임 마커의 끝이 생성될 수도 있다. 프레임이 시작되고/되거나 끝나는 시점을 아는 것은, 다음 프레임의 시작에 앞서 전압 및 클램핑 임계값을 설정할 수 있도록 하기 위하여 중요하다. 예를 들어, 듀티 사이클 제어(Duty Cycle Control; DCC)를 사용하는 경우, 프레임의 끝에서 RC6를 입력하기 이전에, 그래픽은 전압을 voltage _ 0 으로 및 클램핑 임계값을 clamping_threshold_0 으로 재설정할 수 있으며, 이에 따라 RC6이 종료되는 경우, 아래에서 설명되는 바와 같이, PCU는 다음 프레임의 시작을 위하여 voltage_0clamping_threshold_0을 적용할 수 있다.
각 그래픽 프레임의 시작에서, 그래픽은 매우 낮은 활성도 상태(예컨대, Cdyn_max의 50% 미만)로 존재할 수도 있다. Cdyn_max 메트릭은 Cdyn_max 클램핑과 함께 모니터링될 수 있다. 프리셋 허용가능 버스트 길이보다 크게 활성도가 지속(즉, Cdyn_max가 clamping _ threshold _0 이상으로 유지)될 때까지, 전압은 voltage_0 으로 유지될 수도 있다. 짧은 버스트의 활성도(이 예에서는, 50㎲ 미만)의 경우에는, 성능 손실이 거의 없는 클램핑 메커니즘에 의해서 익스커전(excursion)들이 발생하는 것이 방지된다. 그러나, 프리셋 허용가능 버스트 길이 보다 크게 활성이 지속되는 경우, 그래픽은 전압이 voltage _1(예컨대, 0.72v)로 증가할 것을 요청할 수 있다(예컨대, 드라이버 및/또는 PCU에게). 응답이 수신되고 나면(예컨대, 전압이 voltage _1로 증가했다는 PCU 확인응답들), 클램핑 임계값은 clamping _ threshold _ 1(예컨대, 75%)으로 증가할 수 있다. 전압 및 클램핑 임계값은 프레임의 나머지 부분에 있어서 voltage _1clamping _ threshold _1로 유지될 수 있다. 프레임의 끝에서는, 다음 프레임의 시작을 위하여, 클램핑 임계값이 (예컨대, 그래픽에 의해) clamping _ threshold _0으로 복귀하며, 전압은 (예컨대, 드라이버 또는 PCU에 의해) voltage _0으로 복귀한다. 일 실시예에서, 활성도가 너무 빠르게 증가하는 이벤트(예컨대, Cdyn_max가 프레임의 시작으로부터 사전결정된 수의 클럭 사이클 내에서, 프리셋 허용가능 버스트 길이보다 크게 clamping_threshold_0 이상을 유지)에서, 전압 및 클램핑 임계값은 초기의 높은 활성도를 처리하기 위해 다수의 후속 프레임들에 대해서 voltage _1clamping_threshold_1로 설정될 수 있다.
도 1은 일 실시예에 따른, 그래픽 부하 라인 최적화를 위한 예시적 전압 조정 방법을 도시하는 상태도이다. 본 상태도는 전술한 방법을 요약한 것이다. 그래픽 워크로드의 프레임의 시작인, 102에서, 전압은 제 1 전압이 되고, 클램핑 임계값은 제 1 클램핑 임계값이 된다. Cdyn_max의 모니터링 동안에, Cdyn_max가 주어진 시간 임계값보다 큰 시간 동안 제 1 클램핑 임계값을 초과하는 것으로 결정되는 경우, 상태가 104로 이동하며, 여기서, 프레임의 지속 시간 동안, 전압은 제 2 전압으로 증가하고, 클램핑 임계값은 제 2 클램핑 임계값으로 증가한다. 프레임의 끝에서, 상태는 102로 돌아가며, 여기서, 다음 프레임의 시작에서, 전압은 다시 제 1 전압이 되고, 클램핑 임계값은 다시 제 1 클램핑 임계값이 된다. 이것은 그래픽 워크로드의 끝까지 계속될 수 있다.
도 2는 일 실시예에 따른, 그래픽 부하 라인 최적화를 위한 부분적 기회를 나타내는 예시적 그래프이다. 도 2에서, 플롯(206)은 프리미티브 수(primitive number) 대 시간 간격(time step)을 나타내고, 플롯(208)은 동적 커패시턴스 대 시간 간격을 나타낸다. 점선(210)은 평균 Cdyn_max 메트릭을 나타낸다. 파선(212)은 하위 동적 커패시턴스 클램핑 임계값을 나타내고, 파선(214)은 상위 동적 커패시턴스 클램핑 임계값을 나타낸다. 점선(216)은 100% Cdyn_max 메트릭을 나타낸다. 라인(218)은 클램핑 임계값의 설정을 나타낸다. 프레임의 처음 66%에서, 클램핑 임계값은 하위 클램핑 임계값과 동일하게 설정된다. 219에 의해 원으로 볼 수 있는 바와 같이, 클램핑된 다양한 짧은 버스트 익스커전(burst excursion)들이 있었다. 지속적인 익스커전들은 약 4백만 클럭들에서 시작하는 것으로 보여지며, 이때 클램핑 임계값은 상위 클램핑 임계값(220으로 표시)까지 증가한다. 클램핑 임계값은 프레임의 끝(221로 표시)까지 상위 클램핑 임계값을 유지한다. 이 예는 부하 라인 최적화를 위한 (약 66%의) 부분적 기회를 나타낸다.
도 3은 일 실시예에 따른, 그래픽 부하 라인 최적화를 위한 100% 기회를 나타내는 예시적 그래프이다. 도 3에서, 플롯(306)은 프리미티브 수 대 시간 간격을 나타내고, 플롯(308)은 동적 커패시턴스 대 시간 간격을 나타낸다. 점선(310)은 평균 Cdyn_max 메트릭을 나타낸다. 파선(312)은 하위 동적 커패시턴스 클램핑 임계값을 나타내고, 파선(314)은 상위 동적 커패시턴스 클램핑 임계값을 나타낸다. 점선(316)은 100% Cdyn_max 메트릭을 나타낸다. 라인(318)은 클램핑 임계값의 설정을 나타낸다. 볼 수 있는 바와 같이, 클램핑 임계값은 프레임의 전체 지속 시간 동안 하위 클램핑 임계값과 동일하게 설정된다. 319에 의해 원으로 볼 수 있는 바와 같이, 클램핑된 몇몇 짧은 버스트 익스커전들이 있었다. 지속적인 익스커전들은 부하 라인 최적화를 위한 100% 기회를 나타내는 이 예에서는 발생하지 않는다.
도 4는 일 실시예에 따른, 그래픽 부하 라인 최적화를 위한 기회가 거의 없는 것을 나타내는 예시적 그래프이다. 도 4에서, 플롯(406)은 프리미티브 수 대 시간 간격을 나타내고, 플롯(408)은 동적 커패시턴스 대 시간 간격을 나타낸다. 점선(410)은 평균 Cdyn_max 메트릭을 나타낸다. 파선(412)은 하위 동적 커패시턴스 클램핑 임계값을 나타내며 파선(414)은 상위 동적 커패시턴스 클램핑 임계값을 나타낸다. 점선(416)은 100% Cdyn_max 메트릭을 나타낸다. 라인(418)은 클램핑 임계값의 설정을 나타낸다. 프레임의 처음~2%에서, 클램핑 임계값은 하위 클램핑 임계값과 동일하게 설정된다. 419에 의해 원으로 볼 수 있는 바와 같이, 지속적인 익스커전들이 프레임의 초기(약 200K 클럭들에서 시작)에 발생하며, 이때 클램핑 임계값은 상위 클램핑 임계값(420로 표시)까지 증가한다. 클램핑 임계값은 프레임의 끝(421로 표시)까지 상위 클램핑 임계값으로 유지된다. 이러한 예는 부하 라인 최적화를 위한 기회가 거의 없다는 것을 나타낸다. 이 프레임은 사전결정된 수의 후속 프레임들에 대한 부하 라인 최적화 특징을 비활성화함으로써, 전술한 바와 같은, 초기 고 활성(high activity)을 처리하기 위한 후보일 수 있다.
도 5a 및 5b는 일 실시예에 따른, 그래픽 시스템에서의 부하 라인 최적화 방법의 예시적 흐름도(540)를 도시한 것이다. 542에서, 변수 "MIN", "N", 및 "LIMIT"은 넌-제로(non-zero) 값들로 설정될 수 있다. "N"은 사전결정된 수의 프레임들을 나타낼 수 있다. "N"에 대한 선택된 값은 워크로드에 따라 달라질 수 있다. 예를 들어, 워크로드가 소수의 장면 전환(scene change)들을 가지고 있는 경우, "N"은 더 높게 설정될 수 있으며, 워크로드가 다수의(예를 들어, 빈번한) 장면 전환들을 가지는 경우, "N"은 더 낮게 설정될 수 있다. 따라서, "N"은 특정 워크로드의 특성을 감지하는 값으로 설정될 수 있다. "MIN"은 부하 라인 최적화 특징이 N 프레임들 중의 각 프레임의 시작에서 사용될 최소 수의 클럭 주기들을 나타낼 수 있다. "MIN"에 대해 선택되는 값은 로직의 블록을 "웨이크 업(wake up)"하는데 걸리는 전력 관리 제어에 대한 오버헤드(예컨대, 시간)를 고려할 수 있다. "LIMIT"는 동적 커패시턴스가 성능 저하 없이 클램핑 임계값 이상을 유지하도록 허용되는 시간의 최대 양을 나타낼 수 있다. "LIMIT"에 대해 선택되는 값은 아키텍처의 하드웨어 구현의 특성을 감지하는 것에 따라 달라질 수 있다.
544에서, N 프레임들 중 제 1 프레임의 프로세싱은, voltage _ 0 으로 설정된 전압 및 clamping _ threshold _ 0 으로 설정된 클램핑 임계값으로 개시될 수 있다. N 프레임들 중 제 1 프레임의 프로세싱은 546으로 지정된 박스로 표시된다. 548에서는, 동적 커패시턴스가 "LIMIT"에 의해 지정된 시간 보다 많은 시간 동안 clamping_threshold_0 이상으로 유지되었는지의 여부를 결정한다. 그렇지 않고, 프레임의 끝이 검출되지 않는 경우, "LIMIT"가 초과되거나 프레임의 끝이 검출될 때까지 프로세싱은 548에서 유지될 수 있다. 그렇지 않고, 프레임의 끝이 검출된 경우, 프로세싱은 549에서 계속될 수 있으며, 여기서 클램핑 임계값은, 만약 아직 그렇지 못하다면, clamping _ threshold _ 0 으로 설정되고 전압은 voltage_0 으로 설정될 수 있다. 프로세싱은 도 5b의 556에서 계속될 수 있다.
548을 다시 참조하여, "LIMIT"을 초과한 경우, 프로세싱은 550에서 계속될 수 있으며, 여기서 프레임의 시작으로부터 초과된 포인트 "LIMIT"까지의 클럭들의 수가 "MIN" 미만인 경우에 플래그(flag)가 설정될 수 있다. 552에서, 전압 및 클램핑 임계값의 증가에 대한 요청이 드라이버 및/또는 PCU(power control unit)로부터 요청될 수 있으며, 여기서 프로세싱은 응답이 수신될 때까지 유지될 수 있다. 응답이 수신되고 나면, 프로세싱은 554에서 계속될 수 있으며, 여기서, 프레임의 끝까지, 클램핑 임계값은 clamping _ threshold _1 으로 증가될 수 있고, 전압은 voltage _1 으로 증가될 수 있다. 프레임의 끝이 검출되는 경우, 프로세싱은 549에서 계속될 수 있으며, 여기서 클램핑 임계값은 clamping _ threshold _ 0 으로 설정되고 전압은 voltage _0 으로 설정된다. 프로세싱은 도 5b의 556에서 계속될 수 있다.
556에서는, 플래그가 550에서 설정되었는지의 여부를 결정할 수 있다. 그러한 경우, 프로세싱은 558에서 계속되며, 여기서는 나머지 N-1 프레임들에 대해, 전압이 voltage _1 으로 유지되도록 설정될 수 있고, 클램핑 임계값이 clamping_threshold_1 로 유지되도록 설정될 수 있으며, 프로세싱은 도 5a의 542에서 계속될 수 있다. 그렇지 않은 경우, 프로세싱은 560에서 계속될 수 있으며, 여기서 N은 1만큼 감소될 수 있다. 562에서는, N 프레임들 중의 다음 프레임의 프로세싱이, voltage _ 0 으로 설정된 전압 및 clamping _ threshold _ 0 으로 설정된 클램핑 임계값으로 개시될 수 있다. N 프레임들 중의 제 1 프레임 이외의 프레임들의 프로세싱은, 564로 지정된 박스로 표시된다. 566에서는, 동적 커패시턴스가 "LIMIT"에 의해 지정된 시간보다 많은 시간 동안 clamping _ threshold _0 이상으로 유지되었는지의 여부가 결정된다. 그렇지 않고, 프레임의 끝이 검출되지 않은 경우, "LIMIT"를 초과하거나 프레임의 끝이 검출될 때까지 프로세싱이 566에서 유지될 수 있다. 그렇지 않고, 프레임의 끝이 검출되는 경우, 프로세싱은 571에서 계속될 수 있으며, 여기서는, 아직 그렇지 못한 경우, 클램핑 임계값이 clamping_threshold_0 으로 설정되고 전압이 voltage _ 0 으로 설정된다. 프로세싱은 572에서 계속될 수 있으며, 여기서는 N이 1만큼 감소한다. 574에서는, N이 0의 값에 도달했는지의 여부가 결정될 수 있다. 그렇지 않은 경우, 프로세싱은 다음 프레임의 시작으로서 562에서 계속될 수 있다. 그러한 경우, 프로세싱은 도 5a의 542에서 다시 계속될 수 있다.
다시 566을 참조하여, "LIMIT"이 초과된 경우, 프로세싱은 568에서 계속될 수 있으며, 여기서 전압 및 클램핑 임계값 증가에 대한 요청이 드라이버 및/또는 전력 제어 유닛(PCU)으로부터 요청될 수 있으며, 여기서 프로세싱은 응답이 수신될 때까지 유지될 수 있다. 응답이 수신되고 나면, 프로세싱은 570에서 계속될 수 있으며, 여기서 프레임의 끝까지, 클램핑 임계값은 clamping _ threshold _ 1 로 증가될 수 있으며, 전압은 voltage _1로 증가될 수 있다. 프레임의 끝이 검출되는 경우, 프로세싱은 571에서 계속될 수 있으며, 여기서 클램핑 임계값은 clamping_threshold_0으로 설정되며, 전압은 voltage _0으로 설정된다. 프로세싱은 572에서 계속될 수 있으며, 여기서 N은 1만큼 감소한다. 574에서는, N이 0의 값에 도달했는지의 여부가 결정될 수 있다. 만일 그렇지 않은 경우, 프로세싱은 다음 프레임의 시작으로서 562에서 계속될 수 있다. 만일 그러한 경우, 프로세싱은 도 5a의 542에서 다시 계속될 수 있다. 프로세싱은 그래픽 워크로드가 끝날 때까지 이러한 방식으로 계속될 수 있다.
그래픽 프로세싱에서의 부하 라인 최적화 특징을 요약한 일 예는, 일 실시예에 따른 도 6의 흐름도(600)에서 확인할 수 있다. 602에서, 그래픽 워크로드는 제 1 전압으로 설정된 전압 및 제 1 클램핑 임계값으로 설정된 클램핑 임계값으로 시작될 수 있다. 604에서는, 동적 커패시턴스의 버스트들이 제 1 클램핑 임계값 이상을 유지하는 시간이 결정될 수 있다. 606에서, 동적 커패시턴스가 사전결정된 시간 임계값보다 큰 시간 동안 제 1 클램핑 임계값 이상을 유지하는 경우, 전압은 제 2 전압으로 변환될 수 있으며, 클램핑 임계값은 제 2 클램핑 임계값으로 변환될 수 있다. 일 실시예에서, 제 2 전압 및 제 2 클램핑 임계값은 프레임의 끝까지 유지될 수 있다. 일 실시예에서, 이들 값들은 다음 프레임의 개시에서 제 1 전압 및 제 1 클램핑 임계값으로 재설정될 수도 있다. 일 실시예에서, 초기 프레임의 시작으로부터, 사전결정된 시간 임계값을 초과한 시점까지의 다수의 클럭 사이클들이 사전결정된 최소의 클럭 사이클들 미만인 경우, 제 2 클램핑 임계값 및 제 2 전압은 사전결정된 수의 후속 프레임들에 대한 프로세싱을 위해 유지될 수 있다. 실시예들에서, 전압, 클램핑 임계값, 사전결정된 시간 임계값, 및/또는 사전결정된 최소의 클럭 사이클들에 대한 설정은, 공장(factory) 설정되거나 프로그래밍될 수 있다(예컨대, 하드웨어 레지스터, 소프트웨어 드라이버, 룩업 테이블 등으로 설정 가능). 프레임의 시작/끝은 예를 들어 드라이버에 의해 검출될 수 있다.
도 7은 일 실시예에 따른, 예시적 그래픽 프로세서(776)의 기능 컴포넌트들에 대한 블록도이다. 실시예들에서, 예시적 그래픽 프로세서(776)의 기능 컴포넌트들 각각은 하드웨어, 소프트웨어, 펌웨어, 또는 그 조합으로 구현될 수 있다. 예시적 그래픽 프로세서(776)는 예를 들어, 그래픽 워크로드 초기화 유닛(778), 동적 커패시턴스 모니터(780), 및 전압 조정기(782)를 포함할 수 있으며, 이것은 예를 들어 도 5를 참조하여 전술한 기능들을 실행할 수 있다. 그래픽 워크로드 초기화 유닛(776)은 그래픽 워크로드를 시작하기에 앞서, 전압을 제 1 전압으로 설정하고 또한 클램핑 임계값을 제 1 클램핑 임계값으로 설정할 수 있다. 동적 커패시턴스 모니터(780)는, 동적 커패시턴스의 버스터들이 제 1 클램핑 임계값 이상을 유지하는 시간을 모니터링할 수 있다. 일 실시예에서, 동적 커패시턴스 모니터(780)는 동적 커패시턴스를 제 1 클램핑 임계값과 비교할 수 있는 비교 유닛 (미도시)을 포함할 수 있다. 전압 조정기(782)는 동적 커패시턴스 모니터(780) 및 가능하게는 그 밖의 인자들에 의해 제공되는 결과값들에 기초하여 전압 및 클램핑 임계값을 조정할 수 있다.
본 명세서에 개시된 하나 이상의 특징들은 이산 및 집적 회로 로직, ASIC(application specific integrated circuit) 로직, 및 마이크로컨트롤러들을 포함하는 하드웨어, 소프트웨어, 펌웨어 및 그 조합으로 구현될 수 있으며, 또한 도메인-특정 집적 회로 패키지의 일부 또는 집적 회로 패키지들의 조합으로 구현될 수도 있다. 본 명세서에서 사용되는 용어 소프트웨어 및 펌웨어는, 컴퓨터 시스템으로 하여금 본 명세서에 개시된 하나 이상의 특징들 및/또는 그 특징들의 조합들을 수행하게 하는, 거기에 저장된 컴퓨터-실행가능 인스트럭션들과 같은 컴퓨터 프로그램 로직을 가지는 적어도 하나의 컴퓨터 판독가능 매체를 포함하는 컴퓨터 프로그램 제품을 지칭한다. 컴퓨터 판독가능 매체는 일시적이거나 또는 비-일시적일 수 있다. 일시적 컴퓨터 판독가능 매체의 일 예는 무선 주파수를 통하거나 전기 전도체를 통해, LAN(local area network) 또는 WAN(wide area network)을 통해, 또는 인터넷과 같은 네트워크를 통해 전송되는 디지털 신호일 수도 있다. 비-일시적 컴퓨터 판독가능 매체의 일 예는 컴팩트 디스크, 플래시 메모리, SRAM, DRAM, 하드 드라이브, 솔리드 스테이트 드라이브, 또는 그 밖의 데이터 스토리지 디바이스일 수 있다.
전술한 바와 같이, 실시예들에서는, 본 명세서에 기술된 프로세싱의 일부 또는 전부가 하드웨어, 소프트웨어, 및/또는 펌웨어로 구현될 수 있다. 이러한 실시예들은, 도 8에 도시된 예시적 컴퓨팅 시스템(876)의 컨텍스트에 도시될 수 있다. 컴퓨팅 시스템(876)은 링크(892) 또는 이와 유사한 메커니즘에 의해 메모리(886), 하나 이상의 보조 스토리지 디바이스들(888), 및 하나 이상의 그래픽 프로세서들(890)에 연결된 하나 이상의 범용 프로세서들(884)과 같은 하나 이상의 중앙 프로세싱 유닛(들)(CPU)을 포함할 수 있다. 다르게는, 그래픽 프로세서(들)(890)은 범용 프로세서(들)(884)과 일체화될 수도 있다. 그래픽 프로세서(들)(890)은 본 명세서에서 설명된 방법들을 수행하기 위한, 예를 들어, 도 7을 참조하여 기술된 바와 같은 하나 이상의 로직 유닛들을 포함할 수 있다. 실시예들에서, 다른 로직 유닛들이 또한 존재할 수도 있다. 도 7을 참조하여 논의한 로직 유닛들과 같은 로직 유닛들의 기능들은 단일의 로직 유닛, 또는 임의 개수의 로직 유닛들에 의해 실행될 수 있다는 것을 당업자는 인식할 것이다. 컴퓨팅 시스템(876)은 통신 인터페이스(들)(894) 및/또는 사용자 인터페이스 컴포넌트들(896)을 선택적으로 포함할 수 있다. 통신 인터페이스(들)(894)은 하드웨어 또는 하드웨어와 소프트웨어의 조합으로 구현될 수 있으며, 네트워크에게 유선 또는 무선 네트워크 인터페이스를 제공할 수 있다. 사용자 인터페이스 컴포넌트들(896)은 예를 들어, 터치스크린, 디스플레이, 하나 이상의 사용자 입력 컴포넌트들(예컨대, 키보드, 마우스 등), 스피커, 또는 이와 유사한 것, 또는 그들의 임의의 조합을 포함할 수 있다. 본 명세서에서 설명된 방법들을 통해 처리된 그래픽은, 하나 이상의 사용자 인터페이스 컴포넌트들 상에 디스플레이될 수도 있다. 하나 이상의 보조 스토리지 디바이스들(888)은 예를 들어, 하나 이상의 하드 드라이브들 또는 이와 유사한 것일 수 있으며, 그래픽 프로세서(들)(890) 및/또는 범용 프로세서(들)(884)에 의해 실행되는 로직(898)(예컨대, 애플리케이션 로직)을 저장할 수도 있다. 일 실시예에서, 범용 프로세서(들)(884) 및/또는 그래픽 프로세서(들)(890)은 마이크로프로세서들일 수 있으며, 로직(898)은 범용 프로세서(들)(884) 및/또는 그래픽 프로세서(들)(890)에 의해 실행되어 본 명세서에 기술된 기능들을 제공하기 위하여 메모리(886)에 저장 또는 로딩될 수 있다. 도시되지 않았지만, 컴퓨팅 시스템(876)은 추가의 컴포넌트들을 포함할 수도 있음에 유의한다.
전술한 기술은 대형 정보 시스템의 일부일 수도 있다. 도 9는 이러한 일 실시예를 시스템(900)으로서 도시한 것이다. 실시예들에서, 시스템(900)은 미디어 시스템일 수 있으며, 이러한 컨텍스트로 한정되지 않는다. 예를 들어, 시스템(900)은 개인용 컴퓨터(PC), 랩탑 컴퓨터, 울트라-랩탑 컴퓨터, 태블릿, 터치 패드, 휴대용 컴퓨터, 핸드헬드 컴퓨터, 팜탑 컴퓨터, PDA(personal digital assistant), 셀룰러 전화기, 셀룰러 전화기/PDA 조합, 텔레비전, 스마트 디바이스(예컨대, 스마트 폰, 스마트 태블릿 또는 스마트 텔레비전), MID(mobile internet device), 메시징 디바이스, 데이터 통신 디바이스 등에 포함될 수도 있다.
실시예들에서, 시스템(900)은 디스플레이(920)에 커플링된 플랫폼(902)을 포함한다. 플랫폼(902)은 컨텐츠 서비스 디바이스(들)(930) 또는 컨텐츠 전송 디바이스(들)(940)과 같은 컨텐츠 디바이스 또는 그 밖의 유사한 컨텐츠 소스들로부터 컨텐츠를 수신할 수 있다. 하나 이상의 내비게이션 특징들을 포함하는 내비게이션 컨트롤러(950)는 예를 들어, 플랫폼(902) 및/또는 디스플레이(920)와의 상호작용을 위해 사용될 수 있다. 이하, 이들 컴포넌트들 각각에 대하여 보다 상세히 설명하도록 한다.
실시예들에서, 플랫폼(902)은 칩셋(905), 프로세서(910), 메모리(912), 스토리지(914), 그래픽 서브시스템(915), 애플리케이션들(916) 및/또는 무선장치(918)의 임의의 조합을 포함할 수 있다. 칩셋(905)은 프로세서(910), 메모리(912), 스토리지(914), 그래픽 서브시스템(915), 애플리케이션들(916) 및/또는 무선장치(918) 간의 상호통신을 제공할 수 있다. 예를 들어, 칩셋(905)은 스토리지(914)와의 상호통신을 제공할 수 있는 스토리지 어댑터(미도시)를 포함할 수 있다.
프로세서(910)는 CISC(Complex Instruction Set Computer) 또는 RISC(Reduced Instruction Set Computer) 프로세서들, x86 인스트럭션 세트 호환형 프로세서들, 멀티-코어, 또는 임의의 다른 마이크로프로세서나 중앙 프로세싱 유닛(CPU)으로서 구현될 수 있다. 실시예들에서, 프로세서(910)는 듀얼-코어 프로세서(들), 듀얼-코어 모바일 프로세서(들) 등을 포함할 수 있다.
메모리(912)는 RAM(Random Access Memory), DRAM(Dynamic Random Access Memory), 또는 SRAM(Static RAM)과 같은 휘발성 메모리 디바이스로 구현될 수 있으며, 이에 한정되지 않는다.
스토리지(914)는 자기 디스크 드라이브, 광 디스크 드라이브, 테이프 드라이브, 내부 스토리지 디바이스, 부착형 스토리지 디바이스, 플래시 메모리, 배터리 백-업(backed-up) SDRAM(synchronous DRAM), 및/또는 네트워크 액세스 가능한 스토리지 디바이스와 같은 비-휘발성 스토리지 디바이스로 구현될 수 있으며, 이에 한정되지 않는다. 실시예들에서, 스토리지(914)는 예를 들어 복수의 하드 드라이브들이 포함될 때, 귀중한 디지털 미디어를 위한 스토리지 성능 향상된 보호를 증가시키는 기술을 포함할 수 있다.
그래픽 서브시스템(915)은 디스플레이를 위한 스틸 또는 비디오와 같은 이미지들의 프로세싱을 수행할 수 있다. 그래픽 서브시스템(915)은 예를 들어 GPU(graphics processing unit) or a VPU(visual procesing unit)일 수 있다. 아날로그 또는 디지털 인터페이스를 이용하여 그래픽 서브시스템(915)과 디스플레이(920)를 통신적으로 커플링시킬 수 있다. 예를 들어, 인터페이스는 고-선명 멀티미디어 인터페이스, 디스플레이포트, 무선 HDMI, 및/또는 무선 HD 호환 기술들 중의 임의의 것일 수 있다. 그래픽 서브시스템(915)은 프로세서(910) 또는 칩셋(905)에 통합될 수 있다. 그래픽 서브시스템(915)은 칩셋(905)에 통신적으로 커플링되는 독립형 카드일 수 있다.
본 명세서에서 설명된 그래픽 및/또는 비디오 프로세싱 기술들은 다양한 하드웨어 아키텍처들로 구현될 수 있다. 예를 들어, 그래픽 및/또는 비디오 기능은 칩셋 내에 통합될 수 있다. 다르게는, 이산 그래픽 및/또는 비디오 프로세서가 사용될 수도 있다. 또 다른 실시예로서, 그래픽 및/또는 비디오 기능들은 멀티-코어 프로세서를 포함하는 범용 프로세서에 의해 구현될 수 있다. 다른 실시예에서, 기능들은 소비자 전자 디바이스(consumer electronics device)로 구현될 수도 있다.
무선장치(918)는 각종 적절한 무선 통신 기술들을 사용하여 신호들을 송신 및 수신할 수 있는 하나 이상의 무선장치들을 포함할 수 있다. 이러한 기술들은 하나 이상의 무선 네트워크들을 통한 통신들을 수반할 수 있다. 예시적인 무선 네트워크들은 WLAN(wireless local area network), WPAN(wireless personal area network), WMAN(wireless metropolitan area network), 셀룰러 네트워크, 및 위성 네트워크를 포함한다(그러나 이것들로 한정되지 않는다). 이러한 네트워크들을 통한 통신시에, 무선 장치(918)는 임의의 버전의 하나 이상의 적용가능한 표준에 따라 동작할 수 있다.
실시예들에서, 디스플레이(920)는 임의의 텔레비전 타입 모니터 또는 디스플레이를 포함할 수 있다. 디스플레이(920)는 예를 들어, 컴퓨터 디스플레이 스크린, 터치 스크린 디스플레이, 비디오 모니터, 텔레비전형 디바이스, 및/또는 텔레비전을 포함할 수 있다. 디스플레이(920)는 디지털 및/또는 아날로그일 수 있다. 실시예들에서, 디스플레이(920)는 홀로그램 디스플레이일 수 있다. 또한, 디스플레이(920)는 시각적 프로젝션(visual projection)을 수신할 수 있는 투명면일 수 있다. 이러한 프로젝션들은 다양한 형태의 정보, 이미지, 및/또는 객체를 전달할 수 있다. 예를 들어, 이러한 프로젝션들은 MAR(mobile augmented reality) 애플리케이션을 위한 시각적 오버레이(overlay)일 수 있다. 하나 이상의 소프트웨어 애플리케이션들(916)의 제어하에서, 플랫폼(902)은 디스플레이(920) 상에 사용자 인터페이스(922)를 디스플레이할 수 있다.
실시예들에서, 컨텐츠 서비스 디바이스(들)(930)는 임의의 내셔널, 인터내셔널 및/또는 독립 서비스에 의해 호스팅될 수 있으며, 이에 따라 예를 들어 인터넷을 통해 플랫폼(902)에 액세스할 수 있다. 컨텐츠 서비스 디바이스(들)(930)는 플랫폼(902) 및/또는 디스플레이(920)에 커플링될 수 있다. 플랫폼(902) 및/또는 컨텐츠 서비스 디바이스(들)(930)는 네트워크(960)로 및 그로부터 미디어 정보를 통신하기 위해(예를 들어, 송신 및/또는 수신) 네트워크(960)에 커플링될 수 있다. 컨텐츠 전송 디바이스(들)(940)는 또한 플랫폼(902) 및/또는 디스플레이(920)에 커플링될 수도 있다.
실시예들에서, 컨텐츠 서비스 디바이스(들)(930)는 케이블 텔레비전 박스, 개인용 컴퓨터, 네트워크, 전화기, 디지털 정보 및/또는 컨텐츠를 전송할 수 있는 인터넷 가능 디바이스들 또는 어플라이언스, 및 네트워크(960)를 통해 또는 직접적으로, 컨텐츠 제공자들과 플랫폼(902) 및 디스플레이(920) 사이에 단방향으로 또는 양방향으로 컨텐츠를 통신할 수 있는 임의의 다른 유사한 디바이스를 포함할 수 있다. 컨텐츠는 네트워크(960)를 통해 컨텐츠 제공자 및 시스템(900)의 컴포넌트들 중 어느 하나로 및 그로부터 단방향으로 및/또는 양방향으로 통신될 수 있다는 것을 알 것이다. 컨텐츠의 예들은 예를 들어 비디오, 음악, 의료 및 게임 정보 등을 포함하는 임의의 미디어 정보를 포함할 수 있다.
컨텐츠 서비스 디바이스(들)(930)는 미디어 정보, 디지털 정보, 및/또는 다른 컨텐츠를 포함하는 케이블 텔레비전 프로그래밍과 같은 컨텐츠를 수신한다. 컨텐츠 제공자들의 예들은 임의의 케이블 또는 위성 텔레비전 또는 라디오 또는 인터넷 컨텐츠 제공자들을 포함할 수 있다. 제공된 예들은 본 발명의 실시예들을 한정하는 것으로 의도되지 않는다.
실시예들에서, 플랫폼(902)은 하나 이상의 내비게이션 특징들을 갖는 내비게이션 컨트롤러(950)로부터 제어 신호들을 수신할 수 있다. 컨트롤러(950)의 내비게이션 특징들은 예를 들어 사용자 인터페이스(922)와 상호작용하는 데 사용될 수 있다. 실시예들에서, 내비게이션 컨트롤러(950)는 사용자가 컴퓨터 내로 공간적(예를 들어, 연속적 및 다차원적) 데이터를 입력할 수 있게 하는 컴퓨터 하드웨어 컴포넌트(구체적으로 인간 인터페이스 디바이스)일 수 있는 포인팅 디바이스일 수 있다. 그래픽 사용자 인터페이스(GUI), 및 텔레비전과 모니터와 같은 다수의 시스템은, 사용자가 물리적 제스처, 얼굴 표정, 또는 소리를 이용하여 컴퓨터 또는 텔레비전에 데이터를 제어 및 제공할 수 있게 한다.
컨트롤러(950)의 내비게이션 특징들의 움직임들은 디스플레이 상에 디스플레이되는 포인터, 커서, 포커스 링(focus ring), 또는 다른 시각적 표시자들의 움직임들에 의해 디스플레이(예를 들어, 디스플레이(920)) 상에서 반복(echo)될 수 있다. 예를 들어, 소프트웨어 애플리케이션들(916)의 제어하에서, 내비게이션 컨트롤러(950)에 배치되는 내비게이션 특징들은 예를 들어 사용자 인터페이스(922) 상에 디스플레이되는 시각적 내비게이션 특징들에 맵핑될 수 있다. 실시예들에서, 컨트롤러(950)는 별개의 컴포넌트가 아닐 수도 있으며, 플랫폼(902) 및/또는 디스플레이(920)에 통합될 수도 있다. 그러나, 실시예들은 본 명세서에 도시되거나 설명된 요소들 또는 컨텍스트로 한정되지 않는다.
실시예들에서, 드라이버들(미도시)은 사용자들이 초기 부트업(boot-up) 후에, 예를 들어, 인에이블될 때 텔레비전과 같이 버튼의 터치에 의해 플랫폼(902)을 즉시 턴 온 및 오프할 수 있게 하기 위한 기술을 포함할 수 있다. 프로그램 로직은, 플랫폼(902)으로 하여금, 플랫폼이 턴 "오프"될 때 미디어 어댑터들 또는 다른 컨텐츠 서비스 디바이스(들)(930) 또는 컨텐츠 전송 디바이스(들)(940)에 컨텐츠를 스트리밍(stream)할 수 있도록 할 수 있다. 또한, 칩셋(905)은 예를 들어 5.1 서라운드 사운드 오디오 및/또는 고선명 7.1 서라운드 사운드 오디오를 위한 하드웨어 및/또는 소프트웨어 지원을 포함할 수 있다. 드라이버들은 통합된 그래픽 플랫폼들을 위한 그래픽 드라이버를 포함할 수 있다. 실시예들에서, 그래픽 드라이버는 PCI(peripheral component interconnect) 익스프레스 그래픽 카드를 포함할 수 있다.
다양한 실시예들에서, 시스템(900)에 도시된 컴포넌트들 중 임의의 하나 이상이 통합될 수 있다. 예를 들어, 플랫폼(902) 및 컨텐츠 서비스 디바이스(들)(930)가 통합될 수 있으며, 또는 플랫폼(902) 및 컨텐츠 전송 디바이스(들)(940)가 통합될 수 있으며, 또는 예를 들어 플랫폼(902), 컨텐츠 서비스 디바이스(들)(930), 및 컨텐츠 전송 디바이스(들)(940)가 통합될 수도 있다. 다양한 실시예들에서, 플랫폼(902) 및 디스플레이(920)는 통합 유닛일 수 있다. 예를 들어, 디스플레이(920) 및 컨텐츠 서비스 디바이스(들)(930)가 통합될 수 있으며, 또는 디스플레이(920) 및 컨텐츠 전송 디바이스(들)(940)가 통합될 수도 있다. 이들 예들은 본 발명을 한정하는 것으로 의도되지 않는다.
다양한 실시예들에서, 시스템(900)은 무선 시스템, 유선 시스템, 또는 둘 다의 조합으로서 구현될 수 있다. 무선 시스템으로서 구현될 경우, 시스템(900)은 하나 이상의 안테나, 송신기, 수신기, 송수신기, 증폭기, 필터, 제어 로직 등과 같은 무선 공유 매체를 통해 통신하는데 적절한 컴포넌트들 및 인터페이스들을 포함할 수 있다. 무선 공유 매체의 예는 RF 스펙트럼 등과 같은 무선 스펙트럼의 부분들을 포함할 수 있다. 유선 시스템으로서 구현될 경우, 시스템(900)은 입력/출력(I/O) 어댑터, I/O 어댑터를 대응하는 유선 통신 매체와 연결시키기 위한 물리적 커넥터, 네트워크 인터페이스 카드(NIC), 디스크 컨트롤러, 비디오 컨트롤러, 오디오 컨트롤러 등과 같은 유선 통신 매체를 통해 통신하는데 적절한 컴포넌트들 및 인터페이스들을 포함할 수 있다. 유선 통신 매체의 예들은 와이어, 케이블, 금속선, PCB(printed circuit board), 백플레인, 스위치 패브릭, 반도체 물질, 트위스트 페어 와이어(twisted-pair wire), 동축 케이블, 광섬유 등을 포함할 수 있다.
플랫폼(902)은 정보를 통신하기 위해 하나 이상의 논리적 또는 물리적 채널을 확립할 수 있다. 정보는 미디어 정보 및 제어 정보를 포함할 수 있다. 미디어 정보는 사용자에게 의도된 컨텐츠를 표현하는 임의의 데이터를 지칭할 수 있다. 컨텐츠의 예들은 예를 들어, 음성 대화, 화상회의, 스트리밍 비디오, 전자 메일("이메일") 메시지, 음성 메일 메시지, 영숫자 심볼들, 그래픽, 이미지, 비디오, 텍스트 등으로부터의 데이터를 포함할 수 있다. 음성 대화로부터의 데이터는 예를 들어 스피치 정보(speech information), 침묵 기간, 배경 잡음, 컴포트 잡음(comfort noise), 톤들 등일 수 있다. 제어 정보는 자동화 시스템을 위해 의도된 커맨드들, 인스트럭션들 또는 제어 단어들을 표현하는 임의의 데이터를 지칭할 수 있다. 예를 들어, 제어 정보를 사용하여 시스템을 통해 미디어 정보를 라우팅하거나, 사전결정된 방식으로 미디어 정보를 처리하도록 노드에게 지시할 수 있다. 그러나, 본 실시예들은 도 9에 도시되거나 설명된 요소들 또는 컨텍스트로 한정되지 않는다.
전술한 바와 같이, 시스템(900)은 다양한 물리적 스타일 또는 폼 팩터로 구체화될 수 있다. 도 10은 시스템(900)이 구체화될 수 있는 소형 폼 팩터 디바이스(1000)의 실시예들을 예시한 것이다. 실시예들에서, 예를 들어, 디바이스(1000)는 무선 능력들을 가진 모바일 컴퓨팅 디바이스로서 구현될 수 있다. 모바일 컴퓨팅 디바이스는 프로세싱 시스템 및 예를 들어 하나 이상의 배터리와 같은 모바일 전력 소스 또는 서플라이를 가진 임의의 디바이스를 지칭할 수 있다.
전술한 바와 같이, 모바일 컴퓨팅 디바이스의 예는 개인용 컴퓨터(PC), 랩탑 컴퓨터, 울트라-랩탑 컴퓨터, 태블릿, 터치 패드, 휴대용 컴퓨터, 핸드헬드 컴퓨터, 팜탑 컴퓨터, PDA(personal digital assistant), 셀룰러 전화기, 셀룰러 전화기/PDA의 조합, 텔레비전, 스마트 디바이스(예컨대, 스마트 폰, 스마트 태블릿 또는 스마트 텔레비전), MID(mobile internet device), 메시징 디바이스, 데이터 통신 디바이스 등을 포함할 수 있다.
모바일 컴퓨팅 디바이스의 예들은 또한 손목 컴퓨터, 핑거 컴퓨터, 링 컴퓨터, 아이글래스 컴퓨터, 벨트-클립 컴퓨터, 암-밴드 컴퓨터, 슈 컴퓨터들, 클로딩(clothing) 컴퓨터들, 및 다른 웨어러블 컴퓨터들과 같은, 사람이 착용하도록 구성되는 컴퓨터들을 포함할 수 있다. 실시예들에서, 예를 들어, 모바일 컴퓨팅 디바이스는 음성 통신 및/또는 데이터 통신뿐만 아니라, 컴퓨터 애플리케이션들을 실행할 수 있는 스마트 폰으로서 구현될 수 있다. 일부 실시예들은 예시적으로 스마트 폰으로서 구현되는 모바일 컴퓨팅 디바이스로 설명될 수 있지만, 다른 실시예들은 다른 무선 모바일 컴퓨팅 디바이스들을 이용하여 구현될 수도 있다는 것을 알 수 있다. 본 실시예들은 이러한 컨텍스트로 한정되지 않는다.
도 10에 도시된 바와 같이, 디바이스(1000)는 하우징(1002), 디스플레이(1004), 입력/출력(I/O) 디바이스(1006), 및 안테나(1008)를 포함할 수 있다. 디바이스(1000)는 또한 내비게이션 특징들(1012)을 포함할 수 있다. 디스플레이(1004)는 모바일 컴퓨팅 디바이스에 적절한 정보(1010)를 디스플레이하기 위한 임의의 적절한 디스플레이를 포함할 수 있다. I/O 디바이스(1006)는 모바일 컴퓨팅 디바이스에 정보를 입력하기 위한 임의의 적절한 I/O 디바이스를 포함할 수 있다. I/O 디바이스(1006)에 대한 예들은 영숫자 키보드, 숫자 키패드, 터치 패드, 입력 키들, 버튼들, 스위치들, 로커 스위치들, 마이크로폰들, 스피커들, 음성 인식 디바이스 및 소프트웨어 등을 포함할 수 있다. 정보는 또한 마이크로폰에 의해 디바이스(1000)에 입력될 수 있다. 이러한 정보는 음성 인식 디바이스에 의해 디지털화될 수 있다. 실시예들은 이러한 컨텍스트로 한정되지 않는다.
다양한 실시예들은 하드웨어 요소들, 소프트웨어 요소들, 또는 둘의 결합을 이용하여 구현될 수 있다. 하드웨어 요소들의 예들은 프로세서들, 마이크로프로세서들, 회로들, 회로 요소들(예를 들어, 트랜지스터들, 저항들, 캐패시터들, 인덕터들 등), 집적 회로들, ASIC(application specific integrated circuit), PLD(programmable logic device), DSP(digital signal processor), FPGA(field programmable gate array), 논리 게이트들, 레지스터들, 반도체 디바이스, 칩들, 마이크로칩들, 칩셋들 등을 포함할 수 있다. 소프트웨어의 예들은 소프트웨어 컴포넌트들, 프로그램들, 애플리케이션들, 컴퓨터 프로그램들, 애플리케이션 프로그램들, 시스템 프로그램들, 머신 프로그램들, 오퍼레이팅 시스템 소프트웨어, 미들웨어, 펌웨어, 소프트웨어 모듈들, 루틴들, 서브루틴들, 함수들, 방법들, 프로시저들, 소프트웨어 인터페이스들, API(application program interface), 인스트럭션 세트들, 컴퓨팅 코드, 컴퓨터 코드, 코드 세그먼트들, 컴퓨터 코드 세그먼트들, 워드들, 값들, 심볼들, 또는 그의 임의의 조합을 포함할 수 있다. 실시예가 하드웨어 요소들 및/또는 소프트웨어 요소들을 이용하여 구현되는지를 결정하는 것은 원하는 계산 속도, 전력 레벨들, 열 내성, 프로세싱 사이클 버짓(processing cycle budget), 입력 데이터 레이트, 출력 데이터 레이트, 메모리 리소스, 데이터 버스 속도 및 다른 설계 또는 성능 제약들과 같은 임의의 수의 인자들에 따라 다를 수 있다.
적어도 하나의 실시예의 하나 이상의 양태들은 머신에 의해 판독될 때, 머신으로 하여금, 본 명세서에 설명된 기술들을 수행하도록 하는, 프로세서 내의 다양한 로직을 표현하는 머신 판독 가능한 매체에 저장되는 대표적 인스트럭션들에 의해 구현될 수 있다. "IP 코어들"로서 알려진 이러한 표현들(representations)은 유형의 머신 판독 가능한 매체에 저장될 수 있고 로직 또는 프로세서를 실제로 만드는 제조 머신들 내로 로드하기 위해 다양한 고객들 또는 제조 설비들에 공급될 수도 있다.
본 명세서에서 설명된 기술들은 동적 커패시턴스 클램핑에 영향을 미침으로써 그래픽 성능 및 전력 사용을 상당히 개선시키게 된다. 본 명세서에서 제공되는 솔루션들은 그래픽 활성도가 낮을 확률이 높을 경우, 프레임의 시작에서 적극적인 클램핑을 가능하게 한다. 워크로드 활성도가 일정한 레벨 이상으로 증가하고 그것이 지속되면, 전압이 증가될 수 있으며, 더 적은 적극적인 클램핑이 사용될 수 있다. 프레임의 동적 초기 부분에 대한 더 낮은 전압 레벨에서의 실행은, 전력-성능 효율을 상당히 개선시키게 된다. 본 명세서에서 사용된 특정 예들 및 시나리오들은 이해의 편의를 위한 것이며, 한정적인 것이 아니다. 본 명세서에서 설명된 특징들은 다수의 다른 컨텍스트들에서 사용될 수도 있다는 것이, 당업자에게는 이해될 것이다. 예를 들어, 본 명세서에서 설명된 개념들은 중앙 프로세싱 유닛(CPU)에 적용될 수도 있다.
본 명세서에서 설명한 기술들을 사용하는 각종 이점들이 존재한다. 일 이점은 앞서의 솔루션들을 통한 전력-성능 효율에서의 개선이다. 본 명세서에서 설명된 솔루션들은 워크로드 활성 거동에 대한 인프라-프레임 지식을 사용하여 전력-절감 결정을 행한다. 앞서의 솔루션들은 이러한 방식으로 본 지식에 영향을 미치지 않는다. 다수의 다른 이점들이 또한 고려될 수 있다.
다음의 예들은 다른 실시예들에 관한 것이다.
예 1은 제 1 전압으로 설정된 전압 및 제 1 클램핑 임계값으로 설정된 클램핑 임계값으로 그래픽 워크로드(graphics workload)를 개시하도록 구성된 그래픽 워크로드 초기화 유닛 - 상기 클램핑 임계값은 상기 클램핑 임계값을 초과하는 지속적인 동적 커패시턴스의 듀레이션(duration)이 모니터링되는 동적 커패시턴스의 최소 레벨임 - ; 동적 커패시턴스의 버스트(burst)들이 상기 제 1 클램핑 임계값을 초과하여 유지되는 시간을 모니터링하도록 구성된 동적 커패시턴스 모니터; 및 상기 동적 커패시턴스가 사전결정된 시간 임계값보다 큰 시간 동안에 상기 제 1 클램핑 임계값을 초과하여 유지되는 경우, 다음의 평가 구간 경계에서 및 프레임의 끝까지, 상기 전압을 제 2 전압으로 설정하고 상기 클램핑 임계값을 제 2 클램핑 임계값으로 설정하도록 구성된 전압 조정기로 구성되는 그래픽 프로세싱 시스템을 포함할 수 있다.
예 2는 예 1의 대상을 포함할 수 있으며, 상기 동적 커패시턴스가 상기 사전결정된 시간 임계값보다 큰 시간 동안에 상기 제 1 클램핑 임계값을 초과하여 유지되는 경우, 상기 전압 조정기는, 상기 제 1 전압에서 상기 제 2 전압으로 변경하도록 하는 요청을 제어 유닛에게 전송하고; 또한 상기 제 1 클램핑 임계값에서 상기 제 2 클램핑 임계값으로 변경하기 이전에, 상기 제어 유닛으로부터의 응답을 대기하도록 더 구성된다.
예 3은 예 1 또는 예 2의 대상을 포함할 수 있으며, 상기 제 1 전압 및 상기 제 2 전압 그리고 상기 제 1 클램핑 임계값 및 상기 제 2 클램핑 임계값에 대한 값들이 프로그래밍될 수 있고, 그 각각은 상기 그래픽 프로세서에 의해 액세스 가능한 하드웨어 레지스터, 소프트웨어 드라이버, 또는 룩업 테이블 중의 하나 이상에 배치된다.
예 4는 예 1 내지 예 3 중의 임의의 것의 대상을 포함할 수 있으며, 초기 프레임의 시작에서부터 상기 사전결정된 시간 임계값을 초과하는 시점까지의 클럭 사이클들의 수가 사전결정된 최소의 클럭 사이클들보다 작은 경우에, 상기 전압 조정기는, 상기 초기 프레임의 끝에서, 사전결정된 수의 후속 프레임들의 프로세싱을 위하여 상기 제 2 클램핑 임계값 및 상기 제 2 전압을 유지하도록 더 구성된다.
예 5는 예 1 내지 예 3 중의 어느 것의 대상을 포함할 수 있으며, 상기 전압 조정기는, 다음 프레임에서 계속되는 프로세싱 이전에, 상기 프레임의 끝에서, 상기 제 2 전압에서 상기 제 1 전압으로 변경하고 또한 상기 제 2 클램핑 임계값에서 상기 제 1 클램핑 임계값으로 변경하도록 더 구성된다.
예 6은 예 5의 대상을 포함할 수 있으며, 초기 프레임의 시작에서부터 상기 사전결정된 시간 임계값을 초과하는 시점까지의 클럭 사이클들의 수가 사전결정된 최소의 클럭 사이클들보다 작지 않은 경우에, 상기 동적 커패시턴스 모니터 및 상기 전압 조정기는, 상기 초기 프레임의 끝에서, 상기 전압 조정기에 의한 필요한 만큼의 조정으로 사전결정된 수의 후속 프레임들에 대한 그래픽 프로세싱을 계속하도록 더 구성된다.
예 7에서는, 예1 내지 예 6 중의 임의의 것이 프로세서; 상기 프로세서 및 네트워크와 통신하는 통신 인터페이스; 상기 프로세서와 통신하는 메모리; 내비게이션 디바이스 및 디스플레이를 포함하며, 상기 프로세서와 통신하는 사용자 인터페이스; 및 애플리케이션 로직을 저장하며, 상기 프로세서와 통신하는 스토리지를 선택적으로 포함할 수 있으며, 상기 프로세서는 상기 애플리케이션 로직을 상기 스토리지에서 상기 메모리 내로 로딩(loading)하고, 상기 애플리케이션 로직을 실행하도록 구성되며, 상기 애플리케이션 로직의 실행은 상기 사용자 인터페이스를 통해 그래픽을 제공하는 것을 포함한다.
예 8은 컴퓨터 프로그램 로직이 저장된 적어도 하나의 컴퓨터 판독가능 매체를 포함하는, 그래픽 프로세싱을 위한 적어도 하나의 컴퓨터 프로그램 제품을 포함할 수 있으며, 상기 컴퓨터 프로그램 로직은, 프로세서로 하여금, 제 1 전압으로 설정된 전압 및 제 1 클램핑 임계값으로 설정된 클램핑 임계값으로 그래픽 워크로드를 개시하게 하는 로직 - 상기 클램핑 임계값은 상기 클램핑 임계값을 초과하는 지속적인 동적 커패시턴스의 듀레이션이 모니터링되는 동적 커패시턴스의 최소 레벨임 - ; 상기 프로세서로 하여금, 동적 커패시턴스의 버스트들이 상기 제 1 클램핑 임계값을 초과하여 유지되는 시간을 모니터링하게 하는 로직; 및 상기 프로세서로 하여금, 상기 동적 커패시턴스가 사전결정된 시간 임계값보다 큰 시간 동안에 상기 제 1 클램핑 임계값을 초과하여 유지되는 경우, 다음의 평가 구간 경계에서 및 프레임의 끝까지, 상기 전압을 제 2 전압으로 설정하게 하고 상기 클램핑 임계값을 제 2 클램핑 임계값으로 설정하게 하는 로직을 포함한다.
예 9는 예 8의 대상을 포함할 수 있으며, 상기 전압을 제 2 전압으로 설정하게 하고 상기 클램핑 임계값을 제 2 클램핑 임계값으로 설정하게 하는 상기 로직은, 상기 동적 커패시턴스가 상기 사전결정된 시간 임계값보다 큰 시간 동안에 상기 제 1 클램핑 임계값을 초과하여 유지되는 경우, 상기 제 1 전압에서 상기 제 2 전압으로 변경하도록 하는 요청을 제어 유닛에게 전송하게 하고; 또한 상기 제 1 클램핑 임계값에서 상기 제 2 클램핑 임계값으로 변경하기 이전에, 상기 제어 유닛으로부터의 응답을 대기하게 하는 로직을 더 포함한다.
예 10은 예 8 또는 예 9의 대상을 포함할 수 있으며, 상기 제 1 전압 및 상기 제 2 전압 그리고 상기 제 1 클램핑 임계값 및 상기 제 2 클램핑 임계값에 대한 값들이 프로그래밍될 수 있다.
예 11은 예 8 내지 예 10 중의 임의의 것의 대상을 포함할 수 있으며, 상기 전압을 제 2 전압으로 설정하게 하고 상기 클램핑 임계값을 제 2 클램핑 임계값으로 설정하게 하는 상기 로직은, 초기 프레임의 시작에서부터 상기 사전결정된 시간 임계값을 초과하는 시점까지의 클럭 사이클들의 수가 사전결정된 최소의 클럭 사이클들보다 작은 경우, 상기 초기 프레임의 끝에서, 사전결정된 수의 후속 프레임들의 프로세싱을 위하여 상기 제 2 클램핑 임계값 및 상기 제 2 전압을 유지하게 하는 로직을 더 포함한다.
예 12는 예 8 내지 예 10 중의 임의의 것의 대상을 포함할 수 있으며, 상기 전압을 제 2 전압으로 설정하게 하고 상기 클램핑 임계값을 제 2 클램핑 임계값으로 설정하게 하는 상기 로직은, 다음 프레임에서 계속되는 프로세싱 이전에, 상기 프레임의 끝에서, 상기 제 2 전압에서 상기 제 1 전압으로 변경하게 하고 또한 상기 제 2 클램핑 임계값에서 상기 제 1 클램핑 임계값으로 변경하게 하는 로직을 더 포함한다.
예 13은 예 12의 대상을 포함할 수 있으며, 동적 커패시턴스의 버스트들이 상기 제 1 클램핑 임계값을 초과하여 유지되는 시간을 모니터링하게 하는 상기 로직 및 상기 전압을 제 2 전압으로 설정하게 하고 상기 클램핑 임계값을 제 2 클램핑 임계값으로 설정하게 하는 상기 로직 각각은, 초기 프레임의 시작에서부터 상기 사전결정된 시간 임계값을 초과하는 시점까지의 클럭 사이클들의 수가 사전결정된 최소의 클럭 사이클들보다 작지 않은 경우, 상기 초기 프레임의 끝에서, 필요한 만큼의 상기 전압 및 상기 클램핑 임계값에 대한 조정으로 사전결정된 수의 후속 프레임들에 대한 그래픽 프로세싱을 계속하게 하는 로직을 더 포함한다.
예 14는 제 1 전압으로 설정된 전압 및 제 1 클램핑 임계값으로 설정된 클램핑 임계값으로 그래픽 워크로드를 개시하는 수단 - 상기 클램핑 임계값은 상기 클램핑 임계값을 초과하는 지속적인 동적 커패시턴스의 듀레이션이 모니터링되는 동적 커패시턴스의 최소 레벨임 - ; 동적 커패시턴스의 버스트들이 상기 제 1 클램핑 임계값을 초과하여 유지되는 시간을 모니터링하는 수단; 및 상기 동적 커패시턴스가 사전결정된 시간 임계값보다 큰 시간 동안에 상기 제 1 클램핑 임계값을 초과하여 유지되는 경우, 다음의 평가 구간 경계에서 및 프레임의 끝까지, 상기 전압을 제 2 전압으로 설정하고 상기 클램핑 임계값을 제 2 클램핑 임계값으로 설정하는 수단을 포함하는 그래픽 프로세싱 장치를 포함할 수 있다.
예 15는 예 14의 대상을 포함할 수 있으며, 상기 전압을 제 2 전압으로 설정하고 상기 클램핑 임계값을 제 2 클램핑 임계값으로 설정하는 상기 수단은, 상기 동적 커패시턴스가 상기 사전결정된 시간 임계값보다 큰 시간 동안에 상기 제 1 클램핑 임계값을 초과하여 유지되는 경우, 상기 제 1 전압에서 상기 제 2 전압으로 변경하도록 하는 요청을 제어 유닛에게 전송하는 수단; 및 상기 제 1 클램핑 임계값에서 상기 제 2 클램핑 임계값으로 변경하기 이전에, 상기 제어 유닛으로부터의 응답을 대기하는 수단을 더 포함한다.
예 16은 예 14 또는 예 15의 대상을 포함할 수 있으며, 상기 제 1 전압 및 상기 제 2 전압 그리고 상기 제 1 클램핑 임계값 및 상기 제 2 클램핑 임계값에 대한 값들은 프로그래밍될 수 있다.
예 17은 예 14 내지 예 16 중의 임의의 것의 대상을 포함할 수 있으며, 상기 전압을 제 2 전압으로 설정하고 상기 클램핑 임계값을 제 2 클램핑 임계값으로 설정하는 상기 수단은, 초기 프레임의 시작에서부터 상기 사전결정된 시간 임계값을 초과하는 시점까지의 클럭 사이클들의 수가 사전결정된 최소의 클럭 사이클들보다 작은 경우, 상기 초기 프레임의 끝에서, 사전결정된 수의 후속 프레임들의 프로세싱을 위하여 상기 제 2 클램핑 임계값 및 상기 제 2 전압을 유지하는 수단을 더 포함한다.
예 18은 예 14 내지 예 16 중의 임의의 것의 대상을 포함할 수 있으며, 상기 전압을 제 2 전압으로 설정하고 상기 클램핑 임계값을 제 2 클램핑 임계값으로 설정하는 상기 수단은, 다음 프레임에서 계속되는 프로세싱 이전에, 상기 프레임의 끝에서, 상기 제 2 전압에서 상기 제 1 전압으로 변경하고 또한 상기 제 2 클램핑 임계값에서 상기 제 1 클램핑 임계값으로 변경하는 수단을 더 포함한다.
예 19는 예18의 대상을 포함할 수 있으며, 동적 커패시턴스의 버스트들이 상기 제 1 클램핑 임계값을 초과하여 유지되는 시간을 모니터링하는 상기 수단 및 상기 전압을 제 2 전압으로 설정하고 상기 클램핑 임계값을 제 2 클램핑 임계값으로 설정하는 상기 수단 각각은, 초기 프레임의 시작에서부터 상기 사전결정된 시간 임계값을 초과하는 시점까지의 클럭 사이클들의 수가 사전결정된 최소의 클럭 사이클들보다 작지 않은 경우, 상기 초기 프레임의 끝에서, 필요한 만큼의 상기 전압 및 상기 클램핑 임계값에 대한 조정으로 사전결정된 수의 후속 프레임들에 대한 그래픽 프로세싱을 계속하는 수단을 포함한다.
예 20은 그래픽 프로세서에 의해, 제 1 전압으로 설정된 전압 및 제 1 클램핑 임계값으로 설정된 클램핑 임계값으로 그래픽 워크로드를 개시하는 단계 - 상기 클램핑 임계값은 상기 클램핑 임계값을 초과하는 지속적인 동적 커패시턴스의 듀레이션이 모니터링되는 동적 커패시턴스의 최소 레벨임 - ; 상기 그래픽 프로세서에 의해, 동적 커패시턴스의 버스트들이 상기 제 1 클램핑 임계값을 초과하여 유지되는 시간을 모니터링하는 단계; 및 상기 동적 커패시턴스가 사전결정된 시간 임계값보다 큰 시간 동안에 상기 제 1 클램핑 임계값을 초과하여 유지되는 경우, 다음의 평가 구간 경계에서 및 프레임의 끝까지, 상기 전압을 제 2 전압으로 설정하고 상기 클램핑 임계값을 제 2 클램핑 임계값으로 설정하는 단계로 구성되는 그래픽 프로세싱 방법을 포함할 수 있다.
예 21은 예 20의 대상을 포함할 수 있으며, 상기 설정하는 단계는, 상기 동적 커패시턴스가 상기 사전결정된 시간 임계값보다 큰 시간 동안에 상기 제 1 클램핑 임계값을 초과하여 유지되는 경우, 상기 제 1 전압에서 상기 제 2 전압으로 변경하도록 하는 요청을 제어 유닛에게 전송하는 단계; 및 상기 제 1 클램핑 임계값에서 상기 제 2 클램핑 임계값으로 변경하기 이전에, 상기 제어 유닛으로부터의 응답을 대기하는 단계를 포함한다.
예 22는 예 20 또는 예 21의 대상을 포함할 수 있으며, 상기 제 1 전압 및 상기 제 2 전압 그리고 상기 제 1 클램핑 임계값 및 상기 제 2 클램핑 임계값에 대한 값들은 프로그래밍될 수 있다.
예 23은 예 20 내지 예 22 중의 임의의 것의 대상을 포함할 수 있으며, 상기 설정하는 단계는, 초기 프레임의 시작에서부터 상기 사전결정된 시간 임계값을 초과하는 시점까지의 클럭 사이클들의 수가 사전결정된 최소의 클럭 사이클들보다 작은 경우, 상기 초기 프레임의 끝에서, 사전결정된 수의 후속 프레임들의 프로세싱을 위하여 상기 제 2 클램핑 임계값 및 상기 제 2 전압을 유지하는 단계를 포함한다.
예 24는 예 20 내지 예 22 중의 임의의 것의 대상을 포함할 수 있으며, 상기 설정하는 단계는, 다음 프레임에서 계속되는 프로세싱 이전에, 상기 프레임의 끝에서, 상기 제 2 전압에서 상기 제 1 전압으로 변경하고 또한 상기 제 2 클램핑 임계값에서 상기 제 1 클램핑 임계값으로 변경하는 단계를 포함한다.
예 25에서는, 예 24가 초기 프레임의 시작에서부터 상기 사전결정된 시간 임계값을 초과하는 시점까지의 클럭 사이클들의 수가 사전결정된 최소의 클럭 사이클들보다 작지 않은 경우, 상기 초기 프레임의 끝에서, 필요한 만큼의 상기 전압 및 상기 클램핑 임계값에 대한 조정으로 사전결정된 수의 후속 프레임들에 대한 그래픽 프로세싱을 계속하는 단계를 선택적으로 포함할 수 있다.
예 26은 컴퓨팅 디바이스에서 실행되는 것에 대한 응답으로, 상기 컴퓨팅 디바이스로 하여금 예 20 내지 예 25 중의 임의의 것에 따른 방법을 수행하게 하는 복수의 인스트럭션들로 구성되는 적어도 하나의 머신 판독가능 매체를 포함할 수 있다.
예 27은 예 20 내지 예 25 중의 임의의 것의 방법을 수행하도록 구성된 장치를 포함할 수 있다.
예 28은 예 20 내지 예 25 중의 임의의 것의 방법을 수행하는 컴퓨터 시스템을 포함할 수 있다.
예 29는 예 20 내지 예 25 중의 임의의 것의 방법을 수행하는 머신을 포함할 수 있다.
예 30은 예 20 내지 예 25 중의 임의의 것의 방법을 수행하는 수단으로 구성된 장치를 포함할 수 있다.
예 31은 예 20 내지 예 25 중의 임의의 것의 방법을 수행하도록 구성된 메모리 및 칩셋으로 구성된 컴퓨팅 디바이스를 포함할 수 있다.
방법들 및 시스템들은 기능들, 특징들, 및 그들의 관계들을 예시한 기능적 블록들의 보조로 본 명세서에 개시되어 있다. 이들 기능적 블록들의 경계들 중의 적어도 일부는 설명의 편의를 위해 본 명세서에서 임의로 규정되어 있다. 특정 기능들 및 그것의 관계들이 적절히 수행된다면, 다른 경계들이 규정될 수도 있다.
다양한 실시예들이 본 명세서에 개시되어 있지만, 이들은 한정이 아닌 예로서만 제공되었다는 것을 이해해야 한다. 본 명세서에 개시된 방법들 및 시스템들의 범위를 일탈하지 않는다면, 형태 및 세부사항에 있어서 다양한 변화가 이루어질 수 있음이 당업자에게는 명백할 것이다. 따라서, 청구범위의 정도 및 범위는 본 명세서에 개시된 예시적 실시예들 중의 임의의 것에 의해 제한되어서는 아니 된다.

Claims (19)

  1. 그래픽 프로세서 및 메모리를 포함하는 장치로서,
    상기 그래픽 프로세서는
    제 1 프레임의 시작에서 상기 그래픽 프로세서의 전압을 제 1 전압으로 설정하고 상기 그래픽 프로세서의 클램핑 메커니즘의 동적 커패시턴스 임계값을 제 1 동적 커패시턴스 임계값으로 설정하며,
    상기 제 1 프레임의 프로세싱 동안에 상기 그래픽 프로세서의 동적 커패시턴스의 측정값을 상기 제 1 동적 커패시턴스 임계값과 비교하고,
    상기 제 1 프레임의 프로세싱 동안에 상기 그래픽 프로세서의 동적 커패시턴스의 측정값이 상기 제 1 동적 커패시턴스 임계값을 초과하면, 상기 그래픽 프로세서의 클램핑 메커니즘을 활성화하고,
    상기 제 1 프레임의 프로세싱 동안에 소정 시간 기간에 대하여 상기 동적 커패시턴스의 측정값이 상기 제 1 동적 커패시턴스 임계값을 초과하면, 상기 그래픽 프로세서의 전압을 제 2 전압으로 증가시키고 상기 동적 커패시턴스 임계값을 제 2 동적 커패시턴스 임계값으로 증가시키도록 구성되는
    장치.
  2. 제 1 항에 있어서,
    상기 그래픽 프로세서는, 상기 제 1 프레임의 프로세싱 동안에 소정 시간 기간에 대하여 상기 동적 커패시턴스의 측정값이 상기 제 1 동적 커패시턴스 임계값을 초과하면, 전압 조정기에게 상기 그래픽 프로세서의 전압을 상기 제 2 전압으로 증가시키도록 요청하고, 상기 전압 조정기가 상기 요청에 응답한 후에 상기 동적 커패시턴스 임계값을 상기 제 2 동적 커패시턴스 임계값으로 증가시키도록 더 구성되는
    장치.
  3. 제 1 항에 있어서,
    상기 그래픽 프로세서는 하드웨어 레지스터, 소프트웨어 드라이버 및 룩업 테이블로부터 상기 제 1 전압 및 상기 제 2 전압의 값들을 검색하고 상기 제 1 동적 커패시턴스 임계값 및 상기 제 2 동적 커패시턴스 임계값을 검색하도록 더 구성되는
    장치.
  4. 제 1 항에 있어서,
    상기 그래픽 프로세서는,
    상기 제 1 프레임의 시작의 소정 수의 클럭 사이클 내에서 상기 소정 시간 기간에 대하여 상기 동적 커패시턴스의 측정값이 상기 제 1 동적 커패시턴스 임계값을 초과하면, 제 2 프레임의 프로세싱 동안에 상기 그래픽 프로세서의 전압을 상기 제 2 전압으로 유지하고 상기 동적 커패시턴스 임계값을 상기 제 2 동적 커패시턴스 임계값으로 유지하며,
    상기 제 1 프레임의 시작의 소정 수의 클럭 사이클 내에서 상기 소정 시간 기간에 대하여 상기 동적 커패시턴스의 측정값이 상기 제 1 동적 커패시턴스 임계값을 초과하지 않으면, 상기 제 2 프레임의 시작에서 상기 그래픽 프로세서의 전압을 상기 제 1 전압으로 재설정하고 상기 동적 커패시턴스 임계값을 상기 제 1 동적 커패시턴스 임계값으로 재설정하도록 더 구성되는
    장치.
  5. 제 1 항에 있어서,
    상기 그래픽 프로세서는,
    복수의 프레임들의 세트를 상기 그래픽 프로세서의 워크로드에 기초하여 선택하고 - 상기 선택된 프레임들은 상기 제 1 프레임과 상기 제 1 프레임에 후속하는 하나 이상의 프레임을 포함함 -,
    상기 제 1 프레임의 시작의 소정 수의 클럭 내에서 상기 소정 기간에 대하여 상기 동적 커패시턴스의 측정값이 상기 제 1 동적 커패시턴스 임계값을 초과하면 비트를 설정하며,
    상기 비트가 각각의 프레임의 시작에 앞서서 설정되지 않는 각각의 후속하는 선택된 프레임에 대해, 상기 비트가 상기 후속하는 프레임의 시작에 앞서 설정되었다면 상기 후속하는 프레임의 프로세싱 동안에 상기 그래픽 프로세서의 전압을 상기 제 2 전압으로 유지하고 상기 동적 커패시턴스 임계값을 상기 제 2 동적 커패시턴스 임계값으로 유지하도록 더 구성되는
    장치.
  6. 제 5 항에 있어서,
    상기 그래픽 프로세서는, 상기 비트가 각각의 프레임의 시작에 앞서서 설정되지 않는 각각의 후속하는 선택된 프레임에 대하여,
    상기 후속하는 프레임의 시작에서 상기 그래픽 프로세서의 전압을 상기 제 1 전압으로 설정하고 상기 동적 커패시턴스 임계값을 상기 제 1 동적 커패시턴스 임계값으로 설정하며,
    상기 후속하는 프레임의 프로세싱 동안에 소정 시간 기간에 대하여 상기 동적 커패시턴스의 측정값이 상기 제 1 동적 커패시턴스 임계값을 초과하면, 상기 그래픽 프로세서의 전압을 상기 제 2 전압으로 증가시키고 상기 동적 커패시턴스 임계값을 상기 제 2 동적 커패시턴스 임계값으로 증가시키며,
    상기 후속하는 프레임의 시작의 소정 수의 클럭 내에서 상기 소정 기간에 대하여 상기 동적 커패시턴스의 측정값이 상기 제 1 동적 커패시턴스 임계값을 초과하면 상기 비트를 설정하도록 더 구성되는
    장치.
  7. 제 1 항에 있어서,
    프로세서 및 메모리와,
    상기 프로세서와 통신 네트워크 사이에서 인터페이스하는 통신 디바이스와,
    사용자와, 상기 프로세서 및 상기 통신 디바이스 중 하나 이상의 사이에서 인터페이스하는 사용자 인터페이스를 더 포함하되,
    상기 프로세서 및 메모리는 애플리케이션을 실행하도록 구성되며,
    상기 그래픽 프로세서는 상기 사용자 인터페이스의 디스플레이에서 상기 애플리케이션의 그래픽을 제공하도록 구성되는
    장치.
  8. 인스트럭션을 포함하는 컴퓨터 프로그램이 기록된 비-일시적 컴퓨터 판독가능 매체로서, 상기 인스트럭션은 그래픽 프로세서로 하여금
    제 1 프레임의 시작에서 상기 그래픽 프로세서의 전압을 제 1 전압으로 설정하고 상기 그래픽 프로세서의 클램핑 메커니즘의 동적 커패시턴스 임계값을 제 1 동적 커패시턴스 임계값으로 설정하며,
    상기 제 1 프레임의 프로세싱 동안에 상기 그래픽 프로세서의 동적 커패시턴스의 측정값을 상기 제 1 동적 커패시턴스 임계값과 비교하고,
    상기 제 1 프레임의 프로세싱 동안에 상기 그래픽 프로세서의 동적 커패시턴스의 측정값이 상기 제 1 동적 커패시턴스 임계값을 초과하면, 상기 그래픽 프로세서의 클램핑 메커니즘을 활성화하고,
    상기 제 1 프레임의 프로세싱 동안에 소정 시간 기간에 대하여 상기 동적 커패시턴스의 측정값이 상기 제 1 동적 커패시턴스 임계값을 초과하면, 상기 그래픽 프로세서의 전압을 제 2 전압으로 증가시키고 상기 동적 커패시턴스 임계값을 제 2 동적 커패시턴스 임계값으로 증가시키도록 하는
    비-일시적 컴퓨터 판독가능 매체.
  9. 제 8 항에 있어서,
    상기 그래픽 프로세서로 하여금, 상기 제 1 프레임의 프로세싱 동안에 소정 시간 기간에 대하여 상기 동적 커패시턴스의 측정값이 상기 제 1 동적 커패시턴스 임계값을 초과하면, 전압 조정기에게 상기 그래픽 프로세서의 전압을 상기 제 2 전압으로 증가시키도록 요청하고, 상기 전압 조정기가 상기 요청에 응답한 후에 상기 동적 커패시턴스 임계값을 상기 제 2 동적 커패시턴스 임계값으로 증가시키도록 하는 인스트럭션을 더 포함하는
    비-일시적 컴퓨터 판독가능 매체.
  10. 제 8 항에 있어서,
    상기 그래픽 프로세서로 하여금, 하드웨어 레지스터, 소프트웨어 드라이버 및 룩업 테이블로부터 상기 제 1 전압 및 상기 제 2 전압의 값들을 검색하고 상기 제 1 동적 커패시턴스 임계값 및 상기 제 2 동적 커패시턴스 임계값을 검색하도록 하는 인스트럭션을 더 포함하는
    비-일시적 컴퓨터 판독가능 매체.
  11. 제 8 항에 있어서,
    상기 그래픽 프로세서로 하여금,
    상기 제 1 프레임의 시작의 소정 수의 클럭 사이클 내에서 상기 소정 시간 기간에 대하여 상기 동적 커패시턴스의 측정값이 상기 제 1 동적 커패시턴스 임계값을 초과하면, 제 2 프레임의 프로세싱 동안에 상기 그래픽 프로세서의 전압을 상기 제 2 전압으로 유지하고 상기 동적 커패시턴스 임계값을 상기 제 2 동적 커패시턴스 임계값으로 유지하며,
    상기 제 1 프레임의 시작의 소정 수의 클럭 사이클 내에서 상기 소정 시간 기간에 대하여 상기 동적 커패시턴스의 측정값이 상기 제 1 동적 커패시턴스 임계값을 초과하지 않으면, 상기 제 2 프레임의 시작에서 상기 그래픽 프로세서의 전압을 상기 제 1 전압으로 재설정하고 상기 동적 커패시턴스 임계값을 상기 제 1 동적 커패시턴스 임계값으로 재설정하도록 하는 인스트럭션을 더 포함하는
    비-일시적 컴퓨터 판독가능 매체.
  12. 제 8 항에 있어서,
    상기 그래픽 프로세서로 하여금,
    복수의 프레임들의 세트를 상기 그래픽 프로세서의 워크로드에 기초하여 선택하고 - 상기 선택된 프레임들은 상기 제 1 프레임과 상기 제 1 프레임에 후속하는 하나 이상의 프레임을 포함함 -,
    상기 제 1 프레임의 시작의 소정 수의 클럭 내에서 상기 소정 기간에 대하여 상기 동적 커패시턴스의 측정값이 상기 제 1 동적 커패시턴스 임계값을 초과하면 비트를 설정하며,
    상기 비트가 각각의 프레임의 시작에 앞서서 설정되지 않는 각각의 후속하는 선택된 프레임에 대해, 상기 비트가 상기 후속하는 프레임의 시작에 앞서 설정되었다면 상기 후속하는 프레임의 프로세싱 동안에 상기 그래픽 프로세서의 전압을 상기 제 2 전압으로 유지하고 상기 동적 커패시턴스 임계값을 상기 제 2 동적 커패시턴스 임계값으로 유지하도록 하는 인스트럭션을 더 포함하는
    비-일시적 컴퓨터 판독가능 매체.
  13. 제 12 항에 있어서,
    상기 그래픽 프로세서로 하여금,
    상기 비트가 각각의 프레임의 시작에 앞서서 설정되지 않는 각각의 후속하는 선택된 프레임에 대해, 상기 후속하는 프레임의 시작에서 상기 그래픽 프로세서의 전압을 상기 제 1 전압으로 설정하고 상기 동적 커패시턴스 임계값을 상기 제 1 동적 커패시턴스 임계값으로 설정하며,
    상기 후속하는 프레임의 프로세싱 동안에 소정 시간 기간에 대하여 상기 동적 커패시턴스의 측정값이 상기 제 1 동적 커패시턴스 임계값을 초과하면, 상기 그래픽 프로세서의 전압을 상기 제 2 전압으로 증가시키고 상기 동적 커패시턴스 임계값을 상기 제 2 동적 커패시턴스 임계값으로 증가시키며,
    상기 후속하는 프레임의 시작의 소정 수의 클럭 내에서 상기 소정 기간에 대하여 상기 동적 커패시턴스의 측정값이 상기 제 1 동적 커패시턴스 임계값을 초과하면 상기 비트를 설정하도록 하는 인스트럭션을 더 포함하는
    비-일시적 컴퓨터 판독가능 매체.
  14. 그래픽 프로세싱 방법으로서,
    제 1 프레임의 시작에서 그래픽 프로세서의 전압을 제 1 전압으로 설정하고 상기 그래픽 프로세서의 클램핑 메커니즘의 동적 커패시턴스 임계값을 제 1 동적 커패시턴스 임계값으로 설정하는 단계와,
    상기 제 1 프레임의 프로세싱 동안에 상기 그래픽 프로세서의 동적 커패시턴스의 측정값을 상기 제 1 동적 커패시턴스 임계값과 비교하는 단계와,
    상기 제 1 프레임의 프로세싱 동안에 상기 그래픽 프로세서의 동적 커패시턴스의 측정값이 상기 제 1 동적 커패시턴스 임계값을 초과하면, 상기 그래픽 프로세서의 클램핑 메커니즘을 활성화하는 단계와,
    상기 제 1 프레임의 프로세싱 동안에 소정 시간 기간에 대하여 상기 동적 커패시턴스의 측정값이 상기 제 1 동적 커패시턴스 임계값을 초과하면, 상기 그래픽 프로세서의 전압을 제 2 전압으로 증가시키고 상기 동적 커패시턴스 임계값을 제 2 동적 커패시턴스 임계값으로 증가시키는 단계를 포함하는
    그래픽 프로세싱 방법.
  15. 제 14 항에 있어서,
    상기 증가시키는 단계는,
    상기 제 1 프레임의 프로세싱 동안에 소정 시간 기간에 대하여 상기 동적 커패시턴스의 측정값이 상기 제 1 동적 커패시턴스 임계값을 초과하면, 전압 조정기에게 상기 그래픽 프로세서의 전압을 상기 제 2 전압으로 증가시키도록 요청하고, 상기 전압 조정기가 상기 요청에 응답한 후에 상기 동적 커패시턴스 임계값을 상기 제 2 동적 커패시턴스 임계값으로 증가시키는 단계를 포함하는
    그래픽 프로세싱 방법.
  16. 제 14 항에 있어서,
    하드웨어 레지스터, 소프트웨어 드라이버 및 룩업 테이블로부터 상기 제 1 전압 및 상기 제 2 전압의 값들을 검색하고 상기 제 1 동적 커패시턴스 임계값 및 상기 제 2 동적 커패시턴스 임계값을 검색하는 단계를 더 포함하는
    그래픽 프로세싱 방법.
  17. 제 14 항에 있어서,
    상기 제 1 프레임의 시작의 소정 수의 클럭 사이클 내에서 상기 소정 시간 기간에 대하여 상기 동적 커패시턴스의 측정값이 상기 제 1 동적 커패시턴스 임계값을 초과하면, 제 2 프레임의 프로세싱 동안에 상기 그래픽 프로세서의 전압을 상기 제 2 전압으로 유지하고 상기 동적 커패시턴스 임계값을 상기 제 2 동적 커패시턴스 임계값으로 유지하는 단계와,
    상기 제 1 프레임의 시작의 소정 수의 클럭 사이클 내에서 상기 소정 시간 기간에 대하여 상기 동적 커패시턴스의 측정값이 상기 제 1 동적 커패시턴스 임계값을 초과하지 않으면, 상기 제 2 프레임의 시작에서 상기 그래픽 프로세서의 전압을 상기 제 1 전압으로 재설정하고 상기 동적 커패시턴스 임계값을 상기 제 1 동적 커패시턴스 임계값으로 재설정하는 단계를 더 포함하는
    그래픽 프로세싱 방법.
  18. 제 14 항에 있어서,
    복수의 프레임들의 세트를 상기 그래픽 프로세서의 워크로드에 기초하여 선택하는 단계 - 상기 선택된 프레임들은 상기 제 1 프레임과 상기 제 1 프레임에 후속하는 하나 이상의 프레임을 포함함 - 와,
    상기 제 1 프레임의 시작의 소정 수의 클럭 내에서 상기 소정 기간에 대하여 상기 동적 커패시턴스의 측정값이 상기 제 1 동적 커패시턴스 임계값을 초과하면 비트를 설정하는 단계와,
    상기 비트가 각각의 프레임의 시작에 앞서서 설정되지 않는 각각의 후속하는 선택된 프레임에 대해, 상기 비트가 상기 후속하는 프레임의 시작에 앞서 설정되었다면 상기 후속하는 프레임의 프로세싱 동안에 상기 그래픽 프로세서의 전압을 상기 제 2 전압으로 유지하고 상기 동적 커패시턴스 임계값을 상기 제 2 동적 커패시턴스 임계값으로 유지하는 단계를 더 포함하는
    그래픽 프로세싱 방법.
  19. 제 18 항에 있어서,
    상기 비트가 각각의 프레임의 시작에 앞서서 설정되지 않는 각각의 후속하는 프레임에 대하여,
    상기 후속하는 프레임의 시작에서 상기 그래픽 프로세서의 전압을 상기 제 1 전압으로 설정하고 상기 동적 커패시턴스 임계값을 상기 제 1 동적 커패시턴스 임계값으로 설정하는 단계와,
    상기 후속하는 프레임의 프로세싱 동안에 소정 시간 기간에 대하여 상기 동적 커패시턴스의 측정값이 상기 제 1 동적 커패시턴스 임계값을 초과하면, 상기 그래픽 프로세서의 전압을 상기 제 2 전압으로 증가시키고 상기 동적 커패시턴스 임계값을 상기 제 2 동적 커패시턴스 임계값으로 증가시키는 단계와,
    상기 후속하는 프레임의 시작의 소정 수의 클럭 내에서 상기 소정 기간에 대하여 상기 동적 커패시턴스의 측정값이 상기 제 1 동적 커패시턴스 임계값을 초과하면 상기 비트를 설정하는 단계를 더 포함하는
    그래픽 프로세싱 방법.
KR1020160065909A 2013-12-23 2016-05-27 부하 라인 최적화를 위한 그래픽 전압 감소 KR101722413B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/139,031 2013-12-23
US14/139,031 US9514715B2 (en) 2013-12-23 2013-12-23 Graphics voltage reduction for load line optimization

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020140164661A Division KR20150073839A (ko) 2013-12-23 2014-11-24 부하 라인 최적화를 위한 그래픽 전압 감소

Publications (2)

Publication Number Publication Date
KR20160066542A true KR20160066542A (ko) 2016-06-10
KR101722413B1 KR101722413B1 (ko) 2017-04-03

Family

ID=53400682

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020140164661A KR20150073839A (ko) 2013-12-23 2014-11-24 부하 라인 최적화를 위한 그래픽 전압 감소
KR1020160065909A KR101722413B1 (ko) 2013-12-23 2016-05-27 부하 라인 최적화를 위한 그래픽 전압 감소

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020140164661A KR20150073839A (ko) 2013-12-23 2014-11-24 부하 라인 최적화를 위한 그래픽 전압 감소

Country Status (2)

Country Link
US (1) US9514715B2 (ko)
KR (2) KR20150073839A (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9250910B2 (en) 2013-09-27 2016-02-02 Intel Corporation Current change mitigation policy for limiting voltage droop in graphics logic
US9514715B2 (en) 2013-12-23 2016-12-06 Intel Corporation Graphics voltage reduction for load line optimization
US10565079B2 (en) 2017-09-28 2020-02-18 Intel Corporation Determination of idle power state
US11036275B2 (en) 2019-03-29 2021-06-15 Intel Corporation Detection of known workload patterns

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120095442A (ko) * 2009-12-31 2012-08-28 인텔 코오퍼레이션 고효율 실시간 플랫폼 전력 관리 아키텍처를 위한 장치
KR20130124575A (ko) * 2011-03-21 2013-11-14 인텔 코포레이션 멀티-코어 프로세서에서의 전력 소모 관리

Family Cites Families (74)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6172550B1 (en) 1996-08-16 2001-01-09 American Superconducting Corporation Cryogenically-cooled switching circuit
US5953020A (en) 1997-06-30 1999-09-14 Ati Technologies, Inc. Display FIFO memory management system
US6092124A (en) 1998-04-17 2000-07-18 Nvidia Corporation Method and apparatus for accelerating the rendering of images
US6460125B2 (en) 1998-08-07 2002-10-01 Ati Technologies, Inc. Dynamic memory clock control system and method
JP3569661B2 (ja) 2000-06-05 2004-09-22 株式会社スクウェア・エニックス ゲームのプログラムを記録したコンピュータ読み取り可能な記録媒体、ゲーム処理方法およびゲーム処理装置
EP1176496A1 (en) 2000-07-24 2002-01-30 Hewlett-Packard Company, A Delaware Corporation Voltage regulation in an integrated circuit
US7552350B2 (en) 2000-09-27 2009-06-23 Huron Ip Llc System and method for activity or event base dynamic energy conserving server reconfiguration
US7444531B2 (en) 2001-03-05 2008-10-28 Pact Xpp Technologies Ag Methods and devices for treating and processing data
US6990598B2 (en) 2001-03-21 2006-01-24 Gallitzin Allegheny Llc Low power reconfigurable systems and methods
US6817241B2 (en) 2001-05-31 2004-11-16 Ametek, Inc. Point level device with automatic threshold setting
US6718449B2 (en) 2001-07-09 2004-04-06 Sony Corporation System for data transfer between different clock domains, and for obtaining status of memory device during transfer
US6865653B2 (en) 2001-12-18 2005-03-08 Intel Corporation System and method for dynamic power management using data buffer levels
US7634668B2 (en) 2002-08-22 2009-12-15 Nvidia Corporation Method and apparatus for adaptive power consumption
US7882369B1 (en) 2002-11-14 2011-02-01 Nvidia Corporation Processor performance adjustment system and method
US7886164B1 (en) * 2002-11-14 2011-02-08 Nvidia Corporation Processor temperature adjustment system and method
CN100501748C (zh) 2003-10-31 2009-06-17 国际商业机器公司 用于动态系统级频率缩放的方法和装置
EP1555595A3 (en) 2004-01-13 2011-11-23 LG Electronics, Inc. Apparatus for controlling power of processor having a plurality of cores and control method of the same
WO2005106623A1 (ja) 2004-04-28 2005-11-10 Matsushita Electric Industrial Co., Ltd. Cpuクロック制御装置、cpuクロック制御方法、cpuクロック制御プログラム、記録媒体、及び伝送媒体
US7500123B2 (en) 2004-06-28 2009-03-03 Ati Technologies Ulc Apparatus and method for reducing power consumption in a graphics processing device
US7451333B2 (en) 2004-09-03 2008-11-11 Intel Corporation Coordinating idle state transitions in multi-core processors
US7711966B2 (en) 2004-08-31 2010-05-04 Qualcomm Incorporated Dynamic clock frequency adjustment based on processor load
US7634589B2 (en) 2004-09-23 2009-12-15 International Business Machines Corporation Method for controlling peripheral adapter interrupt frequency by estimating processor load in the peripheral adapter
US7426648B2 (en) 2004-09-30 2008-09-16 Intel Corporation Global and pseudo power state management for multiple processing elements
US7386737B2 (en) 2004-11-02 2008-06-10 Intel Corporation Method and apparatus to control temperature of processor
DE102004059996B4 (de) 2004-12-13 2006-10-05 Infineon Technologies Ag Verfahren und Vorrichtung zum Einstellen der Taktfrequenz eines Prozessors
US7502948B2 (en) 2004-12-30 2009-03-10 Intel Corporation Method, system, and apparatus for selecting a maximum operation point based on number of active cores and performance level of each of the active cores
US7800621B2 (en) 2005-05-16 2010-09-21 Ati Technologies Inc. Apparatus and methods for control of a memory controller
KR101108397B1 (ko) 2005-06-10 2012-01-30 엘지전자 주식회사 멀티-코어 프로세서의 전원 제어 장치 및 방법
US7337339B1 (en) 2005-09-15 2008-02-26 Azul Systems, Inc. Multi-level power monitoring, filtering and throttling at local blocks and globally
TWI308838B (en) * 2006-03-06 2009-04-11 Sunplus Technology Co Ltd Method for outputting digital video broadcast data and digital video broadcast receiving box
US7861068B2 (en) 2006-03-07 2010-12-28 Intel Corporation Method and apparatus for using dynamic workload characteristics to control CPU frequency and voltage scaling
US7574613B2 (en) 2006-03-14 2009-08-11 Microsoft Corporation Scaling idle detection metric for power management on computing device
US7725747B2 (en) 2006-03-29 2010-05-25 Intel Corporation Methods and apparatus to perform power management in processor systems
US8250394B2 (en) 2006-03-31 2012-08-21 Stmicroelectronics International N.V. Varying the number of generated clock signals and selecting a clock signal in response to a change in memory fill level
US7636864B2 (en) 2006-05-03 2009-12-22 Intel Corporation Mechanism for adaptively adjusting a direct current loadline in a multi-core processor
US7783905B2 (en) 2006-06-13 2010-08-24 Via Technologies Inc. Method for reducing power consumption of a computer system in the working state
US7650518B2 (en) 2006-06-28 2010-01-19 Intel Corporation Method, apparatus, and system for increasing single core performance in a multi-core microprocessor
US7685445B2 (en) 2006-06-29 2010-03-23 Intel Corporation Per die voltage programming for energy efficient integrated circuit (IC) operation
US7900069B2 (en) 2007-03-29 2011-03-01 Intel Corporation Dynamic power reduction
US7868479B2 (en) 2007-06-27 2011-01-11 Qualcomm Incorporated Power gating for multimedia processing power management
US8370663B2 (en) 2008-02-11 2013-02-05 Nvidia Corporation Power management with dynamic frequency adjustments
WO2010035315A1 (ja) 2008-09-24 2010-04-01 富士通株式会社 マルチコアcpuにおける消費電力制御方法,消費電力制御プログラム及び情報処理システム
JP5256967B2 (ja) 2008-09-26 2013-08-07 富士通株式会社 動的再構成支援プログラム、動的再構成支援装置および動的再構成支援方法
US8402290B2 (en) 2008-10-31 2013-03-19 Intel Corporation Power management for multiple processor cores
WO2010082085A1 (en) * 2009-01-19 2010-07-22 Freescale Semiconductor, Inc. Capacitance sensing circuit and method of capacitance sensing
US8276015B2 (en) 2009-02-23 2012-09-25 International Business Machines Corporation Managing the power-performance range of an application
US8214663B2 (en) 2009-04-15 2012-07-03 International Business Machines Corporation Using power proxies combined with on-chip actuators to meet a defined power target
US8639862B2 (en) 2009-07-21 2014-01-28 Applied Micro Circuits Corporation System-on-chip queue status power management
KR101620103B1 (ko) 2009-10-21 2016-05-13 삼성전자주식회사 멀티 코어 시스템에서 중앙 처리 장치의 전력 제어 장치 및 방법
US9098274B2 (en) 2009-12-03 2015-08-04 Intel Corporation Methods and apparatuses to improve turbo performance for events handling
US8909962B2 (en) 2009-12-16 2014-12-09 Qualcomm Incorporated System and method for controlling central processing unit power with guaranteed transient deadlines
US9292662B2 (en) 2009-12-17 2016-03-22 International Business Machines Corporation Method of exploiting spare processors to reduce energy consumption
US8887171B2 (en) 2009-12-28 2014-11-11 Intel Corporation Mechanisms to avoid inefficient core hopping and provide hardware assisted low-power state selection
US8503539B2 (en) 2010-02-26 2013-08-06 Bao Tran High definition personal computer (PC) cam
US20130015904A1 (en) 2010-03-22 2013-01-17 Freescale Semiconductor, Inc. Power gating control module, integrated circuit device, signal processing system, electronic device, and method therefor
US9135698B2 (en) 2010-07-10 2015-09-15 Universite Laval System and method for medical image intensity standardization
US8740872B2 (en) 2010-10-19 2014-06-03 The Board Of Regents Of The University Of Oklahoma Magnetically-targeted treatment for cardiac disorders
US8793512B2 (en) 2010-10-29 2014-07-29 Advanced Micro Devices, Inc. Method and apparatus for thermal control of processing nodes
US8193831B1 (en) 2011-02-16 2012-06-05 Broadcom Corporation Method and apparatus for reducing power consumption in a digital circuit by controlling the clock
US8539269B2 (en) 2011-03-31 2013-09-17 Intel Corporation Apparatus and method for high current protection
US9086883B2 (en) 2011-06-10 2015-07-21 Qualcomm Incorporated System and apparatus for consolidated dynamic frequency/voltage control
US8650423B2 (en) 2011-10-12 2014-02-11 Qualcomm Incorporated Dynamic voltage and clock scaling control based on running average, variant and trend
US9280190B2 (en) 2011-12-21 2016-03-08 Intel Corporation Method and systems for energy efficiency and energy conservation including on-off keying for power control
US9105249B2 (en) 2011-12-29 2015-08-11 Intel Corporation Energy conservation in a controller using dynamic frequency selection
US9652018B2 (en) 2011-12-30 2017-05-16 Intel Corporation Adjusting power consumption of a processing element based on types of workloads to be executed
US9594412B2 (en) 2012-03-30 2017-03-14 Intel Corporation Controlling power gate circuitry based on dynamic capacitance of a circuit
US9218045B2 (en) 2012-06-30 2015-12-22 Intel Corporation Operating processor element based on maximum sustainable dynamic capacitance associated with the processor
US9122632B2 (en) 2012-06-30 2015-09-01 Intel Corporation Programmable power performance optimization for graphics cores
US20140089699A1 (en) 2012-09-27 2014-03-27 Advanced Micro Devices Power management system and method for a processor
US9804656B2 (en) 2012-09-29 2017-10-31 Intel Corporation Micro-architectural energy monitor event-assisted temperature sensing
US9703364B2 (en) 2012-09-29 2017-07-11 Intel Corporation Rotational graphics sub-slice and execution unit power down to improve power performance efficiency
US9164931B2 (en) 2012-09-29 2015-10-20 Intel Corporation Clamping of dynamic capacitance for graphics
US20140237272A1 (en) 2013-02-19 2014-08-21 Advanced Micro Devices, Inc. Power control for data processor
US9514715B2 (en) 2013-12-23 2016-12-06 Intel Corporation Graphics voltage reduction for load line optimization

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120095442A (ko) * 2009-12-31 2012-08-28 인텔 코오퍼레이션 고효율 실시간 플랫폼 전력 관리 아키텍처를 위한 장치
KR20130124575A (ko) * 2011-03-21 2013-11-14 인텔 코포레이션 멀티-코어 프로세서에서의 전력 소모 관리

Also Published As

Publication number Publication date
US20150179146A1 (en) 2015-06-25
KR20150073839A (ko) 2015-07-01
US9514715B2 (en) 2016-12-06
KR101722413B1 (ko) 2017-04-03

Similar Documents

Publication Publication Date Title
US10809782B2 (en) Adaptive graphics subsystem power and performance management
KR101635271B1 (ko) 시각 출력을 위한 조정을 판단하기 위한 기법
KR101717915B1 (ko) 동적 생성 그래픽 자원들에 대한 압축 기술들
US9832247B2 (en) Processing video data in a cloud
TWI575368B (zh) 用於降低三維(3d)應用程式工作負載的裝置及方法以及電腦可讀取儲存媒體
JP2017215997A (ja) 装置、方法およびシステム
JP5792337B2 (ja) グラフィクスのレンダリング中における電力消費の低減
TWI546771B (zh) 圖形處理方法、設備及非暫態電腦可讀媒體
KR101722413B1 (ko) 부하 라인 최적화를 위한 그래픽 전압 감소
US9710403B2 (en) Power saving method and apparatus for first in first out (FIFO) memories
US9230139B2 (en) Selective content sharing on computing devices
JP6182225B2 (ja) カラーバッファ圧縮
JP6745020B2 (ja) 方法、コンピュータプログラム、コンピュータ可読記録媒体および装置
TWI615807B (zh) 用於記錄在輸入幾何物件粒度上的可視度測試之結果的方法、設備及系統
US9792151B2 (en) Energy efficient burst mode
JP5923589B2 (ja) 適応デプスオフセット圧縮
JP2015508528A (ja) パイプライン化された画像処理シーケンサ
US20150170315A1 (en) Controlling Frame Display Rate

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20200227

Year of fee payment: 4