본문 바로가기

학교공부/컴퓨터구조

컴퓨터구조23 - Virtual Memory

Logical address <-> virtual address

 

각각의 프로그램은 own address로 실행하고 실시간으로 변환해서 산다.

 

cache <-> ram 과 비슷한 느낌이다

다만 ram <-> hdd는 그차이가 매우 심하다. 따라서 page fault 날 시에 disk 가야돼서 손해가 매우 큼 -> hit rate를 최대한 올려야한다.

temporal 과 spatial 사이의 적절한 값을 찾아서 page size 결정

fully associative placement 사용

page fault 는 SW로 처리 (hw가 빠르긴하지만 어차피 disk handle 하는데 시간 오래걸려서 SW로 해도 상관없다)

Write-through 보다 당연히 Write-back 사용

 

 

Page Table : main memory <-> SW

Page Table Register : Page Table Pointer

 

만약 한 프로세스의 page table + PC + registers를 다 갖고있다면 언제든지 어디 저장했다가 재실행 가능하다

즉 어떤 process가 실행중이란 말은 특정 process의 page table PC Registers을 사용중이라는 뜻

 

각 process마다 page table register을 가지고 이걸 이용해서 virtual address를 physical로 전환

운체 내용하고 겹쳐서 간략하게 설명하면 32bit에서 per process당 table size 4MB니까 너무 큼

 

 

TLB

 

SMT급으로 중요한거래유~

page table 활용하면 memory 접근시간 두배걸림.

page table의 locality를 활용해서 TLB만들었다.

 

TLB 통해서 Physical page address바로 알 수 있다. 이걸로 memory갈수도있고 cache갈수도있고 그런거임

 

valid : 현재 메모리에 있는지 확인하는 bit. //1이면 memory 0 이면 memory에 없는거

dirty : 1이면 나만 갖고있다. 즉 write back시에 나중에 메모리에도 갱신해라

Ref : 참조bit 참조되었다는거 표시하는 bit인데 교체할때 쓴다.

 

 

근데 만약에 TLB miss가 난다? replace 필요하다

TLB는 write back

 

 

 

TLB+Cache

순서 cache는 write though일수도 back일수도있음~

 

 

여담 firmware 같은게 os가 아니라 자체 software를가지고 physical하게 접근한다.

따라서 tlb니 vm이런게 없는거

'학교공부 > 컴퓨터구조' 카테고리의 다른 글

컴퓨터구조 22 - Cache  (0) 2020.06.20
컴퓨터 구조 21 - Cache  (0) 2020.06.20
컴퓨터구조 18 - SMT  (0) 2020.06.17
컴퓨터구조 17 - SMT  (0) 2020.06.17
컴퓨터구조 16 - Multithreading  (1) 2020.06.17