KR102590889B1 - 고해상도 디스플레이 상에 다수의 스크린 영역들을 제공하기 위한 메커니즘 - Google Patents

고해상도 디스플레이 상에 다수의 스크린 영역들을 제공하기 위한 메커니즘 Download PDF

Info

Publication number
KR102590889B1
KR102590889B1 KR1020187034785A KR20187034785A KR102590889B1 KR 102590889 B1 KR102590889 B1 KR 102590889B1 KR 1020187034785 A KR1020187034785 A KR 1020187034785A KR 20187034785 A KR20187034785 A KR 20187034785A KR 102590889 B1 KR102590889 B1 KR 102590889B1
Authority
KR
South Korea
Prior art keywords
frame buffer
pipes
buffer data
coordinates
transcoder
Prior art date
Application number
KR1020187034785A
Other languages
English (en)
Other versions
KR20190025823A (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 KR20190025823A publication Critical patent/KR20190025823A/ko
Application granted granted Critical
Publication of KR102590889B1 publication Critical patent/KR102590889B1/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
    • 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/003Details of a display terminal, the details relating to the control arrangement of the display terminal and to the interfaces thereto
    • G09G5/006Details of the interface to the display terminal
    • 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/14Display of multiple viewports
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Graphics (AREA)
  • Image Generation (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Transforming Electric Information Into Light Information (AREA)

Abstract

디스플레이 엔진은, 프레임 버퍼 데이터를 복수의 영역들로 분할하기 위해 프레임 버퍼 좌표들을 생성하기 위한 표면 분할기 - 복수의 영역들 각각은 프레임 버퍼 좌표에 대응함 -, 프레임 버퍼 좌표들을 수신하기 위한, 복수의 파이프들을 포함하는 파이프라인 - 여기서 복수의 파이프들 중 2개 이상은, 프레임 버퍼 좌표들에 의해 식별되는 프레임 버퍼의 영역에 대응하는 프레임 버퍼 데이터를 프로세싱하도록 병렬로 동작함 -, 디스플레이 엔진이 멀티-파이프 협업 모드에서 동작하고 있을 때마다, 2개 이상의 파이프들 각각으로부터의 프레임 버퍼 데이터를 출력 신호로 병합하기 위한 복수의 트랜스코더들 중 제1 트랜스코더, 및 표면 분할기로부터 수신된 페치 순서에 기초하여 2개 이상의 파이프들 각각으로부터 제1 트랜스코더로의 프레임 버퍼 데이터의 송신의 순서를 제어하기 위한 멀티플렉서(Mux) 및 멀티-스트림 중재기를 포함한다.

Description

고해상도 디스플레이 상에 다수의 스크린 영역들을 제공하기 위한 메커니즘
본 개시내용은 일반적으로 고해상도 디스플레이 디바이스들에 대한 디스플레이 엔진들에 관한 것이다.
8K 해상도 또는 8K UHD는 현재 디지털 텔레비전 및 디지털 시네마토그래피(digital cinematography)에서 가장 높은 초고선명 텔레비전(ultra high definition television)(UHDTV) 해상도이다. 8K는, (7680×4320)의 총 이미지 크기들을 형성하는, 대략 8,000개의 픽셀들의 수평 해상도를 지칭한다. 8K UHD는 4K UHD의 수평 및 수직 해상도의 2배를 갖는데, 이때 전체적으로 픽셀들이 4배 더 많거나, 또는 풀 HD(Full HD)보다 픽셀들이 16배 더 많다. 8K와 같은 고해상도 디스플레이들은 사용자가 각각의 픽셀을 스크린에 대한 수용가능한 거리로부터 육안으로 구별할 수 없게 하는 것을 가능하게 한다.
8K, 그리고 한층 더 높은 해상도의 디스플레이(예를 들어, 16K) 지원에 대한 요구는 디스플레이 엔진 설계자들에게 품질, 전력 소비뿐만 아니라 다른 요건들을 충족시키기 위한 새로운 도전과제들을 제기한다. 예를 들어, 현재 디스플레이 엔진 설계에서, 단일 고해상도 스크린은 통상적으로 하나의 파이프라인(예를 들어, 1 파이프 플러스 1 트랜스코더 파이프라인(one-pipe-plus-one-transcoder pipeline))에 의해 구동되는데, 이는 파이프 및 트랜스코더 양측 모두가 매우 높은 주파수에서 작동하는 것을 요구한다. 하나의 알려진 예외는, 비디오 전자 표준 위원회(Video Electronics Standards Association)(VESA)에 의해 개발된 디스플레이포트 버전 1.2 인터페이스의 멀티-스트림 전송(Multi-Stream Transport)(MST)인데, 이는 단일 스크린을 수 개의 보다 작은 스크린 영역들의 조합으로 취급하고, 스크린 영역들 각각을 고려하기 위해 풀 1 파이프 플러스 1 트랜스코더 파이프라인을 요구한다. 그러나, MTS는 전형적으로 다수의 스크린 영역들을 하나의 단일 디스플레이로 병합하는 동안 까다로운 동기화 이슈들로부터 어려움을 겪고, 애플리케이션들이 멀티-스크린을 인식하지 못하는 경우 동작하지 않을 수도 있다.
도 1a 및 도 1b는 시스템의 실시예들의 블록 다이어그램들을 예시한다.
도 2는 디스플레이 엔진의 일 실시예를 예시한다.
도 3은 디스플레이 상의 다수의 스크린 영역들을 병합하기 위한 프로세스의 일 실시예를 예시한다.
도 4a 및 도 4b는 분할 정책들의 실시예들을 예시한다.
도 5는 다수의 평면들을 이용하는 분할의 실시예를 예시한다.
도 6은 컴퓨팅 아키텍처의 일 실시예를 예시한다.
멀티-파이프 협업 디스플레이 엔진이 설명된다. 일부 실시예들에서, 그래픽 로직 컴포넌트 및 디스플레이 엔진과 같은 컴포넌트들, 및/또는 중앙 프로세싱 유닛의 컴포넌트들의 설계 및 동작은, 디스플레이 패널로의 데이터 프레임들의 송신 및 데이터 프레임 렌더링을 수정하도록 변경될 수도 있다. 이들 변경들은 업데이트가 요구되지 않을 때 디스플레이 인터페이스의 전력 관리와 같은 전력 절약을 달성하는 전력 관리 후크(power management hook)들의 변경들을 수반할 수도 있다.
도 1a는 본 실시예들과 일관된 하나의 시스템(100)을 예시한다. 시스템(100)은 중앙 프로세싱 유닛(CPU)(102), 그래픽 로직(104), 디스플레이 엔진(106), 메모리(108), 및 디스플레이 디바이스(110)를 포함한다. 인터페이스(112)는 그래픽 로직(104)과 디스플레이 엔진(106)을 커플링시킬 수도 있다. 일부 실시예들에서, 시스템(100)은 랩톱 컴퓨터, 태블릿 컴퓨팅 디바이스, 데스크톱 컴퓨터, 스마트폰, 또는 다른 전자 컴퓨팅 디바이스 또는 통신 디바이스와 같은 모바일 디바이스에서 구체화될 수도 있다. 실시예들은 이와 관련해서 제한되지 않는다.
특히, 다양한 실시예들에서 CPU(102), 그래픽 로직(104), 및/또는 디스플레이 엔진(106)은 다양한 하드웨어 요소들, 소프트웨어 요소들, 또는 이들 양측 모두의 조합을 포함할 수도 있다. 하드웨어 요소들의 예들로는 디바이스들, 컴포넌트들, 프로세서들, 마이크로프로세서들, 회로들, 회로 요소들(예를 들어, 트랜지스터들, 저항기들, 커패시터들, 인덕터들 등), 집적 회로들, 주문형 집적 회로들(ASIC), 프로그래밍가능 로직 디바이스들(PLD), 디지털 신호 프로세서들(DSP), 필드 프로그래밍가능 게이트 어레이(FPGA), 메모리 유닛들, 로직 게이트들, 레지스터들, 반도체 디바이스, 칩들, 마이크로칩들, 칩 세트들 등을 포함할 수도 있다. 소프트웨어 요소들의 예들로는 소프트웨어 컴포넌트들, 프로그램들, 애플리케이션들, 컴퓨터 프로그램들, 애플리케이션 프로그램들, 시스템 프로그램들, 머신 프로그램들, 운영 체제 소프트웨어, 미들웨어, 펌웨어, 소프트웨어 모듈들, 루틴들, 서브루틴들, 함수들, 메소드들, 프로시저들, 소프트웨어 인터페이스들, 애플리케이션 프로그램 인터페이스들(API), 명령어 세트들, 컴퓨팅 코드, 컴퓨터 코드, 코드 세그먼트들, 컴퓨터 코드 세그먼트들, 워드들, 값들, 심볼들, 또는 이들의 임의의 조합을 포함할 수도 있다. 실시예가 하드웨어 요소들 및/또는 소프트웨어 요소들을 사용하여 구현되는지 여부를 결정하는 것은, 주어진 구현에 대해 원하는 대로, 원하는 계산 레이트, 전력 레벨들, 열 허용오차들, 프로세싱 사이클 버짓, 입력 데이터 레이트들, 출력 데이터 레이트들, 메모리 리소스들, 데이터 버스 속도들 및 다른 설계 또는 성능 제약들과 같은 임의의 수의 인자들에 따라 달라질 수도 있다.
시스템(100)은 디스플레이 디바이스(110)와 같은 디스플레이 상의 제시를 위해 다양한 소스들로부터 수신된 데이터를 프로세싱하기 위한 통신 동작들 또는 로직을 실행할 수도 있다. 데이터는, 디스플레이 디바이스(110) 상에 연속적으로 제시될 비디오 콘텐츠 또는 다른 이미지들과 같은 미디어 콘텐츠를 포함할 수도 있다. 디스플레이 디바이스(110)의 예들로는 액정 디스플레이(LCD), 발광 다이오드 디스플레이(LED), 터치 감응형 디스플레이, 플라즈마 디스플레이, 음극선관, 및 다른 디스플레이 타입들을 포함한다. 일 실시예에서, 디바이스(110)는 슈퍼 고해상도 디스플레이(예를 들어, 8K 또는 16K 해상도)이다.
다양한 실시예들에서, 시스템(100)은, 키보드들, 마이크로폰들, 마우스, 조이스틱 또는 다른 내비게이션 디바이스들 등을 포함하지만 이에 제한되지 않는 다양한 입력 디바이스들(도시되지 않음)을 포함할 수도 있다. 사용자는 디스플레이 디바이스(110) 상에서 뷰잉하기 위해 하나 이상의 미디어 소스들(도시되지 않음)로부터의 미디어 파일들을 선택하기 위해 그러한 입력 디바이스들을 사용할 수도 있다.
다른 실시예들에서, 프로세싱을 위한 데이터는 디지털 매체 또는 디지털 미디어로부터 수신될 수도 있다. 디지털 미디어에 대한 소스는 디지털 카메라, 디지털 비디오 디바이스, 스마트폰, 태블릿 컴퓨팅 디바이스, 컴퓨터, 또는 사용자 또는 사용자들이 디스플레이 디바이스(110) 상에서 뷰잉하기를 원할 수도 있는 하나 이상의 미디어 파일들을 포함하는 다른 디바이스일 수도 있다. 미디어 소스들의 다른 예들로는, 디지털 비디오 레코더(DVR), 퍼스널 비디오 레코더(PVR), 디지털 다기능 디스크(DVD) 디바이스, 비디오 홈 시스템(VHS) 디바이스, 디지털 VHS 디바이스, 디스크 드라이브, 하드 드라이브, 광 디스크 드라이브, 범용 직렬 버스(USB) 플래시 드라이브, 메모리 카드, 보안 디지털(SD) 메모리 카드, 대용량 저장 디바이스, 플래시 드라이브, 컴퓨터, 게이밍 콘솔, 콤팩트 디스크(CD) 플레이어, 컴퓨터 판독가능 또는 머신 판독가능 메모리, 비디오 감시 시스템, 통신회의 시스템(teleconferencing system), 전화 시스템, 웨어러블 컴퓨터들, 휴대용 미디어 플레이어들(PMP), 휴대용 미디어 레코더들(PMR), 디지털 미디어 서버들 등과 같은, 미디어 정보를 저장 및/또는 전달하는 것이 가능한 임의의 하드웨어 또는 소프트웨어 요소를 포함한다. 실시예들은 이와 관련해서 제한되지 않는다. 추가의 실시예들에서, 디지털 매체는, 머신 생성 애니메이션과 같은, 주기적으로 이미지 데이터를 생성하는 프로세서 및 메모리와 같은 하드웨어 요소들의 조합을 구성하는 데이터 소스일 수도 있다.
미디어 소스는 비주얼 포맷뿐만 아니라 오디오 포맷으로 제시될 데이터를 포함할 수도 있다는 것에 유의해야 한다. 본 실시예들과 일관되어, 디스플레이 디바이스(110) 또는 디스플레이 디바이스(110)에 링크된 다른 디바이스들(도시되지 않음)은 이미지들이 디스플레이 디바이스(110) 상에 제시되는 디지털 미디어 콘텐츠에 기초하여 오디오 신호들을 출력하도록 동작할 수도 있다.
다양한 실시예들에서, 콘텐츠가 디스플레이 디바이스(110) 상에 제시되어야 하는 디지털 미디어는, 네이티브 프레임 레이트(native frame rate)가 디스플레이 디바이스(110)에 의해 채용된 리프레시 레이트와는 상이한 DVD 또는 다른 매체일 수도 있다. 후속하는 도면들에서 상세화되는 바와 같이, 다른 것들 중에서도, 그래픽 로직(104), 디스플레이 엔진(106), 인터페이스(112), 및 메모리(108)를 포함하는 시스템(100)의 컴포넌트들은 디스플레이(110) 상의 제시를 위해 미디어 콘텐츠의 프로세싱을 조정하도록 상호동작가능할 수도 있다. 미디어 콘텐츠는 디스플레이(110) 상에 보여지도록 프로세싱되고 있는 동안 시스템(100)에 일시적으로 저장되는 비디오 데이터와 같은 스트리밍 데이터로서 수신될 수도 있다. 데이터의 프로세싱에 있어서의 조정들은, 메모리(108)에 데이터를 저장하는 것을 위해, 메모리(108)로부터 데이터를 페치(fetch)하는 것, 그리고 데이터를 디스플레이 디바이스(110)에 송신하는 것을 위해 타이밍을 조정하는 것을 포함할 수도 있다. 예로서, 그래픽 로직(104)과 디스플레이 엔진(106) 사이에서 소프트웨어, 하드웨어, 또는 하드웨어와 소프트웨어의 조합으로서 분산될 수도 있는 인터페이스(112)는 그래픽 로직(104)과 디스플레이 엔진(106) 사이의 핸드셰이킹을 용이하게 하여, 디스플레이 디바이스(110)로 스트리밍하기 위한 새로운 데이터를 스티어링할 수도 있다.
도 1b는 본 실시예들과 일관된 시스템(120)의 실시예를 예시한다. 시스템(120)은, 시스템(100)과 일반적으로 유사한 컴포넌트들을 포함할 수도 있다. 시스템(120)에 예시된 바와 같이, 그래픽 로직(104)이 CPU(102)에 포함될 수도 있다. 하나의 특정 변형에서, CPU(102)는 단일 실리콘 칩 상에 그래픽 로직(104) 및 하나 이상의 일반 프로세서들을 포함하는 "시스템 온 칩(system on a chip)"(SOC) 컴포넌트일 수도 있다.
도 2는 디스플레이 엔진(106)의 일 실시예를 예시한다. 디스플레이 엔진(106)은 디스플레이 디바이스(110)에서 데이터의 디스플레이를 용이하게 한다. 일 실시예에서, 디스플레이 엔진(106)은 메모리(202)에 커플링되고 멀티-파이프(예를 들어, A, B 및 C) 파이프라인(204), 트랜스코더들(예를 들어, A, B 및 C)(206) 및 디지털 디스플레이 인터페이스(digital display interface)(DDI)(212)를 포함한다. 일 실시예에 따르면, 디스플레이 엔진(106)은, 매우 고해상도인 디스플레이(110)에 대해, 조정가능한 분할 정책을 통해 융통성(flexibility)을 제공하는 멀티-파이프 협업 모드를 구현한다. 그러한 실시예에서, 디스플레이 엔진(106)은 단일 고해상도 디스플레이(110)를 구동하기 위해 트랜스코더(206) 및 "가상 파이프"를 포함하는 멀티-파이프 파이프라인(204)을 구현한다.
도 2에 도시된 바와 같이, "가상 파이프"는, 메모리(202)에 저장된 고선명 프레임 버퍼의 하나의 지정된 영역의 각각의 프로세스에 병렬로 동작하는 다수의 파이프들(예를 들어, A, B 및 C)의 집합이다. 이 실시예에서, 파이프들의 출력들은 "가상 파이프"의 출력으로서 조합되고, DDI(212)를 통해 디스플레이(110)에 제시하기 위해 하나의 트랜스코더(206)를 통해 스트리밍된다. 그러한 실시예를 달성하기 위해, 표면 분할기(208), 멀티플렉서(Mux) 및 멀티-스트림 중재기(multi-stream arbiter)(210)가 포함된다.
표면 분할기(208)는 각각의 영역의 좌표들을 생성하고 그 좌표들을 파이프라인(204) 내의 파이프들에 피딩(feeding)하는 것에 의해 전체 프레임 버퍼를 수 개의 보다 작은 영역들로 분할한다. 일 실시예에서, 표면 분할기는, 프레임 버퍼를 분할하는 방법, 및 협업에 수반될 파이프들의 수를 표시하는 구성 정보(예를 들어, 분할 정책)를 디스플레이 드라이버(도시되지 않음)로부터 수신하는 레지스터들(207)을 포함한다.
Mux 및 멀티-스트림 중재기(210)는 파이프라인(204) 파이프들이 트랜스코더(206)로 송신되어야 하는 순서를 제어하기 위해 표면 분할기(208)로부터 수신된 페치 순서를 따른다. 일 실시예에서, 표면 분할기 내의 레지스터들(207)은 페치 순서를 저장한다. 추가의 실시예에서, Mux 및 멀티-스트림 중재기(210)는, 멀티-파이프 협업 모드가 디스에이블될 때, 공통 Mux로서 동작하여 파이프라인(204) 내의 하나의 파이프를 하나의 트랜스코더(206)와 연결한다.
도 3은 단일 고해상도 또는 슈퍼 고해상도 디스플레이 상의 다수의 스크린 영역들을 병합하기 위한 방법(300)의 일 실시예를 예시한다. 방법(300)은 하드웨어(예를 들어, 회로부, 전용 로직, 프로그래밍가능 로직 등), (프로세싱 디바이스 상에서 실행되는 명령어들과 같은) 소프트웨어, 또는 이들의 조합을 포함할 수도 있는 프로세싱 로직에 의해 수행될 수도 있다. 방법(300)의 프로세스들은 제시의 간결성 및 명료성을 위해 선형 시퀀스들로 예시된다; 그러나, 이들 중 임의의 수가 병렬로, 비동기식으로, 또는 상이한 순서들로 수행될 수 있다는 것이 고려된다. 간결성을 위해, 선행하는 도면들을 참조하여 논의된 많은 세부사항들이 이후에 논의 또는 반복되지 않을 수도 있다.
프로세싱 블록 310에서, 분할 정책이 수신된다. 일 실시예에서, 분할 정책은 프레임 버퍼가 분할되어야 하는 영역들의 수(예를 들어, 협업에 수반될 파이프들의 수) 및 프레임 버퍼가 분할되는 방법을 결정한다. 그러한 실시예에서, 표면 분할기(208)는 파이프라인(204) 내의 파이프들의 능력들에 기초하여 정책들을 프로그래밍하는 디스플레이 드라이버로부터의 분할 정책을 수신한다. 도 4a 및 도 4b는 8K 디스플레이에 대한 3-파이프 파이프라인(204) 협업 실시예를 사용하는 프레임 버퍼 분할의 실시예들을 예시한다. 도 4a는 더 강력한 파이프(204C)를 갖는 디스플레이 엔진(106)에 대해 잘 맞거나 및/또는 2 구획(divided-by two)의 구현의 이점을 취하는 도시된 2 구획 분할의 실시예를 개시한다. 도 4b는 파이프라인(204) 내의 3개의 파이프들 사이에서 작업부하를 대략 균일하게 분배하는 동일 분할의 실시예를 개시한다.
추가의 실시예에서, 부가적인 분할 정책 규칙들이 고려되어야 한다. 예를 들어, 인접한 픽셀들의 값을 수반하는 알고리즘을 이용하는 프로세싱 피처(예를 들어, 스케일링)가 파이프에 대해 인에이블되는 경우, 영역들의 경계들이 이등분 또는 삼등분(예를 들어, 도 4a 및 도 4b의 파선들)으로 되어서는 안 된다. 그 대신에, 영역들의 경계들은 (도 4a 및 도 4b의 직사각형들로 예시되는 바와 같이) 인접한 픽셀들을 커버하도록 연장된다. 따라서, 영역들은 약간 중첩될 것인데, 이때 파이프는 출력에 포함되지 않을 보조 픽셀들을 크로핑(cropping)한다.
하나의 파이프에서 다수의 평면들이 활성화되는 경우, 각각의 평면의 소스 버퍼의 분할은 메인 프레임 버퍼의 분할 정책을 따른다. 도 5에 도시된 바와 같이, 동일 분할은 평면 0(메인 프레임 버퍼) 및 평면 1(디코더 출력 표면) 양측 모두에 적용된다. 3개의 파이프들 각각에서의 평면 1은 직사각형들을 취하여 단일 파이프 내의 다른 평면들과 프로세싱 및 합성할 것이다. 추가의 실시예에서, 분할 정책을 미세 튜닝하면 다양한 시나리오들에 대해 최상의 성능 및 전력 비율을 달성할 수도 있다.
다시 도 3을 참조하면, 표면 분할기(208)는 구성된 분할 정책에 기초하여 모든 분할 영역들에 대한 페치 순서 및 좌표들을 생성한다(프로세싱 블록 320). 프로세싱 블록 330에서, 표면 분할기(208)는 파이프라인(204) 파이프들 중 하나 이상으로 좌표들을 송신한다. 프로세싱 블록 340에서, 코-디스플레이(co-display)에 수반될 각각의 파이프는 메모리(202)로부터의 지정된 영역에서 프레임 버퍼 데이터를 페치하고 그것의 레지스터 구성에 따라 데이터를 프로세싱(예를 들어, 블렌딩, 스케일링 등)한다. 표면 분할기(208)에 의해 표시된 페치 순서에 기초하여, 트랜스코더(206)(예를 들어, 도 2의 트랜스코더 A)가 활성화되고 멀티-스트림 중재기(210)와 연결된다(프로세싱 블록 350). 프로세싱 블록 360에서, 멀티-스트림 중재기(210)는, 한 번에 하나의 파이프씩, 특정된 페치 순서로 파이프들을 트랜스코더(206)와 링크시키기 위해 루핑(loop)한다. 프로세싱 블록 370에서, 파이프라인(204) 내의 각각의 수반된 파이프의 출력은 트랜스코더(206)로 송신되고 DDI(212)를 통해 출력 신호로 병합된다.
도 6은 이전에 설명된 바와 같은 다양한 실시예들을 구현하기에 적합한 예시적인 컴퓨팅 아키텍처(1300)의 실시예를 예시한다. 이 애플리케이션에서 사용되는 바와 같이, "시스템" 및 "컴포넌트"라는 용어들은 컴퓨터 관련 엔티티, 또한 하드웨어, 하드웨어와 소프트웨어의 조합, 소프트웨어, 또는 실행 중인 소프트웨어를 지칭하도록 의도되고, 그 예들이 예시적인 컴퓨팅 아키텍처(1300)에 의해 제공된다. 예를 들어, 컴포넌트는 프로세서 상에서 실행되는 프로세스, 프로세서, 하드 디스크 드라이브, (광 및/또는 자기 저장 매체의) 다수의 저장 드라이브들, 객체, 실행가능물(executable), 실행 스레드, 프로그램, 및/또는 컴퓨터일 수 있지만, 이들인 것으로 제한되지 않는다. 예시에 의해, 서버 상에서 실행되는 애플리케이션과 서버 양쪽 모두는 컴포넌트일 수 있다. 하나 이상의 컴포넌트들은 프로세스 및/또는 실행 스레드 내에 상주할 수 있고, 컴포넌트는 하나의 컴퓨터 상에서 로컬화되거나 및/또는 2개 이상의 컴퓨터들 사이에서 분산될 수 있다. 추가로, 컴포넌트들은 동작들을 조정하기 위해 다양한 타입들의 통신 미디어에 의해 서로 통신가능하게 커플링될 수도 있다. 조정은 정보의 단방향 또는 양방향 교환을 수반할 수도 있다. 예를 들어, 컴포넌트들은 통신 미디어를 통해 통신되는 신호들의 형태로 정보를 통신할 수도 있다. 정보는 다양한 신호 라인들에 할당된 신호들로서 구현될 수 있다. 그러한 할당들에서, 각각의 메시지는 신호이다. 그러나, 추가의 실시예들은 대안적으로 데이터 메시지들을 채용할 수도 있다. 그러한 데이터 메시지들은 다양한 커넥션들에 걸쳐 전송될 수도 있다. 예시적인 커넥션들은 병렬 인터페이스들, 직렬 인터페이스들, 및 버스 인터페이스들을 포함한다.
일 실시예에서, 컴퓨팅 아키텍처(1300)는 전자 디바이스를 포함하거나 또는 그의 일부로서 구현될 수도 있다. 전자 디바이스의 예들로는 모바일 디바이스, 개인 휴대 정보 단말기(personal digital assistant), 모바일 컴퓨팅 디바이스, 스마트폰, 셀룰러 전화기, 핸드셋, 원-웨이 페이저(one-way pager), 투-웨이 페이저(two-way pager), 메시징 디바이스, 컴퓨터, 퍼스널 컴퓨터(PC), 데스크톱 컴퓨터, 랩톱 컴퓨터, 노트북 컴퓨터, 핸드헬드 컴퓨터, 태블릿 컴퓨터, 서버, 서버 어레이 또는 서버 팜, 웹 서버, 네트워크 서버, 인터넷 서버, 워크스테이션, 미니 컴퓨터, 메인 프레임 컴퓨터, 슈퍼컴퓨터, 네트워크 어플라이언스, 웹 어플라이언스, 분산 컴퓨팅 시스템, 멀티프로세서 시스템들, 프로세서 기반 시스템들, 가전 제품(consumer electronics), 프로그래밍가능 가전 제품, 텔레비전, 디지털 텔레비전, 셋톱 박스, 무선 액세스 포인트, 기지국, 가입자국, 모바일 가입자 센터, 무선 네트워크 제어기, 라우터, 허브, 게이트웨이, 브리지, 스위치, 머신, 또는 이들의 조합을 제한 없이 포함할 수도 있다. 실시예들은 이와 관련해서 제한되지 않는다.
컴퓨팅 아키텍처(1300)는 하나 이상의 프로세서들, 코-프로세서들, 메모리 유닛들, 칩셋들, 제어기들, 주변기기들, 인터페이스들, 오실레이터들, 타이밍 디바이스들, 비디오 카드들, 오디오 카드들, 멀티미디어 입/출력(I/O) 컴포넌트들 등과 같은 다양한 통상적인 컴퓨팅 요소들을 포함한다. 그러나, 실시예들은 컴퓨팅 아키텍처(1300)에 의한 구현에 제한되지 않는다.
도 6에 도시된 바와 같이, 컴퓨팅 아키텍처(1300)는 프로세싱 유닛(1304), 시스템 메모리(1306) 및 시스템 버스(1308)를 포함한다. 프로세싱 유닛(1304)은 상업적으로 입수가능한 다양한 프로세서들 중 임의의 것일 수 있다. 듀얼 마이크로프로세서들 및 다른 멀티-프로세서 아키텍처들이 또한 프로세싱 유닛(1304)으로서 채용될 수도 있다. 시스템 버스(1308)는, 시스템 메모리(1306)를 포함하지만 이에 제한되지 않는 시스템 컴포넌트들에 대한 인터페이스를 프로세싱 유닛(1304)에 제공한다. 시스템 버스(1308)는 다양한 상업적으로 입수가능한 버스 아키텍처들 중 임의의 것을 사용하여 메모리 버스(메모리 제어기를 갖거나 또는 갖지 않음), 주변기기 버스, 및 로컬 버스에 추가로 상호연결될 수도 있는 수 개의 타입들의 버스 구조체 중 임의의 것일 수 있다.
컴퓨팅 아키텍처(1300)는 다양한 제조 물품들을 포함 또는 구현할 수도 있다. 제조 물품은 로직을 저장하기 위한 컴퓨터 판독가능 저장 매체를 포함할 수도 있다. 또한, 실시예들은 본 명세서에 설명된 동작들의 수행을 인에이블시키기 위해 하나 이상의 프로세서들에 의해 판독 및 실행될 수도 있는 비일시적 컴퓨터 판독가능 매체 내에 또는 그 비일시적 컴퓨터 판독가능 매체 상에 포함되는 명령어들로서 적어도 부분적으로 구현될 수도 있다. 컴퓨터 판독가능 저장 매체의 예들로는, 휘발성 메모리 또는 비휘발성 메모리, 착탈식 또는 비착탈식 메모리, 소거가능 또는 비소거가능 메모리, 기입가능 또는 재기입가능 메모리 등을 포함하는, 전자 데이터를 저장하는 것이 가능한 임의의 유형(tangible)의 미디어를 포함할 수도 있다. 로직의 예들로는, 소스 코드, 컴파일링된 코드, 인터프리팅된 코드, 실행가능 코드, 정적 코드, 동적 코드, 객체 지향 코드, 비주얼 코드 등과 같은, 임의의 적합한 타입의 코드를 사용하여 구현되는 실행가능 컴퓨터 프로그램 명령어들을 포함할 수도 있다.
시스템 메모리(1306)는, 판독 전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 동적 RAM(DRAM), 더블-데이터-레이트 DRAM(DDRAM), 동기식 DRAM(SDRAM), 정적 RAM(SRAM), 프로그래밍가능 ROM(PROM), 소거가능 프로그래밍가능 ROM(EPROM), 전기적 소거가능 프로그래밍가능 ROM(EEPROM), 플래시 메모리, 강유전성 폴리머 메모리와 같은 폴리머 메모리, 오보닉 메모리, 상변화 또는 강유전성 메모리, 실리콘-산화물-질화물-산화물-실리콘(SONOS) 메모리, 자기 또는 광 카드들, 또는 정보를 저장하기에 적합한 임의의 다른 타입의 미디어와 같은, 하나 이상의 고속 메모리 유닛들의 형태의 다양한 타입들의 컴퓨터 판독가능 저장 매체를 포함할 수도 있다. 도 6에 도시된 예시된 실시예에서, 시스템 메모리(1306)는 비휘발성 메모리(1310) 및/또는 휘발성 메모리(1312)를 포함할 수 있다. 기본 입/출력 시스템(BIOS)은 비휘발성 메모리(1310)에 저장될 수 있다.
컴퓨터(1302)는, 내부 하드 디스크 드라이브(HDD)(1314), 착탈식 자기 디스크(1318)로부터 판독하거나 또는 그에 기입하기 위한 자기 플로피 디스크 드라이브(FDD)(1316), 및 착탈식 광 디스크(1322)(예를 들어, CD-ROM 또는 DVD)로부터 판독하거나 또는 그에 기입하기 위한 광 디스크 드라이브(1320); 및 NAND 플래시 메모리, 상변화 메모리(PCM), 스핀 메모리를 포함하는 비휘발성 메모리(NVM)(1325)로/로부터의 데이터를 판독 또는 기입하기 위한 솔리드 스테이트 드라이브(SSD)(1323); 스위치를 갖는 상변화 메모리(PCMS), 자기저항 랜덤 액세스 메모리(MRAM), 스핀 메모리, 나노와이어 메모리, 강유전성 트랜지스터 랜덤 액세스 메모리(FeTRAM)를 포함하는 하나 이상의 저속 메모리 유닛들의 형태의 다양한 타입들의 컴퓨터 판독가능 저장 매체를 포함할 수도 있다. HDD(1314), FDD(1316), 광 디스크 드라이브(1320), 및 솔리드 스테이트 드라이브(1323)는 HDD 인터페이스(1324), FDD 인터페이스(1326), 광 드라이브 인터페이스(1328), 및 솔리드 스테이트 드라이브 인터페이스(1329) 각각에 의해 시스템 버스(1308)에 연결될 수 있다. 외부 드라이브 구현들을 위한 HDD 인터페이스(1324)는 범용 직렬 버스(USB) 및 IEEE 1394 인터페이스 기술들 중 적어도 하나 또는 양측 모두를 포함할 수 있다. 솔리드 스테이트 드라이브 인터페이스(1329)는, 예를 들어, SATA(serial advanced technology attachment) 인터페이스, SAS(serial attached SCSI) 인터페이스, 범용 직렬 버스(USB) 인터페이스, 주변기기 제어 인터페이스(PCI), 또는 다른 적합한 디바이스 인터페이스와 같은, 그러나 이에 제한되지 않는, 호스트 디바이스에 커플링시키기 위한 임의의 적합한 인터페이스를 포함할 수도 있다.
드라이브들 및 연관된 컴퓨터 판독가능 미디어는 데이터, 데이터 구조체들, 컴퓨터 실행가능 명령어들 등의 휘발성 및/또는 비휘발성 저장을 제공한다. 예를 들어, 운영 체제(1330), 하나 이상의 애플리케이션 프로그램들(1332), 다른 프로그램 모듈들(1334), 및 프로그램 데이터(1336)를 포함하는 다수의 프로그램 모듈들은 드라이브들 및 메모리 유닛들(1310, 1312)에 저장될 수 있다.
사용자는 하나 이상의 유/무선 입력 디바이스들, 예를 들어, 키보드(1338) 및 마우스(1340)와 같은 포인팅 디바이스를 통해 컴퓨터(1302)에 커맨드들 및 정보를 입력할 수 있다. 다른 입력 디바이스들은 마이크로폰, 적외선(IR) 원격 제어기, 조이스틱, 게임 패드, 스타일러스 펜, 터치 스크린 등을 포함할 수도 있다. 이들 그리고 다른 입력 디바이스들은 시스템 버스(1308)에 커플링되는 입력 디바이스 인터페이스(1342)를 통해 프로세싱 유닛(1304)에 종종 연결되지만, 병렬 포트, IEEE 1394 직렬 포트, 게임 포트, USB 포트, IR 인터페이스 등과 같은 다른 인터페이스들에 의해 연결될 수 있다.
모니터(1344) 또는 다른 타입의 디스플레이 디바이스는 또한 비디오 어댑터(1346)와 같은 인터페이스를 통해 시스템 버스(1308)에 연결된다. 모니터(1344)에 부가적으로, 컴퓨터는 전형적으로 스피커들, 프린터들 등과 같은 다른 주변기기 출력 디바이스들을 포함한다.
컴퓨터(1302)는 원격 컴퓨터(1348)와 같은 하나 이상의 원격 컴퓨터들로의 유선 및/또는 무선 통신들을 통한 논리적 커넥션들을 사용하는 네트워킹된 환경에서 동작할 수도 있다. 원격 컴퓨터(1348)는 워크스테이션, 서버 컴퓨터, 라우터, 퍼스널 컴퓨터, 휴대용 컴퓨터, 마이크로프로세서 기반 엔터테인먼트 어플라이언스, 피어 디바이스 또는 다른 공통 네트워크 노드일 수 있고, 컴퓨터(1302)에 관련하여 설명된 요소들 중 많은 것 또는 전부를 전형적으로 포함하지만, 간결성의 목적들을 위해, 단지 메모리/스토리지 디바이스(1350)만이 예시된다. 도시된 논리적 커넥션들은 근거리 네트워크(LAN)(1352) 및/또는 보다 큰 네트워크들, 예를 들어, 광역 네트워크(WAN)(1354)에 대한 유/무선 연결성을 포함한다. 그러한 LAN 및 WAN 네트워킹 환경들은 오피스들 및 회사들에서 흔히 있는 것이고, 인트라넷들과 같은 전사적 컴퓨터 네트워크(enterprise-wide computer network)들을 용이하게 하는데, 이 모두는 글로벌 통신 네트워크, 예를 들어, 인터넷에 연결할 수도 있다.
LAN 네트워킹 환경에서 사용될 때, 컴퓨터(1302)는 유선 및/또는 무선 통신 네트워크 인터페이스 또는 어댑터(1356)를 통해 LAN(1352)에 연결된다. 어댑터(1356)는 LAN(1352)에 대한 유선 및/또는 무선 통신들을 용이하게 할 수 있는데, 이 LAN(1352)은, 어댑터(1356)의 무선 기능성과 통신하기 위해 그 위에 배치되는 무선 액세스 포인트를 또한 포함할 수도 있다.
WAN 네트워킹 환경에서 사용될 때, 컴퓨터(1302)는 모뎀(1358)을 포함할 수 있거나, 또는 WAN(1354) 상의 통신 서버에 연결되거나, 또는 WAN(1354)을 통해, 예컨대 인터넷에 의해, 통신들을 확립하기 위한 다른 수단을 갖는다. 내부 또는 외부 및 유선 및/또는 무선 디바이스일 수 있는 모뎀(1358)은 입력 디바이스 인터페이스(1342)를 통해 시스템 버스(1308)에 연결한다. 네트워킹된 환경에서, 컴퓨터(1302)에 관련하여 도시된 프로그램 모듈들, 또는 이들의 부분들은 원격 메모리/스토리지 디바이스(1350)에 저장될 수 있다. 도시된 네트워크 커넥션들은 예시적인 것이고, 컴퓨터들 사이의 통신 링크를 확립하는 다른 수단이 사용될 수 있다는 것을 인식할 것이다.
컴퓨터(1302)는, 무선 통신(예를 들어, IEEE 802.11 오버-디-에어 변조 기법들)에 동작가능하게 배치된 무선 디바이스들과 같은, IEEE 802 표준 군을 사용하는 유선 및 무선 디바이스들 또는 엔티티들, 예를 들어, 프린터, 스캐너, 데스크톱 및/또는 휴대용 컴퓨터, 개인 휴대 정보 단말기(PDA), 통신 위성, 무선으로 검출가능한 태그와 연관된 장비 또는 위치(예를 들어, 키오스크, 뉴스 스탠드, 화장실)의 임의의 피스(piece), 및 전화기와 통신하도록 동작가능하다. 이것은 적어도 Wi-Fi(또는 무선 충실도), WiMax, 및 블루투스TM 무선 기술들을 포함한다. 따라서, 통신은 종래의 네트워크와 마찬가지로 미리 정의된 구조체이거나 또는 단순하게는 적어도 2개의 디바이스들 사이의 애드혹 통신일 수 있다. Wi-Fi 네트워크들은 IEEE 802.11x(a, b, g, n 등)라고 불리는 무선 기술들을 사용하여, 안전하고 신뢰성있으며 빠른 무선 연결성을 제공한다. Wi-Fi 네트워크는 컴퓨터들을 서로, 인터넷에, 그리고 유선 네트워크들(IEEE 802.3 관련 미디어 및 기능들을 사용함)에 연결하는 데 사용될 수 있다.
"일 실시예", "실시예", "예시적인 실시예", "다양한 실시예들" 등에 대한 언급들은, 이와 같이 설명된 실시예(들)가 특정 피처들, 구조체들, 또는 특성들을 포함할 수도 있지만, 모든 실시예가 반드시 특정 피처들, 구조체들, 또는 특성들을 포함하는 것은 아님을 표시한다. 추가로, 일부 실시예들은 다른 실시예들에 대해 설명된 피처들 중 일부를 가질 수도 있거나, 전부를 가질 수도 있거나, 또는 어느 것도 갖지 않을 수도 있다.
다음의 설명 및 청구범위에서, "커플링된"이라는 용어는 그의 파생어들과 함께 사용될 수도 있다. "커플링된"은 2개 이상의 요소들이 서로 협력하거나 상호작용함을 표시하기 위해 사용되지만, 이들은 이들 사이에 개재하는 물리적 또는 전기적 컴포넌트들을 가질 수도 있거나 또는 갖지 않을 수도 있다.
청구범위에서 사용되는 바와 같이, 달리 특정되지 않는 한, 공통 요소를 설명하기 위한 서수 형용사들 "제1", "제2", "제3" 등의 사용은, 단지 유사한 요소들의 상이한 인스턴스들이 지칭되고 있음을 표시할 뿐이고, 이와 같이 설명된 요소들이 또한 시간적으로, 공간적으로, 랭킹으로, 또는 임의의 다른 방식으로 주어진 시퀀스로 있어야 한다는 것을 암시하도록 의도된 것이 아니다.
다음의 조항들 및/또는 예들은 추가의 실시예들 또는 예들에 관련된다. 예들에서의 특정사항들은 하나 이상의 실시예들에서 어느 곳에서나 사용될 수도 있다. 상이한 실시예들 또는 예들의 다양한 피처들은, 다양한 상이한 애플리케이션들에 적합하도록 포함된 일부 피처들 그리고 배제된 다른 것들과 다양하게 조합될 수도 있다. 예들로는, 방법, 방법의 액트(act)들을 수행하는 수단, 머신에 의해 수행될 때 머신으로 하여금 방법의, 또는 본 명세서에 설명된 실시예들 및 예들에 따라 하이브리드 통신을 용이하게 하기 위한 장치 또는 시스템의, 액트들을 수행하게 하는 명령어들을 포함하는 적어도 하나의 머신 판독가능 매체와 같은 대상물(subject matter)을 포함할 수도 있다.
일부 실시예들은, 프레임 버퍼 데이터를 복수의 영역들로 분할하기 위해 프레임 버퍼 좌표들을 생성하기 위한 표면 분할기 - 복수의 영역들 각각은 프레임 버퍼 좌표에 대응함 -, 프레임 버퍼 좌표들을 수신하기 위한, 복수의 파이프들을 포함하는 파이프라인 - 여기서 복수의 파이프들 중 2개 이상은, 프레임 버퍼 좌표들에 의해 식별되는 프레임 버퍼의 영역에 대응하는 프레임 버퍼 데이터를 프로세싱하도록 병렬로 동작함 -, 디스플레이 엔진이 멀티-파이프 협업 모드에서 동작하고 있을 때마다, 2개 이상의 파이프들 각각으로부터의 프레임 버퍼 데이터를 출력 신호로 병합하기 위한 복수의 트랜스코더들 중 제1 트랜스코더, 및 표면 분할기로부터 수신된 페치 순서에 기초하여 2개 이상의 파이프들 각각으로부터 제1 트랜스코더로의 프레임 버퍼 데이터의 송신의 순서를 제어하기 위한 멀티플렉서(Mux) 및 멀티-스트림 중재기를 포함하는 디스플레이 엔진을 포함하는 예 1에 관한 것이다.
예 2는 예 1의 대상물을 포함하고, 여기서 2개 이상의 파이프들로부터의 프레임 버퍼 데이터는 Mux 및 멀티-스트림 중재기에 의해 조합된다.
예 3은 예 1 및 예 2의 대상물을 포함하고, 여기서 표면 분할기는, 분할 정책, 및 2개 이상의 파이프들 중 어느 것이 구현되어야 하는지를 표시하는 구성 정보를 수신하기 위한 레지스터들을 포함한다.
예 4는 예 1 내지 예 3의 대상물을 포함하고, 여기서 구성 정보는 디스플레이 드라이버로부터 수신된다.
예 5는 예 1 내지 예 4의 대상물을 포함하고, 여기서 레지스터들은 페치 순서를 추가로 저장한다.
예 6은 예 1 내지 예 5의 대상물을 포함하고, 여기서 Mux 및 멀티-스트림 중재기는, 멀티-파이프 협업 모드가 디스플레이 엔진에서 디스에이블될 때, 복수의 파이프들 각각을 대응하는 트랜스코더와 연결한다.
예 7은 예 1 내지 예 6의 대상물을 포함하고, 여기서 표면 분할기는 분할 정책에 기초하여 프레임 버퍼 데이터를 분할한다.
예 8은 예 1 내지 예 7의 대상물을 포함하고, 여기서 분할 정책은, 프레임 버퍼가 분할되어야 하는 방식 및 영역들의 수를 결정한다.
일부 실시예들은, 프레임 버퍼 데이터를 복수의 영역들로 분할하기 위해 프레임 버퍼 좌표들을 생성하는 단계 - 복수의 영역들 각각은 프레임 버퍼 좌표에 대응함 -, 복수의 파이프들 중 2개 이상에서 프레임 버퍼 좌표들에 의해 식별되는 프레임 버퍼의 개별 영역들에 대응하는 프레임 버퍼 데이터를 병렬로 프로세싱하는 단계, 페치 순서에 기초하여 2개 이상의 파이프들 각각으로부터 제1 트랜스코더로의 프레임 버퍼 데이터의 송신의 순서를 제어하는 단계, 및 제1 트랜스코더에서 프레임 버퍼 데이터를 출력 신호로 병합하는 단계를 포함하는 예 9에 관한 것이다.
예 10은, 복수의 파이프들 중 2개 이상의 파이프들 각각이 대응하는 프레임 버퍼 좌표들에 기초하여 프레임 버퍼 데이터를 페치하는 단계를 더 포함하는, 예 9의 대상물을 포함한다.
예 11은, 분할 정책을 수신하고 분할 정책에 기초하여 좌표들을 생성하는, 예 9 및 예 10의 대상물을 포함한다.
예 12는 예 9 내지 예 11의 대상물을 포함하고, 여기서 분할 정책은, 프레임 버퍼가 분할되어야 하는 방식 및 영역들의 수를 결정한다.
예 13은 예 9 내지 예 12의 대상물을 포함하고, 여기서 분할 정책은 디스플레이 드라이버로부터 수신된다.
일부 실시예들은, 디스플레이 디바이스, 디스플레이 디바이스에 커플링되는 디지털 디스플레이 인터페이스(DDI), 및 DDI에 커플링되는 디스플레이 엔진을 포함하는 예 14에 관한 것으로, 디스플레이 엔진은, 프레임 버퍼 데이터를 복수의 영역들로 분할하기 위해 프레임 버퍼 좌표들을 생성하기 위한 표면 분할기 - 복수의 영역들 각각은 프레임 버퍼 좌표에 대응함 -, 프레임 버퍼 좌표들을 수신하기 위한, 복수의 파이프들을 포함하는 파이프라인 - 여기서 복수의 파이프들 중 2개 이상은, 프레임 버퍼 좌표들에 의해 식별되는 프레임 버퍼의 영역에 대응하는 프레임 버퍼 데이터를 프로세싱하도록 병렬로 동작함 -, 디스플레이 엔진이 멀티-파이프 협업 모드에서 동작하고 있을 때마다, 2개 이상의 파이프들 각각으로부터의 프레임 버퍼 데이터를 출력 신호로 병합하기 위한 복수의 트랜스코더들 중 제1 트랜스코더, 및 표면 분할기로부터 수신된 페치 순서에 기초하여 2개 이상의 파이프들 각각으로부터 제1 트랜스코더로의 프레임 버퍼 데이터의 송신의 순서를 제어하기 위한 멀티플렉서(Mux) 및 멀티-스트림 중재기를 포함한다.
예 15는 예 14의 대상물을 포함하고, 여기서 2개 이상의 파이프들로부터의 프레임 버퍼 데이터는 Mux 및 멀티-스트림 중재기에 의해 조합된다.
예 16은 예 14 및 예 15의 대상물을 포함하고, 여기서 표면 분할기는, 분할 정책, 및 2개 이상의 파이프들 중 어느 것이 구현되어야 하는지를 표시하는 구성 정보를 수신하기 위한 레지스터들을 포함한다.
예 17은 예 14 내지 예 16의 대상물을 포함하고, 여기서 구성 정보는 디스플레이 드라이버로부터 수신된다.
예 18은 예 14 내지 예 17의 대상물을 포함하고, 여기서 레지스터들은 페치 순서를 추가로 저장한다.
예 19는 예 14 내지 예 18의 대상물을 포함하고, 여기서 Mux 및 멀티-스트림 중재기는, 멀티-파이프 협업 모드가 디스플레이 엔진에서 디스에이블될 때, 복수의 파이프들 각각을 대응하는 트랜스코더와 연결한다.
예 20은 예 14 내지 예 19의 대상물을 포함하고, 여기서 표면 분할기는 분할 정책에 기초하여 프레임 버퍼 데이터를 분할한다.
예 21은 예 14 내지 예 20의 대상물을 포함하고, 여기서 분할 정책은, 프레임 버퍼가 분할되어야 하는 방식 및 영역들의 수를 결정한다.
일부 실시예들은, 하나 이상의 프로세서들에 의해 실행될 때, 하나 이상의 프로세서들로 하여금 청구항 제9항 내지 제13항의 방법을 수행하게 하는 명령어들을 갖는 적어도 하나의 컴퓨터 판독가능 매체를 포함하는 예 22에 관한 것이다.
일부 실시예들은, 프레임 버퍼 데이터를 복수의 영역들로 분할하기 위해 프레임 버퍼 좌표들을 생성하는 수단 - 복수의 영역들 각각은 프레임 버퍼 좌표에 대응함 -, 복수의 파이프들 중 2개 이상에서 프레임 버퍼 좌표들에 의해 식별되는 프레임 버퍼의 개별 영역들에 대응하는 프레임 버퍼 데이터를 병렬로 프로세싱하는 수단, 페치 순서에 기초하여 2개 이상의 파이프들 각각으로부터 제1 트랜스코더로의 프레임 버퍼 데이터의 송신의 순서를 제어하는 수단, 및 제1 트랜스코더에서 프레임 버퍼 데이터를 출력 신호로 병합하는 수단을 포함하는 시스템을 포함하는 예 23에 관한 것이다.
예 24는 예 23의 대상물을 포함하고, 여기서 복수의 파이프들 중 2개 이상의 파이프들 각각은 대응하는 프레임 버퍼 좌표들에 기초하여 프레임 버퍼 데이터를 페치한다.
예 25는, 분할 정책을 수신하는 수단, 및 분할 정책에 기초하여 좌표들을 생성하는 수단을 더 포함하는, 예 23 및 예 24의 대상물을 포함한다.
예 26은 예 23 내지 예 25의 대상물을 포함하고, 여기서 분할 정책은, 프레임 버퍼가 분할되어야 하는 방식 및 영역들의 수를 결정한다.
일부 실시예들은, 하나 이상의 프로세서들에 의해 실행될 때, 하나 이상의 프로세서들로 하여금, 프레임 버퍼 데이터를 복수의 영역들로 분할하기 위해 프레임 버퍼 좌표들을 생성하게 하고 - 복수의 영역들 각각은 프레임 버퍼 좌표에 대응함 -, 복수의 파이프들 중 2개 이상에서 프레임 버퍼 좌표들에 의해 식별되는 프레임 버퍼의 개별 영역들에 대응하는 프레임 버퍼 데이터를 병렬로 프로세싱하게 하고, 페치 순서에 기초하여 2개 이상의 파이프들 각각으로부터 제1 트랜스코더로의 프레임 버퍼 데이터의 송신의 순서를 제어하게 하고, 제1 트랜스코더에서 프레임 버퍼 데이터를 출력 신호로 병합하게 하는 명령어들을 갖는 적어도 하나의 컴퓨터 판독가능 매체를 포함하는 예 27에 관한 것이다.
예 28은, 하나 이상의 프로세서들에 의해 실행될 때, 추가로, 복수의 파이프들 중 2개 이상의 파이프들 각각으로 하여금, 대응하는 프레임 버퍼 좌표들에 기초하여 프레임 버퍼 데이터를 페치하게 하는 명령어들을 갖는, 예 27의 대상물을 포함한다.
예 29는, 하나 이상의 프로세서들에 의해 실행될 때, 추가로, 하나 이상의 프로세서들로 하여금, 분할 정책을 수신하게 하고 분할 정책에 기초하여 좌표들을 생성하게 하는 명령어들을 갖는, 예 27 및 예 28의 대상물을 포함한다.
예 30은 예 27 내지 예 29의 대상물을 포함하고, 여기서 분할 정책은, 프레임 버퍼가 분할되어야 하는 방식 및 영역들의 수를 결정한다.
본 발명의 실시예들이 구조적 피처들 및/또는 방법론적 액트들에 특정된 언어로 설명되었지만, 청구된 대상물이 설명된 특정 피처들 또는 액트들에 제한되지 않을 수도 있다는 것을 이해해야 한다. 오히려, 특정 피처들 및 액트들은 청구된 대상물을 구현하는 샘플 형태들로서 개시된다.

Claims (25)

  1. 디스플레이 엔진으로서,
    프레임 버퍼 데이터를 복수의 영역들로 분할하기 위해 프레임 버퍼 좌표들을 생성하기 위한 표면 분할기 - 상기 복수의 영역들 각각은 프레임 버퍼 좌표에 대응함 -;
    상기 프레임 버퍼 좌표들을 수신하기 위한, 복수의 파이프들을 포함하는 파이프라인 - 상기 복수의 파이프들 중 2개 이상의 파이프들은, 상기 프레임 버퍼 좌표들에 의해 식별되는 프레임 버퍼의 영역에 대응하는 프레임 버퍼 데이터를 프로세싱하도록 병렬로 동작함 -;
    상기 디스플레이 엔진이 멀티-파이프 협업 모드에서 동작하고 있을 때마다, 상기 2개 이상의 파이프들 각각으로부터의 상기 프레임 버퍼 데이터를 출력 신호로 병합하기 위한 복수의 트랜스코더들 중 제1 트랜스코더; 및
    상기 표면 분할기로부터 수신된 페치 순서(fetch order)에 기초하여 상기 2개 이상의 파이프들 각각으로부터 상기 제1 트랜스코더로의 상기 프레임 버퍼 데이터의 송신의 순서를 제어하기 위한 멀티플렉서(Mux) 및 멀티-스트림 중재기(multi-stream arbiter)
    를 포함하고,
    상기 Mux 및 멀티-스트림 중재기는, 멀티-파이프 협업 모드가 상기 디스플레이 엔진에서 디스에이블될 때, 상기 복수의 파이프들 각각을 대응하는 트랜스코더와 연결하는, 디스플레이 엔진.
  2. 제1항에 있어서,
    상기 2개 이상의 파이프들로부터의 상기 프레임 버퍼 데이터는 상기 Mux 및 멀티-스트림 중재기에 의해 조합되는, 디스플레이 엔진.
  3. 제1항에 있어서,
    상기 표면 분할기는, 분할 정책, 및 상기 2개 이상의 파이프들 중 어느 것이 디스플레이에 수반되어야 하는지를 표시하는 구성 정보를 수신하기 위한 레지스터들을 포함하는, 디스플레이 엔진.
  4. 제3항에 있어서,
    상기 구성 정보는 디스플레이 드라이버로부터 수신되는, 디스플레이 엔진.
  5. 제3항에 있어서,
    상기 레지스터들은 상기 페치 순서를 추가로 저장하는, 디스플레이 엔진.
  6. 삭제
  7. 제4항에 있어서,
    상기 표면 분할기는 상기 분할 정책에 기초하여 상기 프레임 버퍼 데이터를 분할하는, 디스플레이 엔진.
  8. 제7항에 있어서,
    상기 분할 정책은, 상기 프레임 버퍼가 분할되어야 하는 방식 및 영역들의 수를 결정하는, 디스플레이 엔진.
  9. 방법으로서,
    표면 분할기에 의해, 프레임 버퍼 데이터를 복수의 영역들로 분할하기 위해 프레임 버퍼 좌표들을 생성하는 단계 - 상기 복수의 영역들 각각은 프레임 버퍼 좌표에 대응함 -;
    복수의 파이프들을 포함하는 파이프라인에 의해, 복수의 파이프들 중 2개 이상의 파이프들에서 상기 프레임 버퍼 좌표들에 의해 식별되는 프레임 버퍼의 개별 영역들에 대응하는 프레임 버퍼 데이터를 병렬로 프로세싱하는 단계;
    멀티플렉서(Mux) 및 멀티-스트림 중재기(multi-stream arbiter)에 의해, 페치 순서에 기초하여 상기 2개 이상의 파이프들 각각으로부터 제1 트랜스코더로의 상기 프레임 버퍼 데이터의 송신의 순서를 제어하는 단계;
    상기 제1 트랜스코더에 의해, 상기 프레임 버퍼 데이터를 출력 신호로 병합하는 단계; 및
    상기 멀티플렉서 및 멀티-스트림 중재기에 의해, 멀티-파이프 협업 모드가 디스플레이 엔진에서 디스에이블될 때, 상기 복수의 파이프들 각각을 대응하는 트랜스코더와 연결하는 단계를 포함하는, 방법.
  10. 제9항에 있어서,
    상기 복수의 파이프들 중 2개 이상의 파이프들 각각에 의해, 상기 대응하는 프레임 버퍼 좌표들에 기초하여 상기 프레임 버퍼 데이터를 페치하는 단계를 더 포함하는, 방법.
  11. 제9항에 있어서,
    레지스터들에 의해, 분할 정책을 수신하는 단계; 및
    상기 표면 분할기에 의해, 상기 분할 정책에 기초하여 상기 좌표들을 생성하는 단계
    를 더 포함하는, 방법.
  12. 제11항에 있어서,
    상기 분할 정책은, 상기 프레임 버퍼가 분할되어야 하는 방식 및 영역들의 수를 결정하는, 방법.
  13. 제12항에 있어서,
    상기 분할 정책은 상기 레지스터들에 의해 디스플레이 드라이버로부터 수신되는, 방법.
  14. 컴퓨터 시스템으로서,
    디스플레이 디바이스;
    상기 디스플레이 디바이스에 커플링되는 디지털 디스플레이 인터페이스(digital display interface)(DDI); 및
    상기 DDI에 커플링되는 디스플레이 엔진
    을 포함하고,
    상기 디스플레이 엔진은,
    프레임 버퍼 데이터를 복수의 영역들로 분할하기 위해 프레임 버퍼 좌표들을 생성하기 위한 표면 분할기 - 상기 복수의 영역들 각각은 프레임 버퍼 좌표에 대응함 -;
    상기 프레임 버퍼 좌표들을 수신하기 위한, 복수의 파이프들을 포함하는 파이프라인 - 상기 복수의 파이프들 중 2개 이상의 파이프들은, 상기 프레임 버퍼 좌표들에 의해 식별되는 프레임 버퍼의 영역에 대응하는 프레임 버퍼 데이터를 프로세싱하도록 병렬로 동작함 -;
    상기 디스플레이 엔진이 멀티-파이프 협업 모드에서 동작하고 있을 때마다, 상기 2개 이상의 파이프들 각각으로부터의 상기 프레임 버퍼 데이터를 출력 신호로 병합하기 위한 복수의 트랜스코더들 중 제1 트랜스코더; 및
    상기 표면 분할기로부터 수신된 페치 순서에 기초하여 상기 2개 이상의 파이프들 각각으로부터 상기 제1 트랜스코더로의 상기 프레임 버퍼 데이터의 송신의 순서를 제어하기 위한 멀티플렉서(Mux) 및 멀티-스트림 중재기
    를 포함하고,
    상기 Mux 및 멀티-스트림 중재기는, 멀티-파이프 협업 모드가 상기 디스플레이 엔진에서 디스에이블될 때, 상기 복수의 파이프들 각각을 대응하는 트랜스코더와 연결하는, 컴퓨터 시스템.
  15. 제14항에 있어서,
    상기 2개 이상의 파이프들로부터의 상기 프레임 버퍼 데이터는 상기 Mux 및 멀티-스트림 중재기에 의해 조합되는, 컴퓨터 시스템.
  16. 제14항에 있어서,
    상기 표면 분할기는, 분할 정책, 및 상기 2개 이상의 파이프들 중 어느 것이 디스플레이에 수반되어야 하는지를 표시하는 구성 정보를 수신하기 위한 레지스터들을 포함하는, 컴퓨터 시스템.
  17. 제16항에 있어서,
    상기 구성 정보는 디스플레이 드라이버로부터 수신되는, 컴퓨터 시스템.
  18. 제16항에 있어서,
    상기 레지스터들은 상기 페치 순서를 추가로 저장하는, 컴퓨터 시스템.
  19. 삭제
  20. 제18항에 있어서,
    상기 표면 분할기는 상기 분할 정책에 기초하여 상기 프레임 버퍼 데이터를 분할하는, 컴퓨터 시스템.
  21. 제20항에 있어서,
    상기 분할 정책은, 상기 프레임 버퍼가 분할되어야 하는 방식 및 영역들의 수를 결정하는, 컴퓨터 시스템.
  22. 하나 이상의 프로세서들에 의해 실행될 때, 상기 하나 이상의 프로세서들로 하여금 제9항 내지 제13항 중 어느 한 항의 방법을 수행하게 하는 명령어들이 저장된, 적어도 하나의 컴퓨터 판독가능 저장 매체.
  23. 시스템으로서,
    프레임 버퍼 데이터를 복수의 영역들로 분할하기 위해 프레임 버퍼 좌표들을 생성하는 수단 - 상기 복수의 영역들 각각은 프레임 버퍼 좌표에 대응함 -;
    복수의 파이프들 중 2개 이상의 파이프들에서 상기 프레임 버퍼 좌표들에 의해 식별되는 프레임 버퍼의 개별 영역들에 대응하는 프레임 버퍼 데이터를 병렬로 프로세싱하는 수단;
    페치 순서에 기초하여 상기 2개 이상의 파이프들 각각으로부터 제1 트랜스코더로의 상기 프레임 버퍼 데이터의 송신의 순서를 제어하는 수단; 및
    상기 제1 트랜스코더에서 상기 프레임 버퍼 데이터를 출력 신호로 병합하는 수단
    을 포함하고,
    상기 프레임 버퍼 데이터의 송신의 순서를 제어하는 수단은, 멀티-파이프 협업 모드가 디스플레이 엔진에서 디스에이블될 때, 상기 복수의 파이프들 각각을 대응하는 트랜스코더와 연결하는, 시스템.
  24. 제23항에 있어서,
    상기 복수의 파이프들 중 2개 이상의 파이프들 각각은 상기 대응하는 프레임 버퍼 좌표들에 기초하여 상기 프레임 버퍼 데이터를 페치하는, 시스템.
  25. 제23항에 있어서,
    분할 정책을 수신하는 수단; 및
    상기 분할 정책에 기초하여 상기 좌표들을 생성하는 수단
    을 더 포함하는, 시스템.
KR1020187034785A 2016-07-02 2016-07-02 고해상도 디스플레이 상에 다수의 스크린 영역들을 제공하기 위한 메커니즘 KR102590889B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2016/088258 WO2018006192A1 (en) 2016-07-02 2016-07-02 A mechanism for providing multiple screen regions on a high resolution display

Publications (2)

Publication Number Publication Date
KR20190025823A KR20190025823A (ko) 2019-03-12
KR102590889B1 true KR102590889B1 (ko) 2023-10-19

Family

ID=60901461

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187034785A KR102590889B1 (ko) 2016-07-02 2016-07-02 고해상도 디스플레이 상에 다수의 스크린 영역들을 제공하기 위한 메커니즘

Country Status (6)

Country Link
US (1) US11069021B2 (ko)
JP (1) JP6972454B2 (ko)
KR (1) KR102590889B1 (ko)
CN (1) CN109196548B (ko)
DE (1) DE112016007033T5 (ko)
WO (1) WO2018006192A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11688365B2 (en) * 2021-04-26 2023-06-27 Apple Inc. Synchronous display pipeline systems and methods
CN113791858A (zh) * 2021-09-10 2021-12-14 中国第一汽车股份有限公司 一种显示方法、装置、设备及存储介质
US20230196496A1 (en) * 2021-12-20 2023-06-22 Ati Technologies Ulc Method and apparatus for controlling image processing pipeline configuration data
US11908382B1 (en) * 2022-11-30 2024-02-20 Mediatek Inc. Seamless switching control for foldable or flip devices

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002520748A (ja) 1998-07-16 2002-07-09 ザ リサーチ ファウンデーション オブ ステイト ユニヴァーシティ オブ ニューヨーク リアルタイム・ボリューム処理およびユニバーサル3dレンダリングのための装置および方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5185599A (en) * 1987-10-26 1993-02-09 Tektronix, Inc. Local display bus architecture and communications method for Raster display
US5606707A (en) * 1994-09-30 1997-02-25 Martin Marietta Corporation Real-time image processor
JP2002099272A (ja) 2000-09-22 2002-04-05 Sony Corp 画像処理装置および方法、並びに記録媒体
JP2003078856A (ja) * 2001-09-04 2003-03-14 Nec Corp 映像サーバ・ディスプレイシステム
JP2003288071A (ja) 2002-03-28 2003-10-10 Fujitsu Ltd 画像処理装置および半導体装置
JP4266218B2 (ja) 2005-09-29 2009-05-20 株式会社東芝 動画像データの再圧縮符号化方法、装置及びプログラム
US20080285652A1 (en) * 2007-05-14 2008-11-20 Horizon Semiconductors Ltd. Apparatus and methods for optimization of image and motion picture memory access
US9053681B2 (en) * 2010-07-07 2015-06-09 Fotonation Limited Real-time video frame pre-processing hardware
US8907987B2 (en) * 2010-10-20 2014-12-09 Ncomputing Inc. System and method for downsizing video data for memory bandwidth optimization
US8736695B2 (en) * 2010-11-12 2014-05-27 Qualcomm Incorporated Parallel image processing using multiple processors
US8854383B2 (en) * 2011-04-13 2014-10-07 Qualcomm Incorporated Pixel value compaction for graphics processing
US9392295B2 (en) * 2011-07-20 2016-07-12 Broadcom Corporation Adaptable media processing architectures
CN103220478B (zh) * 2013-04-24 2016-03-16 青岛海信电器股份有限公司 一种显示装置和电视机
US9251557B2 (en) 2013-06-05 2016-02-02 Nvidia Corporation System, method, and computer program product for recovering from a memory underflow condition associated with generating video signals
US9292899B2 (en) * 2013-09-25 2016-03-22 Apple Inc. Reference frame data prefetching in block processing pipelines
CN104010136B (zh) * 2014-06-09 2017-05-03 南京航空航天大学 基于机载图形引擎的图形显示系统
US9471955B2 (en) * 2014-06-19 2016-10-18 Apple Inc. Multiple display pipelines driving a divided display
KR102254676B1 (ko) 2014-10-31 2021-05-21 삼성전자주식회사 이미지를 실시간으로 처리할 수 있는 이미지 처리 회로와 이를 포함하는 장치들
US20190020877A1 (en) * 2016-01-21 2019-01-17 Sony Corporation Image processing apparatus and method

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002520748A (ja) 1998-07-16 2002-07-09 ザ リサーチ ファウンデーション オブ ステイト ユニヴァーシティ オブ ニューヨーク リアルタイム・ボリューム処理およびユニバーサル3dレンダリングのための装置および方法

Also Published As

Publication number Publication date
CN109196548B (zh) 2023-09-01
CN109196548A (zh) 2019-01-11
US20190295210A1 (en) 2019-09-26
JP2019521369A (ja) 2019-07-25
WO2018006192A1 (en) 2018-01-11
DE112016007033T5 (de) 2019-03-21
JP6972454B2 (ja) 2021-11-24
KR20190025823A (ko) 2019-03-12
US11069021B2 (en) 2021-07-20

Similar Documents

Publication Publication Date Title
US10096304B2 (en) Display controller for improving display noise, semiconductor integrated circuit device including the same and method of operating the display controller
US9489165B2 (en) System and method for virtual displays
KR102590889B1 (ko) 고해상도 디스플레이 상에 다수의 스크린 영역들을 제공하기 위한 메커니즘
US11211036B2 (en) Timestamp based display update mechanism
JP6652937B2 (ja) 分割ディスプレイを駆動する多重ディスプレイパイプライン
ES2823034T3 (es) Transmisión de aplicación de baja latencia usando transformación de trama temporal
US9883137B2 (en) Updating regions for display based on video decoding mode
TW202004493A (zh) 在向量處理器為基礎裝置中提供多重元件多重向量(memv)暫存器檔案存取
US9679408B2 (en) Techniques for enhancing multiple view performance in a three dimensional pipeline
US10504278B1 (en) Blending neighboring bins
US20150294647A1 (en) Display system
TWI673677B (zh) 半導體裝置
KR102327334B1 (ko) 디스플레이 컨트롤러 및 이를 포함하는 반도체 집적회로 장치
US20140253598A1 (en) Generating scaled images simultaneously using an original image
JP2021117971A (ja) ディスプレイクロック周波数を動的に変化させるための方法および装置
US9646570B2 (en) Mechanism for facilitating improved copying of graphics data on computing devices
US20200026403A1 (en) System and method for efficient scrolling
US10079004B2 (en) Display controller and display system including the same
US20150063715A1 (en) Method for processing image and electronic device thereof
US10755666B2 (en) Content refresh on a display with hybrid refresh mode
US9424807B2 (en) Multimedia system and operating method of the same
KR101464619B1 (ko) Vdi 클라이언트를 위한 프레임 버퍼 직접 액세스 제어 방법
US20150070363A1 (en) Multimedia data processing method in general purpose programmable computing device and data processing system according to the multimedia data processing method

Legal Events

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