KR100204336B1 - 타일 맵을 이용한 텍스쳐 캐쉬 메모리 - Google Patents

타일 맵을 이용한 텍스쳐 캐쉬 메모리 Download PDF

Info

Publication number
KR100204336B1
KR100204336B1 KR1019960054718A KR19960054718A KR100204336B1 KR 100204336 B1 KR100204336 B1 KR 100204336B1 KR 1019960054718 A KR1019960054718 A KR 1019960054718A KR 19960054718 A KR19960054718 A KR 19960054718A KR 100204336 B1 KR100204336 B1 KR 100204336B1
Authority
KR
South Korea
Prior art keywords
texture
cache
memory
tile map
data
Prior art date
Application number
KR1019960054718A
Other languages
English (en)
Other versions
KR19980036199A (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 KR1019960054718A priority Critical patent/KR100204336B1/ko
Priority to JP9313849A priority patent/JPH10162157A/ja
Publication of KR19980036199A publication Critical patent/KR19980036199A/ko
Application granted granted Critical
Publication of KR100204336B1 publication Critical patent/KR100204336B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/121Frame memory handling using a cache memory
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/122Tiling

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Digital Computer Display Output (AREA)

Abstract

본 발명은 텍스쳐 매핑(texture mapping)시 타일 맵(tile map)을 이용하여 고속의 텍스쳐 매핑이 가능한 그래픽스 컨트롤러의 텍스쳐 캐쉬 메모리에 관한 것으로, 복수개의정방형의 캐쉬 블록(62)과, 상기 복수개의 캐쉬 블록(62)의 텍스쳐 어드레스(U, V)에 대한 각각의 정보를 나타내는 복수개의 태그(65)와, 텍스쳐 매핑시 상기 텍스쳐 어드레스(U, V)를 복수개의

Description

타일 맵을 이용한 텍스쳐 캐쉬 메모리(A TEXTURE CACHE MEMORY USING TILE MAP)
본 발명은 그래픽스 컨트롤러(graphics controller)의 텍스쳐 캐쉬 메모리(texture cash memory)에 관한 것으로, 구체적으로는 텍스쳐 매핑(texture mapping)시 타일 맵(tile map)을 이용하여 고속의 텍스쳐 매핑이 가능한 텍스쳐 캐쉬 메모리에 관한 것이다.
현재 그래픽스 컨트롤러는 2차원 및 3차원 그래픽(two dimension and three dimension graphic)의 처리 및 그래픽 가속 기능(graphic acceleration function)을 구비하면서 매우 빠른 그래픽 처리가 가능하게 되었다. 3차원 그래픽 가속 기능을 구비한 그래픽 컨트롤러의 가장 중요한 기능 중의 하나인 텍스쳐 매핑은 다른 기능보다 더 많은 메모리(memory) 성능이 요구된다. 왜냐하면, 3차원 물체에 어떤 이미지(image)를 입히는 기능을 하는 텍스쳐 매핑은 입힐 이미지를 그때마다 메모리에서 읽어 와야 하기 때문이다. 게다가 읽어 올 데이터가 메모리에 순차적으로 저장되어 있지 않은 경우가 많음으로 더욱 그러하다.
일반적으로 DRAM(Dynamic Random Access Memory)으로 구성한 메모리의 경우에는 그 특성상 페이지 미스(page miss)가 일어날 확률이 높아진다. 또한 동기 DRAM(synchronous DRAM)의 경우, 데이터의 전송을 블록 단위로 고속으로 전송하는 버스트 동작(burst operation) 기능을 활용하기가 어렵다. 이런 경우에 성능을 향상시킬 목적으로 그래픽스 컨트롤러의 내부에 캐쉬 메모리(cache memory)를 구비하여 사용하게 된다.
도 1은 종래의 텍스쳐 캐쉬 메모리의 사용예를 설명하기 위한 도면이다.
도 1을 참조하여, 텍스쳐 매핑이 수행될 때 그래픽 데이터가 저장된 메인 메모리(main memory, 10)에서 해당되는 데이터가 그래픽스 컨트롤러의 로컬 메모리(local memory, 20)로 로딩(loading)된다. 그리고 그래픽스 컨트롤러는 내부의 텍스쳐 캐쉬 메모리(30)에 데이터를 미리 로딩하여 사용하게 된다. 로컬 메모리(20)에서 한번에 읽어 오는 데이터의 양을 텍스쳐 캐쉬 메모리(30)의 입장에서는 라인 사이즈(line size) 또는 블록 사이즈(block size)라고 하는데, 로컬 메모리(20)에서 단 한번 읽을 수도 있고 여러 번 읽을 수도 있다.
최근의 그래픽스 컨트롤러는 데이터 버스를 64비트(bit)로 채택하고 있다. 64비트(bit)에는 16비트 데이터가 4개, 8비트 데이터가 8개 들어가게 되는데, 텍스쳐 매핑의 동작성 및 캐쉬의 효율을 고려할 때 이는 조금 작은 숫자가 된다. 따라서 이런 64비트 엑세스를 4번 또는 그 이상을 해야 하는데, DRAM의 성능을 높여 주려면 연속되는 엑세스 동작은 현재 엑세스 하고 있는 페이지이어야 한다. 그런데 페이지 미스가 발생하면 DRAM에 RAS신호(Row Address Strobe signal)를 다시 인가해 주어야 하므로 접근 속도는 그만큼 느려지게 된다.
그런데 텍스쳐 매핑에서는 연속된 데이터만을 읽어 가지는 않는다. 만일 텍스쳐 이미지를 순차적인 공간에 저장해 놓은 상태에서, 텍스쳐 매핑 수행시 수평 방향으로 데이터를 읽어 가게 되면 이미 캐쉬에 로딩된 많은 데이터를 그대로 활용할 수 있어서 성능이 매우 향상될 수 있다. 그러나 수직 방향으로 데이터를 이용하려고 하면, 아무리 많은 데이터를 읽어 놨어도 모두 못쓰게 될 것이다. 따라서 텍스쳐 매핑에서는 캐쉬의 한 블록에는 텍스쳐 이미지의 각 부분들을 정방형의 형태로 저장하는 것이 바람직하다.
그러나 이러한 경우의 문제점은 데이터의 첫 번째 줄(row)과 두 번째 줄이 다른 DRAM 페이지에 있을 확률이 높다는 것이다. 이렇게 되면 DRAM 엑세스 속도가 느려져서 성능이 저하되는 결과를 초래한다. 이를 해결하기 위하여 DRAM의 어드레스 영역을 바꾸어서 타일 맵(tile map)으로 구성할 수 있다. 그러나 로컬 메모리 전체를 타일 맵으로 구성하게 되면 3차원 텍스쳐 매핑에 따른 그래픽스 컨트롤러의 성능(performance)은 증가 할 수 있지만 순차적인 엑세스가 많은 스크린 리플레쉬(screen refresh)등의 동작에서는 오히려 성능이 저하되는 문제점이 발생 할 수 있다.
본 발명의 목적은 상술한 문제점을 해결하기 위해 제안된 것으로서, 텍스쳐 매핑시에만 타일 맵의 구조를 사용하여 고속의 텍스쳐 매핑을 수행할 수 있는 텍스쳐 캐쉬 메모리를 제공하는데 있다.
제1도는 종래의 텍스쳐 캐쉬 메모리의 사용예를 설명하기 위한 도면,
제2도는 본 발명의 실시예에 따른 타일 맵을 이용한 텍스쳐 캐쉬 메모리 및 주변 회로를 보여주는 도면,
제3도는 제2도에 도시된 텍스쳐 캐쉬 메모리의 내부 구조를 보여주는 도면,
제4도는 텍스쳐 어드레스를 설명하기 위한 도면,
제5a도 및 제5b도는 타일 맵을 이용한 어드레스 저장방식과 타일 맵을 이용하지 않은 어드레스 저장 방식의 메모리 구성 방법을 설명하기 위한 도면.
* 도면의 주요 부분에 대한 부호의 설명*
10 : 메인 메모리20 : 로컬 메모리
30, 60 : 텍스쳐 캐쉬 메모리40 : 메모리 컨트롤러
50 : 타일 맵 어드레스 변환부62 : 캐쉬 블록
65 : 태그
(구성)
상술한 목적을 달성하기 위한 본 발명의 특징에 의하면, 그래픽스 컨트롤러의 텍스쳐 캐쉬 메모리는 : 복수개의정방형의 캐쉬 블록과; 상기 복수개의 캐쉬 블록의 텍스쳐 어드레스에 대한 각각의 정보를 나타내는 복수개의 태그와; 텍스쳐 매핑시 상기 텍스쳐 어드레스를 복수개의정방형의 타일 맵의 형태로 어드레스가 할당되는 그래픽스 컨트롤러의 로컬 메모리의 물리적 어드레스로 변환하여 메모리 컨트롤러로 제공하는 타일 맵 어드레스 변환부를 포함한다.
이 실시예에 있어서, 상기 캐쉬 블록은 m비트의 데이터가로 이루어지는 제1 내지 제4 캐쉬 블록과; 상기 복수개의 태그는 상기 제1 내지 제4 텍스쳐 캐쉬 블록에 대응되는 각각의 텍스쳐 어드레스에 대한 정보가 저장되는 제1 내지 제4 태그를 포함한다.
이 실시예에 있어서, 상기 제1 내지 제4 캐쉬 블록은 각기 16 비트 데이터가로 이루어진다.
(작용)
상기와 같은 본 발명에 의하면, 텍스쳐 매핑 수행시 로컬 메모리의 텍스쳐 이미지 데이터는 타일 맵의 형태로 저장되어 페이지 미스 없이 텍스쳐 캐쉬로 데이터를 로딩 할 수 있다.
(실시예)
이하 본 발명의 실시예를 첨부된 도면에 의거하여 상세히 설명한다.
도 2는 본 발명의 실시예에 따른 타일 맵을 이용한 텍스쳐 캐쉬 메모리 및 주변 회로를 보여주는 도면이고, 도 3은 도 2에 도시된 텍스쳐 캐쉬 메모리의 내부 구조를 보여주는 도면이다.
도 2를 참조하여, 그래픽스 컨트롤러의 내부에는 텍스쳐 캐쉬 메모리(60)와 타일 맵 어드레스 변환부(50)가 구비되어 있다. 본 발명의 실시예에서는 그래픽스 컨트롤러의 면적을 고려하여서 크기가 비교적 작은 텍스쳐 캐쉬를 이용하였다.
도 3을 참조하여, 캐쉬의 각 블록(62)은 16비트 데이터가 4×4로 이루어지도록 하였기 때문에 블록(62)의 크기는 32바이트(byte)이며, 포웨이 셋 어소시에티브(4 way set associative) 방식으로 구현하게 되면 이런 블록이 4개(62a∼62d)가 필요하므로, 전체 캐쉬의 사이즈는 128 바이트가 된다. 또 각각의 블록은 텍스쳐 어드레스(texture address)인 U, V 어드레스로 이루어진 태그(65, tag)를 갖는다. 태그(65)는 앞으로 읽을 데이터의 어드레스가 캐쉬에 저장되어 있는지 없는지를 비교할 때 사용된다.
여기서 DRAM으로 구성된 로컬 메모리(20)의 버스 사이즈가 64비트(8바이트)인 경우는 한 개의 블록을 채우려면 4번이 DRAM 엑세스가 필요하다. 그리고 여기서 4번의 DRAM 엑세스는 모두 페이지 미스가 발생하면 안된다. 따라서 텍스쳐 이미지는 처음부터 4×4의 블록 형태로 나누어서 타일 맵의 형태로 DRAM에 저장하여야 한다. 일단 타일 맵의 형태로 DRAM에 저장된 텍스쳐 이미지의 한 블록은 DRAM의 입장에서는 연속된 어드레스에 할당되어 있다. 그러므로 캐쉬 미스(cache miss)가 발생하여 로컬 메모리(20)로부터 텍스쳐 캐쉬 메모리(30)로 해당 데이터를 가져오는 경우, 한 블록을 연속된 공간에서 가져올 수 있으므로 그만큼 속도가 향상된다.
좀더 구체적으로, 만일 이미 데이터를 캐쉬에 가져다 놓았다면 4개의 태그(65a∼65d)중에 하나와 현재의 U, V 어드레스가 일치하는 경우이다. 이 경우에는 히트(hit)된 블록에서 데이터를 꺼내어 데이터를 요청한 내부의 렌더링 엔진(rendering engine) 쪽으로 데이터를 보내 주면 된다. 그러나 만일에 4개의 테그에서 같은 U, V 어드레스가 발견되지 않았다면 지금 캐쉬에 원하는 데이터가 없는 것이므로 DRAM에서 데이터를 읽어 와야 한다. 이때에 U, V 어드레스는 타일 맵 변환부(50)를 통하여 DRAM의 물리적 어드레스(physical address)로 변환되어 메모리 컨트롤러(40)로 제공된다.
이때, 로컬 메모리(20)의 데이터 저장 형태는 타일 맵으로 구성되어 있기 때문에 블록에 채워야 할 4×4개의 데이터는 DRAM의 같은 페이지에 존재한다. 그러므로 상당히 빠른 시간 안에 모든 데이터를 읽어 올 수 있다. 특히 버스트 동작을 수행할 수 있는 동기 DRAM(synchronous DRAM)으로 로컬 메모리(20)가 구성된 경우에는 버스트 리드(burst read)를 수행하여 더욱 빠른게 수행 할 수 있게 된다.
도 4는 텍스쳐 어드레스를 설명하기 위한 도면이고, 도 5A 및 도 5B는 타일 맵을 이용한 어드레스 저장방식과 타일 맵을 이용하지 않은 어드레스 저장 방식의 메모리 구성 방법을 설명하기 위한 도면이다.
도 4 및 도 5A, 5B를 참조하여, U, V 어드레스를 가지는 텍스쳐 이미지(100)의 데이터를 aUV로 표현하였을 경우에, 처음 4개의 데이터 a0, a1, a2, a3은 타일 맵이 아닌 경우(110)와 타일 맵인 경우(120) 모두 연속된 어드레스로 저장된다. 그러나 그 다음의 a04데이터는 타일 맵이 아니면 a3바로 다음에 오겠으나, 타일 맵의 경우에는, 도면에는 도시되지 않았으나, a33다음에 저장될 것이다. 반면에 a10데이터는 타일 맵이 아닌 경우 첫 번째 열이 모두 저장된 후에 저장되겠고, 타일 맵인 경우에는 a3바로 다음에 올 것이다. 즉, 타일 맵의 경우(120)는 각각의 데이터 열(a, b, c,...)이 순차적으로 저장된다.
이상과 같이 그래픽스 컨트롤러가 텍스쳐 매핑을 수행하는 경우, 로컬 메모리(20)의 구조는 타일 맵의 형태로 데이터가 저장된다. 이러한 로컬 메모리(20)로부터 텍스쳐 캐쉬(60)로 데이터가 로딩되면, 텍스쳐 캐쉬(60)의 각각의 캐쉬 블록(62)에는 해당되는 텍스쳐 이미지가 로딩되므로 고속의 텍스쳐 매핑을 수행 할 수 있게 된다.
이상과 같은 본 발명에 의하면, 순차적인 엑세스가 많은 스크린 리플레쉬등의 동작에서는 로컬 메모리의 구조를 일반적인 메모리 구조를 갖도록 하며, 텍스쳐 매핑시에는 타일 맵의 구조를 갖도록 하므로 다른 기능의 성능을 저하시키지 않고 고속의 텍스쳐 매핑을 수행할 수 있다.

Claims (3)

  1. 그래픽스 컨트롤러의 텍스쳐 캐쉬 메모리에 있어서:
    복수개의정방형의 캐쉬 블록(62)과;
    상기 복수개의 캐쉬 블록(62)의 텍스쳐 어드레스(U, V)에 대한 각각의 정보를 나타내는 복수개의 태그(65)와;
    텍스쳐 매핑시 상기 텍스쳐 어드레스(U, V)를 복수개의정방형의 타일 맵의 형태로 어드레스가 할당되는 그래픽스 컨트롤러의 로컬 메모리(20)의 물리적 어드레스로 변환하여 메모리 컨트롤러(40)로 제공하는 타일 맵 어드레스 변환부(50)를 포함하는 것을 특징으로 하는 그래픽스 컨트롤러의 텍스쳐 캐쉬 메모리.
  2. 제 1 항에 있어서,
    상기 캐쉬 블록(65)은 m비트의 데이터가로 이루어지는 제1 내지 제4 캐쉬 블록(62a∼62d)과;
    상기 복수개의 태그(65)는 상기 제1 내지 제4 텍스쳐 캐쉬 블록(62a∼62d)에 대응되는 각각의 텍스쳐 어드레스(U, V)에 대한 정보가 저장되는 제1 내지 제4 태그(65a∼65d)를 포함하는 것을 특징으로 하는 그래픽스 컨트롤러의 텍스쳐 캐쉬 메모리.
  3. 제 2 항에 있어서,
    상기 제1 내지 제4 캐쉬 블록(62a∼62d)은 각기 16 비트 데이터가로 이루어지는 것을 특징으로 하는 그래픽스 컨트롤러의 텍스쳐 캐쉬 메모리.
KR1019960054718A 1996-11-16 1996-11-16 타일 맵을 이용한 텍스쳐 캐쉬 메모리 KR100204336B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1019960054718A KR100204336B1 (ko) 1996-11-16 1996-11-16 타일 맵을 이용한 텍스쳐 캐쉬 메모리
JP9313849A JPH10162157A (ja) 1996-11-16 1997-11-14 グラフィックコントローラ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960054718A KR100204336B1 (ko) 1996-11-16 1996-11-16 타일 맵을 이용한 텍스쳐 캐쉬 메모리

Publications (2)

Publication Number Publication Date
KR19980036199A KR19980036199A (ko) 1998-08-05
KR100204336B1 true KR100204336B1 (ko) 1999-06-15

Family

ID=19482171

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960054718A KR100204336B1 (ko) 1996-11-16 1996-11-16 타일 맵을 이용한 텍스쳐 캐쉬 메모리

Country Status (2)

Country Link
JP (1) JPH10162157A (ko)
KR (1) KR100204336B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7580042B2 (en) 2005-08-09 2009-08-25 Samsung Electronics Co., Ltd. Systems and methods for storing and fetching texture data using bank interleaving
US8605101B2 (en) 2008-11-05 2013-12-10 Samsung Electronics Co., Ltd. Apparatus and method of reading texture data for texture mapping

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100337138B1 (ko) * 1999-01-18 2002-05-18 니시무로 타이죠 고속 화상 처리에 이용하는 캐시 메모리 장치 및 캐시메모리 장치를 탑재한 프로세서
KR20030054606A (ko) * 2001-12-26 2003-07-02 한국전자통신연구원 3차원 텍스춰 매핑을 위한 부호화/복호화 장치 및 방법
US8253751B2 (en) 2005-06-30 2012-08-28 Intel Corporation Memory controller interface for micro-tiled memory access
US8878860B2 (en) * 2006-12-28 2014-11-04 Intel Corporation Accessing memory using multi-tiling
KR100959126B1 (ko) 2007-11-21 2010-05-25 한국원자력 통제기술원 타일맵을 이용한 물리적 방호 시스템의 유효성 평가방법
US8204338B2 (en) * 2008-02-14 2012-06-19 Microsoft Corporation Factoring repeated content within and among images
KR101886372B1 (ko) 2017-03-17 2018-08-09 경상대학교산학협력단 고순도의 할로이사이트 나노튜브입자 제조방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7580042B2 (en) 2005-08-09 2009-08-25 Samsung Electronics Co., Ltd. Systems and methods for storing and fetching texture data using bank interleaving
US8605101B2 (en) 2008-11-05 2013-12-10 Samsung Electronics Co., Ltd. Apparatus and method of reading texture data for texture mapping

Also Published As

Publication number Publication date
KR19980036199A (ko) 1998-08-05
JPH10162157A (ja) 1998-06-19

Similar Documents

Publication Publication Date Title
KR100300972B1 (ko) 텍스춰매핑수행장치및텍스춰캐시의데이터억세스방법
US5170468A (en) Graphics system with shadow ram update to the color map
US4965751A (en) Graphics system with programmable tile size and multiplexed pixel data and partial pixel addresses based on tile size
US5924111A (en) Method and system for interleaving data in multiple memory bank partitions
JP4203128B2 (ja) 3次元の三角形描画におけるブロック及びバンド志向走査
US4961153A (en) Graphics frame buffer with strip Z buffering and programmable Z buffer location
EP0998709B1 (en) Non-stalled requesting texture cache system and method
IE830288L (en) Digital graphics display system
US7580042B2 (en) Systems and methods for storing and fetching texture data using bank interleaving
US5029105A (en) Programmable pipeline for formatting RGB pixel data into fields of selected size
KR970071283A (ko) 캐쉬 메모리 및 그 동작 방법
CA2020275A1 (en) Apparatus and method for reading, writing, and refreshing memory with direct virtual or physical access
KR100204336B1 (ko) 타일 맵을 이용한 텍스쳐 캐쉬 메모리
US7286134B1 (en) System and method for packing data in a tiled graphics memory
JPH06175646A (ja) グラフィックス・システム用フレーム・バッファおよびラスタ・プロセッサならびにピクセル変数のバッファリング方法
US6091428A (en) Frame buffer memory system for reducing page misses when rendering with color and Z buffers
JPS5952286A (ja) ビデオram書込み制御方式
US6667930B1 (en) System and method for optimizing performance in a four-bank SDRAM
US6538650B1 (en) Efficient TLB entry management for the render operands residing in the tiled memory
US20020083266A1 (en) Image data organization into pixel tile memory matrix
EP1481386A1 (en) Frame buffer access device, frame buffer access method, computer program and recording medium
US6031550A (en) Pixel data X striping in a graphics processor
US7124261B2 (en) Access to bit values within data words stored in a memory
JP3001763B2 (ja) 画像処理システム
US6674441B1 (en) Method and apparatus for improving performance of an accelerated graphics port (AGP) device

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: 20080303

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee