KR100925302B1 - 디스플레이 서브시스템용 작업 기반 클록 관리를 위한시스템 및 방법 - Google Patents

디스플레이 서브시스템용 작업 기반 클록 관리를 위한시스템 및 방법 Download PDF

Info

Publication number
KR100925302B1
KR100925302B1 KR1020070038476A KR20070038476A KR100925302B1 KR 100925302 B1 KR100925302 B1 KR 100925302B1 KR 1020070038476 A KR1020070038476 A KR 1020070038476A KR 20070038476 A KR20070038476 A KR 20070038476A KR 100925302 B1 KR100925302 B1 KR 100925302B1
Authority
KR
South Korea
Prior art keywords
circuit
data
clock
clocks
software interface
Prior art date
Application number
KR1020070038476A
Other languages
English (en)
Other versions
KR20070104270A (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 KR20070104270A publication Critical patent/KR20070104270A/ko
Application granted granted Critical
Publication of KR100925302B1 publication Critical patent/KR100925302B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3237Power saving characterised by the action undertaken by disabling clock generation or distribution
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Control Of Indicators Other Than Cathode Ray Tubes (AREA)
  • Power Sources (AREA)

Abstract

본 발명은 하드웨어 회로, 예를 들어, 개인용 컴퓨터의 디스플레이 서브시스템의 하나 이상의 부분에 대한 클록을 이네이블 또는 디세이블하기 위한 시스템 및 방법을 개시한다. 프로세서는 적어도 명령 또는 데이터에 기초하여 기능을 수행하도록 구성된 제1 회로에 명령 또는 데이터를 생성한다. 클록 발생기는 제2 기능을 수행하도록 구성된 제1 회로와 제2 회로에 선택적으로 클록을 공급한다. 프로세서와 클록 발생기에 접속된 소프트웨어 인터페이스 회로는 제2 회로가 다가오는 기간에서 제2 기능을 수행할 것인지 또는 아이들 상태로 될 것인지를 적어도 명령 또는 데이터에 기초하여 자율적으로 결정하고, 제2 회로가 다가오는 기간에서 아이들 상태로 되면 제2 회로에 대한 클록 중 하나 이상의 클록을 디세이블한다.
Figure R1020070038476
하드웨어 회로, 디스플레이, 개인용 컴퓨터, 클록 발생기, 디세이블

Description

디스플레이 서브시스템용 작업 기반 클록 관리를 위한 시스템 및 방법{WORK BASED CLOCK MANAGEMENT FOR DISPLAY SUB-SYSTEM}
도 1은 종래 컴퓨터 시스템의 일반화된 블록도.
도 2는 본 발명의 일 실시예에 따른 컴퓨터 시스템의 블록도.
도 3은 본 발명에 따른 일 실시예에서, 스캔아웃 모듈의 하나 이상의 부분에 대한 클록을 자율적으로 디세이블하도록 구성된 소프트웨어 인터페이스 회로를 포함한 도 2의 스캔아웃 모듈을 더 상세히 도시한 도면.
도 4는 본 발명에 따른 일 실시예에서, 도 2 및 도 3의 스캔아웃 모듈의 작업 기반 클록 관리의 단순화된 방법을 도시한 도면.
<도면의 주요 부분에 대한 부호의 설명>
202 : CPU
204 : 시스템 메모리
208 : 사용자 입력 장치
210 : 디스플레이
212 : 그래픽 처리 서브시스템
216 : 그래픽 메모리
<관련 출원의 상호 참조>
본 출원은 2006년 4월 20일 출원된 미국 가특허 출원 번호 60/794,221의 우선권의 이익을 주장하고 있고, 그 전체 개시 내용을 본원에서 참조로서 병합하고 있다.
일반적으로, 본 발명의 개시 내용은 예를 들어, 개인용 컴퓨터(PC)나 랩톱 PC에서 찾을 수 있는 디스플레이 서브시스템용 클록 관리를 실행할 때, 전자 회로의 전력을 절약하는 것에 관한 것이다.
도 1은 종래 컴퓨터 시스템(100)의 일반화된 블록도이다. 컴퓨터 시스템(100)에서, 중앙 처리 장치(105; CPU)는 버스 인터페이스(110)를 통해 시스템 메모리(115)와 통신한다. I/O 인터페이스(130)는 하나 이상의 사용자 입력 장치(135; 예를 들어, 키보드나 마우스)로부터 사용자 입력을 수신하여, 그 입력을 CPU(105)에 전송한다. 비주얼 출력은 그래픽 서브시스템(140)을 통해 디스플레이 장치(145; 예를 들어, CRT나 LCD 모니터) 상에 제공된다. 시스템 디스크(120; 예를 들어, 하드 드라이브)는 I/O 인터페이스(130) 또는 버스 인터페이스(110)에 접속된다.
클록 발생기(150)는 다양한 주파수의 클록을 컴퓨터 시스템(100)의 여러 구성요소에 공급한다. 예를 들어, 클록 발생기(150)는 (예를 들어, 서로 다른 주파수를 갖는) 다수의 서로 다른 클록을 제공하여 그래픽 서브시스템(140) 내의 여러 하드웨어 회로를 구동시킨다. 클록 발생기(150)가 그래픽 서브시스템(140) 내의 디지털 아날로그 변환기(DAC; 도시안함)에 하나 이상의 클록을 공급하여, DAC는 디스플레이 장치(145)에 아날로그 신호를 생성할 수 있지만, 클록 발생기(150)는 I/O 인터페이스(130)와 같은 다른 회로 구성요소에 다른 클록을 공급할 수도 있다. 컴퓨터 시스템(100) 내의 여러 하드웨어 회로가 그 각각의 기능을 수행할 수 있도록 하기 위해서는, 클록을 필요로 한다.
그러나, 어느 시점이든지, 컴퓨터 시스템(100) 내의 회로 일부는 아이들 상태로 되어 필요한 기능을 수행하지 않을 수 있다. 회로가 아이들 상태에 있는 동안, 컴퓨터 시스템(100)은 아이들 회로에 대한 클록을 디세이블하여 전력을 절약할 수 있다. 예를 들어, 컴퓨터 시스템(100)이 랩톱 PC인 경우 전지 수명을 늘리기 위해서는, CPU(105) 상에서 실행되는 소프트웨어 구성요소가 클록 발생기(150)에 명령하여, 아이들 회로에 공급되는 클록 중 하나 이상의 클록을 디세이블할 수 있다.
그러나, 클록 발생기(150)에 의해 공급되는 클록의 이네이블 및 디세이블을 제어하기 위해, 컴퓨터 시스템(100) 내에 소프트웨어 구성요소를 제공하는 것에는 제한이 따른다. 예를 들어, 소프트웨어 구성요소 내에 클록 관리 기능을 제공하면, CPU(105) 상에서 실행되는 소프트웨어의 전체적인 복잡도가 증가하게 된다. 또한, 소프트웨어 간섭으로 인해, 컴퓨터 시스템(100) 내의 회로 일부가 아이들 상태에 있는지를 결정하고, 아이들 회로에 대한 클록을 안전하게 디세이블할 수 있는지를 결정한 후, 클록 발생기(150)에 명령 또는 신호를 전송하여 클록을 디세이블 하는데 비교적 긴 시간이 걸릴 수 있기 때문에, 지연이 발생한다.
또한, CPU(105) 상에서 실행되는 소프트웨어 구성요소가 컴퓨터 시스템(100) 내의 하드웨어의 정확한 상태를 항상 "인식"하고 있을 수는 없다. 따라서, 어느 클록을 디세이블해야 하는지를 결정하는데 있어서 어느 정도의 비효율성 또는 언제 클록을 안전하게 디세이블할 수 있는지에 관한 불확실성이 있을 수 있다. 극단적인 상황에서는, 한 소프트웨어 구성요소가 논리 일부를 디세이블하고 다른 소프트웨어 구성요소가 디세이블된 논리에 기입하려고 하는 경우, 소프트웨어는 "정체(hang)"되거나 충돌할 수 있다. 어떤 상황에서는, 소프트웨어가 하드웨어의 상태를 기입 전에 판독하는 것이 가능할 수 있지만, 이와 같은 메커니즘을 제공하게 되면, 컴퓨터 시스템(100) 내의 소프트웨어와 하드웨어 모두의 복잡도가 증가하게 된다.
일 양태에서, 본 발명의 시스템은 적어도 명령 또는 데이터에 기초하여 제1 기능을 수행하도록 구성되는 제1 회로에 명령 또는 데이터를 생성하도록 구성된 프로세서, 제2 기능을 수행하도록 구성된 제2 회로, 제1 회로와 제2 회로에 하나 이상의 클록을 선택적으로 공급하도록 구성된 클록 발생기, 및 프로세서와 클록 발생기에 접속된 소프트웨어 인터페이스 회로를 포함한다. 소프트웨어 인터페이스 회로는 제2 회로가 다가오는 기간에서 제2 기능을 수행할 것인지 또는 아이들 상태로 될 것인지를 적어도 명령 또는 데이터에 기초하여 자율적으로 결정하고, 제2 회로가 다가오는 기간에서 아이들 상태로 되면 제2 회로에 대한 하나 이상의 클록을 디 세이블하도록 구성된다.
몇몇 실시예에서, 소프트웨어 인터페이스 회로는 또한 제1 회로가 다가오는 기간에서는 동작할 것이지만 현재에는 아이들 상태인 것으로 결정해서, 다가오는 기간 전에 제1 회로에 대한 하나 이상의 클록을 이네이블하도록 구성된다. 몇몇 실시예에서, 프로세서는 또한 상태 명령을 소프트웨어 인터페이스 회로에 전송하도록 구성될 수 있고, 소프트웨어 인터페이스 회로는 제2 회로가 다가오는 기간에서 제2 기능을 수행할 것인지 또는 아이들 상태로 될 것인지를 적어도 상태 명령에 기초하여 결정하도록 구성된다. 몇몇 실시예에서, 다가오는 기간은 예를 들어, 제1 회로에 데이터를 기입하는 기간을 포함할 수 있고, 또는 시스템이 등시성(isochronous) 그래픽 엔진을 포함하는 경우, 다가오는 기간은 리프레시 주기일 수 있다. 몇몇 실시예에서, 클록 발생기는 또한 소정의 시간 후에 소프트웨어 인터페이스 회로에 ACK(acknowledgement)를 전송하여 제2 회로에 대한 하나 이상의 클록을 디세이블하도록 구성될 수 있다.
다른 양태에서, 본 발명의 방법은 프로세서에서 명령 또는 데이터를 생성하는 단계; 적어도 명령 또는 데이터에 기초하여 제1 기능을 수행하도록 구성된 제1 회로에 프로세서로부터 명령 또는 데이터를 전송하는 단계; 제1 회로와 제2 기능을 수행하도록 구성된 제2 회로에 하나 이상의 클록을 공급하는 단계; 제2 회로가 다가오는 기간에서 제2 기능을 수행할 것인지 또는 아이들 상태로 될 것인지를, 프로세서와 클록 발생기에 접속된 소프트웨어 인터페이스 회로에서 적어도 명령 또는 데이터에 기초하여 자율적으로 결정하는 단계; 및 제2 회로가 다가오는 기간에서 아이들 상태로 되면, 제2 회로에 대한 클록 중 하나 이상의 클록을 디세이블하는 단계를 포함한다.
일반적으로, 본 발명의 개시 내용은 프로세서로부터 하드웨어 회로에 전송된 명령 및/또는 데이터에 기초하여, 하드웨어 회로의 하나 이상의 부분에 대한 클록을 디세이블 또는 이네이블하기 위한 시스템 및 방법에 관한 것이다. 일반적으로, 소프트웨어 인터페이스 회로는 통신 경로 내에 존재하거나 통신을 "엿보기(sniffing)"함으로써, 프로세서로부터 하드웨어 회로로의 모든 또는 사실상 모든 통신을 수신한다. 소프트웨어 인터페이스 회로는, 하드웨어 회로의 어느 부분을 다가오는 기간에서 이네이블할 필요가 있는지, 및 어느 부분이 다가오는 기간에서 아이들 상태로 될 것인지를 프로세서에 의해 전송된 명령 및/또는 데이터에 기초하여 결정한다. 다가오는 기간에서 아이들 상태로 될 하드웨어 회로 일부에 대해서는, 소프트웨어 인터페이스 회로가 예를 들어, 클록 발생기에 명령하여 하나 이상의 클록을 디세이블함으로써, 아이들 회로에 대한 하나 이상의 클록을 디세이블한다. 예시적인 실시예에서, 하드웨어 회로는 개인용 컴퓨터의 등시성 디스플레이 서브시스템이다.
도 2는 본 발명의 일 실시예에 따른 컴퓨터 시스템(200)의 블록도이다. 컴퓨터 시스템(200)은 CPU(202) 및 버스(206)를 통해 통신하는 시스템 메모리(204)를 포함한다. 버스(206)에 접속된 하나 이상의 사용자 입력 장치(208; 예를 들어, 키보드나 마우스)로부터 사용자 입력이 수신된다. 시스템 버스(206)에 접속된 그래 픽 처리 서브시스템(212)의 제어 하에 동작하는 픽셀 기반 디스플레이 장치(210; 예를 들어, 통상의 CRT 또는 LCD 기반 모니터) 상에 비주얼 출력이 제공된다. 또한, 시스템 디스크(240) 및 하나 이상의 탈착식 기억 장치(229; 예를 들어, 플로피 디스크 드라이브, 컴팩트 디스크(CD) 드라이브, 및/또는 DVD 드라이브)와 같은 다른 구성요소는 시스템 버스(206)에 접속될 수도 있다. 시스템 버스(206)는 주변 구성요소 상호접속(Peripheral Component Interconnect; PCI), 개선된 그래픽 처리(Advanced Graphics Processing; AGP) 및/또는 PCI-익스프레스(PCI-E)를 포함하는 다양한 버스 프로토콜 중 하나 이상의 프로토콜을 이용하여 구현될 수 있고, 노스 브리지 및 사우스 브리지(도시안함)와 같은 적당한 "브리지" 칩은 여러 구성요소 및/또는 버스를 상호접속하는데 제공될 수 있다.
그래픽 처리 서브시스템(212)은 결정적 제어를 이용하여 디스플레이 장치(210) 상에 이미지를 생성하기 위한 등시성 파이프라인 방식 프로세서이다. 본원에서 이용되는 등시성 프로세서는 정해진 스케줄에 따라 입력 데이터를 수신하고/하거나 출력 데이터를 전달하도록 구성되는 임의의 데이터 처리 장치를 포함한다. 예를 들어, 등시성 그래픽 처리 서브시스템(212)은 정해진 프레임 속도 - 프레임 속도는 프로그램 가능한 속도일 수 있음 - 로 디스플레이 장치(210)에 출력 신호를 전달하도록 구성될 수 있다. 등시성 파이프라인 방식 그래픽 프로세서는, 2004년 7월 28일 출원된 발명의 명칭이 "결정적 제어를 이용하는 등시성 파이프라인 방식 프로세서(Isochronous Pipelined Processor with Deterministic Control)"인 미국 특허 출원 번호 10/901,887에서 더 설명되고, 그 개시 내용이 완전히 개시된 것처 럼, 본원에 참조로서 병합되어 있다. 본 발명에 초점을 맞추어, 이하, 등시성 파이프라인 방식 그래픽 프로세서를 일반적으로 설명하고, 본 발명을 이해하는데 필요하지 않은 것으로 판단되는 구체적인 상세는 본 발명의 개시 내용에서 생략된다.
그래픽 처리 서브시스템(212)은 예를 들어, 프로그램 가능 프로세서, 주문형 반도체(ASIC), 및 메모리 장치와 같은 하나 이상의 집적 회로 장치를 이용하여 구현될 수 있는 그래픽 메모리(216) 및 그래픽 처리 장치(214; GPU)를 포함한다. GPU(214)는 그래픽 파이프라인(220), 메모리 인터페이스 모듈(222), 및 스캔아웃 모듈(224)을 포함한다. 그래픽 파이프라인(220)은 시스템 버스(206)를 통해 공급되는 그래픽 데이터로부터 픽셀 데이터를 생성하고(예를 들어, 여러 2D 또는 3D 렌더링 알고리즘을 구현하고), 그래픽 메모리(216)와 상호 작용하여 픽셀 데이터를 기억하고 갱신하는 것 등과 관련된 여러 작업을 수행하도록 구성될 수 있다. 그래픽 파이프라인(220) 및 스캔아웃 모듈(224)과 통신하는 메모리 인터페이스 모듈(222)은 그래픽 메모리(216)와의 모든 상호 작용을 관리한다. 또한, 메모리 인터페이스 모듈(222)은 그래픽 파이프라인(220)에 의한 처리 없이 시스템 버스(206)로부터 수신된 픽셀 데이터를 그래픽 메모리(216)에 기입하기 위한 경로를 포함할 수도 있다.
통상적으로 설계된 하나 이상의 집적 회로 메모리 장치를 이용하여 구현될 수 있는 그래픽 메모리(216)는 픽셀 버퍼(226) 및 명령 버퍼(228)와 같은 여러 물리적 또는 논리적 재분할을 포함할 수 있다. 픽셀 버퍼(226)는 스캔아웃 모듈(224)에 의해 판독되어 처리되고 디스플레이 장치(210)에 전송되어 표시되는 이 미지(또는 이미지의 일부)에 대한 픽셀 데이터를 기억한다. 이러한 픽셀 데이터는 예를 들어, 시스템 버스(206)를 통해 GPU(214)의 그래픽 파이프라인(220)에 제공되는 2-D 또는 3-D 화면 데이터로부터 생성되거나, CPU(202) 상에서 실행되는 여러 프로세스에 의해 생성되어 시스템 버스(206)를 통해 픽셀 버퍼(226)에 제공될 수 있다. 몇몇 실시예에서는, 제1 이미지에 대한 데이터를 판독하여 "정면" 버퍼에서 표시하면서, 현재 표시되는 이미지에 영향을 주지 않고, 제2 이미지에 대한 데이터를 "후면" 버퍼에 기입할 수 있도록, 픽셀 버퍼(226)를 이중으로 버퍼링할 수 있다. 명령 버퍼(228)는 그래픽 파이프라인(220) 및/또는 스캔아웃 모듈(224)에 의한 실행을 위해, 시스템 버스(206)를 통해 수신된 명령을 큐잉한다. 그래픽 메모리(216)의 다른 부분은 (텍스처 데이터나 색 룩업 테이블 등과 같은) GPU(214)가 필요로 하는 데이터나 GPU(214)를 위한 실행가능 프로그램 코드 등을 기억하는데 이용될 수 있다.
GPU(214)를 갖는 단일 칩 내에 집적되거나 별개의 칩 내에 구현될 수 있는 스캔아웃 모듈(224)은 픽셀 버퍼(226)로부터 픽셀 색 데이터를 판독하고, 픽셀 색 데이터를 처리하고, 처리된 픽셀 색 데이터를 디스플레이 장치(210)에 전송하여 표시한다. 일 실시예에서, 스캔아웃 모듈(224)은 등시성으로 동작하여, GPU(214) 또는 시스템(200) 내의 다른 곳에서 일어날 수 있는 임의의 다른 행동에 관계없이 정해진 리프레시 속도(예를 들어, 80 Hz)로 픽셀 데이터의 프레임을 스캔아웃한다. 몇몇 실시예에서, 정해진 리프레시 속도는 사용자가 선택할 수 있는 파라미터일 수 있고, 스캔아웃 순서는 디스플레이 포맷에 적합하게 변경(예를 들어, 인터레이스 또는 프로그레시브 스캔)될 수 있다. 또한, 스캔아웃 모듈(224)은 예를 들어, 그래픽 메모리(216), 시스템 메모리(204), 또는 다른 데이터 소스(도시안함)로부터 얻을 수 있는 비디오 또는 커서 오버레이 이미지 등의 데이터와 픽셀 버퍼(226)로부터의 픽셀 데이터를 결합함으로써 컴포지트 화면 이미지를 생성하고/생성하거나 특정 디스플레이 하드웨어를 위한 색 값을 조정하는 등의, 다른 동작을 수행할 수도 있다. 이와 같은 동작은 스캔아웃 모듈(224)의 디스플레이 파이프라인에서 수행된다.
시스템(200)의 동작 동안, CPU(202)는 시스템 메모리(204)에 (임시로) 상주하는 여러 프로그램을 실행한다. 일 실시예에서, 이들 프로그램은 그래픽 처리 서브시스템(212)용으로 하나 이상의 운영 체계(OS) 프로그램(232), 하나 이상의 응용 프로그램(234), 및 하나 이상의 드라이버 프로그램(236)을 포함한다. 이들 프로그램이 시스템 메모리(204)에 상주하는 것으로서 도시되어 있지만, 본 발명은 프로그램 명령어를 공급하여 CPU(202)에 의해 실행하기 위한 임의의 특정 메커니즘에 한정되지 않음을 이해해야 한다. 예를 들어, 임의의 주어진 시점에서, 이들 프로그램 중 임의의 프로그램을 위한 프로그램 명령어의 일부 또는 모두는 시스템 디스크(240) 상의 페이지 파일이나 메모리 사상된 파일에서, 및/또는 다른 기억 공간에서, (예를 들어, 온칩(on-chip) 명령어 캐시 및/또는 여러 버퍼 및 레지스터 내의) CPU(202) 내에 존재할 수 있다.
운영 체계 프로그램(232) 및/또는 응용 프로그램(234)은 통상의 설계를 가질 수 있다. 응용 프로그램(234)은 예를 들어, 그래픽 데이터를 생성하고 (예를 들 어, 그래픽 파이프라인(220)과 같은) GPU(214)의 적당한 렌더링 기능을 인보크하여 그래픽 데이터를 픽셀 데이터로 변환하는 비디오 게임 프로그램일 수 있다. 다른 응용 프로그램(234)은 픽셀 데이터를 생성하고 그래픽 처리 서브시스템(212)에 제공하여 표시할 수 있다. 픽셀 및/또는 그래픽 데이터를 생성하는 응용 프로그램은 개수에 관계없이 CPU(202) 상에서 동시에 실행될 수 있다는 것을 이해해야 한다. 또한, 운영 체계 프로그램(232; 예를 들어, Micorsoft Windows 운영 체계의 그래픽 장치 인터페이스(GDI) 구성요소)은 픽셀 및/또는 그래픽 데이터를 생성하여 그래픽 처리 서브시스템(212)에 의해 처리할 수도 있다.
드라이버 프로그램(236)은 그래픽 파이프라인(220)과 스캔아웃 모듈(224) 모두를 포함한, 그래픽 처리 서브시스템(212)과의 통신을 이네이블한다. 드라이버 프로그램(236)은 Open GL, Microsoft DirectX, 또는 D3D와 같은 하나 이상의 표준 응용 프로그램 인터페이스(API)를 구현하여, 그래픽 처리 서브시스템(212)과 통신하는 것이 바람직하지만, 어떤 개수나 조합의 API도 지원할 수 있고, 몇몇 실시예에서는, 별도의 드라이버 프로그램(236)을 제공하여 서로 다른 API를 구현한다. 적당한 API 함수 호출을 인보크함으로써, 운영 체계 프로그램(232) 및/또는 응용 프로그램(234)은 드라이버 프로그램(236)에 명령하여, 예를 들어, 그래픽 데이터 또는 픽셀 데이터를 시스템 버스(206)를 통해 그래픽 처리 서브시스템(212)에 전송하고, 그래픽 파이프라인(220)의 동작을 제어하고, 스캔아웃 모듈(224)을 위한 상태 파라미터를 수정할 수 있다. API 함수 호출에 응답하여 드라이버 프로그램(236)에 의해 그래픽 처리 서브시스템(212)에 전송되는 특정 명령 및/또는 데이 터는 GPU(214)의 구현 예에 따라 변할 수 있고, 드라이버 프로그램(236)은 운영 체계(232) 또는 응용 프로그램(234)에 의해 제어되지 않는 추가 기능(예를 들어, 특수 비주얼 효과)을 구현하는 명령 및/또는 데이터를 전송할 수도 있다.
몇몇 실시예에서, 명령 버퍼(228)는 시스템 버스(206)를 통해 수신된 명령을 큐잉하여 GPU(214)에 의해 실행한다. 더욱 상세하게는, 드라이버 프로그램(236)은 명령 스트림을 명령 버퍼(228)에 기입할 수 있고, 명령 스트림은 스캔아웃 모듈(224)을 위한 상태 명령뿐만 아니라 그래픽 파이프라인(220)을 위한 렌더링 명령 및 데이터도 포함할 수 있다. 몇몇 실시예에서는, 명령 버퍼(228)가 그래픽 파이프라인(220)을 향하는 명령 및 스캔아웃 모듈(224)을 향하는 명령을 위한 논리적 또는 물리적으로 분리된 섹션을 포함할 수 있지만, 다른 실시예에서는, GPU(214) 내의 적당한 제어 회로가 적당한 파이프라인으로 향하는 명령을 명령 버퍼(228)에서 혼합할 수 있다.
명령 버퍼(228; 또는 그 각 섹션)는 CPU(202)에 의해 기입되고 GPU(214)에 의해 판독되는 FIFO(first-in, first-out) 버퍼이다. 판독 및 기입은 비동기식으로 일어날 수 있다. 일 실시예에서, CPU(202)는 각각의 기입 후에 증분되는 "put" 포인터에 의해 결정되는 위치에 있는 명령 버퍼(228)에 새로운 명령 및 데이터를 주기적으로 기입한다. 비동기식으로, GPU(214)는 명령 버퍼(228)에 미리 기억된 명령 및 데이터 세트를 연속하여 판독 및 처리할 수 있다. GPU(214)는 "get" 포인터를 유지하여 명령 버퍼(228) 내의 판독 위치를 식별하고, get 포인터는 각각의 판독 후에 증분된다. CPU(202)가 GPU(214)보다 충분히 멀리 앞서간다면, GPU(214) 는 CPU(202)를 기다리는 아이들 시간을 일으킴 없이 이미지를 렌더링할 수 있다. 몇몇 실시예에서는, 명령 버퍼의 크기와 화면의 복잡도에 따라, CPU(202)는 GPU(214)에 의해 렌더링되고 있는 프레임보다 몇 프레임 앞선 프레임 동안 명령 및 데이터 세트를 기입할 수 있다. 명령 버퍼(228)는 고정된 크기(예를 들어, 5 메가바이트)일 수 있고, 랩어라운드(wraparound) 방식으로 기입 및 판독될 수 있다(예를 들어, 마지막 위치에 기입한 후에, CPU(202)는 "put" 포인터를 처음 위치로 리셋할 수 있다).
몇몇 실시예에서는, 그래픽 파이프라인(220)에 의한 렌더링 명령의 실행을 스캔아웃 모듈(224)의 동작과 동기화할 필요가 없다. 예를 들어, 상술한 바와 같이, 픽셀 버퍼(226)를 이중으로 버퍼링하는 경우, 그래픽 파이프라인(220)은 후면 버퍼에 자유로이 겹쳐쓰기할 수 있지만, 스캔아웃 모듈(224)은 정면 버퍼로부터 판독한다. 이와 같이, 그래픽 파이프라인(220)은 명령을 수신 시 판독 및 처리할 수 있다. 후면 및 정면 버퍼의 플리핑(flipping)은 스캔아웃 프레임의 끝과 동기화될 수 있다. 예를 들어, 그래픽 파이프라인(220)이 후면 버퍼에서 새로운 이미지를 완성하면, 그래픽 파이프라인(220)의 동작은 버퍼를 플리핑할 수 있는 시점에서 현재 프레임에 대한 스캔아웃의 종료까지 중지될 수 있다. 이와 같은 동기화 특징을 구현하기 위한 여러 기술은 본 발명을 이해하는데 필수적인 것은 아니므로 생략된다.
도 3은 본 발명에 따른 일 실시예에서, 스캔아웃 모듈(224)의 하나 이상의 부분들에 대한 클록을 자율적으로 디세이블하도록 구성된 소프트웨어 인터페이스 회로(390)를 포함하는 도 2의 스캔아웃 모듈(224)을 더 상세히 도시한다. 본 실시예에서, 스캔아웃 모듈(224)은 2개의 물리적 집적 회로(IC), 즉, 로컬 IC(301)와 원격 IC(302)로 분할된다. 그러나, 스캔아웃 모듈(224)은 하나 또는 임의 개수의 IC를 포함할 수 있다.
디스플레이(210)를 위한 픽셀 데이터를 처리하기 위해, 메모리 인터페이스(310)는 데이터를 수신하여 2개의 병렬 픽셀 처리 헤드, 즉, 제1 헤드(315)와 제2 헤드(320) 중 하나 또는 양쪽 헤드에 의해 처리한다. 몇몇 실시예에서, 헤드(315 및 320)는 예를 들어, 2개의 디스플레이(210)까지 동시에 구동시킬 수 있다. 헤드(315)는 컴포지터(316), 데이터 파이프라인(317), 및 래스터 발생기(318)를 포함한다. 이와 유사하게, 헤드(320)는 컴포지터(321), 데이터 파이프라인(322), 및 래스터 발생기(333)를 병렬로 포함한다. 하나 이상의 디스플레이(210)를 구동시키기 위해, 처리된 비디오 데이터는 헤드(315 및/또는 320)로부터 가상 크로스바(330)를 통해 DAC(350), 직렬 출력 자원(355), 및 병렬 출력 자원(360)을 포함하는 하나 이상의 출력 자원(340)에 출력된다.
로컬 클록 발생기(381)와 함께 로컬 클록 제어 모듈(380)은 로컬 IC(301) 내에 배치하기 위한 클록을 선택적으로 공급한다. 이와 유사하게, 원격 클록 발생기(386)와 함께 원격 클록 제어 모듈(385)은 원격 IC(302) 내에 배치하기 위한 클록을 선택적으로 공급한다. 별개의 모듈로서 도시되고 설명되었지만, 몇몇 실시예에서, 로컬 클록 제어 모듈(380)은 그 기능의 전부 또는 일부가 로컬 클록 발생기(381) 내에 통합되고, 원격 클록 제어 모듈(385)은 그 기능의 전부 또는 일부가 원격 클록 발생기(386) 내에 통합된다. 본원에서 더 설명하는 바와 같이, 선택적인 클록 분포는 소프트웨어 인터페이스 회로(390)에 의해 제어된다.
소프트웨어 인터페이스 회로(390)는 스캔아웃 모듈(224)의 어느 부분을 다가오는 기간에서 이네이블할 필요가 있는지, 및 어느 부분이 다가오는 기간에서 아이들 상태로 될 것인지를 스캔아웃 모듈(224)에 의해 수신된 명령 및/또는 데이터에 기초하여 결정하도록 구성된다. 다가오는 기간에서 스캔아웃 모듈(224) 내의 여러 구성요소에 의해 수행되는 기능에 따라, 소프트웨어 인터페이스 회로(390)는 스캔아웃 모듈(224)의 기능적 구성(어느 부분이 동작하고 있고, 어느 부분이 아이들 상태에 있는지에 관한 구성)을 동적으로 결정하고 제어한다. 다가오는 기간에서는 동작할 것이지만 현재에는 아이들 상태에 있는 스캔아웃 모듈(224)의 일부에 대해, 소프트웨어 인터페이스 회로(390)는 다가오는 기간의 시작보다 미리 또는 동시에 회로에 대한 클록을 이네이블한다. 다가오는 기간에서 아이들 상태로 될 스캔아웃 모듈(224)의 일부에 대해, 소프트웨어 인터페이스 회로(390)는 아이들 회로에 대한 하나 이상의 클록을 디세이블할 수 있다.
일 실시예에서, 소프트웨어 인터페이스 회로(390)는 기능적 구성에 따라 로컬 IC(301)의 경우 로컬 클록 제어 모듈(380)에 명령하고, 원격 IC(302)의 경우 원격 클록 제어 모듈(385)에 명령한다. 따라서, 소프트웨어 인터페이스 회로(390)는 각각 로컬 클록 발생기(381)와 원격 클록 발생기(386)에 의해 공급되는, 스캔아웃 모듈(224)의 구성요소에 대한 하나 이상의 클록을 적절히 이네이블 또는 디세이블하게 된다.
다가오는 기간에서 스캔아웃 모듈(224)의 기능적 구성을 결정하기 위해, 소프트웨어 인터페이스 회로(390)는 스캔아웃 모듈(224) 내에 들어오는 사실상 모든 통신을 수신하고 해석한다. 몇몇 실시예에서, 소프트웨어 인터페이스 회로(390)는 다가오는 기간에서 기능적 구성을 나타내는 상태 명령을 CPU(202)로부터 직접 수신한다. 예를 들어, CPU(202) 또는 그래픽 처리 서브시스템(212) 상에서 실행되는 소프트웨어는 명령 및/또는 데이터를 메모리 사상된 레지스터 기입을 통해 소프트웨어 인터페이스 회로(390)에 전송할 수 있다. 소프트웨어 인터페이스 회로(390)는 명령 및/또는 데이터로부터 다가오는 기간에 대한 상태 정보를 결정한다. 이 상태 정보는 원자적으로(atomically) 갱신되어 스캔아웃 모듈(224)의 기능적 구성으로 된다. 이 기능적 구성에 기초하여, 소프트웨어 인터페이스 회로(390)는 다가오는 기간에서 이네이블될 필요가 있거나 디세이블될 수 있는 그 스캔아웃 모듈(224)의 일부를 결정한다.
다른 실시예에서, 소프트웨어 인터페이스 회로(390)는 예를 들어, 버스 트래픽을 "엿보기"함으로써 간접적으로 명령 및/또는 데이터를 수신하고, 이로부터 기능적 구성을 해석한다. 스캔아웃 모듈(224) 내의 소프트웨어 인터페이스 회로(390)와 다른 구성요소 간에는 다수의 버스 인터페이스(도시안함)가 존재하고, 다가오는 기간은 버스 중 하나의 버스를 통해 데이터를 수신하고, 이에 대응하여 하드웨어에 기입하기 위한 지속 기간일 수 있다. 예를 들어, 다가오는 레지스터 기입 기간에서 헤드(315) 내의 레지스터에 소프트웨어가 기입하려고 하는 것을 나타내는 것으로 소프트웨어 인터페이스 회로(390)가 소프트웨어 명령을 해석하고, 현재 헤드(315)에 대한 클록이 디세이블 상태에 있으면, 소프트웨어 인터페이스 회로(390)는 헤드(315) 내의 레지스터에 데이터를 전송하기 전에 소정의 시간 동안 클록을 이네이블한다. 일단 레지스터에 기입되면, 소프트웨어 인터페이스 회로(390)는 헤드(315)에서 레지스터에 더 이상 기입되지 않는 경우, 헤드(315)에 대한 클록을 디세이블할 수 있다. 다른 예에서, 소프트웨어 인터페이스 회로(390)는 다가오는 기간에서 DAC(350) 중 하나의 DAC를 구성하기 위해 데이터를 기입할 것으로 결정할 수 있다. 소프트웨어 인터페이스 회로(390)에서 DAC(350)까지 데이터를 얻기 위해, 소프트웨어 인터페이스 회로(390)는 DAC(350)에 대한 적당한 클록을 이네이블하고, 그 다음에, 소프트웨어 인터페이스 회로(390)는 다가오는 기간에서 DAC(350)에 기입할 것이다. 일단 데이터가 기입되고 DAC(350)에 더 이상 데이터가 기입되지 않으면, 소프트웨어 인터페이스 회로(390)는 DAC(390)에 대한 클록을 디세이블할 수 있다.
또한, 다가오는 기간은 수직 스캔아웃 또는 래스터 스캔 기간에 대응할 수도 있다. 예를 들어, 수직 스캔아웃 또는 래스터 스캔 기간마다 한 번, 소프트웨어 인터페이스 회로(390)는 다음 다가오는 래스터 스캔 기간에 대한 기능적 구성을 결정할 수 있다. 다가오는 래스터 스캔 기간에서, 예를 들어, 헤드(315) 표시 논리가 비디오 데이터를 생성하도록 동작할 것이지만, 헤드(320)가 아이들 상태로 되면, 소프트웨어 인터페이스 회로(390)는 다가오는 래스터 스캔 기간에서 헤드(320) 회로에 대한 클록을 디세이블할 수 있다. 다른 예에서, DAC(350) 중 한 DAC가 헤드(315)나 헤드(320)에 접속되어 다가오는 래스터 스캔 기간에서 디스플레이(210) 상에 이미지를 표시하도록 프로그래밍 시퀀스가 구성되면, 소프트웨어 인터페이스 회로(390)는 DAC(350)가 이미지 데이터를 생성하려고 하는 기간 동안 적당한 DAC(350)에 대한 클록을 이네이블할 수 있다. 표시하는데 DAC(350)를 더 이상 필요로 하지 않는 것으로 소프트웨어 인터페이스 회로(390)가 결정하면, 소프트웨어 인터페이스 회로(390)는 DAC(350)에 대한 클록을 턴 오프할 수 있다.
소프트웨어 인터페이스 회로(390)에서 여러 기능적 하드웨어 구성을 효과적으로 관리하기 위해, 스캔아웃 모듈(224) 내의 자원은 소정 개수의 이산 클록 영역으로 세분된다. 일 실시예에서, 소프트웨어 인터페이스 회로(390), 메모리 인터페이스(310), 로컬 클록 제어 모듈(380), 및 원격 클록 제어 모듈(385)에 대한 클록은 400 MHz 클록이 공급되는 올웨이즈 온(always-on) 클록 영역을 포함한다. 제1 동적 클록 영역은 헤드(315) 표시 논리(컴포지터(316), 데이터 파이프라인(317), 및 래스터 발생기(318))를 포함한다. 제2 동적 클록 영역은 헤드(320) 표시 논리(컴포지터(321), 데이터 파이프라인(322), 및 래스터 발생기(333))를 포함한다. 각각의 클록 영역은 다수의 클록 주파수 또는 위상을 포함할 수 있다. 예를 들어, 래스터 발생기(318 및 333)는 컴포지터(316 및 321)와 데이터 파이프라인(317 및 322)에 공급되는 클록에 더하여 및/또는 이들로부터 서로 다른 클록을 수신할 수 있다.
기타 클록 영역은, 서로 독립하여 동작하지만 헤드(315) 표시 논리 및/또는 헤드(320) 표시 논리와 함께 동작하는 DAC(350), 직렬 출력 자원(355), 및 병렬 출력 자원(360)과 같은 출력 자원(340) 중 하나 이상의 자원에 대해 미리 정해질 수 있다. 기타 클록 영역은 예를 들어, 임의의 헤드나 출력 자원에 특정되지 않은 논리나 회로와 같은, 스캔아웃 모듈(224) 내의 기타 논리를 포함할 수 있다.
예시적인 실시예에서는, 클록 상태를 최적으로 관리하기 위해, 스캔아웃 모듈(224)이 등시성이기 때문에, 소프트웨어 인터페이스 회로(390)는 스캔아웃 모듈(224) 내의 하드웨어의 실시간 기능적 구성이나 상태를 필요로 한다. 예를 들어, 헤드(315)가 데이터 파이프라인(317)을 통해 데이터를 처리하고 있는 동안 헤드(315)에 대한 클록을 일정하게 계속 실행시킬 필요가 있기 때문에, 소프트웨어 인터페이스 회로(390)는 단순히 헤드(315)에 대한 클록을 이네이블 또는 디세이블할 수만은 없다.
몇몇 실시예에서, 스캔아웃 모듈(224) 내의 자율 클록 관리의 정확도를 향상시키기 위해, 로컬 클록 제어 모듈(380) 및/또는 원격 클록 제어 모듈(385)은 적당한 클록을 이네이블 또는 디세이블하기 위한 소정의 시간이 경과한 후에 소프트웨어 인터페이스 회로(390)에 ACK를 전송한다. 따라서, "클록 마스터(clock master)"인 소프트웨어 인터페이스 회로(390)는 스캔아웃 모듈(224) 내의 하드웨어의 상태에 대한 원자 지식(atomic knowledge)을 갖고, 특정 클록을 언제 이네이블 또는 디세이블해야 하는지를 정확히 정할 수 있다. 예를 들어, 소프트웨어 인터페이스 회로(390)는 소정의 시간(예를 들어, 소정의 최악의 경우도 고려한 값)으로 프로그램되어 헤드(315)에 대한 클록을 이네이블할 수 있다. 명령 또는 데이터가 헤드(315) 내의 레지스터에 액세스하려는 경우, 소프트웨어 인터페이스 회로(390)가 헤드(315)를 이네이블하는 시간을 정확히 정할 수 있어, 헤드(315)는 레지스터 기입이 다가오는 기입 기간에서 일어나기 바로 전에만 온 상태로 될 것이다. 소프트웨어 인터페이스 회로(390)가 스캔아웃 모듈(224)의 하드웨어 구성요소에 대한 클록 마스터로서 작용하기 때문에, 소프트웨어 명령어는 헤드(315) 상의 레지스터에 데이터를 전송하도록 하는 요구로서 고려될 수 있고, 소프트웨어 인터페이스 회로(390)는 헤드(315)에 대한 클록 이네이블/디세이블을 조정하고, 헤드(315)에 관련된 명령 스트림을 이네이블하고, 어떤 통신도 헤드(315)에 더 액세스하지 않으려는 경우, 헤드(315)에 대한 클록을 디세이블한다. 이러한 방식으로, 소프트웨어 인터페이스 회로(390)로 인해, 바람직하게도, 소프트웨어는 스캔아웃 모듈(224) 내의 클록 이네이블 및 디세이블을 관리할 필요가 없어진다.
몇몇 실시예에서, 클록 이네이블/디세이블 대기 시간을 제거하기 위해, CPU(202) 또는 그래픽 처리 서브시스템(212) 상에서 실행되는 소프트웨어는 소프트웨어 인터페이스 회로(390)에 의해 수행되는 자율 클록 관리를 선택적으로 이네이블 또는 디세이블할 수 있다. 예를 들어, 시스템(200)의 초기화 또는 시동 동안, 소프트웨어는 자동 클록 관리 모드를 디세이블하여, 시스템(200)의 모든 요소가 이네이블되는 것을 보장할 수 있고, 예를 들어, 초기화 동안 신뢰성 있게 레지스터에 기입하거나 레지스터로부터 판독할 수 있는 것을 보장할 수 있다. 소프트웨어는 예를 들어, 소프트웨어 인터페이스 회로(390)에 대한 메모리 사상된 기입에 의해 자율 클록 관리 모드를 이네이블 또는 디세이블할 수 있다.
도 4는 본 발명에 따른 일 실시예에서, 도 2 및 도 3의 스캔아웃 모듈(224) 내의 작업 기반 클록 관리를 위한 단순화된 방법을 도시한다. 단계(405)에서, CPU(202) 또는 그래픽 처리 서브시스템(212) 상에서 실행되는 소프트웨어는 스캔아웃 모듈(224)의 제1 회로(예를 들어, 헤드(315))에 대한 명령(들) 및/또는 데이터를 생성한다. 단계(410)에서, CPU(202) 또는 그래픽 처리 서브시스템(212) 상에서 실행되는 소프트웨어는 명령 및/또는 데이터를 헤드(315)에 전송한다. 선택적으로, 명령 및/또는 데이터는 소프트웨어 인터페이스 회로(390)에 대한 상태 명령을 포함할 수 있다.
단계(415)에서, 스캔아웃 모듈(224)의 소프트웨어 인터페이스 회로(390)는 명령 및/또는 데이터(또는 상태 명령)를 수신하고, 이 명령 및/또는 데이터에 기초하여, 스캔아웃 모듈(224)의 어느 부분을 다가오는 기간에서 이네이블할 필요가 있는지(예를 들어, 헤드(315) 내의 레지스터에 대한 데이터 기입 주기 동안 헤드(315)를 이네이블할 필요가 있는지), 및 어느 부분(예를 들어, DAC(350))이 다가오는 기간에서 아이들 상태로 되는지를 결정한다. 단계(420)에서, 헤드(315)를 포함하는 클록 영역에 대한 클록을 현재 디세이블하는 경우, 소프트웨어 인터페이스 회로(390)는 다가오는 기간 전에 헤드(315)를 포함하는 클록 영역에 대한 클록을 이네이블한다. 또한, 소프트웨어 인터페이스 회로(390)는 다가오는 기간에서 아이들 상태로 되는 DAC(350)를 포함하는 클록 영역에 대한 클록을 디세이블한다. 단계(425)에서, 로컬 클록 제어 모듈(380) 및/또는 원격 클록 제어 모듈(385)은 헤드(315)에 대한 클록의 이네이블 및 DAC(350)에 대한 클록의 디세이블을 확인(ACK)한다.
도 4를 참조하여 설명된 방법은 스캔아웃 모듈(224) 내의 2개의 회로에 대한 클록을 이네이블하는 단계 및 디세이블하는 단계를 포함하지만, 소프트웨어 인터페이스 회로(390)는 스캔아웃 모듈(224) 내의 사실상 무제한 개수의 클록 영역에 대한 기능적 구성을 유지할 수 있다. 몇몇 실시예에서, 소프트웨어 인터페이스 회로(390)에 구현된 상태 기계에 의해 관리되는 클록 영역의 개수는 비교적 많고 복잡하다. 그 자체로, 도 4의 단계(415)에서, 소프트웨어 인터페이스 회로(390)는 다가오는 기간에서 하나 이상의 클록 영역을 이네이블할 필요가 있는지, 및 하나 이상의 클록 영역이 아이들 상태로 될 것인지를 결정할 수 있다. 따라서, 단계(420)에서, 소프트웨어 인터페이스 회로(390)는 다가오는 기간에서 하나 이상의 클록 영역에 대한 클록을 이네이블하고, 하나 이상의 클록 영역에 대한 클록을 디세이블할 수 있다. 이와 유사하게, 단계(425)에서, 여러 클록 제어 모듈은 다수의 클록 영역에 대한 클록의 이네이블 및 디세이블을 확인(ACK)할 수 있다.
통상의 소프트웨어 기반 클록 관리 방식의 경우, 클록 발생기는 시스템 내의 각 기능적 장치에 클록을 공급하고, 소프트웨어는 일반적으로 하드웨어에 대한 메모리 사상된 레지스터 기입을 통해 각각의 클록을 디세이블할 수 있다. 시스템이 데이터 처리 파이프라인을 포함하는 경우, 소프트웨어는 클록이 턴 오프될 때 파이프라인 단계에 어떤 데이터도 존재하지 않는 것을 보장할 필요가 있다. 일반적으로, 이러한 동기화는 파이프라인으로부터 메모리 사상된 위치로 다시 들어오는 상태 신호를 이용하여 수행된다. 이 상태 신호는 파이프라인에 데이터가 없어 파이프라인이 아이들 상태에 있는지를 나타낸다. 이러한 상태 신호를 메모리 카드를 통해 판독하면, 소프트웨어는 파이프라인에 대한 클록을 디세이블하도록 명령할 수 있다.
소프트웨어가 하드웨어의 일정 부분에 대한 클록을 동적으로 이네이블하거나 디세이블하는 것을 제어하는 역할을 하는 통상의 클록 관리 방식과 달리, 소프트웨어 인터페이스 회로(390)는 스캔아웃 모듈(224) 내의 클록을 동적으로 이네이블 및/또는 디세이블하는 것이 안전하거나 적당할 때를 자율적으로 결정한다. 소프트웨어 인터페이스 회로(390)가 스캔아웃 모듈(224) 내의 다른 하드웨어 요소의 기능적 구성에 대한 원자 시야(atomic view)를 갖기 때문에, 바람직하게도, 소프트웨어 인터페이스 회로(390)는 클록을 디세이블함으로써 스캔아웃 모듈(224)의 특정 부분을 디세이블할 수 있는지를 더 정확하게 결정한다. 클록을 디세이블하기 위한 통상의 소프트웨어 기반 메커니즘은 클록을 디세이블할 수 있는지에 대해 조금이라도 의심이 드는 경우에는 클록을 이네이블 상태로 남겨두어야 하지만, 소프트웨어 인터페이스 회로(390)는 상대적으로 더 자주 상대적으로 긴 기간 동안 클록을 디세이블할 수 있으므로, 소프트웨어 인터페이스 회로(390)는 소프트웨어 기반 메커니즘보다 클록 관리에 있어서 상대적으로 더 효율적이다.
스캔아웃 모듈(224) 내의 클록 마스터인 소프트웨어 인터페이스 회로(390)를 가짐으로써, 하드웨어의 어느 부분이 동작하게 될 것인지 및 다가오는 기간에서 어느 클록을 이네이블해야 하는지, 또는 어느 하드웨어가 아이들 상태로 되어 클록을 디세이블할 수 있는지를 결정하기 위한 대기 시간을 통상의 소프트웨어 제어 클록 관리 방식에 비해 현저히 줄이게 된다. 소프트웨어가 이들 논리 자원에 기입할 때, 소프트웨어 인터페이스 회로(390) 제어가 클록 영역 내의 적당한 논리 자원에 대한 클록을 이네이블할 것을 보장한다는 것이 하나의 이점이다. 소프트웨어 인터페이스 회로(390)는 루프 내에 소프트웨어가 없기 때문에 클록 영역 중 한 클록 영역을 다가오는 기간에서 디세이블할 수 있는지를 훨씬 더 빨리 결정한다. 일반적으로, 소프트웨어 인터페이스 회로(390)는 소프트웨어에 대해 하드웨어 내의 상태가 제어되는 것을 보장한다. 또 다른 이점은, 소프트웨어 인터페이스 회로(390)가 클록 온/오프 상태 전이 시 경쟁 상태(race condition) 및 기타 문제가 일어나는 것을 방지한다는 것이다.
바람직하게도, 소프트웨어 인터페이스 회로(390)는 스캔아웃 모듈(224) 내의 클록 영역에 대한 클록을 이네이블 또는 디세이블하는 것과 관련하여 소프트웨어와 하드웨어를 동기화하는 단일의 조정점으로서 작용한다. 소프트웨어 제어 클록 관리 방식의 경우에는, 소프트웨어의 서로 다른 스레드가 그 각각의 결정 시 충돌하여 하드웨어의 여러 부분을 이네이블 또는 디세이블하는 것이 가능하고, 일반적으로 소프트웨어 내의 하드웨어 상태를 관리하는 어떤 단일 메커니즘도 존재하지 않는다. 바람직하게도, 소프트웨어 인터페이스 회로(390)는 소프트웨어 혼란에 대한 질서를 유지한다.
또한, 소프트웨어 인터페이스 회로(390)는 소프트웨어 제어 클록 디세이블 메커니즘에 비해 더 자주 클록을 디세이블할 수 있다. 소프트웨어 제어 클록 디세이블 메커니즘에서 경쟁 상태와 같은 에러나 이벤트를 방지하기 위해, 소프트웨어가 논리 일부를 디세이블할 수 있는지에 대해 조금이라도 의심이 드는 경우, 소프 트웨어는 논리를 이네이블 상태로 유지하여 경쟁 상태가 일어나는 것을 방지한다. 이와는 달리, 소프트웨어 인터페이스 회로(390)를 통한 하드웨어 제어를 이용하면, 논리의 어느 부분을 스캔아웃 모듈(224)에서 안전하게 디세이블할 수 있는지에 대한 더 정확한 결정을 할 수 있다. 이는 논리 일부를 디세이블할 수 있는 전체 시간 양이 소프트웨어 제어 방식에 비해 증가한다는 이점을 제공한다.
그래픽 엔진과 관련하여 설명하였지만, 본 발명의 시스템과 방법은 다수의 클록 영역으로 회로를 분할하는 사실상 모든 회로에 일반적으로 적용되고, 클록 발생기는 제1 클록 영역과 제2 클록 영역에 하나 이상의 클록을 선택적으로 공급하도록 구성되고, 제어기는 다가오는 기간에서 클록 영역 중 하나 이상의 클록 영역을 이용할 것인지를 다가오는 기간 동안 결정하고, 다가오는 기간 동안 클록 영역을 이용할 것인지 또는 이용하지 않을 것인지에 따라 하나 이상의 클록 영역을 선택적으로 이네이블 및/또는 디세이블한다.

Claims (14)

  1. 명령 또는 데이터를 생성하기 위한 프로세서;
    상기 명령 또는 데이터를 수신하고 적어도 상기 명령 또는 데이터에 기초하여 제1 기능을 수행하도록 구성된 제1 회로;
    제2 기능을 수행하도록 구성된 제2 회로;
    상기 제1 회로와 상기 제2 회로에 하나 이상의 클록을 선택적으로 공급하도록 구성된 클록 발생기; 및
    상기 프로세서와 상기 클록 발생기에 접속되어 상기 프로세서로부터 상기 명령 또는 데이터를 수신하고, 상기 제2 회로가 다가오는 기간에서 상기 제2 기능을 수행할 것인지 또는 아이들 상태로 될 것인지를 적어도 상기 프로세서로부터 수신된 상기 명령 또는 데이터에 기초하여 결정하고, 상기 제2 회로가 상기 다가오는 기간에서 아이들 상태로 될 경우 상기 제2 회로에 대한 상기 클록 중 하나 이상의 클록을 디세이블하도록 구성된 소프트웨어 인터페이스 회로를 포함하는 시스템.
  2. 제1항에 있어서,
    상기 소프트웨어 인터페이스 회로는 또한 상기 제1 회로가 상기 다가오는 기간에서는 동작할 것이지만 현재에는 아이들 상태에 있는 것으로 결정해서, 상기 다가오는 기간 전에 상기 제1 회로에 대한 상기 하나 이상의 클록을 이네이블하도록 구성되는 시스템.
  3. 제1항에 있어서,
    상기 프로세서는 또한 상기 소프트웨어 인터페이스 회로에 상태 명령을 전송하도록 구성되고, 상기 소프트웨어 인터페이스 회로는 상기 제2 회로가 상기 다가오는 기간에서 상기 제2 기능을 수행할 것인지 또는 아이들 상태로 될 것인지를 적어도 상기 상태 명령에 기초하여 결정하도록 구성되는 시스템.
  4. 제1항에 있어서,
    상기 다가오는 기간은 상기 제1 회로에 데이터를 기록하기 위한 기간을 포함하는 시스템.
  5. 제1항에 있어서,
    소정의 복수의 클록 도메인을 포함하고,
    상기 제1 회로는 제1 클록 도메인에 있고, 상기 제2 회로는 제2 클록 도메인에 있는 시스템.
  6. 프로세서에서 명령 또는 데이터를 생성하는 단계;
    적어도 상기 명령 또는 데이터에 기초하여 제1 기능을 수행하도록 구성된 제1 회로에 상기 프로세서로부터의 상기 명령 또는 데이터를 전송하는 단계;
    제2 기능을 수행하도록 구성된 제2 회로와 상기 제1 회로에 대해 클록 발생기에 의해 하나 이상의 클록을 선택적으로 공급하는 단계;
    상기 프로세서와 상기 클록 발생기에 접속되어 상기 프로세서로부터 상기 명령 또는 데이터를 수신하는 소프트웨어 인터페이스 회로에서, 상기 제2 회로가 다가오는 기간에서 상기 제2 기능을 수행할 것인지 또는 아이들 상태로 될 것인지를 적어도 상기 프로세서로부터 수신된 상기 명령 또는 데이터에 기초하여 결정하는 단계; 및
    상기 제2 회로가 상기 다가오는 기간에서 아이들 상태로 될 경우 상기 제2 회로에 대한 상기 클록 중 하나 이상의 클록을 디세이블하는 단계를 포함하는 방법.
  7. 명령 또는 데이터를 생성하기 위한 프로세서;
    상기 명령 또는 데이터를 수신하고 적어도 상기 명령 또는 데이터에 기초하여 제1 기능을 수행하도록 구성된 제1 회로;
    제2 기능을 수행하도록 구성된 제2 회로;
    상기 제1 회로와 상기 제2 회로에 하나 이상의 클록을 선택적으로 공급하도록 구성된 클록 발생기; 및
    상기 프로세서로부터 상기 명령 또는 데이터를 수신하고, 상기 제2 회로가 다가오는 기간에서 상기 제2 기능을 수행할 것인지 또는 아이들 상태로 될 것인지를 적어도 상기 프로세서로부터 수신된 상기 명령 또는 데이터에 기초하여 결정하고, 상기 제2 회로가 상기 다가오는 기간에서 아이들 상태로 될 경우 상기 제2 회로로의 상기 클록 중 하나 이상의 클록을 디세이블하는 수단을 포함하는 시스템.
  8. 제1항에 있어서,
    상기 클록 발생기는 또한 상기 제2 회로에 대한 상기 하나 이상의 클록을 디세이블하기 위한 소정의 시간 후에 상기 소프트웨어 인터페이스 회로에 승인 신호를 보내도록 구성된 시스템.
  9. 제2항에 있어서,
    상기 소프트웨어 인터페이스 회로는 상기 제2 회로가 상기 다가오는 기간에서 아이들 상태로 되면 상기 클록 발생기에 제어 명령을 전송하여 상기 제2 회로에 대한 상기 클록 중 하나 이상의 클록을 디세이블하고, 또한
    상기 소프트웨어 인터페이스 회로는 상기 제1 회로가 상기 다가오는 기간에서 아이들 상태로 되면 상기 클록 발생기에 제어 명령을 전송하여 상기 제1 회로에 대한 상기 클록 중 하나 이상의 클록을 디세이블하도록 구성된 시스템.
  10. 제1항 또는 제7항에 있어서,
    상기 프로세서는 그래픽 프로세서이고,
    상기 제1 회로와 상기 제2 회로는 이미지를 출력하는 스캔아웃 엔진의 일부인 시스템.
  11. 제6항에 있어서,
    상기 소프트웨어 인터페이스 회로에서 상기 제1 회로가 상기 다가오는 기간에서 상기 제1 기능을 수행할 것이지만 현재 아이들 상태라는 것을 결정하는 단계; 및,
    상기 다가오는 기간 전에 상기 제1 회로에 대한 상기 클록 중 하나 이상의 클록을 이네이블하는 단계를 더 포함하는 방법.
  12. 제6항에 있어서,
    상기 소프트웨어 인터페이스 회로에서 승인 신호를 수신하는 단계; 및
    상기 제2 회로에 대한 상기 하나 이상의 클록을 디세이블하기 위한 소정의 시간 후에 승인 신호가 전송되는 단계를 더 포함하는 방법.
  13. 제6항에 있어서,
    상기 제2 회로에 공급된 상기 하나 이상의 클록을 항상 이네이블하기 위하여 상기 프로세서로부터 상기 소프트웨어 인터페이스 회로로 명령을 전송하는 단계를 더 포함하는 방법.
  14. 제7항에 있어서,
    상기 수단은
    상기 제1 회로가 상기 다가오는 기간에서 기능을 수행할 것이지만 현재 아이들 상태라는 것을 결정하고, 또한
    상기 다가오는 기간 전에 상기 제1 회로에 대한 상기 하나 이상의 클록을 이네이블하는 시스템.
KR1020070038476A 2006-04-20 2007-04-19 디스플레이 서브시스템용 작업 기반 클록 관리를 위한시스템 및 방법 KR100925302B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US79422106P 2006-04-20 2006-04-20
US60/794,221 2006-04-20
US11/690,093 US7882380B2 (en) 2006-04-20 2007-03-22 Work based clock management for display sub-system
US11/690,093 2007-03-22

Publications (2)

Publication Number Publication Date
KR20070104270A KR20070104270A (ko) 2007-10-25
KR100925302B1 true KR100925302B1 (ko) 2009-11-04

Family

ID=39035807

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070038476A KR100925302B1 (ko) 2006-04-20 2007-04-19 디스플레이 서브시스템용 작업 기반 클록 관리를 위한시스템 및 방법

Country Status (5)

Country Link
US (1) US7882380B2 (ko)
JP (1) JP2007293852A (ko)
KR (1) KR100925302B1 (ko)
CN (1) CN101101503A (ko)
TW (1) TWI352935B (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7659901B2 (en) * 2006-07-24 2010-02-09 Microsoft Corporation Application program interface for programmable graphics pipeline
US9418171B2 (en) 2008-03-04 2016-08-16 Apple Inc. Acceleration of rendering of web-based content
US8477143B2 (en) 2008-03-04 2013-07-02 Apple Inc. Buffers for display acceleration
US8300056B2 (en) 2008-10-13 2012-10-30 Apple Inc. Seamless display migration
US8368702B2 (en) * 2010-01-06 2013-02-05 Apple Inc. Policy-based switching between graphics-processing units
US8648868B2 (en) 2010-01-06 2014-02-11 Apple Inc. Color correction to facilitate switching between graphics-processing units
US8797334B2 (en) 2010-01-06 2014-08-05 Apple Inc. Facilitating efficient switching between graphics-processing units
CN108121434B (zh) * 2017-12-27 2021-09-14 Tcl移动通信科技(宁波)有限公司 一种显示接口的时钟控制方法、移动终端及存储介质
DE112018005895T5 (de) * 2018-01-25 2020-07-30 Intel Corporation Stromverwaltung von diskreten kommunikationsportkomponenten

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990022626A (ko) * 1995-06-07 1999-03-25 야스카와 히데아키 전력 절약 모드를 갖는 비디오 디스플레이 제어기 장착 컴퓨터시스템
JP2000089848A (ja) 1998-07-24 2000-03-31 Shinki Kagi Kofun Yugenkoshi プロセッサの処理速度の動的制御方法及びシステム
KR20040011428A (ko) * 2000-11-13 2004-02-05 인텔 코포레이션 프로세서 아이들 상태
KR20050117788A (ko) * 2004-06-11 2005-12-15 삼성전자주식회사 중앙 처리 장치의 아이들 상태에서의 시스템 전력 소모절감을 위한 방법 및 그 방법을 적용한 모바일 장치

Family Cites Families (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4954951A (en) 1970-12-28 1990-09-04 Hyatt Gilbert P System and method for increasing memory performance
US3922526A (en) 1973-02-02 1975-11-25 Texas Instruments Inc Driver means for lsi calculator to reduce power consumption
JPS5414624A (en) 1977-07-06 1979-02-03 Toshiba Corp Integrated circuit device
US4748559A (en) 1979-08-09 1988-05-31 Motorola, Inc. Apparatus for reducing power consumed by a static microprocessor
US4317180A (en) 1979-12-26 1982-02-23 Texas Instruments Incorporated Clocked logic low power standby mode
JPS5775335A (en) 1980-10-27 1982-05-11 Hitachi Ltd Data processor
US4468748A (en) 1981-06-11 1984-08-28 Data General Corporation Floating point computation unit having means for rounding the floating point computation result
JPS5862720A (ja) 1981-10-12 1983-04-14 Hitachi Ltd デ−タ処理装置におけるクロツク信号供給制御方法
JPS58182760A (ja) 1982-04-20 1983-10-25 Fujitsu Ltd 連続型シミユレ−シヨン言語における初期値設定方式
US4698748A (en) 1983-10-07 1987-10-06 Essex Group, Inc. Power-conserving control system for turning-off the power and the clocking for data transactions upon certain system inactivity
US4893271A (en) 1983-11-07 1990-01-09 Motorola, Inc. Synthesized clock microcomputer with power saving
US4670837A (en) 1984-06-25 1987-06-02 American Telephone And Telegraph Company Electrical system having variable-frequency clock
US4695946A (en) 1984-10-25 1987-09-22 Unisys Corporation Maintenance subsystem for computer network including power control and remote diagnostic center
US4894728A (en) 1985-02-27 1990-01-16 Goodman Robert M Data acquisition and recording system
US5113523A (en) 1985-05-06 1992-05-12 Ncube Corporation High performance computer system
JPS6326716A (ja) 1986-07-18 1988-02-04 Nec Ic Microcomput Syst Ltd 中央処理装置
US4766566A (en) 1986-08-18 1988-08-23 International Business Machines Corp. Performance enhancement scheme for a RISC type VLSI processor using dual execution units for parallel instruction processing
JPS63175910A (ja) 1987-01-16 1988-07-20 Mitsubishi Electric Corp デ−タ処理装置
JP3137117B2 (ja) 1987-03-27 2001-02-19 将容 曽和 高速処理計算機
JPH01155459A (ja) 1987-12-14 1989-06-19 Hitachi Ltd プロセツサおよび並列計算機
JPH0266616A (ja) 1988-08-31 1990-03-06 Nec Corp 分散処理ユニット
US5150469A (en) 1988-12-12 1992-09-22 Digital Equipment Corporation System and method for processor pipeline control by selective signal deassertion
US4963769A (en) 1989-05-08 1990-10-16 Cypress Semiconductor Circuit for selective power-down of unused circuitry
JPH0310306A (ja) 1989-06-07 1991-01-17 Mitsubishi Electric Corp マイクロプロセッサ
US5153535A (en) 1989-06-30 1992-10-06 Poget Computer Corporation Power supply and oscillator for a computer system providing automatic selection of supply voltage and frequency
US5167024A (en) 1989-09-08 1992-11-24 Apple Computer, Inc. Power management for a laptop computer with slow and sleep modes
JPH04143819A (ja) 1989-12-15 1992-05-18 Hitachi Ltd 消費電力制御方法、半導体集積回路装置およびマイクロプロセツサ
DE4040382C2 (de) 1989-12-15 1999-03-11 Hitachi Ltd Integrierte Halbleiterschaltungsanordnung mit niederer Leistungsaufnahme und Verfahren zu ihrem Betrieb
JPH03235126A (ja) 1990-01-25 1991-10-21 Internatl Business Mach Corp <Ibm> 自然言語を使用してウィンドウシステムをプログラムする方法
JP3010306B2 (ja) 1990-10-11 2000-02-21 キヤノン株式会社 電子放出装置の製造方法
US5265256A (en) 1991-07-01 1993-11-23 Motorola, Inc. Data processing system having a programmable mode for selecting operation at one of a plurality of power supply potentials
US5274828A (en) 1992-02-24 1993-12-28 Texas Instruments Incorporated Computer including an integrated circuit having an on-chip high voltage source
US5630143A (en) 1992-03-27 1997-05-13 Cyrix Corporation Microprocessor with externally controllable power management
US5452401A (en) 1992-03-31 1995-09-19 Seiko Epson Corporation Selective power-down for high performance CPU/system
JPH09282042A (ja) * 1996-04-15 1997-10-31 Sony Corp データ処理装置
US5940785A (en) 1996-04-29 1999-08-17 International Business Machines Corporation Performance-temperature optimization by cooperatively varying the voltage and frequency of a circuit
US6611932B2 (en) * 1997-12-05 2003-08-26 Lightspeed Semiconductor Corporation Method and apparatus for controlling and observing data in a logic block-based ASIC
DE69838374T2 (de) 1997-12-23 2008-05-29 Texas Instruments Inc., Dallas Prozessor und Verfahren zum Verringern von dessen Energieverbrauch
US6301671B1 (en) 1998-03-23 2001-10-09 International Business Machines Corporation Apparatus and method for power reduction control in a video encoder device
US6105139A (en) 1998-06-03 2000-08-15 Nec Usa, Inc. Controller-based power management for low-power sequential circuits
JP2000285227A (ja) * 1999-03-31 2000-10-13 Toshiba Corp 情報処理装置とその制御方法
US6247134B1 (en) 1999-03-31 2001-06-12 Synopsys, Inc. Method and system for pipe stage gating within an operating pipelined circuit for power savings
US6438700B1 (en) 1999-05-18 2002-08-20 Koninklijke Philips Electronics N.V. System and method to reduce power consumption in advanced RISC machine (ARM) based systems
JP2001188628A (ja) * 1999-12-28 2001-07-10 Nec Corp 画像処理装置の消費電力低減装置
US6919900B2 (en) * 2001-03-23 2005-07-19 Microsoft Corporation Methods and systems for preparing graphics for display on a computing device
JP3497499B2 (ja) * 2002-03-14 2004-02-16 三菱電機株式会社 三次元グラフィック描画装置
US7149909B2 (en) * 2002-05-09 2006-12-12 Intel Corporation Power management for an integrated graphics device
US7081896B1 (en) * 2002-08-27 2006-07-25 Nvidia Corporation Memory request timing randomizer
JP2004355081A (ja) * 2003-05-27 2004-12-16 Internatl Business Mach Corp <Ibm> 情報処理装置及びメモリモジュール
JP2005038186A (ja) * 2003-07-15 2005-02-10 Matsushita Electric Ind Co Ltd 情報処理装置
US7159044B2 (en) * 2004-04-16 2007-01-02 Eagle Broadband, Inc. Input/output device disable control for PC-based consumer electronics device
US7586492B2 (en) * 2004-12-20 2009-09-08 Nvidia Corporation Real-time display post-processing using programmable hardware

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990022626A (ko) * 1995-06-07 1999-03-25 야스카와 히데아키 전력 절약 모드를 갖는 비디오 디스플레이 제어기 장착 컴퓨터시스템
JP2000089848A (ja) 1998-07-24 2000-03-31 Shinki Kagi Kofun Yugenkoshi プロセッサの処理速度の動的制御方法及びシステム
KR20040011428A (ko) * 2000-11-13 2004-02-05 인텔 코포레이션 프로세서 아이들 상태
KR20050117788A (ko) * 2004-06-11 2005-12-15 삼성전자주식회사 중앙 처리 장치의 아이들 상태에서의 시스템 전력 소모절감을 위한 방법 및 그 방법을 적용한 모바일 장치

Also Published As

Publication number Publication date
US7882380B2 (en) 2011-02-01
US20070250728A1 (en) 2007-10-25
TW200821984A (en) 2008-05-16
JP2007293852A (ja) 2007-11-08
CN101101503A (zh) 2008-01-09
KR20070104270A (ko) 2007-10-25
TWI352935B (en) 2011-11-21

Similar Documents

Publication Publication Date Title
KR100925302B1 (ko) 디스플레이 서브시스템용 작업 기반 클록 관리를 위한시스템 및 방법
US7941645B1 (en) Isochronous pipelined processor with deterministic control
TWI552136B (zh) 用以控制自我刷新顯示功能之技術(二)
US9026745B2 (en) Cross process memory management
US7522167B1 (en) Coherence of displayed images for split-frame rendering in multi-processor graphics system
JP4383853B2 (ja) 時間アロケータを有するグラフィックレンダリングエンジンを用いる装置、方法及びシステム
US7616207B1 (en) Graphics processing system including at least three bus devices
KR102628899B1 (ko) 다중-헤드 마운트 디스플레이 가상 현실 구성에서의 디스플레이 맞추기
US8106913B1 (en) Graphical representation of load balancing and overlap
US8233000B1 (en) System and method for switching between graphical processing units
US8259119B1 (en) System and method for switching between graphical processing units
JP3732139B2 (ja) メモリ制御回路及びメモリバスの調停方法
WO2007041146A2 (en) Apparatus and method for switching between buffers using a video frame buffer flip queue
US7545380B1 (en) Sequencing of displayed images for alternate frame rendering in a multi-processor graphics system
US7760205B2 (en) Information processing apparatus for efficient image processing
JP2006318176A (ja) コマンド実行制御装置、コマンド実行指示装置およびコマンド実行制御方法
US9183610B2 (en) Method for graphics driver level decoupled rendering and display
US8447035B2 (en) Contract based memory management for isochronous streams
US9001134B2 (en) Display balance / metering
JP2008145825A (ja) 画像処理装置および画像処理装置の制御方法およびプログラム
US7937606B1 (en) Shadow unit for shadowing circuit status
JP2007133493A (ja) 情報処理装置、グラフィックプロセッサ、制御用プロセッサおよび情報処理方法
US20240111442A1 (en) On-Demand Regulation of Memory Bandwidth Utilization to Service Requirements of Display
JP2006171736A (ja) 画像表示装置及びその方法
JP2006350368A (ja) 画像表示システム、ホスト装置、および画像表示装置

Legal Events

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

Payment date: 20121009

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20131001

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20141006

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20181015

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20191001

Year of fee payment: 11