1 |
1
메인 메모리로부터 데이터를 페치하여 캐시 블록 단위로 저장하는 캐시 메모리 모듈; 상기 캐시 메모리 모듈에서 축출되는 캐시 블록들을 임시 저장하는 빅팀 버퍼; 상기 빅팀 버퍼에 누적 저장된 상기 캐시 블록들의 용량이 기지정된 기준 용량 이상이면, 상기 캐시 블록들을 각각 적어도 하나의 캐시 블록을 포함하는 k개의 클러스터로 KM 클러스터링하고, 클러스터링된 k개의 클러스터 중 다수의 캐시 블록을 포함하는 적어도 하나의 클러스터를 선택하는 KM 클러스터링 엔진; 및 상기 KM 클러스터링 엔진에서 선택된 적어도 하나의 클러스터를 각각 클러스터 그룹으로서 인가받아 저장하는 KM 버퍼; 를 포함하는 라스트 레벨 캐시 메모리
|
2 |
2
제1 항에 있어서, 상기 KM 클러스터링 엔진은 상기 캐시 블록 각각의 메모리 주소를 유사도 평가 지표로 이용하여, 상기 k 개의 클러스터로 클러스터링하는 것을 특징으로 하는 라스트 레벨 캐시 메모리
|
3 |
3
제1 항에 있어서, 상기 KM 클러스터링 엔진은 각각에 포함된 캐시 블록의 개수에 따라 상기 k개의 클러스터를 정렬하고, 정렬된 상기 k개의 클러스터 중 캐시 블록이 많은 기설정된 개수의 클러스터를 선택하는 것을 특징으로 하는 라스트 레벨 캐시 메모리
|
4 |
4
제1 항에 있어서, 상기 캐시 메모리 모듈은 N(여기서 N은 자연수)개의 캐시 블록(cache block)에 대해 세트(set)로 인덱스가 할당되는 N way 세트 연관 캐시인 것을 특징으로 하는 라스트 레벨 캐시 메모리
|
5 |
5
제4 항에 있어서, 상기 캐시 메모리 모듈은 상기 N개의 캐시 블록 중 상기 메인 메모리에서 페치한 페치 데이터를 저장하는 페치 파트 블록과 캐시 미스(cache miss)가 발생된 블록의 다음 주소에 대응하는 블록을 프리페치 데이터로 저장하는 캐시 블록인 프리페치 파트 블록의 수가 조절되는 세트 분할가능 캐시(set divisible cache)인 것을 특징으로 하는 라스트 레벨 캐시 메모리
|
6 |
6
제1 항에 있어서, 상기 빅팀 버퍼는 상기 KM 클러스터링 엔진에서 선택된 상기 클러스터 그룹을 상기 KM 버퍼로 전송한 이후, 저장된 전체 캐시 블록을 각 캐시 블록에 설정된 더티 비트에 따라 폐기하거나 상기 메인 메모리로 전송하는 것을 특징으로 하는 라스트 레벨 캐시 메모리
|
7 |
7
제1 항에 있어서, 상기 KM 버퍼는 상기 빅팀 버퍼로부터 상기 캐시 블록을 상기 클러스터 그룹 단위로 인가받아 구분하여 저장하고, 저장된 클러스터 그룹들의 전체 용량이 상기 KM 버퍼의 용량을 초과하면, 선입 선출 기법에 따라 먼저 저장된 상기 클러스터 그룹의 캐시 블록부터 폐기하거나 상기 메인 메모리로 전송하는 것을 특징으로 하는 라스트 레벨 캐시 메모리
|
8 |
8
제1 항에 있어서, 상기 KM 클러스터링 엔진은 상기 빅팀 버퍼 내에 포함되며, 상기 빅팀 버퍼는 상기 KM 버퍼의 내부에 포함되어, 상기 KM 버퍼의 메모리 용량 중 일부를 할당받는 것을 특징으로 하는 라스트 레벨 캐시 메모리
|
9 |
9
제1 항에 있어서, 상기 라스트 레벨 캐시 메모리는 프로세서로부터 데이터 액세스 요청이 수신되면, 상기 캐시 메모리 모듈에 대응하는 데이터가 저장되었는지 탐색하고, 상기 캐시 메모리 모듈에 상기 데이터가 저장되지 않은 것으로 판단되면, 상기 빅팀 버퍼를 탐색하며, 상기 빅팀 버퍼에 상기 데이터가 저장되지 않은 것으로 판단되면, 상기 KM 버퍼를 탐색하며, 상기 KM 버퍼에 상기 데이터가 저장되지 않은 것으로 판단되면, 상기 메인 메모리에 액세스하여, 탐색된 데이터를 상기 프로세서 또는 상위 레벨 캐시로 전송하는 것을 특징으로 하는 라스트 레벨 캐시 메모리
|
10 |
10
메인 메모리로부터 페치 또는 프리페치된 데이터를 캐시 블록 단위로 저장하는 캐시 메모리 모듈, 빅팀 버퍼, KM 클러스터링 엔진 및 KM 버퍼를 포함하는 라스트 레벨 캐시 메모리의 데이터 관리 방법에 있어서, 상기 캐시 메모리 모듈에서 축출되는 캐시 블록들을 상기 빅팀 버퍼에 임시 저장하는 단계; 상기 빅팀 버퍼에 누적 저장된 상기 캐시 블록들의 용량이 기지정된 기준 용량 이상이면, 상기 캐시 블록들을 각각 적어도 하나의 캐시 블록을 포함하는 k개의 클러스터로 KM 클러스터링하는 단계; 상기 k개의 클러스터 중 다수의 캐시 블록을 포함하는 적어도 하나의 클러스터를 선택하는 단계; 및 상기 KM 클러스터링 엔진에서 선택된 적어도 하나의 클러스터를 각각 클러스터 그룹으로서 상기 KM 버퍼에 저장하는 단계; 를 포함하는 라스트 레벨 캐시 메모리의 데이터 관리 방법
|
11 |
11
제10 항에 있어서, 상기 KM 클러스터링하는 단계는 상기 캐시 블록 각각의 메모리 주소를 유사도 평가 지표로 이용하여, 상기 k 개의 클러스터로 클러스터링하는 것을 특징으로 하는 라스트 레벨 캐시 메모리의 데이터 관리 방법
|
12 |
12
제10 항에 있어서, 상기 클러스터를 선택하는 단계는 각각에 포함된 캐시 블록의 개수에 따라 상기 k개의 클러스터를 정렬하는 단계; 및 정렬된 상기 k개의 클러스터 중 캐시 블록이 많은 기설정된 개수의 클러스터를 선택하는 단계; 를 포함하는 것을 특징으로 하는 라스트 레벨 캐시 메모리의 데이터 관리 방법
|
13 |
13
제10 항에 있어서, 상기 KM 버퍼에 저장하는 단계는 상기 KM 클러스터링 엔진에서 선택된 적어도 하나의 클러스터를 각각 클러스터 그룹으로서 인가받는 단계; 및 상기 빅팀 버퍼에 저장된 캐시 블록들을 각 캐시 블록에 설정된 더티 비트에 따라 폐기하거나 상기 메인 메모리로 전송하는 단계; 를 포함하는 것을 특징으로 하는 라스트 레벨 캐시 메모리의 데이터 관리 방법
|
14 |
14
제13 항에 있어서, 상기 KM 버퍼에 저장하는 단계는 저장된 클러스터 그룹들의 전체 용량이 상기 KM 버퍼의 용량을 초과하는지 판별하는 단계; 및 상기 KM 버퍼의 용량을 초과하면, 먼저 저장된 상기 클러스터 그룹의 캐시 블록부터 폐기하거나 상기 메인 메모리로 전송하는 단계; 를 더 포함하는 것을 특징으로 하는 라스트 레벨 캐시 메모리의 데이터 관리 방법
|
15 |
15
제10 항에 있어서, 상기 라스트 레벨 캐시 메모리의 데이터 관리 방법은 프로세서로부터 데이터 액세스 요청이 수신되면, 데이터를 탐색하는 단계; 및 탐색된 데이터를 상기 프로세서 또는 상위 레벨 캐시로 전송하는 단계; 를 더 포함하는 것을 특징으로 하는 라스트 레벨 캐시 메모리의 데이터 관리 방법
|
16 |
16
제15 항에 있어서, 상기 데이터를 탐색하는 단계는 상기 상기 캐시 메모리 모듈에 대응하는 데이터가 저장되었는지 탐색하는 단계; 상기 캐시 메모리 모듈에 상기 데이터가 저장되지 않으면, 상기 빅팀 버퍼를 탐색하는 단계; 상기 빅팀 버퍼에 상기 데이터가 저장되지 않으면, 상기 KM 버퍼를 탐색하는 단계; 및 상기 KM 버퍼에 상기 데이터가 저장되지 않으면, 상기 메인 메모리에 액세스하는 단계; 를 포함하는 것을 특징으로 하는 라스트 레벨 캐시 메모리의 데이터 관리 방법
|