KR100291628B1 - 3차원 그래픽 텍스쳐 맵핑용 캐쉬 메모리 및 그의 캐쉬 미스페널티 저감방법 - Google Patents

3차원 그래픽 텍스쳐 맵핑용 캐쉬 메모리 및 그의 캐쉬 미스페널티 저감방법 Download PDF

Info

Publication number
KR100291628B1
KR100291628B1 KR1019990023092A KR19990023092A KR100291628B1 KR 100291628 B1 KR100291628 B1 KR 100291628B1 KR 1019990023092 A KR1019990023092 A KR 1019990023092A KR 19990023092 A KR19990023092 A KR 19990023092A KR 100291628 B1 KR100291628 B1 KR 100291628B1
Authority
KR
South Korea
Prior art keywords
lod
texture
cache
subclip
hardware
Prior art date
Application number
KR1019990023092A
Other languages
English (en)
Other versions
KR20010002990A (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 KR1019990023092A priority Critical patent/KR100291628B1/ko
Priority to US09/596,775 priority patent/US6891546B1/en
Publication of KR20010002990A publication Critical patent/KR20010002990A/ko
Application granted granted Critical
Publication of KR100291628B1 publication Critical patent/KR100291628B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management

Abstract

본 발명은 PC용 고성능 3차원 그래픽 카드, 3차원 게임기 및 기타 소형 고성능 3차원 그래픽을 요구하는 분야에 적용 가능한 텍스쳐 맵핑용 캐쉬 메모리에 관한 것으로서, 특히 3차원 그래픽 시스템에서 트라이리니어 인터폴레이션(trilinear interpolation)을 이용하는 밉맵핑(mipmapping)에 의한 텍스쳐 맵핑 가속을 위하여, 적당한 크기의 워킹 셋만큼의 텍스쳐만을 저장하며, 한 클럭 사이클만에 트라이리니어 인터폴레이션을 수행하기 위하여 필요한 8개의 텍셀을 모두 엑세스하여 최종 텍셀의 값을 구해 낼 수 있는 특수한 구조를 갖는 캐쉬 메모리와 앞으로 필요하게 될 텍스쳐들을 하드웨어적으로 예측하여 프리페칭(hardware-predicted prefetching) 하므로써 캐쉬 미스(cache miss) 시에 발생하는 페널티(penalty)를 줄일 수 있는 캐쉬 미스 페널티 저감방법에 관한 것이다. 본 발명의 캐쉬 메모리 및 캐쉬 미스 페널티 저감방법은 기존의 하드웨어적인 텍스쳐 맵핑 가속화 방법보다 다양한 크기의 텍스쳐 이미지들에 대해서 효율적으로 적용이 가능하면서, 소형 저가의 시스템에서도 하드웨어적인 텍스쳐 맵핑 가속을 가능하게 한다.

Description

3차원 그래픽 텍스쳐 맵핑용 캐쉬 메모리 및 그의 캐쉬 미스 페널티 저감방법{Cache memory for 3D graphic texture and its cache miss penalty reducing method}
본 발명은 PC용 고성능 3차원 그래픽 카드, 3차원 게임기 및 기타 소형 고성능 3차원 그래픽을 요구하는 분야에 적용 가능한 텍스쳐 맵핑용 캐쉬 메모리에 관한 것으로서, 상세하게는 트라이리니어 인터폴레이션을 이용한 밉맵핑에 의하여 텍스쳐 맵핑을 가속화시킬 수 있는 3차원 그래픽 텍스쳐 맵핑용 캐쉬 메모리 및 앞으로 필요하게 될 텍스쳐들을 하드웨어적으로 예측하여 프리페칭(hardware- predicted prefetching)하므로써 캐쉬 미스 시에 발생하는 페널티를 줄일 수 있는 캐쉬 미스 페널티 저감방법에 관한 것이다.
3차원 그래픽 시스템에서 보다 현실감 있는 장면을 얻기 위한 방법으로 텍스쳐 맵핑(texture mapping) 기술이 주로 이용된다. 텍스쳐 맵핑이란, 3차원 물체의 표면에 질감을 주기 위해서 실제 카메라로부터 촬영된 2차원 이미지를 물체 표면에 입히는 것을 말하며, 텍스쳐(texture)란 이러한 2차원 이미지를 말하고, 텍스쳐 내의 각 점들은 스크린 상의 픽셀(pixel)에 대비해서 텍셀(texel)이라 부른다.
그러나, 이 기술을 적용함에 있어서, 계산량을 줄이기 위하여 2차원 이미지, 즉 텍스쳐를 3차원 물체의 표면 위에 입힌 후, 2차원의 스크린 위로 투영시키는 것이 아니고(스크린에 보이지 않는 부분까지 2차원 텍스쳐를 입히는 계산을 해야 하므로), 일반적으로 2차원 스크린에 투영된 이미지의 각 픽셀로부터 이들의 3차원 공간상의 물체 표면의 좌표를 구한 후, 이에 해당하는 2차원 텍스쳐 좌표를 계산해서 해당되는 텍셀을 찾아서 스크린 상의 픽셀의 색을 정하게 된다.
이러한 텍스쳐 맵핑 기술은 스크린 상에 표시되는 한 픽셀에 맵핑 되는 텍스쳐 공간상의 영역이 정확히 한 텍셀 영역으로 맵핑 되지 않기 때문에 화면상의 에이리어징 현상을 일으키게 된다.
밉매핑(mipmapping)의 개념을 나타낸 도 1을 예로 들면, 도 1의 우측의 2차원 스크린 상으로 투영된 도로와 같은 경우, 도로의 a나 b 영역에 해당하는 관측자에 가까운 픽셀들은 텍스쳐 공간상에 하나의 텍셀로 맵핑 된다고 가정하면, c나 d와 같이 관측자로부터 먼 영역의 픽셀은 텍스쳐 공간상에서 여러 개의 텍셀 영역으로 맵핑 되므로, 이 때 여러 개의 텍셀 값을 대표할 수 있는 텍스쳐 값을 가져와서 스크린상의 한 픽셀 값으로 맵핑 식혀 주지 않으면 영상이 찌그러지는 결과를 가져오게 된다.
이러한 여러 개의 텍셀들의 대표되는 값을 구하는 쉬운 방법으로, 텍스쳐 공간으로 맵핑된 영역 내의 모든 텍셀 값의 평균을 구해서 이용하는 방법이 많이 사용되고 있으며, 이를 텍스쳐 필터링(texture filtering)이라고 한다.
상술한 텍스쳐 필터링은 많은 시간을 요구하므로, 이를 좀 더 빠르게 하기 위한 방법으로 많이 사용되는 방법이 밉맵핑에 의한 방법이다.
밉맵핑은 도 1의 왼쪽에서와 같이 원래 텍스쳐 이미지(도면상에서 LOD 0에서의 이미지가 원래 텍스쳐 이미지다. LOD(Level Of Detail)란 화면상의 한 픽셀이 텍스쳐 공간상의 몇 개의 텍셀 영역을 커버하는지를 나타내는 값이다.)를 미리 필터링 및 서브샘플링(subsampling)해서 여러 LOD 레벨의 텍스쳐들(mipmap)을 만들어 두고, 현재 화면상에 뿌려지는 픽셀이 텍스쳐 공간으로 맵핑될 때 계산되어지는 LOD 및 (u, v) 좌표 값에 의해서 밉맵핑상에서 적절한 LOD 레벨들로부터 필요로 하는 텍셀을 가져와서 화면상에 뿌리는 방식이다.
여기서, 텍스쳐 공간으로 맵핑된 LOD 및 (u, v) 값은 소수점 이하의 값을 가지고(스크린 상의 정수치인 (x, y) 좌표가 변환 매트릭스(transform matrix)를 거쳐서 나온 값이므로 소수점 이하의 값을 가지게 된다), 현재 밉맵상에 존재하는 값들은 LOD 및 (u, v)가 정수인 위치에서의 값들이다. 그러므로 스크린 상에서 현재 그리고자하는 픽셀이 텍스쳐 공간으로 맵핑된 정확한 LOD 및 (u, v) 위치에서의 텍스쳐 값은 현실적으로 존재하지 않는다. 그러나 밉맵 상에서 이 값과 가장 가까운 정수치 위치에서의 값들을 읽고 이들을 정확한 위치에서의 거리 차와의 관계를 이용해서 보간하게 된다.
예를 들어, 도 2에서와 같이 LOD=0.6, u=23.25, v=30.50으로 맵핑된 픽셀에 대한 텍셀 값을 구하는 방법은 아래와 같다.
1) LOD가 0.6 이므로, 먼저 LOD 0에서 u=23.25, v=30.50에 가장 가까운 정수 좌표 위치((23, 30),(23, 31),(24, 30),(24, 31))에 있는 텍셀 값들을 읽어서 실제 정확한 좌표 위치와 이들과의 거리 관계를 이용해서 LOD 0에서의 대표되는 값을 구한다.
2) LOD 1에서 대표되는 값을 구하기 위해서 u=23.25/2=11.62, v=30.50/2=15.25 에서 가장 가까운 정수 위치((11, 15), (11, 16), (12, 15), (12, 16))에서의 텍셀 값들을 읽어서 실제 정확한 좌표 위치와 이들과의 거리 관계를 이용해서 LOD 1에서 대표되는 값을 구한다.
3) LOD 0과 LOD 1에서 대표되는 두 값을 실제 정확한 LOD 값(0.6) 과의 차이를 이용해서 도 2와 같이 최종적인 대표 텍셀 값을 구하게 된다.
이와 같이 밉맵핑 방식은 빠른 텍스쳐 맵핑을 위해서 미리 여러 LOD 레벨의 텍스쳐들을 만들어 두고, 프로그램 수행시에 대표되는 텍셀의 값을 구하기 위해 8개의 텍셀을 읽고, 인터폴레이션(이러한 인터폴레이션 방식을 트라이리니어 인터폴레이션이라 한다)을 행한 후 이를 대표 값으로 이용하게 된다.
이는 정확한 필터링에 의한 방법보다는 훨씬 빠른 방법이지만, 여전히 실시간 3 차원 그래픽에서 밉맵핑을 위해 8개의 텍셀을 메모리로부터 순차적으로 읽는데 걸리는 시간은 큰 문제점이 되고 있다.
따라서, 이러한 문제점을 해결하기 위한 고속 텍스쳐 맵핑을 위한 방법으로 도 3에서와 같이 두 개의 LOD 레벨의 텍셀들을 저장할 수 있는 메모리 뱅크(memory bank)를 각기 따로 준비하고, 각 메모리 뱅크 내에 저장된 텍셀들과 텍스쳐 공간상의 텍셀의 위치가 도 4(각 텍셀영역 내의 숫자는 저장되는 메모리 뱅크를 표시한다)와 같이 맵핑 되게 저장함으로써 동시에 8개의 텍셀을 엑세스해서 트라이리니어 인터폴레이터로 넘기고 이들을 한 클럭사이클 만에 인터폴레이션해서 대표되는 텍셀 값을 구할 수 있는 구조가 제안되었다.
그러나 실제 3 차원 그래픽 시스템의 응용에서는 다양한 크기의 텍스쳐 이미지들이 이용되고 있으므로, 도 3과 같은 텍스램(texram) 구조가 그대로 적용되기 위해서는 앞으로 사용되어질 텍스쳐 이미지 보다 충분히 큰 메모리가 준비되어 있지 않으면 안되고, 매 픽셀을 그릴 때마다 LOD 값이 크게 변화하는 경우는 메모리 속의 내용을 계속해서 변경하기 위해 많은 시간이 소모되게 된다. 이는 곧 비효율적인 메모리 사용 및 가격상승의 요인이 되므로 도 3과 같은 구조는 현실적으로 구현해서 사용하기에는 문제가 있다.
또 하나의 통용되는 개념으로는 도 5와 같이 밉맵 상에서 LOD 레벨이 낮아질수록 텍스쳐 이미지 저장을 위한 공간이 기하급수적으로 늘어나게 되므로, 상위 수 개의 LOD 레벨의 텍스쳐들만 현재 시스템 메모리 위로 전부 올리고(clipmap pyramid), 나머지 LOD 레벨의 값들은 현재 화면상에 그려지는 부분만을 올려두고(clipmap stack) 필요에 따라서 다른 부분들은 전체 밉맵을 저장하고 있는 하드디스크로부터 가져와서 이용함으로써, 대형의 텍스쳐 이미지를 이용해서 텍스쳐 맵핑을 할 때 시스템 메모리 용량을 크게 줄여 줄 수 있는 방법이 제안되었으며, 이를 클립맵(clipmap)이라 한다.
그러나 이 클립맵 방법은 하드디스크와 시스템 메모리간에 적용되고 있으며, 모든 동작이 소프트웨어적으로 이루어지므로 시스템 메모리의 용량을 줄이는 것이 주목적이지 텍스쳐 맵핑을 가속하기 위한 방법은 아니다.
상술한 바와 같은 종래 기술의 문제점을 해결하기 위한 본 발명의 목적은 클립맵의 개념을 시스템 메모리와 텍스쳐 맵핑용 캐쉬 메모리와의 관계에 적용시키면서 하드웨어적으로 밉맵핑을 가속화시킬 수 있는 캐쉬 메모리 및 캐쉬 미스 시 발생하는 페널티를 줄일 수 있는 캐쉬 미스 페널티 저감방법을 제공하는데 있다.
도 1은 밉매핑(mipmapping)의 개념도
도 2는 트라이리니어 인터폴레이션(trilinear interpolation)의 예제도
도 3은 텍스램(texram)의 구조도
도 4는 텍스램에서의 텍셀(texel) 배치도
도 5는 클립맵(clipmap)의 개념도
도 6은 본 발명의 일 실시예에 따른 텍스쳐 맵핑용 캐쉬 메모리의 개념도
도 7은 본 발명의 일 실시예에 따른 텍스쳐 맵핑용 캐쉬 메모리의 구조도
도 8은 텍스쳐 서브클립(subclip)의 예측 및 교체 과정을 나타낸 도
도 9는 텍스쳐 스택층(texture stack layer)의 예측 및 교체 과정을 나타낸 도
* 도면의 주요부분에 대한 부호의 설명 *
10 : 제1 DRAM 뱅크 20 : 제2 DRAM 뱅크
21 : CAM(Content Addressable Memory)
30 : 서브클립 로더 40 : 트라이리니어 인터폴레이터
50 : 서브클립 예측기 60 : 제어기
상술한 목적을 달성하기 위한 본 발명의 기술적 사상은 트라이리니어 인터폴레이션을 이용한 밉맵핑 가속을 위하여 적당한 크기의 워킹 셋(working set) 만큼의 텍스쳐만을 저장하는 캐쉬 메모리를 만들고, 한 클럭 사이클만에 트라이리니어 인터폴레이션을 위해서 필요한 8개의 텍셀을 모두 엑세스해서 최종 텍셀의 값을 구해 낼 수 있는 특수한 구조를 갖는 캐쉬를 구성함으로써 다양한 크기의 텍스쳐 이미지들에 대해서 효율적으로 적용이 가능하면서 소형, 저가의 시스템에서도 텍스쳐 맵핑 가속이 가능하도록 하는 것이다.
또한 캐쉬 미스(cache miss) 발생 시에 발생하는 페널티(penalty)를 줄이기 위해서 앞으로 필요하게 될 텍스쳐들을 하드웨어적으로 예측해서 프리페칭(prefetching)함으로써 캐쉬 미스 시 발생하는 페널티를 줄이는 것이다.
이하, 본 발명의 바람직한 실시예에 대하여 첨부도면을 참조하여 상세하게 설명한다.
본 발명의 텍스쳐 맵핍용 캐쉬 메모리의 개념은 도 6에 나타낸 바와 같이 밉맵 상의 최상위 수개(예를 들어, 5개) LOD 레벨의 텍셀들을 모두 저장하는 클립램 피라미드와 나머지 LOD 레벨 중에서 현재 필요로 하는 워킹 셋 만을 저장하는 클립램 스택으로 구성된다.
클립램 스택은 4개의 LOD 레벨에서의 워킹 셋을 동시에 저장할 수 있으며, 각 LOD 레벨은 16개(4*4)의 서브클립으로 이루어진다. 이 서브클립들은 캐쉬 미스 발생시 뿐만 아니라, 미리 필요한 서브클립을 예측하는 서브클립 예측기(subclip predictor)에 의해서 정상 동작중에도 전체 밉맵을 저장하고 있는 외부 메모리로부터 내용 교체가 가능한 하드웨어적인 예측에 의한 프리페칭이 가능하며, 이로써 캐쉬 미스 페널티를 줄이게 된다.
상술한 개념의 텍스쳐 맵핑용 캐쉬 메모리(클립램)의 구조는 도 7에 나타낸 바와 같다.
즉, 최상위 수개(예를 들어, 5개)의 LOD 레벨에 대한 텍셀들을 모두 저장하는 클립램 피라미드를 형성하는 제1 DRAM 뱅크(10)와, 나머지 LOD 레벨에서 현재 필요로 하는 워킹 셋만을 저장하는 클립램 스택을 형성하는 제2 DRAM 뱅크(20)와, 상기 제1, 2 DRAM 뱅크(10)(20)들은 트라이리니어 인터폴레이션을 위한 텍스쳐 읽기와 동시에 외부로부터 새로운 텍스쳐 서브클립을 가져오기 위한 SAM(Serial Access Memory) 포트를 구비하며, 상기 제1, 2 DRAM 뱅크(10)(20)의 SAM 포트에 연결되며 외부 메모리로부터 새로운 텍스쳐 서브클립을 가져오는 서브클립 로더(30)와, 밉맵상의 2개 층에서 각각 4개의 텍셀을 가져와 트라이리니어 인터폴레이션을 수행하는 트라이리니어 인터폴레이터(40) 및 캐쉬 미스시의 페널티를 줄이기 위하여 하드웨어적인 예측에 의하여 서브클립을 프리페칭 하는 서브클립 예측기(50)와, 상술한 텍스쳐 맵핑용 캐쉬 메모리 구성부 전체를 제어하는 제어기(60) 및 현재 스크린에 그려질 픽셀의 텍스쳐 공간상으로 맵핑된 LOD 및 (u, v) 좌표가 제어기(60)에 입력되면, 이 LOD 및 (u, v) 좌표를 중심으로 정수 좌표 위치에 존재하는 8개의 텍셀이 제1, 2 DRAM 뱅크(10)(20)에 존재하는지를 체크하는 CAM(Content Addressable Memory : 21)로 구성된다.
상술한 구성을 갖는 텍스쳐 맵핑용 캐쉬 메모리의 기본 동작에 대하여 설명한다.
먼저, 클립램 피라미드를 위한 제1 DRAM 뱅크(10) 상에는 현재 텍스쳐를 위한 최상위 수개 LOD의 모든 텍셀들이 다 존재하므로 실행 중에 내용의 변경이 필요 없다. 그러나 클립램 스택을 위한 제2 DRAM 뱅크(20) 상에는 현재 필요로 하는 워킹 셋만을 저장하고 있으므로 실행 중에 계속해서 내용의 변경이 필요하다. 현재 스크린에 그려질 픽셀의 텍스쳐 공간상으로 맵핑된 LOD 및 (u, v) 좌표가 제어기(60)에 입력되면, 이 LOD 및 (u, v) 좌표를 중심으로 정수 좌표 위치에 존재하는 8개의 텍셀이 존재하는지를 CAM(Content Addressable Memory : 21)을 이용해서 제1, 2 DRAM 뱅크(10)(20)를 체크하고 존재하면 8개의 텍셀을 동시에 읽어서 트라이리니어 인터폴레이터(40)에서 트라이리니어 인터폴레이션을 행한다.
만일, 8개의 텍셀이 모두 존재하지 않으면 캐쉬 미스가 발생되고, 이 때 제어기(60)는 서브클립 로더(30)로 하여금 필요로 하는 텍셀들이 들어 있는 서브클립을 외부메모리로부터 가져오게 하고, 트라이리니어 인터폴레이터(40)는 이들을 읽어서 트라이리니어 인터폴레이션을 행하게 된다.
캐쉬 미스시의 페널티를 줄이기 위하여 본 발명의 텍스쳐 맵핑용 캐쉬 메모리는 서브클립 예측기(50)를 가지고 있으며, 이는 앞으로 곧 필요할 서브클립을 예측해서 정상적인 텍스쳐 캐쉬동작 중에 현재 엑세스되고 있는 서브클립과 충돌이 일어나지 않는 새로운 서브클립을 외부로부터 로드할 수 있다.
본 발명의 일 실시예에 따른 텍스쳐 맵핑용 캐쉬 메모리의 서브클립 예측 기능을 보다 상세하게 설명하면, 텍스쳐 맵핑용 캐쉬 메모리의 내용은 서브클립 단위로 하드웨어적인 예측에 의한 프리페칭이 가능하며, 하드웨어적으로 필요한 서브클립의 예측은 한 스택층 내에서의 서브클립 예측과 스택층 예측, 두 가지로 이루어진다.
먼저, 한 스택층 내에서의 서브클립 예측에 대하여 설명한다.
도 8은 한 스택층 내에서 곧 필요하게 될 서브클립의 예측 및 교체 과정을 나타낸 것으로서, 좌측 상단 그림은 3차원 공간상의 도로가 2차원 스크린 위로 투영된 것을 보여주고 있다. 일반적으로 3차원 공간상의 물체는 도면과 같이 작은 삼각형들로 모델링 되어지고, 이러한 삼각형들을 저장하는 데이터 파일은 연속된 삼각형들의 집합이다. 그러므로 도 8에서와 같이 도로가 화면상에 그려질 때에는 연속된 삼각형들 영역이 화살표 방향으로 차례대로 그려진다.
도 8 좌측 하단의 그림은 도로 위에 입혀 질 텍스쳐 이미지로서 4개의 꼭지점 a, b, c, d가 좌측 상단 그림의 도로 위 네 꼭지점 a, b, c, d로 맵핑 되어진다. 그러므로 스크린 상에 연속된 삼각형들이 화살표 방향으로 차례대로 그려지면, 그에 필요한 텍스쳐 이미지의 엑세스 패턴도 도 8 좌측 하단의 화살표 방향으로 엑세스되어지는 특성을 가지고 있다.
이러한 특성을 이용해서, 도 8 우측 그림은 특정 스택층 위에 있는 서브클립들이 예측 및 교체되는 것을 보여 주고 있다. 먼저 진하게 칠해진 4*4 서브클립 들(커런트 클립)이 현재 클립램 스택 상에 있는 서브클립들을 나타낸다. (u, v) 트레이스는 텍셀들이 시간에 따라 엑세스되는 패턴의 한 예를 나타내고 있다. 도면에서 내부 2*2 서브클립 경계는 하드웨어적인 예측 한계로서 (u,v) 트레이스가 이 한계를 넘어가게 되면, 지금 당장은 캐쉬 미스가 나지 않았지만 나중에 일어날 캐쉬 미스 시 페널티를 줄여 주기 위해서 곧 필요로 할 서브클립들을 프리페칭 하게 된다. 현재 도면은 (u, v) 트레이스가 우측에 있는 예측 한계를 넘어가는 경우로서 우측에 있는 연하게 칠해진 4개의 서브클립들을 4*4 서브클립들의 좌측 4개의 서브클립이 들어 있는 영역으로 프리페칭 하게 된다. 이로써, 텍스쳐 엑세스 패턴을 이용한 하드웨어적으로 예측된 프리페칭이 가능하며 최상의 경우 캐쉬 미스 없이 언제나 필요한 서브클립들을 미리 텍스쳐 맵핑용 캐쉬 메모리 속에 존재하게 할 수도 있다.
도 9는 LOD 변화에 따른 필요한 스택층의 예측 및 교체 과정을 나타낸 것으로서, 좌측 상하의 그림은 도 8과 마찬가지이다. 도면에 나타난 것처럼 화살표 방향으로 연속된 삼각형이 그려질 때 LOD의 변화 역시 미소한 변화는 있지만 전체적으로 볼 때 연속적으로 증가하게 된다. 도 9 우측의 그림은 이렇게 연속적으로 증가하는 LOD 트레이스를 보여주고 있다. 커런트 클립램 스택은 현재 클립램 스택 속에 저장된 LOD 레벨을 나타내고 있으며, 내부의 두 개 LOD 레벨이 스택층 예측 한계로 이용된다. 이 예의 경우 LOD 트레이스가 LOD i+2를 넘어서는 순간 LOD i+4에 해당하는 스택층을 LOD i를 저장하고 있던 영역에 로딩함으로써 스택층도 서브클립과 마찬가지로 하드웨어적으로 예측된 프리페칭을 하게 된다.
상술한 바와 같은 본 발명의 3차원 그래픽 텍스쳐 맵핍용 캐쉬 메모리는 다양한 크기의 텍스쳐 이미지들에 대해서도 트라이리니어 인터폴레이션에 의한 밉맵핑의 하드웨어적인 가속화를 현실적으로 가능하게 하며, 소형·저가의 3차원 그래픽 시스템에 대해서도 적용 가능함으로써 보다 현실감 있고 빠른 3차원 그래픽을 가능하도록 한다.
본 발명은 특정의 실시예와 관련하여 도시 및 설명하였지만, 특허청구범위에 의해 나타난 발명의 사상 및 영역으로부터 벗어나지 않는 한도 내에서 다양한 개조 및 변화가 가능하다는 것을 당업계에서 통상의 지식을 가진 자라면 누구나 쉽게 알 수 있을 것이다.

Claims (6)

  1. 트라이리니어 인터폴레이션을 위한 텍스쳐 읽기와 동시에 외부로부터 새로운 텍스쳐 서브클립을 가져오기 위한 SAM 포트를 구비한 제1, 2 DRAM 뱅크(10)(20)와;
    상기 제1, 2 DRAM 뱅크(10)(20)의 SAM 포트에 연결되며 외부 메모리로부터 새로운 텍스쳐 서브클립을 가져오는 서브클립 로더(30)와;
    밉맵상의 2개 층에서 각각 4개의 텍셀을 가져와 트라이리니어 인터폴레이션을 수행하는 트라이리니어 인터폴레이터(40)와;
    상기 구성부 전체를 제어하는 제어기(60); 및
    현재 스크린에 그려질 픽셀의 텍스쳐 공간상으로 맵핑된 LOD 및 (u, v) 좌표가 제어기(60)에 입력되면, 이 LOD 및 (u, v) 좌표를 중심으로 정수 좌표 위치에 존재하는 8개의 텍셀이 제1, 2 DRAM 뱅크(10)(20)에 존재하는지를 체크하는 CAM(21)을 포함하는 것을 특징으로 하는 3차원 그래픽 텍스쳐 맵핑용 캐쉬 메모리.
  2. 제1항에 있어서,
    상기 제1 DRAM 뱅크(10)는 전체 밉맵 중 수개의 최상위 LOD 레벨의 텍셀 모두를 저장하는 클립램 피라미드를 형성하고, 상기 제2 DRAM 뱅크(20)는 상기 제1 DRAM 뱅크(10)에 저장되지 않은 나머지 LOD 레벨에서 현재 필요로 하는 워킹 셋만을 저장하는 클립램 스택을 형성하는 것을 특징으로 하는 3차원 그래픽 텍스쳐 맵핑용 캐쉬 메모리.
  3. 제1항에 있어서,
    상기 제2 DRAM 뱅크(20)는 밉맵상의 한 LOD 레벨 위에서의 텍스쳐 영역을 n*n 서브클립들로 나누고, 이들을 단위로 캐쉬 메모리의 내용을 교체하는 것을 특징으로 하는 3차원 그래픽 텍스쳐 맵핑용 캐쉬 메모리.
  4. 제1항에 있어서,
    한 클럭 사이클만에 트라이리니어 인터폴레이션을 수행할 수 있도록 현재 스크린에 그려질 픽셀의 텍스쳐 공간상으로 맵핑된 LOD 및 (u, v) 좌표를 중심으로 정수 좌표 위치에 존재하는 8개의 텍셀 엑세스를 위한 데이터 패스를 상기 제1, 2 DRAM 뱅크(10)(20)와 트라이리니어 인터폴레이터(40) 사이에 구비하는 것을 특징으로 하는 3차원 그래픽 텍스쳐 맵핑용 캐쉬 메모리.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    캐쉬 미스시의 페널티를 줄이기 위하여 앞으로 곧 필요할 서브클립을 하드웨어적인 예측에 의하여 프리페칭 하는 서브클립 예측기(50)를 더 포함하는 것을 특징으로 하는 3차원 그래픽 텍스쳐 맵핑용 캐쉬 메모리.
  6. 커런트 클립램 스택상에 있는 서브클립(4*4) 내부의 2*2 서브클립 경계를 하드웨어적인 서브클립 예측 한계로 하여, (u, v) 트레이스가 이 한계를 넘어가게 되면 한계를 넘어가는 방향(좌·우·상·하)의 서브클립을 프리페칭 하는 한 스택층 내에서의 서브클립 예측과;
    커런트 클립램 스택은 현재 클립램 스택 속에 저장된 LOD 레벨(LOD i ∼ LOD i+3)을 나타내며 내부의 두 개 LOD 레벨을 스택층 예측 한계로 이용하여, LOD 트레이스가 한계를 넘어가는 순간 다음 LOD 레벨에 해당하는 스택층을 프리페칭 하는 스택층 예측을 수행함으로써 캐쉬 미스 시에 발생하는 페널티를 줄이는 것을 특징으로 하는 캐쉬 미스 페널티 저감방법.
KR1019990023092A 1999-06-19 1999-06-19 3차원 그래픽 텍스쳐 맵핑용 캐쉬 메모리 및 그의 캐쉬 미스페널티 저감방법 KR100291628B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1019990023092A KR100291628B1 (ko) 1999-06-19 1999-06-19 3차원 그래픽 텍스쳐 맵핑용 캐쉬 메모리 및 그의 캐쉬 미스페널티 저감방법
US09/596,775 US6891546B1 (en) 1999-06-19 2000-06-19 Cache memory for texture mapping process in three-dimensional graphics and method for reducing penalty due to cache miss

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019990023092A KR100291628B1 (ko) 1999-06-19 1999-06-19 3차원 그래픽 텍스쳐 맵핑용 캐쉬 메모리 및 그의 캐쉬 미스페널티 저감방법

Publications (2)

Publication Number Publication Date
KR20010002990A KR20010002990A (ko) 2001-01-15
KR100291628B1 true KR100291628B1 (ko) 2001-05-15

Family

ID=19593604

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990023092A KR100291628B1 (ko) 1999-06-19 1999-06-19 3차원 그래픽 텍스쳐 맵핑용 캐쉬 메모리 및 그의 캐쉬 미스페널티 저감방법

Country Status (2)

Country Link
US (1) US6891546B1 (ko)
KR (1) KR100291628B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9256536B2 (en) 2012-06-26 2016-02-09 Samsung Electronics Co., Ltd. Method and apparatus for providing shared caches
US10008023B2 (en) 2015-10-13 2018-06-26 Samsung Electronics Co., Ltd. Method and device for texture filtering

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7295212B2 (en) * 2002-04-30 2007-11-13 Silicon Graphics, Inc. Method, system, and computer program product for blending textures in a texture paging scheme
US7564455B2 (en) * 2002-09-26 2009-07-21 The United States Of America As Represented By The Secretary Of The Navy Global visualization process for personal computer platforms (GVP+)
JP4239096B2 (ja) * 2004-08-24 2009-03-18 ソニー株式会社 情報処理装置および方法、並びにプログラム
KR100703709B1 (ko) 2005-06-02 2007-04-06 삼성전자주식회사 그래픽스 처리장치와 처리방법, 및 그 기록 매체
US7456881B2 (en) * 2006-01-12 2008-11-25 Aptina Imaging Corporation Method and apparatus for producing Bayer color mosaic interpolation for imagers
KR101228109B1 (ko) 2006-07-24 2013-01-31 삼성전자주식회사 움직임 예측장치 및 방법과 이를 채용하는 영상 부호화장치및 방법
US9630104B2 (en) * 2006-10-23 2017-04-25 Konrad V. Sherinian Systems, methods, and apparatus for transmitting virtual world content from a server system to a client
US7934058B2 (en) * 2006-12-14 2011-04-26 Microsoft Corporation Predictive caching of assets to improve level load time on a game console
US20080218527A1 (en) * 2007-03-09 2008-09-11 Romanick Ian D Method and Apparatus for Improving Hit Rates of a Cache Memory for Storing Texture Data During Graphics Rendering
KR101439848B1 (ko) 2008-01-08 2014-09-17 삼성전자주식회사 움직임 보상 방법 및 장치
KR101508388B1 (ko) * 2008-12-15 2015-04-06 엘지전자 주식회사 밉맵 생성 장치 및 방법
EP2209092A1 (en) 2009-01-16 2010-07-21 Luciad Method for unified visualisation of heterogeneous datasets
EP2636025B1 (en) * 2010-11-05 2019-12-18 Koninklijke Philips N.V. Image content based prediction and image cache controler
US9239793B2 (en) * 2011-12-13 2016-01-19 Ati Technologies Ulc Mechanism for using a GPU controller for preloading caches
TWI528328B (zh) * 2012-04-20 2016-04-01 財團法人資訊工業策進會 依據貼圖影像內容決定選擇細節層次之三維貼圖處理方法、裝置以及儲存其之電腦可讀取記錄媒體
EP3183653A4 (en) * 2014-08-20 2018-07-04 Landmark Graphics Corporation Optimizing computer hardware resource utilization when processing variable precision data
EP3016075A1 (en) 2014-11-03 2016-05-04 Graphine NV Prediction system for texture streaming
CN105303773B (zh) * 2015-11-03 2018-01-12 国网山东济南市历城区供电公司 电力调控值班员配备使用的耳挂装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4837722A (en) * 1986-05-14 1989-06-06 Massachusetts Institute Of Technology Digital high speed 3-dimensional interpolation machine
DE69222754T2 (de) * 1992-03-27 1998-02-26 Alsthom Cge Alcatel Videodekoder
US5760783A (en) * 1995-11-06 1998-06-02 Silicon Graphics, Inc. Method and system for providing texture using a selected portion of a texture map
US6236405B1 (en) * 1996-07-01 2001-05-22 S3 Graphics Co., Ltd. System and method for mapping textures onto surfaces of computer-generated objects
KR100221028B1 (ko) * 1996-07-23 1999-09-15 윤종용 그래픽 가속기 및 이를 이용한 메모리 프리패치 방법
US5946003A (en) * 1997-06-02 1999-08-31 Hewlett Packard Co Method and apparatus for increasing object read-back performance in a rasterizer machine

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9256536B2 (en) 2012-06-26 2016-02-09 Samsung Electronics Co., Ltd. Method and apparatus for providing shared caches
US10008023B2 (en) 2015-10-13 2018-06-26 Samsung Electronics Co., Ltd. Method and device for texture filtering

Also Published As

Publication number Publication date
KR20010002990A (ko) 2001-01-15
US6891546B1 (en) 2005-05-10

Similar Documents

Publication Publication Date Title
KR100291628B1 (ko) 3차원 그래픽 텍스쳐 맵핑용 캐쉬 메모리 및 그의 캐쉬 미스페널티 저감방법
US5949428A (en) Method and apparatus for resolving pixel data in a graphics rendering system
US6002407A (en) Cache memory and method for use in generating computer graphics texture
US7164426B1 (en) Method and apparatus for generating texture
US5841439A (en) Updating graphical objects based on object validity periods
US5990904A (en) Method and system for merging pixel fragments in a graphics rendering system
JP4540753B2 (ja) グラフィックオブジェクトを画像チャンクにレンダリングして、画像層を表示画像に組み合わせる方法及びシステム
US6005582A (en) Method and system for texture mapping images with anisotropic filtering
US5544292A (en) Display apparatus having a display processor for storing and filtering two dimensional arrays forming a pyramidal array, and method of operating such an apparatus
US6906720B2 (en) Multipurpose memory system for use in a graphics system
US20060164429A1 (en) 3-D rendering texture caching scheme
US20020085010A1 (en) Method and apparatus for tiled polygon traversal
US6064393A (en) Method for measuring the fidelity of warped image layer approximations in a real-time graphics rendering pipeline
US5987567A (en) System and method for caching texture map information
US5870097A (en) Method and system for improving shadowing in a graphics rendering system
EP1267308B1 (en) Texturing systems for use in three-dimensional imaging systems
EP1994506B1 (en) Texture unit for multi processor environment
McCormack et al. Tiled polygon traversal using half-plane edge functions
US6661424B1 (en) Anti-aliasing in a computer graphics system using a texture mapping subsystem to down-sample super-sampled images
KR20130141445A (ko) 안티-앨리어싱된 샘플들의 분할 저장
EP1434171A2 (en) Method and system for texture mapping a source image to a destination image
US20150199825A1 (en) Method and system for expediting bilinear filtering
US6091428A (en) Frame buffer memory system for reducing page misses when rendering with color and Z buffers
US6914609B2 (en) Multiple scan line sample filtering
Schmitz et al. High-Fidelity Point-Based Rendering of Large-Scale 3-D Scan Datasets

Legal Events

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

Payment date: 20071203

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee