KR20240069323A - 이종 메모리로 구성된 메인 메모리 장치를 포함하는 컴퓨터 시스템 및 그 동작 방법 - Google Patents
이종 메모리로 구성된 메인 메모리 장치를 포함하는 컴퓨터 시스템 및 그 동작 방법 Download PDFInfo
- Publication number
- KR20240069323A KR20240069323A KR1020220150725A KR20220150725A KR20240069323A KR 20240069323 A KR20240069323 A KR 20240069323A KR 1020220150725 A KR1020220150725 A KR 1020220150725A KR 20220150725 A KR20220150725 A KR 20220150725A KR 20240069323 A KR20240069323 A KR 20240069323A
- Authority
- KR
- South Korea
- Prior art keywords
- cache
- memory device
- data
- memory
- source
- Prior art date
Links
- 230000015654 memory Effects 0.000 title claims abstract description 106
- 238000011017 operating method Methods 0.000 title 1
- 238000000034 method Methods 0.000 claims description 30
- 238000010586 diagram Methods 0.000 description 6
- COCAUCFPFHUGAA-MGNBDDOMSA-N n-[3-[(1s,7s)-5-amino-4-thia-6-azabicyclo[5.1.0]oct-5-en-7-yl]-4-fluorophenyl]-5-chloropyridine-2-carboxamide Chemical compound C=1C=C(F)C([C@@]23N=C(SCC[C@@H]2C3)N)=CC=1NC(=O)C1=CC=C(Cl)C=N1 COCAUCFPFHUGAA-MGNBDDOMSA-N 0.000 description 3
- 230000009977 dual effect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/205—Hybrid memory, e.g. using both volatile and non-volatile memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
일 실시예에 의한 컴퓨터 시스템은 프로세서, 제 1 메모리 장치 제 1 메모리 장치와 액세스 레이턴시가 상이한 제 2 메모리 장치, 복수의 캐시 엔트리로 구성되고, 제 1 메모리 장치 또는 제 2 메모리 장치로부터 제공되는 캐싱 데이터를 캐시 엔트리에 저장하는 캐시 메모리 및, 캐싱 데이터를 제공한 출처를 관리하고, 프로세서의 요청 데이터가 캐시 메모리에 존재하지 않음에 따라 요청 데이터를 제 1 메모리 장치 또는 제 2 메모리 장치로부터 리드한 출처별 캐시 미스율과 출처별 캐시 점유율에 기초하여 축출 대상 캐시 엔트리를 결정하도록 구성되는 캐시 컨트롤러를 포함하도록 구성될 수 있다.
Description
본 기술은 컴퓨터 시스템에 관한 것으로, 보다 구체적으로는 이종 메모리로 구성된 메인 메모리 장치를 포함하는 컴퓨터 시스템 및 그 동작 방법에 관한 것이다.
컴퓨터 시스템은 다양한 형태의 메모리 장치를 포함할 수 있다. 메모리 장치는 데이터를 저장하기 위한 메모리와 메모리의 동작을 제어하는 메모리 컨트롤러를 포함한다. 메모리는 DRAM(dynamic random access memory), SRAM(static random access memory) 등과 같은 휘발성 메모리와, EEPROM(Electrically Erasable Programmable ROM), FRAM(Ferroelectric RAM), PCRAM(Phase change Random Access Memory), MRAM(Magnetic RAM), Flash Memory 등과 같은 비휘발성 메모리로 분류된다. 최근에는 휘발성 및 비휘발성 메모리를 포함하는 이종 메모리들이 탑재된 메인 메모리 장치가 개발되고 있다.
컴퓨터 시스템은 프로세서와 메인 메모리 장치 간의 속도 차이에 따른 병목 현상을 줄이기 위해 캐시 메모리를 이용한다. 휘발성 메모리와 비휘발성 메모리는 동작 속도에 차이가 있으므로, 메인 메모리 장치를 구성하는 이종 메모리들의 동작 속도를 고려하여 캐시 메모리에 캐싱할 데이터를 결정할 필요가 있다.
본 기술의 실시예는 캐싱 데이터의 출처별 점유율과 미스 횟수에 따라 캐시 메모리에 유지되거나 축출될 데이터를 관리할 수 있는 이종 메모리로 구성된 메인 메모리 장치를 포함하는 컴퓨터 시스템 및 그 동작 방법을 제공할 수 있다.
본 기술의 일 실시예에 의한 이종 메모리로 구성된 메인 메모리 장치를 포함하는 컴퓨터 시스템은 프로세서; 제 1 메모리 장치; 상기 제 1 메모리 장치와 액세스 레이턴시가 상이한 제 2 메모리 장치; 복수의 캐시 엔트리로 구성되고, 상기 제 1 메모리 장치 또는 상기 제 2 메모리 장치로부터 제공되는 캐싱 데이터를 캐시 엔트리에 저장하는 캐시 메모리; 및 상기 캐싱 데이터를 제공한 출처를 관리하고, 상기 프로세서의 요청 데이터가 상기 캐시 메모리에 존재하지 않음에 따라 상기 요청 데이터를 상기 제 1 메모리 장치 또는 제 2 메모리 장치로부터 리드한 출처별 캐시 미스율과 출처별 캐시 점유율에 기초하여 축출 대상 캐시 엔트리를 결정하도록 구성되는 캐시 컨트롤러;를 포함하도록 구성될 수 있다.
본 기술의 일 실시예에 의한 이종 메모리로 구성된 메인 메모리 장치를 포함하는 컴퓨터 시스템은 제 1 메모리 장치 및 상기 제 2 메모리 장치와 이종인 제 2 메모리 장치를 포함하는 메인 메모리 장치; 복수의 캐시 엔트리를 포함하고, 상기 메인 메모리 장치로부터 제공되는 캐싱 데이터와 상기 캐싱 데이터의 출처를 적어도 하나의 캐시 엔트리에 저장하고, 데이터 액세스 요청에 대응하는 요청 데이터를 출력하는 캐시 메모리; 및 상기 캐시 메모리에 존재하지 않는 상기 요청 데이터가 상기 제 1 메모리 장치 또는 상기 제 2 메모리 장치에서 리드되는 횟수를 상기 요청 데이터가 리드된 출처별로 카운트한 미스 횟수와, 상기 캐싱 데이터의 출처에 따른 캐시 점유율을 비교하여, 상기 캐시 점유율 대비 상기 미스 횟수가 작은 출처의 상기 메인 메모리 장치로부터 제공된 상기 캐싱 데이터를 상기 캐시 메모리로부터 축출하는 캐시 컨트롤러;를 포함하도록 구성될 수 있다.
본 기술의 일 실시예에 의한 이종 메모리로 구성된 메인 메모리 장치를 포함하는 컴퓨터 시스템의 동작 방법은 캐시 메모리를 제어하는 캐시 컨트롤러를 포함하는 컴퓨터 시스템의 동작 방법으로서, 캐시 컨트롤러가, 제 1 메모리 장치 또는 상기 제 1 메모리 장치와 이종인 제 2 메모리 장치로부터 제공되는 캐싱 데이터와 상기 캐싱 데이터의 출처를 복수의 캐시 엔트리 중 적어도 하나에 저장하는 단계; 프로세서의 요청 데이터가 상기 캐시 메모리에 존재하지 않음에 따라 상기 요청 데이터를 상기 제 1 메모리 장치 또는 제 2 메모리 장치로부터 리드하는 단계; 및 상기 리드한 데이터를 캐싱할 빈 캐시 엔트리가 존재하지 않는 경우, 상기 요청 데이터가 리드된 출처별 캐시 미스율과, 상기 캐싱 데이터의 출처별 캐시 점유율에 기초하여 축출 대상 캐시 엔트리를 결정하는 단계;를 포함하도록 구성될 수 있다.
본 기술에 의하면 이종 메모리로 구성된 메인 메모리 장치로부터 캐시 메모리에 캐싱될 데이터를 효율적으로 선택할 수 있다.
도 1은 일 실시예에 의한 이종 메모리로 구성된 메인 메모리 장치를 포함하는 컴퓨터 시스템의 구성도이다.
도 2는 일 실시예에 의한 캐시 엔트리를 설명하기 위한 도면이다.
도 3은 일 실시예에 의한 캐시 컨트롤러의 구성도이다.
도 4는 일 실시예에 의한 컴퓨터 시스템의 동작 방법을 설명하기 위한 흐름도이다.
도 5는 일 실시예에 의한 컴퓨터 시스템의 동작 방법을 설명하기 위한 흐름도이다.
도 2는 일 실시예에 의한 캐시 엔트리를 설명하기 위한 도면이다.
도 3은 일 실시예에 의한 캐시 컨트롤러의 구성도이다.
도 4는 일 실시예에 의한 컴퓨터 시스템의 동작 방법을 설명하기 위한 흐름도이다.
도 5는 일 실시예에 의한 컴퓨터 시스템의 동작 방법을 설명하기 위한 흐름도이다.
이하, 첨부된 도면을 참조하여 본 기술의 실시예를 보다 구체적으로 설명한다.
도 1은 일 실시예에 의한 이종 메모리로 구성된 메인 메모리 장치를 포함하는 컴퓨터 시스템의 구성도이다.
도 1을 참조하면, 일 실시예에 의한 컴퓨터 시스템(10)은 시스템 버스를 통해 전기적으로 연결되는 프로세서(100), 캐시 컨트롤러(110), 캐시 메모리(120), 메모리 컨트롤러(130) 및 메인 메모리 장치(140)를 포함할 수 있다. 도시하지 않았지만 프로세서(100)의 내부에도 별도의 캐시 메모리가 구비될 수 있다.
프로세서(100)는 상업적으로 이용할 수 있는 다양한 프로세서일 수 있으며, 듀얼 마이크로프로세서, 멀티-코어 프로세서, 그리고 기타 멀티-프로세스 아키텍처가 프로세서(100)로 채택될 수 있다.
프로세서(100)는 캐시 컨트롤러(110)를 통해 캐시 메모리(120)에 액세스하거나, 메모리 컨트롤러(130)를 통해 메인 메모리 장치(140)에 액세스할 수 있다. 예를 들어, 프로세서(100)는 클럭 신호 발생기(미도시)로부터 출력된 클럭 신호에 응답하여 메인 메모리 장치(140)에 저장된 프로그램들 및/또는 데이터를 처리 또는 실행할 수 있다.
메인 메모리 장치(140)는 제 1 메모리 장치(141) 및 제 2 메모리 장치(143)를 포함할 수 있다. 제 1 메모리 장치(141) 및 제 2 메모리 장치(143)는 구조가 다르고 액세스 레이턴시가 다른 이종 메모리일 수 있다. 예를 들어 제 1 메모리 장치(141)는 휘발성 메모리(Volatile Memory, VM)를 포함할 수 있고 제 2 메모리 장치(143)는 비휘발성 메모리(Non-Volatile Memory, NVM)를 포함할 수 있다. 예시적으로, 휘발성 메모리는 DRAM(dynamic random access memory)이고, 비휘발성 메모리는 PCRAM(phase change RAM)일 수 있으나, 이에 한정되는 것은 아니다.
메모리 컨트롤러(130)는 프로세서(100)로부터 수신된 명령에 대응하는 동작을 수행하도록 메인 메모리 장치(140)를 제어할 수 있다. 메인 메모리 장치(140)는 메모리 컨트롤러(130)로부터 제공된 명령에 따라 메모리 셀 어레이(도시하지 않음)에 데이터를 쓰거나 또는, 메모리 셀 어레이로부터 데이터를 읽는 동작을 수행할 수 있다. 일 실시예에서, 메모리 컨트롤러(130)는 프로세서(100)의 액세싱이 빈번한 데이터(예컨대, 핫 데이터)는 제 1 메모리 장치(141)에 저장하고, 액세싱이 빈번하지 않은 데이터(예컨대, 콜드 데이터)는 제 2 메모리 장치(143)에 저장할 수 있다.
캐시 메모리(120)는 속도가 빠른 장치와 느린 장치 사이에서 속도 차이에 따른 병목 현상을 줄이기 위한 범용 메모리를 지칭한다. 즉, 캐시 메모리(120)는 고속 동작하는 프로세서(100)와 상대적으로 저속 동작하는 메인 메모리 장치(140) 사이의 데이터 병목 현상을 완화하는 역할을 한다. 캐시 메모리(120)는 메인 메모리 장치(140)에 저장된 데이터 중 프로세서(100)가 자주 액세스하는 데이터를 캐싱할 수 있다.
도시하지 않았지만, 캐시 메모리(120)는 동작 속도 및 프로세서(100)와의 물리적인 거리에 따라 복수 레벨로 구성될 수 있다. 일반적으로, 제 1 레벨(L1) 캐시는 프로세서(100) 내에 내장되어 데이터 참조 및 사용을 위해 가장 먼저 사용될 수 있다. L1 캐시는 캐시들 중 가장 속도가 빠른 반면, 저장 용량은 작을 수 있다. L1 캐시에 데이터가 존재하지 않으면(예컨대, 캐시 미스), 프로세서(100)는 제 2 레벨(L2) 캐시를 액세스할 수 있다. L2 캐시는 L1 캐시보다 상대적으로 속도는 느린 반면, 저장 용량은 클 수 있다. L2 캐시에도 데이터가 존재하지 않으면, 프로세서(100)는 그 하위 레벨 캐시를 액세스할 수 있다. 마지막 레벨 캐시(Last Level Cache; LLC)에도 데이터가 존재하지 않으면, 프로세서(100)는 메인 메모리 장치(140)를 액세스한다.
캐시 메모리(120)가 복수 레벨로 구성되는 경우, LLC는 메인 메모리 장치(140)로부터 제공되는 데이터를 캐싱할 수 있고, LLC의 상위 레벨 캐시들은 자신의 하위 레벨 캐시로부터 제공되는 데이터를 캐싱할 수 있으나, 이에 한정되는 것은 아니다.
캐시 컨트롤러(110)는 캐시 메모리(120)의 전반적인 동작을 제어한다. 즉, 메인 메모리 장치(140)에 저장되어 있는 데이터 중에서 어떠한 데이터를 캐시 메모리(120)에 저장할 것인지, 캐시 메모리(120)가 가득 차서 데이터 교체가 필요한 경우 어떠한 데이터를 교체할 것인지, 프로세서(100)로부터 요청되는 데이터가 캐시 메모리(120)에 존재하는지를 판단하기 위한 내부 알고리즘 및 이를 처리 하기 위한 하드웨어를 포함한다. 이를 위하여, 캐시 컨트롤러(210)는 캐싱된 데이터와 메인 메모리 장치(140)에 저장된 데이터와의 연관 관계를 나타내는 매핑 테이블(mapping table) 등을 사용할 수 있다.
일 실시예에서, 캐시 컨트롤러(110)는 메인 메모리 장치(140)로부터 캐시 메모리(120)에 캐싱되는 데이터의 출처가 제 1 메모리 장치(141)인지 제 2 메모리 장치(143)인지 관리할 수 있다.
도 2는 일 실시예에 의한 캐시 엔트리를 설명하기 위한 도면이다.
도 2를 참조하면, 일 실시예에 의한 캐시 메모리(120)는 복수의 캐시 엔트리(Entry 0, Entry 1, Entry 2, …)로 구분될 수 있다. 각 캐시 엔트리(Entry 0, Entry 1, Entry 2, …)는 유효성 비트(Valid), 태그 비트(Tag), 데이터 블록(Data) 및 플래그 비트(Flag)를 포함할 수 있다.
유효성 비트(Valid)는 해당 캐시 엔트리의 데이터 블록에 유효한 블록이 저장되어 있는지의 여부를 판별하기 위해 참조될 수 있다.
태그 비트(Tag)는 해당 엔트리에 저장된 데이터의 실제 어드레스 즉, 메인 메모리 장치(140) 내 물리 어드레스에 대응하는 정보를 나타낼 수 있다.
데이터 블록(Data)에는 메인 메모리 장치(140)로부터 전송되는 데이터가 캐싱될 수 있다.
플래그 비트(Flag)는 데이터 블록(Data)에 저장된 데이터의 출처 즉, 캐싱 데이터가 제 1 메모리 장치(141)로부터 제공되었는지 또는 제 2 메모리 장치(143)로부터 제공되었는지 구분할 수 있는 정보를 나타낼 수 있다.
프로세서(100)의 데이터 요청은 액세스 어드레스를 포함할 수 있고, 캐시 컨트롤러(110)는 액세스 어드레스와 태그 비트(Tag)를 비교하여 요청 데이터가 캐시 메모리(120)에 존재하는지 판단할 수 있다.
요청 데이터가 캐시 메모리(120)에 존재하는 캐시 히트의 경우, 요청 데이터가 캐시 메모리(120)로부터 프로세서(100)로 제공된다.
요청 데이터가 캐시 메모리(120)에 존재하지 않는 캐시 미스의 경우, 캐시 컨트롤러(110)는 요청 데이터가 저장된 메인 메모리 장치(140)의 종류에 따라 미스 횟수를 카운트하고 데이터 요청을 메모리 컨트롤러(130)에 전송할 수 있다. 메모리 컨트롤러(130)는 데이터 요청에 포함된 액세스 어드레스에 따라 제 1 메모리 장치(141) 또는 제 2 메모리 장치(143)로부터 데이터를 리드하여 캐시 메모리(120)에 제공한다.
캐시 컨트롤러(110)는 캐시 메모리(120) 내에 비어 있는 캐시 엔트리가 존재하는 경우, 제 1 메모리 장치(141) 또는 제 2 메모리 장치(143)로부터 제공된 데이터를 비어 있는 캐시 엔트리 중 적어도 하나에 캐싱하고, 캐싱 데이터의 출처에 따라 플래그 비트(Flag)를 설정할 수 있다. 캐시 컨트롤러(110)는 캐시 메모리(120) 내에 비어 있는 캐시 엔트리가 존재하지 않는 경우 희생 캐시 엔트리를 결정하여, 희생 캐시 엔트리에 요청 데이터를 저장하고 플래그(Flag)를 설정하는 캐시 교체 동작을 수행할 수 있다.
희생 캐시 엔트리를 결정하기 위하여, 캐시 컨트롤러(110)는 캐시 미스에 의해 요청 데이터를 제 1 메모리 장치(141) 또는 제 2 메모리 장치(13)에서 리드한 횟수인 출처별 캐시 미스율과, 캐싱 데이터의 출처별 캐시 점유율을 참조할 수 있다.
캐시 미스에 의해 프로세서(100)의 요청 데이터를 메인 메모리 장치(140)로부터 리드하는 경우 캐시 컨트롤러(110)는 캐시 미스인 데이터를 제 1 메모리 장치(141)로부터 리드한 제 1 미스 횟수 및, 캐시 미스인 데이터를 제 2 메모리 장치(143)로부터 리드한 제 2 미스 횟수에 기초하여 출처별 캐시 미스율을 산출할 수 있다.
예를 들어, 캐시 미스인 요청 데이터를 제 1 메모리 장치(141)로부터 리드한 횟수인 제 1 미스 횟수가 10회이고, 제 2 메모리 장치(143)로부터 리드한 횟수인 제 2 미스 횟수가 20회인 경우를 가정한다. 이 때, 출처가 제 1 메모리 장치(141)인 요청 데이터의 캐시 미스율은 제 2 미스 횟수를 기준으로 10/20=1/2로 계산될 수 있다. 다른 실시예에서, 출처가 제 1 메모리 장치(141)인 요청 데이터의 캐시 미스율은 전체 미스 횟수(제 1 미스 횟수+제 2 미스 횟수=30)를 기준으로 10/30=1/3로 계산될 수 있다.
각 캐시 엔트리(Entry 0, Entry 1, Entry 2, …)마다 캐싱 데이터의 출처를 나타내는 플래그 비트(Flag)를 부여되므로, 캐시 컨트롤러(110)는 캐시 메모리(120)에 저장된 캐싱 데이터의 출처별 캐시 점유율을 산출할 수 있다. 예를 들어, 7개의 캐시 엔트리에 데이터가 캐싱되어 있고, 이 중 5개의 캐시 엔트리에는 제 1 메모리 장치(141)로부터 제공된 데이터가, 2개의 캐시 엔트리에는 제 2 메모리 장치(143)로부터 제공된 데이터가 캐싱된 상황을 가정한다. 이 때, 출처가 제 1 메모리 장치(141)인 캐싱 데이터의 점유율은 출처가 제 2 메모리 장치(143)인 캐싱 데이터의 개수를 기준으로 5/2=2.5로 계산될 수 있다. 다른 실시예에서, 출처가 제 1 메모리 장치(141)인 캐싱 데이터의 점유율은 전체 캐시 엔트리의 개수(n+1)를 기준으로 5/(n+1)로 계산될 수 있다.
캐시 컨트롤러(100)는 출처가 제 1 메모리 장치(141)인 요청 데이터의 캐시 미스율(예를 들어, 1/2)이 출처가 제 1 메모리 장치(141)인 캐싱 데이터의 캐시 점유율보다 작은 경우(5/2), 출처가 제 1 메모리 장치(141)인 데이터의 캐시 점유율 대비 캐시 미스가 적게 발생하고 있는 것으로, 다른 관점에서는 출처가 제 2 메모리 장치(143)인 데이터의 캐시 미스가 많이 발생하고 있는 것으로 판단할 수 있다. 이에 따라, 출처가 제 1 메모리 장치(141)인 캐싱 데이터를 캐시 메모리(120)로부터 축출할 것으로 결정할 수 있다. 그리고, 출처가 제 1 메모리 장치(141)인 캐시 엔트리 중 적어도 하나의 캐시 엔트리를 희생 엔트리로 선택할 수 있다. 희생 엔트리를 선택하기 위하여 예를 들어 LRU(Least Recently Used) 방식을 이용할 수 있으나, 이에 한정되지 않으며, 랜덤 방식, FIFO(First In First Out) 방식, LFU(Least Frequency Used) 방식 등 다양한 방식이 이용될 수 있다.
한편, 제 1 메모리 장치(141)에 저장된 데이터에 대한 캐시 미스율이 제 1 메모리 장치(141)에 저장된 데이터에 대한 캐시 점유율보다 큰 경우에는 제 1 메모리 장치(141)에 저장된 데이터에 대한 미스율이 높은 것으로 판단하여, 출처가 제 2 메모리 장치(143)인 캐싱 데이터를 캐시 메모리(120)로부터 축출할 수 있다.
제 1 메모리 장치(141)에 대한 캐시 미스율과 캐시 점유율이 동일한 경우에는, 캐싱 데이터의 출처를 고려하지 않고 희생 엔트리를 결정할 수 있다.
도 3은 일 실시예에 의한 캐시 컨트롤러의 구성도이다.
도 3을 참조하면, 일 실시예에 의한 캐시 컨트롤러(110)는 히트/미스 판단 회로(111), 미스 횟수 관리 회로(113), 점유율 관리 회로(115), 희생 엔트리 결정 회로(117) 및 캐싱 처리 회로(119)를 포함할 수 있다.
히트/미스 판단 회로(111)는 프로세서(100)의 데이터 요청에 포함된 액세스 어드레스와 캐시 엔트리의 태그 비트를 비교하여 요청 데이터가 캐시 메모리(120)에 존재하는지 판단할 수 있다. 히트/미스 판단 회로(111)는 요청 데이터가 캐시 메모리(120)에 존재하면 캐시 히트 신호를 출력할 수 있다. 요청 데이터가 캐시 메모리(120)에 존재하지 않으면 캐시 미스 신호를 출력하고, 메모리 컨트롤러(130)로 데이터 요청을 전송할 수 있다.
캐시 미스인 경우 미스 횟수 관리 회로(113)는 요청 데이터가 저장된 메인 메모리 장치(140)의 종류에 따라 미스 횟수를 카운트하고, 출처별 캐시 미스율을 계산할 수 있다. 출처별 캐시 미스율은 캐시 미스에 의해 요청 데이터를 제 2 메모리 장치(143)에서 리드한 횟수에 대한 제 1 메모리 장치(141)에서 리드한 횟수 또는 그 역수, 또는 전체 캐시 미스 횟수에 대한 요청 데이터를 제 1 또는 제 2 메모리 장치(141, 143)에서 리드한 횟수 등으로 결정될 수 있다.
점유율 관리 회로(115)는 캐시 메모리(120)에 저장된 캐싱 데이터의 출처별 캐시 점유율을 산출할 수 있다. 출처별 캐시 점유율은 출처가 제 2 메모리 장치(143)인 캐싱 데이터에 대한 출처가 제 1 메모리 장치(141)인 캐싱 데이터의 비율 또는 그 역수, 또는 전체 캐싱 데이터에 대한 출처가 제 1 또는 제 2 메모리 장치(141, 143)인 캐싱 데이터의 비율로 결정될 수 있다.
희생 엔트리 결정 회로(117)는 캐시 미스에 따라 메인 메모리 장치(140)에서 리드한 데이터를 저장할 빈 캐시 엔트리가 존재하지 않는 경우 축출할 캐시 엔트리를 결정하도록 구성될 수 있다. 희생 캐시 엔트리를 결정하기 위하여, 희생 엔트리 결정 회로(117)는 출처별 캐시 미스율과, 출처별 캐시 점유율을 참조할 수 있다.
일 실시예에서, 희생 엔트리 결정 회로(117)는 출처가 제 1 메모리 장치(141)인 요청 데이터의 캐시 미스율이 출처가 제 1 메모리 장치(141)인 캐싱 데이터의 캐시 점유율보다 작은 경우, 출처가 제 1 메모리 장치(141)인 데이터의 캐시 점유율 대비 캐시 미스가 적게 발생하고 있는 것으로, 다른 관점에서는 출처가 제 2 메모리 장치(143)인 데이터의 캐시 미스가 많이 발생하고 있는 것으로 판단할 수 있다. 이에 따라, 희생 엔트리 결정 회로(117)는 출처가 제 1 메모리 장치(141)인 캐싱 데이터를 캐시 메모리(120)로부터 축출할 것으로 결정할 수 있다. 그리고, 출처가 제 1 메모리 장치(141)인 캐시 엔트리 중 적어도 하나의 캐시 엔트리를 희생 엔트리로 선택할 수 있다. 희생 엔트리를 선택하기 위하여 예를 들어 LRU(Least Recently Used) 방식을 이용할 수 있으나, 이에 한정되지 않으며, 랜덤 방식, FIFO(First In First Out) 방식, LFU(Least Frequency Used) 방식 등 다양한 방식이 이용될 수 있다.
캐싱 처리 회로(119)는 캐시 메모리(120) 내의 빈 캐시 엔트리 또는 희생 캐시 엔트리에 메인 메모리 장치(141)로부터 제공되는 데이터를 캐싱하고, 캐싱 데이터의 출처에 따라 플래그 비트(Flag)를 설정할 수 있다.
도 4는 일 실시예에 의한 컴퓨터 시스템의 동작 방법을 설명하기 위한 흐름도이다.
캐시 컨트롤러(110)는 대기 중에, 프로세서(100)로부터 데이터 액세스 요청이 수신되는지 확인할 수 있다(S101). 데이터 액세스 요청이 수신되지 않은 경우 대기 상태를 유지할 수 있다(S101:N).
데이터 액세스 요청이 수신되는 경우(S101:Y), 캐시 컨트롤러(110)는 프로세서(100)의 데이터 액세스 요청에 대응하는 데이터가 캐시 메모리(120)에 존재하는지, 즉 캐시 히트인지 확인할 수 있다(S103). 예를 들어, 캐시 컨트롤러(110)는 데이터 액세스 요청에 포함된 액세스 어드레스와 캐시 엔트리의 태그 비트를 비교하여 요청 데이터가 캐시 메모리(120)에 존재하는지 판단할 수 있다.
요청 데이터가 캐시 메모리(120)에 존재하는 캐시 히트 인 경우(S103:Y), 캐시 컨트롤러(110)는 캐시 메모리(120)에서 요청 데이터를 리드하여 프로세서(100)로 제공할 수 있다(S117).
요청 데이터가 캐시 메모리(120)에 존재하지 않는 캐시 미스인 경우(S103:N), 캐시 컨트롤러(110)는 요청 데이터가 저장된 메인 메모리 장치(140)의 종류에 따라 미스 횟수를 카운트할 수 있다(S105). 그리고, 캐시 컨트롤러(110)는 캐시 미스에 따라 메인 메모리 장치(140)로부터 리드되는 데이터를 캐싱할 수 있는 비어 있는 캐시 엔트리가 존재하는지 확인할 수 있다(S107).
빈 캐시 엔트리가 존재하지 않는 경우(S107:N), 캐시 컨트롤러(110)는 요청 데이터를 저장하기 위한 희생 캐시 엔트리를 결정할 수 있다(S109). 희생 캐시 엔트리를 결정하기 위하여, 캐시 컨트롤러(110)는 출처별 캐시 미스율과, 출처별 캐시 점유율을 참조할 수 있으며, 구체적인 설명은 도 5를 참조하여 후술할 것이다.
희생 캐시 엔트리가 결정된 후, 또는 빈 캐시 엔트리가 존재하는 경우(S107:Y), 캐시 컨트롤러(110)는 메인 메모리 장치(141)로부터 요청 데이터를 수신하고(S111), 수신된 요청 데이터를 희생 캐시 엔트리 또는 빈 캐시 엔트리에 캐싱하는 한편, 캐싱 데이터의 출처에 따라 플래그 비트(Flag)를 설정할 수 있다(S113).
새로운 데이터가 캐시 엔트리에 저장됨에 따라, 캐시 컨트롤러(110)는 출처별 캐시 점유율을 갱신한다(S115). 그리고, 요청 데이터를 프로세서(100)로 전송한 후(S117) 대기할 수 있다.
도 5는 일 실시예에 의한 컴퓨터 시스템의 동작 방법을 설명하기 위한 흐름도이다.
도 5는 도 4에 도시한 희생 캐시 엔트리 결정 과정(S109)의 일 예를 나타낸다.
도 5를 참조하면, 캐시 컨트롤러(110)는 출처별 캐시 미스율을 계산할 수 있다(S201). 출처별 캐시 미스율은 캐시 미스에 의해 요청 데이터를 제 2 메모리 장치(143)에서 리드한 횟수에 대한 제 1 메모리 장치(141)에서 리드한 횟수 또는 그 역수, 또는 전체 캐시 미스 횟수에 대한 요청 데이터를 제 1 또는 제 2 메모리 장치(141, 143)에서 리드한 횟수 등으로 결정될 수 있다.
캐시 컨트롤러(110)는 캐시 메모리(120)에 저장된 캐싱 데이터의 출처별 캐시 점유율을 산출할 수 있다(S203). 출처별 캐시 점유율은 출처가 제 2 메모리 장치(143)인 캐싱 데이터에 대한 출처가 제 1 메모리 장치(141)인 캐싱 데이터의 비율 또는 그 역수, 또는 전체 캐싱 데이터에 대한 출처가 제 1 또는 제 2 메모리 장치(141, 143)인 캐싱 데이터의 비율로 결정될 수 있다.
캐시 컨트롤러(110)는 출처별 캐시 미스율과, 출처별 캐시 점유율을 참조하여 축출 대상 캐시 엔트리의 출처를 결정할 수 있다(S205). 일 실시예에서, 캐시 컨트롤러(110)는 요청 데이터 또는 캐싱 데이터의 출처별로, 캐시 미스율과 캐시 점유율을 비교하여 축출 대상 캐시 엔트리의 출처를 결정할 수 있다.
예를 들어, 출처가 제 1 메모리 장치(141)인 요청 데이터의 캐시 미스율이 출처가 제 1 메모리 장치(141)인 캐싱 데이터의 캐시 점유율보다 작은 경우, 출처가 제 1 메모리 장치(141)인 데이터의 캐시 점유율에 비해 캐시 미스가 적게 발생하여 출처가 제 2 메모리 장치(143)인 데이터의 캐시 미스가 많이 발생하고 있는 것으로 판단할 수 있다. 따라서, 캐시 컨트롤러(110)는 출처가 제 1 메모리 장치(141)인 캐싱 데이터를 캐시 메모리(120)로부터 축출할 것으로 결정할 수 있다.
축출 대상 캐시 엔트리의 출처가 결정되면, 캐시 컨트롤러(110)는 결정된 출처를 갖는 캐시 엔트리 중 적어도 하나의 캐시 엔트리를 희생 엔트리로 선택할 수 있다(S207). 희생 엔트리를 선택하기 위하여 예를 들어 LRU(Least Recently Used) 방식을 이용할 수 있으나, 이에 한정되지 않으며, 랜덤 방식, FIFO(First In First Out) 방식, LFU(Least Frequency Used) 방식 등 다양한 방식이 이용될 수 있다. 예를 들어, 제 1 메모리 장치(141)로부터 캐시 메모리(120)에 캐싱된 데이터 중 가장 오랫동안 접근되지 않은 캐시 엔트리를 희생 캐시 엔트리로 선택할 수 있다.
따라서, 캐시 미스가 빈번한 메인 메모리 장치로부터의 데이터의 캐시 점유율을 높여 캐시 적중률을 증가시킬 수 있고 시스템 성능이 향상될 수 있다.
본 발명이 속하는 기술분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
10 : 컴퓨터 시스템
100 : 프로세서
110 : 캐시 컨트롤러
120 : 캐시 메모리
130 : 메모리 컨트롤러
140 : 메인 메모리
100 : 프로세서
110 : 캐시 컨트롤러
120 : 캐시 메모리
130 : 메모리 컨트롤러
140 : 메인 메모리
Claims (11)
- 프로세서;
제 1 메모리 장치;
상기 제 1 메모리 장치와 액세스 레이턴시가 상이한 제 2 메모리 장치;
복수의 캐시 엔트리로 구성되고, 상기 제 1 메모리 장치 또는 상기 제 2 메모리 장치로부터 제공되는 캐싱 데이터를 캐시 엔트리에 저장하는 캐시 메모리; 및
상기 캐싱 데이터를 제공한 출처를 관리하고, 상기 프로세서의 요청 데이터가 상기 캐시 메모리에 존재하지 않음에 따라 상기 요청 데이터를 상기 제 1 메모리 장치 또는 제 2 메모리 장치로부터 리드한 출처별 캐시 미스율과 출처별 캐시 점유율에 기초하여 축출 대상 캐시 엔트리를 결정하도록 구성되는 캐시 컨트롤러;
를 포함하도록 구성되는 컴퓨터 시스템. - 제 1 항에 있어서,
상기 캐시 컨트롤러는,
상기 요청 데이터를 상기 제 1 메모리 장치로부터 리드한 제 1 미스 횟수와 상기 요청 데이터를 상기 제 2 메모리 장치로부터 리드한 제 2 미스 횟수에 기초하여 상기 출처별 캐시 미스율을 결정하도록 구성되는 컴퓨터 시스템. - 제 1 항에 있어서,
상기 캐시 컨트롤러는
상기 제 1 메모리 장치에 저장된 데이터에 대한 캐시 미스율이 상기 제 1 메모리 장치에 저장된 데이터에 대한 캐시 점유율보다 작은 경우, 출처가 상기 제 1 메모리 장치인 캐시 엔트리 중 적어도 하나를 상기 캐시 메모리로부터 축출하도록 구성되는 컴퓨터 시스템. - 제 1 항에 있어서,
상기 캐시 컨트롤러는,
상기 제 1 메모리 장치 또는 상기 제 2 메모리 장치에 저장된 데이터에 대한 캐시 미스율과 캐시 점유율이 동일한 경우, 출처와 무관한 적어도 하나의 캐시 엔트리를 상기 캐시 메모리로부터 축출하도록 구성되는 컴퓨터 시스템. - 제 1 메모리 장치 및 상기 제 2 메모리 장치와 이종인 제 2 메모리 장치를 포함하는 메인 메모리 장치;
복수의 캐시 엔트리를 포함하고, 상기 메인 메모리 장치로부터 제공되는 캐싱 데이터와 상기 캐싱 데이터의 출처를 적어도 하나의 캐시 엔트리에 저장하고, 데이터 액세스 요청에 대응하는 요청 데이터를 출력하는 캐시 메모리; 및
상기 캐시 메모리에 존재하지 않는 상기 요청 데이터가 상기 제 1 메모리 장치 또는 상기 제 2 메모리 장치에서 리드되는 횟수를 상기 요청 데이터가 리드된 출처별로 카운트한 미스 횟수와, 상기 캐싱 데이터의 출처에 따른 캐시 점유율을 비교하여, 상기 캐시 점유율 대비 상기 미스 횟수가 작은 출처의 상기 메인 메모리 장치로부터 제공된 상기 캐싱 데이터를 상기 캐시 메모리로부터 축출하는 캐시 컨트롤러;
를 포함하도록 구성되는 컴퓨터 시스템. - 제 5 항에 있어서,
상기 캐시 메모리는 복수 레벨로 구성되는 컴퓨터 시스템. - 제 5 항에 있어서,
상기 제 1 메모리 장치와 상기 제 2 메모리 장치는 액세스 레이턴시가 상이한 컴퓨터 시스템. - 캐시 메모리를 제어하는 캐시 컨트롤러를 포함하는 컴퓨터 시스템의 동작 방법으로서,
캐시 컨트롤러가, 제 1 메모리 장치 또는 상기 제 1 메모리 장치와 이종인 제 2 메모리 장치로부터 제공되는 캐싱 데이터와 상기 캐싱 데이터의 출처를 복수의 캐시 엔트리 중 적어도 하나에 저장하는 단계;
프로세서의 요청 데이터가 상기 캐시 메모리에 존재하지 않음에 따라 상기 요청 데이터를 상기 제 1 메모리 장치 또는 제 2 메모리 장치로부터 리드하는 단계; 및
상기 리드한 데이터를 캐싱할 빈 캐시 엔트리가 존재하지 않는 경우, 상기 요청 데이터가 리드된 출처별 캐시 미스율과, 상기 캐싱 데이터의 출처별 캐시 점유율에 기초하여 축출 대상 캐시 엔트리를 결정하는 단계;
를 포함하도록 구성되는 컴퓨터 시스템의 동작 방법. - 제 8 항에 있어서,
상기 축출 대상 캐시 엔트리를 결정하는 단계는,
상기 요청 데이터를 상기 제 1 메모리 장치로부터 리드한 제 1 미스 횟수와 상기 요청 데이터를 상기 제 2 메모리 장치로부터 리드한 제 2 미스 횟수에 기초하여 상기 출처별 캐시 미스율을 결정하는 단계를 포함하도록 구성되는 컴퓨터 시스템의 동작 방법. - 제 8 항에 있어서,
상기 축출 대상 캐시 엔트리를 결정하는 단계는,
상기 제 1 메모리 장치에 저장된 데이터에 대한 캐시 미스율이 상기 제 1 메모리 장치에 저장된 데이터에 대한 캐시 점유율보다 작은 경우, 출처가 상기 제 1 메모리 장치인 캐시 엔트리 중 적어도 하나를 상기 캐시 메모리로부터 축출하는 단계를 포함하도록 구성되는 컴퓨터 시스템의 동작 방법. - 제 8 항에 있어서,
상기 축출 대상 캐시 엔트리를 결정하는 단계는,
상기 제 1 메모리 장치 또는 상기 제 2 메모리 장치에 저장된 데이터에 대한 캐시 미스율과 캐시 점유율이 동일한 경우, 출처와 무관한 적어도 하나의 캐시 엔트리를 상기 캐시 메모리로부터 축출하는 단계를 포함하도록 구성되는 컴퓨터 시스템의 동작 방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220150725A KR20240069323A (ko) | 2022-11-11 | 2022-11-11 | 이종 메모리로 구성된 메인 메모리 장치를 포함하는 컴퓨터 시스템 및 그 동작 방법 |
US18/311,896 US20240160574A1 (en) | 2022-11-11 | 2023-05-04 | Computer system including a main memory device with heterogeneous memories and method of operating the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220150725A KR20240069323A (ko) | 2022-11-11 | 2022-11-11 | 이종 메모리로 구성된 메인 메모리 장치를 포함하는 컴퓨터 시스템 및 그 동작 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20240069323A true KR20240069323A (ko) | 2024-05-20 |
Family
ID=91028025
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220150725A KR20240069323A (ko) | 2022-11-11 | 2022-11-11 | 이종 메모리로 구성된 메인 메모리 장치를 포함하는 컴퓨터 시스템 및 그 동작 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20240160574A1 (ko) |
KR (1) | KR20240069323A (ko) |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8417891B2 (en) * | 2008-12-15 | 2013-04-09 | Intel Corporation | Shared cache memories for multi-core processors |
-
2022
- 2022-11-11 KR KR1020220150725A patent/KR20240069323A/ko unknown
-
2023
- 2023-05-04 US US18/311,896 patent/US20240160574A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20240160574A1 (en) | 2024-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7757045B2 (en) | Synchronizing recency information in an inclusive cache hierarchy | |
US10019369B2 (en) | Apparatuses and methods for pre-fetching and write-back for a segmented cache memory | |
US20170235681A1 (en) | Memory system and control method of the same | |
US8473689B2 (en) | Predictive sequential prefetching for data caching | |
US8612692B2 (en) | Variable write back timing to nonvolatile semiconductor memory | |
JP5536658B2 (ja) | バッファメモリ装置、メモリシステム及びデータ転送方法 | |
US10725923B1 (en) | Cache access detection and prediction | |
US7577793B2 (en) | Patrol snooping for higher level cache eviction candidate identification | |
EP0470734A1 (en) | Cache memory management system | |
CN111344684A (zh) | 多层缓存安置机制 | |
US10929308B2 (en) | Performing maintenance operations | |
US20030061450A1 (en) | List based method and apparatus for selective and rapid cache flushes | |
WO2005015408A1 (en) | A method of data caching | |
US20100217937A1 (en) | Data processing apparatus and method | |
US10120806B2 (en) | Multi-level system memory with near memory scrubbing based on predicted far memory idle time | |
US20170168957A1 (en) | Aware Cache Replacement Policy | |
US20180113815A1 (en) | Cache entry replacement based on penalty of memory access | |
US6959363B2 (en) | Cache memory operation | |
EP4078387A1 (en) | Cache management based on access type priority | |
WO2010032433A1 (ja) | バッファメモリ装置、メモリシステム及びデータ読出方法 | |
US10831673B2 (en) | Memory address translation | |
US20190243778A1 (en) | Memory address translation | |
KR20240069323A (ko) | 이종 메모리로 구성된 메인 메모리 장치를 포함하는 컴퓨터 시스템 및 그 동작 방법 | |
KR101976320B1 (ko) | 라스트 레벨 캐시 메모리 및 이의 데이터 관리 방법 | |
US7143239B2 (en) | Cache structure and methodology |