KR20170113676A - 스푸프 클록의 사용 및 미세 수준 주파수 제어를 통한 역 호환성 - Google Patents

스푸프 클록의 사용 및 미세 수준 주파수 제어를 통한 역 호환성 Download PDF

Info

Publication number
KR20170113676A
KR20170113676A KR1020177026375A KR20177026375A KR20170113676A KR 20170113676 A KR20170113676 A KR 20170113676A KR 1020177026375 A KR1020177026375 A KR 1020177026375A KR 20177026375 A KR20177026375 A KR 20177026375A KR 20170113676 A KR20170113676 A KR 20170113676A
Authority
KR
South Korea
Prior art keywords
operating frequency
version
application
less robust
current version
Prior art date
Application number
KR1020177026375A
Other languages
English (en)
Other versions
KR101862180B1 (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 KR20170113676A publication Critical patent/KR20170113676A/ko
Application granted granted Critical
Publication of KR101862180B1 publication Critical patent/KR101862180B1/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/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/08Clock generators with changeable or programmable clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/08Digital computers in general; Data processing equipment in general using a plugboard for programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/08Digital computers in general; Data processing equipment in general using a plugboard for programming
    • G06F15/10Tabulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Executing Machine-Instructions (AREA)
  • Stored Programmes (AREA)
  • Power Sources (AREA)
  • Microcomputers (AREA)

Abstract

애플리케이션이 시스템의 현재 버전용으로 설계된 경우 제1 작동 주파수로 실행되고 애플리케이션이 제1 작동 주파수보다 낮은 주파수로 작동하는 시스템의 이전 버전용으로 설계된 경우 제2 작동 주파수로 실행된다. 제2 작동 주파수는 두 개의 시스템 간 레이턴시, 스루풋 또는 다른 프로세싱 특성들의 차이들을 고려하기 위해 시스템의 이전 버전의 작동 주파수보다 클 수 있다. 소프트웨어 판독가능한 사이클 카운터들은 실제 작동 주파수가 아니라, 이전 버전의 작동 주파수로 실행되는 스푸프 클록에 기초한다.

Description

스푸프 클록의 사용 및 미세 수준 주파수 제어를 통한 역 호환성
본 발명의 측면들은 컴퓨터 시스템 상에서의 컴퓨터 애플리케이션의 실행과 관련 있다. 특히, 본 발명의 측면들은 컴퓨터 시스템의 구 버전들 용으로 설계된 애플리케이션들/타이틀들에 대한 역 호환성을 제공하는 시스템 또는 방법과 관련 있다.
최신 컴퓨터 시스템들은 보통 상이한 컴퓨팅 작업들에 따라 상이한 프로세서들을 사용한다. 중앙 처리 장치(CPU)에 추가하여, 최신 컴퓨터는 그래픽 파이프라인에서의 특정한 컴퓨터 작업들에 전용되는 그래픽 처리 장치(GPU)를 가질 수 있으며, 이들 양자는 다른 장치들도 포함할 수 있는 가속 처리 장치(APU)의 부분일 수 있다.
보다 강력한 중앙 처리 장치들(CPU들), 그래픽 처리 장치들(GPU들) 및 가속 처리 장치들(APU들)은 보다 높은 레이턴시, 또는 덜 강력한 구성요소들과 상이한 레이턴시 특성들을 가질 수 있다. 예를 들어, 보다 강력한 GPU는 덜 강력한 GPU와 비교할 때 그것의 텍스쳐 파이프라인에 보다 많은 스테이지를 가질 수 있다. 그러한 경우, 이러한 파이프라인의 레이턴시는 증가된다. 다른 예로, 보다 강력한 APU는 그러한 캐시를 갖지 않는 덜 강력한 APU와 비교할 때, CPU용 L3 캐시를 포함할 수 있다. 그러한 경우, 메모리 레이턴시 특성들은 손실되는 데이터에 액세스하기 위해 요구되는 시간이 보다 강력한 APU에 대해 증가하나, 평균 레이턴시는 보다 강력한 APU에 대해 감소할 것이기 때문에 상이하다.
보다 강력한 디바이스 및 덜 강력한 디바이스는 동일한 프로세싱을 수행할 수 있을 수 있으나(예를 들어, CPU 상에서의 프로그램 명령들 또는 GPU 상에서의 다양한 프로그램된 및 고정된 기능 동작들의 실행), 이러한 프로세싱의 레이턴시의 차이들은 보다 강력한 디바이스가 덜 강력한 디바이스에 대해 역 호환가능하게 하는 데 실패하게 할 수 있다. 유사하게, 보다 강력한 디바이스가 역 호환가능하게 하는 데 실패하게 하는 프로세싱의 속도 또는 스루풋의 차이들이 있을 수 있다. 예를 들어, 특정 유형들의 프로세싱에 대해, 보다 강력한 디바이스는 동일한 시간 간격 내에서 프로세싱의 보다 많은 반복을 수행할 수 있을 수 있다. 대안적으로, 보다 강력한 디바이스는 환경에 따라, 덜 강력한 디바이스보다 거동이 빠르거나 느리게 되는 상이한 알고리즘들을 사용하여 프로세싱을 수행할 수 있다.
비디오 게임 콘솔들의 경우, 동작은 통상적으로 설정된 클록 주파수로 되고, 소프트웨어 애플리케이션들은 이러한 설정 주파수에 올바로 작동하는지 테스트된다. 때때로, 보다 강력한 콘솔 상에서 원래의, 덜 강력한 콘솔용으로 생성된 애플리케이션들을 실행하는 것이 바람직하다. 이러한 능력을 보통 "역 호환성(backward compatibility)"이라고 한다. 그러한 경우, 보다 강력한 디바이스가 레이턴시 또는 프로세싱 속도의 차이들의 악영향 없이 덜 강력한 디바이스용으로 생성된 애플리케이션을 실행할 수 있는 것이 바람직하다.
이러한 맥락에서 본 발명의 측면들이 유발된다.
본 발명의 교시 내용들은 첨부 도면들과 함께 하기의 상세한 설명을 고려하여 용이하게 이해될 수 있으며, 여기서:
도 1은 본 발명의 측면들에 따라 다양한 작동 주파수로 구성될 수 있는 시스템을 예시하는 블록도이다.
도 2는 본 발명의 측면들에 따라 시스템을 위한 작동 주파수를 결정하는 데 가능한 프로세스 흐름의 예를 예시하는 흐름도이다.
하기의 상세한 설명은 예시를 위해 구체적인 세부사항들을 포함하지만, 해당 기술분야에서의 통상의 기술자는 하기의 세부사항들에 대한 많은 변형 및 대체가 본 발명의 범위 내임을 이해할 것이다. 따라서, 아래에 설명될 본 발명의 대표적인 실시예들은 청구된 발명에 대한 일반론을 잃지 않고, 그리고 청구된 발명에 어떠한 제한도 가하지 않고 제시된다.
도입
보다 강력한 콘솔 상에서 덜 강력한 콘솔용으로 생성된 애플리케이션들을 실행하기 위한 몇몇 방법이 사용될 수 있다. 일례로, 보다 강력한 콘솔은 원래의 콘솔의 주파수로 실행하도록 설정될 수 있다. 이러한 주파수 설정에서, 보다 강력한 콘솔의 동작은 임의의 순간에 수행되는 특정 프로세싱에 기초하여 달라질 것이고, 수행되는 그러한 특정 프로세싱의 레이턴시(및 다른) 특성들로 인해 덜 강력한 콘솔보다 느리거나 빨라질 수 있다. 보다 강력한 콘솔의 동작이 원래의 콘솔보다 느릴 때, 디스플레이 타이밍, 오디오 스트림아웃 등에 의해 가해지는 실시간 시한들의 충족 불능으로 인해 애플리케이션에 많은 오류가 발생할 수 있다.
다른 예로, 보다 강력한 콘솔은 원래의 콘솔보다 훨씬 더 높은 주파수로 실행하도록 설정될 수 있다. 동작 속도는 수행되는 프로세싱의 구체 사항들에 기초하여 달라질 것이나, 그것은 원래의 콘솔보다 일관적으로 높을 것이고 그에 따라 실시간 시한들이 성공적으로 충족될 수 있다. 그러나, 그러한 고속 동작의 테스트되지 않은 결과들로 인해 애플리케이션에 많은 오류가 발생할 수 있다. 예를 들어, 생산자-소비자 모델에서, 데이터 소비자가 원래 예상보다 높은 속도로 작동하는 경우, 그것은 데이터 생산자가 그것을 이용가능하게 하기 전에 데이터에 액세스하려고 시도할 수 있고, 동기화 메커니즘들이 존재할 수 있지만 그것들은 원래의 콘솔 상에서 그러한 조건들 하에서 테스트될 개연성이 낮다. 대안적으로, 데이터 생산자가 원래 에상보다 높은 속도로 작동하는 경우, 그것은 데이터 소비자에 의해 여전히 사용되고 있는 데이터를 덮어쓸 수 있다.
실시예들
본 발명의 실시예들은 콘솔(즉, 더 강력한 콘솔)을 콘솔의 이전 버전(즉, 덜 강력한 콘솔)보다 높은 주파수로 작동하도록 설정하는 시스템 및 방법을 제공한다. 이상적으로 보다 강력한 콘솔의 주파수는 보다 강력한 콘솔의 동작 속도가 임의의 순간에 수행되는 프로세싱의 구체 사항에 기초하여 달라지기 때문에, 원래의 콘솔의 동작 주파수보다 약간 크게 설정된다. 그러한 구성을 이용하면, 동작 속도가 고속 동작의 의도치 않은 결과들을 촉발하기에 충분히 크지 않고, 또한 실시간 시한들을 충족하는 데 실패하기에 충분히 낮지도 않을 것이기 때문에, 오류들의 발생률이 최소화될 수 있다.
구체적으로, 프로세싱의 레이턴시, 스루풋 도는 다른 측면들의 차이들의 영향들에 대응할 필요 없이, 보다 강력한 콘솔은 단지 다음 두 개의 주파수로 작동될 수 있다: 보다 강력한 콘솔 상에서 실행되도록 생성된 애플리케이션들에 대해 보다 높은 주파수, 및 역 호환성을 위해 원래의 콘솔과 동일한 주파수(즉, 원래의 콘솔용으로 생성된 애플리케이션들을 실행하는 경우). 프로세싱의 레이턴시, 스루풋 도는 다른 측면들의 차이들의 영향들에 대응할 필요로 인해, 동작 주파수에 대해 미세 조정 제어하는 것이 바람직하며, 그에 다라 보다 강력한 콘솔이 원래의 콘솔보다 약간 높은 주파수들로 실행될 수 있다. 정확한 주파수 설정은 콘솔들 및 다양한 소프트웨어 애플리케이션 양자를 사용하여 실험에 의해 결정될 수 있거나, 또는 주파수 설정은 애플리케이션에 따라 달라질 수 있거나, 또는 주파수 설정은 애플리케이션의 성능 특성들에 따라 시시각각 달라질 수 있다.
소프트웨어 애플리케이션이 사이클 카운터, 예를 들어, CPU 또는 GPU의 동작 사이클들의 카운터, 또는 대안적으로 보다 느린 속도로 증분되는 카운터(예를 들어 카운터는 CPU 또는 GPU가 16 클록 사이클을 완료할 때마다 증분될 수 있다)에 액세스할 수 있을 수 있다는 것이 주의된다. CPU 및 GPU의 주파수가 원래의 콘솔 상에 고정됨에 따라, 애플리케이션은 이러한 타이밍의 일관성을 필요로 할 수 있다. 예를 들어, 소프트웨어 애플리케이션은 CPU 및 GPU 간 클록들의 비에 관해 추정을 내릴 수 있다. 대안적으로, 애플리케이션은 다음 수직 귀선 기간까지의 시간을 계산한 다음 렌더링 동작들을 수직 귀선의 시작 이전에 모든 렌더링이 완료됨을 보장하도록 수행되게 변경하기 위해 GPU 사이클 카운터를 사용할 수 있다.
이러한 동일한 소프트웨어 애플리케이션이 보다 강력한 콘솔 상에서 보다 높은 주파수로 실행되는 경우, 그것의 사이클 카운터의 사용에서 많은 오류가 발생할 수 있다. 예를 들어, 보다 높은 주파수에서 수직 귀선 기간들 간 사이클들의 수가 보다 클 수 있기 때문에, 다음 수직 귀선 기간의 시작 이전 이용가능한 시간에 관한 계산이 부정확하여, 렌더링이 수행되는 것에 관한 올바르지 않은 결정들 및 잠재적으로 치명적 오류들을 초래할 수 있다.
따라서, 본 발명의 측면들은 또한 실제 사이클 카운터를 덜 강력한 콘솔의 주파수에 대응하는 수를 리턴하는 스푸프 클록으로 대체하는 시스템 및 방법을 제공한다. 사이클 카운터를 판독하는 것이 실제 사이클 카운트를 리턴하는지, 또는 대신 그것이 스푸프 클록의 값을 리턴하는지는 용례에 따르고 운영 체제에 의해 구성될 수 있다. 본 발명의 실시예들은 두 개의 모드로 작동하도록 구성된 시스템을 제공한다. 제1 모드는 시스템이 정상 동작 주파수로 작동하는 정상 모드이고, 제2 모드는 시스템이 시스템 및 다른 시스템들(예를 들어, 시스템의 구 버전들) 간 호환성을 가정하여 작동하는 호환 모드이다. 시스템은 정상 모드로 활성화 및 작동되도록 구성된다. 그러나, 원래 시스템의 구 버전들 용으로 설계된 애플리케이션 또는 타이틀이 실행되는 경우, 시스템은 로딩된 애플리케이션에 적합한 작동 주파수로 전환하도록 구성될 수 있다.
이제 도 1을 참조하면, 본 발명의 측면들에 따라 다양한 주파수로 작동되도록 구성된 컴퓨팅 시스템(100)의 예시적인 예가 도시된다. 본 발명의 측면들에 따라, 시스템(100)은 내장 시스템, 이동 전화, 퍼스널 컴퓨터, 태블릿 컴퓨터, 휴대용 게임 디바이스, 워크스테이션, 게임 콘솔 등일 수 있다.
시스템은 일반적으로 예를 들어, 아래에 논의될, 도 2의 방법과 마찬가지로 특징들을 갖는 방법을 수행함으로써, 본 발명의 측면들을 구현하도록 구성된 프로세서 및 메모리를 포함한다. 예시된 예에서, 프로세서는 중앙 처리 장치(CPU)(120), 및 그래픽 처리 장치(GPU)(130)를 단일 칩 상에 포함하는 가속 처리 장치(110)이다. 대안적인 구현예들에서, CPU(120) 및 GPU(130)는 별개의 칩들 상에 별개의 하드웨어 구성요소들로서 구현될 수 있다. 시스템(100)은 또한 메모리(140)를 포함할 수 있다. 메모리(140)는 CPU(120) 및 GPU(130)에 액세스가능한 메인 메모리 장치를 선택적으로 포함할 수 있고, 메인 메모리의 부분들은 그래픽 메모리(142)의 부분들을 선택적으로 포함할 수 있다. CPU(120) 및 GPU(130)는 각각 하나 이상의 프로세서 코어, 예를 들어, 단일 코어, 두 개의 코어, 네 개의 코어, 여덟 개의 코어, 또는 그 이상을 포함할 수 있다. CPU(120) 및 GPU(130)는 데이터 버스(190)를 사용하여 하나 이상의 메모리 장치들에 액세스하도록 구성될 수 있고, 몇몇 구현예에서, 그것은 시스템(100)이 두 개 이상의 상이한 버스를 포함하기 위해 유용할 수 있다.
메모리(140)는 어드레싱가능한 메모리, 예를 들어, RAM, DRAM 등을 제공하는 집적 회로들의 형태의 하나 이상의 메모리 장치를 포함할 수 있다. 메모리는 시스템을 위한 작동 주파수를 결정하기 위해 실행시 도 2의 방법을 구현하도록 구성된 실행가능한 명령들을 포함한다. 덧붙여, 그래픽 메모리(142)는 그래픽 자원들, 그래픽 버퍼들, 및 그래픽 렌더링 파이프라인에 대한 다른 그래픽 데이터를 일시적으로 저장할 수 있다. 그래픽 버퍼들은 예를 들어, 버텍스 파라미터 값들을 저장하기 위한 하나 이상의 버텍스 버퍼 및 버텍스 인덱스들을 저장하기 위한 하나 이상의 인덱스 버퍼를 포함할 수 있다. 그래픽 버퍼들은 또한 하나 이상의 렌더 타겟(144)을 포함할 수 있으며, 이는 본 발명의 측면들에 따라 계산된 픽셀/샘플 값들을 유지하는 컬러 버퍼들(145) 및 깊이 버퍼들(146) 양자를 포함할 수 있다. 특정 구현예들에서, 컬러 버퍼들(145) 및/또는 깊이 버퍼들(146)은 디스플레이 버퍼(147)에 저장될 디스플레이 픽셀 컬러 값들의 최종 어레이를 결정하기 위해 사용될 수 있으며, 이는 디스플레이 상에서의 제시를 위해 의도된 최종 렌더링된 이미지를 구성할 수 있다. 특정 구현예들에서, 디스플레이 버퍼는 프론트 버퍼 및 하나 이상의 백 버퍼를 포함할 수 있고, GPU(130)는 디스플레이(180) 상에서의 제시를 위해 디스플레이 버퍼(147)의 프론트 버퍼로부터의 그래픽 프레임들을 스캔아웃하도록 구성될 수 있다.
CPU(120)는 CPU 코드를 실행하도록 구성될 수 있으며, 이는 운영 체제(121) 또는 렌더링된 그래픽(이를테면 비디오 게임) 및 대응하는 그래픽 API(124)를 이용하는 애플리케이션(122)을 포함하여 애플리케이션(122)의 상태에 기초하여 GPU(130)에 의해 구현되는 프로그램들에 그리기 명령들 또는 그리기 호출들을 발행할 수 있다. CPU 코드는 또한 물리 시뮬레이션들 및 다른 기능들을 구현할 수 있다. CPU 및 GPU 클록들(156C, 156G)은 CPU 및 GPU가 시스템(100)의 표준 클록 속도와 상이한 클록에 기초하여 명령들을 실행하게 하도록 구성될 수 있다. 제한으로서가 아니라, 예로서, 애플리케이션(122)이 시스템(100)의 덜 강력한 버전용인 경우, 클록 주파수들(156C, 156G)의 값은 덜 강력한 버전의 클록 주파수들, 또는 시스템(100)에서의 보다 높은 레이턴시에서 발생하는 이슈들이 존재하는 경우보다 약간 높은 주파수에 대응할 수 있다.
그래픽의 렌더링을 지원하기 위해, GPU(130)는 버텍스 셰이더들 및 픽셀 셰이더들을 포함할 수 있는, 셰이더들(134)을 실행할 수 있다. GPU는 또한 다른 셰이더 프로그램들, 이를테면 예를 들어, 지오메트리 셰이더들, 테셀레이션 셰이더들, 컴퓨트 셰이더들 등을 실행할 수 있다. GPU(130)는 또한 특화된 하드웨어 모듈(132)을 포함할 수 있으며, 이는 하나 이상의 텍스처 맵핑 장치들 및/또는 그래픽 파이프라인의 하나 이상의 스테이지에서 동작들을 구현하도록 구성된 다른 하드웨어 모듈들을 포함할 수 있다. 셰이더들(134) 및 하드웨어 모듈들(132)은 최종 픽셀 값들이 디스플레이를 위해 출력되기 전 파이프라인에서의 다양한 스테이지에서 메모리(140) 및 버퍼들(144) 내 데이터와 인터페이싱할 수 있다. APU(110), CPU(120) 및 GPU(130)에 의해 실행되도록 구성된 셰이더들(134) 및/또는 다른 프로그램들은 비-일시적 컴퓨터 판독가능한 매체에 명령들로서 저장될 수 있다. 제한으로서가 아니라, 예로서, GPU는 래스터라이저 모듈(136)을 구현할 수 있으며, 이는 샘플들의 성질에 따라 스크린 공간 픽셀들에 대한 프리미티브들의 다수의 샘플을 취하도록 그리고 하나 이상의 픽셀 셰이더를 인보크하도록 구성될 수 있다.
시스템(100)은 또한 주지된 지원 기능들(150)을 포함할 수 있으며, 이는 예를 들어, 버스(190)를 통해, 시스템의 다른 구성요소들과 통신할 수 있다. 그러한 지원 기능들은 이에 제한되지는 않으나, 입력/출력(I/O) 요소들(152), 하나 이상의 클록(CPU(120) 및 GPU(130) 각각에 대해 별개의 클록들(156C, 156G)을 포함할 수 있는), 및 캐시(158)를 포함할 수 있다. 시스템(100)은 프로그램들 및/또는 데이터를 저장하기 위해 대용량 저장 디바이스(160) 이를테면 디스크 드라이브, CD-ROM 드라이브, 플래시 메모리, 테이프 드라이브, 블루-레이 드라이브 등을 선택적으로 포함할 수 있다. 일례로, 대용량 저장 디바이스(160)가 원래 덜 강력한 시스템 상에서 실행하도록 구성된 레거시 애플리케이션을 포함하는 컴퓨터 판독가능한 매체(162)를 수용할 수 있다. 대안적으로, 레거시 애플리케이션(162)(또는 그것의 부분들)은 메모리(140)에 또는 부분적으로 캐시(158)에 저장될 수 있다.
디바이스(100)는 또한 시스템(100) 및 사용자 간 상호작용을 가능하게 하기 위해 사용자 및 사용자 인터페이스 장치(170)에 렌더링된 그래픽(182)을 제시하기 위한 디스플레이 장치(180)를 포함할 수 있다. 디스플레이 장치(180)는 평면판 디스플레이, 음극선관(CRT) 스크린, 터치 스크린, 헤드 장착 디스플레이(HMD) 또는 텍스트, 수치들, 그래픽 심볼들, 또는 이미지들을 디스플레이할 수 있는 다른 디바이스의 형태로 될 수 있다. 디스플레이(180)는 여기에 설명된 다양한 기술에 따라 프로세싱되는 렌더링된 그래픽(182)을 디스플레이할 수 있다. 사용자 인터페이스(170)는 하나 이상의 주변장치, 이를테면 키보드, 마우스, 조이스틱, 라이트 펜, 게임 제어기, 터치 스크린 및/또는 그래픽 사용자 인터페이스(GUI)와 함께 사용될 수 있는 다른 디바이스를 포함할 수 있다. 특정 구현예들에서, 예를 들어, 애플리케이션(122)이 비디오 게임을 포함하는 비디오 게이밍 구현예들에서, 애플리케이션(122)의 상태 및 그래픽의 기본이 되는 콘텐츠는 적어도 부분적으로 사용자 인터페이스(170)를 통한 사용자 입력에 의해 결정될 수 있다.
시스템(100)은 또한 디바이스가 네트워크를 통해 다른 디바이스들과 통신할 수 있게 하기 위해 네트워크 인터페이스(172)를 포함할 수 있다. 네트워크는 예를 들어, 근거리 네트워크(LAN), 광역 네트워크 이를테면 인터넷, 개인 영역 네트워크, 이를테면 블루투스 네트워크 또는 다른 유형의 네트워크일 수 있다. 제시되고 설명된 구성요소들 중 다양한 구성요소는 하드웨어, 소프트웨어, 또는 펌웨어, 또는 이들의 두 개 이상의 몇몇 조합으로 구현될 수 있다.
본 발명의 측면들에 따라, CPU(120)는 CPU 동작들의 실행을 동기화하기 위해 사이클 카운터(CCC)를 구현하는 하드웨어 구성요소들을 포함할 수 있다. 유사하게 GPU(130)는 GPU 동작들의 실행을 동기화하기 위해 사이클 카운터(CCG)를 구현하는 하드웨어 구성요소들을 포함할 수 있다. 사이클 카운터들(CCC, CCG)은 대응하는 표준 클록(156C, 156G) 또는 대응하는 스푸프 클록(125, 135)일 수 있는 클록에서 클록 사이클들을 판독한다. 본 발명의 측면들에 따라, 시스템(100)의 현재 버전용으로 쓰여진 애플리케이션들을 실행할 때, 사이클 카운터들(CCC, CCG)은 표준 클록들(156C, 156G)에서 사이클들을 판독하도록 구성될 수 있는 반면, 시스템의 덜 강력한 버전용으로 쓰여진 애플리케이션들을 실행할 때, 사이클 카운터들(CCC, CCG)은 스푸프 클록들(125, 135)에서 사이클들을 판독하도록 구성될 수 있으며, 이들은 하드웨어의 덜 강력한 버전의 표준 작동 주파수로 설정될 수 있다.
도 2는 운영 체제(121), 또는 다른 소프트웨어 또는 하드웨어 메커니즘들에 의해 구현될 때, 본 발명의 측면들에 따라 콘솔을 위한 동작 주파수를 결정하는 데 가능한 프로세스 흐름의 예를 예시하는 흐름도이다. 201에서, 애플리케이션(122)이 시스템(100) 상에서 실행하기 위해 로딩된 경우 동작이 정상 모드로 시작될 수 있다. 먼저, 210에 표시된 바와 같이, 소프트웨어와 연관된 소프트웨어 ID, 소프트웨어 검사합, 메타데이터, 미디어 유형, 또는 다른 검사합을 통해, 애플리케이션(122)이 이 시스템용으로 설계되었는지 또는 시스템의 이전 버전용으로 설계되었는지 결정한다. 로딩된 애플리케이션이 시스템(100)을 위해 의도되었다고 결정되는 경우, 시스템은 220에 표시된 바와 같이, 정상 주파수로 실행될 수 있다. 예를 들어, CPU(120) 및 GPU(130)는 각각, 그것들의 정상 작동 주파수들로 실행될 수 있다. 특히, 사이클 카운터들(CCC, CCG)은 222에 표시된 바와 같이, 대응하는 클록들(156C 및 156G)을 판독할 수 있다.
로딩된 애플리케이션(122)이 시스템(100)의 덜 강력한 버전용으로 설계된 경우, 시스템은 230에 표시된 바와 같이, 오류 없는 동작을 위한 클록 주파수를 결정할 수 있다. 제한으로서가 아니라, 예로서, 클록들(156C, 156G)은 CPU(120) 및 GPU(130)를 덜 강력한 시스템에서의 대응하는 클록 주파수들보다 약간 높은 주파수들로 실행하도록 설정될 수 있다. 대안적으로, 클록 주파수들(156C, 156G)은 시스템(100)의 동작 속도가 임의의 순간에 수행되는 프로세싱의 구체 사항에 기초하여 달라짐에 따라, 프로세싱이 동일한 속도로 또는 덜 강력한 시스템보다 약간 빠른 속도로 발생하도록 실시간으로 조절될 수 있다. 클록 주파수들은 CPU(120) 및/또는 GPU(130)를 이용한 프로세싱의 보다 높은 레이턴시, 스루풋 및 다른 측면들의 영향들을 고려하는 방식으로 결정될 수 있다. 스푸프 클록 주파수들(125, 135)은 232에 표시된 바와 같이, 덜 강력한 시스템의 CPU 및 GPU 동작의 표준 주파수들에 대응하도록 설정된다. 특히, 234에 표시된 바와 같이, 사이클 카운터들(CCC, CCG)은 대응하는 스푸프 클록들(125 및 135)을 판독하도록 구성된다.
예를 제공하기 위해, 시스템의 이전 버전의 GPU는 500MHz의 GPU 클록으로 실행될 수 있고, 현재 시스템은 750MHz의 GPU 클록(156G)으로 실행될 수 있다. 단지 현재 시스템용으로 설계된 애플리케이션이 로딩되는 경우 시스템은 750MHz로 설정된 156G로 실행될 것이다. 이러한 예에서, 사이클 카운터(CCG)는 750MHz 주파수에 대응할 것이다(즉, 그것은 실제 사이클 카운터이다). 레거시 애플리케이션(즉, 시스템의 이전 버전용으로 설계된 애플리케이션)이 로딩된 경우, 시스템(100)은 이전 시스템의 작동 주파수보다 약간 높은 주파수로(예를 들어, 505MHz로 설정된 156G로) 실행될 수 있다. 이러한 역 호환 모드에서, GPU 스푸프 클록(135)은 500MHz로 실행하도록 구성될 것이고, 사이클 카운터(CCG)는 스푸프 클록에서 유도되어, 레거시 애플리케이션에 예상 값을 제공할 것이다.
현재 시스템은 레이턴시 특성들, 스루풋, 또는 계산시 채용되는 알고리즘들 면에서 이전 시스템과 상이할 수 있고, 그에 따라 계산의 결과들이 동일할 수 있더라도, 콘솔의 동작 속도는 수행되는 동작들의 구체 사항에 기초하여 달라질 것이다. 결과적으로, 로딩된 애플리케이션(122)이 레거시 애플리케이션인 경우, 클록들(156C, 156G)을, 로딩되는 특정 애플리케이션의 테스팅에 의해, 예를 들어 보다 높은 클록 주파수로 실행함으로써 그리고 프로세싱 오류가 더 이상 발생하지 않을 때까지 유효 클록 주파수를 증분적으로 감소시킴으로써 결정된 값들로 설정하는 것이 바람직할 수 있다. 또한 애플리케이션의 성능 특성들에 기초하여, 클록들(156C, 156G)을 동적으로 조절하는 것이 바람직할 수 있다.
본 발명의 측면들은 덜 강력한 시스템용으로 쓰여진 프로그램들이 보다 강력한 시스템 상에서 실행되는 경우 발생하는 역 호환성이 갖는 문제들을 극복한다. 보다 강력한 시스템의 시스템 클록 속도를 조절하는 것은 디바이스든 간 차이들을 충당한다. 판독가능한 사이클 카운터들이 실제 클록 대신 스푸프 클록에 기초하는 것은 레거시 애플리케이션 코드의 정확한 동작을 가능하게 한다.
상기한 내용이 본 발명의 바람직한 실시예에 대한 완전한 설명이더라도, 다양한 대안, 변경 및 등가를 사용하는 것이 가능하다. 따라서, 본 발명의 범위는 상기한 설명을 기준으로 결정되는 것이 아니라, 등가물들에 대한 그것들의 전체 범위와 함께, 첨부된 청구항들을 기준으로 결정되어야 한다. 선호되는지 여부에 관계없이, 여기에 설명된 임의의 특징은 선호되는지 여부에 관계없이, 여기에 설명된 임의의 다른 특징과 조합될 수 있다. 하기의 청구항들에서, 단수 표현("하나의", 또는 "한 개의")은 명백히 다르게 언급되는 경우를 제외하고는, 단수 표현 다음의 항목의 하나 이상의 수량을 지칭한다. 첨부된 청구항들은 그러한 제한이 구 "~ 수단"을 사용하여 주어진 청구항에서 명백하게 나열되지 않는 한, 기능식(means-plus-function) 제한들을 포함하는 것으로 해석되지 않아야 한다.

Claims (21)

  1. 방법으로서,
    a) 시스템의 현재 버전 상에 로딩된 애플리케이션이 시스템의 상기 현재 버전용인지 또는 상기 시스템의 덜 강력한 버전용인지를 결정하는 단계,
    b) 상기 애플리케이션이 시스템의 현재 버전용으로 설계된 경우 상기 애플리케이션을 프로세서 상에서 상기 시스템의 상기 현재 버전의 표준 작동 주파수로 실행하는 단계; 또는
    c) 상기 애플리케이션이 상기 시스템의 덜 강력한 버전용으로 설계된 경우 상기 애플리케이션을 제2 작동 주파수로 실행하는 단계를 포함하고,
    상기 시스템의 상기 현재 버전은 상기 표준 작동 주파수에 의해 특징지어지며,
    상기 시스템의 상기 덜 강력한 버전은 상이한 표준 작동 주파수에 의해 특징지어지고, 상기 제2 작동 주파수는 상기 시스템의 상기 현재 버전의 상기 표준 작동 주파수보다 낮고 상기 시스템의 상기 덜 강력한 버전의 상기 표준 작동 주파수보다 높은, 방법.
  2. 청구항 1에 있어서, a)는 상기 애플리케이션의 소프트웨어 ID, 상기 애플리케이션의 소프트웨어의 검사합, 상기 애플리케이션과 연관된 메타데이터, 또는 상기 애플리케이션과 연관된 미디어 유형을 검토하는 단계를 포함하는, 방법.
  3. 청구항 1에 있어서, c)는 상기 시스템의 상기 현재 및 덜 강력한 버전들 간 레이턴시 또는 레이턴시 특성들의 차이, 상기 시스템의 상기 현재 및 덜 강력한 버전들 간 동작 속도 또는 스루풋 차이들, 또는 상기 시스템의 상기 현재 및 덜 강력한 버전들 간 계산들에 채용되는 알고리즘에 대한 차이들에 기초하여 제2의 상기 주파수를 설정하는 단계를 포함하는, 방법.
  4. 청구항 1에 있어서, 상기 시스템의 상기 현재 버전은 소프트웨어 판독가능한 사이클 카운터를 포함하며, 상기 소프트웨어 판독가능한 사이클 카운터는 상기 시스템의 상기 덜 강력한 버전의 상기 표준 작동 주파수로 또는 동작에 오류들을 촉발하는 것을 회피하도록 그것에 가까운 속도로 증분하는, 방법.
  5. 청구항 1에 있어서, 상기 시스템의 상기 현재 버전은 소프트웨어 판독가능한 사이클 카운터를 포함하고, c)는 덜 강력한 상기 시스템의 상기 표준 작동 주파수로 또는 동작에 오류들을 촉발하는 것을 회피하도록 그것에 가까운 속도로 상기 사이클 카운터를 증분하며, b)는 상이한 속도로 상기 사이클 카운터를 증분하는, 방법.
  6. 청구항 1에 있어서, c)는 상기 제2 작동 주파수를 상이한 애플리케이션들에 따라 상이한 값들로 설정하는 단계를 포함하는, 방법.
  7. 청구항 1에 있어서, c)는 상기 제2 작동 주파수를 상기 프로세서 상에서 현재 실행되고 있는 상기 애플리케이션의 성능 특성들에 기초하여 동적으로 설정하는단계를 포함하는, 방법.
  8. 청구항 1에 있어서, c)는 상기 제2 작동 주파수를 상기 시스템의 상기 현재 버전 및 상기 덜 강력한 버전 간 레이턴시 또는 레이턴시 특성들의 차이들을 고려하여 결정하는 단계를 더 포함하는, 방법.
  9. 청구항 1에 있어서, c)는 상기 제2 작동 주파수를 상기 시스템의 상기 현재 버전 및 상기 덜 강력한 버전 간 스루풋 차이들을 고려하여 결정하는 단계를 더 포함하는, 방법.
  10. 청구항 1에 있어서, c)는 상기 제2 작동 주파수를 상기 시스템의 상기 현재 버전 및 상기 덜 강력한 버전 간 계산들에 사용되는 알고리즘들에 대한 차이들을 고려하여 결정하는 단계를 더 포함하는, 방법.
  11. 시스템으로서,
    프로세서;
    메모리; 및
    상기 메모리에 구현되는 프로세서 실행가능한 명령들로서, 상기 명령들은 상기 프로세서에 의해 실행시 방법을 구현하도록 구성되고, 상기 방법은:
    a) 상기 시스템의 현재 버전 상에 로딩된 애플리케이션이 상기 시스템의 상기 현재 버전용인지 또는 상기 시스템의 덜 강력한 버전용인지를 결정하는 단계;
    b) 상기 애플리케이션이 시스템의 현재 버전용으로 설계된 경우 상기 애플리케이션을 프로세서 상에서 상기 시스템의 상기 현재 버전의 표준 작동 주파수로 실행하는 단계; 또는
    c) 상기 애플리케이션이 상기 시스템의 덜 강력한 버전용으로 설계된 경우 상기 애플리케이션을 제2 작동 주파수로 실행하는 단계를 포함하고,
    상기 시스템의 상기 현재 버전은 상기 표준 작동 주파수에 의해 특징지어지며,
    상기 시스템의 상기 덜 강력한 버전은 상이한 표준 작동 주파수에 의해 특징지어지고, 상기 제2 작동 주파수는 상기 시스템의 상기 현재 버전의 상기 표준 작동 주파수보다 낮고 상기 시스템의 상기 덜 강력한 버전의 상기 표준 작동 주파수보다 높은, 시스템.
  12. 청구항 11에 있어서, a)는 상기 애플리케이션의 소프트웨어 ID, 상기 애플리케이션의 소프트웨어의 검사합, 상기 애플리케이션과 연관된 메타데이터, 또는 상기 애플리케이션과 연관된 미디어 유형을 검토하는 단계를 포함하는, 시스템.
  13. 청구항 11에 있어서, c)는 상기 시스템의 상기 현재 및 덜 강력한 버전들 간 레이턴시 또는 레이턴시 특성들의 차이, 상기 시스템의 상기 현재 및 덜 강력한 버전들 간 동작 속도 또는 스루풋 차이들, 또는 상기 시스템의 상기 현재 및 덜 강력한 버전들 간 계산들에 채용되는 알고리즘에 대한 차이들에 기초하여 제2 주파수를 설정하는 단계를 포함하는, 시스템.
  14. 청구항 11에 있어서, 상기 시스템의 상기 현재 버전은 소프트웨어 판독가능한 사이클 카운터를 포함하며, 상기 소프트웨어 판독가능한 사이클 카운터는 상기 시스템의 상기 덜 강력한 버전의 상기 표준 작동 주파수로 또는 동작에 오류들을 촉발하는 것을 회피하도록 그것에 가까운 속도로 증분하는, 시스템.
  15. 청구항 11에 있어서, 상기 시스템의 상기 현재 버전은 소프트웨어 판독가능한 사이클 카운터를 포함하고, c)는 덜 강력한 상기 시스템의 상기 표준 작동 주파수로 또는 동작에 오류들을 촉발하는 것을 회피하도록 그것에 가까운 비율로 상기 사이클 카운터를 증분하며, b)는 상이한 속도로 상기 사이클 카운터를 증분하는, 시스템.
  16. 청구항 11에 있어서, c)는 상기 제2 작동 주파수를 상이한 애플리케이션들에 따라 상이한 값들로 설정하는 단계를 포함하는, 시스템.
  17. 청구항 11에 있어서, c)는 상기 제2 작동 주파수를 상기 프로세서 상에서 현재 실행되고 있는 상기 애플리케이션의 성능 특성들에 기초하여 동적으로 설정하는 단계를 포함하는, 시스템.
  18. 청구항 11에 있어서, c)는 상기 제2 작동 주파수를 상기 시스템의 상기 현재 버전 및 상기 덜 강력한 버전 간 레이턴시 또는 레이턴시 특성들의 차이들을 고려하여 결정하는 단계를 더 포함하는, 시스템.
  19. 청구항 11에 있어서, c)는 상기 제2 작동 주파수를 상기 시스템의 상기 현재 버전 및 상기 덜 강력한 버전 간 스루풋 차이들을 고려하여 결정하는 단계를 더 포함하는, 시스템.
  20. 청구항 11에 있어서, c)는 상기 제2 작동 주파수를 상기 시스템의 상기 현재 버전 및 상기 덜 강력한 버전 간 계산들에 사용되는 알고리즘들에 대한 차이들을 고려하여 결정하는 단계를 더 포함하는, 시스템.
  21. 컴퓨터 판독가능한 명령들이 구현된 비-일시적 컴퓨터 판독가능한 매체로서, 상기 명령들은 프로세서에 의해 실행시 방법을 구현하도록 구성되고, 상기 방법은:
    a) 시스템의 현재 버전 상에 로딩된 애플리케이션이 시스템의 상기 현재 버전용인지 또는 상기 시스템의 덜 강력한 버전용인지를 결정하는 단계;
    b) 상기 애플리케이션이 시스템의 현재 버전용으로 설계된 경우 상기 애플리케이션을 프로세서 상에서 상기 시스템의 상기 현재 버전의 표준 작동 주파수로 실행하는 단계; 또는
    c) 상기 애플리케이션이 상기 시스템의 덜 강력한 버전용으로 설계된 경우 상기 애플리케이션을 제2 작동 주파수로 실행하는 단계를 포함하고,
    상기 시스템의 상기 현재 버전은 상기 표준 작동 주파수에 의해 특징지어지며,
    상기 시스템의 상기 덜 강력한 버전은 상이한 표준 작동 주파수에 의해 특징지어지고, 상기 제2 작동 주파수는 상기 시스템의 상기 현재 버전의 상기 표준 작동 주파수보다 낮고 상기 시스템의 상기 덜 강력한 버전의 상기 표준 작동 주파수보다 높은, 비-일시적 컴퓨터 판독가능한 매체.
KR1020177026375A 2015-02-20 2016-02-17 스푸프 클록의 사용 및 미세 수준 주파수 제어를 통한 역 호환성 KR101862180B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/627,988 US9760113B2 (en) 2015-02-20 2015-02-20 Backward compatibility through use of spoof clock and fine grain frequency control
US14/627,988 2015-02-20
PCT/US2016/018346 WO2016134071A1 (en) 2015-02-20 2016-02-17 Backward compatibility through use of spoof clock and fine grain frequency control

Publications (2)

Publication Number Publication Date
KR20170113676A true KR20170113676A (ko) 2017-10-12
KR101862180B1 KR101862180B1 (ko) 2018-05-29

Family

ID=56692494

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177026375A KR101862180B1 (ko) 2015-02-20 2016-02-17 스푸프 클록의 사용 및 미세 수준 주파수 제어를 통한 역 호환성

Country Status (7)

Country Link
US (4) US9760113B2 (ko)
EP (2) EP3259676B1 (ko)
JP (1) JP6467062B2 (ko)
KR (1) KR101862180B1 (ko)
CN (2) CN107251004B (ko)
TW (4) TWI669592B (ko)
WO (1) WO2016134071A1 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10783696B2 (en) 2014-04-05 2020-09-22 Sony Interactive Entertainment LLC Gradient adjustment for texture mapping to non-orthonormal grid
US9495790B2 (en) 2014-04-05 2016-11-15 Sony Interactive Entertainment America Llc Gradient adjustment for texture mapping to non-orthonormal grid
US11302054B2 (en) 2014-04-05 2022-04-12 Sony Interactive Entertainment Europe Limited Varying effective resolution by screen location by changing active color sample count within multiple render targets
US9865074B2 (en) 2014-04-05 2018-01-09 Sony Interactive Entertainment America Llc Method for efficient construction of high resolution display buffers
US9710881B2 (en) 2014-04-05 2017-07-18 Sony Interactive Entertainment America Llc Varying effective resolution by screen location by altering rasterization parameters
US9652882B2 (en) 2014-04-05 2017-05-16 Sony Interactive Entertainment America Llc Gradient adjustment for texture mapping for multiple render targets with resolution that varies by screen location
US10068311B2 (en) 2014-04-05 2018-09-04 Sony Interacive Entertainment LLC Varying effective resolution by screen location by changing active color sample count within multiple render targets
US9836816B2 (en) 2014-04-05 2017-12-05 Sony Interactive Entertainment America Llc Varying effective resolution by screen location in graphics processing by approximating projection of vertices onto curved viewport
US9760113B2 (en) * 2015-02-20 2017-09-12 Sony Interactive Entertainment America Llc Backward compatibility through use of spoof clock and fine grain frequency control
US11403099B2 (en) 2015-07-27 2022-08-02 Sony Interactive Entertainment LLC Backward compatibility by restriction of hardware resources
US9892024B2 (en) 2015-11-02 2018-02-13 Sony Interactive Entertainment America Llc Backward compatibility testing of software in a mode that disrupts timing
CN116401184A (zh) 2016-01-22 2023-07-07 索尼互动娱乐股份有限公司 模拟向后兼容的传统总线行为
CN116340022A (zh) 2016-01-22 2023-06-27 索尼互动娱乐股份有限公司 用于向后兼容性的欺骗cpuid
US10915333B2 (en) * 2016-03-30 2021-02-09 Sony Interactive Entertainment Inc. Deriving application-specific operating parameters for backwards compatiblity
US10409319B2 (en) * 2017-04-17 2019-09-10 Intel Corporation System, apparatus and method for providing a local clock signal for a memory array
WO2023113822A1 (en) * 2021-12-17 2023-06-22 Google Llc Loading state detection for gaming applications

Family Cites Families (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5125088A (en) * 1986-09-08 1992-06-23 Compaq Computer Corporation Computer system speed control at continuous processor speed
US4787032A (en) * 1986-09-08 1988-11-22 Compaq Computer Corporation Priority arbitration circuit for processor access
JP3227542B2 (ja) * 1991-06-17 2001-11-12 サン・マイクロシステムズ・インコーポレーテッド 特定のコンピュータ・ハードウェア・アーキテクチャのために作成されたソフトウェアのバージョンの互換性を確保する装置および方法
JP3866781B2 (ja) * 1994-05-26 2007-01-10 セイコーエプソン株式会社 消費電力を効率化した情報処理装置
US5623647A (en) * 1995-03-07 1997-04-22 Intel Corporation Application specific clock throttling
JP3272918B2 (ja) * 1995-10-06 2002-04-08 富士通株式会社 並列処理計算機システムおよび同システム用構成装置並びに並列処理計算機システムにおけるクロック・チューニング方法
US6298448B1 (en) * 1998-12-21 2001-10-02 Siemens Information And Communication Networks, Inc. Apparatus and method for automatic CPU speed control based on application-specific criteria
US6278338B1 (en) 2000-05-01 2001-08-21 Silicon Wave Inc. Crystal oscillator with peak detector amplitude control
US6681192B2 (en) * 2000-09-23 2004-01-20 Microsoft Corporation Systems and methods for fast timer calibration
US20020108064A1 (en) * 2001-02-07 2002-08-08 Patrick Nunally System and method for optimizing power/performance in network-centric microprocessor-controlled devices
US7046245B2 (en) 2001-10-10 2006-05-16 Sony Computer Entertainment America Inc. System and method for environment mapping
US7081893B2 (en) 2001-10-10 2006-07-25 Sony Computer Entertainment America Inc. System and method for point pushing to render polygons in environments with changing levels of detail
US7171606B2 (en) 2003-03-25 2007-01-30 Wegener Communications, Inc. Software download control system, apparatus and method
US7496776B2 (en) * 2003-08-21 2009-02-24 International Business Machines Corporation Power throttling method and apparatus
US20050076253A1 (en) * 2003-10-05 2005-04-07 De-Jen Lu Method of url-based power management and associated web browsing device
US7281145B2 (en) * 2004-06-24 2007-10-09 International Business Machiness Corporation Method for managing resources in a CPU by allocating a specified percentage of CPU resources to high priority applications
WO2006033419A1 (en) 2004-09-20 2006-03-30 Sony Computer Entertainment Inc. Methods and apparatus for distributing software applications
JP2006099411A (ja) * 2004-09-29 2006-04-13 Oki Electric Ind Co Ltd ソフトウェアの使用制限方法
US8274518B2 (en) * 2004-12-30 2012-09-25 Microsoft Corporation Systems and methods for virtualizing graphics subsystems
US7930693B2 (en) * 2005-04-04 2011-04-19 Cisco Technology, Inc. Method and system for accessing and launching a java based applet as a locally installed application
FI20065165L (fi) 2006-03-15 2007-09-16 Abb Oy Taajuusmuuttajan ohjain, oheislaite, menetelmä ja ohjelma
US8149242B2 (en) 2006-11-10 2012-04-03 Sony Computer Entertainment Inc. Graphics processing apparatus, graphics library module and graphics processing method
US9760146B2 (en) * 2007-01-08 2017-09-12 Imagination Technologies Limited Conditional activation and deactivation of a microprocessor
US7941684B2 (en) * 2008-02-28 2011-05-10 Advanced Micro Devices, Inc. Synchronization of processor time stamp counters to master counter
US20100164966A1 (en) * 2008-12-31 2010-07-01 Apple Inc. Timing controller for graphics system
US20100199118A1 (en) * 2009-02-03 2010-08-05 Atmel Corporation Microcontroller with compatibility mode
US8276015B2 (en) 2009-02-23 2012-09-25 International Business Machines Corporation Managing the power-performance range of an application
US8463884B2 (en) 2009-04-08 2013-06-11 Microsoft Corporation Synchronization of mobile device with application server
US8706652B2 (en) 2009-06-09 2014-04-22 Northwestern University System and method for controlling power consumption in a computer system based on user satisfaction
TWI460572B (zh) 2009-12-04 2014-11-11 Via Tech Inc 時脈產生器以及通用串列匯流排模組
TWI423017B (zh) * 2010-06-21 2014-01-11 Ind Tech Res Inst 效能調整裝置、具有此效能調整裝置的處理器及其效能調整方法
TWI417703B (zh) 2010-07-22 2013-12-01 Genesys Logic Inc 相容於通用序列匯流排協定之時脈同步方法
US8863114B2 (en) 2010-12-06 2014-10-14 Red Hat, Inc. Managing software packages using a version control system
US9891939B2 (en) 2011-03-03 2018-02-13 Microsoft Technology Licensing, Llc Application compatibility with library operating systems
US8707289B2 (en) * 2011-07-20 2014-04-22 Google Inc. Multiple application versions
US9196013B2 (en) * 2011-10-31 2015-11-24 Apple Inc. GPU workload prediction and management
US9928751B2 (en) * 2012-06-29 2018-03-27 Apple Inc. Generic media covers
KR20140030823A (ko) * 2012-09-04 2014-03-12 삼성전자주식회사 3차원 작업 부하를 이용하여 dvfs 정책을 수행하는 시스템-온 칩 및 이의 동작 방법
US9858095B2 (en) * 2012-09-17 2018-01-02 International Business Machines Corporation Dynamic virtual machine resizing in a cloud computing infrastructure
GB2508599A (en) * 2012-12-04 2014-06-11 Ibm Software version management when downgrading software
CN103118290B (zh) * 2013-02-28 2016-11-16 北京奇虎科技有限公司 程序安装适配性的检测方法、装置及系统
US10409353B2 (en) * 2013-04-17 2019-09-10 Qualcomm Incorporated Dynamic clock voltage scaling (DCVS) based on application performance in a system-on-a-chip (SOC), and related methods and processor-based systems
US10102603B2 (en) 2013-06-10 2018-10-16 Sony Interactive Entertainment Inc. Scheme for compressing vertex shader output parameters
US10134102B2 (en) 2013-06-10 2018-11-20 Sony Interactive Entertainment Inc. Graphics processing hardware for using compute shaders as front end for vertex shaders
US10176621B2 (en) 2013-06-10 2019-01-08 Sony Interactive Entertainment Inc. Using compute shaders as front end for vertex shaders
US10096079B2 (en) 2013-06-10 2018-10-09 Sony Interactive Entertainment Inc. Fragment shaders perform vertex shader computations
US9495790B2 (en) 2014-04-05 2016-11-15 Sony Interactive Entertainment America Llc Gradient adjustment for texture mapping to non-orthonormal grid
KR101923562B1 (ko) 2014-04-05 2018-11-29 소니 인터랙티브 엔터테인먼트 아메리카 엘엘씨 가변 렌더링 및 래스터화 파라미터 하에서 가변 뷰포트에 대하여 오브젝트를 효율적으로 리렌더링하는 방법
US9710881B2 (en) 2014-04-05 2017-07-18 Sony Interactive Entertainment America Llc Varying effective resolution by screen location by altering rasterization parameters
US9652882B2 (en) 2014-04-05 2017-05-16 Sony Interactive Entertainment America Llc Gradient adjustment for texture mapping for multiple render targets with resolution that varies by screen location
US9836816B2 (en) 2014-04-05 2017-12-05 Sony Interactive Entertainment America Llc Varying effective resolution by screen location in graphics processing by approximating projection of vertices onto curved viewport
US20160116954A1 (en) * 2014-10-28 2016-04-28 Linkedln Corporation Dynamic adjustment of cpu operating frequency
US9760113B2 (en) 2015-02-20 2017-09-12 Sony Interactive Entertainment America Llc Backward compatibility through use of spoof clock and fine grain frequency control
US10235219B2 (en) 2015-07-27 2019-03-19 Sony Interactive Entertainment America Llc Backward compatibility by algorithm matching, disabling features, or throttling performance
US9892024B2 (en) 2015-11-02 2018-02-13 Sony Interactive Entertainment America Llc Backward compatibility testing of software in a mode that disrupts timing

Also Published As

Publication number Publication date
KR101862180B1 (ko) 2018-05-29
CN113791667B (zh) 2022-10-21
EP3259676A4 (en) 2018-07-25
US9760113B2 (en) 2017-09-12
CN113791667A (zh) 2021-12-14
EP3761186A1 (en) 2021-01-06
TW201640250A (zh) 2016-11-16
US20160246323A1 (en) 2016-08-25
EP3259676B1 (en) 2020-09-23
TWI615701B (zh) 2018-02-21
TWI669592B (zh) 2019-08-21
TW201723723A (zh) 2017-07-01
CN107251004B (zh) 2021-09-07
WO2016134071A1 (en) 2016-08-25
US20200150712A1 (en) 2020-05-14
JP6467062B2 (ja) 2019-02-06
US20180004243A1 (en) 2018-01-04
TW201809950A (zh) 2018-03-16
CN107251004A (zh) 2017-10-13
US20220004219A1 (en) 2022-01-06
US11829197B2 (en) 2023-11-28
US11119528B2 (en) 2021-09-14
US10534395B2 (en) 2020-01-14
JP2018511859A (ja) 2018-04-26
EP3259676A1 (en) 2017-12-27
TWI739112B (zh) 2021-09-11
TW201937332A (zh) 2019-09-16
TWI569128B (zh) 2017-02-01

Similar Documents

Publication Publication Date Title
KR101862180B1 (ko) 스푸프 클록의 사용 및 미세 수준 주파수 제어를 통한 역 호환성
KR101931073B1 (ko) 프로세싱 유닛을 위한 프레임 기반 클럭 레이트 조정
US9286858B2 (en) Hit testing method and apparatus
KR20160148594A (ko) 그래픽스 프로세싱에 있어서 렌더 타깃에 기초한 플렉스 렌더링
EP3557434A1 (en) Computational resource pipelining in general purpose graphics processing unit
US9165337B2 (en) Command instruction management
EP3234769A1 (en) Trace buffer based replay for context switching
CN116185743B (zh) OpenGL接口的双显卡对比调试方法、装置及介质
US8780120B2 (en) GPU self throttling
KR102651864B1 (ko) 하드웨어 액세스 카운터 및 다중 스레드 처리를 조정하기 위한 이벤트 생성
US10796399B2 (en) Pixel wait synchronization
WO2021232328A1 (en) Methods and apparatus for tickless pre-rendering
US9159160B1 (en) Texture sharing between application modules
US20140164847A1 (en) Internal Logic Analyzer with Programmable Window Capture
Dawes et al. Timing to Perfection

Legal Events

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