KR101536732B1 - 텍스쳐 맵핑을 위한 텍스쳐 데이터 읽기 장치 및 방법 - Google Patents

텍스쳐 맵핑을 위한 텍스쳐 데이터 읽기 장치 및 방법 Download PDF

Info

Publication number
KR101536732B1
KR101536732B1 KR1020080109235A KR20080109235A KR101536732B1 KR 101536732 B1 KR101536732 B1 KR 101536732B1 KR 1020080109235 A KR1020080109235 A KR 1020080109235A KR 20080109235 A KR20080109235 A KR 20080109235A KR 101536732 B1 KR101536732 B1 KR 101536732B1
Authority
KR
South Korea
Prior art keywords
texture data
cache memory
index
odd
index cache
Prior art date
Application number
KR1020080109235A
Other languages
English (en)
Other versions
KR20100050107A (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 KR1020080109235A priority Critical patent/KR101536732B1/ko
Priority to US12/385,413 priority patent/US8605101B2/en
Publication of KR20100050107A publication Critical patent/KR20100050107A/ko
Application granted granted Critical
Publication of KR101536732B1 publication Critical patent/KR101536732B1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures

Abstract

텍스쳐 맵핑을 위한 텍스쳐 데이터 읽기 장치 및 방법이 제공된다. 캐쉬 메모리에 포함되는 복수의 블록들 각각은 짝수 인덱스 또는 홀수 인덱스 중 어느 하나를 갖는다. 이 때, 캐쉬 메모리는 홀수 인덱스 블록들을 포함하는 홀수 인덱스 캐쉬 메모리 및 짝수 인덱스 블록들을 포함하는 짝수 인덱스 메모리로 구현될 수 있다. 그리고, 요청된 텍스쳐 데이터들의 주소 인덱스들을 분석하여, 적절히 홀수 인덱스 캐쉬 메모리 또는 짝수 인덱스 메모리 중 적어도 하나에 억세스함으로써, 억세스 속도를 향상시킬 수 있다.
Figure R1020080109235
텍스쳐, 데이터, 메모리, 캐쉬, 홀수, 짝수, 블록, 인덱스

Description

텍스쳐 맵핑을 위한 텍스쳐 데이터 읽기 장치 및 방법{DEVICE AND METHOD OF READING TEXTURE DATA FOR TEXTURE MAPPING}
본 발명의 실시예들은 3차원 그래픽 처리 기술에 관한 것으로, 특히 텍스쳐 데이터를 저장하는 캐쉬 메모리 및 그에 대한 억세스 기술에 관한 것이다.
3차원 그래픽 데이터를 렌더링하는 과정은 3차원 객체인 폴리곤에 메모리에 미리 저장된 텍스쳐 데이터들을 입힘으로써, 2차원 픽셀들을 결정하는 텍스쳐 매핑 과정을 포함한다. 텍스쳐 매핑 과정에 사용되는 텍스쳐 이미지들은 메인 메모리에 미리 저장되며, 텍스쳐 이미지들 각각은 복수의 텍스쳐 데이터들을 포함한다. 이 때, 텍스쳐 데이터는 텍셀(texel, texture element)이라 불려진다.
또한, 하나의 2차원 픽셀을 생성하기 위해서는 하나 또는 하나 이상의 텍스쳐 데이터들이 사용될 수 있다. 특히, 하나의 2차원 픽셀을 생성하기 위하여, 복수의 텍스쳐 데이터들이 요구되는 경우, 높은 데이터 대역폭이 요구된다.
이 때, 많은 3차원 그래픽 처리 장치들은 빈번하게 요구되는 텍스쳐 데이터들을 저장하는 캐쉬 메모리를 활용함으로써 요구되는 데이터 대역폭을 감소시키고, 처리 속도를 향상시킨다. 그러나, 캐쉬 메모리에 저장된 텍스쳐 데이터들을 읽는 과정에서도 리소스가 요구되며, 처리 속도가 지연되는 문제도 발생할 수 있다. 따라서, 캐쉬 메모리를 보다 효율적으로 사용함으로써, 처리 속도를 향상시키기 위한 연구가 필요하다.
본 발명의 일실시예에 따른 텍스쳐 맵핑을 위한 텍스쳐 데이터 읽기 장치는 홀수 인덱스를 갖는 복수의 홀수 인덱스 블록들을 포함하는 홀수 인덱스 캐쉬 메모리, 짝수 인덱스를 갖는 복수의 짝수 인덱스 블록들을 포함하는 짝수 인덱스 캐쉬 메모리 및 요청된 텍스쳐 데이터들 중 적어도 두 개의 주소 인덱스들을 기초로 상기 홀수 인덱스 캐쉬 메모리 또는 상기 짝수 인덱스 캐쉬 메모리로 상기 요청된 텍스쳐 데이터들에 대한 읽기 요청을 생성하는 컨트롤러를 포함한다.
또한, 본 발명의 일실시예에 따른 텍스쳐 맵핑을 위한 텍스쳐 데이터 읽기 방법은 홀수 인덱스 캐쉬 메모리에 포함된 복수의 홀수 인덱스 블록들 각각에 텍스쳐 데이터들을 저장하는 단계-상기 복수의 홀수 인덱스 블록들은 홀수 인덱스를 가짐-., 짝수 인덱스 캐쉬 메모리에 포함된 복수의 짝수 인덱스 블록들 각각에 텍스쳐 데이터들을 저장하는 단계-상기 짝수의 홀수 인덱스 블록들은 홀수 인덱스를 가짐-. 및 요청된 텍스쳐 데이터들에 대응하는 주소 인덱스들을 기초로 상기 홀수 인덱스 캐쉬 메모리 또는 상기 짝수 인덱스 캐쉬 메모리로 상기 요청된 텍스쳐 데이터들에 대한 읽기 요청을 생성하는 단계를 포함한다.
본 발명의 일실시예에 따른 텍스쳐 맵핑을 위한 텍스쳐 데이터 읽기 장치 및 방법은 홀수 인덱스 블록들을 포함하는 홀수 인덱스 캐쉬 메모리 및 짝수 인덱스 블록들을 포함하는 짝수 인덱스 캐쉬 메모리를 구비함으로써, 요구되는 캐쉬 메모리의 크기를 증가하지 않고도 캐쉬 메모리에 대한 억세스 속도를 향상시킬 수 있다.
또한, 본 발명의 일실시예에 따른 텍스쳐 맵핑을 위한 텍스쳐 데이터 읽기 장치 및 방법은 요청된 텍스쳐 데이터들의 주소 인덱스들을 분석함으로써 텍스쳐 데이터들이 존재하는 위치들을 효율적으로 판단할 수 있다.
이하, 본 발명에 따른 바람직한 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 렌더링(rendering)의 대상이 되는 3차원 객체의 일 예를 나타낸 도면이다.
3차원 객체(100)는 다양한 포맷들을 가질 수 있으나, 도 1에서는 설명의 편의를 위해 3개의 2차원 평면들(110, 120, 130)을 갖는 것으로 가정한다.
3차원 객체(100)의 3개의 2차원 평면들(110, 120, 130) 각각에는 적어도 하나의 텍스쳐 이미지들이 씌워질 수 있다. 보다 구체적으로, 적어도 하나의 텍스쳐 이미지 각각은 복수의 텍스쳐 데이터들 또는 텍셀(texture element, texel)들로 구성된다. 이 때, 복수의 텍스쳐 데이터들 중 일부는 2차원 평면들(110, 120, 130) 각각에 씌어진다. 여기서, 복수의 텍스쳐 데이터들 중 일부를 사용하여 2차원 평 면들(110, 120, 130) 각각에 속하는 픽셀들을 결정하는 것을 텍스쳐 맵핑이라고 부른다.
또한, 하나의 픽셀에 대해 텍스쳐 맵핑을 수행하기 위해서는 하나 또는 하나 이상의 텍스쳐 데이터들이 사용된다. 특히, 하나 이상의 텍스쳐 데이터들이 텍스쳐 맵핑을 위해 사용되는 경우, 픽셀의 위치 및 텍스쳐 데이터들의 위치들에 따라 텍스쳐 데이터들 각각에 특정 가중치들을 적용하여 인테폴레이팅된(interpolated) 데이터가 생성된다.
도 2는 메인 메모리에 저장된 텍스쳐 이미지의 일예를 나타낸 도면이다.
도 2를 참조하면, 메인 메모리(210)는 n x m개의 저장 공간들을 이용하여 적어도 하나의 텍스쳐 이미지에 포함되는 복수의 텍스쳐 데이터들을 저장한다. 여기서, 도 2에 도시된 표기들(1,2, 3, ... , nm)은 저장 공간들 또는 텍스쳐 데이터들의 주소 인덱스들을 나타낸다.
즉, 복수의 텍스쳐 데이터들 각각은 메인 메모리(210)의 저장 공간들 각각에 저장되며, 요청된 텍스쳐 데이터들은 메인 메모리(210)의 저장 공간들로부터 읽혀져서, 렌더링 장치(도 2에 도시되지 않음)로 제공된다.
다만, 빈번하게 요청되는 텍스쳐 데이터들은 메인 메모리(210)와는 구별되는 캐쉬 메모리에 저장된다. 즉, 캐쉬 메모리는 메인 메모리(210)로부터 동일한 텍스쳐 데이터들을 반복하여 읽는 것을 방지함으로써, 처리 속도를 높이기 위해 사용된다.
도 3은 접근 요청된 텍스쳐 데이터들의 일예를 나타낸 도면이다.
도 3을 참조하면, 하나의 인터폴레이팅된 데이터를 생성하기 위하여 4 개의 텍스쳐 데이터들(a, b, c, d)이 사용된다. 다만, 도 3에 도시된 바와 달리, 하나의 인터폴레이팅된 데이터를 생성하기 위하여 사용되는 텍스쳐 데이터들의 개수는 1, 2, 4, 8 개 등으로 다양하다.
하나의 인터폴레이팅된 데이터에 대응되는 픽셀의 위치, 텍스쳐 데이터들의 위치에 따라 접근 요청된 텍스쳐 데이터들(a, b, c, d)에 각각에는 가중치가 적용된다. 이 때, 텍스쳐 데이터들은 메인 메모리 또는 캐쉬 메모리로부터 렌더링 장치로 제공될 수도 있다.
이 때, 본 발명의 일실시예에 따른 텍스쳐 데이터 읽기 장치 및 그 방법은 캐쉬 메모리로부터 효율적으로 접근 요청된 텍스쳐 데이터들을 효율적으로 읽기 위한 기법들을 제공한다.
도 4는 메인 메모리, 렌더링 장치 및 캐쉬 메모리를 포함하는 그래픽 처리 장치의 일예를 나타낸 블록도이다.
도 4를 참조하면, 그래픽 처리 장치는 메인 메모리(410), 렌더링 장치(420) 및 캐쉬 메모리(430)를 포함한다.
메인 메모리(410)는 적어도 하나의 텍스쳐 이미지를 구성하는 텍스쳐 데이터들을 저장한다. 또한, 렌더링 장치(420)는 메인 메모리(410)로부터 특정 텍스쳐 데이터들을 읽음으로써, 텍스쳐 맵핑을 수행한다.
이 때, 렌더링 장치(420)에 의해 자주 요청되는 텍스쳐 데이터들은 캐쉬 메모리(430)에 별도로 저장된다. 따라서, 렌더링 장치(420)는 빠르게 자주 요청되는 텍스쳐 데이터들을 읽을 수 있다.
그럼에도 불구하고, 캐쉬 메모리(430)로부터 텍스쳐 데이터들을 순차적으로 읽는 것은 비효율적일 수 있다.
여기서, 도 3에 도시된 바와 같이, 네 개의 텍스쳐 데이터들(a, b, c, d)를 캐쉬 메모리(430)로부터 읽는다고 가정한다. 이 때, 하나의 캐쉬 메모리(430)가 존재하고, 하나의 텍스쳐 데이터를 읽는 데에 걸리는 시간이 T인 경우, 텍스쳐 데이터 a, b, c, d 각각을 순차적으로 읽는 데에는 4T의 시간이 걸린다. 또한, 텍스쳐 데이터들(a, b, c, d)을 동시에 읽기 위하여 크기가 같은 네 개의 캐시 메모리들을 구비하는 것은 비용을 증가시킨다.
이 때, 본 발명의 일실시예에 따른 텍스쳐 데이터 읽기 장치는 캐쉬 메모리들의 전체 크기를 증가시키지 않은 채로, 텍스쳐 데이터들(a, b, c, d)을 읽는 속도를 향상시킬 수 있다. 이에 대해서는 아래에서 상세히 설명한다.
도 5는 텍스쳐 데이터들이 저장된 복수의 블록들을 포함하는 캐쉬 메모리의 일예를 나타낸 도면이다.
도 5를 참조하면, 캐쉬 메모리(500)는 복수의 저장 공간들을 포함하며, 복수의 저장 공간들 각각에는 텍스쳐 데이터가 저장된다. 복수의 저장 공간들 중 미리 설정된 개수의 저장 공간들은 주소 인덱스들에 따라 하나의 블록으로 그룹핑된다. 도 5에서는 하나의 블록은 네 개의 저장 공간들을 포함하는 것으로 도시되어 있으나, 하나의 블록에 포함되는 저장 공간들의 개수는 2k(k는 자연수임)개일 수 있다. 여기서, 하나의 블록은 읽기 동작에 대한 캐쉬 메모리(500)의 처리 단위를 의미한다.
블록들에 포함된 저장 공간들의 주소 인덱스들(또는, 텍스쳐 데이터들의 주소 인덱스들)을 기초로 상기 저장 공간들 각각이 어느 블록에 속하는지 여부가 판단될 수 있기 때문에, 블록 인덱스들은 물리적으로 반드시 정해질 필요가 없다. 다만, 설명의 편의 상 블록들 각각을 구별하기 위한 블록 인덱스들이 아라비아 숫자로 도 5에 도시된 바와 같이 정해졌다고 가정한다.
또한, 블록들에 대하여 반드시 아라비아 숫자의 블록 인덱스들이 정해지는 것은 아닐 뿐만 아니라, 블록 인덱스들은 반드시 홀수 및 짝수로 구별되는 것은 아니다. 예를 들어, 홀수 인덱스 및 짝수 인덱스는 제1 인덱스 및 제1 인덱스와 구별되는 제2 인덱스로 대체될 수 있다.
또한 캐쉬 메모리(500)가 가로 방향으로 네 개(또는 짝수 개)의 블록들을 포함하는 경우, 홀수의 블록 인덱스들(1, 5, 9, 13 및 13, 7, 11, 15, 19)을 갖는 홀수 인덱스 블록들은 세로 방향으로 나란히 존재함을 알 수 있다. 마찬가지로, 짝수의 블록 인덱스들(2, 6, 10, 14, 18 및 4, 8, 12, 16, 20)을 갖는 짝수 인덱스 블록들도 세로 방향으로 나란히 존재한다.
(도 3과 관련하여 설명된 내용을 참고하여)4개의 요청된 텍스쳐 데이터들의 저장 패턴들은 네 가지의 저장 패턴들(510, 520, 530, 540)을 가짐을 확인할 수 있다.
첫째로, 저장 패턴(510)과 네 개의 요청된 텍스쳐 데이터들 중 두 개는 두 개의 홀수 인덱스 블록들(5, 9)에, 나머지 두 개는 두 개의 짝수 인덱스 블록들(6, 10)에 저장될 수 있다. 둘째로, 저장 패턴(520)과 같이 네 개의 요청된 텍스쳐 데이터들 중 두 개는 두 개의 짝수 인덱스 블록들(6, 10)에, 나머지 두 개는 두 개의 홀수 인덱스 블록들(7, 11)에 저장될 수 있다. 셋째로, 저장 패턴(530)과 같이, 요청된 텍스쳐 데이터들 모두는 두 개의 짝수 인덱스 블록들(14, 18)에 저장될 수 있으며, 넷째로, 저장 패턴(540)과 같이, 요청된 텍스쳐 데이터들 모두는 두 개의 홀수 인덱스 블록들(15, 19)에 저장될 수 있다.
이 때, 본 발명의 일실시예에 따른 텍스쳐 데이터 읽기 장치는 짝수 인덱스 블록들을 포함하는 짝수 인덱스 캐쉬 메모리 및 홀수 인덱스 블록들을 포함하는 홀수 인덱스 캐쉬 메모리 각각을 구비할 수 있다. 또한, 텍스쳐 데이터 읽기 장치는 요청된 텍스쳐 데이터들의 주소 인덱스들을 기초로 요청된 텍스쳐 데이터들의 저장 패턴을 파악함으로써, 요청된 텍스쳐 데이터들이 짝수 인덱스 캐쉬 메모리 또는 홀수 인덱스 캐쉬 메모리 중 어디에 저장되었는지를 판단할 수 있다. 그리고, 텍스쳐 데이터 읽기 장치는 상기 판단 결과를 기초로 적절히 짝수 인덱스 캐쉬 메모리 또는 홀수 인덱스 캐쉬 메모리로부터 요청된 텍스쳐 데이터들을 빠르게 읽을 수 있다.
예를 들어, 저장 패턴(510)에 따라 저장된 네 개의 텍스쳐 데이터들이 요청되었다고 가정한다. 이 때, 본 발명의 일실시예에 따른 텍스쳐 데이터 읽기 장치는 동일한 행 인덱스(3)의 행에서 9 번 블록의 4번째 텍스쳐 데이터의 주소 인덱스(9-4) 및 10 번 블록의 1번째 텍스쳐 데이터의 주소 인덱스(10-1)를 추출할 수 있다. 물론, 텍스쳐 데이터 읽기 장치가 동일한 행 인덱스(2)의 행에서 5 번 블록의 4번째 텍스쳐 데이터의 주소 인덱스(5-4) 및 6 번 블록의 1번째 텍스쳐 데이터의 주소 인덱스(6-1)를 추출하는 것도 가능하다. 그리고, 텍스쳐 데이터 읽기 장치는 주소 인덱스(9-4) 및 주소 인덱스(10-1)를 기초로 요청된 네 개의 텍스쳐 데이터들 중 두 개는 홀수 인덱스 캐쉬 메모리에 저장되어 있고, 나머지 두 개는 짝수 인덱스 캐쉬 메모리에 저장되어 있음을 파악할 수 있다. 이 때, 텍스쳐 데이터 읽기 장치는 홀수 인덱스 캐쉬 메모리 및 짝수 인덱스 캐쉬 메모리에 대해 병렬적으로 읽기 요청함으로써 신속하게 네 개의 텍스쳐 데이터들을 읽을 수 있다.
도 6은 본 발명의 일실시예에 따른 홀수 인덱스 캐쉬 메모리 및 짝수 인덱스 캐쉬 메모리를 나타낸 도면이다.
도 6에 도시된 바와 같이, 본 발명의 일실시예에 따른 텍스쳐 데이터 읽기 장치는 홀수 인덱스 캐쉬 메모리(610) 및 짝수 인덱스 캐쉬 메모리(620)를 별도로 구비한다.
홀수 인덱스 캐쉬 메모리(610)는 홀수 인덱스를 갖는 홀수 인덱스 블록들을 포함하며, 짝수 인덱스 캐쉬 메모리(620)는 짝수 인덱스를 갖는 짝수 인덱스 블록들을 포함한다. 여기서, 홀수 인덱스 블록들 및 짝수 인덱스 블록들 각각은 2k(k는 자연수임)개의 저장 공간들을 포함하여 2k(k는 자연수임)개의 텍스쳐 데이터들을 저장할 수 있다.
요청된 텍스쳐 데이터들 모두가 홀수 인덱스 캐쉬 메모리(610)에 저장된 것 으로 판단되는 경우, 텍스쳐 데이터 읽기 장치는 홀수 인덱스 캐쉬 메모리(610)로부터 요청된 텍스쳐 데이터들 모두를 읽을 수 있다. 반면에, 요청된 텍스쳐 데이터들 모두가 짝수 인덱스 캐쉬 메모리(620)에 저장된 것으로 판단되는 경우, 텍스쳐 데이터 읽기 장치는 짝수 인덱스 캐쉬 메모리(620)로부터 요청된 텍스쳐 데이터들 모두를 읽을 수 있다. 또한, 요청된 텍스쳐 데이터들 중 일부가 홀수 인덱스 캐쉬 메모리(610)에 저장되어 있고, 나머지가 짝수 인덱스 캐쉬 메모리(620)에 저장된 것으로 판단되는 경우, 텍스쳐 데이터 읽기 장치는 병렬적으로 홀수 인덱스 캐쉬 메모리(610) 및 짝수 인덱스 캐쉬 메모리(620)에 대해 읽기 요청을 생성할 수 있다.
도 7은 본 발명의 일실시예에 따른 텍스쳐 맵핑을 위한 텍스쳐 데이터 읽기 방법을 나타낸 동작 흐름도이다.
도 7을 참조하면, 본 발명의 일실시예에 따른 텍스쳐 맵핑을 위한 텍스쳐 데이터 읽기 방법에서, 텍스쳐 맵핑을 위하여 텍스쳐 데이터들
Figure 112008076627426-pat00001
이 요청된다(S710).
여기서,
Figure 112008076627426-pat00002
,
Figure 112008076627426-pat00003
,
Figure 112008076627426-pat00004
,
Figure 112008076627426-pat00005
는 요청된 텍스쳐 데이터들을 의미하며, 각 첨자는 요청된 텍스쳐 데이터들 각각의 주소 인덱스를 의미한다. 그리고,
Figure 112008076627426-pat00006
,
Figure 112008076627426-pat00007
은 동일한 행 인덱스를 갖는 행에서 서로 인접하고,
Figure 112008076627426-pat00008
,
Figure 112008076627426-pat00009
도 동일한 행 인덱스를 갖는 행에서 서로 인접한다.
또한, 본 발명의 일실시예에 따른 텍스쳐 맵핑을 위한 텍스쳐 데이터 읽기 방법은 요청된 텍스쳐 데이터들 중 적어도 두 개의 주소 인덱스들을 추출한다(S720).
이 때, 텍스쳐 맵핑을 위한 텍스쳐 데이터 읽기 방법은 동일한 행(row) 인덱스를 갖는 적어도 두 개의 텍스쳐 데이터들의 주소 인덱스들을 추출할 수 있다. 예를 들어, 텍스쳐 맵핑을 위한 텍스쳐 데이터 읽기 방법은
Figure 112008076627426-pat00010
,
Figure 112008076627426-pat00011
의 주소 인덱스들 또는
Figure 112008076627426-pat00012
,
Figure 112008076627426-pat00013
의 주소 인덱스들을 추출할 수 있다. 이하에서는,
Figure 112008076627426-pat00014
Figure 112008076627426-pat00015
Figure 112008076627426-pat00016
로 표현하고,
Figure 112008076627426-pat00017
Figure 112008076627426-pat00018
Figure 112008076627426-pat00019
으로 표현한다.
또한, 본 발명의 일실시예에 따른 텍스쳐 맵핑을 위한 텍스쳐 데이터 읽기 방법은 추출된
Figure 112008076627426-pat00020
Figure 112008076627426-pat00021
의 주소 인덱스들을 기초로
Figure 112008076627426-pat00022
Figure 112008076627426-pat00023
이 동일한 블록에 저장되어 있는지 여부를 판단한다(S730).
만약,
Figure 112008076627426-pat00024
Figure 112008076627426-pat00025
이 동일한 블록에 저장되어 있다면, 본 발명의 일실시예에 따른 텍스쳐 맵핑을 위한 텍스쳐 데이터 읽기 방법은
Figure 112008076627426-pat00026
Figure 112008076627426-pat00027
를 저장하고 있는 블록이 짝수 인덱스 블록인지 여부를 판단한다(S740).
이 때,
Figure 112008076627426-pat00028
Figure 112008076627426-pat00029
이 짝수 인덱스 블록에 저장되어 있는 경우, 본 발명의 일실시예에 따른 텍스쳐 맵핑을 위한 텍스쳐 데이터 읽기 방법은 짝수 인덱스 캐쉬 메모리로
Figure 112008076627426-pat00030
Figure 112008076627426-pat00031
에 대해 읽기 요청한다(S750).
또한,
Figure 112008076627426-pat00032
Figure 112008076627426-pat00033
이 홀수 인덱스 블록에 저장되어 있는 경우, 본 발명의 일실시예에 따른 텍스쳐 맵핑을 위한 텍스쳐 데이터 읽기 방법은 홀수 인덱스 캐쉬 메모리로
Figure 112008076627426-pat00034
Figure 112008076627426-pat00035
에 대해 읽기 요청한다(S760).
반대로,
Figure 112008076627426-pat00036
Figure 112008076627426-pat00037
이 동일한 블록에 저장되어 있지 않다면, 본 발명의 일실시예에 따른 텍스쳐 맵핑을 위한 텍스쳐 데이터 읽기 방법은
Figure 112008076627426-pat00038
가 짝수 인덱스 블록에 저장되어 있는지 여부를 판단한다(S770). 왜냐 하면,
Figure 112008076627426-pat00039
가 짝수 인덱스 블록에 저장되어 있다면,
Figure 112008076627426-pat00040
은 홀수 인덱스 블록에 저장되어 있고,
Figure 112008076627426-pat00041
가 홀수 인덱스 블록에 저장되어 있다면,
Figure 112008076627426-pat00042
는 짝수 인덱스 블록에 저장되어 있기 때문이다.
또한,
Figure 112008076627426-pat00043
가 짝수 인덱스 블록에 저장되어 있는 경우, 본 발명의 일실시예에 따른 텍스쳐 맵핑을 위한 텍스쳐 데이터 읽기 방법은 짝수 인덱스 캐쉬 메모리로
Figure 112008076627426-pat00044
에 대해 읽기 요청하고, 홀수 인덱스 캐쉬 메모리로
Figure 112008076627426-pat00045
에 대해 읽기 요청한다(S780). 이 때, 텍스쳐 데이터 읽기 방법은 짝수 인덱스 캐쉬 메모리 및 홀수 인덱스 캐쉬 메모리로 병렬적으로 읽기 요청함으로써, 처리 속도를 향상시킬 수 있다.
반대로, 본 발명의 일실시예에 따른 텍스쳐 맵핑을 위한 텍스쳐 데이터 읽기 방법은
Figure 112008076627426-pat00046
가 홀수 인덱스 블록에 저장되어 있는 경우, 짝수 인덱스 캐쉬 메모리로
Figure 112008076627426-pat00047
에 대해 읽기 요청하고, 홀수 인덱스 캐쉬 메모리로
Figure 112008076627426-pat00048
에 대해 읽기 요청한다(S790).
본 발명의 일실시예에 따른 텍스쳐 맵핑을 위한 텍스쳐 데이터 읽기 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
도 8은 본 발명의 일실시예에 따른 텍스쳐 맵핑을 위한 텍스쳐 데이터 읽기 장치를 나타낸 블록도이다.
도 8을 참조하면, 본 발명의 일실시예에 따른 텍스쳐 맵핑을 위한 텍스쳐 데이터 읽기 장치는 메인 메모리(810), 렌더링 장치(820), 홀수 인덱스 캐쉬 메모리(830) 및 짝수 인덱스 캐쉬 메모리(840)를 포함한다.
메인 메모리(810)는 적어도 하나의 텍스쳐 이미지를 구성하는 복수의 텍스쳐 데이터들을 저장한다. 그리고, 렌더링 장치(820)는 메인 메모리(810)에 저장된 복수의 텍스쳐 데이터들을 이용하여 텍스쳐 맵핑을 수행한다.
이 때, 렌더링 장치(820)에 의해 자주 호출되는 텍스쳐 데이터들은 홀수 인덱스 캐쉬 메모리(830) 및 짝수 인덱스 캐쉬 메모리(840)에 저장된다. 특히, 홀수 인덱스 캐쉬 메모리(830)는 홀수 인덱스 블록들에 대응하는 인덱스 주소들을 갖는 텍스쳐 데이터들을 저장하고, 짝수 인덱스 캐쉬 메모리(840)는 짝수 인덱스 블록들에 대응하는 인덱스 주소들을 갖는 텍스쳐 데이터들을 저장한다.
컨트롤러(821)는 요청된 텍스쳐 데이터들 중 적어도 두 개의 주소 인덱스들을 기초로 상기 홀수 인덱스 캐쉬 메모리(830) 또는 상기 짝수 인덱스 캐쉬 메모리(840)로 상기 요청된 텍스쳐 데이터들에 대한 읽기 요청을 생성한다.
특히, 상기 컨트롤러(821)는 상기 요청된 텍스쳐 데이터들 중 동일한 행(row) 인덱스를 갖는 적어도 두 개의 텍스쳐 데이터들에 대응하는 상기 적어도 두 개의 주소 인덱스들을 추출하고, 추출된 적어도 두 개의 주소 인덱스들을 이용하여 요청된 텍스쳐 데이터들의 저장 패턴을 판단한다.
예를 들어, 요청된 텍스쳐 데이터들은 상기 홀수 인덱스 캐쉬 메모리에 저장되어 있거나, 상기 짝수 인덱스 캐쉬 메모리에 저장되어 있거나 또는 상기 홀수 인 덱스 캐쉬 메모리 및 상기 짝수 인덱스 캐쉬 메모리에 분산하여(dispersedly) 저장되어 있으므로, 컨트롤러(821)는 추출된 적어도 두 개의 주소 인덱스들을 이용하여 요청된 텍스쳐 데이터들이 어디에 저장되어 있는지를 판단할 수 있다.
또한, 상기 컨트롤러(821)는 상기 요청된 텍스쳐 데이터들이 상기 홀수 인덱스 캐쉬 메모리에 저장되어 있는 경우 상기 홀수 인덱스 캐쉬 메모리에 대해 상기 읽기 요청을 생성하고, 상기 요청된 텍스쳐 데이터들이 상기 짝수 인덱스 캐쉬 메모리에 저장되어 있는 경우 상기 짝수 인덱스 캐쉬 메모리에 대해 상기 읽기 요청을 생성한다. 뿐만 아니라, 상기 컨트롤러(821)는 상기 요청된 텍스쳐 데이터들이 상기 짝수 인덱스 캐쉬 메모리에 분산하여(dispersedly) 저장되어 있는 경우 상기 홀수 인덱스 캐쉬 메모리 및 상기 짝수 인덱스 캐쉬 메모리에 대해 상기 읽기 요청을 생성한다.
이 때, 상기 홀수 인덱스 캐쉬 메모리(830) 또는 상기 짝수 인덱스 캐쉬 메모리(840)는 상기 읽기 요청에 응답하여 상기 요청된 텍스쳐 데이터들을 출력한다.
도 8에 도시된 텍스쳐 데이터 읽기 장치에는 도 1 내지 도 7을 통하여 설명된 내용이 적용될 수 있다. 따라서, 도 8에 도시된 텍스쳐 데이터 읽기 장치에 대한 상세한 설명은 이하에서 생략한다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되 며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
도 1은 렌더링(rendering)의 대상이 되는 3차원 객체의 일 예를 나타낸 도면이다.
도 2는 메인 메모리에 저장된 텍스쳐 이미지의 일예를 나타낸 도면이다.
도 3은 접근 요청된 텍스쳐 데이터들의 일예를 나타낸 도면이다.
도 4는 메인 메모리, 렌더링 장치 및 캐쉬 메모리를 포함하는 그래픽 처리 장치의 일예를 나타낸 블록도이다.
도 5는 텍스쳐 데이터들이 저장된 복수의 블록들을 포함하는 캐쉬 메모리의 일예를 나타낸 도면이다.
도 6은 본 발명의 일실시예에 따른 홀수 인덱스 캐쉬 메모리 및 짝수 인덱스 캐쉬 메모리를 나타낸 도면이다.
도 7은 본 발명의 일실시예에 따른 텍스쳐 맵핑을 위한 텍스쳐 데이터 읽기 방법을 나타낸 동작 흐름도이다.
도 8은 본 발명의 일실시예에 따른 텍스쳐 맵핑을 위한 텍스쳐 데이터 읽기 장치를 나타낸 블록도이다.

Claims (16)

  1. 홀수 인덱스를 갖는 복수의 홀수 인덱스 블록들을 포함하는 홀수 인덱스 캐쉬 메모리;
    짝수 인덱스를 갖는 복수의 짝수 인덱스 블록들을 포함하는 짝수 인덱스 캐쉬 메모리; 및
    요청된 텍스쳐 데이터들 중 적어도 두 개의 주소 인덱스들을 기초로 상기 홀수 인덱스 캐쉬 메모리 또는 상기 짝수 인덱스 캐쉬 메모리로 상기 요청된 텍스쳐 데이터들에 대한 읽기 요청을 생성하는 컨트롤러
    를 포함하되,
    상기 컨트롤러는
    상기 요청된 텍스쳐 데이터들 중 동일한 행(row) 인덱스를 갖는 적어도 두 개의 텍스쳐 데이터들에 대응하는 상기 적어도 두 개의 주소 인덱스들을 추출하는 것을 특징으로 하는 텍스쳐 맵핑을 위한 텍스쳐 데이터 읽기 장치.
  2. 제1항에 있어서,
    상기 요청된 텍스쳐 데이터들의 개수는 4개인 것을 특징으로 하는 텍스쳐 맵핑을 위한 텍스쳐 데이터 읽기 장치.
  3. 제1항에 있어서,
    상기 컨트롤러는
    상기 요청된 텍스쳐 데이터들이 갖는 주소 인덱스들을 분석하여 상기 요청된 텍스쳐 데이터들이 갖는 상기 주소 인덱스들 중 상기 적어도 두 개의 주소 인덱스 들을 추출하는 것을 특징으로 하는 텍스쳐 맵핑을 위한 텍스쳐 데이터 읽기 장치.
  4. 제1항에 있어서,
    상기 복수의 홀수 인덱스 블록들 및 상기 복수의 짝수 인덱스 블록들 각각은 2k(k는 자연수임)개의 텍스쳐 데이터들을 저장하는 것을 특징으로 하는 텍스쳐 맵핑을 위한 텍스쳐 데이터 읽기 장치.
  5. 삭제
  6. 제1항에 있어서,
    상기 컨트롤러는
    상기 적어도 두 개의 주소 인덱스들을 기초로 상기 요청된 텍스쳐 데이터들이 상기 홀수 인덱스 캐쉬 메모리에 저장되어 있는지 여부, 상기 짝수 인덱스 캐쉬 메모리에 저장되어 있는지 여부 또는 상기 홀수 인덱스 캐쉬 메모리 및 상기 짝수 인덱스 캐쉬 메모리에 분산하여(dispersedly) 저장되어 있는지 여부를 판단하고, 상기 판단 결과를 기초로 상기 읽기 요청을 생성하는 것을 특징으로 하는 텍스쳐 맵핑을 위한 텍스쳐 데이터 읽기 장치.
  7. 제6항에 있어서,
    상기 컨트롤러는
    상기 요청된 텍스쳐 데이터들이 상기 홀수 인덱스 캐쉬 메모리에 저장되어 있는 경우 상기 홀수 인덱스 캐쉬 메모리에 대해 상기 읽기 요청을 생성하고, 상기 요청된 텍스쳐 데이터들이 상기 짝수 인덱스 캐쉬 메모리에 저장되어 있는 경우 상기 짝수 인덱스 캐쉬 메모리에 대해 상기 읽기 요청을 생성하는 것을 특징으로 하는 텍스쳐 맵핑을 위한 텍스쳐 데이터 읽기 장치.
  8. 제6항에 있어서,
    상기 컨트롤러는
    상기 요청된 텍스쳐 데이터들이 상기 짝수 인덱스 캐쉬 메모리에 분산하여(dispersedly) 저장되어 있는 경우 상기 홀수 인덱스 캐쉬 메모리 및 상기 짝수 인덱스 캐쉬 메모리에 대해 상기 읽기 요청을 생성하는 것을 특징으로 하는 텍스쳐 맵핑을 위한 텍스쳐 데이터 읽기 장치.
  9. 제1항에 있어서,
    상기 홀수 인덱스 캐쉬 메모리 또는 상기 짝수 인덱스 캐쉬 메모리는 상기 읽기 요청에 응답하여 상기 요청된 텍스쳐 데이터들을 출력하는 것을 특징으로 하는 텍스쳐 맵핑을 위한 텍스쳐 데이터 읽기 장치.
  10. 홀수 인덱스 캐쉬 메모리에 포함된 복수의 홀수 인덱스 블록들 각각에 텍스쳐 데이터들을 저장하는 단계-상기 복수의 홀수 인덱스 블록들은 홀수 인덱스를 가짐-.;
    짝수 인덱스 캐쉬 메모리에 포함된 복수의 짝수 인덱스 블록들 각각에 텍스쳐 데이터들을 저장하는 단계-상기 복수의 짝수 인덱스 블록들은 짝수 인덱스를 가짐-.; 및
    요청된 텍스쳐 데이터들에 대응하는 주소 인덱스들을 기초로 상기 홀수 인덱스 캐쉬 메모리 또는 상기 짝수 인덱스 캐쉬 메모리로 상기 요청된 텍스쳐 데이터들에 대한 읽기 요청을 생성하는 단계
    를 포함하되,
    상기 요청된 텍스쳐 데이터들에 대한 읽기 요청을 생성하는 단계는
    상기 요청된 텍스쳐 데이터들 중 동일한 행(row) 인덱스를 갖는 적어도 두 개의 텍스쳐 데이터들에 대응하는 상기 적어도 두 개의 주소 인덱스들을 추출하는 단계
    를 포함하는 것을 특징으로 하는 텍스쳐 맵핑을 위한 텍스쳐 데이터 읽기 방법.
  11. 제10항에 있어서,
    상기 복수의 홀수 인덱스 블록들 및 상기 복수의 짝수 인덱스 블록들 각각은 2k(k는 자연수임)개의 텍스쳐 데이터들을 포함하는 것을 특징으로 하는 텍스쳐 맵핑을 위한 텍스쳐 데이터 읽기 방법.
  12. 삭제
  13. 제10항에 있어서,
    상기 요청된 텍스쳐 데이터들에 대한 읽기 요청을 생성하는 단계는
    상기 적어도 두 개의 주소 인덱스들을 기초로 상기 요청된 텍스쳐 데이터들이 상기 홀수 인덱스 캐쉬 메모리에 저장되어 있는지 여부, 상기 짝수 인덱스 캐쉬 메모리에 저장되어 있는지 여부 또는 상기 홀수 인덱스 캐쉬 메모리 및 상기 짝수 인덱스 캐쉬 메모리에 분산하여(dispersedly) 저장되어 있는지 여부를 판단하는 단계
    를 포함하는 것을 특징으로 하는 텍스쳐 맵핑을 위한 텍스쳐 데이터 읽기 방법.
  14. 제13항에 있어서,
    상기 요청된 텍스쳐 데이터들에 대한 읽기 요청을 생성하는 단계는
    상기 요청된 텍스쳐 데이터들이 상기 홀수 인덱스 캐쉬 메모리에 저장되어 있는 경우 상기 홀수 인덱스 캐쉬 메모리에 대해 상기 읽기 요청을 생성하거나, 상기 요청된 텍스쳐 데이터들이 상기 짝수 인덱스 캐쉬 메모리에 저장되어 있는 경우 상기 짝수 인덱스 캐쉬 메모리에 대해 상기 읽기 요청을 생성하는 단계인 것을 특징으로 하는 텍스쳐 맵핑을 위한 텍스쳐 데이터 읽기 방법.
  15. 제13항에 있어서,
    상기 요청된 텍스쳐 데이터들에 대한 읽기 요청을 생성하는 단계는
    상기 요청된 텍스쳐 데이터들이 상기 짝수 인덱스 캐쉬 메모리에 분산하여(dispersedly) 저장되어 있는 경우 상기 홀수 인덱스 캐쉬 메모리 및 상기 짝수 인덱스 캐쉬 메모리에 대해 상기 읽기 요청을 생성하는 단계인 것을 특징으로 하는 텍스쳐 맵핑을 위한 텍스쳐 데이터 읽기 방법.
  16. 제10항, 제11항, 제13항, 제14항, 제15항 중 어느 한 항의 방법을 수행하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체.
KR1020080109235A 2008-11-05 2008-11-05 텍스쳐 맵핑을 위한 텍스쳐 데이터 읽기 장치 및 방법 KR101536732B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020080109235A KR101536732B1 (ko) 2008-11-05 2008-11-05 텍스쳐 맵핑을 위한 텍스쳐 데이터 읽기 장치 및 방법
US12/385,413 US8605101B2 (en) 2008-11-05 2009-04-07 Apparatus and method of reading texture data for texture mapping

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080109235A KR101536732B1 (ko) 2008-11-05 2008-11-05 텍스쳐 맵핑을 위한 텍스쳐 데이터 읽기 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20100050107A KR20100050107A (ko) 2010-05-13
KR101536732B1 true KR101536732B1 (ko) 2015-07-23

Family

ID=42130823

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080109235A KR101536732B1 (ko) 2008-11-05 2008-11-05 텍스쳐 맵핑을 위한 텍스쳐 데이터 읽기 장치 및 방법

Country Status (2)

Country Link
US (1) US8605101B2 (ko)
KR (1) KR101536732B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6353438B1 (en) * 1999-02-03 2002-03-05 Artx Cache organization—direct mapped cache
US7061500B1 (en) * 1999-06-09 2006-06-13 3Dlabs Inc., Ltd. Direct-mapped texture caching with concise tags

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3777561B2 (ja) 1996-06-28 2006-05-24 株式会社ディジタルメディアプロフェッショナル テキスチャーマッピング回路
KR100204336B1 (ko) 1996-11-16 1999-06-15 윤종용 타일 맵을 이용한 텍스쳐 캐쉬 메모리
KR100285599B1 (ko) 1998-03-14 2001-04-02 전주범 격행 부호화에서의 움직임 추정을 위한 텍스쳐 패딩 장치 및그 패딩 방법
KR100283413B1 (ko) 1998-12-15 2001-04-02 김영환 텍스처 매핑시스템
KR20060119085A (ko) 2005-05-18 2006-11-24 삼성전자주식회사 텍스쳐 캐쉬 메모리 장치 및 이를 이용한 삼차원 그래픽가속기 및 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6353438B1 (en) * 1999-02-03 2002-03-05 Artx Cache organization—direct mapped cache
US7061500B1 (en) * 1999-06-09 2006-06-13 3Dlabs Inc., Ltd. Direct-mapped texture caching with concise tags

Also Published As

Publication number Publication date
US20100110091A1 (en) 2010-05-06
US8605101B2 (en) 2013-12-10
KR20100050107A (ko) 2010-05-13

Similar Documents

Publication Publication Date Title
US11132828B2 (en) Non-volatile storage for graphics hardware
Beyer et al. State‐of‐the‐art in GPU‐based large‐scale volume visualization
Akinci et al. Parallel surface reconstruction for particle‐based fluids
US9013479B2 (en) Apparatus and method for tile-based rendering
CN102096907B (zh) 图像处理技术
US7898551B2 (en) Systems and methods for performing a bank swizzle operation to reduce bank collisions
JP4280270B2 (ja) 幾何プリミティブのインデックスを外す方法、ラスタ化装置、コンピュータ可読媒体
US9256536B2 (en) Method and apparatus for providing shared caches
US7483035B2 (en) Texture cache control using a data dependent slot selection scheme
KR20090080547A (ko) 3차원 그래픽 회로를 위한 픽셀 캐시
CN101571946B (zh) 图像处理装置及图像处理方法
Steinberger et al. On‐the‐fly generation and rendering of infinite cities on the GPU
CN108492243B (zh) 一种基于块处理的图像旋转装置、系统和方法
US7348988B2 (en) Texture cache control using an adaptive missing data table in a multiple cache computer graphics environment
US20080117212A1 (en) Method, medium and system rendering 3-dimensional graphics using a multi-pipeline
Pajarola et al. Xsplat: External memory multiresolution point visualization
KR100868451B1 (ko) 3-d 주소 매핑을 이용한 메모리 접근 방법
TWI341976B (en) Systems and methods for performing a bank swizzle operation to reduce bank collisions
US20140244939A1 (en) Texture cache memory system of non-blocking for texture mapping pipeline and operation method of texture cache memory
KR101536732B1 (ko) 텍스쳐 맵핑을 위한 텍스쳐 데이터 읽기 장치 및 방법
KR100901284B1 (ko) 3d 모델 식별자를 이용한 랜더링 시스템 및 방법
KR102202575B1 (ko) 메모리 관리 방법 및 장치
KR20130142661A (ko) 시프트 알고리즘을 이용하여 대용량 소스 이미지의 특징점 정보를 추출하는 장치 및 방법
CN114168697A (zh) 一种瓦片数据发布方法及装置
CN101620743A (zh) 用隐藏面消除的图形处理

Legal Events

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

Payment date: 20180620

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190619

Year of fee payment: 5