[OS] TLB, MMU

Jay·2021년 3월 10일
0

Computer Science

목록 보기
36/50
post-thumbnail

TLB !?

  • 변환 우선 참조 버퍼
  • 페이지 테이블이 물리적 기억 장치(주기억장치)에 존재하니까 메모리 엑세스 시마다 한번은 물리적 기억장치의 페이지 테이블을 다른 한번은 가상 기억장치에 필요한 데이터를 총 두번을 엑세스 해야 하기에 엑세스 시간을 길어지게 만드는 단점이 있다.

이러한 문제를 해결하기 위해 프로세서에 내장된 캐시의 일종인 변환 우선참조 버퍼 (Translation Lookaside Buffer)를 사용하게 된다.

페이징 기법에서 설명했던 루틴대로 설명을 되짚어 보면 TLB의 사용 시점과 사용 용도가 보인다.

  1. CPU가 생성한 가상 주소에 대한 페이지 정보가 변환 우선참조 버퍼 안에 존재한다면, 시간 지체 없이 바로 물리적 주소를 생성한다.

  2. 존재하지 않는다면 페이지 테이블을 참조하는데, 이때 테이블에서 적중(hit)하면 TLB를 갱신하는 작업을 거친다.

  3. 페이지 테이블에서 Page Fault가 발생하는 경우, OS에서 그 처리를 담당하는데 특히, MMU(Memory Management Unit)가 가상 기억장치 운영을 담당한다.

MMU는 논리 주소를 물리 주소로 변환, 고정/동적 분할, 페이징, 세그먼테이션 등의 작업을 담당합니다.


MMU (Memory Management Unit)

CPU코어 안에 탑재되어 가상 메모리를 실제 물리 메모리로 변환 해주는 장치.

  • MMU는 가상 메모리와 실제 메모리 사이 변환을 위해 TLB라는 고속의 보조기억장치를 사용한다.
  • TLB 섹션에서 봤듯 MMU는 CPU요청이 들어오면 TLB에 원하는 변환 정보를 제일 먼저 확인 하고 없다면 페이지 테이블에 가게 된다.

MMU 사용 이점

  • 모든 프로세스마다 같은 주소를 사용할 수 있게 해준다.
    • CPU는 프로세스 관리도 쉬워지고 구현 또한 쉬워진다. 실제 Physical Address 가 13, 19, 22 더라도 Virtual Address는 1로 동일할 수 있다는 것이다.
  • 서로 떨어진 데이터를 연속적으로 표현할 수 있다.
    • 위에서 말한 것 처럼 Physical Address 13,19,22를 연속된 데이터처럼 1,2,3으로 표현할 수 있다는 것이다.
profile
developer

0개의 댓글