KR20220021444A - 홈 콘솔 및 클라우드 게이밍을 위한 확장 가능한 게임 콘솔 cpu/gpu 설계 - Google Patents

홈 콘솔 및 클라우드 게이밍을 위한 확장 가능한 게임 콘솔 cpu/gpu 설계 Download PDF

Info

Publication number
KR20220021444A
KR20220021444A KR1020217024267A KR20217024267A KR20220021444A KR 20220021444 A KR20220021444 A KR 20220021444A KR 1020217024267 A KR1020217024267 A KR 1020217024267A KR 20217024267 A KR20217024267 A KR 20217024267A KR 20220021444 A KR20220021444 A KR 20220021444A
Authority
KR
South Korea
Prior art keywords
gpu
video
frame
buffer
render
Prior art date
Application number
KR1020217024267A
Other languages
English (en)
Other versions
KR102610097B1 (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 KR20220021444A publication Critical patent/KR20220021444A/ko
Application granted granted Critical
Publication of KR102610097B1 publication Critical patent/KR102610097B1/ko

Links

Images

Classifications

    • 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
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/355Performing operations on behalf of clients with restricted processing capabilities, e.g. servers transform changing game scene into an MPEG-stream for transmitting to a mobile phone or a thin client
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • 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
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/20Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of the game platform
    • A63F2300/203Image generating hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/52Parallel processing

Abstract

다중 GPU 시뮬레이션 환경에서, 프레임 버퍼 관리는 비디오의 각각의 프레임을 렌더링하는 다수의 GPU(306, 402, 504, 600, 704)에 의해 구현되거나 비디오의 각각의 프레임(900/902; 1000/1002; 1100/1102)의 각각의 부분을 렌더링함으로써 구현될 수 있다. GPU 중 하나는 다른 GPU로부터 프레임 정보를 수신함으로써 그리고 물리적으로 연결된 HDMI 출력 포트(1200)를 통해 전체 프레임을 판독함으로써 HDMI 프레임 출력을 제어한다. 또는, GPU의 출력은 함께 멀티플렉싱될 수 있다(1302).

Description

홈 콘솔 및 클라우드 게이밍을 위한 확장 가능한 게임 콘솔 CPU/GPU 설계
본 출원은 일반적으로 홈 콘솔 및 클라우드 게이밍을 위한 확장 가능한 게임 콘솔 CPU/GPU 설계에 관한 것이다.
컴퓨터 게임 콘솔과 같은 시뮬레이션 콘솔은 일반적으로 중앙 처리 유닛(Central Processing Unit, CPU)와 그래픽 처리 유닛(Graphics Processing Unit GPU)를 포함하는 "시스템 온 칩(System on a Chip, SoC)"으로 지칭되는 단일 칩을 사용한다. 반도체 스케일링 문제와 수율 문제로 인해, 다수의 작은 칩은 고속 코히런트 버스(coherent bus)에 의해 링크되어 큰 칩을 형성할 수 있다. 이러한 확장 솔루션은 거대한 모놀리식 칩을 구축하는 것에 비해 성능 측면에서 약간 덜 최적화되지만, 비용이 적게 든다.
본 명세서에서 이해되는 바와 같이, SoC 기술은 게임 콘솔과 같은 비디오 시뮬레이션 콘솔에 적용될 수 있으며, 특히 단일 SoC는 콘솔의 "라이트(light)" 버전에 제공될 수 있는 반면, 복수의 SoC는 "라이트" 버전보다 처리 및 저장 능력이 더 뛰어난 콘솔의 "하이 엔드(high-end)" 버전을 제공하는 데 사용될 수 있다. "하이 엔드" 시스템은 또한 랜덤 액세스 메모리(Random-Access Memory, RAM) 및 다른 피쳐와 같은 더 많은 메모리를 포함할 수 있으며 성능이 더 높은 동일한 게임 콘솔 칩을 사용하는 클라우드 최적화 버전에도 사용할 수 있다.
그러나, 본 명세서에서 더 이해되는 바와 같이, 이러한 "하이 엔드" 다중 SoC 설계는 그에 따라 확장되어야 하는 소프트웨어 및 시뮬레이션(게임) 설계에 대한 도전을 야기한다. 예를 들어, 하드웨어를 최상의 방식으로 사용하기 위한 힌트를 소프트웨어에 제공할 뿐만 아니라 불균일 메모리 액세스(Non-Uniform Memory Access, NUMA) 및 스레드 관리와 관련된 도전이 야기된다. GPU가 함께 작동하는 경우, 고화질 멀티미디어(High Definition Multimedia, HDMI) 출력의 프레임 버퍼 관리 및 제어가 해결될 수 있다. 다른 도전도 본 명세서에서 해결될 수 있다.
따라서, 장치는 적어도 제 1 그래픽 처리 유닛(GPU), 및 제 1 GPU에 통신 가능하게 결합된 적어도 제 2 GPU를 포함한다. GPU는 제 1 GPU가 비디오의 제 1 부분을 렌더링하고 제 2 GPU가 비디오의 제 2 부분을 렌더링하는 바와 같이 비디오의 각각의 부분을 렌더링하도록 프로그래밍되며, 여기서 제 1 부분과 제 2 부분은 서로 다르다.
달리 말하면, 제 1 GPU는 비디오의 제 1 프레임을 렌더링하여 제 1 출력을 제공하도록 프로그래밍될 수 있는 반면, 제 2 GPU는 비디오의 전부는 아니지만 일부 프레임을 렌더링하여 제 2 출력을 제공하도록 프로그래밍될 수 있다. 제 2 GPU에 의해 렌더링된 프레임은 제 1 GPU에 의해 렌더링된 프레임과는 상이하다. 제 1 및 제 2 출력은 비디오를 렌더링하기 위해 결합될 수 있다. 추가로 또는 대안적으로, 제 1 GPU는 비디오 프레임의 전부는 아니지만 일부 라인의 모두를 렌더링하여 제 1 라인 출력을 제공하도록 프로그래밍되고 제 2 GPU는 비디오 프레임의 전부는 아니지만 일부 라인을 렌더링하여 제 2 라인 출력을 제공하도록 프로그래밍될 수 있다. 제 2 GPU에 의해 렌더링된 라인은 제 1 GPU에 의해 렌더링된 라인과는 상이하다. 제 1 라인 출력과 제 2 라인 출력은 프레임을 렌더링하기 위해 결합될 수 있다.
일부 실시형태에서, 제 1 및 제 2 GPU는 공통 다이 상에 구현된다. 다른 실시형태에서, 제 1 및 제 2 GPU는 각각의 제 1 및 제 2 다이 상에 구현된다. 제 1 GPU는 제 1 중앙 처리 유닛(Central Processing Unit, CPU)과 관련될 수 있고 제 2 GPU는 제 2 CPU와 관련될 수 있다.
일부 구현에서, 제 1 메모리 컨트롤러 및 제 1 메모리는 제 1 GPU와 관련되고 제 2 메모리 컨트롤러 및 제 2 메모리는 제 2 GPU와 관련된다. 다른 구현에서, GPU는 공통 메모리를 제어하는 공통 메모리 컨트롤러를 공유한다.
일부 예에서, 각각의 GPU는 다른 GPU에 의해 렌더링된 비디오의 프레임과는 상이한 비디오의 전부는 아니지만 일부 프레임 모두를 렌더링하여 각각의 출력을 제공하도록 프로그래밍된다. GPU의 출력은 비디오를 렌더링하기 위해 결합될 수 있다. 다른 예에서, 각각의 GPU는 비디오 프레임의 전부는 아니지만 일부 라인의 모두 - GPU에 의해 렌더링된 비디오 프레임의 라인은 다른 GPU에 의해 렌더링된 프레임의 라인과는 상이함 - 를 렌더링하여 각각의 출력을 제공하도록 프로그래밍되어 있다. GPU의 출력은 비디오를 렌더링하기 위해 결합될 수 있다.
예시적인 기술에서, 제 1 GPU는 제 2 GPU에 의해 관리되는 적어도 하나의 버퍼를 가리키는 적어도 하나의 스캔 아웃 유닛을 포함한다. 제 1 GPU는 버퍼를 사이클링하여 비디오 프레임의 전체 시퀀스를 출력하도록 프로그래밍될 수 있다. 다른 예에서, 제 1 GPU는 제 1 GPU에 의해 관리되는 버퍼만을 가리키는 적어도 하나의 스캔 아웃 유닛을 포함하고, 직접 메모리 액세스(Direct Memory Access, DMA)를 통해 제 2 GPU로부터 비디오의 프레임을 수신하여 비디오 프레임의 전체 시퀀스를 출력하도록 프로그래밍된다.
또 다른 예시적인 기술에서, 제 1 GPU는 적어도 제 1 GPU에 의해 관리되는 제 1 버퍼 및 제 2 GPU에 의해 관리되는 제 2 버퍼를 가리키는 적어도 하나의 스캔 아웃 유닛을 포함한다. 이 기술에서, 제 1 GPU는 버퍼를 사이클링하여 제 1 버퍼와 관련된 제 1-N 라인과 제 2 버퍼와 관련된 제 (N+1)-M 라인을 사용하여 비디오 프레임의 전체 시퀀스를 출력하도록 프로그래밍된다. 제 1-N 라인은 제 (N+1)-M 라인과 관련된 동일한 프레임의 상이한 라인이다.
다시 말해서, 제 1 GPU는 제 2 GPU에 의해 관리되는 제 2 버퍼가 아니라 제 1 GPU에 의해 관리되는 적어도 제 1 버퍼를 가리키는 적어도 하나의 스캔 아웃 유닛을 포함할 수 있다. 이 구현에서, 제 1 GPU는 버퍼를 사이클링하여 직접 메모리 액세스(Direct Memory Access, DMA)를 통해 제 1 GPU에 수신되고 제 1 버퍼와 관련된 제 1-N 라인 및 제 2 버퍼와 관련된 제 (N+1)-M 라인을 사용하여 비디오의 프레임의 전체 시퀀스를 출력하도록 프로그래밍될 수 있다. 제 1-N 라인과 제 (N+1)-M 라인은 비디오 프레임의 상이한 라인이다.
또 다른 기술에서, 제 1 GPU는 공통 메모리 컨트롤러와 통신하는 적어도 제 1 버퍼를 가리키는 적어도 하나의 스캔 아웃 유닛을 포함한다. 제 2 GPU는 공통 메모리 컨트롤러와 통신하는 제 2 버퍼를 포함한다. 제 1 GPU는 제 1 버퍼와 관련된 제 1-N 라인을 렌더링하도록 프로그래밍되고 제 2 GPU는 제 2 버퍼와 관련된 제 (N+1)-M 라인을 렌더링하도록 프로그래밍된다.
일부 예에서, 제 1 GPU는 제 1 및 제 2 GPU로부터 출력된 비디오 데이터를 관리한다. 이는 HDMI 포트를 제 1 GPU에 물리적으로 연결함으로써 영향을 받을 수 있다. 다른 예에서, GPU는 각각의 GPU로부터의 프레임 및/또는 라인을 함께 멀티플렉싱하여 비디오를 출력하는 멀티플렉서에 비디오 데이터를 출력한다.
다른 양태에서, 다중 그래픽 처리 유닛(Graphics Processing Unit, GPU) 시뮬레이션 환경에서, 방법은 복수의 GPU가 비디오의 각각의 프레임을 렌더링하거나, 비디오의 각각의 프레임의 각각의 부분을 렌더링하거나, 비디오의 각각의 프레임 및 각각의 부분 둘 모두를 렌더링하게 하는 단계를 포함한다. 본 방법은, GPU(들) 중 적어도 하나의 다른 GPU로부터 프레임 정보를 수신하는 GPU 중 제 1 GPU를 사용하거나, GPU의 출력을 함께 멀티플렉싱하거나, GPU(들) 중 적어도 하나의 다른 GPU로부터 프레임 정보를 수신하는 GPU 중 제 1 GPU를 사용하는 것과 GPU의 출력을 함께 멀티플렉싱하는 것 둘 모두를 행하여 프레임 출력을 제어하는 단계를 포함한다.
다른 양태에서, 컴퓨터 시뮬레이션 장치는 시뮬레이션 비디오의 각각의 제 1 부분을 렌더링하도록 프로그래밍된 적어도 제 1 그래픽 처리 유닛(Graphics Processing Unit, GPU), 및 시뮬레이션 비디오의 각각의 제 2 부분을 렌더링하도록 프로그래밍된 적어도 제 2 GPU를 포함한다. 적어도 제 1 GPU는 제 1 부분과 제 2 부분을 결합하도록 그리고 전체 시뮬레이션 비디오를 설정하는 출력을 렌더링하도록 프로그래밍된다.
구조 및 동작에 관한 본 출원의 세부 사항은 첨부된 도면을 참조하여 가장 잘 이해될 수 있으며, 여기서 유사한 참조 부호는 유사한 부분을 나타낸다.
도 1은 본 원리에 따른 예를 포함하는 예시적인 시스템의 블록도이다.
도 2는 클라우드 기반 게이밍 시스템의 개략도이다.
도 3은 2 개의 APU가 단일 패브릭 상에 도시되는 불균일 메모리 액세스(Non-Uniform Memory Access, NUMA) 아키텍처의 블록도로서, NUMA 아키텍처는 별도의 패브릭 상의 APU에 의해 구현될 수 있다는 것과 2 개 이상의 APU가 구현될 수 있다는 것을 이해해야 한다.
도 4는 2 개의 APU가 도시된 공유 메모리 아키텍처의 블록도로서, 각각의 프로세서는 자신의 각각의 다이 상에 구현되며, 여기서 아키텍처는 더 적거나 심지어 하나의 다이 상에 구현될 수 있다는 것과 2 개 이상의 APU가 구현될 수 있다는 것을 이해해야 한다.
도 5는 2 개의 APU가 도시된 공유 메모리 아키텍처의 블록도로서, 각각의 APU는 자신의 각각의 패브릭 상에 구현되고 공유 메모리 컨트롤러는 패브릭 중 하나 상에 구현되며, 여기서 아키텍처는 하나의 패브릭 상에 구현될 수 있다는 것과 2 개 이상의 APU가 하나 이상의 다이 상에 구현될 수 있다는 것을 이해해야 한다.
도 6은 스캔 아웃 유닛을 갖는 예시적인 GPU의 블록도이다.
도 7은 각각의 GPU가 전체 프레임을 렌더링하는 NUMA 실시형태의 예시적인 로직의 흐름도로서, 각각의 GPU는 동일한 비디오에 대해 다른 GPU와는 상이한 프레임을 렌더링하며, GPU 중 하나는 다른 GPU의 버퍼를 가리키는 레지스터를 갖는다.
도 8은 각각의 GPU가 전체 프레임을 렌더링하는 NUMA 실시형태의 예시적인 로직의 흐름도로서, 각각의 GPU는 동일한 비디오에 대해 다른 GPU와는 상이한 프레임을 렌더링하며, GPU 중 하나는 다른 GPU(들)로부터 DMA를 통해 프레임을 수신한다.
도 9는 각각의 GPU가 프레임의 일부(예를 들어, 라인)를 렌더링하는 NUMA 실시형태의 예시적인 로직의 흐름도로서, 각각의 GPU는 동일한 프레임에 대해 다른 GPU와는 상이한 부분을 렌더링한다.
도 10은 각각의 GPU가 프레임의 일부(예를 들어, 라인)를 렌더링하는 NUMA 실시형태의 예시적인 로직의 흐름도로서, 각각의 GPU는 동일한 프레임에 대해 다른 GPU와는 상이한 부분을 렌더링하고, GPU 중 하나는 다른 GPU(들)로부터 DMA를 통해 라인을 수신한다.
도 11은 각각의 GPU가 프레임의 일부(예를 들어, 라인)를 렌더링하는 공유 메모리 실시형태의 예시적인 로직의 흐름도로서, 각각의 GPU는 동일한 프레임에 대해 다른 GPU와는 상이한 다른 부분을 렌더링한다.
도 12는 HDMI 포트에 연결된 단일 GPU를 사용하여 비디오 출력을 제어하기 위한 예시적인 로직의 흐름도이다.
도 13은 멀티플렉서를 사용하여 비디오 출력을 제어하기 위한 예시적인 로직의 흐름도이다.
도 14는 도 13과 관련된 블록도이다.
본 발명은 일반적으로 분산형 컴퓨터 게임 네트워크, 비디오 방송, 콘텐츠 전달 네트워크, 가상 머신 및 머신 러닝 애플리케이션(이에 제한되지 않음)과 같은 가전(Consumer Electronics, CE) 디바이스 네트워크의 양태를 포함하는 컴퓨터 에코시스템에 관한 것이다. 본 명세서에서의 시스템은 데이터가 클라이언트와 서버 구성 요소 사이에서 교환될 수 있도록 네트워크를 통해 연결된 서버 및 클라이언트 구성 요소를 포함할 수 있다. 클라이언트 구성 요소는 Sony PlayStation® 및 관련 마더 보드와 같은 게임 콘솔, 휴대용 TV(예를 들어, 스마트 TV, 인터넷 지원 TV), 랩톱 및 태블릿 컴퓨터와 같은 휴대용 컴퓨터, 및 스마트폰 및 아래에 설명된 추가 예를 포함한 기타 모바일 디바이스를 포함하는 하나 이상의 컴퓨팅 장치가 포함될 수 있다. 이들 클라이언트 디바이스는 다양한 운영 환경에서 동작할 수 있다. 예를 들어, 일부 클라이언트 컴퓨터는 예를 들어, Orbis 또는 Linux 운영 체제, Microsoft의 운영 체제 또는 Unix 운영 체제 또는 Apple Computer 또는 Google에서 생산한 운영 체제를 사용할 수 있다. 이들 운영 환경은 Microsoft 또는 Google 또는 Mozilla에서 만든 브라우저 또는 아래에서 설명하는 인터넷 서버에서 호스팅하는 웹 사이트에 액세스할 수 있는 기타 브라우저 프로그램과 같은 하나 이상의 브라우징 프로그램을 실행하는 데 사용될 수 있다. 또한, 본 원리에 따른 운영 환경은 하나 이상의 컴퓨터 게임 프로그램을 실행하는데 사용될 수 있다.
서버 및/또는 게이트웨이는 인터넷과 같은 네트워크를 통해 데이터를 수신하고 송신하도록 서버를 구성하는 명령을 실행하는 하나 이상의 프로세서를 포함할 수 있다. 또는 클라이언트와 서버는 로컬 인트라넷 또는 가상 사설망을 통해 연결될 수 있다. 서버 또는 컨트롤러는 Sony PlayStation®과 같은 게임 콘솔 및/또는 그의 하나 이상의 마더 보드, 개인용 컴퓨터 등에 의해 인스턴스화될 수 있다.
정보는 클라이언트와 서버 사이의 네트워크를 통해 교환될 수 있다. 이를 위해 그리고 보안을 위해, 서버 및/또는 클라이언트는 방화벽, 로드 밸런서, 임시 스토리지 및 프록시, 안정성 및 보안을 위한 기타 네트워크 인프라를 포함할 수 있다. 하나 이상의 서버는 온라인 소셜 웹 사이트와 같은 보안 커뮤니티를 네트워크 회원에게 제공하는 방법을 구현하는 장치를 형성할 수 있다.
본 명세서에서 사용되는 명령어는 시스템에서 정보를 처리하기 위한 컴퓨터 구현 단계를 의미한다. 명령어는 소프트웨어, 펌웨어 또는 하드웨어로 구현할 수 있으며 시스템의 구성 요소가 수행하는 임의 유형의 프로그래밍된 단계를 포함한다.
프로세서는 어드레스 라인, 데이터 라인 및 제어 라인과 같은 다양한 라인 및 레지스터 및 시프트 레지스터에 의해 로직을 실행할 수 있는 종래의 범용 단일 또는 다중 칩 프로세서일 수 있다.
본 명세서에서 흐름도 및 사용자 인터페이스를 통해 설명된 소프트웨어 모듈은 다양한 하위 루틴, 절차 등을 포함할 수 있다. 본 발명을 제한하지 않고, 특정 모듈에 의해 실행되는 것으로 명시된 로직은 다른 소프트웨어 모듈에 재배포될 수 있고 및/또는 단일 모듈에서 함께 결합될 수 있고 및/또는 공유 가능한 라이브러리에서 이용 가능하게 만들어질 수 있다.
본 명세서에 설명된 본 원리는 하드웨어, 소프트웨어, 펌웨어 또는 이들의 조합으로 구현될 수 있으며, 따라서, 예시적인 구성 요소, 블록, 모듈, 회로 및 단계는 그들의 기능성 측면에서 설명된다.
위에서 언급한 것 외에도 아래에 설명된 논리 블록, 모듈 및 회로는 범용 프로세서, 디지털 신호 프로세서(Digital Signal Processor, DSP), 필드 프로그래밍 가능 게이트 어레이(Field Programmable Gate Array, FPGA) 또는 특정 용도 집적 회로(Application Specific Integrated Circuit, ASIC), 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 구성 요소, 또는 본 명세서에 설명된 기능을 수행하도록 설계된 이들의 임의의 조합과 같은 기타 프로그래밍 가능 논리 디바이스로 구현되거나 수행될 수 있다. 프로세서는 컨트롤러 또는 상태 머신 또는 컴퓨팅 디바이스의 조합으로 구현될 수 있다.
아래에 설명된 기능 및 방법은 소프트웨어로 구현될 때 Java, C# 또는 C++와 같은 적절한 언어로 작성될 수 있으며, 랜덤 액세스 메모리(Random Access Memory, RAM), 판독 전용 메모리(Read-Only Memory, ROM), 전기적 소거 가능 프로그래밍 가능한 판독 전용 메모리(Electrically Erasable Programmable Read-Only Memory, EEPROM), 컴팩트 디스크 판독 전용 메모리(Compact Disk Read-Only Memory, CD-ROM) 또는 디지털 다목적 디스크(Digital Versatile Disc, DVD), 자기 디스크 스토리지 또는 이동식 썸 드라이브 등을 포함하는 자기 저장 디바이스와 같은 기타 광학 디스크 스토리지와 같은 컴퓨터 판독 가능 저장 매체에 저장되거나 이를 통해 송신될 수 있다. 연결은 컴퓨터 판독 가능 매체를 설정할 수 있다. 이러한 연결은 예를 들어 광 섬유 및 동축 선과 디지털 가입자 회선(Digital Subscriber Line, DSL)과 연선을 포함하는 유선 케이블을 포함할 수 있다. 이러한 연결은 적외선 및 라디오를 포함한 무선 통신 연결을 포함할 수 있다.
일 실시형태에 포함된 구성 요소는 임의의 적절한 조합으로 다른 실시형태에서 사용될 수 있다. 예를 들어, 본 명세서에 설명되고 및/또는 도면에 도시된 다양한 구성 요소 중 임의의 구성 요소는 다른 실시형태로부터 조합, 교환 또는 배제될 수 있다.
"A, B 및 C 중 적어도 하나를 갖는 시스템"(마찬가지로 "A, B 또는 C 중 적어도 하나를 갖는 시스템" 및 "A, B, C 중 적어도 하나를 갖는 시스템")은 A 단독, B 단독, C 단독, A와 B 함께, A와 C 함께, B와 C 함께, 및/또는 A, B 및 C 함께 등을 갖는 시스템을 포함한다.
이제 도 1을 구체적으로 참조하면, 본 원리에 따라 위에서 언급되고 아래에서 더 설명되는 예시적인 디바이스 중 하나 이상을 포함할 수 있는 예시적인 시스템(10)이 도시된다. 시스템(10)에 포함된 예시적인 디바이스 중 제 1 디바이스는 TV 튜너(동등하게 TV를 제어하는 셋톱 박스)를 구비한 인터넷 지원 TV(이에 제한되지 않음)와 같은 오디오 비디오 디바이스(Audio Video Device, AVD)(12)와 같은 가전(Consumer Electronics, CE) 디바이스이다. 그러나, AVD(12)는 대안으로 가전 제품 또는 가정 용품, 예를 들어, 컴퓨터 인터넷 지원 냉장고, 세탁기 또는 건조기일 수 있다. AVD(12)는 대안으로 컴퓨터 인터넷 지원 ("스마트") 전화기, 태블릿 컴퓨터, 노트북 컴퓨터, 예를 들어 컴퓨터 인터넷 지원 시계, 컴퓨터 인터넷 지원 팔찌, 기타 컴퓨터 인터넷 지원 디바이스와 같은 웨어러블 컴퓨터 디바이스, 컴퓨터 인터넷 지원 음악 플레이어, 컴퓨터 인터넷 지원 헤드폰, 이식 가능한 피부 디바이스와 같은 컴퓨터 인터넷 지원 이식 디바이스 등일 수 있다. 그럼에도 불구하고, AVD(12)는 본 원리를 수행하도록 (예를 들어, 다른 CE 디바이스와 통신하여 본 원리를 수행하고, 본 명세서에 설명된 로직을 실행하고, 본 명세서에 설명된 임의의 다른 기능 및/또는 동작을 수행하도록) 구성된다는 것을 이해해야 한다.
따라서 이러한 원리를 수행하기 위해 AVD(12)는 도 1에 도시된 구성 요소 중 일부 또는 모두에 의해 설정될 수 있다. 예를 들어, AVD(12)는 고화질 또는 초고화질 "4K" 이상의 평면 스크린에 의해 구현될 수 있고 디스플레이의 터치를 통해 사용자 입력 신호를 수신하기 위해 터치 가능할 수 있는 하나 이상의 디스플레이(14)를 포함할 수 있다. AVD(12)는 본 원리에 따라 오디오를 출력하기 위한 하나 이상의 스피커(16), 및 예를 들어, AVD(12)에 오디오 명령을 입력하여 AVD(12)를 제어하기 위한 예를 들어, 오디오 수신기/마이크와 같은 적어도 하나의 추가 입력 디바이스(18)를 포함할 수 있다. 예시적인 AVD(12)는 또한 하나 이상의 중앙 처리 유닛(Central Processing Unit, CPU), 그래픽 처리 유닛(Graphics Processing Unit, GPU) 및 이들의 조합과 같은 하나 이상의 프로세서(24)의 제어하에 인터넷, WAN, LAN 등과 같은 적어도 하나의 네트워크(22)를 통한 통신을 위한 하나 이상의 네트워크 인터페이스(20)를 포함할 수 있다. 중앙 처리 유닛(Central Processing Unit, CPU) 및 그래픽 처리 유닛(Graphics Processing Unit, GPU) 역할을 하는 단일 다이 상의 처리 칩은 본 명세서에서 가속 처리 유닛(Accelerated Processing Unit, APU)으로 지칭될 수 있음을 유의해야 한다.
인터페이스(20)는 메시 네트워크 송수신기(이에 제한되지 않음)와 같은 무선 컴퓨터 네트워크 인터페이스의 예인 Wi-Fi 송수신기일 수 있다. 프로세서(24)는 AVD(12)를 제어하여 예를 들어 디스플레이(14)를 제어하여 이미지를 표시하고 그로부터 입력을 수신하는 것과 같은 본 명세서에 설명된 AVD(12)의 다른 요소를 포함하는 본 원리를 수행한다는 것을 이해해야 한다. 또한, 네트워크 인터페이스(20)는 예를 들어 유선 또는 무선 모뎀 또는 라우터, 또는 예를 들어, 무선 전화 송수신기, 또는 위에서 언급한 Wi-Fi 송수신기 등과 같은 다른 적절한 인터페이스일 수 있다는 것에 유의한다.
앞서 말한 것 외에도, AVD(12)는 예를 들어 고화질 멀티미디어 인터페이스(HDMI) 포트 또는 다른 CE 디바이스에 (예를 들어, 유선 연결을 사용하여) 물리적으로 연결하는 USB 포트 및/또는 헤드폰을 통해 AVD(12)로부터 사용자에게 오디오를 제공하기 위해 헤드폰을 AVD(12)에 연결하는 헤드폰 포트와 같은 하나 이상의 입력 포트(26)를 포함할 수 있다. 예를 들어, 입력 포트(26)는 오디오 비디오 콘텐츠의 케이블 또는 위성 소스(26a)에 유선 또는 무선을 통해 연결될 수 있다. 따라서, 소스(26a)는 예를 들어 분리 또는 통합된 셋톱 박스 또는 위성 수신기일 수 있다. 또는, 소스(26a)는 아래에서 더 설명되는 채널 할당 목적을 위해 사용자에 의해 즐겨 찾기로 간주될 수 있는 콘텐츠를 보유하는 게임 콘솔 또는 디스크 플레이어일 수 있다. 게임 콘솔로 구현될 때의 소스(26a)는 CE 디바이스(44)와 관련하여 아래에 설명되는 구성 요소의 일부 또는 모두를 포함할 수 있다.
AVD(12)는 일시적인 신호가 아닌 디스크 기반 또는 솔리드 스테이트 스토리지와 같은 하나 이상의 컴퓨터 메모리(28)를 더 포함할 수 있으며, 일부 경우에는 독립형 디바이스로서 또는 AV 프로그램을 재생하기 위해 AVD 섀시 내부 또는 외부에 있는 개인용 비디오 녹화 디바이스(Personal Video Recording device, PVR) 또는 비디오 디스크 플레이어로서 또는 이동식 메모리 미디어로서 AVD의 섀시에 구현된다. 또한 일부 실시형태에서, AVD(12)는 예를 들어, 적어도 하나의 위성 또는 휴대폰 타워로부터 지리적 위치 정보를 수신하고 정보를 프로세서(24)에 제공하고 및/또는 프로세서(24)와 함께 AVD(12)가 배치되는 고도를 결정하도록 구성되는 휴대폰 수신기, GPS 수신기 및/또는 고도계(30)(이에 제한되지 않음)와 같은 위치 또는 장소 수신기를 포함할 수 있다. 그러나, 휴대폰 수신기, GPS 수신기 및/또는 고도계 이외의 다른 적절한 위치 수신기가 예를 들어 본 원리에 따라 예를 들어 AVD(12)의 장소를 예를 들어, 모두 3 차원으로 결정하는데 사용될 수 있다는 것을 이해해야 한다.
AVD(12)의 설명을 계속하면, 일부 실시형태에서 AVD(12)는 예를 들어 열 화상 카메라, 웹캠과 같은 디지털 카메라, 및/또는 본 원리에 따라 사진/이미지 및/또는 비디오를 수집하기 위해 프로세서(24)에 의해 제어 가능하며 AVD(12)에 통합된 카메라일 수 있는 하나 이상의 카메라(32)를 포함할 수 있다. 또한 AVD(12)에는 블루투스 및/또는 NFC 기술을 각각 사용하여 다른 디바이스와 통신하기 위한 블루투스 송수신기(34) 및 다른 근접 무선 통신(Near Field Communication, NFC) 요소(36)가 포함될 수 있다. NFC 요소의 예는 무선 주파수 식별(Radio Frequency IDentification, RFID) 요소일 수 있다.
또한, AVD(12)는 프로세서(24)에 입력을 제공하는 하나 이상의 보조 센서(37)(예를 들어, 가속도계, 자이로스코프, 사이클로미터 또는 자기 센서와 같은 모션 센서, 적외선(IR) 센서, 광학 센서, 속도 및/또는 케이던스 센서, (예를 들어 제스처 명령을 감지하기 위한) 제스처 센서 등)를 포함할 수 있다. AVD(12)는 프로세서(24)에 입력을 제공하는 OTH TV 방송을 수신하기 위한 공중파 TV 방송 포트(38)를 포함할 수 있다. 전술한 내용에 추가하여, AVD(12)는 또한 IR 데이터 관련(IR Data Association, IRDA) 디바이스와 같은 적외선(IR) 송신기 및/또는 IR 수신기 및/또는 IR 송수신기(42)를 포함할 수 있다는 점에 유의한다. AVD(12)에 전원을 공급하기 위한 배터리(미도시)가 제공될 수 있다.
여전히 도 1을 참조하면, AVD(12)에 더하여, 시스템(10)은 하나 이상의 다른 CE 디바이스 유형을 포함할 수 있다. 일 예에서, 제 1 CE 디바이스(44)는 아래에 설명되는 서버를 통해 전송된 명령을 통해 디스플레이를 제어하는 데 사용될 수 있는 반면, 제 2 CE 디바이스(46)는 제 1 CE 디바이스(44)와 유사한 구성 요소를 포함할 수 있으므로 상세하게 설명하지 않을 것이다. 도시된 예에서, 단지 2 개의 CE 디바이스(44, 46)가 도시되어 있으며, 더 적거나 더 많은 디바이스가 사용될 수 있다는 것을 이해해야 한다. 위에서 언급한 바와 같이, CE 디바이스(44/46) 및/또는 소스(26a)는 게임 콘솔에 의해 구현될 수 있다. 또는 하나 이상의 CE 디바이스(44/46)는 Google Chromecast, Roku, Amazon FireTV 상표로 판매되는 디바이스에 의해 구현될 수 있다.
도시된 예에서, 본 원리를 설명하기 위해 모두 3 개의 디바이스(12, 44, 46)가 예를 들어, 가정에서 엔터테인먼트 네트워크의 멤버인 것으로 가정되거나, 적어도 집과 같은 장소에서 서로 근접하여 존재하는 것으로 가정된다. 그러나, 본 원리는 달리 명시적으로 주장하지 않는 한, 점선(48)으로 예시된 특정 장소로 제한되지 않는다.
예시적인 비 제한적인 제 1 CE 디바이스(44)는 위에서 언급된 디바이스 중 어느 하나, 예를 들어 휴대용 무선 랩톱 컴퓨터 또는 노트북 컴퓨터 또는 게임 컨트롤러("콘솔"이라고도 함)에 의해 설정될 수 있으며, 따라서 아래에 설명된 구성 요소 중 하나 이상을 구비할 수 있다. 제한없이 제 2 CE 디바이스(46)는 블루레이 플레이어, 게임 콘솔 등과 같은 비디오 디스크 플레이어에 의해 설정될 수 있다. 제 1 CE 디바이스(44)는 예를 들어 AVD(12)에 AV 재생 및 일시 중지 명령을 발행하기 위한 리모트 컨트롤(Remote Control, RC)일 수 있거나, 태블릿 컴퓨터, 제 2 CE 디바이스(46)에 의해 구현되는 게임 콘솔과 유선 또는 무선을 통해 통신하여 AVD(12) 상의 비디오 게임 프레젠테이션을 제어하는 게임 컨트롤러, 퍼스널 컴퓨터, 무선 전화 등과 같은 더 정교한 디바이스일 수 있다.
따라서, 제 1 CE 디바이스(44)는 디스플레이 상의 터치를 통해 사용자 입력 신호를 수신하기 위해 터치 가능할 수 있는 하나 이상의 디스플레이(50)를 포함할 수 있다. 제 1 CE 디바이스(44)는 본 원리에 따라 오디오를 출력하기 위한 하나 이상의 스피커(52), 및 예를 들어 제 1 CE 디바이스(44)에 오디오 명령을 입력하여 디바이스(44)를 제어하기 위한 예를 들어, 오디오 수신기/마이크와 같은 적어도 하나의 추가 입력 디바이스(54)를 포함할 수 있다. 예시적인 제 1 CE 디바이스(44)는 하나 이상의 CPU, GPU 및 이들의 조합과 같은 하나 이상의 CE 디바이스 프로세서(58)의 제어하에 네트워크(22)를 통한 통신을 위한 하나 이상의 네트워크 인터페이스(56)를 또한 포함할 수 있다. 따라서, 인터페이스(56)는 메시 네트워크 인터페이스를 포함하는 무선 컴퓨터 네트워크 인터페이스의 예인 Wi-Fi 송수신기일 수 있으나 이에 제한되지 않는다. 프로세서(58)는 예를 들어, 디스플레이(50)를 제어하여 이미지를 표시하고 그로부터 입력을 수신하는 것과 같은 본 명세서에 설명된 제 1 CE 디바이스(44)의 다른 요소를 포함하는 본 원리를 수행하기 위해 제 1 CE 디바이스(44)를 제어한다는 것을 이해해야 한다. 또한, 네트워크 인터페이스(56)는 예를 들어 유선 또는 무선 모뎀 또는 라우터, 또는 예를 들어, 무선 전화 송수신기, 또는 위에서 언급한 Wi-Fi 송수신기와 같은 다른 적절한 인터페이스일 수 있다는 것에 유의한다.
전술한 내용에 추가하여, 제 1 CE 디바이스(44)는 예를 들어 HDMI 포트 또는 다른 CE 디바이스에 (예를 들어 유선 연결을 사용하여) 물리적으로 연결하는 USB 포트 및/또는 헤드폰을 통해 제 1 CE 디바이스(44)로부터 사용자에게 오디오의 프레젠테이션을 제공하기 위해 헤드폰을 제 1 CE 디바이스(44)에 연결하는 헤드폰 포트와 같은 하나 이상의 입력 포트(60)를 또한 포함할 수 있다. 제 1 CE 디바이스(44)는 디스크 기반 또는 솔리드 스테이트 스토리지와 같은 하나 이상의 유형의 컴퓨터 판독 가능 저장 매체(62)를 더 포함할 수 있다. 또한 일부 실시형태에서, 제 1 CE 디바이스(44)는 예를 들어, 삼각 측량을 사용하여 적어도 하나의 위성 및/또는 셀 타워로부터 지리적 위치 정보를 수신하도록, 정보를 CE 디바이스 프로세서(58)에 제공하도록 및/또는 CE 디바이스 프로세서(58)와 함께 제 1 CE 디바이스(44)가 배치되는 고도를 결정하도록 구성되는 휴대 전화 및/또는 GPS 수신기 및/또는 고도계(64)와 같은 위치 또는 장소 수신기를 포함할 수 있지만 이에 제한되지는 않는다. 그러나, 휴대폰 및/또는 GPS 수신기 및/또는 고도계 이외의 다른 적절한 위치 수신기가 예를 들어 제 1 CE 디바이스(44)의 장소를 예를 들어 모두 3 차원으로 결정하는데 본 원리에 따라 사용될 수 있다는 것을 이해해야 한다.
제 1 CE 디바이스(44)의 설명을 계속하면, 일부 실시형태에서 제 1 CE 디바이스(44)는 예를 들어 열 화상 카메라, 웹캠과 같은 디지털 카메라, 및/또는 본 원리에 따라 사진/이미지 및/또는 비디오를 수집하기 위해 CD 디바이스 프로세서(58)에 의해 제어 가능하며 제 1 CE 디바이스(44)에 통합된 카메라일 수 있는 하나 이상의 카메라(66)를 포함할 수 있다. 또한 제 1 CE 디바이스(44)에는 블루투스 및/또는 NFC 기술을 각각 사용하여 다른 디바이스와 통신하기 위한 블루투스 송수신기(68) 및 다른 근접 무선 통신(Near Field Communication, NFC) 요소(70)가 포함될 수 있다. NFC 요소의 예는 무선 주파수 식별(RFID) 요소일 수 있다.
또한, 제 1 CE 디바이스(44)는 CE 디바이스 프로세서(58)에 입력을 제공하는 하나 이상의 보조 센서(72)(예를 들어, 가속도계, 자이로스코프, 사이클로미터 또는 자기 센서와 같은 모션 센서, 적외선(IR) 센서, 광학 센서, 속도 및/또는 케이던스 센서, (예를 들어 제스처 명령을 감지하기 위한) 제스처 센서 등)를 포함할 수 있다. 제 1 CE 디바이스(44)는 예를 들어, 하나 이상의 기후 센서(74)(예를 들어, 기압계, 습도 센서, 풍향 센서, 광 센서, 온도 센서 등) 및/또는 CE 디바이스 프로세서(58)에 입력을 제공하는 하나 이상의 생체 인식 센서(76)와 같은 또 다른 센서를 포함할 수 있다. 전술한 것 외에도, 일부 실시형태에서 제 1 CE 디바이스(44)는 IR 데이터 관련(IR Data Association, IRDA) 디바이스와 같은 적외선(IR) 송신기 및/또는 IR 수신기 및/또는 IR 송수신기(78)를 또한 포함할 수 있다는 것에 유의한다. 제 1 CE 디바이스(44)에 전력을 공급하기 위한 배터리(미도시)가 제공될 수 있다. CE 디바이스(44)는 위에서 설명한 통신 모드 및 관련 구성 요소 중 임의의 것을 통해 AVD(12)와 통신할 수 있다.
제 2 CE 디바이스(46)는 CE 디바이스(44)에 대해 도시된 구성 요소의 일부 또는 모두를 포함할 수 있다. 하나 또는 둘 모두의 CE 디바이스는 하나 이상의 배터리에 의해 전원을 공급받을 수 있다.
전술한 적어도 하나의 서버(80)를 참조하면, 적어도 하나의 서버 프로세서(82), 디스크 기반 또는 솔리드 스테이트 스토리지와 같은 적어도 하나의 유형의 컴퓨터 판독 가능 저장 매체(84)를 포함한다. 구현에서, 매체(84)는 하나 이상의 SSD를 포함한다. 서버는, 네트워크(22)를 통해 도 1의 다른 디바이스와의 통신을 가능하게 하고 실제로 본 원리에 따라 서버와 클라이언트 디바이스 사이의 통신을 용이하게 할 수 있는 적어도 하나의 네트워크 인터페이스(86)를 또한 포함한다. 네트워크 인터페이스(86)는 예를 들어 유선 또는 무선 모뎀 또는 라우터, Wi-Fi 송수신기, 또는 예를 들어 무선 전화 송수신기와 같은 다른 적절한 인터페이스일 수 있다는 것에 유의한다. 네트워크 인터페이스(86)는 서버 프로세서(82)를 통과하지 않고 매체(84)를 소위 "패브릭"과 같은 네트워크에 직접 연결하는 원격 직접 메모리 액세스(Remote Direct Memory Access, RDMA) 인터페이스일 수 있다. 네트워크는 이더넷 네트워크 및/또는 파이버 채널 네트워크 및/또는 인피니밴드(InfiniBand) 네트워크를 포함할 수 있다. 일반적으로, 서버(80)는 물리적 서버 "스택"에 배열될 수 있는 "블레이드"로 지칭되는 다중 컴퓨터 내의 다중 프로세서를 포함한다.
따라서, 일부 실시형태에서 서버(80)는 인터넷 서버 또는 전체 "서버 팜"일 수 있고, 시스템(10)의 디바이스는 예를 들어 네트워크 게이밍 애플리케이션을 위한 예시적인 실시형태에서의 서버(80)를 통해 "클라우드" 환경에 액세스할 수 있도록 "클라우드" 기능을 포함하고 수행할 수 있다. 또는, 서버(80)는 도 1에 도시된 다른 디바이스와 동일한 방 또는 그 근처에 있는 하나 이상의 게임 콘솔 또는 다른 컴퓨터에 의해 구현될 수 있다.
본 명세서에서의 방법은 프로세서, 적절하게 구성된 특정 용도 집적 회로(Application Specific Integrated Circuits, ASIC) 또는 필드 프로그래밍 가능 게이트 어레이(Field Programmable Gate Array, FPGA) 모듈에 의해 실행되는 소프트웨어 명령어로서 구현될 수 있으며, 당업자가 인식할 수 있는 임의의 다른 편리한 방식으로 구현될 수 있다. 사용되는 경우, 소프트웨어 명령어는 CD ROM 또는 플래시 드라이브와 같은 비 일시적 디바이스에 구현될 수 있다. 소프트웨어 코드 명령어는 대안적으로 라디오 또는 광 신호와 같은 일시적인 배열로 구현되거나 인터넷을 통한 다운로드를 통해 구현될 수 있다.
도 2는 Sony PlayStations®, Microsoft Xboxes® 등과 같은 하나 이상의 클라이언트 게임 콘솔(200)("게임 시스템", "게임 디바이스"라고도 함)이 일반적으로 인터넷 서버인 클라우드 기반 게이밍 관리 서버(202)와 유선 및/또는 무선 링크를 통해 통신하는 클라우드 컴퓨터 게임 환경의 형태의 예시적인 애플리케이션을 예시한다. 차례로, 관리 서버(202)는 플래시 또는 3D Xpoint(이에 제한되지 않음)와 같은 솔리드 스테이트 메모리를 사용하는 NVMe 지원 SSD를 포함하는 랜덤 액세스 메모리(Random-Access Memory, RAM)와 같은 하나 이상의 솔리드 스테이트 메모리(206)를 포함하는 (다중 서버 "블레이드"에 의해 구현될 수 있는) 제 1 게임 서버(204)와 통신한다. 관리 서버(202)는 하나 이상의 솔리드 스테이트 메모리(214)를 포함하는 제 N 게임 서버(212)를 포함하여 최대 "N" 개의 이러한 서버와 통신한다.
예시적인 아키텍처
도 3은 단일 패브릭(300)이 단일 다이 또는 각각의 다이에 2 개의 APU(302, 304)를 보유하는 예시적인 불균일 메모리 액세스(Non-uniform Memory Access, NUMA) 아키텍처를 예시하며, 여기서 NUMA 아키텍처는 2 개 이상의 APU에 의해 구현될 수 있다는 것을 이해해야 한다. 동일한 패브릭(300) 상의 각각의 다이 칩 상에 구현될 때, 일반성을 위해 "버스"로 지칭될 수 있는 통신 경로는 패브릭의 층을 통해 설정될 수 있다.
도시된 바와 같이, 각각의 APU는 하나 이상의 CPU(304) 및 하나 이상의 GPU(306), 일반적으로 APU 당 하나의 CPU 및 하나의 GPU를 포함할 수 있다. 각각의 APU(302)는 랜덤 액세스 메모리(Random-Access Memory, RAM)와 같은 메모리(310)에 대한 액세스를 제어하는 자신의 각각의 메모리 컨트롤러(308)와 관련될 수 있다. APU 간의 통신은 본 명세서에서 편의상 "버스"로 지칭되는 하나 이상의 통신 경로(312)에 의해 영향을 받을 수 있다.
따라서, 각각의 APU(또는 개별 GPU)는 자체 메모리 컨트롤러를 구비하므로 RAM과 같은 자체 전용 메모리를 구비한다. GPU 간에 (캐시 코히런트) 공유 버스가 있을 수 있으므로 하나의 GPU가 다른 GPU의 메모리에 액세스할 수 있다.
도 4는 각각이 CPU(400) 및 GPU(402)를 포함하는 2 개의 APU가 도시된 공유 메모리 아키텍처의 블록도로서, 각각의 CPU와 각각의 GPU는 각각의 다이 상에 구현되고, 아키텍처는 더 적거나 심지어 하나의 다이 상에 구현될 수 있다는 것과 2 개 이상의 APU가 구현될 수 있다는 것을 이해해야 한다. APU는 메모리(406)를 제어하는 공통 메모리 컨트롤러(404)를 공유하고, APU는 각각의 통신 경로를 통해 서로 통신하고 메모리 컨트롤러와 통신할 수 있다.
도 5는 (각각이 각각의 CPU(502) 및 GPU(504)를 포함하는) 2 개의 APU가 도시된 공유 메모리 아키텍처의 블록도로서, 각각의 APU는 각각의 다이(500) 상에 구현되고 공유 메모리 컨트롤러(506)는 다이(500) 중 하나에 구현되고, 아키텍처는 하나의 다이 상에 구현될 수 있다는 것과 2 개 이상의 APU가 구현될 수 있다는 것을 이해해야 한다. 공유 메모리 컨트롤러(506)는 메모리(508)에 대한 액세스를 제어하고, APU는 하나 이상의 통신 경로(510)를 통해 서로 통신할 수 있고 메모리 컨트롤러(506)와 통신할 수 있다.
도 6은 스캔 아웃 유닛(602)을 갖는 예시적인 GPU(600)의 블록도이다. 스캔 아웃 유닛(602)은 각각의 메모리 버퍼(또는 동등하게 버퍼 ID)(606)를 가리키는 복수의 레지스터(604)를 포함할 수 있다. 비디오 인코더(608)는 스캔 아웃 유닛(602)과 통신할 수 있다. 비디오 인코더(608)는 정상적으로 HDMI 상에 출력되는 것과 동일한 이미지의 인코딩을 가능하게 하는 클라우드 게이밍 시나리오에 특히 적용 가능하다.
스캔 아웃 유닛(602)은 비디오의 각 프레임의 픽셀을 라인별로, 예를 들어 HDMI에 출력하는 역할을 한다. 아래에서 더 자세히 설명되는 바와 같이, 스캔 아웃 유닛은 올바른 비디오 프레임을 판독하도록 프로그래밍될 수 있다. 이를 위해 레지스터 세트(604)를 보유하며, 각각의 레지스터는 상이한 버퍼(606)를 가리키고 스캔 아웃 유닛은 버퍼를 사이클링한다.
프레임 버퍼 관리
이제부터 더 자세히 논의될 것이지만, 프레임 버퍼를 관리하기 위해 다수의 GPU가 함께 작동하는 방법에 대한 여러 접근법이 있다. 각각의 GPU는 다른 GPU와는 상이한 비디오 프레임을 렌더링할 수 있다. 또는, 각각의 GPU는 동일한 프레임의 상이한 부분을 렌더링할 수 있으며, 예를 들어, 프레임의 상단 1 ~ N 라인은 제 1 GPU에 의해 렌더링될 수 있으며, 동일한 프레임의 하단 N+1 ~ M 라인은 제 2 GPU에 의해 렌더링될 수 있다. GPU 간의 다른 패턴/부분이 사용될 수 있다.
도 7은 각각의 GPU가 전체 프레임을 렌더링하는 NUMA 실시형태의 예시적인 로직의 흐름도로서, 각각의 GPU는 동일한 비디오에 대해 다른 GPU와는 상이한 프레임을 렌더링하며, GPU 중 하나는 다른 GPU(들)의 버퍼를 가리키는 레지스터를 갖는다. 블록(700)에서 시작하여, 운영 체제 및/또는 GPU 드라이버는 프레임 버퍼로서 사용될 메모리 영역을 할당한다. 일반적으로, 프레임 버퍼는 2 개 이상의 버퍼(더 많은 추가 대기 시간)로 구성된다. 하나의 버퍼는 예를 들어, HDMI를 통해 현재 표시된 프레임이 출력되는 데 사용되며, 제 2 버퍼는 다음 프레임의 렌더링에 사용될 수 있다. 원하는 경우 추가 깊이 버퍼 및 기타 버퍼가 있을 수 있다.
도 7에서, GPU 드라이버 및/또는 시뮬레이션 프로그램(예를 들어, 컴퓨터 게임)은 GPU 간에 교대하는 렌더링 명령을 전송한다. GPU 드라이버 또는 게임은 제 1 GPU에게 모든 홀수 프레임을 렌더링할 것을 그리고 제 2 GPU에게 모든 짝수 프레임을 렌더링할 것을 명령함으로써 이를 관리한다.
이러한 구현에서, 로직은 각각의 레지스터가 상이한 GPU에 의해 관리되는 메모리 버퍼를 가리키도록 스캔 아웃 유닛의 레지스터를 프로그래밍하는 블록(702)으로 이동할 수 있다. 블록(704)으로 진행하여, GPU는 HDMI에 있을 수 있는 비디오의 모든 프레임을 출력하는 사이클링 GPU의 레지스터에 의해 가리킨 대로 자신이 관리하는 버퍼와 다른 GPU에 의해 관리되는 버퍼를 사이클링한다. 2 개 이상의 GPU가 사용될 때, 각각의 GPU에 의해 렌더링되는 프레임의 수는 그에 따라 감소될 수 있으며, 예를 들어, 각각의 GPU가 다른 GPU에 의해 렌더링되는 것과는 상이한 프레임을 렌더링하는 N 개의 GPU 각각은 비디오의 1/N 개의 프레임을 렌더링할 수 있다는 것을 이해해야 한다.
도 8은 스캔 아웃 유닛이 "로컬" GPU의 메모리로부터의 프레임을 스캔만 하는 다른 접근법을 예시한다. 도 7의 경우와 같이, 도 8의 블록(800)에서 운영 체제 및/또는 GPU 드라이버는 프레임 버퍼로서 사용할 메모리 영역을 할당한다. 그러나 블록(802)으로 이동하면, 제 1 GPU의 레지스터는 해당 GPU에 로컬인 버퍼만 가리키도록 프로그래밍되며, 제 2 GPU로부터의 프레임은 블록(804)에서 프레임의 렌더링 완료시 직접 메모리 액세스(Direct Memory Access, DMA)를 통해 제 1 GPU에 복사된다. "제 1" GPU는 제 2 GPU로부터의 (프레임 완료를 알리는) 인터럽트에 기초하여 프레임을 복사하는 제 1 GPU에 의해 설정될 수 있다는 것에 유의해야 한다. 블록(806)으로 진행하면, 제 1 GPU는 자신이 관리하는 버퍼, 및 HDMI에 있을 수 있는 비디오의 모든 프레임을 출력하기 위해 제 2 GPU로부터 블록(804)에서 DMA를 통해 수신된 프레임을 통해 사이클링한다.
도 4 및 도 5에 도시된 것과 같은 공유 메모리 컨트롤러 아키텍처에서, 스캔 아웃 유닛이 데이터를 판독하는 데 문제가 없으므로 프레임을 복사할 필요가 없다는 것을 유의해야 한다. 어떤 GPU가 렌더링했는지에 관계없이 타이밍은 동일하다.
도 9는 각각의 GPU가 프레임의 일부(예를 들어, 라인)를 렌더링하는 NUMA 실시형태의 예시적인 로직의 흐름도로서, 각각의 GPU는 동일한 프레임에 대해 다른 GPU와는 상이한 부분을 렌더링한다. 블록(900)에서 시작하여, 제 1 GPU는 N 개의 제 1 라인(라인 1 ~ N)과 같은 프레임의 제 1 부분을 렌더링하는 반면, 블록(902)에서 제 2 GPU는 동일한 프레임의 상이한 부분, 예를 들어 라인 N+1 ~ M(마지막 라인)을 렌더링한다. 2 개 이상의 GPU가 사용될 때, 각각의 GPU에 의해 렌더링되는 프레임의 부분이 그에 따라 감소된다는 것을 이해해야 한다. 어느 경우든, 블록(904)에서 전체 프레임(라인 1 내지 M)은 제 1 GPU에 의해 출력된다.
위의 사항에 영향을 주기 위해, 스캔 아웃 유닛은 프레임 당 다수의 버퍼로부터의 판독으로 수정될 수 있으며, 여기서 각각의 버퍼는 상이한 GPU에 의해 관리된다. 따라서 스캔 아웃 유닛은 제 1 버퍼로부터 "N" 개의 제 1 라인을 생성하고(자체 내부 렌더링일 수 있음), 제 2 GPU와 관련될 수 있는 제 2 버퍼로부터 다음 N 개의 라인을 생성하도록 프로그래밍될 수 있다.
도 10은 제 2 GPU DMA의 메모리가 제 1 GPU의 일부를 자신의 비디오 버퍼에 전달하는 점을 제외하면 도 9와 유사한 다른 대체 접근법을 예시한다. 따라서, 블록(1000)에서, 제 1 GPU는 N 개의 제 1 라인(라인 1 ~ N)과 같은 프레임의 제 1 부분을 렌더링하는 반면, 블록(1002)에서 제 1 GPU는 제 2 GPU로부터 DMA를 통해 동일한 프레임의 상이한 부분, 예를 들어, 라인 N+1 ~ M(마지막 라인)을 수신한다. 블록(1004)에서 전체 프레임(라인 1 ~ M)이 제 1 GPU에 의해 출력된다.
도 11은 각각의 GPU가 프레임의 일부(예를 들어, 라인)를 렌더링하는 공유 메모리 실시형태의 예시적인 로직의 흐름도로서, 각각의 GPU는 동일한 프레임에 대해 다른 GPU와는 상이한 다른 부분을 렌더링한다. 따라서, 블록(1100)에서 제 1 GPU는 프레임의 제 1 부분을 버퍼에 렌더링하고, 블록(1102)에서 제 2 GPU는 동일한 프레임의 제 2 부분을 동일한 버퍼에 렌더링한다. 블록(1104)에서 전체 프레임(라인 1 ~ M)이 공유 버퍼에 의해 출력된다.
어느 GPU가 HDMI 출력을 제어하는지를 결정
도 12는 어느 GPU가 출력을 관리하는지를 결정하는 제 1 접근법이 블록(1200)에서 제조시에 HDMI(또는 디스플레이포트(DisplayPort)) 출력을 특정 GPU에 단순히 물리적으로 연결하는 것을 포함한다는 것을 예시한다. 따라서 매핑은 제조시 제어된다.
도 13 및 도 14는 다른 접근법에서, 도 13의 블록(1300)에서 (도 14에 도시된) 각각의 GPU(1400)가 자체의 각각의 비디오 출력으로 구현된다는 것을 예시한다. GPU(1400)의 출력은 2 개의 GPU 출력 포트 사이를 토글(toggle)하는 하나 이상의 멀티플렉서(1402)에 의해 블록(1302)에서 멀티플렉싱된다.
신호가 종종 암호화된다는 것을 인식하면, 멀티플렉서(1402)의 출력을 수신하여 암호화를 해결하기 위해 암호화 칩(1404)이 제공될 수 있다. 본질적으로, 멀티플렉싱된 출력은 암호화 칩(1404)에 의해 HDMI로 변환되는 디스플레이포트(DisplayPort) 신호를 설정할 수 있다.
비디오 합성
본 명세서에서 이해되는 바와 같이, 사용자 경험(User eXperience, UX) 그래픽 및 시뮬레이션(예를 들어, 게임) 비디오는 모두 상이한 GPU를 통해 렌더링될 수 있다. 일반적으로 UX 렌더링이 까다롭지 않다는 점을 감안할 때, 단일 GPU, 전형적으로 이전 섹션에서 HDMI 출력도 처리하기 위해 선택된 GPU만이 UX를 렌더링하면 된다. 이 GPU는 UX와 게임을 포함하는 최종 프레임 버퍼 이미지를 합성한다. 프레임 버퍼인 게임은 프레임에 따라 달라질 수 있다. 합성 엔진은 각각의 GPU의 메모리로부터 또는 공유 메모리 컨트롤러로부터 직접 메모리를 판독할 수 있다.
전력 관리
전력 관리 기술은 전력 소비를 제한함으로써 열 부하를 낮추도록 구현될 수 있다. 전력 소비는 주파수 및 전압의 제곱에 따라 선형적으로 변한다는 것을 인식하면, 비디오 게임과 같은 컴퓨터 시뮬레이션 프로그램은 주파수/전압/전력 임계값에 도달함에 따라 주파수 및/또는 전압을 자동으로 감소시킴으로써 전력 소비를 미리 결정된 임계값 이내로 유지하도록 프로그래밍될 수 있다. 이를 위해, 하나 이상의 GPU와 같은 하드웨어의 레지스터는 필요한 경우 입자 효과와 같은 특정 효과를 스로틀링(throttling)하여 현재 사용량 할당을 결정하도록 판독될 수 있다. 동일한 원리가 모바일 폰에도 적용될 수 있다. 스로틀링은 오버 클럭 기술에 의해 구현될 수 있으며, GPU는 아키텍처 내의 CPU와는 독립적으로 스로틀링될 수 있다. 전력 소비 관련 임계값을 유지하면서 시뮬레이션 실행을 유지하기 위해 비디오 해상도를 감소시킬 수 있다. 전력 소비 관련 임계값에 도달하면 오디오 및/또는 비주얼 경고(예를 들어, LED 활성화)가 표시될 수 있다.
사용자는 추가적인 열적 예산에 대해 추가 비용을 지불할 수 있다. 마찬가지로, 사용자는 추가 요금을 지불하여 클라우드 서버에서 더 많은 다이(따라서 더 많은 APU)를 할당받을 수 있으며, 단 하나의 다이만 소액 사용자에게 할당된다. 이는 애플리케이션이 API를 프로그래밍함으로써 시스템 메트릭을 호출하고 스레드를 생성하고 메트릭을 기반으로 서비스 품질을 결정하기 시작할 때 수행될 수 있다. 더 적은 수의 다이에 할당된 소액 사용자에 대해 시스템 메트릭을 필터링할 수 있다. 동시 처리가 가능한 멀티 스레드 게임의 이점을 원하는 고액 사용자는 소액 사용자보다 더 많은 다이를 할당받을 수 있다.
본 발명의 원리를 일부 예시적인 실시형태를 참조하여 설명하였지만, 이들은 제한하려는 의도가 아니며, 본 명세서에서 청구된 주제를 구현하기 위해 다양한 대체 구성이 사용될 수 있다는 것이 이해될 것이다.

Claims (20)

  1. 장치로서:
    적어도 제 1 그래픽 처리 유닛(Graphics Processing Unit, GPU)과,
    상기 제 1 GPU에 통신 가능하게 결합된 적어도 제 2 GPU
    를 포함하며;
    상기 GPU들은: 상기 제 1 GPU는 비디오의 제 1 부분을 렌더링하고 상기 제 2 GPU는 상기 비디오의 제 2 부분을 렌더링하도록, 상기 비디오의 각각의 부분을 렌더링하도록 프로그래밍되며, 상기 제 1 부분과 상기 제 2 부분은 서로 상이한,
    장치.
  2. 제 1 항에 있어서,
    상기 제 1 및 제 2 GPU는 공통 다이 상에 구현되는,
    장치.
  3. 제 1 항에 있어서,
    상기 제 1 및 제 2 GPU는 개개의 제 1 및 제 2 다이 상에 구현되는,
    장치.
  4. 제 1 항에 있어서,
    상기 제 1 GPU는 제 1 중앙 처리 유닛(Central Processing Unit, CPU)과 관련되고, 상기 제 2 GPU는 제 2 CPU와 관련되는,
    장치.
  5. 제 1 항에 있어서,
    상기 제 1 GPU와 관련된 제 1 메모리 컨트롤러 및 제 1 메모리, 및 상기 제 2 GPU와 관련된 제 2 메모리 컨트롤러 및 제 2 메모리를 포함하는,
    장치.
  6. 제 1 항에 있어서,
    상기 GPU는 공통 메모리를 제어하는 공통 메모리 컨트롤러를 공유하는,
    장치.
  7. 제 1 항에 있어서,
    각각의 GPU는 각각의 출력을 제공하기 위해 다른 GPU에 의해 렌더링된 비디오의 프레임과는 상이한 비디오의 모두는 아니지만 일부 프레임의 모두를 렌더링하도록 프로그래밍되고, 상기 GPU의 출력은 상기 비디오를 렌더링하도록 결합되는,
    장치.
  8. 제 1 항에 있어서,
    각각의 GPU는 각각의 출력을 제공하기 위해 다른 GPU에 의해 렌더링된 프레임의 라인과는 상이한, GPU에 의해 렌더링된 비디오의 프레임의 모두는 아니지만 일부 라인의 모두를 렌더링하도록 프로그래밍되고, 상기 GPU의 출력은 상기 비디오를 렌더링하도록 결합되는,
    장치.
  9. 제 7 항에 있어서,
    상기 제 1 GPU는 상기 제 2 GPU에 의해 관리되는 적어도 하나의 버퍼를 가리키는 적어도 하나의 스캔 아웃(scanout) 유닛을 포함하고, 상기 제 1 GPU는 상기 버퍼를 사이클링하여 상기 비디오의 프레임의 전체 시퀀스를 출력하도록 프로그래밍되는,
    장치.
  10. 제 7 항에 있어서,
    상기 제 1 GPU는 상기 제 1 GPU에 의해 관리되는 버퍼만을 가리키는 적어도 하나의 스캔 아웃 유닛을 포함하고, 상기 제 1 GPU는 직접 메모리 액세스(Direct Memory Access, DMA)를 통해 상기 제 2 GPU로부터 상기 비디오의 프레임을 수신하도록 그리고 상기 비디오 프레임의 전체 시퀀스를 출력하도록 프로그래밍되는,
    장치.
  11. 제 1 항에 있어서,
    상기 제 1 GPU는 적어도 상기 제 1 GPU에 의해 관리되는 제 1 버퍼 및 상기 제 2 GPU에 의해 관리되는 제 2 버퍼를 가리키는 적어도 하나의 스캔 아웃 유닛을 포함하며, 상기 제 1 GPU는 버퍼를 사이클링하여 상기 제 1 버퍼와 관련된 제 1-N 라인과 제 2 버퍼와 관련된 제 (N+1)-M 라인을 사용하여 비디오 프레임의 전체 시퀀스를 출력하도록 프로그래밍되며, 상기 제 1-N 라인과 제 (N+1)-M 라인은 비디오의 프레임의 상이한 라인인,
    장치.
  12. 제 1 항에 있어서,
    상기 제 1 GPU는 상기 제 2 GPU에 의해 관리되는 제 2 버퍼가 아니라 상기 제 1 GPU에 의해 관리되는 적어도 제 1 버퍼를 가리키는 적어도 하나의 스캔 아웃 유닛을 포함하며, 상기 제 1 GPU는 버퍼를 사이클링하여 직접 메모리 액세스(Direct Memory Access, DMA)를 통해 상기 제 1 GPU에 수신되고 상기 제 1 버퍼와 관련된 제 1-N 라인 및 상기 제 2 버퍼와 관련된 제 (N+1)-M 라인을 사용하여 비디오의 프레임의 전체 시퀀스를 출력하도록 프로그래밍되며, 상기 제 1-N 라인과 상기 제 (N+1)-M 라인은 비디오 프레임의 상이한 라인인,
    장치.
  13. 제 6 항에 있어서,
    상기 제 1 GPU는 공통 메모리 컨트롤러와 통신하는 적어도 제 1 버퍼를 가리키는 적어도 하나의 스캔 아웃 유닛을 포함하며, 상기 제 2 GPU는 상기 공통 메모리 컨트롤러와 통신하는 제 2 버퍼를 포함하며, 상기 제 1 GPU는 상기 제 1 버퍼와 관련된 제 1-N 라인을 렌더링하고 상기 제 2 GPU는 상기 제 2 버퍼와 관련된 제 (N+1)-M 라인을 렌더링하며, 상기 제 1-N 라인과 상기 제 (N+1)-M 라인은 비디오의 프레임의 상이한 라인인,
    장치.
  14. 제 1 항에 있어서,
    상기 제 1 GPU는 상기 제 1 및 제 2 GPU으로부터 출력되는 비디오 데이터를 관리하는,
    장치.
  15. 제 1 항에 있어서,
    상기 GPU는 각각의 GPU로부터의 프레임 및/또는 라인을 함께 멀티플렉싱하여 비디오를 출력하는 멀티플렉서에 비디오 데이터를 출력하는,
    장치.
  16. 다중 그래픽 처리 유닛(Graphics Processing Unit, GPU) 시뮬레이션 환경에서의 방법으로서:
    복수의 GPU가 비디오의 각각의 프레임을 렌더링하게 하거나, 비디오의 각각의 프레임의 각각의 부분을 렌더링하게 하거나, 비디오의 각각의 프레임 및 프레임의 각각의 부분을 렌더링하게 하는 단계와;
    상기 GPU(들) 중 적어도 하나의 다른 GPU로부터 프레임 정보를 수신하는 상기 GPU 중 제 1 GPU를 이용하거나, 상기 GPU의 출력을 함께 멀티플렉싱하거나, 상기 GPU(들) 중 적어도 하나의 다른 GPU로부터 프레임 정보를 수신하는 상기 GPU 중 제 1 GPU를 이용하는 것과 상기 GPU의 출력을 함께 멀티플렉싱하는 것 둘 다를 행하여, 프레임 출력을 제어하는 단계
    를 포함하는, 방법.
  17. 제 16 항에 있어서,
    복수의 GPU가 비디오의 각각의 프레임을 렌더링하게 하는 단계를 포함하는,
    방법.
  18. 제 16 항에 있어서,
    복수의 GPU가 비디오의 각각의 프레임의 각각의 부분을 렌더링하게 하는 단계를 포함하는,
    방법.
  19. 제 16 항에 있어서,
    상기 GPU(들) 중 적어도 하나의 다른 GPU로부터 프레임 정보를 수신하는 상기 GPU 중 제 1 GPU를 사용하여 프레임 출력을 제어하는 단계를 포함하는,
    방법.
  20. 컴퓨터 시뮬레이션 장치로서:
    시뮬레이션 비디오의 각각의 제 1 부분을 렌더링하도록 프로그래밍된 적어도 제 1 그래픽 처리 유닛(Graphics Processing Unit, GPU)과;
    시뮬레이션 비디오의 각각의 제 2 부분을 렌더링하도록 프로그래밍된 적어도 제 2 GPU
    를 포함하며;
    적어도 상기 제 1 GPU는 상기 제 1 부분과 상기 제 2 부분을 결합하고 그리고 전체 시뮬레이션 비디오를 설정하는 출력을 렌더링하도록 프로그래밍되는,
    컴퓨터 시뮬레이션 장치.
KR1020217024267A 2019-01-30 2020-01-15 홈 콘솔 및 클라우드 게이밍을 위한 확장 가능한 게임 콘솔 cpu/gpu 설계 KR102610097B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/261,986 2019-01-30
US16/261,986 US11074666B2 (en) 2019-01-30 2019-01-30 Scalable game console CPU/GPU design for home console and cloud gaming
PCT/US2020/013721 WO2020159710A1 (en) 2019-01-30 2020-01-15 Scalable game console cpu / gpu design for home console and cloud gaming

Publications (2)

Publication Number Publication Date
KR20220021444A true KR20220021444A (ko) 2022-02-22
KR102610097B1 KR102610097B1 (ko) 2023-12-04

Family

ID=71731484

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217024267A KR102610097B1 (ko) 2019-01-30 2020-01-15 홈 콘솔 및 클라우드 게이밍을 위한 확장 가능한 게임 콘솔 cpu/gpu 설계

Country Status (6)

Country Link
US (1) US11074666B2 (ko)
EP (1) EP3918567A4 (ko)
JP (1) JP7277592B2 (ko)
KR (1) KR102610097B1 (ko)
CN (1) CN113490962A (ko)
WO (1) WO2020159710A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9795879B2 (en) * 2014-12-31 2017-10-24 Sony Interactive Entertainment America Llc Game state save, transfer and resume for cloud gaming
CN115375530A (zh) * 2022-07-13 2022-11-22 北京松应科技有限公司 一种多gpu协同渲染方法、系统、装置及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7075541B2 (en) * 2003-08-18 2006-07-11 Nvidia Corporation Adaptive load balancing in a multi-processor graphics processing system
KR20070048634A (ko) * 2005-11-04 2007-05-09 엔비디아 코포레이션 다수의 그래픽 처리 장치를 이용한 비디오 처리
US20080030510A1 (en) * 2006-08-02 2008-02-07 Xgi Technology Inc. Multi-GPU rendering system
KR20100114496A (ko) * 2007-11-30 2010-10-25 에이티아이 테크놀로지스 유엘씨 고속의 주변 상호연결 버스를 통한 비디오 렌더링
JP2015197805A (ja) * 2014-04-01 2015-11-09 株式会社ソニー・コンピュータエンタテインメント プロセッシングシステムおよびマルチプロセッシングシステム
KR20180129856A (ko) * 2014-06-30 2018-12-05 인텔 코포레이션 확장 가능한 gpu에서 데이터 분배 패브릭

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7015915B1 (en) * 2003-08-12 2006-03-21 Nvidia Corporation Programming multiple chips from a command buffer
US6956579B1 (en) * 2003-08-18 2005-10-18 Nvidia Corporation Private addressing in a multi-processor graphics processing system
US7941645B1 (en) * 2004-07-28 2011-05-10 Nvidia Corporation Isochronous pipelined processor with deterministic control
US7786998B2 (en) * 2004-11-12 2010-08-31 Ati Technologies Ulc Methods and apparatus for controlling video playback
US7633505B1 (en) * 2004-11-17 2009-12-15 Nvidia Corporation Apparatus, system, and method for joint processing in graphics processing units
US7522167B1 (en) * 2004-12-16 2009-04-21 Nvidia Corporation Coherence of displayed images for split-frame rendering in multi-processor graphics system
US7456833B1 (en) * 2005-06-15 2008-11-25 Nvidia Corporation Graphical representation of load balancing and overlap
JP4327175B2 (ja) * 2005-07-12 2009-09-09 株式会社ソニー・コンピュータエンタテインメント マルチグラフィックプロセッサシステム、グラフィックプロセッサおよび描画処理方法
US7961192B2 (en) * 2006-08-01 2011-06-14 Nvidia Corporation Multi-graphics processor system and method for processing content communicated over a network for display purposes
US9336028B2 (en) * 2009-06-25 2016-05-10 Apple Inc. Virtual graphics device driver
US20120001925A1 (en) * 2010-06-30 2012-01-05 Ati Technologies, Ulc Dynamic Feedback Load Balancing
CN103810124A (zh) * 2012-11-09 2014-05-21 辉达公司 用于数据传输的系统及方法
US10085017B2 (en) * 2012-11-29 2018-09-25 Advanced Micro Devices, Inc. Bandwidth saving architecture for scalable video coding spatial mode
US20160188351A1 (en) * 2014-12-24 2016-06-30 Bull Hn Information Systems, Inc. Process for providing increased power on demand in a computer processing system with submodeling
US10467138B2 (en) * 2015-12-28 2019-11-05 Advanced Micro Devices, Inc. Caching policies for processing units on multiple sockets
US10304154B2 (en) * 2017-04-24 2019-05-28 Intel Corporation Coordination and increased utilization of graphics processors during inference
US10761592B2 (en) * 2018-02-23 2020-09-01 Dell Products L.P. Power subsystem-monitoring-based graphics processing system

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7075541B2 (en) * 2003-08-18 2006-07-11 Nvidia Corporation Adaptive load balancing in a multi-processor graphics processing system
JP2007503059A (ja) * 2003-08-18 2007-02-15 エヌビディア・コーポレーション マルチプロセッサ・グラフィックス処理システムの適応型負荷分散
KR20070048634A (ko) * 2005-11-04 2007-05-09 엔비디아 코포레이션 다수의 그래픽 처리 장치를 이용한 비디오 처리
US7525548B2 (en) * 2005-11-04 2009-04-28 Nvidia Corporation Video processing with multiple graphical processing units
US20080030510A1 (en) * 2006-08-02 2008-02-07 Xgi Technology Inc. Multi-GPU rendering system
KR20100114496A (ko) * 2007-11-30 2010-10-25 에이티아이 테크놀로지스 유엘씨 고속의 주변 상호연결 버스를 통한 비디오 렌더링
JP2015197805A (ja) * 2014-04-01 2015-11-09 株式会社ソニー・コンピュータエンタテインメント プロセッシングシステムおよびマルチプロセッシングシステム
KR20180129856A (ko) * 2014-06-30 2018-12-05 인텔 코포레이션 확장 가능한 gpu에서 데이터 분배 패브릭

Also Published As

Publication number Publication date
JP2022521455A (ja) 2022-04-08
CN113490962A (zh) 2021-10-08
EP3918567A1 (en) 2021-12-08
US20200242723A1 (en) 2020-07-30
EP3918567A4 (en) 2023-03-15
WO2020159710A1 (en) 2020-08-06
JP7277592B2 (ja) 2023-05-19
US11074666B2 (en) 2021-07-27
KR102610097B1 (ko) 2023-12-04

Similar Documents

Publication Publication Date Title
US11102543B2 (en) Control of large screen display using wireless portable computer to pan and zoom on large screen display
WO2020186988A1 (zh) 资讯的展示方法、装置、终端及存储介质
US10868624B2 (en) Backward compatible mechanism to provide cable type signaling in HDMI
US20200376375A1 (en) Method and apparatus for performing client side latency enhancement with aid of cloud game server side image orientation control
KR102610097B1 (ko) 홈 콘솔 및 클라우드 게이밍을 위한 확장 가능한 게임 콘솔 cpu/gpu 설계
US20240064342A1 (en) Ultra high-speed low-latency network storage
CN107026834B (zh) 用于改进云中的游戏流式传输性能的方法
US11115725B2 (en) User placement of closed captioning
US11134114B2 (en) User input based adaptive streaming
CN112106339B (zh) 位移下的后向面片剔除
US11890538B2 (en) Scalable game console CPU / GPU design for home console and cloud gaming
US20120179899A1 (en) Upgradeable processor enabling hardware licensing
US11805219B2 (en) Image special effect processing method and apparatus, electronic device and computer-readable storage medium
US20180081484A1 (en) Input method for modeling physical objects in vr/digital
US11103794B2 (en) Post-launch crowd-sourced game qa via tool enhanced spectator system
CN110121380B (zh) 通过仿真进行重新录制
US10373358B2 (en) Edge user interface for augmenting camera viewfinder with information
US11307608B2 (en) Integrated circuit and electronic device for controlling function modules in low-power state according to operation state, and control method therefor
WO2024030841A1 (en) Haptics support for ui navigation
US20130326351A1 (en) Video Post-Processing on Platforms without an Interface to Handle the Video Post-Processing Request from a Video Player

Legal Events

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