KR101862785B1 - 타일 기반 렌더링을 위한 캐쉬 메모리 시스템 및 캐슁 방법 - Google Patents

타일 기반 렌더링을 위한 캐쉬 메모리 시스템 및 캐슁 방법 Download PDF

Info

Publication number
KR101862785B1
KR101862785B1 KR1020110105939A KR20110105939A KR101862785B1 KR 101862785 B1 KR101862785 B1 KR 101862785B1 KR 1020110105939 A KR1020110105939 A KR 1020110105939A KR 20110105939 A KR20110105939 A KR 20110105939A KR 101862785 B1 KR101862785 B1 KR 101862785B1
Authority
KR
South Korea
Prior art keywords
cache
association
line
cache line
unit
Prior art date
Application number
KR1020110105939A
Other languages
English (en)
Other versions
KR20130041585A (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 KR1020110105939A priority Critical patent/KR101862785B1/ko
Priority to US13/652,894 priority patent/US9176880B2/en
Publication of KR20130041585A publication Critical patent/KR20130041585A/ko
Application granted granted Critical
Publication of KR101862785B1 publication Critical patent/KR101862785B1/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/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/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • 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
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

타일 기반 렌더링을 위한 캐쉬 메모리 시스템 및 캐슁 방법이 제공된다. 캐쉬 메모리 시스템 내의 캐쉬 라인들은 각각 지연 교체 정보를 갖는다. 지연 교체 정보는 캐쉬 라인이 타일의 에지 위치에서 참조한 텍스처 데이터를 포함하고 있는지 여부를 나타낸다. 접근이 요청된 주소에 대응하는 캐쉬 라인이 캐쉬 메모리 시스템 내에 존재하지 않는 경우, 캐쉬 메모리 시스템은 지연 교체 정보에 기반하여 연관 캐쉬부로부터 제거할 캐쉬 라인을 선택 및 제거한다.

Description

타일 기반 렌더링을 위한 캐쉬 메모리 시스템 및 캐슁 방법{CACHE MEMORY SYSTEM FOR TILE BASED RENDERING AND CACHING METHOD THEREOF}
아래의 실시예들은 캐쉬 메모리 시스템 및 캐슁 방법에 관한 것이다.
타일 기반 렌더링을 위한 캐쉬 메모리 시스템 및 캐슁 방법이 개시된다.
영상(image)의 렌더링(rendering)을 위해, 객체 기반 렌더링(Object Based Rendering; OBR) 또는 타일 기반 렌더링(Tile Based Rendering; TBR)이 사용될 수 있다.
OBR은 직관적인 처리 과정 및 하드웨어 설계에 있어서의 용이함 등의 이유로 데스크탑(desktop) 그래픽스 처리 장치(Graphic Processing Unit; GPU)에 의해 핵심적인 알고리즘(algorithm)으로 사용되었다.
OBR은 객체 순으로 렌더링을 수행한다. 따라서, OBR은 픽셀(pixel) 파이프라인(pipeline) 단에서, 매 픽셀(pixel)마다 외부 메모리(예컨대, 동적 임의 접근 메모리(dynamic random access memory; DRAM)로의 임의 접근(random access)를 유발한다.
반면, TBR은 스크린(screen) 영역을 타일 단위로 분할하고, 타일 순으로 렌더링을 수행한다. TBR이 사용될 경우, 외부 메모리는 각 타일 당 한번 씩만 접근된다. 분할된 타일은 빠른 내부 메모리를 사용하여 렌더링되며, 렌더링된 결과가 메모리로 전송된다. 따라서, OBR은 전력 소모의 측면 및 메모리 사용의 측면에 있어서 TBR에 비해 불리한 면을 갖는다.
본 발명의 일 실시예는 캐쉬 라인의 지연 교체 정보를 사용하여, 하나 이상의 캐쉬 라인들 중 제거될 캐쉬 라인을 선택하는 캐쉬 메모리 시스템 및 캐슁 방법을 제공할 수 있다.
본 발명의 일 실시예는 캐쉬 라인의 지연 교체 정보를 사용하여, 제거될 캐쉬 라인이 이동될 메모리를 선택하는 캐쉬 메모리 시스템 및 캐슁 방법을 제공할 수 있다.
본 발명의 일 실시예는 캐쉬 라인의 지연 교체 정보를 사용하여, 하나 이상의 부-연관 캐쉬들 중 제거될 캐쉬 라인이 이동할 부-연관 캐쉬를 선택하는 캐쉬 메모리 시스템 및 캐슁 방법을 제공할 수 있다.
본 발명의 일 측에 따르면, 하나 이상의 제1 캐쉬 라인들 중 접근이 요청된 주소에 대응하는 캐쉬 라인을 동시에 검색하는 제1연관 캐쉬부 및 하나 이상의 제2 캐쉬 라인들을 저장하고, 상기 제2 캐쉬 라인들 중 상기 접근이 요청된 주소에 대응하는 캐쉬 라인을 동시에 검색하는 제2 연관 캐쉬부를 포함하고, 상기 제1 연관 캐쉬부는 제1 캐쉬 라인들 각각의 지연 교체 정보를 포함하고, 상기 접근이 요청된 주소에 대응하는 캐쉬 라인이 상기 제1 연관 캐쉬부 및 상기 제2 연관 캐쉬부 내에 존재하지 않는 경우, 상기 제1 연관 캐쉬부는 상기 제1 캐쉬 라인들의 상기 지연 교체 정보에 기반하여 상기 제1 캐쉬 라인들 중 하나의 캐쉬 라인을 선택 및 제거하는, 캐쉬 메모리 시스템이 제공된다.
상기 지연 교체 정보는 캐쉬 라인이 타일의 에지 위치에서 참조한 텍스처 데이터를 포함하고 있는지 여부를 나타낼 수 있다.
상기 접근이 요청된 주소에 대응하는 캐쉬 라인이 상기 제1 연관 캐쉬부 및 상기 제2 연관 캐쉬부 내에 존재하지 않는 경우, 상기 제1 연관 캐쉬부는 상기 제1 캐쉬 라인들 중 가장 오랫동안 접근되지 않은 캐쉬 라인을 검색할 수 있고, 상기 검색된 캐쉬 라인의 상기 지연 교체 정보의 값이 제1 미리 정의된 값일 경우 상기 검색된 캐쉬 라인을 상기 제2 연관 캐쉬부로 이동시킬 수 있다.
상기 검색된 캐쉬 라인의 지연 교체 정보의 값이 제2 미리 정의된 값이고, 상기 검색된 캐쉬 라인이 상기 검색에서 제외된 횟수가 제3 미리 정의된 값 이하일 경우, 상기 제1 연관 캐쉬부는 상기 제1 캐쉬 라인들 중 상기 지연 교체 정보의 값이 상기 제1 미리 정의된 값인 캐쉬 라인들 중에서 가장 오랫동안 접근되지 않은 캐쉬 라인을 재검색할 수 있고, 상기 재검색된 캐쉬 라인을 상기 제2 연관 캐쉬부로 이동시킬 수 있다.
상기 접근이 요청된 주소에 대응하는 캐쉬 라인이 상기 제1 연관 캐쉬부 및 상기 제2 연관 캐쉬부 내에 존재하지 않는 경우, 상기 제1 연관 캐쉬부는 상기 제1 캐쉬 라인들 중 가장 오랫동안 접근되지 않은 캐쉬 라인을 검색할 수 있고, 상기 검색된 캐쉬 라인의 상기 지연 교체 정보의 값에 기반하여 상기 캐쉬 메모리 시스템의 외부의 메모리 및 상기 제2 연관 캐쉬부 중 하나를 선택할 수 있고, 상기 검색된 캐쉬 라인을 상기 선택된 외부의 메모리 또는 상기 제2 연관 캐쉬부로 이동시킬 수 있다.
상기 제2 연관 캐쉬부는 복수 개의 부-연관 캐쉬부들을 포함할 수 있다.
상기 접근이 요청된 주소에 대응하는 캐쉬 라인이 상기 제1 연관 캐쉬부 및 상기 제2 연관 캐쉬부 내에 존재하지 않는 경우, 상기 제1 연관 캐쉬부는 상기 제1 캐쉬 라인들 중 가장 오랫동안 접근되지 않은 캐쉬 라인을 검색할 수 있고, 상기 검색된 캐쉬 라인의 상기 지연 교체 정보의 값에 기반하여 상기 복수 개의 부-연관 캐쉬부들 중 하나를 선택할 수 있고, 상기 검색된 캐쉬 라인을 상기 선택된 부-연관 캐쉬부로 이동시킬 수 있다.
상기 복수 개의 부-연관 캐쉬부들은 각각 상이한 개수의 캐쉬 라인들을 저장하는, 캐쉬 메모리 시스템.
상기 제1 연관 캐쉬부는, 하나 이상의 세트들을 포함할 수 있고, 하나 이상의 세트들은 각각 k 개의 캐쉬 라인들을 저장할 수 있고, 상기 제1 캐쉬라인은 접근이 요청된 주소에 대응하는 세트 내에 저장된 k 개의 캐쉬 라인들일 수 있다.
본 발명의 다른 일 측에 따르면, 제1연관 캐쉬부가 하나 이상의 제1 캐쉬 라인들 중 접근이 요청된 주소에 대응하는 캐쉬 라인을 동시에 검색하는 단계 - 상기 제1 연관 캐쉬부는 제1 캐쉬 라인들 각각의 지연 교체 정보를 포함함 -, 하나 이상의 제2 캐쉬 라인들을 저장하는 제2 연관 캐쉬부가 상기 제2 캐쉬 라인들 중 상기 접근이 요청된 주소에 대응하는 캐쉬 라인을 동시에 검색하는 단계, 상기 접근이 요청된 주소에 대응하는 캐쉬 라인이 상기 제1 연관 캐쉬부 및 상기 제2 연관 캐쉬부 내에 존재하지 않는 경우, 상기 제1 연관 캐쉬부가 상기 제1 캐쉬 라인들 중 하나의 캐쉬 라인을 선택하는 단계 및 상기 제1 연관 캐쉬부가 상기 선택된 캐쉬 라인을 상기 제1 연관 캐쉬부로부터 제거하는 단계를 포함하고, 상기 제1 연관 캐쉬부는 상기 제1 캐쉬 라인들 중 하나의 캐쉬 라인을 선택하거나 선택된 캐쉬 라인을 제거함에 있어서 상기 제1 캐쉬 라인들의 상기 지연 교체 정보를 사용하는, 캐슁 방법이 제공된다.
상기 하나의 캐쉬 라인을 선택하는 단계는, 상기 제1 연관 캐쉬부가 상기 제1 캐쉬 라인들 중 가장 오랫동안 접근되지 않은 캐쉬 라인을 검색하는 단계를 포함할 수 있다.
상기 선택된 캐쉬 라인을 상기 제1 연관 캐쉬부로부터 제거하는 단계는, 상기 검색된 캐쉬 라인의 상기 지연 교체 정보의 값이 제1 미리 정의된 값일 경우 상기 제1 연관 캐쉬부가 상기 검색된 캐쉬 라인을 상기 제2 연관 캐쉬부로 이동시키는 단계를 포함할 수 있다.
상기 하나의 캐쉬 라인을 선택하는 단계는, 상기 검색된 캐쉬 라인의 지연 교체 정보의 값이 제2 미리 정의된 값이고, 상기 검색된 캐쉬 라인이 상기 검색에서 제외된 횟수가 제3 미리 정의된 값 이하일 경우, 상기 제1 연관 캐쉬부가 상기 제1 캐쉬 라인들 중 상기 지연 교체 정보의 값이 상기 제1 미리 정의된 값인 캐쉬 라인들 중에서 가장 오랫동안 접근되지 않은 캐쉬 라인을 재검색하는 단계를 더 포함할 수 있다.
상기 선택된 캐쉬 라인을 상기 제1 연관 캐쉬부로부터 제거하는 단계는, 상기 검색된 캐쉬 라인의 지연 교체 정보의 값이 제2 미리 정의된 값이고, 상기 검색된 캐쉬 라인이 상기 검색에서 제외된 횟수가 제3 미리 정의된 값 이하일 경우, 상기 제1 연관 캐쉬부가 상기 재검색된 캐쉬 라인을 상기 제2 연관 캐쉬부로 이동시키는 단계를 더 포함할 수 있다.
상기 선택된 캐쉬 라인을 상기 제1 연관 캐쉬부로부터 제거하는 단계는, 상기 제1 연관 캐쉬부가 상기 검색된 캐쉬 라인의 상기 지연 교체 정보의 값에 기반하여 상기 캐쉬 메모리 시스템의 외부의 메모리 및 상기 제2 연관 캐쉬부 중 하나를 선택하는 단계 및 상기 제1 연관 캐쉬부가 상기 검색된 캐쉬 라인을 상기 선택된 외부의 메모리 또는 상기 제2 연관 캐쉬부로 이동시키는 단계를 포함할 수 있다.
상기 선택된 캐쉬 라인을 상기 제1 연관 캐쉬부로부터 제거하는 단계는, 상기 제1 연관 캐쉬부가 상기 검색된 캐쉬 라인의 상기 지연 교체 정보의 값에 기반하여 상기 복수 개의 부-연관 캐쉬부들 중 하나를 선택하는 단계 및 상기 제1 연관 캐쉬부가 상기 검색된 캐쉬 라인을 상기 선택된 부-연관 캐쉬부로 이동시키는 단계를 포함할 수 있다.
캐쉬 라인의 지연 교체 정보를 사용하여, 하나 이상의 캐쉬 라인들 중 제거될 캐쉬 라인을 선택하는 캐쉬 메모리 시스템 및 캐슁 방법이 제공된다.
캐쉬 라인의 지연 교체 정보를 사용하여, 제거될 캐쉬 라인이 이동될 메모리를 선택하는 캐쉬 메모리 시스템 및 캐슁 방법이 제공된다.
캐쉬 라인의 지연 교체 정보를 사용하여, 하나 이상의 부-연관 캐쉬들 중 제거될 캐쉬 라인이 이동할 부-연관 캐쉬를 선택하는 캐쉬 메모리 시스템 및 캐슁 방법이 제공된다.
도 1은 본 발명의 일 예에 따른 에지 효과(edge effect)를 설명한다.
도 2는 본 발명의 일 실시예에 따른 캐쉬 메모리 시스템을 나타낸다.
도 3은 본 발명의 일 예에 따른 제거될 캐쉬 라인을 선택하는 방법을 설명한다.
도 4는 본 발명의 일 예에 따른 선택된 캐쉬 라인을 제거하는 방법을 설명한다.
도 5는 본 발명의 일 예에 따른 제거되는 캐쉬 라인을 복수 개의 부-연관 캐쉬부들 중 하나의 부-연관 캐쉬부로 이동하는 방법을 설명한다.
도 6은 본 발명의 일 실시예에 따른 캐쉬 메모리 시스템의 캐슁 방법을 설명하는 흐름도이다.
이하에서, 본 발명의 일 실시예를, 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 일 예에 따른 에지 효과(edge effect)를 설명한다.
TBL은 스크린 영역(100)(즉, 프레임(frame)을 복수 개의 타일들로 분할한다. 도 1에서, 스크린 영역(100)은 7 행 및 7 열의 타일들로 분할되었다. 도 1의 스크린 영역(100) 내에는 3 개의 객체들(130, 140 및 150)이 있다.
도 1에서 제1 타일(110)의 일부(112) 및 제2 타일(120)의 일부(122)가 확대되었다. 에지(105)는 제1 타일(110) 및 제2 타일(120) 간의 에지이다. 제1 타일(110) 및 제2 타일(120) 내에는 제2 객체(140)의 일부(142)가 있다.
GPU는 각 타일(예컨대, 제1 타일(110) 또는 제2 타일(120))을 렌더링한다.
GPU가 제1 타일(110)을 렌더링할 때, GPU는 스캔 라인(scan line)에 따라, 타일 내의 삼각형(즉, 제2 객체(140))을 렌더링한다. GPU가 제1 타일(110) 내의 픽셀(또는, 프래그먼트)들을 처리할 때, GPU는 외부 메모리에게 데이터(예컨대, 텍스처 데이터)를 요청한다. 요청된 데이터는 향후에 재사용 되기 위해 캐쉬 내에 저장된다.
여기서, 데이터는 블록(160) 단위로 요청될 수 있다. 블록(160)은 하나 이상의 텍셀(texel)들을 포함할 수 있다. 도 2에서, 블록(160)은, 2행 및 2열의, 4 개의 텍셀들(162, 164, 166 및 168)을 갖는 것으로 예시되었다. 블록은 임의의 크기를 가질 수 있으며, 정사각형 모양으로 한정되지 않는다. 하나의 텍셀은 하나의 픽셀을 나타낼 수 있다. 하나의 텍셀은 하나 이상의 바이트들 또는 워드들을 포함할 수 있다.
블록(160) 내의 텍셀들(162, 164, 166 및 168) 중 제1 타일(110)과 인접한 제2 타일(120) 내에 있는 텍셀들(166 및 168)은 제1 타일(110)의 렌더링에서는 사용되지 않는다. 즉, 블록(160)이 렌더링이 되는 제1 타일(110) 및 상기 제1 타일(110)과 인접한 제2 타일(120) 간의 에지에 걸쳐 있는 경우, 제2 타일(120) 내에 있는 픽셀에 대한 데이터는(예컨대, 텍셀들(166 및 168) 제1 타일(110)의 렌더링이 수행될 때에는, 사용되지 않는다.
제1 타일(110) 및 제2 타일(120)이 인접하였더라도, 제1 타일(110)이 처리(예컨대, 렌더링)된 직후에 제2 타일(120)이 처리된다는 것은 보장되지 않는다. (특히, 제1 타일(110) 및 제2 타일(120)이 수직 방향으로 인접하였을 경우) 따라서, 제1 타일(110)의 처리 중 블록(160)이 캐쉬 내에 저장되어도, 제2 타일(120) 내의 텍셀들(166 및 168)은 제2 타일(120)이 처리될 때까지 장시간 동안 참조되지 않을 수 있다. 따라서, 새로운 데이터가 캐쉬 내에 저장됨에 따라, 텍셀들(166 및 168)의 데이터는 캐쉬로부터 제거될 수 있다. 텍셀들(166 및 168)의 데이터가 캐쉬로부터 제거된 경우, 이후 제2 타일(120)이 처리될 때, 블록(160)은 다시 외부 메모리로부터 읽혀져야 하며, 캐쉬 내에 다시 저장되어야 한다.
상술된 것처럼, 예지 효과(edge effect)는, 텍스처가 타일들 간의 경계 위에 존재할 때, 블록의 큰 크기로 인해, 캐쉬가 단기간 내에 사용되지 않을 텍스처 데이터의 큰 부분들까지도 패치하도록 강제되는 것을 의미한다.
예컨대, 타일들 간의 경계 위에 존재하는 프레그먼트들을 텍스처 매핑할 경우, 메모리로부터 읽혀져서 캐쉬 내에 저장된 데이터(즉, 블록의 데이터) 중 현재 처리되는 타일이 아닌 다른 타일 내에 있는 텍셀의 데이터가 캐쉬 내에서 재사용될 확률은 극히 낮을 수 있다. 또한, 사용되지 않을 데이터(즉, 현재 처리되는 타일이 아닌 다른 타일 내에 있는 텍셀의 데이터)가 캐쉬를 점유하므로, 캐쉬의 효율이 감소될 수 있다. 즉, 타일들 간에 걸쳐 있는 블록이 많을 수록, 데이터의 재사용성을 이용하는 캐쉬의 활용도(utilization)가 감소할 수 있다. 이러한 활용도의 감소는, GPU(또는, 시스템)의 성능에 악영향을 줄 수 있으며, OBR에 비교하였을 때 더 많은 텍스처 대역폭(bandwidth)을 유발할 수 있다.
블록(160)의 데이터를 캐쉬 내에 상대적으로 오랜 시간동안 저장하면, 이후 제2 타일(120)이 처리될 때까지도, 블록(160)의 데이터가 계속 캐쉬 내에 있을 수 있다. 이러한 경우, 제2 타일(120) 내의 텍셀들(166 및 168)의 데이터가 캐쉬를 통해 바로 접근될 수 있고, 캐쉬 미스(miss)가 발생하지 않음으로써 캐쉬의 활용도가 높아질 수 있다.
캐쉬는 캐쉬 라인을 데이터 저장을 위한 단위로서 사용한다. 즉, 특정한 데이터(예컨대, 블록(160) 또는 텍셀들(166 및 168))를 캐쉬 내에서 상대적으로 오랜 시간동안 저장한다는 것은, 상기의 특정한 데이터에 대응하는 캐쉬 라인을 캐쉬 내에서 상대적으로 오랜 시간동안 저장한다는 것을 의미한다.
특정한 캐쉬 라인을 상대적으로 오랜 시간동안 캐쉬 내에서 저장하기 위해서는, 캐쉬 라인은 교체 여부를 결정하기 위해 참조되는 정보를 포함하여야 한다. 교체 여부를 결정하기 위해 참조되는 정보를 지연 교체 정보로 명명한다. 즉, 각 캐쉬 라인은 지연 교체 정보를 포함하며, 지연 교체 정보는 캐쉬가 다수의 캐쉬 라인들 중 교체될 캐쉬 라인을 선택하기 위해 사용하는 정보를 의미한다.
여기에서, 지연 교체 정보는 캐쉬 라인이 타일의 에지 위치에서 참조한 텍스처 데이터를 포함하고 있는지 여부를 나타낼 수 있다. 즉, 캐쉬 라인의 지연 교체 정보는 상기 캐쉬 라인이 타일의 에지 위치에서 참조한 텍스처 데이터(말하자면, 2 개 이상의 타일들 간에 걸쳐 있는 블록의 데이터)를 포함하고 있는지 여부를 나타낼 수 있으며, 캐쉬는 하나 이상의 캐쉬 라인들 각각의 지연 교체 정보를 참조하여 상기의 하나 이상의 캐쉬 라인들 중 교체될 캐쉬 라인을 결정할 수 있다. 따라서, 타일의 에지 위치에서 참조한 텍스처 데이터는 캐쉬 내에서 상대적으로 오랜 시간동안 저장될 수 있다.
지연 교체 정보는 1 개의 비트로 구성될 수 있다. 지연 교체 정보의 비트 값이 '0'(또는, '거짓')일 경우, 상기의 지연 교체 정보는 캐쉬 라인이 캐쉬 내에서 상대적으로 오랜 시간동안 저장될 필요가 없다는 것을 나타낼 수 있다. 반면, 지연 교체 정보의 비트 값이 '1'(또는, '0'이 아닌 값, 또는 참)일 경우, 상기의 지연 교체 정보는 캐쉬 라인이 캐쉬 내에서 상대적으로 오랜 기간동안 저장되어야 한다는 것을 나타낼 수 있다.
지연 교체 정보를 구성하는 하나 이상의 비트들을 E-비트로 칭할 수 있다. 여기에서 E는 에지(edge)를 나타낸다. 즉, 캐쉬 라인의 E-비트는 캐쉬 라인이 타일의 에지 위치에서 참조한 텍스처 데이터를 포함하고 있는지 여부를 나타낼 수 있다. E-비트의 값이 1이면 참(즉, 캐쉬 라인은 타일의 에지 위치에서 참조한 텍스처 데이터를 포함함), E-비트의 값이 0이면 거짓(즉, 캐쉬 라인은 타일의 에지 위치에서 참조한 텍스처 데이터를 포함하지 않음)인 것으로 간주될 수 있다.
타일의 에지 위치에 대한 텍스처 매핑이 수행될 때 캐쉬 미스가 발생하여 외부 메모리에 저장되어 있는 텍스처 데이터가 캐쉬 메모리로 저장될 때, 상기의 텍스처 데이터가 저장되는 캐쉬 라인의 E-비트는 1로 세트될 수 있다. 타일들 간의 에지 위치에서 참조한 텍스처 데이터가 아닌 다른 데이터가 캐쉬 메모리로 저장될 때, 상기의 데이터가 저장되는 캐쉬 라인의 E-비트는 0으로 세트될 수 있다.
E-비트가 1인 캐쉬 라인의 우선 순위를 높힘으로써 E-비트가 1인 캐쉬 라인이 가능하한 캐쉬 내에서 오랫동안 저장될 수 있다.
도 2는 본 발명의 일 실시예에 따른 캐쉬 메모리 시스템을 나타낸다.
캐쉬 메모리 시스템(200)은 제1 연관(associative) 캐쉬부(210) 및 제2 연관 캐쉬부(220)를 포함한다.
캐쉬 메모리 시스템(200)은 접근이 요청된 메모리의 주소(이하, 접근이 요청된 주소로 약술한다)를 입력받는다. 주소는 태그 필드(tag field)(또는, 태그 인덱스(tag index)), 세트 필드(set field) 및 워드 필드(word field)를 포함할 수 있다.
제1 연관 캐쉬부(210)는 하나 이상의 세트들을 포함할 수 있다. 도 2에서, 제1 연관 캐쉬부(210)는, 세트 0부터 세트 n-1까지, n 개의 세트들을 포함한다. 주소의 세트 필드는 n 개의 세트들 중 하나의 세트에 대응한다. 즉, 주소의 세트 필드는 제1 연관 캐쉬부(210) 내에서 상기의 주소의 데이터가 저장되는 영역을 가리킬 수 있다. 예컨대, 주소의 세트 필드의 값이 이진수로 '00'일 경우, 주소는 4 개의 세트들 중 세트 0에 대응할 수 있다.
하나 이상의 세트들은 각각 웨이 0부터 웨이 k-1까지 k 개의 웨이들을 포함할 수 있다. 하나의 웨이는, 하나의 캐쉬 라인 및 상기 캐쉬 라인을 위해 요구되는 정보를 포함한다. 하나의 웨이는 캐쉬 라인, 캐쉬 라인의 태그 및 캐쉬 라인의 지연 교체 정보를 포함할 수 있다. 여기서, 태그 및 지연 교체 정보는 태그 임의 접근 메모리(Random Access Memory; RAM)(212) 내에 저장될 수 있으며, 캐쉬 라인은 데이터 SRAM(214) 내에 저장될 수 있다.
캐쉬 라인은 하나 이상의 워드들을 포함할수 있다. 태그는 데이터의 주소 중 태그 필드에 대응하는 일부를 나타낼 수 있다. 캐쉬 라인의 태그는 캐쉬 라인 내에 저장된 모든 워드들에게 공통된다. 말하자면, 캐쉬 라인 내의 워드들은 태그 필드의 값 및 세트 필드의 값이 동일한 k 개의 주소들에 대응하는 워드들일 수 있다.
세트 필드 및 태그 필드에 의해 제1 연관 캐쉬부(210) 내의 하나의 캐쉬 라인이 특정될 수 있다. 또한, 워드 필드에 의해 특정된 캐쉬 라인 내의 하나 이상의 워드들 중 하나의 워드가 특정될 수 있다. 예컨데 워드 필드의 값이 이진수로 '01'일 경우, 특정된 캐쉬 라인 내의 4 개의 워드들 중 워드 1이 접근이 요청된 데이터에 대응하는 워드로서 특정될 수 있다.
제2 연관 캐쉬부(220)는 하나 이상의 캐쉬 라인들 및 상기 캐쉬 라인들 각각의 태그들을 포함할 수 있다. 제2 연관 캐쉬부(220)는 세트를 포함하지 않는다. 따라서, 제2 연관 캐쉬부(220)의 태그는 데이터의 주소 중 태그 필드 및 세트 필드에 대응하는 일부를 나타낼 수 있다.
캐쉬 라인의 데이터는 캐쉬 라인이 포함하는 워드들을 나타낸다. 제2 연관 캐쉬부(220)의 캐쉬 라인은 제1 연관 캐쉬부(210)의 캐쉬 라인과 동일한 개수의 워드들을 저장한다.
제2 연관 캐쉬부(220)의 캐쉬 라인도 세트 필드 및 태그 필드에 의해 특정될 수 있으며, 제2 연관 캐쉬부(220)의 캐쉬 라인 내의 하나 이상의 워드들도 워드 필드에 의해 특정될 수 있다.
캐쉬 메모리 시스템(200)으로 특정한 주소의 데이터로의 접근이 요청되면, 우선 상기 주소의 데이터가 제1 연관 캐쉬부(210) 내에 있는지 여부가 검사될 수 있다.
제1 연관 캐쉬부(210)는 접근이 요청된 주소의 세트 필드를 사용하여, 접근이 요청된 주소에 대응하는 세트를 특정할 수 있다. 도 2에서, 세트 1이 접근이 요청된 주소에 대응하는 세트로서 도시되었다.
제1 연관 캐쉬부(210)는 상기의 특정된 세트 내에 저장된 하나 이상의 캐쉬 라인들 중 접근이 요청된 주소에 대응하는 캐쉬 라인을 동시에 검색할 수 있다. 여기서, 접근이 요청된 주소에 대응하는 특정된 세트 내에 저장된 하나 이상의 캐쉬 라인들을 제1 캐쉬 라인들로 칭한다. 즉, 제1 연관 캐쉬부(210)는 제1 캐쉬 라인들 중 접근이 요청된 주소에 대응하는 캐쉬 라인을 동시에 검색한다. 여기서, '동시'는 제1 캐쉬 라인들 각각이 접근이 요청된 주소에 대응하는지 여부가 순차적으로 검사된다는 것과 상반되는 의미로 사용될 것일 수 있다.
제1 연관 캐쉬부(210)는 접근이 요청된 주소의 태그 필드의 값 및 제1 캐쉬 라인들의 태그들의 값들을 동시에 비교하여, 태그 필드의 값과 동일한 값을 갖는 태그가 존재하는지 여부를 검사할 수 있다. 만약, 태그 필드의 값과 동일한 값을 갖는 태그가 존재하면, 상기의 태그에 대응하는 캐쉬 라인이 접근이 요청된 데이터(즉, 워드)를 갖는다. 따라서, 동일한 값을 갖는 태그에 대응하는 캐쉬 라인에서 캐쉬 히트가 발생한다. 즉, 동일한 값을 갖는 태그에 대응하는 캐쉬 라인이 히트된다. 만약, 동일한 값을 갖는 태그가 존재하지 않으면, 캐쉬 미스가 발생한다. 상기의 캐쉬 미스는 1차 미스이다.
상술된 것처럼, 제1 연관 캐쉬부(210)는 태그 필드의 값 및 한 세트 내의 k 개의 태그들의 값들을 동시에 비교할 수 있다.. 따라서, 제1 연관 캐쉬부(210)는 k-웨이(way) 세트 연관 캐쉬부일 수 있다.
하기에서, 제1 연관 캐쉬부(210)에서 히트가 발생한 경우, 캐쉬 메모리 시스템(200)의 동작을 설명한다.
제1 연관 캐쉬부(210)에서 히트가 발생한 경우, 히트된 캐쉬 라인 내에는, 접근이 요청된 주소의 세트 및 태그에 대응하는 모든 워드들이 저장되어 있다. 따라서, 제1 연관 캐쉬부(210)는 접근이 요청된 주소의 워드 필드를 사용하여, 히트된 캐쉬 라인 내의 워드들 중 접근이 요청된 워드를 특정할 수 있으며, 특정된 워드를 접근이 요청된 데이터로서 제공할 수 있다. 예컨대, 워드 필드의 값이 이진수로 '00'일 경우, 제1 연관 캐쉬부(210)는 히트된 캐쉬 라인 내의 4 개의 워드들 중 워드 0(즉, 첫 번째 워드)를 접근이 요청된 데이터로서 (CPU 또는 GPU에게) 제공할 수 있다.
하기에서, 제1 연관 캐쉬부(210)에서 1차 미스가 발생한 경우, 캐쉬 메모리 시스템(200)의 동작을 설명한다.
제1 연관 캐쉬부(210)에서 1차 미스가 발생한 경우, 제2 연관 캐쉬부(220)는 자신이 저장하고 있는 하나 이상의 캐쉬 라인들 중 접근이 요청된 주소에 대응하는 캐쉬 라인을 동시에 검색한다. 여기에서, 제2 연관 캐쉬부(220)가 저장하는 하나 이상의 캐쉬 라인들을 제2 캐쉬 라인들로 칭한다.
제2 연관 캐쉬부(220)는 접근이 요청된 주소의 태그 필드(또는, 테그 필드 및 세트 필드)의 값 및 제2 캐쉬 라인들의 태그들의 값들을 동시에 비교하여, 태그 필드(또는, 태그 필드 및 세트 필드)의 값과 동일한 값을 갖는 태그가 존재하는지 여부를 검사할 수 있다. 만약, 동일한 값을 갖는 태그가 존재하면, 상기의 태그에 대응하는 캐쉬 라인은 접근이 요청된 데이터를 갖는다. 따라서, 동일한 값을 갖는 태그에 대응하는 캐쉬 라인에서 캐쉬 히트가 발생한다. 즉, 동일한 값을 갖는 태그에 대응하는 캐쉬 라인이 히트된다. 만약, 동일한 값을 갖는 태그가 존재하지 않으면, 캐쉬 미스가 발생한다. 상기의 캐쉬 미스는 2차 미스이며, 캐쉬 메모리 시스템(200)에서 발생하는 최종적인 캐쉬 미스이다.
하기에서, 제1 연관 캐쉬부(210)에서 1차 미스가 발생하고, 제2 연관 캐쉬부(220)에서 히트가 발생한 경우, 캐쉬 메모리 시스템(200)의 동작을 설명한다.
도 2에서, 2 번째 캐쉬 라인에서 히트가 발생한 것으로 도시되었다.
제2 연관 캐쉬부(220)에서 히트가 발생한 경우, 제1 연관 캐쉬부(220)는 접근이 요청된 주소의 워드 필드를 사용하여, 히트된 캐쉬 라인 내의 워드들 중 접근이 요청된 워드를 특정할 수 있으며, 특정된 워드를 접근이 요청된 데이터로서 (CPU 또는 GPU에게) 제공할 수 있다.
이때, 히트된 캐쉬 라인은, 제1 연관 캐쉬부(210) 내의 제1 캐쉬 라인들 중 하나의 캐쉬 라인과 서로 교체될 수 있다. 즉, 히트된 캐쉬 라인이 제1 캐쉬 라인들 중 선택된 하나의 캐쉬 라인의 위치로 이동할 수 있고, 상기 선택된 캐쉬 라인이 히트된 캐쉬 라인으로 이동할 수 있다. 상기의 교체에서, 제1 캐쉬 라인들 중 하나의 캐쉬 라인을 선택하기 위해, 도 3을 참조하여 후술될 방법이 사용될 수 있다.
하기에서 1차 미스 및 2차 미스가 발생한 경우의 캐쉬 메모리 시스템(200)의 동작을 설명한다.
접근이 요청된 주소에 대응하는 캐쉬 라인이 제1 연관 캐쉬부(210) 및 제2 연관 캐쉬부(220) 내에 존재하지 않는 경우, 다음 하위 메모리 계층으로 접근이 요청된 주소가 전달되고, 다음 하위 메모리 계층(예컨대, 외부 메모리)로부터 접근이 요청된 주소의 데이터가 읽혀진다. 이때, 접근이 요청된 주소에 대응하는 데이터 및 상기의 데이터와 동일한 태그 필드 및 세트 필드를 갖는 주소의 데이터가 함께 읽혀진다. 캐쉬 메모리 시스템(200)은 데이터의 저장 단위로 캐쉬 라인을 사용하기 때문에, 하나의 워드에 대한 접근이 요청되었더라도 상기 워드와 동일한 캐쉬 라인에 속하는 워드들(즉, 접근이 요청된 워드와 태그 필드의 값 및 세트 필드의 값이 공통되는 다른 워드들)이 함께 다음 하위 메모리 계층으로부터 읽혀져서 캐쉬 라인 내에 저장된다. 캐쉬 미스로 인해 새롭게 저장되는 캐쉬 라인을 제3 캐쉬 라인으로 칭한다.
제3 캐쉬 라인을 저장하기 위해, 제1 연관 캐쉬부(210)는 제1 캐쉬 라인들 중 하나의 캐쉬 라인을 선택하여 제1 연관 캐쉬부(210)로부터 제거한다. 제1 연관 캐쉬부(210)는 제거된 캐쉬 라인의 위치에, 제3 캐쉬 라인을 저장한다. 제1 연관 캐쉬부(210)는 제1 캐쉬 라인들의 교체 정보에 기반하여 제1 캐쉬 라인들 중 하나의 캐쉬 라인을 선택 및 제거할 수 있다. 여기에서, 제거란, 선택된 캐쉬 라인을 제1 연관 캐쉬부(210)로부터 제2 연관 캐쉬부(220) 또는 캐쉬 메모리 시스템(200)의 외부의 메모리로 이동하는 것을 의미할 수 있다.
교체 정보에 기반하여 캐쉬 라인을 선택 및 제거하는 방법의 일 예가 도 3 내지 도 5을 참조하여 하기에서 상세히 설명된다.
제1 연관 캐쉬부(210)로부터 제거되는 캐쉬 라인은 제2 연관 캐쉬부(220)의 제2 캐쉬 라인들 중 선택된 하나의 캐쉬 라인의 위치로 이동할 수 있다. 즉, 제2 연관 캐쉬부(220)는 제1 연관 캐쉬부(210)로부터 희생자(victim)로서 선택된 캐쉬 라인을 저장할 수 있다. 따라서, 제2 연관 캐쉬부(220)는 희생자 캐쉬일 수 있다. 또한, 제2 연관 캐쉬부(220)는 자신이 저장하는 모든 캐쉬 라인들 중 접근이 요청된 주소에 대응하는 캐쉬 라인을 동시에 검색한다. 따라서, 제2 연관 캐쉬부(220)는 완전 연관 희생 캐쉬(full-associative victim cache)일 수 있다.
제2 연관 캐쉬부(220)는 제2 캐쉬 라인들 중 하나의 캐쉬 라인을 선택하기 위해, 선입선출(First In First Out; FIFO) 방식 또는 최장기-미사용(Least Recently Used) 방식을 사용할 수 있다.
FIFO 방식이 사용되는 경우, 제2 연관 캐쉬부(220)는 제2 캐쉬 라인들 중 가장 오래전에 제2 연관 캐쉬부(220) 내에 저장된 캐쉬 라인을 선택할 수 있고, 제1 연관 캐쉬부로부터 전송되는 희생자 캐쉬 라인을 저장하기 위해 상기의 선택된 캐쉬 라인을 제거할 수 있다.
LRU 방식이 사용되는 경우, 제2 연관 캐쉬부(220)는 제2 캐쉬 라인들 중 가장 오래전에 참조된 캐쉬 라인을 선택할 수 있고, 제1 연관 캐쉬부로부터 전송되는 희생자 캐쉬 라인을 저장하기 위해 상기의 선택된 캐쉬 라인을 제거할 수 있다.
제2 연관 캐쉬부(220)에서 특정한 캐쉬 라인이 제거될 때, 제거될 캐쉬 라인이 포함하는 워드들의 값들은 다음 하위 메모리 계층으로 전달될 수 있다. 하위 메모리 계층은, 전달된 값들을 사용하여 자신이 저장하고 있는 제2 연관 캐쉬부(220)에서 제거된 캐쉬 라인에 대응하는 워드들의 값들을 갱신할 수 있다.
도 3은 본 발명의 일 예에 따른 제거될 캐쉬 라인을 선택하는 방법을 설명한다.
도 3에서, 1차 미스 및 2차 미스가 발생하였다. 접근이 요청된 주소는, 세트 1을 가리킨다. 따라서, 도 2에서 전술된 제1 캐쉬 라인들은 세트 1 내의 k 개의 캐쉬 라인들이다.
접근이 요청된 주소에 대응하는 캐쉬 라인이 제1 연관 캐쉬부(210) 및 상기 제2 연관 캐쉬부(220) 내에 존재하지 않는 경우, 제1 연관 캐쉬부(210)는 LRU 방식으로 제거될 캐쉬 라인을 선택할 수 있다. 즉, 제1 연관 캐쉬부(210)는 제1 캐쉬 라인들 중 가장 오래전에 접근된 캐쉬 라인을 제거될 캐쉬 라인으로서 선택할 수 있다.
제1 연관 캐쉬부(210)는 제1 캐쉬 라인들 중 가장 오랫동안 접근되지 않은 캐쉬 라인을 검색하고, 상기 검색된 캐쉬 라인의 지연 교체 정보(예컨대, E-비트)의 값이 제1 미리 정의된 값일 경우 검색된 캐쉬 라인을 상기 제2 연관 캐쉬부(220)로 이동시킬 수 있다. 여기서, 제1 미리 정의된 값은 캐쉬 라인이 캐쉬 내에서 상대적으로 오랜 시간동안 저장될 필요가 없다는 것을 나타내는 값(예컨대, '0')일 수 있다. 즉, 제1 연관 캐쉬부(210)는 제거될 캐쉬 라인으로서 선택된 캐쉬 라인이 오랜 시간동안 저장될 필요가 없는 캐쉬 라인일 경우, 검색된 캐쉬라인을 곧바로 희생자로서 제2 연관 캐쉬부(220)로 이동시킬 수 있다.
상기의 검색된 캐쉬 라인의 지연 교체 정보의 값이 제2 미리 정의된 값이고, 검색된 캐쉬 라인이 검색에서 제외된 횟수가 제3 미리 정의된 값 이하일 경우, 제1 연관 캐쉬부(210)는 제1 캐쉬 라인들 중 상기 지연 교체 정보의 값이 제1 미리 정의된 값인 캐쉬 라인들 중에서 가장 오랫동안 접근되지 않은 캐쉬 라인을 재검색할 수 있고, 상기 재검색된 캐쉬 라인을 제2 연관 캐쉬부(220)로 이동시킬 수 있다. 여기서, 제2 미리 정의된 값은 캐쉬 라인이 캐쉬 내에서 상대적으로 오랜 시간동안 저장되어야 한다는 것을 나타내는 값(예컨대, '1' (또는 '0'이 아닌 값))일 수 있다. 즉, 제1 연관 캐쉬부(210)는 제거될 캐쉬 라인으로서 선택된 캐쉬 라인이 오랜 시간 동안 저장될 필요가 있는 캐쉬 라인일 경우, 선택된 캐쉬 라인 대신, 오랜 시간동안 저장될 필요가 없는 캐쉬 라인들 중 하나를 제거될 캐쉬 라인으로서 재선택할 수 있고, 재선택된 캐쉬 라인을 희생자로서 제2 연관 캐쉬부(220)로 이동시킬 수 있다.
예컨대, 제1 캐쉬 라인들 중 웨이 1의 캐쉬 라인이 가장 오랫동안 접근되지 않은 캐쉬 라인으로 선택되었을 때, 웨이 1의 지연 교체 정보의 값은 '1'(즉, 상대적으로 오랜 시간동안 저장되어야 한다는 것을 나타내는 값)이다. 따라서, 제1 캐쉬 라인들 중에서, 지연 교체 정보의 값이 '1'이 아닌 캐쉬 라인들 중 가장 오랫동안 접근되지 않은 캐쉬 라인이 제거될 캐쉬 라인으로서 재선택될 수 있다.
단, 지연 교체 정보의 값이 제2 미리 정의된 값인 캐쉬 라인도, 무한정으로 이동의 대상에서 제외될 수는 없다. 따라서, 제1 연관 캐쉬부(210)는 특정한 캐쉬 라인을 이동의 대상에서 제외하는 최대 횟수를 제3 미리 정의된 값으로 제한할 수 있다. 특정한 캐쉬 라인이 이동의 대상에서 제외된 횟수가 제3 미리 정의된 값에 도달하면, 상기의 특정한 캐쉬 라인은 더 이상 이동의 대상에서 제외되지 않는다.
특정한 캐쉬 라인을 이동의 대상에서 제외하기 위해, 제1 연관 캐쉬부(210)는 각 캐쉬 라인에 대해 이동의 대상에서 제외된 횟수를 카운트할 수 있고, 상기의 카운트에 대한 정보(예컨대, 제외 카운트 비트)를 저장할 수 있다.
전술된 제외의 횟수를 한정하는 방법은, 지연 교체 정보의 값을 사용함으로써 구현될 수 있다. 예컨대, 제3 미리 정의된 값이 3일 경우, 캐쉬 라인이 제1 연관 캐쉬부(210) 내에 저장될 때, 상기의 캐쉬 라인의 지연 교체 정보의 값은 3으로 세트될 수 있다. 이후, 제1 연관 캐쉬부(210)가 상기의 캐쉬 라인을 제거될 캐쉬 라인으로서 선택한 경우, 제1 연관 캐쉬부(210)는 상기의 캐쉬 라인을 이동의 대상에서 제외하면서, 상기의 캐쉬 라인의 지연 교체 정보의 값을 1만큼 감소시킬 수 있다. 상기의 캐쉬 라인이 세 번 이동의 대상에서 제외되면, 상기의 캐쉬 라인의 지연 교체 정보의 값은 0이 되고, 상기의 캐쉬 라인은 더 이상 이동의 대상에서 제외되지 않는다. 즉, 특정한 캐쉬 라인이 이동의 대상에서 제외되면서, 상기의 특정한 캐쉬 라인의 지연 교체 정보의 값이 1씩 감소함에 따라, 특정한 캐쉬 라인은 오랜 시간동안 저장될 필요가 없는 캐쉬 라인으로 간주될 수 있다.
도 4는 본 발명의 일 예에 따른 선택된 캐쉬 라인을 제거하는 방법을 설명한다.
도 4에서, 1차 미스 및 2차 미스가 발생하였다. 접근이 요청된 주소는, 세트 1을 가리킨다. 따라서, 도 2에서 전술된 제1 캐쉬 라인들은 세트 1 내의 k 개의 캐쉬 라인들이다.
접근이 요청된 주소에 대응하는 캐쉬 라인이 제1 연관 캐쉬부(210) 및 상기 제2 연관 캐쉬부(220) 내에 존재하지 않는 경우, 제1 연관 캐쉬부(210)는 제1 캐쉬 라인들 중 하나의 캐쉬 라인을 선택할 수 있다. 제1 연관 캐쉬부(210)는 제1 캐쉬 라인들 중 가장 오랫동안 접근되지 않은 캐쉬 라인을 검색할 수 있다. 제1 연관 캐쉬부(210)는 검색된 캐쉬 라인의 지연 교체 정보의 값에 기반하여 캐쉬 메모리 시스템의 외부의 메모리 및 제2 연관 캐쉬부(220) 중 하나를 선택할 수 있고, 검색된 캐쉬 라인을 선택된 외부의 메모리 또는 제2 연관 캐쉬부(220)로 이동시킬 수 있다.
제1 연관 캐쉬부(210)는 검색된 캐쉬 라인의 지연 교체 정보의 값이 제1 미리 정의된 값일 경우, 검색된 캐쉬 라인을 외부의 메모리로 이동할 수 있다. 검색된 캐쉬 라인이 외부의 메모리로 이동되면, 외부의 메모리는 검색된 캐쉬 라인의 워드들의 값을 사용하여, 외부의 메모리 내에 저장된 상기 검색된 캐쉬 라인에 대응하는 워드들의 값을 갱신할 수 있다.
제1 연관 캐쉬부(210)는 검색된 캐쉬 라인의 지연 교체 정보의 값이 제2 미리 정의된 값일 경우, 도 3을 참조하여 전술된 1차 미스 및 2차 미스가 발생하였을 경우에서와 같이, 검색된 캐쉬 라인을 제2 연관 캐쉬부(220)의 제2 캐쉬 라인들 중 선택된 하나의 캐쉬 라인의 위치로 이동할 수 있다.
따라서, 캐쉬 라인의 지연 교체 정보의 값이 제1 미리 정의된 값일 경우, 상기의 캐쉬 라인은 제1 연관 캐쉬부(210)로부터 제거될 때 바로 외부의 메모리로 이동한다. 반면, 캐쉬 라인의 지연 교체 정보의 값이 제2 미리 정의된 값일 경우, 상기의 캐쉬 라인은 제1 연관 캐쉬부(210)로부터 제거될 때 제2 연관 캐쉬부(220)로 이동한다. 따라서, 제2 연관 캐쉬부(220)는 지연 교체 정보의 값이 제2 미리 정의된 값이었던 캐쉬 라인들만을 저장한다. 즉, 제2 연관 캐쉬부(220)는 오랜 시간동안 저장될 필요가 있는 캐쉬 라인들만을 저장할 수 있다. 제2 연관 캐쉬부(220)에 저장된 캐쉬 라인들은 이후 제1 연관 캐쉬부(210)로 다시 이동할 수 있기 때문에, 지연 교체 정보의 값이 제2 미리 정의된 값인 캐쉬 라인은 캐쉬 메모리 시스템(200) 내에서 상대적으로 오래 저장될 수 있다.
도 5는 본 발명의 일 예에 따른 제거되는 캐쉬 라인을 복수 개의 부-연관 캐쉬부들 중 하나의 부-연관 캐쉬부로 이동하는 방법을 설명한다.
제2 연관 캐쉬부(220)는 복수 개의 부-연관 캐쉬부들(522 및 524)를 포함할 수 있다. 복수 개의 부-연관 캐쉬부들(522 및 524)은 각각 전술된 제2 연관 캐쉬부(220)처럼 동작할 수 있다. 도 2에서, 제2 부-연관 캐쉬부(522) 및 제2 부-연관 캐쉬부(524)가 도시되었다. 부-연관 캐쉬부들은 2 개일 수 있다.
도 4에서, 1차 미스 및 2차 미스가 발생하였다. 여기에서, 2차 미스가 발생하였다는 것은, 세트 필드 및 태그 필드에 대응하는 캐쉬 라인이 제1 연관 캐쉬부(210) 및 복수 개의 부-연관 캐쉬부들(522 및 524) 내에 없다는 것을 의미한다. 접근이 요청된 주소는, 세트 1을 가리킨다. 따라서, 도 2에서 전술된 제1 캐쉬 라인들은 세트 1 내의 k 개의 캐쉬 라인들이다.
접근이 요청된 주소에 대응하는 캐쉬 라인이 제1 연관 캐쉬부(210) 및 상기 제2 연관 캐쉬부(220) 내에 존재하지 않는 경우, 제1 연관 캐쉬부(210)는 제1 캐쉬 라인들 중 가장 오랫동안 접근되지 않은 캐쉬 라인을 검색하고, 검색된 캐쉬 라인의 지연 교체 정보의 값에 기반하여 복수 개의 부-연관 캐쉬부들(522 및 524)들 중 하나를 선택할 수 있고, 검색된 캐쉬 라인을 선택된 부-연관 캐쉬부(522 또는 524)로 이동시킬 수 있다.
제1 연관 캐쉬부(210)는 검색된 캐쉬 라인의 지연 교체 정보의 값이 제1 미리 정의된 값일 경우, 검색된 캐쉬 라인을 제2 부-연관 캐쉬부(522)로 이동할 수 있다. 또한, 제1 연관 캐쉬부(210)는 검색된 캐쉬 라인의 지연 교체 정보의 값이 제2 미리 정의된 값일 경우, 검색된 캐쉬 라인을 제1 부-연관 캐쉬부(524)로 이동할 수 있다.
복수 개의 부-연관 캐쉬부들(522 및 524)은 각각 상이한 개수의 캐쉬 라인들을 저장할 수 있다. 제1 부-연관 캐쉬부(522)가 저장할 수 있는 캐쉬 라인들이 개수는, 제2 부-연관 캐쉬부(524)가 저장할 수 있는 캐쉬 라인들의 개수보다 더 클 수 있다. 이러한 경우, 제1 부-연관 캐쉬부(522) 내에 저장되는 캐쉬 라인(즉, 지연 교체 정보의 값이 제2 미리 정의된 값인 캐쉬 라인)은, 상대적으로 제2 부-연관 캐쉬부(524) 내에 저장되는 캐쉬 라인(즉, 지연 교체 정보의 값이 제1 미리 정의된 값인 캐쉬 라인) 보다 캐쉬 메모리 시스템(200) 내에 더 오랫동안 저장될 수 있다.
제1 부-연관 캐쉬부(522) 내의 캐쉬 라인이 다시 제1 연관 캐쉬부(210)으로 이동할 경우, 상기의 캐쉬 라인의 지연 교체 정보의 값은 제2 미리 지정된 값이 될 수 있다. 제2 부-연관 캐쉬부(524) 내의 캐쉬 라인이 다시 제1 연관 캐쉬부(210)으로 이동할 경우, 상기의 캐쉬 라인의 지연 교체 정보의 값은 제1 미리 지정된 값이 될 수 있다.
도 6은 본 발명의 일 실시예에 따른 캐쉬 메모리 시스템의 캐슁 방법을 설명하는 흐름도이다.
단계(610)에서, 제1연관 캐쉬부(210)는 하나 이상의 제1 캐쉬 라인들 중 접근이 요청된 주소에 대응하는 캐쉬 라인을 동시에 검색한다.
제1 연관 캐쉬부(210)는 제1 캐쉬 라인들 각각의 지연 교체 정보를 포함한다.
접근이 요청된 주소에 대응하는 캐쉬 라인이 제1 연관 캐쉬부(210) 내에 존재하는 경우 단계(660)이 수행되고, 그렇지 않을 경우, 단계(620)이 수행된다.
단계(620)에서, 하나 이상의 제2 캐쉬 라인들을 저장하는 제2 연관 캐쉬부(220)는 제2 캐쉬 라인들 중 접근이 요청된 주소에 대응하는 캐쉬 라인을 동시에 검색한다.
접근이 요청된 주소에 대응하는 캐쉬 라인이 제2 연관 캐쉬부(220) 내에 존재하는 경우 단계(660)이 수행되고, 그렇지 않을 경우, 단계(630)이 수행된다. 즉, 단계(630)은 접근이 요청된 주소에 대응하는 캐쉬 라인이 제1 연관 캐쉬부(210) 및 제2 연관 캐쉬부(220) 내에 존재하지 않는 경우 단계(630)이 수행된다.
단계(630)에서, 제1 연관 캐쉬부(210)는 제1 캐쉬 라인들 중 하나의 캐쉬 라인을 선택한다.
단계(640)에서, 제1 연관 캐쉬부(210)는 선택된 캐쉬 라인을 제1 연관 캐쉬부로부터 제거한다.
단계(630) 및 단계(630)에 있어서, 제1 연관 캐쉬부(210)는 상기 제1 캐쉬 라인들 중 하나의 캐쉬 라인을 선택하거나 선택된 캐쉬 라인을 제거함에 있어서, 제1 캐쉬 라인들의 지연 교체 정보를 사용한다.
단계(650)에서, 제1 연관 캐쉬부(210)는 접근이 요청된 주소에 대응하는 데이터를 제1 연관 캐쉬부 내에 저장할 수 있다. 제1 연관 캐쉬부(210)는 접근이 요청된 주소에 대응하는 데이터 및 상기 데이터와 같은 캐쉬 라인 내에 포함되는 데이터를 새로운 캐쉬 라인으로서 저장할 수 있다. 제1 연관 캐쉬부(210)는 새로운 캐쉬 라인을 단계(640)에서 제거된 캐쉬 라인의 위치에 저장할 수 있다.
단계(660)에서, 제1 연관 캐쉬부(210) 또는 제2 연관 캐쉬부(220)는 접근이 요청된 주소에 대응하는 데이터를 프로세서(예컨대, 중앙 처리 장치(Central Processing Unit; CPU) 또는 GPU)에게 제공할 수 있다.
단계(630)의 선택 및 단계(640)의 제거는 도 3 내지 도 5를 참조하여 전술된 다양한 방식에 의해 이루어질 수 있다.
우선, 도 3을 참조하여 전술된 방법이 단계(630)의 선택 및 단계(640)의 제거에 적용되는 경우를 설명한다.
단계(630)는, 제1 연관 캐쉬부(210)가 제1 캐쉬 라인들 중 가장 오랫동안 접근되지 않은 캐쉬 라인을 검색하는 단계를 포함할 수 있다.
또한, 단계(630)는, 상기 검색된 캐쉬 라인의 지연 교체 정보의 값이 제2 미리 정의된 값이고, 상기 검색된 캐쉬 라인이 상기 검색에서 제외된 횟수가 제3 미리 정의된 값 이하일 경우, 제1 연관 캐쉬부(210)가 상기 제1 캐쉬 라인들 중 상기 지연 교체 정보의 값이 상기 제1 미리 정의된 값인 캐쉬 라인들 중에서 가장 오랫동안 접근되지 않은 캐쉬 라인을 재검색하는 단계를 포함할 수 있다.
단계(640)는, 검색된 캐쉬 라인의 상기 지연 교체 정보의 값이 제1 미리 정의된 값일 경우 제1 연관 캐쉬부(210)가 상기 검색된 캐쉬 라인을 상기 제2 연관 캐쉬부(220)로 이동시키는 단계를 포함할 수 있다.
또한, 단계(640)는, 검색된 캐쉬 라인의 지연 교체 정보의 값이 제2 미리 정의된 값이고, 상기 검색된 캐쉬 라인이 상기 검색에서 제외된 횟수가 제3 미리 정의된 값 이하일 경우, 제1 연관 캐쉬부(210)가 재검색된 캐쉬 라인을 제2 연관 캐쉬부(220)로 이동시키는 단계를 포함할 수 있다.
다음으로, 도 4를 참조하여 전술된 방법이 단계(630)의 선택 및 단계(640)의 제거에 적용되는 경우를 설명한다.
단계(630)는, 제1 연관 캐쉬부(210)가 제1 캐쉬 라인들 중 가장 오랫동안 접근되지 않은 캐쉬 라인을 검색하는 단계를 포함할 수 있다.
단계(640)는, 제1 연관 캐쉬부(210)가 검색된 캐쉬 라인의 지연 교체 정보의 값에 기반하여 캐쉬 메모리 시스템(200)의 외부의 메모리 및 제2 연관 캐쉬부(220) 중 하나를 선택하는 단계를 포함할 수 있다.
또한, 단계(640)는, 제1 연관 캐쉬부(210)가 검색된 캐쉬 라인을 선택된 외부의 메모리 또는 제2 연관 캐쉬부(220)로 이동시키는 단계를 포함할 수 있다.
다음으로, 도 5를 참조하여 전술된 방식이 단계(630)의 선택 및 단계(640)의 제거에 적용되는 경우를 설명한다.
제2 연관 캐쉬부(220)는 복수 개의 부-연관 캐쉬부들(522 및 524)를 포함할 수 있다. 복수 개의 부-연관 캐쉬부들(522 및 524)은 각각 상이한 개수의 캐쉬 라인들을 저장할 수 있다.
단계(630)는, 제1 연관 캐쉬부(210)가 제1 캐쉬 라인들 중 가장 오랫동안 접근되지 않은 캐쉬 라인을 검색하는 단계를 포함할 수 있다.
단계(640)는, 제1 연관 캐쉬부(210)가 검색된 캐쉬 라인의 지연 교체 정보의 값에 기반하여 복수 개의 부-연관 캐쉬부(522 및 524)들 중 하나를 선택하는 단계를 포함할 수 있다.
또한, 단계(640)는, 제1 연관 캐쉬부가 검색된 캐쉬 라인을 선택된 부-연관 캐쉬부(522 또는 524)로 이동시키는 단계를 포함할 수 있다.
앞서 도 1 내지 도 5를 참조하여 설명된 본 발명의 일 실시예에 따른 기술적 내용들이 본 실시예에도 그대로 적용될 수 있다. 따라서 보다 상세한 설명은 이하 생략하기로 한다.
본 발명의 일 실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
200: 캐쉬 메모리 시스템
210: 제1 연관 케쉬부
220: 제2 연관 케쉬부

Claims (17)

  1. 하나 이상의 제1 캐쉬 라인들 중 접근이 요청된 주소에 대응하는 캐쉬 라인을 동시에 검색하는 제1연관 캐쉬부; 및
    하나 이상의 제2 캐쉬 라인들을 저장하고, 상기 제2 캐쉬 라인들 중 상기 접근이 요청된 주소에 대응하는 캐쉬 라인을 동시에 검색하는 제2 연관 캐쉬부
    를 포함하고,
    상기 제1 연관 캐쉬부는 제1 캐쉬 라인들 각각의 지연 교체 정보를 포함하고, 상기 접근이 요청된 주소에 대응하는 캐쉬 라인이 상기 제1 연관 캐쉬부 및 상기 제2 연관 캐쉬부 내에 존재하지 않는 경우, 상기 제1 연관 캐쉬부는 상기 제1 캐쉬 라인들의 상기 지연 교체 정보에 기반하여 상기 제1 캐쉬 라인들 중 하나의 캐쉬 라인을 선택 및 제거하며,
    상기 지연 교체 정보는 캐쉬 라인이 타일의 에지 위치에서 참조한 텍스처 데이터를 포함하고 있는지의 여부를 나타내는 정보이며,
    상기 접근이 요청된 주소에 대응하는 캐쉬 라인이 상기 제1 연관 캐쉬부 및 상기 제2 연관 캐쉬부 내에 존재하지 않는 경우, 상기 제1 연관 캐쉬부는 상기 제1 캐쉬 라인들 중 가장 오랫동안 접근되지 않은 캐쉬 라인을 검색하고, 상기 검색된 캐쉬 라인의 상기 지연 교체 정보의 값이 제1 미리 정의된 값일 경우 상기 검색된 캐쉬 라인을 상기 제2 연관 캐쉬부로 이동시키는, 캐쉬 메모리 시스템.
  2. 삭제
  3. 삭제
  4. 제1항에 있어서,
    상기 검색된 캐쉬 라인의 지연 교체 정보의 값이 제2 미리 정의된 값이고, 상기 검색된 캐쉬 라인이 상기 검색에서 제외된 횟수가 제3 미리 정의된 값 이하일 경우, 상기 제1 연관 캐쉬부는 상기 제1 캐쉬 라인들 중 상기 지연 교체 정보의 값이 상기 제1 미리 정의된 값인 캐쉬 라인들 중에서 가장 오랫동안 접근되지 않은 캐쉬 라인을 재검색하고, 상기 재검색된 캐쉬 라인을 상기 제2 연관 캐쉬부로 이동시키는, 캐쉬 메모리 시스템.
  5. 제1항에 있어서,
    상기 접근이 요청된 주소에 대응하는 캐쉬 라인이 상기 제1 연관 캐쉬부 및 상기 제2 연관 캐쉬부 내에 존재하지 않는 경우, 상기 제1 연관 캐쉬부는 상기 제1 캐쉬 라인들 중 가장 오랫동안 접근되지 않은 캐쉬 라인을 검색하고, 상기 검색된 캐쉬 라인의 상기 지연 교체 정보의 값에 기반하여 상기 캐쉬 메모리 시스템의 외부의 메모리 및 상기 제2 연관 캐쉬부 중 하나를 선택하고, 상기 검색된 캐쉬 라인을 상기 선택된 외부의 메모리 또는 상기 제2 연관 캐쉬부로 이동시키는, 캐쉬 메모리 시스템.
  6. 제1항에 있어서,
    상기 제2 연관 캐쉬부는 복수 개의 부-연관 캐쉬부들을 포함하고,
    상기 접근이 요청된 주소에 대응하는 캐쉬 라인이 상기 제1 연관 캐쉬부 및 상기 제2 연관 캐쉬부 내에 존재하지 않는 경우, 상기 제1 연관 캐쉬부는 상기 제1 캐쉬 라인들 중 가장 오랫동안 접근되지 않은 캐쉬 라인을 검색하고, 상기 검색된 캐쉬 라인의 상기 지연 교체 정보의 값에 기반하여 상기 복수 개의 부-연관 캐쉬부들 중 하나를 선택하고, 상기 검색된 캐쉬 라인을 상기 선택된 부-연관 캐쉬부로 이동시키는, 캐쉬 메모리 시스템.
  7. 제6항에 있어서,
    상기 복수 개의 부-연관 캐쉬부들은 각각 상이한 개수의 캐쉬 라인들을 저장하는, 캐쉬 메모리 시스템.
  8. 제1항에 있어서,
    상기 제1 연관 캐쉬부는, 하나 이상의 세트들을 포함하며, 하나 이상의 세트들은 각각 k 개의 캐쉬 라인들을 저장하며, 상기 제1 캐쉬라인은 접근이 요청된 주소에 대응하는 세트 내에 저장된 k 개의 캐쉬 라인들인, 캐쉬 메모리 시스템.
  9. 제1연관 캐쉬부가 하나 이상의 제1 캐쉬 라인들 중 접근이 요청된 주소에 대응하는 캐쉬 라인을 동시에 검색하는 단계 - 상기 제1 연관 캐쉬부는 제1 캐쉬 라인들 각각의 지연 교체 정보를 포함함 -;
    하나 이상의 제2 캐쉬 라인들을 저장하는 제2 연관 캐쉬부가 상기 제2 캐쉬 라인들 중 상기 접근이 요청된 주소에 대응하는 캐쉬 라인을 동시에 검색하는 단계;
    상기 접근이 요청된 주소에 대응하는 캐쉬 라인이 상기 제1 연관 캐쉬부 및 상기 제2 연관 캐쉬부 내에 존재하지 않는 경우, 상기 제1 연관 캐쉬부가 상기 제1 캐쉬 라인들의 상기 지연 교체 정보에 기반하여 상기 제1 캐쉬 라인들 중 하나의 캐쉬 라인을 선택하는 단계; 및
    상기 제1 연관 캐쉬부가 상기 선택된 캐쉬 라인을 상기 제1 연관 캐쉬부로부터 제거하는 단계를 포함하고,
    상기 제1 연관 캐쉬부는 상기 제1 캐쉬 라인들 중 하나의 캐쉬 라인을 선택하거나 선택된 캐쉬 라인을 제거함에 있어서, 상기 제1 캐쉬 라인들의 상기 지연 교체 정보를 사용하며,
    상기 지연 교체 정보는 캐쉬 라인이 타일의 에지 위치에서 참조한 텍스처 데이터를 포함하고 있는지 여부를 나타내는 정보이고,
    상기 하나의 캐쉬 라인을 선택하는 단계는,
    상기 제1 연관 캐쉬부가 상기 제1 캐쉬 라인들 중 가장 오랫동안 접근되지 않은 캐쉬 라인을 검색하는 단계를 포함하고,
    상기 선택된 캐쉬 라인을 상기 제1 연관 캐쉬부로부터 제거하는 단계는,
    상기 검색된 캐쉬 라인의 상기 지연 교체 정보의 값이 제1 미리 정의된 값일 경우 상기 제1 연관 캐쉬부가 상기 검색된 캐쉬 라인을 상기 제2 연관 캐쉬부로 이동시키는 단계를 포함하는 캐슁 방법.
  10. 삭제
  11. 삭제
  12. 제9항에 있어서,
    상기 하나의 캐쉬 라인을 선택하는 단계는,
    상기 검색된 캐쉬 라인의 지연 교체 정보의 값이 제2 미리 정의된 값이고, 상기 검색된 캐쉬 라인이 상기 검색에서 제외된 횟수가 제3 미리 정의된 값 이하일 경우, 상기 제1 연관 캐쉬부가 상기 제1 캐쉬 라인들 중 상기 지연 교체 정보의 값이 상기 제1 미리 정의된 값인 캐쉬 라인들 중에서 가장 오랫동안 접근되지 않은 캐쉬 라인을 재검색하는 단계
    를 더 포함하고,
    상기 선택된 캐쉬 라인을 상기 제1 연관 캐쉬부로부터 제거하는 단계는,
    상기 검색된 캐쉬 라인의 지연 교체 정보의 값이 제2 미리 정의된 값이고, 상기 검색된 캐쉬 라인이 상기 검색에서 제외된 횟수가 제3 미리 정의된 값 이하일 경우, 상기 제1 연관 캐쉬부가 상기 재검색된 캐쉬 라인을 상기 제2 연관 캐쉬부로 이동시키는 단계
    를 더 포함하는, 캐슁 방법.
  13. 제9항에 있어서,
    상기 하나의 캐쉬 라인을 선택하는 단계는,
    상기 제1 연관 캐쉬부가 상기 제1 캐쉬 라인들 중 가장 오랫동안 접근되지 않은 캐쉬 라인을 검색하는 단계
    를 포함하고,
    상기 선택된 캐쉬 라인을 상기 제1 연관 캐쉬부로부터 제거하는 단계는,
    상기 제1 연관 캐쉬부가 상기 검색된 캐쉬 라인의 상기 지연 교체 정보의 값에 기반하여 캐쉬 메모리 시스템의 외부의 메모리 및 상기 제2 연관 캐쉬부 중 하나를 선택하는 단계; 및
    상기 제1 연관 캐쉬부가 상기 검색된 캐쉬 라인을 상기 선택된 외부의 메모리 또는 상기 제2 연관 캐쉬부로 이동시키는 단계
    를 포함하는, 캐슁 방법.
  14. 제9항에 있어서,
    상기 제2 연관 캐쉬부는 복수 개의 부-연관 캐쉬부들을 포함하고,
    상기 하나의 캐쉬 라인을 선택하는 단계는,
    상기 제1 연관 캐쉬부가 상기 제1 캐쉬 라인들 중 가장 오랫동안 접근되지 않은 캐쉬 라인을 검색하는 단계
    를 포함하고,
    상기 선택된 캐쉬 라인을 상기 제1 연관 캐쉬부로부터 제거하는 단계는,
    상기 제1 연관 캐쉬부가 상기 검색된 캐쉬 라인의 상기 지연 교체 정보의 값에 기반하여 상기 복수 개의 부-연관 캐쉬부들 중 하나를 선택하는 단계; 및
    상기 제1 연관 캐쉬부가 상기 검색된 캐쉬 라인을 상기 선택된 부-연관 캐쉬부로 이동시키는 단계
    를 포함하는, 캐슁 방법.
  15. [청구항 15은(는) 설정등록료 납부시 포기되었습니다.]
    제14항에 있어서,
    상기 복수 개의 부-연관 캐쉬부들은 각각 상이한 개수의 캐쉬 라인들을 저장하는, 캐슁 방법.
  16. [청구항 16은(는) 설정등록료 납부시 포기되었습니다.]
    제9항에 있어서,
    상기 제1 연관 캐쉬부는, 하나 이상의 세트들을 포함하며, 하나 이상의 세트들은 각각 k 개의 캐쉬 라인들을 저장하며, 상기 제1 캐쉬라인은 접근이 요청된 주소에 대응하는 세트 내에 저장된 k 개의 캐쉬 라인들인, 캐슁 방법.
  17. 삭제
KR1020110105939A 2011-10-17 2011-10-17 타일 기반 렌더링을 위한 캐쉬 메모리 시스템 및 캐슁 방법 KR101862785B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020110105939A KR101862785B1 (ko) 2011-10-17 2011-10-17 타일 기반 렌더링을 위한 캐쉬 메모리 시스템 및 캐슁 방법
US13/652,894 US9176880B2 (en) 2011-10-17 2012-10-16 Cache memory system for tile based rendering and caching method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110105939A KR101862785B1 (ko) 2011-10-17 2011-10-17 타일 기반 렌더링을 위한 캐쉬 메모리 시스템 및 캐슁 방법

Publications (2)

Publication Number Publication Date
KR20130041585A KR20130041585A (ko) 2013-04-25
KR101862785B1 true KR101862785B1 (ko) 2018-07-06

Family

ID=48086792

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110105939A KR101862785B1 (ko) 2011-10-17 2011-10-17 타일 기반 렌더링을 위한 캐쉬 메모리 시스템 및 캐슁 방법

Country Status (2)

Country Link
US (1) US9176880B2 (ko)
KR (1) KR101862785B1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102147356B1 (ko) 2013-09-30 2020-08-24 삼성전자 주식회사 캐시 메모리 시스템 및 그 동작방법
KR102101834B1 (ko) 2013-10-08 2020-04-17 삼성전자 주식회사 영상 처리 장치 및 방법
US9239795B2 (en) * 2014-01-08 2016-01-19 Nvidia Corporation Efficient cache management in a tiled architecture
US20150193907A1 (en) * 2014-01-08 2015-07-09 Nvidia Corporation Efficient cache management in a tiled architecture
GB2528263B (en) * 2014-07-14 2020-12-23 Advanced Risc Mach Ltd Graphics processing systems
WO2016009247A1 (en) * 2014-07-14 2016-01-21 Via Alliance Semiconductor Co., Ltd. Cache system with primary cache and overflow cache that use different indexing schemes
KR102366808B1 (ko) 2014-10-22 2022-02-23 삼성전자주식회사 캐시 메모리 시스템 및 그 동작방법
US11106599B2 (en) 2016-09-30 2021-08-31 Intel Corporation System and method for replacement in associative memories using weighted PLRU trees
US10031847B2 (en) * 2016-09-30 2018-07-24 Intel Corporation System and method for replacement in associative memories using weighted PLRU trees
US11036639B2 (en) * 2017-01-18 2021-06-15 Arm Limited Cache apparatus and method that facilitates a reduction in energy consumption through use of first and second data arrays
US10073763B1 (en) 2017-12-27 2018-09-11 Accenture Global Solutions Limited Touchless testing platform
CN113254366B (zh) * 2021-06-28 2021-10-08 浙江大学 一种基于时空老化模型的服务端瓦片缓存置换方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5386547A (en) * 1992-01-21 1995-01-31 Digital Equipment Corporation System and method for exclusive two-level caching
KR20090115799A (ko) * 2007-01-31 2009-11-06 콸콤 인코포레이티드 멀티-레벨 캐시 계층에서의 캐스트아웃들을 감소시키기 위한 장치 및 방법들
US7948498B1 (en) * 2006-10-13 2011-05-24 Nvidia Corporation Efficient texture state cache
US20130151777A1 (en) * 2011-12-09 2013-06-13 International Business Machines Corporation Dynamic Inclusive Policy in a Hybrid Cache Hierarchy Using Hit Rate

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5235697A (en) * 1990-06-29 1993-08-10 Digital Equipment Set prediction cache memory system using bits of the main memory address
KR970010368B1 (ko) * 1994-01-18 1997-06-25 삼성전자 주식회사 캐시라인 리프레이스장치 및 방법
DE69635638T2 (de) * 1995-06-06 2006-07-20 Hewlett-Packard Development Co., L.P., Houston Pufferspeicher für Texturdaten
US5987567A (en) * 1996-09-30 1999-11-16 Apple Computer, Inc. System and method for caching texture map information
US6744438B1 (en) * 1999-06-09 2004-06-01 3Dlabs Inc., Ltd. Texture caching with background preloading
US6510493B1 (en) * 1999-07-15 2003-01-21 International Business Machines Corporation Method and apparatus for managing cache line replacement within a computer system
US20040103251A1 (en) * 2002-11-26 2004-05-27 Mitchell Alsup Microprocessor including a first level cache and a second level cache having different cache line sizes
JP4036206B2 (ja) * 2004-03-31 2008-01-23 日本電気株式会社 セットアソシアティブキャッシュシステム及びキャッシュメモリの制御方法
US20060179231A1 (en) 2005-02-07 2006-08-10 Advanced Micron Devices, Inc. System having cache memory and method of accessing
US8022960B2 (en) 2007-02-22 2011-09-20 Qualcomm Incorporated Dynamic configurable texture cache for multi-texturing
CN102047315B (zh) 2008-05-30 2015-09-09 先进微装置公司 可扩展及整合的计算系统
KR101683556B1 (ko) * 2010-01-06 2016-12-08 삼성전자주식회사 타일 기반의 렌더링 장치 및 렌더링 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5386547A (en) * 1992-01-21 1995-01-31 Digital Equipment Corporation System and method for exclusive two-level caching
US7948498B1 (en) * 2006-10-13 2011-05-24 Nvidia Corporation Efficient texture state cache
KR20090115799A (ko) * 2007-01-31 2009-11-06 콸콤 인코포레이티드 멀티-레벨 캐시 계층에서의 캐스트아웃들을 감소시키기 위한 장치 및 방법들
US20130151777A1 (en) * 2011-12-09 2013-06-13 International Business Machines Corporation Dynamic Inclusive Policy in a Hybrid Cache Hierarchy Using Hit Rate

Also Published As

Publication number Publication date
US20130097386A1 (en) 2013-04-18
US9176880B2 (en) 2015-11-03
KR20130041585A (ko) 2013-04-25

Similar Documents

Publication Publication Date Title
KR101862785B1 (ko) 타일 기반 렌더링을 위한 캐쉬 메모리 시스템 및 캐슁 방법
EP2854037B1 (en) Cache memory system and operating method for the same
TWI506434B (zh) 預取單元、資料預取方法、電腦程式產品以及微處理器
US20060224830A1 (en) Performance of a cache by detecting cache lines that have been reused
US8583874B2 (en) Method and apparatus for caching prefetched data
US20150032964A1 (en) Handling virtual memory address synonyms in a multi-level cache hierarchy structure
US9189423B2 (en) Method and apparatus for controlling cache refills
US9734059B2 (en) Methods and apparatus for data cache way prediction based on classification as stack data
US20130007373A1 (en) Region based cache replacement policy utilizing usage information
JP4829191B2 (ja) キャッシュシステム
CN111344684A (zh) 多层缓存安置机制
US10929308B2 (en) Performing maintenance operations
US9317448B2 (en) Methods and apparatus related to data processors and caches incorporated in data processors
US20170103024A1 (en) Information processing apparatus and cache control method
US7237067B2 (en) Managing a multi-way associative cache
JP2012203560A (ja) キャッシュメモリおよびキャッシュシステム
CN107438837A (zh) 数据高速缓存
JP2014186397A (ja) キャッシュメモリ装置、情報処理装置及びキャッシュメモリ制御方法
US10831673B2 (en) Memory address translation
US10853262B2 (en) Memory address translation using stored key entries
US9129033B1 (en) Caching efficiency using a metadata cache
KR101976320B1 (ko) 라스트 레벨 캐시 메모리 및 이의 데이터 관리 방법
US9110811B2 (en) Prefetching method and apparatus
US8756362B1 (en) Methods and systems for determining a cache address
JP7311959B2 (ja) 複数のデータ・タイプのためのデータ・ストレージ

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