KR100648293B1 - 그래픽 시스템 및 그것의 그래픽 처리 방법 - Google Patents

그래픽 시스템 및 그것의 그래픽 처리 방법 Download PDF

Info

Publication number
KR100648293B1
KR100648293B1 KR1020050072930A KR20050072930A KR100648293B1 KR 100648293 B1 KR100648293 B1 KR 100648293B1 KR 1020050072930 A KR1020050072930 A KR 1020050072930A KR 20050072930 A KR20050072930 A KR 20050072930A KR 100648293 B1 KR100648293 B1 KR 100648293B1
Authority
KR
South Korea
Prior art keywords
data
texture data
texture
address
stored
Prior art date
Application number
KR1020050072930A
Other languages
English (en)
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 KR1020050072930A priority Critical patent/KR100648293B1/ko
Priority to US11/415,721 priority patent/US7580042B2/en
Application granted granted Critical
Publication of KR100648293B1 publication Critical patent/KR100648293B1/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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping

Abstract

여기에 개시된 그래픽 처리 시스템 및 그것의 그래픽 처리 방법은, 외부 메모리에 텍스쳐 데이터를 저장할 때에는 복수 개의 뱅크에 텍스쳐 데이터를 로우 단위로 구분하여 저장하고, 외부 메모리로부터 텍스쳐 데이터를 로딩해 올 때에는 뱅크 인터리빙 기능을 이용하여 복수 개의 뱅크들로부터 복수 개의 로우에 해당되는 텍스쳐 데이터를 연속적으로 로딩해 온다. 그 결과, 고성능의 텍스쳐 필터링을 사용하기 위해 필요한 주변 영역의 텍스쳐 데이터를 한번의 메모리 액세스를 통해 얻을 수 있어 텍스쳐 필터링시 메모리의 데이터 액세스 시간을 현저히 줄일 수 있고 이를 통하여 외부 메모리에 대한 액세스 횟수가 줄어들게 된다. 그리고, 텍스쳐 필터링의 파이프라인 스톨이 최소화되고, 그래픽 시스템의 성능이 향상된다.

Description

그래픽 시스템 및 그것의 그래픽 처리 방법{GRAPHIC SYSTEM AND GRAPHIC PROCESSING METHOD FOR THE SAME}
도 1은 본 발명의 실시예에 따른 3차원 그래픽 시스템의 전체 구성을 보여주는 블록도;
도 2는 도 1에 도시된 3차원 그래픽 시스템과 외부 메모리 간의 데이터 흐름으로 보여주는 도면;
도 3은 도 1 및 도 2에 도시되어 있는 메모리 컨트롤러의 상세 구성을 보여주는 블록도;
도 4 및 도 5는 텍스쳐 공간상에서의 텍스쳐 데이터의 좌표를 보여주는 도면;
도 6은 본 발명에 따른 텍스쳐 데이터 저장 방법을 보여주는 도면;
도 7 및 도 8은 본 발명에 따른 텍스쳐 데이터의 로딩 방법을 설명하기 위한 도면;
도 9 및 도 10은 본 발명의 실시예에 따른 어드레스 변환 방법을 설명하기 위한 도면;
도 11은 본 발명에 따른 텍스쳐 데이터의 로딩 방식을 보여주는 타이밍도; 그리고
도 12는 본 발명에 따른 3차원 그래픽 시스템의 텍스쳐 데이터 처리 방법을 보여주는 흐름도이다.
*도면의 주요 부분에 대한 부호의 설명*
10 : 시스템 버스 20 : CPU
40 : 그래픽 컨트롤러 45 : 제 1 레지스터
50 : 그래픽 처리부 60 : 어드레스 발생부
80 : 텍스쳐 캐쉬 90 : 메모리 컨트롤러
95 : 제 2 레지스터 973 : 어드레스 변환부
100 : 3차원 그래픽 시스템
본 발명은 영상 처리에 관한 것으로, 좀 더 구체적으로는 외부 메모리로부터 그래픽 데이터를 로딩하여 처리하는 그래픽 시스템 및 그것의 그래픽 처리 방법에 관한 것이다.
급속한 하드웨어의 발전으로 인해 PC급의 데이터 처리 장치에서도 실시간 렌더링이 가능해짐에 따라, 다양한 분야에서 3차원 그래픽의 활용이 증대되고 있다. 3 차원 그래픽 시스템은 크게 기하학 처리부(geometry processing unit)와 래스터라이제이션부(rasterization unit)로 구분된다. 3 차원 그래픽 시스템에서 수행되는 3차원 그래픽 처리는 파이프라인 방식으로 구성되며, 3 차원 그래픽 시스템에서 수행되는 일련의 데이터 처리를 그래픽스 파이프라인(graphics pipeline)이라 한다.
기하학 처리부는 3차원 좌표계로 표시된 영상을 2차원 좌표계로 투영하는 기하학적 변환을 수행한다. 기하학 처리부에서 수행되는 연산으로는, 지오미트릭 변환(geometric transformation), 라이트 모델링(light modeling), 클리핑(clipping), 원근 프로젝션(perspective projection) 등의 부동 소수점 연산이 있다. 래스터라이제이션부는 기하학 처리부에서 처리된 정점들이 화면에 표시될 최종의 픽셀 값을 결정한다. 이를 위해, 래스터라이제이션부는 쉐이딩모델(SHADING MODEL)에 의거하여 픽셀의 컬러 값을 계산하고, 은면 제거(Hidden Surface Removal)를 수행한다. 이 외에도, 래스터라이제이션부는 보다 현실적인 3차원 영상이 제공될 수 있도록 다양한 종류의 필터링을 수행한다.
3차원 그래픽 처리를 수행하기 위해서는, 래스터라이제이션부와 외부 메모리 사이에 많은 양의 데이터가 송수신 되어야만 한다. 이 분야의 지식을 가진 이들에게 잘 알려져 있는 바와 같이, 외부 메모리는 비교적 긴 레이턴시(latency)를 갖기 때문에, 대부분의 그래픽스 시스템의 성능은 여기서 발생되는 병목현상에 의해 좌우된다. 그러므로 이 부분의 병목현상을 줄이는 것이 그래픽스 시스템의 성능향상에 결정적인 영향을 주게 된다.
따라서, 본 발명의 목적은 그래픽 시스템의 파이프라인 속도를 향상시킬 수 있는 그래픽 시스템 및 그것의 그래픽 처리 방법을 제공하는 데 있다.
본 발명의 목적은 처리하고자 하는 블록에 속한 그래픽 데이터를 외부 메모리로부터 한꺼번에 로딩해 올 수 있는 그래픽 시스템 및 그것의 그래픽 처리 방법을 제공하는 데 있다.
본 발명의 다른 목적은 그래픽 데이터가 저장되어 있는 외부 메모리를 빠르게 액세스할 수 있는 그래픽 시스템 및 그것의 그래픽 처리 방법을 제공하는 데 있다.
본 발명의 다른 목적은 외부 메모리에 대한 액세스 횟수를 줄일 수 있는 그래픽 시스템 및 그것의 그래픽 처리 방법을 제공하는 데 있다.
본 발명의 또 다른 목적은 외부 메모리의 액세스로 인한 전원 소모(power consumption)를 줄일 수 있는 그래픽 시스템 및 그것의 그래픽 처리 방법을 제공하는 데 있다.
상기의 과제를 이루기 위하여 본 발명에 의한 그래픽 처리 방법은, 텍스쳐 데이터를 메모리에 구비된 복수 개의 데이터 저장 영역들에 분할하여 저장하는 단계; 상기 복수 개의 데이터 저장 영역들로부터 한번에 적어도 하나의 블록에 해당되는 텍스쳐 데이터를 로딩하는 단계; 그리고 상기 로딩된 데이터를 이용하여 필터링을 수행하는 단계를 포함하는 것을 특징으로 한다.
이 실시예에 있어서, 상기 텍스쳐 데이터는 v 어드레스 값에 따라 로우 단위로 분할되는 것을 특징으로 한다.
이 실시예에 있어서, 상기 블록은 텍스쳐 공간 상에서 로우 및 칼럼 방향으 로 각각 인접해 있는 복수 개의 텍셀 데이터들로 구성되는 것을 특징으로 한다.
이 실시예에 있어서, 상기 필터링은 상기 블록 단위로 수행되는 것을 특징으로 한다.
이 실시예에 있어서, 상기 텍스쳐 데이터를 저장하는 단계는, 상기 텍스쳐 데이터가 상기 데이터 저장 영역에 저장된 방식을 저장하는 단계를 더 포함하는 것을 특징으로 한다.
이 실시예에 있어서, 상기 텍스쳐 데이터의 저장 방식은, 상기 텍스쳐 데이터가 몇 개의 데이터 저장 영역에 저장되었는지에 관한 정보와, 상기 분할된 텍스쳐 데이터가 어떠한 순서로 상기 데이터 저장 영역으로 저장되었는지에 관한 정보를 포함하는 것을 특징으로 한다.
이 실시예에 있어서, 상기 데이터 저장 영역은 뱅크인 것을 특징으로 한다.
이 실시예에 있어서, 상기 텍스쳐 데이터를 로딩하는 단계는, 상기 텍스쳐 데이터의 저장 방식을 분석하는 단계; 상기 분석 결과에 응답해서 상기 로딩될 텍스쳐 데이터의 어드레스를 변환하는 단계; 그리고 상기 변환된 어드레스에 응답해서 적어도 둘 이상의 상기 데이터 저장 영역으로부터 대응되는 텍스쳐 데이터를 연속해서 로딩하는 단계를 포함하는 것을 특징으로 한다.
이 실시예에 있어서, 상기 텍스쳐 데이터를 연속해서 로딩하는 단계는 인터리빙 동작, 버스트 모드 독출 동작, 및 직렬 독출 동작 중 어느 하나를 이용하는 것을 특징으로 한다.
이 실시예에 있어서, 상기 로딩될 텍스쳐 데이터의 어드레스를 변환하는 단 계에서는, 상기 데이터 저장 영역의 개수가 N개인 경우, 상기 블록의 최상위 로우를 제외한 나머지 로우에 대해 텍스쳐 데이터의 v 어드레스의 M개(여기서, N = 2M)의 LSB(Least Significant Bit) 비트가 "0"의 값으로 변환되는 것을 특징으로 한다.
상기의 과제를 이루기 위하여 본 발명에 의한 그래픽 처리 시스템은, 텍스쳐 데이터를 복수 개의 데이터 저장 영역들에 분할하여 저장하는 메모리; 한 번의 액세스로 상기 복수 개의 데이터 저장 영역들로부터 적어도 하나의 블록에 해당되는 텍스쳐 데이터를 복사하여 저장하는 캐쉬 메모리; 그리고 상기 캐쉬 메모리에 저장된 텍스쳐를 이용하여 필터링을 수행하는 그래픽 처리부를 포함하는 것을 특징으로 한다.
상기의 과제를 이루기 위하여 본 발명에 의한 그래픽 처리 시스템은, 텍스쳐 데이터를 복수 개의 데이터 저장 영역들에 분할하여 저장하는 메모리; 처리될 텍스쳐 데이터의 어드레스를 발생하는 그래픽 컨트롤러; 상기 처리될 텍스쳐 데이터가 한 번에 로딩될 수 있도록 상기 어드레스를 변환하고, 상기 변환된 어드레스에 응답해서 상기 복수 개의 데이터 저장 영역들로부터 상기 처리될 텍스쳐 데이터를 로딩하는 메모리 컨트롤러; 그리고 상기 메모리와, 상기 그래픽 컨트롤러, 및 상기 메모리 컨트롤러의 상기 텍스쳐 데이터의 입출력 동작을 제어하는 제어부를 포함하며, 상기 그래픽 컨트롤러는 상기 메모리 컨트롤러로부터 상기 텍스쳐 데이터를 받아들여 필터링을 수행하는 것을 특징으로 한다.
이 실시예에 있어서, 상기 텍스쳐 데이터는 v 어드레스 값에 따라 로우 단위로 분할되며, 상기 분할된 텍스쳐 데이터는 상기 데이터 저장 영역들에 각각 저장되는 것을 특징으로 한다.
이 실시예에 있어서, 상기 데이터 저장 영역은 뱅크인 것을 특징으로 한다.
이 실시예에 있어서, 상기 블록은 텍스쳐 공간 상에서 로우 및 칼럼 방향으로 각각 인접해 있는 복수 개의 텍셀 데이터들로 구성되는 것을 특징으로 한다.
이 실시예에 있어서, 상기 그래픽 컨트롤러는 상기 텍스쳐 데이터가 상기 데이터 저장 영역에 저장되어 있는 방식을 저장하는 제 1 레지스터; 상기 제 1 레지스터에 저장된 상기 텍스쳐 데이터의 저장 방식을 분석하여 상기 처리될 텍스쳐 데이터의 어드레스를 발생하는 그래픽 처리부; 그리고 상기 발생된 어드레스에 대응되는 텍스쳐 데이터를 상기 메모리 컨트롤러로부터 받아들여 저장하는 캐쉬 메모리를 포함하며, 상기 그래픽 처리부는 상기 텍스쳐 데이터를 상기 캐쉬 메모리로부터 받아들여 필터링을 수행하는 것을 특징으로 한다.
이 실시예에 있어서, 상기 텍스쳐 데이터의 저장 방식은, 상기 텍스쳐 데이터가 몇 개의 데이터 저장 영역에 저장되었는지에 관한 정보와, 상기 분할된 텍스쳐 데이터가 어떠한 순서로 상기 데이터 저장 영역으로 저장되었는지에 관한 정보를 포함하는 것을 특징으로 한다.
이 실시예에 있어서, 상기 그래픽 처리부는 상기 제 1 레지스터에 저장된 상기 텍스쳐 데이터의 저장 방식을 분석하여 상기 처리될 텍스쳐 데이터의 어드레스를 발생하는 어드레스 발생부; 그리고 상기 캐쉬 메모리로부터 상기 어드레스에 대 응되는 텍스쳐 데이터를 받아들여 필터링을 수행하는 필터링부를 포함하는 것을 특징으로 한다.
이 실시예에 있어서, 상기 필터링은 상기 블록 단위로 수행되는 것을 특징으로 한다.
이 실시예에 있어서, 상기 캐쉬 메모리는 상기 발생된 어드레스에 해당되는 텍스쳐 데이터가 내부에 저장되어 있지 않은 경우, 상기 외부 메모리로부터 해당 텍스쳐 데이터를 로딩하는 것을 특징으로 한다.
이 실시예에 있어서, 상기 캐쉬 메모리는, 상기 변환된 어드레스에 응답해서 적어도 둘 이상의 상기 데이터 저장 영역으로부터 대응되는 텍스쳐 데이터를 연속해서 로딩하는 것을 특징으로 한다.
이 실시예에 있어서, 상기 텍스쳐 데이터는 인터리빙 동작, 버스트 모드 독출 동작, 및 직렬 독출 동작 중 어느 하나에 의해 상기 캐쉬 메모리로 로딩되는 것을 특징으로 한다.
이 실시예에 있어서, 상기 메모리 컨트롤러는 상기 텍스쳐 데이터의 저장 방식을 저장하는 제 2 레지스터; 그리고 상기 제 2 레지스터에 저장된 상기 텍스쳐 데이터의 저장 방식을 분석하여 상기 어드레스 발생부로부터 발생된 상기 텍스쳐 데이터의 어드레스를 변환하는 어드레스 변환부를 포함하는 것을 특징으로 한다.
이 실시예에 있어서, 상기 텍스쳐 데이터의 저장 방식은 상기 제 1 및 제 2 레지스터에 동일하게 저장되는 것을 특징으로 한다.
이 실시예에 있어서, 상기 어드레스 변환부는, 상기 데이터 저장 영역의 개 수가 N개인 경우, 상기 블록의 최상위 로우를 제외한 나머지 로우에 대해 텍스쳐 데이터의 v 어드레스의 M개(여기서, N = 2M)의 LSB(Least Significant Bit) 비트를 "0"의 값으로 변환하는 것을 특징으로 한다.
(실시예)
이하 본 발명에 따른 실시예를 첨부된 도면을 참조하여 상세히 설명한다.
본 발명의 신규한 그래픽 시스템 및 그것의 그래픽 처리 방법은, 외부 메모리에 텍스쳐 데이터를 저장할 때에는 복수 개의 뱅크에 텍스쳐 데이터를 로우 단위로 구분하여 저장하고, 외부 메모리로부터 텍스쳐 데이터를 로딩해 올 때에는 뱅크 인터리빙 기능을 이용하여 복수 개의 뱅크들로부터 복수 개의 로우에 해당되는 텍스쳐 데이터를 연속적으로 로딩해 온다. 그 결과, 외부 메모리의 데이터 액세스 속도가 빨라지게 되고, 외부 메모리에 대한 액세스 횟수가 현저히 줄어들게 된다. 그리고, 텍스쳐 필터링의 파이프라인 스톨이 최소화되고, 그래픽 시스템의 성능이 향상된다.
도 1은 본 발명의 실시예에 따른 3차원 그래픽 시스템(100)의 전체 구성을 보여주는 블록도이다. 도 1에는 복수 개의 기능 회로들이 하나의 칩에 집적된 시스템 온 칩(System-On-a-Chip; SOC) 형태의 3차원 그래픽 시스템(100)이 도시되어 있다. 3차원 그래픽 시스템(100)을 구성하는 기능 칩들은 도 1과 같이 시스템 온 칩 형태로 구성될 수도 있고, 하나 또는 복수 개의 기능 회로들이 별도의 칩으로 각각 구성될 수도 있다.
도 1을 참조하면, 본 발명에 따른 3차원 그래픽 시스템(100)은 시스템 버스(system bus; 10)와, 시스템 버스(10)에 공통으로 연결되어 있는 복수 개의 버스 마스터들(bus masters)과, 복수 개의 버스 슬레이브들(bus slaves)로 구성된다.
버스 마스터는 버스 슬레이브로 인가될 어드레스 신호와 제어 신호를 발생한다. 버스 마스터로부터 발생된 어드레스 신호와 제어 신호는 시스템 버스(10)를 통해 버스 슬레이브로 인가된다. 버스 마스터로는 CPU(Central Processing Unit ; 20), DMA(Direct Memory Access ; 30), 그래픽 컨트롤러(Graphic Controller ; 40) 등이 있다. 버스 슬레이브로는 메모리 컨트롤러(Memory Controller ; 90) 등이 있다. CPU(20)는 3차원 그래픽 시스템(100)의 제반 동작을 제어한다. 예컨대, CPU(20)는 그래픽 컨트롤러(40) 및 메모리 컨트롤러(90)의 동작을 제어함은 물론, 외부 메모리(200)의 데이터 입출력 동작 또한 제어한다. DMA(30)는 CPU(20)의 제어와 상관없이 3차원 그래픽 시스템(100)에 구비되어 있는 주변장치로 직접 데이터를 보내는 기능을 수행한다. 이때, CPU(20)는 데이터 전송에 직접적으로 관여하지 않게 되어, 시스템의 전체적인 데이터 전송 성능이 좋아지게 된다.
그래픽 컨트롤러(40)는 3차원 그래픽 처리를 수행하며, 3차원 그래픽 가속기(3-Dimensional Graphic Accelerator)로 불리기도 한다. 3차원 그래픽은 3차원 공간의 물체를 높이(height), 폭(width), 길이(length)의 세 가지 축을 이용하여 표현한 뒤, 그 영상을 2차원 모니터 상에 보다 사실적으로 표시하는 기술이다. 그래픽 컨트롤러(40)에서 처리되는 대부분의 3차원 그래픽 처리는, 그래픽 컨트롤러(40)에 구비되어 있는 그래픽 처리부(texture processing unit ; 50)에서 수행된 다. 그래픽 처리부(50)는 기하학 처리부(geometry processing unit)와 래스터라이제이션부(rasterization unit)로 구성된다. 3차원 좌표계로 표시된 영상을 2차원 좌표계로 투영하는 기하학적 변환은 기하학 처리부에서 수행되고, 화면에 출력될 최종의 픽셀 값의 결정과 필터링은 래스터라이제이션부에서 각각 수행된다. 이 중 래스터라이제이션부에서 수행되는 필터링 동작은 외부 메모리(200)의 액세스와 밀접한 관계를 가진다.
잘 알려져 있는 바와 같이, 외부 메모리(200)는 비교적 긴 레이턴시(latency)를 갖는다. 따라서, 3차원 그래픽 시스템(100)의 성능은 외부 메모리(200)를 액세스할 때 발생되는 병목현상에 의해 좌우된다. 그러므로, 본 발명에서는 외부 메모리(200)의 액세스 속도를 향상시키고, 외부 메모리(200)의 액세스 빈도를 최소화시킬 수 있도록 텍스쳐 데이터의 저장 및 독출에 인터리빙 방식을 사용한다. 그 결과, 3차원 그래픽 시스템(100)의 파이프라인 스톨이 최소화되고, 전체 그래픽 파이프라인 속도가 향상된다.
본 발명에서는 그래픽 처리부(50)에 포함된 복수 개의 기능 블록들 중 외부 메모리(200)의 액세스와 밀접한 관계를 갖는 구성, 예컨대 텍스쳐 필터링 동작과 관련된 구성에 대해서만 예를 들어 설명하기로 한다. 따라서, 도면에서도 역시 텍스쳐 필터링에 관계된 그래픽 처리부(50)의 구성(즉, 래스터라이제이션부에 포함되어 있는 필터링 관련 구성)만을 표시하기로 한다. 하지만, 이는 본 발명이 적용되는 일 실시예에 불과하며, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 다양한 변화 및 변경이 가능함은 물론이다. 예를 들면, 외부 메모리(200)에 저장되어 있는 데이터를 로딩하여 처리하는 다른 3차원 그래픽 처리 동작에도 본 발명이 적용될 수 있다.
도 2는 도 1에 도시된 3차원 그래픽 시스템(100)과 외부 메모리(200) 간의 데이터 흐름으로 보여주는 도면이다. 도 2에는 그래픽 컨트롤러(40)에 포함된 복수 개의 기능 블록들 중 외부 메모리(200)의 액세스와 밀접한 관계가 있는 기능 블록들(예를 들면, 필터링과 관련된 기능 블록들)에 대한 상세 구성이 도시되어 있다.
도 1 및 도 2를 참조하면, 본 발명에 따른 그래픽 컨트롤러(40)는 제 1 레지스터(45), 그래픽 처리부(texture processing unit ; 50), 및 텍스쳐 캐쉬(texture cache ; 80)를 포함한다. 제 1 레지스터(45)는 그래픽 컨트롤러(40)를 동작시키는데 필요한 복수의 정보들을 저장한다. 제 1 레지스터(45)의 일 영역에는 텍스쳐 메모리를 로딩하는데 필요한 인터리빙 정보(INTLEAV)가 저장된다. 인터리빙 정보(INTLEAV)는 텍스쳐 데이터가 외부 메모리(200)에 어떤 방식으로 저장되었는지를 나타내는 정보이다. 아래에서 상세히 설명되겠지만, 외부 메모리(200)는 복수의 뱅크들을 포함하며, 데이터 입출력시 복수 개의 뱅크들이 연속적으로 동작되는 뱅크 인터리빙(Bank Interleaving) 기능을 제공한다.
그래픽 처리부(50)는 처리될 텍스쳐 데이터의 어드레스(ADD)를 발생하는 어드레스 발생부(60)와, 상기 어드레스(ADD)에 해당되는 데이터를 가지고 필터링을 수행하는 필터링부(70)를 포함한다. 어드레스 발생부(60)는 제 1 레지스터(45)에 저장된 인터리빙 정보(INTLEAV)에 응답해서, 처리될 텍스쳐 데이터의 어드레스(ADD)를 발생한다. 발생된 어드레스(ADD)는 텍스쳐 캐쉬(80)로 입력된다.
텍스쳐 캐쉬(80)는 외부 메모리(200)로부터 로딩된 텍스쳐 데이터를 임시 저장한 후, 저장된 텍스쳐 데이터를 그래픽 처리부(50)로 제공하는 기능을 수행한다. 텍스쳐 캐쉬(80)는 데이터 메모리(data memory, 미 도시됨)와, 태그 메모리(tag memory , 미 도시됨)를 포함한다. 데이터 메모리는 외부 메모리(200)로부터 로딩된 텍스쳐 데이터(DATA)를 저장한다. 태그 메모리는 데이터 메모리에 저장된 텍스쳐 데이터(DATA)의 어드레스(ADD)를 저장한다. 텍스쳐 캐쉬(80)는, 그래픽 처리부(50)로부터 처리될 텍스쳐 데이터의 어드레스(ADD)가 입력되면, 입력된 어드레스(ADD)와 태그 메모리에 저장되어 있는 태그 값들을 비교한다. 그리고, 비교 결과를 근거로 하여 처리하고자 하는 데이터(DATA)가 텍스쳐 캐쉬(80)의 데이터 메모리 내에 존재하는지 여부를 판별한다. 처리하고자 하는 데이터(DATA)가 데이터 메모리 내에 존재하는 경우를 캐쉬 히트(cache hit)라 하고, 처리하고자 하는 데이터(DATA)가 데이터 메모리 내에 존재하지 않는 경우를 캐쉬 미스(cache miss)라 한다. 캐쉬 히트가 발생된 경우, 텍스쳐 캐쉬(80)는 입력된 어드레스(ADD) 대응되는 텍스쳐 데이터(DATA)를 텍스쳐 필터링부(70)로 출력한다. 텍스쳐 필터링부(70)는 텍스쳐 캐쉬(80)로부터 입력된 텍스쳐 데이터(DATA)를 받아들여 필터링을 수행한다.
텍스쳐 필터링에 사용될 다양한 종류의 텍스쳐 데이터는 기본적으로 그래픽 컨트롤러(40)의 외부에 위치해 있는 외부 메모리(200)에 저장되어 있다. 외부 메모리(200)에 저장되어 있는 텍스쳐 데이터는 직접 그래픽 처리부(50)로 제공되지 않고, 텍스쳐 캐쉬(80)를 통해 그래픽 처리부(50)로 제공된다. 외부 메모리(200)는 복수 개의 데이터 저장 영역(즉, 복수 개의 뱅크)으로 구분되며, 데이터 입출력시 복수 개의 뱅크들이 연속적으로 동작되는 뱅크 인터리빙(Bank Interleaving) 기능을 제공한다. 도 1 및 도 2에서는 외부 메모리(200)로 디램(DRAM) 또는 싱크 디램(Synchronous DRAM)이 사용되는 경우를 예를 들어 설명하고 있다. 그러나 이는 일 예에 불과하며, 복수 개의 데이터 뱅크들이 구비될 수 있고 뱅크 인터리빙 기능을 제공할 수 있는 메모리 장치이기만 하면 외부 메모리(200)로 얼마든지 적용 가능하다. 여기서, 뱅크 인터리빙 기능은 복수 개의 뱅크들이 연속해서 독출될 수 있는 버스트 독출 동작(burst read operation) 또는 직렬 독출 동작과 동일한 개념으로 이해될 수도 있다. 본 발명에서 텍스쳐 데이터가 외부 메모리(200)에 저장되는 방식과, 외부 메모리(200)로부터 텍스쳐 데이터가 독출되는 방식은 도 6 및 도 8을 참조하여 아래에서 상세히 설명될 것이다.
한편, 캐쉬 미스가 발생된 경우, 텍스쳐 캐쉬(80)는 입력된 어드레스(ADD) 대응되는 텍스쳐 데이터(DATA)를 외부 메모리(200)로부터 로딩해 온다. 이를 위해 텍스쳐 캐쉬(80)는 상기 어드레스(ADD)를 메모리 컨트롤러(90)로 출력한다.
메모리 컨트롤러(90)는 외부 메모리(200)와 텍스쳐 캐쉬(80)의 인터페이스를 수행한다. 메모리 컨트롤러(90)는 제 2 레지스터(95)와 어드레스 변환부(973)를 포함한다. 제 2 레지스터(95)는 외부 메모리(200)와 텍스쳐 캐쉬(80)의 인터페이스에서 필요로 하는 복수의 정보들을 저장한다. 제 2 레지스터(95)의 일 영역에는 텍스쳐 메모리를 로딩하는데 필요한 인터리빙 정보(INTLEAV)가 저장된다. 상기 인터리빙 정보(INTLEAV)는 제 1 레지스터(45)에 저장된 인터리빙 정보(INTLEAV)와 동일하다. 어드레스 변환부(973)는 제 2 레지스터(95)에 저장된 인터리빙 정보(INTLEAV) 에 응답해서, 어드레스 발생부(60)로부터 발생된 어드레스(ADD)를 외부 메모리(200)의 어드레스(ADD')로 변환한다. 변환된 어드레스(ADD')는 외부 메모리(200)로 입력된다. 외부 메모리(200)는 메모리 컨트롤러(90)로부터 입력된 어드레스(ADD')에 응답해서, 대응되는 텍스쳐 데이터(DATA)를 메모리 컨트롤러(90)로 출력한다. 메모리 컨트롤러(90)는 외부 메모리(200)로부터 제공된 데이터(DATA)를 텍스쳐 캐쉬(80)로 전달한다. 어드레스 발생부(60)로부터 발생된 어드레스(ADD)는 처리하고자 하는 텍스쳐 데이터(DATA)의 어드레스이고, 변환된 어드레스(ADD')는 해당 텍스쳐 데이터(DATA)를 인터리빙 방식으로 로딩하기에 적합한 형태로 변환된 어드레스이다.
도 3은 도 1 및 도 2에 도시되어 있는 메모리 컨트롤러(90)의 상세 구성을 보여주는 블록도이다. 도 3을 참조하면, 본 발명에 따른 메모리 컨트롤러(90)는 호스트 인터페이스(Host Interface ; 91), 메모리 인터페이스(Memory Interface ; 93), 제 2 레지스터(95), 및 제어부(97)를 포함한다.
호스트 인터페이스(91)는 텍스쳐 캐쉬(80)와의 인터페이스를 수행하고, 메모리 인터페이스(93)는 외부 메모리(200)와의 인터페이스를 수행한다. 제 2 레지스터(95)는 텍스쳐 캐쉬(80)와 외부 메모리(200)의 인터페이스에서 필요로 하는 복수의 정보들, 예를 들면 동작 모드 정보 등을 저장한다. 제 2 레지스터(95)의 일 영역에는 외부 메모리(200)의 인터리빙 정보(INTLEAV)가 저장된다. 인터리빙 정보(INTLEAV)는 CPU(20)(또는 별도의 인터리빙 정보 세팅 회로)의 제어에 의해 저장된다. CPU(20)는 제 1 레지스터(45)와 제 2 레지스터(95) 모두에게 인터리빙 정보 (INTLEAV)를 저장할 수도 있고, 두 레지스터들(45, 95) 중 어느 하나에만 인터리빙 정보(INTLEAV)를 저장할 수도 있다. CPU(20)가 어느 하나의 레지스터에만 인터리빙 정보(INTLEAV)를 저장하는 경우, 상기 인터리빙 정보(INTLEAV)는 내부 인터페이스를 통해 나머지 레지스터에 저장될 수 있다. 예를 들어, CPU(20)가 제 2 레지스터(95)에게만 인터리빙 정보(INTLEAV)를 저장하는 경우, 상기 인터리빙 정보(INTLEAV)는 호스트 인터페이스(91)와 시스템 버스(10)를 거쳐 그래픽 컨트롤러(40)로 전송된다. 그래픽 컨트롤러(40)는 입력된 인터리빙 정보(INTLEAV)를 제 1 레지스터(45)에 저장한다.
제어부(97)는, 제 2 레지스터(95)에 저장된 인터리빙 정보(INTLEAV)와, 호스트 인터페이스(91)를 통해 텍스쳐 캐쉬(80)로부터 발생된 제어신호(CTL) 및 어드레스(ADD)에 응답해서, 외부 메모리(200)로부터 해당 데이터를 읽어들일 커멘드(CMD)와 어드레스(ADD')를 발생한다. 제어부(97)는 유한 상태 머신(Finite State Machine, 이하 FSM이라 칭함)(971), 어드레스 변환부(973), 및 인터리빙 제어부(975)를 포함한다. 어드레스 변환부(973)는 레지스터(95)에 저장된 인터리빙 정보(INTLEAV)에 응답해서, 텍스쳐 데이터의 어드레스(ADD)를 인터리빙에 적합한 어드레스(ADD')로 변환한다. 인터리빙 제어부(975)는 변환된 어드레스(ADD')에 응답해서, 외부 메모리(200)에 구비된 복수 개의 뱅크로부터 연속적으로 데이터를 읽어오는 뱅크 인터리빙(Bank Interleaving) 동작을 제어한다. FSM(971)는 제 2 레지스터(95)에 저장된 인터리빙 정보(INTLEAV)에 응답해서, 어드레스 변환부(973) 및 인터리빙 제어부(975)의 동작을 제어한다.
제어부(97)로부터 발생된 커멘드(CMD)와 어드레스(ADD')는 메모리 인터페이스(93)를 거쳐 외부 메모리(200)로 전달된다. 외부 메모리(200)는 상기 커멘드(CMD) 및 어드레스(ADD')에 응답해서, 해당 데이터(DATA)를 출력한다. 출력된 데이터(DATA)는 메모리 컨트롤러(90)를 통해 텍스쳐 캐쉬(80)에 저장된다.
텍스쳐 필터링부(70)는 텍스쳐 캐쉬(80)로부터 제공되는 복수 개의 텍셀 데이터를 입력받아, 바이-리니어 필터링(Bi-linear Filtering), 트리-리니어 필터링(Tri-linear Filtering), 비등방성 필터링(Anisotropic Filtering) 등의 필터링을 수행하여, 1개의 화면 화소에 대응되는 1개의 텍셀 데이터를 발생한다. 이를 이용하여 텍스쳐 블렌딩(texture blending)이 수행된다.
도 4 및 도 5는 텍스쳐 공간상에서의 텍스쳐 데이터의 좌표를 보여주는 도면이다. 도 4에는 하나의 텍스쳐 화소(즉, 텍셀)에 대한 텍스쳐 공간상의 좌표가 도시되어 있고, 도 5에는 메트릭스 형태로 배열된 복수 개의 텍스쳐 화소들에 대한 텍스쳐 공간상의 좌표가 각각 도시되어 있다.
도 4 및 도 5를 참조하면, 텍스쳐 공간상의 좌표는 (u, v)로 표시된다. 도 4 및 도 5에 도시된 텍스쳐 공간상의 좌표는 (x, y)로 표시되는 화면상의 좌표와 정확히 일치하는 것은 아니다. 예를 들면, 여러 개의 텍스쳐 화소가 하나의 화면 화소에 해당하는 경우(즉, 축소)와, 하나의 텍스쳐 화소가 여러 개의 화면 화소에 대응하는 경우(즉, 확대)가 존재할 수 있다. 이 경우 발생할 수 있는 왜곡현상(aliasing)을 줄이기 위해 필터링이 수행된다.
텍스쳐 필터링부(70)가 필터링을 수행하기 위해서는 임의의 좌표(u,v)를 중 심으로 상하 좌우에 배치된 복수 개의 텍셀 데이터들을 필요로 한다. 예를 들면, 바이-리니어 필터링의 경우 4 X 4개의 인접 텍셀 데이터들을 필요로 한다. 잘 알려져 있는 바와 같이, 서로 다른 로우(row)에 속하는 인접 텍셀들이 저장되어 있는 외부 메모리(200)의 물리적 어드레스는 서로 연속되어 있지 않다. 따라서, 필터링 수행시 외부 메모리에 대한 복수 회의 액세스가 불가피 하다. 본 발명에서는 이와 같은 문제를 방지하기 위해 외부 메모리(200)에 구비된 복수 개의 뱅크에 텍스쳐 데이터를 로우(row) 단위로 구분하여 저장한다. 복수 개의 로우에 해당되는 텍스쳐 데이터는, 외부 메모리(200)에서 지원하는 뱅크 인터리빙 기능에 의해 복수 개의 뱅크들로부터 한꺼번에 독출된다. 따라서, 단 한번의 외부 메모리(200)의 액세스를 수행하고도 마치 복수 회의 액세스를 수행한 것과 같은 효과를 낼 수 있다.
도 6은 본 발명에 따른 텍스쳐 데이터 저장 방법을 보여주는 도면이다. 도 6에는 외부 메모리(200)가 뱅크 인터리빙 기능을 제공할 수 있도록, 텍스쳐 데이터를 로우 단위(즉, 텍스쳐 공간의 v 좌표 단위)로 구분하여 저장하는 방법이 도시되어 있다.
도 6을 참조하면, 본 발명에 따른 텍스쳐 데이터 저장 방법은 먼저 N X N의 크기를 갖는 텍스쳐 데이터를 v 좌표를 기준으로 로우 단위로 구분한다. 그리고 나서, 로우 단위로 구분된 텍스쳐 데이터(211, 231, 251, 271)를 외부 메모리(200)에 구비된 복수 개의 뱅크들(210, 230, 250, 270)에 각각 분리하여 저장한다. 예를 들면, 제 1 뱅크(BANK0 ; 210)에는 텍스쳐 데이터의 0번째, 4번째, 8번째 로우 데이터가 저장되고, 제 2 뱅크(BANK1 ; 230)에는 텍스쳐 데이터의 1번째, 5번째, 9번째 로우 데이터가 각각 저장된다. 그리고, 제 3 뱅크(BANK2 ; 250)에는 텍스쳐 데이터의 2번째, 6번째, 10번째 로우 데이터가 저장되고, 제 4 뱅크(BANK4 ; 270)에는 텍스쳐 데이터의 3번째, 7번째, 11번째 로우 데이터가 각각 저장된다.
이와 같은 텍스쳐 데이터의 저장 방식에 따르면, 서로 다른 로우(row)에 속하는 인접 텍셀들이 저장되어 있는 외부 메모리(200)의 물리적 어드레스가 서로 연속되어 있지 않더라도, 뱅크 인터리빙 기능을 통해 동시에 로딩될 수 있게 된다. 외부 메모리(200)에 텍스쳐 데이터를 저장하는 일련의 과정은 CPU(20)의 제어에 의해 수행된다. 외부 메모리(200)의 인터리빙 정보(INTLEAV)는 CPU(20)의 제어에 의해 제 1 및/또는 제 2 레지스터(45, 95)에 저장된다. 인터리빙 정보(INTLEAV)는 텍스쳐 데이터가 몇 개의 뱅크로 구분되어 저장되었는지에 대한 정보와, 텍스쳐 데이터의 각 로우가 어떠한 순서로 각각의 뱅크에 저장되었는지에 대한 정보를 나타낸다. 본 발명에서는 외부 메모리(200)에 4개의 뱅크가 구비된 경우를 예로 들어 설명하고 있다. 이는 설명의 편의를 위해 예를 들은 것으로, 뱅크의 개수는 얼마든지 변경 가능하다. 그리고, 각각의 뱅크에 저장되는 텍스쳐 데이터의 저장 순서 역시 다양하게 변경 가능하다.
도 7 및 도 8은 본 발명에 따른 텍스쳐 데이터의 로딩 방법을 설명하기 위한 도면이다. 도 7 및 도 8에는 뱅크 인터리빙 방식을 통해 복수 개의 뱅크들로부터 복수 개의 로우에 해당되는 텍스쳐 데이터(즉, 복수 개의 인접한 텍셀 데이터)들이 연속해서 로딩되는 방법이 도시되어 있다.
도 7 및 도 8을 참조하면, 예를 들어 텍스쳐 필터링을 수행하는데 4X4의 텍 셀 데이터가 필요한 경우, 본 발명에서는 뱅크 인터리빙 방식을 이용하여 4개의 뱅크들(210, 230, 250, 270)로부터 해당 텍셀 데이터를 한꺼번에 로딩한다. 도 7에서 v좌표가 4인 로우와 5인 로우에 속한 텍셀 데이터는 외부 메모리(200)의 제 1 뱅크(210)와 제 2 뱅크(230)로부터, 그리고 v좌표가 6인 로우와 7인 로우에 속한 텍셀 데이터는 외부 메모리(200)의 제 3 뱅크(250)와 제 4 뱅크(270)로부터 각각 로딩된다. 각각의 뱅크(210, 230, 250, 270)로부터 로딩된 4X4의 텍셀 데이터(212, 232, 252, 272)는 메모리 컨트롤러(90)를 통해 텍스쳐 캐쉬(80)에 저장된다.
텍스쳐 데이터가 4개의 뱅크로 분할되어 있을 때, 그래픽 처리부(50)가 도 7에 도시된 "P" 텍셀을 로딩하고자 하는 경우, "P" 텍셀을 로딩하기 위해서는 4 개의 뱅크로부터 4개의 로우에 해당되는 인접 텍셀 데이터들을 모두 로딩해야 한다. 그리고, 만일 텍스쳐 데이터가 2개의 뱅크로 분할되어 있을 때, 그래픽 처리부(50)가 "P" 텍셀을 로딩하고자 하는 경우, "P" 텍셀을 로딩하기 위해서는 2 개의 뱅크로부터 2개의 로우에 속한 인접 텍셀 데이터들을 로딩해야 한다. 이는 복수 개의 뱅크들이 동시에 동작되는 외부 메모리(200)의 뱅크 인터리빙 동작의 특성에 기인한다. 이 경우, "P" 텍셀을 로딩하기 위해서는 인터리빙될 텍셀 데이터의 시작점을 "A"로 설정해야 한다. 즉, "P" 텍셀의 v 어드레스가 "A"의 v 어드레스를 가리키도록 텍셀 데이터의 어드레스가 변환되어야 한다. 이와 같은 어드레스의 변환은 메모리 컨트롤러(90)에 구비된 어드레스 변환부(973)에서 수행된다.
앞에서 설명한 바와 같이, 본 발명에 따른 그래픽 시스템(100)은 외부 메모리(200)로부터 복수 개의 로우에 해당되는 텍스쳐 데이터를 한꺼번에 로딩하여 텍 스쳐 캐쉬(80)에 저장한다. 텍스쳐 캐쉬(80)에 저장된 텍스쳐 데이터는 텍스쳐 데이터의 로우 방향은 물론 칼럼 방향으로 인접해 있는 텍셀 데이터들로 구성되기 때문에, 데이터들끼리의 관련도가 높은 특징을 가진다. 따라서, 텍스쳐 캐쉬(80)에 저장된 텍스쳐 데이터의 재 사용 확률이 높아지게 된다. 예를 들면, v 좌표가 1인 텍셀 데이터를 처리하고자 하는 경우, 텍스쳐 캐쉬(80)에는 v좌표가 0, 1, 2, 3인 텍셀 데이터가 한꺼번에 로딩되어 저장된다. 이 때, v 좌표가 1인 텍셀 데이터를 처리한 후 v 좌표가 2인 텍셀 데이터를 처리하고자 하는 경우, 해당 데이터는 이미 텍스쳐 캐쉬(80) 내에 저장되어 있으므로, 다시 로딩할 필요가 없게 된다. 따라서, 텍스쳐 캐쉬(80)의 히트율이 높아지고, 데이터의 재 사용 빈도가 높아지게 된다. 그 결과, 외부 메모리(200)에 대한 액세스 횟수가 줄어들게 되고, 3차원 그래픽스 파이프라인의 속도가 향상된다.
도 9 및 도 10은 본 발명의 실시예에 따른 어드레스 변환 방법을 설명하기 위한 도면이다. 도 9에는 텍셀 데이터의 어드레스 구조가 도시되어 있고, 도 10에는 도 9에 도시된 텍셀 데이터의 v 어드레스 비트의 변환 예가 도시되어 있다.
본 발명에서 사용되는 텍셀 데이터의 v 좌표는 외부 메모리(200)에서 수행되는 인터리빙의 뱅크 수에 따라 그 값이 변화하게 된다. 이때, 텍스쳐 데이터의 u 어드레스 값은 변화하지 않는다. 도 9 및 도 10을 참조하면, 인터리빙이 수행되지 않는 경우에는 텍셀 데이터의 v 어드레스는 변화되지 않는다. 반면, 2 개의 뱅크에 대한 인터리빙이 수행되는 경우, 텍셀 데이터의 v 어드레스의 LSB(Least Significant Bit) 1 비트(v[0])의 값은 "0"으로 변환된다. 그리고 4 개의 뱅크에 대한 인터리빙이 수행되는 경우, 텍셀 데이터의 v 어드레스의 LSB 2 비트(v[1], v[0])의 값은 모두 "0"으로 변환된다. 즉, 인터리빙의 뱅크 수가 N일 경우, 로딩될 텍스쳐 블록의 최상위 로우를 제외한 나머지 로우에 속한 텍셀 데이터의 v 어드레스의 M개(여기서, N = 2M)의 LSB(Least Significant Bit) 비트가 "0"의 값으로 변환된다.
이와 같이 변화되는 텍셀 데이터의 v 어드레스 비트의 개수 및, 변화되는 v 어드레스 비트의 값은, 외부 메모리(200)에서 지원하는 인터리빙의 뱅크 수에 따라 달라지게 된다. 그리고, 텍셀 데이터의 각 로우(즉, v 좌표별로 구분된 텍셀 데이터)가 각 뱅크에 어떤 순서로 저장되었는지에 따라 달라지게 된다. 이와 같은 외부 메모리(200)의 데이터 저장 형태는 제 1 및 제 2 레지스터(45, 95)에 저장된 인터리빙 정보(INTLEAV)를 분석함에 의해 알 수 있다.
도 11은 본 발명에 따른 텍스쳐 데이터의 로딩 방식을 보여주는 타이밍도이다. 도 11에는 뱅크 인터리빙 방식에 따라서 외부 메모리(200)로부터 복수 개의 로우에 해당되는 텍스쳐 데이터가 텍스쳐 캐쉬(80)로 로딩되는 과정이 도시되어 있다. 도 11에 도시된 타이밍도는 4개의 뱅크에 대한 인터리빙 기능을 제공하는 DRAM의 독출 동작을 예로 든 것이다. 이 분야의 통상의 지식을 가진 이들에게 잘 알려져 있는 바와 같이, DRAM과 같은 반도체 메모리 장치는 CAS(Column Address Strobe) 신호, RAS(Row Address Strobe) 신호, 및 WE(Write Enable) 신호와 같은 내부 제어 신호들의 조합에 의해 컴멘드가 구성되고, 해당 컴멘드에 대응되는 동작 이 수행된다. 도 11에 도시된 CASB 신호 및 RASB 신호는, CAS 신호 및 RAS 신호가 각각 로우 상태일 때 활성화되는 것을 의미한다.
DRAM에서 제공하는 뱅크 인터리빙 독출 동작은 복수 개의 뱅크들이 연속적으로 독출되는 특징을 가진다. 복수 개의 뱅크들을 동작시키기 위해서는 도 11에 도시된 바와 같이 각각의 뱅크를 지정하는 뱅크 어드레스(Bank Address ; BA)와, 해당 뱅크 내에 저장되어 있는 텍셀의 어드레스(ADD')가 필요하다. 여기서, 텍셀 어드레스(ADD')는, 도 9 및 도 10에서 설명한 어드레스 변환 방식에 따라 v 어드레스의 일부 비트가 변환된 어드레스이다. 각각의 뱅크를 지정하는 뱅크 어드레스(BA)는 그래픽 처리부(50)의 어드레스 발생부(60)에서 발생될 수도 있고, 메모리 컨트롤러(90)의 어드레스 변환부(293)에서 발생될 수도 있다.
도 11을 참조하면, 로딩하고자 하는 어드레스(ADD')가 입력된 후, RAS 신호와 CAS 신호가 각각 순차적으로 로우 레벨로 활성화되면, 입력된 어드레스(ADD')에 대응되는 텍셀 데이터들이 복수 개의 뱅크들로부터 연속적으로 독출된다. 그 결과, 외부 메모리(200)를 단 한 번 억세스 하고도 마치 복수 회 억세스 한 것과 같은 효과를 낼 수 있게 된다. 이 경우, 복수 개의 뱅크들에 대한 독출 동작이 연속적으로 수행되기 때문에, 텍스쳐 데이터를 독출하는데 필요한 전체 독출 속도 또한 빨라지게 된다.
이상에서는 4개의 뱅크에 대한 인터리빙 기능을 제공하는 DRAM의 독출 동작을 예를 들어 설명하였다. 외부 메모리(200)가 DRAM이 아닌 다른 종류의 메모리로 구성되는 경우, 내부 제어 신호들의 종류 및 각 신호들의 동작 타이밍은 메모리의 특성에 맞도록 달라질 것이다. 그러나, 복수 개의 뱅크들로부터 복수 개의 로우에 해당되는 복수 개의 텍셀 데이터들이 연속적으로 로딩되는 기본적인 데이터 로딩 동작은 메모리의 종류가 달라지더라도 변함이 없을 것이다.
도 12는 본 발명에 따른 3차원 그래픽 시스템의 텍스쳐 데이터 처리 방법을 보여주는 흐름도이다. 도 12를 참조하면, 본 발명에 따른 텍스쳐 데이터 처리 방법은 크게 두 가지 단계로 구분할 수 있다. 그 첫 번째 단계는, 뱅크 인터리빙 방식을 지원할 수 있도록 텍스쳐 데이터를 외부 메모리(200)에 저장하는 단계(S1000 단계)이다. 그리고, 그 두번째 단계는 뱅크 인터리빙 방식을 사용하여 외부 메모리(200)에 저장된 텍스쳐 데이터를 한꺼번에 로딩하여 처리하는 단계이다(S2000 단계).
텍스쳐 데이터를 외부 메모리(200)에 저장하기 위해서는, 먼저 v 좌표에 따라 텍스쳐 데이터를 복수 개의 로우로 분할한다(S1100 단계). 분할된 로우 단위의 텍스쳐 데이터는 외부 메모리(200)에 포함된 복수 개의 뱅크들(BANK0, BANK1, BANK2, BANK3)로 각각 저장된다(S1300 단계). 텍스쳐 데이터가 몇 개의 뱅크에 저장되었는지에 대한 정보와, 텍스쳐 데이터의 각 로우가 어떠한 순서로 각각의 뱅크에 저장되었는지에 대한 정보는 제 1 및 제 2 레지스터(45, 95)에 인터리빙 정보(INTLEAV)로서 각각 세팅된다(S1500 단계). S1100 단계 내지 S1500 단계와 같은 텍스쳐 데이터 방법에 따라 다량의 텍스쳐 데이터들이 외부 메모리(200)에 저장된다.
그래픽 시스템(100)은 외부 메모리(200)에 저장되어 있는 복수의 텍스쳐 데이터들 중 어느 하나의 텍스쳐 데이터로부터 원하는 텍셀 데이터들을 로딩한다. 그 래픽 시스템(100)에 로딩되는 텍셀 데이터는, 사실상 선택된 텍스쳐 데이터에 포함된 극히 일부(예를 들면, 4X4의 블록 데이터)의 데이터에 불과하다. 그럼에도 불구하고, 로딩하고자 하는 텍셀 데이터의 물리적 어드레스는 서로 연속되지 않은 특징을 가진다. 따라서, 본 발명에서는 물리적 어드레스가 떨어져 있는 복수 개의 텍셀 데이터들을 한꺼번에 로딩할 수 있도록 하기 위해, 뱅크 인터리빙 방식을 이용하여 텍셀 데이터들을 한꺼번에 로딩한다.
인터리빙 방식을 사용하여 텍스쳐 데이터를 외부 메모리(200)로부터 한꺼번에 로딩하기 위해서는, 먼저 제 1 레지스터(45)에 저장되어 있는 인터리빙 정보(INTLEAV)를 분석한다(S2100 단계). 그리고 나서, 처리될 텍스쳐 데이터(즉, 로딩하고자 하는 텍셀 데이터)의 어드레스(ADD)를 발생한다(S2300 단계). S2300 단계에서 발생된 어드레스(ADD)는 그래픽 컨트롤러(40)에 포함되어 있는 어드레스 발생부(60)에서 발생된다. S2300 단계에서 발생된 어드레스(ADD)는 메모리 컨트롤러(90)로 입력되어, 인터리빙에 적합한 어드레스(ADD')로 변환된다(S2500 단계). 메모리 컨트롤러(90) 어드레스 변환을 수행하기 위해 제 2 레지스터(95)에 저장되어 있는 인터리빙 정보(INTLEAV)를 참조한다. 로딩될 텍스쳐 데이터의 v 어드레스는 인터리빙 정보(INTLEAV)에 따라 달라지게 된다. 인터리빙 정보(INTLEAV)와 v 어드레스의 관계는 도 9 및 도 10에 도시되어 있다. 처리될 텍스쳐 데이터의 어드레스(ADD)가 인터리빙에 적합한 어드레스(ADD')로 변환되고 나면, 변환된 어드레스(ADD')에 따라, 복수 개의 뱅크들로부터 처리될 텍스쳐 데이터가 한꺼번에 로딩된다(S2700 단계). 로딩된 데이터는 텍스쳐 캐쉬(80)에 저장된 후 그래픽 처리부(50)로 인가되어 처리된다(S2900 단계).
앞에서 설명한 바와 같이, 본 발명에 따른 그래픽 시스템(100)은 외부 메모리(200)의 액세스 속도를 향상시키고, 외부 메모리(200)의 액세스 빈도를 최소화시킬 수 있도록 텍스쳐 데이터의 저장 및 독출에 인터리빙 방식을 사용한다. 즉, 텍스쳐 데이터의 v 좌표를 기준으로 텍스쳐 데이터를 로우 단위로 구분하고, 구분된 각각의 로우 데이터를 외부 메모리(200)에 구비된 각각의 뱅크에 저장해 둔다. 그리고 나서, 외부 메모리(200)로부터 텍스쳐 데이터를 로딩해 올 때에는 뱅크 인터리빙 기능을 이용하여 복수 개의 뱅크들로부터 복수 개의 로우 데이터를 연속적으로 로딩해 온다. 그 결과, 복수 개의 로우에 해당되는 텍스쳐 데이터가 한꺼번에 로딩될 수 있게 되어, 외부 메모리(200)의 액세스 속도가 향상된다. 그리고, 본 발명에 따른 텍스쳐 데이터의 로딩은 각각의 라인 단위마다 별도로 수행되는 것이 아니라, 한 번의 로딩 동작을 통해 원하는 블록에 대응되는 데이터들을 한꺼번에 로딩할 수 있다. 따라서, 외부 메모리(200)의 액세스 횟수 및 액세스 빈도가 줄어들게 되고, 텍스쳐 필터링의 파이프라인 스톨과, 외부 메모리의 액세스에 따른 전원 소모가 최소화된다.
이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
이상과 같은 본 발명에 의하면, 외부 메모리의 데이터 액세스 속도가 빨라지게 되고, 외부 메모리에 대한 액세스 횟수가 현저히 줄어들게 된다. 그 결과, 텍스쳐 필터링의 파이프라인 스톨이 최소화되고, 3차원 그래픽 시스템의 렌더링 성능이 향상된다.
한편, 본 발명에서 로딩하는 텍스쳐 데이터는 복수 개의 로우에 해당되는 데이터이기 때문에, 텍스쳐 캐쉬의 히트율과 데이터의 재사용 확률이 높아지게 되고, 외부 메모리의 액세스에 따른 전원 소모(power consumption)가 줄어들게 된다.

Claims (38)

  1. 텍스쳐 데이터를 메모리에 구비된 복수 개의 데이터 저장 영역들에 분할하여 저장하는 단계;
    상기 복수 개의 데이터 저장 영역들로부터 한번에 적어도 하나의 블록에 해당되는 텍스쳐 데이터를 로딩하는 단계; 그리고
    상기 로딩된 데이터를 이용하여 필터링을 수행하는 단계를 포함하는 것을 특징으로 하는 그래픽 처리 방법.
  2. 제 1 항에 있어서,
    상기 텍스쳐 데이터는 v 어드레스 값에 따라 로우 단위로 분할되는 것을 특징으로 하는 그래픽 처리 방법.
  3. 제 1 항에 있어서,
    상기 블록은 텍스쳐 공간 상에서 로우 및 칼럼 방향으로 각각 인접해 있는 복수 개의 텍셀 데이터들로 구성되는 것을 특징으로 하는 그래픽 처리 방법.
  4. 제 3 항에 있어서,
    상기 필터링은 상기 블록 단위로 수행되는 것을 특징으로 하는 그래픽 처리 방법.
  5. 제 1 항에 있어서,
    상기 텍스쳐 데이터를 저장하는 단계는, 상기 텍스쳐 데이터가 상기 데이터 저장 영역에 저장된 방식을 저장하는 단계를 더 포함하는 것을 특징으로 하는 그래픽 처리 방법.
  6. 제 5 항에 있어서,
    상기 텍스쳐 데이터의 저장 방식은, 상기 텍스쳐 데이터가 몇 개의 데이터 저장 영역에 저장되었는지에 관한 정보와, 상기 분할된 텍스쳐 데이터가 어떠한 순서로 상기 데이터 저장 영역으로 저장되었는지에 관한 정보를 포함하는 것을 특징으로 하는 그래픽 처리 방법.
  7. 제 1 항에 있어서,
    상기 데이터 저장 영역은 뱅크인 것을 특징으로 하는 그래픽 처리 방법.
  8. 제 5 항에 있어서,
    상기 텍스쳐 데이터를 로딩하는 단계는
    상기 텍스쳐 데이터의 저장 방식을 분석하는 단계;
    상기 분석 결과에 응답해서, 상기 로딩될 텍스쳐 데이터의 어드레스를 변환하는 단계; 그리고
    상기 변환된 어드레스에 응답해서 적어도 둘 이상의 상기 데이터 저장 영역으로부터 대응되는 텍스쳐 데이터를 연속해서 로딩하는 단계를 포함하는 것을 특징으로 하는 그래픽 처리 방법.
  9. 제 8 항에 있어서,
    상기 텍스쳐 데이터를 연속해서 로딩하는 단계는 인터리빙 동작, 버스트 모드 독출 동작, 및 직렬 독출 동작 중 어느 하나를 이용하는 것을 특징으로 하는 그래픽 처리 방법.
  10. 제 8 항에 있어서,
    상기 로딩될 텍스쳐 데이터의 어드레스를 변환하는 단계에서는,
    상기 데이터 저장 영역의 개수가 N개인 경우, 상기 블록의 최상위 로우를 제외한 나머지 로우에 대해 텍스쳐 데이터의 v 어드레스의 M개(여기서, N = 2M)의 LSB(Least Significant Bit) 비트가 "0"의 값으로 변환되는 것을 특징으로 하는 그래픽 처리 방법.
  11. 텍스쳐 데이터를 복수 개의 데이터 저장 영역들에 분할하여 저장하는 메모리;
    한 번의 액세스로 상기 복수 개의 데이터 저장 영역들로부터 적어도 하나의 블록에 해당되는 텍스쳐 데이터를 복사하여 저장하는 캐쉬 메모리; 그리고
    상기 캐쉬 메모리에 저장된 텍스쳐를 이용하여 필터링을 수행하는 그래픽 처리부를 포함하는 것을 특징으로 하는 그래픽 시스템.
  12. 제 11 항에 있어서,
    상기 텍스쳐 데이터는 v 어드레스 값에 따라 로우 단위로 분할되는 것을 특징으로 하는 그래픽 시스템.
  13. 제 11 항에 있어서,
    상기 블록은 텍스쳐 공간 상에서 로우 및 칼럼 방향으로 각각 인접해 있는 복수 개의 텍셀 데이터들로 구성되는 것을 특징으로 하는 그래픽 시스템.
  14. 제 13 항에 있어서,
    상기 필터링은 상기 블록 단위로 수행되는 것을 특징으로 하는 그래픽 시스템.
  15. 제 11 항에 있어서,
    상기 텍스쳐 데이터가 상기 데이터 저장 영역에 저장되어 있는 방식을 저장하는 제 1 레지스터를 더 포함하는 것을 특징으로 하는 그래픽 시스템.
  16. 제 15 항에 있어서,
    상기 텍스쳐 데이터의 저장 방식은, 상기 텍스쳐 데이터가 몇 개의 데이터 저장 영역에 저장되었는지에 관한 정보와, 상기 분할된 텍스쳐 데이터가 어떠한 순서로 상기 데이터 저장 영역으로 저장되었는지에 관한 정보를 포함하는 것을 특징으로 하는 그래픽 시스템.
  17. 제 11 항에 있어서,
    상기 데이터 저장 영역은 뱅크인 것을 특징으로 하는 그래픽 시스템.
  18. 제 15 항에 있어서,
    상기 그래픽 처리부는,
    상기 제 1 레지스터에 저장된 상기 텍스쳐 데이터의 저장 방식을 분석하여 상기 로딩될 텍스쳐 데이터의 어드레스를 발생하는 어드레스 발생부; 그리고
    상기 캐쉬 메모리로부터 상기 어드레스에 대응되는 텍스쳐 데이터를 받아들여 필터링을 수행하는 필터링부를 포함하는 것을 특징으로 하는 그래픽 시스템.
  19. 제 18 항에 있어서,
    상기 메모리와 상기 캐쉬 메모리 사이의 인터페이스를 수행하는 메모리 컨트롤러를 더 포함하는 것을 특징으로 하는 그래픽 시스템.
  20. 제 19 항에 있어서,
    상기 메모리 컨트롤러는
    상기 텍스쳐 데이터의 저장 방식을 저장하는 제 2 레지스터; 그리고
    상기 제 2 레지스터에 저장된 상기 텍스쳐 데이터의 저장 방식을 분석하여 상기 어드레스 발생부로부터 발생된 상기 텍스쳐 데이터의 어드레스를 변환하는 어드레스 변환부를 포함하는 것을 특징으로 하는 그래픽 시스템.
  21. 제 20 항에 있어서,
    상기 텍스쳐 데이터의 저장 방식은 상기 제 1 및 제 2 레지스터에 동일하게 저장되는 것을 특징으로 하는 그래픽 시스템.
  22. 제 20 항에 있어서,
    상기 어드레스 변환부는, 상기 데이터 저장 영역의 개수가 N개인 경우, 상기 블록의 최상위 로우를 제외한 나머지 로우에 대해 텍스쳐 데이터의 v 어드레스의 M개(여기서, N = 2M)의 LSB(Least Significant Bit) 비트를 "0"의 값으로 변환하는 것을 특징으로 하는 그래픽 시스템.
  23. 제 20 항에 있어서,
    상기 캐쉬 메모리는, 상기 변환된 어드레스에 응답해서 적어도 둘 이상의 상 기 데이터 저장 영역으로부터 대응되는 텍스쳐 데이터를 연속해서 로딩하는 것을 특징으로 하는 그래픽 시스템.
  24. 제 23 항에 있어서,
    상기 텍스쳐 데이터는 인터리빙 동작, 버스트 모드 독출 동작, 및 직렬 독출 동작 중 어느 하나에 의해 상기 캐쉬 메모리로 로딩되는 것을 특징으로 하는 그래픽 시스템.
  25. 텍스쳐 데이터를 복수 개의 데이터 저장 영역들에 분할하여 저장하는 메모리;
    처리될 텍스쳐 데이터의 어드레스를 발생하는 그래픽 컨트롤러;
    상기 처리될 텍스쳐 데이터가 한 번에 로딩될 수 있도록 상기 어드레스를 변환하고, 상기 변환된 어드레스에 응답해서 상기 복수 개의 데이터 저장 영역들로부터 상기 처리될 텍스쳐 데이터를 로딩하는 메모리 컨트롤러; 그리고
    상기 메모리와, 상기 그래픽 컨트롤러, 및 상기 메모리 컨트롤러의 상기 텍스쳐 데이터의 입출력 동작을 제어하는 제어부를 포함하며,
    상기 그래픽 컨트롤러는 상기 메모리 컨트롤러로부터 상기 텍스쳐 데이터를 받아들여 필터링을 수행하는 것을 특징으로 하는 그래픽 시스템.
  26. 제 25 항에 있어서,
    상기 텍스쳐 데이터는 v 어드레스 값에 따라 로우 단위로 분할되며, 상기 분할된 텍스쳐 데이터는 상기 데이터 저장 영역들에 각각 저장되는 것을 특징으로 하는 그래픽 시스템.
  27. 제 25 항에 있어서,
    상기 데이터 저장 영역은 뱅크인 것을 특징으로 하는 그래픽 시스템.
  28. 제 25 항에 있어서,
    상기 블록은 텍스쳐 공간 상에서 로우 및 칼럼 방향으로 각각 인접해 있는 복수 개의 텍셀 데이터들로 구성되는 것을 특징으로 하는 그래픽 시스템.
  29. 제 25 항에 있어서,
    상기 그래픽 컨트롤러는,
    상기 텍스쳐 데이터가 상기 데이터 저장 영역에 저장되어 있는 방식을 저장하는 제 1 레지스터;
    상기 제 1 레지스터에 저장된 상기 텍스쳐 데이터의 저장 방식을 분석하여 상기 처리될 텍스쳐 데이터의 어드레스를 발생하는 그래픽 처리부; 그리고
    상기 발생된 어드레스에 대응되는 텍스쳐 데이터를 상기 메모리 컨트롤러로부터 받아들여 저장하는 캐쉬 메모리를 포함하며,
    상기 그래픽 처리부는 상기 텍스쳐 데이터를 상기 캐쉬 메모리로부터 받아들 여 필터링을 수행하는 것을 특징으로 하는 그래픽 시스템.
  30. 제 29 항에 있어서,
    상기 텍스쳐 데이터의 저장 방식은, 상기 텍스쳐 데이터가 몇 개의 데이터 저장 영역에 저장되었는지에 관한 정보와, 상기 분할된 텍스쳐 데이터가 어떠한 순서로 상기 데이터 저장 영역으로 저장되었는지에 관한 정보를 포함하는 것을 특징으로 하는 그래픽 시스템.
  31. 제 29 항에 있어서,
    상기 그래픽 처리부는,
    상기 제 1 레지스터에 저장된 상기 텍스쳐 데이터의 저장 방식을 분석하여 상기 처리될 텍스쳐 데이터의 어드레스를 발생하는 어드레스 발생부; 그리고
    상기 캐쉬 메모리로부터 상기 어드레스에 대응되는 텍스쳐 데이터를 받아들여 필터링을 수행하는 필터링부를 포함하는 것을 특징으로 하는 그래픽 시스템.
  32. 제 25 항에 있어서,
    상기 필터링은 상기 블록 단위로 수행되는 것을 특징으로 하는 그래픽 시스템.
  33. 제 29 항에 있어서,
    상기 캐쉬 메모리는 상기 발생된 어드레스에 해당되는 텍스쳐 데이터가 내부에 저장되어 있지 않은 경우, 상기 외부 메모리로부터 해당 텍스쳐 데이터를 로딩하는 것을 특징으로 하는 그래픽 시스템.
  34. 제 29 항에 있어서,
    상기 캐쉬 메모리는, 상기 변환된 어드레스에 응답해서 적어도 둘 이상의 상기 데이터 저장 영역으로부터 대응되는 텍스쳐 데이터를 연속해서 로딩하는 것을 특징으로 하는 그래픽 시스템.
  35. 제 34 항에 있어서,
    상기 텍스쳐 데이터는 인터리빙 동작, 버스트 모드 독출 동작, 및 직렬 독출 동작 중 어느 하나에 의해 상기 캐쉬 메모리로 로딩되는 것을 특징으로 하는 그래픽 시스템.
  36. 제 29 항에 있어서,
    상기 메모리 컨트롤러는
    상기 텍스쳐 데이터의 저장 방식을 저장하는 제 2 레지스터; 그리고
    상기 제 2 레지스터에 저장된 상기 텍스쳐 데이터의 저장 방식을 분석하여 상기 어드레스 발생부로부터 발생된 상기 텍스쳐 데이터의 어드레스를 변환하는 어드레스 변환부를 포함하는 것을 특징으로 하는 그래픽 시스템.
  37. 제 36 항에 있어서,
    상기 텍스쳐 데이터의 저장 방식은 상기 제 1 및 제 2 레지스터에 동일하게 저장되는 것을 특징으로 하는 그래픽 시스템.
  38. 제 36 항에 있어서,
    상기 어드레스 변환부는, 상기 데이터 저장 영역의 개수가 N개인 경우, 상기 블록의 최상위 로우를 제외한 나머지 로우에 대해 텍스쳐 데이터의 v 어드레스의 M개(여기서, N = 2M)의 LSB(Least Significant Bit) 비트를 "0"의 값으로 변환하는 것을 특징으로 하는 그래픽 시스템.
KR1020050072930A 2005-08-09 2005-08-09 그래픽 시스템 및 그것의 그래픽 처리 방법 KR100648293B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020050072930A KR100648293B1 (ko) 2005-08-09 2005-08-09 그래픽 시스템 및 그것의 그래픽 처리 방법
US11/415,721 US7580042B2 (en) 2005-08-09 2006-05-02 Systems and methods for storing and fetching texture data using bank interleaving

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050072930A KR100648293B1 (ko) 2005-08-09 2005-08-09 그래픽 시스템 및 그것의 그래픽 처리 방법

Publications (1)

Publication Number Publication Date
KR100648293B1 true KR100648293B1 (ko) 2006-11-23

Family

ID=37713097

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050072930A KR100648293B1 (ko) 2005-08-09 2005-08-09 그래픽 시스템 및 그것의 그래픽 처리 방법

Country Status (2)

Country Link
US (1) US7580042B2 (ko)
KR (1) KR100648293B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102999946A (zh) * 2012-09-17 2013-03-27 Tcl集团股份有限公司 一种3d图形数据处理方法、装置及设备
US10019349B2 (en) 2014-10-31 2018-07-10 Samsung Electronics Co., Ltd. Cache memory and method of managing the same

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8648867B2 (en) 2006-09-25 2014-02-11 Neurala Llc Graphic processor based accelerator system and method
US10146679B2 (en) * 2011-12-30 2018-12-04 Intel Corporation On die/off die memory management
US9245496B2 (en) * 2012-12-21 2016-01-26 Qualcomm Incorporated Multi-mode memory access techniques for performing graphics processing unit-based memory transfer operations
EP2999940A4 (en) 2013-05-22 2017-11-15 Neurala Inc. Methods and apparatus for early sensory integration and robust acquisition of real world knowledge
EP3000030A4 (en) 2013-05-22 2017-07-05 Neurala Inc. Methods and apparatus for iterative nonspecific distributed runtime architecture and its application to cloud intelligence
US10032246B2 (en) * 2013-10-09 2018-07-24 Nvidia Corporation Approach to caching decoded texture data with variable dimensions
US9483843B2 (en) * 2014-01-13 2016-11-01 Transgaming Inc. Method and system for expediting bilinear filtering
US9626566B2 (en) 2014-03-19 2017-04-18 Neurala, Inc. Methods and apparatus for autonomous robotic control
CA2941250A1 (en) 2014-03-19 2015-09-24 Neurala, Inc. Methods and apparatus for autonomous robotic control
US10817493B2 (en) * 2017-07-07 2020-10-27 Raytheon Company Data interpolation
US11823318B2 (en) * 2021-06-04 2023-11-21 Nvidia Corporation Techniques for interleaving textures

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000062253A (ko) * 1996-12-19 2000-10-25 박세광 비디오 프레임 렌더링 엔진

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6762733B2 (en) * 1993-06-24 2004-07-13 Nintendo Co. Ltd. Electronic entertainment and communication system
GB9501832D0 (en) 1995-01-31 1995-03-22 Videologic Ltd Texturing and shading of 3-d images
US5802569A (en) 1996-04-22 1998-09-01 International Business Machines Corp. Computer system having cache prefetching amount based on CPU request types
KR100204336B1 (ko) 1996-11-16 1999-06-15 윤종용 타일 맵을 이용한 텍스쳐 캐쉬 메모리
US6002410A (en) 1997-08-25 1999-12-14 Chromatic Research, Inc. Reconfigurable texture cache
US6130680A (en) 1997-12-01 2000-10-10 Intel Corporation Method and apparatus for multi-level demand caching of textures in a graphics display device
US6104413A (en) 1998-03-11 2000-08-15 Industrial Technology Research Institute Methods and systems for storing texels retrievable in a single cycle
KR100314001B1 (ko) 1998-10-13 2001-12-12 구자홍 가변라인사이즈를가지는캐시메모리
KR100283413B1 (ko) * 1998-12-15 2001-04-02 김영환 텍스처 매핑시스템
US6557080B1 (en) 1999-01-25 2003-04-29 Wisconsin Alumni Research Foundation Cache with dynamic control of sub-block fetching
US6353438B1 (en) 1999-02-03 2002-03-05 Artx Cache organization—direct mapped cache
KR100546298B1 (ko) 1999-09-15 2006-01-26 삼성전자주식회사 Arm7t 프로세서를 이용한 마이크로 프로세서에서 명령어 모드에 따른 캐쉬 메모리의 라인 사이즈 제어 방법 및 그 장치
US6563507B1 (en) 1999-09-22 2003-05-13 Sony Corporation Storage circuit control device and graphic computation device
US6604175B2 (en) 2001-03-01 2003-08-05 Sony Corporation Data cache and method of storing data by assigning each independently cached area in the cache to store data associated with one item type
US6741256B2 (en) 2001-08-27 2004-05-25 Sun Microsystems, Inc. Predictive optimizer for DRAM memory

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000062253A (ko) * 1996-12-19 2000-10-25 박세광 비디오 프레임 렌더링 엔진

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102999946A (zh) * 2012-09-17 2013-03-27 Tcl集团股份有限公司 一种3d图形数据处理方法、装置及设备
CN102999946B (zh) * 2012-09-17 2016-08-03 Tcl集团股份有限公司 一种3d图形数据处理方法、装置及设备
US10019349B2 (en) 2014-10-31 2018-07-10 Samsung Electronics Co., Ltd. Cache memory and method of managing the same

Also Published As

Publication number Publication date
US20070052713A1 (en) 2007-03-08
US7580042B2 (en) 2009-08-25

Similar Documents

Publication Publication Date Title
KR100648293B1 (ko) 그래픽 시스템 및 그것의 그래픽 처리 방법
US7620793B1 (en) Mapping memory partitions to virtual memory pages
US7872657B1 (en) Memory addressing scheme using partition strides
EP2936492B1 (en) Multi-mode memory access techniques for performing graphics processing unit-based memory transfer operations
US6667744B2 (en) High speed video frame buffer
US6819324B2 (en) Memory interleaving technique for texture mapping in a graphics system
US8327071B1 (en) Interprocessor direct cache writes
US7990391B2 (en) Memory system having multiple address allocation formats and method for use thereof
US5999199A (en) Non-sequential fetch and store of XY pixel data in a graphics processor
US6885384B2 (en) Method of creating a larger 2-D sample location pattern from a smaller one by means of X, Y address permutation
US6741256B2 (en) Predictive optimizer for DRAM memory
US10020036B2 (en) Address bit remapping scheme to reduce access granularity of DRAM accesses
CN110036375A (zh) 无序高速缓存返回
US6812928B2 (en) Performance texture mapping by combining requests for image data
US7069387B2 (en) Optimized cache structure for multi-texturing
US20060274078A1 (en) Graphic systems and methods having variable texture cache block size
US6167498A (en) Circuits systems and methods for managing data requests between memory subsystems operating in response to multiple address formats
KR20060044124A (ko) 3차원 그래픽 가속을 위한 그래픽 시스템 및 메모리 장치
US20070233976A1 (en) Data processor with a built-in memory
US6992673B2 (en) Memory access device, semiconductor device, memory access method, computer program and recording medium
JP2000011190A (ja) 画像処理装置
JPH0816797A (ja) グラフィックシステムの信号処理方法および装置
JP5248482B2 (ja) プログラマブルデータ処理回路
JP4053545B2 (ja) グラフィックスプロセッサおよび図形処理装置
US5895502A (en) Data writing and reading method for a frame memory having a plurality of memory portions each having a plurality of banks

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

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20131031

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20141031

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20151030

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20181031

Year of fee payment: 13