KR102354712B1 - Display controller - Google Patents

Display controller Download PDF

Info

Publication number
KR102354712B1
KR102354712B1 KR1020150081038A KR20150081038A KR102354712B1 KR 102354712 B1 KR102354712 B1 KR 102354712B1 KR 1020150081038 A KR1020150081038 A KR 1020150081038A KR 20150081038 A KR20150081038 A KR 20150081038A KR 102354712 B1 KR102354712 B1 KR 102354712B1
Authority
KR
South Korea
Prior art keywords
display
stage
output surface
operable
display controller
Prior art date
Application number
KR1020150081038A
Other languages
Korean (ko)
Other versions
KR20150141892A (en
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 KR20150141892A publication Critical patent/KR20150141892A/en
Application granted granted Critical
Publication of KR102354712B1 publication Critical patent/KR102354712B1/en

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
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/363Graphics controllers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/003Details of a display terminal, the details relating to the control arrangement of the display terminal and to the interfaces thereto
    • 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/12Synchronisation between the display unit and other units, e.g. other display units, video-disc players
    • 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/39Control of the bit-mapped memory
    • G09G5/393Arrangements for updating the contents of the bit-mapped memory
    • 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/39Control of the bit-mapped memory
    • G09G5/395Arrangements specially adapted for transferring the contents of the bit-mapped memory to the screen
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/02Handling of images in compressed format, e.g. JPEG, MPEG
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/04Changes in size, position or resolution of an image
    • G09G2340/0407Resolution change, inclusive of the use of different resolutions for different screen areas
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/04Changes in size, position or resolution of an image
    • G09G2340/0492Change of orientation of the displayed image, e.g. upside-down, mirrored
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/12Overlay of images, i.e. displayed pixel being the result of switching between the corresponding input pixels
    • 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/02Graphics controller able to handle multiple formats, e.g. input or output formats
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/06Use of more than one graphics processor to process data before displaying to one or more screens
    • 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/12Frame memory handling
    • G09G2360/128Frame memory using a Synchronous Dynamic RAM [SDRAM]
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Graphics (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Control Of Indicators Other Than Cathode Ray Tubes (AREA)

Abstract

디스플레이 컨트롤러는, 적어도 하나의 입력 표면(surface)을 판독하도록 동작 가능한 입력 스테이지(20), 합성 출력 표면을 생성하기 위하여 복수의 입력 표면을 합성하도록 동작 가능한 합성 스테이지(28), 디스플레이를 위하여 합성 출력 표면을 디스플레이에 제공하도록 동작 가능한 출력 스테이지(30), 합성 스테이지(28)에 의해 생성된 합성 출력 표면을 스케일링하도록 동작 가능한 스케일링 엔진(31) 및 합성되고 그리고/또는 스케일링된 출력 표면을 외부 메모리에 기록하도록 동작 가능한 기록 스테이지(32)를 포함한다.The display controller includes an input stage 20 operable to read at least one input surface, a compositing stage 28 operable to synthesize a plurality of input surfaces to generate a composite output surface, and a composite output for display. an output stage 30 operable to provide a surface to a display, a scaling engine 31 operable to scale the composite output surface generated by the compositing stage 28 and to external memory the synthesized and/or scaled output surface. and a recording stage 32 operable to record.

Figure R1020150081038
Figure R1020150081038

Description

디스플레이 컨트롤러{DISPLAY CONTROLLER}display controller {DISPLAY CONTROLLER}

본 발명은 데이터 처리 시스템을 위한 디스플레이 컨트롤러에 관한 것이다.The present invention relates to a display controller for a data processing system.

본 발명이 속하는 기술 분야에서 알려진 바와 같이, 데이터 처리 시스템에서, 사용자에게 디스플레이될 이미지는 디스플레이를 위하여 데이터 처리 시스템에 의해 처리된다. 디스플레이를 위한 이미지는 일반적으로 사용자에게 디스플레이되기 전에 다수의 처리 스테이지에 의해 처리된다. 예를 들어, 이미지는 디스플레이를 위하여 디스플레이의 이른바 "디스플레이 컨트롤러(display controller)"에 의해 처리될 것이다.As is known in the art to which the present invention pertains, in a data processing system, an image to be displayed to a user is processed by the data processing system for display. Images for display are typically processed by a number of processing stages before being displayed to a user. For example, the image may be processed for display by the so-called "display controller" of the display.

일반적으로, 디스플레이 컨트롤러는 (예를 들어, 내부 DMA(Direct Memory Access)에 의해) 데이터 어레이로서 이미지를 저장하는 메모리 내의 이른바 프레임 버퍼(frame buffer)"로부터 디스플레이될 출력 이미지를 판독하고 (예를 들어, 픽셀 파이프라인(pipeline)을 통해) (예를 들어, 스크린 또는 프린터일 수 있는) 디스플레이에 이미지 데이터를 적합하게 제공할 것이다. 출력 이미지는, 예를 들어, 그래픽 프로세서에 의해, 메모리 내의 프레임 버퍼에 저장되고, 디스플레이에 대하여 준비가 될 때 디스플레이 컨트롤러는 프레임 버퍼를 판독하고 디스플레이를 위하여 이를 디스플레이에 제공할 것이다.In general, the display controller reads the output image to be displayed from a so-called frame buffer in memory that stores the image as a data array (eg by internal direct memory access (DMA)) and (eg by internal direct memory access). , through a pixel pipeline) suitably provide image data to a display (which may for example be a screen or printer).The output image may be read into a frame buffer in memory, for example by a graphics processor, for example. stored in , and when ready for display the display controller will read the frame buffer and present it to the display for display.

디스플레이 컨트롤러는 프레임 버퍼로부터의 이미지를 처리하여, 이것이 그 디스플레이에 디스플레이되게 한다. 이 처리는, 이미지가 디스플레이에 정확하게 디스플레이되게 하도록, 적합한 디스플레이 타이밍 기능을 포함한다(예를 들어, 이는 적합한 수평 및 수직 블랭킹(blanking) 기간을 가지면서 디스플레이에 픽셀 데이터를 전송하도록 구성된다).The display controller processes the image from the frame buffer, causing it to be displayed on its display. This processing includes suitable display timing functions (eg, it is configured to send pixel data to the display while having suitable horizontal and vertical blanking periods), so that the image is correctly displayed on the display.

본 발명이 속하는 기술 분야에서 알려진 바와 같이, 프레임 버퍼 자체는 보통 논의가 되는 시스템의 이른바 "메인(main)" 메모리에 저장되고, 따라서, 이는 디스플레이 장치 및 디스플레이 컨트롤러의 외부에 있다. 따라서, 디스플레이를 위하여 프레임 버퍼로부터 데이터를 판독하는 것은 상대적으로 상당한 양의 전력과 메모리 대역폭을 소비할 수 있다.As is known in the art, the frame buffer itself is usually stored in the so-called "main" memory of the system in question, and thus it is external to the display device and display controller. Thus, reading data from the frame buffer for display can consume a relatively significant amount of power and memory bandwidth.

알려진 많은 전자 장치 및 시스템은 디스플레이 스크린 상에 비디오, 그래픽 유저 인터페이스 등과 같은 정보를 디스플레이하는 복수의 윈도우(또는 표면(surface))를 사용하여 디스플레이한다.Many known electronic devices and systems display using a plurality of windows (or surfaces) that display information, such as video, graphical user interfaces, and the like, on a display screen.

이러한 윈도우를 제공하는 일반적인 방법은, 개별 입력 윈도우(표면)가 적합하게 결합되고(즉, 합성되고) 결과가 이후에 디스플레이를 위하여 디스플레이 컨트롤러에 의해 판독되는 프레임 버퍼로 기록되는 합성 윈도우 시스템(compositing window system)을 이용하는 것이다.A common method of providing such windows is a compositing window system in which the individual input windows (surfaces) are suitably combined (i.e., composited) and the results written to a frame buffer which is then read by the display controller for display. system) is used.

이러한 합성 과정의 일례가 도 1에 도시된다. 이 과정에서, 입력 표면은 비디오 코덱(1) 및 그래픽 처리 유닛(2)에 의해 생성되고, 메인 메모리(3)(예를 들어, 프레임 버퍼 0, 1 및 2) 내에 저장된다. 저장된 표면은 판독되어 합성 출력 프레임을 생성하도록 입력된 표면을 결합하는 합성 엔진(4)으로 전달된다. 또한, 예시된 예에서, 합성 엔진(4)은 비디오 코덱(1)으로부터의 입력 표면에 색 공간 변환(YUV에서 RGB로)과 스케일링 동작을 수행한다. 합성 출력 프레임은 메인 메모리(3)(예를 들어, 프레임 버퍼 3)에 저장된다. 저장된 합성 출력 프레임은 디스플레이 컨트롤러(5)에 의해 메모리(3)로부터 판독되고, 이는 디스플레이를 위하여 로컬 디스플레이(6)로 합성 출력 프레임을 전송한다.An example of such a synthesis process is shown in FIG. 1 . In this process, the input surface is created by the video codec 1 and the graphics processing unit 2 and stored in the main memory 3 (eg frame buffers 0, 1 and 2). The stored surfaces are read and passed to a compositing engine 4 that combines the input surfaces to produce a compositing output frame. Also in the illustrated example, the compositing engine 4 performs color space conversion (YUV to RGB) and scaling operations on the input surface from the video codec 1 . The composite output frame is stored in the main memory 3 (eg, frame buffer 3). The stored composite output frame is read from the memory 3 by the display controller 5 , which sends the composite output frame to the local display 6 for display.

종래의 미디어 처리 시스템이 도 2에 도시된다. 이는 중앙 처리 유닛(CUP)(7), 그래픽 처리 유닛(GPU)(2), 비디오 코덱(1), 합성 엔진(4), 디스플레이 컨트롤러(5) 및 메모리 컨트롤러(8)를 포함한다. 도 2에 도시된 바와 같이, 이들은 배선(9)을 통해 통신하고, 오프-칩(off-chip) 메인 메모리(3)에 대한 액세스를 가진다. 합성 엔진(4)은 (예를 들어, GPU(2) 및/또는 비디오 코덱(1)에 의해 생성된) 하나 이상의 입력 표면으로부터 합성 출력 프레임을 생성하고, 그 다음, 합성 출력 프레임은, 메모리 컨트롤러(8)를 통해, 오프-칩 메모리(3) 내의 프레임 버퍼 내에 저장된다. 그 다음, 디스플레이 컨트롤러(5)는 메모리 컨트롤러(8)를 통해 오프-칩 메모리(3) 내의 프레임 버퍼 내로부터 합성 출력 프레임을 판독하고, 이를 디스플레이를 위하여 디스플레이에 전송한다.A conventional media processing system is shown in FIG. 2 . It comprises a central processing unit (CUP) 7 , a graphics processing unit (GPU) 2 , a video codec 1 , a synthesis engine 4 , a display controller 5 and a memory controller 8 . As shown in FIG. 2 , they communicate via wiring 9 and have access to an off-chip main memory 3 . Compositing engine 4 generates composite output frames from one or more input surfaces (eg, generated by GPU 2 and/or video codec 1 ), which in turn generate composite output frames that are Through (8), it is stored in the frame buffer in the off-chip memory (3). Then, the display controller 5 reads the composite output frame from the frame buffer in the off-chip memory 3 via the memory controller 8 and sends it to the display for display.

본 출원인은 디스플레이 컨트롤러에 대한 개선의 여지가 있다는 것을 믿는다.Applicants believe that there is room for improvement in display controllers.

본 발명의 제1 양태에 따르면, 데이터 처리 시스템은,
메인 메모리;
제1 디스플레이;
디스플레이를 위하여 입력 표면들(surfaces)을 생성하여 상기 입력 표면들을 상기 메인 메모리에 저장하도록 동작 가능한 하나 이상의 처리 유닛; 및
제1 디스플레이 컨트롤러를 구비하고,
상기 제1 디스플레이 컨트롤러는,
According to a first aspect of the present invention, a data processing system comprises:
main memory;
a first display;
one or more processing units operable to generate input surfaces for display and store the input surfaces in the main memory; and
A first display controller is provided,
The first display controller,

상기 메인 메모리로부터 적어도 하나의 입력 표면을 판독하도록 동작 가능한 입력 스테이지;an input stage operable to read at least one input surface from the main memory;

하나 이상의 판독된 입력 표면들을 처리하여 출력 표면을 생성하도록 동작 가능한 처리 스테이지;a processing stage operable to process one or more read input surfaces to produce an output surface;

상기 처리 스테이지로부터 상기 생성된 출력 표면을 직접 수신하여 상기 생성된 출력 표면을 디스플레이를 위하여 상기 제1 디스플레이에 제공하도록 동작 가능하되, 디스플레이를 위하여 상기 출력 표면이 상기 제1 디스플레이에 의해 디스플레이되도록 동작 가능한 출력 스테이지; 및operable to receive the generated output surface directly from the processing stage and provide the generated output surface to the first display for display, wherein the output surface is operable to be displayed by the first display for display output stage; and

상기 처리 스테이지로부터 출력 표면을 직접 수신하여 상기 출력 표면을 상기 메인 메모리에 기록하도록 동작 가능한 기록 스테이지를 구비하고, 상기 제1 디스플레이 컨트롤러는 집적 회로를 구비하고, 상기 집적 회로는 상기 입력 스테이지와 상기 처리 스테이지를 포함하고, 상기 집적 회로는 상기 출력 스테이지와 상기 기록 스테이지를 포함하고, 상기 메인 메모리는 상기 집적 회로의 외부에 있고,
상기 데이터 처리 시스템은,
상기 메인 메모리로부터 상기 제1 디스플레이 컨트롤러에 의해 생성된 저장된 출력 표면을 판독하도록 동작 가능한 입력 스테이지; 및
디스플레이를 위하여 제2 디스플레이에 상기 판독된 출력 표면을 제공하도록 동작 가능한 출력 스테이지를 구비하는 제2 디스플레이 컨트롤러를 더 구비한다.
a write stage operable to directly receive an output surface from the processing stage and write the output surface to the main memory, the first display controller comprising an integrated circuit, the integrated circuit comprising the input stage and the processing a stage, wherein the integrated circuit includes the output stage and the write stage, wherein the main memory is external to the integrated circuit;
The data processing system,
an input stage operable to read a stored output surface generated by the first display controller from the main memory; and
and a second display controller having an output stage operable to provide the read output surface to a second display for display.

본 발명의 제2 양태에 따르면, 디스플레이 컨트롤러를 데이터 처리 시스템에서 동작시키는 방법에 있어서,
상기 데이터 처리 시스템은,
메인 메모리;
디스플레이;
디스플레이를 위하여 입력 표면들(surfaces)을 생성하여 상기 입력 표면들을 상기 메인 메모리에 저장하도록 동작 가능한 하나 이상의 처리 유닛; 및
제1 디스플레이 컨트롤러를 구비하고,
상기 제1 디스플레이 컨트롤러는,
상기 메인 메모리로부터 적어도 하나의 입력 표면을 판독하도록 동작 가능한 입력 스테이지;
하나 이상의 판독된 입력 표면들을 처리하여 출력 표면을 생성하도록 동작 가능한 처리 스테이지;
상기 처리 스테이지로부터 상기 출력 표면을 직접 수신하여 상기 출력 표면을 디스플레이를 위하여 상기 디스플레이에 제공하도록 동작 가능하되, 디스플레이를 위하여 상기 출력 표면이 상기 디스플레이에 의해 디스플레이되도록 동작 가능한, 출력 스테이지; 및
상기 처리 스테이지로부터 출력 표면을 직접 수신하여 상기 출력 표면을 상기 메인 메모리에 기록하도록 동작 가능한 기록 스테이지를 구비하고, 상기 제1 디스플레이 컨트롤러는 집적 회로를 구비하고, 상기 집적 회로는 상기 입력 스테이지와 상기 처리 스테이지를 구비하고, 상기 집적 회로는 상기 출력 스테이지와 상기 기록 스테이지를 구비하고, 상기 메인 메모리는 상기 집적 회로의 외부에 있고,
상기 데이터 처리 시스템은 제2 디스플레이 컨트롤러를 더 구비하고,
상기 제2 디스플레이 컨트롤러는,
상기 메인 메모리로부터 저장된 출력 표면을 판독하도록 동작 가능한 입력 스테이지; 및
상기 출력 표면을 디스플레이를 위하여 제2 디스플레이에 제공하도록 동작 가능한 출력 스테이지를 구비하고,
상기 방법은,
상기 제1 디스플레이 컨트롤러가,
According to a second aspect of the present invention, there is provided a method of operating a display controller in a data processing system,
The data processing system,
main memory;
display;
one or more processing units operable to generate input surfaces for display and store the input surfaces in the main memory; and
A first display controller is provided,
The first display controller,
an input stage operable to read at least one input surface from the main memory;
a processing stage operable to process one or more read input surfaces to produce an output surface;
an output stage operable to receive the output surface directly from the processing stage and provide the output surface to the display for display, wherein the output surface is operable to be displayed by the display for display; and
a write stage operable to directly receive an output surface from the processing stage and write the output surface to the main memory, the first display controller comprising an integrated circuit, the integrated circuit comprising the input stage and the processing a stage, wherein the integrated circuit has the output stage and the write stage, the main memory being external to the integrated circuit;
The data processing system further comprises a second display controller,
The second display controller,
an input stage operable to read a stored output surface from the main memory; and
an output stage operable to provide the output surface to a second display for display;
The method is
The first display controller,

상기 메인 메모리로부터 적어도 하나의 입력 표면을 판독하는 단계;reading at least one input surface from the main memory;

상기 적어도 하나의 입력 표면을 처리하여 출력 표면을 생성하는 단계;processing the at least one input surface to produce an output surface;

상기 생성된 출력 표면을 상기 디스플레이에 제공하는 단계; 및providing the generated output surface to the display; and

상기 생성된 출력 표면 또는 상기 생성된 출력 표면의 수정된 형태를 상기 메인 메모리에 기록하는 단계를 포함하고,
상기 제2 디스플레이 컨트롤러가, 상기 메인 메모리부터 상기 생성된 출력 표면 또는 상기 생성된 출력 표면의 상기 수정된 형태를 판독하여 디스플레이를 위하여 상기 제2 디스플레이에 제공하는 단계를 포함한다.
writing the generated output surface or a modified shape of the generated output surface to the main memory;
and reading, by the second display controller, the generated output surface or the modified form of the generated output surface from the main memory and providing it to the second display for display.

종래의 디스플레이 컨트롤러에서와 같이, 본 발명의 디스플레이 컨트롤러는 적어도 하나의 입력 표면(surface)(레이어)을 판독하고 디스플레이를 위하여 출력 표면을 디스플레이에 제공하기 위한 입력 스테이지 및 출력 스테이지를 포함한다. 그러나, 종래의 디스플레이 컨트롤러와 대조적으로, 본 발명의 디스플레이 컨트롤러는 출력 표면을 제공하기 위하여 입력 표면 또는 표면들을 처리하도록 동작 가능한 처리 스테이지와, 외부 메모리에 출력 표면을 기록하도록 동작 가능한 기록 스테이지를 더 포함한다.As in conventional display controllers, the display controller of the present invention includes an input stage and an output stage for reading at least one input surface (layer) and providing an output surface to the display for display. However, in contrast to conventional display controllers, the display controller of the present invention further comprises a processing stage operable to process the input surface or surfaces to provide an output surface, and a writing stage operable to write the output surface to an external memory. do.

기록 스테이지는 본 발명의 디스플레이 컨트롤러가, 예를 들어, 출력 표면이 디스플레이에 디스플레이되는 것과 동시에, 예를 들어 (프레임 버퍼와 같은) 외부 메모리에 출력 표면을 선택적으로 기록하도록 동작될 수 있다. 아래에서 더욱 완전하게 설명되는 바와 같이, 이것은 디스플레이 컨트롤러에 의해 수행될 수 있는 종류의 동작에서 더 큰 정도의 제어 및 유연성을 가능하게 할 수 있다. 더하여, 다양한 경우에, 본 발명의 디스플레이 컨트롤러는, 예를 들어, 외부 메모리로의 판독 및/또는 기록 횟수를 감소시켜, 전반적인 데이터 처리 시스템의 대역폭 소비를 감소시키는데 사용될 수 있다.The write stage may be operable such that the display controller of the present invention selectively writes the output surface to, for example, an external memory (such as a frame buffer) at the same time that the output surface is displayed on the display. As will be described more fully below, this may enable a greater degree of control and flexibility in the kinds of operations that may be performed by a display controller. In addition, in various cases, the display controller of the present invention can be used to reduce bandwidth consumption of the overall data processing system, for example by reducing the number of reads and/or writes to external memory.

(저전력의 데이터 처리 시스템 및 휴대용 장치에서, 외부 메모리로 데이터를 기록하고 외부 메모리로부터 데이터를 판독하는 반대 동작을 위한 대역폭 비용은 중요한 문제일 수 있다. 대역폭 소비는 열 및 전력 소비의 주요 원인일 수 있고, 따라서, 데이터 처리 시스템에서 외부 메모리 판독 및 기록을 위한 대역폭 소비를 줄이려고 하는 것이 일반적으로 바람직하다.)(In low-power data processing systems and portable devices, the bandwidth cost for the reverse operation of writing data to and reading data from external memory can be a significant issue. Bandwidth consumption can be a major contributor to heat and power consumption. Therefore, it is generally desirable to reduce bandwidth consumption for external memory reads and writes in data processing systems.)

본 발명이 특히 유익한 하나의 예시적인 방식은 복수의 디스플레이가 제공되어 동일한 출력 표면을 디스플레이하는데 사용되는 상대적으로 일반적인 상황이다. 하나의 일반적인 이러한 방식에서, 데이터 처리 시스템에 의해 생성된 출력 표면은 시스템의 로컬 디스플레이에 디스플레이되고, 또한 제2의 외부 디스플레이에 디스플레이된다("복제된다(cloned)"). 외부 디스플레이가 로컬 디스플레이에 대하여 상이한 해상도 및/또는 종횡비를 필요로 하고 이를 사용할 것이라는 것이 이러한 방식에서 흔히 있는 경우이다.One exemplary manner in which the present invention is particularly advantageous is the relatively common situation in which multiple displays are provided and used to display the same output surface. In one general such scheme, the output surface generated by the data processing system is displayed on the system's local display and also displayed on a secondary external display (“cloned”). It is often the case in this manner that the external display will require and will use a different resolution and/or aspect ratio for the local display.

도 3은 종래의 듀얼 디스플레이 합성 시스템의 동작을 개략적으로 도시한다. 하나 이상의 입력 표면이 비디오 코덱(1) 및/또는 GPU(2)에 의해 생성되어, 메인 메모리(3)(예를 들어, 프레임 버퍼 0, 1 및 2)에 저장된다. 저장된 입력 표면은 판독되어 합성 출력 프레임을 생성하기 위하여 입력 표면을 결합하는(합성하는) 합성 엔진(4)으로 전달된다. 또한, 예시적인 예에서, 합성 엔진(4)은 비디오 코덱(1)으로부터의 입력 표면에 색 공간 변환과 스케일링 동작을 수행한다. 그 다음, 저장된 합성 출력 표면은 로컬 디스플레이 컨트롤러(5)에 의해 판독되어 시스템의 로컬 디스플레이(6)에 디스플레이된다.3 schematically shows the operation of a conventional dual display synthesizing system. One or more input surfaces are generated by the video codec 1 and/or the GPU 2 and stored in the main memory 3 (eg frame buffers 0, 1 and 2). The stored input surfaces are read and passed to a compositing engine 4 that combines (composites) the input surfaces to produce a composite output frame. Further, in the illustrative example, the compositing engine 4 performs color space conversion and scaling operations on the input surface from the video codec 1 . The stored composite output surface is then read by the local display controller 5 and displayed on the system's local display 6 .

또한, 저장된 합성 출력 표면은, (출력을 위해 상이한 해상도 및/또는 종횡비를 필요로 할 수 있는) 외부 디스플레이(10)를 위하여 적합하게 회전되고 그리고/또는 스케일링된 출력 표면을 생성하도록 적합한 회전 및/또는 스케일링을 받기 전에, 합성 엔진(4)에 의해 메인 메모리(3)로부터 다시 판독된다. 회전되고 그리고/또는 스케일링된 출력 표면은, 제2 디스플레이 컨트롤러(11)에 의해 판독되기 전에, 메인 메모리(3)(예를 들어, 프레임 버퍼 4)에 저장되고, 외부 디스플레이(10)에 디스플레이된다.In addition, the stored composite output surface can be rotated and/or appropriately rotated and/or to create a scaled output surface suitably for external display 10 (which may require different resolutions and/or aspect ratios for output). Or, before being scaled, it is read back from the main memory 3 by the synthesis engine 4 . The rotated and/or scaled output surface is stored in the main memory 3 (eg frame buffer 4 ) and displayed on the external display 10 before being read by the second display controller 11 . .

도 4는 각각 로컬 디스플레이(6)와 외부 디스플레이(10)를 위한 제1 디스플레이 컨트롤러(5)와 제2 디스플레이 컨트롤러(11)를 포함하는 종래의 듀얼 디스플레이 합성 시스템을 도시한다.4 shows a conventional dual display compositing system comprising a first display controller 5 and a second display controller 11 for a local display 6 and an external display 10, respectively.

이러한 종래의 방식에서, 합성 엔진(4)이 메인 메모리(3)에 (적어도) 두 번(즉, 프레임 버퍼 3에 한 번, 프레임 버퍼 4에 한 번)의 기록과 (입력 표면이 판독된 후에) 메인 메모리(3)으로부터의(예를 들어, 프레임 버퍼(3)으로부터의) 한 번의 판독을 수행하여야 한다는 것이 이해될 것이다. 마찬가지로 디스플레이 컨트롤러(5, 11)의 각각은 메인 메모리(3)로부터 (적어도) 한 번의 판독을 수행하여야 한다.In this conventional manner, the synthesis engine 4 writes to the main memory 3 (at least) twice (ie once to frame buffer 3 and once to frame buffer 4) and (after the input surface has been read). ) from the main memory 3 (eg, from the frame buffer 3 ) must be performed once. Likewise, each of the display controllers 5 and 11 must perform (at least) one read from the main memory 3 .

대조적으로, 본 발명의 디스플레이 컨트롤러(즉, 라이트-백(write-back) 기능을 갖는다)가 (아래에서 더욱 상세히 설명되는 바와 같이) 듀얼 디스플레이 동작을 위하여 사용되는 본 발명의 일 실시예에서, 디스플레이 컨트롤러는 디스플레이를 위하여 이미지를 생성하고 이를 로컬 디스플레이 상으로 출력하도록 동작될 수 있다. 또한, 디스플레이 컨트롤러는 생성된 출력 표면(또는 생성된 출력 표면의 수정된 형태)를 메인 메모리에 기록하도록 동작될 수 있다. 그 다음, 메인 메모리에 저장된 출력 표면은 외부 디스플레이 장치에서의 디스플레이를 위하여 제2 디스플레이 컨트롤러에 의해 판독될 수 있다. 본 실시예에서, 외부 디스플레이를 위한 출력 프레임의 적합한 스케일링 및/또는 회전 등은 제2 디스플레이 컨트롤러에 의해(즉, 이것이 그와 같이 구비되는 경우에), 또는 출력 프레임이 메인 메모리로 기록되기 전에 본 발명의 디스플레이 컨트롤러에 의해 수행될 수 있다.In contrast, in one embodiment of the present invention in which a display controller of the present invention (ie having a write-back function) is used for dual display operation (as described in more detail below), the display The controller may be operable to generate an image for display and output it on a local display. Further, the display controller may be operable to write the generated output surface (or a modified form of the generated output surface) to main memory. The output surface stored in the main memory can then be read by the second display controller for display on an external display device. In this embodiment, suitable scaling and/or rotation of the output frame for external display, etc., is performed by the second display controller (ie if it is so equipped), or seen before the output frame is written to main memory. can be performed by the display controller of the invention.

따라서, 본 발명의 본 실시예에서, 메인 메모리로의 한 번의 기록 동작과 메인 메모리로부터의 한 번의 판독 동작만이 듀얼 디스플레이 동작을 위해 필요하다(즉, 적어도 하나의 입력 표면이 판독된 후에). 따라서, 메모리 대역폭은 종래의 방식에 비교하여 감소된다.Thus, in this embodiment of the present invention, only one write operation to main memory and one read operation from main memory are required for dual display operation (ie, after at least one input surface has been read). Accordingly, the memory bandwidth is reduced compared to the conventional scheme.

이에 따라, 본 발명의 다양한 실시예에서, 본 발명의 디스플레이 컨트롤러를 포함하는 전반적인 데이터 처리 시스템의 대역폭 및 전력 소비는 감소될 수 있다.Accordingly, in various embodiments of the present invention, bandwidth and power consumption of the overall data processing system including the display controller of the present invention may be reduced.

입력 스테이지는 적어도 하나의 입력 표면을 판독하도록 동작 가능한 임의의 적합한 이러한 스테이지를 포함할 수 있다. 바람직한 실시예에서, 입력 스테이지는, 예를 들어, DMA(Direct Memory Access) 판독 컨트롤러와 같은 판독 컨트롤러를 포함한다.The input stage may include any suitable such stage operable to read at least one input surface. In a preferred embodiment, the input stage comprises a read controller, for example a direct memory access (DMA) read controller.

바람직한 실시예에서, 판독 컨트롤러는 적어도 하나의 입력 표면이 저장되는 메모리로부터 적어도 하나의 입력 표면을 판독하도록 구성된다. 메모리는 임의의 적합한 메모리를 포함할 수 있고, 임의의 적합하고 원하는 방식으로 구성될 수 있다. 예를 들어, 이는 디스플레이 컨트롤러를 갖는 온-칩(on-chip) 형태일 수 있거나, 또는 이는 외부 메모리일 수 있다. 바람직한 실시예에서, 이는 전반적인 데이터 처리 시스템의 메인 메모리와 같은 외부 메모리이다. 이는 이 목적을 위한 전용 메모리일 수 있거나, 다른 데이터와 함께 사용되는 메모리의 일부일 수 있다. 바람직한 실시예에서, 적어도 하나의 입력 표면은 프레임 버퍼 내에 저장된다(그리고 그로부터 판독된다).In a preferred embodiment, the read controller is configured to read the at least one input surface from a memory in which the at least one input surface is stored. Memory may include any suitable memory and may be configured in any suitable and desired manner. For example, it may be in the form of an on-chip with a display controller, or it may be an external memory. In a preferred embodiment, this is an external memory, such as the main memory of the overall data processing system. It may be a dedicated memory for this purpose, or it may be part of the memory used with other data. In a preferred embodiment, the at least one input surface is stored in (and read from) the frame buffer.

본 발명에서의 적어도 하나의 입력 표면은 임의의 적합하고 원하는 이러한 표면일 수 있다. 바람직하게는, 입력 스테이지에 의해 판독되는 적어도 하나의 입력 표면은 출력 표면이 생성될(즉, 처리 스테이지에 의해) 적어도 하나의 입력 표면이다. 일 실시예에서, 적어도 하나의 입력 표면은 (디스플레이될) 적어도 하나의 입력 윈도우이고, 바람직하게는, 디스플레이를 위한 이미지, 예를 들어 프레임이다.The at least one input surface in the present invention may be any suitable and desired such surface. Preferably, the at least one input surface read by the input stage is the at least one input surface on which the output surface is to be created (ie by the processing stage). In an embodiment, the at least one input surface is at least one input window (to be displayed), preferably an image for display, eg a frame.

입력 표면 또는 표면들은 원하는 바에 따라 생성될 수 있다. 예를 들어, 하나 이상의 입력 표면은, 본 발명이 속하는 기술 분야에서 알려진 바와 같이, 그래픽 처리 시스템(그래픽 프로세서)에 의해 적합하게 렌더링되어 메모리(예를 들어, 프레임 버퍼)로 저장됨으로써 생성될 수 있다. 추가로 또는 대체하여, 하나 이상의 입력 표면은 비디오 코덱에 의해 적합하게 디코딩되어 메모리(예를 들어, 프레임 버퍼)로 저장됨으로써 생성될 수 있다. 추가로 또는 대체하여, 하나 이상의 입력 표면은 디지털 카메라 이미지 신호 프로세서(ISP) 또는 다른 이미지 프로세서에 의해 생성될 수 있다. 입력 표면 또는 표면들은, 본 발명이 속하는 기술 분야에서 알려진 바와 같이, 예를 들어, 게임, 데모, 그래픽 유저 인터페이스(GUI), 비디오 데이터(예를 들어, 그래픽 "재생(play back)" 및 "일시 정지(pause)" 아이콘를 갖는 비디오 프레임)를 갖는 GUI 등을 위한 것일 수 있다.The input surface or surfaces can be created as desired. For example, one or more input surfaces may be created by being suitably rendered by a graphics processing system (graphics processor) and stored in memory (eg, a frame buffer), as is known in the art. . Additionally or alternatively, the one or more input surfaces may be generated by being suitably decoded by a video codec and stored in a memory (eg, a frame buffer). Additionally or alternatively, the one or more input surfaces may be generated by a digital camera image signal processor (ISP) or other image processor. The input surface or surfaces can be, as is known in the art, for example, games, demos, graphical user interfaces (GUIs), video data (eg, graphical “play back” and “pauses”). a GUI with a video frame with a "pause" icon) or the like.

입력 스테이지에 의해 판독되는(그리고 출력 표면을 생성하기 위하여 처리 스테이지에 의해 처리되는) 단지 하나의 입력 표면만이 있을 수 있지만, 특히 바람직한 실시예에서, 입력 스테이지에 의해 판독되는(그리고 출력 표면을 생성하기 위하여 처리 스테이지에 의해 처리되는) 복수의(2 이상의) 입력 표면이 있다.There may be only one input surface that is read by the input stage (and processed by the processing stage to produce an output surface), although in a particularly preferred embodiment, it is read by the input stage (and produces an output surface). There are multiple (two or more) input surfaces (to be processed by the processing stage) to

처리 스테이지에 의해 생성되는 출력 표면은 임의의 적합하고 원하는 이러한 표면일 수 있다. 바람직하게는, 처리 스테이지에 의해 생성되는 출력 표면은 (디스플레이될) 적어도 하나의 출력 윈도우이고, 바람직하게는, 디스플레이를 위한 이미지, 예를 들어, 프레임이다. 아래에서 더 논의되는 바와 같이, 바람직한 실시예에서, 출력 표면은 복수의 입력 표면으로부터 합성된다(이것이 그러할 필요는 없지만). The output surface produced by the processing stage may be any suitable and desired such surface. Preferably, the output surface created by the processing stage is at least one output window (to be displayed), preferably an image for display, eg a frame. As discussed further below, in a preferred embodiment, the output surface is synthesized from a plurality of input surfaces (though this need not be the case).

일 실시예에서, 처리 스테이지는 단일 출력 표면을 생성할 수 있다. 본 실시예에서, 처리 스테이지에 의해 생성된 단일 출력 표면은 디스플레이를 위한 출력 표면(즉, 디스플레이에 디스플레이되는 디스플레이를 위한 출력 표면) 및/또는 외부 메모리에 기록된 출력 표면일 수 있다. 이 대신에, 처리 스테이지는 복수의, 바람직하게는 2개의 출력 표면을 생성할 수 있다. 본 실시예에서, 출력 표면 중 하나는 디스플레이를 위한 출력 표면(즉, 디스플레이에 디스플레이될 디스플레이를 위한 출력 표면)일 수 있고, 출력 표면 중 다른 하나는 외부 메모리에 기록된 출력 표면일 수 있다.In one embodiment, the processing stage may produce a single output surface. In this embodiment, the single output surface created by the processing stage may be an output surface for a display (ie, an output surface for a display that is displayed on a display) and/or an output surface written to an external memory. Alternatively, the processing stage may generate a plurality of, preferably two, output surfaces. In this embodiment, one of the output surfaces may be an output surface for a display (ie, an output surface for a display to be displayed on a display), and the other of the output surfaces may be an output surface written to an external memory.

처리 스테이지는 임의의 원하는 방식으로 출력 표면을 생성하기 위하여 적어도 하나의 입력 표면을 처리하도록 동작 가능할 수 있다.The processing stage may be operable to process the at least one input surface to produce an output surface in any desired manner.

바람직한 일 실시예에서, 처리 스테이지는 합성 출력 표면을 생성하기 위하여 (2 이상의) 표면을 합성하도록 동작 가능한 합성 스테이지를 포함한다. 합성 스테이지는 원하는 바에 따라 임의의 적합한 방식으로 합성 출력 표면을 생성하기 위하여 표면을 합성하도록 구성될 수 있다. 일 실시예에서, 합성 스테이지는, 본 발명이 속하는 기술 분야에서 알려진 바와 같이, 합성 출력 표면을 생성하기 위하여 표면들을 혼합하거나 아니면 결합하도록 구성된다.In one preferred embodiment, the processing stage comprises a compositing stage operable to synthesize (two or more) surfaces to produce a composite output surface. The compositing stage may be configured to synthesize a surface to produce a composite output surface in any suitable manner as desired. In one embodiment, the compositing stage is configured to mix or otherwise combine surfaces to create a composite output surface, as is known in the art.

합성 스테이지에 의해 합성되는 표면들은 입력 스테이지에 의해 판독된 입력 표면 및/또는 입력 스테이지에 의해 판독된 입력 표면의 하나 이상의 수정된 형태의 하나 이상(예를 들어, 아래에서 더 논의되는 바와 같이, 하나 이상의 디코딩되고, 압축 해제되고, 회전되고 그리고/또는 스케일링된 입력 표면)을 포함할 수 있다.The surfaces synthesized by the synthesizing stage may include one or more (eg, one, as discussed further below, decoded, decompressed, rotated and/or scaled input surfaces).

합성 출력 표면은 임의의 적합하고 원하는 이러한 표면일 수 있다. 바람직하게는, 합성 스테이지에 의해 생성되는 합성 출력 표면은, (디스플레이될) 출력 윈도우, 그리고 바람직하게는, 디스플레이를 위한 이미지, 예를 들어, 프레임이다.The composite output surface may be any suitable and desired such surface. Preferably, the composite output surface created by the compositing stage is an output window (to be displayed) and preferably an image for display, eg a frame.

합성 출력 표면은 처리 스테이지에 의해 생성된 "최종" 출력 표면일 수 있거나, 합성 출력 표면은 (아래에서 더 논의되는 바와 같이) 출력 표면을 생성하기 위하여 처리 스테이지에 의해 추가 처리를 받을 수 있다.The composite output surface may be the “final” output surface produced by the processing stage, or the composite output surface may be subjected to further processing by the processing stage (as discussed further below) to produce the output surface.

입력 표면 및 합성 출력 표면은 동일하거나 상이한 크기, 해상도 등을 가질 수 있다.The input surface and the composite output surface may have the same or different sizes, resolutions, etc.

일 실시예에서, 처리 스테이지는, 추가로 또는 대신에, 그리고 바람직하게는 추가로, 하나 이상의 디코딩되고 그리고/또는 압축 해제된 입력 표면을 생성하기 위하여, 하나 이상의 표면, 바람직하게는, 하나 이상의 입력 표면을 디코딩하고 그리고/또는 압축 해제하도록 동작 가능한 디코딩 스테이지를 포함한다. 이것은 하나 이상의 입력 표면이 인코딩되고 그리고/또는 압축된 형태로 저장되는 실시예에서 특히 유용하다. 예를 들어, 하나 이상의 입력 표면은 메모리에 저장되기 전에 예를 들어 (US-A1-2013/0034309에서 설명된 바와 같이) ARM 프레임 버퍼 압축(AFBC(ARM Frame Buffer Compression))과 같은 압축을 받았을 수 있다. 따라서, 바람직한 일 실시예에서, 디코딩 스테이지는 하나 이상의 입력 표면을 디코딩하기 위한 AFBC 디코더를 포함할 수 있다.In an embodiment, the processing stage additionally or instead of, and preferably furthermore, one or more surfaces, preferably one or more input surfaces, to generate one or more decoded and/or decompressed input surfaces. and a decoding stage operable to decode and/or decompress the surface. This is particularly useful in embodiments where one or more input surfaces are encoded and/or stored in compressed form. For example, one or more input surfaces may have undergone compression, such as, for example, ARM Frame Buffer Compression (AFBC) (as described in US-A1-2013/0034309) before being stored in memory. have. Thus, in one preferred embodiment, the decoding stage may comprise an AFBC decoder for decoding one or more input surfaces.

하나 이상의 디코딩되고 그리고/또는 압축 해제된 입력 표면은 처리 스테이지에 의해 생성된 "최종" 출력 표면일 수 있지만, 더욱 바람직하게는, 하나 이상의 디코딩되고 그리고/또는 압축 해제된 입력 표면은 출력 표면을 생성하기 위하여 (합성 동작과 같은) 처리 스테이지에 의한 추가 처리를 받는다.The one or more decoded and/or decompressed input surfaces may be the "final" output surfaces produced by the processing stage, but more preferably, the one or more decoded and/or decompressed input surfaces produce an output surface. to undergo further processing by a processing stage (such as a compositing operation).

특히 바람직한 일 실시예에서, 처리 스테이지는, 추가로 또는 대신에, 그리고 바람직하게는 추가로, 예를 들어, 하나 이상의 회전된 입력 표면을 생성하기 위하여, 하나 이상의 표면, 바람직하게는, 하나 이상의 (선택적으로는 디코딩되고 그리고/또는 압축 해제된) 입력 표면을 회전시키도록 동작 가능한 회전 스테이지를 포함한다. 이것은, 예를 들어, 합성 이전에 하나 이상의 입력 표면(윈도우)을 회전시키는 것이 필요하고 그리고/또는 요구되는 경우에 특히 유용하다. 회전 스테이지는, 예를 들어, 90°, 180° 및/또는 270°와 같은 임의의 적합하고 원하는 양만큼 하나 이상의 입력 표면을 회전시키도록 동작 가능할 수 있다.In one particularly preferred embodiment, the processing stage additionally or instead, and preferably furthermore, for example, to generate one or more rotated input surfaces, one or more surfaces, preferably one or more ( and optionally a rotation stage operable to rotate the input surface (decoded and/or decompressed). This is particularly useful, for example, when it is necessary and/or desired to rotate one or more input surfaces (windows) prior to compositing. The rotation stage may be operable to rotate one or more input surfaces by any suitable and desired amount, such as, for example, 90°, 180° and/or 270°.

하나 이상의 회전된 입력 표면은 처리 스테이지에 의해 생성된 "최종" 출력 표면일 수 있지만, 더욱 바람직하게는, 하나 이상의 회전된 입력 표면은 출력 표면을 생성하기 위하여 처리 스테이지에 의해 추가 처리를 받는다.The one or more rotated input surfaces may be the "final" output surfaces produced by the processing stage, although more preferably, the one or more rotated input surfaces are subjected to further processing by the processing stage to produce an output surface.

특히 바람직한 일 실시예에서, 처리 스테이지는, 추가로 또는 대신에, 그리고 바람직하게는 추가로, 예를 들어, 하나 이상의 스케일링된 표면을 생성하기 위하여, 하나 이상의 표면을 스케일링(예를 들어, 업 스케일링 및/또는 다운 스케일링)하도록 동작 가능한 스케일링 스테이지 또는 엔진을 포함한다. 스케일링 스테이지는 (선택적으로는 수정된) 입력 표면 및/또는 (선택적으로는 수정된) 합성 출력 표면의 임의의 하나, 일부 또는 전부를 스케일링하도록 동작 가능할 수 있다.In one particularly preferred embodiment, the processing stage additionally or instead of, and preferably further scales (eg up-scaling) one or more surfaces, for example to create one or more scaled surfaces. and/or downscaling). The scaling stage may be operable to scale any one, some or all of the (optionally modified) input surface and/or the (optionally modified) composite output surface.

또한, 특히 바람직한 일 실시예에서, 스케일링 스테이지(엔진)는 색 공간 변환, 예를 들어, 그리고 바람직하게는, RGB-YUV 색 공간 변환을 수행할 수 있다. 이것은, 예를 들어, 외부 메모리로 기록되는 출력 표면이 무선 전송을 위하여 인코딩을 위한 비디오 엔진을 제공하도록 의도될 수 있는 경우에 유용할 수 있다.Also, in one particularly preferred embodiment, the scaling stage (engine) is capable of performing color space conversion, for example, and preferably RGB-YUV color space conversion. This may be useful, for example, where an output surface that is written to an external memory may be intended to provide a video engine for encoding for wireless transmission.

일 실시예에서, 스케일링 스테이지는, 예를 들어, 하나 이상의 스케일링된 입력 표면을 생성하기 위하여, 하나 이상의 (선택적으로는 수정된, 예를 들어, 디코딩되고, 압축 해제되고 그리고/또는 회전된) 입력 표면을 스케일링하도록 동작 가능하다. 이것은, 예를 들어, 합성 전에, 하나 이상의 입력 표면을 스케일링하는 것이 요구되는 경우에 특히 유용하다.In one embodiment, the scaling stage is configured to generate one or more (optionally modified, eg, decoded, decompressed and/or rotated) input surfaces, eg, to generate one or more scaled input surfaces. operable to scale the surface. This is particularly useful if, for example, it is desired to scale one or more input surfaces prior to compositing.

추가로 또는 대체하여, 스케일링 스테이지는, 예를 들어, 스케일링된 출력 표면을 생성하기 위하여, (선택적으로는 수정된) 합성 출력 표면을 스케일링하도록 동작 가능할 수 있다. 이것은, 예를 들어, 외부 메모리에 기록하기 전에 합성 출력 표면을 스케일링하는 것이 요구되는 경우에 특히 유용하다.Additionally or alternatively, the scaling stage may be operable to scale the (optionally modified) composite output surface, eg, to generate a scaled output surface. This is particularly useful, for example, when it is desired to scale the composite output surface prior to writing to external memory.

하나 이상의 스케일링된 표면은 처리 스테이지에 의해 생성된 "최종" 출력 표면일 수 있거나, 하나 이상의 스케일링된 표면은 출력 표면을 생성하기 위하여 처리 스테이지에 의해 추가 처리를 받을 수 있다.The one or more scaled surfaces may be the “final” output surface produced by the processing stage, or the one or more scaled surfaces may be subjected to further processing by the processing stage to produce an output surface.

스케일링 스테이지는 변경될 수 없는 설정된 정도(degree) 또는 비율(factor)만큼 표면을 스케일링(예를 들어, 업 스케일링 또는 다운 스케일링)하도록 구성될 수 있다. 그러나, 더욱 바람직한 실시예에서, 스케일링 스테이지는 임의의 원하는 정도 또는 비율로(또는 하나 이상의 제한된 개수의 정도 또는 비율만큼) 표면을 스케일링(예를 들어, 업 스케일링 또는 다운 스케일링)하도록 구성될 수 있다(그리고, 바람직하게는, 스케일링의 정도는 사용시 선택 가능하다).The scaling stage may be configured to scale (eg, up-scaling or down-scaling) the surface by a set degree or factor that cannot be changed. However, in more preferred embodiments, the scaling stage may be configured to scale (eg, up-scaling or down-scaling) the surface to any desired degree or ratio (or by one or more limited number of degrees or ratios). And, preferably, the degree of scaling is selectable in use).

디스플레이 컨트롤러 및/또는 스케일링 스테이지는 (유일한) 특정 표면이 (항상) 스케일링 스테이지로 전송되도록(그리고 스케일링 스테이지에 의해 수신되고 처리되도록) 하는 것일 수 있다.The display controller and/or scaling stage may be the one that causes a (only) specific surface to (always) be sent to (and received and processed by the scaling stage).

그러나, 더욱 바람직한 일 실시예에서, 디스플레이 컨트롤러는 하나 이상의 표면을 스케일링 스테이지로 선택적으로 전송할 수 있도록 구성될 수 있어, 임의의 하나 이상의 표면이, 예를 들어, 적합하고 그리고/또는 원하는 바에 따라, 스케일링 스테이지에 의해 선택적으로 수신되어 스케일링(업 스케일링 또는 다운 스케일링)될 수 있다.However, in one more preferred embodiment, the display controller may be configured to selectively transmit one or more surfaces to a scaling stage, such that any one or more surfaces are scaled, eg, as suitable and/or desired. It may be selectively received and scaled (upscaled or downscaled) by the stage.

이를 성취하기 위하여(그리고 그 밖에), 특히 바람직한 일 실시예에서, 처리 스테이지는 하나 이상의 표면을 수신하고 디스플레이 컨트롤러의 다른 스테이지로 하나 이상의 수신된 표면을 선택적으로 전송하도록(향하게 하도록) 동작 가능한 데이터 흐름 컨트롤러(멀티플렉스)를 더 포함한다. 데이터 흐름 컨트롤러는 하나 이상의 (선택적으로는 수정된, 예를 들어, 디코딩되고, 압축 해제되고 그리고/또는 회전된) 입력 표면 및/또는 (선택적으로는 수정된) 합성 출력 표면을 수신하도록(그리고, 하나 이상의 수신된 표면을 전송하도록) 동작 가능할 수 있다.To achieve this (and otherwise), in one particularly preferred embodiment, the processing stage is a data flow operable to receive one or more surfaces and selectively transmit (direct) the one or more received surfaces to another stage of the display controller. It further includes a controller (multiplex). The data flow controller is configured to receive (and optionally receive) one or more (optionally modified, eg, decoded, decompressed and/or rotated) input surfaces and/or (optionally modified) composite output surfaces; to transmit one or more received surfaces).

바람직한 일 실시예에서, 데이터 흐름 컨트롤러는 (예를 들어, 입력) 표면을 위한 데이터 흐름을 개별적으로 향하게 할 수 있다. 즉, 상이한 표면이 서로에 독립적으로 상이한 처리 스테이지로 향하게 될 수 있다.In one preferred embodiment, the data flow controller may individually direct the data flow for the (eg, input) surface. That is, different surfaces may be directed to different processing stages independently of each other.

데이터 흐름 컨트롤러는, 바람직하게는, 적합한 바에 따라 하나 이상의 수신된 표면을 디스플레이 컨트롤러의 임의의 부분(스테이지)에 선택적으로 향하게 하도록(전송하도록) 동작 가능하다. 일 실시예에서, 데이터 흐름 컨트롤러는 합성 스테이지 및/또는 스케일링 엔진 및/또는 기록 스테이지로 표면을 선택적으로 전송하도록 구성된다.The data flow controller is preferably operable to selectively direct (transmit) one or more received surfaces to any part (stage) of the display controller as appropriate. In one embodiment, the data flow controller is configured to selectively transmit the surface to the compositing stage and/or the scaling engine and/or the writing stage.

따라서, 예를 들어, 일 실시예에서, 데이터 흐름 컨트롤러는 하나 이상의 (수정된) 입력 표면을 수신하고, 하나 이상의 수신된 표면을 합성 스테이지로 전송하도록 동작 가능하다.Thus, for example, in one embodiment, the data flow controller is operable to receive one or more (modified) input surfaces and send the one or more received surfaces to the compositing stage.

다른 실시예에서, 데이터 흐름 컨트롤러는 하나 이상의 (수정된) 입력 표면을 수신하고, 하나 이상의 수신된 입력 표면을 스케일링 엔진에 선택적으로 전송하도록 동작 가능하다. 본 실시예에서, 데이터 흐름 컨트롤러는 (예를 들어, 스케일링 엔진에 전송된 하나 이상의 입력 표면에 대응하는) 스케일링 엔진으로부터의 하나 이상의 스케일링된 입력 표면을 수신하고 그 다음 하나 이상의 표면을 합성을 위하여 합성 스테이지로 전송하도록 더 동작 가능할 수 있다.In another embodiment, the data flow controller is operable to receive one or more (modified) input surfaces and selectively transmit the one or more received input surfaces to the scaling engine. In this embodiment, the data flow controller receives one or more scaled input surfaces from a scaling engine (eg, corresponding to one or more input surfaces sent to the scaling engine) and then synthesizes the one or more surfaces for compositing. It may be further operable to transmit to a stage.

일 실시예에서, 데이터 흐름 컨트롤러는 (수정된) 합성 출력 표면을 수신하고 이를 기록 스테이지에 전송하도록 동작 가능하다. 다른 실시예에서, 데이터 흐름 컨트롤러(멀티플렉서)는 (수정된) 합성 출력 표면을 수신하고 이를 스케일링 엔진에 전송하도록 동작 가능하다. 본 실시예에서, 스케일링 엔진은 그 다음 바람직하게는 수신된 합성 출력 표면을 스케일링하고, 스케일링된 합성 출력 표면을, 직접 또는 데이터 흐름 컨트롤러를 통해, 기록 스테이지로 전송할 것이다.In one embodiment, the data flow controller is operable to receive the (modified) composite output surface and send it to the write stage. In another embodiment, the data flow controller (multiplexer) is operable to receive the (modified) composite output surface and send it to the scaling engine. In this embodiment, the scaling engine will then preferably scale the received composite output surface and send the scaled composite output surface to the write stage, either directly or via a data flow controller.

바람직한 일 실시예에서, 처리 스테이지는, 추가로 또는 대신에, 그리고 바람직하게는 추가로, 하나 이상의 "후처리(post-processing)" 스테이지를, 예를 들어, 후처리된 표면을 생성하기 위하여, 예를 들어, 하나 이상의 표면에 하나 이상의 처리 동작을 선택적으로 수행하도록 동작 가능한 후처리 파이프라인의 형태로 포함한다. 처리 스테이지는 하나 이상의 후처리 스테이지가 임의의 (수정된) 입력 표면 및/또는 (수정된) 합성 출력 표면을 수신하도록 구성될 수 있지만, 바람직한 실시예에서, 하나 이상의 후처리 스테이지는, 예를 들어, 후처리된 합성 출력 표면을 생성하기 위하여, 합성 출력 표면을 수신하여 (선택적으로) 처리하도록 동작 가능하다.In a preferred embodiment, the treatment stage additionally or instead, and preferably furthermore, comprises one or more “post-processing” stages, for example to produce a post-treated surface; for example, in the form of a post-processing pipeline operable to selectively perform one or more processing operations on one or more surfaces. The processing stage may be configured such that the one or more post-processing stages receive any (modified) input surface and/or (modified) composite output surface, although in a preferred embodiment the one or more post-processing stages, for example , operable to receive and (optionally) process the composite output surface to produce a post-processed composite output surface.

하나 이상의 후처리 스테이지는, 예를 들어, 표면에 색 변환을 수행하도록 동작 가능한 색 변환 스테이지, 표면에 디더링을 수행하도록 동작 가능한 디더링 스테이지, 및/또는 표면에 감마(gamma) 보정을 수행하도록 동작 가능한 감마 보정 스테이지를 포함할 수 있다.The one or more post-processing stages may include, for example, a color conversion stage operable to perform a color conversion on the surface, a dither stage operable to perform dithering on the surface, and/or a gamma correction stage operable to perform a gamma correction on the surface. A gamma correction stage may be included.

하나 이상의 후처리된 표면은 출력 표면을 생성하기 위하여 처리 스테이지에 의해 추가 처리를 받을 수 있지만, 더욱 바람직하게는, 하나 이상의 후처리된 표면은 처리 스테이지에 의해 생성된 "최종" 출력 표면일 수 있다.The one or more post-treated surfaces may be subjected to further treatment by the treatment stage to produce an output surface, but more preferably, the one or more post-treated surfaces may be the “final” output surface produced by the treatment stage. .

전술한 바로부터 이해되는 바와 같이, 본 실시예의 디스플레이 컨트롤러의 전반적인 처리 스테이지는, 바람직한 실시예에서 그러한 바와 같이, 복수의 처리 스테이지 또는 요소를 포함할 수 있으며, 바람직하게는, 합성 스테이지(엔진), 스케일링 스테이지(엔진), 디코딩 스테이지(디코더), 회전 스테이지(엔진), "후처리" 스테이지 또는 스테이지들, 및 데이터 흐름 컨트롤러 중 하나 이상, 바람직하게는 이의 모두를 포함할 수 있다. 상응하여, 출력 표면을 생성하기 위하여 적어도 하나의 입력 표면을 처리하는 것은, 바람직하게는, 디코딩, 회전, 합성, 스케일링 및 후처리의 하나 이상, 그리고 바람직하게는 그 모두를 포함한다.As will be understood from the foregoing, the overall processing stage of the display controller of this embodiment, as in the preferred embodiment, may include a plurality of processing stages or elements, preferably, a synthesizing stage (engine); It may include one or more, preferably all of, a scaling stage (engine), a decoding stage (decoder), a rotation stage (engine), a “post-processing” stage or stages, and a data flow controller. Correspondingly, processing the at least one input surface to generate the output surface preferably includes one or more, and preferably all of, decoding, rotation, compositing, scaling and post-processing.

특히 바람직한 다른 실시예에서, 처리 스테이지는, 추가로 또는 대신에, 그리고 바람직하게는 추가로, 예를 들어, 하나 이상의 압축된 표면을 생성하기 위하여, 하나 이상의 표면을 압축하도록 동작 가능한 압축 스테이지를 포함한다. 압축 스테이지는 (선택적으로는 수정된) 입력 표면(들) 및/또는 (선택적으로는 수정된) (합성된) 출력 표면의 임의의 하나, 일부 또는 모두를 압축하도록 동작 가능할 수 있다.In another particularly preferred embodiment, the treatment stage additionally or instead, and preferably additionally, comprises a compression stage operable to compress the one or more surfaces, for example to create one or more compressed surfaces. do. The compression stage may be operable to compress any one, some or all of the (optionally modified) input surface(s) and/or the (optionally modified) (synthesized) output surface.

따라서, 일 실시예에서, 압축 스테이지는, 예를 들어, 하나 이상의 압축된 출력 표면을 생성하기 위하여, 하나 이상의 (선택적으로는 수정된, 예를 들어, 디코딩되고, 압축 해제되고, 회전되고 그리고/또는 스케일링된) 입력 표면을 압축하도록 동작 가능하다. 추가로 또는 대체하여, 압축 스테이지는, 예를 들어, 압축된 합성 출력 표면을 생성하기 위하여, (선택적으로는 수정된) 합성 출력 표면을 압축하도록 동작 가능할 수 있다.Thus, in one embodiment, the compression stage is configured to perform one or more (optionally modified, eg, decoded, decompressed, rotated and/or or scaled) to compress the input surface. Additionally or alternatively, the compression stage may be operable to compress the (optionally modified) composite output surface, eg, to produce a compressed composite output surface.

하나 이상의 압축된 표면은 출력 표면을 생성하기 위하여 처리 스테이지에 의해 추가 처리를 받을 수 있거나, 또는 더욱 바람직하게는, 하나 이상의 압축된 표면은 처리 스테이지에 의해 생성된 "최종" 출력 표면일 수 있다.The one or more compressed surfaces may be subjected to further processing by the processing stage to produce an output surface, or more preferably, the one or more compressed surfaces may be the "final" output surface produced by the processing stage.

이것은, 예를 들어, 디스플레이 전에 하나 이상의 출력 표면을 압축하는 것이 바람직한 경우에 특히 유용하다. 예를 들어, 디스플레이 스트림 압축(DSC(Display Stream Compression))와 같은 새로운 디스플레이 인터페이스 표준은 필요한 대역폭을 줄이기 위하여 디스플레이 컨트롤러로부터 디스플레이로 전송되는 데이터를 압축하기 위하여 압축을 사용한다. 이러한 표준은 수학적으로는 손실되는 것이지만 "시각적으로 무손실(visually lossless)"이도록, 즉 사용자의 눈에 띄지 않도록 설계된다. (따라서, 바람직하게는, 압축 스테이지는, 손실이 있지만, 바람직하게는 실질적으로 시각적으로 무손실인 압축 스테이지를 포함한다. 가장 바람직하게는, 압축 스테이지는 디스플레이 스트림 압축(DSC) 스테이지를 포함한다.)This is particularly useful, for example, when it is desirable to compress one or more output surfaces prior to display. For example, new display interface standards, such as Display Stream Compression (DSC), use compression to compress data sent from the display controller to the display to reduce the bandwidth required. These standards are mathematically lossy but are designed to be "visually lossless", ie invisible to the user. (Thus, preferably, the compression stage comprises a lossy but preferably substantially visually lossless compression stage. Most preferably, the compression stage comprises a Display Stream Compression (DSC) stage.)

또한, 아래에서 더 논의되는 바와 같이, 외부 메모리로 기록되는 출력 표면이 압축되는 경우에 이점이 있다.There is also an advantage if the output surface that is written to the external memory is compressed, as discussed further below.

일 실시예에서, 데이터 흐름 컨트롤러는 표면을 압축 스테이지에 선택적으로 전송하도록 구성된다.In one embodiment, the data flow controller is configured to selectively transmit the surface to the compression stage.

출력 스테이지는, 예를 들어, 디스플레이를 위한 출력 표면이 디스플레이에 디스플레이되게 하기 위하여(디스플레이 인터페이스로서 동작하기 위하여), 디스플레이를 위한 출력 표면을 디스플레이에 제공하도록 동작 가능한 임의의 적합한 이러한 스테이지일 수 있다. 바람직하게는, 출력 스테이지는, 본 발명이 속하는 기술 분야에서 알려진 바와 같이, 적합한 타이밍 제어 기능을 포함한다(예를 들어, 이는 적합한 수평 및 수직 블랭킹 기간을 가지면서 디스플레이에 픽셀 데이터를 전송하도록 구성된다.The output stage may be any suitable such stage operable to provide an output surface for a display to the display, for example, to cause the output surface for the display to be displayed on the display (to act as a display interface). Preferably, the output stage comprises suitable timing control functions, as is known in the art (eg it is configured to transmit pixel data to the display while having suitable horizontal and vertical blanking periods), as is known in the art. .

바람직하게는, 출력 스테이지는, 바람직하게는, 디스플레이 컨트롤러 내로부터 직접, 더욱 바람직하게는 처리 스테이지로부터 직접, 즉, 디스플레이를 위한 출력 표면이 디스플레이 컨트롤러로부터 출력되거나 외부 메모리에 저장되지 않으면서, 출력 표면을 디스플레이에 제공하기 전에 디스플레이를 위하여 출력 표면을 수신하도록 동작한다.Preferably, the output stage is preferably directly from within the display controller, more preferably directly from the processing stage, ie the output surface for the display is not output from the display controller or stored in an external memory. operative to receive an output surface for display prior to providing it to the display.

디스플레이를 위한 출력 표면은 처리 스테이지에 의해 생성된 출력 표면이어야 하며, 바람직하게는, 처리 스테이지에 의해 생성된 출력 표면이다. 바람직한 일 실시예에서, 디스플레이를 위한 출력 표면은 (합성 스테이지에 의해 생성된) (선택적으로는 압축된) 합성 출력 표면 또는 (하나 이상의 후처리 스테이지에 의해 생성된) (선택적으로는 압축된) 후처리된 합성 출력 표면이다. 다른 바람직한 실시예에서, 디스플레이를 위한 출력 표면은 압축된(선택적으로는 수정된) 입력 표면이다.The output surface for the display should be the output surface created by the processing stage, preferably the output surface created by the processing stage. In one preferred embodiment, the output surface for display is a (optionally compressed) composite output surface (generated by the compositing stage) or (optionally compressed) post- (produced by one or more post-processing stages) This is the treated composite output surface. In another preferred embodiment, the output surface for the display is a compressed (optionally modified) input surface.

본 발명의 디스플레이 컨트롤러와 함께 사용되는 디스플레이는, 예를 들어, 스크린이나 프린터와 같은 임의의 적합하고 원하는 디스플레이일 수 있다.The display used with the display controller of the present invention may be any suitable and desired display, such as, for example, a screen or printer.

기록 스테이지는 외부 메모리에 출력 표면을 기록할 수 있는 임의의 적합한 이러한 스테이지일 수 있다. 일 실시예에서, 기록 스테이지는, DMA(Direct Memory Access) 기록 컨트롤러와 같은 기록 컨트롤러를 포함한다.The write stage may be any suitable such stage capable of writing an output surface to an external memory. In one embodiment, the write stage includes a write controller, such as a direct memory access (DMA) write controller.

바람직하게는, 기록 컨트롤러는, 디스플레이 컨트롤러 내로부터 직접, 더욱 바람직하게는, 처리 스테이지로부터 직접, 즉, 출력 표면이 디스플레이 컨트롤러로부터 출력되거나 외부 메모리 내에 저장되지 않으면서, 출력 표면을 외부 메모리에 표면을 기록하기 전에, 출력 표면을 수신하도록 구성된다.Preferably, the write controller writes the output surface to an external memory directly from within the display controller, more preferably directly from the processing stage, i.e. the output surface is not output from the display controller or stored in the external memory. Prior to recording, the output surface is configured to receive.

외부 메모리로 기록된 출력 표면은 처리 스테이지에 의해 생성된 출력 표면이어야 하며, 바람직하게는, 처리 스테이지에 의해 생성된 출력 표면이다. 바람직한 일 실시예에서, 외부 메모리로 기록된 출력 표면은 (합성 스테이지에 의해 생성된) (선택적으로는 압축된) 합성 출력 표면 또는 (스케일링 스테이지에 의해 생성된) (선택적으로는 압축된) 스케일링된 합성 출력 표면이다. 바람직한 다른 실시예에서, 외부 메모리로 기록된 출력 표면은 압축된(선택적으로는 수정된) 입력 표면이다.The output surface written to the external memory should be the output surface created by the processing stage, preferably the output surface created by the processing stage. In one preferred embodiment, the output surface written to the external memory is a (optionally compressed) composite output surface (generated by the compositing stage) or a scaled (optionally compressed) (generated by a scaling stage) Composite output surface. In another preferred embodiment, the output surface written to the external memory is a compressed (optionally modified) input surface.

외부 메모리는, 프레임 버퍼와 같은, 기록 스테이지가 데이터를 기록할 수 있는 디스플레이 컨트롤러 외부에 있는 하나 이상의 메모리이어야 하며, 바람직하게는 그러한 메모리이다. 바람직하게는, 외부 메모리는 디스플레이 컨트롤러에 대한 개별 칩(모놀리식(monolithic) 집적 회로)으로서 또는 그 상에 제공된다. 바람직하게는, 외부 메모리는 전반적인 데이터 처리 시스템의 메인 메모리(예를 들어, 중앙 처리 유닛(CPU)과 공유되는 것), 예를 들어, 프레임 버퍼를 포함한다.The external memory should be, and preferably is, one or more memories external to the display controller to which the write stage can write data, such as a frame buffer. Preferably, the external memory is provided as or on a separate chip (monolithic integrated circuit) for the display controller. Preferably, the external memory comprises main memory of the overall data processing system (eg shared with a central processing unit (CPU)), eg a frame buffer.

본 발명의 디스플레이 컨트롤러의 다양한 스테이지는, 예를 들어, 하나 이상의 고정된 기능 유닛(하드웨어)(즉, 변경될 수 없는 하나 이상의 기능에 전용되는 것)의 형태로, 또는 예를 들어 원하는 기능을 수행하기 위하여 프로그래밍될 수 있는 프로그래머블 회로에 의해, 하나 이상의 프로그래머블 처리 스테이지로서, 원하는 바에 따라 구현될 수 있다. 고정 기능 스테이지 및 프로그래머블 스테이지가 모두 있을 수 있다.The various stages of the display controller of the present invention perform, for example, in the form of one or more fixed functional units (hardware) (ie those dedicated to one or more functions that cannot be changed), or, for example, to perform a desired function. may be implemented as desired, as one or more programmable processing stages, by programmable circuitry that may be programmed to There can be both fixed function stages and programmable stages.

본 발명의 다양한 스테이지의 하나 이상은 서로에 대한 개별 회로 요소로서 제공될 수 있다. 추가로 또는 대체하여, 스테이지들의 일부 또는 전부는 적어도 부분적으로 공유된 회로로 형성될 수 있다.One or more of the various stages of the present invention may be provided as separate circuit elements relative to each other. Additionally or alternatively, some or all of the stages may be formed at least in part as a shared circuit.

본 발명의 다양한 스테이지의 하나 이상은 임의의 그리고 모든 수신된 표면에 그 기능을 항상 수행하도록 동작 가능할 수 있다. 추가로 또는 대체하여, 하나 이상의 스테이지는, 원하는 경우에 그리고/또는 적합한 경우에, 수신된 표면에서 그 기능을 선택적으로 수행하도록 동작 가능할 수 있다.One or more of the various stages of the present invention may be operable to always perform its function on any and all received surfaces. Additionally or alternatively, one or more stages may be operable to selectively perform their function on a received surface, if desired and/or as appropriate.

바람직한 일 실시예에서, 본 발명의 디스플레이 컨트롤러는 데이터 처리 시스템의 일부를 형성한다. 따라서, 본 발명의 다른 양태에 따라, 전술한 디스플레이 컨트롤러를 포함하는 데이터 처리 시스템이 제공된다. In one preferred embodiment, the display controller of the invention forms part of a data processing system. Accordingly, in accordance with another aspect of the present invention, there is provided a data processing system comprising the display controller described above.

데이터 처리 시스템은, 중앙 처리 유닛, 그래픽 처리 유닛, 비디오 프로세서(코덱), 시스템 버스, 메모리 컨트롤러 및 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 알려진 바와 같은 추가 요소의 하나 이상 그리고 바람직하게는 그 전부를 포함할 수 있으며, 바람직하게는 포함한다.The data processing system comprises one or more and preferably one or more of a central processing unit, a graphics processing unit, a video processor (codec), a system bus, a memory controller and additional elements as known to those skilled in the art to which the present invention pertains. may include all of them, preferably includes.

디스플레이 컨트롤러 및/또는 데이터 처리 시스템은, (예를 들어, 메모리 컨트롤러를 통한) 외부 메모리, 하나 이상의 로컬 디스플레이 및/또는 하나 이상의 외부 디스플레이의 하나 이상과 통신하도록 구성될 수 있고, 바람직하게는 그와 같이 구성된다(그리고, 본 발명은 이들의 하나 이상을 포함하는 장치로 확장된다).The display controller and/or data processing system may be configured to communicate with one or more of an external memory (eg, via a memory controller), one or more local displays and/or one or more external displays, preferably with are constructed together (and the invention extends to devices comprising one or more of these).

따라서, 본 발명의 다른 양태에 따르면, 데이터 처리 시스템이 제공되고,Accordingly, according to another aspect of the present invention, there is provided a data processing system,

데이터 처리 시스템은,data processing system,

메인 메모리;main memory;

디스플레이;display;

디스플레이를 위하여 입력 표면을 생성하고 입력 표면을 메인 메모리에 저장하도록 동작 가능한 하나 이상의 처리 유닛; 및one or more processing units operable to generate an input surface for display and store the input surface in main memory; and

디스플레이 컨트롤러를 포함하고,a display controller;

디스플레이 컨트롤러는,display controller,

메인 메모리로부터 적어도 하나의 입력 표면을 판독하도록 동작 가능한 입력 스테이지;an input stage operable to read at least one input surface from main memory;

출력 표면을 생성하기 위하여 하나 이상의 판독된 입력 표면을 처리하도록 동작 가능한 처리 스테이지;a processing stage operable to process one or more read input surfaces to produce an output surface;

디스플레이를 위하여 디스플레이에 출력 표면을 제공하도록 동작 가능한 출력 스테이지; 및an output stage operable to provide an output surface to a display for display; and

메인 메모리에 출력 표면을 기록하도록 동작 가능한 기록 스테이지를 포함한다.and a write stage operable to write the output surface to main memory.

본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 이해되는 바와 같이, 본 발명의 이러한 양태 및 실시예는, 본 명세서에서 설명되는 본 발명의 바람직하고 선택적인 특징의 하나 이상, 그리고 바람직하게는 그 전부를 포함할 수 있으며, 바람직하게는 포함한다.As will be understood by one of ordinary skill in the art to which this invention pertains, these aspects and embodiments of the invention are one or more of the preferred and optional features of the invention described herein, and preferably may include all of them, preferably includes.

본 발명의 디스플레이 컨트롤러는 임의의 적합하고 원하는 방식으로 동작될 수 있다.The display controller of the present invention may be operated in any suitable and desired manner.

디스플레이 컨트롤러의 동작은 고정되고 변경 가능하지 않을 수 있지만, 바람직한 일 실시예에서, 디스플레이 컨트롤러는 복수의 동작 모드로 동작 가능하다. 즉, 디스플레이 컨트롤러는 바람직하게는 적합한 바에 따라 그리고/또는 원하는 바에 따라 복수의 동작 모드로 동작하도록 제어 가능하고 그리고/또는 프로그래밍 가능하다.The operation of the display controller may be fixed and non-changeable, but in one preferred embodiment, the display controller is operable in a plurality of modes of operation. That is, the display controller is preferably controllable and/or programmable to operate in a plurality of modes of operation as appropriate and/or desired.

바람직한 일 실시예에서, 적어도 하나의 입력 표면의 각각은 개별적으로, 바람직하게는 선택적으로, 바람직하게는, 합성되고 그리고/또는 압축되기 전에, 디코딩 및/또는 압축 해제 및/또는 회전 및/또는 스케일링을 받을 수 있다. 바람직한 일 실시예에서, 입력 표면 및/또는 합성 출력 표면은, 바람직하게는, 디스플레이에 제공되기 전에 그리고/또는 외부 메모리에 기록되기 전에, 선택적으로 후처리 및/또는 스케일 및/또는 압축을 받을 수 있다.In a preferred embodiment, each of the at least one input surface is individually, preferably selectively, preferably decoded and/or decompressed and/or rotated and/or scaled before being synthesized and/or compressed. can receive In a preferred embodiment, the input surface and/or the composite output surface may optionally be subjected to post-processing and/or scaling and/or compression, preferably before being provided to a display and/or written to an external memory. have.

바람직한 일 실시예에서, 디스플레이 컨트롤러에 의해 수행되는 모든 처리는 메모리로부터 적어도 하나의 입력 표면을 한 번만 판독한 후에 수행된다. 즉, 디스플레이 컨트롤러는 바람직하게는 디스플레이 컨트롤러로부터 표면들을 출력하거나 이를 외부 메모리에 저장하지 않고 각각의 그 스테이지 사이에서 다양한 입력 및/또는 중간 표면을 전달하도록 구성된다. 이것은, 디스플레이 컨트롤러의 다양한 동작 모드에 대하여, 메인 메모리로부터의 (각각의 입력 표면의) 단일 판독만이 필요하다는 것을 의미한다.In one preferred embodiment, all processing performed by the display controller is performed after reading at least one input surface from memory only once. That is, the display controller is preferably configured to pass various inputs and/or intermediate surfaces between each of its stages without outputting the surfaces from the display controller or storing them in an external memory. This means that for the various modes of operation of the display controller, only a single read (of each input surface) from main memory is required.

바람직한 일 실시예에서, 디스플레이 컨트롤러는 단일 (예를 들어, 로컬) 디스플레이에 출력 표면을 디스플레이하도록 동작될 수 있다. 본 실시예에서, 입력 스테이지에 의해 판독되는 적어도 하나의 입력 표면은, 전술한 바와 같이, 디스플레이를 위하여 디스플레이에 제공되기 전에, 바람직하게는 선택적으로 디코딩 및/또는 압축 해제 및/또는 회전 및/또는 스케일링 및/또는 합성 및/또는 후처리 및/또는 압축을 받는다. 본 실시예에서, 기록 스테이지는 출력 표면을 외부 메모리에 기록할 필요는 없다.In one preferred embodiment, the display controller is operable to display the output surface on a single (eg local) display. In this embodiment, the at least one input surface read by the input stage is, as described above, preferably selectively decoded and/or decompressed and/or rotated and/or rotated and/or before being presented to the display for display. subjected to scaling and/or synthesis and/or post-processing and/or compression. In this embodiment, the write stage need not write the output surface to an external memory.

바람직한 다른 실시예서, 디스플레이 컨트롤러는, 로컬 디스플레이 및 하나 이상의 외부 디스플레이에서와 같이, 복수의 디스플레이에 출력 표면을 제공하는데 사용될 수 있다. 본 실시예에서, 디스플레이 컨트롤러는 단일 디스플레이 동작을 위하여 위에서 논의된 방식으로 하나의(예를 들어, 로컬) 디스플레이에 디스플레이를 위한 출력을 생성하여 제공하도록 동작될 수 있다. 디스플레이 컨트롤러는, 위에서 논의된 방식으로, 출력 표면을 외부 메모리에 기록하도록 더 동작될 수 있다.In another preferred embodiment, the display controller may be used to provide an output surface to a plurality of displays, such as in a local display and one or more external displays. In this embodiment, the display controller may be operable to generate and provide output for display to one (eg, local) display in the manner discussed above for single display operation. The display controller may be further operable to write the output surface to an external memory, in the manner discussed above.

따라서, 바람직한 일 실시예에서, 본 발명의 방법은, 디스플레이 컨트롤러가 출력 표면을 생성하도록 적어도 하나의 입력 표면을 처리하는 단계, 디스플레이를 위하여 로컬 디스플레이에 출력 표면을 제공하는 단계, 및 생성된 출력 표면 또는 생성된 출력 표면의 수정된 형태를 외부 메모리에 기록하는 단계를 포함한다. 바람직한 실시예에서, 디스플레이되는 생성된 출력 표면은 외부 메모리로 기록되기 전에 다운 스케일링되고 그리고/또는 압축된다.Accordingly, in one preferred embodiment, the method of the present invention comprises the steps of processing at least one input surface such that a display controller generates an output surface, providing the output surface to a local display for display, and the resulting output surface. or writing the modified shape of the generated output surface to an external memory. In a preferred embodiment, the generated output surface being displayed is downscaled and/or compressed before being written to external memory.

그 다음, 바람직한 일 실시예에서, 디스플레이 컨트롤러는, 외부 메모리로부터 저장된 출력 표면을 다시 판독하고, 제2(예를 들어, 외부) 디스플레이에 디스플레이를 위한 출력 표면을 제공하도록 동작될 수 있다. 디스플레이 컨트롤러는 이러한 동작을 수행하도록 구성된 제2 입력 스테이지 및/또는 제2 출력 스테이지를 포함할 수 있거나, 또는 (동일한) 입력 스테이지 및/또는 출력 스테이지가 이러한 동작을 수행하는데 사용될 수 있다. 이 대신에, 예를 들어 또는 바람직하게는, 본 발명의 방식으로 구성된 제2 디스플레이 컨트롤러가 외부 메모리로부터 저장된 출력 표면을 판독하고 제2(예를 들어, 외부) 디스플레이에 디스플레이를 위한 출력 표면을 제공하도록 동작될 수 있다.Then, in one preferred embodiment, the display controller is operable to read back the stored output surface from the external memory and provide the output surface for display to a second (eg, external) display. The display controller may include a second input stage and/or second output stage configured to perform these operations, or (same) input and/or output stages may be used to perform these operations. Instead of this, for example or preferably, a second display controller configured in the manner of the present invention reads an output surface stored from an external memory and provides the output surface for display to a second (eg external) display. can be operated to

따라서, 바람직한 일 실시예에서, 데이터 처리 시스템은 본 발명에 따른 제1 디스플레이 컨트롤러와 (예를 들어 그리고 바람직하게는, 본 발명에 따르지만, 그럴 필요는 없는) 제2 디스플레이 컨트롤러를 포함하고, 예를 들어 제1 디스플레이 컨트롤러는 예를 들어 그리고 바람직하게는 로컬 디스플레이인 제1 디스플레이에 대한 인터페이스를 갖고, 예를 들어 제2 디스플레이 컨트롤러는 예를 들어 그리고 바람직하게는 외부 디스플레이인 제2 디스플레이에 대한 인터페이스를 갖는다. 본 발명에 따른 제1 디스플레이 컨트롤러는 바람직하게는 디스플레이를 위한 출력 표면 또는 출력 표면들을 생성하여 이러한 출력 표면을 외부 메모리에 기록하며, 그 다음, 이로부터 제2 디스플레이에서의 디스플레이를 위하여 제2 디스플레이 컨트롤러에 의해 판독될 수 있고, 바람직하게는 판독된다. 제1 및 제2 디스플레이 컨트롤러는 별개의 디스플레이 컨트롤러일 수 있거나, 또는 이들은 전반적인 디스플레이 컨트롤러의 각각의 디스플레이 컨트롤러 "코어(core)"일 수 있다.Thus, in a preferred embodiment, the data processing system comprises a first display controller according to the invention and a second display controller (eg and preferably according to, but need not be, according to the invention), for example The first display controller for example has an interface to a first display which is for example and preferably a local display, for example the second display controller has an interface to a second display which for example and preferably is an external display have The first display controller according to the present invention preferably generates an output surface or output surfaces for display and writes this output surface to an external memory, and then therefrom the second display controller for display in a second display. can be read by, preferably read. The first and second display controllers may be separate display controllers, or they may be respective display controller “cores” of the overall display controller.

그 다음, 이것은 제1 디스플레이 컨트롤러가, 예를 들어, 로컬 디스플레이에서의 디스플레이를 위하여 더욱 정교한 출력 표면을 합성하게 하지만, 더 적은 메모리 대역폭을 이용하여, 제2 디스플레이에서의 디스플레이를 위하여 출력 표면을 제공하게 할 것이다.This then causes the first display controller to synthesize a more sophisticated output surface, for example for display on the local display, but using less memory bandwidth, to provide the output surface for display on the second display. will make

이러한 실시예들에서, 디스플레이 컨트롤러 또는 제2 디스플레이 컨트롤러는 선택적으로는 제2(예를 들어, 외부) 디스플레이에서의 디스플레이를 위하여 출력 표면을 생성하기 위하여 저장된 출력 표면을 처리하도록 동작될 수 있다. 저장된 출력 표면은 위에서 논의된 바와 같이 원하는 임의의 방식으로 처리될 수 있다. 바람직한 일 실시예에서, 저장된 출력 표면은 디스플레이 컨트롤러 또는 제2 디스플레이 컨트롤러에 의해 (적어도) 회전 및/또는 스케일링을 받는다. 바람직하게는, 회전 및/또는 스케일링 동작은 저장된 출력 표면을 제2(예를 들어, 외부) 디스플레이에서의 디스플레이를 위하여 (예를 들어, 적합한 해상도 및/또는 종횡비 등을 갖는) 적합한 출력 표면으로 변환하는데 필요한 적합한 동작이다.In such embodiments, the display controller or second display controller may optionally be operable to process the stored output surface to produce an output surface for display on a second (eg, external) display. The stored output surface may be treated in any desired manner as discussed above. In one preferred embodiment, the stored output surface is (at least) rotated and/or scaled by the display controller or the second display controller. Preferably, the rotation and/or scaling operation converts the stored output surface into a suitable output surface (eg, having a suitable resolution and/or aspect ratio, etc.) for display on a second (eg external) display. This is the appropriate action to do.

이 대신에, (본 발명에 따라 구성된) (제1) 디스플레이 컨트롤러는 제2(예를 들어, 외부) 디스플레이에서의 디스플레이를 위하여 (예를 들어, 적합한 해상도 및/또는 종횡비, 압축 등을 갖는) 적합한 출력 표면인 출력 표면을 외부 메모리로 출력하도록 동작될 수 있다. 따라서, 바람직하게는, 본 실시예에서, 외부 메모리로 출력되는 출력 표면은, 바람직하게는, 제2(예를 들어, 외부) 디스플레이에서의 디스플레이를 위하여 (예를 들어, 적합한 해상도 및/또는 종횡비, 압축 등을 갖는) 적합한 출력 표면을 생성하도록, (본 발명에 따라 구성된) (제1) 디스플레이 컨트롤러에 의해 (적어도) 회전 및/또는 스케일링 및/또는 압축을 받은 출력 표면이다.Alternatively, a (first) display controller (configured in accordance with the present invention) is configured for display on a second (eg, external) display (eg, having a suitable resolution and/or aspect ratio, compression, etc.) It may be operable to output an output surface that is a suitable output surface to an external memory. Thus, preferably, in this embodiment, the output surface output to the external memory is preferably for display on a second (eg external) display (eg suitable resolution and/or aspect ratio) , compression, etc.) an output surface that has been (at least) rotated and/or scaled and/or compressed by a (first) display controller (configured in accordance with the present invention) to produce a suitable output surface.

또, 이것은 제2(외부) 디스플레이에 제공하기 전에, 제2 디스플레이 컨트롤러가 저장된 출력 표면을 처리할 필요가 없다는 것(또는 감소된 양 또는 최소의 양의 처리를 수행할 수 있다는 것)을 의미한다. 바람직한 일 실시예에서, 제2 디스플레이 컨트롤러는 제1 디스플레이 컨트롤러에 의해 생성되고 저장된 출력 표면을 스케일링(그리고 바람직하게는 업 스케일링)만을 하도록 동작된다.Again, this means that the secondary display controller does not need to process the stored output surface (or can perform a reduced or minimal amount of processing) before providing it to the secondary (external) display. . In one preferred embodiment, the second display controller is operated to only scale (and preferably upscale) the output surface generated and stored by the first display controller.

더하여, 이것은 제2 디스플레이 컨트롤러가 본 발명에 따라 구성된 디스플레이 컨트롤러일 필요는 없으며, 대신에 "표준" 디스플레이 컨트롤러일 수 있다는 것을 의미한다. 본 실시예에서, 예를 들어, 예를 들어, "표준" 디스플레이 컨트롤러인 제2 디스플레이 컨트롤러는 저장된 출력 표면을 외부 메모리로부터 판독하여 디스플레이를 위한 출력 표면을 제2(예를 들어, 외부) 디스플레이로 제공하도록 동작되어야 하며, 바람직하게는 그렇게 동작된다.In addition, this means that the second display controller need not be a display controller configured in accordance with the present invention, but may instead be a “standard” display controller. In this embodiment, a second display controller, e.g., a "standard" display controller, reads the stored output surface from the external memory and sends the output surface for display to the second (eg, external) display. should be operated to provide, and preferably so.

따라서, 본 발명의 특히 바람직한 일 실시예는 예를 들어 그리고 바람직하게는 로컬 디스플레이인 데이터 처리 시스템의 제1 디스플레이에 대한 인터페이스를 가지며 본 발명에 따른 디스플레이 컨트롤러인 제1 디스플레이 컨트롤러와, 예를 들어 그리고 바람직하게는 외부 디스플레이인 제2 디스플레이에 대한 인터페이스를 가지며 본 발명에 따른 디스플레이 컨트롤러일 필요가 없는(그러나 바람직하게는 본 발명에 따른 디스플레이 컨트롤러인) 제2 디스플레이 컨트롤러를 포함하며, 시스템은, 제1 디스플레이 컨트롤러가 하나 이상의 입력 표면으로부터 (선택적으로는 압축된) 출력 표면을 생성하고, 또한 제1 디스플레이에 제공된 (선택적으로는 압축된) 출력 표면 또는, 바람직하게는, 제1 디스플레이에 제공된 (선택적으로는 압축된) 출력 표면의 수정된(그리고 바람직하게는 다운 스케일링된) 형태를 외부 메모리에 기록하고, 그 다음, 제2 디스플레이 컨트롤러가 외부 메모리로부터 출력 표면을 판독하여 이를 제2 디스플레이에 제공하도록 동작 가능하다(바람직한 실시예에서는 그렇게 하도록 동작한다). 적어도, 제1 디스플레이에 제공된 출력 표면이 이를 제1 디스플레이 컨트롤러에 의해 외부 메모리에 기록하기 전에 다운 스케일링되는 경우에, 바람직하게는, 제2 디스플레이 컨트롤러는 제2 디스플레이에 제공하기 전에 외부 메모리로부터 출력 표면을 업 스케일링한다.Thus, a particularly preferred embodiment of the invention comprises a first display controller which is a display controller according to the invention, for example and preferably having an interface to a first display of the data processing system, which is a local display, for example and a second display controller having an interface to a second display, preferably an external display, and which does not need to be a display controller according to the invention (but preferably is a display controller according to the invention), the system comprising: The display controller generates (optionally compressed) output surfaces from one or more input surfaces, and also provides (optionally compressed) output surfaces to the first display or, preferably, (optionally compressed) output surfaces provided to the first display. writes a modified (and preferably downscaled) form of the compressed) output surface to an external memory, and then the second display controller reads the output surface from the external memory and provides it to the second display It is possible (the preferred embodiment operates to do so). Preferably, if at least the output surface provided to the first display is downscaled prior to writing it to the external memory by the first display controller, the second display controller will preferably upscaling.

그 다음, 이는, 예를 들어 풀 HD에서, 상이한 디스플레이에 동일한 출력 표면을 디스플레이하기 위한 메커니즘을 제공할 것이지만, 종래 방식에 비하여 메모리 대역폭에서 상당한 절약을 갖는다(예를 들어, 제2 디스플레이 컨트롤러에 의해 업 스케일링되기 전에, 제2 디스플레이에 디스플레이되는 출력 표면이 다운 스케일링된 형태로 기록되어 저장되기 때문이고, 그리고 메인 메모리에 대한 판독 및 기록 액세스의 횟수가 종래 방법과 비교될 때 감소되기 때문이다).This would then provide a mechanism for displaying the same output surface on different displays, eg in Full HD, but with significant savings in memory bandwidth compared to conventional approaches (eg by means of a second display controller). Because the output surface displayed on the secondary display is written and stored in a down-scaled form before being up-scaled, and because the number of read and write accesses to the main memory is reduced when compared to the conventional method).

이러한 방식이 그 자체로 새롭고 유익할 수 있다고 여겨진다.It is believed that this approach could itself be novel and beneficial.

따라서, 본 발명의 다른 양태에 따르면, 데이터 처리 시스템이 제공되고,Accordingly, according to another aspect of the present invention, there is provided a data processing system,

데이터 처리 시스템은,data processing system,

메인 메모리;main memory;

디스플레이;display;

디스플레이를 위하여 입력 표면을 생성하고 메인 메모리에 입력 표면을 저장하도록 동작 가능한 하나 이상의 처리 유닛; 및one or more processing units operable to generate an input surface for display and store the input surface in main memory; and

제1 디스플레이 컨트롤러를 포함하고,a first display controller;

제1 디스플레이 컨트롤러는,The first display controller,

메인 메모리로부터 적어도 하나의 입력 표면을 판독하도록 동작 가능한 입력 스테이지;an input stage operable to read at least one input surface from main memory;

출력 표면을 생성하기 위하여 하나 이상의 판독된 입력 표면을 처리하도록 동작 가능한 처리 스테이지;a processing stage operable to process one or more read input surfaces to produce an output surface;

디스플레이를 위하여 출력 표면을 디스플레이에 제공하도록 동작 가능한 출력 스테이지; 및an output stage operable to provide an output surface to a display for display; and

출력 표면을 메인 메모리에 기록하도록 동작 가능한 기록 스테이지를 포함하고,a write stage operable to write the output surface to main memory;

데이터 처리 시스템은, 제2 디스플레이 컨트롤러를 더 포함하고,The data processing system further comprises a second display controller,

제2 디스플레이 컨트롤러는,The second display controller,

메인 메모리로부터 저장된 출력 표면을 판독하도록 동작 가능한 입력 스테이지; 및an input stage operable to read the stored output surface from the main memory; and

디스플레이를 위하여 제2 디스플레이에 출력 표면을 제공하도록 동작 가능한 출력 스테이지를 포함한다.and an output stage operable to provide an output surface to a second display for display.

본 발명의 다른 양태에 따르면, 디스플레이 컨트롤러를 데이터 처리 시스템에서 동작시키는 방법이 제공되고,According to another aspect of the present invention, there is provided a method of operating a display controller in a data processing system,

데이터 처리 시스템은,data processing system,

메인 메모리;main memory;

디스플레이;display;

디스플레이를 위하여 입력 표면을 생성하고 메인 메모리에 입력 표면을 저장하도록 동작 가능한 하나 이상의 처리 유닛; 및one or more processing units operable to generate an input surface for display and store the input surface in main memory; and

제1 디스플레이 컨트롤러를 포함하고,a first display controller;

제1 디스플레이 컨트롤러는,The first display controller,

메인 메모리로부터 적어도 하나의 입력 표면을 판독하도록 동작 가능한 입력 스테이지;an input stage operable to read at least one input surface from main memory;

출력 표면을 생성하기 위하여 하나 이상의 판독된 입력 표면을 처리하도록 동작 가능한 처리 스테이지;a processing stage operable to process one or more read input surfaces to produce an output surface;

디스플레이를 위하여 출력 표면을 디스플레이에 제공하도록 동작 가능한 출력 스테이지; 및an output stage operable to provide an output surface to a display for display; and

출력 표면을 외부 메모리에 기록하도록 동작 가능한 기록 스테이지를 포함하고,a write stage operable to write the output surface to an external memory;

데이터 처리 시스템은, 제2 디스플레이 컨트롤러를 더 포함하고,The data processing system further comprises a second display controller,

제2 디스플레이 컨트롤러는,The second display controller,

메인 메모리로부터 저장된 출력 표면을 판독하도록 동작 가능한 입력 스테이지; 및an input stage operable to read the stored output surface from the main memory; and

디스플레이를 위하여 제2 디스플레이에 출력 표면을 제공하도록 동작 가능한 출력 스테이지를 포함하고,an output stage operable to provide an output surface to a second display for display;

본 방법은,This method is

제1 디스플레이 컨트롤러가,a first display controller,

메인 메모리로부터 적어도 하나의 입력 표면을 판독하는 단계;reading at least one input surface from main memory;

출력 표면을 생성하기 위하여 적어도 하나의 입력 표면을 처리하는 단계;processing the at least one input surface to create an output surface;

생성된 출력 표면을 디스플레이에 제공하는 단계; 및providing the generated output surface to a display; and

생성된 출력 표면 또는 생성된 출력 표면의 수정된 형태를 외부 메모리에 기록하는 단계를 포함하고,writing the generated output surface or a modified shape of the generated output surface to an external memory;

본 방법은, 제2 디스플레이 컨트롤러가, 메인 메모리로부터 출력 표면을 판독하여 디스플레이를 위하여 상기 제2 디스플레이에 제공하는 단계를 포함한다.The method includes, by a second display controller, reading an output surface from a main memory and providing it to the second display for display.

본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 이해되는 바와 같이, 본 발명의 이러한 양태 또는 실시예는 본 명세서에서 설명된 본 발명의 바람직하고 선택적인 특징의 하나 이상, 그리고 바람직하게는 전부를 포함할 수 있고, 바람직하게는 포함한다. 따라서, 예를 들어, 제1 디스플레이 컨트롤러는, 바람직하게는, 메인(외부) 메모리에 기록하기 전에 제1 디스플레이에 제공된 출력 표면을 다운 스케일링하고, 제2 디스플레이 컨트롤러는, 바람직하게는, 디스플레이를 위하여 제2 디스플레이에 제공하기 전에 메인(외부) 메모리로부터 판독할 때 출력 표면을 업 스케일링한다.As will be understood by one of ordinary skill in the art to which this invention pertains, this aspect or embodiment of the invention is one or more of the preferred and optional features of the invention described herein, and preferably It may include all of them, and preferably includes. Thus, for example, the first display controller preferably downscales the output surface provided to the first display before writing to the main (external) memory, and the second display controller, preferably for the display Upscaling the output surface when reading from main (external) memory before presenting to a secondary display.

압축을 이용하는 실시예에서, 디스플레이 컨트롤러는 디스플레이를 위한 하나 이상의 압축된 출력 표면 및/또는 외부 메모리에 기록하기 위한 하나 이상의 압축된 출력 표면을 생성하도록 동작될 수 있다. 따라서, 본 실시예에서, 처리 스테이지에 의해 생성된 출력 표면은 바람직하게는 압축된 출력 표면이며, 외부 메모리에 기록된 출력 표면은 바람직하게는 압축된 출력 표면이다.In embodiments using compression, the display controller may be operable to generate one or more compressed output surfaces for display and/or one or more compressed output surfaces for writing to external memory. Thus, in this embodiment, the output surface generated by the processing stage is preferably a compressed output surface, and the output surface written to the external memory is preferably a compressed output surface.

출원인은 이것이, 예를 들어, (위에서 논의된 바와 같은) 복수의 디스플레이(복제(cloning)) 방식에서, 특히 제2 디스플레이 컨트롤러도 압축을 사용하는 경우(예를 들어, 디스플레이 스트림 압축(DSC) 스테이지를 포함하는 경우), 특히 유용하다는 것을 인식하였다. 이것은, 예를 들어, 외부 메모리에 기록하기 전에 출력 표면을 압축함으로써, (예를 들어, 위에서 논의된 바와 같이, 제2의 외부 디스플레이 컨트롤러에 의해) 기록 동작 및 임의의 후속 판독 동작 모두에 대하여 메모리 대역폭이 절약될 수 있기 때문이다Applicants claim that this is eg in a multiple display (cloning) scheme (as discussed above), in particular when the second display controller also uses compression (eg Display Stream Compression (DSC) stage). ), was found to be particularly useful. This can be accomplished by compressing the output surface prior to writing to external memory, for example, by compressing the output surface (eg, by a second external display controller, as discussed above) to memory for both a write operation and any subsequent read operation. Because bandwidth can be saved

또한, 제2 디스플레이 컨트롤러가 역시 압축(예를 들어, DSC)을 사용하는 경우, 제1 디스플레이 컨트롤러가 이미 압축된 형태의 출력 표면을 출력하게 함으로써, 제2 디스플레이 컨트롤러가 출력 표면을 수정할 필요가 없다면, 제2 디스플레이 컨트롤러는 압축 동작 자체를 수행할 필요가 없을 것이다(그리고 바람직하게는 수행하지 않는다). 디스플레이 컨트롤러가 출력 표면의 한 부분 또는 부분들만을 수정하는 경우에, 제2 디스플레이 컨트롤러는 출력 표면의 수정되지 않은 부분(들)에 대하여 압축 동작을 수행할 필요가 없을 것이다(그리고 바람직하게는 수행하지 않는다). 따라서, 시스템의 전력 및 대역폭 비용이 더 감소될 수 있다.Also, if the second display controller also uses compression (eg, DSC), it causes the first display controller to output the output surface in an already compressed form, so that the second display controller does not need to modify the output surface. , the second display controller will not need (and preferably does not) perform the compression operation itself. In cases where the display controller modifies only one portion or portions of the output surface, the second display controller will not need (and preferably not) perform a compression operation on the unmodified portion(s) of the output surface. not). Accordingly, the power and bandwidth cost of the system can be further reduced.

일 실시예에서, 디스플레이에 제공된 압축된 출력 표면과 외부 메모리에 기록된 압축된 출력 표면은 동일한 압축된 출력 표면을 포함할 수 있다. 본 실시예에서, 디스플레이 컨트롤러는 바람직하게는 압축된 출력 표면을 생성하고 압축된 출력 표면을 디스플레이에 제공하여 압축된 출력 표면을 외부 메모리에 기록하도록 동작된다(예를 들어, 위에서 논의된 바와 같이, 데이터 흐름 컨트롤러를 통해).In one embodiment, the compressed output surface provided on the display and the compressed output surface written to the external memory may comprise the same compressed output surface. In this embodiment, the display controller is preferably operative to generate a compressed output surface and provide the compressed output surface to the display to write the compressed output surface to an external memory (eg, as discussed above, through the data flow controller).

다른 실시예에서, 디스플레이에 제공된 압축된 출력 표면과 외부 메모리에 기록된 압축된 출력 표면은 상이한 압축된 출력 표면을 포함할 수 있다. 예를 들어, 외부 메모리에 기록된 압축된 출력 표면은 디스플레이에 제공된 압축된 출력 표면의 수정된(예를 들어, 회전되고 그리고/또는 스케일링된) 형태를 포함할 수 있다.In other embodiments, the compressed output surface provided on the display and the compressed output surface written to the external memory may comprise different compressed output surfaces. For example, the compressed output surface written to the external memory may include a modified (eg, rotated and/or scaled) form of the compressed output surface presented to the display.

본 실시예에서, 압축 스테이지는, 외부 메모리로 출력되기 전에, 처리 스테이지에 의해 수정(예를 들어, 회전 및/또는 스케일링)될 수 있는 (로컬 디스플레이에서의 디스플레이를 위한) 압축된 출력 표면을 생성하도록 동작될 수 있다. 그러나, 더욱 바람직하게는, 수정(예를 들어, 회전 및/또는 스케일링) 동작(들)은 압축 동작 전에 수행될 수 있다. 수정(예를 들어, 회전 및/또는 스케일링) 동작(들)이 일반적으로 압축되지 않은 데이터와 양립 가능할 것이지만 압축된 데이터와는 양립 가능하지 않을 수 있기 때문에(예를 들어, DSC를 이용할 때), 이것은 많은 경우에 바람직하다.In this embodiment, the compression stage creates a compressed output surface (for display on a local display) that can be modified (eg, rotated and/or scaled) by the processing stage before being output to external memory. can be operated to However, more preferably, the modifying (eg rotating and/or scaling) operation(s) may be performed prior to the compression operation. Since the modification (eg, rotation and/or scaling) operation(s) will generally be compatible with uncompressed data, but may not be compatible with compressed data (eg, when using DSC); This is desirable in many cases.

이러한 후자의 실시예에서, 디스플레이 컨트롤러는 바람직하게는 제1의 압축된 출력 표면 및 제2의 압축된(선택적으로는 수정된) 출력 표면을 생성하고, 제1의 압축된 출력 표면을 디스플레이에 제공하고 제2의 압축된 출력 표면을 외부 메모리에 기록하도록 동작된다. 따라서, 본 실시예에서, 압축 스테이지는 바람직하게는 (출력 동작 마다) (적어도) 2개의 압축 동작을 수행하도록 동작 가능하다. 압축 스테이지가 디스플레이에 출력된 각각의 표면을 압축하는데 사용되는 경우에(즉, DSC 방식에서 일반적인 경우인 바와 같이), 사용하지 않을 때, 예를 들어, 수평 및/또는 수직 블랭킹 기간 동안, 압축 스테이지는 제2의 압축된(수정된) 출력 표면을 생성한다. 이 대신에, 제2 압축 스테이지는 제2의 압축된(수정된) 출력 표면을 생성하도록 제공될 수 있다In this latter embodiment, the display controller preferably generates a first compressed output surface and a second compressed (optionally modified) output surface and provides the first compressed output surface to the display. and write the second compressed output surface to an external memory. Thus, in this embodiment, the compression stage is preferably operable to perform (at least) two compression operations (per output operation). Compression stage when not in use, e.g. during horizontal and/or vertical blanking periods, when a compression stage is used to compress each surface output to the display (ie, as is the case in DSC schemes). creates a second compressed (modified) output surface. Alternatively, a second compression stage may be provided to create a second compressed (modified) output surface.

일부 실시예에서, 디스플레이 컨트롤러 및/또는 데이터 처리 시스템 본 명세서에서 설명된 데이터를 저장하는 하나 이상의 메모리 및/또는 메모리 장치를 포함하고 그리고/또는 이와 통신하며, 그리고/또는 본 명세서에서 설명된 처리를 수행하기 위한 소프트웨어를 저장한다. 또한, 디스플레이 컨트롤러 및/또는 데이터 처리 시스템은, 호스트 마이크로프로세서와 통신하고 그리고/또는 이를 포함할 수 있고, 그리고/또는 디스플레이 컨트롤러에 의해 생성된 데이터에 기초한 이미지를 디스플레이하기 위하여 디스플레이와 통신하고 그리고/또는 이를 포함할 수 있다.In some embodiments, the display controller and/or data processing system includes and/or communicates with one or more memories and/or memory devices that store data described herein and/or perform the processing described herein. Store the software to run. Further, the display controller and/or data processing system may be in communication with and/or including a host microprocessor and/or in communication with the display to display an image based on data generated by the display controller and/or Or it may include it.

본 발명은 적합하게 구성된 마이크로 프로세서 기반의 시스템과 같은 임의의 적합한 시스템에서 구현될 수 있다. 바람직한 실시예에서, 본 발명은 컴퓨터 및/또는 마이크로 프로세서 기반의 시스템에서 구현될 수 있다.The invention may be implemented in any suitable system, such as a suitably configured microprocessor based system. In a preferred embodiment, the present invention may be implemented in a computer and/or microprocessor based system.

본 발명의 다양한 기능은 임의의 원하는 적합한 방식으로 수행될 수 있다. 예를 들어, 본 발명의 기능은 원하는 바에 따라 하드웨어 또는 소프트웨어로 구현될 수 있다. 따라서, 예를 들어, 달리 표시되지 않는다면, 본 발명의 다양한 기능적 요소 및 "수단"은, 원하는 방식으로 동작하도록 프로그래밍될 수 있는, 적합한 전용 하드웨어 요소 및/또는 프로그래머블 하드웨어 요소와 같은 다양한 기능 등을 수행하도록 동작 가능한 적합한 프로세서 또는 프로세서들, 컨트롤러 또는 컨트롤러들, 기능 유닛, 회로, 처리 로직, 마이크로 프로세서 장치 등을 포함할 수 있다.The various functions of the present invention may be performed in any desired and suitable manner. For example, the functions of the present invention may be implemented in hardware or software as desired. Thus, for example, unless otherwise indicated, various functional elements and "means" of the present invention perform various functions, such as suitable dedicated and/or programmable hardware elements, which can be programmed to operate in a desired manner, and/or the like. may include any suitable processor or processors, controller or controllers, functional unit, circuit, processing logic, microprocessor device, etc., operable to

또한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 이해되는 바와 같이, 본 발명의 다양한 기능 등은 복제되고 그리고/또는 주어진 프로세서에서 병렬로 수행될 수 있다. 마찬가지로, 다양한 처리 스테이지는, 원한다면, 처리 회로 등을 공유할 수 있다는 것이 주목되어야 한다.In addition, as will be understood by those skilled in the art to which the present invention pertains, various functions and the like of the present invention may be duplicated and/or performed in parallel in a given processor. Likewise, it should be noted that the various processing stages may share processing circuitry, etc., if desired.

전술한 특정 기능을 수행하는데 필요한 임의의 하드웨어에 따라, 그래픽 처리 시스템 및 파이프라인은 그래픽 처리 파이프라인이 포함하는 통상의 기능 유닛 등의 임의의 하나 이상 또는 모두를 포함할 수 있다.Depending on any hardware required to perform the specific functions described above, the graphics processing system and pipeline may include any one or more or all of the common functional units that the graphics processing pipeline includes.

또한, 본 발명의 설명된 양태 및 실시예가 본 명세서에 설명된 바람직하고 선택적인 특징의 임의의 하나 이상 또는 모두를 적합한 바에 따라 포함할 수 있고 바람직하게는 포함한다는 것이 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 이해될 것이다.It is also common in the art that the described aspects and embodiments of the invention may and preferably include any one or more or all of the preferred and optional features described herein, as appropriate. will be understood by those with the knowledge of

본 발명에 따른 방법은 적어도 부분적으로 소프트웨어, 예를 들어, 컴퓨터 프로그램을 이용하여 구현될 수 있다. 따라서, 다른 양태로부터 검토될 때, 본 발명이, 데이터 처리 수단에 설치될 때 본 명세서에서 설명된 방법을 수행하도록 구체적으로 맞추어진 컴퓨터 소프트웨어, 프로그램 요소가 데이터 처리 수단에서 실행될 때 본 명세서에서 설명된 방법을 수행하기 위한 컴퓨터 소프트웨어 코드 부분을 포함하는 컴퓨터 프로그램 요소, 및 프로그램이 데이터 처리 시스템에서 실행될 때 본 명세서에서 설명된 방법 또는 방법들의 모든 단계를 수행하도록 맞추어진 코드 수단을 포함하는 컴퓨터 프로그램을 제공한다는 것을 알 수 있을 것이다. 데이터 프로세서는 마이크로 프로세서 시스템, 프로그래머블 FPGA(field programmable gate array) 등일 수 있다.The method according to the invention can be implemented at least in part using software, for example a computer program. Thus, when viewed from another aspect, the present invention is computer software specifically adapted to perform the methods described herein when installed in data processing means, program elements described herein when executed in data processing means providing a computer program comprising computer program elements comprising portions of computer software code for performing a method, and code means adapted to perform all steps of a method or methods described herein when the program is executed in a data processing system you will find out that The data processor may be a microprocessor system, a programmable field programmable gate array (FPGA), or the like.

또한, 본 발명은 그래픽 프로세서, 렌더러 또는 데이터 처리 수단을 포함하는 그래픽 처리 시스템을 동작시키는데 사용될 때, 상기 데이터 처리 수단과 함께 상기 프로세서, 렌더러 또는 시스템이 본 발명의 방법의 단계들을 수행하게 하는 소프트웨어를 포함하는 컴퓨터 소프트웨어 캐리어로 확장된다. 이러한 컴퓨터 소프트웨어 캐리어는 ROM 칩, CD ROM, RAM, 플래시 메모리 또는 디스크와 같은 물리적 저장 매체일 수 있거나, 또는 유선을 통한 전자 신호, 광 신호 또는 위성 등과 같은 것으로의 무선 신호와 같은 신호일 수 있다.The invention also provides software which, when used to operate a graphics processing system comprising a graphics processor, renderer or data processing means, causes said processor, renderer or system together with said data processing means to perform the steps of the method of the invention. extended to a computer software carrier comprising Such computer software carrier may be a physical storage medium such as a ROM chip, CD ROM, RAM, flash memory or disk, or it may be a signal such as an electronic signal over a wire, an optical signal or a wireless signal such as a satellite or the like.

본 발명의 방법의 모든 단계들이 컴퓨터 소프트웨어에 의해 수행될 필요는 없으며, 따라서 본 발명의 더욱 넓은 양태로부터 본 발명이 본 명세서에서 설명된 방법의 단계들 중 적어도 하나를 수행하기 위하여 컴퓨터 소프트웨어 캐리어에 설치된 이러한 소프트웨어 및 컴퓨터 소프트웨어를 제공한다는 것이 더 이해될 것이다.Not all steps of the method of the present invention need be performed by computer software, and thus, from a broader aspect of the present invention, the present invention is installed on a computer software carrier in order to perform at least one of the steps of the method described herein. It will be further appreciated that such software and computer software are provided.

따라서, 적합하게는, 본 발명은 컴퓨터 시스템과 함께 사용하기 위한 컴퓨터 프로그램 제품으로서 구체화될 수 있다. 이러한 구현은 예를 들어 디스켓, CD-ROM, ROM, RAM, 플래시 메모리 또는 하드 디스크인 컴퓨터 판독 가능한 매체와 같은 유형의 비일시적(non-transitory) 매체에 정착된 일련의 컴퓨터 판독 가능한 명령어를 포함할 수 있다. 또한, 이는 광학 또는 아날로그 통신 라인을 포함하지만 이에 한정되지 않는 유형의 매체를 통해, 또는 마이크로파, 적외선 또는 다른 통신 기술을 포함하지만 이에 한정되지 않는 무선 기술을 이용하여 무형으로, 모뎀 또는 다른 인터페이스 장치를 통해, 컴퓨터 시스템에 전송 가능한 일련의 컴퓨터 판독 가능한 명령어를 포함할 수 있다. 일련의 컴퓨터 판독 가능한 명령어는 본 명세서에서 전술된 기능의 전부 또는 일부를 구체화한다.Accordingly, suitably, the present invention may be embodied as a computer program product for use with a computer system. Such implementations may include a set of computer readable instructions embodied in a tangible non-transitory medium such as a computer readable medium, which is, for example, a diskette, CD-ROM, ROM, RAM, flash memory or hard disk. can It can also be used to connect a modem or other interface device, intangible, over tangible media, including but not limited to optical or analog communication lines, or using wireless technology, including but not limited to microwave, infrared or other communication technologies. through which it may include a series of computer readable instructions transmittable to a computer system. A set of computer readable instructions embody all or some of the functions described herein.

본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 이러한 컴퓨터 판독 가능한 명령어가 많은 컴퓨터 아키텍처 또는 운영 체제와의 사용을 위하여 다수의 프로그래밍 언어로 기록될 수 있다는 것을 이해할 것이다. 또한, 이러한 명령어는 반도체, 자기 또는 광학을 포함하지만 이에 한정되지 않는 현존하거나 또는 장래의 임의의 메모리 기술을 이용하여 저장될 수 있거나, 광학식, 적외선 또는 마이크로파를 포함하지만 이에 한정되지 않는 현존하거나 또는 장래의 임의의 통신 기술을 이용하여 전송될 수 있다. 이러한 컴퓨터 프로그램 제품이 수반되는 인쇄된 문서 또는 전자 문서와 함께 예를 들어 수축 포장된(shrink wrapped) 소프트웨어와 같이 이동 가능한 매체로서 배포되거나, 예를 들어 시스템 ROM 또는 고정 디스크에서 컴퓨터 시스템에 프리로딩되거나, 또는 인터넷 또는 WWW(World Wide Web)인 네트워크를 통한 전자 게시판 또는 서버로부터 분포될 수 있다는 것이 고려된다.Those of ordinary skill in the art will appreciate that such computer readable instructions may be written in a number of programming languages for use with many computer architectures or operating systems. Further, such instructions may be stored using any existing or future memory technology, including but not limited to semiconductor, magnetic, or optics, or existing or future existing or future memory technologies including, but not limited to, optical, infrared or microwave. may be transmitted using any communication technology of These computer program products are distributed as removable media, for example shrink wrapped software, together with accompanying printed or electronic documentation, or preloaded into a computer system, for example from a system ROM or fixed disk, or , or from a bulletin board or server via a network that is the Internet or WWW (World Wide Web).

본 발명에 대한 다수의 바람직한 실시예가 다음과 같은 첨부된 도면을 참조하여 단지 예로서만 설명될 것이다:
도 1은 프레임 버퍼 합성 과정을 개략적으로 도시한다;
도 2는 프레임 버퍼 합성 시스템을 개략적으로 도시한다;
도 3은 듀얼 디스플레이 프레임 버퍼 합성 과정을 개략적으로 도시한다;
도 4는 듀얼 디스플레이 프레임 버퍼 합성 시스템을 개략적으로 도시한다;
도 5는 본 발명의 일 실시예에 따른 디스플레이 컨트롤러를 개략적으로 도시한다;
도 6은 본 발명의 일 실시예에 따른 합성 시스템을 개략적으로 도시한다;
도 7은 본 발명의 일 실시예에 따른 합성 과정을 개략적으로 도시한다;
도 8은 본 발명의 일 실시예에 따른 듀얼 디스플레이 합성 과정을 도시한다;
도 9a 및 9b는 본 발명의 실시예에 따른 압축을 이용하는 듀얼 디스플레이 과정을 도시한다.
유사한 도면 부호는, 적합한 바에 따라, 도면 전체에 걸쳐 유사한 컴포넌트에 대하여 사용된다.
A number of preferred embodiments of the present invention will be described by way of example only with reference to the accompanying drawings in which:
1 schematically shows the frame buffer synthesis process;
Fig. 2 schematically shows a frame buffer synthesis system;
Fig. 3 schematically shows the dual display frame buffer synthesis process;
Fig. 4 schematically shows a dual display frame buffer synthesizing system;
Fig. 5 schematically shows a display controller according to an embodiment of the present invention;
6 schematically shows a synthesis system according to an embodiment of the present invention;
7 schematically shows a synthesis process according to an embodiment of the present invention;
8 shows a dual display synthesizing process according to an embodiment of the present invention;
9A and 9B illustrate a dual display process using compression according to an embodiment of the present invention.
Like reference numerals are used for like components throughout the drawings, where appropriate.

본 발명의 바람직한 실시예가 도 5 내지 9를 참조하여 설명될 것이다.A preferred embodiment of the present invention will be described with reference to Figs.

도 5는 본 발명의 일 실시예에 따른 디스플레이 컨트롤러(12)를 개략적으로 도시한다. 도 5에서, 그림자가 있는 직사각형은 디스플레이 컨트롤러의 기능 유닛을 나타내고, 화살표가 있는 선은 다양한 기능 유닛 사이의 연결을 나타낸다.5 schematically shows a display controller 12 according to an embodiment of the present invention. In Fig. 5, a rectangle with a shadow indicates a functional unit of the display controller, and a line with an arrow indicates a connection between the various functional units.

본 실시예에서, 디스플레이 컨트롤러(12)는 DMA(Direct Memory Access) 판독 컨트롤러(20)의 형태로 판독 컨트롤러를 포함한다. 판독 컨트롤러(20)는 AXI(Advance eXtensible Interface)를 통해 메인 메모리(3)(도 5에서는 미도시)로부터 하나 이상의 입력 표면을 판독하도록 구성된다. 하나 이상의 입력 표면은 일반적으로 RGB 데이터의 형태를 가질 것이다. 입력 FIFO 제어부(21)는, 본 발명이 속하는 기술 분야에서 알려진 바와 같이, 판독 컨트롤러(20)의 동작을 제어한다.In the present embodiment, the display controller 12 includes a read controller in the form of a DMA (Direct Memory Access) read controller 20 . The read controller 20 is configured to read one or more input surfaces from the main memory 3 (not shown in FIG. 5 ) via an Advanced eXtensible Interface (AXI). The one or more input surfaces will generally be in the form of RGB data. The input FIFO control unit 21 controls the operation of the read controller 20, as is known in the art.

판독 컨트롤러(20)에 의한 하나 이상의 입력 표면의 온워드(onward) 전송 전에, 필요에 따라 수신된 입력 표면을 (선택적으로) 디코딩하는데 사용될 수 있는 프레임 버퍼 압축 디코더(22)가 판독 컨트롤러(20)와 함께 배치된다. 유사하게, 회전 유닛(23)이 하나 이상의 입력 표면의 온워드 전송 전에 필요에 따라 하나 이상의 입력 표면을 선택적으로 회전시키는데 사용될 수 있다.Prior to onward transmission of one or more input surfaces by the read controller 20, a frame buffer compression decoder 22, which may be used to (optionally) decode the received input surfaces as needed, is provided to the read controller 20 is placed with Similarly, rotation unit 23 may be used to selectively rotate one or more input surfaces as needed prior to onward transfer of the one or more input surfaces.

예시된 실시예에서, 판독 컨트롤러(20)는 합성 출력 프레임을 생성하는데 사용될 3개까지의 상이한 입력 표면(레이어)을 판독하도록 구성된다. 본 실시예에서, 3개의 입력 레이어는, 예를 들어, 비디오 프로세서(코덱)에 의해 생성되는 하나의 비디오 레이어와, 예를 들어, 그래픽 처리 유닛(GPU)에 의해 생성된 2개의 그래픽 윈도우인 2개의 그래픽 레이어를 포함한다. 따라서, 도 5는 3개의 채널, 즉 비디오 채널(24), 제1 그래픽 채널(25) 및 제2 그래픽 채널(26)을 통해 3개의 입력 표면(디스플레이 레이어)를 온워드 전송하는 판독 컨트롤러(20)를 도시한다. 임의의 또는 모든 전송된 입력 표면은, 위에서 논의된 바와 같이, 디코더(22)에 의한 디코딩 및/또는 회전 유닛(23)에 의한 회전을 받았을 수 있다.In the illustrated embodiment, the read controller 20 is configured to read up to three different input surfaces (layers) to be used to generate the composite output frame. In the present embodiment, the three input layers are, for example, one video layer generated by a video processor (codec) and two graphics windows generated by, for example, a graphics processing unit (GPU). It contains two graphic layers. Accordingly, FIG. 5 shows a readout controller 20 that transmits three input surfaces (display layers) on-word over three channels: video channel 24 , first graphics channel 25 and second graphics channel 26 . ) is shown. Any or all transmitted input surfaces may have been subjected to decoding by decoder 22 and/or rotation by rotation unit 23 , as discussed above.

도 5의 실시예가 3개의 입력 표면의 사용을 예시하지만, 논의가 되는 적용례에 따라(그리고 또한 임의의 실리콘 면적 제약 등에 따라), 임의의 개수의 입력 표면(레이어)이 본 발명에 사용될 수 있다는 것이 이해될 것이다. 마찬가지로 임의의 개수의 채널이 원하는 바에 따라 제공되어 사용될 수 있다.Although the embodiment of Figure 5 illustrates the use of three input surfaces, it is understood that any number of input surfaces (layers) may be used in the present invention, depending on the application in question (and also any silicon area constraints, etc.) will be understood Likewise, any number of channels may be provided and used as desired.

본 실시예의 디스플레이 컨트롤러(12)는 멀티플렉서/데이터-흐름 제어부(27)를 더 포함한다. 예시된 실시예에서, 디스플레이 컨트롤러는, 멀티플렉서(27)가, 그 중에서도, 비디오 채널(24)과 제1 그래픽 채널(25)로부터 입력을 수신하도록 구성된다. 그러나, 다른 실시예에서, 디스플레이 컨트롤러(12)는 멀티플렉서(27)가 임의의 하나 이상의(또는 모든) 입력 표면 채널로부터 입력을 수신하도록 구성될 수 있다는 것이 이해될 것이다. 멀티플렉서(27)는 임의의 하나 이상의(또는 모든) 수신된 입력(즉, 표면)을 멀티플렉서(27)의 임의의 하나 이상의 출력에 선택적으로 전송하도록 동작한다.The display controller 12 of this embodiment further includes a multiplexer/data-flow controller 27 . In the illustrated embodiment, the display controller is configured such that the multiplexer 27 receives inputs from the video channel 24 and the first graphics channel 25 , among others. However, it will be appreciated that in other embodiments, display controller 12 may be configured such that multiplexer 27 receives input from any one or more (or all) input surface channels. The multiplexer 27 is operative to selectively transmit any one or more (or all) received inputs (ie, surfaces) to any one or more outputs of the multiplexer 27 .

본 실시예의 디스플레이 컨트롤러(12)는 합성 유닛(28)을 더 포함한다. 예시된 실시예에서, 디스플레이 컨트롤러는 합성 유닛(28)이 멀티플렉서(27)로부터 그리고 제2 그래픽 채널(26)로부터 직접 입력을 수신하도록 구성된다. 그러나, 다른 실시예에서, 합성 유닛(28)이 임의의 하나 이상의 채널로부터 직접 또는 이 대신에 멀티플렉서(27)로부터 독점적으로 입력을 수신하도록 디스플레이 컨트롤러(12)가 구성될 수 있다는 것이 이해될 것이다.The display controller 12 of this embodiment further includes a synthesizing unit 28 . In the illustrated embodiment, the display controller is configured such that the synthesizing unit 28 receives input directly from the multiplexer 27 and from the second graphics channel 26 . However, it will be appreciated that in other embodiments, display controller 12 may be configured such that synthesizing unit 28 receives input exclusively from multiplexer 27 directly from or instead of any one or more channels.

합성 유닛(28)은, 본 발명이 속하는 기술 분야에서 알려진 바와 같이, 합성 출력 프레임을 생성하기 위하여, 즉 적합한 혼합 동작 등에 의해, 수신된 입력 표면을 합성하도록 동작한다. 예시된 실시예에서, 합성 출력 프레임은 합성 유닛(28)에 의해 멀티플렉서(27)로 그리고 또한 후처리 파이프라인(29)으로 온워드 전송된다. The synthesizing unit 28 is operative to synthesize the received input surfaces, ie, by suitable mixing operations or the like, to produce a composite output frame, as is known in the art. In the illustrated embodiment, the synthesizing output frame is sent onword by synthesizing unit 28 to multiplexer 27 and also to post-processing pipeline 29 .

후처리 파이프라인(29)은 합성 출력 표면(프레임)에서 임의의 원하는 처리 동작(들)을 선택적으로 수행하도록 구성된다. 후처리 파이프라인(29)은, 예를 들어, 합성 출력 프레임에 색 변환을 적용하도록 동작 가능한 색 변환 스테이지, 합성 출력 프레임에 디더링(dithering)을 적용하도록 동작 가능한 디더링 스테이지 및/또는 합성 출력 프레임에 감마 보정(gamma correction)을 수행하도록 동작 가능한 감마 보정 스테이지를 포함할 수 있다.Post-processing pipeline 29 is configured to selectively perform any desired processing operation(s) on the composite output surface (frame). Post-processing pipeline 29 may include, for example, a color conversion stage operable to apply a color transform to the composite output frame, a dithering stage operable to apply dithering to the composite output frame and/or to the composite output frame. and a gamma correction stage operable to perform gamma correction.

본 실시예에서, 후처리 파이프라인(29)은 (로컬) 디스플레이(미도시)에서의 적합한 디스플레이를 위한 디스플레이 타이밍 유닛(30)을 포함하는 출력 스테이지에 (처리된) 합성 출력 프레임을 전송하도록 구성된다.In the present embodiment, the post-processing pipeline 29 is configured to send the (processed) composite output frame to an output stage comprising a display timing unit 30 for suitable display on a (local) display (not shown). do.

디스플레이 타이밍 유닛(30)은, 본 발명이 속하는 기술 분야에서 알려진 바와 같이, 적합한 수평 및 수직 블랭킹 기간을 가지면서 디스플레이에 픽셀 데이터를 전송하도록 구성된다. 수평 및 수직 동기화 펄스(HSYNC, VSYNC)가 비블랭킹(non-blanking) 기간에 어서트되는(asserted) DATAEN 신호와 함께 생성된다. 블랭킹 기간에, DATAEN은 디어서트되고(de-asserted), 어떠한 데이터도 디스플레이에 전송되지 않는다(본 발명이 속하는 기술 분야에서 알려진 바와 같이, 다음의 4개의 블랭킹 구간이 있다: 수평 프론트 포치(horizontal front porch) - HSYNC 펄스 전, 수평 백 포치(horizontal back porch) - HSYNC 펄스 후, 수직 프론트 포치(vertical front porch) - VSYNC 펄스 전, 수직 백 포치(vertical back porch) - VSYNC 펄스 후).The display timing unit 30 is configured to transmit pixel data to the display with suitable horizontal and vertical blanking periods, as is known in the art. Horizontal and vertical synchronization pulses (HSYNC, VSYNC) are generated with the DATAEN signal asserted in a non-blanking period. In the blanking period, the DATAEN is de-asserted and no data is transmitted to the display (as is known in the art, there are four blanking periods: horizontal front porch) front porch - before HSYNC pulse, horizontal back porch - after HSYNC pulse, vertical front porch - before VSYNC pulse, vertical back porch - after VSYNC pulse).

본 실시예의 디스플레이 컨트롤러(12)는 스케일링(scaling) 엔진(31)을 더 포함한다. 디스플레이 컨트롤러(12)는, 스케일링 엔진(31)이 멀티플렉서(27)로부터 입력을 수신하도록 구성된다. 멀티플렉서(27)는, 예를 들어, (즉, 비디오 채널(24), 그래픽 채널(25) 및/또는 그래픽 채널(26)으로부터의) 임의의 하나 이상의 입력 표면 및/또는 (즉, 합성 유닛(26)으로부터의) 합성 출력 프레임을 스케일링 엔진(31)으로 전송하도록 동작될 수 있다.The display controller 12 of this embodiment further includes a scaling engine 31 . The display controller 12 is configured such that the scaling engine 31 receives an input from the multiplexer 27 . The multiplexer 27 may be configured for, for example, any one or more input surfaces (ie, from the video channel 24 , the graphics channel 25 and/or the graphics channel 26 ) and/or (ie the synthesizing unit ( 26 ) to the scaling engine 31 .

스케일링 엔진(31)은 스케일링된 표면(프레임)을 생성하기 위하여 임의의 하나 이상의 수신된 표면(프레임)을 (선택적으로) 스케일링(즉, 업 스케일링 또는 다운 스케일링)하도록 동작한다. 따라서, 스케일링 엔진(31)은 하나 이상의 스케일링된 입력 표면을 생성하기 위한 임의의 하나 이상의 입력 표면(즉, 비디오 채널(24), 그래픽 채널(25) 및/또는 그래픽 채널(26)으로부터의) 및/또는 스케일링된 합성 출력 프레임을 생성하기 위한 합성 출력 프레임을 스케일링하도록 동작될 수 있다. 본 실시예에서, 표면이 스케일링되는 정도는 원하는 바에 따라, 즉 특정 애플리케이션 등에 따라, 선택될 수 있다.The scaling engine 31 operates to (optionally) scale (ie, up-scaling or down-scaling) any one or more received surfaces (frames) to produce a scaled surface (frames). Accordingly, the scaling engine 31 may include any one or more input surfaces (ie, from video channel 24 , graphics channel 25 , and/or graphics channel 26 ) for generating one or more scaled input surfaces and and/or scale the composite output frame to generate a scaled composite output frame. In this embodiment, the degree to which the surface is scaled can be selected as desired, ie depending on a particular application or the like.

스케일링 엔진(31)은 멀티플렉서(27) 및/또는 기록 컨트롤러(32)에 스케일링된 표면을 선택적으로 전송하도록 구성된다. 따라서, 예를 들어, 디스플레이 컨트롤러(12)는 하나 이상의 입력 표면이 합성 유닛(28)에 의해 합성되기 전에 스케일링 엔진(31)을 이용하여 하나 이상의 입력 표면(즉, 비디오 채널(24), 그래픽 채널(25) 및/또는 그래픽 채널(26)으로부터의)을 스케일링하도록 동작될 수 있다. 마찬가지로 디스플레이 컨트롤러(12)는, 예를 들어, 합성 출력 프레임이 기록 컨트롤러(32)에 전송되기 전에(그리고 그로부터 메인 메모리(3)로 기록되기 전에), 스케일링 엔진(31)을 이용하여 합성 출력 프레임을 스케일링하도록 동작될 수 있다.The scaling engine 31 is configured to selectively transmit the scaled surface to the multiplexer 27 and/or the write controller 32 . Thus, for example, the display controller 12 may use the scaling engine 31 to generate one or more input surfaces (ie, the video channel 24 , the graphics channel) before the one or more input surfaces are synthesized by the synthesizing unit 28 . (25) and/or from the graphics channel 26). The display controller 12 likewise uses the scaling engine 31 , for example, before the composite output frame is sent to the write controller 32 (and from there it is written to the main memory 3 ) to frame the composite output frame. may be operated to scale

본 실시예에서, 기록 컨트롤러(32)는 DMA 기록 컨트롤러의 형태를 취한다. 기록 컨트롤러(32)는 AXI를 통해 외부 메모리(3)(예를 들어, 프레임 버퍼)로 수신된 표면(프레임)을 기록하도록 구성된다. 본 실시예의 기록 컨트롤러(32)는 스케일링 엔진(31)으로부터 그리고 멀티플렉서(27)로부터 출력을 위하여 표면(프레임)을 수신하도록 구성된다. 따라서, 실시예에서, 기록 컨트롤러(32)는 스케일링되거나 스케일링되지 않은 합성 출력 프레임을 메인 메모리로 기록하도록 동작될 수 있다.In this embodiment, the write controller 32 takes the form of a DMA write controller. The write controller 32 is configured to write the received surface (frame) to the external memory 3 (eg, a frame buffer) via AXI. The recording controller 32 of this embodiment is configured to receive a surface (frame) for output from the scaling engine 31 and from the multiplexer 27 . Thus, in an embodiment, write controller 32 may be operable to write scaled or unscaled composite output frames to main memory.

본 실시예에서, 스케일링 엔진(31)과 통신하도록 구성된 특수 기능 레지스터(SFR(special function register))가 스케일링 엔진(31)과 함께 배치된다. APB(Advanced Peripheral Bus) 슬레이브(34)가 SFR(33)와 SFR(35) 및 APB 인터페이스와 통신한다.In the present embodiment, a special function register (SFR) configured to communicate with the scaling engine 31 is disposed together with the scaling engine 31 . An Advanced Peripheral Bus (APB) slave 34 communicates with the SFR 33 and the SFR 35 and the APB interface.

따라서, 본 발명의 이러한 바람직한 실시예는 합성 유닛(28), 디코더(22) 및 회전 유닛(23)과, 표면을 업 스케일링 및 다운 스케일링할 수 있는 스케일링 엔진(31)을 통합하는 디스플레이 컨트롤러를 포함한다. 디스플레이 컨트롤러는 스케일링된 표면을 로컬 디스플레이 파이프라인에 전송하고 그리고/또는 이를 프레임 버퍼에 라이트-백할 수 있다. 여러 상이한 동작 모드는 디스플레이에 의해, 예를 들어, 컨트롤러를 통해 데이터 흐름을 제어하기 위하여 멀티플렉서(27)를 동작시켜 수행될 수 있다.Accordingly, this preferred embodiment of the present invention comprises a display controller incorporating a synthesizing unit 28, a decoder 22 and a rotation unit 23 and a scaling engine 31 capable of upscaling and downscaling the surface. do. The display controller may send the scaled surface to the local display pipeline and/or write it back to the frame buffer. Several different modes of operation may be performed by the display, for example by operating the multiplexer 27 to control the data flow through the controller.

합성 유닛(28)은 디스플레이 컨트롤러 내에 임베디드되어, 프레임 버퍼로부터의 (각각의 입력 표면의) 단일 판독만이 필요하도록 합성 유닛(28)에 의해 합성된 표면이 디스플레이에 디스플레이될 수 있다. 중간 합성 데이터는 외부 메모리에 기록될 필요가 없다.The compositing unit 28 is embedded within the display controller so that the surface synthesized by the synthesizing unit 28 can be displayed on the display such that only a single read (of each input surface) from the frame buffer is required. The intermediate composite data need not be written to an external memory.

합성 전에, 표면은 개별적으로 회전되고, 디코딩되고 그리고/또는 전처리(예를 들어, 선형 및 비선형 색 변환)될 수 있다. 모든 이러한 처리는 외부 메모리로부터의 입력 프레임의 단일 판독 후에 수행될 수 있다.Prior to compositing, the surface may be individually rotated, decoded and/or preprocessed (eg, linear and non-linear color conversion). All such processing can be performed after a single read of an input frame from an external memory.

합성 전에, 임의의 하나 이상의 표면이 스케일링 엔진(31)에 의해 업 스케일링 또는 다운 스케일링될 수 있다. 소프트웨어 구성에 따라, 데이터-흐름 컨트롤러(27)는 임의의 입력 표면(예를 들어, 비디오 또는 그래픽 입력 레이어)을 스케일링 엔진(31)으로 전송하도록 동작될 수 있다. 그 다음, 입력 표면은, 합성되고 디스플레이되도록, 처리되어(스케일링되어) 디스플레이 엔진으로 다시 전송될 수 있다. 또한, 디스플레이 컨트롤러(12)에 의해 수행되는 스케일링 동작은 외부 메모리로부터 입력 표면의 단일 판독 이후에 수행될 수 있다. 어떠한 중간 데이터도 외부 메모리에 기록될 필요는 없다.Prior to compositing, any one or more surfaces may be upscaled or downscaled by the scaling engine 31 . Depending on the software configuration, the data-flow controller 27 may be operable to send any input surface (eg, a video or graphics input layer) to the scaling engine 31 . The input surface can then be processed (scaled) and sent back to the display engine to be synthesized and displayed. Also, the scaling operation performed by the display controller 12 may be performed after a single read of the input surface from an external memory. No intermediate data need be written to the external memory.

따라서, 본 실시예의 디스플레이 컨트롤러(12)는 회전되고 디코딩된 표면 및 3D 비디오 표면을 모두 단일 패스(pass)에서 지원한다.Accordingly, the display controller 12 of this embodiment supports both a rotated decoded surface and a 3D video surface in a single pass.

합성 후에, 출력 표면(예를 들어, RGB 픽셀 스트림)은 선택적으로 색 변환, 디더링 및/또는 감마 보정을 적용할 수 있는 후처리 파이프라인(29)을 통해 디스플레이(6)에 전송될 수 있다. 또한, 동일한 합성 결과는 스케일링되어 메모리(3)에 기록되도록 스케일링 엔진(31)에 전송될 수 있거나, 합성 결과는 스케일링 없이 메모리(3)에 기록될 수 있다.After compositing, the output surface (eg, a stream of RGB pixels) may be sent to the display 6 via a post-processing pipeline 29 which may optionally apply color conversion, dithering and/or gamma correction. Also, the same synthesis result may be sent to the scaling engine 31 to be scaled and written to the memory 3 , or the synthesis result may be written to the memory 3 without scaling.

도 5의 실시예에서는 도시되지 않았지만, 다른 실시예에서, 디스플레이 컨트롤러(12)는, 추가로 또는 대체하여, 예를 들어, 하나 이상의 압축된 표면이 디스플레이로 출력되고 그리고/또는 메모리(3)로 기록되기 전에, 하나 이상의 수신된 표면을 압축하도록, 예를 들어, 하나 이상의 압축된 표면을 생성하도록 동작 가능한 압축 스테이지를 포함할 수 있다.Although not shown in the embodiment of FIG. 5 , in other embodiments, the display controller 12 may additionally or alternatively output, for example, one or more compressed surfaces to the display and/or to the memory 3 . and a compression stage operable to compress the one or more received surfaces prior to being written, eg to create one or more compressed surfaces.

도 6은 본 발명의 일 실시예에 따른 디스플레이 합성 시스템을 도시한다. 시스템은, 본 발명의 실시예에 따라 2개의 디스플레이 컨트롤러(5, 11)가 디스플레이 컨트롤러(12)로 대체되는 점을 제외하고는 도 4의 시스템에 대응한다. 디스플레이 컨트롤러(12)는 로컬 디스플레이 장치(6)와 외부 디스플레이 장치(10)와 (예를 들어, 출력 프레임이 그에 디스플레이되게 하기 위하여) 통신하도록 동작 가능하다.6 shows a display synthesizing system according to an embodiment of the present invention. The system corresponds to the system of FIG. 4 except that the two display controllers 5 and 11 are replaced by the display controller 12 according to the embodiment of the present invention. The display controller 12 is operable to communicate with a local display device 6 and an external display device 10 (eg, to cause an output frame to be displayed thereon).

도 7은, 일 실시예에 따라, 단일 디스플레이 구성으로 본 발명의 디스플레이 컨트롤러(12)를 동작시키는 방법을 개략적으로 예시한다. 비디오 코덱(1)과 GPU(2)는 메인 메모리(3)(예를 들어, 프레임 버퍼 0, 1 및 2)에 저장되는 하나 이상의 입력 표면을 생성한다. 비디오 입력 표면은 디스플레이 컨트롤러(12)에 의해 판독되고, 합성을 위하여 합성 유닛(28)으로 전송되기 전에, 색 변환 동작 및 스케일링 동작을 받는다. 그래픽 입력 표면은 합성 유닛(28)에 직접 공급된다. 합성 유닛(28)은 수신된 입력 표면을 합성하여 합성 출력 프레임을 생성하고, 이는 그 다음 디스플레이 제어부(30)에 의해 로컬 디스플레이(6)에 디스플레이되게 된다.7 schematically illustrates a method of operating the display controller 12 of the present invention in a single display configuration, according to one embodiment. The video codec 1 and GPU 2 create one or more input surfaces that are stored in main memory 3 (eg frame buffers 0, 1 and 2). The video input surface is read by the display controller 12 and subjected to color conversion and scaling operations before being sent to the compositing unit 28 for compositing. The graphic input surface is fed directly to the synthesizing unit 28 . The synthesizing unit 28 synthesizes the received input surfaces to generate a composite output frame, which is then displayed by the display control 30 on the local display 6 .

도 8은 본 발명에 따른 듀얼 디스플레이 구성의 디스플레이 컨트롤러(12)의 일 실시예를 개략적으로 예시한다. 본 실시예에서, 디스플레이 컨트롤러(12)는 각각 로컬 디스플레이(6) 및 외부 디스플레이(10)와 인터페이스하는 2개의 디스플레이 "코어(core)"(40, 41)를 포함한다.8 schematically illustrates one embodiment of a display controller 12 in a dual display configuration according to the present invention. In this embodiment, the display controller 12 includes two display “cores” 40 , 41 that interface with a local display 6 and an external display 10 respectively.

비디오 코덱(1)과 GPU(2)는 메인 메모리(3)(예를 들어, 프레임 버퍼 0, 1 및 2) 내에 저장되는 하나 이상의 입력 표면을 생성한다. 비디오 입력 표면은 디스플레이 컨트롤러(12)의 1차 코어(40)에 의해 판독되고, 합성을 위하여 합성 유닛(28)으로 전송되기 전에, 색 변환 동작 및 스케일링 동작을 받는다. 그래픽 입력 표면은 합성 유닛(28)에 직접 공급된다. 합성 유닛(28)은 수신된 입력 표면을 합성하여 합성 출력 프레임을 생성하고, 이는 그 다음 디스플레이 제어부(30)에 의해 로컬 디스플레이(6)에 디스플레이되게 된다.Video codec 1 and GPU 2 create one or more input surfaces that are stored in main memory 3 (eg frame buffers 0, 1 and 2). The video input surface is read by the primary core 40 of the display controller 12 and subjected to a color conversion operation and a scaling operation before being sent to a compositing unit 28 for compositing. The graphic input surface is fed directly to the synthesizing unit 28 . The synthesizing unit 28 synthesizes the received input surfaces to generate a composite output frame, which is then displayed by the display control 30 on the local display 6 .

또한, 합성 출력 프레임은, 합성 출력 프레임을 메인 메모리(3)(예를 들어, 프레임 버퍼 3)에 기록하는 1차 디스플레이 코어(40)의 기록 컨트롤러(32)에 전송된다.Further, the composite output frame is transmitted to the write controller 32 of the primary display core 40 which writes the composite output frame to the main memory 3 (eg, frame buffer 3).

그 다음, 디스플레이 컨트롤러(12)의 2차 디스플레이 코어(41)는 메인 메모리(3)로부터 합성 출력 프레임을 판독하고, 이것이 디스플레이 제어부(30)를 이용하여 외부 디스플레이(10)에 디스플레이되게 하기 전에, 이것으로 하여금 적합한 회전, 스케일링 및 합성을 받게 한다.Then, the secondary display core 41 of the display controller 12 reads the composite output frame from the main memory 3 and causes it to be displayed on the external display 10 using the display controller 30, This allows it to undergo proper rotation, scaling and compositing.

다른 실시예에서, 도 8에 도시된 바와 같이 2개의 디스플레이 "코어"를 갖는 디스플레이 컨트롤러(12) 대신에, 2차 디스플레이 코어(41)는 이 대신에 메인 메모리(3)로부터 합성 출력 프레임을 판독하고, 이것으로 하여금 적합한 회전, 스케일링 및 합성을 받게 하고, 이것이 외부 디스플레이(10)에 디스플레이되게 하는 별개의 제2 디스플레이 컨트롤러일 수 있다.In another embodiment, instead of the display controller 12 having two display “cores” as shown in FIG. 8 , the secondary display core 41 instead reads the composite output frame from the main memory 3 . , and subjecting it to proper rotation, scaling and compositing, and causing it to be displayed on the external display 10 , may be a separate second display controller.

이러한 방식에서, 제2 디스플레이 컨트롤러 또는 2차 디스플레이 코어는 본 발명에 따라 구성될 수 있다. 이 대신에, 제2 디스플레이 컨트롤러 또는 2차 디스플레이 코어(41)는 "통상의" 디스플레이 컨트롤러로서 구성될(이를 포함할) 수 있다. 본 실시예에서, 제1 디스플레이 컨트롤러(12)(1차 디스플레이 코어)는, 합성 출력 프레임이 외부 메모리(3)로 출력되기 전에, 적합한 회전 및/또는 스케일링을 수행하도록 동작될 수 있다. 제2 디스플레이 컨트롤러(2차 디스플레이 코어)는 "표준" 디스플레이 컨트롤러 기능이 아닌 어떠한 기능도 가질 필요는 없다.In this way, the second display controller or the secondary display core may be configured according to the present invention. Alternatively, the second display controller or secondary display core 41 may be configured (including) as a “normal” display controller. In the present embodiment, the first display controller 12 (primary display core) may be operable to perform appropriate rotation and/or scaling before the composite output frame is output to the external memory 3 . The second display controller (secondary display core) need not have any function other than the "standard" display controller function.

이러한 실시예들의 어느 것에서도, 종래의 방법과 비교될 때, 메인 메모리로의 판독 및 기록 액세스 횟수는 감소된다.In any of these embodiments, when compared to the conventional method, the number of read and write accesses to the main memory is reduced.

도 9a 및 9b는 본 발명에 따른 듀얼 디스플레이 구성의 실시예를 개략적으로 예시한다.9a and 9b schematically illustrate an embodiment of a dual display configuration according to the present invention.

도 9a 및 9b 모두에서, (예를 들어, 카메라 이미지 신호 프로세서(ISP(Image Signal Processor)), CPU, GPU, 비디오 엔진/코덱, 이미지 프로세서 등을 포함할 수 있는) 프레임 생성기(51)는 메인 메모리(3)에 저장되는 하나 이상의 프레임을 생성한다. 프레임은 디스플레이 컨트롤러(52)에 의해 판독되고, 선택적으로는 수정 및/또는 합성 등이 되고(예를 들어, 전술한 바와 같이), 압축 스테이지(53)에 의해 압축된다. 본 실시예에서, 압축 스테이지는 디스플레이 스트림 압축(DSC(Display Stream Compression)) 스테이지를 포함할 수 있다. 그 다음, 압축된 출력은 로컬 디스플레이(6)에 전송되어 디스플레이된다.9A and 9B, frame generator 51 (which may include, for example, a camera image signal processor (ISP), CPU, GPU, video engine/codec, image processor, etc.) is the main It creates one or more frames that are stored in memory 3 . Frames are read by display controller 52 , optionally modified and/or composited or the like (eg, as described above), and compressed by compression stage 53 . In this embodiment, the compression stage may include a Display Stream Compression (DSC) stage. The compressed output is then sent to a local display 6 for display.

또한, 압축된 출력 및 수정된 형태는 재사용(예를 들어, 복제(cloning))을 위하여 제2 디스플레이 컨트롤러(54)에 전송된다. 도 9a는 데이터가 메인 메모리(3)를 통해 제2 디스플레이 컨트롤러(54)로 전송되는 실시예를 도시하며, 도 9b는 데이터가 제2 컨트롤러로 직접 전송되는 실시예를 도시한다.Further, the compressed output and modified form are sent to the second display controller 54 for reuse (eg, cloning). Fig. 9A shows an embodiment in which data is transmitted to the second display controller 54 through the main memory 3, and Fig. 9B shows an embodiment in which data is sent directly to the second controller.

본 실시예에서, 제2 디스플레이 컨트롤러(54)는 메모리(3)로부터 데이터를 수신하거나 판독하고, 선택적으로는, (예를 들어, 유선 또는 무선 연결을 통해) 외부 디스플레이(10)로 이를 전송하기 전에, 수신된 데이터의 모든 또는 하나 이상의 부분을 수정한다.In this embodiment, the second display controller 54 receives or reads data from the memory 3 and optionally transmits it to the external display 10 (eg, via a wired or wireless connection). Before modifying all or one or more parts of the received data.

따라서, 이러한 방식에서, (DSC) 압축 이미지는, 제2 디스플레이 컨트롤러(54)에 의해 페치되고(fetch) 디스플레이도록, 제1 디스플레이 컨트롤러(52)에 의해 디스플레이되고 라이트-백(write back)될 수 있다.Thus, in this manner, the (DSC) compressed image can be displayed and written back by the first display controller 52 to be fetched and displayed by the second display controller 54 . have.

이러한 방식에서, 제1 디스플레이 컨트롤러(52)로부터 제2 디스플레이 컨트롤러(54)로 전송되는 데이터는 압축된다. 또한, 제2 디스플레이 컨트롤러(54)가 디스플레이되기 전에 데이터를 수정하지 않는다면, 제2 디스플레이 컨트롤러(54)는 적합하게 압축된 디스플레이 출력을 생성하기 위하여 자신의 압축 동작을 수행할 필요는 없다(예를 들어, DSC가 제2 디스플레이 컨트롤러(54)에 의해 사용되는 경우). 제2 디스플레이 컨트롤러(54)가 데이터의 하나 이상의 영역(예를 들어, 하나 이상의 블록 또는 타일(tile))을 수정한다면, 제2 디스플레이 컨트롤러(54)는 압축된 디스플레이 출력을 생성하기 위하여 수정되지 않은 영역을 압축할 필요는 없다. 따라서, 시스템의 대역폭 및 전력 요건이 감소될 수 있다.In this way, data transmitted from the first display controller 52 to the second display controller 54 is compressed. Also, if the second display controller 54 does not modify the data before being displayed, the second display controller 54 need not perform its own compression operation to produce a suitably compressed display output (eg, For example, if the DSC is used by the second display controller 54). If the second display controller 54 modifies one or more regions of the data (eg, one or more blocks or tiles), the second display controller 54 returns the unmodified display output to produce a compressed display output. There is no need to compress the area. Accordingly, the bandwidth and power requirements of the system can be reduced.

본 실시예에서, 제2 디스플레이 컨트롤러(54)를 위한 이미지가 회전을 필요로 하면, 회전은 제1 디스플레이 컨트롤러(54)에서 수행되고, 메모리(3)로 라이트-백될 프레임은 로컬 디스플레이(6)에 디스플레이될 프레임과 별도로 압축된다. 이것은 DSC가 회전과 양립하지 않기 때문이다.In this embodiment, if the image for the second display controller 54 requires rotation, the rotation is performed in the first display controller 54 , and the frame to be written-back to the memory 3 is transferred to the local display 6 . It is compressed separately from the frame to be displayed on the . This is because DSC is not compatible with rotation.

제2 디스플레이 컨트롤러(54)를 위한 이미지가 (다운) 스케일링을 필요로 하면, 이것은, 스케일링의 성질에 따라, 제1 디스플레이 컨트롤러(52)에 의해 수행되거나(그리고 메모리(3)로 라이트-백될 프레임은 개별적으로 압축되어야 한다), 또는 제2 디스플레이 컨트롤러(54)에 의해 수행될(그리고, 메모리(3)로 라이트-백될 프레임은 로컬 디스플레이(6)에 전송된 동일한 압축 프레임이어야 한다) 수 있다.If the image for the second display controller 54 requires (down) scaling, this is done by the first display controller 52 (and to be written back to the memory 3 ), depending on the nature of the scaling, the frame must be individually compressed), or performed by the second display controller 54 (and the frame to be written back to the memory 3 must be the same compressed frame sent to the local display 6 ).

메모리(3)로 라이트-백될 프레임이 로컬 디스플레이(6)에 디스플레이될 프레임과 별도로 압축되는 경우, 압축 스테이지가 사용되지 않는 동안, 예를 들어, 수평 또는 수직 블랭킹 동안, 추가 압축이 수행될 수 있다. 이 대신에, 제2 압축 스테이지가 추가 압축을 위하여 사용될 수 있다.If the frames to be written back to the memory 3 are compressed separately from the frames to be displayed on the local display 6, further compression may be performed while the compression stage is not in use, for example during horizontal or vertical blanking. . Alternatively, a second compression stage may be used for further compression.

다른 실시예에서, 제2 디스플레이 컨트롤러(54)는 예를 들어, 데이터가 네트워크를 통해 전송되거나 무선으로 전송되는 비디오 인코더로 대체될 수 있다.In another embodiment, the second display controller 54 may be replaced with, for example, a video encoder in which data is transmitted over a network or wirelessly.

다양한 실시예에서, 제1 디스플레이 컨트롤러(52) 및 제2 디스플레이 컨트롤러(54)는 별개의 디스플레이 컨트롤러일 수 있거나, 단일의 듀얼 출력 디스플레이 컨트롤러(예를 들어, 전 술한 바와 같은)의 부분일 수 있다.In various embodiments, first display controller 52 and second display controller 54 may be separate display controllers, or may be part of a single dual output display controller (eg, as described above). .

전술한 바로부터, 본 발명의 바람직한 실시예가 (GPU 및 비디오 디코더에 의해 생성된) 다중 비디오 및 그래픽 레이어가 메모리로부터 페치되어 합성될 필요가 있는 시스템 온 칩에서의 미디어 서브시스템 내에서의 전력 소비의 최소화를 가능하게 한다는 것을 알 수 있다.From the foregoing, it can be seen that a preferred embodiment of the present invention is a reduction in power consumption within a media subsystem in a system-on-chip where multiple video and graphics layers (generated by the GPU and video decoder) need to be fetched from memory and synthesized. It can be seen that minimization is possible.

또한, 듀얼 디스플레이 디자인을 위하여, 본 발명은 하나의 디스플레이 프로세서 내에서 정교한 장면을 구성하는데 사용될 수 있다. 그 다음, 이 장면은 다른 디스플레이 컨트롤러에 의해 재판독되도록 스케일링(예를 들어, 다운 스케일링)되어 메모리(3)에 라이트-백될 수 있다. 그 결과, 동일한 컨텐츠(그리나 상이한 해상도 및/또는 종횡비를 허용함)가 양 디스플레이에 디스플레이될 필요가 있을 때, 메모리 대역폭이 절약될 수 있다.Also, for dual display designs, the present invention can be used to compose sophisticated scenes within one display processor. This scene can then be scaled (eg downscaled) and written-back to memory 3 for re-reading by another display controller. As a result, memory bandwidth can be saved when the same content (but allowing for different resolutions and/or aspect ratios) needs to be displayed on both displays.

Claims (30)

데이터 처리 시스템으로서,
메인 메모리;
제1 디스플레이;
디스플레이를 위하여 입력 표면들(surfaces)을 생성하여 상기 입력 표면들을 상기 메인 메모리에 저장하도록 동작 가능한 하나 이상의 처리 유닛; 및
제1 디스플레이 컨트롤러를 구비하고,
상기 제1 디스플레이 컨트롤러는,
상기 메인 메모리로부터 적어도 하나의 입력 표면을 판독하도록 동작 가능한 입력 스테이지;
하나 이상의 판독된 입력 표면들을 처리하여 출력 표면을 생성하도록 동작 가능한 처리 스테이지;
상기 처리 스테이지로부터 상기 생성된 출력 표면을 직접 수신하여 상기 생성된 출력 표면을 디스플레이를 위하여 상기 제1 디스플레이에 제공하도록 동작 가능하되, 디스플레이를 위하여 상기 출력 표면이 상기 제1 디스플레이에 의해 디스플레이되도록 동작 가능한, 출력 스테이지; 및
상기 처리 스테이지로부터 출력 표면을 직접 수신하여 상기 출력 표면을 상기 메인 메모리에 기록하도록 동작 가능한 기록 스테이지를 구비하고, 상기 제1 디스플레이 컨트롤러는 집적 회로를 구비하고, 상기 집적 회로는 상기 입력 스테이지와 상기 처리 스테이지를 포함하고, 상기 집적 회로는 상기 출력 스테이지와 상기 기록 스테이지를 포함하고, 상기 메인 메모리는 상기 집적 회로의 외부에 있고,
상기 데이터 처리 시스템은,
상기 메인 메모리로부터 상기 제1 디스플레이 컨트롤러에 의해 생성된 저장된 출력 표면을 판독하도록 동작 가능한 입력 스테이지; 및
디스플레이를 위하여 제2 디스플레이에 상기 판독된 출력 표면을 제공하도록 동작 가능한 출력 스테이지를 구비하는 제2 디스플레이 컨트롤러를 더 구비하는, 데이터 처리 시스템.
A data processing system comprising:
main memory;
a first display;
one or more processing units operable to generate input surfaces for display and store the input surfaces in the main memory; and
A first display controller is provided,
The first display controller,
an input stage operable to read at least one input surface from the main memory;
a processing stage operable to process one or more read input surfaces to produce an output surface;
operable to receive the generated output surface directly from the processing stage and provide the generated output surface to the first display for display, wherein the output surface is operable to be displayed by the first display for display , the output stage; and
a write stage operable to directly receive an output surface from the processing stage and write the output surface to the main memory, the first display controller comprising an integrated circuit, the integrated circuit comprising the input stage and the processing a stage, wherein the integrated circuit includes the output stage and the write stage, wherein the main memory is external to the integrated circuit;
The data processing system,
an input stage operable to read a stored output surface generated by the first display controller from the main memory; and
and a second display controller having an output stage operable to provide the read output surface to a second display for display.
제1항에 있어서,
상기 처리 스테이지는, 합성 출력 표면을 제공하기 위하여 2 이상의 입력 표면을 합성하도록 동작하는 합성 스테이지를 포함하고,
상기 제1 디스플레이 컨트롤러의 상기 출력 스테이지는 상기 합성 출력 표면 또는 상기 합성 출력 표면의 수정된 형태를 상기 제1 디스플레이에 제공하도록 동작 가능하고,
상기 기록 스테이지는 상기 합성 출력 표면 또는 상기 합성 출력 표면의 수정된 형태를 상기 메인 메모리에 기록하도록 동작 가능한, 데이터 처리 시스템.
According to claim 1,
wherein the processing stage comprises a compositing stage operative to synthesize two or more input surfaces to provide a composite output surface;
the output stage of the first display controller is operable to provide the composite output surface or a modified form of the composite output surface to the first display;
and the write stage is operable to write the composite output surface or a modified form of the composite output surface to the main memory.
제1항에 있어서,
상기 처리 스테이지는, 입력 표면 및/또는 출력 표면을 스케일링하도록 동작 가능한 스케일링 스테이지를 포함하는, 데이터 처리 시스템.
According to claim 1,
wherein the processing stage comprises a scaling stage operable to scale an input surface and/or an output surface.
제1항에 있어서,
상기 처리 스테이지는, 상기 입력 표면 및/또는 출력 표면을 상기 제1 디스플레이 컨트롤러의 스테이지들로 선택적으로 향하게 하도록 동작 가능한 데이터 흐름 컨트롤러를 포함하는, 데이터 처리 시스템.
According to claim 1,
wherein the processing stage includes a data flow controller operable to selectively direct the input surface and/or output surface to stages of the first display controller.
제4항에 있어서,
상기 데이터 흐름 컨트롤러는, 하나 이상의 입력 표면을 상기 제1 디스플레이 컨트롤러의 합성 스테이지로 향하게 하도록 동작 가능한, 데이터 처리 시스템.
5. The method of claim 4,
wherein the data flow controller is operable to direct one or more input surfaces to a compositing stage of the first display controller.
제4항에 있어서,
상기 데이터 흐름 컨트롤러는, 합성된 표면을 스케일링 스테이지로 향하게 하도록 동작 가능하고, 상기 스케일링 스테이지는 상기 합성된 표면을 스케일링하도록 동작 가능한, 데이터 처리 시스템.
5. The method of claim 4,
wherein the data flow controller is operable to direct the synthesized surface to a scaling stage, the scaling stage operable to scale the synthesized surface.
제4항에 있어서,
상기 데이터 흐름 컨트롤러는, 합성된 및/또는 스케일링된 표면을 상기 기록 스테이지로 향하게 하도록 동작 가능하고, 상기 기록 스테이지는 상기 합성된 및/또는 스케일링된 표면을 상기 메인 메모리에 기록하도록 동작 가능한, 데이터 처리 시스템.
5. The method of claim 4,
The data flow controller is operable to direct a synthesized and/or scaled surface to the write stage, the write stage operable to write the synthesized and/or scaled surface to the main memory. system.
제1항에 있어서,
상기 처리 스테이지는 입력 표면을 디코딩 및/또는 압축 해제하도록 동작 가능한 디코딩 스테이지를 포함하는, 데이터 처리 시스템.
According to claim 1,
wherein the processing stage comprises a decoding stage operable to decode and/or decompress an input surface.
제1항에 있어서,
상기 처리 스테이지는 입력 표면을 회전시키도록 동작 가능한 회전 스테이지를 포함하는, 데이터 처리 시스템.
According to claim 1,
wherein the processing stage comprises a rotation stage operable to rotate the input surface.
제1항에 있어서,
상기 처리 스테이지는, 하나 이상의 처리 동작을 합성된 표면에 수행하도록 동작 가능한 하나 이상의 후처리 스테이지를 포함하는, 데이터 처리 시스템.
According to claim 1,
wherein the processing stage comprises one or more post-processing stages operable to perform one or more processing operations on the composited surface.
제1항에 있어서,
상기 처리 스테이지는 입력 표면 및/또는 출력 표면을 압축하도록 동작 가능한 압축 스테이지를 포함하는, 데이터 처리 시스템.
According to claim 1,
wherein the processing stage comprises a compression stage operable to compress an input surface and/or an output surface.
삭제delete 삭제delete 디스플레이 컨트롤러를 데이터 처리 시스템에서 동작시키는 방법에 있어서,
상기 데이터 처리 시스템은,
메인 메모리;
디스플레이;
디스플레이를 위하여 입력 표면들(surfaces)을 생성하여 상기 입력 표면들을 상기 메인 메모리에 저장하도록 동작 가능한 하나 이상의 처리 유닛; 및
제1 디스플레이 컨트롤러를 구비하고,
상기 제1 디스플레이 컨트롤러는,
상기 메인 메모리로부터 적어도 하나의 입력 표면을 판독하도록 동작 가능한 입력 스테이지;
하나 이상의 판독된 입력 표면들을 처리하여 출력 표면을 생성하도록 동작 가능한 처리 스테이지;
상기 처리 스테이지로부터 상기 출력 표면을 직접 수신하여 상기 출력 표면을 디스플레이를 위하여 상기 디스플레이에 제공하도록 동작 가능하되, 디스플레이를 위하여 상기 출력 표면이 상기 디스플레이에 의해 디스플레이되도록 동작 가능한, 출력 스테이지; 및
상기 처리 스테이지로부터 출력 표면을 직접 수신하여 상기 출력 표면을 상기 메인 메모리에 기록하도록 동작 가능한 기록 스테이지를 구비하고, 상기 제1 디스플레이 컨트롤러는 집적 회로를 구비하고, 상기 집적 회로는 상기 입력 스테이지와 상기 처리 스테이지를 구비하고, 상기 집적 회로는 상기 출력 스테이지와 상기 기록 스테이지를 구비하고, 상기 메인 메모리는 상기 집적 회로의 외부에 있고,
상기 데이터 처리 시스템은 제2 디스플레이 컨트롤러를 더 구비하고,
상기 제2 디스플레이 컨트롤러는,
상기 메인 메모리로부터 저장된 출력 표면을 판독하도록 동작 가능한 입력 스테이지; 및
상기 출력 표면을 디스플레이를 위하여 제2 디스플레이에 제공하도록 동작 가능한 출력 스테이지를 구비하고,
상기 방법은,
상기 제1 디스플레이 컨트롤러가,
상기 메인 메모리로부터 적어도 하나의 입력 표면을 판독하는 단계;
상기 적어도 하나의 입력 표면을 처리하여 출력 표면을 생성하는 단계;
상기 생성된 출력 표면을 상기 디스플레이에 제공하는 단계; 및
상기 생성된 출력 표면 또는 상기 생성된 출력 표면의 수정된 형태를 상기 메인 메모리에 기록하는 단계를 포함하고,
상기 제2 디스플레이 컨트롤러가, 상기 메인 메모리부터 상기 생성된 출력 표면 또는 상기 생성된 출력 표면의 상기 수정된 형태를 판독하여 디스플레이를 위하여 상기 제2 디스플레이에 제공하는 단계를 포함하는, 디스플레이 컨트롤러를 데이터 처리 시스템에서 동작시키는 방법.
A method of operating a display controller in a data processing system, comprising:
The data processing system,
main memory;
display;
one or more processing units operable to generate input surfaces for display and store the input surfaces in the main memory; and
A first display controller is provided,
The first display controller,
an input stage operable to read at least one input surface from the main memory;
a processing stage operable to process one or more read input surfaces to produce an output surface;
an output stage operable to receive the output surface directly from the processing stage and provide the output surface to the display for display, wherein the output surface is operable to be displayed by the display for display; and
a write stage operable to directly receive an output surface from the processing stage and write the output surface to the main memory, the first display controller comprising an integrated circuit, the integrated circuit comprising the input stage and the processing a stage, wherein the integrated circuit has the output stage and the write stage, the main memory being external to the integrated circuit;
The data processing system further comprises a second display controller,
The second display controller,
an input stage operable to read a stored output surface from the main memory; and
an output stage operable to provide the output surface to a second display for display;
The method is
The first display controller,
reading at least one input surface from the main memory;
processing the at least one input surface to produce an output surface;
providing the generated output surface to the display; and
writing the generated output surface or a modified shape of the generated output surface to the main memory;
and the second display controller reading the generated output surface or the modified form of the generated output surface from the main memory and providing it to the second display for display. How the system works.
삭제delete 제14항에 있어서,
상기 제1 디스플레이 컨트롤러가, 합성 출력 표면을 생성하기 위하여 2 이상의 입력 표면을 합성하는 단계;
상기 합성 출력 표면 또는 상기 합성 출력 표면의 수정된 형태를 상기 메인 메모리에 기록하는 단계; 및
상기 합성 출력 표면 또는 상기 합성 출력 표면의 수정된 형태를 상기 디스플레이에 제공하는 단계를 포함하는, 디스플레이 컨트롤러를 데이터 처리 시스템에서 동작시키는 방법.
15. The method of claim 14,
compositing, by the first display controller, two or more input surfaces to create a composite output surface;
writing the composite output surface or a modified shape of the composite output surface to the main memory; and
providing the composite output surface or a modified form of the composite output surface to the display.
제14항에 있어서,
상기 제1 디스플레이 컨트롤러가, 입력 표면 및 합성 출력 표면 중 적어도 하나를 스케일링하는 단계를 포함하는, 디스플레이 컨트롤러를 데이터 처리 시스템에서 동작시키는 방법.
15. The method of claim 14,
and scaling, by the first display controller, at least one of an input surface and a composite output surface.
제14항에 있어서,
상기 제1 디스플레이 컨트롤러가, 적어도 하나의 입력 표면을 디코딩 및/또는 압축 해제하는 단계를 포함하는, 디스플레이 컨트롤러를 데이터 처리 시스템에서 동작시키는 방법.
15. The method of claim 14,
and the first display controller decoding and/or decompressing at least one input surface.
제14항에 있어서,
상기 제1 디스플레이 컨트롤러가, 적어도 하나의 입력 표면을 회전시키는 단계를 포함하는, 디스플레이 컨트롤러를 데이터 처리 시스템에서 동작시키는 방법.
15. The method of claim 14,
and the first display controller rotating at least one input surface.
제14항에 있어서,
상기 제1 디스플레이 컨트롤러가, 디스플레이를 위하여 상기 디스플레이에 제공하기 전에 합성 출력 표면에 하나 이상의 처리 동작을 수행하는 단계를 포함하는, 디스플레이 컨트롤러를 데이터 처리 시스템에서 동작시키는 방법.
15. The method of claim 14,
and the first display controller performing one or more processing operations on the composite output surface prior to providing it to the display for display.
제14항에 있어서,
상기 제1 디스플레이 컨트롤러가, 입력 표면 및/또는 출력 표면을 압축하는 단계를 포함하는, 디스플레이 컨트롤러를 데이터 처리 시스템에서 동작시키는 방법.
15. The method of claim 14,
and the first display controller compressing an input surface and/or an output surface.
삭제delete 제14항에 있어서,
상기 제1 디스플레이 컨트롤러는 상기 생성된 출력 표면의 다운 스케일링된 형태를 상기 메인 메모리에 기록하기 전에 상기 생성된 출력 표면의 상기 다운 스케일링된 형태를 생성하기 위하여 상기 디스플레이에 제공된 상기 생성된 출력 표면을 다운 스케일링하고, 상기 제2 디스플레이 컨트롤러는 상기 출력 표면을 디스플레이를 위하여 상기 제2 디스플레이에 제공하기 전에 상기 메인 메모리로부터 상기 생성된 출력 표면의 상기 다운 스케일링된 형태를 판독할 때 상기 출력 표면의 상기 다운 스케일링된 형태를 업 스케일링하는, 디스플레이 컨트롤러를 데이터 처리 시스템에서 동작시키는 방법.
15. The method of claim 14,
The first display controller downloads the generated output surface provided to the display to generate the down-scaled shape of the generated output surface before writing the down-scaled shape of the generated output surface to the main memory. scaling, and the second display controller is configured to downscale the output surface when reading the downscaled shape of the generated output surface from the main memory before providing the output surface to the second display for display. A method of operating a display controller in a data processing system for upscaling the displayed form.
데이터 처리 수단에서 실행될 때, 제14항 또는 제16항의 방법을 수행하기 위한 컴퓨터 소프트웨어 코드를 포함하는 컴퓨터 판독 가능한 기억매체에 기억된 컴퓨터 프로그램.
A computer program stored in a computer readable storage medium comprising computer software code for performing the method of claim 14 or 16 when executed in the data processing means.
제3항에 있어서,
상기 처리 스테이지의 상기 스케일링 스테이지는 상기 생성된 출력 표면을 스케일링하여 상기 생성된 출력 표면의 스케일링된 형태를 생성하도록 동작 가능하고,
상기 기록 스테이지는 상기 생성된 출력 표면의 상기 스케일링된 형태를 상기 메인 메모리에 기록하도록 동작 가능한, 데이터 처리 시스템.
4. The method of claim 3,
the scaling stage of the processing stage is operable to scale the generated output surface to produce a scaled shape of the generated output surface;
and the write stage is operable to write the scaled shape of the generated output surface to the main memory.
제11항에 있어서,
상기 처리 스테이지의 상기 압축 스테이지는 상기 생성된 출력 표면을 압축하여 상기 생성된 출력 표면의 압축된 형태를 생성하도록 동작 가능하고,
상기 제1 디스플레이 컨트롤러의 상기 출력 스테이지는 상기 생성된 출력 표면의 상기 압축된 형태를 상기 제1 디스플레이에 제공하도록 동작 가능하고, 및/또는
상기 기록 스테이지는 상기 생성된 출력 표면의 상기 압축된 형태를 외부 메인 메모리에 기록하도록 동작 가능한, 데이터 처리 시스템.
12. The method of claim 11,
the compression stage of the processing stage is operable to compress the generated output surface to produce a compressed form of the generated output surface;
the output stage of the first display controller is operable to provide the compressed form of the generated output surface to the first display, and/or
and the write stage is operable to write the compressed form of the generated output surface to an external main memory.
제16항에 있어서,
상기 제1 디스플레이 컨트롤러는 상기 합성 출력 표면을 스케일링하는 것을 포함하는, 디스플레이 컨트롤러를 데이터 처리 시스템에서 동작시키는 방법.
17. The method of claim 16,
and the first display controller scales the composite output surface.
제14항에 있어서,
상기 기록 스테이지는 합성된 및/또는 스케일링된 표면을 상기 메인 메모리에 기록하는 것을 포함하는, 디스플레이 컨트롤러를 데이터 처리 시스템에서 동작시키는 방법.
15. The method of claim 14,
wherein the writing stage includes writing a synthesized and/or scaled surface to the main memory.
제17항에 있어서,
상기 제1 디스플레이 컨트롤러는 상기 생성된 출력 표면을 스케일링하여 상기 생성된 출력 표면의 스케일링된 형태을 생성하고,
상기 기록 스테이지는 상기 생성된 출력 표면의 상기 스케일링된 형태을 상기 메인 메모리에 기록하는 것을 포함하는, 디스플레이 컨트롤러를 데이터 처리 시스템에서 동작시키는 방법.
18. The method of claim 17,
the first display controller scales the generated output surface to generate a scaled shape of the generated output surface;
wherein the writing stage includes writing the scaled shape of the generated output surface to the main memory.
제21항에 있어서,
상기 제1 디스플레이 컨트롤러는 상기 생성된 출력 표면을 압축하여 상기 생성된 출력 표면의 압축된 형태을 생성하고,
상기 제1 디스플레이 컨트롤러의 상기 출력 스테이지는 상기 생성된 출력 표면의 상기 압축된 형태을 상기 디스플레이에 제공하고, 및/또는
상기 기록 스테이지는 상기 생성된 출력 표면의 상기 압축된 형태을 상기 메인 메모리에 기록하는 것을 포함하는, 디스플레이 컨트롤러를 데이터 처리 시스템에서 동작시키는 방법.
22. The method of claim 21,
the first display controller compresses the generated output surface to generate a compressed form of the generated output surface;
the output stage of the first display controller provides the compressed form of the generated output surface to the display, and/or
and the writing stage includes writing the compressed form of the generated output surface to the main memory.
KR1020150081038A 2014-06-10 2015-06-09 Display controller KR102354712B1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
GBGB1410314.7A GB201410314D0 (en) 2014-06-10 2014-06-10 Display controller
GB1410314.7 2014-06-10
GB1422302.8A GB2524359B (en) 2014-06-10 2014-12-15 Display controller
GB1422302.8 2014-12-15

Publications (2)

Publication Number Publication Date
KR20150141892A KR20150141892A (en) 2015-12-21
KR102354712B1 true KR102354712B1 (en) 2022-01-24

Family

ID=51266998

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150081038A KR102354712B1 (en) 2014-06-10 2015-06-09 Display controller

Country Status (4)

Country Link
US (1) US10283089B2 (en)
KR (1) KR102354712B1 (en)
CN (1) CN105278904B (en)
GB (2) GB201410314D0 (en)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150379679A1 (en) * 2014-06-25 2015-12-31 Changliang Wang Single Read Composer with Outputs
KR102214028B1 (en) * 2014-09-22 2021-02-09 삼성전자주식회사 Application processor including reconfigurable scaler and device including the same
GB2544333B (en) * 2015-11-13 2018-02-21 Advanced Risc Mach Ltd Display controller
GB2547914B (en) * 2016-03-02 2018-05-09 Advanced Risc Mach Ltd Data processing systems
GB2550942B (en) * 2016-06-01 2021-11-10 Displaylink Uk Ltd Display Data processing
US10276125B2 (en) * 2016-09-30 2019-04-30 Arm Limited Method of and apparatus for controlling overrun when writing data from a display controller to memory
US11127110B2 (en) * 2017-03-01 2021-09-21 Arm Limited Data processing systems
US10394522B2 (en) 2017-07-18 2019-08-27 Arm Limited Display controller
US10540736B2 (en) * 2017-08-03 2020-01-21 Texas Instruments Incorporated Display sub-system sharing for heterogeneous systems
CN109976213A (en) * 2019-03-12 2019-07-05 广东美的厨房电器制造有限公司 Shuangping san control method, display device and cooker

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020145611A1 (en) 2000-02-01 2002-10-10 Dye Thomas A. Video controller system with object display lists
US20030210338A1 (en) 2002-05-07 2003-11-13 Masaaki Matsuoka Video signal processing apparatus, image display control method, storage medium, and program
US20090201306A1 (en) * 2008-02-08 2009-08-13 Apple Inc. Method for reducing framebuffer memory accesses
US20090262122A1 (en) 2008-04-17 2009-10-22 Microsoft Corporation Displaying user interface elements having transparent effects
US20110037773A1 (en) 2008-04-30 2011-02-17 Toshiyuki Ishioka Display control device and display control method
WO2013044417A1 (en) * 2011-09-30 2013-04-04 Intel Corporation Displaying hardware accelerated video on x window systems

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5206628A (en) * 1989-11-17 1993-04-27 Digital Equipment Corporation Method and apparatus for drawing lines in a graphics system
US6975324B1 (en) * 1999-11-09 2005-12-13 Broadcom Corporation Video and graphics system with a video transport processor
US6886566B2 (en) * 2002-07-11 2005-05-03 Jimmy B. Eubank Oral appliance for maintaining stability of one or more aspects of a user's masticatory system
US6873341B1 (en) * 2002-11-04 2005-03-29 Silicon Image, Inc. Detection of video windows and graphics windows
EP1507249A1 (en) 2003-08-12 2005-02-16 ARM Limited Display controller for rotation of display image
US20070188506A1 (en) * 2005-02-14 2007-08-16 Lieven Hollevoet Methods and systems for power optimized display
US20090026212A1 (en) * 2007-07-25 2009-01-29 Robbins Jess A Underground storage tank for flammable liquids
US20090079746A1 (en) * 2007-09-20 2009-03-26 Apple Inc. Switching between graphics sources to facilitate power management and/or security
JP5014259B2 (en) * 2008-05-30 2012-08-29 パナソニック株式会社 Display control apparatus and display control method
US8862823B1 (en) * 2008-12-19 2014-10-14 Nvidia Corporation Compression status caching
US8803898B2 (en) * 2009-12-17 2014-08-12 Arm Limited Forming a windowing display in a frame buffer
US20150310833A1 (en) * 2011-05-24 2015-10-29 Intel Corporation Displaying Hardware Accelerated Video on X Window Systems
US20130083047A1 (en) * 2011-09-29 2013-04-04 Prashant Shamarao System and method for buffering a video signal
EP2623604B8 (en) * 2012-02-02 2015-04-22 Baylor College of Medicine Adenoviral-based biological delivery and expression system for use in the treatment of osteoarthritis
EP2674939B1 (en) * 2012-06-11 2017-08-23 2236008 Ontario Inc. Cell-based composited windowing system
US20150116311A1 (en) * 2013-10-28 2015-04-30 Qualcomm Incorporated Accelerated video post processing systems and methods

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020145611A1 (en) 2000-02-01 2002-10-10 Dye Thomas A. Video controller system with object display lists
US20030210338A1 (en) 2002-05-07 2003-11-13 Masaaki Matsuoka Video signal processing apparatus, image display control method, storage medium, and program
US20090201306A1 (en) * 2008-02-08 2009-08-13 Apple Inc. Method for reducing framebuffer memory accesses
US20090262122A1 (en) 2008-04-17 2009-10-22 Microsoft Corporation Displaying user interface elements having transparent effects
US20110037773A1 (en) 2008-04-30 2011-02-17 Toshiyuki Ishioka Display control device and display control method
WO2013044417A1 (en) * 2011-09-30 2013-04-04 Intel Corporation Displaying hardware accelerated video on x window systems

Also Published As

Publication number Publication date
CN105278904B (en) 2020-03-31
GB2524359A (en) 2015-09-23
GB201410314D0 (en) 2014-07-23
US20150356953A1 (en) 2015-12-10
CN105278904A (en) 2016-01-27
US10283089B2 (en) 2019-05-07
KR20150141892A (en) 2015-12-21
GB2524359B (en) 2016-11-02

Similar Documents

Publication Publication Date Title
KR102354712B1 (en) Display controller
CN107015778B (en) Display controller, data processing system, storage medium, and method of operating the display controller
KR102669366B1 (en) Video processing system
KR20180100486A (en) Data processing systems
US10216412B2 (en) Data processing systems
JPH0983947A (en) System in which video size is changed in real time by multimedia correspondence data processing system
US10276125B2 (en) Method of and apparatus for controlling overrun when writing data from a display controller to memory
US10672367B2 (en) Providing data to a display in data processing systems
CN107154246B (en) Data processing system and method of operating a data processing system
US10394522B2 (en) Display controller
US10262632B2 (en) Providing output surfaces for display in data processing systems
US20060170708A1 (en) Circuits for processing encoded image data using reduced external memory access and methods of operating the same
US10565966B2 (en) Display controllers
US10592146B2 (en) Data processing systems

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