KR20100098558A - 적어도 두 개의 그래픽 프로세서들을 포함하는 디바이스들에서의 세팅 제어 - Google Patents

적어도 두 개의 그래픽 프로세서들을 포함하는 디바이스들에서의 세팅 제어 Download PDF

Info

Publication number
KR20100098558A
KR20100098558A KR1020107015542A KR20107015542A KR20100098558A KR 20100098558 A KR20100098558 A KR 20100098558A KR 1020107015542 A KR1020107015542 A KR 1020107015542A KR 20107015542 A KR20107015542 A KR 20107015542A KR 20100098558 A KR20100098558 A KR 20100098558A
Authority
KR
South Korea
Prior art keywords
graphics processor
settings
graphics
processor
processors
Prior art date
Application number
KR1020107015542A
Other languages
English (en)
Other versions
KR101615294B1 (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 KR20100098558A publication Critical patent/KR20100098558A/ko
Application granted granted Critical
Publication of KR101615294B1 publication Critical patent/KR101615294B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2320/00Control of display operating conditions
    • G09G2320/06Adjustment of display parameters
    • 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/021Power management, e.g. power saving
    • 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)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Digital Computer Display Output (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Image Processing (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

적어도 두 개의 그래픽 프로세서들을 포함한 디바이스에서, 상기 디바이스가 제1 또는 현재 그래픽 프로세서에서 제2 또는 목표 그래픽 프로세서로 전환했다는 결정이 이루어진다. 상기 제1 그래픽 프로세서에 대응하는 세팅들의 적어도 일부분은 상기 제2 그래픽 프로세서에 대한 애플리케이션을 위해 식별되고, 상기 제2 그래픽 프로세서의 세팅들은 이러한 이전가능 세팅들을 근거로 업데이트된다. 상기 이전가능 세팅들은 상기 제1 그래픽 프로세서에 대응하는 세팅들이 변경됐다는 것을 나타내는 신호들인 변경 표시자(들)을 근거로 확인될 수 있다. 필요한 경우, 상기 이전가능 세팅들 중 어떤 것들은 세팅들을 거기에 적용되는 변환 또는 변형을 가질 수 있다. 상기 작동 그래픽 프로세서에서의 다음 트랜지션들은 유사한 세팅 이전이 발생하게 할 수 있다. 일 실시예에서, 그래픽 프로세서들 사이의 트랜지션들은 디바이스의 전력 조건 변경에 의해 야기될 수 있다.

Description

적어도 두 개의 그래픽 프로세서들을 포함하는 디바이스들에서의 세팅 제어{SETTINGS CONTROL IN DEVICES COMPRISING AT LEAST TWO GRAPHICS PROCESSORS}
본 출원은 같은 날 출원된 동시계속 미국 특허 출원 61/013,527과 관련된다.
본 발명은 일반적으로 그래픽 프로세서들(graphics processors)에 의해 사용되는 세팅들(settings)에 대한 제어에 관한 것으로, 특히, 적어도 두 개의 그래픽 프로세서들을 포함하는 디바이스들에서 이러한 세팅들을 제어하기 위한 기법에 관한 것이다.
고성능(high-end), 이산 그래픽 프로세서들(discrete graphics processors)의 계속 증가되는 전력 요구로 인하여, 긴 배터리 수명을 가지는 배터리-구동형 디바이스들(예를 들어, 랩탑 컴퓨터, 셀룰러 폰과 같은 무선 통신 디바이스, 개인 휴대용 정보 단말기 등)을 설계하는 것이 점점 어려워지고 있다. 대기 기간(standby periods) 동안에 전력 소모(power drain)를 감소시키기 위한 기법들이 사용되는 경우에도, 그러한 그래픽 프로세서들은 여전히 상당한 전력 소비를 요구한다. 고성능을 발휘할 수 있는 우수한 디바이스들에 대한 강세 시장(strong market)이 형성되어이있지만, 배터리들에서 구동되는 동안에 이러한 성능의 상당양을 희생할 필요성 또한 존재한다.
이런 문제점에 대한 한 가지 해결책은 고성능의 이산 그래픽 프로세서(discrete graphic processor) 및 더 전력 효율적인 집적 그래픽 프로세서(integrated graphics processor)를 함께 제공하는 기술이다. 이러한 구성에서, 디바이스가 교류 콘센트(alternating current wall outlet)와 같은 비-배터리 전력 소스(non-battery power source)에 연결될 때에는 이산 그래픽 프로세서가 일반적으로 사용되는데 반해, 디바이스가 배터리로부터 구동되고 있을 때에는 집적 그래픽 프로세서가 사용된다. 이러한 시스템에서 상기 이산 그래픽 프로세서는, 비록 그래픽 성능을 희생한다하더라도, 사용하지 않을 때 완전히 전원을 끔으로써 실질적으로 배터리 수명이 확장되게 한다. 이러한 예들은 본 발명의 양수인(assignee)에 의해 제안된 PowerXpress™ 해결책들이다.
이러한 해결책에서, 집적 그래픽 프로세서와 이산 그래픽 프로세서 사이의 트랜지션(transition)이 거의 또는 완전히 끊김없이(seamless) 이루어지도록 설계된다. 결국, 최종 사용자는 대개 그들이 임의의 주어진 시점에 사용한 그래픽 프로세서가 어느 것인지 알지 못한다. 이것은 특히 그래픽-집약형(graphics-intensive)이 아닌 애플리케이션들(applications)에서 사실이다. 그런 시스템들은 대개, 전체적인 디스플레이 품질과 성능에 관련된 다양한 세팅들 또는 파라미터들을 조정하기 위해서 사용자에 의해 사용되는 소프트웨어 기반의 제어 패널(software-based control panel)을 포함한다.
동일한 또는 유사한 세팅들이 두 가지 형태의 그래픽 프로세서들에 존재하는 경우, 사용자는, 디바이스가 전환(switch)된 후, 예를 들어, 이산 그래픽 프로세서용 제어 패널에서 만들어진 변경이 왜 집적 그래픽 프로세서용 제어 패널에는 반영되지 않는지 혼란스러울 수 있다. 이런 상황에 대한 이유들은 3 가지 서로 다른 클래스들(three different classes)로 구분된다. 한 디바이스 또는 다른 디바이스에 고유(unique)한 세팅들이 제1 클래스를 구성한다. 예를 들어, 그것의 추가 성능 특성들(additional performance capabilities)로 인해 이산 그래픽 프로세서만이 이용할 수 있는 세팅들이 있거나 또는, 반면에, 그것의 추가된 전력 보존 특성들(added power conservation abilities)로 인해 집적 그래픽 프로세서만이 이용할 수 있는 세팅들이 있다. 각각의 디바이스에 대해 동일한 세팅들은 제2 클래스를 구성한다. 제3 클래스는 각각의 디바이스에 대해 유사한 세팅들을 포함하지만, 상기 그래픽 프로세서들의 서로 다른 성능들로 인해, 상기 이용할 수 있는 값들의 범위(range)가 다르다.
부가적으로, 상기 다른 그래픽 프로세서들이 다른 판매회사들에 의해 생산되는 경우들에서, 개개의 디바이스를 위한 제어 패널 애플리케이션들(control panel applications)이 다를 수 있다. 결국, 최종 사용자는 어떤 제어 패널이 현재 작동 그래픽 프로세서(currently active graphics processor)를 제어하기 위해서 사용되어야 하는지 결정하기 어려울 수 있다.
그러므로, 하나의 그래픽 프로세서로부터 적절한 세팅들이 다른 그래픽 프로세서에 자동으로 적용(그리고 필요에 따라, 변환(translation))될 수 있게하는 방법이 필요하다. 추가로, 요청될 때 정확한 제어 패널 애플리케이션이 오픈되게 하는 것이 유익할 것이다.
본 발명의 특징들은 추가된 청구항들에서 상세히 설명된다. 추가 특징들과 부수적인 장점들과 함께 본 발명은 수록한 도면들과 함께 다음의 상세한 기재의 구성으로부터 분명해질 수 있다. 이제, 본 발명의 하나 이상의 실시예들이 예로써 설명되며, 여기서, 유사 참조 번호들은 유사 구성 요소들을 나타낸다.
도 1은 본 발명에 따른 디바이스의 구현의 개략적인 블록도이다.
도 2는 본 발명에 따른 디바이스의 실시예를 도시한 개략적인 블록도이다.
도 3은 본 발명에 따른 두 개의 그래픽 프로세서들 사이의 동작을 트랜지션할 때 디바이스의 동작을 도시한 흐름도이다.
도 4는 본 발명에 따른 그래픽 프로세서 세팅 과정의 예시적인 도면이다.
도 5는 본 발명에 따른 그래픽 프로세서 제어 프로그램을 예시할때의 디바이스의 동작을 도시한 흐름도이다.
도 6은 다중 그래픽 프로세서들(multiple graphics processors)과 관련한 단일 제어 프로그램(single control program)을 사용하는 디바이스에서 본 발명의 실시예의 개략적인 블록도이다.
도 7은 다중 그래픽 프로세서들과 관련한 다중 제어 프로그램들(multiple control programs)을 사용하는 디바이스에서 본 발명의 구현의 개략적인 블록도이다.
도 8은 본 발명을 구현하기 위해 사용될 수 있는 대표적인 하드웨어 설계의 블록도이다.
도 9는 본 발명의 실시예와 관련하여 사용될 수 있는 제어 패널 인터페이스의 도면이다.
도 10은 본 발명의 실시예와 관련하여 사용될 수 있는 다른 제어 패널 인터페이스의 도면이다.
요약하면, 본 발명은 적어도 두 개의 그래픽 프로세서들을 포함하는 디바이스들에서 그래픽 프로세서 세팅들(graphics processor settings)을 다루기 위한 기법들을 제공한다. 본 발명의 일 실시예에서, 상기 디바이스가 제1 또는 현재 그래픽 프로세서(first or current graphics processor)에서 제2 또는 목표 그래픽 프로세서(second or target graphics processor)로 전환(switch)했음이 결정된다. 상기 제1 그래픽 프로세서에 대응하는 적어도 일부분의 세팅들이 상기 제2 그래픽 프로세서에 대한 애플리케이션을 위해 식별되고, 상기 제2 그래픽 프로세서의 세팅들은 이러한 이전가능 세팅들(transferable settings)을 근거로 업데이트된다. 그 후에, 상기 세팅들을 업데이트한 결과가 디스플레이 데이터(display data)를 제공하는 데 사용될 수 있다. 상기 이전가능 세팅들은 제1 그래픽 프로세서에 대응하는 어떤 세팅들이 변경되었는지를 신호하는 변경 표시자(들)(change indicator(s))에 근거하여 식별될 수 있다. 필요한 경우, 상기 이전가능 세팅들 중 어떤 것들에는 변환(translation) 또는 변형(transformation)이 적용되어, 결과적인 변형된 세팅들이 제2 그래픽 프로세서의 세팅들을 업데이트 하는 데 사용될 수 있다. 작동 그래픽 프로세서(active graphics processor)에서의 후속적인 트랜지션들(subsequent transitions)(즉, 제2 그래픽 프로세서로부터 제1 그래픽 프로세서로 되돌아 가는 것)은 유사한 세팅 이동이 발생하게 할 수 있다. 보다 구체적인 실시예에서, 그래픽 프로세서들 사이의 트랜지션은 상기 디바이스의 전력 조건(power condition)에서의 변경에 의해 야기될 수 있다.
본 발명의 다른 실시예에서, 그래픽 프로세서 제어 프로그램 또는 애플리케이션의 선택은 현재 작동 그래픽 프로세서(currently active graphics processor)를 결정하고 상기 현재 작동 그래픽 프로세서에 대응하는 현재 그래픽 프로세서 제어 프로그램을 인스턴스화(instantiating)하는 것에 의해 달성된다. 현재 작동 그래픽 프로세서의 결정은 그래픽 프로세서 제어 프로그램을 런치(launch)하라는 요청(request)에 응답하여, 또는, 예를 들어, 디바이스의 전력 조건에서의 변경이 트랜지션을 개시하는 경우에서처럼 제1 그래픽 프로세서에서 제2 그래픽 프로세서로의 트랜지션에 응답하여 수행될 수 있다. 상기 트랜지션의 통지(notification)가 상기 디바이스의 사용자에게 제공될 수 있다. 이런 방식으로, 본 발명은 그래픽 프로세서들 사이의 원만한 트랜지션(smooth transition)을 보장함으로써, 개선된 사용자 경험을 제공한다.
도 1을 참조하면, 본 발명에 따른 디바이스(100)가 도시된다. 특히, 상기 디바이스(100)는 하나 또는 그 이상의 메모리 디바이스들(memory devices)(112)과 통신하는 적어도 하나의 프로세서(102)를 포함한다. 여기서 사용된 것처럼, 디바이스는 컴퓨터, 텔레비전, 셀룰러 폰과 같은 이동 통신 디바이스 등과 같은, 이미지(또는, 디스플레이) 데이터를 사실상 디스플레이할 수 있는 것을 포함할 수 있다. 일반적으로, 상기 프로세서(102)는, 당업자에게 알려진 것처럼, 하나의 애플리케이션 또는 호스트 프로세서(application or host processor)이다. 여기서, 상기 하나의 애플리케이션 또는 호스트 프로세서는 상기 디바이스(100)의 동작을 제어하고, 종종 마이크로프로세서(microprocessor), 마이크로컨트롤러(microcontroller), 디지털 신호 프로세서(digital signal processor) 또는 데이터에 동작하는 그들 간의 조합으로 구현되고, 실행가능한 명령들(executable instructions)의 제어에 의해, 상기 메모리 디바이스들(112)에 저장된다. 상기 메모리 디바이스들(112)은, RAM(random-access memory), ROM(read-only memory) 등과 같은, 휘발성(volatile)과 비휘발성(non-volatile) 메모리의 임의의 조합을 포함할 수 있다. 상기 프로세서(102)는, 예를 들어, 이미지들(예를 들어, 그래픽들, 스틸 이미지들(still images), 비디오 등)을 디스플레이(110)에 제공하도록 적용된 프로그램들을 포함하는 소프트웨어 프로그램들의 형태로 광범위한 기능(wide array of functionality)을 구현할 수 있다. 상기 디스플레이(110)는, 예를 들어, 랩탑 컴퓨터, 개인 휴대용 정보 단말기(personal digital assistant : PDA) 등에서와 같이, 디바이스(100)에 통합될 수 있다. 선택적으로, 또는 추가로, 상기 디스플레이(110)는, 예를 들어, 데스크 탑 컴퓨터에서와 같이, 외부 디스플레이를 포함할 수 있다.
상기 디바이스(100)에 대한 전력 소스(power source)(116)는 도시된 바와 같이 제공되고, 본 발명 바람직한 실시예에서, 전력 모니터(power monitor)(118)와 통신하며, 바람직하게는 상기 디바이스의 전력 조건에 관련한 데이터(예를 들어, 일반적으로, 어떤 타입의 전력 소스가 현재 사용되고 있는가; 배터리 구동형 디바이스에서, 방전되는 배터리의 비율 또는 남아있는 축적된 전하의 양; 또는 교류 구동형 디바이스(AC powered device)에서, 소비되는 전력의 비율)를 상기 프로세서(102) 또는 코-프로세서(co-processor)(106, 108)에 제공한다. 또한, 프로젝터가 배터리 구동형 랩탑 컴퓨터에 연결된 경우와 같이 디바이스(100)용 전력 소스(116)에 의해 디스플레이(110)에 전력이 공급되지 않는 경우, 모니터링되는 전력 소스는 상기 디스플레이(110)용 전력 소스를 포함할 수 있다. 또한, 당업자에게 알려진 온도 센서들(temperature sensors), 진동 센서들(vibration sensors), 습도 센서들(moisture sensors) 또는 다른 컴포넌트들과 같은 다른 센서들(120)이 또한 제공될 수 있다. 예를 들어, 온도 센서가 점선으로 도시된 것처럼 상기 전력 소스(116)(또는 아래 기재된, 상기 코-프로세서들 중 어느 하나)의 온도를 감시하기 위해서 제공될 수 있다. 이런 방식으로, 상기 전력 소스(116)의 온도(또는 상기 특정 센서(들)(120)의 특성에 의존하는 다른 파라미터들)는 또한 상기 디바이스의 전력 조건을 결정할 때, 입력으로 사용될 수 있다.
앞서 기술된 것처럼, 상기 디바이스(100)는 앞서 기술된 바와 같이 적어도 두 개의 코-프로세서(106, 108)를 포함한다. 당업자에게 알려진 것처럼, 이러한 코프로세서들은 프로세서(102)로부터 특정 프로세싱 태스크들을 덜어내게(offload)하는 데 사용되며, 그럼으로써, 상기 프로세서(102)가 다른 프로세싱 태스크들을 처리할 수 있게 해준다. 비록 도 1에 도시되지는 않았지만, 상기 코-프로세서(들)(106, 108)는 상기 프로세서(102)와 상기 메모리(112)를 공유할 수 있고 및/또는 상기 코-프로세서들(106, 108) 중 어느 하나 또는 모두에 접근 가능한 로컬 메모리를 사용할 수 있다. 바람직한 실시예에서, 상기 코-프로세서(106, 108)는, 당업자에게 알려진 것과 같은 그래픽 프로세서들을 포함하나, 이에 국한되는 것은 아니다. 그러한 코-프로세서들(106, 108)은 이산 그래픽 프로세서(106)와 집적 그래픽 프로세서(108)를 포함할 수 있으나, 다른 조합들이 가능하다. 코-프로세서들, 특히 그래픽 코-프로세서들의 많은 구현들에서, 프로세서(102), 이산 코-프로세서(106) 그리고 메모리 또는 다른 디바이스들(도시되지 않음) 사이에, 소위 노스브리지(Northbridge)(104)와 같은 브리지 디바이스(bridge device)가 제공될 수 있다. 추가로 당업자에게 알려진 것처럼, 상기 집적 코프로세서(integrated coprocessor)(108)는 상기 노스브리지 디바이스(104)의 일부로 구현된다. 대안적으로, 집적 코-프로세서(108)는 애플리케이션 또는 호스트 프로세서(102) 내에 구현될 수 있다.
본 발명의 일 양상에서, 상기 코-프로세서들(106, 108)은 적어도 그것들의 각각의 전력 소비 및 성능의 관점에서 서로 차별화된다. 앞서 언급된 것처럼, 이산 그래픽 프로세서들(106)은 일반적으로 더 큰 전력 소비의 대가로 많은 성능(즉, 많은 프로세싱을 다루기 위한 능력 및/또는 많은 세련된 프로세싱을 수행하기 위한 능력)을 제공한다. 반면에, 집적 그래픽 프로세서(108)는 일반적으로 감소된 성능의 대가로 감소된 전력 소비를 제공한다. 상기 이산 코-프로세서(106) 대 상기 집적 코-프로세서(108)의 다른 전력 소비/성능 특성들은 사용자 성능 및 배터리 수명 요구에 부합하는 더 큰 유연성(flexibility)을 제공한다. 대안적으로, 상기 코-프로세서들(106, 108)은 전력 소비/성능 이외에 다른 것, 예를 들어, 각각의 코-프로세서(106, 108)와 관련된 특수화 또는 다른 성능들의 존재라는 측면에서 차별화될 수 있다. 예를 들어, 데스크톱 또는 노트북 컴퓨터의 사용자는 AC 전력이 사용될 때, 집적 코-프로세서(108)의 더 낮은 팬 노이즈로 인하여 상기 집적 코-프로세서(108)를 사용하기를 원할 것이나, 더 요구되는 애플리케이션들을 런치할 때에는 자동으로 상기 이산 코-프로세서(106)로 전환할 것이다.
결국, 상기 디바이스(100)는 상기 프로세서(102)와 통신 연결하는 하나 이상의 사용자 입력/출력 디바이스들(114)을 포함할 수 있다. 그러한 디바이스들은 당업자에게 알려져 있고, 키보드, 키패드, 포인터 디바이스, 버튼, 마이크로폰, 터치 스트린, 디스플레이 스크, 온-스크린 제어 패널, 스피커, 어넌시에이터(annunciators) 또는, 상기 디바이스(100)의 사용자가 상기 디바이스(100)에 입력을 제공하거나 상기 디바이스(100)로부터 출력을 수신하는 것을 허용하는 임의의 다른 장치 또는 그러한 것들의 조합을 포함하며 이것들에 국한되지 않는다.
도 2를 참조하면, 본 발명에 따른 디바이스(200)의 개략적인 블록도가 추가로 도시된다. 보다 구체적인 실시예에서, 도 2에 도시된 상기 블록들은 도 1에 도시된 상기 프로세서(102)와 같이, 프로세서에 의해서 실행되는 실행가능한 명령들로서 적절한 저장 디바이스에 저장된 소프트웨어 애플리케이션들 또는 프로그램들을 사용하여 구현된다. 그러나, 도 2에 도시된 상기 블록들은, 상기 코-프로세서들(106, 108)과 같이, 적어도 부분적으로 또 다른 프로세서에 의해 실행되는 저장된 프로그램들을 사용해서 구현될 수 있거나 또는, ASIC(application-specific integrated circuits), 프로그래머블 로직 배열들(programmable logic arrays), 또는 당업자에게 알려진 다른 구현 방법들과 같이, 다른 기술들을 사용해서 구현될 수 있는 것으로 이해된다. 부가적으로, 비록 아래의 기재가 그래픽 프로세서들에 대한 특정 참조일지라도, 그럼에도 본 발명은 그런 코-프로세서들에 한정되지 않고 다른 타입의 코-프로세서들에도 동등하게(균일하게/똑같이) 적용될 수 있는 것으로 이해된다.
나타낸 바와 같이, 상기 디바이스(200)는, 필요 또는 요구될 때, 적어도 두 개의 그래픽 프로세서들 중 어느 그래픽 프로세서가 현재 작동되는(active)지, 결정하도록 동작하는 작동 그래픽 프로세서 결정기(active graphics processor determiner)(202)를 포함한다. 이러한 결정기를 만들기 위한 기법들은 당업자에게 알려져 있으며, 상기 기법들은, 예를 들어, 적절한 메모리 위치 또는 제어 레지스터(control register)에 저장된 상태 표시자(status indicator)를 포함할 수 있다. 또한, 이 경우에, 상기 이산 및 집적 코-프로세서들(106, 108)이 다른 벤더들(아래 더욱 상세히 기술된 것처럼)에 의해 제공되는 그래픽 코-프로세서들인 경우에, 현재 작동 그래픽 코-프로세서에 대한 운영 시스템(operating system)에 의해 제공되는 드로잉 명령어들(drawing commands)을 라우트(route)하는 소위 "웨지(wedge)" 드라이버(driver)가 있다. 이 드라이버가 현재 상태(current state)를 이해하여 보고하기 때문에, 그것은 현재 작동되는 코-프로세서(currently active co-processor)를 확인하기 위해서 사용될 수 있다. 이러한 해결책은 웨지 드라이버가 여전히 제공되는 단일 벤더의 경우에 동등하게 적용될 수 있거나 또는, 상기 "웨지"는 단일의, 벤더-제공된 드라이버로 임베딩될 수 있다. 다른 기술들이 당업자에게 명백할 수 있다.
본 발명의 일 실시예에서, 상기 작동 그래픽 프로세서 결정기(202)는 이전가능 세팅 식별자(transferable settings identifier)(204)에 연결된다. 상기 이전가능 세팅 식별자(204)는 제2 그래픽 프로세서에 적용될 수 있는 상기 제1 그래픽 프로세서에 대응하는 세팅들(210)의 적어도 일부분을 확인하기 위해서 동작한다. 여기서 사용된 것처럼, 세팅들은 코-프로세서가 동작하는 방식에 영향을 주는 임의의 사용자-구성가능 파라미터(user-configurable parameter)를 참조한다. 예를 들어, 그래픽 프로세서들의 경우에서, 그러한 세팅들은 그래픽 프로세서에 의해 가능해진 현재 해상도(current resolution), 사용된 컬러 깊이(color depth used), 수행되기 위한 안티-얼라이어싱 필터링의 정도(the degree of anti-aliasing filtering)등을 포함할 수 있다. 아래 더욱 상세히 기술된 것처럼, 그러한 세팅들은 상기 적어도 두 개의 코-프로세서들의 각각의 경우에서 기능 및 범위(range)가 동일할 수 있고, 기능은 동일하나 범위는 동일하지 않을 수 있고 또는, 상기 코-프로세서들 중 어느 하나에 독점적일 수 있다. 세팅들이 코-프로세서들 사이에서 이전(transfer)되는 방법은, 가능하면, 이 연속체(continuum) 내의 세팅들의 위치에 의존한다.
이전가능 세팅 식별자(204)는 작동 그래픽 프로세서 결정기(202)에 의해 제공된 스위치 표시자(switch indicator)(230)에 응답한다. 스위치 표시자(230)는 코-프로세서들 사이에서 어떠한 트랜지션(즉, 상기 코-프로세서에 의해 제공된 상기 디바이스(200)를 위한 지원(support)이 하나의 코-프로세서에서 다른 코-프로세서로 쉬프트됨)이 발생하거나, 또는 발생하려하는 경우들(instances)을 식별한다. 상기 스위치 표시자(230)는, 예를 들어, 다른 코프로세서가 전력 제거되는(전력 공급이 중단되는) 동안 제1 코-프로세서가 전력을 공급받는 경우에, 코-프로세서의 전력 상태에서의 변경에 대응하여 제공될 수 있거나 또는, 예를 들어, 상기 디바이스가 배터리 동작에 대해 스위치된 경우에, 상기 디바이스(200) 자체의 전력 조건에서의 변경에 응답하여 제공될 수 있다. 대안적으로, 그러한 트랜지션은, 예를 들어, 애플리케이션 프로세서에 의해 제공되는 명시적인 명령어들(explicit commands)에 응답하여 검출될 수 있다. 그럼에도, 상기 이전가능 세팅 식별자는 상기 스위치 표시자(230)에 응답하여 이전가능 세팅들을 확인한다. 예를 들어, 보다 구체적인 실시예에서, 상기 이전가능 세팅 식별자(204)는 상기 제1 그래픽 프로세서에 대한 상기 세팅들과 관련된 하나 또는 그 이상의 변경 표시자들(change indicators)(212)을 근거로 상기 이전가능 세팅들을 확인한다. 예를 들어 (도 4에 도시된 바와 같이), 각각의 그래픽 프로세서와 관련된 각각의 세팅은, 그것들과 관련된 대응하는 플래그(408, 410)를 가질 것이며, 이 플래그는 그래픽 프로세서들 간의 최종 트랜지션 이후 주어진 파라미터가 변경되었을 때를 표시한다. 당업자는 이전가능 세팅들을 확인하기 위한 다른 기술들이 동등하게 사용될 수 있다는 것을 알 것이다. 예를 들어, 명시적 변경 플래그들(explicit change flags)을 사용하는 것보다, 변경된(변화된) 세팅들에 대한 식별들(identifications)이 상기 스위치 표시자(230)가 수신될 때 인용되는 로그(log)에 기록될 수 있다. 대안적으로, 모든 가능한 세팅들은 어느 세팅들이 변경되었는지에 상관없이, 스위치가 발생할 때마다 이전될 수 있다. 또한, 세팅들의 이전 세트의 완전한 기록이 유지될 수 있고, 필요하다면, 차이점들을 확인하기 위해서 상기 현재 (잠재적으로 업데이트된) 세팅들이 비교될 수 있다. 두 개의 프로세서들보다 많은 경우에, 상기 기술된 해결책들은 빠르게 복잡해질 될 수 있다. 따라서, 다른 접근법은 타임스탬프(timestamp)를 이전가능한 제어들과 관련시키는 것이다. 타임스탬프 기법과 함께, "최종 변경된 시간(last changed time)"은 각각의 변경에 관련되고, 인에이블되는 프로세서가 그것의 변경에 대해 더 오래된 타임스탬프를 가지는 경우에, 즉, 그것의 변경이 최근이 아닌 경우, 그 뒤 그것은 새로운 세팅들을 받아들인다.
이전가능 세팅들이 식별되는 방법에 상관없이, 이전가능 세팅 식별자(204)는 상기 업데이트 제어기(update controller)(206)에 의한 사용을 위해 이전가능 세팅들을 제공하거나 그렇지 않으면 식별한다. 상기 업데이트 제어기(206)는 제2 또는 목표 그래픽 프로세서용 세팅들이 업데이트되게 한다. 하기에서 더욱 상세히 기술된 것처럼, 하나 이상의 이전가능 세팅들은 제2 그래픽 프로세서에 적절하게 적용되기 위해서 변경 또는 변형이 요구될 수 있다. 이를 위하여, 상기 업데이트 제어기(206)는 임의의 필요한 변형들을 수행하기 위한 변형 컴포넌트(transformation component)(208)를 포함할 수 있다. 대안적으로, 변형 컴포넌트(208)는, 상기 업데이트 제어기(206)의 일부분으로 포함되는 것보다, 설계 선택에 관한 문제로서 상기 업데이트 제어기(206)의 외부에 구현될 수 있다.
본 발명의 다른 실시예에서, 상기 작동 그래픽 프로세서 결정기(202)는 제어 프로그램 선택기(control program selector)(220)에 현재 작동 그래픽 프로세서(232)에 대한 표시(indication)를 제공할 수 있다. 다시 한번, 현재 작동 그래픽 프로세서를 결정하기 위한 기법들은, 앞서 기술된 것처럼 전력 상태 결정들(power state determinations), 소프트웨어 드라이버 결정들(software driver determinations) 또는 명시적인 호스트 명령들(explicit host instructions)을 포함하여, 당업자에게 알려져 있다. 상기 현재 작동 그래픽 프로세서(232)의 명령에 대응하여, 상기 제어 프로그램 선택기(220)는 상기 현재 작동 그래픽 프로세서와 관련된 현재 그래픽 프로세서 제어 프로그램을 인스턴스화하도록 동작한다. 이런 방식으로, 상기 적당한 그래픽 프로세서 제어 프로그램이 현재 사용 중인 상기 그래픽 프로세서에 상관없이 인스턴스화될 수 있다. 여기서 사용된 것처럼, 그래픽 프로세서 제어 프로그램은 바람직하게, 상기 디바이스의 사용자가 상기 제어 프로그램과 관련된 상기 그래픽 프로세서에 관련된 세팅들을 설정하는 것을 허용하는 제어 패널 애플리케이션(control panel application) 또는 다른 프로그램이나 애플리케이션을 포함한다. 예를 들어, 도 1의 상기 이산 코-프로세서(106)는 그것과 관련된 하나의 제어 프로그램을 가질 수 있고, 반면에 상기 집적 코-프로세서(108)는 그것과 관련된 다른 제어 프로그램을 가질 수 있다.
부가적으로, 도 1과 관련되어 위에서 기술된 사용자 출력 디바이스들(114) 또는 디스플레이(110) 중 어느 하나와 같은 사용자 출력 메커니즘(user output mechanism)(224)이 사용되어, 디바이스의 사용자에게 상기 디바이스가 제1 그래픽 프로세서로부터 제2 그래픽 프로세서로의 트랜지션 오퍼레이션(transistion operation)을 가짐을 통지할 수 있다. 예를 들어, 메시지가 상기 트랜지션의 사용자에게 공지하는 디스플레이상에 디스플레이되거나, 톤(tone) 또는 차임(chime)과 같은 가청 표시(audible indication)이 스피커를 통해 제공될 수 있다. 이러한 표시들을 제공하기 위한 기술들은 당업자에게 잘 알려져 있다.
상기 제어 프로그램 선택기는 부가적으로, 요청 입력 메커니즘(request input mechanism)(222)(여기서, 상기 요청 입력 메커니즘은 위에 기술된 사용자 입력 디바이스들(114) 중 어느 하나일 수 있음)으로부터 수신된, 그래픽 프로세서 제어 프로그램을 런치하라는 요청에 응답할 수 있다. 예를 들어, 사용자-선택가능 디스플레이 아이콘(user-selectable display icon) 또는 다른 메커니즘이 사용되어, 사용자에 의한 선택에 의해 제어 프로그램 선택기(220)에 요청이 제공되게 할 수 있다.
도 3을 참조하면, 본 발명의 일 실시예에 따른 디바이스의 동작을 도시한 흐름도가 도시된다. 별도로 언급되지 않는 한, 도 3에 도시된 과정(processing)은 바람직하게 적당한 메모리 디바이스들에 저장된 실행가능한 명령들을 가진 제어 하에서 동작하는 하나 또는 그 이상의 프로세서들을 사용해서 구현된다. 그러나 당업자에게 알려진 것처럼, 프로그래머블 로직 배열들, ASICs, 상태 머신들(state machines) 등등과 같은, 다른 구현 기술들이 동등하게 사용될 수 있다.
블록(302)에서, 디스플레이 데이터(display data)는 현재 그래픽 프로세서와 대응하는 세팅들을 사용하여 제공된다. 디스플레이 데이터를 그래픽 프로세서를 사용하는 디스플레이(display)에 제공하기 위한 기술들은 당업자에게 잘 알려져 있다. 그 후에, 블록(304)에서, 상기 디바이스가 상기 현재 그래픽 프로세서에서 제2 또는 목표 그래픽 프로세서로 스위치되었는지 또는 스위치되려하는지가 결정된다. 위의 경우가 아니라면, 동작 중인 트랜지션들을 위한 체크들이 계속 수행되도록 과정이 블록(302)에서 계속한다. 그러나 블록(304)에서, 동작이 제2 그래픽 프로세서로 스위치되었거나 또는 스위치할 것으로 결정된 경우, 과정은 선택적으로 상기 트랜지션의 통지가 상기 디바이스의 사용자에게 제공될 수 있는 블록(306)에서 계속된다. 그 후에, 이전가능 세팅들이 블록(308)에서 확인될 수 있고, 이 목표 또는 제2 그래픽 프로세서에 대응하는 세팅들이 블록(310)에서 이전가능 세팅들을 근거로 업데이트된다. 도 3에 도시된 과정은 상기 세팅들의 이전이 (가능한 경우) 상기 장치에 가능해졌다고 가정한다. 특히 도 9와 10을 참조하여 하기에서 기술되는 것과 같이, 다양한 기술들이, 예를 들어, "글로벌(global)" 또는 개별(individual) 세팅 방식으로, 세팅들의 이전성(transferability)에 대한 인에이블/디스에이블을 제어하기 위해서 사용될 수 있다.
앞서 언급된 것처럼, 다양한 기술들 중 어느 하나가 상기 이전가능 세팅들을 확인하기 위해서 사용될 수 있다. 마찬가지로, 보다 구체적인 실시예에서, 상기 이전가능 세팅들을 근거로 업데이트된 세팅들이 제공될 수 있는 다양한 기술들이 있다. 예를 들어, 세팅들은 두 개의 그래픽 프로세서들 상에서 기능(즉, 상기 세팅이 개개의 코-프로세서에서 가지는 효과) 및 범위(즉, 상기 세팅이 취할 수 있는 가능한 값들)에 있어서 동일하고, 어떠한 변환도 요구되지 않고 상기 제1 그래픽 프로세서로부터 변경된 값이 상기 제2 그래픽 프로세서로 직접 이전된다. 같은 맥락에서, 상기 세팅이 기능면에서 동일하나 개개의 코-프로세서에 대해 다른 범위를 가지는 경우, 스케일링(scaling) 또는 쉬프팅(shifting)이 사용될 수 있다. 예를 들어, 상기 세팅이 연속적인 값들에 의해 표현되고 최소 및/또는 최대값들이 다른 경우, 제1 코-프로세서에서 제2 코-프로세서로 상기 범위를 스케일하고 쉬프트하기 위해서 수학 공식(mathematical formula)이 사용된다. 또한, 상기 세팅이 두 개의 코프로세서들 상에서 이산의 서로 다른 값들의 세트들(sets of discrete, but different, values)에 의해 표현되는 경우, 두 개의 접근법들 중 어느 하나가 사용될 수 있다. 일 예로, 제1 그래픽 프로세서 세팅 값으로 취한 세팅 값을 나타내기 위해 제2 그래픽 프로세서에 대해 가장 근접한 세팅 값이 사용되는 매핑이 생성된다. 이런 상황에서, 반복된 근사들(repeated approximations)이 연속적으로 다른 값들을 가지는 "워킹(walking)"을 방지하기 위해서 주의해만 한다. 그러기 위해서, 한가지 기법은 라운드 오프 에러(round off error)에 영향을 받지 않는 고정밀 카피(high precision copy)를 유지하는 것이다. 다른 접근법은 제2 코-프로세서에 대응하는 현재 값을 취하여, 그것을 제1 코-프로세서로부터 요청된 (변형되지 않은) 값에 매핑하는 것이다. 상기 값들이 임의의 허용 오차를 가지고 매칭되는 경우, 현재 값이 충분히 근접하게 매치되기 때문에 어떠한 변경도 필요없는 것으로 가정된다.
하나의 코-프로세서에서 세팅을 위한 값들의 범위가 다른 코-프로세서에서 세팅을 위한 값들의 범위의 단지 서브세트와 동일한 상황들이, 또한 발생할 수 있다. 이런 예들에서, 하나의 코-프로세서 상에서 가장 높은 (또는, 가장 낮은, 경우에 따라서) 세팅을 다른 코-프로세서 상에서 가장 높은 (또는, 가장 낮은) 세팅으로 매핑하는 것이 바람직할 수 있다. 예를 들어, 집적 그래픽 프로세서는 1x, 2x 및 4x 앤티-얼라이어싱(anti-aliasing)을 제공할 수 있고, 반면에 상기 이산 그래픽 프로세서는 1x, 2x, 4x 및 8x을 제공할 수 있다. 이 경우에, 집적 프로세서에서에 대한 4x 세팅은 상기 이산 프로세서에서의 8x 세팅에 매핑될 수 있다. 이 경우에, 상기 트랜스레이션은 상기 집적 부분에서 "4x"의 선택을 상기 최대 가능한 값을 선택하는 것으로 해석하고, 따라서 그것을 변환한다. 상기 제어 패널에서의 사용자 세팅은 변환에 대한 이러한 적극적인 기법을 채택할지 또는 좀더 평범한 기법을취할지에 대해서 안내(guidance)를 트랜스레이션 시스템(translation system)에 제공할 수 있다. 선택적으로, 각각의 코-프로세서 용의 제어 패널들은 이런 방식으로 확실하게 전송들이 발생하게 하는 "최소(Min)" 및 "최대(Max)" 세팅을 포함할 수 있다. 따라서, 상기 제어 패널 인터페이스는 "Min, 1x, 2x, 4x, Max" ("MIN"이 1x와 동일하고, "Max"가 4x와 동일한 경우)에 대한 (상기 제1 컨트롤러 상에서의) 위치들을 포함할 수 있다. 반대로, 상기 제2 제어 패널 인터페이스는 "Min, 1x, 2x, 4x, 8x, Max"를 디스플레이한다. 이 경우에, "Max"는 8x이다. "Min" 또는 "Max"를 선택하는 것은 항상, 결과적으로 상기 현재 코-프로세서 상에서, 각각, 최소 또는 최대의 가능한 세팅을 선택하게한다.
일 실시예에서, 상기 제1 그래픽 프로세서가 연속적인 값들을 가진 세팅을 나타내지만 상기 제2 그래픽 프로세서는 덜 유연(flexible)하며 단지 이산 세팅들(discrete settings)을 제공하는 경우, 상기 연속적인 값들에 대한 최근사값(nearest approximation)이 상기 제2 그래픽 프로세서에서 사용된다. 상기 세팅의 특성에 의존하여, 그러한 매핑은 선형(linear) 또는 비선형(non-linear)일 수 있다. 다시 한 번, 값들의 "워킹(walking)"을 방지하기 위해서 위에서 설명된 기법들이 이 상황에서 적용될 수 있다.
도 3을 참조하면, 상기 목표 그래픽 프로세서 상에서 세팅들을 업데이트한 후, 가능하게는 앞선 절들에서 기술된 하나 또는 그 이상의 변형 기법들을 사용해서, 과정이 블록(312)에서 계속되며, 상기 블록(312)에서, 목표 그래픽 프로세서는 현재의 그래픽 프로세서로서 지정되고, 그럼으로써, 제2 그래픽 프로세서로의 트랜지션을 효과적으로 완료한다. 부가적으로 블록(312)에서, 이전가능 세팅들을 식별하는 과정에서 사용되는 임의의 변경 표시자들이 클리어되어, 다음에 프로세서들 간의 트랜지션이 검출될 때 세팅들에 대한 후속적인 변경들이 검출될 것이다. 도 3에 도시된 과정은, 그 이후에, 상기 대응하는 세팅들을 근거로 디스플레이 데이터를 처리하기 위해서 상기 목표 (현재) 그래픽 프로세서를 사용해서 블록(302)에서 반복된다. 이런 방식으로, 그래픽 프로세서들 사이의 세팅들은, 코-프로세서들 사이에 투명하게 (또는 거의 투명하게) 이전되며, 이에 의해 결과적으로 보다 나은 사용자 경험을 제공할 것이다.
도 4는 본 발명에 따른 그래픽 세팅들에 대해 수행할 수 있는 프로세싱에 대한 예시적인 도면이다. 특히, 제1 그래픽 프로세서와 관련된 복수의 세팅들(402)이 대응하는 변경 표시자들(408)과 함께 표시된다. 마찬가지로, 제2 그래픽 프로세서에 대응하는 복수의 세팅들(404)이 대응하는 변경 표시자들(410)과 함께 표시된다. 앞서 언급된 것처럼, 일반적으로 주어진 그래픽 프로세서에 대한 세팅들과 관련한 3가지의 상황들이 있다. 구체적으로, 그러한 세팅들은 직접적으로 이전가능하거나, 어느 정도의 변환 또는 변형(translation or transformation)을 요구하거나 또는, 그래픽 프로세서들 사이에 어떠한 대응세팅들(counterparts)을 가지지 않을 수도 있다. 예를 들어, 도 4에 도시된 바와 같이, 현재 그래픽 프로세서와 관련된 제1 세팅(Ci)은, 상기 제2 그래픽 프로세서와 관련된, 대응하는 세팅(Ti)에 직접 적용될 수 있다. 즉, 상기 세팅들은 기능 및 범위에서 동일하다. 대안적으로, 제1 그래픽 프로세서와 관련된, 제3 세팅(C3)과 같은, 다른 세팅들은, 제2 프로세서의 대응하는 세팅(T3)에 적용되기 이전에 변환(406a)을 요청할 수 있다. 또한, 제1 또는 제2 그래픽 프로세서의 어떤 세팅들은, 예를 들어, 제1 그래픽 프로세서와 관련된 제2 세팅(C2)에 의해 도시된 것과 같이, 어떠한 대응하는 세팅을 가지지 않을 수도 있다. 결국, 그래픽 프로세서들 사이의 가능한 세팅들의 수는 동일할 필요가 없다(예를 들어, 상기 제1 그래픽 프로세서가 전체 N개의 세팅들을 사용하고 반면 상기 제2 그래픽 프로세서가 전체 M ≠ N개인 세팅들을 사용함).
그래픽 프로세서들 사이에 트랜지션이 발생할 때마다, 세팅들의 이전(transfer)(및 그러한 세팅들에 대한 임의의 필요한 변형)을 수행하는 것이 가능하거나 바람직할 수 있다. 바람직한 실시예에서, 그러나, 프로세서들 사이의 트랜지션시 현재 그래픽 프로세서에 대해 변경된 세팅들만이 이전될 필요가 있다. 예를 들어, 도 4에 도시된 바와 같이, 제1 그래픽 프로세서와 관련된 상당 수의 세팅들이 제2 그래픽 프로세서와 관련된 세팅들로 이전될수 있다 하더라도, 대응하는 변경 표시자(408)가 설정된 세팅들만이 실제로 이전된다.
도 5를 참조하면, 본 발명에 따른 그래픽 프로세서 제어 프로그램을 인스턴스화하기 위해 사용되는 동작들을 도시한 흐름도가 도시된다. 다시 한 번, 도 5에 도시된 과정은 바람직하게 도 1에 도시된 애플리케이션 프로세서(102)와 같은 적절히 프로그램된 프로세서를 사용해서 수행된다. 그러나 당업자에게 알려진 바와 같이, 다른 구현 기술들이 동등하게 사용될 수 있다. 두 개의 병렬 경로들(parallel paths)이 도 5에 도시된다. 상기 병렬 경로들 중 제1 경로를 따라서, 블록(502)에서 제어 프로그램을 런치하라는 요청이 수신되었는지가 결정된다. 앞서 언급된 것처럼, 그러한 요청은 디바이스의 사용자에 의해 명시적으로 제공될 수 있다. 그러한 요청이 수신되었을 때, 과정이 블록(504)에서 계속되어, 현재 (즉, 현재 작동되는) 그래픽 프로세서가 식별된다. 그 후에, 블록(506)에서, 현재 작동 그래픽 프로세서에 대응하는 제어 프로그램이 인스턴스화된다. 이런 방식으로, 디바이스의 사용자에 의해 입력된 그래픽 프로세서 제어 프로그램을 런치하라는 요청들은 현재 작동 그래픽 프로세서에 상관없이 정확한 현재 그래픽 프로세서 제어 프로그램을 런치하게된다.
또 다른 병렬 경로인, 제2 경로를 따라서, 블록(508)에서 블록(512)까지 도시된 것처럼, 상기 정확한 그래픽 프로세서 제어 프로그램이, 사용자에 의해 입력된 요청에 응답해서가 아니라, 동작 중인 트랜지션을 검출함에 응답하여, 인스턴스화될 수 있다. 특히, 블록(508)에서, 현재 작동 그래픽 프로세서에 대한 제어 프로그램이 이미 인스턴스화될 수 있다. 그럼에도, 블록(510)에서, 현재 그래픽 프로세서와 목표 그래픽 프로세서 사이에 동작이 트랜지션되는지 결정된다. 만약 그렇다면, 과정은 선택적으로 블록(512)로 계속되어, 상기 디바이스의 사용자가 상기 트랜지션을 통지받게 된다. 그 후, 과정이 앞서 기술된 것처럼, 블록들(504와 506)에서 계속한다.
도 6을 참조하면, 다중 그래픽 프로세서들과 관련한 단일 제어 프로그램(single control program)을 사용하는 본 발명의 실시예가 추가로 도시된다. 특히, 제어 프로그램(602)은 적절한 드라이버(driver)(608)를 통해서 집적 그래픽 프로세서(604)와 이산 그래픽-프로세서(606) 모두와 통신한다. 당업자에게 알려진 바와 같이, 상기 드라이버(608)는 상기 제어 프로그램(602)이 각각의 그래픽 프로세서들(604, 606)과 직접 통신할 수 있게 해주는 소프트웨어 프로그램이다. 제어 프로그램(602)은 또한, 예를 들어, 상기 사용자-구성가능 세팅들(user-configurable settings)(610, 612) 중 어느 하나를 업데이트하거나 또는 상기 세팅 값들을 상기 각각의 그래픽 프로세서(604, 606)에 제공할 때, 대응하는 집적 세팅들(610)뿐만 아니라 대응하는 이산 세팅(612)과도 상호 작용한다. 예를 들어, 상기 집적 그래픽 프로세서(604)와 이산 그래픽 프로세서(606)가 동일한 디바이스 제조업자에 의해 제공되는 그러한 경우에, 도 6에 도시된 구현예이 발생할 수 있다. 이 경우에, 상기 드라이버(608)는 두 개의 그래픽 프로세서들(604, 606)과 상호 작용하도록 쓰일 있다.
대조적으로, 도 7은 다중 그래픽 프로세서들과 함께 다중 제어 프로그램들(multiple control programs)을 사용하는 본 발명의 구현을 도시한다. 이 실시예에서, 제1 제어 프로그램(702)은 적절한 드라이버(710)를 통해서 대응하는 집적 그래픽 프로세서(706)와 통신한다. 마찬가지로, 제어 프로그램(702)은 상기 집적 그래픽 프로세서(706)에 대응하는 집적 세팅들(714)과 상호 작용한다. 병렬적으로, 제2 제어 프로그램(704)은 다른 적당한 드라이버(712)를 통해서 이산 그래픽 프로세서(708)와 통신한다. 마찬가지로, 제2 제어 프로그램(704)은 도시된 것과 같은 이산 세팅들(716)과 통신한다. 추가로 도시된 것처럼, 앞서 설명된 것과 같은 업데이트/트랜스레이션 블록(200)이, 그래픽 프로세서들 사이에서 세팅들을 이전할 때, 사용될 수 있다.
그래픽 프로세서 변경 및 한 그래픽 프로세서에서 다른 그래픽 프로세서로 세팅들을 이전(transferring) 또는 변환(translating)하는 것에 대한 응답으로, 서로 다른 제어 패널들/애플리케이션들이 두 개의 다른 그래픽 프로세서들에서 사용되는 경우, 제2 애플리케이션에서 값들을 설정는 데 사용될 수 있는 몇가지 방법들이 있다. 예를 들어, 제어 패널/애플리케이션이, 당업자에게 알려진, Get/Set/Validate 상호 작용들(interactions)을 허용하는 소프트웨어 개발 키트(software development kit : SDK)를 지원하는 경우, 이러한 상호 작용이 값들을 전달하는 데 사용될 수 있다. 상기 제어 패널/애플리케이션이 정의된 구성 파일(defined configuration file)을 지원하는 경우, 변환된 값들(translated values)은 상기 구성 파일에 매핑되어 상기 제어 패널 애플리케이션을 런치하기 전에 상기 구성 파일에 기입될 수 있다. 같은 맥락에서, 상기 제어 패널/애플리케이션이 정의된 시스템 레지스터리 사양(defined system registry specification)을 지원하는 경우, 변환된 값들이 상기 사양에 매핑되어, 상기 제어 패널 애플리케이션을 런치하기 전에 상기 레지스터리에 기입될 수 있다. 상기 제어 패널/애플리케이션이 초기 값들을 세팅하기 위한 명령어 라인(command line)을 제공하는 경우, 그러한 메커니즘은 상기 변환된 세팅들을 상기 제2 제어 패널/애플리케이션으로 전달(pass)하기 위해서 사용될 수 있다. 또한, 세팅들은, 보통 사용자-구성가능한 세팅들에 대한 값들을 입력하기 위해서 사용되는 마우스 이동(mouse moves), 클릭들(clicks) 및 다른 사용자 엔트리 입력(other user entry input)을 시뮬레이팅하는 것에 의해서 상기 사용자 인터페이스로 스크립트(script)될 수 있다. 마지막으로, 때로는, 한 방향으로의 이전이 가능할 수 있지만, 세팅들을 다시 상기 제1 제어 프로그램으로 이전하는 것은 어렵거나 또는 불가능할 수 있다. 구성 파일 또는 레지스트리가 사용되는 경우에, 상기 시스템이 상기 제1 그래픽 프로세서로 다시 전환될 때, 상기 제2 애플리케이션의 세팅들의 백업(backup)을 만들고 그 백업과 새로운 값들을 비교할 수 있다. 이러한 경우에, (즉, 앞서 기술된 변형들/변환들을 역(reverse)으로 하는) "역 매핑(reverse mapping)"이 사용된다.
도 8을 참조하면, 본 발명에 따라 기술된 과정이, 집적 회로(integrated circuit)와 같은, 하드웨어-기반 구현으로 구체화될 수 있다. 그러기 위해서, 당업자에게 알려진 바와 같이, 실행가능한 명령(800)의 세트(set)가 라이브러리(library)(802) 내에서 정의되고 저장될 수 있고, 또한 메모리(804)에 저장될 수 있다. 상기 명령들(800)은, 집적 회로 설계 시스템(integrated circuit design system)(810)의 프로세서(808) 상에서 실행되는 회로 설계 모듈(circuit design module)(806)에 의해 사용될 수 있으며, 베릴로그(Verilog) 또는 GDSII와 같은 다른 하드웨어 표현(hardware representation)을 포함하나, 이에 국한되지 않고, 임의의 적당한 하드웨어 설계 언어(hardware design language : HDL)로 표현되는 명령들을 포함할 수 있다. 상기 명령들(800)을 사용해서, 상기 시스템(810)은 본 명세서에서 기술된 상기 과정을 수행할 수 있는 적당한 집적 회로 (또는 다른 하드웨어 실시예)를 생성하기 위해서 사용될 수 있다. 그러한 시스템(810)과 회로 설계 모듈(806)은, 당업자에게 알려진 것과 같은, 임의의 적당한 시스템과 집적 회로 설계 프로그램일 수 있다.
도 9를 참조하면, 상기 기술된 다양한 실시예들과 관련되어 사용될 수 있는 대표적인 제어 패널 인터페이스가 추가로 도시된다. 그러한 제어 패널 인터페이스들을 구현하기 위한 기술들은 당업자에게 알려져 있다. 나타낸 바와 같이, 상기 제어 패널(902)은 사용자-선택가능한 (예를 들어, 입력 유닛 디바이스들(114) 중 하나를 사용하는) 복수의 메뉴 버튼들(904)을 포함한다. 부가적으로, 완결성을 기하기 위해 선택가능한 탭(selectable tab)(906)이 도시된다. 상기 메뉴 버튼들(904) 중 하나(상기 도시된 예에서, "선호도(Preferences)" 메뉴 버튼)를 선택하는 것에 의해서, 드롭 메뉴(drop menu)(908)가 ("Enable GPU Settings Transfer"로 라벨된) 글로벌 세팅 이전 인에이블먼트 메커니즘(global settings transfer enablement mechanism)(910)을 포함하는 다수의 메뉴 아이템들(menu items)을 포함하여 제공된다. 상기 인에이블먼트 메커니즘(910)의 선택은 인에이블먼트 메커니즘(910)의 디스플레이로 하여금 그것의 현재 상태, 즉, 선택된(인에이블된) 또는 선택되지 않은(디스에이블된) 상태를 반영하도록 업데이트되게 한다. 도시된 예에서, 인에이블먼트 메커니즘(910)은, 상기 기술된 것과 같이, 세팅 이전 기능(settings transfer functionality)이 모든 이전가능 세팅들에 대해 인에이블된것임을 나타내도록 선택("X"로 도시됨)된다. 상기 인에이블먼트 메커니즘(910)의 후속적인 선택해제(de-selection)은 상기 셋팅 이전 기능을 디스에이블시켜, 각각의 그래픽 프로세서에 대한 세팅들이 독립적으로 제어되어야 하게 할 것이다. 상기 인에이블먼트 메커니즘(910)의 극성(polarity)은 역으로 될 수 있어서, 상기 인에이블먼트 메커니즘의 선택이 상기 이전 기능(transfer functionality)을 디스에이블시키게 하고 그 반대의 경우도 성립되게 할 수 있다.
도 10에 도시된 부가적인 인터페이스 실시예는 특히 개별 세팅들(individual settings)을 제어하기 위한 기법에 관한 것이다. 실시예에서, 개별 세팅들은 3개의 가능한 상태들(three possible states) 중 하나로 존재할 수 있는 것으로 가정된다. 여기서, 상기 3개의 가능한 상태들은, 이전 불가능 상태(not transferable), 이전가능하고 인에이블되지 않은 상태(transferable and not enabled) 및, 이전가능하고 인에이블된 상태(transferable and enabled)일 수 있다. 당업자는 다른 상태들이 쉽게 도출될 수 있다는 것을 인식할 것이다. 이러한 상태들을 가지고, 상기 도시된 실시예는 주어진 세팅의 현재 상태를 묘사하기 위해서 이전 상태 표시자(transfer state indicator)를 사용한다. 예를 들어, 제1 세팅(1002) "Use application setting"이 보통의, 디폴트 폰트(nomal, default font)로 표시되게 보여된다. 이 경우에, 상기 디폴트 폰트는 세팅이 "이전 불가능 상태"에 속한다는 것을 나타낸다. 반면, 각각의 다른 세팅들(1004-1012)은 밑줄표시된 폰트(underlined font)로 표시되어, 대응하는 세팅이 이전가능함을 나타낸다. 따라서, 상기 도시된 예에서, 개개의 감마 세팅(Gamma setting)(1004), 밝기 세팅(Brightness setting)(1006), 콘트라스트 세팅(Contrast setting)(1008), 포화도 세팅(Saturation setting)(1010) 및 틴트 세팅(Tint setting)(1012)은 위에서 설명된 바와 같이 개별적으로 이전될 수 있다. 추가로 도시된 바와 같이, 슬라이더 제어들(slider controls)(1020)은 각각의 세팅에 대한 특정 값들을 선택하기 위해 사용되며, 여기서 상기 값들이 또한 표시된다.
이전가능한 세팅들에 대해, 추가로, 상기 표현된 폰트(rendered font)가 이탤릭체인지를 근거로, 인에이블된 또는 디스에이블된 세팅 이전성(transferability of setting)이 반영된다. 따라서, 이탤릭체가 아닌 이전가능한 세팅은 해당 세팅에 대한 이전(transfer)이 인에이블되었다는 것을 나타내는 표시인 반면, 이탤릭체인 폰트는 해당 세팅의 이전이 인에이블되지 않았다는 것을 나타내는 표시이다. 이러한 식으로, 사용자는 개개의 세팅의 동작적인 상태를 쉽게 결정할 수 있다. 여기서 기술되는 특정한 표시자들(particular indicators) (즉, 디폴트(default), 언더라인(underlined), 이탤릭체 폰트(italicized fonts))은 이러한 목적을 위해 사용될 수 있는 다양한 방식들의 한 예로 이해된다. 예를 들어, 특정 컬러(specific colors), 애니메이션(animation), 폰트 크기 또는 위치, 개별 그래픽 표시자들(separate graphical indicators) 등등의 사용이 동등하게 사용될 수 있다.
게다가, 개개의 개별 세팅들(each of the separate settings)은 그들이 개별적으로 제어될 수 있도록 허용하는 방식으로 표현될 수 있다. 예를 들어, 개개의 세팅을 위한 문자 라벨(textual label) 위를 "우클릭(right-clicking)"하는 것에 의해서, 사용자는 상기 사용자가 특정 세팅의 이전을 인에이블/디스에이블하는 것을 허용하는 메뉴가 제시되게할 수 있다. 또한, 본 명세서에 기술된 글로벌 제어(global control)(910) 및 개별 제어(individual control)(1002-012)는 다른 메커니즘에 의해 이전에 성립된 세팅들의 상태를 수정하는 데 사용될 수 있다. 예를 들어, 상기 인에이블먼트 메커니즘(910)이 모든 가능한 세팅들의 이전을 인에이블하는 데 사용되는 경우, 더욱 세밀하게 전체 동작을 제어하기 위해서 상기 개별 세팅 메커니즘을 통한 특정 세팅의 후속적인 디스에이블먼트가 사용될 수 있다. 반대로, 이전에 구성된 개별 세팅들은 상기 인에이블먼트 메커니즘(910)의 글로벌 인에이블/디스에이블 기능을 통해 파기(overrule)될 수 있다.
상술된 바와 같이, 본 발명은 적어도 두 개의 그래픽 프로세서들을 포함하는 디바이스들에서 그래픽 프로세서 세팅들을 다루기 위한 기법들을 제공한다. 이것은 현재 또는 제1 코-프로세서의 세팅들로부터 이전가능 세팅들을 (바람직하게는 변경되는결과로서) 식별하고, 목표 또는 제2 코-프로세서에 대해 업데이트된 세팅들을 제공하는 것에 의해서 달성된다. 필요한 경우, 변환 또는 변형이 상기 세팅들에 적용될 수 있다. 예를 들어, 그래픽 사용자 인터페이스를 사용해서, 상기 세팅들의 특정 상태가 글로벌하게 및/또는 개별적으로 제어될 수 있다. 그럼에도, 본 발명의 기법들을 사용하여, 사용자들이 그래픽 프로세서들과 같은 코-프로세서들 간의 트랜지션으로 부터 차단되어 그러한 트랜지션을 인식하지 못하게 하는 정도까지 보다 나은 사용자 경험이 제공될 수 있어. 적어도 이러한 이유들 때문에, 본 발명은 이전 기술들에 비하여 진보되어 있다.
그러므로 본 발명은 상기에 기술되고 본 명세서에서 청구되는 기본적인 근본 원칙의 사상과 범위 내에 드는 임의의 모든 수정들, 변화들 또는 등가들을 포함하는 것으로 고려된다.

Claims (40)

  1. 적어도 두 개의 그래픽 프로세서들을 포함하는 디바이스에서 상기 적어도 두 개의 그래픽 프로세서들의 그래픽 프로세서들 사이에 동작(operation)을 트랜지션(transition)하기 위한 방법에 있어서,
    상기 디바이스가 상기 적어도 두 개의 그래픽 프로세서들 중의 제1 그래픽 프로세서로부터 상기 적어도 두 개의 그래픽 프로세서들 중의 제2 그래픽 프로세서로 전환(switch)되었음을 결정하는 단계와;
    이전가능 세팅들(transferable settings)을 제공하기 위하여 상기 제2 그래픽 프로세서에 적용될 상기 제1 그래픽 프로세서에 대응하는 세팅들 중 적어도 일부를 식별하는 단계와; 그리고
    업데이트된 세팅들을 제공하기 위해서 상기 이전가능 세팅들에 근거하여 상기 제2 그래픽 프로세서에 대응하는 세팅들을 업데이트하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서, 상기 이전가능 세팅들을 식별하는 단계는,
    상기 제1 그래픽 프로세서에 대응하는 변경된 세팅들을 식별하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  3. 제2항에 있어서, 상기 제1 그래픽 프로세서에 대응하는 변경된 세팅들을 식별하는 단계는,
    상기 제1 그래픽 프로세서에 대응하는 적어도 일부 세팅들에 대해, 변경 표시자(change indicator)를 검사하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  4. 제3항에 있어서,
    상기 제2 그래픽 프로세서에 대응하는 세팅들이 업데이트되면, 상기 제1 그래픽 프로세서에 대응하는 각각의 세팅에 대한 상기 변경 표시자를 리셋(resetting)하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  5. 제1항에 있어서, 상기 디바이스는 상기 적어도 두 개의 그래픽 프로세서들 중 어느 하나와 통신하는 디스플레이를 더 포함하며,
    상기 업데이트된 세팅들에 근거하여, 상기 제2 그래픽 프로세서가, 디스플레이 데이터를 상기 디스플레이에 제공하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  6. 제1항에 있어서, 상기 이전가능 세팅들에 근거하여 상기 제2 그래픽 프로세서에 대응하는 세팅들을 업데이트하는 단계는,
    상기 제2 그래픽 프로세서에 대응하는 세팅들을 상기 이전가능 세팅들의 대응하는 세팅들로 교체하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  7. 제1항에 있어서, 상기 이전가능 세팅들에 근거하여 상기 제2 그래픽 프로세서에 대응하는 세팅들을 업데이트하는 단계는,
    적어도 하나의 변형된 세팅(transformed setting)을 제공하기 위해서 상기 이전가능 세팅들 중 적어도 하나를 변형하는 단계와; 그리고
    상기 제2 그래픽 프로세서에 대응하는 세팅들을 상기 적어도 하나의 변환된 세팅들 중의 대응하는 세팅들로 교체하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  8. 제1항에 있어서,
    상기 디바이스가 상기 제1 그래픽 프로세서로 전환되었음을 결정하는 단계와;
    추가적인 이전가능 세팅들을 제공하기 위하여 상기 제1 그래픽 프로세서에 적용될 상기 제2 그래픽 프로세서에 대응하는 세팅들의 적어도 일부를 식별하는 단계와; 그리고
    추가적인 업데이트된 세팅들을 제공하기 위하여, 상기 추가적인 이전가능 세팅들에 근거하여 상기 제1 그래픽 프로세서에 대응하는 세팅들을 업데이트하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  9. 제1항에 있어서, 상기 제2 그래픽 프로세서로의 전환은,
    상기 디바이스의 전력 조건의 변화에 의해 야기되는 것을 특징으로 하는 방법.
  10. 적어도 두 개의 그래픽 프로세서들 및 상기 프로세서들과 고유하게(unbiquely) 관련된 적어도 두 개의 그래픽 프로세서 제어 프로그램들을 포함하는 디바이스에서 상기 적어도 두 개의 그래픽 프로세서들의 동작을 제어하기 위한 방법에 있어서,
    상기 적어도 두 개의 그래픽 프로세서들 중 현재 작동(active) 그래픽 프로세서를 식별하는 단계와; 그리고
    상기 적어도 두 개의 그래픽 프로세서 제어 프로그램들 중 현재 그래픽 프로세서 제어 프로그램을 인스턴스화(instantiating)하는 단계를 포함하며, 여기서, 상기 현재 그래픽 프로세서 제어 프로그램은 상기 현재 작동 그래픽 프로세서와 관련된 것을 특징으로 하는 방법.
  11. 제10항에 있어서,
    상기 적어도 두 개의 그래픽 프로세서 제어 프로그램들 중 임의의 그래픽 프로세서 제어 프로그램을 런치(launch)하라는 요청을 수신하는 단계를 더 포함하며,
    여기서, 상기 현재 작동 그래픽 프로세서를 식별하는 단계는, 상기 요청에 응답한 것임을 특징으로 하는 방법.
  12. 제10항에 있어서,
    상기 디바이스가 상기 적어도 두 개의 그래픽 프로세서들 중의 제1 그래픽 프로세서로부터 상기 적어도 두 개의 그래픽 프로세서들 중의 제2 그래픽 프로세서로 동작을 트랜지션했음을 결정하는 단계를 더 포함하며,
    여기서, 상기 현재 작동 그래픽 프로세서를 식별하는 단계는, 상기 디바이스가 상기 제1 그래픽 프로세서로부터 상기 제2 그래픽 프로세서로 동작을 트랜지션했음을 결정함에 응답한 것임을 특징으로 하는 방법.
  13. 제12항에 있어서,
    상기 디바이스가 상기 제1 그래픽 프로세서로부터 상기 제2 그래픽 프로세서로 동작 트랜지션했음을 상기 디바이스의 사용자에게 통지(notifying)하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  14. 적어도 두 개의 그래픽 프로세서들을 포함하며 상기 적어도 두 개의 그래픽 프로세서들의 그래픽 프로세서들 사이에 동작을 트랜지션할 수 있는 디바이스에 있어서,
    동작이 상기 적어도 두 개의 그래픽 프로세서들 중의 제1 그래픽 프로세서로부터 상기 적어도 두 개의 그래픽 프로세서들 중의 제2 그래픽 프로세서로 이동했을 때, 스위치 표시자(switch indicator)를 제공하도록 동작하는 작동 그래픽 프로세서 결정기(active graphics processor determiner)와;
    상기 작동 그래픽 프로세서 결정기와 통신하고 상기 스위치 표시자에 응답하며, 이전가능 세팅들을 제공하기 위해서 상기 제2 그래픽 프로세서에 적용되는 상기 제1 그래픽 프로세서에 대응하는 세팅들 중 적어도 일부분을 식별하도록 동작하는 이전가능 세팅 식별자(transferable settings identifier)와; 그리고
    상기 이전가능 세팅 식별자와 통신하며, 업데이트된 세팅들을 제공하기 위해서 상기 이전가능 세팅들을 근거로 상기 제2 그래픽 프로세서에 대응하는 세팅들을 업데이트하도록 동작하는 업데이트 제어기(update controller)를 포함하는 것을 특징으로 하는 디바이스.
  15. 제14항에 있어서, 상기 이전가능 세팅 식별자는,
    상기 제1 그래픽 프로세서에 대응하는 변경된 세팅들을 식별함으로써 상기 이전가능 세팅들을 식별하도록 동작하는 것을 특징으로 하는 디바이스.
  16. 제15항에 있어서, 상기 이전가능 세팅 식별자는,
    상기 제1 그래픽 프로세서에 대응하는 각각의 세팅에 대해, 변경 표시자를 검사하는 것에 의해서 상기 제1 그래픽 프로세서에 대응하는 변경된 세팅들을 식별하고, 상기 제2 그래픽 프로세서에 대응하는 세팅들이 업데이트되면, 상기 제1 그래픽 프로세서에 대응하는 각각의 세팅에 대한 상기 변경 표시자를 리셋하도록 동작하는 것을 특징으로 하는 디바이스.
  17. 제14항에 있어서,
    상기 적어도 두 개의 그래픽 프로세서들 중 임의의 프로세서와 통신하는 디스플레이를 더 포함하며, 여기서, 상기 제2 그래픽 프로세서는 상기 업데이트된 세팅들에 근거하여 디스플레이 데이터를 상기 디스플레이에 제공하도록 동작하는 것을 특징으로 하는 디바이스.
  18. 제14항에 있어서, 상기 업데이트 제어기는,
    상기 제2 그래픽 프로세서에 대응하는 세팅들을 상기 이전가능 세팅들 중 대응하는 세팅들로 교체함으로써 상기 이전가능 세팅들에 근거하여 상기 제2 그래픽 프로세서에 대응하는 세팅들을 업데이트하도록 동작하는 것을 특징으로 하는 디바이스.
  19. 제14항에 있어서, 상기 업데이트 제어기는,
    상기 이전가능 세팅들 중 적어도 하나를 변환하여 적어도 하나의 변환된 세팅을 제공하고, 상기 제2 그래픽 프로세서에 대응하는 세팅들을 상기 적어도 하나의 변환된 세팅들 중의 대응하는 세팅들로 교체함으로써,
    상기 이전가능 세팅들에 근거하여 상기 제2 그래픽 프로세서에 대응하는 세팅들을 업데이트하도록 동작하는 것을 특징으로 하는 디바이스.
  20. 제14항에 있어서,
    상기 작동 그래픽 프로세서 결정기는, 상기 디바이스가 상기 제1 그래픽 프로세서로 전환되었음을 결정하도록 동작하고,
    상기 이전가능 세팅 식별자는, 상기 제1 그래픽 프로세서에 적용될 상기 제2 그래픽 프로세서에 대응하는 세팅들 중의 적어도 일부를 식별하여 추가적인 이전가능한 세팅들을 제공하도록 동작하며, 그리고 여기서 상기 업데이트 제어기는, 상기 추가적인 이전가능 세팅들을 근거로 상기 제1 그래픽 프로세서에 대응하는 세팅들을 업데이트하여 추가적인 업데이트된 세팅들을 제공하도록 동작하는 것을 특징으로 하는 디바이스.
  21. 제14항에 있어서, 상기 작동 그래픽 프로세서 결정기는,
    상기 디바이스의 전력 조건의 변화에 응답하여 스위치 표시를 제공하도록 동작하는 전력 조건 모니터(power condition monitor)를 포함하는 것을 특징으로 하는 디바이스.
  22. 실행가능한 명령들을 저장하고 있는 프로세서-판독가능 매체로서, 상기 명령들은 실행될 때, 디바이스-상기 디바이스는 적어도 두개의 그래픽 프로세서들을 포함하며, 상기 적어도 두개의 그래픽 프로세서들의 그래픽 프로세서들 사이에 동작을 트랜지션할 수 있음-로 하여금,
    상기 디바이스가 상기 적어도 두 개의 그래픽 프로세서들 중 제1 그래픽 프로세서로부터 상기 적어도 두 개의 그래픽 프로세서들 중 제2 그래픽 프로세서로 전환했음을 결정하게 하고;
    이전가능 세팅들을 제공하기 위해서 상기 제2 그래픽 프로세서에 적용될 상기 제1 그래픽 프로세서에 대응하는 세팅들 중 적어도 일부를 식별하게 하고; 그리고
    업데이트된 세팅들을 제공하기 위해서 상기 이전가능 세팅들에 근거하여 상기 제2 그래픽 프로세서에 대응하는 세팅들을 업데이트하게하는 것을 특징으로 하는 프로세서-판독가능 매체.
  23. 제22항에 있어서,
    상기 프로세서에 의해 실행될 때, 상기 프로세서로 하여금 상기 이전가능 세팅들을 식별하게 하는 상기 실행가능한 명령은,
    상기 프로세서에 의해 실행될 때 상기 프로세서로 하여금 상기 제1 그래픽 프로세서에 대응하는 변경된 세팅들을 식별하게 하는 실행가능한 명령들을 더 포함하는 것을 특징으로 하는 프로세서-판독가능 매체.
  24. 제23항에 있어서,
    상기 프로세서에 의해 실행될 때, 상기 프로세서로 하여금 상기 제1 그래픽 프로세서에 대응하는 변경된 세팅들을 식별하게 하는 상기 실행가능한 명령은,
    상기 프로세서에 의해 실행될 때, 상기 프로세서로 하여금 제1 그래픽 프로세서에 대응하는 각각의 세팅에 대해, 변경 표시자를 검사하게 하고, 상기 제2 그래픽 프로세서에 대응하는 세팅들이 업데이트되면, 상기 제1 그래픽 프로세서에 대응하는 각각의 세팅에 대한 상기 변경 표시자를 리셋하게 하는 실행가능한 명령어들을 더 포함하는 것을 특징으로 하는 프로세서-판독가능 매체.
  25. 제22항에 있어서,
    상기 프로세서에 의해 실행될 때 프로세서로 하여금,
    상기 업데이트된 세팅들을 근거에 근거하여, 디스플레이 데이터를, 상기 적어도 두 개의 그래픽 프로세서들 중 임의의 프로세서와 통신하는 디스플레이에 제공하게 하는 프로세서-실행가능한 명령들을 더 포함하는 것을 특징으로 하는 프로세서-판독가능 매체.
  26. 제22항에 있어서,
    상기 프로세서에 의해 실행될 때, 상기 프로세서로 하여금 상기 이전가능 세팅들에 근거하여 상기 제2 그래픽 프로세서에 대응하는 세팅들을 업데이트하게 하는 상기 실행가능한 명령은,
    상기 프로세서에 의해 실행될 때 상기 프로세서로 하여금 상기 제2 그래픽 프로세서에 대응하는 세팅들을 상기 이전가능한 세팅들 중의 대응하는 세팅들로 교체하게 하는 실행가능한 명령들을 더 포함하는 것을 특징으로 하는 프로세서-판독가능 매체.
  27. 제22항에 있어서, 상기 실행가능한 명령은,
    상기 프로세서에 의해 실행될 때, 상기 프로세서로 하여금 상기 이전가능 세팅들에 근거하여 상기 제2 그래픽 프로세서에 대응하는 세팅들을 업데이트하게 하는 상기 실행가능한 명령은,
    상기 프로세서에 의해 실행될 때, 상기 프로세서로 하여금,
    상기 이전가능 세팅들 중 적어도 하나를 변환하여 적어도 하나의 변환된 세팅을 제공하게 하고; 그리고
    상기 제2 그래픽 프로세서에 대응하는 세팅들을 상기 적어도 하나의 변환된 세팅들 중 대응하는 세팅들로 교체하게 하는 실행가능한 명령어들을 더 포함한 것을 특징으로 하는 프로세서-판독가능 매체.
  28. 제22항에 있어서,
    상기 프로세서에 의해 실행될 때, 상기 프로세서로 하여금,
    상기 디바이스가 상기 제1 그래픽 프로세서로 전환했음을 결정하게 하고;
    추가적인 이전가능 세팅들을 제공하기 위해서 상기 제1 그래픽 프로세서에 적용될 상기 제2 그래픽 프로세서에 대응하는 세팅들 중 적어도 일부를 식별하게 하고; 그리고
    추가적인 업데이트된 세팅들을 제공하기 위해서 상기 추가적인 이전가능 세팅들에 근거하여 상기 제1 그래픽 프로세서에 대응하는 세팅들을 업데이트 하게 하는 프로세서-실행가능한 명령들을 더 포함하는 것을 특징으로 하는 프로세서-판독가능 매체.
  29. 적어도 두 개의 그래픽 프로세서들을 포함하고 상기 적어도 두 개의 그래픽 프로세서들의 그래픽 프로세서들 사이에 동작을 트랜지션할 수 있으며 상기 그래픽 프로세서들과 고유하게(uniquely) 관련된 적어도 두 개의 그래픽 프로세서 제어 프로그램들을 포함하는 디바이스에서 있어서,
    상기 적어도 두 개의 그래픽 프로세서들 중 현재 작동 그래픽 프로세서의 신원(identification)을 제공하도록 동작하는 작동 그래픽 프로세서 결정기; 및
    상기 작동 그래픽 프로세서 결정기와 통신하고, 상기 신원에 응답하여, 상기 적어도 두 개의 그래픽 프로세서 제어 프로그램들 중 현재 그래픽 프로세서 제어 프로그램을 인스턴스화하도록 동작하는 제어 프로그램 선택기(control program selector)를 포함하고, 여기서, 상기 현재 그래픽 프로세서 제어 프로그램은 상기 현재 작동 그래픽 프로세서와 관련된 것을 특징으로 하는 디바이스.
  30. 제29항에 있어서
    상기 작동 그래픽 프로세서 결정기와 통신하며, 상기 적어도 두 개의 그래픽 프로세서 제어 프로그램들 중 임의의 그래픽 프로세서 제어 프로그램을 런치하라는 요청을 수신하도록 동작하는 요청 입력 메커니즘(request input mechanism)을 더 포함하며,
    상기 작동 그래픽 프로세서 결정기는, 상기 요청에 응답하여 상기 현재 작동 그래픽 프로세서를 결정하도록 동작하는 것을 특징으로 하는 디바이스.
  31. 제29항에 있어서, 상기 작동 그래픽 프로세서 결정기는,
    상기 디바이스가 상기 적어도 두 개의 그래픽 프로세서들 중 제1 그래픽 프로세서로부터 상기 적어도 두 개의 그래픽 프로세서들 중 제2 그래픽 프로세서로 동작을 트랜지션했을 때, 상기 신원을 제공하도록 동작하는 것을 특징으로 하는 디바이스.
  32. 제31항에 있어서,
    상기 작동 그래픽 프로세서 결정기와 통신하며, 상기 디바이스가 상기 제1 그래픽 프로세서로부터 상기 제2 그래픽 프로세서로 동작을 트랜지션했음을 상기 디바이스의 사용자에게 통지하도록 동작하는 사용자 출력 메커니즘(user output mechanism)을 더 포함하는 것을 특징으로 하는 디바이스.
  33. 실행가능한 명령들을 저장하고 있는 프로세서-판독가능 매체로서, 상기 명령들은 실행될 때, 디바이스-상기 디바이스는 적어도 두개의 그래픽 프로세서들을 포함하며, 상기 적어도 두개의 그래픽 프로세서들의 그래픽 프로세서들 사이에 동작을 트랜지션할 수 있음-로 하여금,
    상기 적어도 두 개의 그래픽 프로세서들 중 현재 작동 그래픽 프로세서를 식별하게 하고; 그리고
    상기 적어도 두 개의 그래픽 프로세서들과 고유하게 관련된 적어도 두 개의 그래픽 프로세서 제어 프로그램들 중 현재 그래픽 프로세서 제어 프로그램을 인스턴스화하게 하며, 상기 현재 그래픽 프로세서 제어 프로그램은 상기 현재 작동 그래픽 프로세서와 관련되는 것을 특징으로 하는 프로세서-판독가능 매체.
  34. 제33항에 있어서,
    실행될 때, 상기 디바이스로하여금,
    상기 적어도 두 개의 그래픽 프로세서 제어 프로그램들 중의 임의의 그래픽 프로세서 제어 프로그램을 런치하라는 요청을 수신하게 하는 실행가능한 명령들을 더 포함하며, 상기 현재 작동 그래픽 프로세서는 상기 요청에 응답하여 식별되는 것을 특징으로 하는 프로세서-판독가능 매체.
  35. 제33항에 있어서,
    실행될 때, 상기 디바이스로 하여금,
    상기 디바이스가 상기 적어도 두 개의 그래픽 프로세서들 중 제1 그래픽 프로세서로부터 상기 적어도 두 개의 그래픽 프로세서들 중 제2 그래픽 프로세로 동작을 트랜지션했음을 결정하게 하는 실행가능한 명령들을 더 포함하며,
    상기 현재 작동 그래픽 프로세서는 상기 디바이스가 상기 제1 그래픽 프로세서로부터 상기 제2 그래픽 프로세서로 동작을 트랜지션했다는 상기 결정에 응답하여 식별되는 것을 특징으로 하는 프로세서-판독가능 매체.
  36. 제35항에 있어서,
    실행될 때, 상기 디바이스로 하여금,
    상기 디바이스가 상기 제1 그래픽 프로세서로부터 상기 제2 그래픽 프로세서로 동작을 트랜지션했음을 상기 디바이스의 사용자에게 통지하게 하는 실행가능한 명령들을 더 포함하는 것을 특징으로 하는 프로세서-판독가능 매체.
  37. 디스플레이와 사용자 선택 디바이스를 포함하는 그래픽 사용자 인터페이스를 가지는 컴퓨팅 시스템에서, 적어도 두 개의 그래픽 프로세서들의 동작을 제어하기 위한 방법에 있어서,
    상기 디스플레이 상에, 글로벌 세팅 이전 인에이블먼트 메커니즘(global settings transfer enablement mechanism)을 제공하는 단계와;
    상기 사용자 선택 디바이스와 상기 글로벌 세팅 이전 인에이블먼트 메커니즘을 통해서, 사용자 선택 입력(user selection input)을 수신하는 단계와; 그리고
    상기 제1 선택 입력에 근거하여 상기 적어도 두 개의 그래픽 프로세서들의 동작을 제어하는 단계를 포함하며, 상기 사용자 선택 입력은, 이전가능 세팅들이 상기 적어도 두 개의 그래픽 프로세서들에서 사용될것인를 결정하는 데 사용되는 것을 특징으로 하는 방법.
  38. 디스플레이와 사용자 선택 디바이스를 포함한 그래픽 사용자 인터페이스를 구비한 컴퓨팅 시스템에서 상기 컴퓨팅 시스템의 사용자에게 적어도 두 개의 그래픽 프로세서들의 동작 상태를 표시하기 위한 방법에 있어서,
    상기 디스플레이 상에, 상기 적어도 두 개의 그래픽 프로세서들 중 적어도 일부에 적용가능한 세팅에 대한 이전 상태 표시자(transfer state indicator)를 제공하는 단계를 포함하는 것을 특징으로 하는 방법.
  39. 제38항에 있어서,
    상기 디스플레이 상에, 상기 세팅에 대응하는 개별 세팅 이전 인에이블먼트 메커니즘(individual setting transfer enablement mechanism)을 제공하는 단계와;
    상기 사용자 선택 디바이스와 상기 개별 세팅 이전 인에이블먼트 메커니즘을 통해서, 제1 사용자 선택 입력을 수신하는 단계를 더 포함하며, 상기 제1 사용자 선택 입력은, 상기 세팅이 상기 적어도 두 개의 그래픽 프로세서들 사이에서 이전될 지를 결정하기 위해서 사용되는 것을 특징으로 하는 방법.
  40. 제39항에 있어서,
    상기 디스플레이 상에서, 상기 제1 사용자 선택 입력에 응답하여, 상기 이전 상태 표시자의 형상(appearance)을 수정하는 단계를 더 포함하는 것을 특징으로 하는 방법.
KR1020107015542A 2007-12-13 2008-12-12 적어도 두 개의 그래픽 프로세서들을 포함하는 디바이스들에서의 세팅 제어 KR101615294B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/956,061 2007-12-13
US11/956,061 US8022956B2 (en) 2007-12-13 2007-12-13 Settings control in devices comprising at least two graphics processors

Publications (2)

Publication Number Publication Date
KR20100098558A true KR20100098558A (ko) 2010-09-07
KR101615294B1 KR101615294B1 (ko) 2016-05-12

Family

ID=40752579

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107015542A KR101615294B1 (ko) 2007-12-13 2008-12-12 적어도 두 개의 그래픽 프로세서들을 포함하는 디바이스들에서의 세팅 제어

Country Status (6)

Country Link
US (1) US8022956B2 (ko)
EP (1) EP2232433B1 (ko)
JP (1) JP5256300B2 (ko)
KR (1) KR101615294B1 (ko)
CN (1) CN101939761B (ko)
WO (1) WO2009073980A1 (ko)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8635480B1 (en) * 2008-02-26 2014-01-21 Nvidia Corporation Method and apparatus for controlling power to a processing unit
US8300056B2 (en) 2008-10-13 2012-10-30 Apple Inc. Seamless display migration
US9165493B2 (en) * 2008-10-14 2015-10-20 Apple Inc. Color correction of electronic displays utilizing gain control
US9063713B2 (en) 2008-10-28 2015-06-23 Apple Inc. Graphics controllers with increased thermal management granularity
US9542914B2 (en) * 2008-12-31 2017-01-10 Apple Inc. Display system with improved graphics abilities while switching graphics processing units
US8508538B2 (en) * 2008-12-31 2013-08-13 Apple Inc. Timing controller capable of switching between graphics processing units
US8207974B2 (en) * 2008-12-31 2012-06-26 Apple Inc. Switch for graphics processing units
US20100164966A1 (en) * 2008-12-31 2010-07-01 Apple Inc. Timing controller for graphics system
JP5395539B2 (ja) * 2009-06-30 2014-01-22 株式会社東芝 情報処理装置
US8305380B2 (en) * 2009-09-09 2012-11-06 Advanced Micro Devices, Inc. Managing resources to facilitate altering the number of active processors
TWI396976B (zh) * 2009-09-30 2013-05-21 Wistron Corp 具可切換顯示晶片功能之電子裝置及其週邊元件控制方法
US8648868B2 (en) * 2010-01-06 2014-02-11 Apple Inc. Color correction to facilitate switching between graphics-processing units
US8368702B2 (en) 2010-01-06 2013-02-05 Apple Inc. Policy-based switching between graphics-processing units
US8797334B2 (en) 2010-01-06 2014-08-05 Apple Inc. Facilitating efficient switching between graphics-processing units
JP2014085861A (ja) * 2012-10-24 2014-05-12 Canon Inc 表示システム、端末装置、表示装置、表示システムの制御方法、端末装置の制御方法、及び、表示装置の制御方法
TWI522806B (zh) * 2014-10-22 2016-02-21 Giga Byte Tech Co Ltd You can switch the display circuit of the external display port
CN106296564B (zh) * 2015-05-29 2019-12-20 展讯通信(上海)有限公司 嵌入式soc片上系统
KR20170024275A (ko) * 2015-08-25 2017-03-07 삼성전자주식회사 영상 처리 장치, 영상 처리 방법 및 이를 포함하는 전자 시스템
US10573034B2 (en) 2018-04-13 2020-02-25 Honeywell International Inc. System and method for translation of graphics to newer format using pattern matching
US10747207B2 (en) 2018-06-15 2020-08-18 Honeywell International Inc. System and method for accurate automatic determination of “alarm-operator action” linkage for operator assessment and alarm guidance using custom graphics and control charts
US10699159B2 (en) 2018-08-17 2020-06-30 Honeywell International Inc. Objects aggregation and standardization for legacy graphics conversion
US11042957B1 (en) 2019-12-12 2021-06-22 Honeywell International Inc. Identification of process and control linkages from custom graphics for the purpose of backbuilding standard operating procedures

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3300776B2 (ja) * 1994-03-15 2002-07-08 株式会社日立製作所 並列プロセッサの切替え制御方式
US6212645B1 (en) 1998-10-09 2001-04-03 Mediaq Inc. Programmable and flexible power management unit
US6624816B1 (en) * 1999-09-10 2003-09-23 Intel Corporation Method and apparatus for scalable image processing
JP2002202881A (ja) * 2000-10-26 2002-07-19 Matsushita Electric Ind Co Ltd 画像表示装置
JP3862976B2 (ja) * 2001-07-31 2006-12-27 株式会社東芝 表示機構
US6804632B2 (en) * 2001-12-06 2004-10-12 Intel Corporation Distribution of processing activity across processing hardware based on power consumption considerations
JP2005316176A (ja) * 2004-04-28 2005-11-10 Toshiba Corp 電子機器及び表示制御方法
JP2005340954A (ja) * 2004-05-24 2005-12-08 Toshiba Corp 情報処理装置および表示制御方法
US20070094444A1 (en) * 2004-06-10 2007-04-26 Sehat Sutardja System with high power and low power processors and thread transfer
TWM261751U (en) * 2004-07-09 2005-04-11 Uniwill Comp Corp Switching display processing architecture for information device
CN1737784A (zh) * 2004-08-19 2006-02-22 华擎科技股份有限公司 计算机系统升级方法及装置
US7743376B2 (en) * 2004-09-13 2010-06-22 Broadcom Corporation Method and apparatus for managing tasks in a multiprocessor system
CN100507825C (zh) * 2004-12-20 2009-07-01 建碁股份有限公司 计算机图像系统与处理装置
US7730336B2 (en) 2006-05-30 2010-06-01 Ati Technologies Ulc Device having multiple graphics subsystems and reduced power consumption mode, software and methods
US7623131B1 (en) * 2005-12-16 2009-11-24 Nvidia Corporation Graphics processing systems with multiple processors connected in a ring topology
JP5076317B2 (ja) * 2005-12-27 2012-11-21 ソニー株式会社 情報処理装置、情報処理方法及びそのプログラム
US20070283131A1 (en) 2006-01-30 2007-12-06 Ati Technologies Inc. Processing of high priority data elements in systems comprising a host processor and a co-processor
JP4794343B2 (ja) * 2006-03-30 2011-10-19 株式会社バンダイナムコゲームス 画像生成システム、プログラム及び情報記憶媒体
TW200804117A (en) 2006-07-06 2008-01-16 Sin Etke Technology Co Ltd In-vehicle computer system
US7698579B2 (en) 2006-08-03 2010-04-13 Apple Inc. Multiplexed graphics architecture for graphics power management
US8135443B2 (en) 2006-08-31 2012-03-13 Qualcomm Incorporated Portable device with priority based power savings control and method thereof
US20080055322A1 (en) 2006-08-31 2008-03-06 Ryan Thomas E Method and apparatus for optimizing data flow in a graphics co-processor
US7768518B2 (en) * 2006-09-27 2010-08-03 Intel Corporation Enabling multiple instruction stream/multiple data stream extensions on microprocessors

Also Published As

Publication number Publication date
EP2232433A1 (en) 2010-09-29
EP2232433B1 (en) 2020-04-29
WO2009073980A1 (en) 2009-06-18
JP2011507080A (ja) 2011-03-03
US20090153528A1 (en) 2009-06-18
EP2232433A4 (en) 2015-03-04
CN101939761B (zh) 2015-04-22
JP5256300B2 (ja) 2013-08-07
US8022956B2 (en) 2011-09-20
KR101615294B1 (ko) 2016-05-12
CN101939761A (zh) 2011-01-05

Similar Documents

Publication Publication Date Title
KR101615294B1 (ko) 적어도 두 개의 그래픽 프로세서들을 포함하는 디바이스들에서의 세팅 제어
US7660914B2 (en) Auxiliary display system architecture
US20090091537A1 (en) Electronic device with automatic switching input interfaces and switching method thereof
US7511682B2 (en) Context-aware auxiliary display platform and applications
US7886136B2 (en) Computer system, method, and medium for switching operating system
US5822599A (en) Method and apparatus for selectively activating a computer display for power management
JP4996721B2 (ja) 輝度制御装置、輝度制御方法、及び輝度制御プログラム
JP4782042B2 (ja) 電子計算機及びソフトウェアによるユーザインタフェースの実現方法
JP2010287205A (ja) 電子装置、コンピュータ実行システム及びその応用プログラムの表示制御方法
CN102402373B (zh) 一种控制移动终端中触摸键盘的方法及装置
CN111489675B (zh) 一种电子设备调节显示的方法、装置、系统及存储介质
JP2006350956A (ja) 情報処理装置及びプログラム
JP5119047B2 (ja) 操作表示装置及び画像形成装置
JPH1185449A (ja) 情報処理装置、その表示制御方法および記憶媒体
JP2010055641A (ja) 情報処理装置及びプログラム
JP2011100231A (ja) 切替装置、表示装置、動作制御方法及びプログラム
JP2002082743A (ja) 電子機器及び電子機器制御プログラムを記憶した記憶媒体
JP2000020112A (ja) 表示器
JP3728048B2 (ja) 情報処理装置および表示制御方法
JP2009217558A (ja) 表示モード切替方法
WO2014119020A1 (ja) 情報処理装置および情報処理装置の制御方法
JP4995128B2 (ja) 携帯情報処理装置およびそのビデオ信号調整方法
JP2004227363A (ja) 情報処理装置及び情報処理装置の制御方法
JP2007334599A (ja) 情報処理装置、及び情報処理装置の制御方法

Legal Events

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