컴퓨팅 장치에서 캐시 플루딩 프로세스를 관리하기 위한 장치 및 방법
APPARATUS AND METHOD FOR MANAGING CACHE FLOODING PROCESS IN COMPUTING APPARATUS
특허 요약
본 개시는 다수의 코어들을 이용하는 컴퓨팅 장치에서 캐시 분할을 통하여 프로세스들의 성능을 증가시키기 위한 방법 및 장치에 관한 것이다. 본 발명은, 컴퓨팅 장치에서 캐시 분할을 수행하기 위한 것으로, 캐시 분할 방법은, 실행 중인 다수의 프로세스들 중 캐시 플루딩을 발생시키는 프로세스를 식별하는 과정과, 캐시 플루딩을 발생시키는 프로세스가 제한된 크기의 캐시를 사용하도록 제어하는 과정을 포함한다.
청구항
번호청구항
3

청구항 2에 있어서,상기 캐시 플루딩 정도는, 프로세스의 페이지들이 캐시 영역에 접근함에 있어서, 지정된 시간에서 넓은 데이터 영역을 지속적으로 접근하는 정도를 나타내는 방법.

4

삭제

1

컴퓨팅 장치에서 캐시 분할 방법에 있어서,복수의 프로세스(process)들의 캐시 사용 패턴을 식별하는 단계;상기 캐시 사용 패턴에 기반하여, 상기 복수의 프로세스들 중 데이터의 재사용 없이 캐시(cache)의 양보다 더 큰 메모리 영역에 접근하는 캐시 플루딩(cache flooding) 프로세스를 식별하는 단계; 및 상기 캐시 플루딩 프로세스가 제한된 크기의 캐시를 사용하도록 제어하는 단계를 포함하며,상기 캐시 플루딩 프로세스가 제한된 크기의 캐시를 사용하도록 제어하는 단계는,메모리의 페이지 번호와 캐시의 캐시 세트 인덱스가 겹치는(overlapped) 부분을 이용하는 페이지 컬러링(page coloring)을 통하여 상기 캐시 플루딩 프로세스를 제한된 캐시 영역에 격리(isolation)하는 단계를 포함하는 방법.

2

청구항 1에 있어서,상기 캐시 플루딩 프로세스를 식별하는 단계는,페이지 테이블(page table)을 이용하여 실행중인 복수의 프로세스들에 대한 캐시 플루딩 정도를 산출하는 단계;슬라이딩 윈도우(sliding window) 방식을 이용하여 상기 캐시 플루딩 정도에 대한 추세선(best-fit line)을 형성하는 단계; 및상기 추세선을 통하여 다음 시 구간에서 상기 캐시 플루딩 프로세스를 예측하는 단계를 포함하는 방법.

5

청구항 1에 있어서,상기 캐시 플루딩 프로세스를 식별하는 단계는,상기 프로세스의 페이지 테이블을 스캔하는 단계;상기 스캔된 페이지 테이블에 기초하여 상기 프로세스의 페이지 접근 양식을 분석하는 단계; 및상기 페이지 접근 양식을 보고하는 단계를 포함하는 방법.

6

청구항 5에 있어서,상기 프로세스의 페이지 테이블을 스캔하는 단계는,상기 페이지 테이블에서 접근 완료 플래그를 확인하는 단계를 포함하는 방법.

7

청구항 6에 있어서,상기 접근 완료 플래그를 확인하는 단계는,상기 접근 완료 플래그가 긍정으로 설정될 경우, 접근 카운트를 증가시키는 단계;상기 접근 완료 플래그가 부정으로 설정될 경우, 상기 접근 카운트를 유지시키는 단계; 및현재 접근 카운트를 증가시킨 페이지와 직전에 접근 카운트를 증가시킨 페이지가 인접하고 접근 카운트가 동일한 경우, 캐시 플루딩 카운트를 증가시키는 단계를 포함하는 방법.

8

청구항 7에 있어서,상기 증가된 캐시 플루딩 카운트를 페이지 테이블 순회 중 총 접근된 페이지 카운트로 나누어 캐시 플루딩 정도를 결정하는 단계를 더 포함하는 방법.

9

청구항 1에 있어서,상기 캐시 플루딩 프로세스를 제한된 캐시 영역에 격리하는 단계는,상기 메모리의 페이지 번호와 상기 캐시의 캐시 세트 인덱스가 겹치는 부분을 이용하는 페이지 컬러링을 통하여 프로세스들의 종류에 따라 캐시 라인을 결정하는 단계; 및상기 캐시 라인을 따라 해당 프로세스에 상기 메모리의 페이지를 할당하는 단계를 포함하는 방법.

10

청구항 2에 있어서,상기 추세선을 형성하는 단계는,캐시 플루딩 정도에 대한 제1 값의 샘플들을 수집하여 하나의 구간을 구성하는 단계;제2 값의 구간들을 수집하여 윈도우(window)를 구성하는 단계;상기 제1 값의 샘플들을 수집하여 새로운 하나의 구간이 구성될 경우, 상기 윈도우를 이동시키는 단계; 및상기 이동된 윈도우를 이용하여 다음 시 구간의 캐시 플루딩 정도를 예측하는 단계를 포함하는 방법.

11

청구항 10에 있어서,상기 캐시 플루딩 정도에 기초하여, 비-캐시 플루딩 프로세스가 캐시 플루딩 프로세스로 예측되는 경우, 상기 예측되는 캐시 플루딩 프로세스의 페이지가 접근하는 캐시 영역이 아닌 보다 작은 캐시 영역을 할당하는 단계를 더 포함하는 방법.

12

컴퓨팅 장치에서 캐시 분할을 위한 컴퓨팅 장치에 있어서,메모리;캐시(cache); 및상기 메모리 및 상기 캐시와 기능적으로 결합된 적어도 하나의 프로세서를 포함하고,상기 적어도 하나의 프로세서는,복수의 프로세스(process)들의 캐시 사용 패턴을 식별하고,상기 캐시 사용 패턴에 기반하여, 상기 복수의 프로세스들 중 데이터의 재사용 없이 캐시(cache)의 양보다 더 큰 메모리 영역에 접근하는 캐시 플루딩(cache flooding) 프로세스를 식별하고,상기 캐시 플루딩 프로세스가 제한된 크기의 캐시를 사용하도록 제어하며,상기 프로세서는,메모리의 페이지 번호와 캐시의 캐시 세트 인덱스가 겹치는(overlapped) 부분을 이용하는 페이지 컬러링(page coloring)을 통하여 상기 캐시 플루딩 프로세스를 제한된 캐시 영역에 격리(isolation)하는 것인 장치.

13

청구항 12에 있어서,상기 적어도 하나의 프로세서는, 페이지 테이블(page table)을 이용하여 실행중인 복수의 프로세스들에 대한 캐시 플루딩 정도를 산출하고, 슬라이딩 윈도우(sliding window) 방식을 이용하여 상기 캐시 플루딩 정도에 대한 추세선(best-fit line)을 형성하고, 상기 추세선을 통하여 다음 시 구간에서 상기 캐시 플루딩 프로세스를 예측하는 장치.

14

청구항 13에 있어서,상기 캐시 플루딩 정도는, 프로세스의 페이지들이 캐시 영역에 접근함에 있어서, 지정된 시간에서 넓은 데이터 영역을 지속적으로 접근하는 정도를 나타내는 장치.

15

삭제

16

청구항 12에 있어서,상기 적어도 하나의 프로세서는, 상기 프로세스의 페이지 테이블을 스캔하고, 상기 스캔된 페이지 테이블에 기초하여 상기 프로세스의 페이지 접근 양식을 분석하는 장치.

17

청구항 16에 있어서,상기 적어도 하나의 프로세서는, 상기 페이지 테이블에서 접근 완료 플래그를 확인하는 장치.

18

청구항 17에 있어서,상기 적어도 하나의 프로세서는, 상기 접근 완료 플래그가 긍정으로 설정될 경우, 접근 카운트를 증가시키고, 상기 접근 완료 플래그가 부정으로 설정될 경우, 상기 접근 카운트를 유지시키고, 현재 접근 카운트를 증가시킨 페이지와 직전에 접근 카운트를 증가시킨 페이지가 인접하고 접근 카운트가 동일한 경우, 캐시 플루딩 카운트를 증가시키는 장치.

19

청구항 18에 있어서,상기 적어도 하나의 프로세서는,증가된 캐시 플루딩 카운트를 페이지 테이블 순회 중 총 접근된 페이지 카운트로 나누어 캐시 플루딩 정도를 결정하는 장치.

20

청구항 12에 있어서,상기 적어도 하나의 프로세서는, 상기 메모리의 페이지 번호와 상기 캐시의 캐시 세트 인덱스가 겹치는 부분을 이용하는 페이지 컬러링을 통하여 프로세스들의 종류에 따라 캐시 라인을 결정하고, 상기 캐시 라인을 따라 해당 프로세스에 상기 메모리의 페이지를 할당하는 장치.

21

청구항 13에 있어서,상기 적어도 하나의 프로세서는, 캐시 플루딩 정도에 대한 제1 값의 샘플들을 수집하여 하나의 구간을 구성하고, 제2 값의 구간들을 수집하여 윈도우(window)를 구성하고, 상기 제1 값의 샘플들을 수집하여 새로운 하나의 구간이 구성될 경우, 상기 윈도우를 이동시킴으로써, 다음 시 구간의 캐시 플루딩 정도를 예측하는 장치.

22

청구항 21에 있어서,상기 적어도 하나의 프로세서는, 상기 캐시 플루딩 정도에 기초하여, 비-캐시 플루딩 프로세스가 캐시 플루딩 프로세스로 예측되는 경우, 상기 예측되는 캐시 플루딩 프로세스의 페이지가 접근하는 캐시 영역이 아닌 보다 작은 캐시 영역을 할당하는 장치.