| 번호 | 청구항 |
|---|---|
| 1 | 메인 메모리로 동작할 수 있는 적어도 2개의 메모리를 포함하는 컴퓨터 시스템의 메모리 제어를 위한 하이브리드 메모리 제어 장치로서,타겟 프로그램을 프로파일링하여, 상기 타겟 프로그램 내에서 할당하는 메모리 블록에 대해 상기 타겟 프로그램 내 함수의 접근 정보를 추출하는 프로파일러;상기 메모리 블록에 대한 함수의 접근 정보에 기초하여 상기 메모리 블록에 대한 접근 패턴을 분석하고, 상기 분석 결과에 기초하여 생성한 상기 메모리 블록에 대한 접근 패턴 정보를 상기 타겟 프로그램에 삽입하여 상기 타겟 프로그램을 수정하는 수정부; 및수정된 상기 타겟 프로그램을 실행하되, 상기 타겟 프로그램 내 상기 접근 패턴 정보에 기초하여, 상기 메모리 블록을 제1 메모리 및 제2 메모리 중 어느 하나에 할당하는 메모리 할당기를 포함하는,하이브리드 메모리 제어 장치. |
| 2 | 제1항에 있어서,상기 수정부는,상기 메모리 블록에 대한 접근 패턴을 분석한 결과, 기설정된 간격 미만으로, 설정된 횟수 이상 함수가 상기 메모리 블록에 접근하는 것으로 확인됨에 기초하여 상기 접근 패턴 정보로서, '핫(hot)'을 삽입하고,설정된 간격 이상으로 함수가 접근하거나, 또는 설정된 횟수 미만으로 함수가 상기 메모리 블록에 접근하는 것으로 확인됨에 기초하여 상기 접근 패턴 정보로서, '콜드(cold)'를 삽입하며,상기 메모리 블록과 인접한 다른 메모리 블록을 함수가 순차적으로 접근하는 것으로 확인됨에 기초하여 상기 접근 패턴 정보로서, '시퀀스(sequential)'를 삽입하는,하이브리드 메모리 제어 장치. |
| 3 | 제1항에 있어서,상기 메모리 할당기는,상기 타겟 프로그램 내 상기 접근 패턴 정보가 '핫'인 것에 기초하여 상기 메모리 블록을 상기 제1 메모리에 할당하고,상기 타겟 프로그램 내 상기 접근 패턴 정보가 '콜드'인 것에 기초하여 상기 메모리 블록을 상기 제2 메모리에 할당하며,상기 타겟 프로그램 내 상기 접근 패턴 정보가 '시퀀스'인 것에 기초하여 상기 메모리 블록을 상기 제2 메모리에 할당하되, 상기 메모리 블록과 인접한 다른 메모리 블록이 함수에 의해 접근되면, 상기 메모리 블록을 상기 제2 메모리에서 상기 제1 메모리로 이동시키는,하이브리드 메모리 제어 장치. |
| 4 | 제3항에 있어서,상기 메모리 할당기는,상기 타겟 프로그램 내 상기 접근 패턴 정보가 '시퀀스'일 때,상기 제1 메모리의 잔여 공간이 기설정된 공간 이상으로 확인되면, 상기 메모리 블록 및 상기 메모리 블록과 인접한 다른 메모리 블록을 상기 제1 메모리에 할당하는,하이브리드 메모리 제어 장치. |
| 5 | 제1항에 있어서,상기 프로파일러는,상기 타겟 프로그램을 미리 실행하여, 메모리 블록이 할당될 때 메모리 블록에 부여되는 아이디(ID)와, 로드(load) 및 스토어(store) 명령(instruction)에 대한 정보를 확인하고, 확인된 상기 아이디 및 상기 정보에 기초하여 상기 메모리 블록에 대한 함수의 접근 정보를 추출하는,하이브리드 메모리 제어 장치. |
| 6 | 제1항에 있어서,상기 수정부는,상기 메모리 블록을 관리하는 함수를 상기 메모리 할당기의 라이브러리에 포함된 타입의 함수로 수정하는,하이브리드 메모리 제어 장치. |
| 7 | 제1항에 있어서,상기 메모리 할당기는,상기 타겟 프로그램의 실행 중 실시간으로 로드 및 스토어 명령을 추적하고, 상기 추적 결과에 기초하여 상기 메모리 블록의 이동을 관리하는,하이브리드 메모리 제어 장치. |
| 8 | 제1항에 있어서,상기 제1 메모리의 레이턴시(Latency)는 상기 제2 메모리의 레이턴시 보다 작은 것을 특징으로 하는,하이브리드 메모리 제어 장치. |
| 9 | 메인 메모리로 동작할 수 있는 적어도 2개의 메모리를 포함하는 컴퓨터 시스템의 메모리 제어를 위한 하이브리드 메모리 제어 방법으로서,타겟 프로그램을 프로파일링하여, 상기 타겟 프로그램 내에서 할당하는 메모리 블록에 대해 상기 타겟 프로그램 내 함수의 접근 정보를 추출하는 단계;상기 메모리 블록에 대한 함수의 접근 정보에 기초하여 상기 메모리 블록에 대한 접근 패턴을 분석하고, 상기 분석 결과에 기초하여 생성한 상기 메모리 블록에 대한 접근 패턴 정보를 상기 타겟 프로그램에 삽입하여 상기 타겟 프로그램을 수정하는 단계; 및수정된 상기 타겟 프로그램을 실행하되, 상기 타겟 프로그램 내 상기 접근 패턴 정보에 기초하여, 상기 메모리 블록을 제1 메모리 및 제2 메모리 중 어느 하나에 할당하는 단계를 포함하는,하이브리드 메모리 제어 방법. |
| 10 | 제9항에 있어서,상기 타겟 프로그램을 수정하는 단계는,상기 메모리 블록에 대한 접근 패턴을 분석한 결과, 기설정된 간격 미만으로, 설정된 횟수 이상 함수가 상기 메모리 블록에 접근하는 것으로 확인됨에 기초하여 상기 접근 패턴 정보로서, '핫'을 삽입하는 단계;설정된 간격 이상으로 함수가 접근하거나, 또는 설정된 횟수 미만으로 함수가 상기 메모리 블록에 접근하는 것으로 확인됨에 기초하여 상기 접근 패턴 정보로서, '콜드'를 삽입하는 단계; 또는상기 메모리 블록과 인접한 다른 메모리 블록을 함수가 순차적으로 접근하는 것으로 확인됨에 기초하여 상기 접근 패턴 정보로서, '시퀀스'를 삽입하는 단계를 포함하는,하이브리드 메모리 제어 방법. |
| 11 | 제9항에 있어서,상기 할당하는 단계는,상기 타겟 프로그램 내 상기 접근 패턴 정보가 '핫'인 것에 기초하여 상기 메모리 블록을 상기 제1 메모리에 할당하는 단계;상기 타겟 프로그램 내 상기 접근 패턴 정보가 '콜드'인 것에 기초하여 상기 메모리 블록을 상기 제2 메모리에 할당하는 단계; 또는상기 타겟 프로그램 내 상기 접근 패턴 정보가 '시퀀스'인 것에 기초하여 상기 메모리 블록을 상기 제2 메모리에 할당하되, 상기 메모리 블록과 인접한 다른 메모리 블록이 함수에 의해 접근되면, 상기 메모리 블록을 상기 제2 메모리에서 상기 제1 메모리로 이동시키는 단계를 포함하는,하이브리드 메모리 제어 방법. |
| 12 | 제11항에 있어서,상기 할당하는 단계는,상기 타겟 프로그램 내 상기 접근 패턴 정보가 '시퀀스'일 때,상기 제1 메모리의 잔여 공간이 기설정된 공간 이상으로 확인되면, 상기 메모리 블록 및 상기 메모리 블록과 인접한 다른 메모리 블록을 상기 제1 메모리에 할당하는 단계를 더 포함하는,하이브리드 메모리 제어 방법. |
| 13 | 제9항에 있어서,상기 타겟 프로그램 내 함수의 접근 정보를 추출하는 단계는,상기 타겟 프로그램을 미리 실행하여, 메모리 블록이 할당될 때 메모리 블록에 부여되는 아이디와, 로드 및 스토어 명령에 대한 정보를 확인하는 단계; 및확인된 상기 아이디 및 상기 정보에 기초하여 상기 메모리 블록에 대한 함수의 접근 정보를 추출하는 단계를 포함하는,하이브리드 메모리 제어 방법. |
| 14 | 제9항에 있어서,상기 수정하는 단계는,상기 메모리 블록을 관리하는 함수를 기저장된 라이브러리에 포함된 타입의 함수로 수정하는 단계를 포함하는,하이브리드 메모리 제어 방법. |
| 15 | 제9항에 있어서,상기 할당하는 단계는,상기 타겟 프로그램의 실행 중 실시간으로 로드 및 스토어 명령을 추적하고, 상기 추적 결과에 기초하여 상기 메모리 블록의 이동을 관리하는 단계를 포함하는,하이브리드 메모리 제어 방법. |
| 16 | 제9항에 있어서,상기 제1 메모리의 레이턴시는 상기 제2 메모리의 레이턴시 보다 작은 것을 특징으로 하는,하이브리드 메모리 제어 방법. |