[Programming] TLB(Translation Lookaside Buffer)
TLB(Translation Lookaside Buffer)
포스트 난이도: HOO_Middle
[Notice] 포스트 난이도에 대한 설명
안녕하세요, HOOAI의 Henry입니다. Bro들의 질문에 대한 내용을 우선적으로 포스팅이 되다 보니 각각의 포스트에 대한 난이도가 달라서 난이도에 대한 부분을 작성하면 좋겠다는 의견을 들었습니다
whoishoo.tistory.com
# Translation Lookaside Buffer
TLB는 Translation lookaside buffer의 줄임말로써 Processor에 포함된 기능 중 하나이다.
Program을 실행하고 운영하는 과정에서 바로 Physical addresses로 데이터가 전달되는 것이 아니라 Virtual memory를 통해 Physical addresses들로 전달이 이루어진다.
이 과정에서 TLB는 최근에 이루어진 과정을 기록해놓고 추후에 같은 작업을 반복할 때 빠르게 작업을 수행할 수 있도록 도움을 준다.
한마디로 TLB는 물리적 메모리의 위치를 빠르게 참조할 수 있도록 도와주는 역할을 담당한다는 것이다.
따라서 TLB는 memory cache의 한 종류라고 생각하면 된다.
TLB에서 특정 메모리 주소를 확인할 수 없을 경우 Crawling 과정을 거쳐서 특정 주소를 검색한다.
이후에 가상 메모리가 변환되고 참조된 값이 TLB에 추가가 된다.
TLB에서 특정 값을 검색할 수 있다는 것은 결과적으로 특정 메모리 주소를 빠르게 확인할 수 있다는 것이기에 가상 메모리 작업 속도를 높여주는 효과를 가져온다.
또한 여러 Users가 사용하는 컴퓨터의 경우에는 관리자와 사용자 간의 read, write에 대한 권한을 부여함으로써 메모리를 사용하는데 별도로 유지할 수 있게 도와준다.
TLB는 Multitasking이나 code error 문제로 기능적 문제가 발생할 수도 있는데 이러한 기능 저하 문제를 Cache Thrash라고 부른다.