KR20150009267A - 캐시를 포함하는 테셀레이션 장치, 그의 동작 방법, 및 상기 장치를 포함하는 시스템 - Google Patents

캐시를 포함하는 테셀레이션 장치, 그의 동작 방법, 및 상기 장치를 포함하는 시스템 Download PDF

Info

Publication number
KR20150009267A
KR20150009267A KR20130083521A KR20130083521A KR20150009267A KR 20150009267 A KR20150009267 A KR 20150009267A KR 20130083521 A KR20130083521 A KR 20130083521A KR 20130083521 A KR20130083521 A KR 20130083521A KR 20150009267 A KR20150009267 A KR 20150009267A
Authority
KR
South Korea
Prior art keywords
cache
current
tessellation
previous
tag
Prior art date
Application number
KR20130083521A
Other languages
English (en)
Other versions
KR102072656B1 (ko
Inventor
김석훈
유창효
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020130083521A priority Critical patent/KR102072656B1/ko
Priority to US14/321,217 priority patent/US9582935B2/en
Publication of KR20150009267A publication Critical patent/KR20150009267A/ko
Application granted granted Critical
Publication of KR102072656B1 publication Critical patent/KR102072656B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Image Generation (AREA)

Abstract

테셀레이션 방법은 현재 패치의 현재 태그와 동일한 이전 태그가 캐시에 저장되어 있는지를 판단하는 단계와, 캐시 히트일 때 상기 캐시에 저장된 상기 이전 태그에 상응하는 이전 테셀레이션 패턴을 도메인 쉐이더로 전송하는 단계를 포함한다. 상기 방법은 캐시 미스일 때, 테셀레이터를 이용하여 상기 현재 패치에 해당하는 현재 테셀레이션 패턴을 생성하고 생성된 현재 테셀레이션 패턴을 상기 도메인 쉐이더로 전송하는 단계와, 상기 생성된 현재 테셀레이션 패턴을 상기 캐시에 저장하는 단계를 더 포함한다.

Description

캐시를 포함하는 테셀레이션 장치, 그의 동작 방법, 및 상기 장치를 포함하는 시스템{TESSELLATION DEVICE INCLUDING CACHE, METHOD THEREOF, AND SYSTEM INCLUDING THE TESSELLATION DEVICE}
본 발명의 개념에 따른 실시 예는 캐시를 이용한 테셀레이션에 관한 것으로, 특히 테셀레이션 워크로드(tessellation workload)를 줄일 수 있도록 캐시를 포함하는 테셀레이션 장치, 그의 동작 방법, 및 상기 장치를 포함하는 시스템에 관한 것이다.
테셀레이션(tessellation)은 하나 또는 그 이상의 기하학적 모양들 (geometric shapes), 소위 타일들(tiles)을 이용하여 겹침(overlaps)과 틈(gaps) 없이 평면(plain)을 타일링(tiling)하는 것을 의미한다.
컴퓨터 그래픽스에서, 테셀레이션은 표면들의 모습(appearance of surfaces)을 사실적인 3-차원 물체들(realistic three-dimensional objects)로 옮기기 (render) 위해 필요한 정보를 체계화(organize)하기 위해 사용된다.
테셀레이션 팩터들(tessellation factors)은 각 패치(patch)를 얼마나 세분화할지를 결정한다.
테셀레이션 또는 테셀레이션 단계(tessellation stage)는 헐 쉐이더, 테셀레이터, 및 도메인 쉐이더를 포함한다. 상기 테셀레이션은 그래픽스 프로세서에서 로우-디테일 서브디비젼 표면들(low-detail subdivision surfaces)을 더 높은-디테일 프리미티브들(higher-detail primitives)로 변환한다.
본 발명이 이루고자 하는 기술적인 과제는 캐시를 이용하여 테셀레이터의 작동을 선택적으로 스킵(skip)할 수 있는 테셀레이션 장치, 그의 동작 방법, 및 상기 장치를 포함하는 시스템을 제공하는 것이다.
본 발명의 실시 예에 따른 테셀레이션 방법은 현재 패치의 현재 태그와 동일한 이전 태그가 캐시에 저장되어 있는지를 판단하는 단계와, 캐시 히트일 때, 상기 캐시에 저장된 상기 이전 태그에 상응하는 이전 테셀레이션 패턴을 도메인 쉐이더로 전송하는 단계를 포함한다.
상기 판단하는 단계는 상기 현재 패치의 패치 방정식과 테셀레이션 팩터에 기초하여 생성된 상기 현재 태그와 이전 패치의 패치 방정식과 테셀레이션 팩터에 기초하여 생성된 상기 이전 태그의 비교 결과에 따라 수행된다.
실시 예에 따라, 상기 전송하는 단계는 상기 이전 테셀레이션 패턴을 압축해제하고 압축해제된 이전 테셀레이션 패턴을 상기 도메인 쉐이더로 전송한다.
상기 테셀레이션 방법은 캐시 미스일 때, 테셀레이터를 이용하여 상기 현재 패치에 해당하는 현재 테셀레이션 패턴을 생성하고 생성된 현재 테셀레이션 패턴을 상기 도메인 쉐이더로 전송하는 단계와, 상기 생성된 현재 테셀레이션 패턴을 상기 캐시에 저장하는 단계를 더 포함한다.
상기 이전 테셀레이센 패턴과 상기 현재 테셀레이센 패턴 각각은 테셀레이트된 점들의 UV 좌표들과 상기 테셀레이트된 점들의 토폴로지 정보를 포함한다.
실시 예에 따라 상기 테셀레이션 방법은 캐시 미스일 때, 상기 이전 테셀레이션 패턴을 메모리로부터 상기 캐시로 로드(load)하는 단계와, 상기 캐시로 로드된 상기 이전 테셀레이션 패턴을 상기 도메인 쉐이더로 전송하는 단계를 더 포함한다.
실시 예에 따라 상기 테셀레이션 방법은 캐시 미스일 때, 테셀레이터를 이용하여 상기 현재 패치에 해당하는 현재 테셀레이션 패턴을 생성하고 생성된 현재 테셀레이션 패턴을 상기 도메인 쉐이더로 전송하는 단계와, 상기 생성된 현재 테셀레이션 패턴을 압축기를 이용하여 압축하고, 압축된 현재 테셀레이션 패턴을 상기 캐시에 저장하는 단계를 더 포함한다.
실시 예에 따라 상기 이전 테셀레이션 패턴은 테셀레이터에 의해 생성된 후 상기 캐시에 저장된다.
다른 실시 예에 따라 상기 이전 테셀레이션 패턴은 사용자에 의해 생성된 후 상기 캐시에 저장된다.
상기 테셀레이션 방법은 콜드 미스(cold miss)가 발생한 후, 상기 이전 테셀레이션 패턴을 포함하는 복수의 테셀레이션 패턴들을 메모리로부터 상기 캐시로 로드하는 단계를 더 포함한다.
실시 예에 따라 상기 테셀레이션 방법은 캐시 미스일 때, 상기 이전 테셀레이션 패턴을 메모리로부터 상기 캐시로 로드(load)하는 로드 시간과 상기 현재 패치에 해당하는 현재 테셀레이션 패턴을 생성하는 계산 시간을 비교하는 단계와, 상기 계산 시간이 상기 로드 시간보다 짧을 때, 테셀레이터를 이용하여 상기 현재 테셀레이션 패턴을 생성하고 생성된 현재 테셀레이션 패턴을 상기 도메인 쉐이더로 전송하는 단계와, 상기 생성된 현재 테셀레이션 패턴을 상기 캐시에 저장하는 단계를 더 포함한다.
실시 예에 따라 상기 테셀레이션 방법은 캐시 미스일 때, 상기 이전 테셀레이션 패턴을 메모리로부터 상기 캐시로 로드하는 로드 시간과 상기 현재 패치에 해당하는 현재 테셀레이션 패턴을 생성하는 계산 시간을 비교하는 단계와, 상기 계산 시간이 상기 로드 시간보다 짧을 때, 테셀레이터를 이용하여 상기 현재 테셀레이션 패턴을 생성하고 생성된 현재 테셀레이션 패턴을 상기 도메인 쉐이더로 전송하는 단계와, 상기 생성된 현재 테셀레이션 패턴을 압축하고 압축된 현재 테셀레이션 패턴을 상기 캐시에 저장하는 단계를 더 포함한다.
본 발명의 실시 예에 따른 컴퓨터로 읽을 수 있는 기록 장치는 상기 테셀레이션 방법을 수행하기 위해 그래픽스 프로세서를 지시(instruct)하는 그래픽스 애플리케이션 프로그래밍 인터페이스(API)를 저장할 수 있다.
본 발명의 실시 예에 따른 테셀레이션 장치는 현재 패치에 대한 현재 태그 생성 데이터를 생성하는 헐 쉐이더와, 도메인 쉐이더와, 수신된 상기 현재 태그 생성 데이터에 기초하여 현재 태그를 생성하고, 상기 현재 태그와 동일한 이전 태그가 캐시에 저장되어 있는지를 판단하고, 캐시 히트일 때 상기 캐시로부터 상기 이전 태그에 상응하는 이전 테셀레이션 패턴을 리드하고 리드된 이전 테셀레이션 패턴을 상기 도메인 쉐이더로 전송하는 캐시 처리 회로를 포함한다.
상기 테셀레이션 장치는 캐시 미스일 때, 상기 현재 패치에 상응하는 현재 테셀레이션 패턴을 생성하는 테셀레이터를 더 포함하고, 상기 캐시 처리 회로는 상기 현재 테셀레이션 패턴을 상기 도메인 쉐이더로 전송하고 상기 현재 테셀레이션 패턴을 상기 캐시에 저장한다.
상기 테셀레이션 장치는 그래픽스 프로세서의 파이프라인의 일부로 구현될 수 있다.
본 발명의 실시 예에 따른 전자 시스템은 그래픽스 프로세싱 유닛(graphics processing unit(GPU))와, 상기 CPU의 동작을 제어하는 CPU(central processing unit)를 포함하며, 상기 GPU는 현재 패치에 대한 현재 태그 생성 데이터를 생성하는 헐 쉐이더와, 도메인 쉐이더와, 수신된 상기 현재 태그 생성 데이터에 기초하여 현재 태그를 생성하고, 상기 현재 태그와 동일한 이전 태그가 캐시에 존재하는지를 판단하고, 캐시 히트일 때 상기 캐시로부터 상기 이전 태그에 상응하는 이전 테셀레이션 패턴을 리드하고 리드된 이전 테셀레이션 패턴을 상기 도메인 쉐이더로 전송하는 캐시 처리 회로와, 캐시 미스일 때, 상기 현재 패치에 상응하는 현재 테셀레이션 패턴을 생성하고 생성된 현재 테셀레이션 패턴을 상기 도메인 쉐이더로 전송하는 테셀레이터를 포함한다.
상기 캐시 처리 회로는 상기 현재 태그와 상기 이전 태그를 비교하고 비교 결과에 따라 상기 캐시 히트 또는 상기 캐시 미스를 지시하는 지시 신호를 생성하는 태그 비교기와, 상기 현재 태그에 관련된 어드레스에 기초하여, 상기 이전 테셀레이션 패턴을 상기 캐시로부터 리드하는 캐시 액세스 제어 회로와, 상기 지시 신호에 응답하여, 상기 이전 테셀레이션 패턴 또는 상기 현재 패치에 관련된 현재 테셀레이션 패턴을 상기 도메인 쉐이더로 출력하는 선택기를 포함한다.
상기 캐시 처리 회로는 상기 캐시 액세스 제어 회로로부터 출력된 상기 이전 테셀레이션 패턴을 압축해제하고 압축 해제된 이전 테셀레이션 패턴을 상기 선택기로 전송하는 압축해제기와, 상기 테셀레이터로부터 출력된 상기 현재 테셀레이션 패턴을 압축하고 압축된 테셀레이션 패턴을 상기 캐시에 저장하기 위해 상기 캐시 액세스 제어 회로로 전송하는 압축기를 더 포함한다.
본 발명의 실시 예에 따른 캐시를 포함하는 테셀레이션 장치는 테셀레이터의 작동을 선택적으로 스킵(skip)함으로서 테셀레이션 워크로드를 줄일 수 있는 효과가 있다.
따라서, 상기 테셀레이션 장치의 전력 소비는 감소하는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 실시 예에 따른 전자 시스템의 블록도를 나타낸다.
도 2는 도 1에 도시된 그래픽스 프로세서 유닛에 포함된 테셀레이션 장치의 개략적인 블록도이다.
도 3은 도 2에 도시된 테셀레이션 장치의 일 실시 예를 나타내는 블록도이다.
도 4a는 캐시 미스일 때, 도 3의 테셀레이션 장치의 동작을 설명하기 위한 개념도이다.
도 4b는 캐시 히트일 때, 도 3의 테셀레이션 장치의 동작을 설명하기 위한 개념도이다.
도 5는 도 2에 도시된 테셀레이션 장치의 다른 실시 예를 나타내는 블록도이다.
도 6은 현재 태그와 동일한 이전 태그가 캐시와 메모리에 저장되어 있지 않을 때 본 발명의 일 실시 예에 따른 테셀레이션 방법을 설명하기 위한 플로우차트이다.
도 7은 본 발명의 다른 실시 예에 따른 테셀레이션 방법을 설명하기 위한 플로우차트이다.
도 8은 현재 태그와 동일한 이전 태그가 캐시와 메모리에 저장되어 있지 않을 때 본 발명의 다른 실시 예에 따른 테셀레이션 방법을 설명하기 위한 플로우차트이다.
도 9는 현재 태그와 동일한 이전 태그가 메모리에만 저장되어 있을 때 본 발명의 일 실시 예에 따른 테셀레이션 방법을 설명하기 위한 플로우차트이다.
도 10은 현재 태그와 동일한 이전 태그가 메모리에만 저장되어 있을 때 본 발명의 다른 실시 예에 따른 테셀레이션 방법을 설명하기 위한 플로우차트이다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에서 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 벗어나지 않은 채, 제1구성 요소는 제2구성 요소로 명명될 수 있고 유사하게 제2구성 요소는 제1구성 요소로도 명명될 수 있다.
어떤 구성 요소가 다른 구성 요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성 요소가 다른 구성 요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는 중간에 다른 구성 요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성 요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 본 명세서에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 나타낸다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 명세서에 첨부된 도면들을 참조하여 본 발명의 실시 예들을 상세히 설명한다.
그래픽스 파이프라인에서 본 명세서에서 설명될 테셀레이션 또는 테셀레이션 단계(tessellation stage)는 하드웨어 또는 소프트웨어로 구현될 수 있다.
현재 패치(current patch)는 현재 처리 대상이 되는 패치를 의미하고, 이전 패치(previous patch)는 상기 현재 패치보다 먼저 처리된 패치를 의미한다.
현재 태그(current tag)는 상기 현재 패치의 태그 생성 데이터에 관련된 태그를 의미하고, 이전 태그는 상기 이전 패치의 태그 생성 데이터에 관련된 태그를 의미하고, 상기 태그 생성 데이터는 테셀레이션 팩터들과 패치 방정식을 포함한다.
도 1은 본 발명의 실시 예에 따른 전자 시스템의 블록도를 나타낸다.
도 1을 참조하면, 전자 시스템(100)은 PC(personal computer), 2차원 TV, 3차원 TV, 또는 휴대용 전자 장치로 구현될 수 있다.
상기 휴대용 전자 장치는 랩탑 컴퓨터(laptop computer), 스마트폰(smart phone), 태블릿(tablet) PC, PDA(personal digital assistant), PMP(portable multimedia player), 휴대용 게임 콘솔(handheld game console), 또는 모바일 인터넷 장치(mobile internet device(MID))로 구현될 수 있다.
전자 시스템(100)은 처리 장치(200), 외부 메모리(300), 및 디스플레이 (400)를 포함한다.
처리 장치(200)는 인쇄 회로 기판(printed circuit board(PCB)), 시스템 온 칩(system on chip(SoC)) 또는 애플리케이션 프로세서로 구현될 수 있다.
처리 장치(200)는 CPU(central processing unit; 210), GPU(graphics processing unit; 220), 그래픽스 메모리(graphics memory; 230), 불휘발성 메모리 (240), 휘발성 메모리(250), 메모리 인터페이스(260), 및 디스플레이 인터페이스 (270)를 포함한다.
CPU(210)는 버스(201)를 통해 GPU(220), 그래픽스 메모리(230), 불휘발성 메모리(240), 휘발성 메모리(250), 메모리 인터페이스(260), 및/또는 디스플레이 인터페이스(270)를 제어할 수 있다.
CPU(210)는 애플리케이션, 예컨대 3D 애플리케이션 또는 3D 게임 애플리케이션을 실행시킬 수 있다.
상기 3D 애플리케이션 또는 상기 3D 게임 애플리케이션이 실행됨에 따라, 상기 3D 애플리케이션 또는 상기 3D 게임 애플리케이션은 3D 애플리케이션 프로그래밍 인터페이스 명령들(application programming interface(API) commands)을 출력한다.
상기 3D API 명령들에 따라 3D 컴퓨터 그래픽스를 표현하기(render) 위해, 애플리케이션들에서 사용되는 3D API, 예컨대 OpenGLTM 또는 Direct3DTM가 실행될 수 있다.
GPU(220)는 CPU(210)의 제어에 따라 컴퓨터 그래픽(computer graphics)에 관련된 데이터 스트림(data stream)을 매우 효과적으로 처리할 수 있다.
GPU(220)는 그래픽스 파이프라인을 포함하는 그래픽스 프로세서(graphics processor)의 일 예이다.
GPU(220)는 도 3 또는 도 5에 도시된 바와 같이 캐시(cache; 533)를 포함하고, 현재 패치(current patch)의 현재 태그와 동일한 이전 태그가 캐시(533)에 저장되어 있는지의 여부에 따라 테셀레이터를 선택적으로 작동시킬 수 있다.
그래픽스 메모리(230)는 GPU(220)에서 사용될 데이터를 저장할 수 있다.
불휘발성 메모리(240)와 휘발성 메모리(250)는 시스템 메모리로서 사용될 수 있다.
불휘발성 메모리(240)는 ROM(read only memory)로 구현될 수 있고, BIOS (basic input/output system)을 저장할 수 있다.
휘발성 메모리(250)는 RAM(random access memory)로 구현될 수 있고, CPU (210) 또는 GPU(220)에서 필요한 데이터 및/또는 프로그램(또는 프로그램 모듈 (program module))을 일시적으로 저장할 수 있다.
예컨대, 휘발성 메모리(250)는 운영 체계(operating system(OS)), 애플리케이션 프로그램들, 다른 프로그램 모듈들, 및 프로그램 데이터를 저장할 수 있다.
CPU(210) 또는 GPU(220)는 메모리 인터페이스(260)를 통해 외부 메모리(300)와 통신할 수 있다.
외부 메모리(300)는 휘발성 메모리 또는 불휘발성 메모리로 구현될 수 있다.
상기 휘발성 메모리는 DRAM(dynamic random access memory), SRAM(static random access memory), T-RAM(thyristor RAM), Z-RAM(zero capacitor RAM), 또는 TTRAM(Twin Transistor RAM)으로 구현될 수 있다.
상기 불휘발성 메모리는 EEPROM(Electrically Erasable Programmable Read-Only Memory), 플래시(flash) 메모리, MRAM(Magnetic RAM), 스핀전달토크 MRAM (Spin-Transfer Torque MRAM), Conductive bridging RAM(CBRAM), FeRAM(Ferroelectric RAM), PRAM(Phase change RAM), 저항 메모리(Resistive RAM: RRAM 또는 ReRAM), 나노튜브 RRAM (Nanotube RRAM), 폴리머 RAM(Polymer RAM: PoRAM), 나노 부유 게이트 메모리(Nano Floating Gate Memory: NFGM), 홀로그래픽 메모리 (holographic memory), 분자 전자 메모리 소자(Molecular Electronics Memory Device), 또는 절연 저항 변화 메모리(Insulator Resistance Change Memory)로 구현될 수 있다.
외부 메모리(300)는 운영 체계(operating system(OS)), 애플리케이션 프로그램들, 다른 프로그램 모듈들, 및/또는 프로그램 데이터를 저장할 수 있다.
CPU(210)의 제어에 따라, 외부 메모리(300)에 저장된 상기 OS, 상기 애플리케이션 프로그램들, 상기 다른 프로그램 모듈들, 및/또는 상기 프로그램 데이터는 휘발성 메모리(250)로 로드될 수 있다.
외부 메모리(300)에 저장된 3D 애플리케이션, 3D 게임 애플리케이션, 또는 본 명세서에서 기술되는 테셀레이션 방법을 수행할 수 있는 API는 외부 메모리 (300)로부터 휘발성 메모리(250)로 로드(load)될 수 있다.
실시 예에 따라, 외부 메모리(300)는 하드디스크드라이브(hard disk drive(HDD)) 또는 솔리드 스테이트 드라이브(solid state drive(SSD))로 구현될 수 있다.
다른 실시 예에 따라, 외부 메모리(300)는 제거할 수 있는 저장 매체 (removable storage media) 또는 제거할 수 없는(non-removable) 저장 매체로 구현될 수 있다. 예컨대, 외부 메모리(300)는 UFS(universal flash storage), eMMC (embedded multimedia card), 또는 USB 플래시 드라이브(flash drive)로 구현될 수 있다.
디스플레이 인터페이스(270)는 CPU(210) 또는 GPU(220)에 의해 처리된 컴퓨터 그래픽스, 예컨대 2D 데이터 또는 3D 데이터를 디스플레이(400)로 전송할 수 있다.
디스플레이(400)는 상기 컴퓨터 그래픽스를 디스플레이할 수 있는 평판 디스플레이로 구현될 수 있다.
도 2는 도 1에 도시된 그래픽스 프로세서 유닛에 포함된 테셀레이션 장치의 개략적인 블록도이다.
도 1과 도 2를 참조하면, 테셀레이션 장치(220A)는 테셀레이션 (tessellation), 테셀레이션 단계(tessellation stage), 또는 테셀레이션 파이프라인(tessellation pipeline)으로 불릴 수 있다.
도 2부터 도 5에서는 본 발명의 실시 예에 따른 기술적 사상에 대한 설명의 편의를 위해, GPU(220)에 포함된 그래픽스 파이프라인 중에서 테셀레이션에 관련된 테셀레이션 장치(220A, 220B, 또는 220C)만이 도시되다. 따라서, 테셀레이션 장치 (220A, 220B, 또는 220C)는 다양한 그래픽스 파이프라인에 응용 또는 사용될 수 있다.
테셀레이션 장치(220A)는 헐 쉐이더(Hull shader; 510), 캐시 처리 회로 (530A), 테셀레이터(550), 및 도메인 쉐이더(570)를 포함한다.
Direct3DTM 11 그래픽스 파이프라인은 Direct3DTM 10 그래픽스 파이프라인에 헐 쉐이더, 테셀레이터, 및 도메인 쉐이더와 같은 3개의 그래픽스 파이프라인들을 추가했다.
따라서, 캐시 처리 회로(530A)를 제외한 헐 쉐이더(510), 테셀레이터(550), 및 도메인 쉐이더(570) 각각의 작동은 Direct3DTM 11 그래픽스 파이프라인에 포함된 헐 쉐이더, 테셀레이터, 및 도메인 쉐이더 각각의 작동과 실질적으로 동일하다.
헐 쉐이더(510)는 입력 점들(ICP)을 수신하고, 수신된 입력 점들(ICP)을 이용하여 면(face)별로, 모서리(edge)별로, 또는 점(point)별로 테셀레이션 팩터 (TF)를 계산하고, 계산된 테셀레이션 팩터(TF)를 상기 면별로, 상기 모서리별로, 또는 상기 점별로 할당할 수 있다.
테셀레이션 팩터(TF)는 LOD(level of detail)를 의미할 수 있다. 테셀레이션 팩터(TF)는 정수(integer) 또는 소수(decimal fraction)일 수 있다.
헐 쉐이더(510)는 입력 점들(ICP)의 세트(set)를 출력 점들(OCP)의 세트로 변환(transform)할 수 있다. 실시 예에 따라, 입력 점들(ICP)의 개수와 출력 점들 (OCP)의 개수는 서로 동일하게 설계될 수도 있고 서로 다르게 설계될 수도 있다.
헐 쉐이더(510)는 패치 방정식(PE)을 더 출력할 수 있다.
패치 방정식(PE)은 곡선 방정식 또는 표면 방정식일 수 있다. 예컨대, 상기 곡선 방정식은 에르미트 곡선(Hermite curve) 방정식, 베지어 곡선(Bezier curve) 방정식, 넙스 곡선(NURBS curve) 방정식, 또는 B-스플라인 곡선(B-spline curve) 방정식일 수 있다.
헐 쉐이더(510)는 프로그램된 기준들(programmed criteria)에 따라 입력 점들(ICP) 또는 출력 점들(OCP)에 관련된 태그 생성 데이터를 생성한다. 예컨대, 상기 태그 생성 데이터는 입력 점들(ICP) 또는 출력 점들(OCP)에 관련된 패치 방정식 (PE)과 테셀레이션 팩터들(TF)을 포함한다.
테셀레이션 팩터들(TF)은 서로 독립적인 내부(inner) 테셀레이션 팩터들과 외부(outer) 테셀레이션 팩터들을 포함할 수 있다.
패치(patch)를 구성하는 입력 점들(ICP)은 입력 꼭지점들(input vertices) 또는 입력 제어 점들(input control points)을 의미할 수 있다.
상기 패치는 쿼드 패치(quad patch), 트라이 패치(tri patch), 또는 아이소라인(isoline)을 의미할 수 있다.
일련의 입력 패치들 각각은 서로 가깝게 위치하기 때문에 상기 입력 패치들 각각은 동일한 패치 방정식과 동일한 테셀레이션 팩터들을 사용할 수 있다. 즉, 상기 일련의 입력 패치들은 동일한 테셀레이션 패턴들을 가질 수 있다. 상기 패치 방정식은 곡선 방정식(curve equation) 또는 표면 방정식(surface equation)을 의미할 수 있다.
캐시 처리 회로(530A)는 현재 처리될 현재 패치의 현재 태그와 동일한 이전 태그가 캐시에 저장되어 있는지의 여부를 판단하고, 판단의 결과 캐시 히트(HIT)일 때 상기 캐시에 저장된 상기 이전 패치에 해당하는 이전 테셀레이션 패턴(PTP)을 도메인 쉐이더(570)로 출력할 수 있다.
이때, 이전 테셀레이션 패턴(PTP)은 이전 패치에 대한 테셀레이트된 점들 (tessellated points)의 UV 좌표들(또는 UVW 좌표들)과 상기 테셀레이트된 점들의 토폴로지(topology) 정보를 포함한다. 상기 테셀레이트된 점들은 도메인 점들 (domain points)로 불릴 수도 있다.
실시 예에 따라, 이전 테셀레이션 패턴(PTP)은 이전 패치에 대한 출력 점들을 더 포함할 수 있다.
상기 토폴로지 정보는 상기 테셀레이트된 점들 각각의 연결 정보 (connectivity information)를 포함한다.
그러나, 판단의 결과 캐시 미스(MISS)일 때, 테셀레이터(550)는 현재 패치에 대한 출력 점들(OCP)과 상기 현재 패치에 대한 테셀레이션 팩터들(TF)을 이용하여 테셀레이션 작동을 수행하고, 수행의 결과에 따라 상기 현재 패치에 해당하는 현재 테셀레이션 패턴(CTP)을 생성한다.
현재 테셀레이션 패턴(CTP)은 상기 현재 패치에 대한 테셀레이트된 점들의 UV 좌표들(또는 UVW 좌표들)과 상기 테셀레이트된 점들의 토폴로지 정보를 포함한다.
테셀레이터(550)는 캐시 처리 회로(530A)를 통해 현재 테셀레이션 패턴(CTP)을 도메인 쉐이더(570)로 출력한다.
현재 테셀레이션 패턴(CTP)은 캐시 처리 회로(530A)의 캐시에 저장될 수 있다.
실시 예에 따라, 현재 테셀레이션 패턴(CTP)은 현재 패치에 대한 출력 점들 (OCP)을 더 포함할 수 있다.
본 발명의 실시 예에 따른 테셀레이션 장치(220A)는 현재 패치에 대한 현재 태그의 반복성에 기초하여 테셀레이터(550)의 작동을 스킵(skip)할 수 있다. 따라서, 테셀레이터(550)의 테셀레이션 워크로드(tessellation workload)는 줄어드는 효과가 있다.
도메인 쉐이더(570)는, 헐 쉐이더(510)의 출력들(OCP와 PCD)과 캐시 처리 회로(530A)의 출력(PTP 또는 CTP)을 이용하여, 꼭지점들의 속성들(attributes of vertices; VA) 또는 꼭지점들의 위치들을 계산하고 출력할 수 있다.
예컨대, 도메인 쉐이더(570)는 출력 점들(OCP), 패치 상수 데이터(patch constant data(PCD)), 및 캐시 처리 회로(530A)의 출력(PTP 또는 CTP)을 이용하여 표면 기하학적 구조(surface geometry), 또는 테셀레이트된 꼭지점들을 계산할 수 있다.
패치 상수 데이터(PCD)는 테셀레이션 팩터들(TF), 패치 방정식(PE)에 관련된 계수들(coefficients), 및/또는 사용자-정의 값들(user-defined values)을 포함할 수 있다.
도 3은 도 2에 도시된 테셀레이션 장치의 일 실시 예를 나타내는 블록도이고, 도 4a는 캐시 미스일 때, 도 3의 테셀레이션 장치의 동작을 설명하기 위한 개념도이고, 도 4b는 캐시 히트일 때, 도 3의 테셀레이션 장치의 동작을 설명하기 위한 개념도이다.
우선, 도 2부터 도 4b를 참조하면, 도 2에 도시된 테셀레이션 장치(220A)의 일 실시 예에 따른 테셀레이션 장치(220B)는 헐 쉐이더(510), 캐시 처리 회로 (530B), 테셀레이터(550), 및 도메인 쉐이더(570)를 포함한다.
캐시 처리 회로(530B)는 태그 비교기(531), 캐시(533), 캐시 액세스 제어 회로(535), 선택기(537), 및 캐시 인터페이스(539)를 포함한다.
도 3과 도 4a를 참조하면, 헐 쉐이더(510)는 제1패치(예컨대, 현재 패치)에 대한 테셀레이션 팩터들(TF=TF1)과 패치 방정식(PE=PE1)을 태그 비교기(531)로 출력한다.
상기 제1패치에 대한 태그 생성 데이터(TGD)는 테셀레이션 팩터들(TF=TF1)과 패치 방정식(PE=PE1)을 포함한다.
태그 비교기(531)는 태그 생성 데이터(TGD)를 이용하여 어드레스(ADD1)를 생성한다. 예컨대, 어드레스(ADD1)는 인덱스(INDEX), 제1태그(TAG1), 및 제1오프셋 (OFFSET1)을 포함할 수 있다. 즉, 제1태그(TAG1)는 태그 생성 데이터(TGD)에 기초하여 정의 또는 생성될 수 있다.
태그 비교기(531)는 제1태그(TAG1)에 상응하는 태그가 캐시(533)의 태그 캐시(533-1)에 저장되어 있는지를 판단한다.
판단의 결과, 제1태그(TAG1)에 상응하는 상기 태그가 캐시(533)의 태그 캐시 (533-1)에 저장되어 있지 않을 때, 태그 비교기(531)는 캐시 미스(MISS)를 지시하는 지시 신호를 캐시 액세스 제어 회로(535)와 테셀레이터(550)로 전송하고, 어드레스(ADD1)를 캐시 액세스 제어 회로(535)로 전송한다.
테셀레이터(550)는 상기 제1패치에 대한 출력 점들(OCP)과 상기 제1패치에 대한 테셀레이션 팩터들(TF)을 이용하여 테셀레이션 작동을 수행하고, 수행의 결과에 따라 상기 제1패치에 해당하는 현재 테셀레이션 패턴(CTP1)을 생성하고, 현재 테셀레이션 패턴(CTP1)을 캐시 액세스 제어 회로(535)로 전송한다.
캐시 액세스 제어 회로(535)는 어드레스(ADD1)에 기초하여 현재 테셀레이션 패턴(CTP1)을 캐시(533)로 전송한다. 따라서, 제1태그(TAG1)는 태그 캐시(533-1)에 저장되고, 현재 테셀레이션 패턴(CTP1)은 데이터 캐시(533-3)에 저장된다.
도 3과 도 4b를 참조하면, 헐 쉐이더(510)는 제2패치(예컨대, 현재 패치)에 대한 테셀레이션 팩터들(TF=TF1)과 패치 방정식(PE=PE1)을 태그 비교기(531)로 출력한다.
상기 제2패치에 대한 태그 생성 데이터(TGD)는 테셀레이션 팩터들(TF=TF1)과 패치 방정식(PE=PE1)을 포함한다.
상기 제1패치와 상기 제2패치가 서로 인접할 때, 상기 제1패치와 상기 제2패치 각각에 대한 태그 생성 데이터(TGD)는 서로 동일할 수 있다.
태그 비교기(531)는 태그 생성 데이터(TGD)를 이용하여 어드레스(ADD1)를 생성한다. 예컨대, 어드레스(ADD1)는 인덱스(INDEX), 제1태그(TAG1), 및 제1오프셋(OFFSET1)을 포함할 수 있다. 즉, 제1태그(TAG1)는 태그 생성 데이터(TGD)에 기초하여 정의 또는 생성될 수 있다.
태그 비교기(531)는 제1태그(TAG1)에 상응하는 태그가 캐시(533)의 태그 캐시(533-1)에 저장되어 있는지를 판단한다.
판단의 결과, 제1태그(TAG1)에 상응하는 태그(TAG1)가 캐시(533)의 태그 캐시(533-1)에 저장되어 있을 때, 태그 비교기(531)는 캐시 히트(HIT)를 지시하는 지시 신호를 캐시 액세스 제어 회로(535)와 테셀레이터(550)로 전송하고, 어드레스 (ADD1)를 캐시 액세스 제어 회로(535)로 전송한다.
캐시 액세스 제어 회로(535)는, 어드레스(ADD1)에 포함된 제1태그(TAG1)와 상기 지시 신호에 기초하여, 상기 제1패치(예컨대, 이전 패치)에 해당하는 이전 테셀레이션 패턴(CTP1)을 데이터 캐시(533-3)로부터 리드하고, 리드된 이전 테셀레이션 패턴(CTP1)을 선택기(537)로 출력한다.
이때, 테셀레이터(550)는 캐시 히트(HIT)를 지시하는 상기 지시 신호에 기초하여 상기 제2패치에 대한 테셀레이션 작동을 수행하지 않는다.
도 6은 현재 태그와 동일한 이전 태그가 캐시(533)와 메모리(230 또는 300)에 저장되어 있지 않을 때 본 발명의 일 실시 예에 따른 테셀레이션 방법을 설명하기 위한 플로우차트이다.
도 1부터 도 4b, 및 도 6을 참조하면, 헐 쉐이더(510)는 입력 점들(ICP)을 포함하는 현재 패치의 현재 태그 생성 데이터(TGD)를 생성한다(S110). 상술한 바와 같이, 현재 태그 생성 데이터(TGD)는 패치 방정식(PE)과 테셀레이션 팩터들(TF)을 포함한다.
태그 비교기(531)는 태그들을 비교하고, 비교 결과에 따라 상기 현재 패치의 현재 태그와 동일한 이전 태그가 캐시(533)와 메모리(230 또는 300)에 저장되어 있는지를 판단한다(S120).
태그 비교기(531)는 현재 패치에 관련된 패치 방정식(PE)과 테셀레이션 팩터들(TF)을 수신하고, 패치 방정식(PE)과 테셀레이션 팩터들(TF)을 이용하여 현재 태그를 생성하고, 상기 현재 태그와 이전 태그들 각각을 비교하고, 비교 결과에 따라 캐시 히트(HIT) 또는 캐시 미스(MISS)를 지시하는 지시 신호를 생성한다.
이때, 상기 이전 태그들 각각은 이전 패치들 각각에 관련된 태그 생성 데이터, 즉 패치 방정식과 테셀레이션 팩터들에 기초하여 생성된다.
캐시(533)의 태그 캐시(533-1)는 상기 이전 태그들 각각을 저장한다. 또한, 캐시(533)의 데이터 캐시(533-3)는 상기 이전 태그들 각각에 해당하는 이전 테셀레이션 패턴을 저장한다.
캐시(533)는 캐시 인터페이스(539)를 통해 메모리(230 또는 300)로부터 전송된 이전 태그들 각각에 해당하는 이전 테셀레이션 패턴을 저장할 수 있다.
태그 비교기(531)는 어드레스(ADD)를 캐시 액세스 제어 회로(535)로 출력한다. 어드레스(ADD)는 캐시(533)에 저장된 이전 테셀레이션 패턴을 액세스하기 위해 필요한 어드레스이다. 예컨대, 어드레스(ADD)는 현재 패치의 현재 태그를 포함하는 어드레스일 수 있다.
태그 비교기(531)는 캐시 히트(HIT) 또는 캐시 미스(MISS)를 지시하는 지시 신호를 캐시 액세스 제어 회로(535), 선택기(537), 및 테셀레이터(550)로 출력한다.
단계 S120의 비교 결과가 캐시 히트(HIT)일 때, 캐시 처리 회로(530B)의 동작은 다음과 같다.
캐시 액세스 제어 회로(535)는 캐시 히트(HIT)를 지시하는 지시 신호에 응답하여 인에이블되고, 인에이블된 캐시 액세스 제어 회로(535)는 현재 태그를 포함하는 어드레스(ADD)를 이용하여 캐시(533)의 데이터 캐시(533-3)로부터 상기 현재 태그에 해당하는 이전 테셀레이션 패턴(PTP)을 리드하고(S130), 리드된 이전 테셀레이션 패턴(PTP)을 선택기(537)의 제2입력 포트(IP2)로 전송한다.
테셀레이터(550)는 캐시 히트(HIT)를 지시하는 지시 신호에 응답하여 디스에이블될 수 있다.
선택기(537)는, 캐시 히트(HIT)를 지시하는 지시 신호에 응답하여, 제2입력 포트(IP2)로 입력된 이전 테셀레이션 패턴(PTP)을 도메인 쉐이더(537)로 출력한다 (S132).
도메인 쉐이더(570)는 캐시 액세스 제어 회로(535)로부터 출력된 이전 테셀레이션 패턴(PTP)과 헐 쉐이더(510)로부터 출력들(OCP과 PCD)에 응답하여 각 꼭지점의 위치를 계산할 수 있다(S150).
단계 S120의 비교 결과가 캐시 미스(MISS)일 때, 캐시 처리 회로(530B)의 동작은 다음과 같다.
우선, 현재 패치의 현재 태그와 동일한 이전 태그는 캐시(533)와 메모리(230 또는 300)에 존재하지 않는다고 가정한다.
테셀레이터(550)는 캐시 미스(MISS)를 지시하는 지시 신호에 응답하여 인에이블된다.
테셀레이터(550)는 현재 패치에 대한 출력 점들(OCP)과 상기 현재 패치에 대한 테셀레이션 팩터들(TF)을 수신하고, 출력 점들(OCP)과 테셀레이션 팩터들(TF)을 이용하여 테셀레이션 작동을 수행하고, 수행의 결과에 따라 상기 현재 패치에 해당하는 현재 테셀레이션 패턴(CTP)을 생성하고(S140), 현재 테셀레이션 패턴(CTP)을 선택기(537)의 제1입력 포트(IP1)로 전송한다.
테셀레이터(550)는 현재 테셀레이션 패턴(CTP)을 캐시 액세스 제어 회로 (535)로 전송하고, 캐시 액세스 제어 회로(535)는 현재 테셀레이션 패턴(CTP)을 캐시(533)에 저장한다.
예컨대, 캐시 액세스 제어 회로(535)는, 현재 패치의 패치 방정식(PE)과 테셀레이션 팩터들(TF)에 기초하여 생성된 현재 태그를 포함하는 어드레스(ADD)를 이용하여, 현재 테셀레이션 패턴(CTP)을 캐시(533)에 저장할 수 있다.
선택기(537)는, 캐시 미스(MISS)를 지시하는 지시 신호에 응답하여, 제1입력 포트(IP1)로 입력된 현재 테셀레이션 패턴(CTP)을 도메인 쉐이더(537)로 출력한다 (S142).
도메인 쉐이더(537)는 헐 쉐이더(510)로부터 출력된 출력들(OCP와 PCD)과 현재 테셀레이션 패턴(CTP)을 이용하여 각 꼭지점의 위치를 계산한다(S150).
도 7은 본 발명의 다른 실시 예에 따른 테셀레이션 방법을 설명하기 위한 플로우차트이다.
도 6에 도시된 바와 같이, 각 패치에 대한 테셀레이션 패턴은 테셀레이션 장치(220A, 220B, 또는 220C)에 의해 실시간으로 생성되면서 캐시(533)에 저장될 수 있다.
도 7에 도시된 바와 같이, 각 패치에 대한 테셀레이션 패턴들은 미리 생성된 후 적절한 타이밍에 메모리(230 또는 300)로부터 캐시 인터페이스(539)를 통해 캐시(533)로 로드될 수 있다(S10).
예컨대, 각 패치에 대한 테셀레이션 패턴은 사용자(예컨대, 제조업자 또는 프로그래머)에 의해 생성된 후 메모리(230 또는 300)에 저장될 수 있다.
상기 적절한 타이밍은 테셀레이션 장치(220A, 220B, 또는 220C)의 설계 사양에 따라 결정될 수 있다.
예컨대, 강제 미스(compulsory miss) 또는 콜드 미스(cold miss)가 발생할 때, 각 패치에 대한 테셀레이션 패턴은 캐시(533)로 로드될 수 있다. 상기 각 패치에 대한 테셀레이션 패턴은 외부 메모리(300)에 저장될 수 있다.
도 5는 도 2에 도시된 테셀레이션 장치의 다른 실시 예를 나타내는 블록도이고, 도 8은 현재 태그와 동일한 이전 태그가 캐시와 메모리에 저장되어 있지 않을 때 본 발명의 또 다른 실시 예에 따른 테셀레이션 방법을 설명하기 위한 플로우차트이다.
우선, 도 2와 도 5를 참조하면, 도 2에 도시된 테셀레이션 장치(220A)의 다른 실시 예에 따른 테셀레이션 장치(220C)는 헐 쉐이더(510), 캐시 처리 회로 (530C), 테셀레이터(550), 및 도메인 쉐이더(570)를 포함한다.
캐시 처리 회로(530C)는 태그 비교기(531), 캐시(533), 캐시 액세스 제어 회로(535), 압축기(536-1), 압축해제기(536-2), 선택기(537), 및 캐시 인터페이스 (539)를 포함한다.
도 1부터 도 4b, 도 5, 및 도 8을 참조하면, 헐 쉐이더(510)는 입력 점들 (ICP)을 포함하는 현재 패치의 현재 태그 생성 데이터를 생성한다(S110).
태그 비교기(531)는 태그들을 비교하고, 비교 결과에 따라 상기 현재 패치의 현재 태그와 동일한 이전 태그가 캐시(533)에 저장되어 있는지를 판단한다(S120).
상술한 바와 같이, 상기 현재 태그는 상기 현재 패치의 태그 생성 데이터에 의해 정의되고 상기 이전 태그는 이전 패치의 태그 생성 데이터에 의해 정의될 수 있다.
태그 비교기(531)는 상기 현재 패치에 관련된 패치 방정식(PE)과 테셀레이션 팩터들(TF)을 수신하고, 패치 방정식(PE)과 테셀레이션 팩터들(TF)을 이용하여 현재 태그를 생성하고, 상기 현재 태그와 이전 태그들 각각을 비교하고, 비교 결과에 따라 캐시 히트(HIT) 또는 캐시 미스(MISS)를 지시하는 지시 신호를 생성한다.
S120 단계의 비교 결과가 캐시 히트(HIT)일 때, 캐시 처리 회로(530C)의 동작은 다음과 같다.
캐시 액세스 제어 회로(535)는 캐시 히트(HIT)를 지시하는 지시 신호에 응답하여 인에이블되고, 인에이블된 캐시 액세스 제어 회로(535)는, 현재 태그를 포함하는 어드레스(ADD)에 응답하여, 캐시(533)로부터 상기 현재 태그에 상응하는 압축된 이전 테셀레이션 패턴(CPTP)을 리드하고, 압축된 이전 테셀레이션 패턴(CPTP)을 압축해제기(536-2)로 전송한다(S130).
압축해제기(536-2)는 압축된 이전 테셀레이션 패턴(CPTP)을 압축해제하고, 압축해제된 이전 테셀레이션 패턴(PTP)을 선택기(537)의 제2입력 포트(IP2)로 전송한다(S133).
테셀레이터(550)는 캐시 히트(HIT)를 지시하는 지시 신호에 응답하여 디스에이블될 수 있다.
선택기(537)는, 캐시 히트(HIT)를 지시하는 지시 신호에 응답하여, 제2입력 포트(IP2)로 입력된 압축해제된 이전 테셀레이션 패턴(PTP)을 도메인 쉐이더(570)로 출력한다(S135).
도메인 쉐이더(537)는 압축해제된 이전 테셀레이션 패턴(PTP)과 헐 쉐이더 (510)의 출력들(OCP와 PCD)을 이용하여 각 꼭지점의 위치를 계산한다(S150).
S120 단계의 비교 결과가 캐시 미스(MISS)일 때, 캐시 처리 회로(530B)의 동작은 다음과 같다.
테셀레이터(550)는 캐시 미스(MISS)를 지시하는 지시 신호에 응답하여 인에이블된다.
테셀레이터(550)는 현재 패치에 대한 출력 점들(OCP)과 상기 현재 패치에 대한 테셀레이션 팩터들(TF)을 수신하고, 출력 점들(OCP)과 테셀레이션 팩터들(TF)을 이요와여 테셀레이션 작동을 수행하고, 수행의 결과에 따라 상기 현재 패치에 해당하는 현재 테셀레이션 패턴(CTP)을 생성하고, 현재 테셀레이션 패턴(CTP)을 선택기(537)의 제1입력 포트(IP1)로 전송한다(S140).
이때, 테셀레이터(550)는 현재 테셀레이션 패턴(CTP)을 압축기(536-1)로 전송하고, 압축기(536-1)는 현재 테셀레이션 패턴(CTP)을 압축하고, 압축된 현재 테셀레이션 패턴(CCTP)을 캐시 액세스 제어 회로(535)로 전송한다(S143).
캐시 액세스 제어 회로(535)는 어드레스(ADD)를 이용하여 압축된 현재 테셀레이션 패턴(CCTP)을 캐시(533)에 저장한다(S145).
이때, 캐시 액세스 제어 회로(535)는, 현재 패치에 관련된 패치 방정식(PE)과 테셀레이션 팩터(TF)에 기초하여 생성된 현재 태그를 포함하는 어드레스(ADD)를 이용하여, 압축된 현재 테셀레이션 패턴(CCTP)을 캐시(533)에 저장할 수 있다 (S145).
선택기(537)는, 캐시 미스(MISS)를 지시하는 지시 신호에 응답하여, 제1입력 포트(IP1)로 입력된 현재 테셀레이션 패턴(CTP)을 도메인 쉐이더(570)로 출력한다 (S142).
도메인 쉐이더(537)는 헐 쉐이더(510)의 출력들(OCP와 PCD)과 테셀레이터 (550)로부터 출력된 현재 테셀레이션 패턴(CTP)을 이용하여 각 꼭지점의 위치를 계산한다(S150).
도 9는 현재 태그와 동일한 이전 태그가 메모리에만 저장되어 있을 때 본 발명의 일 실시 예에 따른 테셀레이션 방법을 설명하기 위한 플로우차트이다.
현재 패치의 현재 태그와 동일한 이전 태그가 캐시(533)에 저장되어 있지 않고 메모리(230 또는 300)에만 저장되어 있을 때, 캐시 미스(MISS)가 발생할 수 있다.
캐시 미스(MISS)가 발생하면, 태그 비교기(531), 캐시(533)와 캐시 액세스 제어 회로(535) 중 어느 하나는 로드 시간과 계산 시간을 비교한다(S125).
실시 예들에 따라, 상기 로드 시간과 상기 계산 시간을 비교하는 비교 알고리즘은 태그 비교기(531), 캐시(533), 또는 캐시 액세스 제어 회로(535)에 구현될 수 있다.
상기 로드 기간(load time)은 이전 패치(또는 이전 태그)에 해당하는 이전 테셀레이션 패턴을 메모리(230 또는 300)로부터 캐시(533)로 로드하는데 소요되는 시간을 의미하고, 상기 계산 시간(computing time)은 현재 패치(또는 현재 태그)에 해당하는 현재 테셀레이션 패턴을 생성하는데 소요되는 시간을 의미한다.
상기 로드 시간이 상기 계산 시간보다 짧으면, 상기 비교 알고리즘의 제어에 따라, 캐시 인터페이스(539)는 메모리(230 또는 300)로부터 이전 패치에 해당하는 이전 테셀레이션 패턴을 캐시(533)로 로드한다(S127).
캐시 히트(HIT)와 동일하게, 캐시 액세스 제어 회로(535)는, 현재 태그를 포함하는 어드레스(ADD)에 응답하여, 캐시(533)로 로드된 이전 테셀레이션 패턴(PTP)을 리드하고(S130), 이전 테셀레이션 패턴(PTP)을 선택기(537)를 통해 도메인 쉐이더(570)로 전송한다(S132).
그러나, 상기 로드 시간이 상기 계산 시간보다 길면, 테셀레이터(550)는 현재 패치에 대한 출력 점들(OCP)과 상기 현재 패치에 대한 테셀레이션 팩터들(TF)을 이용하여 테셀레이션 작동을 수행하고, 수행의 결과에 따라 상기 현재 패치에 해당하는 현재 테셀레이션 패턴(CTP)을 생성하고(S140), 현재 테셀레이션 패턴(CTP)을 선택기(537)를 통해 도메인 쉐이더(570)로 전송한다 (S142).
도 10은 현재 태그와 동일한 이전 태그가 메모리에만 저장되어 있을 때 본 발명의 다른 실시 예에 따른 테셀레이션 방법을 설명하기 위한 플로우차트이다.
현재 패치의 현재 태그와 동일한 이전 태그가 캐시(533)에 저장되어 있지 않고 메모리(230 또는 300)에만 저장되어 있을 때, 캐시 미스(MISS)가 발생할 수 있다.
도 5, 및 도 8부터 도 10을 참조하면, 로드 시간이 계산 시간보다 길면 (S125), 테셀레이터(550)에 의해 현재 패치에 해당하는 현재 테셀레이션 패턴(CTP)을 생성하는 테셀레이션 작동이 수행되고(S140), 압축기(536-1)를 이용한 현재 테셀레이션 패턴(CTP)의 압축 작동이 수행되고(S143), 압축된 현재 테셀레이션 패턴 (CCTP)은 캐시 액세스 제어 회로(535)에 의해 캐시(533)에 저장된다(S145).
본 발명은 도면에 도시된 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
100; 전자 시스템
200: 처리 장치
210: CPU
220: 그래픽스 프로세싱 유닛(graphics processing unit; GPU)
220A, 220B, 및 220C: 테셀레이션 장치
510: 헐 쉐이더
530A, 530B, 및 530C; 캐시 처리 회로
531: 태그 비교기
533: 캐시
535: 캐시 액세스 제어 회로
537: 선택기
539: 캐시 인터페이스
550: 테셀레이터
570: 도메인 쉐이더

Claims (20)

  1. 현재 패치의 현재 태그와 동일한 이전 태그가 캐시에 저장되어 있는지를 판단하는 단계; 및
    캐시 히트일 때, 상기 캐시에 저장된 상기 이전 태그에 상응하는 이전 테셀레이션 패턴을 도메인 쉐이더로 전송하는 단계를 포함하는 테셀레이션 방법.
  2. 제1항에 있어서, 상기 판단하는 단계는,
    상기 현재 패치의 패치 방정식과 테셀레이션 팩터에 기초하여 생성된 상기 현재 태그와 이전 패치의 패치 방정식과 테셀레이션 팩터에 기초하여 생성된 상기 이전 태그의 비교 결과에 따라 수행되는 테셀레이션 방법.
  3. 제1항에 있어서, 상기 전송하는 단계는,
    상기 이전 테셀레이션 패턴을 압축해제하고 압축해제된 이전 테셀레이션 패턴을 상기 도메인 쉐이더로 전송하는 테셀레이션 방법.
  4. 제1항에 있어서,
    캐시 미스일 때, 테셀레이터를 이용하여 상기 현재 패치에 해당하는 현재 테셀레이션 패턴을 생성하고 생성된 현재 테셀레이션 패턴을 상기 도메인 쉐이더로 전송하는 단계; 및
    상기 생성된 현재 테셀레이션 패턴을 상기 캐시에 저장하는 단계를 더 포함하는 테셀레이션 방법.
  5. 제4항에 있어서,
    상기 이전 테셀레이센 패턴과 상기 현재 테셀레이센 패턴 각각은 테셀레이트된 점들의 UV 좌표들과 상기 테셀레이트된 점들의 토폴로지 정보를 포함하는 테셀레이션 방법.
  6. 제1항에 있어서,
    캐시 미스일 때, 상기 이전 테셀레이션 패턴을 메모리로부터 상기 캐시로 로드(load)하는 단계; 및
    상기 캐시로 로드된 상기 이전 테셀레이션 패턴을 상기 도메인 쉐이더로 전송하는 단계를 더 포함하는 테셀레이션 방법.
  7. 제1항에 있어서,
    캐시 미스일 때, 테셀레이터를 이용하여 상기 현재 패치에 해당하는 현재 테셀레이션 패턴을 생성하고 생성된 현재 테셀레이션 패턴을 상기 도메인 쉐이더로 전송하는 단계; 및
    상기 생성된 현재 테셀레이션 패턴을 압축기를 이용하여 압축하고, 압축된 현재 테셀레이션 패턴을 상기 캐시에 저장하는 단계를 더 포함하는 테셀레이션 방법.
  8. 제1항에 있어서,
    캐시 미스일 때, 상기 이전 테셀레이션 패턴을 메모리로부터 상기 캐시로 로드(load)하는 로드 시간과 상기 현재 패치에 해당하는 현재 테셀레이션 패턴을 생성하는 계산 시간을 비교하는 단계;
    상기 계산 시간이 상기 로드 시간보다 짧을 때, 테셀레이터를 이용하여 상기 현재 테셀레이션 패턴을 생성하고 생성된 현재 테셀레이션 패턴을 상기 도메인 쉐이더로 전송하는 단계; 및
    상기 생성된 현재 테셀레이션 패턴을 상기 캐시에 저장하는 단계를 더 포함하는 테셀레이션 방법.
  9. 제1항에 있어서,
    캐시 미스일 때, 상기 이전 테셀레이션 패턴을 메모리로부터 상기 캐시로 로드하는 로드 시간과 상기 현재 패치에 해당하는 현재 테셀레이션 패턴을 생성하는 계산 시간을 비교하는 단계;
    상기 계산 시간이 상기 로드 시간보다 짧을 때, 테셀레이터를 이용하여 상기 현재 테셀레이션 패턴을 생성하고 생성된 현재 테셀레이션 패턴을 상기 도메인 쉐이더로 전송하는 단계; 및
    상기 생성된 현재 테셀레이션 패턴을 압축하고 압축된 현재 테셀레이션 패턴을 상기 캐시에 저장하는 단계를 더 포함하는 테셀레이션 방법.
  10. 제1항의 방법을 수행하기 위해 그래픽스 프로세서를 지시(instruct)하는 그래픽스 애플리케이션 프로그래밍 인터페이스(API)를 포함하는 컴퓨터로 읽을 수 있는 기록 장치.
  11. 현재 패치에 대한 현재 태그 생성 데이터를 생성하는 헐 쉐이더;
    도메인 쉐이더; 및
    수신된 상기 현재 태그 생성 데이터에 기초하여 현재 태그를 생성하고, 상기 현재 태그와 동일한 이전 태그가 캐시에 저장되어 있는지를 판단하고, 캐시 히트일 때 상기 캐시로부터 상기 이전 태그에 상응하는 이전 테셀레이션 패턴을 리드하고 리드된 이전 테셀레이션 패턴을 상기 도메인 쉐이더로 전송하는 캐시 처리 회로를 포함하는 테셀레이션 장치.
  12. 제11항에 있어서,
    캐시 미스일 때, 상기 현재 패치에 상응하는 현재 테셀레이션 패턴을 생성하는 테셀레이터를 더 포함하고,
    상기 캐시 처리 회로는 상기 현재 테셀레이션 패턴을 상기 도메인 쉐이더로 전송하고 상기 현재 테셀레이션 패턴을 상기 캐시에 저장하는 테셀레이션 장치.
  13. 제12항에 있어서, 상기 캐시 처리 회로는,
    상기 캐시 미스일 때, 상기 이전 테셀레이션 패턴을 메모리로부터 상기 캐시로 로드하는 로드 시간과 상기 현재 테셀레이션 패턴을 생성하는 계산 시간을 비교하고,
    상기 계산 시간이 상기 로드 시간보다 짧을 때, 상기 테셀레이터는 상기 현재 테셀레이션 패턴을 생성하는 테셀레이션 장치.
  14. 제12항에 있어서, 상기 캐시 처리 회로는,
    상기 현재 패치의 패치 방정식과 테셀레이션 팩터에 기초하여 생성된 상기 현재 태그와 이전 패치의 패치 방정식과 테셀레이션 팩터에 기초하여 생성된 상기 이전 태그를 비교하고, 비교 결과에 따라 상기 캐시 히트 또는 상기 캐시 미스를 지시하는 지시 신호를 생성하는 태그 비교기;
    상기 현재 태그에 관련된 어드레스에 기초하여, 상기 이전 테셀레이션 패턴을 상기 캐시로부터 리드하는 캐시 액세스 제어 회로; 및
    상기 지시 신호에 응답하여, 상기 이전 테셀레이션 패턴 또는 상기 현재 패치의 현재 테셀레이션 패턴을 상기 도메인 쉐이더로 출력하는 선택기를 포함하는 테셀레이션 장치.
  15. 제14항에 있어서, 상기 캐시 처리 회로는,
    상기 캐시 액세스 제어 회로로부터 출력된 상기 이전 테셀레이션 패턴을 압축해제하고, 압축 해제된 이전 테셀레이션 패턴을 상기 선택기로 출력하는 압축해제기; 및
    상기 테셀레이터로부터 출력된 상기 현재 테셀레이션 패턴을 압축하고, 압축된 테셀레이션 패턴을 상기 캐시에 저장하기 위해 상기 캐시 액세스 제어 회로로 출력하는 압축기를 더 포함하는 테셀레이션 장치.
  16. 제11항에 있어서,
    상기 이전 테셀레이션 패턴을 생성하는 테셀레이터를 더 포함하고,
    상기 캐시 처리 회로는 상기 테셀레이터로부터 출력된 상기 이전 테셀레이션 패턴을 상기 캐시에 저장하는 테셀레이션 장치.
  17. 제11항에 있어서, 상기 캐시 처리 회로는,
    상기 이전 테셀레이션 패턴을 포함하는 복수의 테셀레이션 패턴들을 메모리로부터 상기 캐시로 로드하는 메모리 인터페이스를 더 포함하는 테셀레이션 장치.
  18. 제11항에 있어서,
    상기 테셀레이션 장치는 그래픽스 프로세서의 파이프라인의 일부인 테셀레이션 장치.
  19. 그래픽스 프로세싱 유닛(graphics processing unit(GPU)); 및
    상기 CPU의 동작을 제어하는 CPU(central processing unit)를 포함하며,
    상기 GPU는,
    현재 패치에 대한 현재 태그 생성 데이터를 생성하는 헐 쉐이더;
    도메인 쉐이더;
    수신된 상기 현재 태그 생성 데이터에 기초하여 현재 태그를 생성하고, 상기 현재 태그와 동일한 이전 태그가 캐시에 존재하는지를 판단하고, 캐시 히트일 때 상기 캐시로부터 상기 이전 태그에 상응하는 이전 테셀레이션 패턴을 리드하고 리드된 이전 테셀레이션 패턴을 상기 도메인 쉐이더로 전송하는 캐시 처리 회로; 및
    캐시 미스일 때, 상기 현재 패치에 상응하는 현재 테셀레이션 패턴을 생성하고 생성된 현재 테셀레이션 패턴을 상기 도메인 쉐이더로 전송하는 테셀레이터를 포함하는 전자 시스템.
  20. 제19항에 있어서, 상기 캐시 처리 회로는,
    상기 현재 태그와 상기 이전 태그를 비교하고 비교 결과에 따라 상기 캐시 히트 또는 상기 캐시 미스를 지시하는 지시 신호를 생성하는 태그 비교기;
    상기 현재 태그에 관련된 어드레스에 기초하여, 상기 이전 테셀레이션 패턴을 상기 캐시로부터 리드하는 캐시 액세스 제어 회로; 및
    상기 지시 신호에 응답하여, 상기 이전 테셀레이션 패턴 또는 상기 현재 패치에 관련된 현재 테셀레이션 패턴을 상기 도메인 쉐이더로 출력하는 선택기를 포함하는 전자 시스템.
KR1020130083521A 2013-07-16 2013-07-16 캐시를 포함하는 테셀레이션 장치, 그의 동작 방법, 및 상기 장치를 포함하는 시스템 KR102072656B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130083521A KR102072656B1 (ko) 2013-07-16 2013-07-16 캐시를 포함하는 테셀레이션 장치, 그의 동작 방법, 및 상기 장치를 포함하는 시스템
US14/321,217 US9582935B2 (en) 2013-07-16 2014-07-01 Tessellation device including cache, method thereof, and system including the tessellation device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130083521A KR102072656B1 (ko) 2013-07-16 2013-07-16 캐시를 포함하는 테셀레이션 장치, 그의 동작 방법, 및 상기 장치를 포함하는 시스템

Publications (2)

Publication Number Publication Date
KR20150009267A true KR20150009267A (ko) 2015-01-26
KR102072656B1 KR102072656B1 (ko) 2020-02-03

Family

ID=52343215

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130083521A KR102072656B1 (ko) 2013-07-16 2013-07-16 캐시를 포함하는 테셀레이션 장치, 그의 동작 방법, 및 상기 장치를 포함하는 시스템

Country Status (2)

Country Link
US (1) US9582935B2 (ko)
KR (1) KR102072656B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9378560B2 (en) * 2011-06-17 2016-06-28 Advanced Micro Devices, Inc. Real time on-chip texture decompression using shader processors
US11010862B1 (en) * 2019-11-14 2021-05-18 Advanced Micro Devices, Inc. Reduced bandwidth tessellation factors

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020135585A1 (en) * 2000-02-01 2002-09-26 Dye Thomas A. Video controller system with screen caching
US7061500B1 (en) * 1999-06-09 2006-06-13 3Dlabs Inc., Ltd. Direct-mapped texture caching with concise tags
WO2011047092A1 (en) * 2009-10-15 2011-04-21 Nvidia Corporation An order-preserving distributed rasterizer
KR20130049824A (ko) * 2008-12-31 2013-05-14 인텔 코오퍼레이션 테셀레이션 시간이 테셀레이션의 양에 따라 선형적으로 증가하는 테셀레이터
US20130257891A1 (en) * 2012-03-30 2013-10-03 Rahul P. Sathe Post Tesellation Edge Cache
US20140168245A1 (en) * 2012-12-19 2014-06-19 Nvidia Corporation Technique for performing memory access operations via texture hardware

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5428718A (en) 1993-01-22 1995-06-27 Taligent, Inc. Tessellation system
US6542638B2 (en) 2001-02-21 2003-04-01 Shannon Roy Campbell Method for matching spatial patterns
US7222322B1 (en) 2003-01-14 2007-05-22 Cadence Design Systems, Inc. Method and mechanism for implementing tessellation-based routing
US7042452B1 (en) 2003-10-02 2006-05-09 Sun Microsystems, Inc. Triangle coverage estimation and edge-correct tessellation
JP4255449B2 (ja) 2005-03-01 2009-04-15 株式会社ソニー・コンピュータエンタテインメント 描画処理装置、テクスチャ処理装置、およびテセレーション方法
US7911467B2 (en) 2005-12-30 2011-03-22 Hooked Wireless, Inc. Method and system for displaying animation with an embedded system graphics API
US7928979B2 (en) 2008-02-01 2011-04-19 Microsoft Corporation Efficient geometric tessellation and displacement
US8482560B2 (en) 2008-12-31 2013-07-09 Intel Corporation Image forming techniques
US20100253683A1 (en) 2009-04-01 2010-10-07 Munkberg Carl J Non-uniform tessellation technique
JP5320334B2 (ja) 2009-09-24 2013-10-23 株式会社東芝 画像処理装置及びプログラム
US20110310102A1 (en) 2010-06-17 2011-12-22 Via Technologies, Inc. Systems and methods for subdividing and storing vertex data
GB201104066D0 (en) 2011-03-09 2011-04-20 Imagination Tech Ltd Compression of a tessellated primitive index list in a tile rendering system

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7061500B1 (en) * 1999-06-09 2006-06-13 3Dlabs Inc., Ltd. Direct-mapped texture caching with concise tags
US20020135585A1 (en) * 2000-02-01 2002-09-26 Dye Thomas A. Video controller system with screen caching
KR20130049824A (ko) * 2008-12-31 2013-05-14 인텔 코오퍼레이션 테셀레이션 시간이 테셀레이션의 양에 따라 선형적으로 증가하는 테셀레이터
WO2011047092A1 (en) * 2009-10-15 2011-04-21 Nvidia Corporation An order-preserving distributed rasterizer
US20130257891A1 (en) * 2012-03-30 2013-10-03 Rahul P. Sathe Post Tesellation Edge Cache
US20140168245A1 (en) * 2012-12-19 2014-06-19 Nvidia Corporation Technique for performing memory access operations via texture hardware

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Chung, et al. "Shader-based tessellation to save memory bandwidth in a mobile multimedia processor." Computers & Graphics 33.5 (2009)* *

Also Published As

Publication number Publication date
US20150022520A1 (en) 2015-01-22
KR102072656B1 (ko) 2020-02-03
US9582935B2 (en) 2017-02-28

Similar Documents

Publication Publication Date Title
US10140677B2 (en) Graphics processing unit and device employing tessellation decision
KR102109130B1 (ko) 그래픽스 프로세싱 유닛, 이의 동작 방법, 및 이를 포함하는 장치들
US9552618B2 (en) Method for domain shading, and devices operating the same
US9779547B2 (en) Tessellation method for assigning a tessellation factor per point and device performing the method
US9576396B2 (en) Graphics processing unit, graphics processing system including the same, and method of operating the same
US20150170406A1 (en) Graphic processing unit, system-on-chip including graphic processing unit, and graphic processing system including graphic processing unit
US9299123B2 (en) Indexed streamout buffers for graphics processing
US20140063026A1 (en) Soc performing dynamic voltage and frequency scaling policies using 3d workload, and method using the same
US9307249B2 (en) Processing device and method of compressing images
KR102474237B1 (ko) 압축된 자원에 셰이더의 기입
TW201142741A (en) Edge processing techniques
KR20160042547A (ko) Lod를 조절할 수 있는 그래픽스 프로세싱 유닛, 이의 작동 방법, 및 상기 그래픽스 프로세싱 유닛을 포함하는 장치들
CN104268047A (zh) 电子设备性能的测试方法及装置
KR102072656B1 (ko) 캐시를 포함하는 테셀레이션 장치, 그의 동작 방법, 및 상기 장치를 포함하는 시스템
KR20060119085A (ko) 텍스쳐 캐쉬 메모리 장치 및 이를 이용한 삼차원 그래픽가속기 및 방법
KR102053351B1 (ko) 테셀레이션 데이터 생성 방법과 상기 방법을 수행할 수 있는 장치들
WO2017189105A1 (en) Constant multiplication with texture unit of graphics processing unit

Legal Events

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