KR20120117860A - 프레임의 활성 영역들만을 페칭하기 위한 사용자 인터페이스 유닛 - Google Patents

프레임의 활성 영역들만을 페칭하기 위한 사용자 인터페이스 유닛 Download PDF

Info

Publication number
KR20120117860A
KR20120117860A KR1020127021145A KR20127021145A KR20120117860A KR 20120117860 A KR20120117860 A KR 20120117860A KR 1020127021145 A KR1020127021145 A KR 1020127021145A KR 20127021145 A KR20127021145 A KR 20127021145A KR 20120117860 A KR20120117860 A KR 20120117860A
Authority
KR
South Korea
Prior art keywords
pixels
frame
fetched
user interface
video
Prior art date
Application number
KR1020127021145A
Other languages
English (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 KR20120117860A publication Critical patent/KR20120117860A/ko

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment
    • H04N5/262Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
    • H04N5/265Mixing
    • 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/10Mixing of images, i.e. displayed pixel being the result of an operation, e.g. adding, on 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/12Frame memory handling
    • 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/395Arrangements specially adapted for transferring the contents of the bit-mapped memory to the screen
    • G09G5/397Arrangements specially adapted for transferring the contents of two or more bit-mapped memories to the screen simultaneously, e.g. for mixing or overlay

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Image Generation (AREA)
  • Image Processing (AREA)
  • Television Signal Processing For Recording (AREA)
  • Digital Computer Display Output (AREA)

Abstract

그래픽 처리 디스플레이 파이프 내의 사용자 인터페이스 유닛은 이미지 프레임의 활성 영역들을 정의하는 정보를 갖도록 프로그래밍될 수 있는 레지스터들을 포함할 수 있다. 이미지 프레임의 활성 영역들 내의 픽셀들은 표시되는 반면, 이미지 프레임의 활성 영역들 밖의 픽셀들은 표시되지 않는다. 사용자 인터페이스 유닛 내의 페치 회로는 메모리로부터 프레임들을 페칭할 수 있으며, 레지스터들의 프로그래밍된 콘텐츠에 의해 정의되는 바와 같은 이미지 프레임들의 활성 영역들 내의 픽셀들만을 페칭할 수 있다. 이어서, 사용자 인터페이스 유닛은 페칭된 픽셀들을 혼합 유닛에 제공하여, 페칭된 픽셀들과 다른 프레임들로부터의 픽셀들 또는 비디오 스트림의 픽셀들을 혼합하여 출력 프레임들을 생성하게 할 수 있다. 페칭된 픽셀들은 비디오 스트림의 픽셀들과 혼합될 때 비디오 스트림 위에 그래픽 오버레이로서 표시될 수 있다.

Description

프레임의 활성 영역들만을 페칭하기 위한 사용자 인터페이스 유닛{USER INTERFACE UNIT FOR FETCHING ONLY ACTIVE REGIONS OF A FRAME}
본 발명은 그래픽 정보 처리의 분야, 구체적으로는 메모리로부터의 이미지 픽셀들의 페칭에 관한 것이다.
이동 전화, 노트북 컴퓨터 등과 같은 휴대용 디지털 장치들을 포함하는 많은 컴퓨터 시스템의 동작의 일부는 액정 디스플레이(LCD)와 같은 소정 타입의 디스플레이 장치를 사용하여 이미지, 비디오 정보/스트림 및 데이터를 표시하는 것이다. 따라서, 이러한 시스템들은 통상적으로 디스플레이 장치로 후속 출력될 비디오 정보를 포함하는 이미지 및 데이터를 생성하기 위한 기능을 포함한다. 그러한 장치들은 통상적으로 후속 표시를 위해 이미지 및 비디오 정보를 처리하기 위한 비디오 그래픽 회로를 포함한다.
디지털 이미징에 있어서, 이미지 내의 정보의 최소 아이템은 "픽처 요소"라고 하며, 더 일반적으로는 "픽셀"이라고 한다. 편의를 위해, 픽셀들은 일반적으로 규칙적인 이차원 그리드로 배열된다. 이러한 배열을 사용하여, 각각의 픽셀에 독립적으로 동일 동작을 균일하게 적용함으로써 많은 일반 동작을 구현할 수 있다. 각각의 픽셀은 디지털 이미지의 기본 요소이므로, 더 많은 수의 픽셀들은 더 정확한 디지털 이미지 표현을 제공할 수 있다. 각각의 픽셀의 강도는 변할 수 있으며, 컬러 시스템들에서 각각의 픽셀은 통상적으로 적색, 녹색, 청색 및 흑색과 같은 3개 또는 4개 성분을 갖는다.
LCD 스크린과 같은 디스플레이 장치들 상에 표시된 대부분의 이미지 및 비디오 정보는 이미지 프레임들, 약하여 프레임들의 연속으로서 해석된다. 일반적으로 프레임은 완전한 동화상 또는 비디오 스트림을 구성하는 많은 정지 이미지 중 하나이지만, 프레임은 더 넓게는 간단히 디지털(불연속 또는 진행 스캔) 디스플레이 상에 표시된 정지 이미지로서 해석될 수도 있다. 프레임은 통상적으로 이미지/비디오 프레임의 해상도에 따라 지정된 수의 픽셀들로 구성된다. 대부분의 그래픽 시스템들은 프레임 버퍼들을 사용하여 이미지 및 비디오 프레임 정보에 대한 픽셀들을 저장한다. 따라서, "프레임 버퍼"라는 용어는 종종 픽처/비디오 프레임들을 유지하는 데 사용되는 실제 메모리를 나타낸다. 프레임 버퍼 내의 정보는 통상적으로 스크린 상에 표시될 모든 픽셀에 대한 컬러 값들로 구성된다. 컬러 값들은 일반적으로 1비트 단색, 4비트 팔레트화, 8비트 팔레트화, 16비트 하이 컬러 및 24비트 트루 컬러 포맷들로 저장된다. 추가적인 알파 채널이 종종 픽셀 투명도에 대한 정보를 유지하는 데 사용된다. 프레임 버퍼들이 이미지/비디오 정보를 저장하는 데 필요한 메모리의 총량은 출력 신호의 해상도에 그리고 컬러 심도 및 팔레트 크기에 의존한다.
프레임 버퍼들은 이미지 및 비디오 정보를 저장하도록 전용화된 메모리 요소들 내에 위치할 수 있거나, 시스템 메모리 내에 위치할 수 있다. 결과적으로, 시스템 메모리는 디스플레이 장치 상에 표시하기 위한 이미지 및/또는 비디오 스트림을 정의하는 한 세트의 픽셀 데이터를 저장하는 데 사용될 수 있다. 통상적으로, 그러한 시스템에서 실행되는 애플리케이션들은 픽셀 데이터를 시스템 메모리 내에 기록할 수 있으며, 결국에는 디스플레이 장치 상에 이미지를 생성하기 위한 한 세트의 이미지/비디오 신호들을 생성하기 위해 시스템 메모리로부터 픽셀 데이터가 얻어질 수 있다. 그러한 시스템들에서, 시스템 메모리로부터 프레임들(픽셀 정보)을 페칭하는 것은 시스템에 대해 많은 요건을 부과할 수 있는데, 그 이유는 다른 장치들도 메모리 액세스를 위해 경쟁하고 있을 수 있기 때문이다. 결과적으로, 데이터에 대한 요청들을 충족시키기 위해 메모리로부터 높은 대역폭이 요구될 수 있다. 게다가, 각각의 시스템 메모리 액세스는 소정량의 처리 전력을 필요로 하므로, 많은 양의 픽셀 데이터에 대한 요청들은 결국 이동 전화 및 노트북 컴퓨터와 같이 배터리로 작동되는 장치들에서 너무 빠른 배터리 소모를 유발할 수 있다.
한 세트의 실시예들에서, 그래픽 처리/디스플레이 시스템 내의 디스플레이 파이프들은 프레임의 활성 영역들을 정의하도록 프로그래밍될 수 있는 레지스터들을 포함하는 사용자 인터페이스 유닛들을 지원할 수 있으며, 프레임의 활성 영역들 내의 픽셀들은 표시되고, 프레임의 활성 영역들 밖의 픽셀들은 표시되지 않는다. 인터페이스 유닛들은 레지스터들의 프로그래밍된 콘텐츠에 의해 정의되는 바와 같은 프레임의 활성 영역들 내의 픽셀들만을 페칭함으로써 메모리로부터 프레임들을 페칭할 수 있다. 사용자 인터페이스 유닛은 페칭된 픽셀들을 혼합 유닛에 제공하여, 페칭된 픽셀들을 다른 프레임들로부터의 픽셀들 및/또는 비디오 스트림으로부터의 픽셀들과 혼합하게 함으로써, 표시할 출력 프레임들을 생성할 수 있다. 활성 영역들 밖의 픽셀들은 혼합에 대해 0의 알파 값을 갖는 것으로(즉, 0의 혼합 값을 갖는 것으로) 취급되어, 그러한 픽셀들은 표시되는 결과적인 출력 프레임들에 영향을 미치지 않게 된다.
한 세트의 실시예들에서, 사용자 인터페이스 유닛은 프레임의 비활성 영역들을 투명한 것으로 식별된 픽셀들, 즉 0의 알파 값을 갖는 픽셀들로 채우고, 페칭된 픽셀들을 포함하는 전체 프레임을 혼합 유닛에 제공할 수 있다. 다른 실시예들에서, 혼합 유닛은 인터페이스 유닛으로부터 페칭된 픽셀들만을 수신하고, 활성 영역 밖의 영역들을 이들이 0의 알파 값을 갖는 픽셀들을 포함한 것처럼 취급할 수 있다. 인터페이스 유닛 내의 레지스터들은 이미지 프레임들에 관한 다른 정보, 예를 들어 특히 프레임의 기본 어드레스 및 크기를 갖도록 프로그래밍될 수도 있다.
한 세트의 실시예들에서, 디스플레이 파이프는 시스템 메모리와 인터페이스하도록 구성된 호스트 인터페이스 유닛, 및 호스트 인터페이스 유닛에 결합된 사용자 인터페이스 유닛들을 포함할 수 있다. 사용자 인터페이스 유닛들은 이미지 프레임들 내의 각각의 활성 영역들을 정의하는 프레임 정보를 유지할 수 있으며, 프레임들의 각각의 활성 영역들 내의 픽셀들은 표시되고, 프레임들의 각각의 활성 영역들 밖의 픽셀들은 표시되지 않는다. 사용자 인터페이스 유닛들은 대응하는 출력 프레임들 내의 페칭된 픽셀들을 표시하기 위해 프레임 정보에 의해 정의되는 바와 같은 프레임들의 각각의 활성 영역들 내의 픽셀들을 시스템 메모리로부터 호스트 인터페이스 유닛을 통해 페칭할 수 있다. 디스플레이 파이프는 사용자 인터페이스 유닛들에 결합되어 사용자 인터페이스 유닛들에 의해 제공되는 페칭된 픽셀을 수신하는 혼합 유닛을 더 포함할 수 있다. 혼합 유닛은 페칭된 픽셀들을 비디오 스트림과 혼합하여 표시할 대응 출력 프레임들을 생성하도록 구성된다. 비디오 스트림은 호스트 인터페이스 유닛 및 혼합 유닛에 결합된 비디오 파이프에 의해 시스템 메모리로부터 호스트 인터페이스 유닛을 통해 획득된 비디오 정보로부터 생성될 수 있다.
한 세트의 실시예들에서, 사용자 인터페이스 유닛들 내의 레지스터들 내에 프로그래밍되는 정보는 디스플레이 파이프들이 구성되는 시스템의 처리 유닛 상에서 실행되는 소프트웨어에 의해 기록될 수 있다. 소프트웨어는 또한 프레임 정보 및 비디오 정보, 더 구체적으로는 이미지 프레임들 및 비디오 스트림의 픽셀들을 시스템 메모리 내의 프레임 버퍼들 내에 기록할 수 있으며, 이들로부터 비디오 파이프 및 사용자 인터페이스 유닛들은 그러한 정보를 각각 획득할 수 있다.
아래의 상세한 설명은 이제 간단히 설명되는 첨부 도면들을 참조한다.
도 1은 그래픽 디스플레이 시스템을 포함하는 집적 회로의 일 실시예의 블록도이다.
도 2는 시스템 메모리를 포함하는 그래픽 디스플레이 시스템의 일 실시예의 블록도이다.
도 3은 그래픽 디스플레이 시스템 내의 디스플레이 파이프의 일 실시예의 블록도이다.
도 4는 활성 영역들을 포함하는 이미지 프레임의 일례의 도면이다.
도 5는 메모리로부터 이미지 프레임 픽셀 정보를 페칭하기 위한 방법의 일 실시예를 나타내는 흐름도이다.
도 6은 그래픽 디스플레이 시스템에서 이미지 프레임 픽셀들을 정의하고 전송하기 위한 방법의 일 실시예를 나타내는 흐름도이다.
본 발명은 다양한 변경들 및 대안 형태들이 가능하지만, 본 발명의 특정 실시예들이 도면들 내에 예시적으로 도시되고, 본 명세서에서 상세히 설명될 것이다. 그러나, 도면들 및 그에 대한 상세한 설명은 본 발명을 개시되는 특정 형태로 한정하려는 것이 아니라, 반대로 첨부된 청구항들에 의해 정의되는 바와 같은 본 발명의 사상 및 범위 내에 속하는 모든 변경들, 균등물들 및 대안들을 커버하는 것을 의도한다는 것을 이해해야 한다. 본 명세서에서 사용되는 표제들은 체계화의 목적일 뿐, 설명의 범위를 한정하는 데 사용되는 것을 의도하지 않는다. 본원 전반에서 사용될 때, "~일 수 있다(may)"라는 단어는 강제의 의미(즉, ~해야 한다는 의미)가 아니라 허가의 의미(즉, ~할 가능성을 갖는다는 의미)로 사용된다. 유사하게, "포함한다" 및 "포함하는"이라는 단어는 ~로 한정되는 것이 아니라 ~를 포함한다는 것을 의미한다.
다양한 유닛들, 회로들 또는 다른 컴포넌트들은 작업 또는 작업들을 수행하도록 "구성되는" 것으로 설명될 수 있다. 그러한 상황들에서, "구성되는"은 동작 동안 작업 또는 작업들을 수행하는 "회로를 갖는" 것을 일반적으로 의미하는 구조의 광범위한 기재이다. 그러한 것으로서, 유닛/회로/컴포넌트는 이 유닛/회로/컴포넌트가 현재 동작 중이 아닐 때에도 작업을 수행하도록 구성될 수 있다. 일반적으로, "구성되는"에 대응하는 구조를 형성하는 회로는 하드웨어 회로들 및/또는 동작을 구현하도록 실행될 수 있는 프로그램 명령어들을 저장하는 메모리를 포함할 수 있다. 메모리는 정적 또는 동적 랜덤 액세스 메모리와 같은 휘발성 메모리 및/또는 광 또는 자기 디스크 저장 장치, 플래시 메모리, 프로그래밍 가능한 판독 전용 메모리 등과 같은 비휘발성 메모리를 포함할 수 있다. 유사하게, 다양한 유닛들/회로들/컴포넌트들은 본 설명에서 편의를 위해 작업 또는 작업들을 수행하는 것으로 설명될 수 있다. 그러한 설명들은 "구성되는"이라는 문구를 포함하는 것으로 해석되어야 한다. 하나 이상의 작업을 수행하도록 구성되는 유닛/회로/컴포넌트를 기재하는 것은 그 유닛/회로/컴포넌트에 대해 35 U.S.C.§112, 단락 6의 해석을 요구하는 것을 명백히 의도하지 않는다.
이제, 도 1을 참조하면, 외부 메모리(102)에 결합된 집적 회로(103)를 포함하는 시스템(100)의 일 실시예의 블록도가 도시되어 있다. 도시된 실시예에서, 집적 회로(103)는 메모리 제어기(104), 시스템 인터페이스 유닛(SIU)(106), 컴포넌트들(126-128)과 같은 한 세트의 주변 컴포넌트들, 중앙 DMA(CDMA) 제어기(124), 네트워크 인터페이스 제어기(NIC)(110), 레벨 2(L2) 캐시(112)를 갖는 프로세서(114), 및 디스플레이 제어 유닛(DCU)(118)에 결합된 비디오 처리 유닛(VPU)(116)을 포함한다. 주변 컴포넌트들 중 하나 이상은 주변 컴포넌트(126) 내의 랜덤 액세스 메모리(RAM)(136) 및 주변 컴포넌트(132) 내의 판독 전용 메모리(ROM)(142)와 같은 메모리를 포함할 수 있다. 하나 이상의 주변 컴포넌트들(126-132)은 레지스터들(예를 들어, 도 1의 주변 컴포넌트(128) 내의 레지스터들(138) 및 주변 컴포넌트(130) 내의 레지스터들(140))도 포함할 수 있다. 메모리제어기(104)는 메모리 인터페이스에 결합되며, 이는 메모리(102)에 결합될 수 있고, 또한 SIU(106)에 결합된다. 도시된 실시예에서, CDMA 제어기(124) 및 L2 캐시(112)도 SIU(106)에 결합된다. L2 캐시(112)는 프로세서(114)에 결합되며, CDMA제어기(124)는 주변 컴포넌트들(126-132)에 결합된다. 주변 컴포넌트들(140, 142)과 같은 하나 이상의 주변 컴포넌트들(126-132)은 또한 외부 인터페이스들에 결합 될 수 있다.
SIU(106)는 메모리 제어기(104), 주변 컴포넌트 NIC(110) 및 VPU(116), 프로세서(114)(L2 캐시(112)를 통함), L2 캐시(112) 및 CDMA 제어기(124)가 통신할 수 있게 하는 상호 접속부일 수 있다. SIU(106)는 임의 타입의 상호 접속부(예를 들어, 버스, 패킷 인터페이스, 점대점 링크 등)를 구현할 수 있다. SIU(106)는 일부 실시예들에서 상호 접속부들의 계층 구조일 수 있다. CDMA 제어기(124)는 메모리(102) 및/또는 다양한 주변 컴포넌트들(126-132) 사이에서 DMA 동작들을 수행하도록 구성될 수 있다. NIC(110) 및 VPU(116)는 SIU(106)에 직접 결합될 수 있으며, 필요에 따라 메모리(102)로의/로부터의 그들 자신의 데이터 전송들을 수행할 수 있다. NIC(110) 및 VPU(116)는 예를 들어 그들 자신의 DMA 제어기들을 포함할 수 있다. 다른 실시예들에서, NIC(110) 및 VPU(116)는 CDMA 제어기(124)를 통한 전송들도 수행할 수 있다. 다양한 실시예들은 CDMA 제어기(124)를 통해 그리고/또는 직접 SIU(106)에 결합된 임의 수의 주변 컴포넌트들을 포함할 수 있다. DCU(118)는 디스플레이 제어 유닛(CLDC)(120) 및 버퍼들/레지스터들(122)을 포함할 수 있다. CLDC(120)는 이미지/비디오 데이터를 예를 들어 액정 디스플레이(LCD)와 같은 디스플레이에 제공할 수 있다. DCU(118)는 VPU(116)로부터 이미지/비디오 데이터를 수신할 수 있으며, 이 VPU는 DCU(118)에 제공되는 표시용 이미지/비디오 데이터를 생성하기 위해 필요에 따라 메모리(102)로부터 이미지/비디오 프레임 정보를 획득할 수 있다.
프로세서(114)(더 구체적으로는 프로세서(114)에 의해 실행되는 명령어들)는 DMA 동작들을 수행하도록 CDMA 제어기(124)를 프로그래밍할 수 있다. 다양한 실시예들은 다양한 방식으로 CDMA 제어기(124)를 프로그래밍할 수 있다. 예를 들어, 수행될 DMA 동작들을 서술하는 DMA 서술자들이 메모리(102)에 기록될 수 있으며, CDMA 제어기(124)는 메모리(102) 내의 DMA 서술자들을 찾도록 프로그래밍될 수 있는 레지스터들을 포함할 수 있다. DMA 서술자들은 DMA 동작의 소스 및 타겟을 지시하는 데이터를 포함할 수 있으며, DMA 동작은 소스로부터 타겟으로 데이터를 전송한다. DMA 전송의 크기(예를 들어, 바이트 수)는 서술자 내에 지시될 수 있다. 종료 처리(예를 들어, 프로세서 인터럽트, 종료를 지시하기 위한 서술자 기록 등)는 서술자 내에 지정될 수 있다. 다수의 서술자가 DMA 채널에 대해 생성될 수 있으며, 서술자들 내에 서술된 DMA 동작들은 지정된 대로 수행될 수 있다. 대안으로서, CDMA 제어기(124)는 수행될 DMA 동작들을 서술하도록 프로그래밍될 수 있는 레지스터들을 포함할 수 있으며, CDMA 제어기(124)의 프로그래밍은 레지스터들의 기록을 포함할 수 있다.
일반적으로, DMA 동작은 명령어들을 실행하는 프로세서와 분리된 하드웨어에 의해 수행되는 소스로부터 타겟으로의 데이터 전송일 수 있다. 하드웨어는 프로세서에 의해 실행되는 명령어들을 이용하여 프로그래밍될 수 있지만, 전송 자체는 프로세서에서의 명령어 실행과 무관하게 하드웨어에 의해 수행된다. 소스 및 타겟중 적어도 하나는 메모리일 수 있다. 메모리는 시스템 메모리(예를 들어, 메모리(102))일 수 있거나, 일부 실시예들에서는 집적 회로(103) 내의 내부 메모리일 수 있다. 예를 들어, 주변 컴포넌트(126-132)는 소스 또는 타겟일 수 있는 메모리를 포함할 수 있다. 도시된 실시예에서, 주변 컴포넌트(132)는 DMA 동작의 소스일 수 있는 ROM(142)을 포함한다. 일부 DMA 동작들은 메모리를 소스 및 타겟으로서 가질 수 있다(예를 들어, 메모리(102) 내의 제1 메모리 영역은 전송될 데이터를 저장할 수 있고, 제2 메모리 영역은 데이터를 전송할 수 있는 타겟일 수 있다). 그러한 DMA 동작들은 "메모리 대 메모리" DMA 동작들 또는 복사 동작들로 지칭될 수 있다. 다른 DMA 동작들은 주변 컴포넌트를 소스 또는 타겟으로서 가질 수 있다. 주변 컴포넌트는 DMA 데이터를 전송할 또는 DMA 데이터를 수신할 외부 인터페이스에 결합될 수 있다. 예를 들어, 주변 컴포넌트들(130, 132)은 DMA 데이터를 전송할 또는 DMA 데이터를 수신할 인터페이스들에 결합될 수 있다.
CDMA 제어기(124)는 다수의 DMA 채널을 지원할 수 있다. 각각의 DMA 채널은 서술자를 통해 DMA를 수행하도록 프로그래밍될 수 있으며, DMA 채널들 상에서의 DMA 동작들은 병렬로 진행될 수 있다. 일반적으로, DMA 채널은 소스로부터 타겟으로의 논리적 전송 경로일 수 있다. 각각의 채널은 다른 DMA 채널들과 논리적으로 무관할 수 있다. 즉, 하나의 채널 상에서의 데이터 전송은 다른 채널 상에서의 데이터 전송에 논리적으로 의존하지 않을 수 있다. 둘 이상의 DMA 채널이 DMA 동작들을 갖도록 프로그래밍되는 경우, CDMA 제어기(124)는 전송들을 동시에 수행하도록 구성될 수 있다. 예를 들어, CDMA 제어기(124)는 각각의 DMA 동작의 소스로부터 데이터의 부분들을 판독하는 것과 이 부분들을 타겟들에 기록하는 것을 교대할 수 있다. CDMA 제어기(124)는 한 번에 하나의 데이터 캐시 블록을 전송하고 캐시 블록들 사이에서 채널들을 교대할 수 있거나, 한 번에 하나의 워드(예를 들어, 4 바이트 또는 8 바이트)와 같은 다른 크기들을 전송하고 워드들 사이에서 교대할 수 있다. 동시에 진행되는 다수의 DMA 동작을 지원하기 위한 임의의 메커니즘이 이용 될 수 있다.
CDMA 제어기(124)는 소스로부터 목적지로 전송되고 있는 데이터를 저장하기 위한 버퍼들을 포함할 수 있지만, 이 버퍼들은 일시 저장을 위해서만 사용될 수도 있다. 따라서, DMA 동작은 CDMA 제어기(124)가 소스로부터 데이터를 판독하고 데이터를 목적지에 기록하는 동작을 포함할 수 있다. 따라서, 데이터는 DMA 동작의 일부로서 CDMA 제어기(124)를 통해 흐를 수 있다. 특히, 메모리(102)로부터의 DMA 판독을 위한 DMA 데이터는 메모리 제어기(104)를 통해, SIU(106)를 거쳐, CDMA 제어기(124)를 통해 주변 컴포넌트들(126-132), NIC(110) 및 VPU(116)로(그리고 아마도 적용 가능한 경우에 주변 컴포넌트와 결합된 인터페이스 상에서) 흐를 수 있다. 메모리로의 DMA 기록을 위한 데이터는 반대 방향으로 흐를 수 있다. 내부 메모리들에 대한 DMA 판독/기록 동작들은 주변 컴포넌트들(126-132), NIC(110) 및 VPU(116)로부터 필요에 따라 SIU(106)를 거쳐, CDMA 제어기(124)를 통해 DMA 동작에 관련될 수 있는 (NIC(110) 및 VPU(116)를 포함하는) 다른 주변 컴포넌트들로 흐를 수 있다.
일 실시예에서, 프로세서(114)에 의해 실행되는 명령어들은 또한 프로그래밍된 입출력(PIO) 동작들로 지칭되는 판독 및/또는 기록 동작들을 이용하여 주변 컴포넌트들(126-132), NIC(110), VPU(116) 및/또는 메모리(102) 또는 ROM(142)과 같은 다양한 메모리들 중 하나 이상과 통신할 수 있다. PIO 동작들은 집적 회로(103)에 의해 주변 컴포넌트(126-132), NIC(110) 또는 VPU(116)로(더 구체적으로는, 예를 들어 컴포넌트 내의 ROM(142) 또는 레지스터들(138)과 같은 레지스터 또는 다른 판독 가능/기록 가능 자원으로) 맵핑되는 어드레스를 가질 수 있다. 도 1에는 명시적으로 도시되지 않지만, NIC(110) 및 VPU(116)는 PIO 동작들과 관련될 수 있는 레지스터들 또는 다른 판독 가능/기록 가능 자원들도 포함할 수 있다는 점에도 유의해야 한다. 메모리(102)로 지향되는 PIO 동작들은 집적 회로(103)에 의해 메모리(102)로 맵핑되는 어드레스를 가질 수 있다. 대안으로서, PIO 동작은(예를 들어, 상이한 명령 인코딩에 이은 SIU(106) 상에서의 메모리 판독/기록 동작들을 이용하여, PIO 대 메모리를 지시하기 위한 측파대 신호 또는 제어 신호를 이용하여, 기타 등등을 이용하여) 메모리 판독/기록 동작들과 구별될 수 있는 방식으로 프로세서(114)에 의해 전송될 수 있다. PIO 전송은 그러한 구현들을 위해 PIO 어드레스 공간 내에서 주변 컴포넌트(126-132), NIC(110) 또는 VPU(116)(및 어드레스되는 자원) 또는 메모리(102)를 식별할 수 있는 어드레스를 여전히 포함할 수 있다.
일 실시예에서, PIO 동작들은 CDMA 제어기(124)와 동일한 상호 접속부를 이용할 수 있으며, CDMA 제어기(124)에 결합된 주변 컴포넌트들을 향해 CDMA 제어기(124)를 통해 흐를 수 있다. 따라서, PIO 동작은 프로세서(114)에 의해 SIU(106) 상으로(이 실시예에서는 L2 캐시(112)를 통해), CDMA 제어기(124)로 그리고 타겟 주변 컴포넌트로 발행될 수 있다. 대안으로서, 주변 컴포넌트들(126-132)은 PIO 통신을 위해 (NIC(110) 및 VPU(116)와 거의 똑같이) SIU(106)에 결합될 수 있다. 주변 컴포넌트들(126-132)에 대한 PIO 동작들은 일 실시예에서 SIU(106)로 부터 직접(즉, CDMA 제어기(124)를 통하지 않고) 컴포넌트들로 흐를 수 있다.
일반적으로, 주변 컴포넌트는 프로세서를 갖는 집적 회로(103) 상에 포함되는 임의의 원하는 회로를 포함할 수 있다. 주변 컴포넌트는 집적 회로(103)의 다른 컴포넌트들이 주변 컴포넌트와 통신할 수 있게 하는 정의된 기능 및 인터페이스를 구비할 수 있다. 예를 들어, VPU(116)와 같은 주변 컴포넌트는 그래픽 프로세서들을 포함할 수 있는 디스플레이 파이프와 같은 비디오 컴포넌트들을 포함할 수 있고, DCU(118)와 같은 주변 컴포넌트는 디스플레이 제어기 회로와 같은 다른 비디오 컴포넌트들을 포함할 수 있다. NIC(110)는 이더넷 매체 액세스 제어기(MAC) 또는 무선 충실도(WiFi) 제어기와 같은 네트워킹 컴포넌트들을 포함할 수 있다. 다른 주변 컴포넌트들은 디지털 신호 프로세서, 믹서 등과 같은 오디오 컴포넌트들, 유니버설 직렬 버스(USB), 주변 컴포넌트 상호 접속부(PCI) 또는 PCI 익스프레스(PCIe)와 같은 그의 변형들, 직렬 주변 인터페이스(SPI), 플래시 메모리 인터페이스 등과 같은 다양한 인터페이스들 상에서 통신하기 위한 제어기들 등을 포함할 수 있다.
전술한 바와 같이, 주변 컴포넌트들(126-132), NIC(110) 및 VPU(116) 중 하나 이상은 PIO 동작들을 통해 어드레스될 수 있는 레지스터들(예를 들어, 도시된 바와 같은 레지스터들(138-140), 또한 NIC(110) 및/또는 VPU(116) 내의 도시되지 않은 레지스터들)을 포함할 수 있다. 레지스터들은 주변 컴포넌트들의 프로그래밍 가능한 옵션들(예를 들어, VPU(116) 내의 비디오 및 이미지 처리를 위한 프로그래밍 가능한 옵션들)을 구성하는 구성 레지스터들, 주변 컴포넌트들의 상태를 지시하기 위해 판독될 수 있는 상태 레지스터들 등을 포함할 수 있다. 유사하게, 주변 컴포넌트들은 ROM(142)과 같은 메모리들을 포함할 수 있다. ROM들은 변경되지 않고 주변 컴포넌트에 의해 사용되는 데이터, 주변 컴포넌트(126-132) 내의 내장 프로세서에 의해 실행될 코드 등을 저장할 수 있다.
메모리 제어기(104)는 시스템 인터페이스 유닛(106)으로부터 메모리 요청들을 수신하도록 구성될 수 있다. 메모리 제어기(104)는 부착된 메모리(102)에 의해 정의되는 인터페이스를 이용하여 요청들을 완료하기 위해(기록 요청에 대해 메모리에 수신된 데이터를 기록하거나, 판독 요청에 응답하여 메모리(102)로부터 데이터를 제공하기 위해) 메모리에 액세스하도록 구성될 수 있다. 메모리 제어기(104)는 동적 랜덤 액세스 메모리(DRAM), 동기식 DRAM(SDRAM), 더블 데이터 레이트(DDR, DDR2, DDR3 등) SDRAM, 저전력 DDR2(LPDDR2) SDRAM, RAMBUS DRAM(RDRAM), 정적 RAM(SRAM) 등과 같은 임의의 타입의 메모리(102)와 인터페이스하도록 구성될 수 있다. 메모리는 이중 인라인 메모리 모듈(DIMM), 단일 인라인 메모리 모듈(SIMM) 등과 같은 다수의 메모리 뱅크로서 배열될 수 있다. 일 실시예에서는, 하나 이상의 메모리 칩들이 패키지 온 패키지(POP) 또는 칩 온 칩(COC) 구조로 집적 회로(103)에 부착된다.
다른 실시예들은 도 1에 도시된 컴포넌트들 및/또는 다른 컴포넌트들의 서브세트들 또는 수퍼세트들을 포함하는 컴포넌트들의 다른 조합들을 포함할 수 있다는 점에 유의한다. 도 1에는 주어진 컴포넌트의 일례가 도시될 수 있지만, 다른 실시예들은 주어진 컴포넌트의 하나 이상의 예들을 포함할 수 있다.
이제, 도 2를 참조하면, 이미지 프레임 정보가 시스템 메모리일 수 있는 메모리(202)에 저장되고 디스플레이 파이프(212)에 제공될 수 있는 예시적인 시스템의 개요를 제공하는 부분 블록도가 도시되어 있다. 도 2에 도시된 바와 같이, 메모리(202)는 비디오 프레임들/정보를 저장하기 위한 비디오 버퍼(206), 및 이미지프레임 정보를 저장하기 위한 하나 이상의(도시된 실시예에서는 총 2개의) 이미지프레임 버퍼들(208, 210)을 포함할 수 있다. 디스플레이 파이프(212)는 도 2의 실시예에서 UI(214, 216)로서 도시된 하나 이상의 사용자 인터페이스(UI) 유닛들을 포함할 수 있으며, 이들은 메모리(202)에 결합될 수 있고, 그로부터 이미지 프레임 데이터/정보를 페칭할 수 있다. 비디오 파이프 또는 프로세서(220)가 메모리(202)로부터, 더 구체적으로는 비디오 버퍼(206)로부터 비디오 데이터를 페칭하고 비디오 데이터에 대해 다양한 동작들을 수행하도록 유사하게 구성될 수 있다. UI(214, 216) 및 비디오 파이프(220)는 각각 페칭된 이미지 프레임 정보 및 비디오 이미지 정보를 혼합 유닛(218)에 제공하여, 버퍼(222) 내에 저장될 수 있는 출력 프레임들을 생성하게 할 수 있으며, 출력 프레임들은 디스플레이 장치(도시되지 않음), 예를 들어 LCD 상의 표시를 위해 버퍼로부터 디스플레이 제어기(224)로 제공될 수 있다.
한 세트의 실시예들에서, UI(214, 216)는 버퍼들(208, 210) 내에 저장된 프레임마다 적어도 하나의 활성 영역을 정의하도록 프로그래밍될 수 있는 하나 이상의 레지스터들을 포함할 수 있다. 활성 영역들은 표시될 픽셀들을 포함하는 이미지 프레임 내의 영역들을 나타낼 수 있으며, 프레임의 활성 영역 밖의 픽셀들은 표시되지 않는다. 메모리(202)로부터(더 구체적으로는 프레임 버퍼들(208, 210)로부터) 프레임들을 페칭할 때, 프레임 버퍼들(208, 210)로부터 픽셀들을 페칭하는 데 필요할 수 있는 액세스들의 수를 줄이기 위해, UI(214, 216)는 UI(214, 216) 내의 레지스터들의 콘텐츠에 의해 정의되는 바와 같은 프레임의 활성 영역들 내에 있는 임의의 주어진 프레임의 픽셀들만을 페칭할 수 있다. 프레임의 활성 영역들 밖의 픽셀들은 0의 혼합 값에 대응하는 알파 값을 갖는 것으로 간주될 수 있다. 즉, 프레임의 활성 영역들 밖의 픽셀들은 투명한 것으로 또는 0의 불투명도를 갖는 것으로, 따라서 결과적인 디스플레이 프레임에 영향을 미치지 않는 것으로 자동적으로 취급될 수 있다. 결과적으로, 페칭된 픽셀들은 다른 프레임들로부터의 그리고/또는 비디오 파이프(220)에 의해 혼합 유닛(218)에 제공된 처리된 비디오 프레임 또는 프레임들로부터의 픽셀들과 혼합될 수 있다.
이제, 도 3을 참조하면, 디스플레이 파이프(212)의 일 실시예(300)의 더 상세한 논리도가 도시되어 있다. 한 세트의 실시예들에서, 디스플레이 파이프(300)는 메모리(또는 소정의 어드레스 가능한 형태의 메모리, 예로서 도 2의 메모리(202)) 내에 위치하는 그래픽 및 비디오 데이터를, LCD 및 아날로그/디지털 TV 디스플레이들 양자를 지원할 수 있는 디스플레이 제어기 또는 제어기들로 전달하도록 기능할 수 있다. 비디오 데이터는 디더링되고, 스케일링되고, RGB 컬러 공간으로 변환되며, 지정된 수(예로서, 2)까지의 RGB 그래픽(사용자 인터페이스) 평면들과 혼합될 수 있다. 디스플레이 파이프(300)는 그 자신의 클럭 도메인에서 동작할 수 있으며, 상이한 크기들의 디스플레이들 및 타이밍 요구들을 지원하기 위해 디스플레이 제어기들에 대한 비동기 인터페이스를 제공할 수 있다. 디스플레이 파이프(300)는 (도 2의 UI(214, 216)에 대응할 수 있는) 하나 이상의(이 예에서는 2개의) 사용자 인터페이스(UI) 블록들(304, 322), (도 2의 혼합 유닛(218)에 대응 할 수 있는) 혼합 유닛(310), (도 2의 비디오 파이프(220)에 대응할 수 있는) 비디오 파이프(328), 파라미터 FIFO(352), 및 마스터 및 슬레이브 호스트 인터페이스들(302, 303) 각각으로 구성될 수 있다. 도 3의 실시예에 도시된 블록들은 모듈일 수 있으며, 따라서 소정의 재설계를 이용하여 사용자 인터페이스들 및 비디오 파이프들이 추가 또는 제거될 수 있거나, 호스트 마스터 또는 슬레이브 인터페이스들(302, 303)이 예를 들어 변경될 수 있다.
디스플레이 파이프(300)는 메모리로부터 데이터를 페칭하고, 그 데이터를 처리하고, 이어서 그 데이터를 비동기 FIFO(320)를 통해 외부 디스플레이 제어기에 제공하도록 설계될 수 있다. 디스플레이 제어기는 각각의 수직 공백 간격의 시작에서 활성화될 수 있는 수직 공백 간격(VBI) 신호를 통해 디스플레이의 타이밍을 제어할 수 있다. 이 신호는 디스플레이 파이프(300)가 프레임(더 구체적으로는 프레임 내의 픽셀들)에 대한 처리를 초기화(재시작)하고 시작(진행)하게 할 수 있다. 초기화와 시작 사이에, 그 프레임에 고유한 구성 파라미터들이 변경될 수 있다. 변경되지 않은 임의의 파라미터들은 이전 프레임으로부터의 그들의 값을 유지할 수 있다. 픽셀들이 처리되고 출력 FIFO(320) 내의 넣어짐에 따라, 디스플레이 제어기는 (도 3에 vclk로 표시된) 디스플레이 제어기의 클럭 주파수로 픽셀들을 제거하기 위한 (팝(pop) 신호들로서 지칭되는) 신호들을 발행할 수 있다.
도 3에 도시된 실시예에서, 각각의 UI 유닛은 특히 활성 영역 정보, 기본 어드레스 정보 및/또는 프레임 크기 정보를 포함할 수 있는 이미지 프레임 정보를 유지하기 위한 하나 이상의 레지스터들(319a-319n, 321a-321n)을 각각 포함할 수 있다. 각각의 UI 유닛은 호스트 마스터 인터페이스(302)를 통해 메모리로부터 프레임 정보 또는 더 구체적으로는 주어진 프레임 내에 포함된 픽셀들을 페칭하도록 동작할 수 있는 각각의 페치 유닛(306, 324)도 각각 포함할 수 있다. 한 세트의 실시예들에서, 페치 유닛들(306, 324)은 레지스터들(319a-319n, 321a-321n)의 콘텐츠에 의해 정의되는 바와 같은 임의의 주어진 프레임의 활성 영역 내에 있는 임의의 주어진 프레임의 픽셀들만을 페칭할 수 있다. 페칭된 픽셀들은 각각의 FIFO 버퍼들(308, 326)에 공급될 수 있으며, 이들로부터 UI 유닛들은 페칭된 픽셀들을 혼합유닛(310), 더 구체적으로는 혼합 유닛(310) 내의 계층 선택 유닛(312)에 제공할 수 있다. 이어서, 혼합 유닛(310)은 UI(304, 322)로부터 얻어진 페칭된 픽셀들을 다른 프레임들로부터의 픽셀들 및/또는 비디오 파이프(328)로부터 얻어진 비디오 픽셀들과 혼합할 수 있다. 픽셀들은 혼합 요소들(314, 316, 318) 내에서 혼합되어, 출력 프레임 또는 출력 프레임들을 생성할 수 있으며, 이어서 이들은 FIFO(320)로 전달되어, FIFO(320)에 결합된 디스플레이 제어기 인터페이스에 의해 검색되어, 선택된 디스플레이, 예로서 LCD 상에 표시될 수 있다.
이제, 혼합 유닛(310)의 전체 동작이 설명된다. 혼합 유닛(310)은 도 3에 도시된 바와 같이 디스플레이 파이프(300)의 백엔드에 위치할 수 있다. 이것은 UI(304, 322) 및 비디오 파이프(328)로부터 픽셀들의 프레임들을 수신할 수 있으며, 계층 선택 유닛(312)을 통해 이들을 층별로 서로 혼합 할 수 있다. (각각 10비트의 RGB일 수 있는) 최종 결과 픽셀들은 비디오 파이프의 클럭 레이트 clk로 출력 FIFO(320) 내에 대기열화될 수 있으며, 디스플레이 제어기의 클럭 레이트 vclk로 디스플레이 제어기에 의해 페칭될 수 있다. 혼합 유닛(310)에 대한 소스들(UI(304, 326 및/또는 비디오 파이프(328))은 지정된 디폴트 픽셀 위치(예로서, 0,0)에서 시작하는 픽셀들에서 폭, 디스플레이 폭, 및 높이, 디스플레이 높이와 함께 전체 프레임에 대한 픽셀 데이터 및 픽셀별 알파 값들(8 비트일 수 있고, 주어진 픽셀의 투명도를 정의할 수 있음)을 제공할 수 있다. 혼합 유닛(310)은 한 번에 하나의 계층에 대해 기능적으로 작용할 수 있다. 최저 레벨 계층은 배경 컬러(혼합 요소(314)에 제공되는 BG)로서 정의될 수 있다. 계층 1은 (혼합 요소(316)에서) 계층 0과 혼합될 수 있다. 다음 계층인 계층 2는 (혼합 요소(318)에서) 혼합 요소(316)로부터의 출력과 혼합될 수 있고, 이것은 모든 계층들이 혼합될 때 까지 계속될 수 있다. 간략화를 위해, 3개의 혼합 요소(314-318)만이 도시되지만, 디스플레이 파이프(300)는 처리되는 계층들의 요구되는 수에 따라 더 많거나 적은 혼합 요소들을 포함할 수 있다. (계층 1로부터 시작하는) 각각의 계층은 그의 소스가 어디에서 오는지를 지정함으로써 임의의 소스가 임의의 계층 상에 있도록 프로그램에 의해 선택될 수 있는 것을 보증할 수 있다. 전술한 바와 같이, 도시된 바와 같이, 혼합 유닛(310)은 (혼합 요소들(314-318)을 이용하여) 3개의 계층 상에서 선택될 3개의 소스(UI(304, 322) 및 비디오 파이프(328))를 갖는다. 혼합 유닛(310)의 출력 상에서 순환 중복 검사(CRC)도 수행될 수 있다. 혼합 유닛(310)은 또한 CRC 전용 모드에 들어갈 수 있으며, 여기서는 출력 픽셀들이 디스플레이 제어기로 전송되지 않고, 출력 픽셀들에 대해 CRC만이 수행된다.
각각의 소스(UI(304, 322) 및 비디오 파이프(328))는 픽셀별 알파 값을 제공 할 수 있다. 이 알파 값들은 픽셀별 혼합을 수행하는 데 사용될 수 있거나, 정적프레임별 알파 값(예로서, 포화 알파)에 의해 무효화될 수 있거나, 정적 프레임별 알파 값(예로서, 디졸브 알파)과 결합될 수 있다. 소스의 유효 영역 밖의 임의의 픽셀 위치들은 혼합에 사용되지 않을 수 있다. 그 아래의 계층은 그 픽셀 위치가 0의 알파를 가진 것처럼 보일 수 있다. 주어진 픽셀에 대한 0의 알파 값은 주어진 픽셀이 보이지 않고 표시되지 않을 것임을 지시할 수 있다.
한 세트의 실시예들에서, 활성 영역들로서 지칭되는 유효 소스 영역들은 유효 픽셀 데이터를 포함하는 프레임 내의 영역으로서 정의될 수 있다. 활성 영역에 대한 픽셀 데이터는 UI(304, 322)에 의해 메모리로부터 페칭되어, FIFO들(308, 326) 내에 각각 저장될 수 있다. 활성 영역은 전체 프레임의 좌상 코너(0,0)로부터의 시작 및 종료 (X,Y) 오프셋들에 의해 지정될 수 있다. 시작 오프셋들은 활성영역의 좌상 코너를 정의할 수 있고, 종료 오프셋들은 활성 영역의 우하 코너 뒤의 픽셀 위치를 정의할 수 있다. 시작 오프셋 이상이고 종료 오프셋 미만인 좌표들을 갖는 위치에 있는 임의의 픽셀은 유효 영역 내에 있는 것으로 간주 될 수 있다. 임의 수의 활성 영역들이 지정될 수 있다. 예를 들어, 한 세트의 실시예들에서, 각각의 프레임 내에 정의된 최대 4개의 활성 영역이 존재할 수 있으며, 영역 인에이블(enable) 비트들에 의해 지정될 수 있다. 시작 및 종료 오프셋들은 임의의 픽셀 위치에 정렬될 수 있다. 활성 영역들을 포함하는 전체 프레임이 혼합 유닛(310)으로 전송될 수 있다. 프레임 내에 있지만 임의의 활성 영역 내에 있지 않은 임의의 픽셀들은 표시되지 않을 것이며, 따라서 활성 영역 밖의 픽셀들이 0의 알파 값을 가진 것처럼 혼합 동작에 관여하지 않을 수 있다. 대안 실시예들에서, 혼합 유닛(310)은 전체 프레임을 수신하는 대신에 프레임의 활성 영역들에 대한 픽셀 데이터만을 수신하며, 그가 픽셀들을 수신하지 못한 프레임 내의 영역들을 그가 0의 혼합 값(알파 값)을 갖는 픽셀들을 수신한 것처럼 자동적으로 취급하도록 설계될 수 있다.
한 세트의 실시예들에서, 하나의 활성 영역이 UI(304) 내에(레지스터들(319a-319n) 내에) 그리고/또는 UI(322) 내에(레지스터들(321a-321n) 내에) 정의될 수 있으며, 디스플레이 목적지 프레임 내에 재배치될 수 있다. 프레임 내의 활성 영역들이 정의될 수 있는 방식과 유사하게, 프레임은 픽셀 및 어드레싱 포맷들에 의해 정의될 수 있지만, 하나의 활성 영역만이 지정될 수 있다. 이 활성 영역은 프레임 내의 X 및 Y 픽셀 오프셋을 제공함으로써 목적지 프레임 내에 재배치될 수 있다. 하나의 활성 영역 및 목적지 위치는 임의의 픽셀 위치에 정렬될 수 있다. 다른 실시예들은 레지스터들(319a-319n) 내의 그리고 레지스터들(321a-321n) 내의 다수의 활성 영역을 정의하는 정보를 저장하고 이러한 활성 영역들 중 하나 이상을 전술한 바와 같이 목적지 프레임 내에 재배치될 수 있는 활성 영역들로서 지정함으로써 지정되는 다수의 활성 영역의 조합을 동일하게 포함할 수 있다는 점에 유의해야 한다.
한 세트의 실시예들에서, 페치 유닛(330)을 이용하여, 비디오 파이프(328)는 호스트 마스터 인터페이스(302)를 통해 메모리로부터 비디오 프레임 데이터/정보를 YCbCr 포맷들일 수 있는 다양한 포맷들로 페칭할 수 있으며, 랜덤 잡음(디더)을 샘플들 내에 삽입하고(디더 유닛(332)), 그 데이터를 버퍼링한 후에(버퍼들(334)) 그 데이터를 수직 및 수평 양 방향으로 스케일링하고(스케일러들(336, 338)), 데이터를 RGB 컬러 공간으로 변환할 수 있다(컬러 공간 변환기 유닛(340)). 이어서, RGB 데이터는 버퍼링되고(FIFO(342)), 혼합 유닛(310)으로 전송되어, 전술한 바와 같이 다른 RGB 평면들과 혼합될 수 있다. 한 세트의 실시예들에서, 파라미터 FIFO(352)는 레지스터들(319a-319n, 321a-321n, 317a-317n, 323a-323n)에 대한 프로그래밍 정보를 저장하는 데 사용될 수 있다. 파라미터 FIFO(352)는 제어 논리(344)에 의해 이러한 프로그래밍 정보로 채워질 수 있으며, 이 제어 논리는 호스트 마스터 인터페이스(302)를 통해 메모리로부터 프로그래밍 정보를 얻을 수 있다. 일부 실시예들에서, 파라미터 FIFO(352)는 호스트 슬레이브 인터페이스(303)를 통해 고급 고성능 버스(AHB)를 통해 프로그래밍 정보로 채워질 수도 있다.
이제, 도 4를 참조하면, 2개의 활성 영역을 포함하는 프레임(400)의 예시적인 도면이 제공된다. 전술한 바와 같이, 프레임 내에 임의 수의 활성 영역이 정의될 수 있지만, 예시적인 프레임(400) 내에는 2개의 활성 영역만이 정의된다. 프레임(400)의 좌상 코너 픽셀(410)은 (0,0) 좌표 위치로서 정의될 수 있고, 이에 기초하여 활성 영역들(402, 404)이 정의될 수 있다. 예를 들어, 활성 영역(402)은 활성 영역(402)의 좌상 코너 및 우하 코너를 각각 정의하는 픽셀들(406a, 406b)에 기초하여 정의될 수 있다. 유사하게, 활성 영역(404)은 활성 영역(404)의 좌하 코너 및 우상 코너를 각각 정의하는 픽셀들(408a, 408b)에 기초하여 정의될 수 있다. 일반적으로, 활성 영역 내에 서로 정반대로 위치하는 임의의 두 코너는 활성 영역을 정의하는 데 사용될 수 있다. 이어서, 프레임의 임의의 지정된 기준 포인트로부터, 예를 들어 (0,0) 위치로부터 픽셀들(406a, 406b)에 대한 오프셋 값들 및 픽셀들(408a, 408b)에 대한 오프셋 값들을 제공함으로써 활성 영역의 위치가 정의될 수 있다.
한 세트의 실시예들에서, 프레임 내의 활성 영역들은 다른 이미지 또는 비디오 스트림의 상부에 나타나는 그래픽 오버레이를 나타낼 수 있다. 예를 들어, 활성 영역들은 비디오 스트림 위에 중첩된 정적 이미지를 나타낼 수 있다. 도 3을 다시 참조하면, 비디오 파이프(328)는 비디오 스트림을 혼합 유닛(310)에 제공할 수 있으며, UI(304, 322)는 비디오 스트림 위에 표시될 정적 이미지 오버레이를 나타내는 활성 영역 내의 픽셀들을 갖는 이미지 프레임들을 제공할 수 있다. 이 경우, FIFO(320)로부터 디스플레이 제어기에 제공되는 출력 프레임들은 비디오 파이프(328)로부터의 비디오 픽셀 정보를 포함할 수 있으며, 비디오 픽셀 정보 위에 중첩된 FIFO들(308 및/또는 326)로부터의 페칭된 픽셀들은 페칭된 픽셀들의 알파 값들 및 다른 관련 특성들에 따라 혼합 유닛(310)에 의해 서로 혼합된다.
이제, 도 5를 참조하면, 디스플레이 파이프와 같은 그래픽 처리 시스템에서 이미지 프레임들에 대한 픽셀들(또는 더 구체적으로는 이미지 프레임들 내의 픽셀들)이 어떻게 정의되고 페칭될 수 있는지에 대한 동작을 나타내는 흐름도가 도시되어 있다. 프레임의 활성 영역이 정의될 수 있으며(502), 프레임의 활성 영역 내의 픽셀들은 표시되고, 활성 영역 밖의 픽셀들은 표시되지 않는다. 프레임은 프레임에 대한 픽셀 정보를 저장하는 시스템 메모리일 수 있는 메모리로부터 페칭될 수 있으며, 프레임의 정의된 활성 영역 내에 있는 픽셀들만이 페칭된다(504). 이어서, 페칭된 픽셀들은 하나 이상의 다른 프레임들로부터의 픽셀들 또는 비디오 스트림으로부터의 픽셀들과 혼합될 수 있다(506). 이어서, 혼합된 픽셀들로부터 출력 프레임이 생성될 수 있다(508). 일부 실시예들에서, 출력 프레임은 LCD와 같은 디스플레이 상에 표시하기 위해 디스플레이 제어기에 제공될 수 있다.
이제, 도 6을 참조하면, 그래픽 처리/디스플레이 시스템에서 메모리로부터 픽셀들을 페칭하기 위해 이미지 프레임 정보가 어떻게 정의되고 이용될 수 있는지에 대한 동작을 나타내는 흐름도가 도시되어 있다. 처리 유닛 상에서 실행되는 소프트웨어(SW), 예를 들어 도 1의 시스템 내의 프로세서(114) 상에서 실행되는 SW는 하나 이상의 프레임들을 포함할 수 있는 이미지 정보를 하나 이상의 프레임 버퍼들, 예를 들어 도 2의 프레임 버퍼들(208,210) 내에 기록 할 수 있다(602). 이 정보는 각각의 프레임을 구성하는 픽셀들의 픽셀 데이터를 포함할 수 있다. SW는 또한 활성 영역 정보를 하나 이상의 레지스터들, 예를 들어 도 3의 레지스터들(319a-319n, 321a-321n) 내에 기록할 수 있으며(604), 레지스터들 내에 기록된 정보에 의해 정의되는 바와 같은 활성 영역 내의 픽셀들은 표시되는 반면, 활성 영역들 밖의 픽셀들은 표시되지 않는다. 하나 이상의 이미지 프레임들, 더 구체적으로는 이미지 프레임들을 구성하는 픽셀들이 혼합 회로에 제공될 수 있으며, 활성 영역들 내의 픽셀들만이 제공된다(606). 이어서, 제공된 픽셀들은 하나 이상의 다른 이미지 프레임들에 대한 픽셀들과 그리고/또는 비디오 스트림의 픽셀들과 혼합될 수 있다(608). 선택된 디스플레이 상의 표시를 위해 혼합된 픽셀들로부터 출력 프레임 또는 출력 프레임들이 생성될 수 있다(610).
위의 명세서를 완전히 이해한다면 이 분야의 기술자들에게는 다양한 변형들 및 변경들이 명백할 것이다. 아래의 청구항들은 그러한 모든 변형들 및 변경들을 포함하는 것으로 해석될 것을 의도한다.

Claims (15)

  1. 사용자 인터페이스 유닛으로서,
    프레임의 적어도 하나의 활성 영역을 정의하도록 프로그래밍될 수 있는 하나 이상의 레지스터들 - 상기 프레임의 상기 적어도 하나의 활성 영역 내의 픽셀들은 표시되고, 상기 프레임의 상기 적어도 하나의 활성 영역 밖의 픽셀들은 표시되지 않음 -; 및
    메모리로부터 프레임을 페칭(fetching)하도록 구성된 페치 회로
    를 포함하고,
    상기 페치 회로는 상기 하나 이상의 레지스터들의 프로그래밍된 콘텐츠에 의해 정의되는 상기 프레임의 상기 적어도 하나의 활성 영역 내의 상기 픽셀들만을 페칭하도록 구성되며,
    상기 사용자 인터페이스 유닛은 상기 페칭된 픽셀들을, 상기 페칭된 픽셀들과 다른 프레임들로부터의 픽셀들을 혼합하여 출력 프레임을 생성하도록 구성되는 혼합 유닛에 제공하도록 구성되는 사용자 인터페이스 유닛.
  2. 제1항에 있어서,
    상기 페치 회로에 결합된 하나 이상의 버퍼들을 더 포함하고,
    상기 페치 회로는 상기 하나 이상의 버퍼들 내에 상기 페칭된 픽셀들을 저장하도록 더 구성되고,
    상기 사용자 인터페이스 유닛은 상기 페칭된 픽셀들을 상기 하나 이상의 버퍼들로부터 상기 혼합 유닛으로 제공하도록 구성되는 사용자 인터페이스 유닛.
  3. 제1항 또는 제2항에 있어서,
    상기 페치 회로는 투명한 것으로 식별된 픽셀들로 상기 프레임의 비활성 영역들을 채우도록 더 구성되고,
    상기 사용자 인터페이스 유닛은 상기 페칭된 픽셀들 및 상기 투명한 것으로 식별된 픽셀들을 포함하는 상기 프레임을 상기 혼합 유닛에 제공하도록 구성되는 사용자 인터페이스 유닛.
  4. 디스플레이 파이프로서,
    시스템 메모리와 인터페이스하도록 구성된 호스트 인터페이스 유닛; 및
    복수의 사용자 인터페이스 유닛
    을 포함하고,
    상기 복수의 사용자 인터페이스 유닛 각각은 제1항 내지 제3항 중 어느 한 항에 기재된 바와 같은 사용자 인터페이스 유닛이고, 상기 복수의 사용자 인터페이스 유닛은 상기 호스트 인터페이스 유닛에 결합되며,
    상기 복수의 사용자 인터페이스 유닛은 프레임 정보에 의해 정의되는 바와 같은 복수의 프레임의 각각의 활성 영역들 내의 픽셀들을 상기 시스템 메모리로부터 상기 호스트 인터페이스 유닛을 통해 페칭하여, 상기 페칭된 픽셀들을 대응하는 출력 프레임들 내에 표시하도록 구성되는 디스플레이 파이프.
  5. 제4항에 있어서,
    상기 복수의 사용자 인터페이스 유닛에 결합된 혼합 유닛을 더 포함하고,
    상기 복수의 사용자 인터페이스 유닛은 상기 페칭된 픽셀들을 상기 혼합 유닛에 제공하도록 구성되고,
    상기 혼합 유닛은 상기 페칭된 픽셀들과 비디오 스트림을 혼합하여, 표시할 상기 대응하는 출력 프레임들을 생성하도록 구성되는 디스플레이 파이프.
  6. 제5항에 있어서,
    상기 호스트 인터페이스 유닛에 그리고 상기 혼합 유닛에 결합되고, 상기 시스템 메모리로부터 상기 호스트 인터페이스 유닛을 통해 비디오 정보를 페칭하고, 상기 페칭된 비디오 정보로부터 상기 비디오 스트림을 생성하도록 구성되는 비디오 파이프
    를 더 포함하는 디스플레이 파이프.
  7. 시스템 메모리 - 상기 시스템 메모리는,
    대응하는 이미지 프레임들을 정의하는 이미지 프레임 정보를 저장하도록 구성된 적어도 하나의 프레임 버퍼; 및
    대응하는 비디오 프레임들을 정의하는 비디오 프레임 정보를 저장하도록 구성된 비디오 버퍼
    를 포함함 -;
    제4항 내지 제6항 중 어느 한 항에 기재된 바와 같은 디스플레이 파이프
    를 포함하는 시스템.
  8. 제7항에 있어서, 상기 혼합 유닛은 상기 이미지 프레임들의 각각의 활성 영역들 밖의 상기 픽셀들을 혼합을 위한 0의 알파 값을 갖는 것으로서 취급하도록 구성되는 시스템.
  9. 제7항 또는 제8항에 있어서, 상기 활성 영역 정보는 한 쌍의 픽셀에 대한 좌표 정보를 포함하고, 상기 한 쌍의 픽셀은 상기 활성 영역의 대각선 대향 코너들에 위치하는 시스템.
  10. 프레임의 활성 영역을 정의하는 단계 - 상기 프레임의 상기 정의된 활성 영역 내의 픽셀들은 표시되고, 상기 프레임의 상기 정의된 활성 영역 밖의 픽셀들은 표시되지 않음 -;
    메모리로부터 상기 프레임의 상기 정의된 활성 영역 내의 상기 픽셀들만을 페칭하는 단계; 및
    상기 페칭된 픽셀들과 하나 이상의 다른 프레임들로부터의 픽셀들의 혼합을 포함하여, 출력 프레임을 생성하는 단계
    를 포함하는 방법.
  11. 제10항에 있어서, 상기 출력 프레임을 생성하는 단계는 상기 프레임의 상기 정의된 활성 영역 밖의 상기 프레임의 비활성 영역들을 0의 혼합 값을 갖는 픽셀들을 포함하는 것으로서 취급하는 단계를 더 포함하는 방법.
  12. 제10항에 있어서, 상기 출력 프레임을 생성하는 단계는 상기 프레임의 상기 정의된 활성 영역 밖의 상기 프레임의 모든 비활성 영역들을 0의 혼합 값을 갖는 픽셀들로 채우는 단계를 더 포함하는 방법.
  13. 제10항 내지 제12항 중 어느 한 항에 있어서,
    시스템 메모리로부터 비디오 정보를 페칭하는 단계; 및
    상기 페칭된 비디오 정보로부터 비디오 스트림을 생성하는 단계
    를 더 포함하고,
    상기 출력 프레임을 생성하는 단계는 상기 페칭된 픽셀들과 상기 비디오 스트림을 혼합하는 단계를 더 포함하는 방법.
  14. 제13항에 있어서, 상기 페칭된 픽셀들을 상기 비디오 스트림 위에 정적 오버레이로서 표시하는 단계를 더 포함하는 방법.
  15. 제11항 내지 제14항 중 어느 한 항에 있어서,
    하나 이상의 이미지 프레임들을 포함하는 이미지 정보를 하나 이상의 프레임 버퍼들 내에 기록하는 단계; 및
    활성 영역 정보를 하나 이상의 레지스터들 내에 기록하는 단계
    를 더 포함하고,
    상기 활성 영역 정보는 상기 하나 이상의 이미지 프레임들의 활성 영역들을 정의하는 방법.
KR1020127021145A 2010-01-11 2011-01-05 프레임의 활성 영역들만을 페칭하기 위한 사용자 인터페이스 유닛 KR20120117860A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/685,152 2010-01-11
US12/685,152 US8669993B2 (en) 2010-01-11 2010-01-11 User interface unit for fetching only active regions of a frame

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020147025442A Division KR20140117692A (ko) 2010-01-11 2011-01-05 프레임의 활성 영역들만을 페칭하기 위한 사용자 인터페이스 유닛

Publications (1)

Publication Number Publication Date
KR20120117860A true KR20120117860A (ko) 2012-10-24

Family

ID=43759877

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020147025442A KR20140117692A (ko) 2010-01-11 2011-01-05 프레임의 활성 영역들만을 페칭하기 위한 사용자 인터페이스 유닛
KR1020127021145A KR20120117860A (ko) 2010-01-11 2011-01-05 프레임의 활성 영역들만을 페칭하기 위한 사용자 인터페이스 유닛

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020147025442A KR20140117692A (ko) 2010-01-11 2011-01-05 프레임의 활성 영역들만을 페칭하기 위한 사용자 인터페이스 유닛

Country Status (12)

Country Link
US (1) US8669993B2 (ko)
EP (1) EP2524297A1 (ko)
JP (1) JP2013516664A (ko)
KR (2) KR20140117692A (ko)
CN (1) CN102763071A (ko)
AU (1) AU2011203640B2 (ko)
BR (1) BR112012017007A2 (ko)
DE (1) DE112011100221T5 (ko)
GB (1) GB2498416B (ko)
HK (1) HK1181230A1 (ko)
MX (1) MX2012008070A (ko)
WO (1) WO2011085024A1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110242427A1 (en) * 2010-04-01 2011-10-06 Timothy Ramsdale Method and System for Providing 1080P Video With 32-Bit Mobile DDR Memory
US10353633B2 (en) 2013-12-19 2019-07-16 Sony Interactive Entertainment LLC Mass storage virtualization for cloud computing
US9497358B2 (en) * 2013-12-19 2016-11-15 Sony Interactive Entertainment America Llc Video latency reduction
KR102246105B1 (ko) * 2014-09-25 2021-04-29 삼성전자주식회사 디스플레이 장치, 이의 제어 방법 및 이의 데이터 전송 방법
US10074203B2 (en) * 2014-12-23 2018-09-11 Synaptics Incorporated Overlay for display self refresh
WO2016192060A1 (en) * 2015-06-03 2016-12-08 Intel Corporation Low power video composition using a stream out buffer
CN105260153B (zh) * 2015-10-15 2018-11-30 西安诺瓦电子科技有限公司 图像输出装置和图像输出方法
US12039626B2 (en) * 2021-12-20 2024-07-16 Ati Technologies Ulc Method and apparatus for controlling image processing pipeline configuration data during demonstration and non-demonstration modes

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US639473A (en) * 1898-08-10 1899-12-19 Elmer E Ward Culinary steamer and boiler.
US6396473B1 (en) 1999-04-22 2002-05-28 Webtv Networks, Inc. Overlay graphics memory management method and apparatus
US6801203B1 (en) 1999-12-22 2004-10-05 Microsoft Corporation Efficient graphics pipeline with a pixel cache and data pre-fetching
US6570574B1 (en) 2000-01-10 2003-05-27 Intel Corporation Variable pre-fetching of pixel data
US7471298B1 (en) 2000-06-26 2008-12-30 S3 Graphics Co., Ltd. Fetching pixel data with reduced memory bandwidth requirement
US7034791B1 (en) * 2000-12-14 2006-04-25 Gary Odom Digital video display employing minimal visual conveyance
JP2003288067A (ja) * 2002-03-28 2003-10-10 Hitachi Ltd 画像表示装置
US6919902B2 (en) 2002-06-03 2005-07-19 Seiko Epson Corporation Method and apparatus for fetching pixel data from memory
JP4522404B2 (ja) * 2004-04-22 2010-08-11 富士通セミコンダクター株式会社 画像処理装置
JP2007170834A (ja) 2005-12-19 2007-07-05 Denso Corp ナビゲーション装置及びナビゲーション装置の画像表示方法
US20080001967A1 (en) * 2006-06-30 2008-01-03 Srikanth Rengarajan Display bandwidth reduction apparatus, system, and method
US20090135916A1 (en) 2007-11-26 2009-05-28 Mediatek Inc. Image processing apparatus and method
US20090310947A1 (en) 2008-06-17 2009-12-17 Scaleo Chip Apparatus and Method for Processing and Blending Multiple Heterogeneous Video Sources for Video Output

Also Published As

Publication number Publication date
CN102763071A (zh) 2012-10-31
GB201212303D0 (en) 2012-08-22
US8669993B2 (en) 2014-03-11
BR112012017007A2 (pt) 2016-04-05
AU2011203640A1 (en) 2012-08-02
GB2498416B (en) 2013-11-06
EP2524297A1 (en) 2012-11-21
US20110169847A1 (en) 2011-07-14
JP2013516664A (ja) 2013-05-13
DE112011100221T5 (de) 2012-10-25
WO2011085024A1 (en) 2011-07-14
AU2011203640B2 (en) 2014-01-09
MX2012008070A (es) 2012-07-30
HK1181230A1 (en) 2013-11-01
GB2498416A (en) 2013-07-17
KR20140117692A (ko) 2014-10-07

Similar Documents

Publication Publication Date Title
US9262798B2 (en) Parameter FIFO
AU2011203640B2 (en) User interface unit for fetching only active regions of a frame
US9336563B2 (en) Buffer underrun handling
JP6652937B2 (ja) 分割ディスプレイを駆動する多重ディスプレイパイプライン
US10096304B2 (en) Display controller for improving display noise, semiconductor integrated circuit device including the same and method of operating the display controller
US8717391B2 (en) User interface pipe scalers with active regions
US8767005B2 (en) Blend equation
AU2012218103B2 (en) Layer blending with Alpha values of edges for image translation
US20160189665A1 (en) Display controller and semiconductor integrated circuit devices including the same
US8711173B2 (en) Reproducible dither-noise injection
US8773457B2 (en) Color space conversion
US10249261B2 (en) Display controller and application processor including the same
US8749565B2 (en) Error check-only mode
US9691349B2 (en) Source pixel component passthrough
US20060092163A1 (en) Rendering images on a video graphics adapter
US20050275665A1 (en) System and method for efficiently supporting image rotation modes by utilizing a display controller
JP2001505674A (ja) Vgaと整合性を有するビデオ表示アダプタを用いて効率的なメモリ読み出し動作を行なうための方法及び装置

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
A107 Divisional application of patent
AMND Amendment