KR20130045450A - 그래픽 프로세싱 유닛, 이를 포함하는 장치들, 및 이의 동작 방법 - Google Patents

그래픽 프로세싱 유닛, 이를 포함하는 장치들, 및 이의 동작 방법 Download PDF

Info

Publication number
KR20130045450A
KR20130045450A KR1020110109654A KR20110109654A KR20130045450A KR 20130045450 A KR20130045450 A KR 20130045450A KR 1020110109654 A KR1020110109654 A KR 1020110109654A KR 20110109654 A KR20110109654 A KR 20110109654A KR 20130045450 A KR20130045450 A KR 20130045450A
Authority
KR
South Korea
Prior art keywords
texels
format
tile
sequential
coordinates
Prior art date
Application number
KR1020110109654A
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 삼성전자주식회사
Priority to KR1020110109654A priority Critical patent/KR20130045450A/ko
Priority to US13/615,395 priority patent/US20130106889A1/en
Publication of KR20130045450A publication Critical patent/KR20130045450A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping

Abstract

그래픽 프로세싱 유닛(GPU)의 동작 방법이 개시된다. 상기 GPU의 동작 방법은 타일 형식으로 정렬된 복수의 텍셀들을 수신하는 단계와, 상기 타일 형식으로 정렬된 상기 복수의 텍셀들을 순차적 형식으로 재정렬하는 단계를 포함한다. 상기 타일 형식은 각각이 (M×N) 텍셀들을 포함하는 복수의 타일들로 정렬되는 형식이고, 상기 순차적 형식은 상기 복수의 텍셀들이 디스플레이의 스캔 라인 순서로 정렬되는 형식이다.

Description

그래픽 프로세싱 유닛, 이를 포함하는 장치들, 및 이의 동작 방법{Graphic processing unit, devices having same, and method of operating same}
본 발명의 개념에 따른 실시 예는 그래픽 프로세싱 유닛(graphic processing unit(GPU))에 관한 것으로, 특히 중앙 처리 유닛(central processing unit(CPU))의 부하(load)를 감소시킬 수 있는 그래픽 프로세싱 유닛, 이를 포함하는 장치들, 및 이의 동작 방법에 관한 것이다.
이동 전화기 또는 태블릿 PC(tablet personal computer)와 같이 손으로 들고다닐 수 있는 장치(handheld device)에 있어서, 전력은 중요한 이슈(issue)이다.
상기 손으로 들고다닐 수 있는 장치의 전반적인 동작을 제어할 수 있는 CPU는 상기 손으로 들고다닐 수 있는 장치에 사용된다.
상기 CPU는 상기 장치의 동작을 처리하기 위해 프로그램 명령들(program instructions)을 읽고 실행할 수 있다.
상기 CPU가 상기 프로그램 명령들을 읽고 수행할 때, 상기 CPU의 부하가 증가될 수 있다. 상기 CPU의 부하가 증가될 때, 상기 CPU를 포함하는 장치의 전력 소모는 증가하고 이에 따라 열이 발생한다. 따라서 전력 소모와 열의 발생을 해결할 수 있는 방법이 필요하다.
본 발명이 이루고자 하는 기술적인 과제는, CPU의 부하를 감소시키기 위해, 타일 형식(tile format)으로 정렬된 복수의 텍셀들(texels)을 순차적 형식으로 재정렬할 수 있는 그래픽 프로세싱 유닛, 이를 포함하는 장치들, 및 이의 동작 방법을 제공하는 것이다.
본 발명의 실시 예에 따른 그래픽 프로세싱 유닛의 동작 방법은 타일 형식으로 정렬된 복수의 텍셀들을 수신하는 단계와, 상기 타일 형식으로 정렬된 상기 복수의 텍셀들을 순차적 형식으로 재정렬하는 단계를 포함한다.
상기 타일 형식은 각각이 (M×N) 텍셀들을 포함하는 복수의 타일들로 정렬되는 형식이고, 상기 순차적 형식은 상기 복수의 텍셀들이 디스플레이의 스캔 라인 순서로 정렬되는 형식이다.
상기 재정렬하는 단계는 상기 타일 형식으로 정렬된 상기 복수의 텍셀들 각각의 좌표와 대응되는 상기 순차적 형식으로 정렬된 상기 복수의 텍셀들 각각의 좌표를 포함하는 룩업 테이블을 리드하는 단계와, 상기 룩업 테이블을 이용하여 상기 타일 형식으로 정렬된 상기 복수의 텍셀들을 상기 순차적 형식으로 재정렬하는 단계를 포함한다.
상기 순차적 형식으로 정렬된 상기 복수의 텍셀들 각각의 상기 좌표는 x 좌표와 y 좌표를 포함하는 2차원으로 표현될 수 있다.
상기 x 좌표는 상기 복수의 텍셀들 각각의 순서를 나타내는 값을 상기 순차적 형식으로 정렬된 상기 복수의 텍셀들의 가로 길이로 나눈 나머지이다.
상기 y 좌표는 상기 복수의 텍셀들 각각의 순서를 나타내는 값을 상기 순차적 형식으로 정렬된 상기 복수의 텍셀들의 가로 길이로 나눈 몫이다.
본 발명의 실시 예에 따른 그래픽 프로세싱 유닛은 타일 형식으로 정렬된 복수의 텍셀들을 패치하는 텍셀 패치 유닛과, 상기 타일 형식으로 정렬된 상기 복수의 텍셀들을 순차적 형식으로 재정렬하는 프래그먼트 세이더를 포함한다.
상기 타일 형식은 각각이 (M×N) 텍셀들을 포함하는 복수의 타일들로 정렬되는 형식이고, 상기 순차적 형식은 상기 복수의 텍셀들이 디스플레이의 스캔 라인 순서로 정렬되는 형식이다.
상기 텍셀 패치 유닛은 상기 타일 형식으로 정렬된 상기 복수의 텍셀들 각각의 좌표와 대응되는 상기 순차적 형식으로 정렬된 상기 복수의 텍셀들 각각의 좌표를 포함하는 룩업 테이블을 패치할 수 있다.
상기 프래그먼트 세이더는 상기 룩업 테이블을 이용하여 상기 타일 형식으로 정렬된 상기 복수의 텍셀들을 상기 순차적 형식으로 재정렬한다.
상기 순차적 형식으로 정렬된 상기 복수의 텍셀들 각각의 상기 좌표는 x 좌표와 y 좌표를 포함하는 2차원으로 표현되며, 상기 x 좌표는 상기 복수의 텍셀들 각각의 순서를 나타내는 값을 상기 순차적 형식으로 정렬된 상기 복수의 텍셀들의 가로 길이로 나눈 나머지이고, 상기 y 좌표는 상기 복수의 텍셀들 각각의 순서를 나타내는 값을 상기 순차적 형식으로 정렬된 상기 복수의 텍셀들의 가로 길이로 나눈 몫이다.
본 발명의 실시 예에 따른 애플리케이션 프로세서는 상기 그래픽 프로세싱 유닛과, 메모리로부터 출력된 상기 타일 형식으로 정렬된 상기 복수의 텍셀들을 상기 GPU로 전송하는 메모리 인터페이스를 포함한다.
상기 텍셀 패치 유닛은 상기 타일 형식으로 정렬된 상기 복수의 텍셀들 각각의 좌표와 대응되는 상기 순차적 형식으로 정렬된 상기 복수의 텍셀들 각각의 좌표를 포함하는 룩업 테이블을 패치한다.
상기 프래그먼트 세이더는 상기 룩업 테이블을 이용하여 상기 타일 형식으로 정렬된 상기 복수의 텍셀들을 상기 순차적 형식으로 재정렬한다.
본 발명의 실시 예에 따른 데이터 처리 시스템은 상기 그래픽 프로세싱 유닛과, 상기 타일 형식으로 정렬된 상기 복수의 텍셀들을 저장하는 메모리와, 상기 메모리로부터 출력된 상기 타일 형식으로 정렬된 상기 복수의 텍셀들을 상기 그래픽 프로싱 유닛으로 전송하는 메모리 인터페이스를 포함한다.
상기 텍셀 패치 유닛은 상기 타일 형식으로 정렬된 상기 복수의 텍셀들 각각의 좌표와 대응되는 상기 순차적 형식으로 정렬된 상기 복수의 텍셀들 각각의 좌표를 포함하는 룩업 테이블을 패치하고, 상기 프래그먼트 세이더는 상기 룩업 테이블을 이용하여 상기 타일 형식으로 정렬된 상기 복수의 텍셀들을 상기 순차적 형식으로 재정렬한다.
본 발명의 실시 예에 따른 그래픽 프로세싱 유닛, 이를 포함하는 장치들, 및 이의 동작 방법은 타일 형식으로 정렬된 복수의 텍셀들을 순차적 형식으로 재정렬함으로써 CPU의 부하를 감소시킬 수 있는 효과가 있다.
상기 CPU의 부하가 감소함에 따라, 상기 CPU와 상기 그래픽 프로세싱 유닛을 포함하는 장치의 전력 소모는 감소하고 이에 따라 상기 장치에서 발생하는 열을 감소시킬 수 있는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 실시 예에 따른 그래픽 프로세싱 유닛을 포함하는 데이터 처리 시스템의 블록도를 나타낸다.
도 2는 도 1에 도시된 그래픽 프로세싱 유닛의 블록도를 나타낸다.
도 3은 도 2에 도시된 텍스쳐 버퍼에 타일 형식으로 저장된 복수의 타일들을 나타낸다.
도 4는 도 3에 도시된 복수의 타일들 중에서 2개에 타일들 각각에 포함된 복수의 텍셀들(texels)을 나타낸다.
도 5는 도 2에 도시된 그래픽 프로세싱 유닛에 의해 타일 형식으로 정렬된 복수의 텍셀들을 순차적 형식으로 정렬된 복수의 텍셀들로 재정렬하기 위한 룩-업 테이블(look-up table)을 나타낸다.
도 6은 도 2에 도시된 그래픽 프로세싱 유닛의 동작을 설명하기 위한 흐름도를 나타낸다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 개념에 따른 실시 예들은 다양한 형태로 실시될 수 있으며 본 명세서 또는 출원에 설명된 실시 예들에 한정되는 것으로 해석되어서는 아니 된다.
본 발명의 개념에 따른 실시 예는 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있으므로 특정 실시 예들을 도면에 예시하고 본 명세서 또는 출원에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예를 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1 및/또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 아니 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미가 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다.
도 1은 본 발명의 실시 예에 따른 그래픽 프로세싱 유닛을 포함하는 데이터 처리 시스템의 블록도를 나타낸다.
도 1을 참조하면, 데이터 처리 시스템(10)은 이동 전화기, 스마트 폰, 태블릿 PC(tablet personal computer), PDA(personal digital assistant), EDA (enterprise digital assistant), 디지털 스틸 카메라(digital still camera), 디지털 비디오 카메라(digital video camera), PMP(portable multimedia player), PDN(personal navigation device 또는 portable navigation device), 손으로 들고다닐 수 있는 게임 콘솔(handheld game console), 또는 e-북(e-book)과 같이 손으로 들고다닐 수 있는 장치(handheld device)로 구현될 수 있다.
데이터 처리 시스템(10)은 애플리케이션 프로세서(application processor; 20), 디스플레이(40), 및 메모리(50)를 포함할 수 있다.
애플리케이션 프로세서(20)는 데이터 처리 시스템(10)의 동작을 전반적으로 제어할 수 있다.
애플리케이션 프로세서(20)는 CPU(central processing unit; 21), ROM(read only memory; 23), RAM(random access memory; 25), 디스플레이 컨트롤러(27), 메모리 인터페이스(29), 및 그래픽 프로세싱 유닛(graphic processing unit(GPU); 30)를 포함할 수 있다. 애플리케이션 프로세서(20)는 시스템 온 칩(system on chip(SoC))로 구현될 수 있다.
CPU(21)는 프로그램 명령들(program instructions)을 읽고 실행할 수 있다.
실시 예에 따라 CPU(21)는 멀티-코어(multi-core)로 구현될 수 있다. 상기 멀티-코어는 두 개 또는 그 이상의 독립적인 실질적인 코어들(cores)을 갖는 하나의 컴퓨팅 컴포넌트(computing component)이다.
메모리(23 또는 25)에 저장된 프로그램들 및/또는 데이터는 필요에 따라 CPU (21)의 메모리, 예컨대 캐시 메모리(미도시)로 로드(load)될 수 있다.
ROM(23)은 영구적인 프로그램들 및/또는 데이터를 저장할 수 있다. ROM(23)은 EPROM(erasable programmable read-only memory) 또는 EEPROM(electrically erasable programmable read-only memory)으로 구현될 수 있다.
RAM(25)은 프로그램들, 데이터, 또는 명령들(instructions)을 일시적으로 저장할 수 있다. 예컨대, 메모리(23 또는 25)에 저장된 프로그램들 및/또는 데이터는 CPU(21)의 제어, GPU(30)의 제어, 또는 ROM(23)에 저장된 부팅 코드(booting code)에 따라 RAM(25)에 일시적으로 저장될 수 있다. RAM(25)은 DRAM(dynamic RAM) 또는 SRAM(static RAM)으로 구현될 수 있다.
CPU(21)의 부하를 감소시킬 수 있는 GPU(30)는 그래픽 처리와 관련된 프로그램 명령들을 읽고 수행할 수 있다.
상기 프로그램 명령들에 대해서는 도 2에서 자세히 설명될 것이다.
디스플레이(40)의 동작을 제어할 수 있는 디스플레이 컨트롤러(27)는 메모리 (50)로부터 출력된 이미지 데이터, 예컨대, 동영상 데이터 또는 정지 영상 데이터를 디스플레이(40)로 전송할 수 있다.
디스플레이(40)는 LCD(liquid crystal display), LED(light emitting diode) 디스플레이, OLED(organic light emitting diode) 디스플레이, 또는 AMOLED(active matrix OLED) 디스플레이로 구현될 수 있다.
애플리케이션 프로세서(20)와 메모리(50)는 메모리 인터페이스(29)를 통하여 데이터를 주고받을 수 있다. 예컨대, 메모리 인터페이스(29)는 메모리(50)를 액세스할 수 있는 메모리 컨트롤러의 기능을 수행할 수 있다.
메모리(50)는 CPU(21) 또는 GPU(30)에 의하여 처리될 프로그램들 및/또는 이미지 데이터를 저장할 수 있다. 메모리(50)는 불휘발성(non-volatile) 메모리로 구현될 수 있다. 상기 불휘발성 메모리는 플래시(flash) 메모리 또는 저항성 (resistive) 메모리로 구현될 수 있다.
각 구성 요소(21, 23, 25, 27, 29, 및 30)는 버스(22)를 통하여 서로 통신할 수 있다.
도 2는 도 1에 도시된 그래픽 프로세싱 유닛의 블록도를 나타낸다.
도 1과 도 2를 참조하면, GPU(30)는 메모리 인터페이스(29)를 통해 메모리 (50)로부터 출력된 데이터를 수신하거나 GPU(30)에 의해 처리된 데이터를 메모리 (50)로 전송하나, 설명의 편의를 위해 메모리 인터페이스(29)는 생략한다.
메모리(50)는 버텍스 버퍼(vertex buffer; 51), 룩-업 테이블 버퍼(look-up table(LUT) buffer; 53), 텍스쳐 버퍼(texture buffer; 55), 및 프레임 버퍼(frame buffer; 57)를 포함한다.
버텍스 버퍼(51)는 버텍스(vertex)의 위치와 컬러(color)와 같은 속성 데이터(AD)를 저장하고, 속성 데이터(AD)를 버텍스 세이더(vertex shader; 31)로 출력한다.
룩-업 테이블 버퍼(53)에 대해서는 도 5를 참조하여 자세히 설명될 것이다. 텍스쳐 버퍼(55)에 대해서는 도 3과 도 4를 참조하여 자세히 설명될 것이다.
프레임 버퍼(57)는 GPU(30)에 의해 처리된 이미지 데이터, 예컨대 동영상 데이터, 정지 영상 데이터, 3차원 데이터, 또는 3차원 입체 데이터(stereoscopic image data)를 저장한다.
GPU(30)는 버텍스 세이더(vertex shader; 31), 지오메트리 세이더(geometry shader; 33), 래스터라이저(rasterizer; 35), 프래그먼트 세이더(fragment shader; 37), 및 텍셀 패치 유닛(texel fetch unit; 39)을 포함한다. 각 구성 요소(31, 33, 35, 37, 및 39)는 그래픽 처리와 관련된 프로그램 명령을 실행하는 유닛이다.
버텍스 세이더(31)는 버텍스 세이더 프로그램 명령을 수행한다.
즉, 버텍스 세이더(31)는 버텍스 버퍼(51)로부터 버텍스(vertex)의 위치와 컬러와 같은 속성 데이터(AD)를 수신한다. 버텍스 세이더(31)는 속성 데이터(AD)를 조작하여, 디스플레이(40)에 버텍스가 보이도록 가상 공간에서 상기 버텍스의 3D 위치를 2D 좌표로 변형시킬 수 있다. 버텍스 세이더(31)는 점들, 라인들, 및 삼각형들과 같은 프리미티브들(primitives; PR)을 출력한다. 프리미티브들(PR) 각각은 버터시즈(vertices)를 포함한다.
지오메트리 세이더(33)는 지오메트리 세이더 프로그램 명령을 수행한다.
즉, 지오메트리 세이더(33)는 버텍스 세이더(31)로부터 출력되는 프리미티브들(PR)에 버터시즈를 더하거나 또는 프리미티브들(PR)로부터 버터시즈를 제거하여 새로운 프리미티브들(new primitives; NPR)을 생성한다.
래스터라이저(35)는 래스터라이저 프로그램 명령을 수행한다.
즉, 래스터라이저(35)는 지오메트리 세이더(33)로부터 새로운 프리미티브들 (NPR)을 수신하고 새로운 프리미티브들(NPR)을 복수의 픽셀들(PX)로 변환한다.
프래그먼트 세이더(37)는 디스플레이(40)에 디스플레이될 최종 컬러를 계산하기 위해 복수의 픽셀들(PX)을 처리하는 계산 연산들(computation operations)을 수행하는 프래그먼트 세이더 프로그램 명령을 수행한다.
프래그먼트 세이더(37)는 처리된 복수의 픽셀들을 이미지 데이터(ID)로서 출력한다. 이미지 데이터(ID)는 프레임 버퍼(57)에 저장되며, 이미지 데이터(ID)는 디스플레이 컨트롤러(27)를 통하여 디스플레이(40)에서 디스플레이된다.
상기 계산 연산들은 텍스쳐 매핑(texture mapping)과 컬러 포멧 변환(color format conversion)을 포함할 수 있다.
상기 텍스쳐 매핑은 복수의 픽셀들(PX)에 세부감(detail)을 더하기 위해 복수의 픽셀들(PX)과 텍스쳐 버퍼(55)로부터 출력되는 복수의 텍셀들(texels)을 매핑하는 동작을 의미한다.
상기 컬러 포멧 변환은 프레임 버퍼(57)에 이미지 데이터(ID)를 저장하기 위해 YUV 포맷으로부터 RGB 포맷으로 변환하는 동작을 의미한다.
텍스쳐 버퍼(55)는 복수의 텍셀들을 타일 형식으로 저장한다.
텍스쳐(texture)는 비트맵(bitmap) 이미지일 수 있다. 상기 텍스쳐는 복수의 텍셀들의 집합으로 나타낼 수 있다.
도 3은 도 2에 도시된 텍스쳐 버퍼에 타일 형식으로 저장된 복수의 타일들을 나타내며, 도 4는 도 3에 도시된 복수의 타일들 중에서 2개에 타일들 각각에 포함된 복수의 텍셀들(texels)을 나타낸다.
도 1 내지 도 4를 참조하면, 복수의 텍셀들은 텍스쳐 버퍼(55)에 타일 형식으로 저장된다. 여기서 타일 형식은 복수의 타일들(예컨대, T0~T179)로 정렬되는 형식을 의미한다.
실시 예에 따라, 복수의 타일들(T0~T179)은 다양한 형태들로 정렬될 수 있다. 복수의 타일들(T0~T179) 각각은 복수의 (M×N) 텍셀들을 포함한다. 여기서, M과 N 각각은 자연수이고, M=N 또는 M≠N일 수 있다.
상기 M은 텍셀들의 행(row)을 나타내며, 상기 N은 텍셀들의 열(column)을 나타낸다.
예컨대, 타일(T0)은 복수의 텍셀들(TX0~TX2047)을 포함하고, 타일(T1)은 복수의 텍셀들(TX2048~TX4095)을 포함할 수 있다.
실시 예에 따라, 복수의 타일들의 개수와 복수의 텍셀들의 개수는 다양하게 달라질 수 있다.
복수의 텍셀들(예컨대, TX0~TX4095) 각각은 텍셀 정보를 포함한다.
상기 텍셀 정보는 밝기 정보를 나타내는 루마 컴포넌트(luma componet)와, 컬러 정보를 나타내는 크로미넌스 컴포넌트들(chrominance components)을 포함한다.
상기 루마 컴포넌트는 'Y'로 정의되며, 상기 크로미넌스 컴포넌트들은 'U'와 'V'로 정의된다.
상기 루마 컴포너트 값과 상기 크로미넌스 컴포넌트 값들 각각은 0과 1 사이의 범위를 가질 수 있다.
복수의 텍셀들(TX0~TX4095)이 순차적 형식으로 텍스쳐 버퍼(55)에 저장되고, 텍스쳐 버퍼(55)에 순차적 형식으로 저장된 복수의 텍셀들(TX0~TX4095)이 텍스쳐 버퍼(55)로부터 GPU(33)로 전송될 때, 병목 현상(bottleneck phenomenon)이 발생할 수 있다.
상기 순차적 형식은 복수의 텍셀들(TX0~TX4095)이 디스플레이(40)의 스캔 라인 순서로 정렬되는 형식을 의미한다.
본 발명의 개념에 따른 실시 예에서, 복수의 텍셀들(TX0~TX4095)이 타일 형식으로 텍스쳐 버퍼(55)에 저장됨으로써, 텍스쳐 버퍼(55)로부터 GPU(33)까지의 텍셀 전송 속도는 증가될 수 있다.
타일 형식으로 정렬된 복수의 텍셀들(TX0~TX4095)이 복수의 픽셀들(PX)과 매핑(mapping)되고, 처리된 복수의 픽셀들이 이미지 데이터(ID)로서 출력될 때, 이미지 데이터(ID)는 제대로 디스플레이되지 않을 수 있다.
따라서, 디스플레이(40)에 이미지 데이터(ID)를 제대로 디스플레이하기 위해서는 타일 형식으로 정렬된 복수의 텍셀들(TX0~TX4095)이 순차적 형식으로 재정렬되어야 한다.
텍셀 패치 유닛(39)은 텍스쳐 버퍼(55)에 저장된 복수의 텍셀들을 패치 (fetch)한다.
프래그먼트 세이더(37)는 텍셀 패치 유닛(39)으로부터 타일 형식으로 정렬된 복수의 텍셀들을 수신한다. 프래그먼트 세이더(37)는 디스플레이(40)에 이미지 데이터(ID)를 제대로 디스플레이하기 위해 타일 형식으로 정렬된 복수의 텍셀들을 순차적 형식으로 재정렬한다.
도 5는 도 2에 도시된 그래픽 프로세싱 유닛에 의해 타일 형식으로 정렬된 복수의 텍셀들을 순차적 형식으로 정렬된 복수의 텍셀들로 재정렬하기 위한 룩업 테이블(lookup table)을 나타낸다.
도 1 내지 도 5를 참조하면, 텍셀 패치 유닛(39)은 룩-업 테이블 버퍼(53)에 저장된 룩-업 테이블(LUT)를 패치한다.
룩-업 테이블(LUT)은 타일 형식으로 정렬된 복수의 텍셀들(TX0~TX4095) 각각의 좌표와 대응되는 순차적 형식으로 정렬된 복수의 텍셀들 각각의 좌표(C0~Cq)를 포함한다.
순차적 형식으로 정렬된 복수의 텍셀들(TX0~TX4095) 각각의 좌표(C0~Cq)는 x 좌표와 y 좌표를 포함하는 2차원으로 표현된다. 상기 x 좌표와 상기 y 좌표 각각은 복수의 비트들로 나타낼 수 있다.
유사하게, 타일 형식으로 정렬된 복수의 텍셀들(TX0~TX4095) 각각의 좌표는 x 좌표와 y 좌표를 포함하는 2차원으로 표현된다.
예컨대, 타일(T0)에 포함된 텍셀(TX64)의 좌표는 (0, 1)로 표현될 수 있다. '0'은 타일(T0)의 x 좌표를 의미하며, '1'은 타일(T1)의 y좌표를 의미한다.
프래그먼트 세이더(37)는 텍셀 패치 유닛(39)으로부터 타일 형식으로 정렬된 복수의 텍셀들을 수신한다. 예컨대, 프래그먼트 세이더(37)는 타일(T0)에 포함된 텍셀(TX64)을 수신한다.
프래그먼트 세이더(37)는 룩-업 테이블(LUT)을 이용하여 텍셀(TX64)의 좌표와 대응되는 순차적 형식으로 정렬된 텍셀(TX64)의 좌표(C64)를 리드한다.
프래그먼트 세이더(37)는 순차적 형식으로 정렬된 텍셀(TX64)의 좌표(C64)를 이용하여 텍셀(TX64)을 순차적 형식으로 재정렬한다.
순차적 형식으로 정렬된 텍셀의 x 좌표는 복수의 텍셀들 각각의 순서를 나타내는 값을 상기 순차적 형식으로 정렬된 복수의 텍셀들의 가로 길이로 나눈 나머지이다.
예컨대, 순차적 형식으로 정렬된 텍셀(TX64)의 x 좌표는 텍셀(TX64)의 순서를 나타내는 값(64)을 상기 순차적 형식으로 정렬된 상기 복수의 텍셀들의 가로 길이(1280)로 나눈 나머지, 즉 64이다.
순차적 형식으로 정렬된 텍셀(TX64)의 y 좌표는 복수의 텍셀들 각각의 순서를 나타내는 값을 상기 순차적 형식으로 정렬된 복수의 텍셀들의 가로 길이로 나눈 몫이다.
예컨대, 순차적 형식으로 정렬된 텍셀(TX64)의 y 좌표는 텍셀(TX64)의 순서를 나타내는 값(64)을 상기 순차적 형식으로 정렬된 복수의 텍셀들의 가로 길이 (1280)로 나눈 몫, 즉 0이다.
따라서 순차적 형식으로 정렬된 텍셀(TX64)의 좌표(C64)는 (64, 0)이다.
도 6은 도 2에 도시된 그래픽 프로세싱 유닛의 동작을 설명하기 위한 흐름도를 나타낸다.
도 1 내지 도 6을 참조하면, 텍셀 패치 유닛(39)은 타일 형식으로 정렬된 복수의 텍셀들을 텍스쳐 버퍼(55)로부터 패치한다.
프래그먼트 세이더(37)는 텍셀 패치 유닛(39)으로부터 상기 타일 형식으로 정렬된 상기 복수의 텍셀들을 수신한다(S10).
프래그먼트 세이더(37)는 상기 타일 형식으로 정렬된 상기 복수의 텍셀들을 순차적 형식으로 재정렬한다(S20).
텍셀 패치 유닛(39)은 타일 형식으로 정렬된 상기 복수의 텍셀들 각각의 좌표와 대응되는 상기 순차적 형식으로 정렬된 상기 복수의 텍셀들 각각의 좌표를 포함하는 룩-업 테이블을 패치한다.
프래그먼트 세이더(37)는 상기 룩-업 테이블을 리드하고, 상기 룩-업 테이블을 이용하여 상기 타일 형식으로 정렬된 상기 복수의 텍셀들을 순차적 형식으로 재정렬한다.
따라서 상기 타일 형식으로 정렬된 상기 복수의 텍셀들을 순차적 형식으로 재정렬함으로써, 이미지 데이터(ID)는 디스플레이(40)에서 제대로 디스플레이될 수 있다.
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
10; 디스플레이 시스템
20; 애플리케이션 프로세서
21; CPU(central processing unit)
22; 버스
23; ROM(read only memory)
25; RAM(random access memory)
27; 디스플레이 컨트롤러
29; 메모리 인터페이스
30; 그래픽 처리 유닛
31; 버텍스 세이더(vertex shader)
33; 지오메트리 세이더(geometry shader)
35; 래스터라이저(rasterizer)
37; 프래그먼트 세이더 (fragment shader)
39; 텍셀 패치 유닛(texel fetch unit)
40; 디스플레이
50; 메모리

Claims (10)

  1. 타일 형식으로 정렬된 복수의 텍셀들(texels)을 수신하는 단계; 및
    상기 타일 형식으로 정렬된 상기 복수의 텍셀들을 순차적 형식으로 재정렬하는 단계를 포함하며,
    상기 타일 형식은 각각이 (M×N) 텍셀들을 포함하는 복수의 타일들로 정렬되는 형식이며,
    상기 순차적 형식은 상기 복수의 텍셀들이 디스플레이의 스캔 라인 순서로 정렬되는 형식인 그래픽 프로세싱 유닛(graphic processing unit)의 동작 방법.
  2. 제1항에 있어서, 상기 재정렬하는 단계는,
    상기 타일 형식으로 정렬된 상기 복수의 텍셀들 각각의 좌표와 대응되는 상기 순차적 형식으로 정렬된 상기 복수의 텍셀들 각각의 좌표를 포함하는 룩업 테이블을 리드하는 단계; 및
    상기 룩업 테이블을 이용하여 상기 타일 형식으로 정렬된 상기 복수의 텍셀들을 상기 순차적 형식으로 재정렬하는 단계를 포함하는 그래픽 프로세싱 유닛의 동작 방법.
  3. 제2항에 있어서, 상기 순차적 형식으로 정렬된 상기 복수의 텍셀들 각각의 상기 좌표는 x 좌표와 y 좌표를 포함하는 2차원으로 표현되며,
    상기 x 좌표는 상기 복수의 텍셀들 각각의 순서를 나타내는 값을 상기 순차적 형식으로 정렬된 상기 복수의 텍셀들의 가로 길이로 나눈 나머지이며,
    상기 y 좌표는 상기 복수의 텍셀들 각각의 순서를 나타내는 값을 상기 순차적 형식으로 정렬된 상기 복수의 텍셀들의 가로 길이로 나눈 몫인 그래픽 프로세싱 유닛의 동작 방법.
  4. 타일 형식으로 정렬된 복수의 텍셀들을 패치하는 텍셀 패치 유닛(texel fetch unit); 및
    상기 타일 형식으로 정렬된 상기 복수의 텍셀들을 순차적 형식으로 재정렬하는 프래그먼트 세이더(fragment shader)를 포함하며,
    상기 타일 형식은 각각이 (M×N) 텍셀들을 포함하는 복수의 타일들로 정렬되는 형식이며,
    상기 순차적 형식은 상기 복수의 텍셀들이 디스플레이의 스캔 라인 순서로 정렬되는 형식인 그래픽 프로세싱 유닛(GPU).
  5. 제4항에 있어서, 상기 텍셀 패치 유닛은,
    상기 타일 형식으로 정렬된 상기 복수의 텍셀들 각각의 좌표와 대응되는 상기 순차적 형식으로 정렬된 상기 복수의 텍셀들 각각의 좌표를 포함하는 룩업 테이블을 패치하는 그래픽 프로세싱 유닛.
  6. 제5항에 있어서, 상기 프래그먼트 세이더는,
    상기 룩업 테이블을 이용하여 상기 타일 형식으로 정렬된 상기 복수의 텍셀들을 상기 순차적 형식으로 재정렬하는 그래픽 프로세싱 유닛.
  7. 제5항에 있어서, 상기 순차적 형식으로 정렬된 상기 복수의 텍셀들 각각의 상기 좌표는 x 좌표와 y 좌표를 포함하는 2차원으로 표현되며,
    상기 x 좌표는 상기 복수의 텍셀들 각각의 순서를 나타내는 값을 상기 순차적 형식으로 정렬된 상기 복수의 텍셀들의 가로 길이로 나눈 나머지이며,
    상기 y 좌표는 상기 복수의 텍셀들 각각의 순서를 나타내는 값을 상기 순차적 형식으로 정렬된 상기 복수의 텍셀들의 가로 길이로 나눈 몫인 그래픽 프로세싱 유닛.
  8. 제4항의 그래픽 프로세싱 유닛(GPU) 및
    메모리로부터 출력된 상기 타일 형식으로 정렬된 상기 복수의 텍셀들을 상기 그래픽 프로세싱 유닛으로 전송하는 메모리 인터페이스를 포함하는 애플리케이션 프로세서(application processor).
  9. 제8항에 있어서, 상기 텍셀 패치 유닛은,
    상기 타일 형식으로 정렬된 상기 복수의 텍셀들 각각의 좌표와 대응되는 상기 순차적 형식으로 정렬된 상기 복수의 텍셀들 각각의 좌표를 포함하는 룩업 테이블을 패치하며,
    상기 프래그먼트 세이더는,
    상기 룩업 테이블을 이용하여 상기 타일 형식으로 정렬된 상기 복수의 텍셀들을 상기 순차적 형식으로 재정렬하는 애플리케이션 프로세서.
  10. 제4항의 그래픽 프로세싱 유닛(GPU);
    상기 타일 형식으로 정렬된 상기 복수의 텍셀들을 저장하는 메모리; 및
    상기 메모리로부터 출력된 상기 타일 형식으로 정렬된 상기 복수의 텍셀들을 상기 그래픽 프로세싱 유닛으로 전송하는 메모리 인터페이스를 포함하며,
    상기 텍셀 패치 유닛은,
    상기 타일 형식으로 정렬된 상기 복수의 텍셀들 각각의 좌표와 대응되는 상기 순차적 형식으로 정렬된 상기 복수의 텍셀들 각각의 좌표를 포함하는 룩업 테이블을 패치하고,
    상기 프래그먼트 세이더는,
    상기 룩업 테이블을 이용하여 상기 타일 형식으로 정렬된 상기 복수의 텍셀들을 상기 순차적 형식으로 재정렬하는 데이터 처리 시스템.
KR1020110109654A 2011-10-26 2011-10-26 그래픽 프로세싱 유닛, 이를 포함하는 장치들, 및 이의 동작 방법 KR20130045450A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020110109654A KR20130045450A (ko) 2011-10-26 2011-10-26 그래픽 프로세싱 유닛, 이를 포함하는 장치들, 및 이의 동작 방법
US13/615,395 US20130106889A1 (en) 2011-10-26 2012-09-13 Graphics processing method and devices using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110109654A KR20130045450A (ko) 2011-10-26 2011-10-26 그래픽 프로세싱 유닛, 이를 포함하는 장치들, 및 이의 동작 방법

Publications (1)

Publication Number Publication Date
KR20130045450A true KR20130045450A (ko) 2013-05-06

Family

ID=48171950

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110109654A KR20130045450A (ko) 2011-10-26 2011-10-26 그래픽 프로세싱 유닛, 이를 포함하는 장치들, 및 이의 동작 방법

Country Status (2)

Country Link
US (1) US20130106889A1 (ko)
KR (1) KR20130045450A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USD786322S1 (en) 2015-10-01 2017-05-09 Samsung Electronics Co., Ltd. Door guard for refrigerator

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9659341B2 (en) * 2014-06-25 2017-05-23 Qualcomm Incorporated Texture pipe as an image processing engine
US10685473B2 (en) * 2017-05-31 2020-06-16 Vmware, Inc. Emulation of geometry shaders and stream output using compute shaders
GB2570304B (en) * 2018-01-18 2022-06-01 Imagination Tech Ltd Topology preservation in a graphics pipeline

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6525737B1 (en) * 1998-08-20 2003-02-25 Apple Computer, Inc. Graphics processor with pipeline state storage and retrieval
US7593018B1 (en) * 2005-12-14 2009-09-22 Nvidia Corp. Method and apparatus for providing explicit weights for texture filtering

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USD786322S1 (en) 2015-10-01 2017-05-09 Samsung Electronics Co., Ltd. Door guard for refrigerator

Also Published As

Publication number Publication date
US20130106889A1 (en) 2013-05-02

Similar Documents

Publication Publication Date Title
US10733691B2 (en) Fragment shaders perform vertex shader computations
JP6726946B2 (ja) レンダリング方法、レンダリング装置及び電子装置
EP3180773B1 (en) Bandwidth reduction using texture lookup by adaptive shading
KR102109130B1 (ko) 그래픽스 프로세싱 유닛, 이의 동작 방법, 및 이를 포함하는 장치들
US9576396B2 (en) Graphics processing unit, graphics processing system including the same, and method of operating the same
JP4810605B2 (ja) マルチプロセッサ環境のためのテクスチャユニット
US20150170406A1 (en) Graphic processing unit, system-on-chip including graphic processing unit, and graphic processing system including graphic processing unit
KR102651126B1 (ko) 그래픽 프로세싱 장치 및 그래픽스 파이프라인에서 텍스처를 처리하는 방법
US10019802B2 (en) Graphics processing unit
KR20140053370A (ko) 그래픽 프로세싱을 위한 메모리 복사 엔진
KR20160130629A (ko) 양안 시차 영상에 대한 렌더링 방법 및 장치
KR102313020B1 (ko) 그래픽스 프로세싱 유닛과 이를 포함하는 장치
US20160140737A1 (en) Bandwidth reduction using vertex shader
KR20130045450A (ko) 그래픽 프로세싱 유닛, 이를 포함하는 장치들, 및 이의 동작 방법
US10192348B2 (en) Method and apparatus for processing texture
US10089708B2 (en) Constant multiplication with texture unit of graphics processing unit
KR102053351B1 (ko) 테셀레이션 데이터 생성 방법과 상기 방법을 수행할 수 있는 장치들
EP4220431A1 (en) Data processing method and related apparatus
US10311627B2 (en) Graphics processing apparatus and method of processing graphics pipeline thereof
US10354431B2 (en) Level of detail offset determination

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid