가상메모리란 메인 메모리를 2차 저장장치의 캐시로 사용하는 기술을 의미한다.
캐시를 통해 우리가 최근에 사용한 프로그램의 코드와 데이터 부분에 대해서 빠르게 접근할 수 있듯, 같은 방법으로 메인 메모리가 Secondary Stroage를 위한 '캐시'로 동작할 수 있다.
가상메모리는 여러 프로그램들이 효과적이고 안전하게 메모리를 공유할 수 있게 하고, 작고 제한된 크기의 메인 메모리에서 프로그래밍해야 하는 제약을 제거하기 위해서 사용된다.
가상 메모리와 캐시에 적용되는 개념 자체는 같을 수 있지만 용어는 다르게 사용한다.
가상 메모리 블록은 페이지(page)이고, 가상 메모리 실패는 페이지 부재(page fault)라고 한다. page fault는 캐시의 miss와 유사한데, 접근하려는 페이지가 메인 메모리 안에 존재하지 않을 때 발생하는 사건이다.
가상 메모리를 갖는 프로세서가 가상 주소(virtual address)를 내보내면, 하드웨어와 소프트웨어가 협력하여 가상 주소를 실제 주소(physical address)로 변환한 후 메인 메모리 접근에 사용한다. 이 과정을 주소 변환(address translation) 또는 주소 사상(address mapping)이라고 한다. 도서관 비유를 들면, 가상의 주소는 책의 제목이고 실제 주소는 청구 기호로 주어지는 도서관 내의 책의 위치이다.
이러한 가상 메모리 시스템의 주소는 virtual page number와 page offset으로 나누어진다. 가상 페이지 번호(virtual page number)는 실제 페이지 번호(physical page number)로 변환되고 페이지 오프셋은 그대로 실제 주소의 하위 부분을 구성한다. 페이지 오프셋 필드의 비트 수는 페이지의 크기를 결정한다.
가상 메모리에서 페이지 부재의 손실은 매우 크기 때문에 페이지 배치를 최적화하여 페이지 부재 발생수를 줄이는 것이 중요하다. 이를 위해서 가상 메모리 시스템에서는 페이지 테이블(page table)을 이용한다. 페이지 테이블은 메모리를 인덱스 하는 표로 메모리 내에 존재하는데, 가상 주소의 페이지 번호로 인덱스되어 대응되는 실제 페이지 번호를 찾아준다. 도서관 비유에서 페이지 테이블은 책 제목과 도서관의 실제 위치 사이의 사상에 해당된다. 이 도서관에는 없지만 캠퍼스 내 다른 도서관에 있는 책들의 도서 카드도 비치하고 있듯이, 페이지 테이블은 메모리에 적재되지 않은 페이지의 엔트리도 포함하고 있다.
'컴퓨터구조' 카테고리의 다른 글
[컴퓨터 구조] 4.10 예외(Exception) (0) | 2023.12.14 |
---|---|
[컴퓨터 구조] 4.9 제어 해저드(Brach Hazard Exception) (0) | 2023.12.14 |
[컴퓨터 구조] 5.3 캐시(cache) (2) | 2023.11.25 |
[컴퓨터 구조] 5.2 메모리 기술 및 종류(SRAM, DRAM, Flash Memory, Magnetic Disk) (0) | 2023.11.25 |
[컴퓨터 구조] 5.1 메모리 계층 구조 (0) | 2023.11.22 |