KR100817237B1 - 3차원 그래픽 연산을 위한 그래픽 가속기 장치 및 캐쉬메모리 장치, 및 3차원 그래픽 연산 처리 방법 - Google Patents

3차원 그래픽 연산을 위한 그래픽 가속기 장치 및 캐쉬메모리 장치, 및 3차원 그래픽 연산 처리 방법 Download PDF

Info

Publication number
KR100817237B1
KR100817237B1 KR1020060064906A KR20060064906A KR100817237B1 KR 100817237 B1 KR100817237 B1 KR 100817237B1 KR 1020060064906 A KR1020060064906 A KR 1020060064906A KR 20060064906 A KR20060064906 A KR 20060064906A KR 100817237 B1 KR100817237 B1 KR 100817237B1
Authority
KR
South Korea
Prior art keywords
vertex
cache memory
graphic
vertex data
result
Prior art date
Application number
KR1020060064906A
Other languages
English (en)
Other versions
KR20080006134A (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 KR1020060064906A priority Critical patent/KR100817237B1/ko
Publication of KR20080006134A publication Critical patent/KR20080006134A/ko
Application granted granted Critical
Publication of KR100817237B1 publication Critical patent/KR100817237B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware

Landscapes

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

Abstract

본 발명은 3차원 그래픽 가속기에 적용되는 캐쉬 메모리에 관한 것으로서, 보다 구체적으로 3차원 그래픽 연산 결과를 저장하고 정점 데이터 식별 정보를 이용하여 캐쉬 히트 여부를 판단하는 연산 데이터 캐쉬 메모리에 관한 것이다. 본 발명에 따른 캐쉬 메모리 장치는 3차원 공간상의 정점들에 대한 그래픽 연산 결과들을 저장하는 캐쉬 메모리 어레이, 그래픽 연산 결과들에 대응하는 정점 데이터 식별 정보를 저장하는 태그 메모리, 및 그래픽 연산 명령을 수신하고, 그래픽 연산 명령에 대응하는 정점 데이터 식별 정보와 태그 메모리의 엔트리들을 비교하여 그래픽 연산 결과의 캐쉬 히트 여부를 판단하는 캐쉬 메모리 제어부를 포함하는 것을 특징으로 한다. 본 발명에 따르면, 3차원 그래픽 연산 결과를 캐쉬 메모리에 저장함으로써 동일한 정점에 대한 중복 연산에 따른 오버헤드를 감소시킬 수 있다.
Figure R1020060064906
3차원 그래픽 가속기, 캐쉬 메모리, 인덱스, 폴리곤, 정점, 버텍스.

Description

3차원 그래픽 연산을 위한 그래픽 가속기 장치 및 캐쉬 메모리 장치, 및 3차원 그래픽 연산 처리 방법{GRAPHIC ACCELERATOR APPARATUS AND CACHE MEMORY APPARATUS FOR 3-DIMENSIONAL GRAPHIC COMPUTATION, AND METHOD OF PROCESSING 3-DIMENSIONAL GRAPHIC COMPUTATION}
도 1은 종래의 3차원 그래픽 가속기의 구조를 기능 블록들을 이용하여 도시한 블록도이다.
도 2는 본 발명에 따른 3차원 그래픽 가속기의 구조를 기능 블록들을 이용하여 도시한 블록도이다.
도 3은 본 발명에 따른 연산 데이터 캐쉬 메모리의 내부 구성을 도시한 블록도이다.
도 4는 본 발명에 따른 3차원 그래픽 연산 처리 방법을 단계별로 도시한 흐름도이다.
<도면의 주요 부분에 대한 부호의 설명>
200: 연산 데이터 캐쉬 메모리 210: 정점 데이터 캐쉬 메모리
210: 캐쉬 메모리 어레이 220: 태그 메모리
230: 캐쉬 메모리 제어부
본 발명은 3차원 그래픽 가속기에 적용되는 캐쉬 메모리에 관한 것으로서, 보다 구체적으로 3차원 그래픽 연산 결과를 저장하고 정점 데이터 식별 정보를 이용하여 캐쉬 히트 여부를 판단하는 연산 데이터 캐쉬 메모리의 구성에 관한 것이다.
3차원 그래픽 기술은 디지털 컴퓨터와 3차원 소프트웨어를 이용하여 3차원 공간에 위치한 물체의 모양, 색상, 움직임 등을 시각화하는 기술을 의미한다. 3차원 그래픽 기술은 최근 3차원 게임 시장의 성장에 힘입어 크게 발전하였고, 사실상 교육, 의료, 군사, 예술 등의 분야에서 이미 널리 이용되고 있는 핵심 기반 기술이기도 하다.
이처럼 3차원 그래픽 기술이 널리 이용되는 것은, 이 기술이 물체를 사실감 있게 보여 줌으로써 사용자에게 직관적으로 정보를 전달할 수 있기 때문이다. 일반적인 3차원 그래픽 영상에서 물체는 다수의 선(edge) 또는 폴리곤(polygon)으로 구성된다. 3차원 그래픽 연산 처리 장치 또는 3차원 그래픽 가속기는 폴리곤을 구성하는 정점(vertex)들에 대해 3차원 그래픽 연산을 적용함으로써 3차원 공간상에 모델링되는 물체가 사용자에게 시각화될 수 있도록 한다.
도 1은 종래의 일반적인 3차원 그래픽 가속기의 구성을 도시하는 블록도이다. 도 1을 참조하면, 그래픽 가속기는 각 정점의 좌표를 일정한 수식에 의해 변환시키는 좌표 변환(transformation) 연산 및 광원에 의해 각 정점에 나타나는 시 각 효과를 계산하는 조명 처리(lighting) 연산을 수행하는 T&L 엔진(Transformation & Lighting engine)(130)을 포함한다. T&L 엔진(130)은 각 정점과 관련된 정점 데이터를 파라미터로서 연산에 이용하는데, 이와 같은 정점 데이터는 1차적으로 SDRAM 등으로 구성되는 주메모리에 저장되어 있다.
그러나, 도 1에 도시된 것처럼 수행 성능을 향상시키기 위하여 주메모리와 T&L 엔진(130) 사이에 정점 데이터를 저장하는 캐쉬 메모리(110)를 두어 주메모리 접근에 따른 오버헤드를 감소시킬 수 있다. 정점 데이터 페치부(fetching unit)(120)는 정점 데이터 캐쉬 메모리(110)로부터 정점 데이터를 독출하여 T&L 엔진(130)으로 입력하는 역할을 한다.
T&L 엔진(130)에 의해 생성된 3차원 그래픽 연산 결과는 각 정점과 관련된 변환 또는 조명 처리 연산 결과이다. 이처럼 각 정점에 대한 연산 결과는 프리미티브 생성부(140)로 입력되어, 복수의 정점으로 구성되는 프리미티브(primitive), 예컨대 선 또는 폴리곤이 생성되도록 한다.
클리핑 엔진(150)은 생성된 프리미티브 데이터 중에서 시각화해야 하는 범위 바깥에 있는 데이터를 클리핑하고, 클리핑된 데이터를 입력받는 래스터 엔진(raster engine)(160)은 프리미티브들로 구성된 3차원 물체에 텍스쳐(texture)를 입혀 물체 표면의 다양한 질감을 표현한다.
T&L 엔진(130)에 의한 연산은 사용자로부터 입력된 처리 순서에 따라 복수의 정점에 대한 그래픽 연산을 수행하는 경우가 많다. 그리고, 이 때 사용자로부터 입력되는 처리 순서는 하나의 프리미티브를 구성하는 정점들을 처리하고 나서 인접 한 프리미티브를 구성하는 정점들을 처리하는 순서인 경우가 많다. 이 경우, 인접한 프리미티브들 간에는 공유하는 정점이 있게 된다.
예를 들어 삼각형 폴리곤의 경우에는 인접한 폴리곤 간에 하나 또는 두 개의 정점을 공유하고, 선의 경우에는 하나의 정점을 공유할 수 있다. 종래의 3차원 그래픽 가속기 구조에 따르면, 이처럼 인접한 프리미티브들의 정점을 순서대로 처리하는 경우에, 공유되는 정점에 대한 연산을 중복하여 수행할 수 있다는 문제점을 가지고 있다.
이와 같은 공유 정점에 대한 중복 연산이 빈번하게 발생할 경우에, 전체 3차원 그래픽 가속기의 동작 효율이 떨어지게 되며, 특히 중복되는 연산의 연산량이 상당한 경우에는 그 효율 저하가 더욱 큰 폭으로 나타남으로 인해 성능에 매우 큰 영향을 미칠 수 있다.
이에 본 발명에서는 상술한 문제점을 해결하기 위하여 3차원 그래픽 연산 결과를 저장하는 캐쉬 메모리와 관련된 새로운 기술을 제안하고자 한다.
본 발명은 상기와 같은 종래 기술을 개선하기 위해 안출된 것으로서, 3차원 그래픽 연산 결과를 저장하는 연산 데이터 캐쉬 메모리, 상기 캐쉬 메모리를 포함하는 그래픽 가속기의 구성, 및 상기 장치들을 이용하여 3차원 그래픽 연산을 처리하는 방법을 제공하는 것을 그 목적으로 한다.
구체적으로, 본 발명은 연산 데이터 캐쉬 메모리에 3차원 그래픽 연산 결과를 저장하고, 각 정점에 대한 연산을 수행하기 전에 연산 데이터 캐쉬를 참조함으 로써 프리미티브들 간에 공유되는 정점들에 대한 중복 연산을 막고 3차원 그래픽 연산의 효율을 향상시키는 것을 그 목적으로 한다.
또한, 본 발명은 정점 데이터 캐쉬 메모리에 정점 데이터가 저장된 주소값을 이용하여 연산 데이터 캐쉬 메모리의 캐쉬 히트 여부를 판단함으로써, 연산 결과를 저장하는 연산 데이터 캐쉬 메모리가 정점 데이터 캐쉬 메모리와 효과적으로 연동하게 하는 것을 그 목적으로 한다.
상기의 목적을 달성하고, 상술한 종래기술의 문제점을 해결하기 위하여, 본 발명에 따른 캐쉬 메모리 장치는 3차원 공간상의 정점들에 대한 그래픽 연산 결과들을 저장하는 캐쉬 메모리 어레이, 그래픽 연산 결과들에 대응하는 정점 데이터 식별 정보를 저장하는 태그 메모리, 및 그래픽 연산 명령을 수신하고, 그래픽 연산 명령에 대응하는 정점 데이터 식별 정보와 태그 메모리의 엔트리들을 비교하여 그래픽 연산 결과의 캐쉬 히트 여부를 판단하는 캐쉬 메모리 제어부를 포함하는 것을 특징으로 한다.
또한, 본 발명에 따른 그래픽 가속기 장치는 상기 정점들에 대한 그래픽 연산을 수행하여 정점 연산 결과들을 생성하는 정점 연산부, 상기 그래픽 연산에 파라미터로 이용되는 정점 데이터를 저장하는 정점 데이터 캐쉬 메모리, 및 상기 생성된 정점 연산 결과들 및 정점 연산 결과들에 대응하는 정점 데이터 식별 정보를 저장하는 연산 데이터 캐쉬 메모리를 포함하고, 상기 연산 데이터 캐쉬 메모리는 그래픽 연산 명령을 수신하는 경우에, 그래픽 연산 명령과 연관된 정점의 정점 데 이터 식별 정보를 연산 데이터 캐쉬 메모리에 저장된 정점 데이터 식별 정보와 비교하여 캐쉬 히트 여부를 판단하는 것을 특징으로 한다.
또한, 본 발명에 따른 3차원 그래픽 연산 처리 방법은 3차원 공간상의 정점에 대한 그래픽 연산 명령을 수신하는 단계, 그래픽 연산 명령에 응답하여 그래픽 연산에 파라미터로 이용되는 정점 데이터를 저장하는 정점 데이터 캐쉬 메모리로부터 상기 정점에 대응하는 정점 데이터 식별 정보를 추출하는 단계, 정점 데이터 식별 정보가 기처리된 그래픽 연산 결과를 저장하는 연산 데이터 캐쉬 메모리의 태그 메모리 엔트리들의 값과 일치하는지 비교하여 캐쉬 히트 여부를 판단하는 단계, 및 상기 판단 결과 캐쉬 히트인 경우에 캐쉬 메모리로부터 그래픽 연산 결과를 독출하는 단계를 포함하는 것을 특징으로 한다.
이하 첨부된 도면들을 참조하여 본 발명에 따른 캐쉬 메모리 장치, 상기 캐쉬 메모리 장치를 포함하는 3차원 그래픽 가속기 장치의 구성 및 연산 데이터 캐쉬 메모리를 이용하여 3차원 그래픽 연산을 수행하는 방법에 대해 상세히 설명한다.
도 2는 본 발명에 따른 3차원 그래픽 가속기의 구성을 기능 블록들을 이용하여 도시한 블록도이다.
도 2를 참조하면, T&L 엔진(230)과 프리미티브 생성부(240) 사이에 연산 데이터 캐쉬 메모리(200)가 위치한다. 연산 데이터 캐쉬 메모리(200)에는 T&L 엔진(230)에 의해 생성된 3차원 그래픽 연산 결과들 가운데 최근에 생성되어 처리된 결과들이 저장된다.
프리미티브 생성부(240)는 3차원 물체의 프리미티브를 생성하기 위하여 프리 미티브를 구성하는 정점에 대한 3차원 그래픽 연산 명령을 T&L 엔진(230)으로 전달하기에 앞서 연산 데이터 캐쉬 메모리(200)를 참조하여, 최근에 그래픽 연산 처리된 정점인 경우에는 해당 정점에 대하여 중복하여 3차원 그래픽 연산을 수행하지 않고 연산 데이터 캐쉬 메모리로부터 연산 결과를 독출함으로써 연산 중복을 막을 수 있다.
도 2에 도시된 정점 데이터 캐쉬 메모리(210)는 T&L 엔진(230)이 3차원 그래픽 연산을 수행하기 위해 파라미터로 이용하는 정점 데이터 중에서 최근에 처리된 정점과 관련된 정점 데이터를 저장한다. 정점 데이터 페치부(220)는 정점 데이터 캐쉬 메모리(210)로부터 정점 데이터를 독출하여 T&L 엔진(230)에 입력하는 역할을 한다.
한편, 프리미티브 생성부(240)에 의해 생성된 프리미티브들로 구성되는 3차원 물체는 클리핑 엔진(250)에 의해 시각화 범위 바깥에 위치하는 데이터가 클리핑된 뒤에, 래스터 엔진(260)에 의해 래스터라이즈(rasterize)된다.
도 3은 도 2의 연산 데이터 캐쉬 메모리(200)의 내부 구성을 보다 상세히 도시한 블록도이다. 도 3을 참조하면 연산 데이터 캐쉬 메모리(200)는 T&L 엔진(230)에 의해 생성된 3차원 그래픽 연산 결과(302)를 입력받는다. 캐쉬 메모리 제어부(330)는 입력된 3차원 그래픽 연산 결과(302)를 캐쉬 메모리 어레이(310)에 저장한다.
캐쉬 메모리 어레이(310)는 3차원 그래픽 연산 결과를 그 연산 결과의 종류별로 저장하는 복수의 메모리 블록을 포함할 수 있다. 일례로서 캐쉬 메모리 어레 이(310)를 구성하는 메모리 블록은, 도 3에 도시된 바와 같이, 정점의 클리핑 좌표를 저장하는 클립 좌표(clip coordinate) 블록, 0번째 텍스쳐와 관련된 좌표를 저장하는 텍스쳐 0 좌표(texture 0 coordinate) 블록, 1번째 텍스쳐와 관련된 좌표를 저장하는 텍스쳐 1 좌표(texture 1 coordinate) 블록, 정점의 전면 색상과 관련된 데이터를 저장하는 전면 색상(front color) 블록, Eye Z 값을 저장하는 Eye Z 블록, Dot-4 값을 저장하는 Dot-4 블록, 정점의 포인트 크기를 저장하는 정점 크기(point size) 블록, 정점의 배면 색상과 관련된 데이터를 저장하는 배면 색상(back color) 블록 등을 포함할 수 있다.
T&L 엔진(230)에 의한 3차원 그래픽 연산 결과는 이처럼 다양한 결과들을 포함할 수 있는데, 앞서 설명한 것처럼 캐쉬 메모리 제어부(330)는 이러한 연산 결과를 수신하여 연산 결과의 종류에 따라 캐쉬 메모리 어레이(310) 내의 지정된 위치에 상기 연산 결과를 저장한다.
다시 도 3을 참조하면, 연산 데이터 캐쉬 메모리(200)는 정점 데이터 캐쉬 메모리(210) 내에 정점 데이터가 저장되어 있는 위치에 해당하는 주소값(301)을 입력받는다. 캐쉬 메모리 제어부(230)는 입력된 정점 데이터 캐쉬 메모리 주소값(301)을 정점 데이터 식별 정보로서 태그 메모리(320)에 저장한다.
도 3은 캐쉬 히트 여부를 판단하기 위한 정점 데이터 식별 정보로서 정점 데이터 캐쉬 메모리 주소값(301)을 태그 메모리에 저장하는 것을 예시하고 있으나, 본 발명과 관련된 정점 데이터 식별 정보는 각각의 정점을 식별하게 하는 여하한 식별자로도 구성될 수 있다. 예를 들어, 정점 데이터 식별 정보는 그래픽 라이브 러리가 제공하는 API 함수 등을 통해 사용자로부터 입력된 각 정점의 인덱스를 포함할 수 있다.
한편, 태그 메모리(320)는 연산 데이터 캐쉬 메모리(200)의 캐쉬 히트 여부를 판별하는 지시자(indicator) 역할을 하는 정점 데이터 식별 정보를 저장하는데, 태그 메모리(320)와 캐쉬 메모리 어레이(310)는 동일한 엔트리 주소에 동일한 정점에 대한 정점 데이터 식별 정보와 3차원 그래픽 연산 결과를 각각 저장할 수 있다. 즉, 정점 a 에 대한 정점 데이터 식별 정보가 태그 메모리의 0x01 번지에 저장되어 있다면, 캐쉬 메모리 어레이의 0x01 번지에는 정점 a 의 3차원 그래픽 연산 결과들이 저장된다.
일실시예에 따르면, 정점 데이터 캐쉬 메모리(210)는 처리 순서 버퍼를 포함하는데, 이 처리 순서 버퍼에는 처리해야 할 정점과 관련된 정점 데이터가 저장된 주소값이 사용자로부터 입력된 정점 처리 순서에 따라 저장된다. 캐쉬 메모리 제어부(230)는 정점 데이터 캐쉬 메모리의 처리 순서 버퍼로부터 정점 데이터 캐쉬 메모리 주소값(301), 즉 처리되어야 할 정점과 관련된 정점 데이터가 저장된 주소값을 가져와 태그 메모리(320)의 엔트리들과 비교하여 캐쉬 히트 여부를 판단한다.
외부로부터, 예를 들어 프리미티브 생성부(240)로부터 3차원 그래픽 연산 명령이 수신되면, 캐쉬 메모리 제어부(330)는 정점 데이터 캐쉬 메모리의 처리 순서 버퍼로부터 정점 데이터 캐쉬 메모리 주소값(301)을 가져와서 이 값을 태그 메모리의 엔트리들과 비교한다. 비교 결과, 정점 데이터 캐쉬 메모리 주소값(301)과 일치하는 값이 저장된 태그 메모리 엔트리가 발견된 경우에, 캐쉬 메모리 제어 부(330)는 캐쉬 히트로 판단하고 발견된 엔트리의 주소값에 대응하는 캐쉬 메모리 어레이(310)의 주소에서 그래픽 연산 결과를 독출한다.
한편, 비교 결과, 정점 데이터 캐쉬 메모리 주소값(301)과 일치하는 값이 저장된 태그 메모리 엔트리가 발견되지 않은 경우에는, 캐쉬 메모리 제어부(330)는 캐쉬 미스로 판단한다. 이 경우, 캐쉬 메모리 제어부(330)는 가져온 정점 데이터 캐쉬 메모리 주소값(301)을 T&L 엔진(230)에 그래픽 연산 명령과 함께 전달하여, 해당 정점에 대한 3차원 그래픽 연산이 수행되도록 한다. T&L 엔진(230)에 의해 생성된 연산 결과(302)는 다시 연산 데이터 캐쉬 메모리(200)로 전달되고, 캐쉬 메모리 제어부(330)는 상기 연산 결과(302)를 캐쉬 메모리 어레이(310)에 추가 저장한다. 또한, 상기 연산 결과(302)가 저장되는 엔트리의 주소값에 대응하는 태그 메모리(320)의 주소에 상기 정점 데이터 캐쉬 메모리 주소값(301)이 추가 저장된다.
연산 데이터 캐쉬 메모리(200)에 새로운 값을 추가 저장할 때마다 캐쉬 메모리 제어부(330)는 소정의 교체 알고리즘에 따라 종전에 저장되어 있던 연산 결과들 중에서 어느 하나를 캐쉬 메모리 어레이(310)로부터 제거할 수 있다. 제거되는 연산 결과는 일반적으로 가장 히트 확률이 낮은 연산 결과이며, 제거될 연산 결과를 선택하는 교체 알고리즘으로는 최소 최근 사용(Least Recently Used, LRU) 알고리즘, 선입선출(First-In-First-Out, FIFO) 알고리즘, 최소 사용 빈도(Least Frequently Used, LFU) 알고리즘, 및 임의 선택(random selection) 알고리즘 등이 있다.
이와 같은 연산 데이터 캐쉬 메모리(200)의 사용이 3차원 그래픽 가속기의 성능 향상에 기여할 수 있는 이유는, 3차원 그래픽 연산의 특수성에 기인한다.
3차원 그래픽의 정점 데이터의 처리 순서는 정점 인덱스 배열을 통해 알 수 있다. 널리 이용되는 공개 그래픽 라이브러리 표준인 OpenGL(Open Graphics Library)에서는 3차원 물체를 시각화하기 위한 함수로서 DrawArray()와 DrawElement()라는 API 함수를 지원한다. 이 중에서 DrawElement() 함수는 사용자에 의해 지정된 순서에 따라 정점 연산을 수행하는 함수이다. 이 때, 흔히 연속되는 프리미티브와 연관된 정점들을 순서대로 처리하도록 명령이 주어지며, 연속되는 프리미티브들 간에는 공유하는 정점들이 있게 된다. 따라서, 특정 정점에 대한 그래픽 연산은 최근에 수행되었을 가능성이 높게 되는 것이다.
예를 들어, 삼각형 폴리곤을 사용할 경우 모든 폴리곤들이 인접한 다른 폴리곤들과 두 개씩 정점을 공유한다면, 폴리곤당 대략 한 개의 정점에 대한 3차원 그래픽 연산만을 수행하게 된다. 즉, 종래의 3차원 그래픽 가속기에 비해 연산량이 1/3 로 감소하게 되는 것이다.
이처럼 3차원 그래픽 가속기에 연산 데이터 캐쉬 메모리(200)를 사용함으로써 연산량을 줄이고 전체적인 그래픽 가속기의 성능을 향상시킬 수 있다. 또한, 이에 따라 3차원 그래픽과 관련된 다양한 연산을 빠르게 수행하여 사용자에게 보다 고품질의 3차원 그래픽 영상을 제공할 수 있으며, 보다 다양한 그래픽 애플리케이션을 지원할 수 있다.
본 발명에 따른 연산 데이터 캐쉬 메모리 장치 및 3차원 그래픽 가속기 장치 는 다양한 형태의 디지털 회로 및 아날로그 회로의 조합으로 구현될 수 있으며, 테스트 공정 또는 양산 공정에 의해 생산된 IC(integrated circuit) 칩, 공정 전의 합성 결과, 합성 전단계의 IP(intellectual property) 코어 등의 형태로 제공될 수 있다. 따라서 본 발명은 위와 같은 형태, 유사한 형태, 또는 그 중간 단계의 형태로서 제공되는 모든 결과물에 대하여 적용된다.
도 4는 본 발명에 따른 3차원 그래픽 연산 처리 방법을 단계별로 도시한 흐름도이다.
단계(S410)에서는 외부로부터 3차원 그래픽 연산 명령을 수신한다. 3차원 그래픽 연산 명령은 상기 그래픽 연산 결과를 이용하는 디지털 신호 처리 장치(Digital Signal Processor, DSP) 또는 3차원 그래픽 가속기 내의 프리미티브 생성부(240) 등으로부터 수신된다. 3차원 그래픽 연산 명령은 특정한 정점에 대한 좌표 변환 연산 또는 조명 처리 연산을 포함할 수 있다. 이와 같은 연산을 T&L(Transform & Lighting) 연산이라고 한다.
단계(S420)에서는 수신된 3차원 그래픽 연산 명령에 응답하여, 정점 데이터 캐쉬 메모리(210)로부터 상기 연산 명령과 연관된 정점에 대한 정점 데이터 식별 정보를 가져온다. 정점 데이터 식별 정보는 예컨대 정점 데이터 캐쉬 메모리(210)의 처리 순서 버퍼에 저장된 캐쉬 메모리 주소값일 수 있다.
단계(S430)에서는 가져온 정점 데이터 식별 정보를 이용하여 연산 데이터 캐쉬 메모리(200)의 캐쉬 히트 여부를 판단한다. 구체적으로, 정점 데이터 식별 정보와 일치하는 값이 저장된 태그 메모리(320)의 엔트리가 발견되면 캐쉬 히트로 판 단하고 연산 데이터 캐쉬 메모리(200)로부터 최근에 처리된 3차원 그래픽 연산 결과를 출력한다. 그러나 만약 일치하는 값이 저장된 엔트리가 발견되지 않으면 캐쉬 미스로 판단하고 상기 3차원 그래픽 연산 명령에 따라 T&L 연산을 수행하여 연산 결과를 생성한다(S440). 또한, 이 경우에 생성된 연산 결과는 연산 데이터 캐쉬 메모리(200)에 추가 저장된다(S450).
지금까지 도 4를 참조하여 본 발명에 따른 조명 처리 연산 방법에 대하여 설명하였다. 본 발명에 따른 조명 처리 연산 방법에는 도 1 내지 도 3과 관련하여 상술한 실시예들의 세부 내용이 그대로 적용될 수 있으므로 이하 본 방법과 관련된 세부 내용의 설명은 생략하도록 한다.
본 발명에 따른 3차원 그래픽 연산 처리 방법과 앞서 설명한 연산 데이터 캐쉬 메모리 및 3차원 그래픽 가속기 회로의 생성 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic Media), CD-ROM, DVD와 같은 광기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다.
상기 매체는 프로그램 명령, 데이터 구조 등을 지정하는 신호를 전송하는 반송파를 포함하는 광 또는 금속선, 도파관 등의 전송 매체일 수도 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.
본 발명에 따른 연산 데이터 캐쉬 메모리, 3차원 그래픽 가속기 및 상기 장치들을 이용하여 그래픽 연산을 처리하는 방법은 3차원 그래픽 연산 결과를 연산 데이터 캐쉬 메모리에 저장하고, 각 정점에 대한 그래픽 연산을 수행하기 전에 연산 데이터 캐쉬를 참조함으로써 프리미티브들 간에 공유되는 정점들에 대한 중복 연산을 막고 3차원 그래픽 연산의 효율을 향상시킬 수 있다.
또한, 이에 따라 T&L 엔진과 3차원 그래픽 가속기 전체의 동작 효율을 향상시켜 3차원 그래픽 연산의 속도를 증가시킬 수 있다.
또한, 이에 따라 3차원 그래픽과 관련된 다양한 연산을 빠르게 수행하여 사용자에게 보다 고품질의 3차원 그래픽 영상을 제공할 수 있으며, 보다 다양한 그래픽 애플리케이션을 지원할 수 있다.
또한, 본 발명에 따르면 정점 데이터 캐쉬 메모리에 정점 데이터가 저장된 주소값을 이용하여 연산 데이터 캐쉬 메모리의 캐쉬 히트 여부를 판단함으로써, 연산 결과를 저장하는 연산 데이터 캐쉬 메모리가 정점 데이터 캐쉬 메모리와 효과적으로 연동하게 할 수 있다.

Claims (15)

  1. 3차원 공간상의 정점들에 대한 그래픽 연산 결과들을 저장하는 캐쉬 메모리 어레이;
    상기 그래픽 연산 결과들에 대응하는 정점 데이터 식별 정보를 저장하는 태그 메모리; 및
    그래픽 연산 명령을 수신하고, 상기 그래픽 연산 명령에 대응하는 정점 데이터 식별 정보와 상기 태그 메모리의 엔트리들을 비교하여 상기 그래픽 연산 결과의 캐쉬 히트 여부를 판단하는 캐쉬 메모리 제어부
    를 포함하는 것을 특징으로 하는 캐쉬 메모리 장치.
  2. 제1항에 있어서,
    상기 캐쉬 메모리 제어부는 상기 비교 결과, 상기 그래픽 연산 명령에 대응하는 정점 데이터 식별 정보와 일치하는 값이 저장된 엔트리를 발견한 경우, 캐쉬 히트로 판단하고 상기 발견된 엔트리에 대응하는 그래픽 연산 결과를 상기 캐쉬 메모리 어레이로부터 독출하는 것을 특징으로 하는 캐쉬 메모리 장치.
  3. 제1항에 있어서,
    그래픽 연산에 파라미터로 이용되는 정점 데이터를 저장하는 정점 데이터 캐쉬 메모리를 더 포함하고,
    상기 태그 메모리는 상기 정점 데이터 캐쉬 메모리 내에 상기 정점 데이터가 저장되어 있는 주소값을 상기 정점 데이터 식별 정보로서 저장하는 것
    을 특징으로 하는 캐쉬 메모리 장치.
  4. 제1항에 있어서,
    상기 캐쉬 메모리 어레이는 상기 그래픽 연산 결과를 종류별로 저장하는 복수의 메모리 블록을 포함하는 것을 특징으로 하는 캐쉬 메모리 장치.
  5. 제1항에 있어서,
    상기 그래픽 연산 결과는 클리핑 좌표, 텍스쳐 좌표, 정점 크기, 전면 색상, 및 배면 색상 중에서 적어도 하나를 포함하는 것을 특징으로 하는 캐쉬 메모리 장치.
  6. 3차원 공간상의 정점들에 대한 그래픽 연산을 수행하는 3차원 그래픽 가속기 장치에 있어서,
    상기 정점들에 대한 그래픽 연산을 수행하여 정점 연산 결과들을 생성하는 정점 연산부;
    상기 그래픽 연산에 파라미터로 이용되는 정점 데이터를 저장하는 정점 데이터 캐쉬 메모리; 및
    상기 생성된 정점 연산 결과들 및 상기 정점 연산 결과들에 대응하는 정점 데이터 식별 정보를 저장하는 연산 데이터 캐쉬 메모리
    를 포함하고,
    상기 정점 연산부가 그래픽 연산 명령을 수신하는 경우에, 상기 연산 데이터 캐쉬 메모리는 상기 그래픽 연산 명령과 연관된 정점의 정점 데이터 식별 정보를 상기 연산 데이터 캐쉬 메모리에 저장된 정점 데이터 식별 정보와 비교하여 캐쉬 히트 여부를 판단하는 것
    을 특징으로 하는 3차원 그래픽 가속기 장치.
  7. 제6항에 있어서,
    상기 정점 데이터 식별 정보는 상기 정점 데이터 캐쉬 메모리 내에 상기 정점 데이터가 저장되어 있는 주소값인 것을 특징으로 하는 3차원 그래픽 가속기 장치.
  8. 청구항 8은(는) 설정등록료 납부시 포기되었습니다.
    제6항에 있어서,
    상기 연산 데이터 캐쉬 메모리는 상기 판단 결과 캐쉬 히트인 경우에, 상기 연산 데이터 캐쉬 메모리에 저장된 정점 연산 결과를 독출하는 것을 특징으로 하는 3차원 그래픽 가속기 장치.
  9. 제6항에 있어서,
    상기 연산 데이터 캐쉬 메모리는 상기 판단 결과 캐쉬 미스인 경우에, 상기 정점 연산부로 상기 그래픽 연산 명령을 전송하여 상기 정점 연산 결과를 생성하도록 하는 것을 특징으로 하는 3차원 그래픽 가속기 장치.
  10. 청구항 10은(는) 설정등록료 납부시 포기되었습니다.
    제6항에 있어서,
    상기 정점 연산부는 상기 정점에 대한 좌표 변환 연산 또는 조명 연산을 수행하는 것을 특징으로 하는 3차원 그래픽 가속기 장치.
  11. 3차원 공간상의 정점에 대한 그래픽 연산 처리 방법에 있어서,
    상기 정점에 대한 그래픽 연산 명령을 수신하는 단계;
    상기 그래픽 연산 명령에 응답하여, 상기 그래픽 연산에 파라미터로 이용되는 정점 데이터를 저장하는 정점 데이터 캐쉬 메모리로부터 상기 정점에 대응하는 정점 데이터 식별 정보를 추출하는 단계;
    상기 정점 데이터 식별 정보가 기처리된 그래픽 연산 결과를 저장하는 연산 데이터 캐쉬 메모리의 태그 메모리 엔트리들의 값과 일치하는지 비교하여 캐쉬 히트 여부를 판단하는 단계; 및
    상기 판단 결과 캐쉬 히트인 경우에 상기 연산 데이터 캐쉬 메모리로부터 상기 그래픽 연산 결과를 출력하는 단계
    를 포함하는 것을 특징으로 하는 그래픽 연산 처리 방법.
  12. 제11항에 있어서,
    상기 판단 결과 캐쉬 미스인 경우에 상기 그래픽 연산 명령에 따라 그래픽 연산을 수행하는 단계
    를 더 포함하는 것을 특징으로 하는 그래픽 연산 처리 방법.
  13. 청구항 13은(는) 설정등록료 납부시 포기되었습니다.
    제12항에 있어서,
    상기 정점의 데이터 식별 정보 및 상기 그래픽 연산의 수행에 의해 생성된 그래픽 연산 결과를 상기 연산 데이터 캐쉬 메모리에 추가 저장하는 단계
    를 더 포함하는 것을 특징으로 하는 그래픽 연산 처리 방법.
  14. 청구항 14은(는) 설정등록료 납부시 포기되었습니다.
    제11항에 있어서,
    상기 정점 데이터 식별 정보는 상기 정점 데이터 캐쉬 메모리에서 상기 정점 데이터가 저장된 주소값을 포함하는 것을 특징으로 하는 그래픽 연산 처리 방법.
  15. 청구항 15은(는) 설정등록료 납부시 포기되었습니다.
    제11항 내지 제14항 중 어느 하나의 항에 따른 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체.
KR1020060064906A 2006-07-11 2006-07-11 3차원 그래픽 연산을 위한 그래픽 가속기 장치 및 캐쉬메모리 장치, 및 3차원 그래픽 연산 처리 방법 KR100817237B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060064906A KR100817237B1 (ko) 2006-07-11 2006-07-11 3차원 그래픽 연산을 위한 그래픽 가속기 장치 및 캐쉬메모리 장치, 및 3차원 그래픽 연산 처리 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060064906A KR100817237B1 (ko) 2006-07-11 2006-07-11 3차원 그래픽 연산을 위한 그래픽 가속기 장치 및 캐쉬메모리 장치, 및 3차원 그래픽 연산 처리 방법

Publications (2)

Publication Number Publication Date
KR20080006134A KR20080006134A (ko) 2008-01-16
KR100817237B1 true KR100817237B1 (ko) 2008-03-27

Family

ID=39220004

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060064906A KR100817237B1 (ko) 2006-07-11 2006-07-11 3차원 그래픽 연산을 위한 그래픽 가속기 장치 및 캐쉬메모리 장치, 및 3차원 그래픽 연산 처리 방법

Country Status (1)

Country Link
KR (1) KR100817237B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100882842B1 (ko) * 2007-02-26 2009-02-17 삼성전자주식회사 피포를 포스트 버텍스 캐쉬처럼 사용하기 위한 기하학 처리장치와 그 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5821940A (en) 1992-08-03 1998-10-13 Ball Corporation Computer graphics vertex index cache system for polygons
KR20060116916A (ko) * 2005-05-11 2006-11-16 삼성전자주식회사 텍스쳐 캐쉬 및 이를 구비한 3차원 그래픽 시스템, 그리고그것의 제어 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5821940A (en) 1992-08-03 1998-10-13 Ball Corporation Computer graphics vertex index cache system for polygons
KR20060116916A (ko) * 2005-05-11 2006-11-16 삼성전자주식회사 텍스쳐 캐쉬 및 이를 구비한 3차원 그래픽 시스템, 그리고그것의 제어 방법

Also Published As

Publication number Publication date
KR20080006134A (ko) 2008-01-16

Similar Documents

Publication Publication Date Title
EP3008701B1 (en) Using compute shaders as front end for vertex shaders
KR100510131B1 (ko) 픽셀 캐쉬 및 이를 이용한 3차원 그래픽 가속 장치 및 방법
JP5518967B2 (ja) グラフィック・パフォーマンス改善のための方法、装置およびコンピュータ・プログラム・プロダクト
JP4598031B2 (ja) 加速された開始タイル探索
US10102662B2 (en) Primitive culling using automatically compiled compute shaders
KR100703709B1 (ko) 그래픽스 처리장치와 처리방법, 및 그 기록 매체
US10432914B2 (en) Graphics processing systems and graphics processors
JP2016509718A (ja) ビジビリティ情報を用いたグラフィックスデータのレンダリング
KR102266962B1 (ko) 그래픽 파이프라인의 메모리 사용 감소를 위한 컴파일러 지원 기술
KR20190093579A (ko) z-컬링 후 중첩 단편들 식별 또는 제거
US20220206950A1 (en) Selective generation of miss requests for cache lines
JP2020513631A (ja) アウトオブオーダキャッシュリターン
KR20200067222A (ko) 그래픽스 파이프라인에서의 인덱스들의 압축 및 압축 해제
US10417736B2 (en) Graphics processing unit and method of controlling cache bypass thereof
US9898838B2 (en) Graphics processing apparatus and method for determining level of detail (LOD) for texturing in graphics pipeline
JP7121019B2 (ja) アウトオブオーダのピクセルシェーダのエクスポート
KR20170025099A (ko) 렌더링 방법 및 장치
US10049487B2 (en) Identifying duplicate indices in an input index stream
KR100817237B1 (ko) 3차원 그래픽 연산을 위한 그래픽 가속기 장치 및 캐쉬메모리 장치, 및 3차원 그래픽 연산 처리 방법
CN113838180A (zh) 一种渲染指令处理方法及其相关设备
US11620724B2 (en) Cache replacement policy for ray tracing
US20230298261A1 (en) Distributed visibility stream generation for coarse grain binning
de Lucas et al. Ultra-low power render-based collision detection for CPU/GPU systems
KR20230028373A (ko) 비닝 하드웨어에서 세분화 재생 제어
CN116385253A (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: 20130221

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140303

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150302

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20180226

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20190225

Year of fee payment: 12