KR101232428B1 - 디스플레이 데이터 관리 장치, 방법, 제조물 및 시스템 - Google Patents

디스플레이 데이터 관리 장치, 방법, 제조물 및 시스템 Download PDF

Info

Publication number
KR101232428B1
KR101232428B1 KR1020100134954A KR20100134954A KR101232428B1 KR 101232428 B1 KR101232428 B1 KR 101232428B1 KR 1020100134954 A KR1020100134954 A KR 1020100134954A KR 20100134954 A KR20100134954 A KR 20100134954A KR 101232428 B1 KR101232428 B1 KR 101232428B1
Authority
KR
South Korea
Prior art keywords
frame
display device
frame buffer
frame data
data
Prior art date
Application number
KR1020100134954A
Other languages
English (en)
Other versions
KR20110079523A (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 KR20110079523A publication Critical patent/KR20110079523A/ko
Application granted granted Critical
Publication of KR101232428B1 publication Critical patent/KR101232428B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04817Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance using icons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1454Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/18Use of a frame buffer in a display terminal, inclusive of the display panel
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2370/00Aspects of data communication
    • G09G2370/04Exchange of auxiliary data, i.e. other than image data, between monitor and graphics controller
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Digital Computer Display Output (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

본 발명의 실시예는 디스플레이 데이터를 생성 및 출력하는 기법을 제공한다. 예컨대, 실시예는 디스플레이 디바이스 내에 프레임 데이터 저장부를 포함하는 구성을 제공한다. 또한, 실시예는 서로 다른 프레임 버퍼에 대해 서로 다른 사용자 컨텍스트를 격리하는 것을 포함한 구성을 제공한다. 또한 실시예는 전력 상태 사이에서 전이될 때 프레임 데이터를 저장하는 효과적인 기법을 제공한다. 더욱이 실시예는 다수의 디스플레이 컨텐츠를 물리적 디스플레이에 탄력적이고 동적으로 할당하는 기법을 제공한다.

Description

디스플레이 데이터 관리 장치, 방법, 제조물 및 시스템{DISPLAY DATA MANAGEMENT TECHNIQUES}
컴퓨터 응용 분야에서는 통상적으로 사용자에게 정보를 제공하기 위해 그래픽 출력을 이용한다. 이러한 정보는 텍스트, 도면, 영상(동영상 또는 정지 영상) 등의 형태를 가질 수 있다. 이러한 정보는 전형적으로 통신 인터페이스를 통해 처리 플랫폼(예를 들면, 개인용 컴퓨터)에 접속된 디스플레이 디바이스에 출력된다.
종래에는 그래픽의 생성이 응용 프로그램으로부터 수신된 지시어(directives)를 기초로 프레임 데이터(또는 영상 데이터)의 형태로 컨텐츠를 디스플레이할 수 있게 하는 그래픽 파이프라인을 포함했다. 생성된 후, 이 프레임 데이터는 전형적으로 처리 플랫폼 내의 프레임 버퍼 메모리 내에 저장된다.
이 저장이 실행된 후, 프레임 데이터는 종래의 디스플레이 인터페이스를 통해 디스플레이 디바이스로 전달될 수 있다. 이러한 종래의 인터페이스의 예시는 VGA(video graphic array), DVI(digital visual interface), HDMI(high-definition multimedia interface), DP(DisplayPort) 및 아날로그 텔레비전 방식을 포함한다. 다음으로, 디스플레이 디바이스는 수신된 프레임 데이터를 가지고 디스플레이를 구동한다. 이는 처리 플랫폼 또는 디스플레이 디바이스 내에 있는 논리(logic)에 의해 관리될 수 있는 타이밍에 기초한다.
시스템이 점차 복잡해짐에 따라, 디스플레이 데이터를 효과적이고 탄력적으로 관리하는 기법이 요구된다.
이하의 도면에서 동일한 참조 번호는 일반적으로 동일하거나, 기능적으로 유사 및/또는 구조적으로 유사한 요소를 나타낸다. 해당 참조 번호의 맨 처음 숫자는 요소가 처음 표시된 도면의 번호를 나타낸다. 본 발명은 첨부된 도면을 참조하여 설명될 것이다.
실시예는 디스플레이 데이터를 생성 및 출력하는 기법을 제공한다. 예컨대, 실시예는 디스플레이 디바이스 내에 프레임 데이터 저장 장치를 포함하는 구성을 제공한다. 또한, 실시예는 서로 다른 프레임 버퍼로부터 서로 다른 사용자 컨텍스트(user contexts)를 분리하는 것과 관련된 특징을 포함하는 구성을 제공한다. 또한, 실시예는 전력 상태 사이에서 변화될 때 프레임 데이터를 절약하는 효과적인 기법을 제공한다. 더욱이 실시예는 물리적 디스플레이에 다수의 디스플레이 컨텐츠를 탄력적(flexibly)이고 동적으로 할당하는 기법을 제공한다.
예컨대, 장치는 그래픽 입력 데이터로 프레임 데이터를 생성하는 그래픽 렌더링 엔진(graphic rendering engine)과, 결합형 디스플레이 디바이스가 프레임 버퍼를 포함할 것인지 여부를 결정하는 프레임 버퍼 제어 모듈을 포함할 수 있다. 결합형 디스플레이 디바이스가 프레임 버퍼를 포함하면, 프레임 버퍼 제어 모듈은 로컬 프레임 버퍼 내로의 프레임 데이터 저장을 바이패스(bypass)하고, 프레임 데이터를 결합형 디스플레이 디바이스에 전달한다.
프레임 데이터는 현재 프레임과 이전 프레임 사이에서 서로 다른 데이터를 포함할 수 있다. 또한, 결합형 디스플레이 디바이스와 연결된 통신 인터페이스(예를 들어 USB 인터페이스 및/또는 LAN 인터페이스가 있으나 이것으로 한정되지 않음)의 하나 이상의 특징에 기초하여 프레임 버퍼 제어 모듈은 압축 송신 방식과 비압축 송신 방식 중에 선택할 수 있다. 이러한 하나 이상의 특징은 통신 인터페이스의 용량을 포함할 수 있다. 또한 프레임 버퍼 제어 모듈은 디스플레이 디바이스로 전달될 프레임 데이터를 암호화할 수 있다. 통신 인터페이스 모듈은 통신 인터페이스를 거쳐 결합형 디스플레이 디바이스로 프레임 데이터를 전송한다.
본 발명의 방법은 그래픽 입력 데이터로부터 프레임 데이터를 생성하는 방법과, 디스플레이 디바이스가 프레임 버퍼를 포함하는지 여부를 결정하는 단계와, 디스플레이 디바이스에 프레임 데이터를 전송하여 프레임 버퍼 내에 저장하는 단계를 포함한다. 이러한 전송 단계는 로컬 프레임 버퍼 내로의 프레임 데이터 저장을 바이패스하는 단계를 포함할 수 있다. 프레임 데이터는 현재 프레임과 이전 프레임 사이에 서로 다른 데이터를 포함할 수 있다. 프레임 데이터의 전송 단계는 프레임 데이터를 통신 인터페이스를 통해 디스플레이 디바이스로 송신하는 단계를 포함할 수 있다.
또한, 상기 방법은 통신 인터페이스를 통해 송신될 프레임 데이터를 암호화할 수 있다. 또한, 상기 방법은 통신 인터페이스의 하나 이상의 특성에 기초하여 압축 전송 방식 또는 비압축 전송 방식 중 선택할 수 있다. 통신 인터페이스의 하나 이상의 특징은 통신 인터페이스의 용량을 포함할 수 있다.
본 발명의 제조물은 머신에 의해 실행될 때 머신이 그래픽 입력 데이터로부터 프레임 데이터를 생성하게 하고, 디스플레이 디바이스가 프레임 버퍼를 포함하는지 여부를 결정하고, 프레임 데이터를 디스플레이 디바이스로 전송하여 프레임 버퍼에 저장하게 하는 명령어를 저장하고 있는 머신 액세스 가능 매체를 포함할 수 있다. 이 전송은 로컬 프레임 버퍼 내로의 프레임 데이터 저장을 바이패스하는 것을 포함할 수 있다.
본 발명의 시스템은 처리 플랫폼과, 디스플레이 디바이스를 포함할 수 있다. 처리 플랫폼은 그래픽 입력 데이터로부터 프레임 데이터를 생성하는 그래픽 렌더링 엔진과, 디스플레이 디바이스가 프레임 버퍼를 포함하는지 여부를 결정하는 프레임 버퍼 제어 모듈을 포함한다. 디스플레이 디바이스가 프레임 버퍼를 포함할 때, 프레임 버퍼 제어 모듈은 로컬 프레임 버퍼 내로의 프레임 데이터 저장을 바이패스하고, 디스플레이 디바이스로 프레임 데이터를 전송한다.
본 발명의 다른 시스템은 처리 플랫폼 및 디스플레이 디바이스를 포함할 수 있다. 처리 플랫폼은 하나 이상의 응용 프로그램으로 된 제 1 세트를 위한 제 1 프레임 데이터를 생성하는 제 1 그래픽 파이프라인과, 하나 이상의 응용 프로그램으로 된 제 2 세트를 위한 제 2 프레임 데이터를 생성하는 제 2 그래픽 파이프라인을 포함한다. 디스플레이 디바이스는 제 1 프레임 버퍼 및 제 2 프레임 버퍼를 포함한다. 제 1 그래픽 파이프라인은 제 1 프레임 데이터를 제 1 프레임 버퍼로 전송한다. 또한, 제 2 그래픽 파이프라인은 제 2 프레임 데이터를 제 2 프레임 버퍼로 전송한다.
디스플레이 디바이스는 물리적 디스플레이 및 사용자 인터페이스를 포함할 수 있다. 사용자 인터페이스는 제 1 및 제 2 프레임 버퍼 중 하나에 대한 사용자 선택을 수신할 수 있다. 물리적 디스플레이는 선택된 프레임 버퍼 내에 프레임 데이터를 출력한다.
하나 이상의 응용 프로그램으로 된 제 1 세트는 제 1 운영 시스템에 대응할 수 있고, 하나 이상의 응용 프로그램으로 된 제 2 세트는 제 2 운영 시스템에 대응할 수 있다.
시스템은 처리 플랫폼과 디스플레이 디바이스 사이에 통신 인터페이스를 더 포함할 수 있다. 처리 플랫폼은 제 1 접속부를 통해 통신 인터페이스를 거쳐 제 1 프레임 데이터를 송신할 수 있고, 제 2 접속부를 통해 통신 인터페이스를 거쳐 제 2 프레임 데이터를 송신할 수 있다. 이러한 제 1 및 제 2 접속부는 격리될 수 있다. 통신 인터페이스는 USB 인터페이스 또는 LAN일 수 있다.
다른 방법은 하나 이상의 응용 프로그램으로 된 제 1 세트에 대한 제 1 프레임 데이터를 생성하는 단계와, 하나 이상의 응용 프로그램으로 된 제 2 세트에 대한 제 2 프레임 데이터를 생성하는 단계와, 디스플레이 디바이스 내의 제 1 프레임 버퍼로 제 1 프레임 데이터를 송신하는 단계와, 디스플레이 디바이스 내의 제 2 프레임 버퍼로 제 2 프레임 데이터를 송신하는 단계와, 사용자 선택에 기초하여 물리적 디스플레이에 제 1 프레임 데이터 및 제 2 프레임 데이터 중 하나를 출력하는 단계를 포함할 수 있다. 하나 이상의 응용 프로그램으로 된 제 1 세트는 제 1 운영 시스템에 대응할 수 있고, 하나 이상의 응용 프로그램으로 된 제 2 세트는 제 2 운영 시스템에 대응할 수 있다. 제 1 프레임 데이터의 송신 단계는 통신 인터페이스의 제 1 접속부를 통해 제 1 프레임 데이터를 전송하는 단계를 포함할 수 있고, 제 2 프레임 데이터의 송신 단계는 통신 인터페이스의 제 2 접속부를 통해 제 2 프레임 데이터를 전송하는 단계를 포함할 수 있다. 제 1 및 제 2 접속부는 서로 격리될 수 있다.
디스플레이 디바이스는 (예를 들면, 하나 이상의 프레임 버퍼 내에) 프레임 데이터를 저장하는 휘발성 저장 매체와, 비휘발성 저장 매체와, 저 전력 상태로의 전이에 기초하여 비휘발성 저장 매체 내에 프레임 데이터를 저장하는 제어 모듈을 포함할 수 있다. 이러한 저 전력 상태는 대기 상태(sleep state)일 수 있다. 저 전력 상태로의 전이는 결합형 처리 플랫폼으로부터 수신된 지시어에 기초할 수 있다. 제어 모듈은 저 전력 상태로부터 고 전력 상태로의 전이에 기초하여 휘발성 저장 매체에 프레임 데이터를 복원할 수 있다. 휘발성 저장 매체는 RAM(dynamic random access memory)을 포함할 수 있고, 비휘발성 저장 매체는 플래시 메모리를 포함할 수 있다.
또 다른 방법은 디스플레이 디바이스 내에 내장되어 휘발성 저장 매체를 포함하는 프레임 버퍼 내에 프레임 데이터를 저장하는 단계와, 저 전력 상태(예를 들면, 대기 상태)로의 전이에 기초하여 디스플레이 디바이스 내에 포함된 비휘발성 저장 매체 내에 프레임 데이터를 저장하는 단계를 포함할 수 있다. 또한, 이 방법은 처리 플랫폼으로부터 저 전력 상태로의 전이에 대한 지시어를 수신하는 단계를 포함할 수 있다. 이 방법은 또한 저 전력 상태로부터 고 전력 상태로 전이하는 단계와, 전이에 기초하여 프레임 버퍼에 프레임 데이터를 복원하는 단계를 포함할 수 있다.
또 다른 방법은 사용자 선택을 수신하여 물리적 디스플레이에 하나 이상의 프레임 데이터 스트림을 출력하는 단계와, 사용자 선택에 기초하여 하나 이상의 프레임 데이터 스트림에 대응하는 하나 이상의 프레임 버퍼 저장부를 로컬 저장 매체에 할당하는 단계와, 처리 플랫폼으로부터 하나 이상의 프레임 데이터 스트림을 수신하는 단계와, 하나 이상의 수신된 프레임 데이터 스트림을 상기 할당 단계에 따라서 저장 매체 내에 저장하는 단계와, 사용자 선택에 따라서 하나 이상의 수신된 프레임 데이터 스트림을 물리적 디스플레이에 출력하는 단계를 포함한다.
로컬 저장 매체에 하나 이상의 프레임 버퍼 저장부를 할당하는 단계는 FMT(frame mapping table)을 생성하는 단계를 포함한다. 또한, 본 방법은 로컬 저장 매체 내에 FMT를 저장하는 단계를 포함할 수 있다. 본 방법은 하나 이상의 프레임 데이터 스트림 각각에 대한 해상도(resolution)를 결정하는 단계와, 하나 이상의 프레임 데이터 스트림 각각에 대한 해상도를 처리 플랫폼에 지시하는 단계를 더 포함할 수 있다.
처리 플랫폼으로부터 하나 이상의 프레임 데이터 스트림을 수신하는 단계는 대응하여 결정된 해상도에 따라서 하나 이상의 프레임 데이터 스트림 각각을 수신하는 단계를 포함할 수 있다. 또한, 처리 플랫폼으로부터 하나 이상의 프레임 데이터 스트림을 수신하는 단계는 통신 인터페이스를 거쳐 하나 이상의 프레임 데이터 스트림을 수신하는 단계를 포함한다. 또한, 하나 이상의 데이터 스트림은 각각 통신 인터페이스 내의 대응하는 접속부를 통해 수신될 수 있다.
위의 구성은 예시적인 것이다. 따라서 본 발명의 실시예는 위의 구성으로 한정되지 않는다. 실시예의 추가적인 구성은 이하의 설명과 첨부된 도면으로부터 명확해질 것이다.
본 명세서에 걸쳐 "하나의 실시예" 또는 "일실시예"에 대한 언급은 실시예와 관련하여 설명된 특정 구성, 구조물 또는 특성이 적어도 하나의 실시예에 포함된다는 것을 의미한다. 따라서 본 명세서에 걸쳐 여러 부분에서 "하나의 실시예에서" 또는 "일실시예에서"라는 구문이 사용된 것은 그것이 모두 반드시 동일한 실시예를 지칭해야만 한다는 의미가 아니다. 또한, 특정 구성, 구조물 또는 특성은 하나 이상의 실시예에서 임의의 적절한 방식으로 조합될 수 있다.
본 발명은 디스플레이 데이터를 효과적이고 탄력적으로 관리하는 기법을 제공한다.
도 1은 예시적인 운영 환경을 도시하는 도면.
도 2는 예시적인 그래픽 파이프라인 구현을 도시하는 도면.
도 3은 흐름도를 나타내는 도면.
도 4는 그래픽 파이프라인과 프레임 버퍼 사이의 매핑을 도시하는 도면.
도 5 및 도 6은 흐름도를 나타내는 도면.
도 7은 프레임 매핑 메모리 구현을 도시하는 도면.
도 8은 흐름도를 나타내는 도면.
도 1은 본 명세서에서 설명된 기법을 적용할 수 있는 예시적인 운영 환경(100)을 도시하는 도면이다. 환경(100)은 여러 구성 요소를 포함할 수 있다. 예컨대, 도 1은 처리 플랫폼(101), 디스플레이 디바이스(103) 및 인터페이스(105)를 포함하는 환경(100)을 도시한다. 이러한 구성 요소는 하드웨어 및/또는 소프트웨어의 임의의 조합으로 구현될 수 있다.
처리 플랫폼(101)은 하나 이상의 운영 시스템(OS)을 포함할 수 있다. 예를 들면, 도 1은 운영 시스템(108a, 108b)을 실행하는 처리 플랫폼(101)을 도시한다. 그러나 다른 개수의 운영 시스템을 이용할 수도 있다. 이 운영 시스템을 통해, 다양한 컴퓨터 응용 프로그램이 실행될 수 있다. 예를 들면, 도 1은 응용 프로그램(102a-102d)을 실행하는 처리 플랫폼(101)을 도시한다. 각각의 응용 프로그램은 OS(108a-108b) 중 각각의 OS에서 실행될 수 있다.
응용 프로그램(102a-102d)은 하나 이상의 디스플레이(디스플레이 디바이스(103) 등)에 출력되는 그래픽을 이용할 수 있다. 예시적인 응용 프로그램은 다양한 업무 관련 응용 프로그램(예를 들면, 워드 프로세서, 스프레드시트 응용 프로그램, 프레젠테이션 응용 프로그램, 전자 우편, 메시징(messaging) 응용 프로그램 등), 게임 응용 프로그램, 비디오 응용 프로그램 및/또는 다른 응용 프로그램을 포함한다.
처리 플랫폼(101)은 하나 이상의 그래픽 파이프라인을 더 포함할 수 있다. 예컨대, 도 1은 그래픽 파이프라인(106a, 106b)을 포함하는 처리 플랫폼(101)을 도시한다. 그러나 다른 개수의 그래픽 파이프라인도 이용할 수 있다. 이러한 그래픽 파이프라인은 응용 프로그램(102a-102d)을 위한 그래픽 동작을 제공한다. 실시예에서, 이것은 하나 이상의 그래픽 응용 프로그램 인터페이스(application programming interface : API)(도시하지 않음)를 통해 처리된다. 이러한 API는 그래픽 파이프라인(106a-106b)과 인터페이스로 연결되어 다양한 루틴(routines), 데이터 구조, 객체 클래스(object classes) 및/또는 프로토콜을 제공할 수 있다. 예시적인 API는 OpenGL, DirectX 등과 같이 상업적으로 입수 가능한 API를 포함할 수 있다(그러나 이것으로 한정되지 않음).
특히 그래픽 파이프라인(106a-106b)은 그래픽 API를 통해 수신 및 처리되는 지시어에 응답하여 그래픽 동작을 수행한다. 예시적인 동작은 디스플레이 디바이스(103)에 영상(프레임)을 렌더링(rendering) 및 출력하는 것을 포함한다. 상술된 바와 같이, 그래픽 파이프라인(106a-106b)은 하드웨어 및/또는 소프트웨어의 임의의 조합으로 구현될 수 있다. 따라서 실시예에서 그래픽 파이프라인(106a-106b)은 하나 이상의 GPU(graphics processing unit)으로 구현될 수 있다.
도 1은 물리적 디스플레이(109), 저장 매체(110), 제어 모듈(112), 사용자 인터페이스(113) 및 비휘발성 저장 매체(114)를 포함하는 디스플레이 디바이스(103)를 도시한다.
물리적 디스플레이(109)는 사용자에게 시각적 출력을 제공한다. 실시예에서 이 출력은 순차적 영상(또는 프레임)의 형태를 갖는다. 따라서 예시적인 물리적 디스플레이는 LED(light emitting diode) 디스플레이, LCD(liquid crystal display), 플라즈마 디스플레이 및 CRT(cathode ray tube)를 포함한다. 그러나 실시예는 이러한 예시로 한정되지 않는다.
물리적 디스플레이(109)에 의해 출력된 프레임은 각각 다수의 화소를 포함할 수 있다. 이들 화소를 나타내는 데이터(예를 들면, 색상 및/또는 세기 값)는 저장 매체(110) 내의 프레임 버퍼에 저장된다. 이 데이터는 "프레임 데이터"로 지칭될 수 있다. 따라서 프레임 데이터를 저장함으로써, 프레임 버퍼는 물리적 디스플레이(109)를 "구동"한다.
실시예에서, 디스플레이 디바이스(103)는 다수의 프레임 버퍼를 제공할 수 있다. 예컨대, 도 1은 프레임 버퍼(111a, 111b)를 포함하는 디스플레이 디바이스(103)를 도시한다. 그러나 다른 개수의 프레임 버퍼도 이용 가능하다. 이러한 프레임 버퍼는 저장 매체(110) 내에 포함될 수 있다. 저장 매체(110)는 휘발성 RAM(random access memory)(예를 들면 동적 RAM)을 포함할 수 있다. 그러나 비휘발성 메모리 등과 같은 다른 타입의 저장 매체도 사용 가능하다.
실시예에서, 디스플레이 디바이스(103)는 처리 플랫폼(101)으로부터 프레임 데이터를 수신한다. 보다 구체적으로는 그래픽 파이프라인(106a-106b)은 (인터페이스(105)를 통해) 프레임 데이터(120)를 디스플레이 디바이스(103)로 전달할 수 있다. 수신하면, 디스플레이 디바이스(103)는 프레임 데이터를 프레임 버퍼(111a 및/또는 111b)에 저장한다. 다음에 이 저장된 프레임 데이터는 본 명세서에 설명된 기법에 따라서 물리적 디스플레이(109)에 의해 출력될 수 있다.
상술된 바와 같이, 디스플레이 디바이스(103)는 디스플레이 디바이스(103)의 여러 동작을 지시하는 제어 모듈(112)을 포함한다. 이러한 동작은 처리 플랫폼(101)으로부터 수신된 프레임 데이터의 수신, 저장 및 출력을 포함한다. 따라서 제어 모듈(112)은 인터페이스(105)와의 통신, 디스플레이 타이밍, 전력 관리 절차 등을 취급할 수 있다. 또한, 제어 모듈(112)은 사용자 인터페이스(113) 또는 제어 경로(122)를 통해 가상화(virtualization) 제어 소프트웨어 스택에 대한 사용자 상호 작용을 관리할 수 있다.
사용자 인터페이스(113)는 사용자가 디스플레이 디바이스(103)와 상호 작용할 수 있게 허용한다. 이 상호 작용은 본 명세서에 기재된 다양한 동작을 사용자가 실행하는 것을 포함할 수 있다. 이러한 동작은 디스플레이 디바이스(103) 내에서 출력할 프레임 버퍼를 선택하는 것과, 단일 프레임 버퍼 출력 모드 또는 다중 프레임 버퍼 출력 모드를 선택하는 것과, 디스플레이 디바이스(103)에 작동 전력을 인가 및 제거하는 것을 포함할 수 있다(그러나 이것으로 한정되지 않음). 사용자 인터페이스(113)는 다양한 방법으로 구현될 수 있다. 예를 들면, 사용자 인터페이스(113)는 다양한 버튼, 키, 다이얼 및/또는 다른 입력 장치를 포함할 수 있다. 추가적으로 또는 대안적으로, 사용자 인터페이스(113)는 물리적 디스플레이(109)를 통해 제공되는 다양한 메뉴 및/또는 터치 스크린 형상부를 포함할 수 있다.
실시예에서, 디스플레이 디바이스(103)는 비휘발성 저장 매체(114)(예를 들면, 플래시 메모리)를 포함할 수 있다. 이하에서 보다 상세히 설명된 바와 같이, 비휘발성 저장 매체(114)는 디스플레이 디바이스(103)가 전력 상태 사이에서 전이(예를 들면, 고 전력 상태로부터 저 전력 상태로 전이)할 때 프레임 버퍼(111a, 111b)의 컨텐츠를 위한 저장부를 제공할 수 있다. 이와 다르게, 실시예는 비휘발성 메모리로 프레임 버퍼(111a, 111b)를 구현하여 그 컨텐츠를 항상 이용 가능하게 보유하는 구성을 제공할 수 있다.
인터페이스(105)는 처리 플랫폼(101)과 디스플레이 디바이스(103) 사이에 결합된다. 특히 인터페이스(105)는 디스플레이 디바이스(103)가 프레임 데이터(120)를 제공하도록 플랫폼(101)을 처리할 수 있게 한다. 인터페이스(105)는 또한 처리 플랫폼(101)과 디스플레이 디바이스(103)가 서로 제어 정보(122)를 교환할 수 있게 한다.
인터페이스(105)는 다양한 방식으로 구현될 수 있다. 예를 들면, 실시예에서 인터페이스(105)는 USB(Universal Serial Bus) 인터페이스(예를 들면, USB 1.0, USB 2.0, USB 3.0 등) 등과 같은 "플러그-앤-플레이(plug and play)" 인터페이스를 포함할 수 있다. 그러나 다양한 다른 직렬 및/또는 병렬 인터페이스도 이용 가능하다. 더욱이 인터페이스(105)는 유선 LAN(local area network)(이더넷(Ethernet) 네트워크 등)으로 구현될 수 있다. 또한 인터페이스(105)는 무선 네트워크로 구현될 수 있다. 예시적인 무선 네트워크는 IEEE 802.11 무선 LAN(WiFi) 네트워크, IEEE 802.16 WiMAX 네트워크 및 WPAN(wireless personal area networks)(예를 들면, 60GHz WPAN 등)을 포함한다. 그러나 실시예는 이러한 예시로 한정되지 않는다.
실시예에서, 디스플레이 디바이스(103)의 프레임 버퍼(111a, 111b)는 처리 플랫폼(101) 내의 처리 및/또는 운영 시스템에 대한 "디스플레이"로서 표시된다. 따라서 실시예에서, 처리 및/또는 운영 시스템은 디스플레이 디바이스(103)의 물리적 디스플레이(109)를 인식하지 않는다. 더욱이 실시예에서, 사용자 또는 독립 소프트웨어 스택은 디스플레이 디바이스(103) 내의 프레임 버퍼가 실제로 물리적 디스플레이(109) 상에서 어떻게 보이는지를 관리한다. 예컨대, 실시예는 사용자 또는 소프트웨어에게 다양한 프레임 버퍼에 걸쳐 페이징(page) 또는 "플립(flip)"하는 기능을 제공한다. 대안적으로 또는 추가적으로, 실시예는 사용자 또는 소프트웨어가 다양한 프레임 버퍼를 물리적 디스플레이(109) 상의 다양한 독립 구역으로 매핑하여 동시에 다수의 프레임이 관찰될 수 있게 하는 것을 허용한다.
실시예에서, 도 1의 구성 요소는 컴퓨터 시스템으로서 구현될 수 있다. 예를 들면, 처리 플랫폼(101)은 개인용 컴퓨터일 수 있고, 디스플레이 디바이스(103)는 그에 대응하는 모니터일 수 있다. 그러나 실시예는 이러한 구성으로 한정되지 않는다.
더욱이 도 1의 구성 요소는 하나 이상의 프로세서(예를 들면, 마이크로프로세서)를 포함할 수 있다. 예컨대, 처리 플랫폼은 마이크로프로세서의 임의의 조합을 포함할 수 있다. 일례로서 본 명세서에 설명된 동작(OS(108a-108b), 응용 프로그램(102a-102d) 및 그래픽 파이프라인의 동작 등)은 중앙 처리 장치(CPU) 및/또는 그래픽 처리 장치(GPU)에 의해 제공될 수 있다. 이러한 CPU 및/또는 GPU는 저장 매체에 저장된 명령어(예를 들면, 소프트웨어)에 따라 작동할 수 있다. 이 저장 매체(처리 플랫폼(101) 내에 포함될 수 있음)는 메모리(휘발성 또는 비휘발성), 디스크 저장 매체 등을 포함할 수 있다. 따라서 디스플레이 디바이스(103)는 또한 본 명세서에 설명된 특징을 제공하는 하나 이상의 프로세서를 포함할 수 있다. 이러한 프로세서는 저장 매체 내에 저장된 명령어(예를 들면, 소프트웨어)를 실행할 수 있다. 이 저장 매체(디스플레이 디바이스(103) 내에 포함될 수 있음)는 메모리(휘발성 또는 비휘발성), 디스크 저장 매체 등을 포함할 수 있다. 이러한 구현에 관련된 추가적인 세부 사항은 아래에 제공되어 있다.
다양한 실시예에 대한 동작은 이하의 도면과 그에 따른 예시를 참조하여 추가적으로 설명될 것이다. 몇몇 도면은 논리 흐름을 포함할 수 있다. 본 명세서에 제시된 이러한 도면은 특정 논리 흐름을 포함할 수 있으나, 이 논리 흐름은 본 명세서에 설명된 일반 기능이 구현되는 방식에 대한 일례만을 제공할 뿐임을 이해할 수 있을 것이다. 또한 주어진 논리 흐름은 별도로 언급되어 있지 않은 한 반드시 제시된 순서대로 실행되어야 하는 것은 아니다. 추가하여, 주어진 논리 흐름은 하드웨어 요소, 하나 이상의 프로세서에 의해 실행되는 소프트웨어 요소 또는 그 임의의 조합으로 구현될 수 있다. 실시예는 이것으로 한정되지 않는다.
종래의 그래픽/비디오 처리 파이프라인은 처리 플랫폼 내의 시스템 프레임 버퍼 메모리로 디스플레이 컨텐츠를 렌더링(rendered)한 다음, 종래의 디스플레이 인터페이스를 통해 렌더링된 데이터(프레임 데이터)를 디스플레이 디바이스로 전송하는 것을 포함한다. 이러한 종래의 인터페이스의 예시는 VGA(video graphic array), DVI(digital visual interface), HDMI(high-definition multimedia interface), DP(DisplayPort) 및 아날로그 텔레비전 방식을 포함한다. 다음으로 디스플레이 디바이스는 수신된 프레임 데이터를 가지고 디스플레이를 구동한다. 처리 플랫폼 또는 디스플레이 디바이스 내의 논리에 의해 관리 될 수 있는 타이밍에 기초한다.
최근에 처리 플랫폼의 프레임 버퍼로부터 현재 프레임을 인터셉트(intercept)하는 접근법이 개발되었다. 인터셉트된 프레임은 판독되고 이전 프레임에 대해 비교된다. 비교 결과에 기초하여 차이("델타(delta)")가 결정된다. 다음에 이 델타(이것은 무손실 압축을 제공함)는 USB 또는 이더넷 인터페이스 등과 같은 공통 인터페이스를 통해 디스플레이 디바이스로 전달된다.
이것이 수신되면 디스플레이 디바이스는 그 내부 논리를 이용하여 델타를 압축 해제하고 압축 해제된 데이터를 그 자체의 프레임 버퍼에 저장한다. 추가로 디스플레이 디바이스는 로컬 디스플레이 스크린 리프레시, 크기 조정(scaling), 회전 및 디스플레이 온/오프(on/off) 등과 같은 다양한 동작을 취급할 수 있다. 이러한 기법이 공통 인터페이스를 사용하므로, 여러 디스플레이 디바이스가 지원될 수 있다(처리 플랫폼의 프레임 버퍼 크기 및 그 처리 대역폭에 의해 한정됨).
불행하게도, 이러한 인터셉트, 판독 및 비교 동작(처리 플랫폼에 의해 실행됨)은 처리 플랫폼의 처리 용량 중 상당한 양을 필요로 한다. 예컨대, 고급 액션 비디오(high action video)는 전형적인 처리 플랫폼의(예를 들면, 개인용 컴퓨터의) 처리 용량의 거의 전부를 필요로 할 수 있다.
따라서 이 접근법은 여러 단점을 갖고 있다. 그 단점 중 하나는 처리 플랫폼이 프레임 버퍼 인터셉트를 인식하지 않고, 원격 프레임 버퍼를 이용하지 않는다는 것이다. 결과적으로 처리 플랫폼은 로컬 전역 메모리 내에 그 자체의 프레임 버퍼를 형성 및 관리하는 데 있어 처리 대역폭 및 전력을 낭비한다.
이 접근법의 다른 단점은 (예를 들면, 제 3자 프레임 스크랩 소프트웨어에 의한) 처리 플랫폼의 프레임 버퍼에 대한 인터셉트 및 판독은 보안상 허점이 된다는 것이다. 이는 제 3자 소프트웨어가 임의의 프레임 컨텐츠(개인 데이터를 포함하는 컨텐츠 등)를 캡쳐하고 그것을 어디로든 송신할 수 있기 때문이다. 따라서 이러한 프레임 스크랩은 미래에는 허용 불가능하게 될 것이다.
실시예는 통합형 프레임 버퍼를 구비한 디스플레이를 이용함으로써 이러한 단점을 극복하였다. 예컨대, 실시예에서 처리 플랫폼은 원격 위치 프레임 버퍼를 이해하고, 원격 프레임을 전체 그래픽 처리 파이프라인의 일부분으로서 포함하는 그래픽 파이프라인을 구비하고, 컨텐츠가 디스플레이의 생성으로부터 안전하다는 것을 보장한다. 원격 프레임 버퍼는 임의의 디지털 인터페이스를 통해 접속될 수 있고, 컨텐츠가 암호화될 필요가 있다면 인터페이스의 적절한 암호환 방법이 적용될 것이다.
원격 프레임 버퍼의 개념을 포함함으로써, 처리 플랫폼은 프레임-프레임 델타 데이터만을 제공할 수 있어, 상술된 프레임-프레임 비교 동작을 필요로 하지 않게 된다. 또한 실시예는 인터페이스를 거쳐 이 데이터를 송신하기 전에 데이터를 압축할 것인지 압축하지 않을 것인지 결정할 수 있다. 이 결정은 인터페이스의 이용 가능한 대역폭에 기초할 수 있다. 예컨대, USB 1.0 및 USB 2.0 인터페이스에서는 압축을 이용할 수 있지만, USB 3.0 인터페이스에서는 이용하지 않을 수 있다.
도 2는 도 1에 도시된 그래픽 파이프라인 중 어느 하나 등과 같은 그래픽 파이프라인에 포함될 수 있는 예시적인 구현(200)을 도시한다. 이 구현은 다양한 구성 요소를 포함할 수 있다. 한정 사항이 아닌 예시를 위해서, 도 2는 그래픽 렌더링 엔진(201), 프레임 버퍼 제어 모듈(214), 프레임 버퍼(216) 및 통신 인터페이스 모듈(218)을 도시한다. 이 구성 요소는 하드웨어 및/또는 소프트웨어의 임의의 조합으로 구현될 수 있다.
그래픽 렌더링 엔진(201)은 그래픽 입력 데이터(220)로부터 프레임 데이터를 생성한다. 그래픽 렌더링 엔진(201)은 다양한 방식으로 구현될 수 있다. 도 2는 변환 모듈(202), 조명 모듈(204), 설정 모듈(206), 래스터화(rasterization) 모듈(208), 텍스처 유닛(210), 화소 처리 모듈(212)을 포함하는 그래픽 렌더링 엔진(201)을 도시한다.
도 2에 도시된 바와 같이, 그래픽 렌더링 엔진(201)은 변환 모듈(202)에서 그래픽 입력 데이터(220)를 수신한다. 그래픽 입력 데이터(220)는 모델 공간(예를 들면, 3차원 공간) 내에 장면의 표현을 포함한다. 실시예에서, 그래픽 입력 데이터(220)는 하나 이상의 응용 프로그램(예를 들면, 그래픽 API 등)으로부터 수신될 수 있다.
변환 모듈(202)은 모델 공간으로부터 스크린 공간으로 그래픽 입력 데이터(220)의 좌표를 변환한다. 또한 변환 모듈(202)은 클립 테스트(clip testing) 및 임의의 클리핑 동작(clipping operations) 등과 같은 동작을 수행한다.
조명 모듈(204)은 정점 법선(vertex normal) 및 사전 설정된 재질의 색상에 기초하여 정점 색상(vertex color)을 계산한다. 이것은 선택적으로 정점당 색상(color per vertex)을 포함할 수 있다. 설정 모듈(206)은 깊이, 색상, 및 텍스처 변수에 대한 구배(X 및 Y 방향에서의 변동량)뿐만 아니라 원색 에지(edge)의 경사도를 계산한다.
래스터화 모듈(208)은 원색에 대한 모든 유효 화소 샘플을 찾고, 각 샘플 포인트에서 정확한 깊이, 색상 및 텍스처값을 계산한다. 텍스처 유닛(210)은 텍스처 메모리로부터 하나 이상의 텍셀(texel) 값을 검색하고 입력된 화소 색상에 대한 텍스처-지정 혼합 동작을 수행한다.
화소 처리 모듈(212)은 길이 비교, 화소 혼합 및 다른 유사 동작 등과 같이 화소 당 한번 발생하는 동작을 수행한다. 결과적으로, 화소 처리 모듈(212)은 프레임 버퍼 제어 모듈(214)에 단일 스크린 영상의 컨텐츠를 나타내는 화소 데이터를 제공한다.
프레임 버퍼 제어 모듈(214)은 화소 데이터의 저장과 연관된 동작을 수행한다. 예컨대, 프레임 버퍼 제어 모듈(214)은 프레임 버퍼(216) 내에 화소 데이터를 국부적으로 저장할 것인지, 아니면 디스플레이 디바이스(디스플레이 디바이스(103) 등) 내의 프레임 버퍼로 화소 데이터를 송신할 것인지 여부를 결정한다.
통신 인터페이스 모듈(218)은 디스플레이 디바이스에 접속된 인터페이스(도 1에 도시된 인터페이스(105) 등)에 대한 액세스를 제공한다. 예컨대, 통신 인터페이스 모듈(218)은 화소 데이터(프레임 버퍼(216)로부터 수신되거나, 프레임 버퍼 제어 모듈(214)로부터 직접 수신됨)의 인터페이스를 제공할 수 있다. 또한, 통신 인터페이스 모듈(218)은 (인터페이스를 통해) 디스플레이 디바이스에 의해 제공되는 제어 정보를 수신할 수 있다. 이러한 제어 데이터는 디스플레이 디바이스가 프레임 버퍼를 구비하는지 여부를 나타낼 수 있다. 실시예에서, 제어 데이터는 EDID(extended display identification data) 구조 등과 같이 .디스플레이 디바이스의 용량을 기술하는 데이터 구조의 형태를 가질 수 있다 그러나 다른 데이터 형식도 이용될 수 있다.
도 2에 도시된 바와 같이, 통신 인터페이스 모듈(218)은 프레임 버퍼 제어 모듈(214)에 이와 같은 제어 정보를 제공한다. 예를 들면, 도 2는 프레임 버퍼 제어 모듈(214)에 프레임 버퍼 표시부(222) 및 인터페이스 용량 표시부(224)를 제공하는 통신 인터페이스 모듈(218)을 도시한다. 프레임 버퍼 표시부(222)는 디스플레이 디바이스가 프레임 버퍼를 포함하는지 여부를 나타낸다. 인터페이스 용량 표시부(224)는 디스플레이 디바이스와 연결된 처리 플랫폼의 인터페이스의 용량("대역폭")을 나타낸다. 실시예에서, 이 표시부는 인터페이스 타입(예를 들면 USB 1.0, USB 2.0, USB 3.0 등)을 지정할 수 있다. 그러나 다른 용량의 지정도 사용 가능하다.
이러한 표시부에 기초하여, 프레임 버퍼 제어 모듈(214)은 생성된 프레임 데이터를 처리할 방법을 결정한다. 예를 들어, 접속된 디스플레이 디바이스가 통합형 프레임 버퍼를 구비하지 않는다면, 생성된 프레임 데이터를 프레임 버퍼(216) 내에 국부적으로 저장한다. 따라서 이러한 국부 저장된 프레임 데이터는 종래의 디스플레이 인터페이스 기법(예를 들면, VGA, DVI, HDMI, DP, 텔레비전 등)에 따라서 디스플레이 디바이스로 송신될 수 있다.
이와는 대조적으로 접속된 디스플레이 디바이스가 통합형 프레임 버퍼를 구비한다면, 프레임 버퍼 제어 모듈(214)은 그 통합형 프레임 버퍼에 저장하기 위해 (인터페이스 모듈(214) 및 접속된 인터페이스를 통해) 디스플레이 디바이스로 프레임 데이터(예를 들면, "델타" 또는 이전 프레임과의 차이값)를 송신한다. 이 프레임 데이터는 인터페이스의 용량에 기초하여 송신된다. 예를 들면, 고용량 인터페이스에서 프레임 데이터(예를 들면, 델타)는 비압축 형태로 송신될 수 있다. 그러나 저용량 인터페이스에서 프레임 데이터(예를 들면, 델타)는 압축 형태로 송신될 수 있다. 그러나 실시예는 이 예시로 한정되지 않는다.
더욱이 프레임 버퍼 제어 모듈(214)은 인터페이스를 거쳐 (통신 인터페이스 모듈(218)을 통해) 송신될 프레임 데이터를 암호화할 수 있다. 처리 플랫폼과 디스플레이 디바이스 사이의 인터페이스에 의해 사용되는 표준 암호화 메커니즘 등과 같은 다양한 암호화 기법이 이용될 수 있다. 따라서 디스플레이 디바이스(예를 들면, 그 제어 모듈)는 수신된 이 데이터를 복호화(decrypt)할 수 있다.
도 3은 논리 흐름(300)을 나타내내는 도면으로서, 하나 이상의 실시예에 의해 실행되는 동작을 나타낼 수 있다. 이 흐름은 하나 이상의 그래픽 파이프라인을 구비한 처리 플랫폼과, 하나 이상의 프레임 버퍼를 구비한 디스플레이 디바이스를 포함한다. 따라서 이 흐름은 도 1의 구성 요소에 의해 실행될 수 있다. 그러나 실시예는 이 내용으로 한정되지 않는다. 도 3은 특정 시퀀스를 도시하였으나 다른 시퀀스도 이용될 수 있다. 또한, 도시된 동작은 여러 병렬 또는 순차 조합으로 실행될 수 있다.
블록(302)에서, 처리 플랫폼(예를 들면, 처리 플랫폼(101) 등)은 디스플레이 디바이스가 통합형 프레임 버퍼를 구비하는지 여부를 결정한다. 실시예에서, 이것은 디스플레이 디바이스로부터 제어 정보(예를 들면 EDID 등)를 수신하는 것을 포함할 수 있다. 그 결과가 "예"라면, 동작은 블록(304)으로 진행된다. 그 결과가 "아니오"라면, 동작은 블록(308)으로 진행된다.
블록(304)에서, 처리 플랫폼은 인터페이스의 용량(대역폭)을 결정한다. 이것에 기초하여, 처리 플랫폼은 블록(306)에서 프레임 데이터의 전송 방식을 결정한다. 예를 들어, 저용량이라면 처리 플랫폼은 프레임 데이터의 압축 전송 방식을 사용하도록 결정할 것이다. 그러나 고용량이라면 처리 플랫폼은 프레임 데이터의 비압축 전송 방식을 사용하도록 결정할 것이다.
실시예에서, 용량은 사용된 인터페이스의 유형에 의해 결정될 수 있다. 예컨대, USB 1.0 및 USB 2.0 인터페이스는 저용량 인터페이스(압축 전송 방식을 사용하게 됨)로 간주될 수 있다. 반대로 USB 3.0 및 LAN(예를 들면, 이더넷) 인터페이스는 고용량 인터페이스(비압축 전송 방식을 사용하게 됨)로 간주될 수 있다. 그러나 실시예는 이러한 예시로 한정되지 않는다.
따라서 블록(307)에서, 처리 플랫폼은 프레임 데이터를 생성하고 선택된 전송 방식에 따라서 프레임 데이터를 인터페이스를 통해 디스플레이로 전송한다.
상술된 바와 같이, 블록(308)은 디스플레이 디바이스가 통합형 프레임 버퍼를 구비하지 않는 경우에 실행된다. 따라서 블록(308)에서, 처리 플랫폼은 프레임 데이터를 생성하고 자체의 프레임 버퍼 내에 그것을 저장한다. 도 2의 내용을 고려하면, 이것은 프레임 버퍼(216) 내의 구현(200)에 의해 생성된 프레임 데이터를 저장하는 프레임 버퍼 제어 모듈(214)을 포함할 수 있다.
그 후에, 블록(310)이 실행되고 여기에서 처리 플랫폼은 종래의 디스플레이 인터페이스 기법(예를 들면, VGA, DVI, HDMI, DP, 텔레비전 등)에 따라서 국부 저장된 프레임 데이터를 디스플레이 디바이스로 송신한다.
상술된 바와 같이 실시예는 디스플레이 디바이스(디스플레이 디바이스(103) 등) 내에 다수의 프레임 버퍼를 제공할 수 있다. 예를 들면, 도 1은 프레임 버퍼(111a, 111b)를 구비한 디스플레이 디바이스(103)를 도시한다. 다수의 프레임 버퍼들 사이의 완벽한 격리가 유지될 수 있다. 따라서 디스플레이 디바이스 내의 각각의 프레임 버퍼는 다양한 처리 또는 동작에 할당될 수 있다. 예컨대, 각각의 프레임 버퍼는 특정 OS 또는 하나 이상의 특정 응용 프로그램에 할당될 수 있다. 또한 상술된 바와 같이 처리 플랫폼(처리 플랫폼(101) 등)은 다수의 그래픽 파이프라인을 포함할 수 있다. 실시예에서, 이러한 다수의 파이프라인 각각은 대응하는 디스플레이 디바이스 프레임 버퍼로 향할 수 있다.
도 4는 도 1과 관련하여 프레임 데이터의 예시적인 분포를 도시한다. 특히, 도 4는 프레임 버퍼(111a)에 프레임 데이터 스트림(420a)을 제공하는 그래픽 파이프라인(106a)과, 프레임 버퍼(111b)에 프레임 데이터 스트림(420b)을 제공하는 그래픽 파이프라인(106b)을 도시한다. 도 1을 참조하면, 이 프레임 데이터 스트림은 프레임 데이터(120) 및 제어 정보(122)의 일부분일 수 있다. 실시예에서, 프레임 데이터 스트림(420a, 420b)은 인터페이스(105)에 의해 제공된 서로 다른 접속부(예를 들면, 격리 접속부)를 통해 송신될 수 있다. 이와 다르게, 모든 프레임 데이터에 동일 접속부를 이용할 수도 있다. 그러나 이러한 접속부 내에서 프레임 데이터 전송은 그 소스(예를 들면, 처리 플랫폼)에 따라서 그 적절한 프레임 버퍼로 태그(tagged)된다. 사용된 태그 기법(tagging scheme)은 디스플레이 디바이스에서 사용자 선택을 통해 결정될 수 있다. 따라서 실시예에서, 격리는 디스플레이 디바이스(예를 들면, 디스플레이 디바이스 내의 제어 모듈)에 의해 획득될 수 있다.
프레임 데이터 스트림(420a, 420b)은 서로 다른 사용자 컨텍스트(예를 들면, 처리 플랫폼(101)의 서로 다른 처리 또는 동작)에 대응할 수 있다. 예를 들면, 프레임 데이터 스트림(420)은 처리 플랫폼(101)에서 실행되는 제 1 운영 시스템의 처리(예를 들면, 응용 프로그램)에 대응할 수 있는 반면, 프레임 데이터 스트림(422)은 처리 플랫폼(101)에서 실행되는 제 2 운영 시스템의 처리(예를 들면, 응용 프로그램)에 대응할 수 있다. 또한, 프레임 데이터 스트림(420)은 하나 이상의 응용 프로그램으로 된 제 1 그룹에 대응하는 반면, 프레임 데이터 스트림(422)은 하나 이상의 응용 프로그램으로 된 제 2 그룹에 대응할 수 있다. 이러한 응용 프로그램의 그룹은 하나 이상의 운영 시스템 사이에서 임의의 방식으로 분포될 수 있다. 실시예에서, 특정 응용 프로그램 또는 운영 시스템은 그 대응하는 프레임 버퍼를 인식하고만 있을 수도 있다.
실시예는 프레임 데이터 스트림 사이의 격리를 제공할 수 있다. 이 격리는 인터페이스에 의해 제공된 다수의 접속부를 통해 제공될 수 있다. 예컨대, USB 인터페이스와 관련하여, 각각의 프레임 데이터 스트림(및 그 대응하는 제어 정보)은 하나 이상의 USB 파이프를 통해 상호 교환될 수 있다. 그러나 다른 인터페이스 및/또는 격리 기법도 사용할 수 있다. 더욱이 디스플레이 디바이스(103) 내의 각각의 프레임 버퍼는 특정 프레임 데이터 스트림에 대해 "잠금(locked)" 상태가 되어 적절한 사용자 자격 증명이 없으면 재할당될 수 없게 한다.
이 접근법은 디스플레이 디바이스에 표시되는 서로 다른 컨텐츠 사이에서 사용자가 전후로 전환할 수 있게 하는 편리한 방법을 제공할 수 있어 유용하다. 또한, 이 접근법은 개인 컨텐츠에 대한 안전한 경로를 제공한다. 예컨대, 이 접근법은 안전한 OS 및 사용자 OS가 모니터(디스플레이 디바이스)를 공유할 수 있게 한다. 더욱이ㅣ 이 접근법은 복잡한 메모리 스와핑(swapping) 또는 매핑없이도 환경 사이의 빠른 전환을 허용할 수 있다.
도 5는 논리 흐름(500)을 도시하는 도면으로서, 하나 이상의 실시예에 의해 실행되는 동작을 나타낼 수 있다. 이 흐름은 처리 플랫폼 및 디스플레이 디바이스를 포함한다. 따라서 이 흐름은 도 1에 도시된 구성 요소에 의해 실행될 수 있다. 그러나 실시예는 이 내용으로 한정되지 않는다. 도 5는 특정 시퀀스를 도시하였으나 다른 시퀀스도 이용될 수 있다. 또한, 도시된 동작은 여러 병렬 또는 순차 조합으로 실행될 수 있다.
블록(502)에서 사용자는 처리 플랫폼의 동작을 디스플레이 디바이스 내의 복수의 프레임 버퍼에 할당하는 것을 결정한다. 예를 들면, 사용자는 제 1 운영 시스템의 처리를 제 1 프레임 버퍼에 할당하고, 제 2 운영 시스템의 처리를 제 2 프레임 버퍼에 할당할 수 있다.
블록(504)에서, 각 할당마다 프레임 버퍼와의 격리형 접속부가 형성된다. 예컨대, 각 할당마다 하나 이상의 USB 파이프가 형성될 수 있다. 이와 다르게, 각 할당마다 하나 이상의 인터넷 프로토콜(IP) 터널이 형성될 수 있다.
따라서 블록(506)에서, 할당된 동작에 대한 프레임 데이터는 그 대응 접속부를 거쳐 디스플레이 디바이스로 전송된다. 이 데이터는 블록(508)에서 디스플레이 디바이스 내의 할당된 프레임 버퍼에 수신 및 저장된다.
블록(510)에서, 사용자는 디스플레이에 의해 출력될 프레임 버퍼를 선택한다. 실시예에서, 이것은 사용자가 디스플레이 디바이스의 사용자 인터페이스와 상호 작용하는 것을 포함할 수 있다. 그러나 실시예는 이것으로 한정되지 않는다. 이 선택에 기초하여, 디스플레이 디바이스는 블록(512)에서 선택된 프레임 버퍼의 컨텐츠를 출력한다. 도 5에 도시된 바와 같이, 동작은 블록(510)으로 되돌아갈 수 있고 여기에서 사용자는 블록(512)에서 출력될 프레임 버퍼 선택을 변경한다.
상술된 바와 같이 실시예는 프레임 버퍼 및 비휘발성 저장 매체를 구비한 디스플레이 디바이스를 제공할 수 있다. 예를 들면, 도 1은 프레임 버퍼(111a, 111b) 및 비휘발성 저장 매체(114)를 포함한 디스플레이 디바이스(103)를 도시한다. 이 구성은 전력 상태의 효과적인 취급을 가능하게 한다. 예컨대, 저 전력 상태(예를 들면, 전력 절감 상태)로 전이될 때, 디스플레이 디바이스는 그 프레임 버퍼의 컨텐츠를 비휘발성 저장 매체에 저장할 수 있다. 이와 반대로 고 전력 상태로 되돌아갈 때, 디스플레이 디바이스는 저장된 컨텐츠를 그 프레임 버퍼에 다시 기록할 것이다.
이러한 구성은 종래의 접근법에서의 단점을 극복하므로 유리하다. 예를 들면, 종래의 접근법은 디스플레이 디바이스에 이러한 비휘발성 저장 매체를 제공하지 않았다. 더욱이 프레임 버퍼를 갖는 디스플레이 디바이스에 있어서 종래의 접근법은 대응하는 처리 플랫폼 내에 프레임 버퍼를 유지하지 않았다. 따라서 디스플레이 디바이스가 이러한 저 전력 상태(예를 들면, 전력 절감 상태)로 진입할 때, 처리 플랫폼은 디스플레이 디바이스로부터 프레임 버퍼 컨텐츠를 다시 판독하고, 그 자체의 비휘발성 저장 매체 내에 이 컨텐츠를 저장해야 할 것이다. 불행하게도, 이것은 에너지 및 시간을 과도하게 소모할 것이다.
도 6은 하나 이상의 실시예에 의해 실행되는 동작을 나타내는 논리 흐름(600)을 도시한다. 이 흐름은 처리 플랫폼, 하나 이상의 프레임 버퍼를 구비하는 디스플레이 디바이스 및 비휘발성 저장 매체를 포함한다. 따라서 이 흐름은 도 1에 도시된 구성 요소에 의해 실행될 수 있다. 그러나 실시예는 이 내용으로 한정되지 않는다. 도 6은 특정 시퀀스를 도시하였으나 다른 시퀀스도 이용될 수 있다. 또한, 도시된 동작은 여러 병렬 또는 순차 조합으로 실행될 수 있다.
블록(602)에서, 처리 플랫폼은 전력 상태 변동(예를 들면, 시스템 대기 상황)이 발생할 것인지 결정한다. 특히, 처리 플랫폼은 제 1 전력(고전력) 상태로부터 제 2 전력(저전력) 상태로의 전이가 발생할 것인지 결정한다. 이 결정은 하나 이상의 개시 조건(triggering conditions)(예를 들면, 사용자가 사용하지 않는 상태, 저 전원(low battery) 상태 등)이 발생한 것에 기초하여 이루어질 수 있다. 실시예에서, 시스템 대기 상황은 ACPI(Advanced Configuration and Power Interface) 명세에 따른 C3 또는 C4 대기 상태일 수 있다. 그러나 실시예는 이 예시적인 상태로 한정되지 않는다.
이 결정에 기초하여, 처리 플랫폼은 (블록(604)에서) 전력 상태 변경 지시어를 디스플레이 디바이스로 전송한다. 도 1과 관련하여 이러한 지시어는 제어 정보(122)로서 인터페이스(105)를 거쳐 교환될 수 있다.
디스플레이 디바이스는 블록(606)에서 이 지시어를 수신한다. 다음에 디스플레이 디바이스는 그 프레임 버퍼에 대한 작동 전력을 절감할 것인지 결정한다. 따라서 블록(608)에서, 디스플레이 디바이스는 이 버퍼의 컨텐츠(예를 들면, 프레임 데이터)를 그 비휘발성 저장 매체 내에 저장한다. 그 후에 디스플레이 디바이스는 블록(610)에서 지시된 전력 상태로 진입할 수 있다. 도 1과 관련하여, 블록(606-610)의 실행은 제어 모듈(112)에 의해 관리될 수 있다.
블록(612)에서, 처리 플랫폼은 추가 전력 상태 변동이 발생할 것인지를 결정한다. 특히, 처리 플랫폼은 제 2 전력(저전력) 상태에서 고 전력 상태로의 전이가 발생할 것인지 결정한다. 실시예에서, 제 1 전력 상태로 되돌아갈 수도 있다. 이와 다르게, 다른 고 전력 상태로 전이될 수도 있다.
따라서 블록(614)에서, 처리 플랫폼은 디스플레이 디바이스로 지시어를 송신한다. 도 1을 참조하면, 이 지시어는 인터페이스(105)를 통해 제어 정보(122)로서 송신될 수 있다.
디스플레이 디바이스는 블록(616)에서 이 지시어를 수신한다. 수신되면 디스플레이 디바이스는 블록(618)에서 그 프레임 버퍼에 작동 전력을 제공한다. 다음에, 블록(620)에서 디스플레이 디바이스는 저장된 컨텐츠를 비휘발성 메모리로부터 그 프레임 버퍼로 다시 복사한다. 따라서 프레임 데이터는 그 프레임 버퍼에 복원된다. 도 1과 관련하여, 블록(616-620)의 실행은 제어 모듈(112)에 의해 관리될 수 있다.
본 명세서에 설명된 바와 같이, 실시예는 통합형 프레임 버퍼를 구비한 디스플레이 디바이스를 제공할 수 있다. 이것은 로컬 디스플레이 프레임 메모리 내에 구현될 수 있다. 또한 실시예에서 디스플레이 디바이스(예를 들면, 디스플레이 디바이스(103))는 그 로컬 디스플레이 프레임 메모리에 대한 FMT(frame map table)를 구비할 수 있다. FMT는 단일 물리적 디스플레이로 매핑될 수 있는 다수의 독립 프레임 버퍼로 분할 될 수 있도록 이 메모리를 관리할 수 있다.
이 구성은 대형 디스플레이가 하나의 시각 화면으로서, 또는 다수의 독립적인 표시 화면을 제공하는 "분할 스크린"으로서 선택적으로 사용 가능하게 하므로 유리하다. 예컨대, 사용자는 독립된 디스플레이 화면을 획득하기 위해 스크린을 절반으로 분할(예를 들면 수평 또는 수직으로 분할)할 수 있다. 더욱이 사용자는 단일 디스플레이 화면 및 다수의 독립된 디스플레이 화면 사이에 동적으로 전환할 수 있다.
각각의 모니터가 업무용 시스템에 추가되면 50%만큼 생산성이 증가한다는 것이 알려져 있다. 따라서 이 구성은 사용자에게 하나의 모니터를 가지고 다중 모니터 화면을 획득할 수 있게 하므로 유리하다. 따라서 이 구성은 책상 위에 차지하는 공간을 줄여 유리하다.
또한, FMT는 디스플레이 프레임 메모리의 블록과 연결되어, 블록을 서로에 대해 보호하고 메모리가 서로 다른 운영 시스템, 응용 프로그램 및/또는 사용자에 할당될 수 있게 하는 태그 필드(tag field)를 포함할 수 있다.
실시예에서, FMT는 디스플레이 디바이스 상의 사용자 인터페이스를 통해 관리된다. FMT의 관리가 대응하는 처리 플랫폼(예를 들면, 처리 플랫폼(101))에 의해 제공되는 사용자 인터페이스와는 독립되기 때문에 이는 윈도우 환경과는 상이하다.
이러한 사용자 선택(예를 들면, 멀티 모니터 및 단일 모니터)은 상이한 출력 해상도를 가능하게 한다. 따라서 이 특성을 제공하기 위해서 디스플레이 디바이스는 이 구성 요소들을 접속하는 인터페이스(예를 들면, 인터페이스(105))를 통해 (사용자의 선택에 기초한) 해상도 정보를 처리 플랫폼에 공급한다. 이 해상도 정보는 EDID 데이터 구조 등과 같은 다양한 형태로 제공될 수 있다.
이 정보를 수신하면, 처리 플랫폼(예를 들면, 그 그래픽 파이프라인)은 적절한 해상도를 결정하고, 그 해상도에 따라서 프레임 데이터를 생성한다.
상술된 바와 같이, 도 1을 참조하면 디스플레이 디바이스(103)는 제 1 프레임 버퍼(111a) 및 제 2 프레임 버퍼(111b)를 제공하는 저장 매체(110)를 포함한다. 도 7은 FMT를 사용하는 다른 구성을 도시한다. 특히 도 7은 디스플레이 디바이스(103) 등과 같은 디스플레이 디바이스에서 사용될 수 있는 저장 매체(110')를 도시한다.
도 7에 도시된 바와 같이, 저장 매체(110')는 하나 이상의 프레임 버퍼를 제공하도록 탄력적으로 할당될 수 있는 프레임 버퍼 공간(702)을 포함한다. 이 탄력적 할당은 FMT(704)에 의해 결정된다. 예컨대, 도 7은 프레임 버퍼 공간(702)을 제 1 프레임 버퍼 부분(706) 및 제 2 프레임 버퍼 부분(708)에 할당하는 FMT(704)를 도시한다. 그러나 실시예에서, FMT(704)는 프레임 버퍼 공간(702)을 단일 프레임 버퍼 부분 또는 임의의 복수의 프레임 버퍼 부분으로 할당할 수 있다
도 8은 하나 이상의 실시예에 의해 실행되는 작동을 나타낼 수 있는 논리 흐름도(800)를 도시한다. 이 흐름도는 처리 플랫폼과, 하나 이상의 프레임 버퍼를 구비한 디스플레이 디바이스와, 비휘발성 저장 매체를 포함한다. 따라서 이 흐름은 도 1의 구성 요소에 의해 실행될 수 있다. 그러나 실시예는 이 내용으로 한정되지 않는다. 도 8은 특정 시퀀스를 도시하였으나 다른 시퀀스도 이용될 수 있다. 또한, 도시된 동작은 여러 병렬 또는 순차 조합으로 실행될 수 있다.
블록(802)에서 디스플레이 디바이스는 하나 이상의 디스플레이 데이터 스트림을 그 물리적 디스플레이로 출력하게 하는 사용자 선택을 수신한다. 예를 들면, 사용자 선택은 단일 프레임 데이터 스트림(단일 모니터 화면)을 출력하게 하는 것일 수 있다. 이와 다르게 사용자 선택은 다수의 프레임 데이터 스트림(다중 모니터 화면)을 출력하게 하는 것일 수 있다. 더욱이 사용자 선택은 출력 방식(예를 들면, 좌우(side-to-side), 상하(top-to-bottom) 경사 등)을 지정할 수 있다. 이 사용자 선택은 디스플레이 디바이스의 사용자 인터페이스(예를 들면, 도 1의 사용자 인터페이스(113) 등)를 통해 수신될 수 있다.
사용자 선택에 기초하여, 디스플레이 디바이스는 (블록(804)에서) 프레임 버퍼 저장부를 그 저장 매체 내에 할당한다. 예를 들면, 도 7과 관련하여 이 부분은 프레임 버퍼 공간(702) 내에 있을 수 있다. 또한 이 할당은 FMT의 생성을 포함할 수 있다.
블록(806)에서, 디스플레이 디바이스는 사용자 선택에 관한 정보를 처리 장치에 지시한다. 이 정보는 선택된 프레임 데이터 스트림을 나타낼 수 있다. 또한, 이 정보는 (사용자 선택에 기초한) 해상도 정보를 나타낼 수 있다. 실시예에서, 이 정보는 처리 플랫폼과 디스플레이 디바이스 사이의 인터페이스(예를 들면, 인터페이스(105))를 통해 송신될 수 있다.
블록(807)에서, 처리 플랫폼은 블록(806)에서 송신된 정보를 수신한다. 이 정보에 기초하여, 처리 플랫폼은 수신된 지시문에 따라서 (예를 들면 지시된 해상도에 따라서) 선택 프레임 데이터 스트림을 생성한다. 또한 처리 플랫폼은 인터페이스를 통해 선택된 프레임 데이터 스트림을 송신한다. 본 명세서에 설명된 바와 같이, 각각의 프레임 데이터 스트림은 인터페이스에 의해 제공된 대응 접속부(예를 들면, 격리 접속부)를 거쳐 송신될 수 있다.
디스플레이 디바이스는 블록(808)에서 선택된 프레임 데이터 스트림을 수신한다. 다음에 디스플레이 디바이스는 블록(810)에서 그 저장 매체의 대응하는 할당 부분에 프레임 데이터를 저장한다.
이것으로부터 디스플레이 디바이스는 블록(812)에서 사용자 선택에 따라 선택된 프레임 데이터 스트림을 출력한다.
본 명세서에 설명된 바와 같이, 하드웨어 요소, 소프트웨어 요소 또는 그 임의의 조합을 이용하여 다양한 실시예가 구현될 수 있다. 하드웨어 요소의 예시는 프로세서, 마이크로프로세서, 회로, 회로 부품(예를 들면, 트랜지스터, 저항, 캐패시터, 인덕터 등), 집적 회로, ASIC(application specific integrated circuits), PLD(programmable logic devices), DSP(digital signal processors), FPGA(field programmable gate array), 로직 게이트(logic gates), 레지스터, 반도체 장치, 칩, 마이크로칩, 칩셋(chip sets) 등을 포함할 수 있다.
소프트웨어의 예시는 may include 소프트웨어 부품, 프로그램, 응용 프로그램, 컴퓨터 프로그램, 응용 프로그램, 시스템 프로그램, 머신 프로그램, 운영 시스템 소프트웨어, 미들웨어(middleware), 펌웨어(firmware), 소프트웨어 모듈, 루틴, 서브루틴(subroutines), 함수, 방법, 절차, 소프트웨어 인터페이스, API(application program interfaces), 명령어 세트, 연산 코드, 컴퓨터 코드, 코드 세그먼트(code segments), 컴퓨터 코드 세그먼트, 워드, 값, 기호 또는 그 임의의 조합을 포함할 수 있다.
몇몇 실시예는 예를 들어, 머신에 의해 실행되면 머신이 실시예에 따른 방법 및/또는 동작을 실행하게 하는 명령어 또는 명령어 세트를 저장하는 실체적(tangible) 머신 판독 가능 매체(저장 매체) 또는 제조물을 이용하여 구현될 수 있다. 이러한 머신은 예를 들면, 임의의 적절한 처리 플랫폼, 연산 플랫폼, 컴퓨터 장치, 처리 장치, 컴퓨터 시스템, 처리 시스템, 컴퓨터, 프로세서 등을 포함할 수 있고, 하드웨어 및/또는 소프트웨어의 임의의 적합한 조합을 이용하여 구현될 수 있다.
머신 판독 가능 매체(저장 매체) 또는 제조물은 예를 들면, 임의의 적절한 타입의 메모리 유닛, 메모리 장치, 메모리 제조물, 메모리 매체, 저장 장치, 저장 제조물, 저장 매체 및/또는 저장 유닛을 포함할 수 있는데, 이들은 예를 들면, 메모리, 착탈식(removable) 또는 비착탈식(non-removable) 매체, 소거식(erasable) 또는 비소거식(non-erasable) 매체, 기록식(writeable) 또는 재기록식(re-writeable) 매체, 디지털 또는 아날로그 매체, 하드 디스크, 플로피 디스크, CD-ROM(Compact Disk Read Only Memory), CD-R(Compact Disk Recordable), CD-RW(Compact Disk Rewriteable), 광학 디스크, 자기 매체, 광자기(magneto-optical) 매체, 착탈식 메모리 카드 또는 디스크, 다양한 타입의 DVD(Digital Versatile Disk), 테이프, 카세트 등과 같다. 명령어는 임의의 적합한 고급, 저급, 객체 지향, 비주얼(visual), 컴파일(compiled) 및/또는 인터프리팅(interpreted) 프로그램 언어를 이용하여 구현되는 소스 코드, 컴파일(compiled) 코드, 변환 코드, 실행가능 코드, 정적(static) 코드, 동적(dynamic) 코드, 암호화 코드 및 등과 같은 임의의 적절한 타입의 코드를 포함할 수 있다.
몇몇 실시예는 "결합" 및 "접속" 및 그 파생 표현을 이용하여 설명될 수 있다. 이러한 용어는 서로에 대한 유의어로서 의도된 것이 아니다. 예를 들면, 몇몇 실시예는 2개 이상의 구성 요소가 서로에 대해 직접 물리적 접속 또는 전기적 접속을 이룬다는 것을 나타내기 위해 "접속" 및/또는 "결합" 용어를 이용하여 설명할 수 있다. 그러나 "결합"이라는 용어는 또한 2개 이상의 구성 요소가 직접 접속하고 있지는 않지만 서로 협동 또는 상호 작용한다는 것을 의미할 수도 있다.
본 발명의 여러 실시예가 상술되어 있으나, 이것은 오로지 예시로서 제시된 것이고 제한 사항이 아님을 이해할 것이다. 따라서 당업자라면 본 발명의 정신 및 범주를 벗어나지 않으면서 본 발명에서 형태 및 세부 사항에 대한 다양한 변경이 이뤄질 수 있다는 것을 이해할 것이다. 따라서 본 발명의 범위 및 범주는 상술된 예시적인 실시예 중 어느 것에도 한정되지 않고 오로지 이하의 청구항 및 그 등가물에 의해서만 정의되어야 한다.

Claims (20)

  1. 그래픽 입력 데이터로부터 프레임 데이터를 생성하는 그래픽 렌더링 엔진(graphic rendering engine)과,
    결합형 디스플레이 디바이스(coupled display device)가 프레임 버퍼를 포함하는지 여부를 결정하는 프레임 버퍼 제어 모듈을 포함하며,
    상기 결합형 디스플레이 디바이스가 프레임 버퍼를 포함하면, 상기 프레임 버퍼 제어 모듈은 로컬 프레임 버퍼 내로의 상기 프레임 데이터 저장을 바이패스하고, 상기 프레임 데이터를 상기 결합형 디스플레이 디바이스로 송신하는
    장치.
  2. 제 1 항에 있어서,
    상기 프레임 데이터는 현재 프레임과 이전 프레임 사이의 차이 데이터를 포함하는
    장치.
  3. 제 1 항에 있어서,
    상기 프레임 버퍼 제어 모듈은 상기 결합형 디스플레이 디바이스와의 통신 인터페이스의 하나 이상의 특성에 기초하여 압축 송신 방식과 비압축 송신 방식 중에 선택하는
    장치.
  4. 제 3 항에 있어서,
    상기 통신 인터페이스의 상기 하나 이상의 특성은 상기 통신 인터페이스의 용량을 포함하는
    장치.
  5. 제 3 항에 있어서,
    상기 통신 인터페이스를 통해 상기 결합형 디스플레이 디바이스로 상기 프레임 데이터를 전송하는 통신 인터페이스 모듈을 더 포함하는
    장치.
  6. 제 3 항에 있어서,
    상기 통신 인터페이스는 USB(Universal Serial Bus) 인터페이스인
    장치.
  7. 제 3 항에 있어서,
    상기 통신 인터페이스는 LAN(local area network) 인터페이스인
    장치.
  8. 제 1 항에 있어서,
    상기 프레임 버퍼 제어 모듈은 상기 디스플레이 디바이스로 송신될 상기 프레임 데이터를 암호화하는
    장치.
  9. 그래픽 입력 데이터로부터 프레임 데이터를 생성하는 단계와,
    디스플레이 디바이스가 프레임 버퍼를 포함하는지를 결정하는 단계와,
    상기 프레임 버퍼 내에 저장할 상기 프레임 데이터를 상기 디스플레이 디바이스로 송신하는 단계를 포함하며,
    상기 송신 단계는 로컬 프레임 버퍼 내로의 상기 프레임 데이터 저장을 바이패스하는 단계를 포함하는
    방법.
  10. 제 9 항에 있어서,
    상기 프레임 데이터는 현재 프레임과 이전 프레임 사이의 차이 데이터를 포함하는
    방법.
  11. 제 9 항에 있어서,
    상기 송신 단계는 통신 인터페이스를 통해 상기 프레임 데이터를 상기 디스플레이 디바이스로 전송하는 단계를 포함하는
    방법.
  12. 제 11 항에 있어서,
    상기 통신 인터페이스를 거쳐 송신될 상기 프레임 데이터를 암호화하는 단계를 더 포함하는
    방법.
  13. 제 11 항에 있어서,
    상기 통신 인터페이스의 하나 이상의 특성에 기초하여 압축 송신 방식과 비압축 송신 방식 중에 선택하는 단계를 더 포함하는
    방법.
  14. 제 11 항에 있어서,
    상기 통신 인터페이스의 상기 하나 이상의 특성은 상기 통신 인터페이스의 용량을 포함하는
    방법.
  15. 머신 액세스 가능 기록 매체에 있어서,
    상기 머신 액세스 가능 기록 매체는 머신에 의해 실행될 때 상기 머신으로 하여금,
    그래픽 입력 데이터로부터 프레임 데이터를 생성하는 것과,
    디스플레이 디바이스가 프레임 버퍼를 포함하는지를 결정하는 것과,
    상기 프레임 버퍼 내에 저장할 상기 프레임 데이터를 상기 디스플레이 디바이스로 송신하는 것을 수행하도록 하는 명령어를 저장하고,
    상기 송신하는 것은 로컬 프레임 버퍼 내로의 상기 프레임 데이터 저장을 바이패스하는 것을 포함하는
    머신 액세스 가능 기록 매체.
  16. 제 15 항에 있어서,
    상기 프레임 데이터는 현재 프레임과 이전 프레임 사이의 차이 데이터를 포함하는
    머신 액세스 가능 기록 매체.
  17. 제 15 항에 있어서,
    상기 명령어는 상기 머신에 의해 실행될 때 상기 머신으로 하여금 통신 인터페이스를 통해 상기 디스플레이 디바이스에 상기 프레임 데이터를 전송하게 하는 것을 더 수행하게 하는
    머신 액세스 가능 기록 매체.
  18. 제 17 항에 있어서,
    상기 명령어는 상기 머신에 의해 실행될 때, 상기 머신으로 하여금 상기 통신 인터페이스를 통해 송신될 상기 프레임 데이터를 암호화하는 것을 더 수행하게 하는
    머신 액세스 가능 기록 매체.
  19. 제 17 항에 있어서,
    상기 명령어는 상기 머신에 의해 실행될 때, 상기 머신으로 하여금 상기 통신 인터페이스의 하나 이상의 특성에 기초하여 압축 송신 방식과 비압축 송신 방식 중에 선택하는 것을 더 수행하게 하는
    머신 액세스 가능 기록 매체.
  20. 처리 플랫폼과, 디스플레이 디바이스를 포함하는 시스템으로서,
    상기 처리 플랫폼은 그래픽 입력 데이터로부터 프레임 데이터를 생성하는 그래픽 렌더링 엔진과, 상기 디스플레이 디바이스가 프레임 버퍼를 포함하는지를 결정하는 프레임 버퍼 제어 모듈을 포함하고,
    상기 디스플레이 디바이스가 프레임 버퍼를 포함하는 경우, 상기 프레임 버퍼 제어 모듈은 로컬 프레임 버퍼 내로의 상기 프레임 데이터 저장을 바이패스하고, 상기 디스플레이 디바이스에 상기 프레임 데이터를 송신하는
    시스템.
KR1020100134954A 2009-12-30 2010-12-24 디스플레이 데이터 관리 장치, 방법, 제조물 및 시스템 KR101232428B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/655,379 2009-12-30
US12/655,379 US8760459B2 (en) 2009-12-30 2009-12-30 Display data management techniques

Publications (2)

Publication Number Publication Date
KR20110079523A KR20110079523A (ko) 2011-07-07
KR101232428B1 true KR101232428B1 (ko) 2013-02-12

Family

ID=43827302

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100134954A KR101232428B1 (ko) 2009-12-30 2010-12-24 디스플레이 데이터 관리 장치, 방법, 제조물 및 시스템

Country Status (7)

Country Link
US (1) US8760459B2 (ko)
EP (1) EP2360574A3 (ko)
JP (1) JP5313225B2 (ko)
KR (1) KR101232428B1 (ko)
CN (1) CN102117191B (ko)
RU (1) RU2511637C2 (ko)
TW (1) TWI512604B (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8736618B2 (en) * 2010-04-29 2014-05-27 Apple Inc. Systems and methods for hot plug GPU power control
BR112014015642A8 (pt) * 2011-12-21 2017-07-04 Intel Corp compressão sem perda perceptiva de dados de imagem para transmissão em interconexões de vídeo não comprimido
WO2014084416A1 (ko) * 2012-11-28 2014-06-05 Lee Eun-Suk 착탈식 패널을 갖는 다중 디스플레이 장치를 채용한 일체형 컴퓨터
US9165538B2 (en) * 2013-03-13 2015-10-20 Displaylink (Uk) Limited Image generation
TWI574250B (zh) * 2013-08-12 2017-03-11 威盛電子股份有限公司 影像傳送裝置及其影像處理方法
US9952996B2 (en) * 2014-10-15 2018-04-24 Icron Technologies Corporation Devices and methods for providing concurrent superspeed communication and four-lane displayport communication via a USB type-C receptacle
US10169286B2 (en) 2014-10-21 2019-01-01 Icron Technologies Corporation Devices and methods for providing reduced bandwidth DisplayPort communication
US10102131B2 (en) 2015-09-30 2018-10-16 Apple Inc. Proactive power management for data storage devices to reduce access latency
KR102491499B1 (ko) * 2016-04-05 2023-01-25 삼성전자주식회사 소모 전류를 줄이는 방법 및 전자 장치
KR101748630B1 (ko) * 2017-04-17 2017-06-20 주식회사 파미르 게임기기 영상과 이벤트 정보를 함께 저장하는 게임기기 감시 시스템 및 그 방법
US11954889B2 (en) 2019-07-31 2024-04-09 Xi'an Novastar Tech Co., Ltd. Method for processing data, and system, system controller and mudure controller
CN115473957B (zh) * 2021-06-10 2023-11-14 荣耀终端有限公司 一种图像处理方法和电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070049328A (ko) * 2005-11-08 2007-05-11 삼성전자주식회사 애플리케이션에 적합한 클럭 적용을 통한 소모 전력 감소방법 및 장치
KR20080079290A (ko) * 2005-12-29 2008-08-29 인텔 코포레이션 전력 효율 디스플레이를 위한 방법, 디스플레이, 그래픽시스템 및 컴퓨터 시스템

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5524249A (en) * 1994-01-27 1996-06-04 Compaq Computer Corporation Video subsystem power management apparatus and method
EP0884715A1 (en) * 1997-06-12 1998-12-16 Hewlett-Packard Company Single-chip chipset with integrated graphics controller
JP2000028374A (ja) * 1998-07-13 2000-01-28 Sumitomo Electric Ind Ltd 車載ナビゲーションシステム
JP4253881B2 (ja) * 1998-07-17 2009-04-15 ソニー株式会社 撮像装置
EP1081739B1 (en) * 1999-03-05 2010-06-02 Canon Kabushiki Kaisha Image forming device
US7704147B2 (en) * 1999-10-06 2010-04-27 Igt Download procedures for peripheral devices
US6970173B2 (en) * 2001-09-14 2005-11-29 Ati Technologies, Inc. System for providing multiple display support and method thereof
US7589737B2 (en) * 2001-10-31 2009-09-15 Hewlett-Packard Development Company, L.P. System and method for communicating graphics image data over a communication network
BRPI0205818B1 (pt) * 2001-12-04 2015-06-02 Microsoft Corp Método, meio e dispositivo para criptograficamente proteger conteúdo de segurança
US7019752B1 (en) * 2003-06-04 2006-03-28 Apple Computer, Inc. Method and apparatus for frame buffer management
US7868890B2 (en) 2004-02-24 2011-01-11 Qualcomm Incorporated Display processor for a wireless device
US20050195205A1 (en) * 2004-03-03 2005-09-08 Microsoft Corporation Method and apparatus to decode a streaming file directly to display drivers
EP1768404A4 (en) * 2004-07-06 2010-04-21 Panasonic Corp OPTICAL DEVICE, PLAYING DEVICE, PROGRAM AND PLAYING PROCESS
US20060119602A1 (en) * 2004-12-07 2006-06-08 Fisher Andrew J Address based graphics protocol
CN101120333A (zh) * 2005-01-05 2008-02-06 戴维克斯股份有限公司 用于远程用户界面的系统和方法
US20060168526A1 (en) 2005-01-12 2006-07-27 Nokia Corporation Platform-specific application user interface remoting
KR100668085B1 (ko) * 2005-01-13 2007-01-11 삼성전자주식회사 호스트 디바이스, 디스플레이 시스템 및 dpvl 패킷생성방법
US20060164328A1 (en) * 2005-01-24 2006-07-27 Microsoft Corporation Method and apparatus for wireless display monitor
US20080143731A1 (en) * 2005-05-24 2008-06-19 Jeffrey Cheng Video rendering across a high speed peripheral interconnect bus
EP1762928A1 (en) 2005-09-09 2007-03-14 Agilent Technologies, Inc. Graphics device comprising remote transfer controller for remote visualization
US7397478B2 (en) * 2005-09-29 2008-07-08 Intel Corporation Various apparatuses and methods for switching between buffers using a video frame buffer flip queue
US20080186319A1 (en) * 2007-02-05 2008-08-07 D.S.P. Group Ltd. Dynamically activated frame buffer
JP4810548B2 (ja) * 2008-02-07 2011-11-09 株式会社東芝 サーバ装置、更新画像検出方法およびプログラム
US20090300489A1 (en) * 2008-06-03 2009-12-03 Palm, Inc. Selective access to a frame buffer
KR101501167B1 (ko) * 2008-10-20 2015-03-10 삼성전자주식회사 다중 모뎀을 구비한 이동통신 단말기에서 다중 운용 체제를운용하기 위한 장치 및 방법
US8767820B2 (en) * 2009-11-11 2014-07-01 Dell Products, Lp Adaptive display compression for wireless transmission of rendered pixel data

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070049328A (ko) * 2005-11-08 2007-05-11 삼성전자주식회사 애플리케이션에 적합한 클럭 적용을 통한 소모 전력 감소방법 및 장치
KR20080079290A (ko) * 2005-12-29 2008-08-29 인텔 코포레이션 전력 효율 디스플레이를 위한 방법, 디스플레이, 그래픽시스템 및 컴퓨터 시스템

Also Published As

Publication number Publication date
EP2360574A3 (en) 2012-01-25
US20110157201A1 (en) 2011-06-30
CN102117191B (zh) 2015-11-25
RU2511637C2 (ru) 2014-04-10
EP2360574A2 (en) 2011-08-24
RU2010153236A (ru) 2012-06-27
TW201207723A (en) 2012-02-16
TWI512604B (zh) 2015-12-11
JP5313225B2 (ja) 2013-10-09
JP2011138501A (ja) 2011-07-14
CN102117191A (zh) 2011-07-06
US8760459B2 (en) 2014-06-24
KR20110079523A (ko) 2011-07-07

Similar Documents

Publication Publication Date Title
KR101232428B1 (ko) 디스플레이 데이터 관리 장치, 방법, 제조물 및 시스템
US9904977B2 (en) Exploiting frame to frame coherency in a sort-middle architecture
TWI281639B (en) Method for managing state variables for rendering primitives, apparatus for rendering a scene including primitives, and machine readable medium
US20110292060A1 (en) Frame buffer sizing to optimize the performance of on screen graphics in a digital electronic device
US9883137B2 (en) Updating regions for display based on video decoding mode
EP3964949B1 (en) Graphics processing method and apparatus
US8736617B2 (en) Hybrid graphic display
US20200020067A1 (en) Concurrent binning and rendering
CN112740278B (zh) 用于图形处理的方法及设备
US12027087B2 (en) Smart compositor module
CN113050899A (zh) 一种基于Wayland协议的视频和UI的drm直接显示方法及系统
US10249269B2 (en) System on chip devices and operating methods thereof
US8319780B2 (en) System, method, and computer program product for synchronizing operation of a first graphics processor and a second graphics processor in order to secure communication therebetween
CN114697555B (zh) 一种图像处理方法、装置、设备及存储介质
US20200380745A1 (en) Methods and apparatus for viewpoint visibility management
WO2023225771A1 (en) Concurrent frame buffer composition scheme
US20200279433A1 (en) Methods and apparatus for gpu tile clearance
CN112925592A (zh) 渲染主页面的内核软件驱动的颜色重新映射
KR20230053597A (ko) 이미지-공간 함수 전송
CN116490917A (zh) 用于覆盖合成的平面规划

Legal Events

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

Payment date: 20160127

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170201

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180201

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190129

Year of fee payment: 7