KR20150035326A - 캐시 메모리를 제어하는 방법 및 장치. - Google Patents

캐시 메모리를 제어하는 방법 및 장치. Download PDF

Info

Publication number
KR20150035326A
KR20150035326A KR20130115715A KR20130115715A KR20150035326A KR 20150035326 A KR20150035326 A KR 20150035326A KR 20130115715 A KR20130115715 A KR 20130115715A KR 20130115715 A KR20130115715 A KR 20130115715A KR 20150035326 A KR20150035326 A KR 20150035326A
Authority
KR
South Korea
Prior art keywords
cache
unit
data
information
data block
Prior art date
Application number
KR20130115715A
Other languages
English (en)
Other versions
KR101904421B1 (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 KR1020130115715A priority Critical patent/KR101904421B1/ko
Priority to US14/496,559 priority patent/US9875178B2/en
Publication of KR20150035326A publication Critical patent/KR20150035326A/ko
Application granted granted Critical
Publication of KR101904421B1 publication Critical patent/KR101904421B1/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/0215Addressing or allocation; Relocation with look ahead addressing means
    • 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/0855Overlapped cache accessing, e.g. pipeline
    • G06F12/0859Overlapped cache accessing, e.g. pipeline with reload from main memory
    • 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/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • 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
    • 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 Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

캐시 메모리를 제어하는 방법은, 데이터 블록에 포함된 일 데이터의 위치 정보 및 상기 데이터 블록의 크기 정보를 수신하는 단계; 상기 위치 정보 및 상기 크기 정보를 이용하여 캐시 메모리에 상기 데이터 블록을 매핑하는 단계; 및 상기 매핑 결과에 기초하여 상기 캐시 메모리에 포함된 단위 캐시들 중에서 적어도 하나 이상의 단위 캐시들을 선택하는 단계;를 포함한다.

Description

캐시 메모리를 제어하는 방법 및 장치. {Method and appratus for controlling cache memory}
캐시 메모리를 제어하는 방법 및 장치에 관한다.
영상 관련 기술의 발전에 따라 점차 고화질의 FHD(Full High Definition) 또는 UD(Ultra High Definition) 영상의 부호화 또는 복호화 기술이 요구되고 있다. 이에 따라, 프로세서에서 더욱 세밀하게 영상을 처리하는 기술이 요구된다. 예를 들어, MC(Motion Compensation) 등의 방법에 따라 영상을 처리하는 경우에는, 프로세서가 메인(main) 메모리에 저장된 동일한 데이터를 중복해서 전송을 요청하는 경우가 발생할 수 있다. 이에 따라, 기 전송된 데이터를 불필요하게 프로세서로 다시 전송하게 되므로, 메인 메모리로의 억세스(access)로 인한 오버헤드(overhead)가 크게 증가한다.
캐시 메모리는 프로세서와 메인 메모리 사이에 위치하며, 메인 메모리보다 크기가 작지만 더 빠르게 동작한다. 따라서, 캐시(cache) 메모리를 이용하면, 전송이 요청된 데이터가 캐시에 존재하는 경우에, 메인 메모리를 억세스 하지 않고 캐시에서 판독하여 이용할 수 있으므로 데이터의 처리 속도를 증가시킬 수 있다.
캐시 메모리를 제어하는 방법 및 장치를 제공한다. 또한, 상기 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다. 해결하려는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.
일 실시예에 따른 캐시 메모리를 제어하는 방법은, 데이터 블록에 포함된 일 데이터의 위치 정보 및 상기 데이터 블록의 크기 정보를 수신하는 단계; 상기 위치 정보 및 상기 크기 정보를 이용하여 캐시 메모리에 상기 데이터 블록을 매핑하는 단계; 및 상기 매핑 결과에 기초하여 상기 캐시 메모리에 포함된 단위 캐시들 중에서 적어도 하나 이상의 단위 캐시들을 선택하는 단계;를 포함한다.
다른 실시예에 따른 컴퓨터로 읽을 수 있는 기록 매체는 상술한 캐시 메모리를 제어하는 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 기록 매체를 포함한다.
또 다른 실시예에 따른 캐시 메모리를 제어하는 장치는, 데이터 블록에 포함된 일 데이터의 위치 정보 및 상기 데이터 블록의 크기 정보를 수신하는 수신부; 상기 위치 정보 및 상기 크기 정보를 이용하여 캐시 메모리에 상기 데이터 블록을 매핑하는 매핑부; 및 상기 매핑 결과에 기초하여 상기 캐시 메모리에 포함된 단위 캐시들 중에서 적어도 하나 이상의 단위 캐시들을 선택하는 선택부;를 포함한다.
상술한 바에 따르면, 프로세서가 캐시 메모리에 포함된 데이터에 억세스하기 전에 프로세서가 필요로 하는 데이터를 캐시 메모리에 미리 저장함으로써, 메인 메모리로부터의 데이터 전송 지연에 의한 오버헤드를 최소화할 수 있다.
또한, 비디오 영상 처리에 있어서 영상을 처리하는 시간을 단축하고, 데이터의 부호화 및 복호화를 빠르게 수행할 수 있다.
도 1은 일 실시예에 따른 데이터 처리 장치의 일 예를 도시한 구성도이다.
도 2는 일 실시예에 따른 캐시 제어부의 일 예를 도시한 구성도이다.
도 3은 일 실시예에 따른 데이터 블록 및 캐시 메모리의 일 예를 설명하기 위한 도면이다.
도 4는 일 실시예에 따른 매핑부 및 선택부가 동작하는 일 예를 설명하기 위한 도면이다.
도 5는 일 실시예에 따른 단위 캐시들 및 데이터 블록의 일 예를 도시한 도면이다.
도 6은 일 실시예에 따른 요청부(224)가 동작하는 일 예를 설명하기 위한 도면이다.
도 7은 일 실시예에 따른 단위 캐시들 및 데이터 블록의 다른 예를 도시한 도면이다.
도 8은 일 실시예에 따른 요청부(224)가 동작하는 다른 예를 설명하기 위한 도면이다.
도 9는 일 실시예에 따른 캐시 제어부가 동작하는 일 예를 나타내는 흐름도이다.
도 10은 일 실시예에 따른 캐시 메모리를 제어하는 방법의 일 예를 나타내는 흐름도이다.
이하에서는 도면을 참조하여 본 발명의 실시예들을 상세히 설명한다. 본 발명의 하기 실시예는 본 발명을 구체화하기 위한 것일 뿐 본 발명의 권리 범위를 제한하거나 한정하지 않는다. 또한, 본 발명의 상세한 설명 및 실시예로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 용이하게 유추할 수 있는 것은 본 발명의 권리범위에 속하는 것으로 해석된다.
도 1은 일 실시예에 따른 데이터 처리 장치의 일 예를 도시한 구성도이다.
도 1을 참조하면, 데이터 처리 장치는 프로세서(10), 캐시 메모리 시스템(20), 메모리 컨트롤러(30) 및 메인 메모리(40)를 포함한다. 도 1에 도시된 데이터 처리 장치에는 본 실시예와 관련된 구성요소들만이 도시되어 있다. 따라서, 도 1에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 본 실시예와 관련된 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
또한, 도 1에 도시된 데이터 처리 장치의 프로세서(10), 캐시 메모리 시스템(20), 메모리 컨트롤러(30) 및 메인 메모리(40)들은 각자 독립적인 장치로 존재할 수도 있음을 본 발명과 관련된 기술 분야에서 통상의 지식을 가진 자라면 알 수 있다.
캐시 메모리 시스템(20)은 캐시 제어부(22) 및 캐시 메모리(24)를 포함한다. 여기에서, 캐시 메모리(24)는 L1 또는 L2 캐시에 해당될 수 있으나, 이에 한정되지 않는다.
시스템 버스(60)에는 캐시 제어부(22)의 라인(16)과 프로세서(10)의 데이터 라인(14)이 연결된다. 시스템 버스(60)와 라인(62)을 통해 연결된 메모리 컨트롤러(30)는 프로세서(10)의 명령에 따라 메인 메모리(40)를 제어한다. 시스템 버스(60)에는 라인(66)을 통해 데이터 입출력 동작을 수행하기 위한 입출력부(50)가 연결될 수 있다.
프로세서(10)는 데이터 프로세싱 동작 시에 메인 메모리(40)를 억세스하기 전에 캐시 메모리(24)에 먼저 억세스한다. 이때, 라인(12)를 통해 어드레스 또는 제어 명령이 캐시 제어부(22) 및 캐시 메모리(24)에 인가된다.
캐시 메모리(24)에 프로세서(10)가 요청하는 데이터가 존재하면 캐시 히트(hit)에 따른 동작이 수행된다. 캐시 히트 시에는 캐시 메모리(24)로부터 출력된 데이터가 라인(L2) 및 데이터 라인(14)을 차례로 거쳐 프로세서(10)로 전송된다. 프로세서(10)가 메인 메모리(40)보다 캐시 메모리(24)에 먼저 억세스하는 이유는 중복적으로 사용되는 메인 메모리(40)의 일부 데이터가 프로세서(10)에 의해 캐시 메모리(24)에 저장되어 있기 때문이다. 여기에서, 캐시 메모리 시스템(20)에는 통상적으로 태그 정보를 저장하는 태그 메모리가 구비된다. 여기에서, 태그 정보는 캐시 메모리(24) 내에 저장되어 있는 데이터의 어드레스를 나타내는 데이터를 의미한다.
프로세서(10)가 원하는 데이터가 캐시 메모리(24)에 저장되어 있지 않을 경우에는 캐시 미스(miss)에 따른 동작이 수행된다. 이때, 프로세서(10)는 시스템 버스(60)를 통해 메모리 컨트롤러(30)를 제어한다. 이에 따라, 메인 메모리(40)가 억세스되며, 메인 메모리(40)로부터 출력된 데이터가 시스템 버스(60)를 거쳐 데이터 라인(14)으로 인가된다.
상술한 바와 같이, 데이터 처리 장치에 캐시 메모리 시스템(20)이 포함된 경우, 캐시 히트가 발생되면 프로세서(10)가 메인 메모리(40)에 억세스할 필요가 없으므로 프로세서(10)는 빠르게 원하는 데이터를 전송받을 수 있다. 그러나, 캐시 미스가 발생되면 프로세서(10)는 메인 메모리(40)에 억세스함으로써 원하는 데이터를 캐시 메모리(24)에 저장하고, 캐시 메모리(24)에 저장된 데이터를 전송받은 과정을 거쳐야하므로 캐시 메모리(24)에 데이터를 저장하기 위한 오버헤드가 크게 증가한다.
일 실시예에 따르면, 캐시 제어부(22)는 캐시 미스가 발생되는지 여부를 미리 파악하고, 캐시 미스된 데이터를 메인 메모리(40)에 미리 요청한다. 따라서, 데이터 처리 장치는 메인 메모리(40)로부터의 데이터 전송 지연에 의한 오버헤드를 최소화할 수 있으며, 데이터 처리 속도를 증가시킬 수 있다.
도 2는 일 실시예에 따른 캐시 제어부의 일 예를 도시한 구성도이다.
도 2를 참조하면, 캐시 제어부(22)는 수신부(221), 매핑부(222), 선택부(223) 및 요청부(224)를 포함한다. 도 2에 도시된 캐시 제어부(22)에는 본 실시예와 관련된 구성요소들만이 도시되어 있다. 따라서, 도 2에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 본 실시예와 관련된 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
또한, 도 2에 도시된 캐시 제어부(22)의 수신부(221), 매핑부(222), 선택부(223) 및 요청부(224)들은 각자 독립적인 장치로 존재할 수도 있음을 본 발명과 관련된 기술 분야에서 통상의 지식을 가진 자라면 알 수 있다.
수신부(221)는 데이터 블록에 포함된 일 데이터의 위치 정보 및 데이터 블록의 크기 정보를 수신한다. 여기에서, 데이터 블록은 프로세서(10)가 캐시 메모리(24)에 전송을 요구한 데이터를 포함하는 블록을 의미한다. 또한, 캐시 메모리(24)는 1차원 라인 캐시 또는 2차원 블록 캐시를 의미할 수 있으나, 이에 한정되지 않는다. 이하, 도 3을 참조하여 데이터 블록 및 캐시 메모리(24)를 상세하게 설명한다.
도 3은 일 실시예에 따른 데이터 블록 및 캐시 메모리의 일 예를 설명하기 위한 도면이다.
도 3을 참조하면, 도 3의 (a)에는 1차원 캐시 메모리가 도시되어 있고, 도 3의 (b)에는 2차원 캐시 메모리가 도시되어 있다.
여기에서, 1차원 캐시 메모리(310)는 데이터가 라인 단위로 캐시 메모리(310)에 저장되거나 캐시 메모리(310)로부터 출력되는 메모리를 의미한다. 도 3의 (a)를 참조하면, 캐시 제어부(22)는 캐시 메모리(310)의 Number=0에 대응되는 라인에 저장된 데이터를 출력할 수 있고, 메인 메모리(40)에서 전송된 데이터를 캐시 메모리(310)의 Number=0에 대응되는 라인에 저장할 수 있다.
또한, 2차원 캐시 메모리(320)는 데이터가 블록 단위로 캐시 메모리(320)에 저장되거나 캐시 메모리(320)로부터 출력되는 메모리를 의미한다. 도 3의 (b)를 참조하면, 캐시 제어부(22)는 캐시 메모리(310)의 Number=(0,0)에 대응되는 블록에 저장된 데이터를 출력할 수 있고, 메인 메모리(40)에서 전송된 데이터를 캐시 메모리(310)의 Number=(0,0)에 대응되는 블록에 저장할 수 있다.
일 실시예에 따른 프로세서(10)는 영상 데이터의 처리를 수행할 수 있다. 이때, 프로세서(10)는 유사성이 높은 데이터를 이용하여 데이터의 부호화 또는 복호화를 수행할 수 있다. 따라서, 프로세서(10)가 요청하는 데이터(즉, 유사성이 높은 데이터)는 캐시 메모리(310, 320)의 인접한 위치에 블록 형태(311, 312)로 저장되어 있을 수 있고, 프로세서(10)는 캐시 메모리(310, 320)에 포함된 일 블록(311, 312)에 대응하는 데이터를 요청할 수도 있다.
다시 도 2를 참조하면, 수신부(221)가 프로세서(10)로부터 수신하는 위치 정보는 캐시 메모리(24) 상에서의 일 데이터의 위치를 좌표로 표현한 정보를 의미할 수 있고, 크기 정보는 데이터 블록의 크기를 행렬로 나타낸 정보를 의미할 수 있다. 여기에서, 일 데이터는 데이터 블록에 포함된 데이터로서, 데이터 블록의 일 가장자리에 대응하는 데이터를 의미할 수 있다.
예를 들어, 위치 정보는 (6, 0), 크기 정보는 4×4로 표현될 수 있다. 그러나, 위치 정보는 캐시 메모리(24) 내에서 데이터의 위치를 특정할 수 있는 형태의 정보라면 제한 없이 해당될 수 있다. 또한, 크기 정보는 데이터 블록의 크기를 특정할 수 있는 형태의 정보라면 제한 없이 해당될 수 있다.
매핑부(222)는 위치 정보 및 크기 정보를 이용하여 캐시 메모리(24)에 데이터 블록을 매핑한다. 구체적으로, 매핑부(222)는 수신부(221)로부터 전송된 위치 정보 및 크기 정보를 이용하여 데이터 블록의 가장 자리에 대응하는 데이터의 위치 좌표를 계산한다. 이하, 도 4를 참조하여 매핑부(222)의 동작을 상세하게 설명한다.
도 4는 일 실시예에 따른 매핑부 및 선택부가 동작하는 일 예를 설명하기 위한 도면이다.
도 4를 참조하면, 캐시 메모리(24) 중 일부 부분(410)이 도시되어 있다. 여기에서, 캐시 메모리(24)는 1차원 캐시일 수도 있고, 2차원 캐시일 수도 있다.
캐시 메모리(24)는 복수의 단위 캐시들을 포함할 수 있다. 다시 말해, 캐시 메모리(24)는 (L, M) 내지 (L+2, M+2)의 단위 캐시들을 포함할 수 있다. 여기에서, 단위 캐시(cache(L, M) 내지 cache(L+2, M+2))의 크기를 결정하는 변수들(즉, xsize 및 ysize)은 캐시 메모리(24)의 종류에 따라서 미리 결정될 수 있다. 예를 들어, 캐시 메모리(24)가 1차원 캐시라고 가정하면, ysize는 1이고, xsize는 2 이상의 자연수로 미리 결정될 수 있다. 또한, 캐시 메모리(24)가 2차원 캐시라고 가정하면, xsize 및 ysize는 각각 1 이상의 자연수로 미리 결정될 수 있다.
매핑부(222)는 위치 정보(a0, b0) 및 크기 정보를 이용하여 데이터 블록(420)의 가장 자리에 대응하는 데이터의 위치 좌표(a1, b1)를 계산한다. 예를 들어, 위치 정보가 (8, 0)이고, 크기 정보가 4×4라고 가정하면, 매핑부(222)는 데이터 블록(420)의 가장 자리에 대응하는 데이터의 위치 좌표인 (a1, b1)를 (11, 3)으로 계산할 수 있다.
다시 도 1을 참조하면, 선택부(223)는 매핑 결과에 기초하여 캐시 메모리에 포함된 단위 캐시들 중에서 적어도 하나 이상의 단위 캐시들을 선택한다. 구체적으로, 선택부(223)는 매핑부(222)로부터 전송된 위치 좌표 및 수신부(221)로부터 전송된 위치 정보를 이용하여 캐시 메모리(24)에 포함된 단위 캐시들 중에서 데이터 블록을 포함하는 단위 캐시들을 선택한다.
다시 도 4를 참조하면, 선택부(223)는 매핑부(222)로부터 전송된 위치 좌표(a1, b1) 및 수신부(221)로부터 전송된 위치 정보(a0, b0)를 이용하여 캐시 메모리(410)에 포함된 단위 캐시들 중에서 위치 좌표(a1, b1) 및 위치 정보(a0, b0)를 각각 포함하는 단위 캐시들(cache(L, M) 및 cache(L+2, M+2))을 선택한다. 구체적으로, 선택부(223)는 아래의 수학식 1 내지 4를 이용하여, 데이터 블록(420) 가장자리 지점들(421, 422)이 위치한 단위 캐시들(cache(L, M) 및 cache(L+2, M+2))을 결정할 수 있다.
Figure pat00001
Figure pat00002
Figure pat00003
Figure pat00004
수학식 1 및 3에서, xstart 및 ystart는 데이터 블록(420)에 포함된 첫 번째 데이터가 캐시 메모리(24) 상에 위치하는 지점(421)의 좌표값을 의미한다. 또한, 수학식 2 및 4에서, xend 및 yend는 데이터 블록(420)에 포함된 마지막 데이터가 캐시 메모리(24) 상에 위치하는 지점(422)의 좌표값을 의미한다.
선택부(223)는 상술한 수학식 1 내지 4에 기초하여, 단위 캐시들 중 제 1 단위 캐시(cache(L, M)) 및 제 n 단위 캐시(cache(L+2, M+2))를 결정할 수 있다. 그 후에, 선택부(223)는 제 1 단위 캐시(cache(L, M)) 및 제 n 단위 캐시(cache(L+2, M+2))에 기초하여, 데이터 블록(420)의 영역이 걸쳐진 나머지 단위 캐시들(즉, cache(L+1, M), cache(L+2, M), cache(L, M+1), cache(L+1, M+1), cache(L+2, M+1), cache(L, M+2), cache(L+1, M+2))을 선택한다.
상술한 바에 따르면, 캐시 제어부(22)는 프로세서(10)의 요청에 따라 전송할 데이터 블록의 위치 정보 및 크기 정보를 바탕으로 캐시 메모리(24)에 데이터 블록을 매핑함으로써, 신속하게 데이터 블록 전체에 대응하는 단위 캐시들을 선택할 수 있다.
다시 도 1을 참조하면, 요청부(224)는 선택된 단위 캐시들에 포함된 데이터를 이용하여 선택된 단위 캐시들 중 캐시 미스(miss)가 발생된 단위 캐시에 포함된 데이터의 전송을 요청하는 신호를 생성한다.
구체적으로, 요청부(224)는 선택된 단위 캐시들의 태그(tag) 정보 및 인덱스(index) 정보를 획득한다. 그리고, 요청부(224)는 획득된 태그 정보 및 인덱스 정보를 이용하여, 선택된 단위 캐시들에 대하여 캐시 미스가 발생되는지 여부를 판단한다. 그리고, 요청부(224)는 판단 결과에 기초하여, 캐시 미스(miss)가 발생된 단위 캐시에 포함된 데이터의 전송을 요청하는 신호를 생성한다.
이하, 도 5 내지 도 9를 참조하여, 요청부(224)가 동작하는 구체적인 내용을 설명한다. 구체적으로, 도 5 내지 도 6은 일 실시예에 따른 캐시 메모리(24)가 1차원 캐시인 경우에 요청부(224)가 동작하는 일 예를 도시한 도면이고, 도 7 내지 도 8은 일 실시예에 따른 캐시 메모리(24)가 2차원 캐시인 경우에 요청부(224)가 동작하는 일 예를 도시한 도면이다.
도 5는 일 실시예에 따른 단위 캐시들 및 데이터 블록의 일 예를 도시한 도면이다.
도 5를 참조하면, 1차원 캐시 메모리(520)에 데이터 블록(510)이 매핑된 일 예가 도시되어 있다. 여기에서, 단위 캐시들은 각각 16×1의 크기를 갖고, 선택부(223)가 제 1 단위 캐시(521) 내지 제 4 단위 캐시(524)를 선택하였다고 가정한다.
그리고, 데이터 블록(510)은 4개의 단위 캐시들(521, 522, 523, 524)에 걸쳐서 존재하는 것으로 가정한다. 여기에서, 제 1 단위 캐시(521)에는 데이터 블록(510)에 포함된 데이터(1 내지 4)가 저장되어 있지 않고, 제 2 단위 캐시(522)에는 데이터 블록(510)에 포함된 데이터(5 내지 8)가 저장되어 있다고 가정한다. 또한, 제 3 단위 캐시(523)에는 데이터 블록(510)에 포함된 데이터(9 내지 c)가 저장되어 있지 않고, 제 4 단위 캐시(524)에는 데이터 블록(510)에 포함된 데이터(d 내지 g)가 저장되어 있다고 가정한다.
요청부(224)는 제 1 단위 캐시(521) 내지 제 4 단위 캐시(524)의 태그 정보 및 인덱스 정보를 획득한다. 여기에서, 태그 정보 및 인덱스 정보는 단위 캐시의 위치와 크기, 단위 캐시에 저장된 데이터의 위치 및 종류를 나타내는 정보를 의미한다.
요청부(224)는 태그 정보 및 인덱스 정보를 이용하여 단위 캐시들(521 내지 524)에 대하여 캐시 미스가 발생되는지 여부를 판단한다. 구체적으로, 요청부(224)는 단위 캐시들(521 내지 524) 각각의 태그 정보 및 인덱스 정보를 이용하여, 데이터 블록에 포함된 데이터가 단위 캐시들(521 내지 524)에 저장되었는지 여부를 각각의 단위 캐시마다 판단한다.
그리고, 요청부(224)는 판단 결과에 기초하여 캐시 미스가 발생된 단위 캐시에 대응하는 데이터의 전송을 요청하는 신호를 생성한다. 구체적으로, 요청부(224)는 캐시 미스가 발생된 단위 캐시들 각각에 대응하여 개별적으로 신호를 생성한다. 여기에서, 요청부(224)가 생성하는 신호는 메인 메모리(40)에 데이터의 전송을 요청하는 신호를 의미한다.
예를 들어, 요청부(224)는 제 1 단위 캐시(521)의 태그 정보 및 인덱스 정보를 이용하여, 제 1 단위 캐시(521)에 캐시 미스가 발생되는지 또는 캐시 히트가 발생되는지를 판단한다. 앞에서 가정한 바에 따르면, 제 1 단위 캐시(521)에는 데이터 블록(510)에 포함된 데이터(1 내지 4)가 저장되어 있지 않으므로, 요청부(224)는 제 1 단위 캐시(521)에 캐시 미스가 발생된 것으로 판단한다.
그 후에, 요청부(224)는 제 1 단위 캐시(521)에 대응하는 데이터(1 내지 4)의 전송을 요청하는 신호를 생성한다. 다시 말해, 제 1 단위 캐시(521)에 캐시 미스가 발생되었으므로, 요청부(224)는 제 1 단위 캐시(521)에 대응하는 데이터(1 내지 4)의 전송을 요청하는 신호를 생성한다.
그 후에, 요청부(224)는 제 2 단위 캐시(522)의 태그 정보 및 인덱스 정보를 이용하여, 제 2 단위 캐시(522)에 캐시 미스가 발생되었는지 또는 캐시 히트가 발생되었는지를 판단한다. 앞에서 가정한 바에 따르면, 제 2 단위 캐시(522)에는 데이터 블록(510)에 포함된 데이터(5 내지 8)가 저장되어 있으므로, 요청부(224)는 제 2 단위 캐시(522)에 캐시 히트가 발생된 것으로 판단한다.
제 2 단위 캐시(522)에 캐시 히트가 발생되었으므로, 요청부(224)는 제 2 단위 캐시(521)에 대응하는 데이터(5 내지 8)의 전송을 요청하는 신호를 생성하지 않는다.
상술한 바와 동일한 방법으로, 요청부(224)는 제 3 단위 캐시(523) 및 제 4 단위 캐시(524)에 캐시 미스가 발생되었는지 또는 캐시 히트가 발생되었는지를 판단하고, 데이터의 전송을 요청하는 신호를 선택적으로 생성한다.
구체적으로, 요청부(224)는 제 3 단위 캐시(523)에 캐시 미스가 발생된 것으로 판단하고, 제 3 단위 캐시(523)에 대응하는 데이터(9 내지 c)의 전송을 요청하는 신호를 생성한다. 그리고, 요청부(224)는 제 4 단위 캐시(524)에 캐시 히트가 발생된 것으로 판단하고, 별도의 데이터 요청 신호를 생성하지 않는다.
도 6은 일 실시예에 따른 요청부(224)가 동작하는 일 예를 설명하기 위한 도면이다.
도 6은 도 5를 참조하여 상술한 요청부(224)의 동작을 단위 캐시별로 정리한 도면이다. 따라서, 도 6을 참조하여 이하에서 설명할 내용은 도 5를 참조하여 상술한 내용을 포함한다.
요청부(224)는 제 1 단위 캐시에 대하여 데이터의 전송을 요청(611)한다. 요청부(224)는 제 1 단위 캐시에 데이터 블록에 포함된 데이터가 저장되었는지 여부에 기초하여 캐시 미스가 발생되었는지 여부를 판단(612)한다. 그리고, 요청부(224)는 판단 결과에 기초하여 메인 메모리(40)로 데이터 블록에 포함된 데이터의 전송을 요청하는 신호를 생성(613)한다.
요청부(224)는 각각의 단위 캐시들에 대해서 데이터 전송의 요청, 캐시 미스의 발생 여부 판단 및 신호의 생성 과정을 순차적으로 수행한다. 다시 말해, 요청부(224)는 제 1 단위 캐시(610) → 제 2 단위 캐시(620) → 제 3 단위 캐시(630) → 제 4 단위 캐시(640)의 순서로 상술한 과정들을 수행한다.
도 7은 일 실시예에 따른 단위 캐시들 및 데이터 블록의 다른 예를 도시한 도면이다.
도 7을 참조하면, 2차원 캐시 메모리(720)에 데이터 블록(710)이 매핑된 일 예가 도시되어 있다. 여기에서, 단위 캐시들은 각각 8×2의 크기를 갖고, 선택부(223)가 제 1 단위 캐시(721) 내지 제 4 단위 캐시(724)를 선택하였다고 가정한다.
그리고, 데이터 블록(710)은 4개의 단위 캐시들(721, 722, 723, 724)에 걸쳐서 존재하는 것으로 가정한다. 여기에서, 제 1 단위 캐시(721)에는 데이터 블록(710)에 포함된 데이터(1, 2, 5, 6)가 저장되어 있고, 제 2 단위 캐시(722)에는 데이터 블록(710)에 포함된 데이터(3, 4, 7, 8)가 저장되어 있지 않다고 가정한다. 또한, 제 3 단위 캐시(723)에는 데이터 블록(710)에 포함된 데이터(9, a, d, e)가 저장되어 있고, 제 4 단위 캐시(724)에는 데이터 블록(710)에 포함된 데이터(b, c, f, g)가 저장되어 있지 않다고 가정한다.
요청부(224)는 제 1 단위 캐시(721) 내지 제 4 단위 캐시(724)의 태그 정보 및 인덱스 정보를 획득한다. 여기에서, 태그 정보 및 인덱스 정보는 단위 캐시의 위치와 크기, 단위 캐시에 저장된 데이터의 위치 및 종류를 나타내는 정보를 의미한다.
요청부(224)는 태그 정보 및 인덱스 정보를 이용하여 단위 캐시들(721 내지 724)에 대하여 캐시 미스가 발생되는지 여부를 판단한다. 구체적으로, 요청부(224)는 단위 캐시들(721 내지 724) 각각의 태그 정보 및 인덱스 정보를 이용하여, 데이터 블록에 포함된 데이터가 단위 캐시들(721 내지 724)에 저장되었는지 여부를 각각의 단위 캐시마다 판단한다.
그리고, 요청부(224)는 판단 결과에 기초하여 캐시 미스가 발생된 단위 캐시에 대응하는 데이터의 전송을 요청하는 신호를 생성한다. 구체적으로, 요청부(224)는 캐시 미스가 발생된 단위 캐시들 각각에 대응하여 개별적으로 신호를 생성한다. 여기에서, 요청부(224)가 생성하는 신호는 메인 메모리(40)에 데이터의 전송을 요청하는 신호를 의미한다.
예를 들어, 요청부(224)는 제 1 단위 캐시(721)의 태그 정보 및 인덱스 정보를 이용하여, 제 1 단위 캐시(721)에 캐시 미스가 발생되는지 또는 캐시 히트가 발생되는지를 판단한다. 앞에서 가정한 바에 따르면, 제 1 단위 캐시(721)에는 데이터 블록(510)에 포함된 데이터(1, 2, 5, 6)가 저장되어 있으므로, 요청부(224)는 제 1 단위 캐시(521)에 캐시 히트가 발생된 것으로 판단한다.
제 1 단위 캐시(721)에 캐시 히트가 발생되었으므로, 요청부(224)는 제 1 단위 캐시(721)에 대응하는 데이터(1, 2, 5, 6)의 전송을 요청하는 신호를 생성하지 않는다.
그 후에, 요청부(224)는 제 2 단위 캐시(722)의 태그 정보 및 인덱스 정보를 이용하여, 제 2 단위 캐시(722)에 캐시 미스가 발생되었는지 또는 캐시 히트가 발생되었는지를 판단한다. 앞에서 가정한 바에 따르면, 제 2 단위 캐시(722)에는 데이터 블록(710)에 포함된 데이터(3, 4, 7, 8)가 저장되어 있지 않으므로, 요청부(224)는 제 2 단위 캐시(722)에 캐시 미스가 발생된 것으로 판단한다.
그 후에, 요청부(224)는 제 2 단위 캐시(722)에 대응하는 데이터(3, 4, 7, 8)의 전송을 요청하는 신호를 생성한다. 다시 말해, 제 2 단위 캐시(722)에 캐시 미스가 발생되었으므로, 요청부(224)는 제 2 단위 캐시(722)에 대응하는 데이터(3, 4, 7, 8)의 전송을 요청하는 신호를 생성한다.
상술한 바와 동일한 방법으로, 요청부(224)는 제 3 단위 캐시(723) 및 제 4 단위 캐시(724)에 캐시 미스가 발생되었는지 또는 캐시 히트가 발생되었는지를 판단하고, 데이터의 전송을 요청하는 신호를 선택적으로 생성한다.
구체적으로, 요청부(224)는 제 3 단위 캐시(723)에 캐시 히트가 발생된 것으로 판단하고, 별도의 데이터 요청 신호를 생성하지 않는다. 그리고, 요청부(224)는 제 4 단위 캐시(724)에 캐시 미스가 발생된 것으로 판단하고, 제 4 단위 캐시(724)에 대응하는 데이터(b, c, f, g)의 전송을 요청하는 신호를 생성한다.
도 8은 일 실시예에 따른 요청부(224)가 동작하는 다른 예를 설명하기 위한 도면이다.
도 8은 도 7을 참조하여 상술한 요청부(224)의 동작을 단위 캐시별로 정리한 도면이다. 따라서, 도 8을 참조하여 이하에서 설명할 내용은 도 7를 참조하여 상술한 내용을 포함한다.
요청부(224)는 제 1 단위 캐시에 대하여 데이터의 전송을 요청(811)한다. 요청부(224)는 제 1 단위 캐시에 데이터 블록에 포함된 데이터가 저장되었는지 여부에 기초하여 캐시 미스가 발생되었는지 여부를 판단(812)한다. 제 1 단위 캐시에 캐시 히트가 발생되었으므로, 요청부(224)는 메인 메모리(40)에 데이터를 요청하는 별도의 신호를 생성하지 않는다.
요청부(224)는 각각의 단위 캐시들에 대해서 데이터 전송의 요청, 캐시 미스의 발생 여부 판단 및 신호의 생성 과정을 순차적으로 수행한다. 다시 말해, 요청부(224)는 제 1 단위 캐시(810) → 제 2 단위 캐시(820) → 제 3 단위 캐시(830) → 제 4 단위 캐시(840)의 순서로 상술한 과정들을 수행한다.
도 9는 일 실시예에 따른 캐시 제어부가 동작하는 일 예를 나타내는 흐름도이다.
도 9를 참조하면, 캐시 제어부(22)가 동작하는 일 예는 도 2 내지 도 8을 참조하여 상술한 내용을 포함한다. 따라서, 이하에서 생략된 내용이라 하더라도 도 2 내지 도 8에 관하여 이상에서 기술된 내용은 도 9의 캐시 제어부(22)가 동작하는 일 예에도 적용됨을 알 수 있다.
910 단계에서, 수신부(221)는 데이터 블록에 포함된 일 데이터의 위치 정보 및 데이터 블록의 크기 정보를 수신한다.
920 단계에서, 매핑부(222)는 데이터 블록의 가장 자리에 대응하는 데이터의 위치 좌표를 계산한다.
930 단계에서, 선택부(223)는 매핑부의 매핑 결과에 기초하여 단위 캐시들을 선택한다.
940 단계에서, 요청부(224)는 제 1 단위 캐시의 태그 정보 및 인덱스 정보를 확인한다.
950 단계에서, 요청부(224)는 제 1 단위 캐시에 캐시 미스가 발생되었는지 또는 캐시 히트가 발생되는지를 판단한다. 캐시 히트가 발생된 경우에는 980 단계로 진행하고, 캐시 미스가 발생된 경우에는 960 단계로 진행한다.
960 단계에서, 요청부(224)는 메인 메모리(40)에 데이터 블록에 포함된 데이터를 전송해줄 것을 요청한다. 다시 말해, 요청부(224)는 메인 메모리(40)에 제 1 단위 캐시에 대응되는 데이터를 요청하는 신호를 생성한다.
970 단계에서, 요청부(224)는 마지막 단위 캐시에 대한 작업이 종료되었는지 여부를 판단한다. 다시 말해, 요청부(224)는 제 1 단위 캐시 외에 선택부(223)에 의하여 선택된 다른 단위 캐시가 존재하는지를 판단한다. 다른 단위 캐시가 존재하는 경우에는 980 단계로 진행하고, 다른 단위 캐시가 존재하지 않는 경우에는 동작을 종료한다.
980 단계에서, 요청부(224)는 태그 정보 및 인덱스 정보를 업데이트한다. 다시 말해, 요청부(224)는 태그 정보 및 인덱스 정보를 업데이트함으로써 제 2 단위 캐시에 대하여 950 단계 내지 970 단계를 진행한다.
상술한 바에 따르면, 캐시 제어부(22)는 프로세서(10)가 캐시 메모리(24)에 포함된 데이터에 억세스하기 전에 프로세서(10)가 필요로 하는 데이터를 캐시 메모리(24)에 미리 저장함으로써, 메인 메모리(40)로부터의 데이터 전송 지연에 의한 오버헤드를 최소화할 수 있다.
도 10은 일 실시예에 따른 캐시 메모리를 제어하는 방법의 일 예를 나타내는 흐름도이다.
도 10을 참조하면, 캐시 메모리를 제어하는 방법은 도 1 및 도 2에 도시된 데이터 처리 장치 또는 캐시 제어부(22)에서 시계열적으로 처리되는 단계들로 구성된다. 따라서, 이하에서 생략된 내용이라 하더라도 도 1 및 도 2에 도시된 데이터 처리 장치 및 캐시 제어부(22)에 관하여 이상에서 기술된 내용은 도 10의 캐시 메모리를 제어하는 방법에도 적용됨을 알 수 있다.
1010 단계에서, 수신부(221)는 데이터 블록에 포함된 일 데이터의 위치 정보 및 데이터 블록의 크기 정보를 수신한다.
1020 단계에서, 매핑부(222)는 위치 정보 및 크기 정보를 이용하여 캐시 메모리에 데이터 블록을 매핑한다.
1030 단계에서, 선택부(223)는 매핑 결과에 기초하여 캐시 메모리에 포함된 단위 캐시들 중에서 적어도 하나 이상의 단위 캐시들을 선택한다.
한편, 상술한 방법은 컴퓨터에서 실행될 수 있는 프로그램으로 작성 가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 또한, 상술한 방법에서 사용된 데이터의 구조는 컴퓨터로 읽을 수 있는 기록매체에 여러 수단을 통하여 기록될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 램, USB, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등), PC 인터페이스(PC Interface)(예를 들면, PCI, PCI-express, Wifi 등)와 같은 저장매체를 포함한다.
본 실시예와 관련된 기술 분야에서 통상의 지식을 가진 자는 상기된 기재의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 방법들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
22: 캐시 제어부
221: 수신부
222: 매핑부
223: 선택부
224: 요청부

Claims (17)

  1. 데이터 블록에 포함된 일 데이터의 위치 정보 및 상기 데이터 블록의 크기 정보를 수신하는 단계;
    상기 위치 정보 및 상기 크기 정보를 이용하여 캐시 메모리에 상기 데이터 블록을 매핑하는 단계; 및
    상기 매핑 결과에 기초하여 상기 캐시 메모리에 포함된 단위 캐시들 중에서 적어도 하나 이상의 단위 캐시들을 선택하는 단계;를 포함하는 캐시 메모리를 제어하는 방법.
  2. 제 1 항에 있어서,
    상기 선택된 단위 캐시들에 포함된 데이터를 이용하여 상기 단위 캐시들 중 캐시 미스(miss)가 발생된 단위 캐시에 대응하는 데이터의 전송을 요청하는 신호를 생성하는 단계;를 더 포함하는 방법.
  3. 제 2 항에 있어서,
    상기 생성하는 단계는
    상기 선택된 단위 캐시들의 태그(tag) 정보 및 인덱스(index) 정보를 획득하는 단계;
    상기 획득된 태그 정보 및 인덱스 정보를 이용하여 상기 선택된 단위 캐시들에 대하여 캐시 미스가 발생되는지 여부를 판단하고, 상기 판단 결과에 기초하여 상기 요청하는 신호를 생성하는 단계;를 포함하는 방법.
  4. 제 3 항에 있어서,
    상기 생성하는 단계는 상기 선택된 단위 캐시들 각각의 태크 정보 및 인덱스 정보를 이용하여 상기 데이터 블록에 포함된 데이터가 상기 선택된 단위 캐시에 존재하는지 여부를 각각 판단하고,
    상기 생성하는 단계는 상기 선택된 단위 캐시들 각각에 대응하여 개별적으로 상기 신호를 생성하는 방법.
  5. 제 1 항에 있어서,
    상기 매핑하는 단계는 상기 위치 정보 및 상기 크기 정보를 이용하여 상기 데이터 블록의 가장 자리에 대응하는 데이터의 위치 좌표를 계산하고,
    상기 선택하는 단계는 상기 계산된 위치 좌표 및 상기 위치 정보를 이용하여 상기 캐시 메모리에 포함된 단위 캐시들 중에서 상기 데이터 블록을 포함하는 단위 캐시들을 선택하는 단계;를 포함하는 방법.
  6. 제 1 항에 있어서,
    상기 위치 정보는 상기 캐시 메모리 상에서의 상기 일 데이터의 위치를 좌표로 표현한 정보를 포함하고, 상기 크기 정보는 상기 데이터 블록의 크기를 행렬로 나타낸 정보를 포함하는 방법.
  7. 제 1 항에 있어서,
    상기 캐시 메모리는 1차원 라인 캐시 또는 2차원 블록 캐시를 포함하는 방법.
  8. 제 1 항에 있어서,
    상기 데이터 블록은 프로세서가 전송을 요구한 데이터를 포함하는 방법.
  9. 제 1 항 내지 제 8 항 중 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.
  10. 데이터 블록에 포함된 일 데이터의 위치 정보 및 상기 데이터 블록의 크기 정보를 수신하는 수신부;
    상기 위치 정보 및 상기 크기 정보를 이용하여 캐시 메모리에 상기 데이터 블록을 매핑하는 매핑부; 및
    상기 매핑 결과에 기초하여 상기 캐시 메모리에 포함된 단위 캐시들 중에서 적어도 하나 이상의 단위 캐시들을 선택하는 선택부;를 포함하는 캐시 메모리를 제어하는 장치.
  11. 제 10 항에 있어서,
    상기 선택된 단위 캐시들에 포함된 데이터를 이용하여 상기 단위 캐시들 중 캐시 미스(miss)가 발생된 단위 캐시에 대응하는 데이터의 전송을 요청하는 신호를 생성하는 요청부;를 더 포함하는 장치.
  12. 제 11 항에 있어서,
    상기 요청부는
    상기 선택된 단위 캐시들 각각의 태그(tag) 정보 및 인덱스(index) 정보를 획득하고, 상기 획득된 태그 정보 및 인덱스 정보를 이용하여 상기 선택된 단위 캐시들에 대하여 캐시 미스가 발생되는지 여부를 판단하고, 상기 판단 결과에 기초하여 상기 요청하는 신호를 생성하는 장치.
  13. 제 12 항에 있어서,
    상기 요청부는
    상기 선택된 단위 캐시들 각각의 태크 정보 및 인덱스 정보를 이용하여 상기 데이터 블록에 포함된 데이터가 상기 선택된 단위 캐시에 존재하는지 여부를 각각 판단하고,
    상기 선택된 단위 캐시들 각각에 대응하여 개별적으로 상기 신호를 생성하는 장치.
  14. 제 10 항에 있어서,
    상기 매핑부는 상기 위치 정보 및 상기 크기 정보를 이용하여 상기 데이터 블록의 가장 자리에 대응하는 데이터의 위치 좌표를 계산하고,
    상기 선택부는 상기 계산된 위치 좌표 및 상기 위치 정보를 이용하여 상기 캐시 메모리에 포함된 단위 캐시들 중에서 상기 데이터 블록을 포함하는 단위 캐시들을 선택하는 장치.
  15. 제 10 항에 있어서,
    상기 위치 정보는 상기 캐시 메모리 상에서의 상기 일 데이터의 위치를 좌표로 표현한 정보를 포함하고, 상기 크기 정보는 상기 데이터 블록의 크기를 행렬로 나타낸 정보를 포함하는 장치.
  16. 제 10 항에 있어서,
    상기 캐시 메모리는 1차원 라인 캐시 또는 2차원 블록 캐시를 포함하는 장치.
  17. 제 10 항에 있어서,
    상기 데이터 블록은 프로세서가 전송을 요구한 데이터를 포함하는 장치.
KR1020130115715A 2013-09-27 2013-09-27 캐시 메모리를 제어하는 방법 및 장치. KR101904421B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130115715A KR101904421B1 (ko) 2013-09-27 2013-09-27 캐시 메모리를 제어하는 방법 및 장치.
US14/496,559 US9875178B2 (en) 2013-09-27 2014-09-25 Method and apparatus for controlling cache memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130115715A KR101904421B1 (ko) 2013-09-27 2013-09-27 캐시 메모리를 제어하는 방법 및 장치.

Publications (2)

Publication Number Publication Date
KR20150035326A true KR20150035326A (ko) 2015-04-06
KR101904421B1 KR101904421B1 (ko) 2018-11-30

Family

ID=52741287

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130115715A KR101904421B1 (ko) 2013-09-27 2013-09-27 캐시 메모리를 제어하는 방법 및 장치.

Country Status (2)

Country Link
US (1) US9875178B2 (ko)
KR (1) KR101904421B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9652384B2 (en) * 2014-12-16 2017-05-16 Intel Corporation Apparatus, system and method for caching compressed data

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6378046B1 (en) * 1998-12-22 2002-04-23 U.S. Philips Corporation Cache with access to a moving two-dimensional window
US20120324172A1 (en) * 2011-06-17 2012-12-20 Lsi Corporation Cache Replacement Using Active Cache Line Counters

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1182561B1 (en) 2000-08-21 2011-10-05 Texas Instruments France Cache with block prefetch and DMA
US6912623B2 (en) 2002-06-04 2005-06-28 Sandbridge Technologies, Inc. Method and apparatus for multithreaded cache with simplified implementation of cache replacement policy
AU2003302731A1 (en) * 2002-11-27 2004-07-09 Rgb Media, Inc. Method and apparatus for time-multiplexed processing of multiple digital video programs
US7334088B2 (en) 2002-12-20 2008-02-19 International Business Machines Corporation Page descriptors for prefetching and memory management
US6931493B2 (en) * 2003-01-16 2005-08-16 International Business Machines Corporation Implementation of an LRU and MRU algorithm in a partitioned cache
US7870307B2 (en) 2006-01-30 2011-01-11 Sony Computer Entertainment Inc. DMA and graphics interface emulation
US9122609B2 (en) * 2011-03-07 2015-09-01 Texas Instruments Incorporated Caching method and system for video coding

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6378046B1 (en) * 1998-12-22 2002-04-23 U.S. Philips Corporation Cache with access to a moving two-dimensional window
US20120324172A1 (en) * 2011-06-17 2012-12-20 Lsi Corporation Cache Replacement Using Active Cache Line Counters

Also Published As

Publication number Publication date
KR101904421B1 (ko) 2018-11-30
US9875178B2 (en) 2018-01-23
US20150095545A1 (en) 2015-04-02

Similar Documents

Publication Publication Date Title
JP6401512B2 (ja) キャッシュメモリシステム及びその動作方法
US20210021817A1 (en) Hologram streaming machine
US8952970B2 (en) Rendering processing apparatus and method using multiprocessing
JP2020508525A (ja) ストリーミングトランスレーションルックアサイドバッファ
KR102479394B1 (ko) 이종 프로세서 시스템 내 캐시들 간에 데이터 이동
KR20140006143A (ko) 공유된 캐쉬들을 제공하는 방법 및 장치
CN112764668A (zh) 扩展gpu存储器的方法、电子设备和计算机程序产品
US10095408B2 (en) Reducing negative effects of insufficient data throughput for real-time processing
KR101904421B1 (ko) 캐시 메모리를 제어하는 방법 및 장치.
US8803900B2 (en) Synchronization with semaphores in a multi-engine GPU
US20140204108A1 (en) Pixel cache, method of operating pixel cache, and image processing device including pixel cache
US8041903B2 (en) Processor and method for controlling memory
US9519487B2 (en) System-on-chip and method of operating the same
JP2009199367A (ja) 計算機システム、i/oスケジューラ及びi/oスケジューリング方法
CN114298892A (zh) 一种应用于分布式处理单元的高速缓存模块和系统
US8952971B2 (en) Rendering processing apparatus and method using multiprocessing
KR102027172B1 (ko) Roi 기반의 vr 콘텐츠 스트리밍 서버 및 방법
CN111866065A (zh) 渲染图像回传的方法及装置
CN111951365A (zh) 图像渲染处理方法、设备及存储介质
KR102523965B1 (ko) 데이터 저장 장치
CN116860782B (zh) 图形处理器、系统、装置、设备及方法
US20230326431A1 (en) Method and apparatus for implementing target object positioning and display device
CN118035586A (zh) 一种页面渲染方法及装置
JPWO2012098655A1 (ja) データ書き込み制御装置、データ書き込み制御方法及び情報処理装置
JP6565729B2 (ja) 演算処理装置、制御装置、情報処理装置及び情報処理装置の制御方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right