본문 바로가기

운영체제

x86_64(64비트) 모드, 주소 변환 과정


64비트 모드 주소 변환 과정

 

 64비트 모드 세그먼테이션 과정은 32비트 모드와 동일하게 진행되는데, 차이점으로 주소 공간이 확장되어 세그먼트 디스크립터에 설정된 기준 주소와 크기에 관계없이 모든 세그먼트가 기준 주소는 0, 크기는 64비트 전체로 설정됩니다.

 선형 주소의 주소 영역 자체가 0부터 64비트 전체가 되는 것이죠

 

 

페이징 기법을 통한 주소 변환

 

5단계 페이징 기법을 예로 보겠습니다. 

 


 

 

글자가 길어서 헷갈리므로 그냥 편의상

페이지 맵 레벨 4 = PML4

페이지 디렉토리 포인터 = PDP

페이지 디렉토리 = PD

페이지 테이블 = PT라 하면

 

  1. CR3 레지스터가 PML4 테이블의 기준 주소를 가리킵니다.
  2. PML4 테이블 기준 주소 + 선형 주소의 PML4 오프셋 = PML4 엔트리
  3. PML4 엔트리가 PDP 테이블의 기준 주소를 가리킵니다.
  4. PDP 테이블 기준 주소 + 선형주소의 PDP 테이블 오프셋 = PDP 엔트리
  5. PDP 엔트리가 PD 테이블의 기준주소를 가리킵니다.
  6. PD의 기준주소 + 선형주소의 PD 오프셋 = PD 엔트리
  7. PD엔트리가 PT의 기준 주소를 가리키고
  8. PT의 기준 주소 + 선형주소의 PT 오프셋 = PT 엔트리
  9. PT 엔트리가 페이지의 기준 주소를 가리키고
  10.  페이지의 기준 주소 + 선형 주소의 오프셋 = 물리 주소 가 됩니다.