KR20160051153A - 캐시 메모리의 관리 방법 및 그 장치 - Google Patents

캐시 메모리의 관리 방법 및 그 장치 Download PDF

Info

Publication number
KR20160051153A
KR20160051153A KR1020140150624A KR20140150624A KR20160051153A KR 20160051153 A KR20160051153 A KR 20160051153A KR 1020140150624 A KR1020140150624 A KR 1020140150624A KR 20140150624 A KR20140150624 A KR 20140150624A KR 20160051153 A KR20160051153 A KR 20160051153A
Authority
KR
South Korea
Prior art keywords
data
address
bank
unit data
bits
Prior art date
Application number
KR1020140150624A
Other languages
English (en)
Other versions
KR102308780B1 (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 KR1020140150624A priority Critical patent/KR102308780B1/ko
Priority to US14/715,683 priority patent/US10019349B2/en
Publication of KR20160051153A publication Critical patent/KR20160051153A/ko
Application granted granted Critical
Publication of KR102308780B1 publication Critical patent/KR102308780B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0207Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0607Interleaved addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1056Simplification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/45Caching of specific data in cache memory
    • G06F2212/455Image 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

캐시 메모리의 관리 방법 및 그 장치{Method and apparatus for managing cache memory}
본 개시는 캐시 메모리의 관리 방법 및 그 장치를 제공한다.
최근, 컴퓨터 성능이 향상됨에 따라, 그래픽 시스템은 개인용 컴퓨터, 홈 비디오 게임 컴퓨터, 휴대형 장치 등을 이용하여 그래픽 영상을 더욱 사실적으로 표현할 수 있게 되었다. 그와 같은 그래픽 시스템에서는, 시스템의 스크린 상에서 그래픽 프리미티브들을 "렌더링(rendering)" 또는 묘화(draw)하기 위해 많은 과정을 거치게 된다.
고해상도 모니터에서의 그래픽 처리에 있어서는 화소수가 증가함에 따라 렌더링 처리를 하는 렌더링 엔진의 처리 속도를 증가시켜야 한다. 이러한 속도 문제를 해결하기 위해 내부 구조를 개선하거나 렌더링 엔진의 수를 증가시켜 병렬화하는 방법을 취하게 된다.
본 개시는 저장 효율 및 독출 효율을 증가시킬 수 있는 캐시 메모리 및 그 관리 방법을 제공한다.
일 유형에 따르는 캐시 메모리의 데이터 관리 방법은, 상기 뱅크에 포함된 데이터 대역폭의 비트 수가 저장할 데이터에 포함된 단위 데이터의 비트 수에 대한 정수 배인지 여부를 판단하는 단계; 상기 정수 배가 아닌 것으로 판단되는 경우, 상기 저장할 데이터 중 제1 단위 데이터를 상기 뱅크에 포함된 제1 어드레스의 제1 영역에 저장하는 단계; 및 상기 저장할 데이터 중 제2 단위 데이터의 일부를 상기 제1 어드레스의 제2 영역에 저장하는 단계;를 포함한다.
그리고, 상기 제2 단위 데이터의 나머지를 상기 제1 어드레스와 다른 제2 어드레스에 저장하는 단계;를 더 포함할 수 있다.
또한, 상기 제2 어드레스는 상기 제1 어드레스의 뱅크와 동일한 뱅크에 포함되면서 컬럼 어드레스 및 로우 어드레스 중 적어도 하나가 다를 수 있다.
그리고, 상기 제2 어드레스는 상기 제1 어드레스의 뱅크와 다른 뱅크에 포함된 어드레스일 수 있다.
또한, 상기 제2 어드레스는 상기 제1 어드레스의 뱅크와 다른 뱅크의 동일한 로우 어드레스를 가질 수 있다.
그리고, 상기 제2 단위 데이터의 나머지가 복수 개의 셀인 경우, 상기 복수 개의 셀 각각은 서로 다른 어드레스 또는 서로 다른 뱅크에 하나씩 저장될 수 있다.
또한, 상기 저장할 데이터는 텍스처 데이터, 픽셀 데이터 및 감도 데이터 중 적어도 하나일 수 있다.
그리고, 상기 단위 데이터의 비트수는
Figure pat00001
(n은 자연수)이고, 상기 데이터 대역폭의 비트수는 2m(m은 자연수)일 수 있다.
또한, 상기 제1 단위 데이터와 상기 제2 단위 데이터는 밉맵(mipmap) 레벨이 서로 다를 수 있다.
그리고, 상기 제1 단위 데이터의 밉맵 레벨은 상기 제2 단위 데이터의 밉맵 레벨보다 낮을 수 있다.
또한, 상기 단위 데이터의 비트수가 상기 데이터 대역폭의 비트수에 대한 정수배인 경우, 상기 단위 데이터 별로 상기 뱅크에 순차적으로 저장하는 단계;를 더 포함할 수 있다.
한편 일 실시예에 따른 캐시 메모리는, 뱅크; 및 메인 메모리에서 독출된 데이터를 상기 뱅크에 저장하는 캐시 컨트롤러;를 포함하고, 상기 캐시 컨트롤러는 상기 뱅크에 포함된 데이터 대역폭의 비트 수가 상기 독출된 데이터에 포함된 단위 데이터의 비트 수에 대한 정수 배가 아닌 경우, 상기 독출된 데이터 중 제1 단위 데이터를 상기 뱅크에 포함된 제1 어드레스의 제1 영역에 저장하고, 상기 독출된 데이터 중 제2 단위 데이터의 일부를 상기 제1 어드레스의 제2 영역에 저장한다.
그리고, 상기 캐시 컨트롤러는, 상기 제2 단위 데이터의 나머지를 상기 제1 어드레스와 다른 제2 어드레스에 저장할 수 있다.
또한, 상기 제2 어드레스는 상기 제1 어드레스와 동일한 뱅크에 포함되면서 컬럼 어드레스 및 로우 어드레스 중 적어도 하나가 다를 수 있다.
그리고, 상기 제2 어드레스는 상기 제1 어드레스의 뱅크와 다른 뱅크에 포함될 수 있다.
또한, 상기 제2 어드레스는 상기 제1 어드레스의 뱅크와 다른 뱅크의 동일한 로우 어드레스를 가질 수 있다.
그리고, 상기 캐시 컨트롤러는, 상기 제2 단위 데이터의 나머지가 복수 개의 셀인 경우, 상기 복수 개의 셀 각각을 서로 다른 어드레스 또는 서로 다른 뱅크에 하나씩 저장할 수 있다.
또한, 상기 단위 데이터의 비트수는
Figure pat00002
(n은 자연수)이고, 상기 데이터 대역폭의 비트수는 2m(m은 자연수)일 수 있다.
그리고, 상기 제1 단위 데이터와 상기 제2 단위 데이터는 밉맵(mipmap) 레벨이 서로 다를 수 있다.
또한, 상기 제1 단위 데이터의 밉맵 레벨은 상기 제2 단위 데이터의 밉맵 레벨보다 낮을 수 있다.
도 1은 본 발명의 일 실시예에 따른 그래픽 프로세서를 나타내는 블록도이다.
도 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는 일 실시예에 따른 데이터 대역폭의 비트수가 단위 데이터의 비트수에 대한 정수 배가 아닌 경우의 데이터 저장방법을 설명하는 참조도면이다. 예를 들어, 단위 데이터의 비트수는
Figure pat00003
(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 셀(T?0)을 저장할 수 있고, 제2 뱅크(B2)의 제1 로우 어드레스(LA1)의 잉여 영역(824a)에 LOD1 이미지의 제1 단위 데이터의 제2 셀(T?0)을 저장할 수 있고, 제3 뱅크(B3)의 제1 로우 어드레스(LA1)의 잉여 영역(834a)에 LOD1 이미지의 제1 단위 데이터의 제3 셀(T?0)을 저장할 수 있다. 이와 같이 캐시 컨트롤러(624)는 제1 내지 제3 뱅크(B1, B2, B3)의 제1 로우 어드레스에 LOD1 이미지의 제1 단위 데이터의 셀(T?0, T?0, T?0)을 하나씩 순차적으로 저장할 수 있다.
상기와 같은 방식으로 캐시 컨트롤러(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: 뱅크부

Claims (20)

  1. 뱅크를 포함하는 캐시 메모리의 데이터 관리 방법에 있어서,
    상기 뱅크에 포함된 데이터 대역폭의 비트 수가 저장할 데이터에 포함된 단위 데이터의 비트 수에 대한 정수 배인지 여부를 판단하는 단계;
    상기 정수 배가 아닌 것으로 판단되는 경우, 상기 저장할 데이터 중 제1 단위 데이터를 상기 뱅크에 포함된 제1 어드레스의 제1 영역에 저장하는 단계; 및
    상기 저장할 데이터 중 제2 단위 데이터의 일부를 상기 제1 어드레스의 제2 영역에 저장하는 단계;를 포함하는 캐시 메모리 관리 방법.
  2. 제 1항에 있어서,
    상기 제2 단위 데이터의 나머지를 상기 제1 어드레스와 다른 제2 어드레스에 저장하는 단계;를 더 포함하는 캐시 메모리 관리 방법.
  3. 제 2항에 있어서,
    상기 제2 어드레스는 상기 제1 어드레스의 뱅크와 동일한 뱅크에 포함되면서 컬럼 어드레스 및 로우 어드레스 중 적어도 하나가 다른 캐시 메모리 관리 방법.
  4. 제 2항에 있어서,
    상기 제2 어드레스는 상기 제1 어드레스의 뱅크와 다른 뱅크에 포함된 어드레스인 캐시 메모리 관리 방법.
  5. 제 4항에 있어서,
    상기 제2 어드레스는 상기 제1 어드레스의 뱅크와 다른 뱅크의 동일한 로우 어드레스를 갖는 캐시 메모리 관리 방법.
  6. 제 2항에 있어서,
    상기 제2 단위 데이터의 나머지가 복수 개의 셀인 경우,
    상기 복수 개의 셀 각각은 서로 다른 어드레스 또는 서로 다른 뱅크에 하나씩 저장되는 캐시 메모리 관리 방법.
  7. 제 1항에 있어서,
    상기 저장할 데이터는 텍스처 데이터, 픽셀 데이터 및 감도 데이터 중 적어도 하나인 캐시 메모리 관리 방법.
  8. 제 1항에 있어서,
    상기 단위 데이터의 비트수는
    Figure pat00004
    (n은 자연수)이고, 상기 데이터 대역폭의 비트수는 2m(m은 자연수)인 캐시 메모리 관리 방법.
  9. 제 1항에 있어서,
    상기 제1 단위 데이터와 상기 제2 단위 데이터는 밉맵(mipmap) 레벨이 서로 다른 캐시 메모리 관리 방법.
  10. 제 1항에 있어서,
    상기 제1 단위 데이터의 밉맵 레벨은 상기 제2 단위 데이터의 밉맵 레벨보다 낮은 캐시 메모리 관리 방법.
  11. 제 1항에 있어서,
    상기 정수 배인 경우, 상기 저장할 데이터를 단위 데이터 별로 상기 뱅크에 순차적으로 저장하는 단계;를 더 포함하는 캐시 메모리 관리 방법.
  12. 뱅크; 및
    메인 메모리에서 독출된 데이터를 상기 뱅크에 저장하는 캐시 컨트롤러;를 포함하고,
    상기 캐시 컨트롤러는
    상기 뱅크에 포함된 데이터 대역폭의 비트 수가 상기 독출된 데이터에 포함된 단위 데이터의 비트 수에 대한 정수 배가 아닌 경우, 상기 독출된 데이터 중 제1 단위 데이터를 상기 뱅크에 포함된 제1 어드레스의 제1 영역에 저장하고, 상기 독출된 데이터 중 제2 단위 데이터의 일부를 상기 제1 어드레스의 제2 영역에 저장하는 캐시 메모리.
  13. 제 12항에 있어서,
    상기 캐시 컨트롤러는,
    상기 제2 단위 데이터의 나머지를 상기 제1 어드레스와 다른 제2 어드레스에 저장하는 캐시 메모리.
  14. 제 13항에 있어서,
    상기 제2 어드레스는 상기 제1 어드레스와 동일한 뱅크에 포함되면서 컬럼 어드레스 및 로우 어드레스 중 적어도 하나가 다른 캐시 메모리.
  15. 제 13항에 있어서,
    상기 제2 어드레스는 상기 제1 어드레스의 뱅크와 다른 뱅크에 포함된 어드레스인 캐시 메모리.
  16. 제 15항에 있어서,
    상기 제2 어드레스는 상기 제1 어드레스의 뱅크와 다른 뱅크의 동일한 로우 어드레스를 갖는 캐시 메모리.
  17. 제 13항에 있어서,
    상기 캐시 컨트롤러는,
    상기 제2 단위 데이터의 나머지가 복수 개의 셀인 경우, 상기 복수 개의 셀 각각을 서로 다른 어드레스 또는 서로 다른 뱅크에 하나씩 저장하는 캐시 메모리.
  18. 제 12항에 있어서,
    상기 단위 데이터의 비트수는
    Figure pat00005
    (n은 자연수)이고, 상기 데이터 대역폭의 비트수는 2m(m은 자연수)인 캐시 메모리.
  19. 제 12항에 있어서,
    상기 제1 단위 데이터와 상기 제2 단위 데이터는 밉맵(mipmap) 레벨이 서로 다른 캐시 메모리.
  20. 제 12항에 있어서,
    상기 제1 단위 데이터의 밉맵 레벨은 상기 제2 단위 데이터의 밉맵 레벨보다 낮은 캐시 메모리.
KR1020140150624A 2014-10-31 2014-10-31 캐시 메모리의 관리 방법 및 그 장치 KR102308780B1 (ko)

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 true KR20160051153A (ko) 2016-05-11
KR102308780B1 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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019132235A1 (ko) * 2017-12-28 2019-07-04 삼성전자주식회사 메모리 장치 및 그 데이터 처리 방법

Families Citing this family (3)

* Cited by examiner, † Cited by third party
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
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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
WO2004047112A1 (en) * 2002-11-20 2004-06-03 Koninklijke Philips Electronics N.V. Sdram address mapping optimized for two-dimensional access
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
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

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019132235A1 (ko) * 2017-12-28 2019-07-04 삼성전자주식회사 메모리 장치 및 그 데이터 처리 방법
KR20190080120A (ko) * 2017-12-28 2019-07-08 삼성전자주식회사 메모리 장치 및 그 데이터 처리 방법
US11341045B2 (en) * 2017-12-28 2022-05-24 Samsung Electronics Co., Ltd. Memory apparatus and method for processing data using the same

Also Published As

Publication number Publication date
US10019349B2 (en) 2018-07-10
US20160124866A1 (en) 2016-05-05
KR102308780B1 (ko) 2021-10-05

Similar Documents

Publication Publication Date Title
US20230053462A1 (en) Image rendering method and apparatus, device, medium, and computer program product
US7483035B2 (en) Texture cache control using a data dependent slot selection scheme
US8587592B2 (en) Tile-based rendering apparatus and method
US8395619B1 (en) System and method for transferring pre-computed Z-values between GPUs
TWI528328B (zh) 依據貼圖影像內容決定選擇細節層次之三維貼圖處理方法、裝置以及儲存其之電腦可讀取記錄媒體
KR102140387B1 (ko) 대역폭-압축된 그래픽스 데이터의 저장
WO2019040222A1 (en) RENDERING AN IMAGE FROM COMPUTER GRAPHICS USING TWO COMPUTER RESTITUTION DEVICES
KR20160051154A (ko) 렌더링 방법, 렌더링 장치 및 전자 장치
US10078911B2 (en) System, method, and computer program product for executing processes involving at least one primitive in a graphics processor, utilizing a data structure
KR20180056316A (ko) 타일-기반 렌더링을 수행하는 방법 및 장치
KR20220047284A (ko) 포비티드 렌더링을 위한 시스템들 및 방법들
US10846908B2 (en) Graphics processing apparatus based on hybrid GPU architecture
KR20120034293A (ko) 정점 처리 방법 및 장치
KR102308780B1 (ko) 캐시 메모리의 관리 방법 및 그 장치
JP2016085729A (ja) キャッシュメモリ・システム及びその動作方法
KR20180002635A (ko) 그래픽 프로세싱을 위한 표면 포맷에 기초한 적응적 메모리 어드레스 스캐닝
CN111406277A (zh) 以微砖为基础的低分辨率深度存储
CN112017101A (zh) 可变光栅化率
US20100039562A1 (en) Source and output device-independent pixel compositor device adapted to incorporate the digital visual interface (DVI)
US8654135B1 (en) A-Buffer compression for different compression formats
JP5916764B2 (ja) 仮想環境における隠蔽の推定方法
KR20180023856A (ko) 그래픽 처리 시스템 및 그래픽 프로세서
US6924812B2 (en) Method and apparatus for reading texture data from a cache
CN118043842A (zh) 一种渲染格式选择方法及其相关设备
JP6801001B2 (ja) 画像処理装置、画像処理方法およびプログラム

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant