1 |
1
프로세서와 운영체제를 이용한 페이지 폴트 처리 방법에 있어서,어플리케이션 동작에 따라 요구 페이징을 수행하는 단계; 및상기 프로세서에서 상기 요구 페이징에 대응하여 데이터를 메모리로 불러오는 단계를 포함하는,페이지 폴트 처리 방법
|
2 |
2
제1항에 있어서,상기 데이터를 메모리로 불러오는 단계는,상기 프로세서를 구성하는 기억 관리부(memory management unit)에서 페이지 테이블을 탐색하는 단계;페이지 테이블 엔트리(page table entry)의 present 비트를 확인하는 단계;상기 present 비트가 기설정된 제1 값인 경우, 상기 페이지 테이블 엔트리의 LBA(logical block address) 비트를 확인하는 단계; 및상기 LBA 비트가 기설정된 제2 값인 경우, 상기 프로세서를 구성하는 폴트 처리부를 통해 페이지 폴트를 처리하는 단계를 포함하는,페이지 폴트 처리 방법
|
3 |
3
제2항에 있어서,상기 페이지 폴트를 처리하는 단계는,상기 폴트 처리부를 구성하는 페이지 미스 핸들러(page miss handler)에게 페이지 폴트와 관련된 정보를 전달하는 단계;상기 페이지 폴트와 관련된 정보에 기반하여 PMSHR(page miss status holding registers)를 탐색하는 단계;상기 PMSHR에 저장된 정보에 기반하여 상기 페이지 폴트를 처리하기 위한 페이지를 할당하는 단계;상기 페이지 미스 핸들러에서 상기 페이지 테이블 엔트리를 갱신하는 단계; 및상기 페이지 미스 핸들러에서 상기 기억 관리부로 페이지 폴트 처리 완료 메시지를 전송하는 단계를 포함하는 것을 특징으로 하는,페이지 폴트 처리 방법
|
4 |
4
제3항에 있어서,상기 페이지 폴트를 처리하기 위한 페이지를 할당하는 단계 이후에,상기 페이지 미스 핸들러에서 호스트 제어부로 I/O 요청을 전송하는 단계;상기 호스트 제어부에서 큐 레지스터를 통해 입출력을 처리하는 단계; 및상기 호스트 제어부에서 상기 페이지 미스 핸들러로 입출력 완료 메시지를 전송하는 단계를 더 포함하는 것을 특징으로 하는,페이지 폴트 처리 방법
|
5 |
5
제4항에 있어서,상기 호스트 제어부에서 상기 I/O 요청에 대해 완료 큐의 head 주소를 스누핑(snooping)하여 상기 페이지 미스 핸들러로 상기 입출력 완료 메시지 전송 여부를 확인하는 단계를 더 포함하는,페이지 폴트 처리 방법
|
6 |
6
제2항에 있어서,상기 페이지 테이블 엔트리는 상기 present 비트에 대한 정보, 상기 LBA 비트에 대한 정보, 소켓 아이디에 대한 정보, 디바이스 아이디에 대한 정보, 논리 블록 주소에 대한 정보를 포함하는 것을 특징으로 하는,페이지 폴트 처리 방법
|
7 |
7
제2항에 있어서,상기 present 비트가 기설정된 제3 값인 경우, 페이지 프레임 번호를 반환하는 단계;상기 LBA 비트가 기설정된 제4 값인 경우, 운영체제 페이지 폴트 핸들러를 호출하는 단계;운영체제 메모리 할당자로부터 페이지를 할당하는 단계;상기 페이지를 페이지 캐시(cache)에 삽입하는 단계; 및디바이스 드라이버를 통해 I/O 요청을 하고 입출력 완료 시 상기 페이지 테이블 엔트리를 갱신하는 단계를 더 포함하는 것을 특징으로 하는,페이지 폴트 처리 방법
|
8 |
8
제2항에 있어서,상기 운영체제에서 주기적으로 커널 스레드를 호출하는 단계;운영체제 메모리 할당자로부터 페이지를 할당 받는 단계;할당 받은 페이지의 DMA(direct memory access) 매핑을 수행하는 단계; 및상기 할당 받은 페이지를 프리 페이지 큐에 삽입함으로써 프리 페이지를 충전하는 단계를 더 포함하는,페이지 폴트 처리 방법
|
9 |
9
제2항에 있어서,상기 운영체제에서 주기적으로 페이지 테이블을 탐색하는 단계;상기 운영체제에서 PMD 엔트리 및 PUD 엔트리의 LBA 비트를 확인하는 단계;상기 운영체제에서 페이지 테이블 엔트리의 LBA 비트와 present 비트를 확인하는 단계;상기 LBA 비트와 present 비트에 기반하여 상기 페이지 테이블 엔트리에 해당하는 페이지를 캐시 또는 LRU 리스트에 삽입하는 단계; 및페이지 관련 메타 데이터를 갱신하는 단계를 더 포함하는,페이지 폴트 처리 방법
|
10 |
10
페이지 폴트를 처리하기 위한 프로세서에 있어서,페이지 테이블을 탐색하고, 페이지 테이블 엔트리(page table entry)의 present 비트를 확인하며, 상기 present 비트가 기설정된 제1 값인 경우, 상기 페이지 테이블 엔트리의 LBA(logical block address) 비트를 확인하는 기억 관리부(memory management unit); 및상기 LBA 비트가 기설정된 제2 값인 경우, 페이지 폴트를 처리하는 폴트 처리부를 포함하는,프로세서
|
11 |
11
제10항에 있어서,상기 폴트 처리부는,페이지 폴트와 관련된 정보를 수신하고, 상기 페이지 폴트와 관련된 정보에 기반하여 PMSHR(page miss status holding registers)를 탐색하며, 상기 PMSHR에 저장된 정보에 기반하여 상기 페이지 폴트를 처리하기 위한 페이지를 할당하고, 상기 페이지 테이블 엔트리를 갱신하며, 상기 기억 관리부로 페이지 폴트 처리 완료 메시지를 전송하는 페이지 미스 핸들러를 포함하는 것을 특징으로 하는,프로세서
|
12 |
12
제11항에 있어서,상기 폴트 처리부는상기 페이지 미스 핸들러로부터 I/O 요청을 수신하고, 큐 레지스터를 통해 입출력을 처리하며, 상기 페이지 미스 핸들러로 입출력 완료 메시지를 전송하는 호스트 제어부를 더 포함하는 것을 특징으로 하는,프로세서
|
13 |
13
제10항에 있어서,상기 호스트 제어부는 상기 I/O 요청에 대해 완료 큐의 head 주소를 스누핑(snooping)하여 상기 페이지 미스 핸들러로 상기 입출력 완료 메시지 전송 여부를 확인하는 것을 특징으로 하는,프로세서
|
14 |
14
제10항에 있어서,상기 페이지 테이블 엔트리는 상기 present 비트에 대한 정보, 상기 LBA 비트에 대한 정보, 소켓 아이디에 대한 정보, 디바이스 아이디에 대한 정보, 논리 블록 주소에 대한 정보를 포함하는 것을 특징으로 하는,프로세서
|