변환 색인 버퍼

IT 위키
(TLB에서 넘어옴)
Translation Lookaside Buffer, TLB; 변환 참조 버퍼
페이지 테이블 항목을 캐시해 가상 주소를 물리 주소로 바꾸는 시간을 줄이는 하드웨어 버퍼

주소 변환 전용 캐시다. 가상 메모리를 쓰는 시스템은 메모리에 접근할 때마다 페이지 테이블을 먼저 읽어야 하는데, 페이지 테이블도 주기억장치에 있으므로 한 번의 메모리 접근이 두 번이 된다. 자주 쓰는 페이지 테이블 항목을 CPU 안의 작은 연관 기억장치에 담아 이 손실을 없앤다. 현대 프로세서는 메모리 관리 장치(MMU) 안에 TLB 를 둔다.

  • CPU 가 가상 주소를 내면 페이지 번호로 TLB 를 먼저 찾는다.
  • TLB 적중(hit) : 바로 프레임 번호를 얻어 물리 주소를 만든다. 메모리 접근 1회
  • TLB 부적중(miss) : 주기억장치의 페이지 테이블을 읽어 프레임 번호를 얻고 그 항목을 TLB 에 채운다. 메모리 접근 2회
  • 페이지 테이블에도 없으면(유효 비트가 0) 페이지 부재가 일어나 보조기억장치에서 페이지를 올린다.
  • 연관 기억장치로 만들어 여러 항목을 동시에 비교한다. 그래서 빠르지만 비싸다.
  • 항목 수는 보통 수십~수백 개로 적다. 지역성 덕분에 이 정도로도 적중률이 높다.
  • 한 항목은 (페이지 번호, 프레임 번호) 쌍이고 유효 비트·보호 비트를 함께 둔다.
  • 문맥 교환이 일어나면 이전 프로세스의 항목이 무효가 되므로 TLB 를 비우거나(flush), 주소 공간 식별자(ASID)를 항목에 함께 담아 구분한다.

유효 접근 시간

[편집 | 원본 편집]

TLB 접근 시간을 t, 메모리 접근 시간을 m, 적중률을 h 라 하면

  • 적중 : t + m
  • 부적중 : t + 2m
  • 유효 접근 시간 = h(t + m) + (1 − h)(t + 2m)

같이 보기

[편집 | 원본 편집]