KR102308780B1 - 캐시 메모리의 관리 방법 및 그 장치 - Google Patents
캐시 메모리의 관리 방법 및 그 장치 Download PDFInfo
- Publication number
- KR102308780B1 KR102308780B1 KR1020140150624A KR20140150624A KR102308780B1 KR 102308780 B1 KR102308780 B1 KR 102308780B1 KR 1020140150624 A KR1020140150624 A KR 1020140150624A KR 20140150624 A KR20140150624 A KR 20140150624A KR 102308780 B1 KR102308780 B1 KR 102308780B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- address
- bank
- unit data
- bits
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0207—Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0607—Interleaved addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0846—Cache with multiple tag or data arrays being simultaneously accessible
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1056—Simplification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/45—Caching of specific data in cache memory
- G06F2212/455—Image or video data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Image Generation (AREA)
Abstract
캐시 메모리의 관리 방법 및 그 장치를 제공한다. 본 캐시 메모리의 관리 방법은, 뱅크에 포함된 데이터 대역폭의 비트 수가 저장할 데이터에 포함된 단위 데이터의 비트 수에 대한 정수 배인지 여부를 판단하고, 정수 배가 아닌 것으로 판단되는 경우, 저장할 데이터 중 제1 단위 데이터를 뱅크에 포함된 제1 어드레스의 제1 영역에 저장하며, 저장할 데이터 중 제2 단위 데이터의 일부를 제1 어드레스의 제2 영역에 저장한다.
Description
본 개시는 캐시 메모리의 관리 방법 및 그 장치를 제공한다.
최근, 컴퓨터 성능이 향상됨에 따라, 그래픽 시스템은 개인용 컴퓨터, 홈 비디오 게임 컴퓨터, 휴대형 장치 등을 이용하여 그래픽 영상을 더욱 사실적으로 표현할 수 있게 되었다. 그와 같은 그래픽 시스템에서는, 시스템의 스크린 상에서 그래픽 프리미티브들을 "렌더링(rendering)" 또는 묘화(draw)하기 위해 많은 과정을 거치게 된다.
고해상도 모니터에서의 그래픽 처리에 있어서는 화소수가 증가함에 따라 렌더링 처리를 하는 렌더링 엔진의 처리 속도를 증가시켜야 한다. 이러한 속도 문제를 해결하기 위해 내부 구조를 개선하거나 렌더링 엔진의 수를 증가시켜 병렬화하는 방법을 취하게 된다.
본 개시는 저장 효율 및 독출 효율을 증가시킬 수 있는 캐시 메모리 및 그 관리 방법을 제공한다.
일 유형에 따르는 캐시 메모리의 데이터 관리 방법은, 상기 뱅크에 포함된 데이터 대역폭의 비트 수가 저장할 데이터에 포함된 단위 데이터의 비트 수에 대한 정수 배인지 여부를 판단하는 단계; 상기 정수 배가 아닌 것으로 판단되는 경우, 상기 저장할 데이터 중 제1 단위 데이터를 상기 뱅크에 포함된 제1 어드레스의 제1 영역에 저장하는 단계; 및 상기 저장할 데이터 중 제2 단위 데이터의 일부를 상기 제1 어드레스의 제2 영역에 저장하는 단계;를 포함한다.
그리고, 상기 제2 단위 데이터의 나머지를 상기 제1 어드레스와 다른 제2 어드레스에 저장하는 단계;를 더 포함할 수 있다.
또한, 상기 제2 어드레스는 상기 제1 어드레스의 뱅크와 동일한 뱅크에 포함되면서 컬럼 어드레스 및 로우 어드레스 중 적어도 하나가 다를 수 있다.
그리고, 상기 제2 어드레스는 상기 제1 어드레스의 뱅크와 다른 뱅크에 포함된 어드레스일 수 있다.
또한, 상기 제2 어드레스는 상기 제1 어드레스의 뱅크와 다른 뱅크의 동일한 로우 어드레스를 가질 수 있다.
그리고, 상기 제2 단위 데이터의 나머지가 복수 개의 셀인 경우, 상기 복수 개의 셀 각각은 서로 다른 어드레스 또는 서로 다른 뱅크에 하나씩 저장될 수 있다.
또한, 상기 저장할 데이터는 텍스처 데이터, 픽셀 데이터 및 감도 데이터 중 적어도 하나일 수 있다.
또한, 상기 제1 단위 데이터와 상기 제2 단위 데이터는 밉맵(mipmap) 레벨이 서로 다를 수 있다.
그리고, 상기 제1 단위 데이터의 밉맵 레벨은 상기 제2 단위 데이터의 밉맵 레벨보다 낮을 수 있다.
또한, 상기 단위 데이터의 비트수가 상기 데이터 대역폭의 비트수에 대한 정수배인 경우, 상기 단위 데이터 별로 상기 뱅크에 순차적으로 저장하는 단계;를 더 포함할 수 있다.
한편 일 실시예에 따른 캐시 메모리는, 뱅크; 및 메인 메모리에서 독출된 데이터를 상기 뱅크에 저장하는 캐시 컨트롤러;를 포함하고, 상기 캐시 컨트롤러는 상기 뱅크에 포함된 데이터 대역폭의 비트 수가 상기 독출된 데이터에 포함된 단위 데이터의 비트 수에 대한 정수 배가 아닌 경우, 상기 독출된 데이터 중 제1 단위 데이터를 상기 뱅크에 포함된 제1 어드레스의 제1 영역에 저장하고, 상기 독출된 데이터 중 제2 단위 데이터의 일부를 상기 제1 어드레스의 제2 영역에 저장한다.
그리고, 상기 캐시 컨트롤러는, 상기 제2 단위 데이터의 나머지를 상기 제1 어드레스와 다른 제2 어드레스에 저장할 수 있다.
또한, 상기 제2 어드레스는 상기 제1 어드레스와 동일한 뱅크에 포함되면서 컬럼 어드레스 및 로우 어드레스 중 적어도 하나가 다를 수 있다.
그리고, 상기 제2 어드레스는 상기 제1 어드레스의 뱅크와 다른 뱅크에 포함될 수 있다.
또한, 상기 제2 어드레스는 상기 제1 어드레스의 뱅크와 다른 뱅크의 동일한 로우 어드레스를 가질 수 있다.
그리고, 상기 캐시 컨트롤러는, 상기 제2 단위 데이터의 나머지가 복수 개의 셀인 경우, 상기 복수 개의 셀 각각을 서로 다른 어드레스 또는 서로 다른 뱅크에 하나씩 저장할 수 있다.
그리고, 상기 제1 단위 데이터와 상기 제2 단위 데이터는 밉맵(mipmap) 레벨이 서로 다를 수 있다.
또한, 상기 제1 단위 데이터의 밉맵 레벨은 상기 제2 단위 데이터의 밉맵 레벨보다 낮을 수 있다.
도 1은 본 발명의 일 실시예에 따른 그래픽 프로세서를 나타내는 블록도이다.
도 2는 일 실시예에 따른 캐시 메모리를 나타내는 블록도이다.
도 3은 일 실시예에 따른 뱅크의 구조를 개략적으로 도시한 도면이다.
도 4a 및 도 4b는 일 실시예에 따른 데이터 대역폭의 비트수가 단위 데이터의 비트수에 대한 정수 배인 경우, 단위 데이터 저장 방법을 설명하는 참조도면이다.
도 5는 일 실시예에 따른 단위 데이터의 비트수가 데이터 대역폭의 비트수에 대한 정수 배가 아닌 경우의 데이터 저장방법을 설명하는 참조도면이다.
도 6은 비교예에 따른 단위 데이터의 비트수가 데이터 대역폭의 비트수에 대한 정수 배가 아닌 경우의 데이터 저장 방법을 설명하는 참조도면이다.
도 7a 내지 도 7c는 다른 실시예에 따른 복수 개의 뱅크에서 데이터를 인터리브하는 방법을 설명하는 참조도면이다.
도 8a는 일 실시예에 따른 두 개의 LOD(Level of detail)에 대한 텍스처 이미지를 나타내는 도면이다.
도 8b는 일 실시예에 따른 LOD가 다른 이미지를 동시에 캐시 메모리에 저장된 방법을 설명하는 참조도면이다.
도 9는 일 실시예에 따른 캐시 메모리의 데이터 관리 방법을 설명하는 흐름도이다.
도 2는 일 실시예에 따른 캐시 메모리를 나타내는 블록도이다.
도 3은 일 실시예에 따른 뱅크의 구조를 개략적으로 도시한 도면이다.
도 4a 및 도 4b는 일 실시예에 따른 데이터 대역폭의 비트수가 단위 데이터의 비트수에 대한 정수 배인 경우, 단위 데이터 저장 방법을 설명하는 참조도면이다.
도 5는 일 실시예에 따른 단위 데이터의 비트수가 데이터 대역폭의 비트수에 대한 정수 배가 아닌 경우의 데이터 저장방법을 설명하는 참조도면이다.
도 6은 비교예에 따른 단위 데이터의 비트수가 데이터 대역폭의 비트수에 대한 정수 배가 아닌 경우의 데이터 저장 방법을 설명하는 참조도면이다.
도 7a 내지 도 7c는 다른 실시예에 따른 복수 개의 뱅크에서 데이터를 인터리브하는 방법을 설명하는 참조도면이다.
도 8a는 일 실시예에 따른 두 개의 LOD(Level of detail)에 대한 텍스처 이미지를 나타내는 도면이다.
도 8b는 일 실시예에 따른 LOD가 다른 이미지를 동시에 캐시 메모리에 저장된 방법을 설명하는 참조도면이다.
도 9는 일 실시예에 따른 캐시 메모리의 데이터 관리 방법을 설명하는 흐름도이다.
본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다.
명세서 전체에서, 어떤 부분이 다른 부분과 연결되어 있다고 할 때, 이는 직접적으로 연결되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 전기적으로 연결되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 포함한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 “...부”, “모듈” 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
본 명세서에서 사용되는 “구성된다” 또는 “포함한다” 등의 용어는 명세서 상에 기재된 여러 구성 요소들, 도는 여러 단계들을 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다.
또한, 본 명세서에서 사용되는 “제 1” 또는 “제 2” 등과 같이 서수를 포함하는 용어는 다양한 구성 요소들을 설명하는데 사용할 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만 사용된다.
이하 첨부된 도면을 참조하면서 오로지 예시를 위한 실시예에 의해 발명을 상세히 설명하기로 한다. 하기 실시예는 발명을 구체화하기 위한 것일 뿐 발명의 권리 범위를 제한하거나 한정하는 것이 아님은 물론이다. 상세한 설명 및 실시예로부터 발명이 속하는 기술분야의 전문가가 용이하게 유추할 수 있는 것은 발명의 권리범위에 속하는 것으로 해석된다.
도 1은 본 발명의 일 실시예에 따른 그래픽 프로세서를 나타내는 블록도이다.
도 1에 도시되어 있는 바와 같이, 3차원 그래픽 프로세서(100)는 3차원 응용 소프트웨어(110)가 응용 프로그램 인터페이스(API)(120)를 통해 보낸 3차원 그래픽 데이터에 대하여 3차원 그래픽 가속기(130)에서 실시간 하드웨어 가속을 수행한 후 디스플레이부(140)로 출력한다.
한편, 3차원 그래픽 가속기(130)는 크게, 기하학(geometry) 처리부(132)와 렌더링(rendering) 처리부(134)를 구비할 수 있다. 기하학 처리부(132)는 주로 3차원 좌표계의 물체를 시점에 따라 변환하고 2차원 좌표계로 투영 처리하는 과정이며, 렌더링 처리부(134)는 2차원 좌표계의 이미지에 대한 색상 값 등을 결정하여 디스플레이부(140)의 프레임 메모리(142)에 저장하는 과정이다. 한 개의 프레임에 대하여 입력되는 모든 3차원 데이터에 대한 처리가 끝난 후에 프레임 메모리(150)에 저장된 색상 값 등은 디스플레이부(140)상에서 디스플레이된다. 기하학 처리부(132)에서의 계산량은 처리하는 폴리곤의 정점 수에 비례하고, 렌더링 처리부(134)에서의 계산량은 생성하는 화소수에 비례할 수 있다.
3차원 그래픽은 주로 점, 선 또는 삼각형으로 구성되며, 대부분의 3차원 렌더링 처리부(134)는 삼각형을 고속으로 처리하는 구조를 가진다. 그리고 최근 3차원 그래픽 가속기(130)와 같은 3차원 그래픽 애플리케이션에서 실시간 장면을 렌더링할 때, 좀 더 자연스럽고 부드러운 영상을 얻기 위하여 다양한 텍스처(texture)와 여러 가지 방법의 컬러 블렌딩이 사용된다. 그리하여 렌더링 처리부(134)가 메인 메모리(150)를 많이 액세스하기 때문에 3차원 그래픽 가속기(130)의 성능의 향상에 가장 큰 영향을 미친다. 3차원 그래픽가속기(130)가 메인 메모리(150)를 액세스할 때, 긴 레이턴시(latency) 때문이다. 3차원 그래픽 가속기(130)의 스톨(stall)이 길어지는 것을 방지하기 위해 일 실시예에 따른 그래픽 프로세서는 캐시 메모리(160)를 포함할 수 있다.
도 2는 일 실시예에 따른 캐시 메모리(160)를 나타내는 블록도이다. 도 2에 도시된 캐시 메모리(160)는 텍스처 캐시 메모리일 수 도 있고, 컬러 캐시 메모리일 수도 있다. 그리고, 메인 메모리(150)는 텍스처 메모리 또는 컬러 메모리일 수도 있다. 도 3에 도시된 바와 같이 캐시 메모리(160)는 캐시 컨트롤러(162) 및 하나 이상의 뱅크로 구성된 뱅크부(164)를 포함할 수 있다. 캐시 컨트롤러(162)는 메인 메모리(150)로부터 데이터를 독출하여 뱅크부(164)에 저장할 수 있다. 여기서 데이터는 텍스처 데이터, 컬러 데이터 및 감도 데이터 중 적어도 하나일 수 있다. 텍스처 데이터 또는 컬러 데이터는 복수 개의 셀을 포함할 수 있다. 예를 들어, 텍스처 데이터의 셀은 텍셀이라고 할 수 있다. 또한 컬러 데이터의 셀은 R,G,B 일 수도 있고, R,G,B,W 등일 수 있다. 이하, 하나의 데이터를 형성하는 복수 개의 셀을 단위 데이터라고 한다. 예를 들어, 컬러 데이터의 셀이 R,G,B인 경우, R,G,B 각각은 셀이고, R,G,B의 합이 단위 데이터이다.
뱅크는 2차원으로 배열된 복수 개의 뱅크 셀을 포함할 수 있다. 뱅크 셀은 매트릭스 타입으로 2차원 또는 3차원으로 배열될 수 있다.
도 3은 일 실시예에 따른 뱅크의 구조를 개략적으로 도시한 도면이다. 도 3에 도시된 바와 같이, 뱅크는 컬럼 어드레스 및 로우 어드레스로 구성될 수 있다. 각 컬럼 어드레스는 데이터를 저장할 수 있는 공간인 데이터 대역폭을 가진다. 일반적으로 데이터 대역폭은 비트 단위이며, 2n(여기서, n은 자연수)비트일 수 있다. 컬럼 어드레스, 로우 어드레스 및 데이터 대역폭에 대한 크기는 뱅크에 따라 다를 수 있다.
한편, 뱅크에 데이터를 저장할 때, 캐시 컨트롤러(162)는 메인 메모리(150)에서 독출된 단위 데이터의 비트수와 데이터 대역폭의 비트수를 비교한다. 그리고, 캐시 컨트롤러(162)는 비교 결과에 따라 데이터 저장 방법을 다르게 할 수 있다. 예를 들어, 데이터 대역폭의 비트수가 단위 데이터의 비트수에 대한 정수 배인 경우, 캐시 컨트롤러(162)는 뱅크에 단위 데이터를 순차적으로 저장한다. 예를 들어, 컬럼 어드레스 및 로우 어드레스 순으로 순차적으로 저장할 수 있다.
도 4a 및 도 4b는 일 실시예에 따른 데이터 대역폭의 비트수가 단위 데이터의 비트수에 대한 정수 배인 경우, 단위 데이터 저장 방법을 설명하는 참조도면이다. 도 4a에 도시된 바와 같이, 단위 데이터가 2비트의 R(Red), G(Green), B(Blue), W(White)이고 뱅크의 데이터 대역폭은 16비트인 경우, 캐시 컨트롤러(162)는 단위 데이터를 분리하지 않고 순차적으로 저장할 수 있다. 예를 들어, 특정 어드레스에 단위 데이터를 순차적으로 저장하고 어드레스가 모두 채워지면, 캐시 컨트롤러(162)는 어드레스를 변경하여 단위 데이터를 순차적으로 저장한다. 예를 들어, 제1 로우 어드레스(LA1)에 제1 단위 데이터(TR0, TG0, TB0, TWO)를 저장하고, 제1 로우 어드레스(LA1)가 채워지면 제2 로우 어드레스(LA2)에 제2 단위 데이터(TR1, TG1, TB1, TW1)를 저장할 수 있다. 도 4a에서는 데이터 대역폭과 단위 데이터의 비트수가 동일하기 때문에 하나의 어드레스에 하나의 단위 데이터가 저장될 수 있다.
또는, 단위 데이터가 2비트의 R, G, B, W이고 뱅크의 데이터 대역폭의 비트수가 16비트인 경우, 도 4b에 도시된 바와 같이, 캐시 컨트롤러(162)는 하나의 로우 어드레스에 2개의 단위 데이터를 할당하여 데이터를 저장할 수 있다. 예를 들어, 제1 로우 어드레스(LA1)에 두 개의 단위 데이터(T0, T1)가 저장되고, 제1 로우 어드레스(LA1)가 채워지면 제2 로우 어드레스(LA2)에 두 개의 단위 데이터(T2, T3)가 저장될 수 있다.
도 4a 및 도 4b에서는 설명의 편의를 도모하기 위해 하나의 컬럼 어드레스와 복수 개의 로우 어드레스로 구성된 뱅크를 도시하였다. 그러나, 이에 한정되지 않는다. 뱅크는 복수 개의 컬럼 어드레스를 포함할 수 있다. 이와 같은 동일한 로우 어드레스에 포함된 컬럼 어드레스가 모두 채워지면 캐시 컨트롤러(162)는 로우 어드레스를 변경하여, 변경된 로우 어드레스의 컬럼 어드레스에 데이터를 순차적으로 저장할 수 있다.
한편, 데이터 대역폭의 비트수가 단위 데이터의 비트수에 대한 정수 배가 아닐 수 있다. 이와 같은 경우, 캐시 컨트롤러(162)는 데이터를 뱅크에 인터리브할 수 있다. 즉, 캐시 컨트롤러(162)는 단위 데이터 중 제1 단위 데이터를 상기 뱅크의 제1 어드레스의 일부 영역에 저장하고, 제2 단위 데이터의 일부를 제1 어드레스의 잉여 영역에 저장할 수 있다. 캐시 컨트롤러(162)는 단위 데이터를 셀 단위로 분리할 수 있다. 데이터가 텍스처 데이터일 때, 캐시 컨트롤러(162)는 텍셀 단위로 데이터를 분리할 수 있다. 또는 데이터가 컬러 데이터일 때, 캐시 컨트롤러(162)는 서브 컬러(예를 들어, R, G, B) 단위로 데이터를 분리할 수 있다.
도 5는 일 실시예에 따른 데이터 대역폭의 비트수가 단위 데이터의 비트수에 대한 정수 배가 아닌 경우의 데이터 저장방법을 설명하는 참조도면이다. 예를 들어, 단위 데이터의 비트수는 (n은 자연수)이고, 뱅크 내 데이터 대역폭의 비트수가 2m(m은 자연수)일 수 있다. 설명의 편의를 도모하기 위해 단위 데이터의 비트수는 24비트라고 한다. 즉, 단위 데이터는 8비트의 R, G, B일 수 있다. 그리고, 뱅크의 데이터 대역폭은 32비트라고 한다. 또한, 뱅크는 하나의 컬럼 어드레스와 복수 개의 로우 어드레스로 구성된다고 한다.
캐시 컨트롤러(162)는 제1 단위 데이터(TR0, TG0, TB0)를 제1 어드레스(LA1)의 일부 영역에 저장할 수 있다. 제1 단위 데이터가 24비트이므로, 제1 어드레스의 데이터 대역폭 중 24 비트만 채워지고 8비트가 남는다. 캐시 컨트롤러(162)는 로우 어드레스를 변경하여 제2 로우 어드레스(LA2)에 제2 단위 데이터(TR1, TG1, TB1)를 저장할 수 있다. 또한, 캐시 컨트롤러(162)는 로우 어드레스를 변경하여 제3 로우 어드레스(LA3)에 제3 단위 데이터(TR2, TG2, TB2)를 저장할 수 있다.
그리고, 캐시 컨트롤러(162)는 제4 단위 데이터(TR3, TG3, TB3)를 복수 개의 셀로 분리하고, 제1 내지 제 3 로우 어드레스의 잉여 영역(514, 524, 534)에 제4 단위 데이터의 셀들(TR3, TG3, TB3)을 하나씩 저장할 수 있다. 상기와 같이, 뱅크의 데이터 대역폭의 비트 수가 단위 데이터의 비트수에 대한 정수 배가 아닌 경우, 단위 데이터의 일부를 뱅크의 잉여 영역에 인터리브하기 때문에 뱅크의 공간 활용도를 높일 수 있다. 그리하여, 적은 공간에 많은 데이터를 저장할 수 있다.
도 5에서는 하나의 로우 어드레스에 하나의 컬럼 어드레스가 할당된 뱅크를 이용하여 설명하였다. 이는 설명의 편의를 도모하기 위할 뿐 이에 한정되지 않는다. 즉, 뱅크는 하나의 로우 어드레스에 복수 개의 컬럼 어드레스를 가질 수 있다. 이와 같은 경우, 컬럼 어드레스 별로 단위 데이터를 순차적으로 저장하고, 컬럼 어드레스의 잉여 영역에 단위 데이터의 일부를 인터리브할 수 있다.
도 6은 비교예에 따른 데이터 대역폭의 비트수가 단위 데이터의 비트수에 대한 정수 배가 아닌 경우의 데이터 저장 방법을 설명하는 참조도면이다. 데이터 대역폭의 비트수가 단위 데이터의 비트수에 대한 정수 배가 아닌 경우, 비교예는 데이터를 인터리브하지 않는다. 예를 들어, 단위 데이터가 24비트이고, 뱅크의 데이터 대역폭이 32비트인 경우, 비교예의 캐시 컨트롤러(162)는 인터리브없이 단위 데이터를 도 6에 도시된 바와 같이, 순차적으로 저장할 수 있다. 캐시 컨트롤러(162)는 제1 단위 데이터(TR0, TG0, TB0)를 제1 로우 어드레스(LA1)에 저장하고, 제2 단위 데이터(TR1, TG1, TB1)를 제2 로우 어드레스(LA2)에 저장하며, 제3 단위 데이터(TR2, TG2, TB2) 및 제4 단위 데이터(TR3, TG3, TB3) 각각을 제3 로우 어드레스(LA3) 및 제4 로우 어드레스(LA4)에 저장할 수 있다.
인터리브하여 데이터를 저장하는 도 5의 뱅크와 인터리브없이 데이터를 저장하는 도 6의 뱅크를 비교하면, 동일한 데이터를 저장하더라도 도 5에 도시된 뱅크의 저장 공간이 도 6에 도시된 뱅크의 저장 공간보다 1/4가 줄어듬을 확인할 수 있다. 또한, 데이터를 인터리브하게 저장하는 방법은 저장 공간의 활용도를 높일 수 있다. 뿐만 아니라, 데이터의 독출 성능도 향상시킬 수 있음은 물론이다.
예를 들어, 도 5에 도시된 뱅크에서 데이터를 독출할 때, 캐시 컨트롤러(162)는 3번의 액세스만으로 제1 내지 제4 단위 데이터를 독출할 수 있다. 그러나, 도 6에 도시된 뱅크에서 데이터를 독출할 때, 캐시 컨트롤러(162)는 제1 내지 제4 단위 데이터를 독출하기 위해 뱅크에 4번 액세스를 하여야 한다. 따라서, 데이터의 인터리브하게 저장하는 방법은 저장 공간의 활용도를 높일 뿐만 아니라 데이터의 독출 성능도 향상시킬 수 있음을 확인할 수 있다.
도 7a 내지 도 7c는 다른 실시예에 따른 복수 개의 뱅크에서 데이터를 인터리브하는 방법을 설명하는 참조도면이다. 캐시 메모리(160)는 복수 개의 뱅크를 포함할 수 있다. 캐시 컨트롤러(162)는 복수 개의 뱅크에 병렬적으로 단위 데이터를 저장할 수 있다. 예를 들어, 캐시 컨트롤러(162)는 제1 단위 데이터(TR0, TG0, TB0)를 제1 뱅크(B1)의 제1 로우 어드레스(LA1)에 저장할 수 있고, 그 다음 캐시 컨트롤러(162)는 제2 단위 데이터(TR1, TG1, TB1)를 제2 뱅크(B2)의 제1 로우 어드레스(LA1)에 저장할 수 있다. 캐시 컨트롤러(162)는 제1 뱅크(B1)와 제2 뱅크(B2)를 교번적으로 이동하면서 제3 내지 제6 단위 데이터를 저장할 수 있다.
그리고, 제7 단위 데이터의 각 셀(TR6, TG6, TB6)은 제1 뱅크(B1)의 잉여 영역(714)에 하나씩 저장할 수 있고, 제8 단위 데이터의 각 셀(TR7, TG7, TB7)은 제2 뱅크(B2)의 잉여 영역(724)에 하나씩 저장할 수 있다.
또는, 도 7b에 도시된 바와 같이, 캐시 컨트롤러(162)는 제7 및 제 8 단위 데이터의 셀 각각(TR6, TG6, TB6, TR7, TG7, TB7)을 제1 뱅크(B1)와 제2 뱅크(B2)에 교번적으로 이동하면서 제1 및 제2 뱅크(B1, B2)의 잉여 영역(714, 724)에 저장할 수 있다.
뿐만 아니라, 도 7c에 도시된 바와 같이, 캐시 컨트롤러(162)는 제1 단위 데이터(TR0, TG0, TB0)를 제1 뱅크(B1)의 제1 로우 어드레스(LA1)에 저장하고, 제2 단위 데이터의 제1 셀(TR1)을 제1 뱅크(B1)의 제1 로우 어드레스(LA1)내 잉여 영역(714a)에 저장할 수 있다. 그리고, 캐시 컨트롤러(162)는 제3 단위 데이터(TR2, TG2, TB2)를 제2 뱅크(B2)의 제1 로우 어드레스(LA1)에 저장하고, 제2 단위 데이터의 제2 셀(TG1)을 제2 뱅크(B2)의 제1 로우 어드레스(LA1)내 잉여 영역(724a)에 저장할 수 있다. 뿐만 아니라, 캐시 컨트롤러(162)는 제4 단위 데이터(TR3, TG3, TB3)를 제1 뱅크(B1)의 제2 로우 어드레스(LA12)에 저장하고, 제2 단위 데이터의 제3 셀(TB1)을 제1 뱅크(B1)의 제2 로우 어드레스(LA12)내 잉여 영역(714b)에 저장할 수 있다. 이와 같은 방법으로 뱅크의 잉여 영역에 데이터를 인터리브할 수 있다.
상기와 같은 단위 데이터의 셀을 분리하여 뱅크의 각기 다른 어드레스에 저장하는 방법은 밉맵 형식으로 저장된 데이터를 저장 및 독출할 때 유익하다.
3차원 컴퓨터 그래픽은 3차원의 좌표를 가지는 모델링 데이터를 시점 등에 대한 정보에 기초하여 만들어질 수 있으며, 텍스처 맵핑은 3차원의 객체에 2차원의 텍스처를 입힘으로써 적은 폴리곤으로 추상화된 객체가 보다 세밀하고 현실적인 표현을 갖도록 하는 방법이다. 텍스처 맵핑 분야에서, 밉맵(mipmap)은 렌더링(rendering) 속도를 향상시키기 위한 목적으로 기본 텍스처와 이를 연속적으로 미리 축소시킨 텍스처들로 이루어진 비트맵 이미지의 집합으로, 특정의 해상도 또는 LOD(Level of detail)를 위해 텍스처 이미지를 사전 필터링한 버전이다. 비트맵 이미지 각각은 밉맵 레벨이 할당될 수 있다. 예를 들어, 기본 텍스처 이미지를 기준 레벨(0레벨)로 정의하고 0레벨의 텍스처 이미지보다 1/4 크기인 텍스처 이미지를 1레벨의 텍스처 이미지로 정의될 수 있다. 또한, 다시 1레벨의 텍스처 이미지의 1/4 크기인 텍스처 이미지를 2레벨의 텍스처 이미지로 정의될 수 있다. 즉, 기본 텍스처 이미지를 기준으로 레벨이 증가할수록 텍스처 이미지의 크기는 작아지는 방식으로 밉맵 레벨이 정의될 수 있다. 그리하여 밉맵 레벨이 증가할수록 텍스처 이미지의 해상도는 감소한다.
도 8a는 일 실시예에 따른 두 개의 LOD(Level of detail)에 대한 텍스처 이미지를 나타내는 도면이다. LOD0 밉맵은 16개의 단위 데이터를 갖는 이미지고, LOD1 밉맵은 4개의 단위 데이터를 갖는 이미지일 수 있다. 일 실시예에 따른 캐시 메모리(160)는 상기와 같이 LOD가 다른 이미지를 동시에 저장할 수도 있고, 독출할 수도 있다.
도 8b는 일 실시예에 따른 LOD가 다른 이미지를 동시에 캐시 메모리(160)에 저장된 방법을 설명하는 참조도면이다. 설명의 편의를 도모하기 위해 캐시 메모리(160)는 4개의 뱅크를 갖고, 각 뱅크는 하나의 컬럼 어드레스 및 4개의 로우 어드레스를 갖는다고 한다.
캐시 컨트롤러(162)는 제1 뱅크(B1)의 제1 로우 어드레스(LA1)에 LODO 이미지의 제1 단위 데이터(TRO, TG0, TB0)를 저장할 수 있고, 제2 뱅크(B2)의 제1 로우 어드레스(LA1)에 LODO 이미지의 제2 단위 데이터(TR1, TG1, TB1)를 저장할 수 있고, 제3 뱅크(B3)의 제1 로우 어드레스(LA1)에 LODO 이미지의 제3 단위 데이터(TR2, TG2, TB2)를 저장할 수 있고, 제4 뱅크(B4)의 제1 로우 어드레스(LA1)에 LODO 이미지의 제4 단위 데이터(TR3, TG3, TB3)를 저장할 수 있다. 이와 같이 캐시 컨트롤러(162)는 제1 내지 제4 뱅크(B1, B2, B3, B4)에 LOD0 이미지의 단위 데이터를 순차적으로 저장할 수 있다.
또한, 캐시 컨트롤러(162)는 제1 뱅크(B1)의 제1 로우 어드레스(LA1)의 잉여 영역(814a)에 LOD1 이미지의 제1 단위 데이터의 제1 셀(TR0)을 저장할 수 있고, 제2 뱅크(B2)의 제1 로우 어드레스(LA1)의 잉여 영역(824a)에 LOD1 이미지의 제1 단위 데이터의 제2 셀(TG0)을 저장할 수 있고, 제3 뱅크(B3)의 제1 로우 어드레스(LA1)의 잉여 영역(834a)에 LOD1 이미지의 제1 단위 데이터의 제3 셀(TB0)을 저장할 수 있다. 이와 같이 캐시 컨트롤러(624)는 제1 내지 제3 뱅크(B1, B2, B3)의 제1 로우 어드레스에 LOD1 이미지의 제1 단위 데이터의 셀(TR0, TG0, TB0)을 하나씩 순차적으로 저장할 수 있다.
상기와 같은 방식으로 캐시 컨트롤러(162)는 제1 내지 제4 뱅크(B1, B2, B3, B4)에 LOD0 이미지의 단위 데이터를 순차적으로 저장하고, 제1 내지 제4 뱅크(B1, B2, B3, B4)의 잉여 영역에 LOD1 이미지의 단위 데이터의 셀을 순차적으로 저장할 수 있다.
상기와 같이 하나의 어드레스에 레벨이 다른 데이터를 저장하기 때문에 저장 공간을 줄일 수 있을 뿐만 아니라, 캐시 컨트롤러(162)가 데이터를 독출할 때에도 레벨이 다른 데이터를 동시에 독출할 수 있다. 도 8b에서는 제4 뱅크(B4)의 잉여 영역이 비워 있는 것으로 도시되어 있으나, LOD1 이미지의 임의의 셀이 저장될 수 있음은 물론이다. 제4 뱅크(B4)에 저장되는 단위 데이터의 셀은 제1 내지 제3 뱅크(B1, B2, B3)에 저장된 단위 데이터의 셀 중 어느 하나일 수도 있고, 제1 내지 제3 뱅크(B1, B2, B3)에 저장된 단위 데이터와 다른 단위 데이터일 수도 있다.
도 9는 일 실시예에 따른 캐시 메모리의 데이터 관리 방법을 설명하는 흐름도이다.
910 단계에서, 캐시 컨트롤러(162)는 데이터를 뱅크에 인터리브할 수 있는지 여부를 판단한다.
캐시 컨트롤러(162)는 데이터를 뱅크에 인터리브할 수 없다면, 920 단계에서 캐시 컨트롤러(162)는 뱅크에 단위 데이터 별로 순차적으로 저장할 수 있다. 뱅크의 데이터 대역폭의 비트수가 데이터에 포함된 단위 데이터의 비트 수의 N배인 경우, 캐시 컨트롤로는 데이터를 인터리브할 수 없다고 판단한다. 이는 뱅크의 어드레스에 N개의 단위 데이터를 저장할 수 있어, 뱅크의 어드레스에 잉여 영역이 발생하지 않기 때문이다. 그리하여, 캐시 컨트롤러(162)는 단위 데이터를 분리하지 않고, 단위 데이터 별로 저장할 수 있다. 캐시 컨트롤러(162)는 뱅크의 컬럼 어드레스 및 로우 어드레스 순으로 단위 데이터를 채울 수 있다. 뱅크가 복수 개인 경우, 캐시 컨트롤러(162)는 복수 개의 뱅크에 단위 데이터를 병렬적으로 저장할 수 있다. 예를 들어, 제1 뱅크(B1)의 제1 로우 어드레스에 데이터를 채우고 제2 뱅크(B2)의 제1 로우 어드레스에 데이터를 채운 후 로우 어드레스를 변경하여 데이터를 저장할 수 있다.
캐시 컨트롤러(162)는 데이터를 뱅크에 인터리브할 수 있다면, 930 단계에서 캐시 컨트롤러(162)는 단위 데이터의 일부를 어드레스의 잉여 영역에 저장할 수 있다. 뱅크의 데이터 대역폭의 비트수가 저장할 데이터의 단위 데이터의 비트수에 대한 정수 배가 아닌 경우, 뱅크의 데이터 대역폭을 단위 데이터로 채울 수 없다. 그리하여, 캐시 컨트롤러(162)는 단위 데이터를 복수 개의 셀로 분리하고, 단위 데이터의 일부 즉, 셀을 뱅크의 잉여 영역에 저장할 수 있다. 예를 들어, 잉여 영역에 단위 데이터의 일부를 저장하는 방법은 앞서 기술하였는 바, 구체적인 설명은 생략한다.
이와 같이, 데이터를 인터리브하여 저장하기 때문에 뱅크의 저장 공간을 줄일 수 있고, 뱅크에 저장된 데이터를 독출할 때에는 독출 성능을 향상시킬 수 있다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
100: 3차원 그래픽 프로세서 110: 3차원 응용 소프트웨어
120: 응용 프로그램 인터페이스 130: 3차원 그래픽 가속기
132: 기하학 처리부 134: 렌더링 처리부
140: 디스플레이부 150: 메인 메모리
160: 캐시 메모리 162: 캐시 컨트롤러
164: 뱅크부
120: 응용 프로그램 인터페이스 130: 3차원 그래픽 가속기
132: 기하학 처리부 134: 렌더링 처리부
140: 디스플레이부 150: 메인 메모리
160: 캐시 메모리 162: 캐시 컨트롤러
164: 뱅크부
Claims (20)
- 뱅크를 포함하는 캐시 메모리의 데이터 관리 방법에 있어서,
상기 뱅크에 포함된 데이터 대역폭의 비트 수가 저장할 데이터에 포함된 단위 데이터의 비트 수에 대한 정수 배인지 여부를 판단하는 단계;
상기 정수 배가 아닌 것으로 판단되는 경우, 상기 저장할 데이터 중 제1 단위 데이터를 상기 뱅크에 포함된 제1 어드레스의 제1 영역에 저장하는 단계; 및
상기 저장할 데이터 중 제2 단위 데이터의 일부를 상기 제1 어드레스의 제2 영역에 저장하는 단계; 및
상기 제2 단위 데이터의 나머지를 상기 제1 어드레스와 다른 제2 어드레스에 저장하는 단계;를 포함하며,
상기 단위 데이터의 비트수는 (n은 자연수)이고, 상기 데이터 대역폭의 비트수는 2m(m은 자연수)인 캐시 메모리 관리 방법. - 삭제
- 제 1항에 있어서,
상기 제2 어드레스는 상기 제1 어드레스의 뱅크와 동일한 뱅크에 포함되면서 컬럼 어드레스 및 로우 어드레스 중 적어도 하나가 다른 캐시 메모리 관리 방법. - 제 1항에 있어서,
상기 제2 어드레스는 상기 제1 어드레스의 뱅크와 다른 뱅크에 포함된 어드레스인 캐시 메모리 관리 방법. - 제 4항에 있어서,
상기 제2 어드레스는 상기 제1 어드레스의 뱅크와 다른 뱅크의 동일한 로우 어드레스를 갖는 캐시 메모리 관리 방법. - 제 1항에 있어서,
상기 제2 단위 데이터의 나머지가 복수 개의 셀인 경우,
상기 복수 개의 셀 각각은 서로 다른 어드레스 또는 서로 다른 뱅크에 하나씩 저장되는 캐시 메모리 관리 방법. - 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 뱅크; 및
메인 메모리에서 독출된 데이터를 상기 뱅크에 저장하는 캐시 컨트롤러;를 포함하고,
상기 캐시 컨트롤러는
상기 뱅크에 포함된 데이터 대역폭의 비트 수가 상기 독출된 데이터에 포함된 단위 데이터의 비트 수에 대한 정수 배가 아닌 경우, 상기 독출된 데이터 중 제1 단위 데이터를 상기 뱅크에 포함된 제1 어드레스의 제1 영역에 저장하고, 상기 독출된 데이터 중 제2 단위 데이터의 일부를 상기 제1 어드레스의 제2 영역에 저장하고, 상기 제2 단위 데이터의 나머지를 상기 제1 어드레스와 다른 제2 어드레스에 저장하며,
상기 단위 데이터의 비트수는 (n은 자연수)이고, 상기 데이터 대역폭의 비트수는 2m(m은 자연수)인 캐시 메모리. - 삭제
- 제 12항에 있어서,
상기 제2 어드레스는 상기 제1 어드레스와 동일한 뱅크에 포함되면서 컬럼 어드레스 및 로우 어드레스 중 적어도 하나가 다른 캐시 메모리. - 제 12항에 있어서,
상기 제2 어드레스는 상기 제1 어드레스의 뱅크와 다른 뱅크에 포함된 어드레스인 캐시 메모리. - 제 15항에 있어서,
상기 제2 어드레스는 상기 제1 어드레스의 뱅크와 다른 뱅크의 동일한 로우 어드레스를 갖는 캐시 메모리. - 제 12항에 있어서,
상기 캐시 컨트롤러는,
상기 제2 단위 데이터의 나머지가 복수 개의 셀인 경우, 상기 복수 개의 셀 각각을 서로 다른 어드레스 또는 서로 다른 뱅크에 하나씩 저장하는 캐시 메모리. - 삭제
- 삭제
- 삭제
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140150624A KR102308780B1 (ko) | 2014-10-31 | 2014-10-31 | 캐시 메모리의 관리 방법 및 그 장치 |
US14/715,683 US10019349B2 (en) | 2014-10-31 | 2015-05-19 | Cache memory and method of managing the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140150624A KR102308780B1 (ko) | 2014-10-31 | 2014-10-31 | 캐시 메모리의 관리 방법 및 그 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20160051153A KR20160051153A (ko) | 2016-05-11 |
KR102308780B1 true KR102308780B1 (ko) | 2021-10-05 |
Family
ID=55852806
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020140150624A KR102308780B1 (ko) | 2014-10-31 | 2014-10-31 | 캐시 메모리의 관리 방법 및 그 장치 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10019349B2 (ko) |
KR (1) | KR102308780B1 (ko) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9971691B2 (en) * | 2016-09-12 | 2018-05-15 | Intel Corporation | Selevtive application of interleave based on type of data to be stored in memory |
KR102516833B1 (ko) * | 2017-12-28 | 2023-04-03 | 삼성전자주식회사 | 메모리 장치 및 그 데이터 처리 방법 |
US10853168B2 (en) * | 2018-03-28 | 2020-12-01 | Samsung Electronics Co., Ltd. | Apparatus to insert error-correcting coding (ECC) information as data within dynamic random access memory (DRAM) |
US11522817B1 (en) * | 2021-01-04 | 2022-12-06 | Innovium, Inc. | Spatial dispersion buffer |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100328330A1 (en) | 2008-03-18 | 2010-12-30 | Fujitsu Limited | Memory controller and memory system using the same |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW349196B (en) | 1996-10-18 | 1999-01-01 | Ibm | Cached synchronous DRAM architecture having a mode register programmable cache policy |
KR20020084723A (ko) | 2001-05-02 | 2002-11-11 | 주식회사 하이닉스반도체 | 저장 공간을 최소화 하는 브이아이티피 캐쉬 메모리 |
US6999091B2 (en) * | 2001-12-28 | 2006-02-14 | Intel Corporation | Dual memory channel interleaving for graphics and video |
ATE406658T1 (de) * | 2002-11-20 | 2008-09-15 | Nxp Bv | Sdram adressenabbildung optimiert für zwei- dimensionalen zugriff |
KR100648293B1 (ko) | 2005-08-09 | 2006-11-23 | 삼성전자주식회사 | 그래픽 시스템 및 그것의 그래픽 처리 방법 |
KR100654462B1 (ko) | 2005-08-24 | 2006-12-06 | 삼성전자주식회사 | 캐쉬 메모리를 메모리 블록으로 나누어 파일의 데이터를저장하는 캐쉬 방법 및 캐쉬 시스템 |
US9141541B2 (en) * | 2013-09-20 | 2015-09-22 | Advanced Micro Devices, Inc. | Nested channel address interleaving |
-
2014
- 2014-10-31 KR KR1020140150624A patent/KR102308780B1/ko active IP Right Grant
-
2015
- 2015-05-19 US US14/715,683 patent/US10019349B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100328330A1 (en) | 2008-03-18 | 2010-12-30 | Fujitsu Limited | Memory controller and memory system using the same |
Also Published As
Publication number | Publication date |
---|---|
US10019349B2 (en) | 2018-07-10 |
US20160124866A1 (en) | 2016-05-05 |
KR20160051153A (ko) | 2016-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230053462A1 (en) | Image rendering method and apparatus, device, medium, and computer program product | |
JP6185211B1 (ja) | 適応的シェーディングによるテクスチャルックアップを使用した帯域幅低減 | |
US8553028B1 (en) | Efficiently implementing and displaying independent 3-dimensional interactive viewports of a virtual world on multiple client devices | |
US10776997B2 (en) | Rendering an image from computer graphics using two rendering computing devices | |
JP6530728B2 (ja) | 両眼視差映像に対するレンダリング方法及びその装置 | |
KR102258100B1 (ko) | 텍스쳐 처리 방법 및 장치 | |
US20090195541A1 (en) | Rendering dynamic objects using geometry level-of-detail in a graphics processing unit | |
US7483035B2 (en) | Texture cache control using a data dependent slot selection scheme | |
KR102308780B1 (ko) | 캐시 메모리의 관리 방법 및 그 장치 | |
KR102140387B1 (ko) | 대역폭-압축된 그래픽스 데이터의 저장 | |
US9811940B2 (en) | Bandwidth reduction using vertex shader | |
US10846908B2 (en) | Graphics processing apparatus based on hybrid GPU architecture | |
JP2007514230A5 (ko) | ||
KR102442488B1 (ko) | 그래픽 처리 시스템 및 그래픽 프로세서 | |
KR20180056316A (ko) | 타일-기반 렌더링을 수행하는 방법 및 장치 | |
US20170139707A1 (en) | Method and device for register management | |
KR20170040698A (ko) | 그래픽스 파이프라인을 수행하는 방법 및 장치 | |
EP2954495B1 (en) | Information processing apparatus, method of controlling the same, program, and storage medium | |
CN111406277A (zh) | 以微砖为基础的低分辨率深度存储 | |
JP5916764B2 (ja) | 仮想環境における隠蔽の推定方法 | |
JP7505481B2 (ja) | 画像処理装置および画像処理方法 | |
CN114375464A (zh) | 使用边界体积表示对虚拟空间中的动态单元进行光线追踪 | |
CN118043842A (zh) | 一种渲染格式选择方法及其相关设备 | |
JP6801001B2 (ja) | 画像処理装置、画像処理方法およびプログラム | |
Trapp et al. | Geometry Batching using Texture-arrays. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |