KR100883804B1 - 압축부 및 복원부를 포함하는 3차원 그래픽 처리 장치 - Google Patents

압축부 및 복원부를 포함하는 3차원 그래픽 처리 장치 Download PDF

Info

Publication number
KR100883804B1
KR100883804B1 KR1020070047826A KR20070047826A KR100883804B1 KR 100883804 B1 KR100883804 B1 KR 100883804B1 KR 1020070047826 A KR1020070047826 A KR 1020070047826A KR 20070047826 A KR20070047826 A KR 20070047826A KR 100883804 B1 KR100883804 B1 KR 100883804B1
Authority
KR
South Korea
Prior art keywords
data
depth
color
unit
compression
Prior art date
Application number
KR1020070047826A
Other languages
English (en)
Other versions
KR20080101274A (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 KR1020070047826A priority Critical patent/KR100883804B1/ko
Publication of KR20080101274A publication Critical patent/KR20080101274A/ko
Application granted granted Critical
Publication of KR100883804B1 publication Critical patent/KR100883804B1/ko

Links

Images

Classifications

    • 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
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/04Indexing scheme for image data processing or generation, in general involving 3D image data
    • 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)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Image Generation (AREA)

Abstract

본 발명은 속도가 향상된 3차원 그래픽 처리 장치에 대한 것으로서 본 발명에 따른 3차원 그래픽 처리 장치는 그래픽 처리 유닛(Graphic Processing Unit)과 외부 DRAM(Dynamic Random Access Memory)를 구비하고, 상기 그래픽 처리 유닛은 깊이 버퍼 메모리, 깊이 데이터를 압축하기 위한 깊이 데이터 압축부 및 상기 깊이 데이터 압축부에서 압축된 깊이 데이터의 압축률을 비교하는 깊이 데이터 압축율 비교부를 포함하며, 상기 깊이 데이터의 압축률에 따라 압축된 깊이 데이터를 상기 깊이 버퍼 메모리에 저장하거나, 압축되지 않은 깊이 데이터를 상기 외부 DRAM에 저장하도록 구성된다.
Figure R1020070047826
GPU, 깊이 비교, 알파 블렌딩, 외부 DRAM, 내부 SRAM, 압축률

Description

압축부 및 복원부를 포함하는 3차원 그래픽 처리 장치{3-dimensional graphic managing apparatus including compression part and decompression part}
도 1a는 일반적인 래스터 처리 파이프라인을 나타내는 개념도,
도 1b는 종래 전형적인 3차원 그래픽 처리 장치를 나타내는 개념도,
도 1c는 데이터 압축방식과 외부 DRAM를 사용하는 3차원 그래픽 처리 장치를 나타내는 개념도,
도 1d는 내부 SRAM과 외부 SRAM을 사용하는 3차원 그래픽 처리 장치를 나타내는 개념도,
도 2는 본 발명에 따른 3차원 그래픽 처리 장치를 나타내는 개념도,
도 3는 본 발명의 일실시예에 따른 3차원 그래픽 처리 장치의 전체 구조도,
도 4는 본 발명에 따른 3차원 그래픽 처리 장치에서의 압축과 복원 흐름도,
도 5는 본 발명의 일실시예에 따른 압축부의 구조도,
도 6는 본 발명의 일실시예에 따른 복원부의 구조도이다.
<도면의 주요부분에 대한 부호의 설명>
301: 깊이 데이터 압축부 302: 깊이 데이터 복원부
303: 깊이 데이터 압축율 비교부 304: 깊이 데이터 압축 플래그
305: 깊이 데이터 내부 SRAM 306: 깊이 데이터 멀티플렉서
307: 깊이 캐시 311: 색상 데이터 압축부
312: 색상 데이터 복원부 313: 색상 데이터 압축율 비교부
314: 색상 데이터 압축 플래그 315: 색상 데이터 내부 SRAM
316: 색상 데이터 멀티플렉서 317: 색상 캐시
321: 출력용 색상 데이터 복원부 322: 출력부 멀티플렉서
323: 디스플레이 제어기 501: 압축 알고리즘 처리기
502: 코드 생성기 503: 압축부 멀티플렉서 제어기
504: 압축부 멀티플렉서 505: 압축율 비교부
601: 복원 알고리즘 처리기 602: 복원부 멀티플렉서
603: 복원부 멀티플렉서 제어기 604: 데이터 생성기
본 발명은 속도가 향상된 3차원 그래픽 처리 장치에 대한 것으로서, 특히 캐시 미스 발생시의 병목 현상을 없애 빠른 성능을 가지면서 작은 용량의 내부 SRAM을 사용하여 경제적인 3차원 그래픽 처리 장치에 대한 것이다.
3차원 그래픽 처리 과정은 크게 기하학 처리(Geometry processing)와 래스터 처리(Rasterization)으로 나뉜다. 기하학 처리에서는 삼각형을 이루는 정점들을 시점에 맞추어서 변환 시키고 각 정점들에 대해 해당 조명 모델에 따라 색상을 계산한다. 래스터 처리에서는 기하학 처리된 삼각형을 최종 픽셀로 변환하여 텍스처 매핑(texture mapping), 깊이 비교(depth compare), 알파 블랜딩(alpha blending) 등을 수행한다.
전형적인 픽셀 처리 파이프라인은 도 1a과 같다. 입력되는 프래그먼트 정보(fragment information)는 보간을 통하여 생성된 픽셀의 색상 값, 3차원 위치 좌표인 (x, y, z), 텍스처 좌표 등이 포함된다. 텍스처 매핑 파이프라인(texture mapping pipeline) 단계에서는 해당 텍스처 좌표에 대하여 4개 또는 8개의 텍셀(texel)을 메모리로부터 읽기 연산을 하고 필터링을 수행하여 한 개의 텍셀을 생성하고, 이를 입력되는 프래그먼트 정보의 일부인 색상 값과 혼합하고, 이에 대한 알파(alpha) 값을 검사한다. 여기서 알파 값은 투명도를 나타낸다. 평가의 결과가 성공이면 다음 파이프라인으로 계속 진행이 되고 실패이면 다음 파이프라인으로 진행되지 않고 현재의 프래그먼트 정보는 버려진다.
텍스처 매핑 파이프라인 이후에 수행되는 깊이 비교 파이프라인(Depth-test pipeline) 단계에서는 프레임 메모리(또는 프레임 버퍼)로부터 깊이 값에 대한 읽기 연산을 수행하고 현재의 프래그먼트에 대한 깊이 값과 비교한다. 만약 검사의 결과가 실패이면, 즉 현재의 프래그먼트가 이전에 처리된 영상으로 인하여 안보이면, 현재의 프래그먼트는 파이프라인에서 버려지게 된다. 만약 성공이면 현재의 프래그먼트의 깊이 값은 프레임 메모리에 저장된 깊이 버퍼에 쓰여지게 된다. 알파 블렌딩 파이프라인 (Alpha-blending pipeline)단계에서는 메모리로부터 색상 값에 대한 읽기 연산이 수행되고, 이 값과 파이프라인에서 현재까지 처리된 색상 값에 대하여 알파 블렌딩이 수행되고, 최종적인 색상 값은 프레임 메모리에 저장된 색상 버퍼에 쓰여지게 된다.
도 1b는 전형적인 3차원 그래픽 가속기의 경우로써, 내부에 텍스처 캐시, 깊이 캐시, 색상 캐시가 존재하고 외부 DRAM에 텍스처 데이터, 깊이 버퍼, 색상 버퍼가 존재한다. 각각의 Cache는 외부 DRAM에 대한 메모리 대역폭을 줄이고 고속의 메모리 참조를 가능하게 하며 성능을 상당히 올릴 수 있기 때문에 현대의 3차원 그래픽 가속기는 이를 대부분 채택하고 있다. 하지만 제한된 Cache 크기로 인하여 전체 프레임에 해당하는 픽셀 데이터는 외부 DRAM에 저장 되어야 한다. 이로 인하여, 캐시 미스 등으로 인한 외부 DRAM의 참조시 긴 지연 대기 시간으로 인하여 병목현상이 발생하여 성능 저하가 심각하게 발생할 수 있다.
도 1c은 데이터 압축을 사용하고 외부 DRAM을 사용하는 방식이다. 이는 고성능 3차원 그래픽 프로세서에서 깊이 데이터를 무손실 압축하는 방안에 대한 것이나 이때 데이터 압축의 목적은 데이터의 저장이 아니라 외부 DRAM과의 메모리 대역폭을 줄이는 것이다. 깊이 데이터를 압축하여 외부 DRAM에 저장하기 때문에 메모리 대역폭이 다소 줄어드나, DRAM의 긴 지연 대기 시간으로 인한 병목 현상은 해결되기 어렵다.
도 1d의 경우 내부 SRAM에 깊이 버퍼 및 색상 버퍼를 저장하며, 내부 SRAM의 크기가 충분하지 않을 때는 외부 SRAM을 이용한다. 내부 SRAM이 DRAM에 비해서 지 연대기 시간이 매우 짧기 때문에 성능 면에서 가장 뛰어나다. 하지만, 깊이 데이터 및 색상 데이터에 대한 압축을 하지 않기 때문에 기본적으로 필요한 내부 SRAM의 크기가 매우 크다는 단점이 있어서 비용 면에서 부담이 크다.
본 발명의 목적은 병목 현상을 없애 빠른 성능을 가지는 3차원 그래픽 처리 장치를 제공하는데 있다.
본 발명의 다른 목적은 비용이 저렴하여 경제적인 3차원 그래픽 처리 장치를 제공하는데 있다.
본 발명의 상기 목적은 그래픽 처리 유닛(Graphic Processing Unit)과 외부 DRAM(Dynamic Random Access Memory)를 구비하고, 상기 그래픽 처리 유닛은 깊이 버퍼 메모리, 깊이 데이터를 압축하기 위한 깊이 데이터 압축부 및 상기 깊이 데이터 압축부에서 압축된 깊이 데이터의 압축률을 비교하는 깊이 데이터 압축율 비교부를 포함하며, 상기 깊이 데이터의 압축률에 따라 압축된 깊이 데이터를 상기 깊이 버퍼 메모리에 저장하거나, 압축되지 않은 깊이 데이터를 상기 외부 DRAM에 저장하도록 구성되는 3차원 그래픽 처리 장치에 의해 달성된다.
본 발명에 따른 3차원 그래픽 처리 장치에서 상기 그래픽 처리 유닛은 색상 버퍼 메모리, 색상 데이터를 압축하기 위한 색상 데이터 압축부 및 상기 색상 데이 터 압축부에서 압축된 색상 데이터의 압축률을 비교하는 색상 데이터 압축율 비교부를 더 포함하며, 상기 색상 데이터의 압축률에 따라 압축된 색상 데이터를 상기 색상 버퍼 메모리에 저장하거나, 압축되지 않은 색상 데이터를 상기 외부 DRAM에 저장하도록 구성되고, 상기 깊이 버퍼 메모리와 상기 색상 버퍼 메모리는 내부 SRAM(Static Random Access Memory)로 이루어지는 것이 바람직하다.
본 발명에 따른 3차원 그래픽 처리 장치에서 상기 그래픽 처리 유닛은 상기 깊이 데이터와 상기 색상 데이터를 블록화하여 블록별로 압축 및 저장하고, 상기 깊이 데이터가 상기 깊이 버퍼 메모리와 상기 외부 DRAM 중 어느 곳에 저장되었는지에 대한 정보를 저장하는 깊이 데이터 압축 플래그 및 상기 색상 데이터가 상기 색상 버퍼 메모리와 상기 외부 DRAM 중 어느 곳에 저장되었는지에 대한 정보를 저장하는 색상 데이터 압축 플래그와 상기 깊이 버퍼 메모리에 저장된 압축된 깊이 데이터 복원하는 깊이 데이터 복원부 및 상기 색상 버퍼 메모리에 저장된 압축된 색상 데이터 복원하는 색상 데이터 복원부를 더 포함하는 것이 바람직하다.
본 발명에 따른 3차원 그래픽 처리 장치에서 상기 그래픽 처리 유닛은 상기 깊이 데이터 압축 플래그의 정보에 따라 상기 깊이 데이터가 저장된 장소로부터 상기 깊이 데이터를 출력하는 깊이 데이터 멀티플렉서 및 상기 색상 데이터 압축 플래그의 정보에 따라 상기 색상 데이터가 저장된 장소로부터 상기 색상 데이터를 출력하는 색상 데이터 멀티플렉서를 더 포함하는 것이 바람직하며, 이때 본 발명에 따른 3차원 그래픽 처리 장치는 상기 깊이 데이터 또는 색상 데이터의 압축률이 기준값 이상인 경우 압축된 깊이 데이터 또는 색상 데이터를 상기 내부 SRAM에 저장하고, 기준값 이하인 경우 압축되지 않은 깊이 데이터 또는 색상 데이터를 상기 외부 DRAM에 저장하는 것이 바람직하다.
본 발명에 따른 3차원 그래픽 처리 장치는 본 발명에 따른 3차원 그래픽 처리 장치는 출력용 색상 데이터 복원부 및 출력부 멀티플렉서를 더 포함하고, 스크린 리플레쉬(Screen refresh)가 발생한 경우 상기 출력부 멀티플렉서는 상기 색상 데이터 압축 플래그를 참조하여 내부 SRAM에 색상 데이터의 블록이 저장된 경우에는 내부 SRAM의 색상 데이터를 상기 출력용 색상 데이터 복원부에서 복원하여 출력하고, 외부 DRAM에 색상 데이터가 저장된 경우에는 외부 DRAM의 색상 데이터를 출력하는 것이 바람직하다.
본 발명에 따른 3차원 그래픽 처리 장치에서 상기 깊이 데이터 압축부 또는 상기 색상 데이터 압축부는, 원본 깊이 데이터 또는 원본 색상 데이터에 대해 압축 알고리즘 처리하는 압축 알고리즘 처리기, 압축 알고리즘 처리된 데이터 블록의 보정항에 대해 엔트로피 코딩을 수행하고, 압축부 멀티플렉서 제어기를 위한 신호를 생성하는 복수의 코드 생성기, 상기 압축부 멀티플렉서 제어기를 위한 신호를 기초로 압축부 멀티플렉서에 제어 신호를 발생하는 복수의 압축부 멀티플렉서 제어기 및 상기 제어 신호에 해당되는 압축 알고리즘 처리값을 압축 데이터의 데이터 블록으로 전달하는 복수의 압축부 멀티플렉서로 구성되는 것이 바람직하다.
본 발명에 따른 3차원 그래픽 처리 장치에서 상기 깊이 데이터 복원부 또는 상기 색상 데이터 복원부는, 압축 데이터의 코드 블록 값을 디코딩하고, 복원부 멀티플렉서 제어기를 위한 신호와 복원부 멀티플렉서를 위한 데이터를 생성하는 복수 의 데이터 생성기, 상기 복원부 멀티플렉서 제어기를 위한 신호를 기초로 복원부 멀티플렉서를 위한 제어 신호를 발생하는 복수의 복원부 멀티플렉서 제어기, 복수의 복원부 멀티플렉서 및 복원 알고리즘 처리기로 구성되고, 상기 복수의 복원부 멀티플렉서는 상기 압축 데이터의 데이터 블록 escape 값과 상기 복원부 멀티플렉서를 위한 데이터를 상기 제어 신호에 따라 선택적으로 복원 알고리즘 처리기에 출력하고, 상기 복원 알고리즘 처리기는 상기 압축 데이터의 데이터 블록 값 중 증분값을 이용해 상기 복원부 멀티플렉서로부터 받은 데이터를 복원 알고리즘 처리하는 것이 바람직하다.
이하, 본 발명에 의한 압축부 및 복원부를 포함하는 3차원 그래픽 처리 장치를 첨부된 도면을 참조하여 상세히 설명하기로 한다.
본 발명의 상세한 설명에 앞서, 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념을 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다.
따라서, 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시예에 불과할 뿐이고 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형예들이 있을 수 있음을 이해하여야 한다.
본 발명은 도 2에서와 같이 GPU 내부의 깊이 버퍼 메모리 및 색상 버퍼 메모리에 깊이 데이터와 색상 데이터를 압축하여 저장하는 3차원 그래픽 처리 장치에 대한 것으로서 픽셀 캐시(307, 317)에 미스 발생 등으로 인하여 메모리 참조가 요청된 픽셀 데이터(깊이 데이터 또는 색상 데이터)에 대하여 고속으로 압축을 수행하여 압축률이 기준치 이상일 경우 압축된 데이터를 깊이 버퍼 메모리 및 색상 버퍼 메모리인 내부 SRAM에 저장하고 그렇지 않을 경우 압축이 안 된 원본 데이터를 외부 DRAM에 저장한다. 이러한 방식은 도 1b 또는 도 1c의 기술에 비해서는 내부 SRAM에 데이터를 저장할 수 있기 때문에 성능 면에서 장점이 있고 도 1d의 기술에 비해서는 상대적으로 적은 크기의 내장 SRAM을 사용하기 때문에 비용 면에서 장점이 있다.
아울러 본 발명에 따른 3차원 그래픽 처리 장치는 데이터 압축과 복원을 on-the-fly로 처리해야 하기 때문에 이를 고속으로 수행할 수 있는 별도의 압축/복원 처리부를 포함한다.
도 3은 본 발명의 일실시예에 따른 3차원 그래픽 처리 장치의 전체 구조도로서 크게 GPU, 외부 DRAM, LCD로 구분된다. GPU는 렌더링 파이프라인, 픽셀 캐시(307, 317), 내부 SRAM, 픽셀 데이터 압축/복원 처리부로 구성되어 있다. 외부 DRAM에는 압축이 안 된 깊이 데이터와 색상 데이터가 저장된다.
픽셀 데이터 압축/복원 처리부는 깊이 데이터 처리부와 색상 데이터 처리부로 나뉠 수 있다.
깊이 데이터 처리부는 깊이 데이터를 압축하는 깊이 데이터 압축 부(301)(depth block compression)와 압축된 깊이 데이터를 복원하는 깊이 데이터 복원부(302)(depth block decompression), 깊이 데이터를 내부 SRAM(305)과 외부 DRAM 중 어느 장소에 저장할 지를 결정하는 깊이 데이터 압축율 비교부(303), 해당 깊이 블록이 내부 SRAM(305)과 외부 DRAM 중 어느 장소에 저장되어 있는지에 대한 정보를 저장하는 깊이 데이터 압축 플래그(304)(compression flag) 그리고 깊이 데이터 압축 플래그(304)에 저장된 정보에 따라 깊이 데이터 복원부(302)의 결과값과 외부 DRAM의 값 중 어느 하나를 출력하는 깊이 데이터 멀티플렉서(306)(multiplexer)로 구성된다.
색상 데이터 처리부는 깊이 데이터 처리부와 유사하게 깊이 데이터를 압축하는 색상 데이터 압축부(311)(color block compression)와 복원하는 색상 데이터 복원부(312)(color block decompression), 색상 데이터를 내부 SRAM(315)과 외부 DRAM 중 어느 장소에 저장할 지를 결정하는 색상 데이터 압축율 비교부(313), 해당 색상 블록이 내부 SRAM(315)과 외부 DRAM 중 어느 장소에 저장되어 있는지에 대한 정보를 저장하는 색상 데이터 압축 플래그(314)(compression flag) 그리고 색상 데이터 압축 플래그(314)에 저장된 정보에 따라 색상 데이터 복원부(312)(color block decompression)의 결과값과 외부 DRAM의 값 중 어느 하나를 출력하는 색상 데이터 멀티플렉서(316)(multiplexer)로 구성된다.
깊이 데이터 처리부 및 색상 데이터 처리부는 각각 별도의 깊이 또는 색상 버퍼 메모리인 내부 SRAM(305, 315)과 연결되어 있다. 내부 SRAM(305, 315)은 깊이 또는 색상 데이터가 압축된 형태로 전체 해상도에 대하여 저장할 수 있는 용량을 가지며, 외부 DRAM은 깊이 또는 색상 데이터가 압축이 안 된 형태로 전체 해상도에 대하여 저장할 수 있는 용량을 가지도록 구상한다. 깊이 또는 색상 캐시(307, 317)가 내부 SRAM(305, 315) 또는 외부 DRAM을 참조할 때는 캐시 블록 단위로 데이터가 이동하게 된다. 이때, 임의의 깊이 또는 색상 블록은 내부 SRAM(305, 315) 또는 외부 DRAM 중에 한곳만 저장될 수 있으며, 이에 대한 정보는 깊이 또는 색상 데이터에 대한 각각의 압축 플래그(304, 314)(compression flag)에 저장된다. 압축 플래그(304, 314)(Compression flag)에는 모든 깊이 또는 색상 블록에 대하여 각각 1 bit씩 해당하는 플래그를 저장하고 있으며, 해당 블록의 압축 플래그(304, 314)(compression flag) 비트(bit)가 1이면 해당 블록은 압축된 형태로 내부 SRAM(305, 315)에 저장되어 있고 0이면 해당 블록은 압축되지 않은 형태로 외부 DRAM에 존재한다는 것을 의미한다.
GPU 내부와 외부 DRAM 사이에서 데이터는 I/O 버퍼(buffer)를 통하여 이동된다. 디스플레이 즉 예를 들어 LCD에 대한 스크린 리플레쉬(screen refresh) 시 GPU가 색상 버퍼인 내부 SRAM(315)의 내용을 읽어와야 되며, 이때 내부 SRAM(315)의 압축된 색상 데이터를 복원하기 위하여 GPU안에 별도의 출력용 색상 데이터 복원부(321)가 필요하다. 이렇게 함으로써, 대부분의 색상 데이터가 내부 SRAM(315)에 저장되기 때문에 GPU와 외부 DRAM간의 색상 데이터를 읽어오는 메모리 대역폭을 절감하는 효과가 있다.
도 4은 본 발명의 일실시예에 따른 3차원 그래픽 처리 장치에서의 압축과 복원 흐름도를 나타내고 있다. 압축의 경우는 먼저 입력된 데이터의 원본 블 록(original block)에 대하여 깊이(또는 색상) 데이터 압축 알고리즘을 수행한다. 여기서, 입력되는 원본 블록(original block)은 깊이(또는 색상) 캐시(307, 317)에 미스 발생 등으로 인하여 깊이(또는 색상) 캐시(307, 317)로부터 메모리 참조가 요청된 캐시 블록을 의미한다. 그 후, 압축된 데이터에 대하여 압축률이 기준치가 넘는지를 검사하는 압축율 비교를 수행한다. 이 결과 압축률이 기준 이하일 경우 내부 SRAM(305, 315)에 압축된 깊이(또는 색상) 데이터 값이 저장이 되고 압축을 수행한 깊이(또는 색상) 블록에 해당되는 압축 플래그(304, 314)(compression flag)의 비트(bit)에 예를 들어 "1"을 저장한다. 만약 기준 초과일 경우 원본 블록이 외부 DRAM에 저장되고 그 블록에 해당되는 압축 플래그(304, 314)(compression flag)의 비트(bit)에 예를 들어 "0"을 저장한다.
복원의 경우는 해당 깊이(또는 색상) 블록에 대하여 압축 플래그(304, 314)(compression flag)의 그 블록에 해당되는 비트(bit)를 참조한다. 만약 해당 압축 플래그(304, 314)(compression flag) 비트(bit)의 값이 "1"이면 내부 SRAM(305, 315)에서 압축된 데이터 블록을 읽어온 후 복원부에서 복원(decompression)을 수행한다. 복원된 깊이(또는 색상) 데이터 블록은 멀티플렉서(306, 316)를 거쳐서 깊이(또는 색상) 캐시(307, 317)에 저장된다. 만약 "0"이면 외부 DRAM에서 원본 데이터 블록을 읽어온 후 멀티플렉서(306, 316)를 거쳐서 그 원본 데이터 블록을 깊이(또는 색상) 캐시(307, 317)에 저장한다.
스크린 리플레쉬(Screen refresh)가 발생한 경우, 색상 데이터 압축 플래그(314)(compression flag)의 전체 픽셀 데이터의 모든 블록에 대한 비트(bit)를 처음부터 끝까지 순차적으로 참조하여 전체 픽셀 데이터를 출력한다. 이때 참조된 블록의 비트가 "1"이면, 해당 블록은 내부 SRAM(315)에 압축된 형태로 저장되어 있기 때문에 내부 SRAM(315)을 참조하여 출력용 색상 데이터 복원부(321)에서 색상 데이터 블록을 복원을 수행한 후 출력부 멀티플렉서(322)를 거쳐 디스플레이 제어기(323)로 보내진다. 만약 참조된 비트가 "0"이면, 해당 블록은 외부 DRAM에 압축되지 않은 형태로 저장되어 있기 때문에 외부 DRAM을 참조하여 출력부 멀티플렉서(322)를 거쳐 디스플레이로 보내진다.
본 발명의 일실시예에 따른 3차원 그래픽 처리 장치에 적용되는 깊이 또는 색상 데이터 압축부(301) 및 복원부의 데이터 압축 및 복원 방식은 기존의 깊이 또는 색상 데이터에 대한 압축 및 복원 알고리즘이 사용될 수 있다. 도 5 및 도 6는 본 발명의 일실시예에 따른 3차원 그래픽 처리 장치에 적용되는 깊이 또는 색상 데이터 압축부 및 복원부의 예시적인 처리 구조도이다. 본 발명에 사용되는 데이터 압축부 및 복원부는 고속의 압축/복원 처리를 위해 멀티플렉서에 기반한 압축부 및 복원부를 구성한다는 것이 특징이다. 아울러 사용되는 압축 및 복원 알고리즘에 따라 약간의 설계변경만으로도 그 압축 및 복원 알고리즘에 알맞은 멀티플렉서에 기반한 압축부 및 복원부를 재구성하는 것이 가능하다.
도 5는 압축 알고리즘 처리기에서 원본 깊이 또는 색상 데이터에 대해 압축 알고리즘에 따른 패턴을 생성하도록 처리한 후 보정항(correctoin term)을 처리하는 압축부의 구조도이다. 도 5에 도시된 압축부는 압축 알고리즘 처리부(501)와 m개의 코드 생성기(502)(code generator), n개의 멀티플렉서 제어기(503)(mux controller)와 m-to-1 압축부 멀티플렉서(504)로 구성되며, m개의 보정항(correction term)에 대하여 엔트로피 코딩을 수행하고, n개의 escape 값를 처리한다. 이것은 다음과 같은 단계를 수행한다.
1) 압축 알고리즘 처리기(501)에서 블록 데이터에 대해 압축 알고리즘을 수행 후 데이터 원본값과 그에 대한 증분값들은 데이터 블록에 저장되고 나머지 m개의 보정항(correction term)은 각각의 코드 생성기(502)(code generator)와 n개의 m-to-1 압축부 멀티플렉서(504)에 입력된다.
2) 각 코드 생성기는 코드 블록에 저장될 엔트로피 코딩된 두 비트와 멀티플렉서 제어기를 위한 데이터를 생성한다. 먼저, 코드 생성기는 해당 보정항(correction term)의 값에 따라 0은 2비트 00으로 1은 2비트 01로 -1은 2비트 10으로 그 외 escape 값의 경우는 2비트 11로 엔트로피 코딩하여 코드 블록에 값을 저장한다. 그리고, 코드 생성기는 입력 보정항 값이 0, -1, 1 중 하나면 멀티 플렉서 제어기로 1의 값을 출력하고 그렇지 않을 경우 0의 값을 출력한다.
3) 멀티 플렉서 제어기는 m개의 코드 생성기로부터의 입력 값 중 1의 발생 수를 카운트한 다음 주소화하여 m-to-1 멀티 플렉서로 이 값을 출력한다. 이는 결과적으로 i 번째 멀티 플렉서 제어기가 i 번째 escape 값의 위치를 주소화하여 해당 m-to-1 멀티 플렉서로 값을 보내줌으로써, i 번째 m-to-1 멀티 플렉서가 i 번째 escape 값를 데이터 블록으로 출력하도록 한다.
4) m-to-1 압축부 멀티플렉서(504)는 멀티플렉서 제어기(503)로부터 입력된 신호를 바탕으로 해당 주소의 압축 알고리즘 처리된 값을 데이터 블록으로 전달한 다.
5) 압축율 비교(Threshold check)부에서는 코드 생성기(502)로부터 들어온 1의 값을 카운트하여 기준 이하 일 경우 1을 기준 초과일 경우 0을 출력한다.
도 6는 압축된 깊이 또는 색상 데이터를 복원하는 복원부 구조도이다. 도 6에 도시된 복원부는 복원 알고리즘 처리기(601)와 m개의 데이터 생성기(604)(data generator), 멀티플렉서 제어기(603)(mux controller), 복원부 멀티플렉서(602)로 구성되며, m개의 보정항(correction term)에 대하여 엔트로피 디코딩을 수행하고 escape 값를 처리한다. 이것은 다음과 같은 단계를 수행한다.
1) m개 코드 블록(code block) 값은 해당 데이터 생성기(604)에 각각 입력된다. 데이터 블록 중 깊이 또는 색상 데이터 원본값과 증분값들은 복원 알고리즘 처리기(601)에 입력되고 n개 escape 값는 복원부 멀티플렉서(602)에 입력된다.
2) 데이터 생성기(604)에서는 입력 받은 코드(code)값을 디코딩한다. 코드값이 2비트 00, 01, 10일 경우 데이터 생성기(604)는 멀티플렉서 제어기(603)에 0의 값을 입력하고 1-to-8 복원부 멀티플렉서(602)에는 엔트로피 디코딩이 수행된 0, +1, -1중 1개 값을 입력한다. 만약, 코드값이 11일 경우 멀티플렉서 제어기(603)에 1의 값을 입력하고 1-to-8 복원부 멀티플렉서(602)에는 Null 값을 입력한다.
3) 멀티플렉서 제어기(603)는 해당 복원부 멀티플렉서(602)를 제어한다. 만약 i 번째 멀티플렉서 제어기(603)의 i 번째 입력 값이 0일 경우, 멀티플렉서 제어기(603)는 0을 출력함으로써 해당 복원부 멀티플렉서(602)가 i 번째 데이터 생성기(604)에서 생성된 보정항(correction term)값인 0, +1, -1중 1개 값을 출력한다. 입력 값이 0이 아닌 경우, i 번째 멀티플렉서 제어기(603)는 m개 입력 신호를 조사하여 현재의 1이 몇번째(여기서는 k라고 가정) 나온 1인지를 검사하여 이 값을 해당 복원부 멀티플렉서(602)로 출력함으로써 데이터 블록의 n개의 escape 값 중 k 번째 값이 i 번째 복원부 멀티플렉서(602)를 통하여 복원 알고리즘 처리기(601)로 보내진다.
4) 각각의 복원부 멀티플렉서(602)는 데이터 블록에 저장된 n개의 escape 값과 해당 데이터 생성기(604)에서 생성된 한 개의 보정항(correction term)을 입력 받아 해당 멀티플렉서 제어기(603)의 결과 값에 따라서 선택적으로 값을 출력한다.
본 발명에 따른 3차원 그래픽 처리 장치는 캐시 미스 발생시의 병목 현상을 없애 빠른 성능을 가지면서 작은 용량의 내부 SRAM을 사용하고, 동시에 외부 DRAM을 사용할 수 있어 제조 비용이 저렴해 경제적이라는 이점이 있다. 또한, 본 발명에서의 압축부 및 복원부는 멀티플렉서를 사용함으로써 고속의 압축 및 복원이 가능하다.

Claims (10)

  1. 그래픽 처리 유닛(Graphic Processing Unit)과 외부 DRAM(Dynamic Random Access Memory)를 구비하고, 상기 그래픽 처리 유닛은,
    깊이 버퍼 메모리;
    원본 깊이 데이터를 압축하기 위한 깊이 데이터 압축부; 및
    상기 깊이 데이터 압축부에서 압축된 깊이 데이터의 압축률을 비교하는 깊이 데이터 압축율 비교부
    를 포함하며, 상기 깊이 데이터의 압축률에 따라 상기 압축된 깊이 데이터를 상기 깊이 버퍼 메모리에 저장하거나, 상기 원본 깊이 데이터를 상기 외부 DRAM에 저장하도록 구성되는 3차원 그래픽 처리 장치.
  2. 제 1 항에 있어서, 상기 그래픽 처리 유닛은,
    색상 버퍼 메모리;
    원본 색상 데이터를 압축하기 위한 색상 데이터 압축부; 및
    상기 색상 데이터 압축부에서 압축된 색상 데이터의 압축률을 비교하는 색상 데이터 압축율 비교부
    를 더 포함하며, 상기 색상 데이터의 압축률에 따라 상기 압축된 색상 데이터를 상기 색상 버퍼 메모리에 저장하거나, 상기 원본 색상 데이터를 상기 외부 DRAM에 저장하도록 구성되는 3차원 그래픽 처리 장치.
  3. 제 2 항에 있어서,
    상기 깊이 버퍼 메모리와 상기 색상 버퍼 메모리는 내부 SRAM(Static Random Access Memory)로 이루어지는 3차원 그래픽 처리 장치.
  4. 제 3 항에 있어서,
    상기 그래픽 처리 유닛은 상기 원본 깊이 데이터와 상기 원본 색상 데이터를 블록별로 압축 및 저장하고,
    상기 깊이 데이터가 상기 깊이 버퍼 메모리와 상기 외부 DRAM 중 어느 곳에 저장되었는지에 대한 정보를 저장하는 깊이 데이터 압축 플래그; 및
    상기 색상 데이터가 상기 색상 버퍼 메모리와 상기 외부 DRAM 중 어느 곳에 저장되었는지에 대한 정보를 저장하는 색상 데이터 압축 플래그
    를 더 포함하는 3차원 그래픽 처리 장치.
  5. 제 4 항에 있어서, 상기 그래픽 처리 유닛은,
    상기 깊이 버퍼 메모리에 저장된 상기 압축된 깊이 데이터를 복원하는 깊이 데이터 복원부; 및
    상기 색상 버퍼 메모리에 저장된 상기 압축된 색상 데이터를 복원하는 색상 데이터 복원부
    를 더 포함하는 3차원 그래픽 처리 장치.
  6. 제 5 항에 있어서,
    상기 깊이 데이터 압축 플래그의 정보에 따라 상기 복원된 깊이 데이터나 상기 원본 깊이 데이터를 출력하는 깊이 데이터 멀티플렉서; 및
    상기 색상 데이터 압축 플래그의 정보에 따라 상기 복원된 색상 데이터나 상기 원본 색상 데이터를 출력하는 색상 데이터 멀티플렉서
    를 더 포함하는 3차원 그래픽 처리 장치.
  7. 제 5 항에 있어서,
    상기 깊이 데이터 또는 색상 데이터의 압축률이 기준값 이상인 경우 압축된 깊이 데이터 또는 색상 데이터를 상기 내부 SRAM에 저장하고, 기준값 이하인 경우 압축되지 않은 깊이 데이터 또는 색상 데이터를 상기 외부 DRAM에 저장하는 3차원 그래픽 처리 장치.
  8. 제 7 항에 있어서,
    상기 색상 버퍼 메모리의 압축된 색상 데이터를 복원하는 출력용 색상 데이터 복원부; 및
    출력부 멀티플렉서
    를 더 포함하고, 스크린 리플레쉬(Screen refresh)가 발생한 경우 상기 색상 데이터 압축 플래그를 참조하여, 상기 출력부 멀티플렉서는 상기 색상 버퍼 메모리에 압축된 색상 데이터가 저장된 경우에 상기 출력용 색상 데이터 복원부에서 복원된 색상 데이터를 출력하고, 외부 DRAM에 상기 원본 색상 데이터가 저장된 경우에 상기 원본 색상 데이터를 출력하는 3차원 그래픽 처리 장치.
  9. 제 7 항에 있어서, 상기 깊이 데이터 압축부 또는 상기 색상 데이터 압축부는,
    원본 깊이 데이터 또는 원본 색상 데이터에 대해 압축 알고리즘 처리하는 압축 알고리즘 처리기;
    압축 알고리즘 처리된 데이터 블록의 보정항에 대해 엔트로피 코딩을 수행하고, 압축부 멀티플렉서 제어기를 위한 신호를 생성하는 복수의 코드 생성기;
    상기 압축부 멀티플렉서 제어기를 위한 신호를 기초로 압축부 멀티플렉서에 제어 신호를 발생하는 복수의 압축부 멀티플렉서 제어기; 및
    상기 제어 신호에 해당되는 압축 알고리즘 처리값을 압축 데이터의 데이터 블록으로 전달하는 복수의 압축부 멀티플렉서
    로 구성되는 3차원 그래픽 처리 장치.
  10. 제 7 항에 있어서, 상기 깊이 데이터 복원부 또는 상기 색상 데이터 복원부는,
    압축 데이터의 코드 블록 값을 디코딩하고, 복원부 멀티플렉서 제어기를 위한 신호와 복원부 멀티플렉서를 위한 데이터를 생성하는 복수의 데이터 생성기;
    상기 복원부 멀티플렉서 제어기를 위한 신호를 기초로 복원부 멀티플렉서를 위한 제어 신호를 발생하는 복수의 복원부 멀티플렉서 제어기;
    복수의 복원부 멀티플렉서; 및
    복원 알고리즘 처리기
    로 구성되고, 상기 복수의 복원부 멀티플렉서는 상기 압축 데이터의 데이터 블록 escape 값과 상기 복원부 멀티플렉서를 위한 데이터를 상기 제어 신호에 따라 선택적으로 복원 알고리즘 처리기에 출력하고, 상기 복원 알고리즘 처리기는 상기 압축 데이터의 데이터 블록 값 중 증분값을 이용해 상기 복원부 멀티플렉서로부터 받은 데이터를 복원 알고리즘 처리하는 3차원 그래픽 처리 장치.
KR1020070047826A 2007-05-16 2007-05-16 압축부 및 복원부를 포함하는 3차원 그래픽 처리 장치 KR100883804B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070047826A KR100883804B1 (ko) 2007-05-16 2007-05-16 압축부 및 복원부를 포함하는 3차원 그래픽 처리 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070047826A KR100883804B1 (ko) 2007-05-16 2007-05-16 압축부 및 복원부를 포함하는 3차원 그래픽 처리 장치

Publications (2)

Publication Number Publication Date
KR20080101274A KR20080101274A (ko) 2008-11-21
KR100883804B1 true KR100883804B1 (ko) 2009-02-16

Family

ID=40287555

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070047826A KR100883804B1 (ko) 2007-05-16 2007-05-16 압축부 및 복원부를 포함하는 3차원 그래픽 처리 장치

Country Status (1)

Country Link
KR (1) KR100883804B1 (ko)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1186026A (ja) 1997-09-12 1999-03-30 Matsushita Electric Ind Co Ltd 画像処理装置
KR19990025879A (ko) * 1997-09-19 1999-04-06 윤종용 텍스춰 매핑 수행장치 및 텍스춰 캐시의 데이터 억세스 방법
KR19990061575A (ko) * 1997-12-31 1999-07-26 윤종용 중앙 처리 유니트의 명령어 길이 축소방법 및 그장치
KR20050031207A (ko) * 2003-09-29 2005-04-06 삼성전자주식회사 눈에 보이지 않는 프래그먼트를 처리하기 위한 3차원그래픽스 렌더링 엔진 및 그 방법
US20060038822A1 (en) 2004-08-23 2006-02-23 Jiangming Xu Apparatus and method of an improved stencil shadow volume operation
WO2006102380A1 (en) 2005-03-21 2006-09-28 Qualcomm Incorporated Tiled prefetched and cached depth buffer

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1186026A (ja) 1997-09-12 1999-03-30 Matsushita Electric Ind Co Ltd 画像処理装置
KR19990025879A (ko) * 1997-09-19 1999-04-06 윤종용 텍스춰 매핑 수행장치 및 텍스춰 캐시의 데이터 억세스 방법
KR19990061575A (ko) * 1997-12-31 1999-07-26 윤종용 중앙 처리 유니트의 명령어 길이 축소방법 및 그장치
KR20050031207A (ko) * 2003-09-29 2005-04-06 삼성전자주식회사 눈에 보이지 않는 프래그먼트를 처리하기 위한 3차원그래픽스 렌더링 엔진 및 그 방법
US20060038822A1 (en) 2004-08-23 2006-02-23 Jiangming Xu Apparatus and method of an improved stencil shadow volume operation
WO2006102380A1 (en) 2005-03-21 2006-09-28 Qualcomm Incorporated Tiled prefetched and cached depth buffer

Also Published As

Publication number Publication date
KR20080101274A (ko) 2008-11-21

Similar Documents

Publication Publication Date Title
US9406149B2 (en) Selecting and representing multiple compression methods
US6492991B1 (en) Method and apparatus for controlling compressed Z information in a video graphics system
US9899007B2 (en) Adaptive lossy framebuffer compression with controllable error rate
US9665951B2 (en) Unified compression/decompression graphics architecture
US8670613B2 (en) Lossless frame buffer color compression
US6630933B1 (en) Method and apparatus for compression and decompression of Z data
CN106030652B (zh) 提供输出面的方法、系统和合成显示控制器及计算机介质
WO1997006512A3 (en) Method and system for rendering graphical objects to image chunks and combining image layers into a display image
US8271734B1 (en) Method and system for converting data formats using a shared cache coupled between clients and an external memory
WO2011069235A1 (en) Method and computing device for capturing screen images and for identifying screen image changes using a gpu
KR102646818B1 (ko) 그래픽스 파이프라인에서의 인덱스들의 압축 및 압축 해제
US10824357B2 (en) Updating data stored in a memory
US10466915B2 (en) Accessing encoded blocks of data in memory
US11694367B2 (en) Compressing texture data on a per-channel basis
US8254701B1 (en) Data compression using a geometry shading unit
US8243086B1 (en) Variable length data compression using a geometry shading unit
US8295621B1 (en) Data decompression using a geometry shading unit
KR100883804B1 (ko) 압축부 및 복원부를 포함하는 3차원 그래픽 처리 장치
US11205243B2 (en) Data processing systems
US20220309732A1 (en) Graphics processing unit and operating method thereof
US20070002044A1 (en) System and method for a compressed hierarachical stencil buffer
KR20170107350A (ko) 그래픽 처리 장치 및 방법
US20230206380A1 (en) Optimizing partial writes to compressed blocks
US11954028B2 (en) Accessing encoded blocks of data
US20230196624A1 (en) Data processing systems

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

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee