티스토리 뷰

페이징의 문제점

 - 모든 명령어를 fetch 후 load,store 과정(메모리에 접근해서 해야함)을 거치는게 매우 속도측면에서 느리다.( = 주소 변환과정이 속도가 느리다.)

 - extra memory reference의 오버헤드

 

어떻게 주소 변환 과정을 빠르게 할 수 있을까?

extra memory reference의 오버헤드를 줄일 수 있을까?

 = TLB 하드웨어를 사용한다.(Address-Traslation Cache라고도 함.)

 

가상 메모리에 접근할 때 먼저 TLB를 방문. page table을 방문하지 않고. 따라서 TLB를 사용하지 않으면 효율이 매우 떨어짐.

 

TLB의 control flow algorithm

변환 결과 테이블

 - 매번 주소를 변환하는 대신 변환 결과를 테이블에 저장하여 사용.

 특수 고속 캐시 

 - 페이지 테이블 항목에 대한 특수 고속 캐시 사용하여 메모리 참조시간 단축

 

TLB 제어 흐름 알고리즘

 

1.가상주소에서 가상 페이지 번호를 추출.

2.VPN의 TLB 존재 여부 검사.

3.존재 하면 TLB hit로 표현. TLB가 변환값을 갖고 있다는 의미. TLB에서 PFN 추출. 페이지에 접근해 정보를 원래 가상 주소의 오프셋과 합쳐서 원하는 물리 주소를 구성하고 메모리에 접근할 수 있다.

4.TLB 정보가 없다면 TLB miss. 하드웨어가 변환 정보를 찾기 위해 페이지 테이블에 접근, 프로세스가 생성한 가상 메모리 참조가 유효하고 접근 가능하면, 해당 정보를 TLB로 읽어들인다. 시간이 많이 걸린다. 

5.TLB가 갱신되면 하드웨어는 명령어를 재실행 한다.(2번으로 돌아감)

 

CISC를 쓸 때는 TLB 미스를 하드웨어가 처리하게 했다.

RISC는 소프트웨어 관리 TLB를 사용한다. TLB 미스 시 예외 시그널을 발생시키고, 운영체제는 명령어 실행을 중지하고 user mode를 kernel mode로 변경해 trap handler를 실행. 트랩 핸들러가 TLB 갱신 후 리턴.

 

 

하이브리드 접근 방법

페이징과 세그멘트

페이징과 세그멘ㅌ를 결합하여 페이지 테이블 크기를 줄이는 아이디어를 내었다. 

'컴퓨터 공학 > 운영체제' 카테고리의 다른 글

[운영체제]paging-introduction  (0) 2021.05.03
[운영체제]Free-Space management  (0) 2021.05.02
주소 변환  (0) 2021.04.15
memory API  (0) 2021.04.15
ADDRESS SPACES(주소 공간)  (0) 2021.04.14
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함